@evvm/x402 0.0.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +193 -0
- package/README.md +10 -34
- package/dist/index.browser.mjs +76 -0
- package/dist/index.cjs +76 -0
- package/dist/index.mjs +76 -0
- package/dist/types/lib/local-facilitator.d.ts +20 -0
- package/dist/types/lib/parse-header.d.ts +6 -0
- package/dist/types/lib/payment-responses.d.ts +11 -0
- package/dist/types/middleware/express.d.ts +6 -0
- package/dist/types/middleware/next.d.ts +7 -0
- package/dist/types/types/evvm-schema.type.d.ts +18 -0
- package/dist/types/types/facilitator.type.d.ts +5 -0
- package/{src/types/payment-payload.type.ts → dist/types/types/payment-payload.type.d.ts} +2 -4
- package/package.json +54 -2
- package/bun.lock +0 -370
- package/index.ts +0 -1
- package/src/lib/local-facilitator.ts +0 -106
- package/src/lib/parse-header.ts +0 -29
- package/src/lib/payment-responses.ts +0 -64
- package/src/middleware/express.ts +0 -92
- package/src/middleware/next.ts +0 -79
- package/src/types/evvm-schema.type.ts +0 -19
- package/src/types/facilitator.type.ts +0 -15
- package/tsconfig.json +0 -29
- /package/{src/index.ts → dist/types/index.d.ts} +0 -0
- /package/{src/lib/index.ts → dist/types/lib/index.d.ts} +0 -0
- /package/{src/middleware/index.ts → dist/types/middleware/index.d.ts} +0 -0
- /package/{src/types/index.ts → dist/types/types/index.d.ts} +0 -0
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
var Ow=Object.defineProperty;var Dw=(Y)=>Y;function Uw(Y,J){this[Y]=Dw.bind(null,J)}var DM=(Y,J)=>{for(var Q in J)Ow(Y,Q,{get:J[Q],enumerable:!0,configurable:!0,set:Uw.bind(J,Q)})};var S8=(Y,J)=>()=>(Y&&(J=Y(Y=0)),J);function pT(Y,J=!1){if(J)return{h:Number(Y&f9),l:Number(Y>>FL&f9)};return{h:Number(Y>>FL&f9)|0,l:Number(Y&f9)|0}}function PL(Y,J=!1){let Q=Y.length,q=new Uint32Array(Q),X=new Uint32Array(Q);for(let G=0;G<Q;G++){let{h:$,l:W}=pT(Y[G],J);[q[G],X[G]]=[$,W]}return[q,X]}var f9,FL,TL=(Y,J,Q)=>Y<<Q|J>>>32-Q,ZL=(Y,J,Q)=>J<<Q|Y>>>32-Q,xL=(Y,J,Q)=>J<<Q-32|Y>>>64-Q,gL=(Y,J,Q)=>Y<<Q-32|J>>>64-Q;var fL=S8(()=>{f9=BigInt(4294967295),FL=BigInt(32)});import*as dY from"node:crypto";var zQ;var hL=S8(()=>{zQ=dY&&typeof dY==="object"&&"webcrypto"in dY?dY.webcrypto:dY&&typeof dY==="object"&&("randomBytes"in dY)?dY:void 0});function oT(Y){return Y instanceof Uint8Array||ArrayBuffer.isView(Y)&&Y.constructor.name==="Uint8Array"}function MQ(Y){if(!Number.isSafeInteger(Y)||Y<0)throw Error("positive integer expected, got "+Y)}function BY(Y,...J){if(!oT(Y))throw Error("Uint8Array expected");if(J.length>0&&!J.includes(Y.length))throw Error("Uint8Array expected of length "+J+", got length="+Y.length)}function mL(Y){if(typeof Y!=="function"||typeof Y.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");MQ(Y.outputLen),MQ(Y.blockLen)}function rY(Y,J=!0){if(Y.destroyed)throw Error("Hash instance has been destroyed");if(J&&Y.finished)throw Error("Hash#digest() has already been called")}function h9(Y,J){BY(Y);let Q=J.outputLen;if(Y.length<Q)throw Error("digestInto() expects output buffer of length at least "+Q)}function yL(Y){return new Uint32Array(Y.buffer,Y.byteOffset,Math.floor(Y.byteLength/4))}function RY(...Y){for(let J=0;J<Y.length;J++)Y[J].fill(0)}function m9(Y){return new DataView(Y.buffer,Y.byteOffset,Y.byteLength)}function JY(Y,J){return Y<<32-J|Y>>>J}function rT(Y){return Y<<24&4278190080|Y<<8&16711680|Y>>>8&65280|Y>>>24&255}function sT(Y){for(let J=0;J<Y.length;J++)Y[J]=rT(Y[J]);return Y}function iT(Y){if(typeof Y!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(Y))}function NQ(Y){if(typeof Y==="string")Y=iT(Y);return BY(Y),Y}function lL(...Y){let J=0;for(let q=0;q<Y.length;q++){let X=Y[q];BY(X),J+=X.length}let Q=new Uint8Array(J);for(let q=0,X=0;q<Y.length;q++){let G=Y[q];Q.set(G,X),X+=G.length}return Q}class OQ{}function y9(Y){let J=(q)=>Y().update(NQ(q)).digest(),Q=Y();return J.outputLen=Q.outputLen,J.blockLen=Q.blockLen,J.create=()=>Y(),J}function l9(Y=32){if(zQ&&typeof zQ.getRandomValues==="function")return zQ.getRandomValues(new Uint8Array(Y));if(zQ&&typeof zQ.randomBytes==="function")return Uint8Array.from(zQ.randomBytes(Y));throw Error("crypto.getRandomValues must be defined")}var dT,Cz;var VJ=S8(()=>{hL();/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */dT=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)();Cz=dT?(Y)=>Y:sT});function UZ(Y,J,Q,q){if(typeof Y.setBigUint64==="function")return Y.setBigUint64(J,Q,q);let X=BigInt(32),G=BigInt(4294967295),$=Number(Q>>X&G),W=Number(Q&G),j=q?4:0,K=q?0:4;Y.setUint32(J+j,$,q),Y.setUint32(J+K,W,q)}function GE(Y,J,Q){return Y&J^~Y&Q}function $E(Y,J,Q){return Y&J^Y&Q^J&Q}var Zz,tY;var WE=S8(()=>{VJ();Zz=class Zz extends OQ{constructor(Y,J,Q,q){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=Y,this.outputLen=J,this.padOffset=Q,this.isLE=q,this.buffer=new Uint8Array(Y),this.view=m9(this.buffer)}update(Y){rY(this),Y=NQ(Y),BY(Y);let{view:J,buffer:Q,blockLen:q}=this,X=Y.length;for(let G=0;G<X;){let $=Math.min(q-this.pos,X-G);if($===q){let W=m9(Y);for(;q<=X-G;G+=q)this.process(W,G);continue}if(Q.set(Y.subarray(G,G+$),this.pos),this.pos+=$,G+=$,this.pos===q)this.process(J,0),this.pos=0}return this.length+=Y.length,this.roundClean(),this}digestInto(Y){rY(this),h9(Y,this),this.finished=!0;let{buffer:J,view:Q,blockLen:q,isLE:X}=this,{pos:G}=this;if(J[G++]=128,RY(this.buffer.subarray(G)),this.padOffset>q-G)this.process(Q,0),G=0;for(let z=G;z<q;z++)J[z]=0;UZ(Q,q-8,BigInt(this.length*8),X),this.process(Q,0);let $=m9(Y),W=this.outputLen;if(W%4)throw Error("_sha2: outputLen should be aligned to 32bit");let j=W/4,K=this.get();if(j>K.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<j;z++)$.setUint32(4*z,K[z],X)}digest(){let{buffer:Y,outputLen:J}=this;this.digestInto(Y);let Q=Y.slice(0,J);return this.destroy(),Q}_cloneInto(Y){Y||(Y=new this.constructor),Y.set(...this.get());let{blockLen:J,buffer:Q,length:q,finished:X,destroyed:G,pos:$}=this;if(Y.destroyed=G,Y.finished=X,Y.length=q,Y.pos=$,q%J)Y.buffer.set(Q);return Y}clone(){return this._cloneInto()}};tY=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225])});var HZ,wJ,jE,JG;var KE=S8(()=>{WE();VJ();HZ=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),wJ=new Uint32Array(64);jE=class jE extends Zz{constructor(Y=32){super(64,Y,8,!1);this.A=tY[0]|0,this.B=tY[1]|0,this.C=tY[2]|0,this.D=tY[3]|0,this.E=tY[4]|0,this.F=tY[5]|0,this.G=tY[6]|0,this.H=tY[7]|0}get(){let{A:Y,B:J,C:Q,D:q,E:X,F:G,G:$,H:W}=this;return[Y,J,Q,q,X,G,$,W]}set(Y,J,Q,q,X,G,$,W){this.A=Y|0,this.B=J|0,this.C=Q|0,this.D=q|0,this.E=X|0,this.F=G|0,this.G=$|0,this.H=W|0}process(Y,J){for(let z=0;z<16;z++,J+=4)wJ[z]=Y.getUint32(J,!1);for(let z=16;z<64;z++){let M=wJ[z-15],N=wJ[z-2],O=JY(M,7)^JY(M,18)^M>>>3,D=JY(N,17)^JY(N,19)^N>>>10;wJ[z]=D+wJ[z-7]+O+wJ[z-16]|0}let{A:Q,B:q,C:X,D:G,E:$,F:W,G:j,H:K}=this;for(let z=0;z<64;z++){let M=JY($,6)^JY($,11)^JY($,25),N=K+M+GE($,W,j)+HZ[z]+wJ[z]|0,D=(JY(Q,2)^JY(Q,13)^JY(Q,22))+$E(Q,q,X)|0;K=j,j=W,W=$,$=G+N|0,G=X,X=q,q=Q,Q=N+D|0}Q=Q+this.A|0,q=q+this.B|0,X=X+this.C|0,G=G+this.D|0,$=$+this.E|0,W=W+this.F|0,j=j+this.G|0,K=K+this.H|0,this.set(Q,q,X,G,$,W,j,K)}roundClean(){RY(wJ)}destroy(){this.set(0,0,0,0,0,0,0,0),RY(this.buffer)}};JG=y9(()=>new jE)});var xz,gz=(Y,J,Q)=>new xz(Y,J).update(Q).digest();var zE=S8(()=>{VJ();xz=class xz extends OQ{constructor(Y,J){super();this.finished=!1,this.destroyed=!1,mL(Y);let Q=NQ(J);if(this.iHash=Y.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let q=this.blockLen,X=new Uint8Array(q);X.set(Q.length>q?Y.create().update(Q).digest():Q);for(let G=0;G<X.length;G++)X[G]^=54;this.iHash.update(X),this.oHash=Y.create();for(let G=0;G<X.length;G++)X[G]^=106;this.oHash.update(X),RY(X)}update(Y){return rY(this),this.iHash.update(Y),this}digestInto(Y){rY(this),BY(Y,this.outputLen),this.finished=!0,this.iHash.digestInto(Y),this.oHash.update(Y),this.oHash.digestInto(Y),this.destroy()}digest(){let Y=new Uint8Array(this.oHash.outputLen);return this.digestInto(Y),Y}_cloneInto(Y){Y||(Y=Object.create(Object.getPrototypeOf(this),{}));let{oHash:J,iHash:Q,finished:q,destroyed:X,blockLen:G,outputLen:$}=this;return Y=Y,Y.finished=q,Y.destroyed=X,Y.blockLen=G,Y.outputLen=$,Y.oHash=J._cloneInto(Y.oHash),Y.iHash=Q._cloneInto(Y.iHash),Y}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};gz.create=(Y,J)=>new xz(Y,J)});function OX(Y){return Y instanceof Uint8Array||ArrayBuffer.isView(Y)&&Y.constructor.name==="Uint8Array"}function aY(Y){if(!OX(Y))throw Error("Uint8Array expected")}function DX(Y,J){if(typeof J!=="boolean")throw Error(Y+" boolean expected, got "+J)}function QG(Y){let J=Y.toString(16);return J.length&1?"0"+J:J}function OE(Y){if(typeof Y!=="string")throw Error("hex string expected, got "+typeof Y);return Y===""?yz:BigInt("0x"+Y)}function UX(Y){if(aY(Y),DE)return Y.toHex();let J="";for(let Q=0;Q<Y.length;Q++)J+=BZ[Y[Q]];return J}function ME(Y){if(Y>=nY._0&&Y<=nY._9)return Y-nY._0;if(Y>=nY.A&&Y<=nY.F)return Y-(nY.A-10);if(Y>=nY.a&&Y<=nY.f)return Y-(nY.a-10);return}function XG(Y){if(typeof Y!=="string")throw Error("hex string expected, got "+typeof Y);if(DE)return Uint8Array.fromHex(Y);let J=Y.length,Q=J/2;if(J%2)throw Error("hex string expected, got unpadded hex of length "+J);let q=new Uint8Array(Q);for(let X=0,G=0;X<Q;X++,G+=2){let $=ME(Y.charCodeAt(G)),W=ME(Y.charCodeAt(G+1));if($===void 0||W===void 0){let j=Y[G]+Y[G+1];throw Error('hex string expected, got non-hex character "'+j+'" at index '+G)}q[X]=$*16+W}return q}function A8(Y){return OE(UX(Y))}function lz(Y){return aY(Y),OE(UX(Uint8Array.from(Y).reverse()))}function LY(Y,J){return XG(Y.toString(16).padStart(J*2,"0"))}function uz(Y,J){return LY(Y,J).reverse()}function o0(Y,J,Q){let q;if(typeof J==="string")try{q=XG(J)}catch(G){throw Error(Y+" must be hex string or Uint8Array, cause: "+G)}else if(OX(J))q=Uint8Array.from(J);else throw Error(Y+" must be hex string or Uint8Array");let X=q.length;if(typeof Q==="number"&&X!==Q)throw Error(Y+" of length "+Q+" expected, got "+X);return q}function U8(...Y){let J=0;for(let q=0;q<Y.length;q++){let X=Y[q];aY(X),J+=X.length}let Q=new Uint8Array(J);for(let q=0,X=0;q<Y.length;q++){let G=Y[q];Q.set(G,X),X+=G.length}return Q}function o9(Y){if(typeof Y!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(Y))}function UQ(Y,J,Q){return fz(Y)&&fz(J)&&fz(Q)&&J<=Y&&Y<Q}function eY(Y,J,Q,q){if(!UQ(J,Q,q))throw Error("expected valid "+Y+": "+Q+" <= n < "+q+", got "+J)}function UE(Y){let J;for(J=0;Y>yz;Y>>=mz,J+=1);return J}function HE(Y,J,Q){if(typeof Y!=="number"||Y<2)throw Error("hashLen must be a number");if(typeof J!=="number"||J<2)throw Error("qByteLen must be a number");if(typeof Q!=="function")throw Error("hmacFn must be a function");let q=hz(Y),X=hz(Y),G=0,$=()=>{q.fill(1),X.fill(0),G=0},W=(...M)=>Q(X,q,...M),j=(M=hz(0))=>{if(X=W(NE([0]),M),q=W(),M.length===0)return;X=W(NE([1]),M),q=W()},K=()=>{if(G++>=1000)throw Error("drbg: tried 1000 values");let M=0,N=[];while(M<J){q=W();let O=q.slice();N.push(O),M+=q.length}return U8(...N)};return(M,N)=>{$(),j(M);let O=void 0;while(!(O=N(K())))j();return $(),O}}function YJ(Y,J,Q={}){let q=(X,G,$)=>{let W=RZ[G];if(typeof W!=="function")throw Error("invalid validator function");let j=Y[X];if($&&j===void 0)return;if(!W(j,Y))throw Error("param "+String(X)+" is invalid. Expected "+G+", got "+j)};for(let[X,G]of Object.entries(J))q(X,G,!1);for(let[X,G]of Object.entries(Q))q(X,G,!0);return Y}function cz(Y){let J=new WeakMap;return(Q,...q)=>{let X=J.get(Q);if(X!==void 0)return X;let G=Y(Q,...q);return J.set(Q,G),G}}var yz,mz,DE,BZ,nY,fz=(Y)=>typeof Y==="bigint"&&yz<=Y,HQ=(Y)=>(mz<<BigInt(Y))-mz,hz=(Y)=>new Uint8Array(Y),NE=(Y)=>Uint8Array.from(Y),RZ;var HX=S8(()=>{/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */yz=BigInt(0),mz=BigInt(1);DE=typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function",BZ=Array.from({length:256},(Y,J)=>J.toString(16).padStart(2,"0"));nY={_0:48,_9:57,A:65,F:70,a:97,f:102};RZ={bigint:(Y)=>typeof Y==="bigint",function:(Y)=>typeof Y==="function",boolean:(Y)=>typeof Y==="boolean",string:(Y)=>typeof Y==="string",stringOrUint8Array:(Y)=>typeof Y==="string"||OX(Y),isSafeInteger:(Y)=>Number.isSafeInteger(Y),array:(Y)=>Array.isArray(Y),field:(Y,J)=>J.Fp.isValid(Y),hash:(Y)=>typeof Y==="function"&&Number.isSafeInteger(Y.outputLen)}});function c0(Y,J){let Q=Y%J;return Q>=H8?Q:J+Q}function x8(Y,J,Q){let q=Y;while(J-- >H8)q*=q,q%=Q;return q}function d9(Y,J){if(Y===H8)throw Error("invert: expected non-zero number");if(J<=H8)throw Error("invert: expected positive modulus, got "+J);let Q=c0(Y,J),q=J,X=H8,G=W8,$=W8,W=H8;while(Q!==H8){let K=q/Q,z=q%Q,M=X-$*K,N=G-W*K;q=Q,Q=z,X=$,G=W,$=M,W=N}if(q!==W8)throw Error("invert: does not exist");return c0(X,J)}function EE(Y,J){let Q=(Y.ORDER+W8)/RE,q=Y.pow(J,Q);if(!Y.eql(Y.sqr(q),J))throw Error("Cannot find square root");return q}function LZ(Y,J){let Q=(Y.ORDER-VE)/LE,q=Y.mul(J,BQ),X=Y.pow(q,Q),G=Y.mul(J,X),$=Y.mul(Y.mul(G,BQ),X),W=Y.mul(G,Y.sub($,Y.ONE));if(!Y.eql(Y.sqr(W),J))throw Error("Cannot find square root");return W}function EZ(Y){if(Y<BigInt(3))throw Error("sqrt is not defined for small field");let J=Y-W8,Q=0;while(J%BQ===H8)J/=BQ,Q++;let q=BQ,X=qG(Y);while(BE(X,q)===1)if(q++>1000)throw Error("Cannot find square root: probably non-prime P");if(Q===1)return EE;let G=X.pow(q,J),$=(J+W8)/BQ;return function(j,K){if(j.is0(K))return K;if(BE(j,K)!==1)throw Error("Cannot find square root");let z=Q,M=j.mul(j.ONE,G),N=j.pow(K,J),O=j.pow(K,$);while(!j.eql(N,j.ONE)){if(j.is0(N))return j.ZERO;let D=1,U=j.sqr(N);while(!j.eql(U,j.ONE))if(D++,U=j.sqr(U),D===z)throw Error("Cannot find square root");let A=W8<<BigInt(z-D-1),w=j.pow(M,A);z=D,M=j.sqr(w),N=j.mul(N,M),O=j.mul(O,w)}return O}}function wZ(Y){if(Y%RE===VZ)return EE;if(Y%LE===VE)return LZ;return EZ(Y)}function r9(Y){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},Q=AZ.reduce((q,X)=>{return q[X]="function",q},J);return YJ(Y,Q)}function CZ(Y,J,Q){if(Q<H8)throw Error("invalid exponent, negatives unsupported");if(Q===H8)return Y.ONE;if(Q===W8)return J;let q=Y.ONE,X=J;while(Q>H8){if(Q&W8)q=Y.mul(q,X);X=Y.sqr(X),Q>>=W8}return q}function BX(Y,J,Q=!1){let q=Array(J.length).fill(Q?Y.ZERO:void 0),X=J.reduce(($,W,j)=>{if(Y.is0(W))return $;return q[j]=$,Y.mul($,W)},Y.ONE),G=Y.inv(X);return J.reduceRight(($,W,j)=>{if(Y.is0(W))return $;return q[j]=Y.mul($,q[j]),Y.mul($,W)},G),q}function BE(Y,J){let Q=(Y.ORDER-W8)/BQ,q=Y.pow(J,Q),X=Y.eql(q,Y.ONE),G=Y.eql(q,Y.ZERO),$=Y.eql(q,Y.neg(Y.ONE));if(!X&&!G&&!$)throw Error("invalid Legendre symbol result");return X?1:G?0:-1}function bz(Y,J){if(J!==void 0)MQ(J);let Q=J!==void 0?J:Y.toString(2).length,q=Math.ceil(Q/8);return{nBitLength:Q,nByteLength:q}}function qG(Y,J,Q=!1,q={}){if(Y<=H8)throw Error("invalid field: expected ORDER > 0, got "+Y);let{nBitLength:X,nByteLength:G}=bz(Y,J);if(G>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let $,W=Object.freeze({ORDER:Y,isLE:Q,BITS:X,BYTES:G,MASK:HQ(X),ZERO:H8,ONE:W8,create:(j)=>c0(j,Y),isValid:(j)=>{if(typeof j!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof j);return H8<=j&&j<Y},is0:(j)=>j===H8,isOdd:(j)=>(j&W8)===W8,neg:(j)=>c0(-j,Y),eql:(j,K)=>j===K,sqr:(j)=>c0(j*j,Y),add:(j,K)=>c0(j+K,Y),sub:(j,K)=>c0(j-K,Y),mul:(j,K)=>c0(j*K,Y),pow:(j,K)=>CZ(W,j,K),div:(j,K)=>c0(j*d9(K,Y),Y),sqrN:(j)=>j*j,addN:(j,K)=>j+K,subN:(j,K)=>j-K,mulN:(j,K)=>j*K,inv:(j)=>d9(j,Y),sqrt:q.sqrt||((j)=>{if(!$)$=wZ(Y);return $(W,j)}),toBytes:(j)=>Q?uz(j,G):LY(j,G),fromBytes:(j)=>{if(j.length!==G)throw Error("Field.fromBytes: expected "+G+" bytes, got "+j.length);return Q?lz(j):A8(j)},invertBatch:(j)=>BX(W,j),cmov:(j,K,z)=>z?K:j});return Object.freeze(W)}function wE(Y){if(typeof Y!=="bigint")throw Error("field order must be bigint");let J=Y.toString(2).length;return Math.ceil(J/8)}function pz(Y){let J=wE(Y);return J+Math.ceil(J/2)}function AE(Y,J,Q=!1){let q=Y.length,X=wE(J),G=pz(J);if(q<16||q<G||q>1024)throw Error("expected "+G+"-1024 bytes of input, got "+q);let $=Q?lz(Y):A8(Y),W=c0($,J-W8)+W8;return Q?uz(W,X):LY(W,X)}var H8,W8,BQ,VZ,RE,VE,LE,AZ;var GG=S8(()=>{VJ();HX();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */H8=BigInt(0),W8=BigInt(1),BQ=BigInt(2),VZ=BigInt(3),RE=BigInt(4),VE=BigInt(5),LE=BigInt(8);AZ=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"]});function oz(Y,J){let Q=J.negate();return Y?Q:J}function SE(Y,J){if(!Number.isSafeInteger(Y)||Y<=0||Y>J)throw Error("invalid window size, expected [1.."+J+"], got W="+Y)}function dz(Y,J){SE(Y,J);let Q=Math.ceil(J/Y)+1,q=2**(Y-1),X=2**Y,G=HQ(Y),$=BigInt(Y);return{windows:Q,windowSize:q,mask:G,maxNumber:X,shiftBy:$}}function IE(Y,J,Q){let{windowSize:q,mask:X,maxNumber:G,shiftBy:$}=Q,W=Number(Y&X),j=Y>>$;if(W>q)W-=G,j+=iz;let K=J*q,z=K+Math.abs(W)-1,M=W===0,N=W<0,O=J%2!==0;return{nextN:j,offset:z,isZero:M,isNeg:N,isNegF:O,offsetF:K}}function IZ(Y,J){if(!Array.isArray(Y))throw Error("array expected");Y.forEach((Q,q)=>{if(!(Q instanceof J))throw Error("invalid point at index "+q)})}function SZ(Y,J){if(!Array.isArray(Y))throw Error("array of scalars expected");Y.forEach((Q,q)=>{if(!J.isValid(Q))throw Error("invalid scalar at index "+q)})}function sz(Y){return vE.get(Y)||1}function _E(Y,J){return{constTimeNegate:oz,hasPrecomputes(Q){return sz(Q)!==1},unsafeLadder(Q,q,X=Y.ZERO){let G=Q;while(q>CE){if(q&iz)X=X.add(G);G=G.double(),q>>=iz}return X},precomputeWindow(Q,q){let{windows:X,windowSize:G}=dz(q,J),$=[],W=Q,j=W;for(let K=0;K<X;K++){j=W,$.push(j);for(let z=1;z<G;z++)j=j.add(W),$.push(j);W=j.double()}return $},wNAF(Q,q,X){let{ZERO:G,BASE:$}=Y,W=dz(Q,J);for(let j=0;j<W.windows;j++){let{nextN:K,offset:z,isZero:M,isNeg:N,isNegF:O,offsetF:D}=IE(X,j,W);if(X=K,M)$=$.add(oz(O,q[D]));else G=G.add(oz(N,q[z]))}return{p:G,f:$}},wNAFUnsafe(Q,q,X,G=Y.ZERO){let $=dz(Q,J);for(let W=0;W<$.windows;W++){if(X===CE)break;let{nextN:j,offset:K,isZero:z,isNeg:M}=IE(X,W,$);if(X=j,z)continue;else{let N=q[K];G=G.add(M?N.negate():N)}}return G},getPrecomputes(Q,q,X){let G=rz.get(q);if(!G){if(G=this.precomputeWindow(q,Q),Q!==1)rz.set(q,X(G))}return G},wNAFCached(Q,q,X){let G=sz(Q);return this.wNAF(G,this.getPrecomputes(G,Q,X),q)},wNAFCachedUnsafe(Q,q,X,G){let $=sz(Q);if($===1)return this.unsafeLadder(Q,q,G);return this.wNAFUnsafe($,this.getPrecomputes($,Q,X),q,G)},setWindowSize(Q,q){SE(q,J),vE.set(Q,q),rz.delete(Q)}}}function kE(Y,J,Q,q){IZ(Q,Y),SZ(q,J);let X=Q.length,G=q.length;if(X!==G)throw Error("arrays of points and scalars must have equal length");let $=Y.ZERO,W=UE(BigInt(X)),j=1;if(W>12)j=W-3;else if(W>4)j=W-2;else if(W>0)j=2;let K=HQ(j),z=Array(Number(K)+1).fill($),M=Math.floor((J.BITS-1)/j)*j,N=$;for(let O=M;O>=0;O-=j){z.fill($);for(let U=0;U<G;U++){let A=q[U],w=Number(A>>BigInt(O)&K);z[w]=z[w].add(Q[U])}let D=$;for(let U=z.length-1,A=$;U>0;U--)A=A.add(z[U]),D=D.add(A);if(N=N.add(D),O!==0)for(let U=0;U<j;U++)N=N.double()}return N}function tz(Y){return r9(Y.Fp),YJ(Y,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...bz(Y.n,Y.nBitLength),...Y,...{p:Y.Fp.ORDER}})}var CE,iz,rz,vE;var FE=S8(()=>{GG();HX();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */CE=BigInt(0),iz=BigInt(1);rz=new WeakMap,vE=new WeakMap});function PE(Y){if(Y.lowS!==void 0)DX("lowS",Y.lowS);if(Y.prehash!==void 0)DX("prehash",Y.prehash)}function vZ(Y){let J=tz(Y);YJ(J,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});let{endo:Q,Fp:q,a:X}=J;if(Q){if(!q.eql(X,q.ZERO))throw Error("invalid endo: CURVE.a must be 0");if(typeof Q!=="object"||typeof Q.beta!=="bigint"||typeof Q.splitScalar!=="function")throw Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...J})}function nz(Y,J){return UX(LY(Y,J))}function _Z(Y){let J=vZ(Y),{Fp:Q}=J,q=qG(J.n,J.nBitLength),X=J.toBytes||((R,E,C)=>{let S=E.toAffine();return U8(Uint8Array.from([4]),Q.toBytes(S.x),Q.toBytes(S.y))}),G=J.fromBytes||((R)=>{let E=R.subarray(1),C=Q.fromBytes(E.subarray(0,Q.BYTES)),S=Q.fromBytes(E.subarray(Q.BYTES,2*Q.BYTES));return{x:C,y:S}});function $(R){let{a:E,b:C}=J,S=Q.sqr(R),T=Q.mul(S,R);return Q.add(Q.add(T,Q.mul(R,E)),C)}function W(R,E){let C=Q.sqr(E),S=$(R);return Q.eql(C,S)}if(!W(J.Gx,J.Gy))throw Error("bad curve params: generator point");let j=Q.mul(Q.pow(J.a,$G),az),K=Q.mul(Q.sqr(J.b),BigInt(27));if(Q.is0(Q.add(j,K)))throw Error("bad curve params: a or b");function z(R){return UQ(R,A0,J.n)}function M(R){let{allowedPrivateKeyLengths:E,nByteLength:C,wrapPrivateKey:S,n:T}=J;if(E&&typeof R!=="bigint"){if(OX(R))R=UX(R);if(typeof R!=="string"||!E.includes(R.length))throw Error("invalid private key");R=R.padStart(C*2,"0")}let d;try{d=typeof R==="bigint"?R:A8(o0("private key",R,C))}catch(u){throw Error("invalid private key, expected hex or "+C+" bytes, got "+typeof R)}if(S)d=c0(d,T);return eY("private key",d,A0,T),d}function N(R){if(!(R instanceof U))throw Error("ProjectivePoint expected")}let O=cz((R,E)=>{let{px:C,py:S,pz:T}=R;if(Q.eql(T,Q.ONE))return{x:C,y:S};let d=R.is0();if(E==null)E=d?Q.ONE:Q.inv(T);let u=Q.mul(C,E),f=Q.mul(S,E),n=Q.mul(T,E);if(d)return{x:Q.ZERO,y:Q.ZERO};if(!Q.eql(n,Q.ONE))throw Error("invZ was invalid");return{x:u,y:f}}),D=cz((R)=>{if(R.is0()){if(J.allowInfinityPoint&&!Q.is0(R.py))return;throw Error("bad point: ZERO")}let{x:E,y:C}=R.toAffine();if(!Q.isValid(E)||!Q.isValid(C))throw Error("bad point: x or y not FE");if(!W(E,C))throw Error("bad point: equation left != right");if(!R.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});class U{constructor(R,E,C){if(R==null||!Q.isValid(R))throw Error("x required");if(E==null||!Q.isValid(E)||Q.is0(E))throw Error("y required");if(C==null||!Q.isValid(C))throw Error("z required");this.px=R,this.py=E,this.pz=C,Object.freeze(this)}static fromAffine(R){let{x:E,y:C}=R||{};if(!R||!Q.isValid(E)||!Q.isValid(C))throw Error("invalid affine point");if(R instanceof U)throw Error("projective point not allowed");let S=(T)=>Q.eql(T,Q.ZERO);if(S(E)&&S(C))return U.ZERO;return new U(E,C,Q.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(R){let E=BX(Q,R.map((C)=>C.pz));return R.map((C,S)=>C.toAffine(E[S])).map(U.fromAffine)}static fromHex(R){let E=U.fromAffine(G(o0("pointHex",R)));return E.assertValidity(),E}static fromPrivateKey(R){return U.BASE.multiply(M(R))}static msm(R,E){return kE(U,q,R,E)}_setWindowSize(R){v.setWindowSize(this,R)}assertValidity(){D(this)}hasEvenY(){let{y:R}=this.toAffine();if(Q.isOdd)return!Q.isOdd(R);throw Error("Field doesn't support isOdd")}equals(R){N(R);let{px:E,py:C,pz:S}=this,{px:T,py:d,pz:u}=R,f=Q.eql(Q.mul(E,u),Q.mul(T,S)),n=Q.eql(Q.mul(C,u),Q.mul(d,S));return f&&n}negate(){return new U(this.px,Q.neg(this.py),this.pz)}double(){let{a:R,b:E}=J,C=Q.mul(E,$G),{px:S,py:T,pz:d}=this,u=Q.ZERO,f=Q.ZERO,n=Q.ZERO,t=Q.mul(S,S),R0=Q.mul(T,T),a=Q.mul(d,d),B=Q.mul(S,T);return B=Q.add(B,B),n=Q.mul(S,d),n=Q.add(n,n),u=Q.mul(R,n),f=Q.mul(C,a),f=Q.add(u,f),u=Q.sub(R0,f),f=Q.add(R0,f),f=Q.mul(u,f),u=Q.mul(B,u),n=Q.mul(C,n),a=Q.mul(R,a),B=Q.sub(t,a),B=Q.mul(R,B),B=Q.add(B,n),n=Q.add(t,t),t=Q.add(n,t),t=Q.add(t,a),t=Q.mul(t,B),f=Q.add(f,t),a=Q.mul(T,d),a=Q.add(a,a),t=Q.mul(a,B),u=Q.sub(u,t),n=Q.mul(a,R0),n=Q.add(n,n),n=Q.add(n,n),new U(u,f,n)}add(R){N(R);let{px:E,py:C,pz:S}=this,{px:T,py:d,pz:u}=R,f=Q.ZERO,n=Q.ZERO,t=Q.ZERO,R0=J.a,a=Q.mul(J.b,$G),B=Q.mul(E,T),I=Q.mul(C,d),g=Q.mul(S,u),i=Q.add(E,C),l=Q.add(T,d);i=Q.mul(i,l),l=Q.add(B,I),i=Q.sub(i,l),l=Q.add(E,S);let b=Q.add(T,u);return l=Q.mul(l,b),b=Q.add(B,g),l=Q.sub(l,b),b=Q.add(C,S),f=Q.add(d,u),b=Q.mul(b,f),f=Q.add(I,g),b=Q.sub(b,f),t=Q.mul(R0,l),f=Q.mul(a,g),t=Q.add(f,t),f=Q.sub(I,t),t=Q.add(I,t),n=Q.mul(f,t),I=Q.add(B,B),I=Q.add(I,B),g=Q.mul(R0,g),l=Q.mul(a,l),I=Q.add(I,g),g=Q.sub(B,g),g=Q.mul(R0,g),l=Q.add(l,g),B=Q.mul(I,l),n=Q.add(n,B),B=Q.mul(b,l),f=Q.mul(i,f),f=Q.sub(f,B),B=Q.mul(i,I),t=Q.mul(b,t),t=Q.add(t,B),new U(f,n,t)}subtract(R){return this.add(R.negate())}is0(){return this.equals(U.ZERO)}wNAF(R){return v.wNAFCached(this,R,U.normalizeZ)}multiplyUnsafe(R){let{endo:E,n:C}=J;eY("scalar",R,QY,C);let S=U.ZERO;if(R===QY)return S;if(this.is0()||R===A0)return this;if(!E||v.hasPrecomputes(this))return v.wNAFCachedUnsafe(this,R,U.normalizeZ);let{k1neg:T,k1:d,k2neg:u,k2:f}=E.splitScalar(R),n=S,t=S,R0=this;while(d>QY||f>QY){if(d&A0)n=n.add(R0);if(f&A0)t=t.add(R0);R0=R0.double(),d>>=A0,f>>=A0}if(T)n=n.negate();if(u)t=t.negate();return t=new U(Q.mul(t.px,E.beta),t.py,t.pz),n.add(t)}multiply(R){let{endo:E,n:C}=J;eY("scalar",R,A0,C);let S,T;if(E){let{k1neg:d,k1:u,k2neg:f,k2:n}=E.splitScalar(R),{p:t,f:R0}=this.wNAF(u),{p:a,f:B}=this.wNAF(n);t=v.constTimeNegate(d,t),a=v.constTimeNegate(f,a),a=new U(Q.mul(a.px,E.beta),a.py,a.pz),S=t.add(a),T=R0.add(B)}else{let{p:d,f:u}=this.wNAF(R);S=d,T=u}return U.normalizeZ([S,T])[0]}multiplyAndAddUnsafe(R,E,C){let S=U.BASE,T=(u,f)=>f===QY||f===A0||!u.equals(S)?u.multiplyUnsafe(f):u.multiply(f),d=T(this,E).add(T(R,C));return d.is0()?void 0:d}toAffine(R){return O(this,R)}isTorsionFree(){let{h:R,isTorsionFree:E}=J;if(R===A0)return!0;if(E)return E(U,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:R,clearCofactor:E}=J;if(R===A0)return this;if(E)return E(U,this);return this.multiplyUnsafe(J.h)}toRawBytes(R=!0){return DX("isCompressed",R),this.assertValidity(),X(U,this,R)}toHex(R=!0){return DX("isCompressed",R),UX(this.toRawBytes(R))}}U.BASE=new U(J.Gx,J.Gy,Q.ONE),U.ZERO=new U(Q.ZERO,Q.ONE,Q.ZERO);let{endo:A,nBitLength:w}=J,v=_E(U,A?Math.ceil(w/2):w);return{CURVE:J,ProjectivePoint:U,normPrivateKeyToScalar:M,weierstrassEquation:$,isWithinCurveOrder:z}}function kZ(Y){let J=tz(Y);return YJ(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function ZE(Y){let J=kZ(Y),{Fp:Q,n:q,nByteLength:X,nBitLength:G}=J,$=Q.BYTES+1,W=2*Q.BYTES+1;function j(B){return c0(B,q)}function K(B){return d9(B,q)}let{ProjectivePoint:z,normPrivateKeyToScalar:M,weierstrassEquation:N,isWithinCurveOrder:O}=_Z({...J,toBytes(B,I,g){let i=I.toAffine(),l=Q.toBytes(i.x),b=U8;if(DX("isCompressed",g),g)return b(Uint8Array.from([I.hasEvenY()?2:3]),l);else return b(Uint8Array.from([4]),l,Q.toBytes(i.y))},fromBytes(B){let I=B.length,g=B[0],i=B.subarray(1);if(I===$&&(g===2||g===3)){let l=A8(i);if(!UQ(l,A0,Q.ORDER))throw Error("Point is not on curve");let b=N(l),T0;try{T0=Q.sqrt(b)}catch(t0){let y0=t0 instanceof Error?": "+t0.message:"";throw Error("Point is not on curve"+y0)}let L0=(T0&A0)===A0;if((g&1)===1!==L0)T0=Q.neg(T0);return{x:l,y:T0}}else if(I===W&&g===4){let l=Q.fromBytes(i.subarray(0,Q.BYTES)),b=Q.fromBytes(i.subarray(Q.BYTES,2*Q.BYTES));return{x:l,y:b}}else{let l=$,b=W;throw Error("invalid Point, expected length of "+l+", or uncompressed "+b+", got "+I)}}});function D(B){let I=q>>A0;return B>I}function U(B){return D(B)?j(-B):B}let A=(B,I,g)=>A8(B.slice(I,g));class w{constructor(B,I,g){if(eY("r",B,A0,q),eY("s",I,A0,q),this.r=B,this.s=I,g!=null)this.recovery=g;Object.freeze(this)}static fromCompact(B){let I=X;return B=o0("compactSignature",B,I*2),new w(A(B,0,I),A(B,I,2*I))}static fromDER(B){let{r:I,s:g}=JJ.toSig(o0("DER",B));return new w(I,g)}assertValidity(){}addRecoveryBit(B){return new w(this.r,this.s,B)}recoverPublicKey(B){let{r:I,s:g,recovery:i}=this,l=T(o0("msgHash",B));if(i==null||![0,1,2,3].includes(i))throw Error("recovery id invalid");let b=i===2||i===3?I+J.n:I;if(b>=Q.ORDER)throw Error("recovery id 2 or 3 invalid");let T0=(i&1)===0?"02":"03",L0=z.fromHex(T0+nz(b,Q.BYTES)),d0=K(b),t0=j(-l*d0),y0=j(g*d0),Q8=z.BASE.multiplyAndAddUnsafe(L0,t0,y0);if(!Q8)throw Error("point at infinify");return Q8.assertValidity(),Q8}hasHighS(){return D(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,j(-this.s),this.recovery):this}toDERRawBytes(){return XG(this.toDERHex())}toDERHex(){return JJ.hexFromSig(this)}toCompactRawBytes(){return XG(this.toCompactHex())}toCompactHex(){let B=X;return nz(this.r,B)+nz(this.s,B)}}let v={isValidPrivateKey(B){try{return M(B),!0}catch(I){return!1}},normPrivateKeyToScalar:M,randomPrivateKey:()=>{let B=pz(J.n);return AE(J.randomBytes(B),J.n)},precompute(B=8,I=z.BASE){return I._setWindowSize(B),I.multiply(BigInt(3)),I}};function R(B,I=!0){return z.fromPrivateKey(B).toRawBytes(I)}function E(B){if(typeof B==="bigint")return!1;if(B instanceof z)return!0;let g=o0("key",B).length,i=Q.BYTES,l=i+1,b=2*i+1;if(J.allowedPrivateKeyLengths||X===l)return;else return g===l||g===b}function C(B,I,g=!0){if(E(B)===!0)throw Error("first arg must be private key");if(E(I)===!1)throw Error("second arg must be public key");return z.fromHex(I).multiply(M(B)).toRawBytes(g)}let S=J.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let I=A8(B),g=B.length*8-G;return g>0?I>>BigInt(g):I},T=J.bits2int_modN||function(B){return j(S(B))},d=HQ(G);function u(B){return eY("num < 2^"+G,B,QY,d),LY(B,X)}function f(B,I,g=n){if(["recovered","canonical"].some((K8)=>(K8 in g)))throw Error("sign() legacy options not supported");let{hash:i,randomBytes:l}=J,{lowS:b,prehash:T0,extraEntropy:L0}=g;if(b==null)b=!0;if(B=o0("msgHash",B),PE(g),T0)B=o0("prehashed msgHash",i(B));let d0=T(B),t0=M(I),y0=[u(t0),u(d0)];if(L0!=null&&L0!==!1){let K8=L0===!0?l(Q.BYTES):L0;y0.push(o0("extraEntropy",K8))}let Q8=U8(...y0),IY=d0;function PJ(K8){let I8=S(K8);if(!O(I8))return;let g8=K(I8),o8=z.BASE.multiply(I8).toAffine(),f8=j(o8.x);if(f8===QY)return;let jY=j(g8*j(IY+f8*t0));if(jY===QY)return;let SY=(o8.x===f8?0:2)|Number(o8.y&A0),xX=jY;if(b&&D(jY))xX=U(jY),SY^=1;return new w(f8,xX,SY)}return{seed:Q8,k2sig:PJ}}let n={lowS:J.lowS,prehash:!1},t={lowS:J.lowS,prehash:!1};function R0(B,I,g=n){let{seed:i,k2sig:l}=f(B,I,g),b=J;return HE(b.hash.outputLen,b.nByteLength,b.hmac)(i,l)}z.BASE._setWindowSize(8);function a(B,I,g,i=t){let l=B;I=o0("msgHash",I),g=o0("publicKey",g);let{lowS:b,prehash:T0,format:L0}=i;if(PE(i),"strict"in i)throw Error("options.strict was renamed to lowS");if(L0!==void 0&&L0!=="compact"&&L0!=="der")throw Error("format must be compact or der");let d0=typeof l==="string"||OX(l),t0=!d0&&!L0&&typeof l==="object"&&l!==null&&typeof l.r==="bigint"&&typeof l.s==="bigint";if(!d0&&!t0)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");let y0=void 0,Q8;try{if(t0)y0=new w(l.r,l.s);if(d0){try{if(L0!=="compact")y0=w.fromDER(l)}catch(SY){if(!(SY instanceof JJ.Err))throw SY}if(!y0&&L0!=="der")y0=w.fromCompact(l)}Q8=z.fromHex(g)}catch(SY){return!1}if(!y0)return!1;if(b&&y0.hasHighS())return!1;if(T0)I=J.hash(I);let{r:IY,s:PJ}=y0,K8=T(I),I8=K(PJ),g8=j(K8*I8),o8=j(IY*I8),f8=z.BASE.multiplyAndAddUnsafe(Q8,g8,o8)?.toAffine();if(!f8)return!1;return j(f8.x)===IY}return{CURVE:J,getPublicKey:R,getSharedSecret:C,sign:R0,verify:a,ProjectivePoint:z,Signature:w,utils:v}}function FZ(Y,J){let Q=Y.ORDER,q=QY;for(let D=Q-A0;D%AJ===QY;D/=AJ)q+=A0;let X=q,G=AJ<<X-A0-A0,$=G*AJ,W=(Q-A0)/$,j=(W-A0)/AJ,K=$-A0,z=G,M=Y.pow(J,W),N=Y.pow(J,(W+A0)/AJ),O=(D,U)=>{let A=M,w=Y.pow(U,K),v=Y.sqr(w);v=Y.mul(v,U);let R=Y.mul(D,v);R=Y.pow(R,j),R=Y.mul(R,w),w=Y.mul(R,U),v=Y.mul(R,D);let E=Y.mul(v,w);R=Y.pow(E,z);let C=Y.eql(R,Y.ONE);w=Y.mul(v,N),R=Y.mul(E,A),v=Y.cmov(w,v,C),E=Y.cmov(R,E,C);for(let S=X;S>A0;S--){let T=S-AJ;T=AJ<<T-A0;let d=Y.pow(E,T),u=Y.eql(d,Y.ONE);w=Y.mul(v,A),A=Y.mul(A,A),d=Y.mul(E,A),v=Y.cmov(w,v,u),E=Y.cmov(d,E,u)}return{isValid:C,value:v}};if(Y.ORDER%az===$G){let D=(Y.ORDER-$G)/az,U=Y.sqrt(Y.neg(J));O=(A,w)=>{let v=Y.sqr(w),R=Y.mul(A,w);v=Y.mul(v,R);let E=Y.pow(v,D);E=Y.mul(E,R);let C=Y.mul(E,U),S=Y.mul(Y.sqr(E),w),T=Y.eql(S,A),d=Y.cmov(C,E,T);return{isValid:T,value:d}}}return O}function xE(Y,J){if(r9(Y),!Y.isValid(J.A)||!Y.isValid(J.B)||!Y.isValid(J.Z))throw Error("mapToCurveSimpleSWU: invalid opts");let Q=FZ(Y,J.Z);if(!Y.isOdd)throw Error("Fp.isOdd is not implemented!");return(q)=>{let X,G,$,W,j,K,z,M;X=Y.sqr(q),X=Y.mul(X,J.Z),G=Y.sqr(X),G=Y.add(G,X),$=Y.add(G,Y.ONE),$=Y.mul($,J.B),W=Y.cmov(J.Z,Y.neg(G),!Y.eql(G,Y.ZERO)),W=Y.mul(W,J.A),G=Y.sqr($),K=Y.sqr(W),j=Y.mul(K,J.A),G=Y.add(G,j),G=Y.mul(G,$),K=Y.mul(K,W),j=Y.mul(K,J.B),G=Y.add(G,j),z=Y.mul(X,$);let{isValid:N,value:O}=Q(G,K);M=Y.mul(X,q),M=Y.mul(M,O),z=Y.cmov(z,$,N),M=Y.cmov(M,O,N);let D=Y.isOdd(q)===Y.isOdd(M);M=Y.cmov(Y.neg(M),M,D);let U=BX(Y,[W],!0)[0];return z=Y.mul(z,U),{x:z,y:M}}}var TE,JJ,QY,A0,AJ,$G,az;var ez=S8(()=>{FE();GG();HX();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */TE=class TE extends Error{constructor(Y=""){super(Y)}};JJ={Err:TE,_tlv:{encode:(Y,J)=>{let{Err:Q}=JJ;if(Y<0||Y>256)throw new Q("tlv.encode: wrong tag");if(J.length&1)throw new Q("tlv.encode: unpadded data");let q=J.length/2,X=QG(q);if(X.length/2&128)throw new Q("tlv.encode: long form length too big");let G=q>127?QG(X.length/2|128):"";return QG(Y)+G+X+J},decode(Y,J){let{Err:Q}=JJ,q=0;if(Y<0||Y>256)throw new Q("tlv.encode: wrong tag");if(J.length<2||J[q++]!==Y)throw new Q("tlv.decode: wrong tlv");let X=J[q++],G=!!(X&128),$=0;if(!G)$=X;else{let j=X&127;if(!j)throw new Q("tlv.decode(long): indefinite length not supported");if(j>4)throw new Q("tlv.decode(long): byte length is too big");let K=J.subarray(q,q+j);if(K.length!==j)throw new Q("tlv.decode: length bytes not complete");if(K[0]===0)throw new Q("tlv.decode(long): zero leftmost byte");for(let z of K)$=$<<8|z;if(q+=j,$<128)throw new Q("tlv.decode(long): not minimal encoding")}let W=J.subarray(q,q+$);if(W.length!==$)throw new Q("tlv.decode: wrong value length");return{v:W,l:J.subarray(q+$)}}},_int:{encode(Y){let{Err:J}=JJ;if(Y<QY)throw new J("integer: negative integers are not allowed");let Q=QG(Y);if(Number.parseInt(Q[0],16)&8)Q="00"+Q;if(Q.length&1)throw new J("unexpected DER parsing assertion: unpadded hex");return Q},decode(Y){let{Err:J}=JJ;if(Y[0]&128)throw new J("invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new J("invalid signature integer: unnecessary leading zero");return A8(Y)}},toSig(Y){let{Err:J,_int:Q,_tlv:q}=JJ,X=o0("signature",Y),{v:G,l:$}=q.decode(48,X);if($.length)throw new J("invalid signature: left bytes after parsing");let{v:W,l:j}=q.decode(2,G),{v:K,l:z}=q.decode(2,j);if(z.length)throw new J("invalid signature: left bytes after parsing");return{r:Q.decode(W),s:Q.decode(K)}},hexFromSig(Y){let{_tlv:J,_int:Q}=JJ,q=J.encode(2,Q.encode(Y.r)),X=J.encode(2,Q.encode(Y.s)),G=q+X;return J.encode(48,G)}};QY=BigInt(0),A0=BigInt(1),AJ=BigInt(2),$G=BigInt(3),az=BigInt(4)});function PZ(Y){return{hash:Y,hmac:(J,...Q)=>gz(Y,J,lL(...Q)),randomBytes:l9}}function gE(Y,J){let Q=(q)=>ZE({...Y,...PZ(q)});return{...Q(J),create:Q}}var fE=S8(()=>{zE();VJ();ez();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */});function CJ(Y,J){if(WG(Y),WG(J),Y<0||Y>=1<<8*J)throw Error("invalid I2OSP input: "+Y);let Q=Array.from({length:J}).fill(0);for(let q=J-1;q>=0;q--)Q[q]=Y&255,Y>>>=8;return new Uint8Array(Q)}function ZZ(Y,J){let Q=new Uint8Array(Y.length);for(let q=0;q<Y.length;q++)Q[q]=Y[q]^J[q];return Q}function WG(Y){if(!Number.isSafeInteger(Y))throw Error("number expected")}function xZ(Y,J,Q,q){if(aY(Y),aY(J),WG(Q),J.length>255)J=q(U8(o9("H2C-OVERSIZE-DST-"),J));let{outputLen:X,blockLen:G}=q,$=Math.ceil(Q/X);if(Q>65535||$>255)throw Error("expand_message_xmd: invalid lenInBytes");let W=U8(J,CJ(J.length,1)),j=CJ(0,G),K=CJ(Q,2),z=Array($),M=q(U8(j,Y,K,CJ(0,1),W));z[0]=q(U8(M,CJ(1,1),W));for(let O=1;O<=$;O++){let D=[ZZ(M,z[O-1]),CJ(O+1,1),W];z[O]=q(U8(...D))}return U8(...z).slice(0,Q)}function gZ(Y,J,Q,q,X){if(aY(Y),aY(J),WG(Q),J.length>255){let G=Math.ceil(2*q/8);J=X.create({dkLen:G}).update(o9("H2C-OVERSIZE-DST-")).update(J).digest()}if(Q>65535||J.length>255)throw Error("expand_message_xof: invalid lenInBytes");return X.create({dkLen:Q}).update(Y).update(CJ(Q,2)).update(J).update(CJ(J.length,1)).digest()}function hE(Y,J,Q){YJ(Q,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});let{p:q,k:X,m:G,hash:$,expand:W,DST:j}=Q;aY(Y),WG(J);let K=typeof j==="string"?o9(j):j,z=q.toString(2).length,M=Math.ceil((z+X)/8),N=J*G*M,O;if(W==="xmd")O=xZ(Y,K,N,$);else if(W==="xof")O=gZ(Y,K,N,X,$);else if(W==="_internal_pass")O=Y;else throw Error('expand must be "xmd" or "xof"');let D=Array(J);for(let U=0;U<J;U++){let A=Array(G);for(let w=0;w<G;w++){let v=M*(w+U*G),R=O.subarray(v,v+M);A[w]=c0(TZ(R),q)}D[U]=A}return D}function mE(Y,J){let Q=J.map((q)=>Array.from(q).reverse());return(q,X)=>{let[G,$,W,j]=Q.map((M)=>M.reduce((N,O)=>Y.add(Y.mul(N,q),O))),[K,z]=BX(Y,[$,j],!0);return q=Y.mul(G,K),X=Y.mul(X,Y.mul(W,z)),{x:q,y:X}}}function yE(Y,J,Q){if(typeof J!=="function")throw Error("mapToCurve() must be defined");function q(G){return Y.fromAffine(J(G))}function X(G){let $=G.clearCofactor();if($.equals(Y.ZERO))return Y.ZERO;return $.assertValidity(),$}return{defaults:Q,hashToCurve(G,$){let W=hE(G,2,{...Q,DST:Q.DST,...$}),j=q(W[0]),K=q(W[1]);return X(j.add(K))},encodeToCurve(G,$){let W=hE(G,1,{...Q,DST:Q.encodeDST,...$});return X(q(W[0]))},mapToCurve(G){if(!Array.isArray(G))throw Error("expected array of bigints");for(let $ of G)if(typeof $!=="bigint")throw Error("expected array of bigints");return X(q(G))}}}var TZ;var lE=S8(()=>{GG();HX();TZ=A8});var rE={};DM(rE,{secp256k1_hasher:()=>$M,secp256k1:()=>MG,schnorr:()=>yZ,hashToCurve:()=>cZ,encodeToCurve:()=>bZ});function bE(Y){let J=zG,Q=BigInt(3),q=BigInt(6),X=BigInt(11),G=BigInt(22),$=BigInt(23),W=BigInt(44),j=BigInt(88),K=Y*Y*Y%J,z=K*K*Y%J,M=x8(z,Q,J)*z%J,N=x8(M,Q,J)*z%J,O=x8(N,i9,J)*K%J,D=x8(O,X,J)*O%J,U=x8(D,G,J)*D%J,A=x8(U,W,J)*U%J,w=x8(A,j,J)*A%J,v=x8(w,W,J)*U%J,R=x8(v,Q,J)*z%J,E=x8(R,$,J)*D%J,C=x8(E,q,J)*K%J,S=x8(C,i9,J);if(!IJ.eql(IJ.sqr(S),Y))throw Error("Cannot find square root");return S}function t9(Y,...J){let Q=cE[Y];if(Q===void 0){let q=JG(Uint8Array.from(Y,(X)=>X.charCodeAt(0)));Q=U8(q,q),cE[Y]=Q}return JG(U8(Q,...J))}function QM(Y){let J=MG.utils.normPrivateKeyToScalar(Y),Q=GM.fromPrivateKey(J);return{scalar:Q.hasEvenY()?J:KG(-J),bytes:qM(Q)}}function pE(Y){eY("x",Y,jG,zG);let J=YM(Y*Y),Q=YM(J*Y+BigInt(7)),q=bE(Q);if(q%i9!==XM)q=YM(-q);let X=new GM(Y,q,jG);return X.assertValidity(),X}function oE(...Y){return KG(RX(t9("BIP0340/challenge",...Y)))}function hZ(Y){return QM(Y).bytes}function mZ(Y,J,Q=l9(32)){let q=o0("message",Y),{bytes:X,scalar:G}=QM(J),$=o0("auxRand",Q,32),W=JM(G^RX(t9("BIP0340/aux",$))),j=t9("BIP0340/nonce",W,X,q),K=KG(RX(j));if(K===XM)throw Error("sign failed: k is zero");let{bytes:z,scalar:M}=QM(K),N=oE(z,X,q),O=new Uint8Array(64);if(O.set(z,0),O.set(JM(KG(M+N*G)),32),!dE(O,q,X))throw Error("sign: Invalid signature produced");return O}function dE(Y,J,Q){let q=o0("signature",Y,64),X=o0("message",J),G=o0("publicKey",Q,32);try{let $=pE(RX(G)),W=RX(q.subarray(0,32));if(!UQ(W,jG,zG))return!1;let j=RX(q.subarray(32,64));if(!UQ(j,jG,s9))return!1;let K=oE(JM(W),qM($),X),z=fZ($,j,KG(-K));if(!z||!z.hasEvenY()||z.toAffine().x!==W)return!1;return!0}catch($){return!1}}var zG,s9,XM,jG,i9,uE=(Y,J)=>(Y+J/i9)/J,IJ,MG,cE,qM=(Y)=>Y.toRawBytes(!0).slice(1),JM=(Y)=>LY(Y,32),YM=(Y)=>c0(Y,zG),KG=(Y)=>c0(Y,s9),GM,fZ=(Y,J,Q)=>GM.BASE.multiplyAndAddUnsafe(Y,J,Q),RX,yZ,lZ,uZ,$M,cZ,bZ;var sE=S8(()=>{KE();VJ();fE();lE();GG();HX();ez();/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */zG=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),s9=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),XM=BigInt(0),jG=BigInt(1),i9=BigInt(2);IJ=qG(zG,void 0,void 0,{sqrt:bE}),MG=gE({a:XM,b:BigInt(7),Fp:IJ,n:s9,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(Y)=>{let J=s9,Q=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),q=-jG*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),X=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),G=Q,$=BigInt("0x100000000000000000000000000000000"),W=uE(G*Y,J),j=uE(-q*Y,J),K=c0(Y-W*Q-j*X,J),z=c0(-W*q-j*G,J),M=K>$,N=z>$;if(M)K=J-K;if(N)z=J-z;if(K>$||z>$)throw Error("splitScalar: Endomorphism failed, k="+Y);return{k1neg:M,k1:K,k2neg:N,k2:z}}}},JG),cE={};GM=(()=>MG.ProjectivePoint)();RX=A8;yZ=(()=>({getPublicKey:hZ,sign:mZ,verify:dE,utils:{randomPrivateKey:MG.utils.randomPrivateKey,lift_x:pE,pointToBytes:qM,numberToBytesBE:LY,bytesToNumberBE:A8,taggedHash:t9,mod:c0}}))(),lZ=(()=>mE(IJ,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map((Y)=>Y.map((J)=>BigInt(J)))))(),uZ=(()=>xE(IJ,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:IJ.create(BigInt("-11"))}))(),$M=(()=>yE(MG.ProjectivePoint,(Y)=>{let{x:J,y:Q}=uZ(IJ.create(Y[0]));return lZ(J,Q)},{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:IJ.ORDER,m:1,k:128,expand:"xmd",hash:JG}))(),cZ=(()=>$M.hashToCurve)(),bZ=(()=>$M.encodeToCurve)()});import WF from"http";import jF from"https";import{gunzipSync as KF}from"zlib";import{createHash as F6,createHmac as Pg,pbkdf2Sync as Tg,randomBytes as Zg}from"crypto";import*as dX from"node:crypto";var Hw=Object.defineProperty,Bw=(Y)=>Y;function Rw(Y,J){this[Y]=Bw.bind(null,J)}var e8=(Y,J)=>{for(var Q in J)Hw(Y,Q,{get:J[Q],enumerable:!0,configurable:!0,set:Rw.bind(J,Q)})},r0=function(Y,J,Q,q){var X=arguments.length,G=X<3?J:q===null?q=Object.getOwnPropertyDescriptor(J,Q):q,$;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")G=Reflect.decorate(Y,J,Q,q);else for(var W=Y.length-1;W>=0;W--)if($=Y[W])G=(X<3?$(G):X>3?$(J,Q,G):$(J,Q))||G;return X>3&&G&&Object.defineProperty(J,Q,G),G},Z=(Y,J)=>()=>(Y&&(J=Y(Y=0)),J);function MJ(Y,{includeName:J=!1}={}){if(Y.type!=="function"&&Y.type!=="event"&&Y.type!=="error")throw new cO(Y.type);return`${Y.name}(${U5(Y.inputs,{includeName:J})})`}function U5(Y,{includeName:J=!1}={}){if(!Y)return"";return Y.map((Q)=>Vw(Q,{includeName:J})).join(J?", ":",")}function Vw(Y,{includeName:J}){if(Y.type.startsWith("tuple"))return`(${U5(Y.components,{includeName:J})})${Y.type.slice(5)}`;return Y.type+(J&&Y.name?` ${Y.name}`:"")}var YX=Z(()=>{P8()});function JX(Y,{strict:J=!0}={}){if(!Y)return!1;if(typeof Y!=="string")return!1;return J?/^0x[0-9a-fA-F]*$/.test(Y):Y.startsWith("0x")}function G8(Y){if(JX(Y,{strict:!1}))return Math.ceil((Y.length-2)/2);return Y.length}var Oq=()=>{},UM="2.45.0";function PO(Y,J){if(J?.(Y))return Y;if(Y&&typeof Y==="object"&&"cause"in Y&&Y.cause!==void 0)return PO(Y.cause,J);return J?null:Y}var EG,p,a0=Z(()=>{EG={getDocsUrl:({docsBaseUrl:Y,docsPath:J="",docsSlug:Q})=>J?`${Y??"https://viem.sh"}${J}${Q?`#${Q}`:""}`:void 0,version:`viem@${UM}`},p=class Y extends Error{constructor(J,Q={}){let q=(()=>{if(Q.cause instanceof Y)return Q.cause.details;if(Q.cause?.message)return Q.cause.message;return Q.details})(),X=(()=>{if(Q.cause instanceof Y)return Q.cause.docsPath||Q.docsPath;return Q.docsPath})(),G=EG.getDocsUrl?.({...Q,docsPath:X}),$=[J||"An error occurred.","",...Q.metaMessages?[...Q.metaMessages,""]:[],...G?[`Docs: ${G}`]:[],...q?[`Details: ${q}`]:[],...EG.version?[`Version: ${EG.version}`]:[]].join(`
|
|
2
|
+
`);super($,Q.cause?{cause:Q.cause}:void 0);Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=q,this.docsPath=X,this.metaMessages=Q.metaMessages,this.name=Q.name??this.name,this.shortMessage=J,this.version=UM}walk(J){return PO(this,J)}}}),TO,vW,ZO,H5,xO,gO,fO,hO,_W,B5,dJ,R5,mO,yO,lO,uO,V5,cO,P8=Z(()=>{YX(),Oq(),a0(),TO=class extends p{constructor({docsPath:J}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(`
|
|
3
|
+
`),{docsPath:J,name:"AbiConstructorNotFoundError"})}},vW=class extends p{constructor({docsPath:J}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(`
|
|
4
|
+
`),{docsPath:J,name:"AbiConstructorParamsNotFoundError"})}},ZO=class extends p{constructor({data:J,params:Q,size:q}){super([`Data size of ${q} bytes is too small for given parameters.`].join(`
|
|
5
|
+
`),{metaMessages:[`Params: (${U5(Q,{includeName:!0})})`,`Data: ${J} (${q} bytes)`],name:"AbiDecodingDataSizeTooSmallError"});Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=J,this.params=Q,this.size=q}},H5=class extends p{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}},xO=class extends p{constructor({expectedLength:J,givenLength:Q,type:q}){super([`ABI encoding array length mismatch for type ${q}.`,`Expected length: ${J}`,`Given length: ${Q}`].join(`
|
|
6
|
+
`),{name:"AbiEncodingArrayLengthMismatchError"})}},gO=class extends p{constructor({expectedSize:J,value:Q}){super(`Size of bytes "${Q}" (bytes${G8(Q)}) does not match expected size (bytes${J}).`,{name:"AbiEncodingBytesSizeMismatchError"})}},fO=class extends p{constructor({expectedLength:J,givenLength:Q}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${J}`,`Given length (values): ${Q}`].join(`
|
|
7
|
+
`),{name:"AbiEncodingLengthMismatchError"})}},hO=class extends p{constructor(J,{docsPath:Q}){super([`Arguments (\`args\`) were provided to "${J}", but "${J}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(`
|
|
8
|
+
`),{docsPath:Q,name:"AbiErrorInputsNotFoundError"})}},_W=class extends p{constructor(J,{docsPath:Q}={}){super([`Error ${J?`"${J}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(`
|
|
9
|
+
`),{docsPath:Q,name:"AbiErrorNotFoundError"})}},B5=class extends p{constructor(J,{docsPath:Q}){super([`Encoded error signature "${J}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${J}.`].join(`
|
|
10
|
+
`),{docsPath:Q,name:"AbiErrorSignatureNotFoundError"});Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=J}},dJ=class extends p{constructor(J,{docsPath:Q}={}){super([`Function ${J?`"${J}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
|
|
11
|
+
`),{docsPath:Q,name:"AbiFunctionNotFoundError"})}},R5=class extends p{constructor(J,{docsPath:Q}){super([`Function "${J}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(`
|
|
12
|
+
`),{docsPath:Q,name:"AbiFunctionOutputsNotFoundError"})}},mO=class extends p{constructor(J,{docsPath:Q}){super([`Encoded function signature "${J}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${J}.`].join(`
|
|
13
|
+
`),{docsPath:Q,name:"AbiFunctionSignatureNotFoundError"})}},yO=class extends p{constructor(J,Q){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${J.type}\` in \`${MJ(J.abiItem)}\`, and`,`\`${Q.type}\` in \`${MJ(Q.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}},lO=class extends p{constructor(J,{docsPath:Q}){super([`Type "${J}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
|
|
14
|
+
`),{docsPath:Q,name:"InvalidAbiEncodingType"})}},uO=class extends p{constructor(J,{docsPath:Q}){super([`Type "${J}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(`
|
|
15
|
+
`),{docsPath:Q,name:"InvalidAbiDecodingType"})}},V5=class extends p{constructor(J){super([`Value "${J}" is not a valid array.`].join(`
|
|
16
|
+
`),{name:"InvalidArrayError"})}},cO=class extends p{constructor(J){super([`"${J}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
|
|
17
|
+
`),{name:"InvalidDefinitionTypeError"})}}}),rJ,w$=Z(()=>{a0(),rJ=class extends p{constructor({address:J}){super(`Address "${J}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}}}),A$,bO,pO,C$=Z(()=>{a0(),A$=class extends p{constructor({max:J,min:Q,signed:q,size:X,value:G}){super(`Number "${G}" is not in safe ${X?`${X*8}-bit ${q?"signed":"unsigned"} `:""}integer range ${J?`(${Q} to ${J})`:`(above ${Q})`}`,{name:"IntegerOutOfRangeError"})}},bO=class extends p{constructor(J){super(`Bytes value "${J}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}},pO=class extends p{constructor({givenSize:J,maxSize:Q}){super(`Size cannot exceed ${Q} bytes. Given size: ${J} bytes.`,{name:"SizeOverflowError"})}}}),L5,oO=Z(()=>{L5=class extends Map{constructor(J){super();Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=J}get(J){let Q=super.get(J);if(super.has(J)&&Q!==void 0)this.delete(J),super.set(J,Q);return Q}set(J,Q){if(super.set(J,Q),this.maxSize&&this.size>this.maxSize){let q=this.keys().next().value;if(q)this.delete(q)}return this}}}),E5,w5,kW,A5=Z(()=>{a0(),E5=class extends p{constructor({offset:J,position:Q,size:q}){super(`Slice ${Q==="start"?"starting":"ending"} at offset "${J}" is out-of-bounds (size: ${q}).`,{name:"SliceOffsetOutOfBoundsError"})}},w5=class extends p{constructor({size:J,targetSize:Q,type:q}){super(`${q.charAt(0).toUpperCase()}${q.slice(1).toLowerCase()} size (${J}) exceeds padding size (${Q}).`,{name:"SizeExceedsPaddingSizeError"})}},kW=class extends p{constructor({size:J,targetSize:Q,type:q}){super(`${q.charAt(0).toUpperCase()}${q.slice(1).toLowerCase()} is expected to be ${Q} ${q} long, but is ${J} ${q} long.`,{name:"InvalidBytesLengthError"})}}});function QX(Y,{dir:J,size:Q=32}={}){if(typeof Y==="string")return jJ(Y,{dir:J,size:Q});return Lw(Y,{dir:J,size:Q})}function jJ(Y,{dir:J,size:Q=32}={}){if(Q===null)return Y;let q=Y.replace("0x","");if(q.length>Q*2)throw new w5({size:Math.ceil(q.length/2),targetSize:Q,type:"hex"});return`0x${q[J==="right"?"padEnd":"padStart"](Q*2,"0")}`}function Lw(Y,{dir:J,size:Q=32}={}){if(Q===null)return Y;if(Y.length>Q)throw new w5({size:Y.length,targetSize:Q,type:"bytes"});let q=new Uint8Array(Q);for(let X=0;X<Q;X++){let G=J==="right";q[G?X:Q-X-1]=Y[G?X:Y.length-X-1]}return q}var C5=Z(()=>{A5()});function I5(Y,{dir:J="left"}={}){let Q=typeof Y==="string"?Y.replace("0x",""):Y,q=0;for(let X=0;X<Q.length-1;X++)if(Q[J==="left"?X:Q.length-X-1].toString()==="0")q++;else break;if(Q=J==="left"?Q.slice(q):Q.slice(0,Q.length-q),typeof Y==="string"){if(Q.length===1&&J==="right")Q=`${Q}0`;return`0x${Q.length%2===1?`0${Q}`:Q}`}return Q}function UY(Y,{size:J}){if(G8(Y)>J)throw new pO({givenSize:G8(Y),maxSize:J})}function dO(Y,J={}){let{signed:Q}=J;if(J.size)UY(Y,{size:J.size});let q=BigInt(Y);if(!Q)return q;let X=(Y.length-2)/2,G=(1n<<BigInt(X)*8n-1n)-1n;if(q<=G)return q;return q-BigInt(`0x${"f".padStart(X*2,"f")}`)-1n}function Ew(Y,J={}){let Q=dO(Y,J),q=Number(Q);if(!Number.isSafeInteger(q))throw new A$({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:J.signed,size:J.size,value:`${Q}n`});return q}var S5=Z(()=>{C$(),Oq()});function ww(Y,J={}){if(typeof Y==="number"||typeof Y==="bigint")return k0(Y,J);if(typeof Y==="string")return sO(Y,J);if(typeof Y==="boolean")return rO(Y,J);return mY(Y,J)}function rO(Y,J={}){let Q=`0x${Number(Y)}`;if(typeof J.size==="number")return UY(Q,{size:J.size}),QX(Q,{size:J.size});return Q}function mY(Y,J={}){let Q="";for(let X=0;X<Y.length;X++)Q+=iO[Y[X]];let q=`0x${Q}`;if(typeof J.size==="number")return UY(q,{size:J.size}),QX(q,{dir:"right",size:J.size});return q}function k0(Y,J={}){let{signed:Q,size:q}=J,X=BigInt(Y),G;if(q)if(Q)G=(1n<<BigInt(q)*8n-1n)-1n;else G=2n**(BigInt(q)*8n)-1n;else if(typeof Y==="number")G=BigInt(Number.MAX_SAFE_INTEGER);let $=typeof G==="bigint"&&Q?-G-1n:0;if(G&&X>G||X<$){let j=typeof Y==="bigint"?"n":"";throw new A$({max:G?`${G}${j}`:void 0,min:`${$}${j}`,signed:Q,size:q,value:`${Y}${j}`})}let W=`0x${(Q&&X<0?(1n<<BigInt(q*8))+BigInt(X):X).toString(16)}`;if(q)return QX(W,{size:q});return W}function sO(Y,J={}){let Q=tO.encode(Y);return mY(Q,J)}var iO,tO,HJ=Z(()=>{C$(),C5(),S5(),iO=Array.from({length:256},(Y,J)=>J.toString(16).padStart(2,"0")),tO=new TextEncoder});function nO(Y,J={}){if(typeof Y==="number"||typeof Y==="bigint")return Cw(Y,J);if(typeof Y==="boolean")return Aw(Y,J);if(JX(Y))return v5(Y,J);return aO(Y,J)}function Aw(Y,J={}){let Q=new Uint8Array(1);if(Q[0]=Number(Y),typeof J.size==="number")return UY(Q,{size:J.size}),QX(Q,{size:J.size});return Q}function HM(Y){if(Y>=zY.zero&&Y<=zY.nine)return Y-zY.zero;if(Y>=zY.A&&Y<=zY.F)return Y-(zY.A-10);if(Y>=zY.a&&Y<=zY.f)return Y-(zY.a-10);return}function v5(Y,J={}){let Q=Y;if(J.size)UY(Q,{size:J.size}),Q=QX(Q,{dir:"right",size:J.size});let q=Q.slice(2);if(q.length%2)q=`0${q}`;let X=q.length/2,G=new Uint8Array(X);for(let $=0,W=0;$<X;$++){let j=HM(q.charCodeAt(W++)),K=HM(q.charCodeAt(W++));if(j===void 0||K===void 0)throw new p(`Invalid byte sequence ("${q[W-2]}${q[W-1]}" in "${q}").`);G[$]=j*16+K}return G}function Cw(Y,J){let Q=k0(Y,J);return v5(Q)}function aO(Y,J={}){let Q=eO.encode(Y);if(typeof J.size==="number")return UY(Q,{size:J.size}),QX(Q,{dir:"right",size:J.size});return Q}var eO,zY,I$=Z(()=>{a0(),C5(),S5(),HJ(),eO=new TextEncoder,zY={zero:48,nine:57,A:65,F:70,a:97,f:102}});function Iw(Y,J=!1){if(J)return{h:Number(Y&yX),l:Number(Y>>FW&yX)};return{h:Number(Y>>FW&yX)|0,l:Number(Y&yX)|0}}function Sw(Y,J=!1){let Q=Y.length,q=new Uint32Array(Q),X=new Uint32Array(Q);for(let G=0;G<Q;G++){let{h:$,l:W}=Iw(Y[G],J);[q[G],X[G]]=[$,W]}return[q,X]}var yX,FW,vw=(Y,J,Q)=>Y<<Q|J>>>32-Q,_w=(Y,J,Q)=>J<<Q|Y>>>32-Q,kw=(Y,J,Q)=>J<<Q-32|Y>>>64-Q,Fw=(Y,J,Q)=>Y<<Q-32|J>>>64-Q,Pw=Z(()=>{yX=BigInt(4294967295),FW=BigInt(32)});function Tw(Y){return Y instanceof Uint8Array||ArrayBuffer.isView(Y)&&Y.constructor.name==="Uint8Array"}function BM(Y){if(!Number.isSafeInteger(Y)||Y<0)throw Error("positive integer expected, got "+Y)}function pG(Y,...J){if(!Tw(Y))throw Error("Uint8Array expected");if(J.length>0&&!J.includes(Y.length))throw Error("Uint8Array expected of length "+J+", got length="+Y.length)}function RM(Y,J=!0){if(Y.destroyed)throw Error("Hash instance has been destroyed");if(J&&Y.finished)throw Error("Hash#digest() has already been called")}function Zw(Y,J){pG(Y);let Q=J.outputLen;if(Y.length<Q)throw Error("digestInto() expects output buffer of length at least "+Q)}function xw(Y){return new Uint32Array(Y.buffer,Y.byteOffset,Math.floor(Y.byteLength/4))}function Y4(...Y){for(let J=0;J<Y.length;J++)Y[J].fill(0)}function gw(Y){return Y<<24&4278190080|Y<<8&16711680|Y>>>8&65280|Y>>>24&255}function fw(Y){for(let J=0;J<Y.length;J++)Y[J]=gw(Y[J]);return Y}function hw(Y){if(typeof Y!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(Y))}function J4(Y){if(typeof Y==="string")Y=hw(Y);return pG(Y),Y}class Q4{}function mw(Y){let J=(q)=>Y().update(J4(q)).digest(),Q=Y();return J.outputLen=Q.outputLen,J.blockLen=Q.blockLen,J.create=()=>Y(),J}var VM,PW,yw=Z(()=>{/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */VM=(()=>new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68)(),PW=VM?(Y)=>Y:fw});function lw(Y,J=24){let Q=new Uint32Array(10);for(let q=24-J;q<24;q++){for(let $=0;$<10;$++)Q[$]=Y[$]^Y[$+10]^Y[$+20]^Y[$+30]^Y[$+40];for(let $=0;$<10;$+=2){let W=($+8)%10,j=($+2)%10,K=Q[j],z=Q[j+1],M=IM(K,z,1)^Q[W],N=SM(K,z,1)^Q[W+1];for(let O=0;O<50;O+=10)Y[$+O]^=M,Y[$+O+1]^=N}let X=Y[2],G=Y[3];for(let $=0;$<24;$++){let W=ZW[$],j=IM(X,G,W),K=SM(X,G,W),z=TW[$];X=Y[z],G=Y[z+1],Y[z]=j,Y[z+1]=K}for(let $=0;$<50;$+=10){for(let W=0;W<10;W++)Q[W]=Y[$+W];for(let W=0;W<10;W++)Y[$+W]^=~Q[(W+2)%10]&Q[(W+4)%10]}Y[0]^=X4[q],Y[1]^=q4[q]}Y4(Q)}var LM,AQ,EM,wM,AM,CM,TW,ZW,XW,qW,X4,q4,IM=(Y,J,Q)=>Q>32?kw(Y,J,Q):vw(Y,J,Q),SM=(Y,J,Q)=>Q>32?Fw(Y,J,Q):_w(Y,J,Q),G4,uw=(Y,J,Q)=>mw(()=>new G4(J,Y,Q)),$4,cw=Z(()=>{Pw(),yw(),LM=BigInt(0),AQ=BigInt(1),EM=BigInt(2),wM=BigInt(7),AM=BigInt(256),CM=BigInt(113),TW=[],ZW=[],XW=[];for(let Y=0,J=AQ,Q=1,q=0;Y<24;Y++){[Q,q]=[q,(2*Q+3*q)%5],TW.push(2*(5*q+Q)),ZW.push((Y+1)*(Y+2)/2%64);let X=LM;for(let G=0;G<7;G++)if(J=(J<<AQ^(J>>wM)*CM)%AM,J&EM)X^=AQ<<(AQ<<BigInt(G))-AQ;XW.push(X)}qW=Sw(XW,!0),X4=qW[0],q4=qW[1],G4=class Y extends Q4{constructor(J,Q,q,X=!1,G=24){super();if(this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=J,this.suffix=Q,this.outputLen=q,this.enableXOF=X,this.rounds=G,BM(q),!(0<J&&J<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=xw(this.state)}clone(){return this._cloneInto()}keccak(){PW(this.state32),lw(this.state32,this.rounds),PW(this.state32),this.posOut=0,this.pos=0}update(J){RM(this),J=J4(J),pG(J);let{blockLen:Q,state:q}=this,X=J.length;for(let G=0;G<X;){let $=Math.min(Q-this.pos,X-G);for(let W=0;W<$;W++)q[this.pos++]^=J[G++];if(this.pos===Q)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:J,suffix:Q,pos:q,blockLen:X}=this;if(J[q]^=Q,(Q&128)!==0&&q===X-1)this.keccak();J[X-1]^=128,this.keccak()}writeInto(J){RM(this,!1),pG(J),this.finish();let Q=this.state,{blockLen:q}=this;for(let X=0,G=J.length;X<G;){if(this.posOut>=q)this.keccak();let $=Math.min(q-this.posOut,G-X);J.set(Q.subarray(this.posOut,this.posOut+$),X),this.posOut+=$,X+=$}return J}xofInto(J){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(J)}xof(J){return BM(J),this.xofInto(new Uint8Array(J))}digestInto(J){if(Zw(J,this),this.finished)throw Error("digest() was already called");return this.writeInto(J),this.destroy(),J}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Y4(this.state)}_cloneInto(J){let{blockLen:Q,suffix:q,outputLen:X,rounds:G,enableXOF:$}=this;return J||(J=new Y(Q,q,X,$,G)),J.state32.set(this.state32),J.pos=this.pos,J.posOut=this.posOut,J.finished=this.finished,J.rounds=G,J.suffix=q,J.outputLen=X,J.enableXOF=$,J.destroyed=this.destroyed,J}},$4=(()=>uw(1,136,32))()});function _5(Y,J){let Q=J||"hex",q=$4(JX(Y,{strict:!1})?nO(Y):Y);if(Q==="bytes")return q;return ww(q)}var k5=Z(()=>{cw(),I$(),HJ()});function W4(Y,J){if(xG.has(`${Y}.${J}`))return xG.get(`${Y}.${J}`);let Q=J?`${J}${Y.toLowerCase()}`:Y.substring(2).toLowerCase(),q=_5(aO(Q),"bytes"),X=(J?Q.substring(`${J}0x`.length):Q).split("");for(let $=0;$<40;$+=2){if(q[$>>1]>>4>=8&&X[$])X[$]=X[$].toUpperCase();if((q[$>>1]&15)>=8&&X[$+1])X[$+1]=X[$+1].toUpperCase()}let G=`0x${X.join("")}`;return xG.set(`${Y}.${J}`,G),G}var xG,j4=Z(()=>{I$(),k5(),oO(),xG=new L5(8192)});function yY(Y,J){let{strict:Q=!0}=J??{},q=`${Y}.${Q}`;if(gG.has(q))return gG.get(q);let X=(()=>{if(!K4.test(Y))return!1;if(Y.toLowerCase()===Y)return!0;if(Q)return W4(Y)===Y;return!0})();return gG.set(q,X),X}var K4,gG,Dq=Z(()=>{oO(),j4(),K4=/^0x[a-fA-F0-9]{40}$/,gG=new L5(8192)});function sJ(Y){if(typeof Y[0]==="string")return S$(Y);return bw(Y)}function bw(Y){let J=0;for(let X of Y)J+=X.length;let Q=new Uint8Array(J),q=0;for(let X of Y)Q.set(X,q),q+=X.length;return Q}function S$(Y){return`0x${Y.reduce((J,Q)=>J+Q.replace("0x",""),"")}`}function hQ(Y,J,Q,{strict:q}={}){if(JX(Y,{strict:!1}))return pw(Y,J,Q,{strict:q});return N4(Y,J,Q,{strict:q})}function z4(Y,J){if(typeof J==="number"&&J>0&&J>G8(Y)-1)throw new E5({offset:J,position:"start",size:G8(Y)})}function M4(Y,J,Q){if(typeof J==="number"&&typeof Q==="number"&&G8(Y)!==Q-J)throw new E5({offset:Q,position:"end",size:G8(Y)})}function N4(Y,J,Q,{strict:q}={}){z4(Y,J);let X=Y.slice(J,Q);if(q)M4(X,J,Q);return X}function pw(Y,J,Q,{strict:q}={}){z4(Y,J);let X=`0x${Y.replace("0x","").slice((J??0)*2,(Q??Y.length)*2)}`;if(q)M4(X,J,Q);return X}var Uq=Z(()=>{A5(),Oq()}),O4,ow=Z(()=>{O4=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/});function XX(Y,J){if(Y.length!==J.length)throw new fO({expectedLength:Y.length,givenLength:J.length});let Q=dw({params:Y,values:J}),q=P5(Q);if(q.length===0)return"0x";return q}function dw({params:Y,values:J}){let Q=[];for(let q=0;q<Y.length;q++)Q.push(F5({param:Y[q],value:J[q]}));return Q}function F5({param:Y,value:J}){let Q=T5(Y.type);if(Q){let[q,X]=Q;return sw(J,{length:q,param:{...Y,type:X}})}if(Y.type==="tuple")return ew(J,{param:Y});if(Y.type==="address")return rw(J);if(Y.type==="bool")return tw(J);if(Y.type.startsWith("uint")||Y.type.startsWith("int")){let q=Y.type.startsWith("int"),[,,X="256"]=O4.exec(Y.type)??[];return nw(J,{signed:q,size:Number(X)})}if(Y.type.startsWith("bytes"))return iw(J,{param:Y});if(Y.type==="string")return aw(J);throw new lO(Y.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function P5(Y){let J=0;for(let G=0;G<Y.length;G++){let{dynamic:$,encoded:W}=Y[G];if($)J+=32;else J+=G8(W)}let Q=[],q=[],X=0;for(let G=0;G<Y.length;G++){let{dynamic:$,encoded:W}=Y[G];if($)Q.push(k0(J+X,{size:32})),q.push(W),X+=G8(W);else Q.push(W)}return sJ([...Q,...q])}function rw(Y){if(!yY(Y))throw new rJ({address:Y});return{dynamic:!1,encoded:jJ(Y.toLowerCase())}}function sw(Y,{length:J,param:Q}){let q=J===null;if(!Array.isArray(Y))throw new V5(Y);if(!q&&Y.length!==J)throw new xO({expectedLength:J,givenLength:Y.length,type:`${Q.type}[${J}]`});let X=!1,G=[];for(let $=0;$<Y.length;$++){let W=F5({param:Q,value:Y[$]});if(W.dynamic)X=!0;G.push(W)}if(q||X){let $=P5(G);if(q){let W=k0(G.length,{size:32});return{dynamic:!0,encoded:G.length>0?sJ([W,$]):W}}if(X)return{dynamic:!0,encoded:$}}return{dynamic:!1,encoded:sJ(G.map(({encoded:$})=>$))}}function iw(Y,{param:J}){let[,Q]=J.type.split("bytes"),q=G8(Y);if(!Q){let X=Y;if(q%32!==0)X=jJ(X,{dir:"right",size:Math.ceil((Y.length-2)/2/32)*32});return{dynamic:!0,encoded:sJ([jJ(k0(q,{size:32})),X])}}if(q!==Number.parseInt(Q,10))throw new gO({expectedSize:Number.parseInt(Q,10),value:Y});return{dynamic:!1,encoded:jJ(Y,{dir:"right"})}}function tw(Y){if(typeof Y!=="boolean")throw new p(`Invalid boolean value: "${Y}" (type: ${typeof Y}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:jJ(rO(Y))}}function nw(Y,{signed:J,size:Q=256}){if(typeof Q==="number"){let q=2n**(BigInt(Q)-(J?1n:0n))-1n,X=J?-q-1n:0n;if(Y>q||Y<X)throw new A$({max:q.toString(),min:X.toString(),signed:J,size:Q/8,value:Y.toString()})}return{dynamic:!1,encoded:k0(Y,{size:32,signed:J})}}function aw(Y){let J=sO(Y),Q=Math.ceil(G8(J)/32),q=[];for(let X=0;X<Q;X++)q.push(jJ(hQ(J,X*32,(X+1)*32),{dir:"right"}));return{dynamic:!0,encoded:sJ([jJ(k0(G8(J),{size:32})),...q])}}function ew(Y,{param:J}){let Q=!1,q=[];for(let X=0;X<J.components.length;X++){let G=J.components[X],$=Array.isArray(Y)?X:G.name,W=F5({param:G,value:Y[$]});if(q.push(W),W.dynamic)Q=!0}return{dynamic:Q,encoded:Q?P5(q):sJ(q.map(({encoded:X})=>X))}}function T5(Y){let J=Y.match(/^(.*)\[(\d+)?\]$/);return J?[J[2]?Number(J[2]):null,J[1]]:void 0}var XQ=Z(()=>{P8(),w$(),a0(),C$(),Dq(),C5(),Oq(),Uq(),HJ(),ow()}),xW,D4,U4,YA=Z(()=>{a0(),xW=class extends p{constructor({offset:J}){super(`Offset \`${J}\` cannot be negative.`,{name:"NegativeOffsetError"})}},D4=class extends p{constructor({length:J,position:Q}){super(`Position \`${Q}\` is out of bounds (\`0 < position < ${J}\`).`,{name:"PositionOutOfBoundsError"})}},U4=class extends p{constructor({count:J,limit:Q}){super(`Recursive read limit of \`${Q}\` exceeded (recursive read count: \`${J}\`).`,{name:"RecursiveReadLimitExceededError"})}}});function JA(Y,{recursiveReadLimit:J=8192}={}){let Q=Object.create(H4);return Q.bytes=Y,Q.dataView=new DataView(Y.buffer??Y,Y.byteOffset,Y.byteLength),Q.positionReadCount=new Map,Q.recursiveReadLimit=J,Q}var H4,QA=Z(()=>{YA(),H4={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new U4({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(Y){if(Y<0||Y>this.bytes.length-1)throw new D4({length:this.bytes.length,position:Y})},decrementPosition(Y){if(Y<0)throw new xW({offset:Y});let J=this.position-Y;this.assertPosition(J),this.position=J},getReadCount(Y){return this.positionReadCount.get(Y||this.position)||0},incrementPosition(Y){if(Y<0)throw new xW({offset:Y});let J=this.position+Y;this.assertPosition(J),this.position=J},inspectByte(Y){let J=Y??this.position;return this.assertPosition(J),this.bytes[J]},inspectBytes(Y,J){let Q=J??this.position;return this.assertPosition(Q+Y-1),this.bytes.subarray(Q,Q+Y)},inspectUint8(Y){let J=Y??this.position;return this.assertPosition(J),this.bytes[J]},inspectUint16(Y){let J=Y??this.position;return this.assertPosition(J+1),this.dataView.getUint16(J)},inspectUint24(Y){let J=Y??this.position;return this.assertPosition(J+2),(this.dataView.getUint16(J)<<8)+this.dataView.getUint8(J+2)},inspectUint32(Y){let J=Y??this.position;return this.assertPosition(J+3),this.dataView.getUint32(J)},pushByte(Y){this.assertPosition(this.position),this.bytes[this.position]=Y,this.position++},pushBytes(Y){this.assertPosition(this.position+Y.length-1),this.bytes.set(Y,this.position),this.position+=Y.length},pushUint8(Y){this.assertPosition(this.position),this.bytes[this.position]=Y,this.position++},pushUint16(Y){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,Y),this.position+=2},pushUint24(Y){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,Y>>8),this.dataView.setUint8(this.position+2,Y&255),this.position+=3},pushUint32(Y){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,Y),this.position+=4},readByte(){this.assertReadLimit(),this._touch();let Y=this.inspectByte();return this.position++,Y},readBytes(Y,J){this.assertReadLimit(),this._touch();let Q=this.inspectBytes(Y);return this.position+=J??Y,Q},readUint8(){this.assertReadLimit(),this._touch();let Y=this.inspectUint8();return this.position+=1,Y},readUint16(){this.assertReadLimit(),this._touch();let Y=this.inspectUint16();return this.position+=2,Y},readUint24(){this.assertReadLimit(),this._touch();let Y=this.inspectUint24();return this.position+=3,Y},readUint32(){this.assertReadLimit(),this._touch();let Y=this.inspectUint32();return this.position+=4,Y},get remaining(){return this.bytes.length-this.position},setPosition(Y){let J=this.position;return this.assertPosition(Y),this.position=Y,()=>this.position=J},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;let Y=this.getReadCount();if(this.positionReadCount.set(this.position,Y+1),Y>0)this.recursiveReadCount++}}});function XA(Y,J={}){if(typeof J.size<"u")UY(Y,{size:J.size});let Q=mY(Y,J);return dO(Q,J)}function qA(Y,J={}){let Q=Y;if(typeof J.size<"u")UY(Q,{size:J.size}),Q=I5(Q);if(Q.length>1||Q[0]>1)throw new bO(Q);return Boolean(Q[0])}function xY(Y,J={}){if(typeof J.size<"u")UY(Y,{size:J.size});let Q=mY(Y,J);return Ew(Q,J)}function GA(Y,J={}){let Q=Y;if(typeof J.size<"u")UY(Q,{size:J.size}),Q=I5(Q,{dir:"right"});return new TextDecoder().decode(Q)}var $A=Z(()=>{C$(),S5(),HJ()});function Z5(Y,J){let Q=typeof J==="string"?v5(J):J,q=JA(Q);if(G8(Q)===0&&Y.length>0)throw new H5;if(G8(J)&&G8(J)<32)throw new ZO({data:typeof J==="string"?J:mY(J),params:Y,size:G8(J)});let X=0,G=[];for(let $=0;$<Y.length;++$){let W=Y[$];q.setPosition(X);let[j,K]=PQ(q,W,{staticPosition:0});X+=K,G.push(j)}return G}function PQ(Y,J,{staticPosition:Q}){let q=T5(J.type);if(q){let[X,G]=q;return jA(Y,{...J,type:G},{length:X,staticPosition:Q})}if(J.type==="tuple")return NA(Y,J,{staticPosition:Q});if(J.type==="address")return WA(Y);if(J.type==="bool")return KA(Y);if(J.type.startsWith("bytes"))return zA(Y,J,{staticPosition:Q});if(J.type.startsWith("uint")||J.type.startsWith("int"))return MA(Y,J);if(J.type==="string")return OA(Y,{staticPosition:Q});throw new uO(J.type,{docsPath:"/docs/contract/decodeAbiParameters"})}function WA(Y){let J=Y.readBytes(32);return[W4(mY(N4(J,-20))),32]}function jA(Y,J,{length:Q,staticPosition:q}){if(!Q){let $=xY(Y.readBytes(gW)),W=q+$,j=W+vM;Y.setPosition(W);let K=xY(Y.readBytes(vM)),z=iX(J),M=0,N=[];for(let O=0;O<K;++O){Y.setPosition(j+(z?O*32:M));let[D,U]=PQ(Y,J,{staticPosition:j});M+=U,N.push(D)}return Y.setPosition(q+32),[N,32]}if(iX(J)){let $=xY(Y.readBytes(gW)),W=q+$,j=[];for(let K=0;K<Q;++K){Y.setPosition(W+K*32);let[z]=PQ(Y,J,{staticPosition:W});j.push(z)}return Y.setPosition(q+32),[j,32]}let X=0,G=[];for(let $=0;$<Q;++$){let[W,j]=PQ(Y,J,{staticPosition:q+X});X+=j,G.push(W)}return[G,X]}function KA(Y){return[qA(Y.readBytes(32),{size:32}),32]}function zA(Y,J,{staticPosition:Q}){let[q,X]=J.type.split("bytes");if(!X){let G=xY(Y.readBytes(32));Y.setPosition(Q+G);let $=xY(Y.readBytes(32));if($===0)return Y.setPosition(Q+32),["0x",32];let W=Y.readBytes($);return Y.setPosition(Q+32),[mY(W),32]}return[mY(Y.readBytes(Number.parseInt(X,10),32)),32]}function MA(Y,J){let Q=J.type.startsWith("int"),q=Number.parseInt(J.type.split("int")[1]||"256",10),X=Y.readBytes(32);return[q>48?XA(X,{signed:Q}):xY(X,{signed:Q}),32]}function NA(Y,J,{staticPosition:Q}){let q=J.components.length===0||J.components.some(({name:$})=>!$),X=q?[]:{},G=0;if(iX(J)){let $=xY(Y.readBytes(gW)),W=Q+$;for(let j=0;j<J.components.length;++j){let K=J.components[j];Y.setPosition(W+G);let[z,M]=PQ(Y,K,{staticPosition:W});G+=M,X[q?j:K?.name]=z}return Y.setPosition(Q+32),[X,32]}for(let $=0;$<J.components.length;++$){let W=J.components[$],[j,K]=PQ(Y,W,{staticPosition:Q});X[q?$:W?.name]=j,G+=K}return[X,G]}function OA(Y,{staticPosition:J}){let Q=xY(Y.readBytes(32)),q=J+Q;Y.setPosition(q);let X=xY(Y.readBytes(32));if(X===0)return Y.setPosition(J+32),["",32];let G=Y.readBytes(X,32),$=GA(I5(G));return Y.setPosition(J+32),[$,32]}function iX(Y){let{type:J}=Y;if(J==="string")return!0;if(J==="bytes")return!0;if(J.endsWith("[]"))return!0;if(J==="tuple")return Y.components?.some(iX);let Q=T5(Y.type);if(Q&&iX({...Y,type:Q[1]}))return!0;return!1}var vM=32,gW=32,x5=Z(()=>{P8(),j4(),QA(),Oq(),Uq(),$A(),I$(),HJ(),XQ()});function DA(Y){return UA(Y)}var UA=(Y)=>_5(nO(Y)),HA=Z(()=>{I$(),k5()});function bY(Y,J){return Y.exec(J)?.groups}var g5,f5,h5,v$=Z(()=>{g5=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,f5=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,h5=/^\(.+?\).*?$/});function fW(Y){let J=Y.type;if(hW.test(Y.type)&&"components"in Y){J="(";let Q=Y.components.length;for(let X=0;X<Q;X++){let G=Y.components[X];if(J+=fW(G),X<Q-1)J+=", "}let q=bY(hW,Y.type);return J+=`)${q?.array||""}`,fW({...Y,type:J})}if("indexed"in Y&&Y.indexed)J=`${J} indexed`;if(Y.name)return`${J} ${Y.name}`;return J}var hW,BA=Z(()=>{v$(),hW=/^tuple(?<array>(\[(\d*)\])*)$/});function gX(Y){let J="",Q=Y.length;for(let q=0;q<Q;q++){let X=Y[q];if(J+=fW(X),q!==Q-1)J+=", "}return J}var RA=Z(()=>{BA()});function VA(Y){if(Y.type==="function")return`function ${Y.name}(${gX(Y.inputs)})${Y.stateMutability&&Y.stateMutability!=="nonpayable"?` ${Y.stateMutability}`:""}${Y.outputs?.length?` returns (${gX(Y.outputs)})`:""}`;if(Y.type==="event")return`event ${Y.name}(${gX(Y.inputs)})`;if(Y.type==="error")return`error ${Y.name}(${gX(Y.inputs)})`;if(Y.type==="constructor")return`constructor(${gX(Y.inputs)})${Y.stateMutability==="payable"?" payable":""}`;if(Y.type==="fallback")return`fallback() external${Y.stateMutability==="payable"?" payable":""}`;return"receive() external payable"}var LA=Z(()=>{RA()});function EA(Y){return m5.test(Y)}function wA(Y){return bY(m5,Y)}function AA(Y){return y5.test(Y)}function CA(Y){return bY(y5,Y)}function IA(Y){return l5.test(Y)}function SA(Y){return bY(l5,Y)}function B4(Y){return u5.test(Y)}function vA(Y){return bY(u5,Y)}function _A(Y){return c5.test(Y)}function kA(Y){return bY(c5,Y)}function FA(Y){return b5.test(Y)}function PA(Y){return bY(b5,Y)}function TA(Y){return R4.test(Y)}var m5,y5,l5,u5,c5,b5,R4,V4,oG,p5=Z(()=>{v$(),m5=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/,y5=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/,l5=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/,u5=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/,c5=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/,b5=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/,R4=/^receive\(\) external payable$/,V4=new Set(["indexed"]),oG=new Set(["calldata","memory","storage"])}),ZA="1.2.3",k8,Hq=Z(()=>{k8=class Y extends Error{constructor(J,Q={}){let q=Q.cause instanceof Y?Q.cause.details:Q.cause?.message?Q.cause.message:Q.details,X=Q.cause instanceof Y?Q.cause.docsPath||Q.docsPath:Q.docsPath,G=[J||"An error occurred.","",...Q.metaMessages?[...Q.metaMessages,""]:[],...X?[`Docs: https://abitype.dev${X}`]:[],...q?[`Details: ${q}`]:[],`Version: abitype@${ZA}`].join(`
|
|
18
|
+
`);super(G);if(Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),Q.cause)this.cause=Q.cause;this.details=q,this.docsPath=X,this.metaMessages=Q.metaMessages,this.shortMessage=J}}}),L4,E4,w4=Z(()=>{Hq(),L4=class extends k8{constructor({type:J}){super("Unknown type.",{metaMessages:[`Type "${J}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},E4=class extends k8{constructor({type:J}){super("Unknown type.",{metaMessages:[`Type "${J}" is not a valid ABI type.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}}),A4,C4,I4,S4,v4,_4=Z(()=>{Hq(),A4=class extends k8{constructor({param:J}){super("Invalid ABI parameter.",{details:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},C4=class extends k8{constructor({param:J,name:Q}){super("Invalid ABI parameter.",{details:J,metaMessages:[`"${Q}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},I4=class extends k8{constructor({param:J,type:Q,modifier:q}){super("Invalid ABI parameter.",{details:J,metaMessages:[`Modifier "${q}" not allowed${Q?` in "${Q}" type`:""}.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},S4=class extends k8{constructor({param:J,type:Q,modifier:q}){super("Invalid ABI parameter.",{details:J,metaMessages:[`Modifier "${q}" not allowed${Q?` in "${Q}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${q}" was given.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},v4=class extends k8{constructor({abiParameter:J}){super("Invalid ABI parameter.",{details:JSON.stringify(J,null,2),metaMessages:["ABI parameter type is invalid."]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}}),qQ,k4,F4,P4=Z(()=>{Hq(),qQ=class extends k8{constructor({signature:J,type:Q}){super(`Invalid ${Q} signature.`,{details:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},k4=class extends k8{constructor({signature:J}){super("Unknown signature.",{details:J});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},F4=class extends k8{constructor({signature:J}){super("Invalid struct signature.",{details:J,metaMessages:["No properties exist."]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}}),T4,xA=Z(()=>{Hq(),T4=class extends k8{constructor({type:J}){super("Circular reference detected.",{metaMessages:[`Struct "${J}" is a circular reference.`]});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}}),Z4,gA=Z(()=>{Hq(),Z4=class extends k8{constructor({current:J,depth:Q}){super("Unbalanced parentheses.",{metaMessages:[`"${J.trim()}" has too many ${Q>0?"opening":"closing"} parentheses.`],details:`Depth "${Q}"`});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}});function fA(Y,J,Q){let q="";if(Q)for(let X of Object.entries(Q)){if(!X)continue;let G="";for(let $ of X[1])G+=`[${$.type}${$.name?`:${$.name}`:""}]`;q+=`(${X[0]}{${G}})`}if(J)return`${J}:${Y}${q}`;return`${Y}${q}`}var fG,hA=Z(()=>{fG=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]])});function mA(Y,J={}){if(IA(Y))return yA(Y,J);if(AA(Y))return lA(Y,J);if(EA(Y))return uA(Y,J);if(_A(Y))return cA(Y,J);if(FA(Y))return bA(Y);if(TA(Y))return{type:"receive",stateMutability:"payable"};throw new k4({signature:Y})}function yA(Y,J={}){let Q=SA(Y);if(!Q)throw new qQ({signature:Y,type:"function"});let q=t8(Q.parameters),X=[],G=q.length;for(let W=0;W<G;W++)X.push(iJ(q[W],{modifiers:oG,structs:J,type:"function"}));let $=[];if(Q.returns){let W=t8(Q.returns),j=W.length;for(let K=0;K<j;K++)$.push(iJ(W[K],{modifiers:oG,structs:J,type:"function"}))}return{name:Q.name,type:"function",stateMutability:Q.stateMutability??"nonpayable",inputs:X,outputs:$}}function lA(Y,J={}){let Q=CA(Y);if(!Q)throw new qQ({signature:Y,type:"event"});let q=t8(Q.parameters),X=[],G=q.length;for(let $=0;$<G;$++)X.push(iJ(q[$],{modifiers:V4,structs:J,type:"event"}));return{name:Q.name,type:"event",inputs:X}}function uA(Y,J={}){let Q=wA(Y);if(!Q)throw new qQ({signature:Y,type:"error"});let q=t8(Q.parameters),X=[],G=q.length;for(let $=0;$<G;$++)X.push(iJ(q[$],{structs:J,type:"error"}));return{name:Q.name,type:"error",inputs:X}}function cA(Y,J={}){let Q=kA(Y);if(!Q)throw new qQ({signature:Y,type:"constructor"});let q=t8(Q.parameters),X=[],G=q.length;for(let $=0;$<G;$++)X.push(iJ(q[$],{structs:J,type:"constructor"}));return{type:"constructor",stateMutability:Q.stateMutability??"nonpayable",inputs:X}}function bA(Y){let J=PA(Y);if(!J)throw new qQ({signature:Y,type:"fallback"});return{type:"fallback",stateMutability:J.stateMutability??"nonpayable"}}function iJ(Y,J){let Q=fA(Y,J?.type,J?.structs);if(fG.has(Q))return fG.get(Q);let q=h5.test(Y),X=bY(q?f4:g4,Y);if(!X)throw new A4({param:Y});if(X.name&&pA(X.name))throw new C4({param:Y,name:X.name});let G=X.name?{name:X.name}:{},$=X.modifier==="indexed"?{indexed:!0}:{},W=J?.structs??{},j,K={};if(q){j="tuple";let M=t8(X.type),N=[],O=M.length;for(let D=0;D<O;D++)N.push(iJ(M[D],{structs:W}));K={components:N}}else if(X.type in W)j="tuple",K={components:W[X.type]};else if(h4.test(X.type))j=`${X.type}256`;else if(X.type==="address payable")j="address";else if(j=X.type,J?.type!=="struct"&&!x4(j))throw new E4({type:j});if(X.modifier){if(!J?.modifiers?.has?.(X.modifier))throw new I4({param:Y,type:J?.type,modifier:X.modifier});if(oG.has(X.modifier)&&!oA(j,!!X.array))throw new S4({param:Y,type:J?.type,modifier:X.modifier})}let z={type:`${j}${X.array??""}`,...G,...$,...K};return fG.set(Q,z),z}function t8(Y,J=[],Q="",q=0){let X=Y.trim().length;for(let G=0;G<X;G++){let $=Y[G],W=Y.slice(G+1);switch($){case",":return q===0?t8(W,[...J,Q.trim()]):t8(W,J,`${Q}${$}`,q);case"(":return t8(W,J,`${Q}${$}`,q+1);case")":return t8(W,J,`${Q}${$}`,q-1);default:return t8(W,J,`${Q}${$}`,q)}}if(Q==="")return J;if(q!==0)throw new Z4({current:Q,depth:q});return J.push(Q.trim()),J}function x4(Y){return Y==="address"||Y==="bool"||Y==="function"||Y==="string"||g5.test(Y)||f5.test(Y)}function pA(Y){return Y==="address"||Y==="bool"||Y==="function"||Y==="string"||Y==="tuple"||g5.test(Y)||f5.test(Y)||m4.test(Y)}function oA(Y,J){return J||Y==="bytes"||Y==="string"||Y==="tuple"}var g4,f4,h4,m4,y4=Z(()=>{v$(),w4(),_4(),P4(),gA(),hA(),p5(),g4=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,f4=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,h4=/^u?int$/,m4=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/});function dA(Y){let J={},Q=Y.length;for(let $=0;$<Q;$++){let W=Y[$];if(!B4(W))continue;let j=vA(W);if(!j)throw new qQ({signature:W,type:"struct"});let K=j.properties.split(";"),z=[],M=K.length;for(let N=0;N<M;N++){let O=K[N].trim();if(!O)continue;let D=iJ(O,{type:"struct"});z.push(D)}if(!z.length)throw new F4({signature:W});J[j.name]=z}let q={},X=Object.entries(J),G=X.length;for(let $=0;$<G;$++){let[W,j]=X[$];q[W]=l4(j,J)}return q}function l4(Y=[],J={},Q=new Set){let q=[],X=Y.length;for(let G=0;G<X;G++){let $=Y[G];if(h5.test($.type))q.push($);else{let W=bY(u4,$.type);if(!W?.type)throw new v4({abiParameter:$});let{array:j,type:K}=W;if(K in J){if(Q.has(K))throw new T4({type:K});q.push({...$,type:`tuple${j??""}`,components:l4(J[K],J,new Set([...Q,K]))})}else if(x4(K))q.push($);else throw new L4({type:K})}}return q}var u4,rA=Z(()=>{v$(),w4(),_4(),P4(),xA(),p5(),y4(),u4=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/});function c4(Y){let J=dA(Y),Q=[],q=Y.length;for(let X=0;X<q;X++){let G=Y[X];if(B4(G))continue;Q.push(mA(G,J))}return Q}var sA=Z(()=>{p5(),rA(),y4()}),b4=Z(()=>{LA(),sA()});function iA(Y){let J=!0,Q="",q=0,X="",G=!1;for(let $=0;$<Y.length;$++){let W=Y[$];if(["(",")",","].includes(W))J=!0;if(W==="(")q++;if(W===")")q--;if(!J)continue;if(q===0){if(W===" "&&["event","function",""].includes(X))X="";else if(X+=W,W===")"){G=!0;break}continue}if(W===" "){if(Y[$-1]!==","&&Q!==","&&Q!==",(")Q="",J=!1;continue}X+=W,Q+=W}if(!G)throw new p("Unable to normalize signature.");return X}var tA=Z(()=>{a0()}),nA=(Y)=>{let J=(()=>{if(typeof Y==="string")return Y;return VA(Y)})();return iA(J)},aA=Z(()=>{b4(),tA()});function p4(Y){return DA(nA(Y))}var o4=Z(()=>{HA(),aA()}),d4,eA=Z(()=>{o4(),d4=p4}),Bq=(Y)=>hQ(p4(Y),0,4),Rq=Z(()=>{Uq(),o4()});function Vq(Y){let{abi:J,args:Q=[],name:q}=Y,X=JX(q,{strict:!1}),G=J.filter((W)=>{if(X){if(W.type==="function")return Bq(W)===q;if(W.type==="event")return d4(W)===q;return!1}return"name"in W&&W.name===q});if(G.length===0)return;if(G.length===1)return G[0];let $;for(let W of G){if(!("inputs"in W))continue;if(!Q||Q.length===0){if(!W.inputs||W.inputs.length===0)return W;continue}if(!W.inputs)continue;if(W.inputs.length===0)continue;if(W.inputs.length!==Q.length)continue;if(Q.every((j,K)=>{let z="inputs"in W&&W.inputs[K];if(!z)return!1;return mW(j,z)})){if($&&"inputs"in $&&$.inputs){let j=r4(W.inputs,$.inputs,Q);if(j)throw new yO({abiItem:W,type:j[0]},{abiItem:$,type:j[1]})}$=W}}if($)return $;return G[0]}function mW(Y,J){let Q=typeof Y,q=J.type;switch(q){case"address":return yY(Y,{strict:!1});case"bool":return Q==="boolean";case"function":return Q==="string";case"string":return Q==="string";default:{if(q==="tuple"&&"components"in J)return Object.values(J.components).every((X,G)=>{return Q==="object"&&mW(Object.values(Y)[G],X)});if(/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(q))return Q==="number"||Q==="bigint";if(/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(q))return Q==="string"||Y instanceof Uint8Array;if(/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(q))return Array.isArray(Y)&&Y.every((X)=>mW(X,{...J,type:q.replace(/(\[[0-9]{0,}\])$/,"")}));return!1}}}function r4(Y,J,Q){for(let q in Y){let X=Y[q],G=J[q];if(X.type==="tuple"&&G.type==="tuple"&&"components"in X&&"components"in G)return r4(X.components,G.components,Q[q]);let $=[X.type,G.type];if((()=>{if($.includes("address")&&$.includes("bytes20"))return!0;if($.includes("address")&&$.includes("string"))return yY(Q[q],{strict:!1});if($.includes("address")&&$.includes("bytes"))return yY(Q[q],{strict:!1});return!1})())return $}return}var Lq=Z(()=>{P8(),Dq(),eA(),Rq()});function YC(Y){let{abi:J,args:Q,functionName:q,data:X}=Y,G=J[0];if(q){let W=Vq({abi:J,args:Q,name:q});if(!W)throw new dJ(q,{docsPath:GW});G=W}if(G.type!=="function")throw new dJ(void 0,{docsPath:GW});if(!G.outputs)throw new R5(G.name,{docsPath:GW});let $=Z5(G.outputs,X);if($&&$.length>1)return $;if($&&$.length===1)return $[0];return}var GW="/docs/contract/decodeFunctionResult",s4=Z(()=>{P8(),x5(),Lq()});function JC(Y){let{abi:J,args:Q,functionName:q}=Y,X=J[0];if(q){let G=Vq({abi:J,args:Q,name:q});if(!G)throw new dJ(q,{docsPath:_M});X=G}if(X.type!=="function")throw new dJ(void 0,{docsPath:_M});return{abi:[X],functionName:Bq(MJ(X))}}var _M="/docs/contract/encodeFunctionData",QC=Z(()=>{P8(),Rq(),YX(),Lq()});function XC(Y){let{args:J}=Y,{abi:Q,functionName:q}=(()=>{if(Y.abi.length===1&&Y.functionName?.startsWith("0x"))return Y;return JC(Y)})(),X=Q[0],G=q,$="inputs"in X&&X.inputs?XX(X.inputs,J??[]):void 0;return S$([G,$??"0x"])}var i4=Z(()=>{XQ(),QC()});function o5(Y){if(typeof Y==="string")return{address:Y,type:"json-rpc"};return Y}var t4,d5,n4,r5=Z(()=>{t4={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},d5={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},n4={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"}});function a4(Y){let{abi:J,data:Q}=Y,q=hQ(Q,0,4);if(q==="0x")throw new H5;let X=[...J||[],d5,n4].find((G)=>G.type==="error"&&q===Bq(MJ(G)));if(!X)throw new B5(q,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:X,args:"inputs"in X&&X.inputs&&X.inputs.length>0?Z5(X.inputs,hQ(Q,4)):void 0,errorName:X.name}}var e4=Z(()=>{r5(),P8(),Uq(),Rq(),x5(),YX()}),tX=(Y,J,Q)=>JSON.stringify(Y,(q,X)=>{let G=typeof X==="bigint"?X.toString():X;return typeof J==="function"?J(q,G):G},Q);function kM({abiItem:Y,args:J,includeFunctionName:Q=!0,includeName:q=!1}){if(!("name"in Y))return;if(!("inputs"in Y))return;if(!Y.inputs)return;return`${Q?Y.name:""}(${Y.inputs.map((X,G)=>`${q&&X.name?`${X.name}: `:""}${typeof J[G]==="object"?tX(J[G]):J[G]}`).join(", ")})`}var qC=()=>{},YD,JD,QD=Z(()=>{YD={gwei:9,wei:18},JD={ether:-9,wei:9}});function XD(Y,J){let Q=Y.toString(),q=Q.startsWith("-");if(q)Q=Q.slice(1);Q=Q.padStart(J,"0");let[X,G]=[Q.slice(0,Q.length-J),Q.slice(Q.length-J)];return G=G.replace(/(0+)$/,""),`${q?"-":""}${X||"0"}${G?`.${G}`:""}`}function GC(Y,J="wei"){return XD(Y,YD[J])}var $C=Z(()=>{QD()});function mJ(Y,J="wei"){return XD(Y,JD[J])}var qD=Z(()=>{QD()});function FM(Y){return Y.reduce((J,{slot:Q,value:q})=>{return`${J} ${Q}: ${q}
|
|
19
|
+
`},"")}function WC(Y){return Y.reduce((J,{address:Q,...q})=>{let X=`${J} ${Q}:
|
|
20
|
+
`;if(q.nonce)X+=` nonce: ${q.nonce}
|
|
21
|
+
`;if(q.balance)X+=` balance: ${q.balance}
|
|
22
|
+
`;if(q.code)X+=` code: ${q.code}
|
|
23
|
+
`;if(q.state)X+=` state:
|
|
24
|
+
`,X+=FM(q.state);if(q.stateDiff)X+=` stateDiff:
|
|
25
|
+
`,X+=FM(q.stateDiff);return X},` State Override:
|
|
26
|
+
`).slice(0,-1)}var GD,$D,WD=Z(()=>{a0(),GD=class extends p{constructor({address:J}){super(`State for account "${J}" is set multiple times.`,{name:"AccountStateConflictError"})}},$D=class extends p{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}});function PM(Y){let J=Object.entries(Y).map(([q,X])=>{if(X===void 0||X===!1)return null;return[q,X]}).filter(Boolean),Q=J.reduce((q,[X])=>Math.max(q,X.length),0);return J.map(([q,X])=>` ${`${q}:`.padEnd(Q+1)} ${X}`).join(`
|
|
27
|
+
`)}var jC=()=>{},KC=(Y)=>Y,dG=(Y)=>Y,jD,zC,MC,NC,KD,zD,s5=Z(()=>{r5(),e4(),YX(),qC(),Lq(),$C(),qD(),P8(),a0(),WD(),jC(),jD=class extends p{constructor(J,{account:Q,docsPath:q,chain:X,data:G,gas:$,gasPrice:W,maxFeePerGas:j,maxPriorityFeePerGas:K,nonce:z,to:M,value:N,stateOverride:O}){let D=Q?o5(Q):void 0,U=PM({from:D?.address,to:M,value:typeof N<"u"&&`${GC(N)} ${X?.nativeCurrency?.symbol||"ETH"}`,data:G,gas:$,gasPrice:typeof W<"u"&&`${mJ(W)} gwei`,maxFeePerGas:typeof j<"u"&&`${mJ(j)} gwei`,maxPriorityFeePerGas:typeof K<"u"&&`${mJ(K)} gwei`,nonce:z});if(O)U+=`
|
|
28
|
+
${WC(O)}`;super(J.shortMessage,{cause:J,docsPath:q,metaMessages:[...J.metaMessages?[...J.metaMessages," "]:[],"Raw Call Arguments:",U].filter(Boolean),name:"CallExecutionError"});Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=J}},zC=class extends p{constructor(J,{abi:Q,args:q,contractAddress:X,docsPath:G,functionName:$,sender:W}){let j=Vq({abi:Q,args:q,name:$}),K=j?kM({abiItem:j,args:q,includeFunctionName:!1,includeName:!1}):void 0,z=j?MJ(j,{includeName:!0}):void 0,M=PM({address:X&&KC(X),function:z,args:K&&K!=="()"&&`${[...Array($?.length??0).keys()].map(()=>" ").join("")}${K}`,sender:W});super(J.shortMessage||`An unknown error occurred while executing the contract function "${$}".`,{cause:J,docsPath:G,metaMessages:[...J.metaMessages?[...J.metaMessages," "]:[],M&&"Contract Call:",M].filter(Boolean),name:"ContractFunctionExecutionError"});Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=Q,this.args=q,this.cause=J,this.contractAddress=X,this.functionName=$,this.sender=W}},MC=class extends p{constructor({abi:J,data:Q,functionName:q,message:X}){let G,$,W,j;if(Q&&Q!=="0x")try{$=a4({abi:J,data:Q});let{abiItem:z,errorName:M,args:N}=$;if(M==="Error")j=N[0];else if(M==="Panic"){let[O]=N;j=t4[O]}else{let O=z?MJ(z,{includeName:!0}):void 0,D=z&&N?kM({abiItem:z,args:N,includeFunctionName:!1,includeName:!1}):void 0;W=[O?`Error: ${O}`:"",D&&D!=="()"?` ${[...Array(M?.length??0).keys()].map(()=>" ").join("")}${D}`:""]}}catch(z){G=z}else if(X)j=X;let K;if(G instanceof B5)K=G.signature,W=[`Unable to decode signature "${K}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${K}.`];super(j&&j!=="execution reverted"||K?[`The contract function "${q}" reverted with the following ${K?"signature":"reason"}:`,j||K].join(`
|
|
29
|
+
`):`The contract function "${q}" reverted.`,{cause:G,metaMessages:W,name:"ContractFunctionRevertedError"});Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=$,this.raw=Q,this.reason=j,this.signature=K}},NC=class extends p{constructor({functionName:J}){super(`The contract function "${J}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${J}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}},KD=class extends p{constructor({factory:J}){super(`Deployment for counterfactual contract call failed${J?` for factory "${J}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}},zD=class extends p{constructor({data:J,message:Q}){super(Q||"",{name:"RawContractError"});Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=J}}}),yW,MD,i5=Z(()=>{a0(),yW=class extends p{constructor({body:J,cause:Q,details:q,headers:X,status:G,url:$}){super("HTTP request failed.",{cause:Q,details:q,metaMessages:[G&&`Status: ${G}`,`URL: ${dG($)}`,J&&`Request body: ${tX(J)}`].filter(Boolean),name:"HttpRequestError"});Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=J,this.headers=X,this.status=G,this.url=$}},MD=class extends p{constructor({body:J,error:Q,url:q}){super("RPC Request failed.",{cause:Q,details:Q.message,metaMessages:[`URL: ${dG(q)}`,`Request body: ${tX(J)}`],name:"RpcRequestError"});Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=Q.code,this.data=Q.data,this.url=q}}}),OC=-1,B8,R8,TM,ZM,xM,gM,fM,hM,mM,yM,lM,uM,cM,bM,pM,oM,dM,rM,sM,iM,tM,nM,aM,eM,YN,JN,QN,DC=Z(()=>{a0(),i5(),B8=class extends p{constructor(J,{code:Q,docsPath:q,metaMessages:X,name:G,shortMessage:$}){super($,{cause:J,docsPath:q,metaMessages:X||J?.metaMessages,name:G||"RpcError"});Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=G||J.name,this.code=J instanceof MD?J.code:Q??OC}},R8=class extends B8{constructor(J,Q){super(J,Q);Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=Q.data}},TM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}},Object.defineProperty(TM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700}),ZM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}},Object.defineProperty(ZM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600}),xM=class Y extends B8{constructor(J,{method:Q}={}){super(J,{code:Y.code,name:"MethodNotFoundRpcError",shortMessage:`The method${Q?` "${Q}"`:""} does not exist / is not available.`})}},Object.defineProperty(xM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601}),gM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(`
|
|
30
|
+
`)})}},Object.defineProperty(gM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602}),fM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}},Object.defineProperty(fM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603}),hM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
|
|
31
|
+
`)})}},Object.defineProperty(hM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32000}),mM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."});Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}},Object.defineProperty(mM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001}),yM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}},Object.defineProperty(yM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002}),lM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}},Object.defineProperty(lM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003}),uM=class Y extends B8{constructor(J,{method:Q}={}){super(J,{code:Y.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${Q?` "${Q}"`:""} is not supported.`})}},Object.defineProperty(uM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004}),cM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}},Object.defineProperty(cM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005}),bM=class Y extends B8{constructor(J){super(J,{code:Y.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}},Object.defineProperty(bM,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006}),pM=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}},Object.defineProperty(pM,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001}),oM=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}},Object.defineProperty(oM,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100}),dM=class Y extends R8{constructor(J,{method:Q}={}){super(J,{code:Y.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${Q?` " ${Q}"`:""}.`})}},Object.defineProperty(dM,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200}),rM=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}},Object.defineProperty(rM,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900}),sM=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}},Object.defineProperty(sM,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901}),iM=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}},Object.defineProperty(iM,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902}),tM=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}},Object.defineProperty(tM,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700}),nM=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}},Object.defineProperty(nM,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710}),aM=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}},Object.defineProperty(aM,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720}),eM=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}},Object.defineProperty(eM,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730}),YN=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}},Object.defineProperty(YN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740}),JN=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}},Object.defineProperty(JN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750}),QN=class Y extends R8{constructor(J){super(J,{code:Y.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}},Object.defineProperty(QN,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760})}),UC="0.1.1";function HC(){return UC}var BC=()=>{};function ND(Y,J){if(J?.(Y))return Y;if(Y&&typeof Y==="object"&&"cause"in Y&&Y.cause)return ND(Y.cause,J);return J?null:Y}var _Q,RC=Z(()=>{BC(),_Q=class Y extends Error{static setStaticOptions(J){Y.prototype.docsOrigin=J.docsOrigin,Y.prototype.showVersion=J.showVersion,Y.prototype.version=J.version}constructor(J,Q={}){let q=(()=>{if(Q.cause instanceof Y){if(Q.cause.details)return Q.cause.details;if(Q.cause.shortMessage)return Q.cause.shortMessage}if(Q.cause&&"details"in Q.cause&&typeof Q.cause.details==="string")return Q.cause.details;if(Q.cause?.message)return Q.cause.message;return Q.details})(),X=(()=>{if(Q.cause instanceof Y)return Q.cause.docsPath||Q.docsPath;return Q.docsPath})(),G=Q.docsOrigin??Y.prototype.docsOrigin,$=`${G}${X??""}`,W=Boolean(Q.version??Y.prototype.showVersion),j=Q.version??Y.prototype.version,K=[J||"An error occurred.",...Q.metaMessages?["",...Q.metaMessages]:[],...q||X||W?["",q?`Details: ${q}`:void 0,X?`See: ${$}`:void 0,W?`Version: ${j}`:void 0]:[]].filter((z)=>typeof z==="string").join(`
|
|
32
|
+
`);super(K,Q.cause?{cause:Q.cause}:void 0);Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsOrigin",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"showVersion",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.cause=Q.cause,this.details=q,this.docs=$,this.docsOrigin=G,this.docsPath=X,this.shortMessage=J,this.showVersion=W,this.version=j}walk(J){return ND(this,J)}},Object.defineProperty(_Q,"defaultStaticOptions",{enumerable:!0,configurable:!0,writable:!0,value:{docsOrigin:"https://oxlib.sh",showVersion:!1,version:`ox@${HC()}`}}),(()=>{_Q.setStaticOptions(_Q.defaultStaticOptions)})()});function VC(Y,J={}){let{dir:Q,size:q=32}=J;if(q===0)return Y;let X=Y.replace("0x","");if(X.length>q*2)throw new DD({size:Math.ceil(X.length/2),targetSize:q,type:"Hex"});return`0x${X[Q==="right"?"padEnd":"padStart"](q*2,"0")}`}var LC=Z(()=>{t5()});function _Y(Y,J={}){let{signed:Q,size:q}=J,X=BigInt(Y),G;if(q)if(Q)G=(1n<<BigInt(q)*8n-1n)-1n;else G=2n**(BigInt(q)*8n)-1n;else if(typeof Y==="number")G=BigInt(Number.MAX_SAFE_INTEGER);let $=typeof G==="bigint"&&Q?-G-1n:0;if(G&&X>G||X<$){let j=typeof Y==="bigint"?"n":"";throw new OD({max:G?`${G}${j}`:void 0,min:`${$}${j}`,signed:Q,size:q,value:`${Y}${j}`})}let W=`0x${(Q&&X<0?BigInt.asUintN(q*8,BigInt(X)):X).toString(16)}`;if(q)return EC(W,q);return W}function EC(Y,J){return VC(Y,{dir:"left",size:J})}var OD,DD,t5=Z(()=>{RC(),LC(),OD=class extends _Q{constructor({max:J,min:Q,signed:q,size:X,value:G}){super(`Number \`${G}\` is not in safe${X?` ${X*8}-bit`:""}${q?" signed":" unsigned"} integer range ${J?`(\`${Q}\` to \`${J}\`)`:`(above \`${Q}\`)`}`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}},DD=class extends _Q{constructor({size:J,targetSize:Q,type:q}){super(`${q.charAt(0).toUpperCase()}${q.slice(1).toLowerCase()} size (\`${J}\`) exceeds padding size (\`${Q}\`).`);Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}});function wC(Y){return{address:Y.address,amount:_Y(Y.amount),index:_Y(Y.index),validatorIndex:_Y(Y.validatorIndex)}}var AC=Z(()=>{t5()});function CC(Y){return{...typeof Y.baseFeePerGas==="bigint"&&{baseFeePerGas:_Y(Y.baseFeePerGas)},...typeof Y.blobBaseFee==="bigint"&&{blobBaseFee:_Y(Y.blobBaseFee)},...typeof Y.feeRecipient==="string"&&{feeRecipient:Y.feeRecipient},...typeof Y.gasLimit==="bigint"&&{gasLimit:_Y(Y.gasLimit)},...typeof Y.number==="bigint"&&{number:_Y(Y.number)},...typeof Y.prevRandao==="bigint"&&{prevRandao:_Y(Y.prevRandao)},...typeof Y.time==="bigint"&&{time:_Y(Y.time)},...Y.withdrawals&&{withdrawals:Y.withdrawals.map(wC)}}}var IC=Z(()=>{t5(),AC()}),lW,rG,$W,SC,vC,UD=Z(()=>{lW=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],rG=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],$W=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],SC=[...$W,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],vC=[...$W,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}]}),_C="0x82ad56cb",kC="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",FC="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",PC="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033",sG,n5,HD=Z(()=>{a0(),sG=class extends p{constructor({blockNumber:J,chain:Q,contract:q}){super(`Chain "${Q.name}" does not support contract "${q.name}".`,{metaMessages:["This could be due to any of the following:",...J&&q.blockCreated&&q.blockCreated>J?[`- The contract "${q.name}" was not deployed until block ${q.blockCreated} (current block ${J}).`]:[`- The chain does not have the contract "${q.name}" configured.`]],name:"ChainDoesNotSupportContract"})}},n5=class extends p{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}});function BD(Y){let{abi:J,args:Q,bytecode:q}=Y;if(!Q||Q.length===0)return q;let X=J.find(($)=>("type"in $)&&$.type==="constructor");if(!X)throw new TO({docsPath:WW});if(!("inputs"in X))throw new vW({docsPath:WW});if(!X.inputs||X.inputs.length===0)throw new vW({docsPath:WW});let G=XX(X.inputs,Q);return S$([q,G])}var WW="/docs/contract/encodeDeployData",TC=Z(()=>{P8(),XQ()});function ZC({blockNumber:Y,chain:J,contract:Q}){let q=J?.contracts?.[Q];if(!q)throw new sG({chain:J,contract:{name:Q}});if(Y&&q.blockCreated&&q.blockCreated>Y)throw new sG({blockNumber:Y,chain:J,contract:{name:Q,blockCreated:q.blockCreated}});return q.address}var xC=Z(()=>{HD()}),yJ,nX,iG,tG,nG,aG,eG,Y$,J$,Q$,aX,a5,e5=Z(()=>{qD(),a0(),yJ=class extends p{constructor({cause:J,message:Q}={}){let q=Q?.replace("execution reverted: ","")?.replace("execution reverted","");super(`Execution reverted ${q?`with reason: ${q}`:"for an unknown reason"}.`,{cause:J,name:"ExecutionRevertedError"})}},Object.defineProperty(yJ,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(yJ,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted|gas required exceeds allowance/}),nX=class extends p{constructor({cause:J,maxFeePerGas:Q}={}){super(`The fee cap (\`maxFeePerGas\`${Q?` = ${mJ(Q)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:J,name:"FeeCapTooHighError"})}},Object.defineProperty(nX,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/}),iG=class extends p{constructor({cause:J,maxFeePerGas:Q}={}){super(`The fee cap (\`maxFeePerGas\`${Q?` = ${mJ(Q)}`:""} gwei) cannot be lower than the block base fee.`,{cause:J,name:"FeeCapTooLowError"})}},Object.defineProperty(iG,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/}),tG=class extends p{constructor({cause:J,nonce:Q}={}){super(`Nonce provided for the transaction ${Q?`(${Q}) `:""}is higher than the next one expected.`,{cause:J,name:"NonceTooHighError"})}},Object.defineProperty(tG,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/}),nG=class extends p{constructor({cause:J,nonce:Q}={}){super([`Nonce provided for the transaction ${Q?`(${Q}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
|
|
33
|
+
`),{cause:J,name:"NonceTooLowError"})}},Object.defineProperty(nG,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/}),aG=class extends p{constructor({cause:J,nonce:Q}={}){super(`Nonce provided for the transaction ${Q?`(${Q}) `:""}exceeds the maximum allowed nonce.`,{cause:J,name:"NonceMaxValueError"})}},Object.defineProperty(aG,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/}),eG=class extends p{constructor({cause:J}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
|
|
34
|
+
`),{cause:J,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}},Object.defineProperty(eG,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/}),Y$=class extends p{constructor({cause:J,gas:Q}={}){super(`The amount of gas ${Q?`(${Q}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:J,name:"IntrinsicGasTooHighError"})}},Object.defineProperty(Y$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/}),J$=class extends p{constructor({cause:J,gas:Q}={}){super(`The amount of gas ${Q?`(${Q}) `:""}provided for the transaction is too low.`,{cause:J,name:"IntrinsicGasTooLowError"})}},Object.defineProperty(J$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/}),Q$=class extends p{constructor({cause:J}){super("The transaction type is not supported for this chain.",{cause:J,name:"TransactionTypeNotSupportedError"})}},Object.defineProperty(Q$,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/}),aX=class extends p{constructor({cause:J,maxPriorityFeePerGas:Q,maxFeePerGas:q}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${Q?` = ${mJ(Q)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${q?` = ${mJ(q)} gwei`:""}).`].join(`
|
|
35
|
+
`),{cause:J,name:"TipAboveFeeCapError"})}},Object.defineProperty(aX,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/}),a5=class extends p{constructor({cause:J}){super(`An error occurred while executing: ${J?.shortMessage}`,{cause:J,name:"UnknownNodeError"})}}});function gC(Y,J){let Q=(Y.details||"").toLowerCase(),q=Y instanceof p?Y.walk((X)=>X?.code===yJ.code):Y;if(q instanceof p)return new yJ({cause:Y,message:q.details});if(yJ.nodeMessage.test(Q))return new yJ({cause:Y,message:Y.details});if(nX.nodeMessage.test(Q))return new nX({cause:Y,maxFeePerGas:J?.maxFeePerGas});if(iG.nodeMessage.test(Q))return new iG({cause:Y,maxFeePerGas:J?.maxFeePerGas});if(tG.nodeMessage.test(Q))return new tG({cause:Y,nonce:J?.nonce});if(nG.nodeMessage.test(Q))return new nG({cause:Y,nonce:J?.nonce});if(aG.nodeMessage.test(Q))return new aG({cause:Y,nonce:J?.nonce});if(eG.nodeMessage.test(Q))return new eG({cause:Y});if(Y$.nodeMessage.test(Q))return new Y$({cause:Y,gas:J?.gas});if(J$.nodeMessage.test(Q))return new J$({cause:Y,gas:J?.gas});if(Q$.nodeMessage.test(Q))return new Q$({cause:Y});if(aX.nodeMessage.test(Q))return new aX({cause:Y,maxFeePerGas:J?.maxFeePerGas,maxPriorityFeePerGas:J?.maxPriorityFeePerGas});return new a5({cause:Y})}var fC=Z(()=>{a0(),e5()});function hC(Y,{docsPath:J,...Q}){let q=(()=>{let X=gC(Y,Q);if(X instanceof a5)return Y;return X})();return new jD(q,{docsPath:J,...Q})}var mC=Z(()=>{s5(),e5(),fC()});function yC(Y,{format:J}){if(!J)return{};let Q={};function q(G){let $=Object.keys(G);for(let W of $){if(W in Y)Q[W]=Y[W];if(G[W]&&typeof G[W]==="object"&&!Array.isArray(G[W]))q(G[W])}}let X=J(Y||{});return q(X),Q}function lC(Y,J){let Q={};if(typeof Y.authorizationList<"u")Q.authorizationList=uC(Y.authorizationList);if(typeof Y.accessList<"u")Q.accessList=Y.accessList;if(typeof Y.blobVersionedHashes<"u")Q.blobVersionedHashes=Y.blobVersionedHashes;if(typeof Y.blobs<"u")if(typeof Y.blobs[0]!=="string")Q.blobs=Y.blobs.map((q)=>mY(q));else Q.blobs=Y.blobs;if(typeof Y.data<"u")Q.data=Y.data;if(Y.account)Q.from=Y.account.address;if(typeof Y.from<"u")Q.from=Y.from;if(typeof Y.gas<"u")Q.gas=k0(Y.gas);if(typeof Y.gasPrice<"u")Q.gasPrice=k0(Y.gasPrice);if(typeof Y.maxFeePerBlobGas<"u")Q.maxFeePerBlobGas=k0(Y.maxFeePerBlobGas);if(typeof Y.maxFeePerGas<"u")Q.maxFeePerGas=k0(Y.maxFeePerGas);if(typeof Y.maxPriorityFeePerGas<"u")Q.maxPriorityFeePerGas=k0(Y.maxPriorityFeePerGas);if(typeof Y.nonce<"u")Q.nonce=k0(Y.nonce);if(typeof Y.to<"u")Q.to=Y.to;if(typeof Y.type<"u")Q.type=RD[Y.type];if(typeof Y.value<"u")Q.value=k0(Y.value);return Q}function uC(Y){return Y.map((J)=>({address:J.address,r:J.r?k0(BigInt(J.r)):J.r,s:J.s?k0(BigInt(J.s)):J.s,chainId:k0(J.chainId),nonce:k0(J.nonce),...typeof J.yParity<"u"?{yParity:k0(J.yParity)}:{},...typeof J.v<"u"&&typeof J.yParity>"u"?{v:k0(J.v)}:{}}))}var RD,cC=Z(()=>{HJ(),RD={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"}});function bC(){let Y=()=>{return},J=()=>{return};return{promise:new Promise((Q,q)=>{Y=Q,J=q}),resolve:Y,reject:J}}function pC({fn:Y,id:J,shouldSplitBatch:Q,wait:q=0,sort:X}){let G=async()=>{let z=j();$();let M=z.map(({args:N})=>N);if(M.length===0)return;Y(M).then((N)=>{if(X&&Array.isArray(N))N.sort(X);for(let O=0;O<z.length;O++){let{resolve:D}=z[O];D?.([N[O],N])}}).catch((N)=>{for(let O=0;O<z.length;O++){let{reject:D}=z[O];D?.(N)}})},$=()=>hG.delete(J),W=()=>j().map(({args:z})=>z),j=()=>hG.get(J)||[],K=(z)=>hG.set(J,[...j(),z]);return{flush:$,async schedule(z){let{promise:M,resolve:N,reject:O}=bC();if(Q?.([...W(),z]))G();if(j().length>0)return K({args:z,resolve:N,reject:O}),M;return K({args:z,resolve:N,reject:O}),setTimeout(G,q),M}}}var hG,oC=Z(()=>{hG=new Map});function XN(Y){if(!Y||Y.length===0)return;return Y.reduce((J,{slot:Q,value:q})=>{if(Q.length!==66)throw new kW({size:Q.length,targetSize:66,type:"hex"});if(q.length!==66)throw new kW({size:q.length,targetSize:66,type:"hex"});return J[Q]=q,J},{})}function dC(Y){let{balance:J,nonce:Q,state:q,stateDiff:X,code:G}=Y,$={};if(G!==void 0)$.code=G;if(J!==void 0)$.balance=k0(J);if(Q!==void 0)$.nonce=k0(Q);if(q!==void 0)$.state=XN(q);if(X!==void 0){if($.state)throw new $D;$.stateDiff=XN(X)}return $}function rC(Y){if(!Y)return;let J={};for(let{address:Q,...q}of Y){if(!yY(Q,{strict:!1}))throw new rJ({address:Q});if(J[Q])throw new GD({address:Q});J[Q]=dC(q)}return J}var sC=Z(()=>{w$(),A5(),WD(),Dq(),HJ()}),iC,tC,nC,aC,eC,YI,JI,QI,XI,qI,GI,$I,WI,jI,KI,zI,MI,NI,OI,DI,UI,HI,BI,RI,VI,LI,EI,wI,AI,CI,II,SI,vI,_I,kI,FI,PI,TI,ZI,xI,gI,fI,hI,mI,yI,lI,uI,cI,bI,pI,oI,dI,rI,sI,iI,tI,nI,aI,eI,YS,JS,QS,XS,qS,GS,$S,WS,jS,KS,zS,MS,NS,OS,DS,US,HS,BS,RS,VS,LS,ES,wS,AS,CS,IS,SS,vS,_S,kS,FS,PS,TS,ZS,xS,gS,VD,fS=Z(()=>{iC=2n**(8n-1n)-1n,tC=2n**(16n-1n)-1n,nC=2n**(24n-1n)-1n,aC=2n**(32n-1n)-1n,eC=2n**(40n-1n)-1n,YI=2n**(48n-1n)-1n,JI=2n**(56n-1n)-1n,QI=2n**(64n-1n)-1n,XI=2n**(72n-1n)-1n,qI=2n**(80n-1n)-1n,GI=2n**(88n-1n)-1n,$I=2n**(96n-1n)-1n,WI=2n**(104n-1n)-1n,jI=2n**(112n-1n)-1n,KI=2n**(120n-1n)-1n,zI=2n**(128n-1n)-1n,MI=2n**(136n-1n)-1n,NI=2n**(144n-1n)-1n,OI=2n**(152n-1n)-1n,DI=2n**(160n-1n)-1n,UI=2n**(168n-1n)-1n,HI=2n**(176n-1n)-1n,BI=2n**(184n-1n)-1n,RI=2n**(192n-1n)-1n,VI=2n**(200n-1n)-1n,LI=2n**(208n-1n)-1n,EI=2n**(216n-1n)-1n,wI=2n**(224n-1n)-1n,AI=2n**(232n-1n)-1n,CI=2n**(240n-1n)-1n,II=2n**(248n-1n)-1n,SI=2n**(256n-1n)-1n,vI=-(2n**(8n-1n)),_I=-(2n**(16n-1n)),kI=-(2n**(24n-1n)),FI=-(2n**(32n-1n)),PI=-(2n**(40n-1n)),TI=-(2n**(48n-1n)),ZI=-(2n**(56n-1n)),xI=-(2n**(64n-1n)),gI=-(2n**(72n-1n)),fI=-(2n**(80n-1n)),hI=-(2n**(88n-1n)),mI=-(2n**(96n-1n)),yI=-(2n**(104n-1n)),lI=-(2n**(112n-1n)),uI=-(2n**(120n-1n)),cI=-(2n**(128n-1n)),bI=-(2n**(136n-1n)),pI=-(2n**(144n-1n)),oI=-(2n**(152n-1n)),dI=-(2n**(160n-1n)),rI=-(2n**(168n-1n)),sI=-(2n**(176n-1n)),iI=-(2n**(184n-1n)),tI=-(2n**(192n-1n)),nI=-(2n**(200n-1n)),aI=-(2n**(208n-1n)),eI=-(2n**(216n-1n)),YS=-(2n**(224n-1n)),JS=-(2n**(232n-1n)),QS=-(2n**(240n-1n)),XS=-(2n**(248n-1n)),qS=-(2n**(256n-1n)),GS=2n**8n-1n,$S=2n**16n-1n,WS=2n**24n-1n,jS=2n**32n-1n,KS=2n**40n-1n,zS=2n**48n-1n,MS=2n**56n-1n,NS=2n**64n-1n,OS=2n**72n-1n,DS=2n**80n-1n,US=2n**88n-1n,HS=2n**96n-1n,BS=2n**104n-1n,RS=2n**112n-1n,VS=2n**120n-1n,LS=2n**128n-1n,ES=2n**136n-1n,wS=2n**144n-1n,AS=2n**152n-1n,CS=2n**160n-1n,IS=2n**168n-1n,SS=2n**176n-1n,vS=2n**184n-1n,_S=2n**192n-1n,kS=2n**200n-1n,FS=2n**208n-1n,PS=2n**216n-1n,TS=2n**224n-1n,ZS=2n**232n-1n,xS=2n**240n-1n,gS=2n**248n-1n,VD=2n**256n-1n});function hS(Y){let{account:J,maxFeePerGas:Q,maxPriorityFeePerGas:q,to:X}=Y,G=J?o5(J):void 0;if(G&&!yY(G.address))throw new rJ({address:G.address});if(X&&!yY(X))throw new rJ({address:X});if(Q&&Q>VD)throw new nX({maxFeePerGas:Q});if(q&&Q&&q>Q)throw new aX({maxFeePerGas:Q,maxPriorityFeePerGas:q})}var mS=Z(()=>{fS(),w$(),e5(),Dq()}),LD,ED,wD,yS=Z(()=>{a0(),LD=class extends p{constructor({callbackSelector:J,cause:Q,data:q,extraData:X,sender:G,urls:$}){super(Q.shortMessage||"An error occurred while fetching for an offchain result.",{cause:Q,metaMessages:[...Q.metaMessages||[],Q.metaMessages?.length?"":[],"Offchain Gateway Call:",$&&[" Gateway URL(s):",...$.map((W)=>` ${dG(W)}`)],` Sender: ${G}`,` Data: ${q}`,` Callback selector: ${J}`,` Extra data: ${X}`].flat(),name:"OffchainLookupError"})}},ED=class extends p{constructor({result:J,url:Q}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${dG(Q)}`,`Response: ${tX(J)}`],name:"OffchainLookupResponseMalformedError"})}},wD=class extends p{constructor({sender:J,to:Q}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${Q}`,`OffchainLookup sender address: ${J}`],name:"OffchainLookupSenderMismatchError"})}}});function lS(Y,J){if(!yY(Y,{strict:!1}))throw new rJ({address:Y});if(!yY(J,{strict:!1}))throw new rJ({address:J});return Y.toLowerCase()===J.toLowerCase()}var uS=Z(()=>{w$(),Dq()});function cS(Y){let{abi:J,data:Q}=Y,q=hQ(Q,0,4),X=J.find((G)=>G.type==="function"&&q===Bq(MJ(G)));if(!X)throw new mO(q,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:X.name,args:"inputs"in X&&X.inputs&&X.inputs.length>0?Z5(X.inputs,hQ(Q,4)):void 0}}var bS=Z(()=>{P8(),Uq(),Rq(),x5(),YX()});function qN(Y){let{abi:J,errorName:Q,args:q}=Y,X=J[0];if(Q){let j=Vq({abi:J,args:q,name:Q});if(!j)throw new _W(Q,{docsPath:jW});X=j}if(X.type!=="error")throw new _W(void 0,{docsPath:jW});let G=MJ(X),$=Bq(G),W="0x";if(q&&q.length>0){if(!X.inputs)throw new hO(X.name,{docsPath:jW});W=XX(X.inputs,q)}return S$([$,W])}var jW="/docs/contract/encodeErrorResult",pS=Z(()=>{P8(),Rq(),XQ(),YX(),Lq()});function oS(Y){let{abi:J,functionName:Q,result:q}=Y,X=J[0];if(Q){let $=Vq({abi:J,name:Q});if(!$)throw new dJ(Q,{docsPath:KW});X=$}if(X.type!=="function")throw new dJ(void 0,{docsPath:KW});if(!X.outputs)throw new R5(X.name,{docsPath:KW});let G=(()=>{if(X.outputs.length===0)return[];if(X.outputs.length===1)return[q];if(Array.isArray(q))return q;throw new V5(q)})();return XX(X.outputs,G)}var KW="/docs/contract/encodeFunctionResult",dS=Z(()=>{P8(),XQ(),Lq()});async function AD(Y){let{data:J,ccipRequest:Q}=Y,{args:[q]}=cS({abi:rG,data:J}),X=[],G=[];return await Promise.all(q.map(async($,W)=>{try{G[W]=$.urls.includes(CD)?await AD({data:$.data,ccipRequest:Q}):await Q($),X[W]=!1}catch(j){X[W]=!0,G[W]=rS(j)}})),oS({abi:rG,functionName:"query",result:[X,G]})}function rS(Y){if(Y.name==="HttpRequestError"&&Y.status)return qN({abi:rG,errorName:"HttpError",args:[Y.status,Y.shortMessage]});return qN({abi:[d5],errorName:"Error",args:["shortMessage"in Y?Y.shortMessage:Y.message]})}var CD="x-batch-gateway:true",sS=Z(()=>{UD(),r5(),bS(),pS(),dS()}),ID={};e8(ID,{offchainLookupSignature:()=>tS,offchainLookupAbiItem:()=>Yj,offchainLookup:()=>iS,ccipRequest:()=>SD});async function iS(Y,{blockNumber:J,blockTag:Q,data:q,to:X}){let{args:G}=a4({data:q,abi:[Yj]}),[$,W,j,K,z]=G,{ccipRead:M}=Y,N=M&&typeof M?.request==="function"?M.request:SD;try{if(!lS(X,$))throw new wD({sender:$,to:X});let O=W.includes(CD)?await AD({data:j,ccipRequest:N}):await N({data:j,sender:$,urls:W}),{data:D}=await aS(Y,{blockNumber:J,blockTag:Q,data:sJ([K,XX([{type:"bytes"},{type:"bytes"}],[O,z])]),to:X});return D}catch(O){throw new LD({callbackSelector:K,cause:O,data:q,extraData:z,sender:$,urls:W})}}async function SD({data:Y,sender:J,urls:Q}){let q=Error("An unknown error occurred.");for(let X=0;X<Q.length;X++){let G=Q[X],$=G.includes("{data}")?"GET":"POST",W=$==="POST"?{data:Y,sender:J}:void 0,j=$==="POST"?{"Content-Type":"application/json"}:{};try{let K=await fetch(G.replace("{sender}",J.toLowerCase()).replace("{data}",Y),{body:JSON.stringify(W),headers:j,method:$}),z;if(K.headers.get("Content-Type")?.startsWith("application/json"))z=(await K.json()).data;else z=await K.text();if(!K.ok){q=new yW({body:W,details:z?.error?tX(z.error):K.statusText,headers:K.headers,status:K.status,url:G});continue}if(!JX(z)){q=new ED({result:z,url:G});continue}return z}catch(K){q=new yW({body:W,details:K.message,url:G})}}throw q}var tS="0x556f1830",Yj,nS=Z(()=>{_D(),yS(),i5(),e4(),XQ(),uS(),sS(),Yj={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]}});async function aS(Y,J){let{account:Q=Y.account,authorizationList:q,batch:X=Boolean(Y.batch?.multicall),blockNumber:G,blockTag:$=Y.experimental_blockTag??"latest",accessList:W,blobs:j,blockOverrides:K,code:z,data:M,factory:N,factoryData:O,gas:D,gasPrice:U,maxFeePerBlobGas:A,maxFeePerGas:w,maxPriorityFeePerGas:v,nonce:R,to:E,value:C,stateOverride:S,...T}=J,d=Q?o5(Q):void 0;if(z&&(N||O))throw new p("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(z&&E)throw new p("Cannot provide both `code` & `to` as parameters.");let u=z&&M,f=N&&O&&E&&M,n=u||f,t=(()=>{if(u)return vD({code:z,data:M});if(f)return J3({data:M,factory:N,factoryData:O,to:E});return M})();try{hS(J);let R0=(typeof G==="bigint"?k0(G):void 0)||$,a=K?CC(K):void 0,B=rC(S),I=Y.chain?.formatters?.transactionRequest?.format,g=(I||lC)({...yC(T,{format:I}),accessList:W,account:d,authorizationList:q,blobs:j,data:t,gas:D,gasPrice:U,maxFeePerBlobGas:A,maxFeePerGas:w,maxPriorityFeePerGas:v,nonce:R,to:n?void 0:E,value:C},"call");if(X&&eS({request:g})&&!B&&!a)try{return await Y3(Y,{...g,blockNumber:G,blockTag:$})}catch(b){if(!(b instanceof n5)&&!(b instanceof sG))throw b}let i=(()=>{let b=[g,R0];if(B&&a)return[...b,B,a];if(B)return[...b,B];if(a)return[...b,{},a];return b})(),l=await Y.request({method:"eth_call",params:i});if(l==="0x")return{data:void 0};return{data:l}}catch(R0){let a=Q3(R0),{offchainLookup:B,offchainLookupSignature:I}=await Promise.resolve().then(()=>(nS(),ID));if(Y.ccipRead!==!1&&a?.slice(0,10)===I&&E)return{data:await B(Y,{data:a,to:E})};if(n&&a?.slice(0,10)==="0x101bb98d")throw new KD({factory:N});throw hC(R0,{...J,account:d,chain:Y.chain})}}function eS({request:Y}){let{data:J,to:Q,...q}=Y;if(!J)return!1;if(J.startsWith(_C))return!1;if(!Q)return!1;if(Object.values(q).filter((X)=>typeof X<"u").length>0)return!1;return!0}async function Y3(Y,J){let{batchSize:Q=1024,deployless:q=!1,wait:X=0}=typeof Y.batch?.multicall==="object"?Y.batch.multicall:{},{blockNumber:G,blockTag:$=Y.experimental_blockTag??"latest",data:W,to:j}=J,K=(()=>{if(q)return null;if(J.multicallAddress)return J.multicallAddress;if(Y.chain)return ZC({blockNumber:G,chain:Y.chain,contract:"multicall3"});throw new n5})(),z=(typeof G==="bigint"?k0(G):void 0)||$,{schedule:M}=pC({id:`${Y.uid}.${z}`,wait:X,shouldSplitBatch(D){return D.reduce((U,{data:A})=>U+(A.length-2),0)>Q*2},fn:async(D)=>{let U=D.map((v)=>({allowFailure:!0,callData:v.data,target:v.to})),A=XC({abi:lW,args:[U],functionName:"aggregate3"}),w=await Y.request({method:"eth_call",params:[{...K===null?{data:vD({code:PC,data:A})}:{to:K,data:A}},z]});return YC({abi:lW,args:[U],functionName:"aggregate3",data:w||"0x"})}}),[{returnData:N,success:O}]=await M({data:W,to:j});if(!O)throw new zD({data:N});if(N==="0x")return{data:void 0};return{data:N}}function vD(Y){let{code:J,data:Q}=Y;return BD({abi:c4(["constructor(bytes, bytes)"]),bytecode:kC,args:[J,Q]})}function J3(Y){let{data:J,factory:Q,factoryData:q,to:X}=Y;return BD({abi:c4(["constructor(address, bytes, address, bytes)"]),bytecode:FC,args:[X,J,Q,q]})}function Q3(Y){if(!(Y instanceof p))return;let J=Y.walk();return typeof J?.data==="object"?J.data?.data:J.data}var _D=Z(()=>{b4(),IC(),UD(),a0(),HD(),s5(),s4(),TC(),i4(),xC(),HJ(),mC(),cC(),oC(),sC(),mS()}),L={};e8(L,{xor:()=>oV,xid:()=>DV,void:()=>yV,uuidv7:()=>$V,uuidv6:()=>GV,uuidv4:()=>qV,uuid:()=>XV,util:()=>N0,url:()=>WV,uppercase:()=>g$,unknown:()=>aJ,union:()=>M9,undefined:()=>hV,ulid:()=>OV,uint64:()=>gV,uint32:()=>TV,tuple:()=>CK,trim:()=>u$,treeifyError:()=>pD,transform:()=>O9,toUpperCase:()=>b$,toLowerCase:()=>c$,toJSONSchema:()=>xR,templateLiteral:()=>q6,symbol:()=>fV,superRefine:()=>nK,success:()=>J6,stringbool:()=>M6,stringFormat:()=>IV,string:()=>K$,strictObject:()=>bV,startsWith:()=>h$,slugify:()=>p$,size:()=>Pq,setErrorMap:()=>Ek,set:()=>tV,safeParseAsync:()=>dR,safeParse:()=>oR,safeEncodeAsync:()=>eR,safeEncode:()=>nR,safeDecodeAsync:()=>YV,safeDecode:()=>aR,registry:()=>_j,regexes:()=>$Q,regex:()=>Z$,refine:()=>tK,record:()=>IK,readonly:()=>pK,property:()=>ej,promise:()=>G6,prettifyError:()=>dD,preprocess:()=>O6,prefault:()=>hK,positive:()=>ij,pipe:()=>Xq,partialRecord:()=>rV,parseAsync:()=>pR,parse:()=>bR,overwrite:()=>oY,optional:()=>Jq,object:()=>cV,number:()=>jK,nullish:()=>Y6,nullable:()=>Qq,null:()=>OK,normalize:()=>l$,nonpositive:()=>nj,nonoptional:()=>mK,nonnegative:()=>aj,never:()=>K9,negative:()=>tj,nativeEnum:()=>nV,nanoid:()=>zV,nan:()=>Q6,multipleOf:()=>lQ,minSize:()=>DJ,minLength:()=>nJ,mime:()=>y$,meta:()=>K6,maxSize:()=>qX,maxLength:()=>Tq,map:()=>iV,mac:()=>BV,lte:()=>l8,lt:()=>NJ,lowercase:()=>x$,looseRecord:()=>sV,looseObject:()=>pV,locales:()=>Sj,literal:()=>aV,length:()=>Zq,lazy:()=>rK,ksuid:()=>UV,keyof:()=>uV,jwt:()=>CV,json:()=>N6,iso:()=>QK,ipv6:()=>RV,ipv4:()=>HV,intersection:()=>wK,int64:()=>xV,int32:()=>PV,int:()=>z$,instanceof:()=>z6,includes:()=>f$,httpUrl:()=>jV,hostname:()=>SV,hex:()=>vV,hash:()=>_V,guid:()=>QV,gte:()=>E8,gt:()=>OJ,globalRegistry:()=>y8,getErrorMap:()=>wk,function:()=>M$,fromJSONSchema:()=>Sk,formatError:()=>Gj,float64:()=>FV,float32:()=>kV,flattenError:()=>qj,file:()=>eV,exactOptional:()=>TK,enum:()=>N9,endsWith:()=>m$,encodeAsync:()=>iR,encode:()=>rR,emoji:()=>KV,email:()=>JV,e164:()=>AV,discriminatedUnion:()=>dV,describe:()=>j6,decodeAsync:()=>tR,decode:()=>sR,date:()=>lV,custom:()=>W6,cuid2:()=>NV,cuid:()=>MV,core:()=>kD,config:()=>$8,coerce:()=>U6,codec:()=>X6,clone:()=>b8,cidrv6:()=>LV,cidrv4:()=>VV,check:()=>$6,catch:()=>uK,boolean:()=>KK,bigint:()=>ZV,base64url:()=>wV,base64:()=>EV,array:()=>lq,any:()=>mV,_function:()=>M$,_default:()=>gK,_ZodString:()=>o$,ZodXor:()=>VK,ZodXID:()=>a$,ZodVoid:()=>BK,ZodUnknown:()=>UK,ZodUnion:()=>cq,ZodUndefined:()=>MK,ZodUUID:()=>OY,ZodURL:()=>fq,ZodULID:()=>n$,ZodType:()=>G0,ZodTuple:()=>AK,ZodTransform:()=>FK,ZodTemplateLiteral:()=>oK,ZodSymbol:()=>zK,ZodSuccess:()=>yK,ZodStringFormat:()=>I0,ZodString:()=>gq,ZodSet:()=>vK,ZodRecord:()=>bq,ZodRealError:()=>Z8,ZodReadonly:()=>bK,ZodPromise:()=>sK,ZodPrefault:()=>fK,ZodPipe:()=>H9,ZodOptional:()=>D9,ZodObject:()=>uq,ZodNumberFormat:()=>WQ,ZodNumber:()=>hq,ZodNullable:()=>ZK,ZodNull:()=>NK,ZodNonOptional:()=>U9,ZodNever:()=>HK,ZodNanoID:()=>s$,ZodNaN:()=>cK,ZodMap:()=>SK,ZodMAC:()=>WK,ZodLiteral:()=>_K,ZodLazy:()=>dK,ZodKSUID:()=>e$,ZodJWT:()=>W9,ZodIssueCode:()=>Lk,ZodIntersection:()=>EK,ZodISOTime:()=>GK,ZodISODuration:()=>$K,ZodISODateTime:()=>XK,ZodISODate:()=>qK,ZodIPv6:()=>J9,ZodIPv4:()=>Y9,ZodGUID:()=>Yq,ZodFunction:()=>iK,ZodFirstPartyTypeKind:()=>dW,ZodFile:()=>kK,ZodExactOptional:()=>PK,ZodError:()=>Vk,ZodEnum:()=>pQ,ZodEmoji:()=>r$,ZodEmail:()=>d$,ZodE164:()=>$9,ZodDiscriminatedUnion:()=>LK,ZodDefault:()=>xK,ZodDate:()=>z9,ZodCustomStringFormat:()=>GX,ZodCustom:()=>pq,ZodCodec:()=>B9,ZodCatch:()=>lK,ZodCUID2:()=>t$,ZodCUID:()=>i$,ZodCIDRv6:()=>X9,ZodCIDRv4:()=>Q9,ZodBoolean:()=>mq,ZodBigIntFormat:()=>j9,ZodBigInt:()=>yq,ZodBase64URL:()=>G9,ZodBase64:()=>q9,ZodArray:()=>RK,ZodAny:()=>DK,TimePrecision:()=>OB,NEVER:()=>FD,$output:()=>jB,$input:()=>KB,$brand:()=>PD});var kD={};e8(kD,{version:()=>oU,util:()=>N0,treeifyError:()=>pD,toJSONSchema:()=>xR,toDotPath:()=>oD,safeParseAsync:()=>sD,safeParse:()=>rD,safeEncodeAsync:()=>x3,safeEncode:()=>T3,safeDecodeAsync:()=>g3,safeDecode:()=>Z3,registry:()=>_j,regexes:()=>$Q,process:()=>w0,prettifyError:()=>dD,parseAsync:()=>bW,parse:()=>cW,meta:()=>sB,locales:()=>Sj,isValidJWT:()=>HH,isValidBase64URL:()=>OH,isValidBase64:()=>Vj,initializeContext:()=>uQ,globalRegistry:()=>y8,globalConfig:()=>X$,formatError:()=>Gj,flattenError:()=>qj,finalize:()=>bQ,extractDefs:()=>cQ,encodeAsync:()=>F3,encode:()=>_3,describe:()=>rB,decodeAsync:()=>P3,decode:()=>k3,createToJSONSchemaMethod:()=>tB,createStandardJSONSchemaMethod:()=>eX,config:()=>$8,clone:()=>b8,_xor:()=>i_,_xid:()=>yj,_void:()=>hB,_uuidv7:()=>Zj,_uuidv6:()=>Tj,_uuidv4:()=>Pj,_uuid:()=>Fj,_url:()=>T$,_uppercase:()=>g$,_unknown:()=>gB,_union:()=>s_,_undefined:()=>TB,_ulid:()=>mj,_uint64:()=>FB,_uint32:()=>CB,_tuple:()=>a_,_trim:()=>u$,_transform:()=>Gk,_toUpperCase:()=>b$,_toLowerCase:()=>c$,_templateLiteral:()=>Dk,_symbol:()=>PB,_superRefine:()=>oB,_success:()=>zk,_stringbool:()=>iB,_stringFormat:()=>xq,_string:()=>zB,_startsWith:()=>h$,_slugify:()=>p$,_size:()=>Pq,_set:()=>Jk,_safeParseAsync:()=>Sq,_safeParse:()=>Iq,_safeEncodeAsync:()=>Nj,_safeEncode:()=>zj,_safeDecodeAsync:()=>Oj,_safeDecode:()=>Mj,_regex:()=>Z$,_refine:()=>pB,_record:()=>e_,_readonly:()=>Ok,_property:()=>ej,_promise:()=>Hk,_positive:()=>ij,_pipe:()=>Nk,_parseAsync:()=>Cq,_parse:()=>Aq,_overwrite:()=>oY,_optional:()=>$k,_number:()=>RB,_nullable:()=>Wk,_null:()=>ZB,_normalize:()=>l$,_nonpositive:()=>nj,_nonoptional:()=>Kk,_nonnegative:()=>aj,_never:()=>fB,_negative:()=>tj,_nativeEnum:()=>Xk,_nanoid:()=>gj,_nan:()=>lB,_multipleOf:()=>lQ,_minSize:()=>DJ,_minLength:()=>nJ,_min:()=>E8,_mime:()=>y$,_maxSize:()=>qX,_maxLength:()=>Tq,_max:()=>l8,_map:()=>Yk,_mac:()=>NB,_lte:()=>l8,_lt:()=>NJ,_lowercase:()=>x$,_literal:()=>qk,_length:()=>Zq,_lazy:()=>Uk,_ksuid:()=>lj,_jwt:()=>sj,_isoTime:()=>HB,_isoDuration:()=>BB,_isoDateTime:()=>DB,_isoDate:()=>UB,_ipv6:()=>cj,_ipv4:()=>uj,_intersection:()=>n_,_int64:()=>kB,_int32:()=>AB,_int:()=>LB,_includes:()=>f$,_guid:()=>j$,_gte:()=>E8,_gt:()=>OJ,_float64:()=>wB,_float32:()=>EB,_file:()=>cB,_enum:()=>Qk,_endsWith:()=>m$,_encodeAsync:()=>jj,_encode:()=>$j,_emoji:()=>xj,_email:()=>kj,_e164:()=>rj,_discriminatedUnion:()=>t_,_default:()=>jk,_decodeAsync:()=>Kj,_decode:()=>Wj,_date:()=>mB,_custom:()=>bB,_cuid2:()=>hj,_cuid:()=>fj,_coercedString:()=>MB,_coercedNumber:()=>VB,_coercedDate:()=>yB,_coercedBoolean:()=>SB,_coercedBigint:()=>_B,_cidrv6:()=>pj,_cidrv4:()=>bj,_check:()=>dB,_catch:()=>Mk,_boolean:()=>IB,_bigint:()=>vB,_base64url:()=>dj,_base64:()=>oj,_array:()=>uB,_any:()=>xB,TimePrecision:()=>OB,NEVER:()=>FD,JSONSchemaGenerator:()=>gR,JSONSchema:()=>Rk,Doc:()=>Rj,$output:()=>jB,$input:()=>KB,$constructor:()=>V,$brand:()=>PD,$ZodXor:()=>xH,$ZodXID:()=>JH,$ZodVoid:()=>vH,$ZodUnknown:()=>IH,$ZodUnion:()=>P$,$ZodUndefined:()=>wH,$ZodUUID:()=>rU,$ZodURL:()=>iU,$ZodULID:()=>YH,$ZodType:()=>q0,$ZodTuple:()=>Aj,$ZodTransform:()=>bH,$ZodTemplateLiteral:()=>YB,$ZodSymbol:()=>EH,$ZodSuccess:()=>iH,$ZodStringFormat:()=>C0,$ZodString:()=>Fq,$ZodSet:()=>yH,$ZodRegistry:()=>vj,$ZodRecord:()=>hH,$ZodRealError:()=>T8,$ZodReadonly:()=>eH,$ZodPromise:()=>QB,$ZodPrefault:()=>rH,$ZodPipe:()=>aH,$ZodOptional:()=>Cj,$ZodObjectJIT:()=>ZH,$ZodObject:()=>TH,$ZodNumberFormat:()=>VH,$ZodNumber:()=>Lj,$ZodNullable:()=>oH,$ZodNull:()=>AH,$ZodNonOptional:()=>sH,$ZodNever:()=>SH,$ZodNanoID:()=>nU,$ZodNaN:()=>nH,$ZodMap:()=>mH,$ZodMAC:()=>KH,$ZodLiteral:()=>uH,$ZodLazy:()=>XB,$ZodKSUID:()=>QH,$ZodJWT:()=>BH,$ZodIntersection:()=>fH,$ZodISOTime:()=>GH,$ZodISODuration:()=>$H,$ZodISODateTime:()=>XH,$ZodISODate:()=>qH,$ZodIPv6:()=>jH,$ZodIPv4:()=>WH,$ZodGUID:()=>dU,$ZodFunction:()=>JB,$ZodFile:()=>cH,$ZodExactOptional:()=>pH,$ZodError:()=>Xj,$ZodEnum:()=>lH,$ZodEncodeError:()=>Eq,$ZodEmoji:()=>tU,$ZodEmail:()=>sU,$ZodE164:()=>UH,$ZodDiscriminatedUnion:()=>gH,$ZodDefault:()=>dH,$ZodDate:()=>_H,$ZodCustomStringFormat:()=>RH,$ZodCustom:()=>qB,$ZodCodec:()=>Ij,$ZodCheckUpperCase:()=>mU,$ZodCheckStringFormat:()=>kq,$ZodCheckStartsWith:()=>lU,$ZodCheckSizeEquals:()=>TU,$ZodCheckRegex:()=>fU,$ZodCheckProperty:()=>cU,$ZodCheckOverwrite:()=>pU,$ZodCheckNumberFormat:()=>_U,$ZodCheckMultipleOf:()=>vU,$ZodCheckMinSize:()=>PU,$ZodCheckMinLength:()=>xU,$ZodCheckMimeType:()=>bU,$ZodCheckMaxSize:()=>FU,$ZodCheckMaxLength:()=>ZU,$ZodCheckLowerCase:()=>hU,$ZodCheckLessThan:()=>Hj,$ZodCheckLengthEquals:()=>gU,$ZodCheckIncludes:()=>yU,$ZodCheckGreaterThan:()=>Bj,$ZodCheckEndsWith:()=>uU,$ZodCheckBigIntFormat:()=>kU,$ZodCheck:()=>P0,$ZodCatch:()=>tH,$ZodCUID2:()=>eU,$ZodCUID:()=>aU,$ZodCIDRv6:()=>MH,$ZodCIDRv4:()=>zH,$ZodBoolean:()=>Ej,$ZodBigIntFormat:()=>LH,$ZodBigInt:()=>wj,$ZodBase64URL:()=>DH,$ZodBase64:()=>NH,$ZodAsyncError:()=>KJ,$ZodArray:()=>kH,$ZodAny:()=>CH});var FD=Object.freeze({status:"aborted"});function V(Y,J,Q){function q(W,j){if(!W._zod)Object.defineProperty(W,"_zod",{value:{def:j,constr:$,traits:new Set},enumerable:!1});if(W._zod.traits.has(Y))return;W._zod.traits.add(Y),J(W,j);let K=$.prototype,z=Object.keys(K);for(let M=0;M<z.length;M++){let N=z[M];if(!(N in W))W[N]=K[N].bind(W)}}let X=Q?.Parent??Object;class G extends X{}Object.defineProperty(G,"name",{value:Y});function $(W){var j;let K=Q?.Parent?new G:this;q(K,W),(j=K._zod).deferred??(j.deferred=[]);for(let z of K._zod.deferred)z();return K}return Object.defineProperty($,"init",{value:q}),Object.defineProperty($,Symbol.hasInstance,{value:(W)=>{if(Q?.Parent&&W instanceof Q.Parent)return!0;return W?._zod?.traits?.has(Y)}}),Object.defineProperty($,"name",{value:Y}),$}var PD=Symbol("zod_brand");class KJ extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class Eq extends Error{constructor(Y){super(`Encountered unidirectional transform during encode: ${Y}`);this.name="ZodEncodeError"}}var X$={};function $8(Y){if(Y)Object.assign(X$,Y);return X$}var N0={};e8(N0,{unwrapMessage:()=>lX,uint8ArrayToHex:()=>v3,uint8ArrayToBase64url:()=>I3,uint8ArrayToBase64:()=>uD,stringifyPrimitive:()=>J0,slugify:()=>ZD,shallowClone:()=>gD,safeExtend:()=>V3,required:()=>w3,randomString:()=>N3,propertyKeyTypes:()=>G$,promiseAllObject:()=>M3,primitiveTypes:()=>fD,prefixIssues:()=>a8,pick:()=>H3,partial:()=>E3,parsedType:()=>X0,optionalKeys:()=>hD,omit:()=>B3,objectClone:()=>j3,numKeys:()=>O3,nullish:()=>GQ,normalizeParams:()=>P,mergeDefs:()=>pY,merge:()=>L3,jsonStringifyReplacer:()=>q$,joinValues:()=>F,issue:()=>$$,isPlainObject:()=>tJ,isObject:()=>mQ,hexToUint8Array:()=>S3,getSizableOrigin:()=>k$,getParsedType:()=>D3,getLengthableOrigin:()=>F$,getEnumValues:()=>Jj,getElementAtPath:()=>z3,floatSafeRemainder:()=>TD,finalizeIssue:()=>u8,extend:()=>R3,escapeRegex:()=>lY,esc:()=>uW,defineLazy:()=>z0,createTransparentProxy:()=>U3,cloneDef:()=>K3,clone:()=>b8,cleanRegex:()=>_$,cleanEnum:()=>A3,captureStackTrace:()=>Qj,cached:()=>wq,base64urlToUint8Array:()=>C3,base64ToUint8Array:()=>lD,assignProp:()=>BJ,assertNotEqual:()=>q3,assertNever:()=>$3,assertIs:()=>G3,assertEqual:()=>X3,assert:()=>W3,allowsEval:()=>xD,aborted:()=>lJ,NUMBER_FORMAT_RANGES:()=>mD,Class:()=>cD,BIGINT_FORMAT_RANGES:()=>yD});function X3(Y){return Y}function q3(Y){return Y}function G3(Y){}function $3(Y){throw Error("Unexpected value in exhaustive check")}function W3(Y){}function Jj(Y){let J=Object.values(Y).filter((Q)=>typeof Q==="number");return Object.entries(Y).filter(([Q,q])=>J.indexOf(+Q)===-1).map(([Q,q])=>q)}function F(Y,J="|"){return Y.map((Q)=>J0(Q)).join(J)}function q$(Y,J){if(typeof J==="bigint")return J.toString();return J}function wq(Y){return{get value(){{let J=Y();return Object.defineProperty(this,"value",{value:J}),J}throw Error("cached value already set")}}}function GQ(Y){return Y===null||Y===void 0}function _$(Y){let J=Y.startsWith("^")?1:0,Q=Y.endsWith("$")?Y.length-1:Y.length;return Y.slice(J,Q)}function TD(Y,J){let Q=(Y.toString().split(".")[1]||"").length,q=J.toString(),X=(q.split(".")[1]||"").length;if(X===0&&/\d?e-\d?/.test(q)){let j=q.match(/\d?e-(\d?)/);if(j?.[1])X=Number.parseInt(j[1])}let G=Q>X?Q:X,$=Number.parseInt(Y.toFixed(G).replace(".","")),W=Number.parseInt(J.toFixed(G).replace(".",""));return $%W/10**G}var GN=Symbol("evaluating");function z0(Y,J,Q){let q=void 0;Object.defineProperty(Y,J,{get(){if(q===GN)return;if(q===void 0)q=GN,q=Q();return q},set(X){Object.defineProperty(Y,J,{value:X})},configurable:!0})}function j3(Y){return Object.create(Object.getPrototypeOf(Y),Object.getOwnPropertyDescriptors(Y))}function BJ(Y,J,Q){Object.defineProperty(Y,J,{value:Q,writable:!0,enumerable:!0,configurable:!0})}function pY(...Y){let J={};for(let Q of Y){let q=Object.getOwnPropertyDescriptors(Q);Object.assign(J,q)}return Object.defineProperties({},J)}function K3(Y){return pY(Y._zod.def)}function z3(Y,J){if(!J)return Y;return J.reduce((Q,q)=>Q?.[q],Y)}function M3(Y){let J=Object.keys(Y),Q=J.map((q)=>Y[q]);return Promise.all(Q).then((q)=>{let X={};for(let G=0;G<J.length;G++)X[J[G]]=q[G];return X})}function N3(Y=10){let J="";for(let Q=0;Q<Y;Q++)J+="abcdefghijklmnopqrstuvwxyz"[Math.floor(Math.random()*26)];return J}function uW(Y){return JSON.stringify(Y)}function ZD(Y){return Y.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var Qj="captureStackTrace"in Error?Error.captureStackTrace:(...Y)=>{};function mQ(Y){return typeof Y==="object"&&Y!==null&&!Array.isArray(Y)}var xD=wq(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return Function(""),!0}catch(Y){return!1}});function tJ(Y){if(mQ(Y)===!1)return!1;let J=Y.constructor;if(J===void 0)return!0;if(typeof J!=="function")return!0;let Q=J.prototype;if(mQ(Q)===!1)return!1;if(Object.prototype.hasOwnProperty.call(Q,"isPrototypeOf")===!1)return!1;return!0}function gD(Y){if(tJ(Y))return{...Y};if(Array.isArray(Y))return[...Y];return Y}function O3(Y){let J=0;for(let Q in Y)if(Object.prototype.hasOwnProperty.call(Y,Q))J++;return J}var D3=(Y)=>{let J=typeof Y;switch(J){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(Y)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":if(Array.isArray(Y))return"array";if(Y===null)return"null";if(Y.then&&typeof Y.then==="function"&&Y.catch&&typeof Y.catch==="function")return"promise";if(typeof Map<"u"&&Y instanceof Map)return"map";if(typeof Set<"u"&&Y instanceof Set)return"set";if(typeof Date<"u"&&Y instanceof Date)return"date";if(typeof File<"u"&&Y instanceof File)return"file";return"object";default:throw Error(`Unknown data type: ${J}`)}},G$=new Set(["string","number","symbol"]),fD=new Set(["string","number","bigint","boolean","symbol","undefined"]);function lY(Y){return Y.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function b8(Y,J,Q){let q=new Y._zod.constr(J??Y._zod.def);if(!J||Q?.parent)q._zod.parent=Y;return q}function P(Y){let J=Y;if(!J)return{};if(typeof J==="string")return{error:()=>J};if(J?.message!==void 0){if(J?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");J.error=J.message}if(delete J.message,typeof J.error==="string")return{...J,error:()=>J.error};return J}function U3(Y){let J;return new Proxy({},{get(Q,q,X){return J??(J=Y()),Reflect.get(J,q,X)},set(Q,q,X,G){return J??(J=Y()),Reflect.set(J,q,X,G)},has(Q,q){return J??(J=Y()),Reflect.has(J,q)},deleteProperty(Q,q){return J??(J=Y()),Reflect.deleteProperty(J,q)},ownKeys(Q){return J??(J=Y()),Reflect.ownKeys(J)},getOwnPropertyDescriptor(Q,q){return J??(J=Y()),Reflect.getOwnPropertyDescriptor(J,q)},defineProperty(Q,q,X){return J??(J=Y()),Reflect.defineProperty(J,q,X)}})}function J0(Y){if(typeof Y==="bigint")return Y.toString()+"n";if(typeof Y==="string")return`"${Y}"`;return`${Y}`}function hD(Y){return Object.keys(Y).filter((J)=>{return Y[J]._zod.optin==="optional"&&Y[J]._zod.optout==="optional"})}var mD={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},yD={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function H3(Y,J){let Q=Y._zod.def,q=Q.checks;if(q&&q.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let X=pY(Y._zod.def,{get shape(){let G={};for(let $ in J){if(!($ in Q.shape))throw Error(`Unrecognized key: "${$}"`);if(!J[$])continue;G[$]=Q.shape[$]}return BJ(this,"shape",G),G},checks:[]});return b8(Y,X)}function B3(Y,J){let Q=Y._zod.def,q=Q.checks;if(q&&q.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let X=pY(Y._zod.def,{get shape(){let G={...Y._zod.def.shape};for(let $ in J){if(!($ in Q.shape))throw Error(`Unrecognized key: "${$}"`);if(!J[$])continue;delete G[$]}return BJ(this,"shape",G),G},checks:[]});return b8(Y,X)}function R3(Y,J){if(!tJ(J))throw Error("Invalid input to extend: expected a plain object");let Q=Y._zod.def.checks;if(Q&&Q.length>0){let X=Y._zod.def.shape;for(let G in J)if(Object.getOwnPropertyDescriptor(X,G)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let q=pY(Y._zod.def,{get shape(){let X={...Y._zod.def.shape,...J};return BJ(this,"shape",X),X}});return b8(Y,q)}function V3(Y,J){if(!tJ(J))throw Error("Invalid input to safeExtend: expected a plain object");let Q=pY(Y._zod.def,{get shape(){let q={...Y._zod.def.shape,...J};return BJ(this,"shape",q),q}});return b8(Y,Q)}function L3(Y,J){let Q=pY(Y._zod.def,{get shape(){let q={...Y._zod.def.shape,...J._zod.def.shape};return BJ(this,"shape",q),q},get catchall(){return J._zod.def.catchall},checks:[]});return b8(Y,Q)}function E3(Y,J,Q){let q=J._zod.def.checks;if(q&&q.length>0)throw Error(".partial() cannot be used on object schemas containing refinements");let X=pY(J._zod.def,{get shape(){let G=J._zod.def.shape,$={...G};if(Q)for(let W in Q){if(!(W in G))throw Error(`Unrecognized key: "${W}"`);if(!Q[W])continue;$[W]=Y?new Y({type:"optional",innerType:G[W]}):G[W]}else for(let W in G)$[W]=Y?new Y({type:"optional",innerType:G[W]}):G[W];return BJ(this,"shape",$),$},checks:[]});return b8(J,X)}function w3(Y,J,Q){let q=pY(J._zod.def,{get shape(){let X=J._zod.def.shape,G={...X};if(Q)for(let $ in Q){if(!($ in G))throw Error(`Unrecognized key: "${$}"`);if(!Q[$])continue;G[$]=new Y({type:"nonoptional",innerType:X[$]})}else for(let $ in X)G[$]=new Y({type:"nonoptional",innerType:X[$]});return BJ(this,"shape",G),G}});return b8(J,q)}function lJ(Y,J=0){if(Y.aborted===!0)return!0;for(let Q=J;Q<Y.issues.length;Q++)if(Y.issues[Q]?.continue!==!0)return!0;return!1}function a8(Y,J){return J.map((Q)=>{var q;return(q=Q).path??(q.path=[]),Q.path.unshift(Y),Q})}function lX(Y){return typeof Y==="string"?Y:Y?.message}function u8(Y,J,Q){let q={...Y,path:Y.path??[]};if(!Y.message){let X=lX(Y.inst?._zod.def?.error?.(Y))??lX(J?.error?.(Y))??lX(Q.customError?.(Y))??lX(Q.localeError?.(Y))??"Invalid input";q.message=X}if(delete q.inst,delete q.continue,!J?.reportInput)delete q.input;return q}function k$(Y){if(Y instanceof Set)return"set";if(Y instanceof Map)return"map";if(Y instanceof File)return"file";return"unknown"}function F$(Y){if(Array.isArray(Y))return"array";if(typeof Y==="string")return"string";return"unknown"}function X0(Y){let J=typeof Y;switch(J){case"number":return Number.isNaN(Y)?"nan":"number";case"object":{if(Y===null)return"null";if(Array.isArray(Y))return"array";let Q=Y;if(Q&&Object.getPrototypeOf(Q)!==Object.prototype&&"constructor"in Q&&Q.constructor)return Q.constructor.name}}return J}function $$(...Y){let[J,Q,q]=Y;if(typeof J==="string")return{message:J,code:"custom",input:Q,inst:q};return{...J}}function A3(Y){return Object.entries(Y).filter(([J,Q])=>{return Number.isNaN(Number.parseInt(J,10))}).map((J)=>J[1])}function lD(Y){let J=atob(Y),Q=new Uint8Array(J.length);for(let q=0;q<J.length;q++)Q[q]=J.charCodeAt(q);return Q}function uD(Y){let J="";for(let Q=0;Q<Y.length;Q++)J+=String.fromCharCode(Y[Q]);return btoa(J)}function C3(Y){let J=Y.replace(/-/g,"+").replace(/_/g,"/"),Q="=".repeat((4-J.length%4)%4);return lD(J+Q)}function I3(Y){return uD(Y).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function S3(Y){let J=Y.replace(/^0x/,"");if(J.length%2!==0)throw Error("Invalid hex string length");let Q=new Uint8Array(J.length/2);for(let q=0;q<J.length;q+=2)Q[q/2]=Number.parseInt(J.slice(q,q+2),16);return Q}function v3(Y){return Array.from(Y).map((J)=>J.toString(16).padStart(2,"0")).join("")}class cD{constructor(...Y){}}var bD=(Y,J)=>{Y.name="$ZodError",Object.defineProperty(Y,"_zod",{value:Y._zod,enumerable:!1}),Object.defineProperty(Y,"issues",{value:J,enumerable:!1}),Y.message=JSON.stringify(J,q$,2),Object.defineProperty(Y,"toString",{value:()=>Y.message,enumerable:!1})},Xj=V("$ZodError",bD),T8=V("$ZodError",bD,{Parent:Error});function qj(Y,J=(Q)=>Q.message){let Q={},q=[];for(let X of Y.issues)if(X.path.length>0)Q[X.path[0]]=Q[X.path[0]]||[],Q[X.path[0]].push(J(X));else q.push(J(X));return{formErrors:q,fieldErrors:Q}}function Gj(Y,J=(Q)=>Q.message){let Q={_errors:[]},q=(X)=>{for(let G of X.issues)if(G.code==="invalid_union"&&G.errors.length)G.errors.map(($)=>q({issues:$}));else if(G.code==="invalid_key")q({issues:G.issues});else if(G.code==="invalid_element")q({issues:G.issues});else if(G.path.length===0)Q._errors.push(J(G));else{let $=Q,W=0;while(W<G.path.length){let j=G.path[W];if(W!==G.path.length-1)$[j]=$[j]||{_errors:[]};else $[j]=$[j]||{_errors:[]},$[j]._errors.push(J(G));$=$[j],W++}}};return q(Y),Q}function pD(Y,J=(Q)=>Q.message){let Q={errors:[]},q=(X,G=[])=>{var $,W;for(let j of X.issues)if(j.code==="invalid_union"&&j.errors.length)j.errors.map((K)=>q({issues:K},j.path));else if(j.code==="invalid_key")q({issues:j.issues},j.path);else if(j.code==="invalid_element")q({issues:j.issues},j.path);else{let K=[...G,...j.path];if(K.length===0){Q.errors.push(J(j));continue}let z=Q,M=0;while(M<K.length){let N=K[M],O=M===K.length-1;if(typeof N==="string")z.properties??(z.properties={}),($=z.properties)[N]??($[N]={errors:[]}),z=z.properties[N];else z.items??(z.items=[]),(W=z.items)[N]??(W[N]={errors:[]}),z=z.items[N];if(O)z.errors.push(J(j));M++}}};return q(Y),Q}function oD(Y){let J=[],Q=Y.map((q)=>typeof q==="object"?q.key:q);for(let q of Q)if(typeof q==="number")J.push(`[${q}]`);else if(typeof q==="symbol")J.push(`[${JSON.stringify(String(q))}]`);else if(/[^\w$]/.test(q))J.push(`[${JSON.stringify(q)}]`);else{if(J.length)J.push(".");J.push(q)}return J.join("")}function dD(Y){let J=[],Q=[...Y.issues].sort((q,X)=>(q.path??[]).length-(X.path??[]).length);for(let q of Q)if(J.push(`✖ ${q.message}`),q.path?.length)J.push(` → at ${oD(q.path)}`);return J.join(`
|
|
36
|
+
`)}var Aq=(Y)=>(J,Q,q,X)=>{let G=q?Object.assign(q,{async:!1}):{async:!1},$=J._zod.run({value:Q,issues:[]},G);if($ instanceof Promise)throw new KJ;if($.issues.length){let W=new(X?.Err??Y)($.issues.map((j)=>u8(j,G,$8())));throw Qj(W,X?.callee),W}return $.value},cW=Aq(T8),Cq=(Y)=>async(J,Q,q,X)=>{let G=q?Object.assign(q,{async:!0}):{async:!0},$=J._zod.run({value:Q,issues:[]},G);if($ instanceof Promise)$=await $;if($.issues.length){let W=new(X?.Err??Y)($.issues.map((j)=>u8(j,G,$8())));throw Qj(W,X?.callee),W}return $.value},bW=Cq(T8),Iq=(Y)=>(J,Q,q)=>{let X=q?{...q,async:!1}:{async:!1},G=J._zod.run({value:Q,issues:[]},X);if(G instanceof Promise)throw new KJ;return G.issues.length?{success:!1,error:new(Y??Xj)(G.issues.map(($)=>u8($,X,$8())))}:{success:!0,data:G.value}},rD=Iq(T8),Sq=(Y)=>async(J,Q,q)=>{let X=q?Object.assign(q,{async:!0}):{async:!0},G=J._zod.run({value:Q,issues:[]},X);if(G instanceof Promise)G=await G;return G.issues.length?{success:!1,error:new Y(G.issues.map(($)=>u8($,X,$8())))}:{success:!0,data:G.value}},sD=Sq(T8),$j=(Y)=>(J,Q,q)=>{let X=q?Object.assign(q,{direction:"backward"}):{direction:"backward"};return Aq(Y)(J,Q,X)},_3=$j(T8),Wj=(Y)=>(J,Q,q)=>{return Aq(Y)(J,Q,q)},k3=Wj(T8),jj=(Y)=>async(J,Q,q)=>{let X=q?Object.assign(q,{direction:"backward"}):{direction:"backward"};return Cq(Y)(J,Q,X)},F3=jj(T8),Kj=(Y)=>async(J,Q,q)=>{return Cq(Y)(J,Q,q)},P3=Kj(T8),zj=(Y)=>(J,Q,q)=>{let X=q?Object.assign(q,{direction:"backward"}):{direction:"backward"};return Iq(Y)(J,Q,X)},T3=zj(T8),Mj=(Y)=>(J,Q,q)=>{return Iq(Y)(J,Q,q)},Z3=Mj(T8),Nj=(Y)=>async(J,Q,q)=>{let X=q?Object.assign(q,{direction:"backward"}):{direction:"backward"};return Sq(Y)(J,Q,X)},x3=Nj(T8),Oj=(Y)=>async(J,Q,q)=>{return Sq(Y)(J,Q,q)},g3=Oj(T8),$Q={};e8($Q,{xid:()=>aD,uuid7:()=>y3,uuid6:()=>m3,uuid4:()=>h3,uuid:()=>yQ,uppercase:()=>IU,unicodeEmail:()=>qU,undefined:()=>AU,ulid:()=>nD,time:()=>HU,string:()=>RU,sha512_hex:()=>$v,sha512_base64url:()=>jv,sha512_base64:()=>Wv,sha384_hex:()=>Xv,sha384_base64url:()=>Gv,sha384_base64:()=>qv,sha256_hex:()=>Yv,sha256_base64url:()=>Qv,sha256_base64:()=>Jv,sha1_hex:()=>n3,sha1_base64url:()=>e3,sha1_base64:()=>a3,rfc5322Email:()=>u3,number:()=>Uj,null:()=>wU,nanoid:()=>YU,md5_hex:()=>s3,md5_base64url:()=>t3,md5_base64:()=>i3,mac:()=>jU,lowercase:()=>CU,ksuid:()=>eD,ipv6:()=>WU,ipv4:()=>$U,integer:()=>LU,idnEmail:()=>c3,html5Email:()=>l3,hostname:()=>o3,hex:()=>r3,guid:()=>QU,extendedDuration:()=>f3,emoji:()=>GU,email:()=>XU,e164:()=>NU,duration:()=>JU,domain:()=>d3,datetime:()=>BU,date:()=>DU,cuid2:()=>tD,cuid:()=>iD,cidrv6:()=>zU,cidrv4:()=>KU,browserEmail:()=>b3,boolean:()=>EU,bigint:()=>VU,base64url:()=>Dj,base64:()=>MU});var iD=/^[cC][^\s-]{8,}$/,tD=/^[0-9a-z]+$/,nD=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,aD=/^[0-9a-vA-V]{20}$/,eD=/^[A-Za-z0-9]{27}$/,YU=/^[a-zA-Z0-9_-]{21}$/,JU=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,f3=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,QU=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,yQ=(Y)=>{if(!Y)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${Y}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)},h3=yQ(4),m3=yQ(6),y3=yQ(7),XU=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,l3=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,u3=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,qU=/^[^\s@"]{1,64}@[^\s@]{1,255}$/u,c3=qU,b3=/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,p3="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function GU(){return new RegExp(p3,"u")}var $U=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,WU=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,jU=(Y)=>{let J=lY(Y??":");return new RegExp(`^(?:[0-9A-F]{2}${J}){5}[0-9A-F]{2}$|^(?:[0-9a-f]{2}${J}){5}[0-9a-f]{2}$`)},KU=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,zU=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,MU=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Dj=/^[A-Za-z0-9_-]*$/,o3=/^(?=.{1,253}\.?$)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[-0-9a-zA-Z]{0,61}[0-9a-zA-Z])?)*\.?$/,d3=/^([a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/,NU=/^\+[1-9]\d{6,14}$/,OU="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",DU=new RegExp(`^${OU}$`);function UU(Y){return typeof Y.precision==="number"?Y.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":Y.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${Y.precision}}`:"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function HU(Y){return new RegExp(`^${UU(Y)}$`)}function BU(Y){let J=UU({precision:Y.precision}),Q=["Z"];if(Y.local)Q.push("");if(Y.offset)Q.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let q=`${J}(?:${Q.join("|")})`;return new RegExp(`^${OU}T(?:${q})$`)}var RU=(Y)=>{let J=Y?`[\\s\\S]{${Y?.minimum??0},${Y?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${J}$`)},VU=/^-?\d+n?$/,LU=/^-?\d+$/,Uj=/^-?\d+(?:\.\d+)?$/,EU=/^(?:true|false)$/i,wU=/^null$/i,AU=/^undefined$/i,CU=/^[^A-Z]*$/,IU=/^[^a-z]*$/,r3=/^[0-9a-fA-F]*$/;function vq(Y,J){return new RegExp(`^[A-Za-z0-9+/]{${Y}}${J}$`)}function _q(Y){return new RegExp(`^[A-Za-z0-9_-]{${Y}}$`)}var s3=/^[0-9a-fA-F]{32}$/,i3=vq(22,"=="),t3=_q(22),n3=/^[0-9a-fA-F]{40}$/,a3=vq(27,"="),e3=_q(27),Yv=/^[0-9a-fA-F]{64}$/,Jv=vq(43,"="),Qv=_q(43),Xv=/^[0-9a-fA-F]{96}$/,qv=vq(64,""),Gv=_q(64),$v=/^[0-9a-fA-F]{128}$/,Wv=vq(86,"=="),jv=_q(86),P0=V("$ZodCheck",(Y,J)=>{var Q;Y._zod??(Y._zod={}),Y._zod.def=J,(Q=Y._zod).onattach??(Q.onattach=[])}),SU={number:"number",bigint:"bigint",object:"date"},Hj=V("$ZodCheckLessThan",(Y,J)=>{P0.init(Y,J);let Q=SU[typeof J.value];Y._zod.onattach.push((q)=>{let X=q._zod.bag,G=(J.inclusive?X.maximum:X.exclusiveMaximum)??Number.POSITIVE_INFINITY;if(J.value<G)if(J.inclusive)X.maximum=J.value;else X.exclusiveMaximum=J.value}),Y._zod.check=(q)=>{if(J.inclusive?q.value<=J.value:q.value<J.value)return;q.issues.push({origin:Q,code:"too_big",maximum:typeof J.value==="object"?J.value.getTime():J.value,input:q.value,inclusive:J.inclusive,inst:Y,continue:!J.abort})}}),Bj=V("$ZodCheckGreaterThan",(Y,J)=>{P0.init(Y,J);let Q=SU[typeof J.value];Y._zod.onattach.push((q)=>{let X=q._zod.bag,G=(J.inclusive?X.minimum:X.exclusiveMinimum)??Number.NEGATIVE_INFINITY;if(J.value>G)if(J.inclusive)X.minimum=J.value;else X.exclusiveMinimum=J.value}),Y._zod.check=(q)=>{if(J.inclusive?q.value>=J.value:q.value>J.value)return;q.issues.push({origin:Q,code:"too_small",minimum:typeof J.value==="object"?J.value.getTime():J.value,input:q.value,inclusive:J.inclusive,inst:Y,continue:!J.abort})}}),vU=V("$ZodCheckMultipleOf",(Y,J)=>{P0.init(Y,J),Y._zod.onattach.push((Q)=>{var q;(q=Q._zod.bag).multipleOf??(q.multipleOf=J.value)}),Y._zod.check=(Q)=>{if(typeof Q.value!==typeof J.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof Q.value==="bigint"?Q.value%J.value===BigInt(0):TD(Q.value,J.value)===0)return;Q.issues.push({origin:typeof Q.value,code:"not_multiple_of",divisor:J.value,input:Q.value,inst:Y,continue:!J.abort})}}),_U=V("$ZodCheckNumberFormat",(Y,J)=>{P0.init(Y,J),J.format=J.format||"float64";let Q=J.format?.includes("int"),q=Q?"int":"number",[X,G]=mD[J.format];Y._zod.onattach.push(($)=>{let W=$._zod.bag;if(W.format=J.format,W.minimum=X,W.maximum=G,Q)W.pattern=LU}),Y._zod.check=($)=>{let W=$.value;if(Q){if(!Number.isInteger(W)){$.issues.push({expected:q,format:J.format,code:"invalid_type",continue:!1,input:W,inst:Y});return}if(!Number.isSafeInteger(W)){if(W>0)$.issues.push({input:W,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:q,inclusive:!0,continue:!J.abort});else $.issues.push({input:W,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:Y,origin:q,inclusive:!0,continue:!J.abort});return}}if(W<X)$.issues.push({origin:"number",input:W,code:"too_small",minimum:X,inclusive:!0,inst:Y,continue:!J.abort});if(W>G)$.issues.push({origin:"number",input:W,code:"too_big",maximum:G,inclusive:!0,inst:Y,continue:!J.abort})}}),kU=V("$ZodCheckBigIntFormat",(Y,J)=>{P0.init(Y,J);let[Q,q]=yD[J.format];Y._zod.onattach.push((X)=>{let G=X._zod.bag;G.format=J.format,G.minimum=Q,G.maximum=q}),Y._zod.check=(X)=>{let G=X.value;if(G<Q)X.issues.push({origin:"bigint",input:G,code:"too_small",minimum:Q,inclusive:!0,inst:Y,continue:!J.abort});if(G>q)X.issues.push({origin:"bigint",input:G,code:"too_big",maximum:q,inclusive:!0,inst:Y,continue:!J.abort})}}),FU=V("$ZodCheckMaxSize",(Y,J)=>{var Q;P0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(q)=>{let X=q.value;return!GQ(X)&&X.size!==void 0}),Y._zod.onattach.push((q)=>{let X=q._zod.bag.maximum??Number.POSITIVE_INFINITY;if(J.maximum<X)q._zod.bag.maximum=J.maximum}),Y._zod.check=(q)=>{let X=q.value;if(X.size<=J.maximum)return;q.issues.push({origin:k$(X),code:"too_big",maximum:J.maximum,inclusive:!0,input:X,inst:Y,continue:!J.abort})}}),PU=V("$ZodCheckMinSize",(Y,J)=>{var Q;P0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(q)=>{let X=q.value;return!GQ(X)&&X.size!==void 0}),Y._zod.onattach.push((q)=>{let X=q._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(J.minimum>X)q._zod.bag.minimum=J.minimum}),Y._zod.check=(q)=>{let X=q.value;if(X.size>=J.minimum)return;q.issues.push({origin:k$(X),code:"too_small",minimum:J.minimum,inclusive:!0,input:X,inst:Y,continue:!J.abort})}}),TU=V("$ZodCheckSizeEquals",(Y,J)=>{var Q;P0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(q)=>{let X=q.value;return!GQ(X)&&X.size!==void 0}),Y._zod.onattach.push((q)=>{let X=q._zod.bag;X.minimum=J.size,X.maximum=J.size,X.size=J.size}),Y._zod.check=(q)=>{let X=q.value,G=X.size;if(G===J.size)return;let $=G>J.size;q.issues.push({origin:k$(X),...$?{code:"too_big",maximum:J.size}:{code:"too_small",minimum:J.size},inclusive:!0,exact:!0,input:q.value,inst:Y,continue:!J.abort})}}),ZU=V("$ZodCheckMaxLength",(Y,J)=>{var Q;P0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(q)=>{let X=q.value;return!GQ(X)&&X.length!==void 0}),Y._zod.onattach.push((q)=>{let X=q._zod.bag.maximum??Number.POSITIVE_INFINITY;if(J.maximum<X)q._zod.bag.maximum=J.maximum}),Y._zod.check=(q)=>{let X=q.value;if(X.length<=J.maximum)return;let G=F$(X);q.issues.push({origin:G,code:"too_big",maximum:J.maximum,inclusive:!0,input:X,inst:Y,continue:!J.abort})}}),xU=V("$ZodCheckMinLength",(Y,J)=>{var Q;P0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(q)=>{let X=q.value;return!GQ(X)&&X.length!==void 0}),Y._zod.onattach.push((q)=>{let X=q._zod.bag.minimum??Number.NEGATIVE_INFINITY;if(J.minimum>X)q._zod.bag.minimum=J.minimum}),Y._zod.check=(q)=>{let X=q.value;if(X.length>=J.minimum)return;let G=F$(X);q.issues.push({origin:G,code:"too_small",minimum:J.minimum,inclusive:!0,input:X,inst:Y,continue:!J.abort})}}),gU=V("$ZodCheckLengthEquals",(Y,J)=>{var Q;P0.init(Y,J),(Q=Y._zod.def).when??(Q.when=(q)=>{let X=q.value;return!GQ(X)&&X.length!==void 0}),Y._zod.onattach.push((q)=>{let X=q._zod.bag;X.minimum=J.length,X.maximum=J.length,X.length=J.length}),Y._zod.check=(q)=>{let X=q.value,G=X.length;if(G===J.length)return;let $=F$(X),W=G>J.length;q.issues.push({origin:$,...W?{code:"too_big",maximum:J.length}:{code:"too_small",minimum:J.length},inclusive:!0,exact:!0,input:q.value,inst:Y,continue:!J.abort})}}),kq=V("$ZodCheckStringFormat",(Y,J)=>{var Q,q;if(P0.init(Y,J),Y._zod.onattach.push((X)=>{let G=X._zod.bag;if(G.format=J.format,J.pattern)G.patterns??(G.patterns=new Set),G.patterns.add(J.pattern)}),J.pattern)(Q=Y._zod).check??(Q.check=(X)=>{if(J.pattern.lastIndex=0,J.pattern.test(X.value))return;X.issues.push({origin:"string",code:"invalid_format",format:J.format,input:X.value,...J.pattern?{pattern:J.pattern.toString()}:{},inst:Y,continue:!J.abort})});else(q=Y._zod).check??(q.check=()=>{})}),fU=V("$ZodCheckRegex",(Y,J)=>{kq.init(Y,J),Y._zod.check=(Q)=>{if(J.pattern.lastIndex=0,J.pattern.test(Q.value))return;Q.issues.push({origin:"string",code:"invalid_format",format:"regex",input:Q.value,pattern:J.pattern.toString(),inst:Y,continue:!J.abort})}}),hU=V("$ZodCheckLowerCase",(Y,J)=>{J.pattern??(J.pattern=CU),kq.init(Y,J)}),mU=V("$ZodCheckUpperCase",(Y,J)=>{J.pattern??(J.pattern=IU),kq.init(Y,J)}),yU=V("$ZodCheckIncludes",(Y,J)=>{P0.init(Y,J);let Q=lY(J.includes),q=new RegExp(typeof J.position==="number"?`^.{${J.position}}${Q}`:Q);J.pattern=q,Y._zod.onattach.push((X)=>{let G=X._zod.bag;G.patterns??(G.patterns=new Set),G.patterns.add(q)}),Y._zod.check=(X)=>{if(X.value.includes(J.includes,J.position))return;X.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:J.includes,input:X.value,inst:Y,continue:!J.abort})}}),lU=V("$ZodCheckStartsWith",(Y,J)=>{P0.init(Y,J);let Q=new RegExp(`^${lY(J.prefix)}.*`);J.pattern??(J.pattern=Q),Y._zod.onattach.push((q)=>{let X=q._zod.bag;X.patterns??(X.patterns=new Set),X.patterns.add(Q)}),Y._zod.check=(q)=>{if(q.value.startsWith(J.prefix))return;q.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:J.prefix,input:q.value,inst:Y,continue:!J.abort})}}),uU=V("$ZodCheckEndsWith",(Y,J)=>{P0.init(Y,J);let Q=new RegExp(`.*${lY(J.suffix)}$`);J.pattern??(J.pattern=Q),Y._zod.onattach.push((q)=>{let X=q._zod.bag;X.patterns??(X.patterns=new Set),X.patterns.add(Q)}),Y._zod.check=(q)=>{if(q.value.endsWith(J.suffix))return;q.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:J.suffix,input:q.value,inst:Y,continue:!J.abort})}});function $N(Y,J,Q){if(Y.issues.length)J.issues.push(...a8(Q,Y.issues))}var cU=V("$ZodCheckProperty",(Y,J)=>{P0.init(Y,J),Y._zod.check=(Q)=>{let q=J.schema._zod.run({value:Q.value[J.property],issues:[]},{});if(q instanceof Promise)return q.then((X)=>$N(X,Q,J.property));$N(q,Q,J.property);return}}),bU=V("$ZodCheckMimeType",(Y,J)=>{P0.init(Y,J);let Q=new Set(J.mime);Y._zod.onattach.push((q)=>{q._zod.bag.mime=J.mime}),Y._zod.check=(q)=>{if(Q.has(q.value.type))return;q.issues.push({code:"invalid_value",values:J.mime,input:q.value.type,inst:Y,continue:!J.abort})}}),pU=V("$ZodCheckOverwrite",(Y,J)=>{P0.init(Y,J),Y._zod.check=(Q)=>{Q.value=J.tx(Q.value)}});class Rj{constructor(Y=[]){if(this.content=[],this.indent=0,this)this.args=Y}indented(Y){this.indent+=1,Y(this),this.indent-=1}write(Y){if(typeof Y==="function"){Y(this,{execution:"sync"}),Y(this,{execution:"async"});return}let J=Y.split(`
|
|
37
|
+
`).filter((X)=>X),Q=Math.min(...J.map((X)=>X.length-X.trimStart().length)),q=J.map((X)=>X.slice(Q)).map((X)=>" ".repeat(this.indent*2)+X);for(let X of q)this.content.push(X)}compile(){let Y=Function,J=this?.args,Q=[...(this?.content??[""]).map((q)=>` ${q}`)];return new Y(...J,Q.join(`
|
|
38
|
+
`))}}var oU={major:4,minor:3,patch:6},q0=V("$ZodType",(Y,J)=>{var Q;Y??(Y={}),Y._zod.def=J,Y._zod.bag=Y._zod.bag||{},Y._zod.version=oU;let q=[...Y._zod.def.checks??[]];if(Y._zod.traits.has("$ZodCheck"))q.unshift(Y);for(let X of q)for(let G of X._zod.onattach)G(Y);if(q.length===0)(Q=Y._zod).deferred??(Q.deferred=[]),Y._zod.deferred?.push(()=>{Y._zod.run=Y._zod.parse});else{let X=($,W,j)=>{let K=lJ($),z;for(let M of W){if(M._zod.def.when){if(!M._zod.def.when($))continue}else if(K)continue;let N=$.issues.length,O=M._zod.check($);if(O instanceof Promise&&j?.async===!1)throw new KJ;if(z||O instanceof Promise)z=(z??Promise.resolve()).then(async()=>{if(await O,$.issues.length===N)return;if(!K)K=lJ($,N)});else{if($.issues.length===N)continue;if(!K)K=lJ($,N)}}if(z)return z.then(()=>{return $});return $},G=($,W,j)=>{if(lJ($))return $.aborted=!0,$;let K=X(W,q,j);if(K instanceof Promise){if(j.async===!1)throw new KJ;return K.then((z)=>Y._zod.parse(z,j))}return Y._zod.parse(K,j)};Y._zod.run=($,W)=>{if(W.skipChecks)return Y._zod.parse($,W);if(W.direction==="backward"){let K=Y._zod.parse({value:$.value,issues:[]},{...W,skipChecks:!0});if(K instanceof Promise)return K.then((z)=>{return G(z,$,W)});return G(K,$,W)}let j=Y._zod.parse($,W);if(j instanceof Promise){if(W.async===!1)throw new KJ;return j.then((K)=>X(K,q,W))}return X(j,q,W)}}z0(Y,"~standard",()=>({validate:(X)=>{try{let G=rD(Y,X);return G.success?{value:G.data}:{issues:G.error?.issues}}catch(G){return sD(Y,X).then(($)=>$.success?{value:$.data}:{issues:$.error?.issues})}},vendor:"zod",version:1}))}),Fq=V("$ZodString",(Y,J)=>{q0.init(Y,J),Y._zod.pattern=[...Y?._zod.bag?.patterns??[]].pop()??RU(Y._zod.bag),Y._zod.parse=(Q,q)=>{if(J.coerce)try{Q.value=String(Q.value)}catch(X){}if(typeof Q.value==="string")return Q;return Q.issues.push({expected:"string",code:"invalid_type",input:Q.value,inst:Y}),Q}}),C0=V("$ZodStringFormat",(Y,J)=>{kq.init(Y,J),Fq.init(Y,J)}),dU=V("$ZodGUID",(Y,J)=>{J.pattern??(J.pattern=QU),C0.init(Y,J)}),rU=V("$ZodUUID",(Y,J)=>{if(J.version){let Q={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[J.version];if(Q===void 0)throw Error(`Invalid UUID version: "${J.version}"`);J.pattern??(J.pattern=yQ(Q))}else J.pattern??(J.pattern=yQ());C0.init(Y,J)}),sU=V("$ZodEmail",(Y,J)=>{J.pattern??(J.pattern=XU),C0.init(Y,J)}),iU=V("$ZodURL",(Y,J)=>{C0.init(Y,J),Y._zod.check=(Q)=>{try{let q=Q.value.trim(),X=new URL(q);if(J.hostname){if(J.hostname.lastIndex=0,!J.hostname.test(X.hostname))Q.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:J.hostname.source,input:Q.value,inst:Y,continue:!J.abort})}if(J.protocol){if(J.protocol.lastIndex=0,!J.protocol.test(X.protocol.endsWith(":")?X.protocol.slice(0,-1):X.protocol))Q.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:J.protocol.source,input:Q.value,inst:Y,continue:!J.abort})}if(J.normalize)Q.value=X.href;else Q.value=q;return}catch(q){Q.issues.push({code:"invalid_format",format:"url",input:Q.value,inst:Y,continue:!J.abort})}}}),tU=V("$ZodEmoji",(Y,J)=>{J.pattern??(J.pattern=GU()),C0.init(Y,J)}),nU=V("$ZodNanoID",(Y,J)=>{J.pattern??(J.pattern=YU),C0.init(Y,J)}),aU=V("$ZodCUID",(Y,J)=>{J.pattern??(J.pattern=iD),C0.init(Y,J)}),eU=V("$ZodCUID2",(Y,J)=>{J.pattern??(J.pattern=tD),C0.init(Y,J)}),YH=V("$ZodULID",(Y,J)=>{J.pattern??(J.pattern=nD),C0.init(Y,J)}),JH=V("$ZodXID",(Y,J)=>{J.pattern??(J.pattern=aD),C0.init(Y,J)}),QH=V("$ZodKSUID",(Y,J)=>{J.pattern??(J.pattern=eD),C0.init(Y,J)}),XH=V("$ZodISODateTime",(Y,J)=>{J.pattern??(J.pattern=BU(J)),C0.init(Y,J)}),qH=V("$ZodISODate",(Y,J)=>{J.pattern??(J.pattern=DU),C0.init(Y,J)}),GH=V("$ZodISOTime",(Y,J)=>{J.pattern??(J.pattern=HU(J)),C0.init(Y,J)}),$H=V("$ZodISODuration",(Y,J)=>{J.pattern??(J.pattern=JU),C0.init(Y,J)}),WH=V("$ZodIPv4",(Y,J)=>{J.pattern??(J.pattern=$U),C0.init(Y,J),Y._zod.bag.format="ipv4"}),jH=V("$ZodIPv6",(Y,J)=>{J.pattern??(J.pattern=WU),C0.init(Y,J),Y._zod.bag.format="ipv6",Y._zod.check=(Q)=>{try{new URL(`http://[${Q.value}]`)}catch{Q.issues.push({code:"invalid_format",format:"ipv6",input:Q.value,inst:Y,continue:!J.abort})}}}),KH=V("$ZodMAC",(Y,J)=>{J.pattern??(J.pattern=jU(J.delimiter)),C0.init(Y,J),Y._zod.bag.format="mac"}),zH=V("$ZodCIDRv4",(Y,J)=>{J.pattern??(J.pattern=KU),C0.init(Y,J)}),MH=V("$ZodCIDRv6",(Y,J)=>{J.pattern??(J.pattern=zU),C0.init(Y,J),Y._zod.check=(Q)=>{let q=Q.value.split("/");try{if(q.length!==2)throw Error();let[X,G]=q;if(!G)throw Error();let $=Number(G);if(`${$}`!==G)throw Error();if($<0||$>128)throw Error();new URL(`http://[${X}]`)}catch{Q.issues.push({code:"invalid_format",format:"cidrv6",input:Q.value,inst:Y,continue:!J.abort})}}});function Vj(Y){if(Y==="")return!0;if(Y.length%4!==0)return!1;try{return atob(Y),!0}catch{return!1}}var NH=V("$ZodBase64",(Y,J)=>{J.pattern??(J.pattern=MU),C0.init(Y,J),Y._zod.bag.contentEncoding="base64",Y._zod.check=(Q)=>{if(Vj(Q.value))return;Q.issues.push({code:"invalid_format",format:"base64",input:Q.value,inst:Y,continue:!J.abort})}});function OH(Y){if(!Dj.test(Y))return!1;let J=Y.replace(/[-_]/g,(q)=>q==="-"?"+":"/"),Q=J.padEnd(Math.ceil(J.length/4)*4,"=");return Vj(Q)}var DH=V("$ZodBase64URL",(Y,J)=>{J.pattern??(J.pattern=Dj),C0.init(Y,J),Y._zod.bag.contentEncoding="base64url",Y._zod.check=(Q)=>{if(OH(Q.value))return;Q.issues.push({code:"invalid_format",format:"base64url",input:Q.value,inst:Y,continue:!J.abort})}}),UH=V("$ZodE164",(Y,J)=>{J.pattern??(J.pattern=NU),C0.init(Y,J)});function HH(Y,J=null){try{let Q=Y.split(".");if(Q.length!==3)return!1;let[q]=Q;if(!q)return!1;let X=JSON.parse(atob(q));if("typ"in X&&X?.typ!=="JWT")return!1;if(!X.alg)return!1;if(J&&(!("alg"in X)||X.alg!==J))return!1;return!0}catch{return!1}}var BH=V("$ZodJWT",(Y,J)=>{C0.init(Y,J),Y._zod.check=(Q)=>{if(HH(Q.value,J.alg))return;Q.issues.push({code:"invalid_format",format:"jwt",input:Q.value,inst:Y,continue:!J.abort})}}),RH=V("$ZodCustomStringFormat",(Y,J)=>{C0.init(Y,J),Y._zod.check=(Q)=>{if(J.fn(Q.value))return;Q.issues.push({code:"invalid_format",format:J.format,input:Q.value,inst:Y,continue:!J.abort})}}),Lj=V("$ZodNumber",(Y,J)=>{q0.init(Y,J),Y._zod.pattern=Y._zod.bag.pattern??Uj,Y._zod.parse=(Q,q)=>{if(J.coerce)try{Q.value=Number(Q.value)}catch($){}let X=Q.value;if(typeof X==="number"&&!Number.isNaN(X)&&Number.isFinite(X))return Q;let G=typeof X==="number"?Number.isNaN(X)?"NaN":!Number.isFinite(X)?"Infinity":void 0:void 0;return Q.issues.push({expected:"number",code:"invalid_type",input:X,inst:Y,...G?{received:G}:{}}),Q}}),VH=V("$ZodNumberFormat",(Y,J)=>{_U.init(Y,J),Lj.init(Y,J)}),Ej=V("$ZodBoolean",(Y,J)=>{q0.init(Y,J),Y._zod.pattern=EU,Y._zod.parse=(Q,q)=>{if(J.coerce)try{Q.value=Boolean(Q.value)}catch(G){}let X=Q.value;if(typeof X==="boolean")return Q;return Q.issues.push({expected:"boolean",code:"invalid_type",input:X,inst:Y}),Q}}),wj=V("$ZodBigInt",(Y,J)=>{q0.init(Y,J),Y._zod.pattern=VU,Y._zod.parse=(Q,q)=>{if(J.coerce)try{Q.value=BigInt(Q.value)}catch(X){}if(typeof Q.value==="bigint")return Q;return Q.issues.push({expected:"bigint",code:"invalid_type",input:Q.value,inst:Y}),Q}}),LH=V("$ZodBigIntFormat",(Y,J)=>{kU.init(Y,J),wj.init(Y,J)}),EH=V("$ZodSymbol",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{let X=Q.value;if(typeof X==="symbol")return Q;return Q.issues.push({expected:"symbol",code:"invalid_type",input:X,inst:Y}),Q}}),wH=V("$ZodUndefined",(Y,J)=>{q0.init(Y,J),Y._zod.pattern=AU,Y._zod.values=new Set([void 0]),Y._zod.optin="optional",Y._zod.optout="optional",Y._zod.parse=(Q,q)=>{let X=Q.value;if(typeof X>"u")return Q;return Q.issues.push({expected:"undefined",code:"invalid_type",input:X,inst:Y}),Q}}),AH=V("$ZodNull",(Y,J)=>{q0.init(Y,J),Y._zod.pattern=wU,Y._zod.values=new Set([null]),Y._zod.parse=(Q,q)=>{let X=Q.value;if(X===null)return Q;return Q.issues.push({expected:"null",code:"invalid_type",input:X,inst:Y}),Q}}),CH=V("$ZodAny",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q)=>Q}),IH=V("$ZodUnknown",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q)=>Q}),SH=V("$ZodNever",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{return Q.issues.push({expected:"never",code:"invalid_type",input:Q.value,inst:Y}),Q}}),vH=V("$ZodVoid",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{let X=Q.value;if(typeof X>"u")return Q;return Q.issues.push({expected:"void",code:"invalid_type",input:X,inst:Y}),Q}}),_H=V("$ZodDate",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{if(J.coerce)try{Q.value=new Date(Q.value)}catch($){}let X=Q.value,G=X instanceof Date;if(G&&!Number.isNaN(X.getTime()))return Q;return Q.issues.push({expected:"date",code:"invalid_type",input:X,...G?{received:"Invalid Date"}:{},inst:Y}),Q}});function WN(Y,J,Q){if(Y.issues.length)J.issues.push(...a8(Q,Y.issues));J.value[Q]=Y.value}var kH=V("$ZodArray",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{let X=Q.value;if(!Array.isArray(X))return Q.issues.push({expected:"array",code:"invalid_type",input:X,inst:Y}),Q;Q.value=Array(X.length);let G=[];for(let $=0;$<X.length;$++){let W=X[$],j=J.element._zod.run({value:W,issues:[]},q);if(j instanceof Promise)G.push(j.then((K)=>WN(K,Q,$)));else WN(j,Q,$)}if(G.length)return Promise.all(G).then(()=>Q);return Q}});function W$(Y,J,Q,q,X){if(Y.issues.length){if(X&&!(Q in q))return;J.issues.push(...a8(Q,Y.issues))}if(Y.value===void 0){if(Q in q)J.value[Q]=void 0}else J.value[Q]=Y.value}function FH(Y){let J=Object.keys(Y.shape);for(let q of J)if(!Y.shape?.[q]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${q}": expected a Zod schema`);let Q=hD(Y.shape);return{...Y,keys:J,keySet:new Set(J),numKeys:J.length,optionalKeys:new Set(Q)}}function PH(Y,J,Q,q,X,G){let $=[],W=X.keySet,j=X.catchall._zod,K=j.def.type,z=j.optout==="optional";for(let M in J){if(W.has(M))continue;if(K==="never"){$.push(M);continue}let N=j.run({value:J[M],issues:[]},q);if(N instanceof Promise)Y.push(N.then((O)=>W$(O,Q,M,J,z)));else W$(N,Q,M,J,z)}if($.length)Q.issues.push({code:"unrecognized_keys",keys:$,input:J,inst:G});if(!Y.length)return Q;return Promise.all(Y).then(()=>{return Q})}var TH=V("$ZodObject",(Y,J)=>{if(q0.init(Y,J),!Object.getOwnPropertyDescriptor(J,"shape")?.get){let $=J.shape;Object.defineProperty(J,"shape",{get:()=>{let W={...$};return Object.defineProperty(J,"shape",{value:W}),W}})}let Q=wq(()=>FH(J));z0(Y._zod,"propValues",()=>{let $=J.shape,W={};for(let j in $){let K=$[j]._zod;if(K.values){W[j]??(W[j]=new Set);for(let z of K.values)W[j].add(z)}}return W});let q=mQ,X=J.catchall,G;Y._zod.parse=($,W)=>{G??(G=Q.value);let j=$.value;if(!q(j))return $.issues.push({expected:"object",code:"invalid_type",input:j,inst:Y}),$;$.value={};let K=[],z=G.shape;for(let M of G.keys){let N=z[M],O=N._zod.optout==="optional",D=N._zod.run({value:j[M],issues:[]},W);if(D instanceof Promise)K.push(D.then((U)=>W$(U,$,M,j,O)));else W$(D,$,M,j,O)}if(!X)return K.length?Promise.all(K).then(()=>$):$;return PH(K,j,$,W,Q.value,Y)}}),ZH=V("$ZodObjectJIT",(Y,J)=>{TH.init(Y,J);let Q=Y._zod.parse,q=wq(()=>FH(J)),X=(M)=>{let N=new Rj(["shape","payload","ctx"]),O=q.value,D=(v)=>{let R=uW(v);return`shape[${R}]._zod.run({ value: input[${R}], issues: [] }, ctx)`};N.write("const input = payload.value;");let U=Object.create(null),A=0;for(let v of O.keys)U[v]=`key_${A++}`;N.write("const newResult = {};");for(let v of O.keys){let R=U[v],E=uW(v),C=M[v]?._zod?.optout==="optional";if(N.write(`const ${R} = ${D(v)};`),C)N.write(`
|
|
39
|
+
if (${R}.issues.length) {
|
|
40
|
+
if (${E} in input) {
|
|
41
|
+
payload.issues = payload.issues.concat(${R}.issues.map(iss => ({
|
|
42
|
+
...iss,
|
|
43
|
+
path: iss.path ? [${E}, ...iss.path] : [${E}]
|
|
44
|
+
})));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (${R}.value === undefined) {
|
|
49
|
+
if (${E} in input) {
|
|
50
|
+
newResult[${E}] = undefined;
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
newResult[${E}] = ${R}.value;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
`);else N.write(`
|
|
57
|
+
if (${R}.issues.length) {
|
|
58
|
+
payload.issues = payload.issues.concat(${R}.issues.map(iss => ({
|
|
59
|
+
...iss,
|
|
60
|
+
path: iss.path ? [${E}, ...iss.path] : [${E}]
|
|
61
|
+
})));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (${R}.value === undefined) {
|
|
65
|
+
if (${E} in input) {
|
|
66
|
+
newResult[${E}] = undefined;
|
|
67
|
+
}
|
|
68
|
+
} else {
|
|
69
|
+
newResult[${E}] = ${R}.value;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
`)}N.write("payload.value = newResult;"),N.write("return payload;");let w=N.compile();return(v,R)=>w(M,v,R)},G,$=mQ,W=!X$.jitless,j=W&&xD.value,K=J.catchall,z;Y._zod.parse=(M,N)=>{z??(z=q.value);let O=M.value;if(!$(O))return M.issues.push({expected:"object",code:"invalid_type",input:O,inst:Y}),M;if(W&&j&&N?.async===!1&&N.jitless!==!0){if(!G)G=X(J.shape);if(M=G(M,N),!K)return M;return PH([],O,M,N,z,Y)}return Q(M,N)}});function jN(Y,J,Q,q){for(let G of Y)if(G.issues.length===0)return J.value=G.value,J;let X=Y.filter((G)=>!lJ(G));if(X.length===1)return J.value=X[0].value,X[0];return J.issues.push({code:"invalid_union",input:J.value,inst:Q,errors:Y.map((G)=>G.issues.map(($)=>u8($,q,$8())))}),J}var P$=V("$ZodUnion",(Y,J)=>{q0.init(Y,J),z0(Y._zod,"optin",()=>J.options.some((X)=>X._zod.optin==="optional")?"optional":void 0),z0(Y._zod,"optout",()=>J.options.some((X)=>X._zod.optout==="optional")?"optional":void 0),z0(Y._zod,"values",()=>{if(J.options.every((X)=>X._zod.values))return new Set(J.options.flatMap((X)=>Array.from(X._zod.values)));return}),z0(Y._zod,"pattern",()=>{if(J.options.every((X)=>X._zod.pattern)){let X=J.options.map((G)=>G._zod.pattern);return new RegExp(`^(${X.map((G)=>_$(G.source)).join("|")})$`)}return});let Q=J.options.length===1,q=J.options[0]._zod.run;Y._zod.parse=(X,G)=>{if(Q)return q(X,G);let $=!1,W=[];for(let j of J.options){let K=j._zod.run({value:X.value,issues:[]},G);if(K instanceof Promise)W.push(K),$=!0;else{if(K.issues.length===0)return K;W.push(K)}}if(!$)return jN(W,X,Y,G);return Promise.all(W).then((j)=>{return jN(j,X,Y,G)})}});function KN(Y,J,Q,q){let X=Y.filter((G)=>G.issues.length===0);if(X.length===1)return J.value=X[0].value,J;if(X.length===0)J.issues.push({code:"invalid_union",input:J.value,inst:Q,errors:Y.map((G)=>G.issues.map(($)=>u8($,q,$8())))});else J.issues.push({code:"invalid_union",input:J.value,inst:Q,errors:[],inclusive:!1});return J}var xH=V("$ZodXor",(Y,J)=>{P$.init(Y,J),J.inclusive=!1;let Q=J.options.length===1,q=J.options[0]._zod.run;Y._zod.parse=(X,G)=>{if(Q)return q(X,G);let $=!1,W=[];for(let j of J.options){let K=j._zod.run({value:X.value,issues:[]},G);if(K instanceof Promise)W.push(K),$=!0;else W.push(K)}if(!$)return KN(W,X,Y,G);return Promise.all(W).then((j)=>{return KN(j,X,Y,G)})}}),gH=V("$ZodDiscriminatedUnion",(Y,J)=>{J.inclusive=!1,P$.init(Y,J);let Q=Y._zod.parse;z0(Y._zod,"propValues",()=>{let X={};for(let G of J.options){let $=G._zod.propValues;if(!$||Object.keys($).length===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf(G)}"`);for(let[W,j]of Object.entries($)){if(!X[W])X[W]=new Set;for(let K of j)X[W].add(K)}}return X});let q=wq(()=>{let X=J.options,G=new Map;for(let $ of X){let W=$._zod.propValues?.[J.discriminator];if(!W||W.size===0)throw Error(`Invalid discriminated union option at index "${J.options.indexOf($)}"`);for(let j of W){if(G.has(j))throw Error(`Duplicate discriminator value "${String(j)}"`);G.set(j,$)}}return G});Y._zod.parse=(X,G)=>{let $=X.value;if(!mQ($))return X.issues.push({code:"invalid_type",expected:"object",input:$,inst:Y}),X;let W=q.value.get($?.[J.discriminator]);if(W)return W._zod.run(X,G);if(J.unionFallback)return Q(X,G);return X.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:J.discriminator,input:$,path:[J.discriminator],inst:Y}),X}}),fH=V("$ZodIntersection",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{let X=Q.value,G=J.left._zod.run({value:X,issues:[]},q),$=J.right._zod.run({value:X,issues:[]},q);if(G instanceof Promise||$ instanceof Promise)return Promise.all([G,$]).then(([W,j])=>{return zN(Q,W,j)});return zN(Q,G,$)}});function pW(Y,J){if(Y===J)return{valid:!0,data:Y};if(Y instanceof Date&&J instanceof Date&&+Y===+J)return{valid:!0,data:Y};if(tJ(Y)&&tJ(J)){let Q=Object.keys(J),q=Object.keys(Y).filter((G)=>Q.indexOf(G)!==-1),X={...Y,...J};for(let G of q){let $=pW(Y[G],J[G]);if(!$.valid)return{valid:!1,mergeErrorPath:[G,...$.mergeErrorPath]};X[G]=$.data}return{valid:!0,data:X}}if(Array.isArray(Y)&&Array.isArray(J)){if(Y.length!==J.length)return{valid:!1,mergeErrorPath:[]};let Q=[];for(let q=0;q<Y.length;q++){let X=Y[q],G=J[q],$=pW(X,G);if(!$.valid)return{valid:!1,mergeErrorPath:[q,...$.mergeErrorPath]};Q.push($.data)}return{valid:!0,data:Q}}return{valid:!1,mergeErrorPath:[]}}function zN(Y,J,Q){let q=new Map,X;for(let W of J.issues)if(W.code==="unrecognized_keys"){X??(X=W);for(let j of W.keys){if(!q.has(j))q.set(j,{});q.get(j).l=!0}}else Y.issues.push(W);for(let W of Q.issues)if(W.code==="unrecognized_keys")for(let j of W.keys){if(!q.has(j))q.set(j,{});q.get(j).r=!0}else Y.issues.push(W);let G=[...q].filter(([,W])=>W.l&&W.r).map(([W])=>W);if(G.length&&X)Y.issues.push({...X,keys:G});if(lJ(Y))return Y;let $=pW(J.value,Q.value);if(!$.valid)throw Error(`Unmergable intersection. Error path: ${JSON.stringify($.mergeErrorPath)}`);return Y.value=$.data,Y}var Aj=V("$ZodTuple",(Y,J)=>{q0.init(Y,J);let Q=J.items;Y._zod.parse=(q,X)=>{let G=q.value;if(!Array.isArray(G))return q.issues.push({input:G,inst:Y,expected:"tuple",code:"invalid_type"}),q;q.value=[];let $=[],W=[...Q].reverse().findIndex((z)=>z._zod.optin!=="optional"),j=W===-1?0:Q.length-W;if(!J.rest){let z=G.length>Q.length,M=G.length<j-1;if(z||M)return q.issues.push({...z?{code:"too_big",maximum:Q.length,inclusive:!0}:{code:"too_small",minimum:Q.length},input:G,inst:Y,origin:"array"}),q}let K=-1;for(let z of Q){if(K++,K>=G.length){if(K>=j)continue}let M=z._zod.run({value:G[K],issues:[]},X);if(M instanceof Promise)$.push(M.then((N)=>wG(N,q,K)));else wG(M,q,K)}if(J.rest){let z=G.slice(Q.length);for(let M of z){K++;let N=J.rest._zod.run({value:M,issues:[]},X);if(N instanceof Promise)$.push(N.then((O)=>wG(O,q,K)));else wG(N,q,K)}}if($.length)return Promise.all($).then(()=>q);return q}});function wG(Y,J,Q){if(Y.issues.length)J.issues.push(...a8(Q,Y.issues));J.value[Q]=Y.value}var hH=V("$ZodRecord",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{let X=Q.value;if(!tJ(X))return Q.issues.push({expected:"record",code:"invalid_type",input:X,inst:Y}),Q;let G=[],$=J.keyType._zod.values;if($){Q.value={};let W=new Set;for(let K of $)if(typeof K==="string"||typeof K==="number"||typeof K==="symbol"){W.add(typeof K==="number"?K.toString():K);let z=J.valueType._zod.run({value:X[K],issues:[]},q);if(z instanceof Promise)G.push(z.then((M)=>{if(M.issues.length)Q.issues.push(...a8(K,M.issues));Q.value[K]=M.value}));else{if(z.issues.length)Q.issues.push(...a8(K,z.issues));Q.value[K]=z.value}}let j;for(let K in X)if(!W.has(K))j=j??[],j.push(K);if(j&&j.length>0)Q.issues.push({code:"unrecognized_keys",input:X,inst:Y,keys:j})}else{Q.value={};for(let W of Reflect.ownKeys(X)){if(W==="__proto__")continue;let j=J.keyType._zod.run({value:W,issues:[]},q);if(j instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof W==="string"&&Uj.test(W)&&j.issues.length){let z=J.keyType._zod.run({value:Number(W),issues:[]},q);if(z instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(z.issues.length===0)j=z}if(j.issues.length){if(J.mode==="loose")Q.value[W]=X[W];else Q.issues.push({code:"invalid_key",origin:"record",issues:j.issues.map((z)=>u8(z,q,$8())),input:W,path:[W],inst:Y});continue}let K=J.valueType._zod.run({value:X[W],issues:[]},q);if(K instanceof Promise)G.push(K.then((z)=>{if(z.issues.length)Q.issues.push(...a8(W,z.issues));Q.value[j.value]=z.value}));else{if(K.issues.length)Q.issues.push(...a8(W,K.issues));Q.value[j.value]=K.value}}}if(G.length)return Promise.all(G).then(()=>Q);return Q}}),mH=V("$ZodMap",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{let X=Q.value;if(!(X instanceof Map))return Q.issues.push({expected:"map",code:"invalid_type",input:X,inst:Y}),Q;let G=[];Q.value=new Map;for(let[$,W]of X){let j=J.keyType._zod.run({value:$,issues:[]},q),K=J.valueType._zod.run({value:W,issues:[]},q);if(j instanceof Promise||K instanceof Promise)G.push(Promise.all([j,K]).then(([z,M])=>{MN(z,M,Q,$,X,Y,q)}));else MN(j,K,Q,$,X,Y,q)}if(G.length)return Promise.all(G).then(()=>Q);return Q}});function MN(Y,J,Q,q,X,G,$){if(Y.issues.length)if(G$.has(typeof q))Q.issues.push(...a8(q,Y.issues));else Q.issues.push({code:"invalid_key",origin:"map",input:X,inst:G,issues:Y.issues.map((W)=>u8(W,$,$8()))});if(J.issues.length)if(G$.has(typeof q))Q.issues.push(...a8(q,J.issues));else Q.issues.push({origin:"map",code:"invalid_element",input:X,inst:G,key:q,issues:J.issues.map((W)=>u8(W,$,$8()))});Q.value.set(Y.value,J.value)}var yH=V("$ZodSet",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{let X=Q.value;if(!(X instanceof Set))return Q.issues.push({input:X,inst:Y,expected:"set",code:"invalid_type"}),Q;let G=[];Q.value=new Set;for(let $ of X){let W=J.valueType._zod.run({value:$,issues:[]},q);if(W instanceof Promise)G.push(W.then((j)=>NN(j,Q)));else NN(W,Q)}if(G.length)return Promise.all(G).then(()=>Q);return Q}});function NN(Y,J){if(Y.issues.length)J.issues.push(...Y.issues);J.value.add(Y.value)}var lH=V("$ZodEnum",(Y,J)=>{q0.init(Y,J);let Q=Jj(J.entries),q=new Set(Q);Y._zod.values=q,Y._zod.pattern=new RegExp(`^(${Q.filter((X)=>G$.has(typeof X)).map((X)=>typeof X==="string"?lY(X):X.toString()).join("|")})$`),Y._zod.parse=(X,G)=>{let $=X.value;if(q.has($))return X;return X.issues.push({code:"invalid_value",values:Q,input:$,inst:Y}),X}}),uH=V("$ZodLiteral",(Y,J)=>{if(q0.init(Y,J),J.values.length===0)throw Error("Cannot create literal schema with no valid values");let Q=new Set(J.values);Y._zod.values=Q,Y._zod.pattern=new RegExp(`^(${J.values.map((q)=>typeof q==="string"?lY(q):q?lY(q.toString()):String(q)).join("|")})$`),Y._zod.parse=(q,X)=>{let G=q.value;if(Q.has(G))return q;return q.issues.push({code:"invalid_value",values:J.values,input:G,inst:Y}),q}}),cH=V("$ZodFile",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{let X=Q.value;if(X instanceof File)return Q;return Q.issues.push({expected:"file",code:"invalid_type",input:X,inst:Y}),Q}}),bH=V("$ZodTransform",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{if(q.direction==="backward")throw new Eq(Y.constructor.name);let X=J.transform(Q.value,Q);if(q.async)return(X instanceof Promise?X:Promise.resolve(X)).then((G)=>{return Q.value=G,Q});if(X instanceof Promise)throw new KJ;return Q.value=X,Q}});function ON(Y,J){if(Y.issues.length&&J===void 0)return{issues:[],value:void 0};return Y}var Cj=V("$ZodOptional",(Y,J)=>{q0.init(Y,J),Y._zod.optin="optional",Y._zod.optout="optional",z0(Y._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,void 0]):void 0}),z0(Y._zod,"pattern",()=>{let Q=J.innerType._zod.pattern;return Q?new RegExp(`^(${_$(Q.source)})?$`):void 0}),Y._zod.parse=(Q,q)=>{if(J.innerType._zod.optin==="optional"){let X=J.innerType._zod.run(Q,q);if(X instanceof Promise)return X.then((G)=>ON(G,Q.value));return ON(X,Q.value)}if(Q.value===void 0)return Q;return J.innerType._zod.run(Q,q)}}),pH=V("$ZodExactOptional",(Y,J)=>{Cj.init(Y,J),z0(Y._zod,"values",()=>J.innerType._zod.values),z0(Y._zod,"pattern",()=>J.innerType._zod.pattern),Y._zod.parse=(Q,q)=>{return J.innerType._zod.run(Q,q)}}),oH=V("$ZodNullable",(Y,J)=>{q0.init(Y,J),z0(Y._zod,"optin",()=>J.innerType._zod.optin),z0(Y._zod,"optout",()=>J.innerType._zod.optout),z0(Y._zod,"pattern",()=>{let Q=J.innerType._zod.pattern;return Q?new RegExp(`^(${_$(Q.source)}|null)$`):void 0}),z0(Y._zod,"values",()=>{return J.innerType._zod.values?new Set([...J.innerType._zod.values,null]):void 0}),Y._zod.parse=(Q,q)=>{if(Q.value===null)return Q;return J.innerType._zod.run(Q,q)}}),dH=V("$ZodDefault",(Y,J)=>{q0.init(Y,J),Y._zod.optin="optional",z0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(Q,q)=>{if(q.direction==="backward")return J.innerType._zod.run(Q,q);if(Q.value===void 0)return Q.value=J.defaultValue,Q;let X=J.innerType._zod.run(Q,q);if(X instanceof Promise)return X.then((G)=>DN(G,J));return DN(X,J)}});function DN(Y,J){if(Y.value===void 0)Y.value=J.defaultValue;return Y}var rH=V("$ZodPrefault",(Y,J)=>{q0.init(Y,J),Y._zod.optin="optional",z0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(Q,q)=>{if(q.direction==="backward")return J.innerType._zod.run(Q,q);if(Q.value===void 0)Q.value=J.defaultValue;return J.innerType._zod.run(Q,q)}}),sH=V("$ZodNonOptional",(Y,J)=>{q0.init(Y,J),z0(Y._zod,"values",()=>{let Q=J.innerType._zod.values;return Q?new Set([...Q].filter((q)=>q!==void 0)):void 0}),Y._zod.parse=(Q,q)=>{let X=J.innerType._zod.run(Q,q);if(X instanceof Promise)return X.then((G)=>UN(G,Y));return UN(X,Y)}});function UN(Y,J){if(!Y.issues.length&&Y.value===void 0)Y.issues.push({code:"invalid_type",expected:"nonoptional",input:Y.value,inst:J});return Y}var iH=V("$ZodSuccess",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{if(q.direction==="backward")throw new Eq("ZodSuccess");let X=J.innerType._zod.run(Q,q);if(X instanceof Promise)return X.then((G)=>{return Q.value=G.issues.length===0,Q});return Q.value=X.issues.length===0,Q}}),tH=V("$ZodCatch",(Y,J)=>{q0.init(Y,J),z0(Y._zod,"optin",()=>J.innerType._zod.optin),z0(Y._zod,"optout",()=>J.innerType._zod.optout),z0(Y._zod,"values",()=>J.innerType._zod.values),Y._zod.parse=(Q,q)=>{if(q.direction==="backward")return J.innerType._zod.run(Q,q);let X=J.innerType._zod.run(Q,q);if(X instanceof Promise)return X.then((G)=>{if(Q.value=G.value,G.issues.length)Q.value=J.catchValue({...Q,error:{issues:G.issues.map(($)=>u8($,q,$8()))},input:Q.value}),Q.issues=[];return Q});if(Q.value=X.value,X.issues.length)Q.value=J.catchValue({...Q,error:{issues:X.issues.map((G)=>u8(G,q,$8()))},input:Q.value}),Q.issues=[];return Q}}),nH=V("$ZodNaN",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{if(typeof Q.value!=="number"||!Number.isNaN(Q.value))return Q.issues.push({input:Q.value,inst:Y,expected:"nan",code:"invalid_type"}),Q;return Q}}),aH=V("$ZodPipe",(Y,J)=>{q0.init(Y,J),z0(Y._zod,"values",()=>J.in._zod.values),z0(Y._zod,"optin",()=>J.in._zod.optin),z0(Y._zod,"optout",()=>J.out._zod.optout),z0(Y._zod,"propValues",()=>J.in._zod.propValues),Y._zod.parse=(Q,q)=>{if(q.direction==="backward"){let G=J.out._zod.run(Q,q);if(G instanceof Promise)return G.then(($)=>AG($,J.in,q));return AG(G,J.in,q)}let X=J.in._zod.run(Q,q);if(X instanceof Promise)return X.then((G)=>AG(G,J.out,q));return AG(X,J.out,q)}});function AG(Y,J,Q){if(Y.issues.length)return Y.aborted=!0,Y;return J._zod.run({value:Y.value,issues:Y.issues},Q)}var Ij=V("$ZodCodec",(Y,J)=>{q0.init(Y,J),z0(Y._zod,"values",()=>J.in._zod.values),z0(Y._zod,"optin",()=>J.in._zod.optin),z0(Y._zod,"optout",()=>J.out._zod.optout),z0(Y._zod,"propValues",()=>J.in._zod.propValues),Y._zod.parse=(Q,q)=>{if((q.direction||"forward")==="forward"){let X=J.in._zod.run(Q,q);if(X instanceof Promise)return X.then((G)=>CG(G,J,q));return CG(X,J,q)}else{let X=J.out._zod.run(Q,q);if(X instanceof Promise)return X.then((G)=>CG(G,J,q));return CG(X,J,q)}}});function CG(Y,J,Q){if(Y.issues.length)return Y.aborted=!0,Y;if((Q.direction||"forward")==="forward"){let q=J.transform(Y.value,Y);if(q instanceof Promise)return q.then((X)=>IG(Y,X,J.out,Q));return IG(Y,q,J.out,Q)}else{let q=J.reverseTransform(Y.value,Y);if(q instanceof Promise)return q.then((X)=>IG(Y,X,J.in,Q));return IG(Y,q,J.in,Q)}}function IG(Y,J,Q,q){if(Y.issues.length)return Y.aborted=!0,Y;return Q._zod.run({value:J,issues:Y.issues},q)}var eH=V("$ZodReadonly",(Y,J)=>{q0.init(Y,J),z0(Y._zod,"propValues",()=>J.innerType._zod.propValues),z0(Y._zod,"values",()=>J.innerType._zod.values),z0(Y._zod,"optin",()=>J.innerType?._zod?.optin),z0(Y._zod,"optout",()=>J.innerType?._zod?.optout),Y._zod.parse=(Q,q)=>{if(q.direction==="backward")return J.innerType._zod.run(Q,q);let X=J.innerType._zod.run(Q,q);if(X instanceof Promise)return X.then(HN);return HN(X)}});function HN(Y){return Y.value=Object.freeze(Y.value),Y}var YB=V("$ZodTemplateLiteral",(Y,J)=>{q0.init(Y,J);let Q=[];for(let q of J.parts)if(typeof q==="object"&&q!==null){if(!q._zod.pattern)throw Error(`Invalid template literal part, no pattern found: ${[...q._zod.traits].shift()}`);let X=q._zod.pattern instanceof RegExp?q._zod.pattern.source:q._zod.pattern;if(!X)throw Error(`Invalid template literal part: ${q._zod.traits}`);let G=X.startsWith("^")?1:0,$=X.endsWith("$")?X.length-1:X.length;Q.push(X.slice(G,$))}else if(q===null||fD.has(typeof q))Q.push(lY(`${q}`));else throw Error(`Invalid template literal part: ${q}`);Y._zod.pattern=new RegExp(`^${Q.join("")}$`),Y._zod.parse=(q,X)=>{if(typeof q.value!=="string")return q.issues.push({input:q.value,inst:Y,expected:"string",code:"invalid_type"}),q;if(Y._zod.pattern.lastIndex=0,!Y._zod.pattern.test(q.value))return q.issues.push({input:q.value,inst:Y,code:"invalid_format",format:J.format??"template_literal",pattern:Y._zod.pattern.source}),q;return q}}),JB=V("$ZodFunction",(Y,J)=>{return q0.init(Y,J),Y._def=J,Y._zod.def=J,Y.implement=(Q)=>{if(typeof Q!=="function")throw Error("implement() must be called with a function");return function(...q){let X=Y._def.input?cW(Y._def.input,q):q,G=Reflect.apply(Q,this,X);if(Y._def.output)return cW(Y._def.output,G);return G}},Y.implementAsync=(Q)=>{if(typeof Q!=="function")throw Error("implementAsync() must be called with a function");return async function(...q){let X=Y._def.input?await bW(Y._def.input,q):q,G=await Reflect.apply(Q,this,X);if(Y._def.output)return await bW(Y._def.output,G);return G}},Y._zod.parse=(Q,q)=>{if(typeof Q.value!=="function")return Q.issues.push({code:"invalid_type",expected:"function",input:Q.value,inst:Y}),Q;if(Y._def.output&&Y._def.output._zod.def.type==="promise")Q.value=Y.implementAsync(Q.value);else Q.value=Y.implement(Q.value);return Q},Y.input=(...Q)=>{let q=Y.constructor;if(Array.isArray(Q[0]))return new q({type:"function",input:new Aj({type:"tuple",items:Q[0],rest:Q[1]}),output:Y._def.output});return new q({type:"function",input:Q[0],output:Y._def.output})},Y.output=(Q)=>{return new Y.constructor({type:"function",input:Y._def.input,output:Q})},Y}),QB=V("$ZodPromise",(Y,J)=>{q0.init(Y,J),Y._zod.parse=(Q,q)=>{return Promise.resolve(Q.value).then((X)=>J.innerType._zod.run({value:X,issues:[]},q))}}),XB=V("$ZodLazy",(Y,J)=>{q0.init(Y,J),z0(Y._zod,"innerType",()=>J.getter()),z0(Y._zod,"pattern",()=>Y._zod.innerType?._zod?.pattern),z0(Y._zod,"propValues",()=>Y._zod.innerType?._zod?.propValues),z0(Y._zod,"optin",()=>Y._zod.innerType?._zod?.optin??void 0),z0(Y._zod,"optout",()=>Y._zod.innerType?._zod?.optout??void 0),Y._zod.parse=(Q,q)=>{return Y._zod.innerType._zod.run(Q,q)}}),qB=V("$ZodCustom",(Y,J)=>{P0.init(Y,J),q0.init(Y,J),Y._zod.parse=(Q,q)=>{return Q},Y._zod.check=(Q)=>{let q=Q.value,X=J.fn(q);if(X instanceof Promise)return X.then((G)=>BN(G,Q,q,Y));BN(X,Q,q,Y);return}});function BN(Y,J,Q,q){if(!Y){let X={code:"custom",input:Q,inst:q,path:[...q._zod.def.path??[]],continue:!q._zod.def.abort};if(q._zod.def.params)X.params=q._zod.def.params;J.issues.push($$(X))}}var Sj={};e8(Sj,{zhTW:()=>o_,zhCN:()=>b_,yo:()=>r_,vi:()=>u_,uz:()=>y_,ur:()=>h_,uk:()=>WB,ua:()=>g_,tr:()=>Z_,th:()=>P_,ta:()=>k_,sv:()=>v_,sl:()=>I_,ru:()=>A_,pt:()=>E_,ps:()=>B_,pl:()=>V_,ota:()=>U_,no:()=>O_,nl:()=>M_,ms:()=>K_,mk:()=>W_,lt:()=>G_,ko:()=>X_,km:()=>$B,kh:()=>J_,ka:()=>ev,ja:()=>nv,it:()=>iv,is:()=>rv,id:()=>ov,hy:()=>bv,hu:()=>uv,he:()=>yv,frCA:()=>hv,fr:()=>gv,fi:()=>Zv,fa:()=>Pv,es:()=>kv,eo:()=>vv,en:()=>GB,de:()=>Cv,da:()=>wv,cs:()=>Lv,ca:()=>Rv,bg:()=>Hv,be:()=>Dv,az:()=>Nv,ar:()=>zv});var Kv=()=>{let Y={string:{unit:"حرف",verb:"أن يحوي"},file:{unit:"بايت",verb:"أن يحوي"},array:{unit:"عنصر",verb:"أن يحوي"},set:{unit:"عنصر",verb:"أن يحوي"}};function J(X){return Y[X]??null}let Q={regex:"مدخل",email:"بريد إلكتروني",url:"رابط",emoji:"إيموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاريخ ووقت بمعيار ISO",date:"تاريخ بمعيار ISO",time:"وقت بمعيار ISO",duration:"مدة بمعيار ISO",ipv4:"عنوان IPv4",ipv6:"عنوان IPv6",cidrv4:"مدى عناوين بصيغة IPv4",cidrv6:"مدى عناوين بصيغة IPv6",base64:"نَص بترميز base64-encoded",base64url:"نَص بترميز base64url-encoded",json_string:"نَص على هيئة JSON",e164:"رقم هاتف بمعيار E.164",jwt:"JWT",template_literal:"مدخل"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`مدخلات غير مقبولة: يفترض إدخال instanceof ${X.expected}، ولكن تم إدخال ${W}`;return`مدخلات غير مقبولة: يفترض إدخال ${G}، ولكن تم إدخال ${W}`}case"invalid_value":if(X.values.length===1)return`مدخلات غير مقبولة: يفترض إدخال ${J0(X.values[0])}`;return`اختيار غير مقبول: يتوقع انتقاء أحد هذه الخيارات: ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return` أكبر من اللازم: يفترض أن تكون ${X.origin??"القيمة"} ${G} ${X.maximum.toString()} ${$.unit??"عنصر"}`;return`أكبر من اللازم: يفترض أن تكون ${X.origin??"القيمة"} ${G} ${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`أصغر من اللازم: يفترض لـ ${X.origin} أن يكون ${G} ${X.minimum.toString()} ${$.unit}`;return`أصغر من اللازم: يفترض لـ ${X.origin} أن يكون ${G} ${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`نَص غير مقبول: يجب أن يبدأ بـ "${X.prefix}"`;if(G.format==="ends_with")return`نَص غير مقبول: يجب أن ينتهي بـ "${G.suffix}"`;if(G.format==="includes")return`نَص غير مقبول: يجب أن يتضمَّن "${G.includes}"`;if(G.format==="regex")return`نَص غير مقبول: يجب أن يطابق النمط ${G.pattern}`;return`${Q[G.format]??X.format} غير مقبول`}case"not_multiple_of":return`رقم غير مقبول: يجب أن يكون من مضاعفات ${X.divisor}`;case"unrecognized_keys":return`معرف${X.keys.length>1?"ات":""} غريب${X.keys.length>1?"ة":""}: ${F(X.keys,"، ")}`;case"invalid_key":return`معرف غير مقبول في ${X.origin}`;case"invalid_union":return"مدخل غير مقبول";case"invalid_element":return`مدخل غير مقبول في ${X.origin}`;default:return"مدخل غير مقبول"}}};function zv(){return{localeError:Kv()}}var Mv=()=>{let Y={string:{unit:"simvol",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"element",verb:"olmalıdır"},set:{unit:"element",verb:"olmalıdır"}};function J(X){return Y[X]??null}let Q={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Yanlış dəyər: gözlənilən instanceof ${X.expected}, daxil olan ${W}`;return`Yanlış dəyər: gözlənilən ${G}, daxil olan ${W}`}case"invalid_value":if(X.values.length===1)return`Yanlış dəyər: gözlənilən ${J0(X.values[0])}`;return`Yanlış seçim: aşağıdakılardan biri olmalıdır: ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Çox böyük: gözlənilən ${X.origin??"dəyər"} ${G}${X.maximum.toString()} ${$.unit??"element"}`;return`Çox böyük: gözlənilən ${X.origin??"dəyər"} ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Çox kiçik: gözlənilən ${X.origin} ${G}${X.minimum.toString()} ${$.unit}`;return`Çox kiçik: gözlənilən ${X.origin} ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Yanlış mətn: "${G.prefix}" ilə başlamalıdır`;if(G.format==="ends_with")return`Yanlış mətn: "${G.suffix}" ilə bitməlidir`;if(G.format==="includes")return`Yanlış mətn: "${G.includes}" daxil olmalıdır`;if(G.format==="regex")return`Yanlış mətn: ${G.pattern} şablonuna uyğun olmalıdır`;return`Yanlış ${Q[G.format]??X.format}`}case"not_multiple_of":return`Yanlış ədəd: ${X.divisor} ilə bölünə bilən olmalıdır`;case"unrecognized_keys":return`Tanınmayan açar${X.keys.length>1?"lar":""}: ${F(X.keys,", ")}`;case"invalid_key":return`${X.origin} daxilində yanlış açar`;case"invalid_union":return"Yanlış dəyər";case"invalid_element":return`${X.origin} daxilində yanlış dəyər`;default:return"Yanlış dəyər"}}};function Nv(){return{localeError:Mv()}}function RN(Y,J,Q,q){let X=Math.abs(Y),G=X%10,$=X%100;if($>=11&&$<=19)return q;if(G===1)return J;if(G>=2&&G<=4)return Q;return q}var Ov=()=>{let Y={string:{unit:{one:"сімвал",few:"сімвалы",many:"сімвалаў"},verb:"мець"},array:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},set:{unit:{one:"элемент",few:"элементы",many:"элементаў"},verb:"мець"},file:{unit:{one:"байт",few:"байты",many:"байтаў"},verb:"мець"}};function J(X){return Y[X]??null}let Q={regex:"увод",email:"email адрас",url:"URL",emoji:"эмодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата і час",date:"ISO дата",time:"ISO час",duration:"ISO працягласць",ipv4:"IPv4 адрас",ipv6:"IPv6 адрас",cidrv4:"IPv4 дыяпазон",cidrv6:"IPv6 дыяпазон",base64:"радок у фармаце base64",base64url:"радок у фармаце base64url",json_string:"JSON радок",e164:"нумар E.164",jwt:"JWT",template_literal:"увод"},q={nan:"NaN",number:"лік",array:"масіў"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Няправільны ўвод: чакаўся instanceof ${X.expected}, атрымана ${W}`;return`Няправільны ўвод: чакаўся ${G}, атрымана ${W}`}case"invalid_value":if(X.values.length===1)return`Няправільны ўвод: чакалася ${J0(X.values[0])}`;return`Няправільны варыянт: чакаўся адзін з ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($){let W=Number(X.maximum),j=RN(W,$.unit.one,$.unit.few,$.unit.many);return`Занадта вялікі: чакалася, што ${X.origin??"значэнне"} павінна ${$.verb} ${G}${X.maximum.toString()} ${j}`}return`Занадта вялікі: чакалася, што ${X.origin??"значэнне"} павінна быць ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($){let W=Number(X.minimum),j=RN(W,$.unit.one,$.unit.few,$.unit.many);return`Занадта малы: чакалася, што ${X.origin} павінна ${$.verb} ${G}${X.minimum.toString()} ${j}`}return`Занадта малы: чакалася, што ${X.origin} павінна быць ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Няправільны радок: павінен пачынацца з "${G.prefix}"`;if(G.format==="ends_with")return`Няправільны радок: павінен заканчвацца на "${G.suffix}"`;if(G.format==="includes")return`Няправільны радок: павінен змяшчаць "${G.includes}"`;if(G.format==="regex")return`Няправільны радок: павінен адпавядаць шаблону ${G.pattern}`;return`Няправільны ${Q[G.format]??X.format}`}case"not_multiple_of":return`Няправільны лік: павінен быць кратным ${X.divisor}`;case"unrecognized_keys":return`Нераспазнаны ${X.keys.length>1?"ключы":"ключ"}: ${F(X.keys,", ")}`;case"invalid_key":return`Няправільны ключ у ${X.origin}`;case"invalid_union":return"Няправільны ўвод";case"invalid_element":return`Няправільнае значэнне ў ${X.origin}`;default:return"Няправільны ўвод"}}};function Dv(){return{localeError:Ov()}}var Uv=()=>{let Y={string:{unit:"символа",verb:"да съдържа"},file:{unit:"байта",verb:"да съдържа"},array:{unit:"елемента",verb:"да съдържа"},set:{unit:"елемента",verb:"да съдържа"}};function J(X){return Y[X]??null}let Q={regex:"вход",email:"имейл адрес",url:"URL",emoji:"емоджи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO време",date:"ISO дата",time:"ISO време",duration:"ISO продължителност",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"base64-кодиран низ",base64url:"base64url-кодиран низ",json_string:"JSON низ",e164:"E.164 номер",jwt:"JWT",template_literal:"вход"},q={nan:"NaN",number:"число",array:"масив"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Невалиден вход: очакван instanceof ${X.expected}, получен ${W}`;return`Невалиден вход: очакван ${G}, получен ${W}`}case"invalid_value":if(X.values.length===1)return`Невалиден вход: очакван ${J0(X.values[0])}`;return`Невалидна опция: очаквано едно от ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Твърде голямо: очаква се ${X.origin??"стойност"} да съдържа ${G}${X.maximum.toString()} ${$.unit??"елемента"}`;return`Твърде голямо: очаква се ${X.origin??"стойност"} да бъде ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Твърде малко: очаква се ${X.origin} да съдържа ${G}${X.minimum.toString()} ${$.unit}`;return`Твърде малко: очаква се ${X.origin} да бъде ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Невалиден низ: трябва да започва с "${G.prefix}"`;if(G.format==="ends_with")return`Невалиден низ: трябва да завършва с "${G.suffix}"`;if(G.format==="includes")return`Невалиден низ: трябва да включва "${G.includes}"`;if(G.format==="regex")return`Невалиден низ: трябва да съвпада с ${G.pattern}`;let $="Невалиден";if(G.format==="emoji")$="Невалидно";if(G.format==="datetime")$="Невалидно";if(G.format==="date")$="Невалидна";if(G.format==="time")$="Невалидно";if(G.format==="duration")$="Невалидна";return`${$} ${Q[G.format]??X.format}`}case"not_multiple_of":return`Невалидно число: трябва да бъде кратно на ${X.divisor}`;case"unrecognized_keys":return`Неразпознат${X.keys.length>1?"и":""} ключ${X.keys.length>1?"ове":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Невалиден ключ в ${X.origin}`;case"invalid_union":return"Невалиден вход";case"invalid_element":return`Невалидна стойност в ${X.origin}`;default:return"Невалиден вход"}}};function Hv(){return{localeError:Uv()}}var Bv=()=>{let Y={string:{unit:"caràcters",verb:"contenir"},file:{unit:"bytes",verb:"contenir"},array:{unit:"elements",verb:"contenir"},set:{unit:"elements",verb:"contenir"}};function J(X){return Y[X]??null}let Q={regex:"entrada",email:"adreça electrònica",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i hora ISO",date:"data ISO",time:"hora ISO",duration:"durada ISO",ipv4:"adreça IPv4",ipv6:"adreça IPv6",cidrv4:"rang IPv4",cidrv6:"rang IPv6",base64:"cadena codificada en base64",base64url:"cadena codificada en base64url",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Tipus invàlid: s'esperava instanceof ${X.expected}, s'ha rebut ${W}`;return`Tipus invàlid: s'esperava ${G}, s'ha rebut ${W}`}case"invalid_value":if(X.values.length===1)return`Valor invàlid: s'esperava ${J0(X.values[0])}`;return`Opció invàlida: s'esperava una de ${F(X.values," o ")}`;case"too_big":{let G=X.inclusive?"com a màxim":"menys de",$=J(X.origin);if($)return`Massa gran: s'esperava que ${X.origin??"el valor"} contingués ${G} ${X.maximum.toString()} ${$.unit??"elements"}`;return`Massa gran: s'esperava que ${X.origin??"el valor"} fos ${G} ${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?"com a mínim":"més de",$=J(X.origin);if($)return`Massa petit: s'esperava que ${X.origin} contingués ${G} ${X.minimum.toString()} ${$.unit}`;return`Massa petit: s'esperava que ${X.origin} fos ${G} ${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Format invàlid: ha de començar amb "${G.prefix}"`;if(G.format==="ends_with")return`Format invàlid: ha d'acabar amb "${G.suffix}"`;if(G.format==="includes")return`Format invàlid: ha d'incloure "${G.includes}"`;if(G.format==="regex")return`Format invàlid: ha de coincidir amb el patró ${G.pattern}`;return`Format invàlid per a ${Q[G.format]??X.format}`}case"not_multiple_of":return`Número invàlid: ha de ser múltiple de ${X.divisor}`;case"unrecognized_keys":return`Clau${X.keys.length>1?"s":""} no reconeguda${X.keys.length>1?"s":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Clau invàlida a ${X.origin}`;case"invalid_union":return"Entrada invàlida";case"invalid_element":return`Element invàlid a ${X.origin}`;default:return"Entrada invàlida"}}};function Rv(){return{localeError:Bv()}}var Vv=()=>{let Y={string:{unit:"znaků",verb:"mít"},file:{unit:"bajtů",verb:"mít"},array:{unit:"prvků",verb:"mít"},set:{unit:"prvků",verb:"mít"}};function J(X){return Y[X]??null}let Q={regex:"regulární výraz",email:"e-mailová adresa",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"datum a čas ve formátu ISO",date:"datum ve formátu ISO",time:"čas ve formátu ISO",duration:"doba trvání ISO",ipv4:"IPv4 adresa",ipv6:"IPv6 adresa",cidrv4:"rozsah IPv4",cidrv6:"rozsah IPv6",base64:"řetězec zakódovaný ve formátu base64",base64url:"řetězec zakódovaný ve formátu base64url",json_string:"řetězec ve formátu JSON",e164:"číslo E.164",jwt:"JWT",template_literal:"vstup"},q={nan:"NaN",number:"číslo",string:"řetězec",function:"funkce",array:"pole"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Neplatný vstup: očekáváno instanceof ${X.expected}, obdrženo ${W}`;return`Neplatný vstup: očekáváno ${G}, obdrženo ${W}`}case"invalid_value":if(X.values.length===1)return`Neplatný vstup: očekáváno ${J0(X.values[0])}`;return`Neplatná možnost: očekávána jedna z hodnot ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Hodnota je příliš velká: ${X.origin??"hodnota"} musí mít ${G}${X.maximum.toString()} ${$.unit??"prvků"}`;return`Hodnota je příliš velká: ${X.origin??"hodnota"} musí být ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Hodnota je příliš malá: ${X.origin??"hodnota"} musí mít ${G}${X.minimum.toString()} ${$.unit??"prvků"}`;return`Hodnota je příliš malá: ${X.origin??"hodnota"} musí být ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Neplatný řetězec: musí začínat na "${G.prefix}"`;if(G.format==="ends_with")return`Neplatný řetězec: musí končit na "${G.suffix}"`;if(G.format==="includes")return`Neplatný řetězec: musí obsahovat "${G.includes}"`;if(G.format==="regex")return`Neplatný řetězec: musí odpovídat vzoru ${G.pattern}`;return`Neplatný formát ${Q[G.format]??X.format}`}case"not_multiple_of":return`Neplatné číslo: musí být násobkem ${X.divisor}`;case"unrecognized_keys":return`Neznámé klíče: ${F(X.keys,", ")}`;case"invalid_key":return`Neplatný klíč v ${X.origin}`;case"invalid_union":return"Neplatný vstup";case"invalid_element":return`Neplatná hodnota v ${X.origin}`;default:return"Neplatný vstup"}}};function Lv(){return{localeError:Vv()}}var Ev=()=>{let Y={string:{unit:"tegn",verb:"havde"},file:{unit:"bytes",verb:"havde"},array:{unit:"elementer",verb:"indeholdt"},set:{unit:"elementer",verb:"indeholdt"}};function J(X){return Y[X]??null}let Q={regex:"input",email:"e-mailadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslæt",date:"ISO-dato",time:"ISO-klokkeslæt",duration:"ISO-varighed",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodet streng",base64url:"base64url-kodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},q={nan:"NaN",string:"streng",number:"tal",boolean:"boolean",array:"liste",object:"objekt",set:"sæt",file:"fil"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Ugyldigt input: forventede instanceof ${X.expected}, fik ${W}`;return`Ugyldigt input: forventede ${G}, fik ${W}`}case"invalid_value":if(X.values.length===1)return`Ugyldig værdi: forventede ${J0(X.values[0])}`;return`Ugyldigt valg: forventede en af følgende ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin),W=q[X.origin]??X.origin;if($)return`For stor: forventede ${W??"value"} ${$.verb} ${G} ${X.maximum.toString()} ${$.unit??"elementer"}`;return`For stor: forventede ${W??"value"} havde ${G} ${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin),W=q[X.origin]??X.origin;if($)return`For lille: forventede ${W} ${$.verb} ${G} ${X.minimum.toString()} ${$.unit}`;return`For lille: forventede ${W} havde ${G} ${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Ugyldig streng: skal starte med "${G.prefix}"`;if(G.format==="ends_with")return`Ugyldig streng: skal ende med "${G.suffix}"`;if(G.format==="includes")return`Ugyldig streng: skal indeholde "${G.includes}"`;if(G.format==="regex")return`Ugyldig streng: skal matche mønsteret ${G.pattern}`;return`Ugyldig ${Q[G.format]??X.format}`}case"not_multiple_of":return`Ugyldigt tal: skal være deleligt med ${X.divisor}`;case"unrecognized_keys":return`${X.keys.length>1?"Ukendte nøgler":"Ukendt nøgle"}: ${F(X.keys,", ")}`;case"invalid_key":return`Ugyldig nøgle i ${X.origin}`;case"invalid_union":return"Ugyldigt input: matcher ingen af de tilladte typer";case"invalid_element":return`Ugyldig værdi i ${X.origin}`;default:return"Ugyldigt input"}}};function wv(){return{localeError:Ev()}}var Av=()=>{let Y={string:{unit:"Zeichen",verb:"zu haben"},file:{unit:"Bytes",verb:"zu haben"},array:{unit:"Elemente",verb:"zu haben"},set:{unit:"Elemente",verb:"zu haben"}};function J(X){return Y[X]??null}let Q={regex:"Eingabe",email:"E-Mail-Adresse",url:"URL",emoji:"Emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-Datum und -Uhrzeit",date:"ISO-Datum",time:"ISO-Uhrzeit",duration:"ISO-Dauer",ipv4:"IPv4-Adresse",ipv6:"IPv6-Adresse",cidrv4:"IPv4-Bereich",cidrv6:"IPv6-Bereich",base64:"Base64-codierter String",base64url:"Base64-URL-codierter String",json_string:"JSON-String",e164:"E.164-Nummer",jwt:"JWT",template_literal:"Eingabe"},q={nan:"NaN",number:"Zahl",array:"Array"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Ungültige Eingabe: erwartet instanceof ${X.expected}, erhalten ${W}`;return`Ungültige Eingabe: erwartet ${G}, erhalten ${W}`}case"invalid_value":if(X.values.length===1)return`Ungültige Eingabe: erwartet ${J0(X.values[0])}`;return`Ungültige Option: erwartet eine von ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Zu groß: erwartet, dass ${X.origin??"Wert"} ${G}${X.maximum.toString()} ${$.unit??"Elemente"} hat`;return`Zu groß: erwartet, dass ${X.origin??"Wert"} ${G}${X.maximum.toString()} ist`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Zu klein: erwartet, dass ${X.origin} ${G}${X.minimum.toString()} ${$.unit} hat`;return`Zu klein: erwartet, dass ${X.origin} ${G}${X.minimum.toString()} ist`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Ungültiger String: muss mit "${G.prefix}" beginnen`;if(G.format==="ends_with")return`Ungültiger String: muss mit "${G.suffix}" enden`;if(G.format==="includes")return`Ungültiger String: muss "${G.includes}" enthalten`;if(G.format==="regex")return`Ungültiger String: muss dem Muster ${G.pattern} entsprechen`;return`Ungültig: ${Q[G.format]??X.format}`}case"not_multiple_of":return`Ungültige Zahl: muss ein Vielfaches von ${X.divisor} sein`;case"unrecognized_keys":return`${X.keys.length>1?"Unbekannte Schlüssel":"Unbekannter Schlüssel"}: ${F(X.keys,", ")}`;case"invalid_key":return`Ungültiger Schlüssel in ${X.origin}`;case"invalid_union":return"Ungültige Eingabe";case"invalid_element":return`Ungültiger Wert in ${X.origin}`;default:return"Ungültige Eingabe"}}};function Cv(){return{localeError:Av()}}var Iv=()=>{let Y={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function J(X){return Y[X]??null}let Q={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",jwt:"JWT",template_literal:"input"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;return`Invalid input: expected ${G}, received ${W}`}case"invalid_value":if(X.values.length===1)return`Invalid input: expected ${J0(X.values[0])}`;return`Invalid option: expected one of ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Too big: expected ${X.origin??"value"} to have ${G}${X.maximum.toString()} ${$.unit??"elements"}`;return`Too big: expected ${X.origin??"value"} to be ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Too small: expected ${X.origin} to have ${G}${X.minimum.toString()} ${$.unit}`;return`Too small: expected ${X.origin} to be ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Invalid string: must start with "${G.prefix}"`;if(G.format==="ends_with")return`Invalid string: must end with "${G.suffix}"`;if(G.format==="includes")return`Invalid string: must include "${G.includes}"`;if(G.format==="regex")return`Invalid string: must match pattern ${G.pattern}`;return`Invalid ${Q[G.format]??X.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${X.divisor}`;case"unrecognized_keys":return`Unrecognized key${X.keys.length>1?"s":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Invalid key in ${X.origin}`;case"invalid_union":return"Invalid input";case"invalid_element":return`Invalid value in ${X.origin}`;default:return"Invalid input"}}};function GB(){return{localeError:Iv()}}var Sv=()=>{let Y={string:{unit:"karaktrojn",verb:"havi"},file:{unit:"bajtojn",verb:"havi"},array:{unit:"elementojn",verb:"havi"},set:{unit:"elementojn",verb:"havi"}};function J(X){return Y[X]??null}let Q={regex:"enigo",email:"retadreso",url:"URL",emoji:"emoĝio",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datotempo",date:"ISO-dato",time:"ISO-tempo",duration:"ISO-daŭro",ipv4:"IPv4-adreso",ipv6:"IPv6-adreso",cidrv4:"IPv4-rango",cidrv6:"IPv6-rango",base64:"64-ume kodita karaktraro",base64url:"URL-64-ume kodita karaktraro",json_string:"JSON-karaktraro",e164:"E.164-nombro",jwt:"JWT",template_literal:"enigo"},q={nan:"NaN",number:"nombro",array:"tabelo",null:"senvalora"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Nevalida enigo: atendiĝis instanceof ${X.expected}, riceviĝis ${W}`;return`Nevalida enigo: atendiĝis ${G}, riceviĝis ${W}`}case"invalid_value":if(X.values.length===1)return`Nevalida enigo: atendiĝis ${J0(X.values[0])}`;return`Nevalida opcio: atendiĝis unu el ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Tro granda: atendiĝis ke ${X.origin??"valoro"} havu ${G}${X.maximum.toString()} ${$.unit??"elementojn"}`;return`Tro granda: atendiĝis ke ${X.origin??"valoro"} havu ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Tro malgranda: atendiĝis ke ${X.origin} havu ${G}${X.minimum.toString()} ${$.unit}`;return`Tro malgranda: atendiĝis ke ${X.origin} estu ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Nevalida karaktraro: devas komenciĝi per "${G.prefix}"`;if(G.format==="ends_with")return`Nevalida karaktraro: devas finiĝi per "${G.suffix}"`;if(G.format==="includes")return`Nevalida karaktraro: devas inkluzivi "${G.includes}"`;if(G.format==="regex")return`Nevalida karaktraro: devas kongrui kun la modelo ${G.pattern}`;return`Nevalida ${Q[G.format]??X.format}`}case"not_multiple_of":return`Nevalida nombro: devas esti oblo de ${X.divisor}`;case"unrecognized_keys":return`Nekonata${X.keys.length>1?"j":""} ŝlosilo${X.keys.length>1?"j":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Nevalida ŝlosilo en ${X.origin}`;case"invalid_union":return"Nevalida enigo";case"invalid_element":return`Nevalida valoro en ${X.origin}`;default:return"Nevalida enigo"}}};function vv(){return{localeError:Sv()}}var _v=()=>{let Y={string:{unit:"caracteres",verb:"tener"},file:{unit:"bytes",verb:"tener"},array:{unit:"elementos",verb:"tener"},set:{unit:"elementos",verb:"tener"}};function J(X){return Y[X]??null}let Q={regex:"entrada",email:"dirección de correo electrónico",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"fecha y hora ISO",date:"fecha ISO",time:"hora ISO",duration:"duración ISO",ipv4:"dirección IPv4",ipv6:"dirección IPv6",cidrv4:"rango IPv4",cidrv6:"rango IPv6",base64:"cadena codificada en base64",base64url:"URL codificada en base64",json_string:"cadena JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},q={nan:"NaN",string:"texto",number:"número",boolean:"booleano",array:"arreglo",object:"objeto",set:"conjunto",file:"archivo",date:"fecha",bigint:"número grande",symbol:"símbolo",undefined:"indefinido",null:"nulo",function:"función",map:"mapa",record:"registro",tuple:"tupla",enum:"enumeración",union:"unión",literal:"literal",promise:"promesa",void:"vacío",never:"nunca",unknown:"desconocido",any:"cualquiera"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Entrada inválida: se esperaba instanceof ${X.expected}, recibido ${W}`;return`Entrada inválida: se esperaba ${G}, recibido ${W}`}case"invalid_value":if(X.values.length===1)return`Entrada inválida: se esperaba ${J0(X.values[0])}`;return`Opción inválida: se esperaba una de ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin),W=q[X.origin]??X.origin;if($)return`Demasiado grande: se esperaba que ${W??"valor"} tuviera ${G}${X.maximum.toString()} ${$.unit??"elementos"}`;return`Demasiado grande: se esperaba que ${W??"valor"} fuera ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin),W=q[X.origin]??X.origin;if($)return`Demasiado pequeño: se esperaba que ${W} tuviera ${G}${X.minimum.toString()} ${$.unit}`;return`Demasiado pequeño: se esperaba que ${W} fuera ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Cadena inválida: debe comenzar con "${G.prefix}"`;if(G.format==="ends_with")return`Cadena inválida: debe terminar en "${G.suffix}"`;if(G.format==="includes")return`Cadena inválida: debe incluir "${G.includes}"`;if(G.format==="regex")return`Cadena inválida: debe coincidir con el patrón ${G.pattern}`;return`Inválido ${Q[G.format]??X.format}`}case"not_multiple_of":return`Número inválido: debe ser múltiplo de ${X.divisor}`;case"unrecognized_keys":return`Llave${X.keys.length>1?"s":""} desconocida${X.keys.length>1?"s":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Llave inválida en ${q[X.origin]??X.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido en ${q[X.origin]??X.origin}`;default:return"Entrada inválida"}}};function kv(){return{localeError:_v()}}var Fv=()=>{let Y={string:{unit:"کاراکتر",verb:"داشته باشد"},file:{unit:"بایت",verb:"داشته باشد"},array:{unit:"آیتم",verb:"داشته باشد"},set:{unit:"آیتم",verb:"داشته باشد"}};function J(X){return Y[X]??null}let Q={regex:"ورودی",email:"آدرس ایمیل",url:"URL",emoji:"ایموجی",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"تاریخ و زمان ایزو",date:"تاریخ ایزو",time:"زمان ایزو",duration:"مدت زمان ایزو",ipv4:"IPv4 آدرس",ipv6:"IPv6 آدرس",cidrv4:"IPv4 دامنه",cidrv6:"IPv6 دامنه",base64:"base64-encoded رشته",base64url:"base64url-encoded رشته",json_string:"JSON رشته",e164:"E.164 عدد",jwt:"JWT",template_literal:"ورودی"},q={nan:"NaN",number:"عدد",array:"آرایه"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`ورودی نامعتبر: میبایست instanceof ${X.expected} میبود، ${W} دریافت شد`;return`ورودی نامعتبر: میبایست ${G} میبود، ${W} دریافت شد`}case"invalid_value":if(X.values.length===1)return`ورودی نامعتبر: میبایست ${J0(X.values[0])} میبود`;return`گزینه نامعتبر: میبایست یکی از ${F(X.values,"|")} میبود`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`خیلی بزرگ: ${X.origin??"مقدار"} باید ${G}${X.maximum.toString()} ${$.unit??"عنصر"} باشد`;return`خیلی بزرگ: ${X.origin??"مقدار"} باید ${G}${X.maximum.toString()} باشد`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`خیلی کوچک: ${X.origin} باید ${G}${X.minimum.toString()} ${$.unit} باشد`;return`خیلی کوچک: ${X.origin} باید ${G}${X.minimum.toString()} باشد`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`رشته نامعتبر: باید با "${G.prefix}" شروع شود`;if(G.format==="ends_with")return`رشته نامعتبر: باید با "${G.suffix}" تمام شود`;if(G.format==="includes")return`رشته نامعتبر: باید شامل "${G.includes}" باشد`;if(G.format==="regex")return`رشته نامعتبر: باید با الگوی ${G.pattern} مطابقت داشته باشد`;return`${Q[G.format]??X.format} نامعتبر`}case"not_multiple_of":return`عدد نامعتبر: باید مضرب ${X.divisor} باشد`;case"unrecognized_keys":return`کلید${X.keys.length>1?"های":""} ناشناس: ${F(X.keys,", ")}`;case"invalid_key":return`کلید ناشناس در ${X.origin}`;case"invalid_union":return"ورودی نامعتبر";case"invalid_element":return`مقدار نامعتبر در ${X.origin}`;default:return"ورودی نامعتبر"}}};function Pv(){return{localeError:Fv()}}var Tv=()=>{let Y={string:{unit:"merkkiä",subject:"merkkijonon"},file:{unit:"tavua",subject:"tiedoston"},array:{unit:"alkiota",subject:"listan"},set:{unit:"alkiota",subject:"joukon"},number:{unit:"",subject:"luvun"},bigint:{unit:"",subject:"suuren kokonaisluvun"},int:{unit:"",subject:"kokonaisluvun"},date:{unit:"",subject:"päivämäärän"}};function J(X){return Y[X]??null}let Q={regex:"säännöllinen lauseke",email:"sähköpostiosoite",url:"URL-osoite",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-aikaleima",date:"ISO-päivämäärä",time:"ISO-aika",duration:"ISO-kesto",ipv4:"IPv4-osoite",ipv6:"IPv6-osoite",cidrv4:"IPv4-alue",cidrv6:"IPv6-alue",base64:"base64-koodattu merkkijono",base64url:"base64url-koodattu merkkijono",json_string:"JSON-merkkijono",e164:"E.164-luku",jwt:"JWT",template_literal:"templaattimerkkijono"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Virheellinen tyyppi: odotettiin instanceof ${X.expected}, oli ${W}`;return`Virheellinen tyyppi: odotettiin ${G}, oli ${W}`}case"invalid_value":if(X.values.length===1)return`Virheellinen syöte: täytyy olla ${J0(X.values[0])}`;return`Virheellinen valinta: täytyy olla yksi seuraavista: ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Liian suuri: ${$.subject} täytyy olla ${G}${X.maximum.toString()} ${$.unit}`.trim();return`Liian suuri: arvon täytyy olla ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Liian pieni: ${$.subject} täytyy olla ${G}${X.minimum.toString()} ${$.unit}`.trim();return`Liian pieni: arvon täytyy olla ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Virheellinen syöte: täytyy alkaa "${G.prefix}"`;if(G.format==="ends_with")return`Virheellinen syöte: täytyy loppua "${G.suffix}"`;if(G.format==="includes")return`Virheellinen syöte: täytyy sisältää "${G.includes}"`;if(G.format==="regex")return`Virheellinen syöte: täytyy vastata säännöllistä lauseketta ${G.pattern}`;return`Virheellinen ${Q[G.format]??X.format}`}case"not_multiple_of":return`Virheellinen luku: täytyy olla luvun ${X.divisor} monikerta`;case"unrecognized_keys":return`${X.keys.length>1?"Tuntemattomat avaimet":"Tuntematon avain"}: ${F(X.keys,", ")}`;case"invalid_key":return"Virheellinen avain tietueessa";case"invalid_union":return"Virheellinen unioni";case"invalid_element":return"Virheellinen arvo joukossa";default:return"Virheellinen syöte"}}};function Zv(){return{localeError:Tv()}}var xv=()=>{let Y={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function J(X){return Y[X]??null}let Q={regex:"entrée",email:"adresse e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date et heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},q={nan:"NaN",number:"nombre",array:"tableau"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Entrée invalide : instanceof ${X.expected} attendu, ${W} reçu`;return`Entrée invalide : ${G} attendu, ${W} reçu`}case"invalid_value":if(X.values.length===1)return`Entrée invalide : ${J0(X.values[0])} attendu`;return`Option invalide : une valeur parmi ${F(X.values,"|")} attendue`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Trop grand : ${X.origin??"valeur"} doit ${$.verb} ${G}${X.maximum.toString()} ${$.unit??"élément(s)"}`;return`Trop grand : ${X.origin??"valeur"} doit être ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Trop petit : ${X.origin} doit ${$.verb} ${G}${X.minimum.toString()} ${$.unit}`;return`Trop petit : ${X.origin} doit être ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Chaîne invalide : doit commencer par "${G.prefix}"`;if(G.format==="ends_with")return`Chaîne invalide : doit se terminer par "${G.suffix}"`;if(G.format==="includes")return`Chaîne invalide : doit inclure "${G.includes}"`;if(G.format==="regex")return`Chaîne invalide : doit correspondre au modèle ${G.pattern}`;return`${Q[G.format]??X.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${X.divisor}`;case"unrecognized_keys":return`Clé${X.keys.length>1?"s":""} non reconnue${X.keys.length>1?"s":""} : ${F(X.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${X.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${X.origin}`;default:return"Entrée invalide"}}};function gv(){return{localeError:xv()}}var fv=()=>{let Y={string:{unit:"caractères",verb:"avoir"},file:{unit:"octets",verb:"avoir"},array:{unit:"éléments",verb:"avoir"},set:{unit:"éléments",verb:"avoir"}};function J(X){return Y[X]??null}let Q={regex:"entrée",email:"adresse courriel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"date-heure ISO",date:"date ISO",time:"heure ISO",duration:"durée ISO",ipv4:"adresse IPv4",ipv6:"adresse IPv6",cidrv4:"plage IPv4",cidrv6:"plage IPv6",base64:"chaîne encodée en base64",base64url:"chaîne encodée en base64url",json_string:"chaîne JSON",e164:"numéro E.164",jwt:"JWT",template_literal:"entrée"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Entrée invalide : attendu instanceof ${X.expected}, reçu ${W}`;return`Entrée invalide : attendu ${G}, reçu ${W}`}case"invalid_value":if(X.values.length===1)return`Entrée invalide : attendu ${J0(X.values[0])}`;return`Option invalide : attendu l'une des valeurs suivantes ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"≤":"<",$=J(X.origin);if($)return`Trop grand : attendu que ${X.origin??"la valeur"} ait ${G}${X.maximum.toString()} ${$.unit}`;return`Trop grand : attendu que ${X.origin??"la valeur"} soit ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?"≥":">",$=J(X.origin);if($)return`Trop petit : attendu que ${X.origin} ait ${G}${X.minimum.toString()} ${$.unit}`;return`Trop petit : attendu que ${X.origin} soit ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Chaîne invalide : doit commencer par "${G.prefix}"`;if(G.format==="ends_with")return`Chaîne invalide : doit se terminer par "${G.suffix}"`;if(G.format==="includes")return`Chaîne invalide : doit inclure "${G.includes}"`;if(G.format==="regex")return`Chaîne invalide : doit correspondre au motif ${G.pattern}`;return`${Q[G.format]??X.format} invalide`}case"not_multiple_of":return`Nombre invalide : doit être un multiple de ${X.divisor}`;case"unrecognized_keys":return`Clé${X.keys.length>1?"s":""} non reconnue${X.keys.length>1?"s":""} : ${F(X.keys,", ")}`;case"invalid_key":return`Clé invalide dans ${X.origin}`;case"invalid_union":return"Entrée invalide";case"invalid_element":return`Valeur invalide dans ${X.origin}`;default:return"Entrée invalide"}}};function hv(){return{localeError:fv()}}var mv=()=>{let Y={string:{label:"מחרוזת",gender:"f"},number:{label:"מספר",gender:"m"},boolean:{label:"ערך בוליאני",gender:"m"},bigint:{label:"BigInt",gender:"m"},date:{label:"תאריך",gender:"m"},array:{label:"מערך",gender:"m"},object:{label:"אובייקט",gender:"m"},null:{label:"ערך ריק (null)",gender:"m"},undefined:{label:"ערך לא מוגדר (undefined)",gender:"m"},symbol:{label:"סימבול (Symbol)",gender:"m"},function:{label:"פונקציה",gender:"f"},map:{label:"מפה (Map)",gender:"f"},set:{label:"קבוצה (Set)",gender:"f"},file:{label:"קובץ",gender:"m"},promise:{label:"Promise",gender:"m"},NaN:{label:"NaN",gender:"m"},unknown:{label:"ערך לא ידוע",gender:"m"},value:{label:"ערך",gender:"m"}},J={string:{unit:"תווים",shortLabel:"קצר",longLabel:"ארוך"},file:{unit:"בייטים",shortLabel:"קטן",longLabel:"גדול"},array:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},set:{unit:"פריטים",shortLabel:"קטן",longLabel:"גדול"},number:{unit:"",shortLabel:"קטן",longLabel:"גדול"}},Q=(K)=>K?Y[K]:void 0,q=(K)=>{let z=Q(K);if(z)return z.label;return K??Y.unknown.label},X=(K)=>`ה${q(K)}`,G=(K)=>{return(Q(K)?.gender??"m")==="f"?"צריכה להיות":"צריך להיות"},$=(K)=>{if(!K)return null;return J[K]??null},W={regex:{label:"קלט",gender:"m"},email:{label:"כתובת אימייל",gender:"f"},url:{label:"כתובת רשת",gender:"f"},emoji:{label:"אימוג'י",gender:"m"},uuid:{label:"UUID",gender:"m"},nanoid:{label:"nanoid",gender:"m"},guid:{label:"GUID",gender:"m"},cuid:{label:"cuid",gender:"m"},cuid2:{label:"cuid2",gender:"m"},ulid:{label:"ULID",gender:"m"},xid:{label:"XID",gender:"m"},ksuid:{label:"KSUID",gender:"m"},datetime:{label:"תאריך וזמן ISO",gender:"m"},date:{label:"תאריך ISO",gender:"m"},time:{label:"זמן ISO",gender:"m"},duration:{label:"משך זמן ISO",gender:"m"},ipv4:{label:"כתובת IPv4",gender:"f"},ipv6:{label:"כתובת IPv6",gender:"f"},cidrv4:{label:"טווח IPv4",gender:"m"},cidrv6:{label:"טווח IPv6",gender:"m"},base64:{label:"מחרוזת בבסיס 64",gender:"f"},base64url:{label:"מחרוזת בבסיס 64 לכתובות רשת",gender:"f"},json_string:{label:"מחרוזת JSON",gender:"f"},e164:{label:"מספר E.164",gender:"m"},jwt:{label:"JWT",gender:"m"},ends_with:{label:"קלט",gender:"m"},includes:{label:"קלט",gender:"m"},lowercase:{label:"קלט",gender:"m"},starts_with:{label:"קלט",gender:"m"},uppercase:{label:"קלט",gender:"m"}},j={nan:"NaN"};return(K)=>{switch(K.code){case"invalid_type":{let z=K.expected,M=j[z??""]??q(z),N=X0(K.input),O=j[N]??Y[N]?.label??N;if(/^[A-Z]/.test(K.expected))return`קלט לא תקין: צריך להיות instanceof ${K.expected}, התקבל ${O}`;return`קלט לא תקין: צריך להיות ${M}, התקבל ${O}`}case"invalid_value":{if(K.values.length===1)return`ערך לא תקין: הערך חייב להיות ${J0(K.values[0])}`;let z=K.values.map((N)=>J0(N));if(K.values.length===2)return`ערך לא תקין: האפשרויות המתאימות הן ${z[0]} או ${z[1]}`;let M=z[z.length-1];return`ערך לא תקין: האפשרויות המתאימות הן ${z.slice(0,-1).join(", ")} או ${M}`}case"too_big":{let z=$(K.origin),M=X(K.origin??"value");if(K.origin==="string")return`${z?.longLabel??"ארוך"} מדי: ${M} צריכה להכיל ${K.maximum.toString()} ${z?.unit??""} ${K.inclusive?"או פחות":"לכל היותר"}`.trim();if(K.origin==="number"){let D=K.inclusive?`קטן או שווה ל-${K.maximum}`:`קטן מ-${K.maximum}`;return`גדול מדי: ${M} צריך להיות ${D}`}if(K.origin==="array"||K.origin==="set"){let D=K.origin==="set"?"צריכה":"צריך",U=K.inclusive?`${K.maximum} ${z?.unit??""} או פחות`:`פחות מ-${K.maximum} ${z?.unit??""}`;return`גדול מדי: ${M} ${D} להכיל ${U}`.trim()}let N=K.inclusive?"<=":"<",O=G(K.origin??"value");if(z?.unit)return`${z.longLabel} מדי: ${M} ${O} ${N}${K.maximum.toString()} ${z.unit}`;return`${z?.longLabel??"גדול"} מדי: ${M} ${O} ${N}${K.maximum.toString()}`}case"too_small":{let z=$(K.origin),M=X(K.origin??"value");if(K.origin==="string")return`${z?.shortLabel??"קצר"} מדי: ${M} צריכה להכיל ${K.minimum.toString()} ${z?.unit??""} ${K.inclusive?"או יותר":"לפחות"}`.trim();if(K.origin==="number"){let D=K.inclusive?`גדול או שווה ל-${K.minimum}`:`גדול מ-${K.minimum}`;return`קטן מדי: ${M} צריך להיות ${D}`}if(K.origin==="array"||K.origin==="set"){let D=K.origin==="set"?"צריכה":"צריך";if(K.minimum===1&&K.inclusive){let A=K.origin==="set"?"לפחות פריט אחד":"לפחות פריט אחד";return`קטן מדי: ${M} ${D} להכיל ${A}`}let U=K.inclusive?`${K.minimum} ${z?.unit??""} או יותר`:`יותר מ-${K.minimum} ${z?.unit??""}`;return`קטן מדי: ${M} ${D} להכיל ${U}`.trim()}let N=K.inclusive?">=":">",O=G(K.origin??"value");if(z?.unit)return`${z.shortLabel} מדי: ${M} ${O} ${N}${K.minimum.toString()} ${z.unit}`;return`${z?.shortLabel??"קטן"} מדי: ${M} ${O} ${N}${K.minimum.toString()}`}case"invalid_format":{let z=K;if(z.format==="starts_with")return`המחרוזת חייבת להתחיל ב "${z.prefix}"`;if(z.format==="ends_with")return`המחרוזת חייבת להסתיים ב "${z.suffix}"`;if(z.format==="includes")return`המחרוזת חייבת לכלול "${z.includes}"`;if(z.format==="regex")return`המחרוזת חייבת להתאים לתבנית ${z.pattern}`;let M=W[z.format],N=M?.label??z.format,O=(M?.gender??"m")==="f"?"תקינה":"תקין";return`${N} לא ${O}`}case"not_multiple_of":return`מספר לא תקין: חייב להיות מכפלה של ${K.divisor}`;case"unrecognized_keys":return`מפתח${K.keys.length>1?"ות":""} לא מזוה${K.keys.length>1?"ים":"ה"}: ${F(K.keys,", ")}`;case"invalid_key":return"שדה לא תקין באובייקט";case"invalid_union":return"קלט לא תקין";case"invalid_element":return`ערך לא תקין ב${X(K.origin??"array")}`;default:return"קלט לא תקין"}}};function yv(){return{localeError:mv()}}var lv=()=>{let Y={string:{unit:"karakter",verb:"legyen"},file:{unit:"byte",verb:"legyen"},array:{unit:"elem",verb:"legyen"},set:{unit:"elem",verb:"legyen"}};function J(X){return Y[X]??null}let Q={regex:"bemenet",email:"email cím",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO időbélyeg",date:"ISO dátum",time:"ISO idő",duration:"ISO időintervallum",ipv4:"IPv4 cím",ipv6:"IPv6 cím",cidrv4:"IPv4 tartomány",cidrv6:"IPv6 tartomány",base64:"base64-kódolt string",base64url:"base64url-kódolt string",json_string:"JSON string",e164:"E.164 szám",jwt:"JWT",template_literal:"bemenet"},q={nan:"NaN",number:"szám",array:"tömb"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Érvénytelen bemenet: a várt érték instanceof ${X.expected}, a kapott érték ${W}`;return`Érvénytelen bemenet: a várt érték ${G}, a kapott érték ${W}`}case"invalid_value":if(X.values.length===1)return`Érvénytelen bemenet: a várt érték ${J0(X.values[0])}`;return`Érvénytelen opció: valamelyik érték várt ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Túl nagy: ${X.origin??"érték"} mérete túl nagy ${G}${X.maximum.toString()} ${$.unit??"elem"}`;return`Túl nagy: a bemeneti érték ${X.origin??"érték"} túl nagy: ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Túl kicsi: a bemeneti érték ${X.origin} mérete túl kicsi ${G}${X.minimum.toString()} ${$.unit}`;return`Túl kicsi: a bemeneti érték ${X.origin} túl kicsi ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Érvénytelen string: "${G.prefix}" értékkel kell kezdődnie`;if(G.format==="ends_with")return`Érvénytelen string: "${G.suffix}" értékkel kell végződnie`;if(G.format==="includes")return`Érvénytelen string: "${G.includes}" értéket kell tartalmaznia`;if(G.format==="regex")return`Érvénytelen string: ${G.pattern} mintának kell megfelelnie`;return`Érvénytelen ${Q[G.format]??X.format}`}case"not_multiple_of":return`Érvénytelen szám: ${X.divisor} többszörösének kell lennie`;case"unrecognized_keys":return`Ismeretlen kulcs${X.keys.length>1?"s":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Érvénytelen kulcs ${X.origin}`;case"invalid_union":return"Érvénytelen bemenet";case"invalid_element":return`Érvénytelen érték: ${X.origin}`;default:return"Érvénytelen bemenet"}}};function uv(){return{localeError:lv()}}function VN(Y,J,Q){return Math.abs(Y)===1?J:Q}function CQ(Y){if(!Y)return"";let J=["ա","ե","ը","ի","ո","ու","օ"],Q=Y[Y.length-1];return Y+(J.includes(Q)?"ն":"ը")}var cv=()=>{let Y={string:{unit:{one:"նշան",many:"նշաններ"},verb:"ունենալ"},file:{unit:{one:"բայթ",many:"բայթեր"},verb:"ունենալ"},array:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"},set:{unit:{one:"տարր",many:"տարրեր"},verb:"ունենալ"}};function J(X){return Y[X]??null}let Q={regex:"մուտք",email:"էլ. հասցե",url:"URL",emoji:"էմոջի",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO ամսաթիվ և ժամ",date:"ISO ամսաթիվ",time:"ISO ժամ",duration:"ISO տևողություն",ipv4:"IPv4 հասցե",ipv6:"IPv6 հասցե",cidrv4:"IPv4 միջակայք",cidrv6:"IPv6 միջակայք",base64:"base64 ձևաչափով տող",base64url:"base64url ձևաչափով տող",json_string:"JSON տող",e164:"E.164 համար",jwt:"JWT",template_literal:"մուտք"},q={nan:"NaN",number:"թիվ",array:"զանգված"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Սխալ մուտքագրում․ սպասվում էր instanceof ${X.expected}, ստացվել է ${W}`;return`Սխալ մուտքագրում․ սպասվում էր ${G}, ստացվել է ${W}`}case"invalid_value":if(X.values.length===1)return`Սխալ մուտքագրում․ սպասվում էր ${J0(X.values[1])}`;return`Սխալ տարբերակ․ սպասվում էր հետևյալներից մեկը՝ ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($){let W=Number(X.maximum),j=VN(W,$.unit.one,$.unit.many);return`Չափազանց մեծ արժեք․ սպասվում է, որ ${CQ(X.origin??"արժեք")} կունենա ${G}${X.maximum.toString()} ${j}`}return`Չափազանց մեծ արժեք․ սպասվում է, որ ${CQ(X.origin??"արժեք")} լինի ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($){let W=Number(X.minimum),j=VN(W,$.unit.one,$.unit.many);return`Չափազանց փոքր արժեք․ սպասվում է, որ ${CQ(X.origin)} կունենա ${G}${X.minimum.toString()} ${j}`}return`Չափազանց փոքր արժեք․ սպասվում է, որ ${CQ(X.origin)} լինի ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Սխալ տող․ պետք է սկսվի "${G.prefix}"-ով`;if(G.format==="ends_with")return`Սխալ տող․ պետք է ավարտվի "${G.suffix}"-ով`;if(G.format==="includes")return`Սխալ տող․ պետք է պարունակի "${G.includes}"`;if(G.format==="regex")return`Սխալ տող․ պետք է համապատասխանի ${G.pattern} ձևաչափին`;return`Սխալ ${Q[G.format]??X.format}`}case"not_multiple_of":return`Սխալ թիվ․ պետք է բազմապատիկ լինի ${X.divisor}-ի`;case"unrecognized_keys":return`Չճանաչված բանալի${X.keys.length>1?"ներ":""}. ${F(X.keys,", ")}`;case"invalid_key":return`Սխալ բանալի ${CQ(X.origin)}-ում`;case"invalid_union":return"Սխալ մուտքագրում";case"invalid_element":return`Սխալ արժեք ${CQ(X.origin)}-ում`;default:return"Սխալ մուտքագրում"}}};function bv(){return{localeError:cv()}}var pv=()=>{let Y={string:{unit:"karakter",verb:"memiliki"},file:{unit:"byte",verb:"memiliki"},array:{unit:"item",verb:"memiliki"},set:{unit:"item",verb:"memiliki"}};function J(X){return Y[X]??null}let Q={regex:"input",email:"alamat email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tanggal dan waktu format ISO",date:"tanggal format ISO",time:"jam format ISO",duration:"durasi format ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"rentang alamat IPv4",cidrv6:"rentang alamat IPv6",base64:"string dengan enkode base64",base64url:"string dengan enkode base64url",json_string:"string JSON",e164:"angka E.164",jwt:"JWT",template_literal:"input"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Input tidak valid: diharapkan instanceof ${X.expected}, diterima ${W}`;return`Input tidak valid: diharapkan ${G}, diterima ${W}`}case"invalid_value":if(X.values.length===1)return`Input tidak valid: diharapkan ${J0(X.values[0])}`;return`Pilihan tidak valid: diharapkan salah satu dari ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Terlalu besar: diharapkan ${X.origin??"value"} memiliki ${G}${X.maximum.toString()} ${$.unit??"elemen"}`;return`Terlalu besar: diharapkan ${X.origin??"value"} menjadi ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Terlalu kecil: diharapkan ${X.origin} memiliki ${G}${X.minimum.toString()} ${$.unit}`;return`Terlalu kecil: diharapkan ${X.origin} menjadi ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`String tidak valid: harus dimulai dengan "${G.prefix}"`;if(G.format==="ends_with")return`String tidak valid: harus berakhir dengan "${G.suffix}"`;if(G.format==="includes")return`String tidak valid: harus menyertakan "${G.includes}"`;if(G.format==="regex")return`String tidak valid: harus sesuai pola ${G.pattern}`;return`${Q[G.format]??X.format} tidak valid`}case"not_multiple_of":return`Angka tidak valid: harus kelipatan dari ${X.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali ${X.keys.length>1?"s":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Kunci tidak valid di ${X.origin}`;case"invalid_union":return"Input tidak valid";case"invalid_element":return`Nilai tidak valid di ${X.origin}`;default:return"Input tidak valid"}}};function ov(){return{localeError:pv()}}var dv=()=>{let Y={string:{unit:"stafi",verb:"að hafa"},file:{unit:"bæti",verb:"að hafa"},array:{unit:"hluti",verb:"að hafa"},set:{unit:"hluti",verb:"að hafa"}};function J(X){return Y[X]??null}let Q={regex:"gildi",email:"netfang",url:"vefslóð",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dagsetning og tími",date:"ISO dagsetning",time:"ISO tími",duration:"ISO tímalengd",ipv4:"IPv4 address",ipv6:"IPv6 address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded strengur",base64url:"base64url-encoded strengur",json_string:"JSON strengur",e164:"E.164 tölugildi",jwt:"JWT",template_literal:"gildi"},q={nan:"NaN",number:"númer",array:"fylki"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Rangt gildi: Þú slóst inn ${W} þar sem á að vera instanceof ${X.expected}`;return`Rangt gildi: Þú slóst inn ${W} þar sem á að vera ${G}`}case"invalid_value":if(X.values.length===1)return`Rangt gildi: gert ráð fyrir ${J0(X.values[0])}`;return`Ógilt val: má vera eitt af eftirfarandi ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Of stórt: gert er ráð fyrir að ${X.origin??"gildi"} hafi ${G}${X.maximum.toString()} ${$.unit??"hluti"}`;return`Of stórt: gert er ráð fyrir að ${X.origin??"gildi"} sé ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Of lítið: gert er ráð fyrir að ${X.origin} hafi ${G}${X.minimum.toString()} ${$.unit}`;return`Of lítið: gert er ráð fyrir að ${X.origin} sé ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Ógildur strengur: verður að byrja á "${G.prefix}"`;if(G.format==="ends_with")return`Ógildur strengur: verður að enda á "${G.suffix}"`;if(G.format==="includes")return`Ógildur strengur: verður að innihalda "${G.includes}"`;if(G.format==="regex")return`Ógildur strengur: verður að fylgja mynstri ${G.pattern}`;return`Rangt ${Q[G.format]??X.format}`}case"not_multiple_of":return`Röng tala: verður að vera margfeldi af ${X.divisor}`;case"unrecognized_keys":return`Óþekkt ${X.keys.length>1?"ir lyklar":"ur lykill"}: ${F(X.keys,", ")}`;case"invalid_key":return`Rangur lykill í ${X.origin}`;case"invalid_union":return"Rangt gildi";case"invalid_element":return`Rangt gildi í ${X.origin}`;default:return"Rangt gildi"}}};function rv(){return{localeError:dv()}}var sv=()=>{let Y={string:{unit:"caratteri",verb:"avere"},file:{unit:"byte",verb:"avere"},array:{unit:"elementi",verb:"avere"},set:{unit:"elementi",verb:"avere"}};function J(X){return Y[X]??null}let Q={regex:"input",email:"indirizzo email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e ora ISO",date:"data ISO",time:"ora ISO",duration:"durata ISO",ipv4:"indirizzo IPv4",ipv6:"indirizzo IPv6",cidrv4:"intervallo IPv4",cidrv6:"intervallo IPv6",base64:"stringa codificata in base64",base64url:"URL codificata in base64",json_string:"stringa JSON",e164:"numero E.164",jwt:"JWT",template_literal:"input"},q={nan:"NaN",number:"numero",array:"vettore"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Input non valido: atteso instanceof ${X.expected}, ricevuto ${W}`;return`Input non valido: atteso ${G}, ricevuto ${W}`}case"invalid_value":if(X.values.length===1)return`Input non valido: atteso ${J0(X.values[0])}`;return`Opzione non valida: atteso uno tra ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Troppo grande: ${X.origin??"valore"} deve avere ${G}${X.maximum.toString()} ${$.unit??"elementi"}`;return`Troppo grande: ${X.origin??"valore"} deve essere ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Troppo piccolo: ${X.origin} deve avere ${G}${X.minimum.toString()} ${$.unit}`;return`Troppo piccolo: ${X.origin} deve essere ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Stringa non valida: deve iniziare con "${G.prefix}"`;if(G.format==="ends_with")return`Stringa non valida: deve terminare con "${G.suffix}"`;if(G.format==="includes")return`Stringa non valida: deve includere "${G.includes}"`;if(G.format==="regex")return`Stringa non valida: deve corrispondere al pattern ${G.pattern}`;return`Invalid ${Q[G.format]??X.format}`}case"not_multiple_of":return`Numero non valido: deve essere un multiplo di ${X.divisor}`;case"unrecognized_keys":return`Chiav${X.keys.length>1?"i":"e"} non riconosciut${X.keys.length>1?"e":"a"}: ${F(X.keys,", ")}`;case"invalid_key":return`Chiave non valida in ${X.origin}`;case"invalid_union":return"Input non valido";case"invalid_element":return`Valore non valido in ${X.origin}`;default:return"Input non valido"}}};function iv(){return{localeError:sv()}}var tv=()=>{let Y={string:{unit:"文字",verb:"である"},file:{unit:"バイト",verb:"である"},array:{unit:"要素",verb:"である"},set:{unit:"要素",verb:"である"}};function J(X){return Y[X]??null}let Q={regex:"入力値",email:"メールアドレス",url:"URL",emoji:"絵文字",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日時",date:"ISO日付",time:"ISO時刻",duration:"ISO期間",ipv4:"IPv4アドレス",ipv6:"IPv6アドレス",cidrv4:"IPv4範囲",cidrv6:"IPv6範囲",base64:"base64エンコード文字列",base64url:"base64urlエンコード文字列",json_string:"JSON文字列",e164:"E.164番号",jwt:"JWT",template_literal:"入力値"},q={nan:"NaN",number:"数値",array:"配列"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`無効な入力: instanceof ${X.expected}が期待されましたが、${W}が入力されました`;return`無効な入力: ${G}が期待されましたが、${W}が入力されました`}case"invalid_value":if(X.values.length===1)return`無効な入力: ${J0(X.values[0])}が期待されました`;return`無効な選択: ${F(X.values,"、")}のいずれかである必要があります`;case"too_big":{let G=X.inclusive?"以下である":"より小さい",$=J(X.origin);if($)return`大きすぎる値: ${X.origin??"値"}は${X.maximum.toString()}${$.unit??"要素"}${G}必要があります`;return`大きすぎる値: ${X.origin??"値"}は${X.maximum.toString()}${G}必要があります`}case"too_small":{let G=X.inclusive?"以上である":"より大きい",$=J(X.origin);if($)return`小さすぎる値: ${X.origin}は${X.minimum.toString()}${$.unit}${G}必要があります`;return`小さすぎる値: ${X.origin}は${X.minimum.toString()}${G}必要があります`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`無効な文字列: "${G.prefix}"で始まる必要があります`;if(G.format==="ends_with")return`無効な文字列: "${G.suffix}"で終わる必要があります`;if(G.format==="includes")return`無効な文字列: "${G.includes}"を含む必要があります`;if(G.format==="regex")return`無効な文字列: パターン${G.pattern}に一致する必要があります`;return`無効な${Q[G.format]??X.format}`}case"not_multiple_of":return`無効な数値: ${X.divisor}の倍数である必要があります`;case"unrecognized_keys":return`認識されていないキー${X.keys.length>1?"群":""}: ${F(X.keys,"、")}`;case"invalid_key":return`${X.origin}内の無効なキー`;case"invalid_union":return"無効な入力";case"invalid_element":return`${X.origin}内の無効な値`;default:return"無効な入力"}}};function nv(){return{localeError:tv()}}var av=()=>{let Y={string:{unit:"სიმბოლო",verb:"უნდა შეიცავდეს"},file:{unit:"ბაიტი",verb:"უნდა შეიცავდეს"},array:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"},set:{unit:"ელემენტი",verb:"უნდა შეიცავდეს"}};function J(X){return Y[X]??null}let Q={regex:"შეყვანა",email:"ელ-ფოსტის მისამართი",url:"URL",emoji:"ემოჯი",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"თარიღი-დრო",date:"თარიღი",time:"დრო",duration:"ხანგრძლივობა",ipv4:"IPv4 მისამართი",ipv6:"IPv6 მისამართი",cidrv4:"IPv4 დიაპაზონი",cidrv6:"IPv6 დიაპაზონი",base64:"base64-კოდირებული სტრინგი",base64url:"base64url-კოდირებული სტრინგი",json_string:"JSON სტრინგი",e164:"E.164 ნომერი",jwt:"JWT",template_literal:"შეყვანა"},q={nan:"NaN",number:"რიცხვი",string:"სტრინგი",boolean:"ბულეანი",function:"ფუნქცია",array:"მასივი"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`არასწორი შეყვანა: მოსალოდნელი instanceof ${X.expected}, მიღებული ${W}`;return`არასწორი შეყვანა: მოსალოდნელი ${G}, მიღებული ${W}`}case"invalid_value":if(X.values.length===1)return`არასწორი შეყვანა: მოსალოდნელი ${J0(X.values[0])}`;return`არასწორი ვარიანტი: მოსალოდნელია ერთ-ერთი ${F(X.values,"|")}-დან`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`ზედმეტად დიდი: მოსალოდნელი ${X.origin??"მნიშვნელობა"} ${$.verb} ${G}${X.maximum.toString()} ${$.unit}`;return`ზედმეტად დიდი: მოსალოდნელი ${X.origin??"მნიშვნელობა"} იყოს ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`ზედმეტად პატარა: მოსალოდნელი ${X.origin} ${$.verb} ${G}${X.minimum.toString()} ${$.unit}`;return`ზედმეტად პატარა: მოსალოდნელი ${X.origin} იყოს ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`არასწორი სტრინგი: უნდა იწყებოდეს "${G.prefix}"-ით`;if(G.format==="ends_with")return`არასწორი სტრინგი: უნდა მთავრდებოდეს "${G.suffix}"-ით`;if(G.format==="includes")return`არასწორი სტრინგი: უნდა შეიცავდეს "${G.includes}"-ს`;if(G.format==="regex")return`არასწორი სტრინგი: უნდა შეესაბამებოდეს შაბლონს ${G.pattern}`;return`არასწორი ${Q[G.format]??X.format}`}case"not_multiple_of":return`არასწორი რიცხვი: უნდა იყოს ${X.divisor}-ის ჯერადი`;case"unrecognized_keys":return`უცნობი გასაღებ${X.keys.length>1?"ები":"ი"}: ${F(X.keys,", ")}`;case"invalid_key":return`არასწორი გასაღები ${X.origin}-ში`;case"invalid_union":return"არასწორი შეყვანა";case"invalid_element":return`არასწორი მნიშვნელობა ${X.origin}-ში`;default:return"არასწორი შეყვანა"}}};function ev(){return{localeError:av()}}var Y_=()=>{let Y={string:{unit:"តួអក្សរ",verb:"គួរមាន"},file:{unit:"បៃ",verb:"គួរមាន"},array:{unit:"ធាតុ",verb:"គួរមាន"},set:{unit:"ធាតុ",verb:"គួរមាន"}};function J(X){return Y[X]??null}let Q={regex:"ទិន្នន័យបញ្ចូល",email:"អាសយដ្ឋានអ៊ីមែល",url:"URL",emoji:"សញ្ញាអារម្មណ៍",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"កាលបរិច្ឆេទ និងម៉ោង ISO",date:"កាលបរិច្ឆេទ ISO",time:"ម៉ោង ISO",duration:"រយៈពេល ISO",ipv4:"អាសយដ្ឋាន IPv4",ipv6:"អាសយដ្ឋាន IPv6",cidrv4:"ដែនអាសយដ្ឋាន IPv4",cidrv6:"ដែនអាសយដ្ឋាន IPv6",base64:"ខ្សែអក្សរអ៊ិកូដ base64",base64url:"ខ្សែអក្សរអ៊ិកូដ base64url",json_string:"ខ្សែអក្សរ JSON",e164:"លេខ E.164",jwt:"JWT",template_literal:"ទិន្នន័យបញ្ចូល"},q={nan:"NaN",number:"លេខ",array:"អារេ (Array)",null:"គ្មានតម្លៃ (null)"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ instanceof ${X.expected} ប៉ុន្តែទទួលបាន ${W}`;return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${G} ប៉ុន្តែទទួលបាន ${W}`}case"invalid_value":if(X.values.length===1)return`ទិន្នន័យបញ្ចូលមិនត្រឹមត្រូវ៖ ត្រូវការ ${J0(X.values[0])}`;return`ជម្រើសមិនត្រឹមត្រូវ៖ ត្រូវជាមួយក្នុងចំណោម ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`ធំពេក៖ ត្រូវការ ${X.origin??"តម្លៃ"} ${G} ${X.maximum.toString()} ${$.unit??"ធាតុ"}`;return`ធំពេក៖ ត្រូវការ ${X.origin??"តម្លៃ"} ${G} ${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`តូចពេក៖ ត្រូវការ ${X.origin} ${G} ${X.minimum.toString()} ${$.unit}`;return`តូចពេក៖ ត្រូវការ ${X.origin} ${G} ${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវចាប់ផ្តើមដោយ "${G.prefix}"`;if(G.format==="ends_with")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវបញ្ចប់ដោយ "${G.suffix}"`;if(G.format==="includes")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវមាន "${G.includes}"`;if(G.format==="regex")return`ខ្សែអក្សរមិនត្រឹមត្រូវ៖ ត្រូវតែផ្គូផ្គងនឹងទម្រង់ដែលបានកំណត់ ${G.pattern}`;return`មិនត្រឹមត្រូវ៖ ${Q[G.format]??X.format}`}case"not_multiple_of":return`លេខមិនត្រឹមត្រូវ៖ ត្រូវតែជាពហុគុណនៃ ${X.divisor}`;case"unrecognized_keys":return`រកឃើញសោមិនស្គាល់៖ ${F(X.keys,", ")}`;case"invalid_key":return`សោមិនត្រឹមត្រូវនៅក្នុង ${X.origin}`;case"invalid_union":return"ទិន្នន័យមិនត្រឹមត្រូវ";case"invalid_element":return`ទិន្នន័យមិនត្រឹមត្រូវនៅក្នុង ${X.origin}`;default:return"ទិន្នន័យមិនត្រឹមត្រូវ"}}};function $B(){return{localeError:Y_()}}function J_(){return $B()}var Q_=()=>{let Y={string:{unit:"문자",verb:"to have"},file:{unit:"바이트",verb:"to have"},array:{unit:"개",verb:"to have"},set:{unit:"개",verb:"to have"}};function J(X){return Y[X]??null}let Q={regex:"입력",email:"이메일 주소",url:"URL",emoji:"이모지",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 날짜시간",date:"ISO 날짜",time:"ISO 시간",duration:"ISO 기간",ipv4:"IPv4 주소",ipv6:"IPv6 주소",cidrv4:"IPv4 범위",cidrv6:"IPv6 범위",base64:"base64 인코딩 문자열",base64url:"base64url 인코딩 문자열",json_string:"JSON 문자열",e164:"E.164 번호",jwt:"JWT",template_literal:"입력"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`잘못된 입력: 예상 타입은 instanceof ${X.expected}, 받은 타입은 ${W}입니다`;return`잘못된 입력: 예상 타입은 ${G}, 받은 타입은 ${W}입니다`}case"invalid_value":if(X.values.length===1)return`잘못된 입력: 값은 ${J0(X.values[0])} 이어야 합니다`;return`잘못된 옵션: ${F(X.values,"또는 ")} 중 하나여야 합니다`;case"too_big":{let G=X.inclusive?"이하":"미만",$=G==="미만"?"이어야 합니다":"여야 합니다",W=J(X.origin),j=W?.unit??"요소";if(W)return`${X.origin??"값"}이 너무 큽니다: ${X.maximum.toString()}${j} ${G}${$}`;return`${X.origin??"값"}이 너무 큽니다: ${X.maximum.toString()} ${G}${$}`}case"too_small":{let G=X.inclusive?"이상":"초과",$=G==="이상"?"이어야 합니다":"여야 합니다",W=J(X.origin),j=W?.unit??"요소";if(W)return`${X.origin??"값"}이 너무 작습니다: ${X.minimum.toString()}${j} ${G}${$}`;return`${X.origin??"값"}이 너무 작습니다: ${X.minimum.toString()} ${G}${$}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`잘못된 문자열: "${G.prefix}"(으)로 시작해야 합니다`;if(G.format==="ends_with")return`잘못된 문자열: "${G.suffix}"(으)로 끝나야 합니다`;if(G.format==="includes")return`잘못된 문자열: "${G.includes}"을(를) 포함해야 합니다`;if(G.format==="regex")return`잘못된 문자열: 정규식 ${G.pattern} 패턴과 일치해야 합니다`;return`잘못된 ${Q[G.format]??X.format}`}case"not_multiple_of":return`잘못된 숫자: ${X.divisor}의 배수여야 합니다`;case"unrecognized_keys":return`인식할 수 없는 키: ${F(X.keys,", ")}`;case"invalid_key":return`잘못된 키: ${X.origin}`;case"invalid_union":return"잘못된 입력";case"invalid_element":return`잘못된 값: ${X.origin}`;default:return"잘못된 입력"}}};function X_(){return{localeError:Q_()}}var fX=(Y)=>{return Y.charAt(0).toUpperCase()+Y.slice(1)};function LN(Y){let J=Math.abs(Y),Q=J%10,q=J%100;if(q>=11&&q<=19||Q===0)return"many";if(Q===1)return"one";return"few"}var q_=()=>{let Y={string:{unit:{one:"simbolis",few:"simboliai",many:"simbolių"},verb:{smaller:{inclusive:"turi būti ne ilgesnė kaip",notInclusive:"turi būti trumpesnė kaip"},bigger:{inclusive:"turi būti ne trumpesnė kaip",notInclusive:"turi būti ilgesnė kaip"}}},file:{unit:{one:"baitas",few:"baitai",many:"baitų"},verb:{smaller:{inclusive:"turi būti ne didesnis kaip",notInclusive:"turi būti mažesnis kaip"},bigger:{inclusive:"turi būti ne mažesnis kaip",notInclusive:"turi būti didesnis kaip"}}},array:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}},set:{unit:{one:"elementą",few:"elementus",many:"elementų"},verb:{smaller:{inclusive:"turi turėti ne daugiau kaip",notInclusive:"turi turėti mažiau kaip"},bigger:{inclusive:"turi turėti ne mažiau kaip",notInclusive:"turi turėti daugiau kaip"}}}};function J(X,G,$,W){let j=Y[X]??null;if(j===null)return j;return{unit:j.unit[G],verb:j.verb[W][$?"inclusive":"notInclusive"]}}let Q={regex:"įvestis",email:"el. pašto adresas",url:"URL",emoji:"jaustukas",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO data ir laikas",date:"ISO data",time:"ISO laikas",duration:"ISO trukmė",ipv4:"IPv4 adresas",ipv6:"IPv6 adresas",cidrv4:"IPv4 tinklo prefiksas (CIDR)",cidrv6:"IPv6 tinklo prefiksas (CIDR)",base64:"base64 užkoduota eilutė",base64url:"base64url užkoduota eilutė",json_string:"JSON eilutė",e164:"E.164 numeris",jwt:"JWT",template_literal:"įvestis"},q={nan:"NaN",number:"skaičius",bigint:"sveikasis skaičius",string:"eilutė",boolean:"loginė reikšmė",undefined:"neapibrėžta reikšmė",function:"funkcija",symbol:"simbolis",array:"masyvas",object:"objektas",null:"nulinė reikšmė"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Gautas tipas ${W}, o tikėtasi - instanceof ${X.expected}`;return`Gautas tipas ${W}, o tikėtasi - ${G}`}case"invalid_value":if(X.values.length===1)return`Privalo būti ${J0(X.values[0])}`;return`Privalo būti vienas iš ${F(X.values,"|")} pasirinkimų`;case"too_big":{let G=q[X.origin]??X.origin,$=J(X.origin,LN(Number(X.maximum)),X.inclusive??!1,"smaller");if($?.verb)return`${fX(G??X.origin??"reikšmė")} ${$.verb} ${X.maximum.toString()} ${$.unit??"elementų"}`;let W=X.inclusive?"ne didesnis kaip":"mažesnis kaip";return`${fX(G??X.origin??"reikšmė")} turi būti ${W} ${X.maximum.toString()} ${$?.unit}`}case"too_small":{let G=q[X.origin]??X.origin,$=J(X.origin,LN(Number(X.minimum)),X.inclusive??!1,"bigger");if($?.verb)return`${fX(G??X.origin??"reikšmė")} ${$.verb} ${X.minimum.toString()} ${$.unit??"elementų"}`;let W=X.inclusive?"ne mažesnis kaip":"didesnis kaip";return`${fX(G??X.origin??"reikšmė")} turi būti ${W} ${X.minimum.toString()} ${$?.unit}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Eilutė privalo prasidėti "${G.prefix}"`;if(G.format==="ends_with")return`Eilutė privalo pasibaigti "${G.suffix}"`;if(G.format==="includes")return`Eilutė privalo įtraukti "${G.includes}"`;if(G.format==="regex")return`Eilutė privalo atitikti ${G.pattern}`;return`Neteisingas ${Q[G.format]??X.format}`}case"not_multiple_of":return`Skaičius privalo būti ${X.divisor} kartotinis.`;case"unrecognized_keys":return`Neatpažint${X.keys.length>1?"i":"as"} rakt${X.keys.length>1?"ai":"as"}: ${F(X.keys,", ")}`;case"invalid_key":return"Rastas klaidingas raktas";case"invalid_union":return"Klaidinga įvestis";case"invalid_element":{let G=q[X.origin]??X.origin;return`${fX(G??X.origin??"reikšmė")} turi klaidingą įvestį`}default:return"Klaidinga įvestis"}}};function G_(){return{localeError:q_()}}var $_=()=>{let Y={string:{unit:"знаци",verb:"да имаат"},file:{unit:"бајти",verb:"да имаат"},array:{unit:"ставки",verb:"да имаат"},set:{unit:"ставки",verb:"да имаат"}};function J(X){return Y[X]??null}let Q={regex:"внес",email:"адреса на е-пошта",url:"URL",emoji:"емоџи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO датум и време",date:"ISO датум",time:"ISO време",duration:"ISO времетраење",ipv4:"IPv4 адреса",ipv6:"IPv6 адреса",cidrv4:"IPv4 опсег",cidrv6:"IPv6 опсег",base64:"base64-енкодирана низа",base64url:"base64url-енкодирана низа",json_string:"JSON низа",e164:"E.164 број",jwt:"JWT",template_literal:"внес"},q={nan:"NaN",number:"број",array:"низа"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Грешен внес: се очекува instanceof ${X.expected}, примено ${W}`;return`Грешен внес: се очекува ${G}, примено ${W}`}case"invalid_value":if(X.values.length===1)return`Invalid input: expected ${J0(X.values[0])}`;return`Грешана опција: се очекува една ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Премногу голем: се очекува ${X.origin??"вредноста"} да има ${G}${X.maximum.toString()} ${$.unit??"елементи"}`;return`Премногу голем: се очекува ${X.origin??"вредноста"} да биде ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Премногу мал: се очекува ${X.origin} да има ${G}${X.minimum.toString()} ${$.unit}`;return`Премногу мал: се очекува ${X.origin} да биде ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Неважечка низа: мора да започнува со "${G.prefix}"`;if(G.format==="ends_with")return`Неважечка низа: мора да завршува со "${G.suffix}"`;if(G.format==="includes")return`Неважечка низа: мора да вклучува "${G.includes}"`;if(G.format==="regex")return`Неважечка низа: мора да одгоара на патернот ${G.pattern}`;return`Invalid ${Q[G.format]??X.format}`}case"not_multiple_of":return`Грешен број: мора да биде делив со ${X.divisor}`;case"unrecognized_keys":return`${X.keys.length>1?"Непрепознаени клучеви":"Непрепознаен клуч"}: ${F(X.keys,", ")}`;case"invalid_key":return`Грешен клуч во ${X.origin}`;case"invalid_union":return"Грешен внес";case"invalid_element":return`Грешна вредност во ${X.origin}`;default:return"Грешен внес"}}};function W_(){return{localeError:$_()}}var j_=()=>{let Y={string:{unit:"aksara",verb:"mempunyai"},file:{unit:"bait",verb:"mempunyai"},array:{unit:"elemen",verb:"mempunyai"},set:{unit:"elemen",verb:"mempunyai"}};function J(X){return Y[X]??null}let Q={regex:"input",email:"alamat e-mel",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"tarikh masa ISO",date:"tarikh ISO",time:"masa ISO",duration:"tempoh ISO",ipv4:"alamat IPv4",ipv6:"alamat IPv6",cidrv4:"julat IPv4",cidrv6:"julat IPv6",base64:"string dikodkan base64",base64url:"string dikodkan base64url",json_string:"string JSON",e164:"nombor E.164",jwt:"JWT",template_literal:"input"},q={nan:"NaN",number:"nombor"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Input tidak sah: dijangka instanceof ${X.expected}, diterima ${W}`;return`Input tidak sah: dijangka ${G}, diterima ${W}`}case"invalid_value":if(X.values.length===1)return`Input tidak sah: dijangka ${J0(X.values[0])}`;return`Pilihan tidak sah: dijangka salah satu daripada ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Terlalu besar: dijangka ${X.origin??"nilai"} ${$.verb} ${G}${X.maximum.toString()} ${$.unit??"elemen"}`;return`Terlalu besar: dijangka ${X.origin??"nilai"} adalah ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Terlalu kecil: dijangka ${X.origin} ${$.verb} ${G}${X.minimum.toString()} ${$.unit}`;return`Terlalu kecil: dijangka ${X.origin} adalah ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`String tidak sah: mesti bermula dengan "${G.prefix}"`;if(G.format==="ends_with")return`String tidak sah: mesti berakhir dengan "${G.suffix}"`;if(G.format==="includes")return`String tidak sah: mesti mengandungi "${G.includes}"`;if(G.format==="regex")return`String tidak sah: mesti sepadan dengan corak ${G.pattern}`;return`${Q[G.format]??X.format} tidak sah`}case"not_multiple_of":return`Nombor tidak sah: perlu gandaan ${X.divisor}`;case"unrecognized_keys":return`Kunci tidak dikenali: ${F(X.keys,", ")}`;case"invalid_key":return`Kunci tidak sah dalam ${X.origin}`;case"invalid_union":return"Input tidak sah";case"invalid_element":return`Nilai tidak sah dalam ${X.origin}`;default:return"Input tidak sah"}}};function K_(){return{localeError:j_()}}var z_=()=>{let Y={string:{unit:"tekens",verb:"heeft"},file:{unit:"bytes",verb:"heeft"},array:{unit:"elementen",verb:"heeft"},set:{unit:"elementen",verb:"heeft"}};function J(X){return Y[X]??null}let Q={regex:"invoer",email:"emailadres",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum en tijd",date:"ISO datum",time:"ISO tijd",duration:"ISO duur",ipv4:"IPv4-adres",ipv6:"IPv6-adres",cidrv4:"IPv4-bereik",cidrv6:"IPv6-bereik",base64:"base64-gecodeerde tekst",base64url:"base64 URL-gecodeerde tekst",json_string:"JSON string",e164:"E.164-nummer",jwt:"JWT",template_literal:"invoer"},q={nan:"NaN",number:"getal"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Ongeldige invoer: verwacht instanceof ${X.expected}, ontving ${W}`;return`Ongeldige invoer: verwacht ${G}, ontving ${W}`}case"invalid_value":if(X.values.length===1)return`Ongeldige invoer: verwacht ${J0(X.values[0])}`;return`Ongeldige optie: verwacht één van ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin),W=X.origin==="date"?"laat":X.origin==="string"?"lang":"groot";if($)return`Te ${W}: verwacht dat ${X.origin??"waarde"} ${G}${X.maximum.toString()} ${$.unit??"elementen"} ${$.verb}`;return`Te ${W}: verwacht dat ${X.origin??"waarde"} ${G}${X.maximum.toString()} is`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin),W=X.origin==="date"?"vroeg":X.origin==="string"?"kort":"klein";if($)return`Te ${W}: verwacht dat ${X.origin} ${G}${X.minimum.toString()} ${$.unit} ${$.verb}`;return`Te ${W}: verwacht dat ${X.origin} ${G}${X.minimum.toString()} is`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Ongeldige tekst: moet met "${G.prefix}" beginnen`;if(G.format==="ends_with")return`Ongeldige tekst: moet op "${G.suffix}" eindigen`;if(G.format==="includes")return`Ongeldige tekst: moet "${G.includes}" bevatten`;if(G.format==="regex")return`Ongeldige tekst: moet overeenkomen met patroon ${G.pattern}`;return`Ongeldig: ${Q[G.format]??X.format}`}case"not_multiple_of":return`Ongeldig getal: moet een veelvoud van ${X.divisor} zijn`;case"unrecognized_keys":return`Onbekende key${X.keys.length>1?"s":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Ongeldige key in ${X.origin}`;case"invalid_union":return"Ongeldige invoer";case"invalid_element":return`Ongeldige waarde in ${X.origin}`;default:return"Ongeldige invoer"}}};function M_(){return{localeError:z_()}}var N_=()=>{let Y={string:{unit:"tegn",verb:"å ha"},file:{unit:"bytes",verb:"å ha"},array:{unit:"elementer",verb:"å inneholde"},set:{unit:"elementer",verb:"å inneholde"}};function J(X){return Y[X]??null}let Q={regex:"input",email:"e-postadresse",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO dato- og klokkeslett",date:"ISO-dato",time:"ISO-klokkeslett",duration:"ISO-varighet",ipv4:"IPv4-område",ipv6:"IPv6-område",cidrv4:"IPv4-spekter",cidrv6:"IPv6-spekter",base64:"base64-enkodet streng",base64url:"base64url-enkodet streng",json_string:"JSON-streng",e164:"E.164-nummer",jwt:"JWT",template_literal:"input"},q={nan:"NaN",number:"tall",array:"liste"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Ugyldig input: forventet instanceof ${X.expected}, fikk ${W}`;return`Ugyldig input: forventet ${G}, fikk ${W}`}case"invalid_value":if(X.values.length===1)return`Ugyldig verdi: forventet ${J0(X.values[0])}`;return`Ugyldig valg: forventet en av ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`For stor(t): forventet ${X.origin??"value"} til å ha ${G}${X.maximum.toString()} ${$.unit??"elementer"}`;return`For stor(t): forventet ${X.origin??"value"} til å ha ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`For lite(n): forventet ${X.origin} til å ha ${G}${X.minimum.toString()} ${$.unit}`;return`For lite(n): forventet ${X.origin} til å ha ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Ugyldig streng: må starte med "${G.prefix}"`;if(G.format==="ends_with")return`Ugyldig streng: må ende med "${G.suffix}"`;if(G.format==="includes")return`Ugyldig streng: må inneholde "${G.includes}"`;if(G.format==="regex")return`Ugyldig streng: må matche mønsteret ${G.pattern}`;return`Ugyldig ${Q[G.format]??X.format}`}case"not_multiple_of":return`Ugyldig tall: må være et multiplum av ${X.divisor}`;case"unrecognized_keys":return`${X.keys.length>1?"Ukjente nøkler":"Ukjent nøkkel"}: ${F(X.keys,", ")}`;case"invalid_key":return`Ugyldig nøkkel i ${X.origin}`;case"invalid_union":return"Ugyldig input";case"invalid_element":return`Ugyldig verdi i ${X.origin}`;default:return"Ugyldig input"}}};function O_(){return{localeError:N_()}}var D_=()=>{let Y={string:{unit:"harf",verb:"olmalıdır"},file:{unit:"bayt",verb:"olmalıdır"},array:{unit:"unsur",verb:"olmalıdır"},set:{unit:"unsur",verb:"olmalıdır"}};function J(X){return Y[X]??null}let Q={regex:"giren",email:"epostagâh",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO hengâmı",date:"ISO tarihi",time:"ISO zamanı",duration:"ISO müddeti",ipv4:"IPv4 nişânı",ipv6:"IPv6 nişânı",cidrv4:"IPv4 menzili",cidrv6:"IPv6 menzili",base64:"base64-şifreli metin",base64url:"base64url-şifreli metin",json_string:"JSON metin",e164:"E.164 sayısı",jwt:"JWT",template_literal:"giren"},q={nan:"NaN",number:"numara",array:"saf",null:"gayb"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Fâsit giren: umulan instanceof ${X.expected}, alınan ${W}`;return`Fâsit giren: umulan ${G}, alınan ${W}`}case"invalid_value":if(X.values.length===1)return`Fâsit giren: umulan ${J0(X.values[0])}`;return`Fâsit tercih: mûteberler ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Fazla büyük: ${X.origin??"value"}, ${G}${X.maximum.toString()} ${$.unit??"elements"} sahip olmalıydı.`;return`Fazla büyük: ${X.origin??"value"}, ${G}${X.maximum.toString()} olmalıydı.`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Fazla küçük: ${X.origin}, ${G}${X.minimum.toString()} ${$.unit} sahip olmalıydı.`;return`Fazla küçük: ${X.origin}, ${G}${X.minimum.toString()} olmalıydı.`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Fâsit metin: "${G.prefix}" ile başlamalı.`;if(G.format==="ends_with")return`Fâsit metin: "${G.suffix}" ile bitmeli.`;if(G.format==="includes")return`Fâsit metin: "${G.includes}" ihtivâ etmeli.`;if(G.format==="regex")return`Fâsit metin: ${G.pattern} nakşına uymalı.`;return`Fâsit ${Q[G.format]??X.format}`}case"not_multiple_of":return`Fâsit sayı: ${X.divisor} katı olmalıydı.`;case"unrecognized_keys":return`Tanınmayan anahtar ${X.keys.length>1?"s":""}: ${F(X.keys,", ")}`;case"invalid_key":return`${X.origin} için tanınmayan anahtar var.`;case"invalid_union":return"Giren tanınamadı.";case"invalid_element":return`${X.origin} için tanınmayan kıymet var.`;default:return"Kıymet tanınamadı."}}};function U_(){return{localeError:D_()}}var H_=()=>{let Y={string:{unit:"توکي",verb:"ولري"},file:{unit:"بایټس",verb:"ولري"},array:{unit:"توکي",verb:"ولري"},set:{unit:"توکي",verb:"ولري"}};function J(X){return Y[X]??null}let Q={regex:"ورودي",email:"بریښنالیک",url:"یو آر ال",emoji:"ایموجي",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"نیټه او وخت",date:"نېټه",time:"وخت",duration:"موده",ipv4:"د IPv4 پته",ipv6:"د IPv6 پته",cidrv4:"د IPv4 ساحه",cidrv6:"د IPv6 ساحه",base64:"base64-encoded متن",base64url:"base64url-encoded متن",json_string:"JSON متن",e164:"د E.164 شمېره",jwt:"JWT",template_literal:"ورودي"},q={nan:"NaN",number:"عدد",array:"ارې"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`ناسم ورودي: باید instanceof ${X.expected} وای, مګر ${W} ترلاسه شو`;return`ناسم ورودي: باید ${G} وای, مګر ${W} ترلاسه شو`}case"invalid_value":if(X.values.length===1)return`ناسم ورودي: باید ${J0(X.values[0])} وای`;return`ناسم انتخاب: باید یو له ${F(X.values,"|")} څخه وای`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`ډیر لوی: ${X.origin??"ارزښت"} باید ${G}${X.maximum.toString()} ${$.unit??"عنصرونه"} ولري`;return`ډیر لوی: ${X.origin??"ارزښت"} باید ${G}${X.maximum.toString()} وي`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`ډیر کوچنی: ${X.origin} باید ${G}${X.minimum.toString()} ${$.unit} ولري`;return`ډیر کوچنی: ${X.origin} باید ${G}${X.minimum.toString()} وي`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`ناسم متن: باید د "${G.prefix}" سره پیل شي`;if(G.format==="ends_with")return`ناسم متن: باید د "${G.suffix}" سره پای ته ورسيږي`;if(G.format==="includes")return`ناسم متن: باید "${G.includes}" ولري`;if(G.format==="regex")return`ناسم متن: باید د ${G.pattern} سره مطابقت ولري`;return`${Q[G.format]??X.format} ناسم دی`}case"not_multiple_of":return`ناسم عدد: باید د ${X.divisor} مضرب وي`;case"unrecognized_keys":return`ناسم ${X.keys.length>1?"کلیډونه":"کلیډ"}: ${F(X.keys,", ")}`;case"invalid_key":return`ناسم کلیډ په ${X.origin} کې`;case"invalid_union":return"ناسمه ورودي";case"invalid_element":return`ناسم عنصر په ${X.origin} کې`;default:return"ناسمه ورودي"}}};function B_(){return{localeError:H_()}}var R_=()=>{let Y={string:{unit:"znaków",verb:"mieć"},file:{unit:"bajtów",verb:"mieć"},array:{unit:"elementów",verb:"mieć"},set:{unit:"elementów",verb:"mieć"}};function J(X){return Y[X]??null}let Q={regex:"wyrażenie",email:"adres email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data i godzina w formacie ISO",date:"data w formacie ISO",time:"godzina w formacie ISO",duration:"czas trwania ISO",ipv4:"adres IPv4",ipv6:"adres IPv6",cidrv4:"zakres IPv4",cidrv6:"zakres IPv6",base64:"ciąg znaków zakodowany w formacie base64",base64url:"ciąg znaków zakodowany w formacie base64url",json_string:"ciąg znaków w formacie JSON",e164:"liczba E.164",jwt:"JWT",template_literal:"wejście"},q={nan:"NaN",number:"liczba",array:"tablica"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Nieprawidłowe dane wejściowe: oczekiwano instanceof ${X.expected}, otrzymano ${W}`;return`Nieprawidłowe dane wejściowe: oczekiwano ${G}, otrzymano ${W}`}case"invalid_value":if(X.values.length===1)return`Nieprawidłowe dane wejściowe: oczekiwano ${J0(X.values[0])}`;return`Nieprawidłowa opcja: oczekiwano jednej z wartości ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Za duża wartość: oczekiwano, że ${X.origin??"wartość"} będzie mieć ${G}${X.maximum.toString()} ${$.unit??"elementów"}`;return`Zbyt duż(y/a/e): oczekiwano, że ${X.origin??"wartość"} będzie wynosić ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Za mała wartość: oczekiwano, że ${X.origin??"wartość"} będzie mieć ${G}${X.minimum.toString()} ${$.unit??"elementów"}`;return`Zbyt mał(y/a/e): oczekiwano, że ${X.origin??"wartość"} będzie wynosić ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Nieprawidłowy ciąg znaków: musi zaczynać się od "${G.prefix}"`;if(G.format==="ends_with")return`Nieprawidłowy ciąg znaków: musi kończyć się na "${G.suffix}"`;if(G.format==="includes")return`Nieprawidłowy ciąg znaków: musi zawierać "${G.includes}"`;if(G.format==="regex")return`Nieprawidłowy ciąg znaków: musi odpowiadać wzorcowi ${G.pattern}`;return`Nieprawidłow(y/a/e) ${Q[G.format]??X.format}`}case"not_multiple_of":return`Nieprawidłowa liczba: musi być wielokrotnością ${X.divisor}`;case"unrecognized_keys":return`Nierozpoznane klucze${X.keys.length>1?"s":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Nieprawidłowy klucz w ${X.origin}`;case"invalid_union":return"Nieprawidłowe dane wejściowe";case"invalid_element":return`Nieprawidłowa wartość w ${X.origin}`;default:return"Nieprawidłowe dane wejściowe"}}};function V_(){return{localeError:R_()}}var L_=()=>{let Y={string:{unit:"caracteres",verb:"ter"},file:{unit:"bytes",verb:"ter"},array:{unit:"itens",verb:"ter"},set:{unit:"itens",verb:"ter"}};function J(X){return Y[X]??null}let Q={regex:"padrão",email:"endereço de e-mail",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"data e hora ISO",date:"data ISO",time:"hora ISO",duration:"duração ISO",ipv4:"endereço IPv4",ipv6:"endereço IPv6",cidrv4:"faixa de IPv4",cidrv6:"faixa de IPv6",base64:"texto codificado em base64",base64url:"URL codificada em base64",json_string:"texto JSON",e164:"número E.164",jwt:"JWT",template_literal:"entrada"},q={nan:"NaN",number:"número",null:"nulo"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Tipo inválido: esperado instanceof ${X.expected}, recebido ${W}`;return`Tipo inválido: esperado ${G}, recebido ${W}`}case"invalid_value":if(X.values.length===1)return`Entrada inválida: esperado ${J0(X.values[0])}`;return`Opção inválida: esperada uma das ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Muito grande: esperado que ${X.origin??"valor"} tivesse ${G}${X.maximum.toString()} ${$.unit??"elementos"}`;return`Muito grande: esperado que ${X.origin??"valor"} fosse ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Muito pequeno: esperado que ${X.origin} tivesse ${G}${X.minimum.toString()} ${$.unit}`;return`Muito pequeno: esperado que ${X.origin} fosse ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Texto inválido: deve começar com "${G.prefix}"`;if(G.format==="ends_with")return`Texto inválido: deve terminar com "${G.suffix}"`;if(G.format==="includes")return`Texto inválido: deve incluir "${G.includes}"`;if(G.format==="regex")return`Texto inválido: deve corresponder ao padrão ${G.pattern}`;return`${Q[G.format]??X.format} inválido`}case"not_multiple_of":return`Número inválido: deve ser múltiplo de ${X.divisor}`;case"unrecognized_keys":return`Chave${X.keys.length>1?"s":""} desconhecida${X.keys.length>1?"s":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Chave inválida em ${X.origin}`;case"invalid_union":return"Entrada inválida";case"invalid_element":return`Valor inválido em ${X.origin}`;default:return"Campo inválido"}}};function E_(){return{localeError:L_()}}function EN(Y,J,Q,q){let X=Math.abs(Y),G=X%10,$=X%100;if($>=11&&$<=19)return q;if(G===1)return J;if(G>=2&&G<=4)return Q;return q}var w_=()=>{let Y={string:{unit:{one:"символ",few:"символа",many:"символов"},verb:"иметь"},file:{unit:{one:"байт",few:"байта",many:"байт"},verb:"иметь"},array:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"},set:{unit:{one:"элемент",few:"элемента",many:"элементов"},verb:"иметь"}};function J(X){return Y[X]??null}let Q={regex:"ввод",email:"email адрес",url:"URL",emoji:"эмодзи",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO дата и время",date:"ISO дата",time:"ISO время",duration:"ISO длительность",ipv4:"IPv4 адрес",ipv6:"IPv6 адрес",cidrv4:"IPv4 диапазон",cidrv6:"IPv6 диапазон",base64:"строка в формате base64",base64url:"строка в формате base64url",json_string:"JSON строка",e164:"номер E.164",jwt:"JWT",template_literal:"ввод"},q={nan:"NaN",number:"число",array:"массив"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Неверный ввод: ожидалось instanceof ${X.expected}, получено ${W}`;return`Неверный ввод: ожидалось ${G}, получено ${W}`}case"invalid_value":if(X.values.length===1)return`Неверный ввод: ожидалось ${J0(X.values[0])}`;return`Неверный вариант: ожидалось одно из ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($){let W=Number(X.maximum),j=EN(W,$.unit.one,$.unit.few,$.unit.many);return`Слишком большое значение: ожидалось, что ${X.origin??"значение"} будет иметь ${G}${X.maximum.toString()} ${j}`}return`Слишком большое значение: ожидалось, что ${X.origin??"значение"} будет ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($){let W=Number(X.minimum),j=EN(W,$.unit.one,$.unit.few,$.unit.many);return`Слишком маленькое значение: ожидалось, что ${X.origin} будет иметь ${G}${X.minimum.toString()} ${j}`}return`Слишком маленькое значение: ожидалось, что ${X.origin} будет ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Неверная строка: должна начинаться с "${G.prefix}"`;if(G.format==="ends_with")return`Неверная строка: должна заканчиваться на "${G.suffix}"`;if(G.format==="includes")return`Неверная строка: должна содержать "${G.includes}"`;if(G.format==="regex")return`Неверная строка: должна соответствовать шаблону ${G.pattern}`;return`Неверный ${Q[G.format]??X.format}`}case"not_multiple_of":return`Неверное число: должно быть кратным ${X.divisor}`;case"unrecognized_keys":return`Нераспознанн${X.keys.length>1?"ые":"ый"} ключ${X.keys.length>1?"и":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Неверный ключ в ${X.origin}`;case"invalid_union":return"Неверные входные данные";case"invalid_element":return`Неверное значение в ${X.origin}`;default:return"Неверные входные данные"}}};function A_(){return{localeError:w_()}}var C_=()=>{let Y={string:{unit:"znakov",verb:"imeti"},file:{unit:"bajtov",verb:"imeti"},array:{unit:"elementov",verb:"imeti"},set:{unit:"elementov",verb:"imeti"}};function J(X){return Y[X]??null}let Q={regex:"vnos",email:"e-poštni naslov",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datum in čas",date:"ISO datum",time:"ISO čas",duration:"ISO trajanje",ipv4:"IPv4 naslov",ipv6:"IPv6 naslov",cidrv4:"obseg IPv4",cidrv6:"obseg IPv6",base64:"base64 kodiran niz",base64url:"base64url kodiran niz",json_string:"JSON niz",e164:"E.164 številka",jwt:"JWT",template_literal:"vnos"},q={nan:"NaN",number:"število",array:"tabela"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Neveljaven vnos: pričakovano instanceof ${X.expected}, prejeto ${W}`;return`Neveljaven vnos: pričakovano ${G}, prejeto ${W}`}case"invalid_value":if(X.values.length===1)return`Neveljaven vnos: pričakovano ${J0(X.values[0])}`;return`Neveljavna možnost: pričakovano eno izmed ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Preveliko: pričakovano, da bo ${X.origin??"vrednost"} imelo ${G}${X.maximum.toString()} ${$.unit??"elementov"}`;return`Preveliko: pričakovano, da bo ${X.origin??"vrednost"} ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Premajhno: pričakovano, da bo ${X.origin} imelo ${G}${X.minimum.toString()} ${$.unit}`;return`Premajhno: pričakovano, da bo ${X.origin} ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Neveljaven niz: mora se začeti z "${G.prefix}"`;if(G.format==="ends_with")return`Neveljaven niz: mora se končati z "${G.suffix}"`;if(G.format==="includes")return`Neveljaven niz: mora vsebovati "${G.includes}"`;if(G.format==="regex")return`Neveljaven niz: mora ustrezati vzorcu ${G.pattern}`;return`Neveljaven ${Q[G.format]??X.format}`}case"not_multiple_of":return`Neveljavno število: mora biti večkratnik ${X.divisor}`;case"unrecognized_keys":return`Neprepoznan${X.keys.length>1?"i ključi":" ključ"}: ${F(X.keys,", ")}`;case"invalid_key":return`Neveljaven ključ v ${X.origin}`;case"invalid_union":return"Neveljaven vnos";case"invalid_element":return`Neveljavna vrednost v ${X.origin}`;default:return"Neveljaven vnos"}}};function I_(){return{localeError:C_()}}var S_=()=>{let Y={string:{unit:"tecken",verb:"att ha"},file:{unit:"bytes",verb:"att ha"},array:{unit:"objekt",verb:"att innehålla"},set:{unit:"objekt",verb:"att innehålla"}};function J(X){return Y[X]??null}let Q={regex:"reguljärt uttryck",email:"e-postadress",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO-datum och tid",date:"ISO-datum",time:"ISO-tid",duration:"ISO-varaktighet",ipv4:"IPv4-intervall",ipv6:"IPv6-intervall",cidrv4:"IPv4-spektrum",cidrv6:"IPv6-spektrum",base64:"base64-kodad sträng",base64url:"base64url-kodad sträng",json_string:"JSON-sträng",e164:"E.164-nummer",jwt:"JWT",template_literal:"mall-literal"},q={nan:"NaN",number:"antal",array:"lista"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Ogiltig inmatning: förväntat instanceof ${X.expected}, fick ${W}`;return`Ogiltig inmatning: förväntat ${G}, fick ${W}`}case"invalid_value":if(X.values.length===1)return`Ogiltig inmatning: förväntat ${J0(X.values[0])}`;return`Ogiltigt val: förväntade en av ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`För stor(t): förväntade ${X.origin??"värdet"} att ha ${G}${X.maximum.toString()} ${$.unit??"element"}`;return`För stor(t): förväntat ${X.origin??"värdet"} att ha ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`För lite(t): förväntade ${X.origin??"värdet"} att ha ${G}${X.minimum.toString()} ${$.unit}`;return`För lite(t): förväntade ${X.origin??"värdet"} att ha ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Ogiltig sträng: måste börja med "${G.prefix}"`;if(G.format==="ends_with")return`Ogiltig sträng: måste sluta med "${G.suffix}"`;if(G.format==="includes")return`Ogiltig sträng: måste innehålla "${G.includes}"`;if(G.format==="regex")return`Ogiltig sträng: måste matcha mönstret "${G.pattern}"`;return`Ogiltig(t) ${Q[G.format]??X.format}`}case"not_multiple_of":return`Ogiltigt tal: måste vara en multipel av ${X.divisor}`;case"unrecognized_keys":return`${X.keys.length>1?"Okända nycklar":"Okänd nyckel"}: ${F(X.keys,", ")}`;case"invalid_key":return`Ogiltig nyckel i ${X.origin??"värdet"}`;case"invalid_union":return"Ogiltig input";case"invalid_element":return`Ogiltigt värde i ${X.origin??"värdet"}`;default:return"Ogiltig input"}}};function v_(){return{localeError:S_()}}var __=()=>{let Y={string:{unit:"எழுத்துக்கள்",verb:"கொண்டிருக்க வேண்டும்"},file:{unit:"பைட்டுகள்",verb:"கொண்டிருக்க வேண்டும்"},array:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"},set:{unit:"உறுப்புகள்",verb:"கொண்டிருக்க வேண்டும்"}};function J(X){return Y[X]??null}let Q={regex:"உள்ளீடு",email:"மின்னஞ்சல் முகவரி",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO தேதி நேரம்",date:"ISO தேதி",time:"ISO நேரம்",duration:"ISO கால அளவு",ipv4:"IPv4 முகவரி",ipv6:"IPv6 முகவரி",cidrv4:"IPv4 வரம்பு",cidrv6:"IPv6 வரம்பு",base64:"base64-encoded சரம்",base64url:"base64url-encoded சரம்",json_string:"JSON சரம்",e164:"E.164 எண்",jwt:"JWT",template_literal:"input"},q={nan:"NaN",number:"எண்",array:"அணி",null:"வெறுமை"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது instanceof ${X.expected}, பெறப்பட்டது ${W}`;return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${G}, பெறப்பட்டது ${W}`}case"invalid_value":if(X.values.length===1)return`தவறான உள்ளீடு: எதிர்பார்க்கப்பட்டது ${J0(X.values[0])}`;return`தவறான விருப்பம்: எதிர்பார்க்கப்பட்டது ${F(X.values,"|")} இல் ஒன்று`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${X.origin??"மதிப்பு"} ${G}${X.maximum.toString()} ${$.unit??"உறுப்புகள்"} ஆக இருக்க வேண்டும்`;return`மிக பெரியது: எதிர்பார்க்கப்பட்டது ${X.origin??"மதிப்பு"} ${G}${X.maximum.toString()} ஆக இருக்க வேண்டும்`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${X.origin} ${G}${X.minimum.toString()} ${$.unit} ஆக இருக்க வேண்டும்`;return`மிகச் சிறியது: எதிர்பார்க்கப்பட்டது ${X.origin} ${G}${X.minimum.toString()} ஆக இருக்க வேண்டும்`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`தவறான சரம்: "${G.prefix}" இல் தொடங்க வேண்டும்`;if(G.format==="ends_with")return`தவறான சரம்: "${G.suffix}" இல் முடிவடைய வேண்டும்`;if(G.format==="includes")return`தவறான சரம்: "${G.includes}" ஐ உள்ளடக்க வேண்டும்`;if(G.format==="regex")return`தவறான சரம்: ${G.pattern} முறைபாட்டுடன் பொருந்த வேண்டும்`;return`தவறான ${Q[G.format]??X.format}`}case"not_multiple_of":return`தவறான எண்: ${X.divisor} இன் பலமாக இருக்க வேண்டும்`;case"unrecognized_keys":return`அடையாளம் தெரியாத விசை${X.keys.length>1?"கள்":""}: ${F(X.keys,", ")}`;case"invalid_key":return`${X.origin} இல் தவறான விசை`;case"invalid_union":return"தவறான உள்ளீடு";case"invalid_element":return`${X.origin} இல் தவறான மதிப்பு`;default:return"தவறான உள்ளீடு"}}};function k_(){return{localeError:__()}}var F_=()=>{let Y={string:{unit:"ตัวอักษร",verb:"ควรมี"},file:{unit:"ไบต์",verb:"ควรมี"},array:{unit:"รายการ",verb:"ควรมี"},set:{unit:"รายการ",verb:"ควรมี"}};function J(X){return Y[X]??null}let Q={regex:"ข้อมูลที่ป้อน",email:"ที่อยู่อีเมล",url:"URL",emoji:"อิโมจิ",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"วันที่เวลาแบบ ISO",date:"วันที่แบบ ISO",time:"เวลาแบบ ISO",duration:"ช่วงเวลาแบบ ISO",ipv4:"ที่อยู่ IPv4",ipv6:"ที่อยู่ IPv6",cidrv4:"ช่วง IP แบบ IPv4",cidrv6:"ช่วง IP แบบ IPv6",base64:"ข้อความแบบ Base64",base64url:"ข้อความแบบ Base64 สำหรับ URL",json_string:"ข้อความแบบ JSON",e164:"เบอร์โทรศัพท์ระหว่างประเทศ (E.164)",jwt:"โทเคน JWT",template_literal:"ข้อมูลที่ป้อน"},q={nan:"NaN",number:"ตัวเลข",array:"อาร์เรย์ (Array)",null:"ไม่มีค่า (null)"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น instanceof ${X.expected} แต่ได้รับ ${W}`;return`ประเภทข้อมูลไม่ถูกต้อง: ควรเป็น ${G} แต่ได้รับ ${W}`}case"invalid_value":if(X.values.length===1)return`ค่าไม่ถูกต้อง: ควรเป็น ${J0(X.values[0])}`;return`ตัวเลือกไม่ถูกต้อง: ควรเป็นหนึ่งใน ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"ไม่เกิน":"น้อยกว่า",$=J(X.origin);if($)return`เกินกำหนด: ${X.origin??"ค่า"} ควรมี${G} ${X.maximum.toString()} ${$.unit??"รายการ"}`;return`เกินกำหนด: ${X.origin??"ค่า"} ควรมี${G} ${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?"อย่างน้อย":"มากกว่า",$=J(X.origin);if($)return`น้อยกว่ากำหนด: ${X.origin} ควรมี${G} ${X.minimum.toString()} ${$.unit}`;return`น้อยกว่ากำหนด: ${X.origin} ควรมี${G} ${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`รูปแบบไม่ถูกต้อง: ข้อความต้องขึ้นต้นด้วย "${G.prefix}"`;if(G.format==="ends_with")return`รูปแบบไม่ถูกต้อง: ข้อความต้องลงท้ายด้วย "${G.suffix}"`;if(G.format==="includes")return`รูปแบบไม่ถูกต้อง: ข้อความต้องมี "${G.includes}" อยู่ในข้อความ`;if(G.format==="regex")return`รูปแบบไม่ถูกต้อง: ต้องตรงกับรูปแบบที่กำหนด ${G.pattern}`;return`รูปแบบไม่ถูกต้อง: ${Q[G.format]??X.format}`}case"not_multiple_of":return`ตัวเลขไม่ถูกต้อง: ต้องเป็นจำนวนที่หารด้วย ${X.divisor} ได้ลงตัว`;case"unrecognized_keys":return`พบคีย์ที่ไม่รู้จัก: ${F(X.keys,", ")}`;case"invalid_key":return`คีย์ไม่ถูกต้องใน ${X.origin}`;case"invalid_union":return"ข้อมูลไม่ถูกต้อง: ไม่ตรงกับรูปแบบยูเนียนที่กำหนดไว้";case"invalid_element":return`ข้อมูลไม่ถูกต้องใน ${X.origin}`;default:return"ข้อมูลไม่ถูกต้อง"}}};function P_(){return{localeError:F_()}}var T_=()=>{let Y={string:{unit:"karakter",verb:"olmalı"},file:{unit:"bayt",verb:"olmalı"},array:{unit:"öğe",verb:"olmalı"},set:{unit:"öğe",verb:"olmalı"}};function J(X){return Y[X]??null}let Q={regex:"girdi",email:"e-posta adresi",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO tarih ve saat",date:"ISO tarih",time:"ISO saat",duration:"ISO süre",ipv4:"IPv4 adresi",ipv6:"IPv6 adresi",cidrv4:"IPv4 aralığı",cidrv6:"IPv6 aralığı",base64:"base64 ile şifrelenmiş metin",base64url:"base64url ile şifrelenmiş metin",json_string:"JSON dizesi",e164:"E.164 sayısı",jwt:"JWT",template_literal:"Şablon dizesi"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Geçersiz değer: beklenen instanceof ${X.expected}, alınan ${W}`;return`Geçersiz değer: beklenen ${G}, alınan ${W}`}case"invalid_value":if(X.values.length===1)return`Geçersiz değer: beklenen ${J0(X.values[0])}`;return`Geçersiz seçenek: aşağıdakilerden biri olmalı: ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Çok büyük: beklenen ${X.origin??"değer"} ${G}${X.maximum.toString()} ${$.unit??"öğe"}`;return`Çok büyük: beklenen ${X.origin??"değer"} ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Çok küçük: beklenen ${X.origin} ${G}${X.minimum.toString()} ${$.unit}`;return`Çok küçük: beklenen ${X.origin} ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Geçersiz metin: "${G.prefix}" ile başlamalı`;if(G.format==="ends_with")return`Geçersiz metin: "${G.suffix}" ile bitmeli`;if(G.format==="includes")return`Geçersiz metin: "${G.includes}" içermeli`;if(G.format==="regex")return`Geçersiz metin: ${G.pattern} desenine uymalı`;return`Geçersiz ${Q[G.format]??X.format}`}case"not_multiple_of":return`Geçersiz sayı: ${X.divisor} ile tam bölünebilmeli`;case"unrecognized_keys":return`Tanınmayan anahtar${X.keys.length>1?"lar":""}: ${F(X.keys,", ")}`;case"invalid_key":return`${X.origin} içinde geçersiz anahtar`;case"invalid_union":return"Geçersiz değer";case"invalid_element":return`${X.origin} içinde geçersiz değer`;default:return"Geçersiz değer"}}};function Z_(){return{localeError:T_()}}var x_=()=>{let Y={string:{unit:"символів",verb:"матиме"},file:{unit:"байтів",verb:"матиме"},array:{unit:"елементів",verb:"матиме"},set:{unit:"елементів",verb:"матиме"}};function J(X){return Y[X]??null}let Q={regex:"вхідні дані",email:"адреса електронної пошти",url:"URL",emoji:"емодзі",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"дата та час ISO",date:"дата ISO",time:"час ISO",duration:"тривалість ISO",ipv4:"адреса IPv4",ipv6:"адреса IPv6",cidrv4:"діапазон IPv4",cidrv6:"діапазон IPv6",base64:"рядок у кодуванні base64",base64url:"рядок у кодуванні base64url",json_string:"рядок JSON",e164:"номер E.164",jwt:"JWT",template_literal:"вхідні дані"},q={nan:"NaN",number:"число",array:"масив"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Неправильні вхідні дані: очікується instanceof ${X.expected}, отримано ${W}`;return`Неправильні вхідні дані: очікується ${G}, отримано ${W}`}case"invalid_value":if(X.values.length===1)return`Неправильні вхідні дані: очікується ${J0(X.values[0])}`;return`Неправильна опція: очікується одне з ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Занадто велике: очікується, що ${X.origin??"значення"} ${$.verb} ${G}${X.maximum.toString()} ${$.unit??"елементів"}`;return`Занадто велике: очікується, що ${X.origin??"значення"} буде ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Занадто мале: очікується, що ${X.origin} ${$.verb} ${G}${X.minimum.toString()} ${$.unit}`;return`Занадто мале: очікується, що ${X.origin} буде ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Неправильний рядок: повинен починатися з "${G.prefix}"`;if(G.format==="ends_with")return`Неправильний рядок: повинен закінчуватися на "${G.suffix}"`;if(G.format==="includes")return`Неправильний рядок: повинен містити "${G.includes}"`;if(G.format==="regex")return`Неправильний рядок: повинен відповідати шаблону ${G.pattern}`;return`Неправильний ${Q[G.format]??X.format}`}case"not_multiple_of":return`Неправильне число: повинно бути кратним ${X.divisor}`;case"unrecognized_keys":return`Нерозпізнаний ключ${X.keys.length>1?"і":""}: ${F(X.keys,", ")}`;case"invalid_key":return`Неправильний ключ у ${X.origin}`;case"invalid_union":return"Неправильні вхідні дані";case"invalid_element":return`Неправильне значення у ${X.origin}`;default:return"Неправильні вхідні дані"}}};function WB(){return{localeError:x_()}}function g_(){return WB()}var f_=()=>{let Y={string:{unit:"حروف",verb:"ہونا"},file:{unit:"بائٹس",verb:"ہونا"},array:{unit:"آئٹمز",verb:"ہونا"},set:{unit:"آئٹمز",verb:"ہونا"}};function J(X){return Y[X]??null}let Q={regex:"ان پٹ",email:"ای میل ایڈریس",url:"یو آر ایل",emoji:"ایموجی",uuid:"یو یو آئی ڈی",uuidv4:"یو یو آئی ڈی وی 4",uuidv6:"یو یو آئی ڈی وی 6",nanoid:"نینو آئی ڈی",guid:"جی یو آئی ڈی",cuid:"سی یو آئی ڈی",cuid2:"سی یو آئی ڈی 2",ulid:"یو ایل آئی ڈی",xid:"ایکس آئی ڈی",ksuid:"کے ایس یو آئی ڈی",datetime:"آئی ایس او ڈیٹ ٹائم",date:"آئی ایس او تاریخ",time:"آئی ایس او وقت",duration:"آئی ایس او مدت",ipv4:"آئی پی وی 4 ایڈریس",ipv6:"آئی پی وی 6 ایڈریس",cidrv4:"آئی پی وی 4 رینج",cidrv6:"آئی پی وی 6 رینج",base64:"بیس 64 ان کوڈڈ سٹرنگ",base64url:"بیس 64 یو آر ایل ان کوڈڈ سٹرنگ",json_string:"جے ایس او این سٹرنگ",e164:"ای 164 نمبر",jwt:"جے ڈبلیو ٹی",template_literal:"ان پٹ"},q={nan:"NaN",number:"نمبر",array:"آرے",null:"نل"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`غلط ان پٹ: instanceof ${X.expected} متوقع تھا، ${W} موصول ہوا`;return`غلط ان پٹ: ${G} متوقع تھا، ${W} موصول ہوا`}case"invalid_value":if(X.values.length===1)return`غلط ان پٹ: ${J0(X.values[0])} متوقع تھا`;return`غلط آپشن: ${F(X.values,"|")} میں سے ایک متوقع تھا`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`بہت بڑا: ${X.origin??"ویلیو"} کے ${G}${X.maximum.toString()} ${$.unit??"عناصر"} ہونے متوقع تھے`;return`بہت بڑا: ${X.origin??"ویلیو"} کا ${G}${X.maximum.toString()} ہونا متوقع تھا`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`بہت چھوٹا: ${X.origin} کے ${G}${X.minimum.toString()} ${$.unit} ہونے متوقع تھے`;return`بہت چھوٹا: ${X.origin} کا ${G}${X.minimum.toString()} ہونا متوقع تھا`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`غلط سٹرنگ: "${G.prefix}" سے شروع ہونا چاہیے`;if(G.format==="ends_with")return`غلط سٹرنگ: "${G.suffix}" پر ختم ہونا چاہیے`;if(G.format==="includes")return`غلط سٹرنگ: "${G.includes}" شامل ہونا چاہیے`;if(G.format==="regex")return`غلط سٹرنگ: پیٹرن ${G.pattern} سے میچ ہونا چاہیے`;return`غلط ${Q[G.format]??X.format}`}case"not_multiple_of":return`غلط نمبر: ${X.divisor} کا مضاعف ہونا چاہیے`;case"unrecognized_keys":return`غیر تسلیم شدہ کی${X.keys.length>1?"ز":""}: ${F(X.keys,"، ")}`;case"invalid_key":return`${X.origin} میں غلط کی`;case"invalid_union":return"غلط ان پٹ";case"invalid_element":return`${X.origin} میں غلط ویلیو`;default:return"غلط ان پٹ"}}};function h_(){return{localeError:f_()}}var m_=()=>{let Y={string:{unit:"belgi",verb:"bo‘lishi kerak"},file:{unit:"bayt",verb:"bo‘lishi kerak"},array:{unit:"element",verb:"bo‘lishi kerak"},set:{unit:"element",verb:"bo‘lishi kerak"}};function J(X){return Y[X]??null}let Q={regex:"kirish",email:"elektron pochta manzili",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO sana va vaqti",date:"ISO sana",time:"ISO vaqt",duration:"ISO davomiylik",ipv4:"IPv4 manzil",ipv6:"IPv6 manzil",mac:"MAC manzil",cidrv4:"IPv4 diapazon",cidrv6:"IPv6 diapazon",base64:"base64 kodlangan satr",base64url:"base64url kodlangan satr",json_string:"JSON satr",e164:"E.164 raqam",jwt:"JWT",template_literal:"kirish"},q={nan:"NaN",number:"raqam",array:"massiv"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Noto‘g‘ri kirish: kutilgan instanceof ${X.expected}, qabul qilingan ${W}`;return`Noto‘g‘ri kirish: kutilgan ${G}, qabul qilingan ${W}`}case"invalid_value":if(X.values.length===1)return`Noto‘g‘ri kirish: kutilgan ${J0(X.values[0])}`;return`Noto‘g‘ri variant: quyidagilardan biri kutilgan ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Juda katta: kutilgan ${X.origin??"qiymat"} ${G}${X.maximum.toString()} ${$.unit} ${$.verb}`;return`Juda katta: kutilgan ${X.origin??"qiymat"} ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Juda kichik: kutilgan ${X.origin} ${G}${X.minimum.toString()} ${$.unit} ${$.verb}`;return`Juda kichik: kutilgan ${X.origin} ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Noto‘g‘ri satr: "${G.prefix}" bilan boshlanishi kerak`;if(G.format==="ends_with")return`Noto‘g‘ri satr: "${G.suffix}" bilan tugashi kerak`;if(G.format==="includes")return`Noto‘g‘ri satr: "${G.includes}" ni o‘z ichiga olishi kerak`;if(G.format==="regex")return`Noto‘g‘ri satr: ${G.pattern} shabloniga mos kelishi kerak`;return`Noto‘g‘ri ${Q[G.format]??X.format}`}case"not_multiple_of":return`Noto‘g‘ri raqam: ${X.divisor} ning karralisi bo‘lishi kerak`;case"unrecognized_keys":return`Noma’lum kalit${X.keys.length>1?"lar":""}: ${F(X.keys,", ")}`;case"invalid_key":return`${X.origin} dagi kalit noto‘g‘ri`;case"invalid_union":return"Noto‘g‘ri kirish";case"invalid_element":return`${X.origin} da noto‘g‘ri qiymat`;default:return"Noto‘g‘ri kirish"}}};function y_(){return{localeError:m_()}}var l_=()=>{let Y={string:{unit:"ký tự",verb:"có"},file:{unit:"byte",verb:"có"},array:{unit:"phần tử",verb:"có"},set:{unit:"phần tử",verb:"có"}};function J(X){return Y[X]??null}let Q={regex:"đầu vào",email:"địa chỉ email",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ngày giờ ISO",date:"ngày ISO",time:"giờ ISO",duration:"khoảng thời gian ISO",ipv4:"địa chỉ IPv4",ipv6:"địa chỉ IPv6",cidrv4:"dải IPv4",cidrv6:"dải IPv6",base64:"chuỗi mã hóa base64",base64url:"chuỗi mã hóa base64url",json_string:"chuỗi JSON",e164:"số E.164",jwt:"JWT",template_literal:"đầu vào"},q={nan:"NaN",number:"số",array:"mảng"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Đầu vào không hợp lệ: mong đợi instanceof ${X.expected}, nhận được ${W}`;return`Đầu vào không hợp lệ: mong đợi ${G}, nhận được ${W}`}case"invalid_value":if(X.values.length===1)return`Đầu vào không hợp lệ: mong đợi ${J0(X.values[0])}`;return`Tùy chọn không hợp lệ: mong đợi một trong các giá trị ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Quá lớn: mong đợi ${X.origin??"giá trị"} ${$.verb} ${G}${X.maximum.toString()} ${$.unit??"phần tử"}`;return`Quá lớn: mong đợi ${X.origin??"giá trị"} ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Quá nhỏ: mong đợi ${X.origin} ${$.verb} ${G}${X.minimum.toString()} ${$.unit}`;return`Quá nhỏ: mong đợi ${X.origin} ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Chuỗi không hợp lệ: phải bắt đầu bằng "${G.prefix}"`;if(G.format==="ends_with")return`Chuỗi không hợp lệ: phải kết thúc bằng "${G.suffix}"`;if(G.format==="includes")return`Chuỗi không hợp lệ: phải bao gồm "${G.includes}"`;if(G.format==="regex")return`Chuỗi không hợp lệ: phải khớp với mẫu ${G.pattern}`;return`${Q[G.format]??X.format} không hợp lệ`}case"not_multiple_of":return`Số không hợp lệ: phải là bội số của ${X.divisor}`;case"unrecognized_keys":return`Khóa không được nhận dạng: ${F(X.keys,", ")}`;case"invalid_key":return`Khóa không hợp lệ trong ${X.origin}`;case"invalid_union":return"Đầu vào không hợp lệ";case"invalid_element":return`Giá trị không hợp lệ trong ${X.origin}`;default:return"Đầu vào không hợp lệ"}}};function u_(){return{localeError:l_()}}var c_=()=>{let Y={string:{unit:"字符",verb:"包含"},file:{unit:"字节",verb:"包含"},array:{unit:"项",verb:"包含"},set:{unit:"项",verb:"包含"}};function J(X){return Y[X]??null}let Q={regex:"输入",email:"电子邮件",url:"URL",emoji:"表情符号",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO日期时间",date:"ISO日期",time:"ISO时间",duration:"ISO时长",ipv4:"IPv4地址",ipv6:"IPv6地址",cidrv4:"IPv4网段",cidrv6:"IPv6网段",base64:"base64编码字符串",base64url:"base64url编码字符串",json_string:"JSON字符串",e164:"E.164号码",jwt:"JWT",template_literal:"输入"},q={nan:"NaN",number:"数字",array:"数组",null:"空值(null)"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`无效输入:期望 instanceof ${X.expected},实际接收 ${W}`;return`无效输入:期望 ${G},实际接收 ${W}`}case"invalid_value":if(X.values.length===1)return`无效输入:期望 ${J0(X.values[0])}`;return`无效选项:期望以下之一 ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`数值过大:期望 ${X.origin??"值"} ${G}${X.maximum.toString()} ${$.unit??"个元素"}`;return`数值过大:期望 ${X.origin??"值"} ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`数值过小:期望 ${X.origin} ${G}${X.minimum.toString()} ${$.unit}`;return`数值过小:期望 ${X.origin} ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`无效字符串:必须以 "${G.prefix}" 开头`;if(G.format==="ends_with")return`无效字符串:必须以 "${G.suffix}" 结尾`;if(G.format==="includes")return`无效字符串:必须包含 "${G.includes}"`;if(G.format==="regex")return`无效字符串:必须满足正则表达式 ${G.pattern}`;return`无效${Q[G.format]??X.format}`}case"not_multiple_of":return`无效数字:必须是 ${X.divisor} 的倍数`;case"unrecognized_keys":return`出现未知的键(key): ${F(X.keys,", ")}`;case"invalid_key":return`${X.origin} 中的键(key)无效`;case"invalid_union":return"无效输入";case"invalid_element":return`${X.origin} 中包含无效值(value)`;default:return"无效输入"}}};function b_(){return{localeError:c_()}}var p_=()=>{let Y={string:{unit:"字元",verb:"擁有"},file:{unit:"位元組",verb:"擁有"},array:{unit:"項目",verb:"擁有"},set:{unit:"項目",verb:"擁有"}};function J(X){return Y[X]??null}let Q={regex:"輸入",email:"郵件地址",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO 日期時間",date:"ISO 日期",time:"ISO 時間",duration:"ISO 期間",ipv4:"IPv4 位址",ipv6:"IPv6 位址",cidrv4:"IPv4 範圍",cidrv6:"IPv6 範圍",base64:"base64 編碼字串",base64url:"base64url 編碼字串",json_string:"JSON 字串",e164:"E.164 數值",jwt:"JWT",template_literal:"輸入"},q={nan:"NaN"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`無效的輸入值:預期為 instanceof ${X.expected},但收到 ${W}`;return`無效的輸入值:預期為 ${G},但收到 ${W}`}case"invalid_value":if(X.values.length===1)return`無效的輸入值:預期為 ${J0(X.values[0])}`;return`無效的選項:預期為以下其中之一 ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`數值過大:預期 ${X.origin??"值"} 應為 ${G}${X.maximum.toString()} ${$.unit??"個元素"}`;return`數值過大:預期 ${X.origin??"值"} 應為 ${G}${X.maximum.toString()}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`數值過小:預期 ${X.origin} 應為 ${G}${X.minimum.toString()} ${$.unit}`;return`數值過小:預期 ${X.origin} 應為 ${G}${X.minimum.toString()}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`無效的字串:必須以 "${G.prefix}" 開頭`;if(G.format==="ends_with")return`無效的字串:必須以 "${G.suffix}" 結尾`;if(G.format==="includes")return`無效的字串:必須包含 "${G.includes}"`;if(G.format==="regex")return`無效的字串:必須符合格式 ${G.pattern}`;return`無效的 ${Q[G.format]??X.format}`}case"not_multiple_of":return`無效的數字:必須為 ${X.divisor} 的倍數`;case"unrecognized_keys":return`無法識別的鍵值${X.keys.length>1?"們":""}:${F(X.keys,"、")}`;case"invalid_key":return`${X.origin} 中有無效的鍵值`;case"invalid_union":return"無效的輸入值";case"invalid_element":return`${X.origin} 中有無效的值`;default:return"無效的輸入值"}}};function o_(){return{localeError:p_()}}var d_=()=>{let Y={string:{unit:"àmi",verb:"ní"},file:{unit:"bytes",verb:"ní"},array:{unit:"nkan",verb:"ní"},set:{unit:"nkan",verb:"ní"}};function J(X){return Y[X]??null}let Q={regex:"ẹ̀rọ ìbáwọlé",email:"àdírẹ́sì ìmẹ́lì",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"àkókò ISO",date:"ọjọ́ ISO",time:"àkókò ISO",duration:"àkókò tó pé ISO",ipv4:"àdírẹ́sì IPv4",ipv6:"àdírẹ́sì IPv6",cidrv4:"àgbègbè IPv4",cidrv6:"àgbègbè IPv6",base64:"ọ̀rọ̀ tí a kọ́ ní base64",base64url:"ọ̀rọ̀ base64url",json_string:"ọ̀rọ̀ JSON",e164:"nọ́mbà E.164",jwt:"JWT",template_literal:"ẹ̀rọ ìbáwọlé"},q={nan:"NaN",number:"nọ́mbà",array:"akopọ"};return(X)=>{switch(X.code){case"invalid_type":{let G=q[X.expected]??X.expected,$=X0(X.input),W=q[$]??$;if(/^[A-Z]/.test(X.expected))return`Ìbáwọlé aṣìṣe: a ní láti fi instanceof ${X.expected}, àmọ̀ a rí ${W}`;return`Ìbáwọlé aṣìṣe: a ní láti fi ${G}, àmọ̀ a rí ${W}`}case"invalid_value":if(X.values.length===1)return`Ìbáwọlé aṣìṣe: a ní láti fi ${J0(X.values[0])}`;return`Àṣàyàn aṣìṣe: yan ọ̀kan lára ${F(X.values,"|")}`;case"too_big":{let G=X.inclusive?"<=":"<",$=J(X.origin);if($)return`Tó pọ̀ jù: a ní láti jẹ́ pé ${X.origin??"iye"} ${$.verb} ${G}${X.maximum} ${$.unit}`;return`Tó pọ̀ jù: a ní láti jẹ́ ${G}${X.maximum}`}case"too_small":{let G=X.inclusive?">=":">",$=J(X.origin);if($)return`Kéré ju: a ní láti jẹ́ pé ${X.origin} ${$.verb} ${G}${X.minimum} ${$.unit}`;return`Kéré ju: a ní láti jẹ́ ${G}${X.minimum}`}case"invalid_format":{let G=X;if(G.format==="starts_with")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bẹ̀rẹ̀ pẹ̀lú "${G.prefix}"`;if(G.format==="ends_with")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ parí pẹ̀lú "${G.suffix}"`;if(G.format==="includes")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ ní "${G.includes}"`;if(G.format==="regex")return`Ọ̀rọ̀ aṣìṣe: gbọ́dọ̀ bá àpẹẹrẹ mu ${G.pattern}`;return`Aṣìṣe: ${Q[G.format]??X.format}`}case"not_multiple_of":return`Nọ́mbà aṣìṣe: gbọ́dọ̀ jẹ́ èyà pípín ti ${X.divisor}`;case"unrecognized_keys":return`Bọtìnì àìmọ̀: ${F(X.keys,", ")}`;case"invalid_key":return`Bọtìnì aṣìṣe nínú ${X.origin}`;case"invalid_union":return"Ìbáwọlé aṣìṣe";case"invalid_element":return`Iye aṣìṣe nínú ${X.origin}`;default:return"Ìbáwọlé aṣìṣe"}}};function r_(){return{localeError:d_()}}var wN,jB=Symbol("ZodOutput"),KB=Symbol("ZodInput");class vj{constructor(){this._map=new WeakMap,this._idmap=new Map}add(Y,...J){let Q=J[0];if(this._map.set(Y,Q),Q&&typeof Q==="object"&&"id"in Q)this._idmap.set(Q.id,Y);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(Y){let J=this._map.get(Y);if(J&&typeof J==="object"&&"id"in J)this._idmap.delete(J.id);return this._map.delete(Y),this}get(Y){let J=Y._zod.parent;if(J){let Q={...this.get(J)??{}};delete Q.id;let q={...Q,...this._map.get(Y)};return Object.keys(q).length?q:void 0}return this._map.get(Y)}has(Y){return this._map.has(Y)}}function _j(){return new vj}(wN=globalThis).__zod_globalRegistry??(wN.__zod_globalRegistry=_j());var y8=globalThis.__zod_globalRegistry;function zB(Y,J){return new Y({type:"string",...P(J)})}function MB(Y,J){return new Y({type:"string",coerce:!0,...P(J)})}function kj(Y,J){return new Y({type:"string",format:"email",check:"string_format",abort:!1,...P(J)})}function j$(Y,J){return new Y({type:"string",format:"guid",check:"string_format",abort:!1,...P(J)})}function Fj(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,...P(J)})}function Pj(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...P(J)})}function Tj(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...P(J)})}function Zj(Y,J){return new Y({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...P(J)})}function T$(Y,J){return new Y({type:"string",format:"url",check:"string_format",abort:!1,...P(J)})}function xj(Y,J){return new Y({type:"string",format:"emoji",check:"string_format",abort:!1,...P(J)})}function gj(Y,J){return new Y({type:"string",format:"nanoid",check:"string_format",abort:!1,...P(J)})}function fj(Y,J){return new Y({type:"string",format:"cuid",check:"string_format",abort:!1,...P(J)})}function hj(Y,J){return new Y({type:"string",format:"cuid2",check:"string_format",abort:!1,...P(J)})}function mj(Y,J){return new Y({type:"string",format:"ulid",check:"string_format",abort:!1,...P(J)})}function yj(Y,J){return new Y({type:"string",format:"xid",check:"string_format",abort:!1,...P(J)})}function lj(Y,J){return new Y({type:"string",format:"ksuid",check:"string_format",abort:!1,...P(J)})}function uj(Y,J){return new Y({type:"string",format:"ipv4",check:"string_format",abort:!1,...P(J)})}function cj(Y,J){return new Y({type:"string",format:"ipv6",check:"string_format",abort:!1,...P(J)})}function NB(Y,J){return new Y({type:"string",format:"mac",check:"string_format",abort:!1,...P(J)})}function bj(Y,J){return new Y({type:"string",format:"cidrv4",check:"string_format",abort:!1,...P(J)})}function pj(Y,J){return new Y({type:"string",format:"cidrv6",check:"string_format",abort:!1,...P(J)})}function oj(Y,J){return new Y({type:"string",format:"base64",check:"string_format",abort:!1,...P(J)})}function dj(Y,J){return new Y({type:"string",format:"base64url",check:"string_format",abort:!1,...P(J)})}function rj(Y,J){return new Y({type:"string",format:"e164",check:"string_format",abort:!1,...P(J)})}function sj(Y,J){return new Y({type:"string",format:"jwt",check:"string_format",abort:!1,...P(J)})}var OB={Any:null,Minute:-1,Second:0,Millisecond:3,Microsecond:6};function DB(Y,J){return new Y({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...P(J)})}function UB(Y,J){return new Y({type:"string",format:"date",check:"string_format",...P(J)})}function HB(Y,J){return new Y({type:"string",format:"time",check:"string_format",precision:null,...P(J)})}function BB(Y,J){return new Y({type:"string",format:"duration",check:"string_format",...P(J)})}function RB(Y,J){return new Y({type:"number",checks:[],...P(J)})}function VB(Y,J){return new Y({type:"number",coerce:!0,checks:[],...P(J)})}function LB(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"safeint",...P(J)})}function EB(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"float32",...P(J)})}function wB(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"float64",...P(J)})}function AB(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"int32",...P(J)})}function CB(Y,J){return new Y({type:"number",check:"number_format",abort:!1,format:"uint32",...P(J)})}function IB(Y,J){return new Y({type:"boolean",...P(J)})}function SB(Y,J){return new Y({type:"boolean",coerce:!0,...P(J)})}function vB(Y,J){return new Y({type:"bigint",...P(J)})}function _B(Y,J){return new Y({type:"bigint",coerce:!0,...P(J)})}function kB(Y,J){return new Y({type:"bigint",check:"bigint_format",abort:!1,format:"int64",...P(J)})}function FB(Y,J){return new Y({type:"bigint",check:"bigint_format",abort:!1,format:"uint64",...P(J)})}function PB(Y,J){return new Y({type:"symbol",...P(J)})}function TB(Y,J){return new Y({type:"undefined",...P(J)})}function ZB(Y,J){return new Y({type:"null",...P(J)})}function xB(Y){return new Y({type:"any"})}function gB(Y){return new Y({type:"unknown"})}function fB(Y,J){return new Y({type:"never",...P(J)})}function hB(Y,J){return new Y({type:"void",...P(J)})}function mB(Y,J){return new Y({type:"date",...P(J)})}function yB(Y,J){return new Y({type:"date",coerce:!0,...P(J)})}function lB(Y,J){return new Y({type:"nan",...P(J)})}function NJ(Y,J){return new Hj({check:"less_than",...P(J),value:Y,inclusive:!1})}function l8(Y,J){return new Hj({check:"less_than",...P(J),value:Y,inclusive:!0})}function OJ(Y,J){return new Bj({check:"greater_than",...P(J),value:Y,inclusive:!1})}function E8(Y,J){return new Bj({check:"greater_than",...P(J),value:Y,inclusive:!0})}function ij(Y){return OJ(0,Y)}function tj(Y){return NJ(0,Y)}function nj(Y){return l8(0,Y)}function aj(Y){return E8(0,Y)}function lQ(Y,J){return new vU({check:"multiple_of",...P(J),value:Y})}function qX(Y,J){return new FU({check:"max_size",...P(J),maximum:Y})}function DJ(Y,J){return new PU({check:"min_size",...P(J),minimum:Y})}function Pq(Y,J){return new TU({check:"size_equals",...P(J),size:Y})}function Tq(Y,J){return new ZU({check:"max_length",...P(J),maximum:Y})}function nJ(Y,J){return new xU({check:"min_length",...P(J),minimum:Y})}function Zq(Y,J){return new gU({check:"length_equals",...P(J),length:Y})}function Z$(Y,J){return new fU({check:"string_format",format:"regex",...P(J),pattern:Y})}function x$(Y){return new hU({check:"string_format",format:"lowercase",...P(Y)})}function g$(Y){return new mU({check:"string_format",format:"uppercase",...P(Y)})}function f$(Y,J){return new yU({check:"string_format",format:"includes",...P(J),includes:Y})}function h$(Y,J){return new lU({check:"string_format",format:"starts_with",...P(J),prefix:Y})}function m$(Y,J){return new uU({check:"string_format",format:"ends_with",...P(J),suffix:Y})}function ej(Y,J,Q){return new cU({check:"property",property:Y,schema:J,...P(Q)})}function y$(Y,J){return new bU({check:"mime_type",mime:Y,...P(J)})}function oY(Y){return new pU({check:"overwrite",tx:Y})}function l$(Y){return oY((J)=>J.normalize(Y))}function u$(){return oY((Y)=>Y.trim())}function c$(){return oY((Y)=>Y.toLowerCase())}function b$(){return oY((Y)=>Y.toUpperCase())}function p$(){return oY((Y)=>ZD(Y))}function uB(Y,J,Q){return new Y({type:"array",element:J,...P(Q)})}function s_(Y,J,Q){return new Y({type:"union",options:J,...P(Q)})}function i_(Y,J,Q){return new Y({type:"union",options:J,inclusive:!1,...P(Q)})}function t_(Y,J,Q,q){return new Y({type:"union",options:Q,discriminator:J,...P(q)})}function n_(Y,J,Q){return new Y({type:"intersection",left:J,right:Q})}function a_(Y,J,Q,q){let X=Q instanceof q0;return new Y({type:"tuple",items:J,rest:X?Q:null,...P(X?q:Q)})}function e_(Y,J,Q,q){return new Y({type:"record",keyType:J,valueType:Q,...P(q)})}function Yk(Y,J,Q,q){return new Y({type:"map",keyType:J,valueType:Q,...P(q)})}function Jk(Y,J,Q){return new Y({type:"set",valueType:J,...P(Q)})}function Qk(Y,J,Q){let q=Array.isArray(J)?Object.fromEntries(J.map((X)=>[X,X])):J;return new Y({type:"enum",entries:q,...P(Q)})}function Xk(Y,J,Q){return new Y({type:"enum",entries:J,...P(Q)})}function qk(Y,J,Q){return new Y({type:"literal",values:Array.isArray(J)?J:[J],...P(Q)})}function cB(Y,J){return new Y({type:"file",...P(J)})}function Gk(Y,J){return new Y({type:"transform",transform:J})}function $k(Y,J){return new Y({type:"optional",innerType:J})}function Wk(Y,J){return new Y({type:"nullable",innerType:J})}function jk(Y,J,Q){return new Y({type:"default",innerType:J,get defaultValue(){return typeof Q==="function"?Q():gD(Q)}})}function Kk(Y,J,Q){return new Y({type:"nonoptional",innerType:J,...P(Q)})}function zk(Y,J){return new Y({type:"success",innerType:J})}function Mk(Y,J,Q){return new Y({type:"catch",innerType:J,catchValue:typeof Q==="function"?Q:()=>Q})}function Nk(Y,J,Q){return new Y({type:"pipe",in:J,out:Q})}function Ok(Y,J){return new Y({type:"readonly",innerType:J})}function Dk(Y,J,Q){return new Y({type:"template_literal",parts:J,...P(Q)})}function Uk(Y,J){return new Y({type:"lazy",getter:J})}function Hk(Y,J){return new Y({type:"promise",innerType:J})}function bB(Y,J,Q){let q=P(Q);return q.abort??(q.abort=!0),new Y({type:"custom",check:"custom",fn:J,...q})}function pB(Y,J,Q){return new Y({type:"custom",check:"custom",fn:J,...P(Q)})}function oB(Y){let J=dB((Q)=>{return Q.addIssue=(q)=>{if(typeof q==="string")Q.issues.push($$(q,Q.value,J._zod.def));else{let X=q;if(X.fatal)X.continue=!1;X.code??(X.code="custom"),X.input??(X.input=Q.value),X.inst??(X.inst=J),X.continue??(X.continue=!J._zod.def.abort),Q.issues.push($$(X))}},Y(Q.value,Q)});return J}function dB(Y,J){let Q=new P0({check:"custom",...P(J)});return Q._zod.check=Y,Q}function rB(Y){let J=new P0({check:"describe"});return J._zod.onattach=[(Q)=>{let q=y8.get(Q)??{};y8.add(Q,{...q,description:Y})}],J._zod.check=()=>{},J}function sB(Y){let J=new P0({check:"meta"});return J._zod.onattach=[(Q)=>{let q=y8.get(Q)??{};y8.add(Q,{...q,...Y})}],J._zod.check=()=>{},J}function iB(Y,J){let Q=P(J),q=Q.truthy??["true","1","yes","on","y","enabled"],X=Q.falsy??["false","0","no","off","n","disabled"];if(Q.case!=="sensitive")q=q.map((N)=>typeof N==="string"?N.toLowerCase():N),X=X.map((N)=>typeof N==="string"?N.toLowerCase():N);let G=new Set(q),$=new Set(X),W=Y.Codec??Ij,j=Y.Boolean??Ej,K=new(Y.String??Fq)({type:"string",error:Q.error}),z=new j({type:"boolean",error:Q.error}),M=new W({type:"pipe",in:K,out:z,transform:(N,O)=>{let D=N;if(Q.case!=="sensitive")D=D.toLowerCase();if(G.has(D))return!0;else if($.has(D))return!1;else return O.issues.push({code:"invalid_value",expected:"stringbool",values:[...G,...$],input:O.value,inst:M,continue:!1}),{}},reverseTransform:(N,O)=>{if(N===!0)return q[0]||"true";else return X[0]||"false"},error:Q.error});return M}function xq(Y,J,Q,q={}){let X=P(q),G={...P(q),check:"string_format",type:"string",format:J,fn:typeof Q==="function"?Q:($)=>Q.test($),...X};if(Q instanceof RegExp)G.pattern=Q;return new Y(G)}function uQ(Y){let J=Y?.target??"draft-2020-12";if(J==="draft-4")J="draft-04";if(J==="draft-7")J="draft-07";return{processors:Y.processors??{},metadataRegistry:Y?.metadata??y8,target:J,unrepresentable:Y?.unrepresentable??"throw",override:Y?.override??(()=>{}),io:Y?.io??"output",counter:0,seen:new Map,cycles:Y?.cycles??"ref",reused:Y?.reused??"inline",external:Y?.external??void 0}}function w0(Y,J,Q={path:[],schemaPath:[]}){var q;let X=Y._zod.def,G=J.seen.get(Y);if(G){if(G.count++,Q.schemaPath.includes(Y))G.cycle=Q.path;return G.schema}let $={schema:{},count:1,cycle:void 0,path:Q.path};J.seen.set(Y,$);let W=Y._zod.toJSONSchema?.();if(W)$.schema=W;else{let K={...Q,schemaPath:[...Q.schemaPath,Y],path:Q.path};if(Y._zod.processJSONSchema)Y._zod.processJSONSchema(J,$.schema,K);else{let M=$.schema,N=J.processors[X.type];if(!N)throw Error(`[toJSONSchema]: Non-representable type encountered: ${X.type}`);N(Y,J,M,K)}let z=Y._zod.parent;if(z){if(!$.ref)$.ref=z;w0(z,J,K),J.seen.get(z).isParent=!0}}let j=J.metadataRegistry.get(Y);if(j)Object.assign($.schema,j);if(J.io==="input"&&z8(Y))delete $.schema.examples,delete $.schema.default;if(J.io==="input"&&$.schema._prefault)(q=$.schema).default??(q.default=$.schema._prefault);return delete $.schema._prefault,J.seen.get(Y).schema}function cQ(Y,J){let Q=Y.seen.get(J);if(!Q)throw Error("Unprocessed schema. This is a bug in Zod.");let q=new Map;for(let $ of Y.seen.entries()){let W=Y.metadataRegistry.get($[0])?.id;if(W){let j=q.get(W);if(j&&j!==$[0])throw Error(`Duplicate schema id "${W}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);q.set(W,$[0])}}let X=($)=>{let W=Y.target==="draft-2020-12"?"$defs":"definitions";if(Y.external){let z=Y.external.registry.get($[0])?.id,M=Y.external.uri??((O)=>O);if(z)return{ref:M(z)};let N=$[1].defId??$[1].schema.id??`schema${Y.counter++}`;return $[1].defId=N,{defId:N,ref:`${M("__shared")}#/${W}/${N}`}}if($[1]===Q)return{ref:"#"};let j=`#/${W}/`,K=$[1].schema.id??`__schema${Y.counter++}`;return{defId:K,ref:j+K}},G=($)=>{if($[1].schema.$ref)return;let W=$[1],{ref:j,defId:K}=X($);if(W.def={...W.schema},K)W.defId=K;let z=W.schema;for(let M in z)delete z[M];z.$ref=j};if(Y.cycles==="throw")for(let $ of Y.seen.entries()){let W=$[1];if(W.cycle)throw Error(`Cycle detected: #/${W.cycle?.join("/")}/<root>
|
|
73
|
+
|
|
74
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let $ of Y.seen.entries()){let W=$[1];if(J===$[0]){G($);continue}if(Y.external){let j=Y.external.registry.get($[0])?.id;if(J!==$[0]&&j){G($);continue}}if(Y.metadataRegistry.get($[0])?.id){G($);continue}if(W.cycle){G($);continue}if(W.count>1){if(Y.reused==="ref"){G($);continue}}}}function bQ(Y,J){let Q=Y.seen.get(J);if(!Q)throw Error("Unprocessed schema. This is a bug in Zod.");let q=($)=>{let W=Y.seen.get($);if(W.ref===null)return;let j=W.def??W.schema,K={...j},z=W.ref;if(W.ref=null,z){q(z);let N=Y.seen.get(z),O=N.schema;if(O.$ref&&(Y.target==="draft-07"||Y.target==="draft-04"||Y.target==="openapi-3.0"))j.allOf=j.allOf??[],j.allOf.push(O);else Object.assign(j,O);if(Object.assign(j,K),$._zod.parent===z)for(let D in j){if(D==="$ref"||D==="allOf")continue;if(!(D in K))delete j[D]}if(O.$ref&&N.def)for(let D in j){if(D==="$ref"||D==="allOf")continue;if(D in N.def&&JSON.stringify(j[D])===JSON.stringify(N.def[D]))delete j[D]}}let M=$._zod.parent;if(M&&M!==z){q(M);let N=Y.seen.get(M);if(N?.schema.$ref){if(j.$ref=N.schema.$ref,N.def)for(let O in j){if(O==="$ref"||O==="allOf")continue;if(O in N.def&&JSON.stringify(j[O])===JSON.stringify(N.def[O]))delete j[O]}}}Y.override({zodSchema:$,jsonSchema:j,path:W.path??[]})};for(let $ of[...Y.seen.entries()].reverse())q($[0]);let X={};if(Y.target==="draft-2020-12")X.$schema="https://json-schema.org/draft/2020-12/schema";else if(Y.target==="draft-07")X.$schema="http://json-schema.org/draft-07/schema#";else if(Y.target==="draft-04")X.$schema="http://json-schema.org/draft-04/schema#";else if(Y.target==="openapi-3.0");if(Y.external?.uri){let $=Y.external.registry.get(J)?.id;if(!$)throw Error("Schema is missing an `id` property");X.$id=Y.external.uri($)}Object.assign(X,Q.def??Q.schema);let G=Y.external?.defs??{};for(let $ of Y.seen.entries()){let W=$[1];if(W.def&&W.defId)G[W.defId]=W.def}if(Y.external);else if(Object.keys(G).length>0)if(Y.target==="draft-2020-12")X.$defs=G;else X.definitions=G;try{let $=JSON.parse(JSON.stringify(X));return Object.defineProperty($,"~standard",{value:{...J["~standard"],jsonSchema:{input:eX(J,"input",Y.processors),output:eX(J,"output",Y.processors)}},enumerable:!1,writable:!1}),$}catch($){throw Error("Error converting schema to JSON.")}}function z8(Y,J){let Q=J??{seen:new Set};if(Q.seen.has(Y))return!1;Q.seen.add(Y);let q=Y._zod.def;if(q.type==="transform")return!0;if(q.type==="array")return z8(q.element,Q);if(q.type==="set")return z8(q.valueType,Q);if(q.type==="lazy")return z8(q.getter(),Q);if(q.type==="promise"||q.type==="optional"||q.type==="nonoptional"||q.type==="nullable"||q.type==="readonly"||q.type==="default"||q.type==="prefault")return z8(q.innerType,Q);if(q.type==="intersection")return z8(q.left,Q)||z8(q.right,Q);if(q.type==="record"||q.type==="map")return z8(q.keyType,Q)||z8(q.valueType,Q);if(q.type==="pipe")return z8(q.in,Q)||z8(q.out,Q);if(q.type==="object"){for(let X in q.shape)if(z8(q.shape[X],Q))return!0;return!1}if(q.type==="union"){for(let X of q.options)if(z8(X,Q))return!0;return!1}if(q.type==="tuple"){for(let X of q.items)if(z8(X,Q))return!0;if(q.rest&&z8(q.rest,Q))return!0;return!1}return!1}var tB=(Y,J={})=>(Q)=>{let q=uQ({...Q,processors:J});return w0(Y,q),cQ(q,Y),bQ(q,Y)},eX=(Y,J,Q={})=>(q)=>{let{libraryOptions:X,target:G}=q??{},$=uQ({...X??{},target:G,io:J,processors:Q});return w0(Y,$),cQ($,Y),bQ($,Y)},Bk={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},nB=(Y,J,Q,q)=>{let X=Q;X.type="string";let{minimum:G,maximum:$,format:W,patterns:j,contentEncoding:K}=Y._zod.bag;if(typeof G==="number")X.minLength=G;if(typeof $==="number")X.maxLength=$;if(W){if(X.format=Bk[W]??W,X.format==="")delete X.format;if(W==="time")delete X.format}if(K)X.contentEncoding=K;if(j&&j.size>0){let z=[...j];if(z.length===1)X.pattern=z[0].source;else if(z.length>1)X.allOf=[...z.map((M)=>({...J.target==="draft-07"||J.target==="draft-04"||J.target==="openapi-3.0"?{type:"string"}:{},pattern:M.source}))]}},aB=(Y,J,Q,q)=>{let X=Q,{minimum:G,maximum:$,format:W,multipleOf:j,exclusiveMaximum:K,exclusiveMinimum:z}=Y._zod.bag;if(typeof W==="string"&&W.includes("int"))X.type="integer";else X.type="number";if(typeof z==="number")if(J.target==="draft-04"||J.target==="openapi-3.0")X.minimum=z,X.exclusiveMinimum=!0;else X.exclusiveMinimum=z;if(typeof G==="number"){if(X.minimum=G,typeof z==="number"&&J.target!=="draft-04")if(z>=G)delete X.minimum;else delete X.exclusiveMinimum}if(typeof K==="number")if(J.target==="draft-04"||J.target==="openapi-3.0")X.maximum=K,X.exclusiveMaximum=!0;else X.exclusiveMaximum=K;if(typeof $==="number"){if(X.maximum=$,typeof K==="number"&&J.target!=="draft-04")if(K<=$)delete X.maximum;else delete X.exclusiveMaximum}if(typeof j==="number")X.multipleOf=j},eB=(Y,J,Q,q)=>{Q.type="boolean"},YR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("BigInt cannot be represented in JSON Schema")},JR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("Symbols cannot be represented in JSON Schema")},QR=(Y,J,Q,q)=>{if(J.target==="openapi-3.0")Q.type="string",Q.nullable=!0,Q.enum=[null];else Q.type="null"},XR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("Undefined cannot be represented in JSON Schema")},qR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("Void cannot be represented in JSON Schema")},GR=(Y,J,Q,q)=>{Q.not={}},$R=(Y,J,Q,q)=>{},WR=(Y,J,Q,q)=>{},jR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("Date cannot be represented in JSON Schema")},KR=(Y,J,Q,q)=>{let X=Y._zod.def,G=Jj(X.entries);if(G.every(($)=>typeof $==="number"))Q.type="number";if(G.every(($)=>typeof $==="string"))Q.type="string";Q.enum=G},zR=(Y,J,Q,q)=>{let X=Y._zod.def,G=[];for(let $ of X.values)if($===void 0){if(J.unrepresentable==="throw")throw Error("Literal `undefined` cannot be represented in JSON Schema")}else if(typeof $==="bigint")if(J.unrepresentable==="throw")throw Error("BigInt literals cannot be represented in JSON Schema");else G.push(Number($));else G.push($);if(G.length===0);else if(G.length===1){let $=G[0];if(Q.type=$===null?"null":typeof $,J.target==="draft-04"||J.target==="openapi-3.0")Q.enum=[$];else Q.const=$}else{if(G.every(($)=>typeof $==="number"))Q.type="number";if(G.every(($)=>typeof $==="string"))Q.type="string";if(G.every(($)=>typeof $==="boolean"))Q.type="boolean";if(G.every(($)=>$===null))Q.type="null";Q.enum=G}},MR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("NaN cannot be represented in JSON Schema")},NR=(Y,J,Q,q)=>{let X=Q,G=Y._zod.pattern;if(!G)throw Error("Pattern not found in template literal");X.type="string",X.pattern=G.source},OR=(Y,J,Q,q)=>{let X=Q,G={type:"string",format:"binary",contentEncoding:"binary"},{minimum:$,maximum:W,mime:j}=Y._zod.bag;if($!==void 0)G.minLength=$;if(W!==void 0)G.maxLength=W;if(j)if(j.length===1)G.contentMediaType=j[0],Object.assign(X,G);else Object.assign(X,G),X.anyOf=j.map((K)=>({contentMediaType:K}));else Object.assign(X,G)},DR=(Y,J,Q,q)=>{Q.type="boolean"},UR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("Custom types cannot be represented in JSON Schema")},HR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("Function types cannot be represented in JSON Schema")},BR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("Transforms cannot be represented in JSON Schema")},RR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("Map cannot be represented in JSON Schema")},VR=(Y,J,Q,q)=>{if(J.unrepresentable==="throw")throw Error("Set cannot be represented in JSON Schema")},LR=(Y,J,Q,q)=>{let X=Q,G=Y._zod.def,{minimum:$,maximum:W}=Y._zod.bag;if(typeof $==="number")X.minItems=$;if(typeof W==="number")X.maxItems=W;X.type="array",X.items=w0(G.element,J,{...q,path:[...q.path,"items"]})},ER=(Y,J,Q,q)=>{let X=Q,G=Y._zod.def;X.type="object",X.properties={};let $=G.shape;for(let K in $)X.properties[K]=w0($[K],J,{...q,path:[...q.path,"properties",K]});let W=new Set(Object.keys($)),j=new Set([...W].filter((K)=>{let z=G.shape[K]._zod;if(J.io==="input")return z.optin===void 0;else return z.optout===void 0}));if(j.size>0)X.required=Array.from(j);if(G.catchall?._zod.def.type==="never")X.additionalProperties=!1;else if(!G.catchall){if(J.io==="output")X.additionalProperties=!1}else if(G.catchall)X.additionalProperties=w0(G.catchall,J,{...q,path:[...q.path,"additionalProperties"]})},YK=(Y,J,Q,q)=>{let X=Y._zod.def,G=X.inclusive===!1,$=X.options.map((W,j)=>w0(W,J,{...q,path:[...q.path,G?"oneOf":"anyOf",j]}));if(G)Q.oneOf=$;else Q.anyOf=$},wR=(Y,J,Q,q)=>{let X=Y._zod.def,G=w0(X.left,J,{...q,path:[...q.path,"allOf",0]}),$=w0(X.right,J,{...q,path:[...q.path,"allOf",1]}),W=(K)=>("allOf"in K)&&Object.keys(K).length===1,j=[...W(G)?G.allOf:[G],...W($)?$.allOf:[$]];Q.allOf=j},AR=(Y,J,Q,q)=>{let X=Q,G=Y._zod.def;X.type="array";let $=J.target==="draft-2020-12"?"prefixItems":"items",W=J.target==="draft-2020-12"?"items":J.target==="openapi-3.0"?"items":"additionalItems",j=G.items.map((N,O)=>w0(N,J,{...q,path:[...q.path,$,O]})),K=G.rest?w0(G.rest,J,{...q,path:[...q.path,W,...J.target==="openapi-3.0"?[G.items.length]:[]]}):null;if(J.target==="draft-2020-12"){if(X.prefixItems=j,K)X.items=K}else if(J.target==="openapi-3.0"){if(X.items={anyOf:j},K)X.items.anyOf.push(K);if(X.minItems=j.length,!K)X.maxItems=j.length}else if(X.items=j,K)X.additionalItems=K;let{minimum:z,maximum:M}=Y._zod.bag;if(typeof z==="number")X.minItems=z;if(typeof M==="number")X.maxItems=M},CR=(Y,J,Q,q)=>{let X=Q,G=Y._zod.def;X.type="object";let $=G.keyType,W=$._zod.bag?.patterns;if(G.mode==="loose"&&W&&W.size>0){let K=w0(G.valueType,J,{...q,path:[...q.path,"patternProperties","*"]});X.patternProperties={};for(let z of W)X.patternProperties[z.source]=K}else{if(J.target==="draft-07"||J.target==="draft-2020-12")X.propertyNames=w0(G.keyType,J,{...q,path:[...q.path,"propertyNames"]});X.additionalProperties=w0(G.valueType,J,{...q,path:[...q.path,"additionalProperties"]})}let j=$._zod.values;if(j){let K=[...j].filter((z)=>typeof z==="string"||typeof z==="number");if(K.length>0)X.required=K}},IR=(Y,J,Q,q)=>{let X=Y._zod.def,G=w0(X.innerType,J,q),$=J.seen.get(Y);if(J.target==="openapi-3.0")$.ref=X.innerType,Q.nullable=!0;else Q.anyOf=[G,{type:"null"}]},SR=(Y,J,Q,q)=>{let X=Y._zod.def;w0(X.innerType,J,q);let G=J.seen.get(Y);G.ref=X.innerType},vR=(Y,J,Q,q)=>{let X=Y._zod.def;w0(X.innerType,J,q);let G=J.seen.get(Y);G.ref=X.innerType,Q.default=JSON.parse(JSON.stringify(X.defaultValue))},_R=(Y,J,Q,q)=>{let X=Y._zod.def;w0(X.innerType,J,q);let G=J.seen.get(Y);if(G.ref=X.innerType,J.io==="input")Q._prefault=JSON.parse(JSON.stringify(X.defaultValue))},kR=(Y,J,Q,q)=>{let X=Y._zod.def;w0(X.innerType,J,q);let G=J.seen.get(Y);G.ref=X.innerType;let $;try{$=X.catchValue(void 0)}catch{throw Error("Dynamic catch values are not supported in JSON Schema")}Q.default=$},FR=(Y,J,Q,q)=>{let X=Y._zod.def,G=J.io==="input"?X.in._zod.def.type==="transform"?X.out:X.in:X.out;w0(G,J,q);let $=J.seen.get(Y);$.ref=G},PR=(Y,J,Q,q)=>{let X=Y._zod.def;w0(X.innerType,J,q);let G=J.seen.get(Y);G.ref=X.innerType,Q.readOnly=!0},TR=(Y,J,Q,q)=>{let X=Y._zod.def;w0(X.innerType,J,q);let G=J.seen.get(Y);G.ref=X.innerType},JK=(Y,J,Q,q)=>{let X=Y._zod.def;w0(X.innerType,J,q);let G=J.seen.get(Y);G.ref=X.innerType},ZR=(Y,J,Q,q)=>{let X=Y._zod.innerType;w0(X,J,q);let G=J.seen.get(Y);G.ref=X},oW={string:nB,number:aB,boolean:eB,bigint:YR,symbol:JR,null:QR,undefined:XR,void:qR,never:GR,any:$R,unknown:WR,date:jR,enum:KR,literal:zR,nan:MR,template_literal:NR,file:OR,success:DR,custom:UR,function:HR,transform:BR,map:RR,set:VR,array:LR,object:ER,union:YK,intersection:wR,tuple:AR,record:CR,nullable:IR,nonoptional:SR,default:vR,prefault:_R,catch:kR,pipe:FR,readonly:PR,promise:TR,optional:JK,lazy:ZR};function xR(Y,J){if("_idmap"in Y){let q=Y,X=uQ({...J,processors:oW}),G={};for(let j of q._idmap.entries()){let[K,z]=j;w0(z,X)}let $={},W={registry:q,uri:J?.uri,defs:G};X.external=W;for(let j of q._idmap.entries()){let[K,z]=j;cQ(X,z),$[K]=bQ(X,z)}if(Object.keys(G).length>0){let j=X.target==="draft-2020-12"?"$defs":"definitions";$.__shared={[j]:G}}return{schemas:$}}let Q=uQ({...J,processors:oW});return w0(Y,Q),cQ(Q,Y),bQ(Q,Y)}class gR{get metadataRegistry(){return this.ctx.metadataRegistry}get target(){return this.ctx.target}get unrepresentable(){return this.ctx.unrepresentable}get override(){return this.ctx.override}get io(){return this.ctx.io}get counter(){return this.ctx.counter}set counter(Y){this.ctx.counter=Y}get seen(){return this.ctx.seen}constructor(Y){let J=Y?.target??"draft-2020-12";if(J==="draft-4")J="draft-04";if(J==="draft-7")J="draft-07";this.ctx=uQ({processors:oW,target:J,...Y?.metadata&&{metadata:Y.metadata},...Y?.unrepresentable&&{unrepresentable:Y.unrepresentable},...Y?.override&&{override:Y.override},...Y?.io&&{io:Y.io}})}process(Y,J={path:[],schemaPath:[]}){return w0(Y,this.ctx,J)}emit(Y,J){if(J){if(J.cycles)this.ctx.cycles=J.cycles;if(J.reused)this.ctx.reused=J.reused;if(J.external)this.ctx.external=J.external}cQ(this.ctx,Y);let Q=bQ(this.ctx,Y),{"~standard":q,...X}=Q;return X}}var Rk={},fR={};e8(fR,{xor:()=>oV,xid:()=>DV,void:()=>yV,uuidv7:()=>$V,uuidv6:()=>GV,uuidv4:()=>qV,uuid:()=>XV,url:()=>WV,unknown:()=>aJ,union:()=>M9,undefined:()=>hV,ulid:()=>OV,uint64:()=>gV,uint32:()=>TV,tuple:()=>CK,transform:()=>O9,templateLiteral:()=>q6,symbol:()=>fV,superRefine:()=>nK,success:()=>J6,stringbool:()=>M6,stringFormat:()=>IV,string:()=>K$,strictObject:()=>bV,set:()=>tV,refine:()=>tK,record:()=>IK,readonly:()=>pK,promise:()=>G6,preprocess:()=>O6,prefault:()=>hK,pipe:()=>Xq,partialRecord:()=>rV,optional:()=>Jq,object:()=>cV,number:()=>jK,nullish:()=>Y6,nullable:()=>Qq,null:()=>OK,nonoptional:()=>mK,never:()=>K9,nativeEnum:()=>nV,nanoid:()=>zV,nan:()=>Q6,meta:()=>K6,map:()=>iV,mac:()=>BV,looseRecord:()=>sV,looseObject:()=>pV,literal:()=>aV,lazy:()=>rK,ksuid:()=>UV,keyof:()=>uV,jwt:()=>CV,json:()=>N6,ipv6:()=>RV,ipv4:()=>HV,intersection:()=>wK,int64:()=>xV,int32:()=>PV,int:()=>z$,instanceof:()=>z6,httpUrl:()=>jV,hostname:()=>SV,hex:()=>vV,hash:()=>_V,guid:()=>QV,function:()=>M$,float64:()=>FV,float32:()=>kV,file:()=>eV,exactOptional:()=>TK,enum:()=>N9,emoji:()=>KV,email:()=>JV,e164:()=>AV,discriminatedUnion:()=>dV,describe:()=>j6,date:()=>lV,custom:()=>W6,cuid2:()=>NV,cuid:()=>MV,codec:()=>X6,cidrv6:()=>LV,cidrv4:()=>VV,check:()=>$6,catch:()=>uK,boolean:()=>KK,bigint:()=>ZV,base64url:()=>wV,base64:()=>EV,array:()=>lq,any:()=>mV,_function:()=>M$,_default:()=>gK,_ZodString:()=>o$,ZodXor:()=>VK,ZodXID:()=>a$,ZodVoid:()=>BK,ZodUnknown:()=>UK,ZodUnion:()=>cq,ZodUndefined:()=>MK,ZodUUID:()=>OY,ZodURL:()=>fq,ZodULID:()=>n$,ZodType:()=>G0,ZodTuple:()=>AK,ZodTransform:()=>FK,ZodTemplateLiteral:()=>oK,ZodSymbol:()=>zK,ZodSuccess:()=>yK,ZodStringFormat:()=>I0,ZodString:()=>gq,ZodSet:()=>vK,ZodRecord:()=>bq,ZodReadonly:()=>bK,ZodPromise:()=>sK,ZodPrefault:()=>fK,ZodPipe:()=>H9,ZodOptional:()=>D9,ZodObject:()=>uq,ZodNumberFormat:()=>WQ,ZodNumber:()=>hq,ZodNullable:()=>ZK,ZodNull:()=>NK,ZodNonOptional:()=>U9,ZodNever:()=>HK,ZodNanoID:()=>s$,ZodNaN:()=>cK,ZodMap:()=>SK,ZodMAC:()=>WK,ZodLiteral:()=>_K,ZodLazy:()=>dK,ZodKSUID:()=>e$,ZodJWT:()=>W9,ZodIntersection:()=>EK,ZodIPv6:()=>J9,ZodIPv4:()=>Y9,ZodGUID:()=>Yq,ZodFunction:()=>iK,ZodFile:()=>kK,ZodExactOptional:()=>PK,ZodEnum:()=>pQ,ZodEmoji:()=>r$,ZodEmail:()=>d$,ZodE164:()=>$9,ZodDiscriminatedUnion:()=>LK,ZodDefault:()=>xK,ZodDate:()=>z9,ZodCustomStringFormat:()=>GX,ZodCustom:()=>pq,ZodCodec:()=>B9,ZodCatch:()=>lK,ZodCUID2:()=>t$,ZodCUID:()=>i$,ZodCIDRv6:()=>X9,ZodCIDRv4:()=>Q9,ZodBoolean:()=>mq,ZodBigIntFormat:()=>j9,ZodBigInt:()=>yq,ZodBase64URL:()=>G9,ZodBase64:()=>q9,ZodArray:()=>RK,ZodAny:()=>DK});var hR={};e8(hR,{uppercase:()=>g$,trim:()=>u$,toUpperCase:()=>b$,toLowerCase:()=>c$,startsWith:()=>h$,slugify:()=>p$,size:()=>Pq,regex:()=>Z$,property:()=>ej,positive:()=>ij,overwrite:()=>oY,normalize:()=>l$,nonpositive:()=>nj,nonnegative:()=>aj,negative:()=>tj,multipleOf:()=>lQ,minSize:()=>DJ,minLength:()=>nJ,mime:()=>y$,maxSize:()=>qX,maxLength:()=>Tq,lte:()=>l8,lt:()=>NJ,lowercase:()=>x$,length:()=>Zq,includes:()=>f$,gte:()=>E8,gt:()=>OJ,endsWith:()=>m$});var QK={};e8(QK,{time:()=>lR,duration:()=>uR,datetime:()=>mR,date:()=>yR,ZodISOTime:()=>GK,ZodISODuration:()=>$K,ZodISODateTime:()=>XK,ZodISODate:()=>qK});var XK=V("ZodISODateTime",(Y,J)=>{XH.init(Y,J),I0.init(Y,J)});function mR(Y){return DB(XK,Y)}var qK=V("ZodISODate",(Y,J)=>{qH.init(Y,J),I0.init(Y,J)});function yR(Y){return UB(qK,Y)}var GK=V("ZodISOTime",(Y,J)=>{GH.init(Y,J),I0.init(Y,J)});function lR(Y){return HB(GK,Y)}var $K=V("ZodISODuration",(Y,J)=>{$H.init(Y,J),I0.init(Y,J)});function uR(Y){return BB($K,Y)}var cR=(Y,J)=>{Xj.init(Y,J),Y.name="ZodError",Object.defineProperties(Y,{format:{value:(Q)=>Gj(Y,Q)},flatten:{value:(Q)=>qj(Y,Q)},addIssue:{value:(Q)=>{Y.issues.push(Q),Y.message=JSON.stringify(Y.issues,q$,2)}},addIssues:{value:(Q)=>{Y.issues.push(...Q),Y.message=JSON.stringify(Y.issues,q$,2)}},isEmpty:{get(){return Y.issues.length===0}}})},Vk=V("ZodError",cR),Z8=V("ZodError",cR,{Parent:Error}),bR=Aq(Z8),pR=Cq(Z8),oR=Iq(Z8),dR=Sq(Z8),rR=$j(Z8),sR=Wj(Z8),iR=jj(Z8),tR=Kj(Z8),nR=zj(Z8),aR=Mj(Z8),eR=Nj(Z8),YV=Oj(Z8),G0=V("ZodType",(Y,J)=>{return q0.init(Y,J),Object.assign(Y["~standard"],{jsonSchema:{input:eX(Y,"input"),output:eX(Y,"output")}}),Y.toJSONSchema=tB(Y,{}),Y.def=J,Y.type=J.type,Object.defineProperty(Y,"_def",{value:J}),Y.check=(...Q)=>{return Y.clone(N0.mergeDefs(J,{checks:[...J.checks??[],...Q.map((q)=>typeof q==="function"?{_zod:{check:q,def:{check:"custom"},onattach:[]}}:q)]}),{parent:!0})},Y.with=Y.check,Y.clone=(Q,q)=>b8(Y,Q,q),Y.brand=()=>Y,Y.register=(Q,q)=>{return Q.add(Y,q),Y},Y.parse=(Q,q)=>bR(Y,Q,q,{callee:Y.parse}),Y.safeParse=(Q,q)=>oR(Y,Q,q),Y.parseAsync=async(Q,q)=>pR(Y,Q,q,{callee:Y.parseAsync}),Y.safeParseAsync=async(Q,q)=>dR(Y,Q,q),Y.spa=Y.safeParseAsync,Y.encode=(Q,q)=>rR(Y,Q,q),Y.decode=(Q,q)=>sR(Y,Q,q),Y.encodeAsync=async(Q,q)=>iR(Y,Q,q),Y.decodeAsync=async(Q,q)=>tR(Y,Q,q),Y.safeEncode=(Q,q)=>nR(Y,Q,q),Y.safeDecode=(Q,q)=>aR(Y,Q,q),Y.safeEncodeAsync=async(Q,q)=>eR(Y,Q,q),Y.safeDecodeAsync=async(Q,q)=>YV(Y,Q,q),Y.refine=(Q,q)=>Y.check(tK(Q,q)),Y.superRefine=(Q)=>Y.check(nK(Q)),Y.overwrite=(Q)=>Y.check(oY(Q)),Y.optional=()=>Jq(Y),Y.exactOptional=()=>TK(Y),Y.nullable=()=>Qq(Y),Y.nullish=()=>Jq(Qq(Y)),Y.nonoptional=(Q)=>mK(Y,Q),Y.array=()=>lq(Y),Y.or=(Q)=>M9([Y,Q]),Y.and=(Q)=>wK(Y,Q),Y.transform=(Q)=>Xq(Y,O9(Q)),Y.default=(Q)=>gK(Y,Q),Y.prefault=(Q)=>hK(Y,Q),Y.catch=(Q)=>uK(Y,Q),Y.pipe=(Q)=>Xq(Y,Q),Y.readonly=()=>pK(Y),Y.describe=(Q)=>{let q=Y.clone();return y8.add(q,{description:Q}),q},Object.defineProperty(Y,"description",{get(){return y8.get(Y)?.description},configurable:!0}),Y.meta=(...Q)=>{if(Q.length===0)return y8.get(Y);let q=Y.clone();return y8.add(q,Q[0]),q},Y.isOptional=()=>Y.safeParse(void 0).success,Y.isNullable=()=>Y.safeParse(null).success,Y.apply=(Q)=>Q(Y),Y}),o$=V("_ZodString",(Y,J)=>{Fq.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(q,X,G)=>nB(Y,q,X,G);let Q=Y._zod.bag;Y.format=Q.format??null,Y.minLength=Q.minimum??null,Y.maxLength=Q.maximum??null,Y.regex=(...q)=>Y.check(Z$(...q)),Y.includes=(...q)=>Y.check(f$(...q)),Y.startsWith=(...q)=>Y.check(h$(...q)),Y.endsWith=(...q)=>Y.check(m$(...q)),Y.min=(...q)=>Y.check(nJ(...q)),Y.max=(...q)=>Y.check(Tq(...q)),Y.length=(...q)=>Y.check(Zq(...q)),Y.nonempty=(...q)=>Y.check(nJ(1,...q)),Y.lowercase=(q)=>Y.check(x$(q)),Y.uppercase=(q)=>Y.check(g$(q)),Y.trim=()=>Y.check(u$()),Y.normalize=(...q)=>Y.check(l$(...q)),Y.toLowerCase=()=>Y.check(c$()),Y.toUpperCase=()=>Y.check(b$()),Y.slugify=()=>Y.check(p$())}),gq=V("ZodString",(Y,J)=>{Fq.init(Y,J),o$.init(Y,J),Y.email=(Q)=>Y.check(kj(d$,Q)),Y.url=(Q)=>Y.check(T$(fq,Q)),Y.jwt=(Q)=>Y.check(sj(W9,Q)),Y.emoji=(Q)=>Y.check(xj(r$,Q)),Y.guid=(Q)=>Y.check(j$(Yq,Q)),Y.uuid=(Q)=>Y.check(Fj(OY,Q)),Y.uuidv4=(Q)=>Y.check(Pj(OY,Q)),Y.uuidv6=(Q)=>Y.check(Tj(OY,Q)),Y.uuidv7=(Q)=>Y.check(Zj(OY,Q)),Y.nanoid=(Q)=>Y.check(gj(s$,Q)),Y.guid=(Q)=>Y.check(j$(Yq,Q)),Y.cuid=(Q)=>Y.check(fj(i$,Q)),Y.cuid2=(Q)=>Y.check(hj(t$,Q)),Y.ulid=(Q)=>Y.check(mj(n$,Q)),Y.base64=(Q)=>Y.check(oj(q9,Q)),Y.base64url=(Q)=>Y.check(dj(G9,Q)),Y.xid=(Q)=>Y.check(yj(a$,Q)),Y.ksuid=(Q)=>Y.check(lj(e$,Q)),Y.ipv4=(Q)=>Y.check(uj(Y9,Q)),Y.ipv6=(Q)=>Y.check(cj(J9,Q)),Y.cidrv4=(Q)=>Y.check(bj(Q9,Q)),Y.cidrv6=(Q)=>Y.check(pj(X9,Q)),Y.e164=(Q)=>Y.check(rj($9,Q)),Y.datetime=(Q)=>Y.check(mR(Q)),Y.date=(Q)=>Y.check(yR(Q)),Y.time=(Q)=>Y.check(lR(Q)),Y.duration=(Q)=>Y.check(uR(Q))});function K$(Y){return zB(gq,Y)}var I0=V("ZodStringFormat",(Y,J)=>{C0.init(Y,J),o$.init(Y,J)}),d$=V("ZodEmail",(Y,J)=>{sU.init(Y,J),I0.init(Y,J)});function JV(Y){return kj(d$,Y)}var Yq=V("ZodGUID",(Y,J)=>{dU.init(Y,J),I0.init(Y,J)});function QV(Y){return j$(Yq,Y)}var OY=V("ZodUUID",(Y,J)=>{rU.init(Y,J),I0.init(Y,J)});function XV(Y){return Fj(OY,Y)}function qV(Y){return Pj(OY,Y)}function GV(Y){return Tj(OY,Y)}function $V(Y){return Zj(OY,Y)}var fq=V("ZodURL",(Y,J)=>{iU.init(Y,J),I0.init(Y,J)});function WV(Y){return T$(fq,Y)}function jV(Y){return T$(fq,{protocol:/^https?$/,hostname:$Q.domain,...N0.normalizeParams(Y)})}var r$=V("ZodEmoji",(Y,J)=>{tU.init(Y,J),I0.init(Y,J)});function KV(Y){return xj(r$,Y)}var s$=V("ZodNanoID",(Y,J)=>{nU.init(Y,J),I0.init(Y,J)});function zV(Y){return gj(s$,Y)}var i$=V("ZodCUID",(Y,J)=>{aU.init(Y,J),I0.init(Y,J)});function MV(Y){return fj(i$,Y)}var t$=V("ZodCUID2",(Y,J)=>{eU.init(Y,J),I0.init(Y,J)});function NV(Y){return hj(t$,Y)}var n$=V("ZodULID",(Y,J)=>{YH.init(Y,J),I0.init(Y,J)});function OV(Y){return mj(n$,Y)}var a$=V("ZodXID",(Y,J)=>{JH.init(Y,J),I0.init(Y,J)});function DV(Y){return yj(a$,Y)}var e$=V("ZodKSUID",(Y,J)=>{QH.init(Y,J),I0.init(Y,J)});function UV(Y){return lj(e$,Y)}var Y9=V("ZodIPv4",(Y,J)=>{WH.init(Y,J),I0.init(Y,J)});function HV(Y){return uj(Y9,Y)}var WK=V("ZodMAC",(Y,J)=>{KH.init(Y,J),I0.init(Y,J)});function BV(Y){return NB(WK,Y)}var J9=V("ZodIPv6",(Y,J)=>{jH.init(Y,J),I0.init(Y,J)});function RV(Y){return cj(J9,Y)}var Q9=V("ZodCIDRv4",(Y,J)=>{zH.init(Y,J),I0.init(Y,J)});function VV(Y){return bj(Q9,Y)}var X9=V("ZodCIDRv6",(Y,J)=>{MH.init(Y,J),I0.init(Y,J)});function LV(Y){return pj(X9,Y)}var q9=V("ZodBase64",(Y,J)=>{NH.init(Y,J),I0.init(Y,J)});function EV(Y){return oj(q9,Y)}var G9=V("ZodBase64URL",(Y,J)=>{DH.init(Y,J),I0.init(Y,J)});function wV(Y){return dj(G9,Y)}var $9=V("ZodE164",(Y,J)=>{UH.init(Y,J),I0.init(Y,J)});function AV(Y){return rj($9,Y)}var W9=V("ZodJWT",(Y,J)=>{BH.init(Y,J),I0.init(Y,J)});function CV(Y){return sj(W9,Y)}var GX=V("ZodCustomStringFormat",(Y,J)=>{RH.init(Y,J),I0.init(Y,J)});function IV(Y,J,Q={}){return xq(GX,Y,J,Q)}function SV(Y){return xq(GX,"hostname",$Q.hostname,Y)}function vV(Y){return xq(GX,"hex",$Q.hex,Y)}function _V(Y,J){let Q=J?.enc??"hex",q=`${Y}_${Q}`,X=$Q[q];if(!X)throw Error(`Unrecognized hash format: ${q}`);return xq(GX,q,X,J)}var hq=V("ZodNumber",(Y,J)=>{Lj.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(q,X,G)=>aB(Y,q,X,G),Y.gt=(q,X)=>Y.check(OJ(q,X)),Y.gte=(q,X)=>Y.check(E8(q,X)),Y.min=(q,X)=>Y.check(E8(q,X)),Y.lt=(q,X)=>Y.check(NJ(q,X)),Y.lte=(q,X)=>Y.check(l8(q,X)),Y.max=(q,X)=>Y.check(l8(q,X)),Y.int=(q)=>Y.check(z$(q)),Y.safe=(q)=>Y.check(z$(q)),Y.positive=(q)=>Y.check(OJ(0,q)),Y.nonnegative=(q)=>Y.check(E8(0,q)),Y.negative=(q)=>Y.check(NJ(0,q)),Y.nonpositive=(q)=>Y.check(l8(0,q)),Y.multipleOf=(q,X)=>Y.check(lQ(q,X)),Y.step=(q,X)=>Y.check(lQ(q,X)),Y.finite=()=>Y;let Q=Y._zod.bag;Y.minValue=Math.max(Q.minimum??Number.NEGATIVE_INFINITY,Q.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,Y.maxValue=Math.min(Q.maximum??Number.POSITIVE_INFINITY,Q.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,Y.isInt=(Q.format??"").includes("int")||Number.isSafeInteger(Q.multipleOf??0.5),Y.isFinite=!0,Y.format=Q.format??null});function jK(Y){return RB(hq,Y)}var WQ=V("ZodNumberFormat",(Y,J)=>{VH.init(Y,J),hq.init(Y,J)});function z$(Y){return LB(WQ,Y)}function kV(Y){return EB(WQ,Y)}function FV(Y){return wB(WQ,Y)}function PV(Y){return AB(WQ,Y)}function TV(Y){return CB(WQ,Y)}var mq=V("ZodBoolean",(Y,J)=>{Ej.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>eB(Y,Q,q,X)});function KK(Y){return IB(mq,Y)}var yq=V("ZodBigInt",(Y,J)=>{wj.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(q,X,G)=>YR(Y,q,X,G),Y.gte=(q,X)=>Y.check(E8(q,X)),Y.min=(q,X)=>Y.check(E8(q,X)),Y.gt=(q,X)=>Y.check(OJ(q,X)),Y.gte=(q,X)=>Y.check(E8(q,X)),Y.min=(q,X)=>Y.check(E8(q,X)),Y.lt=(q,X)=>Y.check(NJ(q,X)),Y.lte=(q,X)=>Y.check(l8(q,X)),Y.max=(q,X)=>Y.check(l8(q,X)),Y.positive=(q)=>Y.check(OJ(BigInt(0),q)),Y.negative=(q)=>Y.check(NJ(BigInt(0),q)),Y.nonpositive=(q)=>Y.check(l8(BigInt(0),q)),Y.nonnegative=(q)=>Y.check(E8(BigInt(0),q)),Y.multipleOf=(q,X)=>Y.check(lQ(q,X));let Q=Y._zod.bag;Y.minValue=Q.minimum??null,Y.maxValue=Q.maximum??null,Y.format=Q.format??null});function ZV(Y){return vB(yq,Y)}var j9=V("ZodBigIntFormat",(Y,J)=>{LH.init(Y,J),yq.init(Y,J)});function xV(Y){return kB(j9,Y)}function gV(Y){return FB(j9,Y)}var zK=V("ZodSymbol",(Y,J)=>{EH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>JR(Y,Q,q,X)});function fV(Y){return PB(zK,Y)}var MK=V("ZodUndefined",(Y,J)=>{wH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>XR(Y,Q,q,X)});function hV(Y){return TB(MK,Y)}var NK=V("ZodNull",(Y,J)=>{AH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>QR(Y,Q,q,X)});function OK(Y){return ZB(NK,Y)}var DK=V("ZodAny",(Y,J)=>{CH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>$R(Y,Q,q,X)});function mV(){return xB(DK)}var UK=V("ZodUnknown",(Y,J)=>{IH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>WR(Y,Q,q,X)});function aJ(){return gB(UK)}var HK=V("ZodNever",(Y,J)=>{SH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>GR(Y,Q,q,X)});function K9(Y){return fB(HK,Y)}var BK=V("ZodVoid",(Y,J)=>{vH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>qR(Y,Q,q,X)});function yV(Y){return hB(BK,Y)}var z9=V("ZodDate",(Y,J)=>{_H.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(q,X,G)=>jR(Y,q,X,G),Y.min=(q,X)=>Y.check(E8(q,X)),Y.max=(q,X)=>Y.check(l8(q,X));let Q=Y._zod.bag;Y.minDate=Q.minimum?new Date(Q.minimum):null,Y.maxDate=Q.maximum?new Date(Q.maximum):null});function lV(Y){return mB(z9,Y)}var RK=V("ZodArray",(Y,J)=>{kH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>LR(Y,Q,q,X),Y.element=J.element,Y.min=(Q,q)=>Y.check(nJ(Q,q)),Y.nonempty=(Q)=>Y.check(nJ(1,Q)),Y.max=(Q,q)=>Y.check(Tq(Q,q)),Y.length=(Q,q)=>Y.check(Zq(Q,q)),Y.unwrap=()=>Y.element});function lq(Y,J){return uB(RK,Y,J)}function uV(Y){let J=Y._zod.def.shape;return N9(Object.keys(J))}var uq=V("ZodObject",(Y,J)=>{ZH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>ER(Y,Q,q,X),N0.defineLazy(Y,"shape",()=>{return J.shape}),Y.keyof=()=>N9(Object.keys(Y._zod.def.shape)),Y.catchall=(Q)=>Y.clone({...Y._zod.def,catchall:Q}),Y.passthrough=()=>Y.clone({...Y._zod.def,catchall:aJ()}),Y.loose=()=>Y.clone({...Y._zod.def,catchall:aJ()}),Y.strict=()=>Y.clone({...Y._zod.def,catchall:K9()}),Y.strip=()=>Y.clone({...Y._zod.def,catchall:void 0}),Y.extend=(Q)=>{return N0.extend(Y,Q)},Y.safeExtend=(Q)=>{return N0.safeExtend(Y,Q)},Y.merge=(Q)=>N0.merge(Y,Q),Y.pick=(Q)=>N0.pick(Y,Q),Y.omit=(Q)=>N0.omit(Y,Q),Y.partial=(...Q)=>N0.partial(D9,Y,Q[0]),Y.required=(...Q)=>N0.required(U9,Y,Q[0])});function cV(Y,J){let Q={type:"object",shape:Y??{},...N0.normalizeParams(J)};return new uq(Q)}function bV(Y,J){return new uq({type:"object",shape:Y,catchall:K9(),...N0.normalizeParams(J)})}function pV(Y,J){return new uq({type:"object",shape:Y,catchall:aJ(),...N0.normalizeParams(J)})}var cq=V("ZodUnion",(Y,J)=>{P$.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>YK(Y,Q,q,X),Y.options=J.options});function M9(Y,J){return new cq({type:"union",options:Y,...N0.normalizeParams(J)})}var VK=V("ZodXor",(Y,J)=>{cq.init(Y,J),xH.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>YK(Y,Q,q,X),Y.options=J.options});function oV(Y,J){return new VK({type:"union",options:Y,inclusive:!1,...N0.normalizeParams(J)})}var LK=V("ZodDiscriminatedUnion",(Y,J)=>{cq.init(Y,J),gH.init(Y,J)});function dV(Y,J,Q){return new LK({type:"union",options:J,discriminator:Y,...N0.normalizeParams(Q)})}var EK=V("ZodIntersection",(Y,J)=>{fH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>wR(Y,Q,q,X)});function wK(Y,J){return new EK({type:"intersection",left:Y,right:J})}var AK=V("ZodTuple",(Y,J)=>{Aj.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>AR(Y,Q,q,X),Y.rest=(Q)=>Y.clone({...Y._zod.def,rest:Q})});function CK(Y,J,Q){let q=J instanceof q0,X=q?Q:J;return new AK({type:"tuple",items:Y,rest:q?J:null,...N0.normalizeParams(X)})}var bq=V("ZodRecord",(Y,J)=>{hH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>CR(Y,Q,q,X),Y.keyType=J.keyType,Y.valueType=J.valueType});function IK(Y,J,Q){return new bq({type:"record",keyType:Y,valueType:J,...N0.normalizeParams(Q)})}function rV(Y,J,Q){let q=b8(Y);return q._zod.values=void 0,new bq({type:"record",keyType:q,valueType:J,...N0.normalizeParams(Q)})}function sV(Y,J,Q){return new bq({type:"record",keyType:Y,valueType:J,mode:"loose",...N0.normalizeParams(Q)})}var SK=V("ZodMap",(Y,J)=>{mH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>RR(Y,Q,q,X),Y.keyType=J.keyType,Y.valueType=J.valueType,Y.min=(...Q)=>Y.check(DJ(...Q)),Y.nonempty=(Q)=>Y.check(DJ(1,Q)),Y.max=(...Q)=>Y.check(qX(...Q)),Y.size=(...Q)=>Y.check(Pq(...Q))});function iV(Y,J,Q){return new SK({type:"map",keyType:Y,valueType:J,...N0.normalizeParams(Q)})}var vK=V("ZodSet",(Y,J)=>{yH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>VR(Y,Q,q,X),Y.min=(...Q)=>Y.check(DJ(...Q)),Y.nonempty=(Q)=>Y.check(DJ(1,Q)),Y.max=(...Q)=>Y.check(qX(...Q)),Y.size=(...Q)=>Y.check(Pq(...Q))});function tV(Y,J){return new vK({type:"set",valueType:Y,...N0.normalizeParams(J)})}var pQ=V("ZodEnum",(Y,J)=>{lH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(q,X,G)=>KR(Y,q,X,G),Y.enum=J.entries,Y.options=Object.values(J.entries);let Q=new Set(Object.keys(J.entries));Y.extract=(q,X)=>{let G={};for(let $ of q)if(Q.has($))G[$]=J.entries[$];else throw Error(`Key ${$} not found in enum`);return new pQ({...J,checks:[],...N0.normalizeParams(X),entries:G})},Y.exclude=(q,X)=>{let G={...J.entries};for(let $ of q)if(Q.has($))delete G[$];else throw Error(`Key ${$} not found in enum`);return new pQ({...J,checks:[],...N0.normalizeParams(X),entries:G})}});function N9(Y,J){let Q=Array.isArray(Y)?Object.fromEntries(Y.map((q)=>[q,q])):Y;return new pQ({type:"enum",entries:Q,...N0.normalizeParams(J)})}function nV(Y,J){return new pQ({type:"enum",entries:Y,...N0.normalizeParams(J)})}var _K=V("ZodLiteral",(Y,J)=>{uH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>zR(Y,Q,q,X),Y.values=new Set(J.values),Object.defineProperty(Y,"value",{get(){if(J.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return J.values[0]}})});function aV(Y,J){return new _K({type:"literal",values:Array.isArray(Y)?Y:[Y],...N0.normalizeParams(J)})}var kK=V("ZodFile",(Y,J)=>{cH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>OR(Y,Q,q,X),Y.min=(Q,q)=>Y.check(DJ(Q,q)),Y.max=(Q,q)=>Y.check(qX(Q,q)),Y.mime=(Q,q)=>Y.check(y$(Array.isArray(Q)?Q:[Q],q))});function eV(Y){return cB(kK,Y)}var FK=V("ZodTransform",(Y,J)=>{bH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>BR(Y,Q,q,X),Y._zod.parse=(Q,q)=>{if(q.direction==="backward")throw new Eq(Y.constructor.name);Q.addIssue=(G)=>{if(typeof G==="string")Q.issues.push(N0.issue(G,Q.value,J));else{let $=G;if($.fatal)$.continue=!1;$.code??($.code="custom"),$.input??($.input=Q.value),$.inst??($.inst=Y),Q.issues.push(N0.issue($))}};let X=J.transform(Q.value,Q);if(X instanceof Promise)return X.then((G)=>{return Q.value=G,Q});return Q.value=X,Q}});function O9(Y){return new FK({type:"transform",transform:Y})}var D9=V("ZodOptional",(Y,J)=>{Cj.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>JK(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType});function Jq(Y){return new D9({type:"optional",innerType:Y})}var PK=V("ZodExactOptional",(Y,J)=>{pH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>JK(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType});function TK(Y){return new PK({type:"optional",innerType:Y})}var ZK=V("ZodNullable",(Y,J)=>{oH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>IR(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType});function Qq(Y){return new ZK({type:"nullable",innerType:Y})}function Y6(Y){return Jq(Qq(Y))}var xK=V("ZodDefault",(Y,J)=>{dH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>vR(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType,Y.removeDefault=Y.unwrap});function gK(Y,J){return new xK({type:"default",innerType:Y,get defaultValue(){return typeof J==="function"?J():N0.shallowClone(J)}})}var fK=V("ZodPrefault",(Y,J)=>{rH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>_R(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType});function hK(Y,J){return new fK({type:"prefault",innerType:Y,get defaultValue(){return typeof J==="function"?J():N0.shallowClone(J)}})}var U9=V("ZodNonOptional",(Y,J)=>{sH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>SR(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType});function mK(Y,J){return new U9({type:"nonoptional",innerType:Y,...N0.normalizeParams(J)})}var yK=V("ZodSuccess",(Y,J)=>{iH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>DR(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType});function J6(Y){return new yK({type:"success",innerType:Y})}var lK=V("ZodCatch",(Y,J)=>{tH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>kR(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType,Y.removeCatch=Y.unwrap});function uK(Y,J){return new lK({type:"catch",innerType:Y,catchValue:typeof J==="function"?J:()=>J})}var cK=V("ZodNaN",(Y,J)=>{nH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>MR(Y,Q,q,X)});function Q6(Y){return lB(cK,Y)}var H9=V("ZodPipe",(Y,J)=>{aH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>FR(Y,Q,q,X),Y.in=J.in,Y.out=J.out});function Xq(Y,J){return new H9({type:"pipe",in:Y,out:J})}var B9=V("ZodCodec",(Y,J)=>{H9.init(Y,J),Ij.init(Y,J)});function X6(Y,J,Q){return new B9({type:"pipe",in:Y,out:J,transform:Q.decode,reverseTransform:Q.encode})}var bK=V("ZodReadonly",(Y,J)=>{eH.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>PR(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType});function pK(Y){return new bK({type:"readonly",innerType:Y})}var oK=V("ZodTemplateLiteral",(Y,J)=>{YB.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>NR(Y,Q,q,X)});function q6(Y,J){return new oK({type:"template_literal",parts:Y,...N0.normalizeParams(J)})}var dK=V("ZodLazy",(Y,J)=>{XB.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>ZR(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.getter()});function rK(Y){return new dK({type:"lazy",getter:Y})}var sK=V("ZodPromise",(Y,J)=>{QB.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>TR(Y,Q,q,X),Y.unwrap=()=>Y._zod.def.innerType});function G6(Y){return new sK({type:"promise",innerType:Y})}var iK=V("ZodFunction",(Y,J)=>{JB.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>HR(Y,Q,q,X)});function M$(Y){return new iK({type:"function",input:Array.isArray(Y?.input)?CK(Y?.input):Y?.input??lq(aJ()),output:Y?.output??aJ()})}var pq=V("ZodCustom",(Y,J)=>{qB.init(Y,J),G0.init(Y,J),Y._zod.processJSONSchema=(Q,q,X)=>UR(Y,Q,q,X)});function $6(Y){let J=new P0({check:"custom"});return J._zod.check=Y,J}function W6(Y,J){return bB(pq,Y??(()=>!0),J)}function tK(Y,J={}){return pB(pq,Y,J)}function nK(Y){return oB(Y)}var j6=rB,K6=sB;function z6(Y,J={}){let Q=new pq({type:"custom",check:"custom",fn:(q)=>q instanceof Y,abort:!0,...N0.normalizeParams(J)});return Q._zod.bag.Class=Y,Q._zod.check=(q)=>{if(!(q.value instanceof Y))q.issues.push({code:"invalid_type",expected:Y.name,input:q.value,inst:Q,path:[...Q._zod.def.path??[]]})},Q}var M6=(...Y)=>iB({Codec:B9,Boolean:mq,String:gq},...Y);function N6(Y){let J=rK(()=>{return M9([K$(Y),jK(),KK(),OK(),lq(J),IK(K$(),J)])});return J}function O6(Y,J){return Xq(O9(Y),J)}var Lk={invalid_type:"invalid_type",too_big:"too_big",too_small:"too_small",invalid_format:"invalid_format",not_multiple_of:"not_multiple_of",unrecognized_keys:"unrecognized_keys",invalid_union:"invalid_union",invalid_key:"invalid_key",invalid_element:"invalid_element",invalid_value:"invalid_value",custom:"custom"};function Ek(Y){$8({customError:Y})}function wk(){return $8().customError}var dW;(function(Y){})(dW||(dW={}));var m={...fR,...hR,iso:QK},Ak=new Set(["$schema","$ref","$defs","definitions","$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor","type","enum","const","anyOf","oneOf","allOf","not","properties","required","additionalProperties","patternProperties","propertyNames","minProperties","maxProperties","items","prefixItems","additionalItems","minItems","maxItems","uniqueItems","contains","minContains","maxContains","minLength","maxLength","pattern","format","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","description","default","contentEncoding","contentMediaType","contentSchema","unevaluatedItems","unevaluatedProperties","if","then","else","dependentSchemas","dependentRequired","nullable","readOnly"]);function Ck(Y,J){let Q=Y.$schema;if(Q==="https://json-schema.org/draft/2020-12/schema")return"draft-2020-12";if(Q==="http://json-schema.org/draft-07/schema#")return"draft-7";if(Q==="http://json-schema.org/draft-04/schema#")return"draft-4";return J??"draft-2020-12"}function Ik(Y,J){if(!Y.startsWith("#"))throw Error("External $ref is not supported, only local refs (#/...) are allowed");let Q=Y.slice(1).split("/").filter(Boolean);if(Q.length===0)return J.rootSchema;let q=J.version==="draft-2020-12"?"$defs":"definitions";if(Q[0]===q){let X=Q[1];if(!X||!J.defs[X])throw Error(`Reference not found: ${Y}`);return J.defs[X]}throw Error(`Reference not found: ${Y}`)}function D6(Y,J){if(Y.not!==void 0){if(typeof Y.not==="object"&&Object.keys(Y.not).length===0)return m.never();throw Error("not is not supported in Zod (except { not: {} } for never)")}if(Y.unevaluatedItems!==void 0)throw Error("unevaluatedItems is not supported");if(Y.unevaluatedProperties!==void 0)throw Error("unevaluatedProperties is not supported");if(Y.if!==void 0||Y.then!==void 0||Y.else!==void 0)throw Error("Conditional schemas (if/then/else) are not supported");if(Y.dependentSchemas!==void 0||Y.dependentRequired!==void 0)throw Error("dependentSchemas and dependentRequired are not supported");if(Y.$ref){let X=Y.$ref;if(J.refs.has(X))return J.refs.get(X);if(J.processing.has(X))return m.lazy(()=>{if(!J.refs.has(X))throw Error(`Circular reference not resolved: ${X}`);return J.refs.get(X)});J.processing.add(X);let G=Ik(X,J),$=X8(G,J);return J.refs.set(X,$),J.processing.delete(X),$}if(Y.enum!==void 0){let X=Y.enum;if(J.version==="openapi-3.0"&&Y.nullable===!0&&X.length===1&&X[0]===null)return m.null();if(X.length===0)return m.never();if(X.length===1)return m.literal(X[0]);if(X.every(($)=>typeof $==="string"))return m.enum(X);let G=X.map(($)=>m.literal($));if(G.length<2)return G[0];return m.union([G[0],G[1],...G.slice(2)])}if(Y.const!==void 0)return m.literal(Y.const);let Q=Y.type;if(Array.isArray(Q)){let X=Q.map((G)=>{let $={...Y,type:G};return D6($,J)});if(X.length===0)return m.never();if(X.length===1)return X[0];return m.union(X)}if(!Q)return m.any();let q;switch(Q){case"string":{let X=m.string();if(Y.format){let G=Y.format;if(G==="email")X=X.check(m.email());else if(G==="uri"||G==="uri-reference")X=X.check(m.url());else if(G==="uuid"||G==="guid")X=X.check(m.uuid());else if(G==="date-time")X=X.check(m.iso.datetime());else if(G==="date")X=X.check(m.iso.date());else if(G==="time")X=X.check(m.iso.time());else if(G==="duration")X=X.check(m.iso.duration());else if(G==="ipv4")X=X.check(m.ipv4());else if(G==="ipv6")X=X.check(m.ipv6());else if(G==="mac")X=X.check(m.mac());else if(G==="cidr")X=X.check(m.cidrv4());else if(G==="cidr-v6")X=X.check(m.cidrv6());else if(G==="base64")X=X.check(m.base64());else if(G==="base64url")X=X.check(m.base64url());else if(G==="e164")X=X.check(m.e164());else if(G==="jwt")X=X.check(m.jwt());else if(G==="emoji")X=X.check(m.emoji());else if(G==="nanoid")X=X.check(m.nanoid());else if(G==="cuid")X=X.check(m.cuid());else if(G==="cuid2")X=X.check(m.cuid2());else if(G==="ulid")X=X.check(m.ulid());else if(G==="xid")X=X.check(m.xid());else if(G==="ksuid")X=X.check(m.ksuid())}if(typeof Y.minLength==="number")X=X.min(Y.minLength);if(typeof Y.maxLength==="number")X=X.max(Y.maxLength);if(Y.pattern)X=X.regex(new RegExp(Y.pattern));q=X;break}case"number":case"integer":{let X=Q==="integer"?m.number().int():m.number();if(typeof Y.minimum==="number")X=X.min(Y.minimum);if(typeof Y.maximum==="number")X=X.max(Y.maximum);if(typeof Y.exclusiveMinimum==="number")X=X.gt(Y.exclusiveMinimum);else if(Y.exclusiveMinimum===!0&&typeof Y.minimum==="number")X=X.gt(Y.minimum);if(typeof Y.exclusiveMaximum==="number")X=X.lt(Y.exclusiveMaximum);else if(Y.exclusiveMaximum===!0&&typeof Y.maximum==="number")X=X.lt(Y.maximum);if(typeof Y.multipleOf==="number")X=X.multipleOf(Y.multipleOf);q=X;break}case"boolean":{q=m.boolean();break}case"null":{q=m.null();break}case"object":{let X={},G=Y.properties||{},$=new Set(Y.required||[]);for(let[j,K]of Object.entries(G)){let z=X8(K,J);X[j]=$.has(j)?z:z.optional()}if(Y.propertyNames){let j=X8(Y.propertyNames,J),K=Y.additionalProperties&&typeof Y.additionalProperties==="object"?X8(Y.additionalProperties,J):m.any();if(Object.keys(X).length===0){q=m.record(j,K);break}let z=m.object(X).passthrough(),M=m.looseRecord(j,K);q=m.intersection(z,M);break}if(Y.patternProperties){let j=Y.patternProperties,K=Object.keys(j),z=[];for(let N of K){let O=X8(j[N],J),D=m.string().regex(new RegExp(N));z.push(m.looseRecord(D,O))}let M=[];if(Object.keys(X).length>0)M.push(m.object(X).passthrough());if(M.push(...z),M.length===0)q=m.object({}).passthrough();else if(M.length===1)q=M[0];else{let N=m.intersection(M[0],M[1]);for(let O=2;O<M.length;O++)N=m.intersection(N,M[O]);q=N}break}let W=m.object(X);if(Y.additionalProperties===!1)q=W.strict();else if(typeof Y.additionalProperties==="object")q=W.catchall(X8(Y.additionalProperties,J));else q=W.passthrough();break}case"array":{let{prefixItems:X,items:G}=Y;if(X&&Array.isArray(X)){let $=X.map((j)=>X8(j,J)),W=G&&typeof G==="object"&&!Array.isArray(G)?X8(G,J):void 0;if(W)q=m.tuple($).rest(W);else q=m.tuple($);if(typeof Y.minItems==="number")q=q.check(m.minLength(Y.minItems));if(typeof Y.maxItems==="number")q=q.check(m.maxLength(Y.maxItems))}else if(Array.isArray(G)){let $=G.map((j)=>X8(j,J)),W=Y.additionalItems&&typeof Y.additionalItems==="object"?X8(Y.additionalItems,J):void 0;if(W)q=m.tuple($).rest(W);else q=m.tuple($);if(typeof Y.minItems==="number")q=q.check(m.minLength(Y.minItems));if(typeof Y.maxItems==="number")q=q.check(m.maxLength(Y.maxItems))}else if(G!==void 0){let $=X8(G,J),W=m.array($);if(typeof Y.minItems==="number")W=W.min(Y.minItems);if(typeof Y.maxItems==="number")W=W.max(Y.maxItems);q=W}else q=m.array(m.any());break}default:throw Error(`Unsupported type: ${Q}`)}if(Y.description)q=q.describe(Y.description);if(Y.default!==void 0)q=q.default(Y.default);return q}function X8(Y,J){if(typeof Y==="boolean")return Y?m.any():m.never();let Q=D6(Y,J),q=Y.type||Y.enum!==void 0||Y.const!==void 0;if(Y.anyOf&&Array.isArray(Y.anyOf)){let W=Y.anyOf.map((K)=>X8(K,J)),j=m.union(W);Q=q?m.intersection(Q,j):j}if(Y.oneOf&&Array.isArray(Y.oneOf)){let W=Y.oneOf.map((K)=>X8(K,J)),j=m.xor(W);Q=q?m.intersection(Q,j):j}if(Y.allOf&&Array.isArray(Y.allOf))if(Y.allOf.length===0)Q=q?Q:m.any();else{let W=q?Q:X8(Y.allOf[0],J),j=q?0:1;for(let K=j;K<Y.allOf.length;K++)W=m.intersection(W,X8(Y.allOf[K],J));Q=W}if(Y.nullable===!0&&J.version==="openapi-3.0")Q=m.nullable(Q);if(Y.readOnly===!0)Q=m.readonly(Q);let X={},G=["$id","id","$comment","$anchor","$vocabulary","$dynamicRef","$dynamicAnchor"];for(let W of G)if(W in Y)X[W]=Y[W];let $=["contentEncoding","contentMediaType","contentSchema"];for(let W of $)if(W in Y)X[W]=Y[W];for(let W of Object.keys(Y))if(!Ak.has(W))X[W]=Y[W];if(Object.keys(X).length>0)J.registry.add(Q,X);return Q}function Sk(Y,J){if(typeof Y==="boolean")return Y?m.any():m.never();let Q=Ck(Y,J?.defaultTarget),q=Y.$defs||Y.definitions||{},X={version:Q,defs:q,refs:new Map,processing:new Set,rootSchema:Y,registry:J?.registry??y8};return X8(Y,X)}var U6={};e8(U6,{string:()=>vk,number:()=>_k,date:()=>Pk,boolean:()=>kk,bigint:()=>Fk});function vk(Y){return MB(gq,Y)}function _k(Y){return VB(hq,Y)}function kk(Y){return SB(mq,Y)}function Fk(Y){return _B(yq,Y)}function Pk(Y){return yB(z9,Y)}$8(GB());var IQ=L,r=L.string().regex(/^0x[a-fA-F0-9]+$/),$X=L.object({from:r,to_address:r,to_identity:L.string(),token:r,amount:L.bigint(),priorityFee:L.bigint().optional(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),isAsyncExec:L.boolean(),signature:L.string()}),$g=L.object({from:r,toData:L.array(L.object({amount:L.bigint(),to_address:r,to_identity:L.string()})),token:r,amount:L.bigint(),priorityFee:L.bigint().optional(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),isAsyncExec:L.boolean(),signature:L.string()}),Wg=L.object({user:r,tokenA:r,tokenB:r,amountA:L.bigint(),amountB:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint(),signaturePay:L.string()}),jg=L.object({user:r,tokenA:r,tokenB:r,orderId:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Tk=L.object({user:r,tokenA:r,tokenB:r,orderId:L.bigint(),amountOfTokenBToFill:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint(),signaturePay:L.string()}),Kg=Tk.extend({maxFillFixedFee:L.bigint()}),zg=L.object({user:r,username:L.string(),offerID:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Mg=L.object({user:r,identity:L.string(),value:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Ng=L.object({user:r,identity:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Og=L.object({user:r,username:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Dg=L.object({user:r,username:L.string(),amount:L.bigint(),expirationDate:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Ug=L.object({user:r,hashPreRegisteredUsername:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Hg=L.object({user:r,username:L.string(),lockNumber:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Bg=L.object({user:r,identity:L.string(),key:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Rg=L.object({user:r,username:L.string(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Vg=L.object({user:r,username:L.string(),offerID:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Lg=L.object({user:r,isStaking:L.boolean(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),Eg=L.object({user:r,isStaking:L.boolean(),amountOfStaking:L.bigint(),senderExecutor:r,originExecutor:r,nonce:L.bigint(),signature:L.string(),priorityFeePay:L.bigint().optional(),noncePay:L.bigint().optional(),signaturePay:L.string().optional()}),wg=L.object({isStaking:L.boolean(),amountOfStaking:L.bigint(),signaturePay:L.string().optional()}),H6=L.enum(["pure","view","nonpayable","payable"]),oQ=L.lazy(()=>L.object({name:L.string(),type:L.string(),internalType:L.string().optional(),components:L.array(oQ).optional(),indexed:L.boolean().optional()})),Zk=L.object({type:L.literal("function"),name:L.string(),inputs:L.array(oQ),outputs:L.array(oQ),stateMutability:H6}),xk=L.object({type:L.literal("event"),name:L.string(),inputs:L.array(oQ),anonymous:L.boolean().optional()}),gk=L.object({type:L.literal("error"),name:L.string(),inputs:L.array(oQ)}),fk=L.object({type:L.literal("constructor"),inputs:L.array(oQ),stateMutability:H6}),B6=L.discriminatedUnion("type",[Zk,xk,gk,fk]),Ag=L.array(B6),j0="0x0000000000000000000000000000000000000000";XQ();k5();class oq{address;abi;chainId;evvmId;signer;constructor({signer:Y,address:J,abi:Q,evvmId:q,chainId:X}){this.signer=Y,this.address=J,this.abi=Q,this.chainId=X,this.evvmId=q}async view(Y,J,Q){let q=await this.signer.getChainId();if(this.chainId!=q)await this.signer.switchChain(this.chainId);return this.signer.readContract({functionName:Y,contractAddress:this.address,contractAbi:Q?.abi||this.abi,args:J||[]})}getFunctionAbi(Y){let J=this.abi.find((Q)=>Q.type==="function"&&Q.name===Y);if(!J)throw Error(`No function signature with name ${Y}`);return J}buildHashPayload(Y,J,Q){let q=[...this.getFunctionAbi(Y).inputs];if(Q?.customAbiParams)Q.customAbiParams.forEach((z)=>{let M=q.findIndex((N)=>N.name==z.insertAfter);if(M==-1){console.warn("[WARN]: custom abi insertion couldn't find insertAfter abi");return}q.splice(M+1,0,{type:z.type,name:z.name})});let X=q.filter((z)=>Object.prototype.hasOwnProperty.call(J,z.name)),G=X.map((z)=>J[z.name]),$=/dispatchOrder/.test(Y)?"dispatchOrder":Y,W=[{type:"string"},...X],j=[$,...G],K=XX(W,j);return _5(K)}buildMessageToSign(Y,J,Q,q,X,G){return`${Y.toString()},${J.toLowerCase()},${Q},${q.toLowerCase()},${X.toString()},${JSON.stringify(G)}`}async getEvvmID(){if(this.evvmId!==void 0)return this.evvmId;return this.evvmId=await this.view("getEvvmID",[],{abi:[{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}]}),this.evvmId}}function s0(Y,J,Q){let q=Q.value;if(!q)throw Error(`@SignMethod decorator applied to undefined method ${J}`);return Q.value=async function(...X){return await q.apply(this,X)},Q}var WX=(Y)=>IQ.object({functionName:IQ.string(),functionAbi:B6,contractAddress:r,chainId:IQ.number(),evvmId:IQ.string(),data:Y,args:IQ.array(IQ.any())}).loose();class l0{service;evvmId;functionName;data;functionAbi;args;constructor(Y,J,Q,q){this.service=Y,this.evvmId=J,this.functionName=Q,this.data=q,this.functionAbi=this.service.getFunctionAbi(Q),this.args=this.getArgs()}toJSON(){let Y=this.serializeData();return{chainId:this.service.chainId,evvmId:this.evvmId.toString(),functionName:this.functionName,functionAbi:this.functionAbi,contractAddress:this.service.address,data:Y,args:this.args}}getArgs(){let Y=[],J=this.serializeData();return this.functionAbi.inputs.forEach((Q,q)=>{if(!Q.name||Q.name.length===0)throw Error(`ABI input at index ${q} for function ${this.functionName} has empty name`);if(!Object.prototype.hasOwnProperty.call(J,Q.name))throw Error(`Missing data property '${Q.name}' for function '${this.functionName}'`);Y[q]=J[Q.name]}),Y}serializeData(){let Y=(J)=>{if(typeof J==="bigint")return J.toString();if(Array.isArray(J))return J.map((Q)=>Y(Q));if(J&&typeof J==="object")return Object.fromEntries(Object.entries(J).map(([Q,q])=>[Q,Y(q)]));return J};return Y(this.data)}}var hk={abi:[{type:"constructor",inputs:[{name:"_activator",type:"address",internalType:"address"},{name:"_coreAddress",type:"address",internalType:"address"},{name:"_addressStaking",type:"address",internalType:"address"},{name:"_admin",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptActivatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptAddressStakingProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptAdminProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptEvvmAddressProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelActivatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelAddressStakingProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelAdminProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelEvvmAddressProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getActivatorMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getActualEpochInFormat",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getActualEpochInUint",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getAddressStakingMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAdminMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getCoreAddressMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.AddressTypeProposal",components:[{name:"actual",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getEpochMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct Estimator.EpochMetadata",components:[{name:"tokenPool",type:"address",internalType:"address"},{name:"totalPool",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"},{name:"tFinal",type:"uint256",internalType:"uint256"},{name:"tStart",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"makeEstimation",inputs:[{name:"_user",type:"address",internalType:"address"}],outputs:[{name:"epochAnswer",type:"bytes32",internalType:"bytes32"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"amountTotalToBeRewarded",type:"uint256",internalType:"uint256"},{name:"idToOverwrite",type:"uint256",internalType:"uint256"},{name:"timestampToOverwrite",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"notifyNewEpoch",inputs:[{name:"tokenPool",type:"address",internalType:"address"},{name:"totalPool",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"},{name:"tStart",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setActivatorProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setAddressStakingProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setAdminProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setEvvmAddressProposal",inputs:[{name:"_proposal",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"simulteEstimation",inputs:[{name:"_user",type:"address",internalType:"address"}],outputs:[{name:"epochAnswer",type:"bytes32",internalType:"bytes32"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"amountTotalToBeRewarded",type:"uint256",internalType:"uint256"},{name:"idToOverwrite",type:"uint256",internalType:"uint256"},{name:"timestampToOverwrite",type:"uint256",internalType:"uint256"}],stateMutability:"view"}],bytecode:{object:"0x60803460c257601f610f5338819003918201601f19168301916001600160401b0383118484101760c65780849260809460405283398101031260c25760428160da565b90604d6020820160da565b60616060605b6040850160da565b930160da565b6003601155600580546001600160a01b03199081166001600160a01b039687161790915560088054821693861693909317909255600b8054831693851693909317909255600e805490911691909216179055604051610e6590816100ee8239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820360c25756fe60806040526004361015610011575f80fd5b5f3560e01c80630f9d8a70146107ab578063112c1d5a1461070f5780631fa75673146106b957806333a61fc3146106955780634cc05f461461065d57806355dbb311146106195780635637455a146105ef5780635b65a897146105995780635fd99c5914610510578063608bd0bf146104cc5780636e14f5591461047157806370b170da1461043957806379eb30f0146103e05780637aa84eae146103a85780637fa80f081461034f5780639da2bb11146102f4578063a9131e2314610287578063b1fc6a911461022c578063c1a53583146101d1578063c9ed28e9146101b4578063f7027207146101475763fd3607d01461010b575f80fd5b34610143575f366003190112610143576001600160a01b0360055416330361014357600680546001600160a01b03191690555f600755005b5f80fd5b3461014357602036600319011261014357610160610804565b6001600160a01b03600b541633036101435761017e6101b091610bef565b604080519586526001600160a01b039094166020860152928401919091526060830152608082015290819060a0820190565b0390f35b34610143575f366003190112610143576020601154604051908152f35b34610143575f366003190112610143576101e9610bd1565b506101b06040516101f9816108a5565b6001600160a01b03600e541681526001600160a01b03600f5416602082015260105460408201526040519182918261081a565b34610143575f36600319011261014357610244610bd1565b506101b0604051610254816108a5565b6001600160a01b036005541681526001600160a01b0360065416602082015260075460408201526040519182918261081a565b34610143576020366003190112610143576102a0610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b60095416176009556201518042018042116102e057600a55005b634e487b7160e01b5f52601160045260245ffd5b34610143575f3660031901126101435761030c610bd1565b506101b060405161031c816108a5565b6001600160a01b036008541681526001600160a01b03600954166020820152600a5460408201526040519182918261081a565b3461014357602036600319011261014357610368610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600f541617600f556201518042018042116102e057601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600c80546001600160a01b03191690555f600d55005b34610143576020366003190112610143576103f9610804565b6001600160a01b03600554163303610143576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116102e057600755005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600980546001600160a01b03191690555f600a55005b34610143575f36600319011261014357610489610bd1565b506101b0604051610499816108a5565b6001600160a01b03600b541681526001600160a01b03600c54166020820152600d5460408201526040519182918261081a565b34610143575f3660031901126101435760075442106101435760068054600580546001600160a01b03199081166001600160a01b038416179091551690555f600755005b3461014357608036600319011261014357610529610804565b60243560443590606435926001600160a01b03600554163303610143578360806001600160a01b036040519361055e85610859565b169283815284602082015285604082015242606082015201526001600160601b0360a01b5f5416175f55600155600255426003556004555f80f35b34610143575f366003190112610143576001600160a01b03600e5416330361014357600d54421061014357600c8054600b80546001600160a01b03199081166001600160a01b038416179091551690555f600d55005b34610143575f3660031901126101435760115460011981019081116102e057602090604051908152f35b34610143575f36600319011261014357601054421061014357600f8054600e80546001600160a01b03199081166001600160a01b038416179091551690555f601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600f80546001600160a01b03191690555f601055005b34610143576020366003190112610143576101b061017e6106b4610804565b610981565b34610143575f366003190112610143576001600160a01b03600e5416330361014357600a5442106101435760098054600880546001600160a01b03199081166001600160a01b038416179091551690555f600a55005b34610143575f366003190112610143575f608060405161072e81610859565b828152826020820152826040820152826060820152015260a060405161075381610859565b6001600160a01b035f5416908181526001546020820190815260025460408301908152600354916060840192835260806004549401938452604051948552516020850152516040840152516060830152516080820152f35b34610143576020366003190112610143576107c4610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600c541617600c556201518042018042116102e057600d55005b600435906001600160a01b038216820361014357565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b919082018092116102e057565b60a0810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761087557604052565b6060810190811067ffffffffffffffff82111761087557604052565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b604051906108f082610889565b5f6060838281528260208201528260408201520152565b908160809103126101435760606040519161092183610889565b8051835260208101516020840152604081015160408401520151606082015290565b919082039182116102e057565b818102929181159184041417156102e057565b811561096d570490565b634e487b7160e01b5f52601260045260245ffd5b905f915f915f905f925f60045491826109986108e3565b506001600160a01b03600b54169660405190637e17f55960e11b82526001600160a01b03841660048301526020826024818c5afa918215610b92575f92610b9d575b50929197905f9360035499601154915b838710610a54575b50505050505050670de0b6b3a7640000810290808204670de0b6b3a764000014901517156102e057610a3a610a4f91610a34670de0b6b3a76400009488610943565b90610963565b610a4960015460025490610963565b90610950565b049290565b60405163120a744b60e31b81526001600160a01b038716600482015260248101889052969a509495939492939192608083604481895afa928315610b92575f93610b62575b5060408301918c835111610b125784845114610af75781610ace575b5050516060919091015160018a019594939291906109ea565b97610ae9610aef92610ae4859b60609651610943565b610950565b9061084c565b96905f610ab5565b5050505050505050505093505050505f905f905f905f905f90565b9550955050916001915097949714610b56575b5081610b3b575b5050925f8080808080806109f2565b610b4e929591610ae4610ae99289610943565b925f80610b2c565b6060015191505f610b25565b610b8491935060803d8111610b8b575b610b7c81836108c1565b810190610907565b915f610a99565b503d610b72565b6040513d5f823e3d90fd5b9091506020813d602011610bc9575b81610bb9602093836108c1565b810103126101435751905f6109da565b3d9150610bac565b60405190610bde826108a5565b5f6040838281528260208201520152565b5f915f915f905f925f600454928390610c066108e3565b946001600160a01b03600b54169760405190637e17f55960e11b82526001600160a01b03841660048301526020826024818d5afa918215610b92575f92610dfb575b5091985f93916003549a601154905b828710610cd4575b50505050505050670de0b6b3a7640000820291808304670de0b6b3a764000014901517156102e057610ccf91610a34610c989288610943565b606060015494610cc4670de0b6b3a7640000610cbb60025495610a49878b610963565b04809997610943565b600155015190610943565b600255565b60405163120a744b60e31b81526001600160a01b038616600482015260248101889052969b509499509294919390929190608082604481885afa918215610b92575f92610ddb575b50819960018514610dd0575b60408301918d835111610d955784845114610d7a5781610d5c575b5050606090519101519160018b01959391949294610c57565b98610ae9610d7292610ae4859c60609651610943565b97905f610d43565b505f9e508e9d508d9c508c9b508b9a50505050505050505050565b955095505050505081969296610db5575b5050935f808080808080610c5f565b610dc8929391610ae4610ae9928a610943565b905f80610da6565b506060820151610d28565b610df491925060803d8111610b8b57610b7c81836108c1565b905f610d1c565b9091506020813d602011610e27575b81610e17602093836108c1565b810103126101435751905f610c48565b3d9150610e0a56fea2646970667358221220c735d624f83faa268abe1416ff68fae91ab044af7434d8859bd70c0fe6194e0d64736f6c63430008210033",sourceMap:"1271:15128:67:-:0;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;3258:1;3242:19;1271:15128;4296:9;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;4335:11;1271:15128;;;;;;;;;;;;;;4378:14;1271:15128;;;;;;;;;;;;;;4427:5;1271:15128;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1271:15128:67;;;;;;-1:-1:-1;1271:15128:67;;;;;-1:-1:-1;1271:15128:67;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x60806040526004361015610011575f80fd5b5f3560e01c80630f9d8a70146107ab578063112c1d5a1461070f5780631fa75673146106b957806333a61fc3146106955780634cc05f461461065d57806355dbb311146106195780635637455a146105ef5780635b65a897146105995780635fd99c5914610510578063608bd0bf146104cc5780636e14f5591461047157806370b170da1461043957806379eb30f0146103e05780637aa84eae146103a85780637fa80f081461034f5780639da2bb11146102f4578063a9131e2314610287578063b1fc6a911461022c578063c1a53583146101d1578063c9ed28e9146101b4578063f7027207146101475763fd3607d01461010b575f80fd5b34610143575f366003190112610143576001600160a01b0360055416330361014357600680546001600160a01b03191690555f600755005b5f80fd5b3461014357602036600319011261014357610160610804565b6001600160a01b03600b541633036101435761017e6101b091610bef565b604080519586526001600160a01b039094166020860152928401919091526060830152608082015290819060a0820190565b0390f35b34610143575f366003190112610143576020601154604051908152f35b34610143575f366003190112610143576101e9610bd1565b506101b06040516101f9816108a5565b6001600160a01b03600e541681526001600160a01b03600f5416602082015260105460408201526040519182918261081a565b34610143575f36600319011261014357610244610bd1565b506101b0604051610254816108a5565b6001600160a01b036005541681526001600160a01b0360065416602082015260075460408201526040519182918261081a565b34610143576020366003190112610143576102a0610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b60095416176009556201518042018042116102e057600a55005b634e487b7160e01b5f52601160045260245ffd5b34610143575f3660031901126101435761030c610bd1565b506101b060405161031c816108a5565b6001600160a01b036008541681526001600160a01b03600954166020820152600a5460408201526040519182918261081a565b3461014357602036600319011261014357610368610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600f541617600f556201518042018042116102e057601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600c80546001600160a01b03191690555f600d55005b34610143576020366003190112610143576103f9610804565b6001600160a01b03600554163303610143576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116102e057600755005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600980546001600160a01b03191690555f600a55005b34610143575f36600319011261014357610489610bd1565b506101b0604051610499816108a5565b6001600160a01b03600b541681526001600160a01b03600c54166020820152600d5460408201526040519182918261081a565b34610143575f3660031901126101435760075442106101435760068054600580546001600160a01b03199081166001600160a01b038416179091551690555f600755005b3461014357608036600319011261014357610529610804565b60243560443590606435926001600160a01b03600554163303610143578360806001600160a01b036040519361055e85610859565b169283815284602082015285604082015242606082015201526001600160601b0360a01b5f5416175f55600155600255426003556004555f80f35b34610143575f366003190112610143576001600160a01b03600e5416330361014357600d54421061014357600c8054600b80546001600160a01b03199081166001600160a01b038416179091551690555f600d55005b34610143575f3660031901126101435760115460011981019081116102e057602090604051908152f35b34610143575f36600319011261014357601054421061014357600f8054600e80546001600160a01b03199081166001600160a01b038416179091551690555f601055005b34610143575f366003190112610143576001600160a01b03600e5416330361014357600f80546001600160a01b03191690555f601055005b34610143576020366003190112610143576101b061017e6106b4610804565b610981565b34610143575f366003190112610143576001600160a01b03600e5416330361014357600a5442106101435760098054600880546001600160a01b03199081166001600160a01b038416179091551690555f600a55005b34610143575f366003190112610143575f608060405161072e81610859565b828152826020820152826040820152826060820152015260a060405161075381610859565b6001600160a01b035f5416908181526001546020820190815260025460408301908152600354916060840192835260806004549401938452604051948552516020850152516040840152516060830152516080820152f35b34610143576020366003190112610143576107c4610804565b6001600160a01b03600e54163303610143576001600160a01b03166001600160601b0360a01b600c541617600c556201518042018042116102e057600d55005b600435906001600160a01b038216820361014357565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b919082018092116102e057565b60a0810190811067ffffffffffffffff82111761087557604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761087557604052565b6060810190811067ffffffffffffffff82111761087557604052565b90601f8019910116810190811067ffffffffffffffff82111761087557604052565b604051906108f082610889565b5f6060838281528260208201528260408201520152565b908160809103126101435760606040519161092183610889565b8051835260208101516020840152604081015160408401520151606082015290565b919082039182116102e057565b818102929181159184041417156102e057565b811561096d570490565b634e487b7160e01b5f52601260045260245ffd5b905f915f915f905f925f60045491826109986108e3565b506001600160a01b03600b54169660405190637e17f55960e11b82526001600160a01b03841660048301526020826024818c5afa918215610b92575f92610b9d575b50929197905f9360035499601154915b838710610a54575b50505050505050670de0b6b3a7640000810290808204670de0b6b3a764000014901517156102e057610a3a610a4f91610a34670de0b6b3a76400009488610943565b90610963565b610a4960015460025490610963565b90610950565b049290565b60405163120a744b60e31b81526001600160a01b038716600482015260248101889052969a509495939492939192608083604481895afa928315610b92575f93610b62575b5060408301918c835111610b125784845114610af75781610ace575b5050516060919091015160018a019594939291906109ea565b97610ae9610aef92610ae4859b60609651610943565b610950565b9061084c565b96905f610ab5565b5050505050505050505093505050505f905f905f905f905f90565b9550955050916001915097949714610b56575b5081610b3b575b5050925f8080808080806109f2565b610b4e929591610ae4610ae99289610943565b925f80610b2c565b6060015191505f610b25565b610b8491935060803d8111610b8b575b610b7c81836108c1565b810190610907565b915f610a99565b503d610b72565b6040513d5f823e3d90fd5b9091506020813d602011610bc9575b81610bb9602093836108c1565b810103126101435751905f6109da565b3d9150610bac565b60405190610bde826108a5565b5f6040838281528260208201520152565b5f915f915f905f925f600454928390610c066108e3565b946001600160a01b03600b54169760405190637e17f55960e11b82526001600160a01b03841660048301526020826024818d5afa918215610b92575f92610dfb575b5091985f93916003549a601154905b828710610cd4575b50505050505050670de0b6b3a7640000820291808304670de0b6b3a764000014901517156102e057610ccf91610a34610c989288610943565b606060015494610cc4670de0b6b3a7640000610cbb60025495610a49878b610963565b04809997610943565b600155015190610943565b600255565b60405163120a744b60e31b81526001600160a01b038616600482015260248101889052969b509499509294919390929190608082604481885afa918215610b92575f92610ddb575b50819960018514610dd0575b60408301918d835111610d955784845114610d7a5781610d5c575b5050606090519101519160018b01959391949294610c57565b98610ae9610d7292610ae4859c60609651610943565b97905f610d43565b505f9e508e9d508d9c508c9b508b9a50505050505050505050565b955095505050505081969296610db5575b5050935f808080808080610c5f565b610dc8929391610ae4610ae9928a610943565b905f80610da6565b506060820151610d28565b610df491925060803d8111610b8b57610b7c81836108c1565b905f610d1c565b9091506020813d602011610e27575b81610e17602093836108c1565b810103126101435751905f610c48565b3d9150610e0a56fea2646970667358221220c735d624f83faa268abe1416ff68fae91ab044af7434d8859bd70c0fe6194e0d64736f6c63430008210033",sourceMap:"1271:15128:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3564:9:67;1271:15128;;3550:10;:30;3546:44;;9128:18;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;9169:22:67;1271:15128;;3546:44;1271:15128;3582:8;;1271:15128;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3387:14:67;1271:15128;;3373:10;:35;3369:49;;6009:2190;1271:15128;6009:2190;;:::i;:::-;1271:15128;;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;13190:7;1271:15128;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14317:5:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13471:9:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;9731:20;1271:15128;;;9731:20;1271:15128;9818:6;9800:15;1271:15128;9800:15;;1271:15128;;;9773:24;1271:15128;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13746:11:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;11499:14;1271:15128;;;11499:14;1271:15128;11574:6;11556:15;1271:15128;11556:15;;1271:15128;;;11535:18;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;10853:23;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;10899:27:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3564:9:67;1271:15128;;3550:10;:30;3546:44;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;8903:18;1271:15128;;;8903:18;1271:15128;8986:6;8968:15;1271:15128;8968:15;;1271:15128;;;8943:22;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;9961:20;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;10004:24:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;14041:14:67;1271:15128;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;9348:22;1271:15128;9330:15;:40;9326:54;;9410:18;1271:15128;;9348:9;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;9348:22:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;3564:9:67;1271:15128;;3550:10;:30;3546:44;;1271:15128;;-1:-1:-1;;;;;1271:15128:67;;;;;;:::i;:::-;;;;;;5105:196;1271:15128;5105:196;;1271:15128;5105:196;1271:15128;5105:196;;1271:15128;5247:15;1271:15128;5105:196;;1271:15128;5105:196;1271:15128;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;5247:15;1271:15128;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;11104:27;1271:15128;11086:15;:45;11082:59;;11176:23;1271:15128;;11104:14;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;11104:27:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;12970:7;1271:15128;-1:-1:-1;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;11908:18;1271:15128;11890:15;:36;11886:50;;11962:14;1271:15128;;11908:5;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;11908:18:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;11704:14;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;11741:18:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;1271:15128:67;;;;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;10200:24;1271:15128;10182:15;:42;10178:56;;10266:20;1271:15128;;10200:11;1271:15128;;-1:-1:-1;;;;;;1271:15128:67;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;-1:-1:-1;10200:24:67;1271:15128;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1271:15128:67;;;;;;:::i;:::-;-1:-1:-1;;;;;3728:5:67;1271:15128;;3714:10;:26;3710:40;;-1:-1:-1;;;;;1271:15128:67;-1:-1:-1;;;;;1271:15128:67;;10611:23;1271:15128;;;10611:23;1271:15128;10704:6;10686:15;1271:15128;10686:15;;1271:15128;;;10656:27;1271:15128;;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;-1:-1:-1;;;;;1271:15128:67;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1271:15128:67;;;;;-1:-1:-1;1271:15128:67;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1271:15128:67;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;14876:1521;;1271:15128;15025:20;1271:15128;15104:21;1271:15128;15192:17;1271:15128;15219:14;1271:15128;15260:12;1271:15128;;;;;:::i;:::-;;-1:-1:-1;;;;;15354:14:67;1271:15128;;;;;;;;;15346:83;;-1:-1:-1;;;;;1271:15128:67;;15260:12;15346:83;;1271:15128;;15346:83;;;;;;;;;;;1271:15128;15346:83;;;14876:1521;15445:13;;;;;1271:15128;;15637:12;1271:15128;;15905:7;1271:15128;15440:708;15460:8;;;;;;15440:708;1271:15128;;;;;;;16188:4;1271:15128;;;;;;16188:4;1271:15128;;;;;;;16178:47;16275:49;16197:27;;16188:4;16197:27;;;:::i;:::-;16178:47;;:::i;:::-;16288:35;1271:15128;;16306:17;1271:15128;16288:35;;:::i;:::-;16275:49;;:::i;:::-;1271:15128;16355:35;14876:1521;:::o;15470:3::-;1271:15128;;-1:-1:-1;;;15493:111:67;;-1:-1:-1;;;;;1271:15128:67;;15260:12;15493:111;;1271:15128;;;;;;;;;-1:-1:-1;1271:15128:67;;;;;;;;15493:111;1271:15128;;;;15493:111;;;;;;;1271:15128;15493:111;;;15470:3;15623:11;1271:15128;15623:11;;1271:15128;;;;15623:26;15619:247;;1271:15128;;;15884:28;15880:65;;15975:13;15971:62;;15470:3;-1:-1:-1;;1271:15128:67;16093:13;;;;;1271:15128;;;;;15445:13;;;16120:17;1271:15128;15445:13;;15971:62;1271:15128;16000:33;15990:43;1271:15128;16001:19;1271:15128;;16093:13;1271:15128;;16001:19;:::i;:::-;16000:33;:::i;:::-;15990:43;;:::i;:::-;15971:62;;;;;15880:65;15914:31;;;;;;;;;;;;;;;1271:15128;15914:31;1271:15128;15914:31;1271:15128;15914:31;1271:15128;15914:31;1271:15128;15914:31;:::o;15619:247::-;15673:9;;;;;;1271:15128;15673:9;;;;;;15669:40;;15619:247;15732:13;;15728:63;;15619:247;15810:17;;15846:5;;;;;;;;;;15728:63;15747:44;15758:20;;;;15757:34;15758:20;;;:::i;15747:44::-;15728:63;;;;;15669:40;16093:13;15696;1271:15128;;-1:-1:-1;15669:40:67;;;15493:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1271:15128;;;;;;;;;15346:83;;;;1271:15128;15346:83;;1271:15128;15346:83;;;;;;1271:15128;15346:83;;;:::i;:::-;;;1271:15128;;;;;15346:83;;;;;;;-1:-1:-1;15346:83:67;;1271:15128;;;;;;;:::i;:::-;-1:-1:-1;1271:15128:67;;;;;;;;;;;;:::o;6009:2190::-;1271:15128;6009:2190;1271:15128;6009:2190;1271:15128;6329:17;1271:15128;6356:14;1271:15128;6397:12;1271:15128;;;6419:39;1271:15128;;:::i;:::-;;-1:-1:-1;;;;;6491:14:67;1271:15128;;;;;;;;;6483:83;;-1:-1:-1;;;;;1271:15128:67;;6397:12;6483:83;;1271:15128;;6483:83;;;;;;;;;;;1271:15128;6483:83;;;6009:2190;6582:13;;;1271:15128;6582:13;;6829:12;1271:15128;;7038:7;1271:15128;6577:704;6597:8;;;;;;6577:704;1271:15128;;;;;;;7893:4;1271:15128;;;;;;7893:4;1271:15128;;;;;;;8158:34;7902:27;;7883:47;7902:27;;;:::i;7883:47::-;7226:13;6768:1;1271:15128;;8106:42;7893:4;7980:49;8011:17;1271:15128;7993:35;;;;;:::i;7980:49::-;1271:15128;8060:35;;8106:42;;:::i;:::-;6768:1;1271:15128;8179:13;1271:15128;8158:34;;:::i;:::-;8011:17;1271:15128;6009:2190::o;6607:3::-;1271:15128;;-1:-1:-1;;;6630:111:67;;-1:-1:-1;;;;;1271:15128:67;;6397:12;6630:111;;1271:15128;;;;;;;;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;;;;;;;6630:111;1271:15128;;;;6630:111;;;;;;;1271:15128;6630:111;;;6607:3;6626:115;;6760:9;6768:1;6760:9;;6756:40;;6607:3;1271:15128;6815:11;;1271:15128;;;;6815:26;6811:188;;1271:15128;;;7017:28;7013:65;;7108:13;7104:62;;6607:3;1271:15128;;7226:13;1271:15128;;7226:13;;1271:15128;7253:17;6768:1;7253:17;1271:15128;6582:13;;;;;;;;7104:62;1271:15128;7133:33;7123:43;1271:15128;7134:19;1271:15128;;7226:13;1271:15128;;7134:19;:::i;7123:43::-;7104:62;;;;;7013:65;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;1271:15128:67;;-1:-1:-1;;;;;;;;;;7047:31:67:o;6811:188::-;6865:13;;;;;;;;;;;;6861:63;;6811:188;6943:17;;6979:5;;;;;;;;;;6861:63;6880:44;6891:20;;;;6890:34;6891:20;;;:::i;6880:44::-;6861:63;;;;;6756:40;6783:13;7226;6783;;1271:15128;6756:40;;6630:111;;;;;;;;;;;;;;;:::i;:::-;;;;;6483:83;;;;1271:15128;6483:83;;1271:15128;6483:83;;;;;;1271:15128;6483:83;;;:::i;:::-;;;1271:15128;;;;;6483:83;;;;;;;-1:-1:-1;6483:83:67;",linkReferences:{}},methodIdentifiers:{"acceptActivatorProposal()":"608bd0bf","acceptAddressStakingProposal()":"5b65a897","acceptAdminProposal()":"55dbb311","acceptEvvmAddressProposal()":"1fa75673","cancelActivatorProposal()":"fd3607d0","cancelAddressStakingProposal()":"7aa84eae","cancelAdminProposal()":"4cc05f46","cancelEvvmAddressProposal()":"70b170da","getActivatorMetadata()":"b1fc6a91","getActualEpochInFormat()":"c9ed28e9","getActualEpochInUint()":"5637455a","getAddressStakingMetadata()":"6e14f559","getAdminMetadata()":"c1a53583","getCoreAddressMetadata()":"9da2bb11","getEpochMetadata()":"112c1d5a","makeEstimation(address)":"f7027207","notifyNewEpoch(address,uint256,uint256,uint256)":"5fd99c59","setActivatorProposal(address)":"79eb30f0","setAddressStakingProposal(address)":"0f9d8a70","setAdminProposal(address)":"7fa80f08","setEvvmAddressProposal(address)":"a9131e23","simulteEstimation(address)":"33a61fc3"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_activator","type":"address"},{"internalType":"address","name":"_coreAddress","type":"address"},{"internalType":"address","name":"_addressStaking","type":"address"},{"internalType":"address","name":"_admin","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"acceptActivatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptAddressStakingProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptAdminProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptEvvmAddressProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelActivatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelAddressStakingProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelAdminProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelEvvmAddressProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getActivatorMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActualEpochInFormat","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActualEpochInUint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAddressStakingMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdminMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddressMetadata","outputs":[{"components":[{"internalType":"address","name":"actual","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct Estimator.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEpochMetadata","outputs":[{"components":[{"internalType":"address","name":"tokenPool","type":"address"},{"internalType":"uint256","name":"totalPool","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"},{"internalType":"uint256","name":"tFinal","type":"uint256"},{"internalType":"uint256","name":"tStart","type":"uint256"}],"internalType":"struct Estimator.EpochMetadata","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"makeEstimation","outputs":[{"internalType":"bytes32","name":"epochAnswer","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amountTotalToBeRewarded","type":"uint256"},{"internalType":"uint256","name":"idToOverwrite","type":"uint256"},{"internalType":"uint256","name":"timestampToOverwrite","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenPool","type":"address"},{"internalType":"uint256","name":"totalPool","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"},{"internalType":"uint256","name":"tStart","type":"uint256"}],"name":"notifyNewEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setActivatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setAddressStakingProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setAdminProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_proposal","type":"address"}],"name":"setEvvmAddressProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"simulteEstimation","outputs":[{"internalType":"bytes32","name":"epochAnswer","type":"bytes32"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amountTotalToBeRewarded","type":"uint256"},{"internalType":"uint256","name":"idToOverwrite","type":"uint256"},{"internalType":"uint256","name":"timestampToOverwrite","type":"uint256"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Mate Labs","details":"Collaborates with Staking.sol to track epochs, total staked amounts, and distribution pools. Features time-delayed governance for administrative changes.","kind":"dev","methods":{"constructor":{"details":"Sets up all required addresses for contract operation","params":{"_activator":"Address authorized to start new epochs","_addressStaking":"Address of the Staking contract","_admin":"Address with administrative privileges","_coreAddress":"Address of the EVVM core contract"}},"getActivatorMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for activator"}},"getActualEpochInFormat()":{"returns":{"_0":"Current epoch identifier"}},"getActualEpochInUint()":{"returns":{"_0":"Current epoch number (epochId - 2)"}},"getAddressStakingMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for Staking"}},"getAdminMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for admin"}},"getCoreAddressMetadata()":{"returns":{"_0":"Complete AddressTypeProposal struct for EVVM"}},"getEpochMetadata()":{"returns":{"_0":"Complete EpochMetadata struct with pool and timing information"}},"makeEstimation(address)":{"details":"Only callable by the Staking contract. Uses time-weighted average calculation to determine proportional rewards based on staking duration and amount.","params":{"_user":"Address of the user to calculate rewards for"},"returns":{"amountTotalToBeRewarded":"Calculated reward amount for the user","epochAnswer":"Epoch identifier to record in user history","idToOverwrite":"Index in user history to update with reward info","timestampToOverwrite":"Timestamp to record for the reward transaction","tokenAddress":"Address of the reward token"}},"notifyNewEpoch(address,uint256,uint256,uint256)":{"details":"Only callable by the activator address. Records epoch metadata for reward calculations.","params":{"tStart":"Timestamp when the epoch started","tokenPool":"Address of the token to be distributed as rewards","totalPool":"Total amount of tokens available for distribution this epoch","totalStaked":"Total staking tokens staked at epoch start"}},"setActivatorProposal(address)":{"params":{"_proposal":"Address of the proposed new activator"}},"setAddressStakingProposal(address)":{"params":{"_proposal":"Address of the proposed new Staking contract"}},"setAdminProposal(address)":{"params":{"_proposal":"Address of the proposed new admin"}},"setEvvmAddressProposal(address)":{"params":{"_proposal":"Address of the proposed new EVVM contract"}},"simulteEstimation(address)":{"details":"View function for previewing rewards before claiming","params":{"_user":"Address of the user to simulate rewards for"},"returns":{"amountTotalToBeRewarded":"Calculated reward amount","epochAnswer":"Epoch identifier that would be recorded","idToOverwrite":"Index in user history that would be updated","timestampToOverwrite":"Timestamp that would be recorded","tokenAddress":"Address of the reward token"}}},"stateVariables":{"BEGUIN_IDENTIFIER":{"details":"Beginning identifier same as withdraw for epoch tracking"},"DEPOSIT_IDENTIFIER":{"details":"Transaction type identifier for deposit (staking) operations"},"WITHDRAW_IDENTIFIER":{"details":"Transaction type identifier for withdraw (unstaking) operations"},"activator":{"details":"Proposal system for activator address changes"},"addressStaking":{"details":"Proposal system for Staking contract address changes"},"admin":{"details":"Proposal system for admin address changes"},"coreAddress":{"details":"Proposal system for EVVM address changes"},"epoch":{"details":"Current epoch metadata storage"},"epochId":{"details":"Current epoch identifier, increments with each new epoch"}},"title":"EVVM Staking Estimator","version":1},"userdoc":{"kind":"user","methods":{"acceptActivatorProposal()":{"notice":"Accepts the activator proposal after time delay"},"acceptAddressStakingProposal()":{"notice":"Accepts the Staking address proposal after time delay"},"acceptAdminProposal()":{"notice":"Accepts the admin proposal after time delay"},"acceptEvvmAddressProposal()":{"notice":"Accepts the EVVM address proposal after time delay"},"cancelActivatorProposal()":{"notice":"Cancels the pending activator proposal"},"cancelAddressStakingProposal()":{"notice":"Cancels the pending Staking address proposal"},"cancelAdminProposal()":{"notice":"Cancels the pending admin proposal"},"cancelEvvmAddressProposal()":{"notice":"Cancels the pending EVVM address proposal"},"constructor":{"notice":"Initializes the Estimator contract"},"getActivatorMetadata()":{"notice":"Returns the activator address proposal information"},"getActualEpochInFormat()":{"notice":"Returns the current epoch identifier in bytes32 format"},"getActualEpochInUint()":{"notice":"Returns the current epoch number as uint256"},"getAddressStakingMetadata()":{"notice":"Returns the Staking contract address proposal information"},"getAdminMetadata()":{"notice":"Returns the admin address proposal information"},"getCoreAddressMetadata()":{"notice":"Returns the EVVM address proposal information"},"getEpochMetadata()":{"notice":"Returns the current epoch metadata"},"makeEstimation(address)":{"notice":"Calculates and returns the reward amount for a specific user"},"notifyNewEpoch(address,uint256,uint256,uint256)":{"notice":"Starts a new reward epoch with the provided parameters"},"setActivatorProposal(address)":{"notice":"Proposes a new activator address with 1-day time delay"},"setAddressStakingProposal(address)":{"notice":"Proposes a new Staking contract address with 1-day time delay"},"setAdminProposal(address)":{"notice":"Proposes a new admin address with 1-day time delay"},"setEvvmAddressProposal(address)":{"notice":"Proposes a new EVVM address with 1-day time delay"},"simulteEstimation(address)":{"notice":"Simulates reward estimation without modifying state"}},"notice":"MM\\"\\"\\"\\"\\"\\"\\"\\"`M dP oo dP MM mmmmmmmM 88 88 M` MMMM .d8888b. d8888P dP 88d8b.d8b. .d8888b. d8888P .d8888b. 88d888b. MM MMMMMMMM Y8ooooo. 88 88 88\'`88\'`88 88\' `88 88 88\' `88 88\' `88 MM MMMMMMMM 88 88 88 88 88 88 88. .88 88 88. .88 88 MM .M `88888P\' dP dP dP dP dP `88888P8 dP `88888P\' dP MMMMMMMMMMMM Calculates validator rewards using time-weighted averages.","version":1}},"settings":{"compilationTarget":{"src/contracts/staking/Estimator.sol":"Estimator"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/contracts/staking/Estimator.sol":{"keccak256":"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"]},"src/contracts/staking/Staking.sol":{"keccak256":"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/errors/StakingError.sol":{"keccak256":"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/structs/StakingStructs.sol":{"keccak256":"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]},"src/library/utils/signature/StakingHashUtils.sol":{"keccak256":"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_activator",type:"address"},{internalType:"address",name:"_coreAddress",type:"address"},{internalType:"address",name:"_addressStaking",type:"address"},{internalType:"address",name:"_admin",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptActivatorProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptAddressStakingProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptAdminProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptEvvmAddressProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelActivatorProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelAddressStakingProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelAdminProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelEvvmAddressProposal"},{inputs:[],stateMutability:"view",type:"function",name:"getActivatorMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getActualEpochInFormat",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}]},{inputs:[],stateMutability:"view",type:"function",name:"getActualEpochInUint",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getAddressStakingMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAdminMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddressMetadata",outputs:[{internalType:"struct Estimator.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"actual",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getEpochMetadata",outputs:[{internalType:"struct Estimator.EpochMetadata",name:"",type:"tuple",components:[{internalType:"address",name:"tokenPool",type:"address"},{internalType:"uint256",name:"totalPool",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"},{internalType:"uint256",name:"tFinal",type:"uint256"},{internalType:"uint256",name:"tStart",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"_user",type:"address"}],stateMutability:"nonpayable",type:"function",name:"makeEstimation",outputs:[{internalType:"bytes32",name:"epochAnswer",type:"bytes32"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"amountTotalToBeRewarded",type:"uint256"},{internalType:"uint256",name:"idToOverwrite",type:"uint256"},{internalType:"uint256",name:"timestampToOverwrite",type:"uint256"}]},{inputs:[{internalType:"address",name:"tokenPool",type:"address"},{internalType:"uint256",name:"totalPool",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"},{internalType:"uint256",name:"tStart",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"notifyNewEpoch"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setActivatorProposal"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setAddressStakingProposal"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setAdminProposal"},{inputs:[{internalType:"address",name:"_proposal",type:"address"}],stateMutability:"nonpayable",type:"function",name:"setEvvmAddressProposal"},{inputs:[{internalType:"address",name:"_user",type:"address"}],stateMutability:"view",type:"function",name:"simulteEstimation",outputs:[{internalType:"bytes32",name:"epochAnswer",type:"bytes32"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"uint256",name:"amountTotalToBeRewarded",type:"uint256"},{internalType:"uint256",name:"idToOverwrite",type:"uint256"},{internalType:"uint256",name:"timestampToOverwrite",type:"uint256"}]}],devdoc:{kind:"dev",methods:{constructor:{details:"Sets up all required addresses for contract operation",params:{_activator:"Address authorized to start new epochs",_addressStaking:"Address of the Staking contract",_admin:"Address with administrative privileges",_coreAddress:"Address of the EVVM core contract"}},"getActivatorMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for activator"}},"getActualEpochInFormat()":{returns:{_0:"Current epoch identifier"}},"getActualEpochInUint()":{returns:{_0:"Current epoch number (epochId - 2)"}},"getAddressStakingMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for Staking"}},"getAdminMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for admin"}},"getCoreAddressMetadata()":{returns:{_0:"Complete AddressTypeProposal struct for EVVM"}},"getEpochMetadata()":{returns:{_0:"Complete EpochMetadata struct with pool and timing information"}},"makeEstimation(address)":{details:"Only callable by the Staking contract. Uses time-weighted average calculation to determine proportional rewards based on staking duration and amount.",params:{_user:"Address of the user to calculate rewards for"},returns:{amountTotalToBeRewarded:"Calculated reward amount for the user",epochAnswer:"Epoch identifier to record in user history",idToOverwrite:"Index in user history to update with reward info",timestampToOverwrite:"Timestamp to record for the reward transaction",tokenAddress:"Address of the reward token"}},"notifyNewEpoch(address,uint256,uint256,uint256)":{details:"Only callable by the activator address. Records epoch metadata for reward calculations.",params:{tStart:"Timestamp when the epoch started",tokenPool:"Address of the token to be distributed as rewards",totalPool:"Total amount of tokens available for distribution this epoch",totalStaked:"Total staking tokens staked at epoch start"}},"setActivatorProposal(address)":{params:{_proposal:"Address of the proposed new activator"}},"setAddressStakingProposal(address)":{params:{_proposal:"Address of the proposed new Staking contract"}},"setAdminProposal(address)":{params:{_proposal:"Address of the proposed new admin"}},"setEvvmAddressProposal(address)":{params:{_proposal:"Address of the proposed new EVVM contract"}},"simulteEstimation(address)":{details:"View function for previewing rewards before claiming",params:{_user:"Address of the user to simulate rewards for"},returns:{amountTotalToBeRewarded:"Calculated reward amount",epochAnswer:"Epoch identifier that would be recorded",idToOverwrite:"Index in user history that would be updated",timestampToOverwrite:"Timestamp that would be recorded",tokenAddress:"Address of the reward token"}}},version:1},userdoc:{kind:"user",methods:{"acceptActivatorProposal()":{notice:"Accepts the activator proposal after time delay"},"acceptAddressStakingProposal()":{notice:"Accepts the Staking address proposal after time delay"},"acceptAdminProposal()":{notice:"Accepts the admin proposal after time delay"},"acceptEvvmAddressProposal()":{notice:"Accepts the EVVM address proposal after time delay"},"cancelActivatorProposal()":{notice:"Cancels the pending activator proposal"},"cancelAddressStakingProposal()":{notice:"Cancels the pending Staking address proposal"},"cancelAdminProposal()":{notice:"Cancels the pending admin proposal"},"cancelEvvmAddressProposal()":{notice:"Cancels the pending EVVM address proposal"},constructor:{notice:"Initializes the Estimator contract"},"getActivatorMetadata()":{notice:"Returns the activator address proposal information"},"getActualEpochInFormat()":{notice:"Returns the current epoch identifier in bytes32 format"},"getActualEpochInUint()":{notice:"Returns the current epoch number as uint256"},"getAddressStakingMetadata()":{notice:"Returns the Staking contract address proposal information"},"getAdminMetadata()":{notice:"Returns the admin address proposal information"},"getCoreAddressMetadata()":{notice:"Returns the EVVM address proposal information"},"getEpochMetadata()":{notice:"Returns the current epoch metadata"},"makeEstimation(address)":{notice:"Calculates and returns the reward amount for a specific user"},"notifyNewEpoch(address,uint256,uint256,uint256)":{notice:"Starts a new reward epoch with the provided parameters"},"setActivatorProposal(address)":{notice:"Proposes a new activator address with 1-day time delay"},"setAddressStakingProposal(address)":{notice:"Proposes a new Staking contract address with 1-day time delay"},"setAdminProposal(address)":{notice:"Proposes a new admin address with 1-day time delay"},"setEvvmAddressProposal(address)":{notice:"Proposes a new EVVM address with 1-day time delay"},"simulteEstimation(address)":{notice:"Simulates reward estimation without modifying state"}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/staking/Estimator.sol":"Estimator"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Estimator.sol":{keccak256:"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057",urls:["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Staking.sol":{keccak256:"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a",urls:["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/StakingError.sol":{keccak256:"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2",urls:["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/StakingStructs.sol":{keccak256:"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf",urls:["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/StakingHashUtils.sol":{keccak256:"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65",urls:["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:67},mk={abi:[{type:"constructor",inputs:[{name:"_initialOwner",type:"address",internalType:"address"},{name:"_stakingContractAddress",type:"address",internalType:"address"},{name:"_evvmMetadata",type:"tuple",internalType:"struct CoreStructs.EvvmMetadata",components:[{name:"EvvmName",type:"string",internalType:"string"},{name:"EvvmID",type:"uint256",internalType:"uint256"},{name:"principalTokenName",type:"string",internalType:"string"},{name:"principalTokenSymbol",type:"string",internalType:"string"},{name:"principalTokenAddress",type:"address",internalType:"address"},{name:"totalSupply",type:"uint256",internalType:"uint256"},{name:"eraTokens",type:"uint256",internalType:"uint256"},{name:"reward",type:"uint256",internalType:"uint256"}]}],stateMutability:"nonpayable"},{type:"fallback",stateMutability:"nonpayable"},{type:"function",name:"acceptAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptChangeBaseRewardAmount",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptChangeRewardFlowDistribution",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptDeleteTotalSupply",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptImplementation",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptListStatusProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptUserValidatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addAmountToUser",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addBalance",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"quantity",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"asyncNonceStatus",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bytes1",internalType:"bytes1"}],stateMutability:"view"},{type:"function",name:"batchPay",inputs:[{name:"batchData",type:"tuple[]",internalType:"struct CoreStructs.BatchData[]",components:[{name:"from",type:"address",internalType:"address"},{name:"to_address",type:"address",internalType:"address"},{name:"to_identity",type:"string",internalType:"string"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"priorityFee",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"successfulTransactions",type:"uint256",internalType:"uint256"},{name:"results",type:"bool[]",internalType:"bool[]"}],stateMutability:"nonpayable"},{type:"function",name:"caPay",inputs:[{name:"to",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"canExecuteUserTransaction",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelUserValidatorProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"disperseCaPay",inputs:[{name:"toData",type:"tuple[]",internalType:"struct CoreStructs.DisperseCaPayMetadata[]",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"toAddress",type:"address",internalType:"address"}]},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"dispersePay",inputs:[{name:"from",type:"address",internalType:"address"},{name:"toData",type:"tuple[]",internalType:"struct CoreStructs.DispersePayMetadata[]",components:[{name:"amount",type:"uint256",internalType:"uint256"},{name:"to_address",type:"address",internalType:"address"},{name:"to_identity",type:"string",internalType:"string"}]},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"priorityFee",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAllowListStatus",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getAsyncNonceReservation",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getBalance",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getChainHostCoinAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"pure"},{type:"function",name:"getCurrentAdmin",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentImplementation",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCurrentListStatus",inputs:[],outputs:[{name:"",type:"bytes1",internalType:"bytes1"}],stateMutability:"view"},{type:"function",name:"getCurrentSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getDenyListStatus",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEvvmMetadata",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct CoreStructs.EvvmMetadata",components:[{name:"EvvmName",type:"string",internalType:"string"},{name:"EvvmID",type:"uint256",internalType:"uint256"},{name:"principalTokenName",type:"string",internalType:"string"},{name:"principalTokenSymbol",type:"string",internalType:"string"},{name:"principalTokenAddress",type:"address",internalType:"address"},{name:"totalSupply",type:"uint256",internalType:"uint256"},{name:"eraTokens",type:"uint256",internalType:"uint256"},{name:"reward",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailAdmin",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.AddressTypeProposal",components:[{name:"current",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailImplementation",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.AddressTypeProposal",components:[{name:"current",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailListStatus",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.Bytes1TypeProposal",components:[{name:"current",type:"bytes1",internalType:"bytes1"},{name:"proposal",type:"bytes1",internalType:"bytes1"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailReward",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.UintTypeProposal",components:[{name:"current",type:"uint256",internalType:"uint256"},{name:"proposal",type:"uint256",internalType:"uint256"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailRewardFlowDistribution",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.BoolTypeProposal",components:[{name:"flag",type:"bool",internalType:"bool"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getFullDetailUserValidator",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.AddressTypeProposal",components:[{name:"current",type:"address",internalType:"address"},{name:"proposal",type:"address",internalType:"address"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getIfUsedAsyncNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getNameServiceAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getNextCurrentSyncNonce",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPrincipalTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getPrincipalTokenTotalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getRewardAmount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getRewardFlowDistributionFlag",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getStakingContractAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getTimeToDeleteMaxSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getUserValidatorAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"initializeSystemContracts",inputs:[{name:"_nameServiceAddress",type:"address",internalType:"address"},{name:"_treasuryAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isAddressStaker",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"pay",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to_address",type:"address",internalType:"address"},{name:"to_identity",type:"string",internalType:"string"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"priorityFee",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"pointStaker",inputs:[{name:"user",type:"address",internalType:"address"},{name:"answer",type:"bytes1",internalType:"bytes1"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeAdmin",inputs:[{name:"_newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeChangeBaseRewardAmount",inputs:[{name:"newBaseReward",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeChangeRewardFlowDistribution",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeDeleteTotalSupply",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeImplementation",inputs:[{name:"_newImpl",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeListStatus",inputs:[{name:"newStatus",type:"bytes1",internalType:"bytes1"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeUserValidator",inputs:[{name:"newValidator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"recalculateReward",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectChangeBaseRewardAmount",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectChangeRewardFlowDistribution",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectDeleteTotalSupply",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectListStatusProposal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectUpgrade",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeAmountFromUser",inputs:[{name:"user",type:"address",internalType:"address"},{name:"token",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"reserveAsyncNonce",inputs:[{name:"nonce",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"revokeAsyncNonce",inputs:[{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setEvvmID",inputs:[{name:"newEvvmID",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setPointStaker",inputs:[{name:"user",type:"address",internalType:"address"},{name:"answer",type:"bytes1",internalType:"bytes1"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTokenStatusOnAllowList",inputs:[{name:"token",type:"address",internalType:"address"},{name:"status",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setTokenStatusOnDenyList",inputs:[{name:"token",type:"address",internalType:"address"},{name:"status",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validateAndConsumeNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"hashPayload",type:"bytes32",internalType:"bytes32"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"isAsyncExec",type:"bool",internalType:"bool"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AddressCantBeZero",inputs:[]},{type:"error",name:"AsyncNonceAlreadyReserved",inputs:[]},{type:"error",name:"AsyncNonceAlreadyUsed",inputs:[]},{type:"error",name:"AsyncNonceIsReservedByAnotherService",inputs:[]},{type:"error",name:"AsyncNonceNotReserved",inputs:[]},{type:"error",name:"BaseRewardIncreaseNotAllowed",inputs:[]},{type:"error",name:"BreakerExploded",inputs:[]},{type:"error",name:"ImplementationIsNotActive",inputs:[]},{type:"error",name:"IncorrectAddressInput",inputs:[]},{type:"error",name:"InsufficientBalance",inputs:[]},{type:"error",name:"InvalidAmount",inputs:[]},{type:"error",name:"InvalidListStatus",inputs:[]},{type:"error",name:"InvalidServiceAddress",inputs:[]},{type:"error",name:"InvalidSignature",inputs:[]},{type:"error",name:"MaxSupplyDeletionNotAllowed",inputs:[]},{type:"error",name:"NotAnCA",inputs:[]},{type:"error",name:"OriginIsNotTheOriginExecutor",inputs:[]},{type:"error",name:"ProposalNotReadyToAccept",inputs:[]},{type:"error",name:"RewardFlowDistributionChangeNotAllowed",inputs:[]},{type:"error",name:"SenderIsNotAdmin",inputs:[]},{type:"error",name:"SenderIsNotTheProposedAdmin",inputs:[]},{type:"error",name:"SenderIsNotTreasury",inputs:[]},{type:"error",name:"ServiceSenderMismatch",inputs:[]},{type:"error",name:"SyncNonceMismatch",inputs:[]},{type:"error",name:"TokenIsDeniedForExecution",inputs:[]},{type:"error",name:"UserCannotExecuteTransaction",inputs:[]},{type:"error",name:"WindowExpired",inputs:[]}],bytecode:{object:"0x60806040523461061c576144f38038038061001981610620565b92833981019060608183031261061c5761003281610645565b9061003f60208201610645565b604082015190916001600160401b03821161061c5701916101008385031261061c576040519261010084016001600160401b038111858210176104065760405280516001600160401b03811161061c578561009b918301610659565b845260208181015190850190815260408201516001600160401b03811161061c57866100c8918401610659565b60408601908152606083015190966001600160401b03821161061c576100ef918401610659565b6060860190815261010260808401610645565b966080870197885260a08401519260a0880193845260e060c08601519560c08a0196875201519560e0890196875260018060a01b0316978815801561060b575b6105fc57518051906001600160401b0382116104065760095490600182811c921680156105f2575b60208310146103e85781601f84931161057c575b50602090601f8311600114610516575f9261050b575b50508160011b915f199060031b1c1916176009555b51600a55518051906001600160401b03821161040657600b5490600182811c92168015610501575b60208310146103e85781601f84931161048b575b50602090601f8311600114610425575f9261041a575b50508160011b915f199060031b1c191617600b555b5180519096906001600160401b03811161040657600c54600181811c911680156103fc575b60208210146103e857601f811161037a575b506020601f82116001146103125781906102d598995f92610307575b50508160011b915f199060031b1c191617600c555b51600d80546001600160a01b03199081166001600160a01b03938416179091559151600e559151600f5591516010556001805483169184169182178155601180549093169095179091556014805460ff19169094179093556106cb565b5f52601b60205260405f20600160ff19825416179055600160ff19601a541617601a55604051613da9908161074a8239f35b015190505f80610263565b601f19821698600c5f52815f20995f5b8181106103625750916102d5999a9184600195941061034a575b505050811b01600c55610278565b01515f1960f88460031b161c191690555f808061033c565b838301518c556001909b019a60209384019301610322565b8181111561024757600c5f52601f820160051c7fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7602084106103e0575b81601f9101920160051c03905f5b8281106103d3575050610247565b5f828201556001016103c5565b5f91506103b7565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610235565b634e487b7160e01b5f52604160045260245ffd5b015190505f806101fb565b600b5f9081528281209350601f198516905b818110610473575090846001959493921061045b575b505050811b01600b55610210565b01515f1960f88460031b161c191690555f808061044d565b92936020600181928786015181550195019301610437565b828111156101e557600b5f52909150601f830160051c7f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9602085106104f9575b849392601f0160051c82900391015f5b8281106104e95750506101e5565b5f818301558594506001016104db565b5f91506104cb565b91607f16916101d1565b015190505f80610194565b60095f9081528281209350601f198516905b818110610564575090846001959493921061054c575b505050811b016009556101a9565b01515f1960f88460031b161c191690555f808061053e565b92936020600181928786015181550195019301610528565b8281111561017e5760095f52909150601f830160051c7f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af602085106105ea575b849392601f0160051c82900391015f5b8281106105da57505061017e565b5f818301558594506001016105cc565b5f91506105bc565b91607f169161016a565b632582a64160e11b5f5260045ffd5b506001600160a01b03881615610142565b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761040657604052565b51906001600160a01b038216820361061c57565b81601f8201121561061c578051906001600160401b03821161040657610688601f8301601f1916602001610620565b928284526020838301011161061c57815f9260208093018386015e8301015290565b919082018092116106b757565b634e487b7160e01b5f52601160045260245ffd5b60ff6014541615801561073b575b610738576010548060011b90808204600214901517156106b7576107339160018060a01b03165f52601c60205260405f2060018060a01b03600d54165f5260205260405f206107298282546106aa565b90556008546106aa565b600855565b50565b50600854600e5411156106d956fe60806040526004361015610019575b341561323d575b5f80fd5b5f3560e01c806301ed3f51146104685780630211de41146104635780630761a3ad1461045e57806308351bdd1461045957806309a69f571461045457806309fc69711461044f5780630e18b6811461044a5780630f1f38b2146104455780630faff8e814610440578063147bf6c41461043b57806315ba56e51461043657806317c85152146104315780631d3a4e2d1461042c57806325e3243b14610427578063280e32fb14610422578063286b4b441461041d57806329cca5691461041857806332e26fdc146104135780633625c9011461040e5780633a8cd872146104095780633f54542a14610404578063401dffee146103ff57806347ecd0f6146103fa5780634b366ccc146103f55780634c3b7bdb146103f05780634f3e1efc146103eb5780635300e162146103e657806354a12357146103e157806355160ea6146103dc578063563b6170146103d75780635a2cba27146103d2578063643d430c146103cd5780636a230fb4146103c85780636afe5795146103c35780636c9fa638146103be5780636cd30148146103b9578063766dd07b146103b457806376e6eb7e146103af5780637797e97d146103aa5780637a975c80146103a5578063804ef86f146103a0578063862b37371461039b5780638b62e507146103965780638e0c71ad1461039157806390fcb4ee1461038c57806392ab1f24146103875780639dd18c1514610382578063a574aac41461037d578063a7a096f614610378578063ab82aa0a14610373578063adb6233f1461036e578063ae63d1a714610369578063b139c79714610364578063b38c950a1461035f578063b517ac7d1461035a578063bd26035e14610355578063be726ffd14610350578063c898a6e91461034b578063cd654e3e14610346578063d0e3692d14610341578063d3bca8841461033c578063d4fac45d14610337578063e08290ee14610332578063e4e3cfee1461032d578063e7816eb814610328578063e8163dda14610323578063ef0035291461031e578063ef802613146103195763fa7a2e2a0361000e57612251565b6121b1565b61218b565b61213f565b611ca2565b611c03565b611ba6565b611b60565b611aeb565b611a9d565b611a42565b6119db565b6119be565b611991565b61193b565b6118ba565b611894565b61181f565b6117c1565b611738565b611699565b611653565b6115f0565b611588565b6114e6565b6114cc565b6113b8565b611365565b6112fd565b611281565b61123b565b6111dc565b611193565b611157565b6110ca565b611078565b61103b565b611015565b610fd4565b610f80565b610ea2565b610e4b565b610d86565b610d69565b610d20565b610cba565b610c9d565b610c65565b610c2d565b610c08565b610be0565b610b46565b610a9d565b610a4e565b610a28565b6109b4565b610992565b610975565b61091f565b610873565b6107a5565b6106c6565b610648565b610620565b610603565b6105c2565b61051a565b6104e2565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600a546104b0575b600a556201518042018042116104ab57600755005b6122c6565b60075442111561049657633ddfdb7f60e11b5f5260045ffd5b636587b01b60e11b5f5260045ffd5b5f91031261001557565b34610015575f366003190112610015576001600160a01b036011541633036104c95761051461ff001960185416601855565b5f601955005b34610015575f366003190112610015576105326123ca565b506060601054601654601754906040805161054c81612333565b8481526020810192835201918252604051928352516020830152516040820152f35b6001600160a01b0381160361001557565b60a4359061058c8261056e565b565b60c4359061058c8261056e565b6024359061058c8261056e565b6064359061058c8261056e565b60e4359061058c8261056e565b34610015576020366003190112610015576001600160a01b036004356105e78161056e565b165f526023602052602060ff60405f2054166040519015158152f35b34610015575f366003190112610015576020601054604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c9575f601555005b34610015575f3660031901126100155760135442106106b7576001600160a01b03601254168033036106a8576106a6906106956040519161068883612333565b6001600160a01b03168252565b5f60208201525f60408201526123e8565b005b63036834cf60e51b5f5260045ffd5b633ec513fd60e01b5f5260045ffd5b346100155760203660031901126100155760206106ed6004356106e88161056e565b612451565b6040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815261010060e061077661076061074086518560208801526101208701906106f7565b602087015160408701526040870151601f198783030160608801526106f7565b6060860151858203601f190160808701526106f7565b60808501516001600160a01b031660a08501529360a081015160c085015260c081015182850152015191015290565b34610015575f366003190112610015575f60e06040516107c481612353565b60608152826020820152606060408201526060808201528260808201528260a08201528260c0820152015261086f6107fa6123ab565b6108026124cf565b8152600a5460208201526108146125a4565b604082015261082161264b565b606082015261084b61083b600d546001600160a01b031690565b6001600160a01b03166080830152565b600e5460a0820152600f5460c082015260105460e08201526040519182918261071b565b0390f35b34610015576020366003190112610015576004356108908161056e565b6001600160a01b03601154168033036104c9576001600160a01b038216818115918215610915575b5050610906576201518042018042116104ab576108fc6106a6936108ec6108dd6123bb565b6001600160a01b039095168552565b6001600160a01b03166020840152565b60408201526123e8565b630f107a8160e11b5f5260045ffd5b149050815f6108b8565b34610015575f366003190112610015576001600160a01b036011541633036104c95760055442106106b75760048054600380546001600160a01b03199081166001600160a01b038416179091551690555f600555005b34610015575f366003190112610015576020600a54604051908152f35b34610015575f36600319011261001557602060ff601454166040519015158152f35b34610015575f366003190112610015576109cc6123ca565b506040516109d981612333565b6018546001600160f81b031960f882901b811680845260f09290921b81166020808501918252601954604095860190815285519485529151909216918301919091525191810191909152606090f35b34610015575f3660031901126100155760206001600160a01b03600d5416604051908152f35b346100155760203660031901126100155760206106ed600435610a708161056e565b6001600160a01b03165f908152601b602052604090205460f81b6001600160f81b031916600160f81b1490565b34610015575f3660031901126100155760206001600160a01b0360035416604051908152f35b9181601f84011215610015578235916001600160401b038311610015576020808501948460051b01011161001557565b8015150361001557565b610104359061058c82610af3565b610124359061058c82610af3565b9181601f84011215610015578235916001600160401b038311610015576020838186019501011161001557565b346100155761014036600319011261001557600435610b648161056e565b6024356001600160401b03811161001557610b83903690600401610ac3565b91604435610b908161056e565b606435608435610b9e61057f565b610ba661058e565b9160e43593610bb3610afd565b9561012435996001600160401b038b1161001557610bd86106a69b3690600401610b19565b9a90996128fd565b34610015575f366003190112610015576001600160a01b036011541633036104c9575f600655005b34610015575f3660031901126100155760206001600160a01b035f5416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c957600480546001600160a01b03191690555f600555005b34610015575f366003190112610015576001600160a01b036011541633036104c957601e80546001600160a01b03191690555f601f55005b34610015575f366003190112610015576020600e54604051908152f35b34610015576040366003190112610015576020610ce5600435610cdc8161056e565b60243590612bed565b6040516001600160f81b03199091168152f35b604090600319011261001557600435610d108161056e565b90602435610d1d81610af3565b90565b3461001557610d2e36610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602460205260405f209060ff801983541691151516179055565b34610015575f366003190112610015576020600854604051908152f35b34610015575f36600319011261001557600e54600f549081811180610e40575b15610015578181039081116104ab57610dcb91610dc69160011c90612312565b600f55565b610ddf601054610dd96135ce565b90612c86565b610e2a610e22610e00336001600160a01b03165f52601c60205260405f2090565b600d546001600160a01b03165b6001600160a01b03165f5260205260405f2090565b918254612312565b90556106a6610e3b60105460011c90565b601055565b505f19811415610da6565b34610015575f366003190112610015576001600160a01b036011541633036104c95760065442106106b7575f19600e55005b604090600319011261001557600435610e958161056e565b90602435610d1d8161056e565b3461001557610eb036610e7d565b60ff601a541615610f71576001600160a01b038216158015610f60575b610f5157610ef8826001600160a01b036106a694166001600160601b0360a01b5f5416175f55613440565b610f33610f26610f0f5f546001600160a01b031690565b6001600160a01b03165f52601b60205260405f2090565b805460ff19166001179055565b6001600160a01b03166001600160601b0360a01b6002541617600255565b632582a64160e11b5f5260045ffd5b506001600160a01b03811615610ecd565b630169759360e61b5f5260045ffd5b34610015575f366003190112610015575f6020604051610f9f8161236f565b828152015260408051610fb18161236f565b60ff60145416151590818152602060155491019081528251918252516020820152f35b34610015576020366003190112610015576001600160a01b03600435610ff98161056e565b165f526024602052602060ff60405f2054166040519015158152f35b34610015575f3660031901126100155760206001600160a01b0360115416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c95760175442106106b7576016546010555f6016555f6017555f80f35b34610015575f3660031901126100155760206001600160a01b0360015416604051908152f35b6060906003190112610015576004356110b68161056e565b906024356110c38161056e565b9060443590565b34610015576110d83661109e565b919060ff60f81b60185460f81b16611149575b6001600160a01b0360025416330361113a576001600160a01b0361112b92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182018092116104ab5755005b63aab0382b60e01b5f5260045ffd5b61115281613366565b6110eb565b34610015576020366003190112610015576001600160a01b0360043561117c8161056e565b165f526022602052602060405f2054604051908152f35b34610015576111a136610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602360205260405f209060ff801983541691151516179055565b34610015576111ea3661109e565b91906001600160a01b0360025416330361113a576001600160a01b0361122c92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182039182116104ab5755005b34610015575f366003190112610015576001600160a01b036011541633036104c95760195442106106b7576018805461ffff19811660089190911c60ff16179055610514565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e549061270f820282810461270f14831517156104ab576127109004119081156112f2575b506112e3576201518042018042116104ab57600655005b633cfd42e960e01b5f5260045ffd5b5f191490505f6112cc565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600e545f1914801590611359575b61134a576016556201518042018042116104ab57601755005b633527678960e01b5f5260045ffd5b50601054811015611331565b34610015576040366003190112610015576004356113828161056e565b6001600160a01b0360243591165f52602160205260405f20905f5260205260206001600160a01b0360405f205416604051908152f35b34610015576040366003190112610015576004356024356113d88161056e565b6001600160a01b038116156114bd57335f526020805261140d6114068360405f20905f5260205260405f2090565b5460ff1690565b6114ae5761145c61145061144384611436336001600160a01b03165f52602160205260405f2090565b905f5260205260405f2090565b546001600160a01b031690565b6001600160a01b031690565b61149f576114826106a692611436336001600160a01b03165f52602160205260405f2090565b906001600160a01b03166001600160601b0360a01b825416179055565b632e81b29360e01b5f5260045ffd5b632a0c4a2360e01b5f5260045ffd5b635ece24d960e11b5f5260045ffd5b34610015575f3660031901126100155760206040515f8152f35b3461001557610160366003190112610015576004356115048161056e565b61150c61059b565b6044356001600160401b0381116100155761152b903690600401610b19565b6115369391936105a8565b60843560a43561154461058e565b9061154d6105b5565b92610104359461155b610b0b565b96610144359a6001600160401b038c11610015576115806106a69c3690600401610b19565b9b909a612ce2565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e5461270f81029080820461270f14901517156104ab576127109004116115e1576201518042018042116104ab57601555005b63228f257f60e11b5f5260045ffd5b346100155760203660031901126100155760043561160d8161056e565b6001600160a01b036011541633036104c9576001600160a01b03168015610906576001600160601b0360a01b600454161760045562278d0042018042116104ab57600555005b34610015575f366003190112610015576001600160a01b036011541633036104c95760155442106106b75760145460ff80821615169060ff1916176014555f6015555f80f35b34610015576060366003190112610015576004356001600160401b0381116100155736602382011215610015578060040135906001600160401b038211610015573660248360061b83010111610015576106a691602435906116fa8261056e565b60246044359301612e6a565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b34610015575f366003190112610015576117506123ca565b5061086f60405161176081612333565b6001600160a01b036011541681526001600160a01b03601254166020820152601354604082015260405191829182611706565b602435906001600160f81b03198216820361001557565b600435906001600160f81b03198216820361001557565b34610015576040366003190112610015576004356117de8161056e565b6117e6611793565b6001600160a01b03600154163303610015576001600160a01b036106a692165f52601b60205260405f209060f81c60ff19825416179055565b34610015576020366003190112610015576118386117aa565b6001600160a01b036011541633036104c95760038160f81c1015611885576118739061ff00806018549260f01c16169061ff00191617601855565b6201518042018042116104ab57601955005b631fd8bc0560e11b5f5260045ffd5b34610015575f3660031901126100155760206001600160a01b03601d5416604051908152f35b34610015575f366003190112610015576001600160a01b03601154168033036104c9576001600160a01b03905f604080516118f481612333565b8381528260208201520152166001600160601b0360a01b60115416176011556119355f6001600160a01b03166001600160601b0360a01b6012541617601255565b5f601355005b34610015575f366003190112610015576001600160a01b036011541633036104c957601f5442106106b757601e8054601d80546001600160a01b03199081166001600160a01b038416179091551690555f601f55005b34610015575f366003190112610015576001600160a01b036011541633036104c9575f6016819055601755005b34610015575f366003190112610015576020600654604051908152f35b34610015576119e93661109e565b906119f333612451565b15611a3357611a029233613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14611a2a57005b6106a6336134c5565b630296e8bf60e61b5f5260045ffd5b34610015575f36600319011261001557611a5a6123ca565b5061086f604051611a6a81612333565b6001600160a01b03601d541681526001600160a01b03601e54166020820152601f54604082015260405191829182611706565b3461001557604036600319011261001557600435611aba8161056e565b6001600160a01b0360243591165f526020805260405f20905f52602052602060ff60405f2054166040519015158152f35b34610015576001600160a01b03611b013661109e565b929091165f52601c602052611b2a8160405f20906001600160a01b03165f5260205260405f2090565b8054908382018092116104ab57556001600160a01b0380600d5416911614611b4e57005b6008549081018091116104ab57600855005b34610015576020611b9d6001600160a01b03611b7b36610e7d565b91165f52601c835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b34610015575f36600319011261001557611bbe6123ca565b5061086f6001600160a01b03600354166001600160a01b03600454166005549060405192611beb84612333565b83526020830152604082015260405191829182611706565b3461001557602036600319011261001557600435611c208161056e565b6001600160a01b036011541633036104c9576001600160a01b03166001600160601b0360a01b601e541617601e556201518042018042116104ab57601f55005b6060602091604081019381526040838201528451809452019201905f5b818110611c8a5750505090565b82511515845260209384019390920191600101611c7d565b34610015576020366003190112610015576004356001600160401b03811161001557611cd2903690600401610ac3565b335f908152601b60205260408120549192909160f81b6001600160f81b031916600160f81b1490611d0284612f84565b9373__$4eed29582e89dabffcea3de7fdb0d1406e$__905f5b818110611d495750505050611d3a575b61086f60405192839283611c60565b611d448133613528565b611d2b565b611d54818386612fb6565b611d5d816128ad565b611d6960c083016128ad565b6020830191611d77836128ad565b926040850190611d878287612867565b909360608801956020611d99886128ad565b938d60808c01359860a08d01359b611dc98d8c6040519a8b9788968796634c09e2c960e01b885260048801612ca8565b03915af4928315612039575f9361210f575b50611de860e08a016128ad565b916101008a013592611dfd6101208c01612fd9565b611e0b6101408d018d612867565b91303b15610015575f96611e3494604051998a988998637d3d171560e11b8a5260048a01612fe3565b038183305af190816120f5575b50611e6257505050505050805f611e5a6001938a613026565b525b01611d1b565b601854969b9660f81b600160f81b6001600160f81b031982161490816120c4575b811561207a575b5061205b578a1561207057611e9f8386612312565b611ece611ec5611eae896128ad565b6001600160a01b03165f52601c60205260405f2090565b610e0d876128ad565b541061205b57611f00611efc611eee611ee7858a612867565b3691612724565b611ef6612899565b90613413565b1590565b1561203e57506020611f4c91611f2d611f266114506114505f546001600160a01b031690565b9188612867565b604051630d3dcb9f60e01b8152948593928492839291600484016128d7565b03915afa908115612039575f9161200b575b506001600160a01b03811615611ff15791611f966001969492611fac96945b611f86866128ad565b90611f90856128ad565b91613644565b81151580611fea575b611fc5575b50505061303a565b95611fc0611fba828a613026565b60019052565b611e5c565b611fda611fd4611fe2946128ad565b916128ad565b903390613644565b5f8080611fa4565b5089611f9f565b505050505094805f6120056001938a613026565b52611e5c565b61202c915060203d8111612032575b612024818361238a565b8101906128e8565b5f611f5e565b503d61201a565b612446565b611fac959391506001969492612056611f96926128ad565b611f7d565b50505050505094805f6120056001938a613026565b611e9f835f612312565b6001600160f81b031916600160f91b14905080612098575b5f611e8a565b506120bf6114066120a8866128ad565b6001600160a01b03165f52602360205260405f2090565b612092565b90506120ef611efc6114066120d8886128ad565b6001600160a01b03165f52602460205260405f2090565b90611e83565b806121035f6121099361238a565b806104d8565b5f611e41565b61213191935060203d8111612138575b612129818361238a565b810190612c99565b915f611ddb565b503d61211f565b34610015576040366003190112610015576106a660043561215f8161056e565b6001600160a01b0361216f611793565b91165f52601b60205260405f209060f81c60ff19825416179055565b34610015575f36600319011261001557602060185460f81b6040519060ff60f81b168152f35b3461001557602036600319011261001557600435335f526020805260405f20815f5260205260ff60405f2054166114ae57335f5260216020526001600160a01b0361220a6114438360405f20905f5260205260405f2090565b1615612242576122326106a691611436336001600160a01b03165f52602160205260405f2090565b80546001600160a01b0319169055565b63eb54a44d60e01b5f5260045ffd5b346100155760e03660031901126100155760043561226e8161056e565b6024359061227b8261056e565b606435916122888361056e565b60a43560843561229782610af3565b60c435946001600160401b038611610015576122ba6106a6963690600401610b19565b95909460443591613048565b634e487b7160e01b5f52601160045260245ffd5b90600182018092116104ab57565b60020190816002116104ab57565b60030190816003116104ab57565b90600c82018092116104ab57565b919082018092116104ab57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761234e57604052565b61231f565b61010081019081106001600160401b0382111761234e57604052565b604081019081106001600160401b0382111761234e57604052565b90601f801991011681019081106001600160401b0382111761234e57604052565b6040519061058c6101008361238a565b6040519061058c60608361238a565b604051906123d782612333565b5f6040838281528260208201520152565b6040906001600160a01b038151166001600160601b0360a01b60115416176011556001600160a01b036020820151166001600160601b0360a01b60125416176012550151601355565b908160209103126100155751610d1d81610af3565b6040513d5f823e3d90fd5b6001600160a01b03601d541680156124c8576040516385c99e2b60e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115612039575f9161249f575090565b610d1d915060203d6020116124c1575b6124b9818361238a565b810190612431565b503d6124af565b5050600190565b604051905f6009548060011c9160018216801561259a575b602084108114612586578386528592602084019190811561256d5750600114612518575b5061058c9250038361238a565b60095f90815291507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b848310612556575061058c9350015f61250b565b805482840152869350602090920191600101612542565b60ff191682525061058c93151560051b0190505f61250b565b634e487b7160e01b5f52602260045260245ffd5b92607f16926124e7565b604051905f600b548060011c91600182168015612641575b602084108114612586578386528592602084019190811561256d57506001146125ec575061058c9250038361238a565b600b5f90815291507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b84831061262a575061058c9350015f61250b565b805482840152869350602090920191600101612616565b92607f16926125bc565b604051905f600c548060011c916001821680156126e8575b602084108114612586578386528592602084019190811561256d5750600114612693575061058c9250038361238a565b600c5f90815291507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8483106126d1575061058c9350015f61250b565b8054828401528693506020909201916001016126bd565b92607f1692612663565b6001600160401b03811161234e5760051b60200190565b6001600160401b03811161234e57601f01601f191660200190565b92919261273082612709565b9161273e604051938461238a565b829481845281830111610015578281602093845f960137010152565b929192612766826126f2565b93612774604051958661238a565b602085848152019260051b8201918183116100155780935b83851061279a575050505050565b84356001600160401b0381116100155782019060608285031261001557604051916127c483612333565b8035835260208101356127d68161056e565b60208401526040810135906001600160401b03821161001557019084601f830112156100155760209261280f8684868096359101612724565b604082015281520194019361278c565b919082039182116104ab57565b634e487b7160e01b5f52603260045260245ffd5b91908110156128625760051b81013590605e1981360301821215610015570190565b61282c565b903590601e198136030182121561001557018035906001600160401b0382116100155760200191813603831361001557565b604051906128a860208361238a565b5f8252565b35610d1d8161056e565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610d1d9381815201916128b7565b908160209103126100155751610d1d8161056e565b9681999296612925878761292c999f989c95979e978f90612920908d369161275a565b61327b565b9089613048565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14936129848661296e856001600160a01b03165f52601c60205260405f2090565b906001600160a01b03165f5260205260405f2090565b548515612be457612996885b86612312565b11612bd55760185460f81b6001600160f81b031916612bc7575b5f928515612bb1576129f06129e88861296e6129d08c9796975b8a612312565b946001600160a01b03165f52601c60205260405f2090565b91825461281f565b90555f91825b828410612a44575050505003612a3557612a0e575050565b610e22612a3191612a1e336134c5565b335f908152601c6020526040902061296e565b9055565b63162908e360e11b5f5260045ffd5b90919293612a5e90612a57868686612840565b3590612312565b93612a80611efc611eee611ee7612a76858989612840565b6040810190612867565b15612b9157612a9c6114506114505f546001600160a01b031690565b612acb6020612aaf612a76858989612840565b6040516310d9158b60e31b8152938492839290600484016128d7565b0381855afa908115612039575f91612b73575b50612b22575b506001905b612af4818686612840565b35612b17610e228b61296e876001600160a01b03165f52601c60205260405f2090565b9055019291906129f6565b819250602090611f2d612a76612b39948888612840565b03915afa8015612039576001915f91612b55575b509190612ae4565b612b6d915060203d811161203257612024818361238a565b5f612b4d565b612b8b915060203d81116124c1576124b9818361238a565b5f612ade565b90506001612bab6020612ba5848787612840565b016128ad565b91612ae9565b6129f06129e88861296e6129d05f9796976129ca565b612bd086613366565b6129b0565b631e9acf1760e31b5f5260045ffd5b6129965f612990565b6001600160a01b0381165f526020805260405f20825f5260205260ff60405f2054165f14612c205750600160f81b919050565b612c3b906001600160a01b03165f52602160205260405f2090565b905f526020526001600160a01b03612c5e60405f206001600160a01b0390541690565b1615612c6c57600160f91b90565b5f90565b908160011b91808304600214901517156104ab57565b818102929181159184041417156104ab57565b90816020910312610015575190565b9260809497969592612cd2916001600160a01b03809416865260a0602087015260a08601916128b7565b9616604083015260608201520152565b9b92988598602084848a9f969b9a899f969a908f9a91612d17926040519c8d968796634c09e2c960e01b885260048801612ca8565b038173__$4eed29582e89dabffcea3de7fdb0d1406e$__5af48015612039578c988f612d4a985f93612e39575b50613048565b612d5b611efc611eee368887612724565b15612e2c575050612d9d92602091612d806114506114505f546001600160a01b031690565b9060405180968194829363063c696360e11b8452600484016128d7565b03915afa91821561203957612dbd9284915f91612e0d575b505b86613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612de857505050565b81612dfa575b50505061058c336134c5565b612e05923390613644565b5f8080612dee565b612e26915060203d60201161203257612024818361238a565b5f612db5565b909150612dbd9350612db7565b612e5391935060203d60201161213857612129818361238a565b915f612d44565b91908110156128625760061b0190565b60185460f81b6001600160f81b031916612f76575b333b15612f675783612ea68461296e336001600160a01b03165f52601c60205260405f2090565b5410612bd55791905f92612ecf8361296e336001600160a01b03165f52601c60205260405f2090565b612eda86825461281f565b90555f925b828410612f20575050505003612a3557335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612f1757565b61058c336134c5565b90919293612f35600191612a57878787612e5a565b94612f41818686612e5a565b35612f5c610e228561296e611eae6020612ba5888d8d612e5a565b905501929190612edf565b633d0c12e760e21b5f5260045ffd5b612f7f83613366565b612e7f565b90612f8e826126f2565b612f9b604051918261238a565b8281528092612fac601f19916126f2565b0190602036910137565b91908110156128625760051b8101359061015e1981360301821215610015570190565b35610d1d81610af3565b93610d1d9896936001600160a01b0360e0979481809516885216602087015260408601521660608401526080830152151560a08201528160c082015201916128b7565b80518210156128625760209160051b010190565b5f1981146104ab5760010190565b9590919396926001600160a01b0381168015159081613232575b50613223576001600160a01b0383168015159081613218575b50613209578588613096926130a49761309e96600a54613791565b923691612724565b906138a1565b6001600160a01b038084169116036131fa576130c2611efc83612451565b611a3357156131a5576130d58282612bed565b600160f81b6001600160f81b03196130ed8585612bed565b16146114ae576001600160f81b031916600160f91b148061313d575b61312e5761058c91611436610f26926001600160a01b03165f526020805260405f2090565b633d83838160e21b5f5260045ffd5b50336001600160a01b0361316961144385611436866001600160a01b03165f52602160205260405f2090565b161415806131095750326001600160a01b0361319d61144385611436866001600160a01b03165f52602160205260405f2090565b161415613109565b906131c1826001600160a01b03165f52602260205260405f2090565b54036131eb576131e2906001600160a01b03165f52602260205260405f2090565b80546001019055565b63193ec5c960e01b5f5260045ffd5b638baa579f60e01b5f5260045ffd5b631c92090760e01b5f5260045ffd5b90503314155f61307b565b63018cc8b960e11b5f5260045ffd5b90503214155f613062565b6003546001600160a01b0381161561326c575f8091368280378136915af43d5f803e15613268573d5ff35b3d5ffd5b6332cea9e160e11b5f5260045ffd5b919092604051928391602083019560a08752600b60c08501526a646973706572736550617960a81b60e0850152610100840160e06040860152835180915261012085019060206101208260051b8801019501915f905b82821061330c57505050506001600160a01b0316606084015261330693608084015260a083015203601f19810183528261238a565b51902090565b919394965091969460208061335260019361011f198d8203018652606060408d51805184526001600160a01b0386820151168685015201519181604082015201906106f7565b9901920192018896949391929795976132d1565b60185460f881901b6001600160f81b031916600160f81b149190826133f0575b82156133a4575b505061339557565b6379d0112560e11b5f5260045ffd5b6001600160f81b031960f89190911b16600160f91b149150816133ca575b505f8061338d565b6133ea9150611406906001600160a01b03165f52602360205260405f2090565b5f6133c2565b6001600160a01b0382165f9081526024602052604090205460ff16159250613386565b908151815190818114938461342a575b5050505090565b602092939450820120920120145f808080613423565b60ff601454161580156134b7575b6134b457601054906014820291808304601414901517156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b6134a5828254612312565b9055600854612312565b600855565b50565b50600854600e54111561344e565b60ff6014541615801561351a575b6134b45760105490811582800460011417156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b50600854600e5411156134d3565b9060ff601454161580156135a2575b61359e5761354f6001600160a01b0391601054612c86565b91165f52601c60205261358060405f206001600160a01b03600d54166001600160a01b03165f5260205260405f2090565b8054918083018093116104ab5761058c926134af9255600854612312565b5050565b50600854600e541115613537565b81156135ba570690565b634e487b7160e01b5f52601260045260245ffd5b5f1943014381116104ab5761363d610d1d915a6040519060208201924083524260408301524460608301523360601b60808301523260601b609483015260a882015260a8815261361f60c88261238a565b51902061363761363260016113db61281f565b6122da565b906135b0565b6001612312565b6018549192916001600160a01b03919060f81b6001600160f81b0319166136e6575b1691825f52601c60205261368e8260405f20906001600160a01b03165f5260205260405f2090565b5490848210612bd5578461296e926136de955f52601c602052036136c68460405f20906001600160a01b03165f5260205260405f2090565b556001600160a01b03165f52601c60205260405f2090565b908154019055565b6136ef83613366565b613666565b805191908290602001825e015f815290565b9391959492909560405196879560208701613720916136f4565b600b60fa1b8152600101613733916136f4565b600b60fa1b8152600101613746916136f4565b600b60fa1b8152600101613759916136f4565b600b60fa1b815260010161376c916136f4565b600b60fa1b815260010161377f916136f4565b03601f198101835261058c908361238a565b6137a56137ab919796949795939295613a13565b94613bdb565b6137b3613b69565b9160306137bf84613bad565b5360786137cb84613bba565b535f5b602081106137fd5750506137f76137f16137eb610d1d9899613bdb565b94613a13565b94613ccb565b94613706565b81811a61381e61381860f483901b600f60f81b165b60f81c90565b60ff1690565b90601082101561286257600f916f181899199a1a9b1b9c1cb0b131b232b360811b901a61385b61385561385086612c70565b6122e8565b88613bca565b5316906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a61389a61389461388f84612c70565b6122f6565b87613bca565b53016137ce565b6138f36139016138b18351613a13565b926040519283916138ed60208401967f19457468657265756d205369676e6564204d6573736167653a0a0000000000008852603a8501906136f4565b906136f4565b03601f19810183528261238a565b51902060418251036139a657815f916020809401519160606040820151910151841a92601b841061398f575b906139719161394b60ff8616601b8114908115613984575b50613d27565b604051948594859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa15612039575f5190565b601c9150145f613945565b929061399d61397192613d15565b9390915061392d565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606490fd5b906139f582612709565b613a02604051918261238a565b8281528092612fac601f1991612709565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613b46575b806d04ee2d6d415b85acef8100000000600a921015613b2a575b662386f26fc10000811015613b15575b6305f5e100811015613b03575b612710811015613af3575b6064811015613ae4575b1015613ad9575b613ac46021613a99600185016139eb565b938401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b8015613ad457613ac49091613a9e565b505090565b600190910190613a88565b60029060649004930192613a81565b6004906127109004930192613a77565b6008906305f5e1009004930192613a6c565b601090662386f26fc100009004930192613a5f565b6020906d04ee2d6d415b85acef81000000009004930192613a4f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613a35565b60405160809190613b7a838261238a565b6042815291601f1901366020840137565b60405160609190613b9c838261238a565b602a815291601f1901366020840137565b8051156128625760200190565b8051600110156128625760210190565b908151811015612862570160200190565b6001600160a01b0316613bec613b8b565b906030613bf883613bad565b536078613c0483613bba565b535f5b60148110613c1457505090565b613c1d81612304565b602081101561286257613c3f906138189084901a60f41b600f60f81b16613812565b6010811015612862576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c73613c6d61385084612c70565b85613bca565b53613c7d81612304565b60208110156128625782600f911a16906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a613cc4613cbe61388f84612c70565b86613bca565b5301613c07565b15613cf257604051613cde60408261238a565b60048152637472756560e01b602082015290565b604051613d0060408261238a565b600581526466616c736560d81b602082015290565b60ff601b9116019060ff82116104ab57565b15613d2e57565b60405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207369676e61747572652076616c75650000000000000000006044820152606490fdfea2646970667358221220feaa3592c21e9294557b92cf22bc225736906f3c7c922eb1e93819f6e0e9e29e64736f6c63430008210033",sourceMap:"3502:52503:62:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4210:27;;;:68;;;;-1:-1:-1;4193:128:62;;3502:52503;;;;-1:-1:-1;;;;;3502:52503:62;;;;4332:28;3502:52503;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;4332:28;3502:52503;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4515:39;3502:52503;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4430:5;3502:52503;;;;;;;;;;;4470:22;3502:52503;;-1:-1:-1;;3502:52503:62;;;;;;;4515:39;:::i;:::-;-1:-1:-1;1240:4:63;4565:10:62;3502:52503;1240:4:63;3502:52503:62;-1:-1:-1;1240:4:63;3502:52503:62;;;1240:4:63;;3502:52503:62;;1240:4:63;;3502:52503:62;;;4628:37;3502:52503;;;4628:37;3502:52503;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;;;;;4515:39;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;4332:28;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;4332:28;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4332:28;-1:-1:-1;3502:52503:62;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;4193:128;4296:25;;;-1:-1:-1;4296:25:62;;-1:-1:-1;4296:25:62;4210:68;-1:-1:-1;;;;;;3502:52503:62;;4241:37;4210:68;;3502:52503;-1:-1:-1;3502:52503:62;;;;;;;;;-1:-1:-1;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;:::o;:::-;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;-1:-1:-1;;3502:52503:62;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;55070:382;3502:52503;55158:22;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:19;3502:52503;;;;;;;;;;;;;;;;55413:32;3502:52503;;;;;;;-1:-1:-1;1240:4:63;55334:8:62;1240:4:63;;;-1:-1:-1;1240:4:63;3502:52503:62;;;;;55349:34;3502:52503;;-1:-1:-1;1240:4:63;;;;-1:-1:-1;1240:4:63;55334:69:62;3502:52503;;;55334:69;:::i;:::-;3502:52503;;55413:32;3502:52503;55413:32;:::i;:::-;;3502:52503;55070:382::o;55140:120::-;55253:7;:::o;55157:85::-;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;",linkReferences:{"src/library/utils/signature/CoreHashUtils.sol":{CoreHashUtils:[{start:9295,length:20},{start:13413,length:20}]}}},deployedBytecode:{object:"0x60806040526004361015610019575b341561323d575b5f80fd5b5f3560e01c806301ed3f51146104685780630211de41146104635780630761a3ad1461045e57806308351bdd1461045957806309a69f571461045457806309fc69711461044f5780630e18b6811461044a5780630f1f38b2146104455780630faff8e814610440578063147bf6c41461043b57806315ba56e51461043657806317c85152146104315780631d3a4e2d1461042c57806325e3243b14610427578063280e32fb14610422578063286b4b441461041d57806329cca5691461041857806332e26fdc146104135780633625c9011461040e5780633a8cd872146104095780633f54542a14610404578063401dffee146103ff57806347ecd0f6146103fa5780634b366ccc146103f55780634c3b7bdb146103f05780634f3e1efc146103eb5780635300e162146103e657806354a12357146103e157806355160ea6146103dc578063563b6170146103d75780635a2cba27146103d2578063643d430c146103cd5780636a230fb4146103c85780636afe5795146103c35780636c9fa638146103be5780636cd30148146103b9578063766dd07b146103b457806376e6eb7e146103af5780637797e97d146103aa5780637a975c80146103a5578063804ef86f146103a0578063862b37371461039b5780638b62e507146103965780638e0c71ad1461039157806390fcb4ee1461038c57806392ab1f24146103875780639dd18c1514610382578063a574aac41461037d578063a7a096f614610378578063ab82aa0a14610373578063adb6233f1461036e578063ae63d1a714610369578063b139c79714610364578063b38c950a1461035f578063b517ac7d1461035a578063bd26035e14610355578063be726ffd14610350578063c898a6e91461034b578063cd654e3e14610346578063d0e3692d14610341578063d3bca8841461033c578063d4fac45d14610337578063e08290ee14610332578063e4e3cfee1461032d578063e7816eb814610328578063e8163dda14610323578063ef0035291461031e578063ef802613146103195763fa7a2e2a0361000e57612251565b6121b1565b61218b565b61213f565b611ca2565b611c03565b611ba6565b611b60565b611aeb565b611a9d565b611a42565b6119db565b6119be565b611991565b61193b565b6118ba565b611894565b61181f565b6117c1565b611738565b611699565b611653565b6115f0565b611588565b6114e6565b6114cc565b6113b8565b611365565b6112fd565b611281565b61123b565b6111dc565b611193565b611157565b6110ca565b611078565b61103b565b611015565b610fd4565b610f80565b610ea2565b610e4b565b610d86565b610d69565b610d20565b610cba565b610c9d565b610c65565b610c2d565b610c08565b610be0565b610b46565b610a9d565b610a4e565b610a28565b6109b4565b610992565b610975565b61091f565b610873565b6107a5565b6106c6565b610648565b610620565b610603565b6105c2565b61051a565b6104e2565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600a546104b0575b600a556201518042018042116104ab57600755005b6122c6565b60075442111561049657633ddfdb7f60e11b5f5260045ffd5b636587b01b60e11b5f5260045ffd5b5f91031261001557565b34610015575f366003190112610015576001600160a01b036011541633036104c95761051461ff001960185416601855565b5f601955005b34610015575f366003190112610015576105326123ca565b506060601054601654601754906040805161054c81612333565b8481526020810192835201918252604051928352516020830152516040820152f35b6001600160a01b0381160361001557565b60a4359061058c8261056e565b565b60c4359061058c8261056e565b6024359061058c8261056e565b6064359061058c8261056e565b60e4359061058c8261056e565b34610015576020366003190112610015576001600160a01b036004356105e78161056e565b165f526023602052602060ff60405f2054166040519015158152f35b34610015575f366003190112610015576020601054604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c9575f601555005b34610015575f3660031901126100155760135442106106b7576001600160a01b03601254168033036106a8576106a6906106956040519161068883612333565b6001600160a01b03168252565b5f60208201525f60408201526123e8565b005b63036834cf60e51b5f5260045ffd5b633ec513fd60e01b5f5260045ffd5b346100155760203660031901126100155760206106ed6004356106e88161056e565b612451565b6040519015158152f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6020815261010060e061077661076061074086518560208801526101208701906106f7565b602087015160408701526040870151601f198783030160608801526106f7565b6060860151858203601f190160808701526106f7565b60808501516001600160a01b031660a08501529360a081015160c085015260c081015182850152015191015290565b34610015575f366003190112610015575f60e06040516107c481612353565b60608152826020820152606060408201526060808201528260808201528260a08201528260c0820152015261086f6107fa6123ab565b6108026124cf565b8152600a5460208201526108146125a4565b604082015261082161264b565b606082015261084b61083b600d546001600160a01b031690565b6001600160a01b03166080830152565b600e5460a0820152600f5460c082015260105460e08201526040519182918261071b565b0390f35b34610015576020366003190112610015576004356108908161056e565b6001600160a01b03601154168033036104c9576001600160a01b038216818115918215610915575b5050610906576201518042018042116104ab576108fc6106a6936108ec6108dd6123bb565b6001600160a01b039095168552565b6001600160a01b03166020840152565b60408201526123e8565b630f107a8160e11b5f5260045ffd5b149050815f6108b8565b34610015575f366003190112610015576001600160a01b036011541633036104c95760055442106106b75760048054600380546001600160a01b03199081166001600160a01b038416179091551690555f600555005b34610015575f366003190112610015576020600a54604051908152f35b34610015575f36600319011261001557602060ff601454166040519015158152f35b34610015575f366003190112610015576109cc6123ca565b506040516109d981612333565b6018546001600160f81b031960f882901b811680845260f09290921b81166020808501918252601954604095860190815285519485529151909216918301919091525191810191909152606090f35b34610015575f3660031901126100155760206001600160a01b03600d5416604051908152f35b346100155760203660031901126100155760206106ed600435610a708161056e565b6001600160a01b03165f908152601b602052604090205460f81b6001600160f81b031916600160f81b1490565b34610015575f3660031901126100155760206001600160a01b0360035416604051908152f35b9181601f84011215610015578235916001600160401b038311610015576020808501948460051b01011161001557565b8015150361001557565b610104359061058c82610af3565b610124359061058c82610af3565b9181601f84011215610015578235916001600160401b038311610015576020838186019501011161001557565b346100155761014036600319011261001557600435610b648161056e565b6024356001600160401b03811161001557610b83903690600401610ac3565b91604435610b908161056e565b606435608435610b9e61057f565b610ba661058e565b9160e43593610bb3610afd565b9561012435996001600160401b038b1161001557610bd86106a69b3690600401610b19565b9a90996128fd565b34610015575f366003190112610015576001600160a01b036011541633036104c9575f600655005b34610015575f3660031901126100155760206001600160a01b035f5416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c957600480546001600160a01b03191690555f600555005b34610015575f366003190112610015576001600160a01b036011541633036104c957601e80546001600160a01b03191690555f601f55005b34610015575f366003190112610015576020600e54604051908152f35b34610015576040366003190112610015576020610ce5600435610cdc8161056e565b60243590612bed565b6040516001600160f81b03199091168152f35b604090600319011261001557600435610d108161056e565b90602435610d1d81610af3565b90565b3461001557610d2e36610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602460205260405f209060ff801983541691151516179055565b34610015575f366003190112610015576020600854604051908152f35b34610015575f36600319011261001557600e54600f549081811180610e40575b15610015578181039081116104ab57610dcb91610dc69160011c90612312565b600f55565b610ddf601054610dd96135ce565b90612c86565b610e2a610e22610e00336001600160a01b03165f52601c60205260405f2090565b600d546001600160a01b03165b6001600160a01b03165f5260205260405f2090565b918254612312565b90556106a6610e3b60105460011c90565b601055565b505f19811415610da6565b34610015575f366003190112610015576001600160a01b036011541633036104c95760065442106106b7575f19600e55005b604090600319011261001557600435610e958161056e565b90602435610d1d8161056e565b3461001557610eb036610e7d565b60ff601a541615610f71576001600160a01b038216158015610f60575b610f5157610ef8826001600160a01b036106a694166001600160601b0360a01b5f5416175f55613440565b610f33610f26610f0f5f546001600160a01b031690565b6001600160a01b03165f52601b60205260405f2090565b805460ff19166001179055565b6001600160a01b03166001600160601b0360a01b6002541617600255565b632582a64160e11b5f5260045ffd5b506001600160a01b03811615610ecd565b630169759360e61b5f5260045ffd5b34610015575f366003190112610015575f6020604051610f9f8161236f565b828152015260408051610fb18161236f565b60ff60145416151590818152602060155491019081528251918252516020820152f35b34610015576020366003190112610015576001600160a01b03600435610ff98161056e565b165f526024602052602060ff60405f2054166040519015158152f35b34610015575f3660031901126100155760206001600160a01b0360115416604051908152f35b34610015575f366003190112610015576001600160a01b036011541633036104c95760175442106106b7576016546010555f6016555f6017555f80f35b34610015575f3660031901126100155760206001600160a01b0360015416604051908152f35b6060906003190112610015576004356110b68161056e565b906024356110c38161056e565b9060443590565b34610015576110d83661109e565b919060ff60f81b60185460f81b16611149575b6001600160a01b0360025416330361113a576001600160a01b0361112b92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182018092116104ab5755005b63aab0382b60e01b5f5260045ffd5b61115281613366565b6110eb565b34610015576020366003190112610015576001600160a01b0360043561117c8161056e565b165f526022602052602060405f2054604051908152f35b34610015576111a136610cf8565b6001600160a01b036011541633036104c9576001600160a01b036106a692165f52602360205260405f209060ff801983541691151516179055565b34610015576111ea3661109e565b91906001600160a01b0360025416330361113a576001600160a01b0361122c92165f52601c60205260405f20906001600160a01b03165f5260205260405f2090565b80549182039182116104ab5755005b34610015575f366003190112610015576001600160a01b036011541633036104c95760195442106106b7576018805461ffff19811660089190911c60ff16179055610514565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e549061270f820282810461270f14831517156104ab576127109004119081156112f2575b506112e3576201518042018042116104ab57600655005b633cfd42e960e01b5f5260045ffd5b5f191490505f6112cc565b34610015576020366003190112610015576004356001600160a01b036011541633036104c957600e545f1914801590611359575b61134a576016556201518042018042116104ab57601755005b633527678960e01b5f5260045ffd5b50601054811015611331565b34610015576040366003190112610015576004356113828161056e565b6001600160a01b0360243591165f52602160205260405f20905f5260205260206001600160a01b0360405f205416604051908152f35b34610015576040366003190112610015576004356024356113d88161056e565b6001600160a01b038116156114bd57335f526020805261140d6114068360405f20905f5260205260405f2090565b5460ff1690565b6114ae5761145c61145061144384611436336001600160a01b03165f52602160205260405f2090565b905f5260205260405f2090565b546001600160a01b031690565b6001600160a01b031690565b61149f576114826106a692611436336001600160a01b03165f52602160205260405f2090565b906001600160a01b03166001600160601b0360a01b825416179055565b632e81b29360e01b5f5260045ffd5b632a0c4a2360e01b5f5260045ffd5b635ece24d960e11b5f5260045ffd5b34610015575f3660031901126100155760206040515f8152f35b3461001557610160366003190112610015576004356115048161056e565b61150c61059b565b6044356001600160401b0381116100155761152b903690600401610b19565b6115369391936105a8565b60843560a43561154461058e565b9061154d6105b5565b92610104359461155b610b0b565b96610144359a6001600160401b038c11610015576115806106a69c3690600401610b19565b9b909a612ce2565b34610015575f366003190112610015576001600160a01b036011541633036104c957600854600e5461270f81029080820461270f14901517156104ab576127109004116115e1576201518042018042116104ab57601555005b63228f257f60e11b5f5260045ffd5b346100155760203660031901126100155760043561160d8161056e565b6001600160a01b036011541633036104c9576001600160a01b03168015610906576001600160601b0360a01b600454161760045562278d0042018042116104ab57600555005b34610015575f366003190112610015576001600160a01b036011541633036104c95760155442106106b75760145460ff80821615169060ff1916176014555f6015555f80f35b34610015576060366003190112610015576004356001600160401b0381116100155736602382011215610015578060040135906001600160401b038211610015573660248360061b83010111610015576106a691602435906116fa8261056e565b60246044359301612e6a565b91909160408060608301946001600160a01b0381511684526001600160a01b0360208201511660208501520151910152565b34610015575f366003190112610015576117506123ca565b5061086f60405161176081612333565b6001600160a01b036011541681526001600160a01b03601254166020820152601354604082015260405191829182611706565b602435906001600160f81b03198216820361001557565b600435906001600160f81b03198216820361001557565b34610015576040366003190112610015576004356117de8161056e565b6117e6611793565b6001600160a01b03600154163303610015576001600160a01b036106a692165f52601b60205260405f209060f81c60ff19825416179055565b34610015576020366003190112610015576118386117aa565b6001600160a01b036011541633036104c95760038160f81c1015611885576118739061ff00806018549260f01c16169061ff00191617601855565b6201518042018042116104ab57601955005b631fd8bc0560e11b5f5260045ffd5b34610015575f3660031901126100155760206001600160a01b03601d5416604051908152f35b34610015575f366003190112610015576001600160a01b03601154168033036104c9576001600160a01b03905f604080516118f481612333565b8381528260208201520152166001600160601b0360a01b60115416176011556119355f6001600160a01b03166001600160601b0360a01b6012541617601255565b5f601355005b34610015575f366003190112610015576001600160a01b036011541633036104c957601f5442106106b757601e8054601d80546001600160a01b03199081166001600160a01b038416179091551690555f601f55005b34610015575f366003190112610015576001600160a01b036011541633036104c9575f6016819055601755005b34610015575f366003190112610015576020600654604051908152f35b34610015576119e93661109e565b906119f333612451565b15611a3357611a029233613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14611a2a57005b6106a6336134c5565b630296e8bf60e61b5f5260045ffd5b34610015575f36600319011261001557611a5a6123ca565b5061086f604051611a6a81612333565b6001600160a01b03601d541681526001600160a01b03601e54166020820152601f54604082015260405191829182611706565b3461001557604036600319011261001557600435611aba8161056e565b6001600160a01b0360243591165f526020805260405f20905f52602052602060ff60405f2054166040519015158152f35b34610015576001600160a01b03611b013661109e565b929091165f52601c602052611b2a8160405f20906001600160a01b03165f5260205260405f2090565b8054908382018092116104ab57556001600160a01b0380600d5416911614611b4e57005b6008549081018091116104ab57600855005b34610015576020611b9d6001600160a01b03611b7b36610e7d565b91165f52601c835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b34610015575f36600319011261001557611bbe6123ca565b5061086f6001600160a01b03600354166001600160a01b03600454166005549060405192611beb84612333565b83526020830152604082015260405191829182611706565b3461001557602036600319011261001557600435611c208161056e565b6001600160a01b036011541633036104c9576001600160a01b03166001600160601b0360a01b601e541617601e556201518042018042116104ab57601f55005b6060602091604081019381526040838201528451809452019201905f5b818110611c8a5750505090565b82511515845260209384019390920191600101611c7d565b34610015576020366003190112610015576004356001600160401b03811161001557611cd2903690600401610ac3565b335f908152601b60205260408120549192909160f81b6001600160f81b031916600160f81b1490611d0284612f84565b9373__$4eed29582e89dabffcea3de7fdb0d1406e$__905f5b818110611d495750505050611d3a575b61086f60405192839283611c60565b611d448133613528565b611d2b565b611d54818386612fb6565b611d5d816128ad565b611d6960c083016128ad565b6020830191611d77836128ad565b926040850190611d878287612867565b909360608801956020611d99886128ad565b938d60808c01359860a08d01359b611dc98d8c6040519a8b9788968796634c09e2c960e01b885260048801612ca8565b03915af4928315612039575f9361210f575b50611de860e08a016128ad565b916101008a013592611dfd6101208c01612fd9565b611e0b6101408d018d612867565b91303b15610015575f96611e3494604051998a988998637d3d171560e11b8a5260048a01612fe3565b038183305af190816120f5575b50611e6257505050505050805f611e5a6001938a613026565b525b01611d1b565b601854969b9660f81b600160f81b6001600160f81b031982161490816120c4575b811561207a575b5061205b578a1561207057611e9f8386612312565b611ece611ec5611eae896128ad565b6001600160a01b03165f52601c60205260405f2090565b610e0d876128ad565b541061205b57611f00611efc611eee611ee7858a612867565b3691612724565b611ef6612899565b90613413565b1590565b1561203e57506020611f4c91611f2d611f266114506114505f546001600160a01b031690565b9188612867565b604051630d3dcb9f60e01b8152948593928492839291600484016128d7565b03915afa908115612039575f9161200b575b506001600160a01b03811615611ff15791611f966001969492611fac96945b611f86866128ad565b90611f90856128ad565b91613644565b81151580611fea575b611fc5575b50505061303a565b95611fc0611fba828a613026565b60019052565b611e5c565b611fda611fd4611fe2946128ad565b916128ad565b903390613644565b5f8080611fa4565b5089611f9f565b505050505094805f6120056001938a613026565b52611e5c565b61202c915060203d8111612032575b612024818361238a565b8101906128e8565b5f611f5e565b503d61201a565b612446565b611fac959391506001969492612056611f96926128ad565b611f7d565b50505050505094805f6120056001938a613026565b611e9f835f612312565b6001600160f81b031916600160f91b14905080612098575b5f611e8a565b506120bf6114066120a8866128ad565b6001600160a01b03165f52602360205260405f2090565b612092565b90506120ef611efc6114066120d8886128ad565b6001600160a01b03165f52602460205260405f2090565b90611e83565b806121035f6121099361238a565b806104d8565b5f611e41565b61213191935060203d8111612138575b612129818361238a565b810190612c99565b915f611ddb565b503d61211f565b34610015576040366003190112610015576106a660043561215f8161056e565b6001600160a01b0361216f611793565b91165f52601b60205260405f209060f81c60ff19825416179055565b34610015575f36600319011261001557602060185460f81b6040519060ff60f81b168152f35b3461001557602036600319011261001557600435335f526020805260405f20815f5260205260ff60405f2054166114ae57335f5260216020526001600160a01b0361220a6114438360405f20905f5260205260405f2090565b1615612242576122326106a691611436336001600160a01b03165f52602160205260405f2090565b80546001600160a01b0319169055565b63eb54a44d60e01b5f5260045ffd5b346100155760e03660031901126100155760043561226e8161056e565b6024359061227b8261056e565b606435916122888361056e565b60a43560843561229782610af3565b60c435946001600160401b038611610015576122ba6106a6963690600401610b19565b95909460443591613048565b634e487b7160e01b5f52601160045260245ffd5b90600182018092116104ab57565b60020190816002116104ab57565b60030190816003116104ab57565b90600c82018092116104ab57565b919082018092116104ab57565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b0382111761234e57604052565b61231f565b61010081019081106001600160401b0382111761234e57604052565b604081019081106001600160401b0382111761234e57604052565b90601f801991011681019081106001600160401b0382111761234e57604052565b6040519061058c6101008361238a565b6040519061058c60608361238a565b604051906123d782612333565b5f6040838281528260208201520152565b6040906001600160a01b038151166001600160601b0360a01b60115416176011556001600160a01b036020820151166001600160601b0360a01b60125416176012550151601355565b908160209103126100155751610d1d81610af3565b6040513d5f823e3d90fd5b6001600160a01b03601d541680156124c8576040516385c99e2b60e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115612039575f9161249f575090565b610d1d915060203d6020116124c1575b6124b9818361238a565b810190612431565b503d6124af565b5050600190565b604051905f6009548060011c9160018216801561259a575b602084108114612586578386528592602084019190811561256d5750600114612518575b5061058c9250038361238a565b60095f90815291507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b848310612556575061058c9350015f61250b565b805482840152869350602090920191600101612542565b60ff191682525061058c93151560051b0190505f61250b565b634e487b7160e01b5f52602260045260245ffd5b92607f16926124e7565b604051905f600b548060011c91600182168015612641575b602084108114612586578386528592602084019190811561256d57506001146125ec575061058c9250038361238a565b600b5f90815291507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b84831061262a575061058c9350015f61250b565b805482840152869350602090920191600101612616565b92607f16926125bc565b604051905f600c548060011c916001821680156126e8575b602084108114612586578386528592602084019190811561256d5750600114612693575061058c9250038361238a565b600c5f90815291507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8483106126d1575061058c9350015f61250b565b8054828401528693506020909201916001016126bd565b92607f1692612663565b6001600160401b03811161234e5760051b60200190565b6001600160401b03811161234e57601f01601f191660200190565b92919261273082612709565b9161273e604051938461238a565b829481845281830111610015578281602093845f960137010152565b929192612766826126f2565b93612774604051958661238a565b602085848152019260051b8201918183116100155780935b83851061279a575050505050565b84356001600160401b0381116100155782019060608285031261001557604051916127c483612333565b8035835260208101356127d68161056e565b60208401526040810135906001600160401b03821161001557019084601f830112156100155760209261280f8684868096359101612724565b604082015281520194019361278c565b919082039182116104ab57565b634e487b7160e01b5f52603260045260245ffd5b91908110156128625760051b81013590605e1981360301821215610015570190565b61282c565b903590601e198136030182121561001557018035906001600160401b0382116100155760200191813603831361001557565b604051906128a860208361238a565b5f8252565b35610d1d8161056e565b908060209392818452848401375f828201840152601f01601f1916010190565b916020610d1d9381815201916128b7565b908160209103126100155751610d1d8161056e565b9681999296612925878761292c999f989c95979e978f90612920908d369161275a565b61327b565b9089613048565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14936129848661296e856001600160a01b03165f52601c60205260405f2090565b906001600160a01b03165f5260205260405f2090565b548515612be457612996885b86612312565b11612bd55760185460f81b6001600160f81b031916612bc7575b5f928515612bb1576129f06129e88861296e6129d08c9796975b8a612312565b946001600160a01b03165f52601c60205260405f2090565b91825461281f565b90555f91825b828410612a44575050505003612a3557612a0e575050565b610e22612a3191612a1e336134c5565b335f908152601c6020526040902061296e565b9055565b63162908e360e11b5f5260045ffd5b90919293612a5e90612a57868686612840565b3590612312565b93612a80611efc611eee611ee7612a76858989612840565b6040810190612867565b15612b9157612a9c6114506114505f546001600160a01b031690565b612acb6020612aaf612a76858989612840565b6040516310d9158b60e31b8152938492839290600484016128d7565b0381855afa908115612039575f91612b73575b50612b22575b506001905b612af4818686612840565b35612b17610e228b61296e876001600160a01b03165f52601c60205260405f2090565b9055019291906129f6565b819250602090611f2d612a76612b39948888612840565b03915afa8015612039576001915f91612b55575b509190612ae4565b612b6d915060203d811161203257612024818361238a565b5f612b4d565b612b8b915060203d81116124c1576124b9818361238a565b5f612ade565b90506001612bab6020612ba5848787612840565b016128ad565b91612ae9565b6129f06129e88861296e6129d05f9796976129ca565b612bd086613366565b6129b0565b631e9acf1760e31b5f5260045ffd5b6129965f612990565b6001600160a01b0381165f526020805260405f20825f5260205260ff60405f2054165f14612c205750600160f81b919050565b612c3b906001600160a01b03165f52602160205260405f2090565b905f526020526001600160a01b03612c5e60405f206001600160a01b0390541690565b1615612c6c57600160f91b90565b5f90565b908160011b91808304600214901517156104ab57565b818102929181159184041417156104ab57565b90816020910312610015575190565b9260809497969592612cd2916001600160a01b03809416865260a0602087015260a08601916128b7565b9616604083015260608201520152565b9b92988598602084848a9f969b9a899f969a908f9a91612d17926040519c8d968796634c09e2c960e01b885260048801612ca8565b038173__$4eed29582e89dabffcea3de7fdb0d1406e$__5af48015612039578c988f612d4a985f93612e39575b50613048565b612d5b611efc611eee368887612724565b15612e2c575050612d9d92602091612d806114506114505f546001600160a01b031690565b9060405180968194829363063c696360e11b8452600484016128d7565b03915afa91821561203957612dbd9284915f91612e0d575b505b86613644565b335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612de857505050565b81612dfa575b50505061058c336134c5565b612e05923390613644565b5f8080612dee565b612e26915060203d60201161203257612024818361238a565b5f612db5565b909150612dbd9350612db7565b612e5391935060203d60201161213857612129818361238a565b915f612d44565b91908110156128625760061b0190565b60185460f81b6001600160f81b031916612f76575b333b15612f675783612ea68461296e336001600160a01b03165f52601c60205260405f2090565b5410612bd55791905f92612ecf8361296e336001600160a01b03165f52601c60205260405f2090565b612eda86825461281f565b90555f925b828410612f20575050505003612a3557335f908152601b602052604090205460f81b6001600160f81b031916600160f81b14612f1757565b61058c336134c5565b90919293612f35600191612a57878787612e5a565b94612f41818686612e5a565b35612f5c610e228561296e611eae6020612ba5888d8d612e5a565b905501929190612edf565b633d0c12e760e21b5f5260045ffd5b612f7f83613366565b612e7f565b90612f8e826126f2565b612f9b604051918261238a565b8281528092612fac601f19916126f2565b0190602036910137565b91908110156128625760051b8101359061015e1981360301821215610015570190565b35610d1d81610af3565b93610d1d9896936001600160a01b0360e0979481809516885216602087015260408601521660608401526080830152151560a08201528160c082015201916128b7565b80518210156128625760209160051b010190565b5f1981146104ab5760010190565b9590919396926001600160a01b0381168015159081613232575b50613223576001600160a01b0383168015159081613218575b50613209578588613096926130a49761309e96600a54613791565b923691612724565b906138a1565b6001600160a01b038084169116036131fa576130c2611efc83612451565b611a3357156131a5576130d58282612bed565b600160f81b6001600160f81b03196130ed8585612bed565b16146114ae576001600160f81b031916600160f91b148061313d575b61312e5761058c91611436610f26926001600160a01b03165f526020805260405f2090565b633d83838160e21b5f5260045ffd5b50336001600160a01b0361316961144385611436866001600160a01b03165f52602160205260405f2090565b161415806131095750326001600160a01b0361319d61144385611436866001600160a01b03165f52602160205260405f2090565b161415613109565b906131c1826001600160a01b03165f52602260205260405f2090565b54036131eb576131e2906001600160a01b03165f52602260205260405f2090565b80546001019055565b63193ec5c960e01b5f5260045ffd5b638baa579f60e01b5f5260045ffd5b631c92090760e01b5f5260045ffd5b90503314155f61307b565b63018cc8b960e11b5f5260045ffd5b90503214155f613062565b6003546001600160a01b0381161561326c575f8091368280378136915af43d5f803e15613268573d5ff35b3d5ffd5b6332cea9e160e11b5f5260045ffd5b919092604051928391602083019560a08752600b60c08501526a646973706572736550617960a81b60e0850152610100840160e06040860152835180915261012085019060206101208260051b8801019501915f905b82821061330c57505050506001600160a01b0316606084015261330693608084015260a083015203601f19810183528261238a565b51902090565b919394965091969460208061335260019361011f198d8203018652606060408d51805184526001600160a01b0386820151168685015201519181604082015201906106f7565b9901920192018896949391929795976132d1565b60185460f881901b6001600160f81b031916600160f81b149190826133f0575b82156133a4575b505061339557565b6379d0112560e11b5f5260045ffd5b6001600160f81b031960f89190911b16600160f91b149150816133ca575b505f8061338d565b6133ea9150611406906001600160a01b03165f52602360205260405f2090565b5f6133c2565b6001600160a01b0382165f9081526024602052604090205460ff16159250613386565b908151815190818114938461342a575b5050505090565b602092939450820120920120145f808080613423565b60ff601454161580156134b7575b6134b457601054906014820291808304601414901517156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b6134a5828254612312565b9055600854612312565b600855565b50565b50600854600e54111561344e565b60ff6014541615801561351a575b6134b45760105490811582800460011417156104ab5761058c916001600160a01b036134af92165f52601c60205261349a60405f20610e0d600d546001600160a01b031690565b50600854600e5411156134d3565b9060ff601454161580156135a2575b61359e5761354f6001600160a01b0391601054612c86565b91165f52601c60205261358060405f206001600160a01b03600d54166001600160a01b03165f5260205260405f2090565b8054918083018093116104ab5761058c926134af9255600854612312565b5050565b50600854600e541115613537565b81156135ba570690565b634e487b7160e01b5f52601260045260245ffd5b5f1943014381116104ab5761363d610d1d915a6040519060208201924083524260408301524460608301523360601b60808301523260601b609483015260a882015260a8815261361f60c88261238a565b51902061363761363260016113db61281f565b6122da565b906135b0565b6001612312565b6018549192916001600160a01b03919060f81b6001600160f81b0319166136e6575b1691825f52601c60205261368e8260405f20906001600160a01b03165f5260205260405f2090565b5490848210612bd5578461296e926136de955f52601c602052036136c68460405f20906001600160a01b03165f5260205260405f2090565b556001600160a01b03165f52601c60205260405f2090565b908154019055565b6136ef83613366565b613666565b805191908290602001825e015f815290565b9391959492909560405196879560208701613720916136f4565b600b60fa1b8152600101613733916136f4565b600b60fa1b8152600101613746916136f4565b600b60fa1b8152600101613759916136f4565b600b60fa1b815260010161376c916136f4565b600b60fa1b815260010161377f916136f4565b03601f198101835261058c908361238a565b6137a56137ab919796949795939295613a13565b94613bdb565b6137b3613b69565b9160306137bf84613bad565b5360786137cb84613bba565b535f5b602081106137fd5750506137f76137f16137eb610d1d9899613bdb565b94613a13565b94613ccb565b94613706565b81811a61381e61381860f483901b600f60f81b165b60f81c90565b60ff1690565b90601082101561286257600f916f181899199a1a9b1b9c1cb0b131b232b360811b901a61385b61385561385086612c70565b6122e8565b88613bca565b5316906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a61389a61389461388f84612c70565b6122f6565b87613bca565b53016137ce565b6138f36139016138b18351613a13565b926040519283916138ed60208401967f19457468657265756d205369676e6564204d6573736167653a0a0000000000008852603a8501906136f4565b906136f4565b03601f19810183528261238a565b51902060418251036139a657815f916020809401519160606040820151910151841a92601b841061398f575b906139719161394b60ff8616601b8114908115613984575b50613d27565b604051948594859094939260ff6060936080840197845216602083015260408201520152565b838052039060015afa15612039575f5190565b601c9150145f613945565b929061399d61397192613d15565b9390915061392d565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c6964207369676e6174757265206c656e67746800000000000000006044820152606490fd5b906139f582612709565b613a02604051918261238a565b8281528092612fac601f1991612709565b805f9172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015613b46575b806d04ee2d6d415b85acef8100000000600a921015613b2a575b662386f26fc10000811015613b15575b6305f5e100811015613b03575b612710811015613af3575b6064811015613ae4575b1015613ad9575b613ac46021613a99600185016139eb565b938401015b5f1901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b8015613ad457613ac49091613a9e565b505090565b600190910190613a88565b60029060649004930192613a81565b6004906127109004930192613a77565b6008906305f5e1009004930192613a6c565b601090662386f26fc100009004930192613a5f565b6020906d04ee2d6d415b85acef81000000009004930192613a4f565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8104613a35565b60405160809190613b7a838261238a565b6042815291601f1901366020840137565b60405160609190613b9c838261238a565b602a815291601f1901366020840137565b8051156128625760200190565b8051600110156128625760210190565b908151811015612862570160200190565b6001600160a01b0316613bec613b8b565b906030613bf883613bad565b536078613c0483613bba565b535f5b60148110613c1457505090565b613c1d81612304565b602081101561286257613c3f906138189084901a60f41b600f60f81b16613812565b6010811015612862576f181899199a1a9b1b9c1cb0b131b232b360811b901a613c73613c6d61385084612c70565b85613bca565b53613c7d81612304565b60208110156128625782600f911a16906010821015612862576001916f181899199a1a9b1b9c1cb0b131b232b360811b901a613cc4613cbe61388f84612c70565b86613bca565b5301613c07565b15613cf257604051613cde60408261238a565b60048152637472756560e01b602082015290565b604051613d0060408261238a565b600581526466616c736560d81b602082015290565b60ff601b9116019060ff82116104ab57565b15613d2e57565b60405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207369676e61747572652076616c75650000000000000000006044820152606490fdfea2646970667358221220feaa3592c21e9294557b92cf22bc225736906f3c7c922eb1e93819f6e0e9e29e64736f6c63430008210033",sourceMap:"3502:52503:62:-:0;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;5743:19;3502:52503;5739:147;;3502:52503;5743:19;3502:52503;5983:8;5965:15;3502:52503;5965:15;;3502:52503;;;5938:53;3502:52503;;;;:::i;5739:147::-;5805:24;3502:52503;5787:15;:42;5783:92;5739:147;5783:92;5854:21;;;-1:-1:-1;5854:21:62;3502:52503;-1:-1:-1;5854:21:62;3641:64;3681:24;;;-1:-1:-1;3681:24:62;3502:52503;-1:-1:-1;3681:24:62;3502:52503;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;31975:26;3502:52503;;31975:10;3502:52503;;31975:10;3502:52503;;31975:26;3502:52503;32011:23;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;42752:19;3502:52503;42799:20;3502:52503;42851:24;3502:52503;;;;;;;;:::i;:::-;;;;42692:198;;;3502:52503;;;42692:198;3502:52503;;;;;;;;;42692:198;3502:52503;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::o;:::-;;;;;;;:::i;:::-;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::i;:::-;;-1:-1:-1;3502:52503:62;49468:8;3502:52503;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;42228:19;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;31110:35;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;35104:18;3502:52503;35086:15;:36;35082:93;;-1:-1:-1;;;;;35204:14:62;3502:52503;;35190:10;;:28;35186:88;;3502:52503;;35293:147;3502:52503;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;35293:147;3502:52503;35293:147;;;3502:52503;;;35293:147;;3502:52503;;:::i;:::-;;35186:88;35239:35;;;3502:52503;35239:35;3502:52503;;35239:35;35082:93;35143:32;;;3502:52503;35143:32;3502:52503;;35143:32;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;-1:-1:-1;;3502:52503:62;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;;34291:23;;;:53;;;;;3502:52503;34287:107;;;;1387:6:63;34546:15:62;3502:52503;34546:15;;3502:52503;;;34413:185;3502:52503;;34413:185;3502:52503;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;;;34413:185;-1:-1:-1;;;;;3502:52503:62;;34413:185;;3502:52503;;34413:185;;;;3502:52503;;:::i;34287:107::-;34365:29;;;-1:-1:-1;34365:29:62;3502:52503;-1:-1:-1;34365:29:62;34291:53;34318:26;;-1:-1:-1;34291:53:62;;;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;33683:26;3502:52503;33665:15;:44;33661:101;;3502:52503;;;33773:46;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;-1:-1:-1;33683:26:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;40372:19;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;49846:22;3502:52503;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;;;:::i;:::-;48754:10;3502:52503;-1:-1:-1;;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;39574:34:62;3502:52503;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;;41787:124;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;43816:21:62;3502:52503;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;29423:25;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;33467:30:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;25276:29;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;25328:33:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;43196:24;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;-1:-1:-1;;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;32465:25:62;3502:52503;;-1:-1:-1;3502:52503:62;32465:9;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;43483:13;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;36681:24;3502:52503;36708:22;3502:52503;36681:49;;;;:110;;;3502:52503;36664:507;;;3502:52503;;;;;;;;36816:99;3502:52503;36816:99;3502:52503;;;36816:99;;:::i;:::-;36708:22;3502:52503;;36816:99;37005:57;:19;3502:52503;37043:19;;:::i;:::-;37005:57;;:::i;:::-;36929:133;:56;:20;36938:10;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;36929:20;36950:34;3502:52503;-1:-1:-1;;;;;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;36929:56;3502:52503;;;36929:133;:::i;:::-;3502:52503;;37076:45;37098:23;37005:19;3502:52503;;;;;37098:23;37005:19;3502:52503;;36681:110;-1:-1:-1;;;36746:45:62;;;36681:110;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;29547:21;3502:52503;29529:15;:39;29525:96;;-1:-1:-1;;29632:24:62;3502:52503;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;5095:30;3502:52503;;5094:31;5090:67;;-1:-1:-1;;;;;3502:52503:62;;5172:33;:67;;;;3502:52503;5168:117;;5347:36;3502:52503;-1:-1:-1;;;;;5452:34:62;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;5203:1;3502:52503;;;5203:1;3502:52503;5347:36;:::i;:::-;5394:47;:30;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;5394:10;3502:52503;;;;;;;5394:30;3502:52503;;-1:-1:-1;;3502:52503:62;19834:19;3502:52503;;;;5394:47;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;5452:34;3502:52503;;;5452:34;3502:52503;;5168:117;5260:25;;;-1:-1:-1;5260:25:62;3502:52503;-1:-1:-1;5260:25:62;5172:67;3502:52503;-1:-1:-1;;;;;3502:52503:62;;5209:30;5172:67;;5090;5134:23;;;-1:-1:-1;5134:23:62;3502:52503;-1:-1:-1;5134:23:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;50289:22;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::i;:::-;;-1:-1:-1;3502:52503:62;49107:9;3502:52503;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;44810:5:62;3502:52503;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;30489:24;3502:52503;30471:15;:42;30467:99;;30599:20;3502:52503;30577:19;3502:52503;;30599:20;3502:52503;;30489:24;3502:52503;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;41031:22:62;3502:52503;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;27938:10;3502:52503;;;;27934:71;;3502:52503;-1:-1:-1;;;;;28034:15:62;3502:52503;;28020:10;:29;28016:69;;-1:-1:-1;;;;;28096:21:62;3502:52503;;-1:-1:-1;3502:52503:62;28096:8;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;28096:21;3502:52503;;28096:31;3502:52503;;;;;;;;;28016:69;28058:27;;;-1:-1:-1;28058:27:62;3502:52503;-1:-1:-1;28058:27:62;27934:71;27999:5;;;:::i;:::-;27934:71;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;;;;;:::i;:::-;;-1:-1:-1;3502:52503:62;47283:13;3502:52503;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;32616:24:62;3502:52503;;-1:-1:-1;3502:52503:62;32616:8;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;28529:15:62;3502:52503;;28515:10;:29;28511:69;;-1:-1:-1;;;;;28591:21:62;3502:52503;;-1:-1:-1;3502:52503:62;28591:8;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;28591:21;3502:52503;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;32138:23;3502:52503;32120:15;:41;32116:98;;32138:10;3502:52503;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;;32275:26;3502:52503;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;29099:13;3502:52503;29116:24;3502:52503;;29143:4;3502:52503;;;;;29143:4;3502:52503;;;;;;;29151:5;3502:52503;;-1:-1:-1;29099:118:62;;;;;3502:52503;29082:188;;;1387:6:63;29305:15:62;3502:52503;29305:15;;3502:52503;;;29281:65;3502:52503;;29082:188;29235:35;;;3502:52503;29235:35;3502:52503;;29235:35;29099:118;-1:-1:-1;;29172:45:62;;-1:-1:-1;36774:17:62;29099:118;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;29966:24;3502:52503;-1:-1:-1;;29966:45:62;;;;:97;;3502:52503;29949:168;;30127:36;3502:52503;1387:6:63;30200:15:62;3502:52503;30200:15;;3502:52503;;;30173:68;3502:52503;;29949:168;30081:36;;;-1:-1:-1;30081:36:62;3502:52503;-1:-1:-1;30081:36:62;29966:97;3502:52503;30044:19;3502:52503;30027:36;;;29966:97;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;3502:52503:62;45486:26;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;22238:28;22234:70;;22330:10;-1:-1:-1;3502:52503:62;;;;22319:29;;3502:52503;;-1:-1:-1;3502:52503:62;;;;;;;;;;;22319:29;3502:52503;;;;;22319:29;22315:71;;22401:59;:45;;22330:10;22401:38;22330:10;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;22401:38;3502:52503;;;;;;;;;;22401:45;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;22401:45;-1:-1:-1;;;;;3502:52503:62;;;22401:59;22397:117;;22525:45;:62;22330:10;22525:38;22330:10;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;22525:45;3502:52503;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;22397:117;22481:33;;;-1:-1:-1;22481:33:62;3502:52503;-1:-1:-1;22481:33:62;22315:71;22357:29;;;-1:-1:-1;22357:29:62;3502:52503;-1:-1:-1;22357:29:62;22234:70;22275:29;;;-1:-1:-1;22275:29:62;3502:52503;-1:-1:-1;22275:29:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;:::i;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;30784:13;3502:52503;30801:24;3502:52503;30828:4;3502:52503;;;;;;30828:4;3502:52503;;;;;;;30836:5;3502:52503;;-1:-1:-1;30780:128:62;;1387:6:63;30969:15:62;3502:52503;30969:15;;3502:52503;;;30919:35;3502:52503;;30780:128;30862:46;;;3502:52503;30862:46;3502:52503;;30862:46;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;33060:22;;33056:64;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;1554:7:63;33214:15:62;3502:52503;33214:15;;3502:52503;;;33173:100;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;31259:35;3502:52503;31241:15;:53;31237:110;;31259:22;3502:52503;;;;;31388:28;3502:52503;;;;;;31259:22;3502:52503;;31259:35;3502:52503;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;44976:5:62;3502:52503;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;3502:52503:62;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;;3502:52503:62;;;;;;:::o;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;38155:22:62;3502:52503;;38141:10;:36;38137:50;;-1:-1:-1;;;;;38198:25:62;3502:52503;;-1:-1:-1;3502:52503:62;38198:10;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;31739:4;3502:52503;;;31713:31;;31709:69;;31789:31;;3502:52503;;31789:10;3502:52503;;;;;;;;;;;31789:10;3502:52503;;31789:31;1387:6:63;31856:15:62;3502:52503;31856:15;;3502:52503;;;31830:23;3502:52503;;31709:69;31753:25;;;-1:-1:-1;31753:25:62;3502:52503;-1:-1:-1;31753:25:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;-1:-1:-1;;;;;47596:20:62;3502:52503;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;:::i;:::-;;;;34751:146;;;;3502:52503;34751:146;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;3659:5;3502:52503;;;3659:5;3502:52503;;;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;26108:33;3502:52503;26090:15;:51;26086:108;;26236:29;3502:52503;;26108:20;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;-1:-1:-1;26108:33:62;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;3502:52503;30323:24;3502:52503;;;30357:28;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;50616:21;3502:52503;;;;;;;;;;;;;;:::i;:::-;16975:10;17001:31;16975:10;17001:31;:::i;:::-;17000:32;16996:93;;17138:6;16975:10;;17138:6;:::i;:::-;16975:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;17156:59;;3502:52503;17156:59;17189:26;16975:10;17189:26;:::i;16996:93::-;17053:36;;;-1:-1:-1;17053:36:62;3502:52503;-1:-1:-1;17053:36:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;;;;;48044:20:62;3502:52503;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;:::i;:::-;;;;;-1:-1:-1;3502:52503:62;8098:8;3502:52503;;8098:21;3502:52503;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;8098:21;3502:52503;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;8155:34;3502:52503;;;;8146:43;8142:86;;3502:52503;8142:86;8203:25;3502:52503;;;;;;;;;8203:25;3502:52503;;;;;;;41478:21;-1:-1:-1;;;;;3502:52503:62;;;:::i;:::-;;;-1:-1:-1;3502:52503:62;41478:8;3502:52503;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;41478:21;3502:52503;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;:::i;:::-;;;-1:-1:-1;;;;;44392:21:62;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;;44495:26;3502:52503;;;;;;;;:::i;:::-;;;44329:207;;;3502:52503;;44329:207;;3502:52503;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3659:5:62;3502:52503;;3645:10;:27;3641:64;;-1:-1:-1;;;;;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;24871:29;3502:52503;;;24871:29;3502:52503;1387:6:63;24973:15:62;3502:52503;24973:15;;3502:52503;;;24925:33;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;:::i;:::-;11294:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;3502:52503:62;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;11315:14;11393:28;;;:::i;:::-;11437:21;11710:4;;-1:-1:-1;11460:28:62;;;;;;13706:67;;;;;;11432:2264;3502:52503;11799:19;3502:52503;;;;;;:::i;13706:67::-;13750:22;11294:10;;13750:22;:::i;:::-;13706:67;;11490:11;11527:20;;;;;:::i;:::-;11632:12;;;:::i;:::-;11666:22;;;;;:::i;:::-;3502:52503;11755:18;;;;;;:::i;:::-;11799:19;;;;;;;;;:::i;:::-;11844:13;;;;;;3502:52503;11844:13;;;:::i;:::-;11883:14;;;;;3502:52503;11923:19;;;;3502:52503;;11710:254;3502:52503;;11799:19;3502:52503;;;;;;;;;;;11710:254;;3502:52503;11710:254;;;:::i;:::-;;;;;;;;;;-1:-1:-1;11710:254:62;;;11490:11;11986:22;;3502:52503;11986:22;;;:::i;:::-;12030:13;;;;3502:52503;12065:19;;;;;;:::i;:::-;12106:17;;;;;;:::i;:::-;11582:4;;:559;;;;-1:-1:-1;3502:52503:62;11582:559;3502:52503;11799:19;3502:52503;;;;;;;;;11582:559;;3502:52503;11582:559;;;:::i;:::-;;:4;;;:559;;;;;;11490:11;-1:-1:-1;11562:686:62;;12181:26;;;;;;;3502:52503;12181:26;12305:4;12181:26;;;:::i;:::-;3502:52503;11437:21;3502:52503;11437:21;;11562:686;12283:10;3502:52503;11562:686;;;3502:52503;;-1:-1:-1;;;;;;;;;3502:52503:62;;12283:26;:55;;;;11562:686;12282:132;;;;11562:686;12261:253;;;12551:40;;;;12550:59;12551:40;;12550:59;:::i;:::-;12632:37;:22;12641:12;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;12632:22;12655:13;;;:::i;12632:37::-;3502:52503;-1:-1:-1;12528:242:62;;12788:47;12789:46;3502:52503;12811:19;;;;:::i;:::-;3502:52503;;;:::i;:::-;;;:::i;:::-;12789:46;;:::i;:::-;12788:47;;3502:52503;12788:47;3502:52503;;;;;12864:109;3502:52503;12936:19;12864:50;:31;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;12864:50;12936:19;;;:::i;:::-;11799;3502:52503;-1:-1:-1;;;12864:109:62;;3502:52503;;;;;;;;;;12864:109;;;:::i;:::-;;;;;;;;;;-1:-1:-1;12864:109:62;;;12784:410;12855:118;-1:-1:-1;;;;;12855:118:62;3502:52503;12995:20;12991:123;;12784:410;13340:14;12305:4;12784:410;;;13622:24;12784:410;;;13303:12;;;:::i;:::-;13325:13;;;;:::i;:::-;13340:14;;:::i;:::-;13374:23;;;:41;;;12784:410;13370:237;;12784:410;13622:24;;;;:::i;:::-;13660:25;;;;;;:::i;:::-;12305:4;3502:52503;;;13660:25;11490:11;;13370:237;13535:13;13469:12;13570:19;13469:12;;:::i;:::-;13535:13;;:::i;:::-;11294:10;;13570:19;;:::i;:::-;13370:237;;;;;13374:41;;;;;12991:123;13039:26;;;;;;;3502:52503;13039:26;12305:4;13039:26;;;:::i;:::-;3502:52503;13087:8;;12864:109;;;;3502:52503;12864:109;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;12784:410::-;13622:24;13161:18;;;;12305:4;13161:18;;;;13340:14;13161:18;;:::i;:::-;12784:410;;12528:242;12703:26;;;;;;;;3502:52503;12703:26;12305:4;12703:26;;;:::i;12551:40::-;12550:59;12551:40;-1:-1:-1;12550:59:62;:::i;12282:132::-;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;12360:26:62;;-1:-1:-1;12360:26:62;:53;;12282:132;;;;12360:53;12399:13;12390:23;;12399:13;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;12390:8;3502:52503;;;;;;;12390:23;12360:53;;12283:55;12324:13;;12313:25;12314:24;;12324:13;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;12314:9;3502:52503;;;;;;;12313:25;12283:55;;;11582:559;;;-1:-1:-1;11582:559:62;;;:::i;:::-;;;:::i;:::-;;;;11710:254;;;;;3502:52503;11710:254;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;8489:25;3502:52503;;;;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;:::i;:::-;;;-1:-1:-1;3502:52503:62;8489:10;3502:52503;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;48430:10;3502:52503;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;;;;23465:10;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;23450:71;;23465:10;-1:-1:-1;3502:52503:62;23536:26;3502:52503;;-1:-1:-1;;;;;23536:45:62;;3502:52503;;-1:-1:-1;3502:52503:62;;;;;;;;;;;23536:45;3502:52503;23536:59;23532:113;;23656:45;:58;23465:10;23656:38;23465:10;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;23656:45;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;;;;23532:113;23616:29;;;-1:-1:-1;23616:29:62;3502:52503;-1:-1:-1;23616:29:62;3502:52503;;;;;;-1:-1:-1;;3502:52503:62;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;52553:1;3502:52503;;;;;;;:::o;:::-;3815:1:93;3502:52503:62;;;3815:1:93;3502:52503:62;;;:::o;:::-;3880:1:93;3502:52503:62;;;3880:1:93;3502:52503:62;;;:::o;:::-;;2114:2:93;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;3502:52503:62;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;-1:-1:-1;;;;;3502:52503:62;;35104:5;3502:52503;;;35104:5;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;51507:243;-1:-1:-1;;;;;51611:20:62;3502:52503;;51611:42;;51607:59;;3502:52503;;-1:-1:-1;;;51683:60:62;;-1:-1:-1;;;;;3502:52503:62;;;51683:60;;;3502:52503;;51683:60;;3502:52503;;;;;;;51683:60;;;;;;;3502:52503;51683:60;;;51676:67;51507:243;:::o;51683:60::-;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;51607:59;51655:11;;51662:4;51655:11;:::o;3502:52503::-;;;;-1:-1:-1;39095:12:62;3502:52503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39095:12;3502:52503;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;-1:-1:-1;;3502:52503:62;;;-1:-1:-1;3502:52503:62;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;3502:52503:62;;;;;;-1:-1:-1;;3502:52503:62;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;;-1:-1:-1;;3502:52503:62;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;14393:1966::-;;;;;;14822:63;14393:1966;;14971:9;14393:1966;;;;;;;;;;3502:52503;14393:1966;3502:52503;;;;:::i;:::-;14822:63;:::i;:::-;14971:9;;;:::i;:::-;15039:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;15065:14;:21;:14;;;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;15065:14;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;15065:21;3502:52503;15099:32;;;;15089:43;15099:32;;15089:43;;:::i;:::-;-1:-1:-1;15061:119:62;;15195:10;3502:52503;;;-1:-1:-1;;;;;;3502:52503:62;15191:71;;15099:32;-1:-1:-1;;15347:32:62;;;;15311:70;:21;15347:32;15311:14;15337:43;15347:32;;;;;15337:43;;:::i;:::-;15311:14;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;15311:21;3502:52503;;;15311:70;:::i;:::-;3502:52503;;-1:-1:-1;;;15435:17:62;;;;;;16159:26;;;;;16155:60;;16226:127;;14393:1966;;:::o;16226:127::-;16300:27;:42;15039:10;16260:26;15039:10;16260:26;:::i;:::-;15039:10;3502:52503;;;;36929:8;3502:52503;;;;;16300:20;3502:52503;16300:42;3502:52503;;14393:1966::o;16155:60::-;16194:21;;;-1:-1:-1;16194:21:62;;-1:-1:-1;16194:21:62;15420:13;15490:9;;;;15470:36;15490:9;;;;;;:::i;:::-;3502:52503;15470:36;;:::i;:::-;15548:9;15525:49;15526:48;3502:52503;15548:21;:9;;;;;:::i;:::-;:21;;;;;:::i;15525:49::-;3502:52503;;;15619:59;:31;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;15619:59;:128;;15704:21;:9;;;;;:::i;:21::-;15548;3502:52503;-1:-1:-1;;;15619:128:62;;3502:52503;;;;;;15619:128;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;15619:128:62;;;15521:496;15594:341;;;15521:496;;3502:52503;15521:496;;16058:9;;;;;:::i;:::-;3502:52503;16031:43;:23;:16;;;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;16031:43;3502:52503;;;;15420:13;;;;15594:341;15873:9;;;15619:128;15873:9;:21;:9;15797:119;15873:9;;;;:::i;15797:119::-;;;;;;;;;3502:52503;15797:119;-1:-1:-1;15797:119:62;;;15594:341;15788:128;15594:341;;;;15797:119;;;;15619:128;15797:119;;;;;;;;;:::i;:::-;;;;15619:128;;;;;;;;;;;;;;:::i;:::-;;;;15521:496;15982:9;;3502:52503;15982:20;;:9;;;;;:::i;:::-;:20;;:::i;:::-;15521:496;;;15347:32;15311:70;:21;15347:32;15311:14;15337:43;-1:-1:-1;15347:32:62;;;;;15191:71;15256:5;;;:::i;:::-;15191:71;;15061:119;15153:27;;;-1:-1:-1;15153:27:62;;-1:-1:-1;15153:27:62;15099:32;15089:43;-1:-1:-1;15099:32:62;;46071:330;-1:-1:-1;;;;;3502:52503:62;;;;46191:10;3502:52503;;;;;;-1:-1:-1;3502:52503:62;;;;;-1:-1:-1;3502:52503:62;;;46187:208;46191:23;;;-1:-1:-1;;;;3502:52503:62;46230:11;-1:-1:-1;46230:11:62:o;46187:208::-;46262:32;;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;46262:32;:39;-1:-1:-1;3502:52503:62;;;-1:-1:-1;;;;;46262:39:62;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;;;46262:39;3502:52503;46262:53;3502:52503;;-1:-1:-1;;;3502:52503:62;46331:11::o;46258:137::-;3502:52503;46373:11;:::o;3502:52503::-;;;;;;;;;3815:1:93;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;9575:1168::-;;;;;;10006:166;9575:1168;;;;;;;;;;;;;;;10006:166;9575:1168;3502:52503;;;;;;;;;;10006:166;;;;;;:::i;:::-;;:4;;:166;;;;;;;;;10258:9;10006:166;-1:-1:-1;10006:166:62;;;9575:1168;10258:9;;:::i;:::-;10301:39;10302:38;3502:52503;;;;;:::i;10301:39::-;:187;;;3502:52503;;10355:108;3502:52503;10006:166;3502:52503;10355:65;:31;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;3502:52503:62;;;10355:65;3502:52503;;;;;;;;;;;;10355:108;;10006:166;10355:108;;;:::i;:::-;;;;;;;;;;10531:6;10355:108;;;-1:-1:-1;10355:108:62;;;10301:187;;;10531:6;;:::i;:::-;10569:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;10549:188;;9575:1168;;;:::o;10549:188::-;10600:15;10596:89;;10549:188;10569:10;;;10700:26;10569:10;10700:26;:::i;10596:89::-;10673:11;10569:10;;10673:11;;:::i;:::-;10596:89;;;;;10355:108;;;;10006:166;10355:108;10006:166;10355:108;;;;;;;:::i;:::-;;;;10301:187;;;;10531:6;10301:187;;;;10006:166;;;;;;;;;;;;;;;:::i;:::-;;;;;3502:52503;;;;;;;;;;;;:::o;17491:863::-;17647:10;3502:52503;;;-1:-1:-1;;;;;;3502:52503:62;17643:71;;17491:863;17740:10;811:123:94;952:9;17761:53:62;;17740:10;17829:21;17740:10;17829:14;17740:10;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;17829:21;3502:52503;17829:30;17825:70;;17906:28;;17647:18;17740:10;17945:21;17740:10;17945:14;17740:10;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;17945:21;:31;3502:52503;;;17945:31;:::i;:::-;3502:52503;;17647:18;17987:232;18007:17;;;;;;18233:26;;;;;18229:60;;17740:10;-1:-1:-1;3502:52503:62;;;41870:10;3502:52503;;;;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;41870:34:62;18300:47;;17491:863::o;18300:47::-;18327:20;17740:10;18327:20;:::i;17992:13::-;18062:9;;;;18042:36;3502:52503;18062:9;;;;;;:::i;18042:36::-;18132:9;;;;;;:::i;:::-;3502:52503;18092:56;:36;18101:9;18092:29;18101:19;;:9;;;;;:::i;18092:56::-;3502:52503;;;17992:13;;;;;17761:53;17799:15;;;17647:18;17799:15;;17647:18;17799:15;17643:71;17708:5;;;:::i;:::-;17643:71;;3502:52503;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;3502:52503:62;;;;;;;:::o;19105:1843::-;;;;;;;-1:-1:-1;;;;;3502:52503:62;;19451:28;;;:63;;;;19105:1843;19447:124;;;-1:-1:-1;;;;;3502:52503:62;;19586:28;;;:63;;;;19105:1843;19582:117;;;3502:52503;;19775:261;3502:52503;19727:350;3502:52503;;;19834:19;3502:52503;19775:261;:::i;:::-;3502:52503;;;;:::i;:::-;19727:350;;:::i;:::-;-1:-1:-1;;;;;3502:52503:62;;;;;19727:358;19710:417;;20142:32;20143:31;;;:::i;20142:32::-;20138:93;;20242:700;;;20294:29;;;;:::i;:::-;-1:-1:-1;;;;;;;;;20341:29:62;;;;:::i;:::-;3502:52503;20341:37;20337:95;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;20468:19:62;;:177;;20242:700;20447:264;;20726:30;:16;;:23;:16;-1:-1:-1;;;;;3502:52503:62;;;20726:10;3502:52503;;;;;;;20447:264;20667:44;;;19477:1;20667:44;;19477:1;20667:44;20468:177;19383:10;;-1:-1:-1;;;;;20508:39:62;;:32;;;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;20508:39;3502:52503;20508:56;;;20468:177;20508:136;19427:9;;-1:-1:-1;;;;;20588:39:62;;:32;;;-1:-1:-1;;;;;3502:52503:62;;;22401:26;3502:52503;;;;;;;20588:39;3502:52503;20588:56;;20468:177;;20242:700;20800:19;;;-1:-1:-1;;;;;3502:52503:62;;;20800:13;3502:52503;;;;;;;20800:19;3502:52503;20791:28;20787:66;;20898:19;;-1:-1:-1;;;;;3502:52503:62;;;20800:13;3502:52503;;;;;;;20898:19;3502:52503;;;;;;14393:1966::o;20787:66::-;20828:25;;;19477:1;20828:25;;19477:1;20828:25;19710:417;20103:24;;;19477:1;20103:24;;19477:1;20103:24;19582:117;19670:29;;;19477:1;19670:29;;19477:1;19670:29;19586:63;19383:10;;;19618:31;;19586:63;;;19447:124;19535:36;;;19477:1;19535:36;;19477:1;19535:36;19451:63;19427:9;;;19483:31;;19451:63;;;6244:1312;6278:21;3502:52503;-1:-1:-1;;;;;3502:52503:62;;6278:35;6274:93;;-1:-1:-1;6378:1172:62;;;;;;;;;;;;-1:-1:-1;6378:1172:62;;;;;;-1:-1:-1;6378:1172:62;;;-1:-1:-1;6378:1172:62;6274:93;6334:33;;;-1:-1:-1;6334:33:62;;-1:-1:-1;6334:33:62;1876:459:100;;;;3502:52503:62;;2135:179:100;;;;;;3502:52503:62;;;;;;;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;2135:179:100;3502:52503:62;;;;;;;;;;-1:-1:-1;3502:52503:62;;;;;;;-1:-1:-1;;;;;;;;;3502:52503:62;;;;;2135:179:100;;3502:52503:62;;;;;;;;2135:179:100;-1:-1:-1;;2135:179:100;;;;;;:::i;:::-;3502:52503:62;2108:220:100;;1876:459;:::o;3502:52503:62:-;;;;;;;;;2135:179:100;3502:52503:62;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;55735:268;55834:10;3502:52503;;;;;-1:-1:-1;;;;;;3502:52503:62;-1:-1:-1;;;55834:26:62;;3502:52503;55834:26;:47;;55735:268;55833:112;;;;55735:268;55816:180;;;;55735:268::o;55816:180::-;55963:33;;;-1:-1:-1;55963:33:62;;-1:-1:-1;55963:33:62;55833:112;-1:-1:-1;;;;;;3502:52503:62;;;;;;-1:-1:-1;;;55899:26:62;;-1:-1:-1;55899:26:62;:45;;55833:112;;;;;;55899:45;55929:15;;;;;-1:-1:-1;;;;;3502:52503:62;;;12390:8;3502:52503;;;;;;;55929:15;55899:45;;;55834:47;-1:-1:-1;;;;;3502:52503:62;;-1:-1:-1;3502:52503:62;;;55865:9;3502:52503;;;;;;;;55864:17;;-1:-1:-1;55834:47:62;;2462:228:93;;3502:52503:62;;;;2591:34:93;;;;:92;;;;2462:228;2572:111;;;;2462:228;:::o;2591:92::-;3502:52503:62;;;;;;;2641:19:93;3502:52503:62;;2664:19:93;2641:42;2591:92;;;;;;55070:382:62;3502:52503;5380:2;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:19;3502:52503;55296:28;5380:2;3502:52503;;;;;;5380:2;3502:52503;;;;;;;55413:32;3502:52503;-1:-1:-1;;;;;55413:32:62;3502:52503;;-1:-1:-1;3502:52503:62;55334:8;3502:52503;;55334:50;3502:52503;-1:-1:-1;3502:52503:62;;55349:34;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;55334:50;:69;3502:52503;;;55334:69;:::i;:::-;3502:52503;;55413:32;3502:52503;55413:32;:::i;:::-;;3502:52503;;55140:120;55253:7;:::o;55157:85::-;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;;55070:382;3502:52503;55158:22;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:19;3502:52503;;;;;;;17213:1;3502:52503;;;;;55413:32;3502:52503;-1:-1:-1;;;;;55413:32:62;3502:52503;;-1:-1:-1;3502:52503:62;55334:8;3502:52503;;55334:50;3502:52503;-1:-1:-1;3502:52503:62;;55349:34;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;55157:85;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;;55070:382;;3502:52503;55158:22;3502:52503;;55157:28;3502:52503;;55157:85;;55070:382;55140:120;;55296:28;-1:-1:-1;;;;;3502:52503:62;55296:19;3502:52503;55296:28;:::i;:::-;3502:52503;;-1:-1:-1;3502:52503:62;55334:8;3502:52503;;55334:50;3502:52503;-1:-1:-1;3502:52503:62;-1:-1:-1;;;;;55349:34:62;3502:52503;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;55334:50;3502:52503;;55334:69;3502:52503;;;;;;;;55413:32;3502:52503;55413:32;3502:52503;;55413:32;3502:52503;55413:32;:::i;55140:120::-;55253:7;;:::o;55157:85::-;3502:52503;55201:13;3502:52503;55218:24;3502:52503;-1:-1:-1;55201:41:62;55157:85;;3502:52503;;;;;;;:::o;:::-;;;;;;;;;;;;52311:516;36774:17;;52538:12;3502:52503;52538:12;3502:52503;;;;52791:28;52784:36;52715:9;;3502:52503;;52490:252;;;;52528:27;;3502:52503;;52577:15;3502:52503;;;;52614:16;3502:52503;;;;52652:10;3502:52503;;;;;;52684:9;3502:52503;;;;;;;;;;;52490:252;;;;;;:::i;:::-;3502:52503;52463:293;;52805:13;:9;37054:1;37057:4;52805:9;:::i;:::-;:13;:::i;:::-;52791:28;;:::i;:::-;37054:1;52784:36;:::i;53797:468::-;53938:10;3502:52503;53797:468;;;-1:-1:-1;;;;;3502:52503:62;53797:468;3502:52503;;-1:-1:-1;;;;;;3502:52503:62;53934:71;;53797:468;3502:52503;;;-1:-1:-1;3502:52503:62;54038:8;3502:52503;;54038:21;3502:52503;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;54038:21;3502:52503;54073:19;;;;54069:59;;3502:52503;54220:12;3502:52503;54220:19;3502:52503;-1:-1:-1;3502:52503:62;54038:8;3502:52503;;;54163:21;3502:52503;;-1:-1:-1;3502:52503:62;;-1:-1:-1;;;;;3502:52503:62;;;;;;;;;;54163:21;3502:52503;-1:-1:-1;;;;;3502:52503:62;;;36929:8;3502:52503;;;;;;;54220:19;3502:52503;;;;;;53797:468::o;53934:71::-;53999:5;;;:::i;:::-;53934:71;;3502:52503;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;-1:-1:-1;;;3502:52503:62;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;4851:673:93:-;5154:20;5213:31;4851:673;;;;;;;;;5154:20;:::i;:::-;5213:31;;:::i;:::-;3687:13;;:::i;:::-;3710:15;;;;;:::i;:::-;;3735;;;;:::i;:::-;;-1:-1:-1;3781:6:93;3785:2;3781:6;;;;5350:31;;5478:25;5420:19;5350:31;5123:394;5350:31;;;:::i;:::-;5420:19;;:::i;:::-;5478:25;;:::i;:::-;5123:394;;:::i;3789:3::-;3845:7;;;3828:31;3839:19;634:18;;;;-1:-1:-1;;;3502:52503:62;3845:12:93;3502:52503:62;;;;3839:19:93;3502:52503:62;;;;3828:31:93;;;;;;;;3920:4;;-1:-1:-1;;;3828:31:93;;3808:51;3815:9;3819:5;;;:::i;:::-;3815:9;:::i;:::-;3808:51;;:::i;:::-;;3502:52503:62;3893:33:93;3828:31;3893:33;;;;;3742:1;;-1:-1:-1;;;3893:33:93;;3873:53;3880:9;3884:5;;;:::i;:::-;3880:9;:::i;:::-;3873:53;;:::i;:::-;;3502:52503:62;3766:13:93;;1338:487:86;3502:52503:62;1517:174:86;1601:51;3502:52503:62;;1601:51:86;:::i;:::-;3502:52503:62;;;1517:174:86;;;3502:52503:62;1517:174:86;;;3502:52503:62;;;;;;;;;:::i;:::-;;;:::i;:::-;1517:174:86;3502:52503:62;;1517:174:86;;;;;;:::i;:::-;3502:52503:62;1494:207:86;;2570:2;3502:52503:62;;2550:22:86;3502:52503:62;;2612:158:86;-1:-1:-1;2612:158:86;1517:174;2612:158;;;;;;3502:52503:62;2612:158:86;;;;;;;;2821:6;2825:2;2821:6;;2817:44;;1338:487;3502:52503:62;1787:31:86;3502:52503:62;2870:54:86;3502:52503:62;;;2825:2:86;2878:7;;:18;;;;;1338:487;2870:54;;:::i;:::-;3502:52503:62;;1787:31:86;;;;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;;;;1787:31:86;;;;;;;;;;;;-1:-1:-1;1787:31:86;1338:487;:::o;2878:18::-;2894:2;2889:7;;;2878:18;;;2817:44;2843:7;;;1787:31;2843:7;;:::i;:::-;2817:44;;;;;;3502:52503:62;;;-1:-1:-1;;;3502:52503:62;;1517:174:86;3502:52503:62;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;875:702:93:-;1001:17;-1:-1:-1;12342:17:85;-1:-1:-1;;;12342:17:85;;;12338:103;;875:702:93;12458:17:85;12467:8;13038:7;12458:17;;;12454:103;;875:702:93;12583:8:85;12574:17;;;12570:103;;875:702:93;12699:7:85;12690:16;;;12686:100;;875:702:93;12812:7:85;12803:16;;;12799:100;;875:702:93;12925:7:85;12916:16;;;12912:100;;875:702:93;13029:16:85;;13025:66;;875:702:93;1469:11;1163:76;1059:18;1021:1;3502:52503:62;;1059:18:93;:::i;:::-;1091:11;1163:76;;;1252:282;-1:-1:-1;;3502:52503:62;;-1:-1:-1;;;13038:7:85;1357:95:93;;;3502:52503:62;1357:95:93;13038:7:85;3502:52503:62;;;;1469:11:93;1502:10;;1498:21;;1469:11;1252:282;;;;1498:21;1514:5;;875:702;:::o;13025:66:85:-;13075:1;3502:52503:62;;;;13025:66:85;;12912:100;12996:1;;12925:7;3502:52503:62;;;;12912:100:85;;;12799;12883:1;;12812:7;3502:52503:62;;;;12799:100:85;;;12686;12770:1;;12699:7;3502:52503:62;;;;12686:100:85;;;12570:103;12656:2;;12583:8;3502:52503:62;;;;12570:103:85;;;12454;12540:2;;12467:8;3502:52503:62;;;;12454:103:85;;;12338;-1:-1:-1;12424:2:85;;-1:-1:-1;;;;3502:52503:62;;12338:103:85;;3502:52503:62;;;;;;;;;;:::i;:::-;3697:2:93;3502:52503:62;;;-1:-1:-1;;3502:52503:62;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;1953:2:93;3502:52503:62;;;-1:-1:-1;;3502:52503:62;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;3742:1:93;3502:52503:62;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;1753:495:93:-;-1:-1:-1;;;;;3502:52503:62;1943:13:93;;:::i;:::-;1966:16;;;;;:::i;:::-;;1992;;;;:::i;:::-;;1974:1;2038:6;2042:2;2038:6;;;;2219:22;;1753:495;:::o;2046:3::-;2110:6;;;:::i;:::-;2103:14;;;;;;2086:38;;2097:26;;2103:14;;;634:18;;-1:-1:-1;;;3502:52503:62;2103:19:93;634:18;2086:38;;;;;;;-1:-1:-1;;;2086:38:93;;2065:59;2073:9;2077:5;;;:::i;2073:9::-;2065:59;;:::i;:::-;;2183:6;;;:::i;:::-;2103:14;2176;;;;;;2193:4;2176:14;;3502:52503:62;2159:40:93;2086:38;2159:40;;;;;2000:1;;-1:-1:-1;;;2159:40:93;;2138:61;2146:9;2150:5;;;:::i;2146:9::-;2138:61;;:::i;:::-;;3502:52503:62;2023:13:93;;4142:120;4231:24;;;3502:52503:62;;;;;;:::i;:::-;;;;-1:-1:-1;;;3502:52503:62;;;;4142:120:93;:::o;4231:24::-;3502:52503:62;;;;;;:::i;:::-;;;;-1:-1:-1;;;3502:52503:62;;;;4142:120:93;:::o;3502:52503:62:-;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;3502:52503:62;;;;;;;;;;;;;;;;;;;",linkReferences:{"src/library/utils/signature/CoreHashUtils.sol":{CoreHashUtils:[{start:7429,length:20},{start:11547,length:20}]}}},methodIdentifiers:{"acceptAdmin()":"0e18b681","acceptChangeBaseRewardAmount()":"6a230fb4","acceptChangeRewardFlowDistribution()":"a574aac4","acceptDeleteTotalSupply()":"54a12357","acceptImplementation()":"15ba56e5","acceptListStatusProposal()":"7797e97d","acceptUserValidatorProposal()":"b517ac7d","addAmountToUser(address,address,uint256)":"6c9fa638","addBalance(address,address,uint256)":"d3bca884","asyncNonceStatus(address,uint256)":"4b366ccc","batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":"e7816eb8","caPay(address,address,uint256)":"c898a6e9","canExecuteUserTransaction(address)":"0f1f38b2","cancelUserValidatorProposal()":"401dffee","disperseCaPay((uint256,address)[],address,uint256)":"a7a096f6","dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":"32e26fdc","getAllowListStatus(address)":"5a2cba27","getAsyncNonceReservation(address,uint256)":"862b3737","getBalance(address,address)":"d4fac45d","getChainHostCoinAddress()":"8e0c71ad","getCurrentAdmin()":"643d430c","getCurrentImplementation()":"29cca569","getCurrentListStatus()":"ef003529","getCurrentSupply()":"4f3e1efc","getDenyListStatus(address)":"08351bdd","getEvvmID()":"17c85152","getEvvmMetadata()":"0faff8e8","getFullDetailAdmin()":"ab82aa0a","getFullDetailImplementation()":"e08290ee","getFullDetailListStatus()":"25e3243b","getFullDetailReward()":"0761a3ad","getFullDetailRewardFlowDistribution()":"563b6170","getFullDetailUserValidator()":"cd654e3e","getIfUsedAsyncNonce(address,uint256)":"d0e3692d","getNameServiceAddress()":"3a8cd872","getNextCurrentSyncNonce(address)":"6cd30148","getPrincipalTokenAddress()":"280e32fb","getPrincipalTokenTotalSupply()":"47ecd0f6","getRewardAmount()":"09a69f57","getRewardFlowDistributionFlag()":"1d3a4e2d","getStakingContractAddress()":"6afe5795","getTimeToDeleteMaxSupply()":"be726ffd","getUserValidatorAddress()":"b139c797","initializeSystemContracts(address,address)":"55160ea6","isAddressStaker(address)":"286b4b44","pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":"90fcb4ee","pointStaker(address,bytes1)":"adb6233f","proposeAdmin(address)":"147bf6c4","proposeChangeBaseRewardAmount(uint256)":"804ef86f","proposeChangeRewardFlowDistribution()":"92ab1f24","proposeDeleteTotalSupply()":"7a975c80","proposeImplementation(address)":"9dd18c15","proposeListStatus(bytes1)":"ae63d1a7","proposeUserValidator(address)":"e4e3cfee","recalculateReward()":"5300e162","rejectChangeBaseRewardAmount()":"bd26035e","rejectChangeRewardFlowDistribution()":"09fc6971","rejectDeleteTotalSupply()":"3625c901","rejectListStatusProposal()":"0211de41","rejectProposalAdmin()":"b38c950a","rejectUpgrade()":"3f54542a","removeAmountFromUser(address,address,uint256)":"76e6eb7e","reserveAsyncNonce(uint256,address)":"8b62e507","revokeAsyncNonce(uint256)":"ef802613","setEvvmID(uint256)":"01ed3f51","setPointStaker(address,bytes1)":"e8163dda","setTokenStatusOnAllowList(address,bool)":"4c3b7bdb","setTokenStatusOnDenyList(address,bool)":"766dd07b","validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":"fa7a2e2a"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_initialOwner","type":"address"},{"internalType":"address","name":"_stakingContractAddress","type":"address"},{"components":[{"internalType":"string","name":"EvvmName","type":"string"},{"internalType":"uint256","name":"EvvmID","type":"uint256"},{"internalType":"string","name":"principalTokenName","type":"string"},{"internalType":"string","name":"principalTokenSymbol","type":"string"},{"internalType":"address","name":"principalTokenAddress","type":"address"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"eraTokens","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"}],"internalType":"struct CoreStructs.EvvmMetadata","name":"_evvmMetadata","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressCantBeZero","type":"error"},{"inputs":[],"name":"AsyncNonceAlreadyReserved","type":"error"},{"inputs":[],"name":"AsyncNonceAlreadyUsed","type":"error"},{"inputs":[],"name":"AsyncNonceIsReservedByAnotherService","type":"error"},{"inputs":[],"name":"AsyncNonceNotReserved","type":"error"},{"inputs":[],"name":"BaseRewardIncreaseNotAllowed","type":"error"},{"inputs":[],"name":"BreakerExploded","type":"error"},{"inputs":[],"name":"ImplementationIsNotActive","type":"error"},{"inputs":[],"name":"IncorrectAddressInput","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidListStatus","type":"error"},{"inputs":[],"name":"InvalidServiceAddress","type":"error"},{"inputs":[],"name":"InvalidSignature","type":"error"},{"inputs":[],"name":"MaxSupplyDeletionNotAllowed","type":"error"},{"inputs":[],"name":"NotAnCA","type":"error"},{"inputs":[],"name":"OriginIsNotTheOriginExecutor","type":"error"},{"inputs":[],"name":"ProposalNotReadyToAccept","type":"error"},{"inputs":[],"name":"RewardFlowDistributionChangeNotAllowed","type":"error"},{"inputs":[],"name":"SenderIsNotAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotTheProposedAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotTreasury","type":"error"},{"inputs":[],"name":"ServiceSenderMismatch","type":"error"},{"inputs":[],"name":"SyncNonceMismatch","type":"error"},{"inputs":[],"name":"TokenIsDeniedForExecution","type":"error"},{"inputs":[],"name":"UserCannotExecuteTransaction","type":"error"},{"inputs":[],"name":"WindowExpired","type":"error"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptChangeBaseRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptChangeRewardFlowDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptDeleteTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptListStatusProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptUserValidatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"addAmountToUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"addBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"asyncNonceStatus","outputs":[{"internalType":"bytes1","name":"","type":"bytes1"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to_address","type":"address"},{"internalType":"string","name":"to_identity","type":"string"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priorityFee","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"internalType":"struct CoreStructs.BatchData[]","name":"batchData","type":"tuple[]"}],"name":"batchPay","outputs":[{"internalType":"uint256","name":"successfulTransactions","type":"uint256"},{"internalType":"bool[]","name":"results","type":"bool[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"caPay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"canExecuteUserTransaction","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelUserValidatorProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"toAddress","type":"address"}],"internalType":"struct CoreStructs.DisperseCaPayMetadata[]","name":"toData","type":"tuple[]"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"disperseCaPay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to_address","type":"address"},{"internalType":"string","name":"to_identity","type":"string"}],"internalType":"struct CoreStructs.DispersePayMetadata[]","name":"toData","type":"tuple[]"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priorityFee","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"dispersePay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getAllowListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getAsyncNonceReservation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainHostCoinAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getCurrentAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentListStatus","outputs":[{"internalType":"bytes1","name":"","type":"bytes1"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getDenyListStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmMetadata","outputs":[{"components":[{"internalType":"string","name":"EvvmName","type":"string"},{"internalType":"uint256","name":"EvvmID","type":"uint256"},{"internalType":"string","name":"principalTokenName","type":"string"},{"internalType":"string","name":"principalTokenSymbol","type":"string"},{"internalType":"address","name":"principalTokenAddress","type":"address"},{"internalType":"uint256","name":"totalSupply","type":"uint256"},{"internalType":"uint256","name":"eraTokens","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"}],"internalType":"struct CoreStructs.EvvmMetadata","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailAdmin","outputs":[{"components":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailImplementation","outputs":[{"components":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailListStatus","outputs":[{"components":[{"internalType":"bytes1","name":"current","type":"bytes1"},{"internalType":"bytes1","name":"proposal","type":"bytes1"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.Bytes1TypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailReward","outputs":[{"components":[{"internalType":"uint256","name":"current","type":"uint256"},{"internalType":"uint256","name":"proposal","type":"uint256"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.UintTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailRewardFlowDistribution","outputs":[{"components":[{"internalType":"bool","name":"flag","type":"bool"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.BoolTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFullDetailUserValidator","outputs":[{"components":[{"internalType":"address","name":"current","type":"address"},{"internalType":"address","name":"proposal","type":"address"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.AddressTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getIfUsedAsyncNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNameServiceAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNextCurrentSyncNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrincipalTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrincipalTokenTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardFlowDistributionFlag","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTimeToDeleteMaxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUserValidatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_nameServiceAddress","type":"address"},{"internalType":"address","name":"_treasuryAddress","type":"address"}],"name":"initializeSystemContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isAddressStaker","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to_address","type":"address"},{"internalType":"string","name":"to_identity","type":"string"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"priorityFee","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"pay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes1","name":"answer","type":"bytes1"}],"name":"pointStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"proposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBaseReward","type":"uint256"}],"name":"proposeChangeBaseRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposeChangeRewardFlowDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"proposeDeleteTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newImpl","type":"address"}],"name":"proposeImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes1","name":"newStatus","type":"bytes1"}],"name":"proposeListStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newValidator","type":"address"}],"name":"proposeUserValidator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recalculateReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectChangeBaseRewardAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectChangeRewardFlowDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectDeleteTotalSupply","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectListStatusProposal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"removeAmountFromUser","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"}],"name":"reserveAsyncNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"revokeAsyncNonce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newEvvmID","type":"uint256"}],"name":"setEvvmID","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes1","name":"answer","type":"bytes1"}],"name":"setPointStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setTokenStatusOnAllowList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setTokenStatusOnDenyList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"bytes32","name":"hashPayload","type":"bytes32"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bool","name":"isAsyncExec","type":"bool"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"validateAndConsumeNonce","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs","details":"Combines payment operations and nonce management. Features multi-token payments with EIP-191 signatures, dual nonce system (sync/async), and staker rewards. Governed by a time-delayed admin and implementation upgrade system.","errors":{"AddressCantBeZero()":[{"details":"Thrown when address(0) provided (constructor, setup)"}],"AsyncNonceAlreadyReserved()":[{"details":"Thrown when reserving already-reserved async nonce"}],"AsyncNonceAlreadyUsed()":[{"details":"Thrown when async nonce already consumed"}],"AsyncNonceIsReservedByAnotherService()":[{"details":"Thrown when using async nonce reserved by different service"}],"AsyncNonceNotReserved()":[{"details":"Thrown when revoking non-reserved async nonce"}],"BreakerExploded()":[{"details":"Thrown when one-time setup function called after breaker flag set"}],"ImplementationIsNotActive()":[{"details":"Thrown when proxy implementation == address(0)"}],"IncorrectAddressInput()":[{"details":"Thrown when address validation fails in proposals"}],"InsufficientBalance()":[{"details":"Thrown when balance < transfer amount"}],"InvalidAmount()":[{"details":"Thrown when amount validation fails (e.g., dispersePay total != sum)"}],"InvalidListStatus()":[{"details":"Thrown when list status is invalid (not 0x00, 0x01, or 0x02)"}],"InvalidServiceAddress()":[{"details":"Thrown when reserving nonce with service == address(0)"}],"InvalidSignature()":[{"details":"Thrown when EIP-191 signature invalid or signer mismatch"}],"NotAnCA()":[{"details":"Thrown when EOA calls caPay/disperseCaPay (contract-only functions)"}],"ProposalNotReadyToAccept()":[{"details":"Thrown when accepting before timelock"}],"SenderIsNotAdmin()":[{"details":"Thrown when non-admin calls admin-only function (onlyAdmin modifier)"}],"SenderIsNotTheProposedAdmin()":[{"details":"Thrown when non-proposed admin attempts acceptAdmin before timelock"}],"SenderIsNotTreasury()":[{"details":"Thrown when non-treasury calls treasury-only function"}],"ServiceSenderMismatch()":[{"details":"Thrown when msg.sender != service address only if diferent to address(0)"}],"SyncNonceMismatch()":[{"details":"Thrown when sync nonce != expected sequential nonce"}],"TokenIsDeniedForExecution()":[{"details":"Thrown when a token is in - the denylist (if the denylist is active) - not in the allowlist (if the allowlist is active)"}],"UserCannotExecuteTransaction()":[{"details":"Thrown when UserValidator blocks user transaction"}],"WindowExpired()":[{"details":"Thrown when attempting EVVM ID change after 24h window"}]},"kind":"dev","methods":{"acceptAdmin()":{"details":"Must be called by the proposed admin."},"acceptUserValidatorProposal()":{"custom:access":"Admin only","custom:timelock":"Requires DELAY (1 day) to have passed","details":"Activates new validator after delay period expires Activation Process: - Validates time-lock period has passed - Sets new validator as current active validator - Clears proposal state - Validator becomes active immediately Impact: - All future transactions checked by new validator - Affects validateAndConsumeNonce behavior - Can block users from executing transactions"},"addAmountToUser(address,address,uint256)":{"custom:access-control":"Only treasury contract","custom:security":"No overflow protection needed due to controlled access","details":"Restricted function that can only be called by the authorized treasury contract Treasury Operations: - Allows treasury to mint or credit tokens to user accounts - Used for reward distributions, airdrops, or token bridging - Direct balance manipulation bypasses normal transfer restrictions - No signature verification required (treasury authorization) Access Control: - Only the registered treasury contract can call this function - Reverts with SenderIsNotTreasury error for unauthorized callers - Provides centralized token distribution mechanism Use Cases: - Cross-chain bridge token minting - Administrative reward distributions - System-level token allocations - Emergency balance corrections","params":{"amount":"Amount of tokens to add to the user\'s balance","token":"Address of the token contract to add balance for","user":"Address of the user to receive tokens"}},"addBalance(address,address,uint256)":{"params":{"quantity":"Amount to add.","token":"Token contract address.","user":"Recipient address."}},"asyncNonceStatus(address,uint256)":{"details":"Returns byte code indicating nonce state Status Codes: - 0x00: Available (can be used by any service) - 0x01: Used (already consumed, cannot be reused) - 0x02: Reserved (allocated to specific service)","params":{"nonce":"Async nonce to check status for","user":"Address of the user who owns the nonce"},"returns":{"_0":"Status code: 0x00 (available), 0x01 (used), or 0x02 (reserved)"}},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{"details":"Each payment is validated and executed independently.","params":{"batchData":"Array of payment details and signatures."},"returns":{"results":"Success status for each payment in the batch.","successfulTransactions":"Count of successful payments."}},"caPay(address,address,uint256)":{"details":"Allows registered contracts to distribute tokens without signature verification Authorization Model: /**No signature required as the contract itself is the caller.","params":{"amount":"Tokens to transfer.","to":"Recipient address.","token":"Token address."}},"canExecuteUserTransaction(address)":{"details":"Checks with UserValidator if configured, allows all if not Validation Logic: - If no validator configured: Returns true (all allowed) - If validator configured: Delegates to validator.canExecute - Used by validateAndConsumeNonce before nonce consumption Integration: - Called during every transaction validation - Allows external filtering of user transactions - Supports compliance and security requirements","params":{"user":"Address to check execution permission for"},"returns":{"_0":"True if user can execute, false if blocked"}},"cancelUserValidatorProposal()":{"custom:access":"Admin only","details":"Resets proposal state before time-lock expires"},"constructor":{"params":{"_evvmMetadata":"Initial configuration (token info, reward amounts, etc.).","_initialOwner":"Address granted administrative control.","_stakingContractAddress":"Address of the Staking contract."}},"disperseCaPay((uint256,address)[],address,uint256)":{"params":{"amount":"Total amount to distribute.","toData":"Array of recipient addresses/identities and amounts.","token":"Token address."}},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{"params":{"amount":"Total amount to distribute (sum of toData).","from":"Sender address.","isAsyncExec":"True for parallel nonces.","nonce":"Transaction nonce.","priorityFee":"Fee for the executor (if staker).","senderExecutor":"Optional authorized executor.","signature":"EIP-191 authorization signature.","toData":"Array of recipient addresses/identities and their respective amounts.","token":"Token address."}},"getAllowListStatus(address)":{"details":"Returns boolean indicating if token is allowed for execution - true if allowed - false if denied"},"getAsyncNonceReservation(address,uint256)":{"details":"Returns address(0) if nonce is not reserved","params":{"nonce":"Async nonce to check reservation for","user":"Address of the user who owns the nonce"},"returns":{"_0":"Service address that reserved the nonce, or address(0) if not reserved"}},"getBalance(address,address)":{"details":"Returns the current balance stored in the EVVM system","params":{"token":"Token contract address to check","user":"Address to check balance for"},"returns":{"_0":"Current token balance for the user"}},"getChainHostCoinAddress()":{"details":"Returns address(0) which is the standard sentinel for native blockchain tokens Use this address as the token parameter when dealing with ETH or chain-native assets","returns":{"_0":"address(0) representing the native chain currency"}},"getCurrentAdmin()":{"details":"Returns the address with administrative privileges over the contract","returns":{"_0":"Address of the current admin"}},"getCurrentImplementation()":{"details":"Returns the implementation used by the proxy for delegatecalls","returns":{"_0":"Address of the current implementation contract"}},"getCurrentListStatus()":{"details":"Returns byte code indicating current token restriction mode - 0x00: No restrictions - 0x01: Denylist active - 0x02: Allowlist active"},"getCurrentSupply()":{"details":"Returns the current circulating supply used for reward recalculations"},"getDenyListStatus(address)":{"details":"Returns boolean indicating if token is restricted for execution - true if denied - false if allowed"},"getEvvmID()":{"details":"Returns the EvvmID used for distinguishing different EVVM deployments","returns":{"_0":"Unique EvvmID string"}},"getEvvmMetadata()":{"details":"Provides access to system-wide configuration and economic parameters Metadata Contents: - Principal token address (Principal Token) - Current reward amount per transaction - Total supply tracking - Era tokens threshold for reward transitions - System configuration parameters","returns":{"_0":"Complete EvvmMetadata struct with all system parameters"}},"getFullDetailImplementation()":{"details":"Returns current, proposed implementation addresses and time-lock info","returns":{"_0":"Proposal struct with current implementation, proposed implementation, and time to accept the proposal"}},"getFullDetailListStatus()":{"details":"Returns current list status along with pending proposal info"},"getFullDetailReward()":{"details":"Returns current reward, proposed reward and time-lock info","returns":{"_0":"Proposal struct with current reward, proposed reward, and time to accept the proposal"}},"getFullDetailRewardFlowDistribution()":{"details":"Returns current flag, proposed flag, and time-lock info","returns":{"_0":"Proposal struct with current flag, proposed flag, and time to accept"}},"getFullDetailUserValidator()":{"details":"Returns current, proposed address and time-lock info","returns":{"_0":"Proposal struct with current validator address, proposed address, and time to accept"}},"getIfUsedAsyncNonce(address,uint256)":{"details":"Public view function for external queries and UI integration","params":{"nonce":"The nonce value to query","user":"Address of the user to check"},"returns":{"_0":"True if the nonce has been used, false if available"}},"getNameServiceAddress()":{"details":"Returns the address used for identity resolution in payments","returns":{"_0":"Address of the integrated NameService contract"}},"getNextCurrentSyncNonce(address)":{"details":"Public view function for external queries and transaction preparation","params":{"user":"Address of the user to query"},"returns":{"_0":"The next nonce value that must be used by the user"}},"getPrincipalTokenAddress()":{"details":"Returns the virtual address used to track Principal Token balances in the balances mapping This is not an ERC20 contract address but a sentinel value for the EVVM-native token","returns":{"_0":"Address used as the key for Principal Token balances"}},"getPrincipalTokenTotalSupply()":{"details":"Returns the current total supply used for era transition calculations","returns":{"_0":"Total supply of Principal Tokens"}},"getRewardAmount()":{"details":"Returns the base reward distributed to stakers for transaction processing","returns":{"_0":"Current reward amount in Principal Tokens"}},"getRewardFlowDistributionFlag()":{"details":"Returns boolean indicating if reward distribution is active - true if rewards are distributed to stakers - false if rewards are disabled"},"getStakingContractAddress()":{"details":"Returns the address that can modify staker status and receive rewards","returns":{"_0":"Address of the integrated staking contract"}},"getTimeToDeleteMaxSupply()":{"details":"Returns the timestamp when the max supply can be deleted","returns":{"_0":"Timestamp for max supply deletion"}},"getUserValidatorAddress()":{"details":"Returns address(0) if no validator is configured","returns":{"_0":"Address of active UserValidator contract"}},"initializeSystemContracts(address,address)":{"details":"Uses a breaker flag to prevent re-initialization.","params":{"_nameServiceAddress":"Address of the NameService contract.","_treasuryAddress":"Address of the Treasury contract."}},"isAddressStaker(address)":{"details":"Verifies staker status for transaction processing privileges and rewards","params":{"user":"Address to check staker status for"},"returns":{"_0":"True if the address is a registered staker"}},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{"details":"Validates nonce (sync/async), resolves identity (if provided), and updates balances. Rewarded if the executor is a staker.","params":{"amount":"Tokens to transfer.","from":"Sender address.","isAsyncExec":"True for parallel nonces, false for sequential.","nonce":"Transaction nonce.","priorityFee":"Fee paid to the executor (if staker).","senderExecutor":"Optional authorized executor (address(0) for any).","signature":"EIP-191 authorization signature.","to_address":"Recipient address (overridden if to_identity is set).","to_identity":"Recipient username (resolved via NameService).","token":"Token address (address(0) for ETH)."}},"pointStaker(address,bytes1)":{"details":"Can only be called by the authorized staking contract Staker Status Management: - Controls who can earn staking rewards and process transactions - Integrates with external staking contract for validation - Updates affect payment processing privileges and reward eligibility Access Control: - Only the registered staking contract can call this function - Ensures staker status changes are properly authorized","params":{"answer":"Bytes1 flag indicating staker status/type","user":"Address to update staker status for"}},"proposeAdmin(address)":{"params":{"_newOwner":"Address of the proposed admin."}},"proposeImplementation(address)":{"params":{"_newImpl":"Address of the new logic contract."}},"proposeUserValidator(address)":{"details":"Initiates time-delayed governance for validator changes Governance Process: - Admin proposes new validator contract address - 1-day delay enforced before acceptance - Allows community review of validator changes - Can be canceled before acceptance UserValidator Integration: - Optional contract for transaction filtering - Called during validateAndConsumeNonce execution - Can block specific users from executing transactions - Useful for compliance or security requirements Security Features: - Time-delayed governance (DELAY constant) - Admin-only proposal capability - Cancellation mechanism before activation","params":{"newValidator":"Address of proposed UserValidator"}},"recalculateReward()":{"details":"Implements deflationary tokenomics with halving mechanism and random rewards Era Transition Mechanism: - Activates when total supply exceeds current era token threshold - Moves half of remaining tokens to next era threshold - Halves the base reward amount for future transactions - Provides random Principal Token bonus to caller (1-5083x reward) Economic Impact: - Gradually reduces inflation through reward halving - Creates scarcity as era thresholds become harder to reach - Incentivizes early participation with higher rewards - Provides lottery-style bonus for triggering era transitions Requirements: - Total supply must exceed current era token threshold - Can be called by anyone when conditions are met"},"removeAmountFromUser(address,address,uint256)":{"details":"Restricted to the authorized Treasury contract.","params":{"amount":"Amount to remove.","token":"Token address.","user":"Account to debit."}},"reserveAsyncNonce(uint256,address)":{"details":"Allows users to pre-allocate nonces to specific services Reservation System: - Users reserve nonces for specific service addresses - Prevents other services from using reserved nonces - Useful for multi-step or delayed operations - Reservation persists until revoked or nonce is used Use Cases: - Cross-chain operations requiring coordination - Multi-signature workflows with specific executors - Service-specific transaction queues - Preventing front-running by other services Security Features: - User-controlled reservation (msg.sender) - Validates service address is not zero - Prevents double reservation of same nonce - Cannot reserve already-used nonces","params":{"nonce":"The async nonce value to reserve","senderExecutor":"Service contract that can use nonce"}},"revokeAsyncNonce(uint256)":{"details":"Allows clearing of nonce reservations for reuse Revocation Process: - Validates nonce has not been used yet - Checks that nonce is currently reserved - Clears the service address reservation - Nonce becomes available for any service Authorization: - Currently callable by anyone (potential security issue) - Should validate msg.sender is user or authorized - Allows cancellation of mistaken reservations Use Cases: - Canceling pending service operations - Correcting accidental reservations - Freeing nonces for different services","params":{"nonce":"The async nonce to revoke reservation for"}},"setEvvmID(uint256)":{"params":{"newEvvmID":"New unique identifier for EIP-191 signatures."}},"setPointStaker(address,bytes1)":{"params":{"answer":"Status flag (e.g., FLAG_IS_STAKER).","user":"User address."}},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{"details":"Only callable by smart contracts (EVVM services). Atomic verification/consumption.","params":{"hashPayload":"Hash of the transaction parameters.","isAsyncExec":"True for non-sequential nonces.","nonce":"Nonce to validate and consume.","originExecutor":"Optional tx.origin restriction (address(0) for none).","signature":"User\'s authorization signature.","user":"Address of the transaction signer."}}},"title":"EVVM Core","version":1},"userdoc":{"kind":"user","methods":{"acceptAdmin()":{"notice":"Finalizes the admin change after the time delay."},"acceptImplementation()":{"notice":"Finalizes the implementation upgrade after the time delay."},"acceptUserValidatorProposal()":{"notice":"Accepts UserValidator proposal after time-lock"},"addAmountToUser(address,address,uint256)":{"notice":"Adds tokens to a user\'s balance in the EVVM system"},"addBalance(address,address,uint256)":{"notice":"Faucet: Adds balance to a user for testing (Testnet only)."},"asyncNonceStatus(address,uint256)":{"notice":"Gets comprehensive status of an async nonce"},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{"notice":"Processes multiple payments in a single transaction."},"caPay(address,address,uint256)":{"notice":"Contract-to-address payment function for authorized smart contractsAllows a smart contract (CA) to pay a recipient directly."},"canExecuteUserTransaction(address)":{"notice":"Validates if user can execute transactions"},"cancelUserValidatorProposal()":{"notice":"Cancels pending UserValidator proposal"},"constructor":{"notice":"Initializes the EVVM Core with basic system parameters."},"disperseCaPay((uint256,address)[],address,uint256)":{"notice":"Allows a smart contract (CA) to distribute tokens to multiple recipients."},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{"notice":"Distributes tokens from one sender to multiple recipients with a single signature."},"getAllowListStatus(address)":{"notice":"Checks if a token is on the allowList or denyList based on current list status"},"getAsyncNonceReservation(address,uint256)":{"notice":"Gets service address that reserved an async nonce"},"getBalance(address,address)":{"notice":"Gets the balance of a specific token for a user"},"getChainHostCoinAddress()":{"notice":"Gets the address representing native chain currency (ETH/MATIC) in balance mappings"},"getCurrentAdmin()":{"notice":"Gets the current admin address"},"getCurrentImplementation()":{"notice":"Gets the current active implementation contract address"},"getCurrentListStatus()":{"notice":"Gets the current token list status (none, denylist, allowlist)"},"getCurrentSupply()":{"notice":"Gets the current supply of the Principal Token in circulation"},"getDenyListStatus(address)":{"notice":"Checks if a token is on the denylist or allowlist based on current list status"},"getEvvmID()":{"notice":"Gets the unique identifier string for this EVVM instance"},"getEvvmMetadata()":{"notice":"Returns the complete EVVM metadata configuration"},"getFullDetailImplementation()":{"notice":"Gets comprehensive details of the implementation upgrade proposal"},"getFullDetailListStatus()":{"notice":"Gets comprehensive token list status details"},"getFullDetailReward()":{"notice":"Gets comprehensive details of the reward change proposal"},"getFullDetailRewardFlowDistribution()":{"notice":"Gets full details of the reward flow distribution proposal"},"getFullDetailUserValidator()":{"notice":"Gets full UserValidator proposal details"},"getIfUsedAsyncNonce(address,uint256)":{"notice":"Checks if a specific nonce has been used by a user"},"getNameServiceAddress()":{"notice":"Gets the current NameService contract address"},"getNextCurrentSyncNonce(address)":{"notice":"Gets the current (next expected) nonce for a user"},"getPrincipalTokenAddress()":{"notice":"Gets the address representing the Principal Token in balance mappings"},"getPrincipalTokenTotalSupply()":{"notice":"Gets the total supply of the Principal Token"},"getRewardAmount()":{"notice":"Gets the current Principal Token reward amount per transaction"},"getRewardFlowDistributionFlag()":{"notice":"Gets the current status of the reward flow distribution flag"},"getStakingContractAddress()":{"notice":"Gets the authorized staking contract address"},"getTimeToDeleteMaxSupply()":{"notice":"Gets the time remaining to delete the maximum supply"},"getUserValidatorAddress()":{"notice":"Gets current UserValidator contract address"},"initializeSystemContracts(address,address)":{"notice":"Configures NameService and Treasury addresses once."},"isAddressStaker(address)":{"notice":"Checks if an address is registered as a staker"},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{"notice":"Processes a single token payment with signature verification."},"pointStaker(address,bytes1)":{"notice":"Updates staker status for a user address"},"proposeAdmin(address)":{"notice":"Proposes a new administrator (1-day delay)."},"proposeImplementation(address)":{"notice":"Proposes a new implementation contract for the proxy (30-day delay)."},"proposeUserValidator(address)":{"notice":"Proposes new UserValidator contract address"},"recalculateReward()":{"notice":"Triggers a reward recalculation and era transition in the token economy"},"rejectProposalAdmin()":{"notice":"Cancels a pending admin change proposal."},"rejectUpgrade()":{"notice":"Cancels a pending implementation upgrade proposal."},"removeAmountFromUser(address,address,uint256)":{"notice":"Deducts tokens from a user\'s system balance."},"reserveAsyncNonce(uint256,address)":{"notice":"Reserves an async nonce for exclusive service use"},"revokeAsyncNonce(uint256)":{"notice":"Revokes a previously reserved async nonce"},"setEvvmID(uint256)":{"notice":"Updates the EVVM ID within a 24-hour window after deployment or change."},"setPointStaker(address,bytes1)":{"notice":"Faucet: Sets staker status for testing (Testnet only)."},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{"notice":"Validates a user signature and consumes a nonce for an EVVM service."}},"notice":"\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2591\\u2592\\u2593\\u2588\\u2593\\u2592\\u2591\\u2592\\u2593\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2593\\u2592\\u2591 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d Central logic for EVVM payments, token management, and nonce tracking.","version":1}},"settings":{"compilationTarget":{"src/contracts/core/Core.sol":"Core"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_initialOwner",type:"address"},{internalType:"address",name:"_stakingContractAddress",type:"address"},{internalType:"struct CoreStructs.EvvmMetadata",name:"_evvmMetadata",type:"tuple",components:[{internalType:"string",name:"EvvmName",type:"string"},{internalType:"uint256",name:"EvvmID",type:"uint256"},{internalType:"string",name:"principalTokenName",type:"string"},{internalType:"string",name:"principalTokenSymbol",type:"string"},{internalType:"address",name:"principalTokenAddress",type:"address"},{internalType:"uint256",name:"totalSupply",type:"uint256"},{internalType:"uint256",name:"eraTokens",type:"uint256"},{internalType:"uint256",name:"reward",type:"uint256"}]}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"AddressCantBeZero"},{inputs:[],type:"error",name:"AsyncNonceAlreadyReserved"},{inputs:[],type:"error",name:"AsyncNonceAlreadyUsed"},{inputs:[],type:"error",name:"AsyncNonceIsReservedByAnotherService"},{inputs:[],type:"error",name:"AsyncNonceNotReserved"},{inputs:[],type:"error",name:"BaseRewardIncreaseNotAllowed"},{inputs:[],type:"error",name:"BreakerExploded"},{inputs:[],type:"error",name:"ImplementationIsNotActive"},{inputs:[],type:"error",name:"IncorrectAddressInput"},{inputs:[],type:"error",name:"InsufficientBalance"},{inputs:[],type:"error",name:"InvalidAmount"},{inputs:[],type:"error",name:"InvalidListStatus"},{inputs:[],type:"error",name:"InvalidServiceAddress"},{inputs:[],type:"error",name:"InvalidSignature"},{inputs:[],type:"error",name:"MaxSupplyDeletionNotAllowed"},{inputs:[],type:"error",name:"NotAnCA"},{inputs:[],type:"error",name:"OriginIsNotTheOriginExecutor"},{inputs:[],type:"error",name:"ProposalNotReadyToAccept"},{inputs:[],type:"error",name:"RewardFlowDistributionChangeNotAllowed"},{inputs:[],type:"error",name:"SenderIsNotAdmin"},{inputs:[],type:"error",name:"SenderIsNotTheProposedAdmin"},{inputs:[],type:"error",name:"SenderIsNotTreasury"},{inputs:[],type:"error",name:"ServiceSenderMismatch"},{inputs:[],type:"error",name:"SyncNonceMismatch"},{inputs:[],type:"error",name:"TokenIsDeniedForExecution"},{inputs:[],type:"error",name:"UserCannotExecuteTransaction"},{inputs:[],type:"error",name:"WindowExpired"},{inputs:[],stateMutability:"nonpayable",type:"fallback"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptChangeBaseRewardAmount"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptChangeRewardFlowDistribution"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptDeleteTotalSupply"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptImplementation"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptListStatusProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptUserValidatorProposal"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"addAmountToUser"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"quantity",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"addBalance"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"asyncNonceStatus",outputs:[{internalType:"bytes1",name:"",type:"bytes1"}]},{inputs:[{internalType:"struct CoreStructs.BatchData[]",name:"batchData",type:"tuple[]",components:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to_address",type:"address"},{internalType:"string",name:"to_identity",type:"string"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"priorityFee",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}]}],stateMutability:"nonpayable",type:"function",name:"batchPay",outputs:[{internalType:"uint256",name:"successfulTransactions",type:"uint256"},{internalType:"bool[]",name:"results",type:"bool[]"}]},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"caPay"},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"canExecuteUserTransaction",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelUserValidatorProposal"},{inputs:[{internalType:"struct CoreStructs.DisperseCaPayMetadata[]",name:"toData",type:"tuple[]",components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"toAddress",type:"address"}]},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"disperseCaPay"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"struct CoreStructs.DispersePayMetadata[]",name:"toData",type:"tuple[]",components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to_address",type:"address"},{internalType:"string",name:"to_identity",type:"string"}]},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"priorityFee",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"dispersePay"},{inputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getAllowListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getAsyncNonceReservation",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"pure",type:"function",name:"getChainHostCoinAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentAdmin",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentImplementation",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentListStatus",outputs:[{internalType:"bytes1",name:"",type:"bytes1"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCurrentSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getDenyListStatus",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmMetadata",outputs:[{internalType:"struct CoreStructs.EvvmMetadata",name:"",type:"tuple",components:[{internalType:"string",name:"EvvmName",type:"string"},{internalType:"uint256",name:"EvvmID",type:"uint256"},{internalType:"string",name:"principalTokenName",type:"string"},{internalType:"string",name:"principalTokenSymbol",type:"string"},{internalType:"address",name:"principalTokenAddress",type:"address"},{internalType:"uint256",name:"totalSupply",type:"uint256"},{internalType:"uint256",name:"eraTokens",type:"uint256"},{internalType:"uint256",name:"reward",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailAdmin",outputs:[{internalType:"struct ProposalStructs.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"current",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailImplementation",outputs:[{internalType:"struct ProposalStructs.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"current",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailListStatus",outputs:[{internalType:"struct ProposalStructs.Bytes1TypeProposal",name:"",type:"tuple",components:[{internalType:"bytes1",name:"current",type:"bytes1"},{internalType:"bytes1",name:"proposal",type:"bytes1"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailReward",outputs:[{internalType:"struct ProposalStructs.UintTypeProposal",name:"",type:"tuple",components:[{internalType:"uint256",name:"current",type:"uint256"},{internalType:"uint256",name:"proposal",type:"uint256"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailRewardFlowDistribution",outputs:[{internalType:"struct ProposalStructs.BoolTypeProposal",name:"",type:"tuple",components:[{internalType:"bool",name:"flag",type:"bool"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getFullDetailUserValidator",outputs:[{internalType:"struct ProposalStructs.AddressTypeProposal",name:"",type:"tuple",components:[{internalType:"address",name:"current",type:"address"},{internalType:"address",name:"proposal",type:"address"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getIfUsedAsyncNonce",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getNameServiceAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"getNextCurrentSyncNonce",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPrincipalTokenAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPrincipalTokenTotalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardFlowDistributionFlag",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getStakingContractAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getTimeToDeleteMaxSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getUserValidatorAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"_nameServiceAddress",type:"address"},{internalType:"address",name:"_treasuryAddress",type:"address"}],stateMutability:"nonpayable",type:"function",name:"initializeSystemContracts"},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"isAddressStaker",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to_address",type:"address"},{internalType:"string",name:"to_identity",type:"string"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"priorityFee",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"pay"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bytes1",name:"answer",type:"bytes1"}],stateMutability:"nonpayable",type:"function",name:"pointStaker"},{inputs:[{internalType:"address",name:"_newOwner",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeAdmin"},{inputs:[{internalType:"uint256",name:"newBaseReward",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeChangeBaseRewardAmount"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"proposeChangeRewardFlowDistribution"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"proposeDeleteTotalSupply"},{inputs:[{internalType:"address",name:"_newImpl",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeImplementation"},{inputs:[{internalType:"bytes1",name:"newStatus",type:"bytes1"}],stateMutability:"nonpayable",type:"function",name:"proposeListStatus"},{inputs:[{internalType:"address",name:"newValidator",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeUserValidator"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"recalculateReward"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectChangeBaseRewardAmount"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectChangeRewardFlowDistribution"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectDeleteTotalSupply"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectListStatusProposal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectUpgrade"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"removeAmountFromUser"},{inputs:[{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"}],stateMutability:"nonpayable",type:"function",name:"reserveAsyncNonce"},{inputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"revokeAsyncNonce"},{inputs:[{internalType:"uint256",name:"newEvvmID",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"setEvvmID"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bytes1",name:"answer",type:"bytes1"}],stateMutability:"nonpayable",type:"function",name:"setPointStaker"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"bool",name:"status",type:"bool"}],stateMutability:"nonpayable",type:"function",name:"setTokenStatusOnAllowList"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"bool",name:"status",type:"bool"}],stateMutability:"nonpayable",type:"function",name:"setTokenStatusOnDenyList"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"bytes32",name:"hashPayload",type:"bytes32"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bool",name:"isAsyncExec",type:"bool"},{internalType:"bytes",name:"signature",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"validateAndConsumeNonce"}],devdoc:{kind:"dev",methods:{"acceptAdmin()":{details:"Must be called by the proposed admin."},"acceptUserValidatorProposal()":{"custom:access":"Admin only","custom:timelock":"Requires DELAY (1 day) to have passed",details:"Activates new validator after delay period expires Activation Process: - Validates time-lock period has passed - Sets new validator as current active validator - Clears proposal state - Validator becomes active immediately Impact: - All future transactions checked by new validator - Affects validateAndConsumeNonce behavior - Can block users from executing transactions"},"addAmountToUser(address,address,uint256)":{"custom:access-control":"Only treasury contract","custom:security":"No overflow protection needed due to controlled access",details:"Restricted function that can only be called by the authorized treasury contract Treasury Operations: - Allows treasury to mint or credit tokens to user accounts - Used for reward distributions, airdrops, or token bridging - Direct balance manipulation bypasses normal transfer restrictions - No signature verification required (treasury authorization) Access Control: - Only the registered treasury contract can call this function - Reverts with SenderIsNotTreasury error for unauthorized callers - Provides centralized token distribution mechanism Use Cases: - Cross-chain bridge token minting - Administrative reward distributions - System-level token allocations - Emergency balance corrections",params:{amount:"Amount of tokens to add to the user's balance",token:"Address of the token contract to add balance for",user:"Address of the user to receive tokens"}},"addBalance(address,address,uint256)":{params:{quantity:"Amount to add.",token:"Token contract address.",user:"Recipient address."}},"asyncNonceStatus(address,uint256)":{details:"Returns byte code indicating nonce state Status Codes: - 0x00: Available (can be used by any service) - 0x01: Used (already consumed, cannot be reused) - 0x02: Reserved (allocated to specific service)",params:{nonce:"Async nonce to check status for",user:"Address of the user who owns the nonce"},returns:{_0:"Status code: 0x00 (available), 0x01 (used), or 0x02 (reserved)"}},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{details:"Each payment is validated and executed independently.",params:{batchData:"Array of payment details and signatures."},returns:{results:"Success status for each payment in the batch.",successfulTransactions:"Count of successful payments."}},"caPay(address,address,uint256)":{details:"Allows registered contracts to distribute tokens without signature verification Authorization Model: /**No signature required as the contract itself is the caller.",params:{amount:"Tokens to transfer.",to:"Recipient address.",token:"Token address."}},"canExecuteUserTransaction(address)":{details:"Checks with UserValidator if configured, allows all if not Validation Logic: - If no validator configured: Returns true (all allowed) - If validator configured: Delegates to validator.canExecute - Used by validateAndConsumeNonce before nonce consumption Integration: - Called during every transaction validation - Allows external filtering of user transactions - Supports compliance and security requirements",params:{user:"Address to check execution permission for"},returns:{_0:"True if user can execute, false if blocked"}},"cancelUserValidatorProposal()":{"custom:access":"Admin only",details:"Resets proposal state before time-lock expires"},constructor:{params:{_evvmMetadata:"Initial configuration (token info, reward amounts, etc.).",_initialOwner:"Address granted administrative control.",_stakingContractAddress:"Address of the Staking contract."}},"disperseCaPay((uint256,address)[],address,uint256)":{params:{amount:"Total amount to distribute.",toData:"Array of recipient addresses/identities and amounts.",token:"Token address."}},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{params:{amount:"Total amount to distribute (sum of toData).",from:"Sender address.",isAsyncExec:"True for parallel nonces.",nonce:"Transaction nonce.",priorityFee:"Fee for the executor (if staker).",senderExecutor:"Optional authorized executor.",signature:"EIP-191 authorization signature.",toData:"Array of recipient addresses/identities and their respective amounts.",token:"Token address."}},"getAllowListStatus(address)":{details:"Returns boolean indicating if token is allowed for execution - true if allowed - false if denied"},"getAsyncNonceReservation(address,uint256)":{details:"Returns address(0) if nonce is not reserved",params:{nonce:"Async nonce to check reservation for",user:"Address of the user who owns the nonce"},returns:{_0:"Service address that reserved the nonce, or address(0) if not reserved"}},"getBalance(address,address)":{details:"Returns the current balance stored in the EVVM system",params:{token:"Token contract address to check",user:"Address to check balance for"},returns:{_0:"Current token balance for the user"}},"getChainHostCoinAddress()":{details:"Returns address(0) which is the standard sentinel for native blockchain tokens Use this address as the token parameter when dealing with ETH or chain-native assets",returns:{_0:"address(0) representing the native chain currency"}},"getCurrentAdmin()":{details:"Returns the address with administrative privileges over the contract",returns:{_0:"Address of the current admin"}},"getCurrentImplementation()":{details:"Returns the implementation used by the proxy for delegatecalls",returns:{_0:"Address of the current implementation contract"}},"getCurrentListStatus()":{details:"Returns byte code indicating current token restriction mode - 0x00: No restrictions - 0x01: Denylist active - 0x02: Allowlist active"},"getCurrentSupply()":{details:"Returns the current circulating supply used for reward recalculations"},"getDenyListStatus(address)":{details:"Returns boolean indicating if token is restricted for execution - true if denied - false if allowed"},"getEvvmID()":{details:"Returns the EvvmID used for distinguishing different EVVM deployments",returns:{_0:"Unique EvvmID string"}},"getEvvmMetadata()":{details:"Provides access to system-wide configuration and economic parameters Metadata Contents: - Principal token address (Principal Token) - Current reward amount per transaction - Total supply tracking - Era tokens threshold for reward transitions - System configuration parameters",returns:{_0:"Complete EvvmMetadata struct with all system parameters"}},"getFullDetailImplementation()":{details:"Returns current, proposed implementation addresses and time-lock info",returns:{_0:"Proposal struct with current implementation, proposed implementation, and time to accept the proposal"}},"getFullDetailListStatus()":{details:"Returns current list status along with pending proposal info"},"getFullDetailReward()":{details:"Returns current reward, proposed reward and time-lock info",returns:{_0:"Proposal struct with current reward, proposed reward, and time to accept the proposal"}},"getFullDetailRewardFlowDistribution()":{details:"Returns current flag, proposed flag, and time-lock info",returns:{_0:"Proposal struct with current flag, proposed flag, and time to accept"}},"getFullDetailUserValidator()":{details:"Returns current, proposed address and time-lock info",returns:{_0:"Proposal struct with current validator address, proposed address, and time to accept"}},"getIfUsedAsyncNonce(address,uint256)":{details:"Public view function for external queries and UI integration",params:{nonce:"The nonce value to query",user:"Address of the user to check"},returns:{_0:"True if the nonce has been used, false if available"}},"getNameServiceAddress()":{details:"Returns the address used for identity resolution in payments",returns:{_0:"Address of the integrated NameService contract"}},"getNextCurrentSyncNonce(address)":{details:"Public view function for external queries and transaction preparation",params:{user:"Address of the user to query"},returns:{_0:"The next nonce value that must be used by the user"}},"getPrincipalTokenAddress()":{details:"Returns the virtual address used to track Principal Token balances in the balances mapping This is not an ERC20 contract address but a sentinel value for the EVVM-native token",returns:{_0:"Address used as the key for Principal Token balances"}},"getPrincipalTokenTotalSupply()":{details:"Returns the current total supply used for era transition calculations",returns:{_0:"Total supply of Principal Tokens"}},"getRewardAmount()":{details:"Returns the base reward distributed to stakers for transaction processing",returns:{_0:"Current reward amount in Principal Tokens"}},"getRewardFlowDistributionFlag()":{details:"Returns boolean indicating if reward distribution is active - true if rewards are distributed to stakers - false if rewards are disabled"},"getStakingContractAddress()":{details:"Returns the address that can modify staker status and receive rewards",returns:{_0:"Address of the integrated staking contract"}},"getTimeToDeleteMaxSupply()":{details:"Returns the timestamp when the max supply can be deleted",returns:{_0:"Timestamp for max supply deletion"}},"getUserValidatorAddress()":{details:"Returns address(0) if no validator is configured",returns:{_0:"Address of active UserValidator contract"}},"initializeSystemContracts(address,address)":{details:"Uses a breaker flag to prevent re-initialization.",params:{_nameServiceAddress:"Address of the NameService contract.",_treasuryAddress:"Address of the Treasury contract."}},"isAddressStaker(address)":{details:"Verifies staker status for transaction processing privileges and rewards",params:{user:"Address to check staker status for"},returns:{_0:"True if the address is a registered staker"}},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{details:"Validates nonce (sync/async), resolves identity (if provided), and updates balances. Rewarded if the executor is a staker.",params:{amount:"Tokens to transfer.",from:"Sender address.",isAsyncExec:"True for parallel nonces, false for sequential.",nonce:"Transaction nonce.",priorityFee:"Fee paid to the executor (if staker).",senderExecutor:"Optional authorized executor (address(0) for any).",signature:"EIP-191 authorization signature.",to_address:"Recipient address (overridden if to_identity is set).",to_identity:"Recipient username (resolved via NameService).",token:"Token address (address(0) for ETH)."}},"pointStaker(address,bytes1)":{details:"Can only be called by the authorized staking contract Staker Status Management: - Controls who can earn staking rewards and process transactions - Integrates with external staking contract for validation - Updates affect payment processing privileges and reward eligibility Access Control: - Only the registered staking contract can call this function - Ensures staker status changes are properly authorized",params:{answer:"Bytes1 flag indicating staker status/type",user:"Address to update staker status for"}},"proposeAdmin(address)":{params:{_newOwner:"Address of the proposed admin."}},"proposeImplementation(address)":{params:{_newImpl:"Address of the new logic contract."}},"proposeUserValidator(address)":{details:"Initiates time-delayed governance for validator changes Governance Process: - Admin proposes new validator contract address - 1-day delay enforced before acceptance - Allows community review of validator changes - Can be canceled before acceptance UserValidator Integration: - Optional contract for transaction filtering - Called during validateAndConsumeNonce execution - Can block specific users from executing transactions - Useful for compliance or security requirements Security Features: - Time-delayed governance (DELAY constant) - Admin-only proposal capability - Cancellation mechanism before activation",params:{newValidator:"Address of proposed UserValidator"}},"recalculateReward()":{details:"Implements deflationary tokenomics with halving mechanism and random rewards Era Transition Mechanism: - Activates when total supply exceeds current era token threshold - Moves half of remaining tokens to next era threshold - Halves the base reward amount for future transactions - Provides random Principal Token bonus to caller (1-5083x reward) Economic Impact: - Gradually reduces inflation through reward halving - Creates scarcity as era thresholds become harder to reach - Incentivizes early participation with higher rewards - Provides lottery-style bonus for triggering era transitions Requirements: - Total supply must exceed current era token threshold - Can be called by anyone when conditions are met"},"removeAmountFromUser(address,address,uint256)":{details:"Restricted to the authorized Treasury contract.",params:{amount:"Amount to remove.",token:"Token address.",user:"Account to debit."}},"reserveAsyncNonce(uint256,address)":{details:"Allows users to pre-allocate nonces to specific services Reservation System: - Users reserve nonces for specific service addresses - Prevents other services from using reserved nonces - Useful for multi-step or delayed operations - Reservation persists until revoked or nonce is used Use Cases: - Cross-chain operations requiring coordination - Multi-signature workflows with specific executors - Service-specific transaction queues - Preventing front-running by other services Security Features: - User-controlled reservation (msg.sender) - Validates service address is not zero - Prevents double reservation of same nonce - Cannot reserve already-used nonces",params:{nonce:"The async nonce value to reserve",senderExecutor:"Service contract that can use nonce"}},"revokeAsyncNonce(uint256)":{details:"Allows clearing of nonce reservations for reuse Revocation Process: - Validates nonce has not been used yet - Checks that nonce is currently reserved - Clears the service address reservation - Nonce becomes available for any service Authorization: - Currently callable by anyone (potential security issue) - Should validate msg.sender is user or authorized - Allows cancellation of mistaken reservations Use Cases: - Canceling pending service operations - Correcting accidental reservations - Freeing nonces for different services",params:{nonce:"The async nonce to revoke reservation for"}},"setEvvmID(uint256)":{params:{newEvvmID:"New unique identifier for EIP-191 signatures."}},"setPointStaker(address,bytes1)":{params:{answer:"Status flag (e.g., FLAG_IS_STAKER).",user:"User address."}},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{details:"Only callable by smart contracts (EVVM services). Atomic verification/consumption.",params:{hashPayload:"Hash of the transaction parameters.",isAsyncExec:"True for non-sequential nonces.",nonce:"Nonce to validate and consume.",originExecutor:"Optional tx.origin restriction (address(0) for none).",signature:"User's authorization signature.",user:"Address of the transaction signer."}}},version:1},userdoc:{kind:"user",methods:{"acceptAdmin()":{notice:"Finalizes the admin change after the time delay."},"acceptImplementation()":{notice:"Finalizes the implementation upgrade after the time delay."},"acceptUserValidatorProposal()":{notice:"Accepts UserValidator proposal after time-lock"},"addAmountToUser(address,address,uint256)":{notice:"Adds tokens to a user's balance in the EVVM system"},"addBalance(address,address,uint256)":{notice:"Faucet: Adds balance to a user for testing (Testnet only)."},"asyncNonceStatus(address,uint256)":{notice:"Gets comprehensive status of an async nonce"},"batchPay((address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)[])":{notice:"Processes multiple payments in a single transaction."},"caPay(address,address,uint256)":{notice:"Contract-to-address payment function for authorized smart contractsAllows a smart contract (CA) to pay a recipient directly."},"canExecuteUserTransaction(address)":{notice:"Validates if user can execute transactions"},"cancelUserValidatorProposal()":{notice:"Cancels pending UserValidator proposal"},constructor:{notice:"Initializes the EVVM Core with basic system parameters."},"disperseCaPay((uint256,address)[],address,uint256)":{notice:"Allows a smart contract (CA) to distribute tokens to multiple recipients."},"dispersePay(address,(uint256,address,string)[],address,uint256,uint256,address,address,uint256,bool,bytes)":{notice:"Distributes tokens from one sender to multiple recipients with a single signature."},"getAllowListStatus(address)":{notice:"Checks if a token is on the allowList or denyList based on current list status"},"getAsyncNonceReservation(address,uint256)":{notice:"Gets service address that reserved an async nonce"},"getBalance(address,address)":{notice:"Gets the balance of a specific token for a user"},"getChainHostCoinAddress()":{notice:"Gets the address representing native chain currency (ETH/MATIC) in balance mappings"},"getCurrentAdmin()":{notice:"Gets the current admin address"},"getCurrentImplementation()":{notice:"Gets the current active implementation contract address"},"getCurrentListStatus()":{notice:"Gets the current token list status (none, denylist, allowlist)"},"getCurrentSupply()":{notice:"Gets the current supply of the Principal Token in circulation"},"getDenyListStatus(address)":{notice:"Checks if a token is on the denylist or allowlist based on current list status"},"getEvvmID()":{notice:"Gets the unique identifier string for this EVVM instance"},"getEvvmMetadata()":{notice:"Returns the complete EVVM metadata configuration"},"getFullDetailImplementation()":{notice:"Gets comprehensive details of the implementation upgrade proposal"},"getFullDetailListStatus()":{notice:"Gets comprehensive token list status details"},"getFullDetailReward()":{notice:"Gets comprehensive details of the reward change proposal"},"getFullDetailRewardFlowDistribution()":{notice:"Gets full details of the reward flow distribution proposal"},"getFullDetailUserValidator()":{notice:"Gets full UserValidator proposal details"},"getIfUsedAsyncNonce(address,uint256)":{notice:"Checks if a specific nonce has been used by a user"},"getNameServiceAddress()":{notice:"Gets the current NameService contract address"},"getNextCurrentSyncNonce(address)":{notice:"Gets the current (next expected) nonce for a user"},"getPrincipalTokenAddress()":{notice:"Gets the address representing the Principal Token in balance mappings"},"getPrincipalTokenTotalSupply()":{notice:"Gets the total supply of the Principal Token"},"getRewardAmount()":{notice:"Gets the current Principal Token reward amount per transaction"},"getRewardFlowDistributionFlag()":{notice:"Gets the current status of the reward flow distribution flag"},"getStakingContractAddress()":{notice:"Gets the authorized staking contract address"},"getTimeToDeleteMaxSupply()":{notice:"Gets the time remaining to delete the maximum supply"},"getUserValidatorAddress()":{notice:"Gets current UserValidator contract address"},"initializeSystemContracts(address,address)":{notice:"Configures NameService and Treasury addresses once."},"isAddressStaker(address)":{notice:"Checks if an address is registered as a staker"},"pay(address,address,string,address,uint256,uint256,address,address,uint256,bool,bytes)":{notice:"Processes a single token payment with signature verification."},"pointStaker(address,bytes1)":{notice:"Updates staker status for a user address"},"proposeAdmin(address)":{notice:"Proposes a new administrator (1-day delay)."},"proposeImplementation(address)":{notice:"Proposes a new implementation contract for the proxy (30-day delay)."},"proposeUserValidator(address)":{notice:"Proposes new UserValidator contract address"},"recalculateReward()":{notice:"Triggers a reward recalculation and era transition in the token economy"},"rejectProposalAdmin()":{notice:"Cancels a pending admin change proposal."},"rejectUpgrade()":{notice:"Cancels a pending implementation upgrade proposal."},"removeAmountFromUser(address,address,uint256)":{notice:"Deducts tokens from a user's system balance."},"reserveAsyncNonce(uint256,address)":{notice:"Reserves an async nonce for exclusive service use"},"revokeAsyncNonce(uint256)":{notice:"Revokes a previously reserved async nonce"},"setEvvmID(uint256)":{notice:"Updates the EVVM ID within a 24-hour window after deployment or change."},"setPointStaker(address,bytes1)":{notice:"Faucet: Sets staker status for testing (Testnet only)."},"validateAndConsumeNonce(address,address,bytes32,address,uint256,bool,bytes)":{notice:"Validates a user signature and consumes a nonce for an EVVM service."}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/core/Core.sol":"Core"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:62},yk={abi:[{type:"constructor",inputs:[{name:"_coreAddress",type:"address",internalType:"address"},{name:"_initialOwner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptChangeEvvmAddress",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptOffer",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"offerID",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptProposeAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addCustomMetadata",inputs:[{name:"user",type:"address",internalType:"address"},{name:"identity",type:"string",internalType:"string"},{name:"value",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelChangeEvvmAddress",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelProposeAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelWithdrawPrincipalTokens",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimWithdrawPrincipalTokens",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"flushCustomMetadata",inputs:[{name:"user",type:"address",internalType:"address"},{name:"identity",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"flushUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAdmin",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getAdminFullDetails",inputs:[],outputs:[{name:"currentAdmin",type:"address",internalType:"address"},{name:"proposalAdmin",type:"address",internalType:"address"},{name:"timeToAcceptAdmin",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getAmountOfCustomMetadata",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCoreAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getCoreAddressFullDetails",inputs:[],outputs:[{name:"currentEvvmAddress",type:"address",internalType:"address"},{name:"proposalEvvmAddress",type:"address",internalType:"address"},{name:"timeToAcceptEvvmAddress",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getCustomMetadataMaxSlotsOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getExpireDateOfIdentity",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getFullCustomMetadataOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"string[]",internalType:"string[]"}],stateMutability:"view"},{type:"function",name:"getIdentityBasicMetadata",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getLengthOfOffersUsername",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"length",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getOffersOfUsername",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"offers",type:"tuple[]",internalType:"struct NameServiceStructs.OfferMetadata[]",components:[{name:"offerer",type:"address",internalType:"address"},{name:"expirationDate",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getOwnerOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getPriceOfRegistration",inputs:[{name:"username",type:"string",internalType:"string"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToAddCustomMetadata",inputs:[],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToFlushCustomMetadata",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToFlushUsername",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriceToRemoveCustomMetadata",inputs:[],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getProposedWithdrawAmountFullDetails",inputs:[],outputs:[{name:"proposalAmountToWithdrawTokens",type:"uint256",internalType:"uint256"},{name:"timeToAcceptAmountToWithdrawTokens",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSingleCustomMetadataOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"},{name:"_key",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"getSingleOfferOfUsername",inputs:[{name:"_username",type:"string",internalType:"string"},{name:"_offerID",type:"uint256",internalType:"uint256"}],outputs:[{name:"offer",type:"tuple",internalType:"struct NameServiceStructs.OfferMetadata",components:[{name:"offerer",type:"address",internalType:"address"},{name:"expirationDate",type:"uint256",internalType:"uint256"},{name:"amount",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"hashUsername",inputs:[{name:"_username",type:"string",internalType:"string"},{name:"_randomNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"isUsernameAvailable",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"makeOffer",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"expirationDate",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[{name:"offerID",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"preRegistrationUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"hashPreRegisteredUsername",type:"bytes32",internalType:"bytes32"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeAdmin",inputs:[{name:"_adminToPropose",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeChangeEvvmAddress",inputs:[{name:"_newEvvmAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeWithdrawPrincipalTokens",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"registrationUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"lockNumber",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeCustomMetadata",inputs:[{name:"user",type:"address",internalType:"address"},{name:"identity",type:"string",internalType:"string"},{name:"key",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renewUsername",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"seePriceToRenew",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"price",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"strictVerifyIfIdentityExist",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"verifyIfIdentityExists",inputs:[{name:"_identity",type:"string",internalType:"string"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"verifyStrictAndGetOwnerOfIdentity",inputs:[{name:"_username",type:"string",internalType:"string"}],outputs:[{name:"answer",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"withdrawOffer",inputs:[{name:"user",type:"address",internalType:"address"},{name:"username",type:"string",internalType:"string"},{name:"offerID",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AmountMustBeGreaterThanZero",inputs:[]},{type:"error",name:"CannotBeBeforeCurrentTime",inputs:[]},{type:"error",name:"EmptyCustomMetadata",inputs:[]},{type:"error",name:"IdentityIsNotAUsername",inputs:[]},{type:"error",name:"InvalidAdminProposal",inputs:[]},{type:"error",name:"InvalidEvvmAddress",inputs:[]},{type:"error",name:"InvalidKey",inputs:[]},{type:"error",name:"InvalidUsername",inputs:[]},{type:"error",name:"InvalidWithdrawAmount",inputs:[]},{type:"error",name:"LockTimeNotExpired",inputs:[]},{type:"error",name:"OfferInactive",inputs:[]},{type:"error",name:"OwnershipExpired",inputs:[]},{type:"error",name:"PreRegistrationNotValid",inputs:[]},{type:"error",name:"RenewalTimeLimitExceeded",inputs:[]},{type:"error",name:"SenderIsNotAdmin",inputs:[]},{type:"error",name:"SenderIsNotProposedAdmin",inputs:[]},{type:"error",name:"UserIsNotOwnerOfIdentity",inputs:[]},{type:"error",name:"UserIsNotOwnerOfOffer",inputs:[]},{type:"error",name:"UsernameAlreadyRegistered",inputs:[]}],bytecode:{object:"0x608034609657601f6146e938819003918201601f19168301916001600160401b03831184841017609a578084926040948552833981010312609657604b602060458360ae565b920160ae565b600680546001600160a01b03199081166001600160a01b039485169081179092556009805482169490931693909317909155600d805490921617905560405161462790816100c28239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820360965756fe6080806040526004361015610012575f80fd5b5f905f3560e01c9081627802df14613260575080630c78d2c6146131e25780630d3dcb9f14613188578063147bf6c4146130e157806317c85152146130635780631f4131fb146130285780632096b7681461300257806322abdafa14612d2c57806322afca3814612cd757806324866f1514612c9b57806336e7a1b81461180057806343a82d6714612c0757806348ffba5514612b5c57806353462f82146127a257806354dc585d146127665780635548a76214612729578063570b245b146126ec5780635f94da09146123ea5780636b5bb1ca14611efa5780636e9960c3146123c35780637126b2a31461238757806371e604f814611f3b57806375dab53b14611eff5780637bd9da7a14611efa5780637d0d960814611c4357806386c8ac5814611c0757806388ecb91f14611bcb5780638ffe264e1461180557806399e7bac214611800578063a6ba51ca1461177c578063b0bf2e1014611349578063b19517dd1461115c578063bc91a42814611120578063bcd5a47c146110fe578063c97da33e14611086578063cf1dc14614611049578063d2234a1a14611024578063d7fd313414610e97578063e7849f6214610e44578063eba5e53e14610db4578063ebee75fc14610aac578063ecdc7aff146106f5578063f5e993f5146103cd578063f69c6dec14610387578063f6d0ecbe146102995763fe7ab68314610217575f80fd5b34610296576020366003190112610296576004356001600160401b0381116102945761024790369060040161340a565b829160015b15610262575b61025c8493613c1b565b9261024c565b604051828282376020818481016001815203019020838552602052600160408520015461025257602083604051908152f35b505b80fd5b50346102965760206102aa36613493565b92909182604051938492833781016002815203019020908252602052604081209060405191818154916102dc83613a77565b808652926001811690811561035d575060011461031c575b61031885610304818703826136e2565b604051918291602083526020830190613674565b0390f35b815260208120939250905b80821061034357509091508101602001610304826103186102f4565b919260018160209254838588010152019101909291610327565b8695506103189693506020925061030494915060ff191682840152151560051b82010192936102f4565b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36103bd366004860161340a565b90614134565b6040519015158152f35b503461029657806103dd366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b031693369061040792613933565b90604051809160208201936060855260808301600d905260a083016c3bb4ba34323930bba7b33332b960991b90526040830160a0905260c0830161044a91613674565b90606083015203601f198101825261046290826136e2565b51902092823b156106f1578b6104958896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576106cd575b5050604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b2054166001600160a01b038616036106be579061051994939291866106aa575b5050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b8154169055600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f578691610669575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69261031c6105cc950490613722565b613722565b3361445a565b6040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b825461372f565b815580f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b87526011600452602487fd5b90506020813d602011610697575b81610684602093836136e2565b8101031261069357515f610579565b5f80fd5b3d9150610677565b6040513d88823e3d90fd5b6106b5938786614188565b5f8080806104ec565b630504ed8560e21b8a5260048afd5b816106d7916136e2565b6106e257895f6104a4565b8980fd5b6040513d84823e3d90fd5b8680fd5b5034610296578061072b610708366134c5565b999b95929d949391978b9d8d929a9c6001600160a01b03600d5416933691613933565b8c610792604051809261077e602083019560608752601460808501527f72656d6f7665437573746f6d4d6574616461746100000000000000000000000060a085015260a0604085015260c0840190613674565b90606083015203601f1981018352826136e2565b51902092823b156106f157876107c58896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610a97575b50506001600160a01b03604051888a82376020818a8101600c81520301902054166001600160a01b03821603610a8857856002604051898b82376020818b8101600c81520301902001541115610a7957908861083b959493926108356138a0565b90614286565b80600260405184868237602081868101600c8152030190200154145f146109b95760029260209160405184838237838186810188815203019020908752825261088660408720613aca565b8260405193849283378101600c81520301902001805480156109a5575f190190556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a57849161096b575b506108e6578280f35b6020600491604051928380926309a69f5760e01b82525afa90811561096057839161092e575b508060050290600582040361064157610928916105c691613722565b5f808280f35b90506020813d602011610958575b81610949602093836136e2565b8101031261069357515f61090c565b3d915061093c565b6040513d85823e3d90fd5b61098d915060203d602011610993575b61098581836136e2565b810190613888565b5f6108dd565b503d61097b565b6040513d86823e3d90fd5b634e487b7160e01b84526011600452602484fd5b600260405183858237602081858101600c8152030190200154811015610a3457604051828482376020818481016002815203019020600182018083116106555790600192918752602052610a2e6040872060405185878237602081878101600281520301902083895260205260408820614055565b016109b9565b5060206002926040518382823782818581018781520301902084604051858482378481878101600c815203019020015487528252610a7460408720613aca565b610886565b630eda9c3d60e31b8a5260048afd5b6322de326160e11b8a5260048afd5b81610aa1916136e2565b6106e257895f6107d4565b50346102965780610abc36613587565b97988a9b99610ae3829e96939997959c6001600160a01b03600d9a969a5416933691613933565b604051610b3281610b24602082019460408652600d60608401526c72656e6577557365726e616d6560981b60808401526080604084015260a0830190613674565b03601f1981018352826136e2565b51902092823b156106f1578b610b658896928a9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610d9b575b50506001600160a01b03604051898982376020818b8101600c81520301902054166001600160a01b03861603610d8c5760405188888237600c818a0190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d576001604051898982376020818b8101600c815203019020015463bbf81e00420190814211610d695711610d5a5790610c1c93929186610c158a8a613c29565b8097614286565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791610d30575b50610c8a575b5050509060206001928260405193849283378101600c815203019020018054906301e285008201809211610641575580f35b906020600492604051938480926309a69f5760e01b82525afa91821561069f578692610cfc575b50603281029080820460321490151715610ce8576105c66020936105c160019796946064610ce0950490613722565b91925f610c58565b634e487b7160e01b86526011600452602486fd5b9091506020813d602011610d28575b81610d18602093836136e2565b810103126106935751905f610cb1565b3d9150610d0b565b610d49915060203d6020116109935761098581836136e2565b5f610c52565b6040513d89823e3d90fd5b6356657c2160e01b8952600489fd5b634e487b7160e01b8b52601160045260248bfd5b631591d30560e11b8952600489fd5b6322de326160e11b8952600489fd5b81610da5916136e2565b610db057885f610b74565b8880fd5b50346102965780600319360112610296576001600160a01b03600a5416338103610e3557600b544210610e26578160408051610def816136c7565b83815282602082015201526001600160601b0360a01b60095416176009556001600160601b0360a01b600a5416600a5580600b5580f35b63018a18db60e51b8252600482fd5b632dba366760e21b8252600482fd5b50346102965780600319360112610296576001600160a01b0360095416803303610e88576005544210610e2657600454610e7d9161445a565b806004558060055580f35b636587b01b60e11b8252600482fd5b5034610296576020366003190112610296576004356001600160401b03811161029457610ec890369060040161340a565b600360405182848237602081848101600c815203019020015490610eeb82613f41565b91610ef960405193846136e2565b808352610f08601f1991613f41565b01845b81811061100d575050835b600360405183868237602081858101600c8152030190200154811015610f9f57600190604051838682376020818581018581520301902081875260205260408620600260405191610f66836136c7565b6001600160a01b03815416835284810154602084015201546040820152610f8d8286613f58565b52610f988185613f58565b5001610f16565b8285604051918291602083016020845282518091526020604085019301915b818110610fcc575050500390f35b919350916020606082610fff6001948851604080916001600160a01b038151168452602081015160208501520151910152565b019401910191849392610fbe565b602090611018613915565b82828701015201610f0b565b5034610296578060031936011261029657604060045460055482519182526020820152f35b50346102965780600319360112610296576001600160a01b0360095416330361107757806004558060055580f35b636587b01b60e11b8152600490fd5b503461029657602036600319011261029657600435906001600160401b03821161029657604060016110bb366004860161340a565b60206001600160a01b038594939451838682378281858101600c81520301902054169382865193849283378101600c815203019020015482519182526020820152f35b503461029657602061111861111236613493565b91614026565b604051908152f35b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611156366004860161340a565b90613f80565b5034610296576020366003190112610296576004356001600160401b0381116102945761118d90369060040161340a565b91600260405184848237602081868101600c8152030190200154926111b184613f41565b936111bf60405195866136e2565b8085526111ce601f1991613f41565b01825b818110611338575050815b600260405183868237602081858101600c81520301902001548110156112d1576040518285823760208184810160028152030190208184526020526040832060405190849080549061122d82613a77565b80855291600181169081156112aa5750600114611273575b505090611257816001949303826136e2565b6112618288613f58565b5261126c8187613f58565b50016111dc565b8652602086208692505b818310611294575050810160200161125782611245565b600181602092548386880101520192019161127d565b60ff191660208087019190915292151560051b850190920192506112579150839050611245565b84836040519182916020830160208452825180915260408401602060408360051b870101940192905b82821061130957505050500390f35b919360019193955060206113288192603f198a82030186528851613674565b96019201920185949391926112fa565b8060606020809389010152016111d1565b50346102965761016036600319011261029657611364613437565b6024356001600160401b0381116117785761138390369060040161340a565b61138b613463565b9260a435936001600160a01b03851685036117745760e4356001600160401b0381116106f1576113bf90369060040161340a565b91909587610144356001600160401b038111610294576113e390369060040161340a565b94909382996001600160a01b03600d54166113ff368b8d613933565b60405161145a8161143c602082019460808652600960a08401526836b0b5b2a7b33332b960b91b60c084015260c0604084015260e0830190613674565b6044356060830152606435608083015203601f1981018352826136e2565b519020813b156117745785809461148f8c978a96604051998a9889978896637d3d171560e11b885260c435936004890161380b565b03925af180156106e65761175b575b505060405185878237600c81870190815281900360200190206004015460f81b6001600160f81b031916600160f81b14801561174a575b61173b5742606435111561172c576044351561171d579061150692916101249794973590610104356044358a614286565b6040518284823760208184810160018152030190208186526020526001600160a01b03604086205416156115425761153d90613c1b565b611506565b926103e36044350260443581046103e303610ce8576103e89004906001600160a01b0360405191611572836136c7565b16815260026020820160643581526040830190848252604051868882376020818881016001815203019020888a526020526001600160a01b038060408b20955116166001600160601b0360a01b85541617845551600184015551910155600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f5786916116eb575b50607d60443502906044358204607d0361065557602096926116396105c661164d946105c161164695620186a061010435930490613722565b6103206044350490613722565b8254613722565b90556003604051828482378581848101600c815203019020015483115f1461169b57836003928260405193849283378101600c815203019020016116918154613c1b565b9055604051908152f35b6003604051828482378581848101600c8152030190200154156116c0575b5050611118565b836003928260405193849283378101600c815203019020016116e28154613c1b565b90555f806116b9565b90506020813d602011611715575b81611706602093836136e2565b8101031261069357515f611600565b3d91506116f9565b635e85ae7360e01b8852600488fd5b632cce8b5d60e21b8852600488fd5b630a1de65160e31b8852600488fd5b506117558587613b19565b156114d5565b81611765916136e2565b61177057875f61149e565b8780fd5b8580fd5b8280fd5b503461029657602036600319011261029657611796613437565b6001600160a01b03600954163303610e88576001600160a01b031680156117f1576001600160601b0360a01b60075416176007556201518042018042116117dd5760085580f35b634e487b7160e01b82526011600452602482fd5b63203e99b760e21b8252600482fd5b613479565b50346102965761183b90611818366134c5565b979195939096948b9e8b9d9c6001600160a01b03600d9d969d5416953691613933565b60405161188d818d61077e602083019560608752601460808501527f726567697374726174696f6e557365726e616d6500000000000000000000000060a085015260a0604085015260c0840190613674565b51902094843b15611bc7578c8f95936118c3908998969488946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af18015611bbc57908a91611ba7575b50506001600160a01b0360095416966001600160a01b0381168098141580611b8d575b611b7e57611906898c614134565b15611b6f57936119309361193a96936119299389611935988f8e61083591613f80565b8689614026565b614379565b61384e565b9160405193816001600160a01b0385519660208181890199808b835e8101600c815203019020541614801590611b4d575b611b3e576301e2850042018042116106555791869760049288946040519361199285613698565b8452602084019081526001600160a01b03806040860193888552602060608801968a8852608089019a8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611b1f575b50611a79575b5050906020600492604051928391518091835e8101600c815203019020828155826001820155826002820155826003820155015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611ae2575b5080603202906032820403611ace57600492611ac76105c6879694602094613722565b9192611a42565b634e487b7160e01b85526011600452602485fd5b90506020813d602011611b0c575b81611afd602093836136e2565b8101031261069357515f611aa4565b3d9150611af0565b6040513d87823e3d90fd5b611b38915060203d6020116109935761098581836136e2565b5f611a3c565b6321efd8cf60e11b8652600486fd5b5060016040516020818751808a835e8101600c8152030190200154421061196b565b633efbb39b60e11b8a5260048afd5b630a1de65160e31b8a5260048afd5b50611ba1611b9c368b8e613933565b6144f0565b156118f8565b81611bb1916136e2565b610db057885f6118d5565b6040513d8c823e3d90fd5b8e80fd5b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600a5416600a5580600b5580f35b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c3611c3d366004860161340a565b90613e91565b50346102965780611c5336613587565b98809b95939c949198611c788c6001600160a01b03600d9b9a969b5416933691613933565b604051611cbf81610b246020820194604086526013606084015272666c757368437573746f6d4d6574616461746160681b60808401526080604084015260a0830190613674565b51902092823b156106f15787611cf28896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657611ee5575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576002604051888882376020818a8101600c815203019020015415611ed6579087611d6295949392610835898961374f565b835b84600260405185858237602081878101600c8152030190200154821015611db65750600190604051848482376020818681016002815203019020818752602052611db060408720613aca565b01611d64565b9390506001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611eb7575b50611e15575b50509060206002928260405193849283378101600c815203019020015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611e85575b5080600502906005820403611ace57600292611e7e6105c68796946105c1602095886040518988823788818b8101600c81520301902001549061373c565b9192611df5565b90506020813d602011611eaf575b81611ea0602093836136e2565b8101031261069357515f611e40565b3d9150611e93565b611ed0915060203d6020116109935761098581836136e2565b5f611def565b6334b7a09160e01b8952600489fd5b81611eef916136e2565b610db057885f611d01565b61363f565b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611f35366004860161340a565b90613c29565b50346102965761014036600319011261029657611f56613437565b6024356001600160401b03811161177857611f7590369060040161340a565b916044356001600160401b03811161238357611f9590369060040161340a565b9091611f9f61344d565b611fa7613463565b9060c4356001600160401b038111610db057611fc790369060040161340a565b9390928960e4359561012435946001600160401b03861161177857612019968c8a610b246120778f9a8f61200261202192369060040161340a565b9e909d6001600160a01b03600d5416973691613933565b943691613933565b6040519283916120656020840196606088526011608086015270616464437573746f6d4d6574616461746160781b60a086015260a0604086015260c0850190613674565b838103601f1901606085015290613674565b519020813b15611774578580946120ac8a978a96604051998a9889978896637d3d171560e11b885260a435936004890161380b565b03925af180156106e65761236e575b50506001600160a01b036040518a8a82376020818c8101600c81520301902054166001600160a01b03831603610a8857851561235f57906121069392918561010435926108356138a0565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115612354578891612335575b50612283575b5050604051848482376020818681016002815203019020600260405186868237602081888101600c8152030190200154865260205260408520916001600160401b03821161226f5761219e826121988554613a77565b85613bce565b8590601f831160011461220557826002969593602095936121d4938a926121fa575b50508160011b915f199060031b1c19161790565b90555b8260405193849283378101600c815203019020016121f58154613c1b565b905580f35b013590505f806121c0565b8387526020872091601f198416885b81811061225757509260019285926002999896602098961061223e575b505050811b0190556121d7565b01355f19600384901b60f8161c191690555f8080612231565b91936020600181928787013581550195019201612214565b634e487b7160e01b86526041600452602486fd5b6020600491604051928380926309a69f5760e01b82525afa908115610d4f578791612303575b5080600502906005820403610655576122c06138a0565b6032810290808204603214901517156122ef57916105c16105c69260646122e8950490613722565b5f80612142565b634e487b7160e01b88526011600452602488fd5b90506020813d60201161232d575b8161231e602093836136e2565b8101031261069357515f6122a9565b3d9150612311565b61234e915060203d6020116109935761098581836136e2565b5f61213c565b6040513d8a823e3d90fd5b6334b7a09160e01b8a5260048afd5b81612378916136e2565b6106e257895f6120bb565b8480fd5b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36123bd366004860161340a565b90613b19565b503461029657806003193601126102965760206001600160a01b0360095416604051908152f35b503461029657806123fa36613587565b98809b95939c94919861241f8c6001600160a01b03600d9b9a969b5416933691613933565b60405161246081610b24602082019460408652600d60608401526c666c757368557365726e616d6560981b60808401526080604084015260a0830190613674565b51902092823b156106f157876124938896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576126d7575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576001604051888882376020818a8101600c81520301902001544210156126c85760405187878237600c81890190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d579087612537959493926108358989613978565b835b600260405184848237602081868101600c81520301902001548110156125895760019060405184848237602081868101600281520301902081875260205261258360408720613aca565b01612539565b5091600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115611b14578591612696575b5080600502906005820403611ace576105c6600493926105c16125f8936002604051878a8237602081898101600c81520301902001549061373c565b600360405182858237602081848101600c81520301902001546040519161261e83613698565b858352602083018681526001600160a01b0380604086019389855260608701958652602060808801998b8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff1982541617905580f35b90506020813d6020116126c0575b816126b1602093836136e2565b8101031261069357515f6125bc565b3d91506126a4565b637d3b450560e11b8952600489fd5b816126e1916136e2565b610db057885f6124a2565b5034610296578060031936011261029657600654600754600854604080516001600160a01b03948516815293909216602084015290820152606090f35b5034610296578060031936011261029657600954600a54600b54604080516001600160a01b03948516815293909216602084015290820152606090f35b503461029657602036600319011261029657600435906001600160401b03821161029657602061111861279c366004860161340a565b90613978565b503461029657806127b2366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b03169336906127dc92613933565b90604051809160208201936060855260808301600b905260a083016a30b1b1b2b83a27b33332b960a91b90526040830160a0905260c0830161281d91613674565b90606083015203601f198101825261283590826136e2565b51902092823b156106f1578b6128688896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657612b47575b50506001600160a01b03604051888b82376020818a8101600c81520301902054166001600160a01b03861603610a8857604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b205416158015612b1c575b612b0d579061291694939291866106aa575050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b6040518285823760208184810160018152030190208386526020526001600160a01b036040862054166001600160a01b0360405184878237602081868101600c81520301902091166001600160601b0360a01b825416179055604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b81541690556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791612aee575b50612a45575b50506040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b6020600491604051928380926309a69f5760e01b82525afa90811561069f578691612abc575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69260c7612ab5950460021c90613722565b5f806129da565b90506020813d602011612ae6575b81612ad7602093836136e2565b8101031261069357515f612a6b565b3d9150612aca565b612b07915060203d6020116109935761098581836136e2565b5f6129d4565b631388464960e01b8a5260048afd5b50604051878a82376020818981016001815203019020888b52602052600160408b20015442116128d8565b81612b51916136e2565b6106e257895f612877565b50346102965780600319360112610296576001600160a01b03600954163303611077576008544210612bf8576001600160a01b03600754168160408051612ba2816136c7565b83815282602082015201526001600160601b0360a01b60065416176006556001600160601b0360a01b60075416600755806008556001600160a01b03600654166001600160601b0360a01b600d541617600d5580f35b63018a18db60e51b8152600490fd5b50346102965760406060916020612c1d36613493565b929091612c28613915565b5082865193849283378101600181520301902090825260205220600260405191612c51836136c7565b6001600160a01b0381541683526001810154602084015201546040820152612c996040518092604080916001600160a01b038151168452602081015160208501520151910152565bf35b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600754166007558060085580f35b503461029657602036600319011261029657600435906001600160401b038211610296576020600181612d0d366004870161340a565b91908260405193849283378101600c8152030190200154604051908152f35b50346106935761012036600319011261069357612d47613437565b602435604435916001600160a01b038316830361069357612d6661344d565b60a4356001600160401b03811161069357612d8590369060040161340a565b949060c43595610104356001600160401b03811161069357612dab90369060040161340a565b9390926001600160a01b03600d5416604051602081019060408252601760608201527f707265526567697374726174696f6e557365726e616d6500000000000000000060808201528a604082015260808152612e0860a0826136e2565b519020813b15610693575f8094612e3d8b978b96604051998a9889978896637d3d171560e11b8852608435936004890161380b565b03925af18015612ff757612fe2575b5085612fcb575b5050506107084201804211611ace57906004916001600160a01b0360405192612e7b84613698565b168252602082019081526040820186815260608301918783526001600160a01b0380602080612eb761193560808a019b600160f81b8d52614379565b604051928184925191829101835e8101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a578491612fac575b50612f44578280f35b6020600491604051928380926309a69f5760e01b82525afa908115610960578391612f78575b50610928916105c691613722565b90506020813d602011612fa4575b81612f93602093836136e2565b810103126106935751610928612f6a565b3d9150612f86565b612fc5915060203d6020116109935761098581836136e2565b5f612f3b565b612fda9260e435908786614188565b5f8080612e53565b612fef9197505f906136e2565b5f955f612e4c565b6040513d5f823e3d90fd5b34610693575f3660031901126106935760206001600160a01b0360065416604051908152f35b34610693576020366003190112610693576004356001600160401b0381116106935761111861305d602092369060040161340a565b9061374f565b34610693575f36600319011261069357600460206001600160a01b03600d541660405192838092630be428a960e11b82525afa8015612ff7575f906130ae575b602090604051908152f35b506020813d6020116130d9575b816130c8602093836136e2565b8101031261069357602090516130a3565b3d91506130bb565b34610693576020366003190112610693576130fa613437565b6001600160a01b036009541690813303613179576001600160a01b031690811590811561316f575b50613160576001600160601b0360a01b600a541617600a5562015180420180421161314c57600b55005b634e487b7160e01b5f52601160045260245ffd5b6394aca82b60e01b5f5260045ffd5b9050811482613122565b636587b01b60e11b5f5260045ffd5b34610693576020366003190112610693576004356001600160401b038111610693576001600160a01b0360206131c38193369060040161340a565b91908260405193849283378101600c8152030190205416604051908152f35b34610693576020366003190112610693576004356001600160401b03811161069357613214602091369060040161340a565b5f916132208282613e91565b613238575b50506001600160a01b0360405191168152f35b6001600160a01b03925083908260405193849283378101600c81520301902054168280613225565b3461069357602036600319011261069357600435906001600160a01b0360095416330361317957600d5463280e32fb60e01b82526001600160a01b0316602082600481845afa918215612ff7575f926133d9575b506001600160a01b036040519263d4fac45d60e01b8452306004850152166024830152602082604481845afa918215612ff7575f926133a4575b506020600491604051928380926309a69f5760e01b82525afa908115612ff7575f91613372575b506113db01806113db1161314c57829161333461333a925f5490613722565b9061372f565b10801561336a575b61335b5760045562015180420180421161314c57600555005b630db73cdf60e41b5f5260045ffd5b508015613342565b90506020813d60201161339c575b8161338d602093836136e2565b81010312610693575183613315565b3d9150613380565b9091506020813d6020116133d1575b816133c0602093836136e2565b8101031261069357519060206132ee565b3d91506133b3565b6133fc91925060203d602011613403575b6133f481836136e2565b810190613703565b90836132b4565b503d6133ea565b9181601f84011215610693578235916001600160401b038311610693576020838186019501011161069357565b600435906001600160a01b038216820361069357565b606435906001600160a01b038216820361069357565b608435906001600160a01b038216820361069357565b34610693575f3660031901126106935760206111186138a0565b604060031982011261069357600435906001600160401b038211610693576134bd9160040161340a565b909160243590565b90610140600319830112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357816135059160040161340a565b92909291604435916064356001600160a01b038116810361069357916084356001600160a01b0381168103610693579160a4359160c4356001600160401b03811161069357816135579160040161340a565b9290929160e43591610104359161012435906001600160401b038211610693576135839160040161340a565b9091565b610120600319820112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357826135c69160040161340a565b929092916044356001600160a01b038116810361069357916064356001600160a01b038116810361069357916084359160a4356001600160401b03811161069357816136149160040161340a565b9290929160c4359160e4359161010435906001600160401b038211610693576135839160040161340a565b34610693576020366003190112610693576004356001600160401b0381116106935760026020612d0d8193369060040161340a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b038211176136b357604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176136b357604052565b90601f801991011681019081106001600160401b038211176136b357604052565b9081602091031261069357516001600160a01b03811681036106935790565b9190820180921161314c57565b9190820391821161314c57565b8181029291811591840414171561314c57565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f926137b7575b5081600a0291600a83040361314c578260206002926137b49560405193849283378101600c81520301902001549061373c565b90565b9091506020813d6020116137e3575b816137d3602093836136e2565b810103126106935751905f613781565b3d91506137c6565b908060209392818452848401375f828201840152601f01601f1916010190565b929360e0946001600160a01b036137b499979481809516875216602086015260408501521660608301526080820152600160a08201528160c082015201916137eb565b906138866021602093604051948591600160fe1b828401528051918291018484015e81015f838201520301601f1981018452836136e2565b565b90816020910312610693575180151581036106935790565b600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f916138e3575b5080600a0290600a82040361314c5790565b90506020813d60201161390d575b816138fe602093836136e2565b8101031261069357515f6138d1565b3d91506138f1565b60405190613922826136c7565b5f6040838281528260208201520152565b9291926001600160401b0382116136b3576040519161395c601f8201601f1916602001846136e2565b829481845281830111610693578281602093845f960137010152565b6001600160a01b03600d541690604051926309a69f5760e01b8452602084600481865afa938415612ff7575f94613a43575b5083600a0293600a85040361314c57600493600282602080956139e19560405193849283378101600c81520301902001549061373c565b91604051938480926309a69f5760e01b82525afa908115612ff7575f91613a0d575b6137b49250613722565b90506020823d602011613a3b575b81613a28602093836136e2565b81010312610693576137b4915190613a03565b3d9150613a1b565b9093506020813d602011613a6f575b81613a5f602093836136e2565b810103126106935751925f6139aa565b3d9150613a52565b90600182811c92168015613aa5575b6020831014613a9157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613a86565b5f5b828110613abd57505050565b5f82820155600101613ab1565b613ad48154613a77565b9081613ade575050565b81601f5f9311600114613aef575055565b81835260208320613b0c91601f0160051c84190190600101613aaf565b8082528160208120915555565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613ba9576001600160a01b0360405182848237602081848101600c815203019020541615918215613b84575b505015613b7f575f90565b600190565b600192506020908260405193849283378101600c815203019020015415155f80613b74565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f90565b91601f8211613bdc57505050565b808211613be857505050565b613886925f5260205f20916020601f830160051c9210613c13575b601f82910160051c039101613aaf565b5f9150613c03565b5f19811461314c5760010190565b905f91600160405183838237600c848201908152819003602001902001544211613e15576040518282823760208184810160018152030190205f8052602052600160405f200154613d27575b505080613c8a5750681b1ae4d6e2ef50000090565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f92613cf3575b506005810290810460050361314c576103e89004816207a12002916207a12083040361314c5781811115613cee575090565b905090565b9091506020813d602011613d1f575b81613d0f602093836136e2565b810103126106935751905f613cbc565b3d9150613d02565b5f5b600360405184848237602081868101600c8152030190200154811015613e0b57604051838382376020818581016001815203019020815f5260205242600160405f2001541180613dda575b613d81575b600101613d29565b604051838382376020818581016001815203019020815f5260205283600260405f2001541115613d79579250604051828282376020818481016001815203019020835f526020526001600260405f200154939050613d79565b50604051838382376020818581016001815203019020815f526020526001600160a01b0360405f2054161515613d74565b5050505f80613c75565b505050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613e5f575b50806207a12002906207a12082040361314c5790565b90506020813d602011613e89575b81613e7a602093836136e2565b8101031261069357515f613e49565b3d9150613e6d565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613f1c576001600160a01b0360405182848237602081848101600c815203019020541615918215613ef7575b505015613b7f575f80fd5b600192506020908260405193849283378101600c815203019020015415155f80613eec565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f80fd5b6001600160401b0381116136b35760051b60200190565b8051821015613f6c5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90600360405182848237600c8382019081528190036020019020015415613faa576137b491613c29565b5050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613ff4575b5060648102908082046064149015171561314c5790565b90506020813d60201161401e575b8161400f602093836136e2565b8101031261069357515f613fdd565b3d9150614002565b919060208061404f926040519481869284840198893782019083820152030180845201826136e2565b51902090565b91909182811461412f576140698354613a77565b6001600160401b0381116136b35761408b816140858454613a77565b84613bce565b5f93601f82116001146140c9576140ba92939482915f926140be5750508160011b915f199060031b1c19161790565b9055565b015490505f806121c0565b601f198216905f5260205f2094835f5260205f20915f5b818110614117575095836001959697106140ff575b505050811b019055565b01545f1960f88460031b161c191690555f80806140f5565b9192600180602092868b0154815501940192016140e0565b509050565b90600160405182848237602081848101600c8152030190200154155f1461415c575050600190565b60206001928260405193849283378101600c8152030190200154624f1a00810180911161314c57421190565b9192909493946001600160a01b03600d5416926040519463280e32fb60e01b8652602086600481885afa958615612ff7575f96614265575b50843b15610693576001600160a01b03975f9789958661424a948b976040519d8e9c8d9b8c9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528a6101648b015216606489015288608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b03925af18015612ff75761425b5750565b5f613886916136e2565b61427f91965060203d602011613403576133f481836136e2565b945f6141c0565b600d5460405163280e32fb60e01b815295966001600160a01b0390911694929390602087600481895afa968715612ff7575f97614347575b50853b15610693576001600160a01b03985f988a8a9661424a9582996040519e8f9d8e9c8d9b63487e5a7760e11b8d521660048c01523060248c015261016060448c01528b6101648c01521660648a0152608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b61436191975060203d602011613403576133f481836136e2565b955f6142be565b908151811015613f6c570160200190565b604051906143886080836136e2565b60428252602082016060368237825115613f6c5760309053815160011015613f6c57607860218301535f5b602081106143c057505090565b81811a90600482901c600f166010811015613f6c578160011b928284046002148315171561314c57836002018060021161314c57600f926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144189088614368565b5316916010831015613f6c576003018060031161314c576001926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144539086614368565b53016143b3565b600d5460405163280e32fb60e01b815292906001600160a01b0316602084600481845afa938415612ff7575f946144cf575b50803b156106935760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f9082908183816064810161424a565b6144e991945060203d602011613403576133f481836136e2565b925f61448c565b80516004811061455f5715613f6c576020810151614517906001600160f81b0319166145a4565b1561459f575f5b8151811015614598576001600160f81b031961453a8284614368565b5116600360fc1b8110159081614589575b501580614565575b61455f5760010161451e565b50505f90565b506145836001600160f81b031961457c8385614368565b51166145a4565b15614553565b603960f81b101590505f61454b565b5050600190565b505f90565b60ff60f81b16604160f81b81101590816145e2575b81156145c3575090565b606160f81b8110159150816145d6575090565b603d60f91b1015905090565b602d60f91b81111591506145b956fea26469706673582212200394b24bebc7e0da5e621acd9bc3d368bceba007a21ed83a6b3d974ef6028fef64736f6c63430008210033",sourceMap:"2765:56961:64:-:0;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;4691:11;2765:56961;;-1:-1:-1;;;;;;2765:56961:64;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;4735:5;2765:56961;;;;;;;;;;;;;;;4774:25;2765:56961;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;-1:-1:-1;2765:56961:64;;;;;-1:-1:-1;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081627802df14613260575080630c78d2c6146131e25780630d3dcb9f14613188578063147bf6c4146130e157806317c85152146130635780631f4131fb146130285780632096b7681461300257806322abdafa14612d2c57806322afca3814612cd757806324866f1514612c9b57806336e7a1b81461180057806343a82d6714612c0757806348ffba5514612b5c57806353462f82146127a257806354dc585d146127665780635548a76214612729578063570b245b146126ec5780635f94da09146123ea5780636b5bb1ca14611efa5780636e9960c3146123c35780637126b2a31461238757806371e604f814611f3b57806375dab53b14611eff5780637bd9da7a14611efa5780637d0d960814611c4357806386c8ac5814611c0757806388ecb91f14611bcb5780638ffe264e1461180557806399e7bac214611800578063a6ba51ca1461177c578063b0bf2e1014611349578063b19517dd1461115c578063bc91a42814611120578063bcd5a47c146110fe578063c97da33e14611086578063cf1dc14614611049578063d2234a1a14611024578063d7fd313414610e97578063e7849f6214610e44578063eba5e53e14610db4578063ebee75fc14610aac578063ecdc7aff146106f5578063f5e993f5146103cd578063f69c6dec14610387578063f6d0ecbe146102995763fe7ab68314610217575f80fd5b34610296576020366003190112610296576004356001600160401b0381116102945761024790369060040161340a565b829160015b15610262575b61025c8493613c1b565b9261024c565b604051828282376020818481016001815203019020838552602052600160408520015461025257602083604051908152f35b505b80fd5b50346102965760206102aa36613493565b92909182604051938492833781016002815203019020908252602052604081209060405191818154916102dc83613a77565b808652926001811690811561035d575060011461031c575b61031885610304818703826136e2565b604051918291602083526020830190613674565b0390f35b815260208120939250905b80821061034357509091508101602001610304826103186102f4565b919260018160209254838588010152019101909291610327565b8695506103189693506020925061030494915060ff191682840152151560051b82010192936102f4565b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36103bd366004860161340a565b90614134565b6040519015158152f35b503461029657806103dd366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b031693369061040792613933565b90604051809160208201936060855260808301600d905260a083016c3bb4ba34323930bba7b33332b960991b90526040830160a0905260c0830161044a91613674565b90606083015203601f198101825261046290826136e2565b51902092823b156106f1578b6104958896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576106cd575b5050604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b2054166001600160a01b038616036106be579061051994939291866106aa575b5050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b8154169055600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f578691610669575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69261031c6105cc950490613722565b613722565b3361445a565b6040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b825461372f565b815580f35b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b87526011600452602487fd5b90506020813d602011610697575b81610684602093836136e2565b8101031261069357515f610579565b5f80fd5b3d9150610677565b6040513d88823e3d90fd5b6106b5938786614188565b5f8080806104ec565b630504ed8560e21b8a5260048afd5b816106d7916136e2565b6106e257895f6104a4565b8980fd5b6040513d84823e3d90fd5b8680fd5b5034610296578061072b610708366134c5565b999b95929d949391978b9d8d929a9c6001600160a01b03600d5416933691613933565b8c610792604051809261077e602083019560608752601460808501527f72656d6f7665437573746f6d4d6574616461746100000000000000000000000060a085015260a0604085015260c0840190613674565b90606083015203601f1981018352826136e2565b51902092823b156106f157876107c58896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610a97575b50506001600160a01b03604051888a82376020818a8101600c81520301902054166001600160a01b03821603610a8857856002604051898b82376020818b8101600c81520301902001541115610a7957908861083b959493926108356138a0565b90614286565b80600260405184868237602081868101600c8152030190200154145f146109b95760029260209160405184838237838186810188815203019020908752825261088660408720613aca565b8260405193849283378101600c81520301902001805480156109a5575f190190556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a57849161096b575b506108e6578280f35b6020600491604051928380926309a69f5760e01b82525afa90811561096057839161092e575b508060050290600582040361064157610928916105c691613722565b5f808280f35b90506020813d602011610958575b81610949602093836136e2565b8101031261069357515f61090c565b3d915061093c565b6040513d85823e3d90fd5b61098d915060203d602011610993575b61098581836136e2565b810190613888565b5f6108dd565b503d61097b565b6040513d86823e3d90fd5b634e487b7160e01b84526011600452602484fd5b600260405183858237602081858101600c8152030190200154811015610a3457604051828482376020818481016002815203019020600182018083116106555790600192918752602052610a2e6040872060405185878237602081878101600281520301902083895260205260408820614055565b016109b9565b5060206002926040518382823782818581018781520301902084604051858482378481878101600c815203019020015487528252610a7460408720613aca565b610886565b630eda9c3d60e31b8a5260048afd5b6322de326160e11b8a5260048afd5b81610aa1916136e2565b6106e257895f6107d4565b50346102965780610abc36613587565b97988a9b99610ae3829e96939997959c6001600160a01b03600d9a969a5416933691613933565b604051610b3281610b24602082019460408652600d60608401526c72656e6577557365726e616d6560981b60808401526080604084015260a0830190613674565b03601f1981018352826136e2565b51902092823b156106f1578b610b658896928a9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657610d9b575b50506001600160a01b03604051898982376020818b8101600c81520301902054166001600160a01b03861603610d8c5760405188888237600c818a0190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d576001604051898982376020818b8101600c815203019020015463bbf81e00420190814211610d695711610d5a5790610c1c93929186610c158a8a613c29565b8097614286565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791610d30575b50610c8a575b5050509060206001928260405193849283378101600c815203019020018054906301e285008201809211610641575580f35b906020600492604051938480926309a69f5760e01b82525afa91821561069f578692610cfc575b50603281029080820460321490151715610ce8576105c66020936105c160019796946064610ce0950490613722565b91925f610c58565b634e487b7160e01b86526011600452602486fd5b9091506020813d602011610d28575b81610d18602093836136e2565b810103126106935751905f610cb1565b3d9150610d0b565b610d49915060203d6020116109935761098581836136e2565b5f610c52565b6040513d89823e3d90fd5b6356657c2160e01b8952600489fd5b634e487b7160e01b8b52601160045260248bfd5b631591d30560e11b8952600489fd5b6322de326160e11b8952600489fd5b81610da5916136e2565b610db057885f610b74565b8880fd5b50346102965780600319360112610296576001600160a01b03600a5416338103610e3557600b544210610e26578160408051610def816136c7565b83815282602082015201526001600160601b0360a01b60095416176009556001600160601b0360a01b600a5416600a5580600b5580f35b63018a18db60e51b8252600482fd5b632dba366760e21b8252600482fd5b50346102965780600319360112610296576001600160a01b0360095416803303610e88576005544210610e2657600454610e7d9161445a565b806004558060055580f35b636587b01b60e11b8252600482fd5b5034610296576020366003190112610296576004356001600160401b03811161029457610ec890369060040161340a565b600360405182848237602081848101600c815203019020015490610eeb82613f41565b91610ef960405193846136e2565b808352610f08601f1991613f41565b01845b81811061100d575050835b600360405183868237602081858101600c8152030190200154811015610f9f57600190604051838682376020818581018581520301902081875260205260408620600260405191610f66836136c7565b6001600160a01b03815416835284810154602084015201546040820152610f8d8286613f58565b52610f988185613f58565b5001610f16565b8285604051918291602083016020845282518091526020604085019301915b818110610fcc575050500390f35b919350916020606082610fff6001948851604080916001600160a01b038151168452602081015160208501520151910152565b019401910191849392610fbe565b602090611018613915565b82828701015201610f0b565b5034610296578060031936011261029657604060045460055482519182526020820152f35b50346102965780600319360112610296576001600160a01b0360095416330361107757806004558060055580f35b636587b01b60e11b8152600490fd5b503461029657602036600319011261029657600435906001600160401b03821161029657604060016110bb366004860161340a565b60206001600160a01b038594939451838682378281858101600c81520301902054169382865193849283378101600c815203019020015482519182526020820152f35b503461029657602061111861111236613493565b91614026565b604051908152f35b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611156366004860161340a565b90613f80565b5034610296576020366003190112610296576004356001600160401b0381116102945761118d90369060040161340a565b91600260405184848237602081868101600c8152030190200154926111b184613f41565b936111bf60405195866136e2565b8085526111ce601f1991613f41565b01825b818110611338575050815b600260405183868237602081858101600c81520301902001548110156112d1576040518285823760208184810160028152030190208184526020526040832060405190849080549061122d82613a77565b80855291600181169081156112aa5750600114611273575b505090611257816001949303826136e2565b6112618288613f58565b5261126c8187613f58565b50016111dc565b8652602086208692505b818310611294575050810160200161125782611245565b600181602092548386880101520192019161127d565b60ff191660208087019190915292151560051b850190920192506112579150839050611245565b84836040519182916020830160208452825180915260408401602060408360051b870101940192905b82821061130957505050500390f35b919360019193955060206113288192603f198a82030186528851613674565b96019201920185949391926112fa565b8060606020809389010152016111d1565b50346102965761016036600319011261029657611364613437565b6024356001600160401b0381116117785761138390369060040161340a565b61138b613463565b9260a435936001600160a01b03851685036117745760e4356001600160401b0381116106f1576113bf90369060040161340a565b91909587610144356001600160401b038111610294576113e390369060040161340a565b94909382996001600160a01b03600d54166113ff368b8d613933565b60405161145a8161143c602082019460808652600960a08401526836b0b5b2a7b33332b960b91b60c084015260c0604084015260e0830190613674565b6044356060830152606435608083015203601f1981018352826136e2565b519020813b156117745785809461148f8c978a96604051998a9889978896637d3d171560e11b885260c435936004890161380b565b03925af180156106e65761175b575b505060405185878237600c81870190815281900360200190206004015460f81b6001600160f81b031916600160f81b14801561174a575b61173b5742606435111561172c576044351561171d579061150692916101249794973590610104356044358a614286565b6040518284823760208184810160018152030190208186526020526001600160a01b03604086205416156115425761153d90613c1b565b611506565b926103e36044350260443581046103e303610ce8576103e89004906001600160a01b0360405191611572836136c7565b16815260026020820160643581526040830190848252604051868882376020818881016001815203019020888a526020526001600160a01b038060408b20955116166001600160601b0360a01b85541617845551600184015551910155600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa90811561069f5786916116eb575b50607d60443502906044358204607d0361065557602096926116396105c661164d946105c161164695620186a061010435930490613722565b6103206044350490613722565b8254613722565b90556003604051828482378581848101600c815203019020015483115f1461169b57836003928260405193849283378101600c815203019020016116918154613c1b565b9055604051908152f35b6003604051828482378581848101600c8152030190200154156116c0575b5050611118565b836003928260405193849283378101600c815203019020016116e28154613c1b565b90555f806116b9565b90506020813d602011611715575b81611706602093836136e2565b8101031261069357515f611600565b3d91506116f9565b635e85ae7360e01b8852600488fd5b632cce8b5d60e21b8852600488fd5b630a1de65160e31b8852600488fd5b506117558587613b19565b156114d5565b81611765916136e2565b61177057875f61149e565b8780fd5b8580fd5b8280fd5b503461029657602036600319011261029657611796613437565b6001600160a01b03600954163303610e88576001600160a01b031680156117f1576001600160601b0360a01b60075416176007556201518042018042116117dd5760085580f35b634e487b7160e01b82526011600452602482fd5b63203e99b760e21b8252600482fd5b613479565b50346102965761183b90611818366134c5565b979195939096948b9e8b9d9c6001600160a01b03600d9d969d5416953691613933565b60405161188d818d61077e602083019560608752601460808501527f726567697374726174696f6e557365726e616d6500000000000000000000000060a085015260a0604085015260c0840190613674565b51902094843b15611bc7578c8f95936118c3908998969488946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af18015611bbc57908a91611ba7575b50506001600160a01b0360095416966001600160a01b0381168098141580611b8d575b611b7e57611906898c614134565b15611b6f57936119309361193a96936119299389611935988f8e61083591613f80565b8689614026565b614379565b61384e565b9160405193816001600160a01b0385519660208181890199808b835e8101600c815203019020541614801590611b4d575b611b3e576301e2850042018042116106555791869760049288946040519361199285613698565b8452602084019081526001600160a01b03806040860193888552602060608801968a8852608089019a8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611b1f575b50611a79575b5050906020600492604051928391518091835e8101600c815203019020828155826001820155826002820155826003820155015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611ae2575b5080603202906032820403611ace57600492611ac76105c6879694602094613722565b9192611a42565b634e487b7160e01b85526011600452602485fd5b90506020813d602011611b0c575b81611afd602093836136e2565b8101031261069357515f611aa4565b3d9150611af0565b6040513d87823e3d90fd5b611b38915060203d6020116109935761098581836136e2565b5f611a3c565b6321efd8cf60e11b8652600486fd5b5060016040516020818751808a835e8101600c8152030190200154421061196b565b633efbb39b60e11b8a5260048afd5b630a1de65160e31b8a5260048afd5b50611ba1611b9c368b8e613933565b6144f0565b156118f8565b81611bb1916136e2565b610db057885f6118d5565b6040513d8c823e3d90fd5b8e80fd5b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600a5416600a5580600b5580f35b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c3611c3d366004860161340a565b90613e91565b50346102965780611c5336613587565b98809b95939c949198611c788c6001600160a01b03600d9b9a969b5416933691613933565b604051611cbf81610b246020820194604086526013606084015272666c757368437573746f6d4d6574616461746160681b60808401526080604084015260a0830190613674565b51902092823b156106f15787611cf28896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657611ee5575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576002604051888882376020818a8101600c815203019020015415611ed6579087611d6295949392610835898961374f565b835b84600260405185858237602081878101600c8152030190200154821015611db65750600190604051848482376020818681016002815203019020818752602052611db060408720613aca565b01611d64565b9390506001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561069f578691611eb7575b50611e15575b50509060206002928260405193849283378101600c815203019020015580f35b60049192939450602090604051928380926309a69f5760e01b82525afa908115611b14578591611e85575b5080600502906005820403611ace57600292611e7e6105c68796946105c1602095886040518988823788818b8101600c81520301902001549061373c565b9192611df5565b90506020813d602011611eaf575b81611ea0602093836136e2565b8101031261069357515f611e40565b3d9150611e93565b611ed0915060203d6020116109935761098581836136e2565b5f611def565b6334b7a09160e01b8952600489fd5b81611eef916136e2565b610db057885f611d01565b61363f565b503461029657602036600319011261029657600435906001600160401b038211610296576020611118611f35366004860161340a565b90613c29565b50346102965761014036600319011261029657611f56613437565b6024356001600160401b03811161177857611f7590369060040161340a565b916044356001600160401b03811161238357611f9590369060040161340a565b9091611f9f61344d565b611fa7613463565b9060c4356001600160401b038111610db057611fc790369060040161340a565b9390928960e4359561012435946001600160401b03861161177857612019968c8a610b246120778f9a8f61200261202192369060040161340a565b9e909d6001600160a01b03600d5416973691613933565b943691613933565b6040519283916120656020840196606088526011608086015270616464437573746f6d4d6574616461746160781b60a086015260a0604086015260c0850190613674565b838103601f1901606085015290613674565b519020813b15611774578580946120ac8a978a96604051998a9889978896637d3d171560e11b885260a435936004890161380b565b03925af180156106e65761236e575b50506001600160a01b036040518a8a82376020818c8101600c81520301902054166001600160a01b03831603610a8857851561235f57906121069392918561010435926108356138a0565b6001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115612354578891612335575b50612283575b5050604051848482376020818681016002815203019020600260405186868237602081888101600c8152030190200154865260205260408520916001600160401b03821161226f5761219e826121988554613a77565b85613bce565b8590601f831160011461220557826002969593602095936121d4938a926121fa575b50508160011b915f199060031b1c19161790565b90555b8260405193849283378101600c815203019020016121f58154613c1b565b905580f35b013590505f806121c0565b8387526020872091601f198416885b81811061225757509260019285926002999896602098961061223e575b505050811b0190556121d7565b01355f19600384901b60f8161c191690555f8080612231565b91936020600181928787013581550195019201612214565b634e487b7160e01b86526041600452602486fd5b6020600491604051928380926309a69f5760e01b82525afa908115610d4f578791612303575b5080600502906005820403610655576122c06138a0565b6032810290808204603214901517156122ef57916105c16105c69260646122e8950490613722565b5f80612142565b634e487b7160e01b88526011600452602488fd5b90506020813d60201161232d575b8161231e602093836136e2565b8101031261069357515f6122a9565b3d9150612311565b61234e915060203d6020116109935761098581836136e2565b5f61213c565b6040513d8a823e3d90fd5b6334b7a09160e01b8a5260048afd5b81612378916136e2565b6106e257895f6120bb565b8480fd5b503461029657602036600319011261029657600435906001600160401b0382116102965760206103c36123bd366004860161340a565b90613b19565b503461029657806003193601126102965760206001600160a01b0360095416604051908152f35b503461029657806123fa36613587565b98809b95939c94919861241f8c6001600160a01b03600d9b9a969b5416933691613933565b60405161246081610b24602082019460408652600d60608401526c666c757368557365726e616d6560981b60808401526080604084015260a0830190613674565b51902092823b156106f157876124938896928b9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e6576126d7575b50506001600160a01b03604051888882376020818a8101600c81520301902054166001600160a01b03821603610d8c576001604051888882376020818a8101600c81520301902001544210156126c85760405187878237600c81890190815281900360200190206004015460f81b6001600160f81b031916600160f81b14610d7d579087612537959493926108358989613978565b835b600260405184848237602081868101600c81520301902001548110156125895760019060405184848237602081868101600281520301902081875260205261258360408720613aca565b01612539565b5091600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115611b14578591612696575b5080600502906005820403611ace576105c6600493926105c16125f8936002604051878a8237602081898101600c81520301902001549061373c565b600360405182858237602081848101600c81520301902001546040519161261e83613698565b858352602083018681526001600160a01b0380604086019389855260608701958652602060808801998b8b528260405193849283378101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff1982541617905580f35b90506020813d6020116126c0575b816126b1602093836136e2565b8101031261069357515f6125bc565b3d91506126a4565b637d3b450560e11b8952600489fd5b816126e1916136e2565b610db057885f6124a2565b5034610296578060031936011261029657600654600754600854604080516001600160a01b03948516815293909216602084015290820152606090f35b5034610296578060031936011261029657600954600a54600b54604080516001600160a01b03948516815293909216602084015290820152606090f35b503461029657602036600319011261029657600435906001600160401b03821161029657602061111861279c366004860161340a565b90613978565b503461029657806127b2366134c5565b9697998b9d9491969295939a8a829d9b9e9b600d546001600160a01b03169336906127dc92613933565b90604051809160208201936060855260808301600b905260a083016a30b1b1b2b83a27b33332b960a91b90526040830160a0905260c0830161281d91613674565b90606083015203601f198101825261283590826136e2565b51902092823b156106f1578b6128688896928d9888946040519a8b998a988997637d3d171560e11b89526004890161380b565b03925af180156106e657612b47575b50506001600160a01b03604051888b82376020818a8101600c81520301902054166001600160a01b03861603610a8857604051878a82376020818981016001815203019020888b526020526001600160a01b0360408b205416158015612b1c575b612b0d579061291694939291866106aa575050505060405184878237602081868101600181520301902085885260205260026040882001549061445a565b6040518285823760208184810160018152030190208386526020526001600160a01b036040862054166001600160a01b0360405184878237602081868101600c81520301902091166001600160601b0360a01b825416179055604051828582376020818481016001815203019020838652602052604085206001600160601b0360a01b81541690556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa908115610d4f578791612aee575b50612a45575b50506040518184823760208183810160018152030190208285526020526020600260408620015493826040519384928337810160018152030190209083526020526002604083200154808004600114811517156106415761063c9160c7610635920460021c90613722565b6020600491604051928380926309a69f5760e01b82525afa90811561069f578691612abc575b5060405183868237602081858101600181520301902084875260205260026040872001548080046001148115171561065557916105c16105c69260c7612ab5950460021c90613722565b5f806129da565b90506020813d602011612ae6575b81612ad7602093836136e2565b8101031261069357515f612a6b565b3d9150612aca565b612b07915060203d6020116109935761098581836136e2565b5f6129d4565b631388464960e01b8a5260048afd5b50604051878a82376020818981016001815203019020888b52602052600160408b20015442116128d8565b81612b51916136e2565b6106e257895f612877565b50346102965780600319360112610296576001600160a01b03600954163303611077576008544210612bf8576001600160a01b03600754168160408051612ba2816136c7565b83815282602082015201526001600160601b0360a01b60065416176006556001600160601b0360a01b60075416600755806008556001600160a01b03600654166001600160601b0360a01b600d541617600d5580f35b63018a18db60e51b8152600490fd5b50346102965760406060916020612c1d36613493565b929091612c28613915565b5082865193849283378101600181520301902090825260205220600260405191612c51836136c7565b6001600160a01b0381541683526001810154602084015201546040820152612c996040518092604080916001600160a01b038151168452602081015160208501520151910152565bf35b50346102965780600319360112610296576001600160a01b03600954163303611077576001600160601b0360a01b600754166007558060085580f35b503461029657602036600319011261029657600435906001600160401b038211610296576020600181612d0d366004870161340a565b91908260405193849283378101600c8152030190200154604051908152f35b50346106935761012036600319011261069357612d47613437565b602435604435916001600160a01b038316830361069357612d6661344d565b60a4356001600160401b03811161069357612d8590369060040161340a565b949060c43595610104356001600160401b03811161069357612dab90369060040161340a565b9390926001600160a01b03600d5416604051602081019060408252601760608201527f707265526567697374726174696f6e557365726e616d6500000000000000000060808201528a604082015260808152612e0860a0826136e2565b519020813b15610693575f8094612e3d8b978b96604051998a9889978896637d3d171560e11b8852608435936004890161380b565b03925af18015612ff757612fe2575b5085612fcb575b5050506107084201804211611ace57906004916001600160a01b0360405192612e7b84613698565b168252602082019081526040820186815260608301918783526001600160a01b0380602080612eb761193560808a019b600160f81b8d52614379565b604051928184925191829101835e8101600c815203019020955116166001600160601b0360a01b85541617845551600184015551600283015551600382015501905160f81c60ff198254161790556001600160a01b03600d5416604051630a1ad2d160e21b8152336004820152602081602481855afa90811561099a578491612fac575b50612f44578280f35b6020600491604051928380926309a69f5760e01b82525afa908115610960578391612f78575b50610928916105c691613722565b90506020813d602011612fa4575b81612f93602093836136e2565b810103126106935751610928612f6a565b3d9150612f86565b612fc5915060203d6020116109935761098581836136e2565b5f612f3b565b612fda9260e435908786614188565b5f8080612e53565b612fef9197505f906136e2565b5f955f612e4c565b6040513d5f823e3d90fd5b34610693575f3660031901126106935760206001600160a01b0360065416604051908152f35b34610693576020366003190112610693576004356001600160401b0381116106935761111861305d602092369060040161340a565b9061374f565b34610693575f36600319011261069357600460206001600160a01b03600d541660405192838092630be428a960e11b82525afa8015612ff7575f906130ae575b602090604051908152f35b506020813d6020116130d9575b816130c8602093836136e2565b8101031261069357602090516130a3565b3d91506130bb565b34610693576020366003190112610693576130fa613437565b6001600160a01b036009541690813303613179576001600160a01b031690811590811561316f575b50613160576001600160601b0360a01b600a541617600a5562015180420180421161314c57600b55005b634e487b7160e01b5f52601160045260245ffd5b6394aca82b60e01b5f5260045ffd5b9050811482613122565b636587b01b60e11b5f5260045ffd5b34610693576020366003190112610693576004356001600160401b038111610693576001600160a01b0360206131c38193369060040161340a565b91908260405193849283378101600c8152030190205416604051908152f35b34610693576020366003190112610693576004356001600160401b03811161069357613214602091369060040161340a565b5f916132208282613e91565b613238575b50506001600160a01b0360405191168152f35b6001600160a01b03925083908260405193849283378101600c81520301902054168280613225565b3461069357602036600319011261069357600435906001600160a01b0360095416330361317957600d5463280e32fb60e01b82526001600160a01b0316602082600481845afa918215612ff7575f926133d9575b506001600160a01b036040519263d4fac45d60e01b8452306004850152166024830152602082604481845afa918215612ff7575f926133a4575b506020600491604051928380926309a69f5760e01b82525afa908115612ff7575f91613372575b506113db01806113db1161314c57829161333461333a925f5490613722565b9061372f565b10801561336a575b61335b5760045562015180420180421161314c57600555005b630db73cdf60e41b5f5260045ffd5b508015613342565b90506020813d60201161339c575b8161338d602093836136e2565b81010312610693575183613315565b3d9150613380565b9091506020813d6020116133d1575b816133c0602093836136e2565b8101031261069357519060206132ee565b3d91506133b3565b6133fc91925060203d602011613403575b6133f481836136e2565b810190613703565b90836132b4565b503d6133ea565b9181601f84011215610693578235916001600160401b038311610693576020838186019501011161069357565b600435906001600160a01b038216820361069357565b606435906001600160a01b038216820361069357565b608435906001600160a01b038216820361069357565b34610693575f3660031901126106935760206111186138a0565b604060031982011261069357600435906001600160401b038211610693576134bd9160040161340a565b909160243590565b90610140600319830112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357816135059160040161340a565b92909291604435916064356001600160a01b038116810361069357916084356001600160a01b0381168103610693579160a4359160c4356001600160401b03811161069357816135579160040161340a565b9290929160e43591610104359161012435906001600160401b038211610693576135839160040161340a565b9091565b610120600319820112610693576004356001600160a01b038116810361069357916024356001600160401b03811161069357826135c69160040161340a565b929092916044356001600160a01b038116810361069357916064356001600160a01b038116810361069357916084359160a4356001600160401b03811161069357816136149160040161340a565b9290929160c4359160e4359161010435906001600160401b038211610693576135839160040161340a565b34610693576020366003190112610693576004356001600160401b0381116106935760026020612d0d8193369060040161340a565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b038211176136b357604052565b634e487b7160e01b5f52604160045260245ffd5b606081019081106001600160401b038211176136b357604052565b90601f801991011681019081106001600160401b038211176136b357604052565b9081602091031261069357516001600160a01b03811681036106935790565b9190820180921161314c57565b9190820391821161314c57565b8181029291811591840414171561314c57565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f926137b7575b5081600a0291600a83040361314c578260206002926137b49560405193849283378101600c81520301902001549061373c565b90565b9091506020813d6020116137e3575b816137d3602093836136e2565b810103126106935751905f613781565b3d91506137c6565b908060209392818452848401375f828201840152601f01601f1916010190565b929360e0946001600160a01b036137b499979481809516875216602086015260408501521660608301526080820152600160a08201528160c082015201916137eb565b906138866021602093604051948591600160fe1b828401528051918291018484015e81015f838201520301601f1981018452836136e2565b565b90816020910312610693575180151581036106935790565b600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f916138e3575b5080600a0290600a82040361314c5790565b90506020813d60201161390d575b816138fe602093836136e2565b8101031261069357515f6138d1565b3d91506138f1565b60405190613922826136c7565b5f6040838281528260208201520152565b9291926001600160401b0382116136b3576040519161395c601f8201601f1916602001846136e2565b829481845281830111610693578281602093845f960137010152565b6001600160a01b03600d541690604051926309a69f5760e01b8452602084600481865afa938415612ff7575f94613a43575b5083600a0293600a85040361314c57600493600282602080956139e19560405193849283378101600c81520301902001549061373c565b91604051938480926309a69f5760e01b82525afa908115612ff7575f91613a0d575b6137b49250613722565b90506020823d602011613a3b575b81613a28602093836136e2565b81010312610693576137b4915190613a03565b3d9150613a1b565b9093506020813d602011613a6f575b81613a5f602093836136e2565b810103126106935751925f6139aa565b3d9150613a52565b90600182811c92168015613aa5575b6020831014613a9157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613a86565b5f5b828110613abd57505050565b5f82820155600101613ab1565b613ad48154613a77565b9081613ade575050565b81601f5f9311600114613aef575055565b81835260208320613b0c91601f0160051c84190190600101613aaf565b8082528160208120915555565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613ba9576001600160a01b0360405182848237602081848101600c815203019020541615918215613b84575b505015613b7f575f90565b600190565b600192506020908260405193849283378101600c815203019020015415155f80613b74565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f90565b91601f8211613bdc57505050565b808211613be857505050565b613886925f5260205f20916020601f830160051c9210613c13575b601f82910160051c039101613aaf565b5f9150613c03565b5f19811461314c5760010190565b905f91600160405183838237600c848201908152819003602001902001544211613e15576040518282823760208184810160018152030190205f8052602052600160405f200154613d27575b505080613c8a5750681b1ae4d6e2ef50000090565b60049060206001600160a01b03600d5416604051938480926309a69f5760e01b82525afa918215612ff7575f92613cf3575b506005810290810460050361314c576103e89004816207a12002916207a12083040361314c5781811115613cee575090565b905090565b9091506020813d602011613d1f575b81613d0f602093836136e2565b810103126106935751905f613cbc565b3d9150613d02565b5f5b600360405184848237602081868101600c8152030190200154811015613e0b57604051838382376020818581016001815203019020815f5260205242600160405f2001541180613dda575b613d81575b600101613d29565b604051838382376020818581016001815203019020815f5260205283600260405f2001541115613d79579250604051828282376020818481016001815203019020835f526020526001600260405f200154939050613d79565b50604051838382376020818581016001815203019020815f526020526001600160a01b0360405f2054161515613d74565b5050505f80613c75565b505050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613e5f575b50806207a12002906207a12082040361314c5790565b90506020813d602011613e89575b81613e7a602093836136e2565b8101031261069357515f613e49565b3d9150613e6d565b9060405181838237600c81830190815281900360200190206004015460f81b6001600160f81b031916600160f81b03613f1c576001600160a01b0360405182848237602081848101600c815203019020541615918215613ef7575b505015613b7f575f80fd5b600192506020908260405193849283378101600c815203019020015415155f80613eec565b60206001928260405193849283378101600c8152030190200154155f14613b7f575f80fd5b6001600160401b0381116136b35760051b60200190565b8051821015613f6c5760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b90600360405182848237600c8382019081528190036020019020015415613faa576137b491613c29565b5050600460206001600160a01b03600d5416604051928380926309a69f5760e01b82525afa908115612ff7575f91613ff4575b5060648102908082046064149015171561314c5790565b90506020813d60201161401e575b8161400f602093836136e2565b8101031261069357515f613fdd565b3d9150614002565b919060208061404f926040519481869284840198893782019083820152030180845201826136e2565b51902090565b91909182811461412f576140698354613a77565b6001600160401b0381116136b35761408b816140858454613a77565b84613bce565b5f93601f82116001146140c9576140ba92939482915f926140be5750508160011b915f199060031b1c19161790565b9055565b015490505f806121c0565b601f198216905f5260205f2094835f5260205f20915f5b818110614117575095836001959697106140ff575b505050811b019055565b01545f1960f88460031b161c191690555f80806140f5565b9192600180602092868b0154815501940192016140e0565b509050565b90600160405182848237602081848101600c8152030190200154155f1461415c575050600190565b60206001928260405193849283378101600c8152030190200154624f1a00810180911161314c57421190565b9192909493946001600160a01b03600d5416926040519463280e32fb60e01b8652602086600481885afa958615612ff7575f96614265575b50843b15610693576001600160a01b03975f9789958661424a948b976040519d8e9c8d9b8c9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528a6101648b015216606489015288608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b03925af18015612ff75761425b5750565b5f613886916136e2565b61427f91965060203d602011613403576133f481836136e2565b945f6141c0565b600d5460405163280e32fb60e01b815295966001600160a01b0390911694929390602087600481895afa968715612ff7575f97614347575b50853b15610693576001600160a01b03985f988a8a9661424a9582996040519e8f9d8e9c8d9b63487e5a7760e11b8d521660048c01523060248c015261016060448c01528b6101648c01521660648a0152608489015260a48801523060c48801521660e486015261010485015260016101248501526101806101448501526101848401916137eb565b61436191975060203d602011613403576133f481836136e2565b955f6142be565b908151811015613f6c570160200190565b604051906143886080836136e2565b60428252602082016060368237825115613f6c5760309053815160011015613f6c57607860218301535f5b602081106143c057505090565b81811a90600482901c600f166010811015613f6c578160011b928284046002148315171561314c57836002018060021161314c57600f926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144189088614368565b5316916010831015613f6c576003018060031161314c576001926f181899199a1a9b1b9c1cb0b131b232b360811b901a906144539086614368565b53016143b3565b600d5460405163280e32fb60e01b815292906001600160a01b0316602084600481845afa938415612ff7575f946144cf575b50803b156106935760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f9082908183816064810161424a565b6144e991945060203d602011613403576133f481836136e2565b925f61448c565b80516004811061455f5715613f6c576020810151614517906001600160f81b0319166145a4565b1561459f575f5b8151811015614598576001600160f81b031961453a8284614368565b5116600360fc1b8110159081614589575b501580614565575b61455f5760010161451e565b50505f90565b506145836001600160f81b031961457c8385614368565b51166145a4565b15614553565b603960f81b101590505f61454b565b5050600190565b505f90565b60ff60f81b16604160f81b81101590816145e2575b81156145c3575090565b606160f81b8110159150816145d6575090565b603d60f91b1015905090565b602d60f91b81111591506145b956fea26469706673582212200394b24bebc7e0da5e621acd9bc3d368bceba007a21ed83a6b3d974ef6028fef64736f6c63430008210033",sourceMap:"2765:56961:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;58625:16;2765:56961;58625:16;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;55200:14;55226:99;;;;;;;55243:8;55270:53;55243:8;;:::i;:::-;55226:99;;;;2765:56961;;;;;;;;;;;55226:99;2765:56961;;;;;;;;;;;55226:99;2765:56961;;;55270:48;2765:56961;55226:99;55270:53;2765:56961;55270:53;2765:56961;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;52839:22;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14764:4;2765:56961;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::i;:::-;;;;2933:46:101;;;;;2765:56961:64;;;;;;;14764:4;2765:56961;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;;;2933:46:101;2765:56961:64;;2933:46:101;;;;;;;;:::i;:::-;2765:56961:64;2923:57:101;;14764:234:64;;;;;;2765:56961;14764:234;2765:56961;;;;;;;;;;;;;;;;;;;14764:234;;2765:56961;14764:234;;;:::i;:::-;;;;;;;;;;;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;-1:-1:-1;;;;;2765:56961:64;;;;;-1:-1:-1;;;;;2765:56961:64;;15013:49;15009:103;;15127:18;15371:40;15127:18;;;;;15123:221;;2765:56961;;;;;;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;15371:40;2765:56961;;;15371:40;2765:56961;15371:40;;:::i;:::-;2765:56961;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;2933:46:101;-1:-1:-1;;;;;14764:4:64;2765:56961;;;;;;;;;;;15535:22;;;;;;;;;;;;;2765:56961;;;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;15371:40;2765:56961;;;15578:40;2765:56961;;;;14961:4;2765:56961;;;;;;;;15535:95;:128;2765:56961;15626:3;15535:128;2765:56961;;15535:95;;:::i;:::-;:128;:::i;:::-;15511:10;15535:128;:::i;:::-;2765:56961;;;;;;2933:46:101;2765:56961:64;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;2933:46:101;15371:40:64;2765:56961;;;15743:40;2765:56961;;;;;;;;;;;;14961:4;2765:56961;;;;;;;;;2933:46:101;2765:56961:64;15371:40;2765:56961;;;15802:40;2765:56961;;;;14961:4;2765:56961;;;;;;;15684:175;2765:56961;15850:3;15742:117;2765:56961;;15371:40;2765:56961;15742:117;;:::i;:::-;2765:56961;;15684:175;:::i;:::-;2765:56961;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;15535:22;;;2933:46:101;15535:22:64;;2933:46:101;15535:22:64;;;;;;2765:56961;15535:22;;;:::i;:::-;;;2765:56961;;;;;15535:22;;;2765:56961;-1:-1:-1;2765:56961:64;;15535:22;;;-1:-1:-1;15535:22:64;;;2765:56961;;;;;;;;;15123:221;15159:185;;;;;:::i;:::-;15123:221;;;;;;15009:103;-1:-1:-1;;;15083:29:64;;2765:56961;15083:29;;14764:234;;;;;:::i;:::-;2765:56961;;14764:234;;;;2765:56961;;;;14764:234;2765:56961;;;;;;;;;14764:234;2765:56961;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27542:4:64;2765:56961;;;;;;:::i;:::-;;4916:49:101;2765:56961:64;;4916:49:101;;2765:56961:64;4916:49:101;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;4916:49:101;2765:56961:64;;4916:49:101;;;;;;:::i;:::-;2765:56961:64;4906:60:101;;27542:237:64;;;;;;2765:56961;27542:237;2765:56961;;;;;;;;;;;;;;;;;;;27542:237;;2765:56961;27542:237;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;27794:39;27790:96;;2765:56961;27901:48;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;27901:48;2765:56961;27901:55;;27897:98;;28048:32;;28172:12;28048:32;;;;;;:::i;:::-;28172:12;;:::i;:::-;2765:56961;27901:48;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;28209:48;2765:56961;28209:55;28205:584;28209:55;;;27901:48;2765:56961;4916:49:101;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;28280:44;2765:56961;;;28280:44;:::i;:::-;2765:56961;;;;;;;;;;27794:15;2765:56961;;;;;;28799:48;2765:56961;;;;;;;;;;;-1:-1:-1;;;;;27542:4:64;2765:56961;;;;;;;28864:32;;28885:10;2765:56961;28864:32;;2765:56961;4916:49:101;28864:32:64;;;;;;;;;;;;;;;28205:584;28860:164;;;2765:56961;;;28860:164;4916:49:101;2765:56961:64;;;;;;;;;;;28970:22;;;;;;;;;;;;;28860:164;2765:56961;;28966:1;2765:56961;;28966:1;2765:56961;;;;;28965:45;;;;;:::i;:::-;28860:164;;2765:56961;;;28970:22;;;4916:49:101;28970:22:64;;4916:49:101;28970:22:64;;;;;;2765:56961;28970:22;;;:::i;:::-;;;2765:56961;;;;;28970:22;;;;;;-1:-1:-1;28970:22:64;;;2765:56961;;;;;;;;;28864:32;;;;4916:49:101;28864:32:64;4916:49:101;28864:32:64;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2765:56961;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;28205:584;27901:48;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27794:15;2765:56961;;;;;;28414:48;2765:56961;28410:52;;;;;2765:56961;;;;;;4916:49:101;2765:56961:64;;;;27901:48;2765:56961;;;;;;27742:4;2765:56961;;;;;;;;27742:4;2765:56961;;;;4916:49:101;2765:56961:64;;;;;;;;;;;4916:49:101;2765:56961:64;;;;27901:48;2765:56961;;;;;;;;;4916:49:101;2765:56961:64;;;;;:::i;:::-;;28377:15;;28410:52;;4916:49:101;27901:48:64;28410:52;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27794:15;2765:56961;;;;;;28716:48;2765:56961;;;;;28659:119;2765:56961;;;28659:119;:::i;:::-;28205:584;;27897:98;-1:-1:-1;;;27977:18:64;;2765:56961;27977:18;;27790:96;-1:-1:-1;;;27854:32:64;;2765:56961;18329:32;27854;27542:237;;;;;:::i;:::-;2765:56961;;27542:237;;;;2765:56961;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;21249:4:64;2765:56961;;;;;;;;;:::i;:::-;;;3884:37:101;;2765:56961:64;3884:37:101;;;2765:56961:64;;;;21249:4;2765:56961;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;3884:37:101;2765:56961:64;;3884:37:101;;;;;;:::i;:::-;2765:56961:64;3874:48:101;;21249:225:64;;;;;;2765:56961;21249:225;2765:56961;;;;;;;;;;;;;;;;;;;21249:225;;2765:56961;21249:225;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;3884:37:101;2765:56961:64;;;;21489:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;21489:39;21485:96;;2765:56961;;;;;;21489:15;2765:56961;;;;;;;;;3884:37:101;2765:56961:64;;;;21596:42;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;21596:50:64;21592:105;;21437:4;2765:56961;;;;;;3884:37:101;2765:56961:64;;;;21489:15;2765:56961;;;;;;21725:40;2765:56961;21798:10;21780:15;2765:56961;21780:15;;;2765:56961;;;21725:83;21708:150;;21892:25;22074:12;21892:25;;;;;;;;:::i;:::-;22074:12;;;:::i;:::-;-1:-1:-1;;;;;21249:4:64;2765:56961;;;;;;;22111:32;;22132:10;2765:56961;22111:32;;2765:56961;3884:37:101;22111:32:64;;;;;;;;;;;;;;;2765:56961;22107:241;;;2765:56961;;;;;3884:37:101;21437:4:64;2765:56961;;;;;;;;;;;21489:15;2765:56961;;;;;;22358:40;2765:56961;;;22402:8;2765:56961;;;;;;;;;;22107:241;2765:56961;3884:37:101;2765:56961:64;;;;;;;;;;;22214:22;;;;;;;;;;;;;22107:241;2765:56961;22276:2;2765:56961;;;;;;22276:2;2765:56961;;;;;;;22214:109;3884:37:101;2765:56961:64;22214:72;21437:4;2765:56961;;;22282:3;22214:109;2765:56961;;22214:72;;:::i;:109::-;22107:241;;;;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;22111:32;2765:56961;;22214:22;;;;3884:37:101;22214:22:64;;3884:37:101;22214:22:64;;;;;;2765:56961;22214:22;;;:::i;:::-;;;2765:56961;;;;;22214:22;;;;;;;-1:-1:-1;22214:22:64;;22111:32;;;;3884:37:101;22111:32:64;3884:37:101;22111:32:64;;;;;;;:::i;:::-;;;;;2765:56961;;;;;;;;;21708:150;-1:-1:-1;;;21826:32:64;;2765:56961;21826:32;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;;;;21592:105;-1:-1:-1;;;21667:30:64;;2765:56961;34621:30;21667;21485:96;-1:-1:-1;;;21549:32:64;;2765:56961;18329:32;21549;21249:225;;;;;:::i;:::-;2765:56961;;21249:225;;;;2765:56961;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;36800:14:64;2765:56961;;36818:10;36800:28;;36796:85;;36914:18;2765:56961;36896:15;:36;36892:87;;2765:56961;;;;;;;:::i;:::-;;;;36998:147;;;;2765:56961;36998:147;2765:56961;-1:-1:-1;;;;;2765:56961:64;;36800:5;2765:56961;;;36800:5;2765:56961;-1:-1:-1;;;;;2765:56961:64;;36800:14;2765:56961;;36800:14;2765:56961;;36914:18;2765:56961;;;36892:87;-1:-1:-1;;;36953:26:64;;2765:56961;39858:26;36953;36796:85;-1:-1:-1;;;36849:32:64;;2765:56961;36849:32;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;;:27;4042:64;;38524:35;2765:56961;38506:15;:53;38502:104;;2765:56961;;38642:31;;;:::i;:::-;2765:56961;;;;38524:35;2765:56961;;;4042:64;-1:-1:-1;;;4082:24:64;;2765:56961;4082:24;;2765:56961;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;54060:40;2765:56961;;;;;;;;;;;54060:15;2765:56961;;;;;;54060:40;2765:56961;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;54126:13;;;54187:3;54060:40;2765:56961;;;;;;;;;;;54060:15;2765:56961;;;;;;54145:40;2765:56961;54141:44;;;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;54206:40;;;;:::i;:::-;;;;;;:::i;:::-;;2765:56961;54126:13;;54141:44;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;58291:35;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;2765:56961;;;;38250:35;2765:56961;;;4042:64;-1:-1:-1;;;4082:24:64;;2765:56961;;4082:24;2765:56961;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;51081:41;2765:56961;;;;;;:::i;:::-;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;51035:15;2765:56961;;;;;;;;;;;;;;;;;;;51035:15;2765:56961;;;;;;51081:41;2765:56961;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;52043:49;2765:56961;;;;;;;;;;;52043:15;2765:56961;;;;;;52043:49;2765:56961;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;52130:13;;;52224:3;52043:49;2765:56961;;;;;;;;;;;52043:15;2765:56961;;;;;;52161:49;2765:56961;52157:53;;;;;2765:56961;;;;;;;;;;;52043:49;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;52252:57;;;;:::i;:::-;;;;;;:::i;:::-;;2765:56961;52130:13;;2765:56961;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;52157:53;;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;11231:15;2765:56961;-1:-1:-1;;;;;11258:4:64;2765:56961;;;;;;;:::i;:::-;;;2381:57:101;;2765:56961:64;;2381:57:101;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2381:57:101;-1:-1:-1;;2381:57:101;;;;;;:::i;:::-;2765:56961:64;2354:98:101;;11258:245:64;;;;;2765:56961;;;11258:245;2765:56961;;;;;;;;;;;;;;;;11258:245;;2765:56961;;11258:245;2765:56961;11258:245;;;:::i;:::-;;;;;;;;;;;2765:56961;;;;;;;;;11531:15;2765:56961;;;;;;;;;;;;;;11531:42;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;11531:50:64;:99;;;;2765:56961;11514:157;;11704:15;2765:56961;;11686:33;;11682:91;;2765:56961;;11788:11;11784:59;;2765:56961;11994:12;2765:56961;;;;;;;;;;;;11994:12;;:::i;:::-;2765:56961;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;12034:55;;;12103:9;;;:::i;:::-;12027:85;;12034:55;;12158:3;2765:56961;;;;;;;12158:3;2765:56961;;;12165:4;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::i;:::-;;;;;;12217:139;;2765:56961;;;;;12217:139;;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11258:4:64;2765:56961;;;;;;;;;;;12414:22;;;;;;;;;;;;;12027:85;2765:56961;12450:3;2765:56961;;;;;;;;12450:3;2765:56961;;;;;;12414:68;;12503:100;2765:56961;12414:51;12561:42;2765:56961;12457:7;2765:56961;;;;12414:51;;:::i;:68::-;12599:3;2765:56961;;;12561:42;;:::i;:::-;2765:56961;;12503:100;:::i;:::-;2765:56961;;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12628:39;2765:56961;12618:49;;12614:243;12628:39;;;2765:56961;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12683:39;:41;2765:56961;;12683:41;:::i;:::-;2765:56961;;;;;;;;12614:243;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12745:39;2765:56961;12745:44;12741:116;;12614:243;;;;;12741:116;2765:56961;12628:39;2765:56961;;;;;;;;;;;11531:15;2765:56961;;;;;;12805:39;:41;2765:56961;;12805:41;:::i;:::-;2765:56961;;12741:116;;;;12414:22;;;2765:56961;12414:22;;2765:56961;12414:22;;;;;;2765:56961;12414:22;;;:::i;:::-;;;2765:56961;;;;;12414:22;;;;;;-1:-1:-1;12414:22:64;;11784:59;-1:-1:-1;;;11808:35:64;;2765:56961;11808:35;;11682:91;-1:-1:-1;;;11740:33:64;;2765:56961;11740:33;;11514:157;-1:-1:-1;;;11648:23:64;;2765:56961;8642:23;11648;11531:99;11598:32;;;;;:::i;:::-;11597:33;11531:99;;11258:245;;;;;:::i;:::-;2765:56961;;11258:245;;;;2765:56961;;;;11258:245;2765:56961;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;39099:29;;39095:68;;-1:-1:-1;;;;;2765:56961:64;;39174:20;2765:56961;;;39174:20;2765:56961;2891:6;39249:15;2765:56961;39249:15;;2765:56961;;;39222:24;2765:56961;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;39095:68;-1:-1:-1;;;39137:26:64;;2765:56961;39137:26;;2765:56961;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;8270:4:64;2765:56961;;;;;;;;;:::i;:::-;;;1727:56:101;;;2765:56961:64;1727:56:101;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;:::i;1727:56:101:-;2765:56961:64;1717:67:101;;8270:244:64;;;;;;2765:56961;;;;8270:244;2765:56961;;;;;;;;;;;;;;;;;;;8270:244;;2765:56961;8270:244;;;:::i;:::-;;;;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;8542:5:64;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;8542:21;;;;:82;;;2765:56961;8525:140;;8681:29;;;;:::i;:::-;8680:30;8676:88;;8817:32;9071:34;8817:32;8995:121;8817:32;;8941:12;8817:32;;9039:67;8817:32;;;;;;:::i;8941:12::-;9071:34;;;:::i;:::-;9039:67;:::i;:::-;8995:121;:::i;:::-;2765:56961;;;;;-1:-1:-1;;;;;2765:56961:64;;;1727:56:101;2765:56961:64;;;;;;;;;;;9144:15;2765:56961;;;;;;;;9144:35;;;:105;;;2765:56961;9127:171;;9439:8;9421:15;2765:56961;9421:15;;2765:56961;;;;;;;;;;;;;;;;:::i;:::-;;;1727:56:101;9337:226:64;;2765:56961;;;-1:-1:-1;;;;;9337:226:64;2765:56961;9337:226;;2765:56961;;;;1727:56:101;2765:56961:64;9337:226;;2765:56961;;;;;9337:226;;2765:56961;;;;;;;;;;;;;9144:15;2765:56961;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;8477:4;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8270:4:64;2765:56961;;;;;;;9578:32;;9599:10;2765:56961;9578:32;;2765:56961;1727:56:101;9578:32:64;;;;;;;;;;;;;;;2765:56961;9574:165;;;2765:56961;;;;1727:56:101;2765:56961:64;;;;;;;;;;;;;;9144:15;2765:56961;;;;;;;;;;8477:4;2765:56961;;;;;;;;;;;;;;;;;9574:165;2765:56961;;;;;;1727:56:101;2765:56961:64;;;;;;;;;;9685:22;;;;;;;;;;;;;9574:165;2765:56961;;9680:2;2765:56961;;9680:2;2765:56961;;;;;;9679:46;;;;;;1727:56:101;9679:46:64;;:::i;:::-;9574:165;;;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;9578:32;2765:56961;;9685:22;;;1727:56:101;9685:22:64;;1727:56:101;9685:22:64;;;;;;2765:56961;9685:22;;;:::i;:::-;;;2765:56961;;;;;9685:22;;;;;;-1:-1:-1;9685:22:64;;;2765:56961;;;;;;;;;9578:32;;;;1727:56:101;9578:32:64;1727:56:101;9578:32:64;;;;;;;:::i;:::-;;;;9127:171;-1:-1:-1;;;9267:31:64;;2765:56961;9267:31;;9144:105;2765:56961;8477:4;2765:56961;;1727:56:101;2765:56961:64;;;;;;;;;9144:15;2765:56961;;;;;;9195:36;2765:56961;9234:15;-1:-1:-1;9144:105:64;;8676:88;-1:-1:-1;;;8731:33:64;;2765:56961;8731:33;;8525:140;-1:-1:-1;;;8642:23:64;;2765:56961;8642:23;;8542:82;-1:-1:-1;8580:44:64;2765:56961;;;;;:::i;:::-;8580:44;:::i;:::-;8579:45;8542:82;;8270:244;;;;;:::i;:::-;2765:56961;;8270:244;;;;;2765:56961;;;;;;;;;8270:244;2765:56961;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;;36508:14;2765:56961;;36508:14;2765:56961;;36545:18;2765:56961;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;30842:4:64;2765:56961;;;;;;;;;;:::i;:::-;;;5384:43:101;;2765:56961:64;5384:43:101;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;5384:43:101:-;2765:56961:64;5374:54:101;;30842:231:64;;;;;;2765:56961;30842:231;2765:56961;;;;;;;;;;;;;;;;;;;30842:231;;2765:56961;30842:231;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;5384:43:101;2765:56961:64;;;;31088:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;31088:39;31084:96;;31195:48;2765:56961;;;;;;5384:43:101;2765:56961:64;;;;31088:15;2765:56961;;;;;;31195:48;2765:56961;31195:53;31191:105;;31349:39;;31480:12;31349:39;;;;;;;;:::i;31480:12::-;31531:13;31624:3;2765:56961;31195:48;2765:56961;;;;;;5384:43:101;2765:56961:64;;;;31088:15;2765:56961;;;;;;31562:48;2765:56961;31558:52;;;;;2765:56961;31036:4;2765:56961;;;;;;;5384:43:101;2765:56961:64;;;;31195:48;2765:56961;;;;;;;;;5384:43:101;2765:56961:64;31652:42;2765:56961;;;31652:42;:::i;:::-;2765:56961;31531:13;;31558:52;;;;-1:-1:-1;;;;;30842:4:64;2765:56961;;;;;;;31719:32;;31740:10;2765:56961;31719:32;;2765:56961;5384:43:101;31719:32:64;;;;;;;;;;;;;;;31513:192;31715:270;;;31513:192;2765:56961;;;5384:43:101;31195:48:64;2765:56961;;;;;;;;;;;31088:15;2765:56961;;;;;;31995:48;2765:56961;;;31715:270;2765:56961;;;;;;5384:43:101;2765:56961:64;;;;;;;;;;31828:22;;;;;;;;;;;;;31715:270;2765:56961;;31824:1;2765:56961;;31824:1;2765:56961;;;;;31195:48;2765:56961;31822:138;;2765:56961;;;31823:99;5384:43:101;2765:56961:64;;;;;;;;;;;;;31088:15;2765:56961;;;;;;31874:48;2765:56961;31823:99;;:::i;31822:138::-;31715:270;;;;31828:22;;;5384:43:101;31828:22:64;;5384:43:101;31828:22:64;;;;;;2765:56961;31828:22;;;:::i;:::-;;;2765:56961;;;;;31828:22;;;;;;-1:-1:-1;31828:22:64;;31719:32;;;;5384:43:101;31719:32:64;5384:43:101;31719:32:64;;;;;;;:::i;:::-;;;;31191:105;-1:-1:-1;;;31269:27:64;;2765:56961;25080:27;31269;30842:231;;;;;:::i;:::-;2765:56961;;30842:231;;;;2765:56961;;:::i;:::-;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;4394:48:101;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;24689:4:64;2765:56961;;;;;;:::i;:::-;;;;;:::i;:::-;;;4394:48:101;;;2765:56961:64;;4394:48:101;;2765:56961:64;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2765:56961:64;;;;;;;:::i;4394:48:101:-;2765:56961:64;4384:59:101;;24689:236:64;;;;;2765:56961;;;24689:236;2765:56961;;;;;;;;;;;;;;;;24689:236;;2765:56961;;24689:236;2765:56961;24689:236;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;24940:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;24940:39;24936:96;;25047:24;;25043:64;;2765:56961;25281:12;2765:56961;;;;;;25160:29;;;:::i;25281:12::-;-1:-1:-1;;;;;24689:4:64;2765:56961;;;;;;;25318:32;;25339:10;2765:56961;25318:32;;2765:56961;;25318:32;2765:56961;25318:32;;;;;;;;;;;;;2765:56961;25314:264;;;2765:56961;;;;;;;;;;;;;;25588:22;2765:56961;;;;;;25588:22;2765:56961;;;;;;;;;;;24940:15;2765:56961;;;;;;25634:48;2765:56961;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;25588:22;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24940:15;2765:56961;;;;;;25711:48;:50;2765:56961;;25711:50;:::i;:::-;2765:56961;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;25588:22;2765:56961;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;25314:264;2765:56961;;;;;;;;;;;;25426:22;;;;;;;;;;;;;25314:264;2765:56961;;25422:1;2765:56961;;25422:1;2765:56961;;;;;25474:29;;:::i;:::-;25506:2;2765:56961;;;;;;25506:2;2765:56961;;;;;;;;25421:95;:132;2765:56961;;25421:132;2765:56961;;25421:95;;:::i;:132::-;25314:264;;;;2765:56961;-1:-1:-1;;;2765:56961:64;;;;;;;;25426:22;;;2765:56961;25426:22;;2765:56961;25426:22;;;;;;2765:56961;25426:22;;;:::i;:::-;;;2765:56961;;;;;25426:22;;;;;;-1:-1:-1;25426:22:64;;25318:32;;;;2765:56961;25318:32;2765:56961;25318:32;;;;;;;:::i;:::-;;;;;2765:56961;;;;;;;;;25043:64;-1:-1:-1;;;25080:27:64;;2765:56961;25080:27;;24689:236;;;;;:::i;:::-;2765:56961;;24689:236;;;;2765:56961;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;56980:5:64;2765:56961;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;34084:4:64;2765:56961;;;;;;;;;;:::i;:::-;;;5863:37:101;;2765:56961:64;5863:37:101;;;2765:56961:64;;;;34084:4;2765:56961;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;5863:37:101:-;2765:56961:64;5853:48:101;;34084:225:64;;;;;;2765:56961;34084:225;2765:56961;;;;;;;;;;;;;;;;;;;34084:225;;2765:56961;34084:225;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;34324:39;34320:96;;34272:4;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;34450:40;2765:56961;34431:15;:59;;34427:108;;2765:56961;;;;;;34324:15;2765:56961;;;;;;;;;5863:37:101;2765:56961:64;;;;34550:42;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;34550:50:64;34546:105;;34704:33;;34829:12;34704:33;;;;;;;;:::i;34829:12::-;34880:13;34973:3;34911:48;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;34911:48;2765:56961;34907:52;;;;;34272:4;2765:56961;;;;;;;5863:37:101;2765:56961:64;;;;34911:48;2765:56961;;;;;;;;;5863:37:101;2765:56961:64;35001:42;2765:56961;;;35001:42;:::i;:::-;2765:56961;34880:13;;34907:52;;;2765:56961;5863:37:101;-1:-1:-1;;;;;34084:4:64;2765:56961;;;;;;;;;;;35117:22;;;;;;;;;;;;;34862:192;2765:56961;;35113:1;2765:56961;;35113:1;2765:56961;;;;;35111:130;2765:56961;;;35112:95;35111:130;2765:56961;34911:48;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;35159:48;2765:56961;35112:95;;:::i;35111:130::-;35449:39;2765:56961;;;;;;5863:37:101;2765:56961:64;;;;34324:15;2765:56961;;;;;;35449:39;2765:56961;;;;;;;:::i;:::-;;;;5863:37:101;35290:245:64;;2765:56961;;;-1:-1:-1;;;;;35290:245:64;2765:56961;35290:245;;2765:56961;;;;;35290:245;;2765:56961;;;5863:37:101;2765:56961:64;35290:245;;2765:56961;;;;;;;;;;;;;;34324:15;2765:56961;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;34272:4;2765:56961;;;;34911:48;2765:56961;;;;35449:39;2765:56961;;;;;;;;;;;;;;;;;;35117:22;;;5863:37:101;35117:22:64;;5863:37:101;35117:22:64;;;;;;2765:56961;35117:22;;;:::i;:::-;;;2765:56961;;;;;35117:22;;;;;;-1:-1:-1;35117:22:64;;34427:108;-1:-1:-1;;;34511:24:64;;2765:56961;34511:24;;34084:225;;;;;:::i;:::-;2765:56961;;34084:225;;;;2765:56961;;;;;;;;;;;;;59616:11;2765:56961;59649:20;2765:56961;59683:24;2765:56961;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57594:5;2765:56961;57609:14;2765:56961;57625:18;2765:56961;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18022:4;2765:56961;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::i;:::-;;;;3448:44:101;;;;;2765:56961:64;;;;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;;;;;;3448:44:101;2765:56961:64;;3448:44:101;;;;;;;;:::i;:::-;2765:56961:64;3438:55:101;;18022:232:64;;;;;;2765:56961;18022:232;2765:56961;;;;;;;;;;;;;;;;;;;18022:232;;2765:56961;18022:232;;;:::i;:::-;;;;;;;;;;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;3448:44:101;2765:56961:64;;;;18269:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;18269:39;18265:96;;2765:56961;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;-1:-1:-1;;;;;2765:56961:64;;;;;18389:55;:137;;;;2765:56961;18372:193;;18580:18;18836:40;18580:18;;;;;18576:234;;2765:56961;;;;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18836:40;2765:56961;;;18836:40;2765:56961;18836:40;;:::i;:::-;2765:56961;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;-1:-1:-1;;;;;2765:56961:64;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;3448:44:101;2765:56961:64;;;;18269:15;2765:56961;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;-1:-1:-1;;;;;18022:4:64;2765:56961;;;;;;;19056:32;;19077:10;2765:56961;19056:32;;2765:56961;3448:44:101;19056:32:64;;;;;;;;;;;;;;;2765:56961;19052:300;;;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;3448:44:101;18836:40:64;2765:56961;;;19421:40;2765:56961;;;;;;;;;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18836:40;2765:56961;;;19480:40;2765:56961;;;;18217:4;2765:56961;;;;;;;19362:175;2765:56961;19528:3;19420:117;2765:56961;;18836:40;2765:56961;19420:117;;:::i;19052:300::-;3448:44:101;2765:56961:64;;;;;;;;;;;19160:22;;;;;;;;;;;;;19052:300;2765:56961;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18836:40;2765:56961;;;19209:40;2765:56961;;;;18217:4;2765:56961;;;;;;;;19159:131;:168;2765:56961;19257:3;19159:168;2765:56961;;18836:40;2765:56961;19159:131;;:::i;:168::-;19052:300;;;;19160:22;;;3448:44:101;19160:22:64;;3448:44:101;19160:22:64;;;;;;2765:56961;19160:22;;;:::i;:::-;;;2765:56961;;;;;19160:22;;;;;;-1:-1:-1;19160:22:64;;19056:32;;;;3448:44:101;19056:32:64;3448:44:101;19056:32:64;;;;;;;:::i;:::-;;;;18372:193;-1:-1:-1;;;18544:21:64;;2765:56961;18544:21;;18389:137;2765:56961;;;;;;;3448:44:101;2765:56961:64;;;;18217:4;2765:56961;;;;;;;;;3448:44:101;2765:56961:64;18217:4;2765:56961;;;18460:48;2765:56961;18511:15;-1:-1:-1;18389:137:64;;18022:232;;;;;:::i;:::-;2765:56961;;18022:232;;;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;39813:24;2765:56961;39795:15;:42;39791:93;;-1:-1:-1;;;;;39968:20:64;2765:56961;;;;;;;;;:::i;:::-;;;;39909:153;;;;2765:56961;39909:153;2765:56961;-1:-1:-1;;;;;2765:56961:64;;39813:11;2765:56961;;;39813:11;2765:56961;-1:-1:-1;;;;;2765:56961:64;;39968:20;2765:56961;;39968:20;2765:56961;;39813:24;2765:56961;-1:-1:-1;;;;;39813:11:64;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;40073:32;2765:56961;;;40073:32;2765:56961;;;39791:93;-1:-1:-1;;;39858:26:64;;2765:56961;;39858:26;2765:56961;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;54768:14;2765:56961;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:56961:64;;;;;54768:14;2765:56961;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;;39509:20;2765:56961;;39509:20;2765:56961;;39552:24;2765:56961;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;55743:41;2765:56961;;;;;;;:::i;:::-;;;;;;;;;;;;;55743:15;2765:56961;;;;;;55743:41;2765:56961;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;6100:4:64;2765:56961;;;;;1106:51:101;;2765:56961:64;;;;;;;;;;;;;;;;;;;;1106:51:101;;;2765:56961:64;1106:51:101;;:::i;:::-;2765:56961:64;1096:62:101;;6100:252:64;;;;;2765:56961;;;6100:252;2765:56961;;;;;;;;;;;;;;;;6100:252;;2765:56961;;6100:252;2765:56961;6100:252;;;:::i;:::-;;;;;;;;;;;2765:56961;6367:18;;6363:221;;2765:56961;6845:15;;;6863:10;6845:15;2765:56961;6845:15;;2765:56961;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::i;:::-;;;;;6761:228;;2765:56961;;;;6761:228;;2765:56961;;;;6761:228;;2765:56961;;;;-1:-1:-1;;;;;6761:228:64;2765:56961;6761:228;6624:124;6676:58;2765:56961;6761:228;;2765:56961;;;;;;6676:58;:::i;6624:124::-;2765:56961;;;;;;;;;;;;;;;6595:15;2765:56961;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6100:4:64;2765:56961;;;;;;;7004:32;;7025:10;2765:56961;7004:32;;2765:56961;;7004:32;2765:56961;7004:32;;;;;;;;;;;;;2765:56961;7000:112;;;2765:56961;;;7000:112;2765:56961;;;;;;;;;;;;7072:22;;;;;;;;;;;;;7000:112;7072:39;;;;;;:::i;:22::-;;;2765:56961;7072:22;;2765:56961;7072:22;;;;;;2765:56961;7072:22;;;:::i;:::-;;;2765:56961;;;;;7072:39;:22;;;;;-1:-1:-1;7072:22:64;;7004:32;;;;2765:56961;7004:32;2765:56961;7004:32;;;;;;;:::i;:::-;;;;6363:221;6399:185;2765:56961;;;6399:185;;;;:::i;:::-;6363:221;;;;;6100:252;;;;;2765:56961;6100:252;;:::i;:::-;2765:56961;6100:252;;;;;2765:56961;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;-1:-1:-1;;;;;58927:11:64;2765:56961;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;2765:56961:64;;;;;58625:16;-1:-1:-1;;;;;58625:4:64;2765:56961;;;;;;;;;;;58625:16;;;;;;;;2765:56961;58625:16;;;2765:56961;58625:16;2765:56961;;;;;;;58625:16;;;;;;;;;;;;2765:56961;58625:16;;;:::i;:::-;;;2765:56961;;;;58625:16;2765:56961;;58625:16;;;;;-1:-1:-1;58625:16:64;;2765:56961;;;;;;-1:-1:-1;;2765:56961:64;;;;;;:::i;:::-;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;;;:27;4042:64;;-1:-1:-1;;;;;2765:56961:64;36079:29;;;:65;;;;;2765:56961;36075:118;;;-1:-1:-1;;;;;2765:56961:64;;36204:14;2765:56961;;;36204:14;2765:56961;2891:6;36267:15;2765:56961;36267:15;;2765:56961;;;36246:18;2765:56961;;;;;;;;;;;;;;36075:118;36165:28;;;2765:56961;36165:28;2765:56961;;36165:28;36079:65;36112:32;;;;36079:65;;;4042:64;4082:24;;;2765:56961;4082:24;2765:56961;;4082:24;2765:56961;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;;;;;;;;;;;45319:15;2765:56961;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;:::i;:::-;;45805:38;;;;;:::i;:::-;45801:97;;2765:56961;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;45801:97;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;45866:15;2765:56961;;;;;;;;45801:97;;;;2765:56961;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;4060:5:64;2765:56961;;4046:10;:27;4042:64;;37499:4;2765:56961;-1:-1:-1;;;37530:31:64;;-1:-1:-1;;;;;2765:56961:64;;37530:31;2765:56961;37530:31;2765:56961;37530:31;;;;;;;2765:56961;37530:31;;;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;;;;;37499:63;;37523:4;2765:56961;37499:63;;2765:56961;;;;;;;37499:63;;;;;;;;;;;2765:56961;37499:63;;;2765:56961;;;;;;;;;;;;;;37609:22;;;;;;;;;2765:56961;37609:22;;;2765:56961;;37582:4;2765:56961;;37582:4;2765:56961;;;;;37582:114;37499:198;2765:56961;;;37582:114;;:::i;:::-;37499:198;;:::i;:::-;:220;:248;;;;2765:56961;37482:337;;2765:56961;;2891:6;37930:15;2765:56961;37930:15;;2765:56961;;;37880:35;2765:56961;;37482:337;37779:29;;;2765:56961;37779:29;2765:56961;;37779:29;37499:248;37735:12;;;37499:248;;37609:22;;;2765:56961;37609:22;;2765:56961;37609:22;;;;;;2765:56961;37609:22;;;:::i;:::-;;;2765:56961;;;;;37609:22;;;;;;-1:-1:-1;37609:22:64;;37499:63;;;;2765:56961;37499:63;;2765:56961;37499:63;;;;;;2765:56961;37499:63;;;:::i;:::-;;;2765:56961;;;;;;;37499:63;;;;;-1:-1:-1;37499:63:64;;37530:31;;;;;2765:56961;37530:31;2765:56961;37530:31;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2765:56961:64;;;;;;;:::i;:::-;;-1:-1:-1;;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;:::o;:::-;;-1:-1:-1;;2765:56961:64;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2765:56961:64;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;51528:49;2765:56961;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;-1:-1:-1;;2765:56961:64;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;-1:-1:-1;2765:56961:64;;;;;-1:-1:-1;2765:56961:64;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;48857:246::-;49009:22;48857:246;49009:22;-1:-1:-1;;;;;49009:4:64;2765:56961;;;;;;;;;;;49009:22;;;;;;;;;-1:-1:-1;49009:22:64;;;48857:246;2765:56961;;49004:2;2765:56961;;49004:2;2765:56961;;;;;;49009:22;49047:49;2765:56961;49003:93;2765:56961;;;;;;;;;;49047:15;2765:56961;;;;;;49047:49;2765:56961;49003:93;;:::i;:::-;48857:246;:::o;49009:22::-;;;;;;;;;;;;;;2765:56961;49009:22;;;:::i;:::-;;;2765:56961;;;;;49009:22;;;;;;;-1:-1:-1;49009:22:64;;2765:56961;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;-1:-1:-1;;2765:56961:64;;;;:::o;:::-;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;6315:4;2765:56961;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;2765:56961:64;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;48001:127::-;48099:22;;-1:-1:-1;;;;;48099:4:64;2765:56961;;;;;;;;;;;48099:22;;;;;;;;;-1:-1:-1;48099:22:64;;;48001:127;2765:56961;;48094:2;2765:56961;;48094:2;2765:56961;;;;;48001:127;:::o;48099:22::-;;;;;;;;;;;;;2765:56961;48099:22;;;:::i;:::-;;;2765:56961;;;;;48099:22;;;;;;-1:-1:-1;48099:22:64;;2765:56961;;;;;;;:::i;:::-;-1:-1:-1;2765:56961:64;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2765:56961:64;;;;;;:::o;49443:283::-;-1:-1:-1;;;;;49590:4:64;2765:56961;;;;;;;;;49590:22;;;;;;;;;;;;;;-1:-1:-1;49590:22:64;;;49443:283;2765:56961;;49585:2;2765:56961;;49585:2;2765:56961;;;;;49590:22;2765:56961;49632:49;2765:56961;49590:22;2765:56961;;49584:97;2765:56961;;;;;;;;;;49632:15;2765:56961;;;;;;49632:49;2765:56961;49584:97;;:::i;:::-;2765:56961;;;;;;;;;;49697:22;;;;;;;;;-1:-1:-1;49697:22:64;;;49443:283;49583:136;;;;:::i;49697:22::-;;;49590;49697;;49590;49697;;;;;;2765:56961;49697:22;;;:::i;:::-;;;2765:56961;;;;49583:136;2765:56961;;49697:22;;;;;;-1:-1:-1;49697:22:64;;49590;;;;;;;;;;;;;;2765:56961;49590:22;;;:::i;:::-;;;2765:56961;;;;;49590:22;;;;;;;-1:-1:-1;49590:22:64;;2765:56961;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;-1:-1:-1;2765:56961:64;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;43442:617::-;;2765:56961;;;;;;43556:15;2765:56961;;;;;;;;;;;;;43556:43;;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;43556:51:64;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;43556:15;2765:56961;;;;;;;;43644:46;:112;;;;;43552:501;-1:-1:-1;;43623:243:64;;;2765:56961;43789:12;:::o;43623:243::-;43603:4;43840:11;:::o;43644:112::-;43603:4;2765:56961;;;;;;;;;;;;;;43556:15;2765:56961;;;;;;43710:41;2765:56961;43710:46;;43644:112;;;;43552:501;2765:56961;43603:4;2765:56961;;;;;;;;;;;43556:15;2765:56961;;;;;;43900:41;2765:56961;43900:46;43896:147;43603:4;;;2765:56961;43966:12;:::o;2765:56961::-;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;-1:-1:-1;2765:56961:64;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;2765:56961:64;;;-1:-1:-1;;2765:56961:64;;;;;;;:::o;46445:1320::-;;2765:56961;;46561:41;2765:56961;;;;;;46561:15;2765:56961;;;;;;;;;;;;;46561:41;2765:56961;46606:15;-1:-1:-1;46606:15:64;;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;46641:43;2765:56961;46637:687;;46557:1202;-1:-1:-1;;47341:10:64;;;47371:22;47379:14;47337:341;46445:1320::o;47337:341::-;47463:22;2765:56961;;-1:-1:-1;;;;;47463:4:64;2765:56961;;;;;;;;;;;47463:22;;;;;;;;;2765:56961;47463:22;;;47337:341;2765:56961;47522:1;2765:56961;;;;;47522:1;2765:56961;;;47527:4;2765:56961;;;47536:6;2765:56961;;47536:6;2765:56961;;;;;47512:54;;;;;;2765:56961;47337:341;2765:56961::o;47512:151::-;2765:56961;;48857:246;:::o;47463:22::-;;;;2765:56961;47463:22;;2765:56961;47463:22;;;;;;2765:56961;47463:22;;;:::i;:::-;;;2765:56961;;;;;47463:22;;;;;;;-1:-1:-1;47463:22:64;;46637:687;2765:56961;46836:3;46774:40;2765:56961;;;;;;;;;;;46561:15;2765:56961;;;;;;46774:40;2765:56961;46770:44;;;;;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;46606:15;46561:41;2765:56961;;;46909:43;2765:56961;46909:85;:163;;;46836:3;46880:412;;46836:3;46561:41;2765:56961;46735:13;;46880:412;2765:56961;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;;47125:35;2765:56961;;;47125:35;2765:56961;47125:43;47121:149;46880:412;47121:149;2765:56961;;;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;46561:41;47125:35;2765:56961;;;47208:35;2765:56961;47121:149;;;46880:412;;46909:163;2765:56961;;;;;;;;;;;;46561:41;2765:56961;;;;;;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;47022:50;;46909:163;;46770:44;;;;46637:687;;;;46557:1202;2765:56961;;;47726:22;2765:56961;-1:-1:-1;;;;;47726:4:64;2765:56961;;;;;;;;;;;47726:22;;;;;;;;;2765:56961;47726:22;;;46557:1202;2765:56961;;47716:7;2765:56961;;47716:7;2765:56961;;;;;46557:1202;46445:1320::o;47726:22::-;;;2765:56961;47726:22;;2765:56961;47726:22;;;;;;2765:56961;47726:22;;;:::i;:::-;;;2765:56961;;;;;47726:22;;;;;;-1:-1:-1;47726:22:64;;44344:614;;2765:56961;;;;;;44463:15;2765:56961;;;;;;;;;;;;;44463:43;;2765:56961;;;-1:-1:-1;;;;;;2765:56961:64;-1:-1:-1;;;44463:51:64;2765:56961;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;44463:15;2765:56961;;;;;;;;44551:46;:112;;;;;44459:493;-1:-1:-1;;44530:239:64;;;2765:56961;44696:8;;44551:112;44510:4;2765:56961;;;;;;;;;;;;;;44463:15;2765:56961;;;;;;44617:41;2765:56961;44617:46;;44551:112;;;;44459:493;2765:56961;44510:4;2765:56961;;;;;;;;;;;44463:15;2765:56961;;;;;;44803:41;2765:56961;44803:46;44799:143;44510:4;;;2765:56961;44869:8;;2765:56961;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;56221:272;;56352:39;2765:56961;;;;;;56352:15;2765:56961;;;;;;;;;;;;;56352:39;2765:56961;56352:43;:134;;56414:25;;;:::i;56352:134::-;2765:56961;;56458:22;2765:56961;-1:-1:-1;;;;;56458:4:64;2765:56961;;;;;;;;;;;56458:22;;;;;;;;;-1:-1:-1;56458:22:64;;;56352:134;2765:56961;56483:3;2765:56961;;;;;;56483:3;2765:56961;;;;;;;56221:272;:::o;56458:22::-;;;2765:56961;56458:22;;2765:56961;56458:22;;;;;;2765:56961;56458:22;;;:::i;:::-;;;2765:56961;;;;;56458:22;;;;;;-1:-1:-1;56458:22:64;;42529:201;;;42680:42;42529:201;42680:42;42529:201;2765:56961;;42680:42;;;;;;;2765:56961;;;;;;;;;;42680:42;;;;;;;;:::i;:::-;2765:56961;42670:53;;42529:201;:::o;2765:56961::-;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;50269:340::-;;50380:41;2765:56961;;;;;;;;;;;50380:15;2765:56961;;;;;;50380:41;2765:56961;50380:46;50376:227;50380:41;;;50442:11;;50380:41;50442:11;:::o;50376:227::-;2765:56961;50380:41;2765:56961;;;;;;;;;;;50380:15;2765:56961;;;;;;50507:41;2765:56961;50551:7;2765:56961;;;;;;;50577:15;-1:-1:-1;50484:108:64;:::o;41038:500::-;;;;;;;-1:-1:-1;;;;;41247:4:64;2765:56961;;;;;;;;;41330:31;;;;;;;;;;;;;;2765:56961;41330:31;;;41038:500;41247:284;;;;;;-1:-1:-1;;;;;2765:56961:64;;;;;;;;;;;;;;;;;;;;;;41247:284;;2765:56961;41330:31;41247:284;;2765:56961;41295:4;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;;41295:4;2765:56961;;;;;;;;;;;;;41494:4;2765:56961;;;;;;;;;;;;;;:::i;:::-;41247:284;;;;;;;;;;41038:500;:::o;41247:284::-;2765:56961;41247:284;;;:::i;41330:31::-;;;;;;;;;;;;;;;:::i;:::-;;;;;41038:500;41247:4;2765:56961;;;-1:-1:-1;;;41330:31:64;;41038:500;;-1:-1:-1;;;;;2765:56961:64;;;;41038:500;;;41330:31;2765:56961;41330:31;2765:56961;;41330:31;;;;;;;-1:-1:-1;41330:31:64;;;41038:500;41247:284;;;;;;-1:-1:-1;;;;;2765:56961:64;-1:-1:-1;2765:56961:64;;;;;;;;;;;;;;;;;;;;41247:284;;2765:56961;41330:31;41247:284;;2765:56961;41295:4;2765:56961;;;;;;;;;;;;;;;;;;;;;;;;;;;41295:4;2765:56961;;;;;;;;;;;;;41494:4;2765:56961;;;;;;;;;;;;;;:::i;41330:31::-;;;;;;;;;;;;;;;:::i;:::-;;;;;2765:56961;;;;;;;;;;;;;:::o;3564:411:93:-;2765:56961:64;;;;;;;:::i;:::-;3697:2:93;2765:56961:64;;;;;;;;;;;;;;3710:15:93;;;2765:56961:64;;3742:1:93;2765:56961:64;;;;3735:15:93;2765:56961:64;;;3735:15:93;-1:-1:-1;3781:6:93;2765:56961:64;3781:6:93;;;;3947:21;;3564:411;:::o;3789:3::-;3845:7;;;;3856:1;2765:56961:64;;;3920:4:93;2765:56961:64;3828:31:93;;;;;;2765:56961:64;3742:1:93;2765:56961:64;;;;;3815:1:93;2765:56961:64;;;;;;;;3815:1:93;2765:56961:64;;3815:1:93;2765:56961:64;;;3920:4:93;;-1:-1:-1;;;3828:31:93;;;3808:51;;;;:::i;:::-;;2765:56961:64;3893:33:93;3828:31;3893:33;;;;;3880:1;2765:56961:64;;3880:1:93;2765:56961:64;;;3742:1:93;;-1:-1:-1;;;3893:33:93;;;3873:53;;;;:::i;:::-;;2765:56961:64;3766:13:93;;41820:132:64;41888:4;2765:56961;;;-1:-1:-1;;;41905:31:64;;2765:56961;;-1:-1:-1;;;;;2765:56961:64;41905:31;2765:56961;41905:31;2765:56961;;41905:31;;;;;;;-1:-1:-1;41905:31:64;;;41820:132;41888:57;;;;;;2765:56961;;-1:-1:-1;;;41888:57:64;;-1:-1:-1;;;;;2765:56961:64;;;41905:31;41888:57;;2765:56961;;;;;;;;;;;;;-1:-1:-1;;2765:56961:64;;;-1:-1:-1;2765:56961:64;;;;41888:57;2765:56961;41905:31;;;;;;;;;;;;;;;:::i;:::-;;;;;991:707:65;2765:56961:64;;1222:1:65;1199:24;;1195:42;;2765:56961:64;;;;;;;1303:27:65;;-1:-1:-1;;;;;;2765:56961:64;1303:27:65;:::i;:::-;1302:28;1298:58;;2765:56961:64;1472:3:65;2765:56961:64;;1446:24:65;;;;;-1:-1:-1;;;;;;1564:16:65;;;;:::i;:::-;2765:56961:64;;;;;5296:17:65;;;:38;;;;1472:3;1554:27;;:59;;;1472:3;1550:111;;2765:56961:64;;1431:13:65;;1550:111;1633:12;;2765:56961:64;1633:12:65;:::o;1554:59::-;-1:-1:-1;1586:27:65;-1:-1:-1;;;;;;1596:16:65;;;;:::i;:::-;2765:56961:64;;1586:27:65;:::i;:::-;1585:28;1554:59;;5296:38;-1:-1:-1;;;;5317:17:65;;-1:-1:-1;5296:38:65;;;1446:24;;;2765:56961:64;991:707:65;:::o;1298:58::-;1344:12;2765:56961:64;1344:12:65;:::o;5441:227::-;2765:56961:64;;;;;;;5525:17:65;;;:38;;;;5441:227;5524:96;;;;5516:105;5441:227;:::o;5524:96::-;-1:-1:-1;;;5581:17:65;;;;-1:-1:-1;5581:17:65;:38;;5524:96;5441:227;:::o;5581:38::-;-1:-1:-1;;;;5602:17:65;;-1:-1:-1;5441:227:65;:::o;5525:38::-;-1:-1:-1;;;5546:17:65;;;;-1:-1:-1;5525:38:65;",linkReferences:{}},methodIdentifiers:{"acceptChangeEvvmAddress()":"48ffba55","acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"53462f82","acceptProposeAdmin()":"eba5e53e","addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":"71e604f8","cancelChangeEvvmAddress()":"24866f15","cancelProposeAdmin()":"88ecb91f","cancelWithdrawPrincipalTokens()":"cf1dc146","claimWithdrawPrincipalTokens()":"e7849f62","flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":"7d0d9608","flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":"5f94da09","getAdmin()":"6e9960c3","getAdminFullDetails()":"5548a762","getAmountOfCustomMetadata(string)":"6b5bb1ca","getCoreAddress()":"2096b768","getCoreAddressFullDetails()":"570b245b","getCustomMetadataMaxSlotsOfIdentity(string)":"7bd9da7a","getEvvmID()":"17c85152","getExpireDateOfIdentity(string)":"22afca38","getFullCustomMetadataOfIdentity(string)":"b19517dd","getIdentityBasicMetadata(string)":"c97da33e","getLengthOfOffersUsername(string)":"fe7ab683","getOffersOfUsername(string)":"d7fd3134","getOwnerOfIdentity(string)":"0d3dcb9f","getPriceOfRegistration(string)":"bc91a428","getPriceToAddCustomMetadata()":"36e7a1b8","getPriceToFlushCustomMetadata(string)":"1f4131fb","getPriceToFlushUsername(string)":"54dc585d","getPriceToRemoveCustomMetadata()":"99e7bac2","getProposedWithdrawAmountFullDetails()":"d2234a1a","getSingleCustomMetadataOfIdentity(string,uint256)":"f6d0ecbe","getSingleOfferOfUsername(string,uint256)":"43a82d67","hashUsername(string,uint256)":"bcd5a47c","isUsernameAvailable(string)":"f69c6dec","makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"b0bf2e10","preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":"22abdafa","proposeAdmin(address)":"147bf6c4","proposeChangeEvvmAddress(address)":"a6ba51ca","proposeWithdrawPrincipalTokens(uint256)":"007802df","registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"8ffe264e","removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"ecdc7aff","renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":"ebee75fc","seePriceToRenew(string)":"75dab53b","strictVerifyIfIdentityExist(string)":"86c8ac58","verifyIfIdentityExists(string)":"7126b2a3","verifyStrictAndGetOwnerOfIdentity(string)":"0c78d2c6","withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"f5e993f5"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_coreAddress","type":"address"},{"internalType":"address","name":"_initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AmountMustBeGreaterThanZero","type":"error"},{"inputs":[],"name":"CannotBeBeforeCurrentTime","type":"error"},{"inputs":[],"name":"EmptyCustomMetadata","type":"error"},{"inputs":[],"name":"IdentityIsNotAUsername","type":"error"},{"inputs":[],"name":"InvalidAdminProposal","type":"error"},{"inputs":[],"name":"InvalidEvvmAddress","type":"error"},{"inputs":[],"name":"InvalidKey","type":"error"},{"inputs":[],"name":"InvalidUsername","type":"error"},{"inputs":[],"name":"InvalidWithdrawAmount","type":"error"},{"inputs":[],"name":"LockTimeNotExpired","type":"error"},{"inputs":[],"name":"OfferInactive","type":"error"},{"inputs":[],"name":"OwnershipExpired","type":"error"},{"inputs":[],"name":"PreRegistrationNotValid","type":"error"},{"inputs":[],"name":"RenewalTimeLimitExceeded","type":"error"},{"inputs":[],"name":"SenderIsNotAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotProposedAdmin","type":"error"},{"inputs":[],"name":"UserIsNotOwnerOfIdentity","type":"error"},{"inputs":[],"name":"UserIsNotOwnerOfOffer","type":"error"},{"inputs":[],"name":"UsernameAlreadyRegistered","type":"error"},{"inputs":[],"name":"acceptChangeEvvmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"offerID","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"acceptOffer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptProposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"identity","type":"string"},{"internalType":"string","name":"value","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"addCustomMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelChangeEvvmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelProposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelWithdrawPrincipalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimWithdrawPrincipalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"identity","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"flushCustomMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"flushUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdminFullDetails","outputs":[{"internalType":"address","name":"currentAdmin","type":"address"},{"internalType":"address","name":"proposalAdmin","type":"address"},{"internalType":"uint256","name":"timeToAcceptAdmin","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getAmountOfCustomMetadata","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddressFullDetails","outputs":[{"internalType":"address","name":"currentEvvmAddress","type":"address"},{"internalType":"address","name":"proposalEvvmAddress","type":"address"},{"internalType":"uint256","name":"timeToAcceptEvvmAddress","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getCustomMetadataMaxSlotsOfIdentity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"getExpireDateOfIdentity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getFullCustomMetadataOfIdentity","outputs":[{"internalType":"string[]","name":"","type":"string[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getIdentityBasicMetadata","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getLengthOfOffersUsername","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getOffersOfUsername","outputs":[{"components":[{"internalType":"address","name":"offerer","type":"address"},{"internalType":"uint256","name":"expirationDate","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NameServiceStructs.OfferMetadata[]","name":"offers","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"getOwnerOfIdentity","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"username","type":"string"}],"name":"getPriceOfRegistration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPriceToAddCustomMetadata","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"getPriceToFlushCustomMetadata","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"getPriceToFlushUsername","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPriceToRemoveCustomMetadata","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposedWithdrawAmountFullDetails","outputs":[{"internalType":"uint256","name":"proposalAmountToWithdrawTokens","type":"uint256"},{"internalType":"uint256","name":"timeToAcceptAmountToWithdrawTokens","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"},{"internalType":"uint256","name":"_key","type":"uint256"}],"name":"getSingleCustomMetadataOfIdentity","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"},{"internalType":"uint256","name":"_offerID","type":"uint256"}],"name":"getSingleOfferOfUsername","outputs":[{"components":[{"internalType":"address","name":"offerer","type":"address"},{"internalType":"uint256","name":"expirationDate","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct NameServiceStructs.OfferMetadata","name":"offer","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"},{"internalType":"uint256","name":"_randomNumber","type":"uint256"}],"name":"hashUsername","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"isUsernameAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"expirationDate","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"makeOffer","outputs":[{"internalType":"uint256","name":"offerID","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes32","name":"hashPreRegisteredUsername","type":"bytes32"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"preRegistrationUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_adminToPropose","type":"address"}],"name":"proposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newEvvmAddress","type":"address"}],"name":"proposeChangeEvvmAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"proposeWithdrawPrincipalTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"lockNumber","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"registrationUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"identity","type":"string"},{"internalType":"uint256","name":"key","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"removeCustomMetadata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"renewUsername","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"seePriceToRenew","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"strictVerifyIfIdentityExist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_identity","type":"string"}],"name":"verifyIfIdentityExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_username","type":"string"}],"name":"verifyStrictAndGetOwnerOfIdentity","outputs":[{"internalType":"address","name":"answer","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"string","name":"username","type":"string"},{"internalType":"uint256","name":"offerID","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"withdrawOffer","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs","details":"Manages username registration via a commit-reveal scheme (pre-registration), a secondary marketplace for domain trading, and customizable user metadata. Integrates with Core.sol for payment processing and uses async nonces for high throughput.","errors":{"AmountMustBeGreaterThanZero()":[{"details":"Thrown when amount == 0 (e.g., makeOffer requires value)"}],"CannotBeBeforeCurrentTime()":[{"details":"Thrown when timestamp < current time (offer expiration, future ops)"}],"EmptyCustomMetadata()":[{"details":"Thrown when custom metadata value == empty string"}],"IdentityIsNotAUsername()":[{"details":"Thrown when username operation attempted on pre-registration (flagNotAUsername: 0x01=pre-reg, 0x00=username)"}],"InvalidAdminProposal()":[{"details":"Thrown when admin proposal address/config invalid"}],"InvalidEvvmAddress()":[{"details":"Thrown when proposed EVVM address invalid"}],"InvalidKey()":[{"details":"Thrown when removing non-existent custom metadata key"}],"InvalidUsername()":[{"details":"Thrown when username format invalid (4+ chars, start with letter, alphanumeric)"}],"InvalidWithdrawAmount()":[{"details":"Thrown when withdrawal amount invalid or > balance"}],"LockTimeNotExpired()":[{"details":"Thrown when time-locked governance action attempted prematurely"}],"OfferInactive()":[{"details":"Thrown when accepting/interacting with expired/non-existent offer (offerer == 0)"}],"OwnershipExpired()":[{"details":"Thrown when operating on expired username (after expireDate)"}],"PreRegistrationNotValid()":[{"details":"Thrown when pre-registration doesn\'t exist or expired (30min window)"}],"RenewalTimeLimitExceeded()":[{"details":"Thrown when renewing > 100 years in advance"}],"SenderIsNotAdmin()":[{"details":"Thrown when non-admin calls admin-only function (onlyAdmin modifier)"}],"SenderIsNotProposedAdmin()":[{"details":"Thrown when non-proposed admin attempts acceptNewAdmin before timelock"}],"UserIsNotOwnerOfIdentity()":[{"details":"Thrown when non-owner attempts to modify username or accept offers"}],"UserIsNotOwnerOfOffer()":[{"details":"Thrown when non-creator attempts withdrawOffer"}],"UsernameAlreadyRegistered()":[{"details":"Thrown when attempting to register already-taken username"}]},"kind":"dev","methods":{"acceptChangeEvvmAddress()":{"details":"Can only be called after the time delay has passed"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Can only be called by current owner before expiration Acceptance Flow: 1. Validates user is current username owner 2. Validates offer exists and not expired 3. Transfers offer amount to seller 4. Transfers ownership to offerer 5. Processes optional priority fee 6. Deletes offer and unlocks tokens Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double acceptance Core.sol Integration: - Payment: offer amount via makeCaPay to seller - Priority fee: via requestPay (if > 0) - Fee Distribution: * 99.5% to seller (locked amount) * 0.5% + reward to staker (if applicable) - makeCaPay transfers from locked funds Ownership Transfer: - Changes identityDetails[username].owner - Preserves all metadata and expiration - Transfers all custom metadata slots Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases offer amount + marketplace fee - Distributes to seller and staker","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","offerID":"Unique identifier of offer to accept","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of current username owner","username":"Username being sold"}},"acceptProposeAdmin()":{"details":"Can only be called by the proposed admin after the time delay has passed"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Metadata format: [schema]:[subschema]>[value] Standard Format Examples: - memberOf:>EVVM - socialMedia:x>jistro (Twitter/X handle) - email:dev>jistro[at]evvm.org (dev email) - email:callme>contact[at]jistro.xyz (contact) Schema Guidelines: - Based on https://schema.org/docs/schemas.html - \':\' separates schema from subschema - \'>\' separates metadata from value - Pad spaces if schema/subschema < 5 chars - Use \\"socialMedia\\" for social networks Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + value - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Slot Management: - Increments customMetadataMaxSlots - Each slot holds one metadata entry - No limit on number of slots","params":{"identity":"Username to add metadata to","nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner","value":"Metadata string following format"}},"cancelChangeEvvmAddress()":{"details":"Only the current admin can cancel pending proposals"},"cancelProposeAdmin()":{"details":"Only the current admin can cancel pending proposals"},"cancelWithdrawPrincipalTokens()":{"details":"Only the current admin can cancel pending proposals"},"claimWithdrawPrincipalTokens()":{"details":"Can only be called after the time delay has passed"},"constructor":{"params":{"_coreAddress":"The address of the EVVM Core contract.","_initialOwner":"The address granted administrative privileges."}},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"More gas-efficient than removing individually Flush Process: 1. Validates user owns username 2. Validates metadata slots exist (not empty) 3. Calculates cost based on slot count 4. Deletes all metadata entries in loop 5. Resets customMetadataMaxSlots to 0 Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushCustomMetadata (per slot) - Cost: 10x EVVM reward per metadata entry - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes batch rewards Efficiency: - Single transaction for all metadata - Batch pricing for multiple entries - Cheaper than calling removeCustomMetadata N times","params":{"identity":"Username to flush all metadata from","nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner"}},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Deletes username, metadata, makes available for re-registration Flush Process: 1. Validates user owns username 2. Validates not expired (must be active) 3. Validates is actual username (not temp hash) 4. Calculates cost based on metadata + username 5. Deletes all metadata entries 6. Resets username to default state 7. Preserves offerMaxSlots history Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushUsername - Cost: Base + (10x reward per metadata slot) - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes to caller Cleanup: - Deletes all custom metadata slots - Sets owner to address(0) - Sets expirationDate to 0 - Resets customMetadataMaxSlots to 0 - Keeps offerMaxSlots for history - Sets flagNotAUsername to 0x00 - Username becomes available for re-registration","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner","username":"Username to completely remove"}},"getAdmin()":{"details":"Returns the address with administrative privileges","returns":{"_0":"The current admin address"}},"getAdminFullDetails()":{"details":"Returns current admin, proposed admin, and proposal acceptance deadline","returns":{"currentAdmin":"Current administrative address","proposalAdmin":"Proposed new admin address (if any)","timeToAcceptAdmin":"Timestamp when proposal can be accepted"}},"getAmountOfCustomMetadata(string)":{"details":"Returns the count of metadata slots currently used","params":{"_username":"The username to count metadata for"},"returns":{"_0":"Number of custom metadata entries"}},"getCoreAddress()":{"details":"Returns the address of the EVVM contract used for payment processing","returns":{"_0":"The current EVVM contract address"}},"getCoreAddressFullDetails()":{"details":"Returns current EVVM address, proposed address, and proposal acceptance deadline","returns":{"currentEvvmAddress":"Current EVVM contract address","proposalEvvmAddress":"Proposed new EVVM address (if any)","timeToAcceptEvvmAddress":"Timestamp when proposal can be accepted"}},"getCustomMetadataMaxSlotsOfIdentity(string)":{"details":"Returns the total capacity for custom metadata entries","params":{"_username":"The username to check metadata capacity for"},"returns":{"_0":"Maximum number of metadata slots"}},"getEvvmID()":{"details":"Returns the EvvmID used for distinguishing different EVVM deployments","returns":{"_0":"Unique EvvmID string"}},"getExpireDateOfIdentity(string)":{"details":"Returns the timestamp when the username registration expires","params":{"_identity":"The username to check expiration for"},"returns":{"_0":"The expiration timestamp in seconds since Unix epoch"}},"getFullCustomMetadataOfIdentity(string)":{"details":"Returns an array containing all metadata strings in order","params":{"_username":"The username to get metadata for"},"returns":{"_0":"Array of all custom metadata strings"}},"getIdentityBasicMetadata(string)":{"details":"Returns essential metadata for quick identity verification","params":{"_username":"The username to get basic info for"},"returns":{"_0":"Owner address and expiration timestamp"}},"getLengthOfOffersUsername(string)":{"details":"Iterates through offers to find the actual count of non-empty slots","params":{"_username":"The username to count offers for"},"returns":{"length":"Total number of offers that have been made"}},"getOffersOfUsername(string)":{"details":"Returns both active and expired offers that haven\'t been withdrawn","params":{"_username":"The username to get offers for"},"returns":{"offers":"Array of all offer metadata structures"}},"getOwnerOfIdentity(string)":{"details":"Returns the current owner address for any valid identity","params":{"_username":"The username to query"},"returns":{"_0":"Address of the username owner"}},"getPriceOfRegistration(string)":{"details":"Price is fully dynamic based on existing offers and timing - If dosnt have offers, price is 100x current EVVM reward amount - If has offers, price is calculated via seePriceToRenew function","params":{"username":"The username to get registration price for"},"returns":{"_0":"The current registration price in Principal Tokens"}},"getPriceToAddCustomMetadata()":{"details":"Price is dynamic based on current EVVM reward amount","returns":{"price":"Cost in Principal Tokens (10x current reward amount)"}},"getPriceToFlushCustomMetadata(string)":{"details":"Cost scales with the number of metadata entries to remove","params":{"_identity":"The username to calculate flush cost for"},"returns":{"price":"Total cost in Principal Tokens (10x reward amount per metadata entry)"}},"getPriceToFlushUsername(string)":{"details":"Includes cost for metadata removal plus base username deletion fee","params":{"_identity":"The username to calculate deletion cost for"},"returns":{"price":"Total cost in Principal Tokens (metadata flush cost + 1x reward amount)"}},"getPriceToRemoveCustomMetadata()":{"details":"Price is dynamic based on current EVVM reward amount","returns":{"price":"Cost in Principal Tokens (10x current reward amount)"}},"getProposedWithdrawAmountFullDetails()":{"details":"Returns proposed withdrawal amount and acceptance deadline","returns":{"proposalAmountToWithdrawTokens":"Proposed withdrawal amount in Principal Tokens","timeToAcceptAmountToWithdrawTokens":"Timestamp when proposal can be executed"}},"getSingleCustomMetadataOfIdentity(string,uint256)":{"details":"Retrieves metadata at a specific slot position","params":{"_key":"The index of the metadata entry to retrieve","_username":"The username to get metadata from"},"returns":{"_0":"The metadata string at the specified index"}},"getSingleOfferOfUsername(string,uint256)":{"details":"Retrieves detailed information about a particular offer","params":{"_offerID":"The ID/index of the specific offer","_username":"The username to get the offer from"},"returns":{"offer":"The complete offer metadata structure"}},"hashUsername(string,uint256)":{"details":"Used in the commit-reveal scheme to prevent front-running attacks","params":{"_randomNumber":"Random number to add entropy","_username":"The username to hash"},"returns":{"_0":"Hash of the username and random number"}},"isUsernameAvailable(string)":{"details":"A username is available if it was never registered or has been expired for 60+ days","params":{"_username":"The username to check availability for"},"returns":{"_0":"True if the username is available for registration"}},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Tokens are locked in the contract. A 0.5% marketplace fee is applied upon successful sale.","params":{"amount":"Total amount offered (including fee).","expirationDate":"When the offer expires.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment (locks tokens).","originExecutor":"Optional tx.origin restriction.","priorityFeePay":"Optional priority fee for the executor.","signature":"Offerer\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"The address of the offerer.","username":"The target username."},"returns":{"offerID":"The unique ID of the created offer."}},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Part of the commit-reveal scheme. Valid for 30 minutes.","params":{"hashPreRegisteredUsername":"The keccak256 hash of (username + secret).","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment (if fee is paid).","originExecutor":"Optional tx.origin restriction.","priorityFeePay":"Optional priority fee for the executor.","signature":"Registrant\'s authorization signature.","signaturePay":"Signature for the Core payment (if fee is paid).","user":"The address of the registrant."}},"proposeAdmin(address)":{"details":"Time-delayed governance system for admin changes","params":{"_adminToPropose":"Address of the proposed new admin"}},"proposeChangeEvvmAddress(address)":{"details":"Critical function that affects payment processing integration","params":{"_newEvvmAddress":"Address of the new EVVM contract"}},"proposeWithdrawPrincipalTokens(uint256)":{"details":"Amount must be available after reserving funds for operations and locked offers","params":{"_amount":"Amount of Principal Tokens to withdraw"}},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Validates format, availability, and payment. Grants 1 year of ownership.","params":{"lockNumber":"The secret used in the pre-registration hash.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment (registration fee + priority fee).","originExecutor":"Optional tx.origin restriction.","priorityFeePay":"Optional priority fee for the executor.","signature":"Registrant\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"The address of the registrant.","username":"The plain-text username being registered."}},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Shifts all subsequent entries to fill gap Removal Process: 1. Validates user owns username 2. Validates key exists in metadata slots 3. Deletes entry at key position 4. Shifts all entries after key down by 1 5. Decrements customMetadataMaxSlots Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + key - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Array Reordering: - Shifts entries from key+1 to maxSlots - Maintains continuous slot indexing - No gaps in metadata array","params":{"identity":"Username to remove metadata from","key":"Index of metadata entry to remove","nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner"}},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Dynamic pricing based on timing and market demand Pricing Rules: - Free: Renewed within grace period after expiration - Variable: Based on highest active offer (min 500 PT) - Fixed: 500,000 PT if renewed >1 year early - Can renew up to 100 years in advance Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: seePriceToRenew calculates cost - Paid through requestPay (locks tokens) - Staker reward: 1x reward + 50% of price + fee - makeCaPay distributes rewards Renewal Logic: - Extends expirationDate by 366 days - Preserves ownership and all metadata - Cannot exceed 100 years (36500 days)","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address of username owner","username":"Username to renew"}},"seePriceToRenew(string)":{"details":"Pricing varies based on timing and market demand: - Free if renewed before expiration (within grace period) - Variable cost based on highest active offer (minimum 500 Principal Token) - Fixed 500,000 Principal Token if renewed more than 1 year before expiration","params":{"_identity":"The username to calculate renewal price for"},"returns":{"price":"The cost in Principal Tokens to renew the username"}},"strictVerifyIfIdentityExist(string)":{"details":"More strict version that reverts instead of returning false","params":{"_username":"The username to verify"},"returns":{"_0":"True if the username exists (will revert if not)"}},"verifyIfIdentityExists(string)":{"details":"Handles both pre-registrations and actual username registrations","params":{"_identity":"The identity/username to check"},"returns":{"_0":"True if the identity exists and is valid"}},"verifyStrictAndGetOwnerOfIdentity(string)":{"details":"Combines strict verification with owner lookup in one call","params":{"_username":"The username to verify and get owner for"},"returns":{"answer":"Address of the username owner (reverts if username doesn\'t exist)"}},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Can only be called by offer creator or after expire Withdrawal Flow: 1. Validates offer exists and belongs to user 2. Optionally validates expiration date passed 3. Refunds locked tokens to offerer 4. Processes optional priority fee 5. Deletes offer and updates slot count Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double withdrawals Core.sol Integration: - Refund: offer amount via makeTransfer to offerer - Priority fee: via requestPay (if > 0) - Staker reward: 1x reward + priority fee - makeCaPay distributes to caller if staker Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases both offer amount and marketplace fee - Returns funds to original offerer","params":{"nonce":"Async nonce for replay protection","noncePay":"Nonce for EVVM payment transaction","offerID":"Unique identifier of offer to withdraw","priorityFeePay":"Priority fee for faster processing","signature":"Signature for Core.sol validation","signaturePay":"Signature for EVVM payment","user":"Address that made original offer","username":"Username offer was made for"}}},"stateVariables":{"TIME_TO_ACCEPT_PROPOSAL":{"details":"Time delay for accepting proposals (1 day)"},"admin":{"details":"Proposal system for admin address changes"},"amountToWithdrawTokens":{"details":"Proposal system for token withdrawal with delay"},"core":{"details":"EVVM contract for payment processing"},"coreAddress":{"details":"Proposal system for Core address changes"},"identityCustomMetadata":{"details":"Nested mapping: username => key => custom value"},"identityDetails":{"details":"Mapping from username to core metadata"},"principalTokenTokenLockedForWithdrawOffers":{"details":"Principal Tokens locked in pending marketplace"},"usernameOffers":{"details":"Nested mapping: username => offer ID => offer"}},"title":"EVVM Name Service","version":1},"userdoc":{"kind":"user","methods":{"acceptChangeEvvmAddress()":{"notice":"Executes the approved EVVM address change"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Accepts marketplace offer and transfers ownership"},"acceptProposeAdmin()":{"notice":"Accepts the admin proposal and becomes the new admin"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Adds custom metadata to username using schema format"},"cancelChangeEvvmAddress()":{"notice":"Cancels the pending EVVM address change proposal"},"cancelProposeAdmin()":{"notice":"Cancels the current admin proposal"},"cancelWithdrawPrincipalTokens()":{"notice":"Cancels the pending token withdrawal proposal"},"claimWithdrawPrincipalTokens()":{"notice":"Executes the approved token withdrawal"},"constructor":{"notice":"Initializes the NameService with the Core contract and initial administrator."},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Removes all custom metadata entries for username"},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Completely removes username and all data"},"getAdmin()":{"notice":"Gets the current admin address"},"getAdminFullDetails()":{"notice":"Gets complete admin information including pending proposals"},"getAmountOfCustomMetadata(string)":{"notice":"Gets the number of custom metadata entries for a username"},"getCoreAddress()":{"notice":"Gets the current EVVM contract address"},"getCoreAddressFullDetails()":{"notice":"Gets complete EVVM address information including pending proposals"},"getCustomMetadataMaxSlotsOfIdentity(string)":{"notice":"Gets the maximum number of metadata slots available for a username"},"getEvvmID()":{"notice":"Gets the unique identifier string for this EVVM instance"},"getExpireDateOfIdentity(string)":{"notice":"Gets the expiration date of a username registration"},"getFullCustomMetadataOfIdentity(string)":{"notice":"Retrieves all custom metadata entries for a username"},"getIdentityBasicMetadata(string)":{"notice":"Gets basic identity information (owner and expiration date)"},"getLengthOfOffersUsername(string)":{"notice":"Counts the total number of offers made for a username"},"getOffersOfUsername(string)":{"notice":"Gets all offers made for a specific username"},"getOwnerOfIdentity(string)":{"notice":"Gets the owner address of a registered identity"},"getPriceOfRegistration(string)":{"notice":"Gets price to register an username"},"getPriceToAddCustomMetadata()":{"notice":"Gets the current price to add custom metadata to a username"},"getPriceToFlushCustomMetadata(string)":{"notice":"Gets the cost to remove all custom metadata entries from a username"},"getPriceToFlushUsername(string)":{"notice":"Gets the cost to completely remove a username and all its data"},"getPriceToRemoveCustomMetadata()":{"notice":"Gets the current price to remove a single custom metadata entry"},"getProposedWithdrawAmountFullDetails()":{"notice":"Gets information about pending token withdrawal proposals"},"getSingleCustomMetadataOfIdentity(string,uint256)":{"notice":"Gets a specific custom metadata entry by index"},"getSingleOfferOfUsername(string,uint256)":{"notice":"Gets a specific offer for a username by offer ID"},"hashUsername(string,uint256)":{"notice":"Creates a hash of username and random number for pre-registration"},"isUsernameAvailable(string)":{"notice":"Checks if a username is available for registration"},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Places a purchase offer on an existing username."},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Commits a username hash to prevent front-running before registration."},"proposeAdmin(address)":{"notice":"Proposes new admin address with 1-day delay"},"proposeChangeEvvmAddress(address)":{"notice":"Proposes to change the EVVM contract address"},"proposeWithdrawPrincipalTokens(uint256)":{"notice":"Proposes to withdraw Principal Tokens from the contract"},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Finalizes username registration by revealing the secret associated with a pre-registration."},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Removes specific custom metadata entry by key"},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Renews username registration for another year"},"seePriceToRenew(string)":{"notice":"Calculates the cost to renew a username registration"},"strictVerifyIfIdentityExist(string)":{"notice":"Strictly verifies if an identity exists and reverts if not found"},"verifyIfIdentityExists(string)":{"notice":"Checks if an identity exists in the system"},"verifyStrictAndGetOwnerOfIdentity(string)":{"notice":"Verifies identity exists and returns owner address"},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Withdraws marketplace offer and refunds tokens"}},"notice":"_ _ | \\\\ | | | \\\\| | __ _ _ __ ___ ___ | . ` |/ _` | \'_ ` _ \\\\ / _ \\\\ | |\\\\ | (_| | | | | | | __/ \\\\_| \\\\_/\\\\__,_|_| |_| |_|\\\\___| _____ _ / ___| (_) \\\\ `--. ___ _ ____ ___ ___ ___ `--. \\\\/ _ | \'__\\\\ \\\\ / | |/ __/ _ \\\\ /\\\\__/ | __| | \\\\ V /| | (_| __/ \\\\____/ \\\\___|_| \\\\_/ |_|\\\\___\\\\___| \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d Identity and username registration system for the EVVM ecosystem.","version":1}},"settings":{"compilationTarget":{"src/contracts/nameService/NameService.sol":"NameService"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_coreAddress",type:"address"},{internalType:"address",name:"_initialOwner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"AmountMustBeGreaterThanZero"},{inputs:[],type:"error",name:"CannotBeBeforeCurrentTime"},{inputs:[],type:"error",name:"EmptyCustomMetadata"},{inputs:[],type:"error",name:"IdentityIsNotAUsername"},{inputs:[],type:"error",name:"InvalidAdminProposal"},{inputs:[],type:"error",name:"InvalidEvvmAddress"},{inputs:[],type:"error",name:"InvalidKey"},{inputs:[],type:"error",name:"InvalidUsername"},{inputs:[],type:"error",name:"InvalidWithdrawAmount"},{inputs:[],type:"error",name:"LockTimeNotExpired"},{inputs:[],type:"error",name:"OfferInactive"},{inputs:[],type:"error",name:"OwnershipExpired"},{inputs:[],type:"error",name:"PreRegistrationNotValid"},{inputs:[],type:"error",name:"RenewalTimeLimitExceeded"},{inputs:[],type:"error",name:"SenderIsNotAdmin"},{inputs:[],type:"error",name:"SenderIsNotProposedAdmin"},{inputs:[],type:"error",name:"UserIsNotOwnerOfIdentity"},{inputs:[],type:"error",name:"UserIsNotOwnerOfOffer"},{inputs:[],type:"error",name:"UsernameAlreadyRegistered"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptChangeEvvmAddress"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"offerID",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"acceptOffer"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptProposeAdmin"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"identity",type:"string"},{internalType:"string",name:"value",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"addCustomMetadata"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelChangeEvvmAddress"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelProposeAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelWithdrawPrincipalTokens"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"claimWithdrawPrincipalTokens"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"identity",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"flushCustomMetadata"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"flushUsername"},{inputs:[],stateMutability:"view",type:"function",name:"getAdmin",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getAdminFullDetails",outputs:[{internalType:"address",name:"currentAdmin",type:"address"},{internalType:"address",name:"proposalAdmin",type:"address"},{internalType:"uint256",name:"timeToAcceptAdmin",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getAmountOfCustomMetadata",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddressFullDetails",outputs:[{internalType:"address",name:"currentEvvmAddress",type:"address"},{internalType:"address",name:"proposalEvvmAddress",type:"address"},{internalType:"uint256",name:"timeToAcceptEvvmAddress",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getCustomMetadataMaxSlotsOfIdentity",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"getExpireDateOfIdentity",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getFullCustomMetadataOfIdentity",outputs:[{internalType:"string[]",name:"",type:"string[]"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getIdentityBasicMetadata",outputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getLengthOfOffersUsername",outputs:[{internalType:"uint256",name:"length",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getOffersOfUsername",outputs:[{internalType:"struct NameServiceStructs.OfferMetadata[]",name:"offers",type:"tuple[]",components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"uint256",name:"expirationDate",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}]}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"getOwnerOfIdentity",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"string",name:"username",type:"string"}],stateMutability:"view",type:"function",name:"getPriceOfRegistration",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPriceToAddCustomMetadata",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"getPriceToFlushCustomMetadata",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"getPriceToFlushUsername",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPriceToRemoveCustomMetadata",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getProposedWithdrawAmountFullDetails",outputs:[{internalType:"uint256",name:"proposalAmountToWithdrawTokens",type:"uint256"},{internalType:"uint256",name:"timeToAcceptAmountToWithdrawTokens",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"},{internalType:"uint256",name:"_key",type:"uint256"}],stateMutability:"view",type:"function",name:"getSingleCustomMetadataOfIdentity",outputs:[{internalType:"string",name:"",type:"string"}]},{inputs:[{internalType:"string",name:"_username",type:"string"},{internalType:"uint256",name:"_offerID",type:"uint256"}],stateMutability:"view",type:"function",name:"getSingleOfferOfUsername",outputs:[{internalType:"struct NameServiceStructs.OfferMetadata",name:"offer",type:"tuple",components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"uint256",name:"expirationDate",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}]}]},{inputs:[{internalType:"string",name:"_username",type:"string"},{internalType:"uint256",name:"_randomNumber",type:"uint256"}],stateMutability:"pure",type:"function",name:"hashUsername",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"isUsernameAvailable",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"expirationDate",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"makeOffer",outputs:[{internalType:"uint256",name:"offerID",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bytes32",name:"hashPreRegisteredUsername",type:"bytes32"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"preRegistrationUsername"},{inputs:[{internalType:"address",name:"_adminToPropose",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeAdmin"},{inputs:[{internalType:"address",name:"_newEvvmAddress",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeChangeEvvmAddress"},{inputs:[{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeWithdrawPrincipalTokens"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"lockNumber",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"registrationUsername"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"identity",type:"string"},{internalType:"uint256",name:"key",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"removeCustomMetadata"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"renewUsername"},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"seePriceToRenew",outputs:[{internalType:"uint256",name:"price",type:"uint256"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"strictVerifyIfIdentityExist",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"string",name:"_identity",type:"string"}],stateMutability:"view",type:"function",name:"verifyIfIdentityExists",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"string",name:"_username",type:"string"}],stateMutability:"view",type:"function",name:"verifyStrictAndGetOwnerOfIdentity",outputs:[{internalType:"address",name:"answer",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"string",name:"username",type:"string"},{internalType:"uint256",name:"offerID",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"withdrawOffer"}],devdoc:{kind:"dev",methods:{"acceptChangeEvvmAddress()":{details:"Can only be called after the time delay has passed"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Can only be called by current owner before expiration Acceptance Flow: 1. Validates user is current username owner 2. Validates offer exists and not expired 3. Transfers offer amount to seller 4. Transfers ownership to offerer 5. Processes optional priority fee 6. Deletes offer and unlocks tokens Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double acceptance Core.sol Integration: - Payment: offer amount via makeCaPay to seller - Priority fee: via requestPay (if > 0) - Fee Distribution: * 99.5% to seller (locked amount) * 0.5% + reward to staker (if applicable) - makeCaPay transfers from locked funds Ownership Transfer: - Changes identityDetails[username].owner - Preserves all metadata and expiration - Transfers all custom metadata slots Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases offer amount + marketplace fee - Distributes to seller and staker",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",offerID:"Unique identifier of offer to accept",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of current username owner",username:"Username being sold"}},"acceptProposeAdmin()":{details:"Can only be called by the proposed admin after the time delay has passed"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:`Metadata format: [schema]:[subschema]>[value] Standard Format Examples: - memberOf:>EVVM - socialMedia:x>jistro (Twitter/X handle) - email:dev>jistro[at]evvm.org (dev email) - email:callme>contact[at]jistro.xyz (contact) Schema Guidelines: - Based on https://schema.org/docs/schemas.html - ':' separates schema from subschema - '>' separates metadata from value - Pad spaces if schema/subschema < 5 chars - Use "socialMedia" for social networks Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + value - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Slot Management: - Increments customMetadataMaxSlots - Each slot holds one metadata entry - No limit on number of slots`,params:{identity:"Username to add metadata to",nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner",value:"Metadata string following format"}},"cancelChangeEvvmAddress()":{details:"Only the current admin can cancel pending proposals"},"cancelProposeAdmin()":{details:"Only the current admin can cancel pending proposals"},"cancelWithdrawPrincipalTokens()":{details:"Only the current admin can cancel pending proposals"},"claimWithdrawPrincipalTokens()":{details:"Can only be called after the time delay has passed"},constructor:{params:{_coreAddress:"The address of the EVVM Core contract.",_initialOwner:"The address granted administrative privileges."}},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"More gas-efficient than removing individually Flush Process: 1. Validates user owns username 2. Validates metadata slots exist (not empty) 3. Calculates cost based on slot count 4. Deletes all metadata entries in loop 5. Resets customMetadataMaxSlots to 0 Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushCustomMetadata (per slot) - Cost: 10x EVVM reward per metadata entry - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes batch rewards Efficiency: - Single transaction for all metadata - Batch pricing for multiple entries - Cheaper than calling removeCustomMetadata N times",params:{identity:"Username to flush all metadata from",nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner"}},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Deletes username, metadata, makes available for re-registration Flush Process: 1. Validates user owns username 2. Validates not expired (must be active) 3. Validates is actual username (not temp hash) 4. Calculates cost based on metadata + username 5. Deletes all metadata entries 6. Resets username to default state 7. Preserves offerMaxSlots history Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: getPriceToFlushUsername - Cost: Base + (10x reward per metadata slot) - Paid through requestPay (locks tokens) - Staker reward: 5x reward per slot + priority - makeCaPay distributes to caller Cleanup: - Deletes all custom metadata slots - Sets owner to address(0) - Sets expirationDate to 0 - Resets customMetadataMaxSlots to 0 - Keeps offerMaxSlots for history - Sets flagNotAUsername to 0x00 - Username becomes available for re-registration",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner",username:"Username to completely remove"}},"getAdmin()":{details:"Returns the address with administrative privileges",returns:{_0:"The current admin address"}},"getAdminFullDetails()":{details:"Returns current admin, proposed admin, and proposal acceptance deadline",returns:{currentAdmin:"Current administrative address",proposalAdmin:"Proposed new admin address (if any)",timeToAcceptAdmin:"Timestamp when proposal can be accepted"}},"getAmountOfCustomMetadata(string)":{details:"Returns the count of metadata slots currently used",params:{_username:"The username to count metadata for"},returns:{_0:"Number of custom metadata entries"}},"getCoreAddress()":{details:"Returns the address of the EVVM contract used for payment processing",returns:{_0:"The current EVVM contract address"}},"getCoreAddressFullDetails()":{details:"Returns current EVVM address, proposed address, and proposal acceptance deadline",returns:{currentEvvmAddress:"Current EVVM contract address",proposalEvvmAddress:"Proposed new EVVM address (if any)",timeToAcceptEvvmAddress:"Timestamp when proposal can be accepted"}},"getCustomMetadataMaxSlotsOfIdentity(string)":{details:"Returns the total capacity for custom metadata entries",params:{_username:"The username to check metadata capacity for"},returns:{_0:"Maximum number of metadata slots"}},"getEvvmID()":{details:"Returns the EvvmID used for distinguishing different EVVM deployments",returns:{_0:"Unique EvvmID string"}},"getExpireDateOfIdentity(string)":{details:"Returns the timestamp when the username registration expires",params:{_identity:"The username to check expiration for"},returns:{_0:"The expiration timestamp in seconds since Unix epoch"}},"getFullCustomMetadataOfIdentity(string)":{details:"Returns an array containing all metadata strings in order",params:{_username:"The username to get metadata for"},returns:{_0:"Array of all custom metadata strings"}},"getIdentityBasicMetadata(string)":{details:"Returns essential metadata for quick identity verification",params:{_username:"The username to get basic info for"},returns:{_0:"Owner address and expiration timestamp"}},"getLengthOfOffersUsername(string)":{details:"Iterates through offers to find the actual count of non-empty slots",params:{_username:"The username to count offers for"},returns:{length:"Total number of offers that have been made"}},"getOffersOfUsername(string)":{details:"Returns both active and expired offers that haven't been withdrawn",params:{_username:"The username to get offers for"},returns:{offers:"Array of all offer metadata structures"}},"getOwnerOfIdentity(string)":{details:"Returns the current owner address for any valid identity",params:{_username:"The username to query"},returns:{_0:"Address of the username owner"}},"getPriceOfRegistration(string)":{details:"Price is fully dynamic based on existing offers and timing - If dosnt have offers, price is 100x current EVVM reward amount - If has offers, price is calculated via seePriceToRenew function",params:{username:"The username to get registration price for"},returns:{_0:"The current registration price in Principal Tokens"}},"getPriceToAddCustomMetadata()":{details:"Price is dynamic based on current EVVM reward amount",returns:{price:"Cost in Principal Tokens (10x current reward amount)"}},"getPriceToFlushCustomMetadata(string)":{details:"Cost scales with the number of metadata entries to remove",params:{_identity:"The username to calculate flush cost for"},returns:{price:"Total cost in Principal Tokens (10x reward amount per metadata entry)"}},"getPriceToFlushUsername(string)":{details:"Includes cost for metadata removal plus base username deletion fee",params:{_identity:"The username to calculate deletion cost for"},returns:{price:"Total cost in Principal Tokens (metadata flush cost + 1x reward amount)"}},"getPriceToRemoveCustomMetadata()":{details:"Price is dynamic based on current EVVM reward amount",returns:{price:"Cost in Principal Tokens (10x current reward amount)"}},"getProposedWithdrawAmountFullDetails()":{details:"Returns proposed withdrawal amount and acceptance deadline",returns:{proposalAmountToWithdrawTokens:"Proposed withdrawal amount in Principal Tokens",timeToAcceptAmountToWithdrawTokens:"Timestamp when proposal can be executed"}},"getSingleCustomMetadataOfIdentity(string,uint256)":{details:"Retrieves metadata at a specific slot position",params:{_key:"The index of the metadata entry to retrieve",_username:"The username to get metadata from"},returns:{_0:"The metadata string at the specified index"}},"getSingleOfferOfUsername(string,uint256)":{details:"Retrieves detailed information about a particular offer",params:{_offerID:"The ID/index of the specific offer",_username:"The username to get the offer from"},returns:{offer:"The complete offer metadata structure"}},"hashUsername(string,uint256)":{details:"Used in the commit-reveal scheme to prevent front-running attacks",params:{_randomNumber:"Random number to add entropy",_username:"The username to hash"},returns:{_0:"Hash of the username and random number"}},"isUsernameAvailable(string)":{details:"A username is available if it was never registered or has been expired for 60+ days",params:{_username:"The username to check availability for"},returns:{_0:"True if the username is available for registration"}},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Tokens are locked in the contract. A 0.5% marketplace fee is applied upon successful sale.",params:{amount:"Total amount offered (including fee).",expirationDate:"When the offer expires.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment (locks tokens).",originExecutor:"Optional tx.origin restriction.",priorityFeePay:"Optional priority fee for the executor.",signature:"Offerer's authorization signature.",signaturePay:"Signature for the Core payment.",user:"The address of the offerer.",username:"The target username."},returns:{offerID:"The unique ID of the created offer."}},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Part of the commit-reveal scheme. Valid for 30 minutes.",params:{hashPreRegisteredUsername:"The keccak256 hash of (username + secret).",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment (if fee is paid).",originExecutor:"Optional tx.origin restriction.",priorityFeePay:"Optional priority fee for the executor.",signature:"Registrant's authorization signature.",signaturePay:"Signature for the Core payment (if fee is paid).",user:"The address of the registrant."}},"proposeAdmin(address)":{details:"Time-delayed governance system for admin changes",params:{_adminToPropose:"Address of the proposed new admin"}},"proposeChangeEvvmAddress(address)":{details:"Critical function that affects payment processing integration",params:{_newEvvmAddress:"Address of the new EVVM contract"}},"proposeWithdrawPrincipalTokens(uint256)":{details:"Amount must be available after reserving funds for operations and locked offers",params:{_amount:"Amount of Principal Tokens to withdraw"}},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Validates format, availability, and payment. Grants 1 year of ownership.",params:{lockNumber:"The secret used in the pre-registration hash.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment (registration fee + priority fee).",originExecutor:"Optional tx.origin restriction.",priorityFeePay:"Optional priority fee for the executor.",signature:"Registrant's authorization signature.",signaturePay:"Signature for the Core payment.",user:"The address of the registrant.",username:"The plain-text username being registered."}},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Shifts all subsequent entries to fill gap Removal Process: 1. Validates user owns username 2. Validates key exists in metadata slots 3. Deletes entry at key position 4. Shifts all entries after key down by 1 5. Decrements customMetadataMaxSlots Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes identity + key - Prevents replay attacks Core.sol Integration: - Payment: 10x EVVM reward amount - Paid through requestPay (locks tokens) - Staker reward: 5x reward + priority fee - makeCaPay distributes rewards Array Reordering: - Shifts entries from key+1 to maxSlots - Maintains continuous slot indexing - No gaps in metadata array",params:{identity:"Username to remove metadata from",key:"Index of metadata entry to remove",nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner"}},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Dynamic pricing based on timing and market demand Pricing Rules: - Free: Renewed within grace period after expiration - Variable: Based on highest active offer (min 500 PT) - Fixed: 500,000 PT if renewed >1 year early - Can renew up to 100 years in advance Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username only - Prevents replay attacks Core.sol Integration: - Payment: seePriceToRenew calculates cost - Paid through requestPay (locks tokens) - Staker reward: 1x reward + 50% of price + fee - makeCaPay distributes rewards Renewal Logic: - Extends expirationDate by 366 days - Preserves ownership and all metadata - Cannot exceed 100 years (36500 days)",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address of username owner",username:"Username to renew"}},"seePriceToRenew(string)":{details:"Pricing varies based on timing and market demand: - Free if renewed before expiration (within grace period) - Variable cost based on highest active offer (minimum 500 Principal Token) - Fixed 500,000 Principal Token if renewed more than 1 year before expiration",params:{_identity:"The username to calculate renewal price for"},returns:{price:"The cost in Principal Tokens to renew the username"}},"strictVerifyIfIdentityExist(string)":{details:"More strict version that reverts instead of returning false",params:{_username:"The username to verify"},returns:{_0:"True if the username exists (will revert if not)"}},"verifyIfIdentityExists(string)":{details:"Handles both pre-registrations and actual username registrations",params:{_identity:"The identity/username to check"},returns:{_0:"True if the identity exists and is valid"}},"verifyStrictAndGetOwnerOfIdentity(string)":{details:"Combines strict verification with owner lookup in one call",params:{_username:"The username to verify and get owner for"},returns:{answer:"Address of the username owner (reverts if username doesn't exist)"}},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Can only be called by offer creator or after expire Withdrawal Flow: 1. Validates offer exists and belongs to user 2. Optionally validates expiration date passed 3. Refunds locked tokens to offerer 4. Processes optional priority fee 5. Deletes offer and updates slot count Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes username + offer ID - Prevents replay attacks and double withdrawals Core.sol Integration: - Refund: offer amount via makeTransfer to offerer - Priority fee: via requestPay (if > 0) - Staker reward: 1x reward + priority fee - makeCaPay distributes to caller if staker Token Unlocking: - Decreases principalTokenTokenLockedForWithdrawOffers - Releases both offer amount and marketplace fee - Returns funds to original offerer",params:{nonce:"Async nonce for replay protection",noncePay:"Nonce for EVVM payment transaction",offerID:"Unique identifier of offer to withdraw",priorityFeePay:"Priority fee for faster processing",signature:"Signature for Core.sol validation",signaturePay:"Signature for EVVM payment",user:"Address that made original offer",username:"Username offer was made for"}}},version:1},userdoc:{kind:"user",methods:{"acceptChangeEvvmAddress()":{notice:"Executes the approved EVVM address change"},"acceptOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Accepts marketplace offer and transfers ownership"},"acceptProposeAdmin()":{notice:"Accepts the admin proposal and becomes the new admin"},"addCustomMetadata(address,string,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Adds custom metadata to username using schema format"},"cancelChangeEvvmAddress()":{notice:"Cancels the pending EVVM address change proposal"},"cancelProposeAdmin()":{notice:"Cancels the current admin proposal"},"cancelWithdrawPrincipalTokens()":{notice:"Cancels the pending token withdrawal proposal"},"claimWithdrawPrincipalTokens()":{notice:"Executes the approved token withdrawal"},constructor:{notice:"Initializes the NameService with the Core contract and initial administrator."},"flushCustomMetadata(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Removes all custom metadata entries for username"},"flushUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Completely removes username and all data"},"getAdmin()":{notice:"Gets the current admin address"},"getAdminFullDetails()":{notice:"Gets complete admin information including pending proposals"},"getAmountOfCustomMetadata(string)":{notice:"Gets the number of custom metadata entries for a username"},"getCoreAddress()":{notice:"Gets the current EVVM contract address"},"getCoreAddressFullDetails()":{notice:"Gets complete EVVM address information including pending proposals"},"getCustomMetadataMaxSlotsOfIdentity(string)":{notice:"Gets the maximum number of metadata slots available for a username"},"getEvvmID()":{notice:"Gets the unique identifier string for this EVVM instance"},"getExpireDateOfIdentity(string)":{notice:"Gets the expiration date of a username registration"},"getFullCustomMetadataOfIdentity(string)":{notice:"Retrieves all custom metadata entries for a username"},"getIdentityBasicMetadata(string)":{notice:"Gets basic identity information (owner and expiration date)"},"getLengthOfOffersUsername(string)":{notice:"Counts the total number of offers made for a username"},"getOffersOfUsername(string)":{notice:"Gets all offers made for a specific username"},"getOwnerOfIdentity(string)":{notice:"Gets the owner address of a registered identity"},"getPriceOfRegistration(string)":{notice:"Gets price to register an username"},"getPriceToAddCustomMetadata()":{notice:"Gets the current price to add custom metadata to a username"},"getPriceToFlushCustomMetadata(string)":{notice:"Gets the cost to remove all custom metadata entries from a username"},"getPriceToFlushUsername(string)":{notice:"Gets the cost to completely remove a username and all its data"},"getPriceToRemoveCustomMetadata()":{notice:"Gets the current price to remove a single custom metadata entry"},"getProposedWithdrawAmountFullDetails()":{notice:"Gets information about pending token withdrawal proposals"},"getSingleCustomMetadataOfIdentity(string,uint256)":{notice:"Gets a specific custom metadata entry by index"},"getSingleOfferOfUsername(string,uint256)":{notice:"Gets a specific offer for a username by offer ID"},"hashUsername(string,uint256)":{notice:"Creates a hash of username and random number for pre-registration"},"isUsernameAvailable(string)":{notice:"Checks if a username is available for registration"},"makeOffer(address,string,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Places a purchase offer on an existing username."},"preRegistrationUsername(address,bytes32,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Commits a username hash to prevent front-running before registration."},"proposeAdmin(address)":{notice:"Proposes new admin address with 1-day delay"},"proposeChangeEvvmAddress(address)":{notice:"Proposes to change the EVVM contract address"},"proposeWithdrawPrincipalTokens(uint256)":{notice:"Proposes to withdraw Principal Tokens from the contract"},"registrationUsername(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Finalizes username registration by revealing the secret associated with a pre-registration."},"removeCustomMetadata(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Removes specific custom metadata entry by key"},"renewUsername(address,string,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Renews username registration for another year"},"seePriceToRenew(string)":{notice:"Calculates the cost to renew a username registration"},"strictVerifyIfIdentityExist(string)":{notice:"Strictly verifies if an identity exists and reverts if not found"},"verifyIfIdentityExists(string)":{notice:"Checks if an identity exists in the system"},"verifyStrictAndGetOwnerOfIdentity(string)":{notice:"Verifies identity exists and returns owner address"},"withdrawOffer(address,string,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Withdraws marketplace offer and refunds tokens"}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/nameService/NameService.sol":"NameService"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:64},lk={abi:[{type:"constructor",inputs:[{name:"_coreAddress",type:"address",internalType:"address"},{name:"_stakingAddress",type:"address",internalType:"address"},{name:"_owner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptFillFixedPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptFillPropotionalPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptMaxLimitFillFixedFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptPercentageFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptWithdrawal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addBalance",inputs:[{name:"_token",type:"address",internalType:"address"},{name:"_amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelOrder",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"dispatchOrder_fillFixedFee",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"amountOfTokenBToFill",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"},{name:"maxFillFixedFee",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"dispatchOrder_fillPropotionalFee",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"amountOfTokenBToFill",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"findMarket",inputs:[{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getAllMarketOrders",inputs:[{name:"market",type:"uint256",internalType:"uint256"}],outputs:[{name:"orders",type:"tuple[]",internalType:"struct P2PSwapStructs.OrderForGetter[]",components:[{name:"marketId",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"seller",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAllMarketsMetadata",inputs:[],outputs:[{name:"",type:"tuple[]",internalType:"struct P2PSwapStructs.MarketInformation[]",components:[{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"maxSlot",type:"uint256",internalType:"uint256"},{name:"ordersAvailable",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getBalanceOfContract",inputs:[{name:"token",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getIfUsedAsyncNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMarketMetadata",inputs:[{name:"market",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct P2PSwapStructs.MarketInformation",components:[{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"maxSlot",type:"uint256",internalType:"uint256"},{name:"ordersAvailable",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getMaxLimitFillFixedFee",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMaxLimitFillFixedFeeProposal",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getMyOrdersInSpecificMarket",inputs:[{name:"user",type:"address",internalType:"address"},{name:"market",type:"uint256",internalType:"uint256"}],outputs:[{name:"orders",type:"tuple[]",internalType:"struct P2PSwapStructs.OrderForGetter[]",components:[{name:"marketId",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"},{name:"seller",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getNextCurrentSyncNonce",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getOrder",inputs:[{name:"market",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"}],outputs:[{name:"order",type:"tuple",internalType:"struct P2PSwapStructs.Order",components:[{name:"seller",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getOwnerProposal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getOwnerTimeToAccept",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPercentageFee",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPrincipalTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getProposalPercentageFee",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getProposedWithdrawal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getRewardPercentage",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct P2PSwapStructs.Percentage",components:[{name:"seller",type:"uint256",internalType:"uint256"},{name:"service",type:"uint256",internalType:"uint256"},{name:"mateStaker",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getRewardPercentageProposal",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct P2PSwapStructs.Percentage",components:[{name:"seller",type:"uint256",internalType:"uint256"},{name:"service",type:"uint256",internalType:"uint256"},{name:"mateStaker",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"makeOrder",inputs:[{name:"user",type:"address",internalType:"address"},{name:"tokenA",type:"address",internalType:"address"},{name:"tokenB",type:"address",internalType:"address"},{name:"amountA",type:"uint256",internalType:"uint256"},{name:"amountB",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[{name:"market",type:"uint256",internalType:"uint256"},{name:"orderId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"proposeFillFixedPercentage",inputs:[{name:"_seller",type:"uint256",internalType:"uint256"},{name:"_service",type:"uint256",internalType:"uint256"},{name:"_mateStaker",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeFillPropotionalPercentage",inputs:[{name:"_seller",type:"uint256",internalType:"uint256"},{name:"_service",type:"uint256",internalType:"uint256"},{name:"_mateStaker",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeMaxLimitFillFixedFee",inputs:[{name:"_maxLimitFillFixedFee",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeOwner",inputs:[{name:"_owner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposePercentageFee",inputs:[{name:"_percentageFee",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeWithdrawal",inputs:[{name:"_tokenToWithdraw",type:"address",internalType:"address"},{name:"_amountToWithdraw",type:"uint256",internalType:"uint256"},{name:"_to",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeFillFixedPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeFillPropotionalPercentage",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeMaxLimitFillFixedFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeOwner",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposePercentageFee",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposeWithdrawal",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"stake",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unstake",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"InvalidServiceSignature",inputs:[]}],bytecode:{object:"0x60806040523461011957604051601f612d6c38819003918201601f19168301916001600160401b03831184841017610105578084926060946040528339810103126101195761004d8161011d565b90610066604061005f6020840161011d565b920161011d565b5f80546001600160a01b039485166001600160a01b03199182161790915560018054938516938216939093179092556002805491909316911617905566038d7ea4c68000600f556101f4600c55604051606081018181106001600160401b03821117610105576103e89160409182526113888152610fa060208201520152611388600555610fa06006556103e8600755604051612c3a90816101328239f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b51906001600160a01b03821682036101195756fe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a96865b1461217a575080631128a79a1461213f578063144384281461208f57806316790f8114611f5e57806317857d9d14611efa57806317c8515214611eb15780631ea43a7d14611d905780631f80982114611d7357806321e5383a14611d2357806326415c7114611cd1578063280e32fb14611c6057806328b44b4b14611c285780632e17de7814611baa57806335287eaf14611b6b57806335b2c22c146119e757806354282704146119825780635dc220751461153e5780635e1a3573146114c15780636b6445b61461144f5780636cd30148146113b25780636cdbf9271461136c5780637280ff351461132f57806374efedc9146112f057806376a75a2914610fe9578063775f3f7e146112d25780637b8ad14914611015578063893d20e814610fee5780638eb163d314610fe957806392aa42c914610e37578063952469d014610a385780639610067114610e195780639c34866614610df25780639dc2060714610dd4578063a694fc3a14610a7a578063a936e0d114610a3d578063af5cecc014610a38578063b3d4fd79146109fb578063b54cfef0146105b6578063b5ed298a14610557578063b7ac72ff146104b1578063c721316314610447578063cfb35fd0146103b2578063d0e3692d14610312578063d89ea03c146102c9578063db7ccd631461027b5763ebbc496514610218575f80fd5b346102785780600319360112610278576003546001600160a01b03811680331480159061026d575b610269576001600160601b0360a01b60025416176002556001600160601b0360a01b1660035580f35b8280fd5b506004544211610240565b80fd5b5034610278576040366003190112610278576001600160a01b03604061029f612202565b92826102a9612218565b9416815260176020522091165f52602052602060405f2054604051908152f35b503461027857806003193601126102785760806001600160a01b03601254166013546001600160a01b036014541660155491604051938452602084015260408301526060820152f35b50346102785760403660031901126102785761032c612202565b60206001600160a01b0360448185541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa9081156103a7576020929161037a575b506040519015158152f35b61039a9150823d84116103a0575b61039281836124b6565b8101906126f6565b5f61036f565b503d610388565b6040513d84823e3d90fd5b5034610278576103c136612288565b916001600160a01b03600254163314801590610429575b6104255782604080516103ea81612462565b8381528460208201520152600855600955600a5562015180420180421161041157600b5580f35b634e487b7160e01b82526011600452602482fd5b8380fd5b506127106104408461043b8585612425565b612425565b14156103d8565b50346102785780600319360112610278576104606125ab565b50506104ad60405161047181612462565b60055481526006546020820152600754604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b0390f35b5034610278576060366003190112610278576104cb612202565b6024356104d661222e565b906001600160a01b03600254163314801590610539575b610425576001600160a01b038093166001600160601b0360a01b6012541617601255601355166001600160601b0360a01b60145416176014556201518042018042116104115760155580f35b506001600160a01b0383168452601a602052604084205481116104ed565b503461027857602036600319011261027857610571612202565b6001600160a01b036002541633036105b2576001600160a01b03166001600160601b0360a01b60035416176003556201518042018042116104115760045580f35b5080fd5b503461027857806105c636612300565b93899f9b9e9891958f9397949d8c9f9b819d8c546001600160a01b031696604051936020850160a0905260c085016009905260e085016836b0b5b2a7b93232b960b91b90526001600160a01b031660408501526001600160a01b03166060840152608083015260a082015260e08152610641610100826124b6565b8051906020012094843b156109f7578b61067a8f96948c98969488946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156109ec579089916109d3575b50506106a993929161069f9136916126b0565b91888a8888612786565b6001600160a01b03831684526017602052604084206001600160a01b0388165f5260205260405f20549687156108fc575b508684526018602052600260408520015487855260186020526003604086200154145f146108595750600260249787855260186020528160408620016107208154612514565b905587855260186020526003604086200161073b8154612514565b9055878552601860205281604086200154965b6001600160a01b036040519461076386612462565b16845260208401908152604084019182528886526019602052604086208887526020526001600160a01b038060408820955116166001600160601b0360a01b8554161784555160018401555191015560206001600160a01b0383541660405197888092630a1ad2d160e21b82523360048301525afa80156103a757604096839161083a575b5061081c575b5050156108105761080460ff60035b1633612890565b82519182526020820152f35b61080460ff60026107fd565b8280610829575b506107ee565b6108339133612721565b5f82610823565b610853915060203d6020116103a05761039281836124b6565b5f6107e8565b9660015b87855260186020526002604086200154600181018091116108e85781116108db578785526019602052604085208186526020526001600160a01b03604086205416156108b1576108ac90612514565b61085d565b6024985090600291965b8886526018602052600360408720016108d48154612514565b905561074e565b50600290602498966108bb565b634e487b7160e01b86526011600452602486fd5b90965061090a601654612514565b806016556001600160a01b03841685526017602052604085206001600160a01b0383165f5260205260405f20556003604051916109468361247e565b6001600160a01b03851683526001600160a01b036020840191168152604083018681526001600160a01b03606085019288845260165489526018602052818060408b20975116166001600160601b0360a01b87541617865551166001600160a01b036001860191166001600160601b0360a01b82541617905551600284015551910155601654955f6106da565b816109dd916124b6565b6109e857875f61068c565b8780fd5b6040513d8b823e3d90fd5b8d80fd5b5034610278576020366003190112610278576001600160a01b0360025416330361027857600435600d5562015180420180421161041157600e5580f35b6123cf565b50346102785780600319360112610278576001600160a01b03600254163314801590610a6f575b6102785780600d5580f35b50600e544211610a64565b503461027857602036600319011261027857806004356001600160a01b03600254163314801590610d4b575b610c40576001600160a01b0360015416803b15610d47578280916024604051809481936399b4c3ef60e01b83528760048401525af1908115610d3c578391610d27575b50506001600160a01b0360015416604051630412d6ed60e31b8152602081600481855afa8015610d1c576001600160a01b03918591610cfd575b501660405192630412d6ed60e31b8452602084600481865afa938415610cd5576001600160a01b03946020918791610ce0575b5060046040518097819363280e32fb60e01b8352165afa938415610cd5578594610ca4575b50604051631961201760e31b8152602081600481875afa908115610c99578691610c5c575b5090610bab9161270e565b90803b15610c585760405163c898a6e960e01b81526001600160a01b039384166004820152939092166024840152604483015282908290606490829084905af180156103a757610c43575b506001600160a01b0360015416803b15610c405781809160046040518094819363c9d2beb160e01b83525af180156103a757610c2f5750f35b81610c39916124b6565b6102785780f35b50fd5b81610c4d916124b6565b61027857805f610bf6565b8480fd5b919550506020813d602011610c91575b81610c79602093836124b6565b81010312610c8d5751859490610bab610ba0565b5f80fd5b3d9150610c6c565b6040513d88823e3d90fd5b610cc791945060203d602011610cce575b610cbf81836124b6565b810190612636565b925f610b7b565b503d610cb5565b6040513d87823e3d90fd5b610cf79150823d8411610cce57610cbf81836124b6565b5f610b56565b610d16915060203d602011610cce57610cbf81836124b6565b5f610b23565b6040513d86823e3d90fd5b81610d31916124b6565b610c4057815f610ae9565b6040513d85823e3d90fd5b5050fd5b50600460206001600160a01b036001541660405192838092631961201760e31b82525afa908115610d3c578391610d9c575b50610d88908261270e565b60018352601a602052604083205410610aa6565b9250506020823d602011610dcc575b81610db8602093836124b6565b81010312610c8d57610d8883925190610d7d565b3d9150610dab565b50346102785780600319360112610278576020601054604051908152f35b503461027857806003193601126102785760206001600160a01b0360035416604051908152f35b50346102785780600319360112610278576020600c54604051908152f35b50346102785780610e4736612300565b969a959194929b97998e94919a819e9a9f6001600160a01b03610e6e91541692898c6129b0565b92823b15610fe5578b610e9f8f979289979388946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156103a757610fcc575b50506001600160a01b0384168b52601760205260408b206001600160a01b0383165f5260205260405f205497610ee48a8a612a0a565b928c60028501998a5491508d610f0a612710610f02600c548661270e565b048094612425565b809110610f87578e610f789f8b610f5b98610f4595610f639f610f3e948a60019f8d93610f389136916126b0565b95612786565b848b612a38565b9954906001600160a01b03865416913393612a5a565b015491612721565b15610f7b57610f73600533612890565b61284c565b80f35b610f7360ff60046107fd565b60405162461bcd60e51b815260206004820152601f60248201527f496e737566696369656e7420616d6f756e744f66546f6b656e546f46696c6c006044820152606490fd5b81610fd6916124b6565b610fe1578a5f610eae565b8a80fd5b8680fd5b6122a2565b503461027857806003193601126102785760206001600160a01b0360025416604051908152f35b5034610278576101a036600319011261027857611030612202565b611038612218565b61104061222e565b6064359260843592611050612244565b9160c435916001600160a01b03831683036109e8576101043567ffffffffffffffff81116112ce5761108690369060040161225a565b969094610124358a610164359967ffffffffffffffff8b116105b2576110b18c9b369060040161225a565b9490998b6110cf610184359f6001600160a01b03875416928b6129b0565b813b156112ca578580946111018d978f96604051998a9889978896637d3d171560e11b885260e4359360048901612655565b03925af180156103a7576112b5575b50506001600160a01b0384168b52601760205260408b206001600160a01b0389165f5260205260405f2054976111468a8a612a0a565b9360028501988d8d8b54918091612710611162600c548661270e565b04111561128f5750508d6103e88102908082046103e8149015171561127a576127109004969594939291906111ab8f5b6111a58a6111a08386612425565b612418565b92612425565b908310611236578f9e610f789f6111f760019a8f610f639f8f8a906111ea928d610f5b9f6111df610f459d8f9236916126b0565b946101443594612786565b5492506111a08484612425565b6112018383612425565b90861015908161122c575b50156112255761121d915084612418565b92848b612a38565b5092610f3e565b905085105f61120c565b606460405162461bcd60e51b815260206004820152602060248201527f496e737566696369656e7420616d6f756e744f66546f6b656e42546f46696c6c6044820152fd5b50634e487b7160e01b8f52601160045260248ffd5b6111ab9f50979695949392919097506127106112ad600c548361270e565b049e8f611192565b816112bf916124b6565b610fe1578a5f611110565b8580fd5b8880fd5b50346102785780600319360112610278576020600454604051908152f35b50346102785780600319360112610278576001600160a01b03600254163314801590611324575b61027857601054600f5580f35b506011544211611317565b5034610278576020366003190112610278576001600160a01b03600254163303610278576004356010556201518042018042116104115760115580f35b50346102785761137b36612288565b916001600160a01b036002541633036104255761271061139f8461043b8585612425565b036104255782604080516103ea81612462565b5034610278576020366003190112610278576113cc612202565b9060206001600160a01b03602481845416946040519586938492630d9a602960e31b84521660048301525afa9081156114435790611410575b602090604051908152f35b506020813d60201161143b575b8161142a602093836124b6565b81010312610c8d5760209051611405565b3d915061141d565b604051903d90823e3d90fd5b50346102785760203660031901126102785761148260406080926114716124f0565b506004358152601860205220612567565b6114bf6040518092606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565bf35b50346102785760403660031901126102785760406060916114e06125ab565b506004358152601960205281812060243582526020522060405161150381612462565b6001600160a01b0382541691828252604060026001830154926020850193845201549201918252604051928352516020830152516040820152f35b50346102785761016036600319011261027857611559612202565b611561612218565b9061156a61222e565b90606435608435936001600160a01b03851685036112ca5761158a612244565b9060e43567ffffffffffffffff81116109e8576115ab90369060040161225a565b90956101043596896101443567ffffffffffffffff81116105b2576115d490369060040161225a565b94909a6001600160a01b0383541693604051946020860160808152600b60a08801526a31b0b731b2b627b93232b960a91b60c08801526001600160a01b038a16968760408201526001600160a01b03891660608201528c608082015260c0815261163f60e0826124b6565b519020813b156112ca578580946116748f978e96604051998a9889978896637d3d171560e11b885260c4359360048901612655565b03925af180156103a757611969575b505260176020526001600160a01b0360408a2091165f5260205260405f20549283158015611937575b61190257889187151598896117c3575b50505093610f7391836116e79652601960205260408920858a52602052600160408a20015491612721565b6001600160a01b0383541690604051630a1ad2d160e21b8152336004820152602081602481865afa908115610cd55785916117a4575b508061179d575b611747575b50501561173b57610f78600333612890565b610f7860ff60026107fd565b60206004926040519384809263280e32fb60e01b82525afa8015610d1c5761177792859161177e575b5033612721565b5f80611729565b611797915060203d602011610cce57610cbf81836124b6565b5f611770565b5082611724565b6117bd915060203d6020116103a05761039281836124b6565b5f61171d565b60049060206001600160a01b038654166040519384809263280e32fb60e01b82525afa918215610cd55785926118df575b50611801919236916126b0565b906001600160a01b03845416803b15610c58576001600160a01b03856101a48b602083978f869a87916040519c8d9b8c9a8b9863487e5a7760e11b8a5216600489015230602489015261016060448901528961016489015216606487015287608487015260a48601523060c48601521660e4840152610124356101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156103a7576118ca575b80806116bc565b816118d4916124b6565b610fe557865f6118c3565b61180192506118fc9060203d602011610cce57610cbf81836124b6565b916117f4565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037b93232b960991b6044820152606490fd5b50838952601960205260408920858a526020526001600160a01b0360408a2054166001600160a01b03871614156116ac565b81611973916124b6565b61197e57895f611683565b8980fd5b50346102785780600319360112610278576001600160a01b036002541633148015906119dc575b610278576001600160601b0360a01b60125416601255806013556001600160601b0360a01b601454166014558060155580f35b5060155442116119a9565b503461027857604036600319011261027857611a01612202565b6024358083526018602052600260408420015460018101809111611b5757611a28906125c9565b906001600160a01b0360019316925b81855260186020526002604086200154600181018091116108e8578111611b4957818552601960205260408520818652602052836001600160a01b0360408720541614611a8d575b611a8890612514565b611a37565b8185526019602052604085208186526020526001600160a01b03604086205416828652601960205260408620828752602052600160408720015483875260196020526040872083885260205260026040882001549060405192611aef84612432565b8584528460208501526040840152606083015260808201525f19820190828211611b355781611b2d91611b26611a88959488612553565b5285612553565b509050611a7f565b634e487b7160e01b87526011600452602487fd5b604051806104ad8582612194565b634e487b7160e01b84526011600452602484fd5b50346102785780600319360112610278576001600160a01b03600254163314801590611b9f575b61027857600d54600c5580f35b50600e544211611b92565b5034610c8d576020366003190112610c8d576001600160a01b03600254163303610c8d576001600160a01b0360015416803b15610c8d575f80916024604051809481936320a719f560e21b835260043560048401525af18015611c1d57611c0f575080f35b611c1b91505f906124b6565b005b6040513d5f823e3d90fd5b34610c8d576020366003190112610c8d576001600160a01b03611c49612202565b165f52601a602052602060405f2054604051908152f35b34610c8d575f366003190112610c8d57600460206001600160a01b035f54166040519283809263280e32fb60e01b82525afa8015611c1d576020915f91611cb4575b506001600160a01b0360405191168152f35b611ccb9150823d8411610cce57610cbf81836124b6565b82611ca2565b34610c8d575f366003190112610c8d576003546001600160a01b0381163314801590611d18575b610c8d5773ffffffffffffffffffffffffffffffffffffffff1916600355005b506004544211611cf8565b34610c8d576040366003190112610c8d57611d3c612202565b6001600160a01b03600254163303610c8d576001600160a01b03165f52601a60205260405f20611d6f6024358254612425565b9055005b34610c8d575f366003190112610c8d576020600f54604051908152f35b34610c8d576020366003190112610c8d57600435805f526018602052600260405f20015460018101809111611e9d57611dc8906125c9565b9060015b815f526018602052600260405f20015460018101809111611e9d578111611b4957815f52601960205260405f20815f526020526001600160a01b0360405f205416611e20575b611e1b90612514565b611dcc565b5f82815260196020908152604080832084845290915290819020805460018201546002909201549251939291906001600160a01b0316611e5f85612432565b8585528360208601526040850152606084015260808301525f19810191818311611e9d5782611e9591611b26611e1b9588612553565b509050611e12565b634e487b7160e01b5f52601160045260245ffd5b34610c8d575f366003190112610c8d57600460206001600160a01b035f541660405192838092630be428a960e11b82525afa8015611c1d575f9061141057602090604051908152f35b34610c8d575f366003190112610c8d57611f126125ab565b506104ad604051611f2281612462565b60085481526009546020820152600a54604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b34610c8d575f366003190112610c8d576016546001810190818111611e9d57611f86826124d8565b91611f9460405193846124b6565b808352611fa3601f19916124d8565b015f5b81811061207857505060015b8181111561203a57826040518091602082016020835281518091526020604084019201905f5b818110611fe6575050500390f35b91935091602060808261202c6001948851606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565b019401910191849392611fd8565b805f52601860205260405f20905f19810191818311611e9d576120739261206361206d92612567565b611b268288612553565b50612514565b611fb2565b6020906120836124f0565b82828701015201611fa6565b34610c8d575f366003190112610c8d576001600160a01b03600254163314801590612134575b610c8d576120dd6001600160a01b03601454166001600160a01b036012541660135491612721565b6013546001600160a01b03601254165f52601a60205261210260405f20918254612418565b90556001600160601b0360a01b601254166012555f6013556001600160601b0360a01b601454166014555f6015555f80f35b5060155442116120b5565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061216f575b610c8d575f601055005b506011544211612165565b34610c8d575f366003190112610c8d57602090600d548152f35b60206040818301928281528451809452019201905f5b8181106121b75750505090565b909192602060a0600192608087518051835284810151858401526001600160a01b036040820151166040840152606081015160608401520151608082015201940191019190916121aa565b600435906001600160a01b0382168203610c8d57565b602435906001600160a01b0382168203610c8d57565b604435906001600160a01b0382168203610c8d57565b60a435906001600160a01b0382168203610c8d57565b9181601f84011215610c8d5782359167ffffffffffffffff8311610c8d5760208381860195010111610c8d57565b6060906003190112610c8d57600435906024359060443590565b34610c8d575f366003190112610c8d576001600160a01b036002541633148015906122f5575b610c8d575f604080516122da81612462565b82815282602082015201525f6008555f6009555f600a555f80f35b50600b5442116122c8565b610180600319820112610c8d576004356001600160a01b0381168103610c8d57916024356001600160a01b0381168103610c8d57916044356001600160a01b0381168103610c8d5791606435916084359160a4356001600160a01b0381168103610c8d579160c4356001600160a01b0381168103610c8d579160e435916101043567ffffffffffffffff8111610c8d578161239d9160040161225a565b9290929161012435916101443591610164359067ffffffffffffffff8211610c8d576123cb9160040161225a565b9091565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061240d575b610c8d57600854600555600954600655600a54600755005b50600b5442116123f5565b91908203918211611e9d57565b91908201809211611e9d57565b60a0810190811067ffffffffffffffff82111761244e57604052565b634e487b7160e01b5f52604160045260245ffd5b6060810190811067ffffffffffffffff82111761244e57604052565b6080810190811067ffffffffffffffff82111761244e57604052565b6040810190811067ffffffffffffffff82111761244e57604052565b90601f8019910116810190811067ffffffffffffffff82111761244e57604052565b67ffffffffffffffff811161244e5760051b60200190565b604051906124fd8261247e565b5f6060838281528260208201528260408201520152565b5f198114611e9d5760010190565b80511561252f5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561252f5760400190565b805182101561252f5760209160051b010190565b906040516125748161247e565b6060600382946001600160a01b0381541684526001600160a01b036001820154166020850152600281015460408501520154910152565b604051906125b882612462565b5f6040838281528260208201520152565b906125d3826124d8565b6125e060405191826124b6565b82815280926125f1601f19916124d8565b01905f5b82811061260157505050565b60209060405161261081612432565b5f81525f838201525f60408201525f60608201525f6080820152828285010152016125f5565b90816020910312610c8d57516001600160a01b0381168103610c8d5790565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b92919267ffffffffffffffff821161244e57604051916126da601f8201601f1916602001846124b6565b829481845281830111610c8d578281602093845f960137010152565b90816020910312610c8d57518015158103610c8d5790565b81810292918115918404141715611e9d57565b90916001600160a01b035f5416803b15610c8d5760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015611c1d5761277a5750565b5f612784916124b6565b565b9295949190936001600160a01b035f541693843b15610c8d5760205f976001600160a01b0399958a6101a49581988c986040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b0152166064890152608488015260a48701523060c48701521660e48501526101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af18015611c1d5761277a5750565b90815f52601960205260405f20905f5260205260405f206001600160601b0360a01b81541690555f526018602052600360405f200180548015611e9d575f19019055565b6001600160a01b035f5416604051630a1ad2d160e21b81526001600160a01b0383166004820152602081602481855afa908115611c1d575f91612991575b506128d857505050565b60405163280e32fb60e01b815290602082600481845afa918215611c1d575f9261296c575b506020600491604051928380926309a69f5760e01b82525afa908115611c1d575f91612938575b50612784936129329161270e565b91612721565b90506020813d602011612964575b81612953602093836124b6565b81010312610c8d5751612784612924565b3d9150612946565b6004919250612989602091823d8411610cce57610cbf81836124b6565b9291506128fd565b6129aa915060203d6020116103a05761039281836124b6565b5f6128ce565b916001600160a01b036040519281602085019560808752600d60a08701526c3234b9b830ba31b427b93232b960991b60c0870152166040850152166060830152608082015260c08152612a0460e0826124b6565b51902090565b8015611902575f52601960205260405f20905f5260205260405f20906001600160a01b038254161561190257565b91838111612a4857505050505f90565b612a559361293291612418565b600190565b949190612a7d612a8d91959495612710612a766005548661270e565b0490612425565b92612710612a766007548561270e565b9260405194612a9d6060876124b6565b6002865260405f5b818110612be1575050612b23612b459594936001600160a01b0393612710938560405191612ad28361249a565b888352166020820152612ae48a612522565b52612aee89612522565b508460405191612afd8361249a565b888352166020820152612b0f89612543565b52612b1988612543565b506006549061270e565b04951694855f52601a602052612b3e60405f20918254612425565b9055612425565b906001600160a01b035f541691823b15610c8d5792906040519384926353d04b7b60e11b8452606484016060600486015283518091526020608486019401905f5b818110612bb357505050835f9593819387936024840152604483015203925af18015611c1d5761277a5750565b8251805187526020908101516001600160a01b03168188015289975060409096019590920191600101612b86565b602090604051612bf08161249a565b5f81525f8382015282828b01015201612aa556fea26469706673582212202ce3de043b14261a3291a1fde70c7d34ff790f6a8b685b6974bf8d1ad45d3f3364736f6c63430008210033",sourceMap:"1901:33735:66:-:0;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;-1:-1:-1;;;;;;1901:33735:66;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;2887:14;1901:33735;;;;;;;;;;;2942:11;2911:20;1901:33735;2987:3;2963:13;1901:33735;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;3117:4;1901:33735;;;;;3060:4;1901:33735;;3087:4;1901:33735;3019:113;;1901:33735;3019:113;1901:33735;3060:4;3000:132;1901:33735;3087:4;1901:33735;;3117:4;1901:33735;;;;;;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a96865b1461217a575080631128a79a1461213f578063144384281461208f57806316790f8114611f5e57806317857d9d14611efa57806317c8515214611eb15780631ea43a7d14611d905780631f80982114611d7357806321e5383a14611d2357806326415c7114611cd1578063280e32fb14611c6057806328b44b4b14611c285780632e17de7814611baa57806335287eaf14611b6b57806335b2c22c146119e757806354282704146119825780635dc220751461153e5780635e1a3573146114c15780636b6445b61461144f5780636cd30148146113b25780636cdbf9271461136c5780637280ff351461132f57806374efedc9146112f057806376a75a2914610fe9578063775f3f7e146112d25780637b8ad14914611015578063893d20e814610fee5780638eb163d314610fe957806392aa42c914610e37578063952469d014610a385780639610067114610e195780639c34866614610df25780639dc2060714610dd4578063a694fc3a14610a7a578063a936e0d114610a3d578063af5cecc014610a38578063b3d4fd79146109fb578063b54cfef0146105b6578063b5ed298a14610557578063b7ac72ff146104b1578063c721316314610447578063cfb35fd0146103b2578063d0e3692d14610312578063d89ea03c146102c9578063db7ccd631461027b5763ebbc496514610218575f80fd5b346102785780600319360112610278576003546001600160a01b03811680331480159061026d575b610269576001600160601b0360a01b60025416176002556001600160601b0360a01b1660035580f35b8280fd5b506004544211610240565b80fd5b5034610278576040366003190112610278576001600160a01b03604061029f612202565b92826102a9612218565b9416815260176020522091165f52602052602060405f2054604051908152f35b503461027857806003193601126102785760806001600160a01b03601254166013546001600160a01b036014541660155491604051938452602084015260408301526060820152f35b50346102785760403660031901126102785761032c612202565b60206001600160a01b0360448185541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa9081156103a7576020929161037a575b506040519015158152f35b61039a9150823d84116103a0575b61039281836124b6565b8101906126f6565b5f61036f565b503d610388565b6040513d84823e3d90fd5b5034610278576103c136612288565b916001600160a01b03600254163314801590610429575b6104255782604080516103ea81612462565b8381528460208201520152600855600955600a5562015180420180421161041157600b5580f35b634e487b7160e01b82526011600452602482fd5b8380fd5b506127106104408461043b8585612425565b612425565b14156103d8565b50346102785780600319360112610278576104606125ab565b50506104ad60405161047181612462565b60055481526006546020820152600754604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b0390f35b5034610278576060366003190112610278576104cb612202565b6024356104d661222e565b906001600160a01b03600254163314801590610539575b610425576001600160a01b038093166001600160601b0360a01b6012541617601255601355166001600160601b0360a01b60145416176014556201518042018042116104115760155580f35b506001600160a01b0383168452601a602052604084205481116104ed565b503461027857602036600319011261027857610571612202565b6001600160a01b036002541633036105b2576001600160a01b03166001600160601b0360a01b60035416176003556201518042018042116104115760045580f35b5080fd5b503461027857806105c636612300565b93899f9b9e9891958f9397949d8c9f9b819d8c546001600160a01b031696604051936020850160a0905260c085016009905260e085016836b0b5b2a7b93232b960b91b90526001600160a01b031660408501526001600160a01b03166060840152608083015260a082015260e08152610641610100826124b6565b8051906020012094843b156109f7578b61067a8f96948c98969488946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156109ec579089916109d3575b50506106a993929161069f9136916126b0565b91888a8888612786565b6001600160a01b03831684526017602052604084206001600160a01b0388165f5260205260405f20549687156108fc575b508684526018602052600260408520015487855260186020526003604086200154145f146108595750600260249787855260186020528160408620016107208154612514565b905587855260186020526003604086200161073b8154612514565b9055878552601860205281604086200154965b6001600160a01b036040519461076386612462565b16845260208401908152604084019182528886526019602052604086208887526020526001600160a01b038060408820955116166001600160601b0360a01b8554161784555160018401555191015560206001600160a01b0383541660405197888092630a1ad2d160e21b82523360048301525afa80156103a757604096839161083a575b5061081c575b5050156108105761080460ff60035b1633612890565b82519182526020820152f35b61080460ff60026107fd565b8280610829575b506107ee565b6108339133612721565b5f82610823565b610853915060203d6020116103a05761039281836124b6565b5f6107e8565b9660015b87855260186020526002604086200154600181018091116108e85781116108db578785526019602052604085208186526020526001600160a01b03604086205416156108b1576108ac90612514565b61085d565b6024985090600291965b8886526018602052600360408720016108d48154612514565b905561074e565b50600290602498966108bb565b634e487b7160e01b86526011600452602486fd5b90965061090a601654612514565b806016556001600160a01b03841685526017602052604085206001600160a01b0383165f5260205260405f20556003604051916109468361247e565b6001600160a01b03851683526001600160a01b036020840191168152604083018681526001600160a01b03606085019288845260165489526018602052818060408b20975116166001600160601b0360a01b87541617865551166001600160a01b036001860191166001600160601b0360a01b82541617905551600284015551910155601654955f6106da565b816109dd916124b6565b6109e857875f61068c565b8780fd5b6040513d8b823e3d90fd5b8d80fd5b5034610278576020366003190112610278576001600160a01b0360025416330361027857600435600d5562015180420180421161041157600e5580f35b6123cf565b50346102785780600319360112610278576001600160a01b03600254163314801590610a6f575b6102785780600d5580f35b50600e544211610a64565b503461027857602036600319011261027857806004356001600160a01b03600254163314801590610d4b575b610c40576001600160a01b0360015416803b15610d47578280916024604051809481936399b4c3ef60e01b83528760048401525af1908115610d3c578391610d27575b50506001600160a01b0360015416604051630412d6ed60e31b8152602081600481855afa8015610d1c576001600160a01b03918591610cfd575b501660405192630412d6ed60e31b8452602084600481865afa938415610cd5576001600160a01b03946020918791610ce0575b5060046040518097819363280e32fb60e01b8352165afa938415610cd5578594610ca4575b50604051631961201760e31b8152602081600481875afa908115610c99578691610c5c575b5090610bab9161270e565b90803b15610c585760405163c898a6e960e01b81526001600160a01b039384166004820152939092166024840152604483015282908290606490829084905af180156103a757610c43575b506001600160a01b0360015416803b15610c405781809160046040518094819363c9d2beb160e01b83525af180156103a757610c2f5750f35b81610c39916124b6565b6102785780f35b50fd5b81610c4d916124b6565b61027857805f610bf6565b8480fd5b919550506020813d602011610c91575b81610c79602093836124b6565b81010312610c8d5751859490610bab610ba0565b5f80fd5b3d9150610c6c565b6040513d88823e3d90fd5b610cc791945060203d602011610cce575b610cbf81836124b6565b810190612636565b925f610b7b565b503d610cb5565b6040513d87823e3d90fd5b610cf79150823d8411610cce57610cbf81836124b6565b5f610b56565b610d16915060203d602011610cce57610cbf81836124b6565b5f610b23565b6040513d86823e3d90fd5b81610d31916124b6565b610c4057815f610ae9565b6040513d85823e3d90fd5b5050fd5b50600460206001600160a01b036001541660405192838092631961201760e31b82525afa908115610d3c578391610d9c575b50610d88908261270e565b60018352601a602052604083205410610aa6565b9250506020823d602011610dcc575b81610db8602093836124b6565b81010312610c8d57610d8883925190610d7d565b3d9150610dab565b50346102785780600319360112610278576020601054604051908152f35b503461027857806003193601126102785760206001600160a01b0360035416604051908152f35b50346102785780600319360112610278576020600c54604051908152f35b50346102785780610e4736612300565b969a959194929b97998e94919a819e9a9f6001600160a01b03610e6e91541692898c6129b0565b92823b15610fe5578b610e9f8f979289979388946040519a8b998a988997637d3d171560e11b895260048901612655565b03925af180156103a757610fcc575b50506001600160a01b0384168b52601760205260408b206001600160a01b0383165f5260205260405f205497610ee48a8a612a0a565b928c60028501998a5491508d610f0a612710610f02600c548661270e565b048094612425565b809110610f87578e610f789f8b610f5b98610f4595610f639f610f3e948a60019f8d93610f389136916126b0565b95612786565b848b612a38565b9954906001600160a01b03865416913393612a5a565b015491612721565b15610f7b57610f73600533612890565b61284c565b80f35b610f7360ff60046107fd565b60405162461bcd60e51b815260206004820152601f60248201527f496e737566696369656e7420616d6f756e744f66546f6b656e546f46696c6c006044820152606490fd5b81610fd6916124b6565b610fe1578a5f610eae565b8a80fd5b8680fd5b6122a2565b503461027857806003193601126102785760206001600160a01b0360025416604051908152f35b5034610278576101a036600319011261027857611030612202565b611038612218565b61104061222e565b6064359260843592611050612244565b9160c435916001600160a01b03831683036109e8576101043567ffffffffffffffff81116112ce5761108690369060040161225a565b969094610124358a610164359967ffffffffffffffff8b116105b2576110b18c9b369060040161225a565b9490998b6110cf610184359f6001600160a01b03875416928b6129b0565b813b156112ca578580946111018d978f96604051998a9889978896637d3d171560e11b885260e4359360048901612655565b03925af180156103a7576112b5575b50506001600160a01b0384168b52601760205260408b206001600160a01b0389165f5260205260405f2054976111468a8a612a0a565b9360028501988d8d8b54918091612710611162600c548661270e565b04111561128f5750508d6103e88102908082046103e8149015171561127a576127109004969594939291906111ab8f5b6111a58a6111a08386612425565b612418565b92612425565b908310611236578f9e610f789f6111f760019a8f610f639f8f8a906111ea928d610f5b9f6111df610f459d8f9236916126b0565b946101443594612786565b5492506111a08484612425565b6112018383612425565b90861015908161122c575b50156112255761121d915084612418565b92848b612a38565b5092610f3e565b905085105f61120c565b606460405162461bcd60e51b815260206004820152602060248201527f496e737566696369656e7420616d6f756e744f66546f6b656e42546f46696c6c6044820152fd5b50634e487b7160e01b8f52601160045260248ffd5b6111ab9f50979695949392919097506127106112ad600c548361270e565b049e8f611192565b816112bf916124b6565b610fe1578a5f611110565b8580fd5b8880fd5b50346102785780600319360112610278576020600454604051908152f35b50346102785780600319360112610278576001600160a01b03600254163314801590611324575b61027857601054600f5580f35b506011544211611317565b5034610278576020366003190112610278576001600160a01b03600254163303610278576004356010556201518042018042116104115760115580f35b50346102785761137b36612288565b916001600160a01b036002541633036104255761271061139f8461043b8585612425565b036104255782604080516103ea81612462565b5034610278576020366003190112610278576113cc612202565b9060206001600160a01b03602481845416946040519586938492630d9a602960e31b84521660048301525afa9081156114435790611410575b602090604051908152f35b506020813d60201161143b575b8161142a602093836124b6565b81010312610c8d5760209051611405565b3d915061141d565b604051903d90823e3d90fd5b50346102785760203660031901126102785761148260406080926114716124f0565b506004358152601860205220612567565b6114bf6040518092606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565bf35b50346102785760403660031901126102785760406060916114e06125ab565b506004358152601960205281812060243582526020522060405161150381612462565b6001600160a01b0382541691828252604060026001830154926020850193845201549201918252604051928352516020830152516040820152f35b50346102785761016036600319011261027857611559612202565b611561612218565b9061156a61222e565b90606435608435936001600160a01b03851685036112ca5761158a612244565b9060e43567ffffffffffffffff81116109e8576115ab90369060040161225a565b90956101043596896101443567ffffffffffffffff81116105b2576115d490369060040161225a565b94909a6001600160a01b0383541693604051946020860160808152600b60a08801526a31b0b731b2b627b93232b960a91b60c08801526001600160a01b038a16968760408201526001600160a01b03891660608201528c608082015260c0815261163f60e0826124b6565b519020813b156112ca578580946116748f978e96604051998a9889978896637d3d171560e11b885260c4359360048901612655565b03925af180156103a757611969575b505260176020526001600160a01b0360408a2091165f5260205260405f20549283158015611937575b61190257889187151598896117c3575b50505093610f7391836116e79652601960205260408920858a52602052600160408a20015491612721565b6001600160a01b0383541690604051630a1ad2d160e21b8152336004820152602081602481865afa908115610cd55785916117a4575b508061179d575b611747575b50501561173b57610f78600333612890565b610f7860ff60026107fd565b60206004926040519384809263280e32fb60e01b82525afa8015610d1c5761177792859161177e575b5033612721565b5f80611729565b611797915060203d602011610cce57610cbf81836124b6565b5f611770565b5082611724565b6117bd915060203d6020116103a05761039281836124b6565b5f61171d565b60049060206001600160a01b038654166040519384809263280e32fb60e01b82525afa918215610cd55785926118df575b50611801919236916126b0565b906001600160a01b03845416803b15610c58576001600160a01b03856101a48b602083978f869a87916040519c8d9b8c9a8b9863487e5a7760e11b8a5216600489015230602489015261016060448901528961016489015216606487015287608487015260a48601523060c48601521660e4840152610124356101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156103a7576118ca575b80806116bc565b816118d4916124b6565b610fe557865f6118c3565b61180192506118fc9060203d602011610cce57610cbf81836124b6565b916117f4565b60405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21037b93232b960991b6044820152606490fd5b50838952601960205260408920858a526020526001600160a01b0360408a2054166001600160a01b03871614156116ac565b81611973916124b6565b61197e57895f611683565b8980fd5b50346102785780600319360112610278576001600160a01b036002541633148015906119dc575b610278576001600160601b0360a01b60125416601255806013556001600160601b0360a01b601454166014558060155580f35b5060155442116119a9565b503461027857604036600319011261027857611a01612202565b6024358083526018602052600260408420015460018101809111611b5757611a28906125c9565b906001600160a01b0360019316925b81855260186020526002604086200154600181018091116108e8578111611b4957818552601960205260408520818652602052836001600160a01b0360408720541614611a8d575b611a8890612514565b611a37565b8185526019602052604085208186526020526001600160a01b03604086205416828652601960205260408620828752602052600160408720015483875260196020526040872083885260205260026040882001549060405192611aef84612432565b8584528460208501526040840152606083015260808201525f19820190828211611b355781611b2d91611b26611a88959488612553565b5285612553565b509050611a7f565b634e487b7160e01b87526011600452602487fd5b604051806104ad8582612194565b634e487b7160e01b84526011600452602484fd5b50346102785780600319360112610278576001600160a01b03600254163314801590611b9f575b61027857600d54600c5580f35b50600e544211611b92565b5034610c8d576020366003190112610c8d576001600160a01b03600254163303610c8d576001600160a01b0360015416803b15610c8d575f80916024604051809481936320a719f560e21b835260043560048401525af18015611c1d57611c0f575080f35b611c1b91505f906124b6565b005b6040513d5f823e3d90fd5b34610c8d576020366003190112610c8d576001600160a01b03611c49612202565b165f52601a602052602060405f2054604051908152f35b34610c8d575f366003190112610c8d57600460206001600160a01b035f54166040519283809263280e32fb60e01b82525afa8015611c1d576020915f91611cb4575b506001600160a01b0360405191168152f35b611ccb9150823d8411610cce57610cbf81836124b6565b82611ca2565b34610c8d575f366003190112610c8d576003546001600160a01b0381163314801590611d18575b610c8d5773ffffffffffffffffffffffffffffffffffffffff1916600355005b506004544211611cf8565b34610c8d576040366003190112610c8d57611d3c612202565b6001600160a01b03600254163303610c8d576001600160a01b03165f52601a60205260405f20611d6f6024358254612425565b9055005b34610c8d575f366003190112610c8d576020600f54604051908152f35b34610c8d576020366003190112610c8d57600435805f526018602052600260405f20015460018101809111611e9d57611dc8906125c9565b9060015b815f526018602052600260405f20015460018101809111611e9d578111611b4957815f52601960205260405f20815f526020526001600160a01b0360405f205416611e20575b611e1b90612514565b611dcc565b5f82815260196020908152604080832084845290915290819020805460018201546002909201549251939291906001600160a01b0316611e5f85612432565b8585528360208601526040850152606084015260808301525f19810191818311611e9d5782611e9591611b26611e1b9588612553565b509050611e12565b634e487b7160e01b5f52601160045260245ffd5b34610c8d575f366003190112610c8d57600460206001600160a01b035f541660405192838092630be428a960e11b82525afa8015611c1d575f9061141057602090604051908152f35b34610c8d575f366003190112610c8d57611f126125ab565b506104ad604051611f2281612462565b60085481526009546020820152600a54604082015260405191829182919091604080606083019480518452602081015160208501520151910152565b34610c8d575f366003190112610c8d576016546001810190818111611e9d57611f86826124d8565b91611f9460405193846124b6565b808352611fa3601f19916124d8565b015f5b81811061207857505060015b8181111561203a57826040518091602082016020835281518091526020604084019201905f5b818110611fe6575050500390f35b91935091602060808261202c6001948851606080916001600160a01b0381511684526001600160a01b036020820151166020850152604081015160408501520151910152565b019401910191849392611fd8565b805f52601860205260405f20905f19810191818311611e9d576120739261206361206d92612567565b611b268288612553565b50612514565b611fb2565b6020906120836124f0565b82828701015201611fa6565b34610c8d575f366003190112610c8d576001600160a01b03600254163314801590612134575b610c8d576120dd6001600160a01b03601454166001600160a01b036012541660135491612721565b6013546001600160a01b03601254165f52601a60205261210260405f20918254612418565b90556001600160601b0360a01b601254166012555f6013556001600160601b0360a01b601454166014555f6015555f80f35b5060155442116120b5565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061216f575b610c8d575f601055005b506011544211612165565b34610c8d575f366003190112610c8d57602090600d548152f35b60206040818301928281528451809452019201905f5b8181106121b75750505090565b909192602060a0600192608087518051835284810151858401526001600160a01b036040820151166040840152606081015160608401520151608082015201940191019190916121aa565b600435906001600160a01b0382168203610c8d57565b602435906001600160a01b0382168203610c8d57565b604435906001600160a01b0382168203610c8d57565b60a435906001600160a01b0382168203610c8d57565b9181601f84011215610c8d5782359167ffffffffffffffff8311610c8d5760208381860195010111610c8d57565b6060906003190112610c8d57600435906024359060443590565b34610c8d575f366003190112610c8d576001600160a01b036002541633148015906122f5575b610c8d575f604080516122da81612462565b82815282602082015201525f6008555f6009555f600a555f80f35b50600b5442116122c8565b610180600319820112610c8d576004356001600160a01b0381168103610c8d57916024356001600160a01b0381168103610c8d57916044356001600160a01b0381168103610c8d5791606435916084359160a4356001600160a01b0381168103610c8d579160c4356001600160a01b0381168103610c8d579160e435916101043567ffffffffffffffff8111610c8d578161239d9160040161225a565b9290929161012435916101443591610164359067ffffffffffffffff8211610c8d576123cb9160040161225a565b9091565b34610c8d575f366003190112610c8d576001600160a01b0360025416331480159061240d575b610c8d57600854600555600954600655600a54600755005b50600b5442116123f5565b91908203918211611e9d57565b91908201809211611e9d57565b60a0810190811067ffffffffffffffff82111761244e57604052565b634e487b7160e01b5f52604160045260245ffd5b6060810190811067ffffffffffffffff82111761244e57604052565b6080810190811067ffffffffffffffff82111761244e57604052565b6040810190811067ffffffffffffffff82111761244e57604052565b90601f8019910116810190811067ffffffffffffffff82111761244e57604052565b67ffffffffffffffff811161244e5760051b60200190565b604051906124fd8261247e565b5f6060838281528260208201528260408201520152565b5f198114611e9d5760010190565b80511561252f5760200190565b634e487b7160e01b5f52603260045260245ffd5b80516001101561252f5760400190565b805182101561252f5760209160051b010190565b906040516125748161247e565b6060600382946001600160a01b0381541684526001600160a01b036001820154166020850152600281015460408501520154910152565b604051906125b882612462565b5f6040838281528260208201520152565b906125d3826124d8565b6125e060405191826124b6565b82815280926125f1601f19916124d8565b01905f5b82811061260157505050565b60209060405161261081612432565b5f81525f838201525f60408201525f60608201525f6080820152828285010152016125f5565b90816020910312610c8d57516001600160a01b0381168103610c8d5790565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b92919267ffffffffffffffff821161244e57604051916126da601f8201601f1916602001846124b6565b829481845281830111610c8d578281602093845f960137010152565b90816020910312610c8d57518015158103610c8d5790565b81810292918115918404141715611e9d57565b90916001600160a01b035f5416803b15610c8d5760405163c898a6e960e01b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015611c1d5761277a5750565b5f612784916124b6565b565b9295949190936001600160a01b035f541693843b15610c8d5760205f976001600160a01b0399958a6101a49581988c986040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b0152166064890152608488015260a48701523060c48701521660e48501526101048401526001610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af18015611c1d5761277a5750565b90815f52601960205260405f20905f5260205260405f206001600160601b0360a01b81541690555f526018602052600360405f200180548015611e9d575f19019055565b6001600160a01b035f5416604051630a1ad2d160e21b81526001600160a01b0383166004820152602081602481855afa908115611c1d575f91612991575b506128d857505050565b60405163280e32fb60e01b815290602082600481845afa918215611c1d575f9261296c575b506020600491604051928380926309a69f5760e01b82525afa908115611c1d575f91612938575b50612784936129329161270e565b91612721565b90506020813d602011612964575b81612953602093836124b6565b81010312610c8d5751612784612924565b3d9150612946565b6004919250612989602091823d8411610cce57610cbf81836124b6565b9291506128fd565b6129aa915060203d6020116103a05761039281836124b6565b5f6128ce565b916001600160a01b036040519281602085019560808752600d60a08701526c3234b9b830ba31b427b93232b960991b60c0870152166040850152166060830152608082015260c08152612a0460e0826124b6565b51902090565b8015611902575f52601960205260405f20905f5260205260405f20906001600160a01b038254161561190257565b91838111612a4857505050505f90565b612a559361293291612418565b600190565b949190612a7d612a8d91959495612710612a766005548661270e565b0490612425565b92612710612a766007548561270e565b9260405194612a9d6060876124b6565b6002865260405f5b818110612be1575050612b23612b459594936001600160a01b0393612710938560405191612ad28361249a565b888352166020820152612ae48a612522565b52612aee89612522565b508460405191612afd8361249a565b888352166020820152612b0f89612543565b52612b1988612543565b506006549061270e565b04951694855f52601a602052612b3e60405f20918254612425565b9055612425565b906001600160a01b035f541691823b15610c8d5792906040519384926353d04b7b60e11b8452606484016060600486015283518091526020608486019401905f5b818110612bb357505050835f9593819387936024840152604483015203925af18015611c1d5761277a5750565b8251805187526020908101516001600160a01b03168188015289975060409096019590920191600101612b86565b602090604051612bf08161249a565b5f81525f8382015282828b01015201612aa556fea26469706673582212202ce3de043b14261a3291a1fde70c7d34ff790f6a8b685b6974bf8d1ad45d3f3364736f6c63430008210033",sourceMap:"1901:33735:66:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:16:78;1901:33735:66;1568:16:78;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;1878:31:78;1901:33735:66;1878:31:78;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25466:14;1901:33735;-1:-1:-1;;;;;1901:33735:66;;25452:10;;:28;;;:68;;;1901:33735;25435:129;;-1:-1:-1;;;;;1901:33735:66;;25573:22;1901:33735;;;25573:22;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;25466:14;1901:33735;;;25435:129;25545:8;;;25452:68;1901:33735;;;25484:15;:36;25452:68;;1901:33735;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;;:::i;:::-;;;;;:::i;:::-;;;;;33510:8;1901:33735;;;33510:24;1901:33735;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;35509:15:66;1901:33735;;35538:16;1901:33735;-1:-1:-1;;;;;35568:19:66;1901:33735;;35601:16;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;-1:-1:-1;;;;;4999:37:98;1901:33735:66;;;;;;;;;;;;;;;4999:37:98;;1901:33735:66;;4999:37:98;;1901:33735:66;;;;;;;4999:37:98;;;;;;;1901:33735:66;4999:37:98;;;;1901:33735:66;;;;;;;;;;4999:37:98;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;1901:33735:66;;;;;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;26886:5:66;1901:33735;;26872:10;:19;;;:65;;;1901:33735;26868:104;;1901:33735;;;;;;;:::i;:::-;;;;27009:96;;;;1901:33735;27009:96;1901:33735;26981:124;1901:33735;;;;;27174:6;27156:15;1901:33735;27156:15;;1901:33735;;;27115:65;1901:33735;;;;-1:-1:-1;;;1901:33735:66;;;;;;;;26868:104;26953:8;;;26872:65;26895:18;26931:6;26895:32;:18;;;;;:::i;:::-;:32;:::i;:::-;:42;;26872:65;;1901:33735;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;34839:16;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;;;;;29534:5:66;1901:33735;;29520:10;:19;;;:91;;;1901:33735;29503:152;;-1:-1:-1;;;;;1901:33735:66;;;-1:-1:-1;;;;;1901:33735:66;;29664:34;1901:33735;;;29664:34;1901:33735;29708:36;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;29754:25;1901:33735;;;29754:25;1901:33735;29826:6;29808:15;1901:33735;29808:15;;1901:33735;;;29789:43;1901:33735;;;29520:91;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;29575:18;1901:33735;;;;;;29555:56;;29520:91;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;-1:-1:-1;;;;;25026:5:66;1901:33735;;25012:10;:19;25008:58;;-1:-1:-1;;;;;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;25075:23;1901:33735;;;25075:23;1901:33735;25147:6;25129:15;1901:33735;25129:15;;1901:33735;;;;;;;25008:58;25047:8;1901:33735;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4487:15;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;1072:57:102;;;;1901:33735:66;;;;;;;;;;;;-1:-1:-1;;;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;1072:57:102;;;;;;:::i;:::-;1901:33735:66;;1072:57:102;;;1045:98;4514:245:66;;;;;;1901:33735;4514:245;1901:33735;;;;;;;;;;;;;;;;;;;;;4514:245;;1901:33735;4514:245;;;:::i;:::-;;;;;;;;;;;;;;1901:33735;;;4770:201;1901:33735;;;;;;;;:::i;:::-;4770:201;;;;;;:::i;:::-;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1072:57:102;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;5031:11;;;5027:79;;1901:33735;;;;;5133:14;1072:57:102;1901:33735:66;5133:30;1901:33735;;;5133:30;1901:33735;;;;5133:14;1072:57:102;1901:33735:66;5179:38;1901:33735;;;5179:38;1901:33735;5133:84;5116:594;5179:38;;;1901:33735;5133:30;5856:32;1901:33735;;;;5133:14;1072:57:102;1901:33735:66;;;;;5242:30;:32;1901:33735;;5242:32;:::i;:::-;1901:33735;;;;;5133:14;1072:57:102;1901:33735:66;5179:38;1901:33735;;;5288:38;:40;1901:33735;;5288:40;:::i;:::-;1901:33735;;;;;5133:14;1072:57:102;1901:33735:66;;;;;5352:30;1901:33735;5116:594;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::i;:::-;;;;1072:57:102;5758:83:66;;1901:33735;;;;5758:83;;1901:33735;;;;;;5720:18;1072:57:102;1901:33735:66;;;;;;;1072:57:102;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;4722:4;1901:33735;;;;;;;1072:57:102;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;5856:32;;5877:10;1901:33735;5856:32;;1901:33735;5856:32;;;;;;1901:33735;5856:32;;;;;5116:594;5852:217;;;5116:594;-1:-1:-1;;6213:18:66;;;6185:55;1901:33735;5179:38;6213:26;1901:33735;5877:10;6185:55;:::i;:::-;1901:33735;;;;;1072:57:102;1901:33735:66;;;;6213:26;6185:55;1901:33735;5133:30;6213:26;;5852:217;5908:18;;5904:155;;5852:217;;;;5904:155;6029:14;5877:10;;6029:14;:::i;:::-;5904:155;;;;5856:32;;;;1072:57:102;5856:32:66;1072:57:102;5856:32:66;;;;;;;:::i;:::-;;;;5116:594;5418:13;4722:4;5474:3;1901:33735;;;5133:14;1072:57:102;1901:33735:66;5133:30;1901:33735;;;5438:30;1901:33735;4722:4;1901:33735;;;;;;;5433:39;;;;1901:33735;;;5501:18;1072:57:102;1901:33735:66;;;;;;;1072:57:102;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;;;;5501:50;5497:135;;5474:3;;;:::i;:::-;5418:13;;5497:135;5856:32;5575:11;;;5133:30;5575:11;5608:5;5413:233;1901:33735;;;5133:14;1072:57:102;1901:33735:66;5179:38;1901:33735;;;5659:38;:40;1901:33735;;5659:40;:::i;:::-;1901:33735;;5116:594;;5433:39;;5133:30;5433:39;5856:32;5433:39;;;;1901:33735;-1:-1:-1;;;1901:33735:66;;;;;;;;5027:79;1901:33735;;;24196:13;;1901:33735;24196:13;:::i;:::-;1901:33735;24196:13;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1072:57:102;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1901:33735:66;;;;-1:-1:-1;;;;;1072:57:102;24297:105:66;;1901:33735;;;;;24297:105;;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;24297:105;;1901:33735;;;;24196:13;1901:33735;;;24267:14;1072:57:102;1901:33735:66;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;-1:-1:-1;;;;;4722:4:66;1901:33735;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;24196:13;1901:33735;5027:79;;;;4514:245;;;;;:::i;:::-;1901:33735;;4514:245;;;;1901:33735;;;;4514:245;1901:33735;;;;;;;;;4514:245;1901:33735;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;27862:5:66;1901:33735;;27848:10;:19;27844:58;;1901:33735;;27911:22;1901:33735;28007:6;27989:15;1901:33735;27989:15;;1901:33735;;;27960:26;1901:33735;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;28114:5:66;1901:33735;;28100:10;:19;;;:67;;;1901:33735;28083:128;;1901:33735;28220:22;1901:33735;;;28100:67;1901:33735;28141:26;1901:33735;28123:15;:44;28100:67;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;-1:-1:-1;;;;;30664:5:66;1901:33735;;30650:10;:19;;;:145;;;1901:33735;30633:181;;-1:-1:-1;;;;;1901:33735:66;;;1374:44:99;;;;;1901:33735:66;;;1374:44:99;1901:33735:66;;;;;;;;;1374:44:99;;;1901:33735:66;1374:44:99;;1901:33735:66;1374:44:99;;;;;;;;;;;1901:33735:66;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;1434:24:99;;1901:33735:66;1434:24:99;1901:33735:66;1434:24:99;;;;;;;;-1:-1:-1;;;;;1434:24:99;;;;;1901:33735:66;;;;;;;;;1515:24:99;;1901:33735:66;1515:24:99;1901:33735:66;1515:24:99;;;;;;;;;-1:-1:-1;;;;;1515:24:99;1901:33735:66;1515:24:99;;;;;1901:33735:66;;;;;;;;;;;;1509:58:99;;1901:33735:66;1509:58:99;;;;;;;;;;;1901:33735:66;-1:-1:-1;1901:33735:66;;-1:-1:-1;;;1581:24:99;;1901:33735:66;;;;1581:24:99;;;;;;;;;;;;1901:33735:66;1581:40:99;;;;;:::i;:::-;1428:203;;;;;;1901:33735:66;;-1:-1:-1;;;1428:203:99;;-1:-1:-1;;;;;1901:33735:66;;;;1428:203:99;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;1428:203:99;;;;;;;;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;1641:31:99;;;;;1901:33735:66;;;;;;;;;;;;;1641:31:99;;;;;;;;;;1901:33735:66;;1641:31:99;;;;;:::i;:::-;1901:33735:66;;1641:31:99;1901:33735:66;1641:31:99;1901:33735:66;;1428:203:99;;;;;:::i;:::-;1901:33735:66;;1428:203:99;;;;;1901:33735:66;;;1581:24:99;;;;;1901:33735:66;1581:24:99;;1901:33735:66;1581:24:99;;;;;;1901:33735:66;1581:24:99;;;:::i;:::-;;;1901:33735:66;;;;;;;;1581:40:99;:24;;1901:33735:66;-1:-1:-1;1901:33735:66;;1581:24:99;;;-1:-1:-1;1581:24:99;;;1901:33735:66;;;;;;;;;1509:58:99;;;;;1901:33735:66;1509:58:99;1901:33735:66;1509:58:99;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1901:33735:66;;;;;;;;;1515:24:99;;;;;;;;;;;;;;:::i;:::-;;;;1434;;;;1901:33735:66;1434:24:99;1901:33735:66;1434:24:99;;;;;;;:::i;:::-;;;;;1901:33735:66;;;;;;;;;1374:44:99;;;;;:::i;:::-;1901:33735:66;;1374:44:99;;;;;1901:33735:66;;;;;;;;;1374:44:99;1901:33735:66;30806:8;;30650:145;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;30694:24;;;;;;;;;;;;;30650:145;30685:33;;;;;:::i;:::-;1901:33735;;;30733:18;1901:33735;;;;;;-1:-1:-1;30650:145:66;;30694:24;;;;1901:33735;30694:24;;1901:33735;30694:24;;;;;;1901:33735;30694:24;;;:::i;:::-;;;1901:33735;;;;30685:33;1901:33735;;;30694:24;;;;;;-1:-1:-1;30694:24:66;;1901:33735;;;;;;;;;;;;;;35191:29;1901:33735;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;34315:14:66;1901:33735;;;;;;;;;;;;;;;;;;;;;;35065:13;1901:33735;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11927:54:66;1901:33735;;;11927:54;;;;:::i;:::-;11839:240;;;;;;1901:33735;11839:240;1901:33735;;;;;;;;;;;;;;;;;;;;11839:240;;1901:33735;11839:240;;;:::i;:::-;;;;;;;;;;;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1901:33735;;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;12174:40;;;;;:::i;:::-;12267:13;;;;;1901:33735;;;12239:42;1901:33735;;12316:19;18461:6;18427:30;18436:13;1901:33735;18427:30;;:::i;:::-;1901:33735;12316:19;;;:::i;:::-;12350:37;;;12346:109;;1901:33735;13353:7;1901:33735;;13144:14;1901:33735;12798:134;1901:33735;13236:13;1901:33735;12465:214;1901:33735;;12042:4;1901:33735;;;;;;;;:::i;:::-;12465:214;;:::i;:::-;12798:134;;;:::i;:::-;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;13120:10;;13144:14;;:::i;:::-;13236:13;1901:33735;13236:13;;:::i;:::-;13289:17;;;13261:46;13301:1;13120:10;13261:46;:::i;:::-;13353:7;:::i;:::-;1901:33735;;13289:17;13261:46;1901:33735;;13289:17;;12346:109;1901:33735;;-1:-1:-1;;;12403:41:66;;1901:33735;;12403:41;;1901:33735;;;;;;;;;;;12403:41;;;11839:240;;;;;:::i;:::-;1901:33735;;11839:240;;;;1901:33735;;;;11839:240;1901:33735;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;34411:5:66;1901:33735;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;16577:54;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;16577:54;;;:::i;:::-;16489:240;;;;;1901:33735;;;16489:240;1901:33735;;;;;;;;;;;;;;;;16489:240;;1901:33735;;16489:240;1901:33735;16489:240;;;:::i;:::-;;;;;;;;;;;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;33510:8;1901:33735;;;;;-1:-1:-1;;;;;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;16824:40;;;;;:::i;:::-;16941:13;;;;1901:33735;;;;;16906:87;18610:13;18639:35;18461:6;18427:30;18436:13;1901:33735;18427:30;;:::i;:::-;1901:33735;18639:53;;;;18708:21;;;18758:4;1901:33735;;;;;;18758:4;1901:33735;;;;;;;18461:6;1901:33735;;;;;;;;;17086:19;1901:33735;18635:220;17026:27;:19;;;;;:::i;:::-;:27;:::i;:::-;17086:19;;:::i;:::-;17120:34;;;17116:107;;1901:33735;;18246:7;1901:33735;19392:25;1901:33735;;;18129:13;1901:33735;;;;17233:214;1901:33735;;18070:14;1901:33735;;17721:132;1901:33735;;;;;;:::i;:::-;;;;17233:214;;:::i;:::-;1901:33735;17477:125;19392:17;;;;;:::i;:25::-;19450:17;;;;:::i;:::-;19482:25;;;;:54;;;;18635:220;-1:-1:-1;19478:165:66;;;19563:24;;;;;:::i;:::-;19478:165;17721:132;;;:::i;19478:165::-;19618:14;19478:165;;;19482:54;19511:25;;;;19482:54;;;17116:107;1901:33735;;;21220:23;;;17170:42;;1901:33735;;17170:42;;1901:33735;;;;;;;;;;;17170:42;1901:33735;-1:-1:-1;;;;1901:33735:66;;;;;;;;18635:220;17086:19;18809:35;;;;;;;;;;;1901:33735;18461:6;18427:30;18436:13;1901:33735;18427:30;;:::i;:::-;1901:33735;18635:220;;;;16489:240;;;;;:::i;:::-;1901:33735;;16489:240;;;;;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29163:5:66;1901:33735;;29149:10;:19;;;:86;;;1901:33735;29132:147;;29319:29;1901:33735;29319:20;1901:33735;;;29149:86;1901:33735;29202:33;1901:33735;29184:15;:51;29149:86;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;28624:5:66;1901:33735;;28610:10;:19;28606:58;;1901:33735;;28673:29;1901:33735;28790:6;28772:15;1901:33735;28772:15;;1901:33735;;;28736:33;1901:33735;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;25804:5:66;1901:33735;;25790:10;:19;25786:58;;25893:6;25857:32;:18;;;;;:::i;:32::-;:42;25853:81;;1901:33735;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;-1:-1:-1;;;;;4497:34:98;1901:33735:66;;;;;;;;;;;;;;;4497:34:98;;1901:33735:66;;4497:34:98;;1901:33735:66;4497:34:98;;;;;;;;;;1901:33735:66;;;;;;;;;4497:34:98;;1901:33735:66;4497:34:98;;1901:33735:66;4497:34:98;;;;;;1901:33735:66;4497:34:98;;;:::i;:::-;;;1901:33735:66;;;;;;;4497:34:98;;;;;-1:-1:-1;4497:34:98;;;1901:33735:66;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;;;;:::i;:::-;;;;;;33676:14;1901:33735;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;;;:::i;:::-;;;;;;32562:18;1901:33735;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;:::i;:::-;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;1669:50:102;1901:33735:66;1669:50:102;;1901:33735:66;;;;;;;;-1:-1:-1;;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;1669:50:102;;;1901:33735:66;1669:50:102;;:::i;:::-;1901:33735:66;1659:61:102;;8222:238:66;;;;;1901:33735;;;8222:238;1901:33735;;;;;;;;;;;;;;;;8222:238;;1901:33735;;8222:238;1901:33735;8222:238;;;:::i;:::-;;;;;;;;;;;1901:33735;;;33510:8;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;;33510:24;1901:33735;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;21139:11;;;:65;;;;1901:33735;21135:119;;8586:18;;;;;8582:305;;;;1901:33735;;;;;8921:43;1901:33735;;9011:7;1901:33735;;8921:18;1901:33735;;;;;;;;;;;;;;8921:43;1901:33735;8921:43;;:::i;9011:7::-;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;9034:32;;9055:10;1901:33735;9034:32;;1901:33735;;9034:32;1901:33735;9034:32;;;;;;;;;;;;;1901:33735;9034:54;;;;1901:33735;9030:217;;1901:33735;-1:-1:-1;;9284:26:66;;;9256:55;9305:1;9055:10;9256:55;:::i;9284:26::-;9256:55;1901:33735;9309:1;9284:26;;9030:217;1901:33735;;;;;;;;;;;;9159:31;;;;;;;;9208:14;9159:31;;;;;9030:217;9055:10;;9208:14;:::i;:::-;9030:217;;;;9159:31;;;;1901:33735;9159:31;1901:33735;9159:31;;;;;;;:::i;:::-;;;;9034:54;;;;;:32;;;;1901:33735;9034:32;1901:33735;9034:32;;;;;;;:::i;:::-;;;;8582:305;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;8670:31;;;;;;;;;;;;;8582:305;1901:33735;;;;;;;:::i;:::-;;-1:-1:-1;;;;;1901:33735:66;;;1745:265:98;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;1745:265:98;;1901:33735:66;;1745:265:98;;1901:33735:66;1793:4:98;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1793:4:98;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;1745:265:98;;;;;;;;;;;8582:305:66;;;;;1745:265:98;;;;;:::i;:::-;1901:33735:66;;1745:265:98;;;;8670:31:66;1901:33735;8670:31;;;;1901:33735;8670:31;1901:33735;8670:31;;;;;;;:::i;:::-;;;;21135:119;1901:33735;;-1:-1:-1;;;21220:23:66;;1901:33735;;21220:23;;1901:33735;;;;;;-1:-1:-1;;;1901:33735:66;;;;;;21220:23;21139:65;1901:33735;;;;21154:18;1901:33735;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;21154:50;;21139:65;;8222:238;;;;;:::i;:::-;1901:33735;;8222:238;;;;1901:33735;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29917:5:66;1901:33735;;29903:10;:19;;;:57;;;1901:33735;29899:96;;-1:-1:-1;;;;;1901:33735:66;;30004:28;1901:33735;;30004:28;1901:33735;;30042:20;1901:33735;-1:-1:-1;;;;;1901:33735:66;;30072:32;1901:33735;;30072:32;1901:33735;;30114:20;1901:33735;;;29903:57;1901:33735;29944:16;1901:33735;29926:15;:34;29903:57;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;;;;32843:14;1901:33735;;32843:30;1901:33735;;;32843:30;1901:33735;;;;;;;;;32801:86;;;:::i;:::-;32903:13;-1:-1:-1;;;;;1901:33735:66;;;32898:456;32959:3;1901:33735;;;32843:14;1901:33735;;32843:30;1901:33735;;;32923:30;1901:33735;;;;;;;;;32918:39;;;;1901:33735;;;32982:18;1901:33735;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;32982:44;32978:366;;32959:3;;;;:::i;:::-;32903:13;;32978:366;1901:33735;;;32982:18;1901:33735;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;32982:18;1901:33735;;;;;;;;;;;;;;33215:37;1901:33735;;;;32982:18;1901:33735;;;;;;;;;;32843:30;1901:33735;;;33274:37;1901:33735;;;;;;;;:::i;:::-;;;;33062:267;1901:33735;33062:267;;1901:33735;;33062:267;;1901:33735;33062:267;;;1901:33735;33062:267;;;1901:33735;;;;;;;;;;;33046:283;;;;32959:3;33046:283;;;;:::i;:::-;;;;:::i;:::-;;32978:366;;;;1901:33735;-1:-1:-1;;;1901:33735:66;;;;;;;;32918:39;1901:33735;;;;32918:39;1901:33735;;:::i;:::-;-1:-1:-1;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28340:5:66;1901:33735;;28326:10;:19;;;:67;;;1901:33735;28309:128;;28470:22;1901:33735;28470:13;1901:33735;;;28326:67;1901:33735;28367:26;1901:33735;28349:15;:44;28326:67;;1901:33735;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;30933:5:66;1901:33735;;30919:10;:19;30915:33;;-1:-1:-1;;;;;1901:33735:66;;;2024:41:99;;;;;1901:33735:66;;;2024:41:99;1901:33735:66;;;;;;;;;2024:41:99;;1901:33735:66;;;2024:41:99;;1901:33735:66;2024:41:99;;;;;;;;1901:33735:66;;;2024:41:99;;;;1901:33735:66;2024:41:99;;:::i;:::-;1901:33735:66;2024:41:99;1901:33735:66;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;1901:33735:66;;:::i;:::-;;;;34200:18;1901:33735;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;1878:31:78;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;1878:31:78;;;;;;;;;;1901:33735:66;1878:31:78;;;1901:33735:66;;-1:-1:-1;;;;;1901:33735:66;;;;;;;1878:31:78;;;;;;;;;;;;;;:::i;:::-;;;;1901:33735:66;;;;;;-1:-1:-1;;1901:33735:66;;;;25246:14;1901:33735;-1:-1:-1;;;;;1901:33735:66;;25232:10;:28;;;:68;;;1901:33735;25215:129;;-1:-1:-1;;1901:33735:66;25246:14;1901:33735;;25232:68;1901:33735;;;25264:15;:36;25232:68;;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;-1:-1:-1;;;;;31089:5:66;1901:33735;;31075:10;:19;31071:58;;-1:-1:-1;;;;;1901:33735:66;;;31138:18;1901:33735;;;;;31138:37;1901:33735;;;;31138:37;:::i;:::-;1901:33735;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;35317:20;1901:33735;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;;;;31870:14;1901:33735;;31870:30;1901:33735;;;31870:30;1901:33735;;;;;;;;;31828:86;;;:::i;:::-;31930:13;1901:33735;31986:3;1901:33735;;;31870:14;1901:33735;;31870:30;1901:33735;;;31950:30;1901:33735;;;;;;;;;31945:39;;;;1901:33735;;;32009:18;1901:33735;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;32005:372;;31986:3;;;;:::i;:::-;31930:13;;32005:372;1901:33735;;;;32009:18;1901:33735;;;;;;;;;;;;;;;;;;;;;32248:37;;1901:33735;31870:30;32307:37;;;1901:33735;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;:::i;:::-;;;;32095:267;1901:33735;32095:267;;1901:33735;;32095:267;;1901:33735;32095:267;;;1901:33735;32095:267;;;1901:33735;;;;;;;;;;;32079:283;;;;31986:3;32079:283;;;:::i;:::-;;32005:372;;;;1901:33735;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;1568:16:78;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;1568:16:78;;;;;;;;1901:33735:66;1568:16:78;;;;1901:33735:66;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;:::i;:::-;;;;;;;;:::i;:::-;34675:25;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;33928:11;1901:33735;33942:1;1901:33735;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;33959:13;;33942:1;33974:16;;;;;;;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33942:1;1901:33735;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33992:3;1901:33735;;;34028:14;1901:33735;;;;;;;;;;;;;;;;33992:3;1901:33735;;34011:34;1901:33735;;:::i;:::-;34011:34;;;;:::i;:::-;;33992:3;:::i;:::-;33959:13;;1901:33735;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;30212:5:66;1901:33735;;30198:10;:19;;;:57;;;1901:33735;30194:96;;30347:16;-1:-1:-1;;;;;30309:19:66;1901:33735;;-1:-1:-1;;;;;30330:15:66;1901:33735;;30347:16;1901:33735;30347:16;;:::i;:::-;;1901:33735;-1:-1:-1;;;;;30330:15:66;1901:33735;;;;30374:18;1901:33735;;30374:55;1901:33735;;;;;;30374:55;:::i;:::-;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;30330:15;1901:33735;;30330:15;1901:33735;;30347:16;1901:33735;-1:-1:-1;;;;;1901:33735:66;;30309:19;1901:33735;;30309:19;1901:33735;;30550:20;1901:33735;;;;30198:57;1901:33735;30239:16;1901:33735;30221:15;:34;30198:57;;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;28904:5:66;1901:33735;;28890:10;:19;;;:86;;;1901:33735;28873:147;;1901:33735;29029:29;1901:33735;;28890:86;1901:33735;28943:33;1901:33735;28925:15;:51;28890:86;;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;;;;34953:22;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;26249:5:66;1901:33735;;26235:10;:19;;;:91;;;1901:33735;26218:152;;1901:33735;;;;;;;:::i;:::-;;;;26407:27;;;;1901:33735;26407:27;1901:33735;;26379:55;1901:33735;;;;;;;;;;26235:91;1901:33735;26288:38;1901:33735;26270:15;:56;26235:91;;1901:33735;;-1:-1:-1;;1901:33735:66;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;-1:-1:-1;;1901:33735:66;;;;-1:-1:-1;;;;;27584:5:66;1901:33735;;27570:10;:19;;;:91;;;1901:33735;27553:152;;27733:25;1901:33735;27714:44;1901:33735;;;;;;;;;;27570:91;1901:33735;27623:38;1901:33735;27605:15;:56;27570:91;;1901:33735;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;1901:33735:66;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1901:33735:66;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;23851:1;1901:33735;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;1901:33735:66;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;8423:4;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;3421:155:98:-;;;-1:-1:-1;;;;;3540:4:98;1901:33735:66;;3540:29:98;;;;;1901:33735:66;;-1:-1:-1;;;3540:29:98;;-1:-1:-1;;;;;1901:33735:66;;;3540:29:98;;;1901:33735:66;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;;;;-1:-1:-1;;3540:29:98;;;;;;;;3421:155;:::o;3540:29::-;:4;:29;;;:::i;:::-;3421:155::o;1481:536::-;;;;;;;-1:-1:-1;;;;;1745:4:98;1901:33735:66;;1745:265:98;;;;;;1901:33735:66;1745:4:98;1901:33735:66;-1:-1:-1;;;;;1901:33735:66;;;;;;;;;;;;;;;;;;;;;1745:265:98;;1901:33735:66;1745:265:98;;;1901:33735:66;1793:4:98;1901:33735:66;;;;;;;;;;;;;;;;;;;;;;;;;;;1793:4:98;1901:33735:66;;;;;;;;;;;;;16692:4;1901:33735;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1901:33735:66;;;1745:265:98;;;;;;;;;;;1481:536;:::o;21942:222:66:-;;1901:33735;22105:1;1901:33735;22052:18;1901:33735;;;22105:1;1901:33735;;22105:1;1901:33735;;;;22105:1;1901:33735;-1:-1:-1;;;;;1901:33735:66;;;;;;;22105:1;1901:33735;22117:14;1901:33735;;22117:38;1901:33735;22105:1;1901:33735;22117:38;1901:33735;;;;;;-1:-1:-1;;1901:33735:66;;;21942:222::o;21485:300::-;-1:-1:-1;;;;;21571:4:66;1901:33735;;;;;;;21571:30;;-1:-1:-1;;;;;1901:33735:66;;21571:30;;;1901:33735;;21571:30;;;;;;;;;;;:4;:30;;;21485:300;21567:212;;;21485:300;;;:::o;21567:212::-;1901:33735;;-1:-1:-1;;;21670:31:66;;1901:33735;;;21571:30;1901:33735;;21670:31;;;;;;;21571:4;21670:31;;;21567:212;1901:33735;;21571:30;1901:33735;;;;;;;;;;21719:22;;;;;;;;;21571:4;21719:22;;;21567:212;21719:35;;;;;;:::i;:::-;;;:::i;:22::-;;;1901:33735;21719:22;;1901:33735;21719:22;;;;;;1901:33735;21719:22;;;:::i;:::-;;;1901:33735;;;;;21719:35;:22;;;;;-1:-1:-1;21719:22:66;;21670:31;21571:30;21670:31;;;;1901:33735;21670:31;;;;;;;;;;;:::i;:::-;;;;;;21571:30;;;;1901:33735;21571:30;1901:33735;21571:30;;;;;;;:::i;:::-;;;;2104:244:102;;-1:-1:-1;;;;;1901:33735:66;;2288:52:102;;;;;1901:33735:66;;;;;;;;;-1:-1:-1;;;1901:33735:66;;;;;;;;;;;;;;;;;;;2288:52:102;;;;;;:::i;:::-;1901:33735:66;2278:63:102;;2104:244;:::o;20416:363:66:-;20570:11;;20566:65;;20580:1;1901:33735;20648:18;1901:33735;;;20580:1;1901:33735;;20580:1;1901:33735;;;;20580:1;1901:33735;;-1:-1:-1;;;;;1901:33735:66;;;20697:26;20693:80;;20416:363::o;22493:351::-;;22686:27;;;22682:134;;22825:12;;;;1901:33735;22493:351;:::o;22682:134::-;22752:27;;;;;:::i;:::-;22801:4;22794:11;:::o;23235:842::-;;;;23464:68;23567:72;23235:842;;;;23525:6;23492:29;23498:16;1901:33735;23492:29;;:::i;:::-;1901:33735;23464:68;;:::i;:::-;1901:33735;23525:6;23595:33;23601:27;1901:33735;23595:33;;:::i;23567:72::-;1901:33735;;;;;;;;:::i;:::-;23601:27;1901:33735;;;-1:-1:-1;1901:33735:66;;;;;;;;23956:30;24040:29;1901:33735;;;-1:-1:-1;;;;;1901:33735:66;23525:6;1901:33735;;;;;;;;:::i;:::-;;;;;;23779:55;;1901:33735;23767:67;;;:::i;:::-;;;;;:::i;:::-;;1901:33735;;;;;;;:::i;:::-;;;;;;23856:59;;1901:33735;23844:71;;;:::i;:::-;;;;;:::i;:::-;;23962:24;1901:33735;23956:30;;:::i;:::-;1901:33735;;;;;-1:-1:-1;1901:33735:66;23926:18;1901:33735;;23926:70;1901:33735;-1:-1:-1;1901:33735:66;;;;23926:70;:::i;:::-;1901:33735;;24040:29;:::i;:::-;1901:33735;-1:-1:-1;;;;;;1901:33735:66;;4076:41:98;;;;;;1901:33735:66;;;;;;;;;;4076:41:98;;1901:33735:66;;;;4076:41:98;;;1901:33735:66;;;;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;;;4076:41:98;;;;;;;;;;23235:842:66;:::o;1901:33735::-;;;;;;;;;;;;-1:-1:-1;;;;;1901:33735:66;;;;;;;-1:-1:-1;1901:33735:66;;;;;;;;;23851:1;1901:33735;;;;;;;;;;;:::i;:::-;-1:-1:-1;1901:33735:66;;-1:-1:-1;1901:33735:66;;;;;;;;;;;;",linkReferences:{}},methodIdentifiers:{"acceptFillFixedPercentage()":"af5cecc0","acceptFillPropotionalPercentage()":"952469d0","acceptMaxLimitFillFixedFee()":"74efedc9","acceptOwner()":"ebbc4965","acceptPercentageFee()":"35287eaf","acceptWithdrawal()":"14438428","addBalance(address,uint256)":"21e5383a","cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"5dc22075","dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":"7b8ad149","dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"92aa42c9","findMarket(address,address)":"db7ccd63","getAllMarketOrders(uint256)":"1ea43a7d","getAllMarketsMetadata()":"16790f81","getBalanceOfContract(address)":"28b44b4b","getEvvmID()":"17c85152","getIfUsedAsyncNonce(address,uint256)":"d0e3692d","getMarketMetadata(uint256)":"6b6445b6","getMaxLimitFillFixedFee()":"1f809821","getMaxLimitFillFixedFeeProposal()":"9dc20607","getMyOrdersInSpecificMarket(address,uint256)":"35b2c22c","getNextCurrentSyncNonce(address)":"6cd30148","getOrder(uint256,uint256)":"5e1a3573","getOwner()":"893d20e8","getOwnerProposal()":"9c348666","getOwnerTimeToAccept()":"775f3f7e","getPercentageFee()":"96100671","getPrincipalTokenAddress()":"280e32fb","getProposalPercentageFee()":"0a96865b","getProposedWithdrawal()":"d89ea03c","getRewardPercentage()":"c7213163","getRewardPercentageProposal()":"17857d9d","makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"b54cfef0","proposeFillFixedPercentage(uint256,uint256,uint256)":"6cdbf927","proposeFillPropotionalPercentage(uint256,uint256,uint256)":"cfb35fd0","proposeMaxLimitFillFixedFee(uint256)":"7280ff35","proposeOwner(address)":"b5ed298a","proposePercentageFee(uint256)":"b3d4fd79","proposeWithdrawal(address,uint256,address)":"b7ac72ff","rejectProposeFillFixedPercentage()":"76a75a29","rejectProposeFillPropotionalPercentage()":"8eb163d3","rejectProposeMaxLimitFillFixedFee()":"1128a79a","rejectProposeOwner()":"26415c71","rejectProposePercentageFee()":"a936e0d1","rejectProposeWithdrawal()":"54282704","stake(uint256)":"a694fc3a","unstake(uint256)":"2e17de78"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_coreAddress","type":"address"},{"internalType":"address","name":"_stakingAddress","type":"address"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidServiceSignature","type":"error"},{"inputs":[],"name":"acceptFillFixedPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptFillPropotionalPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptMaxLimitFillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptPercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"cancelOrder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint256","name":"amountOfTokenBToFill","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"},{"internalType":"uint256","name":"maxFillFixedFee","type":"uint256"}],"name":"dispatchOrder_fillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"uint256","name":"amountOfTokenBToFill","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"dispatchOrder_fillPropotionalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"}],"name":"findMarket","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"market","type":"uint256"}],"name":"getAllMarketOrders","outputs":[{"components":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"internalType":"struct P2PSwapStructs.OrderForGetter[]","name":"orders","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllMarketsMetadata","outputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"maxSlot","type":"uint256"},{"internalType":"uint256","name":"ordersAvailable","type":"uint256"}],"internalType":"struct P2PSwapStructs.MarketInformation[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBalanceOfContract","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getIfUsedAsyncNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"market","type":"uint256"}],"name":"getMarketMetadata","outputs":[{"components":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"maxSlot","type":"uint256"},{"internalType":"uint256","name":"ordersAvailable","type":"uint256"}],"internalType":"struct P2PSwapStructs.MarketInformation","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxLimitFillFixedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxLimitFillFixedFeeProposal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"market","type":"uint256"}],"name":"getMyOrdersInSpecificMarket","outputs":[{"components":[{"internalType":"uint256","name":"marketId","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"},{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"internalType":"struct P2PSwapStructs.OrderForGetter[]","name":"orders","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"getNextCurrentSyncNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"market","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"}],"name":"getOrder","outputs":[{"components":[{"internalType":"address","name":"seller","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"internalType":"struct P2PSwapStructs.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwnerProposal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwnerTimeToAccept","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPercentageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrincipalTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposalPercentageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProposedWithdrawal","outputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardPercentage","outputs":[{"components":[{"internalType":"uint256","name":"seller","type":"uint256"},{"internalType":"uint256","name":"service","type":"uint256"},{"internalType":"uint256","name":"mateStaker","type":"uint256"}],"internalType":"struct P2PSwapStructs.Percentage","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardPercentageProposal","outputs":[{"components":[{"internalType":"uint256","name":"seller","type":"uint256"},{"internalType":"uint256","name":"service","type":"uint256"},{"internalType":"uint256","name":"mateStaker","type":"uint256"}],"internalType":"struct P2PSwapStructs.Percentage","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"makeOrder","outputs":[{"internalType":"uint256","name":"market","type":"uint256"},{"internalType":"uint256","name":"orderId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seller","type":"uint256"},{"internalType":"uint256","name":"_service","type":"uint256"},{"internalType":"uint256","name":"_mateStaker","type":"uint256"}],"name":"proposeFillFixedPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seller","type":"uint256"},{"internalType":"uint256","name":"_service","type":"uint256"},{"internalType":"uint256","name":"_mateStaker","type":"uint256"}],"name":"proposeFillPropotionalPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimitFillFixedFee","type":"uint256"}],"name":"proposeMaxLimitFillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"proposeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_percentageFee","type":"uint256"}],"name":"proposePercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenToWithdraw","type":"address"},{"internalType":"uint256","name":"_amountToWithdraw","type":"uint256"},{"internalType":"address","name":"_to","type":"address"}],"name":"proposeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeFillFixedPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeFillPropotionalPercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeMaxLimitFillFixedFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposePercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposeWithdrawal","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs ","details":"Supports order book-style trading with customizable fee models. Integrates with Core.sol for asset locking and settlements, and Staking.sol for validator rewards.","errors":{"InvalidServiceSignature()":[{"details":"Thrown when signature validation fails"}]},"kind":"dev","methods":{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Validates ownership, refunds tokenA, deletes order Cancellation Flow: 1. Validates signature via Core.sol 2. Validates user is order owner 3. Processes optional priority fee 4. Refunds locked tokenA to user 5. Deletes order (sets seller to address(0)) 6. Rewards staker if applicable Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents replay attacks and double cancellation Core.sol Integration: - Refunds tokenA via makeCaPay (order.amountA) - Priority fee via requestPay (if > 0) - Staker reward: 2-3x MATE via _rewardExecutor - makeCaPay handles staker priority fee distribution Security: - Only order owner can cancel - Atomic refund + deletion - Market slot becomes available for reuse","params":{"nonce":"Nonce for service execution (async)","noncePay":"Nonce for EVVM payment transaction","orderId":"Order ID to cancel","originExecutor":"Executor address for signature validation","priorityFeePay":"Optional priority fee for staker","signature":"Signature for cancellation authorization","signaturePay":"Signature for EVVM payment","tokenA":"Token A in pair","tokenB":"Token B in pair","user":"Address that owns the order"}},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{"details":"Fee = min(proportionalFee, maxLimitFillFixedFee.current) with -10% tolerance Fixed Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates capped fee and 10% tolerance 4. Validates amountOfTokenBToFill >= amountB + fee - 10% 5. Collects tokenB + amount via Evvm.requestPay 6. Calculates final fee based on actual payment 7. Handles overpayment refund if any 8. Distributes payments (seller, service, staker) 9. Transfers tokenA to buyer via Evvm.makeCaPay 10. Rewards staker (4-5x MATE) 11. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (variable amount) - Distributes via makeDisperseCaPay: * Seller: amountB + (finalFee * seller%) * Staker: priorityFee + (finalFee * staker%) * Service: finalFee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - ProportionalFee: (amountB * percentageFee.current) / 10,000 - Fee: min(proportionalFee, maxLimitFillFixedFee.current) - Tolerance: fee * 10% (fee10) - MinRequired: amountB + fee - fee10 - FullRequired: amountB + fee - FinalFee: Based on actual payment amount Tolerance Range: - Accepts payment between [amountB + 90% fee] and [amountB + 100% fee] - Calculates actual fee from payment received - Enables flexible fee payment for users","params":{"amountOfTokenBToFill":"Amount of tokenB buyer is paying (must cover order + fee)","maxFillFixedFee":"Max fee cap (for testing)","nonce":"Nonce for service execution (async)","noncePay":"Nonce for EVVM payment transaction","orderId":"Order ID to fill","originExecutor":"Executor address for signature validation","priorityFeePay":"Optional priority fee for staker","signature":"Signature for dispatch authorization","signaturePay":"Signature for EVVM payment","tokenA":"Token A in pair","tokenB":"Token B in pair","user":"Address filling the order (buyer)"}},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Fee = amountB * percentageFee.current / 10,000 Proportional Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates fee: (amountB * percentageFee.current) / 10,000 4. Validates amountOfTokenBToFill >= amountB + fee 5. Collects tokenB + fee via Evvm.requestPay 6. Handles overpayment refund if any 7. Distributes payments (seller, service, staker) 8. Transfers tokenA to buyer via Evvm.makeCaPay 9. Rewards staker (4-5x MATE) 10. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (amountB + fee) - Distributes via makeDisperseCaPay: * Seller: amountB + (fee * seller%) * Staker: priorityFee + (fee * staker%) * Service: fee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - Fee: (amountB * percentageFee.current) / 10,000 - Total: amountB + fee - Example: 5% fee = 500 / 10,000","params":{"amountOfTokenBToFill":"Amount of tokenB buyer is paying (must cover order + fee)","nonce":"Nonce for service execution (async)","noncePay":"Nonce for EVVM payment transaction","orderId":"Order ID to fill","originExecutor":"Executor address for signature validation","priorityFeePay":"Optional priority fee for staker","signature":"Signature for dispatch authorization","signaturePay":"Signature for EVVM payment","tokenA":"Token A in pair","tokenB":"Token B in pair","user":"Address filling the order (buyer)"}},"getEvvmID()":{"details":"Returns core.getEvvmID(). Prevents cross-chain replays.","returns":{"_0":"Unique EVVM instance identifier"}},"getIfUsedAsyncNonce(address,uint256)":{"details":"View function returning core.getIfUsedAsyncNonce(user, nonce). Reserved nonces return false until consumed.","params":{"nonce":"Async nonce to check","user":"User address to query"},"returns":{"_0":"true if consumed, false if available/reserved"}},"getNextCurrentSyncNonce(address)":{"details":"View function returning core.getNextCurrentSyncNonce(user). Auto-increments after each use.","params":{"user":"User address to query"},"returns":{"_0":"Next sync nonce for user"}},"getPrincipalTokenAddress()":{"details":"Returns core.getPrincipalTokenAddress(). Used for payment operations.","returns":{"_0":"Address of Principal Token (MATE)"}},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"details":"Locks tokenA in Core.sol and opens an order slot. Markets are automatically created for new token pairs.","params":{"amountA":"Amount of tokenA offered.","amountB":"Amount of tokenB requested.","nonce":"Nonce for service execution (async).","noncePay":"Nonce for the Core payment (locks tokenA).","originExecutor":"executor address for signature validation.","priorityFeePay":"Optional priority fee for the executor.","signature":"Seller\'s authorization signature.","signaturePay":"Signature for the Core payment.","tokenA":"Address of the token being sold.","tokenB":"Address of the token being bought.","user":"Seller address."},"returns":{"market":"The ID of the market.","orderId":"The ID of the order within that market."}}},"title":"EVVM P2P Swap","version":1},"userdoc":{"kind":"user","methods":{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Cancels existing order and refunds locked tokens"},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{"notice":"Fills order using fixed/capped fee model"},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Fills order using proportional fee model"},"getEvvmID()":{"notice":"Gets unique EVVM instance identifier for signature validation"},"getIfUsedAsyncNonce(address,uint256)":{"notice":"Checks if async nonce was consumed"},"getNextCurrentSyncNonce(address)":{"notice":"Gets next sequential sync nonce for user"},"getPrincipalTokenAddress()":{"notice":"Gets Principal Token (MATE) address"},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Creates a new limit order in a specific trading market."}},"notice":"/$$$$$$$ /$$$$$$ /$$$$$$$ /$$$$$$ | $$__ $$/$$__ $| $$__ $$/$$__ $$ | $$ \\\\ $|__/ \\\\ $| $$ \\\\ $| $$ \\\\__//$$ /$$ /$$ /$$$$$$ /$$$$$$ | $$$$$$$/ /$$$$$$| $$$$$$$| $$$$$$| $$ | $$ | $$|____ $$/$$__ $$ | $$____/ /$$____/| $$____/ \\\\____ $| $$ | $$ | $$ /$$$$$$| $$ \\\\ $$ | $$ | $$ | $$ /$$ \\\\ $| $$ | $$ | $$/$$__ $| $$ | $$ | $$ | $$$$$$$| $$ | $$$$$$| $$$$$/$$$$| $$$$$$| $$$$$$$/ |__/ |________|__/ \\\\______/ \\\\_____/\\\\___/ \\\\_______| $$____/ | $$ | $$ |__/ Peer-to-peer decentralized exchange for token trading within EVVM.","version":1}},"settings":{"compilationTarget":{"src/contracts/p2pSwap/P2PSwap.sol":"P2PSwap"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/contracts/p2pSwap/P2PSwap.sol":{"keccak256":"0x3b1096877a840e92cd0bc3f29e2db26e85f6bda47b06282a852484eac538d317","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://74ebdbf8e5f0c7f6f6deca066c34b0ea11e5d64764a827ac934edb79c9fd630a","dweb:/ipfs/QmfBC9pr1dhZhyF6yPMYxzQeVvyo2HTrVpNfrs7uJfiVav"]},"src/contracts/staking/Estimator.sol":{"keccak256":"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"]},"src/contracts/staking/Staking.sol":{"keccak256":"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"]},"src/interfaces/ICore.sol":{"keccak256":"0x5aaecf1d449b5b7beb864d3f7ae281eb1ca8d810d852927e9cf04593882e3c6f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://5159ea817b157f01b80a16d6efb3bb41cc3a5d482e44e7b6370079ad8dd7dd3b","dweb:/ipfs/QmXp2GuM9aU8DBPVaikvxYG3J65pjBkyti8MTXeP2WB2Pp"]},"src/interfaces/IStaking.sol":{"keccak256":"0xa4b5ffd3ea30c1d8fc878e4031284c6311aab6adb6b8f3d9edd95fb6467ccfb0","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://530b73a2e3b6dfd3e207b768d377d84190118d8d92104fbc39d281ffb31d4c98","dweb:/ipfs/QmPEM2tFcxmiUwav17UwGw1bEkEuUFxRL2LrRB1o9FvC2r"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/EvvmService.sol":{"keccak256":"0xceddba57e52de250e7c1828cfc157173db686fa6911bb427eb0df0f9085847f4","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://b16ed1576c11fdd32db2939b23811e557fcd5a9719eba2e40bdb59508294023d","dweb:/ipfs/QmccmyQERqoU7ysrFrXt8otZJ8UHAGEYbMTFWw7thWgY6J"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/errors/StakingError.sol":{"keccak256":"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/structs/P2PSwapStructs.sol":{"keccak256":"0x26a2d75e6397aa2c67e844eafa5d2e55b920910c6639f7f06e0c95ff97144273","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://f727b7ed930fdf509b741f6026c077c88ead5fd2b6f1461d90958c5ea122ef75","dweb:/ipfs/QmeMYZUArqVqwh24717aebHkpbwbV6Lzzmk2j5tTZuceMF"]},"src/library/structs/StakingStructs.sol":{"keccak256":"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/service/CoreExecution.sol":{"keccak256":"0xcca54c237de2e977dd710a10241b49023074460a67e2d6337db7645c5fb32468","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://14102751a905a10357670a05577b690537aaf6f0a6235ba231fbaaa0538a0714","dweb:/ipfs/QmNuivzcUHWwBDdDRLXQmHXo3JZhTnCF5K5khpz3PbUbHu"]},"src/library/utils/service/StakingServiceUtils.sol":{"keccak256":"0x751f079780ec3353091054f85c0a8ad046e2d8b10b6a1532674721be4df9da53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://33581b93ba9cd6d1a9764913a5bfb53cd51617b179703ef3f277279f354c9ab0","dweb:/ipfs/QmcdBqwdjmzKhm976vGXHbYRvtoUBf7VX3RnBEKtZ5cHoh"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]},"src/library/utils/signature/P2PSwapHashUtils.sol":{"keccak256":"0x305a0ea1c5c24a22c28feef476b802bf62622507f9e8e4b616d783d7d6bf0e0e","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://7840e3bb504191739741acc2fa51eb04bbcc68e609133e3fd7577dfece0aab8c","dweb:/ipfs/QmTHoJaYazhsfWM7CBLxfYGN12omcseJPWp6CXiL5jNZZQ"]},"src/library/utils/signature/StakingHashUtils.sol":{"keccak256":"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"_coreAddress",type:"address"},{internalType:"address",name:"_stakingAddress",type:"address"},{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"InvalidServiceSignature"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptFillFixedPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptFillPropotionalPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptMaxLimitFillFixedFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptOwner"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptPercentageFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptWithdrawal"},{inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"addBalance"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"cancelOrder"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"uint256",name:"amountOfTokenBToFill",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"},{internalType:"uint256",name:"maxFillFixedFee",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"dispatchOrder_fillFixedFee"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"uint256",name:"amountOfTokenBToFill",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"dispatchOrder_fillPropotionalFee"},{inputs:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"}],stateMutability:"view",type:"function",name:"findMarket",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"uint256",name:"market",type:"uint256"}],stateMutability:"view",type:"function",name:"getAllMarketOrders",outputs:[{internalType:"struct P2PSwapStructs.OrderForGetter[]",name:"orders",type:"tuple[]",components:[{internalType:"uint256",name:"marketId",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAllMarketsMetadata",outputs:[{internalType:"struct P2PSwapStructs.MarketInformation[]",name:"",type:"tuple[]",components:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"maxSlot",type:"uint256"},{internalType:"uint256",name:"ordersAvailable",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"token",type:"address"}],stateMutability:"view",type:"function",name:"getBalanceOfContract",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getIfUsedAsyncNonce",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[{internalType:"uint256",name:"market",type:"uint256"}],stateMutability:"view",type:"function",name:"getMarketMetadata",outputs:[{internalType:"struct P2PSwapStructs.MarketInformation",name:"",type:"tuple",components:[{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"maxSlot",type:"uint256"},{internalType:"uint256",name:"ordersAvailable",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getMaxLimitFillFixedFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getMaxLimitFillFixedFeeProposal",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"market",type:"uint256"}],stateMutability:"view",type:"function",name:"getMyOrdersInSpecificMarket",outputs:[{internalType:"struct P2PSwapStructs.OrderForGetter[]",name:"orders",type:"tuple[]",components:[{internalType:"uint256",name:"marketId",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"},{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"view",type:"function",name:"getNextCurrentSyncNonce",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"uint256",name:"market",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"}],stateMutability:"view",type:"function",name:"getOrder",outputs:[{internalType:"struct P2PSwapStructs.Order",name:"order",type:"tuple",components:[{internalType:"address",name:"seller",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwnerProposal",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwnerTimeToAccept",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPercentageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPrincipalTokenAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getProposalPercentageFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getProposedWithdrawal",outputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardPercentage",outputs:[{internalType:"struct P2PSwapStructs.Percentage",name:"",type:"tuple",components:[{internalType:"uint256",name:"seller",type:"uint256"},{internalType:"uint256",name:"service",type:"uint256"},{internalType:"uint256",name:"mateStaker",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getRewardPercentageProposal",outputs:[{internalType:"struct P2PSwapStructs.Percentage",name:"",type:"tuple",components:[{internalType:"uint256",name:"seller",type:"uint256"},{internalType:"uint256",name:"service",type:"uint256"},{internalType:"uint256",name:"mateStaker",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address",name:"tokenA",type:"address"},{internalType:"address",name:"tokenB",type:"address"},{internalType:"uint256",name:"amountA",type:"uint256"},{internalType:"uint256",name:"amountB",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"makeOrder",outputs:[{internalType:"uint256",name:"market",type:"uint256"},{internalType:"uint256",name:"orderId",type:"uint256"}]},{inputs:[{internalType:"uint256",name:"_seller",type:"uint256"},{internalType:"uint256",name:"_service",type:"uint256"},{internalType:"uint256",name:"_mateStaker",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeFillFixedPercentage"},{inputs:[{internalType:"uint256",name:"_seller",type:"uint256"},{internalType:"uint256",name:"_service",type:"uint256"},{internalType:"uint256",name:"_mateStaker",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeFillPropotionalPercentage"},{inputs:[{internalType:"uint256",name:"_maxLimitFillFixedFee",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeMaxLimitFillFixedFee"},{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeOwner"},{inputs:[{internalType:"uint256",name:"_percentageFee",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposePercentageFee"},{inputs:[{internalType:"address",name:"_tokenToWithdraw",type:"address"},{internalType:"uint256",name:"_amountToWithdraw",type:"uint256"},{internalType:"address",name:"_to",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeWithdrawal"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeFillFixedPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeFillPropotionalPercentage"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeMaxLimitFillFixedFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeOwner"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposePercentageFee"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposeWithdrawal"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"stake"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"unstake"}],devdoc:{kind:"dev",methods:{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Validates ownership, refunds tokenA, deletes order Cancellation Flow: 1. Validates signature via Core.sol 2. Validates user is order owner 3. Processes optional priority fee 4. Refunds locked tokenA to user 5. Deletes order (sets seller to address(0)) 6. Rewards staker if applicable Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents replay attacks and double cancellation Core.sol Integration: - Refunds tokenA via makeCaPay (order.amountA) - Priority fee via requestPay (if > 0) - Staker reward: 2-3x MATE via _rewardExecutor - makeCaPay handles staker priority fee distribution Security: - Only order owner can cancel - Atomic refund + deletion - Market slot becomes available for reuse",params:{nonce:"Nonce for service execution (async)",noncePay:"Nonce for EVVM payment transaction",orderId:"Order ID to cancel",originExecutor:"Executor address for signature validation",priorityFeePay:"Optional priority fee for staker",signature:"Signature for cancellation authorization",signaturePay:"Signature for EVVM payment",tokenA:"Token A in pair",tokenB:"Token B in pair",user:"Address that owns the order"}},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{details:"Fee = min(proportionalFee, maxLimitFillFixedFee.current) with -10% tolerance Fixed Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates capped fee and 10% tolerance 4. Validates amountOfTokenBToFill >= amountB + fee - 10% 5. Collects tokenB + amount via Evvm.requestPay 6. Calculates final fee based on actual payment 7. Handles overpayment refund if any 8. Distributes payments (seller, service, staker) 9. Transfers tokenA to buyer via Evvm.makeCaPay 10. Rewards staker (4-5x MATE) 11. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (variable amount) - Distributes via makeDisperseCaPay: * Seller: amountB + (finalFee * seller%) * Staker: priorityFee + (finalFee * staker%) * Service: finalFee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - ProportionalFee: (amountB * percentageFee.current) / 10,000 - Fee: min(proportionalFee, maxLimitFillFixedFee.current) - Tolerance: fee * 10% (fee10) - MinRequired: amountB + fee - fee10 - FullRequired: amountB + fee - FinalFee: Based on actual payment amount Tolerance Range: - Accepts payment between [amountB + 90% fee] and [amountB + 100% fee] - Calculates actual fee from payment received - Enables flexible fee payment for users",params:{amountOfTokenBToFill:"Amount of tokenB buyer is paying (must cover order + fee)",maxFillFixedFee:"Max fee cap (for testing)",nonce:"Nonce for service execution (async)",noncePay:"Nonce for EVVM payment transaction",orderId:"Order ID to fill",originExecutor:"Executor address for signature validation",priorityFeePay:"Optional priority fee for staker",signature:"Signature for dispatch authorization",signaturePay:"Signature for EVVM payment",tokenA:"Token A in pair",tokenB:"Token B in pair",user:"Address filling the order (buyer)"}},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Fee = amountB * percentageFee.current / 10,000 Proportional Fee Execution Flow: 1. Validates signature via Core.sol 2. Validates market and order exist 3. Calculates fee: (amountB * percentageFee.current) / 10,000 4. Validates amountOfTokenBToFill >= amountB + fee 5. Collects tokenB + fee via Evvm.requestPay 6. Handles overpayment refund if any 7. Distributes payments (seller, service, staker) 8. Transfers tokenA to buyer via Evvm.makeCaPay 9. Rewards staker (4-5x MATE) 10. Deletes order Core.sol Integration: - Validates signature with State.validateAndConsumeNonce - Uses async nonce (isAsyncExec = true) - Hash includes tokenA, tokenB, orderId - Prevents double filling Core.sol Integration: - Collects tokenB via requestPay (amountB + fee) - Distributes via makeDisperseCaPay: * Seller: amountB + (fee * seller%) * Staker: priorityFee + (fee * staker%) * Service: fee * service% (accumulated) - Transfers tokenA to buyer via makeCaPay - Staker reward: 4-5x MATE via _rewardExecutor Fee Calculation: - Base: amountB (order requirement) - Fee: (amountB * percentageFee.current) / 10,000 - Total: amountB + fee - Example: 5% fee = 500 / 10,000",params:{amountOfTokenBToFill:"Amount of tokenB buyer is paying (must cover order + fee)",nonce:"Nonce for service execution (async)",noncePay:"Nonce for EVVM payment transaction",orderId:"Order ID to fill",originExecutor:"Executor address for signature validation",priorityFeePay:"Optional priority fee for staker",signature:"Signature for dispatch authorization",signaturePay:"Signature for EVVM payment",tokenA:"Token A in pair",tokenB:"Token B in pair",user:"Address filling the order (buyer)"}},"getEvvmID()":{details:"Returns core.getEvvmID(). Prevents cross-chain replays.",returns:{_0:"Unique EVVM instance identifier"}},"getIfUsedAsyncNonce(address,uint256)":{details:"View function returning core.getIfUsedAsyncNonce(user, nonce). Reserved nonces return false until consumed.",params:{nonce:"Async nonce to check",user:"User address to query"},returns:{_0:"true if consumed, false if available/reserved"}},"getNextCurrentSyncNonce(address)":{details:"View function returning core.getNextCurrentSyncNonce(user). Auto-increments after each use.",params:{user:"User address to query"},returns:{_0:"Next sync nonce for user"}},"getPrincipalTokenAddress()":{details:"Returns core.getPrincipalTokenAddress(). Used for payment operations.",returns:{_0:"Address of Principal Token (MATE)"}},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{details:"Locks tokenA in Core.sol and opens an order slot. Markets are automatically created for new token pairs.",params:{amountA:"Amount of tokenA offered.",amountB:"Amount of tokenB requested.",nonce:"Nonce for service execution (async).",noncePay:"Nonce for the Core payment (locks tokenA).",originExecutor:"executor address for signature validation.",priorityFeePay:"Optional priority fee for the executor.",signature:"Seller's authorization signature.",signaturePay:"Signature for the Core payment.",tokenA:"Address of the token being sold.",tokenB:"Address of the token being bought.",user:"Seller address."},returns:{market:"The ID of the market.",orderId:"The ID of the order within that market."}}},version:1},userdoc:{kind:"user",methods:{"cancelOrder(address,address,address,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Cancels existing order and refunds locked tokens"},"dispatchOrder_fillFixedFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes,uint256)":{notice:"Fills order using fixed/capped fee model"},"dispatchOrder_fillPropotionalFee(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Fills order using proportional fee model"},"getEvvmID()":{notice:"Gets unique EVVM instance identifier for signature validation"},"getIfUsedAsyncNonce(address,uint256)":{notice:"Checks if async nonce was consumed"},"getNextCurrentSyncNonce(address)":{notice:"Gets next sequential sync nonce for user"},"getPrincipalTokenAddress()":{notice:"Gets Principal Token (MATE) address"},"makeOrder(address,address,address,uint256,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Creates a new limit order in a specific trading market."}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/p2pSwap/P2PSwap.sol":"P2PSwap"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/p2pSwap/P2PSwap.sol":{keccak256:"0x3b1096877a840e92cd0bc3f29e2db26e85f6bda47b06282a852484eac538d317",urls:["bzz-raw://74ebdbf8e5f0c7f6f6deca066c34b0ea11e5d64764a827ac934edb79c9fd630a","dweb:/ipfs/QmfBC9pr1dhZhyF6yPMYxzQeVvyo2HTrVpNfrs7uJfiVav"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Estimator.sol":{keccak256:"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057",urls:["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Staking.sol":{keccak256:"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a",urls:["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/ICore.sol":{keccak256:"0x5aaecf1d449b5b7beb864d3f7ae281eb1ca8d810d852927e9cf04593882e3c6f",urls:["bzz-raw://5159ea817b157f01b80a16d6efb3bb41cc3a5d482e44e7b6370079ad8dd7dd3b","dweb:/ipfs/QmXp2GuM9aU8DBPVaikvxYG3J65pjBkyti8MTXeP2WB2Pp"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IStaking.sol":{keccak256:"0xa4b5ffd3ea30c1d8fc878e4031284c6311aab6adb6b8f3d9edd95fb6467ccfb0",urls:["bzz-raw://530b73a2e3b6dfd3e207b768d377d84190118d8d92104fbc39d281ffb31d4c98","dweb:/ipfs/QmPEM2tFcxmiUwav17UwGw1bEkEuUFxRL2LrRB1o9FvC2r"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/EvvmService.sol":{keccak256:"0xceddba57e52de250e7c1828cfc157173db686fa6911bb427eb0df0f9085847f4",urls:["bzz-raw://b16ed1576c11fdd32db2939b23811e557fcd5a9719eba2e40bdb59508294023d","dweb:/ipfs/QmccmyQERqoU7ysrFrXt8otZJ8UHAGEYbMTFWw7thWgY6J"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/StakingError.sol":{keccak256:"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2",urls:["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/P2PSwapStructs.sol":{keccak256:"0x26a2d75e6397aa2c67e844eafa5d2e55b920910c6639f7f06e0c95ff97144273",urls:["bzz-raw://f727b7ed930fdf509b741f6026c077c88ead5fd2b6f1461d90958c5ea122ef75","dweb:/ipfs/QmeMYZUArqVqwh24717aebHkpbwbV6Lzzmk2j5tTZuceMF"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/StakingStructs.sol":{keccak256:"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf",urls:["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/service/CoreExecution.sol":{keccak256:"0xcca54c237de2e977dd710a10241b49023074460a67e2d6337db7645c5fb32468",urls:["bzz-raw://14102751a905a10357670a05577b690537aaf6f0a6235ba231fbaaa0538a0714","dweb:/ipfs/QmNuivzcUHWwBDdDRLXQmHXo3JZhTnCF5K5khpz3PbUbHu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/service/StakingServiceUtils.sol":{keccak256:"0x751f079780ec3353091054f85c0a8ad046e2d8b10b6a1532674721be4df9da53",urls:["bzz-raw://33581b93ba9cd6d1a9764913a5bfb53cd51617b179703ef3f277279f354c9ab0","dweb:/ipfs/QmcdBqwdjmzKhm976vGXHbYRvtoUBf7VX3RnBEKtZ5cHoh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/P2PSwapHashUtils.sol":{keccak256:"0x305a0ea1c5c24a22c28feef476b802bf62622507f9e8e4b616d783d7d6bf0e0e",urls:["bzz-raw://7840e3bb504191739741acc2fa51eb04bbcc68e609133e3fd7577dfece0aab8c","dweb:/ipfs/QmTHoJaYazhsfWM7CBLxfYGN12omcseJPWp6CXiL5jNZZQ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/StakingHashUtils.sol":{keccak256:"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65",urls:["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:66},uk={abi:[{type:"constructor",inputs:[{name:"initialAdmin",type:"address",internalType:"address"},{name:"initialGoldenFisher",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptNewAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptNewEstimator",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptNewGoldenFisher",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"acceptSetSecondsToUnlockStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addPresaleStaker",inputs:[{name:"_staker",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addPresaleStakers",inputs:[{name:"_stakers",type:"address[]",internalType:"address[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelChangeAllowPresaleStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelChangeAllowPublicStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"cancelSetSecondsToUnllockFullUnstaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmChangeAllowPresaleStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmChangeAllowPublicStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmServiceStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"confirmSetSecondsToUnllockFullUnstaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAddressHistory",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"tuple[]",internalType:"struct StakingStructs.HistoryMetadata[]",components:[{name:"transactionType",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"timestamp",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAddressHistoryByIndex",inputs:[{name:"_account",type:"address",internalType:"address"},{name:"_index",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"tuple",internalType:"struct StakingStructs.HistoryMetadata",components:[{name:"transactionType",type:"bytes32",internalType:"bytes32"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"timestamp",type:"uint256",internalType:"uint256"},{name:"totalStaked",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAllowPresaleStaking",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.BoolTypeProposal",components:[{name:"flag",type:"bool",internalType:"bool"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getAllowPublicStaking",inputs:[],outputs:[{name:"",type:"tuple",internalType:"struct ProposalStructs.BoolTypeProposal",components:[{name:"flag",type:"bool",internalType:"bool"},{name:"timeToAccept",type:"uint256",internalType:"uint256"}]}],stateMutability:"view"},{type:"function",name:"getCoreAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getEstimatorAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getEstimatorProposal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getEvvmID",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getGoldenFisher",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getGoldenFisherProposal",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getIfUsedAsyncNonce",inputs:[{name:"user",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getMateAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getPresaleStaker",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPresaleStakerCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSecondsToUnlockFullUnstaking",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSecondsToUnlockStaking",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSizeOfAddressHistory",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTimeToUserUnlockFullUnstakingTime",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTimeToUserUnlockStakingTime",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getUserAmountStaked",inputs:[{name:"_account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"gimmeYiel",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"epochAnswer",type:"bytes32",internalType:"bytes32"},{name:"tokenToBeRewarded",type:"address",internalType:"address"},{name:"amountTotalToBeRewarded",type:"uint256",internalType:"uint256"},{name:"idToOverwriteUserHistory",type:"uint256",internalType:"uint256"},{name:"timestampToBeOverwritten",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"goldenStaking",inputs:[{name:"isStaking",type:"bool",internalType:"bool"},{name:"amountOfStaking",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"initializeSystemContracts",inputs:[{name:"_estimator",type:"address",internalType:"address"},{name:"_core",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareChangeAllowPresaleStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareChangeAllowPublicStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareServiceStaking",inputs:[{name:"amountOfStaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"prepareSetSecondsToUnllockFullUnstaking",inputs:[{name:"_secondsToUnllockFullUnstaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"presaleStaking",inputs:[{name:"user",type:"address",internalType:"address"},{name:"isStaking",type:"bool",internalType:"bool"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"priceOfStaking",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"proposeAdmin",inputs:[{name:"_newAdmin",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeEstimator",inputs:[{name:"_estimator",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeGoldenFisher",inputs:[{name:"_goldenFisher",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"proposeSetSecondsToUnlockStaking",inputs:[{name:"_secondsToUnlockStaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"publicStaking",inputs:[{name:"user",type:"address",internalType:"address"},{name:"isStaking",type:"bool",internalType:"bool"},{name:"amountOfStaking",type:"uint256",internalType:"uint256"},{name:"senderExecutor",type:"address",internalType:"address"},{name:"originExecutor",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"priorityFeePay",type:"uint256",internalType:"uint256"},{name:"noncePay",type:"uint256",internalType:"uint256"},{name:"signaturePay",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalAdmin",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalEstimator",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalGoldenFisher",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rejectProposalSetSecondsToUnlockStaking",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"serviceUnstaking",inputs:[{name:"amountOfStaking",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"error",name:"AddressIsNotAService",inputs:[]},{type:"error",name:"AddressMismatch",inputs:[]},{type:"error",name:"AddressMustWaitToFullUnstake",inputs:[]},{type:"error",name:"AddressMustWaitToStakeAgain",inputs:[]},{type:"error",name:"LimitPresaleStakersExceeded",inputs:[]},{type:"error",name:"PresaleStakingDisabled",inputs:[]},{type:"error",name:"PublicStakingDisabled",inputs:[]},{type:"error",name:"SenderIsNotAdmin",inputs:[]},{type:"error",name:"SenderIsNotGoldenFisher",inputs:[]},{type:"error",name:"SenderIsNotProposedAdmin",inputs:[]},{type:"error",name:"ServiceDoesNotFulfillCorrectStakingAmount",inputs:[{name:"requiredAmount",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ServiceDoesNotStakeInSameTx",inputs:[]},{type:"error",name:"TimeToAcceptProposalNotReached",inputs:[]},{type:"error",name:"UserIsNotPresaleStaker",inputs:[]},{type:"error",name:"UserPresaleStakerLimitExceeded",inputs:[]}],bytecode:{object:"0x60803460ba57601f613d0538819003918201601f19168301916001600160401b0383118484101760be57808492604094855283398101031260ba57604b602060458360d2565b920160d2565b9060018060a01b031660018060a01b0319600254161760025560018060a01b031660018060a01b03196005541617600555600160ff19601354161760135560ff19601154166011555f600b5562069780600e55600160ff19601a541617601a55604051613c1f90816100e68239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820360ba5756fe60806040526004361015610011575f80fd5b5f5f3560e01c8063147bf6c41461352657806317c85152146134a85780631e9c210f146134625780632096b7681461343d57806327be05571461340957806334dd90d6146133975780633900738a1461333e5780633d8ff69a146132e0578063475c31ff14612cbb578063489c5ad414612c6057806355160ea614612bba57806358b71cb414612406578063602c4fb414612111578063610a0476146120d45780636254300b146120ad57806366d161aa14612086578063681f02ac1461202a5780636b2933a214611fed5780636c58f77b14611f685780636fa7ff1714611ef15780637068dc6514611ec75780637c25faef14611e995780637f8da59114611e72578063829c67d414611a8357806383e512ab14611362578063893d20e81461133b57806389a75af8146112e35780638f4b3f28146112975780639053a2581461120557806396ae4e451461116557806399b4c3ef14610f045780639cde1d3e14610ee05780639e41123314610ebc578063a06831ba14610e80578063a84e9f2314610e44578063b384c57414610e16578063b38c950a14610dda578063b996b6c414610db0578063be10034514610cca578063c130a71914610c78578063c9d2beb114610643578063cb0900b81461061e578063cd6b5460146105a9578063d0e3692d14610508578063d5bbacd5146104dc578063dfb2b3a414610483578063e6cbd0a61461045c578063e6f2ebe41461043e578063e7dc0756146103e2578063f5c1af1c146103c4578063fa6215f3146103a6578063fabd08e81461029b5763fc2feab214610261575f80fd5b346102985760203660031901126102985760406020916001600160a01b0361028761357f565b168152601c83522054604051908152f35b80fd5b5034610298576020366003190112610298576001600160a01b036102bd61357f565b168152601c60205260408120805467ffffffffffffffff811161039257604051906102ee60208260051b0183613641565b80825260208201809385526020852085915b83831061037457868587604051928392602084019060208552518091526040840192915b818110610332575050500390f35b9193509160206080826103666001948851606080918051845260208101516020850152604081015160408501520151910152565b019401910191849392610324565b6004602060019261038485613790565b815201920192019190610300565b634e487b7160e01b83526041600452602483fd5b50346102985780600319360112610298576020600154604051908152f35b50346102985780600319360112610298576020600e54604051908152f35b50346102985780600319360112610298576103fb613778565b505061043a60405161040c816135f5565b60115460ff161515808252601254602092830190815260408051928352905192820192909252918291820190565b0390f35b50346102985780600319360112610298576020600b54604051908152f35b503461029857806003193601126102985760206001600160a01b0360095416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576201518042018042116104b95760125580f35b634e487b7160e01b82526011600452602482fd5b636587b01b60e11b8152600490fd5b50346102985760203660031901126102985760206105006104fb61357f565b61387c565b604051908152f35b50346102985760403660031901126102985761052261357f565b60206001600160a01b03604481601d541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa90811561059e5760209291610571575b506040519015158152f35b6105919150823d8411610597575b6105898183613641565b810190613752565b5f610566565b503d61057f565b6040513d84823e3d90fd5b50346102985780600319360112610298576003546001600160a01b03811680330361060f576004544210610600576001600160601b0360a01b60025416176002556001600160601b0360a01b166003558060045580f35b6384fa847560e01b8352600483fd5b632dba366760e21b8352600483fd5b503461029857806003193601126102985760206040516901138ccba11c9e8c00008152f35b5034610298578060031936011261029857333b15610c6957601754806901138ccba11c9e8c000002906901138ccba11c9e8c00008204810361091a5761068b82601854613704565b6001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610bea578692610c29575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa918215610bea578692610bf5575b5014159081610af2575b50610ade576016544203610acf57336001600160a01b036015541603610ac05760405190610734826135f5565b3382526020820191600183526020936040516107508682613641565b868152426107676001600160a01b0385511661380d565b11610ab15786855115610a92575b9150506001600160a01b03601d54166001600160a01b03835116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57610a75575b505080516001600160a01b03168552601c84526040852054610a04576001600160a01b0382915b51168552601c8452604085206040519261080a84613625565b60018452858401908152604084019142835260608501938452805490600160401b8210156109f0579061084291600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116918382602481865afa9182156109d15785926109b2575b50816109a8575b506108a7578280f35b60405163280e32fb60e01b81528281600481855afa908115610962578390859261096d575b506040516309a69f5760e01b81529192829060049082905afa92831561096257849361092e575b50508160011b918083046002149015171561091a5790610914913390613925565b5f808280f35b634e487b7160e01b83526011600452602483fd5b9080929350813d831161095b575b6109468183613641565b810103126109575751905f806108f3565b5f80fd5b503d61093c565b6040513d86823e3d90fd5b809250813d83116109a1575b6109838183613641565b8101031261099d5782610997600492613711565b916108cc565b8380fd5b503d610979565b905051155f61089e565b6109ca919250843d8611610597576105898183613641565b905f610897565b6040513d87823e3d90fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b89526041600452602489fd5b6001600160a01b038151168552601c8452604085206001600160a01b038251168652601c85526040862054905f198201918211610a6157836003610a536001600160a01b0394610a5b94613725565b5001546135e8565b916107f1565b634e487b7160e01b87526011600452602487fd5b81610a7f91613641565b610a8a57845f6107ca565b8480fd5b8280fd5b808080610aa9956001600160a01b03885116613ab1565b5f8086610775565b632df062b560e21b8752600487fd5b634cd87fb560e01b8352600483fd5b635ac7600960e11b8352600483fd5b630387e0bb60e21b83526004829052602483fd5b9050610b00836019546135e8565b60405163280e32fb60e01b8152602081600481865afa908115610bea578691610ba4575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529160209083908180604481015b03915afa9182156109d1578592610b70575b5014155f610707565b9091506020813d602011610b9c575b81610b8c60209383613641565b810103126109575751905f610b67565b3d9150610b7f565b90506020813d602011610be2575b81610bbf60209383613641565b81010312610bde57610b5592610bd6602092613711565b915092610b24565b8580fd5b3d9150610bb2565b6040513d88823e3d90fd5b9091506020813d602011610c21575b81610c1160209383613641565b810103126109575751905f6106fd565b3d9150610c04565b91506020823d602011610c61575b81610c4460209383613641565b81010312610bde576020610c5a6106ea93613711565b92506106bd565b3d9150610c37565b634a340e9d60e01b8152600490fd5b5034610298576020366003190112610298576040906001826001600160a01b03610ca061357f565b1692838152601b60205260ff8282205416938152601b602052200154825191151582526020820152f35b50346102985760203660031901126102985760043567ffffffffffffffff8111610dac5736602382011215610dac5780600401359067ffffffffffffffff8211610a8e573660248360051b83010111610a8e576001600160a01b03600254163303610d9d57825b82811015610d995761032060015411610d8a5760248160051b83010135906001600160a01b038216809203610a8a576001918552601b602052604085208260ff19825416179055610d82825461376a565b825501610d31565b63d646f8c560e01b8452600484fd5b8380f35b636587b01b60e11b8352600483fd5b5080fd5b50346102985780600319360112610298576001600160a01b036002541633036104cd578060145580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600354166003558060045580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600f558060105580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600654166006558060075580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b6009541660095580600a5580f35b5034610298576020366003190112610298576020610500610edb61357f565b61380d565b5034610298576020366003190112610298576020610500610eff61357f565b6137c2565b503461029857602036600319011261029857600435333b15611156576001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610962578492611116575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa9182156109625784926110e2575b5060405163280e32fb60e01b8152602081600481875afa9081156109d15785916110a0575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529260209084908180604481015b03915afa92831561096257849361106c575b5060405160a0810181811067ffffffffffffffff8211176110585784916080916040523381524260208201528360408201528460608201520152336001600160601b0360a01b60155416176015554260165560175560185560195580f35b634e487b7160e01b86526041600452602486fd5b9092506020813d602011611098575b8161108860209383613641565b810103126109575751915f610ffa565b3d915061107b565b90506020813d6020116110da575b816110bb60209383613641565b81010312610a8a57610fe8936110d2602092613711565b915093610fb7565b3d91506110ae565b9091506020813d60201161110e575b816110fe60209383613641565b810103126109575751905f610f92565b3d91506110f1565b91506020823d60201161114e575b8161113160209383613641565b8101031261099d576020611147610f7f93613711565b9250610f52565b3d9150611124565b634a340e9d60e01b8252600482fd5b503461029857806003193601126102985760049060206001600160a01b03601d54166040519384809263280e32fb60e01b82525afa9081156111f95780916111bc575b6020826001600160a01b0360405191168152f35b90506020823d6020116111f1575b816111d760209383613641565b8101031261029857506111eb602091613711565b5f6111a8565b3d91506111ca565b604051903d90823e3d90fd5b50346102985760403660031901126102985761126a6112646080926001600160a01b0361123061357f565b82606060405161123f81613625565b8281528260208201528260408201520152168152601c60205260406024359120613725565b50613790565b6112956040518092606080918051845260208101516020850152604081015160408501520151910152565bf35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760105442106112d457600f54600e5580600f558060105580f35b6384fa847560e01b8152600490fd5b50346102985780600319360112610298576112fc613778565b505061043a60405161130d816135f5565b60135460ff161515808252601454602092830190815260408051928352905192820192909252918291820190565b503461029857806003193601126102985760206001600160a01b0360025416604051908152f35b5034610298576101403660031901126102985761137d61357f565b6113856135ab565b604435611390613595565b92608435926001600160a01b0384168403610bde5760c43567ffffffffffffffff8111611a7f576113c59036906004016135ba565b60e435959161010435916101243567ffffffffffffffff8111611a7b576113f09036906004016135ba565b99909260ff6013541615611a6c57908b92916001600160a01b03601d5416604051602081019060608252600d60808201526c7075626c69635374616b696e6760981b60a08201528a151560408201528c606082015260a0815261145460c082613641565b519020813b15610bde578580946114898d978c96604051998a9889978896637d3d171560e11b885260a43593600489016136a9565b03925af1801561059e57611a57575b50506114c5906001600160a01b03604051966114b3886135f5565b16865260208601988a8a523691613663565b918315611843576114df6001600160a01b0386511661380d565b4210611834578751156117dc575b505050856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e576117c7575b505081516001600160a01b03168652601c602052604086205461175d576001600160a01b03835b925b51168652601c602052604086209015611755576001925b6040519361159085613625565b845260208401908152604084019142835260608501938452805490600160401b8210156109f057906115c791600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911692602082602481875afa9182156109d1578592611734575b508161172a575b5061162d578280f35b60405163280e32fb60e01b815291602083600481845afa9283156109625784936116e9575b506020600491604051928380926309a69f5760e01b82525afa9081156109625784916116b7575b508060011b90808204600214901517156116a357610914929161169b916135e8565b903390613925565b634e487b7160e01b84526011600452602484fd5b90506020813d6020116116e1575b816116d260209383613641565b8101031261095757515f611679565b3d91506116c5565b9092506020813d602011611722575b8161170560209383613641565b8101031261099d57602061171a600492613711565b939150611652565b3d91506116f8565b905051155f611624565b61174e91925060203d602011610597576105898183613641565b905f61161d565b600292611583565b6001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b357846003610a536001600160a01b03946117ae94613725565b61156a565b634e487b7160e01b88526011600452602488fd5b816117d191613641565b610bde57855f611543565b6001600160a01b03855116866901138ccba11c9e8c000002906901138ccba11c9e8c000082048803611820579188611818959492600194613ab1565b5f80806114ed565b634e487b7160e01b8b52601160045260248bfd5b632df062b560e21b8952600489fd5b6118596001600160a01b038694939451166137c2565b86146119c0575b861515806119b7575b611997575b5050506001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b35760036118ba6118c2938793613725565b500154613704565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa90811561198c57889161194e575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c00008304870361193a5791611935916001600160a01b039493613925565b61156c565b634e487b7160e01b8a52601160045260248afd5b90506020813d602011611984575b8161196960209383613641565b810103126119805761197a90613711565b5f6118f4565b8780fd5b3d915061195c565b6040513d8a823e3d90fd5b6119af92600191886001600160a01b03885116613987565b5f808061186e565b50875115611869565b6119d36001600160a01b0386511661387c565b4210611a4857886001600160a01b03601d54166001600160a01b03875116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57611a2f575b5050611860565b81611a3991613641565b611a4457885f611a28565b8880fd5b636b0ed46d60e01b8952600489fd5b81611a6191613641565b611a4457885f611498565b6333a374eb60e11b8c5260048cfd5b8a80fd5b8680fd5b503461029857602036600319011261029857600435333b1561115657604051611aab816135f5565b338152602081019160018352602091604051611ac78482613641565b85815285611ade6001600160a01b038451166137c2565b8414611ddb575b611dbd575b506001600160a01b038151168552601c8352604085206001600160a01b038251168652601c84526040862054905f198201918211610a615760036118ba611b32938693613725565b906004846001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db2578791611d7d575b506001600160a01b03825116846901138ccba11c9e8c000002916901138ccba11c9e8c000083048603611d695791611ba4916001600160a01b039493613925565b51168552601c8352604085208515611d61576001925b60405193611bc785613625565b8452848401908152604084019142835260608501938452805490600160401b8210156109f05790611bfd91600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116928282602481875afa9182156109d1578592611d42575b5081611d38575b50611c62578280f35b60405163280e32fb60e01b8152918183600481845afa928315610962578493611cfd575b5081600491604051928380926309a69f5760e01b82525afa918215610962578492611ccf575b50508060011b908082046002149015171561091a579061169b83610914936135e8565b90809250813d8311611cf6575b611ce68183613641565b8101031261095757515f80611cac565b503d611cdc565b9092508181813d8311611d31575b611d158183613641565b8101031261099d5781611d29600492613711565b939150611c86565b503d611d0b565b905051155f611c59565b611d5a919250833d8511610597576105898183613641565b905f611c52565b600292611bba565b634e487b7160e01b89526011600452602489fd5b90508481813d8311611dab575b611d948183613641565b81010312611a7f57611da590613711565b5f611b63565b503d611d8a565b6040513d89823e3d90fd5b611dd590868080806001600160a01b03875116613987565b5f611aea565b50611def6001600160a01b0383511661387c565b4210611e6357856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af190811561059e578291611e4e575b5050611ae5565b81611e5891613641565b61029857805f611e47565b636b0ed46d60e01b8652600486fd5b503461029857806003193601126102985760206001600160a01b0360055416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600c5580600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd578060125580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600a5442106112d4576009546001600160a01b03811690816001600160601b0360a01b60085416176008556001600160601b0360a01b1660095581600a556001600160601b0360a01b601e541617601e5580f35b503461029857602036600319011261029857611f8261357f565b6001600160a01b03600254163303611fde5761032060015411611fcf576001600160a01b03168152601b60205260408120600160ff19825416179055611fc960015461376a565b60015580f35b63d646f8c560e01b8252600482fd5b636587b01b60e11b8252600482fd5b5034610298576020366003190112610298576001600160a01b036002541633036104cd57600435600c556201518042018042116104b957600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760145442106112d45760ff601354161581602060405161206c816135f5565b838152015260ff8019601354169116176013558060145580f35b503461029857806003193601126102985760206001600160a01b0360085416604051908152f35b503461029857806003193601126102985760206001600160a01b0360065416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600d5442106112d457600c54600b5580600c5580600d5580f35b50346102985760203660031901126102985761212b61357f565b90808092818291836001600160a01b038216808252601c602052604082205461217a575b5050506001600160a01b0360a095604051958652166020850152604084015260608301526080820152f35b94509450945050508160a06001600160a01b03601e541660246040518094819363f702720760e01b83528760048401525af19283156111f9578080948193829083926123ac575b50819581958095899a819a836121dc575b505050505061214f565b916121f08460029795936122319795613925565b828852601c6020526122058460408a20613725565b5055818752601c602052600161221e8460408a20613725565b5001558552601c60205260408520613725565b5001556001600160a01b03601d541690604051630a1ad2d160e21b8152336004820152602081602481865afa90811561059e57829161238d575b5061227c575b8080808080806121d2565b60405163280e32fb60e01b815290602082600481865afa91821561233d57819261234a575b506020600493604051948580926309a69f5760e01b82525afa92831561233d578193612309575b50828004600114831517156122f55750956122ef6001600160a01b039260a0983390613925565b95612271565b634e487b7160e01b81526011600452602490fd5b9092506020813d602011612335575b8161232560209383613641565b810103126109575751915f6122c8565b3d9150612318565b50604051903d90823e3d90fd5b9091506020813d602011612385575b8161236660209383613641565b81010312610dac5790602061237d60049493613711565b9293506122a1565b3d9150612359565b6123a6915060203d602011610597576105898183613641565b5f61226b565b9450505093505060a0813d60a0116123fe575b816123cc60a09383613641565b81010312610a8e578051926123e360208301613711565b9060408301519460806060850151940151909295935f6121c1565b3d91506123bf565b5034610298576101203660031901126102985761242161357f565b6124296135ab565b90604435916001600160a01b038316830361099d57612446613595565b9060a43567ffffffffffffffff8111610bde576124679036906004016135ba565b60c4359460e435916101043567ffffffffffffffff8111612bb6576124909036906004016135ba565b98909460ff60115416158015612baa575b612b9b57908a92916001600160a01b03601d5416604051602081019060608252600e60808201526d70726573616c655374616b696e6760901b60a08201528a151560408201526001606082015260a081526124fd60c082613641565b519020813b15610bde5785809461253289978e96604051998a9889978896637d3d171560e11b885260843593600489016136a9565b03925af1801561059e57612b86575b50506001600160a01b031691828852601b60205260ff60408920541615612b7757828852601b60205260408820600101548415612b705760028110155b612b61578415612b4c5760018101809111611d6957906125c7915b848a52601b602052600160408b200155604051936125b6856135f5565b845260208401978989523691613663565b908794845f14612956576125e46001600160a01b0385511661380d565b421061294757875115612915575b5050506001600160a01b03601d54166001600160a01b03825116813b15610a8a57849160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af180156109625784906128fe575b505080516001600160a01b03168352601c6020526040832054612889576001600160a01b0360015b915b51168352601c602052604083209115612881576001915b6040519261269784613625565b83526020830160018152604084019142835260608501938452805490600160401b82101561286d57906126cf91600182018155613725565b9490946128595751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911693602082602481885afa91821561284e57839261282d575b5081612823575b50612735578380f35b60405163280e32fb60e01b815292602084600481845afa93841561059e5782946127e0575b50906020600492604051938480926309a69f5760e01b82525afa91821561233d5781926127ac575b508160011b91808304600214901517156122f557506127a5929161169b916135e8565b5f80808380f35b9091506020813d6020116127d8575b816127c860209383613641565b810103126109575751905f612782565b3d91506127bb565b9093506020813d60201161281b575b816127fc60209383613641565b81010312610dac57906020612812600493613711565b9491925061275a565b3d91506127ef565b905051155f61272c565b61284791925060203d602011610597576105898183613641565b905f612725565b6040513d85823e3d90fd5b634e487b7160e01b86526004869052602486fd5b634e487b7160e01b87526041600452602487fd5b60029161268a565b6001600160a01b038151168352601c602052604083206001600160a01b038251168452601c6020526040842054905f1982019182116128ea576003916128ce91613725565b50015460018101809111610a61576001600160a01b0390612671565b634e487b7160e01b85526011600452602485fd5b61290791613641565b828612610a8e575f83612649565b83516001600160a01b031686610a615791600191886901138ccba11c9e8c000061293f9695613ab1565b5f80806125f2565b632df062b560e21b8652600486fd5b909293945061296e6001600160a01b038551166137c2565b600114612ab9575b85151580612ab0575b612a90575b5050506001600160a01b038151168552601c602052604085206001600160a01b038251168652601c6020526040862054905f198201918211610a61576003916129cc91613725565b5001545f198101908111612a7c57601d5460405163280e32fb60e01b8152939290602090859060049082906001600160a01b03165afa938415611db2578794612a38575b5080612a336901138ccba11c9e8c00006001600160a01b03809451168a97613925565b612673565b9093506020813d602011612a74575b81612a5460209383613641565b81010312611a7f57612a6d6001600160a01b0391613711565b9390612a10565b3d9150612a47565b634e487b7160e01b86526011600452602486fd5b612aa892600191876001600160a01b03875116613987565b5f8080612984565b5086511561297f565b612acc6001600160a01b0385511661387c565b4210612b3d57876001600160a01b03601d54166001600160a01b03865116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57612b28575b5050612976565b81612b3291613641565b61198057875f612b21565b636b0ed46d60e01b8852600488fd5b5f198101908111611d6957906125c791612599565b636b3af2e560e01b8952600489fd5b801561257e565b63f706524f60e01b8852600488fd5b81612b9091613641565b61198057875f612541565b63098e23b360e41b8b5260048bfd5b5060ff601354166124a1565b8980fd5b503461029857604036600319011261029857612bd461357f565b6024356001600160a01b038116809103610a8e57601a549160f883901b6001600160f81b0319161561099d576001600160a01b031690816001600160601b0360a01b6008541617600855806001600160601b0360a01b8554161784556001600160601b0360a01b601d541617601d556001600160601b0360a01b601e541617601e5560ff1916601a5580f35b503461029857602036600319011261029857612c7a61357f565b6001600160a01b03600254163303611fde576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116104b95760075580f35b50346109575760603660031901126109575760043580151581036109575760243560443567ffffffffffffffff811161095757612cfc9036906004016135ba565b90926001600160a01b0360055416918233036132d15760405192612d1f846135f5565b8352602460208401955f875260206001600160a01b03601d541660405193848092630d9a602960e31b82523360048301525afa918215613281575f9261329b575b50612d6d91923691613663565b9082156130bf57612d876001600160a01b0385511661380d565b4210610ab15785511561307d575b5050846001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57613068575b505081516001600160a01b03168552601c6020526040852054613012576001600160a01b03835b925b51168552601c60205260408520901561300a576001925b60405193612e3785613625565b845260208401908152604084019142835260608501938452805490600160401b821015612ff65790612e6e91600182018155613725565b949094612fe25751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911691602082602481865afa918215610962578492612fc1575b5081612fb7575b50612ed4575080f35b60405163280e32fb60e01b815290602082600481845afa91821561284e578392612f78575b50906020600492604051938480926309a69f5760e01b82525afa91821561284e578392612f44575b508160011b918083046002149015171561091a5790612f41913390613925565b80f35b9091506020813d602011612f70575b81612f6060209383613641565b810103126109575751905f612f21565b3d9150612f53565b91506020823d602011612faf575b81612f9360209383613641565b81010312610a8e576020612fa8600493613711565b9250612ef9565b3d9150612f86565b905051155f612ecb565b612fdb91925060203d602011610597576105898183613641565b905f612ec4565b634e487b7160e01b87526004879052602487fd5b634e487b7160e01b88526041600452602488fd5b600292612e2a565b6001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a6157846003610a536001600160a01b039461306394613725565b612e11565b8161307291613641565b610a8a57845f612dea565b6001600160a01b03845116856901138ccba11c9e8c000002906901138ccba11c9e8c000082048703611d695791888080936130b89695613ab1565b5f80612d95565b90866130d46001600160a01b038651166137c2565b86146131fd575b806131df575b5050506001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a615760036118ba61312d938793613725565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db25787916131a5575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c000083048703611d6957916131a0916001600160a01b039493613925565b612e13565b90506020813d6020116131d7575b816131c060209383613641565b81010312611a7f576131d190613711565b5f61315f565b3d91506131b3565b6131f59281806001600160a01b03885116613987565b5f80866130e1565b506132116001600160a01b0385511661387c565b421061328c576001600160a01b03601d54166001600160a01b03855116813b15610957575f9160448392604051948593849263adb6233f60e01b845260048401528160248401525af180156132815761326c575b50866130db565b6132799197505f90613641565b5f955f613265565b6040513d5f823e3d90fd5b636b0ed46d60e01b5f5260045ffd5b91506020823d6020116132c9575b816132b660209383613641565b8101031261095757612d6d915191612d60565b3d91506132a9565b630d9974d560e11b5f5260045ffd5b34610957576020366003190112610957576001600160a01b0360025416330361332f57600435600f5562015180420180421161331b57601055005b634e487b7160e01b5f52601160045260245ffd5b636587b01b60e11b5f5260045ffd5b346109575760203660031901126109575761335761357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600954161760095562015180420180421161331b57600a55005b34610957575f366003190112610957576001600160a01b0360025416330361332f5760075442106133fa57600680546005805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b038416179091551690555f600755005b6384fa847560e01b5f5260045ffd5b34610957575f366003190112610957576001600160a01b0360025416330361332f5762015180420180421161331b57601455005b34610957575f3660031901126109575760206001600160a01b035f5416604051908152f35b34610957575f366003190112610957576001600160a01b0360025416330361332f5760125442106133fa5760115460ff80821615169060ff1916176011555f6012555f80f35b34610957575f36600319011261095757600460206001600160a01b03601d541660405192838092630be428a960e11b82525afa8015613281575f906134f3575b602090604051908152f35b506020813d60201161351e575b8161350d60209383613641565b8101031261095757602090516134e8565b3d9150613500565b346109575760203660031901126109575761353f61357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600354161760035562015180420180421161331b57600455005b600435906001600160a01b038216820361095757565b606435906001600160a01b038216820361095757565b60243590811515820361095757565b9181601f840112156109575782359167ffffffffffffffff8311610957576020838186019501011161095757565b9190820180921161331b57565b6040810190811067ffffffffffffffff82111761361157604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761361157604052565b90601f8019910116810190811067ffffffffffffffff82111761361157604052565b92919267ffffffffffffffff8211613611576040519161368d601f8201601f191660200184613641565b829481845281830111610957578281602093845f960137010152565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b9190820391821161331b57565b51906001600160a01b038216820361095757565b805482101561373e575f5260205f209060021b01905f90565b634e487b7160e01b5f52603260045260245ffd5b90816020910312610957575180151581036109575790565b5f19811461331b5760010190565b60405190613785826135f5565b5f6020838281520152565b9060405161379d81613625565b6060600382948054845260018101546020850152600281015460408501520154910152565b6001600160a01b0316805f52601c60205260405f2054908115613807575f52601c60205260405f205f19820191821161331b5760039161380191613725565b50015490565b50505f90565b6001600160a01b0316805f52601c60205260405f2054801561380757815f52601c60205260405f205f19820191821161331b5761384c82600392613725565b5001546138075761386d600291613879935f52601c60205260405f20613725565b500154600b54906135e8565b90565b6001600160a01b0316805f52601c60205260405f2054805b6138c157505f52601c60205260405f2080541561373e575f52613879600260205f200154600e54906135e8565b815f52601c60205260405f205f1982019082821161331b576138e582600392613725565b500154156138fd5750801561331b575f190180613894565b6002915061391990613879935f52601c60205260405f20613725565b500154600e54906135e8565b916001600160a01b03601d5416803b15610957575f92836064926001600160a01b039485604051988997889663c898a6e960e01b885216600487015216602485015260448401525af180156132815761397b5750565b5f61398591613641565b565b9294939091946001600160a01b03601d5416926040519463280e32fb60e01b8652602086600481885afa958615613281575f96613a75575b50843b156109575760205f976001600160a01b03999589958b80986101a4976040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b015216606489015289608489015260a48801523060c48801521660e48601526101048501521515610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156132815761397b5750565b9095506020813d602011613aa9575b81613a9160209383613641565b8101031261095757613aa290613711565b945f6139bf565b3d9150613a84565b9294909591936001600160a01b03601d5416956040519563280e32fb60e01b87526020876004818b5afa968715613281575f97613bad575b50873b1561095757604051988997889763487e5a7760e11b89526001600160a01b0316600489015230602489015260448801610160905261016488015f90526001600160a01b03166064880152608487015260a48601523060c48601526001600160a01b031660e485015261010484015215156101248301526101448201610180905280518091816101848501526020016101a484015e8082016101a4015f9052601f1990601f01168101036101a401815a5f948591f180156132815761397b5750565b9096506020813d602011613be1575b81613bc960209383613641565b8101031261095757613bda90613711565b955f613ae9565b3d9150613bbc56fea26469706673582212203f36372fc2fd7e757456018c2e018229202e994c8f254a0a196ce9dda08c4d5f64736f6c63430008210033",sourceMap:"2730:42031:68:-:0;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;5514:5;2730:42031;;;5514:5;2730:42031;;;;;;;;;;;;;5553:12;2730:42031;;;5553:12;2730:42031;5632:4;2730:42031;;5606:18;2730:42031;;;5606:18;2730:42031;;;5646:19;2730:42031;;5646:19;2730:42031;-1:-1:-1;5689:22:68;2730:42031;5774:6;5734:29;2730:42031;5632:4;2730:42031;;5791:35;2730:42031;;;5791:35;2730:42031;;;;;;;;;;;-1:-1:-1;2730:42031:68;;;;;;-1:-1:-1;2730:42031:68;;;;;-1:-1:-1;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o",linkReferences:{}},deployedBytecode:{object:"0x60806040526004361015610011575f80fd5b5f5f3560e01c8063147bf6c41461352657806317c85152146134a85780631e9c210f146134625780632096b7681461343d57806327be05571461340957806334dd90d6146133975780633900738a1461333e5780633d8ff69a146132e0578063475c31ff14612cbb578063489c5ad414612c6057806355160ea614612bba57806358b71cb414612406578063602c4fb414612111578063610a0476146120d45780636254300b146120ad57806366d161aa14612086578063681f02ac1461202a5780636b2933a214611fed5780636c58f77b14611f685780636fa7ff1714611ef15780637068dc6514611ec75780637c25faef14611e995780637f8da59114611e72578063829c67d414611a8357806383e512ab14611362578063893d20e81461133b57806389a75af8146112e35780638f4b3f28146112975780639053a2581461120557806396ae4e451461116557806399b4c3ef14610f045780639cde1d3e14610ee05780639e41123314610ebc578063a06831ba14610e80578063a84e9f2314610e44578063b384c57414610e16578063b38c950a14610dda578063b996b6c414610db0578063be10034514610cca578063c130a71914610c78578063c9d2beb114610643578063cb0900b81461061e578063cd6b5460146105a9578063d0e3692d14610508578063d5bbacd5146104dc578063dfb2b3a414610483578063e6cbd0a61461045c578063e6f2ebe41461043e578063e7dc0756146103e2578063f5c1af1c146103c4578063fa6215f3146103a6578063fabd08e81461029b5763fc2feab214610261575f80fd5b346102985760203660031901126102985760406020916001600160a01b0361028761357f565b168152601c83522054604051908152f35b80fd5b5034610298576020366003190112610298576001600160a01b036102bd61357f565b168152601c60205260408120805467ffffffffffffffff811161039257604051906102ee60208260051b0183613641565b80825260208201809385526020852085915b83831061037457868587604051928392602084019060208552518091526040840192915b818110610332575050500390f35b9193509160206080826103666001948851606080918051845260208101516020850152604081015160408501520151910152565b019401910191849392610324565b6004602060019261038485613790565b815201920192019190610300565b634e487b7160e01b83526041600452602483fd5b50346102985780600319360112610298576020600154604051908152f35b50346102985780600319360112610298576020600e54604051908152f35b50346102985780600319360112610298576103fb613778565b505061043a60405161040c816135f5565b60115460ff161515808252601254602092830190815260408051928352905192820192909252918291820190565b0390f35b50346102985780600319360112610298576020600b54604051908152f35b503461029857806003193601126102985760206001600160a01b0360095416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576201518042018042116104b95760125580f35b634e487b7160e01b82526011600452602482fd5b636587b01b60e11b8152600490fd5b50346102985760203660031901126102985760206105006104fb61357f565b61387c565b604051908152f35b50346102985760403660031901126102985761052261357f565b60206001600160a01b03604481601d541693604051948593849263d0e3692d60e01b845216600483015260243560248301525afa90811561059e5760209291610571575b506040519015158152f35b6105919150823d8411610597575b6105898183613641565b810190613752565b5f610566565b503d61057f565b6040513d84823e3d90fd5b50346102985780600319360112610298576003546001600160a01b03811680330361060f576004544210610600576001600160601b0360a01b60025416176002556001600160601b0360a01b166003558060045580f35b6384fa847560e01b8352600483fd5b632dba366760e21b8352600483fd5b503461029857806003193601126102985760206040516901138ccba11c9e8c00008152f35b5034610298578060031936011261029857333b15610c6957601754806901138ccba11c9e8c000002906901138ccba11c9e8c00008204810361091a5761068b82601854613704565b6001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610bea578692610c29575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa918215610bea578692610bf5575b5014159081610af2575b50610ade576016544203610acf57336001600160a01b036015541603610ac05760405190610734826135f5565b3382526020820191600183526020936040516107508682613641565b868152426107676001600160a01b0385511661380d565b11610ab15786855115610a92575b9150506001600160a01b03601d54166001600160a01b03835116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57610a75575b505080516001600160a01b03168552601c84526040852054610a04576001600160a01b0382915b51168552601c8452604085206040519261080a84613625565b60018452858401908152604084019142835260608501938452805490600160401b8210156109f0579061084291600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116918382602481865afa9182156109d15785926109b2575b50816109a8575b506108a7578280f35b60405163280e32fb60e01b81528281600481855afa908115610962578390859261096d575b506040516309a69f5760e01b81529192829060049082905afa92831561096257849361092e575b50508160011b918083046002149015171561091a5790610914913390613925565b5f808280f35b634e487b7160e01b83526011600452602483fd5b9080929350813d831161095b575b6109468183613641565b810103126109575751905f806108f3565b5f80fd5b503d61093c565b6040513d86823e3d90fd5b809250813d83116109a1575b6109838183613641565b8101031261099d5782610997600492613711565b916108cc565b8380fd5b503d610979565b905051155f61089e565b6109ca919250843d8611610597576105898183613641565b905f610897565b6040513d87823e3d90fd5b634e487b7160e01b88526004889052602488fd5b634e487b7160e01b89526041600452602489fd5b6001600160a01b038151168552601c8452604085206001600160a01b038251168652601c85526040862054905f198201918211610a6157836003610a536001600160a01b0394610a5b94613725565b5001546135e8565b916107f1565b634e487b7160e01b87526011600452602487fd5b81610a7f91613641565b610a8a57845f6107ca565b8480fd5b8280fd5b808080610aa9956001600160a01b03885116613ab1565b5f8086610775565b632df062b560e21b8752600487fd5b634cd87fb560e01b8352600483fd5b635ac7600960e11b8352600483fd5b630387e0bb60e21b83526004829052602483fd5b9050610b00836019546135e8565b60405163280e32fb60e01b8152602081600481865afa908115610bea578691610ba4575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529160209083908180604481015b03915afa9182156109d1578592610b70575b5014155f610707565b9091506020813d602011610b9c575b81610b8c60209383613641565b810103126109575751905f610b67565b3d9150610b7f565b90506020813d602011610be2575b81610bbf60209383613641565b81010312610bde57610b5592610bd6602092613711565b915092610b24565b8580fd5b3d9150610bb2565b6040513d88823e3d90fd5b9091506020813d602011610c21575b81610c1160209383613641565b810103126109575751905f6106fd565b3d9150610c04565b91506020823d602011610c61575b81610c4460209383613641565b81010312610bde576020610c5a6106ea93613711565b92506106bd565b3d9150610c37565b634a340e9d60e01b8152600490fd5b5034610298576020366003190112610298576040906001826001600160a01b03610ca061357f565b1692838152601b60205260ff8282205416938152601b602052200154825191151582526020820152f35b50346102985760203660031901126102985760043567ffffffffffffffff8111610dac5736602382011215610dac5780600401359067ffffffffffffffff8211610a8e573660248360051b83010111610a8e576001600160a01b03600254163303610d9d57825b82811015610d995761032060015411610d8a5760248160051b83010135906001600160a01b038216809203610a8a576001918552601b602052604085208260ff19825416179055610d82825461376a565b825501610d31565b63d646f8c560e01b8452600484fd5b8380f35b636587b01b60e11b8352600483fd5b5080fd5b50346102985780600319360112610298576001600160a01b036002541633036104cd578060145580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600354166003558060045580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600f558060105580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b600654166006558060075580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd576001600160601b0360a01b6009541660095580600a5580f35b5034610298576020366003190112610298576020610500610edb61357f565b61380d565b5034610298576020366003190112610298576020610500610eff61357f565b6137c2565b503461029857602036600319011261029857600435333b15611156576001600160a01b03601d5416906040519063280e32fb60e01b8252602082600481865afa918215610962578492611116575b5060405163d4fac45d60e01b81523360048201526001600160a01b03909216602483015260208280604481015b0381865afa9182156109625784926110e2575b5060405163280e32fb60e01b8152602081600481875afa9081156109d15785916110a0575b5060405163d4fac45d60e01b81523060048201526001600160a01b0390911660248201529260209084908180604481015b03915afa92831561096257849361106c575b5060405160a0810181811067ffffffffffffffff8211176110585784916080916040523381524260208201528360408201528460608201520152336001600160601b0360a01b60155416176015554260165560175560185560195580f35b634e487b7160e01b86526041600452602486fd5b9092506020813d602011611098575b8161108860209383613641565b810103126109575751915f610ffa565b3d915061107b565b90506020813d6020116110da575b816110bb60209383613641565b81010312610a8a57610fe8936110d2602092613711565b915093610fb7565b3d91506110ae565b9091506020813d60201161110e575b816110fe60209383613641565b810103126109575751905f610f92565b3d91506110f1565b91506020823d60201161114e575b8161113160209383613641565b8101031261099d576020611147610f7f93613711565b9250610f52565b3d9150611124565b634a340e9d60e01b8252600482fd5b503461029857806003193601126102985760049060206001600160a01b03601d54166040519384809263280e32fb60e01b82525afa9081156111f95780916111bc575b6020826001600160a01b0360405191168152f35b90506020823d6020116111f1575b816111d760209383613641565b8101031261029857506111eb602091613711565b5f6111a8565b3d91506111ca565b604051903d90823e3d90fd5b50346102985760403660031901126102985761126a6112646080926001600160a01b0361123061357f565b82606060405161123f81613625565b8281528260208201528260408201520152168152601c60205260406024359120613725565b50613790565b6112956040518092606080918051845260208101516020850152604081015160408501520151910152565bf35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760105442106112d457600f54600e5580600f558060105580f35b6384fa847560e01b8152600490fd5b50346102985780600319360112610298576112fc613778565b505061043a60405161130d816135f5565b60135460ff161515808252601454602092830190815260408051928352905192820192909252918291820190565b503461029857806003193601126102985760206001600160a01b0360025416604051908152f35b5034610298576101403660031901126102985761137d61357f565b6113856135ab565b604435611390613595565b92608435926001600160a01b0384168403610bde5760c43567ffffffffffffffff8111611a7f576113c59036906004016135ba565b60e435959161010435916101243567ffffffffffffffff8111611a7b576113f09036906004016135ba565b99909260ff6013541615611a6c57908b92916001600160a01b03601d5416604051602081019060608252600d60808201526c7075626c69635374616b696e6760981b60a08201528a151560408201528c606082015260a0815261145460c082613641565b519020813b15610bde578580946114898d978c96604051998a9889978896637d3d171560e11b885260a43593600489016136a9565b03925af1801561059e57611a57575b50506114c5906001600160a01b03604051966114b3886135f5565b16865260208601988a8a523691613663565b918315611843576114df6001600160a01b0386511661380d565b4210611834578751156117dc575b505050856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e576117c7575b505081516001600160a01b03168652601c602052604086205461175d576001600160a01b03835b925b51168652601c602052604086209015611755576001925b6040519361159085613625565b845260208401908152604084019142835260608501938452805490600160401b8210156109f057906115c791600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911692602082602481875afa9182156109d1578592611734575b508161172a575b5061162d578280f35b60405163280e32fb60e01b815291602083600481845afa9283156109625784936116e9575b506020600491604051928380926309a69f5760e01b82525afa9081156109625784916116b7575b508060011b90808204600214901517156116a357610914929161169b916135e8565b903390613925565b634e487b7160e01b84526011600452602484fd5b90506020813d6020116116e1575b816116d260209383613641565b8101031261095757515f611679565b3d91506116c5565b9092506020813d602011611722575b8161170560209383613641565b8101031261099d57602061171a600492613711565b939150611652565b3d91506116f8565b905051155f611624565b61174e91925060203d602011610597576105898183613641565b905f61161d565b600292611583565b6001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b357846003610a536001600160a01b03946117ae94613725565b61156a565b634e487b7160e01b88526011600452602488fd5b816117d191613641565b610bde57855f611543565b6001600160a01b03855116866901138ccba11c9e8c000002906901138ccba11c9e8c000082048803611820579188611818959492600194613ab1565b5f80806114ed565b634e487b7160e01b8b52601160045260248bfd5b632df062b560e21b8952600489fd5b6118596001600160a01b038694939451166137c2565b86146119c0575b861515806119b7575b611997575b5050506001600160a01b038251168652601c602052604086206001600160a01b038351168752601c6020526040872054905f1982019182116117b35760036118ba6118c2938793613725565b500154613704565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa90811561198c57889161194e575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c00008304870361193a5791611935916001600160a01b039493613925565b61156c565b634e487b7160e01b8a52601160045260248afd5b90506020813d602011611984575b8161196960209383613641565b810103126119805761197a90613711565b5f6118f4565b8780fd5b3d915061195c565b6040513d8a823e3d90fd5b6119af92600191886001600160a01b03885116613987565b5f808061186e565b50875115611869565b6119d36001600160a01b0386511661387c565b4210611a4857886001600160a01b03601d54166001600160a01b03875116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57611a2f575b5050611860565b81611a3991613641565b611a4457885f611a28565b8880fd5b636b0ed46d60e01b8952600489fd5b81611a6191613641565b611a4457885f611498565b6333a374eb60e11b8c5260048cfd5b8a80fd5b8680fd5b503461029857602036600319011261029857600435333b1561115657604051611aab816135f5565b338152602081019160018352602091604051611ac78482613641565b85815285611ade6001600160a01b038451166137c2565b8414611ddb575b611dbd575b506001600160a01b038151168552601c8352604085206001600160a01b038251168652601c84526040862054905f198201918211610a615760036118ba611b32938693613725565b906004846001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db2578791611d7d575b506001600160a01b03825116846901138ccba11c9e8c000002916901138ccba11c9e8c000083048603611d695791611ba4916001600160a01b039493613925565b51168552601c8352604085208515611d61576001925b60405193611bc785613625565b8452848401908152604084019142835260608501938452805490600160401b8210156109f05790611bfd91600182018155613725565b9490946109dc5751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b03909116928282602481875afa9182156109d1578592611d42575b5081611d38575b50611c62578280f35b60405163280e32fb60e01b8152918183600481845afa928315610962578493611cfd575b5081600491604051928380926309a69f5760e01b82525afa918215610962578492611ccf575b50508060011b908082046002149015171561091a579061169b83610914936135e8565b90809250813d8311611cf6575b611ce68183613641565b8101031261095757515f80611cac565b503d611cdc565b9092508181813d8311611d31575b611d158183613641565b8101031261099d5781611d29600492613711565b939150611c86565b503d611d0b565b905051155f611c59565b611d5a919250833d8511610597576105898183613641565b905f611c52565b600292611bba565b634e487b7160e01b89526011600452602489fd5b90508481813d8311611dab575b611d948183613641565b81010312611a7f57611da590613711565b5f611b63565b503d611d8a565b6040513d89823e3d90fd5b611dd590868080806001600160a01b03875116613987565b5f611aea565b50611def6001600160a01b0383511661387c565b4210611e6357856001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af190811561059e578291611e4e575b5050611ae5565b81611e5891613641565b61029857805f611e47565b636b0ed46d60e01b8652600486fd5b503461029857806003193601126102985760206001600160a01b0360055416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5780600c5580600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd578060125580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600a5442106112d4576009546001600160a01b03811690816001600160601b0360a01b60085416176008556001600160601b0360a01b1660095581600a556001600160601b0360a01b601e541617601e5580f35b503461029857602036600319011261029857611f8261357f565b6001600160a01b03600254163303611fde5761032060015411611fcf576001600160a01b03168152601b60205260408120600160ff19825416179055611fc960015461376a565b60015580f35b63d646f8c560e01b8252600482fd5b636587b01b60e11b8252600482fd5b5034610298576020366003190112610298576001600160a01b036002541633036104cd57600435600c556201518042018042116104b957600d5580f35b50346102985780600319360112610298576001600160a01b036002541633036104cd5760145442106112d45760ff601354161581602060405161206c816135f5565b838152015260ff8019601354169116176013558060145580f35b503461029857806003193601126102985760206001600160a01b0360085416604051908152f35b503461029857806003193601126102985760206001600160a01b0360065416604051908152f35b50346102985780600319360112610298576001600160a01b036002541633036104cd57600d5442106112d457600c54600b5580600c5580600d5580f35b50346102985760203660031901126102985761212b61357f565b90808092818291836001600160a01b038216808252601c602052604082205461217a575b5050506001600160a01b0360a095604051958652166020850152604084015260608301526080820152f35b94509450945050508160a06001600160a01b03601e541660246040518094819363f702720760e01b83528760048401525af19283156111f9578080948193829083926123ac575b50819581958095899a819a836121dc575b505050505061214f565b916121f08460029795936122319795613925565b828852601c6020526122058460408a20613725565b5055818752601c602052600161221e8460408a20613725565b5001558552601c60205260408520613725565b5001556001600160a01b03601d541690604051630a1ad2d160e21b8152336004820152602081602481865afa90811561059e57829161238d575b5061227c575b8080808080806121d2565b60405163280e32fb60e01b815290602082600481865afa91821561233d57819261234a575b506020600493604051948580926309a69f5760e01b82525afa92831561233d578193612309575b50828004600114831517156122f55750956122ef6001600160a01b039260a0983390613925565b95612271565b634e487b7160e01b81526011600452602490fd5b9092506020813d602011612335575b8161232560209383613641565b810103126109575751915f6122c8565b3d9150612318565b50604051903d90823e3d90fd5b9091506020813d602011612385575b8161236660209383613641565b81010312610dac5790602061237d60049493613711565b9293506122a1565b3d9150612359565b6123a6915060203d602011610597576105898183613641565b5f61226b565b9450505093505060a0813d60a0116123fe575b816123cc60a09383613641565b81010312610a8e578051926123e360208301613711565b9060408301519460806060850151940151909295935f6121c1565b3d91506123bf565b5034610298576101203660031901126102985761242161357f565b6124296135ab565b90604435916001600160a01b038316830361099d57612446613595565b9060a43567ffffffffffffffff8111610bde576124679036906004016135ba565b60c4359460e435916101043567ffffffffffffffff8111612bb6576124909036906004016135ba565b98909460ff60115416158015612baa575b612b9b57908a92916001600160a01b03601d5416604051602081019060608252600e60808201526d70726573616c655374616b696e6760901b60a08201528a151560408201526001606082015260a081526124fd60c082613641565b519020813b15610bde5785809461253289978e96604051998a9889978896637d3d171560e11b885260843593600489016136a9565b03925af1801561059e57612b86575b50506001600160a01b031691828852601b60205260ff60408920541615612b7757828852601b60205260408820600101548415612b705760028110155b612b61578415612b4c5760018101809111611d6957906125c7915b848a52601b602052600160408b200155604051936125b6856135f5565b845260208401978989523691613663565b908794845f14612956576125e46001600160a01b0385511661380d565b421061294757875115612915575b5050506001600160a01b03601d54166001600160a01b03825116813b15610a8a57849160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af180156109625784906128fe575b505080516001600160a01b03168352601c6020526040832054612889576001600160a01b0360015b915b51168352601c602052604083209115612881576001915b6040519261269784613625565b83526020830160018152604084019142835260608501938452805490600160401b82101561286d57906126cf91600182018155613725565b9490946128595751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911693602082602481885afa91821561284e57839261282d575b5081612823575b50612735578380f35b60405163280e32fb60e01b815292602084600481845afa93841561059e5782946127e0575b50906020600492604051938480926309a69f5760e01b82525afa91821561233d5781926127ac575b508160011b91808304600214901517156122f557506127a5929161169b916135e8565b5f80808380f35b9091506020813d6020116127d8575b816127c860209383613641565b810103126109575751905f612782565b3d91506127bb565b9093506020813d60201161281b575b816127fc60209383613641565b81010312610dac57906020612812600493613711565b9491925061275a565b3d91506127ef565b905051155f61272c565b61284791925060203d602011610597576105898183613641565b905f612725565b6040513d85823e3d90fd5b634e487b7160e01b86526004869052602486fd5b634e487b7160e01b87526041600452602487fd5b60029161268a565b6001600160a01b038151168352601c602052604083206001600160a01b038251168452601c6020526040842054905f1982019182116128ea576003916128ce91613725565b50015460018101809111610a61576001600160a01b0390612671565b634e487b7160e01b85526011600452602485fd5b61290791613641565b828612610a8e575f83612649565b83516001600160a01b031686610a615791600191886901138ccba11c9e8c000061293f9695613ab1565b5f80806125f2565b632df062b560e21b8652600486fd5b909293945061296e6001600160a01b038551166137c2565b600114612ab9575b85151580612ab0575b612a90575b5050506001600160a01b038151168552601c602052604085206001600160a01b038251168652601c6020526040862054905f198201918211610a61576003916129cc91613725565b5001545f198101908111612a7c57601d5460405163280e32fb60e01b8152939290602090859060049082906001600160a01b03165afa938415611db2578794612a38575b5080612a336901138ccba11c9e8c00006001600160a01b03809451168a97613925565b612673565b9093506020813d602011612a74575b81612a5460209383613641565b81010312611a7f57612a6d6001600160a01b0391613711565b9390612a10565b3d9150612a47565b634e487b7160e01b86526011600452602486fd5b612aa892600191876001600160a01b03875116613987565b5f8080612984565b5086511561297f565b612acc6001600160a01b0385511661387c565b4210612b3d57876001600160a01b03601d54166001600160a01b03865116813b15610a8e57829160448392604051948593849263adb6233f60e01b845260048401528160248401525af1801561059e57612b28575b5050612976565b81612b3291613641565b61198057875f612b21565b636b0ed46d60e01b8852600488fd5b5f198101908111611d6957906125c791612599565b636b3af2e560e01b8952600489fd5b801561257e565b63f706524f60e01b8852600488fd5b81612b9091613641565b61198057875f612541565b63098e23b360e41b8b5260048bfd5b5060ff601354166124a1565b8980fd5b503461029857604036600319011261029857612bd461357f565b6024356001600160a01b038116809103610a8e57601a549160f883901b6001600160f81b0319161561099d576001600160a01b031690816001600160601b0360a01b6008541617600855806001600160601b0360a01b8554161784556001600160601b0360a01b601d541617601d556001600160601b0360a01b601e541617601e5560ff1916601a5580f35b503461029857602036600319011261029857612c7a61357f565b6001600160a01b03600254163303611fde576001600160a01b03166001600160601b0360a01b60065416176006556201518042018042116104b95760075580f35b50346109575760603660031901126109575760043580151581036109575760243560443567ffffffffffffffff811161095757612cfc9036906004016135ba565b90926001600160a01b0360055416918233036132d15760405192612d1f846135f5565b8352602460208401955f875260206001600160a01b03601d541660405193848092630d9a602960e31b82523360048301525afa918215613281575f9261329b575b50612d6d91923691613663565b9082156130bf57612d876001600160a01b0385511661380d565b4210610ab15785511561307d575b5050846001600160a01b03601d54166001600160a01b03845116813b15610a8e57829160448392604051948593849263adb6233f60e01b84526004840152600160f81b60248401525af1801561059e57613068575b505081516001600160a01b03168552601c6020526040852054613012576001600160a01b03835b925b51168552601c60205260408520901561300a576001925b60405193612e3785613625565b845260208401908152604084019142835260608501938452805490600160401b821015612ff65790612e6e91600182018155613725565b949094612fe25751845551600184015551600283015551600390910155601d54604051630a1ad2d160e21b81523360048201526001600160a01b0390911691602082602481865afa918215610962578492612fc1575b5081612fb7575b50612ed4575080f35b60405163280e32fb60e01b815290602082600481845afa91821561284e578392612f78575b50906020600492604051938480926309a69f5760e01b82525afa91821561284e578392612f44575b508160011b918083046002149015171561091a5790612f41913390613925565b80f35b9091506020813d602011612f70575b81612f6060209383613641565b810103126109575751905f612f21565b3d9150612f53565b91506020823d602011612faf575b81612f9360209383613641565b81010312610a8e576020612fa8600493613711565b9250612ef9565b3d9150612f86565b905051155f612ecb565b612fdb91925060203d602011610597576105898183613641565b905f612ec4565b634e487b7160e01b87526004879052602487fd5b634e487b7160e01b88526041600452602488fd5b600292612e2a565b6001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a6157846003610a536001600160a01b039461306394613725565b612e11565b8161307291613641565b610a8a57845f612dea565b6001600160a01b03845116856901138ccba11c9e8c000002906901138ccba11c9e8c000082048703611d695791888080936130b89695613ab1565b5f80612d95565b90866130d46001600160a01b038651166137c2565b86146131fd575b806131df575b5050506001600160a01b038251168552601c602052604085206001600160a01b038351168652601c6020526040862054905f198201918211610a615760036118ba61312d938793613725565b91600460206001600160a01b03601d54166040519283809263280e32fb60e01b82525afa908115611db25787916131a5575b506001600160a01b03825116856901138ccba11c9e8c000002916901138ccba11c9e8c000083048703611d6957916131a0916001600160a01b039493613925565b612e13565b90506020813d6020116131d7575b816131c060209383613641565b81010312611a7f576131d190613711565b5f61315f565b3d91506131b3565b6131f59281806001600160a01b03885116613987565b5f80866130e1565b506132116001600160a01b0385511661387c565b421061328c576001600160a01b03601d54166001600160a01b03855116813b15610957575f9160448392604051948593849263adb6233f60e01b845260048401528160248401525af180156132815761326c575b50866130db565b6132799197505f90613641565b5f955f613265565b6040513d5f823e3d90fd5b636b0ed46d60e01b5f5260045ffd5b91506020823d6020116132c9575b816132b660209383613641565b8101031261095757612d6d915191612d60565b3d91506132a9565b630d9974d560e11b5f5260045ffd5b34610957576020366003190112610957576001600160a01b0360025416330361332f57600435600f5562015180420180421161331b57601055005b634e487b7160e01b5f52601160045260245ffd5b636587b01b60e11b5f5260045ffd5b346109575760203660031901126109575761335761357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600954161760095562015180420180421161331b57600a55005b34610957575f366003190112610957576001600160a01b0360025416330361332f5760075442106133fa57600680546005805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b038416179091551690555f600755005b6384fa847560e01b5f5260045ffd5b34610957575f366003190112610957576001600160a01b0360025416330361332f5762015180420180421161331b57601455005b34610957575f3660031901126109575760206001600160a01b035f5416604051908152f35b34610957575f366003190112610957576001600160a01b0360025416330361332f5760125442106133fa5760115460ff80821615169060ff1916176011555f6012555f80f35b34610957575f36600319011261095757600460206001600160a01b03601d541660405192838092630be428a960e11b82525afa8015613281575f906134f3575b602090604051908152f35b506020813d60201161351e575b8161350d60209383613641565b8101031261095757602090516134e8565b3d9150613500565b346109575760203660031901126109575761353f61357f565b6001600160a01b0360025416330361332f576001600160a01b03166001600160601b0360a01b600354161760035562015180420180421161331b57600455005b600435906001600160a01b038216820361095757565b606435906001600160a01b038216820361095757565b60243590811515820361095757565b9181601f840112156109575782359167ffffffffffffffff8311610957576020838186019501011161095757565b9190820180921161331b57565b6040810190811067ffffffffffffffff82111761361157604052565b634e487b7160e01b5f52604160045260245ffd5b6080810190811067ffffffffffffffff82111761361157604052565b90601f8019910116810190811067ffffffffffffffff82111761361157604052565b92919267ffffffffffffffff8211613611576040519161368d601f8201601f191660200184613641565b829481845281830111610957578281602093845f960137010152565b959293879592946001600160a01b036101009996818095168a5216602089015260408801521660608601526080850152600160a085015260e060c08501528160e0850152848401375f828201840152601f01601f1916010190565b9190820391821161331b57565b51906001600160a01b038216820361095757565b805482101561373e575f5260205f209060021b01905f90565b634e487b7160e01b5f52603260045260245ffd5b90816020910312610957575180151581036109575790565b5f19811461331b5760010190565b60405190613785826135f5565b5f6020838281520152565b9060405161379d81613625565b6060600382948054845260018101546020850152600281015460408501520154910152565b6001600160a01b0316805f52601c60205260405f2054908115613807575f52601c60205260405f205f19820191821161331b5760039161380191613725565b50015490565b50505f90565b6001600160a01b0316805f52601c60205260405f2054801561380757815f52601c60205260405f205f19820191821161331b5761384c82600392613725565b5001546138075761386d600291613879935f52601c60205260405f20613725565b500154600b54906135e8565b90565b6001600160a01b0316805f52601c60205260405f2054805b6138c157505f52601c60205260405f2080541561373e575f52613879600260205f200154600e54906135e8565b815f52601c60205260405f205f1982019082821161331b576138e582600392613725565b500154156138fd5750801561331b575f190180613894565b6002915061391990613879935f52601c60205260405f20613725565b500154600e54906135e8565b916001600160a01b03601d5416803b15610957575f92836064926001600160a01b039485604051988997889663c898a6e960e01b885216600487015216602485015260448401525af180156132815761397b5750565b5f61398591613641565b565b9294939091946001600160a01b03601d5416926040519463280e32fb60e01b8652602086600481885afa958615613281575f96613a75575b50843b156109575760205f976001600160a01b03999589958b80986101a4976040519e8f9d8e9c8d9a63487e5a7760e11b8c521660048b01523060248b015261016060448b01528b6101648b015216606489015289608489015260a48801523060c48801521660e48601526101048501521515610124840152610180610144840152805191829182610184860152018484015e8181018301849052601f01601f191681010301925af180156132815761397b5750565b9095506020813d602011613aa9575b81613a9160209383613641565b8101031261095757613aa290613711565b945f6139bf565b3d9150613a84565b9294909591936001600160a01b03601d5416956040519563280e32fb60e01b87526020876004818b5afa968715613281575f97613bad575b50873b1561095757604051988997889763487e5a7760e11b89526001600160a01b0316600489015230602489015260448801610160905261016488015f90526001600160a01b03166064880152608487015260a48601523060c48601526001600160a01b031660e485015261010484015215156101248301526101448201610180905280518091816101848501526020016101a484015e8082016101a4015f9052601f1990601f01168101036101a401815a5f948591f180156132815761397b5750565b9096506020813d602011613be1575b81613bc960209383613641565b8101031261095757613bda90613711565b955f613ae9565b3d9150613bbc56fea26469706673582212203f36372fc2fd7e757456018c2e018229202e994c8f254a0a196ce9dda08c4d5f64736f6c63430008210033",sourceMap:"2730:42031:68:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;43617:16;2730:42031;43617:16;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;44423:31;2730:42031;44423:31;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;36160:11;2730:42031;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;35718:11;2730:42031;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;;;;;;;;;;;;;;;42441:18;2730:42031;;;;;;;;;;;;;;;;;;;;;39148:29;2730:42031;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;43309:19;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39547:22;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;42134:25:68;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;32551:15;2796:6;32551:15;;2796:6;;;32504:32;2796:6;2730:42031;;2796:6;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;4786:64;-1:-1:-1;;;4826:24:68;;2730:42031;;4826:24;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;-1:-1:-1;;;;;44069:37:68;2730:42031;44069:4;2730:42031;;;;;;;;;;;;;44069:37;;2730:42031;;44069:37;;2730:42031;;;;;;;44069:37;;;;;;;2730:42031;44069:37;;;;2730:42031;;;;;;;;;;44069:37;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;26402:14;2730:42031;-1:-1:-1;;;;;2730:42031:68;;26388:10;;:28;26384:85;;2730:42031;;26505:15;-1:-1:-1;26480:99:68;;-1:-1:-1;;;;;2730:42031:68;;26402:5;2730:42031;;;26402:5;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;26402:14;2730:42031;2796:6;2730:42031;2796:6;2730:42031;;26480:99;-1:-1:-1;;;26541:38:68;;2730:42031;33248:38;26541;26384:85;-1:-1:-1;;;26437:32:68;;2730:42031;26437:32;;2730:42031;;;;;;;;;;;;;;;;3219:17;2730:42031;;;;;;;;;;;;;;;;5021:10;5042:132;5188:9;5184:50;;14165:34;2730:42031;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;14227:84;2730:42031;14227:45;2730:42031;14227:84;:::i;:::-;-1:-1:-1;;;;;14327:4:68;2730:42031;;;;;;;;;14355:31;;;;2730:42031;14355:31;;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;14327:60:68;;5021:10;2730:42031;14327:60;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;14355:31;2730:42031;;;;;14327:60;;;;;;;;;;;;;;;2730:42031;14227:160;;;:339;;;;2730:42031;14210:485;;;14710:28;2730:42031;14742:15;14710:47;14706:107;;5021:10;-1:-1:-1;;;;;14165:18:68;2730:42031;;14828:40;14824:88;;2730:42031;;;;;;:::i;:::-;5021:10;2730:42031;;14355:31;14955:64;;2730:42031;14710:28;2730:42031;;;;;;;;;;:::i;:::-;;;;14742:15;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;:81;17255:159;;2730:42031;;;;17429:337;;2730:42031;;;;-1:-1:-1;;;;;14327:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;17781:39;2730:42031;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;2730:42031;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;17853:230:68;;;2730:42031;;;;17853:11;2730:42031;;;;;;;;;;;:::i;:::-;14710:28;2730:42031;;19227:298;;;2730:42031;;;;19227:298;;14742:15;;2730:42031;;19227:298;;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;14710:28;2730:42031;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;14710:28;2730:42031;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;14327:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;5021:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;19550:32;2730:42031;;;;19550:32;;;;;;;;;;;17853:230;19550:55;;;;17853:230;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;;2730:42031;;;19648:31;;;;;;;;;;;;;;19546:249;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;19726:22:68;;2730:42031;;;;;;;;19726:22;;;;;;;;;;;19546:249;2730:42031;;;14710:28;2730:42031;;;;;;;;;;;;;19725:45;;;5021:10;19725:45;;:::i;:::-;19546:249;;2730:42031;;;;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;2730:42031;2796:6;;19726:22;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;2730:42031;-1:-1:-1;2730:42031:68;;19726:22;;;;;;2730:42031;;;;;;;;;19648:31;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;2730:42031;;;;19648:31;;;;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;2730:42031;;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;2796:6;2730:42031;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:107;:119;:107;-1:-1:-1;;;;;17946:107:68;:137;:107;;:::i;:::-;:119;;2730:42031;17946:137;:::i;:::-;17853:230;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;2730:42031;2796:6;;17781:39;;;;;:::i;:::-;2730:42031;;17781:39;;;;2730:42031;;;;17781:39;2730:42031;;;17429:337;2730:42031;;;17736:12;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;17736:12;:::i;:::-;17429:337;;;;;17255:159;-1:-1:-1;;;17379:35:68;;2730:42031;17379:35;;14824:88;-1:-1:-1;;;14889:23:68;;2730:42031;14889:23;;14706:107;-1:-1:-1;;;14778:35:68;;2730:42031;14778:35;;14210:485;-1:-1:-1;;;14596:99:68;;2730:42031;;;;;14596:99;;14227:339;2730:42031;;14403:84;2730:42031;14403:45;2730:42031;14403:84;:::i;:::-;2730:42031;;-1:-1:-1;;;14534:31:68;;14355;2730:42031;;;14534:31;;;;;;;;;;;;14227:339;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;14503:63:68;;14527:4;2730:42031;14503:63;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;14355:31;;2730:42031;;;;;;;14503:63;;;;;;;;;;;;;;14227:339;14403:163;;;14227:339;;;14503:63;;;;14355:31;14503:63;;14355:31;14503:63;;;;;;2730:42031;14503:63;;;:::i;:::-;;;2730:42031;;;;;14503:63;;;;;;;-1:-1:-1;14503:63:68;;14534:31;;;14355;14534;;14355;14534;;;;;;14355;14534;;;:::i;:::-;;;2730:42031;;;;14503:63;2730:42031;;14355:31;2730:42031;;:::i;:::-;14534:31;;;;;2730:42031;;;;14534:31;;;-1:-1:-1;14534:31:68;;;2730:42031;;;;;;;;;14327:60;;;;14355:31;14327:60;;14355:31;14327:60;;;;;;2730:42031;14327:60;;;:::i;:::-;;;2730:42031;;;;;14327:60;;;;;;;-1:-1:-1;14327:60:68;;14355:31;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;14355:31;2730:42031;14327:60;2730:42031;;:::i;:::-;14355:31;;;;;;;-1:-1:-1;14355:31:68;;5184:50;-1:-1:-1;;;5206:28:68;;2730:42031;;5206:28;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;41431:41;2730:42031;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;;;41382:17;2730:42031;;;;;;;;;;;41382:17;2730:42031;;;41431:41;2730:42031;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;25238:13;25274:3;25253:19;;;;;;2994:3;2730:42031;;25297:41;25293:105;;2730:42031;;;;;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;25413:17;2730:42031;;;;;;;;;;;;;;25472:20;2730:42031;;25472:20;:::i;:::-;2796:6;;2730:42031;25238:13;;25293:105;-1:-1:-1;;;25363:35:68;;2730:42031;24762:35;25363;25253:19;;2730:42031;;4786:64;-1:-1:-1;;;4826:24:68;;2730:42031;4826:24;;2730:42031;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;31655:31;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;;26098:14;2730:42031;;26098:14;2730:42031;2796:6;2730:42031;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;30349:38;2796:6;;30401:42;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;;27371:21;2730:42031;;27371:21;2730:42031;2796:6;27415:25;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;;34119:25;2730:42031;;34119:25;2730:42031;2796:6;34167:29;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;5021:10;5042:132;5188:9;5184:50;;-1:-1:-1;;;;;12260:4:68;2730:42031;;;;;;;;;12321:31;;2730:42031;12321:31;2730:42031;12321:31;;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;12260:106:68;;5021:10;2730:42031;12260:106;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;12260:106;;;;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;12472:31:68;;2730:42031;;;;12472:31;;;;;;;;;;;;2730:42031;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;12408:109:68;;12449:4;2730:42031;12408:109;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;12408:109;;;;;;;;;;;;;;2730:42031;;;;;;;;;;;;;;;;;;12068:460;2730:42031;;;5021:10;2730:42031;;12157:15;2730:42031;12068:460;;2730:42031;12068:460;2730:42031;12068:460;;2730:42031;12068:460;;;;2730:42031;12068:460;2730:42031;5021:10;-1:-1:-1;;;;;2730:42031:68;;12047:481;2730:42031;;;12047:481;2730:42031;12157:15;2730:42031;2796:6;2730:42031;2796:6;2730:42031;2796:6;2730:42031;2796:6;2730:42031;;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;12408:109;;;;2730:42031;12408:109;;2730:42031;12408:109;;;;;;2730:42031;12408:109;;;:::i;:::-;;;2730:42031;;;;;12408:109;;;;;;;-1:-1:-1;12408:109:68;;12472:31;;;2730:42031;12472:31;;2730:42031;12472:31;;;;;;2730:42031;12472:31;;;:::i;:::-;;;2730:42031;;;;12408:109;2730:42031;;;;;:::i;:::-;12472:31;;;;;;;;-1:-1:-1;12472:31:68;;12260:106;;;;2730:42031;12260:106;;2730:42031;12260:106;;;;;;2730:42031;12260:106;;;:::i;:::-;;;2730:42031;;;;;12260:106;;;;;;;-1:-1:-1;12260:106:68;;12321:31;;;2730:42031;12321:31;;2730:42031;12321:31;;;;;;2730:42031;12321:31;;;:::i;:::-;;;2730:42031;;;;;;12260:106;2730:42031;;:::i;:::-;12321:31;;;;;;;-1:-1:-1;12321:31:68;;5184:50;-1:-1:-1;;;5206:28:68;;2730:42031;5206:28;;2730:42031;;;;;;;;;;;;;;;44423:31;-1:-1:-1;;;;;44423:4:68;2730:42031;;;;;;;;;;;44423:31;;;;;;;;;;;;;2730:42031;44423:31;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;44423:31;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;44423:31;2730:42031;;:::i;:::-;44423:31;;;;;;-1:-1:-1;44423:31:68;;;2730:42031;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;36724:29;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;36724:11;2730:42031;;;;;;;36724:29;:::i;:::-;2730:42031;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;30728:42;2730:42031;30773:15;-1:-1:-1;30724:123:68;;30898:51;2730:42031;30728:29;2796:6;;30898:51;2796:6;;30728:42;2796:6;2730:42031;;30724:123;-1:-1:-1;;;30809:38:68;;2730:42031;;30809:38;2730:42031;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;42874:18;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;44739:5:68;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;;:::i;:::-;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;10012:18;2730:42031;;10011:24;10007:66;;2730:42031;;;;-1:-1:-1;;;;;10084:4:68;2730:42031;;;;;1624:55:103;;2730:42031:68;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;;;;1624:55:103;;;2730:42031:68;1624:55:103;;:::i;:::-;2730:42031:68;1614:66:103;;10084:241:68;;;;;2730:42031;;;10084:241;2730:42031;;;;;;;;;;;;;;;;10084:241;;2730:42031;;10084:241;2730:42031;10084:241;;;:::i;:::-;;;;;;;;;;;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::i;:::-;;;;;10368:59;;2730:42031;;;;;;;:::i;:::-;17192:23;17226:1944;;;;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;17342:15;-1:-1:-1;17255:159:68;;2730:42031;;;17429:337;;17226:1944;2730:42031;;;;-1:-1:-1;;;;;10084:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;;;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;17226:1944;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;17853:230:68;;17226:1944;;2730:42031;;;;19180:11;2730:42031;;;;;;19286:93;;;10288:4;19286:93;;2730:42031;;;;;;:::i;:::-;;;;19227:298;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;;19227:298;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;10288:4;2730:42031;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;10288:4;2730:42031;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;10084:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;19571:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;19550:32;2730:42031;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;;;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;10288:4;2730:42031;;;;;;;;;;;;;19725:45;;;;;;:::i;:::-;19571:10;;19725:45;;:::i;2730:42031::-;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;19550:32;2796:6;;19726:22;;;2730:42031;19726:22;;2730:42031;19726:22;;;;;;2730:42031;19726:22;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;-1:-1:-1;19726:22:68;;19648:31;;;;2730:42031;19648:31;;2730:42031;19648:31;;;;;;2730:42031;19648:31;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;;;;;;-1:-1:-1;19648:31:68;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;2730:42031;19550:32;2730:42031;19550:32;;;;;;;:::i;:::-;;;;;19286:93;19376:1;19286:93;;;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:107;:119;:107;-1:-1:-1;;;;;17946:107:68;:137;:107;;:::i;:137::-;17853:230;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;2730:42031;2796:6;;17781:39;;;;;:::i;:::-;2730:42031;;17781:39;;;;17429:337;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;17736:12;;;;;;10288:4;17736:12;;:::i;:::-;17429:337;;;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;17255:159;-1:-1:-1;;;17379:35:68;;2730:42031;17379:35;;17226:1944;18137:36;-1:-1:-1;;;;;2730:42031:68;;;;;;18137:36;:::i;:::-;18118:55;;18114:330;;17226:1944;18462:19;;;:42;;;17226:1944;18458:325;;17226:1944;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;:153;:107;;;;:::i;:::-;:119;;2730:42031;18832:153;:::i;:::-;2730:42031;;;-1:-1:-1;;;;;10084:4:68;2730:42031;;;;;;;;;;;19027:31;;;;;;;;;;;;;17226:1944;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;19109:36;;;-1:-1:-1;;;;;19109:36:68;;;:::i;:::-;17226:1944;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;19027:31;;;2730:42031;19027:31;;2730:42031;19027:31;;;;;;2730:42031;19027:31;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;19027:31;;;2730:42031;;;;19027:31;;;-1:-1:-1;19027:31:68;;;2730:42031;;;;;;;;;18458:325;18522:261;2730:42031;10288:4;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;;;18462:42;2730:42031;;;;18462:42;;18114:330;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;2730:42031;-1:-1:-1;;;;;10084:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;;;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;18114:330;;;;;18390:39;;;;;:::i;:::-;2730:42031;;18390:39;;;;2730:42031;;;;18193:178;-1:-1:-1;;;18335:36:68;;2730:42031;18335:36;;10084:241;;;;;:::i;:::-;2730:42031;;10084:241;;;;10007:66;-1:-1:-1;;;10044:29:68;;2730:42031;10044:29;;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;5021:10;5042:132;5188:9;5184:50;;2730:42031;;;;;:::i;:::-;5021:10;2730:42031;;;15846:64;;2730:42031;;;;;;;;;;;;:::i;:::-;;;;;18137:36;-1:-1:-1;;;;;2730:42031:68;;;18137:36;:::i;:::-;18118:55;;18114:330;;2730:42031;18458:325;;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;:153;:107;;;;:::i;:153::-;2730:42031;;;-1:-1:-1;;;;;19027:4:68;2730:42031;;;;;;;;;;;19027:31;;;;;;;;;;;;;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;19109:36;;;-1:-1:-1;;;;;19109:36:68;;;:::i;:::-;2730:42031;;;;18832:11;2730:42031;;;;;19286:93;;;;2730:42031;19286:93;;2730:42031;;;;;;:::i;:::-;;;19227:298;;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;19227:298;;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;;;;2796:6;2730:42031;;;;2796:6;2730:42031;18832:119;2730:42031;;;2796:6;19027:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;5021:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;19550:32;2730:42031;19550:32;2730:42031;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;19648:31;2730:42031;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;;;;19725:45;;;;;;:::i;19726:22::-;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;;;;19648:31;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;;;;;;;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;;;;;;;;;;;:::i;:::-;;;;;19286:93;19376:1;19286:93;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;;;;19027:31;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;19027:31;;;;;;;;;2730:42031;;;;;;;;;18458:325;18522:261;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;18114:330;2730:42031;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;2730:42031;-1:-1:-1;;;;;18390:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;18390:39;2730:42031;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;;;;18114:330;;;;;18390:39;;;;;:::i;:::-;2730:42031;;18390:39;;;;18193:178;-1:-1:-1;;;18335:36:68;;2730:42031;18335:36;;2730:42031;;;;;;;;;;;;;;-1:-1:-1;;;;;40469:12:68;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;28804:31;2796:6;;28849:35;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;32845:32;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;34458:29;2730:42031;34490:15;-1:-1:-1;34454:110:68;;34602:25;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;-1:-1:-1;;;;;2730:42031:68;;34458:16;2730:42031;;;34458:16;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;34602:25;2730:42031;2796:6;34458:29;2796:6;-1:-1:-1;;;;;2730:42031:68;;34728:47;2730:42031;;;34728:47;2730:42031;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2994:3;24700:18;2730:42031;24700:41;24696:101;;-1:-1:-1;;;;;2730:42031:68;;;24808:17;2730:42031;;;;;24700:18;2730:42031;;;;;;;;24859:20;24700:18;2730:42031;24859:20;:::i;:::-;24700:18;2796:6;2730:42031;;24696:101;-1:-1:-1;;;24762:35:68;;2730:42031;24762:35;;4786:64;-1:-1:-1;;;4826:24:68;;2730:42031;4826:24;;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2730:42031;;28378:31;2796:6;;28495:15;2796:6;28495:15;;2796:6;;;28445:35;2796:6;2730:42031;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;31983:31;2730:42031;32017:15;-1:-1:-1;31979:112:68;;2730:42031;31983:18;2730:42031;;32176:24;2730:42031;32123:117;2730:42031;;;;;:::i;:::-;;;;32123:117;2730:42031;;;;31983:18;2730:42031;;;;;31983:18;2730:42031;2796:6;31983:31;2796:6;2730:42031;;;;;;;;;;;;;;;;-1:-1:-1;;;;;41774:16:68;2730:42031;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;40822:21:68;2730:42031;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;29160:35;2730:42031;29198:15;-1:-1:-1;29156:116:68;;29316:31;2730:42031;29160:22;2796:6;;29316:31;2796:6;;29160:35;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;20523:19;20556:25;20595:31;;20640:32;20686;;-1:-1:-1;;;;;2730:42031:68;;;;;20747:11;2730:42031;;;;;;20743:1056;;2730:42031;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;20743:1056;2730:42031;;;;;;;;;20997:30;-1:-1:-1;;;;;20997:9:68;2730:42031;;20997:30;2730:42031;;;;;;;;;20997:30;;;2730:42031;20997:30;;2730:42031;20997:30;;;;;;;;2730:42031;;;;;;;20997:30;;;20743:1056;20791:236;;;;;;;;;;21046:27;;21042:747;;20743:1056;;;;;;;;21042:747;21128:23;;;21398:74;21128:23;;;21398:43;21128:23;;;:::i;:::-;2730:42031;;;20747:11;2730:42031;;21171:43;2730:42031;;;;21171:43;:::i;:::-;2796:6;;2730:42031;;;20747:11;2730:42031;;21283:71;:43;2730:42031;;;;21283:43;:::i;:::-;:71;;2796:6;2730:42031;;20747:11;2730:42031;;;;;21398:43;:::i;:::-;:74;;2796:6;-1:-1:-1;;;;;21522:4:68;2730:42031;;;;;;;;21522:32;;21543:10;2730:42031;21522:32;;2730:42031;;21522:32;20997:30;21522:32;;;;;;;;;;;;;21042:747;21518:257;;;21042:747;;;;;;;;;21518:257;2730:42031;;-1:-1:-1;;;21613:31:68;;2730:42031;;;;;21613:31;;;;;;;;;;;;21518:257;2730:42031;;;;;;;;;;;;;21707:22;;;;;;;;;;;;;21518:257;2730:42031;;;;21283:71;2730:42031;;;;;;;21543:10;;21706:28;-1:-1:-1;;;;;21543:10:68;2730:42031;21543:10;;21706:28;;:::i;:::-;21518:257;;;2730:42031;-1:-1:-1;;;2796:6:68;;;2730:42031;2796:6;20997:30;;2796:6;21707:22;;;;2730:42031;21707:22;;2730:42031;21707:22;;;;;;2730:42031;21707:22;;;:::i;:::-;;;2730:42031;;;;;21707:22;;;;;;;-1:-1:-1;21707:22:68;;;2730:42031;;;;;;;;;;;21613:31;;;;2730:42031;21613:31;;2730:42031;21613:31;;;;;;2730:42031;21613:31;;;:::i;:::-;;;2730:42031;;;;;;;;;;;:::i;:::-;21613:31;;;;;;;;-1:-1:-1;21613:31:68;;21522:32;;;;2730:42031;21522:32;2730:42031;21522:32;;;;;;;:::i;:::-;;;;20997:30;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;20997:30;;;;;;;;;;-1:-1:-1;20997:30:68;;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;8142:19;2730:42031;;8141:25;2730:42031;;8141:52;;2730:42031;8137:107;;2730:42031;;;;-1:-1:-1;;;;;8255:4:68;2730:42031;;;;;1005:56:103;;2730:42031:68;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;;;;1005:56:103;;;2730:42031:68;1005:56:103;;:::i;:::-;2730:42031:68;995:67:103;;8255:228:68;;;;;2730:42031;;;8255:228;2730:42031;;;;;;;;;;;;;;;;8255:228;;2730:42031;;8255:228;2730:42031;8255:228;;;:::i;:::-;;;;;;;;;;;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;8499:17;2730:42031;;;;;;;;8498:32;8494:87;;2730:42031;;;8499:17;2730:42031;;;;;;8610:37;2730:42031;8662:39;;;;8685:1;8674:12;;;8662:39;8658:102;;8811:61;;;;2730:42031;2796:6;;;;;;;8811:61;2730:42031;8811:61;;2730:42031;;;8499:17;2730:42031;;;;;;8771:37;2796:6;2730:42031;;;;;;:::i;:::-;;;;8915:59;;2730:42031;;;;;;;:::i;:::-;17192:23;;;17226:1944;;;;;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;17342:15;-1:-1:-1;17255:159:68;;2730:42031;;;17429:337;;17226:1944;2730:42031;;;-1:-1:-1;;;;;8255:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;;;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;;;17226:1944;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;2730:42031:68;17853:230;17226:1944;;2730:42031;;;;19180:11;2730:42031;;;;;;19286:93;;;2730:42031;19286:93;;2730:42031;;;;;;:::i;:::-;;;;19227:298;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;;19227:298;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;;;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;8255:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;19571:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;;;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;;;19725:45;;;;;;;:::i;:::-;19546:249;;;2730:42031;;;19726:22;;;;2730:42031;19726:22;;2730:42031;19726:22;;;;;;2730:42031;19726:22;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;;-1:-1:-1;19726:22:68;;19648:31;;;;2730:42031;19648:31;;2730:42031;19648:31;;;;;;2730:42031;19648:31;;;:::i;:::-;;;2730:42031;;;;;;;;;;:::i;:::-;19648:31;;;;;;;;;-1:-1:-1;19648:31:68;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;2730:42031;19550:32;2730:42031;19550:32;;;;;;;:::i;:::-;;;;;;2730:42031;;;;;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;2796:6;2730:42031;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;19286:93;19376:1;19286:93;;;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:119;:107;;;;:::i;:::-;:119;;2730:42031;;2796:6;;;;;;;-1:-1:-1;;;;;17853:230:68;;;2730:42031;-1:-1:-1;;;2796:6:68;;8142:19;2730:42031;2796:6;2730:42031;2796:6;;17781:39;;;;:::i;:::-;2730:42031;;;;;17781:39;;;;17429:337;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;17736:12;2730:42031;17736:12;;3219:17;17736:12;;;;:::i;:::-;17429:337;;;;;17255:159;-1:-1:-1;;;17379:35:68;;2730:42031;17379:35;;17226:1944;2730:42031;;;;;18137:36;-1:-1:-1;;;;;2730:42031:68;;;18137:36;:::i;:::-;2730:42031;18118:55;18114:330;;17226:1944;18462:19;;;:42;;;17226:1944;18458:325;;17226:1944;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;;;;:::i;:::-;-1:-1:-1;18832:119:68;2730:42031;-1:-1:-1;;2730:42031:68;;;;;;;8255:4;2730:42031;;;-1:-1:-1;;;19027:31:68;;2730:42031;18798:187;;2730:42031;;;;;;;;-1:-1:-1;;;;;2730:42031:68;19027:31;;;;;;;;;;;17226:1944;2730:42031;;19109:36;3219:17;-1:-1:-1;;;;;2730:42031:68;;;;;19109:36;;:::i;:::-;17226:1944;;19027:31;;;;2730:42031;19027:31;;2730:42031;19027:31;;;;;;2730:42031;19027:31;;;:::i;:::-;;;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;:::i;:::-;19027:31;;;;;;;-1:-1:-1;19027:31:68;;2730:42031;-1:-1:-1;;;2796:6:68;;8142:19;2730:42031;2796:6;2730:42031;2796:6;;18458:325;18522:261;2730:42031;;;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;;;18462:42;2730:42031;;;;18462:42;;18114:330;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;2730:42031;-1:-1:-1;;;;;8255:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;;;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;18114:330;;;;;18390:39;;;;;:::i;:::-;2730:42031;;18390:39;;;;18193:178;-1:-1:-1;;;18335:36:68;;2730:42031;18335:36;;8811:61;-1:-1:-1;;2730:42031:68;;;;;;;8811:61;2730:42031;8811:61;;;8658:102;-1:-1:-1;;;8722:38:68;;2730:42031;8722:38;;8662:39;8689:12;;8662:39;;8494:87;-1:-1:-1;;;8551:30:68;;2730:42031;8551:30;;8255:228;;;;;:::i;:::-;2730:42031;;8255:228;;;;8137:107;-1:-1:-1;;;8214:30:68;;2730:42031;8214:30;;8141:52;2730:42031;;8170:18;2730:42031;;8141:52;;2730:42031;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;6164:28;2730:42031;;;;;;-1:-1:-1;;;;;;2730:42031:68;6164:36;6160:50;;-1:-1:-1;;;;;2730:42031:68;;;-1:-1:-1;;;;;2730:42031:68;;6221:16;2730:42031;;;6221:16;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;-1:-1:-1;;;;;2730:42031:68;;6299:18;2730:42031;;;6299:18;2730:42031;-1:-1:-1;;;;;2730:42031:68;;6327:33;2730:42031;;;6327:33;2730:42031;;;;6164:28;2730:42031;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;27024:21;2730:42031;;;27024:21;2730:42031;2796:6;27099:15;2796:6;27099:15;;2796:6;;;27071:25;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;6910:12:68;2730:42031;;6896:10;;;:34;6892:90;;2730:42031;;;;;;:::i;:::-;;;;;7025:121;;2730:42031;;;;;-1:-1:-1;;;;;7251:4:68;2730:42031;;;;;;;;;;;7251:40;;6896:10;2730:42031;7251:40;;2730:42031;7251:40;;;;;;;2730:42031;7251:40;;;2730:42031;;;;;;;;:::i;:::-;17192:23;17226:1944;;;;17276:47;-1:-1:-1;;;;;2730:42031:68;;;17276:47;:::i;:::-;17342:15;-1:-1:-1;17255:159:68;;2730:42031;;;17429:337;;17226:1944;2730:42031;;;-1:-1:-1;;;;;7251:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;17781:39;;;;;2730:42031;;;;;;;;;;;;;;;17781:39;;2730:42031;17781:39;;2730:42031;;;;;;;;17781:39;;;;;;;;17226:1944;-1:-1:-1;;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;17853:11;2730:42031;;;;;;17853:230;;-1:-1:-1;;;;;17853:230:68;;17226:1944;;2730:42031;;;;19180:11;2730:42031;;;;;;19286:93;;;19334:1;19286:93;;2730:42031;;;;;;:::i;:::-;;;;19227:298;;2730:42031;;;;19227:298;;19449:15;;2730:42031;;;19227:298;;2730:42031;;;;;;-1:-1:-1;;;2730:42031:68;;;;;;;;;;;;;;:::i;:::-;;;;;;;2796:6;;2730:42031;;;;2796:6;2730:42031;;;;2796:6;2730:42031;;;;;2796:6;7251:4;2730:42031;;;-1:-1:-1;;;19550:32:68;;6896:10;2730:42031;19550:32;;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;19550:32;;;;;;;;;;;19286:93;19550:55;;;;19286:93;19546:249;;;2730:42031;;;19546:249;2730:42031;;-1:-1:-1;;;19648:31:68;;2730:42031;;;;;;19648:31;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;19726:22;;;;;;;;;;;;;19546:249;2730:42031;;;;;;;;;;;;;;;;19725:45;;;6896:10;19725:45;;:::i;:::-;2730:42031;;19726:22;;;;2730:42031;19726:22;;2730:42031;19726:22;;;;;;2730:42031;19726:22;;;:::i;:::-;;;2730:42031;;;;;19726:22;;;;;;;-1:-1:-1;19726:22:68;;19648:31;;;2730:42031;19648:31;;2730:42031;19648:31;;;;;;2730:42031;19648:31;;;:::i;:::-;;;2730:42031;;;;;;;;;:::i;:::-;19648:31;;;;;;;-1:-1:-1;19648:31:68;;19550:55;2730:42031;;;;19550:55;;;:32;;;;;2730:42031;19550:32;2730:42031;19550:32;;;;;;;:::i;:::-;;;;;2730:42031;-1:-1:-1;;;2730:42031:68;;;;;;;2796:6;2730:42031;;-1:-1:-1;;;2730:42031:68;;;;;;2796:6;2730:42031;19286:93;19376:1;19286:93;;;17853:230;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;17853:11;2730:42031;;;;;;;;;;;;;;;;17946:107;:119;:107;-1:-1:-1;;;;;17946:107:68;:137;:107;;:::i;:137::-;17853:230;;17781:39;;;;;:::i;:::-;2730:42031;;17781:39;;;;17429:337;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;17736:12;;;;;;;;;:::i;:::-;17429:337;;;;17226:1944;2730:42031;;18137:36;-1:-1:-1;;;;;2730:42031:68;;;18137:36;:::i;:::-;18118:55;;18114:330;;17226:1944;18458:325;;;17226:1944;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;18832:11;2730:42031;;;;;;;;;;;;;;;;18832:119;:107;:153;:107;;;;:::i;:153::-;2730:42031;;;-1:-1:-1;;;;;7251:4:68;2730:42031;;;;;;;;;;;19027:31;;;;;;;;;;;;;17226:1944;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;3219:17;2730:42031;;3219:17;2730:42031;;;;;;19109:36;;;-1:-1:-1;;;;;19109:36:68;;;:::i;:::-;17226:1944;;19027:31;;;2730:42031;19027:31;;2730:42031;19027:31;;;;;;2730:42031;19027:31;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;19027:31;;;;;;-1:-1:-1;19027:31:68;;18458:325;18522:261;2730:42031;;;-1:-1:-1;;;;;2730:42031:68;;;18522:261;:::i;:::-;18458:325;;;;;18114:330;2730:42031;18218:53;-1:-1:-1;;;;;2730:42031:68;;;18218:53;:::i;:::-;18294:15;-1:-1:-1;18193:178:68;;-1:-1:-1;;;;;7251:4:68;2730:42031;;-1:-1:-1;;;;;2730:42031:68;;;18390:39;;;;;2730:42031;;;;;;;;;;;;;;;18390:39;;2730:42031;18390:39;;2730:42031;;;;;;18390:39;;;;;;;;18114:330;;;;;18390:39;;;;;2730:42031;18390:39;;:::i;:::-;2730:42031;18390:39;;;;;2730:42031;;;;;;;;;18193:178;18335:36;;;2730:42031;18335:36;2730:42031;;18335:36;7251:40;;;2730:42031;7251:40;;2730:42031;7251:40;;;;;;2730:42031;7251:40;;;:::i;:::-;;;2730:42031;;;;;;;7251:40;;;;;;-1:-1:-1;7251:40:68;;6892:90;6951:31;;;2730:42031;6951:31;2730:42031;;6951:31;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2730:42031;;29903:38;2796:6;;30041:15;2796:6;30041:15;;2796:6;;;29984:42;2796:6;2730:42031;2796:6;;;;2730:42031;2796:6;;2730:42031;2796:6;;2730:42031;2796:6;4786:64;4826:24;;;2730:42031;4826:24;2730:42031;;4826:24;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;33736:25;2730:42031;;;33736:25;2730:42031;2796:6;33828:15;2796:6;33828:15;;2796:6;;;33784:29;2796:6;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;27700:25;2730:42031;27728:15;-1:-1:-1;27696:106:68;;27836:21;2730:42031;;27700:12;2730:42031;;-1:-1:-1;;2730:42031:68;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;-1:-1:-1;27700:25:68;2796:6;2730:42031;27696:106;33248:38;;;2730:42031;27764:38;2730:42031;;27764:38;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;2796:6;31364:15;2796:6;31364:15;;2796:6;;;31318:31;2796:6;2730:42031;;;;;;;-1:-1:-1;;2730:42031:68;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;33177:32;2730:42031;33212:15;-1:-1:-1;33173:113:68;;33177:19;2730:42031;;;;;33324:25;2730:42031;;;;;;33177:19;2730:42031;;33177:32;2796:6;2730:42031;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;43617:16;-1:-1:-1;;;;;43617:4:68;2730:42031;;;;;;;;;;;43617:16;;;;;;;;2730:42031;43617:16;;;2730:42031;43617:16;2730:42031;;;;;;;43617:16;;;;;;;;;;;;2730:42031;43617:16;;;:::i;:::-;;;2730:42031;;;;43617:16;2730:42031;;43617:16;;;;;-1:-1:-1;43617:16:68;;2730:42031;;;;;;-1:-1:-1;;2730:42031:68;;;;;;:::i;:::-;-1:-1:-1;;;;;4804:5:68;2730:42031;;4790:10;:27;4786:64;;-1:-1:-1;;;;;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;25798:14;2730:42031;;;25798:14;2730:42031;2796:6;25855:15;2796:6;25855:15;;2796:6;;;2730:42031;2796:6;2730:42031;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2796:6::-;;;;;;;;;;:::o;2730:42031::-;;;;;;;;;;;;;;;:::o;:::-;2796:6;;;-1:-1:-1;2730:42031:68;;;;;-1:-1:-1;2730:42031:68;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2730:42031:68;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;8383:1;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2730:42031:68;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;2730:42031:68;;-1:-1:-1;2730:42031:68;;;;;;-1:-1:-1;2730:42031:68;:::o;:::-;2796:6;;;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2994:3::-;-1:-1:-1;;2994:3:68;;;;;;;:::o;2730:42031::-;;;;;;;:::i;:::-;-1:-1:-1;2730:42031:68;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;39898:303::-;-1:-1:-1;;;;;2730:42031:68;;;;40025:11;2730:42031;;;;;;40068:20;;;40064:59;;2730:42031;;40025:11;2730:42031;;;;;;;;;;;;;;40140:54;:42;;;;:::i;:::-;:54;;2730:42031;39898:303;:::o;40064:59::-;40104:8;;2730:42031;40104:8;:::o;38304:504::-;-1:-1:-1;;;;;2730:42031:68;;;;38442:11;2730:42031;;;;;;38485:20;;38481:59;;2730:42031;;;38442:11;2730:42031;;;;;;;;;;;;;;38553:42;;:54;:42;;:::i;:::-;-1:-1:-1;38553:54:68;2730:42031;38553:54;;38651:42;:52;2730:42031;38651:101;2730:42031;;;38442:11;2730:42031;;;;;38651:42;:::i;:::-;:52;;2730:42031;38722:22;2730:42031;38651:101;;:::i;:::-;38628:124;:::o;37443:532::-;-1:-1:-1;;;;;2730:42031:68;;;;37578:11;2730:42031;;;;;;37561:292;37608:5;;;2730:42031;;;37578:11;2730:42031;;;;;;;;;;;;37882:86;2730:42031;;;;37882:34;2730:42031;37931:29;2730:42031;37882:86;;:::i;37615:3::-;2730:42031;;;37578:11;2730:42031;;;;;;;;;;;;;;;37638:28;;:40;:28;;:::i;:::-;:40;;2730:42031;37638:45;37634:209;;37615:3;2730:42031;;;;-1:-1:-1;;2730:42031:68;;37566:40;;37634:209;37730:38;2730:42031;;37730:28;2730:42031;37730:98;2730:42031;;;37578:11;2730:42031;;;;;37730:28;:::i;:::-;:38;;2730:42031;37791:29;2730:42031;37730:98;;:::i;23700:165::-;;-1:-1:-1;;;;;23820:4:68;2730:42031;;23820:38;;;;;-1:-1:-1;2730:42031:68;;23820:38;2730:42031;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;23820:38;;2730:42031;23820:38;;;2730:42031;;;;;;;;;;23820:38;;;;;;;;23700:165;:::o;23820:38::-;-1:-1:-1;23820:38:68;;;:::i;:::-;23700:165::o;22836:531::-;;;;;;;-1:-1:-1;;;;;23069:4:68;2730:42031;;;;;;;;;23152:31;;;;;;;;;;;;;;-1:-1:-1;23152:31:68;;;22836:531;23069:291;;;;;;23152:31;-1:-1:-1;2730:42031:68;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;23069:291;;2730:42031;23152:31;23069:291;;2730:42031;23117:4;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;23117:4;2730:42031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2730:42031:68;;;23069:291;;;;;;;;;;;22836:531;:::o;23152:31::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;23152:31;;;;;;;-1:-1:-1;23152:31:68;;22836:531;;;;;;;-1:-1:-1;;;;;23069:4:68;2730:42031;;;;;;;;;23152:31;;;;;;;;;;;;;;-1:-1:-1;23152:31:68;;;22836:531;23069:291;;;;;;2730:42031;;;;;;;;;;23069:291;;-1:-1:-1;;;;;2730:42031:68;23152:31;23069:291;;2730:42031;23117:4;2730:42031;;;;;;;;;;;;;-1:-1:-1;2730:42031:68;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;23117:4;2730:42031;;;;-1:-1:-1;;;;;2730:42031:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23152:31;2730:42031;;;;;;;;;;-1:-1:-1;2730:42031:68;;;;;;;;;;23069:291;2730:42031;23069:291;;;-1:-1:-1;23069:291:68;;;;;;;;;;22836:531;:::o;23152:31::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;2730:42031;;;;;;;:::i;:::-;23152:31;;;;;;;-1:-1:-1;23152:31:68;",linkReferences:{}},methodIdentifiers:{"acceptNewAdmin()":"cd6b5460","acceptNewEstimator()":"6fa7ff17","acceptNewGoldenFisher()":"34dd90d6","acceptSetSecondsToUnlockStaking()":"610a0476","addPresaleStaker(address)":"6c58f77b","addPresaleStakers(address[])":"be100345","cancelChangeAllowPresaleStaking()":"7068dc65","cancelChangeAllowPublicStaking()":"b996b6c4","cancelSetSecondsToUnllockFullUnstaking()":"b384c574","confirmChangeAllowPresaleStaking()":"1e9c210f","confirmChangeAllowPublicStaking()":"681f02ac","confirmServiceStaking()":"c9d2beb1","confirmSetSecondsToUnllockFullUnstaking()":"8f4b3f28","getAddressHistory(address)":"fabd08e8","getAddressHistoryByIndex(address,uint256)":"9053a258","getAllowPresaleStaking()":"e7dc0756","getAllowPublicStaking()":"89a75af8","getCoreAddress()":"2096b768","getEstimatorAddress()":"66d161aa","getEstimatorProposal()":"e6cbd0a6","getEvvmID()":"17c85152","getGoldenFisher()":"7f8da591","getGoldenFisherProposal()":"6254300b","getIfUsedAsyncNonce(address,uint256)":"d0e3692d","getMateAddress()":"96ae4e45","getOwner()":"893d20e8","getPresaleStaker(address)":"c130a719","getPresaleStakerCount()":"fa6215f3","getSecondsToUnlockFullUnstaking()":"f5c1af1c","getSecondsToUnlockStaking()":"e6f2ebe4","getSizeOfAddressHistory(address)":"fc2feab2","getTimeToUserUnlockFullUnstakingTime(address)":"d5bbacd5","getTimeToUserUnlockStakingTime(address)":"9e411233","getUserAmountStaked(address)":"9cde1d3e","gimmeYiel(address)":"602c4fb4","goldenStaking(bool,uint256,bytes)":"475c31ff","initializeSystemContracts(address,address)":"55160ea6","prepareChangeAllowPresaleStaking()":"dfb2b3a4","prepareChangeAllowPublicStaking()":"27be0557","prepareServiceStaking(uint256)":"99b4c3ef","prepareSetSecondsToUnllockFullUnstaking(uint256)":"3d8ff69a","presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":"58b71cb4","priceOfStaking()":"cb0900b8","proposeAdmin(address)":"147bf6c4","proposeEstimator(address)":"3900738a","proposeGoldenFisher(address)":"489c5ad4","proposeSetSecondsToUnlockStaking(uint256)":"6b2933a2","publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":"83e512ab","rejectProposalAdmin()":"b38c950a","rejectProposalEstimator()":"a06831ba","rejectProposalGoldenFisher()":"a84e9f23","rejectProposalSetSecondsToUnlockStaking()":"7c25faef","serviceUnstaking(uint256)":"829c67d4"},rawMetadata:'{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"initialAdmin","type":"address"},{"internalType":"address","name":"initialGoldenFisher","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressIsNotAService","type":"error"},{"inputs":[],"name":"AddressMismatch","type":"error"},{"inputs":[],"name":"AddressMustWaitToFullUnstake","type":"error"},{"inputs":[],"name":"AddressMustWaitToStakeAgain","type":"error"},{"inputs":[],"name":"LimitPresaleStakersExceeded","type":"error"},{"inputs":[],"name":"PresaleStakingDisabled","type":"error"},{"inputs":[],"name":"PublicStakingDisabled","type":"error"},{"inputs":[],"name":"SenderIsNotAdmin","type":"error"},{"inputs":[],"name":"SenderIsNotGoldenFisher","type":"error"},{"inputs":[],"name":"SenderIsNotProposedAdmin","type":"error"},{"inputs":[{"internalType":"uint256","name":"requiredAmount","type":"uint256"}],"name":"ServiceDoesNotFulfillCorrectStakingAmount","type":"error"},{"inputs":[],"name":"ServiceDoesNotStakeInSameTx","type":"error"},{"inputs":[],"name":"TimeToAcceptProposalNotReached","type":"error"},{"inputs":[],"name":"UserIsNotPresaleStaker","type":"error"},{"inputs":[],"name":"UserPresaleStakerLimitExceeded","type":"error"},{"inputs":[],"name":"acceptNewAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptNewEstimator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptNewGoldenFisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptSetSecondsToUnlockStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_staker","type":"address"}],"name":"addPresaleStaker","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_stakers","type":"address[]"}],"name":"addPresaleStakers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelChangeAllowPresaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelChangeAllowPublicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelSetSecondsToUnllockFullUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmChangeAllowPresaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmChangeAllowPublicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmServiceStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"confirmSetSecondsToUnllockFullUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getAddressHistory","outputs":[{"components":[{"internalType":"bytes32","name":"transactionType","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"}],"internalType":"struct StakingStructs.HistoryMetadata[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getAddressHistoryByIndex","outputs":[{"components":[{"internalType":"bytes32","name":"transactionType","type":"bytes32"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"totalStaked","type":"uint256"}],"internalType":"struct StakingStructs.HistoryMetadata","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllowPresaleStaking","outputs":[{"components":[{"internalType":"bool","name":"flag","type":"bool"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.BoolTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllowPublicStaking","outputs":[{"components":[{"internalType":"bool","name":"flag","type":"bool"},{"internalType":"uint256","name":"timeToAccept","type":"uint256"}],"internalType":"struct ProposalStructs.BoolTypeProposal","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCoreAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEstimatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEstimatorProposal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEvvmID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGoldenFisher","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGoldenFisherProposal","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"getIfUsedAsyncNonce","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMateAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getPresaleStaker","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPresaleStakerCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSecondsToUnlockFullUnstaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSecondsToUnlockStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getSizeOfAddressHistory","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getTimeToUserUnlockFullUnstakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getTimeToUserUnlockStakingTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getUserAmountStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"gimmeYiel","outputs":[{"internalType":"bytes32","name":"epochAnswer","type":"bytes32"},{"internalType":"address","name":"tokenToBeRewarded","type":"address"},{"internalType":"uint256","name":"amountTotalToBeRewarded","type":"uint256"},{"internalType":"uint256","name":"idToOverwriteUserHistory","type":"uint256"},{"internalType":"uint256","name":"timestampToBeOverwritten","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isStaking","type":"bool"},{"internalType":"uint256","name":"amountOfStaking","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"goldenStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_estimator","type":"address"},{"internalType":"address","name":"_core","type":"address"}],"name":"initializeSystemContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"prepareChangeAllowPresaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"prepareChangeAllowPublicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOfStaking","type":"uint256"}],"name":"prepareServiceStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_secondsToUnllockFullUnstaking","type":"uint256"}],"name":"prepareSetSecondsToUnllockFullUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isStaking","type":"bool"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"presaleStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"priceOfStaking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_newAdmin","type":"address"}],"name":"proposeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_estimator","type":"address"}],"name":"proposeEstimator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_goldenFisher","type":"address"}],"name":"proposeGoldenFisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_secondsToUnlockStaking","type":"uint256"}],"name":"proposeSetSecondsToUnlockStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isStaking","type":"bool"},{"internalType":"uint256","name":"amountOfStaking","type":"uint256"},{"internalType":"address","name":"senderExecutor","type":"address"},{"internalType":"address","name":"originExecutor","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes","name":"signature","type":"bytes"},{"internalType":"uint256","name":"priorityFeePay","type":"uint256"},{"internalType":"uint256","name":"noncePay","type":"uint256"},{"internalType":"bytes","name":"signaturePay","type":"bytes"}],"name":"publicStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalEstimator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalGoldenFisher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rejectProposalSetSecondsToUnlockStaking","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOfStaking","type":"uint256"}],"name":"serviceUnstaking","outputs":[],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Mate labs","details":"Manages staking, unstaking, and yield distribution via the Estimator contract. Supports presale and public staking phases with time-locked security and nonce-based replay protection.","errors":{"AddressIsNotAService()":[{"details":"Thrown when EOA calls service-only function (onlyCA checks code size)"}],"AddressMismatch()":[{"details":"Thrown when confirmServiceStaking caller != prepareServiceStaking caller"}],"AddressMustWaitToFullUnstake()":[{"details":"Thrown when full unstake attempted before lock period (secondsToUnllockFullUnstaking.current = 5 days)"}],"AddressMustWaitToStakeAgain()":[{"details":"Thrown when re-staking before cooldown expires (secondsToUnlockStaking.current)"}],"LimitPresaleStakersExceeded()":[{"details":"Thrown when adding presale staker beyond 800 limit (LIMIT_PRESALE_STAKER)"}],"PresaleStakingDisabled()":[{"details":"Thrown when presale staking attempted while disabled (allowPresaleStaking.flag == false)"}],"PublicStakingDisabled()":[{"details":"Thrown when public staking attempted while disabled (allowPublicStaking.flag == false). Uses Core.sol async nonces."}],"SenderIsNotAdmin()":[{"details":"Thrown when non-admin calls admin-only function (onlyOwner)"}],"SenderIsNotGoldenFisher()":[{"details":"Thrown when non-goldenFisher attempts goldenStaking (sync nonces with Core.sol)"}],"SenderIsNotProposedAdmin()":[{"details":"Thrown when non-proposed admin attempts acceptNewAdmin (1d delay)"}],"ServiceDoesNotFulfillCorrectStakingAmount(uint256)":[{"details":"Thrown when Principal Token transfer != PRICE_OF_STAKING * amountOfStaking (via Evvm.caPay)","params":{"requiredAmount":"Exact Principal Tokens needed"}}],"ServiceDoesNotStakeInSameTx()":[{"details":"Thrown when confirm timestamp != prepare timestamp (atomic 3-step process required)"}],"TimeToAcceptProposalNotReached()":[{"details":"Thrown when accepting governance proposal before 1-day delay (TIME_TO_ACCEPT_PROPOSAL)"}],"UserIsNotPresaleStaker()":[{"details":"Thrown when non-whitelisted user attempts presaleStaking (max 800 presale stakers)"}],"UserPresaleStakerLimitExceeded()":[{"details":"Thrown when presale user tries to stake beyond 2-token cap"}]},"kind":"dev","methods":{"acceptNewAdmin()":{"details":"Can only be called by the proposed admin after the time delay has passed"},"acceptNewEstimator()":{"details":"Can only be called by the current admin after the 1-day time delay"},"acceptNewGoldenFisher()":{"details":"Can only be called by the current admin after the 1-day time delay"},"acceptSetSecondsToUnlockStaking()":{"details":"Can only be called by the current admin after the 1-day time delay"},"addPresaleStaker(address)":{"details":"Only admin can call this function, limited to 800 presale stakers total","params":{"_staker":"Address to be added to the presale staker list"}},"addPresaleStakers(address[])":{"details":"Only admin can call this function, limited to 800 presale stakers total","params":{"_stakers":"Array of addresses to be added to the presale staker list"}},"cancelChangeAllowPresaleStaking()":{"details":"Only current admin can cancel the pending presale staking toggle"},"cancelChangeAllowPublicStaking()":{"details":"Only current admin can cancel the pending public staking toggle"},"cancelSetSecondsToUnllockFullUnstaking()":{"details":"Only current admin can cancel the pending full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{"details":"Toggles between enabled/disabled state for presale staking after 1-day delay"},"confirmChangeAllowPublicStaking()":{"details":"Toggles between enabled/disabled state for public staking after 1-day delay"},"confirmServiceStaking()":{"details":"Validates payment and completes atomic staking Validation Checks: 1. Timestamp: Must equal prepareServiceStaking tx - Ensures atomicity (same transaction) - serviceStakingData.timestamp == block.timestamp 2. Caller: Must match prepareServiceStaking caller - serviceStakingData.service == msg.sender - Prevents staking hijacking 3. Payment Amount: Validates exact transfer - Service balance decreased by exact amount - Staking balance increased by exact amount - totalStakingRequired = PRICE_OF_STAKING * amountOfStaking Core.sol Integration: - Validates caPay occurred between steps 1 and 3 - Checks balance deltas via Evvm.getBalance - Token: core.getPrincipalTokenAddress() - Must be exact amount (no overpayment/underpayment) Completion: - Calls stakingBaseProcess on success - Records history with transaction type 0x01 - Updates userHistory with staking event - Service becomes staker (isAddressStaker = true) Error Cases: - ServiceDoesNotStakeInSameTx: timestamp mismatch - AddressMismatch: caller mismatch - ServiceDoesNotFulfillCorrectStakingAmount: payment incorrect Access Control: - onlyCA modifier: Only contracts allowed"},"confirmSetSecondsToUnllockFullUnstaking()":{"details":"Can only be called by the current admin after the 1-day time delay"},"constructor":{"params":{"initialAdmin":"System administrator.","initialGoldenFisher":"Authorized Golden Fisher address."}},"getAddressHistory(address)":{"details":"Returns an array of all staking transactions and rewards for the user","params":{"_account":"Address to query the history for"},"returns":{"_0":"Array of Structs.HistoryMetadata containing all transactions"}},"getAddressHistoryByIndex(address,uint256)":{"details":"Allows accessing individual transactions by index","params":{"_account":"Address to query the history for","_index":"Index of the transaction to retrieve (0-based)"},"returns":{"_0":"Structs.HistoryMetadata of the transaction at the specified index"}},"getAllowPresaleStaking()":{"details":"Includes current flag state and any pending changes with timestamps","returns":{"_0":"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getAllowPublicStaking()":{"details":"Includes current flag state and any pending changes with timestamps","returns":{"_0":"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getCoreAddress()":{"details":"The EVVM contract handles payments and staker registration","returns":{"_0":"Address of the EVVM core contract"}},"getEstimatorAddress()":{"details":"The estimator calculates staking rewards and yields","returns":{"_0":"Address of the current estimator contract"}},"getEstimatorProposal()":{"details":"Shows pending estimator changes in the governance system","returns":{"_0":"Address of the proposed estimator contract (zero address if none)"}},"getEvvmID()":{"details":"Returns the EvvmID used for distinguishing different EVVM deployments","returns":{"_0":"Unique EvvmID string"}},"getGoldenFisher()":{"details":"The golden fisher has special staking privileges","returns":{"_0":"Address of the current golden fisher"}},"getGoldenFisherProposal()":{"details":"Shows pending golden fisher changes in the governance system","returns":{"_0":"Address of the proposed golden fisher (zero address if none)"}},"getMateAddress()":{"details":"This is a constant address used to represent the principal token","returns":{"_0":"Address representing the Principal Token (0x...0001)"}},"getOwner()":{"details":"The admin has full control over contract parameters and governance","returns":{"_0":"Address of the current contract admin"}},"getPresaleStaker(address)":{"details":"Shows if an address is allowed for presale and how many tokens they\'ve staked","params":{"_account":"Address to check presale status for"},"returns":{"_0":"isAllow True if the address is allowed for presale staking","_1":"stakingAmount Number of staking tokens currently staked in presale (max 2)"}},"getPresaleStakerCount()":{"details":"Maximum allowed is 800 presale stakers","returns":{"_0":"Current count of presale stakers"}},"getSecondsToUnlockFullUnstaking()":{"details":"Full unstaking requires waiting this many seconds (default: 21 days)","returns":{"_0":"Number of seconds required to wait for full unstaking"}},"getSecondsToUnlockStaking()":{"details":"Users must wait this many seconds after unstaking before they can stake again","returns":{"_0":"Number of seconds required to wait between unstaking and staking"}},"getSizeOfAddressHistory(address)":{"details":"Useful for pagination or checking if an address has any staking history","params":{"_account":"Address to query the history size for"},"returns":{"_0":"Number of transactions in the history"}},"getTimeToUserUnlockFullUnstakingTime(address)":{"details":"Full unstaking requires waiting 21 days after the last time their balance reached 0","params":{"_account":"Address to check the unlock time for"},"returns":{"_0":"Timestamp when full unstaking will be allowed"}},"getTimeToUserUnlockStakingTime(address)":{"details":"Users must wait a configurable period after unstaking before they can stake again","params":{"_account":"Address to check the unlock time for"},"returns":{"_0":"Timestamp when staking will be allowed again (0 if already allowed)"}},"getUserAmountStaked(address)":{"details":"Returns the total staked amount from the user\'s most recent transaction","params":{"_account":"Address to check the staked amount for"},"returns":{"_0":"Amount of staking tokens currently staked by the user"}},"gimmeYiel(address)":{"details":"Interacts with the Estimator contract to calculate and distribute rewards","params":{"user":"Address of the user claiming rewards"},"returns":{"amountTotalToBeRewarded":"Total amount of rewards to be distributed","epochAnswer":"Epoch identifier for the reward calculation","idToOverwriteUserHistory":"Index in user history to update with reward info","timestampToBeOverwritten":"Timestamp to record for the reward transaction","tokenToBeRewarded":"Address of the token being rewarded"}},"goldenStaking(bool,uint256,bytes)":{"details":"Uses sync nonces for coordination with Core operations.","params":{"amountOfStaking":"Number of staking tokens.","isStaking":"True to stake, false to unstake.","signaturePay":"Authorization signature for Core payment."}},"initializeSystemContracts(address,address)":{"params":{"_core":"EVVM Core contract address (payments).","_estimator":"Estimator contract address (yield calculations)."}},"prepareChangeAllowPresaleStaking()":{"details":"Initiates the time-delayed process to enable/disable presale staking"},"prepareChangeAllowPublicStaking()":{"details":"Initiates the time-delayed process to enable/disable public staking"},"prepareServiceStaking(uint256)":{"details":"Records pre-staking state for atomic validation Service Staking Process (ATOMIC - Same TX): 1. prepareServiceStaking: Record balances 2. Evvm.caPay: Transfer Principal Tokens 3. confirmServiceStaking: Validate and complete CRITICAL WARNING: - All 3 steps MUST occur in single transaction - If incomplete, tokens permanently locked - No recovery mechanism for failed process - Service loses tokens if not atomic Metadata Recorded: - service: msg.sender (contract address) - timestamp: block.timestamp (atomicity check) - amountOfStaking: Requested staking tokens - amountServiceBeforeStaking: Service PT balance - amountStakingBeforeStaking: Staking PT balance Core.sol Payment (Step 2): - Service must call Evvm.caPay after this - Transfer: PRICE_OF_STAKING * amountOfStaking - Recipient: address(this) (Staking contract) - Token: Principal Token from Core.sol Access Control: - onlyCA modifier: Only contracts allowed - Checks code size via assembly - EOAs rejected (size == 0)","params":{"amountOfStaking":"Number of staking tokens to acquire"}},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{"details":"Part of the time-delayed governance system for full unstaking time changes","params":{"_secondsToUnllockFullUnstaking":"New number of seconds users must wait for full unstaking (default: 21 days)"}},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{"params":{"isStaking":"True to stake, false to unstake.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment.","priorityFeePay":"Optional priority fee.","signature":"Participant\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"Participant address."}},"priceOfStaking()":{"details":"Returns the constant price of 5083 Principal Tokens per staking","returns":{"_0":"Price of one staking token in Principal Tokens (with 18 decimals)"}},"proposeAdmin(address)":{"details":"Part of the time-delayed governance system for admin changes","params":{"_newAdmin":"Address of the proposed new admin"}},"proposeEstimator(address)":{"details":"Part of the time-delayed governance system for estimator contract changes","params":{"_estimator":"Address of the proposed new estimator contract"}},"proposeGoldenFisher(address)":{"details":"Part of the time-delayed governance system for golden fisher changes","params":{"_goldenFisher":"Address of the proposed new golden fisher"}},"proposeSetSecondsToUnlockStaking(uint256)":{"details":"Part of the time-delayed governance system for staking unlock time changes","params":{"_secondsToUnlockStaking":"New number of seconds users must wait after unstaking before staking again"}},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"params":{"amountOfStaking":"Number of tokens.","isStaking":"True to stake, false to unstake.","nonce":"Async nonce for signature verification.","noncePay":"Nonce for the Core payment.","priorityFeePay":"Optional priority fee.","signature":"Participant\'s authorization signature.","signaturePay":"Signature for the Core payment.","user":"Participant address."}},"rejectProposalAdmin()":{"details":"Only current admin can reject the pending proposal"},"rejectProposalEstimator()":{"details":"Only current admin can reject the pending estimator contract proposal"},"rejectProposalGoldenFisher()":{"details":"Only current admin can reject the pending golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{"details":"Only current admin can reject the pending staking unlock time proposal"},"serviceUnstaking(uint256)":{"details":"Simplified unstaking process for services - no signature or payment required, just direct unstakingThe service will receive Principal Tokens equal to: amountOfStaking * PRICE_OF_STAKINGSubject to the same time locks as regular unstaking (21 days for full unstake)Only callable by contract accounts (services), not EOAs","params":{"amountOfStaking":"Amount of staking tokens to unstake"}}},"stateVariables":{"EVVM_ADDRESS":{"details":"Address of the EVVM core contract"},"LIMIT_PRESALE_STAKER":{"details":"Maximum number of presale stakers allowed"},"PRICE_OF_STAKING":{"details":"Price of one staking main token (5083 main token = 1 staking)"},"admin":{"details":"Admin address management with proposal system"},"allowPresaleStaking":{"details":"Flag to enable/disable presale staking"},"allowPublicStaking":{"details":"Flag to enable/disable public staking"},"breakerSetupEstimatorAndEvvm":{"details":"One-time setup breaker for estimator and EVVM addresses"},"estimatorAddress":{"details":"Estimator contract address management with proposal system"},"goldenFisher":{"details":"Golden Fisher address management with proposal system"},"presaleStakerCount":{"details":"Current count of registered presale stakers"},"secondsToUnllockFullUnstaking":{"details":"Time delay for full unstaking (21 days default)"},"secondsToUnlockStaking":{"details":"Time delay for regular staking after unstaking"},"serviceStakingData":{"details":"Variable to store service staking metadata"},"userHistory":{"details":"Mapping to store complete staking history for each user"},"userPresaleStaker":{"details":"Mapping to store presale staker metadata"}},"title":"EVVM Staking","version":1},"userdoc":{"kind":"user","methods":{"acceptNewAdmin()":{"notice":"Accepts the admin proposal and becomes the new admin"},"acceptNewEstimator()":{"notice":"Accepts the estimator contract proposal after the time delay has passed"},"acceptNewGoldenFisher()":{"notice":"Accepts the golden fisher proposal after the time delay has passed"},"acceptSetSecondsToUnlockStaking()":{"notice":"Accepts the staking unlock time proposal after the time delay has passed"},"addPresaleStaker(address)":{"notice":"Adds a single address to the presale staker list"},"addPresaleStakers(address[])":{"notice":"Adds multiple addresses to the presale staker list in batch"},"cancelChangeAllowPresaleStaking()":{"notice":"Cancels the pending presale staking flag change"},"cancelChangeAllowPublicStaking()":{"notice":"Cancels the pending public staking flag change"},"cancelSetSecondsToUnllockFullUnstaking()":{"notice":"Cancels the current full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{"notice":"Confirms and executes the presale staking flag toggle after the time delay has passed"},"confirmChangeAllowPublicStaking()":{"notice":"Confirms and executes the public staking flag toggle after the time delay has passed"},"confirmServiceStaking()":{"notice":"Step 3: Confirm service staking after payment"},"confirmSetSecondsToUnllockFullUnstaking()":{"notice":"Confirms the full unstaking time proposal after the time delay has passed"},"constructor":{"notice":"Initializes the staking contract."},"getAddressHistory(address)":{"notice":"Returns the complete staking history for an address"},"getAddressHistoryByIndex(address,uint256)":{"notice":"Returns a specific transaction from an address\'s staking history"},"getAllowPresaleStaking()":{"notice":"Returns the complete presale staking configuration and status"},"getAllowPublicStaking()":{"notice":"Returns the complete public staking configuration and status"},"getCoreAddress()":{"notice":"Returns the address of the EVVM core contract"},"getEstimatorAddress()":{"notice":"Returns the current estimator contract address"},"getEstimatorProposal()":{"notice":"Returns the proposed new estimator contract address (if any)"},"getEvvmID()":{"notice":"Gets the unique identifier string for this EVVM instance"},"getGoldenFisher()":{"notice":"Returns the current golden fisher address"},"getGoldenFisherProposal()":{"notice":"Returns the proposed new golden fisher address (if any)"},"getMateAddress()":{"notice":"Returns the address representing the Principal Token"},"getOwner()":{"notice":"Returns the current admin/owner address"},"getPresaleStaker(address)":{"notice":"Returns presale staker information for a given address"},"getPresaleStakerCount()":{"notice":"Returns the current number of registered presale stakers"},"getSecondsToUnlockFullUnstaking()":{"notice":"Returns the current time delay for full unstaking operations"},"getSecondsToUnlockStaking()":{"notice":"Returns the current time delay for regular staking operations"},"getSizeOfAddressHistory(address)":{"notice":"Returns the number of transactions in an address\'s staking history"},"getTimeToUserUnlockFullUnstakingTime(address)":{"notice":"Calculates when a user can perform full unstaking (withdraw all tokens)"},"getTimeToUserUnlockStakingTime(address)":{"notice":"Calculates when a user can stake again after unstaking"},"getUserAmountStaked(address)":{"notice":"Returns the current amount of staking tokens staked by a user"},"gimmeYiel(address)":{"notice":"Allows users to claim their staking rewards (yield)"},"goldenStaking(bool,uint256,bytes)":{"notice":"Unlimited staking/unstaking for the Golden Fisher."},"initializeSystemContracts(address,address)":{"notice":"Configures system contract integrations once."},"prepareChangeAllowPresaleStaking()":{"notice":"Prepares to toggle the presale staking flag with 1-day time delay"},"prepareChangeAllowPublicStaking()":{"notice":"Prepares to toggle the public staking flag with 1-day time delay"},"prepareServiceStaking(uint256)":{"notice":"Step 1: Prepare service (contract) staking"},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{"notice":"Proposes a new time delay for full unstaking operations with 1-day time delay"},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"White-listed presale staking (max 2 tokens per user)."},"priceOfStaking()":{"notice":"Returns the fixed price of one staking token in Principal Tokens"},"proposeAdmin(address)":{"notice":"Proposes a new admin address with 1-day time delay"},"proposeEstimator(address)":{"notice":"Proposes a new estimator contract address with 1-day time delay"},"proposeGoldenFisher(address)":{"notice":"Proposes a new golden fisher address with 1-day time delay"},"proposeSetSecondsToUnlockStaking(uint256)":{"notice":"Proposes a new time delay for staking after unstaking with 1-day time delay"},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{"notice":"Public staking open to any user when enabled."},"rejectProposalAdmin()":{"notice":"Rejects the current admin proposal"},"rejectProposalEstimator()":{"notice":"Rejects the current estimator contract proposal"},"rejectProposalGoldenFisher()":{"notice":"Rejects the current golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{"notice":"Rejects the current staking unlock time proposal"},"serviceUnstaking(uint256)":{"notice":"Allows a service/contract account to unstake their staking tokens"}},"notice":"/$$$$$$ /$$ /$$ /$$ /$$__ $$| $$ | $$ |__/ | $$ \\\\__/$$$$$$ /$$$$$$| $$ /$$/$$/$$$$$$$ /$$$$$$ | $$$$$|_ $$_/ |____ $| $$ /$$| $| $$__ $$/$$__ $$ \\\\____ $$| $$ /$$$$$$| $$$$$$/| $| $$ \\\\ $| $$ \\\\ $$ /$$ \\\\ $$| $$ /$$/$$__ $| $$_ $$| $| $$ | $| $$ | $$ | $$$$$$/| $$$$| $$$$$$| $$ \\\\ $| $| $$ | $| $$$$$$$ \\\\______/ \\\\___/ \\\\_______|__/ \\\\__|__|__/ |__/\\\\____ $$ /$$ \\\\ $$ | $$$$$$/ \\\\______/ \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551\\u255a\\u2588\\u2588\\u2557\\u2588\\u2588\\u2551\\u2588\\u2588\\u2554\\u2550\\u2550\\u255d \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u2588\\u2588\\u2551 \\u255a\\u2588\\u2588\\u2588\\u2588\\u2551\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2588\\u2557 \\u2588\\u2588\\u2551 \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u255d \\u255a\\u2550\\u2550\\u2550\\u255d\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d \\u255a\\u2550\\u255d Validator staking mechanism for the EVVM ecosystem.","version":1}},"settings":{"compilationTarget":{"src/contracts/staking/Staking.sol":"Staking"},"evmVersion":"prague","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":300},"remappings":[":@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/",":@evvm/testnet-contracts/=src/",":@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/",":@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/",":@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/",":@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/",":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",":@solady/=lib/solady/src/",":LayerZero-v2/=lib/LayerZero-v2/",":axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/",":devtools/=lib/devtools/packages/toolbox-foundry/src/",":ds-test/=lib/forge-std/lib/ds-test/src/",":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",":forge-std/=lib/forge-std/src/",":openzeppelin-contracts/=lib/openzeppelin-contracts/",":solady/=lib/solady/src/",":solidity-bytes-utils/=lib/solidity-bytes-utils/",":v3-core/=lib/v3-core/contracts/",":v3-periphery/=lib/v3-periphery/contracts/"],"viaIR":true},"sources":{"src/contracts/core/Core.sol":{"keccak256":"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"]},"src/contracts/core/lib/CoreStorage.sol":{"keccak256":"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"]},"src/contracts/nameService/NameService.sol":{"keccak256":"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"]},"src/contracts/nameService/lib/IdentityValidation.sol":{"keccak256":"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"]},"src/contracts/staking/Estimator.sol":{"keccak256":"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"]},"src/contracts/staking/Staking.sol":{"keccak256":"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"]},"src/interfaces/IUserValidator.sol":{"keccak256":"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"]},"src/library/errors/CoreError.sol":{"keccak256":"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"]},"src/library/errors/NameServiceError.sol":{"keccak256":"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"]},"src/library/errors/StakingError.sol":{"keccak256":"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"]},"src/library/primitives/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","license":"MIT","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"]},"src/library/primitives/SignatureRecover.sol":{"keccak256":"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"]},"src/library/structs/CoreStructs.sol":{"keccak256":"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"]},"src/library/structs/NameServiceStructs.sol":{"keccak256":"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"]},"src/library/structs/StakingStructs.sol":{"keccak256":"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"]},"src/library/utils/AdvancedStrings.sol":{"keccak256":"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"]},"src/library/utils/CAUtils.sol":{"keccak256":"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"]},"src/library/utils/SignatureUtil.sol":{"keccak256":"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"]},"src/library/utils/governance/ProposalStructs.sol":{"keccak256":"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"]},"src/library/utils/signature/CoreHashUtils.sol":{"keccak256":"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"]},"src/library/utils/signature/NameServiceHashUtils.sol":{"keccak256":"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"]},"src/library/utils/signature/StakingHashUtils.sol":{"keccak256":"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65","license":"EVVM-NONCOMMERCIAL-1.0","urls":["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"]}},"version":1}',metadata:{compiler:{version:"0.8.33+commit.64118f21"},language:"Solidity",output:{abi:[{inputs:[{internalType:"address",name:"initialAdmin",type:"address"},{internalType:"address",name:"initialGoldenFisher",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],type:"error",name:"AddressIsNotAService"},{inputs:[],type:"error",name:"AddressMismatch"},{inputs:[],type:"error",name:"AddressMustWaitToFullUnstake"},{inputs:[],type:"error",name:"AddressMustWaitToStakeAgain"},{inputs:[],type:"error",name:"LimitPresaleStakersExceeded"},{inputs:[],type:"error",name:"PresaleStakingDisabled"},{inputs:[],type:"error",name:"PublicStakingDisabled"},{inputs:[],type:"error",name:"SenderIsNotAdmin"},{inputs:[],type:"error",name:"SenderIsNotGoldenFisher"},{inputs:[],type:"error",name:"SenderIsNotProposedAdmin"},{inputs:[{internalType:"uint256",name:"requiredAmount",type:"uint256"}],type:"error",name:"ServiceDoesNotFulfillCorrectStakingAmount"},{inputs:[],type:"error",name:"ServiceDoesNotStakeInSameTx"},{inputs:[],type:"error",name:"TimeToAcceptProposalNotReached"},{inputs:[],type:"error",name:"UserIsNotPresaleStaker"},{inputs:[],type:"error",name:"UserPresaleStakerLimitExceeded"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptNewAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptNewEstimator"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptNewGoldenFisher"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"acceptSetSecondsToUnlockStaking"},{inputs:[{internalType:"address",name:"_staker",type:"address"}],stateMutability:"nonpayable",type:"function",name:"addPresaleStaker"},{inputs:[{internalType:"address[]",name:"_stakers",type:"address[]"}],stateMutability:"nonpayable",type:"function",name:"addPresaleStakers"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelChangeAllowPresaleStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelChangeAllowPublicStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"cancelSetSecondsToUnllockFullUnstaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmChangeAllowPresaleStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmChangeAllowPublicStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmServiceStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"confirmSetSecondsToUnllockFullUnstaking"},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getAddressHistory",outputs:[{internalType:"struct StakingStructs.HistoryMetadata[]",name:"",type:"tuple[]",components:[{internalType:"bytes32",name:"transactionType",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"}]}]},{inputs:[{internalType:"address",name:"_account",type:"address"},{internalType:"uint256",name:"_index",type:"uint256"}],stateMutability:"view",type:"function",name:"getAddressHistoryByIndex",outputs:[{internalType:"struct StakingStructs.HistoryMetadata",name:"",type:"tuple",components:[{internalType:"bytes32",name:"transactionType",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"},{internalType:"uint256",name:"totalStaked",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAllowPresaleStaking",outputs:[{internalType:"struct ProposalStructs.BoolTypeProposal",name:"",type:"tuple",components:[{internalType:"bool",name:"flag",type:"bool"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getAllowPublicStaking",outputs:[{internalType:"struct ProposalStructs.BoolTypeProposal",name:"",type:"tuple",components:[{internalType:"bool",name:"flag",type:"bool"},{internalType:"uint256",name:"timeToAccept",type:"uint256"}]}]},{inputs:[],stateMutability:"view",type:"function",name:"getCoreAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEstimatorAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEstimatorProposal",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getEvvmID",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getGoldenFisher",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getGoldenFisherProposal",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function",name:"getIfUsedAsyncNonce",outputs:[{internalType:"bool",name:"",type:"bool"}]},{inputs:[],stateMutability:"view",type:"function",name:"getMateAddress",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[],stateMutability:"view",type:"function",name:"getOwner",outputs:[{internalType:"address",name:"",type:"address"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getPresaleStaker",outputs:[{internalType:"bool",name:"",type:"bool"},{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getPresaleStakerCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getSecondsToUnlockFullUnstaking",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[],stateMutability:"view",type:"function",name:"getSecondsToUnlockStaking",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getSizeOfAddressHistory",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getTimeToUserUnlockFullUnstakingTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getTimeToUserUnlockStakingTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_account",type:"address"}],stateMutability:"view",type:"function",name:"getUserAmountStaked",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"user",type:"address"}],stateMutability:"nonpayable",type:"function",name:"gimmeYiel",outputs:[{internalType:"bytes32",name:"epochAnswer",type:"bytes32"},{internalType:"address",name:"tokenToBeRewarded",type:"address"},{internalType:"uint256",name:"amountTotalToBeRewarded",type:"uint256"},{internalType:"uint256",name:"idToOverwriteUserHistory",type:"uint256"},{internalType:"uint256",name:"timestampToBeOverwritten",type:"uint256"}]},{inputs:[{internalType:"bool",name:"isStaking",type:"bool"},{internalType:"uint256",name:"amountOfStaking",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"goldenStaking"},{inputs:[{internalType:"address",name:"_estimator",type:"address"},{internalType:"address",name:"_core",type:"address"}],stateMutability:"nonpayable",type:"function",name:"initializeSystemContracts"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"prepareChangeAllowPresaleStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"prepareChangeAllowPublicStaking"},{inputs:[{internalType:"uint256",name:"amountOfStaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"prepareServiceStaking"},{inputs:[{internalType:"uint256",name:"_secondsToUnllockFullUnstaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"prepareSetSecondsToUnllockFullUnstaking"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"isStaking",type:"bool"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"presaleStaking"},{inputs:[],stateMutability:"pure",type:"function",name:"priceOfStaking",outputs:[{internalType:"uint256",name:"",type:"uint256"}]},{inputs:[{internalType:"address",name:"_newAdmin",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeAdmin"},{inputs:[{internalType:"address",name:"_estimator",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeEstimator"},{inputs:[{internalType:"address",name:"_goldenFisher",type:"address"}],stateMutability:"nonpayable",type:"function",name:"proposeGoldenFisher"},{inputs:[{internalType:"uint256",name:"_secondsToUnlockStaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"proposeSetSecondsToUnlockStaking"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"bool",name:"isStaking",type:"bool"},{internalType:"uint256",name:"amountOfStaking",type:"uint256"},{internalType:"address",name:"senderExecutor",type:"address"},{internalType:"address",name:"originExecutor",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"priorityFeePay",type:"uint256"},{internalType:"uint256",name:"noncePay",type:"uint256"},{internalType:"bytes",name:"signaturePay",type:"bytes"}],stateMutability:"nonpayable",type:"function",name:"publicStaking"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalAdmin"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalEstimator"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalGoldenFisher"},{inputs:[],stateMutability:"nonpayable",type:"function",name:"rejectProposalSetSecondsToUnlockStaking"},{inputs:[{internalType:"uint256",name:"amountOfStaking",type:"uint256"}],stateMutability:"nonpayable",type:"function",name:"serviceUnstaking"}],devdoc:{kind:"dev",methods:{"acceptNewAdmin()":{details:"Can only be called by the proposed admin after the time delay has passed"},"acceptNewEstimator()":{details:"Can only be called by the current admin after the 1-day time delay"},"acceptNewGoldenFisher()":{details:"Can only be called by the current admin after the 1-day time delay"},"acceptSetSecondsToUnlockStaking()":{details:"Can only be called by the current admin after the 1-day time delay"},"addPresaleStaker(address)":{details:"Only admin can call this function, limited to 800 presale stakers total",params:{_staker:"Address to be added to the presale staker list"}},"addPresaleStakers(address[])":{details:"Only admin can call this function, limited to 800 presale stakers total",params:{_stakers:"Array of addresses to be added to the presale staker list"}},"cancelChangeAllowPresaleStaking()":{details:"Only current admin can cancel the pending presale staking toggle"},"cancelChangeAllowPublicStaking()":{details:"Only current admin can cancel the pending public staking toggle"},"cancelSetSecondsToUnllockFullUnstaking()":{details:"Only current admin can cancel the pending full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{details:"Toggles between enabled/disabled state for presale staking after 1-day delay"},"confirmChangeAllowPublicStaking()":{details:"Toggles between enabled/disabled state for public staking after 1-day delay"},"confirmServiceStaking()":{details:"Validates payment and completes atomic staking Validation Checks: 1. Timestamp: Must equal prepareServiceStaking tx - Ensures atomicity (same transaction) - serviceStakingData.timestamp == block.timestamp 2. Caller: Must match prepareServiceStaking caller - serviceStakingData.service == msg.sender - Prevents staking hijacking 3. Payment Amount: Validates exact transfer - Service balance decreased by exact amount - Staking balance increased by exact amount - totalStakingRequired = PRICE_OF_STAKING * amountOfStaking Core.sol Integration: - Validates caPay occurred between steps 1 and 3 - Checks balance deltas via Evvm.getBalance - Token: core.getPrincipalTokenAddress() - Must be exact amount (no overpayment/underpayment) Completion: - Calls stakingBaseProcess on success - Records history with transaction type 0x01 - Updates userHistory with staking event - Service becomes staker (isAddressStaker = true) Error Cases: - ServiceDoesNotStakeInSameTx: timestamp mismatch - AddressMismatch: caller mismatch - ServiceDoesNotFulfillCorrectStakingAmount: payment incorrect Access Control: - onlyCA modifier: Only contracts allowed"},"confirmSetSecondsToUnllockFullUnstaking()":{details:"Can only be called by the current admin after the 1-day time delay"},constructor:{params:{initialAdmin:"System administrator.",initialGoldenFisher:"Authorized Golden Fisher address."}},"getAddressHistory(address)":{details:"Returns an array of all staking transactions and rewards for the user",params:{_account:"Address to query the history for"},returns:{_0:"Array of Structs.HistoryMetadata containing all transactions"}},"getAddressHistoryByIndex(address,uint256)":{details:"Allows accessing individual transactions by index",params:{_account:"Address to query the history for",_index:"Index of the transaction to retrieve (0-based)"},returns:{_0:"Structs.HistoryMetadata of the transaction at the specified index"}},"getAllowPresaleStaking()":{details:"Includes current flag state and any pending changes with timestamps",returns:{_0:"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getAllowPublicStaking()":{details:"Includes current flag state and any pending changes with timestamps",returns:{_0:"ProposalStructs.BoolTypeProposal struct containing flag and timeToAccept"}},"getCoreAddress()":{details:"The EVVM contract handles payments and staker registration",returns:{_0:"Address of the EVVM core contract"}},"getEstimatorAddress()":{details:"The estimator calculates staking rewards and yields",returns:{_0:"Address of the current estimator contract"}},"getEstimatorProposal()":{details:"Shows pending estimator changes in the governance system",returns:{_0:"Address of the proposed estimator contract (zero address if none)"}},"getEvvmID()":{details:"Returns the EvvmID used for distinguishing different EVVM deployments",returns:{_0:"Unique EvvmID string"}},"getGoldenFisher()":{details:"The golden fisher has special staking privileges",returns:{_0:"Address of the current golden fisher"}},"getGoldenFisherProposal()":{details:"Shows pending golden fisher changes in the governance system",returns:{_0:"Address of the proposed golden fisher (zero address if none)"}},"getMateAddress()":{details:"This is a constant address used to represent the principal token",returns:{_0:"Address representing the Principal Token (0x...0001)"}},"getOwner()":{details:"The admin has full control over contract parameters and governance",returns:{_0:"Address of the current contract admin"}},"getPresaleStaker(address)":{details:"Shows if an address is allowed for presale and how many tokens they've staked",params:{_account:"Address to check presale status for"},returns:{_0:"isAllow True if the address is allowed for presale staking",_1:"stakingAmount Number of staking tokens currently staked in presale (max 2)"}},"getPresaleStakerCount()":{details:"Maximum allowed is 800 presale stakers",returns:{_0:"Current count of presale stakers"}},"getSecondsToUnlockFullUnstaking()":{details:"Full unstaking requires waiting this many seconds (default: 21 days)",returns:{_0:"Number of seconds required to wait for full unstaking"}},"getSecondsToUnlockStaking()":{details:"Users must wait this many seconds after unstaking before they can stake again",returns:{_0:"Number of seconds required to wait between unstaking and staking"}},"getSizeOfAddressHistory(address)":{details:"Useful for pagination or checking if an address has any staking history",params:{_account:"Address to query the history size for"},returns:{_0:"Number of transactions in the history"}},"getTimeToUserUnlockFullUnstakingTime(address)":{details:"Full unstaking requires waiting 21 days after the last time their balance reached 0",params:{_account:"Address to check the unlock time for"},returns:{_0:"Timestamp when full unstaking will be allowed"}},"getTimeToUserUnlockStakingTime(address)":{details:"Users must wait a configurable period after unstaking before they can stake again",params:{_account:"Address to check the unlock time for"},returns:{_0:"Timestamp when staking will be allowed again (0 if already allowed)"}},"getUserAmountStaked(address)":{details:"Returns the total staked amount from the user's most recent transaction",params:{_account:"Address to check the staked amount for"},returns:{_0:"Amount of staking tokens currently staked by the user"}},"gimmeYiel(address)":{details:"Interacts with the Estimator contract to calculate and distribute rewards",params:{user:"Address of the user claiming rewards"},returns:{amountTotalToBeRewarded:"Total amount of rewards to be distributed",epochAnswer:"Epoch identifier for the reward calculation",idToOverwriteUserHistory:"Index in user history to update with reward info",timestampToBeOverwritten:"Timestamp to record for the reward transaction",tokenToBeRewarded:"Address of the token being rewarded"}},"goldenStaking(bool,uint256,bytes)":{details:"Uses sync nonces for coordination with Core operations.",params:{amountOfStaking:"Number of staking tokens.",isStaking:"True to stake, false to unstake.",signaturePay:"Authorization signature for Core payment."}},"initializeSystemContracts(address,address)":{params:{_core:"EVVM Core contract address (payments).",_estimator:"Estimator contract address (yield calculations)."}},"prepareChangeAllowPresaleStaking()":{details:"Initiates the time-delayed process to enable/disable presale staking"},"prepareChangeAllowPublicStaking()":{details:"Initiates the time-delayed process to enable/disable public staking"},"prepareServiceStaking(uint256)":{details:"Records pre-staking state for atomic validation Service Staking Process (ATOMIC - Same TX): 1. prepareServiceStaking: Record balances 2. Evvm.caPay: Transfer Principal Tokens 3. confirmServiceStaking: Validate and complete CRITICAL WARNING: - All 3 steps MUST occur in single transaction - If incomplete, tokens permanently locked - No recovery mechanism for failed process - Service loses tokens if not atomic Metadata Recorded: - service: msg.sender (contract address) - timestamp: block.timestamp (atomicity check) - amountOfStaking: Requested staking tokens - amountServiceBeforeStaking: Service PT balance - amountStakingBeforeStaking: Staking PT balance Core.sol Payment (Step 2): - Service must call Evvm.caPay after this - Transfer: PRICE_OF_STAKING * amountOfStaking - Recipient: address(this) (Staking contract) - Token: Principal Token from Core.sol Access Control: - onlyCA modifier: Only contracts allowed - Checks code size via assembly - EOAs rejected (size == 0)",params:{amountOfStaking:"Number of staking tokens to acquire"}},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{details:"Part of the time-delayed governance system for full unstaking time changes",params:{_secondsToUnllockFullUnstaking:"New number of seconds users must wait for full unstaking (default: 21 days)"}},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{params:{isStaking:"True to stake, false to unstake.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment.",priorityFeePay:"Optional priority fee.",signature:"Participant's authorization signature.",signaturePay:"Signature for the Core payment.",user:"Participant address."}},"priceOfStaking()":{details:"Returns the constant price of 5083 Principal Tokens per staking",returns:{_0:"Price of one staking token in Principal Tokens (with 18 decimals)"}},"proposeAdmin(address)":{details:"Part of the time-delayed governance system for admin changes",params:{_newAdmin:"Address of the proposed new admin"}},"proposeEstimator(address)":{details:"Part of the time-delayed governance system for estimator contract changes",params:{_estimator:"Address of the proposed new estimator contract"}},"proposeGoldenFisher(address)":{details:"Part of the time-delayed governance system for golden fisher changes",params:{_goldenFisher:"Address of the proposed new golden fisher"}},"proposeSetSecondsToUnlockStaking(uint256)":{details:"Part of the time-delayed governance system for staking unlock time changes",params:{_secondsToUnlockStaking:"New number of seconds users must wait after unstaking before staking again"}},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{params:{amountOfStaking:"Number of tokens.",isStaking:"True to stake, false to unstake.",nonce:"Async nonce for signature verification.",noncePay:"Nonce for the Core payment.",priorityFeePay:"Optional priority fee.",signature:"Participant's authorization signature.",signaturePay:"Signature for the Core payment.",user:"Participant address."}},"rejectProposalAdmin()":{details:"Only current admin can reject the pending proposal"},"rejectProposalEstimator()":{details:"Only current admin can reject the pending estimator contract proposal"},"rejectProposalGoldenFisher()":{details:"Only current admin can reject the pending golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{details:"Only current admin can reject the pending staking unlock time proposal"},"serviceUnstaking(uint256)":{details:"Simplified unstaking process for services - no signature or payment required, just direct unstakingThe service will receive Principal Tokens equal to: amountOfStaking * PRICE_OF_STAKINGSubject to the same time locks as regular unstaking (21 days for full unstake)Only callable by contract accounts (services), not EOAs",params:{amountOfStaking:"Amount of staking tokens to unstake"}}},version:1},userdoc:{kind:"user",methods:{"acceptNewAdmin()":{notice:"Accepts the admin proposal and becomes the new admin"},"acceptNewEstimator()":{notice:"Accepts the estimator contract proposal after the time delay has passed"},"acceptNewGoldenFisher()":{notice:"Accepts the golden fisher proposal after the time delay has passed"},"acceptSetSecondsToUnlockStaking()":{notice:"Accepts the staking unlock time proposal after the time delay has passed"},"addPresaleStaker(address)":{notice:"Adds a single address to the presale staker list"},"addPresaleStakers(address[])":{notice:"Adds multiple addresses to the presale staker list in batch"},"cancelChangeAllowPresaleStaking()":{notice:"Cancels the pending presale staking flag change"},"cancelChangeAllowPublicStaking()":{notice:"Cancels the pending public staking flag change"},"cancelSetSecondsToUnllockFullUnstaking()":{notice:"Cancels the current full unstaking time proposal"},"confirmChangeAllowPresaleStaking()":{notice:"Confirms and executes the presale staking flag toggle after the time delay has passed"},"confirmChangeAllowPublicStaking()":{notice:"Confirms and executes the public staking flag toggle after the time delay has passed"},"confirmServiceStaking()":{notice:"Step 3: Confirm service staking after payment"},"confirmSetSecondsToUnllockFullUnstaking()":{notice:"Confirms the full unstaking time proposal after the time delay has passed"},constructor:{notice:"Initializes the staking contract."},"getAddressHistory(address)":{notice:"Returns the complete staking history for an address"},"getAddressHistoryByIndex(address,uint256)":{notice:"Returns a specific transaction from an address's staking history"},"getAllowPresaleStaking()":{notice:"Returns the complete presale staking configuration and status"},"getAllowPublicStaking()":{notice:"Returns the complete public staking configuration and status"},"getCoreAddress()":{notice:"Returns the address of the EVVM core contract"},"getEstimatorAddress()":{notice:"Returns the current estimator contract address"},"getEstimatorProposal()":{notice:"Returns the proposed new estimator contract address (if any)"},"getEvvmID()":{notice:"Gets the unique identifier string for this EVVM instance"},"getGoldenFisher()":{notice:"Returns the current golden fisher address"},"getGoldenFisherProposal()":{notice:"Returns the proposed new golden fisher address (if any)"},"getMateAddress()":{notice:"Returns the address representing the Principal Token"},"getOwner()":{notice:"Returns the current admin/owner address"},"getPresaleStaker(address)":{notice:"Returns presale staker information for a given address"},"getPresaleStakerCount()":{notice:"Returns the current number of registered presale stakers"},"getSecondsToUnlockFullUnstaking()":{notice:"Returns the current time delay for full unstaking operations"},"getSecondsToUnlockStaking()":{notice:"Returns the current time delay for regular staking operations"},"getSizeOfAddressHistory(address)":{notice:"Returns the number of transactions in an address's staking history"},"getTimeToUserUnlockFullUnstakingTime(address)":{notice:"Calculates when a user can perform full unstaking (withdraw all tokens)"},"getTimeToUserUnlockStakingTime(address)":{notice:"Calculates when a user can stake again after unstaking"},"getUserAmountStaked(address)":{notice:"Returns the current amount of staking tokens staked by a user"},"gimmeYiel(address)":{notice:"Allows users to claim their staking rewards (yield)"},"goldenStaking(bool,uint256,bytes)":{notice:"Unlimited staking/unstaking for the Golden Fisher."},"initializeSystemContracts(address,address)":{notice:"Configures system contract integrations once."},"prepareChangeAllowPresaleStaking()":{notice:"Prepares to toggle the presale staking flag with 1-day time delay"},"prepareChangeAllowPublicStaking()":{notice:"Prepares to toggle the public staking flag with 1-day time delay"},"prepareServiceStaking(uint256)":{notice:"Step 1: Prepare service (contract) staking"},"prepareSetSecondsToUnllockFullUnstaking(uint256)":{notice:"Proposes a new time delay for full unstaking operations with 1-day time delay"},"presaleStaking(address,bool,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"White-listed presale staking (max 2 tokens per user)."},"priceOfStaking()":{notice:"Returns the fixed price of one staking token in Principal Tokens"},"proposeAdmin(address)":{notice:"Proposes a new admin address with 1-day time delay"},"proposeEstimator(address)":{notice:"Proposes a new estimator contract address with 1-day time delay"},"proposeGoldenFisher(address)":{notice:"Proposes a new golden fisher address with 1-day time delay"},"proposeSetSecondsToUnlockStaking(uint256)":{notice:"Proposes a new time delay for staking after unstaking with 1-day time delay"},"publicStaking(address,bool,uint256,address,address,uint256,bytes,uint256,uint256,bytes)":{notice:"Public staking open to any user when enabled."},"rejectProposalAdmin()":{notice:"Rejects the current admin proposal"},"rejectProposalEstimator()":{notice:"Rejects the current estimator contract proposal"},"rejectProposalGoldenFisher()":{notice:"Rejects the current golden fisher proposal"},"rejectProposalSetSecondsToUnlockStaking()":{notice:"Rejects the current staking unlock time proposal"},"serviceUnstaking(uint256)":{notice:"Allows a service/contract account to unstake their staking tokens"}},version:1}},settings:{remappings:["@axelar-network/axelar-gmp-sdk-solidity/contracts/=lib/axelar-gmp-sdk-solidity/contracts/","@evvm/testnet-contracts/=src/","@hyperlane-xyz/core/=node_modules/@hyperlane-xyz/core/","@layerzerolabs/lz-evm-messagelib-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/messagelib/contracts/","@layerzerolabs/lz-evm-protocol-v2/contracts/=lib/LayerZero-v2/packages/layerzero-v2/evm/protocol/contracts/","@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@solady/=lib/solady/src/","LayerZero-v2/=lib/LayerZero-v2/","axelar-gmp-sdk-solidity/=lib/axelar-gmp-sdk-solidity/contracts/","devtools/=lib/devtools/packages/toolbox-foundry/src/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts/=lib/openzeppelin-contracts/","solady/=lib/solady/src/","solidity-bytes-utils/=lib/solidity-bytes-utils/","v3-core/=lib/v3-core/contracts/","v3-periphery/=lib/v3-periphery/contracts/"],optimizer:{enabled:!0,runs:300},metadata:{bytecodeHash:"ipfs"},compilationTarget:{"src/contracts/staking/Staking.sol":"Staking"},evmVersion:"prague",libraries:{},viaIR:!0},sources:{"src/contracts/core/Core.sol":{keccak256:"0x0cb4e75270c5d3188102e7217662784c7c611cffd54cdcc8a0553c6def011d53",urls:["bzz-raw://ed2cb267e00e27f46f8a105dd5696c122646d152925128e4e03826791dfc970f","dweb:/ipfs/QmV7MfGba2ZP9EHwZafAJtwJCKUDVGQwTEKYTzurmBvkrE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/core/lib/CoreStorage.sol":{keccak256:"0x2443478c6f575ec22e08a77d5091ce3a4bb65b769312d3edab4777c87bb40d97",urls:["bzz-raw://371a5f77cc708d2f7eeb97c2fdafd78f4ba1ad8b4ee229fbffbb660225443a4f","dweb:/ipfs/QmVUecw9XVAx8X8obje4oZMctm7ZmZ3NkSSGqp1mHJTSwR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/NameService.sol":{keccak256:"0xcccf02968b7e5ad1028db839b446fa635b84eafcc636e1fc25a93d13dde50867",urls:["bzz-raw://4b10283ca0f5d21ee79596569a3981a59d0310b1fa53f2f36b13033f369ccfb1","dweb:/ipfs/QmQRGbGpCp3mTvW6gbkK2o77GDQEQM1TtvZpyb7D8xMWgJ"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/nameService/lib/IdentityValidation.sol":{keccak256:"0x5d73198283c5d577211f204d61f87149f2854672b40a85112aa0ff49f16f9759",urls:["bzz-raw://2238026218926340fb293240ad2225b01aab5f1ad213a73c93f0b6131cbcbf70","dweb:/ipfs/QmYhzzSu3PSTJma2oidsT79FDNhHmNdipJ6bWodArzJ3cq"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Estimator.sol":{keccak256:"0x217e04a8f4cf77967b484bae881896f662e90ba6d4a322154ac725252ce9a057",urls:["bzz-raw://bca613296243383e1f09a2f030eae37eb435580c279312e6e260654a2ab89972","dweb:/ipfs/QmQjuizJc25rUTYKyiK2Cfaj4Mk6pftE1ztx5EvcxnE2c6"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/contracts/staking/Staking.sol":{keccak256:"0xb1724f0664d659b0892f71d3309a44cee838ce48b71002c55f580b7e7c89255a",urls:["bzz-raw://2a8fa2ce2b4d2acd019a2b5ceabe3d958a56031bb9198924416bdf69fa4c5880","dweb:/ipfs/QmVvg4aSUub1DVpEJ8MGaKfDpQZg9uxXx4ABMdSKXJh27k"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/interfaces/IUserValidator.sol":{keccak256:"0xf5f0c5052e5ad921d63a424c8350784d2f9dd38db6deaea3dc9c9583c57f795b",urls:["bzz-raw://132c799bbe307e9178afffc4fc3ca04720e69c45edd46110778a74a587086681","dweb:/ipfs/QmaHhu87wiJCJaQYeVEGDFLajrwTP53h4aNUrkZMK4wp3H"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/CoreError.sol":{keccak256:"0x3539e2297a292b0f498e39d2a9341e906f203877d2e0f27bf68c571e722f8250",urls:["bzz-raw://500d8379253751331ea6bd48b9bacf63a93794f82dc92825806381a68e469cc1","dweb:/ipfs/Qma7NuKc53cnaNjn1o6byT1pFAa2GkaAcgQoNFrGd41nsR"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/NameServiceError.sol":{keccak256:"0xe41e8309c7ff78efa72e547dd2dbb2d4d3657497d1963b9f2dd83c1179fc5205",urls:["bzz-raw://67f5f318efd40c455b4c767bcfd3456855bfda98e3ab3ef5168db9b1c83739d8","dweb:/ipfs/QmbGZ8w8vu2B7nwccYNy4XW7ghyWmZx2ntmLDRR4uX4UHX"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/errors/StakingError.sol":{keccak256:"0x05b62f23ed637f0eb16cecca52461e95836845d48a5a777d135e9d978dd16af2",urls:["bzz-raw://19bc4758b99c36fa5edbff08915b25603a73567ea6c764764b06b49fa95469cd","dweb:/ipfs/Qme3GZtTC7n7wRHE2yrJeVLaFZ7bWa291kFtZ7JgjYvTrt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/primitives/Math.sol":{keccak256:"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d",urls:["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],license:"MIT"},"src/library/primitives/SignatureRecover.sol":{keccak256:"0xb48e0e09f64f74b00849e2938cb01c9ce61e8b4a66d7eb63258abc8aa2407919",urls:["bzz-raw://3961bbe51b8feb4a3e9d7c7d4c80f7123d6ab94b0dc1fa6d6eb3f477023eedb2","dweb:/ipfs/QmfT6R87SxWsmDDF2DuuyGpmptnoLrqNTrmus4e95HsVfu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/CoreStructs.sol":{keccak256:"0xe27210fac41c2f6e55486e3de546c63d6e555219a3c6887e2c04640e23b52e9f",urls:["bzz-raw://9e1a095b7687b3d2ccf6e75afac825c8e788c34253a3b8bd1deaaaa16bbbc813","dweb:/ipfs/QmNfWDVFTLFZyJeiwHsLb5Jb3T5GEMacTiiMyYbyJxtP4w"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/NameServiceStructs.sol":{keccak256:"0xbda8826d933bdf5f627ddab90844cdede4b6025e6dad4a52731352171345d54b",urls:["bzz-raw://a884bc520c6a9cad71d06a998da0e7c491727cffd005329ba97801bf1e34778a","dweb:/ipfs/QmfJjeamQPcTpRepBqSKr9P7BQSn223TymPGnnNrwDdWdt"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/structs/StakingStructs.sol":{keccak256:"0x3f4e2d5127bd704c2ab028a8a49387c0868b1fb5ac60bc87a8dab8f9cce77aaf",urls:["bzz-raw://e5d302d2516076c2548fb629a3d45911f8ba3d4679c826c4fd5174d1aa933e87","dweb:/ipfs/QmYD89GyXzRPoUXfLzBa3E6bvLvsZcwAqFf75Ffs27CoEx"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/AdvancedStrings.sol":{keccak256:"0x258011140f420212c279d4033ce61f20623294af3eb4e651fe6cf93cfbbcdcfd",urls:["bzz-raw://589d91f6d8b79a57d389f408958a472ce717fb88e46b5f3d2e39a1f6d7142fb4","dweb:/ipfs/QmYHMwpaUXg4JN44B3XcqDmkirj9f42n3cLupbgRFG9zmn"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/CAUtils.sol":{keccak256:"0x2faa485d23ec4cb56e7912eec2fd56300a5300ca1418921f89937a202cd29f19",urls:["bzz-raw://31df82c07cea1c7147721e73296d80ee6d6d7679f51713fdae265618fbb2dc41","dweb:/ipfs/QmaDxpFE6uesxP9S86TBd7RESuwd5A2yWjB5USu6DhLkJu"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/SignatureUtil.sol":{keccak256:"0x78e128fab9e5d10d3f9270368e79d3d78db408e56585e7437ab8aa2c9adc37dd",urls:["bzz-raw://e96fed79526c65056d1586f51ae5493fa26cb525db67d7432fa8f41b9edfa2e4","dweb:/ipfs/QmbukFg1RyCen3sKAYeQ7nDQewGtj11fgEDCJ9hDYnMRMh"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/governance/ProposalStructs.sol":{keccak256:"0x9f427e091057f364477c6425ae036086dc7567f76df3940b101adf9565b967a6",urls:["bzz-raw://d1febfec8d434008d21c81a30497bc78a9dbfca58c03d5fe0f7350d05a23aefb","dweb:/ipfs/QmaP4t25bGyQpjYVSwjrqbPR6TuoVCyd4shfidEBifzrvg"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/CoreHashUtils.sol":{keccak256:"0x5fd1aaf596d92df480bba630e701fd2a25106c3b8b4ac4493aed7603f7aa4cd5",urls:["bzz-raw://6bdc3d3f356a8ab0ec6c837f79321ffa96b45ed705d42d89acb2604a9039ffd3","dweb:/ipfs/QmdzB2sAoL54cNiK2SF8i71sesi5vgvF4vS8Jrqbrj2vcE"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/NameServiceHashUtils.sol":{keccak256:"0x3ba91a0f30b963ecb0a39e8df1ecbb84d97ae1c8e94e88f049babcfc03705983",urls:["bzz-raw://61c87dac019111f63c7bcd1530ed7ec50b3ab2e0b5ca1c5c748a4404dec2dda9","dweb:/ipfs/Qmd9nXdbBL85CBy7UdcrCWU4knJuo6nxQnHrNWTZBvtwfe"],license:"EVVM-NONCOMMERCIAL-1.0"},"src/library/utils/signature/StakingHashUtils.sol":{keccak256:"0x0c51e6e9f6494afff73ba8dc0f437dc331cebc0c39e62537056ecb6f58699f65",urls:["bzz-raw://18358bae9ae2a4623c9e507a6665e8f7f4072606ef6afe660fc0258624a1a08b","dweb:/ipfs/QmWqiwsxfk4nQUMxozbGCkqydjpxViTR2AnLzURejFLhYT"],license:"EVVM-NONCOMMERCIAL-1.0"}},version:1},id:68},Cg=hk.abi,ck=mk.abi,bk=yk.abi,pk=lk.abi,ok=uk.abi;class qq extends oq{constructor(Y){super({...Y,abi:ck})}async getNextCurrentSyncNonce(){return this.view("getNextCurrentSyncNonce",[this.signer.address])}async getIfUsedAsyncNonce(Y){return this.view("getIfUsedAsyncNonce",[this.signer.address,Y])}async getBalance(Y,J){return this.view("getBalance",[Y,J])}async pay({toAddress:Y=j0,toIdentity:J="",tokenAddress:Q,amount:q,priorityFee:X,senderExecutor:G=j0,originExecutor:$=j0,nonce:W,isAsyncExec:j}){let K=await this.getEvvmID(),z="pay";if(Y!=j0&&J!="")throw Error("Can't call Core.pay with both toAddress and toIdentity");let M=this.buildHashPayload("pay",{to_address:Y,to_identity:J,token:Q,amount:q,priorityFee:X}),N=this.buildMessageToSign(K,G,M,$,W,j),O=await this.signer.signMessage(N);return new l0(this,K,"pay",{from:this.signer.address,to_address:Y,to_identity:J,token:Q,amount:q,priorityFee:X,senderExecutor:G,originExecutor:$,nonce:W,isAsyncExec:j,signature:O})}async dispersePay({toData:Y,tokenAddress:J,amount:Q,priorityFee:q,senderExecutor:X=j0,originExecutor:G=j0,nonce:$,isAsyncExec:W}){let j=await this.getEvvmID(),K="dispersePay",z=this.buildHashPayload("dispersePay",{toData:Y.map((O,D)=>{if(O.toAddress&&O.toIdentity)throw Error(`Error, cannot provide both toAddress and toIdentity (toData at index ${D})`);return[O.amount,O.toAddress?O.toAddress:j0,O.toIdentity?O.toIdentity:""]}),token:J,amount:Q,priorityFee:q}),M=this.buildMessageToSign(j,X,z,G,$,W),N=await this.signer.signMessage(M);return new l0(this,j,"dispersePay",{from:this.signer.address,toData:Y.map(({amount:O,toAddress:D,toIdentity:U})=>({amount:O,to_address:D?D:j0,to_identity:U?U:""})),token:J,amount:Q,priorityFee:q,senderExecutor:X,originExecutor:G,nonce:$,isAsyncExec:W,signature:N})}}r0([s0],qq.prototype,"pay",null),r0([s0],qq.prototype,"dispersePay",null);class d8 extends oq{constructor(Y){super({...Y,abi:bk})}async makeOffer({username:Y,expirationDate:J,amount:Q,senderExecutor:q=j0,originExecutor:X=j0,nonce:G,evvmSignedAction:$}){let W=await this.getEvvmID(),j="makeOffer",K=this.buildHashPayload("makeOffer",{username:Y,amount:Q,expirationDate:J}),z=this.buildMessageToSign(W,q,K,X,G,!0),M=await this.signer.signMessage(z);return new l0(this,W,"makeOffer",{user:this.signer.address,username:Y,expirationDate:J,amount:Q,senderExecutor:q,originExecutor:X,nonce:G,signature:M,priorityFeePay:$?.data.priorityFee,noncePay:$?.data.nonce,signaturePay:$?.data.signature})}async withdrawOffer({username:Y,offerID:J,senderExecutor:Q=j0,originExecutor:q=j0,nonce:X,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("withdrawOffer",{username:Y,offerID:J}),j=this.buildMessageToSign($,Q,W,q,X,!0),K=await this.signer.signMessage(j);return new l0(this,$,"withdrawOffer",{user:this.signer.address,username:Y,offerID:J,senderExecutor:Q,originExecutor:q,nonce:X,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async acceptOffer({username:Y,offerID:J,senderExecutor:Q=j0,originExecutor:q=j0,nonce:X,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("acceptOffer",{username:Y,offerID:J}),j=this.buildMessageToSign($,Q,W,q,X,!0),K=await this.signer.signMessage(j);return new l0(this,$,"acceptOffer",{user:this.signer.address,username:Y,offerID:J,senderExecutor:Q,originExecutor:q,nonce:X,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async preRegistrationUsername({hashPreRegisteredUsername:Y,senderExecutor:J=j0,originExecutor:Q=j0,nonce:q,evvmSignedAction:X}){let G=await this.getEvvmID(),$=this.buildHashPayload("preRegistrationUsername",{hashPreRegisteredUsername:Y}),W=this.buildMessageToSign(G,J,$,Q,q,!0),j=await this.signer.signMessage(W);return new l0(this,G,"preRegistrationUsername",{user:this.signer.address,hashPreRegisteredUsername:Y,senderExecutor:J,originExecutor:Q,nonce:q,signature:j,priorityFeePay:X?.data.priorityFee,noncePay:X?.data.nonce,signaturePay:X?.data.signature})}async registrationUsername({username:Y,lockNumber:J,senderExecutor:Q=j0,originExecutor:q=j0,nonce:X,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("registrationUsername",{username:Y,lockNumber:J}),j=this.buildMessageToSign($,Q,W,q,X,!0),K=await this.signer.signMessage(j);return new l0(this,$,"registrationUsername",{user:this.signer.address,username:Y,lockNumber:J,senderExecutor:Q,originExecutor:q,nonce:X,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async addCustomMetadata({identity:Y,value:J,senderExecutor:Q=j0,originExecutor:q=j0,nonce:X,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("addCustomMetadata",{identity:Y,value:J}),j=this.buildMessageToSign($,Q,W,q,X,!0),K=await this.signer.signMessage(j);return new l0(this,$,"addCustomMetadata",{user:this.signer.address,identity:Y,value:J,senderExecutor:Q,originExecutor:q,nonce:X,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async removeCustomMetadata({identity:Y,key:J,senderExecutor:Q=j0,originExecutor:q=j0,nonce:X,evvmSignedAction:G}){let $=await this.getEvvmID(),W=this.buildHashPayload("removeCustomMetadata",{identity:Y,key:J}),j=this.buildMessageToSign($,Q,W,q,X,!0),K=await this.signer.signMessage(j);return new l0(this,$,"removeCustomMetadata",{user:this.signer.address,identity:Y,key:J,senderExecutor:Q,originExecutor:q,nonce:X,signature:K,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async flushCustomMetadata({identity:Y,senderExecutor:J=j0,originExecutor:Q=j0,nonce:q,evvmSignedAction:X}){let G=await this.getEvvmID(),$=this.buildHashPayload("flushCustomMetadata",{identity:Y}),W=this.buildMessageToSign(G,J,$,Q,q,!0),j=await this.signer.signMessage(W);return new l0(this,G,"flushCustomMetadata",{user:this.signer.address,identity:Y,senderExecutor:J,originExecutor:Q,nonce:q,signature:j,priorityFeePay:X?.data.priorityFee,noncePay:X?.data.nonce,signaturePay:X?.data.signature})}async flushUsername({username:Y,senderExecutor:J=j0,originExecutor:Q=j0,nonce:q,evvmSignedAction:X}){let G=await this.getEvvmID(),$=this.buildHashPayload("flushUsername",{username:Y}),W=this.buildMessageToSign(G,J,$,Q,q,!0),j=await this.signer.signMessage(W);return new l0(this,G,"flushUsername",{user:this.signer.address,username:Y,senderExecutor:J,originExecutor:Q,nonce:q,signature:j,priorityFeePay:X?.data.priorityFee,noncePay:X?.data.nonce,signaturePay:X?.data.signature})}async renewUsername({username:Y,senderExecutor:J=j0,originExecutor:Q=j0,nonce:q,evvmSignedAction:X}){let G=await this.getEvvmID(),$=this.buildHashPayload("renewUsername",{username:Y}),W=this.buildMessageToSign(G,J,$,Q,q,!0),j=await this.signer.signMessage(W);return new l0(this,G,"renewUsername",{user:this.signer.address,username:Y,senderExecutor:J,originExecutor:Q,nonce:q,signature:j,priorityFeePay:X?.data.priorityFee,noncePay:X?.data.nonce,signaturePay:X?.data.signature})}}r0([s0],d8.prototype,"makeOffer",null),r0([s0],d8.prototype,"withdrawOffer",null),r0([s0],d8.prototype,"acceptOffer",null),r0([s0],d8.prototype,"preRegistrationUsername",null),r0([s0],d8.prototype,"registrationUsername",null),r0([s0],d8.prototype,"addCustomMetadata",null),r0([s0],d8.prototype,"removeCustomMetadata",null),r0([s0],d8.prototype,"flushCustomMetadata",null),r0([s0],d8.prototype,"flushUsername",null),r0([s0],d8.prototype,"renewUsername",null);class mG extends oq{constructor(Y){super({...Y,abi:ok})}async presaleStaking({isStaking:Y,senderExecutor:J=j0,originExecutor:Q=j0,nonce:q,evvmSignedAction:X}){let G=await this.getEvvmID(),$="presaleStaking",W=this.buildHashPayload("presaleStaking",{isStaking:Y,amountOfStaking:1n},{customAbiParams:[{name:"amountOfStaking",type:"uint256",insertAfter:"isStaking"}]}),j=this.buildMessageToSign(G,J,W,Q,q,!0),K=await this.signer.signMessage(j);return new l0(this,G,"presaleStaking",{user:this.signer.address,isStaking:Y,senderExecutor:J,originExecutor:Q,nonce:q,signature:K,priorityFeePay:X?.data.priorityFee,noncePay:X?.data.nonce,signaturePay:X?.data.signature})}async publicStaking({isStaking:Y,amountOfStaking:J,senderExecutor:Q=j0,originExecutor:q=j0,nonce:X,evvmSignedAction:G}){let $=await this.getEvvmID(),W="publicStaking",j=this.buildHashPayload("publicStaking",{isStaking:Y,amountOfStaking:J}),K=this.buildMessageToSign($,Q,j,q,X,!0),z=await this.signer.signMessage(K);return new l0(this,$,"publicStaking",{user:this.signer.address,isStaking:Y,amountOfStaking:J,senderExecutor:Q,originExecutor:q,nonce:X,signature:z,priorityFeePay:G?.data.priorityFee,noncePay:G?.data.nonce,signaturePay:G?.data.signature})}async goldenStaking({isStaking:Y,amountOfStaking:J,evvmSignedAction:Q}){let q=await this.getEvvmID(),X=Q?.data.signature;return new l0(this,q,"goldenStaking",{isStaking:Y,amountOfStaking:J,signaturePay:X})}}r0([s0],mG.prototype,"presaleStaking",null),r0([s0],mG.prototype,"publicStaking",null),r0([s0],mG.prototype,"goldenStaking",null);class uX extends oq{constructor(Y){super({...Y,abi:pk})}async makeOrder({nonce:Y,tokenA:J,tokenB:Q,amountA:q,amountB:X,senderExecutor:G=j0,originExecutor:$=j0,evvmSignedAction:W}){let j=await this.getEvvmID(),K="makeOrder",z=this.buildHashPayload("makeOrder",{tokenA:J,tokenB:Q,amountA:q,amountB:X}),M=this.buildMessageToSign(j,G,z,$,Y,!0),N=await this.signer.signMessage(M);return new l0(this,j,"makeOrder",{user:this.signer.address,tokenA:J,tokenB:Q,amountA:q,amountB:X,senderExecutor:G,originExecutor:$,nonce:Y,signature:N,priorityFeePay:W.data.priorityFee,noncePay:W.data.nonce,signaturePay:W.data.signature})}async cancelOrder({nonce:Y,tokenA:J,tokenB:Q,orderId:q,senderExecutor:X=j0,originExecutor:G=j0,evvmSignedAction:$}){let W=await this.getEvvmID(),j="cancelOrder",K=this.buildHashPayload("cancelOrder",{tokenA:J,tokenB:Q,orderId:q}),z=this.buildMessageToSign(W,X,K,G,Y,!0),M=await this.signer.signMessage(z);return new l0(this,W,"cancelOrder",{user:this.signer.address,tokenA:J,tokenB:Q,orderId:q,senderExecutor:X,originExecutor:G,nonce:Y,signature:M,priorityFeePay:$?.data.priorityFee,noncePay:$?.data.nonce,signaturePay:$?.data.signature})}async dispatchOrder_fillPropotionalFee({nonce:Y,tokenA:J,tokenB:Q,orderId:q,amountOfTokenBToFill:X,senderExecutor:G=j0,originExecutor:$=j0,evvmSignedAction:W}){let j=await this.getEvvmID(),K="dispatchOrder_fillPropotionalFee",z=this.buildHashPayload("dispatchOrder_fillPropotionalFee",{tokenA:J,tokenB:Q,orderId:q}),M=this.buildMessageToSign(j,G,z,$,Y,!0),N=await this.signer.signMessage(M);return new l0(this,j,"dispatchOrder_fillPropotionalFee",{user:this.signer.address,tokenA:J,tokenB:Q,orderId:q,amountOfTokenBToFill:X,senderExecutor:G,originExecutor:$,nonce:Y,signature:N,priorityFeePay:W.data.priorityFee,noncePay:W.data.nonce,signaturePay:W.data.signature})}async dispatchOrder_fillFixedFee({nonce:Y,tokenA:J,tokenB:Q,orderId:q,amountOfTokenBToFill:X,maxFillFixedFee:G,senderExecutor:$=j0,originExecutor:W=j0,evvmSignedAction:j}){let K=await this.getEvvmID(),z="dispatchOrder_fillFixedFee",M=this.buildHashPayload("dispatchOrder_fillFixedFee",{tokenA:J,tokenB:Q,orderId:q}),N=this.buildMessageToSign(K,$,M,W,Y,!0),O=await this.signer.signMessage(N);return new l0(this,K,"dispatchOrder_fillFixedFee",{user:this.signer.address,tokenA:J,tokenB:Q,orderId:q,amountOfTokenBToFill:X,senderExecutor:$,originExecutor:W,nonce:Y,signature:O,maxFillFixedFee:G,priorityFeePay:j.data.priorityFee,noncePay:j.data.nonce,signaturePay:j.data.signature})}}r0([s0],uX.prototype,"makeOrder",null),r0([s0],uX.prototype,"cancelOrder",null),r0([s0],uX.prototype,"dispatchOrder_fillPropotionalFee",null),r0([s0],uX.prototype,"dispatchOrder_fillFixedFee",null);s4();i4();P8();a0();s5();i5();DC();_D();var dk="6.16.0";function rk(Y,J,Q){let q=J.split("|").map((G)=>G.trim());for(let G=0;G<q.length;G++)switch(J){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof Y===J)return}let X=Error(`invalid value for type ${J}`);throw X.code="INVALID_ARGUMENT",X.argument=`value.${Q}`,X.value=Y,X}async function M8(Y){let J=Object.keys(Y);return(await Promise.all(J.map((Q)=>Promise.resolve(Y[Q])))).reduce((Q,q,X)=>{return Q[J[X]]=q,Q},{})}function e(Y,J,Q){for(let q in J){let X=J[q],G=Q?Q[q]:null;if(G)rk(X,G,q);Object.defineProperty(Y,q,{enumerable:!0,value:X,writable:!1})}}function kQ(Y,J){if(Y==null)return"null";if(J==null)J=new Set;if(typeof Y==="object"){if(J.has(Y))return"[Circular]";J.add(Y)}if(Array.isArray(Y))return"[ "+Y.map((Q)=>kQ(Q,J)).join(", ")+" ]";if(Y instanceof Uint8Array){let Q="0x";for(let q=0;q<Y.length;q++)Q+="0123456789abcdef"[Y[q]>>4],Q+="0123456789abcdef"[Y[q]&15];return Q}if(typeof Y==="object"&&typeof Y.toJSON==="function")return kQ(Y.toJSON(),J);switch(typeof Y){case"boolean":case"number":case"symbol":return Y.toString();case"bigint":return BigInt(Y).toString();case"string":return JSON.stringify(Y);case"object":{let Q=Object.keys(Y);return Q.sort(),"{ "+Q.map((q)=>`${kQ(q,J)}: ${kQ(Y[q],J)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function Y8(Y,J){return Y&&Y.code===J}function aK(Y){return Y8(Y,"CALL_EXCEPTION")}function _0(Y,J,Q){let q=Y;{let G=[];if(Q){if("message"in Q||"code"in Q||"name"in Q)throw Error(`value will overwrite populated values: ${kQ(Q)}`);for(let $ in Q){if($==="shortMessage")continue;let W=Q[$];G.push($+"="+kQ(W))}}if(G.push(`code=${J}`),G.push(`version=${dk}`),G.length)Y+=" ("+G.join(", ")+")"}let X;switch(J){case"INVALID_ARGUMENT":X=TypeError(Y);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":X=RangeError(Y);break;default:X=Error(Y)}if(e(X,{code:J}),Q)Object.assign(X,Q);if(X.shortMessage==null)e(X,{shortMessage:q});return X}function _(Y,J,Q,q){if(!Y)throw _0(J,Q,q)}function H(Y,J,Q,q){_(Y,J,"INVALID_ARGUMENT",{argument:Q,value:q})}function R6(Y,J,Q){if(Q==null)Q="";if(Q)Q=": "+Q;_(Y>=J,"missing argument"+Q,"MISSING_ARGUMENT",{count:Y,expectedCount:J}),_(Y<=J,"too many arguments"+Q,"UNEXPECTED_ARGUMENT",{count:Y,expectedCount:J})}var sk=["NFD","NFC","NFKD","NFKC"].reduce((Y,J)=>{try{if("test".normalize(J)!=="test")throw Error("bad");if(J==="NFD"){let Q=String.fromCharCode(233).normalize("NFD"),q=String.fromCharCode(101,769);if(Q!==q)throw Error("broken")}Y.push(J)}catch(Q){}return Y},[]);function ik(Y){_(sk.indexOf(Y)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:Y}})}function R9(Y,J,Q){if(Q==null)Q="";if(Y!==J){let q=Q,X="new";if(Q)q+=".",X+=" "+Q;_(!1,`private constructor; use ${q}from* methods`,"UNSUPPORTED_OPERATION",{operation:X})}}function V6(Y,J,Q){if(Y instanceof Uint8Array){if(Q)return new Uint8Array(Y);return Y}if(typeof Y==="string"&&Y.length%2===0&&Y.match(/^0x[0-9a-f]*$/i)){let q=new Uint8Array((Y.length-2)/2),X=2;for(let G=0;G<q.length;G++)q[G]=parseInt(Y.substring(X,X+2),16),X+=2;return q}H(!1,"invalid BytesLike value",J||"value",Y)}function K0(Y,J){return V6(Y,J,!1)}function q8(Y,J){return V6(Y,J,!0)}function v0(Y,J){if(typeof Y!=="string"||!Y.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof J==="number"&&Y.length!==2+2*J)return!1;if(J===!0&&Y.length%2!==0)return!1;return!0}function eK(Y){return v0(Y,!0)||Y instanceof Uint8Array}var AN="0123456789abcdef";function y(Y){let J=K0(Y),Q="0x";for(let q=0;q<J.length;q++){let X=J[q];Q+=AN[(X&240)>>4]+AN[X&15]}return Q}function F0(Y){return"0x"+Y.map((J)=>y(J).substring(2)).join("")}function TQ(Y){if(v0(Y,!0))return(Y.length-2)/2;return K0(Y).length}function f0(Y,J,Q){let q=K0(Y);if(Q!=null&&Q>q.length)_(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:q,length:q.length,offset:Q});return y(q.slice(J==null?0:J,Q==null?q.length:Q))}function L6(Y,J,Q){let q=K0(Y);_(J>=q.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(q),length:J,offset:J+1});let X=new Uint8Array(J);if(X.fill(0),Q)X.set(q,J-q.length);else X.set(q,0);return y(X)}function uY(Y,J){return L6(Y,J,!0)}function tk(Y,J){return L6(Y,J,!1)}var dq=BigInt(0),n8=BigInt(1),FQ=9007199254740991;function nk(Y,J){let Q=V9(Y,"value"),q=BigInt(W0(J,"width"));if(_(Q>>q===dq,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:Y}),Q>>q-n8){let X=(n8<<q)-n8;return-((~Q&X)+n8)}return Q}function E6(Y,J){let Q=o(Y,"value"),q=BigInt(W0(J,"width")),X=n8<<q-n8;if(Q<dq){Q=-Q,_(Q<=X,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:Y});let G=(n8<<q)-n8;return(~Q&G)+n8}else _(Q<X,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:Y});return Q}function cX(Y,J){let Q=V9(Y,"value"),q=BigInt(W0(J,"bits"));return Q&(n8<<q)-n8}function o(Y,J){switch(typeof Y){case"bigint":return Y;case"number":return H(Number.isInteger(Y),"underflow",J||"value",Y),H(Y>=-FQ&&Y<=FQ,"overflow",J||"value",Y),BigInt(Y);case"string":try{if(Y==="")throw Error("empty string");if(Y[0]==="-"&&Y[1]!=="-")return-BigInt(Y.substring(1));return BigInt(Y)}catch(Q){H(!1,`invalid BigNumberish string: ${Q.message}`,J||"value",Y)}}H(!1,"invalid BigNumberish value",J||"value",Y)}function V9(Y,J){let Q=o(Y,J);return _(Q>=dq,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:Y}),Q}var CN="0123456789abcdef";function Yz(Y){if(Y instanceof Uint8Array){let J="0x0";for(let Q of Y)J+=CN[Q>>4],J+=CN[Q&15];return BigInt(J)}return o(Y)}function W0(Y,J){switch(typeof Y){case"bigint":return H(Y>=-FQ&&Y<=FQ,"overflow",J||"value",Y),Number(Y);case"number":return H(Number.isInteger(Y),"underflow",J||"value",Y),H(Y>=-FQ&&Y<=FQ,"overflow",J||"value",Y),Y;case"string":try{if(Y==="")throw Error("empty string");return W0(BigInt(Y),J)}catch(Q){H(!1,`invalid numeric string: ${Q.message}`,J||"value",Y)}}H(!1,"invalid numeric value",J||"value",Y)}function ak(Y){return W0(Yz(Y))}function UJ(Y,J){let Q=V9(Y,"value"),q=Q.toString(16);if(J==null){if(q.length%2)q="0"+q}else{let X=W0(J,"width");if(X===0&&Q===dq)return"0x";_(X*2>=q.length,`value exceeds width (${X} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:Y});while(q.length<X*2)q="0"+q}return"0x"+q}function p0(Y,J){let Q=V9(Y,"value");if(Q===dq){let G=J!=null?W0(J,"width"):0;return new Uint8Array(G)}let q=Q.toString(16);if(q.length%2)q="0"+q;if(J!=null){let G=W0(J,"width");while(q.length<G*2)q="00"+q;_(G*2===q.length,`value exceeds width (${G} bytes)`,"NUMERIC_FAULT",{operation:"toBeArray",fault:"overflow",value:Y})}let X=new Uint8Array(q.length/2);for(let G=0;G<X.length;G++){let $=G*2;X[G]=parseInt(q.substring($,$+2),16)}return X}function i8(Y){let J=y(eK(Y)?Y:p0(Y)).substring(2);while(J.startsWith("0"))J=J.substring(1);if(J==="")J="0";return"0x"+J}var IN="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Ig=BigInt(0),SN=BigInt(58);function ek(Y){let J=K0(Y),Q=Yz(J),q="";while(Q)q=IN[Number(Q%SN)]+q,Q/=SN;for(let X=0;X<J.length;X++){if(J[X])break;q=IN[0]+q}return q}function YF(Y){return q8(Buffer.from(Y,"base64"))}function JF(Y){return Buffer.from(K0(Y)).toString("base64")}class Jz{filter;emitter;#Y;constructor(Y,J,Q){this.#Y=J,e(this,{emitter:Y,filter:Q})}async removeListener(){if(this.#Y==null)return;await this.emitter.off(this.filter,this.#Y)}}function QF(Y,J,Q,q,X){H(!1,`invalid codepoint at offset ${J}; ${Y}`,"bytes",Q)}function w6(Y,J,Q,q,X){if(Y==="BAD_PREFIX"||Y==="UNEXPECTED_CONTINUE"){let G=0;for(let $=J+1;$<Q.length;$++){if(Q[$]>>6!==2)break;G++}return G}if(Y==="OVERRUN")return Q.length-J-1;return 0}function XF(Y,J,Q,q,X){if(Y==="OVERLONG")return H(typeof X==="number","invalid bad code point for replacement","badCodepoint",X),q.push(X),0;return q.push(65533),w6(Y,J,Q,q,X)}var qF=Object.freeze({error:QF,ignore:w6,replace:XF});function GF(Y,J){if(J==null)J=qF.error;let Q=K0(Y,"bytes"),q=[],X=0;while(X<Q.length){let G=Q[X++];if(G>>7===0){q.push(G);continue}let $=null,W=null;if((G&224)===192)$=1,W=127;else if((G&240)===224)$=2,W=2047;else if((G&248)===240)$=3,W=65535;else{if((G&192)===128)X+=J("UNEXPECTED_CONTINUE",X-1,Q,q);else X+=J("BAD_PREFIX",X-1,Q,q);continue}if(X-1+$>=Q.length){X+=J("OVERRUN",X-1,Q,q);continue}let j=G&(1<<8-$-1)-1;for(let K=0;K<$;K++){let z=Q[X];if((z&192)!=128){X+=J("MISSING_CONTINUE",X,Q,q),j=null;break}j=j<<6|z&63,X++}if(j===null)continue;if(j>1114111){X+=J("OUT_OF_RANGE",X-1-$,Q,q,j);continue}if(j>=55296&&j<=57343){X+=J("UTF16_SURROGATE",X-1-$,Q,q,j);continue}if(j<=W){X+=J("OVERLONG",X-1-$,Q,q,j);continue}q.push(j)}return q}function gY(Y,J){if(H(typeof Y==="string","invalid string value","str",Y),J!=null)ik(J),Y=Y.normalize(J);let Q=[];for(let q=0;q<Y.length;q++){let X=Y.charCodeAt(q);if(X<128)Q.push(X);else if(X<2048)Q.push(X>>6|192),Q.push(X&63|128);else if((X&64512)==55296){q++;let G=Y.charCodeAt(q);H(q<Y.length&&(G&64512)===56320,"invalid surrogate pair","str",Y);let $=65536+((X&1023)<<10)+(G&1023);Q.push($>>18|240),Q.push($>>12&63|128),Q.push($>>6&63|128),Q.push($&63|128)}else Q.push(X>>12|224),Q.push(X>>6&63|128),Q.push(X&63|128)}return new Uint8Array(Q)}function $F(Y){return Y.map((J)=>{if(J<=65535)return String.fromCharCode(J);return J-=65536,String.fromCharCode((J>>10&1023)+55296,(J&1023)+56320)}).join("")}function N$(Y,J){return $F(GF(Y,J))}function Qz(Y){async function J(Q,q){_(q==null||!q.cancelled,"request cancelled before sending","CANCELLED");let X=Q.url.split(":")[0].toLowerCase();_(X==="http"||X==="https",`unsupported protocol ${X}`,"UNSUPPORTED_OPERATION",{info:{protocol:X},operation:"request"}),_(X==="https"||!Q.credentials||Q.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let G=Q.method,$=Object.assign({},Q.headers),W={method:G,headers:$};if(Y){if(Y.agent)W.agent=Y.agent}let j=null;try{j=new AbortController,W.abort=j.signal}catch(M){console.log(M)}let K=(X==="http"?WF:jF).request(Q.url,W);K.setTimeout(Q.timeout);let z=Q.body;if(z)K.write(Buffer.from(z));return K.end(),new Promise((M,N)=>{if(q)q.addListener(()=>{if(j)j.abort();N(_0("request cancelled","CANCELLED"))});K.on("timeout",()=>{N(_0("request timeout","TIMEOUT"))}),K.once("response",(O)=>{let D=O.statusCode||0,U=O.statusMessage||"",A=Object.keys(O.headers||{}).reduce((v,R)=>{let E=O.headers[R]||"";if(Array.isArray(E))E=E.join(", ");return v[R]=E,v},{}),w=null;O.on("data",(v)=>{if(q)try{q.checkSignal()}catch(R){return N(R)}if(w==null)w=v;else{let R=new Uint8Array(w.length+v.length);R.set(w,0),R.set(v,w.length),w=R}}),O.on("end",()=>{try{if(A["content-encoding"]==="gzip"&&w)w=K0(KF(w));M({statusCode:D,statusMessage:U,headers:A,body:w})}catch(v){N(_0("bad response data","SERVER_ERROR",{request:Q,info:{response:O,error:v}}))}}),O.on("error",(v)=>{v.response={statusCode:D,statusMessage:U,headers:A,body:w},N(v)})}),K.on("error",(O)=>{N(O)})})}return J}var kg=Qz({}),zF=12,MF=250,vN=Qz(),NF=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),OF=new RegExp("^ipfs://(ipfs/)?(.*)$","i"),zW=!1;async function A6(Y,J){try{let Q=Y.match(NF);if(!Q)throw Error("invalid data");return new zJ(200,"OK",{"content-type":Q[1]||"text/plain"},Q[2]?YF(Q[3]):DF(Q[3]))}catch(Q){return new zJ(599,"BAD REQUEST (invalid data: URI)",{},null,new DY(Y))}}function C6(Y){async function J(Q,q){try{let X=Q.match(OF);if(!X)throw Error("invalid link");return new DY(`${Y}${X[2]}`)}catch(X){return new zJ(599,"BAD REQUEST (invalid IPFS URI)",{},null,new DY(Q))}}return J}var SG={data:A6,ipfs:C6("https://gateway.ipfs.io/ipfs/")},I6=new WeakMap;class S6{#Y;#J;constructor(Y){this.#Y=[],this.#J=!1,I6.set(Y,()=>{if(this.#J)return;this.#J=!0;for(let J of this.#Y)setTimeout(()=>{J()},0);this.#Y=[]})}addListener(Y){_(!this.#J,"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),this.#Y.push(Y)}get cancelled(){return this.#J}checkSignal(){_(!this.cancelled,"cancelled","CANCELLED",{})}}function vG(Y){if(Y==null)throw Error("missing signal; should not happen");return Y.checkSignal(),Y}class DY{#Y;#J;#Q;#X;#q;#$;#G;#W;#O;#K;#D;#U;#j;#z;#M;get url(){return this.#$}set url(Y){this.#$=String(Y)}get body(){if(this.#G==null)return null;return new Uint8Array(this.#G)}set body(Y){if(Y==null)this.#G=void 0,this.#W=void 0;else if(typeof Y==="string")this.#G=gY(Y),this.#W="text/plain";else if(Y instanceof Uint8Array)this.#G=Y,this.#W="application/octet-stream";else if(typeof Y==="object")this.#G=gY(JSON.stringify(Y)),this.#W="application/json";else throw Error("invalid body")}hasBody(){return this.#G!=null}get method(){if(this.#X)return this.#X;if(this.hasBody())return"POST";return"GET"}set method(Y){if(Y==null)Y="";this.#X=String(Y).toUpperCase()}get headers(){let Y=Object.assign({},this.#Q);if(this.#O)Y.authorization=`Basic ${JF(gY(this.#O))}`;if(this.allowGzip)Y["accept-encoding"]="gzip";if(Y["content-type"]==null&&this.#W)Y["content-type"]=this.#W;if(this.body)Y["content-length"]=String(this.body.length);return Y}getHeader(Y){return this.headers[Y.toLowerCase()]}setHeader(Y,J){this.#Q[String(Y).toLowerCase()]=String(J)}clearHeaders(){this.#Q={}}[Symbol.iterator](){let Y=this.headers,J=Object.keys(Y),Q=0;return{next:()=>{if(Q<J.length){let q=J[Q++];return{value:[q,Y[q]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return this.#O||null}setCredentials(Y,J){H(!Y.match(/:/),"invalid basic authentication username","username","[REDACTED]"),this.#O=`${Y}:${J}`}get allowGzip(){return this.#J}set allowGzip(Y){this.#J=!!Y}get allowInsecureAuthentication(){return!!this.#Y}set allowInsecureAuthentication(Y){this.#Y=!!Y}get timeout(){return this.#q}set timeout(Y){H(Y>=0,"timeout must be non-zero","timeout",Y),this.#q=Y}get preflightFunc(){return this.#K||null}set preflightFunc(Y){this.#K=Y}get processFunc(){return this.#D||null}set processFunc(Y){this.#D=Y}get retryFunc(){return this.#U||null}set retryFunc(Y){this.#U=Y}get getUrlFunc(){return this.#M||vN}set getUrlFunc(Y){this.#M=Y}constructor(Y){this.#$=String(Y),this.#Y=!1,this.#J=!0,this.#Q={},this.#X="",this.#q=300000,this.#z={slotInterval:MF,maxAttempts:zF},this.#M=null}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${this.#G?y(this.#G):"null"}>`}setThrottleParams(Y){if(Y.slotInterval!=null)this.#z.slotInterval=Y.slotInterval;if(Y.maxAttempts!=null)this.#z.maxAttempts=Y.maxAttempts}async#N(Y,J,Q,q,X){if(Y>=this.#z.maxAttempts)return X.makeServerError("exceeded maximum retry limit");if(_(_N()<=J,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:q}),Q>0)await UF(Q);let G=this.clone(),$=(G.url.split(":")[0]||"").toLowerCase();if($ in SG){let K=await SG[$](G.url,vG(q.#j));if(K instanceof zJ){let z=K;if(this.processFunc){vG(q.#j);try{z=await this.processFunc(G,z)}catch(M){if(M.throttle==null||typeof M.stall!=="number")z.makeServerError("error in post-processing function",M).assertOk()}}return z}G=K}if(this.preflightFunc)G=await this.preflightFunc(G);let W=await this.getUrlFunc(G,vG(q.#j)),j=new zJ(W.statusCode,W.statusMessage,W.headers,W.body,q);if(j.statusCode===301||j.statusCode===302){try{let K=j.headers.location||"";return G.redirect(K).#N(Y+1,J,0,q,j)}catch(K){}return j}else if(j.statusCode===429){if(this.retryFunc==null||await this.retryFunc(G,j,Y)){let K=j.headers["retry-after"],z=this.#z.slotInterval*Math.trunc(Math.random()*Math.pow(2,Y));if(typeof K==="string"&&K.match(/^[1-9][0-9]*$/))z=parseInt(K);return G.clone().#N(Y+1,J,z,q,j)}}if(this.processFunc){vG(q.#j);try{j=await this.processFunc(G,j)}catch(K){if(K.throttle==null||typeof K.stall!=="number")j.makeServerError("error in post-processing function",K).assertOk();let z=this.#z.slotInterval*Math.trunc(Math.random()*Math.pow(2,Y));if(K.stall>=0)z=K.stall;return G.clone().#N(Y+1,J,z,q,j)}}return j}send(){return _(this.#j==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),this.#j=new S6(this),this.#N(0,_N()+this.timeout,0,this,new zJ(0,"",{},null,this))}cancel(){_(this.#j!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});let Y=I6.get(this);if(!Y)throw Error("missing signal; should not happen");Y()}redirect(Y){let J=this.url.split(":")[0].toLowerCase(),Q=Y.split(":")[0].toLowerCase();_(this.method==="GET"&&(J!=="https"||Q!=="http")&&Y.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(Y)})`});let q=new DY(Y);if(q.method="GET",q.allowGzip=this.allowGzip,q.timeout=this.timeout,q.#Q=Object.assign({},this.#Q),this.#G)q.#G=new Uint8Array(this.#G);return q.#W=this.#W,q}clone(){let Y=new DY(this.url);if(Y.#X=this.#X,this.#G)Y.#G=this.#G;if(Y.#W=this.#W,Y.#Q=Object.assign({},this.#Q),Y.#O=this.#O,this.allowGzip)Y.allowGzip=!0;if(Y.timeout=this.timeout,this.allowInsecureAuthentication)Y.allowInsecureAuthentication=!0;return Y.#K=this.#K,Y.#D=this.#D,Y.#U=this.#U,Y.#z=Object.assign({},this.#z),Y.#M=this.#M,Y}static lockConfig(){zW=!0}static getGateway(Y){return SG[Y.toLowerCase()]||null}static registerGateway(Y,J){if(Y=Y.toLowerCase(),Y==="http"||Y==="https")throw Error(`cannot intercept ${Y}; use registerGetUrl`);if(zW)throw Error("gateways locked");SG[Y]=J}static registerGetUrl(Y){if(zW)throw Error("gateways locked");vN=Y}static createGetUrlFunc(Y){return Qz(Y)}static createDataGateway(){return A6}static createIpfsGatewayFunc(Y){return C6(Y)}}class zJ{#Y;#J;#Q;#X;#q;#$;toString(){return`<FetchResponse status=${this.statusCode} body=${this.#X?y(this.#X):"null"}>`}get statusCode(){return this.#Y}get statusMessage(){return this.#J}get headers(){return Object.assign({},this.#Q)}get body(){return this.#X==null?null:new Uint8Array(this.#X)}get bodyText(){try{return this.#X==null?"":N$(this.#X)}catch(Y){_(!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(Y){_(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){let Y=this.headers,J=Object.keys(Y),Q=0;return{next:()=>{if(Q<J.length){let q=J[Q++];return{value:[q,Y[q]],done:!1}}return{value:void 0,done:!0}}}}constructor(Y,J,Q,q,X){this.#Y=Y,this.#J=J,this.#Q=Object.keys(Q).reduce((G,$)=>{return G[$.toLowerCase()]=String(Q[$]),G},{}),this.#X=q==null?null:new Uint8Array(q),this.#q=X||null,this.#$={message:""}}makeServerError(Y,J){let Q;if(!Y)Y=`${this.statusCode} ${this.statusMessage}`,Q=`CLIENT ESCALATED SERVER ERROR (${Y})`;else Q=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${Y})`;let q=new zJ(599,Q,this.headers,this.body,this.#q||void 0);return q.#$={message:Y,error:J},q}throwThrottleError(Y,J){if(J==null)J=-1;else H(Number.isInteger(J)&&J>=0,"invalid stall timeout","stall",J);let Q=Error(Y||"throttling requests");throw e(Q,{stall:J,throttle:!0}),Q}getHeader(Y){return this.headers[Y.toLowerCase()]}hasBody(){return this.#X!=null}get request(){return this.#q}ok(){return this.#$.message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:Y,error:J}=this.#$;if(Y==="")Y=`server response ${this.statusCode} ${this.statusMessage}`;let Q=null;if(this.request)Q=this.request.url;let q=null;try{if(this.#X)q=N$(this.#X)}catch(X){}_(!1,Y,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:J,info:{requestUrl:Q,responseBody:q,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function _N(){return new Date().getTime()}function DF(Y){return gY(Y.replace(/%([0-9a-f][0-9a-f])/gi,(J,Q)=>{return String.fromCharCode(parseInt(Q,16))}))}function UF(Y){return new Promise((J)=>setTimeout(J,Y))}function HF(Y){let J=Y.toString(16);while(J.length<2)J="0"+J;return"0x"+J}function kN(Y,J,Q){let q=0;for(let X=0;X<Q;X++)q=q*256+Y[J+X];return q}function FN(Y,J,Q,q){let X=[];while(Q<J+1+q){let G=v6(Y,Q);X.push(G.result),Q+=G.consumed,_(Q<=J+1+q,"child data too short","BUFFER_OVERRUN",{buffer:Y,length:q,offset:J})}return{consumed:1+q,result:X}}function v6(Y,J){_(Y.length!==0,"data too short","BUFFER_OVERRUN",{buffer:Y,length:0,offset:1});let Q=(q)=>{_(q<=Y.length,"data short segment too short","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:q})};if(Y[J]>=248){let q=Y[J]-247;Q(J+1+q);let X=kN(Y,J+1,q);return Q(J+1+q+X),FN(Y,J,J+1+q,q+X)}else if(Y[J]>=192){let q=Y[J]-192;return Q(J+1+q),FN(Y,J,J+1,q)}else if(Y[J]>=184){let q=Y[J]-183;Q(J+1+q);let X=kN(Y,J+1,q);Q(J+1+q+X);let G=y(Y.slice(J+1+q,J+1+q+X));return{consumed:1+q+X,result:G}}else if(Y[J]>=128){let q=Y[J]-128;Q(J+1+q);let X=y(Y.slice(J+1,J+1+q));return{consumed:1+q,result:X}}return{consumed:1,result:HF(Y[J])}}function rq(Y){let J=K0(Y,"data"),Q=v6(J,0);return H(Q.consumed===J.length,"unexpected junk after rlp payload","data",Y),Q.result}function PN(Y){let J=[];while(Y)J.unshift(Y&255),Y>>=8;return J}function _6(Y){if(Array.isArray(Y)){let q=[];if(Y.forEach(function(G){q=q.concat(_6(G))}),q.length<=55)return q.unshift(192+q.length),q;let X=PN(q.length);return X.unshift(247+X.length),X.concat(q)}let J=Array.prototype.slice.call(K0(Y,"object"));if(J.length===1&&J[0]<=127)return J;else if(J.length<=55)return J.unshift(128+J.length),J;let Q=PN(J.length);return Q.unshift(183+Q.length),Q.concat(J)}var TN="0123456789abcdef";function fY(Y){let J="0x";for(let Q of _6(Y))J+=TN[Q>>4],J+=TN[Q&15];return J}var N8=32,rW=new Uint8Array(N8),BF=["then"],_G={},k6=new WeakMap;function gJ(Y){return k6.get(Y)}function ZN(Y,J){k6.set(Y,J)}function hX(Y,J){let Q=Error(`deferred error during ABI decoding triggered accessing ${Y}`);throw Q.error=J,Q}function sW(Y,J,Q){if(Y.indexOf(null)>=0)return J.map((q,X)=>{if(q instanceof TY)return sW(gJ(q),q,Q);return q});return Y.reduce((q,X,G)=>{let $=J.getValue(X);if(!(X in q)){if(Q&&$ instanceof TY)$=sW(gJ($),$,Q);q[X]=$}return q},{})}class TY extends Array{#Y;constructor(...Y){let J=Y[0],Q=Y[1],q=(Y[2]||[]).slice(),X=!0;if(J!==_G)Q=Y,q=[],X=!1;super(Q.length);Q.forEach((W,j)=>{this[j]=W});let G=q.reduce((W,j)=>{if(typeof j==="string")W.set(j,(W.get(j)||0)+1);return W},new Map);if(ZN(this,Object.freeze(Q.map((W,j)=>{let K=q[j];if(K!=null&&G.get(K)===1)return K;return null}))),this.#Y=[],this.#Y==null)this.#Y;if(!X)return;Object.freeze(this);let $=new Proxy(this,{get:(W,j,K)=>{if(typeof j==="string"){if(j.match(/^[0-9]+$/)){let M=W0(j,"%index");if(M<0||M>=this.length)throw RangeError("out of result range");let N=W[M];if(N instanceof Error)hX(`index ${M}`,N);return N}if(BF.indexOf(j)>=0)return Reflect.get(W,j,K);let z=W[j];if(z instanceof Function)return function(...M){return z.apply(this===K?W:this,M)};else if(!(j in W))return W.getValue.apply(this===K?W:this,[j])}return Reflect.get(W,j,K)}});return ZN($,gJ(this)),$}toArray(Y){let J=[];return this.forEach((Q,q)=>{if(Q instanceof Error)hX(`index ${q}`,Q);if(Y&&Q instanceof TY)Q=Q.toArray(Y);J.push(Q)}),J}toObject(Y){let J=gJ(this);return J.reduce((Q,q,X)=>{return _(q!=null,`value at index ${X} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),sW(J,this,Y)},{})}slice(Y,J){if(Y==null)Y=0;if(Y<0){if(Y+=this.length,Y<0)Y=0}if(J==null)J=this.length;if(J<0){if(J+=this.length,J<0)J=0}if(J>this.length)J=this.length;let Q=gJ(this),q=[],X=[];for(let G=Y;G<J;G++)q.push(this[G]),X.push(Q[G]);return new TY(_G,q,X)}filter(Y,J){let Q=gJ(this),q=[],X=[];for(let G=0;G<this.length;G++){let $=this[G];if($ instanceof Error)hX(`index ${G}`,$);if(Y.call(J,$,G,this))q.push($),X.push(Q[G])}return new TY(_G,q,X)}map(Y,J){let Q=[];for(let q=0;q<this.length;q++){let X=this[q];if(X instanceof Error)hX(`index ${q}`,X);Q.push(Y.call(J,X,q,this))}return Q}getValue(Y){let J=gJ(this).indexOf(Y);if(J===-1)return;let Q=this[J];if(Q instanceof Error)hX(`property ${JSON.stringify(Y)}`,Q.error);return Q}static fromItems(Y,J){return new TY(_G,Y,J)}}function xN(Y){let J=p0(Y);if(_(J.length<=N8,"value out-of-bounds","BUFFER_OVERRUN",{buffer:J,length:N8,offset:J.length}),J.length!==N8)J=q8(F0([rW.slice(J.length%N8),J]));return J}class HY{name;type;localName;dynamic;constructor(Y,J,Q,q){e(this,{name:Y,type:J,localName:Q,dynamic:q},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(Y,J){H(!1,Y,this.localName,J)}}class O${#Y;#J;constructor(){this.#Y=[],this.#J=0}get data(){return F0(this.#Y)}get length(){return this.#J}#Q(Y){return this.#Y.push(Y),this.#J+=Y.length,Y.length}appendWriter(Y){return this.#Q(q8(Y.data))}writeBytes(Y){let J=q8(Y),Q=J.length%N8;if(Q)J=q8(F0([J,rW.slice(Q)]));return this.#Q(J)}writeValue(Y){return this.#Q(xN(Y))}writeUpdatableValue(){let Y=this.#Y.length;return this.#Y.push(rW),this.#J+=N8,(J)=>{this.#Y[Y]=xN(J)}}}class Xz{allowLoose;#Y;#J;#Q;#X;#q;constructor(Y,J,Q){e(this,{allowLoose:!!J}),this.#Y=q8(Y),this.#Q=0,this.#X=null,this.#q=Q!=null?Q:1024,this.#J=0}get data(){return y(this.#Y)}get dataLength(){return this.#Y.length}get consumed(){return this.#J}get bytes(){return new Uint8Array(this.#Y)}#$(Y){if(this.#X)return this.#X.#$(Y);this.#Q+=Y,_(this.#q<1||this.#Q<=this.#q*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#q} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:q8(this.#Y),offset:this.#J,length:Y,info:{bytesRead:this.#Q,dataLength:this.dataLength}})}#G(Y,J,Q){let q=Math.ceil(J/N8)*N8;if(this.#J+q>this.#Y.length)if(this.allowLoose&&Q&&this.#J+J<=this.#Y.length)q=J;else _(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:q8(this.#Y),length:this.#Y.length,offset:this.#J+q});return this.#Y.slice(this.#J,this.#J+q)}subReader(Y){let J=new Xz(this.#Y.slice(this.#J+Y),this.allowLoose,this.#q);return J.#X=this,J}readBytes(Y,J){let Q=this.#G(0,Y,!!J);return this.#$(Y),this.#J+=Q.length,Q.slice(0,Y)}readValue(){return Yz(this.readBytes(N8))}readIndex(){return ak(this.readBytes(N8))}}function D$(Y){if(!Number.isSafeInteger(Y)||Y<0)throw Error(`Wrong positive integer: ${Y}`)}function qz(Y,...J){if(!(Y instanceof Uint8Array))throw Error("Expected Uint8Array");if(J.length>0&&!J.includes(Y.length))throw Error(`Expected Uint8Array of length ${J}, not of length=${Y.length}`)}function RF(Y){if(typeof Y!=="function"||typeof Y.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");D$(Y.outputLen),D$(Y.blockLen)}function dQ(Y,J=!0){if(Y.destroyed)throw Error("Hash instance has been destroyed");if(J&&Y.finished)throw Error("Hash#digest() has already been called")}function P6(Y,J){qz(Y);let Q=J.outputLen;if(Y.length<Q)throw Error(`digestInto() expects output buffer of length at least ${Q}`)}var kG=BigInt(4294967295),gN=BigInt(32);function VF(Y,J=!1){if(J)return{h:Number(Y&kG),l:Number(Y>>gN&kG)};return{h:Number(Y>>gN&kG)|0,l:Number(Y&kG)|0}}function LF(Y,J=!1){let Q=new Uint32Array(Y.length),q=new Uint32Array(Y.length);for(let X=0;X<Y.length;X++){let{h:G,l:$}=VF(Y[X],J);[Q[X],q[X]]=[G,$]}return[Q,q]}var EF=(Y,J,Q)=>Y<<Q|J>>>32-Q,wF=(Y,J,Q)=>J<<Q|Y>>>32-Q,AF=(Y,J,Q)=>J<<Q-32|Y>>>64-Q,CF=(Y,J,Q)=>Y<<Q-32|J>>>64-Q,MW=dX&&typeof dX==="object"&&"webcrypto"in dX?dX.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var T6=(Y)=>Y instanceof Uint8Array,IF=(Y)=>new Uint32Array(Y.buffer,Y.byteOffset,Math.floor(Y.byteLength/4)),NW=(Y)=>new DataView(Y.buffer,Y.byteOffset,Y.byteLength),KY=(Y,J)=>Y<<32-J|Y>>>J,SF=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!SF)throw Error("Non little-endian hardware is not supported");function vF(Y){if(typeof Y!=="string")throw Error(`utf8ToBytes expected string, got ${typeof Y}`);return new Uint8Array(new TextEncoder().encode(Y))}function L9(Y){if(typeof Y==="string")Y=vF(Y);if(!T6(Y))throw Error(`expected Uint8Array, got ${typeof Y}`);return Y}function _F(...Y){let J=new Uint8Array(Y.reduce((q,X)=>q+X.length,0)),Q=0;return Y.forEach((q)=>{if(!T6(q))throw Error("Uint8Array expected");J.set(q,Q),Q+=q.length}),J}class E9{clone(){return this._cloneInto()}}var xg={}.toString;function Z6(Y){let J=(q)=>Y().update(L9(q)).digest(),Q=Y();return J.outputLen=Q.outputLen,J.blockLen=Q.blockLen,J.create=()=>Y(),J}function kF(Y=32){if(MW&&typeof MW.getRandomValues==="function")return MW.getRandomValues(new Uint8Array(Y));throw Error("crypto.getRandomValues must be defined")}var[x6,g6,f6]=[[],[],[]],FF=BigInt(0),mX=BigInt(1),PF=BigInt(2),TF=BigInt(7),ZF=BigInt(256),xF=BigInt(113);for(let Y=0,J=mX,Q=1,q=0;Y<24;Y++){[Q,q]=[q,(2*Q+3*q)%5],x6.push(2*(5*q+Q)),g6.push((Y+1)*(Y+2)/2%64);let X=FF;for(let G=0;G<7;G++)if(J=(J<<mX^(J>>TF)*xF)%ZF,J&PF)X^=mX<<(mX<<BigInt(G))-mX;f6.push(X)}var[gF,fF]=LF(f6,!0),fN=(Y,J,Q)=>Q>32?AF(Y,J,Q):EF(Y,J,Q),hN=(Y,J,Q)=>Q>32?CF(Y,J,Q):wF(Y,J,Q);function hF(Y,J=24){let Q=new Uint32Array(10);for(let q=24-J;q<24;q++){for(let $=0;$<10;$++)Q[$]=Y[$]^Y[$+10]^Y[$+20]^Y[$+30]^Y[$+40];for(let $=0;$<10;$+=2){let W=($+8)%10,j=($+2)%10,K=Q[j],z=Q[j+1],M=fN(K,z,1)^Q[W],N=hN(K,z,1)^Q[W+1];for(let O=0;O<50;O+=10)Y[$+O]^=M,Y[$+O+1]^=N}let X=Y[2],G=Y[3];for(let $=0;$<24;$++){let W=g6[$],j=fN(X,G,W),K=hN(X,G,W),z=x6[$];X=Y[z],G=Y[z+1],Y[z]=j,Y[z+1]=K}for(let $=0;$<50;$+=10){for(let W=0;W<10;W++)Q[W]=Y[$+W];for(let W=0;W<10;W++)Y[$+W]^=~Q[(W+2)%10]&Q[(W+4)%10]}Y[0]^=gF[q],Y[1]^=fF[q]}Q.fill(0)}class Gz extends E9{constructor(Y,J,Q,q=!1,X=24){super();if(this.blockLen=Y,this.suffix=J,this.outputLen=Q,this.enableXOF=q,this.rounds=X,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,D$(Q),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=IF(this.state)}keccak(){hF(this.state32,this.rounds),this.posOut=0,this.pos=0}update(Y){dQ(this);let{blockLen:J,state:Q}=this;Y=L9(Y);let q=Y.length;for(let X=0;X<q;){let G=Math.min(J-this.pos,q-X);for(let $=0;$<G;$++)Q[this.pos++]^=Y[X++];if(this.pos===J)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:Y,suffix:J,pos:Q,blockLen:q}=this;if(Y[Q]^=J,(J&128)!==0&&Q===q-1)this.keccak();Y[q-1]^=128,this.keccak()}writeInto(Y){dQ(this,!1),qz(Y),this.finish();let J=this.state,{blockLen:Q}=this;for(let q=0,X=Y.length;q<X;){if(this.posOut>=Q)this.keccak();let G=Math.min(Q-this.posOut,X-q);Y.set(J.subarray(this.posOut,this.posOut+G),q),this.posOut+=G,q+=G}return Y}xofInto(Y){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(Y)}xof(Y){return D$(Y),this.xofInto(new Uint8Array(Y))}digestInto(Y){if(P6(Y,this),this.finished)throw Error("digest() was already called");return this.writeInto(Y),this.destroy(),Y}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(Y){let{blockLen:J,suffix:Q,outputLen:q,rounds:X,enableXOF:G}=this;return Y||(Y=new Gz(J,Q,q,G,X)),Y.state32.set(this.state32),Y.pos=this.pos,Y.posOut=this.posOut,Y.finished=this.finished,Y.rounds=X,Y.suffix=Q,Y.outputLen=q,Y.enableXOF=G,Y.destroyed=this.destroyed,Y}}var mF=(Y,J,Q)=>Z6(()=>new Gz(J,Y,Q)),yF=mF(1,136,32),h6=!1,m6=function(Y){return yF(Y)},y6=m6;function b0(Y){let J=K0(Y,"data");return y(y6(J))}b0._=m6;b0.lock=function(){h6=!0};b0.register=function(Y){if(h6)throw TypeError("keccak256 is locked");y6=Y};Object.freeze(b0);function lF(Y,J,Q,q){if(typeof Y.setBigUint64==="function")return Y.setBigUint64(J,Q,q);let X=BigInt(32),G=BigInt(4294967295),$=Number(Q>>X&G),W=Number(Q&G),j=q?4:0,K=q?0:4;Y.setUint32(J+j,$,q),Y.setUint32(J+K,W,q)}class l6 extends E9{constructor(Y,J,Q,q){super();this.blockLen=Y,this.outputLen=J,this.padOffset=Q,this.isLE=q,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(Y),this.view=NW(this.buffer)}update(Y){dQ(this);let{view:J,buffer:Q,blockLen:q}=this;Y=L9(Y);let X=Y.length;for(let G=0;G<X;){let $=Math.min(q-this.pos,X-G);if($===q){let W=NW(Y);for(;q<=X-G;G+=q)this.process(W,G);continue}if(Q.set(Y.subarray(G,G+$),this.pos),this.pos+=$,G+=$,this.pos===q)this.process(J,0),this.pos=0}return this.length+=Y.length,this.roundClean(),this}digestInto(Y){dQ(this),P6(Y,this),this.finished=!0;let{buffer:J,view:Q,blockLen:q,isLE:X}=this,{pos:G}=this;if(J[G++]=128,this.buffer.subarray(G).fill(0),this.padOffset>q-G)this.process(Q,0),G=0;for(let z=G;z<q;z++)J[z]=0;lF(Q,q-8,BigInt(this.length*8),X),this.process(Q,0);let $=NW(Y),W=this.outputLen;if(W%4)throw Error("_sha2: outputLen should be aligned to 32bit");let j=W/4,K=this.get();if(j>K.length)throw Error("_sha2: outputLen bigger than state");for(let z=0;z<j;z++)$.setUint32(4*z,K[z],X)}digest(){let{buffer:Y,outputLen:J}=this;this.digestInto(Y);let Q=Y.slice(0,J);return this.destroy(),Q}_cloneInto(Y){Y||(Y=new this.constructor),Y.set(...this.get());let{blockLen:J,buffer:Q,length:q,finished:X,destroyed:G,pos:$}=this;if(Y.length=q,Y.pos=$,Y.finished=X,Y.destroyed=G,q%J)Y.buffer.set(Q);return Y}}var uF=(Y,J,Q)=>Y&J^~Y&Q,cF=(Y,J,Q)=>Y&J^Y&Q^J&Q,bF=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),GJ=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),$J=new Uint32Array(64);class u6 extends l6{constructor(){super(64,32,8,!1);this.A=GJ[0]|0,this.B=GJ[1]|0,this.C=GJ[2]|0,this.D=GJ[3]|0,this.E=GJ[4]|0,this.F=GJ[5]|0,this.G=GJ[6]|0,this.H=GJ[7]|0}get(){let{A:Y,B:J,C:Q,D:q,E:X,F:G,G:$,H:W}=this;return[Y,J,Q,q,X,G,$,W]}set(Y,J,Q,q,X,G,$,W){this.A=Y|0,this.B=J|0,this.C=Q|0,this.D=q|0,this.E=X|0,this.F=G|0,this.G=$|0,this.H=W|0}process(Y,J){for(let z=0;z<16;z++,J+=4)$J[z]=Y.getUint32(J,!1);for(let z=16;z<64;z++){let M=$J[z-15],N=$J[z-2],O=KY(M,7)^KY(M,18)^M>>>3,D=KY(N,17)^KY(N,19)^N>>>10;$J[z]=D+$J[z-7]+O+$J[z-16]|0}let{A:Q,B:q,C:X,D:G,E:$,F:W,G:j,H:K}=this;for(let z=0;z<64;z++){let M=KY($,6)^KY($,11)^KY($,25),N=K+M+uF($,W,j)+bF[z]+$J[z]|0,O=(KY(Q,2)^KY(Q,13)^KY(Q,22))+cF(Q,q,X)|0;K=j,j=W,W=$,$=G+N|0,G=X,X=q,q=Q,Q=N+O|0}Q=Q+this.A|0,q=q+this.B|0,X=X+this.C|0,G=G+this.D|0,$=$+this.E|0,W=W+this.F|0,j=j+this.G|0,K=K+this.H|0,this.set(Q,q,X,G,$,W,j,K)}roundClean(){$J.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var pF=Z6(()=>new u6);class $z extends E9{constructor(Y,J){super();this.finished=!1,this.destroyed=!1,RF(Y);let Q=L9(J);if(this.iHash=Y.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let q=this.blockLen,X=new Uint8Array(q);X.set(Q.length>q?Y.create().update(Q).digest():Q);for(let G=0;G<X.length;G++)X[G]^=54;this.iHash.update(X),this.oHash=Y.create();for(let G=0;G<X.length;G++)X[G]^=106;this.oHash.update(X),X.fill(0)}update(Y){return dQ(this),this.iHash.update(Y),this}digestInto(Y){dQ(this),qz(Y,this.outputLen),this.finished=!0,this.iHash.digestInto(Y),this.oHash.update(Y),this.oHash.digestInto(Y),this.destroy()}digest(){let Y=new Uint8Array(this.oHash.outputLen);return this.digestInto(Y),Y}_cloneInto(Y){Y||(Y=Object.create(Object.getPrototypeOf(this),{}));let{oHash:J,iHash:Q,finished:q,destroyed:X,blockLen:G,outputLen:$}=this;return Y=Y,Y.finished=q,Y.destroyed=X,Y.blockLen=G,Y.outputLen=$,Y.oHash=J._cloneInto(Y.oHash),Y.iHash=Q._cloneInto(Y.iHash),Y}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var c6=(Y,J,Q)=>new $z(Y,J).update(Q).digest();c6.create=(Y,J)=>new $z(Y,J);var b6=function(Y){return F6("sha256").update(Y).digest()},p6=function(Y){return F6("sha512").update(Y).digest()},o6=b6,d6=p6,r6=!1,s6=!1;function jX(Y){let J=K0(Y,"data");return y(o6(J))}jX._=b6;jX.lock=function(){r6=!0};jX.register=function(Y){if(r6)throw Error("sha256 is locked");o6=Y};Object.freeze(jX);function Wz(Y){let J=K0(Y,"data");return y(d6(J))}Wz._=p6;Wz.lock=function(){s6=!0};Wz.register=function(Y){if(s6)throw Error("sha512 is locked");d6=Y};Object.freeze(jX);var i6={};e8(i6,{validateObject:()=>sq,utf8ToBytes:()=>iF,numberToVarBytesBE:()=>rF,numberToHexUnpadded:()=>n6,numberToBytesLE:()=>zz,numberToBytesBE:()=>iQ,hexToNumber:()=>jz,hexToBytes:()=>sQ,equalBytes:()=>sF,ensureBytes:()=>r8,createHmacDrbg:()=>a6,concatBytes:()=>Gq,bytesToNumberLE:()=>Kz,bytesToNumberBE:()=>pJ,bytesToHex:()=>rQ,bitSet:()=>aF,bitMask:()=>Mz,bitLen:()=>tF,bitGet:()=>nF});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var t6=BigInt(0),w9=BigInt(1),oF=BigInt(2),A9=(Y)=>Y instanceof Uint8Array,dF=Array.from({length:256},(Y,J)=>J.toString(16).padStart(2,"0"));function rQ(Y){if(!A9(Y))throw Error("Uint8Array expected");let J="";for(let Q=0;Q<Y.length;Q++)J+=dF[Y[Q]];return J}function n6(Y){let J=Y.toString(16);return J.length&1?`0${J}`:J}function jz(Y){if(typeof Y!=="string")throw Error("hex string expected, got "+typeof Y);return BigInt(Y===""?"0":`0x${Y}`)}function sQ(Y){if(typeof Y!=="string")throw Error("hex string expected, got "+typeof Y);let J=Y.length;if(J%2)throw Error("padded hex string expected, got unpadded hex of length "+J);let Q=new Uint8Array(J/2);for(let q=0;q<Q.length;q++){let X=q*2,G=Y.slice(X,X+2),$=Number.parseInt(G,16);if(Number.isNaN($)||$<0)throw Error("Invalid byte sequence");Q[q]=$}return Q}function pJ(Y){return jz(rQ(Y))}function Kz(Y){if(!A9(Y))throw Error("Uint8Array expected");return jz(rQ(Uint8Array.from(Y).reverse()))}function iQ(Y,J){return sQ(Y.toString(16).padStart(J*2,"0"))}function zz(Y,J){return iQ(Y,J).reverse()}function rF(Y){return sQ(n6(Y))}function r8(Y,J,Q){let q;if(typeof J==="string")try{q=sQ(J)}catch(G){throw Error(`${Y} must be valid hex string, got "${J}". Cause: ${G}`)}else if(A9(J))q=Uint8Array.from(J);else throw Error(`${Y} must be hex string or Uint8Array`);let X=q.length;if(typeof Q==="number"&&X!==Q)throw Error(`${Y} expected ${Q} bytes, got ${X}`);return q}function Gq(...Y){let J=new Uint8Array(Y.reduce((q,X)=>q+X.length,0)),Q=0;return Y.forEach((q)=>{if(!A9(q))throw Error("Uint8Array expected");J.set(q,Q),Q+=q.length}),J}function sF(Y,J){if(Y.length!==J.length)return!1;for(let Q=0;Q<Y.length;Q++)if(Y[Q]!==J[Q])return!1;return!0}function iF(Y){if(typeof Y!=="string")throw Error(`utf8ToBytes expected string, got ${typeof Y}`);return new Uint8Array(new TextEncoder().encode(Y))}function tF(Y){let J;for(J=0;Y>t6;Y>>=w9,J+=1);return J}function nF(Y,J){return Y>>BigInt(J)&w9}var aF=(Y,J,Q)=>{return Y|(Q?w9:t6)<<BigInt(J)},Mz=(Y)=>(oF<<BigInt(Y-1))-w9,OW=(Y)=>new Uint8Array(Y),mN=(Y)=>Uint8Array.from(Y);function a6(Y,J,Q){if(typeof Y!=="number"||Y<2)throw Error("hashLen must be a number");if(typeof J!=="number"||J<2)throw Error("qByteLen must be a number");if(typeof Q!=="function")throw Error("hmacFn must be a function");let q=OW(Y),X=OW(Y),G=0,$=()=>{q.fill(1),X.fill(0),G=0},W=(...z)=>Q(X,q,...z),j=(z=OW())=>{if(X=W(mN([0]),z),q=W(),z.length===0)return;X=W(mN([1]),z),q=W()},K=()=>{if(G++>=1000)throw Error("drbg: tried 1000 values");let z=0,M=[];while(z<J){q=W();let N=q.slice();M.push(N),z+=q.length}return Gq(...M)};return(z,M)=>{$(),j(z);let N=void 0;while(!(N=M(K())))j();return $(),N}}var eF={bigint:(Y)=>typeof Y==="bigint",function:(Y)=>typeof Y==="function",boolean:(Y)=>typeof Y==="boolean",string:(Y)=>typeof Y==="string",stringOrUint8Array:(Y)=>typeof Y==="string"||Y instanceof Uint8Array,isSafeInteger:(Y)=>Number.isSafeInteger(Y),array:(Y)=>Array.isArray(Y),field:(Y,J)=>J.Fp.isValid(Y),hash:(Y)=>typeof Y==="function"&&Number.isSafeInteger(Y.outputLen)};function sq(Y,J,Q={}){let q=(X,G,$)=>{let W=eF[G];if(typeof W!=="function")throw Error(`Invalid validator "${G}", expected function`);let j=Y[X];if($&&j===void 0)return;if(!W(j,Y))throw Error(`Invalid param ${String(X)}=${j} (${typeof j}), expected ${G}`)};for(let[X,G]of Object.entries(J))q(X,G,!1);for(let[X,G]of Object.entries(Q))q(X,G,!0);return Y}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var i0=BigInt(0),m0=BigInt(1),fJ=BigInt(2),YP=BigInt(3),iW=BigInt(4),yN=BigInt(5),lN=BigInt(8),JP=BigInt(9),QP=BigInt(16);function V8(Y,J){let Q=Y%J;return Q>=i0?Q:J+Q}function XP(Y,J,Q){if(Q<=i0||J<i0)throw Error("Expected power/modulo > 0");if(Q===m0)return i0;let q=m0;while(J>i0){if(J&m0)q=q*Y%Q;Y=Y*Y%Q,J>>=m0}return q}function h8(Y,J,Q){let q=Y;while(J-- >i0)q*=q,q%=Q;return q}function tW(Y,J){if(Y===i0||J<=i0)throw Error(`invert: expected positive integers, got n=${Y} mod=${J}`);let Q=V8(Y,J),q=J,X=i0,G=m0,$=m0,W=i0;while(Q!==i0){let j=q/Q,K=q%Q,z=X-$*j,M=G-W*j;q=Q,Q=K,X=$,G=W,$=z,W=M}if(q!==m0)throw Error("invert: does not exist");return V8(X,J)}function qP(Y){let J=(Y-m0)/fJ,Q,q,X;for(Q=Y-m0,q=0;Q%fJ===i0;Q/=fJ,q++);for(X=fJ;X<Y&&XP(X,J,Y)!==Y-m0;X++);if(q===1){let $=(Y+m0)/iW;return function(W,j){let K=W.pow(j,$);if(!W.eql(W.sqr(K),j))throw Error("Cannot find square root");return K}}let G=(Q+m0)/fJ;return function($,W){if($.pow(W,J)===$.neg($.ONE))throw Error("Cannot find square root");let j=q,K=$.pow($.mul($.ONE,X),Q),z=$.pow(W,G),M=$.pow(W,Q);while(!$.eql(M,$.ONE)){if($.eql(M,$.ZERO))return $.ZERO;let N=1;for(let D=$.sqr(M);N<j;N++){if($.eql(D,$.ONE))break;D=$.sqr(D)}let O=$.pow(K,m0<<BigInt(j-N-1));K=$.sqr(O),z=$.mul(z,O),M=$.mul(M,K),j=N}return z}}function GP(Y){if(Y%iW===YP){let J=(Y+m0)/iW;return function(Q,q){let X=Q.pow(q,J);if(!Q.eql(Q.sqr(X),q))throw Error("Cannot find square root");return X}}if(Y%lN===yN){let J=(Y-yN)/lN;return function(Q,q){let X=Q.mul(q,fJ),G=Q.pow(X,J),$=Q.mul(q,G),W=Q.mul(Q.mul($,fJ),G),j=Q.mul($,Q.sub(W,Q.ONE));if(!Q.eql(Q.sqr(j),q))throw Error("Cannot find square root");return j}}if(Y%QP===JP);return qP(Y)}var $P=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function WP(Y){let J={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},Q=$P.reduce((q,X)=>{return q[X]="function",q},J);return sq(Y,Q)}function jP(Y,J,Q){if(Q<i0)throw Error("Expected power > 0");if(Q===i0)return Y.ONE;if(Q===m0)return J;let q=Y.ONE,X=J;while(Q>i0){if(Q&m0)q=Y.mul(q,X);X=Y.sqr(X),Q>>=m0}return q}function KP(Y,J){let Q=Array(J.length),q=J.reduce((G,$,W)=>{if(Y.is0($))return G;return Q[W]=G,Y.mul(G,$)},Y.ONE),X=Y.inv(q);return J.reduceRight((G,$,W)=>{if(Y.is0($))return G;return Q[W]=Y.mul(G,Q[W]),Y.mul(G,$)},X),Q}function e6(Y,J){let Q=J!==void 0?J:Y.toString(2).length,q=Math.ceil(Q/8);return{nBitLength:Q,nByteLength:q}}function zP(Y,J,Q=!1,q={}){if(Y<=i0)throw Error(`Expected Field ORDER > 0, got ${Y}`);let{nBitLength:X,nByteLength:G}=e6(Y,J);if(G>2048)throw Error("Field lengths over 2048 bytes are not supported");let $=GP(Y),W=Object.freeze({ORDER:Y,BITS:X,BYTES:G,MASK:Mz(X),ZERO:i0,ONE:m0,create:(j)=>V8(j,Y),isValid:(j)=>{if(typeof j!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof j}`);return i0<=j&&j<Y},is0:(j)=>j===i0,isOdd:(j)=>(j&m0)===m0,neg:(j)=>V8(-j,Y),eql:(j,K)=>j===K,sqr:(j)=>V8(j*j,Y),add:(j,K)=>V8(j+K,Y),sub:(j,K)=>V8(j-K,Y),mul:(j,K)=>V8(j*K,Y),pow:(j,K)=>jP(W,j,K),div:(j,K)=>V8(j*tW(K,Y),Y),sqrN:(j)=>j*j,addN:(j,K)=>j+K,subN:(j,K)=>j-K,mulN:(j,K)=>j*K,inv:(j)=>tW(j,Y),sqrt:q.sqrt||((j)=>$(W,j)),invertBatch:(j)=>KP(W,j),cmov:(j,K,z)=>z?K:j,toBytes:(j)=>Q?zz(j,G):iQ(j,G),fromBytes:(j)=>{if(j.length!==G)throw Error(`Fp.fromBytes: expected ${G}, got ${j.length}`);return Q?Kz(j):pJ(j)}});return Object.freeze(W)}function Y7(Y){if(typeof Y!=="bigint")throw Error("field order must be bigint");let J=Y.toString(2).length;return Math.ceil(J/8)}function J7(Y){let J=Y7(Y);return J+Math.ceil(J/2)}function MP(Y,J,Q=!1){let q=Y.length,X=Y7(J),G=J7(J);if(q<16||q<G||q>1024)throw Error(`expected ${G}-1024 bytes of input, got ${q}`);let $=Q?pJ(Y):Kz(Y),W=V8($,J-m0)+m0;return Q?zz(W,X):iQ(W,X)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var NP=BigInt(0),DW=BigInt(1);function OP(Y,J){let Q=(X,G)=>{let $=G.negate();return X?$:G},q=(X)=>{let G=Math.ceil(J/X)+1,$=2**(X-1);return{windows:G,windowSize:$}};return{constTimeNegate:Q,unsafeLadder(X,G){let $=Y.ZERO,W=X;while(G>NP){if(G&DW)$=$.add(W);W=W.double(),G>>=DW}return $},precomputeWindow(X,G){let{windows:$,windowSize:W}=q(G),j=[],K=X,z=K;for(let M=0;M<$;M++){z=K,j.push(z);for(let N=1;N<W;N++)z=z.add(K),j.push(z);K=z.double()}return j},wNAF(X,G,$){let{windows:W,windowSize:j}=q(X),K=Y.ZERO,z=Y.BASE,M=BigInt(2**X-1),N=2**X,O=BigInt(X);for(let D=0;D<W;D++){let U=D*j,A=Number($&M);if($>>=O,A>j)A-=N,$+=DW;let w=U,v=U+Math.abs(A)-1,R=D%2!==0,E=A<0;if(A===0)z=z.add(Q(R,G[w]));else K=K.add(Q(E,G[v]))}return{p:K,f:z}},wNAFCached(X,G,$,W){let j=X._WINDOW_SIZE||1,K=G.get(X);if(!K){if(K=this.precomputeWindow(X,j),j!==1)G.set(X,W(K))}return this.wNAF(j,K,$)}}}function Q7(Y){return WP(Y.Fp),sq(Y,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...e6(Y.n,Y.nBitLength),...Y,...{p:Y.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function DP(Y){let J=Q7(Y);sq(J,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:Q,Fp:q,a:X}=J;if(Q){if(!q.eql(X,q.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof Q!=="object"||typeof Q.beta!=="bigint"||typeof Q.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...J})}var{bytesToNumberBE:UP,hexToBytes:HP}=i6,uJ={Err:class extends Error{constructor(Y=""){super(Y)}},_parseInt(Y){let{Err:J}=uJ;if(Y.length<2||Y[0]!==2)throw new J("Invalid signature integer tag");let Q=Y[1],q=Y.subarray(2,Q+2);if(!Q||q.length!==Q)throw new J("Invalid signature integer: wrong length");if(q[0]&128)throw new J("Invalid signature integer: negative");if(q[0]===0&&!(q[1]&128))throw new J("Invalid signature integer: unnecessary leading zero");return{d:UP(q),l:Y.subarray(Q+2)}},toSig(Y){let{Err:J}=uJ,Q=typeof Y==="string"?HP(Y):Y;if(!(Q instanceof Uint8Array))throw Error("ui8a expected");let q=Q.length;if(q<2||Q[0]!=48)throw new J("Invalid signature tag");if(Q[1]!==q-2)throw new J("Invalid signature: incorrect length");let{d:X,l:G}=uJ._parseInt(Q.subarray(2)),{d:$,l:W}=uJ._parseInt(G);if(W.length)throw new J("Invalid signature: left bytes after parsing");return{r:X,s:$}},hexFromSig(Y){let J=(K)=>Number.parseInt(K[0],16)&8?"00"+K:K,Q=(K)=>{let z=K.toString(16);return z.length&1?`0${z}`:z},q=J(Q(Y.s)),X=J(Q(Y.r)),G=q.length/2,$=X.length/2,W=Q(G),j=Q($);return`30${Q($+G+4)}02${j}${X}02${W}${q}`}},FY=BigInt(0),m8=BigInt(1),gg=BigInt(2),uN=BigInt(3),fg=BigInt(4);function BP(Y){let J=DP(Y),{Fp:Q}=J,q=J.toBytes||((D,U,A)=>{let w=U.toAffine();return Gq(Uint8Array.from([4]),Q.toBytes(w.x),Q.toBytes(w.y))}),X=J.fromBytes||((D)=>{let U=D.subarray(1),A=Q.fromBytes(U.subarray(0,Q.BYTES)),w=Q.fromBytes(U.subarray(Q.BYTES,2*Q.BYTES));return{x:A,y:w}});function G(D){let{a:U,b:A}=J,w=Q.sqr(D),v=Q.mul(w,D);return Q.add(Q.add(v,Q.mul(D,U)),A)}if(!Q.eql(Q.sqr(J.Gy),G(J.Gx)))throw Error("bad generator point: equation left != right");function $(D){return typeof D==="bigint"&&FY<D&&D<J.n}function W(D){if(!$(D))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function j(D){let{allowedPrivateKeyLengths:U,nByteLength:A,wrapPrivateKey:w,n:v}=J;if(U&&typeof D!=="bigint"){if(D instanceof Uint8Array)D=rQ(D);if(typeof D!=="string"||!U.includes(D.length))throw Error("Invalid key");D=D.padStart(A*2,"0")}let R;try{R=typeof D==="bigint"?D:pJ(r8("private key",D,A))}catch(E){throw Error(`private key must be ${A} bytes, hex or bigint, not ${typeof D}`)}if(w)R=V8(R,v);return W(R),R}let K=new Map;function z(D){if(!(D instanceof M))throw Error("ProjectivePoint expected")}class M{constructor(D,U,A){if(this.px=D,this.py=U,this.pz=A,D==null||!Q.isValid(D))throw Error("x required");if(U==null||!Q.isValid(U))throw Error("y required");if(A==null||!Q.isValid(A))throw Error("z required")}static fromAffine(D){let{x:U,y:A}=D||{};if(!D||!Q.isValid(U)||!Q.isValid(A))throw Error("invalid affine point");if(D instanceof M)throw Error("projective point not allowed");let w=(v)=>Q.eql(v,Q.ZERO);if(w(U)&&w(A))return M.ZERO;return new M(U,A,Q.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(D){let U=Q.invertBatch(D.map((A)=>A.pz));return D.map((A,w)=>A.toAffine(U[w])).map(M.fromAffine)}static fromHex(D){let U=M.fromAffine(X(r8("pointHex",D)));return U.assertValidity(),U}static fromPrivateKey(D){return M.BASE.multiply(j(D))}_setWindowSize(D){this._WINDOW_SIZE=D,K.delete(this)}assertValidity(){if(this.is0()){if(J.allowInfinityPoint&&!Q.is0(this.py))return;throw Error("bad point: ZERO")}let{x:D,y:U}=this.toAffine();if(!Q.isValid(D)||!Q.isValid(U))throw Error("bad point: x or y not FE");let A=Q.sqr(U),w=G(D);if(!Q.eql(A,w))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:D}=this.toAffine();if(Q.isOdd)return!Q.isOdd(D);throw Error("Field doesn't support isOdd")}equals(D){z(D);let{px:U,py:A,pz:w}=this,{px:v,py:R,pz:E}=D,C=Q.eql(Q.mul(U,E),Q.mul(v,w)),S=Q.eql(Q.mul(A,E),Q.mul(R,w));return C&&S}negate(){return new M(this.px,Q.neg(this.py),this.pz)}double(){let{a:D,b:U}=J,A=Q.mul(U,uN),{px:w,py:v,pz:R}=this,E=Q.ZERO,C=Q.ZERO,S=Q.ZERO,T=Q.mul(w,w),d=Q.mul(v,v),u=Q.mul(R,R),f=Q.mul(w,v);return f=Q.add(f,f),S=Q.mul(w,R),S=Q.add(S,S),E=Q.mul(D,S),C=Q.mul(A,u),C=Q.add(E,C),E=Q.sub(d,C),C=Q.add(d,C),C=Q.mul(E,C),E=Q.mul(f,E),S=Q.mul(A,S),u=Q.mul(D,u),f=Q.sub(T,u),f=Q.mul(D,f),f=Q.add(f,S),S=Q.add(T,T),T=Q.add(S,T),T=Q.add(T,u),T=Q.mul(T,f),C=Q.add(C,T),u=Q.mul(v,R),u=Q.add(u,u),T=Q.mul(u,f),E=Q.sub(E,T),S=Q.mul(u,d),S=Q.add(S,S),S=Q.add(S,S),new M(E,C,S)}add(D){z(D);let{px:U,py:A,pz:w}=this,{px:v,py:R,pz:E}=D,C=Q.ZERO,S=Q.ZERO,T=Q.ZERO,d=J.a,u=Q.mul(J.b,uN),f=Q.mul(U,v),n=Q.mul(A,R),t=Q.mul(w,E),R0=Q.add(U,A),a=Q.add(v,R);R0=Q.mul(R0,a),a=Q.add(f,n),R0=Q.sub(R0,a),a=Q.add(U,w);let B=Q.add(v,E);return a=Q.mul(a,B),B=Q.add(f,t),a=Q.sub(a,B),B=Q.add(A,w),C=Q.add(R,E),B=Q.mul(B,C),C=Q.add(n,t),B=Q.sub(B,C),T=Q.mul(d,a),C=Q.mul(u,t),T=Q.add(C,T),C=Q.sub(n,T),T=Q.add(n,T),S=Q.mul(C,T),n=Q.add(f,f),n=Q.add(n,f),t=Q.mul(d,t),a=Q.mul(u,a),n=Q.add(n,t),t=Q.sub(f,t),t=Q.mul(d,t),a=Q.add(a,t),f=Q.mul(n,a),S=Q.add(S,f),f=Q.mul(B,a),C=Q.mul(R0,C),C=Q.sub(C,f),f=Q.mul(R0,n),T=Q.mul(B,T),T=Q.add(T,f),new M(C,S,T)}subtract(D){return this.add(D.negate())}is0(){return this.equals(M.ZERO)}wNAF(D){return O.wNAFCached(this,K,D,(U)=>{let A=Q.invertBatch(U.map((w)=>w.pz));return U.map((w,v)=>w.toAffine(A[v])).map(M.fromAffine)})}multiplyUnsafe(D){let U=M.ZERO;if(D===FY)return U;if(W(D),D===m8)return this;let{endo:A}=J;if(!A)return O.unsafeLadder(this,D);let{k1neg:w,k1:v,k2neg:R,k2:E}=A.splitScalar(D),C=U,S=U,T=this;while(v>FY||E>FY){if(v&m8)C=C.add(T);if(E&m8)S=S.add(T);T=T.double(),v>>=m8,E>>=m8}if(w)C=C.negate();if(R)S=S.negate();return S=new M(Q.mul(S.px,A.beta),S.py,S.pz),C.add(S)}multiply(D){W(D);let U=D,A,w,{endo:v}=J;if(v){let{k1neg:R,k1:E,k2neg:C,k2:S}=v.splitScalar(U),{p:T,f:d}=this.wNAF(E),{p:u,f}=this.wNAF(S);T=O.constTimeNegate(R,T),u=O.constTimeNegate(C,u),u=new M(Q.mul(u.px,v.beta),u.py,u.pz),A=T.add(u),w=d.add(f)}else{let{p:R,f:E}=this.wNAF(U);A=R,w=E}return M.normalizeZ([A,w])[0]}multiplyAndAddUnsafe(D,U,A){let w=M.BASE,v=(E,C)=>C===FY||C===m8||!E.equals(w)?E.multiplyUnsafe(C):E.multiply(C),R=v(this,U).add(v(D,A));return R.is0()?void 0:R}toAffine(D){let{px:U,py:A,pz:w}=this,v=this.is0();if(D==null)D=v?Q.ONE:Q.inv(w);let R=Q.mul(U,D),E=Q.mul(A,D),C=Q.mul(w,D);if(v)return{x:Q.ZERO,y:Q.ZERO};if(!Q.eql(C,Q.ONE))throw Error("invZ was invalid");return{x:R,y:E}}isTorsionFree(){let{h:D,isTorsionFree:U}=J;if(D===m8)return!0;if(U)return U(M,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:D,clearCofactor:U}=J;if(D===m8)return this;if(U)return U(M,this);return this.multiplyUnsafe(J.h)}toRawBytes(D=!0){return this.assertValidity(),q(M,this,D)}toHex(D=!0){return rQ(this.toRawBytes(D))}}M.BASE=new M(J.Gx,J.Gy,Q.ONE),M.ZERO=new M(Q.ZERO,Q.ONE,Q.ZERO);let N=J.nBitLength,O=OP(M,J.endo?Math.ceil(N/2):N);return{CURVE:J,ProjectivePoint:M,normPrivateKeyToScalar:j,weierstrassEquation:G,isWithinCurveOrder:$}}function RP(Y){let J=Q7(Y);return sq(J,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...J})}function VP(Y){let J=RP(Y),{Fp:Q,n:q}=J,X=Q.BYTES+1,G=2*Q.BYTES+1;function $(B){return FY<B&&B<Q.ORDER}function W(B){return V8(B,q)}function j(B){return tW(B,q)}let{ProjectivePoint:K,normPrivateKeyToScalar:z,weierstrassEquation:M,isWithinCurveOrder:N}=BP({...J,toBytes(B,I,g){let i=I.toAffine(),l=Q.toBytes(i.x),b=Gq;if(g)return b(Uint8Array.from([I.hasEvenY()?2:3]),l);else return b(Uint8Array.from([4]),l,Q.toBytes(i.y))},fromBytes(B){let I=B.length,g=B[0],i=B.subarray(1);if(I===X&&(g===2||g===3)){let l=pJ(i);if(!$(l))throw Error("Point is not on curve");let b=M(l),T0=Q.sqrt(b),L0=(T0&m8)===m8;if((g&1)===1!==L0)T0=Q.neg(T0);return{x:l,y:T0}}else if(I===G&&g===4){let l=Q.fromBytes(i.subarray(0,Q.BYTES)),b=Q.fromBytes(i.subarray(Q.BYTES,2*Q.BYTES));return{x:l,y:b}}else throw Error(`Point of length ${I} was invalid. Expected ${X} compressed bytes or ${G} uncompressed bytes`)}}),O=(B)=>rQ(iQ(B,J.nByteLength));function D(B){let I=q>>m8;return B>I}function U(B){return D(B)?W(-B):B}let A=(B,I,g)=>pJ(B.slice(I,g));class w{constructor(B,I,g){this.r=B,this.s=I,this.recovery=g,this.assertValidity()}static fromCompact(B){let I=J.nByteLength;return B=r8("compactSignature",B,I*2),new w(A(B,0,I),A(B,I,2*I))}static fromDER(B){let{r:I,s:g}=uJ.toSig(r8("DER",B));return new w(I,g)}assertValidity(){if(!N(this.r))throw Error("r must be 0 < r < CURVE.n");if(!N(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(B){return new w(this.r,this.s,B)}recoverPublicKey(B){let{r:I,s:g,recovery:i}=this,l=T(r8("msgHash",B));if(i==null||![0,1,2,3].includes(i))throw Error("recovery id invalid");let b=i===2||i===3?I+J.n:I;if(b>=Q.ORDER)throw Error("recovery id 2 or 3 invalid");let T0=(i&1)===0?"02":"03",L0=K.fromHex(T0+O(b)),d0=j(b),t0=W(-l*d0),y0=W(g*d0),Q8=K.BASE.multiplyAndAddUnsafe(L0,t0,y0);if(!Q8)throw Error("point at infinify");return Q8.assertValidity(),Q8}hasHighS(){return D(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,W(-this.s),this.recovery):this}toDERRawBytes(){return sQ(this.toDERHex())}toDERHex(){return uJ.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return sQ(this.toCompactHex())}toCompactHex(){return O(this.r)+O(this.s)}}let v={isValidPrivateKey(B){try{return z(B),!0}catch(I){return!1}},normPrivateKeyToScalar:z,randomPrivateKey:()=>{let B=J7(J.n);return MP(J.randomBytes(B),J.n)},precompute(B=8,I=K.BASE){return I._setWindowSize(B),I.multiply(BigInt(3)),I}};function R(B,I=!0){return K.fromPrivateKey(B).toRawBytes(I)}function E(B){let I=B instanceof Uint8Array,g=typeof B==="string",i=(I||g)&&B.length;if(I)return i===X||i===G;if(g)return i===2*X||i===2*G;if(B instanceof K)return!0;return!1}function C(B,I,g=!0){if(E(B))throw Error("first arg must be private key");if(!E(I))throw Error("second arg must be public key");return K.fromHex(I).multiply(z(B)).toRawBytes(g)}let S=J.bits2int||function(B){let I=pJ(B),g=B.length*8-J.nBitLength;return g>0?I>>BigInt(g):I},T=J.bits2int_modN||function(B){return W(S(B))},d=Mz(J.nBitLength);function u(B){if(typeof B!=="bigint")throw Error("bigint expected");if(!(FY<=B&&B<d))throw Error(`bigint expected < 2^${J.nBitLength}`);return iQ(B,J.nByteLength)}function f(B,I,g=n){if(["recovered","canonical"].some((K8)=>(K8 in g)))throw Error("sign() legacy options not supported");let{hash:i,randomBytes:l}=J,{lowS:b,prehash:T0,extraEntropy:L0}=g;if(b==null)b=!0;if(B=r8("msgHash",B),T0)B=r8("prehashed msgHash",i(B));let d0=T(B),t0=z(I),y0=[u(t0),u(d0)];if(L0!=null){let K8=L0===!0?l(Q.BYTES):L0;y0.push(r8("extraEntropy",K8))}let Q8=Gq(...y0),IY=d0;function PJ(K8){let I8=S(K8);if(!N(I8))return;let g8=j(I8),o8=K.BASE.multiply(I8).toAffine(),f8=W(o8.x);if(f8===FY)return;let jY=W(g8*W(IY+f8*t0));if(jY===FY)return;let SY=(o8.x===f8?0:2)|Number(o8.y&m8),xX=jY;if(b&&D(jY))xX=U(jY),SY^=1;return new w(f8,xX,SY)}return{seed:Q8,k2sig:PJ}}let n={lowS:J.lowS,prehash:!1},t={lowS:J.lowS,prehash:!1};function R0(B,I,g=n){let{seed:i,k2sig:l}=f(B,I,g),b=J;return a6(b.hash.outputLen,b.nByteLength,b.hmac)(i,l)}K.BASE._setWindowSize(8);function a(B,I,g,i=t){let l=B;if(I=r8("msgHash",I),g=r8("publicKey",g),"strict"in i)throw Error("options.strict was renamed to lowS");let{lowS:b,prehash:T0}=i,L0=void 0,d0;try{if(typeof l==="string"||l instanceof Uint8Array)try{L0=w.fromDER(l)}catch(g8){if(!(g8 instanceof uJ.Err))throw g8;L0=w.fromCompact(l)}else if(typeof l==="object"&&typeof l.r==="bigint"&&typeof l.s==="bigint"){let{r:g8,s:o8}=l;L0=new w(g8,o8)}else throw Error("PARSE");d0=K.fromHex(g)}catch(g8){if(g8.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(b&&L0.hasHighS())return!1;if(T0)I=J.hash(I);let{r:t0,s:y0}=L0,Q8=T(I),IY=j(y0),PJ=W(Q8*IY),K8=W(t0*IY),I8=K.BASE.multiplyAndAddUnsafe(d0,PJ,K8)?.toAffine();if(!I8)return!1;return W(I8.x)===t0}return{CURVE:J,getPublicKey:R,getSharedSecret:C,sign:R0,verify:a,ProjectivePoint:K,Signature:w,utils:v}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function LP(Y){return{hash:Y,hmac:(J,...Q)=>c6(Y,J,_F(...Q)),randomBytes:kF}}function EP(Y,J){let Q=(q)=>VP({...Y,...LP(q)});return Object.freeze({...Q(J),create:Q})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var X7=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),cN=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),wP=BigInt(1),nW=BigInt(2),bN=(Y,J)=>(Y+J/nW)/J;function AP(Y){let J=X7,Q=BigInt(3),q=BigInt(6),X=BigInt(11),G=BigInt(22),$=BigInt(23),W=BigInt(44),j=BigInt(88),K=Y*Y*Y%J,z=K*K*Y%J,M=h8(z,Q,J)*z%J,N=h8(M,Q,J)*z%J,O=h8(N,nW,J)*K%J,D=h8(O,X,J)*O%J,U=h8(D,G,J)*D%J,A=h8(U,W,J)*U%J,w=h8(A,j,J)*A%J,v=h8(w,W,J)*U%J,R=h8(v,Q,J)*z%J,E=h8(R,$,J)*D%J,C=h8(E,q,J)*K%J,S=h8(C,nW,J);if(!aW.eql(aW.sqr(S),Y))throw Error("Cannot find square root");return S}var aW=zP(X7,void 0,void 0,{sqrt:AP}),WJ=EP({a:BigInt(0),b:BigInt(7),Fp:aW,n:cN,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(Y)=>{let J=cN,Q=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),q=-wP*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),X=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),G=Q,$=BigInt("0x100000000000000000000000000000000"),W=bN(G*Y,J),j=bN(-q*Y,J),K=V8(Y-W*Q-j*X,J),z=V8(-W*q-j*G,J),M=K>$,N=z>$;if(M)K=J-K;if(N)z=J-z;if(K>$||z>$)throw Error("splitScalar: Endomorphism failed, k="+Y);return{k1neg:M,k1:K,k2neg:N,k2:z}}}},pF),hg=BigInt(0),mg=WJ.ProjectivePoint,$q="0x0000000000000000000000000000000000000000",pN="0x0000000000000000000000000000000000000000000000000000000000000000",oN=BigInt(0),dN=BigInt(1),eW=BigInt(2),rN=BigInt(27),sN=BigInt(28),FG=BigInt(35),q7=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),CP=q7/eW,IP=Symbol.for("nodejs.util.inspect.custom"),TJ={};function UW(Y){return uY(p0(Y),32)}class Z0{#Y;#J;#Q;#X;get r(){return this.#Y}set r(Y){H(TQ(Y)===32,"invalid r","value",Y),this.#Y=y(Y)}get s(){return H(parseInt(this.#J.substring(0,3))<8,"non-canonical s; use ._s","s",this.#J),this.#J}set s(Y){H(TQ(Y)===32,"invalid s","value",Y),this.#J=y(Y)}get _s(){return this.#J}isValid(){return BigInt(this.#J)<=CP}get v(){return this.#Q}set v(Y){let J=W0(Y,"value");H(J===27||J===28,"invalid v","v",Y),this.#Q=J}get networkV(){return this.#X}get legacyChainId(){let Y=this.networkV;if(Y==null)return null;return Z0.getChainId(Y)}get yParity(){return this.v===27?0:1}get yParityAndS(){let Y=K0(this.s);if(this.yParity)Y[0]|=128;return y(Y)}get compactSerialized(){return F0([this.r,this.yParityAndS])}get serialized(){return F0([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(Y,J,Q,q){R9(Y,TJ,"Signature"),this.#Y=J,this.#J=Q,this.#Q=q,this.#X=null}getCanonical(){if(this.isValid())return this;let Y=q7-BigInt(this._s),J=55-this.v,Q=new Z0(TJ,this.r,UW(Y),J);if(this.networkV)Q.#X=this.networkV;return Q}clone(){let Y=new Z0(TJ,this.r,this._s,this.v);if(this.networkV)Y.#X=this.networkV;return Y}toJSON(){let Y=this.networkV;return{_type:"signature",networkV:Y!=null?Y.toString():null,r:this.r,s:this._s,v:this.v}}[IP](){return this.toString()}toString(){if(this.isValid())return`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v} }`;return`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v}, valid: false }`}static getChainId(Y){let J=o(Y,"v");if(J==rN||J==sN)return oN;return H(J>=FG,"invalid EIP-155 v","v",Y),(J-FG)/eW}static getChainIdV(Y,J){return o(Y)*eW+BigInt(35+J-27)}static getNormalizedV(Y){let J=o(Y);if(J===oN||J===rN)return 27;if(J===dN||J===sN)return 28;return H(J>=FG,"invalid v","v",Y),J&dN?27:28}static from(Y){function J(j,K){H(j,K,"signature",Y)}if(Y==null)return new Z0(TJ,pN,pN,27);if(typeof Y==="string"){let j=K0(Y,"signature");if(j.length===64){let K=y(j.slice(0,32)),z=j.slice(32,64),M=z[0]&128?28:27;return z[0]&=127,new Z0(TJ,K,y(z),M)}if(j.length===65){let K=y(j.slice(0,32)),z=y(j.slice(32,64)),M=Z0.getNormalizedV(j[64]);return new Z0(TJ,K,z,M)}J(!1,"invalid raw signature length")}if(Y instanceof Z0)return Y.clone();let Q=Y.r;J(Q!=null,"missing r");let q=UW(Q),X=function(j,K){if(j!=null)return UW(j);if(K!=null){J(v0(K,32),"invalid yParityAndS");let z=K0(K);return z[0]&=127,y(z)}J(!1,"missing s")}(Y.s,Y.yParityAndS),{networkV:G,v:$}=function(j,K,z){if(j!=null){let M=o(j);return{networkV:M>=FG?M:void 0,v:Z0.getNormalizedV(M)}}if(K!=null)return J(v0(K,32),"invalid yParityAndS"),{v:K0(K)[0]&128?28:27};if(z!=null){switch(W0(z,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}J(!1,"invalid yParity")}J(!1,"missing v")}(Y.v,Y.yParityAndS,Y.yParity),W=new Z0(TJ,q,X,$);if(G)W.#X=G;return J(Y.yParity==null||W0(Y.yParity,"sig.yParity")===W.yParity,"yParity mismatch"),J(Y.yParityAndS==null||Y.yParityAndS===W.yParityAndS,"yParityAndS mismatch"),W}}class PY{#Y;constructor(Y){H(TQ(Y)===32,"invalid private key","privateKey","[REDACTED]"),this.#Y=y(Y)}get privateKey(){return this.#Y}get publicKey(){return PY.computePublicKey(this.#Y)}get compressedPublicKey(){return PY.computePublicKey(this.#Y,!0)}sign(Y){H(TQ(Y)===32,"invalid digest length","digest",Y);let J=WJ.sign(q8(Y),q8(this.#Y),{lowS:!0});return Z0.from({r:UJ(J.r,32),s:UJ(J.s,32),v:J.recovery?28:27})}computeSharedSecret(Y){let J=PY.computePublicKey(Y);return y(WJ.getSharedSecret(q8(this.#Y),K0(J),!1))}static computePublicKey(Y,J){let Q=K0(Y,"key");if(Q.length===32){let X=WJ.getPublicKey(Q,!!J);return y(X)}if(Q.length===64){let X=new Uint8Array(65);X[0]=4,X.set(Q,1),Q=X}let q=WJ.ProjectivePoint.fromHex(Q);return y(q.toRawBytes(J))}static recoverPublicKey(Y,J){H(TQ(Y)===32,"invalid digest length","digest",Y);let Q=Z0.from(J),q=WJ.Signature.fromCompact(q8(F0([Q.r,Q.s])));q=q.addRecoveryBit(Q.yParity);let X=q.recoverPublicKey(q8(Y));return H(X!=null,"invalid signature for digest","signature",J),"0x"+X.toHex(!1)}static addPoints(Y,J,Q){let q=WJ.ProjectivePoint.fromHex(PY.computePublicKey(Y).substring(2)),X=WJ.ProjectivePoint.fromHex(PY.computePublicKey(J).substring(2));return"0x"+q.add(X).toHex(!!Q)}}var SP=BigInt(0),vP=BigInt(36);function iN(Y){Y=Y.toLowerCase();let J=Y.substring(2).split(""),Q=new Uint8Array(40);for(let X=0;X<40;X++)Q[X]=J[X].charCodeAt(0);let q=K0(b0(Q));for(let X=0;X<40;X+=2){if(q[X>>1]>>4>=8)J[X]=J[X].toUpperCase();if((q[X>>1]&15)>=8)J[X+1]=J[X+1].toUpperCase()}return"0x"+J.join("")}var Nz={};for(let Y=0;Y<10;Y++)Nz[String(Y)]=String(Y);for(let Y=0;Y<26;Y++)Nz[String.fromCharCode(65+Y)]=String(10+Y);var tN=15;function _P(Y){Y=Y.toUpperCase(),Y=Y.substring(4)+Y.substring(0,2)+"00";let J=Y.split("").map((q)=>{return Nz[q]}).join("");while(J.length>=tN){let q=J.substring(0,tN);J=parseInt(q,10)%97+J.substring(q.length)}let Q=String(98-parseInt(J,10)%97);while(Q.length<2)Q="0"+Q;return Q}var kP=function(){let Y={};for(let J=0;J<36;J++){let Q="0123456789abcdefghijklmnopqrstuvwxyz"[J];Y[Q]=BigInt(J)}return Y}();function FP(Y){Y=Y.toLowerCase();let J=SP;for(let Q=0;Q<Y.length;Q++)J=J*vP+kP[Y[Q]];return J}function V0(Y){if(H(typeof Y==="string","invalid address","address",Y),Y.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!Y.startsWith("0x"))Y="0x"+Y;let J=iN(Y);return H(!Y.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||J===Y,"bad address checksum","address",Y),J}if(Y.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){H(Y.substring(2,4)===_P(Y),"bad icap checksum","address",Y);let J=FP(Y.substring(4)).toString(16);while(J.length<40)J="0"+J;return iN("0x"+J)}H(!1,"invalid address","address",Y)}function PP(Y){let J=V0(Y.from),Q=o(Y.nonce,"tx.nonce").toString(16);if(Q==="0")Q="0x";else if(Q.length%2)Q="0x0"+Q;else Q="0x"+Q;return V0(f0(b0(fY([J,Q])),12))}function G7(Y){return Y&&typeof Y.getAddress==="function"}async function HW(Y,J){let Q=await J;if(Q==null||Q==="0x0000000000000000000000000000000000000000")_(typeof Y!=="string","unconfigured name","UNCONFIGURED_NAME",{value:Y}),H(!1,"invalid AddressLike value; did not resolve to a value address","target",Y);return V0(Q)}function O8(Y,J){if(typeof Y==="string"){if(Y.match(/^0x[0-9a-f]{40}$/i))return V0(Y);return _(J!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),HW(Y,J.resolveName(Y))}else if(G7(Y))return HW(Y,Y.getAddress());else if(Y&&typeof Y.then==="function")return HW(Y,Y);H(!1,"unsupported addressable value","target",Y)}var vY={};function c(Y,J){let Q=!1;if(J<0)Q=!0,J*=-1;return new h0(vY,`${Q?"":"u"}int${J}`,Y,{signed:Q,width:J})}function B0(Y,J){return new h0(vY,`bytes${J?J:""}`,Y,{size:J})}var nN=Symbol.for("_ethers_typed");class h0{type;value;#Y;_typedSymbol;constructor(Y,J,Q,q){if(q==null)q=null;R9(vY,Y,"Typed"),e(this,{_typedSymbol:nN,type:J,value:Q}),this.#Y=q,this.format()}format(){if(this.type==="array")throw Error("");else if(this.type==="dynamicArray")throw Error("");else if(this.type==="tuple")return`tuple(${this.value.map((Y)=>Y.format()).join(",")})`;return 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 this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return this.#Y}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");if(this.#Y===!0)return-1;if(this.#Y===!1)return this.value.length;return null}static from(Y,J){return new h0(vY,Y,J)}static uint8(Y){return c(Y,8)}static uint16(Y){return c(Y,16)}static uint24(Y){return c(Y,24)}static uint32(Y){return c(Y,32)}static uint40(Y){return c(Y,40)}static uint48(Y){return c(Y,48)}static uint56(Y){return c(Y,56)}static uint64(Y){return c(Y,64)}static uint72(Y){return c(Y,72)}static uint80(Y){return c(Y,80)}static uint88(Y){return c(Y,88)}static uint96(Y){return c(Y,96)}static uint104(Y){return c(Y,104)}static uint112(Y){return c(Y,112)}static uint120(Y){return c(Y,120)}static uint128(Y){return c(Y,128)}static uint136(Y){return c(Y,136)}static uint144(Y){return c(Y,144)}static uint152(Y){return c(Y,152)}static uint160(Y){return c(Y,160)}static uint168(Y){return c(Y,168)}static uint176(Y){return c(Y,176)}static uint184(Y){return c(Y,184)}static uint192(Y){return c(Y,192)}static uint200(Y){return c(Y,200)}static uint208(Y){return c(Y,208)}static uint216(Y){return c(Y,216)}static uint224(Y){return c(Y,224)}static uint232(Y){return c(Y,232)}static uint240(Y){return c(Y,240)}static uint248(Y){return c(Y,248)}static uint256(Y){return c(Y,256)}static uint(Y){return c(Y,256)}static int8(Y){return c(Y,-8)}static int16(Y){return c(Y,-16)}static int24(Y){return c(Y,-24)}static int32(Y){return c(Y,-32)}static int40(Y){return c(Y,-40)}static int48(Y){return c(Y,-48)}static int56(Y){return c(Y,-56)}static int64(Y){return c(Y,-64)}static int72(Y){return c(Y,-72)}static int80(Y){return c(Y,-80)}static int88(Y){return c(Y,-88)}static int96(Y){return c(Y,-96)}static int104(Y){return c(Y,-104)}static int112(Y){return c(Y,-112)}static int120(Y){return c(Y,-120)}static int128(Y){return c(Y,-128)}static int136(Y){return c(Y,-136)}static int144(Y){return c(Y,-144)}static int152(Y){return c(Y,-152)}static int160(Y){return c(Y,-160)}static int168(Y){return c(Y,-168)}static int176(Y){return c(Y,-176)}static int184(Y){return c(Y,-184)}static int192(Y){return c(Y,-192)}static int200(Y){return c(Y,-200)}static int208(Y){return c(Y,-208)}static int216(Y){return c(Y,-216)}static int224(Y){return c(Y,-224)}static int232(Y){return c(Y,-232)}static int240(Y){return c(Y,-240)}static int248(Y){return c(Y,-248)}static int256(Y){return c(Y,-256)}static int(Y){return c(Y,-256)}static bytes1(Y){return B0(Y,1)}static bytes2(Y){return B0(Y,2)}static bytes3(Y){return B0(Y,3)}static bytes4(Y){return B0(Y,4)}static bytes5(Y){return B0(Y,5)}static bytes6(Y){return B0(Y,6)}static bytes7(Y){return B0(Y,7)}static bytes8(Y){return B0(Y,8)}static bytes9(Y){return B0(Y,9)}static bytes10(Y){return B0(Y,10)}static bytes11(Y){return B0(Y,11)}static bytes12(Y){return B0(Y,12)}static bytes13(Y){return B0(Y,13)}static bytes14(Y){return B0(Y,14)}static bytes15(Y){return B0(Y,15)}static bytes16(Y){return B0(Y,16)}static bytes17(Y){return B0(Y,17)}static bytes18(Y){return B0(Y,18)}static bytes19(Y){return B0(Y,19)}static bytes20(Y){return B0(Y,20)}static bytes21(Y){return B0(Y,21)}static bytes22(Y){return B0(Y,22)}static bytes23(Y){return B0(Y,23)}static bytes24(Y){return B0(Y,24)}static bytes25(Y){return B0(Y,25)}static bytes26(Y){return B0(Y,26)}static bytes27(Y){return B0(Y,27)}static bytes28(Y){return B0(Y,28)}static bytes29(Y){return B0(Y,29)}static bytes30(Y){return B0(Y,30)}static bytes31(Y){return B0(Y,31)}static bytes32(Y){return B0(Y,32)}static address(Y){return new h0(vY,"address",Y)}static bool(Y){return new h0(vY,"bool",!!Y)}static bytes(Y){return new h0(vY,"bytes",Y)}static string(Y){return new h0(vY,"string",Y)}static array(Y,J){throw Error("not implemented yet")}static tuple(Y,J){throw Error("not implemented yet")}static overrides(Y){return new h0(vY,"overrides",Object.assign({},Y))}static isTyped(Y){return Y&&typeof Y==="object"&&"_typedSymbol"in Y&&Y._typedSymbol===nN}static dereference(Y,J){if(h0.isTyped(Y)){if(Y.type!==J)throw Error(`invalid type: expecetd ${J}, got ${Y.type}`);return Y.value}return Y}}class $7 extends HY{constructor(Y){super("address","address",Y,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(Y,J){let Q=h0.dereference(J,"string");try{Q=V0(Q)}catch(q){return this._throwError(q.message,J)}return Y.writeValue(Q)}decode(Y){return V0(UJ(Y.readValue(),20))}}class W7 extends HY{coder;constructor(Y){super(Y.name,Y.type,"_",Y.dynamic);this.coder=Y}defaultValue(){return this.coder.defaultValue()}encode(Y,J){return this.coder.encode(Y,J)}decode(Y){return this.coder.decode(Y)}}function j7(Y,J,Q){let q=[];if(Array.isArray(Q))q=Q;else if(Q&&typeof Q==="object"){let j={};q=J.map((K)=>{let z=K.localName;return _(z,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:K},value:Q}),_(!j[z],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:K},value:Q}),j[z]=!0,Q[z]})}else H(!1,"invalid tuple value","tuple",Q);H(J.length===q.length,"types/value length mismatch","tuple",Q);let X=new O$,G=new O$,$=[];J.forEach((j,K)=>{let z=q[K];if(j.dynamic){let M=G.length;j.encode(G,z);let N=X.writeUpdatableValue();$.push((O)=>{N(O+M)})}else j.encode(X,z)}),$.forEach((j)=>{j(X.length)});let W=Y.appendWriter(X);return W+=Y.appendWriter(G),W}function K7(Y,J){let Q=[],q=[],X=Y.subReader(0);return J.forEach((G)=>{let $=null;if(G.dynamic){let W=Y.readIndex(),j=X.subReader(W);try{$=G.decode(j)}catch(K){if(Y8(K,"BUFFER_OVERRUN"))throw K;$=K,$.baseType=G.name,$.name=G.localName,$.type=G.type}}else try{$=G.decode(Y)}catch(W){if(Y8(W,"BUFFER_OVERRUN"))throw W;$=W,$.baseType=G.name,$.name=G.localName,$.type=G.type}if($==null)throw Error("investigate");Q.push($),q.push(G.localName||null)}),TY.fromItems(Q,q)}class z7 extends HY{coder;length;constructor(Y,J,Q){let q=Y.type+"["+(J>=0?J:"")+"]",X=J===-1||Y.dynamic;super("array",q,Q,X);e(this,{coder:Y,length:J})}defaultValue(){let Y=this.coder.defaultValue(),J=[];for(let Q=0;Q<this.length;Q++)J.push(Y);return J}encode(Y,J){let Q=h0.dereference(J,"array");if(!Array.isArray(Q))this._throwError("expected array value",Q);let q=this.length;if(q===-1)q=Q.length,Y.writeValue(Q.length);R6(Q.length,q,"coder array"+(this.localName?" "+this.localName:""));let X=[];for(let G=0;G<Q.length;G++)X.push(this.coder);return j7(Y,X,Q)}decode(Y){let J=this.length;if(J===-1)J=Y.readIndex(),_(J*N8<=Y.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:Y.bytes,offset:J*N8,length:Y.dataLength});let Q=[];for(let q=0;q<J;q++)Q.push(new W7(this.coder));return K7(Y,Q)}}class M7 extends HY{constructor(Y){super("bool","bool",Y,!1)}defaultValue(){return!1}encode(Y,J){let Q=h0.dereference(J,"bool");return Y.writeValue(Q?1:0)}decode(Y){return!!Y.readValue()}}class Oz extends HY{constructor(Y,J){super(Y,Y,J,!0)}defaultValue(){return"0x"}encode(Y,J){J=q8(J);let Q=Y.writeValue(J.length);return Q+=Y.writeBytes(J),Q}decode(Y){return Y.readBytes(Y.readIndex(),!0)}}class N7 extends Oz{constructor(Y){super("bytes",Y)}decode(Y){return y(super.decode(Y))}}class O7 extends HY{size;constructor(Y,J){let Q="bytes"+String(Y);super(Q,Q,J,!1);e(this,{size:Y},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(Y,J){let Q=q8(h0.dereference(J,this.type));if(Q.length!==this.size)this._throwError("incorrect data length",J);return Y.writeBytes(Q)}decode(Y){return y(Y.readBytes(this.size))}}var TP=new Uint8Array([]);class D7 extends HY{constructor(Y){super("null","",Y,!1)}defaultValue(){return null}encode(Y,J){if(J!=null)this._throwError("not null",J);return Y.writeBytes(TP)}decode(Y){return Y.readBytes(0),null}}var ZP=BigInt(0),xP=BigInt(1),gP=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class U7 extends HY{size;signed;constructor(Y,J,Q){let q=(J?"int":"uint")+Y*8;super(q,q,Q,!1);e(this,{size:Y,signed:J},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(Y,J){let Q=o(h0.dereference(J,this.type)),q=cX(gP,N8*8);if(this.signed){let X=cX(q,this.size*8-1);if(Q>X||Q<-(X+xP))this._throwError("value out-of-bounds",J);Q=E6(Q,8*N8)}else if(Q<ZP||Q>cX(q,this.size*8))this._throwError("value out-of-bounds",J);return Y.writeValue(Q)}decode(Y){let J=cX(Y.readValue(),this.size*8);if(this.signed)J=nk(J,this.size*8);return J}}class H7 extends Oz{constructor(Y){super("string",Y)}defaultValue(){return""}encode(Y,J){return super.encode(Y,gY(h0.dereference(J,"string")))}decode(Y){return N$(super.decode(Y))}}class bX extends HY{coders;constructor(Y,J){let Q=!1,q=[];Y.forEach((G)=>{if(G.dynamic)Q=!0;q.push(G.type)});let X="tuple("+q.join(",")+")";super("tuple",X,J,Q);e(this,{coders:Object.freeze(Y.slice())})}defaultValue(){let Y=[];this.coders.forEach((Q)=>{Y.push(Q.defaultValue())});let J=this.coders.reduce((Q,q)=>{let X=q.localName;if(X){if(!Q[X])Q[X]=0;Q[X]++}return Q},{});return this.coders.forEach((Q,q)=>{let X=Q.localName;if(!X||J[X]!==1)return;if(X==="length")X="_length";if(Y[X]!=null)return;Y[X]=Y[q]}),Object.freeze(Y)}encode(Y,J){let Q=h0.dereference(J,"tuple");return j7(Y,this.coders,Q)}decode(Y){return K7(Y,this.coders)}}function BW(Y,J){return{address:V0(Y),storageKeys:J.map((Q,q)=>{return H(v0(Q,32),"invalid slot",`storageKeys[${q}]`,Q),Q.toLowerCase()})}}function jQ(Y){if(Array.isArray(Y))return Y.map((Q,q)=>{if(Array.isArray(Q))return H(Q.length===2,"invalid slot set",`value[${q}]`,Q),BW(Q[0],Q[1]);return H(Q!=null&&typeof Q==="object","invalid address-slot set","value",Y),BW(Q.address,Q.storageKeys)});H(Y!=null&&typeof Y==="object","invalid access list","value",Y);let J=Object.keys(Y).map((Q)=>{let q=Y[Q].reduce((X,G)=>{return X[G]=!0,X},{});return BW(Q,Object.keys(q).sort())});return J.sort((Q,q)=>Q.address.localeCompare(q.address)),J}function B7(Y){return{address:V0(Y.address),nonce:o(Y.nonce!=null?Y.nonce:0),chainId:o(Y.chainId!=null?Y.chainId:0),signature:Z0.from(Y.signature)}}function fP(Y){let J;if(typeof Y==="string")J=PY.computePublicKey(Y,!1);else J=Y.publicKey;return V0(b0("0x"+J.substring(4)).substring(26))}function hP(Y,J){return fP(PY.recoverPublicKey(Y,J))}var n0=BigInt(0),mP=BigInt(2),yP=BigInt(27),lP=BigInt(28),uP=BigInt(35),cP=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),bP=Symbol.for("nodejs.util.inspect.custom"),RW=131072,yG=128;function pP(Y){return{blobToKzgCommitment:(J)=>{if("computeBlobProof"in Y){if("blobToKzgCommitment"in Y&&typeof Y.blobToKzgCommitment==="function")return K0(Y.blobToKzgCommitment(y(J)))}else if("blobToKzgCommitment"in Y&&typeof Y.blobToKzgCommitment==="function")return K0(Y.blobToKzgCommitment(J));if("blobToKZGCommitment"in Y&&typeof Y.blobToKZGCommitment==="function")return K0(Y.blobToKZGCommitment(y(J)));H(!1,"unsupported KZG library","kzg",Y)},computeBlobKzgProof:(J,Q)=>{if("computeBlobProof"in Y&&typeof Y.computeBlobProof==="function")return K0(Y.computeBlobProof(y(J),y(Q)));if("computeBlobKzgProof"in Y&&typeof Y.computeBlobKzgProof==="function")return Y.computeBlobKzgProof(J,Q);if("computeBlobKZGProof"in Y&&typeof Y.computeBlobKZGProof==="function")return K0(Y.computeBlobKZGProof(y(J),y(Q)));H(!1,"unsupported KZG library","kzg",Y)}}}function aN(Y,J){let Q=Y.toString(16);while(Q.length<2)Q="0"+Q;return Q+=jX(J).substring(4),"0x"+Q}function KX(Y){if(Y==="0x")return null;return V0(Y)}function C9(Y,J){try{return jQ(Y)}catch(Q){H(!1,Q.message,J,Y)}}function oP(Y,J){try{if(!Array.isArray(Y))throw Error("authorizationList: invalid array");let Q=[];for(let q=0;q<Y.length;q++){let X=Y[q];if(!Array.isArray(X))throw Error(`authorization[${q}]: invalid array`);if(X.length!==6)throw Error(`authorization[${q}]: wrong length`);if(!X[1])throw Error(`authorization[${q}]: null address`);Q.push({address:KX(X[1]),nonce:E0(X[2],"nonce"),chainId:E0(X[0],"chainId"),signature:Z0.from({yParity:KQ(X[3],"yParity"),r:uY(X[4],32),s:uY(X[5],32)})})}return Q}catch(Q){H(!1,Q.message,J,Y)}}function KQ(Y,J){if(Y==="0x")return 0;return W0(Y,J)}function E0(Y,J){if(Y==="0x")return n0;let Q=o(Y,J);return H(Q<=cP,"value exceeds uint size",J,Q),Q}function U0(Y,J){let Q=o(Y,"value"),q=p0(Q);return H(q.length<=32,"value too large",`tx.${J}`,Q),q}function I9(Y){return jQ(Y).map((J)=>[J.address,J.storageKeys])}function dP(Y){return Y.map((J)=>{return[U0(J.chainId,"chainId"),J.address,U0(J.nonce,"nonce"),U0(J.signature.yParity,"yParity"),p0(J.signature.r),p0(J.signature._s)]})}function rP(Y,J){H(Array.isArray(Y),`invalid ${J}`,"value",Y);for(let Q=0;Q<Y.length;Q++)H(v0(Y[Q],32),"invalid ${ param } hash",`value[${Q}]`,Y[Q]);return Y}function sP(Y){let J=rq(Y);H(Array.isArray(J)&&(J.length===9||J.length===6),"invalid field count for legacy transaction","data",Y);let Q={type:0,nonce:KQ(J[0],"nonce"),gasPrice:E0(J[1],"gasPrice"),gasLimit:E0(J[2],"gasLimit"),to:KX(J[3]),value:E0(J[4],"value"),data:y(J[5]),chainId:n0};if(J.length===6)return Q;let q=E0(J[6],"v"),X=E0(J[7],"r"),G=E0(J[8],"s");if(X===n0&&G===n0)Q.chainId=q;else{let $=(q-uP)/mP;if($<n0)$=n0;Q.chainId=$,H($!==n0||(q===yP||q===lP),"non-canonical legacy v","v",J[6]),Q.signature=Z0.from({r:uY(J[7],32),s:uY(J[8],32),v:q})}return Q}function iP(Y,J){let Q=[U0(Y.nonce,"nonce"),U0(Y.gasPrice||0,"gasPrice"),U0(Y.gasLimit,"gasLimit"),Y.to||"0x",U0(Y.value,"value"),Y.data],q=n0;if(Y.chainId!=n0)q=o(Y.chainId,"tx.chainId"),H(!J||J.networkV==null||J.legacyChainId===q,"tx.chainId/sig.v mismatch","sig",J);else if(Y.signature){let G=Y.signature.legacyChainId;if(G!=null)q=G}if(!J){if(q!==n0)Q.push(p0(q)),Q.push("0x"),Q.push("0x");return fY(Q)}let X=BigInt(27+J.yParity);if(q!==n0)X=Z0.getChainIdV(q,J.v);else if(BigInt(J.v)!==X)H(!1,"tx.chainId/sig.v mismatch","sig",J);return Q.push(p0(X)),Q.push(p0(J.r)),Q.push(p0(J._s)),fY(Q)}function S9(Y,J){let Q;try{if(Q=KQ(J[0],"yParity"),Q!==0&&Q!==1)throw Error("bad yParity")}catch($){H(!1,"invalid yParity","yParity",J[0])}let q=uY(J[1],32),X=uY(J[2],32),G=Z0.from({r:q,s:X,yParity:Q});Y.signature=G}function tP(Y){let J=rq(K0(Y).slice(1));H(Array.isArray(J)&&(J.length===9||J.length===12),"invalid field count for transaction type: 2","data",y(Y));let Q={type:2,chainId:E0(J[0],"chainId"),nonce:KQ(J[1],"nonce"),maxPriorityFeePerGas:E0(J[2],"maxPriorityFeePerGas"),maxFeePerGas:E0(J[3],"maxFeePerGas"),gasPrice:null,gasLimit:E0(J[4],"gasLimit"),to:KX(J[5]),value:E0(J[6],"value"),data:y(J[7]),accessList:C9(J[8],"accessList")};if(J.length===9)return Q;return S9(Q,J.slice(9)),Q}function nP(Y,J){let Q=[U0(Y.chainId,"chainId"),U0(Y.nonce,"nonce"),U0(Y.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),U0(Y.maxFeePerGas||0,"maxFeePerGas"),U0(Y.gasLimit,"gasLimit"),Y.to||"0x",U0(Y.value,"value"),Y.data,I9(Y.accessList||[])];if(J)Q.push(U0(J.yParity,"yParity")),Q.push(p0(J.r)),Q.push(p0(J.s));return F0(["0x02",fY(Q)])}function aP(Y){let J=rq(K0(Y).slice(1));H(Array.isArray(J)&&(J.length===8||J.length===11),"invalid field count for transaction type: 1","data",y(Y));let Q={type:1,chainId:E0(J[0],"chainId"),nonce:KQ(J[1],"nonce"),gasPrice:E0(J[2],"gasPrice"),gasLimit:E0(J[3],"gasLimit"),to:KX(J[4]),value:E0(J[5],"value"),data:y(J[6]),accessList:C9(J[7],"accessList")};if(J.length===8)return Q;return S9(Q,J.slice(8)),Q}function eP(Y,J){let Q=[U0(Y.chainId,"chainId"),U0(Y.nonce,"nonce"),U0(Y.gasPrice||0,"gasPrice"),U0(Y.gasLimit,"gasLimit"),Y.to||"0x",U0(Y.value,"value"),Y.data,I9(Y.accessList||[])];if(J)Q.push(U0(J.yParity,"recoveryParam")),Q.push(p0(J.r)),Q.push(p0(J.s));return F0(["0x01",fY(Q)])}function Y2(Y){let J=rq(K0(Y).slice(1)),Q="3",q=null,X=null;if(J.length===4&&Array.isArray(J[0])){Q="3 (network format)";let $=J[1],W=J[2],j=J[3];H(Array.isArray($),"invalid network format: blobs not an array","fields[1]",$),H(Array.isArray(W),"invalid network format: commitments not an array","fields[2]",W),H(Array.isArray(j),"invalid network format: proofs not an array","fields[3]",j),H($.length===W.length,"invalid network format: blobs/commitments length mismatch","fields",J),H($.length===j.length,"invalid network format: blobs/proofs length mismatch","fields",J),X=[];for(let K=0;K<J[1].length;K++)X.push({data:$[K],commitment:W[K],proof:j[K]});J=J[0]}else if(J.length===5&&Array.isArray(J[0])){Q="3 (EIP-7594 network format)",q=W0(J[1]);let $=J[2],W=J[3],j=J[4];H(q===1,`unsupported EIP-7594 network format version: ${q}`,"fields[1]",q),H(Array.isArray($),"invalid EIP-7594 network format: blobs not an array","fields[2]",$),H(Array.isArray(W),"invalid EIP-7594 network format: commitments not an array","fields[3]",W),H(Array.isArray(j),"invalid EIP-7594 network format: proofs not an array","fields[4]",j),H($.length===W.length,"invalid network format: blobs/commitments length mismatch","fields",J),H($.length*yG===j.length,"invalid network format: blobs/proofs length mismatch","fields",J),X=[];for(let K=0;K<$.length;K++){let z=[];for(let M=0;M<yG;M++)z.push(j[K*yG+M]);X.push({data:$[K],commitment:W[K],proof:F0(z)})}J=J[0]}H(Array.isArray(J)&&(J.length===11||J.length===14),`invalid field count for transaction type: ${Q}`,"data",y(Y));let G={type:3,chainId:E0(J[0],"chainId"),nonce:KQ(J[1],"nonce"),maxPriorityFeePerGas:E0(J[2],"maxPriorityFeePerGas"),maxFeePerGas:E0(J[3],"maxFeePerGas"),gasPrice:null,gasLimit:E0(J[4],"gasLimit"),to:KX(J[5]),value:E0(J[6],"value"),data:y(J[7]),accessList:C9(J[8],"accessList"),maxFeePerBlobGas:E0(J[9],"maxFeePerBlobGas"),blobVersionedHashes:J[10],blobWrapperVersion:q};if(X)G.blobs=X;H(G.to!=null,`invalid address for transaction type: ${Q}`,"data",Y),H(Array.isArray(G.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",Y);for(let $=0;$<G.blobVersionedHashes.length;$++)H(v0(G.blobVersionedHashes[$],32),`invalid blobVersionedHash at index ${$}: must be length 32`,"data",Y);if(J.length===11)return G;return S9(G,J.slice(11)),G}function J2(Y,J,Q){let q=[U0(Y.chainId,"chainId"),U0(Y.nonce,"nonce"),U0(Y.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),U0(Y.maxFeePerGas||0,"maxFeePerGas"),U0(Y.gasLimit,"gasLimit"),Y.to||$q,U0(Y.value,"value"),Y.data,I9(Y.accessList||[]),U0(Y.maxFeePerBlobGas||0,"maxFeePerBlobGas"),rP(Y.blobVersionedHashes||[],"blobVersionedHashes")];if(J){if(q.push(U0(J.yParity,"yParity")),q.push(p0(J.r)),q.push(p0(J.s)),Q){if(Y.blobWrapperVersion!=null){let X=p0(Y.blobWrapperVersion),G=[];for(let{proof:$}of Q){let W=K0($),j=W.length/yG;for(let K=0;K<W.length;K+=j)G.push(W.subarray(K,K+j))}return F0(["0x03",fY([q,X,Q.map(($)=>$.data),Q.map(($)=>$.commitment),G])])}return F0(["0x03",fY([q,Q.map((X)=>X.data),Q.map((X)=>X.commitment),Q.map((X)=>X.proof)])])}}return F0(["0x03",fY(q)])}function Q2(Y){let J=rq(K0(Y).slice(1));H(Array.isArray(J)&&(J.length===10||J.length===13),"invalid field count for transaction type: 4","data",y(Y));let Q={type:4,chainId:E0(J[0],"chainId"),nonce:KQ(J[1],"nonce"),maxPriorityFeePerGas:E0(J[2],"maxPriorityFeePerGas"),maxFeePerGas:E0(J[3],"maxFeePerGas"),gasPrice:null,gasLimit:E0(J[4],"gasLimit"),to:KX(J[5]),value:E0(J[6],"value"),data:y(J[7]),accessList:C9(J[8],"accessList"),authorizationList:oP(J[9],"authorizationList")};if(J.length===10)return Q;return S9(Q,J.slice(10)),Q}function X2(Y,J){let Q=[U0(Y.chainId,"chainId"),U0(Y.nonce,"nonce"),U0(Y.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),U0(Y.maxFeePerGas||0,"maxFeePerGas"),U0(Y.gasLimit,"gasLimit"),Y.to||"0x",U0(Y.value,"value"),Y.data,I9(Y.accessList||[]),dP(Y.authorizationList||[])];if(J)Q.push(U0(J.yParity,"yParity")),Q.push(p0(J.r)),Q.push(p0(J.s));return F0(["0x04",fY(Q)])}class s8{#Y;#J;#Q;#X;#q;#$;#G;#W;#O;#K;#D;#U;#j;#z;#M;#N;#R;#H;get type(){return this.#Y}set type(Y){switch(Y){case null:this.#Y=null;break;case 0:case"legacy":this.#Y=0;break;case 1:case"berlin":case"eip-2930":this.#Y=1;break;case 2:case"london":case"eip-1559":this.#Y=2;break;case 3:case"cancun":case"eip-4844":this.#Y=3;break;case 4:case"pectra":case"eip-7702":this.#Y=4;break;default:H(!1,"unsupported transaction type","type",Y)}}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 Y=this.#J;if(Y==null&&this.type===3)return $q;return Y}set to(Y){this.#J=Y==null?null:V0(Y)}get nonce(){return this.#X}set nonce(Y){this.#X=W0(Y,"value")}get gasLimit(){return this.#q}set gasLimit(Y){this.#q=o(Y)}get gasPrice(){let Y=this.#$;if(Y==null&&(this.type===0||this.type===1))return n0;return Y}set gasPrice(Y){this.#$=Y==null?null:o(Y,"gasPrice")}get maxPriorityFeePerGas(){let Y=this.#G;if(Y==null){if(this.type===2||this.type===3)return n0;return null}return Y}set maxPriorityFeePerGas(Y){this.#G=Y==null?null:o(Y,"maxPriorityFeePerGas")}get maxFeePerGas(){let Y=this.#W;if(Y==null){if(this.type===2||this.type===3)return n0;return null}return Y}set maxFeePerGas(Y){this.#W=Y==null?null:o(Y,"maxFeePerGas")}get data(){return this.#Q}set data(Y){this.#Q=y(Y)}get value(){return this.#O}set value(Y){this.#O=o(Y,"value")}get chainId(){return this.#K}set chainId(Y){this.#K=o(Y)}get signature(){return this.#D||null}set signature(Y){this.#D=Y==null?null:Z0.from(Y)}isValid(){let Y=this.signature;if(Y&&!Y.isValid())return!1;let J=this.authorizationList;if(J){for(let Q of J)if(!Q.signature.isValid())return!1}return!0}get accessList(){let Y=this.#U||null;if(Y==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return Y}set accessList(Y){this.#U=Y==null?null:jQ(Y)}get authorizationList(){let Y=this.#R||null;if(Y==null){if(this.type===4)return[]}return Y}set authorizationList(Y){this.#R=Y==null?null:Y.map((J)=>B7(J))}get maxFeePerBlobGas(){let Y=this.#j;if(Y==null&&this.type===3)return n0;return Y}set maxFeePerBlobGas(Y){this.#j=Y==null?null:o(Y,"maxFeePerBlobGas")}get blobVersionedHashes(){let Y=this.#z;if(Y==null&&this.type===3)return[];return Y}set blobVersionedHashes(Y){if(Y!=null){H(Array.isArray(Y),"blobVersionedHashes must be an Array","value",Y),Y=Y.slice();for(let J=0;J<Y.length;J++)H(v0(Y[J],32),"invalid blobVersionedHash",`value[${J}]`,Y[J])}this.#z=Y}get blobs(){if(this.#N==null)return null;return this.#N.map((Y)=>Object.assign({},Y))}set blobs(Y){if(Y==null){this.#N=null;return}let J=[],Q=[];for(let q=0;q<Y.length;q++){let X=Y[q];if(eK(X)){_(this.#M,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let G=K0(X);if(H(G.length<=RW,"blob is too large",`blobs[${q}]`,X),G.length!==RW){let j=new Uint8Array(RW);j.set(G),G=j}let $=this.#M.blobToKzgCommitment(G),W=y(this.#M.computeBlobKzgProof(G,$));J.push({data:y(G),commitment:y($),proof:W}),Q.push(aN(1,$))}else{let G=y(X.data),$=y(X.commitment),W=y(X.proof);J.push({data:G,commitment:$,proof:W}),Q.push(aN(1,$))}}this.#N=J,this.#z=Q}get kzg(){return this.#M}set kzg(Y){if(Y==null)this.#M=null;else this.#M=pP(Y)}get blobWrapperVersion(){return this.#H}set blobWrapperVersion(Y){this.#H=Y}constructor(){this.#Y=null,this.#J=null,this.#X=0,this.#q=n0,this.#$=null,this.#G=null,this.#W=null,this.#Q="0x",this.#O=n0,this.#K=n0,this.#D=null,this.#U=null,this.#j=null,this.#z=null,this.#M=null,this.#N=null,this.#R=null,this.#H=null}get hash(){if(this.signature==null)return null;return b0(this.#B(!0,!1))}get unsignedHash(){return b0(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return hP(this.unsignedHash,this.signature.getCanonical())}get fromPublicKey(){if(this.signature==null)return null;return PY.recoverPublicKey(this.unsignedHash,this.signature.getCanonical())}isSigned(){return this.signature!=null}#B(Y,J){_(!Y||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let Q=Y?this.signature:null;switch(this.inferType()){case 0:return iP(this,Q);case 1:return eP(this,Q);case 2:return nP(this,Q);case 3:return J2(this,Q,J?this.blobs:null);case 4:return X2(this,Q)}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#B(!0,!0)}get unsignedSerialized(){return this.#B(!1,!1)}inferType(){let Y=this.inferTypes();if(Y.indexOf(2)>=0)return 2;return Y.pop()}inferTypes(){let Y=this.gasPrice!=null,J=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,Q=this.accessList!=null,q=this.#j!=null||this.#z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)_(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});_(!J||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),_(this.type!==0||!Q,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let X=[];if(this.type!=null)X.push(this.type);else if(this.authorizationList&&this.authorizationList.length)X.push(4);else if(J)X.push(2);else if(Y){if(X.push(1),!Q)X.push(0)}else if(Q)X.push(1),X.push(2);else if(q&&this.to)X.push(3);else X.push(0),X.push(1),X.push(2),X.push(3);return X.sort(),X}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return s8.from(this)}toJSON(){let Y=(J)=>{if(J==null)return null;return J.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:Y(this.gasLimit),gasPrice:Y(this.gasPrice),maxPriorityFeePerGas:Y(this.maxPriorityFeePerGas),maxFeePerGas:Y(this.maxFeePerGas),value:Y(this.value),chainId:Y(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}[bP](){return this.toString()}toString(){let Y=[],J=(q)=>{let X=this[q];if(typeof X==="string")X=JSON.stringify(X);Y.push(`${q}: ${X}`)};if(this.type)J("type");if(J("to"),J("data"),J("nonce"),J("gasLimit"),J("value"),this.chainId!=null)J("chainId");if(this.signature)J("from"),Y.push(`signature: ${this.signature.toString()}`);let Q=this.authorizationList;if(Q){let q=[];for(let X of Q){let G=[];if(G.push(`address: ${JSON.stringify(X.address)}`),X.nonce!=null)G.push(`nonce: ${X.nonce}`);if(X.chainId!=null)G.push(`chainId: ${X.chainId}`);if(X.signature)G.push(`signature: ${X.signature.toString()}`);q.push(`Authorization { ${G.join(", ")} }`)}Y.push(`authorizations: [ ${q.join(", ")} ]`)}return`Transaction { ${Y.join(", ")} }`}static from(Y){if(Y==null)return new s8;if(typeof Y==="string"){let Q=K0(Y);if(Q[0]>=127)return s8.from(sP(Q));switch(Q[0]){case 1:return s8.from(aP(Q));case 2:return s8.from(tP(Q));case 3:return s8.from(Y2(Q));case 4:return s8.from(Q2(Q))}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let J=new s8;if(Y.type!=null)J.type=Y.type;if(Y.to!=null)J.to=Y.to;if(Y.nonce!=null)J.nonce=Y.nonce;if(Y.gasLimit!=null)J.gasLimit=Y.gasLimit;if(Y.gasPrice!=null)J.gasPrice=Y.gasPrice;if(Y.maxPriorityFeePerGas!=null)J.maxPriorityFeePerGas=Y.maxPriorityFeePerGas;if(Y.maxFeePerGas!=null)J.maxFeePerGas=Y.maxFeePerGas;if(Y.maxFeePerBlobGas!=null)J.maxFeePerBlobGas=Y.maxFeePerBlobGas;if(Y.data!=null)J.data=Y.data;if(Y.value!=null)J.value=Y.value;if(Y.chainId!=null)J.chainId=Y.chainId;if(Y.signature!=null)J.signature=Z0.from(Y.signature);if(Y.accessList!=null)J.accessList=Y.accessList;if(Y.authorizationList!=null)J.authorizationList=Y.authorizationList;if(Y.blobVersionedHashes!=null)J.blobVersionedHashes=Y.blobVersionedHashes;if(Y.kzg!=null)J.kzg=Y.kzg;if(Y.blobWrapperVersion!=null)J.blobWrapperVersion=Y.blobWrapperVersion;if(Y.blobs!=null)J.blobs=Y.blobs;if(Y.hash!=null)H(J.isSigned(),"unsigned transaction cannot define '.hash'","tx",Y),H(J.hash===Y.hash,"hash mismatch","tx",Y);if(Y.from!=null)H(J.isSigned(),"unsigned transaction cannot define '.from'","tx",Y),H(J.from.toLowerCase()===(Y.from||"").toLowerCase(),"from mismatch","tx",Y);return J}}function eJ(Y){return b0(gY(Y))}var q2="AEEUdwmgDS8BxQKKAP4BOgDjATAAngDUAIMAoABoAOAAagCOAEQAhABMAHIAOwA9ACsANgAmAGIAHgAuACgAJwAXAC0AGgAjAB8ALwAUACkAEgAeAAkAGwARABkAFgA5ACgALQArADcAFQApABAAHgAiABAAGgAeABMAGAUhBe8BFxREN8sF2wC5AK5HAW8ArQkDzQCuhzc3NzcBP68NEfMABQdHBuw5BV8FYAA9MzkI9r4ZBg7QyQAWA9CeOwLNCjcCjqkChuA/lm+RAsXTAoP6ASfnEQDytQFJAjWVCkeXAOsA6godAB/cwdAUE0WlBCN/AQUCQRjFD/MRBjHxDQSJbw0jBzUAswBxme+tnIcAYwabAysG8QAjAEMMmxcDqgPKQyDXCMMxA7kUQwD3NXOrAKmFIAAfBC0D3x4BJQDBGdUFAhEgVD8JnwmQJiNWYUzrg0oAGwAUAB0AFnNcACkAFgBP9h3gPfsDOWDKneY2ChglX1UDYD30ABsAFAAdABZzIGRAnwDD8wAjAEEMzRbDqgMB2sAFYwXqAtCnAsS4AwpUJKRtFHsadUz9AMMVbwLpABM1NJEX0ZkCgYMBEyMAxRVvAukAEzUBUFAtmUwSAy4DBTER33EftQHfSwB5MxJ/AjkWKQLzL8E/cwBB6QH9LQDPDtO9ASNriQC5DQANAwCK21EFI91zHwCoL9kBqQcHBwcHKzUDowBvAQohPvU3fAQgHwCyAc8CKQMA5zMSezr7ULgFmDp/LzVQBgEGAi8FYQVgt8AFcTtlQhpCWEmfe5tmZ6IAExsDzQ8t+X8rBKtTAltbAn0jsy8Bl6utPWMDTR8Ei2kRANkDBrNHNysDBzECQWUAcwFpJ3kAiyUhAJ0BUb8AL3EfAbfNAz81KUsFWwF3YQZtAm0A+VEfAzEJDQBRSQCzAQBlAHsAM70GD/v3IZWHBwARKQAxALsjTwHZAeMPEzmXgIHwABIAGQA8AEUAQDt3gdvIEGcQZAkGTRFMdEIVEwK0D64L7REdDNkq09PgADSxB/MDWwfzA1sDWwfzB/MDWwfzA1sDWwNbA1scEvAi28gQZw9QBHUFlgWTBN4IiyZREYkHMAjaVBV0JhxPA00BBCMtSSQ7mzMTJUpMFE0LCAQ2SmyvfUADTzGzVP2QqgPTMlc5dAkGHnkSqAAyD3skNb1OhnpPcagKU0+2tYdJak5vAsY6sEAACikJm2/Dd1YGRRAfJ6kQ+ww3AbkBPw3xS9wE9QY/BM0fgRkdD9GVoAipLeEM8SbnLqWAXiP5KocF8Uv4POELUVFsD10LaQnnOmeBUgMlAREijwrhDT0IcRD3Cs1vDekRSQc9A9lJngCpBwULFR05FbkmFGKwCw05ewb/GvoLkyazEy17AAXXGiUGUQEtGwMA0y7rhbRaNVwgT2MGBwspI8sUrFAkDSlAu3hMGh8HGSWtApVDdEqLUToelyH6PEENai4XUYAH+TwJGVMLhTyiRq9FEhHWPpE9TCJNTDAEOYMsMyePCdMPiQy9fHYBXQklCbUMdRM1ERs3yQg9Bx0xlygnGQglRplgngT7owP3E9UDDwVDCUUHFwO5HDETMhUtBRGBKNsC9zbZLrcCk1aEARsFzw8pH+MQVEfkDu0InwJpA4cl7wAxFSUAGyKfCEdnAGOP3FMJLs8Iy2pwI3gDaxTrZRF3B5UOWwerHDcVwxzlcMxeD4YMKKezCV8BeQmdAWME5wgNNV+MpCBFZ1eLXBifIGVBQ14AAjUMaRWjRMGHfAKPD28SHwE5AXcHPQ0FAnsR8RFvEJkI74YINbkz/DopBFMhhyAVCisDU2zSCysm/Qz8bQGnEmYDEDRBd/Jnr2C6KBgBBx0yyUFkIfULlk/RDKAaxRhGVDIZ6AfDA/ca9yfuQVsGAwOnBxc6UTPyBMELbQiPCUMATQ6nGwfbGG4KdYzUATWPAbudA1uVhwJzkwY7Bw8Aaw+LBX3pACECqwinAAkA0wNbAD0CsQehAB0AiUUBQQMrMwEl6QKTA5cINc8BmTMB9y0EH8cMGQD7O25OAsO1AoBuZqYF4VwCkgJNOQFRKQQJUktVA7N15QDfAE8GF+NLARmvTs8e50cB43MvAMsA/wAJOQcJRQHRAfdxALsBYws1Caa3uQFR7S0AhwAZbwHbAo0A4QA5AIP1AVcAUQVd/QXXAlNNARU1HC9bZQG/AyMBNwERAH0Gz5GpzQsjBHEH1wIQHxXlAu8yB7kFAyLjE9FCyQK94lkAMhoKPAqrCqpgX2Q3CjV2PVQAEh+sPss/UgVVO1c7XDtXO1w7VztcO1c7XDtXO1wDm8Pmw+YKcF9JYe8Mqg3YRMw6TRPfYFVgNhPMLbsUxRXSJVoZQRrAJwkl6FUNDwgt12Y0CDA0eRfAAEMpbINFY4oeNApPHOtTlVT8LR8AtUumM7MNsBsZREQFS3XxYi4WEgomAmSFAmJGX1GzAV83JAKh+wJonAJmDQKfiDgfDwJmPwJmKgRyBIMDfxcDfpY5Cjl7GzmGOicnAmwhAjI6OA4CbcsCbbLzjgM3a0kvAWsA4gDlAE4JB5wMkQECD8YAEbkCdzMCdqZDAnlPRwJ4viFg30WyRvcCfEMCeswCfQ0CfPRIBEiBZygALxlJXEpfGRtK0ALRBQLQ0EsrA4hTA4fqRMmRNgLypV0HAwOyS9JMMSkH001QTbMCi0MCitzFHwshR2sJuwKOOwKOYESbhQKO3QKOYHxRuFM5AQ5S2FSJApP/ApMQAO0AIFUiVbNV1AosHymZijLleGpFPz0Cl6MC77ZYJawAXSkClpMCloCgAK1ZsFoNhVEAPwKWuQKWUlxIXNUCmc8CmWhczl0LHQKcnznGOqECnBoCn58CnryOACETNS4TAp31Ap6WALlBYThh8wKe1wKgcgGtAp6jIwKeUqljzGQrKS8CJ7MCJoICoP8CoFDbAqYzAqXSAqgDAIECp/ZogGi1AAdNaiBq1QKs5wKssgKtawKtBgJXIQJV4AKx5dsDH1JsmwKywRECsuwbbORtZ21MYwMl0QK2YD9DbpQDKUkCuGICuUsZArkue3A6cOUCvR0DLbYDMhUCvoxyBgMzdQK+HnMmc1MCw88CwwhzhnRPOUl05AM8qwEDPJ4DPcMCxYACxksCxhSNAshtVQLISALJUwLJMgJkoQLd1nh9ZXiyeSlL1AMYp2cGAmH4GfeVKHsPXpZevxUCz28Cz3AzT1fW9xejAMqxAs93AS3uA04Wfk8JAtwrAtuOAtJTA1JgA1NjAQUDVZCAjUMEzxrxZEl5A4LSg5EC2ssC2eKEFIRNp0ADhqkAMwNkEoZ1Xf0AWQLfaQLevHd7AuIz7RgB8zQrAfSfAfLWiwLr9wLpdH0DAur9AuroAP1LAb0C7o0C66CWrpcHAu5DA4XkmH1w5HGlAvMHAG0DjhqZlwL3FwORcgOSiwL3nAL53QL4apogmq+/O5siA52HAv7+AR8APZ8gAZ+3AwWRA6ZuA6bdANXJAwZuoYyiCQ0DDE0BEwEjB3EGZb1rCQC/BG/DFY8etxEAG3k9ACcDNxJRA42DAWcrJQCM8wAlAOanC6OVCLsGI6fJBgCvBRnDBvElRUYFFoAFcD9GSDNCKUK8X3kZX8QAls0FOgCQVCGbwTsuYDoZutcONxjOGJHJ/gVfBWAFXwVgBWsFYAVfBWAFXwVgBV8FYAVfBWBOHQjfjW8KCgoKbF7xMwTRA7kGN8PDAMMEr8MA70gxFroFTj5xPnhCR0K+X30/X/AAWBkzswCNBsxzzASm70aCRS4rDDMeLz49fnXfcsH5GcoscQFz13Y4HwVnBXLJycnACNdRYwgICAqEXoWTxgA7P4kACxbZBu21Kw0AjMsTAwkVAOVtJUUsJ1JCuULESUArXy9gPi9AKwnJRQYKTD9LPoA+iT54PnkCkULEUUpDX9NWV3JVEjQAc1w3A3IBE3YnX+g7QiMJb6MKaiszRCUuQrNCxDPMCcwEX9EWJzYREBEEBwIHKn6l33JCNVIfybPJtAltydPUCmhBZw/tEKsZAJOVJU1CLRuxbUHOQAo7P0s+eEJHHA8SJVRPdGM0NVrpvBoKhfUlM0JHHGUQUhEWO1xLSj8MO0ucNAqJIzVCRxv9EFsqKyA4OQgNj2nwZgp5ZNFgE2A1K3YHS2AhQQojJmC7DgpzGG1WYFUZCQYHZO9gHWCdYIVgu2BTYJlwFh8GvRbcXbG8YgtDHrMBwzPVyQonHQgkCyYBgQJ0Ajc4nVqIAwGSCsBPIgDsK3SWEtIVBa5N8gGjAo+kVwVIZwD/AEUSCDweX4ITrRQsJ8K3TwBXFDwEAB0TvzVcAtoTS20RIwDgVgZ9BBImYgA5AL4Coi8LFnezOkCnIQFjAY4KBAPh9RcGsgZSBsEAJctdsWIRu2kTkQstRw7DAcMBKgpPBGIGMDAwKCYnKTQaLg4AKRSVAFwCdl+YUZ0JdicFD3lPAdt1F9ZZKCGxuE3yBxkFVGcA/wBFEgiCBwAOLHQSjxOtQDg1z7deFRMAZ8QTAGtKb1ApIiPHADkAvgKiLy1DFtYCmBiDAlDDWNB0eo7fpaMO/aEVRRv0ATEQZBIODyMEAc8JQhCbDRgzFD4TAEMAu9YBCgCsAOkAm5I3ABwAYxvONnR+MhXJAxgKQyxL2+kkJhMbhQKDBMkSsvF0AD9BNQ6uQC7WqSQHwxEAEEIu1hkhAH2z4iQPwyJPHNWpdyYBRSpnJALzoBAEVPPsH20MxA0CCEQKRgAFyAtFAlMNwwjEDUQJRArELtapMg7DDZgJIw+TGukEIwvDFkMAqAtDEMMMBhioe+QAO3MMRAACrgnEBSPY9Q0FDnbSBoMAB8MSYxkSxAEJAPIJAAB8FWMOFtMc/HcXwxhDAC7DAvOowwAewwJdKDKHAAHDAALrFUQVwwAbwyvzpWMWv8wA/ABpAy++bcYDUKPD0KhDCwKmJ1MAAmMA5+UZwxAagwipBRL/eADfw6fDGOMCGsOjk3l6BwOpo4sAEsMOGxMAA5sAbcMOAAvDp0MJGkMDwgipnNIPAwfIqUMGAOGDAAPzABXDAAcDAAnDAGmTABrDAA7DChjDjnEWAwABYwAOcwAuUyYABsMAF8MIKQANUgC6wy4AA8MADqMq8wCyYgAcIwAB8wqpAAXOCx0V4wAHowBCwwEKAGnDAAuDAB3DAAjDCakABdIAbqcZ3QCZCCkABdIAAAFDAAfjAB2jCCkABqIACYMAGzMAbSMA5sOIAAhjAAhDABTDBAkpAAbSAOOTAAlDC6kOzPtnAAdDAG6kQFAATwAKwwwAA0MACbUDPwAHIwAZgwACE6cDAAojAApDAAoDp/MGwwAJIwADEwAQQwgAFEMAEXMAD5MADfMADcMAGRMOFiMAFUMAbqMWuwHDAMIAE0MLAGkzEgDhUwACQwAEWgAXgwUjAAbYABjDBSYBgzBaAEFNALcQBxUMegAwMngBrA0IZgJ0KxQHBREPd1N0ZzKRJwaIHAZqNT4DqQq8BwngAB4DAwt2AX56T1ocKQNXAh1GATQGC3tOxYNagkgAMQA5CQADAQEAWxLjAIOYNAEzAH7tFRk6TglSAF8NAAlYAQ+S1ACAQwQorQBiAN4dAJ1wPyeTANVzuQDX3AIeEMp9eyMgXiUAEdkBkJizKltbVVAaRMqRAAEAhyQ/SDEz6BmfVwB6ATEsOClKIRcDOF0E/832AFNt5AByAnkCRxGCOs94NjXdAwINGBonDBwPALW2AwICAgAAAAAAAAYDBQMDARrUAwAtAAAAAgEGBgYGBgYFBQUFBQUEBQYHCAkEBQUFBQQAAAICAAAAIgCNAJAAlT0A6gC7ANwApEQAwgCyAK0AqADuAKYA2gCjAOcBCAEDAMcAgQBiANIA1AEDAN4A8gCQAKkBMQDqAN8A3AsBCQ8yO9ra2tq8xuLT1tRJOB0BUgFcNU0BWgFpAWgBWwFMUUlLbhMBUxsNEAs6PhMOACcUKy0vMj5AQENDQ0RFFEYGJFdXV1dZWVhZL1pbXVxcI2NnZ2ZoZypsbnZ1eHh4eHh4enp6enp6enp6enp8fH18e2IARPIASQCaAHgAMgBm+ACOAFcAVwA3AnbvAIsABfj4AGQAk/IAnwBPAGIAZP//sACFAIUAaQBWALEAJAC2AIMCQAJDAPwA5wD+AP4A6AD/AOkA6QDoAOYALwJ7AVEBQAE+AVQBPgE+AT4BOQE4ATgBOAEcAVgXADEQCAEAUx8SHgsdHhYAjgCWAKYAUQBqIAIxAHYAbwCXAxUDJzIDIUlGTzEAkQJPAMcCVwKkAMAClgKWApYClgKWApYCiwKWApYClgKWApYClgKVApUCmAKgApcClgKWApQClAKUApQCkgKVAnUB1AKXAp8ClgKWApUeAIETBQD+DQOfAmECOh8BVBg9AuIZEjMbAU4/G1WZAXusRAFpYQEFA0FPAQYAmTEeIJdyADFoAHEANgCRA5zMk/C2jGINwjMWygIZCaXdfDILBCs5dAE7YnQBugDlhoiHhoiGiYqKhouOjIaNkI6Ij4qQipGGkoaThpSSlYaWhpeKmIaZhpqGm4aci52QnoqfhuIC4XTpAt90AIp0LHSoAIsAdHQEQwRABEIERQRDBEkERgRBBEcESQRIBEQERgRJAJ5udACrA490ALxuAQ10ANFZdHQA13QCFHQA/mJ0AP4BIQD+APwA/AD9APwDhGZ03ASMK23HAP4A/AD8AP0A/CR0dACRYnQA/gCRASEA/gCRAvQA/gCRA4RmdNwEjCttxyR0AP9idAEhAP4A/gD8APwA/QD8AP8A/AD8AP0A/AOEZnTcBIwrbcckdHQAkWJ0ASEA/gCRAP4AkQL0AP4AkQOEZnTcBIwrbcckdAJLAT50AlIBQXQCU8l0dAJfdHQDpgL0A6YDpgOnA6cDpwOnA4RmdNwEjCttxyR0dACRYnQBIQOmAJEDpgCRAvQDpgCRA4RmdNwEjCttxyR0BDh0AJEEOQCRDpU5dSgCADR03gV2CwArdAEFAM5iCnR0AF1iAAYcOgp0dACRCnQAXAEIwWZ0CnRmdHQAkWZ0CnRmdEXgAFF03gp0dEY0tlT2u3SOAQTwscwhjZZKrhYcBSfFp9XNbKiVDOD2b+cpe4/Z17mQnbtzzhaeQtE2GGj0IDNTjRUSyTxxw/RPHW/+vS7d1NfRt9z9QPZg4X7QFfhCnkvgNPIItOsC2eV6hPannZNHlZ9xrwZXIMOlu3jSoQSq78WEjwLjw1ELSlF1aBvfzwk5ZX7AUvQzjPQKbDuQ+sm4wNOp4A6AdVuRS0t1y/DZpg4R6m7FNjM9HgvW7Bi88zaMjOo6lM8wtBBdj8LP4ylv3zCXPhebMKJc066o9sF71oFW/8JXu86HJbwDID5lzw5GWLR/LhT0Qqnp2JQxNZNfcbLIzPy+YypqRm/lBmGmex+82+PisxUumSeJkALIT6rJezxMH+CTJmQtt5uwTVbL3ptmjDUQzlSIvWi8Tl7ng1NpuRn1Ng4n14Qc+3Iil7OwkvNWogLSPkn3pihIFytyIGmMhOe3n1tWsuMy9BdKyqF4Z3v2SgggTL9KVvMXPnCbRe+oOuFFP3HejBG/w9gvmfNYvg6JuWia2lcSSN1uIjBktzoIazOHPJZ7kKHPz8mRWVdW3lA8WGF9dQF6Bm673boov3BUWDU2JNcahR23GtfHKLOz/viZ+rYnZFaIznXO67CYEJ1fXuTRpZhYZkKe54xeoagkNGLs+NTZHE0rX45/XvQ2RGADX6vcAvdxIUBV27wxGm2zjZo4X3ILgAlrOFheuZ6wtsvaIj4yLY7qqawlliaIcrz2G+c3vscAnCkCuMzMmZvMfu9lLwTvfX+3cVSyPdN9ZwgDZhfjRgNJcLiJ67b9xx8JHswprbiE3v9UphotAPIgnXVIN5KmMc0piXhc6cChPnN+MRhG9adtdttQTTwSIpl8I4/j//d3sz1326qTBTpPRM/Hgh3kzqEXs8ZAk4ErQhNO8hzrQ0DLkWMA/N+91tn2MdOJnWC2FCZehkQrwzwbKOjhvZsbM95QoeL9skYyMf4srVPVJSgg7pOLUtr/n9eT99oe9nLtFRpjA9okV2Kj8h9k5HaC0oivRD8VyXkJ81tcd4fHNXPCfloIQasxsuO18/46dR2jgul/UIet2G0kRvnyONMKhHs6J26FEoqSqd+rfYjeEGwHWVDpX1fh1jBBcKGMqRepju9Y00mDVHC+Xdij/j44rKfvfjGinNs1jO/0F3jB83XCDINN/HB84axlP+3E/klktRo+vl3U/aiyMJbIodE1XSsDn6UAzIoMtUObY2+k/4gY/l+AkZJ5Sj2vQrkyLm3FoxjhDX+31UXBFf9XrAH31fFqoBmDEZvhvvpnZ87N+oZEu7U9O/nnk+QWj3x8uyoRbEnf+O5UMr9i0nHP38IF5AvzrBW8YWBUR0mIAzIvndQq9N3v/Jto3aPjPXUPl8ASdPPyAp7jENf8bk7VMM9ol9XGmlBmeDMuGqt+WzuL6CXAxXjIhCPM5vACchgMJ/8XBGLO/D1isVvGhwwHHr1DLaI5mn2Jr/b1pUD90uciDaS8cXNDzCWvNmT/PhQe5e8nTnnnkt8Ds/SIjibcum/fqDhKopxAY8AkSrPn+IGDEKOO+U3XOP6djFs2H5N9+orhOahiQk5KnEUWa+CzkVzhp8bMHRbg81qhjjXuIKbHjSLSIBKWqockGtKinY+z4/RdBUF6pcc3JmnlxVcNgrI4SEzKUZSwcD2QCyxzKve+gAmg6ZuSRkpPFa6mfThu7LJNu3H5K42uCpNvPAsoedolKV/LHe/eJ+BbaG5MG0NaSGVPRUmNFMFFSSpXEcXwbVh7UETOZZtoVNRGOIbbkig3McEtR68cG0RZAoJevWYo7Dg/lZ1CQzblWeUvVHmr8fY4Nqd9JJiH/zEX24mJviH60fAyFr0A3c4bC1j3yZU60VgJxXn8JgJXLUIsiBnmKmMYz+7yBQFBvqb2eYnuW59joZBf56/wXvWIR4R8wTmV80i1mZy+S4+BUES+hzjk0uXpC///z/IlqHZ1monzlXp8aCfhGKMti73FI1KbL1q6IKO4fuBuZ59gagjn5xU79muMpHXg6S+e+gDM/U9BKLHbl9l6o8czQKl4RUkJJiqftQG2i3BMg/TQlUYFkJDYBOOvAugYuzYSDnZbDDd/aSd9x0Oe6F+bJcHfl9+gp6L5/TgA+BdFFovbfCrQ40s5vMPw8866pNX8zyFGeFWdxIpPVp9Rg1UPOVFbFZrvaFq/YAzHQgqMWpahMYfqHpmwXfHL1/kpYmGuHFwT55mQu0dylfNuq2Oq0hTMCPwqfxnuBIPLXfci4Y1ANy+1CUipQxld/izVh16WyG2Q0CQQ9NqtAnx1HCHwDj7sYxOSB0wopZSnOzxQOcExmxrVTF2BkOthVpGfuhaGECfCJpJKpjnihY+xOT2QJxN61+9K6QSqtv2Shr82I3jgJrqBg0wELFZPjvHpvzTtaJnLK6Vb97Yn933koO/saN7fsjwNKzp4l2lJVx2orjCGzC/4ZL4zCver6aQYtC5sdoychuFE6ufOiog+VWi5UDkbmvmtah/3aArEBIi39s5ILUnlFLgilcGuz9CQshEY7fw2ouoILAYPVT/gyAIq3TFAIwVsl+ktkRz/qGfnCDGrm5gsl/l9QdvCWGsjPz3dU7XuqKfdUrr/6XIgjp4rey6AJBmCmUJMjITHVdFb5m1p+dLMCL8t55zD42cmftmLEJC0Da04YiRCVUBLLa8D071/N5UBNBXDh0LFsmhV/5B5ExOB4j3WVG/S3lfK5o+V6ELHvy6RR9n4ac+VsK4VE4yphPvV+kG9FegTBH4ZRXL2HytUHCduJazB/KykjfetYxOXTLws267aGOd+I+JhKP//+VnXmS90OD/jvLcVu0asyqcuYN1mSb6XTlCkqv1vigZPIYwNF/zpWcT1GR/6aEIRjkh0yhg4LXJfaGobYJTY4JI58KiAKgmmgAKWdl5nYCeLqavRJGQNuYuZtZFGx+IkI4w4NS2xwbetNMunOjBu/hmKCI/w7tfiiyUd//4rbTeWt4izBY8YvGIN6vyKYmP/8X8wHKCeN+WRcKM70+tXKNGyevU9H2Dg5BsljnTf8YbsJ1TmMs74Ce2XlHisleguhyeg44rQOHZuw/6HTkhnnurK2d62q6yS7210SsAIaR+jXMQA+svkrLpsUY+F30Uw89uOdGAR6vo4FIME0EfVVeHTu6eKicfhSqOeXJhbftcd08sWEnNUL1C9fnprTgd83IMut8onVUF0hvqzZfHduPjbjwEXIcoYmy+P6tcJZHmeOv6VrvEdkHDJecjHuHeWANe79VG662qTjA/HCvumVv3qL+LrOcpqGps2ZGwQdFJ7PU4iuyRlBrwfO+xnPyr47s2cXVbWzAyznDiBGjCM3ksxjjqM62GE9C8f5U38kB3VjtabKp/nRdvMESPGDG90bWRLAt1Qk5DyLuazRR1YzdC1c+hZXvAWV8xA72S4A8B67vjVhbba3MMop293FeEXpe7zItMWrJG/LOH9ByOXmYnNJfjmfuX9KbrpgLOba4nZ+fl8Gbdv/ihv+6wFGKHCYrVwmhFC0J3V2bn2tIB1wCc1CST3d3X2OyxhguXcs4sm679UngzofuSeBewMFJboIQHbUh/m2JhW2hG9DIvG2t7yZIzKBTz9wBtnNC+2pCRYhSIuQ1j8xsz5VvqnyUIthvuoyyu7fNIrg/KQUVmGQaqkqZk/Vx5b33/gsEs8yX7SC1J+NV4icz6bvIE7C5G6McBaI8rVg56q5QBJWxn/87Q1sPK4+sQa8fLU5gXo4paaq4cOcQ4wR0VBHPGjKh+UlPCbA1nLXyEUX45qZ8J7/Ln4FPJE2TdzD0Z8MLSNQiykMMmSyOCiFfy84Rq60emYB2vD09KjYwsoIpeDcBDTElBbXxND72yhd9pC/1CMid/5HUMvAL27OtcIJDzNKpRPNqPOpyt2aPGz9QWIs9hQ9LiX5s8m9hjTUu/f7MyIatjjd+tSfQ3ufZxPpmJhTaBtZtKLUcfOCUqADuO+QoH8B9v6U+P0HV1GLQmtoNFTb3s74ivZgjES0qfK+8RdGgBbcCMSy8eBvh98+et1KIFqSe1KQPyXULBMTsIYnysIwiZBJYdI20vseV+wuJkcqGemehKjaAb9L57xZm3g2zX0bZ2xk/fU+bCo7TlnbW7JuF1YdURo/2Gw7VclDG1W7LOtas2LX4upifZ/23rzpsnY/ALfRgrcWP5hYmV9VxVOQA1fZvp9F2UNU+7d7xRyVm5wiLp3/0dlV7vdw1PMiZrbDAYzIVqEjRY2YU03sJhPnlwIPcZUG5ltL6S8XCxU1eYS5cjr34veBmXAvy7yN4ZjArIG0dfD/5UpBNlX1ZPoxJOwyqRi3wQWtOzd4oNKh0LkoTm8cwqgIfKhqqGOhwo71I+zXnMemTv2B2AUzABWyFztGgGULjDDzWYwJUVBTjKCn5K2QGMK1CQT7SzziOjo+BhAmqBjzuc3xYym2eedGeOIRJVyTwDw37iCMe4g5Vbnsb5ZBdxOAnMT7HU4DHpxWGuQ7GeiY30Cpbvzss55+5Km1YsbD5ea3NI9QNYIXol5apgSu9dZ8f8xS5dtHpido5BclDuLWY4lhik0tbJa07yJhH0BOyEut/GRbYTS6RfiTYWGMCkNpfSHi7HvdiTglEVHKZXaVhezH4kkXiIvKopYAlPusftpE4a5IZwvw1x/eLvoDIh/zpo9FiQInsTb2SAkKHV42XYBjpJDg4374XiVb3ws4qM0s9eSQ5HzsMU4OZJKuopFjBM+dAZEl8RUMx5uU2N486Kr141tVsGQfGjORYMCJAMsxELeNT4RmWjRcpdTGBwcx6XN9drWqPmJzcrGrH4+DRc7+n1w3kPZwu0BkNr6hQrqgo7JTB9A5kdJ/H7P4cWBMwsmuixAzJB3yrQpnGIq90lxAXLzDCdn1LPibsRt7rHNjgQBklRgPZ8vTbjXdgXrTWQsK5MdrXXQVPp0Rinq3frzZKJ0qD6Qhc40VzAraUXlob1gvkhK3vpmHgI6FRlQZNx6eRqkp0zy4AQlX813fAPtL3jMRaitGFFjo0zmErloC+h+YYdVQ6k4F/epxAoF0BmqEoKNTt6j4vQZNQ2BoqF9Vj53TOIoNmDiu9Xp15RkIgQIGcoLpfoIbenzpGUAtqFJp5W+LLnx38jHeECTJ/navKY1NWfN0sY1T8/pB8kIH3DU3DX+u6W3YwpypBMYOhbSxGjq84RZ84fWJow8pyHqn4S/9J15EcCMsXqrfwyd9mhiu3+rEo9pPpoJkdZqHjra4NvzFwuThNKy6hao/SlLw3ZADUcUp3w3SRVfW2rhl80zOgTYnKE0Hs2qp1J6H3xqPqIkvUDRMFDYyRbsFI3M9MEyovPk8rlw7/0a81cDVLmBsR2ze2pBuKb23fbeZC0uXoIvDppfTwIDxk1Oq2dGesGc+oJXWJLGkOha3CX+DUnzgAp9HGH9RsPZN63Hn4RMA5eSVhPHO+9RcRb/IOgtW31V1Q5IPGtoxPjC+MEJbVlIMYADd9aHYWUIQKopuPOHmoqSkubnAKnzgKHqgIOfW5RdAgotN6BN+O2ZYHkuemLnvQ8U9THVrS1RtLmKbcC7PeeDsYznvqzeg6VCNwmr0Yyx1wnLjyT84BZz3EJyCptD3yeueAyDWIs0L2qs/VQ3HUyqfrja0V1LdDzqAikeWuV4sc7RLIB69jEIBjCkyZedoUHqCrOvShVzyd73OdrJW0hPOuQv2qOoHDc9xVb6Yu6uq3Xqp2ZaH46A7lzevbxQEmfrzvAYSJuZ4WDk1Hz3QX1LVdiUK0EvlAGAYlG3Md30r7dcPN63yqBCIj25prpvZP0nI4+EgWoFG95V596CurXpKRBGRjQlHCvy5Ib/iW8nZJWwrET3mgd6mEhfP4KCuaLjopWs7h+MdXFdIv8dHQJgg1xi1eYqB0uDYjxwVmri0Sv5XKut/onqapC+FQiC2C1lvYJ9MVco6yDYsS3AANUfMtvtbYI2hfwZatiSsnoUeMZd34GVjkMMKA+XnjJpXgRW2SHTZplVowPmJsvXy6w3cfO1AK2dvtZEKTkC/TY9LFiKHCG0DnrMQdGm2lzlBHM9iEYynH2UcVMhUEjsc0oDBTgo2ZSQ1gzkAHeWeBXYFjYLuuf8yzTCy7/RFR81WDjXMbq2BOH5dURnxo6oivmxL3cKzKInlZkD31nvpHB9Kk7GfcfE1t+1V64b9LtgeJGlpRFxQCAqWJ5DoY77ski8gsOEOr2uywZaoO/NGa0X0y1pNQHBi3b2SUGNpcZxDT7rLbBf1FSnQ8guxGW3W+36BW0gBje4DOz6Ba6SVk0xiKgt+q2JOFyr4SYfnu+Ic1QZYIuwHBrgzr6UvOcSCzPTOo7D6IC4ISeS7zkl4h+2VoeHpnG/uWR3+ysNgPcOIXQbv0n4mr3BwQcdKJxgPSeyuP/z1Jjg4e9nUvoXegqQVIE30EHx5GHv+FAVUNTowYDJgyFhf5IvlYmEqRif6+WN1MkEJmDcQITx9FX23a4mxy1AQRsOHO/+eImX9l8EMJI3oPWzVXxSOeHU1dUWYr2uAA7AMb+vAEZSbU3qob9ibCyXeypEMpZ6863o6QPqlqGHZkuWABSTVNd4cOh9hv3qEpSx2Zy/DJMP6cItEmiBJ5PFqQnDEIt3NrA3COlOSgz43D7gpNFNJ5MBh4oFzhDPiglC2ypsNU4ISywY2erkyb1NC3Qh/IfWj0eDgZI4/ln8WPfBsT3meTjq1Uqt1E7Zl/qftqkx6aM9KueMCekSnMrcHj1CqTWWzEzPsZGcDe3Ue4Ws+XFYVxNbOFF8ezkvQGR6ZOtOLU2lQEnMBStx47vE6Pb7AYMBRj2OOfZXfisjJnpTfSNjo6sZ6qSvNxZNmDeS7Gk3yYyCk1HtKN2UnhMIjOXUzAqDv90lx9O/q/AT1ZMnit5XQe9wmQxnE/WSH0CqZ9/2Hy+Sfmpeg8RwsHI5Z8kC8H293m/LHVVM/BA7HaTJYg5Enk7M/xWpq0192ACfBai2LA/qrCjCr6Dh1BIMzMXINBmX96MJ5Hn2nxln/RXPFhwHxUmSV0EV2V0jm86/dxxuYSU1W7sVkEbN9EzkG0QFwPhyHKyb3t+Fj5WoUUTErcazE/N6EW6Lvp0d//SDPj7EV9UdJN+Amnf3Wwk3A0SlJ9Z00yvXZ7n3z70G47Hfsow8Wq1JXcfwnA+Yxa5mFsgV464KKP4T31wqIgzFPd3eCe3j5ory5fBF2hgCFyVFrLzI9eetNXvM7oQqyFgDo4CTp/hDV9NMX9JDHQ/nyHTLvZLNLF6ftn2OxjGm8+PqOwhxnPHWipkE/8wbtyri80Sr7pMNkQGMfo4ZYK9OcCC4ESVFFbLMIvlxSoRqWie0wxqnLfcLSXMSpMMQEJYDVObYsXIQNv4TGNwjq1kvT1UOkicTrG3IaBZ3XdScS3u8sgeZPVpOLkbiF940FjbCeNRINNvDbd01EPBrTCPpm12m43ze1bBB59Ia6Ovhnur/Nvx3IxwSWol+3H2qfCJR8df6aQf4v6WiONxkK+IqT4pKQrZK/LplgDI/PJZbOep8dtbV7oCr6CgfpWa8NczOkPx81iSHbsNhVSJBOtrLIMrL31LK9TqHqAbAHe0RLmmV806kRLDLNEhUEJfm9u0sxpkL93Zgd6rw+tqBfTMi59xqXHLXSHwSbSBl0EK0+loECOPtrl+/nsaFe197di4yUgoe4jKoAJDXc6DGDjrQOoFDWZJ9HXwt8xDrQP+7aRwWKWI1GF8s8O4KzxWBBcwnl3vnl1Oez3oh6Ea1vjR7/z7DDTrFtqU2W/KAEzAuXDNZ7MY73MF216dzdSbWmUp4lcm7keJfWaMHgut9x5C9mj66Z0lJ+yhsjVvyiWrfk1lzPOTdhG15Y7gQlXtacvI7qv/XNSscDwqkgwHT/gUsD5yB7LdRRvJxQGYINn9hTpodKFVSTPrtGvyQw+HlRFXIkodErAGu9Iy1YpfSPc3jkFh5CX3lPxv7aqjE/JAfTIpEjGb/H7MO0e2vsViSW1qa/Lmi4/n4DEI3g7lYrcanspDfEpKkdV1OjSLOy0BCUqVoECaB55vs06rXl4jqmLsPsFM/7vYJ0vrBhDCm/00A/H81l1uekJ/6Lml3Hb9+NKiLqATJmDpyzfYZFHumEjC662L0Bwkxi7E9U4cQA0XMVDuMYAIeLMPgQaMVOd8fmt5SflFIfuBoszeAw7ow5gXPE2Y/yBc/7jExARUf/BxIHQBF5Sn3i61w4z5xJdCyO1F1X3+3ax+JSvMeZ7S6QSKp1Fp/sjYz6Z+VgCZzibGeEoujryfMulH7Rai5kAft9ebcW50DyJr2uo2z97mTWIu45YsSnNSMrrNUuG1XsYBtD9TDYzQffKB87vWbkM4EbPAFgoBV4GQS+vtFDUqOFAoi1nTtmIOvg38N4hT2Sn8r8clmBCXspBlMBYTnrqFJGBT3wZOzAyJDre9dHH7+x7qaaKDOB4UQALD5ecS0DE4obubQEiuJZ0EpBVpLuYcce8Aa4PYd/V4DLDAJBYKQPCWTcrEaZ5HYbJi11Gd6hjGom1ii18VHYnG28NKpkz2UKVPxlhYSp8uZr367iOmoy7zsxehW9wzcy2zG0a80PBMCRQMb32hnaHeOR8fnNDzZhaNYhkOdDsBUZ3loDMa1YP0uS0cjUP3b/6DBlqmZOeNABDsLl5BI5QJups8uxAuWJdkUB/pO6Zax6tsg7fN5mjjDgMGngO+DPcKqiHIDbFIGudxtPTIyDi9SFMKBDcfdGQRv41q1AqmxgkVfJMnP8w/Bc7N9/TR6C7mGObFqFkIEom8sKi2xYqJLTCHK7cxzaZvqODo22c3wisBCP4HeAgcRbNPAsBkNRhSmD48dHupdBRw4mIvtS5oeF6zeT1KMCyhMnmhpkFAGWnGscoNkwvQ8ZM5lE/vgTHFYL99OuNxdFBxTEDd5v2qLR8y9WkXsWgG6kZNndFG+pO/UAkOCipqIhL3hq7cRSdrCq7YhUsTocEcnaFa6nVkhnSeRYUA1YO0z5itF9Sly3VlxYDw239TJJH6f3EUfYO5lb7bcFcz8Bp7Oo8QmnsUHOz/fagVUBtKEw1iT88j+aKkv8cscKNkMxjYr8344D1kFoZ7/td1W6LCNYN594301tUGRmFjAzeRg5vyoM1F6+bJZ/Q54jN/k8SFd3DxPTYaAUsivsBfgTn7Mx8H2SpPt4GOdYRnEJOH6jHM2p6SgB0gzIRq6fHxGMmSmqaPCmlfwxiuloaVIitLGN8wie2CDWhkzLoCJcODh7KIOAqbHEvXdUxaS4TTTs07Clzj/6GmVs9kiZDerMxEnhUB6QQPlcfqkG9882RqHoLiHGBoHfQuXIsAG8GTAtao2KVwRnvvam8jo1e312GQAKWEa4sUVEAMG4G6ckcONDwRcg1e2D3+ohXgY4UAWF8wHKQMrSnzCgfFpsxh+aHXMGtPQroQasRY4U6UdG0rz1Vjbka0MekOGRZQEvqQFlxseFor8zWFgHek3v29+WqN6gaK5gZOTOMZzpQIC1201LkMCXild3vWXSc5UX9xcFYfbRPzGFa1FDcPfPB/jUEq/FeGt419CI3YmBlVoHsa4KdcwQP5ZSwHHhFJ7/Ph/Rap/4vmG91eDwPP0lDfCDRCLszTqfzM71xpmiKi2HwS4WlqvGNwtvwF5Dqpn6KTq8ax00UMPkxDcZrEEEsIvHiUXXEphdb4GB4FymlPwBz4Gperqq5pW7TQ6/yNRhW8VT5NhuP0udlxo4gILq5ZxAZk8ZGh3g4CqxJlPKY7AQxupfUcVpWT5VItp1+30UqoyP4wWsRo3olRRgkWZZ2ZN6VC3OZFeXB8NbnUrSdikNptD1QiGuKkr8EmSR/AK9Rw+FF3s5uwuPbvHGiPeFOViltMK7AUaOsq9+x9cndk3iJEE5LKZRlWJbKOZweROzmPNVPkjE3K/TyA57Rs68TkZ3MR8akKpm7cFjnjPd/DdkWjgYoKHSr5Wu5ssoBYU4acRs5g2DHxUmdq8VXOXRbunD8QN0LhgkssgahcdoYsNvuXGUK/KXD/7oFb+VGdhqIn02veuM5bLudJOc2Ky0GMaG4W/xWBxIJcL7yliJOXOpx0AkBqUgzlDczmLT4iILXDxxtRR1oZa2JWFgiAb43obrJnG/TZC2KSK2wqOzRZTXavZZFMb1f3bXvVaNaK828w9TO610gk8JNf3gMfETzXXsbcvRGCG9JWQZ6+cDPqc4466Yo2RcKH+PILeKOqtnlbInR3MmBeGG3FH10yzkybuqEC2HSQwpA0An7d9+73BkDUTm30bZmoP/RGbgFN+GrCOfADgqr0WbI1a1okpFms8iHYw9hm0zUvlEMivBRxModrbJJ+9/p3jUdQQ9BCtQdxnOGrT5dzRUmw0593/mbRSdBg0nRvRZM5/E16m7ZHmDEtWhwvfdZCZ8J8M12W0yRMszXamWfQTwIZ4ayYktrnscQuWr8idp3PjT2eF/jmtdhIfcpMnb+IfZY2FebW6UY/AK3jP4u3Tu4zE4qlnQgLFbM19EBIsNf7KhjdbqQ/D6yiDb+NlEi2SKD+ivXVUK8ib0oBo366gXkR8ZxGjpJIDcEgZPa9TcYe0TIbiPl/rPUQDu3XBJ9X/GNq3FAUsKsll57DzaGMrjcT+gctp+9MLYXCq+sqP81eVQ0r9lt+gcQfZbACRbEjvlMskztZG8gbC8Qn9tt26Q7y7nDrbZq/LEz7kR6Jc6pg3N9rVX8Y5MJrGlML9p9lU4jbTkKqCveeZUJjHB03m2KRKR2TytoFkTXOLg7keU1s1lrPMQJpoOKLuAAC+y1HlJucU6ysB5hsXhvSPPLq5J7JtnqHKZ4vYjC4Vy8153QY+6780xDuGARsGbOs1WqzH0QS765rnSKEbbKlkO8oI/VDwUd0is13tKpqILu1mDJFNy/iJAWcvDgjxvusIT+PGz3ST/J9r9Mtfd0jpaGeiLYIqXc7DiHSS8TcjFVksi66PEkxW1z6ujbLLUGNNYnzOWpH8BZGK4bCK7iR+MbIv8ncDAz1u4StN3vTTzewr9IQjk9wxFxn+6N1ddKs0vffJiS08N3a4G1SVrlZ97Q/M+8G9fe5AP6d9/Qq4WRnORVhofPIKEdCr3llspUfE0oKIIYoByBRPh+bX1HLS3JWGJRhIvE1aW4NTd8ePi4Z+kXb+Z8snYfSNcqijhAgVsx4RCM54cXUiYkjeBmmC4ajOHrChoELscJJC7+9jjMjw5BagZKlgRMiSNYz7h7vvZIoQqbtQmspc0cUk1G/73iXtSpROl5wtLgQi0mW2Ex8i3WULhcggx6E1LMVHUsdc9GHI1PH3U2Ko0PyGdn9KdVOLm7FPBui0i9a0HpA60MsewVE4z8CAt5d401Gv6zXlIT5Ybit1VIA0FCs7wtvYreru1fUyW3oLAZ/+aTnZrOcYRNVA8spoRtlRoWflsRClFcgzkqiHOrf0/SVw+EpVaFlJ0g4Kxq1MMOmiQdpMNpte8lMMQqm6cIFXlnGbfJllysKDi+0JJMotkqgIxOSQgU9dn/lWkeVf8nUm3iwX2Nl3WDw9i6AUK3vBAbZZrcJpDQ/N64AVwjT07Jef30GSSmtNu2WlW7YoyW2FlWfZFQUwk867EdLYKk9VG6JgEnBiBxkY7LMo4YLQJJlAo9l/oTvJkSARDF/XtyAzM8O2t3eT/iXa6wDN3WewNmQHdPfsxChU/KtLG2Mn8i4ZqKdSlIaBZadxJmRzVS/o4yA65RTSViq60oa395Lqw0pzY4SipwE0SXXsKV+GZraGSkr/RW08wPRvqvSUkYBMA9lPx4m24az+IHmCbXA+0faxTRE9wuGeO06DIXa6QlKJ3puIyiuAVfPr736vzo2pBirS+Vxel3TMm3JKhz9o2ZoRvaFVpIkykb0Hcm4oHFBMcNSNj7/4GJt43ogonY2Vg4nsDQIWxAcorpXACzgBqQPjYsE/VUpXpwNManEru4NwMCFPkXvMoqvoeLN3qyu/N1eWEHttMD65v19l/0kH2mR35iv/FI+yjoHJ9gPMz67af3Mq/BoWXqu3rphiWMXVkmnPSEkpGpUI2h1MThideGFEOK6YZHPwYzMBvpNC7+ZHxPb7epfefGyIB4JzO9DTNEYnDLVVHdQyvOEVefrk6Uv5kTQYVYWWdqrdcIl7yljwwIWdfQ/y+2QB3eR/qxYObuYyB4gTbo2in4PzarU1sO9nETkmj9/AoxDA+JM3GMqQtJR4jtduHtnoCLxd1gQUscHRB/MoRYIEsP2pDZ9KvHgtlk1iTbWWbHhohwFEYX7y51fUV2nuUmnoUcqnWIQAAgl9LTVX+Bc0QGNEhChxHR4YjfE51PUdGfsSFE6ck7BL3/hTf9jLq4G1IafINxOLKeAtO7quulYvH5YOBc+zX7CrMgWnW47/jfRsWnJjYYoE7xMfWV2HN2iyIqLI",eN=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),YO=4;function G2(Y){let J=0;function Q(){return Y[J++]<<8|Y[J++]}let q=Q(),X=1,G=[0,1];for(let C=1;C<q;C++)G.push(X+=Q());let $=Q(),W=J;J+=$;let j=0,K=0;function z(){if(j==0)K=K<<8|Y[J++],j=8;return K>>--j&1}let M=31,N=2**M,O=N>>>1,D=O>>1,U=N-1,A=0;for(let C=0;C<M;C++)A=A<<1|z();let w=[],v=0,R=N;while(!0){let C=Math.floor(((A-v+1)*X-1)/R),S=0,T=q;while(T-S>1){let f=S+T>>>1;if(C<G[f])T=f;else S=f}if(S==0)break;w.push(S);let d=v+Math.floor(R*G[S]/X),u=v+Math.floor(R*G[S+1]/X)-1;while(((d^u)&O)==0)A=A<<1&U|z(),d=d<<1&U,u=u<<1&U|1;while(d&~u&D)A=A&O|A<<1&U>>>1|z(),d=d<<1^O,u=(u^O)<<1|O|1;v=d,R=1+u-d}let E=q-4;return w.map((C)=>{switch(C-E){case 3:return E+65792+(Y[W++]<<16|Y[W++]<<8|Y[W++]);case 2:return E+256+(Y[W++]<<8|Y[W++]);case 1:return E+Y[W++];default:return C-1}})}function $2(Y){let J=0;return()=>Y[J++]}function R7(Y){return $2(G2(W2(Y)))}function W2(Y){let J=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((X,G)=>J[X.charCodeAt(0)]=G);let Q=Y.length,q=new Uint8Array(6*Q>>3);for(let X=0,G=0,$=0,W=0;X<Q;X++)if(W=W<<6|J[Y.charCodeAt(X)],$+=6,$>=8)q[G++]=W>>($-=8);return q}function j2(Y){return Y&1?~Y>>1:Y>>1}function K2(Y,J){let Q=Array(Y);for(let q=0,X=0;q<Y;q++)Q[q]=X+=j2(J());return Q}function Wq(Y,J=0){let Q=[];while(!0){let q=Y(),X=Y();if(!X)break;J+=q;for(let G=0;G<X;G++)Q.push(J+G);J+=X+1}return Q}function V7(Y){return jq(()=>{let J=Wq(Y);if(J.length)return J})}function L7(Y){let J=[];while(!0){let Q=Y();if(Q==0)break;J.push(z2(Q,Y))}while(!0){let Q=Y()-1;if(Q<0)break;J.push(M2(Q,Y))}return J.flat()}function jq(Y){let J=[];while(!0){let Q=Y(J.length);if(!Q)break;J.push(Q)}return J}function E7(Y,J,Q){let q=Array(Y).fill().map(()=>[]);for(let X=0;X<J;X++)K2(Y,Q).forEach((G,$)=>q[$].push(G));return q}function z2(Y,J){let Q=1+J(),q=J(),X=jq(J);return E7(X.length,1+Y,J).flatMap((G,$)=>{let[W,...j]=G;return Array(X[$]).fill().map((K,z)=>{let M=z*q;return[W+z*Q,j.map((N)=>N+M)]})})}function M2(Y,J){let Q=1+J();return E7(Q,1+Y,J).map((q)=>[q[0],q.slice(1)])}function N2(Y){let J=[],Q=Wq(Y);return X(q([]),[]),J;function q(G){let $=Y(),W=jq(()=>{let j=Wq(Y).map((K)=>Q[K]);if(j.length)return q(j)});return{S:$,B:W,Q:G}}function X({S:G,B:$},W,j){if(G&4&&j===W[W.length-1])return;if(G&2)j=W[W.length-1];if(G&1)J.push(W);for(let K of $)for(let z of K.Q)X(K,[...W,z],j)}}function O2(Y){return Y.toString(16).toUpperCase().padStart(2,"0")}function w7(Y){return`{${O2(Y)}}`}function D2(Y){let J=[];for(let Q=0,q=Y.length;Q<q;){let X=Y.codePointAt(Q);Q+=X<65536?1:2,J.push(X)}return J}function tQ(Y){let J=Y.length;if(J<4096)return String.fromCodePoint(...Y);let Q=[];for(let q=0;q<J;)Q.push(String.fromCodePoint(...Y.slice(q,q+=4096)));return Q.join("")}function U2(Y,J){let Q=Y.length,q=Q-J.length;for(let X=0;q==0&&X<Q;X++)q=Y[X]-J[X];return q}var H2="AEUDTAHBCFQATQDRADAAcgAgADQAFAAsABQAHwAOACQADQARAAoAFwAHABIACAAPAAUACwAFAAwABAAQAAMABwAEAAoABQAIAAIACgABAAQAFAALAAIACwABAAIAAQAHAAMAAwAEAAsADAAMAAwACgANAA0AAwAKAAkABAAdAAYAZwDSAdsDJgC0CkMB8xhZAqfoC190UGcThgBurwf7PT09Pb09AjgJum8OjDllxHYUKXAPxzq6tABAxgK8ysUvWAgMPT09PT09PSs6LT2HcgWXWwFLoSMEEEl5RFVMKvO0XQ8ExDdJMnIgsj26PTQyy8FfEQ8AY8IPAGcEbwRwBHEEcgRzBHQEdQR2BHcEeAR6BHsEfAR+BIAEgfndBQoBYgULAWIFDAFiBNcE2ATZBRAFEQUvBdALFAsVDPcNBw13DYcOMA4xDjMB4BllHI0B2grbAMDpHLkQ7QHVAPRNQQFnGRUEg0yEB2uaJF8AJpIBpob5AERSMAKNoAXqaQLUBMCzEiACnwRZEkkVsS7tANAsBG0RuAQLEPABv9HICTUBXigPZwRBApMDOwAamhtaABqEAY8KvKx3LQ4ArAB8UhwEBAVSagD8AEFZADkBIadVj2UMUgx5Il4ANQC9AxIB1BlbEPMAs30CGxlXAhwZKQIECBc6EbsCoxngzv7UzRQA8M0BawL6ZwkN7wABAD33OQRcsgLJCjMCjqUChtw/km+NAsXPAoP2BT84PwURAK0RAvptb6cApQS/OMMey5HJS84UdxpxTPkCogVFITaTOwERAK5pAvkNBOVyA7q3BKlOJSALAgUIBRcEdASpBXqzABXFSWZOawLCOqw//AolCZdvv3dSBkEQGyelEPcMMwG1ATsN7UvYBPEGOwTJH30ZGQ/NlZwIpS3dDO0m4y6hgFoj9SqDBe1L9DzdC01RaA9ZC2UJ4zpjgU4DIQENIosK3Q05CG0Q8wrJaw3lEUUHOQPVSZoApQcBCxEdNRW1JhBirAsJOXcG+xr2C48mrxMpevwF0xohBk0BKRr/AM8u54WwWjFcHE9fBgMLJSPHFKhQIA0lQLd4SBobBxUlqQKRQ3BKh1E2HpMh9jw9DWYuE1F8B/U8BRlPC4E8nkarRQ4R0j6NPUgiSUwsBDV/LC8niwnPD4UMuXxyAVkJIQmxDHETMREXN8UIOQcZLZckJxUIIUaVYJoE958D8xPRAwsFPwlBBxMDtRwtEy4VKQUNgSTXAvM21S6zAo9WgAEXBcsPJR/fEFBH4A7pCJsCZQODJesALRUhABcimwhDYwBfj9hTBS7LCMdqbCN0A2cU52ERcweRDlcHpxwzFb8c4XDIXguGCCijrwlbAXUJmQFfBOMICTVbjKAgQWdTi1gYmyBhQT9d/AIxDGUVn0S9h3gCiw9rEhsBNQFzBzkNAQJ3Ee0RaxCVCOuGBDW1M/g6JQRPIYMgEQonA09szgsnJvkM+GkBoxJiAww0PXfuZ6tgtiQX/QcZMsVBYCHxC5JPzQycGsEYQlQuGeQHvwPzGvMn6kFXBf8DowMTOk0z7gS9C2kIiwk/AEkOoxcH1xhqCnGM0AExiwG3mQNXkYMCb48GNwcLAGcLhwV55QAdAqcIowAFAM8DVwA5Aq0HnQAZAIVBAT0DJy8BIeUCjwOTCDHLAZUvAfMpBBvDDBUA9zduSgLDsQKAamaiBd1YAo4CSTUBTSUEBU5HUQOvceEA2wBLBhPfRwEVq0rLGuNDAd9vKwDHAPsABTUHBUEBzQHzbQC3AV8LMQmis7UBTekpAIMAFWsB1wKJAN0ANQB/8QFTAE0FWfkF0wJPSQERMRgrV2EBuwMfATMBDQB5BsuNpckHHwRtB9MCEBsV4QLvLge1AQMi3xPNQsUCvd5VoWACZIECYkJbTa9bNyACofcCaJgCZgkCn4Q4GwsCZjsCZiYEbgR/A38TA36SOQY5dxc5gjojIwJsHQIyNjgKAm3HAm2u74ozZ0UrAWcA3gDhAEoFB5gMjQD+C8IADbUCdy8CdqI/AnlLQwJ4uh1c20WuRtcCfD8CesgCfQkCfPAFWQUgSABIfWMkAoFtAoAAAoAFAn+uSVhKWxUXSswC0QEC0MxLJwOITwOH5kTFkTIC8qFdAwMDrkvOTC0lA89NTE2vAos/AorYwRsHHUNnBbcCjjcCjlxAl4ECjtkCjlx4UbRTNQpS1FSFApP7ApMMAOkAHFUeVa9V0AYsGymVhjLheGZFOzkCl58C77JYIagAWSUClo8ClnycAKlZrFoJgU0AOwKWtQKWTlxEXNECmcsCmWRcyl0HGQKcmznCOp0CnBYCn5sCnriKAB0PMSoPAp3xAp6SALU9YTRh7wKe0wKgbgGpAp6fHwKeTqVjyGQnJSsCJ68CJn4CoPsCoEwCot0CocQCpi8Cpc4Cp/8AfQKn8mh8aLEAA0lqHGrRAqzjAqyuAq1nAq0CAlcdAlXcArHh1wMfTmyXArK9DQKy6Bds4G1jbUhfAyXNArZcOz9ukAMpRQK4XgK5RxUCuSp3cDZw4QK9GQK72nCWAzIRAr6IcgIDM3ECvhpzInNPAsPLAsMEc4J0SzVFdOADPKcDPJoDPb8CxXwCxkcCxhCJAshpUQLIRALJTwLJLgJknQLd0nh5YXiueSVL0AMYo2cCAmH0GfOVJHsLXpJeuxECz2sCz2wvS1PS8xOfAMatAs9zASnqA04SfksFAtwnAtuKAtJPA1JcA1NfAQEDVYyAiT8AyxbtYEWCHILTgs6DjQLaxwLZ3oQQhEmnPAOGpQAvA2QOhnFZ+QBVAt9lAt64c3cC4i/tFAHzMCcB9JsB8tKHAuvzAulweQLq+QLq5AD5RwG5Au6JAuuclqqXAwLuPwOF4Jh5cOBxoQLzAwBpA44WmZMC9xMDkW4DkocC95gC+dkC+GaaHJqruzebHgOdgwL++gEbADmfHJ+zAwWNA6ZqA6bZANHFAwZqoYiiBQkDDEkCwAA/AwDhQRdTARHzA2sHl2cFAJMtK7evvdsBiZkUfxEEOQH7KQUhDp0JnwCS/SlXxQL3AZ0AtwW5AG8LbUEuFCaNLgFDAYD8AbUmAHUDDgRtACwCFgyhAAAKAj0CagPdA34EkQEgRQUhfAoABQBEABMANhICdwEABdUDa+8KxQIA9wqfJ7+xt+UBkSFBQgHpFH8RNMCJAAQAGwBaAkUChIsABjpTOpSNbQC4Oo860ACNOME63AClAOgAywE6gTo7Ofw5+Tt2iTpbO56JOm85GAFWATMBbAUvNV01njWtNWY1dTW2NcU1gjWRNdI14TWeNa017jX9NbI1wTYCNhE1xjXVNhY2JzXeNe02LjY9Ni41LSE2OjY9Njw2yTcIBJA8VzY4Nt03IDcPNsogN4k3MAoEsDxnNiQ3GTdsOo03IULUQwdC4EMLHA8PCZsobShRVQYA6X8A6bABFCnXAukBowC9BbcAbwNzBL8MDAMMAQgDAAkKCwsLCQoGBAVVBI/DvwDz9b29kaUCb0QtsRTNLt4eGBcSHAMZFhYZEhYEARAEBUEcQRxBHEEcQRxBHEEaQRxBHEFCSTxBPElISUhBNkM2QTYbNklISVmBVIgBFLWZAu0BhQCjBcEAbykBvwGJAaQcEZ0ePCklMAAhMvAIMAL54gC7Bm8EescjzQMpARQpKgDUABavAj626xQAJP0A3etzuf4NNRA7efy2Z9NQrCnC0OSyANz5BBIbJ5IFDR6miIavYS6tprjjmuKebxm5C74Q225X1pkaYYPb6f1DK4k3xMEBb9S2WMjEibTNWhsRJIA+vwNVEiXTE5iXs/wezV66oFLfp9NZGYW+Gk19J2+bCT6Ye2w6LDYdgzKMUabk595eLBCXANz9HUpWbATq9vqXVx9XDg+Pc9Xp4+bsS005SVM/BJBM4687WUuf+Uj9dEi8aDNaPxtpbDxcG1THTImUMZq4UCaaNYpsVqraNyKLJXDYsFZ/5jl7bLRtO88t7P3xZaAxhb5OdPMXqsSkp1WCieG8jXm1U99+blvLlXzPCS+M93VnJCiK+09LfaSaBAVBomyDgJua8dfUzR7ga34IvR2Nvj+A9heJ6lsl1KG4NkI1032Cnff1m1wof2B9oHJK4bi6JkEdSqeNeiuo6QoZZincoc73/TH9SXF8sCE7XyuYyW8WSgbGFCjPV0ihLKhdPs08Tx82fYAkLLc4I2wdl4apY7GU5lHRFzRWJep7Ww3wbeA3qmd59/86P4xuNaqDpygXt6M85glSBHOCGgJDnt+pN9bK7HApMguX6+06RZNjzVmcZJ+wcUrJ9//bpRNxNuKpNl9uFds+S9tdx7LaM5ZkIrPj6nIU9mnbFtVbs9s/uLgl8MVczAwet+iOEzzBlYW7RCMgE6gyNLeq6+1tIx4dpgZnd0DksJS5f+JNDpwwcPNXaaVspq1fbQajOrJgK0ofKtJ1Ne90L6VO4MOl5S886p7u6xo7OLjG8TGL+HU1JXGJgppg4nNbNJ5nlzSpuPYy21JUEcUA94PoFiZfjZue+QnyQ80ekOuZVkxx4g+cvhJfHgNl4hy1/a6+RKcKlar/J29y//EztlbVPHVUeQ1zX86eQVAjR/M3dA9w4W8LfaXp4EgM85wOWasli837PzVMOnsLzR+k3o75/lRPAJSE1xAKQzEi5v10ke+VBvRt1cwQRMd+U5mLCTGVd6XiZtgBG5cDi0w22GKcVNvHiu5LQbZEDVtz0onn7k5+heuKXVsZtSzilkLRAUmjMXEMB3J9YC50XBxPiz53SC+EhnPl9WsKCv92SM/OFFIMJZYfl0WW8tIO3UxYcwdMAj7FSmgrsZ2aAZO03BOhP1bNNZItyXYQFTpC3SG1VuPDqH9GkiCDmE+JwxyIVSO5siDErAOpEXFgjy6PQtOVDj+s6e1r8heWVvmZnTciuf4EiNZzCAd7SOMhXERIOlsHIMG399i9aLTy3m2hRLZjJVDNLS53iGIK11dPqQt0zBDyg6qc7YqkDm2M5Ve6dCWCaCbTXX2rToaIgz6+zh4lYUi/+6nqcFMAkQJKHYLK0wYk5N9szV6xihDbDDFr45lN1K4aCXBq/FitPSud9gLt5ZVn+ZqGX7cwm2z5EGMgfFpIFyhGGuDPmso6TItTMwny+7uPnLCf4W6goFQFV0oQSsc9VfMmVLcLr6ZetDZbaSFTLqnSO/bIPjA3/zAUoqgGFAEQS4IhuMzEp2I3jJzbzkk/IEmyax+rhZTwd6f+CGtwPixu8IvzACquPWPREu9ZvGkUzpRwvRRuaNN6cr0W1wWits9ICdYJ7ltbgMiSL3sTPeufgNcVqMVWFkCPDH4jG2jA0XcVgQj62Cb29v9f/z/+2KbYvIv/zzjpQAPkliaVDzNrW57TZ/ZOyZD0nlfMmAIBIAGAI0D3k/mdN4xr9v85ZbZbbqfH2jGd5hUqNZWwl5SPfoGmfElmazUIeNL1j/mkF7VNAzTq4jNt8JoQ11NQOcmhprXoxSxfRGJ9LDEOAQ+dmxAQH90iti9e2u/MoeuaGcDTHoC+xsmEeWmxEKefQuIzHbpw5Tc5cEocboAD09oipWQhtTO1wivf/O+DRe2rpl/E9wlrzBorjJsOeG1B/XPW4EaJEFdNlECEZga5ZoGRHXgYouGRuVkm8tDESiEyFNo+3s5M5puSdTyUL2llnINVHEt91XUNW4ewdMgJ4boJfEyt/iY5WXqbA+A2Fkt5Z0lutiWhe9nZIyIUjyXDC3UsaG1t+eNx6z4W/OYoTB7A6x+dNSTOi9AInctbESqm5gvOLww7OWXPrmHwVZasrl4eD113pm+JtT7JVOvnCXqdzzdTRHgJ0PiGTFYW5Gvt9R9LD6Lzfs0v/TZZHSmyVNq7viIHE6DBK7Qp07Iz55EM8SYtQvZf/obBniTWi5C2/ovHfw4VndkE5XYdjOhCMRjDeOEfXeN/CwfGduiUIfsoFeUxXeQXba7c7972XNv8w+dTjjUM0QeNAReW+J014dKAD/McQYXT7c0GQPIkn3Ll6R7gGjuiQoZD0TEeEqQpKoZ15g/0OPQI17QiSv9AUROa/V/TQN3dvLArec3RrsYlvBm1b8LWzltdugsC50lNKYLEp2a+ZZYqPejULRlOJh5zj/LVMyTDvwKhMxxwuDkxJ1QpoNI0OTWLom4Z71SNzI9TV1iXJrIu9Wcnd+MCaAw8o1jSXd94YU/1gnkrC9BUEOtQvEIQ7g0i6h+KL2JKk8Ydl7HruvgWMSAmNe+LshGhV4qnWHhO9/RIPQzY1tHRj2VqOyNsDpK0cww+56AdDC4gsWwY0XxoucIWIqs/GcwnWqlaT0KPr8mbK5U94/301i1WLt4YINTVvCFBrFZbIbY8eycOdeJ2teD5IfPLCRg7jjcFTwlMFNl9zdh/o3E/hHPwj7BWg0MU09pPrBLbrCgm54A6H+I6v27+jL5gkjWg/iYdks9jbfVP5y/n0dlgWEMlKasl7JvFZd56LfybW1eeaVO0gxTfXZwD8G4SI116yx7UKVRgui6Ya1YpixqXeNLc8IxtAwCU5IhwQgn+NqHnRaDv61CxKhOq4pOX7M6pkA+Pmpd4j1vn6ACUALoLLc4vpXci8VidLxzm7qFBe7s+quuJs6ETYmnpgS3LwSZxPIltgBDXz8M1k/W2ySNv2f9/NPhxLGK2D21dkHeSGmenRT3Yqcdl0m/h3OYr8V+lXNYGf8aCCpd4bWjE4QIPj7vUKN4Nrfs7ML6Y2OyS830JCnofg/k7lpFpt4SqZc5HGg1HCOrHvOdC8bP6FGDbE/VV0mX4IakzbdS/op+Kt3G24/8QbBV7y86sGSQ/vZzU8FXs7u6jIvwchsEP2BpIhW3G8uWNwa3HmjfH/ZjhhCWvluAcF+nMf14ClKg5hGgtPLJ98ueNAkc5Hs2WZlk2QHvfreCK1CCGO6nMZVSb99VM/ajr8WHTte9JSmkXq/i/U943HEbdzW6Re/S88dKgg8pGOLlAeNiqrcLkUR3/aClFpMXcOUP3rmETcWSfMXZE3TUOi8i+fqRnTYLflVx/Vb/6GJ7eIRZUA6k3RYR3iFSK9c4iDdNwJuZL2FKz/IK5VimcNWEqdXjSoxSgmF0UPlDoUlNrPcM7ftmA8Y9gKiqKEHuWN+AZRIwtVSxye2Kf8rM3lhJ5XcBXU9n4v0Oy1RU2M+4qM8AQPVwse8ErNSob5oFPWxuqZnVzo1qB/IBxkM3EVUKFUUlO3e51259GgNcJbCmlvrdjtoTW7rChm1wyCKzpCTwozUUEOIcWLneRLgMXh+SjGSFkAllzbGS5HK7LlfCMRNRDSvbQPjcXaenNYxCvu2Qyznz6StuxVj66SgI0T8B6/sfHAJYZaZ78thjOSIFumNWLQbeZixDCCC+v0YBtkxiBB3jefHqZ/dFHU+crbj6OvS1x/JDD7vlm7zOVPwpUC01nhxZuY/63E7g",Kq=44032,U$=4352,H$=4449,B$=4519,A7=19,C7=21,nQ=28,R$=C7*nQ,B2=A7*R$,R2=Kq+B2,V2=U$+A7,L2=H$+C7,E2=B$+nQ;function pX(Y){return Y>>24&255}function I7(Y){return Y&16777215}var Y5,JO,J5,lG;function w2(){let Y=R7(H2);Y5=new Map(V7(Y).flatMap((J,Q)=>J.map((q)=>[q,Q+1<<24]))),JO=new Set(Wq(Y)),J5=new Map,lG=new Map;for(let[J,Q]of L7(Y)){if(!JO.has(J)&&Q.length==2){let[q,X]=Q,G=lG.get(q);if(!G)G=new Map,lG.set(q,G);G.set(X,J)}J5.set(J,Q.reverse())}}function S7(Y){return Y>=Kq&&Y<R2}function A2(Y,J){if(Y>=U$&&Y<V2&&J>=H$&&J<L2)return Kq+(Y-U$)*R$+(J-H$)*nQ;else if(S7(Y)&&J>B$&&J<E2&&(Y-Kq)%nQ==0)return Y+(J-B$);else{let Q=lG.get(Y);if(Q){if(Q=Q.get(J),Q)return Q}return-1}}function v7(Y){if(!Y5)w2();let J=[],Q=[],q=!1;function X(G){let $=Y5.get(G);if($)q=!0,G|=$;J.push(G)}for(let G of Y)while(!0){if(G<128)J.push(G);else if(S7(G)){let $=G-Kq,W=$/R$|0,j=$%R$/nQ|0,K=$%nQ;if(X(U$+W),X(H$+j),K>0)X(B$+K)}else{let $=J5.get(G);if($)Q.push(...$);else X(G)}if(!Q.length)break;G=Q.pop()}if(q&&J.length>1){let G=pX(J[0]);for(let $=1;$<J.length;$++){let W=pX(J[$]);if(W==0||G<=W){G=W;continue}let j=$-1;while(!0){let K=J[j+1];if(J[j+1]=J[j],J[j]=K,!j)break;if(G=pX(J[--j]),G<=W)break}G=pX(J[$])}}return J}function C2(Y){let J=[],Q=[],q=-1,X=0;for(let G of Y){let $=pX(G),W=I7(G);if(q==-1)if($==0)q=W;else J.push(W);else if(X>0&&X>=$){if($==0)J.push(q,...Q),Q.length=0,q=W;else Q.push(W);X=$}else{let j=A2(q,W);if(j>=0)q=j;else if(X==0&&$==0)J.push(q),q=W;else Q.push(W),X=$}}if(q>=0)J.push(q,...Q);return J}function _7(Y){return v7(Y).map(I7)}function I2(Y){return C2(v7(Y))}var QO=45,k7=".",F7=65039,P7=1,V$=(Y)=>Array.from(Y);function zq(Y,J){return Y.P.has(J)||Y.Q.has(J)}class T7 extends Array{get is_emoji(){return!0}}var Q5,Z7,cJ,X5,x7,S2,ZQ,VW,vQ,xJ,XO,q5;function Dz(){if(Q5)return;let Y=R7(q2),J=()=>Wq(Y),Q=()=>new Set(J()),q=(z,M)=>M.forEach((N)=>z.add(N));Q5=new Map(L7(Y)),Z7=Q(),cJ=J(),X5=new Set(J().map((z)=>cJ[z])),cJ=new Set(cJ),x7=Q(),S2=Q();let X=V7(Y),G=Y(),$=()=>{let z=new Set;return J().forEach((M)=>q(z,X[M])),q(z,J()),z};ZQ=jq((z)=>{let M=jq(Y).map((N)=>N+96);if(M.length){let N=z>=G;if(M[0]-=32,M=tQ(M),N)M=`Restricted[${M}]`;let O=$(),D=$(),U=!Y();return{N:M,P:O,Q:D,M:U,R:N}}}),VW=Q(),vQ=new Map;let W=J().concat(V$(VW)).sort((z,M)=>z-M);W.forEach((z,M)=>{let N=Y(),O=W[M]=N?W[M-N]:{V:[],M:new Map};if(O.V.push(z),!VW.has(z))vQ.set(z,O)});for(let{V:z,M}of new Set(vQ.values())){let N=[];for(let D of z){let U=ZQ.filter((w)=>zq(w,D)),A=N.find(({G:w})=>U.some((v)=>w.has(v)));if(!A)A={G:new Set,V:[]},N.push(A);A.V.push(D),q(A.G,U)}let O=N.flatMap((D)=>V$(D.G));for(let{G:D,V:U}of N){let A=new Set(O.filter((w)=>!D.has(w)));for(let w of U)M.set(w,A)}}xJ=new Set;let j=new Set,K=(z)=>xJ.has(z)?j.add(z):xJ.add(z);for(let z of ZQ){for(let M of z.P)K(M);for(let M of z.Q)K(M)}for(let z of xJ)if(!vQ.has(z)&&!j.has(z))vQ.set(z,P7);q(xJ,_7(xJ)),XO=N2(Y).map((z)=>T7.from(z)).sort(U2),q5=new Map;for(let z of XO){let M=[q5];for(let N of z){let O=M.map((D)=>{let U=D.get(N);if(!U)U=new Map,D.set(N,U);return U});if(N===F7)M.push(...O);else M=O}for(let N of M)N.V=z}}function Uz(Y){return(g7(Y)?"":`${Hz(v9([Y]))} `)+w7(Y)}function Hz(Y){return`"${Y}"`}function v2(Y){if(Y.length>=4&&Y[2]==QO&&Y[3]==QO)throw Error(`invalid label extension: "${tQ(Y.slice(0,4))}"`)}function _2(Y){for(let J=Y.lastIndexOf(95);J>0;)if(Y[--J]!==95)throw Error("underscore allowed only at start")}function k2(Y){let J=Y[0],Q=eN.get(J);if(Q)throw rX(`leading ${Q}`);let q=Y.length,X=-1;for(let G=1;G<q;G++){J=Y[G];let $=eN.get(J);if($){if(X==G)throw rX(`${Q} + ${$}`);X=G+1,Q=$}}if(X==q)throw rX(`trailing ${Q}`)}function v9(Y,J=1/0,Q=w7){let q=[];if(F2(Y[0]))q.push("◌");if(Y.length>J)J>>=1,Y=[...Y.slice(0,J),8230,...Y.slice(-J)];let X=0,G=Y.length;for(let $=0;$<G;$++){let W=Y[$];if(g7(W))q.push(tQ(Y.slice(X,$))),q.push(Q(W)),X=$+1}return q.push(tQ(Y.slice(X,G))),q.join("")}function F2(Y){return Dz(),cJ.has(Y)}function g7(Y){return Dz(),x7.has(Y)}function P2(Y){return g2(T2(Y,I2,m2))}function T2(Y,J,Q){if(!Y)return[];Dz();let q=0;return Y.split(k7).map((X)=>{let G=D2(X),$={input:G,offset:q};q+=G.length+1;try{let W=$.tokens=h2(G,J,Q),j=W.length,K;if(!j)throw Error("empty label");let z=$.output=W.flat();if(_2(z),!($.emoji=j>1||W[0].is_emoji)&&z.every((M)=>M<128))v2(z),K="ASCII";else{let M=W.flatMap((N)=>N.is_emoji?[]:N);if(!M.length)K="Emoji";else{if(cJ.has(z[0]))throw rX("leading combining mark");for(let D=1;D<j;D++){let U=W[D];if(!U.is_emoji&&cJ.has(U[0]))throw rX(`emoji + combining mark: "${tQ(W[D-1])} + ${v9([U[0]])}"`)}k2(z);let N=V$(new Set(M)),[O]=x2(N);f2(O,M),Z2(O,N),K=O.N}}$.type=K}catch(W){$.error=W}return $})}function Z2(Y,J){let Q,q=[];for(let X of J){let G=vQ.get(X);if(G===P7)return;if(G){let $=G.M.get(X);if(Q=Q?Q.filter((W)=>$.has(W)):V$($),!Q.length)return}else q.push(X)}if(Q){for(let X of Q)if(q.every((G)=>zq(X,G)))throw Error(`whole-script confusable: ${Y.N}/${X.N}`)}}function x2(Y){let J=ZQ;for(let Q of Y){let q=J.filter((X)=>zq(X,Q));if(!q.length)if(!ZQ.some((X)=>zq(X,Q)))throw f7(Q);else throw h7(J[0],Q);if(J=q,q.length==1)break}return J}function g2(Y){return Y.map(({input:J,error:Q,output:q})=>{if(Q){let X=Q.message;throw Error(Y.length==1?X:`Invalid label ${Hz(v9(J,63))}: ${X}`)}return tQ(q)}).join(k7)}function f7(Y){return Error(`disallowed character: ${Uz(Y)}`)}function h7(Y,J){let Q=Uz(J),q=ZQ.find((X)=>X.P.has(J));if(q)Q=`${q.N} ${Q}`;return Error(`illegal mixture: ${Y.N} + ${Q}`)}function rX(Y){return Error(`illegal placement: ${Y}`)}function f2(Y,J){for(let Q of J)if(!zq(Y,Q))throw h7(Y,Q);if(Y.M){let Q=_7(J);for(let q=1,X=Q.length;q<X;q++)if(X5.has(Q[q])){let G=q+1;for(let $;G<X&&X5.has($=Q[G]);G++)for(let W=q;W<G;W++)if(Q[W]==$)throw Error(`duplicate non-spacing marks: ${Uz($)}`);if(G-q>YO)throw Error(`excessive non-spacing marks: ${Hz(v9(Q.slice(q-1,G)))} (${G-q}/${YO})`);q=G}}}function h2(Y,J,Q){let q=[],X=[];Y=Y.slice().reverse();while(Y.length){let G=y2(Y);if(G){if(X.length)q.push(J(X)),X=[];q.push(Q(G))}else{let $=Y.pop();if(xJ.has($))X.push($);else{let W=Q5.get($);if(W)X.push(...W);else if(!Z7.has($))throw f7($)}}}if(X.length)q.push(J(X));return q}function m2(Y){return Y.filter((J)=>J!=F7)}function y2(Y,J){let Q=q5,q,X=Y.length;while(X){if(Q=Q.get(Y[--X]),!Q)break;let{V:G}=Q;if(G){if(q=G,J)J.push(...Y.slice(X).reverse());Y.length=X}}return q}var m7=new Uint8Array(32);m7.fill(0);function qO(Y){return H(Y.length!==0,"invalid ENS name; empty component","comp",Y),Y}function y7(Y){let J=gY(l2(Y)),Q=[];if(Y.length===0)return Q;let q=0;for(let X=0;X<J.length;X++)if(J[X]===46)Q.push(qO(J.slice(q,X))),q=X+1;return H(q<J.length,"invalid ENS name; empty component","name",Y),Q.push(qO(J.slice(q))),Q}function l2(Y){try{if(Y.length===0)throw Error("empty label");return P2(Y)}catch(J){H(!1,`invalid ENS name (${J.message})`,"name",Y)}}function G5(Y){H(typeof Y==="string","invalid ENS name; not a string","name",Y),H(Y.length,"invalid ENS name (empty label)","name",Y);let J=m7,Q=y7(Y);while(Q.length)J=b0(F0([J,b0(Q.pop())]));return y(J)}function u2(Y,J){let Q=J!=null?J:63;return H(Q<=255,"DNS encoded label cannot exceed 255","length",Q),y(F0(y7(Y).map((q)=>{H(q.length<=Q,`label ${JSON.stringify(Y)} exceeds ${Q} bytes`,"name",Y);let X=new Uint8Array(q.length+1);return X.set(q,1),X[0]=X.length-1,X})))+"00"}var l7=new Uint8Array(32);l7.fill(0);var c2=BigInt(-1),u7=BigInt(0),c7=BigInt(1),b2=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function p2(Y){let J=K0(Y),Q=J.length%32;if(Q)return F0([J,l7.slice(Q)]);return y(J)}var o2=UJ(c7,32),d2=UJ(u7,32),GO={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},LW=["name","version","chainId","verifyingContract","salt"];function $O(Y){return function(J){return H(typeof J==="string",`invalid domain value for ${JSON.stringify(Y)}`,`domain.${Y}`,J),J}}var r2={name:$O("name"),version:$O("version"),chainId:function(Y){let J=o(Y,"domain.chainId");if(H(J>=0,"invalid chain ID","domain.chainId",Y),Number.isSafeInteger(J))return Number(J);return i8(J)},verifyingContract:function(Y){try{return V0(Y).toLowerCase()}catch(J){}H(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",Y)},salt:function(Y){let J=K0(Y,"domain.salt");return H(J.length===32,'invalid domain value "salt"',"domain.salt",Y),y(J)}};function EW(Y){{let J=Y.match(/^(u?)int(\d+)$/);if(J){let Q=J[1]==="",q=parseInt(J[2]);H(q%8===0&&q!==0&&q<=256&&J[2]===String(q),"invalid numeric width","type",Y);let X=cX(b2,Q?q-1:q),G=Q?(X+c7)*c2:u7;return function($){let W=o($,"value");return H(W>=G&&W<=X,`value out-of-bounds for ${Y}`,"value",W),UJ(Q?E6(W,256):W,32)}}}{let J=Y.match(/^bytes(\d+)$/);if(J){let Q=parseInt(J[1]);return H(Q!==0&&Q<=32&&J[1]===String(Q),"invalid bytes width","type",Y),function(q){let X=K0(q);return H(X.length===Q,`invalid length for ${Y}`,"value",q),p2(q)}}}switch(Y){case"address":return function(J){return uY(V0(J),32)};case"bool":return function(J){return!J?d2:o2};case"bytes":return function(J){return b0(J)};case"string":return function(J){return eJ(J)}}return null}function WO(Y,J){return`${Y}(${J.map(({name:Q,type:q})=>q+" "+Q).join(",")})`}function PG(Y){let J=Y.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(J)return{base:J[1],index:J[2]+J[4],array:{base:J[1],prefix:J[1]+J[2],count:J[5]?parseInt(J[5]):-1}};return{base:Y}}class v8{primaryType;#Y;get types(){return JSON.parse(this.#Y)}#J;#Q;constructor(Y){this.#J=new Map,this.#Q=new Map;let J=new Map,Q=new Map,q=new Map,X={};Object.keys(Y).forEach((W)=>{X[W]=Y[W].map(({name:j,type:K})=>{let{base:z,index:M}=PG(K);if(z==="int"&&!Y.int)z="int256";if(z==="uint"&&!Y.uint)z="uint256";return{name:j,type:z+(M||"")}}),J.set(W,new Set),Q.set(W,[]),q.set(W,new Set)}),this.#Y=JSON.stringify(X);for(let W in X){let j=new Set;for(let K of X[W]){H(!j.has(K.name),`duplicate variable name ${JSON.stringify(K.name)} in ${JSON.stringify(W)}`,"types",Y),j.add(K.name);let z=PG(K.type).base;if(H(z!==W,`circular type reference to ${JSON.stringify(z)}`,"types",Y),EW(z))continue;H(Q.has(z),`unknown type ${JSON.stringify(z)}`,"types",Y),Q.get(z).push(W),J.get(W).add(z)}}let G=Array.from(Q.keys()).filter((W)=>Q.get(W).length===0);H(G.length!==0,"missing primary type","types",Y),H(G.length===1,`ambiguous primary types or unused types: ${G.map((W)=>JSON.stringify(W)).join(", ")}`,"types",Y),e(this,{primaryType:G[0]});function $(W,j){H(!j.has(W),`circular type reference to ${JSON.stringify(W)}`,"types",Y),j.add(W);for(let K of J.get(W)){if(!Q.has(K))continue;$(K,j);for(let z of j)q.get(z).add(K)}j.delete(W)}$(this.primaryType,new Set);for(let[W,j]of q){let K=Array.from(j);K.sort(),this.#J.set(W,WO(W,X[W])+K.map((z)=>WO(z,X[z])).join(""))}}getEncoder(Y){let J=this.#Q.get(Y);if(!J)J=this.#X(Y),this.#Q.set(Y,J);return J}#X(Y){{let q=EW(Y);if(q)return q}let J=PG(Y).array;if(J){let q=J.prefix,X=this.getEncoder(q);return(G)=>{H(J.count===-1||J.count===G.length,`array length mismatch; expected length ${J.count}`,"value",G);let $=G.map(X);if(this.#J.has(q))$=$.map(b0);return b0(F0($))}}let Q=this.types[Y];if(Q){let q=eJ(this.#J.get(Y));return(X)=>{let G=Q.map(({name:$,type:W})=>{let j=this.getEncoder(W)(X[$]);if(this.#J.has(W))return b0(j);return j});return G.unshift(q),F0(G)}}H(!1,`unknown type: ${Y}`,"type",Y)}encodeType(Y){let J=this.#J.get(Y);return H(J,`unknown type: ${JSON.stringify(Y)}`,"name",Y),J}encodeData(Y,J){return this.getEncoder(Y)(J)}hashStruct(Y,J){return b0(this.encodeData(Y,J))}encode(Y){return this.encodeData(this.primaryType,Y)}hash(Y){return this.hashStruct(this.primaryType,Y)}_visit(Y,J,Q){if(EW(Y))return Q(Y,J);let q=PG(Y).array;if(q)return H(q.count===-1||q.count===J.length,`array length mismatch; expected length ${q.count}`,"value",J),J.map((G)=>this._visit(q.prefix,G,Q));let X=this.types[Y];if(X)return X.reduce((G,{name:$,type:W})=>{return G[$]=this._visit(W,J[$],Q),G},{});H(!1,`unknown type: ${Y}`,"type",Y)}visit(Y,J){return this._visit(this.primaryType,Y,J)}static from(Y){return new v8(Y)}static getPrimaryType(Y){return v8.from(Y).primaryType}static hashStruct(Y,J,Q){return v8.from(J).hashStruct(Y,Q)}static hashDomain(Y){let J=[];for(let Q in Y){if(Y[Q]==null)continue;let q=GO[Q];H(q,`invalid typed-data domain key: ${JSON.stringify(Q)}`,"domain",Y),J.push({name:Q,type:q})}return J.sort((Q,q)=>{return LW.indexOf(Q.name)-LW.indexOf(q.name)}),v8.hashStruct("EIP712Domain",{EIP712Domain:J},Y)}static encode(Y,J,Q){return F0(["0x1901",v8.hashDomain(Y),v8.from(J).hash(Q)])}static hash(Y,J,Q){return b0(v8.encode(Y,J,Q))}static async resolveNames(Y,J,Q,q){Y=Object.assign({},Y);for(let $ in Y)if(Y[$]==null)delete Y[$];let X={};if(Y.verifyingContract&&!v0(Y.verifyingContract,20))X[Y.verifyingContract]="0x";let G=v8.from(J);G.visit(Q,($,W)=>{if($==="address"&&!v0(W,20))X[W]="0x";return W});for(let $ in X)X[$]=await q($);if(Y.verifyingContract&&X[Y.verifyingContract])Y.verifyingContract=X[Y.verifyingContract];return Q=G.visit(Q,($,W)=>{if($==="address"&&X[W])return X[W];return W}),{domain:Y,value:Q}}static getPayload(Y,J,Q){v8.hashDomain(Y);let q={},X=[];LW.forEach((W)=>{let j=Y[W];if(j==null)return;q[W]=r2[W](j),X.push({name:W,type:GO[W]})});let G=v8.from(J);J=G.types;let $=Object.assign({},J);return H($.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",J),$.EIP712Domain=X,G.encode(Q),{types:$,domain:q,primaryType:G.primaryType,message:G.visit(Q,(W,j)=>{if(W.match(/^bytes(\d*)/))return y(K0(j));if(W.match(/^u?int/))return o(j).toString();switch(W){case"address":return j.toLowerCase();case"bool":return!!j;case"string":return H(typeof j==="string","invalid string","value",j),j}H(!1,"unsupported type","type",W)})}}}function D8(Y){let J=new Set;return Y.forEach((Q)=>J.add(Q)),Object.freeze(J)}var s2="external public payable override",i2=D8(s2.split(" ")),b7="constant external internal payable private public pure view override",t2=D8(b7.split(" ")),p7="constructor error event fallback function receive struct",o7=D8(p7.split(" ")),d7="calldata memory storage payable indexed",n2=D8(d7.split(" ")),a2="tuple returns",e2=[p7,d7,a2,b7].join(" "),YT=D8(e2.split(" ")),JT={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},QT=new RegExp("^(\\s*)"),XT=new RegExp("^([0-9]+)"),qT=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),r7=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),s7=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");class c8{#Y;#J;get offset(){return this.#Y}get length(){return this.#J.length-this.#Y}constructor(Y){this.#Y=0,this.#J=Y.slice()}clone(){return new c8(this.#J)}reset(){this.#Y=0}#Q(Y=0,J=0){return new c8(this.#J.slice(Y,J).map((Q)=>{return Object.freeze(Object.assign({},Q,{match:Q.match-Y,linkBack:Q.linkBack-Y,linkNext:Q.linkNext-Y}))}))}popKeyword(Y){let J=this.peek();if(J.type!=="KEYWORD"||!Y.has(J.text))throw Error(`expected keyword ${J.text}`);return this.pop().text}popType(Y){if(this.peek().type!==Y){let J=this.peek();throw Error(`expected ${Y}; got ${J.type} ${JSON.stringify(J.text)}`)}return this.pop().text}popParen(){let Y=this.peek();if(Y.type!=="OPEN_PAREN")throw Error("bad start");let J=this.#Q(this.#Y+1,Y.match+1);return this.#Y=Y.match+1,J}popParams(){let Y=this.peek();if(Y.type!=="OPEN_PAREN")throw Error("bad start");let J=[];while(this.#Y<Y.match-1){let Q=this.peek().linkNext;J.push(this.#Q(this.#Y+1,Q)),this.#Y=Q}return this.#Y=Y.match+1,J}peek(){if(this.#Y>=this.#J.length)throw Error("out-of-bounds");return this.#J[this.#Y]}peekKeyword(Y){let J=this.peekType("KEYWORD");return J!=null&&Y.has(J)?J:null}peekType(Y){if(this.length===0)return null;let J=this.peek();return J.type===Y?J.text:null}pop(){let Y=this.peek();return this.#Y++,Y}toString(){let Y=[];for(let J=this.#Y;J<this.#J.length;J++){let Q=this.#J[J];Y.push(`${Q.type}:${Q.text}`)}return`<TokenString ${Y.join(" ")}>`}}function RJ(Y){let J=[],Q=($)=>{let W=G<Y.length?JSON.stringify(Y[G]):"$EOI";throw Error(`invalid token ${W} at ${G}: ${$}`)},q=[],X=[],G=0;while(G<Y.length){let $=Y.substring(G),W=$.match(QT);if(W)G+=W[1].length,$=Y.substring(G);let j={depth:q.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:G,value:-1};J.push(j);let K=JT[$[0]]||"";if(K){if(j.type=K,j.text=$[0],G++,K==="OPEN_PAREN")q.push(J.length-1),X.push(J.length-1);else if(K=="CLOSE_PAREN"){if(q.length===0)Q("no matching open bracket");j.match=q.pop(),J[j.match].match=J.length-1,j.depth--,j.linkBack=X.pop(),J[j.linkBack].linkNext=J.length-1}else if(K==="COMMA")j.linkBack=X.pop(),J[j.linkBack].linkNext=J.length-1,X.push(J.length-1);else if(K==="OPEN_BRACKET")j.type="BRACKET";else if(K==="CLOSE_BRACKET"){let z=J.pop().text;if(J.length>0&&J[J.length-1].type==="NUMBER"){let M=J.pop().text;z=M+z,J[J.length-1].value=W0(M)}if(J.length===0||J[J.length-1].type!=="BRACKET")throw Error("missing opening bracket");J[J.length-1].text+=z}continue}if(W=$.match(qT),W){if(j.text=W[1],G+=j.text.length,YT.has(j.text)){j.type="KEYWORD";continue}if(j.text.match(s7)){j.type="TYPE";continue}j.type="ID";continue}if(W=$.match(XT),W){j.text=W[1],j.type="NUMBER",G+=j.text.length;continue}throw Error(`unexpected token ${JSON.stringify($[0])} at position ${G}`)}return new c8(J.map(($)=>Object.freeze($)))}function jO(Y,J){let Q=[];for(let q in J.keys())if(Y.has(q))Q.push(q);if(Q.length>1)throw Error(`conflicting types: ${Q.join(", ")}`)}function _9(Y,J){if(J.peekKeyword(o7)){let Q=J.pop().text;if(Q!==Y)throw Error(`expected ${Y}, got ${Q}`)}return J.popType("ID")}function cY(Y,J){let Q=new Set;while(!0){let q=Y.peekType("KEYWORD");if(q==null||J&&!J.has(q))break;if(Y.pop(),Q.has(q))throw Error(`duplicate keywords: ${JSON.stringify(q)}`);Q.add(q)}return Object.freeze(Q)}function i7(Y){let J=cY(Y,t2);if(jO(J,D8("constant payable nonpayable".split(" "))),jO(J,D8("pure view payable nonpayable".split(" "))),J.has("view"))return"view";if(J.has("pure"))return"pure";if(J.has("payable"))return"payable";if(J.has("nonpayable"))return"nonpayable";if(J.has("constant"))return"view";return"nonpayable"}function hY(Y,J){return Y.popParams().map((Q)=>S0.from(Q,J))}function t7(Y){if(Y.peekType("AT")){if(Y.pop(),Y.peekType("NUMBER"))return o(Y.pop().text);throw Error("invalid gas")}return null}function YQ(Y){if(Y.length)throw Error(`unexpected tokens at offset ${Y.offset}: ${Y.toString()}`)}var GT=new RegExp(/^(.*)\[([0-9]*)\]$/);function KO(Y){let J=Y.match(s7);if(H(J,"invalid type","type",Y),Y==="uint")return"uint256";if(Y==="int")return"int256";if(J[2]){let Q=parseInt(J[2]);H(Q!==0&&Q<=32,"invalid bytes length","type",Y)}else if(J[3]){let Q=parseInt(J[3]);H(Q!==0&&Q<=256&&Q%8===0,"invalid numeric width","type",Y)}return Y}var x0={},w8=Symbol.for("_ethers_internal"),zO="_ParamTypeInternal",MO="_ErrorInternal",NO="_EventInternal",OO="_ConstructorInternal",DO="_FallbackInternal",UO="_FunctionInternal",HO="_StructInternal";class S0{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(Y,J,Q,q,X,G,$,W){if(R9(Y,x0,"ParamType"),Object.defineProperty(this,w8,{value:zO}),G)G=Object.freeze(G.slice());if(q==="array"){if($==null||W==null)throw Error("")}else if($!=null||W!=null)throw Error("");if(q==="tuple"){if(G==null)throw Error("")}else if(G!=null)throw Error("");e(this,{name:J,type:Q,baseType:q,indexed:X,components:G,arrayLength:$,arrayChildren:W})}format(Y){if(Y==null)Y="sighash";if(Y==="json"){let Q=this.name||"";if(this.isArray()){let X=JSON.parse(this.arrayChildren.format("json"));return X.name=Q,X.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(X)}let q={type:this.baseType==="tuple"?"tuple":this.type,name:Q};if(typeof this.indexed==="boolean")q.indexed=this.indexed;if(this.isTuple())q.components=this.components.map((X)=>JSON.parse(X.format(Y)));return JSON.stringify(q)}let J="";if(this.isArray())J+=this.arrayChildren.format(Y),J+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`;else if(this.isTuple())J+="("+this.components.map((Q)=>Q.format(Y)).join(Y==="full"?", ":",")+")";else J+=this.type;if(Y!=="sighash"){if(this.indexed===!0)J+=" indexed";if(Y==="full"&&this.name)J+=" "+this.name}return J}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(Y,J){if(this.isArray()){if(!Array.isArray(Y))throw Error("invalid array value");if(this.arrayLength!==-1&&Y.length!==this.arrayLength)throw Error("array is wrong length");let Q=this;return Y.map((q)=>Q.arrayChildren.walk(q,J))}if(this.isTuple()){if(!Array.isArray(Y))throw Error("invalid tuple value");if(Y.length!==this.components.length)throw Error("array is wrong length");let Q=this;return Y.map((q,X)=>Q.components[X].walk(q,J))}return J(this.type,Y)}#Y(Y,J,Q,q){if(this.isArray()){if(!Array.isArray(J))throw Error("invalid array value");if(this.arrayLength!==-1&&J.length!==this.arrayLength)throw Error("array is wrong length");let G=this.arrayChildren,$=J.slice();$.forEach((W,j)=>{G.#Y(Y,W,Q,(K)=>{$[j]=K})}),q($);return}if(this.isTuple()){let G=this.components,$;if(Array.isArray(J))$=J.slice();else{if(J==null||typeof J!=="object")throw Error("invalid tuple value");$=G.map((W)=>{if(!W.name)throw Error("cannot use object value with unnamed components");if(!(W.name in J))throw Error(`missing value for component ${W.name}`);return J[W.name]})}if($.length!==this.components.length)throw Error("array is wrong length");$.forEach((W,j)=>{G[j].#Y(Y,W,Q,(K)=>{$[j]=K})}),q($);return}let X=Q(this.type,J);if(X.then)Y.push(async function(){q(await X)}());else q(X)}async walkAsync(Y,J){let Q=[],q=[Y];if(this.#Y(Q,Y,J,(X)=>{q[0]=X}),Q.length)await Promise.all(Q);return q[0]}static from(Y,J){if(S0.isParamType(Y))return Y;if(typeof Y==="string")try{return S0.from(RJ(Y),J)}catch($){H(!1,"invalid param type","obj",Y)}else if(Y instanceof c8){let $="",W="",j=null;if(cY(Y,D8(["tuple"])).has("tuple")||Y.peekType("OPEN_PAREN"))W="tuple",j=Y.popParams().map((O)=>S0.from(O)),$=`tuple(${j.map((O)=>O.format()).join(",")})`;else $=KO(Y.popType("TYPE")),W=$;let K=null,z=null;while(Y.length&&Y.peekType("BRACKET")){let O=Y.pop();K=new S0(x0,"",$,W,null,j,z,K),z=O.value,$+=O.text,W="array",j=null}let M=null;if(cY(Y,n2).has("indexed")){if(!J)throw Error("");M=!0}let N=Y.peekType("ID")?Y.pop().text:"";if(Y.length)throw Error("leftover tokens");return new S0(x0,N,$,W,M,j,z,K)}let Q=Y.name;H(!Q||typeof Q==="string"&&Q.match(r7),"invalid name","obj.name",Q);let q=Y.indexed;if(q!=null)H(J,"parameter cannot be indexed","obj.indexed",Y.indexed),q=!!q;let X=Y.type,G=X.match(GT);if(G){let $=parseInt(G[2]||"-1"),W=S0.from({type:G[1],components:Y.components});return new S0(x0,Q||"",X,"array",q,null,$,W)}if(X==="tuple"||X.startsWith("tuple(")||X.startsWith("(")){let $=Y.components!=null?Y.components.map((W)=>S0.from(W)):null;return new S0(x0,Q||"",X,"tuple",q,$,null,null)}return X=KO(Y.type),new S0(x0,Q||"",X,X,q,null,null,null)}static isParamType(Y){return Y&&Y[w8]===zO}}class JQ{type;inputs;constructor(Y,J,Q){R9(Y,x0,"Fragment"),Q=Object.freeze(Q.slice()),e(this,{type:J,inputs:Q})}static from(Y){if(typeof Y==="string"){try{JQ.from(JSON.parse(Y))}catch(J){}return JQ.from(RJ(Y))}if(Y instanceof c8)switch(Y.peekKeyword(o7)){case"constructor":return ZY.from(Y);case"error":return L8.from(Y);case"event":return MY.from(Y);case"fallback":case"receive":return kY.from(Y);case"function":return NY.from(Y);case"struct":return oJ.from(Y)}else if(typeof Y==="object"){switch(Y.type){case"constructor":return ZY.from(Y);case"error":return L8.from(Y);case"event":return MY.from(Y);case"fallback":case"receive":return kY.from(Y);case"function":return NY.from(Y);case"struct":return oJ.from(Y)}_(!1,`unsupported type: ${Y.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}H(!1,"unsupported frgament object","obj",Y)}static isConstructor(Y){return ZY.isFragment(Y)}static isError(Y){return L8.isFragment(Y)}static isEvent(Y){return MY.isFragment(Y)}static isFunction(Y){return NY.isFragment(Y)}static isStruct(Y){return oJ.isFragment(Y)}}class iq extends JQ{name;constructor(Y,J,Q,q){super(Y,J,q);H(typeof Q==="string"&&Q.match(r7),"invalid identifier","name",Q),q=Object.freeze(q.slice()),e(this,{name:Q})}}function Mq(Y,J){return"("+J.map((Q)=>Q.format(Y)).join(Y==="full"?", ":",")+")"}class L8 extends iq{constructor(Y,J,Q){super(Y,"error",J,Q);Object.defineProperty(this,w8,{value:MO})}get selector(){return eJ(this.format("sighash")).substring(0,10)}format(Y){if(Y==null)Y="sighash";if(Y==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((Q)=>JSON.parse(Q.format(Y)))});let J=[];if(Y!=="sighash")J.push("error");return J.push(this.name+Mq(Y,this.inputs)),J.join(" ")}static from(Y){if(L8.isFragment(Y))return Y;if(typeof Y==="string")return L8.from(RJ(Y));else if(Y instanceof c8){let J=_9("error",Y),Q=hY(Y);return YQ(Y),new L8(x0,J,Q)}return new L8(x0,Y.name,Y.inputs?Y.inputs.map(S0.from):[])}static isFragment(Y){return Y&&Y[w8]===MO}}class MY extends iq{anonymous;constructor(Y,J,Q,q){super(Y,"event",J,Q);Object.defineProperty(this,w8,{value:NO}),e(this,{anonymous:q})}get topicHash(){return eJ(this.format("sighash"))}format(Y){if(Y==null)Y="sighash";if(Y==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((Q)=>JSON.parse(Q.format(Y)))});let J=[];if(Y!=="sighash")J.push("event");if(J.push(this.name+Mq(Y,this.inputs)),Y!=="sighash"&&this.anonymous)J.push("anonymous");return J.join(" ")}static getTopicHash(Y,J){return J=(J||[]).map((Q)=>S0.from(Q)),new MY(x0,Y,J,!1).topicHash}static from(Y){if(MY.isFragment(Y))return Y;if(typeof Y==="string")try{return MY.from(RJ(Y))}catch(J){H(!1,"invalid event fragment","obj",Y)}else if(Y instanceof c8){let J=_9("event",Y),Q=hY(Y,!0),q=!!cY(Y,D8(["anonymous"])).has("anonymous");return YQ(Y),new MY(x0,J,Q,q)}return new MY(x0,Y.name,Y.inputs?Y.inputs.map((J)=>S0.from(J,!0)):[],!!Y.anonymous)}static isFragment(Y){return Y&&Y[w8]===NO}}class ZY extends JQ{payable;gas;constructor(Y,J,Q,q,X){super(Y,J,Q);Object.defineProperty(this,w8,{value:OO}),e(this,{payable:q,gas:X})}format(Y){if(_(Y!=null&&Y!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),Y==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map((Q)=>JSON.parse(Q.format(Y)))});let J=[`constructor${Mq(Y,this.inputs)}`];if(this.payable)J.push("payable");if(this.gas!=null)J.push(`@${this.gas.toString()}`);return J.join(" ")}static from(Y){if(ZY.isFragment(Y))return Y;if(typeof Y==="string")try{return ZY.from(RJ(Y))}catch(J){H(!1,"invalid constuctor fragment","obj",Y)}else if(Y instanceof c8){cY(Y,D8(["constructor"]));let J=hY(Y),Q=!!cY(Y,i2).has("payable"),q=t7(Y);return YQ(Y),new ZY(x0,"constructor",J,Q,q)}return new ZY(x0,"constructor",Y.inputs?Y.inputs.map(S0.from):[],!!Y.payable,Y.gas!=null?Y.gas:null)}static isFragment(Y){return Y&&Y[w8]===OO}}class kY extends JQ{payable;constructor(Y,J,Q){super(Y,"fallback",J);Object.defineProperty(this,w8,{value:DO}),e(this,{payable:Q})}format(Y){let J=this.inputs.length===0?"receive":"fallback";if(Y==="json"){let Q=this.payable?"payable":"nonpayable";return JSON.stringify({type:J,stateMutability:Q})}return`${J}()${this.payable?" payable":""}`}static from(Y){if(kY.isFragment(Y))return Y;if(typeof Y==="string")try{return kY.from(RJ(Y))}catch(J){H(!1,"invalid fallback fragment","obj",Y)}else if(Y instanceof c8){let J=Y.toString(),Q=Y.peekKeyword(D8(["fallback","receive"]));if(H(Q,"type must be fallback or receive","obj",J),Y.popKeyword(D8(["fallback","receive"]))==="receive"){let G=hY(Y);return H(G.length===0,"receive cannot have arguments","obj.inputs",G),cY(Y,D8(["payable"])),YQ(Y),new kY(x0,[],!0)}let q=hY(Y);if(q.length)H(q.length===1&&q[0].type==="bytes","invalid fallback inputs","obj.inputs",q.map((G)=>G.format("minimal")).join(", "));else q=[S0.from("bytes")];let X=i7(Y);if(H(X==="nonpayable"||X==="payable","fallback cannot be constants","obj.stateMutability",X),cY(Y,D8(["returns"])).has("returns")){let G=hY(Y);H(G.length===1&&G[0].type==="bytes","invalid fallback outputs","obj.outputs",G.map(($)=>$.format("minimal")).join(", "))}return YQ(Y),new kY(x0,q,X==="payable")}if(Y.type==="receive")return new kY(x0,[],!0);if(Y.type==="fallback"){let J=[S0.from("bytes")],Q=Y.stateMutability==="payable";return new kY(x0,J,Q)}H(!1,"invalid fallback description","obj",Y)}static isFragment(Y){return Y&&Y[w8]===DO}}class NY extends iq{constant;outputs;stateMutability;payable;gas;constructor(Y,J,Q,q,X,G){super(Y,"function",J,q);Object.defineProperty(this,w8,{value:UO}),X=Object.freeze(X.slice()),e(this,{constant:Q==="view"||Q==="pure",gas:G,outputs:X,payable:Q==="payable",stateMutability:Q})}get selector(){return eJ(this.format("sighash")).substring(0,10)}format(Y){if(Y==null)Y="sighash";if(Y==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map((Q)=>JSON.parse(Q.format(Y))),outputs:this.outputs.map((Q)=>JSON.parse(Q.format(Y)))});let J=[];if(Y!=="sighash")J.push("function");if(J.push(this.name+Mq(Y,this.inputs)),Y!=="sighash"){if(this.stateMutability!=="nonpayable")J.push(this.stateMutability);if(this.outputs&&this.outputs.length)J.push("returns"),J.push(Mq(Y,this.outputs));if(this.gas!=null)J.push(`@${this.gas.toString()}`)}return J.join(" ")}static getSelector(Y,J){return J=(J||[]).map((Q)=>S0.from(Q)),new NY(x0,Y,"view",J,[],null).selector}static from(Y){if(NY.isFragment(Y))return Y;if(typeof Y==="string")try{return NY.from(RJ(Y))}catch(Q){H(!1,"invalid function fragment","obj",Y)}else if(Y instanceof c8){let Q=_9("function",Y),q=hY(Y),X=i7(Y),G=[];if(cY(Y,D8(["returns"])).has("returns"))G=hY(Y);let $=t7(Y);return YQ(Y),new NY(x0,Q,X,q,G,$)}let J=Y.stateMutability;if(J==null){if(J="payable",typeof Y.constant==="boolean"){if(J="view",!Y.constant){if(J="payable",typeof Y.payable==="boolean"&&!Y.payable)J="nonpayable"}}else if(typeof Y.payable==="boolean"&&!Y.payable)J="nonpayable"}return new NY(x0,Y.name,J,Y.inputs?Y.inputs.map(S0.from):[],Y.outputs?Y.outputs.map(S0.from):[],Y.gas!=null?Y.gas:null)}static isFragment(Y){return Y&&Y[w8]===UO}}class oJ extends iq{constructor(Y,J,Q){super(Y,"struct",J,Q);Object.defineProperty(this,w8,{value:HO})}format(){throw Error("@TODO")}static from(Y){if(typeof Y==="string")try{return oJ.from(RJ(Y))}catch(J){H(!1,"invalid struct fragment","obj",Y)}else if(Y instanceof c8){let J=_9("struct",Y),Q=hY(Y);return YQ(Y),new oJ(x0,J,Q)}return new oJ(x0,Y.name,Y.inputs?Y.inputs.map(S0.from):[])}static isFragment(Y){return Y&&Y[w8]===HO}}var YY=new Map;YY.set(0,"GENERIC_PANIC");YY.set(1,"ASSERT_FALSE");YY.set(17,"OVERFLOW");YY.set(18,"DIVIDE_BY_ZERO");YY.set(33,"ENUM_RANGE_ERROR");YY.set(34,"BAD_STORAGE_DATA");YY.set(49,"STACK_UNDERFLOW");YY.set(50,"ARRAY_RANGE_ERROR");YY.set(65,"OUT_OF_MEMORY");YY.set(81,"UNINITIALIZED_FUNCTION_CALL");var $T=new RegExp(/^bytes([0-9]*)$/),WT=new RegExp(/^(u?int)([0-9]*)$/),wW=null,BO=1024;function jT(Y,J,Q,q){let X="missing revert data",G=null,$=null,W=null;if(Q){X="execution reverted";let K=K0(Q);if(Q=y(Q),K.length===0)X+=" (no data present; likely require(false) occurred",G="require(false)";else if(K.length%32!==4)X+=" (could not decode reason; invalid data length)";else if(y(K.slice(0,4))==="0x08c379a0")try{G=q.decode(["string"],K.slice(4))[0],W={signature:"Error(string)",name:"Error",args:[G]},X+=`: ${JSON.stringify(G)}`}catch(z){X+=" (could not decode reason; invalid string data)"}else if(y(K.slice(0,4))==="0x4e487b71")try{let z=Number(q.decode(["uint256"],K.slice(4))[0]);W={signature:"Panic(uint256)",name:"Panic",args:[z]},G=`Panic due to ${YY.get(z)||"UNKNOWN"}(${z})`,X+=`: ${G}`}catch(z){X+=" (could not decode panic code)"}else X+=" (unknown custom error)"}let j={to:J.to?V0(J.to):null,data:J.data||"0x"};if(J.from)j.from=V0(J.from);return _0(X,"CALL_EXCEPTION",{action:Y,data:Q,reason:G,transaction:j,invocation:$,revert:W})}class aQ{#Y(Y){if(Y.isArray())return new z7(this.#Y(Y.arrayChildren),Y.arrayLength,Y.name);if(Y.isTuple())return new bX(Y.components.map((Q)=>this.#Y(Q)),Y.name);switch(Y.baseType){case"address":return new $7(Y.name);case"bool":return new M7(Y.name);case"string":return new H7(Y.name);case"bytes":return new N7(Y.name);case"":return new D7(Y.name)}let J=Y.type.match(WT);if(J){let Q=parseInt(J[2]||"256");return H(Q!==0&&Q<=256&&Q%8===0,"invalid "+J[1]+" bit length","param",Y),new U7(Q/8,J[1]==="int",Y.name)}if(J=Y.type.match($T),J){let Q=parseInt(J[1]);return H(Q!==0&&Q<=32,"invalid bytes length","param",Y),new O7(Q,Y.name)}H(!1,"invalid type","type",Y.type)}getDefaultValue(Y){let J=Y.map((Q)=>this.#Y(S0.from(Q)));return new bX(J,"_").defaultValue()}encode(Y,J){R6(J.length,Y.length,"types/values length mismatch");let Q=Y.map((G)=>this.#Y(S0.from(G))),q=new bX(Q,"_"),X=new O$;return q.encode(X,J),X.data}decode(Y,J,Q){let q=Y.map((X)=>this.#Y(S0.from(X)));return new bX(q,"_").decode(new Xz(J,Q,BO))}static _setDefaultMaxInflation(Y){H(typeof Y==="number"&&Number.isInteger(Y),"invalid defaultMaxInflation factor","value",Y),BO=Y}static defaultAbiCoder(){if(wW==null)wW=new aQ;return wW}static getBuiltinCallException(Y,J,Q){return jT(Y,J,Q,aQ.defaultAbiCoder())}}class n7{fragment;name;signature;topic;args;constructor(Y,J,Q){let q=Y.name,X=Y.format();e(this,{fragment:Y,name:q,signature:X,topic:J,args:Q})}}class a7{fragment;name;args;signature;selector;value;constructor(Y,J,Q,q){let X=Y.name,G=Y.format();e(this,{fragment:Y,name:X,args:Q,signature:G,selector:J,value:q})}}class e7{fragment;name;args;signature;selector;constructor(Y,J,Q){let q=Y.name,X=Y.format();e(this,{fragment:Y,name:q,args:Q,signature:X,selector:J})}}class $5{hash;_isIndexed;static isIndexed(Y){return!!(Y&&Y._isIndexed)}constructor(Y){e(this,{hash:Y,_isIndexed:!0})}}var RO={"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"},VO={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:(Y)=>{return`reverted with reason string ${JSON.stringify(Y)}`}},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:(Y)=>{let J="unknown panic code";if(Y>=0&&Y<=255&&RO[Y.toString()])J=RO[Y.toString()];return`reverted with panic code 0x${Y.toString(16)} (${J})`}}};class hJ{fragments;deploy;fallback;receive;#Y;#J;#Q;#X;constructor(Y){let J=[];if(typeof Y==="string")J=JSON.parse(Y);else J=Y;this.#Q=new Map,this.#Y=new Map,this.#J=new Map;let Q=[];for(let G of J)try{Q.push(JQ.from(G))}catch($){console.log(`[Warning] Invalid Fragment ${JSON.stringify(G)}:`,$.message)}e(this,{fragments:Object.freeze(Q)});let q=null,X=!1;if(this.#X=this.getAbiCoder(),this.fragments.forEach((G,$)=>{let W;switch(G.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}e(this,{deploy:G});return;case"fallback":if(G.inputs.length===0)X=!0;else H(!q||G.payable!==q.payable,"conflicting fallback fragments",`fragments[${$}]`,G),q=G,X=q.payable;return;case"function":W=this.#Q;break;case"event":W=this.#J;break;case"error":W=this.#Y;break;default:return}let j=G.format();if(W.has(j))return;W.set(j,G)}),!this.deploy)e(this,{deploy:ZY.from("constructor()")});e(this,{fallback:q,receive:X})}format(Y){let J=Y?"minimal":"full";return this.fragments.map((Q)=>Q.format(J))}formatJson(){let Y=this.fragments.map((J)=>J.format("json"));return JSON.stringify(Y.map((J)=>JSON.parse(J)))}getAbiCoder(){return aQ.defaultAbiCoder()}#q(Y,J,Q){if(v0(Y)){let X=Y.toLowerCase();for(let G of this.#Q.values())if(X===G.selector)return G;return null}if(Y.indexOf("(")===-1){let X=[];for(let[G,$]of this.#Q)if(G.split("(")[0]===Y)X.push($);if(J){let G=J.length>0?J[J.length-1]:null,$=J.length,W=!0;if(h0.isTyped(G)&&G.type==="overrides")W=!1,$--;for(let j=X.length-1;j>=0;j--){let K=X[j].inputs.length;if(K!==$&&(!W||K!==$-1))X.splice(j,1)}for(let j=X.length-1;j>=0;j--){let K=X[j].inputs;for(let z=0;z<J.length;z++){if(!h0.isTyped(J[z]))continue;if(z>=K.length){if(J[z].type==="overrides")continue;X.splice(j,1);break}if(J[z].type!==K[z].baseType){X.splice(j,1);break}}}}if(X.length===1&&J&&J.length!==X[0].inputs.length){let G=J[J.length-1];if(G==null||Array.isArray(G)||typeof G!=="object")X.splice(0,1)}if(X.length===0)return null;if(X.length>1&&Q){let G=X.map(($)=>JSON.stringify($.format())).join(", ");H(!1,`ambiguous function description (i.e. matches ${G})`,"key",Y)}return X[0]}let q=this.#Q.get(NY.from(Y).format());if(q)return q;return null}getFunctionName(Y){let J=this.#q(Y,null,!1);return H(J,"no matching function","key",Y),J.name}hasFunction(Y){return!!this.#q(Y,null,!1)}getFunction(Y,J){return this.#q(Y,J||null,!0)}forEachFunction(Y){let J=Array.from(this.#Q.keys());J.sort((Q,q)=>Q.localeCompare(q));for(let Q=0;Q<J.length;Q++){let q=J[Q];Y(this.#Q.get(q),Q)}}#$(Y,J,Q){if(v0(Y)){let X=Y.toLowerCase();for(let G of this.#J.values())if(X===G.topicHash)return G;return null}if(Y.indexOf("(")===-1){let X=[];for(let[G,$]of this.#J)if(G.split("(")[0]===Y)X.push($);if(J){for(let G=X.length-1;G>=0;G--)if(X[G].inputs.length<J.length)X.splice(G,1);for(let G=X.length-1;G>=0;G--){let $=X[G].inputs;for(let W=0;W<J.length;W++){if(!h0.isTyped(J[W]))continue;if(J[W].type!==$[W].baseType){X.splice(G,1);break}}}}if(X.length===0)return null;if(X.length>1&&Q){let G=X.map(($)=>JSON.stringify($.format())).join(", ");H(!1,`ambiguous event description (i.e. matches ${G})`,"key",Y)}return X[0]}let q=this.#J.get(MY.from(Y).format());if(q)return q;return null}getEventName(Y){let J=this.#$(Y,null,!1);return H(J,"no matching event","key",Y),J.name}hasEvent(Y){return!!this.#$(Y,null,!1)}getEvent(Y,J){return this.#$(Y,J||null,!0)}forEachEvent(Y){let J=Array.from(this.#J.keys());J.sort((Q,q)=>Q.localeCompare(q));for(let Q=0;Q<J.length;Q++){let q=J[Q];Y(this.#J.get(q),Q)}}getError(Y,J){if(v0(Y)){let q=Y.toLowerCase();if(VO[q])return L8.from(VO[q].signature);for(let X of this.#Y.values())if(q===X.selector)return X;return null}if(Y.indexOf("(")===-1){let q=[];for(let[X,G]of this.#Y)if(X.split("(")[0]===Y)q.push(G);if(q.length===0){if(Y==="Error")return L8.from("error Error(string)");if(Y==="Panic")return L8.from("error Panic(uint256)");return null}else if(q.length>1){let X=q.map((G)=>JSON.stringify(G.format())).join(", ");H(!1,`ambiguous error description (i.e. ${X})`,"name",Y)}return q[0]}if(Y=L8.from(Y).format(),Y==="Error(string)")return L8.from("error Error(string)");if(Y==="Panic(uint256)")return L8.from("error Panic(uint256)");let Q=this.#Y.get(Y);if(Q)return Q;return null}forEachError(Y){let J=Array.from(this.#Y.keys());J.sort((Q,q)=>Q.localeCompare(q));for(let Q=0;Q<J.length;Q++){let q=J[Q];Y(this.#Y.get(q),Q)}}_decodeParams(Y,J){return this.#X.decode(Y,J)}_encodeParams(Y,J){return this.#X.encode(Y,J)}encodeDeploy(Y){return this._encodeParams(this.deploy.inputs,Y||[])}decodeErrorResult(Y,J){if(typeof Y==="string"){let Q=this.getError(Y);H(Q,"unknown error","fragment",Y),Y=Q}return H(f0(J,0,4)===Y.selector,`data signature does not match error ${Y.name}.`,"data",J),this._decodeParams(Y.inputs,f0(J,4))}encodeErrorResult(Y,J){if(typeof Y==="string"){let Q=this.getError(Y);H(Q,"unknown error","fragment",Y),Y=Q}return F0([Y.selector,this._encodeParams(Y.inputs,J||[])])}decodeFunctionData(Y,J){if(typeof Y==="string"){let Q=this.getFunction(Y);H(Q,"unknown function","fragment",Y),Y=Q}return H(f0(J,0,4)===Y.selector,`data signature does not match function ${Y.name}.`,"data",J),this._decodeParams(Y.inputs,f0(J,4))}encodeFunctionData(Y,J){if(typeof Y==="string"){let Q=this.getFunction(Y);H(Q,"unknown function","fragment",Y),Y=Q}return F0([Y.selector,this._encodeParams(Y.inputs,J||[])])}decodeFunctionResult(Y,J){if(typeof Y==="string"){let X=this.getFunction(Y);H(X,"unknown function","fragment",Y),Y=X}let Q="invalid length for result data",q=q8(J);if(q.length%32===0)try{return this.#X.decode(Y.outputs,q)}catch(X){Q="could not decode result data"}_(!1,Q,"BAD_DATA",{value:y(q),info:{method:Y.name,signature:Y.format()}})}makeError(Y,J){let Q=K0(Y,"data"),q=aQ.getBuiltinCallException("call",J,Q),X="execution reverted (unknown custom error)";if(q.message.startsWith("execution reverted (unknown custom error)")){let $=y(Q.slice(0,4)),W=this.getError($);if(W)try{let j=this.#X.decode(W.inputs,Q.slice(4));q.revert={name:W.name,signature:W.format(),args:j},q.reason=q.revert.signature,q.message=`execution reverted: ${q.reason}`}catch(j){q.message="execution reverted (coult not decode custom error)"}}let G=this.parseTransaction(J);if(G)q.invocation={method:G.name,signature:G.signature,args:G.args};return q}encodeFunctionResult(Y,J){if(typeof Y==="string"){let Q=this.getFunction(Y);H(Q,"unknown function","fragment",Y),Y=Q}return y(this.#X.encode(Y.outputs,J||[]))}encodeFilterTopics(Y,J){if(typeof Y==="string"){let X=this.getEvent(Y);H(X,"unknown event","eventFragment",Y),Y=X}_(J.length<=Y.inputs.length,`too many arguments for ${Y.format()}`,"UNEXPECTED_ARGUMENT",{count:J.length,expectedCount:Y.inputs.length});let Q=[];if(!Y.anonymous)Q.push(Y.topicHash);let q=(X,G)=>{if(X.type==="string")return eJ(G);else if(X.type==="bytes")return b0(y(G));if(X.type==="bool"&&typeof G==="boolean")G=G?"0x01":"0x00";else if(X.type.match(/^u?int/))G=UJ(G);else if(X.type.match(/^bytes/))G=tk(G,32);else if(X.type==="address")this.#X.encode(["address"],[G]);return uY(y(G),32)};J.forEach((X,G)=>{let $=Y.inputs[G];if(!$.indexed){H(X==null,"cannot filter non-indexed parameters; must be null","contract."+$.name,X);return}if(X==null)Q.push(null);else if($.baseType==="array"||$.baseType==="tuple")H(!1,"filtering with tuples or arrays not supported","contract."+$.name,X);else if(Array.isArray(X))Q.push(X.map((W)=>q($,W)));else Q.push(q($,X))});while(Q.length&&Q[Q.length-1]===null)Q.pop();return Q}encodeEventLog(Y,J){if(typeof Y==="string"){let G=this.getEvent(Y);H(G,"unknown event","eventFragment",Y),Y=G}let Q=[],q=[],X=[];if(!Y.anonymous)Q.push(Y.topicHash);return H(J.length===Y.inputs.length,"event arguments/values mismatch","values",J),Y.inputs.forEach((G,$)=>{let W=J[$];if(G.indexed)if(G.type==="string")Q.push(eJ(W));else if(G.type==="bytes")Q.push(b0(W));else if(G.baseType==="tuple"||G.baseType==="array")throw Error("not implemented");else Q.push(this.#X.encode([G.type],[W]));else q.push(G),X.push(W)}),{data:this.#X.encode(q,X),topics:Q}}decodeEventLog(Y,J,Q){if(typeof Y==="string"){let N=this.getEvent(Y);H(N,"unknown event","eventFragment",Y),Y=N}if(Q!=null&&!Y.anonymous){let N=Y.topicHash;H(v0(Q[0],32)&&Q[0].toLowerCase()===N,"fragment/topic mismatch","topics[0]",Q[0]),Q=Q.slice(1)}let q=[],X=[],G=[];Y.inputs.forEach((N,O)=>{if(N.indexed)if(N.type==="string"||N.type==="bytes"||N.baseType==="tuple"||N.baseType==="array")q.push(S0.from({type:"bytes32",name:N.name})),G.push(!0);else q.push(N),G.push(!1);else X.push(N),G.push(!1)});let $=Q!=null?this.#X.decode(q,F0(Q)):null,W=this.#X.decode(X,J,!0),j=[],K=[],z=0,M=0;return Y.inputs.forEach((N,O)=>{let D=null;if(N.indexed)if($==null)D=new $5(null);else if(G[O])D=new $5($[M++]);else try{D=$[M++]}catch(U){D=U}else try{D=W[z++]}catch(U){D=U}j.push(D),K.push(N.name||null)}),TY.fromItems(j,K)}parseTransaction(Y){let J=K0(Y.data,"tx.data"),Q=o(Y.value!=null?Y.value:0,"tx.value"),q=this.getFunction(y(J.slice(0,4)));if(!q)return null;let X=this.#X.decode(q.inputs,J.slice(4));return new a7(q,q.selector,X,Q)}parseCallResult(Y){throw Error("@TODO")}parseLog(Y){let J=this.getEvent(Y.topics[0]);if(!J||J.anonymous)return null;return new n7(J,J.topicHash,this.decodeEventLog(J,Y.data,Y.topics))}parseError(Y){let J=y(Y),Q=this.getError(f0(J,0,4));if(!Q)return null;let q=this.#X.decode(Q.inputs,f0(J,4));return new e7(Q,Q.selector,q)}static from(Y){if(Y instanceof hJ)return Y;if(typeof Y==="string")return new hJ(JSON.parse(Y));if(typeof Y.formatJson==="function")return new hJ(Y.formatJson());if(typeof Y.format==="function")return new hJ(Y.format("json"));return new hJ(Y)}}var YL=BigInt(0);function xQ(Y){if(Y==null)return null;return Y}function u0(Y){if(Y==null)return null;return Y.toString()}class W5{gasPrice;maxFeePerGas;maxPriorityFeePerGas;constructor(Y,J,Q){e(this,{gasPrice:xQ(Y),maxFeePerGas:xQ(J),maxPriorityFeePerGas:xQ(Q)})}toJSON(){let{gasPrice:Y,maxFeePerGas:J,maxPriorityFeePerGas:Q}=this;return{_type:"FeeData",gasPrice:u0(Y),maxFeePerGas:u0(J),maxPriorityFeePerGas:u0(Q)}}}function L$(Y){let J={};if(Y.to)J.to=Y.to;if(Y.from)J.from=Y.from;if(Y.data)J.data=y(Y.data);let Q="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let X of Q){if(!(X in Y)||Y[X]==null)continue;J[X]=o(Y[X],`request.${X}`)}let q="type,nonce".split(/,/);for(let X of q){if(!(X in Y)||Y[X]==null)continue;J[X]=W0(Y[X],`request.${X}`)}if(Y.accessList)J.accessList=jQ(Y.accessList);if(Y.authorizationList)J.authorizationList=Y.authorizationList.slice();if("blockTag"in Y)J.blockTag=Y.blockTag;if("enableCcipRead"in Y)J.enableCcipRead=!!Y.enableCcipRead;if("customData"in Y)J.customData=Y.customData;if("blobVersionedHashes"in Y&&Y.blobVersionedHashes)J.blobVersionedHashes=Y.blobVersionedHashes.slice();if("kzg"in Y)J.kzg=Y.kzg;if("blobWrapperVersion"in Y)J.blobWrapperVersion=Y.blobWrapperVersion;if("blobs"in Y&&Y.blobs)J.blobs=Y.blobs.map((X)=>{if(eK(X))return y(X);return Object.assign({},X)});return J}class JL{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#Y;constructor(Y,J){this.#Y=Y.transactions.map((Q)=>{if(typeof Q!=="string")return new tq(Q,J);return Q}),e(this,{provider:J,hash:xQ(Y.hash),number:Y.number,timestamp:Y.timestamp,parentHash:Y.parentHash,parentBeaconBlockRoot:Y.parentBeaconBlockRoot,nonce:Y.nonce,difficulty:Y.difficulty,gasLimit:Y.gasLimit,gasUsed:Y.gasUsed,blobGasUsed:Y.blobGasUsed,excessBlobGas:Y.excessBlobGas,miner:Y.miner,prevRandao:xQ(Y.prevRandao),extraData:Y.extraData,baseFeePerGas:xQ(Y.baseFeePerGas),stateRoot:Y.stateRoot,receiptsRoot:Y.receiptsRoot})}get transactions(){return this.#Y.map((Y)=>{if(typeof Y==="string")return Y;return Y.hash})}get prefetchedTransactions(){let Y=this.#Y.slice();if(Y.length===0)return[];return _(typeof Y[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),Y}toJSON(){let{baseFeePerGas:Y,difficulty:J,extraData:Q,gasLimit:q,gasUsed:X,hash:G,miner:$,prevRandao:W,nonce:j,number:K,parentHash:z,parentBeaconBlockRoot:M,stateRoot:N,receiptsRoot:O,timestamp:D,transactions:U}=this;return{_type:"Block",baseFeePerGas:u0(Y),difficulty:u0(J),extraData:Q,gasLimit:u0(q),gasUsed:u0(X),blobGasUsed:u0(this.blobGasUsed),excessBlobGas:u0(this.excessBlobGas),hash:G,miner:$,prevRandao:W,nonce:j,number:K,parentHash:z,timestamp:D,parentBeaconBlockRoot:M,stateRoot:N,receiptsRoot:O,transactions:U}}[Symbol.iterator](){let Y=0,J=this.transactions;return{next:()=>{if(Y<this.length)return{value:J[Y++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#Y.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(Y){let J=void 0;if(typeof Y==="number")J=this.#Y[Y];else{let Q=Y.toLowerCase();for(let q of this.#Y)if(typeof q==="string"){if(q!==Q)continue;J=q;break}else{if(q.hash!==Q)continue;J=q;break}}if(J==null)throw Error("no such tx");if(typeof J==="string")return await this.provider.getTransaction(J);else return J}getPrefetchedTransaction(Y){let J=this.prefetchedTransactions;if(typeof Y==="number")return J[Y];Y=Y.toLowerCase();for(let Q of J)if(Q.hash===Y)return Q;H(!1,"no matching transaction","indexOrHash",Y)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return KT(this)}}class zX{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(Y,J){this.provider=J;let Q=Object.freeze(Y.topics.slice());e(this,{transactionHash:Y.transactionHash,blockHash:Y.blockHash,blockNumber:Y.blockNumber,removed:Y.removed,address:Y.address,data:Y.data,topics:Q,index:Y.index,transactionIndex:Y.transactionIndex})}toJSON(){let{address:Y,blockHash:J,blockNumber:Q,data:q,index:X,removed:G,topics:$,transactionHash:W,transactionIndex:j}=this;return{_type:"log",address:Y,blockHash:J,blockNumber:Q,data:q,index:X,removed:G,topics:$,transactionHash:W,transactionIndex:j}}async getBlock(){let Y=await this.provider.getBlock(this.blockHash);return _(!!Y,"failed to find transaction","UNKNOWN_ERROR",{}),Y}async getTransaction(){let Y=await this.provider.getTransaction(this.transactionHash);return _(!!Y,"failed to find transaction","UNKNOWN_ERROR",{}),Y}async getTransactionReceipt(){let Y=await this.provider.getTransactionReceipt(this.transactionHash);return _(!!Y,"failed to find transaction receipt","UNKNOWN_ERROR",{}),Y}removedEvent(){return zT(this)}}class Bz{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#Y;constructor(Y,J){this.#Y=Object.freeze(Y.logs.map((q)=>{return new zX(q,J)}));let Q=YL;if(Y.effectiveGasPrice!=null)Q=Y.effectiveGasPrice;else if(Y.gasPrice!=null)Q=Y.gasPrice;e(this,{provider:J,to:Y.to,from:Y.from,contractAddress:Y.contractAddress,hash:Y.hash,index:Y.index,blockHash:Y.blockHash,blockNumber:Y.blockNumber,logsBloom:Y.logsBloom,gasUsed:Y.gasUsed,cumulativeGasUsed:Y.cumulativeGasUsed,blobGasUsed:Y.blobGasUsed,gasPrice:Q,blobGasPrice:Y.blobGasPrice,type:Y.type,status:Y.status,root:Y.root})}get logs(){return this.#Y}toJSON(){let{to:Y,from:J,contractAddress:Q,hash:q,index:X,blockHash:G,blockNumber:$,logsBloom:W,logs:j,status:K,root:z}=this;return{_type:"TransactionReceipt",blockHash:G,blockNumber:$,contractAddress:Q,cumulativeGasUsed:u0(this.cumulativeGasUsed),from:J,gasPrice:u0(this.gasPrice),blobGasUsed:u0(this.blobGasUsed),blobGasPrice:u0(this.blobGasPrice),gasUsed:u0(this.gasUsed),hash:q,index:X,logs:j,logsBloom:W,root:z,status:K,to:Y}}get length(){return this.logs.length}[Symbol.iterator](){let Y=0;return{next:()=>{if(Y<this.length)return{value:this.logs[Y++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let Y=await this.provider.getBlock(this.blockHash);if(Y==null)throw Error("TODO");return Y}async getTransaction(){let Y=await this.provider.getTransaction(this.hash);if(Y==null)throw Error("TODO");return Y}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return XL(this)}reorderedEvent(Y){return _(!Y||Y.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),QL(this,Y)}}class tq{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#Y;constructor(Y,J){this.provider=J,this.blockNumber=Y.blockNumber!=null?Y.blockNumber:null,this.blockHash=Y.blockHash!=null?Y.blockHash:null,this.hash=Y.hash,this.index=Y.index,this.type=Y.type,this.from=Y.from,this.to=Y.to||null,this.gasLimit=Y.gasLimit,this.nonce=Y.nonce,this.data=Y.data,this.value=Y.value,this.gasPrice=Y.gasPrice,this.maxPriorityFeePerGas=Y.maxPriorityFeePerGas!=null?Y.maxPriorityFeePerGas:null,this.maxFeePerGas=Y.maxFeePerGas!=null?Y.maxFeePerGas:null,this.maxFeePerBlobGas=Y.maxFeePerBlobGas!=null?Y.maxFeePerBlobGas:null,this.chainId=Y.chainId,this.signature=Y.signature,this.accessList=Y.accessList!=null?Y.accessList:null,this.blobVersionedHashes=Y.blobVersionedHashes!=null?Y.blobVersionedHashes:null,this.authorizationList=Y.authorizationList!=null?Y.authorizationList:null,this.#Y=-1}toJSON(){let{blockNumber:Y,blockHash:J,index:Q,hash:q,type:X,to:G,from:$,nonce:W,data:j,signature:K,accessList:z,blobVersionedHashes:M}=this;return{_type:"TransactionResponse",accessList:z,blockNumber:Y,blockHash:J,blobVersionedHashes:M,chainId:u0(this.chainId),data:j,from:$,gasLimit:u0(this.gasLimit),gasPrice:u0(this.gasPrice),hash:q,maxFeePerGas:u0(this.maxFeePerGas),maxPriorityFeePerGas:u0(this.maxPriorityFeePerGas),maxFeePerBlobGas:u0(this.maxFeePerBlobGas),nonce:W,signature:K,to:G,index:Q,type:X,value:u0(this.value)}}async getBlock(){let Y=this.blockNumber;if(Y==null){let Q=await this.getTransaction();if(Q)Y=Q.blockNumber}if(Y==null)return null;let J=this.provider.getBlock(Y);if(J==null)throw Error("TODO");return J}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:Y,blockNumber:J}=await M8({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(Y==null||Y.blockNumber==null)return 0;return J-Y.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(Y,J){let Q=Y==null?1:Y,q=J==null?0:J,X=this.#Y,G=-1,$=X===-1?!0:!1,W=async()=>{if($)return null;let{blockNumber:z,nonce:M}=await M8({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(M<this.nonce){X=z;return}if($)return null;let N=await this.getTransaction();if(N&&N.blockNumber!=null)return;if(G===-1){if(G=X-3,G<this.#Y)G=this.#Y}while(G<=z){if($)return null;let O=await this.provider.getBlock(G,!0);if(O==null)return;for(let D of O)if(D===this.hash)return;for(let D=0;D<O.length;D++){let U=await O.getTransaction(D);if(U.from===this.from&&U.nonce===this.nonce){if($)return null;let A=await this.provider.getTransactionReceipt(U.hash);if(A==null)return;if(z-A.blockNumber+1<Q)return;let w="replaced";if(U.data===this.data&&U.to===this.to&&U.value===this.value)w="repriced";else if(U.data==="0x"&&U.from===U.to&&U.value===YL)w="cancelled";_(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:w==="replaced"||w==="cancelled",reason:w,replacement:U.replaceableTransaction(X),hash:U.hash,receipt:A})}}G++}return},j=(z)=>{if(z==null||z.status!==0)return z;_(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:z.to,from:z.from,data:""},receipt:z})},K=await this.provider.getTransactionReceipt(this.hash);if(Q===0)return j(K);if(K){if(Q===1||await K.confirmations()>=Q)return j(K)}else if(await W(),Q===0)return null;return await new Promise((z,M)=>{let N=[],O=()=>{N.forEach((U)=>U())};if(N.push(()=>{$=!0}),q>0){let U=setTimeout(()=>{O(),M(_0("wait for transaction timeout","TIMEOUT"))},q);N.push(()=>{clearTimeout(U)})}let D=async(U)=>{if(await U.confirmations()>=Q){O();try{z(j(U))}catch(A){M(A)}}};if(N.push(()=>{this.provider.off(this.hash,D)}),this.provider.on(this.hash,D),X>=0){let U=async()=>{try{await W()}catch(A){if(Y8(A,"TRANSACTION_REPLACED")){O(),M(A);return}}if(!$)this.provider.once("block",U)};N.push(()=>{this.provider.off("block",U)}),this.provider.once("block",U)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),XL(this)}reorderedEvent(Y){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),_(!Y||Y.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),QL(this,Y)}replaceableTransaction(Y){H(Number.isInteger(Y)&&Y>=0,"invalid startBlock","startBlock",Y);let J=new tq(this,this.provider);return J.#Y=Y,J}}function KT(Y){return{orphan:"drop-block",hash:Y.hash,number:Y.number}}function QL(Y,J){return{orphan:"reorder-transaction",tx:Y,other:J}}function XL(Y){return{orphan:"drop-transaction",tx:Y}}function zT(Y){return{orphan:"drop-log",log:{transactionHash:Y.transactionHash,blockHash:Y.blockHash,blockNumber:Y.blockNumber,address:Y.address,data:Y.data,topics:Object.freeze(Y.topics.slice()),index:Y.index}}}class k9 extends zX{interface;fragment;args;constructor(Y,J,Q){super(Y,Y.provider);let q=J.decodeEventLog(Q,Y.data,Y.topics);e(this,{args:q,fragment:Q,interface:J})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class Rz extends zX{error;constructor(Y,J){super(Y,Y.provider);e(this,{error:J})}}class qL extends Bz{#Y;constructor(Y,J,Q){super(Q,J);this.#Y=Y}get logs(){return super.logs.map((Y)=>{let J=Y.topics.length?this.#Y.getEvent(Y.topics[0]):null;if(J)try{return new k9(Y,this.#Y,J)}catch(Q){return new Rz(Y,Q)}return Y})}}class F9 extends tq{#Y;constructor(Y,J,Q){super(Q,J);this.#Y=Y}async wait(Y,J){let Q=await super.wait(Y,J);if(Q==null)return null;return new qL(this.#Y,this.provider,Q)}}class Vz extends Jz{log;constructor(Y,J,Q,q){super(Y,J,Q);e(this,{log:q})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class GL extends Vz{constructor(Y,J,Q,q,X){super(Y,J,Q,new k9(X,Y.interface,q));let G=Y.interface.decodeEventLog(q,this.log.data,this.log.topics);e(this,{args:G,fragment:q})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}var LO=BigInt(0);function $L(Y){return Y&&typeof Y.call==="function"}function WL(Y){return Y&&typeof Y.estimateGas==="function"}function P9(Y){return Y&&typeof Y.resolveName==="function"}function jL(Y){return Y&&typeof Y.sendTransaction==="function"}function KL(Y){if(Y!=null){if(P9(Y))return Y;if(Y.provider)return Y.provider}return}class zL{#Y;fragment;constructor(Y,J,Q){if(e(this,{fragment:J}),J.inputs.length<Q.length)throw Error("too many arguments");let q=QQ(Y.runner,"resolveName"),X=P9(q)?q:null;this.#Y=async function(){let G=await Promise.all(J.inputs.map(($,W)=>{if(Q[W]==null)return null;return $.walkAsync(Q[W],(j,K)=>{if(j==="address"){if(Array.isArray(K))return Promise.all(K.map((z)=>O8(z,X)));return O8(K,X)}return K})}));return Y.interface.encodeFilterTopics(J,G)}()}getTopicFilter(){return this.#Y}}function QQ(Y,J){if(Y==null)return null;if(typeof Y[J]==="function")return Y;if(Y.provider&&typeof Y.provider[J]==="function")return Y.provider;return null}function bJ(Y){if(Y==null)return null;return Y.provider||null}async function ML(Y,J){let Q=h0.dereference(Y,"overrides");H(typeof Q==="object","invalid overrides parameter","overrides",Y);let q=L$(Q);if(H(q.to==null||(J||[]).indexOf("to")>=0,"cannot override to","overrides.to",q.to),H(q.data==null||(J||[]).indexOf("data")>=0,"cannot override data","overrides.data",q.data),q.from)q.from=q.from;return q}async function MT(Y,J,Q){let q=QQ(Y,"resolveName"),X=P9(q)?q:null;return await Promise.all(J.map((G,$)=>{return G.walkAsync(Q[$],(W,j)=>{if(j=h0.dereference(j,W),W==="address")return O8(j,X);return j})}))}function NT(Y){let J=async function($){let W=await ML($,["data"]);if(W.to=await Y.getAddress(),W.from)W.from=await O8(W.from,KL(Y.runner));let j=Y.interface,K=o(W.value||LO,"overrides.value")===LO,z=(W.data||"0x")==="0x";if(j.fallback&&!j.fallback.payable&&j.receive&&!z&&!K)H(!1,"cannot send data to receive or send value to non-payable fallback","overrides",$);H(j.fallback||z,"cannot send data to receive-only contract","overrides.data",W.data);let M=j.receive||j.fallback&&j.fallback.payable;return H(M||K,"cannot send value to non-payable fallback","overrides.value",W.value),H(j.fallback||z,"cannot send data to receive-only contract","overrides.data",W.data),W},Q=async function($){let W=QQ(Y.runner,"call");_($L(W),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let j=await J($);try{return await W.call(j)}catch(K){if(aK(K)&&K.data)throw Y.interface.makeError(K.data,j);throw K}},q=async function($){let W=Y.runner;_(jL(W),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let j=await W.sendTransaction(await J($)),K=bJ(Y.runner);return new F9(Y.interface,K,j)},X=async function($){let W=QQ(Y.runner,"estimateGas");return _(WL(W),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await W.estimateGas(await J($))},G=async($)=>{return await q($)};return e(G,{_contract:Y,estimateGas:X,populateTransaction:J,send:q,staticCall:Q}),G}function OT(Y,J){let Q=function(...K){let z=Y.interface.getFunction(J,K);return _(z,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J,args:K}}),z},q=async function(...K){let z=Q(...K),M={};if(z.inputs.length+1===K.length){if(M=await ML(K.pop()),M.from)M.from=await O8(M.from,KL(Y.runner))}if(z.inputs.length!==K.length)throw Error("internal error: fragment inputs doesn't match arguments; should not happen");let N=await MT(Y.runner,z.inputs,K);return Object.assign({},M,await M8({to:Y.getAddress(),data:Y.interface.encodeFunctionData(z,N)}))},X=async function(...K){let z=await W(...K);if(z.length===1)return z[0];return z},G=async function(...K){let z=Y.runner;_(jL(z),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let M=await z.sendTransaction(await q(...K)),N=bJ(Y.runner);return new F9(Y.interface,N,M)},$=async function(...K){let z=QQ(Y.runner,"estimateGas");return _(WL(z),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await z.estimateGas(await q(...K))},W=async function(...K){let z=QQ(Y.runner,"call");_($L(z),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let M=await q(...K),N="0x";try{N=await z.call(M)}catch(D){if(aK(D)&&D.data)throw Y.interface.makeError(D.data,M);throw D}let O=Q(...K);return Y.interface.decodeFunctionResult(O,N)},j=async(...K)=>{if(Q(...K).constant)return await X(...K);return await G(...K)};return e(j,{name:Y.interface.getFunctionName(J),_contract:Y,_key:J,getFragment:Q,estimateGas:$,populateTransaction:q,send:G,staticCall:X,staticCallResult:W}),Object.defineProperty(j,"fragment",{configurable:!1,enumerable:!0,get:()=>{let K=Y.interface.getFunction(J);return _(K,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J}}),K}}),j}function DT(Y,J){let Q=function(...X){let G=Y.interface.getEvent(J,X);return _(G,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J,args:X}}),G},q=function(...X){return new zL(Y,Q(...X),X)};return e(q,{name:Y.interface.getEventName(J),_contract:Y,_key:J,getFragment:Q}),Object.defineProperty(q,"fragment",{configurable:!1,enumerable:!0,get:()=>{let X=Y.interface.getEvent(J);return _(X,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:J}}),X}}),q}var E$=Symbol.for("_ethersInternal_contract"),NL=new WeakMap;function UT(Y,J){NL.set(Y[E$],J)}function _8(Y){return NL.get(Y[E$])}function HT(Y){return Y&&typeof Y==="object"&&"getTopicFilter"in Y&&typeof Y.getTopicFilter==="function"&&Y.fragment}async function Lz(Y,J){let Q,q=null;if(Array.isArray(J)){let G=function($){if(v0($,32))return $;let W=Y.interface.getEvent($);return H(W,"unknown fragment","name",$),W.topicHash};Q=J.map(($)=>{if($==null)return null;if(Array.isArray($))return $.map(G);return G($)})}else if(J==="*")Q=[null];else if(typeof J==="string")if(v0(J,32))Q=[J];else q=Y.interface.getEvent(J),H(q,"unknown fragment","event",J),Q=[q.topicHash];else if(HT(J))Q=await J.getTopicFilter();else if("fragment"in J)q=J.fragment,Q=[q.topicHash];else H(!1,"unknown event name","event",J);Q=Q.map((G)=>{if(G==null)return null;if(Array.isArray(G)){let $=Array.from(new Set(G.map((W)=>W.toLowerCase())).values());if($.length===1)return $[0];return $.sort(),$}return G.toLowerCase()});let X=Q.map((G)=>{if(G==null)return"null";if(Array.isArray(G))return G.join("|");return G}).join("&");return{fragment:q,tag:X,topics:Q}}async function oX(Y,J){let{subs:Q}=_8(Y);return Q.get((await Lz(Y,J)).tag)||null}async function EO(Y,J,Q){let q=bJ(Y.runner);_(q,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:J});let{fragment:X,tag:G,topics:$}=await Lz(Y,Q),{addr:W,subs:j}=_8(Y),K=j.get(G);if(!K){let z={address:W?W:Y,topics:$},M=(O)=>{let D=X;if(D==null)try{D=Y.interface.getEvent(O.topics[0])}catch(U){}if(D){let U=D,A=X?Y.interface.decodeEventLog(X,O.data,O.topics):[];K5(Y,Q,A,(w)=>{return new GL(Y,w,Q,U,O)})}else K5(Y,Q,[],(U)=>{return new Vz(Y,U,Q,O)})},N=[];K={tag:G,listeners:[],start:()=>{if(N.length)return;N.push(q.on(z,M))},stop:async()=>{if(N.length==0)return;let O=N;N=[],await Promise.all(O),q.off(z,M)}},j.set(G,K)}return K}var j5=Promise.resolve();async function BT(Y,J,Q,q){await j5;let X=await oX(Y,J);if(!X)return!1;let G=X.listeners.length;if(X.listeners=X.listeners.filter(({listener:$,once:W})=>{let j=Array.from(Q);if(q)j.push(q(W?null:$));try{$.call(Y,...j)}catch(K){}return!W}),X.listeners.length===0)X.stop(),_8(Y).subs.delete(X.tag);return G>0}async function K5(Y,J,Q,q){try{await j5}catch(G){}let X=BT(Y,J,Q,q);return j5=X,await X}var TG=["then"];class sX{target;interface;runner;filters;[E$];fallback;constructor(Y,J,Q,q){if(H(typeof Y==="string"||G7(Y),"invalid value for Contract target","target",Y),Q==null)Q=null;let X=hJ.from(J);e(this,{target:Y,runner:Q,interface:X}),Object.defineProperty(this,E$,{value:{}});let G,$=null,W=null;if(q){let z=bJ(Q);W=new F9(this.interface,z,q)}let j=new Map;if(typeof Y==="string")if(v0(Y))$=Y,G=Promise.resolve(Y);else{let z=QQ(Q,"resolveName");if(!P9(z))throw _0("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});G=z.resolveName(Y).then((M)=>{if(M==null)throw _0("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:Y});return _8(this).addr=M,M})}else G=Y.getAddress().then((z)=>{if(z==null)throw Error("TODO");return _8(this).addr=z,z});UT(this,{addrPromise:G,addr:$,deployTx:W,subs:j});let K=new Proxy({},{get:(z,M,N)=>{if(typeof M==="symbol"||TG.indexOf(M)>=0)return Reflect.get(z,M,N);try{return this.getEvent(M)}catch(O){if(!Y8(O,"INVALID_ARGUMENT")||O.argument!=="key")throw O}return},has:(z,M)=>{if(TG.indexOf(M)>=0)return Reflect.has(z,M);return Reflect.has(z,M)||this.interface.hasEvent(String(M))}});return e(this,{filters:K}),e(this,{fallback:X.receive||X.fallback?NT(this):null}),new Proxy(this,{get:(z,M,N)=>{if(typeof M==="symbol"||M in z||TG.indexOf(M)>=0)return Reflect.get(z,M,N);try{return z.getFunction(M)}catch(O){if(!Y8(O,"INVALID_ARGUMENT")||O.argument!=="key")throw O}return},has:(z,M)=>{if(typeof M==="symbol"||M in z||TG.indexOf(M)>=0)return Reflect.has(z,M);return z.interface.hasFunction(M)}})}connect(Y){return new sX(this.target,this.interface,Y)}attach(Y){return new sX(Y,this.interface,this.runner)}async getAddress(){return await _8(this).addrPromise}async getDeployedCode(){let Y=bJ(this.runner);_(Y,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});let J=await Y.getCode(await this.getAddress());if(J==="0x")return null;return J}async waitForDeployment(){let Y=this.deploymentTransaction();if(Y)return await Y.wait(),this;if(await this.getDeployedCode()!=null)return this;let J=bJ(this.runner);return _(J!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((Q,q)=>{let X=async()=>{try{if(await this.getDeployedCode()!=null)return Q(this);J.once("block",X)}catch(G){q(G)}};X()})}deploymentTransaction(){return _8(this).deployTx}getFunction(Y){if(typeof Y!=="string")Y=Y.format();return OT(this,Y)}getEvent(Y){if(typeof Y!=="string")Y=Y.format();return DT(this,Y)}async queryTransaction(Y){throw Error("@TODO")}async queryFilter(Y,J,Q){if(J==null)J=0;if(Q==null)Q="latest";let{addr:q,addrPromise:X}=_8(this),G=q?q:await X,{fragment:$,topics:W}=await Lz(this,Y),j={address:G,topics:W,fromBlock:J,toBlock:Q},K=bJ(this.runner);return _(K,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await K.getLogs(j)).map((z)=>{let M=$;if(M==null)try{M=this.interface.getEvent(z.topics[0])}catch(N){}if(M)try{return new k9(z,this.interface,M)}catch(N){return new Rz(z,N)}return new zX(z,K)})}async on(Y,J){let Q=await EO(this,"on",Y);return Q.listeners.push({listener:J,once:!1}),Q.start(),this}async once(Y,J){let Q=await EO(this,"once",Y);return Q.listeners.push({listener:J,once:!0}),Q.start(),this}async emit(Y,...J){return await K5(this,Y,J,null)}async listenerCount(Y){if(Y){let q=await oX(this,Y);if(!q)return 0;return q.listeners.length}let{subs:J}=_8(this),Q=0;for(let{listeners:q}of J.values())Q+=q.length;return Q}async listeners(Y){if(Y){let q=await oX(this,Y);if(!q)return[];return q.listeners.map(({listener:X})=>X)}let{subs:J}=_8(this),Q=[];for(let{listeners:q}of J.values())Q=Q.concat(q.map(({listener:X})=>X));return Q}async off(Y,J){let Q=await oX(this,Y);if(!Q)return this;if(J){let q=Q.listeners.map(({listener:X})=>X).indexOf(J);if(q>=0)Q.listeners.splice(q,1)}if(J==null||Q.listeners.length===0)Q.stop(),_8(this).subs.delete(Q.tag);return this}async removeAllListeners(Y){if(Y){let J=await oX(this,Y);if(!J)return this;J.stop(),_8(this).subs.delete(J.tag)}else{let{subs:J}=_8(this);for(let{tag:Q,stop:q}of J.values())q(),J.delete(Q)}return this}async addListener(Y,J){return await this.on(Y,J)}async removeListener(Y,J){return await this.off(Y,J)}static buildClass(Y){class J extends sX{constructor(Q,q=null){super(Q,Y,q)}}return J}static from(Y,J,Q){if(Q==null)Q=null;return new this(Y,J,Q)}}function RT(){return sX}class gQ extends RT(){}function AW(Y){if(Y.match(/^ipfs:\/\/ipfs\//i))Y=Y.substring(12);else if(Y.match(/^ipfs:\/\//i))Y=Y.substring(7);else H(!1,"unsupported IPFS format","link",Y);return`https://gateway.ipfs.io/ipfs/${Y}`}class OL{name;constructor(Y){e(this,{name:Y})}connect(Y){return this}supportsCoinType(Y){return!1}async encodeAddress(Y,J){throw Error("unsupported coin")}async decodeAddress(Y,J){throw Error("unsupported coin")}}var DL=new RegExp("^(ipfs)://(.*)$","i"),wO=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),DL,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];class fQ{provider;address;name;#Y;#J;constructor(Y,J,Q){e(this,{provider:Y,address:J,name:Q}),this.#Y=null,this.#J=new gQ(J,["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)"],Y)}async supportsWildcard(){if(this.#Y==null)this.#Y=(async()=>{try{return await this.#J.supportsInterface("0x9061b923")}catch(Y){if(Y8(Y,"CALL_EXCEPTION"))return!1;throw this.#Y=null,Y}})();return await this.#Y}async#Q(Y,J){J=(J||[]).slice();let Q=this.#J.interface;J.unshift(G5(this.name));let q=null;if(await this.supportsWildcard())q=Q.getFunction(Y),_(q,"missing fragment","UNKNOWN_ERROR",{info:{funcName:Y}}),J=[u2(this.name,255),Q.encodeFunctionData(q,J)],Y="resolve(bytes,bytes)";J.push({enableCcipRead:!0});try{let X=await this.#J[Y](...J);if(q)return Q.decodeFunctionResult(q,X)[0];return X}catch(X){if(!Y8(X,"CALL_EXCEPTION"))throw X}return null}async getAddress(Y){if(Y==null)Y=60;if(Y===60)try{let X=await this.#Q("addr(bytes32)");if(X==null||X===$q)return null;return X}catch(X){if(Y8(X,"CALL_EXCEPTION"))return null;throw X}if(Y>=0&&Y<2147483648){let X=Y+2147483648,G=await this.#Q("addr(bytes32,uint)",[X]);if(v0(G,20))return V0(G)}let J=null;for(let X of this.provider.plugins){if(!(X instanceof OL))continue;if(X.supportsCoinType(Y)){J=X;break}}if(J==null)return null;let Q=await this.#Q("addr(bytes32,uint)",[Y]);if(Q==null||Q==="0x")return null;let q=await J.decodeAddress(Y,Q);if(q!=null)return q;_(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${Y})`,info:{coinType:Y,data:Q}})}async getText(Y){let J=await this.#Q("text(bytes32,string)",[Y]);if(J==null||J==="0x")return null;return J}async getContentHash(){let Y=await this.#Q("contenthash(bytes32)");if(Y==null||Y==="0x")return null;let J=Y.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(J){let q=J[1]==="e3010170"?"ipfs":"ipns",X=parseInt(J[4],16);if(J[5].length===X*2)return`${q}://${ek("0x"+J[2])}`}let Q=Y.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(Q&&Q[1].length===64)return`bzz://${Q[1]}`;_(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:Y}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){let Y=[{type:"name",value:this.name}];try{let J=await this.getText("avatar");if(J==null)return Y.push({type:"!avatar",value:""}),{url:null,linkage:Y};Y.push({type:"avatar",value:J});for(let Q=0;Q<wO.length;Q++){let q=J.match(wO[Q]);if(q==null)continue;let X=q[1].toLowerCase();switch(X){case"https":case"data":return Y.push({type:"url",value:J}),{linkage:Y,url:J};case"ipfs":{let G=AW(J);return Y.push({type:"ipfs",value:J}),Y.push({type:"url",value:G}),{linkage:Y,url:G}}case"erc721":case"erc1155":{let G=X==="erc721"?"tokenURI(uint256)":"uri(uint256)";Y.push({type:X,value:J});let $=await this.getAddress();if($==null)return Y.push({type:"!owner",value:""}),{url:null,linkage:Y};let W=(q[2]||"").split("/");if(W.length!==2)return Y.push({type:`!${X}caip`,value:q[2]||""}),{url:null,linkage:Y};let j=W[1],K=new gQ(W[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(X==="erc721"){let D=await K.ownerOf(j);if($!==D)return Y.push({type:"!owner",value:D}),{url:null,linkage:Y};Y.push({type:"owner",value:D})}else if(X==="erc1155"){let D=await K.balanceOf($,j);if(!D)return Y.push({type:"!balance",value:"0"}),{url:null,linkage:Y};Y.push({type:"balance",value:D.toString()})}let z=await K[G](j);if(z==null||z==="0x")return Y.push({type:"!metadata-url",value:""}),{url:null,linkage:Y};if(Y.push({type:"metadata-url-base",value:z}),X==="erc1155")z=z.replace("{id}",UJ(j,32).substring(2)),Y.push({type:"metadata-url-expanded",value:z});if(z.match(/^ipfs:/i))z=AW(z);Y.push({type:"metadata-url",value:z});let M={},N=await new DY(z).send();N.assertOk();try{M=N.bodyJson}catch(D){try{Y.push({type:"!metadata",value:N.bodyText})}catch(U){let A=N.body;if(A)Y.push({type:"!metadata",value:y(A)});return{url:null,linkage:Y}}return{url:null,linkage:Y}}if(!M)return Y.push({type:"!metadata",value:""}),{url:null,linkage:Y};Y.push({type:"metadata",value:JSON.stringify(M)});let O=M.image;if(typeof O!=="string")return Y.push({type:"!imageUrl",value:""}),{url:null,linkage:Y};if(O.match(/^(https:\/\/|data:)/i));else{if(O.match(DL)==null)return Y.push({type:"!imageUrl-ipfs",value:O}),{url:null,linkage:Y};Y.push({type:"imageUrl-ipfs",value:O}),O=AW(O)}return Y.push({type:"url",value:O}),{linkage:Y,url:O}}}}}catch(J){}return{linkage:Y,url:null}}static async getEnsAddress(Y){let J=await Y.getNetwork(),Q=J.getPlugin("org.ethers.plugins.network.Ens");return _(Q,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:J}}),Q.address}static async#X(Y,J){let Q=await fQ.getEnsAddress(Y);try{let q=await new gQ(Q,["function resolver(bytes32) view returns (address)"],Y).resolver(G5(J),{enableCcipRead:!0});if(q===$q)return null;return q}catch(q){throw q}return null}static async fromName(Y,J){let Q=J;while(!0){if(Q===""||Q===".")return null;if(J!=="eth"&&Q==="eth")return null;let q=await fQ.#X(Y,Q);if(q!=null){let X=new fQ(Y,q,J);if(Q!==J&&!await X.supportsWildcard())return null;return X}Q=Q.split(".").slice(1).join(".")}}}var AO=BigInt(0);function D0(Y,J){return function(Q){if(Q==null)return J;return Y(Q)}}function Nq(Y,J){return(Q)=>{if(J&&Q==null)return null;if(!Array.isArray(Q))throw Error("not an array");return Q.map((q)=>Y(q))}}function nq(Y,J){return(Q)=>{let q={};for(let X in Y){let G=X;if(J&&X in J&&!(G in Q)){for(let $ of J[X])if($ in Q){G=$;break}}try{let $=Y[X](Q[G]);if($!==void 0)q[X]=$}catch($){let W=$ instanceof Error?$.message:"not-an-error";_(!1,`invalid value for value.${X} (${W})`,"BAD_DATA",{value:Q})}}return q}}function VT(Y){switch(Y){case!0:case"true":return!0;case!1:case"false":return!1}H(!1,`invalid boolean; ${JSON.stringify(Y)}`,"value",Y)}function eQ(Y){return H(v0(Y,!0),"invalid data","value",Y),Y}function e0(Y){return H(v0(Y,32),"invalid hash","value",Y),Y}var LT=nq({address:V0,blockHash:e0,blockNumber:W0,data:eQ,index:W0,removed:D0(VT,!1),topics:Nq(e0),transactionHash:e0,transactionIndex:W0},{index:["logIndex"]});function ET(Y){return LT(Y)}var wT=nq({hash:D0(e0),parentHash:e0,parentBeaconBlockRoot:D0(e0,null),number:W0,timestamp:W0,nonce:D0(eQ),difficulty:o,gasLimit:o,gasUsed:o,stateRoot:D0(e0,null),receiptsRoot:D0(e0,null),blobGasUsed:D0(o,null),excessBlobGas:D0(o,null),miner:D0(V0),prevRandao:D0(e0,null),extraData:eQ,baseFeePerGas:D0(o)},{prevRandao:["mixHash"]});function AT(Y){let J=wT(Y);return J.transactions=Y.transactions.map((Q)=>{if(typeof Q==="string")return Q;return UL(Q)}),J}var CT=nq({transactionIndex:W0,blockNumber:W0,transactionHash:e0,address:V0,topics:Nq(e0),data:eQ,index:W0,blockHash:e0},{index:["logIndex"]});function IT(Y){return CT(Y)}var ST=nq({to:D0(V0,null),from:D0(V0,null),contractAddress:D0(V0,null),index:W0,root:D0(y),gasUsed:o,blobGasUsed:D0(o,null),logsBloom:D0(eQ),blockHash:e0,hash:e0,logs:Nq(IT),blockNumber:W0,cumulativeGasUsed:o,effectiveGasPrice:D0(o),blobGasPrice:D0(o,null),status:D0(W0),type:D0(W0,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function vT(Y){return ST(Y)}function UL(Y){if(Y.to&&o(Y.to)===AO)Y.to="0x0000000000000000000000000000000000000000";let J=nq({hash:e0,index:D0(W0,void 0),type:(Q)=>{if(Q==="0x"||Q==null)return 0;return W0(Q)},accessList:D0(jQ,null),blobVersionedHashes:D0(Nq(e0,!0),null),authorizationList:D0(Nq((Q)=>{let q;if(Q.signature)q=Q.signature;else{let X=Q.yParity;if(X==="0x1b")X=0;else if(X==="0x1c")X=1;q=Object.assign({},Q,{yParity:X})}return{address:V0(Q.address),chainId:o(Q.chainId),nonce:o(Q.nonce),signature:Z0.from(q)}},!1),null),blockHash:D0(e0,null),blockNumber:D0(W0,null),transactionIndex:D0(W0,null),from:V0,gasPrice:D0(o),maxPriorityFeePerGas:D0(o),maxFeePerGas:D0(o),maxFeePerBlobGas:D0(o,null),gasLimit:o,to:D0(V0,null),value:o,nonce:W0,data:eQ,creates:D0(V0,null),chainId:D0(o,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(Y);if(J.to==null&&J.creates==null)J.creates=PP(J);if((Y.type===1||Y.type===2)&&Y.accessList==null)J.accessList=[];if(Y.signature)J.signature=Z0.from(Y.signature);else J.signature=Z0.from(Y);if(J.chainId==null){let Q=J.signature.legacyChainId;if(Q!=null)J.chainId=Q}if(J.blockHash&&o(J.blockHash)===AO)J.blockHash=null;return J}var _T="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class MX{name;constructor(Y){e(this,{name:Y})}clone(){return new MX(this.name)}}class T9 extends MX{effectiveBlock;txBase;txCreate;txDataZero;txDataNonzero;txAccessListStorageKey;txAccessListAddress;constructor(Y,J){if(Y==null)Y=0;super(`org.ethers.network.plugins.GasCost#${Y||0}`);let Q={effectiveBlock:Y};function q(X,G){let $=(J||{})[X];if($==null)$=G;H(typeof $==="number",`invalud value for ${X}`,"costs",J),Q[X]=$}q("txBase",21000),q("txCreate",32000),q("txDataZero",4),q("txDataNonzero",16),q("txAccessListStorageKey",1900),q("txAccessListAddress",2400),e(this,Q)}clone(){return new T9(this.effectiveBlock,this)}}class Z9 extends MX{address;targetNetwork;constructor(Y,J){super("org.ethers.plugins.network.Ens");e(this,{address:Y||_T,targetNetwork:J==null?1:J})}clone(){return new Z9(this.address,this.targetNetwork)}}class HL extends MX{#Y;get feeDataFunc(){return this.#Y}constructor(Y){super("org.ethers.plugins.network.FeeData");this.#Y=Y}async getFeeData(Y){return await this.#Y(Y)}clone(){return new HL(this.#Y)}}class BL extends MX{#Y;#J;get url(){return this.#Y}get processFunc(){return this.#J}constructor(Y,J){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin");this.#Y=Y,this.#J=J}clone(){return this}}var CW=new Map;class F8{#Y;#J;#Q;constructor(Y,J){this.#Y=Y,this.#J=o(J),this.#Q=new Map}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return this.#Y}set name(Y){this.#Y=Y}get chainId(){return this.#J}set chainId(Y){this.#J=o(Y,"chainId")}matches(Y){if(Y==null)return!1;if(typeof Y==="string"){try{return this.chainId===o(Y)}catch(J){}return this.name===Y}if(typeof Y==="number"||typeof Y==="bigint"){try{return this.chainId===o(Y)}catch(J){}return!1}if(typeof Y==="object"){if(Y.chainId!=null){try{return this.chainId===o(Y.chainId)}catch(J){}return!1}if(Y.name!=null)return this.name===Y.name;return!1}return!1}get plugins(){return Array.from(this.#Q.values())}attachPlugin(Y){if(this.#Q.get(Y.name))throw Error(`cannot replace existing plugin: ${Y.name} `);return this.#Q.set(Y.name,Y.clone()),this}getPlugin(Y){return this.#Q.get(Y)||null}getPlugins(Y){return this.plugins.filter((J)=>J.name.split("#")[0]===Y)}clone(){let Y=new F8(this.name,this.chainId);return this.plugins.forEach((J)=>{Y.attachPlugin(J.clone())}),Y}computeIntrinsicGas(Y){let J=this.getPlugin("org.ethers.plugins.network.GasCost")||new T9,Q=J.txBase;if(Y.to==null)Q+=J.txCreate;if(Y.data)for(let q=2;q<Y.data.length;q+=2)if(Y.data.substring(q,q+2)==="00")Q+=J.txDataZero;else Q+=J.txDataNonzero;if(Y.accessList){let q=jQ(Y.accessList);for(let X in q)Q+=J.txAccessListAddress+J.txAccessListStorageKey*q[X].storageKeys.length}return Q}static from(Y){if(kT(),Y==null)return F8.from("mainnet");if(typeof Y==="number")Y=BigInt(Y);if(typeof Y==="string"||typeof Y==="bigint"){let J=CW.get(Y);if(J)return J();if(typeof Y==="bigint")return new F8("unknown",Y);H(!1,"unknown network","network",Y)}if(typeof Y.clone==="function")return Y.clone();if(typeof Y==="object"){H(typeof Y.name==="string"&&typeof Y.chainId==="number","invalid network object name or chainId","network",Y);let J=new F8(Y.name,Y.chainId);if(Y.ensAddress||Y.ensNetwork!=null)J.attachPlugin(new Z9(Y.ensAddress,Y.ensNetwork));return J}H(!1,"invalid network","network",Y)}static register(Y,J){if(typeof Y==="number")Y=BigInt(Y);let Q=CW.get(Y);if(Q)H(!1,`conflicting network for ${JSON.stringify(Q.name)}`,"nameOrChainId",Y);CW.set(Y,J)}}function CO(Y,J){let Q=String(Y);if(!Q.match(/^[0-9.]+$/))throw Error(`invalid gwei value: ${Y}`);let q=Q.split(".");if(q.length===1)q.push("");if(q.length!==2)throw Error(`invalid gwei value: ${Y}`);while(q[1].length<J)q[1]+="0";if(q[1].length>9){let X=BigInt(q[1].substring(0,9));if(!q[1].substring(9).match(/^0+$/))X++;q[1]=X.toString()}return BigInt(q[0]+q[1])}function IO(Y){return new BL(Y,async(J,Q,q)=>{q.setHeader("User-Agent","ethers");let X;try{let[G,$]=await Promise.all([q.send(),J()]);X=G;let W=X.bodyJson.standard;return{gasPrice:$.gasPrice,maxFeePerGas:CO(W.maxFee,9),maxPriorityFeePerGas:CO(W.maxPriorityFee,9)}}catch(G){_(!1,`error encountered with polygon gas station (${JSON.stringify(q.url)})`,"SERVER_ERROR",{request:q,response:X,error:G})}})}var SO=!1;function kT(){if(SO)return;SO=!0;function Y(J,Q,q){let X=function(){let G=new F8(J,Q);if(q.ensNetwork!=null)G.attachPlugin(new Z9(null,q.ensNetwork));return G.attachPlugin(new T9),(q.plugins||[]).forEach(($)=>{G.attachPlugin($)}),G};if(F8.register(J,X),F8.register(Q,X),q.altNames)q.altNames.forEach((G)=>{F8.register(G,X)})}Y("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),Y("ropsten",3,{ensNetwork:3}),Y("rinkeby",4,{ensNetwork:4}),Y("goerli",5,{ensNetwork:5}),Y("kovan",42,{ensNetwork:42}),Y("sepolia",11155111,{ensNetwork:11155111}),Y("holesky",17000,{ensNetwork:17000}),Y("classic",61,{}),Y("classicKotti",6,{}),Y("arbitrum",42161,{ensNetwork:1}),Y("arbitrum-goerli",421613,{}),Y("arbitrum-sepolia",421614,{}),Y("base",8453,{ensNetwork:1}),Y("base-goerli",84531,{}),Y("base-sepolia",84532,{}),Y("bnb",56,{ensNetwork:1}),Y("bnbt",97,{}),Y("filecoin",314,{}),Y("filecoin-calibration",314159,{}),Y("linea",59144,{ensNetwork:1}),Y("linea-goerli",59140,{}),Y("linea-sepolia",59141,{}),Y("matic",137,{ensNetwork:1,plugins:[IO("https://gasstation.polygon.technology/v2")]}),Y("matic-amoy",80002,{}),Y("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[IO("https://gasstation-testnet.polygon.technology/v2")]}),Y("optimism",10,{ensNetwork:1,plugins:[]}),Y("optimism-goerli",420,{}),Y("optimism-sepolia",11155420,{}),Y("xdai",100,{ensNetwork:1})}function z5(Y){return JSON.parse(JSON.stringify(Y))}class RL{#Y;#J;#Q;#X;constructor(Y){this.#Y=Y,this.#J=null,this.#Q=4000,this.#X=-2}get pollingInterval(){return this.#Q}set pollingInterval(Y){this.#Q=Y}async#q(){try{let Y=await this.#Y.getBlockNumber();if(this.#X===-2){this.#X=Y;return}if(Y!==this.#X){for(let J=this.#X+1;J<=Y;J++){if(this.#J==null)return;await this.#Y.emit("block",J)}this.#X=Y}}catch(Y){}if(this.#J==null)return;this.#J=this.#Y._setTimeout(this.#q.bind(this),this.#Q)}start(){if(this.#J)return;this.#J=this.#Y._setTimeout(this.#q.bind(this),this.#Q),this.#q()}stop(){if(!this.#J)return;this.#Y._clearTimeout(this.#J),this.#J=null}pause(Y){if(this.stop(),Y)this.#X=-2}resume(){this.start()}}class x9{#Y;#J;#Q;constructor(Y){this.#Y=Y,this.#Q=!1,this.#J=(J)=>{this._poll(J,this.#Y)}}async _poll(Y,J){throw Error("sub-classes must override this")}start(){if(this.#Q)return;this.#Q=!0,this.#J(-2),this.#Y.on("block",this.#J)}stop(){if(!this.#Q)return;this.#Q=!1,this.#Y.off("block",this.#J)}pause(Y){this.stop()}resume(){this.start()}}class VL extends x9{#Y;#J;constructor(Y,J){super(Y);this.#Y=J,this.#J=-2}pause(Y){if(Y)this.#J=-2;super.pause(Y)}async _poll(Y,J){let Q=await J.getBlock(this.#Y);if(Q==null)return;if(this.#J===-2)this.#J=Q.number;else if(Q.number>this.#J)J.emit(this.#Y,Q.number),this.#J=Q.number}}class LL extends x9{#Y;constructor(Y,J){super(Y);this.#Y=z5(J)}async _poll(Y,J){throw Error("@TODO")}}class EL extends x9{#Y;constructor(Y,J){super(Y);this.#Y=J}async _poll(Y,J){let Q=await J.getTransactionReceipt(this.#Y);if(Q)J.emit(this.#Y,Q)}}class g9{#Y;#J;#Q;#X;#q;constructor(Y,J){this.#Y=Y,this.#J=z5(J),this.#Q=this.#$.bind(this),this.#X=!1,this.#q=-2}async#$(Y){if(this.#q===-2)return;let J=z5(this.#J);J.fromBlock=this.#q+1,J.toBlock=Y;let Q=await this.#Y.getLogs(J);if(Q.length===0){if(this.#q<Y-60)this.#q=Y-60;return}for(let q of Q)this.#Y.emit(this.#J,q),this.#q=q.blockNumber}start(){if(this.#X)return;if(this.#X=!0,this.#q===-2)this.#Y.getBlockNumber().then((Y)=>{this.#q=Y});this.#Y.on("block",this.#Q)}stop(){if(!this.#X)return;this.#X=!1,this.#Y.off("block",this.#Q)}pause(Y){if(this.stop(),Y)this.#q=-2}resume(){this.start()}}var FT=BigInt(2),PT=10;function ZG(Y){return Y&&typeof Y.then==="function"}function uG(Y,J){return Y+":"+JSON.stringify(J,(Q,q)=>{if(q==null)return"null";if(typeof q==="bigint")return`bigint:${q.toString()}`;if(typeof q==="string")return q.toLowerCase();if(typeof q==="object"&&!Array.isArray(q)){let X=Object.keys(q);return X.sort(),X.reduce((G,$)=>{return G[$]=q[$],G},{})}return q})}class Ez{name;constructor(Y){e(this,{name:Y})}start(){}stop(){}pause(Y){}resume(){}}function TT(Y){return JSON.parse(JSON.stringify(Y))}function M5(Y){return Y=Array.from(new Set(Y).values()),Y.sort(),Y}async function IW(Y,J){if(Y==null)throw Error("invalid event");if(Array.isArray(Y))Y={topics:Y};if(typeof Y==="string")switch(Y){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:Y,tag:Y}}if(v0(Y,32)){let Q=Y.toLowerCase();return{type:"transaction",tag:uG("tx",{hash:Q}),hash:Q}}if(Y.orphan){let Q=Y;return{type:"orphan",tag:uG("orphan",Q),filter:TT(Q)}}if(Y.address||Y.topics){let Q=Y,q={topics:(Q.topics||[]).map((X)=>{if(X==null)return null;if(Array.isArray(X))return M5(X.map((G)=>G.toLowerCase()));return X.toLowerCase()})};if(Q.address){let X=[],G=[],$=(W)=>{if(v0(W))X.push(W);else G.push((async()=>{X.push(await O8(W,J))})())};if(Array.isArray(Q.address))Q.address.forEach($);else $(Q.address);if(G.length)await Promise.all(G);q.address=M5(X.map((W)=>W.toLowerCase()))}return{filter:q,tag:uG("event",q),type:"event"}}H(!1,"unknown ProviderEvent","event",Y)}function SW(){return new Date().getTime()}var ZT={cacheTimeout:250,pollingInterval:4000};class wL{#Y;#J;#Q;#X;#q;#$;#G;#W;#O;#K;#D;#U;constructor(Y,J){if(this.#U=Object.assign({},ZT,J||{}),Y==="any")this.#$=!0,this.#q=null;else if(Y){let Q=F8.from(Y);this.#$=!1,this.#q=Promise.resolve(Q),setTimeout(()=>{this.emit("network",Q,null)},0)}else this.#$=!1,this.#q=null;this.#W=-1,this.#G=new Map,this.#Y=new Map,this.#J=new Map,this.#Q=null,this.#X=!1,this.#O=1,this.#K=new Map,this.#D=!1}get pollingInterval(){return this.#U.pollingInterval}get provider(){return this}get plugins(){return Array.from(this.#J.values())}attachPlugin(Y){if(this.#J.get(Y.name))throw Error(`cannot replace existing plugin: ${Y.name} `);return this.#J.set(Y.name,Y.connect(this)),this}getPlugin(Y){return this.#J.get(Y)||null}get disableCcipRead(){return this.#D}set disableCcipRead(Y){this.#D=!!Y}async#j(Y){let J=this.#U.cacheTimeout;if(J<0)return await this._perform(Y);let Q=uG(Y.method,Y),q=this.#G.get(Q);if(!q)q=this._perform(Y),this.#G.set(Q,q),setTimeout(()=>{if(this.#G.get(Q)===q)this.#G.delete(Q)},J);return await q}async ccipReadFetch(Y,J,Q){if(this.disableCcipRead||Q.length===0||Y.to==null)return null;let q=Y.to.toLowerCase(),X=J.toLowerCase(),G=[];for(let $=0;$<Q.length;$++){let W=Q[$],j=W.replace("{sender}",q).replace("{data}",X),K=new DY(j);if(W.indexOf("{data}")===-1)K.body={data:X,sender:q};this.emit("debug",{action:"sendCcipReadFetchRequest",request:K,index:$,urls:Q});let z="unknown error",M;try{M=await K.send()}catch(N){G.push(N.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:K,result:{error:N}});continue}try{let N=M.bodyJson;if(N.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:K,result:N}),N.data;if(N.message)z=N.message;this.emit("debug",{action:"receiveCcipReadFetchError",request:K,result:N})}catch(N){}_(M.statusCode<400||M.statusCode>=500,`response not found during CCIP fetch: ${z}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:Y,info:{url:W,errorMessage:z}}),G.push(z)}_(!1,`error encountered during CCIP fetch: ${G.map(($)=>JSON.stringify($)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:Y,info:{urls:Q,errorMessages:G}})}_wrapBlock(Y,J){return new JL(AT(Y),this)}_wrapLog(Y,J){return new zX(ET(Y),this)}_wrapTransactionReceipt(Y,J){return new Bz(vT(Y),this)}_wrapTransactionResponse(Y,J){return new tq(UL(Y),this)}_detectNetwork(){_(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(Y){_(!1,`unsupported method: ${Y.method}`,"UNSUPPORTED_OPERATION",{operation:Y.method,info:Y})}async getBlockNumber(){let Y=W0(await this.#j({method:"getBlockNumber"}),"%response");if(this.#W>=0)this.#W=Y;return Y}_getAddress(Y){return O8(Y,this)}_getBlockTag(Y){if(Y==null)return"latest";switch(Y){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return Y}if(v0(Y)){if(v0(Y,32))return Y;return i8(Y)}if(typeof Y==="bigint")Y=W0(Y,"blockTag");if(typeof Y==="number"){if(Y>=0)return i8(Y);if(this.#W>=0)return i8(this.#W+Y);return this.getBlockNumber().then((J)=>i8(J+Y))}H(!1,"invalid blockTag","blockTag",Y)}_getFilter(Y){let J=(Y.topics||[]).map((W)=>{if(W==null)return null;if(Array.isArray(W))return M5(W.map((j)=>j.toLowerCase()));return W.toLowerCase()}),Q="blockHash"in Y?Y.blockHash:void 0,q=(W,j,K)=>{let z=void 0;switch(W.length){case 0:break;case 1:z=W[0];break;default:W.sort(),z=W}if(Q){if(j!=null||K!=null)throw Error("invalid filter")}let M={};if(z)M.address=z;if(J.length)M.topics=J;if(j)M.fromBlock=j;if(K)M.toBlock=K;if(Q)M.blockHash=Q;return M},X=[];if(Y.address)if(Array.isArray(Y.address))for(let W of Y.address)X.push(this._getAddress(W));else X.push(this._getAddress(Y.address));let G=void 0;if("fromBlock"in Y)G=this._getBlockTag(Y.fromBlock);let $=void 0;if("toBlock"in Y)$=this._getBlockTag(Y.toBlock);if(X.filter((W)=>typeof W!=="string").length||G!=null&&typeof G!=="string"||$!=null&&typeof $!=="string")return Promise.all([Promise.all(X),G,$]).then((W)=>{return q(W[0],W[1],W[2])});return q(X,G,$)}_getTransactionRequest(Y){let J=L$(Y),Q=[];if(["to","from"].forEach((q)=>{if(J[q]==null)return;let X=O8(J[q],this);if(ZG(X))Q.push(async function(){J[q]=await X}());else J[q]=X}),J.blockTag!=null){let q=this._getBlockTag(J.blockTag);if(ZG(q))Q.push(async function(){J.blockTag=await q}());else J.blockTag=q}if(Q.length)return async function(){return await Promise.all(Q),J}();return J}async getNetwork(){if(this.#q==null){let q=(async()=>{try{let X=await this._detectNetwork();return this.emit("network",X,null),X}catch(X){if(this.#q===q)this.#q=null;throw X}})();return this.#q=q,(await q).clone()}let Y=this.#q,[J,Q]=await Promise.all([Y,this._detectNetwork()]);if(J.chainId!==Q.chainId)if(this.#$){if(this.emit("network",Q,J),this.#q===Y)this.#q=Promise.resolve(Q)}else _(!1,`network changed: ${J.chainId} => ${Q.chainId} `,"NETWORK_ERROR",{event:"changed"});return J.clone()}async getFeeData(){let Y=await this.getNetwork(),J=async()=>{let{_block:q,gasPrice:X,priorityFee:G}=await M8({_block:this.#R("latest",!1),gasPrice:(async()=>{try{let K=await this.#j({method:"getGasPrice"});return o(K,"%response")}catch(K){}return null})(),priorityFee:(async()=>{try{let K=await this.#j({method:"getPriorityFee"});return o(K,"%response")}catch(K){}return null})()}),$=null,W=null,j=this._wrapBlock(q,Y);if(j&&j.baseFeePerGas)W=G!=null?G:BigInt("1000000000"),$=j.baseFeePerGas*FT+W;return new W5(X,$,W)},Q=Y.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(Q){let q=new DY(Q.url),X=await Q.processFunc(J,this,q);return new W5(X.gasPrice,X.maxFeePerGas,X.maxPriorityFeePerGas)}return await J()}async estimateGas(Y){let J=this._getTransactionRequest(Y);if(ZG(J))J=await J;return o(await this.#j({method:"estimateGas",transaction:J}),"%response")}async#z(Y,J,Q){_(Q<PT,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},Y,{blockTag:J,enableCcipRead:!0})});let q=L$(Y);try{return y(await this._perform({method:"call",transaction:q,blockTag:J}))}catch(X){if(!this.disableCcipRead&&aK(X)&&X.data&&Q>=0&&J==="latest"&&q.to!=null&&f0(X.data,0,4)==="0x556f1830"){let G=X.data,$=await O8(q.to,this),W;try{W=mT(f0(X.data,4))}catch(z){_(!1,z.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:q,info:{data:G}})}_(W.sender.toLowerCase()===$.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:G,reason:"OffchainLookup",transaction:q,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:W.errorArgs}});let j=await this.ccipReadFetch(q,W.calldata,W.urls);_(j!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:q,info:{data:X.data,errorArgs:W.errorArgs}});let K={to:$,data:F0([W.selector,hT([j,W.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:K});try{let z=await this.#z(K,J,Q+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},K),result:z}),z}catch(z){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},K),error:z}),z}}throw X}}async#M(Y){let{value:J}=await M8({network:this.getNetwork(),value:Y});return J}async call(Y){let{tx:J,blockTag:Q}=await M8({tx:this._getTransactionRequest(Y),blockTag:this._getBlockTag(Y.blockTag)});return await this.#M(this.#z(J,Q,Y.enableCcipRead?0:-1))}async#N(Y,J,Q){let q=this._getAddress(J),X=this._getBlockTag(Q);if(typeof q!=="string"||typeof X!=="string")[q,X]=await Promise.all([q,X]);return await this.#M(this.#j(Object.assign(Y,{address:q,blockTag:X})))}async getBalance(Y,J){return o(await this.#N({method:"getBalance"},Y,J),"%response")}async getTransactionCount(Y,J){return W0(await this.#N({method:"getTransactionCount"},Y,J),"%response")}async getCode(Y,J){return y(await this.#N({method:"getCode"},Y,J))}async getStorage(Y,J,Q){let q=o(J,"position");return y(await this.#N({method:"getStorage",position:q},Y,Q))}async broadcastTransaction(Y){let{blockNumber:J,hash:Q,network:q}=await M8({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:Y}),network:this.getNetwork()}),X=s8.from(Y);if(X.hash!==Q)throw Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(X,q).replaceableTransaction(J)}async#R(Y,J){if(v0(Y,32))return await this.#j({method:"getBlock",blockHash:Y,includeTransactions:J});let Q=this._getBlockTag(Y);if(typeof Q!=="string")Q=await Q;return await this.#j({method:"getBlock",blockTag:Q,includeTransactions:J})}async getBlock(Y,J){let{network:Q,params:q}=await M8({network:this.getNetwork(),params:this.#R(Y,!!J)});if(q==null)return null;return this._wrapBlock(q,Q)}async getTransaction(Y){let{network:J,params:Q}=await M8({network:this.getNetwork(),params:this.#j({method:"getTransaction",hash:Y})});if(Q==null)return null;return this._wrapTransactionResponse(Q,J)}async getTransactionReceipt(Y){let{network:J,params:Q}=await M8({network:this.getNetwork(),params:this.#j({method:"getTransactionReceipt",hash:Y})});if(Q==null)return null;if(Q.gasPrice==null&&Q.effectiveGasPrice==null){let q=await this.#j({method:"getTransaction",hash:Y});if(q==null)throw Error("report this; could not find tx or effectiveGasPrice");Q.effectiveGasPrice=q.gasPrice}return this._wrapTransactionReceipt(Q,J)}async getTransactionResult(Y){let{result:J}=await M8({network:this.getNetwork(),result:this.#j({method:"getTransactionResult",hash:Y})});if(J==null)return null;return y(J)}async getLogs(Y){let J=this._getFilter(Y);if(ZG(J))J=await J;let{network:Q,params:q}=await M8({network:this.getNetwork(),params:this.#j({method:"getLogs",filter:J})});return q.map((X)=>this._wrapLog(X,Q))}_getProvider(Y){_(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(Y){return await fQ.fromName(this,Y)}async getAvatar(Y){let J=await this.getResolver(Y);if(J)return await J.getAvatar();return null}async resolveName(Y){let J=await this.getResolver(Y);if(J)return await J.getAddress();return null}async lookupAddress(Y){Y=V0(Y);let J=G5(Y.substring(2).toLowerCase()+".addr.reverse");try{let Q=await fQ.getEnsAddress(this),q=await new gQ(Q,["function resolver(bytes32) view returns (address)"],this).resolver(J);if(q==null||q===$q)return null;let X=await new gQ(q,["function name(bytes32) view returns (string)"],this).name(J);if(await this.resolveName(X)!==Y)return null;return X}catch(Q){if(Y8(Q,"BAD_DATA")&&Q.value==="0x")return null;if(Y8(Q,"CALL_EXCEPTION"))return null;throw Q}return null}async waitForTransaction(Y,J,Q){let q=J!=null?J:1;if(q===0)return this.getTransactionReceipt(Y);return new Promise(async(X,G)=>{let $=null,W=async(j)=>{try{let K=await this.getTransactionReceipt(Y);if(K!=null){if(j-K.blockNumber+1>=q){if(X(K),$)clearTimeout($),$=null;return}}}catch(K){console.log("EEE",K)}this.once("block",W)};if(Q!=null)$=setTimeout(()=>{if($==null)return;$=null,this.off("block",W),G(_0("timeout","TIMEOUT",{reason:"timeout"}))},Q);W(await this.getBlockNumber())})}async waitForBlock(Y){_(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(Y){let J=this.#K.get(Y);if(!J)return;if(J.timer)clearTimeout(J.timer);this.#K.delete(Y)}_setTimeout(Y,J){if(J==null)J=0;let Q=this.#O++,q=()=>{this.#K.delete(Q),Y()};if(this.paused)this.#K.set(Q,{timer:null,func:q,time:J});else{let X=setTimeout(q,J);this.#K.set(Q,{timer:X,func:q,time:SW()})}return Q}_forEachSubscriber(Y){for(let J of this.#Y.values())Y(J.subscriber)}_getSubscriber(Y){switch(Y.type){case"debug":case"error":case"network":return new Ez(Y.type);case"block":{let J=new RL(this);return J.pollingInterval=this.pollingInterval,J}case"safe":case"finalized":return new VL(this,Y.type);case"event":return new g9(this,Y.filter);case"transaction":return new EL(this,Y.hash);case"orphan":return new LL(this,Y.filter)}throw Error(`unsupported event: ${Y.type}`)}_recoverSubscriber(Y,J){for(let Q of this.#Y.values())if(Q.subscriber===Y){if(Q.started)Q.subscriber.stop();if(Q.subscriber=J,Q.started)J.start();if(this.#Q!=null)J.pause(this.#Q);break}}async#H(Y,J){let Q=await IW(Y,this);if(Q.type==="event"&&J&&J.length>0&&J[0].removed===!0)Q=await IW({orphan:"drop-log",log:J[0]},this);return this.#Y.get(Q.tag)||null}async#B(Y){let J=await IW(Y,this),Q=J.tag,q=this.#Y.get(Q);if(!q)q={subscriber:this._getSubscriber(J),tag:Q,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},this.#Y.set(Q,q);return q}async on(Y,J){let Q=await this.#B(Y);if(Q.listeners.push({listener:J,once:!1}),!Q.started){if(Q.subscriber.start(),Q.started=!0,this.#Q!=null)Q.subscriber.pause(this.#Q)}return this}async once(Y,J){let Q=await this.#B(Y);if(Q.listeners.push({listener:J,once:!0}),!Q.started){if(Q.subscriber.start(),Q.started=!0,this.#Q!=null)Q.subscriber.pause(this.#Q)}return this}async emit(Y,...J){let Q=await this.#H(Y,J);if(!Q||Q.listeners.length===0)return!1;let q=Q.listeners.length;if(Q.listeners=Q.listeners.filter(({listener:X,once:G})=>{let $=new Jz(this,G?null:X,Y);try{X.call(this,...J,$)}catch(W){}return!G}),Q.listeners.length===0){if(Q.started)Q.subscriber.stop();this.#Y.delete(Q.tag)}return q>0}async listenerCount(Y){if(Y){let Q=await this.#H(Y);if(!Q)return 0;return Q.listeners.length}let J=0;for(let{listeners:Q}of this.#Y.values())J+=Q.length;return J}async listeners(Y){if(Y){let Q=await this.#H(Y);if(!Q)return[];return Q.listeners.map(({listener:q})=>q)}let J=[];for(let{listeners:Q}of this.#Y.values())J=J.concat(Q.map(({listener:q})=>q));return J}async off(Y,J){let Q=await this.#H(Y);if(!Q)return this;if(J){let q=Q.listeners.map(({listener:X})=>X).indexOf(J);if(q>=0)Q.listeners.splice(q,1)}if(!J||Q.listeners.length===0){if(Q.started)Q.subscriber.stop();this.#Y.delete(Q.tag)}return this}async removeAllListeners(Y){if(Y){let{tag:J,started:Q,subscriber:q}=await this.#B(Y);if(Q)q.stop();this.#Y.delete(J)}else for(let[J,{started:Q,subscriber:q}]of this.#Y){if(Q)q.stop();this.#Y.delete(J)}return this}async addListener(Y,J){return await this.on(Y,J)}async removeListener(Y,J){return this.off(Y,J)}get destroyed(){return this.#X}destroy(){this.removeAllListeners();for(let Y of this.#K.keys())this._clearTimeout(Y);this.#X=!0}get paused(){return this.#Q!=null}set paused(Y){if(!!Y===this.paused)return;if(this.paused)this.resume();else this.pause(!1)}pause(Y){if(this.#W=-1,this.#Q!=null){if(this.#Q==!!Y)return;_(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber((J)=>J.pause(Y)),this.#Q=!!Y;for(let J of this.#K.values()){if(J.timer)clearTimeout(J.timer);J.time=SW()-J.time}}resume(){if(this.#Q==null)return;this._forEachSubscriber((Y)=>Y.resume()),this.#Q=null;for(let Y of this.#K.values()){let J=Y.time;if(J<0)J=0;Y.time=SW(),setTimeout(Y.func,J)}}}function xT(Y,J){try{let Q=N5(Y,J);if(Q)return N$(Q)}catch(Q){}return null}function N5(Y,J){if(Y==="0x")return null;try{let Q=W0(f0(Y,J,J+32)),q=W0(f0(Y,Q,Q+32));return f0(Y,Q+32,Q+32+q)}catch(Q){}return null}function vO(Y){let J=p0(Y);if(J.length>32)throw Error("internal; should not happen");let Q=new Uint8Array(32);return Q.set(J,32-J.length),Q}function gT(Y){if(Y.length%32===0)return Y;let J=new Uint8Array(Math.ceil(Y.length/32)*32);return J.set(Y),J}var fT=new Uint8Array([]);function hT(Y){let J=[],Q=0;for(let q=0;q<Y.length;q++)J.push(fT),Q+=32;for(let q=0;q<Y.length;q++){let X=K0(Y[q]);J[q]=vO(Q),J.push(vO(X.length)),J.push(gT(X)),Q+=32+Math.ceil(X.length/32)*32}return F0(J)}var _O="0x0000000000000000000000000000000000000000000000000000000000000000";function mT(Y){let J={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};_(TQ(Y)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});let Q=f0(Y,0,32);_(f0(Q,0,12)===f0(_O,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),J.sender=f0(Q,12);try{let q=[],X=W0(f0(Y,32,64)),G=W0(f0(Y,X,X+32)),$=f0(Y,X+32);for(let W=0;W<G;W++){let j=xT($,W*32);if(j==null)throw Error("abort");q.push(j)}J.urls=q}catch(q){_(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{let q=N5(Y,64);if(q==null)throw Error("abort");J.calldata=q}catch(q){_(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}_(f0(Y,100,128)===f0(_O,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),J.selector=f0(Y,96,100);try{let q=N5(Y,128);if(q==null)throw Error("abort");J.extraData=q}catch(q){_(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return J.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map((q)=>J[q]),J}function ZJ(Y,J){if(Y.provider)return Y.provider;_(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:J})}async function kO(Y,J){let Q=L$(J);if(Q.to!=null)Q.to=O8(Q.to,Y);if(Q.from!=null){let q=Q.from;Q.from=Promise.all([Y.getAddress(),O8(q,Y)]).then(([X,G])=>{return H(X.toLowerCase()===G.toLowerCase(),"transaction from mismatch","tx.from",G),X})}else Q.from=Y.getAddress();return await M8(Q)}class wz{provider;constructor(Y){e(this,{provider:Y||null})}async getNonce(Y){return ZJ(this,"getTransactionCount").getTransactionCount(await this.getAddress(),Y)}async populateCall(Y){return await kO(this,Y)}async populateTransaction(Y){let J=ZJ(this,"populateTransaction"),Q=await kO(this,Y);if(Q.nonce==null)Q.nonce=await this.getNonce("pending");if(Q.gasLimit==null)Q.gasLimit=await this.estimateGas(Q);let q=await this.provider.getNetwork();if(Q.chainId!=null){let G=o(Q.chainId);H(G===q.chainId,"transaction chainId mismatch","tx.chainId",Y.chainId)}else Q.chainId=q.chainId;let X=Q.maxFeePerGas!=null||Q.maxPriorityFeePerGas!=null;if(Q.gasPrice!=null&&(Q.type===2||X))H(!1,"eip-1559 transaction do not support gasPrice","tx",Y);else if((Q.type===0||Q.type===1)&&X)H(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",Y);if((Q.type===2||Q.type==null)&&(Q.maxFeePerGas!=null&&Q.maxPriorityFeePerGas!=null))Q.type=2;else if(Q.type===0||Q.type===1){let G=await J.getFeeData();if(_(G.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),Q.gasPrice==null)Q.gasPrice=G.gasPrice}else{let G=await J.getFeeData();if(Q.type==null)if(G.maxFeePerGas!=null&&G.maxPriorityFeePerGas!=null){if(Q.authorizationList&&Q.authorizationList.length)Q.type=4;else Q.type=2;if(Q.gasPrice!=null){let $=Q.gasPrice;delete Q.gasPrice,Q.maxFeePerGas=$,Q.maxPriorityFeePerGas=$}else{if(Q.maxFeePerGas==null)Q.maxFeePerGas=G.maxFeePerGas;if(Q.maxPriorityFeePerGas==null)Q.maxPriorityFeePerGas=G.maxPriorityFeePerGas}}else if(G.gasPrice!=null){if(_(!X,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),Q.gasPrice==null)Q.gasPrice=G.gasPrice;Q.type=0}else _(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(Q.type===2||Q.type===3||Q.type===4){if(Q.maxFeePerGas==null)Q.maxFeePerGas=G.maxFeePerGas;if(Q.maxPriorityFeePerGas==null)Q.maxPriorityFeePerGas=G.maxPriorityFeePerGas}}return await M8(Q)}async populateAuthorization(Y){let J=Object.assign({},Y);if(J.chainId==null)J.chainId=(await ZJ(this,"getNetwork").getNetwork()).chainId;if(J.nonce==null)J.nonce=await this.getNonce();return J}async estimateGas(Y){return ZJ(this,"estimateGas").estimateGas(await this.populateCall(Y))}async call(Y){return ZJ(this,"call").call(await this.populateCall(Y))}async resolveName(Y){return await ZJ(this,"resolveName").resolveName(Y)}async sendTransaction(Y){let J=ZJ(this,"sendTransaction"),Q=await this.populateTransaction(Y);delete Q.from;let q=s8.from(Q);return await J.broadcastTransaction(await this.signTransaction(q))}authorize(Y){_(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class AL extends wz{address;constructor(Y,J){super(J);e(this,{address:Y})}async getAddress(){return this.address}connect(Y){return new AL(this.address,Y)}#Y(Y,J){_(!1,`VoidSigner cannot sign ${Y}`,"UNSUPPORTED_OPERATION",{operation:J})}async signTransaction(Y){this.#Y("transactions","signTransaction")}async signMessage(Y){this.#Y("messages","signMessage")}async signTypedData(Y,J,Q){this.#Y("typed-data","signTypedData")}}function yT(Y){return JSON.parse(JSON.stringify(Y))}class Az{#Y;#J;#Q;#X;#q;#$;constructor(Y){this.#Y=Y,this.#J=null,this.#Q=this.#G.bind(this),this.#X=!1,this.#q=null,this.#$=!1}_subscribe(Y){throw Error("subclasses must override this")}_emitResults(Y,J){throw Error("subclasses must override this")}_recover(Y){throw Error("subclasses must override this")}async#G(Y){try{if(this.#J==null)this.#J=this._subscribe(this.#Y);let J=null;try{J=await this.#J}catch(X){if(!Y8(X,"UNSUPPORTED_OPERATION")||X.operation!=="eth_newFilter")throw X}if(J==null){this.#J=null,this.#Y._recoverSubscriber(this,this._recover(this.#Y));return}let Q=await this.#Y.getNetwork();if(!this.#q)this.#q=Q;if(this.#q.chainId!==Q.chainId)throw Error("chaid changed");if(this.#$)return;let q=await this.#Y.send("eth_getFilterChanges",[J]);await this._emitResults(this.#Y,q)}catch(J){console.log("@TODO",J)}this.#Y.once("block",this.#Q)}#W(){let Y=this.#J;if(Y)this.#J=null,Y.then((J)=>{if(this.#Y.destroyed)return;this.#Y.send("eth_uninstallFilter",[J])})}start(){if(this.#X)return;this.#X=!0,this.#G(-2)}stop(){if(!this.#X)return;this.#X=!1,this.#$=!0,this.#W(),this.#Y.off("block",this.#Q)}pause(Y){if(Y)this.#W();this.#Y.off("block",this.#Q)}resume(){this.start()}}class CL extends Az{#Y;constructor(Y,J){super(Y);this.#Y=yT(J)}_recover(Y){return new g9(Y,this.#Y)}async _subscribe(Y){return await Y.send("eth_newFilter",[this.#Y])}async _emitResults(Y,J){for(let Q of J)Y.emit(this.#Y,Y._wrapLog(Q,Y._network))}}class IL extends Az{async _subscribe(Y){return await Y.send("eth_newPendingTransactionFilter",[])}async _emitResults(Y,J){for(let Q of J)Y.emit("pending",Q)}}var lT="bigint,boolean,function,number,string,symbol".split(/,/g);function cG(Y){if(Y==null||lT.indexOf(typeof Y)>=0)return Y;if(typeof Y.getAddress==="function")return Y;if(Array.isArray(Y))return Y.map(cG);if(typeof Y==="object")return Object.keys(Y).reduce((J,Q)=>{return J[Q]=Y[Q],J},{});throw Error(`should not happen: ${Y} (${typeof Y})`)}function uT(Y){return new Promise((J)=>{setTimeout(J,Y)})}function SQ(Y){if(Y)return Y.toLowerCase();return Y}function FO(Y){return Y&&typeof Y.pollingInterval==="number"}var SL={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1048576,batchMaxCount:100,cacheTimeout:250,pollingInterval:4000};class bG extends wz{address;constructor(Y,J){super(Y);J=V0(J),e(this,{address:J})}connect(Y){_(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(Y){return await this.populateCall(Y)}async sendUncheckedTransaction(Y){let J=cG(Y),Q=[];if(J.from){let X=J.from;Q.push((async()=>{let G=await O8(X,this.provider);H(G!=null&&G.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",Y),J.from=G})())}else J.from=this.address;if(J.gasLimit==null)Q.push((async()=>{J.gasLimit=await this.provider.estimateGas({...J,from:this.address})})());if(J.to!=null){let X=J.to;Q.push((async()=>{J.to=await O8(X,this.provider)})())}if(Q.length)await Promise.all(Q);let q=this.provider.getRpcTransaction(J);return this.provider.send("eth_sendTransaction",[q])}async sendTransaction(Y){let J=await this.provider.getBlockNumber(),Q=await this.sendUncheckedTransaction(Y);return await new Promise((q,X)=>{let G=[1000,100],$=0,W=async()=>{try{let j=await this.provider.getTransaction(Q);if(j!=null){q(j.replaceableTransaction(J));return}}catch(j){if(Y8(j,"CANCELLED")||Y8(j,"BAD_DATA")||Y8(j,"NETWORK_ERROR")||Y8(j,"UNSUPPORTED_OPERATION")){if(j.info==null)j.info={};j.info.sendTransactionHash=Q,X(j);return}if(Y8(j,"INVALID_ARGUMENT")){if($++,j.info==null)j.info={};if(j.info.sendTransactionHash=Q,$>10){X(j);return}}this.provider.emit("error",_0("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:j}))}this.provider._setTimeout(()=>{W()},G.pop()||4000)};W()})}async signTransaction(Y){let J=cG(Y);if(J.from){let q=await O8(J.from,this.provider);H(q!=null&&q.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",Y),J.from=q}else J.from=this.address;let Q=this.provider.getRpcTransaction(J);return await this.provider.send("eth_signTransaction",[Q])}async signMessage(Y){let J=typeof Y==="string"?gY(Y):Y;return await this.provider.send("personal_sign",[y(J),this.address.toLowerCase()])}async signTypedData(Y,J,Q){let q=cG(Q),X=await v8.resolveNames(Y,J,q,async(G)=>{let $=await O8(G);return H($!=null,"TypedData does not support null address","value",G),$});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(v8.getPayload(X.domain,J,X.value))])}async unlock(Y){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),Y,null])}async _legacySignMessage(Y){let J=typeof Y==="string"?gY(Y):Y;return await this.provider.send("eth_sign",[this.address.toLowerCase(),y(J)])}}class vL extends wL{#Y;#J;#Q;#X;#q;#$;#G;#W(){if(this.#X)return;let Y=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");this.#X=setTimeout(()=>{this.#X=null;let J=this.#Q;this.#Q=[];while(J.length){let Q=[J.shift()];while(J.length){if(Q.length===this.#Y.batchMaxCount)break;if(Q.push(J.shift()),JSON.stringify(Q.map((q)=>q.payload)).length>this.#Y.batchMaxSize){J.unshift(Q.pop());break}}(async()=>{let q=Q.length===1?Q[0].payload:Q.map((X)=>X.payload);this.emit("debug",{action:"sendRpcPayload",payload:q});try{let X=await this._send(q);this.emit("debug",{action:"receiveRpcResult",result:X});for(let{resolve:G,reject:$,payload:W}of Q){if(this.destroyed){$(_0("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:W.method}));continue}let j=X.filter((K)=>K.id===W.id)[0];if(j==null){let K=_0("missing response for request","BAD_DATA",{value:X,info:{payload:W}});this.emit("error",K),$(K);continue}if("error"in j){$(this.getRpcError(W,j));continue}G(j.result)}}catch(X){this.emit("debug",{action:"receiveRpcError",error:X});for(let{reject:G}of Q)G(X)}})()}},Y)}constructor(Y,J){super(Y,J);this.#J=1,this.#Y=Object.assign({},SL,J||{}),this.#Q=[],this.#X=null,this.#$=null,this.#G=null;{let q=null,X=new Promise((G)=>{q=G});this.#q={promise:X,resolve:q}}let Q=this._getOption("staticNetwork");if(typeof Q==="boolean"){if(H(!Q||Y!=="any","staticNetwork cannot be used on special network 'any'","options",J),Q&&Y!=null)this.#$=F8.from(Y)}else if(Q)H(Y==null||Q.matches(Y),"staticNetwork MUST match network object","options",J),this.#$=Q}_getOption(Y){return this.#Y[Y]}get _network(){return _(this.#$,"network is not available yet","NETWORK_ERROR"),this.#$}async _perform(Y){if(Y.method==="call"||Y.method==="estimateGas"){let Q=Y.transaction;if(Q&&Q.type!=null&&o(Q.type)){if(Q.maxFeePerGas==null&&Q.maxPriorityFeePerGas==null){let q=await this.getFeeData();if(q.maxFeePerGas==null&&q.maxPriorityFeePerGas==null)Y=Object.assign({},Y,{transaction:Object.assign({},Q,{type:void 0})})}}}let J=this.getRpcRequest(Y);if(J!=null)return await this.send(J.method,J.args);return super._perform(Y)}async _detectNetwork(){let Y=this._getOption("staticNetwork");if(Y)if(Y===!0){if(this.#$)return this.#$}else return Y;if(this.#G)return await this.#G;if(this.ready)return this.#G=(async()=>{try{let J=F8.from(o(await this.send("eth_chainId",[])));return this.#G=null,J}catch(J){throw this.#G=null,J}})(),await this.#G;return this.#G=(async()=>{let J={id:this.#J++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:J});let Q;try{Q=(await this._send(J))[0],this.#G=null}catch(q){throw this.#G=null,this.emit("debug",{action:"receiveRpcError",error:q}),q}if(this.emit("debug",{action:"receiveRpcResult",result:Q}),"result"in Q)return F8.from(o(Q.result));throw this.getRpcError(J,Q)})(),await this.#G}_start(){if(this.#q==null||this.#q.resolve==null)return;this.#q.resolve(),this.#q=null,(async()=>{while(this.#$==null&&!this.destroyed)try{this.#$=await this._detectNetwork()}catch(Y){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",_0("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:Y}})),await uT(1000)}this.#W()})()}async _waitUntilReady(){if(this.#q==null)return;return await this.#q.promise}_getSubscriber(Y){if(Y.type==="pending")return new IL(this);if(Y.type==="event"){if(this._getOption("polling"))return new g9(this,Y.filter);return new CL(this,Y.filter)}if(Y.type==="orphan"&&Y.filter.orphan==="drop-log")return new Ez("orphan");return super._getSubscriber(Y)}get ready(){return this.#q==null}getRpcTransaction(Y){let J={};if(["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((Q)=>{if(Y[Q]==null)return;let q=Q;if(Q==="gasLimit")q="gas";J[q]=i8(o(Y[Q],`tx.${Q}`))}),["from","to","data"].forEach((Q)=>{if(Y[Q]==null)return;J[Q]=y(Y[Q])}),Y.accessList)J.accessList=jQ(Y.accessList);if(Y.blobVersionedHashes)J.blobVersionedHashes=Y.blobVersionedHashes.map((Q)=>Q.toLowerCase());if(Y.authorizationList)J.authorizationList=Y.authorizationList.map((Q)=>{let q=B7(Q);return{address:q.address,nonce:i8(q.nonce),chainId:i8(q.chainId),yParity:i8(q.signature.yParity),r:i8(q.signature.r),s:i8(q.signature.s)}});return J}getRpcRequest(Y){switch(Y.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:[SQ(Y.address),Y.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[SQ(Y.address),Y.blockTag]};case"getCode":return{method:"eth_getCode",args:[SQ(Y.address),Y.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[SQ(Y.address),"0x"+Y.position.toString(16),Y.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[Y.signedTransaction]};case"getBlock":if("blockTag"in Y)return{method:"eth_getBlockByNumber",args:[Y.blockTag,!!Y.includeTransactions]};else if("blockHash"in Y)return{method:"eth_getBlockByHash",args:[Y.blockHash,!!Y.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[Y.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[Y.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(Y.transaction),Y.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(Y.transaction)]};case"getLogs":if(Y.filter&&Y.filter.address!=null)if(Array.isArray(Y.filter.address))Y.filter.address=Y.filter.address.map(SQ);else Y.filter.address=SQ(Y.filter.address);return{method:"eth_getLogs",args:[Y.filter]}}return null}getRpcError(Y,J){let{method:Q}=Y,{error:q}=J;if(Q==="eth_estimateGas"&&q.message){let $=q.message;if(!$.match(/revert/i)&&$.match(/insufficient funds/i))return _0("insufficient funds","INSUFFICIENT_FUNDS",{transaction:Y.params[0],info:{payload:Y,error:q}});else if($.match(/nonce/i)&&$.match(/too low/i))return _0("nonce has already been used","NONCE_EXPIRED",{transaction:Y.params[0],info:{payload:Y,error:q}})}if(Q==="eth_call"||Q==="eth_estimateGas"){let $=O5(q),W=aQ.getBuiltinCallException(Q==="eth_call"?"call":"estimateGas",Y.params[0],$?$.data:null);return W.info={error:q,payload:Y},W}let X=JSON.stringify(bT(q));if(typeof q.message==="string"&&q.message.match(/user denied|ethers-user-denied/i))return _0("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"}[Q]||"unknown",reason:"rejected",info:{payload:Y,error:q}});if(Q==="eth_sendRawTransaction"||Q==="eth_sendTransaction"){let $=Y.params[0];if(X.match(/insufficient funds|base fee exceeds gas limit/i))return _0("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:$,info:{error:q}});if(X.match(/nonce/i)&&X.match(/too low/i))return _0("nonce has already been used","NONCE_EXPIRED",{transaction:$,info:{error:q}});if(X.match(/replacement transaction/i)&&X.match(/underpriced/i))return _0("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:$,info:{error:q}});if(X.match(/only replay-protected/i))return _0("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:Q,info:{transaction:$,info:{error:q}}})}let G=!!X.match(/the method .* does not exist/i);if(!G){if(q&&q.details&&q.details.startsWith("Unauthorized method:"))G=!0}if(G)return _0("unsupported operation","UNSUPPORTED_OPERATION",{operation:Y.method,info:{error:q,payload:Y}});return _0("could not coalesce error","UNKNOWN_ERROR",{error:q,payload:Y})}send(Y,J){if(this.destroyed)return Promise.reject(_0("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:Y}));let Q=this.#J++,q=new Promise((X,G)=>{this.#Q.push({resolve:X,reject:G,payload:{method:Y,params:J,id:Q,jsonrpc:"2.0"}})});return this.#W(),q}async getSigner(Y){if(Y==null)Y=0;let J=this.send("eth_accounts",[]);if(typeof Y==="number"){let q=await J;if(Y>=q.length)throw Error("no such account");return new bG(this,q[Y])}let{accounts:Q}=await M8({network:this.getNetwork(),accounts:J});Y=V0(Y);for(let q of Q)if(V0(q)===Y)return new bG(this,Y);throw Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map((Y)=>new bG(this,Y))}destroy(){if(this.#X)clearTimeout(this.#X),this.#X=null;for(let{payload:Y,reject:J}of this.#Q)J(_0("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:Y.method}));this.#Q=[],super.destroy()}}class _L extends vL{#Y;constructor(Y,J){super(Y,J);let Q=this._getOption("pollingInterval");if(Q==null)Q=SL.pollingInterval;this.#Y=Q}_getSubscriber(Y){let J=super._getSubscriber(Y);if(FO(J))J.pollingInterval=this.#Y;return J}get pollingInterval(){return this.#Y}set pollingInterval(Y){if(!Number.isInteger(Y)||Y<0)throw Error("invalid interval");this.#Y=Y,this._forEachSubscriber((J)=>{if(FO(J))J.pollingInterval=this.#Y})}}class cT extends _L{#Y;constructor(Y,J,Q){if(Y==null)Y="http://localhost:8545";super(J,Q);if(typeof Y==="string")this.#Y=new DY(Y);else this.#Y=Y.clone()}_getConnection(){return this.#Y.clone()}async send(Y,J){return await this._start(),await super.send(Y,J)}async _send(Y){let J=this._getConnection();J.body=JSON.stringify(Y),J.setHeader("content-type","application/json");let Q=await J.send();Q.assertOk();let q=Q.bodyJson;if(!Array.isArray(q))q=[q];return q}}function O5(Y){if(Y==null)return null;if(typeof Y.message==="string"&&Y.message.match(/revert/i)&&v0(Y.data))return{message:Y.message,data:Y.data};if(typeof Y==="object"){for(let J in Y){let Q=O5(Y[J]);if(Q)return Q}return null}if(typeof Y==="string")try{return O5(JSON.parse(Y))}catch(J){}return null}function D5(Y,J){if(Y==null)return;if(typeof Y.message==="string")J.push(Y.message);if(typeof Y==="object")for(let Q in Y)D5(Y[Q],J);if(typeof Y==="string")try{return D5(JSON.parse(Y),J)}catch(Q){}}function bT(Y){let J=[];return D5(Y,J),J}var kL=async(Y,J,Q)=>{let q=J instanceof l0?J.toJSON():J,X=await Y.getChainId();if(q.chainId!=X)await Y.switchChain(q.chainId);return Y.writeContract({contractAbi:[q.functionAbi],contractAddress:q.contractAddress,args:q.args,functionName:q.functionName,gas:Q?.gas})};fL();VJ();var tT=BigInt(0),aq=BigInt(1),nT=BigInt(2),aT=BigInt(7),eT=BigInt(256),YZ=BigInt(113),bL=[],pL=[],oL=[];for(let Y=0,J=aq,Q=1,q=0;Y<24;Y++){[Q,q]=[q,(2*Q+3*q)%5],bL.push(2*(5*q+Q)),pL.push((Y+1)*(Y+2)/2%64);let X=tT;for(let G=0;G<7;G++)if(J=(J<<aq^(J>>aT)*YZ)%eT,J&nT)X^=aq<<(aq<<BigInt(G))-aq;oL.push(X)}var dL=PL(oL,!0),JZ=dL[0],QZ=dL[1],uL=(Y,J,Q)=>Q>32?xL(Y,J,Q):TL(Y,J,Q),cL=(Y,J,Q)=>Q>32?gL(Y,J,Q):ZL(Y,J,Q);function XZ(Y,J=24){let Q=new Uint32Array(10);for(let q=24-J;q<24;q++){for(let $=0;$<10;$++)Q[$]=Y[$]^Y[$+10]^Y[$+20]^Y[$+30]^Y[$+40];for(let $=0;$<10;$+=2){let W=($+8)%10,j=($+2)%10,K=Q[j],z=Q[j+1],M=uL(K,z,1)^Q[W],N=cL(K,z,1)^Q[W+1];for(let O=0;O<50;O+=10)Y[$+O]^=M,Y[$+O+1]^=N}let X=Y[2],G=Y[3];for(let $=0;$<24;$++){let W=pL[$],j=uL(X,G,W),K=cL(X,G,W),z=bL[$];X=Y[z],G=Y[z+1],Y[z]=j,Y[z+1]=K}for(let $=0;$<50;$+=10){for(let W=0;W<10;W++)Q[W]=Y[$+W];for(let W=0;W<10;W++)Y[$+W]^=~Q[(W+2)%10]&Q[(W+4)%10]}Y[0]^=JZ[q],Y[1]^=QZ[q]}RY(Q)}class Iz extends OQ{constructor(Y,J,Q,q=!1,X=24){super();if(this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=Y,this.suffix=J,this.outputLen=Q,this.enableXOF=q,this.rounds=X,MQ(Q),!(0<Y&&Y<200))throw Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=yL(this.state)}clone(){return this._cloneInto()}keccak(){Cz(this.state32),XZ(this.state32,this.rounds),Cz(this.state32),this.posOut=0,this.pos=0}update(Y){rY(this),Y=NQ(Y),BY(Y);let{blockLen:J,state:Q}=this,q=Y.length;for(let X=0;X<q;){let G=Math.min(J-this.pos,q-X);for(let $=0;$<G;$++)Q[this.pos++]^=Y[X++];if(this.pos===J)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:Y,suffix:J,pos:Q,blockLen:q}=this;if(Y[Q]^=J,(J&128)!==0&&Q===q-1)this.keccak();Y[q-1]^=128,this.keccak()}writeInto(Y){rY(this,!1),BY(Y),this.finish();let J=this.state,{blockLen:Q}=this;for(let q=0,X=Y.length;q<X;){if(this.posOut>=Q)this.keccak();let G=Math.min(Q-this.posOut,X-q);Y.set(J.subarray(this.posOut,this.posOut+G),q),this.posOut+=G,q+=G}return Y}xofInto(Y){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(Y)}xof(Y){return MQ(Y),this.xofInto(new Uint8Array(Y))}digestInto(Y){if(h9(Y,this),this.finished)throw Error("digest() was already called");return this.writeInto(Y),this.destroy(),Y}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,RY(this.state)}_cloneInto(Y){let{blockLen:J,suffix:Q,outputLen:q,rounds:X,enableXOF:G}=this;return Y||(Y=new Iz(J,Q,q,G,X)),Y.state32.set(this.state32),Y.pos=this.pos,Y.posOut=this.posOut,Y.finished=this.finished,Y.rounds=X,Y.suffix=Q,Y.outputLen=q,Y.enableXOF=G,Y.destroyed=this.destroyed,Y}}var qZ=(Y,J,Q)=>y9(()=>new Iz(J,Y,Q));var rL=(()=>qZ(1,136,32))();function sY(Y,{strict:J=!0}={}){if(!Y)return!1;if(typeof Y!=="string")return!1;return J?/^0x[0-9a-fA-F]*$/.test(Y):Y.startsWith("0x")}var Sz="2.47.2";var vz={getDocsUrl:({docsBaseUrl:Y,docsPath:J="",docsSlug:Q})=>J?`${Y??"https://viem.sh"}${J}${Q?`#${Q}`:""}`:void 0,version:`viem@${Sz}`};class VY extends Error{constructor(Y,J={}){let Q=(()=>{if(J.cause instanceof VY)return J.cause.details;if(J.cause?.message)return J.cause.message;return J.details})(),q=(()=>{if(J.cause instanceof VY)return J.cause.docsPath||J.docsPath;return J.docsPath})(),X=vz.getDocsUrl?.({...J,docsPath:q}),G=[Y||"An error occurred.","",...J.metaMessages?[...J.metaMessages,""]:[],...X?[`Docs: ${X}`]:[],...Q?[`Details: ${Q}`]:[],...vz.version?[`Version: ${vz.version}`]:[]].join(`
|
|
75
|
+
`);super(G,J.cause?{cause:J.cause}:void 0);Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=Q,this.docsPath=q,this.metaMessages=J.metaMessages,this.name=J.name??this.name,this.shortMessage=Y,this.version=Sz}walk(Y){return sL(this,Y)}}function sL(Y,J){if(J?.(Y))return Y;if(Y&&typeof Y==="object"&&"cause"in Y&&Y.cause!==void 0)return sL(Y.cause,J);return J?null:Y}class u9 extends VY{constructor({size:Y,targetSize:J,type:Q}){super(`${Q.charAt(0).toUpperCase()}${Q.slice(1).toLowerCase()} size (${Y}) exceeds padding size (${J}).`,{name:"SizeExceedsPaddingSizeError"})}}function LJ(Y,{dir:J,size:Q=32}={}){if(typeof Y==="string")return GZ(Y,{dir:J,size:Q});return $Z(Y,{dir:J,size:Q})}function GZ(Y,{dir:J,size:Q=32}={}){if(Q===null)return Y;let q=Y.replace("0x","");if(q.length>Q*2)throw new u9({size:Math.ceil(q.length/2),targetSize:Q,type:"hex"});return`0x${q[J==="right"?"padEnd":"padStart"](Q*2,"0")}`}function $Z(Y,{dir:J,size:Q=32}={}){if(Q===null)return Y;if(Y.length>Q)throw new u9({size:Y.length,targetSize:Q,type:"bytes"});let q=new Uint8Array(Q);for(let X=0;X<Q;X++){let G=J==="right";q[G?X:Q-X-1]=Y[G?X:Y.length-X-1]}return q}class eq extends VY{constructor({max:Y,min:J,signed:Q,size:q,value:X}){super(`Number "${X}" is not in safe ${q?`${q*8}-bit ${Q?"signed":"unsigned"} `:""}integer range ${Y?`(${J} to ${Y})`:`(above ${J})`}`,{name:"IntegerOutOfRangeError"})}}class _z extends VY{constructor({givenSize:Y,maxSize:J}){super(`Size cannot exceed ${J} bytes. Given size: ${Y} bytes.`,{name:"SizeOverflowError"})}}function DQ(Y){if(sY(Y,{strict:!1}))return Math.ceil((Y.length-2)/2);return Y.length}function EJ(Y,{size:J}){if(DQ(Y)>J)throw new _z({givenSize:DQ(Y),maxSize:J})}function c9(Y,J={}){let{signed:Q}=J;if(J.size)EJ(Y,{size:J.size});let q=BigInt(Y);if(!Q)return q;let X=(Y.length-2)/2,G=(1n<<BigInt(X)*8n-1n)-1n;if(q<=G)return q;return q-BigInt(`0x${"f".padStart(X*2,"f")}`)-1n}function iL(Y,J={}){let Q=c9(Y,J),q=Number(Q);if(!Number.isSafeInteger(q))throw new eq({max:`${Number.MAX_SAFE_INTEGER}`,min:`${Number.MIN_SAFE_INTEGER}`,signed:J.signed,size:J.size,value:`${Q}n`});return q}var WZ=Array.from({length:256},(Y,J)=>J.toString(16).padStart(2,"0"));function YG(Y,J={}){if(typeof Y==="number"||typeof Y==="bigint")return kz(Y,J);if(typeof Y==="string")return p9(Y,J);if(typeof Y==="boolean")return jZ(Y,J);return b9(Y,J)}function jZ(Y,J={}){let Q=`0x${Number(Y)}`;if(typeof J.size==="number")return EJ(Q,{size:J.size}),LJ(Q,{size:J.size});return Q}function b9(Y,J={}){let Q="";for(let X=0;X<Y.length;X++)Q+=WZ[Y[X]];let q=`0x${Q}`;if(typeof J.size==="number")return EJ(q,{size:J.size}),LJ(q,{dir:"right",size:J.size});return q}function kz(Y,J={}){let{signed:Q,size:q}=J,X=BigInt(Y),G;if(q)if(Q)G=(1n<<BigInt(q)*8n-1n)-1n;else G=2n**(BigInt(q)*8n)-1n;else if(typeof Y==="number")G=BigInt(Number.MAX_SAFE_INTEGER);let $=typeof G==="bigint"&&Q?-G-1n:0;if(G&&X>G||X<$){let j=typeof Y==="bigint"?"n":"";throw new eq({max:G?`${G}${j}`:void 0,min:`${$}${j}`,signed:Q,size:q,value:`${Y}${j}`})}let W=`0x${(Q&&X<0?(1n<<BigInt(q*8))+BigInt(X):X).toString(16)}`;if(q)return LJ(W,{size:q});return W}var KZ=new TextEncoder;function p9(Y,J={}){let Q=KZ.encode(Y);return b9(Q,J)}var zZ=new TextEncoder;function nL(Y,J={}){if(typeof Y==="number"||typeof Y==="bigint")return NZ(Y,J);if(typeof Y==="boolean")return MZ(Y,J);if(sY(Y))return aL(Y,J);return Fz(Y,J)}function MZ(Y,J={}){let Q=new Uint8Array(1);if(Q[0]=Number(Y),typeof J.size==="number")return EJ(Q,{size:J.size}),LJ(Q,{size:J.size});return Q}var iY={zero:48,nine:57,A:65,F:70,a:97,f:102};function tL(Y){if(Y>=iY.zero&&Y<=iY.nine)return Y-iY.zero;if(Y>=iY.A&&Y<=iY.F)return Y-(iY.A-10);if(Y>=iY.a&&Y<=iY.f)return Y-(iY.a-10);return}function aL(Y,J={}){let Q=Y;if(J.size)EJ(Q,{size:J.size}),Q=LJ(Q,{dir:"right",size:J.size});let q=Q.slice(2);if(q.length%2)q=`0${q}`;let X=q.length/2,G=new Uint8Array(X);for(let $=0,W=0;$<X;$++){let j=tL(q.charCodeAt(W++)),K=tL(q.charCodeAt(W++));if(j===void 0||K===void 0)throw new VY(`Invalid byte sequence ("${q[W-2]}${q[W-1]}" in "${q}").`);G[$]=j*16+K}return G}function NZ(Y,J){let Q=kz(Y,J);return aL(Q)}function Fz(Y,J={}){let Q=zZ.encode(Y);if(typeof J.size==="number")return EJ(Q,{size:J.size}),LJ(Q,{dir:"right",size:J.size});return Q}function NX(Y,J){let Q=J||"hex",q=rL(sY(Y,{strict:!1})?nL(Y):Y);if(Q==="bytes")return q;return YG(q)}var eL=`\x19Ethereum Signed Message:
|
|
76
|
+
`;function YE(Y){if(typeof Y[0]==="string")return DZ(Y);return OZ(Y)}function OZ(Y){let J=0;for(let X of Y)J+=X.length;let Q=new Uint8Array(J),q=0;for(let X of Y)Q.set(X,q),q+=X.length;return Q}function DZ(Y){return`0x${Y.reduce((J,Q)=>J+Q.replace("0x",""),"")}`}function JE(Y){let J=(()=>{if(typeof Y==="string")return p9(Y);if(typeof Y.raw==="string")return Y.raw;return b9(Y.raw)})(),Q=p9(`${eL}${DQ(J)}`);return YE([Q,J])}function QE(Y,J){return NX(JE(Y),J)}class Pz extends Map{constructor(Y){super();Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=Y}get(Y){let J=super.get(Y);if(super.has(Y)&&J!==void 0)this.delete(Y),super.set(Y,J);return J}set(Y,J){if(super.set(Y,J),this.maxSize&&this.size>this.maxSize){let Q=this.keys().next().value;if(Q)this.delete(Q)}return this}}var Tz=new Pz(8192);function XE(Y,J){if(Tz.has(`${Y}.${J}`))return Tz.get(`${Y}.${J}`);let Q=J?`${J}${Y.toLowerCase()}`:Y.substring(2).toLowerCase(),q=NX(Fz(Q),"bytes"),X=(J?Q.substring(`${J}0x`.length):Q).split("");for(let $=0;$<40;$+=2){if(q[$>>1]>>4>=8&&X[$])X[$]=X[$].toUpperCase();if((q[$>>1]&15)>=8&&X[$+1])X[$+1]=X[$+1].toUpperCase()}let G=`0x${X.join("")}`;return Tz.set(`${Y}.${J}`,G),G}function qE(Y){let J=NX(`0x${Y.substring(4)}`).substring(26);return XE(`0x${J}`)}async function tE({hash:Y,signature:J}){let Q=sY(Y)?Y:YG(Y),{secp256k1:q}=await Promise.resolve().then(() => (sE(),rE));return`0x${(()=>{if(typeof J==="object"&&"r"in J&&"s"in J){let{r:K,s:z,v:M,yParity:N}=J,O=Number(N??M),D=iE(O);return new q.Signature(c9(K),c9(z)).addRecoveryBit(D)}let $=sY(J)?J:YG(J);if(DQ($)!==65)throw Error("invalid signature length");let W=iL(`0x${$.slice(130)}`),j=iE(W);return q.Signature.fromCompact($.substring(2,130)).addRecoveryBit(j)})().recoverPublicKey(Q.substring(2)).toHex(!1)}`}function iE(Y){if(Y===0||Y===1)return Y;if(Y===27)return 0;if(Y===28)return 1;throw Error("Invalid yParityOrV value")}async function nE({hash:Y,signature:J}){return qE(await tE({hash:Y,signature:J}))}async function WM({message:Y,signature:J}){return nE({hash:QE(Y),signature:J})}class pZ{signer;constructor(Y){this.signer=Y}async verifyPaySignature(Y){if(Y.functionName!=="pay")throw Error("verifyPaySignature can only verify core.pay signatures");let{success:J,error:Q}=WX($X).safeParse(Y);if(!J)throw Error(`The provided signedAction is not valid: ${Q.message}`);let q=new qq({address:Y.contractAddress,signer:this.signer,chainId:Y.chainId}),X=await q.getEvvmID(),G=q.buildHashPayload(Y.functionName,{to_address:Y.data.to_address,to_identity:Y.data.to_identity,token:Y.data.token,amount:Y.data.amount,priorityFee:Y.data.priorityFee}),$=q.buildMessageToSign(X,Y.data.senderExecutor,G,Y.data.originExecutor,Y.data.nonce,Y.data.isAsyncExec);if(await WM({message:$,signature:Y.data.signature})!==Y.data.from)return console.error("Couldn't recover address from signature"),!1;if(Y.data.isAsyncExec){if(await q.getIfUsedAsyncNonce(Y.data.nonce))return console.error("Invalid async nonce"),!1}else if((await q.getNextCurrentSyncNonce()).toString()!=Y.data.nonce.toString())return console.error("Invalid sync nonce"),!1;if(await q.getBalance(Y.data.from,Y.data.token)<=Y.data.amount)return console.error("Insufficient balance"),!1;return!0}async settlePayment(Y){try{return await kL(this.signer,Y)}catch(J){return console.error("Failed to settle payment"),console.error(J),null}}}var H0={};DM(H0,{void:()=>_x,util:()=>O0,unknown:()=>Sx,union:()=>Tx,undefined:()=>Ax,tuple:()=>gx,transformer:()=>ox,symbol:()=>wx,string:()=>$w,strictObject:()=>Px,setErrorMap:()=>rZ,set:()=>mx,record:()=>fx,quotelessJson:()=>oZ,promise:()=>px,preprocess:()=>sx,pipeline:()=>ix,ostring:()=>tx,optional:()=>dx,onumber:()=>nx,oboolean:()=>ax,objectUtil:()=>jM,object:()=>Fx,number:()=>Ww,nullable:()=>rx,null:()=>Cx,never:()=>vx,nativeEnum:()=>bx,nan:()=>Vx,map:()=>hx,makeIssue:()=>NG,literal:()=>ux,lazy:()=>lx,late:()=>Bx,isValid:()=>SJ,isDirty:()=>a9,isAsync:()=>LX,isAborted:()=>n9,intersection:()=>xx,instanceof:()=>Rx,getParsedType:()=>EY,getErrorMap:()=>VX,function:()=>yx,enum:()=>cx,effect:()=>ox,discriminatedUnion:()=>Zx,defaultErrorMap:()=>QJ,datetimeRegex:()=>Xw,date:()=>Ex,custom:()=>Gw,coerce:()=>ex,boolean:()=>jw,bigint:()=>Lx,array:()=>kx,any:()=>Ix,addIssueToContext:()=>h,ZodVoid:()=>DG,ZodUnknown:()=>vJ,ZodUnion:()=>SX,ZodUndefined:()=>CX,ZodType:()=>M0,ZodTuple:()=>AY,ZodTransformer:()=>WY,ZodSymbol:()=>OG,ZodString:()=>XY,ZodSet:()=>EQ,ZodSchema:()=>M0,ZodRecord:()=>UG,ZodReadonly:()=>ZX,ZodPromise:()=>wQ,ZodPipeline:()=>RG,ZodParsedType:()=>x,ZodOptional:()=>GY,ZodObject:()=>g0,ZodNumber:()=>_J,ZodNullable:()=>qJ,ZodNull:()=>IX,ZodNever:()=>wY,ZodNativeEnum:()=>FX,ZodNaN:()=>BG,ZodMap:()=>HG,ZodLiteral:()=>kX,ZodLazy:()=>_X,ZodIssueCode:()=>k,ZodIntersection:()=>vX,ZodFunction:()=>wX,ZodFirstPartyTypeKind:()=>Q0,ZodError:()=>C8,ZodEnum:()=>FJ,ZodEffects:()=>WY,ZodDiscriminatedUnion:()=>e9,ZodDefault:()=>PX,ZodDate:()=>VQ,ZodCatch:()=>TX,ZodBranded:()=>YW,ZodBoolean:()=>AX,ZodBigInt:()=>kJ,ZodArray:()=>qY,ZodAny:()=>LQ,Schema:()=>M0,ParseStatus:()=>J8,OK:()=>j8,NEVER:()=>Yg,INVALID:()=>Y0,EMPTY_PATH:()=>sZ,DIRTY:()=>RQ,BRAND:()=>Hx});var O0;(function(Y){Y.assertEqual=(X)=>{};function J(X){}Y.assertIs=J;function Q(X){throw Error()}Y.assertNever=Q,Y.arrayToEnum=(X)=>{let G={};for(let $ of X)G[$]=$;return G},Y.getValidEnumValues=(X)=>{let G=Y.objectKeys(X).filter((W)=>typeof X[X[W]]!=="number"),$={};for(let W of G)$[W]=X[W];return Y.objectValues($)},Y.objectValues=(X)=>{return Y.objectKeys(X).map(function(G){return X[G]})},Y.objectKeys=typeof Object.keys==="function"?(X)=>Object.keys(X):(X)=>{let G=[];for(let $ in X)if(Object.prototype.hasOwnProperty.call(X,$))G.push($);return G},Y.find=(X,G)=>{for(let $ of X)if(G($))return $;return},Y.isInteger=typeof Number.isInteger==="function"?(X)=>Number.isInteger(X):(X)=>typeof X==="number"&&Number.isFinite(X)&&Math.floor(X)===X;function q(X,G=" | "){return X.map(($)=>typeof $==="string"?`'${$}'`:$).join(G)}Y.joinValues=q,Y.jsonStringifyReplacer=(X,G)=>{if(typeof G==="bigint")return G.toString();return G}})(O0||(O0={}));var jM;(function(Y){Y.mergeShapes=(J,Q)=>{return{...J,...Q}}})(jM||(jM={}));var x=O0.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),EY=(Y)=>{switch(typeof Y){case"undefined":return x.undefined;case"string":return x.string;case"number":return Number.isNaN(Y)?x.nan:x.number;case"boolean":return x.boolean;case"function":return x.function;case"bigint":return x.bigint;case"symbol":return x.symbol;case"object":if(Array.isArray(Y))return x.array;if(Y===null)return x.null;if(Y.then&&typeof Y.then==="function"&&Y.catch&&typeof Y.catch==="function")return x.promise;if(typeof Map<"u"&&Y instanceof Map)return x.map;if(typeof Set<"u"&&Y instanceof Set)return x.set;if(typeof Date<"u"&&Y instanceof Date)return x.date;return x.object;default:return x.unknown}};var k=O0.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),oZ=(Y)=>{return JSON.stringify(Y,null,2).replace(/"([^"]+)":/g,"$1:")};class C8 extends Error{get errors(){return this.issues}constructor(Y){super();this.issues=[],this.addIssue=(Q)=>{this.issues=[...this.issues,Q]},this.addIssues=(Q=[])=>{this.issues=[...this.issues,...Q]};let J=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,J);else this.__proto__=J;this.name="ZodError",this.issues=Y}format(Y){let J=Y||function(X){return X.message},Q={_errors:[]},q=(X)=>{for(let G of X.issues)if(G.code==="invalid_union")G.unionErrors.map(q);else if(G.code==="invalid_return_type")q(G.returnTypeError);else if(G.code==="invalid_arguments")q(G.argumentsError);else if(G.path.length===0)Q._errors.push(J(G));else{let $=Q,W=0;while(W<G.path.length){let j=G.path[W];if(W!==G.path.length-1)$[j]=$[j]||{_errors:[]};else $[j]=$[j]||{_errors:[]},$[j]._errors.push(J(G));$=$[j],W++}}};return q(this),Q}static assert(Y){if(!(Y instanceof C8))throw Error(`Not a ZodError: ${Y}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,O0.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(Y=(J)=>J.message){let J={},Q=[];for(let q of this.issues)if(q.path.length>0){let X=q.path[0];J[X]=J[X]||[],J[X].push(Y(q))}else Q.push(Y(q));return{formErrors:Q,fieldErrors:J}}get formErrors(){return this.flatten()}}C8.create=(Y)=>{return new C8(Y)};var dZ=(Y,J)=>{let Q;switch(Y.code){case k.invalid_type:if(Y.received===x.undefined)Q="Required";else Q=`Expected ${Y.expected}, received ${Y.received}`;break;case k.invalid_literal:Q=`Invalid literal value, expected ${JSON.stringify(Y.expected,O0.jsonStringifyReplacer)}`;break;case k.unrecognized_keys:Q=`Unrecognized key(s) in object: ${O0.joinValues(Y.keys,", ")}`;break;case k.invalid_union:Q="Invalid input";break;case k.invalid_union_discriminator:Q=`Invalid discriminator value. Expected ${O0.joinValues(Y.options)}`;break;case k.invalid_enum_value:Q=`Invalid enum value. Expected ${O0.joinValues(Y.options)}, received '${Y.received}'`;break;case k.invalid_arguments:Q="Invalid function arguments";break;case k.invalid_return_type:Q="Invalid function return type";break;case k.invalid_date:Q="Invalid date";break;case k.invalid_string:if(typeof Y.validation==="object")if("includes"in Y.validation){if(Q=`Invalid input: must include "${Y.validation.includes}"`,typeof Y.validation.position==="number")Q=`${Q} at one or more positions greater than or equal to ${Y.validation.position}`}else if("startsWith"in Y.validation)Q=`Invalid input: must start with "${Y.validation.startsWith}"`;else if("endsWith"in Y.validation)Q=`Invalid input: must end with "${Y.validation.endsWith}"`;else O0.assertNever(Y.validation);else if(Y.validation!=="regex")Q=`Invalid ${Y.validation}`;else Q="Invalid";break;case k.too_small:if(Y.type==="array")Q=`Array must contain ${Y.exact?"exactly":Y.inclusive?"at least":"more than"} ${Y.minimum} element(s)`;else if(Y.type==="string")Q=`String must contain ${Y.exact?"exactly":Y.inclusive?"at least":"over"} ${Y.minimum} character(s)`;else if(Y.type==="number")Q=`Number must be ${Y.exact?"exactly equal to ":Y.inclusive?"greater than or equal to ":"greater than "}${Y.minimum}`;else if(Y.type==="bigint")Q=`Number must be ${Y.exact?"exactly equal to ":Y.inclusive?"greater than or equal to ":"greater than "}${Y.minimum}`;else if(Y.type==="date")Q=`Date must be ${Y.exact?"exactly equal to ":Y.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(Y.minimum))}`;else Q="Invalid input";break;case k.too_big:if(Y.type==="array")Q=`Array must contain ${Y.exact?"exactly":Y.inclusive?"at most":"less than"} ${Y.maximum} element(s)`;else if(Y.type==="string")Q=`String must contain ${Y.exact?"exactly":Y.inclusive?"at most":"under"} ${Y.maximum} character(s)`;else if(Y.type==="number")Q=`Number must be ${Y.exact?"exactly":Y.inclusive?"less than or equal to":"less than"} ${Y.maximum}`;else if(Y.type==="bigint")Q=`BigInt must be ${Y.exact?"exactly":Y.inclusive?"less than or equal to":"less than"} ${Y.maximum}`;else if(Y.type==="date")Q=`Date must be ${Y.exact?"exactly":Y.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(Y.maximum))}`;else Q="Invalid input";break;case k.custom:Q="Invalid input";break;case k.invalid_intersection_types:Q="Intersection results could not be merged";break;case k.not_multiple_of:Q=`Number must be a multiple of ${Y.multipleOf}`;break;case k.not_finite:Q="Number must be finite";break;default:Q=J.defaultError,O0.assertNever(Y)}return{message:Q}},QJ=dZ;var aE=QJ;function rZ(Y){aE=Y}function VX(){return aE}var NG=(Y)=>{let{data:J,path:Q,errorMaps:q,issueData:X}=Y,G=[...Q,...X.path||[]],$={...X,path:G};if(X.message!==void 0)return{...X,path:G,message:X.message};let W="",j=q.filter((K)=>!!K).slice().reverse();for(let K of j)W=K($,{data:J,defaultError:W}).message;return{...X,path:G,message:W}},sZ=[];function h(Y,J){let Q=VX(),q=NG({issueData:J,data:Y.data,path:Y.path,errorMaps:[Y.common.contextualErrorMap,Y.schemaErrorMap,Q,Q===QJ?void 0:QJ].filter((X)=>!!X)});Y.common.issues.push(q)}class J8{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(Y,J){let Q=[];for(let q of J){if(q.status==="aborted")return Y0;if(q.status==="dirty")Y.dirty();Q.push(q.value)}return{status:Y.value,value:Q}}static async mergeObjectAsync(Y,J){let Q=[];for(let q of J){let X=await q.key,G=await q.value;Q.push({key:X,value:G})}return J8.mergeObjectSync(Y,Q)}static mergeObjectSync(Y,J){let Q={};for(let q of J){let{key:X,value:G}=q;if(X.status==="aborted")return Y0;if(G.status==="aborted")return Y0;if(X.status==="dirty")Y.dirty();if(G.status==="dirty")Y.dirty();if(X.value!=="__proto__"&&(typeof G.value<"u"||q.alwaysSet))Q[X.value]=G.value}return{status:Y.value,value:Q}}}var Y0=Object.freeze({status:"aborted"}),RQ=(Y)=>({status:"dirty",value:Y}),j8=(Y)=>({status:"valid",value:Y}),n9=(Y)=>Y.status==="aborted",a9=(Y)=>Y.status==="dirty",SJ=(Y)=>Y.status==="valid",LX=(Y)=>typeof Promise<"u"&&Y instanceof Promise;var s;(function(Y){Y.errToObj=(J)=>typeof J==="string"?{message:J}:J||{},Y.toString=(J)=>typeof J==="string"?J:J?.message})(s||(s={}));class $Y{constructor(Y,J,Q,q){this._cachedPath=[],this.parent=Y,this.data=J,this._path=Q,this._key=q}get path(){if(!this._cachedPath.length)if(Array.isArray(this._key))this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var eE=(Y,J)=>{if(SJ(J))return{success:!0,data:J.value};else{if(!Y.common.issues.length)throw Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Q=new C8(Y.common.issues);return this._error=Q,this._error}}}};function $0(Y){if(!Y)return{};let{errorMap:J,invalid_type_error:Q,required_error:q,description:X}=Y;if(J&&(Q||q))throw Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(J)return{errorMap:J,description:X};return{errorMap:($,W)=>{let{message:j}=Y;if($.code==="invalid_enum_value")return{message:j??W.defaultError};if(typeof W.data>"u")return{message:j??q??W.defaultError};if($.code!=="invalid_type")return{message:W.defaultError};return{message:j??Q??W.defaultError}},description:X}}class M0{get description(){return this._def.description}_getType(Y){return EY(Y.data)}_getOrReturnCtx(Y,J){return J||{common:Y.parent.common,data:Y.data,parsedType:EY(Y.data),schemaErrorMap:this._def.errorMap,path:Y.path,parent:Y.parent}}_processInputParams(Y){return{status:new J8,ctx:{common:Y.parent.common,data:Y.data,parsedType:EY(Y.data),schemaErrorMap:this._def.errorMap,path:Y.path,parent:Y.parent}}}_parseSync(Y){let J=this._parse(Y);if(LX(J))throw Error("Synchronous parse encountered promise.");return J}_parseAsync(Y){let J=this._parse(Y);return Promise.resolve(J)}parse(Y,J){let Q=this.safeParse(Y,J);if(Q.success)return Q.data;throw Q.error}safeParse(Y,J){let Q={common:{issues:[],async:J?.async??!1,contextualErrorMap:J?.errorMap},path:J?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:Y,parsedType:EY(Y)},q=this._parseSync({data:Y,path:Q.path,parent:Q});return eE(Q,q)}"~validate"(Y){let J={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:Y,parsedType:EY(Y)};if(!this["~standard"].async)try{let Q=this._parseSync({data:Y,path:[],parent:J});return SJ(Q)?{value:Q.value}:{issues:J.common.issues}}catch(Q){if(Q?.message?.toLowerCase()?.includes("encountered"))this["~standard"].async=!0;J.common={issues:[],async:!0}}return this._parseAsync({data:Y,path:[],parent:J}).then((Q)=>SJ(Q)?{value:Q.value}:{issues:J.common.issues})}async parseAsync(Y,J){let Q=await this.safeParseAsync(Y,J);if(Q.success)return Q.data;throw Q.error}async safeParseAsync(Y,J){let Q={common:{issues:[],contextualErrorMap:J?.errorMap,async:!0},path:J?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:Y,parsedType:EY(Y)},q=this._parse({data:Y,path:Q.path,parent:Q}),X=await(LX(q)?q:Promise.resolve(q));return eE(Q,X)}refine(Y,J){let Q=(q)=>{if(typeof J==="string"||typeof J>"u")return{message:J};else if(typeof J==="function")return J(q);else return J};return this._refinement((q,X)=>{let G=Y(q),$=()=>X.addIssue({code:k.custom,...Q(q)});if(typeof Promise<"u"&&G instanceof Promise)return G.then((W)=>{if(!W)return $(),!1;else return!0});if(!G)return $(),!1;else return!0})}refinement(Y,J){return this._refinement((Q,q)=>{if(!Y(Q))return q.addIssue(typeof J==="function"?J(Q,q):J),!1;else return!0})}_refinement(Y){return new WY({schema:this,typeName:Q0.ZodEffects,effect:{type:"refinement",refinement:Y}})}superRefine(Y){return this._refinement(Y)}constructor(Y){this.spa=this.safeParseAsync,this._def=Y,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(J)=>this["~validate"](J)}}optional(){return GY.create(this,this._def)}nullable(){return qJ.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return qY.create(this)}promise(){return wQ.create(this,this._def)}or(Y){return SX.create([this,Y],this._def)}and(Y){return vX.create(this,Y,this._def)}transform(Y){return new WY({...$0(this._def),schema:this,typeName:Q0.ZodEffects,effect:{type:"transform",transform:Y}})}default(Y){let J=typeof Y==="function"?Y:()=>Y;return new PX({...$0(this._def),innerType:this,defaultValue:J,typeName:Q0.ZodDefault})}brand(){return new YW({typeName:Q0.ZodBranded,type:this,...$0(this._def)})}catch(Y){let J=typeof Y==="function"?Y:()=>Y;return new TX({...$0(this._def),innerType:this,catchValue:J,typeName:Q0.ZodCatch})}describe(Y){return new this.constructor({...this._def,description:Y})}pipe(Y){return RG.create(this,Y)}readonly(){return ZX.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var iZ=/^c[^\s-]{8,}$/i,tZ=/^[0-9a-z]+$/,nZ=/^[0-9A-HJKMNP-TV-Z]{26}$/i,aZ=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,eZ=/^[a-z0-9_-]{21}$/i,Yx=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Jx=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Qx=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Xx="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",KM,qx=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Gx=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,$x=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Wx=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,jx=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Kx=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Jw="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",zx=new RegExp(`^${Jw}$`);function Qw(Y){let J="[0-5]\\d";if(Y.precision)J=`${J}\\.\\d{${Y.precision}}`;else if(Y.precision==null)J=`${J}(\\.\\d+)?`;let Q=Y.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${J})${Q}`}function Mx(Y){return new RegExp(`^${Qw(Y)}$`)}function Xw(Y){let J=`${Jw}T${Qw(Y)}`,Q=[];if(Q.push(Y.local?"Z?":"Z"),Y.offset)Q.push("([+-]\\d{2}:?\\d{2})");return J=`${J}(${Q.join("|")})`,new RegExp(`^${J}$`)}function Nx(Y,J){if((J==="v4"||!J)&&qx.test(Y))return!0;if((J==="v6"||!J)&&$x.test(Y))return!0;return!1}function Ox(Y,J){if(!Yx.test(Y))return!1;try{let[Q]=Y.split(".");if(!Q)return!1;let q=Q.replace(/-/g,"+").replace(/_/g,"/").padEnd(Q.length+(4-Q.length%4)%4,"="),X=JSON.parse(atob(q));if(typeof X!=="object"||X===null)return!1;if("typ"in X&&X?.typ!=="JWT")return!1;if(!X.alg)return!1;if(J&&X.alg!==J)return!1;return!0}catch{return!1}}function Dx(Y,J){if((J==="v4"||!J)&&Gx.test(Y))return!0;if((J==="v6"||!J)&&Wx.test(Y))return!0;return!1}class XY extends M0{_parse(Y){if(this._def.coerce)Y.data=String(Y.data);if(this._getType(Y)!==x.string){let X=this._getOrReturnCtx(Y);return h(X,{code:k.invalid_type,expected:x.string,received:X.parsedType}),Y0}let Q=new J8,q=void 0;for(let X of this._def.checks)if(X.kind==="min"){if(Y.data.length<X.value)q=this._getOrReturnCtx(Y,q),h(q,{code:k.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),Q.dirty()}else if(X.kind==="max"){if(Y.data.length>X.value)q=this._getOrReturnCtx(Y,q),h(q,{code:k.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!1,message:X.message}),Q.dirty()}else if(X.kind==="length"){let G=Y.data.length>X.value,$=Y.data.length<X.value;if(G||$){if(q=this._getOrReturnCtx(Y,q),G)h(q,{code:k.too_big,maximum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});else if($)h(q,{code:k.too_small,minimum:X.value,type:"string",inclusive:!0,exact:!0,message:X.message});Q.dirty()}}else if(X.kind==="email"){if(!Qx.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"email",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="emoji"){if(!KM)KM=new RegExp(Xx,"u");if(!KM.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"emoji",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="uuid"){if(!aZ.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"uuid",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="nanoid"){if(!eZ.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"nanoid",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="cuid"){if(!iZ.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"cuid",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="cuid2"){if(!tZ.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"cuid2",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="ulid"){if(!nZ.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"ulid",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="url")try{new URL(Y.data)}catch{q=this._getOrReturnCtx(Y,q),h(q,{validation:"url",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="regex"){if(X.regex.lastIndex=0,!X.regex.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"regex",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="trim")Y.data=Y.data.trim();else if(X.kind==="includes"){if(!Y.data.includes(X.value,X.position))q=this._getOrReturnCtx(Y,q),h(q,{code:k.invalid_string,validation:{includes:X.value,position:X.position},message:X.message}),Q.dirty()}else if(X.kind==="toLowerCase")Y.data=Y.data.toLowerCase();else if(X.kind==="toUpperCase")Y.data=Y.data.toUpperCase();else if(X.kind==="startsWith"){if(!Y.data.startsWith(X.value))q=this._getOrReturnCtx(Y,q),h(q,{code:k.invalid_string,validation:{startsWith:X.value},message:X.message}),Q.dirty()}else if(X.kind==="endsWith"){if(!Y.data.endsWith(X.value))q=this._getOrReturnCtx(Y,q),h(q,{code:k.invalid_string,validation:{endsWith:X.value},message:X.message}),Q.dirty()}else if(X.kind==="datetime"){if(!Xw(X).test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{code:k.invalid_string,validation:"datetime",message:X.message}),Q.dirty()}else if(X.kind==="date"){if(!zx.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{code:k.invalid_string,validation:"date",message:X.message}),Q.dirty()}else if(X.kind==="time"){if(!Mx(X).test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{code:k.invalid_string,validation:"time",message:X.message}),Q.dirty()}else if(X.kind==="duration"){if(!Jx.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"duration",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="ip"){if(!Nx(Y.data,X.version))q=this._getOrReturnCtx(Y,q),h(q,{validation:"ip",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="jwt"){if(!Ox(Y.data,X.alg))q=this._getOrReturnCtx(Y,q),h(q,{validation:"jwt",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="cidr"){if(!Dx(Y.data,X.version))q=this._getOrReturnCtx(Y,q),h(q,{validation:"cidr",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="base64"){if(!jx.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"base64",code:k.invalid_string,message:X.message}),Q.dirty()}else if(X.kind==="base64url"){if(!Kx.test(Y.data))q=this._getOrReturnCtx(Y,q),h(q,{validation:"base64url",code:k.invalid_string,message:X.message}),Q.dirty()}else O0.assertNever(X);return{status:Q.value,value:Y.data}}_regex(Y,J,Q){return this.refinement((q)=>Y.test(q),{validation:J,code:k.invalid_string,...s.errToObj(Q)})}_addCheck(Y){return new XY({...this._def,checks:[...this._def.checks,Y]})}email(Y){return this._addCheck({kind:"email",...s.errToObj(Y)})}url(Y){return this._addCheck({kind:"url",...s.errToObj(Y)})}emoji(Y){return this._addCheck({kind:"emoji",...s.errToObj(Y)})}uuid(Y){return this._addCheck({kind:"uuid",...s.errToObj(Y)})}nanoid(Y){return this._addCheck({kind:"nanoid",...s.errToObj(Y)})}cuid(Y){return this._addCheck({kind:"cuid",...s.errToObj(Y)})}cuid2(Y){return this._addCheck({kind:"cuid2",...s.errToObj(Y)})}ulid(Y){return this._addCheck({kind:"ulid",...s.errToObj(Y)})}base64(Y){return this._addCheck({kind:"base64",...s.errToObj(Y)})}base64url(Y){return this._addCheck({kind:"base64url",...s.errToObj(Y)})}jwt(Y){return this._addCheck({kind:"jwt",...s.errToObj(Y)})}ip(Y){return this._addCheck({kind:"ip",...s.errToObj(Y)})}cidr(Y){return this._addCheck({kind:"cidr",...s.errToObj(Y)})}datetime(Y){if(typeof Y==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:Y});return this._addCheck({kind:"datetime",precision:typeof Y?.precision>"u"?null:Y?.precision,offset:Y?.offset??!1,local:Y?.local??!1,...s.errToObj(Y?.message)})}date(Y){return this._addCheck({kind:"date",message:Y})}time(Y){if(typeof Y==="string")return this._addCheck({kind:"time",precision:null,message:Y});return this._addCheck({kind:"time",precision:typeof Y?.precision>"u"?null:Y?.precision,...s.errToObj(Y?.message)})}duration(Y){return this._addCheck({kind:"duration",...s.errToObj(Y)})}regex(Y,J){return this._addCheck({kind:"regex",regex:Y,...s.errToObj(J)})}includes(Y,J){return this._addCheck({kind:"includes",value:Y,position:J?.position,...s.errToObj(J?.message)})}startsWith(Y,J){return this._addCheck({kind:"startsWith",value:Y,...s.errToObj(J)})}endsWith(Y,J){return this._addCheck({kind:"endsWith",value:Y,...s.errToObj(J)})}min(Y,J){return this._addCheck({kind:"min",value:Y,...s.errToObj(J)})}max(Y,J){return this._addCheck({kind:"max",value:Y,...s.errToObj(J)})}length(Y,J){return this._addCheck({kind:"length",value:Y,...s.errToObj(J)})}nonempty(Y){return this.min(1,s.errToObj(Y))}trim(){return new XY({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new XY({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new XY({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((Y)=>Y.kind==="datetime")}get isDate(){return!!this._def.checks.find((Y)=>Y.kind==="date")}get isTime(){return!!this._def.checks.find((Y)=>Y.kind==="time")}get isDuration(){return!!this._def.checks.find((Y)=>Y.kind==="duration")}get isEmail(){return!!this._def.checks.find((Y)=>Y.kind==="email")}get isURL(){return!!this._def.checks.find((Y)=>Y.kind==="url")}get isEmoji(){return!!this._def.checks.find((Y)=>Y.kind==="emoji")}get isUUID(){return!!this._def.checks.find((Y)=>Y.kind==="uuid")}get isNANOID(){return!!this._def.checks.find((Y)=>Y.kind==="nanoid")}get isCUID(){return!!this._def.checks.find((Y)=>Y.kind==="cuid")}get isCUID2(){return!!this._def.checks.find((Y)=>Y.kind==="cuid2")}get isULID(){return!!this._def.checks.find((Y)=>Y.kind==="ulid")}get isIP(){return!!this._def.checks.find((Y)=>Y.kind==="ip")}get isCIDR(){return!!this._def.checks.find((Y)=>Y.kind==="cidr")}get isBase64(){return!!this._def.checks.find((Y)=>Y.kind==="base64")}get isBase64url(){return!!this._def.checks.find((Y)=>Y.kind==="base64url")}get minLength(){let Y=null;for(let J of this._def.checks)if(J.kind==="min"){if(Y===null||J.value>Y)Y=J.value}return Y}get maxLength(){let Y=null;for(let J of this._def.checks)if(J.kind==="max"){if(Y===null||J.value<Y)Y=J.value}return Y}}XY.create=(Y)=>{return new XY({checks:[],typeName:Q0.ZodString,coerce:Y?.coerce??!1,...$0(Y)})};function Ux(Y,J){let Q=(Y.toString().split(".")[1]||"").length,q=(J.toString().split(".")[1]||"").length,X=Q>q?Q:q,G=Number.parseInt(Y.toFixed(X).replace(".","")),$=Number.parseInt(J.toFixed(X).replace(".",""));return G%$/10**X}class _J extends M0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(Y){if(this._def.coerce)Y.data=Number(Y.data);if(this._getType(Y)!==x.number){let X=this._getOrReturnCtx(Y);return h(X,{code:k.invalid_type,expected:x.number,received:X.parsedType}),Y0}let Q=void 0,q=new J8;for(let X of this._def.checks)if(X.kind==="int"){if(!O0.isInteger(Y.data))Q=this._getOrReturnCtx(Y,Q),h(Q,{code:k.invalid_type,expected:"integer",received:"float",message:X.message}),q.dirty()}else if(X.kind==="min"){if(X.inclusive?Y.data<X.value:Y.data<=X.value)Q=this._getOrReturnCtx(Y,Q),h(Q,{code:k.too_small,minimum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),q.dirty()}else if(X.kind==="max"){if(X.inclusive?Y.data>X.value:Y.data>=X.value)Q=this._getOrReturnCtx(Y,Q),h(Q,{code:k.too_big,maximum:X.value,type:"number",inclusive:X.inclusive,exact:!1,message:X.message}),q.dirty()}else if(X.kind==="multipleOf"){if(Ux(Y.data,X.value)!==0)Q=this._getOrReturnCtx(Y,Q),h(Q,{code:k.not_multiple_of,multipleOf:X.value,message:X.message}),q.dirty()}else if(X.kind==="finite"){if(!Number.isFinite(Y.data))Q=this._getOrReturnCtx(Y,Q),h(Q,{code:k.not_finite,message:X.message}),q.dirty()}else O0.assertNever(X);return{status:q.value,value:Y.data}}gte(Y,J){return this.setLimit("min",Y,!0,s.toString(J))}gt(Y,J){return this.setLimit("min",Y,!1,s.toString(J))}lte(Y,J){return this.setLimit("max",Y,!0,s.toString(J))}lt(Y,J){return this.setLimit("max",Y,!1,s.toString(J))}setLimit(Y,J,Q,q){return new _J({...this._def,checks:[...this._def.checks,{kind:Y,value:J,inclusive:Q,message:s.toString(q)}]})}_addCheck(Y){return new _J({...this._def,checks:[...this._def.checks,Y]})}int(Y){return this._addCheck({kind:"int",message:s.toString(Y)})}positive(Y){return this._addCheck({kind:"min",value:0,inclusive:!1,message:s.toString(Y)})}negative(Y){return this._addCheck({kind:"max",value:0,inclusive:!1,message:s.toString(Y)})}nonpositive(Y){return this._addCheck({kind:"max",value:0,inclusive:!0,message:s.toString(Y)})}nonnegative(Y){return this._addCheck({kind:"min",value:0,inclusive:!0,message:s.toString(Y)})}multipleOf(Y,J){return this._addCheck({kind:"multipleOf",value:Y,message:s.toString(J)})}finite(Y){return this._addCheck({kind:"finite",message:s.toString(Y)})}safe(Y){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:s.toString(Y)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:s.toString(Y)})}get minValue(){let Y=null;for(let J of this._def.checks)if(J.kind==="min"){if(Y===null||J.value>Y)Y=J.value}return Y}get maxValue(){let Y=null;for(let J of this._def.checks)if(J.kind==="max"){if(Y===null||J.value<Y)Y=J.value}return Y}get isInt(){return!!this._def.checks.find((Y)=>Y.kind==="int"||Y.kind==="multipleOf"&&O0.isInteger(Y.value))}get isFinite(){let Y=null,J=null;for(let Q of this._def.checks)if(Q.kind==="finite"||Q.kind==="int"||Q.kind==="multipleOf")return!0;else if(Q.kind==="min"){if(J===null||Q.value>J)J=Q.value}else if(Q.kind==="max"){if(Y===null||Q.value<Y)Y=Q.value}return Number.isFinite(J)&&Number.isFinite(Y)}}_J.create=(Y)=>{return new _J({checks:[],typeName:Q0.ZodNumber,coerce:Y?.coerce||!1,...$0(Y)})};class kJ extends M0{constructor(){super(...arguments);this.min=this.gte,this.max=this.lte}_parse(Y){if(this._def.coerce)try{Y.data=BigInt(Y.data)}catch{return this._getInvalidInput(Y)}if(this._getType(Y)!==x.bigint)return this._getInvalidInput(Y);let Q=void 0,q=new J8;for(let X of this._def.checks)if(X.kind==="min"){if(X.inclusive?Y.data<X.value:Y.data<=X.value)Q=this._getOrReturnCtx(Y,Q),h(Q,{code:k.too_small,type:"bigint",minimum:X.value,inclusive:X.inclusive,message:X.message}),q.dirty()}else if(X.kind==="max"){if(X.inclusive?Y.data>X.value:Y.data>=X.value)Q=this._getOrReturnCtx(Y,Q),h(Q,{code:k.too_big,type:"bigint",maximum:X.value,inclusive:X.inclusive,message:X.message}),q.dirty()}else if(X.kind==="multipleOf"){if(Y.data%X.value!==BigInt(0))Q=this._getOrReturnCtx(Y,Q),h(Q,{code:k.not_multiple_of,multipleOf:X.value,message:X.message}),q.dirty()}else O0.assertNever(X);return{status:q.value,value:Y.data}}_getInvalidInput(Y){let J=this._getOrReturnCtx(Y);return h(J,{code:k.invalid_type,expected:x.bigint,received:J.parsedType}),Y0}gte(Y,J){return this.setLimit("min",Y,!0,s.toString(J))}gt(Y,J){return this.setLimit("min",Y,!1,s.toString(J))}lte(Y,J){return this.setLimit("max",Y,!0,s.toString(J))}lt(Y,J){return this.setLimit("max",Y,!1,s.toString(J))}setLimit(Y,J,Q,q){return new kJ({...this._def,checks:[...this._def.checks,{kind:Y,value:J,inclusive:Q,message:s.toString(q)}]})}_addCheck(Y){return new kJ({...this._def,checks:[...this._def.checks,Y]})}positive(Y){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:s.toString(Y)})}negative(Y){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:s.toString(Y)})}nonpositive(Y){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:s.toString(Y)})}nonnegative(Y){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:s.toString(Y)})}multipleOf(Y,J){return this._addCheck({kind:"multipleOf",value:Y,message:s.toString(J)})}get minValue(){let Y=null;for(let J of this._def.checks)if(J.kind==="min"){if(Y===null||J.value>Y)Y=J.value}return Y}get maxValue(){let Y=null;for(let J of this._def.checks)if(J.kind==="max"){if(Y===null||J.value<Y)Y=J.value}return Y}}kJ.create=(Y)=>{return new kJ({checks:[],typeName:Q0.ZodBigInt,coerce:Y?.coerce??!1,...$0(Y)})};class AX extends M0{_parse(Y){if(this._def.coerce)Y.data=Boolean(Y.data);if(this._getType(Y)!==x.boolean){let Q=this._getOrReturnCtx(Y);return h(Q,{code:k.invalid_type,expected:x.boolean,received:Q.parsedType}),Y0}return j8(Y.data)}}AX.create=(Y)=>{return new AX({typeName:Q0.ZodBoolean,coerce:Y?.coerce||!1,...$0(Y)})};class VQ extends M0{_parse(Y){if(this._def.coerce)Y.data=new Date(Y.data);if(this._getType(Y)!==x.date){let X=this._getOrReturnCtx(Y);return h(X,{code:k.invalid_type,expected:x.date,received:X.parsedType}),Y0}if(Number.isNaN(Y.data.getTime())){let X=this._getOrReturnCtx(Y);return h(X,{code:k.invalid_date}),Y0}let Q=new J8,q=void 0;for(let X of this._def.checks)if(X.kind==="min"){if(Y.data.getTime()<X.value)q=this._getOrReturnCtx(Y,q),h(q,{code:k.too_small,message:X.message,inclusive:!0,exact:!1,minimum:X.value,type:"date"}),Q.dirty()}else if(X.kind==="max"){if(Y.data.getTime()>X.value)q=this._getOrReturnCtx(Y,q),h(q,{code:k.too_big,message:X.message,inclusive:!0,exact:!1,maximum:X.value,type:"date"}),Q.dirty()}else O0.assertNever(X);return{status:Q.value,value:new Date(Y.data.getTime())}}_addCheck(Y){return new VQ({...this._def,checks:[...this._def.checks,Y]})}min(Y,J){return this._addCheck({kind:"min",value:Y.getTime(),message:s.toString(J)})}max(Y,J){return this._addCheck({kind:"max",value:Y.getTime(),message:s.toString(J)})}get minDate(){let Y=null;for(let J of this._def.checks)if(J.kind==="min"){if(Y===null||J.value>Y)Y=J.value}return Y!=null?new Date(Y):null}get maxDate(){let Y=null;for(let J of this._def.checks)if(J.kind==="max"){if(Y===null||J.value<Y)Y=J.value}return Y!=null?new Date(Y):null}}VQ.create=(Y)=>{return new VQ({checks:[],coerce:Y?.coerce||!1,typeName:Q0.ZodDate,...$0(Y)})};class OG extends M0{_parse(Y){if(this._getType(Y)!==x.symbol){let Q=this._getOrReturnCtx(Y);return h(Q,{code:k.invalid_type,expected:x.symbol,received:Q.parsedType}),Y0}return j8(Y.data)}}OG.create=(Y)=>{return new OG({typeName:Q0.ZodSymbol,...$0(Y)})};class CX extends M0{_parse(Y){if(this._getType(Y)!==x.undefined){let Q=this._getOrReturnCtx(Y);return h(Q,{code:k.invalid_type,expected:x.undefined,received:Q.parsedType}),Y0}return j8(Y.data)}}CX.create=(Y)=>{return new CX({typeName:Q0.ZodUndefined,...$0(Y)})};class IX extends M0{_parse(Y){if(this._getType(Y)!==x.null){let Q=this._getOrReturnCtx(Y);return h(Q,{code:k.invalid_type,expected:x.null,received:Q.parsedType}),Y0}return j8(Y.data)}}IX.create=(Y)=>{return new IX({typeName:Q0.ZodNull,...$0(Y)})};class LQ extends M0{constructor(){super(...arguments);this._any=!0}_parse(Y){return j8(Y.data)}}LQ.create=(Y)=>{return new LQ({typeName:Q0.ZodAny,...$0(Y)})};class vJ extends M0{constructor(){super(...arguments);this._unknown=!0}_parse(Y){return j8(Y.data)}}vJ.create=(Y)=>{return new vJ({typeName:Q0.ZodUnknown,...$0(Y)})};class wY extends M0{_parse(Y){let J=this._getOrReturnCtx(Y);return h(J,{code:k.invalid_type,expected:x.never,received:J.parsedType}),Y0}}wY.create=(Y)=>{return new wY({typeName:Q0.ZodNever,...$0(Y)})};class DG extends M0{_parse(Y){if(this._getType(Y)!==x.undefined){let Q=this._getOrReturnCtx(Y);return h(Q,{code:k.invalid_type,expected:x.void,received:Q.parsedType}),Y0}return j8(Y.data)}}DG.create=(Y)=>{return new DG({typeName:Q0.ZodVoid,...$0(Y)})};class qY extends M0{_parse(Y){let{ctx:J,status:Q}=this._processInputParams(Y),q=this._def;if(J.parsedType!==x.array)return h(J,{code:k.invalid_type,expected:x.array,received:J.parsedType}),Y0;if(q.exactLength!==null){let G=J.data.length>q.exactLength.value,$=J.data.length<q.exactLength.value;if(G||$)h(J,{code:G?k.too_big:k.too_small,minimum:$?q.exactLength.value:void 0,maximum:G?q.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:q.exactLength.message}),Q.dirty()}if(q.minLength!==null){if(J.data.length<q.minLength.value)h(J,{code:k.too_small,minimum:q.minLength.value,type:"array",inclusive:!0,exact:!1,message:q.minLength.message}),Q.dirty()}if(q.maxLength!==null){if(J.data.length>q.maxLength.value)h(J,{code:k.too_big,maximum:q.maxLength.value,type:"array",inclusive:!0,exact:!1,message:q.maxLength.message}),Q.dirty()}if(J.common.async)return Promise.all([...J.data].map((G,$)=>{return q.type._parseAsync(new $Y(J,G,J.path,$))})).then((G)=>{return J8.mergeArray(Q,G)});let X=[...J.data].map((G,$)=>{return q.type._parseSync(new $Y(J,G,J.path,$))});return J8.mergeArray(Q,X)}get element(){return this._def.type}min(Y,J){return new qY({...this._def,minLength:{value:Y,message:s.toString(J)}})}max(Y,J){return new qY({...this._def,maxLength:{value:Y,message:s.toString(J)}})}length(Y,J){return new qY({...this._def,exactLength:{value:Y,message:s.toString(J)}})}nonempty(Y){return this.min(1,Y)}}qY.create=(Y,J)=>{return new qY({type:Y,minLength:null,maxLength:null,exactLength:null,typeName:Q0.ZodArray,...$0(J)})};function EX(Y){if(Y instanceof g0){let J={};for(let Q in Y.shape){let q=Y.shape[Q];J[Q]=GY.create(EX(q))}return new g0({...Y._def,shape:()=>J})}else if(Y instanceof qY)return new qY({...Y._def,type:EX(Y.element)});else if(Y instanceof GY)return GY.create(EX(Y.unwrap()));else if(Y instanceof qJ)return qJ.create(EX(Y.unwrap()));else if(Y instanceof AY)return AY.create(Y.items.map((J)=>EX(J)));else return Y}class g0 extends M0{constructor(){super(...arguments);this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let Y=this._def.shape(),J=O0.objectKeys(Y);return this._cached={shape:Y,keys:J},this._cached}_parse(Y){if(this._getType(Y)!==x.object){let j=this._getOrReturnCtx(Y);return h(j,{code:k.invalid_type,expected:x.object,received:j.parsedType}),Y0}let{status:Q,ctx:q}=this._processInputParams(Y),{shape:X,keys:G}=this._getCached(),$=[];if(!(this._def.catchall instanceof wY&&this._def.unknownKeys==="strip")){for(let j in q.data)if(!G.includes(j))$.push(j)}let W=[];for(let j of G){let K=X[j],z=q.data[j];W.push({key:{status:"valid",value:j},value:K._parse(new $Y(q,z,q.path,j)),alwaysSet:j in q.data})}if(this._def.catchall instanceof wY){let j=this._def.unknownKeys;if(j==="passthrough")for(let K of $)W.push({key:{status:"valid",value:K},value:{status:"valid",value:q.data[K]}});else if(j==="strict"){if($.length>0)h(q,{code:k.unrecognized_keys,keys:$}),Q.dirty()}else if(j==="strip");else throw Error("Internal ZodObject error: invalid unknownKeys value.")}else{let j=this._def.catchall;for(let K of $){let z=q.data[K];W.push({key:{status:"valid",value:K},value:j._parse(new $Y(q,z,q.path,K)),alwaysSet:K in q.data})}}if(q.common.async)return Promise.resolve().then(async()=>{let j=[];for(let K of W){let z=await K.key,M=await K.value;j.push({key:z,value:M,alwaysSet:K.alwaysSet})}return j}).then((j)=>{return J8.mergeObjectSync(Q,j)});else return J8.mergeObjectSync(Q,W)}get shape(){return this._def.shape()}strict(Y){return s.errToObj,new g0({...this._def,unknownKeys:"strict",...Y!==void 0?{errorMap:(J,Q)=>{let q=this._def.errorMap?.(J,Q).message??Q.defaultError;if(J.code==="unrecognized_keys")return{message:s.errToObj(Y).message??q};return{message:q}}}:{}})}strip(){return new g0({...this._def,unknownKeys:"strip"})}passthrough(){return new g0({...this._def,unknownKeys:"passthrough"})}extend(Y){return new g0({...this._def,shape:()=>({...this._def.shape(),...Y})})}merge(Y){return new g0({unknownKeys:Y._def.unknownKeys,catchall:Y._def.catchall,shape:()=>({...this._def.shape(),...Y._def.shape()}),typeName:Q0.ZodObject})}setKey(Y,J){return this.augment({[Y]:J})}catchall(Y){return new g0({...this._def,catchall:Y})}pick(Y){let J={};for(let Q of O0.objectKeys(Y))if(Y[Q]&&this.shape[Q])J[Q]=this.shape[Q];return new g0({...this._def,shape:()=>J})}omit(Y){let J={};for(let Q of O0.objectKeys(this.shape))if(!Y[Q])J[Q]=this.shape[Q];return new g0({...this._def,shape:()=>J})}deepPartial(){return EX(this)}partial(Y){let J={};for(let Q of O0.objectKeys(this.shape)){let q=this.shape[Q];if(Y&&!Y[Q])J[Q]=q;else J[Q]=q.optional()}return new g0({...this._def,shape:()=>J})}required(Y){let J={};for(let Q of O0.objectKeys(this.shape))if(Y&&!Y[Q])J[Q]=this.shape[Q];else{let X=this.shape[Q];while(X instanceof GY)X=X._def.innerType;J[Q]=X}return new g0({...this._def,shape:()=>J})}keyof(){return qw(O0.objectKeys(this.shape))}}g0.create=(Y,J)=>{return new g0({shape:()=>Y,unknownKeys:"strip",catchall:wY.create(),typeName:Q0.ZodObject,...$0(J)})};g0.strictCreate=(Y,J)=>{return new g0({shape:()=>Y,unknownKeys:"strict",catchall:wY.create(),typeName:Q0.ZodObject,...$0(J)})};g0.lazycreate=(Y,J)=>{return new g0({shape:Y,unknownKeys:"strip",catchall:wY.create(),typeName:Q0.ZodObject,...$0(J)})};class SX extends M0{_parse(Y){let{ctx:J}=this._processInputParams(Y),Q=this._def.options;function q(X){for(let $ of X)if($.result.status==="valid")return $.result;for(let $ of X)if($.result.status==="dirty")return J.common.issues.push(...$.ctx.common.issues),$.result;let G=X.map(($)=>new C8($.ctx.common.issues));return h(J,{code:k.invalid_union,unionErrors:G}),Y0}if(J.common.async)return Promise.all(Q.map(async(X)=>{let G={...J,common:{...J.common,issues:[]},parent:null};return{result:await X._parseAsync({data:J.data,path:J.path,parent:G}),ctx:G}})).then(q);else{let X=void 0,G=[];for(let W of Q){let j={...J,common:{...J.common,issues:[]},parent:null},K=W._parseSync({data:J.data,path:J.path,parent:j});if(K.status==="valid")return K;else if(K.status==="dirty"&&!X)X={result:K,ctx:j};if(j.common.issues.length)G.push(j.common.issues)}if(X)return J.common.issues.push(...X.ctx.common.issues),X.result;let $=G.map((W)=>new C8(W));return h(J,{code:k.invalid_union,unionErrors:$}),Y0}}get options(){return this._def.options}}SX.create=(Y,J)=>{return new SX({options:Y,typeName:Q0.ZodUnion,...$0(J)})};var XJ=(Y)=>{if(Y instanceof _X)return XJ(Y.schema);else if(Y instanceof WY)return XJ(Y.innerType());else if(Y instanceof kX)return[Y.value];else if(Y instanceof FJ)return Y.options;else if(Y instanceof FX)return O0.objectValues(Y.enum);else if(Y instanceof PX)return XJ(Y._def.innerType);else if(Y instanceof CX)return[void 0];else if(Y instanceof IX)return[null];else if(Y instanceof GY)return[void 0,...XJ(Y.unwrap())];else if(Y instanceof qJ)return[null,...XJ(Y.unwrap())];else if(Y instanceof YW)return XJ(Y.unwrap());else if(Y instanceof ZX)return XJ(Y.unwrap());else if(Y instanceof TX)return XJ(Y._def.innerType);else return[]};class e9 extends M0{_parse(Y){let{ctx:J}=this._processInputParams(Y);if(J.parsedType!==x.object)return h(J,{code:k.invalid_type,expected:x.object,received:J.parsedType}),Y0;let Q=this.discriminator,q=J.data[Q],X=this.optionsMap.get(q);if(!X)return h(J,{code:k.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[Q]}),Y0;if(J.common.async)return X._parseAsync({data:J.data,path:J.path,parent:J});else return X._parseSync({data:J.data,path:J.path,parent:J})}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(Y,J,Q){let q=new Map;for(let X of J){let G=XJ(X.shape[Y]);if(!G.length)throw Error(`A discriminator value for key \`${Y}\` could not be extracted from all schema options`);for(let $ of G){if(q.has($))throw Error(`Discriminator property ${String(Y)} has duplicate value ${String($)}`);q.set($,X)}}return new e9({typeName:Q0.ZodDiscriminatedUnion,discriminator:Y,options:J,optionsMap:q,...$0(Q)})}}function zM(Y,J){let Q=EY(Y),q=EY(J);if(Y===J)return{valid:!0,data:Y};else if(Q===x.object&&q===x.object){let X=O0.objectKeys(J),G=O0.objectKeys(Y).filter((W)=>X.indexOf(W)!==-1),$={...Y,...J};for(let W of G){let j=zM(Y[W],J[W]);if(!j.valid)return{valid:!1};$[W]=j.data}return{valid:!0,data:$}}else if(Q===x.array&&q===x.array){if(Y.length!==J.length)return{valid:!1};let X=[];for(let G=0;G<Y.length;G++){let $=Y[G],W=J[G],j=zM($,W);if(!j.valid)return{valid:!1};X.push(j.data)}return{valid:!0,data:X}}else if(Q===x.date&&q===x.date&&+Y===+J)return{valid:!0,data:Y};else return{valid:!1}}class vX extends M0{_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y),q=(X,G)=>{if(n9(X)||n9(G))return Y0;let $=zM(X.value,G.value);if(!$.valid)return h(Q,{code:k.invalid_intersection_types}),Y0;if(a9(X)||a9(G))J.dirty();return{status:J.value,value:$.data}};if(Q.common.async)return Promise.all([this._def.left._parseAsync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseAsync({data:Q.data,path:Q.path,parent:Q})]).then(([X,G])=>q(X,G));else return q(this._def.left._parseSync({data:Q.data,path:Q.path,parent:Q}),this._def.right._parseSync({data:Q.data,path:Q.path,parent:Q}))}}vX.create=(Y,J,Q)=>{return new vX({left:Y,right:J,typeName:Q0.ZodIntersection,...$0(Q)})};class AY extends M0{_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.parsedType!==x.array)return h(Q,{code:k.invalid_type,expected:x.array,received:Q.parsedType}),Y0;if(Q.data.length<this._def.items.length)return h(Q,{code:k.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Y0;if(!this._def.rest&&Q.data.length>this._def.items.length)h(Q,{code:k.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),J.dirty();let X=[...Q.data].map((G,$)=>{let W=this._def.items[$]||this._def.rest;if(!W)return null;return W._parse(new $Y(Q,G,Q.path,$))}).filter((G)=>!!G);if(Q.common.async)return Promise.all(X).then((G)=>{return J8.mergeArray(J,G)});else return J8.mergeArray(J,X)}get items(){return this._def.items}rest(Y){return new AY({...this._def,rest:Y})}}AY.create=(Y,J)=>{if(!Array.isArray(Y))throw Error("You must pass an array of schemas to z.tuple([ ... ])");return new AY({items:Y,typeName:Q0.ZodTuple,rest:null,...$0(J)})};class UG extends M0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.parsedType!==x.object)return h(Q,{code:k.invalid_type,expected:x.object,received:Q.parsedType}),Y0;let q=[],X=this._def.keyType,G=this._def.valueType;for(let $ in Q.data)q.push({key:X._parse(new $Y(Q,$,Q.path,$)),value:G._parse(new $Y(Q,Q.data[$],Q.path,$)),alwaysSet:$ in Q.data});if(Q.common.async)return J8.mergeObjectAsync(J,q);else return J8.mergeObjectSync(J,q)}get element(){return this._def.valueType}static create(Y,J,Q){if(J instanceof M0)return new UG({keyType:Y,valueType:J,typeName:Q0.ZodRecord,...$0(Q)});return new UG({keyType:XY.create(),valueType:Y,typeName:Q0.ZodRecord,...$0(J)})}}class HG extends M0{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.parsedType!==x.map)return h(Q,{code:k.invalid_type,expected:x.map,received:Q.parsedType}),Y0;let q=this._def.keyType,X=this._def.valueType,G=[...Q.data.entries()].map(([$,W],j)=>{return{key:q._parse(new $Y(Q,$,Q.path,[j,"key"])),value:X._parse(new $Y(Q,W,Q.path,[j,"value"]))}});if(Q.common.async){let $=new Map;return Promise.resolve().then(async()=>{for(let W of G){let j=await W.key,K=await W.value;if(j.status==="aborted"||K.status==="aborted")return Y0;if(j.status==="dirty"||K.status==="dirty")J.dirty();$.set(j.value,K.value)}return{status:J.value,value:$}})}else{let $=new Map;for(let W of G){let{key:j,value:K}=W;if(j.status==="aborted"||K.status==="aborted")return Y0;if(j.status==="dirty"||K.status==="dirty")J.dirty();$.set(j.value,K.value)}return{status:J.value,value:$}}}}HG.create=(Y,J,Q)=>{return new HG({valueType:J,keyType:Y,typeName:Q0.ZodMap,...$0(Q)})};class EQ extends M0{_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.parsedType!==x.set)return h(Q,{code:k.invalid_type,expected:x.set,received:Q.parsedType}),Y0;let q=this._def;if(q.minSize!==null){if(Q.data.size<q.minSize.value)h(Q,{code:k.too_small,minimum:q.minSize.value,type:"set",inclusive:!0,exact:!1,message:q.minSize.message}),J.dirty()}if(q.maxSize!==null){if(Q.data.size>q.maxSize.value)h(Q,{code:k.too_big,maximum:q.maxSize.value,type:"set",inclusive:!0,exact:!1,message:q.maxSize.message}),J.dirty()}let X=this._def.valueType;function G(W){let j=new Set;for(let K of W){if(K.status==="aborted")return Y0;if(K.status==="dirty")J.dirty();j.add(K.value)}return{status:J.value,value:j}}let $=[...Q.data.values()].map((W,j)=>X._parse(new $Y(Q,W,Q.path,j)));if(Q.common.async)return Promise.all($).then((W)=>G(W));else return G($)}min(Y,J){return new EQ({...this._def,minSize:{value:Y,message:s.toString(J)}})}max(Y,J){return new EQ({...this._def,maxSize:{value:Y,message:s.toString(J)}})}size(Y,J){return this.min(Y,J).max(Y,J)}nonempty(Y){return this.min(1,Y)}}EQ.create=(Y,J)=>{return new EQ({valueType:Y,minSize:null,maxSize:null,typeName:Q0.ZodSet,...$0(J)})};class wX extends M0{constructor(){super(...arguments);this.validate=this.implement}_parse(Y){let{ctx:J}=this._processInputParams(Y);if(J.parsedType!==x.function)return h(J,{code:k.invalid_type,expected:x.function,received:J.parsedType}),Y0;function Q($,W){return NG({data:$,path:J.path,errorMaps:[J.common.contextualErrorMap,J.schemaErrorMap,VX(),QJ].filter((j)=>!!j),issueData:{code:k.invalid_arguments,argumentsError:W}})}function q($,W){return NG({data:$,path:J.path,errorMaps:[J.common.contextualErrorMap,J.schemaErrorMap,VX(),QJ].filter((j)=>!!j),issueData:{code:k.invalid_return_type,returnTypeError:W}})}let X={errorMap:J.common.contextualErrorMap},G=J.data;if(this._def.returns instanceof wQ){let $=this;return j8(async function(...W){let j=new C8([]),K=await $._def.args.parseAsync(W,X).catch((N)=>{throw j.addIssue(Q(W,N)),j}),z=await Reflect.apply(G,this,K);return await $._def.returns._def.type.parseAsync(z,X).catch((N)=>{throw j.addIssue(q(z,N)),j})})}else{let $=this;return j8(function(...W){let j=$._def.args.safeParse(W,X);if(!j.success)throw new C8([Q(W,j.error)]);let K=Reflect.apply(G,this,j.data),z=$._def.returns.safeParse(K,X);if(!z.success)throw new C8([q(K,z.error)]);return z.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...Y){return new wX({...this._def,args:AY.create(Y).rest(vJ.create())})}returns(Y){return new wX({...this._def,returns:Y})}implement(Y){return this.parse(Y)}strictImplement(Y){return this.parse(Y)}static create(Y,J,Q){return new wX({args:Y?Y:AY.create([]).rest(vJ.create()),returns:J||vJ.create(),typeName:Q0.ZodFunction,...$0(Q)})}}class _X extends M0{get schema(){return this._def.getter()}_parse(Y){let{ctx:J}=this._processInputParams(Y);return this._def.getter()._parse({data:J.data,path:J.path,parent:J})}}_X.create=(Y,J)=>{return new _X({getter:Y,typeName:Q0.ZodLazy,...$0(J)})};class kX extends M0{_parse(Y){if(Y.data!==this._def.value){let J=this._getOrReturnCtx(Y);return h(J,{received:J.data,code:k.invalid_literal,expected:this._def.value}),Y0}return{status:"valid",value:Y.data}}get value(){return this._def.value}}kX.create=(Y,J)=>{return new kX({value:Y,typeName:Q0.ZodLiteral,...$0(J)})};function qw(Y,J){return new FJ({values:Y,typeName:Q0.ZodEnum,...$0(J)})}class FJ extends M0{_parse(Y){if(typeof Y.data!=="string"){let J=this._getOrReturnCtx(Y),Q=this._def.values;return h(J,{expected:O0.joinValues(Q),received:J.parsedType,code:k.invalid_type}),Y0}if(!this._cache)this._cache=new Set(this._def.values);if(!this._cache.has(Y.data)){let J=this._getOrReturnCtx(Y),Q=this._def.values;return h(J,{received:J.data,code:k.invalid_enum_value,options:Q}),Y0}return j8(Y.data)}get options(){return this._def.values}get enum(){let Y={};for(let J of this._def.values)Y[J]=J;return Y}get Values(){let Y={};for(let J of this._def.values)Y[J]=J;return Y}get Enum(){let Y={};for(let J of this._def.values)Y[J]=J;return Y}extract(Y,J=this._def){return FJ.create(Y,{...this._def,...J})}exclude(Y,J=this._def){return FJ.create(this.options.filter((Q)=>!Y.includes(Q)),{...this._def,...J})}}FJ.create=qw;class FX extends M0{_parse(Y){let J=O0.getValidEnumValues(this._def.values),Q=this._getOrReturnCtx(Y);if(Q.parsedType!==x.string&&Q.parsedType!==x.number){let q=O0.objectValues(J);return h(Q,{expected:O0.joinValues(q),received:Q.parsedType,code:k.invalid_type}),Y0}if(!this._cache)this._cache=new Set(O0.getValidEnumValues(this._def.values));if(!this._cache.has(Y.data)){let q=O0.objectValues(J);return h(Q,{received:Q.data,code:k.invalid_enum_value,options:q}),Y0}return j8(Y.data)}get enum(){return this._def.values}}FX.create=(Y,J)=>{return new FX({values:Y,typeName:Q0.ZodNativeEnum,...$0(J)})};class wQ extends M0{unwrap(){return this._def.type}_parse(Y){let{ctx:J}=this._processInputParams(Y);if(J.parsedType!==x.promise&&J.common.async===!1)return h(J,{code:k.invalid_type,expected:x.promise,received:J.parsedType}),Y0;let Q=J.parsedType===x.promise?J.data:Promise.resolve(J.data);return j8(Q.then((q)=>{return this._def.type.parseAsync(q,{path:J.path,errorMap:J.common.contextualErrorMap})}))}}wQ.create=(Y,J)=>{return new wQ({type:Y,typeName:Q0.ZodPromise,...$0(J)})};class WY extends M0{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Q0.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y),q=this._def.effect||null,X={addIssue:(G)=>{if(h(Q,G),G.fatal)J.abort();else J.dirty()},get path(){return Q.path}};if(X.addIssue=X.addIssue.bind(X),q.type==="preprocess"){let G=q.transform(Q.data,X);if(Q.common.async)return Promise.resolve(G).then(async($)=>{if(J.value==="aborted")return Y0;let W=await this._def.schema._parseAsync({data:$,path:Q.path,parent:Q});if(W.status==="aborted")return Y0;if(W.status==="dirty")return RQ(W.value);if(J.value==="dirty")return RQ(W.value);return W});else{if(J.value==="aborted")return Y0;let $=this._def.schema._parseSync({data:G,path:Q.path,parent:Q});if($.status==="aborted")return Y0;if($.status==="dirty")return RQ($.value);if(J.value==="dirty")return RQ($.value);return $}}if(q.type==="refinement"){let G=($)=>{let W=q.refinement($,X);if(Q.common.async)return Promise.resolve(W);if(W instanceof Promise)throw Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return $};if(Q.common.async===!1){let $=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if($.status==="aborted")return Y0;if($.status==="dirty")J.dirty();return G($.value),{status:J.value,value:$.value}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then(($)=>{if($.status==="aborted")return Y0;if($.status==="dirty")J.dirty();return G($.value).then(()=>{return{status:J.value,value:$.value}})})}if(q.type==="transform")if(Q.common.async===!1){let G=this._def.schema._parseSync({data:Q.data,path:Q.path,parent:Q});if(!SJ(G))return Y0;let $=q.transform(G.value,X);if($ instanceof Promise)throw Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:J.value,value:$}}else return this._def.schema._parseAsync({data:Q.data,path:Q.path,parent:Q}).then((G)=>{if(!SJ(G))return Y0;return Promise.resolve(q.transform(G.value,X)).then(($)=>({status:J.value,value:$}))});O0.assertNever(q)}}WY.create=(Y,J,Q)=>{return new WY({schema:Y,typeName:Q0.ZodEffects,effect:J,...$0(Q)})};WY.createWithPreprocess=(Y,J,Q)=>{return new WY({schema:J,effect:{type:"preprocess",transform:Y},typeName:Q0.ZodEffects,...$0(Q)})};class GY extends M0{_parse(Y){if(this._getType(Y)===x.undefined)return j8(void 0);return this._def.innerType._parse(Y)}unwrap(){return this._def.innerType}}GY.create=(Y,J)=>{return new GY({innerType:Y,typeName:Q0.ZodOptional,...$0(J)})};class qJ extends M0{_parse(Y){if(this._getType(Y)===x.null)return j8(null);return this._def.innerType._parse(Y)}unwrap(){return this._def.innerType}}qJ.create=(Y,J)=>{return new qJ({innerType:Y,typeName:Q0.ZodNullable,...$0(J)})};class PX extends M0{_parse(Y){let{ctx:J}=this._processInputParams(Y),Q=J.data;if(J.parsedType===x.undefined)Q=this._def.defaultValue();return this._def.innerType._parse({data:Q,path:J.path,parent:J})}removeDefault(){return this._def.innerType}}PX.create=(Y,J)=>{return new PX({innerType:Y,typeName:Q0.ZodDefault,defaultValue:typeof J.default==="function"?J.default:()=>J.default,...$0(J)})};class TX extends M0{_parse(Y){let{ctx:J}=this._processInputParams(Y),Q={...J,common:{...J.common,issues:[]}},q=this._def.innerType._parse({data:Q.data,path:Q.path,parent:{...Q}});if(LX(q))return q.then((X)=>{return{status:"valid",value:X.status==="valid"?X.value:this._def.catchValue({get error(){return new C8(Q.common.issues)},input:Q.data})}});else return{status:"valid",value:q.status==="valid"?q.value:this._def.catchValue({get error(){return new C8(Q.common.issues)},input:Q.data})}}removeCatch(){return this._def.innerType}}TX.create=(Y,J)=>{return new TX({innerType:Y,typeName:Q0.ZodCatch,catchValue:typeof J.catch==="function"?J.catch:()=>J.catch,...$0(J)})};class BG extends M0{_parse(Y){if(this._getType(Y)!==x.nan){let Q=this._getOrReturnCtx(Y);return h(Q,{code:k.invalid_type,expected:x.nan,received:Q.parsedType}),Y0}return{status:"valid",value:Y.data}}}BG.create=(Y)=>{return new BG({typeName:Q0.ZodNaN,...$0(Y)})};var Hx=Symbol("zod_brand");class YW extends M0{_parse(Y){let{ctx:J}=this._processInputParams(Y),Q=J.data;return this._def.type._parse({data:Q,path:J.path,parent:J})}unwrap(){return this._def.type}}class RG extends M0{_parse(Y){let{status:J,ctx:Q}=this._processInputParams(Y);if(Q.common.async)return(async()=>{let X=await this._def.in._parseAsync({data:Q.data,path:Q.path,parent:Q});if(X.status==="aborted")return Y0;if(X.status==="dirty")return J.dirty(),RQ(X.value);else return this._def.out._parseAsync({data:X.value,path:Q.path,parent:Q})})();else{let q=this._def.in._parseSync({data:Q.data,path:Q.path,parent:Q});if(q.status==="aborted")return Y0;if(q.status==="dirty")return J.dirty(),{status:"dirty",value:q.value};else return this._def.out._parseSync({data:q.value,path:Q.path,parent:Q})}}static create(Y,J){return new RG({in:Y,out:J,typeName:Q0.ZodPipeline})}}class ZX extends M0{_parse(Y){let J=this._def.innerType._parse(Y),Q=(q)=>{if(SJ(q))q.value=Object.freeze(q.value);return q};return LX(J)?J.then((q)=>Q(q)):Q(J)}unwrap(){return this._def.innerType}}ZX.create=(Y,J)=>{return new ZX({innerType:Y,typeName:Q0.ZodReadonly,...$0(J)})};function Yw(Y,J){let Q=typeof Y==="function"?Y(J):typeof Y==="string"?{message:Y}:Y;return typeof Q==="string"?{message:Q}:Q}function Gw(Y,J={},Q){if(Y)return LQ.create().superRefine((q,X)=>{let G=Y(q);if(G instanceof Promise)return G.then(($)=>{if(!$){let W=Yw(J,q),j=W.fatal??Q??!0;X.addIssue({code:"custom",...W,fatal:j})}});if(!G){let $=Yw(J,q),W=$.fatal??Q??!0;X.addIssue({code:"custom",...$,fatal:W})}return});return LQ.create()}var Bx={object:g0.lazycreate},Q0;(function(Y){Y.ZodString="ZodString",Y.ZodNumber="ZodNumber",Y.ZodNaN="ZodNaN",Y.ZodBigInt="ZodBigInt",Y.ZodBoolean="ZodBoolean",Y.ZodDate="ZodDate",Y.ZodSymbol="ZodSymbol",Y.ZodUndefined="ZodUndefined",Y.ZodNull="ZodNull",Y.ZodAny="ZodAny",Y.ZodUnknown="ZodUnknown",Y.ZodNever="ZodNever",Y.ZodVoid="ZodVoid",Y.ZodArray="ZodArray",Y.ZodObject="ZodObject",Y.ZodUnion="ZodUnion",Y.ZodDiscriminatedUnion="ZodDiscriminatedUnion",Y.ZodIntersection="ZodIntersection",Y.ZodTuple="ZodTuple",Y.ZodRecord="ZodRecord",Y.ZodMap="ZodMap",Y.ZodSet="ZodSet",Y.ZodFunction="ZodFunction",Y.ZodLazy="ZodLazy",Y.ZodLiteral="ZodLiteral",Y.ZodEnum="ZodEnum",Y.ZodEffects="ZodEffects",Y.ZodNativeEnum="ZodNativeEnum",Y.ZodOptional="ZodOptional",Y.ZodNullable="ZodNullable",Y.ZodDefault="ZodDefault",Y.ZodCatch="ZodCatch",Y.ZodPromise="ZodPromise",Y.ZodBranded="ZodBranded",Y.ZodPipeline="ZodPipeline",Y.ZodReadonly="ZodReadonly"})(Q0||(Q0={}));var Rx=(Y,J={message:`Input not instance of ${Y.name}`})=>Gw((Q)=>Q instanceof Y,J),$w=XY.create,Ww=_J.create,Vx=BG.create,Lx=kJ.create,jw=AX.create,Ex=VQ.create,wx=OG.create,Ax=CX.create,Cx=IX.create,Ix=LQ.create,Sx=vJ.create,vx=wY.create,_x=DG.create,kx=qY.create,Fx=g0.create,Px=g0.strictCreate,Tx=SX.create,Zx=e9.create,xx=vX.create,gx=AY.create,fx=UG.create,hx=HG.create,mx=EQ.create,yx=wX.create,lx=_X.create,ux=kX.create,cx=FJ.create,bx=FX.create,px=wQ.create,ox=WY.create,dx=GY.create,rx=qJ.create,sx=WY.createWithPreprocess,ix=RG.create,tx=()=>$w().optional(),nx=()=>Ww().optional(),ax=()=>jw().optional(),ex={string:(Y)=>XY.create({...Y,coerce:!0}),number:(Y)=>_J.create({...Y,coerce:!0}),boolean:(Y)=>AX.create({...Y,coerce:!0}),bigint:(Y)=>kJ.create({...Y,coerce:!0}),date:(Y)=>VQ.create({...Y,coerce:!0})};var Yg=Y0;var p8=H0.string().min(1),MM=H0.record(H0.unknown()),JW=H0.record(H0.unknown()).optional().nullable(),NM=p8,Kw=H0.string().min(3).refine((Y)=>Y.includes(":"),{message:"Network must be in CAIP-2 format (e.g., 'eip155:84532')"}),Ks=H0.union([NM,Kw]),zw=H0.object({url:p8,description:H0.string().optional(),mimeType:H0.string().optional()}),Mw=H0.object({scheme:p8,network:NM,maxAmountRequired:p8,resource:p8,description:H0.string(),mimeType:H0.string().optional(),outputSchema:MM.optional().nullable(),payTo:p8,maxTimeoutSeconds:H0.number().positive(),asset:p8,extra:JW}),Jg=H0.object({x402Version:H0.literal(1),error:H0.string().optional(),accepts:H0.array(Mw).min(1)}),Qg=H0.object({x402Version:H0.literal(1),scheme:p8,network:NM,payload:MM}),OM=H0.object({scheme:p8,network:Kw,amount:p8,asset:p8,payTo:p8,maxTimeoutSeconds:H0.number().positive(),extra:JW}),Xg=H0.object({x402Version:H0.literal(2),error:H0.string().optional(),resource:zw,accepts:H0.array(OM).min(1),extensions:JW}),VG=H0.object({x402Version:H0.literal(2),resource:zw.optional(),accepted:OM,payload:MM,extensions:JW}),zs=H0.union([Mw,OM]),Ms=H0.discriminatedUnion("x402Version",[Jg,Xg]),Ns=H0.discriminatedUnion("x402Version",[Qg,VG]);var Nw=(Y)=>{let J=Buffer.from(Y,"base64").toString("utf-8"),Q=null;try{Q=VG.parse(JSON.parse(J))}catch(q){return console.error("Failed to parse payment payload"),console.error(q),null}return Q};var QW=(Y)=>{let J=JSON.stringify({offers:Y}),Q=Buffer.from(J).toString("base64"),q=new Headers;return q.set("PAYMENT-REQUIRED",Q),q.set("Access-Control-Expose-Headers","PAYMENT-REQUIRED"),q.set("Content-Type","application/json"),console.log("Payment required"),new Response("Payment Required",{headers:q,status:402})},CY=(Y)=>{let Q=JSON.stringify({success:!1,errorMessage:"Invalid Payment",errorReason:Y,transaction:"",network:":"}),q=Buffer.from(Q).toString("base64"),X=new Headers;return X.set("PAYMENT-RESPONSE",q),console.log("Payment invalid"),new Response(`Payment Invalid: ${Y}`,{status:400,headers:X})};var LG=async(Y,J)=>{Y.status(J.status),J.headers.forEach((q,X)=>{Y.setHeader(X,q)});let Q=await J.text();Y.send(Q)},As=(Y,J)=>async(Q,q,X)=>{let G=Q.header("PAYMENT-SIGNATURE");if(!G)return LG(q,QW(J));let $=Nw(G);if(!$)return LG(q,CY("Invalid payment"));let{success:W,data:j}=WX($X).safeParse($.payload);if(!W)return LG(q,CY("Not an evvm payment"));if(!await Y.verifyPaySignature(j))return LG(q,CY("Invalid signature"));let K=await Y.settlePayment(j);if(!K)return LG(q,CY("Settlement failed"));let z={success:!0,payer:j.data.from,transaction:K,network:$.accepted.network},M=JSON.stringify(z),N=Buffer.from(M).toString("base64");q.setHeader("PAYMENT-RESPONSE",N),X()};var qg=(Y)=>{let J=atob(Y),Q=null;try{Q=VG.parse(JSON.parse(J))}catch(q){return console.error("Failed to parse payment payload"),console.error(q),null}return Q},_s=(Y,J)=>async(Q)=>{let q=Q.headers.get("PAYMENT-SIGNATURE");if(!q)return QW(J);let X=qg(q);if(!X)return CY("Invalid payment");let{success:G,data:$}=WX($X).safeParse(X.payload);if(!G)return CY("Not an evvm payment");if(!await Y.verifyPaySignature($))return CY("Invalid signature");let W=await Y.settlePayment($);if(!W)return CY("Settlement failed");let j={success:!0,payer:$.data.from,transaction:W,network:X.accepted.network},K=JSON.stringify(j),z=btoa(K);Q.headers.set("PAYMENT-RESPONSE",z)};export{As as requireEvvmPaymentExpress,QW as paymentRequiredResponse,Nw as parseHeader,CY as invalidPaymentResponse,_s as createEvvmMiddlewareNext,pZ as LocalFacilitator};
|