/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/@imtbl/sdk@1.77.7/dist/index.browser.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
!function(D,te){"object"==typeof exports&&"undefined"!=typeof module?te(exports):"function"==typeof define&&define.amd?define(["exports"],te):te((D="undefined"!=typeof globalThis?globalThis:D||self).immutable={})}(this,(function(D){"use strict";function bind$1(D,te){return function wrap(){return D.apply(te,arguments)}}const{toString:te}=Object.prototype,{getPrototypeOf:he}=Object,ye=(be=Object.create(null),D=>{const he=te.call(D);return be[he]||(be[he]=he.slice(8,-1).toLowerCase())});var be;const kindOfTest$1=D=>(D=D.toLowerCase(),te=>ye(te)===D),typeOfTest$1=D=>te=>typeof te===D,{isArray:ve}=Array,we=typeOfTest$1("undefined");const _e=kindOfTest$1("ArrayBuffer");const Pe=typeOfTest$1("string"),Ie=typeOfTest$1("function"),Re=typeOfTest$1("number"),isObject$2=D=>null!==D&&"object"==typeof D,isPlainObject$1=D=>{if("object"!==ye(D))return!1;const te=he(D);return!(null!==te&&te!==Object.prototype&&null!==Object.getPrototypeOf(te)||Symbol.toStringTag in D||Symbol.iterator in D)},ke=kindOfTest$1("Date"),Oe=kindOfTest$1("File"),xe=kindOfTest$1("Blob"),Be=kindOfTest$1("FileList"),Fe=kindOfTest$1("URLSearchParams");function forEach$2(D,te,{allOwnKeys:he=!1}={}){if(null==D)return;let ye,be;if("object"!=typeof D&&(D=[D]),ve(D))for(ye=0,be=D.length;ye<be;ye++)te.call(null,D[ye],ye,D);else{const be=he?Object.getOwnPropertyNames(D):Object.keys(D),ve=be.length;let we;for(ye=0;ye<ve;ye++)we=be[ye],te.call(null,D[we],we,D)}}function findKey$1(D,te){te=te.toLowerCase();const he=Object.keys(D);let ye,be=he.length;for(;be-- >0;)if(ye=he[be],te===ye.toLowerCase())return ye;return null}const De="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,isContextDefined$1=D=>!we(D)&&D!==De;const Le=(Ue="undefined"!=typeof Uint8Array&&he(Uint8Array),D=>Ue&&D instanceof Ue);var Ue;const qe=kindOfTest$1("HTMLFormElement"),je=(({hasOwnProperty:D})=>(te,he)=>D.call(te,he))(Object.prototype),Je=kindOfTest$1("RegExp"),reduceDescriptors$1=(D,te)=>{const he=Object.getOwnPropertyDescriptors(D),ye={};forEach$2(he,((he,be)=>{let ve;!1!==(ve=te(he,be,D))&&(ye[be]=ve||he)})),Object.defineProperties(D,ye)},et="abcdefghijklmnopqrstuvwxyz",tt="0123456789",rt={DIGIT:tt,ALPHA:et,ALPHA_DIGIT:et+et.toUpperCase()+tt};const nt=kindOfTest$1("AsyncFunction");var at={isArray:ve,isArrayBuffer:_e,isBuffer:function isBuffer$4(D){return null!==D&&!we(D)&&null!==D.constructor&&!we(D.constructor)&&Ie(D.constructor.isBuffer)&&D.constructor.isBuffer(D)},isFormData:D=>{let te;return D&&("function"==typeof FormData&&D instanceof FormData||Ie(D.append)&&("formdata"===(te=ye(D))||"object"===te&&Ie(D.toString)&&"[object FormData]"===D.toString()))},isArrayBufferView:function isArrayBufferView$1(D){let te;return te="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(D):D&&D.buffer&&_e(D.buffer),te},isString:Pe,isNumber:Re,isBoolean:D=>!0===D||!1===D,isObject:isObject$2,isPlainObject:isPlainObject$1,isUndefined:we,isDate:ke,isFile:Oe,isBlob:xe,isRegExp:Je,isFunction:Ie,isStream:D=>isObject$2(D)&&Ie(D.pipe),isURLSearchParams:Fe,isTypedArray:Le,isFileList:Be,forEach:forEach$2,merge:function merge$1(){const{caseless:D}=isContextDefined$1(this)&&this||{},te={},assignValue=(he,ye)=>{const be=D&&findKey$1(te,ye)||ye;isPlainObject$1(te[be])&&isPlainObject$1(he)?te[be]=merge$1(te[be],he):isPlainObject$1(he)?te[be]=merge$1({},he):ve(he)?te[be]=he.slice():te[be]=he};for(let D=0,te=arguments.length;D<te;D++)arguments[D]&&forEach$2(arguments[D],assignValue);return te},extend:(D,te,he,{allOwnKeys:ye}={})=>(forEach$2(te,((te,ye)=>{he&&Ie(te)?D[ye]=bind$1(te,he):D[ye]=te}),{allOwnKeys:ye}),D),trim:D=>D.trim?D.trim():D.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:D=>(65279===D.charCodeAt(0)&&(D=D.slice(1)),D),inherits:(D,te,he,ye)=>{D.prototype=Object.create(te.prototype,ye),D.prototype.constructor=D,Object.defineProperty(D,"super",{value:te.prototype}),he&&Object.assign(D.prototype,he)},toFlatObject:(D,te,ye,be)=>{let ve,we,_e;const Pe={};if(te=te||{},null==D)return te;do{for(ve=Object.getOwnPropertyNames(D),we=ve.length;we-- >0;)_e=ve[we],be&&!be(_e,D,te)||Pe[_e]||(te[_e]=D[_e],Pe[_e]=!0);D=!1!==ye&&he(D)}while(D&&(!ye||ye(D,te))&&D!==Object.prototype);return te},kindOf:ye,kindOfTest:kindOfTest$1,endsWith:(D,te,he)=>{D=String(D),(void 0===he||he>D.length)&&(he=D.length),he-=te.length;const ye=D.indexOf(te,he);return-1!==ye&&ye===he},toArray:D=>{if(!D)return null;if(ve(D))return D;let te=D.length;if(!Re(te))return null;const he=new Array(te);for(;te-- >0;)he[te]=D[te];return he},forEachEntry:(D,te)=>{const he=(D&&D[Symbol.iterator]).call(D);let ye;for(;(ye=he.next())&&!ye.done;){const he=ye.value;te.call(D,he[0],he[1])}},matchAll:(D,te)=>{let he;const ye=[];for(;null!==(he=D.exec(te));)ye.push(he);return ye},isHTMLForm:qe,hasOwnProperty:je,hasOwnProp:je,reduceDescriptors:reduceDescriptors$1,freezeMethods:D=>{reduceDescriptors$1(D,((te,he)=>{if(Ie(D)&&-1!==["arguments","caller","callee"].indexOf(he))return!1;const ye=D[he];Ie(ye)&&(te.enumerable=!1,"writable"in te?te.writable=!1:te.set||(te.set=()=>{throw Error("Can not rewrite read-only method '"+he+"'")}))}))},toObjectSet:(D,te)=>{const he={},define=D=>{D.forEach((D=>{he[D]=!0}))};return ve(D)?define(D):define(String(D).split(te)),he},toCamelCase:D=>D.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function replacer(D,te,he){return te.toUpperCase()+he})),noop:()=>{},toFiniteNumber:(D,te)=>(D=+D,Number.isFinite(D)?D:te),findKey:findKey$1,global:De,isContextDefined:isContextDefined$1,ALPHABET:rt,generateString:(D=16,te=rt.ALPHA_DIGIT)=>{let he="";const{length:ye}=te;for(;D--;)he+=te[Math.random()*ye|0];return he},isSpecCompliantForm:function isSpecCompliantForm$1(D){return!!(D&&Ie(D.append)&&"FormData"===D[Symbol.toStringTag]&&D[Symbol.iterator])},toJSONObject:D=>{const te=new Array(10),visit=(D,he)=>{if(isObject$2(D)){if(te.indexOf(D)>=0)return;if(!("toJSON"in D)){te[he]=D;const ye=ve(D)?[]:{};return forEach$2(D,((D,te)=>{const be=visit(D,he+1);!we(be)&&(ye[te]=be)})),te[he]=void 0,ye}}return D};return visit(D,0)},isAsyncFn:nt,isThenable:D=>D&&(isObject$2(D)||Ie(D))&&Ie(D.then)&&Ie(D.catch)};function AxiosError$2(D,te,he,ye,be){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=D,this.name="AxiosError",te&&(this.code=te),he&&(this.config=he),ye&&(this.request=ye),be&&(this.response=be)}at.inherits(AxiosError$2,Error,{toJSON:function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:at.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const ut=AxiosError$2.prototype,ht={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((D=>{ht[D]={value:D}})),Object.defineProperties(AxiosError$2,ht),Object.defineProperty(ut,"isAxiosError",{value:!0}),AxiosError$2.from=(D,te,he,ye,be,ve)=>{const we=Object.create(ut);return at.toFlatObject(D,we,(function filter(D){return D!==Error.prototype}),(D=>"isAxiosError"!==D)),AxiosError$2.call(we,D.message,te,he,ye,be),we.cause=D,we.name=D.name,ve&&Object.assign(we,ve),we};function isVisitable$1(D){return at.isPlainObject(D)||at.isArray(D)}function removeBrackets$1(D){return at.endsWith(D,"[]")?D.slice(0,-2):D}function renderKey$1(D,te,he){return D?D.concat(te).map((function each(D,te){return D=removeBrackets$1(D),!he&&te?"["+D+"]":D})).join(he?".":""):te}const yt=at.toFlatObject(at,{},null,(function filter(D){return/^is[A-Z]/.test(D)}));function toFormData$2(D,te,he){if(!at.isObject(D))throw new TypeError("target must be an object");te=te||new FormData;const ye=(he=at.toFlatObject(he,{metaTokens:!0,dots:!1,indexes:!1},!1,(function defined(D,te){return!at.isUndefined(te[D])}))).metaTokens,be=he.visitor||defaultVisitor,ve=he.dots,we=he.indexes,_e=(he.Blob||"undefined"!=typeof Blob&&Blob)&&at.isSpecCompliantForm(te);if(!at.isFunction(be))throw new TypeError("visitor must be a function");function convertValue(D){if(null===D)return"";if(at.isDate(D))return D.toISOString();if(!_e&&at.isBlob(D))throw new AxiosError$2("Blob is not supported. Use a Buffer instead.");return at.isArrayBuffer(D)||at.isTypedArray(D)?_e&&"function"==typeof Blob?new Blob([D]):Buffer.from(D):D}function defaultVisitor(D,he,be){let _e=D;if(D&&!be&&"object"==typeof D)if(at.endsWith(he,"{}"))he=ye?he:he.slice(0,-2),D=JSON.stringify(D);else if(at.isArray(D)&&function isFlatArray$1(D){return at.isArray(D)&&!D.some(isVisitable$1)}(D)||(at.isFileList(D)||at.endsWith(he,"[]"))&&(_e=at.toArray(D)))return he=removeBrackets$1(he),_e.forEach((function each(D,ye){!at.isUndefined(D)&&null!==D&&te.append(!0===we?renderKey$1([he],ye,ve):null===we?he:he+"[]",convertValue(D))})),!1;return!!isVisitable$1(D)||(te.append(renderKey$1(be,he,ve),convertValue(D)),!1)}const Pe=[],Ie=Object.assign(yt,{defaultVisitor:defaultVisitor,convertValue:convertValue,isVisitable:isVisitable$1});if(!at.isObject(D))throw new TypeError("data must be an object");return function build(D,he){if(!at.isUndefined(D)){if(-1!==Pe.indexOf(D))throw Error("Circular reference detected in "+he.join("."));Pe.push(D),at.forEach(D,(function each(D,ye){!0===(!(at.isUndefined(D)||null===D)&&be.call(te,D,at.isString(ye)?ye.trim():ye,he,Ie))&&build(D,he?he.concat(ye):[ye])})),Pe.pop()}}(D),te}function encode$8(D){const te={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(D).replace(/[!'()~]|%20|%00/g,(function replacer(D){return te[D]}))}function AxiosURLSearchParams$1(D,te){this._pairs=[],D&&toFormData$2(D,this,te)}const mt=AxiosURLSearchParams$1.prototype;function encode$7(D){return encodeURIComponent(D).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL$1(D,te,he){if(!te)return D;const ye=he&&he.encode||encode$7,be=he&&he.serialize;let ve;if(ve=be?be(te,he):at.isURLSearchParams(te)?te.toString():new AxiosURLSearchParams$1(te,he).toString(ye),ve){const te=D.indexOf("#");-1!==te&&(D=D.slice(0,te)),D+=(-1===D.indexOf("?")?"?":"&")+ve}return D}mt.append=function append(D,te){this._pairs.push([D,te])},mt.toString=function toString(D){const te=D?function(te){return D.call(this,te,encode$8)}:encode$8;return this._pairs.map((function each(D){return te(D[0])+"="+te(D[1])}),"").join("&")};let bt=class InterceptorManager{constructor(){this.handlers=[]}use(D,te,he){return this.handlers.push({fulfilled:D,rejected:te,synchronous:!!he&&he.synchronous,runWhen:he?he.runWhen:null}),this.handlers.length-1}eject(D){this.handlers[D]&&(this.handlers[D]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(D){at.forEach(this.handlers,(function forEachHandler(te){null!==te&&D(te)}))}};var wt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},_t={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:AxiosURLSearchParams$1,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Tt="undefined"!=typeof window&&"undefined"!=typeof document,At=(Et="undefined"!=typeof navigator&&navigator.product,Tt&&["ReactNative","NativeScript","NS"].indexOf(Et)<0);var Et;const Pt="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var St={...Object.freeze({__proto__:null,hasBrowserEnv:Tt,hasStandardBrowserEnv:At,hasStandardBrowserWebWorkerEnv:Pt}),..._t};function formDataToJSON$1(D){function buildPath(D,te,he,ye){let be=D[ye++];if("__proto__"===be)return!0;const ve=Number.isFinite(+be),we=ye>=D.length;if(be=!be&&at.isArray(he)?he.length:be,we)return at.hasOwnProp(he,be)?he[be]=[he[be],te]:he[be]=te,!ve;he[be]&&at.isObject(he[be])||(he[be]=[]);return buildPath(D,te,he[be],ye)&&at.isArray(he[be])&&(he[be]=function arrayToObject$1(D){const te={},he=Object.keys(D);let ye;const be=he.length;let ve;for(ye=0;ye<be;ye++)ve=he[ye],te[ve]=D[ve];return te}(he[be])),!ve}if(at.isFormData(D)&&at.isFunction(D.entries)){const te={};return at.forEachEntry(D,((D,he)=>{buildPath(function parsePropPath$1(D){return at.matchAll(/\w+|\[(\w*)]/g,D).map((D=>"[]"===D[0]?"":D[1]||D[0]))}(D),he,te,0)})),te}return null}const Ct={transitional:wt,adapter:["xhr","http"],transformRequest:[function transformRequest(D,te){const he=te.getContentType()||"",ye=he.indexOf("application/json")>-1,be=at.isObject(D);be&&at.isHTMLForm(D)&&(D=new FormData(D));if(at.isFormData(D))return ye&&ye?JSON.stringify(formDataToJSON$1(D)):D;if(at.isArrayBuffer(D)||at.isBuffer(D)||at.isStream(D)||at.isFile(D)||at.isBlob(D))return D;if(at.isArrayBufferView(D))return D.buffer;if(at.isURLSearchParams(D))return te.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),D.toString();let ve;if(be){if(he.indexOf("application/x-www-form-urlencoded")>-1)return function toURLEncodedForm$1(D,te){return toFormData$2(D,new St.classes.URLSearchParams,Object.assign({visitor:function(D,te,he,ye){return St.isNode&&at.isBuffer(D)?(this.append(te,D.toString("base64")),!1):ye.defaultVisitor.apply(this,arguments)}},te))}(D,this.formSerializer).toString();if((ve=at.isFileList(D))||he.indexOf("multipart/form-data")>-1){const te=this.env&&this.env.FormData;return toFormData$2(ve?{"files[]":D}:D,te&&new te,this.formSerializer)}}return be||ye?(te.setContentType("application/json",!1),function stringifySafely$1(D,te,he){if(at.isString(D))try{return(te||JSON.parse)(D),at.trim(D)}catch(D){if("SyntaxError"!==D.name)throw D}return(0,JSON.stringify)(D)}(D)):D}],transformResponse:[function transformResponse(D){const te=this.transitional||Ct.transitional,he=te&&te.forcedJSONParsing,ye="json"===this.responseType;if(D&&at.isString(D)&&(he&&!this.responseType||ye)){const he=!(te&&te.silentJSONParsing)&&ye;try{return JSON.parse(D)}catch(D){if(he){if("SyntaxError"===D.name)throw AxiosError$2.from(D,AxiosError$2.ERR_BAD_RESPONSE,this,null,this.response);throw D}}}return D}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:St.classes.FormData,Blob:St.classes.Blob},validateStatus:function validateStatus(D){return D>=200&&D<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};at.forEach(["delete","get","head","post","put","patch"],(D=>{Ct.headers[D]={}}));const kt=at.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Ot=Symbol("internals");function normalizeHeader$1(D){return D&&String(D).trim().toLowerCase()}function normalizeValue$1(D){return!1===D||null==D?D:at.isArray(D)?D.map(normalizeValue$1):String(D)}function matchHeaderValue$1(D,te,he,ye,be){return at.isFunction(ye)?ye.call(this,te,he):(be&&(te=he),at.isString(te)?at.isString(ye)?-1!==te.indexOf(ye):at.isRegExp(ye)?ye.test(te):void 0:void 0)}let xt=class AxiosHeaders{constructor(D){D&&this.set(D)}set(D,te,he){const ye=this;function setHeader(D,te,he){const be=normalizeHeader$1(te);if(!be)throw new Error("header name must be a non-empty string");const ve=at.findKey(ye,be);(!ve||void 0===ye[ve]||!0===he||void 0===he&&!1!==ye[ve])&&(ye[ve||te]=normalizeValue$1(D))}const setHeaders=(D,te)=>at.forEach(D,((D,he)=>setHeader(D,he,te)));return at.isPlainObject(D)||D instanceof this.constructor?setHeaders(D,te):at.isString(D)&&(D=D.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(D.trim())?setHeaders((D=>{const te={};let he,ye,be;return D&&D.split("\n").forEach((function parser(D){be=D.indexOf(":"),he=D.substring(0,be).trim().toLowerCase(),ye=D.substring(be+1).trim(),!he||te[he]&&kt[he]||("set-cookie"===he?te[he]?te[he].push(ye):te[he]=[ye]:te[he]=te[he]?te[he]+", "+ye:ye)})),te})(D),te):null!=D&&setHeader(te,D,he),this}get(D,te){if(D=normalizeHeader$1(D)){const he=at.findKey(this,D);if(he){const D=this[he];if(!te)return D;if(!0===te)return function parseTokens$1(D){const te=Object.create(null),he=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let ye;for(;ye=he.exec(D);)te[ye[1]]=ye[2];return te}(D);if(at.isFunction(te))return te.call(this,D,he);if(at.isRegExp(te))return te.exec(D);throw new TypeError("parser must be boolean|regexp|function")}}}has(D,te){if(D=normalizeHeader$1(D)){const he=at.findKey(this,D);return!(!he||void 0===this[he]||te&&!matchHeaderValue$1(0,this[he],he,te))}return!1}delete(D,te){const he=this;let ye=!1;function deleteHeader(D){if(D=normalizeHeader$1(D)){const be=at.findKey(he,D);!be||te&&!matchHeaderValue$1(0,he[be],be,te)||(delete he[be],ye=!0)}}return at.isArray(D)?D.forEach(deleteHeader):deleteHeader(D),ye}clear(D){const te=Object.keys(this);let he=te.length,ye=!1;for(;he--;){const be=te[he];D&&!matchHeaderValue$1(0,this[be],be,D,!0)||(delete this[be],ye=!0)}return ye}normalize(D){const te=this,he={};return at.forEach(this,((ye,be)=>{const ve=at.findKey(he,be);if(ve)return te[ve]=normalizeValue$1(ye),void delete te[be];const we=D?function formatHeader$1(D){return D.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((D,te,he)=>te.toUpperCase()+he))}(be):String(be).trim();we!==be&&delete te[be],te[we]=normalizeValue$1(ye),he[we]=!0})),this}concat(...D){return this.constructor.concat(this,...D)}toJSON(D){const te=Object.create(null);return at.forEach(this,((he,ye)=>{null!=he&&!1!==he&&(te[ye]=D&&at.isArray(he)?he.join(", "):he)})),te}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([D,te])=>D+": "+te)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(D){return D instanceof this?D:new this(D)}static concat(D,...te){const he=new this(D);return te.forEach((D=>he.set(D))),he}static accessor(D){const te=(this[Ot]=this[Ot]={accessors:{}}).accessors,he=this.prototype;function defineAccessor(D){const ye=normalizeHeader$1(D);te[ye]||(!function buildAccessors$1(D,te){const he=at.toCamelCase(" "+te);["get","set","has"].forEach((ye=>{Object.defineProperty(D,ye+he,{value:function(D,he,be){return this[ye].call(this,te,D,he,be)},configurable:!0})}))}(he,D),te[ye]=!0)}return at.isArray(D)?D.forEach(defineAccessor):defineAccessor(D),this}};function transformData$1(D,te){const he=this||Ct,ye=te||he,be=xt.from(ye.headers);let ve=ye.data;return at.forEach(D,(function transform(D){ve=D.call(he,ve,be.normalize(),te?te.status:void 0)})),be.normalize(),ve}function isCancel$2(D){return!(!D||!D.__CANCEL__)}function CanceledError$2(D,te,he){AxiosError$2.call(this,null==D?"canceled":D,AxiosError$2.ERR_CANCELED,te,he),this.name="CanceledError"}xt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),at.reduceDescriptors(xt.prototype,(({value:D},te)=>{let he=te[0].toUpperCase()+te.slice(1);return{get:()=>D,set(D){this[he]=D}}})),at.freezeMethods(xt),at.inherits(CanceledError$2,AxiosError$2,{__CANCEL__:!0});var Nt=St.hasStandardBrowserEnv?{write(D,te,he,ye,be,ve){const we=[D+"="+encodeURIComponent(te)];at.isNumber(he)&&we.push("expires="+new Date(he).toGMTString()),at.isString(ye)&&we.push("path="+ye),at.isString(be)&&we.push("domain="+be),!0===ve&&we.push("secure"),document.cookie=we.join("; ")},read(D){const te=document.cookie.match(new RegExp("(^|;\\s*)("+D+")=([^;]*)"));return te?decodeURIComponent(te[3]):null},remove(D){this.write(D,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function buildFullPath$1(D,te){return D&&!function isAbsoluteURL$1(D){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(D)}(te)?function combineURLs$1(D,te){return te?D.replace(/\/?\/$/,"")+"/"+te.replace(/^\/+/,""):D}(D,te):te}var Bt=St.hasStandardBrowserEnv?function standardBrowserEnv(){const D=/(msie|trident)/i.test(navigator.userAgent),te=document.createElement("a");let he;function resolveURL(he){let ye=he;return D&&(te.setAttribute("href",ye),ye=te.href),te.setAttribute("href",ye),{href:te.href,protocol:te.protocol?te.protocol.replace(/:$/,""):"",host:te.host,search:te.search?te.search.replace(/^\?/,""):"",hash:te.hash?te.hash.replace(/^#/,""):"",hostname:te.hostname,port:te.port,pathname:"/"===te.pathname.charAt(0)?te.pathname:"/"+te.pathname}}return he=resolveURL(window.location.href),function isURLSameOrigin(D){const te=at.isString(D)?resolveURL(D):D;return te.protocol===he.protocol&&te.host===he.host}}():function isURLSameOrigin(){return!0};function progressEventReducer$1(D,te){let he=0;const ye=function speedometer$1(D,te){D=D||10;const he=new Array(D),ye=new Array(D);let be,ve=0,we=0;return te=void 0!==te?te:1e3,function push(_e){const Pe=Date.now(),Ie=ye[we];be||(be=Pe),he[ve]=_e,ye[ve]=Pe;let Re=we,ke=0;for(;Re!==ve;)ke+=he[Re++],Re%=D;if(ve=(ve+1)%D,ve===we&&(we=(we+1)%D),Pe-be<te)return;const Oe=Ie&&Pe-Ie;return Oe?Math.round(1e3*ke/Oe):void 0}}(50,250);return be=>{const ve=be.loaded,we=be.lengthComputable?be.total:void 0,_e=ve-he,Pe=ye(_e);he=ve;const Ie={loaded:ve,total:we,progress:we?ve/we:void 0,bytes:_e,rate:Pe||void 0,estimated:Pe&&we&&ve<=we?(we-ve)/Pe:void 0,event:be};Ie[te?"download":"upload"]=!0,D(Ie)}}var Ft="undefined"!=typeof XMLHttpRequest&&function(D){return new Promise((function dispatchXhrRequest(te,he){let ye=D.data;const be=xt.from(D.headers).normalize();let ve,we,{responseType:_e,withXSRFToken:Pe}=D;function done(){D.cancelToken&&D.cancelToken.unsubscribe(ve),D.signal&&D.signal.removeEventListener("abort",ve)}if(at.isFormData(ye))if(St.hasStandardBrowserEnv||St.hasStandardBrowserWebWorkerEnv)be.setContentType(!1);else if(!1!==(we=be.getContentType())){const[D,...te]=we?we.split(";").map((D=>D.trim())).filter(Boolean):[];be.setContentType([D||"multipart/form-data",...te].join("; "))}let Ie=new XMLHttpRequest;if(D.auth){const te=D.auth.username||"",he=D.auth.password?unescape(encodeURIComponent(D.auth.password)):"";be.set("Authorization","Basic "+btoa(te+":"+he))}const Re=buildFullPath$1(D.baseURL,D.url);function onloadend(){if(!Ie)return;const ye=xt.from("getAllResponseHeaders"in Ie&&Ie.getAllResponseHeaders());!function settle$1(D,te,he){const ye=he.config.validateStatus;he.status&&ye&&!ye(he.status)?te(new AxiosError$2("Request failed with status code "+he.status,[AxiosError$2.ERR_BAD_REQUEST,AxiosError$2.ERR_BAD_RESPONSE][Math.floor(he.status/100)-4],he.config,he.request,he)):D(he)}((function _resolve(D){te(D),done()}),(function _reject(D){he(D),done()}),{data:_e&&"text"!==_e&&"json"!==_e?Ie.response:Ie.responseText,status:Ie.status,statusText:Ie.statusText,headers:ye,config:D,request:Ie}),Ie=null}if(Ie.open(D.method.toUpperCase(),buildURL$1(Re,D.params,D.paramsSerializer),!0),Ie.timeout=D.timeout,"onloadend"in Ie?Ie.onloadend=onloadend:Ie.onreadystatechange=function handleLoad(){Ie&&4===Ie.readyState&&(0!==Ie.status||Ie.responseURL&&0===Ie.responseURL.indexOf("file:"))&&setTimeout(onloadend)},Ie.onabort=function handleAbort(){Ie&&(he(new AxiosError$2("Request aborted",AxiosError$2.ECONNABORTED,D,Ie)),Ie=null)},Ie.onerror=function handleError(){he(new AxiosError$2("Network Error",AxiosError$2.ERR_NETWORK,D,Ie)),Ie=null},Ie.ontimeout=function handleTimeout(){let te=D.timeout?"timeout of "+D.timeout+"ms exceeded":"timeout exceeded";const ye=D.transitional||wt;D.timeoutErrorMessage&&(te=D.timeoutErrorMessage),he(new AxiosError$2(te,ye.clarifyTimeoutError?AxiosError$2.ETIMEDOUT:AxiosError$2.ECONNABORTED,D,Ie)),Ie=null},St.hasStandardBrowserEnv&&(Pe&&at.isFunction(Pe)&&(Pe=Pe(D)),Pe||!1!==Pe&&Bt(Re))){const te=D.xsrfHeaderName&&D.xsrfCookieName&&Nt.read(D.xsrfCookieName);te&&be.set(D.xsrfHeaderName,te)}void 0===ye&&be.setContentType(null),"setRequestHeader"in Ie&&at.forEach(be.toJSON(),(function setRequestHeader(D,te){Ie.setRequestHeader(te,D)})),at.isUndefined(D.withCredentials)||(Ie.withCredentials=!!D.withCredentials),_e&&"json"!==_e&&(Ie.responseType=D.responseType),"function"==typeof D.onDownloadProgress&&Ie.addEventListener("progress",progressEventReducer$1(D.onDownloadProgress,!0)),"function"==typeof D.onUploadProgress&&Ie.upload&&Ie.upload.addEventListener("progress",progressEventReducer$1(D.onUploadProgress)),(D.cancelToken||D.signal)&&(ve=te=>{Ie&&(he(!te||te.type?new CanceledError$2(null,D,Ie):te),Ie.abort(),Ie=null)},D.cancelToken&&D.cancelToken.subscribe(ve),D.signal&&(D.signal.aborted?ve():D.signal.addEventListener("abort",ve)));const ke=function parseProtocol$1(D){const te=/^([-+\w]{1,25})(:?\/\/|:)/.exec(D);return te&&te[1]||""}(Re);ke&&-1===St.protocols.indexOf(ke)?he(new AxiosError$2("Unsupported protocol "+ke+":",AxiosError$2.ERR_BAD_REQUEST,D)):Ie.send(ye||null)}))};const Lt={http:null,xhr:Ft};at.forEach(Lt,((D,te)=>{if(D){try{Object.defineProperty(D,"name",{value:te})}catch(D){}Object.defineProperty(D,"adapterName",{value:te})}}));const renderReason$1=D=>`- ${D}`,isResolvedHandle$1=D=>at.isFunction(D)||null===D||!1===D;var adapters$1_getAdapter=D=>{D=at.isArray(D)?D:[D];const{length:te}=D;let he,ye;const be={};for(let ve=0;ve<te;ve++){let te;if(he=D[ve],ye=he,!isResolvedHandle$1(he)&&(ye=Lt[(te=String(he)).toLowerCase()],void 0===ye))throw new AxiosError$2(`Unknown adapter '${te}'`);if(ye)break;be[te||"#"+ve]=ye}if(!ye){const D=Object.entries(be).map((([D,te])=>`adapter ${D} `+(!1===te?"is not supported by the environment":"is not available in the build")));throw new AxiosError$2("There is no suitable adapter to dispatch the request "+(te?D.length>1?"since :\n"+D.map(renderReason$1).join("\n"):" "+renderReason$1(D[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return ye};function throwIfCancellationRequested$1(D){if(D.cancelToken&&D.cancelToken.throwIfRequested(),D.signal&&D.signal.aborted)throw new CanceledError$2(null,D)}function dispatchRequest$1(D){throwIfCancellationRequested$1(D),D.headers=xt.from(D.headers),D.data=transformData$1.call(D,D.transformRequest),-1!==["post","put","patch"].indexOf(D.method)&&D.headers.setContentType("application/x-www-form-urlencoded",!1);return adapters$1_getAdapter(D.adapter||Ct.adapter)(D).then((function onAdapterResolution(te){return throwIfCancellationRequested$1(D),te.data=transformData$1.call(D,D.transformResponse,te),te.headers=xt.from(te.headers),te}),(function onAdapterRejection(te){return isCancel$2(te)||(throwIfCancellationRequested$1(D),te&&te.response&&(te.response.data=transformData$1.call(D,D.transformResponse,te.response),te.response.headers=xt.from(te.response.headers))),Promise.reject(te)}))}const headersToObject$1=D=>D instanceof xt?D.toJSON():D;function mergeConfig$2(D,te){te=te||{};const he={};function getMergedValue(D,te,he){return at.isPlainObject(D)&&at.isPlainObject(te)?at.merge.call({caseless:he},D,te):at.isPlainObject(te)?at.merge({},te):at.isArray(te)?te.slice():te}function mergeDeepProperties(D,te,he){return at.isUndefined(te)?at.isUndefined(D)?void 0:getMergedValue(void 0,D,he):getMergedValue(D,te,he)}function valueFromConfig2(D,te){if(!at.isUndefined(te))return getMergedValue(void 0,te)}function defaultToConfig2(D,te){return at.isUndefined(te)?at.isUndefined(D)?void 0:getMergedValue(void 0,D):getMergedValue(void 0,te)}function mergeDirectKeys(he,ye,be){return be in te?getMergedValue(he,ye):be in D?getMergedValue(void 0,he):void 0}const ye={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,withXSRFToken:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys,headers:(D,te)=>mergeDeepProperties(headersToObject$1(D),headersToObject$1(te),!0)};return at.forEach(Object.keys(Object.assign({},D,te)),(function computeConfigValue(be){const ve=ye[be]||mergeDeepProperties,we=ve(D[be],te[be],be);at.isUndefined(we)&&ve!==mergeDirectKeys||(he[be]=we)})),he}const Ut="1.6.5",$t={};["object","boolean","number","function","string","symbol"].forEach(((D,te)=>{$t[D]=function validator(he){return typeof he===D||"a"+(te<1?"n ":" ")+D}}));const qt={};$t.transitional=function transitional(D,te,he){function formatMessage(D,te){return"[Axios v1.6.5] Transitional option '"+D+"'"+te+(he?". "+he:"")}return(he,ye,be)=>{if(!1===D)throw new AxiosError$2(formatMessage(ye," has been removed"+(te?" in "+te:"")),AxiosError$2.ERR_DEPRECATED);return te&&!qt[ye]&&(qt[ye]=!0,console.warn(formatMessage(ye," has been deprecated since v"+te+" and will be removed in the near future"))),!D||D(he,ye,be)}};var Gt={assertOptions:function assertOptions$1(D,te,he){if("object"!=typeof D)throw new AxiosError$2("options must be an object",AxiosError$2.ERR_BAD_OPTION_VALUE);const ye=Object.keys(D);let be=ye.length;for(;be-- >0;){const ve=ye[be],we=te[ve];if(we){const te=D[ve],he=void 0===te||we(te,ve,D);if(!0!==he)throw new AxiosError$2("option "+ve+" must be "+he,AxiosError$2.ERR_BAD_OPTION_VALUE)}else if(!0!==he)throw new AxiosError$2("Unknown option "+ve,AxiosError$2.ERR_BAD_OPTION)}},validators:$t};const zt=Gt.validators;let Wt=class Axios{constructor(D){this.defaults=D,this.interceptors={request:new bt,response:new bt}}request(D,te){"string"==typeof D?(te=te||{}).url=D:te=D||{},te=mergeConfig$2(this.defaults,te);const{transitional:he,paramsSerializer:ye,headers:be}=te;void 0!==he&&Gt.assertOptions(he,{silentJSONParsing:zt.transitional(zt.boolean),forcedJSONParsing:zt.transitional(zt.boolean),clarifyTimeoutError:zt.transitional(zt.boolean)},!1),null!=ye&&(at.isFunction(ye)?te.paramsSerializer={serialize:ye}:Gt.assertOptions(ye,{encode:zt.function,serialize:zt.function},!0)),te.method=(te.method||this.defaults.method||"get").toLowerCase();let ve=be&&at.merge(be.common,be[te.method]);be&&at.forEach(["delete","get","head","post","put","patch","common"],(D=>{delete be[D]})),te.headers=xt.concat(ve,be);const we=[];let _e=!0;this.interceptors.request.forEach((function unshiftRequestInterceptors(D){"function"==typeof D.runWhen&&!1===D.runWhen(te)||(_e=_e&&D.synchronous,we.unshift(D.fulfilled,D.rejected))}));const Pe=[];let Ie;this.interceptors.response.forEach((function pushResponseInterceptors(D){Pe.push(D.fulfilled,D.rejected)}));let Re,ke=0;if(!_e){const D=[dispatchRequest$1.bind(this),void 0];for(D.unshift.apply(D,we),D.push.apply(D,Pe),Re=D.length,Ie=Promise.resolve(te);ke<Re;)Ie=Ie.then(D[ke++],D[ke++]);return Ie}Re=we.length;let Oe=te;for(ke=0;ke<Re;){const D=we[ke++],te=we[ke++];try{Oe=D(Oe)}catch(D){te.call(this,D);break}}try{Ie=dispatchRequest$1.call(this,Oe)}catch(D){return Promise.reject(D)}for(ke=0,Re=Pe.length;ke<Re;)Ie=Ie.then(Pe[ke++],Pe[ke++]);return Ie}getUri(D){return buildURL$1(buildFullPath$1((D=mergeConfig$2(this.defaults,D)).baseURL,D.url),D.params,D.paramsSerializer)}};at.forEach(["delete","get","head","options"],(function forEachMethodNoData(D){Wt.prototype[D]=function(te,he){return this.request(mergeConfig$2(he||{},{method:D,url:te,data:(he||{}).data}))}})),at.forEach(["post","put","patch"],(function forEachMethodWithData(D){function generateHTTPMethod(te){return function httpMethod(he,ye,be){return this.request(mergeConfig$2(be||{},{method:D,headers:te?{"Content-Type":"multipart/form-data"}:{},url:he,data:ye}))}}Wt.prototype[D]=generateHTTPMethod(),Wt.prototype[D+"Form"]=generateHTTPMethod(!0)}));const Vt={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Vt).forEach((([D,te])=>{Vt[te]=D}));const Kt=function createInstance$1(D){const te=new Wt(D),he=bind$1(Wt.prototype.request,te);return at.extend(he,Wt.prototype,te,{allOwnKeys:!0}),at.extend(he,te,null,{allOwnKeys:!0}),he.create=function create(te){return createInstance$1(mergeConfig$2(D,te))},he}(Ct);Kt.Axios=Wt,Kt.CanceledError=CanceledError$2,Kt.CancelToken=class CancelToken{constructor(D){if("function"!=typeof D)throw new TypeError("executor must be a function.");let te;this.promise=new Promise((function promiseExecutor(D){te=D}));const he=this;this.promise.then((D=>{if(!he._listeners)return;let te=he._listeners.length;for(;te-- >0;)he._listeners[te](D);he._listeners=null})),this.promise.then=D=>{let te;const ye=new Promise((D=>{he.subscribe(D),te=D})).then(D);return ye.cancel=function reject(){he.unsubscribe(te)},ye},D((function cancel(D,ye,be){he.reason||(he.reason=new CanceledError$2(D,ye,be),te(he.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(D){this.reason?D(this.reason):this._listeners?this._listeners.push(D):this._listeners=[D]}unsubscribe(D){if(!this._listeners)return;const te=this._listeners.indexOf(D);-1!==te&&this._listeners.splice(te,1)}static source(){let D;const te=new CancelToken((function executor(te){D=te}));return{token:te,cancel:D}}},Kt.isCancel=isCancel$2,Kt.VERSION=Ut,Kt.toFormData=toFormData$2,Kt.AxiosError=AxiosError$2,Kt.Cancel=Kt.CanceledError,Kt.all=function all(D){return Promise.all(D)},Kt.spread=function spread$2(D){return function wrap(te){return D.apply(null,te)}},Kt.isAxiosError=function isAxiosError$2(D){return at.isObject(D)&&!0===D.isAxiosError},Kt.mergeConfig=mergeConfig$2,Kt.AxiosHeaders=xt,Kt.formToJSON=D=>formDataToJSON$1(at.isHTMLForm(D)?new FormData(D):D),Kt.getAdapter=adapters$1_getAdapter,Kt.HttpStatusCode=Vt,Kt.default=Kt;const{Axios:Jt,AxiosError:Zt,CanceledError:rr,isCancel:cr,CancelToken:dr,VERSION:kr,all:$r,Cancel:qr,isAxiosError:jr,spread:Hr,toFormData:zr,AxiosHeaders:Vr,HttpStatusCode:Jr,formToJSON:Xr,getAdapter:Qr,mergeConfig:Zr}=Kt;
/**
   * tiny-lru
   *
   * @copyright 2023 Jason Mulligan <jason.mulligan@avoidwork.com>
   * @license BSD-3-Clause
   * @version 11.2.5
   */function lru$1(D=1e3,te=0,he=!1){if(isNaN(D)||D<0)throw new TypeError("Invalid max value");if(isNaN(te)||te<0)throw new TypeError("Invalid ttl value");if("boolean"!=typeof he)throw new TypeError("Invalid resetTtl value");return new class LRU{constructor(D=0,te=0,he=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=D,this.resetTtl=he,this.size=0,this.ttl=te}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(D){if(this.has(D)){const te=this.items[D];delete this.items[D],this.size--,null!==te.prev&&(te.prev.next=te.next),null!==te.next&&(te.next.prev=te.prev),this.first===te&&(this.first=te.next),this.last===te&&(this.last=te.prev)}return this}entries(D=this.keys()){return D.map((D=>[D,this.get(D)]))}evict(D=!1){if(D||this.size>0){const D=this.first;delete this.items[D.key],0==--this.size?(this.first=null,this.last=null):(this.first=D.next,this.first.prev=null)}return this}expiresAt(D){let te;return this.has(D)&&(te=this.items[D].expiry),te}get(D){let te;if(this.has(D)){const he=this.items[D];this.ttl>0&&he.expiry<=Date.now()?this.delete(D):(te=he.value,this.set(D,te,!0))}return te}has(D){return D in this.items}keys(){const D=[];let te=this.first;for(;null!==te;)D.push(te.key),te=te.next;return D}set(D,te,he=!1,ye=this.resetTtl){let be;if(he||this.has(D)){if(be=this.items[D],be.value=te,!1===he&&ye&&(be.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==be){const D=this.last,te=be.next,he=be.prev;this.first===be&&(this.first=be.next),be.next=null,be.prev=this.last,D.next=be,null!==he&&(he.next=te),null!==te&&(te.prev=he)}}else this.max>0&&this.size===this.max&&this.evict(!0),be=this.items[D]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:D,prev:this.last,next:null,value:te},1==++this.size?this.first=be:this.last.next=be;return this.last=be,this}values(D=this.keys()){return D.map((D=>this.get(D)))}}(D,te,he)}const en={max:1e3},memorise$1=(D,te={})=>{const{cache:he,cacheKeyResolver:ye=defaultGenCacheKey$1,onHit:be,lruOptions:ve={}}=te,we={...en,...ve},_e=he||lru$1(we.max,we.ttl);function returnFn(...te){const he=ye(...te),ve=_e.get(he);if(_e.has(he))return be&&be(he,ve,_e),ve;const we=D.apply(this,te);return _e.set(he,we),we}return returnFn._cache=_e,returnFn},defaultGenCacheKey$1=(...D)=>0===D.length?"no-args":D.map((D=>void 0===D?"undefined":null===D?"null":Array.isArray(D)?`[${defaultGenCacheKey$1(...D)}]`:"object"==typeof D?`{${defaultGenCacheKey$1(...sortedObjectEntries$1(D))}}`:JSON.stringify(D))).join(","),sortedObjectEntries$1=D=>Object.entries(D).sort(((D,te)=>D[0]<te[0]?-1:1));var rn="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getDefaultExportFromCjs$1(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function getAugmentedNamespace$1(D){if(D.__esModule)return D;var te=D.default;if("function"==typeof te){var he=function a(){return this instanceof a?Reflect.construct(te,arguments,this.constructor):te.apply(this,arguments)};he.prototype=te.prototype}else he={};return Object.defineProperty(he,"__esModule",{value:!0}),Object.keys(D).forEach((function(te){var ye=Object.getOwnPropertyDescriptor(D,te);Object.defineProperty(he,te,ye.get?ye:{enumerable:!0,get:function(){return D[te]}})})),he}var nn={};Object.defineProperty(nn,"__esModule",{value:!0}),nn.clearGlobalNamespace=on=nn.getGlobalisedValue=void 0;const sn={},getGlobalObject$1=()=>"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:sn,createGlobalisedKey$1=D=>`globalise__singleton__${D}`,getGlobalScopedObject$1=D=>{const te=getGlobalObject$1(),he=createGlobalisedKey$1(D);return te[he]||(te[he]={}),te[he]};var on=nn.getGlobalisedValue=(D,te,he)=>{((D,te)=>{if("string"!=typeof D)throw"Invalid namespace key";if("string"!=typeof te)throw"Invalid item key"})(D,te);const ye=((D,te)=>getGlobalScopedObject$1(D)[te]||void 0)(D,te);return void 0!==ye?ye:(((D,te,he)=>{getGlobalScopedObject$1(D)[te]=he})(D,te,he),he)};nn.clearGlobalNamespace=D=>{const te=getGlobalObject$1(),he=createGlobalisedKey$1(D);void 0!==te[he]&&delete te[he]};const isNode$1=()=>"undefined"==typeof window,isBrowser$1=()=>!isNode$1(),hasLocalstorage$1=()=>isBrowser$1()&&window.localStorage,genKey$1=D=>`__IMX-${D}`;function getItem$2(D){if(hasLocalstorage$1())return(D=>{if(null!==D)try{return JSON.parse(D)}catch(te){return D}})(window.localStorage.getItem(genKey$1(D)))}const setItem$2=(D,te)=>!!hasLocalstorage$1()&&(window.localStorage.setItem(genKey$1(D),(D=>"string"==typeof D?D:JSON.stringify(D))(te)),!0);var yn=Object.freeze({__proto__:null,deleteItem:D=>!!hasLocalstorage$1()&&(window.localStorage.removeItem(genKey$1(D)),!0),getItem:getItem$2,setItem:setItem$2});let bn=0;const getCorrectedTime$1=()=>{const D=(new Date).getTime()+bn;return new Date(D).toISOString()};var wn;!function(D){D.RUNTIME_ID="rid",D.PASSPORT_CLIENT_ID="passportClientId",D.ENVIRONMENT="env",D.PUBLISHABLE_API_KEY="pak",D.IDENTITY="uid",D.DOMAIN="domain",D.SDK_VERSION="sdkVersion"}(wn||(wn={}));async function post$1(D,te){const he=Kt.create({baseURL:"https://api.immutable.com"}),ye=JSON.stringify(te),be={payload:Buffer.from(ye).toString("base64")};return(await he.post(D,be)).data}var _n;let Cn,Rn;!function(D){D.EVENTS="metrics-events",D.RUNTIME="metrics-runtime"}(_n||(_n={}));Cn=getItem$2(_n.EVENTS)||[],Rn=getItem$2(_n.RUNTIME)||{};const storeDetail$1=(D,te)=>{Rn={...Rn,[D]:te},setItem$2(_n.RUNTIME,Rn)},getDetail$1$1=D=>{if(void 0!==Rn[D])return Rn[D]},flattenProperties$1=D=>{const te=[];return Object.entries(D).forEach((([D,he])=>{"string"!=typeof D&&"string"!=typeof he&&"number"!=typeof he&&"boolean"!=typeof he||te.push([D,he.toString()])})),te},kn="1.77.7",runtimeHost$1=()=>{if(isNode$1())return"";let D;try{window.self!==window.top&&(D=isNode$1()?"":window.location.ancestorOrigins&&window.location.ancestorOrigins.length>0?new URL(window.location.ancestorOrigins[0]).hostname:document.referrer?new URL(window.document.referrer).hostname:"")}catch(D){}return D||(D=window.location.hostname),D};let Mn=!1;const initialise$2=async()=>{Mn=!0;try{const D=flattenProperties$1((()=>{if(storeDetail$1(wn.SDK_VERSION,kn),isNode$1())return{browser:"nodejs",sdkVersion:kn};const D=runtimeHost$1();return D&&storeDetail$1(wn.DOMAIN,D),{sdkVersion:kn,browser:window.navigator.userAgent,domain:D,tz:Intl.DateTimeFormat().resolvedOptions().timeZone,screen:`${window.screen.width}x${window.screen.height}`}})()),te=getDetail$1$1(wn.RUNTIME_ID),he={version:1,data:{runtimeDetails:D,runtimeId:te,uId:getDetail$1$1(wn.IDENTITY)}},ye=await post$1("/v1/sdk/initialise",he),{runtimeId:be,sTime:ve}=ye;storeDetail$1(wn.RUNTIME_ID,be),(D=>{const te=1e3*parseInt(D,10),he=new Date(te),ye=new Date;bn=he.getTime()-ye.getTime()})(ve)}catch(D){Mn=!1}};function errorBoundary$2(D,te){return(...he)=>{try{const ye=D(...he);return ye instanceof Promise?ye.catch((()=>te)):ye}catch(D){return te}}}const Fn=errorBoundary$2((function isTestEnvironmentFn$1(){return isBrowser$1(),!1}),!1),Dn="imtbl__metrics",getGlobalisedValue$2=(D,te)=>on(Dn,D,te),Ln=errorBoundary$2(((D,te)=>{const he=memorise$1(te,{lruOptions:{ttl:5e3,max:1e3}});return on(Dn,D,he)})("track",((D,te,he)=>{(D=>{Cn.push(D),setItem$2(_n.EVENTS,Cn)})({event:`${D}.${te}`,time:getCorrectedTime$1(),...he&&{properties:flattenProperties$1(he)}})}))),Un=errorBoundary$2((async()=>{if(!1===Mn)return void await initialise$2();const D=Cn;if(0===D.length)return;const te=D.length,he={version:1,data:{events:D,details:Rn}};var ye;await post$1("/v1/sdk/metrics",he)instanceof Error||(ye=te,Cn=Cn.slice(ye),setItem$2(_n.EVENTS,Cn))})),flushPoll$1=async()=>{await Un(),setTimeout(flushPoll$1,5e3)};let $n=!1;const startFlushing$1=()=>{$n||($n=!0,flushPoll$1())};Fn()||errorBoundary$2(getGlobalisedValue$2("startFlushing",startFlushing$1))();const trackDuration=(D,te,he,ye)=>Ln(D,te,{...ye||{},duration:Math.round(he)}),qn=errorBoundary$2(((D,te,he)=>{const ye=(()=>{const s4=()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1);return`${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`})(),be=Date.now();let ve=0,we=0,_e={};const mergeFlowProps=(...D)=>((...D)=>{if(!D.some((D=>!!D)))return{};let te={};return D.forEach((D=>{D&&(te={...te,...D})})),te})(_e,...D,{flowId:ye,flowName:te});_e=mergeFlowProps(he);const addEvent=(he,ye)=>{const be=((D,te)=>`${D}_${(D=>D.replace(/[^a-zA-Z0-9\s\-_]/g,""))(te)}`)(te,he);let _e=0;const Pe=performance.now();ve>0&&(_e=Pe-we);const Ie=mergeFlowProps(ye,{flowEventName:he,flowStep:ve});trackDuration(D,be,_e,Ie),ve++,we=Pe};return addEvent("Start"),{details:{moduleName:D,flowName:te,flowId:ye,flowStartTime:be},addEvent:errorBoundary$2(addEvent),addFlowProperties:errorBoundary$2((D=>{D&&(_e=mergeFlowProps(D))}))}})),Gn=errorBoundary$2(((D,te,he,ye)=>{const{message:be}=he;let ve=he.stack||"";const{cause:we}=he;we instanceof Error&&(ve=`${ve} \nCause: ${we.message}\n ${we.stack}`),Ln(D,`trackError_${te}`,{...ye||{},errorMessage:be,errorStack:ve,isTrackError:!0})})),Wn=errorBoundary$2((D=>{const te=(D=>{if(D.passportId)return`passport:${D.passportId.toLowerCase()}`;if(D.ethAddress)return`ethAddress:${D.ethAddress.toLowerCase()}`;throw new Error("invalid_identity")})(D);te&&(storeDetail$1(wn.IDENTITY,te),Ln("metrics","identify",D.traits))})),Kn=errorBoundary$2(getGlobalisedValue$2("setEnvironment",(D=>{storeDetail$1(wn.ENVIRONMENT,D)}))),Jn=errorBoundary$2(getGlobalisedValue$2("setPassportClientId",(D=>{storeDetail$1(wn.PASSPORT_CLIENT_ID,D)}))),Yn=errorBoundary$2(getGlobalisedValue$2("setPublishableApiKey",(D=>{storeDetail$1(wn.PUBLISHABLE_API_KEY,D)}))),ea=errorBoundary$2(getGlobalisedValue$2("getDetail",getDetail$1$1)),ta={localStorage:yn};var ra,na;!function(D){D.PRODUCTION="production",D.SANDBOX="sandbox"}(ra||(ra={})),function(D){D.API_KEY="x-immutable-api-key",D.PUBLISHABLE_KEY="x-immutable-publishable-key",D.RATE_LIMITING_KEY="x-api-key"}(na||(na={}));class ImmutableConfiguration{environment;rateLimitingKey;apiKey;publishableKey;constructor(D){this.environment=D.environment,this.publishableKey=D.publishableKey,this.apiKey=D.apiKey,this.rateLimitingKey=D.rateLimitingKey,Kn(D.environment),Ln("config","created_imtbl_config")}}const addKeysToHeadersOverride=(D,te)=>{if(!D||!D.apiKey&&!D.publishableKey&&!D.rateLimitingKey)return te;const he={};return D.apiKey&&(he[na.API_KEY]=D.apiKey),D.publishableKey&&(he[na.PUBLISHABLE_KEY]=D.publishableKey,Yn(D.publishableKey)),D.rateLimitingKey&&(he[na.RATE_LIMITING_KEY]=D.rateLimitingKey),te&&te.headers?{...te,headers:{...he,...te.headers}}:{...te,headers:he}};var aa=Object.freeze({__proto__:null,get Environment(){return ra},ImmutableConfiguration:ImmutableConfiguration,get KeyHeaders(){return na},addKeysToHeadersOverride:addKeysToHeadersOverride});const ia="https://api.sandbox.x.immutable.com".replace(/\/+$/,"");let sa=class BaseAPI{basePath;axios;configuration;constructor(D,te=ia,he=Kt){this.basePath=te,this.axios=he,D&&(this.configuration=D,this.basePath=D.basePath||this.basePath)}},oa=class RequiredError extends Error{field;name="RequiredError";constructor(D,te){super(te),this.field=D}};const ca="https://example.com",assertParamExists$1=function(D,te,he){if(null==he)throw new oa(te,`Required parameter ${te} was null or undefined when calling ${D}.`)};function setFlattenedQueryParams$1(D,te,he=""){"object"==typeof te?Array.isArray(te)?te.forEach((te=>setFlattenedQueryParams$1(D,te,he))):Object.keys(te).forEach((ye=>setFlattenedQueryParams$1(D,te[ye],`${he}${""!==he?".":""}${ye}`))):D.has(he)?D.append(he,te):D.set(he,te)}const setSearchParams$1=function(D,...te){const he=new URLSearchParams(D.search);setFlattenedQueryParams$1(he,te),D.search=he.toString()},serializeDataIfNeeded$1=function(D,te,he){const ye="string"!=typeof D;return(ye&&he&&he.isJsonMime?he.isJsonMime(te.headers["Content-Type"]):ye)?JSON.stringify(void 0!==D?D:{}):D||""},toPathString$1=function(D){return D.pathname+D.search+D.hash},createRequestFunction$1=function(D,te,he,ye){return(be=te,ve=he)=>{const we={...D.options,url:(ye?.basePath||ve)+D.url};return be.request(we)}},AssetsApiAxiosParamCreator=function(D){return{getAsset:async(te,he,ye,be={})=>{assertParamExists$1("getAsset","tokenAddress",te),assertParamExists$1("getAsset","tokenId",he);const ve="/v1/assets/{token_address}/{token_id}".replace("{token_address}",encodeURIComponent(String(te))).replace("{token_id}",encodeURIComponent(String(he))),we=new URL(ve,ca);let _e;D&&(_e=D.baseOptions);const Pe={method:"GET",..._e,...be},Ie={};void 0!==ye&&(Ie.include_fees=ye),setSearchParams$1(we,Ie);let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Re,...be.headers},{url:toPathString$1(we),options:Pe}},listAssets:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le={})=>{const Ue=new URL("/v1/assets",ca);let qe;D&&(qe=D.baseOptions);const je={method:"GET",...qe,...Le},Je={};void 0!==te&&(Je.page_size=te),void 0!==he&&(Je.cursor=he),void 0!==ye&&(Je.order_by=ye),void 0!==be&&(Je.direction=be),void 0!==ve&&(Je.user=ve),void 0!==we&&(Je.status=we),void 0!==_e&&(Je.name=_e),void 0!==Pe&&(Je.metadata=Pe),void 0!==Ie&&(Je.sell_orders=Ie),void 0!==Re&&(Je.buy_orders=Re),void 0!==ke&&(Je.include_fees=ke),void 0!==Oe&&(Je.collection=Oe),void 0!==xe&&(Je.updated_min_timestamp=xe),void 0!==Be&&(Je.updated_max_timestamp=Be),void 0!==Fe&&(Je.auxiliary_fee_percentages=Fe),void 0!==De&&(Je.auxiliary_fee_recipients=De),setSearchParams$1(Ue,Je);let et=qe&&qe.headers?qe.headers:{};return je.headers={...et,...Le.headers},{url:toPathString$1(Ue),options:je}}}},AssetsApiFp=function(D){const te=AssetsApiAxiosParamCreator(D);return{async getAsset(he,ye,be,ve){const we=await te.getAsset(he,ye,be,ve);return createRequestFunction$1(we,Kt,ia,D)},async listAssets(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue){const qe=await te.listAssets(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue);return createRequestFunction$1(qe,Kt,ia,D)}}};let da=class AssetsApi extends sa{getAsset(D,te){return AssetsApiFp(this.configuration).getAsset(D.tokenAddress,D.tokenId,D.includeFees,te).then((D=>D(this.axios,this.basePath)))}listAssets(D={},te){return AssetsApiFp(this.configuration).listAssets(D.pageSize,D.cursor,D.orderBy,D.direction,D.user,D.status,D.name,D.metadata,D.sellOrders,D.buyOrders,D.includeFees,D.collection,D.updatedMinTimestamp,D.updatedMaxTimestamp,D.auxiliaryFeePercentages,D.auxiliaryFeeRecipients,te).then((D=>D(this.axios,this.basePath)))}};const BalancesApiAxiosParamCreator=function(D){return{getBalance:async(te,he,ye={})=>{assertParamExists$1("getBalance","owner",te),assertParamExists$1("getBalance","address",he);const be="/v2/balances/{owner}/{address}".replace("{owner}",encodeURIComponent(String(te))).replace("{address}",encodeURIComponent(String(he))),ve=new URL(be,ca);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams$1(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString$1(ve),options:_e}},listBalances:async(te,he,ye,be,ve,we={})=>{assertParamExists$1("listBalances","owner",te);const _e="/v2/balances/{owner}".replace("{owner}",encodeURIComponent(String(te))),Pe=new URL(_e,ca);let Ie;D&&(Ie=D.baseOptions);const Re={method:"GET",...Ie,...we},ke={};void 0!==he&&(ke.page_size=he),void 0!==ye&&(ke.cursor=ye),void 0!==be&&(ke.order_by=be),void 0!==ve&&(ke.direction=ve),setSearchParams$1(Pe,ke);let Oe=Ie&&Ie.headers?Ie.headers:{};return Re.headers={...Oe,...we.headers},{url:toPathString$1(Pe),options:Re}}}},BalancesApiFp=function(D){const te=BalancesApiAxiosParamCreator(D);return{async getBalance(he,ye,be){const ve=await te.getBalance(he,ye,be);return createRequestFunction$1(ve,Kt,ia,D)},async listBalances(he,ye,be,ve,we,_e){const Pe=await te.listBalances(he,ye,be,ve,we,_e);return createRequestFunction$1(Pe,Kt,ia,D)}}};let ua=class BalancesApi extends sa{getBalance(D,te){return BalancesApiFp(this.configuration).getBalance(D.owner,D.address,te).then((D=>D(this.axios,this.basePath)))}listBalances(D,te){return BalancesApiFp(this.configuration).listBalances(D.owner,D.pageSize,D.cursor,D.orderBy,D.direction,te).then((D=>D(this.axios,this.basePath)))}};const CollectionsApiAxiosParamCreator$1=function(D){return{createCollection:async(te,he,ye,be,ve={})=>{assertParamExists$1("createCollection","iMXSignature",te),assertParamExists$1("createCollection","iMXTimestamp",he),assertParamExists$1("createCollection","createCollectionRequest",ye);const we=new URL("/v1/collections",ca);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...ve},Ie={};null!=te&&(Ie["IMX-Signature"]=String(te)),null!=he&&(Ie["IMX-Timestamp"]=String(he)),null!=be&&(Ie["x-immutable-api-key"]=String(be)),Ie["Content-Type"]="application/json",setSearchParams$1(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...ve.headers},Pe.data=serializeDataIfNeeded$1(ye,Pe,D),{url:toPathString$1(we),options:Pe}},getCollection:async(te,he={})=>{assertParamExists$1("getCollection","address",te);const ye="/v1/collections/{address}".replace("{address}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},listCollectionFilters:async(te,he,ye,be={})=>{assertParamExists$1("listCollectionFilters","address",te);const ve="/v1/collections/{address}/filters".replace("{address}",encodeURIComponent(String(te))),we=new URL(ve,ca);let _e;D&&(_e=D.baseOptions);const Pe={method:"GET",..._e,...be},Ie={};void 0!==he&&(Ie.page_size=he),void 0!==ye&&(Ie.next_page_token=ye),setSearchParams$1(we,Ie);let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Re,...be.headers},{url:toPathString$1(we),options:Pe}},listCollections:async(te,he,ye,be,ve,we,_e,Pe={})=>{const Ie=new URL("/v1/collections",ca);let Re;D&&(Re=D.baseOptions);const ke={method:"GET",...Re,...Pe},Oe={};void 0!==te&&(Oe.page_size=te),void 0!==he&&(Oe.cursor=he),void 0!==ye&&(Oe.order_by=ye),void 0!==be&&(Oe.direction=be),void 0!==ve&&(Oe.blacklist=ve),void 0!==we&&(Oe.whitelist=we),void 0!==_e&&(Oe.keyword=_e),setSearchParams$1(Ie,Oe);let xe=Re&&Re.headers?Re.headers:{};return ke.headers={...xe,...Pe.headers},{url:toPathString$1(Ie),options:ke}},summarizeCollections:async(te,he={})=>{assertParamExists$1("summarizeCollections","user",te);const ye=new URL("/v1/collections-summary",ca);let be;D&&(be=D.baseOptions);const ve={method:"GET",...be,...he},we={};void 0!==te&&(we.user=te),setSearchParams$1(ye,we);let _e=be&&be.headers?be.headers:{};return ve.headers={..._e,...he.headers},{url:toPathString$1(ye),options:ve}},updateCollection:async(te,he,ye,be,ve={})=>{assertParamExists$1("updateCollection","address",te),assertParamExists$1("updateCollection","iMXSignature",he),assertParamExists$1("updateCollection","iMXTimestamp",ye),assertParamExists$1("updateCollection","updateCollectionRequest",be);const we="/v1/collections/{address}".replace("{address}",encodeURIComponent(String(te))),_e=new URL(we,ca);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"PATCH",...Pe,...ve},Re={};null!=he&&(Re["IMX-Signature"]=String(he)),null!=ye&&(Re["IMX-Timestamp"]=String(ye)),Re["Content-Type"]="application/json",setSearchParams$1(_e,{});let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...Re,...ke,...ve.headers},Ie.data=serializeDataIfNeeded$1(be,Ie,D),{url:toPathString$1(_e),options:Ie}}}},CollectionsApiFp$1=function(D){const te=CollectionsApiAxiosParamCreator$1(D);return{async createCollection(he,ye,be,ve,we){const _e=await te.createCollection(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)},async getCollection(he,ye){const be=await te.getCollection(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async listCollectionFilters(he,ye,be,ve){const we=await te.listCollectionFilters(he,ye,be,ve);return createRequestFunction$1(we,Kt,ia,D)},async listCollections(he,ye,be,ve,we,_e,Pe,Ie){const Re=await te.listCollections(he,ye,be,ve,we,_e,Pe,Ie);return createRequestFunction$1(Re,Kt,ia,D)},async summarizeCollections(he,ye){const be=await te.summarizeCollections(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async updateCollection(he,ye,be,ve,we){const _e=await te.updateCollection(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)}}};let fa=class CollectionsApi extends sa{createCollection(D,te){return CollectionsApiFp$1(this.configuration).createCollection(D.iMXSignature,D.iMXTimestamp,D.createCollectionRequest,D.xImmutableApiKey,te).then((D=>D(this.axios,this.basePath)))}getCollection(D,te){return CollectionsApiFp$1(this.configuration).getCollection(D.address,te).then((D=>D(this.axios,this.basePath)))}listCollectionFilters(D,te){return CollectionsApiFp$1(this.configuration).listCollectionFilters(D.address,D.pageSize,D.nextPageToken,te).then((D=>D(this.axios,this.basePath)))}listCollections(D={},te){return CollectionsApiFp$1(this.configuration).listCollections(D.pageSize,D.cursor,D.orderBy,D.direction,D.blacklist,D.whitelist,D.keyword,te).then((D=>D(this.axios,this.basePath)))}summarizeCollections(D,te){return CollectionsApiFp$1(this.configuration).summarizeCollections(D.user,te).then((D=>D(this.axios,this.basePath)))}updateCollection(D,te){return CollectionsApiFp$1(this.configuration).updateCollection(D.address,D.iMXSignature,D.iMXTimestamp,D.updateCollectionRequest,te).then((D=>D(this.axios,this.basePath)))}};const DepositsApiAxiosParamCreator=function(D){return{getDeposit:async(te,he={})=>{assertParamExists$1("getDeposit","id",te);const ye="/v1/deposits/{id}".replace("{id}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},getSignableDeposit:async(te,he={})=>{assertParamExists$1("getSignableDeposit","getSignableDepositRequest",te);const ye=new URL("/v1/signable-deposit-details",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},listDeposits:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le={})=>{const Ue=new URL("/v1/deposits",ca);let qe;D&&(qe=D.baseOptions);const je={method:"GET",...qe,...Le},Je={};void 0!==te&&(Je.page_size=te),void 0!==he&&(Je.cursor=he),void 0!==ye&&(Je.order_by=ye),void 0!==be&&(Je.direction=be),void 0!==ve&&(Je.user=ve),void 0!==we&&(Je.status=we),void 0!==_e&&(Je.min_timestamp=_e),void 0!==Pe&&(Je.max_timestamp=Pe),void 0!==Ie&&(Je.token_type=Ie),void 0!==Re&&(Je.token_id=Re),void 0!==ke&&(Je.asset_id=ke),void 0!==Oe&&(Je.token_address=Oe),void 0!==xe&&(Je.token_name=xe),void 0!==Be&&(Je.min_quantity=Be),void 0!==Fe&&(Je.max_quantity=Fe),void 0!==De&&(Je.metadata=De),setSearchParams$1(Ue,Je);let et=qe&&qe.headers?qe.headers:{};return je.headers={...et,...Le.headers},{url:toPathString$1(Ue),options:je}}}},DepositsApiFp=function(D){const te=DepositsApiAxiosParamCreator(D);return{async getDeposit(he,ye){const be=await te.getDeposit(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getSignableDeposit(he,ye){const be=await te.getSignableDeposit(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async listDeposits(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue){const qe=await te.listDeposits(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue);return createRequestFunction$1(qe,Kt,ia,D)}}};let la=class DepositsApi extends sa{getDeposit(D,te){return DepositsApiFp(this.configuration).getDeposit(D.id,te).then((D=>D(this.axios,this.basePath)))}getSignableDeposit(D,te){return DepositsApiFp(this.configuration).getSignableDeposit(D.getSignableDepositRequest,te).then((D=>D(this.axios,this.basePath)))}listDeposits(D={},te){return DepositsApiFp(this.configuration).listDeposits(D.pageSize,D.cursor,D.orderBy,D.direction,D.user,D.status,D.minTimestamp,D.maxTimestamp,D.tokenType,D.tokenId,D.assetId,D.tokenAddress,D.tokenName,D.minQuantity,D.maxQuantity,D.metadata,te).then((D=>D(this.axios,this.basePath)))}};const EncodingApiAxiosParamCreator=function(D){return{encodeAsset:async(te,he,ye={})=>{assertParamExists$1("encodeAsset","assetType",te),assertParamExists$1("encodeAsset","encodeAssetRequest",he);const be="/v1/encode/{assetType}".replace("{assetType}",encodeURIComponent(String(te))),ve=new URL(be,ca);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};Pe["Content-Type"]="application/json",setSearchParams$1(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded$1(he,_e,D),{url:toPathString$1(ve),options:_e}}}},EncodingApiFp=function(D){const te=EncodingApiAxiosParamCreator(D);return{async encodeAsset(he,ye,be){const ve=await te.encodeAsset(he,ye,be);return createRequestFunction$1(ve,Kt,ia,D)}}};let pa=class EncodingApi extends sa{encodeAsset(D,te){return EncodingApiFp(this.configuration).encodeAsset(D.assetType,D.encodeAssetRequest,te).then((D=>D(this.axios,this.basePath)))}};const ExchangesApiAxiosParamCreator=function(D){return{createExchange:async(te,he={})=>{assertParamExists$1("createExchange","createExchangeAPIRequest",te);const ye=new URL("/v3/exchanges",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},createExchangeTransfer:async(te,he,ye,be,ve,we={})=>{assertParamExists$1("createExchangeTransfer","id",te),assertParamExists$1("createExchangeTransfer","createTransferRequest",he);const _e="/v2/exchanges/{id}/transfers".replace("{id}",encodeURIComponent(String(te))),Pe=new URL(_e,ca);let Ie;D&&(Ie=D.baseOptions);const Re={method:"POST",...Ie,...we},ke={};null!=ye&&(ke["x-imx-eth-address"]=String(ye)),null!=be&&(ke["x-imx-eth-signature"]=String(be)),null!=ve&&(ke.Authorization=String(ve)),ke["Content-Type"]="application/json",setSearchParams$1(Pe,{});let Oe=Ie&&Ie.headers?Ie.headers:{};return Re.headers={...ke,...Oe,...we.headers},Re.data=serializeDataIfNeeded$1(he,Re,D),{url:toPathString$1(Pe),options:Re}},getExchange:async(te,he={})=>{assertParamExists$1("getExchange","id",te);const ye="/v3/exchanges/{id}".replace("{id}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},getExchangeSignableTransfer:async(te,he,ye={})=>{assertParamExists$1("getExchangeSignableTransfer","id",te),assertParamExists$1("getExchangeSignableTransfer","getSignableTransferRequest",he);const be="/v2/exchanges/{id}/signable-transfer-details".replace("{id}",encodeURIComponent(String(te))),ve=new URL(be,ca);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};Pe["Content-Type"]="application/json",setSearchParams$1(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded$1(he,_e,D),{url:toPathString$1(ve),options:_e}},getExchanges:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re={})=>{const ke=new URL("/v3/exchanges",ca);let Oe;D&&(Oe=D.baseOptions);const xe={method:"GET",...Oe,...Re},Be={};void 0!==te&&(Be.page_size=te),void 0!==he&&(Be.cursor=he),void 0!==ye&&(Be.order_by=ye),void 0!==be&&(Be.direction=be),void 0!==ve&&(Be.id=ve),void 0!==we&&(Be.wallet_address=we),void 0!==_e&&(Be.status=_e),void 0!==Pe&&(Be.provider=Pe),void 0!==Ie&&(Be.transfer_id=Ie),setSearchParams$1(ke,Be);let Fe=Oe&&Oe.headers?Oe.headers:{};return xe.headers={...Fe,...Re.headers},{url:toPathString$1(ke),options:xe}}}},ExchangesApiFp=function(D){const te=ExchangesApiAxiosParamCreator(D);return{async createExchange(he,ye){const be=await te.createExchange(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async createExchangeTransfer(he,ye,be,ve,we,_e){const Pe=await te.createExchangeTransfer(he,ye,be,ve,we,_e);return createRequestFunction$1(Pe,Kt,ia,D)},async getExchange(he,ye){const be=await te.getExchange(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getExchangeSignableTransfer(he,ye,be){const ve=await te.getExchangeSignableTransfer(he,ye,be);return createRequestFunction$1(ve,Kt,ia,D)},async getExchanges(he,ye,be,ve,we,_e,Pe,Ie,Re,ke){const Oe=await te.getExchanges(he,ye,be,ve,we,_e,Pe,Ie,Re,ke);return createRequestFunction$1(Oe,Kt,ia,D)}}};let ha=class ExchangesApi extends sa{createExchange(D,te){return ExchangesApiFp(this.configuration).createExchange(D.createExchangeAPIRequest,te).then((D=>D(this.axios,this.basePath)))}createExchangeTransfer(D,te){return ExchangesApiFp(this.configuration).createExchangeTransfer(D.id,D.createTransferRequest,D.xImxEthAddress,D.xImxEthSignature,D.authorization,te).then((D=>D(this.axios,this.basePath)))}getExchange(D,te){return ExchangesApiFp(this.configuration).getExchange(D.id,te).then((D=>D(this.axios,this.basePath)))}getExchangeSignableTransfer(D,te){return ExchangesApiFp(this.configuration).getExchangeSignableTransfer(D.id,D.getSignableTransferRequest,te).then((D=>D(this.axios,this.basePath)))}getExchanges(D={},te){return ExchangesApiFp(this.configuration).getExchanges(D.pageSize,D.cursor,D.orderBy,D.direction,D.id,D.walletAddress,D.status,D.provider,D.transferId,te).then((D=>D(this.axios,this.basePath)))}};const MetadataApiAxiosParamCreator$1=function(D){return{addMetadataSchemaToCollection:async(te,he,ye,be,ve={})=>{assertParamExists$1("addMetadataSchemaToCollection","address",te),assertParamExists$1("addMetadataSchemaToCollection","iMXSignature",he),assertParamExists$1("addMetadataSchemaToCollection","iMXTimestamp",ye),assertParamExists$1("addMetadataSchemaToCollection","addMetadataSchemaToCollectionRequest",be);const we="/v1/collections/{address}/metadata-schema".replace("{address}",encodeURIComponent(String(te))),_e=new URL(we,ca);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"POST",...Pe,...ve},Re={};null!=he&&(Re["IMX-Signature"]=String(he)),null!=ye&&(Re["IMX-Timestamp"]=String(ye)),Re["Content-Type"]="application/json",setSearchParams$1(_e,{});let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...Re,...ke,...ve.headers},Ie.data=serializeDataIfNeeded$1(be,Ie,D),{url:toPathString$1(_e),options:Ie}},getMetadataSchema:async(te,he={})=>{assertParamExists$1("getMetadataSchema","address",te);const ye="/v1/collections/{address}/metadata-schema".replace("{address}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},updateMetadataSchemaByName:async(te,he,ye,be,ve,we={})=>{assertParamExists$1("updateMetadataSchemaByName","address",te),assertParamExists$1("updateMetadataSchemaByName","name",he),assertParamExists$1("updateMetadataSchemaByName","iMXSignature",ye),assertParamExists$1("updateMetadataSchemaByName","iMXTimestamp",be),assertParamExists$1("updateMetadataSchemaByName","metadataSchemaRequest",ve);const _e="/v1/collections/{address}/metadata-schema/{name}".replace("{address}",encodeURIComponent(String(te))).replace("{name}",encodeURIComponent(String(he))),Pe=new URL(_e,ca);let Ie;D&&(Ie=D.baseOptions);const Re={method:"PATCH",...Ie,...we},ke={};null!=ye&&(ke["IMX-Signature"]=String(ye)),null!=be&&(ke["IMX-Timestamp"]=String(be)),ke["Content-Type"]="application/json",setSearchParams$1(Pe,{});let Oe=Ie&&Ie.headers?Ie.headers:{};return Re.headers={...ke,...Oe,...we.headers},Re.data=serializeDataIfNeeded$1(ve,Re,D),{url:toPathString$1(Pe),options:Re}}}},MetadataApiFp$1=function(D){const te=MetadataApiAxiosParamCreator$1(D);return{async addMetadataSchemaToCollection(he,ye,be,ve,we){const _e=await te.addMetadataSchemaToCollection(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)},async getMetadataSchema(he,ye){const be=await te.getMetadataSchema(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async updateMetadataSchemaByName(he,ye,be,ve,we,_e){const Pe=await te.updateMetadataSchemaByName(he,ye,be,ve,we,_e);return createRequestFunction$1(Pe,Kt,ia,D)}}};let ya=class MetadataApi extends sa{addMetadataSchemaToCollection(D,te){return MetadataApiFp$1(this.configuration).addMetadataSchemaToCollection(D.address,D.iMXSignature,D.iMXTimestamp,D.addMetadataSchemaToCollectionRequest,te).then((D=>D(this.axios,this.basePath)))}getMetadataSchema(D,te){return MetadataApiFp$1(this.configuration).getMetadataSchema(D.address,te).then((D=>D(this.axios,this.basePath)))}updateMetadataSchemaByName(D,te){return MetadataApiFp$1(this.configuration).updateMetadataSchemaByName(D.address,D.name,D.iMXSignature,D.iMXTimestamp,D.metadataSchemaRequest,te).then((D=>D(this.axios,this.basePath)))}};const MetadataRefreshesApiAxiosParamCreator=function(D){return{getAListOfMetadataRefreshes:async(te,he,ye,be,ve,we,_e={})=>{assertParamExists$1("getAListOfMetadataRefreshes","xImxEthSignature",te),assertParamExists$1("getAListOfMetadataRefreshes","xImxEthTimestamp",he),assertParamExists$1("getAListOfMetadataRefreshes","xImxEthAddress",ye);const Pe=new URL("/v1/metadata-refreshes",ca);let Ie;D&&(Ie=D.baseOptions);const Re={method:"GET",...Ie,..._e},ke={},Oe={};void 0!==be&&(Oe.page_size=be),void 0!==ve&&(Oe.cursor=ve),void 0!==we&&(Oe.collection_address=we),null!=te&&(ke["x-imx-eth-signature"]=String(te)),null!=he&&(ke["x-imx-eth-timestamp"]=String(he)),null!=ye&&(ke["x-imx-eth-address"]=String(ye)),setSearchParams$1(Pe,Oe);let xe=Ie&&Ie.headers?Ie.headers:{};return Re.headers={...ke,...xe,..._e.headers},{url:toPathString$1(Pe),options:Re}},getMetadataRefreshErrors:async(te,he,ye,be,ve,we,_e={})=>{assertParamExists$1("getMetadataRefreshErrors","refreshId",te),assertParamExists$1("getMetadataRefreshErrors","xImxEthSignature",he),assertParamExists$1("getMetadataRefreshErrors","xImxEthTimestamp",ye),assertParamExists$1("getMetadataRefreshErrors","xImxEthAddress",be);const Pe="/v1/metadata-refreshes/{refresh_id}/errors".replace("{refresh_id}",encodeURIComponent(String(te))),Ie=new URL(Pe,ca);let Re;D&&(Re=D.baseOptions);const ke={method:"GET",...Re,..._e},Oe={},xe={};void 0!==ve&&(xe.page_size=ve),void 0!==we&&(xe.cursor=we),null!=he&&(Oe["x-imx-eth-signature"]=String(he)),null!=ye&&(Oe["x-imx-eth-timestamp"]=String(ye)),null!=be&&(Oe["x-imx-eth-address"]=String(be)),setSearchParams$1(Ie,xe);let Be=Re&&Re.headers?Re.headers:{};return ke.headers={...Oe,...Be,..._e.headers},{url:toPathString$1(Ie),options:ke}},getMetadataRefreshResults:async(te,he,ye,be,ve={})=>{assertParamExists$1("getMetadataRefreshResults","refreshId",te),assertParamExists$1("getMetadataRefreshResults","xImxEthSignature",he),assertParamExists$1("getMetadataRefreshResults","xImxEthTimestamp",ye),assertParamExists$1("getMetadataRefreshResults","xImxEthAddress",be);const we="/v1/metadata-refreshes/{refresh_id}".replace("{refresh_id}",encodeURIComponent(String(te))),_e=new URL(we,ca);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"GET",...Pe,...ve},Re={};null!=he&&(Re["x-imx-eth-signature"]=String(he)),null!=ye&&(Re["x-imx-eth-timestamp"]=String(ye)),null!=be&&(Re["x-imx-eth-address"]=String(be)),setSearchParams$1(_e,{});let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...Re,...ke,...ve.headers},{url:toPathString$1(_e),options:Ie}},requestAMetadataRefresh:async(te,he,ye,be,ve={})=>{assertParamExists$1("requestAMetadataRefresh","xImxEthSignature",te),assertParamExists$1("requestAMetadataRefresh","xImxEthTimestamp",he),assertParamExists$1("requestAMetadataRefresh","xImxEthAddress",ye),assertParamExists$1("requestAMetadataRefresh","createMetadataRefreshRequest",be);const we=new URL("/v1/metadata-refreshes",ca);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...ve},Ie={};null!=te&&(Ie["x-imx-eth-signature"]=String(te)),null!=he&&(Ie["x-imx-eth-timestamp"]=String(he)),null!=ye&&(Ie["x-imx-eth-address"]=String(ye)),Ie["Content-Type"]="application/json",setSearchParams$1(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...ve.headers},Pe.data=serializeDataIfNeeded$1(be,Pe,D),{url:toPathString$1(we),options:Pe}}}},MetadataRefreshesApiFp=function(D){const te=MetadataRefreshesApiAxiosParamCreator(D);return{async getAListOfMetadataRefreshes(he,ye,be,ve,we,_e,Pe){const Ie=await te.getAListOfMetadataRefreshes(he,ye,be,ve,we,_e,Pe);return createRequestFunction$1(Ie,Kt,ia,D)},async getMetadataRefreshErrors(he,ye,be,ve,we,_e,Pe){const Ie=await te.getMetadataRefreshErrors(he,ye,be,ve,we,_e,Pe);return createRequestFunction$1(Ie,Kt,ia,D)},async getMetadataRefreshResults(he,ye,be,ve,we){const _e=await te.getMetadataRefreshResults(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)},async requestAMetadataRefresh(he,ye,be,ve,we){const _e=await te.requestAMetadataRefresh(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)}}};let ma=class MetadataRefreshesApi extends sa{getAListOfMetadataRefreshes(D,te){return MetadataRefreshesApiFp(this.configuration).getAListOfMetadataRefreshes(D.xImxEthSignature,D.xImxEthTimestamp,D.xImxEthAddress,D.pageSize,D.cursor,D.collectionAddress,te).then((D=>D(this.axios,this.basePath)))}getMetadataRefreshErrors(D,te){return MetadataRefreshesApiFp(this.configuration).getMetadataRefreshErrors(D.refreshId,D.xImxEthSignature,D.xImxEthTimestamp,D.xImxEthAddress,D.pageSize,D.cursor,te).then((D=>D(this.axios,this.basePath)))}getMetadataRefreshResults(D,te){return MetadataRefreshesApiFp(this.configuration).getMetadataRefreshResults(D.refreshId,D.xImxEthSignature,D.xImxEthTimestamp,D.xImxEthAddress,te).then((D=>D(this.axios,this.basePath)))}requestAMetadataRefresh(D,te){return MetadataRefreshesApiFp(this.configuration).requestAMetadataRefresh(D.xImxEthSignature,D.xImxEthTimestamp,D.xImxEthAddress,D.createMetadataRefreshRequest,te).then((D=>D(this.axios,this.basePath)))}};const MintsApiAxiosParamCreator=function(D){return{getMint:async(te,he={})=>{assertParamExists$1("getMint","id",te);const ye="/v1/mints/{id}".replace("{id}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},getMintableTokenDetailsByClientTokenId:async(te,he,ye={})=>{assertParamExists$1("getMintableTokenDetailsByClientTokenId","tokenAddress",te),assertParamExists$1("getMintableTokenDetailsByClientTokenId","tokenId",he);const be="/v1/mintable-token/{token_address}/{token_id}".replace("{token_address}",encodeURIComponent(String(te))).replace("{token_id}",encodeURIComponent(String(he))),ve=new URL(be,ca);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams$1(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString$1(ve),options:_e}},listMints:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De={})=>{const Le=new URL("/v1/mints",ca);let Ue;D&&(Ue=D.baseOptions);const qe={method:"GET",...Ue,...De},je={};void 0!==te&&(je.page_size=te),void 0!==he&&(je.cursor=he),void 0!==ye&&(je.order_by=ye),void 0!==be&&(je.direction=be),void 0!==ve&&(je.user=ve),void 0!==we&&(je.status=we),void 0!==_e&&(je.min_timestamp=_e),void 0!==Pe&&(je.max_timestamp=Pe),void 0!==Ie&&(je.token_type=Ie),void 0!==Re&&(je.token_id=Re),void 0!==ke&&(je.token_name=ke),void 0!==Oe&&(je.token_address=Oe),void 0!==xe&&(je.min_quantity=xe),void 0!==Be&&(je.max_quantity=Be),void 0!==Fe&&(je.metadata=Fe),setSearchParams$1(Le,je);let Je=Ue&&Ue.headers?Ue.headers:{};return qe.headers={...Je,...De.headers},{url:toPathString$1(Le),options:qe}},mintTokens:async(te,he={})=>{assertParamExists$1("mintTokens","mintTokensRequestV2",te);const ye=new URL("/v2/mints",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}}}},MintsApiFp=function(D){const te=MintsApiAxiosParamCreator(D);return{async getMint(he,ye){const be=await te.getMint(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getMintableTokenDetailsByClientTokenId(he,ye,be){const ve=await te.getMintableTokenDetailsByClientTokenId(he,ye,be);return createRequestFunction$1(ve,Kt,ia,D)},async listMints(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le){const Ue=await te.listMints(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le);return createRequestFunction$1(Ue,Kt,ia,D)},async mintTokens(he,ye){const be=await te.mintTokens(he,ye);return createRequestFunction$1(be,Kt,ia,D)}}};let ba=class MintsApi extends sa{getMint(D,te){return MintsApiFp(this.configuration).getMint(D.id,te).then((D=>D(this.axios,this.basePath)))}getMintableTokenDetailsByClientTokenId(D,te){return MintsApiFp(this.configuration).getMintableTokenDetailsByClientTokenId(D.tokenAddress,D.tokenId,te).then((D=>D(this.axios,this.basePath)))}listMints(D={},te){return MintsApiFp(this.configuration).listMints(D.pageSize,D.cursor,D.orderBy,D.direction,D.user,D.status,D.minTimestamp,D.maxTimestamp,D.tokenType,D.tokenId,D.tokenName,D.tokenAddress,D.minQuantity,D.maxQuantity,D.metadata,te).then((D=>D(this.axios,this.basePath)))}mintTokens(D,te){return MintsApiFp(this.configuration).mintTokens(D.mintTokensRequestV2,te).then((D=>D(this.axios,this.basePath)))}};const NftCheckoutPrimaryApiAxiosParamCreator=function(D){return{createNftPrimary:async(te,he={})=>{assertParamExists$1("createNftPrimary","createAPIRequest",te);const ye=new URL("/v2/nft/primary",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},getCurrenciesNFTCheckoutPrimary:async(te,he,ye={})=>{const be=new URL("/v2/nft/primary/currencies",ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...ye},_e={};void 0!==te&&(_e.provider=te),void 0!==he&&(_e.include_limits=he),setSearchParams$1(be,_e);let Pe=ve&&ve.headers?ve.headers:{};return we.headers={...Pe,...ye.headers},{url:toPathString$1(be),options:we}},getNftPrimaryTransaction:async(te,he={})=>{assertParamExists$1("getNftPrimaryTransaction","transactionId",te);const ye="/v2/nft/primary/{transaction_id}".replace("{transaction_id}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},getNftPrimaryTransactions:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe={})=>{const xe=new URL("/v2/nft/primary",ca);let Be;D&&(Be=D.baseOptions);const Fe={method:"GET",...Be,...Oe},De={};void 0!==te&&(De.page_size=te),void 0!==he&&(De.cursor=he),void 0!==ye&&(De.order_by=ye),void 0!==be&&(De.direction=be),void 0!==ve&&(De.transaction_id=ve),void 0!==we&&(De.contract_address=we),void 0!==_e&&(De.seller_wallet_address=_e),void 0!==Pe&&(De.user_wallet_address=Pe),void 0!==Ie&&(De.status=Ie),void 0!==Re&&(De.provider=Re),void 0!==ke&&(De.mint_id=ke),setSearchParams$1(xe,De);let Le=Be&&Be.headers?Be.headers:{};return Fe.headers={...Le,...Oe.headers},{url:toPathString$1(xe),options:Fe}},registerNftPrimarySalesContract:async(te,he={})=>{assertParamExists$1("registerNftPrimarySalesContract","createAPIRequest",te);const ye=new URL("/v2/nft/primary/register",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}}}},NftCheckoutPrimaryApiFp=function(D){const te=NftCheckoutPrimaryApiAxiosParamCreator(D);return{async createNftPrimary(he,ye){const be=await te.createNftPrimary(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getCurrenciesNFTCheckoutPrimary(he,ye,be){const ve=await te.getCurrenciesNFTCheckoutPrimary(he,ye,be);return createRequestFunction$1(ve,Kt,ia,D)},async getNftPrimaryTransaction(he,ye){const be=await te.getNftPrimaryTransaction(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getNftPrimaryTransactions(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe){const Be=await te.getNftPrimaryTransactions(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe);return createRequestFunction$1(Be,Kt,ia,D)},async registerNftPrimarySalesContract(he,ye){const be=await te.registerNftPrimarySalesContract(he,ye);return createRequestFunction$1(be,Kt,ia,D)}}};let ga=class NftCheckoutPrimaryApi extends sa{createNftPrimary(D,te){return NftCheckoutPrimaryApiFp(this.configuration).createNftPrimary(D.createAPIRequest,te).then((D=>D(this.axios,this.basePath)))}getCurrenciesNFTCheckoutPrimary(D={},te){return NftCheckoutPrimaryApiFp(this.configuration).getCurrenciesNFTCheckoutPrimary(D.provider,D.includeLimits,te).then((D=>D(this.axios,this.basePath)))}getNftPrimaryTransaction(D,te){return NftCheckoutPrimaryApiFp(this.configuration).getNftPrimaryTransaction(D.transactionId,te).then((D=>D(this.axios,this.basePath)))}getNftPrimaryTransactions(D={},te){return NftCheckoutPrimaryApiFp(this.configuration).getNftPrimaryTransactions(D.pageSize,D.cursor,D.orderBy,D.direction,D.transactionId,D.contractAddress,D.sellerWalletAddress,D.userWalletAddress,D.status,D.provider,D.mintId,te).then((D=>D(this.axios,this.basePath)))}registerNftPrimarySalesContract(D,te){return NftCheckoutPrimaryApiFp(this.configuration).registerNftPrimarySalesContract(D.createAPIRequest,te).then((D=>D(this.axios,this.basePath)))}};const OrdersApiAxiosParamCreator$1=function(D){return{cancelOrderV3:async(te,he,ye,be,ve,we={})=>{assertParamExists$1("cancelOrderV3","id",te),assertParamExists$1("cancelOrderV3","cancelOrderRequest",he);const _e="/v3/orders/{id}".replace("{id}",encodeURIComponent(String(te))),Pe=new URL(_e,ca);let Ie;D&&(Ie=D.baseOptions);const Re={method:"DELETE",...Ie,...we},ke={};null!=ye&&(ke["x-imx-eth-address"]=String(ye)),null!=be&&(ke["x-imx-eth-signature"]=String(be)),null!=ve&&(ke.Authorization=String(ve)),ke["Content-Type"]="application/json",setSearchParams$1(Pe,{});let Oe=Ie&&Ie.headers?Ie.headers:{};return Re.headers={...ke,...Oe,...we.headers},Re.data=serializeDataIfNeeded$1(he,Re,D),{url:toPathString$1(Pe),options:Re}},createOrderV3:async(te,he,ye,be,ve={})=>{assertParamExists$1("createOrderV3","createOrderRequest",te);const we=new URL("/v3/orders",ca);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...ve},Ie={};null!=he&&(Ie["x-imx-eth-address"]=String(he)),null!=ye&&(Ie["x-imx-eth-signature"]=String(ye)),null!=be&&(Ie.Authorization=String(be)),Ie["Content-Type"]="application/json",setSearchParams$1(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...ve.headers},Pe.data=serializeDataIfNeeded$1(te,Pe,D),{url:toPathString$1(we),options:Pe}},getOrderV3:async(te,he,ye,be,ve={})=>{assertParamExists$1("getOrderV3","id",te);const we="/v3/orders/{id}".replace("{id}",encodeURIComponent(String(te))),_e=new URL(we,ca);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"GET",...Pe,...ve},Re={};void 0!==he&&(Re.include_fees=he),void 0!==ye&&(Re.auxiliary_fee_percentages=ye),void 0!==be&&(Re.auxiliary_fee_recipients=be),setSearchParams$1(_e,Re);let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...ke,...ve.headers},{url:toPathString$1(_e),options:Ie}},getSignableCancelOrderV3:async(te,he={})=>{assertParamExists$1("getSignableCancelOrderV3","getSignableCancelOrderRequest",te);const ye=new URL("/v3/signable-cancel-order-details",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},getSignableOrder:async(te,he={})=>{assertParamExists$1("getSignableOrder","getSignableOrderRequestV3",te);const ye=new URL("/v3/signable-order-details",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},listOrdersV3:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je,et,tt,rt,nt,at,ut,ht,yt,mt={})=>{const bt=new URL("/v3/orders",ca);let wt;D&&(wt=D.baseOptions);const _t={method:"GET",...wt,...mt},Tt={};void 0!==te&&(Tt.page_size=te),void 0!==he&&(Tt.cursor=he),void 0!==ye&&(Tt.order_by=ye),void 0!==be&&(Tt.direction=be),void 0!==ve&&(Tt.user=ve),void 0!==we&&(Tt.status=we),void 0!==_e&&(Tt.min_timestamp=_e),void 0!==Pe&&(Tt.max_timestamp=Pe),void 0!==Ie&&(Tt.updated_min_timestamp=Ie),void 0!==Re&&(Tt.updated_max_timestamp=Re),void 0!==ke&&(Tt.buy_token_type=ke),void 0!==Oe&&(Tt.buy_token_id=Oe),void 0!==xe&&(Tt.buy_asset_id=xe),void 0!==Be&&(Tt.buy_token_address=Be),void 0!==Fe&&(Tt.buy_token_name=Fe),void 0!==De&&(Tt.buy_min_quantity=De),void 0!==Le&&(Tt.buy_max_quantity=Le),void 0!==Ue&&(Tt.buy_metadata=Ue),void 0!==qe&&(Tt.sell_token_type=qe),void 0!==je&&(Tt.sell_token_id=je),void 0!==Je&&(Tt.sell_asset_id=Je),void 0!==et&&(Tt.sell_token_address=et),void 0!==tt&&(Tt.sell_token_name=tt),void 0!==rt&&(Tt.sell_min_quantity=rt),void 0!==nt&&(Tt.sell_max_quantity=nt),void 0!==at&&(Tt.sell_metadata=at),void 0!==ut&&(Tt.auxiliary_fee_percentages=ut),void 0!==ht&&(Tt.auxiliary_fee_recipients=ht),void 0!==yt&&(Tt.include_fees=yt),setSearchParams$1(bt,Tt);let At=wt&&wt.headers?wt.headers:{};return _t.headers={...At,...mt.headers},{url:toPathString$1(bt),options:_t}}}},OrdersApiFp$1=function(D){const te=OrdersApiAxiosParamCreator$1(D);return{async cancelOrderV3(he,ye,be,ve,we,_e){const Pe=await te.cancelOrderV3(he,ye,be,ve,we,_e);return createRequestFunction$1(Pe,Kt,ia,D)},async createOrderV3(he,ye,be,ve,we){const _e=await te.createOrderV3(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)},async getOrderV3(he,ye,be,ve,we){const _e=await te.getOrderV3(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)},async getSignableCancelOrderV3(he,ye){const be=await te.getSignableCancelOrderV3(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getSignableOrder(he,ye){const be=await te.getSignableOrder(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async listOrdersV3(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je,et,tt,rt,nt,at,ut,ht,yt,mt,bt){const wt=await te.listOrdersV3(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je,et,tt,rt,nt,at,ut,ht,yt,mt,bt);return createRequestFunction$1(wt,Kt,ia,D)}}};let va=class OrdersApi extends sa{cancelOrderV3(D,te){return OrdersApiFp$1(this.configuration).cancelOrderV3(D.id,D.cancelOrderRequest,D.xImxEthAddress,D.xImxEthSignature,D.authorization,te).then((D=>D(this.axios,this.basePath)))}createOrderV3(D,te){return OrdersApiFp$1(this.configuration).createOrderV3(D.createOrderRequest,D.xImxEthAddress,D.xImxEthSignature,D.authorization,te).then((D=>D(this.axios,this.basePath)))}getOrderV3(D,te){return OrdersApiFp$1(this.configuration).getOrderV3(D.id,D.includeFees,D.auxiliaryFeePercentages,D.auxiliaryFeeRecipients,te).then((D=>D(this.axios,this.basePath)))}getSignableCancelOrderV3(D,te){return OrdersApiFp$1(this.configuration).getSignableCancelOrderV3(D.getSignableCancelOrderRequest,te).then((D=>D(this.axios,this.basePath)))}getSignableOrder(D,te){return OrdersApiFp$1(this.configuration).getSignableOrder(D.getSignableOrderRequestV3,te).then((D=>D(this.axios,this.basePath)))}listOrdersV3(D={},te){return OrdersApiFp$1(this.configuration).listOrdersV3(D.pageSize,D.cursor,D.orderBy,D.direction,D.user,D.status,D.minTimestamp,D.maxTimestamp,D.updatedMinTimestamp,D.updatedMaxTimestamp,D.buyTokenType,D.buyTokenId,D.buyAssetId,D.buyTokenAddress,D.buyTokenName,D.buyMinQuantity,D.buyMaxQuantity,D.buyMetadata,D.sellTokenType,D.sellTokenId,D.sellAssetId,D.sellTokenAddress,D.sellTokenName,D.sellMinQuantity,D.sellMaxQuantity,D.sellMetadata,D.auxiliaryFeePercentages,D.auxiliaryFeeRecipients,D.includeFees,te).then((D=>D(this.axios,this.basePath)))}};const ProjectsApiAxiosParamCreator=function(D){return{getProject:async(te,he,ye,be={})=>{assertParamExists$1("getProject","id",te),assertParamExists$1("getProject","iMXSignature",he),assertParamExists$1("getProject","iMXTimestamp",ye);const ve="/v1/projects/{id}".replace("{id}",encodeURIComponent(String(te))),we=new URL(ve,ca);let _e;D&&(_e=D.baseOptions);const Pe={method:"GET",..._e,...be},Ie={};null!=he&&(Ie["IMX-Signature"]=String(he)),null!=ye&&(Ie["IMX-Timestamp"]=String(ye)),setSearchParams$1(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...be.headers},{url:toPathString$1(we),options:Pe}}}},ProjectsApiFp=function(D){const te=ProjectsApiAxiosParamCreator(D);return{async getProject(he,ye,be,ve){const we=await te.getProject(he,ye,be,ve);return createRequestFunction$1(we,Kt,ia,D)}}};let wa=class ProjectsApi extends sa{getProject(D,te){return ProjectsApiFp(this.configuration).getProject(D.id,D.iMXSignature,D.iMXTimestamp,te).then((D=>D(this.axios,this.basePath)))}};const TokensApiAxiosParamCreator$1=function(D){return{getToken:async(te,he={})=>{assertParamExists$1("getToken","address",te);const ye="/v1/tokens/{address}".replace("{address}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},listTokens:async(te,he,ye,be,ve,we,_e={})=>{const Pe=new URL("/v1/tokens",ca);let Ie;D&&(Ie=D.baseOptions);const Re={method:"GET",...Ie,..._e},ke={};void 0!==te&&(ke.page_size=te),void 0!==he&&(ke.cursor=he),void 0!==ye&&(ke.order_by=ye),void 0!==be&&(ke.direction=be),void 0!==ve&&(ke.address=ve),void 0!==we&&(ke.symbols=we),setSearchParams$1(Pe,ke);let Oe=Ie&&Ie.headers?Ie.headers:{};return Re.headers={...Oe,..._e.headers},{url:toPathString$1(Pe),options:Re}}}},TokensApiFp$1=function(D){const te=TokensApiAxiosParamCreator$1(D);return{async getToken(he,ye){const be=await te.getToken(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async listTokens(he,ye,be,ve,we,_e,Pe){const Ie=await te.listTokens(he,ye,be,ve,we,_e,Pe);return createRequestFunction$1(Ie,Kt,ia,D)}}};let _a=class TokensApi extends sa{getToken(D,te){return TokensApiFp$1(this.configuration).getToken(D.address,te).then((D=>D(this.axios,this.basePath)))}listTokens(D={},te){return TokensApiFp$1(this.configuration).listTokens(D.pageSize,D.cursor,D.orderBy,D.direction,D.address,D.symbols,te).then((D=>D(this.axios,this.basePath)))}};const TradesApiAxiosParamCreator=function(D){return{createTradeV3:async(te,he,ye,be,ve={})=>{assertParamExists$1("createTradeV3","createTradeRequest",te);const we=new URL("/v3/trades",ca);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...ve},Ie={};null!=he&&(Ie["x-imx-eth-address"]=String(he)),null!=ye&&(Ie["x-imx-eth-signature"]=String(ye)),null!=be&&(Ie.Authorization=String(be)),Ie["Content-Type"]="application/json",setSearchParams$1(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...ve.headers},Pe.data=serializeDataIfNeeded$1(te,Pe,D),{url:toPathString$1(we),options:Pe}},getSignableTrade:async(te,he={})=>{assertParamExists$1("getSignableTrade","getSignableTradeRequest",te);const ye=new URL("/v3/signable-trade-details",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},getTradeV3:async(te,he={})=>{assertParamExists$1("getTradeV3","id",te);const ye="/v3/trades/{id}".replace("{id}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},listTradesV3:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe={})=>{const xe=new URL("/v3/trades",ca);let Be;D&&(Be=D.baseOptions);const Fe={method:"GET",...Be,...Oe},De={};void 0!==te&&(De.party_a_token_type=te),void 0!==he&&(De.party_a_token_address=he),void 0!==ye&&(De.party_b_token_type=ye),void 0!==be&&(De.party_b_token_address=be),void 0!==ve&&(De.party_b_token_id=ve),void 0!==we&&(De.page_size=we),void 0!==_e&&(De.cursor=_e),void 0!==Pe&&(De.order_by=Pe),void 0!==Ie&&(De.direction=Ie),void 0!==Re&&(De.min_timestamp=Re),void 0!==ke&&(De.max_timestamp=ke),setSearchParams$1(xe,De);let Le=Be&&Be.headers?Be.headers:{};return Fe.headers={...Le,...Oe.headers},{url:toPathString$1(xe),options:Fe}}}},TradesApiFp=function(D){const te=TradesApiAxiosParamCreator(D);return{async createTradeV3(he,ye,be,ve,we){const _e=await te.createTradeV3(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)},async getSignableTrade(he,ye){const be=await te.getSignableTrade(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getTradeV3(he,ye){const be=await te.getTradeV3(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async listTradesV3(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe){const Be=await te.listTradesV3(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe);return createRequestFunction$1(Be,Kt,ia,D)}}};let Ta=class TradesApi extends sa{createTradeV3(D,te){return TradesApiFp(this.configuration).createTradeV3(D.createTradeRequest,D.xImxEthAddress,D.xImxEthSignature,D.authorization,te).then((D=>D(this.axios,this.basePath)))}getSignableTrade(D,te){return TradesApiFp(this.configuration).getSignableTrade(D.getSignableTradeRequest,te).then((D=>D(this.axios,this.basePath)))}getTradeV3(D,te){return TradesApiFp(this.configuration).getTradeV3(D.id,te).then((D=>D(this.axios,this.basePath)))}listTradesV3(D={},te){return TradesApiFp(this.configuration).listTradesV3(D.partyATokenType,D.partyATokenAddress,D.partyBTokenType,D.partyBTokenAddress,D.partyBTokenId,D.pageSize,D.cursor,D.orderBy,D.direction,D.minTimestamp,D.maxTimestamp,te).then((D=>D(this.axios,this.basePath)))}};const TransfersApiAxiosParamCreator=function(D){return{createTransfer:async(te,he,ye,be,ve={})=>{assertParamExists$1("createTransfer","createTransferRequestV2",te);const we=new URL("/v2/transfers",ca);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...ve},Ie={};null!=he&&(Ie["x-imx-eth-address"]=String(he)),null!=ye&&(Ie["x-imx-eth-signature"]=String(ye)),null!=be&&(Ie.Authorization=String(be)),Ie["Content-Type"]="application/json",setSearchParams$1(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...ve.headers},Pe.data=serializeDataIfNeeded$1(te,Pe,D),{url:toPathString$1(we),options:Pe}},createTransferV1:async(te,he,ye,be,ve={})=>{assertParamExists$1("createTransferV1","createTransferRequest",te);const we=new URL("/v1/transfers",ca);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...ve},Ie={};null!=he&&(Ie["x-imx-eth-address"]=String(he)),null!=ye&&(Ie["x-imx-eth-signature"]=String(ye)),null!=be&&(Ie.Authorization=String(be)),Ie["Content-Type"]="application/json",setSearchParams$1(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...ve.headers},Pe.data=serializeDataIfNeeded$1(te,Pe,D),{url:toPathString$1(we),options:Pe}},getSignableTransfer:async(te,he={})=>{assertParamExists$1("getSignableTransfer","getSignableTransferRequestV2",te);const ye=new URL("/v2/signable-transfer-details",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},getSignableTransferV1:async(te,he={})=>{assertParamExists$1("getSignableTransferV1","getSignableTransferRequest",te);const ye=new URL("/v1/signable-transfer-details",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},getTransfer:async(te,he={})=>{assertParamExists$1("getTransfer","id",te);const ye="/v1/transfers/{id}".replace("{id}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},listTransfers:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue={})=>{const qe=new URL("/v1/transfers",ca);let je;D&&(je=D.baseOptions);const Je={method:"GET",...je,...Ue},et={};void 0!==te&&(et.page_size=te),void 0!==he&&(et.cursor=he),void 0!==ye&&(et.order_by=ye),void 0!==be&&(et.direction=be),void 0!==ve&&(et.user=ve),void 0!==we&&(et.receiver=we),void 0!==_e&&(et.status=_e),void 0!==Pe&&(et.min_timestamp=Pe),void 0!==Ie&&(et.max_timestamp=Ie),void 0!==Re&&(et.token_type=Re),void 0!==ke&&(et.token_id=ke),void 0!==Oe&&(et.asset_id=Oe),void 0!==xe&&(et.token_address=xe),void 0!==Be&&(et.token_name=Be),void 0!==Fe&&(et.min_quantity=Fe),void 0!==De&&(et.max_quantity=De),void 0!==Le&&(et.metadata=Le),setSearchParams$1(qe,et);let tt=je&&je.headers?je.headers:{};return Je.headers={...tt,...Ue.headers},{url:toPathString$1(qe),options:Je}}}},TransfersApiFp=function(D){const te=TransfersApiAxiosParamCreator(D);return{async createTransfer(he,ye,be,ve,we){const _e=await te.createTransfer(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)},async createTransferV1(he,ye,be,ve,we){const _e=await te.createTransferV1(he,ye,be,ve,we);return createRequestFunction$1(_e,Kt,ia,D)},async getSignableTransfer(he,ye){const be=await te.getSignableTransfer(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getSignableTransferV1(he,ye){const be=await te.getSignableTransferV1(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getTransfer(he,ye){const be=await te.getTransfer(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async listTransfers(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe){const je=await te.listTransfers(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe);return createRequestFunction$1(je,Kt,ia,D)}}};let Aa=class TransfersApi extends sa{createTransfer(D,te){return TransfersApiFp(this.configuration).createTransfer(D.createTransferRequestV2,D.xImxEthAddress,D.xImxEthSignature,D.authorization,te).then((D=>D(this.axios,this.basePath)))}createTransferV1(D,te){return TransfersApiFp(this.configuration).createTransferV1(D.createTransferRequest,D.xImxEthAddress,D.xImxEthSignature,D.authorization,te).then((D=>D(this.axios,this.basePath)))}getSignableTransfer(D,te){return TransfersApiFp(this.configuration).getSignableTransfer(D.getSignableTransferRequestV2,te).then((D=>D(this.axios,this.basePath)))}getSignableTransferV1(D,te){return TransfersApiFp(this.configuration).getSignableTransferV1(D.getSignableTransferRequest,te).then((D=>D(this.axios,this.basePath)))}getTransfer(D,te){return TransfersApiFp(this.configuration).getTransfer(D.id,te).then((D=>D(this.axios,this.basePath)))}listTransfers(D={},te){return TransfersApiFp(this.configuration).listTransfers(D.pageSize,D.cursor,D.orderBy,D.direction,D.user,D.receiver,D.status,D.minTimestamp,D.maxTimestamp,D.tokenType,D.tokenId,D.assetId,D.tokenAddress,D.tokenName,D.minQuantity,D.maxQuantity,D.metadata,te).then((D=>D(this.axios,this.basePath)))}};const UsersApiAxiosParamCreator=function(D){return{getSignableRegistration:async(te,he={})=>{assertParamExists$1("getSignableRegistration","getSignableRegistrationRequest",te);const ye=new URL("/v1/signable-registration",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},getSignableRegistrationOffchain:async(te,he={})=>{assertParamExists$1("getSignableRegistrationOffchain","getSignableRegistrationRequest",te);const ye=new URL("/v1/signable-registration-offchain",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},getUsers:async(te,he={})=>{assertParamExists$1("getUsers","user",te);const ye="/v1/users/{user}".replace("{user}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},registerPassportUser:async(te,he,ye={})=>{assertParamExists$1("registerPassportUser","authorization",te),assertParamExists$1("registerPassportUser","registerPassportUserRequest",he);const be=new URL("/v1/passport/users",ca);let ve;D&&(ve=D.baseOptions);const we={method:"POST",...ve,...ye},_e={};null!=te&&(_e.Authorization=String(te)),_e["Content-Type"]="application/json",setSearchParams$1(be,{});let Pe=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...Pe,...ye.headers},we.data=serializeDataIfNeeded$1(he,we,D),{url:toPathString$1(be),options:we}},registerPassportUserV2:async(te,he,ye={})=>{assertParamExists$1("registerPassportUserV2","authorization",te),assertParamExists$1("registerPassportUserV2","registerPassportUserRequest",he);const be=new URL("/v2/passport/users",ca);let ve;D&&(ve=D.baseOptions);const we={method:"POST",...ve,...ye},_e={};null!=te&&(_e.Authorization=String(te)),_e["Content-Type"]="application/json",setSearchParams$1(be,{});let Pe=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...Pe,...ye.headers},we.data=serializeDataIfNeeded$1(he,we,D),{url:toPathString$1(be),options:we}},registerUser:async(te,he={})=>{assertParamExists$1("registerUser","registerUserRequest",te);const ye=new URL("/v1/users",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}}}},UsersApiFp=function(D){const te=UsersApiAxiosParamCreator(D);return{async getSignableRegistration(he,ye){const be=await te.getSignableRegistration(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getSignableRegistrationOffchain(he,ye){const be=await te.getSignableRegistrationOffchain(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getUsers(he,ye){const be=await te.getUsers(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async registerPassportUser(he,ye,be){const ve=await te.registerPassportUser(he,ye,be);return createRequestFunction$1(ve,Kt,ia,D)},async registerPassportUserV2(he,ye,be){const ve=await te.registerPassportUserV2(he,ye,be);return createRequestFunction$1(ve,Kt,ia,D)},async registerUser(he,ye){const be=await te.registerUser(he,ye);return createRequestFunction$1(be,Kt,ia,D)}}};let Ea=class UsersApi extends sa{getSignableRegistration(D,te){return UsersApiFp(this.configuration).getSignableRegistration(D.getSignableRegistrationRequest,te).then((D=>D(this.axios,this.basePath)))}getSignableRegistrationOffchain(D,te){return UsersApiFp(this.configuration).getSignableRegistrationOffchain(D.getSignableRegistrationRequest,te).then((D=>D(this.axios,this.basePath)))}getUsers(D,te){return UsersApiFp(this.configuration).getUsers(D.user,te).then((D=>D(this.axios,this.basePath)))}registerPassportUser(D,te){return UsersApiFp(this.configuration).registerPassportUser(D.authorization,D.registerPassportUserRequest,te).then((D=>D(this.axios,this.basePath)))}registerPassportUserV2(D,te){return UsersApiFp(this.configuration).registerPassportUserV2(D.authorization,D.registerPassportUserRequest,te).then((D=>D(this.axios,this.basePath)))}registerUser(D,te){return UsersApiFp(this.configuration).registerUser(D.registerUserRequest,te).then((D=>D(this.axios,this.basePath)))}};const WithdrawalsApiAxiosParamCreator=function(D){return{createWithdrawal:async(te,he,ye,be={})=>{assertParamExists$1("createWithdrawal","xImxEthAddress",te),assertParamExists$1("createWithdrawal","xImxEthSignature",he),assertParamExists$1("createWithdrawal","createWithdrawalRequest",ye);const ve=new URL("/v1/withdrawals",ca);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...be},Pe={};null!=te&&(Pe["x-imx-eth-address"]=String(te)),null!=he&&(Pe["x-imx-eth-signature"]=String(he)),Pe["Content-Type"]="application/json",setSearchParams$1(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...be.headers},_e.data=serializeDataIfNeeded$1(ye,_e,D),{url:toPathString$1(ve),options:_e}},createWithdrawalV2:async(te,he,ye,be={})=>{assertParamExists$1("createWithdrawalV2","xImxEthAddress",te),assertParamExists$1("createWithdrawalV2","xImxEthSignature",he),assertParamExists$1("createWithdrawalV2","createWithdrawalRequestV2",ye);const ve=new URL("/v2/withdrawals",ca);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...be},Pe={};null!=te&&(Pe["x-imx-eth-address"]=String(te)),null!=he&&(Pe["x-imx-eth-signature"]=String(he)),Pe["Content-Type"]="application/json",setSearchParams$1(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...be.headers},_e.data=serializeDataIfNeeded$1(ye,_e,D),{url:toPathString$1(ve),options:_e}},getSignableWithdrawal:async(te,he={})=>{assertParamExists$1("getSignableWithdrawal","getSignableWithdrawalRequest",te);const ye=new URL("/v1/signable-withdrawal-details",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},getSignableWithdrawalV2:async(te,he={})=>{assertParamExists$1("getSignableWithdrawalV2","getSignableWithdrawalRequest",te);const ye=new URL("/v2/signable-withdrawal-details",ca);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};we["Content-Type"]="application/json",setSearchParams$1(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded$1(te,ve,D),{url:toPathString$1(ye),options:ve}},getWithdrawal:async(te,he={})=>{assertParamExists$1("getWithdrawal","id",te);const ye="/v1/withdrawals/{id}".replace("{id}",encodeURIComponent(String(te))),be=new URL(ye,ca);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he};setSearchParams$1(be,{});let _e=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...he.headers},{url:toPathString$1(be),options:we}},listWithdrawals:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe={})=>{const je=new URL("/v1/withdrawals",ca);let Je;D&&(Je=D.baseOptions);const et={method:"GET",...Je,...qe},tt={};void 0!==te&&(tt.withdrawn_to_wallet=te),void 0!==he&&(tt.rollup_status=he),void 0!==ye&&(tt.page_size=ye),void 0!==be&&(tt.cursor=be),void 0!==ve&&(tt.order_by=ve),void 0!==we&&(tt.direction=we),void 0!==_e&&(tt.user=_e),void 0!==Pe&&(tt.status=Pe),void 0!==Ie&&(tt.min_timestamp=Ie),void 0!==Re&&(tt.max_timestamp=Re),void 0!==ke&&(tt.token_type=ke),void 0!==Oe&&(tt.token_id=Oe),void 0!==xe&&(tt.asset_id=xe),void 0!==Be&&(tt.token_address=Be),void 0!==Fe&&(tt.token_name=Fe),void 0!==De&&(tt.min_quantity=De),void 0!==Le&&(tt.max_quantity=Le),void 0!==Ue&&(tt.metadata=Ue),setSearchParams$1(je,tt);let rt=Je&&Je.headers?Je.headers:{};return et.headers={...rt,...qe.headers},{url:toPathString$1(je),options:et}}}},WithdrawalsApiFp=function(D){const te=WithdrawalsApiAxiosParamCreator(D);return{async createWithdrawal(he,ye,be,ve){const we=await te.createWithdrawal(he,ye,be,ve);return createRequestFunction$1(we,Kt,ia,D)},async createWithdrawalV2(he,ye,be,ve){const we=await te.createWithdrawalV2(he,ye,be,ve);return createRequestFunction$1(we,Kt,ia,D)},async getSignableWithdrawal(he,ye){const be=await te.getSignableWithdrawal(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getSignableWithdrawalV2(he,ye){const be=await te.getSignableWithdrawalV2(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async getWithdrawal(he,ye){const be=await te.getWithdrawal(he,ye);return createRequestFunction$1(be,Kt,ia,D)},async listWithdrawals(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je){const Je=await te.listWithdrawals(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je);return createRequestFunction$1(Je,Kt,ia,D)}}};let Pa=class WithdrawalsApi extends sa{createWithdrawal(D,te){return WithdrawalsApiFp(this.configuration).createWithdrawal(D.xImxEthAddress,D.xImxEthSignature,D.createWithdrawalRequest,te).then((D=>D(this.axios,this.basePath)))}createWithdrawalV2(D,te){return WithdrawalsApiFp(this.configuration).createWithdrawalV2(D.xImxEthAddress,D.xImxEthSignature,D.createWithdrawalRequestV2,te).then((D=>D(this.axios,this.basePath)))}getSignableWithdrawal(D,te){return WithdrawalsApiFp(this.configuration).getSignableWithdrawal(D.getSignableWithdrawalRequest,te).then((D=>D(this.axios,this.basePath)))}getSignableWithdrawalV2(D,te){return WithdrawalsApiFp(this.configuration).getSignableWithdrawalV2(D.getSignableWithdrawalRequest,te).then((D=>D(this.axios,this.basePath)))}getWithdrawal(D,te){return WithdrawalsApiFp(this.configuration).getWithdrawal(D.id,te).then((D=>D(this.axios,this.basePath)))}listWithdrawals(D={},te){return WithdrawalsApiFp(this.configuration).listWithdrawals(D.withdrawnToWallet,D.rollupStatus,D.pageSize,D.cursor,D.orderBy,D.direction,D.user,D.status,D.minTimestamp,D.maxTimestamp,D.tokenType,D.tokenId,D.assetId,D.tokenAddress,D.tokenName,D.minQuantity,D.maxQuantity,D.metadata,te).then((D=>D(this.axios,this.basePath)))}},Sa=class Configuration{apiKey;username;password;accessToken;basePath;baseOptions;formDataCtor;constructor(D={}){this.apiKey=D.apiKey,this.username=D.username,this.password=D.password,this.accessToken=D.accessToken,this.basePath=D.basePath,this.baseOptions=D.baseOptions,this.formDataCtor=D.formDataCtor}isJsonMime(D){const te=new RegExp("^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$","i");return null!==D&&(te.test(D)||"application/json-patch+json"===D.toLowerCase())}};var Ca=Object.freeze({__proto__:null,AssetsApi:da,AssetsApiAxiosParamCreator:AssetsApiAxiosParamCreator,AssetsApiFactory:function(D,te,he){const ye=AssetsApiFp(D);return{getAsset:(D,be,ve,we)=>ye.getAsset(D,be,ve,we).then((D=>D(he,te))),listAssets:(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe)=>ye.listAssets(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe).then((D=>D(he,te)))}},AssetsApiFp:AssetsApiFp,BalancesApi:ua,BalancesApiAxiosParamCreator:BalancesApiAxiosParamCreator,BalancesApiFactory:function(D,te,he){const ye=BalancesApiFp(D);return{getBalance:(D,be,ve)=>ye.getBalance(D,be,ve).then((D=>D(he,te))),listBalances:(D,be,ve,we,_e,Pe)=>ye.listBalances(D,be,ve,we,_e,Pe).then((D=>D(he,te)))}},BalancesApiFp:BalancesApiFp,CollectionsApi:fa,CollectionsApiAxiosParamCreator:CollectionsApiAxiosParamCreator$1,CollectionsApiFactory:function(D,te,he){const ye=CollectionsApiFp$1(D);return{createCollection:(D,be,ve,we,_e)=>ye.createCollection(D,be,ve,we,_e).then((D=>D(he,te))),getCollection:(D,be)=>ye.getCollection(D,be).then((D=>D(he,te))),listCollectionFilters:(D,be,ve,we)=>ye.listCollectionFilters(D,be,ve,we).then((D=>D(he,te))),listCollections:(D,be,ve,we,_e,Pe,Ie,Re)=>ye.listCollections(D,be,ve,we,_e,Pe,Ie,Re).then((D=>D(he,te))),summarizeCollections:(D,be)=>ye.summarizeCollections(D,be).then((D=>D(he,te))),updateCollection:(D,be,ve,we,_e)=>ye.updateCollection(D,be,ve,we,_e).then((D=>D(he,te)))}},CollectionsApiFp:CollectionsApiFp$1,Configuration:Sa,CreateExchangeAndURLAPIRequestProviderEnum:{Moonpay:"moonpay",Layerswap:"layerswap"},CreateExchangeAndURLAPIRequestTypeEnum:{Onramp:"onramp",Offramp:"offramp"},CreateProjectGroupRequestChainTypeEnum:{Starkex:"starkex",Zkevm:"zkevm"},DepositsApi:la,DepositsApiAxiosParamCreator:DepositsApiAxiosParamCreator,DepositsApiFactory:function(D,te,he){const ye=DepositsApiFp(D);return{getDeposit:(D,be)=>ye.getDeposit(D,be).then((D=>D(he,te))),getSignableDeposit:(D,be)=>ye.getSignableDeposit(D,be).then((D=>D(he,te))),listDeposits:(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe)=>ye.listDeposits(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe).then((D=>D(he,te)))}},DepositsApiFp:DepositsApiFp,EncodeAssetRequestTokenTypeEnum:{Eth:"ETH",Erc20:"ERC20",Erc721:"ERC721"},EncodingApi:pa,EncodingApiAxiosParamCreator:EncodingApiAxiosParamCreator,EncodingApiFactory:function(D,te,he){const ye=EncodingApiFp(D);return{encodeAsset:(D,be,ve)=>ye.encodeAsset(D,be,ve).then((D=>D(he,te)))}},EncodingApiFp:EncodingApiFp,ExchangesApi:ha,ExchangesApiAxiosParamCreator:ExchangesApiAxiosParamCreator,ExchangesApiFactory:function(D,te,he){const ye=ExchangesApiFp(D);return{createExchange:(D,be)=>ye.createExchange(D,be).then((D=>D(he,te))),createExchangeTransfer:(D,be,ve,we,_e,Pe)=>ye.createExchangeTransfer(D,be,ve,we,_e,Pe).then((D=>D(he,te))),getExchange:(D,be)=>ye.getExchange(D,be).then((D=>D(he,te))),getExchangeSignableTransfer:(D,be,ve)=>ye.getExchangeSignableTransfer(D,be,ve).then((D=>D(he,te))),getExchanges:(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe)=>ye.getExchanges(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe).then((D=>D(he,te)))}},ExchangesApiFp:ExchangesApiFp,FeeTokenTypeEnum:{Eth:"ETH",Erc20:"ERC20"},GetMetadataRefreshResponseStatusEnum:{Queued:"queued",InProgress:"in_progress",Completed:"completed"},MetadataApi:ya,MetadataApiAxiosParamCreator:MetadataApiAxiosParamCreator$1,MetadataApiFactory:function(D,te,he){const ye=MetadataApiFp$1(D);return{addMetadataSchemaToCollection:(D,be,ve,we,_e)=>ye.addMetadataSchemaToCollection(D,be,ve,we,_e).then((D=>D(he,te))),getMetadataSchema:(D,be)=>ye.getMetadataSchema(D,be).then((D=>D(he,te))),updateMetadataSchemaByName:(D,be,ve,we,_e,Pe)=>ye.updateMetadataSchemaByName(D,be,ve,we,_e,Pe).then((D=>D(he,te)))}},MetadataApiFp:MetadataApiFp$1,MetadataRefreshExcludingSummaryStatusEnum:{Queued:"queued",InProgress:"in_progress",Completed:"completed"},MetadataRefreshesApi:ma,MetadataRefreshesApiAxiosParamCreator:MetadataRefreshesApiAxiosParamCreator,MetadataRefreshesApiFactory:function(D,te,he){const ye=MetadataRefreshesApiFp(D);return{getAListOfMetadataRefreshes:(D,be,ve,we,_e,Pe,Ie)=>ye.getAListOfMetadataRefreshes(D,be,ve,we,_e,Pe,Ie).then((D=>D(he,te))),getMetadataRefreshErrors:(D,be,ve,we,_e,Pe,Ie)=>ye.getMetadataRefreshErrors(D,be,ve,we,_e,Pe,Ie).then((D=>D(he,te))),getMetadataRefreshResults:(D,be,ve,we,_e)=>ye.getMetadataRefreshResults(D,be,ve,we,_e).then((D=>D(he,te))),requestAMetadataRefresh:(D,be,ve,we,_e)=>ye.requestAMetadataRefresh(D,be,ve,we,_e).then((D=>D(he,te)))}},MetadataRefreshesApiFp:MetadataRefreshesApiFp,MetadataSchemaRequestTypeEnum:{Enum:"enum",Text:"text",Boolean:"boolean",Continuous:"continuous",Discrete:"discrete"},MintsApi:ba,MintsApiAxiosParamCreator:MintsApiAxiosParamCreator,MintsApiFactory:function(D,te,he){const ye=MintsApiFp(D);return{getMint:(D,be)=>ye.getMint(D,be).then((D=>D(he,te))),getMintableTokenDetailsByClientTokenId:(D,be,ve)=>ye.getMintableTokenDetailsByClientTokenId(D,be,ve).then((D=>D(he,te))),listMints:(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue)=>ye.listMints(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue).then((D=>D(he,te))),mintTokens:(D,be)=>ye.mintTokens(D,be).then((D=>D(he,te)))}},MintsApiFp:MintsApiFp,NftCheckoutPrimaryApi:ga,NftCheckoutPrimaryApiAxiosParamCreator:NftCheckoutPrimaryApiAxiosParamCreator,NftCheckoutPrimaryApiFactory:function(D,te,he){const ye=NftCheckoutPrimaryApiFp(D);return{createNftPrimary:(D,be)=>ye.createNftPrimary(D,be).then((D=>D(he,te))),getCurrenciesNFTCheckoutPrimary:(D,be,ve)=>ye.getCurrenciesNFTCheckoutPrimary(D,be,ve).then((D=>D(he,te))),getNftPrimaryTransaction:(D,be)=>ye.getNftPrimaryTransaction(D,be).then((D=>D(he,te))),getNftPrimaryTransactions:(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be)=>ye.getNftPrimaryTransactions(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be).then((D=>D(he,te))),registerNftPrimarySalesContract:(D,be)=>ye.registerNftPrimarySalesContract(D,be).then((D=>D(he,te)))}},NftCheckoutPrimaryApiFp:NftCheckoutPrimaryApiFp,OrdersApi:va,OrdersApiAxiosParamCreator:OrdersApiAxiosParamCreator$1,OrdersApiFactory:function(D,te,he){const ye=OrdersApiFp$1(D);return{cancelOrderV3:(D,be,ve,we,_e,Pe)=>ye.cancelOrderV3(D,be,ve,we,_e,Pe).then((D=>D(he,te))),createOrderV3:(D,be,ve,we,_e)=>ye.createOrderV3(D,be,ve,we,_e).then((D=>D(he,te))),getOrderV3:(D,be,ve,we,_e)=>ye.getOrderV3(D,be,ve,we,_e).then((D=>D(he,te))),getSignableCancelOrderV3:(D,be)=>ye.getSignableCancelOrderV3(D,be).then((D=>D(he,te))),getSignableOrder:(D,be)=>ye.getSignableOrder(D,be).then((D=>D(he,te))),listOrdersV3:(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je,et,tt,rt,nt,at,ut,ht,yt,mt,bt,wt)=>ye.listOrdersV3(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je,et,tt,rt,nt,at,ut,ht,yt,mt,bt,wt).then((D=>D(he,te)))}},OrdersApiFp:OrdersApiFp$1,ProjectsApi:wa,ProjectsApiAxiosParamCreator:ProjectsApiAxiosParamCreator,ProjectsApiFactory:function(D,te,he){const ye=ProjectsApiFp(D);return{getProject:(D,be,ve,we)=>ye.getProject(D,be,ve,we).then((D=>D(he,te)))}},ProjectsApiFp:ProjectsApiFp,TokensApi:_a,TokensApiAxiosParamCreator:TokensApiAxiosParamCreator$1,TokensApiFactory:function(D,te,he){const ye=TokensApiFp$1(D);return{getToken:(D,be)=>ye.getToken(D,be).then((D=>D(he,te))),listTokens:(D,be,ve,we,_e,Pe,Ie)=>ye.listTokens(D,be,ve,we,_e,Pe,Ie).then((D=>D(he,te)))}},TokensApiFp:TokensApiFp$1,TradesApi:Ta,TradesApiAxiosParamCreator:TradesApiAxiosParamCreator,TradesApiFactory:function(D,te,he){const ye=TradesApiFp(D);return{createTradeV3:(D,be,ve,we,_e)=>ye.createTradeV3(D,be,ve,we,_e).then((D=>D(he,te))),getSignableTrade:(D,be)=>ye.getSignableTrade(D,be).then((D=>D(he,te))),getTradeV3:(D,be)=>ye.getTradeV3(D,be).then((D=>D(he,te))),listTradesV3:(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be)=>ye.listTradesV3(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be).then((D=>D(he,te)))}},TradesApiFp:TradesApiFp,TransfersApi:Aa,TransfersApiAxiosParamCreator:TransfersApiAxiosParamCreator,TransfersApiFactory:function(D,te,he){const ye=TransfersApiFp(D);return{createTransfer:(D,be,ve,we,_e)=>ye.createTransfer(D,be,ve,we,_e).then((D=>D(he,te))),createTransferV1:(D,be,ve,we,_e)=>ye.createTransferV1(D,be,ve,we,_e).then((D=>D(he,te))),getSignableTransfer:(D,be)=>ye.getSignableTransfer(D,be).then((D=>D(he,te))),getSignableTransferV1:(D,be)=>ye.getSignableTransferV1(D,be).then((D=>D(he,te))),getTransfer:(D,be)=>ye.getTransfer(D,be).then((D=>D(he,te))),listTransfers:(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je)=>ye.listTransfers(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je).then((D=>D(he,te)))}},TransfersApiFp:TransfersApiFp,UsersApi:Ea,UsersApiAxiosParamCreator:UsersApiAxiosParamCreator,UsersApiFactory:function(D,te,he){const ye=UsersApiFp(D);return{getSignableRegistration:(D,be)=>ye.getSignableRegistration(D,be).then((D=>D(he,te))),getSignableRegistrationOffchain:(D,be)=>ye.getSignableRegistrationOffchain(D,be).then((D=>D(he,te))),getUsers:(D,be)=>ye.getUsers(D,be).then((D=>D(he,te))),registerPassportUser:(D,be,ve)=>ye.registerPassportUser(D,be,ve).then((D=>D(he,te))),registerPassportUserV2:(D,be,ve)=>ye.registerPassportUserV2(D,be,ve).then((D=>D(he,te))),registerUser:(D,be)=>ye.registerUser(D,be).then((D=>D(he,te)))}},UsersApiFp:UsersApiFp,WithdrawalsApi:Pa,WithdrawalsApiAxiosParamCreator:WithdrawalsApiAxiosParamCreator,WithdrawalsApiFactory:function(D,te,he){const ye=WithdrawalsApiFp(D);return{createWithdrawal:(D,be,ve,we)=>ye.createWithdrawal(D,be,ve,we).then((D=>D(he,te))),createWithdrawalV2:(D,be,ve,we)=>ye.createWithdrawalV2(D,be,ve,we).then((D=>D(he,te))),getSignableWithdrawal:(D,be)=>ye.getSignableWithdrawal(D,be).then((D=>D(he,te))),getSignableWithdrawalV2:(D,be)=>ye.getSignableWithdrawalV2(D,be).then((D=>D(he,te))),getWithdrawal:(D,be)=>ye.getWithdrawal(D,be).then((D=>D(he,te))),listWithdrawals:(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je)=>ye.listWithdrawals(D,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je).then((D=>D(he,te)))}},WithdrawalsApiFp:WithdrawalsApiFp});const Ia="https://api.sandbox.immutable.com".replace(/\/+$/,"");class BaseAPI{basePath;axios;configuration;constructor(D,te=Ia,he=Kt){this.basePath=te,this.axios=he,D&&(this.configuration=D,this.basePath=D.basePath||this.basePath)}}class RequiredError extends Error{field;constructor(D,te){super(te),this.field=D,this.name="RequiredError"}}const Ra="https://example.com",assertParamExists=function(D,te,he){if(null==he)throw new RequiredError(te,`Required parameter ${te} was null or undefined when calling ${D}.`)},setApiKeyToObject=async function(D,te,he){if(he&&he.apiKey){const ye="function"==typeof he.apiKey?await he.apiKey(te):await he.apiKey;D[te]=ye}},setBearerAuthToObject=async function(D,te){if(te&&te.accessToken){const he="function"==typeof te.accessToken?await te.accessToken():await te.accessToken;D.Authorization="Bearer "+he}};function setFlattenedQueryParams(D,te,he=""){null!=te&&("object"==typeof te?Array.isArray(te)?te.forEach((te=>setFlattenedQueryParams(D,te,he))):Object.keys(te).forEach((ye=>setFlattenedQueryParams(D,te[ye],`${he}${""!==he?".":""}${ye}`))):D.has(he)?D.append(he,te):D.set(he,te))}const setSearchParams=function(D,...te){const he=new URLSearchParams(D.search);setFlattenedQueryParams(he,te),D.search=he.toString()},serializeDataIfNeeded=function(D,te,he){const ye="string"!=typeof D;return(ye&&he&&he.isJsonMime?he.isJsonMime(te.headers["Content-Type"]):ye)?JSON.stringify(void 0!==D?D:{}):D||""},toPathString=function(D){return D.pathname+D.search+D.hash},createRequestFunction=function(D,te,he,ye){return(be=te,ve=he)=>{const we={...D.options,url:(ye?.basePath||be.defaults.baseURL||ve)+D.url};return be.request(we)}},ActivitiesApiAxiosParamCreator=function(D){return{getActivity:async(te,he,ye={})=>{assertParamExists("getActivity","chainName",te),assertParamExists("getActivity","activityId",he);const be="/v1/chains/{chain_name}/activities/{activity_id}".replace("{chain_name}",encodeURIComponent(String(te))).replace("{activity_id}",encodeURIComponent(String(he))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString(ve),options:_e}},listActivities:async(te,he,ye,be,ve,we,_e,Pe,Ie={})=>{assertParamExists("listActivities","chainName",te);const Re="/v1/chains/{chain_name}/activities".replace("{chain_name}",encodeURIComponent(String(te))),ke=new URL(Re,Ra);let Oe;D&&(Oe=D.baseOptions);const xe={method:"GET",...Oe,...Ie},Be={};void 0!==he&&(Be.contract_address=he),void 0!==ye&&(Be.token_id=ye),void 0!==be&&(Be.account_address=be),void 0!==ve&&(Be.activity_type=ve),void 0!==we&&(Be.transaction_hash=we),void 0!==_e&&(Be.page_cursor=_e),void 0!==Pe&&(Be.page_size=Pe),setSearchParams(ke,Be);let Fe=Oe&&Oe.headers?Oe.headers:{};return xe.headers={...Fe,...Ie.headers},{url:toPathString(ke),options:xe}},listActivityHistory:async(te,he,ye,be,ve,we,_e,Pe={})=>{assertParamExists("listActivityHistory","chainName",te),assertParamExists("listActivityHistory","fromUpdatedAt",he);const Ie="/v1/chains/{chain_name}/activity-history".replace("{chain_name}",encodeURIComponent(String(te))),Re=new URL(Ie,Ra);let ke;D&&(ke=D.baseOptions);const Oe={method:"GET",...ke,...Pe},xe={};void 0!==he&&(xe.from_updated_at=he instanceof Date?he.toISOString():he),void 0!==ye&&(xe.to_updated_at=ye instanceof Date?ye.toISOString():ye),void 0!==be&&(xe.contract_address=be),void 0!==ve&&(xe.activity_type=ve),void 0!==we&&(xe.page_cursor=we),void 0!==_e&&(xe.page_size=_e),setSearchParams(Re,xe);let Be=ke&&ke.headers?ke.headers:{};return Oe.headers={...Be,...Pe.headers},{url:toPathString(Re),options:Oe}}}},ActivitiesApiFp=function(D){const te=ActivitiesApiAxiosParamCreator(D);return{async getActivity(he,ye,be){const ve=await te.getActivity(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async listActivities(he,ye,be,ve,we,_e,Pe,Ie,Re){const ke=await te.listActivities(he,ye,be,ve,we,_e,Pe,Ie,Re);return createRequestFunction(ke,Kt,Ia,D)},async listActivityHistory(he,ye,be,ve,we,_e,Pe,Ie){const Re=await te.listActivityHistory(he,ye,be,ve,we,_e,Pe,Ie);return createRequestFunction(Re,Kt,Ia,D)}}};class ActivitiesApi extends BaseAPI{getActivity(D,te){return ActivitiesApiFp(this.configuration).getActivity(D.chainName,D.activityId,te).then((D=>D(this.axios,this.basePath)))}listActivities(D,te){return ActivitiesApiFp(this.configuration).listActivities(D.chainName,D.contractAddress,D.tokenId,D.accountAddress,D.activityType,D.transactionHash,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}listActivityHistory(D,te){return ActivitiesApiFp(this.configuration).listActivityHistory(D.chainName,D.fromUpdatedAt,D.toUpdatedAt,D.contractAddress,D.activityType,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}}const ChainsApiAxiosParamCreator=function(D){return{listChains:async(te,he,ye={})=>{const be=new URL("/v1/chains",Ra);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...ye},_e={};void 0!==te&&(_e.page_cursor=te),void 0!==he&&(_e.page_size=he),setSearchParams(be,_e);let Pe=ve&&ve.headers?ve.headers:{};return we.headers={...Pe,...ye.headers},{url:toPathString(be),options:we}}}},ChainsApiFp=function(D){const te=ChainsApiAxiosParamCreator(D);return{async listChains(he,ye,be){const ve=await te.listChains(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)}}};class ChainsApi extends BaseAPI{listChains(D={},te){return ChainsApiFp(this.configuration).listChains(D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}}const CollectionsApiAxiosParamCreator=function(D){return{getCollection:async(te,he,ye={})=>{assertParamExists("getCollection","contractAddress",te),assertParamExists("getCollection","chainName",he);const be="/v1/chains/{chain_name}/collections/{contract_address}".replace("{contract_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString(ve),options:_e}},listCollections:async(te,he,ye,be,ve,we,_e={})=>{assertParamExists("listCollections","chainName",te);const Pe="/v1/chains/{chain_name}/collections".replace("{chain_name}",encodeURIComponent(String(te))),Ie=new URL(Pe,Ra);let Re;D&&(Re=D.baseOptions);const ke={method:"GET",...Re,..._e},Oe={};he&&(Oe.contract_address=he),ye&&(Oe.verification_status=ye),void 0!==be&&(Oe.from_updated_at=be instanceof Date?be.toISOString():be),void 0!==ve&&(Oe.page_cursor=ve),void 0!==we&&(Oe.page_size=we),setSearchParams(Ie,Oe);let xe=Re&&Re.headers?Re.headers:{};return ke.headers={...xe,..._e.headers},{url:toPathString(Ie),options:ke}},listCollectionsByNFTOwner:async(te,he,ye,be,ve={})=>{assertParamExists("listCollectionsByNFTOwner","accountAddress",te),assertParamExists("listCollectionsByNFTOwner","chainName",he);const we="/v1/chains/{chain_name}/accounts/{account_address}/collections".replace("{account_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),_e=new URL(we,Ra);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"GET",...Pe,...ve},Re={};void 0!==ye&&(Re.page_cursor=ye),void 0!==be&&(Re.page_size=be),setSearchParams(_e,Re);let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...ke,...ve.headers},{url:toPathString(_e),options:Ie}},refreshCollectionMetadata:async(te,he,ye,be={})=>{assertParamExists("refreshCollectionMetadata","contractAddress",te),assertParamExists("refreshCollectionMetadata","chainName",he),assertParamExists("refreshCollectionMetadata","refreshCollectionMetadataRequest",ye);const ve="/v1/chains/{chain_name}/collections/{contract_address}/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),we=new URL(ve,Ra);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...be},Ie={};await setApiKeyToObject(Ie,"x-immutable-api-key",D),await setBearerAuthToObject(Ie,D),Ie["Content-Type"]="application/json",setSearchParams(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...be.headers},Pe.data=serializeDataIfNeeded(ye,Pe,D),{url:toPathString(we),options:Pe}}}},CollectionsApiFp=function(D){const te=CollectionsApiAxiosParamCreator(D);return{async getCollection(he,ye,be){const ve=await te.getCollection(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async listCollections(he,ye,be,ve,we,_e,Pe){const Ie=await te.listCollections(he,ye,be,ve,we,_e,Pe);return createRequestFunction(Ie,Kt,Ia,D)},async listCollectionsByNFTOwner(he,ye,be,ve,we){const _e=await te.listCollectionsByNFTOwner(he,ye,be,ve,we);return createRequestFunction(_e,Kt,Ia,D)},async refreshCollectionMetadata(he,ye,be,ve){const we=await te.refreshCollectionMetadata(he,ye,be,ve);return createRequestFunction(we,Kt,Ia,D)}}};let ka=class CollectionsApi extends BaseAPI{getCollection(D,te){return CollectionsApiFp(this.configuration).getCollection(D.contractAddress,D.chainName,te).then((D=>D(this.axios,this.basePath)))}listCollections(D,te){return CollectionsApiFp(this.configuration).listCollections(D.chainName,D.contractAddress,D.verificationStatus,D.fromUpdatedAt,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}listCollectionsByNFTOwner(D,te){return CollectionsApiFp(this.configuration).listCollectionsByNFTOwner(D.accountAddress,D.chainName,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}refreshCollectionMetadata(D,te){return CollectionsApiFp(this.configuration).refreshCollectionMetadata(D.contractAddress,D.chainName,D.refreshCollectionMetadataRequest,te).then((D=>D(this.axios,this.basePath)))}};const CraftingApiAxiosParamCreator=function(D){return{signCraftingPayload:async(te,he,ye={})=>{assertParamExists("signCraftingPayload","chainName",te),assertParamExists("signCraftingPayload","signCraftingRequest",he);const be="/v1/chains/{chain_name}/crafting/sign".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};await setApiKeyToObject(Pe,"x-immutable-api-key",D),Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}}}},CraftingApiFp=function(D){const te=CraftingApiAxiosParamCreator(D);return{async signCraftingPayload(he,ye,be){const ve=await te.signCraftingPayload(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)}}};const GuardianApiAxiosParamCreator=function(D){return{approvePendingERC191Message:async(te,he={})=>{assertParamExists("approvePendingERC191Message","messageID",te);const ye="/guardian/v1/erc191-messages/{messageID}/approve".replace("{messageID}",encodeURIComponent(String(te))),be=new URL(ye,Ra);let ve;D&&(ve=D.baseOptions);const we={method:"POST",...ve,...he},_e={};await setBearerAuthToObject(_e,D),setSearchParams(be,{});let Pe=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...Pe,...he.headers},{url:toPathString(be),options:we}},approvePendingMessage:async(te,he={})=>{assertParamExists("approvePendingMessage","messageID",te);const ye="/guardian/v1/messages/{messageID}/approve".replace("{messageID}",encodeURIComponent(String(te))),be=new URL(ye,Ra);let ve;D&&(ve=D.baseOptions);const we={method:"POST",...ve,...he},_e={};await setBearerAuthToObject(_e,D),setSearchParams(be,{});let Pe=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...Pe,...he.headers},{url:toPathString(be),options:we}},approvePendingTransaction:async(te,he,ye={})=>{assertParamExists("approvePendingTransaction","payloadHash",te),assertParamExists("approvePendingTransaction","transactionApprovalRequest",he);const be="/guardian/v1/transactions/{payloadHash}/approve".replace("{payloadHash}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};await setBearerAuthToObject(Pe,D),Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}},evaluateErc191Message:async(te,he={})=>{assertParamExists("evaluateErc191Message","eRC191MessageEvaluationRequest",te);const ye=new URL("/guardian/v1/erc191-messages/evaluate",Ra);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};await setBearerAuthToObject(we,D),we["Content-Type"]="application/json",setSearchParams(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded(te,ve,D),{url:toPathString(ye),options:ve}},evaluateMessage:async(te,he={})=>{assertParamExists("evaluateMessage","messageEvaluationRequest",te);const ye=new URL("/guardian/v1/messages/evaluate",Ra);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};await setBearerAuthToObject(we,D),we["Content-Type"]="application/json",setSearchParams(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded(te,ve,D),{url:toPathString(ye),options:ve}},evaluateTransaction:async(te,he,ye={})=>{assertParamExists("evaluateTransaction","id",te),assertParamExists("evaluateTransaction","transactionEvaluationRequest",he);const be="/guardian/v1/transactions/{id}/evaluate".replace("{id}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};await setBearerAuthToObject(Pe,D),Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}},getErc191MessageByID:async(te,he={})=>{assertParamExists("getErc191MessageByID","messageID",te);const ye="/guardian/v1/erc191-messages/{messageID}".replace("{messageID}",encodeURIComponent(String(te))),be=new URL(ye,Ra);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he},_e={};await setBearerAuthToObject(_e,D),setSearchParams(be,{});let Pe=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...Pe,...he.headers},{url:toPathString(be),options:we}},getMessageByID:async(te,he,ye={})=>{assertParamExists("getMessageByID","messageID",te);const be="/guardian/v1/messages/{messageID}".replace("{messageID}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye},Pe={},Ie={};await setBearerAuthToObject(Pe,D),void 0!==he&&(Ie.includeSimulation=he),setSearchParams(ve,Ie);let Re=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Re,...ye.headers},{url:toPathString(ve),options:_e}},getTransactionByID:async(te,he,ye,be,ve={})=>{assertParamExists("getTransactionByID","transactionID",te),assertParamExists("getTransactionByID","chainType",he);const we="/guardian/v1/transactions/{transactionID}".replace("{transactionID}",encodeURIComponent(String(te))),_e=new URL(we,Ra);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"GET",...Pe,...ve},Re={},ke={};await setBearerAuthToObject(Re,D),void 0!==he&&(ke.chainType=he),void 0!==ye&&(ke.chainID=ye),void 0!==be&&(ke.includeSimulation=be),setSearchParams(_e,ke);let Oe=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...Re,...Oe,...ve.headers},{url:toPathString(_e),options:Ie}}}},GuardianApiFp=function(D){const te=GuardianApiAxiosParamCreator(D);return{async approvePendingERC191Message(he,ye){const be=await te.approvePendingERC191Message(he,ye);return createRequestFunction(be,Kt,Ia,D)},async approvePendingMessage(he,ye){const be=await te.approvePendingMessage(he,ye);return createRequestFunction(be,Kt,Ia,D)},async approvePendingTransaction(he,ye,be){const ve=await te.approvePendingTransaction(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async evaluateErc191Message(he,ye){const be=await te.evaluateErc191Message(he,ye);return createRequestFunction(be,Kt,Ia,D)},async evaluateMessage(he,ye){const be=await te.evaluateMessage(he,ye);return createRequestFunction(be,Kt,Ia,D)},async evaluateTransaction(he,ye,be){const ve=await te.evaluateTransaction(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async getErc191MessageByID(he,ye){const be=await te.getErc191MessageByID(he,ye);return createRequestFunction(be,Kt,Ia,D)},async getMessageByID(he,ye,be){const ve=await te.getMessageByID(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async getTransactionByID(he,ye,be,ve,we){const _e=await te.getTransactionByID(he,ye,be,ve,we);return createRequestFunction(_e,Kt,Ia,D)}}};class GuardianApi extends BaseAPI{approvePendingERC191Message(D,te){return GuardianApiFp(this.configuration).approvePendingERC191Message(D.messageID,te).then((D=>D(this.axios,this.basePath)))}approvePendingMessage(D,te){return GuardianApiFp(this.configuration).approvePendingMessage(D.messageID,te).then((D=>D(this.axios,this.basePath)))}approvePendingTransaction(D,te){return GuardianApiFp(this.configuration).approvePendingTransaction(D.payloadHash,D.transactionApprovalRequest,te).then((D=>D(this.axios,this.basePath)))}evaluateErc191Message(D,te){return GuardianApiFp(this.configuration).evaluateErc191Message(D.eRC191MessageEvaluationRequest,te).then((D=>D(this.axios,this.basePath)))}evaluateMessage(D,te){return GuardianApiFp(this.configuration).evaluateMessage(D.messageEvaluationRequest,te).then((D=>D(this.axios,this.basePath)))}evaluateTransaction(D,te){return GuardianApiFp(this.configuration).evaluateTransaction(D.id,D.transactionEvaluationRequest,te).then((D=>D(this.axios,this.basePath)))}getErc191MessageByID(D,te){return GuardianApiFp(this.configuration).getErc191MessageByID(D.messageID,te).then((D=>D(this.axios,this.basePath)))}getMessageByID(D,te){return GuardianApiFp(this.configuration).getMessageByID(D.messageID,D.includeSimulation,te).then((D=>D(this.axios,this.basePath)))}getTransactionByID(D,te){return GuardianApiFp(this.configuration).getTransactionByID(D.transactionID,D.chainType,D.chainID,D.includeSimulation,te).then((D=>D(this.axios,this.basePath)))}}const MetadataApiAxiosParamCreator=function(D){return{getMetadata:async(te,he,ye,be={})=>{assertParamExists("getMetadata","chainName",te),assertParamExists("getMetadata","contractAddress",he),assertParamExists("getMetadata","metadataId",ye);const ve="/v1/chains/{chain_name}/collections/{contract_address}/metadata/{metadata_id}".replace("{chain_name}",encodeURIComponent(String(te))).replace("{contract_address}",encodeURIComponent(String(he))).replace("{metadata_id}",encodeURIComponent(String(ye))),we=new URL(ve,Ra);let _e;D&&(_e=D.baseOptions);const Pe={method:"GET",..._e,...be};setSearchParams(we,{});let Ie=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...be.headers},{url:toPathString(we),options:Pe}},listMetadata:async(te,he,ye,be,ve,we={})=>{assertParamExists("listMetadata","chainName",te),assertParamExists("listMetadata","contractAddress",he);const _e="/v1/chains/{chain_name}/collections/{contract_address}/metadata".replace("{chain_name}",encodeURIComponent(String(te))).replace("{contract_address}",encodeURIComponent(String(he))),Pe=new URL(_e,Ra);let Ie;D&&(Ie=D.baseOptions);const Re={method:"GET",...Ie,...we},ke={};void 0!==ye&&(ke.from_updated_at=ye instanceof Date?ye.toISOString():ye),void 0!==be&&(ke.page_cursor=be),void 0!==ve&&(ke.page_size=ve),setSearchParams(Pe,ke);let Oe=Ie&&Ie.headers?Ie.headers:{};return Re.headers={...Oe,...we.headers},{url:toPathString(Pe),options:Re}},listMetadataForChain:async(te,he,ye,be,ve={})=>{assertParamExists("listMetadataForChain","chainName",te);const we="/v1/chains/{chain_name}/metadata".replace("{chain_name}",encodeURIComponent(String(te))),_e=new URL(we,Ra);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"GET",...Pe,...ve},Re={};void 0!==he&&(Re.from_updated_at=he instanceof Date?he.toISOString():he),void 0!==ye&&(Re.page_cursor=ye),void 0!==be&&(Re.page_size=be),setSearchParams(_e,Re);let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...ke,...ve.headers},{url:toPathString(_e),options:Ie}},listStacks:async(te,he,ye={})=>{assertParamExists("listStacks","chainName",te),assertParamExists("listStacks","stackId",he);const be="/v1/chains/{chain_name}/stacks".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye},Pe={};he&&(Pe.stack_id=he),setSearchParams(ve,Pe);let Ie=we&&we.headers?we.headers:{};return _e.headers={...Ie,...ye.headers},{url:toPathString(ve),options:_e}},refreshMetadataByID:async(te,he,ye,be={})=>{assertParamExists("refreshMetadataByID","chainName",te),assertParamExists("refreshMetadataByID","contractAddress",he),assertParamExists("refreshMetadataByID","refreshMetadataByIDRequest",ye);const ve="/v1/chains/{chain_name}/collections/{contract_address}/metadata/refresh-metadata".replace("{chain_name}",encodeURIComponent(String(te))).replace("{contract_address}",encodeURIComponent(String(he))),we=new URL(ve,Ra);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...be},Ie={};await setApiKeyToObject(Ie,"x-immutable-api-key",D),Ie["Content-Type"]="application/json",setSearchParams(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...be.headers},Pe.data=serializeDataIfNeeded(ye,Pe,D),{url:toPathString(we),options:Pe}},refreshNFTMetadataByTokenID:async(te,he,ye,be={})=>{assertParamExists("refreshNFTMetadataByTokenID","contractAddress",te),assertParamExists("refreshNFTMetadataByTokenID","chainName",he),assertParamExists("refreshNFTMetadataByTokenID","refreshNFTMetadataByTokenIDRequest",ye);const ve="/v1/chains/{chain_name}/collections/{contract_address}/nfts/refresh-metadata".replace("{contract_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),we=new URL(ve,Ra);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...be},Ie={};await setApiKeyToObject(Ie,"x-immutable-api-key",D),Ie["Content-Type"]="application/json",setSearchParams(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...be.headers},Pe.data=serializeDataIfNeeded(ye,Pe,D),{url:toPathString(we),options:Pe}}}},MetadataApiFp=function(D){const te=MetadataApiAxiosParamCreator(D);return{async getMetadata(he,ye,be,ve){const we=await te.getMetadata(he,ye,be,ve);return createRequestFunction(we,Kt,Ia,D)},async listMetadata(he,ye,be,ve,we,_e){const Pe=await te.listMetadata(he,ye,be,ve,we,_e);return createRequestFunction(Pe,Kt,Ia,D)},async listMetadataForChain(he,ye,be,ve,we){const _e=await te.listMetadataForChain(he,ye,be,ve,we);return createRequestFunction(_e,Kt,Ia,D)},async listStacks(he,ye,be){const ve=await te.listStacks(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async refreshMetadataByID(he,ye,be,ve){const we=await te.refreshMetadataByID(he,ye,be,ve);return createRequestFunction(we,Kt,Ia,D)},async refreshNFTMetadataByTokenID(he,ye,be,ve){const we=await te.refreshNFTMetadataByTokenID(he,ye,be,ve);return createRequestFunction(we,Kt,Ia,D)}}};const MetadataSearchApiAxiosParamCreator=function(D){return{listFilters:async(te,he,ye={})=>{assertParamExists("listFilters","chainName",te),assertParamExists("listFilters","contractAddress",he);const be="/v1/chains/{chain_name}/search/filters/{contract_address}".replace("{chain_name}",encodeURIComponent(String(te))).replace("{contract_address}",encodeURIComponent(String(he))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString(ve),options:_e}},searchNFTs:async(te,he,ye,be,ve,we,_e,Pe={})=>{assertParamExists("searchNFTs","chainName",te),assertParamExists("searchNFTs","contractAddress",he);const Ie="/v1/chains/{chain_name}/search/nfts".replace("{chain_name}",encodeURIComponent(String(te))),Re=new URL(Ie,Ra);let ke;D&&(ke=D.baseOptions);const Oe={method:"GET",...ke,...Pe},xe={};he&&(xe.contract_address=he),void 0!==ye&&(xe.account_address=ye),be&&(xe.stack_id=be),void 0!==ve&&(xe.only_include_owner_listings=ve),void 0!==we&&(xe.page_size=we),void 0!==_e&&(xe.page_cursor=_e),setSearchParams(Re,xe);let Be=ke&&ke.headers?ke.headers:{};return Oe.headers={...Be,...Pe.headers},{url:toPathString(Re),options:Oe}},searchStacks:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke={})=>{assertParamExists("searchStacks","chainName",te),assertParamExists("searchStacks","contractAddress",he);const Oe="/v1/chains/{chain_name}/search/stacks".replace("{chain_name}",encodeURIComponent(String(te))),xe=new URL(Oe,Ra);let Be;D&&(Be=D.baseOptions);const Fe={method:"GET",...Be,...ke},De={};he&&(De.contract_address=he),void 0!==ye&&(De.account_address=ye),void 0!==be&&(De.only_include_owner_listings=be),void 0!==ve&&(De.only_if_has_active_listings=ve),void 0!==we&&(De.traits=we),void 0!==_e&&(De.keyword=_e),void 0!==Pe&&(De.sort_by=Pe),void 0!==Ie&&(De.page_size=Ie),void 0!==Re&&(De.page_cursor=Re),setSearchParams(xe,De);let Le=Be&&Be.headers?Be.headers:{};return Fe.headers={...Le,...ke.headers},{url:toPathString(xe),options:Fe}}}},MetadataSearchApiFp=function(D){const te=MetadataSearchApiAxiosParamCreator(D);return{async listFilters(he,ye,be){const ve=await te.listFilters(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async searchNFTs(he,ye,be,ve,we,_e,Pe,Ie){const Re=await te.searchNFTs(he,ye,be,ve,we,_e,Pe,Ie);return createRequestFunction(Re,Kt,Ia,D)},async searchStacks(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe){const xe=await te.searchStacks(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe);return createRequestFunction(xe,Kt,Ia,D)}}};const NftOwnersApiAxiosParamCreator=function(D){return{listAllNFTOwners:async(te,he,ye,be,ve={})=>{assertParamExists("listAllNFTOwners","chainName",te);const we="/v1/chains/{chain_name}/nft-owners".replace("{chain_name}",encodeURIComponent(String(te))),_e=new URL(we,Ra);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"GET",...Pe,...ve},Re={};void 0!==he&&(Re.from_updated_at=he instanceof Date?he.toISOString():he),void 0!==ye&&(Re.page_cursor=ye),void 0!==be&&(Re.page_size=be),setSearchParams(_e,Re);let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...ke,...ve.headers},{url:toPathString(_e),options:Ie}},listNFTOwners:async(te,he,ye,be,ve,we={})=>{assertParamExists("listNFTOwners","contractAddress",te),assertParamExists("listNFTOwners","tokenId",he),assertParamExists("listNFTOwners","chainName",ye);const _e="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}/owners".replace("{contract_address}",encodeURIComponent(String(te))).replace("{token_id}",encodeURIComponent(String(he))).replace("{chain_name}",encodeURIComponent(String(ye))),Pe=new URL(_e,Ra);let Ie;D&&(Ie=D.baseOptions);const Re={method:"GET",...Ie,...we},ke={};void 0!==be&&(ke.page_cursor=be),void 0!==ve&&(ke.page_size=ve),setSearchParams(Pe,ke);let Oe=Ie&&Ie.headers?Ie.headers:{};return Re.headers={...Oe,...we.headers},{url:toPathString(Pe),options:Re}},listOwnersByContractAddress:async(te,he,ye,be,ve,we,_e={})=>{assertParamExists("listOwnersByContractAddress","contractAddress",te),assertParamExists("listOwnersByContractAddress","chainName",he);const Pe="/v1/chains/{chain_name}/collections/{contract_address}/owners".replace("{contract_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),Ie=new URL(Pe,Ra);let Re;D&&(Re=D.baseOptions);const ke={method:"GET",...Re,..._e},Oe={};ye&&(Oe.account_address=ye),void 0!==be&&(Oe.from_updated_at=be instanceof Date?be.toISOString():be),void 0!==ve&&(Oe.page_cursor=ve),void 0!==we&&(Oe.page_size=we),setSearchParams(Ie,Oe);let xe=Re&&Re.headers?Re.headers:{};return ke.headers={...xe,..._e.headers},{url:toPathString(Ie),options:ke}}}},NftOwnersApiFp=function(D){const te=NftOwnersApiAxiosParamCreator(D);return{async listAllNFTOwners(he,ye,be,ve,we){const _e=await te.listAllNFTOwners(he,ye,be,ve,we);return createRequestFunction(_e,Kt,Ia,D)},async listNFTOwners(he,ye,be,ve,we,_e){const Pe=await te.listNFTOwners(he,ye,be,ve,we,_e);return createRequestFunction(Pe,Kt,Ia,D)},async listOwnersByContractAddress(he,ye,be,ve,we,_e,Pe){const Ie=await te.listOwnersByContractAddress(he,ye,be,ve,we,_e,Pe);return createRequestFunction(Ie,Kt,Ia,D)}}};class NftOwnersApi extends BaseAPI{listAllNFTOwners(D,te){return NftOwnersApiFp(this.configuration).listAllNFTOwners(D.chainName,D.fromUpdatedAt,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}listNFTOwners(D,te){return NftOwnersApiFp(this.configuration).listNFTOwners(D.contractAddress,D.tokenId,D.chainName,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}listOwnersByContractAddress(D,te){return NftOwnersApiFp(this.configuration).listOwnersByContractAddress(D.contractAddress,D.chainName,D.accountAddress,D.fromUpdatedAt,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}}const NftsApiAxiosParamCreator=function(D){return{createMintRequest:async(te,he,ye,be={})=>{assertParamExists("createMintRequest","contractAddress",te),assertParamExists("createMintRequest","chainName",he),assertParamExists("createMintRequest","createMintRequestRequest",ye);const ve="/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests".replace("{contract_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),we=new URL(ve,Ra);let _e;D&&(_e=D.baseOptions);const Pe={method:"POST",..._e,...be},Ie={};await setApiKeyToObject(Ie,"x-immutable-api-key",D),Ie["Content-Type"]="application/json",setSearchParams(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...be.headers},Pe.data=serializeDataIfNeeded(ye,Pe,D),{url:toPathString(we),options:Pe}},getMintRequest:async(te,he,ye,be={})=>{assertParamExists("getMintRequest","contractAddress",te),assertParamExists("getMintRequest","chainName",he),assertParamExists("getMintRequest","referenceId",ye);const ve="/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests/{reference_id}".replace("{contract_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))).replace("{reference_id}",encodeURIComponent(String(ye))),we=new URL(ve,Ra);let _e;D&&(_e=D.baseOptions);const Pe={method:"GET",..._e,...be},Ie={};await setApiKeyToObject(Ie,"x-immutable-api-key",D),setSearchParams(we,{});let Re=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...Re,...be.headers},{url:toPathString(we),options:Pe}},getNFT:async(te,he,ye,be={})=>{assertParamExists("getNFT","contractAddress",te),assertParamExists("getNFT","tokenId",he),assertParamExists("getNFT","chainName",ye);const ve="/v1/chains/{chain_name}/collections/{contract_address}/nfts/{token_id}".replace("{contract_address}",encodeURIComponent(String(te))).replace("{token_id}",encodeURIComponent(String(he))).replace("{chain_name}",encodeURIComponent(String(ye))),we=new URL(ve,Ra);let _e;D&&(_e=D.baseOptions);const Pe={method:"GET",..._e,...be};setSearchParams(we,{});let Ie=_e&&_e.headers?_e.headers:{};return Pe.headers={...Ie,...be.headers},{url:toPathString(we),options:Pe}},listAllNFTs:async(te,he,ye,be,ve={})=>{assertParamExists("listAllNFTs","chainName",te);const we="/v1/chains/{chain_name}/nfts".replace("{chain_name}",encodeURIComponent(String(te))),_e=new URL(we,Ra);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"GET",...Pe,...ve},Re={};void 0!==he&&(Re.from_updated_at=he instanceof Date?he.toISOString():he),void 0!==ye&&(Re.page_cursor=ye),void 0!==be&&(Re.page_size=be),setSearchParams(_e,Re);let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...ke,...ve.headers},{url:toPathString(_e),options:Ie}},listMintRequests:async(te,he,ye,be,ve,we={})=>{assertParamExists("listMintRequests","contractAddress",te),assertParamExists("listMintRequests","chainName",he);const _e="/v1/chains/{chain_name}/collections/{contract_address}/nfts/mint-requests".replace("{contract_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),Pe=new URL(_e,Ra);let Ie;D&&(Ie=D.baseOptions);const Re={method:"GET",...Ie,...we},ke={},Oe={};await setApiKeyToObject(ke,"x-immutable-api-key",D),void 0!==ye&&(Oe.page_cursor=ye),void 0!==be&&(Oe.page_size=be),void 0!==ve&&(Oe.status=ve),setSearchParams(Pe,Oe);let xe=Ie&&Ie.headers?Ie.headers:{};return Re.headers={...ke,...xe,...we.headers},{url:toPathString(Pe),options:Re}},listNFTs:async(te,he,ye,be,ve,we,_e={})=>{assertParamExists("listNFTs","contractAddress",te),assertParamExists("listNFTs","chainName",he);const Pe="/v1/chains/{chain_name}/collections/{contract_address}/nfts".replace("{contract_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),Ie=new URL(Pe,Ra);let Re;D&&(Re=D.baseOptions);const ke={method:"GET",...Re,..._e},Oe={};ye&&(Oe.token_id=ye),void 0!==be&&(Oe.from_updated_at=be instanceof Date?be.toISOString():be),void 0!==ve&&(Oe.page_cursor=ve),void 0!==we&&(Oe.page_size=we),setSearchParams(Ie,Oe);let xe=Re&&Re.headers?Re.headers:{};return ke.headers={...xe,..._e.headers},{url:toPathString(Ie),options:ke}},listNFTsByAccountAddress:async(te,he,ye,be,ve,we,_e,Pe={})=>{assertParamExists("listNFTsByAccountAddress","accountAddress",te),assertParamExists("listNFTsByAccountAddress","chainName",he);const Ie="/v1/chains/{chain_name}/accounts/{account_address}/nfts".replace("{account_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),Re=new URL(Ie,Ra);let ke;D&&(ke=D.baseOptions);const Oe={method:"GET",...ke,...Pe},xe={};void 0!==ye&&(xe.contract_address=ye),be&&(xe.token_id=be),void 0!==ve&&(xe.from_updated_at=ve instanceof Date?ve.toISOString():ve),void 0!==we&&(xe.page_cursor=we),void 0!==_e&&(xe.page_size=_e),setSearchParams(Re,xe);let Be=ke&&ke.headers?ke.headers:{};return Oe.headers={...Be,...Pe.headers},{url:toPathString(Re),options:Oe}}}},NftsApiFp=function(D){const te=NftsApiAxiosParamCreator(D);return{async createMintRequest(he,ye,be,ve){const we=await te.createMintRequest(he,ye,be,ve);return createRequestFunction(we,Kt,Ia,D)},async getMintRequest(he,ye,be,ve){const we=await te.getMintRequest(he,ye,be,ve);return createRequestFunction(we,Kt,Ia,D)},async getNFT(he,ye,be,ve){const we=await te.getNFT(he,ye,be,ve);return createRequestFunction(we,Kt,Ia,D)},async listAllNFTs(he,ye,be,ve,we){const _e=await te.listAllNFTs(he,ye,be,ve,we);return createRequestFunction(_e,Kt,Ia,D)},async listMintRequests(he,ye,be,ve,we,_e){const Pe=await te.listMintRequests(he,ye,be,ve,we,_e);return createRequestFunction(Pe,Kt,Ia,D)},async listNFTs(he,ye,be,ve,we,_e,Pe){const Ie=await te.listNFTs(he,ye,be,ve,we,_e,Pe);return createRequestFunction(Ie,Kt,Ia,D)},async listNFTsByAccountAddress(he,ye,be,ve,we,_e,Pe,Ie){const Re=await te.listNFTsByAccountAddress(he,ye,be,ve,we,_e,Pe,Ie);return createRequestFunction(Re,Kt,Ia,D)}}};class NftsApi extends BaseAPI{createMintRequest(D,te){return NftsApiFp(this.configuration).createMintRequest(D.contractAddress,D.chainName,D.createMintRequestRequest,te).then((D=>D(this.axios,this.basePath)))}getMintRequest(D,te){return NftsApiFp(this.configuration).getMintRequest(D.contractAddress,D.chainName,D.referenceId,te).then((D=>D(this.axios,this.basePath)))}getNFT(D,te){return NftsApiFp(this.configuration).getNFT(D.contractAddress,D.tokenId,D.chainName,te).then((D=>D(this.axios,this.basePath)))}listAllNFTs(D,te){return NftsApiFp(this.configuration).listAllNFTs(D.chainName,D.fromUpdatedAt,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}listMintRequests(D,te){return NftsApiFp(this.configuration).listMintRequests(D.contractAddress,D.chainName,D.pageCursor,D.pageSize,D.status,te).then((D=>D(this.axios,this.basePath)))}listNFTs(D,te){return NftsApiFp(this.configuration).listNFTs(D.contractAddress,D.chainName,D.tokenId,D.fromUpdatedAt,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}listNFTsByAccountAddress(D,te){return NftsApiFp(this.configuration).listNFTsByAccountAddress(D.accountAddress,D.chainName,D.contractAddress,D.tokenId,D.fromUpdatedAt,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}}const OrdersApiAxiosParamCreator=function(D){return{cancelOrders:async(te,he,ye={})=>{assertParamExists("cancelOrders","chainName",te),assertParamExists("cancelOrders","cancelOrdersRequestBody",he);const be="/v1/chains/{chain_name}/orders/cancel".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}},createBid:async(te,he,ye={})=>{assertParamExists("createBid","chainName",te),assertParamExists("createBid","createBidRequestBody",he);const be="/v1/chains/{chain_name}/orders/bids".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}},createCollectionBid:async(te,he,ye={})=>{assertParamExists("createCollectionBid","chainName",te),assertParamExists("createCollectionBid","createCollectionBidRequestBody",he);const be="/v1/chains/{chain_name}/orders/collection-bids".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}},createListing:async(te,he,ye={})=>{assertParamExists("createListing","chainName",te),assertParamExists("createListing","createListingRequestBody",he);const be="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}},fulfillmentData:async(te,he,ye={})=>{assertParamExists("fulfillmentData","chainName",te),assertParamExists("fulfillmentData","fulfillmentDataRequest",he);const be="/v1/chains/{chain_name}/orders/fulfillment-data".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}},getBid:async(te,he,ye={})=>{assertParamExists("getBid","chainName",te),assertParamExists("getBid","bidId",he);const be="/v1/chains/{chain_name}/orders/bids/{bid_id}".replace("{chain_name}",encodeURIComponent(String(te))).replace("{bid_id}",encodeURIComponent(String(he))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString(ve),options:_e}},getCollectionBid:async(te,he,ye={})=>{assertParamExists("getCollectionBid","chainName",te),assertParamExists("getCollectionBid","collectionBidId",he);const be="/v1/chains/{chain_name}/orders/collection-bids/{collection_bid_id}".replace("{chain_name}",encodeURIComponent(String(te))).replace("{collection_bid_id}",encodeURIComponent(String(he))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString(ve),options:_e}},getListing:async(te,he,ye={})=>{assertParamExists("getListing","chainName",te),assertParamExists("getListing","listingId",he);const be="/v1/chains/{chain_name}/orders/listings/{listing_id}".replace("{chain_name}",encodeURIComponent(String(te))).replace("{listing_id}",encodeURIComponent(String(he))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString(ve),options:_e}},getTrade:async(te,he,ye={})=>{assertParamExists("getTrade","chainName",te),assertParamExists("getTrade","tradeId",he);const be="/v1/chains/{chain_name}/trades/{trade_id}".replace("{chain_name}",encodeURIComponent(String(te))).replace("{trade_id}",encodeURIComponent(String(he))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString(ve),options:_e}},listBids:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe={})=>{assertParamExists("listBids","chainName",te);const Be="/v1/chains/{chain_name}/orders/bids".replace("{chain_name}",encodeURIComponent(String(te))),Fe=new URL(Be,Ra);let De;D&&(De=D.baseOptions);const Le={method:"GET",...De,...xe},Ue={};void 0!==he&&(Ue.status=he),void 0!==ye&&(Ue.buy_item_contract_address=ye),void 0!==be&&(Ue.sell_item_contract_address=be),void 0!==ve&&(Ue.account_address=ve),void 0!==we&&(Ue.buy_item_metadata_id=we),void 0!==_e&&(Ue.buy_item_token_id=_e),void 0!==Pe&&(Ue.from_updated_at=Pe instanceof Date?Pe.toISOString():Pe),void 0!==Ie&&(Ue.page_size=Ie),void 0!==Re&&(Ue.sort_by=Re),void 0!==ke&&(Ue.sort_direction=ke),void 0!==Oe&&(Ue.page_cursor=Oe),setSearchParams(Fe,Ue);let qe=De&&De.headers?De.headers:{};return Le.headers={...qe,...xe.headers},{url:toPathString(Fe),options:Le}},listCollectionBids:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke={})=>{assertParamExists("listCollectionBids","chainName",te);const Oe="/v1/chains/{chain_name}/orders/collection-bids".replace("{chain_name}",encodeURIComponent(String(te))),xe=new URL(Oe,Ra);let Be;D&&(Be=D.baseOptions);const Fe={method:"GET",...Be,...ke},De={};void 0!==he&&(De.status=he),void 0!==ye&&(De.buy_item_contract_address=ye),void 0!==be&&(De.sell_item_contract_address=be),void 0!==ve&&(De.account_address=ve),void 0!==we&&(De.from_updated_at=we instanceof Date?we.toISOString():we),void 0!==_e&&(De.page_size=_e),void 0!==Pe&&(De.sort_by=Pe),void 0!==Ie&&(De.sort_direction=Ie),void 0!==Re&&(De.page_cursor=Re),setSearchParams(xe,De);let Le=Be&&Be.headers?Be.headers:{};return Fe.headers={...Le,...ke.headers},{url:toPathString(xe),options:Fe}},listListings:async(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be={})=>{assertParamExists("listListings","chainName",te);const Fe="/v1/chains/{chain_name}/orders/listings".replace("{chain_name}",encodeURIComponent(String(te))),De=new URL(Fe,Ra);let Le;D&&(Le=D.baseOptions);const Ue={method:"GET",...Le,...Be},qe={};void 0!==he&&(qe.status=he),void 0!==ye&&(qe.sell_item_contract_address=ye),void 0!==be&&(qe.buy_item_type=be),void 0!==ve&&(qe.buy_item_contract_address=ve),void 0!==we&&(qe.account_address=we),void 0!==_e&&(qe.sell_item_metadata_id=_e),void 0!==Pe&&(qe.sell_item_token_id=Pe),void 0!==Ie&&(qe.from_updated_at=Ie instanceof Date?Ie.toISOString():Ie),void 0!==Re&&(qe.page_size=Re),void 0!==ke&&(qe.sort_by=ke),void 0!==Oe&&(qe.sort_direction=Oe),void 0!==xe&&(qe.page_cursor=xe),setSearchParams(De,qe);let je=Le&&Le.headers?Le.headers:{};return Ue.headers={...je,...Be.headers},{url:toPathString(De),options:Ue}},listTrades:async(te,he,ye,be,ve,we,_e,Pe,Ie={})=>{assertParamExists("listTrades","chainName",te);const Re="/v1/chains/{chain_name}/trades".replace("{chain_name}",encodeURIComponent(String(te))),ke=new URL(Re,Ra);let Oe;D&&(Oe=D.baseOptions);const xe={method:"GET",...Oe,...Ie},Be={};void 0!==he&&(Be.account_address=he),void 0!==ye&&(Be.sell_item_contract_address=ye),void 0!==be&&(Be.from_indexed_at=be instanceof Date?be.toISOString():be),void 0!==ve&&(Be.page_size=ve),void 0!==we&&(Be.sort_by=we),void 0!==_e&&(Be.sort_direction=_e),void 0!==Pe&&(Be.page_cursor=Pe),setSearchParams(ke,Be);let Fe=Oe&&Oe.headers?Oe.headers:{};return xe.headers={...Fe,...Ie.headers},{url:toPathString(ke),options:xe}}}},OrdersApiFp=function(D){const te=OrdersApiAxiosParamCreator(D);return{async cancelOrders(he,ye,be){const ve=await te.cancelOrders(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async createBid(he,ye,be){const ve=await te.createBid(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async createCollectionBid(he,ye,be){const ve=await te.createCollectionBid(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async createListing(he,ye,be){const ve=await te.createListing(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async fulfillmentData(he,ye,be){const ve=await te.fulfillmentData(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async getBid(he,ye,be){const ve=await te.getBid(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async getCollectionBid(he,ye,be){const ve=await te.getCollectionBid(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async getListing(he,ye,be){const ve=await te.getListing(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async getTrade(he,ye,be){const ve=await te.getTrade(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async listBids(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be){const Fe=await te.listBids(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be);return createRequestFunction(Fe,Kt,Ia,D)},async listCollectionBids(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe){const xe=await te.listCollectionBids(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe);return createRequestFunction(xe,Kt,Ia,D)},async listListings(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe){const De=await te.listListings(he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe);return createRequestFunction(De,Kt,Ia,D)},async listTrades(he,ye,be,ve,we,_e,Pe,Ie,Re){const ke=await te.listTrades(he,ye,be,ve,we,_e,Pe,Ie,Re);return createRequestFunction(ke,Kt,Ia,D)}}};let Oa=class OrdersApi extends BaseAPI{cancelOrders(D,te){return OrdersApiFp(this.configuration).cancelOrders(D.chainName,D.cancelOrdersRequestBody,te).then((D=>D(this.axios,this.basePath)))}createBid(D,te){return OrdersApiFp(this.configuration).createBid(D.chainName,D.createBidRequestBody,te).then((D=>D(this.axios,this.basePath)))}createCollectionBid(D,te){return OrdersApiFp(this.configuration).createCollectionBid(D.chainName,D.createCollectionBidRequestBody,te).then((D=>D(this.axios,this.basePath)))}createListing(D,te){return OrdersApiFp(this.configuration).createListing(D.chainName,D.createListingRequestBody,te).then((D=>D(this.axios,this.basePath)))}fulfillmentData(D,te){return OrdersApiFp(this.configuration).fulfillmentData(D.chainName,D.fulfillmentDataRequest,te).then((D=>D(this.axios,this.basePath)))}getBid(D,te){return OrdersApiFp(this.configuration).getBid(D.chainName,D.bidId,te).then((D=>D(this.axios,this.basePath)))}getCollectionBid(D,te){return OrdersApiFp(this.configuration).getCollectionBid(D.chainName,D.collectionBidId,te).then((D=>D(this.axios,this.basePath)))}getListing(D,te){return OrdersApiFp(this.configuration).getListing(D.chainName,D.listingId,te).then((D=>D(this.axios,this.basePath)))}getTrade(D,te){return OrdersApiFp(this.configuration).getTrade(D.chainName,D.tradeId,te).then((D=>D(this.axios,this.basePath)))}listBids(D,te){return OrdersApiFp(this.configuration).listBids(D.chainName,D.status,D.buyItemContractAddress,D.sellItemContractAddress,D.accountAddress,D.buyItemMetadataId,D.buyItemTokenId,D.fromUpdatedAt,D.pageSize,D.sortBy,D.sortDirection,D.pageCursor,te).then((D=>D(this.axios,this.basePath)))}listCollectionBids(D,te){return OrdersApiFp(this.configuration).listCollectionBids(D.chainName,D.status,D.buyItemContractAddress,D.sellItemContractAddress,D.accountAddress,D.fromUpdatedAt,D.pageSize,D.sortBy,D.sortDirection,D.pageCursor,te).then((D=>D(this.axios,this.basePath)))}listListings(D,te){return OrdersApiFp(this.configuration).listListings(D.chainName,D.status,D.sellItemContractAddress,D.buyItemType,D.buyItemContractAddress,D.accountAddress,D.sellItemMetadataId,D.sellItemTokenId,D.fromUpdatedAt,D.pageSize,D.sortBy,D.sortDirection,D.pageCursor,te).then((D=>D(this.axios,this.basePath)))}listTrades(D,te){return OrdersApiFp(this.configuration).listTrades(D.chainName,D.accountAddress,D.sellItemContractAddress,D.fromIndexedAt,D.pageSize,D.sortBy,D.sortDirection,D.pageCursor,te).then((D=>D(this.axios,this.basePath)))}};const PassportApiAxiosParamCreator=function(D){return{createCounterfactualAddressV2:async(te,he,ye={})=>{assertParamExists("createCounterfactualAddressV2","chainName",te),assertParamExists("createCounterfactualAddressV2","createCounterfactualAddressRequest",he);const be="/v2/chains/{chain_name}/passport/counterfactual-address".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};await setBearerAuthToObject(Pe,D),Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}},getLinkedAddresses:async(te,he,ye={})=>{assertParamExists("getLinkedAddresses","userId",te),assertParamExists("getLinkedAddresses","chainName",he);const be="/v1/chains/{chain_name}/passport/users/{user_id}/linked-addresses".replace("{user_id}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye},Pe={};await setBearerAuthToObject(Pe,D),setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},{url:toPathString(ve),options:_e}},getLinkedAddressesDeprecated:async(te,he={})=>{assertParamExists("getLinkedAddressesDeprecated","userId",te);const ye="/passport-mr/v1/users/{userId}/linked-addresses".replace("{userId}",encodeURIComponent(String(te))),be=new URL(ye,Ra);let ve;D&&(ve=D.baseOptions);const we={method:"GET",...ve,...he},_e={};await setBearerAuthToObject(_e,D),setSearchParams(be,{});let Pe=ve&&ve.headers?ve.headers:{};return we.headers={..._e,...Pe,...he.headers},{url:toPathString(be),options:we}},getTransactionMetadata:async(te,he,ye={})=>{assertParamExists("getTransactionMetadata","chainName",te),assertParamExists("getTransactionMetadata","getTransactionMetadataRequest",he);const be="/v1/chains/{chain_name}/passport/transaction-metadata".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};await setBearerAuthToObject(Pe,D),Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}},getTypedDataMetadata:async(te,he,ye={})=>{assertParamExists("getTypedDataMetadata","chainName",te),assertParamExists("getTypedDataMetadata","getTypedDataMetadataRequest",he);const be="/v1/chains/{chain_name}/passport/typeddata-metadata".replace("{chain_name}",encodeURIComponent(String(te))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"POST",...we,...ye},Pe={};await setBearerAuthToObject(Pe,D),Pe["Content-Type"]="application/json",setSearchParams(ve,{});let Ie=we&&we.headers?we.headers:{};return _e.headers={...Pe,...Ie,...ye.headers},_e.data=serializeDataIfNeeded(he,_e,D),{url:toPathString(ve),options:_e}}}},PassportApiFp=function(D){const te=PassportApiAxiosParamCreator(D);return{async createCounterfactualAddressV2(he,ye,be){const ve=await te.createCounterfactualAddressV2(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async getLinkedAddresses(he,ye,be){const ve=await te.getLinkedAddresses(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async getLinkedAddressesDeprecated(he,ye){const be=await te.getLinkedAddressesDeprecated(he,ye);return createRequestFunction(be,Kt,Ia,D)},async getTransactionMetadata(he,ye,be){const ve=await te.getTransactionMetadata(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async getTypedDataMetadata(he,ye,be){const ve=await te.getTypedDataMetadata(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)}}};class PassportApi extends BaseAPI{createCounterfactualAddressV2(D,te){return PassportApiFp(this.configuration).createCounterfactualAddressV2(D.chainName,D.createCounterfactualAddressRequest,te).then((D=>D(this.axios,this.basePath)))}getLinkedAddresses(D,te){return PassportApiFp(this.configuration).getLinkedAddresses(D.userId,D.chainName,te).then((D=>D(this.axios,this.basePath)))}getLinkedAddressesDeprecated(D,te){return PassportApiFp(this.configuration).getLinkedAddressesDeprecated(D.userId,te).then((D=>D(this.axios,this.basePath)))}getTransactionMetadata(D,te){return PassportApiFp(this.configuration).getTransactionMetadata(D.chainName,D.getTransactionMetadataRequest,te).then((D=>D(this.axios,this.basePath)))}getTypedDataMetadata(D,te){return PassportApiFp(this.configuration).getTypedDataMetadata(D.chainName,D.getTypedDataMetadataRequest,te).then((D=>D(this.axios,this.basePath)))}}const PassportProfileApiAxiosParamCreator=function(D){return{getUserInfo:async(te={})=>{const he=new URL("/passport-profile/v1/user/info",Ra);let ye;D&&(ye=D.baseOptions);const be={method:"GET",...ye,...te},ve={};await setBearerAuthToObject(ve,D),setSearchParams(he,{});let we=ye&&ye.headers?ye.headers:{};return be.headers={...ve,...we,...te.headers},{url:toPathString(he),options:be}},linkWalletV2:async(te,he={})=>{const ye=new URL("/passport-profile/v2/linked-wallets",Ra);let be;D&&(be=D.baseOptions);const ve={method:"POST",...be,...he},we={};await setBearerAuthToObject(we,D),we["Content-Type"]="application/json",setSearchParams(ye,{});let _e=be&&be.headers?be.headers:{};return ve.headers={...we,..._e,...he.headers},ve.data=serializeDataIfNeeded(te,ve,D),{url:toPathString(ye),options:ve}}}},PassportProfileApiFp=function(D){const te=PassportProfileApiAxiosParamCreator(D);return{async getUserInfo(he){const ye=await te.getUserInfo(he);return createRequestFunction(ye,Kt,Ia,D)},async linkWalletV2(he,ye){const be=await te.linkWalletV2(he,ye);return createRequestFunction(be,Kt,Ia,D)}}};class PassportProfileApi extends BaseAPI{getUserInfo(D){return PassportProfileApiFp(this.configuration).getUserInfo(D).then((D=>D(this.axios,this.basePath)))}linkWalletV2(D={},te){return PassportProfileApiFp(this.configuration).linkWalletV2(D.linkWalletV2Request,te).then((D=>D(this.axios,this.basePath)))}}const PricingApiAxiosParamCreator=function(D){return{quotesForNFTs:async(te,he,ye,be,ve={})=>{assertParamExists("quotesForNFTs","chainName",te),assertParamExists("quotesForNFTs","contractAddress",he),assertParamExists("quotesForNFTs","tokenId",ye);const we="/v1/chains/{chain_name}/quotes/{contract_address}/nfts".replace("{chain_name}",encodeURIComponent(String(te))).replace("{contract_address}",encodeURIComponent(String(he))),_e=new URL(we,Ra);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"GET",...Pe,...ve},Re={};ye&&(Re.token_id=ye),void 0!==be&&(Re.page_cursor=be),setSearchParams(_e,Re);let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...ke,...ve.headers},{url:toPathString(_e),options:Ie}},quotesForStacks:async(te,he,ye,be,ve={})=>{assertParamExists("quotesForStacks","chainName",te),assertParamExists("quotesForStacks","contractAddress",he),assertParamExists("quotesForStacks","stackId",ye);const we="/v1/chains/{chain_name}/quotes/{contract_address}/stacks".replace("{chain_name}",encodeURIComponent(String(te))).replace("{contract_address}",encodeURIComponent(String(he))),_e=new URL(we,Ra);let Pe;D&&(Pe=D.baseOptions);const Ie={method:"GET",...Pe,...ve},Re={};ye&&(Re.stack_id=ye),void 0!==be&&(Re.page_cursor=be),setSearchParams(_e,Re);let ke=Pe&&Pe.headers?Pe.headers:{};return Ie.headers={...ke,...ve.headers},{url:toPathString(_e),options:Ie}}}},PricingApiFp=function(D){const te=PricingApiAxiosParamCreator(D);return{async quotesForNFTs(he,ye,be,ve,we){const _e=await te.quotesForNFTs(he,ye,be,ve,we);return createRequestFunction(_e,Kt,Ia,D)},async quotesForStacks(he,ye,be,ve,we){const _e=await te.quotesForStacks(he,ye,be,ve,we);return createRequestFunction(_e,Kt,Ia,D)}}};const TokensApiAxiosParamCreator=function(D){return{getERC20Token:async(te,he,ye={})=>{assertParamExists("getERC20Token","contractAddress",te),assertParamExists("getERC20Token","chainName",he);const be="/v1/chains/{chain_name}/tokens/{contract_address}".replace("{contract_address}",encodeURIComponent(String(te))).replace("{chain_name}",encodeURIComponent(String(he))),ve=new URL(be,Ra);let we;D&&(we=D.baseOptions);const _e={method:"GET",...we,...ye};setSearchParams(ve,{});let Pe=we&&we.headers?we.headers:{};return _e.headers={...Pe,...ye.headers},{url:toPathString(ve),options:_e}},listERC20Tokens:async(te,he,ye,be,ve,we,_e={})=>{assertParamExists("listERC20Tokens","chainName",te);const Pe="/v1/chains/{chain_name}/tokens".replace("{chain_name}",encodeURIComponent(String(te))),Ie=new URL(Pe,Ra);let Re;D&&(Re=D.baseOptions);const ke={method:"GET",...Re,..._e},Oe={};void 0!==he&&(Oe.from_updated_at=he instanceof Date?he.toISOString():he),ye&&(Oe.verification_status=ye),void 0!==be&&(Oe.is_canonical=be),void 0!==ve&&(Oe.page_cursor=ve),void 0!==we&&(Oe.page_size=we),setSearchParams(Ie,Oe);let xe=Re&&Re.headers?Re.headers:{};return ke.headers={...xe,..._e.headers},{url:toPathString(Ie),options:ke}}}},TokensApiFp=function(D){const te=TokensApiAxiosParamCreator(D);return{async getERC20Token(he,ye,be){const ve=await te.getERC20Token(he,ye,be);return createRequestFunction(ve,Kt,Ia,D)},async listERC20Tokens(he,ye,be,ve,we,_e,Pe){const Ie=await te.listERC20Tokens(he,ye,be,ve,we,_e,Pe);return createRequestFunction(Ie,Kt,Ia,D)}}};var xa,Na,Ma,Ba,Fa,Da,La,Ua,$a,qa,Ga,ja,Ha,za,Wa,Va,Ka,Ja,Xa,Qa,Za=Object.freeze({__proto__:null,APIError400AllOfCodeEnum:{ValidationError:"VALIDATION_ERROR"},APIError401AllOfCodeEnum:{UnauthorisedRequest:"UNAUTHORISED_REQUEST"},APIError403AllOfCodeEnum:{AuthenticationError:"AUTHENTICATION_ERROR"},APIError404AllOfCodeEnum:{ResourceNotFound:"RESOURCE_NOT_FOUND"},APIError409AllOfCodeEnum:{ConflictError:"CONFLICT_ERROR"},APIError429AllOfCodeEnum:{TooManyRequestsError:"TOO_MANY_REQUESTS_ERROR"},APIError500AllOfCodeEnum:{InternalServerError:"INTERNAL_SERVER_ERROR"},APIError501AllOfCodeEnum:{NotImplementedError:"NOT_IMPLEMENTED_ERROR"},ActiveOrderStatusNameEnum:{Active:"ACTIVE"},ActivitiesApi:ActivitiesApi,ActivitiesApiAxiosParamCreator:ActivitiesApiAxiosParamCreator,ActivitiesApiFactory:function(D,te,he){const ye=ActivitiesApiFp(D);return{getActivity:(D,be)=>ye.getActivity(D.chainName,D.activityId,be).then((D=>D(he,te))),listActivities:(D,be)=>ye.listActivities(D.chainName,D.contractAddress,D.tokenId,D.accountAddress,D.activityType,D.transactionHash,D.pageCursor,D.pageSize,be).then((D=>D(he,te))),listActivityHistory:(D,be)=>ye.listActivityHistory(D.chainName,D.fromUpdatedAt,D.toUpdatedAt,D.contractAddress,D.activityType,D.pageCursor,D.pageSize,be).then((D=>D(he,te)))}},ActivitiesApiFp:ActivitiesApiFp,ActivityType:{Mint:"mint",Burn:"burn",Transfer:"transfer",Sale:"sale",Deposit:"deposit",Withdrawal:"withdrawal"},AssetVerificationStatus:{Verified:"verified",Unverified:"unverified",Spam:"spam",Inactive:"inactive"},CancelledOrderStatusCancellationTypeEnum:{OnChain:"ON_CHAIN",OffChain:"OFF_CHAIN",Underfunded:"UNDERFUNDED"},CancelledOrderStatusNameEnum:{Cancelled:"CANCELLED"},ChainsApi:ChainsApi,ChainsApiAxiosParamCreator:ChainsApiAxiosParamCreator,ChainsApiFactory:function(D,te,he){const ye=ChainsApiFp(D);return{listChains:(D={},be)=>ye.listChains(D.pageCursor,D.pageSize,be).then((D=>D(he,te)))}},ChainsApiFp:ChainsApiFp,CollectionContractType:{Erc721:"ERC721",Erc1155:"ERC1155"},CollectionsApi:ka,CollectionsApiAxiosParamCreator:CollectionsApiAxiosParamCreator,CollectionsApiFactory:function(D,te,he){const ye=CollectionsApiFp(D);return{getCollection:(D,be)=>ye.getCollection(D.contractAddress,D.chainName,be).then((D=>D(he,te))),listCollections:(D,be)=>ye.listCollections(D.chainName,D.contractAddress,D.verificationStatus,D.fromUpdatedAt,D.pageCursor,D.pageSize,be).then((D=>D(he,te))),listCollectionsByNFTOwner:(D,be)=>ye.listCollectionsByNFTOwner(D.accountAddress,D.chainName,D.pageCursor,D.pageSize,be).then((D=>D(he,te))),refreshCollectionMetadata:(D,be)=>ye.refreshCollectionMetadata(D.contractAddress,D.chainName,D.refreshCollectionMetadataRequest,be).then((D=>D(he,te)))}},CollectionsApiFp:CollectionsApiFp,Configuration:class Configuration{apiKey;username;password;accessToken;basePath;baseOptions;formDataCtor;constructor(D={}){this.apiKey=D.apiKey,this.username=D.username,this.password=D.password,this.accessToken=D.accessToken,this.basePath=D.basePath,this.baseOptions=D.baseOptions,this.formDataCtor=D.formDataCtor}isJsonMime(D){const te=new RegExp("^(application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(;.*)?$","i");return null!==D&&(te.test(D)||"application/json-patch+json"===D.toLowerCase())}},CraftingApi:class CraftingApi extends BaseAPI{signCraftingPayload(D,te){return CraftingApiFp(this.configuration).signCraftingPayload(D.chainName,D.signCraftingRequest,te).then((D=>D(this.axios,this.basePath)))}},CraftingApiAxiosParamCreator:CraftingApiAxiosParamCreator,CraftingApiFactory:function(D,te,he){const ye=CraftingApiFp(D);return{signCraftingPayload:(D,be)=>ye.signCraftingPayload(D.chainName,D.signCraftingRequest,be).then((D=>D(he,te)))}},CraftingApiFp:CraftingApiFp,ERC1155CollectionItemTypeEnum:{Erc1155Collection:"ERC1155_COLLECTION"},ERC1155ItemTypeEnum:{Erc1155:"ERC1155"},ERC20ApproveMetadataTransactionTypeEnum:{Erc20Approve:"ERC20_APPROVE"},ERC20ItemTypeEnum:{Erc20:"ERC20"},ERC20TransferFromMetadataTransactionTypeEnum:{Erc20TransferFrom:"ERC20_TRANSFER_FROM"},ERC20TransferMetadataTransactionTypeEnum:{Erc20Transfer:"ERC20_TRANSFER"},ERC721ApproveMetadataTransactionTypeEnum:{Erc721Approve:"ERC721_APPROVE"},ERC721CollectionItemTypeEnum:{Erc721Collection:"ERC721_COLLECTION",Erc1155Collection:"ERC1155_COLLECTION"},ERC721ItemTypeEnum:{Erc721:"ERC721"},ERC721SafeTransferFromBatchMetadataTransactionTypeEnum:{Erc721SafeTransferFromBatch:"ERC721_SAFE_TRANSFER_FROM_BATCH"},ERC721TransferFromMetadataTransactionTypeEnum:{Erc721TransferFrom:"ERC721_TRANSFER_FROM"},ExpiredOrderStatusNameEnum:{Expired:"EXPIRED"},FailedOrderCancellationReasonCodeEnum:{Filled:"FILLED"},FeeTypeEnum:{Royalty:"ROYALTY",MakerEcosystem:"MAKER_ECOSYSTEM",TakerEcosystem:"TAKER_ECOSYSTEM",Protocol:"PROTOCOL"},FilledOrderStatusNameEnum:{Filled:"FILLED"},GetTransactionByIDChainTypeEnum:{Starkex:"starkex",Evm:"evm"},GuardianApi:GuardianApi,GuardianApiAxiosParamCreator:GuardianApiAxiosParamCreator,GuardianApiFactory:function(D,te,he){const ye=GuardianApiFp(D);return{approvePendingERC191Message:(D,be)=>ye.approvePendingERC191Message(D.messageID,be).then((D=>D(he,te))),approvePendingMessage:(D,be)=>ye.approvePendingMessage(D.messageID,be).then((D=>D(he,te))),approvePendingTransaction:(D,be)=>ye.approvePendingTransaction(D.payloadHash,D.transactionApprovalRequest,be).then((D=>D(he,te))),evaluateErc191Message:(D,be)=>ye.evaluateErc191Message(D.eRC191MessageEvaluationRequest,be).then((D=>D(he,te))),evaluateMessage:(D,be)=>ye.evaluateMessage(D.messageEvaluationRequest,be).then((D=>D(he,te))),evaluateTransaction:(D,be)=>ye.evaluateTransaction(D.id,D.transactionEvaluationRequest,be).then((D=>D(he,te))),getErc191MessageByID:(D,be)=>ye.getErc191MessageByID(D.messageID,be).then((D=>D(he,te))),getMessageByID:(D,be)=>ye.getMessageByID(D.messageID,D.includeSimulation,be).then((D=>D(he,te))),getTransactionByID:(D,be)=>ye.getTransactionByID(D.transactionID,D.chainType,D.chainID,D.includeSimulation,be).then((D=>D(he,te)))}},GuardianApiFp:GuardianApiFp,ImmutableVerificationStatusEnum:{Verified:"verified",Unverified:"unverified",Spam:"spam",Inactive:"inactive"},InactiveOrderStatusNameEnum:{Inactive:"INACTIVE"},ListBidsSortByEnum:{CreatedAt:"created_at",UpdatedAt:"updated_at",SellItemAmount:"sell_item_amount"},ListBidsSortDirectionEnum:{Asc:"asc",Desc:"desc"},ListCollectionBidsSortByEnum:{CreatedAt:"created_at",UpdatedAt:"updated_at",SellItemAmount:"sell_item_amount"},ListCollectionBidsSortDirectionEnum:{Asc:"asc",Desc:"desc"},ListListingsBuyItemTypeEnum:{Native:"NATIVE",Erc20:"ERC20"},ListListingsSortByEnum:{CreatedAt:"created_at",UpdatedAt:"updated_at",BuyItemAmount:"buy_item_amount"},ListListingsSortDirectionEnum:{Asc:"asc",Desc:"desc"},ListTradesSortByEnum:{IndexedAt:"indexed_at"},ListTradesSortDirectionEnum:{Asc:"asc",Desc:"desc"},MarketPriceERC20TokenTypeEnum:{Erc20:"ERC20"},MarketPriceFeesTypeEnum:{Royalty:"ROYALTY",MakerEcosystem:"MAKER_ECOSYSTEM",TakerEcosystem:"TAKER_ECOSYSTEM",Protocol:"PROTOCOL"},MarketPriceNativeTokenTypeEnum:{Native:"NATIVE"},MarketplaceContractType:{Erc721:"ERC721",Erc1155:"ERC1155"},MessageEvaluationResponseConfirmationMethodEnum:{Otp:"otp",Web:"web"},MetadataApi:class MetadataApi extends BaseAPI{getMetadata(D,te){return MetadataApiFp(this.configuration).getMetadata(D.chainName,D.contractAddress,D.metadataId,te).then((D=>D(this.axios,this.basePath)))}listMetadata(D,te){return MetadataApiFp(this.configuration).listMetadata(D.chainName,D.contractAddress,D.fromUpdatedAt,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}listMetadataForChain(D,te){return MetadataApiFp(this.configuration).listMetadataForChain(D.chainName,D.fromUpdatedAt,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}listStacks(D,te){return MetadataApiFp(this.configuration).listStacks(D.chainName,D.stackId,te).then((D=>D(this.axios,this.basePath)))}refreshMetadataByID(D,te){return MetadataApiFp(this.configuration).refreshMetadataByID(D.chainName,D.contractAddress,D.refreshMetadataByIDRequest,te).then((D=>D(this.axios,this.basePath)))}refreshNFTMetadataByTokenID(D,te){return MetadataApiFp(this.configuration).refreshNFTMetadataByTokenID(D.contractAddress,D.chainName,D.refreshNFTMetadataByTokenIDRequest,te).then((D=>D(this.axios,this.basePath)))}},MetadataApiAxiosParamCreator:MetadataApiAxiosParamCreator,MetadataApiFactory:function(D,te,he){const ye=MetadataApiFp(D);return{getMetadata:(D,be)=>ye.getMetadata(D.chainName,D.contractAddress,D.metadataId,be).then((D=>D(he,te))),listMetadata:(D,be)=>ye.listMetadata(D.chainName,D.contractAddress,D.fromUpdatedAt,D.pageCursor,D.pageSize,be).then((D=>D(he,te))),listMetadataForChain:(D,be)=>ye.listMetadataForChain(D.chainName,D.fromUpdatedAt,D.pageCursor,D.pageSize,be).then((D=>D(he,te))),listStacks:(D,be)=>ye.listStacks(D.chainName,D.stackId,be).then((D=>D(he,te))),refreshMetadataByID:(D,be)=>ye.refreshMetadataByID(D.chainName,D.contractAddress,D.refreshMetadataByIDRequest,be).then((D=>D(he,te))),refreshNFTMetadataByTokenID:(D,be)=>ye.refreshNFTMetadataByTokenID(D.contractAddress,D.chainName,D.refreshNFTMetadataByTokenIDRequest,be).then((D=>D(he,te)))}},MetadataApiFp:MetadataApiFp,MetadataSearchApi:class MetadataSearchApi extends BaseAPI{listFilters(D,te){return MetadataSearchApiFp(this.configuration).listFilters(D.chainName,D.contractAddress,te).then((D=>D(this.axios,this.basePath)))}searchNFTs(D,te){return MetadataSearchApiFp(this.configuration).searchNFTs(D.chainName,D.contractAddress,D.accountAddress,D.stackId,D.onlyIncludeOwnerListings,D.pageSize,D.pageCursor,te).then((D=>D(this.axios,this.basePath)))}searchStacks(D,te){return MetadataSearchApiFp(this.configuration).searchStacks(D.chainName,D.contractAddress,D.accountAddress,D.onlyIncludeOwnerListings,D.onlyIfHasActiveListings,D.traits,D.keyword,D.sortBy,D.pageSize,D.pageCursor,te).then((D=>D(this.axios,this.basePath)))}},MetadataSearchApiAxiosParamCreator:MetadataSearchApiAxiosParamCreator,MetadataSearchApiFactory:function(D,te,he){const ye=MetadataSearchApiFp(D);return{listFilters:(D,be)=>ye.listFilters(D.chainName,D.contractAddress,be).then((D=>D(he,te))),searchNFTs:(D,be)=>ye.searchNFTs(D.chainName,D.contractAddress,D.accountAddress,D.stackId,D.onlyIncludeOwnerListings,D.pageSize,D.pageCursor,be).then((D=>D(he,te))),searchStacks:(D,be)=>ye.searchStacks(D.chainName,D.contractAddress,D.accountAddress,D.onlyIncludeOwnerListings,D.onlyIfHasActiveListings,D.traits,D.keyword,D.sortBy,D.pageSize,D.pageCursor,be).then((D=>D(he,te)))}},MetadataSearchApiFp:MetadataSearchApiFp,MintRequestStatus:{Pending:"pending",Succeeded:"succeeded",Failed:"failed"},NFTContractType:{Erc721:"ERC721",Erc1155:"ERC1155"},NFTMetadataAttributeDisplayTypeEnum:{Number:"number",BoostPercentage:"boost_percentage",BoostNumber:"boost_number",Date:"date"},NFTSetApprovalForAllMetadataTransactionTypeEnum:{Erc721SetApprovalForAll:"ERC721_SET_APPROVAL_FOR_ALL",Erc1155SetApprovalForAll:"ERC1155_SET_APPROVAL_FOR_ALL"},NativeItemTypeEnum:{Native:"NATIVE",Erc20:"ERC20",Erc721:"ERC721",Erc1155:"ERC1155",Erc721Collection:"ERC721_COLLECTION",Erc1155Collection:"ERC1155_COLLECTION"},NftOwnersApi:NftOwnersApi,NftOwnersApiAxiosParamCreator:NftOwnersApiAxiosParamCreator,NftOwnersApiFactory:function(D,te,he){const ye=NftOwnersApiFp(D);return{listAllNFTOwners:(D,be)=>ye.listAllNFTOwners(D.chainName,D.fromUpdatedAt,D.pageCursor,D.pageSize,be).then((D=>D(he,te))),listNFTOwners:(D,be)=>ye.listNFTOwners(D.contractAddress,D.tokenId,D.chainName,D.pageCursor,D.pageSize,be).then((D=>D(he,te))),listOwnersByContractAddress:(D,be)=>ye.listOwnersByContractAddress(D.contractAddress,D.chainName,D.accountAddress,D.fromUpdatedAt,D.pageCursor,D.pageSize,be).then((D=>D(he,te)))}},NftOwnersApiFp:NftOwnersApiFp,NftsApi:NftsApi,NftsApiAxiosParamCreator:NftsApiAxiosParamCreator,NftsApiFactory:function(D,te,he){const ye=NftsApiFp(D);return{createMintRequest:(D,be)=>ye.createMintRequest(D.contractAddress,D.chainName,D.createMintRequestRequest,be).then((D=>D(he,te))),getMintRequest:(D,be)=>ye.getMintRequest(D.contractAddress,D.chainName,D.referenceId,be).then((D=>D(he,te))),getNFT:(D,be)=>ye.getNFT(D.contractAddress,D.tokenId,D.chainName,be).then((D=>D(he,te))),listAllNFTs:(D,be)=>ye.listAllNFTs(D.chainName,D.fromUpdatedAt,D.pageCursor,D.pageSize,be).then((D=>D(he,te))),listMintRequests:(D,be)=>ye.listMintRequests(D.contractAddress,D.chainName,D.pageCursor,D.pageSize,D.status,be).then((D=>D(he,te))),listNFTs:(D,be)=>ye.listNFTs(D.contractAddress,D.chainName,D.tokenId,D.fromUpdatedAt,D.pageCursor,D.pageSize,be).then((D=>D(he,te))),listNFTsByAccountAddress:(D,be)=>ye.listNFTsByAccountAddress(D.accountAddress,D.chainName,D.contractAddress,D.tokenId,D.fromUpdatedAt,D.pageCursor,D.pageSize,be).then((D=>D(he,te)))}},NftsApiFp:NftsApiFp,OperatorAllowlistStatus:{Requested:"requested",Approved:"approved",Rejected:"rejected",Removed:"removed",Added:"added"},OrderStatusName:{Pending:"PENDING",Active:"ACTIVE",Inactive:"INACTIVE",Filled:"FILLED",Expired:"EXPIRED",Cancelled:"CANCELLED"},OrderTypeEnum:{Listing:"LISTING",Bid:"BID",CollectionBid:"COLLECTION_BID"},OrdersApi:Oa,OrdersApiAxiosParamCreator:OrdersApiAxiosParamCreator,OrdersApiFactory:function(D,te,he){const ye=OrdersApiFp(D);return{cancelOrders:(D,be)=>ye.cancelOrders(D.chainName,D.cancelOrdersRequestBody,be).then((D=>D(he,te))),createBid:(D,be)=>ye.createBid(D.chainName,D.createBidRequestBody,be).then((D=>D(he,te))),createCollectionBid:(D,be)=>ye.createCollectionBid(D.chainName,D.createCollectionBidRequestBody,be).then((D=>D(he,te))),createListing:(D,be)=>ye.createListing(D.chainName,D.createListingRequestBody,be).then((D=>D(he,te))),fulfillmentData:(D,be)=>ye.fulfillmentData(D.chainName,D.fulfillmentDataRequest,be).then((D=>D(he,te))),getBid:(D,be)=>ye.getBid(D.chainName,D.bidId,be).then((D=>D(he,te))),getCollectionBid:(D,be)=>ye.getCollectionBid(D.chainName,D.collectionBidId,be).then((D=>D(he,te))),getListing:(D,be)=>ye.getListing(D.chainName,D.listingId,be).then((D=>D(he,te))),getTrade:(D,be)=>ye.getTrade(D.chainName,D.tradeId,be).then((D=>D(he,te))),listBids:(D,be)=>ye.listBids(D.chainName,D.status,D.buyItemContractAddress,D.sellItemContractAddress,D.accountAddress,D.buyItemMetadataId,D.buyItemTokenId,D.fromUpdatedAt,D.pageSize,D.sortBy,D.sortDirection,D.pageCursor,be).then((D=>D(he,te))),listCollectionBids:(D,be)=>ye.listCollectionBids(D.chainName,D.status,D.buyItemContractAddress,D.sellItemContractAddress,D.accountAddress,D.fromUpdatedAt,D.pageSize,D.sortBy,D.sortDirection,D.pageCursor,be).then((D=>D(he,te))),listListings:(D,be)=>ye.listListings(D.chainName,D.status,D.sellItemContractAddress,D.buyItemType,D.buyItemContractAddress,D.accountAddress,D.sellItemMetadataId,D.sellItemTokenId,D.fromUpdatedAt,D.pageSize,D.sortBy,D.sortDirection,D.pageCursor,be).then((D=>D(he,te))),listTrades:(D,be)=>ye.listTrades(D.chainName,D.accountAddress,D.sellItemContractAddress,D.fromIndexedAt,D.pageSize,D.sortBy,D.sortDirection,D.pageCursor,be).then((D=>D(he,te)))}},OrdersApiFp:OrdersApiFp,OrganisationTier:{Common:"common",Uncommon:"uncommon",Rare:"rare",Epic:"epic",Legendary:"legendary"},PassportApi:PassportApi,PassportApiAxiosParamCreator:PassportApiAxiosParamCreator,PassportApiFactory:function(D,te,he){const ye=PassportApiFp(D);return{createCounterfactualAddressV2:(D,be)=>ye.createCounterfactualAddressV2(D.chainName,D.createCounterfactualAddressRequest,be).then((D=>D(he,te))),getLinkedAddresses:(D,be)=>ye.getLinkedAddresses(D.userId,D.chainName,be).then((D=>D(he,te))),getLinkedAddressesDeprecated:(D,be)=>ye.getLinkedAddressesDeprecated(D.userId,be).then((D=>D(he,te))),getTransactionMetadata:(D,be)=>ye.getTransactionMetadata(D.chainName,D.getTransactionMetadataRequest,be).then((D=>D(he,te))),getTypedDataMetadata:(D,be)=>ye.getTypedDataMetadata(D.chainName,D.getTypedDataMetadataRequest,be).then((D=>D(he,te)))}},PassportApiFp:PassportApiFp,PassportProfileApi:PassportProfileApi,PassportProfileApiAxiosParamCreator:PassportProfileApiAxiosParamCreator,PassportProfileApiFactory:function(D,te,he){const ye=PassportProfileApiFp(D);return{getUserInfo:D=>ye.getUserInfo(D).then((D=>D(he,te))),linkWalletV2:(D={},be)=>ye.linkWalletV2(D.linkWalletV2Request,be).then((D=>D(he,te)))}},PassportProfileApiFp:PassportProfileApiFp,PendingOrderStatusNameEnum:{Pending:"PENDING"},PricingApi:class PricingApi extends BaseAPI{quotesForNFTs(D,te){return PricingApiFp(this.configuration).quotesForNFTs(D.chainName,D.contractAddress,D.tokenId,D.pageCursor,te).then((D=>D(this.axios,this.basePath)))}quotesForStacks(D,te){return PricingApiFp(this.configuration).quotesForStacks(D.chainName,D.contractAddress,D.stackId,D.pageCursor,te).then((D=>D(this.axios,this.basePath)))}},PricingApiAxiosParamCreator:PricingApiAxiosParamCreator,PricingApiFactory:function(D,te,he){const ye=PricingApiFp(D);return{quotesForNFTs:(D,be)=>ye.quotesForNFTs(D.chainName,D.contractAddress,D.tokenId,D.pageCursor,be).then((D=>D(he,te))),quotesForStacks:(D,be)=>ye.quotesForStacks(D.chainName,D.contractAddress,D.stackId,D.pageCursor,be).then((D=>D(he,te)))}},PricingApiFp:PricingApiFp,ProtocolDataOrderTypeEnum:{FullRestricted:"FULL_RESTRICTED",PartialRestricted:"PARTIAL_RESTRICTED"},SaleFeeTypeEnum:{Royalty:"ROYALTY"},SeaportCreateListingMetadataTypedDataTypeEnum:{SeaportCreateListingMetadata:"SEAPORT_CREATE_LISTING_METADATA"},SeaportERC1155CollectionItemTypeEnum:{Erc1155Collection:"ERC1155Collection"},SeaportERC1155ItemTypeEnum:{Erc1155:"ERC1155"},SeaportERC20ItemTypeEnum:{Erc20:"ERC20"},SeaportERC721CollectionItemTypeEnum:{Erc721Collection:"ERC721Collection"},SeaportERC721ItemTypeEnum:{Erc721:"ERC721"},SeaportFeeTypeEnum:{Erc20:"ERC20",Native:"NATIVE"},SeaportFulfillAvailableAdvancedOrdersMetadataTransactionTypeEnum:{SeaportFulfillAvailableAdvancedOrders:"SEAPORT_FULFILL_AVAILABLE_ADVANCED_ORDERS"},SeaportNativeItemTypeEnum:{Native:"NATIVE"},SearchStacksSortByEnum:{CheapestFirst:"cheapest_first"},Severity:{Malicious:"malicious",Benign:"benign",Warning:"warning",Unknown:"unknown",Info:"info"},StarkExTransactionEvaluationRequestChainTypeEnum:{Starkex:"starkex"},TokenContractType:{Erc20:"ERC20"},TokensApi:class TokensApi extends BaseAPI{getERC20Token(D,te){return TokensApiFp(this.configuration).getERC20Token(D.contractAddress,D.chainName,te).then((D=>D(this.axios,this.basePath)))}listERC20Tokens(D,te){return TokensApiFp(this.configuration).listERC20Tokens(D.chainName,D.fromUpdatedAt,D.verificationStatus,D.isCanonical,D.pageCursor,D.pageSize,te).then((D=>D(this.axios,this.basePath)))}},TokensApiAxiosParamCreator:TokensApiAxiosParamCreator,TokensApiFactory:function(D,te,he){const ye=TokensApiFp(D);return{getERC20Token:(D,be)=>ye.getERC20Token(D.contractAddress,D.chainName,be).then((D=>D(he,te))),listERC20Tokens:(D,be)=>ye.listERC20Tokens(D.chainName,D.fromUpdatedAt,D.verificationStatus,D.isCanonical,D.pageCursor,D.pageSize,be).then((D=>D(he,te)))}},TokensApiFp:TokensApiFp,TransactionApprovalRequestChainTypeEnum:{Starkex:"starkex",Evm:"evm"},TransactionEvaluationResponseConfirmationMethodEnum:{Otp:"otp",Web:"web"},UnknownMetadataTransactionTypeEnum:{Unknown:"UNKNOWN"},UnknownTypedDataMetadataTypedDataTypeEnum:{Unknown:"UNKNOWN"},ValidationStatus:{Success:"success",Error:"error",SimulationFailed:"simulation_failed"},VerificationRequestContractType:{Erc20:"ERC20",Erc721:"ERC721",Erc1155:"ERC1155"},VerificationRequestStatus:{Completed:"completed",Pending:"pending"},ZkEvmTransactionEvaluationRequestChainTypeEnum:{Evm:"evm"}});!function(D){D.CheapestFirst="cheapest_first"}(xa||(xa={})),function(D){D.ValidationError="VALIDATION_ERROR"}(Na||(Na={})),function(D){D.UnauthorisedRequest="UNAUTHORISED_REQUEST"}(Ma||(Ma={})),function(D){D.AuthenticationError="AUTHENTICATION_ERROR"}(Ba||(Ba={})),function(D){D.ResourceNotFound="RESOURCE_NOT_FOUND"}(Fa||(Fa={})),function(D){D.ConflictError="CONFLICT_ERROR"}(Da||(Da={})),function(D){D.TooManyRequestsError="TOO_MANY_REQUESTS_ERROR"}(La||(La={})),function(D){D.InternalServerError="INTERNAL_SERVER_ERROR"}(Ua||(Ua={})),function(D){D.Mint="mint",D.Burn="burn",D.Transfer="transfer",D.Sale="sale",D.Deposit="deposit",D.Withdrawal="withdrawal"}($a||($a={})),function(D){D.Verified="verified",D.Unverified="unverified",D.Spam="spam",D.Inactive="inactive"}(qa||(qa={})),function(D){D.Erc721="ERC721",D.Erc1155="ERC1155"}(Ga||(Ga={})),function(D){D.Erc20="ERC20"}(ja||(ja={})),function(D){D.Royalty="ROYALTY",D.MakerEcosystem="MAKER_ECOSYSTEM",D.TakerEcosystem="TAKER_ECOSYSTEM",D.Protocol="PROTOCOL"}(Ha||(Ha={})),function(D){D.Native="NATIVE"}(za||(za={})),function(D){D.Erc721="ERC721",D.Erc1155="ERC1155"}(Wa||(Wa={})),function(D){D.Pending="pending",D.Succeeded="succeeded",D.Failed="failed"}(Va||(Va={})),function(D){D.Erc721="ERC721",D.Erc1155="ERC1155"}(Ka||(Ka={})),function(D){D.Number="number",D.BoostPercentage="boost_percentage",D.BoostNumber="boost_number",D.Date="date"}(Ja||(Ja={})),function(D){D.Royalty="ROYALTY"}(Xa||(Xa={})),function(D){D.Erc20="ERC20"}(Qa||(Qa={}));var Ya=Object.freeze({__proto__:null,get APIError400AllOfCodeEnum(){return Na},get APIError401AllOfCodeEnum(){return Ma},get APIError403AllOfCodeEnum(){return Ba},get APIError404AllOfCodeEnum(){return Fa},get APIError409AllOfCodeEnum(){return Da},get APIError429AllOfCodeEnum(){return La},get APIError500AllOfCodeEnum(){return Ua},get ActivityType(){return $a},get AssetVerificationStatus(){return qa},get CollectionContractType(){return Ga},get MarketPriceERC20TokenTypeEnum(){return ja},get MarketPriceFeesTypeEnum(){return Ha},get MarketPriceNativeTokenTypeEnum(){return za},get MarketplaceContractType(){return Wa},get MintRequestStatus(){return Va},get NFTContractType(){return Ka},get NFTMetadataAttributeDisplayTypeEnum(){return Ja},get SaleFeeTypeEnum(){return Xa},get SearchStacksSortByEnum(){return xa},get TokenContractType(){return Qa}});class ImxApiClients{config;assetApi;balanceApi;collectionApi;depositsApi;encodingApi;exchangeApi;metadataApi;metadataRefreshesApi;mintsApi;nftCheckoutPrimaryApi;ordersApi;projectsApi;tokensApi;tradesApi;transfersApi;usersApi;withdrawalsApi;constructor(D){this.config=D,this.assetApi=new da(D),this.balanceApi=new ua(D),this.collectionApi=new fa(D),this.depositsApi=new la(D),this.encodingApi=new pa(D),this.exchangeApi=new ha(D),this.metadataApi=new ya(D),this.metadataRefreshesApi=new ma(D),this.mintsApi=new ba(D),this.nftCheckoutPrimaryApi=new ga(D),this.ordersApi=new va(D),this.projectsApi=new wa(D),this.tokensApi=new _a(D),this.tradesApi=new Ta(D),this.transfersApi=new Aa(D),this.usersApi=new Ea(D),this.withdrawalsApi=new Pa(D)}}class MultiRollupApiClients{config;activitiesApi;chainsApi;collectionApi;nftOwnersApi;nftsApi;ordersApi;passportApi;passportProfileApi;guardianApi;constructor(D){this.config=D,this.activitiesApi=new ActivitiesApi(D.indexer),this.chainsApi=new ChainsApi(D.indexer),this.collectionApi=new ka(D.indexer),this.nftOwnersApi=new NftOwnersApi(D.indexer),this.nftsApi=new NftsApi(D.indexer),this.ordersApi=new Oa(D.orderBook),this.passportApi=new PassportApi(D.passport),this.passportProfileApi=new PassportProfileApi(D.passport),this.guardianApi=new GuardianApi(D.passport)}}const ei={"x-sdk-version":"ts-immutable-sdk-1.77.7"},createConfig$1=({basePath:D,headers:te})=>{if(!D.trim())throw Error("basePath can not be empty");const he={...ei,...te||{}};return new Sa({basePath:D,baseOptions:{headers:he}})},imxApiConfig_getProduction=()=>createConfig$1({basePath:"https://api.x.immutable.com"}),imxApiConfig_getSandbox=()=>createConfig$1({basePath:"https://api.sandbox.x.immutable.com"}),multiRollupConfig_getProduction=()=>({indexer:createConfig$1({basePath:"https://api.immutable.com"}),orderBook:createConfig$1({basePath:"https://api.immutable.com"}),passport:createConfig$1({basePath:"https://api.immutable.com"})}),multiRollupConfig_getSandbox=()=>({indexer:createConfig$1({basePath:"https://api.sandbox.immutable.com"}),orderBook:createConfig$1({basePath:"https://api.sandbox.immutable.com"}),passport:createConfig$1({basePath:"https://api.sandbox.immutable.com"})});class APIError extends Error{code;details;link;traceId;constructor({message:D,code:te,details:he,link:ye,trace_id:be}){super(D),this.code=te,this.details=he,this.link=ye,this.traceId=be}}const ti={sdkVersion:"ts-immutable-sdk-multi-rollup-api-client-1.77.7"},createAPIConfiguration=D=>{const{baseConfig:te,basePath:he,headers:ye}=D;if(!he.trim())throw Error("basePath can not be empty");const be={...ye||{},...addKeysToHeadersOverride(te,D)||{},...ti},ve={...te,basePath:he,baseOptions:{headers:be}};return new Za.Configuration(ve)};class BlockchainDataConfiguration{apiConfig;baseConfig;constructor({baseConfig:D,overrides:te}){if(this.baseConfig=D,te)this.apiConfig=createAPIConfiguration(te);else switch(D.environment){case ra.SANDBOX:this.apiConfig=createAPIConfiguration({basePath:"https://api.sandbox.immutable.com",baseConfig:D});break;case ra.PRODUCTION:this.apiConfig=createAPIConfiguration({basePath:"https://api.immutable.com",baseConfig:D});break;default:this.apiConfig=createAPIConfiguration({basePath:"https://api.sandbox.immutable.com",baseConfig:D})}}}function formatError$2(D){if(Kt.isAxiosError(D)&&D.response){const te=D.response.data;return te.code&&te.message?new APIError({code:te.code,message:te.message,details:te.details||null,link:te.link||"",trace_id:te.trace_id||""}):new APIError({code:D.code??D.response?.status.toString()??"unknown_error_code",message:String(D),details:null,link:"",trace_id:""})}return new APIError({code:"unknown_error_code",message:String(D),details:null,link:"",trace_id:""})}class BlockchainData{config;activities;chains;collections;nfts;nftOwners;tokens;metadata;crafting;pricing;metadataSearch;constructor(D){this.config=new BlockchainDataConfiguration(D),this.activities=new Za.ActivitiesApi(this.config.apiConfig),this.chains=new Za.ChainsApi(this.config.apiConfig),this.collections=new Za.CollectionsApi(this.config.apiConfig),this.nfts=new Za.NftsApi(this.config.apiConfig),this.nftOwners=new Za.NftOwnersApi(this.config.apiConfig),this.tokens=new Za.TokensApi(this.config.apiConfig),this.metadata=new Za.MetadataApi(this.config.apiConfig),this.crafting=new Za.CraftingApi(this.config.apiConfig),this.pricing=new Za.PricingApi(this.config.apiConfig),this.metadataSearch=new Za.MetadataSearchApi(this.config.apiConfig)}async listActivities(D){return await this.activities.listActivities(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listActivityHistory(D){return await this.activities.listActivityHistory(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async getActivity(D){return await this.activities.getActivity(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listChains(D){return await this.chains.listChains(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listCollections(D){return await this.collections.listCollections(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listCollectionsByNFTOwner(D){return await this.collections.listCollectionsByNFTOwner(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async getCollection(D){return await this.collections.getCollection(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async getNFT(D){return await this.nfts.getNFT(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listNFTs(D){return await this.nfts.listNFTs(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listNFTsByAccountAddress(D){return await this.nfts.listNFTsByAccountAddress(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listAllNFTs(D){return await this.nfts.listAllNFTs(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async createMintRequest(D){return await this.nfts.createMintRequest(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listMintRequests(D){return await this.nfts.listMintRequests(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async getMintRequest(D){return await this.nfts.getMintRequest(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listNFTOwners(D){return await this.nftOwners.listNFTOwners(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listNFTOwnersByContractAddress(D){return await this.nftOwners.listOwnersByContractAddress(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listAllNFTOwners(D){return await this.nftOwners.listAllNFTOwners(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listTokens(D){return await this.tokens.listERC20Tokens(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async getToken(D){return await this.tokens.getERC20Token(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async getMetadata(D){return await this.metadata.getMetadata(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listNFTMetadataByContractAddress(D){return await this.metadata.listMetadata(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listNFTMetadataByChain(D){return await this.metadata.listMetadataForChain(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async refreshCollectionMetadata(D){return await this.collections.refreshCollectionMetadata(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async refreshNFTMetadata(D){return await this.metadata.refreshNFTMetadataByTokenID(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async refreshStackedMetadata(D){return await this.metadata.refreshMetadataByID(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async signCraftingPayload(D){return await this.crafting.signCraftingPayload(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listFilters(D){return await this.metadataSearch.listFilters(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async searchNFTs(D){return await this.metadataSearch.searchNFTs(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async searchStacks(D){return await this.metadataSearch.searchStacks(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async quotesForNFTs(D){return await this.pricing.quotesForNFTs(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async quotesForStacks(D){return await this.pricing.quotesForStacks(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}async listStacks(D){return await this.metadata.listStacks(D).then((D=>D.data)).catch((D=>{throw formatError$2(D)}))}}var ri=Object.freeze({__proto__:null,APIError:APIError,BlockchainData:BlockchainData,Types:Ya}),ni={exports:{}};
/**
   * [js-sha3]{@link https://github.com/emn178/js-sha3}
   *
   * @version 0.8.0
   * @author Chen, Yi-Cyuan [emn178@gmail.com]
   * @copyright Chen, Yi-Cyuan 2015-2018
   * @license MIT
   */
!function(D){!function(){var te="input is invalid type",he="object"==typeof window,ye=he?window:{};ye.JS_SHA3_NO_WINDOW&&(he=!1);var be=!he&&"object"==typeof self;!ye.JS_SHA3_NO_NODE_JS&&!1?ye=rn:be&&(ye=self);var ve=!ye.JS_SHA3_NO_COMMON_JS&&D.exports,we=!ye.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,_e="0123456789abcdef".split(""),Pe=[4,1024,262144,67108864],Ie=[0,8,16,24],Re=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],ke=[224,256,384,512],Oe=[128,256],xe=["hex","buffer","arrayBuffer","array","digest"],Be={128:168,256:136};!ye.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(D){return"[object Array]"===Object.prototype.toString.call(D)}),!we||!ye.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(D){return"object"==typeof D&&D.buffer&&D.buffer.constructor===ArrayBuffer});for(var createOutputMethod=function(D,te,he){return function(ye){return new Keccak(D,te,D).update(ye)[he]()}},createShakeOutputMethod=function(D,te,he){return function(ye,be){return new Keccak(D,te,be).update(ye)[he]()}},createCshakeOutputMethod=function(D,te,he){return function(te,ye,be,ve){return De["cshake"+D].update(te,ye,be,ve)[he]()}},createKmacOutputMethod=function(D,te,he){return function(te,ye,be,ve){return De["kmac"+D].update(te,ye,be,ve)[he]()}},createOutputMethods=function(D,te,he,ye){for(var be=0;be<xe.length;++be){var ve=xe[be];D[ve]=te(he,ye,ve)}return D},createMethod=function(D,te){var he=createOutputMethod(D,te,"hex");return he.create=function(){return new Keccak(D,te,D)},he.update=function(D){return he.create().update(D)},createOutputMethods(he,createOutputMethod,D,te)},Fe=[{name:"keccak",padding:[1,256,65536,16777216],bits:ke,createMethod:createMethod},{name:"sha3",padding:[6,1536,393216,100663296],bits:ke,createMethod:createMethod},{name:"shake",padding:[31,7936,2031616,520093696],bits:Oe,createMethod:function(D,te){var he=createShakeOutputMethod(D,te,"hex");return he.create=function(he){return new Keccak(D,te,he)},he.update=function(D,te){return he.create(te).update(D)},createOutputMethods(he,createShakeOutputMethod,D,te)}},{name:"cshake",padding:Pe,bits:Oe,createMethod:function(D,te){var he=Be[D],ye=createCshakeOutputMethod(D,0,"hex");return ye.create=function(ye,be,ve){return be||ve?new Keccak(D,te,ye).bytepad([be,ve],he):De["shake"+D].create(ye)},ye.update=function(D,te,he,be){return ye.create(te,he,be).update(D)},createOutputMethods(ye,createCshakeOutputMethod,D,te)}},{name:"kmac",padding:Pe,bits:Oe,createMethod:function(D,te){var he=Be[D],ye=createKmacOutputMethod(D,0,"hex");return ye.create=function(ye,be,ve){return new Kmac(D,te,be).bytepad(["KMAC",ve],he).bytepad([ye],he)},ye.update=function(D,te,he,be){return ye.create(D,he,be).update(te)},createOutputMethods(ye,createKmacOutputMethod,D,te)}}],De={},Le=[],Ue=0;Ue<Fe.length;++Ue)for(var qe=Fe[Ue],je=qe.bits,Je=0;Je<je.length;++Je){var et=qe.name+"_"+je[Je];if(Le.push(et),De[et]=qe.createMethod(je[Je],qe.padding),"sha3"!==qe.name){var tt=qe.name+je[Je];Le.push(tt),De[tt]=De[et]}}function Keccak(D,te,he){this.blocks=[],this.s=[],this.padding=te,this.outputBits=he,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(D<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=he>>5,this.extraBytes=(31&he)>>3;for(var ye=0;ye<50;++ye)this.s[ye]=0}function Kmac(D,te,he){Keccak.call(this,D,te,he)}Keccak.prototype.update=function(D){if(this.finalized)throw new Error("finalize already called");var he,ye=typeof D;if("string"!==ye){if("object"!==ye)throw new Error(te);if(null===D)throw new Error(te);if(we&&D.constructor===ArrayBuffer)D=new Uint8Array(D);else if(!(Array.isArray(D)||we&&ArrayBuffer.isView(D)))throw new Error(te);he=!0}for(var be,ve,_e=this.blocks,Pe=this.byteCount,Re=D.length,ke=this.blockCount,Oe=0,xe=this.s;Oe<Re;){if(this.reset)for(this.reset=!1,_e[0]=this.block,be=1;be<ke+1;++be)_e[be]=0;if(he)for(be=this.start;Oe<Re&&be<Pe;++Oe)_e[be>>2]|=D[Oe]<<Ie[3&be++];else for(be=this.start;Oe<Re&&be<Pe;++Oe)(ve=D.charCodeAt(Oe))<128?_e[be>>2]|=ve<<Ie[3&be++]:ve<2048?(_e[be>>2]|=(192|ve>>6)<<Ie[3&be++],_e[be>>2]|=(128|63&ve)<<Ie[3&be++]):ve<55296||ve>=57344?(_e[be>>2]|=(224|ve>>12)<<Ie[3&be++],_e[be>>2]|=(128|ve>>6&63)<<Ie[3&be++],_e[be>>2]|=(128|63&ve)<<Ie[3&be++]):(ve=65536+((1023&ve)<<10|1023&D.charCodeAt(++Oe)),_e[be>>2]|=(240|ve>>18)<<Ie[3&be++],_e[be>>2]|=(128|ve>>12&63)<<Ie[3&be++],_e[be>>2]|=(128|ve>>6&63)<<Ie[3&be++],_e[be>>2]|=(128|63&ve)<<Ie[3&be++]);if(this.lastByteIndex=be,be>=Pe){for(this.start=be-Pe,this.block=_e[ke],be=0;be<ke;++be)xe[be]^=_e[be];f(xe),this.reset=!0}else this.start=be}return this},Keccak.prototype.encode=function(D,te){var he=255&D,ye=1,be=[he];for(he=255&(D>>=8);he>0;)be.unshift(he),he=255&(D>>=8),++ye;return te?be.push(ye):be.unshift(ye),this.update(be),be.length},Keccak.prototype.encodeString=function(D){var he,ye=typeof D;if("string"!==ye){if("object"!==ye)throw new Error(te);if(null===D)throw new Error(te);if(we&&D.constructor===ArrayBuffer)D=new Uint8Array(D);else if(!(Array.isArray(D)||we&&ArrayBuffer.isView(D)))throw new Error(te);he=!0}var be=0,ve=D.length;if(he)be=ve;else for(var _e=0;_e<D.length;++_e){var Pe=D.charCodeAt(_e);Pe<128?be+=1:Pe<2048?be+=2:Pe<55296||Pe>=57344?be+=3:(Pe=65536+((1023&Pe)<<10|1023&D.charCodeAt(++_e)),be+=4)}return be+=this.encode(8*be),this.update(D),be},Keccak.prototype.bytepad=function(D,te){for(var he=this.encode(te),ye=0;ye<D.length;++ye)he+=this.encodeString(D[ye]);var be=te-he%te,ve=[];return ve.length=be,this.update(ve),this},Keccak.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var D=this.blocks,te=this.lastByteIndex,he=this.blockCount,ye=this.s;if(D[te>>2]|=this.padding[3&te],this.lastByteIndex===this.byteCount)for(D[0]=D[he],te=1;te<he+1;++te)D[te]=0;for(D[he-1]|=2147483648,te=0;te<he;++te)ye[te]^=D[te];f(ye)}},Keccak.prototype.toString=Keccak.prototype.hex=function(){this.finalize();for(var D,te=this.blockCount,he=this.s,ye=this.outputBlocks,be=this.extraBytes,ve=0,we=0,Pe="";we<ye;){for(ve=0;ve<te&&we<ye;++ve,++we)D=he[ve],Pe+=_e[D>>4&15]+_e[15&D]+_e[D>>12&15]+_e[D>>8&15]+_e[D>>20&15]+_e[D>>16&15]+_e[D>>28&15]+_e[D>>24&15];we%te==0&&(f(he),ve=0)}return be&&(D=he[ve],Pe+=_e[D>>4&15]+_e[15&D],be>1&&(Pe+=_e[D>>12&15]+_e[D>>8&15]),be>2&&(Pe+=_e[D>>20&15]+_e[D>>16&15])),Pe},Keccak.prototype.arrayBuffer=function(){this.finalize();var D,te=this.blockCount,he=this.s,ye=this.outputBlocks,be=this.extraBytes,ve=0,we=0,_e=this.outputBits>>3;D=be?new ArrayBuffer(ye+1<<2):new ArrayBuffer(_e);for(var Pe=new Uint32Array(D);we<ye;){for(ve=0;ve<te&&we<ye;++ve,++we)Pe[we]=he[ve];we%te==0&&f(he)}return be&&(Pe[ve]=he[ve],D=D.slice(0,_e)),D},Keccak.prototype.buffer=Keccak.prototype.arrayBuffer,Keccak.prototype.digest=Keccak.prototype.array=function(){this.finalize();for(var D,te,he=this.blockCount,ye=this.s,be=this.outputBlocks,ve=this.extraBytes,we=0,_e=0,Pe=[];_e<be;){for(we=0;we<he&&_e<be;++we,++_e)D=_e<<2,te=ye[we],Pe[D]=255&te,Pe[D+1]=te>>8&255,Pe[D+2]=te>>16&255,Pe[D+3]=te>>24&255;_e%he==0&&f(ye)}return ve&&(D=_e<<2,te=ye[we],Pe[D]=255&te,ve>1&&(Pe[D+1]=te>>8&255),ve>2&&(Pe[D+2]=te>>16&255)),Pe},Kmac.prototype=new Keccak,Kmac.prototype.finalize=function(){return this.encode(this.outputBits,!0),Keccak.prototype.finalize.call(this)};var f=function(D){var te,he,ye,be,ve,we,_e,Pe,Ie,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je,et,tt,rt,nt,at,ut,ht,yt,mt,bt,wt,_t,Tt,At,Et,Pt,St,Ct,kt,Ot,xt,Nt,Bt,Ft,Lt,Ut,$t,qt,Gt,zt,Wt,Vt,Kt,Jt,Zt,rr,cr,dr,kr,$r,qr,jr,Hr;for(ye=0;ye<48;ye+=2)be=D[0]^D[10]^D[20]^D[30]^D[40],ve=D[1]^D[11]^D[21]^D[31]^D[41],we=D[2]^D[12]^D[22]^D[32]^D[42],_e=D[3]^D[13]^D[23]^D[33]^D[43],Pe=D[4]^D[14]^D[24]^D[34]^D[44],Ie=D[5]^D[15]^D[25]^D[35]^D[45],ke=D[6]^D[16]^D[26]^D[36]^D[46],Oe=D[7]^D[17]^D[27]^D[37]^D[47],te=(xe=D[8]^D[18]^D[28]^D[38]^D[48])^(we<<1|_e>>>31),he=(Be=D[9]^D[19]^D[29]^D[39]^D[49])^(_e<<1|we>>>31),D[0]^=te,D[1]^=he,D[10]^=te,D[11]^=he,D[20]^=te,D[21]^=he,D[30]^=te,D[31]^=he,D[40]^=te,D[41]^=he,te=be^(Pe<<1|Ie>>>31),he=ve^(Ie<<1|Pe>>>31),D[2]^=te,D[3]^=he,D[12]^=te,D[13]^=he,D[22]^=te,D[23]^=he,D[32]^=te,D[33]^=he,D[42]^=te,D[43]^=he,te=we^(ke<<1|Oe>>>31),he=_e^(Oe<<1|ke>>>31),D[4]^=te,D[5]^=he,D[14]^=te,D[15]^=he,D[24]^=te,D[25]^=he,D[34]^=te,D[35]^=he,D[44]^=te,D[45]^=he,te=Pe^(xe<<1|Be>>>31),he=Ie^(Be<<1|xe>>>31),D[6]^=te,D[7]^=he,D[16]^=te,D[17]^=he,D[26]^=te,D[27]^=he,D[36]^=te,D[37]^=he,D[46]^=te,D[47]^=he,te=ke^(be<<1|ve>>>31),he=Oe^(ve<<1|be>>>31),D[8]^=te,D[9]^=he,D[18]^=te,D[19]^=he,D[28]^=te,D[29]^=he,D[38]^=te,D[39]^=he,D[48]^=te,D[49]^=he,Fe=D[0],De=D[1],Ut=D[11]<<4|D[10]>>>28,$t=D[10]<<4|D[11]>>>28,yt=D[20]<<3|D[21]>>>29,mt=D[21]<<3|D[20]>>>29,$r=D[31]<<9|D[30]>>>23,qr=D[30]<<9|D[31]>>>23,Nt=D[40]<<18|D[41]>>>14,Bt=D[41]<<18|D[40]>>>14,At=D[2]<<1|D[3]>>>31,Et=D[3]<<1|D[2]>>>31,Le=D[13]<<12|D[12]>>>20,Ue=D[12]<<12|D[13]>>>20,qt=D[22]<<10|D[23]>>>22,Gt=D[23]<<10|D[22]>>>22,bt=D[33]<<13|D[32]>>>19,wt=D[32]<<13|D[33]>>>19,jr=D[42]<<2|D[43]>>>30,Hr=D[43]<<2|D[42]>>>30,Jt=D[5]<<30|D[4]>>>2,Zt=D[4]<<30|D[5]>>>2,Pt=D[14]<<6|D[15]>>>26,St=D[15]<<6|D[14]>>>26,qe=D[25]<<11|D[24]>>>21,je=D[24]<<11|D[25]>>>21,zt=D[34]<<15|D[35]>>>17,Wt=D[35]<<15|D[34]>>>17,_t=D[45]<<29|D[44]>>>3,Tt=D[44]<<29|D[45]>>>3,nt=D[6]<<28|D[7]>>>4,at=D[7]<<28|D[6]>>>4,rr=D[17]<<23|D[16]>>>9,cr=D[16]<<23|D[17]>>>9,Ct=D[26]<<25|D[27]>>>7,kt=D[27]<<25|D[26]>>>7,Je=D[36]<<21|D[37]>>>11,et=D[37]<<21|D[36]>>>11,Vt=D[47]<<24|D[46]>>>8,Kt=D[46]<<24|D[47]>>>8,Ft=D[8]<<27|D[9]>>>5,Lt=D[9]<<27|D[8]>>>5,ut=D[18]<<20|D[19]>>>12,ht=D[19]<<20|D[18]>>>12,dr=D[29]<<7|D[28]>>>25,kr=D[28]<<7|D[29]>>>25,Ot=D[38]<<8|D[39]>>>24,xt=D[39]<<8|D[38]>>>24,tt=D[48]<<14|D[49]>>>18,rt=D[49]<<14|D[48]>>>18,D[0]=Fe^~Le&qe,D[1]=De^~Ue&je,D[10]=nt^~ut&yt,D[11]=at^~ht&mt,D[20]=At^~Pt&Ct,D[21]=Et^~St&kt,D[30]=Ft^~Ut&qt,D[31]=Lt^~$t&Gt,D[40]=Jt^~rr&dr,D[41]=Zt^~cr&kr,D[2]=Le^~qe&Je,D[3]=Ue^~je&et,D[12]=ut^~yt&bt,D[13]=ht^~mt&wt,D[22]=Pt^~Ct&Ot,D[23]=St^~kt&xt,D[32]=Ut^~qt&zt,D[33]=$t^~Gt&Wt,D[42]=rr^~dr&$r,D[43]=cr^~kr&qr,D[4]=qe^~Je&tt,D[5]=je^~et&rt,D[14]=yt^~bt&_t,D[15]=mt^~wt&Tt,D[24]=Ct^~Ot&Nt,D[25]=kt^~xt&Bt,D[34]=qt^~zt&Vt,D[35]=Gt^~Wt&Kt,D[44]=dr^~$r&jr,D[45]=kr^~qr&Hr,D[6]=Je^~tt&Fe,D[7]=et^~rt&De,D[16]=bt^~_t&nt,D[17]=wt^~Tt&at,D[26]=Ot^~Nt&At,D[27]=xt^~Bt&Et,D[36]=zt^~Vt&Ft,D[37]=Wt^~Kt&Lt,D[46]=$r^~jr&Jt,D[47]=qr^~Hr&Zt,D[8]=tt^~Fe&Le,D[9]=rt^~De&Ue,D[18]=_t^~nt&ut,D[19]=Tt^~at&ht,D[28]=Nt^~At&Pt,D[29]=Bt^~Et&St,D[38]=Vt^~Ft&Ut,D[39]=Kt^~Lt&$t,D[48]=jr^~Jt&rr,D[49]=Hr^~Zt&cr,D[0]^=Re[ye],D[1]^=Re[ye+1]};if(ve)D.exports=De;else for(Ue=0;Ue<Le.length;++Ue)ye[Le[Ue]]=De[Le[Ue]]}()}(ni);var ai=getDefaultExportFromCjs$1(ni.exports);let ii=!1,si=!1;const oi={debug:1,default:2,info:2,warning:3,error:4,off:5};let ci=oi.default,di=null;const ui=function _checkNormalize$1(){try{const D=[];if(["NFD","NFC","NFKD","NFKC"].forEach((te=>{try{if("test"!=="test".normalize(te))throw new Error("bad normalize")}catch(he){D.push(te)}})),D.length)throw new Error("missing "+D.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(D){return D.message}return null}();var fi,li;!function(D){D.DEBUG="DEBUG",D.INFO="INFO",D.WARNING="WARNING",D.ERROR="ERROR",D.OFF="OFF"}(fi||(fi={})),function(D){D.UNKNOWN_ERROR="UNKNOWN_ERROR",D.NOT_IMPLEMENTED="NOT_IMPLEMENTED",D.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",D.NETWORK_ERROR="NETWORK_ERROR",D.SERVER_ERROR="SERVER_ERROR",D.TIMEOUT="TIMEOUT",D.BUFFER_OVERRUN="BUFFER_OVERRUN",D.NUMERIC_FAULT="NUMERIC_FAULT",D.MISSING_NEW="MISSING_NEW",D.INVALID_ARGUMENT="INVALID_ARGUMENT",D.MISSING_ARGUMENT="MISSING_ARGUMENT",D.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",D.CALL_EXCEPTION="CALL_EXCEPTION",D.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",D.NONCE_EXPIRED="NONCE_EXPIRED",D.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",D.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",D.TRANSACTION_REPLACED="TRANSACTION_REPLACED",D.ACTION_REJECTED="ACTION_REJECTED"}(li||(li={}));const pi="0123456789abcdef";let hi=class Logger{constructor(D){Object.defineProperty(this,"version",{enumerable:!0,value:D,writable:!1})}_log(D,te){const he=D.toLowerCase();null==oi[he]&&this.throwArgumentError("invalid log level name","logLevel",D),ci>oi[he]||console.log.apply(console,te)}debug(...D){this._log(Logger.levels.DEBUG,D)}info(...D){this._log(Logger.levels.INFO,D)}warn(...D){this._log(Logger.levels.WARNING,D)}makeError(D,te,he){if(si)return this.makeError("censored error",te,{});te||(te=Logger.errors.UNKNOWN_ERROR),he||(he={});const ye=[];Object.keys(he).forEach((D=>{const te=he[D];try{if(te instanceof Uint8Array){let he="";for(let D=0;D<te.length;D++)he+=pi[te[D]>>4],he+=pi[15&te[D]];ye.push(D+"=Uint8Array(0x"+he+")")}else ye.push(D+"="+JSON.stringify(te))}catch(te){ye.push(D+"="+JSON.stringify(he[D].toString()))}})),ye.push(`code=${te}`),ye.push(`version=${this.version}`);const be=D;let ve="";switch(te){case li.NUMERIC_FAULT:{ve="NUMERIC_FAULT";const te=D;switch(te){case"overflow":case"underflow":case"division-by-zero":ve+="-"+te;break;case"negative-power":case"negative-width":ve+="-unsupported";break;case"unbound-bitwise-result":ve+="-unbound-result"}break}case li.CALL_EXCEPTION:case li.INSUFFICIENT_FUNDS:case li.MISSING_NEW:case li.NONCE_EXPIRED:case li.REPLACEMENT_UNDERPRICED:case li.TRANSACTION_REPLACED:case li.UNPREDICTABLE_GAS_LIMIT:ve=te}ve&&(D+=" [ See: https://links.ethers.org/v5-errors-"+ve+" ]"),ye.length&&(D+=" ("+ye.join(", ")+")");const we=new Error(D);return we.reason=be,we.code=te,Object.keys(he).forEach((function(D){we[D]=he[D]})),we}throwError(D,te,he){throw this.makeError(D,te,he)}throwArgumentError(D,te,he){return this.throwError(D,Logger.errors.INVALID_ARGUMENT,{argument:te,value:he})}assert(D,te,he,ye){D||this.throwError(te,he,ye)}assertArgument(D,te,he,ye){D||this.throwArgumentError(te,he,ye)}checkNormalize(D){ui&&this.throwError("platform missing String.prototype.normalize",Logger.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:ui})}checkSafeUint53(D,te){"number"==typeof D&&(null==te&&(te="value not safe"),(D<0||D>=9007199254740991)&&this.throwError(te,Logger.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:D}),D%1&&this.throwError(te,Logger.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:D}))}checkArgumentCount(D,te,he){he=he?": "+he:"",D<te&&this.throwError("missing argument"+he,Logger.errors.MISSING_ARGUMENT,{count:D,expectedCount:te}),D>te&&this.throwError("too many arguments"+he,Logger.errors.UNEXPECTED_ARGUMENT,{count:D,expectedCount:te})}checkNew(D,te){D!==Object&&null!=D||this.throwError("missing new",Logger.errors.MISSING_NEW,{name:te.name})}checkAbstract(D,te){D===te?this.throwError("cannot instantiate abstract class "+JSON.stringify(te.name)+" directly; use a sub-class",Logger.errors.UNSUPPORTED_OPERATION,{name:D.name,operation:"new"}):D!==Object&&null!=D||this.throwError("missing new",Logger.errors.MISSING_NEW,{name:te.name})}static globalLogger(){return di||(di=new Logger("logger/5.7.0")),di}static setCensorship(D,te){if(!D&&te&&this.globalLogger().throwError("cannot permanently disable censorship",Logger.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),ii){if(!D)return;this.globalLogger().throwError("error censorship permanent",Logger.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}si=!!D,ii=!!te}static setLogLevel(D){const te=oi[D.toLowerCase()];null!=te?ci=te:Logger.globalLogger().warn("invalid log level - "+D)}static from(D){return new Logger(D)}};hi.errors=li,hi.levels=fi;const yi=new hi("bytes/5.7.0");function isHexable$1(D){return!!D.toHexString}function addSlice$1(D){return D.slice||(D.slice=function(){const te=Array.prototype.slice.call(arguments);return addSlice$1(new Uint8Array(Array.prototype.slice.apply(D,te)))}),D}function isBytesLike$2(D){return isHexString$4(D)&&!(D.length%2)||isBytes$1(D)}function isInteger$1(D){return"number"==typeof D&&D==D&&D%1==0}function isBytes$1(D){if(null==D)return!1;if(D.constructor===Uint8Array)return!0;if("string"==typeof D)return!1;if(!isInteger$1(D.length)||D.length<0)return!1;for(let te=0;te<D.length;te++){const he=D[te];if(!isInteger$1(he)||he<0||he>=256)return!1}return!0}function arrayify$1(D,te){if(te||(te={}),"number"==typeof D){yi.checkSafeUint53(D,"invalid arrayify value");const te=[];for(;D;)te.unshift(255&D),D=parseInt(String(D/256));return 0===te.length&&te.push(0),addSlice$1(new Uint8Array(te))}if(te.allowMissingPrefix&&"string"==typeof D&&"0x"!==D.substring(0,2)&&(D="0x"+D),isHexable$1(D)&&(D=D.toHexString()),isHexString$4(D)){let he=D.substring(2);he.length%2&&("left"===te.hexPad?he="0"+he:"right"===te.hexPad?he+="0":yi.throwArgumentError("hex data is odd-length","value",D));const ye=[];for(let D=0;D<he.length;D+=2)ye.push(parseInt(he.substring(D,D+2),16));return addSlice$1(new Uint8Array(ye))}return isBytes$1(D)?addSlice$1(new Uint8Array(D)):yi.throwArgumentError("invalid arrayify value","value",D)}function concat$2(D){const te=D.map((D=>arrayify$1(D))),he=te.reduce(((D,te)=>D+te.length),0),ye=new Uint8Array(he);return te.reduce(((D,te)=>(ye.set(te,D),D+te.length)),0),addSlice$1(ye)}function stripZeros$1(D){let te=arrayify$1(D);if(0===te.length)return te;let he=0;for(;he<te.length&&0===te[he];)he++;return he&&(te=te.slice(he)),te}function zeroPad$2(D,te){(D=arrayify$1(D)).length>te&&yi.throwArgumentError("value out of range","value",arguments[0]);const he=new Uint8Array(te);return he.set(D,te-D.length),addSlice$1(he)}function isHexString$4(D,te){return!("string"!=typeof D||!D.match(/^0x[0-9A-Fa-f]*$/))&&(!te||D.length===2+2*te)}const mi="0123456789abcdef";function hexlify$2(D,te){if(te||(te={}),"number"==typeof D){yi.checkSafeUint53(D,"invalid hexlify value");let te="";for(;D;)te=mi[15&D]+te,D=Math.floor(D/16);return te.length?(te.length%2&&(te="0"+te),"0x"+te):"0x00"}if("bigint"==typeof D)return(D=D.toString(16)).length%2?"0x0"+D:"0x"+D;if(te.allowMissingPrefix&&"string"==typeof D&&"0x"!==D.substring(0,2)&&(D="0x"+D),isHexable$1(D))return D.toHexString();if(isHexString$4(D))return D.length%2&&("left"===te.hexPad?D="0x0"+D.substring(2):"right"===te.hexPad?D+="0":yi.throwArgumentError("hex data is odd-length","value",D)),D.toLowerCase();if(isBytes$1(D)){let te="0x";for(let he=0;he<D.length;he++){let ye=D[he];te+=mi[(240&ye)>>4]+mi[15&ye]}return te}return yi.throwArgumentError("invalid hexlify value","value",D)}function hexDataLength$1(D){if("string"!=typeof D)D=hexlify$2(D);else if(!isHexString$4(D)||D.length%2)return null;return(D.length-2)/2}function hexDataSlice$1(D,te,he){return"string"!=typeof D?D=hexlify$2(D):(!isHexString$4(D)||D.length%2)&&yi.throwArgumentError("invalid hexData","value",D),te=2+2*te,null!=he?"0x"+D.substring(te,2+2*he):"0x"+D.substring(te)}function hexConcat$1(D){let te="0x";return D.forEach((D=>{te+=hexlify$2(D).substring(2)})),te}function hexValue$1(D){const te=hexStripZeros$1(hexlify$2(D,{hexPad:"left"}));return"0x"===te?"0x0":te}function hexStripZeros$1(D){"string"!=typeof D&&(D=hexlify$2(D)),isHexString$4(D)||yi.throwArgumentError("invalid hex string","value",D),D=D.substring(2);let te=0;for(;te<D.length&&"0"===D[te];)te++;return"0x"+D.substring(te)}function hexZeroPad$1(D,te){for("string"!=typeof D?D=hexlify$2(D):isHexString$4(D)||yi.throwArgumentError("invalid hex string","value",D),D.length>2*te+2&&yi.throwArgumentError("value out of range","value",arguments[1]);D.length<2*te+2;)D="0x0"+D.substring(2);return D}function splitSignature(D){const te={r:"0x",s:"0x",_vs:"0x",recoveryParam:0,v:0,yParityAndS:"0x",compact:"0x"};if(isBytesLike$2(D)){let he=arrayify$1(D);64===he.length?(te.v=27+(he[32]>>7),he[32]&=127,te.r=hexlify$2(he.slice(0,32)),te.s=hexlify$2(he.slice(32,64))):65===he.length?(te.r=hexlify$2(he.slice(0,32)),te.s=hexlify$2(he.slice(32,64)),te.v=he[64]):yi.throwArgumentError("invalid signature string","signature",D),te.v<27&&(0===te.v||1===te.v?te.v+=27:yi.throwArgumentError("signature invalid v byte","signature",D)),te.recoveryParam=1-te.v%2,te.recoveryParam&&(he[32]|=128),te._vs=hexlify$2(he.slice(32,64))}else{if(te.r=D.r,te.s=D.s,te.v=D.v,te.recoveryParam=D.recoveryParam,te._vs=D._vs,null!=te._vs){const he=zeroPad$2(arrayify$1(te._vs),32);te._vs=hexlify$2(he);const ye=he[0]>=128?1:0;null==te.recoveryParam?te.recoveryParam=ye:te.recoveryParam!==ye&&yi.throwArgumentError("signature recoveryParam mismatch _vs","signature",D),he[0]&=127;const be=hexlify$2(he);null==te.s?te.s=be:te.s!==be&&yi.throwArgumentError("signature v mismatch _vs","signature",D)}if(null==te.recoveryParam)null==te.v?yi.throwArgumentError("signature missing v and recoveryParam","signature",D):0===te.v||1===te.v?te.recoveryParam=te.v:te.recoveryParam=1-te.v%2;else if(null==te.v)te.v=27+te.recoveryParam;else{const he=0===te.v||1===te.v?te.v:1-te.v%2;te.recoveryParam!==he&&yi.throwArgumentError("signature recoveryParam mismatch v","signature",D)}null!=te.r&&isHexString$4(te.r)?te.r=hexZeroPad$1(te.r,32):yi.throwArgumentError("signature missing or invalid r","signature",D),null!=te.s&&isHexString$4(te.s)?te.s=hexZeroPad$1(te.s,32):yi.throwArgumentError("signature missing or invalid s","signature",D);const he=arrayify$1(te.s);he[0]>=128&&yi.throwArgumentError("signature s out of range","signature",D),te.recoveryParam&&(he[0]|=128);const ye=hexlify$2(he);te._vs&&(isHexString$4(te._vs)||yi.throwArgumentError("signature invalid _vs","signature",D),te._vs=hexZeroPad$1(te._vs,32)),null==te._vs?te._vs=ye:te._vs!==ye&&yi.throwArgumentError("signature _vs mismatch v and s","signature",D)}return te.yParityAndS=te._vs,te.compact=te.r+te.yParityAndS.substring(2),te}function keccak256$3(D){return"0x"+ai.keccak_256(arrayify$1(D))}const bi="0x0000000000000000000000000000000000000000";var gi={exports:{}},vi="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},wi=[],_i=[],Ti="undefined"!=typeof Uint8Array?Uint8Array:Array,Ai=!1;function init$2(){Ai=!0;for(var D="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",te=0;te<64;++te)wi[te]=D[te],_i[D.charCodeAt(te)]=te;_i["-".charCodeAt(0)]=62,_i["_".charCodeAt(0)]=63}function encodeChunk(D,te,he){for(var ye,be,ve=[],we=te;we<he;we+=3)ye=(D[we]<<16)+(D[we+1]<<8)+D[we+2],ve.push(wi[(be=ye)>>18&63]+wi[be>>12&63]+wi[be>>6&63]+wi[63&be]);return ve.join("")}function fromByteArray(D){var te;Ai||init$2();for(var he=D.length,ye=he%3,be="",ve=[],we=16383,_e=0,Pe=he-ye;_e<Pe;_e+=we)ve.push(encodeChunk(D,_e,_e+we>Pe?Pe:_e+we));return 1===ye?(te=D[he-1],be+=wi[te>>2],be+=wi[te<<4&63],be+="=="):2===ye&&(te=(D[he-2]<<8)+D[he-1],be+=wi[te>>10],be+=wi[te>>4&63],be+=wi[te<<2&63],be+="="),ve.push(be),ve.join("")}function read(D,te,he,ye,be){var ve,we,_e=8*be-ye-1,Pe=(1<<_e)-1,Ie=Pe>>1,Re=-7,ke=he?be-1:0,Oe=he?-1:1,xe=D[te+ke];for(ke+=Oe,ve=xe&(1<<-Re)-1,xe>>=-Re,Re+=_e;Re>0;ve=256*ve+D[te+ke],ke+=Oe,Re-=8);for(we=ve&(1<<-Re)-1,ve>>=-Re,Re+=ye;Re>0;we=256*we+D[te+ke],ke+=Oe,Re-=8);if(0===ve)ve=1-Ie;else{if(ve===Pe)return we?NaN:1/0*(xe?-1:1);we+=Math.pow(2,ye),ve-=Ie}return(xe?-1:1)*we*Math.pow(2,ve-ye)}function write(D,te,he,ye,be,ve){var we,_e,Pe,Ie=8*ve-be-1,Re=(1<<Ie)-1,ke=Re>>1,Oe=23===be?Math.pow(2,-24)-Math.pow(2,-77):0,xe=ye?0:ve-1,Be=ye?1:-1,Fe=te<0||0===te&&1/te<0?1:0;for(te=Math.abs(te),isNaN(te)||te===1/0?(_e=isNaN(te)?1:0,we=Re):(we=Math.floor(Math.log(te)/Math.LN2),te*(Pe=Math.pow(2,-we))<1&&(we--,Pe*=2),(te+=we+ke>=1?Oe/Pe:Oe*Math.pow(2,1-ke))*Pe>=2&&(we++,Pe/=2),we+ke>=Re?(_e=0,we=Re):we+ke>=1?(_e=(te*Pe-1)*Math.pow(2,be),we+=ke):(_e=te*Math.pow(2,ke-1)*Math.pow(2,be),we=0));be>=8;D[he+xe]=255&_e,xe+=Be,_e/=256,be-=8);for(we=we<<be|_e,Ie+=be;Ie>0;D[he+xe]=255&we,xe+=Be,we/=256,Ie-=8);D[he+xe-Be]|=128*Fe}var Ei={}.toString,Pi=Array.isArray||function(D){return"[object Array]"==Ei.call(D)};Buffer$h.TYPED_ARRAY_SUPPORT=void 0===vi.TYPED_ARRAY_SUPPORT||vi.TYPED_ARRAY_SUPPORT;var Si=kMaxLength();function kMaxLength(){return Buffer$h.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function createBuffer(D,te){if(kMaxLength()<te)throw new RangeError("Invalid typed array length");return Buffer$h.TYPED_ARRAY_SUPPORT?(D=new Uint8Array(te)).__proto__=Buffer$h.prototype:(null===D&&(D=new Buffer$h(te)),D.length=te),D}function Buffer$h(D,te,he){if(!(Buffer$h.TYPED_ARRAY_SUPPORT||this instanceof Buffer$h))return new Buffer$h(D,te,he);if("number"==typeof D){if("string"==typeof te)throw new Error("If encoding is specified then the first argument must be a string");return allocUnsafe(this,D)}return from(this,D,te,he)}function from(D,te,he,ye){if("number"==typeof te)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&te instanceof ArrayBuffer?function fromArrayBuffer(D,te,he,ye){if(te.byteLength,he<0||te.byteLength<he)throw new RangeError("'offset' is out of bounds");if(te.byteLength<he+(ye||0))throw new RangeError("'length' is out of bounds");te=void 0===he&&void 0===ye?new Uint8Array(te):void 0===ye?new Uint8Array(te,he):new Uint8Array(te,he,ye);Buffer$h.TYPED_ARRAY_SUPPORT?(D=te).__proto__=Buffer$h.prototype:D=fromArrayLike(D,te);return D}(D,te,he,ye):"string"==typeof te?function fromString(D,te,he){"string"==typeof he&&""!==he||(he="utf8");if(!Buffer$h.isEncoding(he))throw new TypeError('"encoding" must be a valid string encoding');var ye=0|byteLength(te,he);D=createBuffer(D,ye);var be=D.write(te,he);be!==ye&&(D=D.slice(0,be));return D}(D,te,he):function fromObject(D,te){if(internalIsBuffer(te)){var he=0|checked(te.length);return 0===(D=createBuffer(D,he)).length||te.copy(D,0,0,he),D}if(te){if("undefined"!=typeof ArrayBuffer&&te.buffer instanceof ArrayBuffer||"length"in te)return"number"!=typeof te.length||function isnan(D){return D!=D}(te.length)?createBuffer(D,0):fromArrayLike(D,te);if("Buffer"===te.type&&Pi(te.data))return fromArrayLike(D,te.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(D,te)}function assertSize(D){if("number"!=typeof D)throw new TypeError('"size" argument must be a number');if(D<0)throw new RangeError('"size" argument must not be negative')}function allocUnsafe(D,te){if(assertSize(te),D=createBuffer(D,te<0?0:0|checked(te)),!Buffer$h.TYPED_ARRAY_SUPPORT)for(var he=0;he<te;++he)D[he]=0;return D}function fromArrayLike(D,te){var he=te.length<0?0:0|checked(te.length);D=createBuffer(D,he);for(var ye=0;ye<he;ye+=1)D[ye]=255&te[ye];return D}function checked(D){if(D>=kMaxLength())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+kMaxLength().toString(16)+" bytes");return 0|D}function internalIsBuffer(D){return!(null==D||!D._isBuffer)}function byteLength(D,te){if(internalIsBuffer(D))return D.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(D)||D instanceof ArrayBuffer))return D.byteLength;"string"!=typeof D&&(D=""+D);var he=D.length;if(0===he)return 0;for(var ye=!1;;)switch(te){case"ascii":case"latin1":case"binary":return he;case"utf8":case"utf-8":case void 0:return utf8ToBytes$3(D).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*he;case"hex":return he>>>1;case"base64":return base64ToBytes(D).length;default:if(ye)return utf8ToBytes$3(D).length;te=(""+te).toLowerCase(),ye=!0}}function slowToString(D,te,he){var ye=!1;if((void 0===te||te<0)&&(te=0),te>this.length)return"";if((void 0===he||he>this.length)&&(he=this.length),he<=0)return"";if((he>>>=0)<=(te>>>=0))return"";for(D||(D="utf8");;)switch(D){case"hex":return hexSlice(this,te,he);case"utf8":case"utf-8":return utf8Slice(this,te,he);case"ascii":return asciiSlice(this,te,he);case"latin1":case"binary":return latin1Slice(this,te,he);case"base64":return base64Slice(this,te,he);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,te,he);default:if(ye)throw new TypeError("Unknown encoding: "+D);D=(D+"").toLowerCase(),ye=!0}}function swap$1(D,te,he){var ye=D[te];D[te]=D[he],D[he]=ye}function bidirectionalIndexOf(D,te,he,ye,be){if(0===D.length)return-1;if("string"==typeof he?(ye=he,he=0):he>2147483647?he=2147483647:he<-2147483648&&(he=-2147483648),he=+he,isNaN(he)&&(he=be?0:D.length-1),he<0&&(he=D.length+he),he>=D.length){if(be)return-1;he=D.length-1}else if(he<0){if(!be)return-1;he=0}if("string"==typeof te&&(te=Buffer$h.from(te,ye)),internalIsBuffer(te))return 0===te.length?-1:arrayIndexOf(D,te,he,ye,be);if("number"==typeof te)return te&=255,Buffer$h.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?be?Uint8Array.prototype.indexOf.call(D,te,he):Uint8Array.prototype.lastIndexOf.call(D,te,he):arrayIndexOf(D,[te],he,ye,be);throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(D,te,he,ye,be){var ve,we=1,_e=D.length,Pe=te.length;if(void 0!==ye&&("ucs2"===(ye=String(ye).toLowerCase())||"ucs-2"===ye||"utf16le"===ye||"utf-16le"===ye)){if(D.length<2||te.length<2)return-1;we=2,_e/=2,Pe/=2,he/=2}function read(D,te){return 1===we?D[te]:D.readUInt16BE(te*we)}if(be){var Ie=-1;for(ve=he;ve<_e;ve++)if(read(D,ve)===read(te,-1===Ie?0:ve-Ie)){if(-1===Ie&&(Ie=ve),ve-Ie+1===Pe)return Ie*we}else-1!==Ie&&(ve-=ve-Ie),Ie=-1}else for(he+Pe>_e&&(he=_e-Pe),ve=he;ve>=0;ve--){for(var Re=!0,ke=0;ke<Pe;ke++)if(read(D,ve+ke)!==read(te,ke)){Re=!1;break}if(Re)return ve}return-1}function hexWrite(D,te,he,ye){he=Number(he)||0;var be=D.length-he;ye?(ye=Number(ye))>be&&(ye=be):ye=be;var ve=te.length;if(ve%2!=0)throw new TypeError("Invalid hex string");ye>ve/2&&(ye=ve/2);for(var we=0;we<ye;++we){var _e=parseInt(te.substr(2*we,2),16);if(isNaN(_e))return we;D[he+we]=_e}return we}function utf8Write(D,te,he,ye){return blitBuffer(utf8ToBytes$3(te,D.length-he),D,he,ye)}function asciiWrite(D,te,he,ye){return blitBuffer(function asciiToBytes(D){for(var te=[],he=0;he<D.length;++he)te.push(255&D.charCodeAt(he));return te}(te),D,he,ye)}function latin1Write(D,te,he,ye){return asciiWrite(D,te,he,ye)}function base64Write(D,te,he,ye){return blitBuffer(base64ToBytes(te),D,he,ye)}function ucs2Write(D,te,he,ye){return blitBuffer(function utf16leToBytes(D,te){for(var he,ye,be,ve=[],we=0;we<D.length&&!((te-=2)<0);++we)ye=(he=D.charCodeAt(we))>>8,be=he%256,ve.push(be),ve.push(ye);return ve}(te,D.length-he),D,he,ye)}function base64Slice(D,te,he){return 0===te&&he===D.length?fromByteArray(D):fromByteArray(D.slice(te,he))}function utf8Slice(D,te,he){he=Math.min(D.length,he);for(var ye=[],be=te;be<he;){var ve,we,_e,Pe,Ie=D[be],Re=null,ke=Ie>239?4:Ie>223?3:Ie>191?2:1;if(be+ke<=he)switch(ke){case 1:Ie<128&&(Re=Ie);break;case 2:128==(192&(ve=D[be+1]))&&(Pe=(31&Ie)<<6|63&ve)>127&&(Re=Pe);break;case 3:ve=D[be+1],we=D[be+2],128==(192&ve)&&128==(192&we)&&(Pe=(15&Ie)<<12|(63&ve)<<6|63&we)>2047&&(Pe<55296||Pe>57343)&&(Re=Pe);break;case 4:ve=D[be+1],we=D[be+2],_e=D[be+3],128==(192&ve)&&128==(192&we)&&128==(192&_e)&&(Pe=(15&Ie)<<18|(63&ve)<<12|(63&we)<<6|63&_e)>65535&&Pe<1114112&&(Re=Pe)}null===Re?(Re=65533,ke=1):Re>65535&&(Re-=65536,ye.push(Re>>>10&1023|55296),Re=56320|1023&Re),ye.push(Re),be+=ke}return function decodeCodePointsArray(D){var te=D.length;if(te<=Ci)return String.fromCharCode.apply(String,D);var he="",ye=0;for(;ye<te;)he+=String.fromCharCode.apply(String,D.slice(ye,ye+=Ci));return he}(ye)}Buffer$h.poolSize=8192,Buffer$h._augment=function(D){return D.__proto__=Buffer$h.prototype,D},Buffer$h.from=function(D,te,he){return from(null,D,te,he)},Buffer$h.TYPED_ARRAY_SUPPORT&&(Buffer$h.prototype.__proto__=Uint8Array.prototype,Buffer$h.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&Buffer$h[Symbol.species]),Buffer$h.alloc=function(D,te,he){return function alloc(D,te,he,ye){return assertSize(te),te<=0?createBuffer(D,te):void 0!==he?"string"==typeof ye?createBuffer(D,te).fill(he,ye):createBuffer(D,te).fill(he):createBuffer(D,te)}(null,D,te,he)},Buffer$h.allocUnsafe=function(D){return allocUnsafe(null,D)},Buffer$h.allocUnsafeSlow=function(D){return allocUnsafe(null,D)},Buffer$h.isBuffer=isBuffer$3,Buffer$h.compare=function compare(D,te){if(!internalIsBuffer(D)||!internalIsBuffer(te))throw new TypeError("Arguments must be Buffers");if(D===te)return 0;for(var he=D.length,ye=te.length,be=0,ve=Math.min(he,ye);be<ve;++be)if(D[be]!==te[be]){he=D[be],ye=te[be];break}return he<ye?-1:ye<he?1:0},Buffer$h.isEncoding=function isEncoding(D){switch(String(D).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},Buffer$h.concat=function concat(D,te){if(!Pi(D))throw new TypeError('"list" argument must be an Array of Buffers');if(0===D.length)return Buffer$h.alloc(0);var he;if(void 0===te)for(te=0,he=0;he<D.length;++he)te+=D[he].length;var ye=Buffer$h.allocUnsafe(te),be=0;for(he=0;he<D.length;++he){var ve=D[he];if(!internalIsBuffer(ve))throw new TypeError('"list" argument must be an Array of Buffers');ve.copy(ye,be),be+=ve.length}return ye},Buffer$h.byteLength=byteLength,Buffer$h.prototype._isBuffer=!0,Buffer$h.prototype.swap16=function swap16(){var D=this.length;if(D%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var te=0;te<D;te+=2)swap$1(this,te,te+1);return this},Buffer$h.prototype.swap32=function swap32(){var D=this.length;if(D%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var te=0;te<D;te+=4)swap$1(this,te,te+3),swap$1(this,te+1,te+2);return this},Buffer$h.prototype.swap64=function swap64(){var D=this.length;if(D%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var te=0;te<D;te+=8)swap$1(this,te,te+7),swap$1(this,te+1,te+6),swap$1(this,te+2,te+5),swap$1(this,te+3,te+4);return this},Buffer$h.prototype.toString=function toString(){var D=0|this.length;return 0===D?"":0===arguments.length?utf8Slice(this,0,D):slowToString.apply(this,arguments)},Buffer$h.prototype.equals=function equals(D){if(!internalIsBuffer(D))throw new TypeError("Argument must be a Buffer");return this===D||0===Buffer$h.compare(this,D)},Buffer$h.prototype.inspect=function inspect(){var D="";return this.length>0&&(D=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(D+=" ... ")),"<Buffer "+D+">"},Buffer$h.prototype.compare=function compare(D,te,he,ye,be){if(!internalIsBuffer(D))throw new TypeError("Argument must be a Buffer");if(void 0===te&&(te=0),void 0===he&&(he=D?D.length:0),void 0===ye&&(ye=0),void 0===be&&(be=this.length),te<0||he>D.length||ye<0||be>this.length)throw new RangeError("out of range index");if(ye>=be&&te>=he)return 0;if(ye>=be)return-1;if(te>=he)return 1;if(this===D)return 0;for(var ve=(be>>>=0)-(ye>>>=0),we=(he>>>=0)-(te>>>=0),_e=Math.min(ve,we),Pe=this.slice(ye,be),Ie=D.slice(te,he),Re=0;Re<_e;++Re)if(Pe[Re]!==Ie[Re]){ve=Pe[Re],we=Ie[Re];break}return ve<we?-1:we<ve?1:0},Buffer$h.prototype.includes=function includes(D,te,he){return-1!==this.indexOf(D,te,he)},Buffer$h.prototype.indexOf=function indexOf(D,te,he){return bidirectionalIndexOf(this,D,te,he,!0)},Buffer$h.prototype.lastIndexOf=function lastIndexOf(D,te,he){return bidirectionalIndexOf(this,D,te,he,!1)},Buffer$h.prototype.write=function write(D,te,he,ye){if(void 0===te)ye="utf8",he=this.length,te=0;else if(void 0===he&&"string"==typeof te)ye=te,he=this.length,te=0;else{if(!isFinite(te))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");te|=0,isFinite(he)?(he|=0,void 0===ye&&(ye="utf8")):(ye=he,he=void 0)}var be=this.length-te;if((void 0===he||he>be)&&(he=be),D.length>0&&(he<0||te<0)||te>this.length)throw new RangeError("Attempt to write outside buffer bounds");ye||(ye="utf8");for(var ve=!1;;)switch(ye){case"hex":return hexWrite(this,D,te,he);case"utf8":case"utf-8":return utf8Write(this,D,te,he);case"ascii":return asciiWrite(this,D,te,he);case"latin1":case"binary":return latin1Write(this,D,te,he);case"base64":return base64Write(this,D,te,he);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,D,te,he);default:if(ve)throw new TypeError("Unknown encoding: "+ye);ye=(""+ye).toLowerCase(),ve=!0}},Buffer$h.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Ci=4096;function asciiSlice(D,te,he){var ye="";he=Math.min(D.length,he);for(var be=te;be<he;++be)ye+=String.fromCharCode(127&D[be]);return ye}function latin1Slice(D,te,he){var ye="";he=Math.min(D.length,he);for(var be=te;be<he;++be)ye+=String.fromCharCode(D[be]);return ye}function hexSlice(D,te,he){var ye=D.length;(!te||te<0)&&(te=0),(!he||he<0||he>ye)&&(he=ye);for(var be="",ve=te;ve<he;++ve)be+=toHex$5(D[ve]);return be}function utf16leSlice(D,te,he){for(var ye=D.slice(te,he),be="",ve=0;ve<ye.length;ve+=2)be+=String.fromCharCode(ye[ve]+256*ye[ve+1]);return be}function checkOffset(D,te,he){if(D%1!=0||D<0)throw new RangeError("offset is not uint");if(D+te>he)throw new RangeError("Trying to access beyond buffer length")}function checkInt(D,te,he,ye,be,ve){if(!internalIsBuffer(D))throw new TypeError('"buffer" argument must be a Buffer instance');if(te>be||te<ve)throw new RangeError('"value" argument is out of bounds');if(he+ye>D.length)throw new RangeError("Index out of range")}function objectWriteUInt16(D,te,he,ye){te<0&&(te=65535+te+1);for(var be=0,ve=Math.min(D.length-he,2);be<ve;++be)D[he+be]=(te&255<<8*(ye?be:1-be))>>>8*(ye?be:1-be)}function objectWriteUInt32(D,te,he,ye){te<0&&(te=4294967295+te+1);for(var be=0,ve=Math.min(D.length-he,4);be<ve;++be)D[he+be]=te>>>8*(ye?be:3-be)&255}function checkIEEE754(D,te,he,ye,be,ve){if(he+ye>D.length)throw new RangeError("Index out of range");if(he<0)throw new RangeError("Index out of range")}function writeFloat(D,te,he,ye,be){return be||checkIEEE754(D,0,he,4),write(D,te,he,ye,23,4),he+4}function writeDouble(D,te,he,ye,be){return be||checkIEEE754(D,0,he,8),write(D,te,he,ye,52,8),he+8}Buffer$h.prototype.slice=function slice(D,te){var he,ye=this.length;if((D=~~D)<0?(D+=ye)<0&&(D=0):D>ye&&(D=ye),(te=void 0===te?ye:~~te)<0?(te+=ye)<0&&(te=0):te>ye&&(te=ye),te<D&&(te=D),Buffer$h.TYPED_ARRAY_SUPPORT)(he=this.subarray(D,te)).__proto__=Buffer$h.prototype;else{var be=te-D;he=new Buffer$h(be,void 0);for(var ve=0;ve<be;++ve)he[ve]=this[ve+D]}return he},Buffer$h.prototype.readUIntLE=function readUIntLE(D,te,he){D|=0,te|=0,he||checkOffset(D,te,this.length);for(var ye=this[D],be=1,ve=0;++ve<te&&(be*=256);)ye+=this[D+ve]*be;return ye},Buffer$h.prototype.readUIntBE=function readUIntBE(D,te,he){D|=0,te|=0,he||checkOffset(D,te,this.length);for(var ye=this[D+--te],be=1;te>0&&(be*=256);)ye+=this[D+--te]*be;return ye},Buffer$h.prototype.readUInt8=function readUInt8(D,te){return te||checkOffset(D,1,this.length),this[D]},Buffer$h.prototype.readUInt16LE=function readUInt16LE(D,te){return te||checkOffset(D,2,this.length),this[D]|this[D+1]<<8},Buffer$h.prototype.readUInt16BE=function readUInt16BE(D,te){return te||checkOffset(D,2,this.length),this[D]<<8|this[D+1]},Buffer$h.prototype.readUInt32LE=function readUInt32LE(D,te){return te||checkOffset(D,4,this.length),(this[D]|this[D+1]<<8|this[D+2]<<16)+16777216*this[D+3]},Buffer$h.prototype.readUInt32BE=function readUInt32BE(D,te){return te||checkOffset(D,4,this.length),16777216*this[D]+(this[D+1]<<16|this[D+2]<<8|this[D+3])},Buffer$h.prototype.readIntLE=function readIntLE(D,te,he){D|=0,te|=0,he||checkOffset(D,te,this.length);for(var ye=this[D],be=1,ve=0;++ve<te&&(be*=256);)ye+=this[D+ve]*be;return ye>=(be*=128)&&(ye-=Math.pow(2,8*te)),ye},Buffer$h.prototype.readIntBE=function readIntBE(D,te,he){D|=0,te|=0,he||checkOffset(D,te,this.length);for(var ye=te,be=1,ve=this[D+--ye];ye>0&&(be*=256);)ve+=this[D+--ye]*be;return ve>=(be*=128)&&(ve-=Math.pow(2,8*te)),ve},Buffer$h.prototype.readInt8=function readInt8(D,te){return te||checkOffset(D,1,this.length),128&this[D]?-1*(255-this[D]+1):this[D]},Buffer$h.prototype.readInt16LE=function readInt16LE(D,te){te||checkOffset(D,2,this.length);var he=this[D]|this[D+1]<<8;return 32768&he?4294901760|he:he},Buffer$h.prototype.readInt16BE=function readInt16BE(D,te){te||checkOffset(D,2,this.length);var he=this[D+1]|this[D]<<8;return 32768&he?4294901760|he:he},Buffer$h.prototype.readInt32LE=function readInt32LE(D,te){return te||checkOffset(D,4,this.length),this[D]|this[D+1]<<8|this[D+2]<<16|this[D+3]<<24},Buffer$h.prototype.readInt32BE=function readInt32BE(D,te){return te||checkOffset(D,4,this.length),this[D]<<24|this[D+1]<<16|this[D+2]<<8|this[D+3]},Buffer$h.prototype.readFloatLE=function readFloatLE(D,te){return te||checkOffset(D,4,this.length),read(this,D,!0,23,4)},Buffer$h.prototype.readFloatBE=function readFloatBE(D,te){return te||checkOffset(D,4,this.length),read(this,D,!1,23,4)},Buffer$h.prototype.readDoubleLE=function readDoubleLE(D,te){return te||checkOffset(D,8,this.length),read(this,D,!0,52,8)},Buffer$h.prototype.readDoubleBE=function readDoubleBE(D,te){return te||checkOffset(D,8,this.length),read(this,D,!1,52,8)},Buffer$h.prototype.writeUIntLE=function writeUIntLE(D,te,he,ye){(D=+D,te|=0,he|=0,ye)||checkInt(this,D,te,he,Math.pow(2,8*he)-1,0);var be=1,ve=0;for(this[te]=255&D;++ve<he&&(be*=256);)this[te+ve]=D/be&255;return te+he},Buffer$h.prototype.writeUIntBE=function writeUIntBE(D,te,he,ye){(D=+D,te|=0,he|=0,ye)||checkInt(this,D,te,he,Math.pow(2,8*he)-1,0);var be=he-1,ve=1;for(this[te+be]=255&D;--be>=0&&(ve*=256);)this[te+be]=D/ve&255;return te+he},Buffer$h.prototype.writeUInt8=function writeUInt8(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,1,255,0),Buffer$h.TYPED_ARRAY_SUPPORT||(D=Math.floor(D)),this[te]=255&D,te+1},Buffer$h.prototype.writeUInt16LE=function writeUInt16LE(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,2,65535,0),Buffer$h.TYPED_ARRAY_SUPPORT?(this[te]=255&D,this[te+1]=D>>>8):objectWriteUInt16(this,D,te,!0),te+2},Buffer$h.prototype.writeUInt16BE=function writeUInt16BE(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,2,65535,0),Buffer$h.TYPED_ARRAY_SUPPORT?(this[te]=D>>>8,this[te+1]=255&D):objectWriteUInt16(this,D,te,!1),te+2},Buffer$h.prototype.writeUInt32LE=function writeUInt32LE(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,4,4294967295,0),Buffer$h.TYPED_ARRAY_SUPPORT?(this[te+3]=D>>>24,this[te+2]=D>>>16,this[te+1]=D>>>8,this[te]=255&D):objectWriteUInt32(this,D,te,!0),te+4},Buffer$h.prototype.writeUInt32BE=function writeUInt32BE(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,4,4294967295,0),Buffer$h.TYPED_ARRAY_SUPPORT?(this[te]=D>>>24,this[te+1]=D>>>16,this[te+2]=D>>>8,this[te+3]=255&D):objectWriteUInt32(this,D,te,!1),te+4},Buffer$h.prototype.writeIntLE=function writeIntLE(D,te,he,ye){if(D=+D,te|=0,!ye){var be=Math.pow(2,8*he-1);checkInt(this,D,te,he,be-1,-be)}var ve=0,we=1,_e=0;for(this[te]=255&D;++ve<he&&(we*=256);)D<0&&0===_e&&0!==this[te+ve-1]&&(_e=1),this[te+ve]=(D/we>>0)-_e&255;return te+he},Buffer$h.prototype.writeIntBE=function writeIntBE(D,te,he,ye){if(D=+D,te|=0,!ye){var be=Math.pow(2,8*he-1);checkInt(this,D,te,he,be-1,-be)}var ve=he-1,we=1,_e=0;for(this[te+ve]=255&D;--ve>=0&&(we*=256);)D<0&&0===_e&&0!==this[te+ve+1]&&(_e=1),this[te+ve]=(D/we>>0)-_e&255;return te+he},Buffer$h.prototype.writeInt8=function writeInt8(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,1,127,-128),Buffer$h.TYPED_ARRAY_SUPPORT||(D=Math.floor(D)),D<0&&(D=255+D+1),this[te]=255&D,te+1},Buffer$h.prototype.writeInt16LE=function writeInt16LE(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,2,32767,-32768),Buffer$h.TYPED_ARRAY_SUPPORT?(this[te]=255&D,this[te+1]=D>>>8):objectWriteUInt16(this,D,te,!0),te+2},Buffer$h.prototype.writeInt16BE=function writeInt16BE(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,2,32767,-32768),Buffer$h.TYPED_ARRAY_SUPPORT?(this[te]=D>>>8,this[te+1]=255&D):objectWriteUInt16(this,D,te,!1),te+2},Buffer$h.prototype.writeInt32LE=function writeInt32LE(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,4,2147483647,-2147483648),Buffer$h.TYPED_ARRAY_SUPPORT?(this[te]=255&D,this[te+1]=D>>>8,this[te+2]=D>>>16,this[te+3]=D>>>24):objectWriteUInt32(this,D,te,!0),te+4},Buffer$h.prototype.writeInt32BE=function writeInt32BE(D,te,he){return D=+D,te|=0,he||checkInt(this,D,te,4,2147483647,-2147483648),D<0&&(D=4294967295+D+1),Buffer$h.TYPED_ARRAY_SUPPORT?(this[te]=D>>>24,this[te+1]=D>>>16,this[te+2]=D>>>8,this[te+3]=255&D):objectWriteUInt32(this,D,te,!1),te+4},Buffer$h.prototype.writeFloatLE=function writeFloatLE(D,te,he){return writeFloat(this,D,te,!0,he)},Buffer$h.prototype.writeFloatBE=function writeFloatBE(D,te,he){return writeFloat(this,D,te,!1,he)},Buffer$h.prototype.writeDoubleLE=function writeDoubleLE(D,te,he){return writeDouble(this,D,te,!0,he)},Buffer$h.prototype.writeDoubleBE=function writeDoubleBE(D,te,he){return writeDouble(this,D,te,!1,he)},Buffer$h.prototype.copy=function copy(D,te,he,ye){if(he||(he=0),ye||0===ye||(ye=this.length),te>=D.length&&(te=D.length),te||(te=0),ye>0&&ye<he&&(ye=he),ye===he)return 0;if(0===D.length||0===this.length)return 0;if(te<0)throw new RangeError("targetStart out of bounds");if(he<0||he>=this.length)throw new RangeError("sourceStart out of bounds");if(ye<0)throw new RangeError("sourceEnd out of bounds");ye>this.length&&(ye=this.length),D.length-te<ye-he&&(ye=D.length-te+he);var be,ve=ye-he;if(this===D&&he<te&&te<ye)for(be=ve-1;be>=0;--be)D[be+te]=this[be+he];else if(ve<1e3||!Buffer$h.TYPED_ARRAY_SUPPORT)for(be=0;be<ve;++be)D[be+te]=this[be+he];else Uint8Array.prototype.set.call(D,this.subarray(he,he+ve),te);return ve},Buffer$h.prototype.fill=function fill(D,te,he,ye){if("string"==typeof D){if("string"==typeof te?(ye=te,te=0,he=this.length):"string"==typeof he&&(ye=he,he=this.length),1===D.length){var be=D.charCodeAt(0);be<256&&(D=be)}if(void 0!==ye&&"string"!=typeof ye)throw new TypeError("encoding must be a string");if("string"==typeof ye&&!Buffer$h.isEncoding(ye))throw new TypeError("Unknown encoding: "+ye)}else"number"==typeof D&&(D&=255);if(te<0||this.length<te||this.length<he)throw new RangeError("Out of range index");if(he<=te)return this;var ve;if(te>>>=0,he=void 0===he?this.length:he>>>0,D||(D=0),"number"==typeof D)for(ve=te;ve<he;++ve)this[ve]=D;else{var we=internalIsBuffer(D)?D:utf8ToBytes$3(new Buffer$h(D,ye).toString()),_e=we.length;for(ve=0;ve<he-te;++ve)this[ve+te]=we[ve%_e]}return this};var Ii=/[^+\/0-9A-Za-z-_]/g;function toHex$5(D){return D<16?"0"+D.toString(16):D.toString(16)}function utf8ToBytes$3(D,te){var he;te=te||1/0;for(var ye=D.length,be=null,ve=[],we=0;we<ye;++we){if((he=D.charCodeAt(we))>55295&&he<57344){if(!be){if(he>56319){(te-=3)>-1&&ve.push(239,191,189);continue}if(we+1===ye){(te-=3)>-1&&ve.push(239,191,189);continue}be=he;continue}if(he<56320){(te-=3)>-1&&ve.push(239,191,189),be=he;continue}he=65536+(be-55296<<10|he-56320)}else be&&(te-=3)>-1&&ve.push(239,191,189);if(be=null,he<128){if((te-=1)<0)break;ve.push(he)}else if(he<2048){if((te-=2)<0)break;ve.push(he>>6|192,63&he|128)}else if(he<65536){if((te-=3)<0)break;ve.push(he>>12|224,he>>6&63|128,63&he|128)}else{if(!(he<1114112))throw new Error("Invalid code point");if((te-=4)<0)break;ve.push(he>>18|240,he>>12&63|128,he>>6&63|128,63&he|128)}}return ve}function base64ToBytes(D){return function toByteArray(D){var te,he,ye,be,ve,we;Ai||init$2();var _e=D.length;if(_e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");ve="="===D[_e-2]?2:"="===D[_e-1]?1:0,we=new Ti(3*_e/4-ve),ye=ve>0?_e-4:_e;var Pe=0;for(te=0,he=0;te<ye;te+=4,he+=3)be=_i[D.charCodeAt(te)]<<18|_i[D.charCodeAt(te+1)]<<12|_i[D.charCodeAt(te+2)]<<6|_i[D.charCodeAt(te+3)],we[Pe++]=be>>16&255,we[Pe++]=be>>8&255,we[Pe++]=255&be;return 2===ve?(be=_i[D.charCodeAt(te)]<<2|_i[D.charCodeAt(te+1)]>>4,we[Pe++]=255&be):1===ve&&(be=_i[D.charCodeAt(te)]<<10|_i[D.charCodeAt(te+1)]<<4|_i[D.charCodeAt(te+2)]>>2,we[Pe++]=be>>8&255,we[Pe++]=255&be),we}(function base64clean(D){if((D=function stringtrim(D){return D.trim?D.trim():D.replace(/^\s+|\s+$/g,"")}(D).replace(Ii,"")).length<2)return"";for(;D.length%4!=0;)D+="=";return D}(D))}function blitBuffer(D,te,he,ye){for(var be=0;be<ye&&!(be+he>=te.length||be>=D.length);++be)te[be+he]=D[be];return be}function isBuffer$3(D){return null!=D&&(!!D._isBuffer||isFastBuffer(D)||function isSlowBuffer(D){return"function"==typeof D.readFloatLE&&"function"==typeof D.slice&&isFastBuffer(D.slice(0,0))}(D))}function isFastBuffer(D){return!!D.constructor&&"function"==typeof D.constructor.isBuffer&&D.constructor.isBuffer(D)}var Ri=getAugmentedNamespace$1(Object.freeze({__proto__:null,Buffer:Buffer$h,INSPECT_MAX_BYTES:50,SlowBuffer:function SlowBuffer(D){return+D!=D&&(D=0),Buffer$h.alloc(+D)},isBuffer:isBuffer$3,kMaxLength:Si}));!function(D){!function(D,te){function assert(D,te){if(!D)throw new Error(te||"Assertion failed")}function inherits(D,te){D.super_=te;var TempCtor=function(){};TempCtor.prototype=te.prototype,D.prototype=new TempCtor,D.prototype.constructor=D}function BN(D,te,he){if(BN.isBN(D))return D;this.negative=0,this.words=null,this.length=0,this.red=null,null!==D&&("le"!==te&&"be"!==te||(he=te,te=10),this._init(D||0,te||10,he||"be"))}var he;"object"==typeof D?D.exports=BN:te.BN=BN,BN.BN=BN,BN.wordSize=26;try{he="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:Ri.Buffer}catch(D){}function parseHex4Bits(D,te){var he=D.charCodeAt(te);return he>=48&&he<=57?he-48:he>=65&&he<=70?he-55:he>=97&&he<=102?he-87:void assert(!1,"Invalid character in "+D)}function parseHexByte(D,te,he){var ye=parseHex4Bits(D,he);return he-1>=te&&(ye|=parseHex4Bits(D,he-1)<<4),ye}function parseBase(D,te,he,ye){for(var be=0,ve=0,we=Math.min(D.length,he),_e=te;_e<we;_e++){var Pe=D.charCodeAt(_e)-48;be*=ye,ve=Pe>=49?Pe-49+10:Pe>=17?Pe-17+10:Pe,assert(Pe>=0&&ve<ye,"Invalid character"),be+=ve}return be}function move(D,te){D.words=te.words,D.length=te.length,D.negative=te.negative,D.red=te.red}if(BN.isBN=function isBN(D){return D instanceof BN||null!==D&&"object"==typeof D&&D.constructor.wordSize===BN.wordSize&&Array.isArray(D.words)},BN.max=function max(D,te){return D.cmp(te)>0?D:te},BN.min=function min(D,te){return D.cmp(te)<0?D:te},BN.prototype._init=function init(D,te,he){if("number"==typeof D)return this._initNumber(D,te,he);if("object"==typeof D)return this._initArray(D,te,he);"hex"===te&&(te=16),assert(te===(0|te)&&te>=2&&te<=36);var ye=0;"-"===(D=D.toString().replace(/\s+/g,""))[0]&&(ye++,this.negative=1),ye<D.length&&(16===te?this._parseHex(D,ye,he):(this._parseBase(D,te,ye),"le"===he&&this._initArray(this.toArray(),te,he)))},BN.prototype._initNumber=function _initNumber(D,te,he){D<0&&(this.negative=1,D=-D),D<67108864?(this.words=[67108863&D],this.length=1):D<4503599627370496?(this.words=[67108863&D,D/67108864&67108863],this.length=2):(assert(D<9007199254740992),this.words=[67108863&D,D/67108864&67108863,1],this.length=3),"le"===he&&this._initArray(this.toArray(),te,he)},BN.prototype._initArray=function _initArray(D,te,he){if(assert("number"==typeof D.length),D.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(D.length/3),this.words=new Array(this.length);for(var ye=0;ye<this.length;ye++)this.words[ye]=0;var be,ve,we=0;if("be"===he)for(ye=D.length-1,be=0;ye>=0;ye-=3)ve=D[ye]|D[ye-1]<<8|D[ye-2]<<16,this.words[be]|=ve<<we&67108863,this.words[be+1]=ve>>>26-we&67108863,(we+=24)>=26&&(we-=26,be++);else if("le"===he)for(ye=0,be=0;ye<D.length;ye+=3)ve=D[ye]|D[ye+1]<<8|D[ye+2]<<16,this.words[be]|=ve<<we&67108863,this.words[be+1]=ve>>>26-we&67108863,(we+=24)>=26&&(we-=26,be++);return this._strip()},BN.prototype._parseHex=function _parseHex(D,te,he){this.length=Math.ceil((D.length-te)/6),this.words=new Array(this.length);for(var ye=0;ye<this.length;ye++)this.words[ye]=0;var be,ve=0,we=0;if("be"===he)for(ye=D.length-1;ye>=te;ye-=2)be=parseHexByte(D,te,ye)<<ve,this.words[we]|=67108863&be,ve>=18?(ve-=18,we+=1,this.words[we]|=be>>>26):ve+=8;else for(ye=(D.length-te)%2==0?te+1:te;ye<D.length;ye+=2)be=parseHexByte(D,te,ye)<<ve,this.words[we]|=67108863&be,ve>=18?(ve-=18,we+=1,this.words[we]|=be>>>26):ve+=8;this._strip()},BN.prototype._parseBase=function _parseBase(D,te,he){this.words=[0],this.length=1;for(var ye=0,be=1;be<=67108863;be*=te)ye++;ye--,be=be/te|0;for(var ve=D.length-he,we=ve%ye,_e=Math.min(ve,ve-we)+he,Pe=0,Ie=he;Ie<_e;Ie+=ye)Pe=parseBase(D,Ie,Ie+ye,te),this.imuln(be),this.words[0]+Pe<67108864?this.words[0]+=Pe:this._iaddn(Pe);if(0!==we){var Re=1;for(Pe=parseBase(D,Ie,D.length,te),Ie=0;Ie<we;Ie++)Re*=te;this.imuln(Re),this.words[0]+Pe<67108864?this.words[0]+=Pe:this._iaddn(Pe)}this._strip()},BN.prototype.copy=function copy(D){D.words=new Array(this.length);for(var te=0;te<this.length;te++)D.words[te]=this.words[te];D.length=this.length,D.negative=this.negative,D.red=this.red},BN.prototype._move=function _move(D){move(D,this)},BN.prototype.clone=function clone(){var D=new BN(null);return this.copy(D),D},BN.prototype._expand=function _expand(D){for(;this.length<D;)this.words[this.length++]=0;return this},BN.prototype._strip=function strip(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function _normSign(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{BN.prototype[Symbol.for("nodejs.util.inspect.custom")]=inspect}catch(D){BN.prototype.inspect=inspect}else BN.prototype.inspect=inspect;function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var ye=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],be=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],ve=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(D,te){var he;if(te=0|te||1,16===(D=D||10)||"hex"===D){he="";for(var we=0,_e=0,Pe=0;Pe<this.length;Pe++){var Ie=this.words[Pe],Re=(16777215&(Ie<<we|_e)).toString(16);_e=Ie>>>24-we&16777215,(we+=2)>=26&&(we-=26,Pe--),he=0!==_e||Pe!==this.length-1?ye[6-Re.length]+Re+he:Re+he}for(0!==_e&&(he=_e.toString(16)+he);he.length%te!=0;)he="0"+he;return 0!==this.negative&&(he="-"+he),he}if(D===(0|D)&&D>=2&&D<=36){var ke=be[D],Oe=ve[D];he="";var xe=this.clone();for(xe.negative=0;!xe.isZero();){var Be=xe.modrn(Oe).toString(D);he=(xe=xe.idivn(Oe)).isZero()?Be+he:ye[ke-Be.length]+Be+he}for(this.isZero()&&(he="0"+he);he.length%te!=0;)he="0"+he;return 0!==this.negative&&(he="-"+he),he}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function toNumber(){var D=this.words[0];return 2===this.length?D+=67108864*this.words[1]:3===this.length&&1===this.words[2]?D+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-D:D},BN.prototype.toJSON=function toJSON(){return this.toString(16,2)},he&&(BN.prototype.toBuffer=function toBuffer(D,te){return this.toArrayLike(he,D,te)}),BN.prototype.toArray=function toArray(D,te){return this.toArrayLike(Array,D,te)};function smallMulTo(D,te,he){he.negative=te.negative^D.negative;var ye=D.length+te.length|0;he.length=ye,ye=ye-1|0;var be=0|D.words[0],ve=0|te.words[0],we=be*ve,_e=67108863&we,Pe=we/67108864|0;he.words[0]=_e;for(var Ie=1;Ie<ye;Ie++){for(var Re=Pe>>>26,ke=67108863&Pe,Oe=Math.min(Ie,te.length-1),xe=Math.max(0,Ie-D.length+1);xe<=Oe;xe++){var Be=Ie-xe|0;Re+=(we=(be=0|D.words[Be])*(ve=0|te.words[xe])+ke)/67108864|0,ke=67108863&we}he.words[Ie]=0|ke,Pe=0|Re}return 0!==Pe?he.words[Ie]=0|Pe:he.length--,he._strip()}BN.prototype.toArrayLike=function toArrayLike(D,te,he){this._strip();var ye=this.byteLength(),be=he||Math.max(1,ye);assert(ye<=be,"byte array longer than desired length"),assert(be>0,"Requested array length <= 0");var ve=function allocate(D,te){return D.allocUnsafe?D.allocUnsafe(te):new D(te)}(D,be);return this["_toArrayLike"+("le"===te?"LE":"BE")](ve,ye),ve},BN.prototype._toArrayLikeLE=function _toArrayLikeLE(D,te){for(var he=0,ye=0,be=0,ve=0;be<this.length;be++){var we=this.words[be]<<ve|ye;D[he++]=255&we,he<D.length&&(D[he++]=we>>8&255),he<D.length&&(D[he++]=we>>16&255),6===ve?(he<D.length&&(D[he++]=we>>24&255),ye=0,ve=0):(ye=we>>>24,ve+=2)}if(he<D.length)for(D[he++]=ye;he<D.length;)D[he++]=0},BN.prototype._toArrayLikeBE=function _toArrayLikeBE(D,te){for(var he=D.length-1,ye=0,be=0,ve=0;be<this.length;be++){var we=this.words[be]<<ve|ye;D[he--]=255&we,he>=0&&(D[he--]=we>>8&255),he>=0&&(D[he--]=we>>16&255),6===ve?(he>=0&&(D[he--]=we>>24&255),ye=0,ve=0):(ye=we>>>24,ve+=2)}if(he>=0)for(D[he--]=ye;he>=0;)D[he--]=0},Math.clz32?BN.prototype._countBits=function _countBits(D){return 32-Math.clz32(D)}:BN.prototype._countBits=function _countBits(D){var te=D,he=0;return te>=4096&&(he+=13,te>>>=13),te>=64&&(he+=7,te>>>=7),te>=8&&(he+=4,te>>>=4),te>=2&&(he+=2,te>>>=2),he+te},BN.prototype._zeroBits=function _zeroBits(D){if(0===D)return 26;var te=D,he=0;return 0==(8191&te)&&(he+=13,te>>>=13),0==(127&te)&&(he+=7,te>>>=7),0==(15&te)&&(he+=4,te>>>=4),0==(3&te)&&(he+=2,te>>>=2),0==(1&te)&&he++,he},BN.prototype.bitLength=function bitLength(){var D=this.words[this.length-1],te=this._countBits(D);return 26*(this.length-1)+te},BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;for(var D=0,te=0;te<this.length;te++){var he=this._zeroBits(this.words[te]);if(D+=he,26!==he)break}return D},BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)},BN.prototype.toTwos=function toTwos(D){return 0!==this.negative?this.abs().inotn(D).iaddn(1):this.clone()},BN.prototype.fromTwos=function fromTwos(D){return this.testn(D-1)?this.notn(D).iaddn(1).ineg():this.clone()},BN.prototype.isNeg=function isNeg(){return 0!==this.negative},BN.prototype.neg=function neg(){return this.clone().ineg()},BN.prototype.ineg=function ineg(){return this.isZero()||(this.negative^=1),this},BN.prototype.iuor=function iuor(D){for(;this.length<D.length;)this.words[this.length++]=0;for(var te=0;te<D.length;te++)this.words[te]=this.words[te]|D.words[te];return this._strip()},BN.prototype.ior=function ior(D){return assert(0==(this.negative|D.negative)),this.iuor(D)},BN.prototype.or=function or(D){return this.length>D.length?this.clone().ior(D):D.clone().ior(this)},BN.prototype.uor=function uor(D){return this.length>D.length?this.clone().iuor(D):D.clone().iuor(this)},BN.prototype.iuand=function iuand(D){var te;te=this.length>D.length?D:this;for(var he=0;he<te.length;he++)this.words[he]=this.words[he]&D.words[he];return this.length=te.length,this._strip()},BN.prototype.iand=function iand(D){return assert(0==(this.negative|D.negative)),this.iuand(D)},BN.prototype.and=function and(D){return this.length>D.length?this.clone().iand(D):D.clone().iand(this)},BN.prototype.uand=function uand(D){return this.length>D.length?this.clone().iuand(D):D.clone().iuand(this)},BN.prototype.iuxor=function iuxor(D){var te,he;this.length>D.length?(te=this,he=D):(te=D,he=this);for(var ye=0;ye<he.length;ye++)this.words[ye]=te.words[ye]^he.words[ye];if(this!==te)for(;ye<te.length;ye++)this.words[ye]=te.words[ye];return this.length=te.length,this._strip()},BN.prototype.ixor=function ixor(D){return assert(0==(this.negative|D.negative)),this.iuxor(D)},BN.prototype.xor=function xor(D){return this.length>D.length?this.clone().ixor(D):D.clone().ixor(this)},BN.prototype.uxor=function uxor(D){return this.length>D.length?this.clone().iuxor(D):D.clone().iuxor(this)},BN.prototype.inotn=function inotn(D){assert("number"==typeof D&&D>=0);var te=0|Math.ceil(D/26),he=D%26;this._expand(te),he>0&&te--;for(var ye=0;ye<te;ye++)this.words[ye]=67108863&~this.words[ye];return he>0&&(this.words[ye]=~this.words[ye]&67108863>>26-he),this._strip()},BN.prototype.notn=function notn(D){return this.clone().inotn(D)},BN.prototype.setn=function setn(D,te){assert("number"==typeof D&&D>=0);var he=D/26|0,ye=D%26;return this._expand(he+1),this.words[he]=te?this.words[he]|1<<ye:this.words[he]&~(1<<ye),this._strip()},BN.prototype.iadd=function iadd(D){var te,he,ye;if(0!==this.negative&&0===D.negative)return this.negative=0,te=this.isub(D),this.negative^=1,this._normSign();if(0===this.negative&&0!==D.negative)return D.negative=0,te=this.isub(D),D.negative=1,te._normSign();this.length>D.length?(he=this,ye=D):(he=D,ye=this);for(var be=0,ve=0;ve<ye.length;ve++)te=(0|he.words[ve])+(0|ye.words[ve])+be,this.words[ve]=67108863&te,be=te>>>26;for(;0!==be&&ve<he.length;ve++)te=(0|he.words[ve])+be,this.words[ve]=67108863&te,be=te>>>26;if(this.length=he.length,0!==be)this.words[this.length]=be,this.length++;else if(he!==this)for(;ve<he.length;ve++)this.words[ve]=he.words[ve];return this},BN.prototype.add=function add(D){var te;return 0!==D.negative&&0===this.negative?(D.negative=0,te=this.sub(D),D.negative^=1,te):0===D.negative&&0!==this.negative?(this.negative=0,te=D.sub(this),this.negative=1,te):this.length>D.length?this.clone().iadd(D):D.clone().iadd(this)},BN.prototype.isub=function isub(D){if(0!==D.negative){D.negative=0;var te=this.iadd(D);return D.negative=1,te._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(D),this.negative=1,this._normSign();var he,ye,be=this.cmp(D);if(0===be)return this.negative=0,this.length=1,this.words[0]=0,this;be>0?(he=this,ye=D):(he=D,ye=this);for(var ve=0,we=0;we<ye.length;we++)ve=(te=(0|he.words[we])-(0|ye.words[we])+ve)>>26,this.words[we]=67108863&te;for(;0!==ve&&we<he.length;we++)ve=(te=(0|he.words[we])+ve)>>26,this.words[we]=67108863&te;if(0===ve&&we<he.length&&he!==this)for(;we<he.length;we++)this.words[we]=he.words[we];return this.length=Math.max(this.length,we),he!==this&&(this.negative=1),this._strip()},BN.prototype.sub=function sub(D){return this.clone().isub(D)};var we=function comb10MulTo(D,te,he){var ye,be,ve,we=D.words,_e=te.words,Pe=he.words,Ie=0,Re=0|we[0],ke=8191&Re,Oe=Re>>>13,xe=0|we[1],Be=8191&xe,Fe=xe>>>13,De=0|we[2],Le=8191&De,Ue=De>>>13,qe=0|we[3],je=8191&qe,Je=qe>>>13,et=0|we[4],tt=8191&et,rt=et>>>13,nt=0|we[5],at=8191&nt,ut=nt>>>13,ht=0|we[6],yt=8191&ht,mt=ht>>>13,bt=0|we[7],wt=8191&bt,_t=bt>>>13,Tt=0|we[8],At=8191&Tt,Et=Tt>>>13,Pt=0|we[9],St=8191&Pt,Ct=Pt>>>13,kt=0|_e[0],Ot=8191&kt,xt=kt>>>13,Nt=0|_e[1],Bt=8191&Nt,Ft=Nt>>>13,Lt=0|_e[2],Ut=8191&Lt,$t=Lt>>>13,qt=0|_e[3],Gt=8191&qt,zt=qt>>>13,Wt=0|_e[4],Vt=8191&Wt,Kt=Wt>>>13,Jt=0|_e[5],Zt=8191&Jt,rr=Jt>>>13,cr=0|_e[6],dr=8191&cr,kr=cr>>>13,$r=0|_e[7],qr=8191&$r,jr=$r>>>13,Hr=0|_e[8],zr=8191&Hr,Vr=Hr>>>13,Jr=0|_e[9],Xr=8191&Jr,Qr=Jr>>>13;he.negative=D.negative^te.negative,he.length=19;var Zr=(Ie+(ye=Math.imul(ke,Ot))|0)+((8191&(be=(be=Math.imul(ke,xt))+Math.imul(Oe,Ot)|0))<<13)|0;Ie=((ve=Math.imul(Oe,xt))+(be>>>13)|0)+(Zr>>>26)|0,Zr&=67108863,ye=Math.imul(Be,Ot),be=(be=Math.imul(Be,xt))+Math.imul(Fe,Ot)|0,ve=Math.imul(Fe,xt);var en=(Ie+(ye=ye+Math.imul(ke,Bt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Ft)|0)+Math.imul(Oe,Bt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Ft)|0)+(be>>>13)|0)+(en>>>26)|0,en&=67108863,ye=Math.imul(Le,Ot),be=(be=Math.imul(Le,xt))+Math.imul(Ue,Ot)|0,ve=Math.imul(Ue,xt),ye=ye+Math.imul(Be,Bt)|0,be=(be=be+Math.imul(Be,Ft)|0)+Math.imul(Fe,Bt)|0,ve=ve+Math.imul(Fe,Ft)|0;var rn=(Ie+(ye=ye+Math.imul(ke,Ut)|0)|0)+((8191&(be=(be=be+Math.imul(ke,$t)|0)+Math.imul(Oe,Ut)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,$t)|0)+(be>>>13)|0)+(rn>>>26)|0,rn&=67108863,ye=Math.imul(je,Ot),be=(be=Math.imul(je,xt))+Math.imul(Je,Ot)|0,ve=Math.imul(Je,xt),ye=ye+Math.imul(Le,Bt)|0,be=(be=be+Math.imul(Le,Ft)|0)+Math.imul(Ue,Bt)|0,ve=ve+Math.imul(Ue,Ft)|0,ye=ye+Math.imul(Be,Ut)|0,be=(be=be+Math.imul(Be,$t)|0)+Math.imul(Fe,Ut)|0,ve=ve+Math.imul(Fe,$t)|0;var nn=(Ie+(ye=ye+Math.imul(ke,Gt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,zt)|0)+Math.imul(Oe,Gt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,zt)|0)+(be>>>13)|0)+(nn>>>26)|0,nn&=67108863,ye=Math.imul(tt,Ot),be=(be=Math.imul(tt,xt))+Math.imul(rt,Ot)|0,ve=Math.imul(rt,xt),ye=ye+Math.imul(je,Bt)|0,be=(be=be+Math.imul(je,Ft)|0)+Math.imul(Je,Bt)|0,ve=ve+Math.imul(Je,Ft)|0,ye=ye+Math.imul(Le,Ut)|0,be=(be=be+Math.imul(Le,$t)|0)+Math.imul(Ue,Ut)|0,ve=ve+Math.imul(Ue,$t)|0,ye=ye+Math.imul(Be,Gt)|0,be=(be=be+Math.imul(Be,zt)|0)+Math.imul(Fe,Gt)|0,ve=ve+Math.imul(Fe,zt)|0;var sn=(Ie+(ye=ye+Math.imul(ke,Vt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Kt)|0)+Math.imul(Oe,Vt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Kt)|0)+(be>>>13)|0)+(sn>>>26)|0,sn&=67108863,ye=Math.imul(at,Ot),be=(be=Math.imul(at,xt))+Math.imul(ut,Ot)|0,ve=Math.imul(ut,xt),ye=ye+Math.imul(tt,Bt)|0,be=(be=be+Math.imul(tt,Ft)|0)+Math.imul(rt,Bt)|0,ve=ve+Math.imul(rt,Ft)|0,ye=ye+Math.imul(je,Ut)|0,be=(be=be+Math.imul(je,$t)|0)+Math.imul(Je,Ut)|0,ve=ve+Math.imul(Je,$t)|0,ye=ye+Math.imul(Le,Gt)|0,be=(be=be+Math.imul(Le,zt)|0)+Math.imul(Ue,Gt)|0,ve=ve+Math.imul(Ue,zt)|0,ye=ye+Math.imul(Be,Vt)|0,be=(be=be+Math.imul(Be,Kt)|0)+Math.imul(Fe,Vt)|0,ve=ve+Math.imul(Fe,Kt)|0;var on=(Ie+(ye=ye+Math.imul(ke,Zt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,rr)|0)+Math.imul(Oe,Zt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,rr)|0)+(be>>>13)|0)+(on>>>26)|0,on&=67108863,ye=Math.imul(yt,Ot),be=(be=Math.imul(yt,xt))+Math.imul(mt,Ot)|0,ve=Math.imul(mt,xt),ye=ye+Math.imul(at,Bt)|0,be=(be=be+Math.imul(at,Ft)|0)+Math.imul(ut,Bt)|0,ve=ve+Math.imul(ut,Ft)|0,ye=ye+Math.imul(tt,Ut)|0,be=(be=be+Math.imul(tt,$t)|0)+Math.imul(rt,Ut)|0,ve=ve+Math.imul(rt,$t)|0,ye=ye+Math.imul(je,Gt)|0,be=(be=be+Math.imul(je,zt)|0)+Math.imul(Je,Gt)|0,ve=ve+Math.imul(Je,zt)|0,ye=ye+Math.imul(Le,Vt)|0,be=(be=be+Math.imul(Le,Kt)|0)+Math.imul(Ue,Vt)|0,ve=ve+Math.imul(Ue,Kt)|0,ye=ye+Math.imul(Be,Zt)|0,be=(be=be+Math.imul(Be,rr)|0)+Math.imul(Fe,Zt)|0,ve=ve+Math.imul(Fe,rr)|0;var yn=(Ie+(ye=ye+Math.imul(ke,dr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,kr)|0)+Math.imul(Oe,dr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,kr)|0)+(be>>>13)|0)+(yn>>>26)|0,yn&=67108863,ye=Math.imul(wt,Ot),be=(be=Math.imul(wt,xt))+Math.imul(_t,Ot)|0,ve=Math.imul(_t,xt),ye=ye+Math.imul(yt,Bt)|0,be=(be=be+Math.imul(yt,Ft)|0)+Math.imul(mt,Bt)|0,ve=ve+Math.imul(mt,Ft)|0,ye=ye+Math.imul(at,Ut)|0,be=(be=be+Math.imul(at,$t)|0)+Math.imul(ut,Ut)|0,ve=ve+Math.imul(ut,$t)|0,ye=ye+Math.imul(tt,Gt)|0,be=(be=be+Math.imul(tt,zt)|0)+Math.imul(rt,Gt)|0,ve=ve+Math.imul(rt,zt)|0,ye=ye+Math.imul(je,Vt)|0,be=(be=be+Math.imul(je,Kt)|0)+Math.imul(Je,Vt)|0,ve=ve+Math.imul(Je,Kt)|0,ye=ye+Math.imul(Le,Zt)|0,be=(be=be+Math.imul(Le,rr)|0)+Math.imul(Ue,Zt)|0,ve=ve+Math.imul(Ue,rr)|0,ye=ye+Math.imul(Be,dr)|0,be=(be=be+Math.imul(Be,kr)|0)+Math.imul(Fe,dr)|0,ve=ve+Math.imul(Fe,kr)|0;var bn=(Ie+(ye=ye+Math.imul(ke,qr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,jr)|0)+Math.imul(Oe,qr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,jr)|0)+(be>>>13)|0)+(bn>>>26)|0,bn&=67108863,ye=Math.imul(At,Ot),be=(be=Math.imul(At,xt))+Math.imul(Et,Ot)|0,ve=Math.imul(Et,xt),ye=ye+Math.imul(wt,Bt)|0,be=(be=be+Math.imul(wt,Ft)|0)+Math.imul(_t,Bt)|0,ve=ve+Math.imul(_t,Ft)|0,ye=ye+Math.imul(yt,Ut)|0,be=(be=be+Math.imul(yt,$t)|0)+Math.imul(mt,Ut)|0,ve=ve+Math.imul(mt,$t)|0,ye=ye+Math.imul(at,Gt)|0,be=(be=be+Math.imul(at,zt)|0)+Math.imul(ut,Gt)|0,ve=ve+Math.imul(ut,zt)|0,ye=ye+Math.imul(tt,Vt)|0,be=(be=be+Math.imul(tt,Kt)|0)+Math.imul(rt,Vt)|0,ve=ve+Math.imul(rt,Kt)|0,ye=ye+Math.imul(je,Zt)|0,be=(be=be+Math.imul(je,rr)|0)+Math.imul(Je,Zt)|0,ve=ve+Math.imul(Je,rr)|0,ye=ye+Math.imul(Le,dr)|0,be=(be=be+Math.imul(Le,kr)|0)+Math.imul(Ue,dr)|0,ve=ve+Math.imul(Ue,kr)|0,ye=ye+Math.imul(Be,qr)|0,be=(be=be+Math.imul(Be,jr)|0)+Math.imul(Fe,qr)|0,ve=ve+Math.imul(Fe,jr)|0;var wn=(Ie+(ye=ye+Math.imul(ke,zr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Vr)|0)+Math.imul(Oe,zr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Vr)|0)+(be>>>13)|0)+(wn>>>26)|0,wn&=67108863,ye=Math.imul(St,Ot),be=(be=Math.imul(St,xt))+Math.imul(Ct,Ot)|0,ve=Math.imul(Ct,xt),ye=ye+Math.imul(At,Bt)|0,be=(be=be+Math.imul(At,Ft)|0)+Math.imul(Et,Bt)|0,ve=ve+Math.imul(Et,Ft)|0,ye=ye+Math.imul(wt,Ut)|0,be=(be=be+Math.imul(wt,$t)|0)+Math.imul(_t,Ut)|0,ve=ve+Math.imul(_t,$t)|0,ye=ye+Math.imul(yt,Gt)|0,be=(be=be+Math.imul(yt,zt)|0)+Math.imul(mt,Gt)|0,ve=ve+Math.imul(mt,zt)|0,ye=ye+Math.imul(at,Vt)|0,be=(be=be+Math.imul(at,Kt)|0)+Math.imul(ut,Vt)|0,ve=ve+Math.imul(ut,Kt)|0,ye=ye+Math.imul(tt,Zt)|0,be=(be=be+Math.imul(tt,rr)|0)+Math.imul(rt,Zt)|0,ve=ve+Math.imul(rt,rr)|0,ye=ye+Math.imul(je,dr)|0,be=(be=be+Math.imul(je,kr)|0)+Math.imul(Je,dr)|0,ve=ve+Math.imul(Je,kr)|0,ye=ye+Math.imul(Le,qr)|0,be=(be=be+Math.imul(Le,jr)|0)+Math.imul(Ue,qr)|0,ve=ve+Math.imul(Ue,jr)|0,ye=ye+Math.imul(Be,zr)|0,be=(be=be+Math.imul(Be,Vr)|0)+Math.imul(Fe,zr)|0,ve=ve+Math.imul(Fe,Vr)|0;var _n=(Ie+(ye=ye+Math.imul(ke,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Qr)|0)+Math.imul(Oe,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Qr)|0)+(be>>>13)|0)+(_n>>>26)|0,_n&=67108863,ye=Math.imul(St,Bt),be=(be=Math.imul(St,Ft))+Math.imul(Ct,Bt)|0,ve=Math.imul(Ct,Ft),ye=ye+Math.imul(At,Ut)|0,be=(be=be+Math.imul(At,$t)|0)+Math.imul(Et,Ut)|0,ve=ve+Math.imul(Et,$t)|0,ye=ye+Math.imul(wt,Gt)|0,be=(be=be+Math.imul(wt,zt)|0)+Math.imul(_t,Gt)|0,ve=ve+Math.imul(_t,zt)|0,ye=ye+Math.imul(yt,Vt)|0,be=(be=be+Math.imul(yt,Kt)|0)+Math.imul(mt,Vt)|0,ve=ve+Math.imul(mt,Kt)|0,ye=ye+Math.imul(at,Zt)|0,be=(be=be+Math.imul(at,rr)|0)+Math.imul(ut,Zt)|0,ve=ve+Math.imul(ut,rr)|0,ye=ye+Math.imul(tt,dr)|0,be=(be=be+Math.imul(tt,kr)|0)+Math.imul(rt,dr)|0,ve=ve+Math.imul(rt,kr)|0,ye=ye+Math.imul(je,qr)|0,be=(be=be+Math.imul(je,jr)|0)+Math.imul(Je,qr)|0,ve=ve+Math.imul(Je,jr)|0,ye=ye+Math.imul(Le,zr)|0,be=(be=be+Math.imul(Le,Vr)|0)+Math.imul(Ue,zr)|0,ve=ve+Math.imul(Ue,Vr)|0;var Cn=(Ie+(ye=ye+Math.imul(Be,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(Be,Qr)|0)+Math.imul(Fe,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Fe,Qr)|0)+(be>>>13)|0)+(Cn>>>26)|0,Cn&=67108863,ye=Math.imul(St,Ut),be=(be=Math.imul(St,$t))+Math.imul(Ct,Ut)|0,ve=Math.imul(Ct,$t),ye=ye+Math.imul(At,Gt)|0,be=(be=be+Math.imul(At,zt)|0)+Math.imul(Et,Gt)|0,ve=ve+Math.imul(Et,zt)|0,ye=ye+Math.imul(wt,Vt)|0,be=(be=be+Math.imul(wt,Kt)|0)+Math.imul(_t,Vt)|0,ve=ve+Math.imul(_t,Kt)|0,ye=ye+Math.imul(yt,Zt)|0,be=(be=be+Math.imul(yt,rr)|0)+Math.imul(mt,Zt)|0,ve=ve+Math.imul(mt,rr)|0,ye=ye+Math.imul(at,dr)|0,be=(be=be+Math.imul(at,kr)|0)+Math.imul(ut,dr)|0,ve=ve+Math.imul(ut,kr)|0,ye=ye+Math.imul(tt,qr)|0,be=(be=be+Math.imul(tt,jr)|0)+Math.imul(rt,qr)|0,ve=ve+Math.imul(rt,jr)|0,ye=ye+Math.imul(je,zr)|0,be=(be=be+Math.imul(je,Vr)|0)+Math.imul(Je,zr)|0,ve=ve+Math.imul(Je,Vr)|0;var Rn=(Ie+(ye=ye+Math.imul(Le,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(Le,Qr)|0)+Math.imul(Ue,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Ue,Qr)|0)+(be>>>13)|0)+(Rn>>>26)|0,Rn&=67108863,ye=Math.imul(St,Gt),be=(be=Math.imul(St,zt))+Math.imul(Ct,Gt)|0,ve=Math.imul(Ct,zt),ye=ye+Math.imul(At,Vt)|0,be=(be=be+Math.imul(At,Kt)|0)+Math.imul(Et,Vt)|0,ve=ve+Math.imul(Et,Kt)|0,ye=ye+Math.imul(wt,Zt)|0,be=(be=be+Math.imul(wt,rr)|0)+Math.imul(_t,Zt)|0,ve=ve+Math.imul(_t,rr)|0,ye=ye+Math.imul(yt,dr)|0,be=(be=be+Math.imul(yt,kr)|0)+Math.imul(mt,dr)|0,ve=ve+Math.imul(mt,kr)|0,ye=ye+Math.imul(at,qr)|0,be=(be=be+Math.imul(at,jr)|0)+Math.imul(ut,qr)|0,ve=ve+Math.imul(ut,jr)|0,ye=ye+Math.imul(tt,zr)|0,be=(be=be+Math.imul(tt,Vr)|0)+Math.imul(rt,zr)|0,ve=ve+Math.imul(rt,Vr)|0;var kn=(Ie+(ye=ye+Math.imul(je,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(je,Qr)|0)+Math.imul(Je,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Je,Qr)|0)+(be>>>13)|0)+(kn>>>26)|0,kn&=67108863,ye=Math.imul(St,Vt),be=(be=Math.imul(St,Kt))+Math.imul(Ct,Vt)|0,ve=Math.imul(Ct,Kt),ye=ye+Math.imul(At,Zt)|0,be=(be=be+Math.imul(At,rr)|0)+Math.imul(Et,Zt)|0,ve=ve+Math.imul(Et,rr)|0,ye=ye+Math.imul(wt,dr)|0,be=(be=be+Math.imul(wt,kr)|0)+Math.imul(_t,dr)|0,ve=ve+Math.imul(_t,kr)|0,ye=ye+Math.imul(yt,qr)|0,be=(be=be+Math.imul(yt,jr)|0)+Math.imul(mt,qr)|0,ve=ve+Math.imul(mt,jr)|0,ye=ye+Math.imul(at,zr)|0,be=(be=be+Math.imul(at,Vr)|0)+Math.imul(ut,zr)|0,ve=ve+Math.imul(ut,Vr)|0;var Mn=(Ie+(ye=ye+Math.imul(tt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(tt,Qr)|0)+Math.imul(rt,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(rt,Qr)|0)+(be>>>13)|0)+(Mn>>>26)|0,Mn&=67108863,ye=Math.imul(St,Zt),be=(be=Math.imul(St,rr))+Math.imul(Ct,Zt)|0,ve=Math.imul(Ct,rr),ye=ye+Math.imul(At,dr)|0,be=(be=be+Math.imul(At,kr)|0)+Math.imul(Et,dr)|0,ve=ve+Math.imul(Et,kr)|0,ye=ye+Math.imul(wt,qr)|0,be=(be=be+Math.imul(wt,jr)|0)+Math.imul(_t,qr)|0,ve=ve+Math.imul(_t,jr)|0,ye=ye+Math.imul(yt,zr)|0,be=(be=be+Math.imul(yt,Vr)|0)+Math.imul(mt,zr)|0,ve=ve+Math.imul(mt,Vr)|0;var Fn=(Ie+(ye=ye+Math.imul(at,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(at,Qr)|0)+Math.imul(ut,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(ut,Qr)|0)+(be>>>13)|0)+(Fn>>>26)|0,Fn&=67108863,ye=Math.imul(St,dr),be=(be=Math.imul(St,kr))+Math.imul(Ct,dr)|0,ve=Math.imul(Ct,kr),ye=ye+Math.imul(At,qr)|0,be=(be=be+Math.imul(At,jr)|0)+Math.imul(Et,qr)|0,ve=ve+Math.imul(Et,jr)|0,ye=ye+Math.imul(wt,zr)|0,be=(be=be+Math.imul(wt,Vr)|0)+Math.imul(_t,zr)|0,ve=ve+Math.imul(_t,Vr)|0;var Dn=(Ie+(ye=ye+Math.imul(yt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(yt,Qr)|0)+Math.imul(mt,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(mt,Qr)|0)+(be>>>13)|0)+(Dn>>>26)|0,Dn&=67108863,ye=Math.imul(St,qr),be=(be=Math.imul(St,jr))+Math.imul(Ct,qr)|0,ve=Math.imul(Ct,jr),ye=ye+Math.imul(At,zr)|0,be=(be=be+Math.imul(At,Vr)|0)+Math.imul(Et,zr)|0,ve=ve+Math.imul(Et,Vr)|0;var Ln=(Ie+(ye=ye+Math.imul(wt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(wt,Qr)|0)+Math.imul(_t,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(_t,Qr)|0)+(be>>>13)|0)+(Ln>>>26)|0,Ln&=67108863,ye=Math.imul(St,zr),be=(be=Math.imul(St,Vr))+Math.imul(Ct,zr)|0,ve=Math.imul(Ct,Vr);var Un=(Ie+(ye=ye+Math.imul(At,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(At,Qr)|0)+Math.imul(Et,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Et,Qr)|0)+(be>>>13)|0)+(Un>>>26)|0,Un&=67108863;var $n=(Ie+(ye=Math.imul(St,Xr))|0)+((8191&(be=(be=Math.imul(St,Qr))+Math.imul(Ct,Xr)|0))<<13)|0;return Ie=((ve=Math.imul(Ct,Qr))+(be>>>13)|0)+($n>>>26)|0,$n&=67108863,Pe[0]=Zr,Pe[1]=en,Pe[2]=rn,Pe[3]=nn,Pe[4]=sn,Pe[5]=on,Pe[6]=yn,Pe[7]=bn,Pe[8]=wn,Pe[9]=_n,Pe[10]=Cn,Pe[11]=Rn,Pe[12]=kn,Pe[13]=Mn,Pe[14]=Fn,Pe[15]=Dn,Pe[16]=Ln,Pe[17]=Un,Pe[18]=$n,0!==Ie&&(Pe[19]=Ie,he.length++),he};function bigMulTo(D,te,he){he.negative=te.negative^D.negative,he.length=D.length+te.length;for(var ye=0,be=0,ve=0;ve<he.length-1;ve++){var we=be;be=0;for(var _e=67108863&ye,Pe=Math.min(ve,te.length-1),Ie=Math.max(0,ve-D.length+1);Ie<=Pe;Ie++){var Re=ve-Ie,ke=(0|D.words[Re])*(0|te.words[Ie]),Oe=67108863&ke;_e=67108863&(Oe=Oe+_e|0),be+=(we=(we=we+(ke/67108864|0)|0)+(Oe>>>26)|0)>>>26,we&=67108863}he.words[ve]=_e,ye=we,we=be}return 0!==ye?he.words[ve]=ye:he.length--,he._strip()}function jumboMulTo(D,te,he){return bigMulTo(D,te,he)}Math.imul||(we=smallMulTo),BN.prototype.mulTo=function mulTo(D,te){var he=this.length+D.length;return 10===this.length&&10===D.length?we(this,D,te):he<63?smallMulTo(this,D,te):he<1024?bigMulTo(this,D,te):jumboMulTo(this,D,te)},BN.prototype.mul=function mul(D){var te=new BN(null);return te.words=new Array(this.length+D.length),this.mulTo(D,te)},BN.prototype.mulf=function mulf(D){var te=new BN(null);return te.words=new Array(this.length+D.length),jumboMulTo(this,D,te)},BN.prototype.imul=function imul(D){return this.clone().mulTo(D,this)},BN.prototype.imuln=function imuln(D){var te=D<0;te&&(D=-D),assert("number"==typeof D),assert(D<67108864);for(var he=0,ye=0;ye<this.length;ye++){var be=(0|this.words[ye])*D,ve=(67108863&be)+(67108863&he);he>>=26,he+=be/67108864|0,he+=ve>>>26,this.words[ye]=67108863&ve}return 0!==he&&(this.words[ye]=he,this.length++),te?this.ineg():this},BN.prototype.muln=function muln(D){return this.clone().imuln(D)},BN.prototype.sqr=function sqr(){return this.mul(this)},BN.prototype.isqr=function isqr(){return this.imul(this.clone())},BN.prototype.pow=function pow(D){var te=function toBitArray(D){for(var te=new Array(D.bitLength()),he=0;he<te.length;he++){var ye=he/26|0,be=he%26;te[he]=D.words[ye]>>>be&1}return te}(D);if(0===te.length)return new BN(1);for(var he=this,ye=0;ye<te.length&&0===te[ye];ye++,he=he.sqr());if(++ye<te.length)for(var be=he.sqr();ye<te.length;ye++,be=be.sqr())0!==te[ye]&&(he=he.mul(be));return he},BN.prototype.iushln=function iushln(D){assert("number"==typeof D&&D>=0);var te,he=D%26,ye=(D-he)/26,be=67108863>>>26-he<<26-he;if(0!==he){var ve=0;for(te=0;te<this.length;te++){var we=this.words[te]&be,_e=(0|this.words[te])-we<<he;this.words[te]=_e|ve,ve=we>>>26-he}ve&&(this.words[te]=ve,this.length++)}if(0!==ye){for(te=this.length-1;te>=0;te--)this.words[te+ye]=this.words[te];for(te=0;te<ye;te++)this.words[te]=0;this.length+=ye}return this._strip()},BN.prototype.ishln=function ishln(D){return assert(0===this.negative),this.iushln(D)},BN.prototype.iushrn=function iushrn(D,te,he){var ye;assert("number"==typeof D&&D>=0),ye=te?(te-te%26)/26:0;var be=D%26,ve=Math.min((D-be)/26,this.length),we=67108863^67108863>>>be<<be,_e=he;if(ye-=ve,ye=Math.max(0,ye),_e){for(var Pe=0;Pe<ve;Pe++)_e.words[Pe]=this.words[Pe];_e.length=ve}if(0===ve);else if(this.length>ve)for(this.length-=ve,Pe=0;Pe<this.length;Pe++)this.words[Pe]=this.words[Pe+ve];else this.words[0]=0,this.length=1;var Ie=0;for(Pe=this.length-1;Pe>=0&&(0!==Ie||Pe>=ye);Pe--){var Re=0|this.words[Pe];this.words[Pe]=Ie<<26-be|Re>>>be,Ie=Re&we}return _e&&0!==Ie&&(_e.words[_e.length++]=Ie),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},BN.prototype.ishrn=function ishrn(D,te,he){return assert(0===this.negative),this.iushrn(D,te,he)},BN.prototype.shln=function shln(D){return this.clone().ishln(D)},BN.prototype.ushln=function ushln(D){return this.clone().iushln(D)},BN.prototype.shrn=function shrn(D){return this.clone().ishrn(D)},BN.prototype.ushrn=function ushrn(D){return this.clone().iushrn(D)},BN.prototype.testn=function testn(D){assert("number"==typeof D&&D>=0);var te=D%26,he=(D-te)/26,ye=1<<te;return!(this.length<=he)&&!!(this.words[he]&ye)},BN.prototype.imaskn=function imaskn(D){assert("number"==typeof D&&D>=0);var te=D%26,he=(D-te)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=he)return this;if(0!==te&&he++,this.length=Math.min(he,this.length),0!==te){var ye=67108863^67108863>>>te<<te;this.words[this.length-1]&=ye}return this._strip()},BN.prototype.maskn=function maskn(D){return this.clone().imaskn(D)},BN.prototype.iaddn=function iaddn(D){return assert("number"==typeof D),assert(D<67108864),D<0?this.isubn(-D):0!==this.negative?1===this.length&&(0|this.words[0])<=D?(this.words[0]=D-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(D),this.negative=1,this):this._iaddn(D)},BN.prototype._iaddn=function _iaddn(D){this.words[0]+=D;for(var te=0;te<this.length&&this.words[te]>=67108864;te++)this.words[te]-=67108864,te===this.length-1?this.words[te+1]=1:this.words[te+1]++;return this.length=Math.max(this.length,te+1),this},BN.prototype.isubn=function isubn(D){if(assert("number"==typeof D),assert(D<67108864),D<0)return this.iaddn(-D);if(0!==this.negative)return this.negative=0,this.iaddn(D),this.negative=1,this;if(this.words[0]-=D,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var te=0;te<this.length&&this.words[te]<0;te++)this.words[te]+=67108864,this.words[te+1]-=1;return this._strip()},BN.prototype.addn=function addn(D){return this.clone().iaddn(D)},BN.prototype.subn=function subn(D){return this.clone().isubn(D)},BN.prototype.iabs=function iabs(){return this.negative=0,this},BN.prototype.abs=function abs(){return this.clone().iabs()},BN.prototype._ishlnsubmul=function _ishlnsubmul(D,te,he){var ye,be,ve=D.length+he;this._expand(ve);var we=0;for(ye=0;ye<D.length;ye++){be=(0|this.words[ye+he])+we;var _e=(0|D.words[ye])*te;we=((be-=67108863&_e)>>26)-(_e/67108864|0),this.words[ye+he]=67108863&be}for(;ye<this.length-he;ye++)we=(be=(0|this.words[ye+he])+we)>>26,this.words[ye+he]=67108863&be;if(0===we)return this._strip();for(assert(-1===we),we=0,ye=0;ye<this.length;ye++)we=(be=-(0|this.words[ye])+we)>>26,this.words[ye]=67108863&be;return this.negative=1,this._strip()},BN.prototype._wordDiv=function _wordDiv(D,te){var he=(this.length,D.length),ye=this.clone(),be=D,ve=0|be.words[be.length-1];0!==(he=26-this._countBits(ve))&&(be=be.ushln(he),ye.iushln(he),ve=0|be.words[be.length-1]);var we,_e=ye.length-be.length;if("mod"!==te){(we=new BN(null)).length=_e+1,we.words=new Array(we.length);for(var Pe=0;Pe<we.length;Pe++)we.words[Pe]=0}var Ie=ye.clone()._ishlnsubmul(be,1,_e);0===Ie.negative&&(ye=Ie,we&&(we.words[_e]=1));for(var Re=_e-1;Re>=0;Re--){var ke=67108864*(0|ye.words[be.length+Re])+(0|ye.words[be.length+Re-1]);for(ke=Math.min(ke/ve|0,67108863),ye._ishlnsubmul(be,ke,Re);0!==ye.negative;)ke--,ye.negative=0,ye._ishlnsubmul(be,1,Re),ye.isZero()||(ye.negative^=1);we&&(we.words[Re]=ke)}return we&&we._strip(),ye._strip(),"div"!==te&&0!==he&&ye.iushrn(he),{div:we||null,mod:ye}},BN.prototype.divmod=function divmod(D,te,he){return assert(!D.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===D.negative?(ve=this.neg().divmod(D,te),"mod"!==te&&(ye=ve.div.neg()),"div"!==te&&(be=ve.mod.neg(),he&&0!==be.negative&&be.iadd(D)),{div:ye,mod:be}):0===this.negative&&0!==D.negative?(ve=this.divmod(D.neg(),te),"mod"!==te&&(ye=ve.div.neg()),{div:ye,mod:ve.mod}):0!=(this.negative&D.negative)?(ve=this.neg().divmod(D.neg(),te),"div"!==te&&(be=ve.mod.neg(),he&&0!==be.negative&&be.isub(D)),{div:ve.div,mod:be}):D.length>this.length||this.cmp(D)<0?{div:new BN(0),mod:this}:1===D.length?"div"===te?{div:this.divn(D.words[0]),mod:null}:"mod"===te?{div:null,mod:new BN(this.modrn(D.words[0]))}:{div:this.divn(D.words[0]),mod:new BN(this.modrn(D.words[0]))}:this._wordDiv(D,te);var ye,be,ve},BN.prototype.div=function div(D){return this.divmod(D,"div",!1).div},BN.prototype.mod=function mod(D){return this.divmod(D,"mod",!1).mod},BN.prototype.umod=function umod(D){return this.divmod(D,"mod",!0).mod},BN.prototype.divRound=function divRound(D){var te=this.divmod(D);if(te.mod.isZero())return te.div;var he=0!==te.div.negative?te.mod.isub(D):te.mod,ye=D.ushrn(1),be=D.andln(1),ve=he.cmp(ye);return ve<0||1===be&&0===ve?te.div:0!==te.div.negative?te.div.isubn(1):te.div.iaddn(1)},BN.prototype.modrn=function modrn(D){var te=D<0;te&&(D=-D),assert(D<=67108863);for(var he=(1<<26)%D,ye=0,be=this.length-1;be>=0;be--)ye=(he*ye+(0|this.words[be]))%D;return te?-ye:ye},BN.prototype.modn=function modn(D){return this.modrn(D)},BN.prototype.idivn=function idivn(D){var te=D<0;te&&(D=-D),assert(D<=67108863);for(var he=0,ye=this.length-1;ye>=0;ye--){var be=(0|this.words[ye])+67108864*he;this.words[ye]=be/D|0,he=be%D}return this._strip(),te?this.ineg():this},BN.prototype.divn=function divn(D){return this.clone().idivn(D)},BN.prototype.egcd=function egcd(D){assert(0===D.negative),assert(!D.isZero());var te=this,he=D.clone();te=0!==te.negative?te.umod(D):te.clone();for(var ye=new BN(1),be=new BN(0),ve=new BN(0),we=new BN(1),_e=0;te.isEven()&&he.isEven();)te.iushrn(1),he.iushrn(1),++_e;for(var Pe=he.clone(),Ie=te.clone();!te.isZero();){for(var Re=0,ke=1;0==(te.words[0]&ke)&&Re<26;++Re,ke<<=1);if(Re>0)for(te.iushrn(Re);Re-- >0;)(ye.isOdd()||be.isOdd())&&(ye.iadd(Pe),be.isub(Ie)),ye.iushrn(1),be.iushrn(1);for(var Oe=0,xe=1;0==(he.words[0]&xe)&&Oe<26;++Oe,xe<<=1);if(Oe>0)for(he.iushrn(Oe);Oe-- >0;)(ve.isOdd()||we.isOdd())&&(ve.iadd(Pe),we.isub(Ie)),ve.iushrn(1),we.iushrn(1);te.cmp(he)>=0?(te.isub(he),ye.isub(ve),be.isub(we)):(he.isub(te),ve.isub(ye),we.isub(be))}return{a:ve,b:we,gcd:he.iushln(_e)}},BN.prototype._invmp=function _invmp(D){assert(0===D.negative),assert(!D.isZero());var te=this,he=D.clone();te=0!==te.negative?te.umod(D):te.clone();for(var ye,be=new BN(1),ve=new BN(0),we=he.clone();te.cmpn(1)>0&&he.cmpn(1)>0;){for(var _e=0,Pe=1;0==(te.words[0]&Pe)&&_e<26;++_e,Pe<<=1);if(_e>0)for(te.iushrn(_e);_e-- >0;)be.isOdd()&&be.iadd(we),be.iushrn(1);for(var Ie=0,Re=1;0==(he.words[0]&Re)&&Ie<26;++Ie,Re<<=1);if(Ie>0)for(he.iushrn(Ie);Ie-- >0;)ve.isOdd()&&ve.iadd(we),ve.iushrn(1);te.cmp(he)>=0?(te.isub(he),be.isub(ve)):(he.isub(te),ve.isub(be))}return(ye=0===te.cmpn(1)?be:ve).cmpn(0)<0&&ye.iadd(D),ye},BN.prototype.gcd=function gcd(D){if(this.isZero())return D.abs();if(D.isZero())return this.abs();var te=this.clone(),he=D.clone();te.negative=0,he.negative=0;for(var ye=0;te.isEven()&&he.isEven();ye++)te.iushrn(1),he.iushrn(1);for(;;){for(;te.isEven();)te.iushrn(1);for(;he.isEven();)he.iushrn(1);var be=te.cmp(he);if(be<0){var ve=te;te=he,he=ve}else if(0===be||0===he.cmpn(1))break;te.isub(he)}return he.iushln(ye)},BN.prototype.invm=function invm(D){return this.egcd(D).a.umod(D)},BN.prototype.isEven=function isEven(){return 0==(1&this.words[0])},BN.prototype.isOdd=function isOdd(){return 1==(1&this.words[0])},BN.prototype.andln=function andln(D){return this.words[0]&D},BN.prototype.bincn=function bincn(D){assert("number"==typeof D);var te=D%26,he=(D-te)/26,ye=1<<te;if(this.length<=he)return this._expand(he+1),this.words[he]|=ye,this;for(var be=ye,ve=he;0!==be&&ve<this.length;ve++){var we=0|this.words[ve];be=(we+=be)>>>26,we&=67108863,this.words[ve]=we}return 0!==be&&(this.words[ve]=be,this.length++),this},BN.prototype.isZero=function isZero(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function cmpn(D){var te,he=D<0;if(0!==this.negative&&!he)return-1;if(0===this.negative&&he)return 1;if(this._strip(),this.length>1)te=1;else{he&&(D=-D),assert(D<=67108863,"Number is too big");var ye=0|this.words[0];te=ye===D?0:ye<D?-1:1}return 0!==this.negative?0|-te:te},BN.prototype.cmp=function cmp(D){if(0!==this.negative&&0===D.negative)return-1;if(0===this.negative&&0!==D.negative)return 1;var te=this.ucmp(D);return 0!==this.negative?0|-te:te},BN.prototype.ucmp=function ucmp(D){if(this.length>D.length)return 1;if(this.length<D.length)return-1;for(var te=0,he=this.length-1;he>=0;he--){var ye=0|this.words[he],be=0|D.words[he];if(ye!==be){ye<be?te=-1:ye>be&&(te=1);break}}return te},BN.prototype.gtn=function gtn(D){return 1===this.cmpn(D)},BN.prototype.gt=function gt(D){return 1===this.cmp(D)},BN.prototype.gten=function gten(D){return this.cmpn(D)>=0},BN.prototype.gte=function gte(D){return this.cmp(D)>=0},BN.prototype.ltn=function ltn(D){return-1===this.cmpn(D)},BN.prototype.lt=function lt(D){return-1===this.cmp(D)},BN.prototype.lten=function lten(D){return this.cmpn(D)<=0},BN.prototype.lte=function lte(D){return this.cmp(D)<=0},BN.prototype.eqn=function eqn(D){return 0===this.cmpn(D)},BN.prototype.eq=function eq(D){return 0===this.cmp(D)},BN.red=function red(D){return new Red(D)},BN.prototype.toRed=function toRed(D){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),D.convertTo(this)._forceRed(D)},BN.prototype.fromRed=function fromRed(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function _forceRed(D){return this.red=D,this},BN.prototype.forceRed=function forceRed(D){return assert(!this.red,"Already a number in reduction context"),this._forceRed(D)},BN.prototype.redAdd=function redAdd(D){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,D)},BN.prototype.redIAdd=function redIAdd(D){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,D)},BN.prototype.redSub=function redSub(D){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,D)},BN.prototype.redISub=function redISub(D){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,D)},BN.prototype.redShl=function redShl(D){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,D)},BN.prototype.redMul=function redMul(D){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,D),this.red.mul(this,D)},BN.prototype.redIMul=function redIMul(D){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,D),this.red.imul(this,D)},BN.prototype.redSqr=function redSqr(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function redISqr(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function redSqrt(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function redInvm(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function redNeg(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function redPow(D){return assert(this.red&&!D.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,D)};var _e={k256:null,p224:null,p192:null,p25519:null};function MPrime(D,te){this.name=D,this.p=new BN(te,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(D){if("string"==typeof D){var te=BN._prime(D);this.m=te.p,this.prime=te}else assert(D.gtn(1),"modulus must be greater than 1"),this.m=D,this.prime=null}function Mont(D){Red.call(this,D),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function _tmp(){var D=new BN(null);return D.words=new Array(Math.ceil(this.n/13)),D},MPrime.prototype.ireduce=function ireduce(D){var te,he=D;do{this.split(he,this.tmp),te=(he=(he=this.imulK(he)).iadd(this.tmp)).bitLength()}while(te>this.n);var ye=te<this.n?-1:he.ucmp(this.p);return 0===ye?(he.words[0]=0,he.length=1):ye>0?he.isub(this.p):void 0!==he.strip?he.strip():he._strip(),he},MPrime.prototype.split=function split(D,te){D.iushrn(this.n,0,te)},MPrime.prototype.imulK=function imulK(D){return D.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function split(D,te){for(var he=4194303,ye=Math.min(D.length,9),be=0;be<ye;be++)te.words[be]=D.words[be];if(te.length=ye,D.length<=9)return D.words[0]=0,void(D.length=1);var ve=D.words[9];for(te.words[te.length++]=ve&he,be=10;be<D.length;be++){var we=0|D.words[be];D.words[be-10]=(we&he)<<4|ve>>>22,ve=we}ve>>>=22,D.words[be-10]=ve,0===ve&&D.length>10?D.length-=10:D.length-=9},K256.prototype.imulK=function imulK(D){D.words[D.length]=0,D.words[D.length+1]=0,D.length+=2;for(var te=0,he=0;he<D.length;he++){var ye=0|D.words[he];te+=977*ye,D.words[he]=67108863&te,te=64*ye+(te/67108864|0)}return 0===D.words[D.length-1]&&(D.length--,0===D.words[D.length-1]&&D.length--),D},inherits(P224,MPrime),inherits(P192,MPrime),inherits(P25519,MPrime),P25519.prototype.imulK=function imulK(D){for(var te=0,he=0;he<D.length;he++){var ye=19*(0|D.words[he])+te,be=67108863&ye;ye>>>=26,D.words[he]=be,te=ye}return 0!==te&&(D.words[D.length++]=te),D},BN._prime=function prime(D){if(_e[D])return _e[D];var prime;if("k256"===D)prime=new K256;else if("p224"===D)prime=new P224;else if("p192"===D)prime=new P192;else{if("p25519"!==D)throw new Error("Unknown prime "+D);prime=new P25519}return _e[D]=prime,prime},Red.prototype._verify1=function _verify1(D){assert(0===D.negative,"red works only with positives"),assert(D.red,"red works only with red numbers")},Red.prototype._verify2=function _verify2(D,te){assert(0==(D.negative|te.negative),"red works only with positives"),assert(D.red&&D.red===te.red,"red works only with red numbers")},Red.prototype.imod=function imod(D){return this.prime?this.prime.ireduce(D)._forceRed(this):(move(D,D.umod(this.m)._forceRed(this)),D)},Red.prototype.neg=function neg(D){return D.isZero()?D.clone():this.m.sub(D)._forceRed(this)},Red.prototype.add=function add(D,te){this._verify2(D,te);var he=D.add(te);return he.cmp(this.m)>=0&&he.isub(this.m),he._forceRed(this)},Red.prototype.iadd=function iadd(D,te){this._verify2(D,te);var he=D.iadd(te);return he.cmp(this.m)>=0&&he.isub(this.m),he},Red.prototype.sub=function sub(D,te){this._verify2(D,te);var he=D.sub(te);return he.cmpn(0)<0&&he.iadd(this.m),he._forceRed(this)},Red.prototype.isub=function isub(D,te){this._verify2(D,te);var he=D.isub(te);return he.cmpn(0)<0&&he.iadd(this.m),he},Red.prototype.shl=function shl(D,te){return this._verify1(D),this.imod(D.ushln(te))},Red.prototype.imul=function imul(D,te){return this._verify2(D,te),this.imod(D.imul(te))},Red.prototype.mul=function mul(D,te){return this._verify2(D,te),this.imod(D.mul(te))},Red.prototype.isqr=function isqr(D){return this.imul(D,D.clone())},Red.prototype.sqr=function sqr(D){return this.mul(D,D)},Red.prototype.sqrt=function sqrt(D){if(D.isZero())return D.clone();var te=this.m.andln(3);if(assert(te%2==1),3===te){var he=this.m.add(new BN(1)).iushrn(2);return this.pow(D,he)}for(var ye=this.m.subn(1),be=0;!ye.isZero()&&0===ye.andln(1);)be++,ye.iushrn(1);assert(!ye.isZero());var ve=new BN(1).toRed(this),we=ve.redNeg(),_e=this.m.subn(1).iushrn(1),Pe=this.m.bitLength();for(Pe=new BN(2*Pe*Pe).toRed(this);0!==this.pow(Pe,_e).cmp(we);)Pe.redIAdd(we);for(var Ie=this.pow(Pe,ye),Re=this.pow(D,ye.addn(1).iushrn(1)),ke=this.pow(D,ye),Oe=be;0!==ke.cmp(ve);){for(var xe=ke,Be=0;0!==xe.cmp(ve);Be++)xe=xe.redSqr();assert(Be<Oe);var Fe=this.pow(Ie,new BN(1).iushln(Oe-Be-1));Re=Re.redMul(Fe),Ie=Fe.redSqr(),ke=ke.redMul(Ie),Oe=Be}return Re},Red.prototype.invm=function invm(D){var te=D._invmp(this.m);return 0!==te.negative?(te.negative=0,this.imod(te).redNeg()):this.imod(te)},Red.prototype.pow=function pow(D,te){if(te.isZero())return new BN(1).toRed(this);if(0===te.cmpn(1))return D.clone();var he=new Array(16);he[0]=new BN(1).toRed(this),he[1]=D;for(var ye=2;ye<he.length;ye++)he[ye]=this.mul(he[ye-1],D);var be=he[0],ve=0,we=0,_e=te.bitLength()%26;for(0===_e&&(_e=26),ye=te.length-1;ye>=0;ye--){for(var Pe=te.words[ye],Ie=_e-1;Ie>=0;Ie--){var Re=Pe>>Ie&1;be!==he[0]&&(be=this.sqr(be)),0!==Re||0!==ve?(ve<<=1,ve|=Re,(4===++we||0===ye&&0===Ie)&&(be=this.mul(be,he[ve]),we=0,ve=0)):we=0}_e=26}return be},Red.prototype.convertTo=function convertTo(D){var te=D.umod(this.m);return te===D?te.clone():te},Red.prototype.convertFrom=function convertFrom(D){var te=D.clone();return te.red=null,te},BN.mont=function mont(D){return new Mont(D)},inherits(Mont,Red),Mont.prototype.convertTo=function convertTo(D){return this.imod(D.ushln(this.shift))},Mont.prototype.convertFrom=function convertFrom(D){var te=this.imod(D.mul(this.rinv));return te.red=null,te},Mont.prototype.imul=function imul(D,te){if(D.isZero()||te.isZero())return D.words[0]=0,D.length=1,D;var he=D.imul(te),ye=he.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),be=he.isub(ye).iushrn(this.shift),ve=be;return be.cmp(this.m)>=0?ve=be.isub(this.m):be.cmpn(0)<0&&(ve=be.iadd(this.m)),ve._forceRed(this)},Mont.prototype.mul=function mul(D,te){if(D.isZero()||te.isZero())return new BN(0)._forceRed(this);var he=D.mul(te),ye=he.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),be=he.isub(ye).iushrn(this.shift),ve=be;return be.cmp(this.m)>=0?ve=be.isub(this.m):be.cmpn(0)<0&&(ve=be.iadd(this.m)),ve._forceRed(this)},Mont.prototype.invm=function invm(D){return this.imod(D._invmp(this.m).mul(this.r2))._forceRed(this)}}(D,rn)}(gi);var ki=gi.exports,Oi=getDefaultExportFromCjs$1(ki);const xi="bignumber/5.7.0";var Ni=Oi.BN;const Mi=new hi(xi),Bi={},Fi=9007199254740991;let Di=!1,Li=class BigNumber{constructor(D,te){D!==Bi&&Mi.throwError("cannot call constructor directly; use BigNumber.from",hi.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=te,this._isBigNumber=!0,Object.freeze(this)}fromTwos(D){return toBigNumber$1(toBN$1(this).fromTwos(D))}toTwos(D){return toBigNumber$1(toBN$1(this).toTwos(D))}abs(){return"-"===this._hex[0]?BigNumber.from(this._hex.substring(1)):this}add(D){return toBigNumber$1(toBN$1(this).add(toBN$1(D)))}sub(D){return toBigNumber$1(toBN$1(this).sub(toBN$1(D)))}div(D){return BigNumber.from(D).isZero()&&throwFault$2("division-by-zero","div"),toBigNumber$1(toBN$1(this).div(toBN$1(D)))}mul(D){return toBigNumber$1(toBN$1(this).mul(toBN$1(D)))}mod(D){const te=toBN$1(D);return te.isNeg()&&throwFault$2("division-by-zero","mod"),toBigNumber$1(toBN$1(this).umod(te))}pow(D){const te=toBN$1(D);return te.isNeg()&&throwFault$2("negative-power","pow"),toBigNumber$1(toBN$1(this).pow(te))}and(D){const te=toBN$1(D);return(this.isNegative()||te.isNeg())&&throwFault$2("unbound-bitwise-result","and"),toBigNumber$1(toBN$1(this).and(te))}or(D){const te=toBN$1(D);return(this.isNegative()||te.isNeg())&&throwFault$2("unbound-bitwise-result","or"),toBigNumber$1(toBN$1(this).or(te))}xor(D){const te=toBN$1(D);return(this.isNegative()||te.isNeg())&&throwFault$2("unbound-bitwise-result","xor"),toBigNumber$1(toBN$1(this).xor(te))}mask(D){return(this.isNegative()||D<0)&&throwFault$2("negative-width","mask"),toBigNumber$1(toBN$1(this).maskn(D))}shl(D){return(this.isNegative()||D<0)&&throwFault$2("negative-width","shl"),toBigNumber$1(toBN$1(this).shln(D))}shr(D){return(this.isNegative()||D<0)&&throwFault$2("negative-width","shr"),toBigNumber$1(toBN$1(this).shrn(D))}eq(D){return toBN$1(this).eq(toBN$1(D))}lt(D){return toBN$1(this).lt(toBN$1(D))}lte(D){return toBN$1(this).lte(toBN$1(D))}gt(D){return toBN$1(this).gt(toBN$1(D))}gte(D){return toBN$1(this).gte(toBN$1(D))}isNegative(){return"-"===this._hex[0]}isZero(){return toBN$1(this).isZero()}toNumber(){try{return toBN$1(this).toNumber()}catch(D){throwFault$2("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(D){}return Mi.throwError("this platform does not support BigInt",hi.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Di||(Di=!0,Mi.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?Mi.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",hi.errors.UNEXPECTED_ARGUMENT,{}):Mi.throwError("BigNumber.toString does not accept parameters",hi.errors.UNEXPECTED_ARGUMENT,{})),toBN$1(this).toString(10)}toHexString(){return this._hex}toJSON(D){return{type:"BigNumber",hex:this.toHexString()}}static from(D){if(D instanceof BigNumber)return D;if("string"==typeof D)return D.match(/^-?0x[0-9a-f]+$/i)?new BigNumber(Bi,toHex$4(D)):D.match(/^-?[0-9]+$/)?new BigNumber(Bi,toHex$4(new Ni(D))):Mi.throwArgumentError("invalid BigNumber string","value",D);if("number"==typeof D)return D%1&&throwFault$2("underflow","BigNumber.from",D),(D>=Fi||D<=-Fi)&&throwFault$2("overflow","BigNumber.from",D),BigNumber.from(String(D));const te=D;if("bigint"==typeof te)return BigNumber.from(te.toString());if(isBytes$1(te))return BigNumber.from(hexlify$2(te));if(te)if(te.toHexString){const D=te.toHexString();if("string"==typeof D)return BigNumber.from(D)}else{let D=te._hex;if(null==D&&"BigNumber"===te.type&&(D=te.hex),"string"==typeof D&&(isHexString$4(D)||"-"===D[0]&&isHexString$4(D.substring(1))))return BigNumber.from(D)}return Mi.throwArgumentError("invalid BigNumber value","value",D)}static isBigNumber(D){return!(!D||!D._isBigNumber)}};function toHex$4(D){if("string"!=typeof D)return toHex$4(D.toString(16));if("-"===D[0])return"-"===(D=D.substring(1))[0]&&Mi.throwArgumentError("invalid hex","value",D),"0x00"===(D=toHex$4(D))?D:"-"+D;if("0x"!==D.substring(0,2)&&(D="0x"+D),"0x"===D)return"0x00";for(D.length%2&&(D="0x0"+D.substring(2));D.length>4&&"0x00"===D.substring(0,4);)D="0x"+D.substring(4);return D}function toBigNumber$1(D){return Li.from(toHex$4(D))}function toBN$1(D){const te=Li.from(D).toHexString();return"-"===te[0]?new Ni("-"+te.substring(3),16):new Ni(te.substring(2),16)}function throwFault$2(D,te,he){const ye={fault:D,operation:te};return null!=he&&(ye.value=he),Mi.throwError(D,hi.errors.NUMERIC_FAULT,ye)}const Ui=new hi(xi),$i={},qi=Li.from(0),Gi=Li.from(-1);function throwFault$1(D,te,he,ye){const be={fault:te,operation:he};return void 0!==ye&&(be.value=ye),Ui.throwError(D,hi.errors.NUMERIC_FAULT,be)}let ji="0";for(;ji.length<256;)ji+=ji;function getMultiplier(D){if("number"!=typeof D)try{D=Li.from(D).toNumber()}catch(D){}return"number"==typeof D&&D>=0&&D<=256&&!(D%1)?"1"+ji.substring(0,D):Ui.throwArgumentError("invalid decimal size","decimals",D)}function formatFixed(D,te){null==te&&(te=0);const he=getMultiplier(te),ye=(D=Li.from(D)).lt(qi);ye&&(D=D.mul(Gi));let be=D.mod(he).toString();for(;be.length<he.length-1;)be="0"+be;be=be.match(/^([0-9]*[1-9]|0)(0*)/)[1];const ve=D.div(he).toString();return D=1===he.length?ve:ve+"."+be,ye&&(D="-"+D),D}function parseFixed(D,te){null==te&&(te=0);const he=getMultiplier(te);"string"==typeof D&&D.match(/^-?[0-9.]+$/)||Ui.throwArgumentError("invalid decimal value","value",D);const ye="-"===D.substring(0,1);ye&&(D=D.substring(1)),"."===D&&Ui.throwArgumentError("missing value","value",D);const be=D.split(".");be.length>2&&Ui.throwArgumentError("too many decimal points","value",D);let ve=be[0],we=be[1];for(ve||(ve="0"),we||(we="0");"0"===we[we.length-1];)we=we.substring(0,we.length-1);for(we.length>he.length-1&&throwFault$1("fractional component exceeds decimals","underflow","parseFixed"),""===we&&(we="0");we.length<he.length-1;)we+="0";const _e=Li.from(ve),Pe=Li.from(we);let Ie=_e.mul(he).add(Pe);return ye&&(Ie=Ie.mul(Gi)),Ie}class FixedFormat{constructor(D,te,he,ye){D!==$i&&Ui.throwError("cannot use FixedFormat constructor; use FixedFormat.from",hi.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.signed=te,this.width=he,this.decimals=ye,this.name=(te?"":"u")+"fixed"+String(he)+"x"+String(ye),this._multiplier=getMultiplier(ye),Object.freeze(this)}static from(D){if(D instanceof FixedFormat)return D;"number"==typeof D&&(D=`fixed128x${D}`);let te=!0,he=128,ye=18;if("string"==typeof D)if("fixed"===D);else if("ufixed"===D)te=!1;else{const be=D.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);be||Ui.throwArgumentError("invalid fixed format","format",D),te="u"!==be[1],he=parseInt(be[2]),ye=parseInt(be[3])}else if(D){const check=(te,he,ye)=>null==D[te]?ye:(typeof D[te]!==he&&Ui.throwArgumentError("invalid fixed format ("+te+" not "+he+")","format."+te,D[te]),D[te]);te=check("signed","boolean",te),he=check("width","number",he),ye=check("decimals","number",ye)}return he%8&&Ui.throwArgumentError("invalid fixed format width (not byte aligned)","format.width",he),ye>80&&Ui.throwArgumentError("invalid fixed format (decimals too large)","format.decimals",ye),new FixedFormat($i,te,he,ye)}}class FixedNumber{constructor(D,te,he,ye){D!==$i&&Ui.throwError("cannot use FixedNumber constructor; use FixedNumber.from",hi.errors.UNSUPPORTED_OPERATION,{operation:"new FixedFormat"}),this.format=ye,this._hex=te,this._value=he,this._isFixedNumber=!0,Object.freeze(this)}_checkFormat(D){this.format.name!==D.format.name&&Ui.throwArgumentError("incompatible format; use fixedNumber.toFormat","other",D)}addUnsafe(D){this._checkFormat(D);const te=parseFixed(this._value,this.format.decimals),he=parseFixed(D._value,D.format.decimals);return FixedNumber.fromValue(te.add(he),this.format.decimals,this.format)}subUnsafe(D){this._checkFormat(D);const te=parseFixed(this._value,this.format.decimals),he=parseFixed(D._value,D.format.decimals);return FixedNumber.fromValue(te.sub(he),this.format.decimals,this.format)}mulUnsafe(D){this._checkFormat(D);const te=parseFixed(this._value,this.format.decimals),he=parseFixed(D._value,D.format.decimals);return FixedNumber.fromValue(te.mul(he).div(this.format._multiplier),this.format.decimals,this.format)}divUnsafe(D){this._checkFormat(D);const te=parseFixed(this._value,this.format.decimals),he=parseFixed(D._value,D.format.decimals);return FixedNumber.fromValue(te.mul(this.format._multiplier).div(he),this.format.decimals,this.format)}floor(){const D=this.toString().split(".");1===D.length&&D.push("0");let te=FixedNumber.from(D[0],this.format);const he=!D[1].match(/^(0*)$/);return this.isNegative()&&he&&(te=te.subUnsafe(Hi.toFormat(te.format))),te}ceiling(){const D=this.toString().split(".");1===D.length&&D.push("0");let te=FixedNumber.from(D[0],this.format);const he=!D[1].match(/^(0*)$/);return!this.isNegative()&&he&&(te=te.addUnsafe(Hi.toFormat(te.format))),te}round(D){null==D&&(D=0);const te=this.toString().split(".");if(1===te.length&&te.push("0"),(D<0||D>80||D%1)&&Ui.throwArgumentError("invalid decimal count","decimals",D),te[1].length<=D)return this;const he=FixedNumber.from("1"+ji.substring(0,D),this.format),ye=zi.toFormat(this.format);return this.mulUnsafe(he).addUnsafe(ye).floor().divUnsafe(he)}isZero(){return"0.0"===this._value||"0"===this._value}isNegative(){return"-"===this._value[0]}toString(){return this._value}toHexString(D){if(null==D)return this._hex;D%8&&Ui.throwArgumentError("invalid byte width","width",D);return hexZeroPad$1(Li.from(this._hex).fromTwos(this.format.width).toTwos(D).toHexString(),D/8)}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(D){return FixedNumber.fromString(this._value,D)}static fromValue(D,te,he){return null!=he||null==te||function isBigNumberish(D){return null!=D&&(Li.isBigNumber(D)||"number"==typeof D&&D%1==0||"string"==typeof D&&!!D.match(/^-?[0-9]+$/)||isHexString$4(D)||"bigint"==typeof D||isBytes$1(D))}(te)||(he=te,te=null),null==te&&(te=0),null==he&&(he="fixed"),FixedNumber.fromString(formatFixed(D,te),FixedFormat.from(he))}static fromString(D,te){null==te&&(te="fixed");const he=FixedFormat.from(te),ye=parseFixed(D,he.decimals);!he.signed&&ye.lt(qi)&&throwFault$1("unsigned value cannot be negative","overflow","value",D);let be=null;he.signed?be=ye.toTwos(he.width).toHexString():(be=ye.toHexString(),be=hexZeroPad$1(be,he.width/8));const ve=formatFixed(ye,he.decimals);return new FixedNumber($i,be,ve,he)}static fromBytes(D,te){null==te&&(te="fixed");const he=FixedFormat.from(te);if(arrayify$1(D).length>he.width/8)throw new Error("overflow");let ye=Li.from(D);he.signed&&(ye=ye.fromTwos(he.width));const be=ye.toTwos((he.signed?0:1)+he.width).toHexString(),ve=formatFixed(ye,he.decimals);return new FixedNumber($i,be,ve,he)}static from(D,te){if("string"==typeof D)return FixedNumber.fromString(D,te);if(isBytes$1(D))return FixedNumber.fromBytes(D,te);try{return FixedNumber.fromValue(D,0,te)}catch(D){if(D.code!==hi.errors.INVALID_ARGUMENT)throw D}return Ui.throwArgumentError("invalid FixedNumber value","value",D)}static isFixedNumber(D){return!(!D||!D._isFixedNumber)}}const Hi=FixedNumber.from(1),zi=FixedNumber.from("0.5"),Wi=Li.from(-1),Vi=Li.from(0),Ki=Li.from(1),Ji=Li.from(2),Xi=Li.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Qi="0x0000000000000000000000000000000000000000000000000000000000000000",Zi=new hi("strings/5.7.0");var Yi,es;function ignoreFunc$2(D,te,he,ye,be){if(D===es.BAD_PREFIX||D===es.UNEXPECTED_CONTINUE){let D=0;for(let ye=te+1;ye<he.length&&he[ye]>>6==2;ye++)D++;return D}return D===es.OVERRUN?he.length-te-1:0}!function(D){D.current="",D.NFC="NFC",D.NFD="NFD",D.NFKC="NFKC",D.NFKD="NFKD"}(Yi||(Yi={})),function(D){D.UNEXPECTED_CONTINUE="unexpected continuation byte",D.BAD_PREFIX="bad codepoint prefix",D.OVERRUN="string overrun",D.MISSING_CONTINUE="missing continuation byte",D.OUT_OF_RANGE="out of UTF-8 range",D.UTF16_SURROGATE="UTF-16 surrogate",D.OVERLONG="overlong representation"}(es||(es={}));const ts=Object.freeze({error:function errorFunc$2(D,te,he,ye,be){return Zi.throwArgumentError(`invalid codepoint at offset ${te}; ${D}`,"bytes",he)},ignore:ignoreFunc$2,replace:function replaceFunc$2(D,te,he,ye,be){return D===es.OVERLONG?(ye.push(be),0):(ye.push(65533),ignoreFunc$2(D,te,he))}});function getUtf8CodePoints$2(D,te){null==te&&(te=ts.error),D=arrayify$1(D);const he=[];let ye=0;for(;ye<D.length;){const be=D[ye++];if(be>>7==0){he.push(be);continue}let ve=null,we=null;if(192==(224&be))ve=1,we=127;else if(224==(240&be))ve=2,we=2047;else{if(240!=(248&be)){ye+=te(128==(192&be)?es.UNEXPECTED_CONTINUE:es.BAD_PREFIX,ye-1,D,he);continue}ve=3,we=65535}if(ye-1+ve>=D.length){ye+=te(es.OVERRUN,ye-1,D,he);continue}let _e=be&(1<<8-ve-1)-1;for(let be=0;be<ve;be++){let be=D[ye];if(128!=(192&be)){ye+=te(es.MISSING_CONTINUE,ye,D,he),_e=null;break}_e=_e<<6|63&be,ye++}null!==_e&&(_e>1114111?ye+=te(es.OUT_OF_RANGE,ye-1-ve,D,he,_e):_e>=55296&&_e<=57343?ye+=te(es.UTF16_SURROGATE,ye-1-ve,D,he,_e):_e<=we?ye+=te(es.OVERLONG,ye-1-ve,D,he,_e):he.push(_e))}return he}function toUtf8Bytes$2(D,te=Yi.current){te!=Yi.current&&(Zi.checkNormalize(),D=D.normalize(te));let he=[];for(let te=0;te<D.length;te++){const ye=D.charCodeAt(te);if(ye<128)he.push(ye);else if(ye<2048)he.push(ye>>6|192),he.push(63&ye|128);else if(55296==(64512&ye)){te++;const be=D.charCodeAt(te);if(te>=D.length||56320!=(64512&be))throw new Error("invalid utf-8 string");const ve=65536+((1023&ye)<<10)+(1023&be);he.push(ve>>18|240),he.push(ve>>12&63|128),he.push(ve>>6&63|128),he.push(63&ve|128)}else he.push(ye>>12|224),he.push(ye>>6&63|128),he.push(63&ye|128)}return arrayify$1(he)}function escapeChar(D){const te="0000"+D.toString(16);return"\\u"+te.substring(te.length-4)}function _toUtf8String$2(D){return D.map((D=>D<=65535?String.fromCharCode(D):(D-=65536,String.fromCharCode(55296+(D>>10&1023),56320+(1023&D))))).join("")}function toUtf8String$2(D,te){return _toUtf8String$2(getUtf8CodePoints$2(D,te))}function toUtf8CodePoints(D,te=Yi.current){return getUtf8CodePoints$2(toUtf8Bytes$2(D,te))}function createTable(D,te){te||(te=function(D){return[parseInt(D,16)]});let he=0,ye={};return D.split(",").forEach((D=>{let be=D.split(":");he+=parseInt(be[0],16),ye[he]=te(be[1])})),ye}function createRangeTable(D){let te=0;return D.split(",").map((D=>{let he=D.split("-");1===he.length?he[1]="0":""===he[1]&&(he[1]="1");let ye=te+parseInt(he[0],16);return te=parseInt(he[1],16),{l:ye,h:te}}))}function matchMap(D,te){let he=0;for(let ye=0;ye<te.length;ye++){let be=te[ye];if(he+=be.l,D>=he&&D<=he+be.h&&(D-he)%(be.d||1)==0){if(be.e&&-1!==be.e.indexOf(D-he))continue;return be}}return null}const rs=createRangeTable("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"),ns="ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map((D=>parseInt(D,16))),as=[{h:25,s:32,l:65},{h:30,s:32,e:[23],l:127},{h:54,s:1,e:[48],l:64,d:2},{h:14,s:1,l:57,d:2},{h:44,s:1,l:17,d:2},{h:10,s:1,e:[2,6,8],l:61,d:2},{h:16,s:1,l:68,d:2},{h:84,s:1,e:[18,24,66],l:19,d:2},{h:26,s:32,e:[17],l:435},{h:22,s:1,l:71,d:2},{h:15,s:80,l:40},{h:31,s:32,l:16},{h:32,s:1,l:80,d:2},{h:52,s:1,l:42,d:2},{h:12,s:1,l:55,d:2},{h:40,s:1,e:[38],l:15,d:2},{h:14,s:1,l:48,d:2},{h:37,s:48,l:49},{h:148,s:1,l:6351,d:2},{h:88,s:1,l:160,d:2},{h:15,s:16,l:704},{h:25,s:26,l:854},{h:25,s:32,l:55915},{h:37,s:40,l:1247},{h:25,s:-119711,l:53248},{h:25,s:-119763,l:52},{h:25,s:-119815,l:52},{h:25,s:-119867,e:[1,4,5,7,8,11,12,17],l:52},{h:25,s:-119919,l:52},{h:24,s:-119971,e:[2,7,8,17],l:52},{h:24,s:-120023,e:[2,7,13,15,16,17],l:52},{h:25,s:-120075,l:52},{h:25,s:-120127,l:52},{h:25,s:-120179,l:52},{h:25,s:-120231,l:52},{h:25,s:-120283,l:52},{h:25,s:-120335,l:52},{h:24,s:-119543,e:[17],l:56},{h:24,s:-119601,e:[17],l:58},{h:24,s:-119659,e:[17],l:58},{h:24,s:-119717,e:[17],l:58},{h:24,s:-119775,e:[17],l:58}],is=createTable("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"),ss=createTable("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"),os=createTable("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D",(function bytes2(D){if(D.length%4!=0)throw new Error("bad data");let te=[];for(let he=0;he<D.length;he+=4)te.push(parseInt(D.substring(he,he+4),16));return te})),cs=createRangeTable("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001");var ds={},us=isTypedArray$3;isTypedArray$3.strict=isStrictTypedArray,isTypedArray$3.loose=isLooseTypedArray;var fs=Object.prototype.toString,ls={"[object Int8Array]":!0,"[object Int16Array]":!0,"[object Int32Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Uint16Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0};function isTypedArray$3(D){return isStrictTypedArray(D)||isLooseTypedArray(D)}function isStrictTypedArray(D){return D instanceof Int8Array||D instanceof Int16Array||D instanceof Int32Array||D instanceof Uint8Array||D instanceof Uint8ClampedArray||D instanceof Uint16Array||D instanceof Uint32Array||D instanceof Float32Array||D instanceof Float64Array}function isLooseTypedArray(D){return ls[fs.call(D)]}var ps=us.strict,hs=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(ds,"__esModule",{value:!0});const ys=hs(us),ms=hs((function typedarrayToBuffer(D){if(ps(D)){var te=Buffer.from(D.buffer);return D.byteLength!==D.buffer.byteLength&&(te=te.slice(D.byteOffset,D.byteOffset+D.byteLength)),te}return Buffer.from(D)})),bs="hex",gs="utf8",vs="0";function bufferToArray(D){return new Uint8Array(D)}function bufferToHex$1(D,te=!1){const he=D.toString(bs);return te?addHexPrefix(he):he}function bufferToUtf8(D){return D.toString(gs)}function bufferToNumber(D){return D.readUIntBE(0,D.length)}function arrayToBuffer(D){return ms.default(D)}function arrayToHex(D,te=!1){return bufferToHex$1(arrayToBuffer(D),te)}function arrayToUtf8(D){return bufferToUtf8(arrayToBuffer(D))}function arrayToNumber(D){return bufferToNumber(arrayToBuffer(D))}function arrayToBinary(D){return Array.from(D).map(numberToBinary).join("")}function hexToBuffer$1(D){return Buffer.from(removeHexPrefix(D),bs)}ds.bufferToArray=bufferToArray,ds.bufferToHex=bufferToHex$1,ds.bufferToUtf8=bufferToUtf8,ds.bufferToNumber=bufferToNumber,ds.bufferToBinary=function bufferToBinary(D){return arrayToBinary(bufferToArray(D))},ds.arrayToBuffer=arrayToBuffer,ds.arrayToHex=arrayToHex,ds.arrayToUtf8=arrayToUtf8,ds.arrayToNumber=arrayToNumber,ds.arrayToBinary=arrayToBinary;var ws=ds.hexToBuffer=hexToBuffer$1;function hexToArray(D){return bufferToArray(hexToBuffer$1(D))}function hexToBinary(D){return arrayToBinary(hexToArray(D))}ds.hexToArray=hexToArray,ds.hexToUtf8=function hexToUtf8(D){return bufferToUtf8(hexToBuffer$1(D))},ds.hexToNumber=function hexToNumber$1(D){return arrayToNumber(hexToArray(D))};var _s=ds.hexToBinary=hexToBinary;function utf8ToBuffer(D){return Buffer.from(D,gs)}function utf8ToArray(D){return bufferToArray(utf8ToBuffer(D))}ds.utf8ToBuffer=utf8ToBuffer,ds.utf8ToArray=utf8ToArray;var Ts=ds.utf8ToHex=function utf8ToHex(D,te=!1){return bufferToHex$1(utf8ToBuffer(D),te)};ds.utf8ToNumber=function utf8ToNumber(D){const te=parseInt(D,10);return function assert$u(D,te){if(!D)throw new Error(te)}(function isDefined$1(D){return!function isUndefined$2(D){return void 0===D}(D)}(te),"Number can only safely store up to 53 bits"),te},ds.utf8ToBinary=function utf8ToBinary(D){return arrayToBinary(utf8ToArray(D))},ds.numberToBuffer=function numberToBuffer(D){return binaryToBuffer(numberToBinary(D))},ds.numberToArray=function numberToArray(D){return binaryToArray(numberToBinary(D))};var As=ds.numberToHex=function numberToHex(D,te){return binaryToHex(numberToBinary(D),te)};function numberToBinary(D){return sanitizeBytes((D>>>0).toString(2))}function binaryToBuffer(D){return arrayToBuffer(binaryToArray(D))}function binaryToArray(D){return new Uint8Array(splitBytes(D).map((D=>parseInt(D,2))))}function binaryToHex(D,te){return arrayToHex(binaryToArray(D),te)}ds.numberToUtf8=function numberToUtf8(D){return`${D}`},ds.numberToBinary=numberToBinary,ds.binaryToBuffer=binaryToBuffer,ds.binaryToArray=binaryToArray,ds.binaryToHex=binaryToHex,ds.binaryToUtf8=function binaryToUtf8(D){return arrayToUtf8(binaryToArray(D))};var Es=ds.binaryToNumber=function binaryToNumber(D){return arrayToNumber(binaryToArray(D))};function isBinaryString(D){return!("string"!=typeof D||!new RegExp(/^[01]+$/).test(D))&&D.length%8==0}function isHexString$3(D,te){return!("string"!=typeof D||!D.match(/^0x[0-9A-Fa-f]*$/))&&(!te||D.length===2+2*te)}function isBuffer$2(D){return Buffer.isBuffer(D)}function isTypedArray$1(D){return ys.default.strict(D)&&!isBuffer$2(D)}function isArrayBuffer$1(D){return!isTypedArray$1(D)&&!isBuffer$2(D)&&void 0!==D.byteLength}function calcByteLength(D,te=8){const he=D%te;return he?(D-he)/te*te+te:D}function splitBytes(D,te=8){const he=sanitizeBytes(D).match(new RegExp(`.{${te}}`,"gi"));return Array.from(he||[])}function swapBytes(D){return splitBytes(D).map(reverseString).join("")}function sanitizeBytes(D,te=8,he=vs){return padLeft(D,calcByteLength(D.length,te),he)}ds.isBinaryString=isBinaryString,ds.isHexString=isHexString$3,ds.isBuffer=isBuffer$2,ds.isTypedArray=isTypedArray$1,ds.isArrayBuffer=isArrayBuffer$1,ds.getType=function getType(D){return isBuffer$2(D)?"buffer":isTypedArray$1(D)?"typed-array":isArrayBuffer$1(D)?"array-buffer":Array.isArray(D)?"array":typeof D},ds.getEncoding=function getEncoding(D){return isBinaryString(D)?"binary":isHexString$3(D)?bs:gs},ds.concatBuffers=function concatBuffers(...D){return Buffer.concat(D)},ds.concatArrays=function concatArrays(...D){let te=[];return D.forEach((D=>te=te.concat(Array.from(D)))),new Uint8Array([...te])},ds.trimLeft=function trimLeft(D,te){const he=D.length-te;return he>0&&(D=D.slice(he)),D},ds.trimRight=function trimRight(D,te){return D.slice(0,te)},ds.calcByteLength=calcByteLength,ds.splitBytes=splitBytes,ds.swapBytes=swapBytes,ds.swapHex=function swapHex(D){return binaryToHex(swapBytes(hexToBinary(D)))};var Ps=ds.sanitizeBytes=sanitizeBytes;function padLeft(D,te,he=vs){return padString(D,te,!0,he)}var Ss=ds.padLeft=padLeft;function removeHexPrefix(D){return D.replace(/^0x/,"")}ds.padRight=function padRight(D,te,he=vs){return padString(D,te,!1,he)};var Cs=ds.removeHexPrefix=removeHexPrefix;function addHexPrefix(D){return D.startsWith("0x")?D:`0x${D}`}var Is=ds.addHexPrefix=addHexPrefix;var Rs=ds.sanitizeHex=function sanitizeHex(D){return(D=sanitizeBytes(D=removeHexPrefix(D),2))&&(D=addHexPrefix(D)),D};function reverseString(D){return D.split("").reverse().join("")}function padString(D,te,he,ye=vs){const be=te-D.length;let ve=D;if(be>0){const te=ye.repeat(be);ve=he?te+D:D+te}return ve}ds.removeHexLeadingZeros=function removeHexLeadingZeros(D){const te=D.startsWith("0x");return D=(D=removeHexPrefix(D)).startsWith(vs)?D.substring(1):D,te?addHexPrefix(D):D};var __awaiter$e=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const ks=new hi("properties/5.7.0");function defineReadOnly$1(D,te,he){Object.defineProperty(D,te,{enumerable:!0,value:he,writable:!1})}function getStatic$1(D,te){for(let he=0;he<32;he++){if(D[te])return D[te];if(!D.prototype||"object"!=typeof D.prototype)break;D=Object.getPrototypeOf(D.prototype).constructor}return null}function resolveProperties$2(D){return __awaiter$e(this,void 0,void 0,(function*(){const te=Object.keys(D).map((te=>{const he=D[te];return Promise.resolve(he).then((D=>({key:te,value:D})))}));return(yield Promise.all(te)).reduce(((D,te)=>(D[te.key]=te.value,D)),{})}))}function checkProperties(D,te){D&&"object"==typeof D||ks.throwArgumentError("invalid object","object",D),Object.keys(D).forEach((he=>{te[he]||ks.throwArgumentError("invalid object key - "+he,"transaction:"+he,D)}))}function shallowCopy$1(D){const te={};for(const he in D)te[he]=D[he];return te}const Os={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function _isFrozen$1(D){if(null==D||Os[typeof D])return!0;if(Array.isArray(D)||"object"==typeof D){if(!Object.isFrozen(D))return!1;const te=Object.keys(D);for(let he=0;he<te.length;he++){let ye=null;try{ye=D[te[he]]}catch(D){continue}if(!_isFrozen$1(ye))return!1}return!0}return ks.throwArgumentError("Cannot deepCopy "+typeof D,"object",D)}function _deepCopy$1(D){if(_isFrozen$1(D))return D;if(Array.isArray(D))return Object.freeze(D.map((D=>deepCopy$2(D))));if("object"==typeof D){const te={};for(const he in D){const ye=D[he];void 0!==ye&&defineReadOnly$1(te,he,deepCopy$2(ye))}return te}return ks.throwArgumentError("Cannot deepCopy "+typeof D,"object",D)}function deepCopy$2(D){return _deepCopy$1(D)}let xs=class Description{constructor(D){for(const te in D)this[te]=deepCopy$2(D[te])}};const Ns="abi/5.7.0",Ms=new hi(Ns),Bs={};let Fs={calldata:!0,memory:!0,storage:!0},Ds={calldata:!0,memory:!0};function checkModifier$1(D,te){if("bytes"===D||"string"===D){if(Fs[te])return!0}else if("address"===D){if("payable"===te)return!0}else if((D.indexOf("[")>=0||"tuple"===D)&&Ds[te])return!0;return(Fs[te]||"payable"===te)&&Ms.throwArgumentError("invalid modifier","name",te),!1}function populate$2(D,te){for(let he in te)defineReadOnly$1(D,he,te[he])}const Ls=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),Us=new RegExp(/^(.*)\[([0-9]*)\]$/);let $s=class ParamType{constructor(D,te){D!==Bs&&Ms.throwError("use fromString",hi.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),populate$2(this,te);let he=this.type.match(Us);populate$2(this,he?{arrayLength:parseInt(he[2]||"-1"),arrayChildren:ParamType.fromObject({type:he[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(D){if(D||(D=Ls.sighash),Ls[D]||Ms.throwArgumentError("invalid format type","format",D),D===Ls.json){let te={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(te.indexed=this.indexed),this.components&&(te.components=this.components.map((te=>JSON.parse(te.format(D))))),JSON.stringify(te)}let te="";return"array"===this.baseType?(te+=this.arrayChildren.format(D),te+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(D!==Ls.sighash&&(te+=this.type),te+="("+this.components.map((te=>te.format(D))).join(D===Ls.full?", ":",")+")"):te+=this.type,D!==Ls.sighash&&(!0===this.indexed&&(te+=" indexed"),D===Ls.full&&this.name&&(te+=" "+this.name)),te}static from(D,te){return"string"==typeof D?ParamType.fromString(D,te):ParamType.fromObject(D)}static fromObject(D){return ParamType.isParamType(D)?D:new ParamType(Bs,{name:D.name||null,type:verifyType$1(D.type),indexed:null==D.indexed?null:!!D.indexed,components:D.components?D.components.map(ParamType.fromObject):null})}static fromString(D,te){return function ParamTypify(D){return ParamType.fromObject({name:D.name,type:D.type,indexed:D.indexed,components:D.components})}(function parseParamType$1(D,te){let he=D;function throwError(te){Ms.throwArgumentError(`unexpected character at position ${te}`,"param",D)}function newNode(D){let he={type:"",name:"",parent:D,state:{allowType:!0}};return te&&(he.indexed=!1),he}D=D.replace(/\s/g," ");let ye={type:"",name:"",state:{allowType:!0}},be=ye;for(let he=0;he<D.length;he++){let ye=D[he];switch(ye){case"(":be.state.allowType&&""===be.type?be.type="tuple":be.state.allowParams||throwError(he),be.state.allowType=!1,be.type=verifyType$1(be.type),be.components=[newNode(be)],be=be.components[0];break;case")":delete be.state,"indexed"===be.name&&(te||throwError(he),be.indexed=!0,be.name=""),checkModifier$1(be.type,be.name)&&(be.name=""),be.type=verifyType$1(be.type);let D=be;be=be.parent,be||throwError(he),delete D.parent,be.state.allowParams=!1,be.state.allowName=!0,be.state.allowArray=!0;break;case",":delete be.state,"indexed"===be.name&&(te||throwError(he),be.indexed=!0,be.name=""),checkModifier$1(be.type,be.name)&&(be.name=""),be.type=verifyType$1(be.type);let ve=newNode(be.parent);be.parent.components.push(ve),delete be.parent,be=ve;break;case" ":be.state.allowType&&""!==be.type&&(be.type=verifyType$1(be.type),delete be.state.allowType,be.state.allowName=!0,be.state.allowParams=!0),be.state.allowName&&""!==be.name&&("indexed"===be.name?(te||throwError(he),be.indexed&&throwError(he),be.indexed=!0,be.name=""):checkModifier$1(be.type,be.name)?be.name="":be.state.allowName=!1);break;case"[":be.state.allowArray||throwError(he),be.type+=ye,be.state.allowArray=!1,be.state.allowName=!1,be.state.readArray=!0;break;case"]":be.state.readArray||throwError(he),be.type+=ye,be.state.readArray=!1,be.state.allowArray=!0,be.state.allowName=!0;break;default:be.state.allowType?(be.type+=ye,be.state.allowParams=!0,be.state.allowArray=!0):be.state.allowName?(be.name+=ye,delete be.state.allowArray):be.state.readArray?be.type+=ye:throwError(he)}}return be.parent&&Ms.throwArgumentError("unexpected eof","param",D),delete ye.state,"indexed"===be.name?(te||throwError(he.length-7),be.indexed&&throwError(he.length-7),be.indexed=!0,be.name=""):checkModifier$1(be.type,be.name)&&(be.name=""),ye.type=verifyType$1(ye.type),ye}(D,!!te))}static isParamType(D){return!(null==D||!D._isParamType)}};function parseParams$1(D,te){return function splitNesting$1(D){D=D.trim();let te=[],he="",ye=0;for(let be=0;be<D.length;be++){let ve=D[be];","===ve&&0===ye?(te.push(he),he=""):(he+=ve,"("===ve?ye++:")"===ve&&(ye--,-1===ye&&Ms.throwArgumentError("unbalanced parenthesis","value",D)))}he&&te.push(he);return te}(D).map((D=>$s.fromString(D,te)))}let qs=class Fragment{constructor(D,te){D!==Bs&&Ms.throwError("use a static from method",hi.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),populate$2(this,te),this._isFragment=!0,Object.freeze(this)}static from(D){return Fragment.isFragment(D)?D:"string"==typeof D?Fragment.fromString(D):Fragment.fromObject(D)}static fromObject(D){if(Fragment.isFragment(D))return D;switch(D.type){case"function":return Hs.fromObject(D);case"event":return Gs.fromObject(D);case"constructor":return js.fromObject(D);case"error":return zs.fromObject(D);case"fallback":case"receive":return null}return Ms.throwArgumentError("invalid fragment object","value",D)}static fromString(D){return"event"===(D=(D=(D=D.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?Gs.fromString(D.substring(5).trim()):"function"===D.split(" ")[0]?Hs.fromString(D.substring(8).trim()):"constructor"===D.split("(")[0].trim()?js.fromString(D.trim()):"error"===D.split(" ")[0]?zs.fromString(D.substring(5).trim()):Ms.throwArgumentError("unsupported fragment","value",D)}static isFragment(D){return!(!D||!D._isFragment)}},Gs=class EventFragment extends qs{format(D){if(D||(D=Ls.sighash),Ls[D]||Ms.throwArgumentError("invalid format type","format",D),D===Ls.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});let te="";return D!==Ls.sighash&&(te+="event "),te+=this.name+"("+this.inputs.map((te=>te.format(D))).join(D===Ls.full?", ":",")+") ",D!==Ls.sighash&&this.anonymous&&(te+="anonymous "),te.trim()}static from(D){return"string"==typeof D?EventFragment.fromString(D):EventFragment.fromObject(D)}static fromObject(D){if(EventFragment.isEventFragment(D))return D;"event"!==D.type&&Ms.throwArgumentError("invalid event object","value",D);const te={name:verifyIdentifier$1(D.name),anonymous:D.anonymous,inputs:D.inputs?D.inputs.map($s.fromObject):[],type:"event"};return new EventFragment(Bs,te)}static fromString(D){let te=D.match(Vs);te||Ms.throwArgumentError("invalid event string","value",D);let he=!1;return te[3].split(" ").forEach((D=>{switch(D.trim()){case"anonymous":he=!0;break;case"":break;default:Ms.warn("unknown modifier: "+D)}})),EventFragment.fromObject({name:te[1].trim(),anonymous:he,inputs:parseParams$1(te[2],!0),type:"event"})}static isEventFragment(D){return D&&D._isFragment&&"event"===D.type}};function parseGas$1(D,te){te.gas=null;let he=D.split("@");return 1!==he.length?(he.length>2&&Ms.throwArgumentError("invalid human-readable ABI signature","value",D),he[1].match(/^[0-9]+$/)||Ms.throwArgumentError("invalid human-readable ABI signature gas","value",D),te.gas=Li.from(he[1]),he[0]):D}function parseModifiers$1(D,te){te.constant=!1,te.payable=!1,te.stateMutability="nonpayable",D.split(" ").forEach((D=>{switch(D.trim()){case"constant":te.constant=!0;break;case"payable":te.payable=!0,te.stateMutability="payable";break;case"nonpayable":te.payable=!1,te.stateMutability="nonpayable";break;case"pure":te.constant=!0,te.stateMutability="pure";break;case"view":te.constant=!0,te.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+D)}}))}function verifyState$1(D){let te={constant:!1,payable:!0,stateMutability:"payable"};return null!=D.stateMutability?(te.stateMutability=D.stateMutability,te.constant="view"===te.stateMutability||"pure"===te.stateMutability,null!=D.constant&&!!D.constant!==te.constant&&Ms.throwArgumentError("cannot have constant function with mutability "+te.stateMutability,"value",D),te.payable="payable"===te.stateMutability,null!=D.payable&&!!D.payable!==te.payable&&Ms.throwArgumentError("cannot have payable function with mutability "+te.stateMutability,"value",D)):null!=D.payable?(te.payable=!!D.payable,null!=D.constant||te.payable||"constructor"===D.type||Ms.throwArgumentError("unable to determine stateMutability","value",D),te.constant=!!D.constant,te.constant?te.stateMutability="view":te.stateMutability=te.payable?"payable":"nonpayable",te.payable&&te.constant&&Ms.throwArgumentError("cannot have constant payable function","value",D)):null!=D.constant?(te.constant=!!D.constant,te.payable=!te.constant,te.stateMutability=te.constant?"view":"payable"):"constructor"!==D.type&&Ms.throwArgumentError("unable to determine stateMutability","value",D),te}let js=class ConstructorFragment extends qs{format(D){if(D||(D=Ls.sighash),Ls[D]||Ms.throwArgumentError("invalid format type","format",D),D===Ls.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});D===Ls.sighash&&Ms.throwError("cannot format a constructor for sighash",hi.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let te="constructor("+this.inputs.map((te=>te.format(D))).join(D===Ls.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(te+=this.stateMutability+" "),te.trim()}static from(D){return"string"==typeof D?ConstructorFragment.fromString(D):ConstructorFragment.fromObject(D)}static fromObject(D){if(ConstructorFragment.isConstructorFragment(D))return D;"constructor"!==D.type&&Ms.throwArgumentError("invalid constructor object","value",D);let te=verifyState$1(D);te.constant&&Ms.throwArgumentError("constructor cannot be constant","value",D);const he={name:null,type:D.type,inputs:D.inputs?D.inputs.map($s.fromObject):[],payable:te.payable,stateMutability:te.stateMutability,gas:D.gas?Li.from(D.gas):null};return new ConstructorFragment(Bs,he)}static fromString(D){let te={type:"constructor"},he=(D=parseGas$1(D,te)).match(Vs);return he&&"constructor"===he[1].trim()||Ms.throwArgumentError("invalid constructor string","value",D),te.inputs=parseParams$1(he[2].trim(),!1),parseModifiers$1(he[3].trim(),te),ConstructorFragment.fromObject(te)}static isConstructorFragment(D){return D&&D._isFragment&&"constructor"===D.type}},Hs=class FunctionFragment extends js{format(D){if(D||(D=Ls.sighash),Ls[D]||Ms.throwArgumentError("invalid format type","format",D),D===Ls.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((te=>JSON.parse(te.format(D)))),outputs:this.outputs.map((te=>JSON.parse(te.format(D))))});let te="";return D!==Ls.sighash&&(te+="function "),te+=this.name+"("+this.inputs.map((te=>te.format(D))).join(D===Ls.full?", ":",")+") ",D!==Ls.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(te+=this.stateMutability+" "):this.constant&&(te+="view "),this.outputs&&this.outputs.length&&(te+="returns ("+this.outputs.map((te=>te.format(D))).join(", ")+") "),null!=this.gas&&(te+="@"+this.gas.toString()+" ")),te.trim()}static from(D){return"string"==typeof D?FunctionFragment.fromString(D):FunctionFragment.fromObject(D)}static fromObject(D){if(FunctionFragment.isFunctionFragment(D))return D;"function"!==D.type&&Ms.throwArgumentError("invalid function object","value",D);let te=verifyState$1(D);const he={type:D.type,name:verifyIdentifier$1(D.name),constant:te.constant,inputs:D.inputs?D.inputs.map($s.fromObject):[],outputs:D.outputs?D.outputs.map($s.fromObject):[],payable:te.payable,stateMutability:te.stateMutability,gas:D.gas?Li.from(D.gas):null};return new FunctionFragment(Bs,he)}static fromString(D){let te={type:"function"},he=(D=parseGas$1(D,te)).split(" returns ");he.length>2&&Ms.throwArgumentError("invalid function string","value",D);let ye=he[0].match(Vs);if(ye||Ms.throwArgumentError("invalid function signature","value",D),te.name=ye[1].trim(),te.name&&verifyIdentifier$1(te.name),te.inputs=parseParams$1(ye[2],!1),parseModifiers$1(ye[3].trim(),te),he.length>1){let ye=he[1].match(Vs);""==ye[1].trim()&&""==ye[3].trim()||Ms.throwArgumentError("unexpected tokens","value",D),te.outputs=parseParams$1(ye[2],!1)}else te.outputs=[];return FunctionFragment.fromObject(te)}static isFunctionFragment(D){return D&&D._isFragment&&"function"===D.type}};function checkForbidden$1(D){const te=D.format();return"Error(string)"!==te&&"Panic(uint256)"!==te||Ms.throwArgumentError(`cannot specify user defined ${te} error`,"fragment",D),D}let zs=class ErrorFragment extends qs{format(D){if(D||(D=Ls.sighash),Ls[D]||Ms.throwArgumentError("invalid format type","format",D),D===Ls.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});let te="";return D!==Ls.sighash&&(te+="error "),te+=this.name+"("+this.inputs.map((te=>te.format(D))).join(D===Ls.full?", ":",")+") ",te.trim()}static from(D){return"string"==typeof D?ErrorFragment.fromString(D):ErrorFragment.fromObject(D)}static fromObject(D){if(ErrorFragment.isErrorFragment(D))return D;"error"!==D.type&&Ms.throwArgumentError("invalid error object","value",D);const te={type:D.type,name:verifyIdentifier$1(D.name),inputs:D.inputs?D.inputs.map($s.fromObject):[]};return checkForbidden$1(new ErrorFragment(Bs,te))}static fromString(D){let te={type:"error"},he=D.match(Vs);return he||Ms.throwArgumentError("invalid error signature","value",D),te.name=he[1].trim(),te.name&&verifyIdentifier$1(te.name),te.inputs=parseParams$1(he[2],!1),checkForbidden$1(ErrorFragment.fromObject(te))}static isErrorFragment(D){return D&&D._isFragment&&"error"===D.type}};function verifyType$1(D){return D.match(/^uint($|[^1-9])/)?D="uint256"+D.substring(4):D.match(/^int($|[^1-9])/)&&(D="int256"+D.substring(3)),D}const Ws=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function verifyIdentifier$1(D){return D&&D.match(Ws)||Ms.throwArgumentError(`invalid identifier "${D}"`,"value",D),D}const Vs=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const Ks=new hi(Ns);function checkResultErrors$1(D){const te=[],checkErrors=function(D,he){if(Array.isArray(he))for(let ye in he){const be=D.slice();be.push(ye);try{checkErrors(be,he[ye])}catch(D){te.push({path:be,error:D})}}};return checkErrors([],D),te}let Js=class Coder{constructor(D,te,he,ye){this.name=D,this.type=te,this.localName=he,this.dynamic=ye}_throwError(D,te){Ks.throwArgumentError(D,this.localName,te)}},Xs=class Writer{constructor(D){defineReadOnly$1(this,"wordSize",D||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(D)}get data(){return hexConcat$1(this._data)}get length(){return this._dataLength}_writeData(D){return this._data.push(D),this._dataLength+=D.length,D.length}appendWriter(D){return this._writeData(concat$2(D._data))}writeBytes(D){let te=arrayify$1(D);const he=te.length%this.wordSize;return he&&(te=concat$2([te,this._padding.slice(he)])),this._writeData(te)}_getValue(D){let te=arrayify$1(Li.from(D));return te.length>this.wordSize&&Ks.throwError("value out-of-bounds",hi.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:te.length}),te.length%this.wordSize&&(te=concat$2([this._padding.slice(te.length%this.wordSize),te])),te}writeValue(D){return this._writeData(this._getValue(D))}writeUpdatableValue(){const D=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,te=>{this._data[D]=this._getValue(te)}}};const Qs=new hi("rlp/5.7.0");function arrayifyInteger$2(D){const te=[];for(;D;)te.unshift(255&D),D>>=8;return te}function unarrayifyInteger$1(D,te,he){let ye=0;for(let be=0;be<he;be++)ye=256*ye+D[te+be];return ye}function _encode$2(D){if(Array.isArray(D)){let te=[];if(D.forEach((function(D){te=te.concat(_encode$2(D))})),te.length<=55)return te.unshift(192+te.length),te;const he=arrayifyInteger$2(te.length);return he.unshift(247+he.length),he.concat(te)}isBytesLike$2(D)||Qs.throwArgumentError("RLP object must be BytesLike","object",D);const te=Array.prototype.slice.call(arrayify$1(D));if(1===te.length&&te[0]<=127)return te;if(te.length<=55)return te.unshift(128+te.length),te;const he=arrayifyInteger$2(te.length);return he.unshift(183+he.length),he.concat(te)}function encode$6(D){return hexlify$2(_encode$2(D))}function _decodeChildren$1(D,te,he,ye){const be=[];for(;he<te+1+ye;){const ve=_decode$2(D,he);be.push(ve.result),(he+=ve.consumed)>te+1+ye&&Qs.throwError("child data too short",hi.errors.BUFFER_OVERRUN,{})}return{consumed:1+ye,result:be}}function _decode$2(D,te){if(0===D.length&&Qs.throwError("data too short",hi.errors.BUFFER_OVERRUN,{}),D[te]>=248){const he=D[te]-247;te+1+he>D.length&&Qs.throwError("data short segment too short",hi.errors.BUFFER_OVERRUN,{});const ye=unarrayifyInteger$1(D,te+1,he);return te+1+he+ye>D.length&&Qs.throwError("data long segment too short",hi.errors.BUFFER_OVERRUN,{}),_decodeChildren$1(D,te,te+1+he,he+ye)}if(D[te]>=192){const he=D[te]-192;return te+1+he>D.length&&Qs.throwError("data array too short",hi.errors.BUFFER_OVERRUN,{}),_decodeChildren$1(D,te,te+1,he)}if(D[te]>=184){const he=D[te]-183;te+1+he>D.length&&Qs.throwError("data array too short",hi.errors.BUFFER_OVERRUN,{});const ye=unarrayifyInteger$1(D,te+1,he);te+1+he+ye>D.length&&Qs.throwError("data array too short",hi.errors.BUFFER_OVERRUN,{});return{consumed:1+he+ye,result:hexlify$2(D.slice(te+1+he,te+1+he+ye))}}if(D[te]>=128){const he=D[te]-128;te+1+he>D.length&&Qs.throwError("data too short",hi.errors.BUFFER_OVERRUN,{});return{consumed:1+he,result:hexlify$2(D.slice(te+1,te+1+he))}}return{consumed:1,result:hexlify$2(D[te])}}function decode$3(D){const te=arrayify$1(D),he=_decode$2(te,0);return he.consumed!==te.length&&Qs.throwArgumentError("invalid rlp data","data",D),he.result}var Zs=Object.freeze({__proto__:null,decode:decode$3,encode:encode$6});const Ys=new hi("address/5.7.0");function getChecksumAddress$2(D){isHexString$4(D,20)||Ys.throwArgumentError("invalid address","address",D);const te=(D=D.toLowerCase()).substring(2).split(""),he=new Uint8Array(40);for(let D=0;D<40;D++)he[D]=te[D].charCodeAt(0);const ye=arrayify$1(keccak256$3(he));for(let D=0;D<40;D+=2)ye[D>>1]>>4>=8&&(te[D]=te[D].toUpperCase()),(15&ye[D>>1])>=8&&(te[D+1]=te[D+1].toUpperCase());return"0x"+te.join("")}const eo={};for(let D=0;D<10;D++)eo[String(D)]=String(D);for(let D=0;D<26;D++)eo[String.fromCharCode(65+D)]=String(10+D);const to=Math.floor(function log10$1(D){return Math.log10?Math.log10(D):Math.log(D)/Math.LN10}(9007199254740991));function ibanChecksum$2(D){let te=(D=(D=D.toUpperCase()).substring(4)+D.substring(0,2)+"00").split("").map((D=>eo[D])).join("");for(;te.length>=to;){let D=te.substring(0,to);te=parseInt(D,10)%97+te.substring(D.length)}let he=String(98-parseInt(te,10)%97);for(;he.length<2;)he="0"+he;return he}function getAddress$2(D){let te=null;if("string"!=typeof D&&Ys.throwArgumentError("invalid address","address",D),D.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==D.substring(0,2)&&(D="0x"+D),te=getChecksumAddress$2(D),D.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&te!==D&&Ys.throwArgumentError("bad address checksum","address",D);else if(D.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(D.substring(2,4)!==ibanChecksum$2(D)&&Ys.throwArgumentError("bad icap checksum","address",D),te=function _base36To16$1(D){return new Ni(D,36).toString(16)}(D.substring(4));te.length<40;)te="0"+te;te=getChecksumAddress$2("0x"+te)}else Ys.throwArgumentError("invalid address","address",D);return te}function getContractAddress$1(D){let te=null;try{te=getAddress$2(D.from)}catch(te){Ys.throwArgumentError("missing from address","transaction",D)}return getAddress$2(hexDataSlice$1(keccak256$3(encode$6([te,stripZeros$1(arrayify$1(Li.from(D.nonce).toHexString()))])),12))}function getCreate2Address(D,te,he){return 32!==hexDataLength$1(te)&&Ys.throwArgumentError("salt must be 32 bytes","salt",te),32!==hexDataLength$1(he)&&Ys.throwArgumentError("initCodeHash must be 32 bytes","initCodeHash",he),getAddress$2(hexDataSlice$1(keccak256$3(concat$2(["0xff",getAddress$2(D),te,he])),12))}let ro=class AddressCoder extends Js{constructor(D){super("address","address",D,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(D,te){try{te=getAddress$2(te)}catch(D){this._throwError(D.message,te)}return D.writeValue(te)}decode(D){return getAddress$2(hexZeroPad$1(D.readValue().toHexString(),20))}},no=class AnonymousCoder extends Js{constructor(D){super(D.name,D.type,void 0,D.dynamic),this.coder=D}defaultValue(){return this.coder.defaultValue()}encode(D,te){return this.coder.encode(D,te)}decode(D){return this.coder.decode(D)}};const ao=new hi(Ns);function pack$3(D,te,he){let ye=null;if(Array.isArray(he))ye=he;else if(he&&"object"==typeof he){let D={};ye=te.map((te=>{const ye=te.localName;return ye||ao.throwError("cannot encode object for signature with missing names",hi.errors.INVALID_ARGUMENT,{argument:"values",coder:te,value:he}),D[ye]&&ao.throwError("cannot encode object for signature with duplicate names",hi.errors.INVALID_ARGUMENT,{argument:"values",coder:te,value:he}),D[ye]=!0,he[ye]}))}else ao.throwArgumentError("invalid tuple value","tuple",he);te.length!==ye.length&&ao.throwArgumentError("types/value length mismatch","tuple",he);let be=new Xs(D.wordSize),ve=new Xs(D.wordSize),we=[];te.forEach(((D,te)=>{let he=ye[te];if(D.dynamic){let te=ve.length;D.encode(ve,he);let ye=be.writeUpdatableValue();we.push((D=>{ye(D+te)}))}else D.encode(be,he)})),we.forEach((D=>{D(be.length)}));let _e=D.appendWriter(be);return _e+=D.appendWriter(ve),_e}function unpack$2(D,te){let he=[],ye=D.subReader(0);te.forEach((te=>{let be=null;if(te.dynamic){let he=D.readValue(),ve=ye.subReader(he.toNumber());try{be=te.decode(ve)}catch(D){if(D.code===hi.errors.BUFFER_OVERRUN)throw D;be=D,be.baseType=te.name,be.name=te.localName,be.type=te.type}}else try{be=te.decode(D)}catch(D){if(D.code===hi.errors.BUFFER_OVERRUN)throw D;be=D,be.baseType=te.name,be.name=te.localName,be.type=te.type}null!=be&&he.push(be)}));const be=te.reduce(((D,te)=>{const he=te.localName;return he&&(D[he]||(D[he]=0),D[he]++),D}),{});te.forEach(((D,te)=>{let ye=D.localName;if(!ye||1!==be[ye])return;if("length"===ye&&(ye="_length"),null!=he[ye])return;const ve=he[te];ve instanceof Error?Object.defineProperty(he,ye,{enumerable:!0,get:()=>{throw ve}}):he[ye]=ve}));for(let D=0;D<he.length;D++){const te=he[D];te instanceof Error&&Object.defineProperty(he,D,{enumerable:!0,get:()=>{throw te}})}return Object.freeze(he)}let io=class ArrayCoder extends Js{constructor(D,te,he){super("array",D.type+"["+(te>=0?te:"")+"]",he,-1===te||D.dynamic),this.coder=D,this.length=te}defaultValue(){const D=this.coder.defaultValue(),te=[];for(let he=0;he<this.length;he++)te.push(D);return te}encode(D,te){Array.isArray(te)||this._throwError("expected array value",te);let he=this.length;-1===he&&(he=te.length,D.writeValue(te.length)),ao.checkArgumentCount(te.length,he,"coder array"+(this.localName?" "+this.localName:""));let ye=[];for(let D=0;D<te.length;D++)ye.push(this.coder);return pack$3(D,ye,te)}decode(D){let te=this.length;-1===te&&(te=D.readValue().toNumber(),32*te>D._data.length&&ao.throwError("insufficient data length",hi.errors.BUFFER_OVERRUN,{length:D._data.length,count:te}));let he=[];for(let D=0;D<te;D++)he.push(new no(this.coder));return D.coerce(this.name,unpack$2(D,he))}},so=class BooleanCoder extends Js{constructor(D){super("bool","bool",D,!1)}defaultValue(){return!1}encode(D,te){return D.writeValue(te?1:0)}decode(D){return D.coerce(this.type,!D.readValue().isZero())}},oo=class DynamicBytesCoder extends Js{constructor(D,te){super(D,D,te,!0)}defaultValue(){return"0x"}encode(D,te){te=arrayify$1(te);let he=D.writeValue(te.length);return he+=D.writeBytes(te),he}decode(D){return D.readBytes(D.readValue().toNumber(),!0)}},co=class BytesCoder extends oo{constructor(D){super("bytes",D)}decode(D){return D.coerce(this.name,hexlify$2(super.decode(D)))}},uo=class FixedBytesCoder extends Js{constructor(D,te){let he="bytes"+String(D);super(he,he,te,!1),this.size=D}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(D,te){let he=arrayify$1(te);return he.length!==this.size&&this._throwError("incorrect data length",te),D.writeBytes(he)}decode(D){return D.coerce(this.name,hexlify$2(D.readBytes(this.size)))}},fo=class NullCoder extends Js{constructor(D){super("null","",D,!1)}defaultValue(){return null}encode(D,te){return null!=te&&this._throwError("not null",te),D.writeBytes([])}decode(D){return D.readBytes(0),D.coerce(this.name,null)}},lo=class NumberCoder extends Js{constructor(D,te,he){const ye=(te?"int":"uint")+8*D;super(ye,ye,he,!1),this.size=D,this.signed=te}defaultValue(){return 0}encode(D,te){let he=Li.from(te),ye=Xi.mask(8*D.wordSize);if(this.signed){let D=ye.mask(8*this.size-1);(he.gt(D)||he.lt(D.add(Ki).mul(Wi)))&&this._throwError("value out-of-bounds",te)}else(he.lt(Vi)||he.gt(ye.mask(8*this.size)))&&this._throwError("value out-of-bounds",te);return he=he.toTwos(8*this.size).mask(8*this.size),this.signed&&(he=he.fromTwos(8*this.size).toTwos(8*D.wordSize)),D.writeValue(he)}decode(D){let te=D.readValue().mask(8*this.size);return this.signed&&(te=te.fromTwos(8*this.size)),D.coerce(this.name,te)}},po=class StringCoder extends oo{constructor(D){super("string",D)}defaultValue(){return""}encode(D,te){return super.encode(D,toUtf8Bytes$2(te))}decode(D){return toUtf8String$2(super.decode(D))}},ho=class TupleCoder extends Js{constructor(D,te){let he=!1;const ye=[];D.forEach((D=>{D.dynamic&&(he=!0),ye.push(D.type)}));super("tuple","tuple("+ye.join(",")+")",te,he),this.coders=D}defaultValue(){const D=[];this.coders.forEach((te=>{D.push(te.defaultValue())}));const te=this.coders.reduce(((D,te)=>{const he=te.localName;return he&&(D[he]||(D[he]=0),D[he]++),D}),{});return this.coders.forEach(((he,ye)=>{let be=he.localName;be&&1===te[be]&&("length"===be&&(be="_length"),null==D[be]&&(D[be]=D[ye]))})),Object.freeze(D)}encode(D,te){return pack$3(D,this.coders,te)}decode(D){return D.coerce(this.name,unpack$2(D,this.coders))}};const yo=new hi(Ns),mo=new RegExp(/^bytes([0-9]*)$/),bo=new RegExp(/^(u?int)([0-9]*)$/);let go=class AbiCoder{constructor(D){defineReadOnly$1(this,"coerceFunc",D||null)}_getCoder(D){switch(D.baseType){case"address":return new ro(D.name);case"bool":return new so(D.name);case"string":return new po(D.name);case"bytes":return new co(D.name);case"array":return new io(this._getCoder(D.arrayChildren),D.arrayLength,D.name);case"tuple":return new ho((D.components||[]).map((D=>this._getCoder(D))),D.name);case"":return new fo(D.name)}let te=D.type.match(bo);if(te){let he=parseInt(te[2]||"256");return(0===he||he>256||he%8!=0)&&yo.throwArgumentError("invalid "+te[1]+" bit length","param",D),new lo(he/8,"int"===te[1],D.name)}if(te=D.type.match(mo),te){let he=parseInt(te[1]);return(0===he||he>32)&&yo.throwArgumentError("invalid bytes length","param",D),new uo(he,D.name)}return yo.throwArgumentError("invalid type","type",D.type)}_getWordSize(){return 32}_getReader(D,te){return new class Reader{constructor(D,te,he,ye){defineReadOnly$1(this,"_data",arrayify$1(D)),defineReadOnly$1(this,"wordSize",te||32),defineReadOnly$1(this,"_coerceFunc",he),defineReadOnly$1(this,"allowLoose",ye),this._offset=0}get data(){return hexlify$2(this._data)}get consumed(){return this._offset}static coerce(D,te){let he=D.match("^u?int([0-9]+)$");return he&&parseInt(he[1])<=48&&(te=te.toNumber()),te}coerce(D,te){return this._coerceFunc?this._coerceFunc(D,te):Reader.coerce(D,te)}_peekBytes(D,te,he){let ye=Math.ceil(te/this.wordSize)*this.wordSize;return this._offset+ye>this._data.length&&(this.allowLoose&&he&&this._offset+te<=this._data.length?ye=te:Ks.throwError("data out-of-bounds",hi.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+ye})),this._data.slice(this._offset,this._offset+ye)}subReader(D){return new Reader(this._data.slice(this._offset+D),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(D,te){let he=this._peekBytes(0,D,!!te);return this._offset+=he.length,he.slice(0,D)}readValue(){return Li.from(this.readBytes(this.wordSize))}}(D,this._getWordSize(),this.coerceFunc,te)}_getWriter(){return new Xs(this._getWordSize())}getDefaultValue(D){const te=D.map((D=>this._getCoder($s.from(D))));return new ho(te,"_").defaultValue()}encode(D,te){D.length!==te.length&&yo.throwError("types/values length mismatch",hi.errors.INVALID_ARGUMENT,{count:{types:D.length,values:te.length},value:{types:D,values:te}});const he=D.map((D=>this._getCoder($s.from(D)))),ye=new ho(he,"_"),be=this._getWriter();return ye.encode(be,te),be.data}decode(D,te,he){const ye=D.map((D=>this._getCoder($s.from(D))));return new ho(ye,"_").decode(this._getReader(arrayify$1(te),he))}};const vo=new go;function id$3(D){return keccak256$3(toUtf8Bytes$2(D))}const wo="hash/5.7.0";function decode$2(D){D=atob(D);const te=[];for(let he=0;he<D.length;he++)te.push(D.charCodeAt(he));return arrayify$1(te)}function encode$5(D){D=arrayify$1(D);let te="";for(let he=0;he<D.length;he++)te+=String.fromCharCode(D[he]);return btoa(te)}var _o=Object.freeze({__proto__:null,decode:decode$2,encode:encode$5});function flat(D,te){null==te&&(te=1);const he=[],ye=he.forEach,flatDeep=function(D,te){ye.call(D,(function(D){te>0&&Array.isArray(D)?flatDeep(D,te-1):he.push(D)}))};return flatDeep(D,te),he}function read_compressed_payload$1(D){return function read_payload$1(D){let te=0;return()=>D[te++]}(function decode_arithmetic$1(D){let te=0;function u16(){return D[te++]<<8|D[te++]}let he=u16(),ye=1,be=[0,1];for(let D=1;D<he;D++)be.push(ye+=u16());let ve=u16(),we=te;te+=ve;let _e=0,Pe=0;function read_bit(){return 0==_e&&(Pe=Pe<<8|D[te++],_e=8),Pe>>--_e&1}const Ie=Math.pow(2,31),Re=Ie>>>1,ke=Re>>1,Oe=Ie-1;let xe=0;for(let D=0;D<31;D++)xe=xe<<1|read_bit();let Be=[],Fe=0,De=Ie;for(;;){let D=Math.floor(((xe-Fe+1)*ye-1)/De),te=0,ve=he;for(;ve-te>1;){let he=te+ve>>>1;D<be[he]?ve=he:te=he}if(0==te)break;Be.push(te);let we=Fe+Math.floor(De*be[te]/ye),_e=Fe+Math.floor(De*be[te+1]/ye)-1;for(;0==((we^_e)&Re);)xe=xe<<1&Oe|read_bit(),we=we<<1&Oe,_e=_e<<1&Oe|1;for(;we&~_e&ke;)xe=xe&Re|xe<<1&Oe>>>1|read_bit(),we=we<<1^Re,_e=(_e^Re)<<1|Re|1;Fe=we,De=1+_e-we}let Le=he-4;return Be.map((te=>{switch(te-Le){case 3:return Le+65792+(D[we++]<<16|D[we++]<<8|D[we++]);case 2:return Le+256+(D[we++]<<8|D[we++]);case 1:return Le+D[we++];default:return te-1}}))}(D))}function signed$1(D){return 1&D?~D>>1:D>>1}function read_ascending(D,te){let he=Array(D);for(let ye=0,be=-1;ye<D;ye++)he[ye]=be+=1+te();return he}function read_deltas$1(D,te){let he=Array(D);for(let ye=0,be=0;ye<D;ye++)he[ye]=be+=signed$1(te());return he}function read_member_array(D,te){let he=read_ascending(D(),D),ye=D(),be=read_ascending(ye,D),ve=function read_counts(D,te){let he=Array(D);for(let ye=0;ye<D;ye++)he[ye]=1+te();return he}(ye,D);for(let D=0;D<ye;D++)for(let te=0;te<ve[D];te++)he.push(be[D]+te);return te?he.map((D=>te[D])):he}function read_transposed$1(D,te,he){let ye=Array(D).fill(void 0).map((()=>[]));for(let be=0;be<te;be++)read_deltas$1(D,he).forEach(((D,te)=>ye[te].push(D)));return ye}function read_linear_table$1(D,te){let he=1+te(),ye=te(),be=function read_zero_terminated_array(D){let te=[];for(;;){let he=D();if(0==he)break;te.push(he)}return te}(te);return flat(read_transposed$1(be.length,1+D,te).map(((D,te)=>{const ve=D[0],we=D.slice(1);return Array(be[te]).fill(void 0).map(((D,te)=>{let be=te*ye;return[ve+te*he,we.map((D=>D+be))]}))})))}function read_replacement_table$1(D,te){return read_transposed$1(1+te(),1+D,te).map((D=>[D[0],D.slice(1)]))}const To=function getData(){return read_compressed_payload$1(decode$2("AEQF2AO2DEsA2wIrAGsBRABxAN8AZwCcAEwAqgA0AGwAUgByADcATAAVAFYAIQAyACEAKAAYAFgAGwAjABQAMAAmADIAFAAfABQAKwATACoADgAbAA8AHQAYABoAGQAxADgALAAoADwAEwA9ABMAGgARAA4ADwAWABMAFgAIAA8AHgQXBYMA5BHJAS8JtAYoAe4AExozi0UAH21tAaMnBT8CrnIyhrMDhRgDygIBUAEHcoFHUPe8AXBjAewCjgDQR8IICIcEcQLwATXCDgzvHwBmBoHNAqsBdBcUAykgDhAMShskMgo8AY8jqAQfAUAfHw8BDw87MioGlCIPBwZCa4ELatMAAMspJVgsDl8AIhckSg8XAHdvTwBcIQEiDT4OPhUqbyECAEoAS34Aej8Ybx83JgT/Xw8gHxZ/7w8RICxPHA9vBw+Pfw8PHwAPFv+fAsAvCc8vEr8ivwD/EQ8Bol8OEBa/A78hrwAPCU8vESNvvwWfHwNfAVoDHr+ZAAED34YaAdJPAK7PLwSEgDLHAGo1Pz8Pvx9fUwMrpb8O/58VTzAPIBoXIyQJNF8hpwIVAT8YGAUADDNBaX3RAMomJCg9EhUeA29MABsZBTMNJipjOhc19gcIDR8bBwQHEggCWi6DIgLuAQYA+BAFCha3A5XiAEsqM7UFFgFLhAMjFTMYE1Klnw74nRVBG/ASCm0BYRN/BrsU3VoWy+S0vV8LQx+vN8gF2AC2AK5EAWwApgYDKmAAroQ0NDQ0AT+OCg7wAAIHRAbpNgVcBV0APTA5BfbPFgMLzcYL/QqqA82eBALKCjQCjqYCht0/k2+OAsXQAoP3ASTKDgDw6ACKAUYCMpIKJpRaAE4A5womABzZvs0REEKiACIQAd5QdAECAj4Ywg/wGqY2AVgAYADYvAoCGAEubA0gvAY2ALAAbpbvqpyEAGAEpgQAJgAG7gAgAEACmghUFwCqAMpAINQIwC4DthRAAPcycKgApoIdABwBfCisABoATwBqASIAvhnSBP8aH/ECeAKXAq40NjgDBTwFYQU6AXs3oABgAD4XNgmcCY1eCl5tIFZeUqGgyoNHABgAEQAaABNwWQAmABMATPMa3T34ADldyprmM1M2XociUQgLzvwAXT3xABgAEQAaABNwIGFAnADD8AAgAD4BBJWzaCcIAIEBFMAWwKoAAdq9BWAF5wLQpALEtQAKUSGkahR4GnJM+gsAwCgeFAiUAECQ0BQuL8AAIAAAADKeIheclvFqQAAETr4iAMxIARMgAMIoHhQIAn0E0pDQFC4HhznoAAAAIAI2C0/4lvFqQAAETgBJJwYCAy4ABgYAFAA8MBKYEH4eRhTkAjYeFcgACAYAeABsOqyQ5gRwDayqugEgaIIAtgoACgDmEABmBAWGme5OBJJA2m4cDeoAmITWAXwrMgOgAGwBCh6CBXYF1Tzg1wKAAFdiuABRAFwAXQBsAG8AdgBrAHYAbwCEAHEwfxQBVE5TEQADVFhTBwBDANILAqcCzgLTApQCrQL6vAAMAL8APLhNBKkE6glGKTAU4Dr4N2EYEwBCkABKk8rHAbYBmwIoAiU4Ajf/Aq4CowCAANIChzgaNBsCsTgeODcFXrgClQKdAqQBiQGYAqsCsjTsNHsfNPA0ixsAWTWiOAMFPDQSNCk2BDZHNow2TTZUNhk28Jk9VzI3QkEoAoICoQKwAqcAQAAxBV4FXbS9BW47YkIXP1ciUqs05DS/FwABUwJW11e6nHuYZmSh/RAYA8oMKvZ8KASoUAJYWAJ6ILAsAZSoqjpgA0ocBIhmDgDWAAawRDQoAAcuAj5iAHABZiR2AIgiHgCaAU68ACxuHAG0ygM8MiZIAlgBdF4GagJqAPZOHAMuBgoATkYAsABiAHgAMLoGDPj0HpKEBAAOJgAuALggTAHWAeAMEDbd20Uege0ADwAWADkAQgA9OHd+2MUQZBBhBgNNDkxxPxUQArEPqwvqERoM1irQ090ANK4H8ANYB/ADWANYB/AH8ANYB/ADWANYA1gDWBwP8B/YxRBkD00EcgWTBZAE2wiIJk4RhgctCNdUEnQjHEwDSgEBIypJITuYMxAlR0wRTQgIATZHbKx9PQNMMbBU+pCnA9AyVDlxBgMedhKlAC8PeCE1uk6DekxxpQpQT7NX9wBFBgASqwAS5gBJDSgAUCwGPQBI4zTYABNGAE2bAE3KAExdGABKaAbgAFBXAFCOAFBJABI2SWdObALDOq0//QomCZhvwHdTBkIQHCemEPgMNAG2ATwN7kvZBPIGPATKH34ZGg/OlZ0Ipi3eDO4m5C6igFsj9iqEBe5L9TzeC05RaQ9aC2YJ5DpkgU8DIgEOIowK3g06CG4Q9ArKbA3mEUYHOgPWSZsApgcCCxIdNhW2JhFirQsKOXgG/Br3C5AmsBMqev0F1BoiBk4BKhsAANAu6IWxWjJcHU9gBgQLJiPIFKlQIQ0mQLh4SRocBxYlqgKSQ3FKiFE3HpQh9zw+DWcuFFF9B/Y8BhlQC4I8n0asRQ8R0z6OPUkiSkwtBDaALDAnjAnQD4YMunxzAVoJIgmyDHITMhEYN8YIOgcaLpclJxYIIkaWYJsE+KAD9BPSAwwFQAlCBxQDthwuEy8VKgUOgSXYAvQ21i60ApBWgQEYBcwPJh/gEFFH4Q7qCJwCZgOEJewALhUiABginAhEZABgj9lTBi7MCMhqbSN1A2gU6GIRdAeSDlgHqBw0FcAc4nDJXgyGCSiksAlcAXYJmgFgBOQICjVcjKEgQmdUi1kYnCBiQUBd/QIyDGYVoES+h3kCjA9sEhwBNgF0BzoNAgJ4Ee4RbBCWCOyGBTW2M/k6JgRQIYQgEgooA1BszwsoJvoM+WoBpBJjAw00PnfvZ6xgtyUX/gcaMsZBYSHyC5NPzgydGsIYQ1QvGeUHwAP0GvQn60FYBgADpAQUOk4z7wS+C2oIjAlAAEoOpBgH2BhrCnKM0QEyjAG4mgNYkoQCcJAGOAcMAGgMiAV65gAeAqgIpAAGANADWAA6Aq4HngAaAIZCAT4DKDABIuYCkAOUCDLMAZYwAfQqBBzEDBYA+DhuSwLDsgKAa2ajBd5ZAo8CSjYBTiYEBk9IUgOwcuIA3ABMBhTgSAEWrEvMG+REAeBwLADIAPwABjYHBkIBzgH0bgC4AWALMgmjtLYBTuoqAIQAFmwB2AKKAN4ANgCA8gFUAE4FWvoF1AJQSgESMhksWGIBvAMgATQBDgB6BsyOpsoIIARuB9QCEBwV4gLvLwe2AgMi4BPOQsYCvd9WADIXUu5eZwqoCqdeaAC0YTQHMnM9UQAPH6k+yAdy/BZIiQImSwBQ5gBQQzSaNTFWSTYBpwGqKQK38AFtqwBI/wK37gK3rQK3sAK6280C0gK33AK3zxAAUEIAUD9SklKDArekArw5AEQAzAHCO147WTteO1k7XjtZO147WTteO1kDmChYI03AVU0oJqkKbV9GYewMpw3VRMk6ShPcYFJgMxPJLbgUwhXPJVcZPhq9JwYl5VUKDwUt1GYxCC00dhe9AEApaYNCY4ceMQpMHOhTklT5LRwAskujM7ANrRsWREEFSHXuYisWDwojAmSCAmJDXE6wXDchAqH4AmiZAmYKAp+FOBwMAmY8AmYnBG8EgAN/FAN+kzkHOXgYOYM6JCQCbB4CMjc4CwJtyAJtr/CLADRoRiwBaADfAOIASwYHmQyOAP8MwwAOtgJ3MAJ2o0ACeUxEAni7Hl3cRa9G9AJ8QAJ6yQJ9CgJ88UgBSH5kJQAsFklZSlwWGErNAtECAtDNSygDiFADh+dExpEzAvKiXQQDA69Lz0wuJgTQTU1NsAKLQAKK2cIcCB5EaAa4Ao44Ao5dQZiCAo7aAo5deVG1UzYLUtVUhgKT/AKTDQDqAB1VH1WwVdEHLBwplocy4nhnRTw6ApegAu+zWCKpAFomApaQApZ9nQCqWa1aCoJOADwClrYClk9cRVzSApnMApllXMtdCBoCnJw5wzqeApwXAp+cAp65iwAeEDIrEAKd8gKekwC2PmE1YfACntQCoG8BqgKeoCACnk+mY8lkKCYsAiewAiZ/AqD8AqBN2AKmMAKlzwKoAAB+AqfzaH1osgAESmodatICrOQCrK8CrWgCrQMCVx4CVd0CseLYAx9PbJgCsr4OArLpGGzhbWRtSWADJc4Ctl08QG6RAylGArhfArlIFgK5K3hwN3DiAr0aAy2zAzISAr6JcgMDM3ICvhtzI3NQAsPMAsMFc4N0TDZGdOEDPKgDPJsDPcACxX0CxkgCxhGKAshqUgLIRQLJUALJLwJkngLd03h6YniveSZL0QMYpGcDAmH1GfSVJXsMXpNevBICz2wCz20wTFTT9BSgAMeuAs90ASrrA04TfkwGAtwoAtuLAtJQA1JdA1NgAQIDVY2AikABzBfuYUZ2AILPg44C2sgC2d+EEYRKpz0DhqYAMANkD4ZyWvoAVgLfZgLeuXR4AuIw7RUB8zEoAfScAfLTiALr9ALpcXoAAur6AurlAPpIAboC7ooC652Wq5cEAu5AA4XhmHpw4XGiAvMEAGoDjheZlAL3FAORbwOSiAL3mQL52gL4Z5odmqy8OJsfA52EAv77ARwAOp8dn7QDBY4DpmsDptoA0sYDBmuhiaIGCgMMSgFgASACtgNGAJwEgLpoBgC8BGzAEowcggCEDC6kdjoAJAM0C5IKRoABZCgiAIzw3AYBLACkfng9ogigkgNmWAN6AEQCvrkEVqTGAwCsBRbAA+4iQkMCHR072jI2PTbUNsk2RjY5NvA23TZKNiU3EDcZN5I+RTxDRTBCJkK5VBYKFhZfwQCWygU3AJBRHpu+OytgNxa61A40GMsYjsn7BVwFXQVcBV0FaAVdBVwFXQVcBV0FXAVdBVwFXUsaCNyKAK4AAQUHBwKU7oICoW1e7jAEzgPxA+YDwgCkBFDAwADABKzAAOxFLhitA1UFTDeyPkM+bj51QkRCuwTQWWQ8X+0AWBYzsACNA8xwzAGm7EZ/QisoCTAbLDs6fnLfb8H2GccsbgFw13M1HAVkBW/Jxsm9CNRO8E8FDD0FBQw9FkcClOYCoMFegpDfADgcMiA2AJQACB8AsigKAIzIEAJKeBIApY5yPZQIAKQiHb4fvj5BKSRPQrZCOz0oXyxgOywfKAnGbgMClQaCAkILXgdeCD9IIGUgQj5fPoY+dT52Ao5CM0dAX9BTVG9SDzFwWTQAbxBzJF/lOEIQQglCCkKJIAls5AcClQICoKPMODEFxhi6KSAbiyfIRrMjtCgdWCAkPlFBIitCsEJRzAbMAV/OEyQzDg0OAQQEJ36i328/Mk9AybDJsQlq3tDRApUKAkFzXf1d/j9uALYP6hCoFgCTGD8kPsFKQiobrm0+zj0KSD8kPnVCRBwMDyJRTHFgMTJa5rwXQiQ2YfI/JD7BMEJEHGINTw4TOFlIRzwJO0icMQpyPyQ+wzJCRBv6DVgnKB01NgUKj2bwYzMqCoBkznBgEF+zYDIocwRIX+NgHj4HICNfh2C4CwdwFWpTG/lgUhYGAwRfv2Ts8mAaXzVgml/XYIJfuWC4HI1gUF9pYJZgMR6ilQHMAOwLAlDRefC0in4AXAEJA6PjCwc0IamOANMMCAECRQDFNRTZBgd+CwQlRA+r6+gLBDEFBnwUBXgKATIArwAGRAAHA3cDdAN2A3kDdwN9A3oDdQN7A30DfAN4A3oDfQAYEAAlAtYASwMAUAFsAHcKAHcAmgB3AHUAdQB2AHVu8UgAygDAAHcAdQB1AHYAdQALCgB3AAsAmgB3AAsCOwB3AAtu8UgAygDAAHgKAJoAdwB3AHUAdQB2AHUAeAB1AHUAdgB1bvFIAMoAwAALCgCaAHcACwB3AAsCOwB3AAtu8UgAygDAAH4ACwGgALcBpwC6AahdAu0COwLtbvFIAMoAwAALCgCaAu0ACwLtAAsCOwLtAAtu8UgAygDAA24ACwNvAAu0VsQAAzsAABCkjUIpAAsAUIusOggWcgMeBxVsGwL67U/2HlzmWOEeOgALASvuAAseAfpKUpnpGgYJDCIZM6YyARUE9ThqAD5iXQgnAJYJPnOzw0ZAEZxEKsIAkA4DhAHnTAIDxxUDK0lxCQlPYgIvIQVYJQBVqE1GakUAKGYiDToSBA1EtAYAXQJYAIF8GgMHRyAAIAjOe9YncekRAA0KACUrjwE7Ayc6AAYWAqaiKG4McEcqANoN3+Mg9TwCBhIkuCny+JwUQ29L008JluRxu3K+oAdqiHOqFH0AG5SUIfUJ5SxCGfxdipRzqTmT4V5Zb+r1Uo4Vm+NqSSEl2mNvR2JhIa8SpYO6ntdwFXHCWTCK8f2+Hxo7uiG3drDycAuKIMP5bhi06ACnqArH1rz4Rqg//lm6SgJGEVbF9xJHISaR6HxqxSnkw6shDnelHKNEfGUXSJRJ1GcsmtJw25xrZMDK9gXSm1/YMkdX4/6NKYOdtk/NQ3/NnDASjTc3fPjIjW/5sVfVObX2oTDWkr1dF9f3kxBsD3/3aQO8hPfRz+e0uEiJqt1161griu7gz8hDDwtpy+F+BWtefnKHZPAxcZoWbnznhJpy0e842j36bcNzGnIEusgGX0a8ZxsnjcSsPDZ09yZ36fCQbriHeQ72JRMILNl6ePPf2HWoVwgWAm1fb3V2sAY0+B6rAXqSwPBgseVmoqsBTSrm91+XasMYYySI8eeRxH3ZvHkMz3BQ5aJ3iUVbYPNM3/7emRtjlsMgv/9VyTsyt/mK+8fgWeT6SoFaclXqn42dAIsvAarF5vNNWHzKSkKQ/8Hfk5ZWK7r9yliOsooyBjRhfkHP4Q2DkWXQi6FG/9r/IwbmkV5T7JSopHKn1pJwm9tb5Ot0oyN1Z2mPpKXHTxx2nlK08fKk1hEYA8WgVVWL5lgx0iTv+KdojJeU23ZDjmiubXOxVXJKKi2Wjuh2HLZOFLiSC7Tls5SMh4f+Pj6xUSrNjFqLGehRNB8lC0QSLNmkJJx/wSG3MnjE9T1CkPwJI0wH2lfzwETIiVqUxg0dfu5q39Gt+hwdcxkhhNvQ4TyrBceof3Mhs/IxFci1HmHr4FMZgXEEczPiGCx0HRwzAqDq2j9AVm1kwN0mRVLWLylgtoPNapF5cY4Y1wJh/e0BBwZj44YgZrDNqvD/9Hv7GFYdUQeDJuQ3EWI4HaKqavU1XjC/n41kT4L79kqGq0kLhdTZvgP3TA3fS0ozVz+5piZsoOtIvBUFoMKbNcmBL6YxxaUAusHB38XrS8dQMnQwJfUUkpRoGr5AUeWicvBTzyK9g77+yCkf5PAysL7r/JjcZgrbvRpMW9iyaxZvKO6ceZN2EwIxKwVFPuvFuiEPGCoagbMo+SpydLrXqBzNCDGFCrO/rkcwa2xhokQZ5CdZ0AsU3JfSqJ6n5I14YA+P/uAgfhPU84Tlw7cEFfp7AEE8ey4sP12PTt4Cods1GRgDOB5xvyiR5m+Bx8O5nBCNctU8BevfV5A08x6RHd5jcwPTMDSZJOedIZ1cGQ704lxbAzqZOP05ZxaOghzSdvFBHYqomATARyAADK4elP8Ly3IrUZKfWh23Xy20uBUmLS4Pfagu9+oyVa2iPgqRP3F2CTUsvJ7+RYnN8fFZbU/HVvxvcFFDKkiTqV5UBZ3Gz54JAKByi9hkKMZJvuGgcSYXFmw08UyoQyVdfTD1/dMkCHXcTGAKeROgArsvmRrQTLUOXioOHGK2QkjHuoYFgXciZoTJd6Fs5q1QX1G+p/e26hYsEf7QZD1nnIyl/SFkNtYYmmBhpBrxl9WbY0YpHWRuw2Ll/tj9mD8P4snVzJl4F9J+1arVeTb9E5r2ILH04qStjxQNwn3m4YNqxmaNbLAqW2TN6LidwuJRqS+NXbtqxoeDXpxeGWmxzSkWxjkyCkX4NQRme6q5SAcC+M7+9ETfA/EwrzQajKakCwYyeunP6ZFlxU2oMEn1Pz31zeStW74G406ZJFCl1wAXIoUKkWotYEpOuXB1uVNxJ63dpJEqfxBeptwIHNrPz8BllZoIcBoXwgfJ+8VAUnVPvRvexnw0Ma/WiGYuJO5y8QTvEYBigFmhUxY5RqzE8OcywN/8m4UYrlaniJO75XQ6KSo9+tWHlu+hMi0UVdiKQp7NelnoZUzNaIyBPVeOwK6GNp+FfHuPOoyhaWuNvTYFkvxscMQWDh+zeFCFkgwbXftiV23ywJ4+uwRqmg9k3KzwIQpzppt8DBBOMbrqwQM5Gb05sEwdKzMiAqOloaA/lr0KA+1pr0/+HiWoiIjHA/wir2nIuS3PeU/ji3O6ZwoxcR1SZ9FhtLC5S0FIzFhbBWcGVP/KpxOPSiUoAdWUpqKH++6Scz507iCcxYI6rdMBICPJZea7OcmeFw5mObJSiqpjg2UoWNIs+cFhyDSt6geV5qgi3FunmwwDoGSMgerFOZGX1m0dMCYo5XOruxO063dwENK9DbnVM9wYFREzh4vyU1WYYJ/LRRp6oxgjqP/X5a8/4Af6p6NWkQferzBmXme0zY/4nwMJm/wd1tIqSwGz+E3xPEAOoZlJit3XddD7/BT1pllzOx+8bmQtANQ/S6fZexc6qi3W+Q2xcmXTUhuS5mpHQRvcxZUN0S5+PL9lXWUAaRZhEH8hTdAcuNMMCuVNKTEGtSUKNi3O6KhSaTzck8csZ2vWRZ+d7mW8c4IKwXIYd25S/zIftPkwPzufjEvOHWVD1m+FjpDVUTV0DGDuHj6QnaEwLu/dEgdLQOg9E1Sro9XHJ8ykLAwtPu+pxqKDuFexqON1sKQm7rwbE1E68UCfA/erovrTCG+DBSNg0l4goDQvZN6uNlbyLpcZAwj2UclycvLpIZMgv4yRlpb3YuMftozorbcGVHt/VeDV3+Fdf1TP0iuaCsPi2G4XeGhsyF1ubVDxkoJhmniQ0/jSg/eYML9KLfnCFgISWkp91eauR3IQvED0nAPXK+6hPCYs+n3+hCZbiskmVMG2da+0EsZPonUeIY8EbfusQXjsK/eFDaosbPjEfQS0RKG7yj5GG69M7MeO1HmiUYocgygJHL6M1qzUDDwUSmr99V7Sdr2F3JjQAJY+F0yH33Iv3+C9M38eML7gTgmNu/r2bUMiPvpYbZ6v1/IaESirBHNa7mPKn4dEmYg7v/+HQgPN1G79jBQ1+soydfDC2r+h2Bl/KIc5KjMK7OH6nb1jLsNf0EHVe2KBiE51ox636uyG6Lho0t3J34L5QY/ilE3mikaF4HKXG1mG1rCevT1Vv6GavltxoQe/bMrpZvRggnBxSEPEeEzkEdOxTnPXHVjUYdw8JYvjB/o7Eegc3Ma+NUxLLnsK0kJlinPmUHzHGtrk5+CAbVzFOBqpyy3QVUnzTDfC/0XD94/okH+OB+i7g9lolhWIjSnfIb+Eq43ZXOWmwvjyV/qqD+t0e+7mTEM74qP/Ozt8nmC7mRpyu63OB4KnUzFc074SqoyPUAgM+/TJGFo6T44EHnQU4X4z6qannVqgw/U7zCpwcmXV1AubIrvOmkKHazJAR55ePjp5tLBsN8vAqs3NAHdcEHOR2xQ0lsNAFzSUuxFQCFYvXLZJdOj9p4fNq6p0HBGUik2YzaI4xySy91KzhQ0+q1hjxvImRwPRf76tChlRkhRCi74NXZ9qUNeIwP+s5p+3m5nwPdNOHgSLD79n7O9m1n1uDHiMntq4nkYwV5OZ1ENbXxFd4PgrlvavZsyUO4MqYlqqn1O8W/I1dEZq5dXhrbETLaZIbC2Kj/Aa/QM+fqUOHdf0tXAQ1huZ3cmWECWSXy/43j35+Mvq9xws7JKseriZ1pEWKc8qlzNrGPUGcVgOa9cPJYIJsGnJTAUsEcDOEVULO5x0rXBijc1lgXEzQQKhROf8zIV82w8eswc78YX11KYLWQRcgHNJElBxfXr72lS2RBSl07qTKorO2uUDZr3sFhYsvnhLZn0A94KRzJ/7DEGIAhW5ZWFpL8gEwu1aLA9MuWZzNwl8Oze9Y+bX+v9gywRVnoB5I/8kXTXU3141yRLYrIOOz6SOnyHNy4SieqzkBXharjfjqq1q6tklaEbA8Qfm2DaIPs7OTq/nvJBjKfO2H9bH2cCMh1+5gspfycu8f/cuuRmtDjyqZ7uCIMyjdV3a+p3fqmXsRx4C8lujezIFHnQiVTXLXuI1XrwN3+siYYj2HHTvESUx8DlOTXpak9qFRK+L3mgJ1WsD7F4cu1aJoFoYQnu+wGDMOjJM3kiBQWHCcvhJ/HRdxodOQp45YZaOTA22Nb4XKCVxqkbwMYFhzYQYIAnCW8FW14uf98jhUG2zrKhQQ0q0CEq0t5nXyvUyvR8DvD69LU+g3i+HFWQMQ8PqZuHD+sNKAV0+M6EJC0szq7rEr7B5bQ8BcNHzvDMc9eqB5ZCQdTf80Obn4uzjwpYU7SISdtV0QGa9D3Wrh2BDQtpBKxaNFV+/Cy2P/Sv+8s7Ud0Fd74X4+o/TNztWgETUapy+majNQ68Lq3ee0ZO48VEbTZYiH1Co4OlfWef82RWeyUXo7woM03PyapGfikTnQinoNq5z5veLpeMV3HCAMTaZmA1oGLAn7XS3XYsz+XK7VMQsc4XKrmDXOLU/pSXVNUq8dIqTba///3x6LiLS6xs1xuCAYSfcQ3+rQgmu7uvf3THKt5Ooo97TqcbRqxx7EASizaQCBQllG/rYxVapMLgtLbZS64w1MDBMXX+PQpBKNwqUKOf2DDRDUXQf9EhOS0Qj4nTmlA8dzSLz/G1d+Ud8MTy/6ghhdiLpeerGY/UlDOfiuqFsMUU5/UYlP+BAmgRLuNpvrUaLlVkrqDievNVEAwF+4CoM1MZTmjxjJMsKJq+u8Zd7tNCUFy6LiyYXRJQ4VyvEQFFaCGKsxIwQkk7EzZ6LTJq2hUuPhvAW+gQnSG6J+MszC+7QCRHcnqDdyNRJ6T9xyS87A6MDutbzKGvGktpbXqtzWtXb9HsfK2cBMomjN9a4y+TaJLnXxAeX/HWzmf4cR4vALt/P4w4qgKY04ml4ZdLOinFYS6cup3G/1ie4+t1eOnpBNlqGqs75ilzkT4+DsZQxNvaSKJ//6zIbbk/M7LOhFmRc/1R+kBtz7JFGdZm/COotIdvQoXpTqP/1uqEUmCb/QWoGLMwO5ANcHzxdY48IGP5+J+zKOTBFZ4Pid+GTM+Wq12MV/H86xEJptBa6T+p3kgpwLedManBHC2GgNrFpoN2xnrMz9WFWX/8/ygSBkavq2Uv7FdCsLEYLu9LLIvAU0bNRDtzYl+/vXmjpIvuJFYjmI0im6QEYqnIeMsNjXG4vIutIGHijeAG/9EDBozKV5cldkHbLxHh25vT+ZEzbhXlqvpzKJwcEgfNwLAKFeo0/pvEE10XDB+EXRTXtSzJozQKFFAJhMxYkVaCW+E9AL7tMeU8acxidHqzb6lX4691UsDpy/LLRmT+epgW56+5Cw8tB4kMUv6s9lh3eRKbyGs+H/4mQMaYzPTf2OOdokEn+zzgvoD3FqNKk8QqGAXVsqcGdXrT62fSPkR2vROFi68A6se86UxRUk4cajfPyCC4G5wDhD+zNq4jodQ4u4n/m37Lr36n4LIAAsVr02dFi9AiwA81MYs2rm4eDlDNmdMRvEKRHfBwW5DdMNp0jPFZMeARqF/wL4XBfd+EMLBfMzpH5GH6NaW+1vrvMdg+VxDzatk3MXgO3ro3P/DpcC6+Mo4MySJhKJhSR01SGGGp5hPWmrrUgrv3lDnP+HhcI3nt3YqBoVAVTBAQT5iuhTg8nvPtd8ZeYj6w1x6RqGUBrSku7+N1+BaasZvjTk64RoIDlL8brpEcJx3OmY7jLoZsswdtmhfC/G21llXhITOwmvRDDeTTPbyASOa16cF5/A1fZAidJpqju3wYAy9avPR1ya6eNp9K8XYrrtuxlqi+bDKwlfrYdR0RRiKRVTLOH85+ZY7XSmzRpfZBJjaTa81VDcJHpZnZnSQLASGYW9l51ZV/h7eVzTi3Hv6hUsgc/51AqJRTkpbFVLXXszoBL8nBX0u/0jBLT8nH+fJePbrwURT58OY+UieRjd1vs04w0VG5VN2U6MoGZkQzKN/ptz0Q366dxoTGmj7i1NQGHi9GgnquXFYdrCfZBmeb7s0T6yrdlZH5cZuwHFyIJ/kAtGsTg0xH5taAAq44BAk1CPk9KVVbqQzrCUiFdF/6gtlPQ8bHHc1G1W92MXGZ5HEHftyLYs8mbD/9xYRUWkHmlM0zC2ilJlnNgV4bfALpQghxOUoZL7VTqtCHIaQSXm+YUMnpkXybnV+A6xlm2CVy8fn0Xlm2XRa0+zzOa21JWWmixfiPMSCZ7qA4rS93VN3pkpF1s5TonQjisHf7iU9ZGvUPOAKZcR1pbeVf/Ul7OhepGCaId9wOtqo7pJ7yLcBZ0pFkOF28y4zEI/kcUNmutBHaQpBdNM8vjCS6HZRokkeo88TBAjGyG7SR+6vUgTcyK9Imalj0kuxz0wmK+byQU11AiJFk/ya5dNduRClcnU64yGu/ieWSeOos1t3ep+RPIWQ2pyTYVbZltTbsb7NiwSi3AV+8KLWk7LxCnfZUetEM8ThnsSoGH38/nyAwFguJp8FjvlHtcWZuU4hPva0rHfr0UhOOJ/F6vS62FW7KzkmRll2HEc7oUq4fyi5T70Vl7YVIfsPHUCdHesf9Lk7WNVWO75JDkYbMI8TOW8JKVtLY9d6UJRITO8oKo0xS+o99Yy04iniGHAaGj88kEWgwv0OrHdY/nr76DOGNS59hXCGXzTKUvDl9iKpLSWYN1lxIeyywdNpTkhay74w2jFT6NS8qkjo5CxA1yfSYwp6AJIZNKIeEK5PJAW7ORgWgwp0VgzYpqovMrWxbu+DGZ6Lhie1RAqpzm8VUzKJOH3mCzWuTOLsN3VT/dv2eeYe9UjbR8YTBsLz7q60VN1sU51k+um1f8JxD5pPhbhSC8rRaB454tmh6YUWrJI3+GWY0qeWioj/tbkYITOkJaeuGt4JrJvHA+l0Gu7kY7XOaa05alMnRWVCXqFgLIwSY4uF59Ue5SU4QKuc/HamDxbr0x6csCetXGoP7Qn1Bk/J9DsynO/UD6iZ1Hyrz+jit0hDCwi/E9OjgKTbB3ZQKQ/0ZOvevfNHG0NK4Aj3Cp7NpRk07RT1i/S0EL93Ag8GRgKI9CfpajKyK6+Jj/PI1KO5/85VAwz2AwzP8FTBb075IxCXv6T9RVvWT2tUaqxDS92zrGUbWzUYk9mSs82pECH+fkqsDt93VW++4YsR/dHCYcQSYTO/KaBMDj9LSD/J/+z20Kq8XvZUAIHtm9hRPP3ItbuAu2Hm5lkPs92pd7kCxgRs0xOVBnZ13ccdA0aunrwv9SdqElJRC3g+oCu+nXyCgmXUs9yMjTMAIHfxZV+aPKcZeUBWt057Xo85Ks1Ir5gzEHCWqZEhrLZMuF11ziGtFQUds/EESajhagzcKsxamcSZxGth4UII+adPhQkUnx2WyN+4YWR+r3f8MnkyGFuR4zjzxJS8WsQYR5PTyRaD9ixa6Mh741nBHbzfjXHskGDq179xaRNrCIB1z1xRfWfjqw2pHc1zk9xlPpL8sQWAIuETZZhbnmL54rceXVNRvUiKrrqIkeogsl0XXb17ylNb0f4GA9Wd44vffEG8FSZGHEL2fbaTGRcSiCeA8PmA/f6Hz8HCS76fXUHwgwkzSwlI71ekZ7Fapmlk/KC+Hs8hUcw3N2LN5LhkVYyizYFl/uPeVP5lsoJHhhfWvvSWruCUW1ZcJOeuTbrDgywJ/qG07gZJplnTvLcYdNaH0KMYOYMGX+rB4NGPFmQsNaIwlWrfCezxre8zXBrsMT+edVLbLqN1BqB76JH4BvZTqUIMfGwPGEn+EnmTV86fPBaYbFL3DFEhjB45CewkXEAtJxk4/Ms2pPXnaRqdky0HOYdcUcE2zcXq4vaIvW2/v0nHFJH2XXe22ueDmq/18XGtELSq85j9X8q0tcNSSKJIX8FTuJF/Pf8j5PhqG2u+osvsLxYrvvfeVJL+4tkcXcr9JV7v0ERmj/X6fM3NC4j6dS1+9Umr2oPavqiAydTZPLMNRGY23LO9zAVDly7jD+70G5TPPLdhRIl4WxcYjLnM+SNcJ26FOrkrISUtPObIz5Zb3AG612krnpy15RMW+1cQjlnWFI6538qky9axd2oJmHIHP08KyP0ubGO+TQNOYuv2uh17yCIvR8VcStw7o1g0NM60sk+8Tq7YfIBJrtp53GkvzXH7OA0p8/n/u1satf/VJhtR1l8Wa6Gmaug7haSpaCaYQax6ta0mkutlb+eAOSG1aobM81D9A4iS1RRlzBBoVX6tU1S6WE2N9ORY6DfeLRC4l9Rvr5h95XDWB2mR1d4WFudpsgVYwiTwT31ljskD8ZyDOlm5DkGh9N/UB/0AI5Xvb8ZBmai2hQ4BWMqFwYnzxwB26YHSOv9WgY3JXnvoN+2R4rqGVh/LLDMtpFP+SpMGJNWvbIl5SOodbCczW2RKleksPoUeGEzrjtKHVdtZA+kfqO+rVx/iclCqwoopepvJpSTDjT+b9GWylGRF8EDbGlw6eUzmJM95Ovoz+kwLX3c2fTjFeYEsE7vUZm3mqdGJuKh2w9/QGSaqRHs99aScGOdDqkFcACoqdbBoQqqjamhH6Q9ng39JCg3lrGJwd50Qk9ovnqBTr8MME7Ps2wiVfygUmPoUBJJfJWX5Nda0nuncbFkA=="))}(),Ao=new Set(read_member_array(To)),Eo=new Set(read_member_array(To)),Po=function read_mapped_map(D){let te=[];for(;;){let he=D();if(0==he)break;te.push(read_linear_table$1(he,D))}for(;;){let he=D()-1;if(he<0)break;te.push(read_replacement_table$1(he,D))}return function fromEntries(D){const te={};for(let he=0;he<D.length;he++){const ye=D[he];te[ye[0]]=ye[1]}return te}(flat(te))}(To),So=function read_emoji_trie(D){let te=read_member_array(D).sort(((D,te)=>D-te));return function read(){let he=[];for(;;){let ye=read_member_array(D,te);if(0==ye.length)break;he.push({set:new Set(ye),node:read()})}he.sort(((D,te)=>te.set.size-D.set.size));let ye=D(),be=ye%3;ye=ye/3|0;let ve=!!(1&ye);return ye>>=1,{branches:he,valid:be,fe0f:ve,save:1==ye,check:2==ye}}()}(To),Co=45,Io=95;function explode_cp$1(D){return toUtf8CodePoints(D)}function filter_fe0f$1(D){return D.filter((D=>65039!=D))}function ens_normalize_post_check(D){for(let te of D.split(".")){let D=explode_cp$1(te);try{for(let te=D.lastIndexOf(Io)-1;te>=0;te--)if(D[te]!==Io)throw new Error("underscore only allowed at start");if(D.length>=4&&D.every((D=>D<128))&&D[2]===Co&&D[3]===Co)throw new Error("invalid label extension")}catch(D){throw new Error(`Invalid label "${te}": ${D.message}`)}}return D}function ens_normalize$1(D){return ens_normalize_post_check(function normalize(D,te){let he=explode_cp$1(D).reverse(),ye=[];for(;he.length;){let D=consume_emoji_reversed$1(he);if(D){ye.push(...te(D));continue}let be=he.pop();if(Ao.has(be)){ye.push(be);continue}if(Eo.has(be))continue;let ve=Po[be];if(!ve)throw new Error(`Disallowed codepoint: 0x${be.toString(16).toUpperCase()}`);ye.push(...ve)}return ens_normalize_post_check(function nfc$1(D){return D.normalize("NFC")}(String.fromCodePoint(...ye)))}(D,filter_fe0f$1))}function consume_emoji_reversed$1(D,te){var he;let ye,be,ve=So,we=[],_e=D.length;for(;_e;){let te=D[--_e];if(ve=null===(he=ve.branches.find((D=>D.set.has(te))))||void 0===he?void 0:he.node,!ve)break;if(ve.save)be=te;else if(ve.check&&te===be)break;we.push(te),ve.fe0f&&(we.push(65039),_e>0&&65039==D[_e-1]&&_e--),ve.valid&&(ye=we.slice(),2==ve.valid&&ye.splice(1,1),D.length=_e)}return ye}const Ro=new hi(wo),ko=new Uint8Array(32);function checkComponent$1(D){if(0===D.length)throw new Error("invalid ENS name; empty component");return D}function ensNameSplit$1(D){const te=toUtf8Bytes$2(ens_normalize$1(D)),he=[];if(0===D.length)return he;let ye=0;for(let D=0;D<te.length;D++){46===te[D]&&(he.push(checkComponent$1(te.slice(ye,D))),ye=D+1)}if(ye>=te.length)throw new Error("invalid ENS name; empty component");return he.push(checkComponent$1(te.slice(ye))),he}function namehash$2(D){"string"!=typeof D&&Ro.throwArgumentError("invalid ENS name; not a string","name",D);let te=ko;const he=ensNameSplit$1(D);for(;he.length;)te=keccak256$3(concat$2([te,keccak256$3(he.pop())]));return hexlify$2(te)}function dnsEncode$1(D){return hexlify$2(concat$2(ensNameSplit$1(D).map((D=>{if(D.length>63)throw new Error("invalid DNS encoded entry; length exceeds 63 bytes");const te=new Uint8Array(D.length+1);return te.set(D,1),te[0]=te.length-1,te}))))+"00"}ko.fill(0);const Oo="Ethereum Signed Message:\n";function hashMessage(D){return"string"==typeof D&&(D=toUtf8Bytes$2(D)),keccak256$3(concat$2([toUtf8Bytes$2(Oo),toUtf8Bytes$2(String(D.length)),D]))}var __awaiter$d=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const xo=new hi(wo),No=new Uint8Array(32);No.fill(0);const Mo=Li.from(-1),Bo=Li.from(0),Fo=Li.from(1),Do=Li.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const Lo=hexZeroPad$1(Fo.toHexString(),32),Uo=hexZeroPad$1(Bo.toHexString(),32),$o={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},qo=["name","version","chainId","verifyingContract","salt"];function checkString$1(D){return function(te){return"string"!=typeof te&&xo.throwArgumentError(`invalid domain value for ${JSON.stringify(D)}`,`domain.${D}`,te),te}}const Go={name:checkString$1("name"),version:checkString$1("version"),chainId:function(D){try{return Li.from(D).toString()}catch(D){}return xo.throwArgumentError('invalid domain value for "chainId"',"domain.chainId",D)},verifyingContract:function(D){try{return getAddress$2(D).toLowerCase()}catch(D){}return xo.throwArgumentError('invalid domain value "verifyingContract"',"domain.verifyingContract",D)},salt:function(D){try{const te=arrayify$1(D);if(32!==te.length)throw new Error("bad length");return hexlify$2(te)}catch(D){}return xo.throwArgumentError('invalid domain value "salt"',"domain.salt",D)}};function getBaseEncoder$1(D){{const te=D.match(/^(u?)int(\d*)$/);if(te){const he=""===te[1],ye=parseInt(te[2]||"256");(ye%8!=0||ye>256||te[2]&&te[2]!==String(ye))&&xo.throwArgumentError("invalid numeric width","type",D);const be=Do.mask(he?ye-1:ye),ve=he?be.add(Fo).mul(Mo):Bo;return function(te){const he=Li.from(te);return(he.lt(ve)||he.gt(be))&&xo.throwArgumentError(`value out-of-bounds for ${D}`,"value",te),hexZeroPad$1(he.toTwos(256).toHexString(),32)}}}{const te=D.match(/^bytes(\d+)$/);if(te){const he=parseInt(te[1]);return(0===he||he>32||te[1]!==String(he))&&xo.throwArgumentError("invalid bytes width","type",D),function(te){return arrayify$1(te).length!==he&&xo.throwArgumentError(`invalid length for ${D}`,"value",te),function hexPadRight$1(D){const te=arrayify$1(D),he=te.length%32;return he?hexConcat$1([te,No.slice(he)]):hexlify$2(te)}(te)}}}switch(D){case"address":return function(D){return hexZeroPad$1(getAddress$2(D),32)};case"bool":return function(D){return D?Lo:Uo};case"bytes":return function(D){return keccak256$3(D)};case"string":return function(D){return id$3(D)}}return null}function encodeType$1(D,te){return`${D}(${te.map((({name:D,type:te})=>te+" "+D)).join(",")})`}let jo=class TypedDataEncoder{constructor(D){defineReadOnly$1(this,"types",Object.freeze(deepCopy$2(D))),defineReadOnly$1(this,"_encoderCache",{}),defineReadOnly$1(this,"_types",{});const te={},he={},ye={};Object.keys(D).forEach((D=>{te[D]={},he[D]=[],ye[D]={}}));for(const ye in D){const be={};D[ye].forEach((ve=>{be[ve.name]&&xo.throwArgumentError(`duplicate variable name ${JSON.stringify(ve.name)} in ${JSON.stringify(ye)}`,"types",D),be[ve.name]=!0;const we=ve.type.match(/^([^\x5b]*)(\x5b|$)/)[1];we===ye&&xo.throwArgumentError(`circular type reference to ${JSON.stringify(we)}`,"types",D);getBaseEncoder$1(we)||(he[we]||xo.throwArgumentError(`unknown type ${JSON.stringify(we)}`,"types",D),he[we].push(ye),te[ye][we]=!0)}))}const be=Object.keys(he).filter((D=>0===he[D].length));0===be.length?xo.throwArgumentError("missing primary type","types",D):be.length>1&&xo.throwArgumentError(`ambiguous primary types or unused types: ${be.map((D=>JSON.stringify(D))).join(", ")}`,"types",D),defineReadOnly$1(this,"primaryType",be[0]),function checkCircular(be,ve){ve[be]&&xo.throwArgumentError(`circular type reference to ${JSON.stringify(be)}`,"types",D),ve[be]=!0,Object.keys(te[be]).forEach((D=>{he[D]&&(checkCircular(D,ve),Object.keys(ve).forEach((te=>{ye[te][D]=!0})))})),delete ve[be]}(this.primaryType,{});for(const te in ye){const he=Object.keys(ye[te]);he.sort(),this._types[te]=encodeType$1(te,D[te])+he.map((te=>encodeType$1(te,D[te]))).join("")}}getEncoder(D){let te=this._encoderCache[D];return te||(te=this._encoderCache[D]=this._getEncoder(D)),te}_getEncoder(D){{const te=getBaseEncoder$1(D);if(te)return te}const te=D.match(/^(.*)(\x5b(\d*)\x5d)$/);if(te){const D=te[1],he=this.getEncoder(D),ye=parseInt(te[3]);return te=>{ye>=0&&te.length!==ye&&xo.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",te);let be=te.map(he);return this._types[D]&&(be=be.map(keccak256$3)),keccak256$3(hexConcat$1(be))}}const he=this.types[D];if(he){const te=id$3(this._types[D]);return D=>{const ye=he.map((({name:te,type:he})=>{const ye=this.getEncoder(he)(D[te]);return this._types[he]?keccak256$3(ye):ye}));return ye.unshift(te),hexConcat$1(ye)}}return xo.throwArgumentError(`unknown type: ${D}`,"type",D)}encodeType(D){const te=this._types[D];return te||xo.throwArgumentError(`unknown type: ${JSON.stringify(D)}`,"name",D),te}encodeData(D,te){return this.getEncoder(D)(te)}hashStruct(D,te){return keccak256$3(this.encodeData(D,te))}encode(D){return this.encodeData(this.primaryType,D)}hash(D){return this.hashStruct(this.primaryType,D)}_visit(D,te,he){if(getBaseEncoder$1(D))return he(D,te);const ye=D.match(/^(.*)(\x5b(\d*)\x5d)$/);if(ye){const D=ye[1],be=parseInt(ye[3]);return be>=0&&te.length!==be&&xo.throwArgumentError("array length mismatch; expected length ${ arrayLength }","value",te),te.map((te=>this._visit(D,te,he)))}const be=this.types[D];return be?be.reduce(((D,{name:ye,type:be})=>(D[ye]=this._visit(be,te[ye],he),D)),{}):xo.throwArgumentError(`unknown type: ${D}`,"type",D)}visit(D,te){return this._visit(this.primaryType,D,te)}static from(D){return new TypedDataEncoder(D)}static getPrimaryType(D){return TypedDataEncoder.from(D).primaryType}static hashStruct(D,te,he){return TypedDataEncoder.from(te).hashStruct(D,he)}static hashDomain(D){const te=[];for(const he in D){const ye=$o[he];ye||xo.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(he)}`,"domain",D),te.push({name:he,type:ye})}return te.sort(((D,te)=>qo.indexOf(D.name)-qo.indexOf(te.name))),TypedDataEncoder.hashStruct("EIP712Domain",{EIP712Domain:te},D)}static encode(D,te,he){return hexConcat$1(["0x1901",TypedDataEncoder.hashDomain(D),TypedDataEncoder.from(te).hash(he)])}static hash(D,te,he){return keccak256$3(TypedDataEncoder.encode(D,te,he))}static resolveNames(D,te,he,ye){return __awaiter$d(this,void 0,void 0,(function*(){D=shallowCopy$1(D);const be={};D.verifyingContract&&!isHexString$4(D.verifyingContract,20)&&(be[D.verifyingContract]="0x");const ve=TypedDataEncoder.from(te);ve.visit(he,((D,te)=>("address"!==D||isHexString$4(te,20)||(be[te]="0x"),te)));for(const D in be)be[D]=yield ye(D);return D.verifyingContract&&be[D.verifyingContract]&&(D.verifyingContract=be[D.verifyingContract]),he=ve.visit(he,((D,te)=>"address"===D&&be[te]?be[te]:te)),{domain:D,value:he}}))}static getPayload(D,te,he){TypedDataEncoder.hashDomain(D);const ye={},be=[];qo.forEach((te=>{const he=D[te];null!=he&&(ye[te]=Go[te](he),be.push({name:te,type:$o[te]}))}));const ve=TypedDataEncoder.from(te),we=shallowCopy$1(te);return we.EIP712Domain?xo.throwArgumentError("types must not contain EIP712Domain type","types.EIP712Domain",te):we.EIP712Domain=be,ve.encode(he),{types:we,domain:ye,primaryType:ve.primaryType,message:ve.visit(he,((D,te)=>{if(D.match(/^bytes(\d*)/))return hexlify$2(arrayify$1(te));if(D.match(/^u?int/))return Li.from(te).toString();switch(D){case"address":return te.toLowerCase();case"bool":return!!te;case"string":return"string"!=typeof te&&xo.throwArgumentError("invalid string","value",te),te}return xo.throwArgumentError("unsupported type","type",D)}))}}};const Ho=new hi(Ns);let zo=class LogDescription extends xs{},Wo=class TransactionDescription extends xs{},Vo=class ErrorDescription extends xs{},Ko=class Indexed extends xs{static isIndexed(D){return!(!D||!D._isIndexed)}};const Jo={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function wrapAccessError$1(D,te){const he=new Error(`deferred error during ABI decoding triggered accessing ${D}`);return he.error=te,he}let Xo=class Interface{constructor(D){let te=[];te="string"==typeof D?JSON.parse(D):D,defineReadOnly$1(this,"fragments",te.map((D=>qs.from(D))).filter((D=>null!=D))),defineReadOnly$1(this,"_abiCoder",getStatic$1(new.target,"getAbiCoder")()),defineReadOnly$1(this,"functions",{}),defineReadOnly$1(this,"errors",{}),defineReadOnly$1(this,"events",{}),defineReadOnly$1(this,"structs",{}),this.fragments.forEach((D=>{let te=null;switch(D.type){case"constructor":return this.deploy?void Ho.warn("duplicate definition - constructor"):void defineReadOnly$1(this,"deploy",D);case"function":te=this.functions;break;case"event":te=this.events;break;case"error":te=this.errors;break;default:return}let he=D.format();te[he]?Ho.warn("duplicate definition - "+he):te[he]=D})),this.deploy||defineReadOnly$1(this,"deploy",js.from({payable:!1,type:"constructor"})),defineReadOnly$1(this,"_isInterface",!0)}format(D){D||(D=Ls.full),D===Ls.sighash&&Ho.throwArgumentError("interface does not support formatting sighash","format",D);const te=this.fragments.map((te=>te.format(D)));return D===Ls.json?JSON.stringify(te.map((D=>JSON.parse(D)))):te}static getAbiCoder(){return vo}static getAddress(D){return getAddress$2(D)}static getSighash(D){return hexDataSlice$1(id$3(D.format()),0,4)}static getEventTopic(D){return id$3(D.format())}getFunction(D){if(isHexString$4(D)){for(const te in this.functions)if(D===this.getSighash(te))return this.functions[te];Ho.throwArgumentError("no matching function","sighash",D)}if(-1===D.indexOf("(")){const te=D.trim(),he=Object.keys(this.functions).filter((D=>D.split("(")[0]===te));return 0===he.length?Ho.throwArgumentError("no matching function","name",te):he.length>1&&Ho.throwArgumentError("multiple matching functions","name",te),this.functions[he[0]]}const te=this.functions[Hs.fromString(D).format()];return te||Ho.throwArgumentError("no matching function","signature",D),te}getEvent(D){if(isHexString$4(D)){const te=D.toLowerCase();for(const D in this.events)if(te===this.getEventTopic(D))return this.events[D];Ho.throwArgumentError("no matching event","topichash",te)}if(-1===D.indexOf("(")){const te=D.trim(),he=Object.keys(this.events).filter((D=>D.split("(")[0]===te));return 0===he.length?Ho.throwArgumentError("no matching event","name",te):he.length>1&&Ho.throwArgumentError("multiple matching events","name",te),this.events[he[0]]}const te=this.events[Gs.fromString(D).format()];return te||Ho.throwArgumentError("no matching event","signature",D),te}getError(D){if(isHexString$4(D)){const te=getStatic$1(this.constructor,"getSighash");for(const he in this.errors){if(D===te(this.errors[he]))return this.errors[he]}Ho.throwArgumentError("no matching error","sighash",D)}if(-1===D.indexOf("(")){const te=D.trim(),he=Object.keys(this.errors).filter((D=>D.split("(")[0]===te));return 0===he.length?Ho.throwArgumentError("no matching error","name",te):he.length>1&&Ho.throwArgumentError("multiple matching errors","name",te),this.errors[he[0]]}const te=this.errors[Hs.fromString(D).format()];return te||Ho.throwArgumentError("no matching error","signature",D),te}getSighash(D){if("string"==typeof D)try{D=this.getFunction(D)}catch(te){try{D=this.getError(D)}catch(D){throw te}}return getStatic$1(this.constructor,"getSighash")(D)}getEventTopic(D){return"string"==typeof D&&(D=this.getEvent(D)),getStatic$1(this.constructor,"getEventTopic")(D)}_decodeParams(D,te){return this._abiCoder.decode(D,te)}_encodeParams(D,te){return this._abiCoder.encode(D,te)}encodeDeploy(D){return this._encodeParams(this.deploy.inputs,D||[])}decodeErrorResult(D,te){"string"==typeof D&&(D=this.getError(D));const he=arrayify$1(te);return hexlify$2(he.slice(0,4))!==this.getSighash(D)&&Ho.throwArgumentError(`data signature does not match error ${D.name}.`,"data",hexlify$2(he)),this._decodeParams(D.inputs,he.slice(4))}encodeErrorResult(D,te){return"string"==typeof D&&(D=this.getError(D)),hexlify$2(concat$2([this.getSighash(D),this._encodeParams(D.inputs,te||[])]))}decodeFunctionData(D,te){"string"==typeof D&&(D=this.getFunction(D));const he=arrayify$1(te);return hexlify$2(he.slice(0,4))!==this.getSighash(D)&&Ho.throwArgumentError(`data signature does not match function ${D.name}.`,"data",hexlify$2(he)),this._decodeParams(D.inputs,he.slice(4))}encodeFunctionData(D,te){return"string"==typeof D&&(D=this.getFunction(D)),hexlify$2(concat$2([this.getSighash(D),this._encodeParams(D.inputs,te||[])]))}decodeFunctionResult(D,te){"string"==typeof D&&(D=this.getFunction(D));let he=arrayify$1(te),ye=null,be="",ve=null,we=null,_e=null;switch(he.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(D.outputs,he)}catch(D){}break;case 4:{const D=hexlify$2(he.slice(0,4)),te=Jo[D];if(te)ve=this._abiCoder.decode(te.inputs,he.slice(4)),we=te.name,_e=te.signature,te.reason&&(ye=ve[0]),"Error"===we?be=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(ve[0])}`:"Panic"===we&&(be=`; VM Exception while processing transaction: reverted with panic code ${ve[0]}`);else try{const te=this.getError(D);ve=this._abiCoder.decode(te.inputs,he.slice(4)),we=te.name,_e=te.format()}catch(D){}break}}return Ho.throwError("call revert exception"+be,hi.errors.CALL_EXCEPTION,{method:D.format(),data:hexlify$2(te),errorArgs:ve,errorName:we,errorSignature:_e,reason:ye})}encodeFunctionResult(D,te){return"string"==typeof D&&(D=this.getFunction(D)),hexlify$2(this._abiCoder.encode(D.outputs,te||[]))}encodeFilterTopics(D,te){"string"==typeof D&&(D=this.getEvent(D)),te.length>D.inputs.length&&Ho.throwError("too many arguments for "+D.format(),hi.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:te});let he=[];D.anonymous||he.push(this.getEventTopic(D));const encodeTopic=(D,te)=>"string"===D.type?id$3(te):"bytes"===D.type?keccak256$3(hexlify$2(te)):("bool"===D.type&&"boolean"==typeof te&&(te=te?"0x01":"0x00"),D.type.match(/^u?int/)&&(te=Li.from(te).toHexString()),"address"===D.type&&this._abiCoder.encode(["address"],[te]),hexZeroPad$1(hexlify$2(te),32));for(te.forEach(((te,ye)=>{let be=D.inputs[ye];be.indexed?null==te?he.push(null):"array"===be.baseType||"tuple"===be.baseType?Ho.throwArgumentError("filtering with tuples or arrays not supported","contract."+be.name,te):Array.isArray(te)?he.push(te.map((D=>encodeTopic(be,D)))):he.push(encodeTopic(be,te)):null!=te&&Ho.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+be.name,te)}));he.length&&null===he[he.length-1];)he.pop();return he}encodeEventLog(D,te){"string"==typeof D&&(D=this.getEvent(D));const he=[],ye=[],be=[];return D.anonymous||he.push(this.getEventTopic(D)),te.length!==D.inputs.length&&Ho.throwArgumentError("event arguments/values mismatch","values",te),D.inputs.forEach(((D,ve)=>{const we=te[ve];if(D.indexed)if("string"===D.type)he.push(id$3(we));else if("bytes"===D.type)he.push(keccak256$3(we));else{if("tuple"===D.baseType||"array"===D.baseType)throw new Error("not implemented");he.push(this._abiCoder.encode([D.type],[we]))}else ye.push(D),be.push(we)})),{data:this._abiCoder.encode(ye,be),topics:he}}decodeEventLog(D,te,he){if("string"==typeof D&&(D=this.getEvent(D)),null!=he&&!D.anonymous){let te=this.getEventTopic(D);isHexString$4(he[0],32)&&he[0].toLowerCase()===te||Ho.throwError("fragment/topic mismatch",hi.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:te,value:he[0]}),he=he.slice(1)}let ye=[],be=[],ve=[];D.inputs.forEach(((D,te)=>{D.indexed?"string"===D.type||"bytes"===D.type||"tuple"===D.baseType||"array"===D.baseType?(ye.push($s.fromObject({type:"bytes32",name:D.name})),ve.push(!0)):(ye.push(D),ve.push(!1)):(be.push(D),ve.push(!1))}));let we=null!=he?this._abiCoder.decode(ye,concat$2(he)):null,_e=this._abiCoder.decode(be,te,!0),Pe=[],Ie=0,Re=0;D.inputs.forEach(((D,te)=>{if(D.indexed)if(null==we)Pe[te]=new Ko({_isIndexed:!0,hash:null});else if(ve[te])Pe[te]=new Ko({_isIndexed:!0,hash:we[Re++]});else try{Pe[te]=we[Re++]}catch(D){Pe[te]=D}else try{Pe[te]=_e[Ie++]}catch(D){Pe[te]=D}if(D.name&&null==Pe[D.name]){const he=Pe[te];he instanceof Error?Object.defineProperty(Pe,D.name,{enumerable:!0,get:()=>{throw wrapAccessError$1(`property ${JSON.stringify(D.name)}`,he)}}):Pe[D.name]=he}}));for(let D=0;D<Pe.length;D++){const te=Pe[D];te instanceof Error&&Object.defineProperty(Pe,D,{enumerable:!0,get:()=>{throw wrapAccessError$1(`index ${D}`,te)}})}return Object.freeze(Pe)}parseTransaction(D){let te=this.getFunction(D.data.substring(0,10).toLowerCase());return te?new Wo({args:this._abiCoder.decode(te.inputs,"0x"+D.data.substring(10)),functionFragment:te,name:te.name,signature:te.format(),sighash:this.getSighash(te),value:Li.from(D.value||"0")}):null}parseLog(D){let te=this.getEvent(D.topics[0]);return!te||te.anonymous?null:new zo({eventFragment:te,name:te.name,signature:te.format(),topic:this.getEventTopic(te),args:this.decodeEventLog(te,D.data,D.topics)})}parseError(D){const te=hexlify$2(D);let he=this.getError(te.substring(0,10).toLowerCase());return he?new Vo({args:this._abiCoder.decode(he.inputs,"0x"+te.substring(10)),errorFragment:he,name:he.name,signature:he.format(),sighash:this.getSighash(he)}):null}static isInterface(D){return!(!D||!D._isInterface)}};var Qo=Object.freeze({__proto__:null,AbiCoder:go,ConstructorFragment:js,ErrorFragment:zs,EventFragment:Gs,FormatTypes:Ls,Fragment:qs,FunctionFragment:Hs,Indexed:Ko,Interface:Xo,LogDescription:zo,ParamType:$s,TransactionDescription:Wo,checkResultErrors:checkResultErrors$1,defaultAbiCoder:vo});var __awaiter$c=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const Zo=new hi("abstract-provider/5.7.0");class ForkEvent extends xs{static isForkEvent(D){return!(!D||!D._isForkEvent)}}let Yo=class Provider{constructor(){Zo.checkAbstract(new.target,Provider),defineReadOnly$1(this,"_isProvider",!0)}getFeeData(){return __awaiter$c(this,void 0,void 0,(function*(){const{block:D,gasPrice:te}=yield resolveProperties$2({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((D=>null))});let he=null,ye=null,be=null;return D&&D.baseFeePerGas&&(he=D.baseFeePerGas,be=Li.from("1500000000"),ye=D.baseFeePerGas.mul(2).add(be)),{lastBaseFeePerGas:he,maxFeePerGas:ye,maxPriorityFeePerGas:be,gasPrice:te}}))}addListener(D,te){return this.on(D,te)}removeListener(D,te){return this.off(D,te)}static isProvider(D){return!(!D||!D._isProvider)}};var __awaiter$b=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const ec=new hi("abstract-signer/5.7.0"),tc=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],rc=[hi.errors.INSUFFICIENT_FUNDS,hi.errors.NONCE_EXPIRED,hi.errors.REPLACEMENT_UNDERPRICED];let nc=class Signer{constructor(){ec.checkAbstract(new.target,Signer),defineReadOnly$1(this,"_isSigner",!0)}getBalance(D){return __awaiter$b(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),D)}))}getTransactionCount(D){return __awaiter$b(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),D)}))}estimateGas(D){return __awaiter$b(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const te=yield resolveProperties$2(this.checkTransaction(D));return yield this.provider.estimateGas(te)}))}call(D,te){return __awaiter$b(this,void 0,void 0,(function*(){this._checkProvider("call");const he=yield resolveProperties$2(this.checkTransaction(D));return yield this.provider.call(he,te)}))}sendTransaction(D){return __awaiter$b(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const te=yield this.populateTransaction(D),he=yield this.signTransaction(te);return yield this.provider.sendTransaction(he)}))}getChainId(){return __awaiter$b(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return __awaiter$b(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return __awaiter$b(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(D){return __awaiter$b(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(D)}))}checkTransaction(D){for(const te in D)-1===tc.indexOf(te)&&ec.throwArgumentError("invalid transaction key: "+te,"transaction",D);const te=shallowCopy$1(D);return null==te.from?te.from=this.getAddress():te.from=Promise.all([Promise.resolve(te.from),this.getAddress()]).then((te=>(te[0].toLowerCase()!==te[1].toLowerCase()&&ec.throwArgumentError("from address mismatch","transaction",D),te[0]))),te}populateTransaction(D){return __awaiter$b(this,void 0,void 0,(function*(){const te=yield resolveProperties$2(this.checkTransaction(D));null!=te.to&&(te.to=Promise.resolve(te.to).then((D=>__awaiter$b(this,void 0,void 0,(function*(){if(null==D)return null;const te=yield this.resolveName(D);return null==te&&ec.throwArgumentError("provided ENS name resolves to null","tx.to",D),te})))),te.to.catch((D=>{})));const he=null!=te.maxFeePerGas||null!=te.maxPriorityFeePerGas;if(null==te.gasPrice||2!==te.type&&!he?0!==te.type&&1!==te.type||!he||ec.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",D):ec.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",D),2!==te.type&&null!=te.type||null==te.maxFeePerGas||null==te.maxPriorityFeePerGas)if(0===te.type||1===te.type)null==te.gasPrice&&(te.gasPrice=this.getGasPrice());else{const D=yield this.getFeeData();if(null==te.type)if(null!=D.maxFeePerGas&&null!=D.maxPriorityFeePerGas)if(te.type=2,null!=te.gasPrice){const D=te.gasPrice;delete te.gasPrice,te.maxFeePerGas=D,te.maxPriorityFeePerGas=D}else null==te.maxFeePerGas&&(te.maxFeePerGas=D.maxFeePerGas),null==te.maxPriorityFeePerGas&&(te.maxPriorityFeePerGas=D.maxPriorityFeePerGas);else null!=D.gasPrice?(he&&ec.throwError("network does not support EIP-1559",hi.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==te.gasPrice&&(te.gasPrice=D.gasPrice),te.type=0):ec.throwError("failed to get consistent fee data",hi.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===te.type&&(null==te.maxFeePerGas&&(te.maxFeePerGas=D.maxFeePerGas),null==te.maxPriorityFeePerGas&&(te.maxPriorityFeePerGas=D.maxPriorityFeePerGas))}else te.type=2;return null==te.nonce&&(te.nonce=this.getTransactionCount("pending")),null==te.gasLimit&&(te.gasLimit=this.estimateGas(te).catch((D=>{if(rc.indexOf(D.code)>=0)throw D;return ec.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",hi.errors.UNPREDICTABLE_GAS_LIMIT,{error:D,tx:te})}))),null==te.chainId?te.chainId=this.getChainId():te.chainId=Promise.all([Promise.resolve(te.chainId),this.getChainId()]).then((te=>(0!==te[1]&&te[0]!==te[1]&&ec.throwArgumentError("chainId address mismatch","transaction",D),te[0]))),yield resolveProperties$2(te)}))}_checkProvider(D){this.provider||ec.throwError("missing provider",hi.errors.UNSUPPORTED_OPERATION,{operation:D||"_checkProvider"})}static isSigner(D){return!(!D||!D._isSigner)}},ac=class VoidSigner extends nc{constructor(D,te){super(),defineReadOnly$1(this,"address",D),defineReadOnly$1(this,"provider",te||null)}getAddress(){return Promise.resolve(this.address)}_fail(D,te){return Promise.resolve().then((()=>{ec.throwError(D,hi.errors.UNSUPPORTED_OPERATION,{operation:te})}))}signMessage(D){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(D){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(D,te,he){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(D){return new VoidSigner(this.address,D)}};var ic={},sc={},oc=assert$t;function assert$t(D,te){if(!D)throw new Error(te||"Assertion failed")}assert$t.equal=function assertEqual(D,te,he){if(D!=te)throw new Error(he||"Assertion failed: "+D+" != "+te)};var cc="function"==typeof Object.create?function inherits(D,te){D.super_=te,D.prototype=Object.create(te.prototype,{constructor:{value:D,enumerable:!1,writable:!0,configurable:!0}})}:function inherits(D,te){D.super_=te;var TempCtor=function(){};TempCtor.prototype=te.prototype,D.prototype=new TempCtor,D.prototype.constructor=D},dc=getAugmentedNamespace$1(Object.freeze({__proto__:null,default:cc})),uc=oc,fc=dc;function isSurrogatePair(D,te){return 55296==(64512&D.charCodeAt(te))&&(!(te<0||te+1>=D.length)&&56320==(64512&D.charCodeAt(te+1)))}function htonl(D){return(D>>>24|D>>>8&65280|D<<8&16711680|(255&D)<<24)>>>0}function zero2(D){return 1===D.length?"0"+D:D}function zero8(D){return 7===D.length?"0"+D:6===D.length?"00"+D:5===D.length?"000"+D:4===D.length?"0000"+D:3===D.length?"00000"+D:2===D.length?"000000"+D:1===D.length?"0000000"+D:D}sc.inherits=fc,sc.toArray=function toArray$1(D,te){if(Array.isArray(D))return D.slice();if(!D)return[];var he=[];if("string"==typeof D)if(te){if("hex"===te)for((D=D.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(D="0"+D),be=0;be<D.length;be+=2)he.push(parseInt(D[be]+D[be+1],16))}else for(var ye=0,be=0;be<D.length;be++){var ve=D.charCodeAt(be);ve<128?he[ye++]=ve:ve<2048?(he[ye++]=ve>>6|192,he[ye++]=63&ve|128):isSurrogatePair(D,be)?(ve=65536+((1023&ve)<<10)+(1023&D.charCodeAt(++be)),he[ye++]=ve>>18|240,he[ye++]=ve>>12&63|128,he[ye++]=ve>>6&63|128,he[ye++]=63&ve|128):(he[ye++]=ve>>12|224,he[ye++]=ve>>6&63|128,he[ye++]=63&ve|128)}else for(be=0;be<D.length;be++)he[be]=0|D[be];return he},sc.toHex=function toHex$3(D){for(var te="",he=0;he<D.length;he++)te+=zero2(D[he].toString(16));return te},sc.htonl=htonl,sc.toHex32=function toHex32(D,te){for(var he="",ye=0;ye<D.length;ye++){var be=D[ye];"little"===te&&(be=htonl(be)),he+=zero8(be.toString(16))}return he},sc.zero2=zero2,sc.zero8=zero8,sc.join32=function join32(D,te,he,ye){var be=he-te;uc(be%4==0);for(var ve=new Array(be/4),we=0,_e=te;we<ve.length;we++,_e+=4){var Pe;Pe="big"===ye?D[_e]<<24|D[_e+1]<<16|D[_e+2]<<8|D[_e+3]:D[_e+3]<<24|D[_e+2]<<16|D[_e+1]<<8|D[_e],ve[we]=Pe>>>0}return ve},sc.split32=function split32(D,te){for(var he=new Array(4*D.length),ye=0,be=0;ye<D.length;ye++,be+=4){var ve=D[ye];"big"===te?(he[be]=ve>>>24,he[be+1]=ve>>>16&255,he[be+2]=ve>>>8&255,he[be+3]=255&ve):(he[be+3]=ve>>>24,he[be+2]=ve>>>16&255,he[be+1]=ve>>>8&255,he[be]=255&ve)}return he},sc.rotr32=function rotr32$1(D,te){return D>>>te|D<<32-te},sc.rotl32=function rotl32$2(D,te){return D<<te|D>>>32-te},sc.sum32=function sum32$3(D,te){return D+te>>>0},sc.sum32_3=function sum32_3$1(D,te,he){return D+te+he>>>0},sc.sum32_4=function sum32_4$2(D,te,he,ye){return D+te+he+ye>>>0},sc.sum32_5=function sum32_5$2(D,te,he,ye,be){return D+te+he+ye+be>>>0},sc.sum64=function sum64$1(D,te,he,ye){var be=D[te],ve=ye+D[te+1]>>>0,we=(ve<ye?1:0)+he+be;D[te]=we>>>0,D[te+1]=ve},sc.sum64_hi=function sum64_hi$1(D,te,he,ye){return(te+ye>>>0<te?1:0)+D+he>>>0},sc.sum64_lo=function sum64_lo$1(D,te,he,ye){return te+ye>>>0},sc.sum64_4_hi=function sum64_4_hi$1(D,te,he,ye,be,ve,we,_e){var Pe=0,Ie=te;return Pe+=(Ie=Ie+ye>>>0)<te?1:0,Pe+=(Ie=Ie+ve>>>0)<ve?1:0,D+he+be+we+(Pe+=(Ie=Ie+_e>>>0)<_e?1:0)>>>0},sc.sum64_4_lo=function sum64_4_lo$1(D,te,he,ye,be,ve,we,_e){return te+ye+ve+_e>>>0},sc.sum64_5_hi=function sum64_5_hi$1(D,te,he,ye,be,ve,we,_e,Pe,Ie){var Re=0,ke=te;return Re+=(ke=ke+ye>>>0)<te?1:0,Re+=(ke=ke+ve>>>0)<ve?1:0,Re+=(ke=ke+_e>>>0)<_e?1:0,D+he+be+we+Pe+(Re+=(ke=ke+Ie>>>0)<Ie?1:0)>>>0},sc.sum64_5_lo=function sum64_5_lo$1(D,te,he,ye,be,ve,we,_e,Pe,Ie){return te+ye+ve+_e+Ie>>>0},sc.rotr64_hi=function rotr64_hi$1(D,te,he){return(te<<32-he|D>>>he)>>>0},sc.rotr64_lo=function rotr64_lo$1(D,te,he){return(D<<32-he|te>>>he)>>>0},sc.shr64_hi=function shr64_hi$1(D,te,he){return D>>>he},sc.shr64_lo=function shr64_lo$1(D,te,he){return(D<<32-he|te>>>he)>>>0};var lc={},pc=sc,hc=oc;function BlockHash$4(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}lc.BlockHash=BlockHash$4,BlockHash$4.prototype.update=function update(D,te){if(D=pc.toArray(D,te),this.pending?this.pending=this.pending.concat(D):this.pending=D,this.pendingTotal+=D.length,this.pending.length>=this._delta8){var he=(D=this.pending).length%this._delta8;this.pending=D.slice(D.length-he,D.length),0===this.pending.length&&(this.pending=null),D=pc.join32(D,0,D.length-he,this.endian);for(var ye=0;ye<D.length;ye+=this._delta32)this._update(D,ye,ye+this._delta32)}return this},BlockHash$4.prototype.digest=function digest(D){return this.update(this._pad()),hc(null===this.pending),this._digest(D)},BlockHash$4.prototype._pad=function pad(){var D=this.pendingTotal,te=this._delta8,he=te-(D+this.padLength)%te,ye=new Array(he+this.padLength);ye[0]=128;for(var be=1;be<he;be++)ye[be]=0;if(D<<=3,"big"===this.endian){for(var ve=8;ve<this.padLength;ve++)ye[be++]=0;ye[be++]=0,ye[be++]=0,ye[be++]=0,ye[be++]=0,ye[be++]=D>>>24&255,ye[be++]=D>>>16&255,ye[be++]=D>>>8&255,ye[be++]=255&D}else for(ye[be++]=255&D,ye[be++]=D>>>8&255,ye[be++]=D>>>16&255,ye[be++]=D>>>24&255,ye[be++]=0,ye[be++]=0,ye[be++]=0,ye[be++]=0,ve=8;ve<this.padLength;ve++)ye[be++]=0;return ye};var yc={},mc={},bc=sc.rotr32;function ch32$1(D,te,he){return D&te^~D&he}function maj32$1(D,te,he){return D&te^D&he^te&he}function p32(D,te,he){return D^te^he}mc.ft_1=function ft_1$1(D,te,he,ye){return 0===D?ch32$1(te,he,ye):1===D||3===D?p32(te,he,ye):2===D?maj32$1(te,he,ye):void 0},mc.ch32=ch32$1,mc.maj32=maj32$1,mc.p32=p32,mc.s0_256=function s0_256$1(D){return bc(D,2)^bc(D,13)^bc(D,22)},mc.s1_256=function s1_256$1(D){return bc(D,6)^bc(D,11)^bc(D,25)},mc.g0_256=function g0_256$1(D){return bc(D,7)^bc(D,18)^D>>>3},mc.g1_256=function g1_256$1(D){return bc(D,17)^bc(D,19)^D>>>10};var gc=sc,vc=lc,wc=mc,_c=gc.rotl32,Tc=gc.sum32,Ac=gc.sum32_5,Ec=wc.ft_1,Pc=vc.BlockHash,Sc=[1518500249,1859775393,2400959708,3395469782];function SHA1(){if(!(this instanceof SHA1))return new SHA1;Pc.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=new Array(80)}gc.inherits(SHA1,Pc);var Cc=SHA1;SHA1.blockSize=512,SHA1.outSize=160,SHA1.hmacStrength=80,SHA1.padLength=64,SHA1.prototype._update=function _update(D,te){for(var he=this.W,ye=0;ye<16;ye++)he[ye]=D[te+ye];for(;ye<he.length;ye++)he[ye]=_c(he[ye-3]^he[ye-8]^he[ye-14]^he[ye-16],1);var be=this.h[0],ve=this.h[1],we=this.h[2],_e=this.h[3],Pe=this.h[4];for(ye=0;ye<he.length;ye++){var Ie=~~(ye/20),Re=Ac(_c(be,5),Ec(Ie,ve,we,_e),Pe,he[ye],Sc[Ie]);Pe=_e,_e=we,we=_c(ve,30),ve=be,be=Re}this.h[0]=Tc(this.h[0],be),this.h[1]=Tc(this.h[1],ve),this.h[2]=Tc(this.h[2],we),this.h[3]=Tc(this.h[3],_e),this.h[4]=Tc(this.h[4],Pe)},SHA1.prototype._digest=function digest(D){return"hex"===D?gc.toHex32(this.h,"big"):gc.split32(this.h,"big")};var Ic=sc,Rc=lc,kc=mc,Oc=oc,xc=Ic.sum32,Nc=Ic.sum32_4,Mc=Ic.sum32_5,Bc=kc.ch32,Fc=kc.maj32,Dc=kc.s0_256,Lc=kc.s1_256,Uc=kc.g0_256,$c=kc.g1_256,qc=Rc.BlockHash,Gc=[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];function SHA256$2(){if(!(this instanceof SHA256$2))return new SHA256$2;qc.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=Gc,this.W=new Array(64)}Ic.inherits(SHA256$2,qc);var jc=SHA256$2;SHA256$2.blockSize=512,SHA256$2.outSize=256,SHA256$2.hmacStrength=192,SHA256$2.padLength=64,SHA256$2.prototype._update=function _update(D,te){for(var he=this.W,ye=0;ye<16;ye++)he[ye]=D[te+ye];for(;ye<he.length;ye++)he[ye]=Nc($c(he[ye-2]),he[ye-7],Uc(he[ye-15]),he[ye-16]);var be=this.h[0],ve=this.h[1],we=this.h[2],_e=this.h[3],Pe=this.h[4],Ie=this.h[5],Re=this.h[6],ke=this.h[7];for(Oc(this.k.length===he.length),ye=0;ye<he.length;ye++){var Oe=Mc(ke,Lc(Pe),Bc(Pe,Ie,Re),this.k[ye],he[ye]),xe=xc(Dc(be),Fc(be,ve,we));ke=Re,Re=Ie,Ie=Pe,Pe=xc(_e,Oe),_e=we,we=ve,ve=be,be=xc(Oe,xe)}this.h[0]=xc(this.h[0],be),this.h[1]=xc(this.h[1],ve),this.h[2]=xc(this.h[2],we),this.h[3]=xc(this.h[3],_e),this.h[4]=xc(this.h[4],Pe),this.h[5]=xc(this.h[5],Ie),this.h[6]=xc(this.h[6],Re),this.h[7]=xc(this.h[7],ke)},SHA256$2.prototype._digest=function digest(D){return"hex"===D?Ic.toHex32(this.h,"big"):Ic.split32(this.h,"big")};var Hc=sc,zc=jc;function SHA224(){if(!(this instanceof SHA224))return new SHA224;zc.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Hc.inherits(SHA224,zc);var Wc=SHA224;SHA224.blockSize=512,SHA224.outSize=224,SHA224.hmacStrength=192,SHA224.padLength=64,SHA224.prototype._digest=function digest(D){return"hex"===D?Hc.toHex32(this.h.slice(0,7),"big"):Hc.split32(this.h.slice(0,7),"big")};var Vc=sc,Kc=lc,Jc=oc,Xc=Vc.rotr64_hi,Qc=Vc.rotr64_lo,Zc=Vc.shr64_hi,Yc=Vc.shr64_lo,ed=Vc.sum64,td=Vc.sum64_hi,rd=Vc.sum64_lo,nd=Vc.sum64_4_hi,ad=Vc.sum64_4_lo,sd=Vc.sum64_5_hi,od=Vc.sum64_5_lo,cd=Kc.BlockHash,dd=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function SHA512$2(){if(!(this instanceof SHA512$2))return new SHA512$2;cd.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=dd,this.W=new Array(160)}Vc.inherits(SHA512$2,cd);var ud=SHA512$2;function ch64_hi(D,te,he,ye,be){var ve=D&he^~D&be;return ve<0&&(ve+=4294967296),ve}function ch64_lo(D,te,he,ye,be,ve){var we=te&ye^~te&ve;return we<0&&(we+=4294967296),we}function maj64_hi(D,te,he,ye,be){var ve=D&he^D&be^he&be;return ve<0&&(ve+=4294967296),ve}function maj64_lo(D,te,he,ye,be,ve){var we=te&ye^te&ve^ye&ve;return we<0&&(we+=4294967296),we}function s0_512_hi(D,te){var he=Xc(D,te,28)^Xc(te,D,2)^Xc(te,D,7);return he<0&&(he+=4294967296),he}function s0_512_lo(D,te){var he=Qc(D,te,28)^Qc(te,D,2)^Qc(te,D,7);return he<0&&(he+=4294967296),he}function s1_512_hi(D,te){var he=Xc(D,te,14)^Xc(D,te,18)^Xc(te,D,9);return he<0&&(he+=4294967296),he}function s1_512_lo(D,te){var he=Qc(D,te,14)^Qc(D,te,18)^Qc(te,D,9);return he<0&&(he+=4294967296),he}function g0_512_hi(D,te){var he=Xc(D,te,1)^Xc(D,te,8)^Zc(D,te,7);return he<0&&(he+=4294967296),he}function g0_512_lo(D,te){var he=Qc(D,te,1)^Qc(D,te,8)^Yc(D,te,7);return he<0&&(he+=4294967296),he}function g1_512_hi(D,te){var he=Xc(D,te,19)^Xc(te,D,29)^Zc(D,te,6);return he<0&&(he+=4294967296),he}function g1_512_lo(D,te){var he=Qc(D,te,19)^Qc(te,D,29)^Yc(D,te,6);return he<0&&(he+=4294967296),he}SHA512$2.blockSize=1024,SHA512$2.outSize=512,SHA512$2.hmacStrength=192,SHA512$2.padLength=128,SHA512$2.prototype._prepareBlock=function _prepareBlock(D,te){for(var he=this.W,ye=0;ye<32;ye++)he[ye]=D[te+ye];for(;ye<he.length;ye+=2){var be=g1_512_hi(he[ye-4],he[ye-3]),ve=g1_512_lo(he[ye-4],he[ye-3]),we=he[ye-14],_e=he[ye-13],Pe=g0_512_hi(he[ye-30],he[ye-29]),Ie=g0_512_lo(he[ye-30],he[ye-29]),Re=he[ye-32],ke=he[ye-31];he[ye]=nd(be,ve,we,_e,Pe,Ie,Re,ke),he[ye+1]=ad(be,ve,we,_e,Pe,Ie,Re,ke)}},SHA512$2.prototype._update=function _update(D,te){this._prepareBlock(D,te);var he=this.W,ye=this.h[0],be=this.h[1],ve=this.h[2],we=this.h[3],_e=this.h[4],Pe=this.h[5],Ie=this.h[6],Re=this.h[7],ke=this.h[8],Oe=this.h[9],xe=this.h[10],Be=this.h[11],Fe=this.h[12],De=this.h[13],Le=this.h[14],Ue=this.h[15];Jc(this.k.length===he.length);for(var qe=0;qe<he.length;qe+=2){var je=Le,Je=Ue,et=s1_512_hi(ke,Oe),tt=s1_512_lo(ke,Oe),rt=ch64_hi(ke,Oe,xe,Be,Fe),nt=ch64_lo(ke,Oe,xe,Be,Fe,De),at=this.k[qe],ut=this.k[qe+1],ht=he[qe],yt=he[qe+1],mt=sd(je,Je,et,tt,rt,nt,at,ut,ht,yt),bt=od(je,Je,et,tt,rt,nt,at,ut,ht,yt);je=s0_512_hi(ye,be),Je=s0_512_lo(ye,be),et=maj64_hi(ye,be,ve,we,_e),tt=maj64_lo(ye,be,ve,we,_e,Pe);var wt=td(je,Je,et,tt),_t=rd(je,Je,et,tt);Le=Fe,Ue=De,Fe=xe,De=Be,xe=ke,Be=Oe,ke=td(Ie,Re,mt,bt),Oe=rd(Re,Re,mt,bt),Ie=_e,Re=Pe,_e=ve,Pe=we,ve=ye,we=be,ye=td(mt,bt,wt,_t),be=rd(mt,bt,wt,_t)}ed(this.h,0,ye,be),ed(this.h,2,ve,we),ed(this.h,4,_e,Pe),ed(this.h,6,Ie,Re),ed(this.h,8,ke,Oe),ed(this.h,10,xe,Be),ed(this.h,12,Fe,De),ed(this.h,14,Le,Ue)},SHA512$2.prototype._digest=function digest(D){return"hex"===D?Vc.toHex32(this.h,"big"):Vc.split32(this.h,"big")};var fd=sc,ld=ud;function SHA384(){if(!(this instanceof SHA384))return new SHA384;ld.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}fd.inherits(SHA384,ld);var pd=SHA384;SHA384.blockSize=1024,SHA384.outSize=384,SHA384.hmacStrength=192,SHA384.padLength=128,SHA384.prototype._digest=function digest(D){return"hex"===D?fd.toHex32(this.h.slice(0,12),"big"):fd.split32(this.h.slice(0,12),"big")},yc.sha1=Cc,yc.sha224=Wc,yc.sha256=jc,yc.sha384=pd,yc.sha512=ud;var hd={},yd=sc,md=lc,bd=yd.rotl32,gd=yd.sum32,vd=yd.sum32_3,wd=yd.sum32_4,_d=md.BlockHash;function RIPEMD160$3(){if(!(this instanceof RIPEMD160$3))return new RIPEMD160$3;_d.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}function f$3(D,te,he,ye){return D<=15?te^he^ye:D<=31?te&he|~te&ye:D<=47?(te|~he)^ye:D<=63?te&ye|he&~ye:te^(he|~ye)}function K$5(D){return D<=15?0:D<=31?1518500249:D<=47?1859775393:D<=63?2400959708:2840853838}function Kh(D){return D<=15?1352829926:D<=31?1548603684:D<=47?1836072691:D<=63?2053994217:0}yd.inherits(RIPEMD160$3,_d),hd.ripemd160=RIPEMD160$3,RIPEMD160$3.blockSize=512,RIPEMD160$3.outSize=160,RIPEMD160$3.hmacStrength=192,RIPEMD160$3.padLength=64,RIPEMD160$3.prototype._update=function update(D,te){for(var he=this.h[0],ye=this.h[1],be=this.h[2],ve=this.h[3],we=this.h[4],_e=he,Pe=ye,Ie=be,Re=ve,ke=we,Oe=0;Oe<80;Oe++){var xe=gd(bd(wd(he,f$3(Oe,ye,be,ve),D[Td[Oe]+te],K$5(Oe)),Ed[Oe]),we);he=we,we=ve,ve=bd(be,10),be=ye,ye=xe,xe=gd(bd(wd(_e,f$3(79-Oe,Pe,Ie,Re),D[Ad[Oe]+te],Kh(Oe)),Pd[Oe]),ke),_e=ke,ke=Re,Re=bd(Ie,10),Ie=Pe,Pe=xe}xe=vd(this.h[1],be,Re),this.h[1]=vd(this.h[2],ve,ke),this.h[2]=vd(this.h[3],we,_e),this.h[3]=vd(this.h[4],he,Pe),this.h[4]=vd(this.h[0],ye,Ie),this.h[0]=xe},RIPEMD160$3.prototype._digest=function digest(D){return"hex"===D?yd.toHex32(this.h,"little"):yd.split32(this.h,"little")};var Td=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Ad=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Ed=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Pd=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Sd=sc,Cd=oc;function Hmac$2(D,te,he){if(!(this instanceof Hmac$2))return new Hmac$2(D,te,he);this.Hash=D,this.blockSize=D.blockSize/8,this.outSize=D.outSize/8,this.inner=null,this.outer=null,this._init(Sd.toArray(te,he))}var Id=Hmac$2;Hmac$2.prototype._init=function init(D){D.length>this.blockSize&&(D=(new this.Hash).update(D).digest()),Cd(D.length<=this.blockSize);for(var te=D.length;te<this.blockSize;te++)D.push(0);for(te=0;te<D.length;te++)D[te]^=54;for(this.inner=(new this.Hash).update(D),te=0;te<D.length;te++)D[te]^=106;this.outer=(new this.Hash).update(D)},Hmac$2.prototype.update=function update(D,te){return this.inner.update(D,te),this},Hmac$2.prototype.digest=function digest(D){return this.outer.update(this.inner.digest()),this.outer.digest(D)},function(D){var te=D;te.utils=sc,te.common=lc,te.sha=yc,te.ripemd=hd,te.hmac=Id,te.sha1=te.sha.sha1,te.sha256=te.sha.sha256,te.sha224=te.sha.sha224,te.sha384=te.sha.sha384,te.sha512=te.sha.sha512,te.ripemd160=te.ripemd.ripemd160}(ic);var Rd=getDefaultExportFromCjs$1(ic);function createCommonjsModule$1(D,te,he){return he={path:te,exports:{},require:function(D,te){return function commonjsRequire$1(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==te&&he.path)}},D(he,he.exports),he.exports}var kd=assert$n;function assert$n(D,te){if(!D)throw new Error(te||"Assertion failed")}assert$n.equal=function assertEqual(D,te,he){if(D!=te)throw new Error(he||"Assertion failed: "+D+" != "+te)};var Od=createCommonjsModule$1((function(D,te){var he=te;function zero2(D){return 1===D.length?"0"+D:D}function toHex(D){for(var te="",he=0;he<D.length;he++)te+=zero2(D[he].toString(16));return te}he.toArray=function toArray(D,te){if(Array.isArray(D))return D.slice();if(!D)return[];var he=[];if("string"!=typeof D){for(var ye=0;ye<D.length;ye++)he[ye]=0|D[ye];return he}if("hex"===te){(D=D.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(D="0"+D);for(ye=0;ye<D.length;ye+=2)he.push(parseInt(D[ye]+D[ye+1],16))}else for(ye=0;ye<D.length;ye++){var be=D.charCodeAt(ye),ve=be>>8,we=255&be;ve?he.push(ve,we):he.push(we)}return he},he.zero2=zero2,he.toHex=toHex,he.encode=function encode(D,te){return"hex"===te?toHex(D):D}})),xd=createCommonjsModule$1((function(D,te){var he=te;he.assert=kd,he.toArray=Od.toArray,he.zero2=Od.zero2,he.toHex=Od.toHex,he.encode=Od.encode,he.getNAF=function getNAF(D,te,he){var ye=new Array(Math.max(D.bitLength(),he)+1);ye.fill(0);for(var be=1<<te+1,ve=D.clone(),we=0;we<ye.length;we++){var _e,Pe=ve.andln(be-1);ve.isOdd()?(_e=Pe>(be>>1)-1?(be>>1)-Pe:Pe,ve.isubn(_e)):_e=0,ye[we]=_e,ve.iushrn(1)}return ye},he.getJSF=function getJSF(D,te){var he=[[],[]];D=D.clone(),te=te.clone();for(var ye,be=0,ve=0;D.cmpn(-be)>0||te.cmpn(-ve)>0;){var we,_e,Pe=D.andln(3)+be&3,Ie=te.andln(3)+ve&3;3===Pe&&(Pe=-1),3===Ie&&(Ie=-1),we=0==(1&Pe)?0:3!==(ye=D.andln(7)+be&7)&&5!==ye||2!==Ie?Pe:-Pe,he[0].push(we),_e=0==(1&Ie)?0:3!==(ye=te.andln(7)+ve&7)&&5!==ye||2!==Pe?Ie:-Ie,he[1].push(_e),2*be===we+1&&(be=1-be),2*ve===_e+1&&(ve=1-ve),D.iushrn(1),te.iushrn(1)}return he},he.cachedProperty=function cachedProperty(D,te,he){var ye="_"+te;D.prototype[te]=function cachedProperty(){return void 0!==this[ye]?this[ye]:this[ye]=he.call(this)}},he.parseBytes=function parseBytes(D){return"string"==typeof D?he.toArray(D,"hex"):D},he.intFromLE=function intFromLE(D){return new Oi(D,"hex","le")}})),Nd=xd.getNAF,Md=xd.getJSF,Bd=xd.assert;function BaseCurve$2(D,te){this.type=D,this.p=new Oi(te.p,16),this.red=te.prime?Oi.red(te.prime):Oi.mont(this.p),this.zero=new Oi(0).toRed(this.red),this.one=new Oi(1).toRed(this.red),this.two=new Oi(2).toRed(this.red),this.n=te.n&&new Oi(te.n,16),this.g=te.g&&this.pointFromJSON(te.g,te.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var he=this.n&&this.p.div(this.n);!he||he.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var Fd=BaseCurve$2;function BasePoint$2(D,te){this.curve=D,this.type=te,this.precomputed=null}BaseCurve$2.prototype.point=function point(){throw new Error("Not implemented")},BaseCurve$2.prototype.validate=function validate(){throw new Error("Not implemented")},BaseCurve$2.prototype._fixedNafMul=function _fixedNafMul(D,te){Bd(D.precomputed);var he=D._getDoubles(),ye=Nd(te,1,this._bitLength),be=(1<<he.step+1)-(he.step%2==0?2:1);be/=3;var ve,we,_e=[];for(ve=0;ve<ye.length;ve+=he.step){we=0;for(var Pe=ve+he.step-1;Pe>=ve;Pe--)we=(we<<1)+ye[Pe];_e.push(we)}for(var Ie=this.jpoint(null,null,null),Re=this.jpoint(null,null,null),ke=be;ke>0;ke--){for(ve=0;ve<_e.length;ve++)(we=_e[ve])===ke?Re=Re.mixedAdd(he.points[ve]):we===-ke&&(Re=Re.mixedAdd(he.points[ve].neg()));Ie=Ie.add(Re)}return Ie.toP()},BaseCurve$2.prototype._wnafMul=function _wnafMul(D,te){var he=4,ye=D._getNAFPoints(he);he=ye.wnd;for(var be=ye.points,ve=Nd(te,he,this._bitLength),we=this.jpoint(null,null,null),_e=ve.length-1;_e>=0;_e--){for(var Pe=0;_e>=0&&0===ve[_e];_e--)Pe++;if(_e>=0&&Pe++,we=we.dblp(Pe),_e<0)break;var Ie=ve[_e];Bd(0!==Ie),we="affine"===D.type?Ie>0?we.mixedAdd(be[Ie-1>>1]):we.mixedAdd(be[-Ie-1>>1].neg()):Ie>0?we.add(be[Ie-1>>1]):we.add(be[-Ie-1>>1].neg())}return"affine"===D.type?we.toP():we},BaseCurve$2.prototype._wnafMulAdd=function _wnafMulAdd(D,te,he,ye,be){var ve,we,_e,Pe=this._wnafT1,Ie=this._wnafT2,Re=this._wnafT3,ke=0;for(ve=0;ve<ye;ve++){var Oe=(_e=te[ve])._getNAFPoints(D);Pe[ve]=Oe.wnd,Ie[ve]=Oe.points}for(ve=ye-1;ve>=1;ve-=2){var xe=ve-1,Be=ve;if(1===Pe[xe]&&1===Pe[Be]){var Fe=[te[xe],null,null,te[Be]];0===te[xe].y.cmp(te[Be].y)?(Fe[1]=te[xe].add(te[Be]),Fe[2]=te[xe].toJ().mixedAdd(te[Be].neg())):0===te[xe].y.cmp(te[Be].y.redNeg())?(Fe[1]=te[xe].toJ().mixedAdd(te[Be]),Fe[2]=te[xe].add(te[Be].neg())):(Fe[1]=te[xe].toJ().mixedAdd(te[Be]),Fe[2]=te[xe].toJ().mixedAdd(te[Be].neg()));var De=[-3,-1,-5,-7,0,7,5,1,3],Le=Md(he[xe],he[Be]);for(ke=Math.max(Le[0].length,ke),Re[xe]=new Array(ke),Re[Be]=new Array(ke),we=0;we<ke;we++){var Ue=0|Le[0][we],qe=0|Le[1][we];Re[xe][we]=De[3*(Ue+1)+(qe+1)],Re[Be][we]=0,Ie[xe]=Fe}}else Re[xe]=Nd(he[xe],Pe[xe],this._bitLength),Re[Be]=Nd(he[Be],Pe[Be],this._bitLength),ke=Math.max(Re[xe].length,ke),ke=Math.max(Re[Be].length,ke)}var je=this.jpoint(null,null,null),Je=this._wnafT4;for(ve=ke;ve>=0;ve--){for(var et=0;ve>=0;){var tt=!0;for(we=0;we<ye;we++)Je[we]=0|Re[we][ve],0!==Je[we]&&(tt=!1);if(!tt)break;et++,ve--}if(ve>=0&&et++,je=je.dblp(et),ve<0)break;for(we=0;we<ye;we++){var rt=Je[we];0!==rt&&(rt>0?_e=Ie[we][rt-1>>1]:rt<0&&(_e=Ie[we][-rt-1>>1].neg()),je="affine"===_e.type?je.mixedAdd(_e):je.add(_e))}}for(ve=0;ve<ye;ve++)Ie[ve]=null;return be?je:je.toP()},BaseCurve$2.BasePoint=BasePoint$2,BasePoint$2.prototype.eq=function eq(){throw new Error("Not implemented")},BasePoint$2.prototype.validate=function validate(){return this.curve.validate(this)},BaseCurve$2.prototype.decodePoint=function decodePoint(D,te){D=xd.toArray(D,te);var he=this.p.byteLength();if((4===D[0]||6===D[0]||7===D[0])&&D.length-1==2*he)return 6===D[0]?Bd(D[D.length-1]%2==0):7===D[0]&&Bd(D[D.length-1]%2==1),this.point(D.slice(1,1+he),D.slice(1+he,1+2*he));if((2===D[0]||3===D[0])&&D.length-1===he)return this.pointFromX(D.slice(1,1+he),3===D[0]);throw new Error("Unknown point format")},BasePoint$2.prototype.encodeCompressed=function encodeCompressed(D){return this.encode(D,!0)},BasePoint$2.prototype._encode=function _encode(D){var te=this.curve.p.byteLength(),he=this.getX().toArray("be",te);return D?[this.getY().isEven()?2:3].concat(he):[4].concat(he,this.getY().toArray("be",te))},BasePoint$2.prototype.encode=function encode(D,te){return xd.encode(this._encode(te),D)},BasePoint$2.prototype.precompute=function precompute(D){if(this.precomputed)return this;var te={doubles:null,naf:null,beta:null};return te.naf=this._getNAFPoints(8),te.doubles=this._getDoubles(4,D),te.beta=this._getBeta(),this.precomputed=te,this},BasePoint$2.prototype._hasDoubles=function _hasDoubles(D){if(!this.precomputed)return!1;var te=this.precomputed.doubles;return!!te&&te.points.length>=Math.ceil((D.bitLength()+1)/te.step)},BasePoint$2.prototype._getDoubles=function _getDoubles(D,te){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var he=[this],ye=this,be=0;be<te;be+=D){for(var ve=0;ve<D;ve++)ye=ye.dbl();he.push(ye)}return{step:D,points:he}},BasePoint$2.prototype._getNAFPoints=function _getNAFPoints(D){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var te=[this],he=(1<<D)-1,ye=1===he?null:this.dbl(),be=1;be<he;be++)te[be]=te[be-1].add(ye);return{wnd:D,points:te}},BasePoint$2.prototype._getBeta=function _getBeta(){return null},BasePoint$2.prototype.dblp=function dblp(D){for(var te=this,he=0;he<D;he++)te=te.dbl();return te};var Dd=createCommonjsModule$1((function(D){"function"==typeof Object.create?D.exports=function inherits(D,te){te&&(D.super_=te,D.prototype=Object.create(te.prototype,{constructor:{value:D,enumerable:!1,writable:!0,configurable:!0}}))}:D.exports=function inherits(D,te){if(te){D.super_=te;var TempCtor=function(){};TempCtor.prototype=te.prototype,D.prototype=new TempCtor,D.prototype.constructor=D}}})),Ld=xd.assert;function ShortCurve$2(D){Fd.call(this,"short",D),this.a=new Oi(D.a,16).toRed(this.red),this.b=new Oi(D.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(D),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Dd(ShortCurve$2,Fd);var Ud=ShortCurve$2;function Point$6(D,te,he,ye){Fd.BasePoint.call(this,D,"affine"),null===te&&null===he?(this.x=null,this.y=null,this.inf=!0):(this.x=new Oi(te,16),this.y=new Oi(he,16),ye&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function JPoint$2(D,te,he,ye){Fd.BasePoint.call(this,D,"jacobian"),null===te&&null===he&&null===ye?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Oi(0)):(this.x=new Oi(te,16),this.y=new Oi(he,16),this.z=new Oi(ye,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}ShortCurve$2.prototype._getEndomorphism=function _getEndomorphism(D){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var te,he;if(D.beta)te=new Oi(D.beta,16).toRed(this.red);else{var ye=this._getEndoRoots(this.p);te=(te=ye[0].cmp(ye[1])<0?ye[0]:ye[1]).toRed(this.red)}if(D.lambda)he=new Oi(D.lambda,16);else{var be=this._getEndoRoots(this.n);0===this.g.mul(be[0]).x.cmp(this.g.x.redMul(te))?he=be[0]:(he=be[1],Ld(0===this.g.mul(he).x.cmp(this.g.x.redMul(te))))}return{beta:te,lambda:he,basis:D.basis?D.basis.map((function(D){return{a:new Oi(D.a,16),b:new Oi(D.b,16)}})):this._getEndoBasis(he)}}},ShortCurve$2.prototype._getEndoRoots=function _getEndoRoots(D){var te=D===this.p?this.red:Oi.mont(D),he=new Oi(2).toRed(te).redInvm(),ye=he.redNeg(),be=new Oi(3).toRed(te).redNeg().redSqrt().redMul(he);return[ye.redAdd(be).fromRed(),ye.redSub(be).fromRed()]},ShortCurve$2.prototype._getEndoBasis=function _getEndoBasis(D){for(var te,he,ye,be,ve,we,_e,Pe,Ie,Re=this.n.ushrn(Math.floor(this.n.bitLength()/2)),ke=D,Oe=this.n.clone(),xe=new Oi(1),Be=new Oi(0),Fe=new Oi(0),De=new Oi(1),Le=0;0!==ke.cmpn(0);){var Ue=Oe.div(ke);Pe=Oe.sub(Ue.mul(ke)),Ie=Fe.sub(Ue.mul(xe));var qe=De.sub(Ue.mul(Be));if(!ye&&Pe.cmp(Re)<0)te=_e.neg(),he=xe,ye=Pe.neg(),be=Ie;else if(ye&&2==++Le)break;_e=Pe,Oe=ke,ke=Pe,Fe=xe,xe=Ie,De=Be,Be=qe}ve=Pe.neg(),we=Ie;var je=ye.sqr().add(be.sqr());return ve.sqr().add(we.sqr()).cmp(je)>=0&&(ve=te,we=he),ye.negative&&(ye=ye.neg(),be=be.neg()),ve.negative&&(ve=ve.neg(),we=we.neg()),[{a:ye,b:be},{a:ve,b:we}]},ShortCurve$2.prototype._endoSplit=function _endoSplit(D){var te=this.endo.basis,he=te[0],ye=te[1],be=ye.b.mul(D).divRound(this.n),ve=he.b.neg().mul(D).divRound(this.n),we=be.mul(he.a),_e=ve.mul(ye.a),Pe=be.mul(he.b),Ie=ve.mul(ye.b);return{k1:D.sub(we).sub(_e),k2:Pe.add(Ie).neg()}},ShortCurve$2.prototype.pointFromX=function pointFromX(D,te){(D=new Oi(D,16)).red||(D=D.toRed(this.red));var he=D.redSqr().redMul(D).redIAdd(D.redMul(this.a)).redIAdd(this.b),ye=he.redSqrt();if(0!==ye.redSqr().redSub(he).cmp(this.zero))throw new Error("invalid point");var be=ye.fromRed().isOdd();return(te&&!be||!te&&be)&&(ye=ye.redNeg()),this.point(D,ye)},ShortCurve$2.prototype.validate=function validate(D){if(D.inf)return!0;var te=D.x,he=D.y,ye=this.a.redMul(te),be=te.redSqr().redMul(te).redIAdd(ye).redIAdd(this.b);return 0===he.redSqr().redISub(be).cmpn(0)},ShortCurve$2.prototype._endoWnafMulAdd=function _endoWnafMulAdd(D,te,he){for(var ye=this._endoWnafT1,be=this._endoWnafT2,ve=0;ve<D.length;ve++){var we=this._endoSplit(te[ve]),_e=D[ve],Pe=_e._getBeta();we.k1.negative&&(we.k1.ineg(),_e=_e.neg(!0)),we.k2.negative&&(we.k2.ineg(),Pe=Pe.neg(!0)),ye[2*ve]=_e,ye[2*ve+1]=Pe,be[2*ve]=we.k1,be[2*ve+1]=we.k2}for(var Ie=this._wnafMulAdd(1,ye,be,2*ve,he),Re=0;Re<2*ve;Re++)ye[Re]=null,be[Re]=null;return Ie},Dd(Point$6,Fd.BasePoint),ShortCurve$2.prototype.point=function point(D,te,he){return new Point$6(this,D,te,he)},ShortCurve$2.prototype.pointFromJSON=function pointFromJSON(D,te){return Point$6.fromJSON(this,D,te)},Point$6.prototype._getBeta=function _getBeta(){if(this.curve.endo){var D=this.precomputed;if(D&&D.beta)return D.beta;var te=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(D){var he=this.curve,endoMul=function(D){return he.point(D.x.redMul(he.endo.beta),D.y)};D.beta=te,te.precomputed={beta:null,naf:D.naf&&{wnd:D.naf.wnd,points:D.naf.points.map(endoMul)},doubles:D.doubles&&{step:D.doubles.step,points:D.doubles.points.map(endoMul)}}}return te}},Point$6.prototype.toJSON=function toJSON(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},Point$6.fromJSON=function fromJSON(D,te,he){"string"==typeof te&&(te=JSON.parse(te));var ye=D.point(te[0],te[1],he);if(!te[2])return ye;function obj2point(te){return D.point(te[0],te[1],he)}var be=te[2];return ye.precomputed={beta:null,doubles:be.doubles&&{step:be.doubles.step,points:[ye].concat(be.doubles.points.map(obj2point))},naf:be.naf&&{wnd:be.naf.wnd,points:[ye].concat(be.naf.points.map(obj2point))}},ye},Point$6.prototype.inspect=function inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},Point$6.prototype.isInfinity=function isInfinity(){return this.inf},Point$6.prototype.add=function add(D){if(this.inf)return D;if(D.inf)return this;if(this.eq(D))return this.dbl();if(this.neg().eq(D))return this.curve.point(null,null);if(0===this.x.cmp(D.x))return this.curve.point(null,null);var te=this.y.redSub(D.y);0!==te.cmpn(0)&&(te=te.redMul(this.x.redSub(D.x).redInvm()));var he=te.redSqr().redISub(this.x).redISub(D.x),ye=te.redMul(this.x.redSub(he)).redISub(this.y);return this.curve.point(he,ye)},Point$6.prototype.dbl=function dbl(){if(this.inf)return this;var D=this.y.redAdd(this.y);if(0===D.cmpn(0))return this.curve.point(null,null);var te=this.curve.a,he=this.x.redSqr(),ye=D.redInvm(),be=he.redAdd(he).redIAdd(he).redIAdd(te).redMul(ye),ve=be.redSqr().redISub(this.x.redAdd(this.x)),we=be.redMul(this.x.redSub(ve)).redISub(this.y);return this.curve.point(ve,we)},Point$6.prototype.getX=function getX(){return this.x.fromRed()},Point$6.prototype.getY=function getY(){return this.y.fromRed()},Point$6.prototype.mul=function mul(D){return D=new Oi(D,16),this.isInfinity()?this:this._hasDoubles(D)?this.curve._fixedNafMul(this,D):this.curve.endo?this.curve._endoWnafMulAdd([this],[D]):this.curve._wnafMul(this,D)},Point$6.prototype.mulAdd=function mulAdd(D,te,he){var ye=[this,te],be=[D,he];return this.curve.endo?this.curve._endoWnafMulAdd(ye,be):this.curve._wnafMulAdd(1,ye,be,2)},Point$6.prototype.jmulAdd=function jmulAdd(D,te,he){var ye=[this,te],be=[D,he];return this.curve.endo?this.curve._endoWnafMulAdd(ye,be,!0):this.curve._wnafMulAdd(1,ye,be,2,!0)},Point$6.prototype.eq=function eq(D){return this===D||this.inf===D.inf&&(this.inf||0===this.x.cmp(D.x)&&0===this.y.cmp(D.y))},Point$6.prototype.neg=function neg(D){if(this.inf)return this;var te=this.curve.point(this.x,this.y.redNeg());if(D&&this.precomputed){var he=this.precomputed,negate=function(D){return D.neg()};te.precomputed={naf:he.naf&&{wnd:he.naf.wnd,points:he.naf.points.map(negate)},doubles:he.doubles&&{step:he.doubles.step,points:he.doubles.points.map(negate)}}}return te},Point$6.prototype.toJ=function toJ(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Dd(JPoint$2,Fd.BasePoint),ShortCurve$2.prototype.jpoint=function jpoint(D,te,he){return new JPoint$2(this,D,te,he)},JPoint$2.prototype.toP=function toP(){if(this.isInfinity())return this.curve.point(null,null);var D=this.z.redInvm(),te=D.redSqr(),he=this.x.redMul(te),ye=this.y.redMul(te).redMul(D);return this.curve.point(he,ye)},JPoint$2.prototype.neg=function neg(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint$2.prototype.add=function add(D){if(this.isInfinity())return D;if(D.isInfinity())return this;var te=D.z.redSqr(),he=this.z.redSqr(),ye=this.x.redMul(te),be=D.x.redMul(he),ve=this.y.redMul(te.redMul(D.z)),we=D.y.redMul(he.redMul(this.z)),_e=ye.redSub(be),Pe=ve.redSub(we);if(0===_e.cmpn(0))return 0!==Pe.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var Ie=_e.redSqr(),Re=Ie.redMul(_e),ke=ye.redMul(Ie),Oe=Pe.redSqr().redIAdd(Re).redISub(ke).redISub(ke),xe=Pe.redMul(ke.redISub(Oe)).redISub(ve.redMul(Re)),Be=this.z.redMul(D.z).redMul(_e);return this.curve.jpoint(Oe,xe,Be)},JPoint$2.prototype.mixedAdd=function mixedAdd(D){if(this.isInfinity())return D.toJ();if(D.isInfinity())return this;var te=this.z.redSqr(),he=this.x,ye=D.x.redMul(te),be=this.y,ve=D.y.redMul(te).redMul(this.z),we=he.redSub(ye),_e=be.redSub(ve);if(0===we.cmpn(0))return 0!==_e.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var Pe=we.redSqr(),Ie=Pe.redMul(we),Re=he.redMul(Pe),ke=_e.redSqr().redIAdd(Ie).redISub(Re).redISub(Re),Oe=_e.redMul(Re.redISub(ke)).redISub(be.redMul(Ie)),xe=this.z.redMul(we);return this.curve.jpoint(ke,Oe,xe)},JPoint$2.prototype.dblp=function dblp(D){if(0===D)return this;if(this.isInfinity())return this;if(!D)return this.dbl();var te;if(this.curve.zeroA||this.curve.threeA){var he=this;for(te=0;te<D;te++)he=he.dbl();return he}var ye=this.curve.a,be=this.curve.tinv,ve=this.x,we=this.y,_e=this.z,Pe=_e.redSqr().redSqr(),Ie=we.redAdd(we);for(te=0;te<D;te++){var Re=ve.redSqr(),ke=Ie.redSqr(),Oe=ke.redSqr(),xe=Re.redAdd(Re).redIAdd(Re).redIAdd(ye.redMul(Pe)),Be=ve.redMul(ke),Fe=xe.redSqr().redISub(Be.redAdd(Be)),De=Be.redISub(Fe),Le=xe.redMul(De);Le=Le.redIAdd(Le).redISub(Oe);var Ue=Ie.redMul(_e);te+1<D&&(Pe=Pe.redMul(Oe)),ve=Fe,_e=Ue,Ie=Le}return this.curve.jpoint(ve,Ie.redMul(be),_e)},JPoint$2.prototype.dbl=function dbl(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},JPoint$2.prototype._zeroDbl=function _zeroDbl(){var D,te,he;if(this.zOne){var ye=this.x.redSqr(),be=this.y.redSqr(),ve=be.redSqr(),we=this.x.redAdd(be).redSqr().redISub(ye).redISub(ve);we=we.redIAdd(we);var _e=ye.redAdd(ye).redIAdd(ye),Pe=_e.redSqr().redISub(we).redISub(we),Ie=ve.redIAdd(ve);Ie=(Ie=Ie.redIAdd(Ie)).redIAdd(Ie),D=Pe,te=_e.redMul(we.redISub(Pe)).redISub(Ie),he=this.y.redAdd(this.y)}else{var Re=this.x.redSqr(),ke=this.y.redSqr(),Oe=ke.redSqr(),xe=this.x.redAdd(ke).redSqr().redISub(Re).redISub(Oe);xe=xe.redIAdd(xe);var Be=Re.redAdd(Re).redIAdd(Re),Fe=Be.redSqr(),De=Oe.redIAdd(Oe);De=(De=De.redIAdd(De)).redIAdd(De),D=Fe.redISub(xe).redISub(xe),te=Be.redMul(xe.redISub(D)).redISub(De),he=(he=this.y.redMul(this.z)).redIAdd(he)}return this.curve.jpoint(D,te,he)},JPoint$2.prototype._threeDbl=function _threeDbl(){var D,te,he;if(this.zOne){var ye=this.x.redSqr(),be=this.y.redSqr(),ve=be.redSqr(),we=this.x.redAdd(be).redSqr().redISub(ye).redISub(ve);we=we.redIAdd(we);var _e=ye.redAdd(ye).redIAdd(ye).redIAdd(this.curve.a),Pe=_e.redSqr().redISub(we).redISub(we);D=Pe;var Ie=ve.redIAdd(ve);Ie=(Ie=Ie.redIAdd(Ie)).redIAdd(Ie),te=_e.redMul(we.redISub(Pe)).redISub(Ie),he=this.y.redAdd(this.y)}else{var Re=this.z.redSqr(),ke=this.y.redSqr(),Oe=this.x.redMul(ke),xe=this.x.redSub(Re).redMul(this.x.redAdd(Re));xe=xe.redAdd(xe).redIAdd(xe);var Be=Oe.redIAdd(Oe),Fe=(Be=Be.redIAdd(Be)).redAdd(Be);D=xe.redSqr().redISub(Fe),he=this.y.redAdd(this.z).redSqr().redISub(ke).redISub(Re);var De=ke.redSqr();De=(De=(De=De.redIAdd(De)).redIAdd(De)).redIAdd(De),te=xe.redMul(Be.redISub(D)).redISub(De)}return this.curve.jpoint(D,te,he)},JPoint$2.prototype._dbl=function _dbl(){var D=this.curve.a,te=this.x,he=this.y,ye=this.z,be=ye.redSqr().redSqr(),ve=te.redSqr(),we=he.redSqr(),_e=ve.redAdd(ve).redIAdd(ve).redIAdd(D.redMul(be)),Pe=te.redAdd(te),Ie=(Pe=Pe.redIAdd(Pe)).redMul(we),Re=_e.redSqr().redISub(Ie.redAdd(Ie)),ke=Ie.redISub(Re),Oe=we.redSqr();Oe=(Oe=(Oe=Oe.redIAdd(Oe)).redIAdd(Oe)).redIAdd(Oe);var xe=_e.redMul(ke).redISub(Oe),Be=he.redAdd(he).redMul(ye);return this.curve.jpoint(Re,xe,Be)},JPoint$2.prototype.trpl=function trpl(){if(!this.curve.zeroA)return this.dbl().add(this);var D=this.x.redSqr(),te=this.y.redSqr(),he=this.z.redSqr(),ye=te.redSqr(),be=D.redAdd(D).redIAdd(D),ve=be.redSqr(),we=this.x.redAdd(te).redSqr().redISub(D).redISub(ye),_e=(we=(we=(we=we.redIAdd(we)).redAdd(we).redIAdd(we)).redISub(ve)).redSqr(),Pe=ye.redIAdd(ye);Pe=(Pe=(Pe=Pe.redIAdd(Pe)).redIAdd(Pe)).redIAdd(Pe);var Ie=be.redIAdd(we).redSqr().redISub(ve).redISub(_e).redISub(Pe),Re=te.redMul(Ie);Re=(Re=Re.redIAdd(Re)).redIAdd(Re);var ke=this.x.redMul(_e).redISub(Re);ke=(ke=ke.redIAdd(ke)).redIAdd(ke);var Oe=this.y.redMul(Ie.redMul(Pe.redISub(Ie)).redISub(we.redMul(_e)));Oe=(Oe=(Oe=Oe.redIAdd(Oe)).redIAdd(Oe)).redIAdd(Oe);var xe=this.z.redAdd(we).redSqr().redISub(he).redISub(_e);return this.curve.jpoint(ke,Oe,xe)},JPoint$2.prototype.mul=function mul(D,te){return D=new Oi(D,te),this.curve._wnafMul(this,D)},JPoint$2.prototype.eq=function eq(D){if("affine"===D.type)return this.eq(D.toJ());if(this===D)return!0;var te=this.z.redSqr(),he=D.z.redSqr();if(0!==this.x.redMul(he).redISub(D.x.redMul(te)).cmpn(0))return!1;var ye=te.redMul(this.z),be=he.redMul(D.z);return 0===this.y.redMul(be).redISub(D.y.redMul(ye)).cmpn(0)},JPoint$2.prototype.eqXToP=function eqXToP(D){var te=this.z.redSqr(),he=D.toRed(this.curve.red).redMul(te);if(0===this.x.cmp(he))return!0;for(var ye=D.clone(),be=this.curve.redN.redMul(te);;){if(ye.iadd(this.curve.n),ye.cmp(this.curve.p)>=0)return!1;if(he.redIAdd(be),0===this.x.cmp(he))return!0}},JPoint$2.prototype.inspect=function inspect(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},JPoint$2.prototype.isInfinity=function isInfinity(){return 0===this.z.cmpn(0)};var $d=createCommonjsModule$1((function(D,te){var he=te;he.base=Fd,he.short=Ud,he.mont=null,he.edwards=null})),qd=createCommonjsModule$1((function(D,te){var he,ye=te,be=xd.assert;function PresetCurve(D){"short"===D.type?this.curve=new $d.short(D):"edwards"===D.type?this.curve=new $d.edwards(D):this.curve=new $d.mont(D),this.g=this.curve.g,this.n=this.curve.n,this.hash=D.hash,be(this.g.validate(),"Invalid curve"),be(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function defineCurve(D,te){Object.defineProperty(ye,D,{configurable:!0,enumerable:!0,get:function(){var he=new PresetCurve(te);return Object.defineProperty(ye,D,{configurable:!0,enumerable:!0,value:he}),he}})}ye.PresetCurve=PresetCurve,defineCurve("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Rd.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),defineCurve("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Rd.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),defineCurve("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Rd.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),defineCurve("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Rd.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),defineCurve("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Rd.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Rd.sha256,gRed:!1,g:["9"]}),defineCurve("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Rd.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{he=null.crash()}catch(D){he=void 0}defineCurve("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Rd.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",he]})}));function HmacDRBG$3(D){if(!(this instanceof HmacDRBG$3))return new HmacDRBG$3(D);this.hash=D.hash,this.predResist=!!D.predResist,this.outLen=this.hash.outSize,this.minEntropy=D.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var te=Od.toArray(D.entropy,D.entropyEnc||"hex"),he=Od.toArray(D.nonce,D.nonceEnc||"hex"),ye=Od.toArray(D.pers,D.persEnc||"hex");kd(te.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(te,he,ye)}var Gd=HmacDRBG$3;HmacDRBG$3.prototype._init=function init(D,te,he){var ye=D.concat(te).concat(he);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var be=0;be<this.V.length;be++)this.K[be]=0,this.V[be]=1;this._update(ye),this._reseed=1,this.reseedInterval=281474976710656},HmacDRBG$3.prototype._hmac=function hmac(){return new Rd.hmac(this.hash,this.K)},HmacDRBG$3.prototype._update=function update(D){var te=this._hmac().update(this.V).update([0]);D&&(te=te.update(D)),this.K=te.digest(),this.V=this._hmac().update(this.V).digest(),D&&(this.K=this._hmac().update(this.V).update([1]).update(D).digest(),this.V=this._hmac().update(this.V).digest())},HmacDRBG$3.prototype.reseed=function reseed(D,te,he,ye){"string"!=typeof te&&(ye=he,he=te,te=null),D=Od.toArray(D,te),he=Od.toArray(he,ye),kd(D.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(D.concat(he||[])),this._reseed=1},HmacDRBG$3.prototype.generate=function generate(D,te,he,ye){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof te&&(ye=he,he=te,te=null),he&&(he=Od.toArray(he,ye||"hex"),this._update(he));for(var be=[];be.length<D;)this.V=this._hmac().update(this.V).digest(),be=be.concat(this.V);var ve=be.slice(0,D);return this._update(he),this._reseed++,Od.encode(ve,te)};var jd=xd.assert;function KeyPair$8(D,te){this.ec=D,this.priv=null,this.pub=null,te.priv&&this._importPrivate(te.priv,te.privEnc),te.pub&&this._importPublic(te.pub,te.pubEnc)}var Hd=KeyPair$8;KeyPair$8.fromPublic=function fromPublic(D,te,he){return te instanceof KeyPair$8?te:new KeyPair$8(D,{pub:te,pubEnc:he})},KeyPair$8.fromPrivate=function fromPrivate(D,te,he){return te instanceof KeyPair$8?te:new KeyPair$8(D,{priv:te,privEnc:he})},KeyPair$8.prototype.validate=function validate(){var D=this.getPublic();return D.isInfinity()?{result:!1,reason:"Invalid public key"}:D.validate()?D.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair$8.prototype.getPublic=function getPublic(D,te){return"string"==typeof D&&(te=D,D=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),te?this.pub.encode(te,D):this.pub},KeyPair$8.prototype.getPrivate=function getPrivate(D){return"hex"===D?this.priv.toString(16,2):this.priv},KeyPair$8.prototype._importPrivate=function _importPrivate(D,te){this.priv=new Oi(D,te||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair$8.prototype._importPublic=function _importPublic(D,te){if(D.x||D.y)return"mont"===this.ec.curve.type?jd(D.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||jd(D.x&&D.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(D.x,D.y));this.pub=this.ec.curve.decodePoint(D,te)},KeyPair$8.prototype.derive=function derive(D){return D.validate()||jd(D.validate(),"public point not validated"),D.mul(this.priv).getX()},KeyPair$8.prototype.sign=function sign(D,te,he){return this.ec.sign(D,this,te,he)},KeyPair$8.prototype.verify=function verify(D,te){return this.ec.verify(D,te,this)},KeyPair$8.prototype.inspect=function inspect(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var zd=xd.assert;function Signature$9(D,te){if(D instanceof Signature$9)return D;this._importDER(D,te)||(zd(D.r&&D.s,"Signature without r or s"),this.r=new Oi(D.r,16),this.s=new Oi(D.s,16),void 0===D.recoveryParam?this.recoveryParam=null:this.recoveryParam=D.recoveryParam)}var Wd=Signature$9;function Position$3(){this.place=0}function getLength$3(D,te){var he=D[te.place++];if(!(128&he))return he;var ye=15&he;if(0===ye||ye>4)return!1;for(var be=0,ve=0,we=te.place;ve<ye;ve++,we++)be<<=8,be|=D[we],be>>>=0;return!(be<=127)&&(te.place=we,be)}function rmPadding$2(D){for(var te=0,he=D.length-1;!D[te]&&!(128&D[te+1])&&te<he;)te++;return 0===te?D:D.slice(te)}function constructLength$2(D,te){if(te<128)D.push(te);else{var he=1+(Math.log(te)/Math.LN2>>>3);for(D.push(128|he);--he;)D.push(te>>>(he<<3)&255);D.push(te)}}Signature$9.prototype._importDER=function _importDER(D,te){D=xd.toArray(D,te);var he=new Position$3;if(48!==D[he.place++])return!1;var ye=getLength$3(D,he);if(!1===ye)return!1;if(ye+he.place!==D.length)return!1;if(2!==D[he.place++])return!1;var be=getLength$3(D,he);if(!1===be)return!1;var ve=D.slice(he.place,be+he.place);if(he.place+=be,2!==D[he.place++])return!1;var we=getLength$3(D,he);if(!1===we)return!1;if(D.length!==we+he.place)return!1;var _e=D.slice(he.place,we+he.place);if(0===ve[0]){if(!(128&ve[1]))return!1;ve=ve.slice(1)}if(0===_e[0]){if(!(128&_e[1]))return!1;_e=_e.slice(1)}return this.r=new Oi(ve),this.s=new Oi(_e),this.recoveryParam=null,!0},Signature$9.prototype.toDER=function toDER(D){var te=this.r.toArray(),he=this.s.toArray();for(128&te[0]&&(te=[0].concat(te)),128&he[0]&&(he=[0].concat(he)),te=rmPadding$2(te),he=rmPadding$2(he);!(he[0]||128&he[1]);)he=he.slice(1);var ye=[2];constructLength$2(ye,te.length),(ye=ye.concat(te)).push(2),constructLength$2(ye,he.length);var be=ye.concat(he),ve=[48];return constructLength$2(ve,be.length),ve=ve.concat(be),xd.encode(ve,D)};var rand$2=function(){throw new Error("unsupported")},Vd=xd.assert;function EC$3(D){if(!(this instanceof EC$3))return new EC$3(D);"string"==typeof D&&(Vd(Object.prototype.hasOwnProperty.call(qd,D),"Unknown curve "+D),D=qd[D]),D instanceof qd.PresetCurve&&(D={curve:D}),this.curve=D.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=D.curve.g,this.g.precompute(D.curve.n.bitLength()+1),this.hash=D.hash||D.curve.hash}var Kd=EC$3;EC$3.prototype.keyPair=function keyPair(D){return new Hd(this,D)},EC$3.prototype.keyFromPrivate=function keyFromPrivate(D,te){return Hd.fromPrivate(this,D,te)},EC$3.prototype.keyFromPublic=function keyFromPublic(D,te){return Hd.fromPublic(this,D,te)},EC$3.prototype.genKeyPair=function genKeyPair(D){D||(D={});for(var te=new Gd({hash:this.hash,pers:D.pers,persEnc:D.persEnc||"utf8",entropy:D.entropy||rand$2(this.hash.hmacStrength),entropyEnc:D.entropy&&D.entropyEnc||"utf8",nonce:this.n.toArray()}),he=this.n.byteLength(),ye=this.n.sub(new Oi(2));;){var be=new Oi(te.generate(he));if(!(be.cmp(ye)>0))return be.iaddn(1),this.keyFromPrivate(be)}},EC$3.prototype._truncateToN=function _truncateToN(D,te){var he=8*D.byteLength()-this.n.bitLength();return he>0&&(D=D.ushrn(he)),!te&&D.cmp(this.n)>=0?D.sub(this.n):D},EC$3.prototype.sign=function sign(D,te,he,ye){"object"==typeof he&&(ye=he,he=null),ye||(ye={}),te=this.keyFromPrivate(te,he),D=this._truncateToN(new Oi(D,16));for(var be=this.n.byteLength(),ve=te.getPrivate().toArray("be",be),we=D.toArray("be",be),_e=new Gd({hash:this.hash,entropy:ve,nonce:we,pers:ye.pers,persEnc:ye.persEnc||"utf8"}),Pe=this.n.sub(new Oi(1)),Ie=0;;Ie++){var Re=ye.k?ye.k(Ie):new Oi(_e.generate(this.n.byteLength()));if(!((Re=this._truncateToN(Re,!0)).cmpn(1)<=0||Re.cmp(Pe)>=0)){var ke=this.g.mul(Re);if(!ke.isInfinity()){var Oe=ke.getX(),xe=Oe.umod(this.n);if(0!==xe.cmpn(0)){var Be=Re.invm(this.n).mul(xe.mul(te.getPrivate()).iadd(D));if(0!==(Be=Be.umod(this.n)).cmpn(0)){var Fe=(ke.getY().isOdd()?1:0)|(0!==Oe.cmp(xe)?2:0);return ye.canonical&&Be.cmp(this.nh)>0&&(Be=this.n.sub(Be),Fe^=1),new Wd({r:xe,s:Be,recoveryParam:Fe})}}}}}},EC$3.prototype.verify=function verify(D,te,he,ye){D=this._truncateToN(new Oi(D,16)),he=this.keyFromPublic(he,ye);var be=(te=new Wd(te,"hex")).r,ve=te.s;if(be.cmpn(1)<0||be.cmp(this.n)>=0)return!1;if(ve.cmpn(1)<0||ve.cmp(this.n)>=0)return!1;var we,_e=ve.invm(this.n),Pe=_e.mul(D).umod(this.n),Ie=_e.mul(be).umod(this.n);return this.curve._maxwellTrick?!(we=this.g.jmulAdd(Pe,he.getPublic(),Ie)).isInfinity()&&we.eqXToP(be):!(we=this.g.mulAdd(Pe,he.getPublic(),Ie)).isInfinity()&&0===we.getX().umod(this.n).cmp(be)},EC$3.prototype.recoverPubKey=function(D,te,he,ye){Vd((3&he)===he,"The recovery param is more than two bits"),te=new Wd(te,ye);var be=this.n,ve=new Oi(D),we=te.r,_e=te.s,Pe=1&he,Ie=he>>1;if(we.cmp(this.curve.p.umod(this.curve.n))>=0&&Ie)throw new Error("Unable to find sencond key candinate");we=Ie?this.curve.pointFromX(we.add(this.curve.n),Pe):this.curve.pointFromX(we,Pe);var Re=te.r.invm(be),ke=be.sub(ve).mul(Re).umod(be),Oe=_e.mul(Re).umod(be);return this.g.mulAdd(ke,we,Oe)},EC$3.prototype.getKeyRecoveryParam=function(D,te,he,ye){if(null!==(te=new Wd(te,ye)).recoveryParam)return te.recoveryParam;for(var be=0;be<4;be++){var ve;try{ve=this.recoverPubKey(D,te,be)}catch(D){continue}if(ve.eq(he))return be}throw new Error("Unable to find valid recovery factor")};var Jd=createCommonjsModule$1((function(D,te){var he=te;he.version="6.5.4",he.utils=xd,he.rand=function(){throw new Error("unsupported")},he.curve=$d,he.curves=qd,he.ec=Kd,he.eddsa=null})),Xd=Jd.ec;const Qd=new hi("signing-key/5.7.0");let Zd=null;function getCurve(){return Zd||(Zd=new Xd("secp256k1")),Zd}let Yd=class SigningKey{constructor(D){defineReadOnly$1(this,"curve","secp256k1"),defineReadOnly$1(this,"privateKey",hexlify$2(D)),32!==hexDataLength$1(this.privateKey)&&Qd.throwArgumentError("invalid private key","privateKey","[[ REDACTED ]]");const te=getCurve().keyFromPrivate(arrayify$1(this.privateKey));defineReadOnly$1(this,"publicKey","0x"+te.getPublic(!1,"hex")),defineReadOnly$1(this,"compressedPublicKey","0x"+te.getPublic(!0,"hex")),defineReadOnly$1(this,"_isSigningKey",!0)}_addPoint(D){const te=getCurve().keyFromPublic(arrayify$1(this.publicKey)),he=getCurve().keyFromPublic(arrayify$1(D));return"0x"+te.pub.add(he.pub).encodeCompressed("hex")}signDigest(D){const te=getCurve().keyFromPrivate(arrayify$1(this.privateKey)),he=arrayify$1(D);32!==he.length&&Qd.throwArgumentError("bad digest length","digest",D);const ye=te.sign(he,{canonical:!0});return splitSignature({recoveryParam:ye.recoveryParam,r:hexZeroPad$1("0x"+ye.r.toString(16),32),s:hexZeroPad$1("0x"+ye.s.toString(16),32)})}computeSharedSecret(D){const te=getCurve().keyFromPrivate(arrayify$1(this.privateKey)),he=getCurve().keyFromPublic(arrayify$1(computePublicKey(D)));return hexZeroPad$1("0x"+te.derive(he.getPublic()).toString(16),32)}static isSigningKey(D){return!(!D||!D._isSigningKey)}};function recoverPublicKey(D,te){const he=splitSignature(te),ye={r:arrayify$1(he.r),s:arrayify$1(he.s)};return"0x"+getCurve().recoverPubKey(arrayify$1(D),ye,he.recoveryParam).encode("hex",!1)}function computePublicKey(D,te){const he=arrayify$1(D);if(32===he.length){const D=new Yd(he);return te?"0x"+getCurve().keyFromPrivate(he).getPublic(!0,"hex"):D.publicKey}return 33===he.length?te?hexlify$2(he):"0x"+getCurve().keyFromPublic(he).getPublic(!1,"hex"):65===he.length?te?"0x"+getCurve().keyFromPublic(he).getPublic(!0,"hex"):hexlify$2(he):Qd.throwArgumentError("invalid public or private key","key","[REDACTED]")}const eu=new hi("transactions/5.7.0");var tu;function handleAddress$1(D){return"0x"===D?null:getAddress$2(D)}function handleNumber$1(D){return"0x"===D?Vi:Li.from(D)}!function(D){D[D.legacy=0]="legacy",D[D.eip2930=1]="eip2930",D[D.eip1559=2]="eip1559"}(tu||(tu={}));const ru=[{name:"nonce",maxLength:32,numeric:!0},{name:"gasPrice",maxLength:32,numeric:!0},{name:"gasLimit",maxLength:32,numeric:!0},{name:"to",length:20},{name:"value",maxLength:32,numeric:!0},{name:"data"}],nu={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,type:!0,value:!0};function computeAddress$1(D){return getAddress$2(hexDataSlice$1(keccak256$3(hexDataSlice$1(computePublicKey(D),1)),12))}function recoverAddress$1(D,te){return computeAddress$1(recoverPublicKey(arrayify$1(D),te))}function formatNumber$1(D,te){const he=stripZeros$1(Li.from(D).toHexString());return he.length>32&&eu.throwArgumentError("invalid length for "+te,"transaction:"+te,D),he}function accessSetify$2(D,te){return{address:getAddress$2(D),storageKeys:(te||[]).map(((te,he)=>(32!==hexDataLength$1(te)&&eu.throwArgumentError("invalid access list storageKey",`accessList[${D}:${he}]`,te),te.toLowerCase())))}}function accessListify$2(D){if(Array.isArray(D))return D.map(((D,te)=>Array.isArray(D)?(D.length>2&&eu.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${te}]`,D),accessSetify$2(D[0],D[1])):accessSetify$2(D.address,D.storageKeys)));const te=Object.keys(D).map((te=>{const he=D[te].reduce(((D,te)=>(D[te]=!0,D)),{});return accessSetify$2(te,Object.keys(he).sort())}));return te.sort(((D,te)=>D.address.localeCompare(te.address))),te}function formatAccessList$1(D){return accessListify$2(D).map((D=>[D.address,D.storageKeys]))}function _serializeEip1559$1(D,te){if(null!=D.gasPrice){const te=Li.from(D.gasPrice),he=Li.from(D.maxFeePerGas||0);te.eq(he)||eu.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas","tx",{gasPrice:te,maxFeePerGas:he})}const he=[formatNumber$1(D.chainId||0,"chainId"),formatNumber$1(D.nonce||0,"nonce"),formatNumber$1(D.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),formatNumber$1(D.maxFeePerGas||0,"maxFeePerGas"),formatNumber$1(D.gasLimit||0,"gasLimit"),null!=D.to?getAddress$2(D.to):"0x",formatNumber$1(D.value||0,"value"),D.data||"0x",formatAccessList$1(D.accessList||[])];if(te){const D=splitSignature(te);he.push(formatNumber$1(D.recoveryParam,"recoveryParam")),he.push(stripZeros$1(D.r)),he.push(stripZeros$1(D.s))}return hexConcat$1(["0x02",encode$6(he)])}function _serializeEip2930$1(D,te){const he=[formatNumber$1(D.chainId||0,"chainId"),formatNumber$1(D.nonce||0,"nonce"),formatNumber$1(D.gasPrice||0,"gasPrice"),formatNumber$1(D.gasLimit||0,"gasLimit"),null!=D.to?getAddress$2(D.to):"0x",formatNumber$1(D.value||0,"value"),D.data||"0x",formatAccessList$1(D.accessList||[])];if(te){const D=splitSignature(te);he.push(formatNumber$1(D.recoveryParam,"recoveryParam")),he.push(stripZeros$1(D.r)),he.push(stripZeros$1(D.s))}return hexConcat$1(["0x01",encode$6(he)])}function _parseEipSignature$1(D,te,he){try{const he=handleNumber$1(te[0]).toNumber();if(0!==he&&1!==he)throw new Error("bad recid");D.v=he}catch(D){eu.throwArgumentError("invalid v for transaction type: 1","v",te[0])}D.r=hexZeroPad$1(te[1],32),D.s=hexZeroPad$1(te[2],32);try{const te=keccak256$3(he(D));D.from=recoverAddress$1(te,{r:D.r,s:D.s,recoveryParam:D.v})}catch(D){}}function parse$1(D){const te=arrayify$1(D);if(te[0]>127)return function _parse(D){const te=decode$3(D);9!==te.length&&6!==te.length&&eu.throwArgumentError("invalid raw transaction","rawTransaction",D);const he={nonce:handleNumber$1(te[0]).toNumber(),gasPrice:handleNumber$1(te[1]),gasLimit:handleNumber$1(te[2]),to:handleAddress$1(te[3]),value:handleNumber$1(te[4]),data:te[5],chainId:0};if(6===te.length)return he;try{he.v=Li.from(te[6]).toNumber()}catch(D){return he}if(he.r=hexZeroPad$1(te[7],32),he.s=hexZeroPad$1(te[8],32),Li.from(he.r).isZero()&&Li.from(he.s).isZero())he.chainId=he.v,he.v=0;else{he.chainId=Math.floor((he.v-35)/2),he.chainId<0&&(he.chainId=0);let ye=he.v-27;const be=te.slice(0,6);0!==he.chainId&&(be.push(hexlify$2(he.chainId)),be.push("0x"),be.push("0x"),ye-=2*he.chainId+8);const ve=keccak256$3(encode$6(be));try{he.from=recoverAddress$1(ve,{r:hexlify$2(he.r),s:hexlify$2(he.s),recoveryParam:ye})}catch(D){}he.hash=keccak256$3(D)}return he.type=null,he}(te);switch(te[0]){case 1:return function _parseEip2930$1(D){const te=decode$3(D.slice(1));8!==te.length&&11!==te.length&&eu.throwArgumentError("invalid component count for transaction type: 1","payload",hexlify$2(D));const he={type:1,chainId:handleNumber$1(te[0]).toNumber(),nonce:handleNumber$1(te[1]).toNumber(),gasPrice:handleNumber$1(te[2]),gasLimit:handleNumber$1(te[3]),to:handleAddress$1(te[4]),value:handleNumber$1(te[5]),data:te[6],accessList:accessListify$2(te[7])};return 8===te.length||(he.hash=keccak256$3(D),_parseEipSignature$1(he,te.slice(8),_serializeEip2930$1)),he}(te);case 2:return function _parseEip1559$1(D){const te=decode$3(D.slice(1));9!==te.length&&12!==te.length&&eu.throwArgumentError("invalid component count for transaction type: 2","payload",hexlify$2(D));const he=handleNumber$1(te[2]),ye=handleNumber$1(te[3]),be={type:2,chainId:handleNumber$1(te[0]).toNumber(),nonce:handleNumber$1(te[1]).toNumber(),maxPriorityFeePerGas:he,maxFeePerGas:ye,gasPrice:null,gasLimit:handleNumber$1(te[4]),to:handleAddress$1(te[5]),value:handleNumber$1(te[6]),data:te[7],accessList:accessListify$2(te[8])};return 9===te.length||(be.hash=keccak256$3(D),_parseEipSignature$1(be,te.slice(9),_serializeEip1559$1)),be}(te)}return eu.throwError(`unsupported transaction type: ${te[0]}`,hi.errors.UNSUPPORTED_OPERATION,{operation:"parseTransaction",transactionType:te[0]})}var __awaiter$a=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const au=new hi("contracts/5.7.0"),iu={chainId:!0,data:!0,from:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0,customData:!0,ccipReadEnabled:!0};function resolveName$1(D,te){return __awaiter$a(this,void 0,void 0,(function*(){const he=yield te;"string"!=typeof he&&au.throwArgumentError("invalid address or ENS name","name",he);try{return getAddress$2(he)}catch(D){}D||au.throwError("a provider or signer is needed to resolve ENS names",hi.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const ye=yield D.resolveName(he);return null==ye&&au.throwArgumentError("resolver or addr is not configured for ENS name","name",he),ye}))}function resolveAddresses$1(D,te,he){return __awaiter$a(this,void 0,void 0,(function*(){return Array.isArray(he)?yield Promise.all(he.map(((he,ye)=>resolveAddresses$1(D,Array.isArray(te)?te[ye]:te[he.name],he)))):"address"===he.type?yield resolveName$1(D,te):"tuple"===he.type?yield resolveAddresses$1(D,te,he.components):"array"===he.baseType?Array.isArray(te)?yield Promise.all(te.map((te=>resolveAddresses$1(D,te,he.arrayChildren)))):Promise.reject(au.makeError("invalid value for array",hi.errors.INVALID_ARGUMENT,{argument:"value",value:te})):te}))}function populateTransaction$1(D,te,he){return __awaiter$a(this,void 0,void 0,(function*(){let ye={};he.length===te.inputs.length+1&&"object"==typeof he[he.length-1]&&(ye=shallowCopy$1(he.pop())),au.checkArgumentCount(he.length,te.inputs.length,"passed to contract"),D.signer?ye.from?ye.from=resolveProperties$2({override:resolveName$1(D.signer,ye.from),signer:D.signer.getAddress()}).then((D=>__awaiter$a(this,void 0,void 0,(function*(){return getAddress$2(D.signer)!==D.override&&au.throwError("Contract with a Signer cannot override from",hi.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),D.override})))):ye.from=D.signer.getAddress():ye.from&&(ye.from=resolveName$1(D.provider,ye.from));const be=yield resolveProperties$2({args:resolveAddresses$1(D.signer||D.provider,he,te.inputs),address:D.resolvedAddress,overrides:resolveProperties$2(ye)||{}}),ve=D.interface.encodeFunctionData(te,be.args),we={data:ve,to:be.address},_e=be.overrides;if(null!=_e.nonce&&(we.nonce=Li.from(_e.nonce).toNumber()),null!=_e.gasLimit&&(we.gasLimit=Li.from(_e.gasLimit)),null!=_e.gasPrice&&(we.gasPrice=Li.from(_e.gasPrice)),null!=_e.maxFeePerGas&&(we.maxFeePerGas=Li.from(_e.maxFeePerGas)),null!=_e.maxPriorityFeePerGas&&(we.maxPriorityFeePerGas=Li.from(_e.maxPriorityFeePerGas)),null!=_e.from&&(we.from=_e.from),null!=_e.type&&(we.type=_e.type),null!=_e.accessList&&(we.accessList=accessListify$2(_e.accessList)),null==we.gasLimit&&null!=te.gas){let D=21e3;const he=arrayify$1(ve);for(let te=0;te<he.length;te++)D+=4,he[te]&&(D+=64);we.gasLimit=Li.from(te.gas).add(D)}if(_e.value){const D=Li.from(_e.value);D.isZero()||te.payable||au.throwError("non-payable method cannot override value",hi.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:ye.value}),we.value=D}_e.customData&&(we.customData=shallowCopy$1(_e.customData)),_e.ccipReadEnabled&&(we.ccipReadEnabled=!!_e.ccipReadEnabled),delete ye.nonce,delete ye.gasLimit,delete ye.gasPrice,delete ye.from,delete ye.value,delete ye.type,delete ye.accessList,delete ye.maxFeePerGas,delete ye.maxPriorityFeePerGas,delete ye.customData,delete ye.ccipReadEnabled;const Pe=Object.keys(ye).filter((D=>null!=ye[D]));return Pe.length&&au.throwError(`cannot override ${Pe.map((D=>JSON.stringify(D))).join(",")}`,hi.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:Pe}),we}))}function addContractWait$1(D,te){const he=te.wait.bind(te);te.wait=te=>he(te).then((te=>(te.events=te.logs.map((he=>{let ye=deepCopy$2(he),be=null;try{be=D.interface.parseLog(he)}catch(D){}return be&&(ye.args=be.args,ye.decode=(te,he)=>D.interface.decodeEventLog(be.eventFragment,te,he),ye.event=be.name,ye.eventSignature=be.signature),ye.removeListener=()=>D.provider,ye.getBlock=()=>D.provider.getBlock(te.blockHash),ye.getTransaction=()=>D.provider.getTransaction(te.transactionHash),ye.getTransactionReceipt=()=>Promise.resolve(te),ye})),te)))}function buildCall$1(D,te,he){const ye=D.signer||D.provider;return function(...be){return __awaiter$a(this,void 0,void 0,(function*(){let ve;if(be.length===te.inputs.length+1&&"object"==typeof be[be.length-1]){const D=shallowCopy$1(be.pop());null!=D.blockTag&&(ve=yield D.blockTag),delete D.blockTag,be.push(D)}null!=D.deployTransaction&&(yield D._deployed(ve));const we=yield populateTransaction$1(D,te,be),_e=yield ye.call(we,ve);try{let ye=D.interface.decodeFunctionResult(te,_e);return he&&1===te.outputs.length&&(ye=ye[0]),ye}catch(te){throw te.code===hi.errors.CALL_EXCEPTION&&(te.address=D.address,te.args=be,te.transaction=we),te}}))}}function buildDefault$1(D,te,he){return te.constant?buildCall$1(D,te,he):function buildSend$1(D,te){return function(...he){return __awaiter$a(this,void 0,void 0,(function*(){D.signer||au.throwError("sending a transaction requires a signer",hi.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=D.deployTransaction&&(yield D._deployed());const ye=yield populateTransaction$1(D,te,he),be=yield D.signer.sendTransaction(ye);return addContractWait$1(D,be),be}))}}(D,te)}function getEventTag$2(D){return!D.address||null!=D.topics&&0!==D.topics.length?(D.address||"*")+"@"+(D.topics?D.topics.map((D=>Array.isArray(D)?D.join("|"):D)).join(":"):""):"*"}let su=class RunningEvent{constructor(D,te){defineReadOnly$1(this,"tag",D),defineReadOnly$1(this,"filter",te),this._listeners=[]}addListener(D,te){this._listeners.push({listener:D,once:te})}removeListener(D){let te=!1;this._listeners=this._listeners.filter((he=>!(!te&&he.listener===D)||(te=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((D=>D.listener))}listenerCount(){return this._listeners.length}run(D){const te=this.listenerCount();return this._listeners=this._listeners.filter((te=>{const he=D.slice();return setTimeout((()=>{te.listener.apply(this,he)}),0),!te.once})),te}prepareEvent(D){}getEmit(D){return[D]}},ou=class ErrorRunningEvent extends su{constructor(){super("error",null)}},cu=class FragmentRunningEvent extends su{constructor(D,te,he,ye){const be={address:D};let ve=te.getEventTopic(he);ye?(ve!==ye[0]&&au.throwArgumentError("topic mismatch","topics",ye),be.topics=ye.slice()):be.topics=[ve],super(getEventTag$2(be),be),defineReadOnly$1(this,"address",D),defineReadOnly$1(this,"interface",te),defineReadOnly$1(this,"fragment",he)}prepareEvent(D){super.prepareEvent(D),D.event=this.fragment.name,D.eventSignature=this.fragment.format(),D.decode=(D,te)=>this.interface.decodeEventLog(this.fragment,D,te);try{D.args=this.interface.decodeEventLog(this.fragment,D.data,D.topics)}catch(te){D.args=null,D.decodeError=te}}getEmit(D){const te=checkResultErrors$1(D.args);if(te.length)throw te[0].error;const he=(D.args||[]).slice();return he.push(D),he}},du=class WildcardRunningEvent extends su{constructor(D,te){super("*",{address:D}),defineReadOnly$1(this,"address",D),defineReadOnly$1(this,"interface",te)}prepareEvent(D){super.prepareEvent(D);try{const te=this.interface.parseLog(D);D.event=te.name,D.eventSignature=te.signature,D.decode=(D,he)=>this.interface.decodeEventLog(te.eventFragment,D,he),D.args=te.args}catch(D){}}},uu=class BaseContract{constructor(D,te,he){defineReadOnly$1(this,"interface",getStatic$1(new.target,"getInterface")(te)),null==he?(defineReadOnly$1(this,"provider",null),defineReadOnly$1(this,"signer",null)):nc.isSigner(he)?(defineReadOnly$1(this,"provider",he.provider||null),defineReadOnly$1(this,"signer",he)):Yo.isProvider(he)?(defineReadOnly$1(this,"provider",he),defineReadOnly$1(this,"signer",null)):au.throwArgumentError("invalid signer or provider","signerOrProvider",he),defineReadOnly$1(this,"callStatic",{}),defineReadOnly$1(this,"estimateGas",{}),defineReadOnly$1(this,"functions",{}),defineReadOnly$1(this,"populateTransaction",{}),defineReadOnly$1(this,"filters",{});{const D={};Object.keys(this.interface.events).forEach((te=>{const he=this.interface.events[te];defineReadOnly$1(this.filters,te,((...D)=>({address:this.address,topics:this.interface.encodeFilterTopics(he,D)}))),D[he.name]||(D[he.name]=[]),D[he.name].push(te)})),Object.keys(D).forEach((te=>{const he=D[te];1===he.length?defineReadOnly$1(this.filters,te,this.filters[he[0]]):au.warn(`Duplicate definition of ${te} (${he.join(", ")})`)}))}if(defineReadOnly$1(this,"_runningEvents",{}),defineReadOnly$1(this,"_wrappedEmits",{}),null==D&&au.throwArgumentError("invalid contract address or ENS name","addressOrName",D),defineReadOnly$1(this,"address",D),this.provider)defineReadOnly$1(this,"resolvedAddress",resolveName$1(this.provider,D));else try{defineReadOnly$1(this,"resolvedAddress",Promise.resolve(getAddress$2(D)))}catch(D){au.throwError("provider is required to use ENS name as contract address",hi.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((D=>{}));const ye={},be={};Object.keys(this.interface.functions).forEach((D=>{const te=this.interface.functions[D];if(be[D])au.warn(`Duplicate ABI entry for ${JSON.stringify(D)}`);else{be[D]=!0;{const he=te.name;ye[`%${he}`]||(ye[`%${he}`]=[]),ye[`%${he}`].push(D)}null==this[D]&&defineReadOnly$1(this,D,buildDefault$1(this,te,!0)),null==this.functions[D]&&defineReadOnly$1(this.functions,D,buildDefault$1(this,te,!1)),null==this.callStatic[D]&&defineReadOnly$1(this.callStatic,D,buildCall$1(this,te,!0)),null==this.populateTransaction[D]&&defineReadOnly$1(this.populateTransaction,D,function buildPopulate$1(D,te){return function(...he){return populateTransaction$1(D,te,he)}}(this,te)),null==this.estimateGas[D]&&defineReadOnly$1(this.estimateGas,D,function buildEstimate$1(D,te){const he=D.signer||D.provider;return function(...ye){return __awaiter$a(this,void 0,void 0,(function*(){he||au.throwError("estimate require a provider or signer",hi.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const be=yield populateTransaction$1(D,te,ye);return yield he.estimateGas(be)}))}}(this,te))}})),Object.keys(ye).forEach((D=>{const te=ye[D];if(te.length>1)return;D=D.substring(1);const he=te[0];try{null==this[D]&&defineReadOnly$1(this,D,this[he])}catch(D){}null==this.functions[D]&&defineReadOnly$1(this.functions,D,this.functions[he]),null==this.callStatic[D]&&defineReadOnly$1(this.callStatic,D,this.callStatic[he]),null==this.populateTransaction[D]&&defineReadOnly$1(this.populateTransaction,D,this.populateTransaction[he]),null==this.estimateGas[D]&&defineReadOnly$1(this.estimateGas,D,this.estimateGas[he])}))}static getContractAddress(D){return getContractAddress$1(D)}static getInterface(D){return Xo.isInterface(D)?D:new Xo(D)}deployed(){return this._deployed()}_deployed(D){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,D).then((D=>("0x"===D&&au.throwError("contract not deployed",hi.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(D){this.signer||au.throwError("sending a transactions require a signer",hi.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const te=shallowCopy$1(D||{});return["from","to"].forEach((function(D){null!=te[D]&&au.throwError("cannot override "+D,hi.errors.UNSUPPORTED_OPERATION,{operation:D})})),te.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(te)))}connect(D){"string"==typeof D&&(D=new ac(D,this.provider));const te=new this.constructor(this.address,this.interface,D);return this.deployTransaction&&defineReadOnly$1(te,"deployTransaction",this.deployTransaction),te}attach(D){return new this.constructor(D,this.interface,this.signer||this.provider)}static isIndexed(D){return Ko.isIndexed(D)}_normalizeRunningEvent(D){return this._runningEvents[D.tag]?this._runningEvents[D.tag]:D}_getRunningEvent(D){if("string"==typeof D){if("error"===D)return this._normalizeRunningEvent(new ou);if("event"===D)return this._normalizeRunningEvent(new su("event",null));if("*"===D)return this._normalizeRunningEvent(new du(this.address,this.interface));const te=this.interface.getEvent(D);return this._normalizeRunningEvent(new cu(this.address,this.interface,te))}if(D.topics&&D.topics.length>0){try{const te=D.topics[0];if("string"!=typeof te)throw new Error("invalid topic");const he=this.interface.getEvent(te);return this._normalizeRunningEvent(new cu(this.address,this.interface,he,D.topics))}catch(D){}const te={address:this.address,topics:D.topics};return this._normalizeRunningEvent(new su(getEventTag$2(te),te))}return this._normalizeRunningEvent(new du(this.address,this.interface))}_checkRunningEvents(D){if(0===D.listenerCount()){delete this._runningEvents[D.tag];const te=this._wrappedEmits[D.tag];te&&D.filter&&(this.provider.off(D.filter,te),delete this._wrappedEmits[D.tag])}}_wrapEvent(D,te,he){const ye=deepCopy$2(te);return ye.removeListener=()=>{he&&(D.removeListener(he),this._checkRunningEvents(D))},ye.getBlock=()=>this.provider.getBlock(te.blockHash),ye.getTransaction=()=>this.provider.getTransaction(te.transactionHash),ye.getTransactionReceipt=()=>this.provider.getTransactionReceipt(te.transactionHash),D.prepareEvent(ye),ye}_addEventListener(D,te,he){if(this.provider||au.throwError("events require a provider or a signer with a provider",hi.errors.UNSUPPORTED_OPERATION,{operation:"once"}),D.addListener(te,he),this._runningEvents[D.tag]=D,!this._wrappedEmits[D.tag]){const wrappedEmit=he=>{let ye=this._wrapEvent(D,he,te);if(null==ye.decodeError)try{const te=D.getEmit(ye);this.emit(D.filter,...te)}catch(D){ye.decodeError=D.error}null!=D.filter&&this.emit("event",ye),null!=ye.decodeError&&this.emit("error",ye.decodeError,ye)};this._wrappedEmits[D.tag]=wrappedEmit,null!=D.filter&&this.provider.on(D.filter,wrappedEmit)}}queryFilter(D,te,he){const ye=this._getRunningEvent(D),be=shallowCopy$1(ye.filter);return"string"==typeof te&&isHexString$4(te,32)?(null!=he&&au.throwArgumentError("cannot specify toBlock with blockhash","toBlock",he),be.blockHash=te):(be.fromBlock=null!=te?te:0,be.toBlock=null!=he?he:"latest"),this.provider.getLogs(be).then((D=>D.map((D=>this._wrapEvent(ye,D,null)))))}on(D,te){return this._addEventListener(this._getRunningEvent(D),te,!1),this}once(D,te){return this._addEventListener(this._getRunningEvent(D),te,!0),this}emit(D,...te){if(!this.provider)return!1;const he=this._getRunningEvent(D),ye=he.run(te)>0;return this._checkRunningEvents(he),ye}listenerCount(D){return this.provider?null==D?Object.keys(this._runningEvents).reduce(((D,te)=>D+this._runningEvents[te].listenerCount()),0):this._getRunningEvent(D).listenerCount():0}listeners(D){if(!this.provider)return[];if(null==D){const D=[];for(let te in this._runningEvents)this._runningEvents[te].listeners().forEach((te=>{D.push(te)}));return D}return this._getRunningEvent(D).listeners()}removeAllListeners(D){if(!this.provider)return this;if(null==D){for(const D in this._runningEvents){const te=this._runningEvents[D];te.removeAllListeners(),this._checkRunningEvents(te)}return this}const te=this._getRunningEvent(D);return te.removeAllListeners(),this._checkRunningEvents(te),this}off(D,te){if(!this.provider)return this;const he=this._getRunningEvent(D);return he.removeListener(te),this._checkRunningEvents(he),this}removeListener(D,te){return this.off(D,te)}},fu=class Contract extends uu{};class ContractFactory{constructor(D,te,he){let ye=null;ye="string"==typeof te?te:isBytes$1(te)?hexlify$2(te):te&&"string"==typeof te.object?te.object:"!","0x"!==ye.substring(0,2)&&(ye="0x"+ye),(!isHexString$4(ye)||ye.length%2)&&au.throwArgumentError("invalid bytecode","bytecode",te),he&&!nc.isSigner(he)&&au.throwArgumentError("invalid signer","signer",he),defineReadOnly$1(this,"bytecode",ye),defineReadOnly$1(this,"interface",getStatic$1(new.target,"getInterface")(D)),defineReadOnly$1(this,"signer",he||null)}getDeployTransaction(...D){let te={};if(D.length===this.interface.deploy.inputs.length+1&&"object"==typeof D[D.length-1]){te=shallowCopy$1(D.pop());for(const D in te)if(!iu[D])throw new Error("unknown transaction override "+D)}if(["data","from","to"].forEach((D=>{null!=te[D]&&au.throwError("cannot override "+D,hi.errors.UNSUPPORTED_OPERATION,{operation:D})})),te.value){Li.from(te.value).isZero()||this.interface.deploy.payable||au.throwError("non-payable constructor cannot override value",hi.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:te.value})}return au.checkArgumentCount(D.length,this.interface.deploy.inputs.length," in Contract constructor"),te.data=hexlify$2(concat$2([this.bytecode,this.interface.encodeDeploy(D)])),te}deploy(...D){return __awaiter$a(this,void 0,void 0,(function*(){let te={};D.length===this.interface.deploy.inputs.length+1&&(te=D.pop()),au.checkArgumentCount(D.length,this.interface.deploy.inputs.length," in Contract constructor");const he=yield resolveAddresses$1(this.signer,D,this.interface.deploy.inputs);he.push(te);const ye=this.getDeployTransaction(...he),be=yield this.signer.sendTransaction(ye),ve=getStatic$1(this.constructor,"getContractAddress")(be),we=getStatic$1(this.constructor,"getContract")(ve,this.interface,this.signer);return addContractWait$1(we,be),defineReadOnly$1(we,"deployTransaction",be),we}))}attach(D){return this.constructor.getContract(D,this.interface,this.signer)}connect(D){return new this.constructor(this.interface,this.bytecode,D)}static fromSolidity(D,te){null==D&&au.throwError("missing compiler output",hi.errors.MISSING_ARGUMENT,{argument:"compilerOutput"}),"string"==typeof D&&(D=JSON.parse(D));const he=D.abi;let ye=null;return D.bytecode?ye=D.bytecode:D.evm&&D.evm.bytecode&&(ye=D.evm.bytecode),new this(he,ye,te)}static getInterface(D){return fu.getInterface(D)}static getContractAddress(D){return getContractAddress$1(D)}static getContract(D,te,he){return new fu(D,te,he)}}class BaseX{constructor(D){defineReadOnly$1(this,"alphabet",D),defineReadOnly$1(this,"base",D.length),defineReadOnly$1(this,"_alphabetMap",{}),defineReadOnly$1(this,"_leader",D.charAt(0));for(let te=0;te<D.length;te++)this._alphabetMap[D.charAt(te)]=te}encode(D){let te=arrayify$1(D);if(0===te.length)return"";let he=[0];for(let D=0;D<te.length;++D){let ye=te[D];for(let D=0;D<he.length;++D)ye+=he[D]<<8,he[D]=ye%this.base,ye=ye/this.base|0;for(;ye>0;)he.push(ye%this.base),ye=ye/this.base|0}let ye="";for(let D=0;0===te[D]&&D<te.length-1;++D)ye+=this._leader;for(let D=he.length-1;D>=0;--D)ye+=this.alphabet[he[D]];return ye}decode(D){if("string"!=typeof D)throw new TypeError("Expected String");let te=[];if(0===D.length)return new Uint8Array(te);te.push(0);for(let he=0;he<D.length;he++){let ye=this._alphabetMap[D[he]];if(void 0===ye)throw new Error("Non-base"+this.base+" character");let be=ye;for(let D=0;D<te.length;++D)be+=te[D]*this.base,te[D]=255&be,be>>=8;for(;be>0;)te.push(255&be),be>>=8}for(let he=0;D[he]===this._leader&&he<D.length-1;++he)te.push(0);return arrayify$1(new Uint8Array(te.reverse()))}}new BaseX("abcdefghijklmnopqrstuvwxyz234567");const lu=new BaseX("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz");var pu;!function(D){D.sha256="sha256",D.sha512="sha512"}(pu||(pu={}));const hu=new hi("sha2/5.7.0");function ripemd160$5(D){return"0x"+Rd.ripemd160().update(arrayify$1(D)).digest("hex")}function sha256$9(D){return"0x"+Rd.sha256().update(arrayify$1(D)).digest("hex")}function computeHmac(D,te,he){return pu[D]||hu.throwError("unsupported algorithm "+D,hi.errors.UNSUPPORTED_OPERATION,{operation:"hmac",algorithm:D}),"0x"+Rd.hmac(Rd[D],arrayify$1(te)).update(arrayify$1(he)).digest("hex")}const yu=new hi("wordlists/5.7.0");class Wordlist{constructor(D){yu.checkAbstract(new.target,Wordlist),defineReadOnly$1(this,"locale",D)}split(D){return D.toLowerCase().split(/ +/g)}join(D){return D.join(" ")}static check(D){const te=[];for(let he=0;he<2048;he++){const ye=D.getWord(he);if(he!==D.getWordIndex(ye))return"0x";te.push(ye)}return id$3(te.join("\n")+"\n")}static register(D,te){te||(te=D.locale)}}let mu=null;function loadWords(D){if(null==mu&&(mu="AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo".replace(/([A-Z])/g," $1").toLowerCase().substring(1).split(" "),"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60"!==Wordlist.check(D)))throw mu=null,new Error("BIP39 Wordlist for en (English) FAILED")}const bu=new class LangEn extends Wordlist{constructor(){super("en")}getWord(D){return loadWords(this),mu[D]}getWordIndex(D){return loadWords(this),mu.indexOf(D)}};Wordlist.register(bu);const gu={en:bu},vu=new hi("hdnode/5.7.0"),wu=Li.from("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),_u=toUtf8Bytes$2("Bitcoin seed"),Tu=2147483648;function getUpperMask(D){return(1<<D)-1<<8-D}function bytes32$1(D){return hexZeroPad$1(hexlify$2(D),32)}function base58check(D){return lu.encode(concat$2([D,hexDataSlice$1(sha256$9(sha256$9(D)),0,4)]))}function getWordlist(D){if(null==D)return gu.en;if("string"==typeof D){const te=gu[D];return null==te&&vu.throwArgumentError("unknown locale","wordlist",D),te}return D}const Au={};class HDNode{constructor(D,te,he,ye,be,ve,we,_e){if(D!==Au)throw new Error("HDNode constructor cannot be called directly");if(te){const D=new Yd(te);defineReadOnly$1(this,"privateKey",D.privateKey),defineReadOnly$1(this,"publicKey",D.compressedPublicKey)}else defineReadOnly$1(this,"privateKey",null),defineReadOnly$1(this,"publicKey",hexlify$2(he));defineReadOnly$1(this,"parentFingerprint",ye),defineReadOnly$1(this,"fingerprint",hexDataSlice$1(ripemd160$5(sha256$9(this.publicKey)),0,4)),defineReadOnly$1(this,"address",computeAddress$1(this.publicKey)),defineReadOnly$1(this,"chainCode",be),defineReadOnly$1(this,"index",ve),defineReadOnly$1(this,"depth",we),null==_e?(defineReadOnly$1(this,"mnemonic",null),defineReadOnly$1(this,"path",null)):"string"==typeof _e?(defineReadOnly$1(this,"mnemonic",null),defineReadOnly$1(this,"path",_e)):(defineReadOnly$1(this,"mnemonic",_e),defineReadOnly$1(this,"path",_e.path))}get extendedKey(){if(this.depth>=256)throw new Error("Depth too large!");return base58check(concat$2([null!=this.privateKey?"0x0488ADE4":"0x0488B21E",hexlify$2(this.depth),this.parentFingerprint,hexZeroPad$1(hexlify$2(this.index),4),this.chainCode,null!=this.privateKey?concat$2(["0x00",this.privateKey]):this.publicKey]))}neuter(){return new HDNode(Au,null,this.publicKey,this.parentFingerprint,this.chainCode,this.index,this.depth,this.path)}_derive(D){if(D>4294967295)throw new Error("invalid index - "+String(D));let te=this.path;te&&(te+="/"+(2147483647&D));const he=new Uint8Array(37);if(D&Tu){if(!this.privateKey)throw new Error("cannot derive child of neutered node");he.set(arrayify$1(this.privateKey),1),te&&(te+="'")}else he.set(arrayify$1(this.publicKey));for(let te=24;te>=0;te-=8)he[33+(te>>3)]=D>>24-te&255;const ye=arrayify$1(computeHmac(pu.sha512,this.chainCode,he)),be=ye.slice(0,32),ve=ye.slice(32);let we=null,_e=null;if(this.privateKey)we=bytes32$1(Li.from(be).add(this.privateKey).mod(wu));else{_e=new Yd(hexlify$2(be))._addPoint(this.publicKey)}let Pe=te;const Ie=this.mnemonic;return Ie&&(Pe=Object.freeze({phrase:Ie.phrase,path:te,locale:Ie.locale||"en"})),new HDNode(Au,we,_e,this.fingerprint,bytes32$1(ve),D,this.depth+1,Pe)}derivePath(D){const te=D.split("/");if(0===te.length||"m"===te[0]&&0!==this.depth)throw new Error("invalid path - "+D);"m"===te[0]&&te.shift();let he=this;for(let D=0;D<te.length;D++){const ye=te[D];if(ye.match(/^[0-9]+'$/)){const D=parseInt(ye.substring(0,ye.length-1));if(D>=Tu)throw new Error("invalid path index - "+ye);he=he._derive(Tu+D)}else{if(!ye.match(/^[0-9]+$/))throw new Error("invalid path component - "+ye);{const D=parseInt(ye);if(D>=Tu)throw new Error("invalid path index - "+ye);he=he._derive(D)}}}return he}static _fromSeed(D,te){const he=arrayify$1(D);if(he.length<16||he.length>64)throw new Error("invalid seed");const ye=arrayify$1(computeHmac(pu.sha512,_u,he));return new HDNode(Au,bytes32$1(ye.slice(0,32)),null,"0x00000000",bytes32$1(ye.slice(32)),0,0,te)}static fromMnemonic(D,te,he){return D=entropyToMnemonic(mnemonicToEntropy(D,he=getWordlist(he)),he),HDNode._fromSeed(mnemonicToSeed(D,te),{phrase:D,path:"m",locale:he.locale})}static fromSeed(D){return HDNode._fromSeed(D,null)}static fromExtendedKey(D){const te=lu.decode(D);82===te.length&&base58check(te.slice(0,78))===D||vu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]");const he=te[4],ye=hexlify$2(te.slice(5,9)),be=parseInt(hexlify$2(te.slice(9,13)).substring(2),16),ve=hexlify$2(te.slice(13,45)),we=te.slice(45,78);switch(hexlify$2(te.slice(0,4))){case"0x0488b21e":case"0x043587cf":return new HDNode(Au,null,hexlify$2(we),ye,ve,be,he,null);case"0x0488ade4":case"0x04358394 ":if(0!==we[0])break;return new HDNode(Au,hexlify$2(we.slice(1)),null,ye,ve,be,he,null)}return vu.throwArgumentError("invalid extended key","extendedKey","[REDACTED]")}}function mnemonicToSeed(D,te){te||(te="");const he=toUtf8Bytes$2("mnemonic"+te,Yi.NFKD);return function pbkdf2$3(D,te,he,ye,be){let ve;D=arrayify$1(D),te=arrayify$1(te);let we=1;const _e=new Uint8Array(ye),Pe=new Uint8Array(te.length+4);let Ie,Re;Pe.set(te);for(let ke=1;ke<=we;ke++){Pe[te.length]=ke>>24&255,Pe[te.length+1]=ke>>16&255,Pe[te.length+2]=ke>>8&255,Pe[te.length+3]=255&ke;let Oe=arrayify$1(computeHmac(be,D,Pe));ve||(ve=Oe.length,Re=new Uint8Array(ve),we=Math.ceil(ye/ve),Ie=ye-(we-1)*ve),Re.set(Oe);for(let te=1;te<he;te++){Oe=arrayify$1(computeHmac(be,D,Oe));for(let D=0;D<ve;D++)Re[D]^=Oe[D]}const xe=(ke-1)*ve,Be=ke===we?Ie:ve;_e.set(arrayify$1(Re).slice(0,Be),xe)}return hexlify$2(_e)}(toUtf8Bytes$2(D,Yi.NFKD),he,2048,64,"sha512")}function mnemonicToEntropy(D,te){te=getWordlist(te),vu.checkNormalize();const he=te.split(D);if(he.length%3!=0)throw new Error("invalid mnemonic");const ye=arrayify$1(new Uint8Array(Math.ceil(11*he.length/8)));let be=0;for(let D=0;D<he.length;D++){let ve=te.getWordIndex(he[D].normalize("NFKD"));if(-1===ve)throw new Error("invalid mnemonic");for(let D=0;D<11;D++)ve&1<<10-D&&(ye[be>>3]|=1<<7-be%8),be++}const ve=32*he.length/3,we=getUpperMask(he.length/3);if((arrayify$1(sha256$9(ye.slice(0,ve/8)))[0]&we)!==(ye[ye.length-1]&we))throw new Error("invalid checksum");return hexlify$2(ye.slice(0,ve/8))}function entropyToMnemonic(D,te){if(te=getWordlist(te),(D=arrayify$1(D)).length%4!=0||D.length<16||D.length>32)throw new Error("invalid entropy");const he=[0];let ye=11;for(let te=0;te<D.length;te++)ye>8?(he[he.length-1]<<=8,he[he.length-1]|=D[te],ye-=8):(he[he.length-1]<<=ye,he[he.length-1]|=D[te]>>8-ye,he.push(D[te]&(1<<8-ye)-1),ye+=3);const be=D.length/4,ve=arrayify$1(sha256$9(D))[0]&getUpperMask(be);return he[he.length-1]<<=be,he[he.length-1]|=ve>>8-be,te.join(he.map((D=>te.getWord(D))))}const Eu=new hi("random/5.7.0");const Pu=function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("unable to locate global object")}();let Su=Pu.crypto||Pu.msCrypto;Su&&Su.getRandomValues||(Eu.warn("WARNING: Missing strong random number source"),Su={getRandomValues:function(D){return Eu.throwError("no secure random source avaialble",hi.errors.UNSUPPORTED_OPERATION,{operation:"crypto.getRandomValues"})}});var Cu={exports:{}};!function(D,te){!function(te){const he=2147483647;function SHA256(D){const te=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]);let he=1779033703,ye=3144134277,be=1013904242,ve=2773480762,we=1359893119,_e=2600822924,Pe=528734635,Ie=1541459225;const Re=new Uint32Array(64);function blocks(D){let ke=0,Oe=D.length;for(;Oe>=64;){let xe,Be,Fe,De,Le,Ue=he,qe=ye,je=be,Je=ve,et=we,tt=_e,rt=Pe,nt=Ie;for(Be=0;Be<16;Be++)Fe=ke+4*Be,Re[Be]=(255&D[Fe])<<24|(255&D[Fe+1])<<16|(255&D[Fe+2])<<8|255&D[Fe+3];for(Be=16;Be<64;Be++)xe=Re[Be-2],De=(xe>>>17|xe<<15)^(xe>>>19|xe<<13)^xe>>>10,xe=Re[Be-15],Le=(xe>>>7|xe<<25)^(xe>>>18|xe<<14)^xe>>>3,Re[Be]=(De+Re[Be-7]|0)+(Le+Re[Be-16]|0)|0;for(Be=0;Be<64;Be++)De=(((et>>>6|et<<26)^(et>>>11|et<<21)^(et>>>25|et<<7))+(et&tt^~et&rt)|0)+(nt+(te[Be]+Re[Be]|0)|0)|0,Le=((Ue>>>2|Ue<<30)^(Ue>>>13|Ue<<19)^(Ue>>>22|Ue<<10))+(Ue&qe^Ue&je^qe&je)|0,nt=rt,rt=tt,tt=et,et=Je+De|0,Je=je,je=qe,qe=Ue,Ue=De+Le|0;he=he+Ue|0,ye=ye+qe|0,be=be+je|0,ve=ve+Je|0,we=we+et|0,_e=_e+tt|0,Pe=Pe+rt|0,Ie=Ie+nt|0,ke+=64,Oe-=64}}blocks(D);let ke,Oe=D.length%64,xe=D.length/536870912|0,Be=D.length<<3,Fe=Oe<56?56:120,De=D.slice(D.length-Oe,D.length);for(De.push(128),ke=Oe+1;ke<Fe;ke++)De.push(0);return De.push(xe>>>24&255),De.push(xe>>>16&255),De.push(xe>>>8&255),De.push(xe>>>0&255),De.push(Be>>>24&255),De.push(Be>>>16&255),De.push(Be>>>8&255),De.push(Be>>>0&255),blocks(De),[he>>>24&255,he>>>16&255,he>>>8&255,he>>>0&255,ye>>>24&255,ye>>>16&255,ye>>>8&255,ye>>>0&255,be>>>24&255,be>>>16&255,be>>>8&255,be>>>0&255,ve>>>24&255,ve>>>16&255,ve>>>8&255,ve>>>0&255,we>>>24&255,we>>>16&255,we>>>8&255,we>>>0&255,_e>>>24&255,_e>>>16&255,_e>>>8&255,_e>>>0&255,Pe>>>24&255,Pe>>>16&255,Pe>>>8&255,Pe>>>0&255,Ie>>>24&255,Ie>>>16&255,Ie>>>8&255,Ie>>>0&255]}function PBKDF2_HMAC_SHA256_OneIter(D,te,he){D=D.length<=64?D:SHA256(D);const ye=64+te.length+4,be=new Array(ye),ve=new Array(64);let we,_e=[];for(we=0;we<64;we++)be[we]=54;for(we=0;we<D.length;we++)be[we]^=D[we];for(we=0;we<te.length;we++)be[64+we]=te[we];for(we=ye-4;we<ye;we++)be[we]=0;for(we=0;we<64;we++)ve[we]=92;for(we=0;we<D.length;we++)ve[we]^=D[we];function incrementCounter(){for(let D=ye-1;D>=ye-4;D--){if(be[D]++,be[D]<=255)return;be[D]=0}}for(;he>=32;)incrementCounter(),_e=_e.concat(SHA256(ve.concat(SHA256(be)))),he-=32;return he>0&&(incrementCounter(),_e=_e.concat(SHA256(ve.concat(SHA256(be))).slice(0,he))),_e}function blockmix_salsa8(D,te,he,ye,be){let ve;for(arraycopy(D,16*(2*he-1),be,0,16),ve=0;ve<2*he;ve++)blockxor(D,16*ve,be,16),salsa20_8(be,ye),arraycopy(be,0,D,te+16*ve,16);for(ve=0;ve<he;ve++)arraycopy(D,te+2*ve*16,D,16*ve,16);for(ve=0;ve<he;ve++)arraycopy(D,te+16*(2*ve+1),D,16*(ve+he),16)}function R(D,te){return D<<te|D>>>32-te}function salsa20_8(D,te){arraycopy(D,0,te,0,16);for(let D=8;D>0;D-=2)te[4]^=R(te[0]+te[12],7),te[8]^=R(te[4]+te[0],9),te[12]^=R(te[8]+te[4],13),te[0]^=R(te[12]+te[8],18),te[9]^=R(te[5]+te[1],7),te[13]^=R(te[9]+te[5],9),te[1]^=R(te[13]+te[9],13),te[5]^=R(te[1]+te[13],18),te[14]^=R(te[10]+te[6],7),te[2]^=R(te[14]+te[10],9),te[6]^=R(te[2]+te[14],13),te[10]^=R(te[6]+te[2],18),te[3]^=R(te[15]+te[11],7),te[7]^=R(te[3]+te[15],9),te[11]^=R(te[7]+te[3],13),te[15]^=R(te[11]+te[7],18),te[1]^=R(te[0]+te[3],7),te[2]^=R(te[1]+te[0],9),te[3]^=R(te[2]+te[1],13),te[0]^=R(te[3]+te[2],18),te[6]^=R(te[5]+te[4],7),te[7]^=R(te[6]+te[5],9),te[4]^=R(te[7]+te[6],13),te[5]^=R(te[4]+te[7],18),te[11]^=R(te[10]+te[9],7),te[8]^=R(te[11]+te[10],9),te[9]^=R(te[8]+te[11],13),te[10]^=R(te[9]+te[8],18),te[12]^=R(te[15]+te[14],7),te[13]^=R(te[12]+te[15],9),te[14]^=R(te[13]+te[12],13),te[15]^=R(te[14]+te[13],18);for(let he=0;he<16;++he)D[he]+=te[he]}function blockxor(D,te,he,ye){for(let be=0;be<ye;be++)he[be]^=D[te+be]}function arraycopy(D,te,he,ye,be){for(;be--;)he[ye++]=D[te++]}function checkBufferish(D){if(!D||"number"!=typeof D.length)return!1;for(let te=0;te<D.length;te++){const he=D[te];if("number"!=typeof he||he%1||he<0||he>=256)return!1}return!0}function ensureInteger(D,te){if("number"!=typeof D||D%1)throw new Error("invalid "+te);return D}function _scrypt(D,te,ye,be,ve,we,_e){if(ye=ensureInteger(ye,"N"),be=ensureInteger(be,"r"),ve=ensureInteger(ve,"p"),we=ensureInteger(we,"dkLen"),0===ye||0!=(ye&ye-1))throw new Error("N must be power of 2");if(ye>he/128/be)throw new Error("N too large");if(be>he/128/ve)throw new Error("r too large");if(!checkBufferish(D))throw new Error("password must be an array or buffer");if(D=Array.prototype.slice.call(D),!checkBufferish(te))throw new Error("salt must be an array or buffer");te=Array.prototype.slice.call(te);let Pe=PBKDF2_HMAC_SHA256_OneIter(D,te,128*ve*be);const Ie=new Uint32Array(32*ve*be);for(let D=0;D<Ie.length;D++){const te=4*D;Ie[D]=(255&Pe[te+3])<<24|(255&Pe[te+2])<<16|(255&Pe[te+1])<<8|(255&Pe[te+0])<<0}const Re=new Uint32Array(64*be),ke=new Uint32Array(32*be*ye),Oe=32*be,xe=new Uint32Array(16),Be=new Uint32Array(16),Fe=ve*ye*2;let De,Le,Ue=0,qe=null,je=!1,Je=0,et=0;const tt=_e?parseInt(1e3/be):4294967295,rt="undefined"!=typeof setImmediate?setImmediate:setTimeout,incrementalSMix=function(){if(je)return _e(new Error("cancelled"),Ue/Fe);let te;switch(Je){case 0:Le=32*et*be,arraycopy(Ie,Le,Re,0,Oe),Je=1,De=0;case 1:te=ye-De,te>tt&&(te=tt);for(let D=0;D<te;D++)arraycopy(Re,0,ke,(De+D)*Oe,Oe),blockmix_salsa8(Re,Oe,be,xe,Be);if(De+=te,Ue+=te,_e){const D=parseInt(1e3*Ue/Fe);if(D!==qe){if(je=_e(null,Ue/Fe),je)break;qe=D}}if(De<ye)break;De=0,Je=2;case 2:te=ye-De,te>tt&&(te=tt);for(let D=0;D<te;D++){const D=Re[16*(2*be-1)]&ye-1;blockxor(ke,D*Oe,Re,Oe),blockmix_salsa8(Re,Oe,be,xe,Be)}if(De+=te,Ue+=te,_e){const D=parseInt(1e3*Ue/Fe);if(D!==qe){if(je=_e(null,Ue/Fe),je)break;qe=D}}if(De<ye)break;if(arraycopy(Re,0,Ie,Le,Oe),et++,et<ve){Je=0;break}Pe=[];for(let D=0;D<Ie.length;D++)Pe.push(Ie[D]>>0&255),Pe.push(Ie[D]>>8&255),Pe.push(Ie[D]>>16&255),Pe.push(Ie[D]>>24&255);const he=PBKDF2_HMAC_SHA256_OneIter(D,Pe,we);return _e&&_e(null,1,he),he}_e&&rt(incrementalSMix)};if(!_e)for(;;){const D=incrementalSMix();if(null!=D)return D}incrementalSMix()}const ye={scrypt:function(D,te,he,ye,be,ve,we){return new Promise((function(_e,Pe){let Ie=0;we&&we(0),_scrypt(D,te,he,ye,be,ve,(function(D,te,he){if(D)Pe(D);else if(he)we&&1!==Ie&&we(1),_e(new Uint8Array(he));else if(we&&te!==Ie)return Ie=te,we(te)}))}))},syncScrypt:function(D,te,he,ye,be,ve){return new Uint8Array(_scrypt(D,te,he,ye,be,ve))}};D.exports=ye}()}(Cu);var Iu=Cu.exports;const Ru=new hi("networks/5.7.1");function ethDefaultProvider(D){const func=function(te,he){null==he&&(he={});const ye=[];if(te.InfuraProvider&&"-"!==he.infura)try{ye.push(new te.InfuraProvider(D,he.infura))}catch(D){}if(te.EtherscanProvider&&"-"!==he.etherscan)try{ye.push(new te.EtherscanProvider(D,he.etherscan))}catch(D){}if(te.AlchemyProvider&&"-"!==he.alchemy)try{ye.push(new te.AlchemyProvider(D,he.alchemy))}catch(D){}if(te.PocketProvider&&"-"!==he.pocket){const be=["goerli","ropsten","rinkeby","sepolia"];try{const ve=new te.PocketProvider(D,he.pocket);ve.network&&-1===be.indexOf(ve.network.name)&&ye.push(ve)}catch(D){}}if(te.CloudflareProvider&&"-"!==he.cloudflare)try{ye.push(new te.CloudflareProvider(D))}catch(D){}if(te.AnkrProvider&&"-"!==he.ankr)try{const be=["ropsten"],ve=new te.AnkrProvider(D,he.ankr);ve.network&&-1===be.indexOf(ve.network.name)&&ye.push(ve)}catch(D){}if(0===ye.length)return null;if(te.FallbackProvider){let be=1;return null!=he.quorum?be=he.quorum:"homestead"===D&&(be=2),new te.FallbackProvider(ye,be)}return ye[0]};return func.renetwork=function(D){return ethDefaultProvider(D)},func}function etcDefaultProvider(D,te){const func=function(he,ye){return he.JsonRpcProvider?new he.JsonRpcProvider(D,te):null};return func.renetwork=function(te){return etcDefaultProvider(D,te)},func}const ku={chainId:1,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"homestead",_defaultProvider:ethDefaultProvider("homestead")},Ou={chainId:3,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"ropsten",_defaultProvider:ethDefaultProvider("ropsten")},xu={chainId:63,name:"classicMordor",_defaultProvider:etcDefaultProvider("https://www.ethercluster.com/mordor","classicMordor")},Nu={unspecified:{chainId:0,name:"unspecified"},homestead:ku,mainnet:ku,morden:{chainId:2,name:"morden"},ropsten:Ou,testnet:Ou,rinkeby:{chainId:4,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"rinkeby",_defaultProvider:ethDefaultProvider("rinkeby")},kovan:{chainId:42,name:"kovan",_defaultProvider:ethDefaultProvider("kovan")},goerli:{chainId:5,ensAddress:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",name:"goerli",_defaultProvider:ethDefaultProvider("goerli")},kintsugi:{chainId:1337702,name:"kintsugi"},sepolia:{chainId:11155111,name:"sepolia",_defaultProvider:ethDefaultProvider("sepolia")},classic:{chainId:61,name:"classic",_defaultProvider:etcDefaultProvider("https://www.ethercluster.com/etc","classic")},classicMorden:{chainId:62,name:"classicMorden"},classicMordor:xu,classicTestnet:xu,classicKotti:{chainId:6,name:"classicKotti",_defaultProvider:etcDefaultProvider("https://www.ethercluster.com/kotti","classicKotti")},xdai:{chainId:100,name:"xdai"},matic:{chainId:137,name:"matic",_defaultProvider:ethDefaultProvider("matic")},maticmum:{chainId:80001,name:"maticmum"},optimism:{chainId:10,name:"optimism",_defaultProvider:ethDefaultProvider("optimism")},"optimism-kovan":{chainId:69,name:"optimism-kovan"},"optimism-goerli":{chainId:420,name:"optimism-goerli"},arbitrum:{chainId:42161,name:"arbitrum"},"arbitrum-rinkeby":{chainId:421611,name:"arbitrum-rinkeby"},"arbitrum-goerli":{chainId:421613,name:"arbitrum-goerli"},bnb:{chainId:56,name:"bnb"},bnbt:{chainId:97,name:"bnbt"}};var __awaiter$9=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};function getUrl$1(D,te){return __awaiter$9(this,void 0,void 0,(function*(){null==te&&(te={});const he={method:te.method||"GET",headers:te.headers||{},body:te.body||void 0};if(!0!==te.skipFetchSetup&&(he.mode="cors",he.cache="no-cache",he.credentials="same-origin",he.redirect="follow",he.referrer="client"),null!=te.fetchOptions){const D=te.fetchOptions;D.mode&&(he.mode=D.mode),D.cache&&(he.cache=D.cache),D.credentials&&(he.credentials=D.credentials),D.redirect&&(he.redirect=D.redirect),D.referrer&&(he.referrer=D.referrer)}const ye=yield fetch(D,he),be=yield ye.arrayBuffer(),ve={};return ye.headers.forEach?ye.headers.forEach(((D,te)=>{ve[te.toLowerCase()]=D})):ye.headers.keys().forEach((D=>{ve[D.toLowerCase()]=ye.headers.get(D)})),{headers:ve,statusCode:ye.status,statusMessage:ye.statusText,body:arrayify$1(new Uint8Array(be))}}))}var __awaiter$8=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const Mu=new hi("web/5.7.1");function staller(D){return new Promise((te=>{setTimeout(te,D)}))}function bodyify(D,te){if(null==D)return null;if("string"==typeof D)return D;if(isBytesLike$2(D)){if(te&&("text"===te.split("/")[0]||"application/json"===te.split(";")[0].trim()))try{return toUtf8String$2(D)}catch(D){}return hexlify$2(D)}return D}function _fetchData(D,te,he){const ye="object"==typeof D&&null!=D.throttleLimit?D.throttleLimit:12;Mu.assertArgument(ye>0&&ye%1==0,"invalid connection throttle limit","connection.throttleLimit",ye);const be="object"==typeof D?D.throttleCallback:null,ve="object"==typeof D&&"number"==typeof D.throttleSlotInterval?D.throttleSlotInterval:100;Mu.assertArgument(ve>0&&ve%1==0,"invalid connection throttle slot interval","connection.throttleSlotInterval",ve);const we="object"==typeof D&&!!D.errorPassThrough,_e={};let Pe=null;const Ie={method:"GET"};let Re=!1,ke=12e4;if("string"==typeof D)Pe=D;else if("object"==typeof D){if(null!=D&&null!=D.url||Mu.throwArgumentError("missing URL","connection.url",D),Pe=D.url,"number"==typeof D.timeout&&D.timeout>0&&(ke=D.timeout),D.headers)for(const te in D.headers)_e[te.toLowerCase()]={key:te,value:String(D.headers[te])},["if-none-match","if-modified-since"].indexOf(te.toLowerCase())>=0&&(Re=!0);if(Ie.allowGzip=!!D.allowGzip,null!=D.user&&null!=D.password){"https:"!==Pe.substring(0,6)&&!0!==D.allowInsecureAuthentication&&Mu.throwError("basic authentication requires a secure https url",hi.errors.INVALID_ARGUMENT,{argument:"url",url:Pe,user:D.user,password:"[REDACTED]"});const te=D.user+":"+D.password;_e.authorization={key:"Authorization",value:"Basic "+encode$5(toUtf8Bytes$2(te))}}null!=D.skipFetchSetup&&(Ie.skipFetchSetup=!!D.skipFetchSetup),null!=D.fetchOptions&&(Ie.fetchOptions=shallowCopy$1(D.fetchOptions))}const Oe=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),xe=Pe?Pe.match(Oe):null;if(xe)try{const D={statusCode:200,statusMessage:"OK",headers:{"content-type":xe[1]||"text/plain"},body:xe[2]?decode$2(xe[3]):(Be=xe[3],toUtf8Bytes$2(Be.replace(/%([0-9a-f][0-9a-f])/gi,((D,te)=>String.fromCharCode(parseInt(te,16))))))};let te=D.body;return he&&(te=he(D.body,D)),Promise.resolve(te)}catch(D){Mu.throwError("processing response error",hi.errors.SERVER_ERROR,{body:bodyify(xe[1],xe[2]),error:D,requestBody:null,requestMethod:"GET",url:Pe})}var Be;te&&(Ie.method="POST",Ie.body=te,null==_e["content-type"]&&(_e["content-type"]={key:"Content-Type",value:"application/octet-stream"}),null==_e["content-length"]&&(_e["content-length"]={key:"Content-Length",value:String(te.length)}));const Fe={};Object.keys(_e).forEach((D=>{const te=_e[D];Fe[te.key]=te.value})),Ie.headers=Fe;const De=function(){let D=null;return{promise:new Promise((function(te,he){ke&&(D=setTimeout((()=>{null!=D&&(D=null,he(Mu.makeError("timeout",hi.errors.TIMEOUT,{requestBody:bodyify(Ie.body,Fe["content-type"]),requestMethod:Ie.method,timeout:ke,url:Pe})))}),ke))})),cancel:function(){null!=D&&(clearTimeout(D),D=null)}}}(),Le=function(){return __awaiter$8(this,void 0,void 0,(function*(){for(let D=0;D<ye;D++){let te=null;try{if(te=yield getUrl$1(Pe,Ie),D<ye)if(301===te.statusCode||302===te.statusCode){const D=te.headers.location||"";if("GET"===Ie.method&&D.match(/^https:/)){Pe=te.headers.location;continue}}else if(429===te.statusCode){let he=!0;if(be&&(he=yield be(D,Pe)),he){let he=0;const ye=te.headers["retry-after"];he="string"==typeof ye&&ye.match(/^[1-9][0-9]*$/)?1e3*parseInt(ye):ve*parseInt(String(Math.random()*Math.pow(2,D))),yield staller(he);continue}}}catch(D){te=D.response,null==te&&(De.cancel(),Mu.throwError("missing response",hi.errors.SERVER_ERROR,{requestBody:bodyify(Ie.body,Fe["content-type"]),requestMethod:Ie.method,serverError:D,url:Pe}))}let _e=te.body;if(Re&&304===te.statusCode?_e=null:!we&&(te.statusCode<200||te.statusCode>=300)&&(De.cancel(),Mu.throwError("bad response",hi.errors.SERVER_ERROR,{status:te.statusCode,headers:te.headers,body:bodyify(_e,te.headers?te.headers["content-type"]:null),requestBody:bodyify(Ie.body,Fe["content-type"]),requestMethod:Ie.method,url:Pe})),he)try{const D=yield he(_e,te);return De.cancel(),D}catch(he){if(he.throttleRetry&&D<ye){let te=!0;if(be&&(te=yield be(D,Pe)),te){const te=ve*parseInt(String(Math.random()*Math.pow(2,D)));yield staller(te);continue}}De.cancel(),Mu.throwError("processing response error",hi.errors.SERVER_ERROR,{body:bodyify(_e,te.headers?te.headers["content-type"]:null),error:he,requestBody:bodyify(Ie.body,Fe["content-type"]),requestMethod:Ie.method,url:Pe})}return De.cancel(),_e}return Mu.throwError("failed response",hi.errors.SERVER_ERROR,{requestBody:bodyify(Ie.body,Fe["content-type"]),requestMethod:Ie.method,url:Pe})}))}();return Promise.race([De.promise,Le])}function fetchJson(D,te,he){let ye=null;if(null!=te){ye=toUtf8Bytes$2(te);const he="string"==typeof D?{url:D}:shallowCopy$1(D);if(he.headers){0!==Object.keys(he.headers).filter((D=>"content-type"===D.toLowerCase())).length||(he.headers=shallowCopy$1(he.headers),he.headers["content-type"]="application/json")}else he.headers={"content-type":"application/json"};D=he}return _fetchData(D,ye,((D,te)=>{let ye=null;if(null!=D)try{ye=JSON.parse(toUtf8String$2(D))}catch(te){Mu.throwError("invalid JSON",hi.errors.SERVER_ERROR,{body:D,error:te})}return he&&(ye=he(ye,te)),ye}))}function poll(D,te){return te||(te={}),null==(te=shallowCopy$1(te)).floor&&(te.floor=0),null==te.ceiling&&(te.ceiling=1e4),null==te.interval&&(te.interval=250),new Promise((function(he,ye){let be=null,ve=!1;const cancel=()=>!ve&&(ve=!0,be&&clearTimeout(be),!0);te.timeout&&(be=setTimeout((()=>{cancel()&&ye(new Error("timeout"))}),te.timeout));const we=te.retryLimit;let _e=0;!function check(){return D().then((function(D){if(void 0!==D)cancel()&&he(D);else if(te.oncePoll)te.oncePoll.once("poll",check);else if(te.onceBlock)te.onceBlock.once("block",check);else if(!ve){if(_e++,_e>we)return void(cancel()&&ye(new Error("retry limit reached")));let D=te.interval*parseInt(String(Math.random()*Math.pow(2,_e)));D<te.floor&&(D=te.floor),D>te.ceiling&&(D=te.ceiling),setTimeout(check,D)}return null}),(function(D){cancel()&&ye(D)}))}()}))}for(var Bu="qpzry9x8gf2tvdw0s3jn54khce6mua7l",Fu={},Du=0;Du<32;Du++){var Lu=Bu.charAt(Du);if(void 0!==Fu[Lu])throw new TypeError(Lu+" is ambiguous");Fu[Lu]=Du}function polymodStep(D){var te=D>>25;return(33554431&D)<<5^996825010&-(te>>0&1)^642813549&-(te>>1&1)^513874426&-(te>>2&1)^1027748829&-(te>>3&1)^705979059&-(te>>4&1)}function prefixChk(D){for(var te=1,he=0;he<D.length;++he){var ye=D.charCodeAt(he);if(ye<33||ye>126)return"Invalid prefix ("+D+")";te=polymodStep(te)^ye>>5}for(te=polymodStep(te),he=0;he<D.length;++he){var be=D.charCodeAt(he);te=polymodStep(te)^31&be}return te}function __decode(D,te){if(te=te||90,D.length<8)return D+" too short";if(D.length>te)return"Exceeds length limit";var he=D.toLowerCase(),ye=D.toUpperCase();if(D!==he&&D!==ye)return"Mixed-case string "+D;var be=(D=he).lastIndexOf("1");if(-1===be)return"No separator character for "+D;if(0===be)return"Missing prefix for "+D;var ve=D.slice(0,be),we=D.slice(be+1);if(we.length<6)return"Data too short";var _e=prefixChk(ve);if("string"==typeof _e)return _e;for(var Pe=[],Ie=0;Ie<we.length;++Ie){var Re=we.charAt(Ie),ke=Fu[Re];if(void 0===ke)return"Unknown character "+Re;_e=polymodStep(_e)^ke,Ie+6>=we.length||Pe.push(ke)}return 1!==_e?"Invalid checksum for "+D:{prefix:ve,words:Pe}}function convert(D,te,he,ye){for(var be=0,ve=0,we=(1<<he)-1,_e=[],Pe=0;Pe<D.length;++Pe)for(be=be<<te|D[Pe],ve+=te;ve>=he;)ve-=he,_e.push(be>>ve&we);if(ye)ve>0&&_e.push(be<<he-ve&we);else{if(ve>=te)return"Excess padding";if(be<<he-ve&we)return"Non-zero padding"}return _e}var Uu={decodeUnsafe:function decodeUnsafe(){var D=__decode.apply(null,arguments);if("object"==typeof D)return D},decode:function decode$1(D){var te=__decode.apply(null,arguments);if("object"==typeof te)return te;throw new Error(te)},encode:function encode$4(D,te,he){if(he=he||90,D.length+7+te.length>he)throw new TypeError("Exceeds length limit");var ye=prefixChk(D=D.toLowerCase());if("string"==typeof ye)throw new Error(ye);for(var be=D+"1",ve=0;ve<te.length;++ve){var we=te[ve];if(we>>5!=0)throw new Error("Non 5-bit word");ye=polymodStep(ye)^we,be+=Bu.charAt(we)}for(ve=0;ve<6;++ve)ye=polymodStep(ye);for(ye^=1,ve=0;ve<6;++ve){be+=Bu.charAt(ye>>5*(5-ve)&31)}return be},toWordsUnsafe:function toWordsUnsafe(D){var te=convert(D,8,5,!0);if(Array.isArray(te))return te},toWords:function toWords(D){var te=convert(D,8,5,!0);if(Array.isArray(te))return te;throw new Error(te)},fromWordsUnsafe:function fromWordsUnsafe(D){var te=convert(D,5,8,!1);if(Array.isArray(te))return te},fromWords:function fromWords(D){var te=convert(D,5,8,!1);if(Array.isArray(te))return te;throw new Error(te)}},$u=getDefaultExportFromCjs$1(Uu);const qu="providers/5.7.2",Gu=new hi(qu);class Formatter{constructor(){this.formats=this.getDefaultFormats()}getDefaultFormats(){const D={},te=this.address.bind(this),he=this.bigNumber.bind(this),ye=this.blockTag.bind(this),be=this.data.bind(this),ve=this.hash.bind(this),we=this.hex.bind(this),_e=this.number.bind(this),Pe=this.type.bind(this);return D.transaction={hash:ve,type:Pe,accessList:Formatter.allowNull(this.accessList.bind(this),null),blockHash:Formatter.allowNull(ve,null),blockNumber:Formatter.allowNull(_e,null),transactionIndex:Formatter.allowNull(_e,null),confirmations:Formatter.allowNull(_e,null),from:te,gasPrice:Formatter.allowNull(he),maxPriorityFeePerGas:Formatter.allowNull(he),maxFeePerGas:Formatter.allowNull(he),gasLimit:he,to:Formatter.allowNull(te,null),value:he,nonce:_e,data:be,r:Formatter.allowNull(this.uint256),s:Formatter.allowNull(this.uint256),v:Formatter.allowNull(_e),creates:Formatter.allowNull(te,null),raw:Formatter.allowNull(be)},D.transactionRequest={from:Formatter.allowNull(te),nonce:Formatter.allowNull(_e),gasLimit:Formatter.allowNull(he),gasPrice:Formatter.allowNull(he),maxPriorityFeePerGas:Formatter.allowNull(he),maxFeePerGas:Formatter.allowNull(he),to:Formatter.allowNull(te),value:Formatter.allowNull(he),data:Formatter.allowNull((D=>this.data(D,!0))),type:Formatter.allowNull(_e),accessList:Formatter.allowNull(this.accessList.bind(this),null)},D.receiptLog={transactionIndex:_e,blockNumber:_e,transactionHash:ve,address:te,topics:Formatter.arrayOf(ve),data:be,logIndex:_e,blockHash:ve},D.receipt={to:Formatter.allowNull(this.address,null),from:Formatter.allowNull(this.address,null),contractAddress:Formatter.allowNull(te,null),transactionIndex:_e,root:Formatter.allowNull(we),gasUsed:he,logsBloom:Formatter.allowNull(be),blockHash:ve,transactionHash:ve,logs:Formatter.arrayOf(this.receiptLog.bind(this)),blockNumber:_e,confirmations:Formatter.allowNull(_e,null),cumulativeGasUsed:he,effectiveGasPrice:Formatter.allowNull(he),status:Formatter.allowNull(_e),type:Pe},D.block={hash:Formatter.allowNull(ve),parentHash:ve,number:_e,timestamp:_e,nonce:Formatter.allowNull(we),difficulty:this.difficulty.bind(this),gasLimit:he,gasUsed:he,miner:Formatter.allowNull(te),extraData:be,transactions:Formatter.allowNull(Formatter.arrayOf(ve)),baseFeePerGas:Formatter.allowNull(he)},D.blockWithTransactions=shallowCopy$1(D.block),D.blockWithTransactions.transactions=Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this))),D.filter={fromBlock:Formatter.allowNull(ye,void 0),toBlock:Formatter.allowNull(ye,void 0),blockHash:Formatter.allowNull(ve,void 0),address:Formatter.allowNull(te,void 0),topics:Formatter.allowNull(this.topics.bind(this),void 0)},D.filterLog={blockNumber:Formatter.allowNull(_e),blockHash:Formatter.allowNull(ve),transactionIndex:_e,removed:Formatter.allowNull(this.boolean.bind(this)),address:te,data:Formatter.allowFalsish(be,"0x"),topics:Formatter.arrayOf(ve),transactionHash:ve,logIndex:_e},D}accessList(D){return accessListify$2(D||[])}number(D){return"0x"===D?0:Li.from(D).toNumber()}type(D){return"0x"===D||null==D?0:Li.from(D).toNumber()}bigNumber(D){return Li.from(D)}boolean(D){if("boolean"==typeof D)return D;if("string"==typeof D){if("true"===(D=D.toLowerCase()))return!0;if("false"===D)return!1}throw new Error("invalid boolean - "+D)}hex(D,te){return"string"==typeof D&&(te||"0x"===D.substring(0,2)||(D="0x"+D),isHexString$4(D))?D.toLowerCase():Gu.throwArgumentError("invalid hash","value",D)}data(D,te){const he=this.hex(D,te);if(he.length%2!=0)throw new Error("invalid data; odd-length - "+D);return he}address(D){return getAddress$2(D)}callAddress(D){if(!isHexString$4(D,32))return null;const te=getAddress$2(hexDataSlice$1(D,12));return te===bi?null:te}contractAddress(D){return getContractAddress$1(D)}blockTag(D){if(null==D)return"latest";if("earliest"===D)return"0x0";switch(D){case"earliest":return"0x0";case"latest":case"pending":case"safe":case"finalized":return D}if("number"==typeof D||isHexString$4(D))return hexValue$1(D);throw new Error("invalid blockTag")}hash(D,te){const he=this.hex(D,te);return 32!==hexDataLength$1(he)?Gu.throwArgumentError("invalid hash","value",D):he}difficulty(D){if(null==D)return null;const te=Li.from(D);try{return te.toNumber()}catch(D){}return null}uint256(D){if(!isHexString$4(D))throw new Error("invalid uint256");return hexZeroPad$1(D,32)}_block(D,te){null!=D.author&&null==D.miner&&(D.miner=D.author);const he=null!=D._difficulty?D._difficulty:D.difficulty,ye=Formatter.check(te,D);return ye._difficulty=null==he?null:Li.from(he),ye}block(D){return this._block(D,this.formats.block)}blockWithTransactions(D){return this._block(D,this.formats.blockWithTransactions)}transactionRequest(D){return Formatter.check(this.formats.transactionRequest,D)}transactionResponse(D){null!=D.gas&&null==D.gasLimit&&(D.gasLimit=D.gas),D.to&&Li.from(D.to).isZero()&&(D.to="0x0000000000000000000000000000000000000000"),null!=D.input&&null==D.data&&(D.data=D.input),null==D.to&&null==D.creates&&(D.creates=this.contractAddress(D)),1!==D.type&&2!==D.type||null!=D.accessList||(D.accessList=[]);const te=Formatter.check(this.formats.transaction,D);if(null!=D.chainId){let he=D.chainId;isHexString$4(he)&&(he=Li.from(he).toNumber()),te.chainId=he}else{let he=D.networkId;null==he&&null==te.v&&(he=D.chainId),isHexString$4(he)&&(he=Li.from(he).toNumber()),"number"!=typeof he&&null!=te.v&&(he=(te.v-35)/2,he<0&&(he=0),he=parseInt(he)),"number"!=typeof he&&(he=0),te.chainId=he}return te.blockHash&&"x"===te.blockHash.replace(/0/g,"")&&(te.blockHash=null),te}transaction(D){return parse$1(D)}receiptLog(D){return Formatter.check(this.formats.receiptLog,D)}receipt(D){const te=Formatter.check(this.formats.receipt,D);if(null!=te.root)if(te.root.length<=4){const D=Li.from(te.root).toNumber();0===D||1===D?(null!=te.status&&te.status!==D&&Gu.throwArgumentError("alt-root-status/status mismatch","value",{root:te.root,status:te.status}),te.status=D,delete te.root):Gu.throwArgumentError("invalid alt-root-status","value.root",te.root)}else 66!==te.root.length&&Gu.throwArgumentError("invalid root hash","value.root",te.root);return null!=te.status&&(te.byzantium=!0),te}topics(D){return Array.isArray(D)?D.map((D=>this.topics(D))):null!=D?this.hash(D,!0):null}filter(D){return Formatter.check(this.formats.filter,D)}filterLog(D){return Formatter.check(this.formats.filterLog,D)}static check(D,te){const he={};for(const ye in D)try{const be=D[ye](te[ye]);void 0!==be&&(he[ye]=be)}catch(D){throw D.checkKey=ye,D.checkValue=te[ye],D}return he}static allowNull(D,te){return function(he){return null==he?te:D(he)}}static allowFalsish(D,te){return function(he){return he?D(he):te}}static arrayOf(D){return function(te){if(!Array.isArray(te))throw new Error("not an array");const he=[];return te.forEach((function(te){he.push(D(te))})),he}}}var __awaiter$7=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const ju=new hi(qu);function checkTopic(D){return null==D?"null":(32!==hexDataLength$1(D)&&ju.throwArgumentError("invalid topic","topic",D),D.toLowerCase())}function serializeTopics(D){for(D=D.slice();D.length>0&&null==D[D.length-1];)D.pop();return D.map((D=>{if(Array.isArray(D)){const te={};D.forEach((D=>{te[checkTopic(D)]=!0}));const he=Object.keys(te);return he.sort(),he.join("|")}return checkTopic(D)})).join("&")}function getEventTag$1(D){if("string"==typeof D){if(32===hexDataLength$1(D=D.toLowerCase()))return"tx:"+D;if(-1===D.indexOf(":"))return D}else{if(Array.isArray(D))return"filter:*:"+serializeTopics(D);if(ForkEvent.isForkEvent(D))throw ju.warn("not implemented"),new Error("not implemented");if(D&&"object"==typeof D)return"filter:"+(D.address||"*")+":"+serializeTopics(D.topics||[])}throw new Error("invalid event - "+D)}function getTime$2(){return(new Date).getTime()}function stall$1(D){return new Promise((te=>{setTimeout(te,D)}))}const Hu=["block","network","pending","poll"];const zu={0:{symbol:"btc",p2pkh:0,p2sh:5,prefix:"bc"},2:{symbol:"ltc",p2pkh:48,p2sh:50,prefix:"ltc"},3:{symbol:"doge",p2pkh:30,p2sh:22},60:{symbol:"eth",ilk:"eth"},61:{symbol:"etc",ilk:"eth"},700:{symbol:"xdai",ilk:"eth"}};function bytes32ify(D){return hexZeroPad$1(Li.from(D).toHexString(),32)}function base58Encode(D){return lu.encode(concat$2([D,hexDataSlice$1(sha256$9(sha256$9(D)),0,4)]))}const Wu=new RegExp("^(ipfs)://(.*)$","i"),Vu=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),Wu,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];function _parseString$1(D,te){try{return toUtf8String$2(_parseBytes$1(D,te))}catch(D){}return null}function _parseBytes$1(D,te){if("0x"===D)return null;const he=Li.from(hexDataSlice$1(D,te,te+32)).toNumber(),ye=Li.from(hexDataSlice$1(D,he,he+32)).toNumber();return hexDataSlice$1(D,he+32,he+32+ye)}function getIpfsLink$1(D){return D.match(/^ipfs:\/\/ipfs\//i)?D=D.substring(12):D.match(/^ipfs:\/\//i)?D=D.substring(7):ju.throwArgumentError("unsupported IPFS format","link",D),`https://gateway.ipfs.io/ipfs/${D}`}function numPad$1(D){const te=arrayify$1(D);if(te.length>32)throw new Error("internal; should not happen");const he=new Uint8Array(32);return he.set(te,32-te.length),he}function bytesPad$1(D){if(D.length%32==0)return D;const te=new Uint8Array(32*Math.ceil(D.length/32));return te.set(D),te}function encodeBytes$1(D){const te=[];let he=0;for(let ye=0;ye<D.length;ye++)te.push(null),he+=32;for(let ye=0;ye<D.length;ye++){const be=arrayify$1(D[ye]);te[ye]=numPad$1(he),te.push(numPad$1(be.length)),te.push(bytesPad$1(be)),he+=32+32*Math.ceil(be.length/32)}return hexConcat$1(te)}class Resolver{constructor(D,te,he,ye){defineReadOnly$1(this,"provider",D),defineReadOnly$1(this,"name",he),defineReadOnly$1(this,"address",D.formatter.address(te)),defineReadOnly$1(this,"_resolvedAddress",ye)}supportsWildcard(){return this._supportsEip2544||(this._supportsEip2544=this.provider.call({to:this.address,data:"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000"}).then((D=>Li.from(D).eq(1))).catch((D=>{if(D.code===hi.errors.CALL_EXCEPTION)return!1;throw this._supportsEip2544=null,D}))),this._supportsEip2544}_fetch(D,te){return __awaiter$7(this,void 0,void 0,(function*(){const he={to:this.address,ccipReadEnabled:!0,data:hexConcat$1([D,namehash$2(this.name),te||"0x"])};let ye=!1;(yield this.supportsWildcard())&&(ye=!0,he.data=hexConcat$1(["0x9061b923",encodeBytes$1([dnsEncode$1(this.name),he.data])]));try{let D=yield this.provider.call(he);return arrayify$1(D).length%32==4&&ju.throwError("resolver threw error",hi.errors.CALL_EXCEPTION,{transaction:he,data:D}),ye&&(D=_parseBytes$1(D,0)),D}catch(D){if(D.code===hi.errors.CALL_EXCEPTION)return null;throw D}}))}_fetchBytes(D,te){return __awaiter$7(this,void 0,void 0,(function*(){const he=yield this._fetch(D,te);return null!=he?_parseBytes$1(he,0):null}))}_getAddress(D,te){const he=zu[String(D)];if(null==he&&ju.throwError(`unsupported coin type: ${D}`,hi.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${D})`}),"eth"===he.ilk)return this.provider.formatter.address(te);const ye=arrayify$1(te);if(null!=he.p2pkh){const D=te.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);if(D){const te=parseInt(D[1],16);if(D[2].length===2*te&&te>=1&&te<=75)return base58Encode(concat$2([[he.p2pkh],"0x"+D[2]]))}}if(null!=he.p2sh){const D=te.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);if(D){const te=parseInt(D[1],16);if(D[2].length===2*te&&te>=1&&te<=75)return base58Encode(concat$2([[he.p2sh],"0x"+D[2]]))}}if(null!=he.prefix){const D=ye[1];let te=ye[0];if(0===te?20!==D&&32!==D&&(te=-1):te=-1,te>=0&&ye.length===2+D&&D>=1&&D<=75){const D=$u.toWords(ye.slice(2));return D.unshift(te),$u.encode(he.prefix,D)}}return null}getAddress(D){return __awaiter$7(this,void 0,void 0,(function*(){if(null==D&&(D=60),60===D)try{const D=yield this._fetch("0x3b3b57de");return"0x"===D||D===Qi?null:this.provider.formatter.callAddress(D)}catch(D){if(D.code===hi.errors.CALL_EXCEPTION)return null;throw D}const te=yield this._fetchBytes("0xf1cb7e06",bytes32ify(D));if(null==te||"0x"===te)return null;const he=this._getAddress(D,te);return null==he&&ju.throwError("invalid or unsupported coin data",hi.errors.UNSUPPORTED_OPERATION,{operation:`getAddress(${D})`,coinType:D,data:te}),he}))}getAvatar(){return __awaiter$7(this,void 0,void 0,(function*(){const D=[{type:"name",content:this.name}];try{const te=yield this.getText("avatar");if(null==te)return null;for(let he=0;he<Vu.length;he++){const ye=te.match(Vu[he]);if(null==ye)continue;const be=ye[1].toLowerCase();switch(be){case"https":return D.push({type:"url",content:te}),{linkage:D,url:te};case"data":return D.push({type:"data",content:te}),{linkage:D,url:te};case"ipfs":return D.push({type:"ipfs",content:te}),{linkage:D,url:getIpfsLink$1(te)};case"erc721":case"erc1155":{const he="erc721"===be?"0xc87b56dd":"0x0e89341c";D.push({type:be,content:te});const ve=this._resolvedAddress||(yield this.getAddress()),we=(ye[2]||"").split("/");if(2!==we.length)return null;const _e=yield this.provider.formatter.address(we[0]),Pe=hexZeroPad$1(Li.from(we[1]).toHexString(),32);if("erc721"===be){const te=this.provider.formatter.callAddress(yield this.provider.call({to:_e,data:hexConcat$1(["0x6352211e",Pe])}));if(ve!==te)return null;D.push({type:"owner",content:te})}else if("erc1155"===be){const te=Li.from(yield this.provider.call({to:_e,data:hexConcat$1(["0x00fdd58e",hexZeroPad$1(ve,32),Pe])}));if(te.isZero())return null;D.push({type:"balance",content:te.toString()})}const Ie={to:this.provider.formatter.address(we[0]),data:hexConcat$1([he,Pe])};let Re=_parseString$1(yield this.provider.call(Ie),0);if(null==Re)return null;D.push({type:"metadata-url-base",content:Re}),"erc1155"===be&&(Re=Re.replace("{id}",Pe.substring(2)),D.push({type:"metadata-url-expanded",content:Re})),Re.match(/^ipfs:/i)&&(Re=getIpfsLink$1(Re)),D.push({type:"metadata-url",content:Re});const ke=yield fetchJson(Re);if(!ke)return null;D.push({type:"metadata",content:JSON.stringify(ke)});let Oe=ke.image;if("string"!=typeof Oe)return null;if(Oe.match(/^(https:\/\/|data:)/i));else{if(null==Oe.match(Wu))return null;D.push({type:"url-ipfs",content:Oe}),Oe=getIpfsLink$1(Oe)}return D.push({type:"url",content:Oe}),{linkage:D,url:Oe}}}}}catch(D){}return null}))}getContentHash(){return __awaiter$7(this,void 0,void 0,(function*(){const D=yield this._fetchBytes("0xbc1c58d1");if(null==D||"0x"===D)return null;const te=D.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(te){const D=parseInt(te[3],16);if(te[4].length===2*D)return"ipfs://"+lu.encode("0x"+te[1])}const he=D.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(he){const D=parseInt(he[3],16);if(he[4].length===2*D)return"ipns://"+lu.encode("0x"+he[1])}const ye=D.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(ye&&64===ye[1].length)return"bzz://"+ye[1];const be=D.match(/^0x90b2c605([0-9a-f]*)$/);if(be&&68===be[1].length){const D={"=":"","+":"-","/":"_"};return"sia://"+encode$5("0x"+be[1]).replace(/[=+\/]/g,(te=>D[te]))}return ju.throwError("invalid or unsupported content hash data",hi.errors.UNSUPPORTED_OPERATION,{operation:"getContentHash()",data:D})}))}getText(D){return __awaiter$7(this,void 0,void 0,(function*(){let te=toUtf8Bytes$2(D);te=concat$2([bytes32ify(64),bytes32ify(te.length),te]),te.length%32!=0&&(te=concat$2([te,hexZeroPad$1("0x",32-D.length%32)]));const he=yield this._fetchBytes("0x59d1d43c",hexlify$2(te));return null==he||"0x"===he?null:toUtf8String$2(he)}))}}let Ku=null,Ju=1;class BaseProvider extends Yo{constructor(D){if(super(),this._events=[],this._emitted={block:-2},this.disableCcipRead=!1,this.formatter=new.target.getFormatter(),defineReadOnly$1(this,"anyNetwork","any"===D),this.anyNetwork&&(D=this.detectNetwork()),D instanceof Promise)this._networkPromise=D,D.catch((D=>{})),this._ready().catch((D=>{}));else{const te=getStatic$1(new.target,"getNetwork")(D);te?(defineReadOnly$1(this,"_network",te),this.emit("network",te,null)):ju.throwArgumentError("invalid network","network",D)}this._maxInternalBlockNumber=-1024,this._lastBlockNumber=-2,this._maxFilterBlockRange=10,this._pollingInterval=4e3,this._fastQueryDate=0}_ready(){return __awaiter$7(this,void 0,void 0,(function*(){if(null==this._network){let D=null;if(this._networkPromise)try{D=yield this._networkPromise}catch(D){}null==D&&(D=yield this.detectNetwork()),D||ju.throwError("no network detected",hi.errors.UNKNOWN_ERROR,{}),null==this._network&&(this.anyNetwork?this._network=D:defineReadOnly$1(this,"_network",D),this.emit("network",D,null))}return this._network}))}get ready(){return poll((()=>this._ready().then((D=>D),(D=>{if(D.code!==hi.errors.NETWORK_ERROR||"noNetwork"!==D.event)throw D}))))}static getFormatter(){return null==Ku&&(Ku=new Formatter),Ku}static getNetwork(D){return function getNetwork(D){if(null==D)return null;if("number"==typeof D){for(const te in Nu){const he=Nu[te];if(he.chainId===D)return{name:he.name,chainId:he.chainId,ensAddress:he.ensAddress||null,_defaultProvider:he._defaultProvider||null}}return{chainId:D,name:"unknown"}}if("string"==typeof D){const te=Nu[D];return null==te?null:{name:te.name,chainId:te.chainId,ensAddress:te.ensAddress,_defaultProvider:te._defaultProvider||null}}const te=Nu[D.name];if(!te)return"number"!=typeof D.chainId&&Ru.throwArgumentError("invalid network chainId","network",D),D;0!==D.chainId&&D.chainId!==te.chainId&&Ru.throwArgumentError("network chainId mismatch","network",D);let he=D._defaultProvider||null;return null==he&&te._defaultProvider&&(he=function isRenetworkable(D){return D&&"function"==typeof D.renetwork}(te._defaultProvider)?te._defaultProvider.renetwork(D):te._defaultProvider),{name:D.name,chainId:te.chainId,ensAddress:D.ensAddress||te.ensAddress||null,_defaultProvider:he}}(null==D?"homestead":D)}ccipReadFetch(D,te,he){return __awaiter$7(this,void 0,void 0,(function*(){if(this.disableCcipRead||0===he.length)return null;const ye=D.to.toLowerCase(),be=te.toLowerCase(),ve=[];for(let D=0;D<he.length;D++){const te=he[D],we=te.replace("{sender}",ye).replace("{data}",be),_e=te.indexOf("{data}")>=0?null:JSON.stringify({data:be,sender:ye}),Pe=yield fetchJson({url:we,errorPassThrough:!0},_e,((D,te)=>(D.status=te.statusCode,D)));if(Pe.data)return Pe.data;const Ie=Pe.message||"unknown error";if(Pe.status>=400&&Pe.status<500)return ju.throwError(`response not found during CCIP fetch: ${Ie}`,hi.errors.SERVER_ERROR,{url:te,errorMessage:Ie});ve.push(Ie)}return ju.throwError(`error encountered during CCIP fetch: ${ve.map((D=>JSON.stringify(D))).join(", ")}`,hi.errors.SERVER_ERROR,{urls:he,errorMessages:ve})}))}_getInternalBlockNumber(D){return __awaiter$7(this,void 0,void 0,(function*(){if(yield this._ready(),D>0)for(;this._internalBlockNumber;){const te=this._internalBlockNumber;try{const he=yield te;if(getTime$2()-he.respTime<=D)return he.blockNumber;break}catch(D){if(this._internalBlockNumber===te)break}}const te=getTime$2(),he=resolveProperties$2({blockNumber:this.perform("getBlockNumber",{}),networkError:this.getNetwork().then((D=>null),(D=>D))}).then((({blockNumber:D,networkError:ye})=>{if(ye)throw this._internalBlockNumber===he&&(this._internalBlockNumber=null),ye;const be=getTime$2();return(D=Li.from(D).toNumber())<this._maxInternalBlockNumber&&(D=this._maxInternalBlockNumber),this._maxInternalBlockNumber=D,this._setFastBlockNumber(D),{blockNumber:D,reqTime:te,respTime:be}}));return this._internalBlockNumber=he,he.catch((D=>{this._internalBlockNumber===he&&(this._internalBlockNumber=null)})),(yield he).blockNumber}))}poll(){return __awaiter$7(this,void 0,void 0,(function*(){const D=Ju++,te=[];let he=null;try{he=yield this._getInternalBlockNumber(100+this.pollingInterval/2)}catch(D){return void this.emit("error",D)}if(this._setFastBlockNumber(he),this.emit("poll",D,he),he!==this._lastBlockNumber){if(-2===this._emitted.block&&(this._emitted.block=he-1),Math.abs(this._emitted.block-he)>1e3)ju.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${he})`),this.emit("error",ju.makeError("network block skew detected",hi.errors.NETWORK_ERROR,{blockNumber:he,event:"blockSkew",previousBlockNumber:this._emitted.block})),this.emit("block",he);else for(let D=this._emitted.block+1;D<=he;D++)this.emit("block",D);this._emitted.block!==he&&(this._emitted.block=he,Object.keys(this._emitted).forEach((D=>{if("block"===D)return;const te=this._emitted[D];"pending"!==te&&he-te>12&&delete this._emitted[D]}))),-2===this._lastBlockNumber&&(this._lastBlockNumber=he-1),this._events.forEach((D=>{switch(D.type){case"tx":{const he=D.hash;let ye=this.getTransactionReceipt(he).then((D=>D&&null!=D.blockNumber?(this._emitted["t:"+he]=D.blockNumber,this.emit(he,D),null):null)).catch((D=>{this.emit("error",D)}));te.push(ye);break}case"filter":if(!D._inflight){D._inflight=!0,-2===D._lastBlockNumber&&(D._lastBlockNumber=he-1);const ye=D.filter;ye.fromBlock=D._lastBlockNumber+1,ye.toBlock=he;const be=ye.toBlock-this._maxFilterBlockRange;be>ye.fromBlock&&(ye.fromBlock=be),ye.fromBlock<0&&(ye.fromBlock=0);const ve=this.getLogs(ye).then((te=>{D._inflight=!1,0!==te.length&&te.forEach((te=>{te.blockNumber>D._lastBlockNumber&&(D._lastBlockNumber=te.blockNumber),this._emitted["b:"+te.blockHash]=te.blockNumber,this._emitted["t:"+te.transactionHash]=te.blockNumber,this.emit(ye,te)}))})).catch((te=>{this.emit("error",te),D._inflight=!1}));te.push(ve)}}})),this._lastBlockNumber=he,Promise.all(te).then((()=>{this.emit("didPoll",D)})).catch((D=>{this.emit("error",D)}))}else this.emit("didPoll",D)}))}resetEventsBlock(D){this._lastBlockNumber=D-1,this.polling&&this.poll()}get network(){return this._network}detectNetwork(){return __awaiter$7(this,void 0,void 0,(function*(){return ju.throwError("provider does not support network detection",hi.errors.UNSUPPORTED_OPERATION,{operation:"provider.detectNetwork"})}))}getNetwork(){return __awaiter$7(this,void 0,void 0,(function*(){const D=yield this._ready(),te=yield this.detectNetwork();if(D.chainId!==te.chainId){if(this.anyNetwork)return this._network=te,this._lastBlockNumber=-2,this._fastBlockNumber=null,this._fastBlockNumberPromise=null,this._fastQueryDate=0,this._emitted.block=-2,this._maxInternalBlockNumber=-1024,this._internalBlockNumber=null,this.emit("network",te,D),yield stall$1(0),this._network;const he=ju.makeError("underlying network changed",hi.errors.NETWORK_ERROR,{event:"changed",network:D,detectedNetwork:te});throw this.emit("error",he),he}return D}))}get blockNumber(){return this._getInternalBlockNumber(100+this.pollingInterval/2).then((D=>{this._setFastBlockNumber(D)}),(D=>{})),null!=this._fastBlockNumber?this._fastBlockNumber:-1}get polling(){return null!=this._poller}set polling(D){D&&!this._poller?(this._poller=setInterval((()=>{this.poll()}),this.pollingInterval),this._bootstrapPoll||(this._bootstrapPoll=setTimeout((()=>{this.poll(),this._bootstrapPoll=setTimeout((()=>{this._poller||this.poll(),this._bootstrapPoll=null}),this.pollingInterval)}),0))):!D&&this._poller&&(clearInterval(this._poller),this._poller=null)}get pollingInterval(){return this._pollingInterval}set pollingInterval(D){if("number"!=typeof D||D<=0||parseInt(String(D))!=D)throw new Error("invalid polling interval");this._pollingInterval=D,this._poller&&(clearInterval(this._poller),this._poller=setInterval((()=>{this.poll()}),this._pollingInterval))}_getFastBlockNumber(){const D=getTime$2();return D-this._fastQueryDate>2*this._pollingInterval&&(this._fastQueryDate=D,this._fastBlockNumberPromise=this.getBlockNumber().then((D=>((null==this._fastBlockNumber||D>this._fastBlockNumber)&&(this._fastBlockNumber=D),this._fastBlockNumber)))),this._fastBlockNumberPromise}_setFastBlockNumber(D){null!=this._fastBlockNumber&&D<this._fastBlockNumber||(this._fastQueryDate=getTime$2(),(null==this._fastBlockNumber||D>this._fastBlockNumber)&&(this._fastBlockNumber=D,this._fastBlockNumberPromise=Promise.resolve(D)))}waitForTransaction(D,te,he){return __awaiter$7(this,void 0,void 0,(function*(){return this._waitForTransaction(D,null==te?1:te,he||0,null)}))}_waitForTransaction(D,te,he,ye){return __awaiter$7(this,void 0,void 0,(function*(){const be=yield this.getTransactionReceipt(D);return(be?be.confirmations:0)>=te?be:new Promise(((be,ve)=>{const we=[];let _e=!1;const alreadyDone=function(){return!!_e||(_e=!0,we.forEach((D=>{D()})),!1)},minedHandler=D=>{D.confirmations<te||alreadyDone()||be(D)};if(this.on(D,minedHandler),we.push((()=>{this.removeListener(D,minedHandler)})),ye){let he=ye.startBlock,be=null;const replaceHandler=we=>__awaiter$7(this,void 0,void 0,(function*(){_e||(yield stall$1(1e3),this.getTransactionCount(ye.from).then((Pe=>__awaiter$7(this,void 0,void 0,(function*(){if(!_e){if(Pe<=ye.nonce)he=we;else{{const te=yield this.getTransaction(D);if(te&&null!=te.blockNumber)return}for(null==be&&(be=he-3,be<ye.startBlock&&(be=ye.startBlock));be<=we;){if(_e)return;const he=yield this.getBlockWithTransactions(be);for(let be=0;be<he.transactions.length;be++){const we=he.transactions[be];if(we.hash===D)return;if(we.from===ye.from&&we.nonce===ye.nonce){if(_e)return;const he=yield this.waitForTransaction(we.hash,te);if(alreadyDone())return;let be="replaced";return we.data===ye.data&&we.to===ye.to&&we.value.eq(ye.value)?be="repriced":"0x"===we.data&&we.from===we.to&&we.value.isZero()&&(be="cancelled"),void ve(ju.makeError("transaction was replaced",hi.errors.TRANSACTION_REPLACED,{cancelled:"replaced"===be||"cancelled"===be,reason:be,replacement:this._wrapTransaction(we),hash:D,receipt:he}))}}be++}}_e||this.once("block",replaceHandler)}}))),(D=>{_e||this.once("block",replaceHandler)})))}));if(_e)return;this.once("block",replaceHandler),we.push((()=>{this.removeListener("block",replaceHandler)}))}if("number"==typeof he&&he>0){const D=setTimeout((()=>{alreadyDone()||ve(ju.makeError("timeout exceeded",hi.errors.TIMEOUT,{timeout:he}))}),he);D.unref&&D.unref(),we.push((()=>{clearTimeout(D)}))}}))}))}getBlockNumber(){return __awaiter$7(this,void 0,void 0,(function*(){return this._getInternalBlockNumber(0)}))}getGasPrice(){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork();const D=yield this.perform("getGasPrice",{});try{return Li.from(D)}catch(te){return ju.throwError("bad result from backend",hi.errors.SERVER_ERROR,{method:"getGasPrice",result:D,error:te})}}))}getBalance(D,te){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork();const he=yield resolveProperties$2({address:this._getAddress(D),blockTag:this._getBlockTag(te)}),ye=yield this.perform("getBalance",he);try{return Li.from(ye)}catch(D){return ju.throwError("bad result from backend",hi.errors.SERVER_ERROR,{method:"getBalance",params:he,result:ye,error:D})}}))}getTransactionCount(D,te){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork();const he=yield resolveProperties$2({address:this._getAddress(D),blockTag:this._getBlockTag(te)}),ye=yield this.perform("getTransactionCount",he);try{return Li.from(ye).toNumber()}catch(D){return ju.throwError("bad result from backend",hi.errors.SERVER_ERROR,{method:"getTransactionCount",params:he,result:ye,error:D})}}))}getCode(D,te){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork();const he=yield resolveProperties$2({address:this._getAddress(D),blockTag:this._getBlockTag(te)}),ye=yield this.perform("getCode",he);try{return hexlify$2(ye)}catch(D){return ju.throwError("bad result from backend",hi.errors.SERVER_ERROR,{method:"getCode",params:he,result:ye,error:D})}}))}getStorageAt(D,te,he){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork();const ye=yield resolveProperties$2({address:this._getAddress(D),blockTag:this._getBlockTag(he),position:Promise.resolve(te).then((D=>hexValue$1(D)))}),be=yield this.perform("getStorageAt",ye);try{return hexlify$2(be)}catch(D){return ju.throwError("bad result from backend",hi.errors.SERVER_ERROR,{method:"getStorageAt",params:ye,result:be,error:D})}}))}_wrapTransaction(D,te,he){if(null!=te&&32!==hexDataLength$1(te))throw new Error("invalid response - sendTransaction");const ye=D;return null!=te&&D.hash!==te&&ju.throwError("Transaction hash mismatch from Provider.sendTransaction.",hi.errors.UNKNOWN_ERROR,{expectedHash:D.hash,returnedHash:te}),ye.wait=(te,ye)=>__awaiter$7(this,void 0,void 0,(function*(){let be;null==te&&(te=1),null==ye&&(ye=0),0!==te&&null!=he&&(be={data:D.data,from:D.from,nonce:D.nonce,to:D.to,value:D.value,startBlock:he});const ve=yield this._waitForTransaction(D.hash,te,ye,be);return null==ve&&0===te?null:(this._emitted["t:"+D.hash]=ve.blockNumber,0===ve.status&&ju.throwError("transaction failed",hi.errors.CALL_EXCEPTION,{transactionHash:D.hash,transaction:D,receipt:ve}),ve)})),ye}sendTransaction(D){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork();const te=yield Promise.resolve(D).then((D=>hexlify$2(D))),he=this.formatter.transaction(D);null==he.confirmations&&(he.confirmations=0);const ye=yield this._getInternalBlockNumber(100+2*this.pollingInterval);try{const D=yield this.perform("sendTransaction",{signedTransaction:te});return this._wrapTransaction(he,D,ye)}catch(D){throw D.transaction=he,D.transactionHash=he.hash,D}}))}_getTransactionRequest(D){return __awaiter$7(this,void 0,void 0,(function*(){const te=yield D,he={};return["from","to"].forEach((D=>{null!=te[D]&&(he[D]=Promise.resolve(te[D]).then((D=>D?this._getAddress(D):null)))})),["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","value"].forEach((D=>{null!=te[D]&&(he[D]=Promise.resolve(te[D]).then((D=>D?Li.from(D):null)))})),["type"].forEach((D=>{null!=te[D]&&(he[D]=Promise.resolve(te[D]).then((D=>null!=D?D:null)))})),te.accessList&&(he.accessList=this.formatter.accessList(te.accessList)),["data"].forEach((D=>{null!=te[D]&&(he[D]=Promise.resolve(te[D]).then((D=>D?hexlify$2(D):null)))})),this.formatter.transactionRequest(yield resolveProperties$2(he))}))}_getFilter(D){return __awaiter$7(this,void 0,void 0,(function*(){D=yield D;const te={};return null!=D.address&&(te.address=this._getAddress(D.address)),["blockHash","topics"].forEach((he=>{null!=D[he]&&(te[he]=D[he])})),["fromBlock","toBlock"].forEach((he=>{null!=D[he]&&(te[he]=this._getBlockTag(D[he]))})),this.formatter.filter(yield resolveProperties$2(te))}))}_call(D,te,he){return __awaiter$7(this,void 0,void 0,(function*(){he>=10&&ju.throwError("CCIP read exceeded maximum redirections",hi.errors.SERVER_ERROR,{redirects:he,transaction:D});const ye=D.to,be=yield this.perform("call",{transaction:D,blockTag:te});if(he>=0&&"latest"===te&&null!=ye&&"0x556f1830"===be.substring(0,10)&&hexDataLength$1(be)%32==4)try{const ve=hexDataSlice$1(be,4),we=hexDataSlice$1(ve,0,32);Li.from(we).eq(ye)||ju.throwError("CCIP Read sender did not match",hi.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:D,data:be});const _e=[],Pe=Li.from(hexDataSlice$1(ve,32,64)).toNumber(),Ie=Li.from(hexDataSlice$1(ve,Pe,Pe+32)).toNumber(),Re=hexDataSlice$1(ve,Pe+32);for(let te=0;te<Ie;te++){const he=_parseString$1(Re,32*te);null==he&&ju.throwError("CCIP Read contained corrupt URL string",hi.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:D,data:be}),_e.push(he)}const ke=_parseBytes$1(ve,64);Li.from(hexDataSlice$1(ve,100,128)).isZero()||ju.throwError("CCIP Read callback selector included junk",hi.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:D,data:be});const Oe=hexDataSlice$1(ve,96,100),xe=_parseBytes$1(ve,128),Be=yield this.ccipReadFetch(D,ke,_e);null==Be&&ju.throwError("CCIP Read disabled or provided no URLs",hi.errors.CALL_EXCEPTION,{name:"OffchainLookup",signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",transaction:D,data:be});const Fe={to:ye,data:hexConcat$1([Oe,encodeBytes$1([Be,xe])])};return this._call(Fe,te,he+1)}catch(D){if(D.code===hi.errors.SERVER_ERROR)throw D}try{return hexlify$2(be)}catch(he){return ju.throwError("bad result from backend",hi.errors.SERVER_ERROR,{method:"call",params:{transaction:D,blockTag:te},result:be,error:he})}}))}call(D,te){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork();const he=yield resolveProperties$2({transaction:this._getTransactionRequest(D),blockTag:this._getBlockTag(te),ccipReadEnabled:Promise.resolve(D.ccipReadEnabled)});return this._call(he.transaction,he.blockTag,he.ccipReadEnabled?0:-1)}))}estimateGas(D){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork();const te=yield resolveProperties$2({transaction:this._getTransactionRequest(D)}),he=yield this.perform("estimateGas",te);try{return Li.from(he)}catch(D){return ju.throwError("bad result from backend",hi.errors.SERVER_ERROR,{method:"estimateGas",params:te,result:he,error:D})}}))}_getAddress(D){return __awaiter$7(this,void 0,void 0,(function*(){"string"!=typeof(D=yield D)&&ju.throwArgumentError("invalid address or ENS name","name",D);const te=yield this.resolveName(D);return null==te&&ju.throwError("ENS name not configured",hi.errors.UNSUPPORTED_OPERATION,{operation:`resolveName(${JSON.stringify(D)})`}),te}))}_getBlock(D,te){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork(),D=yield D;let he=-128;const ye={includeTransactions:!!te};if(isHexString$4(D,32))ye.blockHash=D;else try{ye.blockTag=yield this._getBlockTag(D),isHexString$4(ye.blockTag)&&(he=parseInt(ye.blockTag.substring(2),16))}catch(te){ju.throwArgumentError("invalid block hash or block tag","blockHashOrBlockTag",D)}return poll((()=>__awaiter$7(this,void 0,void 0,(function*(){const D=yield this.perform("getBlock",ye);if(null==D)return null!=ye.blockHash&&null==this._emitted["b:"+ye.blockHash]||null!=ye.blockTag&&he>this._emitted.block?null:void 0;if(te){let te=null;for(let he=0;he<D.transactions.length;he++){const ye=D.transactions[he];if(null==ye.blockNumber)ye.confirmations=0;else if(null==ye.confirmations){null==te&&(te=yield this._getInternalBlockNumber(100+2*this.pollingInterval));let D=te-ye.blockNumber+1;D<=0&&(D=1),ye.confirmations=D}}const he=this.formatter.blockWithTransactions(D);return he.transactions=he.transactions.map((D=>this._wrapTransaction(D))),he}return this.formatter.block(D)}))),{oncePoll:this})}))}getBlock(D){return this._getBlock(D,!1)}getBlockWithTransactions(D){return this._getBlock(D,!0)}getTransaction(D){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork(),D=yield D;const te={transactionHash:this.formatter.hash(D,!0)};return poll((()=>__awaiter$7(this,void 0,void 0,(function*(){const he=yield this.perform("getTransaction",te);if(null==he)return null==this._emitted["t:"+D]?null:void 0;const ye=this.formatter.transactionResponse(he);if(null==ye.blockNumber)ye.confirmations=0;else if(null==ye.confirmations){let D=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-ye.blockNumber+1;D<=0&&(D=1),ye.confirmations=D}return this._wrapTransaction(ye)}))),{oncePoll:this})}))}getTransactionReceipt(D){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork(),D=yield D;const te={transactionHash:this.formatter.hash(D,!0)};return poll((()=>__awaiter$7(this,void 0,void 0,(function*(){const he=yield this.perform("getTransactionReceipt",te);if(null==he)return null==this._emitted["t:"+D]?null:void 0;if(null==he.blockHash)return;const ye=this.formatter.receipt(he);if(null==ye.blockNumber)ye.confirmations=0;else if(null==ye.confirmations){let D=(yield this._getInternalBlockNumber(100+2*this.pollingInterval))-ye.blockNumber+1;D<=0&&(D=1),ye.confirmations=D}return ye}))),{oncePoll:this})}))}getLogs(D){return __awaiter$7(this,void 0,void 0,(function*(){yield this.getNetwork();const te=yield resolveProperties$2({filter:this._getFilter(D)}),he=yield this.perform("getLogs",te);return he.forEach((D=>{null==D.removed&&(D.removed=!1)})),Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(he)}))}getEtherPrice(){return __awaiter$7(this,void 0,void 0,(function*(){return yield this.getNetwork(),this.perform("getEtherPrice",{})}))}_getBlockTag(D){return __awaiter$7(this,void 0,void 0,(function*(){if("number"==typeof(D=yield D)&&D<0){D%1&&ju.throwArgumentError("invalid BlockTag","blockTag",D);let te=yield this._getInternalBlockNumber(100+2*this.pollingInterval);return te+=D,te<0&&(te=0),this.formatter.blockTag(te)}return this.formatter.blockTag(D)}))}getResolver(D){return __awaiter$7(this,void 0,void 0,(function*(){let te=D;for(;;){if(""===te||"."===te)return null;if("eth"!==D&&"eth"===te)return null;const he=yield this._getResolver(te,"getResolver");if(null!=he){const ye=new Resolver(this,he,D);return te===D||(yield ye.supportsWildcard())?ye:null}te=te.split(".").slice(1).join(".")}}))}_getResolver(D,te){return __awaiter$7(this,void 0,void 0,(function*(){null==te&&(te="ENS");const he=yield this.getNetwork();he.ensAddress||ju.throwError("network does not support ENS",hi.errors.UNSUPPORTED_OPERATION,{operation:te,network:he.name});try{const te=yield this.call({to:he.ensAddress,data:"0x0178b8bf"+namehash$2(D).substring(2)});return this.formatter.callAddress(te)}catch(D){}return null}))}resolveName(D){return __awaiter$7(this,void 0,void 0,(function*(){D=yield D;try{return Promise.resolve(this.formatter.address(D))}catch(te){if(isHexString$4(D))throw te}"string"!=typeof D&&ju.throwArgumentError("invalid ENS name","name",D);const te=yield this.getResolver(D);return te?yield te.getAddress():null}))}lookupAddress(D){return __awaiter$7(this,void 0,void 0,(function*(){D=yield D;const te=(D=this.formatter.address(D)).substring(2).toLowerCase()+".addr.reverse",he=yield this._getResolver(te,"lookupAddress");if(null==he)return null;const ye=_parseString$1(yield this.call({to:he,data:"0x691f3431"+namehash$2(te).substring(2)}),0);return(yield this.resolveName(ye))!=D?null:ye}))}getAvatar(D){return __awaiter$7(this,void 0,void 0,(function*(){let te=null;if(isHexString$4(D)){const he=this.formatter.address(D).substring(2).toLowerCase()+".addr.reverse",ye=yield this._getResolver(he,"getAvatar");if(!ye)return null;te=new Resolver(this,ye,he);try{const D=yield te.getAvatar();if(D)return D.url}catch(D){if(D.code!==hi.errors.CALL_EXCEPTION)throw D}try{const D=_parseString$1(yield this.call({to:ye,data:"0x691f3431"+namehash$2(he).substring(2)}),0);te=yield this.getResolver(D)}catch(D){if(D.code!==hi.errors.CALL_EXCEPTION)throw D;return null}}else if(te=yield this.getResolver(D),!te)return null;const he=yield te.getAvatar();return null==he?null:he.url}))}perform(D,te){return ju.throwError(D+" not implemented",hi.errors.NOT_IMPLEMENTED,{operation:D})}_startEvent(D){this.polling=this._events.filter((D=>D.pollable())).length>0}_stopEvent(D){this.polling=this._events.filter((D=>D.pollable())).length>0}_addEventListener(D,te,he){const ye=new class Event{constructor(D,te,he){defineReadOnly$1(this,"tag",D),defineReadOnly$1(this,"listener",te),defineReadOnly$1(this,"once",he),this._lastBlockNumber=-2,this._inflight=!1}get event(){switch(this.type){case"tx":return this.hash;case"filter":return this.filter}return this.tag}get type(){return this.tag.split(":")[0]}get hash(){const D=this.tag.split(":");return"tx"!==D[0]?null:D[1]}get filter(){const D=this.tag.split(":");if("filter"!==D[0])return null;const te=D[1],he=function deserializeTopics(D){return""===D?[]:D.split(/&/g).map((D=>{if(""===D)return[];const te=D.split("|").map((D=>"null"===D?null:D));return 1===te.length?te[0]:te}))}(D[2]),ye={};return he.length>0&&(ye.topics=he),te&&"*"!==te&&(ye.address=te),ye}pollable(){return this.tag.indexOf(":")>=0||Hu.indexOf(this.tag)>=0}}(getEventTag$1(D),te,he);return this._events.push(ye),this._startEvent(ye),this}on(D,te){return this._addEventListener(D,te,!1)}once(D,te){return this._addEventListener(D,te,!0)}emit(D,...te){let he=!1,ye=[],be=getEventTag$1(D);return this._events=this._events.filter((D=>D.tag!==be||(setTimeout((()=>{D.listener.apply(this,te)}),0),he=!0,!D.once||(ye.push(D),!1)))),ye.forEach((D=>{this._stopEvent(D)})),he}listenerCount(D){if(!D)return this._events.length;let te=getEventTag$1(D);return this._events.filter((D=>D.tag===te)).length}listeners(D){if(null==D)return this._events.map((D=>D.listener));let te=getEventTag$1(D);return this._events.filter((D=>D.tag===te)).map((D=>D.listener))}off(D,te){if(null==te)return this.removeAllListeners(D);const he=[];let ye=!1,be=getEventTag$1(D);return this._events=this._events.filter((D=>D.tag!==be||D.listener!=te||(!!ye||(ye=!0,he.push(D),!1)))),he.forEach((D=>{this._stopEvent(D)})),this}removeAllListeners(D){let te=[];if(null==D)te=this._events,this._events=[];else{const he=getEventTag$1(D);this._events=this._events.filter((D=>D.tag!==he||(te.push(D),!1)))}return te.forEach((D=>{this._stopEvent(D)})),this}}var __awaiter$6=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const Xu=new hi(qu),Qu=["call","estimateGas"];function spelunk(D,te){if(null==D)return null;if("string"==typeof D.message&&D.message.match("reverted")){const he=isHexString$4(D.data)?D.data:null;if(!te||he)return{message:D.message,data:he}}if("object"==typeof D){for(const he in D){const ye=spelunk(D[he],te);if(ye)return ye}return null}if("string"==typeof D)try{return spelunk(JSON.parse(D),te)}catch(D){}return null}function checkError(D,te,he){const ye=he.transaction||he.signedTransaction;if("call"===D){const D=spelunk(te,!0);if(D)return D.data;Xu.throwError("missing revert data in call exception; Transaction reverted without a reason string",hi.errors.CALL_EXCEPTION,{data:"0x",transaction:ye,error:te})}if("estimateGas"===D){let he=spelunk(te.body,!1);null==he&&(he=spelunk(te,!1)),he&&Xu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",hi.errors.UNPREDICTABLE_GAS_LIMIT,{reason:he.message,method:D,transaction:ye,error:te})}let be=te.message;throw te.code===hi.errors.SERVER_ERROR&&te.error&&"string"==typeof te.error.message?be=te.error.message:"string"==typeof te.body?be=te.body:"string"==typeof te.responseText&&(be=te.responseText),be=(be||"").toLowerCase(),be.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)&&Xu.throwError("insufficient funds for intrinsic transaction cost",hi.errors.INSUFFICIENT_FUNDS,{error:te,method:D,transaction:ye}),be.match(/nonce (is )?too low/i)&&Xu.throwError("nonce has already been used",hi.errors.NONCE_EXPIRED,{error:te,method:D,transaction:ye}),be.match(/replacement transaction underpriced|transaction gas price.*too low/i)&&Xu.throwError("replacement fee too low",hi.errors.REPLACEMENT_UNDERPRICED,{error:te,method:D,transaction:ye}),be.match(/only replay-protected/i)&&Xu.throwError("legacy pre-eip-155 transactions not supported",hi.errors.UNSUPPORTED_OPERATION,{error:te,method:D,transaction:ye}),Qu.indexOf(D)>=0&&be.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)&&Xu.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",hi.errors.UNPREDICTABLE_GAS_LIMIT,{error:te,method:D,transaction:ye}),te}function timer(D){return new Promise((function(te){setTimeout(te,D)}))}function getResult(D){if(D.error){const te=new Error(D.error.message);throw te.code=D.error.code,te.data=D.error.data,te}return D.result}function getLowerCase$1(D){return D?D.toLowerCase():D}const Zu={};let Yu=class JsonRpcSigner extends nc{constructor(D,te,he){if(super(),D!==Zu)throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner");defineReadOnly$1(this,"provider",te),null==he&&(he=0),"string"==typeof he?(defineReadOnly$1(this,"_address",this.provider.formatter.address(he)),defineReadOnly$1(this,"_index",null)):"number"==typeof he?(defineReadOnly$1(this,"_index",he),defineReadOnly$1(this,"_address",null)):Xu.throwArgumentError("invalid address or index","addressOrIndex",he)}connect(D){return Xu.throwError("cannot alter JSON-RPC Signer connection",hi.errors.UNSUPPORTED_OPERATION,{operation:"connect"})}connectUnchecked(){return new UncheckedJsonRpcSigner(Zu,this.provider,this._address||this._index)}getAddress(){return this._address?Promise.resolve(this._address):this.provider.send("eth_accounts",[]).then((D=>(D.length<=this._index&&Xu.throwError("unknown account #"+this._index,hi.errors.UNSUPPORTED_OPERATION,{operation:"getAddress"}),this.provider.formatter.address(D[this._index]))))}sendUncheckedTransaction(D){D=shallowCopy$1(D);const te=this.getAddress().then((D=>(D&&(D=D.toLowerCase()),D)));if(null==D.gasLimit){const he=shallowCopy$1(D);he.from=te,D.gasLimit=this.provider.estimateGas(he)}return null!=D.to&&(D.to=Promise.resolve(D.to).then((D=>__awaiter$6(this,void 0,void 0,(function*(){if(null==D)return null;const te=yield this.provider.resolveName(D);return null==te&&Xu.throwArgumentError("provided ENS name resolves to null","tx.to",D),te}))))),resolveProperties$2({tx:resolveProperties$2(D),sender:te}).then((({tx:te,sender:he})=>{null!=te.from?te.from.toLowerCase()!==he&&Xu.throwArgumentError("from address mismatch","transaction",D):te.from=he;const ye=this.provider.constructor.hexlifyTransaction(te,{from:!0});return this.provider.send("eth_sendTransaction",[ye]).then((D=>D),(D=>("string"==typeof D.message&&D.message.match(/user denied/i)&&Xu.throwError("user rejected transaction",hi.errors.ACTION_REJECTED,{action:"sendTransaction",transaction:te}),checkError("sendTransaction",D,ye))))}))}signTransaction(D){return Xu.throwError("signing transactions is unsupported",hi.errors.UNSUPPORTED_OPERATION,{operation:"signTransaction"})}sendTransaction(D){return __awaiter$6(this,void 0,void 0,(function*(){const te=yield this.provider._getInternalBlockNumber(100+2*this.provider.pollingInterval),he=yield this.sendUncheckedTransaction(D);try{return yield poll((()=>__awaiter$6(this,void 0,void 0,(function*(){const D=yield this.provider.getTransaction(he);if(null!==D)return this.provider._wrapTransaction(D,he,te)}))),{oncePoll:this.provider})}catch(D){throw D.transactionHash=he,D}}))}signMessage(D){return __awaiter$6(this,void 0,void 0,(function*(){const te="string"==typeof D?toUtf8Bytes$2(D):D,he=yield this.getAddress();try{return yield this.provider.send("personal_sign",[hexlify$2(te),he.toLowerCase()])}catch(te){throw"string"==typeof te.message&&te.message.match(/user denied/i)&&Xu.throwError("user rejected signing",hi.errors.ACTION_REJECTED,{action:"signMessage",from:he,messageData:D}),te}}))}_legacySignMessage(D){return __awaiter$6(this,void 0,void 0,(function*(){const te="string"==typeof D?toUtf8Bytes$2(D):D,he=yield this.getAddress();try{return yield this.provider.send("eth_sign",[he.toLowerCase(),hexlify$2(te)])}catch(te){throw"string"==typeof te.message&&te.message.match(/user denied/i)&&Xu.throwError("user rejected signing",hi.errors.ACTION_REJECTED,{action:"_legacySignMessage",from:he,messageData:D}),te}}))}_signTypedData(D,te,he){return __awaiter$6(this,void 0,void 0,(function*(){const ye=yield jo.resolveNames(D,te,he,(D=>this.provider.resolveName(D))),be=yield this.getAddress();try{return yield this.provider.send("eth_signTypedData_v4",[be.toLowerCase(),JSON.stringify(jo.getPayload(ye.domain,te,ye.value))])}catch(D){throw"string"==typeof D.message&&D.message.match(/user denied/i)&&Xu.throwError("user rejected signing",hi.errors.ACTION_REJECTED,{action:"_signTypedData",from:be,messageData:{domain:ye.domain,types:te,value:ye.value}}),D}}))}unlock(D){return __awaiter$6(this,void 0,void 0,(function*(){const te=this.provider,he=yield this.getAddress();return te.send("personal_unlockAccount",[he.toLowerCase(),D,null])}))}};class UncheckedJsonRpcSigner extends Yu{sendTransaction(D){return this.sendUncheckedTransaction(D).then((D=>({hash:D,nonce:null,gasLimit:null,gasPrice:null,data:null,value:null,chainId:null,confirmations:0,from:null,wait:te=>this.provider.waitForTransaction(D,te)})))}}const ef={chainId:!0,data:!0,gasLimit:!0,gasPrice:!0,nonce:!0,to:!0,value:!0,type:!0,accessList:!0,maxFeePerGas:!0,maxPriorityFeePerGas:!0};let tf=class JsonRpcProvider extends BaseProvider{constructor(D,te){let he=te;null==he&&(he=new Promise(((D,te)=>{setTimeout((()=>{this.detectNetwork().then((te=>{D(te)}),(D=>{te(D)}))}),0)}))),super(he),D||(D=getStatic$1(this.constructor,"defaultUrl")()),defineReadOnly$1(this,"connection","string"==typeof D?Object.freeze({url:D}):Object.freeze(shallowCopy$1(D))),this._nextId=42}get _cache(){return null==this._eventLoopCache&&(this._eventLoopCache={}),this._eventLoopCache}static defaultUrl(){return"http://localhost:8545"}detectNetwork(){return this._cache.detectNetwork||(this._cache.detectNetwork=this._uncachedDetectNetwork(),setTimeout((()=>{this._cache.detectNetwork=null}),0)),this._cache.detectNetwork}_uncachedDetectNetwork(){return __awaiter$6(this,void 0,void 0,(function*(){yield timer(0);let D=null;try{D=yield this.send("eth_chainId",[])}catch(te){try{D=yield this.send("net_version",[])}catch(D){}}if(null!=D){const te=getStatic$1(this.constructor,"getNetwork");try{return te(Li.from(D).toNumber())}catch(te){return Xu.throwError("could not detect network",hi.errors.NETWORK_ERROR,{chainId:D,event:"invalidNetwork",serverError:te})}}return Xu.throwError("could not detect network",hi.errors.NETWORK_ERROR,{event:"noNetwork"})}))}getSigner(D){return new Yu(Zu,this,D)}getUncheckedSigner(D){return this.getSigner(D).connectUnchecked()}listAccounts(){return this.send("eth_accounts",[]).then((D=>D.map((D=>this.formatter.address(D)))))}send(D,te){const he={method:D,params:te,id:this._nextId++,jsonrpc:"2.0"};this.emit("debug",{action:"request",request:deepCopy$2(he),provider:this});const ye=["eth_chainId","eth_blockNumber"].indexOf(D)>=0;if(ye&&this._cache[D])return this._cache[D];const be=fetchJson(this.connection,JSON.stringify(he),getResult).then((D=>(this.emit("debug",{action:"response",request:he,response:D,provider:this}),D)),(D=>{throw this.emit("debug",{action:"response",error:D,request:he,provider:this}),D}));return ye&&(this._cache[D]=be,setTimeout((()=>{this._cache[D]=null}),0)),be}prepareRequest(D,te){switch(D){case"getBlockNumber":return["eth_blockNumber",[]];case"getGasPrice":return["eth_gasPrice",[]];case"getBalance":return["eth_getBalance",[getLowerCase$1(te.address),te.blockTag]];case"getTransactionCount":return["eth_getTransactionCount",[getLowerCase$1(te.address),te.blockTag]];case"getCode":return["eth_getCode",[getLowerCase$1(te.address),te.blockTag]];case"getStorageAt":return["eth_getStorageAt",[getLowerCase$1(te.address),hexZeroPad$1(te.position,32),te.blockTag]];case"sendTransaction":return["eth_sendRawTransaction",[te.signedTransaction]];case"getBlock":return te.blockTag?["eth_getBlockByNumber",[te.blockTag,!!te.includeTransactions]]:te.blockHash?["eth_getBlockByHash",[te.blockHash,!!te.includeTransactions]]:null;case"getTransaction":return["eth_getTransactionByHash",[te.transactionHash]];case"getTransactionReceipt":return["eth_getTransactionReceipt",[te.transactionHash]];case"call":return["eth_call",[getStatic$1(this.constructor,"hexlifyTransaction")(te.transaction,{from:!0}),te.blockTag]];case"estimateGas":return["eth_estimateGas",[getStatic$1(this.constructor,"hexlifyTransaction")(te.transaction,{from:!0})]];case"getLogs":return te.filter&&null!=te.filter.address&&(te.filter.address=getLowerCase$1(te.filter.address)),["eth_getLogs",[te.filter]]}return null}perform(D,te){return __awaiter$6(this,void 0,void 0,(function*(){if("call"===D||"estimateGas"===D){const D=te.transaction;if(D&&null!=D.type&&Li.from(D.type).isZero()&&null==D.maxFeePerGas&&null==D.maxPriorityFeePerGas){const he=yield this.getFeeData();null==he.maxFeePerGas&&null==he.maxPriorityFeePerGas&&((te=shallowCopy$1(te)).transaction=shallowCopy$1(D),delete te.transaction.type)}}const he=this.prepareRequest(D,te);null==he&&Xu.throwError(D+" not implemented",hi.errors.NOT_IMPLEMENTED,{operation:D});try{return yield this.send(he[0],he[1])}catch(he){return checkError(D,he,te)}}))}_startEvent(D){"pending"===D.tag&&this._startPending(),super._startEvent(D)}_startPending(){if(null!=this._pendingFilter)return;const D=this,te=this.send("eth_newPendingTransactionFilter",[]);this._pendingFilter=te,te.then((function(he){return function poll(){D.send("eth_getFilterChanges",[he]).then((function(he){if(D._pendingFilter!=te)return null;let ye=Promise.resolve();return he.forEach((function(te){D._emitted["t:"+te.toLowerCase()]="pending",ye=ye.then((function(){return D.getTransaction(te).then((function(te){return D.emit("pending",te),null}))}))})),ye.then((function(){return timer(1e3)}))})).then((function(){if(D._pendingFilter==te)return setTimeout((function(){poll()}),0),null;D.send("eth_uninstallFilter",[he])})).catch((D=>{}))}(),he})).catch((D=>{}))}_stopEvent(D){"pending"===D.tag&&0===this.listenerCount("pending")&&(this._pendingFilter=null),super._stopEvent(D)}static hexlifyTransaction(D,te){const he=shallowCopy$1(ef);if(te)for(const D in te)te[D]&&(he[D]=!0);checkProperties(D,he);const ye={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((function(te){if(null==D[te])return;const he=hexValue$1(Li.from(D[te]));"gasLimit"===te&&(te="gas"),ye[te]=he})),["from","to","data"].forEach((function(te){null!=D[te]&&(ye[te]=hexlify$2(D[te]))})),D.accessList&&(ye.accessList=accessListify$2(D.accessList)),ye}};var __awaiter$5=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const rf=new hi(qu);class StaticJsonRpcProvider extends tf{detectNetwork(){const D=Object.create(null,{detectNetwork:{get:()=>super.detectNetwork}});return __awaiter$5(this,void 0,void 0,(function*(){let te=this.network;return null==te&&(te=yield D.detectNetwork.call(this),te||rf.throwError("no network detected",hi.errors.UNKNOWN_ERROR,{}),null==this._network&&(defineReadOnly$1(this,"_network",te),this.emit("network",te,null))),te}))}}class JsonRpcBatchProvider extends tf{send(D,te){const he={method:D,params:te,id:this._nextId++,jsonrpc:"2.0"};null==this._pendingBatch&&(this._pendingBatch=[]);const ye={request:he,resolve:null,reject:null},be=new Promise(((D,te)=>{ye.resolve=D,ye.reject=te}));return this._pendingBatch.push(ye),this._pendingBatchAggregator||(this._pendingBatchAggregator=setTimeout((()=>{const D=this._pendingBatch;this._pendingBatch=null,this._pendingBatchAggregator=null;const te=D.map((D=>D.request));return this.emit("debug",{action:"requestBatch",request:deepCopy$2(te),provider:this}),fetchJson(this.connection,JSON.stringify(te)).then((he=>{this.emit("debug",{action:"response",request:te,response:he,provider:this}),D.forEach(((D,te)=>{const ye=he[te];if(ye.error){const te=new Error(ye.error.message);te.code=ye.error.code,te.data=ye.error.data,D.reject(te)}else D.resolve(ye.result)}))}),(he=>{this.emit("debug",{action:"response",error:he,request:te,provider:this}),D.forEach((D=>{D.reject(he)}))}))}),10)),be}}const nf=new hi(qu);let af=1;function buildWeb3LegacyFetcher(D,te){const he="Web3LegacyFetcher";return function(D,ye){const be={method:D,params:ye,id:af++,jsonrpc:"2.0"};return new Promise(((D,ye)=>{this.emit("debug",{action:"request",fetcher:he,request:deepCopy$2(be),provider:this}),te(be,((te,ve)=>{if(te)return this.emit("debug",{action:"response",fetcher:he,error:te,request:be,provider:this}),ye(te);if(this.emit("debug",{action:"response",fetcher:he,request:be,response:ve,provider:this}),ve.error){const D=new Error(ve.error.message);return D.code=ve.error.code,D.data=ve.error.data,ye(D)}D(ve.result)}))}))}}class Web3Provider extends tf{constructor(D,te){null==D&&nf.throwArgumentError("missing provider","provider",D);let he=null,ye=null,be=null;"function"==typeof D?(he="unknown:",ye=D):(he=D.host||D.path||"",!he&&D.isMetaMask&&(he="metamask"),be=D,D.request?(""===he&&(he="eip-1193:"),ye=function buildEip1193Fetcher(D){return function(te,he){null==he&&(he=[]);const ye={method:te,params:he};return this.emit("debug",{action:"request",fetcher:"Eip1193Fetcher",request:deepCopy$2(ye),provider:this}),D.request(ye).then((D=>(this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:ye,response:D,provider:this}),D)),(D=>{throw this.emit("debug",{action:"response",fetcher:"Eip1193Fetcher",request:ye,error:D,provider:this}),D}))}}(D)):D.sendAsync?ye=buildWeb3LegacyFetcher(0,D.sendAsync.bind(D)):D.send?ye=buildWeb3LegacyFetcher(0,D.send.bind(D)):nf.throwArgumentError("unsupported provider","provider",D),he||(he="unknown:")),super(he,te),defineReadOnly$1(this,"jsonRpcFetchFunc",ye),defineReadOnly$1(this,"provider",be)}send(D,te){return this.jsonRpcFetchFunc(D,te)}}const sf=new RegExp("^bytes([0-9]+)$"),of=new RegExp("^(u?int)([0-9]*)$"),cf=new RegExp("^(.*)\\[([0-9]*)\\]$"),df="0000000000000000000000000000000000000000000000000000000000000000",uf=new hi("solidity/5.7.0");function _pack(D,te,he){switch(D){case"address":return he?zeroPad$2(te,32):arrayify$1(te);case"string":return toUtf8Bytes$2(te);case"bytes":return arrayify$1(te);case"bool":return te=te?"0x01":"0x00",he?zeroPad$2(te,32):arrayify$1(te)}let ye=D.match(of);if(ye){let be=parseInt(ye[2]||"256");return(ye[2]&&String(be)!==ye[2]||be%8!=0||0===be||be>256)&&uf.throwArgumentError("invalid number type","type",D),he&&(be=256),zeroPad$2(te=Li.from(te).toTwos(be),be/8)}if(ye=D.match(sf),ye){const be=parseInt(ye[1]);return(String(be)!==ye[1]||0===be||be>32)&&uf.throwArgumentError("invalid bytes type","type",D),arrayify$1(te).byteLength!==be&&uf.throwArgumentError(`invalid value for ${D}`,"value",te),he?arrayify$1((te+df).substring(0,66)):te}if(ye=D.match(cf),ye&&Array.isArray(te)){const he=ye[1];parseInt(ye[2]||String(te.length))!=te.length&&uf.throwArgumentError(`invalid array length for ${D}`,"value",te);const be=[];return te.forEach((function(D){be.push(_pack(he,D,!0))})),concat$2(be)}return uf.throwArgumentError("invalid type","type",D)}function pack$2(D,te){D.length!=te.length&&uf.throwArgumentError("wrong number of values; expected ${ types.length }","values",te);const he=[];return D.forEach((function(D,ye){he.push(_pack(D,te[ye]))})),hexlify$2(concat$2(he))}function keccak256$2(D,te){return keccak256$3(pack$2(D,te))}function sha256$8(D,te){return sha256$9(pack$2(D,te))}var ff=Object.freeze({__proto__:null,keccak256:keccak256$2,pack:pack$2,sha256:sha256$8});const lf=new hi("units/5.7.0"),pf=["wei","kwei","mwei","gwei","szabo","finney","ether"];function formatUnits(D,te){if("string"==typeof te){const D=pf.indexOf(te);-1!==D&&(te=3*D)}return formatFixed(D,null!=te?te:18)}function parseUnits$1(D,te){if("string"!=typeof D&&lf.throwArgumentError("value must be a string","value",D),"string"==typeof te){const D=pf.indexOf(te);-1!==D&&(te=3*D)}return parseFixed(D,null!=te?te:18)}var hf=Object.freeze({__proto__:null,AbiCoder:go,ConstructorFragment:js,ErrorFragment:zs,EventFragment:Gs,FormatTypes:Ls,Fragment:qs,FunctionFragment:Hs,HDNode:HDNode,Indexed:Ko,Interface:Xo,LogDescription:zo,Logger:hi,ParamType:$s,RLP:Zs,SigningKey:Yd,get SupportedAlgorithm(){return pu},TransactionDescription:Wo,get TransactionTypes(){return tu},get UnicodeNormalizationForm(){return Yi},Utf8ErrorFuncs:ts,get Utf8ErrorReason(){return es},_TypedDataEncoder:jo,_fetchData:_fetchData,_toEscapedUtf8String:function _toEscapedUtf8String(D,te){return'"'+getUtf8CodePoints$2(D,te).map((D=>{if(D<256){switch(D){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 13:return"\\r";case 34:return'\\"';case 92:return"\\\\"}if(D>=32&&D<127)return String.fromCharCode(D)}return D<=65535?escapeChar(D):escapeChar(55296+((D-=65536)>>10&1023))+escapeChar(56320+(1023&D))})).join("")+'"'},accessListify:accessListify$2,arrayify:arrayify$1,base58:lu,base64:_o,checkProperties:checkProperties,checkResultErrors:checkResultErrors$1,commify:function commify(D){const te=String(D).split(".");(te.length>2||!te[0].match(/^-?[0-9]*$/)||te[1]&&!te[1].match(/^[0-9]*$/)||"."===D||"-."===D)&&lf.throwArgumentError("invalid value","value",D);let he=te[0],ye="";for("-"===he.substring(0,1)&&(ye="-",he=he.substring(1));"0"===he.substring(0,1);)he=he.substring(1);""===he&&(he="0");let be="";for(2===te.length&&(be="."+(te[1]||"0"));be.length>2&&"0"===be[be.length-1];)be=be.substring(0,be.length-1);const ve=[];for(;he.length;){if(he.length<=3){ve.unshift(he);break}{const D=he.length-3;ve.unshift(he.substring(D)),he=he.substring(0,D)}}return ye+ve.join(",")+be},computeAddress:computeAddress$1,computeHmac:computeHmac,computePublicKey:computePublicKey,concat:concat$2,deepCopy:deepCopy$2,defaultAbiCoder:vo,defaultPath:"m/44'/60'/0'/0/0",defineReadOnly:defineReadOnly$1,dnsEncode:dnsEncode$1,entropyToMnemonic:entropyToMnemonic,fetchJson:fetchJson,formatBytes32String:function formatBytes32String(D){const te=toUtf8Bytes$2(D);if(te.length>31)throw new Error("bytes32 string must be less than 32 bytes");return hexlify$2(concat$2([te,Qi]).slice(0,32))},formatEther:function formatEther(D){return formatUnits(D,18)},formatUnits:formatUnits,getAccountPath:function getAccountPath$1(D){return("number"!=typeof D||D<0||D>=Tu||D%1)&&vu.throwArgumentError("invalid account index","index",D),`m/44'/60'/${D}'/0/0`},getAddress:getAddress$2,getContractAddress:getContractAddress$1,getCreate2Address:getCreate2Address,getIcapAddress:function getIcapAddress(D){let te=function _base16To36(D){return new Ni(D,16).toString(36)}(getAddress$2(D).substring(2)).toUpperCase();for(;te.length<30;)te="0"+te;return"XE"+ibanChecksum$2("XE00"+te)+te},getJsonWalletAddress:function getJsonWalletAddress(D){if(function isCrowdsaleWallet(D){let te=null;try{te=JSON.parse(D)}catch(D){return!1}return te.encseed&&te.ethaddr}(D))try{return getAddress$2(JSON.parse(D).ethaddr)}catch(D){return null}if(function isKeystoreWallet(D){let te=null;try{te=JSON.parse(D)}catch(D){return!1}return!(!te.version||parseInt(te.version)!==te.version||3!==parseInt(te.version))}(D))try{return getAddress$2(JSON.parse(D).address)}catch(D){return null}return null},getStatic:getStatic$1,hashMessage:hashMessage,hexConcat:hexConcat$1,hexDataLength:hexDataLength$1,hexDataSlice:hexDataSlice$1,hexStripZeros:hexStripZeros$1,hexValue:hexValue$1,hexZeroPad:hexZeroPad$1,hexlify:hexlify$2,id:id$3,isAddress:function isAddress$1(D){try{return getAddress$2(D),!0}catch(D){}return!1},isBytes:isBytes$1,isBytesLike:isBytesLike$2,isHexString:isHexString$4,isValidMnemonic:function isValidMnemonic(D,te){try{return mnemonicToEntropy(D,te),!0}catch(D){}return!1},isValidName:function isValidName(D){try{return 0!==ensNameSplit$1(D).length}catch(D){}return!1},joinSignature:function joinSignature(D){return hexlify$2(concat$2([(D=splitSignature(D)).r,D.s,D.recoveryParam?"0x1c":"0x1b"]))},keccak256:keccak256$3,mnemonicToEntropy:mnemonicToEntropy,mnemonicToSeed:mnemonicToSeed,namehash:namehash$2,nameprep:function nameprep(D){if(D.match(/^[a-z0-9-]*$/i)&&D.length<=59)return D.toLowerCase();let te=toUtf8CodePoints(D);te=function flatten$1(D){return D.reduce(((D,te)=>(te.forEach((te=>{D.push(te)})),D)),[])}(te.map((D=>{if(ns.indexOf(D)>=0)return[];if(D>=65024&&D<=65039)return[];let te=function _nameprepTableB2(D){let te=matchMap(D,as);if(te)return[D+te.s];let he=is[D];if(he)return he;let ye=ss[D];return ye?[D+ye[0]]:os[D]||null}(D);return te||[D]}))),te=toUtf8CodePoints(_toUtf8String$2(te),Yi.NFKC),te.forEach((D=>{if(function _nameprepTableC(D){return!!matchMap(D,cs)}(D))throw new Error("STRINGPREP_CONTAINS_PROHIBITED")})),te.forEach((D=>{if(function _nameprepTableA1(D){return!!matchMap(D,rs)}(D))throw new Error("STRINGPREP_CONTAINS_UNASSIGNED")}));let he=_toUtf8String$2(te);if("-"===he.substring(0,1)||"--"===he.substring(2,4)||"-"===he.substring(he.length-1))throw new Error("invalid hyphen");return he},parseBytes32String:function parseBytes32String(D){const te=arrayify$1(D);if(32!==te.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==te[31])throw new Error("invalid bytes32 string - no null terminator");let he=31;for(;0===te[he-1];)he--;return toUtf8String$2(te.slice(0,he))},parseEther:function parseEther(D){return parseUnits$1(D,18)},parseTransaction:parse$1,parseUnits:parseUnits$1,poll:poll,randomBytes:function randomBytes$2(D){(D<=0||D>1024||D%1||D!=D)&&Eu.throwArgumentError("invalid length","length",D);const te=new Uint8Array(D);return Su.getRandomValues(te),arrayify$1(te)},recoverAddress:recoverAddress$1,recoverPublicKey:recoverPublicKey,resolveProperties:resolveProperties$2,ripemd160:ripemd160$5,serializeTransaction:function serialize$1(D,te){if(null==D.type||0===D.type)return null!=D.accessList&&eu.throwArgumentError("untyped transactions do not support accessList; include type: 1","transaction",D),function _serialize(D,te){checkProperties(D,nu);const he=[];ru.forEach((function(te){let ye=D[te.name]||[];const be={};te.numeric&&(be.hexPad="left"),ye=arrayify$1(hexlify$2(ye,be)),te.length&&ye.length!==te.length&&ye.length>0&&eu.throwArgumentError("invalid length for "+te.name,"transaction:"+te.name,ye),te.maxLength&&(ye=stripZeros$1(ye),ye.length>te.maxLength&&eu.throwArgumentError("invalid length for "+te.name,"transaction:"+te.name,ye)),he.push(hexlify$2(ye))}));let ye=0;if(null!=D.chainId?(ye=D.chainId,"number"!=typeof ye&&eu.throwArgumentError("invalid transaction.chainId","transaction",D)):te&&!isBytesLike$2(te)&&te.v>28&&(ye=Math.floor((te.v-35)/2)),0!==ye&&(he.push(hexlify$2(ye)),he.push("0x"),he.push("0x")),!te)return encode$6(he);const be=splitSignature(te);let ve=27+be.recoveryParam;return 0!==ye?(he.pop(),he.pop(),he.pop(),ve+=2*ye+8,be.v>28&&be.v!==ve&&eu.throwArgumentError("transaction.chainId/signature.v mismatch","signature",te)):be.v!==ve&&eu.throwArgumentError("transaction.chainId/signature.v mismatch","signature",te),he.push(hexlify$2(ve)),he.push(stripZeros$1(arrayify$1(be.r))),he.push(stripZeros$1(arrayify$1(be.s))),encode$6(he)}(D,te);switch(D.type){case 1:return _serializeEip2930$1(D,te);case 2:return _serializeEip1559$1(D,te)}return eu.throwError(`unsupported transaction type: ${D.type}`,hi.errors.UNSUPPORTED_OPERATION,{operation:"serializeTransaction",transactionType:D.type})},sha256:sha256$9,sha512:function sha512$3(D){return"0x"+Rd.sha512().update(arrayify$1(D)).digest("hex")},shallowCopy:shallowCopy$1,shuffled:function shuffled(D){for(let te=(D=D.slice()).length-1;te>0;te--){const he=Math.floor(Math.random()*(te+1)),ye=D[te];D[te]=D[he],D[he]=ye}return D},solidityKeccak256:keccak256$2,solidityPack:pack$2,soliditySha256:sha256$8,splitSignature:splitSignature,stripZeros:stripZeros$1,toUtf8Bytes:toUtf8Bytes$2,toUtf8CodePoints:toUtf8CodePoints,toUtf8String:toUtf8String$2,verifyMessage:function verifyMessage(D,te){return recoverAddress$1(hashMessage(D),te)},verifyTypedData:function verifyTypedData(D,te,he,ye){return recoverAddress$1(jo.hash(D,te,he),ye)},zeroPad:zeroPad$2}),yf={},mf="6.5.7",bf={},gf={exports:{}};!function(D){!function(D,te){function assert(D,te){if(!D)throw new Error(te||"Assertion failed")}function inherits(D,te){D.super_=te;var TempCtor=function(){};TempCtor.prototype=te.prototype,D.prototype=new TempCtor,D.prototype.constructor=D}function BN(D,te,he){if(BN.isBN(D))return D;this.negative=0,this.words=null,this.length=0,this.red=null,null!==D&&("le"!==te&&"be"!==te||(he=te,te=10),this._init(D||0,te||10,he||"be"))}var he;"object"==typeof D?D.exports=BN:te.BN=BN,BN.BN=BN,BN.wordSize=26;try{he="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:Ri.Buffer}catch(D){}function parseHex4Bits(D,te){var he=D.charCodeAt(te);return he>=65&&he<=70?he-55:he>=97&&he<=102?he-87:he-48&15}function parseHexByte(D,te,he){var ye=parseHex4Bits(D,he);return he-1>=te&&(ye|=parseHex4Bits(D,he-1)<<4),ye}function parseBase(D,te,he,ye){for(var be=0,ve=Math.min(D.length,he),we=te;we<ve;we++){var _e=D.charCodeAt(we)-48;be*=ye,be+=_e>=49?_e-49+10:_e>=17?_e-17+10:_e}return be}BN.isBN=function isBN(D){return D instanceof BN||null!==D&&"object"==typeof D&&D.constructor.wordSize===BN.wordSize&&Array.isArray(D.words)},BN.max=function max(D,te){return D.cmp(te)>0?D:te},BN.min=function min(D,te){return D.cmp(te)<0?D:te},BN.prototype._init=function init(D,te,he){if("number"==typeof D)return this._initNumber(D,te,he);if("object"==typeof D)return this._initArray(D,te,he);"hex"===te&&(te=16),assert(te===(0|te)&&te>=2&&te<=36);var ye=0;"-"===(D=D.toString().replace(/\s+/g,""))[0]&&(ye++,this.negative=1),ye<D.length&&(16===te?this._parseHex(D,ye,he):(this._parseBase(D,te,ye),"le"===he&&this._initArray(this.toArray(),te,he)))},BN.prototype._initNumber=function _initNumber(D,te,he){D<0&&(this.negative=1,D=-D),D<67108864?(this.words=[67108863&D],this.length=1):D<4503599627370496?(this.words=[67108863&D,D/67108864&67108863],this.length=2):(assert(D<9007199254740992),this.words=[67108863&D,D/67108864&67108863,1],this.length=3),"le"===he&&this._initArray(this.toArray(),te,he)},BN.prototype._initArray=function _initArray(D,te,he){if(assert("number"==typeof D.length),D.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(D.length/3),this.words=new Array(this.length);for(var ye=0;ye<this.length;ye++)this.words[ye]=0;var be,ve,we=0;if("be"===he)for(ye=D.length-1,be=0;ye>=0;ye-=3)ve=D[ye]|D[ye-1]<<8|D[ye-2]<<16,this.words[be]|=ve<<we&67108863,this.words[be+1]=ve>>>26-we&67108863,(we+=24)>=26&&(we-=26,be++);else if("le"===he)for(ye=0,be=0;ye<D.length;ye+=3)ve=D[ye]|D[ye+1]<<8|D[ye+2]<<16,this.words[be]|=ve<<we&67108863,this.words[be+1]=ve>>>26-we&67108863,(we+=24)>=26&&(we-=26,be++);return this.strip()},BN.prototype._parseHex=function _parseHex(D,te,he){this.length=Math.ceil((D.length-te)/6),this.words=new Array(this.length);for(var ye=0;ye<this.length;ye++)this.words[ye]=0;var be,ve=0,we=0;if("be"===he)for(ye=D.length-1;ye>=te;ye-=2)be=parseHexByte(D,te,ye)<<ve,this.words[we]|=67108863&be,ve>=18?(ve-=18,we+=1,this.words[we]|=be>>>26):ve+=8;else for(ye=(D.length-te)%2==0?te+1:te;ye<D.length;ye+=2)be=parseHexByte(D,te,ye)<<ve,this.words[we]|=67108863&be,ve>=18?(ve-=18,we+=1,this.words[we]|=be>>>26):ve+=8;this.strip()},BN.prototype._parseBase=function _parseBase(D,te,he){this.words=[0],this.length=1;for(var ye=0,be=1;be<=67108863;be*=te)ye++;ye--,be=be/te|0;for(var ve=D.length-he,we=ve%ye,_e=Math.min(ve,ve-we)+he,Pe=0,Ie=he;Ie<_e;Ie+=ye)Pe=parseBase(D,Ie,Ie+ye,te),this.imuln(be),this.words[0]+Pe<67108864?this.words[0]+=Pe:this._iaddn(Pe);if(0!==we){var Re=1;for(Pe=parseBase(D,Ie,D.length,te),Ie=0;Ie<we;Ie++)Re*=te;this.imuln(Re),this.words[0]+Pe<67108864?this.words[0]+=Pe:this._iaddn(Pe)}this.strip()},BN.prototype.copy=function copy(D){D.words=new Array(this.length);for(var te=0;te<this.length;te++)D.words[te]=this.words[te];D.length=this.length,D.negative=this.negative,D.red=this.red},BN.prototype.clone=function clone(){var D=new BN(null);return this.copy(D),D},BN.prototype._expand=function _expand(D){for(;this.length<D;)this.words[this.length++]=0;return this},BN.prototype.strip=function strip(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function _normSign(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},BN.prototype.inspect=function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var ye=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],be=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],ve=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function smallMulTo(D,te,he){he.negative=te.negative^D.negative;var ye=D.length+te.length|0;he.length=ye,ye=ye-1|0;var be=0|D.words[0],ve=0|te.words[0],we=be*ve,_e=67108863&we,Pe=we/67108864|0;he.words[0]=_e;for(var Ie=1;Ie<ye;Ie++){for(var Re=Pe>>>26,ke=67108863&Pe,Oe=Math.min(Ie,te.length-1),xe=Math.max(0,Ie-D.length+1);xe<=Oe;xe++){var Be=Ie-xe|0;Re+=(we=(be=0|D.words[Be])*(ve=0|te.words[xe])+ke)/67108864|0,ke=67108863&we}he.words[Ie]=0|ke,Pe=0|Re}return 0!==Pe?he.words[Ie]=0|Pe:he.length--,he.strip()}BN.prototype.toString=function toString(D,te){var he;if(te=0|te||1,16===(D=D||10)||"hex"===D){he="";for(var we=0,_e=0,Pe=0;Pe<this.length;Pe++){var Ie=this.words[Pe],Re=(16777215&(Ie<<we|_e)).toString(16);he=0!==(_e=Ie>>>24-we&16777215)||Pe!==this.length-1?ye[6-Re.length]+Re+he:Re+he,(we+=2)>=26&&(we-=26,Pe--)}for(0!==_e&&(he=_e.toString(16)+he);he.length%te!=0;)he="0"+he;return 0!==this.negative&&(he="-"+he),he}if(D===(0|D)&&D>=2&&D<=36){var ke=be[D],Oe=ve[D];he="";var xe=this.clone();for(xe.negative=0;!xe.isZero();){var Be=xe.modn(Oe).toString(D);he=(xe=xe.idivn(Oe)).isZero()?Be+he:ye[ke-Be.length]+Be+he}for(this.isZero()&&(he="0"+he);he.length%te!=0;)he="0"+he;return 0!==this.negative&&(he="-"+he),he}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function toNumber(){var D=this.words[0];return 2===this.length?D+=67108864*this.words[1]:3===this.length&&1===this.words[2]?D+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-D:D},BN.prototype.toJSON=function toJSON(){return this.toString(16)},BN.prototype.toBuffer=function toBuffer(D,te){return assert(void 0!==he),this.toArrayLike(he,D,te)},BN.prototype.toArray=function toArray(D,te){return this.toArrayLike(Array,D,te)},BN.prototype.toArrayLike=function toArrayLike(D,te,he){var ye=this.byteLength(),be=he||Math.max(1,ye);assert(ye<=be,"byte array longer than desired length"),assert(be>0,"Requested array length <= 0"),this.strip();var ve,we,_e="le"===te,Pe=new D(be),Ie=this.clone();if(_e){for(we=0;!Ie.isZero();we++)ve=Ie.andln(255),Ie.iushrn(8),Pe[we]=ve;for(;we<be;we++)Pe[we]=0}else{for(we=0;we<be-ye;we++)Pe[we]=0;for(we=0;!Ie.isZero();we++)ve=Ie.andln(255),Ie.iushrn(8),Pe[be-we-1]=ve}return Pe},Math.clz32?BN.prototype._countBits=function _countBits(D){return 32-Math.clz32(D)}:BN.prototype._countBits=function _countBits(D){var te=D,he=0;return te>=4096&&(he+=13,te>>>=13),te>=64&&(he+=7,te>>>=7),te>=8&&(he+=4,te>>>=4),te>=2&&(he+=2,te>>>=2),he+te},BN.prototype._zeroBits=function _zeroBits(D){if(0===D)return 26;var te=D,he=0;return 0==(8191&te)&&(he+=13,te>>>=13),0==(127&te)&&(he+=7,te>>>=7),0==(15&te)&&(he+=4,te>>>=4),0==(3&te)&&(he+=2,te>>>=2),0==(1&te)&&he++,he},BN.prototype.bitLength=function bitLength(){var D=this.words[this.length-1],te=this._countBits(D);return 26*(this.length-1)+te},BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;for(var D=0,te=0;te<this.length;te++){var he=this._zeroBits(this.words[te]);if(D+=he,26!==he)break}return D},BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)},BN.prototype.toTwos=function toTwos(D){return 0!==this.negative?this.abs().inotn(D).iaddn(1):this.clone()},BN.prototype.fromTwos=function fromTwos(D){return this.testn(D-1)?this.notn(D).iaddn(1).ineg():this.clone()},BN.prototype.isNeg=function isNeg(){return 0!==this.negative},BN.prototype.neg=function neg(){return this.clone().ineg()},BN.prototype.ineg=function ineg(){return this.isZero()||(this.negative^=1),this},BN.prototype.iuor=function iuor(D){for(;this.length<D.length;)this.words[this.length++]=0;for(var te=0;te<D.length;te++)this.words[te]=this.words[te]|D.words[te];return this.strip()},BN.prototype.ior=function ior(D){return assert(0==(this.negative|D.negative)),this.iuor(D)},BN.prototype.or=function or(D){return this.length>D.length?this.clone().ior(D):D.clone().ior(this)},BN.prototype.uor=function uor(D){return this.length>D.length?this.clone().iuor(D):D.clone().iuor(this)},BN.prototype.iuand=function iuand(D){var te;te=this.length>D.length?D:this;for(var he=0;he<te.length;he++)this.words[he]=this.words[he]&D.words[he];return this.length=te.length,this.strip()},BN.prototype.iand=function iand(D){return assert(0==(this.negative|D.negative)),this.iuand(D)},BN.prototype.and=function and(D){return this.length>D.length?this.clone().iand(D):D.clone().iand(this)},BN.prototype.uand=function uand(D){return this.length>D.length?this.clone().iuand(D):D.clone().iuand(this)},BN.prototype.iuxor=function iuxor(D){var te,he;this.length>D.length?(te=this,he=D):(te=D,he=this);for(var ye=0;ye<he.length;ye++)this.words[ye]=te.words[ye]^he.words[ye];if(this!==te)for(;ye<te.length;ye++)this.words[ye]=te.words[ye];return this.length=te.length,this.strip()},BN.prototype.ixor=function ixor(D){return assert(0==(this.negative|D.negative)),this.iuxor(D)},BN.prototype.xor=function xor(D){return this.length>D.length?this.clone().ixor(D):D.clone().ixor(this)},BN.prototype.uxor=function uxor(D){return this.length>D.length?this.clone().iuxor(D):D.clone().iuxor(this)},BN.prototype.inotn=function inotn(D){assert("number"==typeof D&&D>=0);var te=0|Math.ceil(D/26),he=D%26;this._expand(te),he>0&&te--;for(var ye=0;ye<te;ye++)this.words[ye]=67108863&~this.words[ye];return he>0&&(this.words[ye]=~this.words[ye]&67108863>>26-he),this.strip()},BN.prototype.notn=function notn(D){return this.clone().inotn(D)},BN.prototype.setn=function setn(D,te){assert("number"==typeof D&&D>=0);var he=D/26|0,ye=D%26;return this._expand(he+1),this.words[he]=te?this.words[he]|1<<ye:this.words[he]&~(1<<ye),this.strip()},BN.prototype.iadd=function iadd(D){var te,he,ye;if(0!==this.negative&&0===D.negative)return this.negative=0,te=this.isub(D),this.negative^=1,this._normSign();if(0===this.negative&&0!==D.negative)return D.negative=0,te=this.isub(D),D.negative=1,te._normSign();this.length>D.length?(he=this,ye=D):(he=D,ye=this);for(var be=0,ve=0;ve<ye.length;ve++)te=(0|he.words[ve])+(0|ye.words[ve])+be,this.words[ve]=67108863&te,be=te>>>26;for(;0!==be&&ve<he.length;ve++)te=(0|he.words[ve])+be,this.words[ve]=67108863&te,be=te>>>26;if(this.length=he.length,0!==be)this.words[this.length]=be,this.length++;else if(he!==this)for(;ve<he.length;ve++)this.words[ve]=he.words[ve];return this},BN.prototype.add=function add(D){var te;return 0!==D.negative&&0===this.negative?(D.negative=0,te=this.sub(D),D.negative^=1,te):0===D.negative&&0!==this.negative?(this.negative=0,te=D.sub(this),this.negative=1,te):this.length>D.length?this.clone().iadd(D):D.clone().iadd(this)},BN.prototype.isub=function isub(D){if(0!==D.negative){D.negative=0;var te=this.iadd(D);return D.negative=1,te._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(D),this.negative=1,this._normSign();var he,ye,be=this.cmp(D);if(0===be)return this.negative=0,this.length=1,this.words[0]=0,this;be>0?(he=this,ye=D):(he=D,ye=this);for(var ve=0,we=0;we<ye.length;we++)ve=(te=(0|he.words[we])-(0|ye.words[we])+ve)>>26,this.words[we]=67108863&te;for(;0!==ve&&we<he.length;we++)ve=(te=(0|he.words[we])+ve)>>26,this.words[we]=67108863&te;if(0===ve&&we<he.length&&he!==this)for(;we<he.length;we++)this.words[we]=he.words[we];return this.length=Math.max(this.length,we),he!==this&&(this.negative=1),this.strip()},BN.prototype.sub=function sub(D){return this.clone().isub(D)};var we=function comb10MulTo(D,te,he){var ye,be,ve,we=D.words,_e=te.words,Pe=he.words,Ie=0,Re=0|we[0],ke=8191&Re,Oe=Re>>>13,xe=0|we[1],Be=8191&xe,Fe=xe>>>13,De=0|we[2],Le=8191&De,Ue=De>>>13,qe=0|we[3],je=8191&qe,Je=qe>>>13,et=0|we[4],tt=8191&et,rt=et>>>13,nt=0|we[5],at=8191&nt,ut=nt>>>13,ht=0|we[6],yt=8191&ht,mt=ht>>>13,bt=0|we[7],wt=8191&bt,_t=bt>>>13,Tt=0|we[8],At=8191&Tt,Et=Tt>>>13,Pt=0|we[9],St=8191&Pt,Ct=Pt>>>13,kt=0|_e[0],Ot=8191&kt,xt=kt>>>13,Nt=0|_e[1],Bt=8191&Nt,Ft=Nt>>>13,Lt=0|_e[2],Ut=8191&Lt,$t=Lt>>>13,qt=0|_e[3],Gt=8191&qt,zt=qt>>>13,Wt=0|_e[4],Vt=8191&Wt,Kt=Wt>>>13,Jt=0|_e[5],Zt=8191&Jt,rr=Jt>>>13,cr=0|_e[6],dr=8191&cr,kr=cr>>>13,$r=0|_e[7],qr=8191&$r,jr=$r>>>13,Hr=0|_e[8],zr=8191&Hr,Vr=Hr>>>13,Jr=0|_e[9],Xr=8191&Jr,Qr=Jr>>>13;he.negative=D.negative^te.negative,he.length=19;var Zr=(Ie+(ye=Math.imul(ke,Ot))|0)+((8191&(be=(be=Math.imul(ke,xt))+Math.imul(Oe,Ot)|0))<<13)|0;Ie=((ve=Math.imul(Oe,xt))+(be>>>13)|0)+(Zr>>>26)|0,Zr&=67108863,ye=Math.imul(Be,Ot),be=(be=Math.imul(Be,xt))+Math.imul(Fe,Ot)|0,ve=Math.imul(Fe,xt);var en=(Ie+(ye=ye+Math.imul(ke,Bt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Ft)|0)+Math.imul(Oe,Bt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Ft)|0)+(be>>>13)|0)+(en>>>26)|0,en&=67108863,ye=Math.imul(Le,Ot),be=(be=Math.imul(Le,xt))+Math.imul(Ue,Ot)|0,ve=Math.imul(Ue,xt),ye=ye+Math.imul(Be,Bt)|0,be=(be=be+Math.imul(Be,Ft)|0)+Math.imul(Fe,Bt)|0,ve=ve+Math.imul(Fe,Ft)|0;var rn=(Ie+(ye=ye+Math.imul(ke,Ut)|0)|0)+((8191&(be=(be=be+Math.imul(ke,$t)|0)+Math.imul(Oe,Ut)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,$t)|0)+(be>>>13)|0)+(rn>>>26)|0,rn&=67108863,ye=Math.imul(je,Ot),be=(be=Math.imul(je,xt))+Math.imul(Je,Ot)|0,ve=Math.imul(Je,xt),ye=ye+Math.imul(Le,Bt)|0,be=(be=be+Math.imul(Le,Ft)|0)+Math.imul(Ue,Bt)|0,ve=ve+Math.imul(Ue,Ft)|0,ye=ye+Math.imul(Be,Ut)|0,be=(be=be+Math.imul(Be,$t)|0)+Math.imul(Fe,Ut)|0,ve=ve+Math.imul(Fe,$t)|0;var nn=(Ie+(ye=ye+Math.imul(ke,Gt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,zt)|0)+Math.imul(Oe,Gt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,zt)|0)+(be>>>13)|0)+(nn>>>26)|0,nn&=67108863,ye=Math.imul(tt,Ot),be=(be=Math.imul(tt,xt))+Math.imul(rt,Ot)|0,ve=Math.imul(rt,xt),ye=ye+Math.imul(je,Bt)|0,be=(be=be+Math.imul(je,Ft)|0)+Math.imul(Je,Bt)|0,ve=ve+Math.imul(Je,Ft)|0,ye=ye+Math.imul(Le,Ut)|0,be=(be=be+Math.imul(Le,$t)|0)+Math.imul(Ue,Ut)|0,ve=ve+Math.imul(Ue,$t)|0,ye=ye+Math.imul(Be,Gt)|0,be=(be=be+Math.imul(Be,zt)|0)+Math.imul(Fe,Gt)|0,ve=ve+Math.imul(Fe,zt)|0;var sn=(Ie+(ye=ye+Math.imul(ke,Vt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Kt)|0)+Math.imul(Oe,Vt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Kt)|0)+(be>>>13)|0)+(sn>>>26)|0,sn&=67108863,ye=Math.imul(at,Ot),be=(be=Math.imul(at,xt))+Math.imul(ut,Ot)|0,ve=Math.imul(ut,xt),ye=ye+Math.imul(tt,Bt)|0,be=(be=be+Math.imul(tt,Ft)|0)+Math.imul(rt,Bt)|0,ve=ve+Math.imul(rt,Ft)|0,ye=ye+Math.imul(je,Ut)|0,be=(be=be+Math.imul(je,$t)|0)+Math.imul(Je,Ut)|0,ve=ve+Math.imul(Je,$t)|0,ye=ye+Math.imul(Le,Gt)|0,be=(be=be+Math.imul(Le,zt)|0)+Math.imul(Ue,Gt)|0,ve=ve+Math.imul(Ue,zt)|0,ye=ye+Math.imul(Be,Vt)|0,be=(be=be+Math.imul(Be,Kt)|0)+Math.imul(Fe,Vt)|0,ve=ve+Math.imul(Fe,Kt)|0;var on=(Ie+(ye=ye+Math.imul(ke,Zt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,rr)|0)+Math.imul(Oe,Zt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,rr)|0)+(be>>>13)|0)+(on>>>26)|0,on&=67108863,ye=Math.imul(yt,Ot),be=(be=Math.imul(yt,xt))+Math.imul(mt,Ot)|0,ve=Math.imul(mt,xt),ye=ye+Math.imul(at,Bt)|0,be=(be=be+Math.imul(at,Ft)|0)+Math.imul(ut,Bt)|0,ve=ve+Math.imul(ut,Ft)|0,ye=ye+Math.imul(tt,Ut)|0,be=(be=be+Math.imul(tt,$t)|0)+Math.imul(rt,Ut)|0,ve=ve+Math.imul(rt,$t)|0,ye=ye+Math.imul(je,Gt)|0,be=(be=be+Math.imul(je,zt)|0)+Math.imul(Je,Gt)|0,ve=ve+Math.imul(Je,zt)|0,ye=ye+Math.imul(Le,Vt)|0,be=(be=be+Math.imul(Le,Kt)|0)+Math.imul(Ue,Vt)|0,ve=ve+Math.imul(Ue,Kt)|0,ye=ye+Math.imul(Be,Zt)|0,be=(be=be+Math.imul(Be,rr)|0)+Math.imul(Fe,Zt)|0,ve=ve+Math.imul(Fe,rr)|0;var yn=(Ie+(ye=ye+Math.imul(ke,dr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,kr)|0)+Math.imul(Oe,dr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,kr)|0)+(be>>>13)|0)+(yn>>>26)|0,yn&=67108863,ye=Math.imul(wt,Ot),be=(be=Math.imul(wt,xt))+Math.imul(_t,Ot)|0,ve=Math.imul(_t,xt),ye=ye+Math.imul(yt,Bt)|0,be=(be=be+Math.imul(yt,Ft)|0)+Math.imul(mt,Bt)|0,ve=ve+Math.imul(mt,Ft)|0,ye=ye+Math.imul(at,Ut)|0,be=(be=be+Math.imul(at,$t)|0)+Math.imul(ut,Ut)|0,ve=ve+Math.imul(ut,$t)|0,ye=ye+Math.imul(tt,Gt)|0,be=(be=be+Math.imul(tt,zt)|0)+Math.imul(rt,Gt)|0,ve=ve+Math.imul(rt,zt)|0,ye=ye+Math.imul(je,Vt)|0,be=(be=be+Math.imul(je,Kt)|0)+Math.imul(Je,Vt)|0,ve=ve+Math.imul(Je,Kt)|0,ye=ye+Math.imul(Le,Zt)|0,be=(be=be+Math.imul(Le,rr)|0)+Math.imul(Ue,Zt)|0,ve=ve+Math.imul(Ue,rr)|0,ye=ye+Math.imul(Be,dr)|0,be=(be=be+Math.imul(Be,kr)|0)+Math.imul(Fe,dr)|0,ve=ve+Math.imul(Fe,kr)|0;var bn=(Ie+(ye=ye+Math.imul(ke,qr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,jr)|0)+Math.imul(Oe,qr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,jr)|0)+(be>>>13)|0)+(bn>>>26)|0,bn&=67108863,ye=Math.imul(At,Ot),be=(be=Math.imul(At,xt))+Math.imul(Et,Ot)|0,ve=Math.imul(Et,xt),ye=ye+Math.imul(wt,Bt)|0,be=(be=be+Math.imul(wt,Ft)|0)+Math.imul(_t,Bt)|0,ve=ve+Math.imul(_t,Ft)|0,ye=ye+Math.imul(yt,Ut)|0,be=(be=be+Math.imul(yt,$t)|0)+Math.imul(mt,Ut)|0,ve=ve+Math.imul(mt,$t)|0,ye=ye+Math.imul(at,Gt)|0,be=(be=be+Math.imul(at,zt)|0)+Math.imul(ut,Gt)|0,ve=ve+Math.imul(ut,zt)|0,ye=ye+Math.imul(tt,Vt)|0,be=(be=be+Math.imul(tt,Kt)|0)+Math.imul(rt,Vt)|0,ve=ve+Math.imul(rt,Kt)|0,ye=ye+Math.imul(je,Zt)|0,be=(be=be+Math.imul(je,rr)|0)+Math.imul(Je,Zt)|0,ve=ve+Math.imul(Je,rr)|0,ye=ye+Math.imul(Le,dr)|0,be=(be=be+Math.imul(Le,kr)|0)+Math.imul(Ue,dr)|0,ve=ve+Math.imul(Ue,kr)|0,ye=ye+Math.imul(Be,qr)|0,be=(be=be+Math.imul(Be,jr)|0)+Math.imul(Fe,qr)|0,ve=ve+Math.imul(Fe,jr)|0;var wn=(Ie+(ye=ye+Math.imul(ke,zr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Vr)|0)+Math.imul(Oe,zr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Vr)|0)+(be>>>13)|0)+(wn>>>26)|0,wn&=67108863,ye=Math.imul(St,Ot),be=(be=Math.imul(St,xt))+Math.imul(Ct,Ot)|0,ve=Math.imul(Ct,xt),ye=ye+Math.imul(At,Bt)|0,be=(be=be+Math.imul(At,Ft)|0)+Math.imul(Et,Bt)|0,ve=ve+Math.imul(Et,Ft)|0,ye=ye+Math.imul(wt,Ut)|0,be=(be=be+Math.imul(wt,$t)|0)+Math.imul(_t,Ut)|0,ve=ve+Math.imul(_t,$t)|0,ye=ye+Math.imul(yt,Gt)|0,be=(be=be+Math.imul(yt,zt)|0)+Math.imul(mt,Gt)|0,ve=ve+Math.imul(mt,zt)|0,ye=ye+Math.imul(at,Vt)|0,be=(be=be+Math.imul(at,Kt)|0)+Math.imul(ut,Vt)|0,ve=ve+Math.imul(ut,Kt)|0,ye=ye+Math.imul(tt,Zt)|0,be=(be=be+Math.imul(tt,rr)|0)+Math.imul(rt,Zt)|0,ve=ve+Math.imul(rt,rr)|0,ye=ye+Math.imul(je,dr)|0,be=(be=be+Math.imul(je,kr)|0)+Math.imul(Je,dr)|0,ve=ve+Math.imul(Je,kr)|0,ye=ye+Math.imul(Le,qr)|0,be=(be=be+Math.imul(Le,jr)|0)+Math.imul(Ue,qr)|0,ve=ve+Math.imul(Ue,jr)|0,ye=ye+Math.imul(Be,zr)|0,be=(be=be+Math.imul(Be,Vr)|0)+Math.imul(Fe,zr)|0,ve=ve+Math.imul(Fe,Vr)|0;var _n=(Ie+(ye=ye+Math.imul(ke,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Qr)|0)+Math.imul(Oe,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Qr)|0)+(be>>>13)|0)+(_n>>>26)|0,_n&=67108863,ye=Math.imul(St,Bt),be=(be=Math.imul(St,Ft))+Math.imul(Ct,Bt)|0,ve=Math.imul(Ct,Ft),ye=ye+Math.imul(At,Ut)|0,be=(be=be+Math.imul(At,$t)|0)+Math.imul(Et,Ut)|0,ve=ve+Math.imul(Et,$t)|0,ye=ye+Math.imul(wt,Gt)|0,be=(be=be+Math.imul(wt,zt)|0)+Math.imul(_t,Gt)|0,ve=ve+Math.imul(_t,zt)|0,ye=ye+Math.imul(yt,Vt)|0,be=(be=be+Math.imul(yt,Kt)|0)+Math.imul(mt,Vt)|0,ve=ve+Math.imul(mt,Kt)|0,ye=ye+Math.imul(at,Zt)|0,be=(be=be+Math.imul(at,rr)|0)+Math.imul(ut,Zt)|0,ve=ve+Math.imul(ut,rr)|0,ye=ye+Math.imul(tt,dr)|0,be=(be=be+Math.imul(tt,kr)|0)+Math.imul(rt,dr)|0,ve=ve+Math.imul(rt,kr)|0,ye=ye+Math.imul(je,qr)|0,be=(be=be+Math.imul(je,jr)|0)+Math.imul(Je,qr)|0,ve=ve+Math.imul(Je,jr)|0,ye=ye+Math.imul(Le,zr)|0,be=(be=be+Math.imul(Le,Vr)|0)+Math.imul(Ue,zr)|0,ve=ve+Math.imul(Ue,Vr)|0;var Cn=(Ie+(ye=ye+Math.imul(Be,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(Be,Qr)|0)+Math.imul(Fe,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Fe,Qr)|0)+(be>>>13)|0)+(Cn>>>26)|0,Cn&=67108863,ye=Math.imul(St,Ut),be=(be=Math.imul(St,$t))+Math.imul(Ct,Ut)|0,ve=Math.imul(Ct,$t),ye=ye+Math.imul(At,Gt)|0,be=(be=be+Math.imul(At,zt)|0)+Math.imul(Et,Gt)|0,ve=ve+Math.imul(Et,zt)|0,ye=ye+Math.imul(wt,Vt)|0,be=(be=be+Math.imul(wt,Kt)|0)+Math.imul(_t,Vt)|0,ve=ve+Math.imul(_t,Kt)|0,ye=ye+Math.imul(yt,Zt)|0,be=(be=be+Math.imul(yt,rr)|0)+Math.imul(mt,Zt)|0,ve=ve+Math.imul(mt,rr)|0,ye=ye+Math.imul(at,dr)|0,be=(be=be+Math.imul(at,kr)|0)+Math.imul(ut,dr)|0,ve=ve+Math.imul(ut,kr)|0,ye=ye+Math.imul(tt,qr)|0,be=(be=be+Math.imul(tt,jr)|0)+Math.imul(rt,qr)|0,ve=ve+Math.imul(rt,jr)|0,ye=ye+Math.imul(je,zr)|0,be=(be=be+Math.imul(je,Vr)|0)+Math.imul(Je,zr)|0,ve=ve+Math.imul(Je,Vr)|0;var Rn=(Ie+(ye=ye+Math.imul(Le,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(Le,Qr)|0)+Math.imul(Ue,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Ue,Qr)|0)+(be>>>13)|0)+(Rn>>>26)|0,Rn&=67108863,ye=Math.imul(St,Gt),be=(be=Math.imul(St,zt))+Math.imul(Ct,Gt)|0,ve=Math.imul(Ct,zt),ye=ye+Math.imul(At,Vt)|0,be=(be=be+Math.imul(At,Kt)|0)+Math.imul(Et,Vt)|0,ve=ve+Math.imul(Et,Kt)|0,ye=ye+Math.imul(wt,Zt)|0,be=(be=be+Math.imul(wt,rr)|0)+Math.imul(_t,Zt)|0,ve=ve+Math.imul(_t,rr)|0,ye=ye+Math.imul(yt,dr)|0,be=(be=be+Math.imul(yt,kr)|0)+Math.imul(mt,dr)|0,ve=ve+Math.imul(mt,kr)|0,ye=ye+Math.imul(at,qr)|0,be=(be=be+Math.imul(at,jr)|0)+Math.imul(ut,qr)|0,ve=ve+Math.imul(ut,jr)|0,ye=ye+Math.imul(tt,zr)|0,be=(be=be+Math.imul(tt,Vr)|0)+Math.imul(rt,zr)|0,ve=ve+Math.imul(rt,Vr)|0;var kn=(Ie+(ye=ye+Math.imul(je,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(je,Qr)|0)+Math.imul(Je,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Je,Qr)|0)+(be>>>13)|0)+(kn>>>26)|0,kn&=67108863,ye=Math.imul(St,Vt),be=(be=Math.imul(St,Kt))+Math.imul(Ct,Vt)|0,ve=Math.imul(Ct,Kt),ye=ye+Math.imul(At,Zt)|0,be=(be=be+Math.imul(At,rr)|0)+Math.imul(Et,Zt)|0,ve=ve+Math.imul(Et,rr)|0,ye=ye+Math.imul(wt,dr)|0,be=(be=be+Math.imul(wt,kr)|0)+Math.imul(_t,dr)|0,ve=ve+Math.imul(_t,kr)|0,ye=ye+Math.imul(yt,qr)|0,be=(be=be+Math.imul(yt,jr)|0)+Math.imul(mt,qr)|0,ve=ve+Math.imul(mt,jr)|0,ye=ye+Math.imul(at,zr)|0,be=(be=be+Math.imul(at,Vr)|0)+Math.imul(ut,zr)|0,ve=ve+Math.imul(ut,Vr)|0;var Mn=(Ie+(ye=ye+Math.imul(tt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(tt,Qr)|0)+Math.imul(rt,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(rt,Qr)|0)+(be>>>13)|0)+(Mn>>>26)|0,Mn&=67108863,ye=Math.imul(St,Zt),be=(be=Math.imul(St,rr))+Math.imul(Ct,Zt)|0,ve=Math.imul(Ct,rr),ye=ye+Math.imul(At,dr)|0,be=(be=be+Math.imul(At,kr)|0)+Math.imul(Et,dr)|0,ve=ve+Math.imul(Et,kr)|0,ye=ye+Math.imul(wt,qr)|0,be=(be=be+Math.imul(wt,jr)|0)+Math.imul(_t,qr)|0,ve=ve+Math.imul(_t,jr)|0,ye=ye+Math.imul(yt,zr)|0,be=(be=be+Math.imul(yt,Vr)|0)+Math.imul(mt,zr)|0,ve=ve+Math.imul(mt,Vr)|0;var Fn=(Ie+(ye=ye+Math.imul(at,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(at,Qr)|0)+Math.imul(ut,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(ut,Qr)|0)+(be>>>13)|0)+(Fn>>>26)|0,Fn&=67108863,ye=Math.imul(St,dr),be=(be=Math.imul(St,kr))+Math.imul(Ct,dr)|0,ve=Math.imul(Ct,kr),ye=ye+Math.imul(At,qr)|0,be=(be=be+Math.imul(At,jr)|0)+Math.imul(Et,qr)|0,ve=ve+Math.imul(Et,jr)|0,ye=ye+Math.imul(wt,zr)|0,be=(be=be+Math.imul(wt,Vr)|0)+Math.imul(_t,zr)|0,ve=ve+Math.imul(_t,Vr)|0;var Dn=(Ie+(ye=ye+Math.imul(yt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(yt,Qr)|0)+Math.imul(mt,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(mt,Qr)|0)+(be>>>13)|0)+(Dn>>>26)|0,Dn&=67108863,ye=Math.imul(St,qr),be=(be=Math.imul(St,jr))+Math.imul(Ct,qr)|0,ve=Math.imul(Ct,jr),ye=ye+Math.imul(At,zr)|0,be=(be=be+Math.imul(At,Vr)|0)+Math.imul(Et,zr)|0,ve=ve+Math.imul(Et,Vr)|0;var Ln=(Ie+(ye=ye+Math.imul(wt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(wt,Qr)|0)+Math.imul(_t,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(_t,Qr)|0)+(be>>>13)|0)+(Ln>>>26)|0,Ln&=67108863,ye=Math.imul(St,zr),be=(be=Math.imul(St,Vr))+Math.imul(Ct,zr)|0,ve=Math.imul(Ct,Vr);var Un=(Ie+(ye=ye+Math.imul(At,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(At,Qr)|0)+Math.imul(Et,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Et,Qr)|0)+(be>>>13)|0)+(Un>>>26)|0,Un&=67108863;var $n=(Ie+(ye=Math.imul(St,Xr))|0)+((8191&(be=(be=Math.imul(St,Qr))+Math.imul(Ct,Xr)|0))<<13)|0;return Ie=((ve=Math.imul(Ct,Qr))+(be>>>13)|0)+($n>>>26)|0,$n&=67108863,Pe[0]=Zr,Pe[1]=en,Pe[2]=rn,Pe[3]=nn,Pe[4]=sn,Pe[5]=on,Pe[6]=yn,Pe[7]=bn,Pe[8]=wn,Pe[9]=_n,Pe[10]=Cn,Pe[11]=Rn,Pe[12]=kn,Pe[13]=Mn,Pe[14]=Fn,Pe[15]=Dn,Pe[16]=Ln,Pe[17]=Un,Pe[18]=$n,0!==Ie&&(Pe[19]=Ie,he.length++),he};function jumboMulTo(D,te,he){return(new FFTM).mulp(D,te,he)}function FFTM(D,te){this.x=D,this.y=te}Math.imul||(we=smallMulTo),BN.prototype.mulTo=function mulTo(D,te){var he,ye=this.length+D.length;return he=10===this.length&&10===D.length?we(this,D,te):ye<63?smallMulTo(this,D,te):ye<1024?function bigMulTo(D,te,he){he.negative=te.negative^D.negative,he.length=D.length+te.length;for(var ye=0,be=0,ve=0;ve<he.length-1;ve++){var we=be;be=0;for(var _e=67108863&ye,Pe=Math.min(ve,te.length-1),Ie=Math.max(0,ve-D.length+1);Ie<=Pe;Ie++){var Re=ve-Ie,ke=(0|D.words[Re])*(0|te.words[Ie]),Oe=67108863&ke;_e=67108863&(Oe=Oe+_e|0),be+=(we=(we=we+(ke/67108864|0)|0)+(Oe>>>26)|0)>>>26,we&=67108863}he.words[ve]=_e,ye=we,we=be}return 0!==ye?he.words[ve]=ye:he.length--,he.strip()}(this,D,te):jumboMulTo(this,D,te),he},FFTM.prototype.makeRBT=function makeRBT(D){for(var te=new Array(D),he=BN.prototype._countBits(D)-1,ye=0;ye<D;ye++)te[ye]=this.revBin(ye,he,D);return te},FFTM.prototype.revBin=function revBin(D,te,he){if(0===D||D===he-1)return D;for(var ye=0,be=0;be<te;be++)ye|=(1&D)<<te-be-1,D>>=1;return ye},FFTM.prototype.permute=function permute(D,te,he,ye,be,ve){for(var we=0;we<ve;we++)ye[we]=te[D[we]],be[we]=he[D[we]]},FFTM.prototype.transform=function transform(D,te,he,ye,be,ve){this.permute(ve,D,te,he,ye,be);for(var we=1;we<be;we<<=1)for(var _e=we<<1,Pe=Math.cos(2*Math.PI/_e),Ie=Math.sin(2*Math.PI/_e),Re=0;Re<be;Re+=_e)for(var ke=Pe,Oe=Ie,xe=0;xe<we;xe++){var Be=he[Re+xe],Fe=ye[Re+xe],De=he[Re+xe+we],Le=ye[Re+xe+we],Ue=ke*De-Oe*Le;Le=ke*Le+Oe*De,De=Ue,he[Re+xe]=Be+De,ye[Re+xe]=Fe+Le,he[Re+xe+we]=Be-De,ye[Re+xe+we]=Fe-Le,xe!==_e&&(Ue=Pe*ke-Ie*Oe,Oe=Pe*Oe+Ie*ke,ke=Ue)}},FFTM.prototype.guessLen13b=function guessLen13b(D,te){var he=1|Math.max(te,D),ye=1&he,be=0;for(he=he/2|0;he;he>>>=1)be++;return 1<<be+1+ye},FFTM.prototype.conjugate=function conjugate(D,te,he){if(!(he<=1))for(var ye=0;ye<he/2;ye++){var be=D[ye];D[ye]=D[he-ye-1],D[he-ye-1]=be,be=te[ye],te[ye]=-te[he-ye-1],te[he-ye-1]=-be}},FFTM.prototype.normalize13b=function normalize13b(D,te){for(var he=0,ye=0;ye<te/2;ye++){var be=8192*Math.round(D[2*ye+1]/te)+Math.round(D[2*ye]/te)+he;D[ye]=67108863&be,he=be<67108864?0:be/67108864|0}return D},FFTM.prototype.convert13b=function convert13b(D,te,he,ye){for(var be=0,ve=0;ve<te;ve++)be+=0|D[ve],he[2*ve]=8191&be,be>>>=13,he[2*ve+1]=8191&be,be>>>=13;for(ve=2*te;ve<ye;++ve)he[ve]=0;assert(0===be),assert(0==(-8192&be))},FFTM.prototype.stub=function stub(D){for(var te=new Array(D),he=0;he<D;he++)te[he]=0;return te},FFTM.prototype.mulp=function mulp(D,te,he){var ye=2*this.guessLen13b(D.length,te.length),be=this.makeRBT(ye),ve=this.stub(ye),we=new Array(ye),_e=new Array(ye),Pe=new Array(ye),Ie=new Array(ye),Re=new Array(ye),ke=new Array(ye),Oe=he.words;Oe.length=ye,this.convert13b(D.words,D.length,we,ye),this.convert13b(te.words,te.length,Ie,ye),this.transform(we,ve,_e,Pe,ye,be),this.transform(Ie,ve,Re,ke,ye,be);for(var xe=0;xe<ye;xe++){var Be=_e[xe]*Re[xe]-Pe[xe]*ke[xe];Pe[xe]=_e[xe]*ke[xe]+Pe[xe]*Re[xe],_e[xe]=Be}return this.conjugate(_e,Pe,ye),this.transform(_e,Pe,Oe,ve,ye,be),this.conjugate(Oe,ve,ye),this.normalize13b(Oe,ye),he.negative=D.negative^te.negative,he.length=D.length+te.length,he.strip()},BN.prototype.mul=function mul(D){var te=new BN(null);return te.words=new Array(this.length+D.length),this.mulTo(D,te)},BN.prototype.mulf=function mulf(D){var te=new BN(null);return te.words=new Array(this.length+D.length),jumboMulTo(this,D,te)},BN.prototype.imul=function imul(D){return this.clone().mulTo(D,this)},BN.prototype.imuln=function imuln(D){assert("number"==typeof D),assert(D<67108864);for(var te=0,he=0;he<this.length;he++){var ye=(0|this.words[he])*D,be=(67108863&ye)+(67108863&te);te>>=26,te+=ye/67108864|0,te+=be>>>26,this.words[he]=67108863&be}return 0!==te&&(this.words[he]=te,this.length++),this},BN.prototype.muln=function muln(D){return this.clone().imuln(D)},BN.prototype.sqr=function sqr(){return this.mul(this)},BN.prototype.isqr=function isqr(){return this.imul(this.clone())},BN.prototype.pow=function pow(D){var te=function toBitArray(D){for(var te=new Array(D.bitLength()),he=0;he<te.length;he++){var ye=he/26|0,be=he%26;te[he]=(D.words[ye]&1<<be)>>>be}return te}(D);if(0===te.length)return new BN(1);for(var he=this,ye=0;ye<te.length&&0===te[ye];ye++,he=he.sqr());if(++ye<te.length)for(var be=he.sqr();ye<te.length;ye++,be=be.sqr())0!==te[ye]&&(he=he.mul(be));return he},BN.prototype.iushln=function iushln(D){assert("number"==typeof D&&D>=0);var te,he=D%26,ye=(D-he)/26,be=67108863>>>26-he<<26-he;if(0!==he){var ve=0;for(te=0;te<this.length;te++){var we=this.words[te]&be,_e=(0|this.words[te])-we<<he;this.words[te]=_e|ve,ve=we>>>26-he}ve&&(this.words[te]=ve,this.length++)}if(0!==ye){for(te=this.length-1;te>=0;te--)this.words[te+ye]=this.words[te];for(te=0;te<ye;te++)this.words[te]=0;this.length+=ye}return this.strip()},BN.prototype.ishln=function ishln(D){return assert(0===this.negative),this.iushln(D)},BN.prototype.iushrn=function iushrn(D,te,he){var ye;assert("number"==typeof D&&D>=0),ye=te?(te-te%26)/26:0;var be=D%26,ve=Math.min((D-be)/26,this.length),we=67108863^67108863>>>be<<be,_e=he;if(ye-=ve,ye=Math.max(0,ye),_e){for(var Pe=0;Pe<ve;Pe++)_e.words[Pe]=this.words[Pe];_e.length=ve}if(0===ve);else if(this.length>ve)for(this.length-=ve,Pe=0;Pe<this.length;Pe++)this.words[Pe]=this.words[Pe+ve];else this.words[0]=0,this.length=1;var Ie=0;for(Pe=this.length-1;Pe>=0&&(0!==Ie||Pe>=ye);Pe--){var Re=0|this.words[Pe];this.words[Pe]=Ie<<26-be|Re>>>be,Ie=Re&we}return _e&&0!==Ie&&(_e.words[_e.length++]=Ie),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},BN.prototype.ishrn=function ishrn(D,te,he){return assert(0===this.negative),this.iushrn(D,te,he)},BN.prototype.shln=function shln(D){return this.clone().ishln(D)},BN.prototype.ushln=function ushln(D){return this.clone().iushln(D)},BN.prototype.shrn=function shrn(D){return this.clone().ishrn(D)},BN.prototype.ushrn=function ushrn(D){return this.clone().iushrn(D)},BN.prototype.testn=function testn(D){assert("number"==typeof D&&D>=0);var te=D%26,he=(D-te)/26,ye=1<<te;return!(this.length<=he)&&!!(this.words[he]&ye)},BN.prototype.imaskn=function imaskn(D){assert("number"==typeof D&&D>=0);var te=D%26,he=(D-te)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=he)return this;if(0!==te&&he++,this.length=Math.min(he,this.length),0!==te){var ye=67108863^67108863>>>te<<te;this.words[this.length-1]&=ye}return this.strip()},BN.prototype.maskn=function maskn(D){return this.clone().imaskn(D)},BN.prototype.iaddn=function iaddn(D){return assert("number"==typeof D),assert(D<67108864),D<0?this.isubn(-D):0!==this.negative?1===this.length&&(0|this.words[0])<D?(this.words[0]=D-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(D),this.negative=1,this):this._iaddn(D)},BN.prototype._iaddn=function _iaddn(D){this.words[0]+=D;for(var te=0;te<this.length&&this.words[te]>=67108864;te++)this.words[te]-=67108864,te===this.length-1?this.words[te+1]=1:this.words[te+1]++;return this.length=Math.max(this.length,te+1),this},BN.prototype.isubn=function isubn(D){if(assert("number"==typeof D),assert(D<67108864),D<0)return this.iaddn(-D);if(0!==this.negative)return this.negative=0,this.iaddn(D),this.negative=1,this;if(this.words[0]-=D,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var te=0;te<this.length&&this.words[te]<0;te++)this.words[te]+=67108864,this.words[te+1]-=1;return this.strip()},BN.prototype.addn=function addn(D){return this.clone().iaddn(D)},BN.prototype.subn=function subn(D){return this.clone().isubn(D)},BN.prototype.iabs=function iabs(){return this.negative=0,this},BN.prototype.abs=function abs(){return this.clone().iabs()},BN.prototype._ishlnsubmul=function _ishlnsubmul(D,te,he){var ye,be,ve=D.length+he;this._expand(ve);var we=0;for(ye=0;ye<D.length;ye++){be=(0|this.words[ye+he])+we;var _e=(0|D.words[ye])*te;we=((be-=67108863&_e)>>26)-(_e/67108864|0),this.words[ye+he]=67108863&be}for(;ye<this.length-he;ye++)we=(be=(0|this.words[ye+he])+we)>>26,this.words[ye+he]=67108863&be;if(0===we)return this.strip();for(assert(-1===we),we=0,ye=0;ye<this.length;ye++)we=(be=-(0|this.words[ye])+we)>>26,this.words[ye]=67108863&be;return this.negative=1,this.strip()},BN.prototype._wordDiv=function _wordDiv(D,te){var he=(this.length,D.length),ye=this.clone(),be=D,ve=0|be.words[be.length-1];0!==(he=26-this._countBits(ve))&&(be=be.ushln(he),ye.iushln(he),ve=0|be.words[be.length-1]);var we,_e=ye.length-be.length;if("mod"!==te){(we=new BN(null)).length=_e+1,we.words=new Array(we.length);for(var Pe=0;Pe<we.length;Pe++)we.words[Pe]=0}var Ie=ye.clone()._ishlnsubmul(be,1,_e);0===Ie.negative&&(ye=Ie,we&&(we.words[_e]=1));for(var Re=_e-1;Re>=0;Re--){var ke=67108864*(0|ye.words[be.length+Re])+(0|ye.words[be.length+Re-1]);for(ke=Math.min(ke/ve|0,67108863),ye._ishlnsubmul(be,ke,Re);0!==ye.negative;)ke--,ye.negative=0,ye._ishlnsubmul(be,1,Re),ye.isZero()||(ye.negative^=1);we&&(we.words[Re]=ke)}return we&&we.strip(),ye.strip(),"div"!==te&&0!==he&&ye.iushrn(he),{div:we||null,mod:ye}},BN.prototype.divmod=function divmod(D,te,he){return assert(!D.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===D.negative?(ve=this.neg().divmod(D,te),"mod"!==te&&(ye=ve.div.neg()),"div"!==te&&(be=ve.mod.neg(),he&&0!==be.negative&&be.iadd(D)),{div:ye,mod:be}):0===this.negative&&0!==D.negative?(ve=this.divmod(D.neg(),te),"mod"!==te&&(ye=ve.div.neg()),{div:ye,mod:ve.mod}):0!=(this.negative&D.negative)?(ve=this.neg().divmod(D.neg(),te),"div"!==te&&(be=ve.mod.neg(),he&&0!==be.negative&&be.isub(D)),{div:ve.div,mod:be}):D.length>this.length||this.cmp(D)<0?{div:new BN(0),mod:this}:1===D.length?"div"===te?{div:this.divn(D.words[0]),mod:null}:"mod"===te?{div:null,mod:new BN(this.modn(D.words[0]))}:{div:this.divn(D.words[0]),mod:new BN(this.modn(D.words[0]))}:this._wordDiv(D,te);var ye,be,ve},BN.prototype.div=function div(D){return this.divmod(D,"div",!1).div},BN.prototype.mod=function mod(D){return this.divmod(D,"mod",!1).mod},BN.prototype.umod=function umod(D){return this.divmod(D,"mod",!0).mod},BN.prototype.divRound=function divRound(D){var te=this.divmod(D);if(te.mod.isZero())return te.div;var he=0!==te.div.negative?te.mod.isub(D):te.mod,ye=D.ushrn(1),be=D.andln(1),ve=he.cmp(ye);return ve<0||1===be&&0===ve?te.div:0!==te.div.negative?te.div.isubn(1):te.div.iaddn(1)},BN.prototype.modn=function modn(D){assert(D<=67108863);for(var te=(1<<26)%D,he=0,ye=this.length-1;ye>=0;ye--)he=(te*he+(0|this.words[ye]))%D;return he},BN.prototype.idivn=function idivn(D){assert(D<=67108863);for(var te=0,he=this.length-1;he>=0;he--){var ye=(0|this.words[he])+67108864*te;this.words[he]=ye/D|0,te=ye%D}return this.strip()},BN.prototype.divn=function divn(D){return this.clone().idivn(D)},BN.prototype.egcd=function egcd(D){assert(0===D.negative),assert(!D.isZero());var te=this,he=D.clone();te=0!==te.negative?te.umod(D):te.clone();for(var ye=new BN(1),be=new BN(0),ve=new BN(0),we=new BN(1),_e=0;te.isEven()&&he.isEven();)te.iushrn(1),he.iushrn(1),++_e;for(var Pe=he.clone(),Ie=te.clone();!te.isZero();){for(var Re=0,ke=1;0==(te.words[0]&ke)&&Re<26;++Re,ke<<=1);if(Re>0)for(te.iushrn(Re);Re-- >0;)(ye.isOdd()||be.isOdd())&&(ye.iadd(Pe),be.isub(Ie)),ye.iushrn(1),be.iushrn(1);for(var Oe=0,xe=1;0==(he.words[0]&xe)&&Oe<26;++Oe,xe<<=1);if(Oe>0)for(he.iushrn(Oe);Oe-- >0;)(ve.isOdd()||we.isOdd())&&(ve.iadd(Pe),we.isub(Ie)),ve.iushrn(1),we.iushrn(1);te.cmp(he)>=0?(te.isub(he),ye.isub(ve),be.isub(we)):(he.isub(te),ve.isub(ye),we.isub(be))}return{a:ve,b:we,gcd:he.iushln(_e)}},BN.prototype._invmp=function _invmp(D){assert(0===D.negative),assert(!D.isZero());var te=this,he=D.clone();te=0!==te.negative?te.umod(D):te.clone();for(var ye,be=new BN(1),ve=new BN(0),we=he.clone();te.cmpn(1)>0&&he.cmpn(1)>0;){for(var _e=0,Pe=1;0==(te.words[0]&Pe)&&_e<26;++_e,Pe<<=1);if(_e>0)for(te.iushrn(_e);_e-- >0;)be.isOdd()&&be.iadd(we),be.iushrn(1);for(var Ie=0,Re=1;0==(he.words[0]&Re)&&Ie<26;++Ie,Re<<=1);if(Ie>0)for(he.iushrn(Ie);Ie-- >0;)ve.isOdd()&&ve.iadd(we),ve.iushrn(1);te.cmp(he)>=0?(te.isub(he),be.isub(ve)):(he.isub(te),ve.isub(be))}return(ye=0===te.cmpn(1)?be:ve).cmpn(0)<0&&ye.iadd(D),ye},BN.prototype.gcd=function gcd(D){if(this.isZero())return D.abs();if(D.isZero())return this.abs();var te=this.clone(),he=D.clone();te.negative=0,he.negative=0;for(var ye=0;te.isEven()&&he.isEven();ye++)te.iushrn(1),he.iushrn(1);for(;;){for(;te.isEven();)te.iushrn(1);for(;he.isEven();)he.iushrn(1);var be=te.cmp(he);if(be<0){var ve=te;te=he,he=ve}else if(0===be||0===he.cmpn(1))break;te.isub(he)}return he.iushln(ye)},BN.prototype.invm=function invm(D){return this.egcd(D).a.umod(D)},BN.prototype.isEven=function isEven(){return 0==(1&this.words[0])},BN.prototype.isOdd=function isOdd(){return 1==(1&this.words[0])},BN.prototype.andln=function andln(D){return this.words[0]&D},BN.prototype.bincn=function bincn(D){assert("number"==typeof D);var te=D%26,he=(D-te)/26,ye=1<<te;if(this.length<=he)return this._expand(he+1),this.words[he]|=ye,this;for(var be=ye,ve=he;0!==be&&ve<this.length;ve++){var we=0|this.words[ve];be=(we+=be)>>>26,we&=67108863,this.words[ve]=we}return 0!==be&&(this.words[ve]=be,this.length++),this},BN.prototype.isZero=function isZero(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function cmpn(D){var te,he=D<0;if(0!==this.negative&&!he)return-1;if(0===this.negative&&he)return 1;if(this.strip(),this.length>1)te=1;else{he&&(D=-D),assert(D<=67108863,"Number is too big");var ye=0|this.words[0];te=ye===D?0:ye<D?-1:1}return 0!==this.negative?0|-te:te},BN.prototype.cmp=function cmp(D){if(0!==this.negative&&0===D.negative)return-1;if(0===this.negative&&0!==D.negative)return 1;var te=this.ucmp(D);return 0!==this.negative?0|-te:te},BN.prototype.ucmp=function ucmp(D){if(this.length>D.length)return 1;if(this.length<D.length)return-1;for(var te=0,he=this.length-1;he>=0;he--){var ye=0|this.words[he],be=0|D.words[he];if(ye!==be){ye<be?te=-1:ye>be&&(te=1);break}}return te},BN.prototype.gtn=function gtn(D){return 1===this.cmpn(D)},BN.prototype.gt=function gt(D){return 1===this.cmp(D)},BN.prototype.gten=function gten(D){return this.cmpn(D)>=0},BN.prototype.gte=function gte(D){return this.cmp(D)>=0},BN.prototype.ltn=function ltn(D){return-1===this.cmpn(D)},BN.prototype.lt=function lt(D){return-1===this.cmp(D)},BN.prototype.lten=function lten(D){return this.cmpn(D)<=0},BN.prototype.lte=function lte(D){return this.cmp(D)<=0},BN.prototype.eqn=function eqn(D){return 0===this.cmpn(D)},BN.prototype.eq=function eq(D){return 0===this.cmp(D)},BN.red=function red(D){return new Red(D)},BN.prototype.toRed=function toRed(D){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),D.convertTo(this)._forceRed(D)},BN.prototype.fromRed=function fromRed(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function _forceRed(D){return this.red=D,this},BN.prototype.forceRed=function forceRed(D){return assert(!this.red,"Already a number in reduction context"),this._forceRed(D)},BN.prototype.redAdd=function redAdd(D){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,D)},BN.prototype.redIAdd=function redIAdd(D){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,D)},BN.prototype.redSub=function redSub(D){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,D)},BN.prototype.redISub=function redISub(D){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,D)},BN.prototype.redShl=function redShl(D){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,D)},BN.prototype.redMul=function redMul(D){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,D),this.red.mul(this,D)},BN.prototype.redIMul=function redIMul(D){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,D),this.red.imul(this,D)},BN.prototype.redSqr=function redSqr(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function redISqr(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function redSqrt(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function redInvm(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function redNeg(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function redPow(D){return assert(this.red&&!D.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,D)};var _e={k256:null,p224:null,p192:null,p25519:null};function MPrime(D,te){this.name=D,this.p=new BN(te,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(D){if("string"==typeof D){var te=BN._prime(D);this.m=te.p,this.prime=te}else assert(D.gtn(1),"modulus must be greater than 1"),this.m=D,this.prime=null}function Mont(D){Red.call(this,D),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function _tmp(){var D=new BN(null);return D.words=new Array(Math.ceil(this.n/13)),D},MPrime.prototype.ireduce=function ireduce(D){var te,he=D;do{this.split(he,this.tmp),te=(he=(he=this.imulK(he)).iadd(this.tmp)).bitLength()}while(te>this.n);var ye=te<this.n?-1:he.ucmp(this.p);return 0===ye?(he.words[0]=0,he.length=1):ye>0?he.isub(this.p):void 0!==he.strip?he.strip():he._strip(),he},MPrime.prototype.split=function split(D,te){D.iushrn(this.n,0,te)},MPrime.prototype.imulK=function imulK(D){return D.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function split(D,te){for(var he=4194303,ye=Math.min(D.length,9),be=0;be<ye;be++)te.words[be]=D.words[be];if(te.length=ye,D.length<=9)return D.words[0]=0,void(D.length=1);var ve=D.words[9];for(te.words[te.length++]=ve&he,be=10;be<D.length;be++){var we=0|D.words[be];D.words[be-10]=(we&he)<<4|ve>>>22,ve=we}ve>>>=22,D.words[be-10]=ve,0===ve&&D.length>10?D.length-=10:D.length-=9},K256.prototype.imulK=function imulK(D){D.words[D.length]=0,D.words[D.length+1]=0,D.length+=2;for(var te=0,he=0;he<D.length;he++){var ye=0|D.words[he];te+=977*ye,D.words[he]=67108863&te,te=64*ye+(te/67108864|0)}return 0===D.words[D.length-1]&&(D.length--,0===D.words[D.length-1]&&D.length--),D},inherits(P224,MPrime),inherits(P192,MPrime),inherits(P25519,MPrime),P25519.prototype.imulK=function imulK(D){for(var te=0,he=0;he<D.length;he++){var ye=19*(0|D.words[he])+te,be=67108863&ye;ye>>>=26,D.words[he]=be,te=ye}return 0!==te&&(D.words[D.length++]=te),D},BN._prime=function prime(D){if(_e[D])return _e[D];var prime;if("k256"===D)prime=new K256;else if("p224"===D)prime=new P224;else if("p192"===D)prime=new P192;else{if("p25519"!==D)throw new Error("Unknown prime "+D);prime=new P25519}return _e[D]=prime,prime},Red.prototype._verify1=function _verify1(D){assert(0===D.negative,"red works only with positives"),assert(D.red,"red works only with red numbers")},Red.prototype._verify2=function _verify2(D,te){assert(0==(D.negative|te.negative),"red works only with positives"),assert(D.red&&D.red===te.red,"red works only with red numbers")},Red.prototype.imod=function imod(D){return this.prime?this.prime.ireduce(D)._forceRed(this):D.umod(this.m)._forceRed(this)},Red.prototype.neg=function neg(D){return D.isZero()?D.clone():this.m.sub(D)._forceRed(this)},Red.prototype.add=function add(D,te){this._verify2(D,te);var he=D.add(te);return he.cmp(this.m)>=0&&he.isub(this.m),he._forceRed(this)},Red.prototype.iadd=function iadd(D,te){this._verify2(D,te);var he=D.iadd(te);return he.cmp(this.m)>=0&&he.isub(this.m),he},Red.prototype.sub=function sub(D,te){this._verify2(D,te);var he=D.sub(te);return he.cmpn(0)<0&&he.iadd(this.m),he._forceRed(this)},Red.prototype.isub=function isub(D,te){this._verify2(D,te);var he=D.isub(te);return he.cmpn(0)<0&&he.iadd(this.m),he},Red.prototype.shl=function shl(D,te){return this._verify1(D),this.imod(D.ushln(te))},Red.prototype.imul=function imul(D,te){return this._verify2(D,te),this.imod(D.imul(te))},Red.prototype.mul=function mul(D,te){return this._verify2(D,te),this.imod(D.mul(te))},Red.prototype.isqr=function isqr(D){return this.imul(D,D.clone())},Red.prototype.sqr=function sqr(D){return this.mul(D,D)},Red.prototype.sqrt=function sqrt(D){if(D.isZero())return D.clone();var te=this.m.andln(3);if(assert(te%2==1),3===te){var he=this.m.add(new BN(1)).iushrn(2);return this.pow(D,he)}for(var ye=this.m.subn(1),be=0;!ye.isZero()&&0===ye.andln(1);)be++,ye.iushrn(1);assert(!ye.isZero());var ve=new BN(1).toRed(this),we=ve.redNeg(),_e=this.m.subn(1).iushrn(1),Pe=this.m.bitLength();for(Pe=new BN(2*Pe*Pe).toRed(this);0!==this.pow(Pe,_e).cmp(we);)Pe.redIAdd(we);for(var Ie=this.pow(Pe,ye),Re=this.pow(D,ye.addn(1).iushrn(1)),ke=this.pow(D,ye),Oe=be;0!==ke.cmp(ve);){for(var xe=ke,Be=0;0!==xe.cmp(ve);Be++)xe=xe.redSqr();assert(Be<Oe);var Fe=this.pow(Ie,new BN(1).iushln(Oe-Be-1));Re=Re.redMul(Fe),Ie=Fe.redSqr(),ke=ke.redMul(Ie),Oe=Be}return Re},Red.prototype.invm=function invm(D){var te=D._invmp(this.m);return 0!==te.negative?(te.negative=0,this.imod(te).redNeg()):this.imod(te)},Red.prototype.pow=function pow(D,te){if(te.isZero())return new BN(1).toRed(this);if(0===te.cmpn(1))return D.clone();var he=new Array(16);he[0]=new BN(1).toRed(this),he[1]=D;for(var ye=2;ye<he.length;ye++)he[ye]=this.mul(he[ye-1],D);var be=he[0],ve=0,we=0,_e=te.bitLength()%26;for(0===_e&&(_e=26),ye=te.length-1;ye>=0;ye--){for(var Pe=te.words[ye],Ie=_e-1;Ie>=0;Ie--){var Re=Pe>>Ie&1;be!==he[0]&&(be=this.sqr(be)),0!==Re||0!==ve?(ve<<=1,ve|=Re,(4===++we||0===ye&&0===Ie)&&(be=this.mul(be,he[ve]),we=0,ve=0)):we=0}_e=26}return be},Red.prototype.convertTo=function convertTo(D){var te=D.umod(this.m);return te===D?te.clone():te},Red.prototype.convertFrom=function convertFrom(D){var te=D.clone();return te.red=null,te},BN.mont=function mont(D){return new Mont(D)},inherits(Mont,Red),Mont.prototype.convertTo=function convertTo(D){return this.imod(D.ushln(this.shift))},Mont.prototype.convertFrom=function convertFrom(D){var te=this.imod(D.mul(this.rinv));return te.red=null,te},Mont.prototype.imul=function imul(D,te){if(D.isZero()||te.isZero())return D.words[0]=0,D.length=1,D;var he=D.imul(te),ye=he.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),be=he.isub(ye).iushrn(this.shift),ve=be;return be.cmp(this.m)>=0?ve=be.isub(this.m):be.cmpn(0)<0&&(ve=be.iadd(this.m)),ve._forceRed(this)},Mont.prototype.mul=function mul(D,te){if(D.isZero()||te.isZero())return new BN(0)._forceRed(this);var he=D.mul(te),ye=he.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),be=he.isub(ye).iushrn(this.shift),ve=be;return be.cmp(this.m)>=0?ve=be.isub(this.m):be.cmpn(0)<0&&(ve=be.iadd(this.m)),ve._forceRed(this)},Mont.prototype.invm=function invm(D){return this.imod(D._invmp(this.m).mul(this.r2))._forceRed(this)}}(D,rn)}(gf);var vf=gf.exports,wf={};!function(D){var te=D;function zero2(D){return 1===D.length?"0"+D:D}function toHex(D){for(var te="",he=0;he<D.length;he++)te+=zero2(D[he].toString(16));return te}te.toArray=function toArray(D,te){if(Array.isArray(D))return D.slice();if(!D)return[];var he=[];if("string"!=typeof D){for(var ye=0;ye<D.length;ye++)he[ye]=0|D[ye];return he}if("hex"===te){(D=D.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(D="0"+D);for(ye=0;ye<D.length;ye+=2)he.push(parseInt(D[ye]+D[ye+1],16))}else for(ye=0;ye<D.length;ye++){var be=D.charCodeAt(ye),ve=be>>8,we=255&be;ve?he.push(ve,we):he.push(we)}return he},te.zero2=zero2,te.toHex=toHex,te.encode=function encode(D,te){return"hex"===te?toHex(D):D}}(wf),function(D){var te=D,he=vf,ye=oc,be=wf;te.assert=ye,te.toArray=be.toArray,te.zero2=be.zero2,te.toHex=be.toHex,te.encode=be.encode,te.getNAF=function getNAF(D,te,he){var ye,be=new Array(Math.max(D.bitLength(),he)+1);for(ye=0;ye<be.length;ye+=1)be[ye]=0;var ve=1<<te+1,we=D.clone();for(ye=0;ye<be.length;ye++){var _e,Pe=we.andln(ve-1);we.isOdd()?(_e=Pe>(ve>>1)-1?(ve>>1)-Pe:Pe,we.isubn(_e)):_e=0,be[ye]=_e,we.iushrn(1)}return be},te.getJSF=function getJSF(D,te){var he=[[],[]];D=D.clone(),te=te.clone();for(var ye,be=0,ve=0;D.cmpn(-be)>0||te.cmpn(-ve)>0;){var we,_e,Pe=D.andln(3)+be&3,Ie=te.andln(3)+ve&3;3===Pe&&(Pe=-1),3===Ie&&(Ie=-1),we=0==(1&Pe)?0:3!==(ye=D.andln(7)+be&7)&&5!==ye||2!==Ie?Pe:-Pe,he[0].push(we),_e=0==(1&Ie)?0:3!==(ye=te.andln(7)+ve&7)&&5!==ye||2!==Pe?Ie:-Ie,he[1].push(_e),2*be===we+1&&(be=1-be),2*ve===_e+1&&(ve=1-ve),D.iushrn(1),te.iushrn(1)}return he},te.cachedProperty=function cachedProperty(D,te,he){var ye="_"+te;D.prototype[te]=function cachedProperty(){return void 0!==this[ye]?this[ye]:this[ye]=he.call(this)}},te.parseBytes=function parseBytes(D){return"string"==typeof D?te.toArray(D,"hex"):D},te.intFromLE=function intFromLE(D){return new he(D,"hex","le")}}(bf);var _f,Tf={exports:{}},Af=getAugmentedNamespace$1(Object.freeze({__proto__:null,default:{}}));function Rand(D){this.rand=D}if(Tf.exports=function rand(D){return _f||(_f=new Rand(null)),_f.generate(D)},Tf.exports.Rand=Rand,Rand.prototype.generate=function generate(D){return this._rand(D)},Rand.prototype._rand=function _rand(D){if(this.rand.getBytes)return this.rand.getBytes(D);for(var te=new Uint8Array(D),he=0;he<te.length;he++)te[he]=this.rand.getByte();return te},"object"==typeof self)self.crypto&&self.crypto.getRandomValues?Rand.prototype._rand=function _rand(D){var te=new Uint8Array(D);return self.crypto.getRandomValues(te),te}:self.msCrypto&&self.msCrypto.getRandomValues?Rand.prototype._rand=function _rand(D){var te=new Uint8Array(D);return self.msCrypto.getRandomValues(te),te}:"object"==typeof window&&(Rand.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var Ef=Af;if("function"!=typeof Ef.randomBytes)throw new Error("Not supported");Rand.prototype._rand=function _rand(D){return Ef.randomBytes(D)}}catch(e){}var Pf=Tf.exports,Sf={},Cf=vf,If=bf,Rf=If.getNAF,kf=If.getJSF,Of=If.assert;function BaseCurve$1(D,te){this.type=D,this.p=new Cf(te.p,16),this.red=te.prime?Cf.red(te.prime):Cf.mont(this.p),this.zero=new Cf(0).toRed(this.red),this.one=new Cf(1).toRed(this.red),this.two=new Cf(2).toRed(this.red),this.n=te.n&&new Cf(te.n,16),this.g=te.g&&this.pointFromJSON(te.g,te.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var he=this.n&&this.p.div(this.n);!he||he.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var xf=BaseCurve$1;function BasePoint$1(D,te){this.curve=D,this.type=te,this.precomputed=null}BaseCurve$1.prototype.point=function point(){throw new Error("Not implemented")},BaseCurve$1.prototype.validate=function validate(){throw new Error("Not implemented")},BaseCurve$1.prototype._fixedNafMul=function _fixedNafMul(D,te){Of(D.precomputed);var he=D._getDoubles(),ye=Rf(te,1,this._bitLength),be=(1<<he.step+1)-(he.step%2==0?2:1);be/=3;var ve,we,_e=[];for(ve=0;ve<ye.length;ve+=he.step){we=0;for(var Pe=ve+he.step-1;Pe>=ve;Pe--)we=(we<<1)+ye[Pe];_e.push(we)}for(var Ie=this.jpoint(null,null,null),Re=this.jpoint(null,null,null),ke=be;ke>0;ke--){for(ve=0;ve<_e.length;ve++)(we=_e[ve])===ke?Re=Re.mixedAdd(he.points[ve]):we===-ke&&(Re=Re.mixedAdd(he.points[ve].neg()));Ie=Ie.add(Re)}return Ie.toP()},BaseCurve$1.prototype._wnafMul=function _wnafMul(D,te){var he=4,ye=D._getNAFPoints(he);he=ye.wnd;for(var be=ye.points,ve=Rf(te,he,this._bitLength),we=this.jpoint(null,null,null),_e=ve.length-1;_e>=0;_e--){for(var Pe=0;_e>=0&&0===ve[_e];_e--)Pe++;if(_e>=0&&Pe++,we=we.dblp(Pe),_e<0)break;var Ie=ve[_e];Of(0!==Ie),we="affine"===D.type?Ie>0?we.mixedAdd(be[Ie-1>>1]):we.mixedAdd(be[-Ie-1>>1].neg()):Ie>0?we.add(be[Ie-1>>1]):we.add(be[-Ie-1>>1].neg())}return"affine"===D.type?we.toP():we},BaseCurve$1.prototype._wnafMulAdd=function _wnafMulAdd(D,te,he,ye,be){var ve,we,_e,Pe=this._wnafT1,Ie=this._wnafT2,Re=this._wnafT3,ke=0;for(ve=0;ve<ye;ve++){var Oe=(_e=te[ve])._getNAFPoints(D);Pe[ve]=Oe.wnd,Ie[ve]=Oe.points}for(ve=ye-1;ve>=1;ve-=2){var xe=ve-1,Be=ve;if(1===Pe[xe]&&1===Pe[Be]){var Fe=[te[xe],null,null,te[Be]];0===te[xe].y.cmp(te[Be].y)?(Fe[1]=te[xe].add(te[Be]),Fe[2]=te[xe].toJ().mixedAdd(te[Be].neg())):0===te[xe].y.cmp(te[Be].y.redNeg())?(Fe[1]=te[xe].toJ().mixedAdd(te[Be]),Fe[2]=te[xe].add(te[Be].neg())):(Fe[1]=te[xe].toJ().mixedAdd(te[Be]),Fe[2]=te[xe].toJ().mixedAdd(te[Be].neg()));var De=[-3,-1,-5,-7,0,7,5,1,3],Le=kf(he[xe],he[Be]);for(ke=Math.max(Le[0].length,ke),Re[xe]=new Array(ke),Re[Be]=new Array(ke),we=0;we<ke;we++){var Ue=0|Le[0][we],qe=0|Le[1][we];Re[xe][we]=De[3*(Ue+1)+(qe+1)],Re[Be][we]=0,Ie[xe]=Fe}}else Re[xe]=Rf(he[xe],Pe[xe],this._bitLength),Re[Be]=Rf(he[Be],Pe[Be],this._bitLength),ke=Math.max(Re[xe].length,ke),ke=Math.max(Re[Be].length,ke)}var je=this.jpoint(null,null,null),Je=this._wnafT4;for(ve=ke;ve>=0;ve--){for(var et=0;ve>=0;){var tt=!0;for(we=0;we<ye;we++)Je[we]=0|Re[we][ve],0!==Je[we]&&(tt=!1);if(!tt)break;et++,ve--}if(ve>=0&&et++,je=je.dblp(et),ve<0)break;for(we=0;we<ye;we++){var rt=Je[we];0!==rt&&(rt>0?_e=Ie[we][rt-1>>1]:rt<0&&(_e=Ie[we][-rt-1>>1].neg()),je="affine"===_e.type?je.mixedAdd(_e):je.add(_e))}}for(ve=0;ve<ye;ve++)Ie[ve]=null;return be?je:je.toP()},BaseCurve$1.BasePoint=BasePoint$1,BasePoint$1.prototype.eq=function eq(){throw new Error("Not implemented")},BasePoint$1.prototype.validate=function validate(){return this.curve.validate(this)},BaseCurve$1.prototype.decodePoint=function decodePoint(D,te){D=If.toArray(D,te);var he=this.p.byteLength();if((4===D[0]||6===D[0]||7===D[0])&&D.length-1==2*he)return 6===D[0]?Of(D[D.length-1]%2==0):7===D[0]&&Of(D[D.length-1]%2==1),this.point(D.slice(1,1+he),D.slice(1+he,1+2*he));if((2===D[0]||3===D[0])&&D.length-1===he)return this.pointFromX(D.slice(1,1+he),3===D[0]);throw new Error("Unknown point format")},BasePoint$1.prototype.encodeCompressed=function encodeCompressed(D){return this.encode(D,!0)},BasePoint$1.prototype._encode=function _encode(D){var te=this.curve.p.byteLength(),he=this.getX().toArray("be",te);return D?[this.getY().isEven()?2:3].concat(he):[4].concat(he,this.getY().toArray("be",te))},BasePoint$1.prototype.encode=function encode(D,te){return If.encode(this._encode(te),D)},BasePoint$1.prototype.precompute=function precompute(D){if(this.precomputed)return this;var te={doubles:null,naf:null,beta:null};return te.naf=this._getNAFPoints(8),te.doubles=this._getDoubles(4,D),te.beta=this._getBeta(),this.precomputed=te,this},BasePoint$1.prototype._hasDoubles=function _hasDoubles(D){if(!this.precomputed)return!1;var te=this.precomputed.doubles;return!!te&&te.points.length>=Math.ceil((D.bitLength()+1)/te.step)},BasePoint$1.prototype._getDoubles=function _getDoubles(D,te){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var he=[this],ye=this,be=0;be<te;be+=D){for(var ve=0;ve<D;ve++)ye=ye.dbl();he.push(ye)}return{step:D,points:he}},BasePoint$1.prototype._getNAFPoints=function _getNAFPoints(D){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var te=[this],he=(1<<D)-1,ye=1===he?null:this.dbl(),be=1;be<he;be++)te[be]=te[be-1].add(ye);return{wnd:D,points:te}},BasePoint$1.prototype._getBeta=function _getBeta(){return null},BasePoint$1.prototype.dblp=function dblp(D){for(var te=this,he=0;he<D;he++)te=te.dbl();return te};var Nf=vf,Mf=dc,Bf=xf,Ff=bf.assert;function ShortCurve$1(D){Bf.call(this,"short",D),this.a=new Nf(D.a,16).toRed(this.red),this.b=new Nf(D.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(D),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}Mf(ShortCurve$1,Bf);var Df=ShortCurve$1;function Point$5(D,te,he,ye){Bf.BasePoint.call(this,D,"affine"),null===te&&null===he?(this.x=null,this.y=null,this.inf=!0):(this.x=new Nf(te,16),this.y=new Nf(he,16),ye&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function JPoint$1(D,te,he,ye){Bf.BasePoint.call(this,D,"jacobian"),null===te&&null===he&&null===ye?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Nf(0)):(this.x=new Nf(te,16),this.y=new Nf(he,16),this.z=new Nf(ye,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}ShortCurve$1.prototype._getEndomorphism=function _getEndomorphism(D){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var te,he;if(D.beta)te=new Nf(D.beta,16).toRed(this.red);else{var ye=this._getEndoRoots(this.p);te=(te=ye[0].cmp(ye[1])<0?ye[0]:ye[1]).toRed(this.red)}if(D.lambda)he=new Nf(D.lambda,16);else{var be=this._getEndoRoots(this.n);0===this.g.mul(be[0]).x.cmp(this.g.x.redMul(te))?he=be[0]:(he=be[1],Ff(0===this.g.mul(he).x.cmp(this.g.x.redMul(te))))}return{beta:te,lambda:he,basis:D.basis?D.basis.map((function(D){return{a:new Nf(D.a,16),b:new Nf(D.b,16)}})):this._getEndoBasis(he)}}},ShortCurve$1.prototype._getEndoRoots=function _getEndoRoots(D){var te=D===this.p?this.red:Nf.mont(D),he=new Nf(2).toRed(te).redInvm(),ye=he.redNeg(),be=new Nf(3).toRed(te).redNeg().redSqrt().redMul(he);return[ye.redAdd(be).fromRed(),ye.redSub(be).fromRed()]},ShortCurve$1.prototype._getEndoBasis=function _getEndoBasis(D){for(var te,he,ye,be,ve,we,_e,Pe,Ie,Re=this.n.ushrn(Math.floor(this.n.bitLength()/2)),ke=D,Oe=this.n.clone(),xe=new Nf(1),Be=new Nf(0),Fe=new Nf(0),De=new Nf(1),Le=0;0!==ke.cmpn(0);){var Ue=Oe.div(ke);Pe=Oe.sub(Ue.mul(ke)),Ie=Fe.sub(Ue.mul(xe));var qe=De.sub(Ue.mul(Be));if(!ye&&Pe.cmp(Re)<0)te=_e.neg(),he=xe,ye=Pe.neg(),be=Ie;else if(ye&&2==++Le)break;_e=Pe,Oe=ke,ke=Pe,Fe=xe,xe=Ie,De=Be,Be=qe}ve=Pe.neg(),we=Ie;var je=ye.sqr().add(be.sqr());return ve.sqr().add(we.sqr()).cmp(je)>=0&&(ve=te,we=he),ye.negative&&(ye=ye.neg(),be=be.neg()),ve.negative&&(ve=ve.neg(),we=we.neg()),[{a:ye,b:be},{a:ve,b:we}]},ShortCurve$1.prototype._endoSplit=function _endoSplit(D){var te=this.endo.basis,he=te[0],ye=te[1],be=ye.b.mul(D).divRound(this.n),ve=he.b.neg().mul(D).divRound(this.n),we=be.mul(he.a),_e=ve.mul(ye.a),Pe=be.mul(he.b),Ie=ve.mul(ye.b);return{k1:D.sub(we).sub(_e),k2:Pe.add(Ie).neg()}},ShortCurve$1.prototype.pointFromX=function pointFromX(D,te){(D=new Nf(D,16)).red||(D=D.toRed(this.red));var he=D.redSqr().redMul(D).redIAdd(D.redMul(this.a)).redIAdd(this.b),ye=he.redSqrt();if(0!==ye.redSqr().redSub(he).cmp(this.zero))throw new Error("invalid point");var be=ye.fromRed().isOdd();return(te&&!be||!te&&be)&&(ye=ye.redNeg()),this.point(D,ye)},ShortCurve$1.prototype.validate=function validate(D){if(D.inf)return!0;var te=D.x,he=D.y,ye=this.a.redMul(te),be=te.redSqr().redMul(te).redIAdd(ye).redIAdd(this.b);return 0===he.redSqr().redISub(be).cmpn(0)},ShortCurve$1.prototype._endoWnafMulAdd=function _endoWnafMulAdd(D,te,he){for(var ye=this._endoWnafT1,be=this._endoWnafT2,ve=0;ve<D.length;ve++){var we=this._endoSplit(te[ve]),_e=D[ve],Pe=_e._getBeta();we.k1.negative&&(we.k1.ineg(),_e=_e.neg(!0)),we.k2.negative&&(we.k2.ineg(),Pe=Pe.neg(!0)),ye[2*ve]=_e,ye[2*ve+1]=Pe,be[2*ve]=we.k1,be[2*ve+1]=we.k2}for(var Ie=this._wnafMulAdd(1,ye,be,2*ve,he),Re=0;Re<2*ve;Re++)ye[Re]=null,be[Re]=null;return Ie},Mf(Point$5,Bf.BasePoint),ShortCurve$1.prototype.point=function point(D,te,he){return new Point$5(this,D,te,he)},ShortCurve$1.prototype.pointFromJSON=function pointFromJSON(D,te){return Point$5.fromJSON(this,D,te)},Point$5.prototype._getBeta=function _getBeta(){if(this.curve.endo){var D=this.precomputed;if(D&&D.beta)return D.beta;var te=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(D){var he=this.curve,endoMul=function(D){return he.point(D.x.redMul(he.endo.beta),D.y)};D.beta=te,te.precomputed={beta:null,naf:D.naf&&{wnd:D.naf.wnd,points:D.naf.points.map(endoMul)},doubles:D.doubles&&{step:D.doubles.step,points:D.doubles.points.map(endoMul)}}}return te}},Point$5.prototype.toJSON=function toJSON(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},Point$5.fromJSON=function fromJSON(D,te,he){"string"==typeof te&&(te=JSON.parse(te));var ye=D.point(te[0],te[1],he);if(!te[2])return ye;function obj2point(te){return D.point(te[0],te[1],he)}var be=te[2];return ye.precomputed={beta:null,doubles:be.doubles&&{step:be.doubles.step,points:[ye].concat(be.doubles.points.map(obj2point))},naf:be.naf&&{wnd:be.naf.wnd,points:[ye].concat(be.naf.points.map(obj2point))}},ye},Point$5.prototype.inspect=function inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},Point$5.prototype.isInfinity=function isInfinity(){return this.inf},Point$5.prototype.add=function add(D){if(this.inf)return D;if(D.inf)return this;if(this.eq(D))return this.dbl();if(this.neg().eq(D))return this.curve.point(null,null);if(0===this.x.cmp(D.x))return this.curve.point(null,null);var te=this.y.redSub(D.y);0!==te.cmpn(0)&&(te=te.redMul(this.x.redSub(D.x).redInvm()));var he=te.redSqr().redISub(this.x).redISub(D.x),ye=te.redMul(this.x.redSub(he)).redISub(this.y);return this.curve.point(he,ye)},Point$5.prototype.dbl=function dbl(){if(this.inf)return this;var D=this.y.redAdd(this.y);if(0===D.cmpn(0))return this.curve.point(null,null);var te=this.curve.a,he=this.x.redSqr(),ye=D.redInvm(),be=he.redAdd(he).redIAdd(he).redIAdd(te).redMul(ye),ve=be.redSqr().redISub(this.x.redAdd(this.x)),we=be.redMul(this.x.redSub(ve)).redISub(this.y);return this.curve.point(ve,we)},Point$5.prototype.getX=function getX(){return this.x.fromRed()},Point$5.prototype.getY=function getY(){return this.y.fromRed()},Point$5.prototype.mul=function mul(D){return D=new Nf(D,16),this.isInfinity()?this:this._hasDoubles(D)?this.curve._fixedNafMul(this,D):this.curve.endo?this.curve._endoWnafMulAdd([this],[D]):this.curve._wnafMul(this,D)},Point$5.prototype.mulAdd=function mulAdd(D,te,he){var ye=[this,te],be=[D,he];return this.curve.endo?this.curve._endoWnafMulAdd(ye,be):this.curve._wnafMulAdd(1,ye,be,2)},Point$5.prototype.jmulAdd=function jmulAdd(D,te,he){var ye=[this,te],be=[D,he];return this.curve.endo?this.curve._endoWnafMulAdd(ye,be,!0):this.curve._wnafMulAdd(1,ye,be,2,!0)},Point$5.prototype.eq=function eq(D){return this===D||this.inf===D.inf&&(this.inf||0===this.x.cmp(D.x)&&0===this.y.cmp(D.y))},Point$5.prototype.neg=function neg(D){if(this.inf)return this;var te=this.curve.point(this.x,this.y.redNeg());if(D&&this.precomputed){var he=this.precomputed,negate=function(D){return D.neg()};te.precomputed={naf:he.naf&&{wnd:he.naf.wnd,points:he.naf.points.map(negate)},doubles:he.doubles&&{step:he.doubles.step,points:he.doubles.points.map(negate)}}}return te},Point$5.prototype.toJ=function toJ(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},Mf(JPoint$1,Bf.BasePoint),ShortCurve$1.prototype.jpoint=function jpoint(D,te,he){return new JPoint$1(this,D,te,he)},JPoint$1.prototype.toP=function toP(){if(this.isInfinity())return this.curve.point(null,null);var D=this.z.redInvm(),te=D.redSqr(),he=this.x.redMul(te),ye=this.y.redMul(te).redMul(D);return this.curve.point(he,ye)},JPoint$1.prototype.neg=function neg(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint$1.prototype.add=function add(D){if(this.isInfinity())return D;if(D.isInfinity())return this;var te=D.z.redSqr(),he=this.z.redSqr(),ye=this.x.redMul(te),be=D.x.redMul(he),ve=this.y.redMul(te.redMul(D.z)),we=D.y.redMul(he.redMul(this.z)),_e=ye.redSub(be),Pe=ve.redSub(we);if(0===_e.cmpn(0))return 0!==Pe.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var Ie=_e.redSqr(),Re=Ie.redMul(_e),ke=ye.redMul(Ie),Oe=Pe.redSqr().redIAdd(Re).redISub(ke).redISub(ke),xe=Pe.redMul(ke.redISub(Oe)).redISub(ve.redMul(Re)),Be=this.z.redMul(D.z).redMul(_e);return this.curve.jpoint(Oe,xe,Be)},JPoint$1.prototype.mixedAdd=function mixedAdd(D){if(this.isInfinity())return D.toJ();if(D.isInfinity())return this;var te=this.z.redSqr(),he=this.x,ye=D.x.redMul(te),be=this.y,ve=D.y.redMul(te).redMul(this.z),we=he.redSub(ye),_e=be.redSub(ve);if(0===we.cmpn(0))return 0!==_e.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var Pe=we.redSqr(),Ie=Pe.redMul(we),Re=he.redMul(Pe),ke=_e.redSqr().redIAdd(Ie).redISub(Re).redISub(Re),Oe=_e.redMul(Re.redISub(ke)).redISub(be.redMul(Ie)),xe=this.z.redMul(we);return this.curve.jpoint(ke,Oe,xe)},JPoint$1.prototype.dblp=function dblp(D){if(0===D)return this;if(this.isInfinity())return this;if(!D)return this.dbl();var te;if(this.curve.zeroA||this.curve.threeA){var he=this;for(te=0;te<D;te++)he=he.dbl();return he}var ye=this.curve.a,be=this.curve.tinv,ve=this.x,we=this.y,_e=this.z,Pe=_e.redSqr().redSqr(),Ie=we.redAdd(we);for(te=0;te<D;te++){var Re=ve.redSqr(),ke=Ie.redSqr(),Oe=ke.redSqr(),xe=Re.redAdd(Re).redIAdd(Re).redIAdd(ye.redMul(Pe)),Be=ve.redMul(ke),Fe=xe.redSqr().redISub(Be.redAdd(Be)),De=Be.redISub(Fe),Le=xe.redMul(De);Le=Le.redIAdd(Le).redISub(Oe);var Ue=Ie.redMul(_e);te+1<D&&(Pe=Pe.redMul(Oe)),ve=Fe,_e=Ue,Ie=Le}return this.curve.jpoint(ve,Ie.redMul(be),_e)},JPoint$1.prototype.dbl=function dbl(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},JPoint$1.prototype._zeroDbl=function _zeroDbl(){var D,te,he;if(this.zOne){var ye=this.x.redSqr(),be=this.y.redSqr(),ve=be.redSqr(),we=this.x.redAdd(be).redSqr().redISub(ye).redISub(ve);we=we.redIAdd(we);var _e=ye.redAdd(ye).redIAdd(ye),Pe=_e.redSqr().redISub(we).redISub(we),Ie=ve.redIAdd(ve);Ie=(Ie=Ie.redIAdd(Ie)).redIAdd(Ie),D=Pe,te=_e.redMul(we.redISub(Pe)).redISub(Ie),he=this.y.redAdd(this.y)}else{var Re=this.x.redSqr(),ke=this.y.redSqr(),Oe=ke.redSqr(),xe=this.x.redAdd(ke).redSqr().redISub(Re).redISub(Oe);xe=xe.redIAdd(xe);var Be=Re.redAdd(Re).redIAdd(Re),Fe=Be.redSqr(),De=Oe.redIAdd(Oe);De=(De=De.redIAdd(De)).redIAdd(De),D=Fe.redISub(xe).redISub(xe),te=Be.redMul(xe.redISub(D)).redISub(De),he=(he=this.y.redMul(this.z)).redIAdd(he)}return this.curve.jpoint(D,te,he)},JPoint$1.prototype._threeDbl=function _threeDbl(){var D,te,he;if(this.zOne){var ye=this.x.redSqr(),be=this.y.redSqr(),ve=be.redSqr(),we=this.x.redAdd(be).redSqr().redISub(ye).redISub(ve);we=we.redIAdd(we);var _e=ye.redAdd(ye).redIAdd(ye).redIAdd(this.curve.a),Pe=_e.redSqr().redISub(we).redISub(we);D=Pe;var Ie=ve.redIAdd(ve);Ie=(Ie=Ie.redIAdd(Ie)).redIAdd(Ie),te=_e.redMul(we.redISub(Pe)).redISub(Ie),he=this.y.redAdd(this.y)}else{var Re=this.z.redSqr(),ke=this.y.redSqr(),Oe=this.x.redMul(ke),xe=this.x.redSub(Re).redMul(this.x.redAdd(Re));xe=xe.redAdd(xe).redIAdd(xe);var Be=Oe.redIAdd(Oe),Fe=(Be=Be.redIAdd(Be)).redAdd(Be);D=xe.redSqr().redISub(Fe),he=this.y.redAdd(this.z).redSqr().redISub(ke).redISub(Re);var De=ke.redSqr();De=(De=(De=De.redIAdd(De)).redIAdd(De)).redIAdd(De),te=xe.redMul(Be.redISub(D)).redISub(De)}return this.curve.jpoint(D,te,he)},JPoint$1.prototype._dbl=function _dbl(){var D=this.curve.a,te=this.x,he=this.y,ye=this.z,be=ye.redSqr().redSqr(),ve=te.redSqr(),we=he.redSqr(),_e=ve.redAdd(ve).redIAdd(ve).redIAdd(D.redMul(be)),Pe=te.redAdd(te),Ie=(Pe=Pe.redIAdd(Pe)).redMul(we),Re=_e.redSqr().redISub(Ie.redAdd(Ie)),ke=Ie.redISub(Re),Oe=we.redSqr();Oe=(Oe=(Oe=Oe.redIAdd(Oe)).redIAdd(Oe)).redIAdd(Oe);var xe=_e.redMul(ke).redISub(Oe),Be=he.redAdd(he).redMul(ye);return this.curve.jpoint(Re,xe,Be)},JPoint$1.prototype.trpl=function trpl(){if(!this.curve.zeroA)return this.dbl().add(this);var D=this.x.redSqr(),te=this.y.redSqr(),he=this.z.redSqr(),ye=te.redSqr(),be=D.redAdd(D).redIAdd(D),ve=be.redSqr(),we=this.x.redAdd(te).redSqr().redISub(D).redISub(ye),_e=(we=(we=(we=we.redIAdd(we)).redAdd(we).redIAdd(we)).redISub(ve)).redSqr(),Pe=ye.redIAdd(ye);Pe=(Pe=(Pe=Pe.redIAdd(Pe)).redIAdd(Pe)).redIAdd(Pe);var Ie=be.redIAdd(we).redSqr().redISub(ve).redISub(_e).redISub(Pe),Re=te.redMul(Ie);Re=(Re=Re.redIAdd(Re)).redIAdd(Re);var ke=this.x.redMul(_e).redISub(Re);ke=(ke=ke.redIAdd(ke)).redIAdd(ke);var Oe=this.y.redMul(Ie.redMul(Pe.redISub(Ie)).redISub(we.redMul(_e)));Oe=(Oe=(Oe=Oe.redIAdd(Oe)).redIAdd(Oe)).redIAdd(Oe);var xe=this.z.redAdd(we).redSqr().redISub(he).redISub(_e);return this.curve.jpoint(ke,Oe,xe)},JPoint$1.prototype.mul=function mul(D,te){return D=new Nf(D,te),this.curve._wnafMul(this,D)},JPoint$1.prototype.eq=function eq(D){if("affine"===D.type)return this.eq(D.toJ());if(this===D)return!0;var te=this.z.redSqr(),he=D.z.redSqr();if(0!==this.x.redMul(he).redISub(D.x.redMul(te)).cmpn(0))return!1;var ye=te.redMul(this.z),be=he.redMul(D.z);return 0===this.y.redMul(be).redISub(D.y.redMul(ye)).cmpn(0)},JPoint$1.prototype.eqXToP=function eqXToP(D){var te=this.z.redSqr(),he=D.toRed(this.curve.red).redMul(te);if(0===this.x.cmp(he))return!0;for(var ye=D.clone(),be=this.curve.redN.redMul(te);;){if(ye.iadd(this.curve.n),ye.cmp(this.curve.p)>=0)return!1;if(he.redIAdd(be),0===this.x.cmp(he))return!0}},JPoint$1.prototype.inspect=function inspect(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},JPoint$1.prototype.isInfinity=function isInfinity(){return 0===this.z.cmpn(0)};var Lf=vf,Uf=dc,$f=xf,qf=bf;function MontCurve$1(D){$f.call(this,"mont",D),this.a=new Lf(D.a,16).toRed(this.red),this.b=new Lf(D.b,16).toRed(this.red),this.i4=new Lf(4).toRed(this.red).redInvm(),this.two=new Lf(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}Uf(MontCurve$1,$f);var Gf=MontCurve$1;function Point$4(D,te,he){$f.BasePoint.call(this,D,"projective"),null===te&&null===he?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new Lf(te,16),this.z=new Lf(he,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}MontCurve$1.prototype.validate=function validate(D){var te=D.normalize().x,he=te.redSqr(),ye=he.redMul(te).redAdd(he.redMul(this.a)).redAdd(te);return 0===ye.redSqrt().redSqr().cmp(ye)},Uf(Point$4,$f.BasePoint),MontCurve$1.prototype.decodePoint=function decodePoint(D,te){return this.point(qf.toArray(D,te),1)},MontCurve$1.prototype.point=function point(D,te){return new Point$4(this,D,te)},MontCurve$1.prototype.pointFromJSON=function pointFromJSON(D){return Point$4.fromJSON(this,D)},Point$4.prototype.precompute=function precompute(){},Point$4.prototype._encode=function _encode(){return this.getX().toArray("be",this.curve.p.byteLength())},Point$4.fromJSON=function fromJSON(D,te){return new Point$4(D,te[0],te[1]||D.one)},Point$4.prototype.inspect=function inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},Point$4.prototype.isInfinity=function isInfinity(){return 0===this.z.cmpn(0)},Point$4.prototype.dbl=function dbl(){var D=this.x.redAdd(this.z).redSqr(),te=this.x.redSub(this.z).redSqr(),he=D.redSub(te),ye=D.redMul(te),be=he.redMul(te.redAdd(this.curve.a24.redMul(he)));return this.curve.point(ye,be)},Point$4.prototype.add=function add(){throw new Error("Not supported on Montgomery curve")},Point$4.prototype.diffAdd=function diffAdd(D,te){var he=this.x.redAdd(this.z),ye=this.x.redSub(this.z),be=D.x.redAdd(D.z),ve=D.x.redSub(D.z).redMul(he),we=be.redMul(ye),_e=te.z.redMul(ve.redAdd(we).redSqr()),Pe=te.x.redMul(ve.redISub(we).redSqr());return this.curve.point(_e,Pe)},Point$4.prototype.mul=function mul(D){for(var te=D.clone(),he=this,ye=this.curve.point(null,null),be=[];0!==te.cmpn(0);te.iushrn(1))be.push(te.andln(1));for(var ve=be.length-1;ve>=0;ve--)0===be[ve]?(he=he.diffAdd(ye,this),ye=ye.dbl()):(ye=he.diffAdd(ye,this),he=he.dbl());return ye},Point$4.prototype.mulAdd=function mulAdd(){throw new Error("Not supported on Montgomery curve")},Point$4.prototype.jumlAdd=function jumlAdd(){throw new Error("Not supported on Montgomery curve")},Point$4.prototype.eq=function eq(D){return 0===this.getX().cmp(D.getX())},Point$4.prototype.normalize=function normalize(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point$4.prototype.getX=function getX(){return this.normalize(),this.x.fromRed()};var jf=vf,Hf=dc,zf=xf,Wf=bf.assert;function EdwardsCurve$1(D){this.twisted=1!=(0|D.a),this.mOneA=this.twisted&&-1==(0|D.a),this.extended=this.mOneA,zf.call(this,"edwards",D),this.a=new jf(D.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new jf(D.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new jf(D.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),Wf(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|D.c)}Hf(EdwardsCurve$1,zf);var Vf=EdwardsCurve$1;function Point$3(D,te,he,ye,be){zf.BasePoint.call(this,D,"projective"),null===te&&null===he&&null===ye?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new jf(te,16),this.y=new jf(he,16),this.z=ye?new jf(ye,16):this.curve.one,this.t=be&&new jf(be,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}EdwardsCurve$1.prototype._mulA=function _mulA(D){return this.mOneA?D.redNeg():this.a.redMul(D)},EdwardsCurve$1.prototype._mulC=function _mulC(D){return this.oneC?D:this.c.redMul(D)},EdwardsCurve$1.prototype.jpoint=function jpoint(D,te,he,ye){return this.point(D,te,he,ye)},EdwardsCurve$1.prototype.pointFromX=function pointFromX(D,te){(D=new jf(D,16)).red||(D=D.toRed(this.red));var he=D.redSqr(),ye=this.c2.redSub(this.a.redMul(he)),be=this.one.redSub(this.c2.redMul(this.d).redMul(he)),ve=ye.redMul(be.redInvm()),we=ve.redSqrt();if(0!==we.redSqr().redSub(ve).cmp(this.zero))throw new Error("invalid point");var _e=we.fromRed().isOdd();return(te&&!_e||!te&&_e)&&(we=we.redNeg()),this.point(D,we)},EdwardsCurve$1.prototype.pointFromY=function pointFromY(D,te){(D=new jf(D,16)).red||(D=D.toRed(this.red));var he=D.redSqr(),ye=he.redSub(this.c2),be=he.redMul(this.d).redMul(this.c2).redSub(this.a),ve=ye.redMul(be.redInvm());if(0===ve.cmp(this.zero)){if(te)throw new Error("invalid point");return this.point(this.zero,D)}var we=ve.redSqrt();if(0!==we.redSqr().redSub(ve).cmp(this.zero))throw new Error("invalid point");return we.fromRed().isOdd()!==te&&(we=we.redNeg()),this.point(we,D)},EdwardsCurve$1.prototype.validate=function validate(D){if(D.isInfinity())return!0;D.normalize();var te=D.x.redSqr(),he=D.y.redSqr(),ye=te.redMul(this.a).redAdd(he),be=this.c2.redMul(this.one.redAdd(this.d.redMul(te).redMul(he)));return 0===ye.cmp(be)},Hf(Point$3,zf.BasePoint),EdwardsCurve$1.prototype.pointFromJSON=function pointFromJSON(D){return Point$3.fromJSON(this,D)},EdwardsCurve$1.prototype.point=function point(D,te,he,ye){return new Point$3(this,D,te,he,ye)},Point$3.fromJSON=function fromJSON(D,te){return new Point$3(D,te[0],te[1],te[2])},Point$3.prototype.inspect=function inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},Point$3.prototype.isInfinity=function isInfinity(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point$3.prototype._extDbl=function _extDbl(){var D=this.x.redSqr(),te=this.y.redSqr(),he=this.z.redSqr();he=he.redIAdd(he);var ye=this.curve._mulA(D),be=this.x.redAdd(this.y).redSqr().redISub(D).redISub(te),ve=ye.redAdd(te),we=ve.redSub(he),_e=ye.redSub(te),Pe=be.redMul(we),Ie=ve.redMul(_e),Re=be.redMul(_e),ke=we.redMul(ve);return this.curve.point(Pe,Ie,ke,Re)},Point$3.prototype._projDbl=function _projDbl(){var D,te,he,ye,be,ve,we=this.x.redAdd(this.y).redSqr(),_e=this.x.redSqr(),Pe=this.y.redSqr();if(this.curve.twisted){var Ie=(ye=this.curve._mulA(_e)).redAdd(Pe);this.zOne?(D=we.redSub(_e).redSub(Pe).redMul(Ie.redSub(this.curve.two)),te=Ie.redMul(ye.redSub(Pe)),he=Ie.redSqr().redSub(Ie).redSub(Ie)):(be=this.z.redSqr(),ve=Ie.redSub(be).redISub(be),D=we.redSub(_e).redISub(Pe).redMul(ve),te=Ie.redMul(ye.redSub(Pe)),he=Ie.redMul(ve))}else ye=_e.redAdd(Pe),be=this.curve._mulC(this.z).redSqr(),ve=ye.redSub(be).redSub(be),D=this.curve._mulC(we.redISub(ye)).redMul(ve),te=this.curve._mulC(ye).redMul(_e.redISub(Pe)),he=ye.redMul(ve);return this.curve.point(D,te,he)},Point$3.prototype.dbl=function dbl(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point$3.prototype._extAdd=function _extAdd(D){var te=this.y.redSub(this.x).redMul(D.y.redSub(D.x)),he=this.y.redAdd(this.x).redMul(D.y.redAdd(D.x)),ye=this.t.redMul(this.curve.dd).redMul(D.t),be=this.z.redMul(D.z.redAdd(D.z)),ve=he.redSub(te),we=be.redSub(ye),_e=be.redAdd(ye),Pe=he.redAdd(te),Ie=ve.redMul(we),Re=_e.redMul(Pe),ke=ve.redMul(Pe),Oe=we.redMul(_e);return this.curve.point(Ie,Re,Oe,ke)},Point$3.prototype._projAdd=function _projAdd(D){var te,he,ye=this.z.redMul(D.z),be=ye.redSqr(),ve=this.x.redMul(D.x),we=this.y.redMul(D.y),_e=this.curve.d.redMul(ve).redMul(we),Pe=be.redSub(_e),Ie=be.redAdd(_e),Re=this.x.redAdd(this.y).redMul(D.x.redAdd(D.y)).redISub(ve).redISub(we),ke=ye.redMul(Pe).redMul(Re);return this.curve.twisted?(te=ye.redMul(Ie).redMul(we.redSub(this.curve._mulA(ve))),he=Pe.redMul(Ie)):(te=ye.redMul(Ie).redMul(we.redSub(ve)),he=this.curve._mulC(Pe).redMul(Ie)),this.curve.point(ke,te,he)},Point$3.prototype.add=function add(D){return this.isInfinity()?D:D.isInfinity()?this:this.curve.extended?this._extAdd(D):this._projAdd(D)},Point$3.prototype.mul=function mul(D){return this._hasDoubles(D)?this.curve._fixedNafMul(this,D):this.curve._wnafMul(this,D)},Point$3.prototype.mulAdd=function mulAdd(D,te,he){return this.curve._wnafMulAdd(1,[this,te],[D,he],2,!1)},Point$3.prototype.jmulAdd=function jmulAdd(D,te,he){return this.curve._wnafMulAdd(1,[this,te],[D,he],2,!0)},Point$3.prototype.normalize=function normalize(){if(this.zOne)return this;var D=this.z.redInvm();return this.x=this.x.redMul(D),this.y=this.y.redMul(D),this.t&&(this.t=this.t.redMul(D)),this.z=this.curve.one,this.zOne=!0,this},Point$3.prototype.neg=function neg(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point$3.prototype.getX=function getX(){return this.normalize(),this.x.fromRed()},Point$3.prototype.getY=function getY(){return this.normalize(),this.y.fromRed()},Point$3.prototype.eq=function eq(D){return this===D||0===this.getX().cmp(D.getX())&&0===this.getY().cmp(D.getY())},Point$3.prototype.eqXToP=function eqXToP(D){var te=D.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(te))return!0;for(var he=D.clone(),ye=this.curve.redN.redMul(this.z);;){if(he.iadd(this.curve.n),he.cmp(this.curve.p)>=0)return!1;if(te.redIAdd(ye),0===this.x.cmp(te))return!0}},Point$3.prototype.toP=Point$3.prototype.normalize,Point$3.prototype.mixedAdd=Point$3.prototype.add,function(D){var te=D;te.base=xf,te.short=Df,te.mont=Gf,te.edwards=Vf}(Sf);var Kf,Jf,Xf={};!function(D){var te,he=D,ye=ic,be=Sf,ve=bf.assert;function PresetCurve(D){"short"===D.type?this.curve=new be.short(D):"edwards"===D.type?this.curve=new be.edwards(D):this.curve=new be.mont(D),this.g=this.curve.g,this.n=this.curve.n,this.hash=D.hash,ve(this.g.validate(),"Invalid curve"),ve(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function defineCurve(D,te){Object.defineProperty(he,D,{configurable:!0,enumerable:!0,get:function(){var ye=new PresetCurve(te);return Object.defineProperty(he,D,{configurable:!0,enumerable:!0,value:ye}),ye}})}he.PresetCurve=PresetCurve,defineCurve("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:ye.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),defineCurve("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:ye.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),defineCurve("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:ye.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),defineCurve("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:ye.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),defineCurve("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:ye.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:ye.sha256,gRed:!1,g:["9"]}),defineCurve("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:ye.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{te=function requireSecp256k1$2(){return Jf?Kf:(Jf=1,Kf={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}})}()}catch(D){te=void 0}defineCurve("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:ye.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",te]})}(Xf);var Qf=ic,Zf=wf,Yf=oc;function HmacDRBG$2(D){if(!(this instanceof HmacDRBG$2))return new HmacDRBG$2(D);this.hash=D.hash,this.predResist=!!D.predResist,this.outLen=this.hash.outSize,this.minEntropy=D.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var te=Zf.toArray(D.entropy,D.entropyEnc||"hex"),he=Zf.toArray(D.nonce,D.nonceEnc||"hex"),ye=Zf.toArray(D.pers,D.persEnc||"hex");Yf(te.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(te,he,ye)}var el=HmacDRBG$2;HmacDRBG$2.prototype._init=function init(D,te,he){var ye=D.concat(te).concat(he);this.K=new Array(this.outLen/8),this.V=new Array(this.outLen/8);for(var be=0;be<this.V.length;be++)this.K[be]=0,this.V[be]=1;this._update(ye),this._reseed=1,this.reseedInterval=281474976710656},HmacDRBG$2.prototype._hmac=function hmac(){return new Qf.hmac(this.hash,this.K)},HmacDRBG$2.prototype._update=function update(D){var te=this._hmac().update(this.V).update([0]);D&&(te=te.update(D)),this.K=te.digest(),this.V=this._hmac().update(this.V).digest(),D&&(this.K=this._hmac().update(this.V).update([1]).update(D).digest(),this.V=this._hmac().update(this.V).digest())},HmacDRBG$2.prototype.reseed=function reseed(D,te,he,ye){"string"!=typeof te&&(ye=he,he=te,te=null),D=Zf.toArray(D,te),he=Zf.toArray(he,ye),Yf(D.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(D.concat(he||[])),this._reseed=1},HmacDRBG$2.prototype.generate=function generate(D,te,he,ye){if(this._reseed>this.reseedInterval)throw new Error("Reseed is required");"string"!=typeof te&&(ye=he,he=te,te=null),he&&(he=Zf.toArray(he,ye||"hex"),this._update(he));for(var be=[];be.length<D;)this.V=this._hmac().update(this.V).digest(),be=be.concat(this.V);var ve=be.slice(0,D);return this._update(he),this._reseed++,Zf.encode(ve,te)};var tl=vf,rl=bf.assert;function KeyPair$7(D,te){this.ec=D,this.priv=null,this.pub=null,te.priv&&this._importPrivate(te.priv,te.privEnc),te.pub&&this._importPublic(te.pub,te.pubEnc)}var nl=KeyPair$7;KeyPair$7.fromPublic=function fromPublic(D,te,he){return te instanceof KeyPair$7?te:new KeyPair$7(D,{pub:te,pubEnc:he})},KeyPair$7.fromPrivate=function fromPrivate(D,te,he){return te instanceof KeyPair$7?te:new KeyPair$7(D,{priv:te,privEnc:he})},KeyPair$7.prototype.validate=function validate(){var D=this.getPublic();return D.isInfinity()?{result:!1,reason:"Invalid public key"}:D.validate()?D.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair$7.prototype.getPublic=function getPublic(D,te){return"string"==typeof D&&(te=D,D=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),te?this.pub.encode(te,D):this.pub},KeyPair$7.prototype.getPrivate=function getPrivate(D){return"hex"===D?this.priv.toString(16,2):this.priv},KeyPair$7.prototype._importPrivate=function _importPrivate(D,te){this.priv=new tl(D,te||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair$7.prototype._importPublic=function _importPublic(D,te){if(D.x||D.y)return"mont"===this.ec.curve.type?rl(D.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||rl(D.x&&D.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(D.x,D.y));this.pub=this.ec.curve.decodePoint(D,te)},KeyPair$7.prototype.derive=function derive(D){return D.validate()||rl(D.validate(),"public point not validated"),D.mul(this.priv).getX()},KeyPair$7.prototype.sign=function sign(D,te,he){return this.ec.sign(D,this,te,he)},KeyPair$7.prototype.verify=function verify(D,te){return this.ec.verify(D,te,this)},KeyPair$7.prototype.inspect=function inspect(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var al=vf,il=bf,sl=il.assert;function Signature$8(D,te){if(D instanceof Signature$8)return D;this._importDER(D,te)||(sl(D.r&&D.s,"Signature without r or s"),this.r=new al(D.r,16),this.s=new al(D.s,16),void 0===D.recoveryParam?this.recoveryParam=null:this.recoveryParam=D.recoveryParam)}var ol=Signature$8;function Position$2(){this.place=0}function getLength$2(D,te){var he=D[te.place++];if(!(128&he))return he;var ye=15&he;if(0===ye||ye>4)return!1;if(0===D[te.place])return!1;for(var be=0,ve=0,we=te.place;ve<ye;ve++,we++)be<<=8,be|=D[we],be>>>=0;return!(be<=127)&&(te.place=we,be)}function rmPadding$1(D){for(var te=0,he=D.length-1;!D[te]&&!(128&D[te+1])&&te<he;)te++;return 0===te?D:D.slice(te)}function constructLength$1(D,te){if(te<128)D.push(te);else{var he=1+(Math.log(te)/Math.LN2>>>3);for(D.push(128|he);--he;)D.push(te>>>(he<<3)&255);D.push(te)}}Signature$8.prototype._importDER=function _importDER(D,te){D=il.toArray(D,te);var he=new Position$2;if(48!==D[he.place++])return!1;var ye=getLength$2(D,he);if(!1===ye)return!1;if(ye+he.place!==D.length)return!1;if(2!==D[he.place++])return!1;var be=getLength$2(D,he);if(!1===be)return!1;if(0!=(128&D[he.place]))return!1;var ve=D.slice(he.place,be+he.place);if(he.place+=be,2!==D[he.place++])return!1;var we=getLength$2(D,he);if(!1===we)return!1;if(D.length!==we+he.place)return!1;if(0!=(128&D[he.place]))return!1;var _e=D.slice(he.place,we+he.place);if(0===ve[0]){if(!(128&ve[1]))return!1;ve=ve.slice(1)}if(0===_e[0]){if(!(128&_e[1]))return!1;_e=_e.slice(1)}return this.r=new al(ve),this.s=new al(_e),this.recoveryParam=null,!0},Signature$8.prototype.toDER=function toDER(D){var te=this.r.toArray(),he=this.s.toArray();for(128&te[0]&&(te=[0].concat(te)),128&he[0]&&(he=[0].concat(he)),te=rmPadding$1(te),he=rmPadding$1(he);!(he[0]||128&he[1]);)he=he.slice(1);var ye=[2];constructLength$1(ye,te.length),(ye=ye.concat(te)).push(2),constructLength$1(ye,he.length);var be=ye.concat(he),ve=[48];return constructLength$1(ve,be.length),ve=ve.concat(be),il.encode(ve,D)};var cl=vf,dl=el,ul=Xf,fl=Pf,ll=bf.assert,pl=nl,hl=ol;function EC$2(D){if(!(this instanceof EC$2))return new EC$2(D);"string"==typeof D&&(ll(Object.prototype.hasOwnProperty.call(ul,D),"Unknown curve "+D),D=ul[D]),D instanceof ul.PresetCurve&&(D={curve:D}),this.curve=D.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=D.curve.g,this.g.precompute(D.curve.n.bitLength()+1),this.hash=D.hash||D.curve.hash}var yl=EC$2;EC$2.prototype.keyPair=function keyPair(D){return new pl(this,D)},EC$2.prototype.keyFromPrivate=function keyFromPrivate(D,te){return pl.fromPrivate(this,D,te)},EC$2.prototype.keyFromPublic=function keyFromPublic(D,te){return pl.fromPublic(this,D,te)},EC$2.prototype.genKeyPair=function genKeyPair(D){D||(D={});for(var te=new dl({hash:this.hash,pers:D.pers,persEnc:D.persEnc||"utf8",entropy:D.entropy||fl(this.hash.hmacStrength),entropyEnc:D.entropy&&D.entropyEnc||"utf8",nonce:this.n.toArray()}),he=this.n.byteLength(),ye=this.n.sub(new cl(2));;){var be=new cl(te.generate(he));if(!(be.cmp(ye)>0))return be.iaddn(1),this.keyFromPrivate(be)}},EC$2.prototype._truncateToN=function _truncateToN(D,te){var he=8*D.byteLength()-this.n.bitLength();return he>0&&(D=D.ushrn(he)),!te&&D.cmp(this.n)>=0?D.sub(this.n):D},EC$2.prototype.sign=function sign(D,te,he,ye){"object"==typeof he&&(ye=he,he=null),ye||(ye={}),te=this.keyFromPrivate(te,he),D=this._truncateToN(new cl(D,16));for(var be=this.n.byteLength(),ve=te.getPrivate().toArray("be",be),we=D.toArray("be",be),_e=new dl({hash:this.hash,entropy:ve,nonce:we,pers:ye.pers,persEnc:ye.persEnc||"utf8"}),Pe=this.n.sub(new cl(1)),Ie=0;;Ie++){var Re=ye.k?ye.k(Ie):new cl(_e.generate(this.n.byteLength()));if(!((Re=this._truncateToN(Re,!0)).cmpn(1)<=0||Re.cmp(Pe)>=0)){var ke=this.g.mul(Re);if(!ke.isInfinity()){var Oe=ke.getX(),xe=Oe.umod(this.n);if(0!==xe.cmpn(0)){var Be=Re.invm(this.n).mul(xe.mul(te.getPrivate()).iadd(D));if(0!==(Be=Be.umod(this.n)).cmpn(0)){var Fe=(ke.getY().isOdd()?1:0)|(0!==Oe.cmp(xe)?2:0);return ye.canonical&&Be.cmp(this.nh)>0&&(Be=this.n.sub(Be),Fe^=1),new hl({r:xe,s:Be,recoveryParam:Fe})}}}}}},EC$2.prototype.verify=function verify(D,te,he,ye){D=this._truncateToN(new cl(D,16)),he=this.keyFromPublic(he,ye);var be=(te=new hl(te,"hex")).r,ve=te.s;if(be.cmpn(1)<0||be.cmp(this.n)>=0)return!1;if(ve.cmpn(1)<0||ve.cmp(this.n)>=0)return!1;var we,_e=ve.invm(this.n),Pe=_e.mul(D).umod(this.n),Ie=_e.mul(be).umod(this.n);return this.curve._maxwellTrick?!(we=this.g.jmulAdd(Pe,he.getPublic(),Ie)).isInfinity()&&we.eqXToP(be):!(we=this.g.mulAdd(Pe,he.getPublic(),Ie)).isInfinity()&&0===we.getX().umod(this.n).cmp(be)},EC$2.prototype.recoverPubKey=function(D,te,he,ye){ll((3&he)===he,"The recovery param is more than two bits"),te=new hl(te,ye);var be=this.n,ve=new cl(D),we=te.r,_e=te.s,Pe=1&he,Ie=he>>1;if(we.cmp(this.curve.p.umod(this.curve.n))>=0&&Ie)throw new Error("Unable to find sencond key candinate");we=Ie?this.curve.pointFromX(we.add(this.curve.n),Pe):this.curve.pointFromX(we,Pe);var Re=te.r.invm(be),ke=be.sub(ve).mul(Re).umod(be),Oe=_e.mul(Re).umod(be);return this.g.mulAdd(ke,we,Oe)},EC$2.prototype.getKeyRecoveryParam=function(D,te,he,ye){if(null!==(te=new hl(te,ye)).recoveryParam)return te.recoveryParam;for(var be=0;be<4;be++){var ve;try{ve=this.recoverPubKey(D,te,be)}catch(D){continue}if(ve.eq(he))return be}throw new Error("Unable to find valid recovery factor")};var ml=bf,bl=ml.assert,gl=ml.parseBytes,vl=ml.cachedProperty;function KeyPair$5(D,te){this.eddsa=D,this._secret=gl(te.secret),D.isPoint(te.pub)?this._pub=te.pub:this._pubBytes=gl(te.pub)}KeyPair$5.fromPublic=function fromPublic(D,te){return te instanceof KeyPair$5?te:new KeyPair$5(D,{pub:te})},KeyPair$5.fromSecret=function fromSecret(D,te){return te instanceof KeyPair$5?te:new KeyPair$5(D,{secret:te})},KeyPair$5.prototype.secret=function secret(){return this._secret},vl(KeyPair$5,"pubBytes",(function pubBytes(){return this.eddsa.encodePoint(this.pub())})),vl(KeyPair$5,"pub",(function pub(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),vl(KeyPair$5,"privBytes",(function privBytes(){var D=this.eddsa,te=this.hash(),he=D.encodingLength-1,ye=te.slice(0,D.encodingLength);return ye[0]&=248,ye[he]&=127,ye[he]|=64,ye})),vl(KeyPair$5,"priv",(function priv(){return this.eddsa.decodeInt(this.privBytes())})),vl(KeyPair$5,"hash",(function hash(){return this.eddsa.hash().update(this.secret()).digest()})),vl(KeyPair$5,"messagePrefix",(function messagePrefix(){return this.hash().slice(this.eddsa.encodingLength)})),KeyPair$5.prototype.sign=function sign(D){return bl(this._secret,"KeyPair can only verify"),this.eddsa.sign(D,this)},KeyPair$5.prototype.verify=function verify(D,te){return this.eddsa.verify(D,te,this)},KeyPair$5.prototype.getSecret=function getSecret(D){return bl(this._secret,"KeyPair is public only"),ml.encode(this.secret(),D)},KeyPair$5.prototype.getPublic=function getPublic(D){return ml.encode(this.pubBytes(),D)};var wl=KeyPair$5,_l=vf,Tl=bf,Al=Tl.assert,El=Tl.cachedProperty,Pl=Tl.parseBytes;function Signature$6(D,te){this.eddsa=D,"object"!=typeof te&&(te=Pl(te)),Array.isArray(te)&&(Al(te.length===2*D.encodingLength,"Signature has invalid size"),te={R:te.slice(0,D.encodingLength),S:te.slice(D.encodingLength)}),Al(te.R&&te.S,"Signature without R or S"),D.isPoint(te.R)&&(this._R=te.R),te.S instanceof _l&&(this._S=te.S),this._Rencoded=Array.isArray(te.R)?te.R:te.Rencoded,this._Sencoded=Array.isArray(te.S)?te.S:te.Sencoded}El(Signature$6,"S",(function S(){return this.eddsa.decodeInt(this.Sencoded())})),El(Signature$6,"R",(function R(){return this.eddsa.decodePoint(this.Rencoded())})),El(Signature$6,"Rencoded",(function Rencoded(){return this.eddsa.encodePoint(this.R())})),El(Signature$6,"Sencoded",(function Sencoded(){return this.eddsa.encodeInt(this.S())})),Signature$6.prototype.toBytes=function toBytes(){return this.Rencoded().concat(this.Sencoded())},Signature$6.prototype.toHex=function toHex(){return Tl.encode(this.toBytes(),"hex").toUpperCase()};var Sl=Signature$6,Cl=ic,Il=Xf,Rl=bf,kl=Rl.assert,Ol=Rl.parseBytes,xl=wl,Nl=Sl;function EDDSA$1(D){if(kl("ed25519"===D,"only tested with ed25519 so far"),!(this instanceof EDDSA$1))return new EDDSA$1(D);D=Il[D].curve,this.curve=D,this.g=D.g,this.g.precompute(D.n.bitLength()+1),this.pointClass=D.point().constructor,this.encodingLength=Math.ceil(D.n.bitLength()/8),this.hash=Cl.sha512}var Ml=EDDSA$1;EDDSA$1.prototype.sign=function sign(D,te){D=Ol(D);var he=this.keyFromSecret(te),ye=this.hashInt(he.messagePrefix(),D),be=this.g.mul(ye),ve=this.encodePoint(be),we=this.hashInt(ve,he.pubBytes(),D).mul(he.priv()),_e=ye.add(we).umod(this.curve.n);return this.makeSignature({R:be,S:_e,Rencoded:ve})},EDDSA$1.prototype.verify=function verify(D,te,he){if(D=Ol(D),(te=this.makeSignature(te)).S().gte(te.eddsa.curve.n)||te.S().isNeg())return!1;var ye=this.keyFromPublic(he),be=this.hashInt(te.Rencoded(),ye.pubBytes(),D),ve=this.g.mul(te.S());return te.R().add(ye.pub().mul(be)).eq(ve)},EDDSA$1.prototype.hashInt=function hashInt(){for(var D=this.hash(),te=0;te<arguments.length;te++)D.update(arguments[te]);return Rl.intFromLE(D.digest()).umod(this.curve.n)},EDDSA$1.prototype.keyFromPublic=function keyFromPublic(D){return xl.fromPublic(this,D)},EDDSA$1.prototype.keyFromSecret=function keyFromSecret(D){return xl.fromSecret(this,D)},EDDSA$1.prototype.makeSignature=function makeSignature(D){return D instanceof Nl?D:new Nl(this,D)},EDDSA$1.prototype.encodePoint=function encodePoint(D){var te=D.getY().toArray("le",this.encodingLength);return te[this.encodingLength-1]|=D.getX().isOdd()?128:0,te},EDDSA$1.prototype.decodePoint=function decodePoint(D){var te=(D=Rl.parseBytes(D)).length-1,he=D.slice(0,te).concat(-129&D[te]),ye=0!=(128&D[te]),be=Rl.intFromLE(he);return this.curve.pointFromY(be,ye)},EDDSA$1.prototype.encodeInt=function encodeInt(D){return D.toArray("le",this.encodingLength)},EDDSA$1.prototype.decodeInt=function decodeInt(D){return Rl.intFromLE(D)},EDDSA$1.prototype.isPoint=function isPoint(D){return D instanceof this.pointClass},function(D){var te=D;te.version=mf,te.utils=bf,te.rand=Pf,te.curve=Sf,te.curves=Xf,te.ec=yl,te.eddsa=Ml}(yf);var Bl=getDefaultExportFromCjs$1(yf),Fl={},Dl={},Ll={},Ul={},$l={},ql=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty($l,"__esModule",{value:!0}),$l.getLength=$l.decode=$l.encode=void 0;var Gl=ql(ki);function safeParseInt(D,te){if("0"===D[0]&&"0"===D[1])throw new Error("invalid RLP: extra zeros");return parseInt(D,te)}function encodeLength(D,te){if(D<56)return Buffer.from([D+te]);var he=intToHex(D),ye=intToHex(te+55+he.length/2);return Buffer.from(ye+he,"hex")}function _decode$1(D){var te,he,ye,be,ve,we=[],_e=D[0];if(_e<=127)return{data:D.slice(0,1),remainder:D.slice(1)};if(_e<=183){if(te=_e-127,ye=128===_e?Buffer.from([]):D.slice(1,te),2===te&&ye[0]<128)throw new Error("invalid rlp encoding: byte must be less 0x80");return{data:ye,remainder:D.slice(te)}}if(_e<=191){if(he=_e-182,D.length-1<he)throw new Error("invalid RLP: not enough bytes for string length");if((te=safeParseInt(D.slice(1,he).toString("hex"),16))<=55)throw new Error("invalid RLP: expected string length to be greater than 55");if((ye=D.slice(he,te+he)).length<te)throw new Error("invalid RLP: not enough bytes for string");return{data:ye,remainder:D.slice(te+he)}}if(_e<=247){for(te=_e-191,be=D.slice(1,te);be.length;)ve=_decode$1(be),we.push(ve.data),be=ve.remainder;return{data:we,remainder:D.slice(te)}}var Pe=(he=_e-246)+(te=safeParseInt(D.slice(1,he).toString("hex"),16));if(Pe>D.length)throw new Error("invalid rlp: total length is larger than the data");if(0===(be=D.slice(he,Pe)).length)throw new Error("invalid rlp, List has a invalid length");for(;be.length;)ve=_decode$1(be),we.push(ve.data),be=ve.remainder;return{data:we,remainder:D.slice(Pe)}}function isHexPrefixed$1(D){return"0x"===D.slice(0,2)}function intToHex(D){if(D<0)throw new Error("Invalid integer as argument, must be unsigned!");var te=D.toString(16);return te.length%2?"0"+te:te}function toBuffer(D){if(!Buffer.isBuffer(D)){if("string"==typeof D)return isHexPrefixed$1(D)?Buffer.from(function padToEven$1(D){return D.length%2?"0"+D:D}(function stripHexPrefix$1(D){return"string"!=typeof D?D:isHexPrefixed$1(D)?D.slice(2):D}(D)),"hex"):Buffer.from(D);if("number"==typeof D||"bigint"==typeof D)return D?function intToBuffer(D){var te=intToHex(D);return Buffer.from(te,"hex")}(D):Buffer.from([]);if(null==D)return Buffer.from([]);if(D instanceof Uint8Array)return Buffer.from(D);if(Gl.default.isBN(D))return Buffer.from(D.toArray());throw new Error("invalid type")}return D}$l.encode=function encode$3(D){if(Array.isArray(D)){for(var te=[],he=0;he<D.length;he++)te.push(encode$3(D[he]));var ye=Buffer.concat(te);return Buffer.concat([encodeLength(ye.length,192),ye])}var be=toBuffer(D);return 1===be.length&&be[0]<128?be:Buffer.concat([encodeLength(be.length,128),be])},$l.decode=function decode(D,te){if(void 0===te&&(te=!1),!D||0===D.length)return Buffer.from([]);var he=_decode$1(toBuffer(D));if(te)return he;if(0!==he.remainder.length)throw new Error("invalid remainder");return he.data},$l.getLength=function getLength$1(D){if(!D||0===D.length)return Buffer.from([]);var te=toBuffer(D),he=te[0];if(he<=127)return te.length;if(he<=183)return he-127;if(he<=191)return he-182;if(he<=247)return he-191;var ye=he-246;return ye+safeParseInt(te.slice(1,ye).toString("hex"),16)};var jl=rn&&rn.__createBinding||(Object.create?function(D,te,he,ye){void 0===ye&&(ye=he);var be=Object.getOwnPropertyDescriptor(te,he);be&&!("get"in be?!te.__esModule:be.writable||be.configurable)||(be={enumerable:!0,get:function(){return te[he]}}),Object.defineProperty(D,ye,be)}:function(D,te,he,ye){void 0===ye&&(ye=he),D[ye]=te[he]}),Hl=rn&&rn.__setModuleDefault||(Object.create?function(D,te){Object.defineProperty(D,"default",{enumerable:!0,value:te})}:function(D,te){D.default=te}),zl=rn&&rn.__importStar||function(D){if(D&&D.__esModule)return D;var te={};if(null!=D)for(var he in D)"default"!==he&&Object.prototype.hasOwnProperty.call(D,he)&&jl(te,D,he);return Hl(te,D),te},Wl=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(Ul,"__esModule",{value:!0}),Ul.rlp=Ul.BN=void 0;var Vl=Wl(ki);Ul.BN=Vl.default;var Kl=zl($l);Ul.rlp=Kl,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.KECCAK256_RLP=D.KECCAK256_RLP_S=D.KECCAK256_RLP_ARRAY=D.KECCAK256_RLP_ARRAY_S=D.KECCAK256_NULL=D.KECCAK256_NULL_S=D.TWO_POW256=D.MAX_INTEGER=D.MAX_UINT64=void 0;var te=Ri,he=Ul;D.MAX_UINT64=new he.BN("ffffffffffffffff",16),D.MAX_INTEGER=new he.BN("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",16),D.TWO_POW256=new he.BN("10000000000000000000000000000000000000000000000000000000000000000",16),D.KECCAK256_NULL_S="c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",D.KECCAK256_NULL=te.Buffer.from(D.KECCAK256_NULL_S,"hex"),D.KECCAK256_RLP_ARRAY_S="1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",D.KECCAK256_RLP_ARRAY=te.Buffer.from(D.KECCAK256_RLP_ARRAY_S,"hex"),D.KECCAK256_RLP_S="56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",D.KECCAK256_RLP=te.Buffer.from(D.KECCAK256_RLP_S,"hex")}(Ll);var Jl={};function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}var Xl=defaultSetTimout,Ql=defaultClearTimeout;function runTimeout(D){if(Xl===setTimeout)return setTimeout(D,0);if((Xl===defaultSetTimout||!Xl)&&setTimeout)return Xl=setTimeout,setTimeout(D,0);try{return Xl(D,0)}catch(te){try{return Xl.call(null,D,0)}catch(te){return Xl.call(this,D,0)}}}"function"==typeof vi.setTimeout&&(Xl=setTimeout),"function"==typeof vi.clearTimeout&&(Ql=clearTimeout);var Zl,Yl=[],ep=!1,tp=-1;function cleanUpNextTick(){ep&&Zl&&(ep=!1,Zl.length?Yl=Zl.concat(Yl):tp=-1,Yl.length&&drainQueue())}function drainQueue(){if(!ep){var D=runTimeout(cleanUpNextTick);ep=!0;for(var te=Yl.length;te;){for(Zl=Yl,Yl=[];++tp<te;)Zl&&Zl[tp].run();tp=-1,te=Yl.length}Zl=null,ep=!1,function runClearTimeout(D){if(Ql===clearTimeout)return clearTimeout(D);if((Ql===defaultClearTimeout||!Ql)&&clearTimeout)return Ql=clearTimeout,clearTimeout(D);try{return Ql(D)}catch(te){try{return Ql.call(null,D)}catch(te){return Ql.call(this,D)}}}(D)}}function nextTick(D){var te=new Array(arguments.length-1);if(arguments.length>1)for(var he=1;he<arguments.length;he++)te[he-1]=arguments[he];Yl.push(new Item(D,te)),1!==Yl.length||ep||runTimeout(drainQueue)}function Item(D,te){this.fun=D,this.array=te}Item.prototype.run=function(){this.fun.apply(null,this.array)};function noop$3(){}var rp=noop$3,np=noop$3,ap=noop$3,ip=noop$3,sp=noop$3,op=noop$3,cp=noop$3;var dp=vi.performance||{},up=dp.now||dp.mozNow||dp.msNow||dp.oNow||dp.webkitNow||function(){return(new Date).getTime()};var fp=new Date;var lp,pp={nextTick:nextTick,title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:rp,addListener:np,once:ap,off:ip,removeListener:sp,removeAllListeners:op,emit:cp,binding:function binding(D){throw new Error("process.binding is not supported")},cwd:function cwd(){return"/"},chdir:function chdir(D){throw new Error("process.chdir is not supported")},umask:function umask(){return 0},hrtime:function hrtime(D){var te=.001*up.call(dp),he=Math.floor(te),ye=Math.floor(te%1*1e9);return D&&(he-=D[0],(ye-=D[1])<0&&(he--,ye+=1e9)),[he,ye]},platform:"browser",release:{},config:{},uptime:function uptime(){return(new Date-fp)/1e3}};lp="function"==typeof Object.create?function inherits(D,te){D.super_=te,D.prototype=Object.create(te.prototype,{constructor:{value:D,enumerable:!1,writable:!0,configurable:!0}})}:function inherits(D,te){D.super_=te;var TempCtor=function(){};TempCtor.prototype=te.prototype,D.prototype=new TempCtor,D.prototype.constructor=D};var hp=Object.getOwnPropertyDescriptors||function getOwnPropertyDescriptors(D){for(var te=Object.keys(D),he={},ye=0;ye<te.length;ye++)he[te[ye]]=Object.getOwnPropertyDescriptor(D,te[ye]);return he},yp=/%[sdj%]/g;function format$1(D){if(!isString$2(D)){for(var te=[],he=0;he<arguments.length;he++)te.push(inspect$1(arguments[he]));return te.join(" ")}he=1;for(var ye=arguments,be=ye.length,ve=String(D).replace(yp,(function(D){if("%%"===D)return"%";if(he>=be)return D;switch(D){case"%s":return String(ye[he++]);case"%d":return Number(ye[he++]);case"%j":try{return JSON.stringify(ye[he++])}catch(D){return"[Circular]"}default:return D}})),we=ye[he];he<be;we=ye[++he])isNull(we)||!isObject$1(we)?ve+=" "+we:ve+=" "+inspect$1(we);return ve}function deprecate(D,te){if(isUndefined$1(vi.undefined))return function(){return deprecate(D,te).apply(this,arguments)};if(!0===pp.noDeprecation)return D;var he=!1;return function deprecated(){if(!he){if(pp.throwDeprecation)throw new Error(te);pp.traceDeprecation?console.trace(te):console.error(te),he=!0}return D.apply(this,arguments)}}var mp,bp={};function debuglog(D){if(isUndefined$1(mp)&&(mp=pp.env.NODE_DEBUG||""),D=D.toUpperCase(),!bp[D])if(new RegExp("\\b"+D+"\\b","i").test(mp)){bp[D]=function(){var te=format$1.apply(null,arguments);console.error("%s %d: %s",D,0,te)}}else bp[D]=function(){};return bp[D]}function inspect$1(D,te){var he={seen:[],stylize:stylizeNoColor};return arguments.length>=3&&(he.depth=arguments[2]),arguments.length>=4&&(he.colors=arguments[3]),isBoolean$1(te)?he.showHidden=te:te&&_extend(he,te),isUndefined$1(he.showHidden)&&(he.showHidden=!1),isUndefined$1(he.depth)&&(he.depth=2),isUndefined$1(he.colors)&&(he.colors=!1),isUndefined$1(he.customInspect)&&(he.customInspect=!0),he.colors&&(he.stylize=stylizeWithColor),formatValue(he,D,he.depth)}function stylizeWithColor(D,te){var he=inspect$1.styles[te];return he?"["+inspect$1.colors[he][0]+"m"+D+"["+inspect$1.colors[he][1]+"m":D}function stylizeNoColor(D,te){return D}function formatValue(D,te,he){if(D.customInspect&&te&&isFunction$1(te.inspect)&&te.inspect!==inspect$1&&(!te.constructor||te.constructor.prototype!==te)){var ye=te.inspect(he,D);return isString$2(ye)||(ye=formatValue(D,ye,he)),ye}var be=function formatPrimitive(D,te){if(isUndefined$1(te))return D.stylize("undefined","undefined");if(isString$2(te)){var he="'"+JSON.stringify(te).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return D.stylize(he,"string")}if(isNumber$1(te))return D.stylize(""+te,"number");if(isBoolean$1(te))return D.stylize(""+te,"boolean");if(isNull(te))return D.stylize("null","null")}(D,te);if(be)return be;var ve=Object.keys(te),we=function arrayToHash(D){var te={};return D.forEach((function(D,he){te[D]=!0})),te}(ve);if(D.showHidden&&(ve=Object.getOwnPropertyNames(te)),isError$1(te)&&(ve.indexOf("message")>=0||ve.indexOf("description")>=0))return formatError$1(te);if(0===ve.length){if(isFunction$1(te)){var _e=te.name?": "+te.name:"";return D.stylize("[Function"+_e+"]","special")}if(isRegExp$1(te))return D.stylize(RegExp.prototype.toString.call(te),"regexp");if(isDate$1(te))return D.stylize(Date.prototype.toString.call(te),"date");if(isError$1(te))return formatError$1(te)}var Pe,Ie="",Re=!1,ke=["{","}"];(isArray$1(te)&&(Re=!0,ke=["[","]"]),isFunction$1(te))&&(Ie=" [Function"+(te.name?": "+te.name:"")+"]");return isRegExp$1(te)&&(Ie=" "+RegExp.prototype.toString.call(te)),isDate$1(te)&&(Ie=" "+Date.prototype.toUTCString.call(te)),isError$1(te)&&(Ie=" "+formatError$1(te)),0!==ve.length||Re&&0!=te.length?he<0?isRegExp$1(te)?D.stylize(RegExp.prototype.toString.call(te),"regexp"):D.stylize("[Object]","special"):(D.seen.push(te),Pe=Re?function formatArray(D,te,he,ye,be){for(var ve=[],we=0,_e=te.length;we<_e;++we)hasOwnProperty$1(te,String(we))?ve.push(formatProperty(D,te,he,ye,String(we),!0)):ve.push("");return be.forEach((function(be){be.match(/^\d+$/)||ve.push(formatProperty(D,te,he,ye,be,!0))})),ve}(D,te,he,we,ve):ve.map((function(ye){return formatProperty(D,te,he,we,ye,Re)})),D.seen.pop(),function reduceToSingleString(D,te,he){var ye=D.reduce((function(D,te){return te.indexOf("\n"),D+te.replace(/\u001b\[\d\d?m/g,"").length+1}),0);if(ye>60)return he[0]+(""===te?"":te+"\n ")+" "+D.join(",\n  ")+" "+he[1];return he[0]+te+" "+D.join(", ")+" "+he[1]}(Pe,Ie,ke)):ke[0]+Ie+ke[1]}function formatError$1(D){return"["+Error.prototype.toString.call(D)+"]"}function formatProperty(D,te,he,ye,be,ve){var we,_e,Pe;if((Pe=Object.getOwnPropertyDescriptor(te,be)||{value:te[be]}).get?_e=Pe.set?D.stylize("[Getter/Setter]","special"):D.stylize("[Getter]","special"):Pe.set&&(_e=D.stylize("[Setter]","special")),hasOwnProperty$1(ye,be)||(we="["+be+"]"),_e||(D.seen.indexOf(Pe.value)<0?(_e=isNull(he)?formatValue(D,Pe.value,null):formatValue(D,Pe.value,he-1)).indexOf("\n")>-1&&(_e=ve?_e.split("\n").map((function(D){return"  "+D})).join("\n").substr(2):"\n"+_e.split("\n").map((function(D){return"   "+D})).join("\n")):_e=D.stylize("[Circular]","special")),isUndefined$1(we)){if(ve&&be.match(/^\d+$/))return _e;(we=JSON.stringify(""+be)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(we=we.substr(1,we.length-2),we=D.stylize(we,"name")):(we=we.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),we=D.stylize(we,"string"))}return we+": "+_e}function isArray$1(D){return Array.isArray(D)}function isBoolean$1(D){return"boolean"==typeof D}function isNull(D){return null===D}function isNullOrUndefined(D){return null==D}function isNumber$1(D){return"number"==typeof D}function isString$2(D){return"string"==typeof D}function isSymbol(D){return"symbol"==typeof D}function isUndefined$1(D){return void 0===D}function isRegExp$1(D){return isObject$1(D)&&"[object RegExp]"===objectToString(D)}function isObject$1(D){return"object"==typeof D&&null!==D}function isDate$1(D){return isObject$1(D)&&"[object Date]"===objectToString(D)}function isError$1(D){return isObject$1(D)&&("[object Error]"===objectToString(D)||D instanceof Error)}function isFunction$1(D){return"function"==typeof D}function isPrimitive(D){return null===D||"boolean"==typeof D||"number"==typeof D||"string"==typeof D||"symbol"==typeof D||void 0===D}function isBuffer$1(D){return Buffer$h.isBuffer(D)}function objectToString(D){return Object.prototype.toString.call(D)}function pad(D){return D<10?"0"+D.toString(10):D.toString(10)}inspect$1.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},inspect$1.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var gp=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function log(){console.log("%s - %s",function timestamp(){var D=new Date,te=[pad(D.getHours()),pad(D.getMinutes()),pad(D.getSeconds())].join(":");return[D.getDate(),gp[D.getMonth()],te].join(" ")}(),format$1.apply(null,arguments))}function _extend(D,te){if(!te||!isObject$1(te))return D;for(var he=Object.keys(te),ye=he.length;ye--;)D[he[ye]]=te[he[ye]];return D}function hasOwnProperty$1(D,te){return Object.prototype.hasOwnProperty.call(D,te)}var vp="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function promisify(D){if("function"!=typeof D)throw new TypeError('The "original" argument must be of type Function');if(vp&&D[vp]){var te;if("function"!=typeof(te=D[vp]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(te,vp,{value:te,enumerable:!1,writable:!1,configurable:!0}),te}function te(){for(var te,he,ye=new Promise((function(D,ye){te=D,he=ye})),be=[],ve=0;ve<arguments.length;ve++)be.push(arguments[ve]);be.push((function(D,ye){D?he(D):te(ye)}));try{D.apply(this,be)}catch(D){he(D)}return ye}return Object.setPrototypeOf(te,Object.getPrototypeOf(D)),vp&&Object.defineProperty(te,vp,{value:te,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(te,hp(D))}function callbackifyOnRejected(D,te){if(!D){var he=new Error("Promise was rejected with a falsy value");he.reason=D,D=he}return te(D)}function callbackify(D){if("function"!=typeof D)throw new TypeError('The "original" argument must be of type Function');function callbackified(){for(var te=[],he=0;he<arguments.length;he++)te.push(arguments[he]);var ye=te.pop();if("function"!=typeof ye)throw new TypeError("The last argument must be of type Function");var be=this,cb=function(){return ye.apply(be,arguments)};D.apply(this,te).then((function(D){pp.nextTick(cb.bind(null,null,D))}),(function(D){pp.nextTick(callbackifyOnRejected.bind(null,D,cb))}))}return Object.setPrototypeOf(callbackified,Object.getPrototypeOf(D)),Object.defineProperties(callbackified,hp(D)),callbackified}promisify.custom=vp;var wp={inherits:lp,_extend:_extend,log:log,isBuffer:isBuffer$1,isPrimitive:isPrimitive,isFunction:isFunction$1,isError:isError$1,isDate:isDate$1,isObject:isObject$1,isRegExp:isRegExp$1,isUndefined:isUndefined$1,isSymbol:isSymbol,isString:isString$2,isNumber:isNumber$1,isNullOrUndefined:isNullOrUndefined,isNull:isNull,isBoolean:isBoolean$1,isArray:isArray$1,inspect:inspect$1,deprecate:deprecate,format:format$1,debuglog:debuglog,promisify:promisify,callbackify:callbackify},_p=Object.freeze({__proto__:null,_extend:_extend,callbackify:callbackify,debuglog:debuglog,default:wp,deprecate:deprecate,format:format$1,inherits:lp,inspect:inspect$1,isArray:isArray$1,isBoolean:isBoolean$1,isBuffer:isBuffer$1,isDate:isDate$1,isError:isError$1,isFunction:isFunction$1,isNull:isNull,isNullOrUndefined:isNullOrUndefined,isNumber:isNumber$1,isObject:isObject$1,isPrimitive:isPrimitive,isRegExp:isRegExp$1,isString:isString$2,isSymbol:isSymbol,isUndefined:isUndefined$1,log:log,promisify:promisify});function compare(D,te){if(D===te)return 0;for(var he=D.length,ye=te.length,be=0,ve=Math.min(he,ye);be<ve;++be)if(D[be]!==te[be]){he=D[be],ye=te[be];break}return he<ye?-1:ye<he?1:0}var Tp,Ap=Object.prototype.hasOwnProperty,Ep=Object.keys||function(D){var te=[];for(var he in D)Ap.call(D,he)&&te.push(he);return te},Pp=Array.prototype.slice;function functionsHaveNames(){return void 0!==Tp?Tp:Tp="foo"===function foo(){}.name}function pToString(D){return Object.prototype.toString.call(D)}function isView(D){return!isBuffer$3(D)&&("function"==typeof vi.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(D):!!D&&(D instanceof DataView||!!(D.buffer&&D.buffer instanceof ArrayBuffer))))}function assert$c(D,te){D||fail(D,!0,te,"==",ok)}var Sp=/\s*function\s+([^\(\s]*)\s*/;function getName(D){if(isFunction$1(D)){if(functionsHaveNames())return D.name;var te=D.toString().match(Sp);return te&&te[1]}}function AssertionError(D){this.name="AssertionError",this.actual=D.actual,this.expected=D.expected,this.operator=D.operator,D.message?(this.message=D.message,this.generatedMessage=!1):(this.message=function getMessage(D){return truncate(inspect(D.actual),128)+" "+D.operator+" "+truncate(inspect(D.expected),128)}(this),this.generatedMessage=!0);var te=D.stackStartFunction||fail;if(Error.captureStackTrace)Error.captureStackTrace(this,te);else{var he=new Error;if(he.stack){var ye=he.stack,be=getName(te),ve=ye.indexOf("\n"+be);if(ve>=0){var we=ye.indexOf("\n",ve+1);ye=ye.substring(we+1)}this.stack=ye}}}function truncate(D,te){return"string"==typeof D?D.length<te?D:D.slice(0,te):D}function inspect(D){if(functionsHaveNames()||!isFunction$1(D))return inspect$1(D);var te=getName(D);return"[Function"+(te?": "+te:"")+"]"}function fail(D,te,he,ye,be){throw new AssertionError({message:he,actual:D,expected:te,operator:ye,stackStartFunction:be})}function ok(D,te){D||fail(D,!0,te,"==",ok)}function equal(D,te,he){D!=te&&fail(D,te,he,"==",equal)}function notEqual(D,te,he){D==te&&fail(D,te,he,"!=",notEqual)}function deepEqual(D,te,he){_deepEqual(D,te,!1)||fail(D,te,he,"deepEqual",deepEqual)}function deepStrictEqual(D,te,he){_deepEqual(D,te,!0)||fail(D,te,he,"deepStrictEqual",deepStrictEqual)}function _deepEqual(D,te,he,ye){if(D===te)return!0;if(isBuffer$3(D)&&isBuffer$3(te))return 0===compare(D,te);if(isDate$1(D)&&isDate$1(te))return D.getTime()===te.getTime();if(isRegExp$1(D)&&isRegExp$1(te))return D.source===te.source&&D.global===te.global&&D.multiline===te.multiline&&D.lastIndex===te.lastIndex&&D.ignoreCase===te.ignoreCase;if(null!==D&&"object"==typeof D||null!==te&&"object"==typeof te){if(isView(D)&&isView(te)&&pToString(D)===pToString(te)&&!(D instanceof Float32Array||D instanceof Float64Array))return 0===compare(new Uint8Array(D.buffer),new Uint8Array(te.buffer));if(isBuffer$3(D)!==isBuffer$3(te))return!1;var be=(ye=ye||{actual:[],expected:[]}).actual.indexOf(D);return-1!==be&&be===ye.expected.indexOf(te)||(ye.actual.push(D),ye.expected.push(te),function objEquiv(D,te,he,ye){if(null==D||null==te)return!1;if(isPrimitive(D)||isPrimitive(te))return D===te;if(he&&Object.getPrototypeOf(D)!==Object.getPrototypeOf(te))return!1;var be=isArguments(D),ve=isArguments(te);if(be&&!ve||!be&&ve)return!1;if(be)return _deepEqual(D=Pp.call(D),te=Pp.call(te),he);var we,_e,Pe=Ep(D),Ie=Ep(te);if(Pe.length!==Ie.length)return!1;for(Pe.sort(),Ie.sort(),_e=Pe.length-1;_e>=0;_e--)if(Pe[_e]!==Ie[_e])return!1;for(_e=Pe.length-1;_e>=0;_e--)if(!_deepEqual(D[we=Pe[_e]],te[we],he,ye))return!1;return!0}(D,te,he,ye))}return he?D===te:D==te}function isArguments(D){return"[object Arguments]"==Object.prototype.toString.call(D)}function notDeepEqual(D,te,he){_deepEqual(D,te,!1)&&fail(D,te,he,"notDeepEqual",notDeepEqual)}function notDeepStrictEqual(D,te,he){_deepEqual(D,te,!0)&&fail(D,te,he,"notDeepStrictEqual",notDeepStrictEqual)}function strictEqual(D,te,he){D!==te&&fail(D,te,he,"===",strictEqual)}function notStrictEqual(D,te,he){D===te&&fail(D,te,he,"!==",notStrictEqual)}function expectedException(D,te){if(!D||!te)return!1;if("[object RegExp]"==Object.prototype.toString.call(te))return te.test(D);try{if(D instanceof te)return!0}catch(D){}return!Error.isPrototypeOf(te)&&!0===te.call({},D)}function _throws(D,te,he,ye){var be;if("function"!=typeof te)throw new TypeError('"block" argument must be a function');"string"==typeof he&&(ye=he,he=null),be=function _tryBlock(D){var te;try{D()}catch(D){te=D}return te}(te),ye=(he&&he.name?" ("+he.name+").":".")+(ye?" "+ye:"."),D&&!be&&fail(be,he,"Missing expected exception"+ye);var ve="string"==typeof ye,we=!D&&be&&!he;if((!D&&isError$1(be)&&ve&&expectedException(be,he)||we)&&fail(be,he,"Got unwanted exception"+ye),D&&be&&he&&!expectedException(be,he)||!D&&be)throw be}function throws(D,te,he){_throws(!0,D,te,he)}function doesNotThrow(D,te,he){_throws(!1,D,te,he)}function ifError(D){if(D)throw D}assert$c.AssertionError=AssertionError,lp(AssertionError,Error),assert$c.fail=fail,assert$c.ok=ok,assert$c.equal=equal,assert$c.notEqual=notEqual,assert$c.deepEqual=deepEqual,assert$c.deepStrictEqual=deepStrictEqual,assert$c.notDeepEqual=notDeepEqual,assert$c.notDeepStrictEqual=notDeepStrictEqual,assert$c.strictEqual=strictEqual,assert$c.notStrictEqual=notStrictEqual,assert$c.throws=throws,assert$c.doesNotThrow=doesNotThrow,assert$c.ifError=ifError;var Cp=getAugmentedNamespace$1(Object.freeze({__proto__:null,AssertionError:AssertionError,assert:ok,deepEqual:deepEqual,deepStrictEqual:deepStrictEqual,default:assert$c,doesNotThrow:doesNotThrow,equal:equal,fail:fail,ifError:ifError,notDeepEqual:notDeepEqual,notDeepStrictEqual:notDeepStrictEqual,notEqual:notEqual,notStrictEqual:notStrictEqual,ok:ok,strictEqual:strictEqual,throws:throws})),Ip={};const Rp="Impossible case. Please create issue.",kp="The tweak was out of range or the resulted private key is invalid",Op="The tweak was out of range or equal to zero",xp="Unknow error on context randomization",Np="Private Key is invalid",Mp="Public Key could not be parsed",Bp="Public Key serialization error",Fp="The sum of the public keys is not valid",Dp="Signature could not be parsed",Lp="The nonce generation function failed, or the private key was invalid",Up="Public key could not be recover",$p="Scalar was invalid (zero or overflow)";function assert$b(D,te){if(!D)throw new Error(te)}function isUint8Array(D,te,he){if(assert$b(te instanceof Uint8Array,`Expected ${D} to be an Uint8Array`),void 0!==he)if(Array.isArray(he)){const ye=`Expected ${D} to be an Uint8Array with length [${he.join(", ")}]`;assert$b(he.includes(te.length),ye)}else{const ye=`Expected ${D} to be an Uint8Array with length ${he}`;assert$b(te.length===he,ye)}}function isCompressed(D){assert$b("Boolean"===toTypeString(D),"Expected compressed to be a Boolean")}function getAssertedOutput(D=(D=>new Uint8Array(D)),te){return"function"==typeof D&&(D=D(te)),isUint8Array("output",D,te),D}function toTypeString(D){return Object.prototype.toString.call(D).slice(8,-1)}var qp={},Gp="6.5.4",jp={},Hp={exports:{}};!function(D){!function(D,te){function assert(D,te){if(!D)throw new Error(te||"Assertion failed")}function inherits(D,te){D.super_=te;var TempCtor=function(){};TempCtor.prototype=te.prototype,D.prototype=new TempCtor,D.prototype.constructor=D}function BN(D,te,he){if(BN.isBN(D))return D;this.negative=0,this.words=null,this.length=0,this.red=null,null!==D&&("le"!==te&&"be"!==te||(he=te,te=10),this._init(D||0,te||10,he||"be"))}var he;"object"==typeof D?D.exports=BN:te.BN=BN,BN.BN=BN,BN.wordSize=26;try{he="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:Ri.Buffer}catch(D){}function parseHex4Bits(D,te){var he=D.charCodeAt(te);return he>=65&&he<=70?he-55:he>=97&&he<=102?he-87:he-48&15}function parseHexByte(D,te,he){var ye=parseHex4Bits(D,he);return he-1>=te&&(ye|=parseHex4Bits(D,he-1)<<4),ye}function parseBase(D,te,he,ye){for(var be=0,ve=Math.min(D.length,he),we=te;we<ve;we++){var _e=D.charCodeAt(we)-48;be*=ye,be+=_e>=49?_e-49+10:_e>=17?_e-17+10:_e}return be}BN.isBN=function isBN(D){return D instanceof BN||null!==D&&"object"==typeof D&&D.constructor.wordSize===BN.wordSize&&Array.isArray(D.words)},BN.max=function max(D,te){return D.cmp(te)>0?D:te},BN.min=function min(D,te){return D.cmp(te)<0?D:te},BN.prototype._init=function init(D,te,he){if("number"==typeof D)return this._initNumber(D,te,he);if("object"==typeof D)return this._initArray(D,te,he);"hex"===te&&(te=16),assert(te===(0|te)&&te>=2&&te<=36);var ye=0;"-"===(D=D.toString().replace(/\s+/g,""))[0]&&(ye++,this.negative=1),ye<D.length&&(16===te?this._parseHex(D,ye,he):(this._parseBase(D,te,ye),"le"===he&&this._initArray(this.toArray(),te,he)))},BN.prototype._initNumber=function _initNumber(D,te,he){D<0&&(this.negative=1,D=-D),D<67108864?(this.words=[67108863&D],this.length=1):D<4503599627370496?(this.words=[67108863&D,D/67108864&67108863],this.length=2):(assert(D<9007199254740992),this.words=[67108863&D,D/67108864&67108863,1],this.length=3),"le"===he&&this._initArray(this.toArray(),te,he)},BN.prototype._initArray=function _initArray(D,te,he){if(assert("number"==typeof D.length),D.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(D.length/3),this.words=new Array(this.length);for(var ye=0;ye<this.length;ye++)this.words[ye]=0;var be,ve,we=0;if("be"===he)for(ye=D.length-1,be=0;ye>=0;ye-=3)ve=D[ye]|D[ye-1]<<8|D[ye-2]<<16,this.words[be]|=ve<<we&67108863,this.words[be+1]=ve>>>26-we&67108863,(we+=24)>=26&&(we-=26,be++);else if("le"===he)for(ye=0,be=0;ye<D.length;ye+=3)ve=D[ye]|D[ye+1]<<8|D[ye+2]<<16,this.words[be]|=ve<<we&67108863,this.words[be+1]=ve>>>26-we&67108863,(we+=24)>=26&&(we-=26,be++);return this.strip()},BN.prototype._parseHex=function _parseHex(D,te,he){this.length=Math.ceil((D.length-te)/6),this.words=new Array(this.length);for(var ye=0;ye<this.length;ye++)this.words[ye]=0;var be,ve=0,we=0;if("be"===he)for(ye=D.length-1;ye>=te;ye-=2)be=parseHexByte(D,te,ye)<<ve,this.words[we]|=67108863&be,ve>=18?(ve-=18,we+=1,this.words[we]|=be>>>26):ve+=8;else for(ye=(D.length-te)%2==0?te+1:te;ye<D.length;ye+=2)be=parseHexByte(D,te,ye)<<ve,this.words[we]|=67108863&be,ve>=18?(ve-=18,we+=1,this.words[we]|=be>>>26):ve+=8;this.strip()},BN.prototype._parseBase=function _parseBase(D,te,he){this.words=[0],this.length=1;for(var ye=0,be=1;be<=67108863;be*=te)ye++;ye--,be=be/te|0;for(var ve=D.length-he,we=ve%ye,_e=Math.min(ve,ve-we)+he,Pe=0,Ie=he;Ie<_e;Ie+=ye)Pe=parseBase(D,Ie,Ie+ye,te),this.imuln(be),this.words[0]+Pe<67108864?this.words[0]+=Pe:this._iaddn(Pe);if(0!==we){var Re=1;for(Pe=parseBase(D,Ie,D.length,te),Ie=0;Ie<we;Ie++)Re*=te;this.imuln(Re),this.words[0]+Pe<67108864?this.words[0]+=Pe:this._iaddn(Pe)}this.strip()},BN.prototype.copy=function copy(D){D.words=new Array(this.length);for(var te=0;te<this.length;te++)D.words[te]=this.words[te];D.length=this.length,D.negative=this.negative,D.red=this.red},BN.prototype.clone=function clone(){var D=new BN(null);return this.copy(D),D},BN.prototype._expand=function _expand(D){for(;this.length<D;)this.words[this.length++]=0;return this},BN.prototype.strip=function strip(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function _normSign(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},BN.prototype.inspect=function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var ye=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],be=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],ve=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function smallMulTo(D,te,he){he.negative=te.negative^D.negative;var ye=D.length+te.length|0;he.length=ye,ye=ye-1|0;var be=0|D.words[0],ve=0|te.words[0],we=be*ve,_e=67108863&we,Pe=we/67108864|0;he.words[0]=_e;for(var Ie=1;Ie<ye;Ie++){for(var Re=Pe>>>26,ke=67108863&Pe,Oe=Math.min(Ie,te.length-1),xe=Math.max(0,Ie-D.length+1);xe<=Oe;xe++){var Be=Ie-xe|0;Re+=(we=(be=0|D.words[Be])*(ve=0|te.words[xe])+ke)/67108864|0,ke=67108863&we}he.words[Ie]=0|ke,Pe=0|Re}return 0!==Pe?he.words[Ie]=0|Pe:he.length--,he.strip()}BN.prototype.toString=function toString(D,te){var he;if(te=0|te||1,16===(D=D||10)||"hex"===D){he="";for(var we=0,_e=0,Pe=0;Pe<this.length;Pe++){var Ie=this.words[Pe],Re=(16777215&(Ie<<we|_e)).toString(16);he=0!==(_e=Ie>>>24-we&16777215)||Pe!==this.length-1?ye[6-Re.length]+Re+he:Re+he,(we+=2)>=26&&(we-=26,Pe--)}for(0!==_e&&(he=_e.toString(16)+he);he.length%te!=0;)he="0"+he;return 0!==this.negative&&(he="-"+he),he}if(D===(0|D)&&D>=2&&D<=36){var ke=be[D],Oe=ve[D];he="";var xe=this.clone();for(xe.negative=0;!xe.isZero();){var Be=xe.modn(Oe).toString(D);he=(xe=xe.idivn(Oe)).isZero()?Be+he:ye[ke-Be.length]+Be+he}for(this.isZero()&&(he="0"+he);he.length%te!=0;)he="0"+he;return 0!==this.negative&&(he="-"+he),he}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function toNumber(){var D=this.words[0];return 2===this.length?D+=67108864*this.words[1]:3===this.length&&1===this.words[2]?D+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-D:D},BN.prototype.toJSON=function toJSON(){return this.toString(16)},BN.prototype.toBuffer=function toBuffer(D,te){return assert(void 0!==he),this.toArrayLike(he,D,te)},BN.prototype.toArray=function toArray(D,te){return this.toArrayLike(Array,D,te)},BN.prototype.toArrayLike=function toArrayLike(D,te,he){var ye=this.byteLength(),be=he||Math.max(1,ye);assert(ye<=be,"byte array longer than desired length"),assert(be>0,"Requested array length <= 0"),this.strip();var ve,we,_e="le"===te,Pe=new D(be),Ie=this.clone();if(_e){for(we=0;!Ie.isZero();we++)ve=Ie.andln(255),Ie.iushrn(8),Pe[we]=ve;for(;we<be;we++)Pe[we]=0}else{for(we=0;we<be-ye;we++)Pe[we]=0;for(we=0;!Ie.isZero();we++)ve=Ie.andln(255),Ie.iushrn(8),Pe[be-we-1]=ve}return Pe},Math.clz32?BN.prototype._countBits=function _countBits(D){return 32-Math.clz32(D)}:BN.prototype._countBits=function _countBits(D){var te=D,he=0;return te>=4096&&(he+=13,te>>>=13),te>=64&&(he+=7,te>>>=7),te>=8&&(he+=4,te>>>=4),te>=2&&(he+=2,te>>>=2),he+te},BN.prototype._zeroBits=function _zeroBits(D){if(0===D)return 26;var te=D,he=0;return 0==(8191&te)&&(he+=13,te>>>=13),0==(127&te)&&(he+=7,te>>>=7),0==(15&te)&&(he+=4,te>>>=4),0==(3&te)&&(he+=2,te>>>=2),0==(1&te)&&he++,he},BN.prototype.bitLength=function bitLength(){var D=this.words[this.length-1],te=this._countBits(D);return 26*(this.length-1)+te},BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;for(var D=0,te=0;te<this.length;te++){var he=this._zeroBits(this.words[te]);if(D+=he,26!==he)break}return D},BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)},BN.prototype.toTwos=function toTwos(D){return 0!==this.negative?this.abs().inotn(D).iaddn(1):this.clone()},BN.prototype.fromTwos=function fromTwos(D){return this.testn(D-1)?this.notn(D).iaddn(1).ineg():this.clone()},BN.prototype.isNeg=function isNeg(){return 0!==this.negative},BN.prototype.neg=function neg(){return this.clone().ineg()},BN.prototype.ineg=function ineg(){return this.isZero()||(this.negative^=1),this},BN.prototype.iuor=function iuor(D){for(;this.length<D.length;)this.words[this.length++]=0;for(var te=0;te<D.length;te++)this.words[te]=this.words[te]|D.words[te];return this.strip()},BN.prototype.ior=function ior(D){return assert(0==(this.negative|D.negative)),this.iuor(D)},BN.prototype.or=function or(D){return this.length>D.length?this.clone().ior(D):D.clone().ior(this)},BN.prototype.uor=function uor(D){return this.length>D.length?this.clone().iuor(D):D.clone().iuor(this)},BN.prototype.iuand=function iuand(D){var te;te=this.length>D.length?D:this;for(var he=0;he<te.length;he++)this.words[he]=this.words[he]&D.words[he];return this.length=te.length,this.strip()},BN.prototype.iand=function iand(D){return assert(0==(this.negative|D.negative)),this.iuand(D)},BN.prototype.and=function and(D){return this.length>D.length?this.clone().iand(D):D.clone().iand(this)},BN.prototype.uand=function uand(D){return this.length>D.length?this.clone().iuand(D):D.clone().iuand(this)},BN.prototype.iuxor=function iuxor(D){var te,he;this.length>D.length?(te=this,he=D):(te=D,he=this);for(var ye=0;ye<he.length;ye++)this.words[ye]=te.words[ye]^he.words[ye];if(this!==te)for(;ye<te.length;ye++)this.words[ye]=te.words[ye];return this.length=te.length,this.strip()},BN.prototype.ixor=function ixor(D){return assert(0==(this.negative|D.negative)),this.iuxor(D)},BN.prototype.xor=function xor(D){return this.length>D.length?this.clone().ixor(D):D.clone().ixor(this)},BN.prototype.uxor=function uxor(D){return this.length>D.length?this.clone().iuxor(D):D.clone().iuxor(this)},BN.prototype.inotn=function inotn(D){assert("number"==typeof D&&D>=0);var te=0|Math.ceil(D/26),he=D%26;this._expand(te),he>0&&te--;for(var ye=0;ye<te;ye++)this.words[ye]=67108863&~this.words[ye];return he>0&&(this.words[ye]=~this.words[ye]&67108863>>26-he),this.strip()},BN.prototype.notn=function notn(D){return this.clone().inotn(D)},BN.prototype.setn=function setn(D,te){assert("number"==typeof D&&D>=0);var he=D/26|0,ye=D%26;return this._expand(he+1),this.words[he]=te?this.words[he]|1<<ye:this.words[he]&~(1<<ye),this.strip()},BN.prototype.iadd=function iadd(D){var te,he,ye;if(0!==this.negative&&0===D.negative)return this.negative=0,te=this.isub(D),this.negative^=1,this._normSign();if(0===this.negative&&0!==D.negative)return D.negative=0,te=this.isub(D),D.negative=1,te._normSign();this.length>D.length?(he=this,ye=D):(he=D,ye=this);for(var be=0,ve=0;ve<ye.length;ve++)te=(0|he.words[ve])+(0|ye.words[ve])+be,this.words[ve]=67108863&te,be=te>>>26;for(;0!==be&&ve<he.length;ve++)te=(0|he.words[ve])+be,this.words[ve]=67108863&te,be=te>>>26;if(this.length=he.length,0!==be)this.words[this.length]=be,this.length++;else if(he!==this)for(;ve<he.length;ve++)this.words[ve]=he.words[ve];return this},BN.prototype.add=function add(D){var te;return 0!==D.negative&&0===this.negative?(D.negative=0,te=this.sub(D),D.negative^=1,te):0===D.negative&&0!==this.negative?(this.negative=0,te=D.sub(this),this.negative=1,te):this.length>D.length?this.clone().iadd(D):D.clone().iadd(this)},BN.prototype.isub=function isub(D){if(0!==D.negative){D.negative=0;var te=this.iadd(D);return D.negative=1,te._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(D),this.negative=1,this._normSign();var he,ye,be=this.cmp(D);if(0===be)return this.negative=0,this.length=1,this.words[0]=0,this;be>0?(he=this,ye=D):(he=D,ye=this);for(var ve=0,we=0;we<ye.length;we++)ve=(te=(0|he.words[we])-(0|ye.words[we])+ve)>>26,this.words[we]=67108863&te;for(;0!==ve&&we<he.length;we++)ve=(te=(0|he.words[we])+ve)>>26,this.words[we]=67108863&te;if(0===ve&&we<he.length&&he!==this)for(;we<he.length;we++)this.words[we]=he.words[we];return this.length=Math.max(this.length,we),he!==this&&(this.negative=1),this.strip()},BN.prototype.sub=function sub(D){return this.clone().isub(D)};var we=function comb10MulTo(D,te,he){var ye,be,ve,we=D.words,_e=te.words,Pe=he.words,Ie=0,Re=0|we[0],ke=8191&Re,Oe=Re>>>13,xe=0|we[1],Be=8191&xe,Fe=xe>>>13,De=0|we[2],Le=8191&De,Ue=De>>>13,qe=0|we[3],je=8191&qe,Je=qe>>>13,et=0|we[4],tt=8191&et,rt=et>>>13,nt=0|we[5],at=8191&nt,ut=nt>>>13,ht=0|we[6],yt=8191&ht,mt=ht>>>13,bt=0|we[7],wt=8191&bt,_t=bt>>>13,Tt=0|we[8],At=8191&Tt,Et=Tt>>>13,Pt=0|we[9],St=8191&Pt,Ct=Pt>>>13,kt=0|_e[0],Ot=8191&kt,xt=kt>>>13,Nt=0|_e[1],Bt=8191&Nt,Ft=Nt>>>13,Lt=0|_e[2],Ut=8191&Lt,$t=Lt>>>13,qt=0|_e[3],Gt=8191&qt,zt=qt>>>13,Wt=0|_e[4],Vt=8191&Wt,Kt=Wt>>>13,Jt=0|_e[5],Zt=8191&Jt,rr=Jt>>>13,cr=0|_e[6],dr=8191&cr,kr=cr>>>13,$r=0|_e[7],qr=8191&$r,jr=$r>>>13,Hr=0|_e[8],zr=8191&Hr,Vr=Hr>>>13,Jr=0|_e[9],Xr=8191&Jr,Qr=Jr>>>13;he.negative=D.negative^te.negative,he.length=19;var Zr=(Ie+(ye=Math.imul(ke,Ot))|0)+((8191&(be=(be=Math.imul(ke,xt))+Math.imul(Oe,Ot)|0))<<13)|0;Ie=((ve=Math.imul(Oe,xt))+(be>>>13)|0)+(Zr>>>26)|0,Zr&=67108863,ye=Math.imul(Be,Ot),be=(be=Math.imul(Be,xt))+Math.imul(Fe,Ot)|0,ve=Math.imul(Fe,xt);var en=(Ie+(ye=ye+Math.imul(ke,Bt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Ft)|0)+Math.imul(Oe,Bt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Ft)|0)+(be>>>13)|0)+(en>>>26)|0,en&=67108863,ye=Math.imul(Le,Ot),be=(be=Math.imul(Le,xt))+Math.imul(Ue,Ot)|0,ve=Math.imul(Ue,xt),ye=ye+Math.imul(Be,Bt)|0,be=(be=be+Math.imul(Be,Ft)|0)+Math.imul(Fe,Bt)|0,ve=ve+Math.imul(Fe,Ft)|0;var rn=(Ie+(ye=ye+Math.imul(ke,Ut)|0)|0)+((8191&(be=(be=be+Math.imul(ke,$t)|0)+Math.imul(Oe,Ut)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,$t)|0)+(be>>>13)|0)+(rn>>>26)|0,rn&=67108863,ye=Math.imul(je,Ot),be=(be=Math.imul(je,xt))+Math.imul(Je,Ot)|0,ve=Math.imul(Je,xt),ye=ye+Math.imul(Le,Bt)|0,be=(be=be+Math.imul(Le,Ft)|0)+Math.imul(Ue,Bt)|0,ve=ve+Math.imul(Ue,Ft)|0,ye=ye+Math.imul(Be,Ut)|0,be=(be=be+Math.imul(Be,$t)|0)+Math.imul(Fe,Ut)|0,ve=ve+Math.imul(Fe,$t)|0;var nn=(Ie+(ye=ye+Math.imul(ke,Gt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,zt)|0)+Math.imul(Oe,Gt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,zt)|0)+(be>>>13)|0)+(nn>>>26)|0,nn&=67108863,ye=Math.imul(tt,Ot),be=(be=Math.imul(tt,xt))+Math.imul(rt,Ot)|0,ve=Math.imul(rt,xt),ye=ye+Math.imul(je,Bt)|0,be=(be=be+Math.imul(je,Ft)|0)+Math.imul(Je,Bt)|0,ve=ve+Math.imul(Je,Ft)|0,ye=ye+Math.imul(Le,Ut)|0,be=(be=be+Math.imul(Le,$t)|0)+Math.imul(Ue,Ut)|0,ve=ve+Math.imul(Ue,$t)|0,ye=ye+Math.imul(Be,Gt)|0,be=(be=be+Math.imul(Be,zt)|0)+Math.imul(Fe,Gt)|0,ve=ve+Math.imul(Fe,zt)|0;var sn=(Ie+(ye=ye+Math.imul(ke,Vt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Kt)|0)+Math.imul(Oe,Vt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Kt)|0)+(be>>>13)|0)+(sn>>>26)|0,sn&=67108863,ye=Math.imul(at,Ot),be=(be=Math.imul(at,xt))+Math.imul(ut,Ot)|0,ve=Math.imul(ut,xt),ye=ye+Math.imul(tt,Bt)|0,be=(be=be+Math.imul(tt,Ft)|0)+Math.imul(rt,Bt)|0,ve=ve+Math.imul(rt,Ft)|0,ye=ye+Math.imul(je,Ut)|0,be=(be=be+Math.imul(je,$t)|0)+Math.imul(Je,Ut)|0,ve=ve+Math.imul(Je,$t)|0,ye=ye+Math.imul(Le,Gt)|0,be=(be=be+Math.imul(Le,zt)|0)+Math.imul(Ue,Gt)|0,ve=ve+Math.imul(Ue,zt)|0,ye=ye+Math.imul(Be,Vt)|0,be=(be=be+Math.imul(Be,Kt)|0)+Math.imul(Fe,Vt)|0,ve=ve+Math.imul(Fe,Kt)|0;var on=(Ie+(ye=ye+Math.imul(ke,Zt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,rr)|0)+Math.imul(Oe,Zt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,rr)|0)+(be>>>13)|0)+(on>>>26)|0,on&=67108863,ye=Math.imul(yt,Ot),be=(be=Math.imul(yt,xt))+Math.imul(mt,Ot)|0,ve=Math.imul(mt,xt),ye=ye+Math.imul(at,Bt)|0,be=(be=be+Math.imul(at,Ft)|0)+Math.imul(ut,Bt)|0,ve=ve+Math.imul(ut,Ft)|0,ye=ye+Math.imul(tt,Ut)|0,be=(be=be+Math.imul(tt,$t)|0)+Math.imul(rt,Ut)|0,ve=ve+Math.imul(rt,$t)|0,ye=ye+Math.imul(je,Gt)|0,be=(be=be+Math.imul(je,zt)|0)+Math.imul(Je,Gt)|0,ve=ve+Math.imul(Je,zt)|0,ye=ye+Math.imul(Le,Vt)|0,be=(be=be+Math.imul(Le,Kt)|0)+Math.imul(Ue,Vt)|0,ve=ve+Math.imul(Ue,Kt)|0,ye=ye+Math.imul(Be,Zt)|0,be=(be=be+Math.imul(Be,rr)|0)+Math.imul(Fe,Zt)|0,ve=ve+Math.imul(Fe,rr)|0;var yn=(Ie+(ye=ye+Math.imul(ke,dr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,kr)|0)+Math.imul(Oe,dr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,kr)|0)+(be>>>13)|0)+(yn>>>26)|0,yn&=67108863,ye=Math.imul(wt,Ot),be=(be=Math.imul(wt,xt))+Math.imul(_t,Ot)|0,ve=Math.imul(_t,xt),ye=ye+Math.imul(yt,Bt)|0,be=(be=be+Math.imul(yt,Ft)|0)+Math.imul(mt,Bt)|0,ve=ve+Math.imul(mt,Ft)|0,ye=ye+Math.imul(at,Ut)|0,be=(be=be+Math.imul(at,$t)|0)+Math.imul(ut,Ut)|0,ve=ve+Math.imul(ut,$t)|0,ye=ye+Math.imul(tt,Gt)|0,be=(be=be+Math.imul(tt,zt)|0)+Math.imul(rt,Gt)|0,ve=ve+Math.imul(rt,zt)|0,ye=ye+Math.imul(je,Vt)|0,be=(be=be+Math.imul(je,Kt)|0)+Math.imul(Je,Vt)|0,ve=ve+Math.imul(Je,Kt)|0,ye=ye+Math.imul(Le,Zt)|0,be=(be=be+Math.imul(Le,rr)|0)+Math.imul(Ue,Zt)|0,ve=ve+Math.imul(Ue,rr)|0,ye=ye+Math.imul(Be,dr)|0,be=(be=be+Math.imul(Be,kr)|0)+Math.imul(Fe,dr)|0,ve=ve+Math.imul(Fe,kr)|0;var bn=(Ie+(ye=ye+Math.imul(ke,qr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,jr)|0)+Math.imul(Oe,qr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,jr)|0)+(be>>>13)|0)+(bn>>>26)|0,bn&=67108863,ye=Math.imul(At,Ot),be=(be=Math.imul(At,xt))+Math.imul(Et,Ot)|0,ve=Math.imul(Et,xt),ye=ye+Math.imul(wt,Bt)|0,be=(be=be+Math.imul(wt,Ft)|0)+Math.imul(_t,Bt)|0,ve=ve+Math.imul(_t,Ft)|0,ye=ye+Math.imul(yt,Ut)|0,be=(be=be+Math.imul(yt,$t)|0)+Math.imul(mt,Ut)|0,ve=ve+Math.imul(mt,$t)|0,ye=ye+Math.imul(at,Gt)|0,be=(be=be+Math.imul(at,zt)|0)+Math.imul(ut,Gt)|0,ve=ve+Math.imul(ut,zt)|0,ye=ye+Math.imul(tt,Vt)|0,be=(be=be+Math.imul(tt,Kt)|0)+Math.imul(rt,Vt)|0,ve=ve+Math.imul(rt,Kt)|0,ye=ye+Math.imul(je,Zt)|0,be=(be=be+Math.imul(je,rr)|0)+Math.imul(Je,Zt)|0,ve=ve+Math.imul(Je,rr)|0,ye=ye+Math.imul(Le,dr)|0,be=(be=be+Math.imul(Le,kr)|0)+Math.imul(Ue,dr)|0,ve=ve+Math.imul(Ue,kr)|0,ye=ye+Math.imul(Be,qr)|0,be=(be=be+Math.imul(Be,jr)|0)+Math.imul(Fe,qr)|0,ve=ve+Math.imul(Fe,jr)|0;var wn=(Ie+(ye=ye+Math.imul(ke,zr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Vr)|0)+Math.imul(Oe,zr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Vr)|0)+(be>>>13)|0)+(wn>>>26)|0,wn&=67108863,ye=Math.imul(St,Ot),be=(be=Math.imul(St,xt))+Math.imul(Ct,Ot)|0,ve=Math.imul(Ct,xt),ye=ye+Math.imul(At,Bt)|0,be=(be=be+Math.imul(At,Ft)|0)+Math.imul(Et,Bt)|0,ve=ve+Math.imul(Et,Ft)|0,ye=ye+Math.imul(wt,Ut)|0,be=(be=be+Math.imul(wt,$t)|0)+Math.imul(_t,Ut)|0,ve=ve+Math.imul(_t,$t)|0,ye=ye+Math.imul(yt,Gt)|0,be=(be=be+Math.imul(yt,zt)|0)+Math.imul(mt,Gt)|0,ve=ve+Math.imul(mt,zt)|0,ye=ye+Math.imul(at,Vt)|0,be=(be=be+Math.imul(at,Kt)|0)+Math.imul(ut,Vt)|0,ve=ve+Math.imul(ut,Kt)|0,ye=ye+Math.imul(tt,Zt)|0,be=(be=be+Math.imul(tt,rr)|0)+Math.imul(rt,Zt)|0,ve=ve+Math.imul(rt,rr)|0,ye=ye+Math.imul(je,dr)|0,be=(be=be+Math.imul(je,kr)|0)+Math.imul(Je,dr)|0,ve=ve+Math.imul(Je,kr)|0,ye=ye+Math.imul(Le,qr)|0,be=(be=be+Math.imul(Le,jr)|0)+Math.imul(Ue,qr)|0,ve=ve+Math.imul(Ue,jr)|0,ye=ye+Math.imul(Be,zr)|0,be=(be=be+Math.imul(Be,Vr)|0)+Math.imul(Fe,zr)|0,ve=ve+Math.imul(Fe,Vr)|0;var _n=(Ie+(ye=ye+Math.imul(ke,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Qr)|0)+Math.imul(Oe,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Qr)|0)+(be>>>13)|0)+(_n>>>26)|0,_n&=67108863,ye=Math.imul(St,Bt),be=(be=Math.imul(St,Ft))+Math.imul(Ct,Bt)|0,ve=Math.imul(Ct,Ft),ye=ye+Math.imul(At,Ut)|0,be=(be=be+Math.imul(At,$t)|0)+Math.imul(Et,Ut)|0,ve=ve+Math.imul(Et,$t)|0,ye=ye+Math.imul(wt,Gt)|0,be=(be=be+Math.imul(wt,zt)|0)+Math.imul(_t,Gt)|0,ve=ve+Math.imul(_t,zt)|0,ye=ye+Math.imul(yt,Vt)|0,be=(be=be+Math.imul(yt,Kt)|0)+Math.imul(mt,Vt)|0,ve=ve+Math.imul(mt,Kt)|0,ye=ye+Math.imul(at,Zt)|0,be=(be=be+Math.imul(at,rr)|0)+Math.imul(ut,Zt)|0,ve=ve+Math.imul(ut,rr)|0,ye=ye+Math.imul(tt,dr)|0,be=(be=be+Math.imul(tt,kr)|0)+Math.imul(rt,dr)|0,ve=ve+Math.imul(rt,kr)|0,ye=ye+Math.imul(je,qr)|0,be=(be=be+Math.imul(je,jr)|0)+Math.imul(Je,qr)|0,ve=ve+Math.imul(Je,jr)|0,ye=ye+Math.imul(Le,zr)|0,be=(be=be+Math.imul(Le,Vr)|0)+Math.imul(Ue,zr)|0,ve=ve+Math.imul(Ue,Vr)|0;var Cn=(Ie+(ye=ye+Math.imul(Be,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(Be,Qr)|0)+Math.imul(Fe,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Fe,Qr)|0)+(be>>>13)|0)+(Cn>>>26)|0,Cn&=67108863,ye=Math.imul(St,Ut),be=(be=Math.imul(St,$t))+Math.imul(Ct,Ut)|0,ve=Math.imul(Ct,$t),ye=ye+Math.imul(At,Gt)|0,be=(be=be+Math.imul(At,zt)|0)+Math.imul(Et,Gt)|0,ve=ve+Math.imul(Et,zt)|0,ye=ye+Math.imul(wt,Vt)|0,be=(be=be+Math.imul(wt,Kt)|0)+Math.imul(_t,Vt)|0,ve=ve+Math.imul(_t,Kt)|0,ye=ye+Math.imul(yt,Zt)|0,be=(be=be+Math.imul(yt,rr)|0)+Math.imul(mt,Zt)|0,ve=ve+Math.imul(mt,rr)|0,ye=ye+Math.imul(at,dr)|0,be=(be=be+Math.imul(at,kr)|0)+Math.imul(ut,dr)|0,ve=ve+Math.imul(ut,kr)|0,ye=ye+Math.imul(tt,qr)|0,be=(be=be+Math.imul(tt,jr)|0)+Math.imul(rt,qr)|0,ve=ve+Math.imul(rt,jr)|0,ye=ye+Math.imul(je,zr)|0,be=(be=be+Math.imul(je,Vr)|0)+Math.imul(Je,zr)|0,ve=ve+Math.imul(Je,Vr)|0;var Rn=(Ie+(ye=ye+Math.imul(Le,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(Le,Qr)|0)+Math.imul(Ue,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Ue,Qr)|0)+(be>>>13)|0)+(Rn>>>26)|0,Rn&=67108863,ye=Math.imul(St,Gt),be=(be=Math.imul(St,zt))+Math.imul(Ct,Gt)|0,ve=Math.imul(Ct,zt),ye=ye+Math.imul(At,Vt)|0,be=(be=be+Math.imul(At,Kt)|0)+Math.imul(Et,Vt)|0,ve=ve+Math.imul(Et,Kt)|0,ye=ye+Math.imul(wt,Zt)|0,be=(be=be+Math.imul(wt,rr)|0)+Math.imul(_t,Zt)|0,ve=ve+Math.imul(_t,rr)|0,ye=ye+Math.imul(yt,dr)|0,be=(be=be+Math.imul(yt,kr)|0)+Math.imul(mt,dr)|0,ve=ve+Math.imul(mt,kr)|0,ye=ye+Math.imul(at,qr)|0,be=(be=be+Math.imul(at,jr)|0)+Math.imul(ut,qr)|0,ve=ve+Math.imul(ut,jr)|0,ye=ye+Math.imul(tt,zr)|0,be=(be=be+Math.imul(tt,Vr)|0)+Math.imul(rt,zr)|0,ve=ve+Math.imul(rt,Vr)|0;var kn=(Ie+(ye=ye+Math.imul(je,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(je,Qr)|0)+Math.imul(Je,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Je,Qr)|0)+(be>>>13)|0)+(kn>>>26)|0,kn&=67108863,ye=Math.imul(St,Vt),be=(be=Math.imul(St,Kt))+Math.imul(Ct,Vt)|0,ve=Math.imul(Ct,Kt),ye=ye+Math.imul(At,Zt)|0,be=(be=be+Math.imul(At,rr)|0)+Math.imul(Et,Zt)|0,ve=ve+Math.imul(Et,rr)|0,ye=ye+Math.imul(wt,dr)|0,be=(be=be+Math.imul(wt,kr)|0)+Math.imul(_t,dr)|0,ve=ve+Math.imul(_t,kr)|0,ye=ye+Math.imul(yt,qr)|0,be=(be=be+Math.imul(yt,jr)|0)+Math.imul(mt,qr)|0,ve=ve+Math.imul(mt,jr)|0,ye=ye+Math.imul(at,zr)|0,be=(be=be+Math.imul(at,Vr)|0)+Math.imul(ut,zr)|0,ve=ve+Math.imul(ut,Vr)|0;var Mn=(Ie+(ye=ye+Math.imul(tt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(tt,Qr)|0)+Math.imul(rt,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(rt,Qr)|0)+(be>>>13)|0)+(Mn>>>26)|0,Mn&=67108863,ye=Math.imul(St,Zt),be=(be=Math.imul(St,rr))+Math.imul(Ct,Zt)|0,ve=Math.imul(Ct,rr),ye=ye+Math.imul(At,dr)|0,be=(be=be+Math.imul(At,kr)|0)+Math.imul(Et,dr)|0,ve=ve+Math.imul(Et,kr)|0,ye=ye+Math.imul(wt,qr)|0,be=(be=be+Math.imul(wt,jr)|0)+Math.imul(_t,qr)|0,ve=ve+Math.imul(_t,jr)|0,ye=ye+Math.imul(yt,zr)|0,be=(be=be+Math.imul(yt,Vr)|0)+Math.imul(mt,zr)|0,ve=ve+Math.imul(mt,Vr)|0;var Fn=(Ie+(ye=ye+Math.imul(at,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(at,Qr)|0)+Math.imul(ut,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(ut,Qr)|0)+(be>>>13)|0)+(Fn>>>26)|0,Fn&=67108863,ye=Math.imul(St,dr),be=(be=Math.imul(St,kr))+Math.imul(Ct,dr)|0,ve=Math.imul(Ct,kr),ye=ye+Math.imul(At,qr)|0,be=(be=be+Math.imul(At,jr)|0)+Math.imul(Et,qr)|0,ve=ve+Math.imul(Et,jr)|0,ye=ye+Math.imul(wt,zr)|0,be=(be=be+Math.imul(wt,Vr)|0)+Math.imul(_t,zr)|0,ve=ve+Math.imul(_t,Vr)|0;var Dn=(Ie+(ye=ye+Math.imul(yt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(yt,Qr)|0)+Math.imul(mt,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(mt,Qr)|0)+(be>>>13)|0)+(Dn>>>26)|0,Dn&=67108863,ye=Math.imul(St,qr),be=(be=Math.imul(St,jr))+Math.imul(Ct,qr)|0,ve=Math.imul(Ct,jr),ye=ye+Math.imul(At,zr)|0,be=(be=be+Math.imul(At,Vr)|0)+Math.imul(Et,zr)|0,ve=ve+Math.imul(Et,Vr)|0;var Ln=(Ie+(ye=ye+Math.imul(wt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(wt,Qr)|0)+Math.imul(_t,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(_t,Qr)|0)+(be>>>13)|0)+(Ln>>>26)|0,Ln&=67108863,ye=Math.imul(St,zr),be=(be=Math.imul(St,Vr))+Math.imul(Ct,zr)|0,ve=Math.imul(Ct,Vr);var Un=(Ie+(ye=ye+Math.imul(At,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(At,Qr)|0)+Math.imul(Et,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Et,Qr)|0)+(be>>>13)|0)+(Un>>>26)|0,Un&=67108863;var $n=(Ie+(ye=Math.imul(St,Xr))|0)+((8191&(be=(be=Math.imul(St,Qr))+Math.imul(Ct,Xr)|0))<<13)|0;return Ie=((ve=Math.imul(Ct,Qr))+(be>>>13)|0)+($n>>>26)|0,$n&=67108863,Pe[0]=Zr,Pe[1]=en,Pe[2]=rn,Pe[3]=nn,Pe[4]=sn,Pe[5]=on,Pe[6]=yn,Pe[7]=bn,Pe[8]=wn,Pe[9]=_n,Pe[10]=Cn,Pe[11]=Rn,Pe[12]=kn,Pe[13]=Mn,Pe[14]=Fn,Pe[15]=Dn,Pe[16]=Ln,Pe[17]=Un,Pe[18]=$n,0!==Ie&&(Pe[19]=Ie,he.length++),he};function jumboMulTo(D,te,he){return(new FFTM).mulp(D,te,he)}function FFTM(D,te){this.x=D,this.y=te}Math.imul||(we=smallMulTo),BN.prototype.mulTo=function mulTo(D,te){var he,ye=this.length+D.length;return he=10===this.length&&10===D.length?we(this,D,te):ye<63?smallMulTo(this,D,te):ye<1024?function bigMulTo(D,te,he){he.negative=te.negative^D.negative,he.length=D.length+te.length;for(var ye=0,be=0,ve=0;ve<he.length-1;ve++){var we=be;be=0;for(var _e=67108863&ye,Pe=Math.min(ve,te.length-1),Ie=Math.max(0,ve-D.length+1);Ie<=Pe;Ie++){var Re=ve-Ie,ke=(0|D.words[Re])*(0|te.words[Ie]),Oe=67108863&ke;_e=67108863&(Oe=Oe+_e|0),be+=(we=(we=we+(ke/67108864|0)|0)+(Oe>>>26)|0)>>>26,we&=67108863}he.words[ve]=_e,ye=we,we=be}return 0!==ye?he.words[ve]=ye:he.length--,he.strip()}(this,D,te):jumboMulTo(this,D,te),he},FFTM.prototype.makeRBT=function makeRBT(D){for(var te=new Array(D),he=BN.prototype._countBits(D)-1,ye=0;ye<D;ye++)te[ye]=this.revBin(ye,he,D);return te},FFTM.prototype.revBin=function revBin(D,te,he){if(0===D||D===he-1)return D;for(var ye=0,be=0;be<te;be++)ye|=(1&D)<<te-be-1,D>>=1;return ye},FFTM.prototype.permute=function permute(D,te,he,ye,be,ve){for(var we=0;we<ve;we++)ye[we]=te[D[we]],be[we]=he[D[we]]},FFTM.prototype.transform=function transform(D,te,he,ye,be,ve){this.permute(ve,D,te,he,ye,be);for(var we=1;we<be;we<<=1)for(var _e=we<<1,Pe=Math.cos(2*Math.PI/_e),Ie=Math.sin(2*Math.PI/_e),Re=0;Re<be;Re+=_e)for(var ke=Pe,Oe=Ie,xe=0;xe<we;xe++){var Be=he[Re+xe],Fe=ye[Re+xe],De=he[Re+xe+we],Le=ye[Re+xe+we],Ue=ke*De-Oe*Le;Le=ke*Le+Oe*De,De=Ue,he[Re+xe]=Be+De,ye[Re+xe]=Fe+Le,he[Re+xe+we]=Be-De,ye[Re+xe+we]=Fe-Le,xe!==_e&&(Ue=Pe*ke-Ie*Oe,Oe=Pe*Oe+Ie*ke,ke=Ue)}},FFTM.prototype.guessLen13b=function guessLen13b(D,te){var he=1|Math.max(te,D),ye=1&he,be=0;for(he=he/2|0;he;he>>>=1)be++;return 1<<be+1+ye},FFTM.prototype.conjugate=function conjugate(D,te,he){if(!(he<=1))for(var ye=0;ye<he/2;ye++){var be=D[ye];D[ye]=D[he-ye-1],D[he-ye-1]=be,be=te[ye],te[ye]=-te[he-ye-1],te[he-ye-1]=-be}},FFTM.prototype.normalize13b=function normalize13b(D,te){for(var he=0,ye=0;ye<te/2;ye++){var be=8192*Math.round(D[2*ye+1]/te)+Math.round(D[2*ye]/te)+he;D[ye]=67108863&be,he=be<67108864?0:be/67108864|0}return D},FFTM.prototype.convert13b=function convert13b(D,te,he,ye){for(var be=0,ve=0;ve<te;ve++)be+=0|D[ve],he[2*ve]=8191&be,be>>>=13,he[2*ve+1]=8191&be,be>>>=13;for(ve=2*te;ve<ye;++ve)he[ve]=0;assert(0===be),assert(0==(-8192&be))},FFTM.prototype.stub=function stub(D){for(var te=new Array(D),he=0;he<D;he++)te[he]=0;return te},FFTM.prototype.mulp=function mulp(D,te,he){var ye=2*this.guessLen13b(D.length,te.length),be=this.makeRBT(ye),ve=this.stub(ye),we=new Array(ye),_e=new Array(ye),Pe=new Array(ye),Ie=new Array(ye),Re=new Array(ye),ke=new Array(ye),Oe=he.words;Oe.length=ye,this.convert13b(D.words,D.length,we,ye),this.convert13b(te.words,te.length,Ie,ye),this.transform(we,ve,_e,Pe,ye,be),this.transform(Ie,ve,Re,ke,ye,be);for(var xe=0;xe<ye;xe++){var Be=_e[xe]*Re[xe]-Pe[xe]*ke[xe];Pe[xe]=_e[xe]*ke[xe]+Pe[xe]*Re[xe],_e[xe]=Be}return this.conjugate(_e,Pe,ye),this.transform(_e,Pe,Oe,ve,ye,be),this.conjugate(Oe,ve,ye),this.normalize13b(Oe,ye),he.negative=D.negative^te.negative,he.length=D.length+te.length,he.strip()},BN.prototype.mul=function mul(D){var te=new BN(null);return te.words=new Array(this.length+D.length),this.mulTo(D,te)},BN.prototype.mulf=function mulf(D){var te=new BN(null);return te.words=new Array(this.length+D.length),jumboMulTo(this,D,te)},BN.prototype.imul=function imul(D){return this.clone().mulTo(D,this)},BN.prototype.imuln=function imuln(D){assert("number"==typeof D),assert(D<67108864);for(var te=0,he=0;he<this.length;he++){var ye=(0|this.words[he])*D,be=(67108863&ye)+(67108863&te);te>>=26,te+=ye/67108864|0,te+=be>>>26,this.words[he]=67108863&be}return 0!==te&&(this.words[he]=te,this.length++),this},BN.prototype.muln=function muln(D){return this.clone().imuln(D)},BN.prototype.sqr=function sqr(){return this.mul(this)},BN.prototype.isqr=function isqr(){return this.imul(this.clone())},BN.prototype.pow=function pow(D){var te=function toBitArray(D){for(var te=new Array(D.bitLength()),he=0;he<te.length;he++){var ye=he/26|0,be=he%26;te[he]=(D.words[ye]&1<<be)>>>be}return te}(D);if(0===te.length)return new BN(1);for(var he=this,ye=0;ye<te.length&&0===te[ye];ye++,he=he.sqr());if(++ye<te.length)for(var be=he.sqr();ye<te.length;ye++,be=be.sqr())0!==te[ye]&&(he=he.mul(be));return he},BN.prototype.iushln=function iushln(D){assert("number"==typeof D&&D>=0);var te,he=D%26,ye=(D-he)/26,be=67108863>>>26-he<<26-he;if(0!==he){var ve=0;for(te=0;te<this.length;te++){var we=this.words[te]&be,_e=(0|this.words[te])-we<<he;this.words[te]=_e|ve,ve=we>>>26-he}ve&&(this.words[te]=ve,this.length++)}if(0!==ye){for(te=this.length-1;te>=0;te--)this.words[te+ye]=this.words[te];for(te=0;te<ye;te++)this.words[te]=0;this.length+=ye}return this.strip()},BN.prototype.ishln=function ishln(D){return assert(0===this.negative),this.iushln(D)},BN.prototype.iushrn=function iushrn(D,te,he){var ye;assert("number"==typeof D&&D>=0),ye=te?(te-te%26)/26:0;var be=D%26,ve=Math.min((D-be)/26,this.length),we=67108863^67108863>>>be<<be,_e=he;if(ye-=ve,ye=Math.max(0,ye),_e){for(var Pe=0;Pe<ve;Pe++)_e.words[Pe]=this.words[Pe];_e.length=ve}if(0===ve);else if(this.length>ve)for(this.length-=ve,Pe=0;Pe<this.length;Pe++)this.words[Pe]=this.words[Pe+ve];else this.words[0]=0,this.length=1;var Ie=0;for(Pe=this.length-1;Pe>=0&&(0!==Ie||Pe>=ye);Pe--){var Re=0|this.words[Pe];this.words[Pe]=Ie<<26-be|Re>>>be,Ie=Re&we}return _e&&0!==Ie&&(_e.words[_e.length++]=Ie),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},BN.prototype.ishrn=function ishrn(D,te,he){return assert(0===this.negative),this.iushrn(D,te,he)},BN.prototype.shln=function shln(D){return this.clone().ishln(D)},BN.prototype.ushln=function ushln(D){return this.clone().iushln(D)},BN.prototype.shrn=function shrn(D){return this.clone().ishrn(D)},BN.prototype.ushrn=function ushrn(D){return this.clone().iushrn(D)},BN.prototype.testn=function testn(D){assert("number"==typeof D&&D>=0);var te=D%26,he=(D-te)/26,ye=1<<te;return!(this.length<=he)&&!!(this.words[he]&ye)},BN.prototype.imaskn=function imaskn(D){assert("number"==typeof D&&D>=0);var te=D%26,he=(D-te)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=he)return this;if(0!==te&&he++,this.length=Math.min(he,this.length),0!==te){var ye=67108863^67108863>>>te<<te;this.words[this.length-1]&=ye}return this.strip()},BN.prototype.maskn=function maskn(D){return this.clone().imaskn(D)},BN.prototype.iaddn=function iaddn(D){return assert("number"==typeof D),assert(D<67108864),D<0?this.isubn(-D):0!==this.negative?1===this.length&&(0|this.words[0])<D?(this.words[0]=D-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(D),this.negative=1,this):this._iaddn(D)},BN.prototype._iaddn=function _iaddn(D){this.words[0]+=D;for(var te=0;te<this.length&&this.words[te]>=67108864;te++)this.words[te]-=67108864,te===this.length-1?this.words[te+1]=1:this.words[te+1]++;return this.length=Math.max(this.length,te+1),this},BN.prototype.isubn=function isubn(D){if(assert("number"==typeof D),assert(D<67108864),D<0)return this.iaddn(-D);if(0!==this.negative)return this.negative=0,this.iaddn(D),this.negative=1,this;if(this.words[0]-=D,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var te=0;te<this.length&&this.words[te]<0;te++)this.words[te]+=67108864,this.words[te+1]-=1;return this.strip()},BN.prototype.addn=function addn(D){return this.clone().iaddn(D)},BN.prototype.subn=function subn(D){return this.clone().isubn(D)},BN.prototype.iabs=function iabs(){return this.negative=0,this},BN.prototype.abs=function abs(){return this.clone().iabs()},BN.prototype._ishlnsubmul=function _ishlnsubmul(D,te,he){var ye,be,ve=D.length+he;this._expand(ve);var we=0;for(ye=0;ye<D.length;ye++){be=(0|this.words[ye+he])+we;var _e=(0|D.words[ye])*te;we=((be-=67108863&_e)>>26)-(_e/67108864|0),this.words[ye+he]=67108863&be}for(;ye<this.length-he;ye++)we=(be=(0|this.words[ye+he])+we)>>26,this.words[ye+he]=67108863&be;if(0===we)return this.strip();for(assert(-1===we),we=0,ye=0;ye<this.length;ye++)we=(be=-(0|this.words[ye])+we)>>26,this.words[ye]=67108863&be;return this.negative=1,this.strip()},BN.prototype._wordDiv=function _wordDiv(D,te){var he=(this.length,D.length),ye=this.clone(),be=D,ve=0|be.words[be.length-1];0!==(he=26-this._countBits(ve))&&(be=be.ushln(he),ye.iushln(he),ve=0|be.words[be.length-1]);var we,_e=ye.length-be.length;if("mod"!==te){(we=new BN(null)).length=_e+1,we.words=new Array(we.length);for(var Pe=0;Pe<we.length;Pe++)we.words[Pe]=0}var Ie=ye.clone()._ishlnsubmul(be,1,_e);0===Ie.negative&&(ye=Ie,we&&(we.words[_e]=1));for(var Re=_e-1;Re>=0;Re--){var ke=67108864*(0|ye.words[be.length+Re])+(0|ye.words[be.length+Re-1]);for(ke=Math.min(ke/ve|0,67108863),ye._ishlnsubmul(be,ke,Re);0!==ye.negative;)ke--,ye.negative=0,ye._ishlnsubmul(be,1,Re),ye.isZero()||(ye.negative^=1);we&&(we.words[Re]=ke)}return we&&we.strip(),ye.strip(),"div"!==te&&0!==he&&ye.iushrn(he),{div:we||null,mod:ye}},BN.prototype.divmod=function divmod(D,te,he){return assert(!D.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===D.negative?(ve=this.neg().divmod(D,te),"mod"!==te&&(ye=ve.div.neg()),"div"!==te&&(be=ve.mod.neg(),he&&0!==be.negative&&be.iadd(D)),{div:ye,mod:be}):0===this.negative&&0!==D.negative?(ve=this.divmod(D.neg(),te),"mod"!==te&&(ye=ve.div.neg()),{div:ye,mod:ve.mod}):0!=(this.negative&D.negative)?(ve=this.neg().divmod(D.neg(),te),"div"!==te&&(be=ve.mod.neg(),he&&0!==be.negative&&be.isub(D)),{div:ve.div,mod:be}):D.length>this.length||this.cmp(D)<0?{div:new BN(0),mod:this}:1===D.length?"div"===te?{div:this.divn(D.words[0]),mod:null}:"mod"===te?{div:null,mod:new BN(this.modn(D.words[0]))}:{div:this.divn(D.words[0]),mod:new BN(this.modn(D.words[0]))}:this._wordDiv(D,te);var ye,be,ve},BN.prototype.div=function div(D){return this.divmod(D,"div",!1).div},BN.prototype.mod=function mod(D){return this.divmod(D,"mod",!1).mod},BN.prototype.umod=function umod(D){return this.divmod(D,"mod",!0).mod},BN.prototype.divRound=function divRound(D){var te=this.divmod(D);if(te.mod.isZero())return te.div;var he=0!==te.div.negative?te.mod.isub(D):te.mod,ye=D.ushrn(1),be=D.andln(1),ve=he.cmp(ye);return ve<0||1===be&&0===ve?te.div:0!==te.div.negative?te.div.isubn(1):te.div.iaddn(1)},BN.prototype.modn=function modn(D){assert(D<=67108863);for(var te=(1<<26)%D,he=0,ye=this.length-1;ye>=0;ye--)he=(te*he+(0|this.words[ye]))%D;return he},BN.prototype.idivn=function idivn(D){assert(D<=67108863);for(var te=0,he=this.length-1;he>=0;he--){var ye=(0|this.words[he])+67108864*te;this.words[he]=ye/D|0,te=ye%D}return this.strip()},BN.prototype.divn=function divn(D){return this.clone().idivn(D)},BN.prototype.egcd=function egcd(D){assert(0===D.negative),assert(!D.isZero());var te=this,he=D.clone();te=0!==te.negative?te.umod(D):te.clone();for(var ye=new BN(1),be=new BN(0),ve=new BN(0),we=new BN(1),_e=0;te.isEven()&&he.isEven();)te.iushrn(1),he.iushrn(1),++_e;for(var Pe=he.clone(),Ie=te.clone();!te.isZero();){for(var Re=0,ke=1;0==(te.words[0]&ke)&&Re<26;++Re,ke<<=1);if(Re>0)for(te.iushrn(Re);Re-- >0;)(ye.isOdd()||be.isOdd())&&(ye.iadd(Pe),be.isub(Ie)),ye.iushrn(1),be.iushrn(1);for(var Oe=0,xe=1;0==(he.words[0]&xe)&&Oe<26;++Oe,xe<<=1);if(Oe>0)for(he.iushrn(Oe);Oe-- >0;)(ve.isOdd()||we.isOdd())&&(ve.iadd(Pe),we.isub(Ie)),ve.iushrn(1),we.iushrn(1);te.cmp(he)>=0?(te.isub(he),ye.isub(ve),be.isub(we)):(he.isub(te),ve.isub(ye),we.isub(be))}return{a:ve,b:we,gcd:he.iushln(_e)}},BN.prototype._invmp=function _invmp(D){assert(0===D.negative),assert(!D.isZero());var te=this,he=D.clone();te=0!==te.negative?te.umod(D):te.clone();for(var ye,be=new BN(1),ve=new BN(0),we=he.clone();te.cmpn(1)>0&&he.cmpn(1)>0;){for(var _e=0,Pe=1;0==(te.words[0]&Pe)&&_e<26;++_e,Pe<<=1);if(_e>0)for(te.iushrn(_e);_e-- >0;)be.isOdd()&&be.iadd(we),be.iushrn(1);for(var Ie=0,Re=1;0==(he.words[0]&Re)&&Ie<26;++Ie,Re<<=1);if(Ie>0)for(he.iushrn(Ie);Ie-- >0;)ve.isOdd()&&ve.iadd(we),ve.iushrn(1);te.cmp(he)>=0?(te.isub(he),be.isub(ve)):(he.isub(te),ve.isub(be))}return(ye=0===te.cmpn(1)?be:ve).cmpn(0)<0&&ye.iadd(D),ye},BN.prototype.gcd=function gcd(D){if(this.isZero())return D.abs();if(D.isZero())return this.abs();var te=this.clone(),he=D.clone();te.negative=0,he.negative=0;for(var ye=0;te.isEven()&&he.isEven();ye++)te.iushrn(1),he.iushrn(1);for(;;){for(;te.isEven();)te.iushrn(1);for(;he.isEven();)he.iushrn(1);var be=te.cmp(he);if(be<0){var ve=te;te=he,he=ve}else if(0===be||0===he.cmpn(1))break;te.isub(he)}return he.iushln(ye)},BN.prototype.invm=function invm(D){return this.egcd(D).a.umod(D)},BN.prototype.isEven=function isEven(){return 0==(1&this.words[0])},BN.prototype.isOdd=function isOdd(){return 1==(1&this.words[0])},BN.prototype.andln=function andln(D){return this.words[0]&D},BN.prototype.bincn=function bincn(D){assert("number"==typeof D);var te=D%26,he=(D-te)/26,ye=1<<te;if(this.length<=he)return this._expand(he+1),this.words[he]|=ye,this;for(var be=ye,ve=he;0!==be&&ve<this.length;ve++){var we=0|this.words[ve];be=(we+=be)>>>26,we&=67108863,this.words[ve]=we}return 0!==be&&(this.words[ve]=be,this.length++),this},BN.prototype.isZero=function isZero(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function cmpn(D){var te,he=D<0;if(0!==this.negative&&!he)return-1;if(0===this.negative&&he)return 1;if(this.strip(),this.length>1)te=1;else{he&&(D=-D),assert(D<=67108863,"Number is too big");var ye=0|this.words[0];te=ye===D?0:ye<D?-1:1}return 0!==this.negative?0|-te:te},BN.prototype.cmp=function cmp(D){if(0!==this.negative&&0===D.negative)return-1;if(0===this.negative&&0!==D.negative)return 1;var te=this.ucmp(D);return 0!==this.negative?0|-te:te},BN.prototype.ucmp=function ucmp(D){if(this.length>D.length)return 1;if(this.length<D.length)return-1;for(var te=0,he=this.length-1;he>=0;he--){var ye=0|this.words[he],be=0|D.words[he];if(ye!==be){ye<be?te=-1:ye>be&&(te=1);break}}return te},BN.prototype.gtn=function gtn(D){return 1===this.cmpn(D)},BN.prototype.gt=function gt(D){return 1===this.cmp(D)},BN.prototype.gten=function gten(D){return this.cmpn(D)>=0},BN.prototype.gte=function gte(D){return this.cmp(D)>=0},BN.prototype.ltn=function ltn(D){return-1===this.cmpn(D)},BN.prototype.lt=function lt(D){return-1===this.cmp(D)},BN.prototype.lten=function lten(D){return this.cmpn(D)<=0},BN.prototype.lte=function lte(D){return this.cmp(D)<=0},BN.prototype.eqn=function eqn(D){return 0===this.cmpn(D)},BN.prototype.eq=function eq(D){return 0===this.cmp(D)},BN.red=function red(D){return new Red(D)},BN.prototype.toRed=function toRed(D){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),D.convertTo(this)._forceRed(D)},BN.prototype.fromRed=function fromRed(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function _forceRed(D){return this.red=D,this},BN.prototype.forceRed=function forceRed(D){return assert(!this.red,"Already a number in reduction context"),this._forceRed(D)},BN.prototype.redAdd=function redAdd(D){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,D)},BN.prototype.redIAdd=function redIAdd(D){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,D)},BN.prototype.redSub=function redSub(D){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,D)},BN.prototype.redISub=function redISub(D){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,D)},BN.prototype.redShl=function redShl(D){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,D)},BN.prototype.redMul=function redMul(D){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,D),this.red.mul(this,D)},BN.prototype.redIMul=function redIMul(D){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,D),this.red.imul(this,D)},BN.prototype.redSqr=function redSqr(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function redISqr(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function redSqrt(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function redInvm(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function redNeg(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function redPow(D){return assert(this.red&&!D.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,D)};var _e={k256:null,p224:null,p192:null,p25519:null};function MPrime(D,te){this.name=D,this.p=new BN(te,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(D){if("string"==typeof D){var te=BN._prime(D);this.m=te.p,this.prime=te}else assert(D.gtn(1),"modulus must be greater than 1"),this.m=D,this.prime=null}function Mont(D){Red.call(this,D),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function _tmp(){var D=new BN(null);return D.words=new Array(Math.ceil(this.n/13)),D},MPrime.prototype.ireduce=function ireduce(D){var te,he=D;do{this.split(he,this.tmp),te=(he=(he=this.imulK(he)).iadd(this.tmp)).bitLength()}while(te>this.n);var ye=te<this.n?-1:he.ucmp(this.p);return 0===ye?(he.words[0]=0,he.length=1):ye>0?he.isub(this.p):void 0!==he.strip?he.strip():he._strip(),he},MPrime.prototype.split=function split(D,te){D.iushrn(this.n,0,te)},MPrime.prototype.imulK=function imulK(D){return D.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function split(D,te){for(var he=4194303,ye=Math.min(D.length,9),be=0;be<ye;be++)te.words[be]=D.words[be];if(te.length=ye,D.length<=9)return D.words[0]=0,void(D.length=1);var ve=D.words[9];for(te.words[te.length++]=ve&he,be=10;be<D.length;be++){var we=0|D.words[be];D.words[be-10]=(we&he)<<4|ve>>>22,ve=we}ve>>>=22,D.words[be-10]=ve,0===ve&&D.length>10?D.length-=10:D.length-=9},K256.prototype.imulK=function imulK(D){D.words[D.length]=0,D.words[D.length+1]=0,D.length+=2;for(var te=0,he=0;he<D.length;he++){var ye=0|D.words[he];te+=977*ye,D.words[he]=67108863&te,te=64*ye+(te/67108864|0)}return 0===D.words[D.length-1]&&(D.length--,0===D.words[D.length-1]&&D.length--),D},inherits(P224,MPrime),inherits(P192,MPrime),inherits(P25519,MPrime),P25519.prototype.imulK=function imulK(D){for(var te=0,he=0;he<D.length;he++){var ye=19*(0|D.words[he])+te,be=67108863&ye;ye>>>=26,D.words[he]=be,te=ye}return 0!==te&&(D.words[D.length++]=te),D},BN._prime=function prime(D){if(_e[D])return _e[D];var prime;if("k256"===D)prime=new K256;else if("p224"===D)prime=new P224;else if("p192"===D)prime=new P192;else{if("p25519"!==D)throw new Error("Unknown prime "+D);prime=new P25519}return _e[D]=prime,prime},Red.prototype._verify1=function _verify1(D){assert(0===D.negative,"red works only with positives"),assert(D.red,"red works only with red numbers")},Red.prototype._verify2=function _verify2(D,te){assert(0==(D.negative|te.negative),"red works only with positives"),assert(D.red&&D.red===te.red,"red works only with red numbers")},Red.prototype.imod=function imod(D){return this.prime?this.prime.ireduce(D)._forceRed(this):D.umod(this.m)._forceRed(this)},Red.prototype.neg=function neg(D){return D.isZero()?D.clone():this.m.sub(D)._forceRed(this)},Red.prototype.add=function add(D,te){this._verify2(D,te);var he=D.add(te);return he.cmp(this.m)>=0&&he.isub(this.m),he._forceRed(this)},Red.prototype.iadd=function iadd(D,te){this._verify2(D,te);var he=D.iadd(te);return he.cmp(this.m)>=0&&he.isub(this.m),he},Red.prototype.sub=function sub(D,te){this._verify2(D,te);var he=D.sub(te);return he.cmpn(0)<0&&he.iadd(this.m),he._forceRed(this)},Red.prototype.isub=function isub(D,te){this._verify2(D,te);var he=D.isub(te);return he.cmpn(0)<0&&he.iadd(this.m),he},Red.prototype.shl=function shl(D,te){return this._verify1(D),this.imod(D.ushln(te))},Red.prototype.imul=function imul(D,te){return this._verify2(D,te),this.imod(D.imul(te))},Red.prototype.mul=function mul(D,te){return this._verify2(D,te),this.imod(D.mul(te))},Red.prototype.isqr=function isqr(D){return this.imul(D,D.clone())},Red.prototype.sqr=function sqr(D){return this.mul(D,D)},Red.prototype.sqrt=function sqrt(D){if(D.isZero())return D.clone();var te=this.m.andln(3);if(assert(te%2==1),3===te){var he=this.m.add(new BN(1)).iushrn(2);return this.pow(D,he)}for(var ye=this.m.subn(1),be=0;!ye.isZero()&&0===ye.andln(1);)be++,ye.iushrn(1);assert(!ye.isZero());var ve=new BN(1).toRed(this),we=ve.redNeg(),_e=this.m.subn(1).iushrn(1),Pe=this.m.bitLength();for(Pe=new BN(2*Pe*Pe).toRed(this);0!==this.pow(Pe,_e).cmp(we);)Pe.redIAdd(we);for(var Ie=this.pow(Pe,ye),Re=this.pow(D,ye.addn(1).iushrn(1)),ke=this.pow(D,ye),Oe=be;0!==ke.cmp(ve);){for(var xe=ke,Be=0;0!==xe.cmp(ve);Be++)xe=xe.redSqr();assert(Be<Oe);var Fe=this.pow(Ie,new BN(1).iushln(Oe-Be-1));Re=Re.redMul(Fe),Ie=Fe.redSqr(),ke=ke.redMul(Ie),Oe=Be}return Re},Red.prototype.invm=function invm(D){var te=D._invmp(this.m);return 0!==te.negative?(te.negative=0,this.imod(te).redNeg()):this.imod(te)},Red.prototype.pow=function pow(D,te){if(te.isZero())return new BN(1).toRed(this);if(0===te.cmpn(1))return D.clone();var he=new Array(16);he[0]=new BN(1).toRed(this),he[1]=D;for(var ye=2;ye<he.length;ye++)he[ye]=this.mul(he[ye-1],D);var be=he[0],ve=0,we=0,_e=te.bitLength()%26;for(0===_e&&(_e=26),ye=te.length-1;ye>=0;ye--){for(var Pe=te.words[ye],Ie=_e-1;Ie>=0;Ie--){var Re=Pe>>Ie&1;be!==he[0]&&(be=this.sqr(be)),0!==Re||0!==ve?(ve<<=1,ve|=Re,(4===++we||0===ye&&0===Ie)&&(be=this.mul(be,he[ve]),we=0,ve=0)):we=0}_e=26}return be},Red.prototype.convertTo=function convertTo(D){var te=D.umod(this.m);return te===D?te.clone():te},Red.prototype.convertFrom=function convertFrom(D){var te=D.clone();return te.red=null,te},BN.mont=function mont(D){return new Mont(D)},inherits(Mont,Red),Mont.prototype.convertTo=function convertTo(D){return this.imod(D.ushln(this.shift))},Mont.prototype.convertFrom=function convertFrom(D){var te=this.imod(D.mul(this.rinv));return te.red=null,te},Mont.prototype.imul=function imul(D,te){if(D.isZero()||te.isZero())return D.words[0]=0,D.length=1,D;var he=D.imul(te),ye=he.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),be=he.isub(ye).iushrn(this.shift),ve=be;return be.cmp(this.m)>=0?ve=be.isub(this.m):be.cmpn(0)<0&&(ve=be.iadd(this.m)),ve._forceRed(this)},Mont.prototype.mul=function mul(D,te){if(D.isZero()||te.isZero())return new BN(0)._forceRed(this);var he=D.mul(te),ye=he.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),be=he.isub(ye).iushrn(this.shift),ve=be;return be.cmp(this.m)>=0?ve=be.isub(this.m):be.cmpn(0)<0&&(ve=be.iadd(this.m)),ve._forceRed(this)},Mont.prototype.invm=function invm(D){return this.imod(D._invmp(this.m).mul(this.r2))._forceRed(this)}}(D,rn)}(Hp);var zp=Hp.exports;!function(D){var te=D,he=zp,ye=oc,be=wf;te.assert=ye,te.toArray=be.toArray,te.zero2=be.zero2,te.toHex=be.toHex,te.encode=be.encode,te.getNAF=function getNAF(D,te,he){var ye=new Array(Math.max(D.bitLength(),he)+1);ye.fill(0);for(var be=1<<te+1,ve=D.clone(),we=0;we<ye.length;we++){var _e,Pe=ve.andln(be-1);ve.isOdd()?(_e=Pe>(be>>1)-1?(be>>1)-Pe:Pe,ve.isubn(_e)):_e=0,ye[we]=_e,ve.iushrn(1)}return ye},te.getJSF=function getJSF(D,te){var he=[[],[]];D=D.clone(),te=te.clone();for(var ye,be=0,ve=0;D.cmpn(-be)>0||te.cmpn(-ve)>0;){var we,_e,Pe=D.andln(3)+be&3,Ie=te.andln(3)+ve&3;3===Pe&&(Pe=-1),3===Ie&&(Ie=-1),we=0==(1&Pe)?0:3!==(ye=D.andln(7)+be&7)&&5!==ye||2!==Ie?Pe:-Pe,he[0].push(we),_e=0==(1&Ie)?0:3!==(ye=te.andln(7)+ve&7)&&5!==ye||2!==Pe?Ie:-Ie,he[1].push(_e),2*be===we+1&&(be=1-be),2*ve===_e+1&&(ve=1-ve),D.iushrn(1),te.iushrn(1)}return he},te.cachedProperty=function cachedProperty(D,te,he){var ye="_"+te;D.prototype[te]=function cachedProperty(){return void 0!==this[ye]?this[ye]:this[ye]=he.call(this)}},te.parseBytes=function parseBytes(D){return"string"==typeof D?te.toArray(D,"hex"):D},te.intFromLE=function intFromLE(D){return new he(D,"hex","le")}}(jp);var Wp={},Vp=zp,Kp=jp,Jp=Kp.getNAF,Xp=Kp.getJSF,Qp=Kp.assert;function BaseCurve(D,te){this.type=D,this.p=new Vp(te.p,16),this.red=te.prime?Vp.red(te.prime):Vp.mont(this.p),this.zero=new Vp(0).toRed(this.red),this.one=new Vp(1).toRed(this.red),this.two=new Vp(2).toRed(this.red),this.n=te.n&&new Vp(te.n,16),this.g=te.g&&this.pointFromJSON(te.g,te.gRed),this._wnafT1=new Array(4),this._wnafT2=new Array(4),this._wnafT3=new Array(4),this._wnafT4=new Array(4),this._bitLength=this.n?this.n.bitLength():0;var he=this.n&&this.p.div(this.n);!he||he.cmpn(100)>0?this.redN=null:(this._maxwellTrick=!0,this.redN=this.n.toRed(this.red))}var Zp=BaseCurve;function BasePoint(D,te){this.curve=D,this.type=te,this.precomputed=null}BaseCurve.prototype.point=function point(){throw new Error("Not implemented")},BaseCurve.prototype.validate=function validate(){throw new Error("Not implemented")},BaseCurve.prototype._fixedNafMul=function _fixedNafMul(D,te){Qp(D.precomputed);var he=D._getDoubles(),ye=Jp(te,1,this._bitLength),be=(1<<he.step+1)-(he.step%2==0?2:1);be/=3;var ve,we,_e=[];for(ve=0;ve<ye.length;ve+=he.step){we=0;for(var Pe=ve+he.step-1;Pe>=ve;Pe--)we=(we<<1)+ye[Pe];_e.push(we)}for(var Ie=this.jpoint(null,null,null),Re=this.jpoint(null,null,null),ke=be;ke>0;ke--){for(ve=0;ve<_e.length;ve++)(we=_e[ve])===ke?Re=Re.mixedAdd(he.points[ve]):we===-ke&&(Re=Re.mixedAdd(he.points[ve].neg()));Ie=Ie.add(Re)}return Ie.toP()},BaseCurve.prototype._wnafMul=function _wnafMul(D,te){var he=4,ye=D._getNAFPoints(he);he=ye.wnd;for(var be=ye.points,ve=Jp(te,he,this._bitLength),we=this.jpoint(null,null,null),_e=ve.length-1;_e>=0;_e--){for(var Pe=0;_e>=0&&0===ve[_e];_e--)Pe++;if(_e>=0&&Pe++,we=we.dblp(Pe),_e<0)break;var Ie=ve[_e];Qp(0!==Ie),we="affine"===D.type?Ie>0?we.mixedAdd(be[Ie-1>>1]):we.mixedAdd(be[-Ie-1>>1].neg()):Ie>0?we.add(be[Ie-1>>1]):we.add(be[-Ie-1>>1].neg())}return"affine"===D.type?we.toP():we},BaseCurve.prototype._wnafMulAdd=function _wnafMulAdd(D,te,he,ye,be){var ve,we,_e,Pe=this._wnafT1,Ie=this._wnafT2,Re=this._wnafT3,ke=0;for(ve=0;ve<ye;ve++){var Oe=(_e=te[ve])._getNAFPoints(D);Pe[ve]=Oe.wnd,Ie[ve]=Oe.points}for(ve=ye-1;ve>=1;ve-=2){var xe=ve-1,Be=ve;if(1===Pe[xe]&&1===Pe[Be]){var Fe=[te[xe],null,null,te[Be]];0===te[xe].y.cmp(te[Be].y)?(Fe[1]=te[xe].add(te[Be]),Fe[2]=te[xe].toJ().mixedAdd(te[Be].neg())):0===te[xe].y.cmp(te[Be].y.redNeg())?(Fe[1]=te[xe].toJ().mixedAdd(te[Be]),Fe[2]=te[xe].add(te[Be].neg())):(Fe[1]=te[xe].toJ().mixedAdd(te[Be]),Fe[2]=te[xe].toJ().mixedAdd(te[Be].neg()));var De=[-3,-1,-5,-7,0,7,5,1,3],Le=Xp(he[xe],he[Be]);for(ke=Math.max(Le[0].length,ke),Re[xe]=new Array(ke),Re[Be]=new Array(ke),we=0;we<ke;we++){var Ue=0|Le[0][we],qe=0|Le[1][we];Re[xe][we]=De[3*(Ue+1)+(qe+1)],Re[Be][we]=0,Ie[xe]=Fe}}else Re[xe]=Jp(he[xe],Pe[xe],this._bitLength),Re[Be]=Jp(he[Be],Pe[Be],this._bitLength),ke=Math.max(Re[xe].length,ke),ke=Math.max(Re[Be].length,ke)}var je=this.jpoint(null,null,null),Je=this._wnafT4;for(ve=ke;ve>=0;ve--){for(var et=0;ve>=0;){var tt=!0;for(we=0;we<ye;we++)Je[we]=0|Re[we][ve],0!==Je[we]&&(tt=!1);if(!tt)break;et++,ve--}if(ve>=0&&et++,je=je.dblp(et),ve<0)break;for(we=0;we<ye;we++){var rt=Je[we];0!==rt&&(rt>0?_e=Ie[we][rt-1>>1]:rt<0&&(_e=Ie[we][-rt-1>>1].neg()),je="affine"===_e.type?je.mixedAdd(_e):je.add(_e))}}for(ve=0;ve<ye;ve++)Ie[ve]=null;return be?je:je.toP()},BaseCurve.BasePoint=BasePoint,BasePoint.prototype.eq=function eq(){throw new Error("Not implemented")},BasePoint.prototype.validate=function validate(){return this.curve.validate(this)},BaseCurve.prototype.decodePoint=function decodePoint(D,te){D=Kp.toArray(D,te);var he=this.p.byteLength();if((4===D[0]||6===D[0]||7===D[0])&&D.length-1==2*he)return 6===D[0]?Qp(D[D.length-1]%2==0):7===D[0]&&Qp(D[D.length-1]%2==1),this.point(D.slice(1,1+he),D.slice(1+he,1+2*he));if((2===D[0]||3===D[0])&&D.length-1===he)return this.pointFromX(D.slice(1,1+he),3===D[0]);throw new Error("Unknown point format")},BasePoint.prototype.encodeCompressed=function encodeCompressed(D){return this.encode(D,!0)},BasePoint.prototype._encode=function _encode(D){var te=this.curve.p.byteLength(),he=this.getX().toArray("be",te);return D?[this.getY().isEven()?2:3].concat(he):[4].concat(he,this.getY().toArray("be",te))},BasePoint.prototype.encode=function encode(D,te){return Kp.encode(this._encode(te),D)},BasePoint.prototype.precompute=function precompute(D){if(this.precomputed)return this;var te={doubles:null,naf:null,beta:null};return te.naf=this._getNAFPoints(8),te.doubles=this._getDoubles(4,D),te.beta=this._getBeta(),this.precomputed=te,this},BasePoint.prototype._hasDoubles=function _hasDoubles(D){if(!this.precomputed)return!1;var te=this.precomputed.doubles;return!!te&&te.points.length>=Math.ceil((D.bitLength()+1)/te.step)},BasePoint.prototype._getDoubles=function _getDoubles(D,te){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;for(var he=[this],ye=this,be=0;be<te;be+=D){for(var ve=0;ve<D;ve++)ye=ye.dbl();he.push(ye)}return{step:D,points:he}},BasePoint.prototype._getNAFPoints=function _getNAFPoints(D){if(this.precomputed&&this.precomputed.naf)return this.precomputed.naf;for(var te=[this],he=(1<<D)-1,ye=1===he?null:this.dbl(),be=1;be<he;be++)te[be]=te[be-1].add(ye);return{wnd:D,points:te}},BasePoint.prototype._getBeta=function _getBeta(){return null},BasePoint.prototype.dblp=function dblp(D){for(var te=this,he=0;he<D;he++)te=te.dbl();return te};var Yp=zp,eh=dc,th=Zp,rh=jp.assert;function ShortCurve(D){th.call(this,"short",D),this.a=new Yp(D.a,16).toRed(this.red),this.b=new Yp(D.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=0===this.a.fromRed().cmpn(0),this.threeA=0===this.a.fromRed().sub(this.p).cmpn(-3),this.endo=this._getEndomorphism(D),this._endoWnafT1=new Array(4),this._endoWnafT2=new Array(4)}eh(ShortCurve,th);var nh=ShortCurve;function Point$2(D,te,he,ye){th.BasePoint.call(this,D,"affine"),null===te&&null===he?(this.x=null,this.y=null,this.inf=!0):(this.x=new Yp(te,16),this.y=new Yp(he,16),ye&&(this.x.forceRed(this.curve.red),this.y.forceRed(this.curve.red)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.inf=!1)}function JPoint(D,te,he,ye){th.BasePoint.call(this,D,"jacobian"),null===te&&null===he&&null===ye?(this.x=this.curve.one,this.y=this.curve.one,this.z=new Yp(0)):(this.x=new Yp(te,16),this.y=new Yp(he,16),this.z=new Yp(ye,16)),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.zOne=this.z===this.curve.one}ShortCurve.prototype._getEndomorphism=function _getEndomorphism(D){if(this.zeroA&&this.g&&this.n&&1===this.p.modn(3)){var te,he;if(D.beta)te=new Yp(D.beta,16).toRed(this.red);else{var ye=this._getEndoRoots(this.p);te=(te=ye[0].cmp(ye[1])<0?ye[0]:ye[1]).toRed(this.red)}if(D.lambda)he=new Yp(D.lambda,16);else{var be=this._getEndoRoots(this.n);0===this.g.mul(be[0]).x.cmp(this.g.x.redMul(te))?he=be[0]:(he=be[1],rh(0===this.g.mul(he).x.cmp(this.g.x.redMul(te))))}return{beta:te,lambda:he,basis:D.basis?D.basis.map((function(D){return{a:new Yp(D.a,16),b:new Yp(D.b,16)}})):this._getEndoBasis(he)}}},ShortCurve.prototype._getEndoRoots=function _getEndoRoots(D){var te=D===this.p?this.red:Yp.mont(D),he=new Yp(2).toRed(te).redInvm(),ye=he.redNeg(),be=new Yp(3).toRed(te).redNeg().redSqrt().redMul(he);return[ye.redAdd(be).fromRed(),ye.redSub(be).fromRed()]},ShortCurve.prototype._getEndoBasis=function _getEndoBasis(D){for(var te,he,ye,be,ve,we,_e,Pe,Ie,Re=this.n.ushrn(Math.floor(this.n.bitLength()/2)),ke=D,Oe=this.n.clone(),xe=new Yp(1),Be=new Yp(0),Fe=new Yp(0),De=new Yp(1),Le=0;0!==ke.cmpn(0);){var Ue=Oe.div(ke);Pe=Oe.sub(Ue.mul(ke)),Ie=Fe.sub(Ue.mul(xe));var qe=De.sub(Ue.mul(Be));if(!ye&&Pe.cmp(Re)<0)te=_e.neg(),he=xe,ye=Pe.neg(),be=Ie;else if(ye&&2==++Le)break;_e=Pe,Oe=ke,ke=Pe,Fe=xe,xe=Ie,De=Be,Be=qe}ve=Pe.neg(),we=Ie;var je=ye.sqr().add(be.sqr());return ve.sqr().add(we.sqr()).cmp(je)>=0&&(ve=te,we=he),ye.negative&&(ye=ye.neg(),be=be.neg()),ve.negative&&(ve=ve.neg(),we=we.neg()),[{a:ye,b:be},{a:ve,b:we}]},ShortCurve.prototype._endoSplit=function _endoSplit(D){var te=this.endo.basis,he=te[0],ye=te[1],be=ye.b.mul(D).divRound(this.n),ve=he.b.neg().mul(D).divRound(this.n),we=be.mul(he.a),_e=ve.mul(ye.a),Pe=be.mul(he.b),Ie=ve.mul(ye.b);return{k1:D.sub(we).sub(_e),k2:Pe.add(Ie).neg()}},ShortCurve.prototype.pointFromX=function pointFromX(D,te){(D=new Yp(D,16)).red||(D=D.toRed(this.red));var he=D.redSqr().redMul(D).redIAdd(D.redMul(this.a)).redIAdd(this.b),ye=he.redSqrt();if(0!==ye.redSqr().redSub(he).cmp(this.zero))throw new Error("invalid point");var be=ye.fromRed().isOdd();return(te&&!be||!te&&be)&&(ye=ye.redNeg()),this.point(D,ye)},ShortCurve.prototype.validate=function validate(D){if(D.inf)return!0;var te=D.x,he=D.y,ye=this.a.redMul(te),be=te.redSqr().redMul(te).redIAdd(ye).redIAdd(this.b);return 0===he.redSqr().redISub(be).cmpn(0)},ShortCurve.prototype._endoWnafMulAdd=function _endoWnafMulAdd(D,te,he){for(var ye=this._endoWnafT1,be=this._endoWnafT2,ve=0;ve<D.length;ve++){var we=this._endoSplit(te[ve]),_e=D[ve],Pe=_e._getBeta();we.k1.negative&&(we.k1.ineg(),_e=_e.neg(!0)),we.k2.negative&&(we.k2.ineg(),Pe=Pe.neg(!0)),ye[2*ve]=_e,ye[2*ve+1]=Pe,be[2*ve]=we.k1,be[2*ve+1]=we.k2}for(var Ie=this._wnafMulAdd(1,ye,be,2*ve,he),Re=0;Re<2*ve;Re++)ye[Re]=null,be[Re]=null;return Ie},eh(Point$2,th.BasePoint),ShortCurve.prototype.point=function point(D,te,he){return new Point$2(this,D,te,he)},ShortCurve.prototype.pointFromJSON=function pointFromJSON(D,te){return Point$2.fromJSON(this,D,te)},Point$2.prototype._getBeta=function _getBeta(){if(this.curve.endo){var D=this.precomputed;if(D&&D.beta)return D.beta;var te=this.curve.point(this.x.redMul(this.curve.endo.beta),this.y);if(D){var he=this.curve,endoMul=function(D){return he.point(D.x.redMul(he.endo.beta),D.y)};D.beta=te,te.precomputed={beta:null,naf:D.naf&&{wnd:D.naf.wnd,points:D.naf.points.map(endoMul)},doubles:D.doubles&&{step:D.doubles.step,points:D.doubles.points.map(endoMul)}}}return te}},Point$2.prototype.toJSON=function toJSON(){return this.precomputed?[this.x,this.y,this.precomputed&&{doubles:this.precomputed.doubles&&{step:this.precomputed.doubles.step,points:this.precomputed.doubles.points.slice(1)},naf:this.precomputed.naf&&{wnd:this.precomputed.naf.wnd,points:this.precomputed.naf.points.slice(1)}}]:[this.x,this.y]},Point$2.fromJSON=function fromJSON(D,te,he){"string"==typeof te&&(te=JSON.parse(te));var ye=D.point(te[0],te[1],he);if(!te[2])return ye;function obj2point(te){return D.point(te[0],te[1],he)}var be=te[2];return ye.precomputed={beta:null,doubles:be.doubles&&{step:be.doubles.step,points:[ye].concat(be.doubles.points.map(obj2point))},naf:be.naf&&{wnd:be.naf.wnd,points:[ye].concat(be.naf.points.map(obj2point))}},ye},Point$2.prototype.inspect=function inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+">"},Point$2.prototype.isInfinity=function isInfinity(){return this.inf},Point$2.prototype.add=function add(D){if(this.inf)return D;if(D.inf)return this;if(this.eq(D))return this.dbl();if(this.neg().eq(D))return this.curve.point(null,null);if(0===this.x.cmp(D.x))return this.curve.point(null,null);var te=this.y.redSub(D.y);0!==te.cmpn(0)&&(te=te.redMul(this.x.redSub(D.x).redInvm()));var he=te.redSqr().redISub(this.x).redISub(D.x),ye=te.redMul(this.x.redSub(he)).redISub(this.y);return this.curve.point(he,ye)},Point$2.prototype.dbl=function dbl(){if(this.inf)return this;var D=this.y.redAdd(this.y);if(0===D.cmpn(0))return this.curve.point(null,null);var te=this.curve.a,he=this.x.redSqr(),ye=D.redInvm(),be=he.redAdd(he).redIAdd(he).redIAdd(te).redMul(ye),ve=be.redSqr().redISub(this.x.redAdd(this.x)),we=be.redMul(this.x.redSub(ve)).redISub(this.y);return this.curve.point(ve,we)},Point$2.prototype.getX=function getX(){return this.x.fromRed()},Point$2.prototype.getY=function getY(){return this.y.fromRed()},Point$2.prototype.mul=function mul(D){return D=new Yp(D,16),this.isInfinity()?this:this._hasDoubles(D)?this.curve._fixedNafMul(this,D):this.curve.endo?this.curve._endoWnafMulAdd([this],[D]):this.curve._wnafMul(this,D)},Point$2.prototype.mulAdd=function mulAdd(D,te,he){var ye=[this,te],be=[D,he];return this.curve.endo?this.curve._endoWnafMulAdd(ye,be):this.curve._wnafMulAdd(1,ye,be,2)},Point$2.prototype.jmulAdd=function jmulAdd(D,te,he){var ye=[this,te],be=[D,he];return this.curve.endo?this.curve._endoWnafMulAdd(ye,be,!0):this.curve._wnafMulAdd(1,ye,be,2,!0)},Point$2.prototype.eq=function eq(D){return this===D||this.inf===D.inf&&(this.inf||0===this.x.cmp(D.x)&&0===this.y.cmp(D.y))},Point$2.prototype.neg=function neg(D){if(this.inf)return this;var te=this.curve.point(this.x,this.y.redNeg());if(D&&this.precomputed){var he=this.precomputed,negate=function(D){return D.neg()};te.precomputed={naf:he.naf&&{wnd:he.naf.wnd,points:he.naf.points.map(negate)},doubles:he.doubles&&{step:he.doubles.step,points:he.doubles.points.map(negate)}}}return te},Point$2.prototype.toJ=function toJ(){return this.inf?this.curve.jpoint(null,null,null):this.curve.jpoint(this.x,this.y,this.curve.one)},eh(JPoint,th.BasePoint),ShortCurve.prototype.jpoint=function jpoint(D,te,he){return new JPoint(this,D,te,he)},JPoint.prototype.toP=function toP(){if(this.isInfinity())return this.curve.point(null,null);var D=this.z.redInvm(),te=D.redSqr(),he=this.x.redMul(te),ye=this.y.redMul(te).redMul(D);return this.curve.point(he,ye)},JPoint.prototype.neg=function neg(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},JPoint.prototype.add=function add(D){if(this.isInfinity())return D;if(D.isInfinity())return this;var te=D.z.redSqr(),he=this.z.redSqr(),ye=this.x.redMul(te),be=D.x.redMul(he),ve=this.y.redMul(te.redMul(D.z)),we=D.y.redMul(he.redMul(this.z)),_e=ye.redSub(be),Pe=ve.redSub(we);if(0===_e.cmpn(0))return 0!==Pe.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var Ie=_e.redSqr(),Re=Ie.redMul(_e),ke=ye.redMul(Ie),Oe=Pe.redSqr().redIAdd(Re).redISub(ke).redISub(ke),xe=Pe.redMul(ke.redISub(Oe)).redISub(ve.redMul(Re)),Be=this.z.redMul(D.z).redMul(_e);return this.curve.jpoint(Oe,xe,Be)},JPoint.prototype.mixedAdd=function mixedAdd(D){if(this.isInfinity())return D.toJ();if(D.isInfinity())return this;var te=this.z.redSqr(),he=this.x,ye=D.x.redMul(te),be=this.y,ve=D.y.redMul(te).redMul(this.z),we=he.redSub(ye),_e=be.redSub(ve);if(0===we.cmpn(0))return 0!==_e.cmpn(0)?this.curve.jpoint(null,null,null):this.dbl();var Pe=we.redSqr(),Ie=Pe.redMul(we),Re=he.redMul(Pe),ke=_e.redSqr().redIAdd(Ie).redISub(Re).redISub(Re),Oe=_e.redMul(Re.redISub(ke)).redISub(be.redMul(Ie)),xe=this.z.redMul(we);return this.curve.jpoint(ke,Oe,xe)},JPoint.prototype.dblp=function dblp(D){if(0===D)return this;if(this.isInfinity())return this;if(!D)return this.dbl();var te;if(this.curve.zeroA||this.curve.threeA){var he=this;for(te=0;te<D;te++)he=he.dbl();return he}var ye=this.curve.a,be=this.curve.tinv,ve=this.x,we=this.y,_e=this.z,Pe=_e.redSqr().redSqr(),Ie=we.redAdd(we);for(te=0;te<D;te++){var Re=ve.redSqr(),ke=Ie.redSqr(),Oe=ke.redSqr(),xe=Re.redAdd(Re).redIAdd(Re).redIAdd(ye.redMul(Pe)),Be=ve.redMul(ke),Fe=xe.redSqr().redISub(Be.redAdd(Be)),De=Be.redISub(Fe),Le=xe.redMul(De);Le=Le.redIAdd(Le).redISub(Oe);var Ue=Ie.redMul(_e);te+1<D&&(Pe=Pe.redMul(Oe)),ve=Fe,_e=Ue,Ie=Le}return this.curve.jpoint(ve,Ie.redMul(be),_e)},JPoint.prototype.dbl=function dbl(){return this.isInfinity()?this:this.curve.zeroA?this._zeroDbl():this.curve.threeA?this._threeDbl():this._dbl()},JPoint.prototype._zeroDbl=function _zeroDbl(){var D,te,he;if(this.zOne){var ye=this.x.redSqr(),be=this.y.redSqr(),ve=be.redSqr(),we=this.x.redAdd(be).redSqr().redISub(ye).redISub(ve);we=we.redIAdd(we);var _e=ye.redAdd(ye).redIAdd(ye),Pe=_e.redSqr().redISub(we).redISub(we),Ie=ve.redIAdd(ve);Ie=(Ie=Ie.redIAdd(Ie)).redIAdd(Ie),D=Pe,te=_e.redMul(we.redISub(Pe)).redISub(Ie),he=this.y.redAdd(this.y)}else{var Re=this.x.redSqr(),ke=this.y.redSqr(),Oe=ke.redSqr(),xe=this.x.redAdd(ke).redSqr().redISub(Re).redISub(Oe);xe=xe.redIAdd(xe);var Be=Re.redAdd(Re).redIAdd(Re),Fe=Be.redSqr(),De=Oe.redIAdd(Oe);De=(De=De.redIAdd(De)).redIAdd(De),D=Fe.redISub(xe).redISub(xe),te=Be.redMul(xe.redISub(D)).redISub(De),he=(he=this.y.redMul(this.z)).redIAdd(he)}return this.curve.jpoint(D,te,he)},JPoint.prototype._threeDbl=function _threeDbl(){var D,te,he;if(this.zOne){var ye=this.x.redSqr(),be=this.y.redSqr(),ve=be.redSqr(),we=this.x.redAdd(be).redSqr().redISub(ye).redISub(ve);we=we.redIAdd(we);var _e=ye.redAdd(ye).redIAdd(ye).redIAdd(this.curve.a),Pe=_e.redSqr().redISub(we).redISub(we);D=Pe;var Ie=ve.redIAdd(ve);Ie=(Ie=Ie.redIAdd(Ie)).redIAdd(Ie),te=_e.redMul(we.redISub(Pe)).redISub(Ie),he=this.y.redAdd(this.y)}else{var Re=this.z.redSqr(),ke=this.y.redSqr(),Oe=this.x.redMul(ke),xe=this.x.redSub(Re).redMul(this.x.redAdd(Re));xe=xe.redAdd(xe).redIAdd(xe);var Be=Oe.redIAdd(Oe),Fe=(Be=Be.redIAdd(Be)).redAdd(Be);D=xe.redSqr().redISub(Fe),he=this.y.redAdd(this.z).redSqr().redISub(ke).redISub(Re);var De=ke.redSqr();De=(De=(De=De.redIAdd(De)).redIAdd(De)).redIAdd(De),te=xe.redMul(Be.redISub(D)).redISub(De)}return this.curve.jpoint(D,te,he)},JPoint.prototype._dbl=function _dbl(){var D=this.curve.a,te=this.x,he=this.y,ye=this.z,be=ye.redSqr().redSqr(),ve=te.redSqr(),we=he.redSqr(),_e=ve.redAdd(ve).redIAdd(ve).redIAdd(D.redMul(be)),Pe=te.redAdd(te),Ie=(Pe=Pe.redIAdd(Pe)).redMul(we),Re=_e.redSqr().redISub(Ie.redAdd(Ie)),ke=Ie.redISub(Re),Oe=we.redSqr();Oe=(Oe=(Oe=Oe.redIAdd(Oe)).redIAdd(Oe)).redIAdd(Oe);var xe=_e.redMul(ke).redISub(Oe),Be=he.redAdd(he).redMul(ye);return this.curve.jpoint(Re,xe,Be)},JPoint.prototype.trpl=function trpl(){if(!this.curve.zeroA)return this.dbl().add(this);var D=this.x.redSqr(),te=this.y.redSqr(),he=this.z.redSqr(),ye=te.redSqr(),be=D.redAdd(D).redIAdd(D),ve=be.redSqr(),we=this.x.redAdd(te).redSqr().redISub(D).redISub(ye),_e=(we=(we=(we=we.redIAdd(we)).redAdd(we).redIAdd(we)).redISub(ve)).redSqr(),Pe=ye.redIAdd(ye);Pe=(Pe=(Pe=Pe.redIAdd(Pe)).redIAdd(Pe)).redIAdd(Pe);var Ie=be.redIAdd(we).redSqr().redISub(ve).redISub(_e).redISub(Pe),Re=te.redMul(Ie);Re=(Re=Re.redIAdd(Re)).redIAdd(Re);var ke=this.x.redMul(_e).redISub(Re);ke=(ke=ke.redIAdd(ke)).redIAdd(ke);var Oe=this.y.redMul(Ie.redMul(Pe.redISub(Ie)).redISub(we.redMul(_e)));Oe=(Oe=(Oe=Oe.redIAdd(Oe)).redIAdd(Oe)).redIAdd(Oe);var xe=this.z.redAdd(we).redSqr().redISub(he).redISub(_e);return this.curve.jpoint(ke,Oe,xe)},JPoint.prototype.mul=function mul(D,te){return D=new Yp(D,te),this.curve._wnafMul(this,D)},JPoint.prototype.eq=function eq(D){if("affine"===D.type)return this.eq(D.toJ());if(this===D)return!0;var te=this.z.redSqr(),he=D.z.redSqr();if(0!==this.x.redMul(he).redISub(D.x.redMul(te)).cmpn(0))return!1;var ye=te.redMul(this.z),be=he.redMul(D.z);return 0===this.y.redMul(be).redISub(D.y.redMul(ye)).cmpn(0)},JPoint.prototype.eqXToP=function eqXToP(D){var te=this.z.redSqr(),he=D.toRed(this.curve.red).redMul(te);if(0===this.x.cmp(he))return!0;for(var ye=D.clone(),be=this.curve.redN.redMul(te);;){if(ye.iadd(this.curve.n),ye.cmp(this.curve.p)>=0)return!1;if(he.redIAdd(be),0===this.x.cmp(he))return!0}},JPoint.prototype.inspect=function inspect(){return this.isInfinity()?"<EC JPoint Infinity>":"<EC JPoint x: "+this.x.toString(16,2)+" y: "+this.y.toString(16,2)+" z: "+this.z.toString(16,2)+">"},JPoint.prototype.isInfinity=function isInfinity(){return 0===this.z.cmpn(0)};var ah=zp,ih=dc,sh=Zp,oh=jp;function MontCurve(D){sh.call(this,"mont",D),this.a=new ah(D.a,16).toRed(this.red),this.b=new ah(D.b,16).toRed(this.red),this.i4=new ah(4).toRed(this.red).redInvm(),this.two=new ah(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}ih(MontCurve,sh);var dh=MontCurve;function Point$1(D,te,he){sh.BasePoint.call(this,D,"projective"),null===te&&null===he?(this.x=this.curve.one,this.z=this.curve.zero):(this.x=new ah(te,16),this.z=new ah(he,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)))}MontCurve.prototype.validate=function validate(D){var te=D.normalize().x,he=te.redSqr(),ye=he.redMul(te).redAdd(he.redMul(this.a)).redAdd(te);return 0===ye.redSqrt().redSqr().cmp(ye)},ih(Point$1,sh.BasePoint),MontCurve.prototype.decodePoint=function decodePoint(D,te){return this.point(oh.toArray(D,te),1)},MontCurve.prototype.point=function point(D,te){return new Point$1(this,D,te)},MontCurve.prototype.pointFromJSON=function pointFromJSON(D){return Point$1.fromJSON(this,D)},Point$1.prototype.precompute=function precompute(){},Point$1.prototype._encode=function _encode(){return this.getX().toArray("be",this.curve.p.byteLength())},Point$1.fromJSON=function fromJSON(D,te){return new Point$1(D,te[0],te[1]||D.one)},Point$1.prototype.inspect=function inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},Point$1.prototype.isInfinity=function isInfinity(){return 0===this.z.cmpn(0)},Point$1.prototype.dbl=function dbl(){var D=this.x.redAdd(this.z).redSqr(),te=this.x.redSub(this.z).redSqr(),he=D.redSub(te),ye=D.redMul(te),be=he.redMul(te.redAdd(this.curve.a24.redMul(he)));return this.curve.point(ye,be)},Point$1.prototype.add=function add(){throw new Error("Not supported on Montgomery curve")},Point$1.prototype.diffAdd=function diffAdd(D,te){var he=this.x.redAdd(this.z),ye=this.x.redSub(this.z),be=D.x.redAdd(D.z),ve=D.x.redSub(D.z).redMul(he),we=be.redMul(ye),_e=te.z.redMul(ve.redAdd(we).redSqr()),Pe=te.x.redMul(ve.redISub(we).redSqr());return this.curve.point(_e,Pe)},Point$1.prototype.mul=function mul(D){for(var te=D.clone(),he=this,ye=this.curve.point(null,null),be=[];0!==te.cmpn(0);te.iushrn(1))be.push(te.andln(1));for(var ve=be.length-1;ve>=0;ve--)0===be[ve]?(he=he.diffAdd(ye,this),ye=ye.dbl()):(ye=he.diffAdd(ye,this),he=he.dbl());return ye},Point$1.prototype.mulAdd=function mulAdd(){throw new Error("Not supported on Montgomery curve")},Point$1.prototype.jumlAdd=function jumlAdd(){throw new Error("Not supported on Montgomery curve")},Point$1.prototype.eq=function eq(D){return 0===this.getX().cmp(D.getX())},Point$1.prototype.normalize=function normalize(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},Point$1.prototype.getX=function getX(){return this.normalize(),this.x.fromRed()};var uh=zp,fh=dc,lh=Zp,ph=jp.assert;function EdwardsCurve(D){this.twisted=1!=(0|D.a),this.mOneA=this.twisted&&-1==(0|D.a),this.extended=this.mOneA,lh.call(this,"edwards",D),this.a=new uh(D.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new uh(D.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new uh(D.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),ph(!this.twisted||0===this.c.fromRed().cmpn(1)),this.oneC=1==(0|D.c)}fh(EdwardsCurve,lh);var hh=EdwardsCurve;function Point(D,te,he,ye,be){lh.BasePoint.call(this,D,"projective"),null===te&&null===he&&null===ye?(this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0):(this.x=new uh(te,16),this.y=new uh(he,16),this.z=ye?new uh(ye,16):this.curve.one,this.t=be&&new uh(be,16),this.x.red||(this.x=this.x.toRed(this.curve.red)),this.y.red||(this.y=this.y.toRed(this.curve.red)),this.z.red||(this.z=this.z.toRed(this.curve.red)),this.t&&!this.t.red&&(this.t=this.t.toRed(this.curve.red)),this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t&&(this.t=this.x.redMul(this.y),this.zOne||(this.t=this.t.redMul(this.z.redInvm()))))}EdwardsCurve.prototype._mulA=function _mulA(D){return this.mOneA?D.redNeg():this.a.redMul(D)},EdwardsCurve.prototype._mulC=function _mulC(D){return this.oneC?D:this.c.redMul(D)},EdwardsCurve.prototype.jpoint=function jpoint(D,te,he,ye){return this.point(D,te,he,ye)},EdwardsCurve.prototype.pointFromX=function pointFromX(D,te){(D=new uh(D,16)).red||(D=D.toRed(this.red));var he=D.redSqr(),ye=this.c2.redSub(this.a.redMul(he)),be=this.one.redSub(this.c2.redMul(this.d).redMul(he)),ve=ye.redMul(be.redInvm()),we=ve.redSqrt();if(0!==we.redSqr().redSub(ve).cmp(this.zero))throw new Error("invalid point");var _e=we.fromRed().isOdd();return(te&&!_e||!te&&_e)&&(we=we.redNeg()),this.point(D,we)},EdwardsCurve.prototype.pointFromY=function pointFromY(D,te){(D=new uh(D,16)).red||(D=D.toRed(this.red));var he=D.redSqr(),ye=he.redSub(this.c2),be=he.redMul(this.d).redMul(this.c2).redSub(this.a),ve=ye.redMul(be.redInvm());if(0===ve.cmp(this.zero)){if(te)throw new Error("invalid point");return this.point(this.zero,D)}var we=ve.redSqrt();if(0!==we.redSqr().redSub(ve).cmp(this.zero))throw new Error("invalid point");return we.fromRed().isOdd()!==te&&(we=we.redNeg()),this.point(we,D)},EdwardsCurve.prototype.validate=function validate(D){if(D.isInfinity())return!0;D.normalize();var te=D.x.redSqr(),he=D.y.redSqr(),ye=te.redMul(this.a).redAdd(he),be=this.c2.redMul(this.one.redAdd(this.d.redMul(te).redMul(he)));return 0===ye.cmp(be)},fh(Point,lh.BasePoint),EdwardsCurve.prototype.pointFromJSON=function pointFromJSON(D){return Point.fromJSON(this,D)},EdwardsCurve.prototype.point=function point(D,te,he,ye){return new Point(this,D,te,he,ye)},Point.fromJSON=function fromJSON(D,te){return new Point(D,te[0],te[1],te[2])},Point.prototype.inspect=function inspect(){return this.isInfinity()?"<EC Point Infinity>":"<EC Point x: "+this.x.fromRed().toString(16,2)+" y: "+this.y.fromRed().toString(16,2)+" z: "+this.z.fromRed().toString(16,2)+">"},Point.prototype.isInfinity=function isInfinity(){return 0===this.x.cmpn(0)&&(0===this.y.cmp(this.z)||this.zOne&&0===this.y.cmp(this.curve.c))},Point.prototype._extDbl=function _extDbl(){var D=this.x.redSqr(),te=this.y.redSqr(),he=this.z.redSqr();he=he.redIAdd(he);var ye=this.curve._mulA(D),be=this.x.redAdd(this.y).redSqr().redISub(D).redISub(te),ve=ye.redAdd(te),we=ve.redSub(he),_e=ye.redSub(te),Pe=be.redMul(we),Ie=ve.redMul(_e),Re=be.redMul(_e),ke=we.redMul(ve);return this.curve.point(Pe,Ie,ke,Re)},Point.prototype._projDbl=function _projDbl(){var D,te,he,ye,be,ve,we=this.x.redAdd(this.y).redSqr(),_e=this.x.redSqr(),Pe=this.y.redSqr();if(this.curve.twisted){var Ie=(ye=this.curve._mulA(_e)).redAdd(Pe);this.zOne?(D=we.redSub(_e).redSub(Pe).redMul(Ie.redSub(this.curve.two)),te=Ie.redMul(ye.redSub(Pe)),he=Ie.redSqr().redSub(Ie).redSub(Ie)):(be=this.z.redSqr(),ve=Ie.redSub(be).redISub(be),D=we.redSub(_e).redISub(Pe).redMul(ve),te=Ie.redMul(ye.redSub(Pe)),he=Ie.redMul(ve))}else ye=_e.redAdd(Pe),be=this.curve._mulC(this.z).redSqr(),ve=ye.redSub(be).redSub(be),D=this.curve._mulC(we.redISub(ye)).redMul(ve),te=this.curve._mulC(ye).redMul(_e.redISub(Pe)),he=ye.redMul(ve);return this.curve.point(D,te,he)},Point.prototype.dbl=function dbl(){return this.isInfinity()?this:this.curve.extended?this._extDbl():this._projDbl()},Point.prototype._extAdd=function _extAdd(D){var te=this.y.redSub(this.x).redMul(D.y.redSub(D.x)),he=this.y.redAdd(this.x).redMul(D.y.redAdd(D.x)),ye=this.t.redMul(this.curve.dd).redMul(D.t),be=this.z.redMul(D.z.redAdd(D.z)),ve=he.redSub(te),we=be.redSub(ye),_e=be.redAdd(ye),Pe=he.redAdd(te),Ie=ve.redMul(we),Re=_e.redMul(Pe),ke=ve.redMul(Pe),Oe=we.redMul(_e);return this.curve.point(Ie,Re,Oe,ke)},Point.prototype._projAdd=function _projAdd(D){var te,he,ye=this.z.redMul(D.z),be=ye.redSqr(),ve=this.x.redMul(D.x),we=this.y.redMul(D.y),_e=this.curve.d.redMul(ve).redMul(we),Pe=be.redSub(_e),Ie=be.redAdd(_e),Re=this.x.redAdd(this.y).redMul(D.x.redAdd(D.y)).redISub(ve).redISub(we),ke=ye.redMul(Pe).redMul(Re);return this.curve.twisted?(te=ye.redMul(Ie).redMul(we.redSub(this.curve._mulA(ve))),he=Pe.redMul(Ie)):(te=ye.redMul(Ie).redMul(we.redSub(ve)),he=this.curve._mulC(Pe).redMul(Ie)),this.curve.point(ke,te,he)},Point.prototype.add=function add(D){return this.isInfinity()?D:D.isInfinity()?this:this.curve.extended?this._extAdd(D):this._projAdd(D)},Point.prototype.mul=function mul(D){return this._hasDoubles(D)?this.curve._fixedNafMul(this,D):this.curve._wnafMul(this,D)},Point.prototype.mulAdd=function mulAdd(D,te,he){return this.curve._wnafMulAdd(1,[this,te],[D,he],2,!1)},Point.prototype.jmulAdd=function jmulAdd(D,te,he){return this.curve._wnafMulAdd(1,[this,te],[D,he],2,!0)},Point.prototype.normalize=function normalize(){if(this.zOne)return this;var D=this.z.redInvm();return this.x=this.x.redMul(D),this.y=this.y.redMul(D),this.t&&(this.t=this.t.redMul(D)),this.z=this.curve.one,this.zOne=!0,this},Point.prototype.neg=function neg(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},Point.prototype.getX=function getX(){return this.normalize(),this.x.fromRed()},Point.prototype.getY=function getY(){return this.normalize(),this.y.fromRed()},Point.prototype.eq=function eq(D){return this===D||0===this.getX().cmp(D.getX())&&0===this.getY().cmp(D.getY())},Point.prototype.eqXToP=function eqXToP(D){var te=D.toRed(this.curve.red).redMul(this.z);if(0===this.x.cmp(te))return!0;for(var he=D.clone(),ye=this.curve.redN.redMul(this.z);;){if(he.iadd(this.curve.n),he.cmp(this.curve.p)>=0)return!1;if(te.redIAdd(ye),0===this.x.cmp(te))return!0}},Point.prototype.toP=Point.prototype.normalize,Point.prototype.mixedAdd=Point.prototype.add,function(D){var te=D;te.base=Zp,te.short=nh,te.mont=dh,te.edwards=hh}(Wp);var yh,mh,bh={};!function(D){var te,he=D,ye=ic,be=Wp,ve=jp.assert;function PresetCurve(D){"short"===D.type?this.curve=new be.short(D):"edwards"===D.type?this.curve=new be.edwards(D):this.curve=new be.mont(D),this.g=this.curve.g,this.n=this.curve.n,this.hash=D.hash,ve(this.g.validate(),"Invalid curve"),ve(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}function defineCurve(D,te){Object.defineProperty(he,D,{configurable:!0,enumerable:!0,get:function(){var ye=new PresetCurve(te);return Object.defineProperty(he,D,{configurable:!0,enumerable:!0,value:ye}),ye}})}he.PresetCurve=PresetCurve,defineCurve("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:ye.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),defineCurve("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:ye.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),defineCurve("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:ye.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),defineCurve("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:ye.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),defineCurve("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:ye.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),defineCurve("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:ye.sha256,gRed:!1,g:["9"]}),defineCurve("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:ye.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});try{te=function requireSecp256k1$1(){return mh?yh:(mh=1,yh={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}})}()}catch(D){te=void 0}defineCurve("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:ye.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",te]})}(bh);var gh=zp,vh=jp.assert;function KeyPair$3(D,te){this.ec=D,this.priv=null,this.pub=null,te.priv&&this._importPrivate(te.priv,te.privEnc),te.pub&&this._importPublic(te.pub,te.pubEnc)}var wh=KeyPair$3;KeyPair$3.fromPublic=function fromPublic(D,te,he){return te instanceof KeyPair$3?te:new KeyPair$3(D,{pub:te,pubEnc:he})},KeyPair$3.fromPrivate=function fromPrivate(D,te,he){return te instanceof KeyPair$3?te:new KeyPair$3(D,{priv:te,privEnc:he})},KeyPair$3.prototype.validate=function validate(){var D=this.getPublic();return D.isInfinity()?{result:!1,reason:"Invalid public key"}:D.validate()?D.mul(this.ec.curve.n).isInfinity()?{result:!0,reason:null}:{result:!1,reason:"Public key * N != O"}:{result:!1,reason:"Public key is not a point"}},KeyPair$3.prototype.getPublic=function getPublic(D,te){return"string"==typeof D&&(te=D,D=null),this.pub||(this.pub=this.ec.g.mul(this.priv)),te?this.pub.encode(te,D):this.pub},KeyPair$3.prototype.getPrivate=function getPrivate(D){return"hex"===D?this.priv.toString(16,2):this.priv},KeyPair$3.prototype._importPrivate=function _importPrivate(D,te){this.priv=new gh(D,te||16),this.priv=this.priv.umod(this.ec.curve.n)},KeyPair$3.prototype._importPublic=function _importPublic(D,te){if(D.x||D.y)return"mont"===this.ec.curve.type?vh(D.x,"Need x coordinate"):"short"!==this.ec.curve.type&&"edwards"!==this.ec.curve.type||vh(D.x&&D.y,"Need both x and y coordinate"),void(this.pub=this.ec.curve.point(D.x,D.y));this.pub=this.ec.curve.decodePoint(D,te)},KeyPair$3.prototype.derive=function derive(D){return D.validate()||vh(D.validate(),"public point not validated"),D.mul(this.priv).getX()},KeyPair$3.prototype.sign=function sign(D,te,he){return this.ec.sign(D,this,te,he)},KeyPair$3.prototype.verify=function verify(D,te){return this.ec.verify(D,te,this)},KeyPair$3.prototype.inspect=function inspect(){return"<Key priv: "+(this.priv&&this.priv.toString(16,2))+" pub: "+(this.pub&&this.pub.inspect())+" >"};var _h=zp,Th=jp,Ah=Th.assert;function Signature$4(D,te){if(D instanceof Signature$4)return D;this._importDER(D,te)||(Ah(D.r&&D.s,"Signature without r or s"),this.r=new _h(D.r,16),this.s=new _h(D.s,16),void 0===D.recoveryParam?this.recoveryParam=null:this.recoveryParam=D.recoveryParam)}var Eh=Signature$4;function Position$1(){this.place=0}function getLength(D,te){var he=D[te.place++];if(!(128&he))return he;var ye=15&he;if(0===ye||ye>4)return!1;for(var be=0,ve=0,we=te.place;ve<ye;ve++,we++)be<<=8,be|=D[we],be>>>=0;return!(be<=127)&&(te.place=we,be)}function rmPadding(D){for(var te=0,he=D.length-1;!D[te]&&!(128&D[te+1])&&te<he;)te++;return 0===te?D:D.slice(te)}function constructLength(D,te){if(te<128)D.push(te);else{var he=1+(Math.log(te)/Math.LN2>>>3);for(D.push(128|he);--he;)D.push(te>>>(he<<3)&255);D.push(te)}}Signature$4.prototype._importDER=function _importDER(D,te){D=Th.toArray(D,te);var he=new Position$1;if(48!==D[he.place++])return!1;var ye=getLength(D,he);if(!1===ye)return!1;if(ye+he.place!==D.length)return!1;if(2!==D[he.place++])return!1;var be=getLength(D,he);if(!1===be)return!1;var ve=D.slice(he.place,be+he.place);if(he.place+=be,2!==D[he.place++])return!1;var we=getLength(D,he);if(!1===we)return!1;if(D.length!==we+he.place)return!1;var _e=D.slice(he.place,we+he.place);if(0===ve[0]){if(!(128&ve[1]))return!1;ve=ve.slice(1)}if(0===_e[0]){if(!(128&_e[1]))return!1;_e=_e.slice(1)}return this.r=new _h(ve),this.s=new _h(_e),this.recoveryParam=null,!0},Signature$4.prototype.toDER=function toDER(D){var te=this.r.toArray(),he=this.s.toArray();for(128&te[0]&&(te=[0].concat(te)),128&he[0]&&(he=[0].concat(he)),te=rmPadding(te),he=rmPadding(he);!(he[0]||128&he[1]);)he=he.slice(1);var ye=[2];constructLength(ye,te.length),(ye=ye.concat(te)).push(2),constructLength(ye,he.length);var be=ye.concat(he),ve=[48];return constructLength(ve,be.length),ve=ve.concat(be),Th.encode(ve,D)};var Ph=zp,Sh=el,Ih=bh,Rh=Pf,kh=jp.assert,Oh=wh,xh=Eh;function EC$1(D){if(!(this instanceof EC$1))return new EC$1(D);"string"==typeof D&&(kh(Object.prototype.hasOwnProperty.call(Ih,D),"Unknown curve "+D),D=Ih[D]),D instanceof Ih.PresetCurve&&(D={curve:D}),this.curve=D.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=D.curve.g,this.g.precompute(D.curve.n.bitLength()+1),this.hash=D.hash||D.curve.hash}var Nh=EC$1;EC$1.prototype.keyPair=function keyPair(D){return new Oh(this,D)},EC$1.prototype.keyFromPrivate=function keyFromPrivate(D,te){return Oh.fromPrivate(this,D,te)},EC$1.prototype.keyFromPublic=function keyFromPublic(D,te){return Oh.fromPublic(this,D,te)},EC$1.prototype.genKeyPair=function genKeyPair(D){D||(D={});for(var te=new Sh({hash:this.hash,pers:D.pers,persEnc:D.persEnc||"utf8",entropy:D.entropy||Rh(this.hash.hmacStrength),entropyEnc:D.entropy&&D.entropyEnc||"utf8",nonce:this.n.toArray()}),he=this.n.byteLength(),ye=this.n.sub(new Ph(2));;){var be=new Ph(te.generate(he));if(!(be.cmp(ye)>0))return be.iaddn(1),this.keyFromPrivate(be)}},EC$1.prototype._truncateToN=function _truncateToN(D,te){var he=8*D.byteLength()-this.n.bitLength();return he>0&&(D=D.ushrn(he)),!te&&D.cmp(this.n)>=0?D.sub(this.n):D},EC$1.prototype.sign=function sign(D,te,he,ye){"object"==typeof he&&(ye=he,he=null),ye||(ye={}),te=this.keyFromPrivate(te,he),D=this._truncateToN(new Ph(D,16));for(var be=this.n.byteLength(),ve=te.getPrivate().toArray("be",be),we=D.toArray("be",be),_e=new Sh({hash:this.hash,entropy:ve,nonce:we,pers:ye.pers,persEnc:ye.persEnc||"utf8"}),Pe=this.n.sub(new Ph(1)),Ie=0;;Ie++){var Re=ye.k?ye.k(Ie):new Ph(_e.generate(this.n.byteLength()));if(!((Re=this._truncateToN(Re,!0)).cmpn(1)<=0||Re.cmp(Pe)>=0)){var ke=this.g.mul(Re);if(!ke.isInfinity()){var Oe=ke.getX(),xe=Oe.umod(this.n);if(0!==xe.cmpn(0)){var Be=Re.invm(this.n).mul(xe.mul(te.getPrivate()).iadd(D));if(0!==(Be=Be.umod(this.n)).cmpn(0)){var Fe=(ke.getY().isOdd()?1:0)|(0!==Oe.cmp(xe)?2:0);return ye.canonical&&Be.cmp(this.nh)>0&&(Be=this.n.sub(Be),Fe^=1),new xh({r:xe,s:Be,recoveryParam:Fe})}}}}}},EC$1.prototype.verify=function verify(D,te,he,ye){D=this._truncateToN(new Ph(D,16)),he=this.keyFromPublic(he,ye);var be=(te=new xh(te,"hex")).r,ve=te.s;if(be.cmpn(1)<0||be.cmp(this.n)>=0)return!1;if(ve.cmpn(1)<0||ve.cmp(this.n)>=0)return!1;var we,_e=ve.invm(this.n),Pe=_e.mul(D).umod(this.n),Ie=_e.mul(be).umod(this.n);return this.curve._maxwellTrick?!(we=this.g.jmulAdd(Pe,he.getPublic(),Ie)).isInfinity()&&we.eqXToP(be):!(we=this.g.mulAdd(Pe,he.getPublic(),Ie)).isInfinity()&&0===we.getX().umod(this.n).cmp(be)},EC$1.prototype.recoverPubKey=function(D,te,he,ye){kh((3&he)===he,"The recovery param is more than two bits"),te=new xh(te,ye);var be=this.n,ve=new Ph(D),we=te.r,_e=te.s,Pe=1&he,Ie=he>>1;if(we.cmp(this.curve.p.umod(this.curve.n))>=0&&Ie)throw new Error("Unable to find sencond key candinate");we=Ie?this.curve.pointFromX(we.add(this.curve.n),Pe):this.curve.pointFromX(we,Pe);var Re=te.r.invm(be),ke=be.sub(ve).mul(Re).umod(be),Oe=_e.mul(Re).umod(be);return this.g.mulAdd(ke,we,Oe)},EC$1.prototype.getKeyRecoveryParam=function(D,te,he,ye){if(null!==(te=new xh(te,ye)).recoveryParam)return te.recoveryParam;for(var be=0;be<4;be++){var ve;try{ve=this.recoverPubKey(D,te,be)}catch(D){continue}if(ve.eq(he))return be}throw new Error("Unable to find valid recovery factor")};var Mh=jp,Bh=Mh.assert,Fh=Mh.parseBytes,Dh=Mh.cachedProperty;function KeyPair$1(D,te){this.eddsa=D,this._secret=Fh(te.secret),D.isPoint(te.pub)?this._pub=te.pub:this._pubBytes=Fh(te.pub)}KeyPair$1.fromPublic=function fromPublic(D,te){return te instanceof KeyPair$1?te:new KeyPair$1(D,{pub:te})},KeyPair$1.fromSecret=function fromSecret(D,te){return te instanceof KeyPair$1?te:new KeyPair$1(D,{secret:te})},KeyPair$1.prototype.secret=function secret(){return this._secret},Dh(KeyPair$1,"pubBytes",(function pubBytes(){return this.eddsa.encodePoint(this.pub())})),Dh(KeyPair$1,"pub",(function pub(){return this._pubBytes?this.eddsa.decodePoint(this._pubBytes):this.eddsa.g.mul(this.priv())})),Dh(KeyPair$1,"privBytes",(function privBytes(){var D=this.eddsa,te=this.hash(),he=D.encodingLength-1,ye=te.slice(0,D.encodingLength);return ye[0]&=248,ye[he]&=127,ye[he]|=64,ye})),Dh(KeyPair$1,"priv",(function priv(){return this.eddsa.decodeInt(this.privBytes())})),Dh(KeyPair$1,"hash",(function hash(){return this.eddsa.hash().update(this.secret()).digest()})),Dh(KeyPair$1,"messagePrefix",(function messagePrefix(){return this.hash().slice(this.eddsa.encodingLength)})),KeyPair$1.prototype.sign=function sign(D){return Bh(this._secret,"KeyPair can only verify"),this.eddsa.sign(D,this)},KeyPair$1.prototype.verify=function verify(D,te){return this.eddsa.verify(D,te,this)},KeyPair$1.prototype.getSecret=function getSecret(D){return Bh(this._secret,"KeyPair is public only"),Mh.encode(this.secret(),D)},KeyPair$1.prototype.getPublic=function getPublic(D){return Mh.encode(this.pubBytes(),D)};var Lh=KeyPair$1,Uh=zp,$h=jp,qh=$h.assert,Gh=$h.cachedProperty,jh=$h.parseBytes;function Signature$2(D,te){this.eddsa=D,"object"!=typeof te&&(te=jh(te)),Array.isArray(te)&&(te={R:te.slice(0,D.encodingLength),S:te.slice(D.encodingLength)}),qh(te.R&&te.S,"Signature without R or S"),D.isPoint(te.R)&&(this._R=te.R),te.S instanceof Uh&&(this._S=te.S),this._Rencoded=Array.isArray(te.R)?te.R:te.Rencoded,this._Sencoded=Array.isArray(te.S)?te.S:te.Sencoded}Gh(Signature$2,"S",(function S(){return this.eddsa.decodeInt(this.Sencoded())})),Gh(Signature$2,"R",(function R(){return this.eddsa.decodePoint(this.Rencoded())})),Gh(Signature$2,"Rencoded",(function Rencoded(){return this.eddsa.encodePoint(this.R())})),Gh(Signature$2,"Sencoded",(function Sencoded(){return this.eddsa.encodeInt(this.S())})),Signature$2.prototype.toBytes=function toBytes(){return this.Rencoded().concat(this.Sencoded())},Signature$2.prototype.toHex=function toHex(){return $h.encode(this.toBytes(),"hex").toUpperCase()};var Hh=Signature$2,zh=ic,Wh=bh,Vh=jp,Jh=Vh.assert,Xh=Vh.parseBytes,Qh=Lh,Zh=Hh;function EDDSA(D){if(Jh("ed25519"===D,"only tested with ed25519 so far"),!(this instanceof EDDSA))return new EDDSA(D);D=Wh[D].curve,this.curve=D,this.g=D.g,this.g.precompute(D.n.bitLength()+1),this.pointClass=D.point().constructor,this.encodingLength=Math.ceil(D.n.bitLength()/8),this.hash=zh.sha512}var Yh=EDDSA;EDDSA.prototype.sign=function sign(D,te){D=Xh(D);var he=this.keyFromSecret(te),ye=this.hashInt(he.messagePrefix(),D),be=this.g.mul(ye),ve=this.encodePoint(be),we=this.hashInt(ve,he.pubBytes(),D).mul(he.priv()),_e=ye.add(we).umod(this.curve.n);return this.makeSignature({R:be,S:_e,Rencoded:ve})},EDDSA.prototype.verify=function verify(D,te,he){D=Xh(D),te=this.makeSignature(te);var ye=this.keyFromPublic(he),be=this.hashInt(te.Rencoded(),ye.pubBytes(),D),ve=this.g.mul(te.S());return te.R().add(ye.pub().mul(be)).eq(ve)},EDDSA.prototype.hashInt=function hashInt(){for(var D=this.hash(),te=0;te<arguments.length;te++)D.update(arguments[te]);return Vh.intFromLE(D.digest()).umod(this.curve.n)},EDDSA.prototype.keyFromPublic=function keyFromPublic(D){return Qh.fromPublic(this,D)},EDDSA.prototype.keyFromSecret=function keyFromSecret(D){return Qh.fromSecret(this,D)},EDDSA.prototype.makeSignature=function makeSignature(D){return D instanceof Zh?D:new Zh(this,D)},EDDSA.prototype.encodePoint=function encodePoint(D){var te=D.getY().toArray("le",this.encodingLength);return te[this.encodingLength-1]|=D.getX().isOdd()?128:0,te},EDDSA.prototype.decodePoint=function decodePoint(D){var te=(D=Vh.parseBytes(D)).length-1,he=D.slice(0,te).concat(-129&D[te]),ye=0!=(128&D[te]),be=Vh.intFromLE(he);return this.curve.pointFromY(be,ye)},EDDSA.prototype.encodeInt=function encodeInt(D){return D.toArray("le",this.encodingLength)},EDDSA.prototype.decodeInt=function decodeInt(D){return Vh.intFromLE(D)},EDDSA.prototype.isPoint=function isPoint(D){return D instanceof this.pointClass},function(D){var te=D;te.version=Gp,te.utils=jp,te.rand=Pf,te.curve=Wp,te.curves=bh,te.ec=Nh,te.eddsa=Yh}(qp);const ey=new(0,qp.ec)("secp256k1"),ty=ey.curve,ry=ty.n.constructor;function loadPublicKey(D){const te=D[0];switch(te){case 2:case 3:return 33!==D.length?null:function loadCompressedPublicKey(D,te){let he=new ry(te);if(he.cmp(ty.p)>=0)return null;he=he.toRed(ty.red);let ye=he.redSqr().redIMul(he).redIAdd(ty.b).redSqrt();return 3===D!==ye.isOdd()&&(ye=ye.redNeg()),ey.keyPair({pub:{x:he,y:ye}})}(te,D.subarray(1,33));case 4:case 6:case 7:return 65!==D.length?null:function loadUncompressedPublicKey(D,te,he){let ye=new ry(te),be=new ry(he);if(ye.cmp(ty.p)>=0||be.cmp(ty.p)>=0)return null;if(ye=ye.toRed(ty.red),be=be.toRed(ty.red),(6===D||7===D)&&be.isOdd()!==(7===D))return null;const ve=ye.redSqr().redIMul(ye);return be.redSqr().redISub(ve.redIAdd(ty.b)).isZero()?ey.keyPair({pub:{x:ye,y:be}}):null}(te,D.subarray(1,33),D.subarray(33,65));default:return null}}function savePublicKey(D,te){const he=te.encode(null,33===D.length);for(let te=0;te<D.length;++te)D[te]=he[te]}var ny={contextRandomize:()=>0,privateKeyVerify(D){const te=new ry(D);return te.cmp(ty.n)<0&&!te.isZero()?0:1},privateKeyNegate(D){const te=new ry(D),he=ty.n.sub(te).umod(ty.n).toArrayLike(Uint8Array,"be",32);return D.set(he),0},privateKeyTweakAdd(D,te){const he=new ry(te);if(he.cmp(ty.n)>=0)return 1;if(he.iadd(new ry(D)),he.cmp(ty.n)>=0&&he.isub(ty.n),he.isZero())return 1;const ye=he.toArrayLike(Uint8Array,"be",32);return D.set(ye),0},privateKeyTweakMul(D,te){let he=new ry(te);if(he.cmp(ty.n)>=0||he.isZero())return 1;he.imul(new ry(D)),he.cmp(ty.n)>=0&&(he=he.umod(ty.n));const ye=he.toArrayLike(Uint8Array,"be",32);return D.set(ye),0},publicKeyVerify:D=>null===loadPublicKey(D)?1:0,publicKeyCreate(D,te){const he=new ry(te);if(he.cmp(ty.n)>=0||he.isZero())return 1;return savePublicKey(D,ey.keyFromPrivate(te).getPublic()),0},publicKeyConvert(D,te){const he=loadPublicKey(te);if(null===he)return 1;return savePublicKey(D,he.getPublic()),0},publicKeyNegate(D,te){const he=loadPublicKey(te);if(null===he)return 1;const ye=he.getPublic();return ye.y=ye.y.redNeg(),savePublicKey(D,ye),0},publicKeyCombine(D,te){const he=new Array(te.length);for(let D=0;D<te.length;++D)if(he[D]=loadPublicKey(te[D]),null===he[D])return 1;let ye=he[0].getPublic();for(let D=1;D<he.length;++D)ye=ye.add(he[D].pub);return ye.isInfinity()?2:(savePublicKey(D,ye),0)},publicKeyTweakAdd(D,te,he){const ye=loadPublicKey(te);if(null===ye)return 1;if((he=new ry(he)).cmp(ty.n)>=0)return 2;const be=ye.getPublic().add(ty.g.mul(he));return be.isInfinity()?2:(savePublicKey(D,be),0)},publicKeyTweakMul(D,te,he){const ye=loadPublicKey(te);if(null===ye)return 1;if((he=new ry(he)).cmp(ty.n)>=0||he.isZero())return 2;return savePublicKey(D,ye.getPublic().mul(he)),0},signatureNormalize(D){const te=new ry(D.subarray(0,32)),he=new ry(D.subarray(32,64));return te.cmp(ty.n)>=0||he.cmp(ty.n)>=0?1:(1===he.cmp(ey.nh)&&D.set(ty.n.sub(he).toArrayLike(Uint8Array,"be",32),32),0)},signatureExport(D,te){const he=te.subarray(0,32),ye=te.subarray(32,64);if(new ry(he).cmp(ty.n)>=0)return 1;if(new ry(ye).cmp(ty.n)>=0)return 1;const{output:be}=D;let ve=be.subarray(4,37);ve[0]=0,ve.set(he,1);let we=33,_e=0;for(;we>1&&0===ve[_e]&&!(128&ve[_e+1]);--we,++_e);if(ve=ve.subarray(_e),128&ve[0])return 1;if(we>1&&0===ve[0]&&!(128&ve[1]))return 1;let Pe=be.subarray(39,72);Pe[0]=0,Pe.set(ye,1);let Ie=33,Re=0;for(;Ie>1&&0===Pe[Re]&&!(128&Pe[Re+1]);--Ie,++Re);return Pe=Pe.subarray(Re),128&Pe[0]||Ie>1&&0===Pe[0]&&!(128&Pe[1])?1:(D.outputlen=6+we+Ie,be[0]=48,be[1]=D.outputlen-2,be[2]=2,be[3]=ve.length,be.set(ve,4),be[4+we]=2,be[5+we]=Pe.length,be.set(Pe,6+we),0)},signatureImport(D,te){if(te.length<8)return 1;if(te.length>72)return 1;if(48!==te[0])return 1;if(te[1]!==te.length-2)return 1;if(2!==te[2])return 1;const he=te[3];if(0===he)return 1;if(5+he>=te.length)return 1;if(2!==te[4+he])return 1;const ye=te[5+he];if(0===ye)return 1;if(6+he+ye!==te.length)return 1;if(128&te[4])return 1;if(he>1&&0===te[4]&&!(128&te[5]))return 1;if(128&te[he+6])return 1;if(ye>1&&0===te[he+6]&&!(128&te[he+7]))return 1;let be=te.subarray(4,4+he);if(33===be.length&&0===be[0]&&(be=be.subarray(1)),be.length>32)return 1;let ve=te.subarray(6+he);if(33===ve.length&&0===ve[0]&&(ve=ve.slice(1)),ve.length>32)throw new Error("S length is too long");let we=new ry(be);we.cmp(ty.n)>=0&&(we=new ry(0));let _e=new ry(te.subarray(6+he));return _e.cmp(ty.n)>=0&&(_e=new ry(0)),D.set(we.toArrayLike(Uint8Array,"be",32),0),D.set(_e.toArrayLike(Uint8Array,"be",32),32),0},ecdsaSign(D,te,he,ye,be){if(be){const D=be;be=be=>{const ve=D(te,he,null,ye,be);if(!(ve instanceof Uint8Array&&32===ve.length))throw new Error("This is the way");return new ry(ve)}}const ve=new ry(he);if(ve.cmp(ty.n)>=0||ve.isZero())return 1;let we;try{we=ey.sign(te,he,{canonical:!0,k:be,pers:ye})}catch(D){return 1}return D.signature.set(we.r.toArrayLike(Uint8Array,"be",32),0),D.signature.set(we.s.toArrayLike(Uint8Array,"be",32),32),D.recid=we.recoveryParam,0},ecdsaVerify(D,te,he){const ye={r:D.subarray(0,32),s:D.subarray(32,64)},be=new ry(ye.r),ve=new ry(ye.s);if(be.cmp(ty.n)>=0||ve.cmp(ty.n)>=0)return 1;if(1===ve.cmp(ey.nh)||be.isZero()||ve.isZero())return 3;const we=loadPublicKey(he);if(null===we)return 2;const _e=we.getPublic();return ey.verify(te,ye,_e)?0:3},ecdsaRecover(D,te,he,ye){const be={r:te.slice(0,32),s:te.slice(32,64)},ve=new ry(be.r),we=new ry(be.s);if(ve.cmp(ty.n)>=0||we.cmp(ty.n)>=0)return 1;if(ve.isZero()||we.isZero())return 2;let _e;try{_e=ey.recoverPubKey(ye,be,he)}catch(D){return 2}return savePublicKey(D,_e),0},ecdh(D,te,he,ye,be,ve,we){const _e=loadPublicKey(te);if(null===_e)return 1;const Pe=new ry(he);if(Pe.cmp(ty.n)>=0||Pe.isZero())return 2;const Ie=_e.getPublic().mul(Pe);if(void 0===be){const te=Ie.encode(null,!0),he=ey.hash().update(te).digest();for(let te=0;te<32;++te)D[te]=he[te]}else{ve||(ve=new Uint8Array(32));const te=Ie.getX().toArray("be",32);for(let D=0;D<32;++D)ve[D]=te[D];we||(we=new Uint8Array(32));const he=Ie.getY().toArray("be",32);for(let D=0;D<32;++D)we[D]=he[D];const _e=be(ve,we,ye);if(!(_e instanceof Uint8Array&&_e.length===D.length))return 2;D.set(_e)}return 0}},ay=(D=>({contextRandomize(te){if(assert$b(null===te||te instanceof Uint8Array,"Expected seed to be an Uint8Array or null"),null!==te&&isUint8Array("seed",te,32),1===D.contextRandomize(te))throw new Error(xp)},privateKeyVerify:te=>(isUint8Array("private key",te,32),0===D.privateKeyVerify(te)),privateKeyNegate(te){switch(isUint8Array("private key",te,32),D.privateKeyNegate(te)){case 0:return te;case 1:throw new Error(Rp)}},privateKeyTweakAdd(te,he){switch(isUint8Array("private key",te,32),isUint8Array("tweak",he,32),D.privateKeyTweakAdd(te,he)){case 0:return te;case 1:throw new Error(kp)}},privateKeyTweakMul(te,he){switch(isUint8Array("private key",te,32),isUint8Array("tweak",he,32),D.privateKeyTweakMul(te,he)){case 0:return te;case 1:throw new Error(Op)}},publicKeyVerify:te=>(isUint8Array("public key",te,[33,65]),0===D.publicKeyVerify(te)),publicKeyCreate(te,he=!0,ye){switch(isUint8Array("private key",te,32),isCompressed(he),ye=getAssertedOutput(ye,he?33:65),D.publicKeyCreate(ye,te)){case 0:return ye;case 1:throw new Error(Np);case 2:throw new Error(Bp)}},publicKeyConvert(te,he=!0,ye){switch(isUint8Array("public key",te,[33,65]),isCompressed(he),ye=getAssertedOutput(ye,he?33:65),D.publicKeyConvert(ye,te)){case 0:return ye;case 1:throw new Error(Mp);case 2:throw new Error(Bp)}},publicKeyNegate(te,he=!0,ye){switch(isUint8Array("public key",te,[33,65]),isCompressed(he),ye=getAssertedOutput(ye,he?33:65),D.publicKeyNegate(ye,te)){case 0:return ye;case 1:throw new Error(Mp);case 2:throw new Error(Rp);case 3:throw new Error(Bp)}},publicKeyCombine(te,he=!0,ye){assert$b(Array.isArray(te),"Expected public keys to be an Array"),assert$b(te.length>0,"Expected public keys array will have more than zero items");for(const D of te)isUint8Array("public key",D,[33,65]);switch(isCompressed(he),ye=getAssertedOutput(ye,he?33:65),D.publicKeyCombine(ye,te)){case 0:return ye;case 1:throw new Error(Mp);case 2:throw new Error(Fp);case 3:throw new Error(Bp)}},publicKeyTweakAdd(te,he,ye=!0,be){switch(isUint8Array("public key",te,[33,65]),isUint8Array("tweak",he,32),isCompressed(ye),be=getAssertedOutput(be,ye?33:65),D.publicKeyTweakAdd(be,te,he)){case 0:return be;case 1:throw new Error(Mp);case 2:throw new Error(kp)}},publicKeyTweakMul(te,he,ye=!0,be){switch(isUint8Array("public key",te,[33,65]),isUint8Array("tweak",he,32),isCompressed(ye),be=getAssertedOutput(be,ye?33:65),D.publicKeyTweakMul(be,te,he)){case 0:return be;case 1:throw new Error(Mp);case 2:throw new Error(Op)}},signatureNormalize(te){switch(isUint8Array("signature",te,64),D.signatureNormalize(te)){case 0:return te;case 1:throw new Error(Dp)}},signatureExport(te,he){isUint8Array("signature",te,64);const ye={output:he=getAssertedOutput(he,72),outputlen:72};switch(D.signatureExport(ye,te)){case 0:return he.slice(0,ye.outputlen);case 1:throw new Error(Dp);case 2:throw new Error(Rp)}},signatureImport(te,he){switch(isUint8Array("signature",te),he=getAssertedOutput(he,64),D.signatureImport(he,te)){case 0:return he;case 1:throw new Error(Dp);case 2:throw new Error(Rp)}},ecdsaSign(te,he,ye={},be){isUint8Array("message",te,32),isUint8Array("private key",he,32),assert$b("Object"===toTypeString(ye),"Expected options to be an Object"),void 0!==ye.data&&isUint8Array("options.data",ye.data),void 0!==ye.noncefn&&assert$b("Function"===toTypeString(ye.noncefn),"Expected options.noncefn to be a Function");const ve={signature:be=getAssertedOutput(be,64),recid:null};switch(D.ecdsaSign(ve,te,he,ye.data,ye.noncefn)){case 0:return ve;case 1:throw new Error(Lp);case 2:throw new Error(Rp)}},ecdsaVerify(te,he,ye){switch(isUint8Array("signature",te,64),isUint8Array("message",he,32),isUint8Array("public key",ye,[33,65]),D.ecdsaVerify(te,he,ye)){case 0:return!0;case 3:return!1;case 1:throw new Error(Dp);case 2:throw new Error(Mp)}},ecdsaRecover(te,he,ye,be=!0,ve){switch(isUint8Array("signature",te,64),assert$b("Number"===toTypeString(he)&&he>=0&&he<=3,"Expected recovery id to be a Number within interval [0, 3]"),isUint8Array("message",ye,32),isCompressed(be),ve=getAssertedOutput(ve,be?33:65),D.ecdsaRecover(ve,te,he,ye)){case 0:return ve;case 1:throw new Error(Dp);case 2:throw new Error(Up);case 3:throw new Error(Rp)}},ecdh(te,he,ye={},be){switch(isUint8Array("public key",te,[33,65]),isUint8Array("private key",he,32),assert$b("Object"===toTypeString(ye),"Expected options to be an Object"),void 0!==ye.data&&isUint8Array("options.data",ye.data),void 0!==ye.hashfn?(assert$b("Function"===toTypeString(ye.hashfn),"Expected options.hashfn to be a Function"),void 0!==ye.xbuf&&isUint8Array("options.xbuf",ye.xbuf,32),void 0!==ye.ybuf&&isUint8Array("options.ybuf",ye.ybuf,32),isUint8Array("output",be)):be=getAssertedOutput(be,32),D.ecdh(be,te,he,ye.data,ye.hashfn,ye.xbuf,ye.ybuf)){case 0:return be;case 1:throw new Error(Mp);case 2:throw new Error($p)}}}))(ny),iy={},sy={exports:{}},oy={exports:{}};
/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */
!function(D,te){var he=Ri,ye=he.Buffer;function copyProps(D,te){for(var he in D)te[he]=D[he]}function SafeBuffer(D,te,he){return ye(D,te,he)}ye.from&&ye.alloc&&ye.allocUnsafe&&ye.allocUnsafeSlow?D.exports=he:(copyProps(he,te),te.Buffer=SafeBuffer),SafeBuffer.prototype=Object.create(ye.prototype),copyProps(ye,SafeBuffer),SafeBuffer.from=function(D,te,he){if("number"==typeof D)throw new TypeError("Argument must not be a number");return ye(D,te,he)},SafeBuffer.alloc=function(D,te,he){if("number"!=typeof D)throw new TypeError("Argument must be a number");var be=ye(D);return void 0!==te?"string"==typeof he?be.fill(te,he):be.fill(te):be.fill(0),be},SafeBuffer.allocUnsafe=function(D){if("number"!=typeof D)throw new TypeError("Argument must be a number");return ye(D)},SafeBuffer.allocUnsafeSlow=function(D){if("number"!=typeof D)throw new TypeError("Argument must be a number");return he.SlowBuffer(D)}}(oy,oy.exports);var cy=oy.exports,dy=65536,uy=4294967295;var fy=cy.Buffer,ly=rn.crypto||rn.msCrypto;ly&&ly.getRandomValues?sy.exports=function randomBytes$1(D,te){if(D>uy)throw new RangeError("requested too many random bytes");var he=fy.allocUnsafe(D);if(D>0)if(D>dy)for(var ye=0;ye<D;ye+=dy)ly.getRandomValues(he.slice(ye,ye+dy));else ly.getRandomValues(he);if("function"==typeof te)return process.nextTick((function(){te(null,he)}));return he}:sy.exports=function oldBrowser(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")};var py=sy.exports;Object.defineProperty(iy,"__esModule",{value:!0});var hy=py;iy.getRandomBytes=function getRandomBytes(D){return new Promise((function(te,he){hy(D,(function(D,ye){D?he(D):te(ye)}))}))},iy.getRandomBytesSync=function getRandomBytesSync(D){return hy(D)},function(D){var te=rn&&rn.__awaiter||function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))},he=rn&&rn.__generator||function(D,te){var he,ye,be,ve,we={label:0,sent:function(){if(1&be[0])throw be[1];return be[1]},trys:[],ops:[]};return ve={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(ve[Symbol.iterator]=function(){return this}),ve;function verb(ve){return function(_e){return function step(ve){if(he)throw new TypeError("Generator is already executing.");for(;we;)try{if(he=1,ye&&(be=2&ve[0]?ye.return:ve[0]?ye.throw||((be=ye.return)&&be.call(ye),0):ye.next)&&!(be=be.call(ye,ve[1])).done)return be;switch(ye=0,be&&(ve=[2&ve[0],be.value]),ve[0]){case 0:case 1:be=ve;break;case 4:return we.label++,{value:ve[1],done:!1};case 5:we.label++,ye=ve[1],ve=[0];continue;case 7:ve=we.ops.pop(),we.trys.pop();continue;default:if(!(be=we.trys,(be=be.length>0&&be[be.length-1])||6!==ve[0]&&2!==ve[0])){we=0;continue}if(3===ve[0]&&(!be||ve[1]>be[0]&&ve[1]<be[3])){we.label=ve[1];break}if(6===ve[0]&&we.label<be[1]){we.label=be[1],be=ve;break}if(be&&we.label<be[2]){we.label=be[2],we.ops.push(ve);break}be[2]&&we.ops.pop(),we.trys.pop();continue}ve=te.call(D,we)}catch(D){ve=[6,D],ye=0}finally{he=be=0}if(5&ve[0])throw ve[1];return{value:ve[0]?ve[1]:void 0,done:!0}}([ve,_e])}}};Object.defineProperty(D,"__esModule",{value:!0});var ye=ay,be=iy;D.createPrivateKey=function createPrivateKey(){return te(this,void 0,void 0,(function(){var D;return he(this,(function(te){switch(te.label){case 0:return[4,be.getRandomBytes(32)];case 1:return D=te.sent(),ye.privateKeyVerify(D)?[2,D]:[3,0];case 2:return[2]}}))}))},D.createPrivateKeySync=function createPrivateKeySync(){for(;;){var D=be.getRandomBytesSync(32);if(ye.privateKeyVerify(D))return D}},function __export(te){for(var he in te)D.hasOwnProperty(he)||(D[he]=te[he])}(ay)}(Ip);var yy={};function isHexPrefixed(D){if("string"!=typeof D)throw new Error("[isHexPrefixed] input must be type 'string', received type ".concat(typeof D));return"0"===D[0]&&"x"===D[1]}Object.defineProperty(yy,"__esModule",{value:!0}),yy.isHexString=yy.getKeys=yy.fromAscii=yy.fromUtf8=yy.toAscii=yy.arrayContainsArray=yy.getBinarySize=yy.padToEven=yy.stripHexPrefix=yy.isHexPrefixed=void 0,yy.isHexPrefixed=isHexPrefixed;function padToEven(D){var te=D;if("string"!=typeof te)throw new Error("[padToEven] value must be type 'string', received ".concat(typeof te));return te.length%2&&(te="0".concat(te)),te}yy.stripHexPrefix=function(D){if("string"!=typeof D)throw new Error("[stripHexPrefix] input must be type 'string', received ".concat(typeof D));return isHexPrefixed(D)?D.slice(2):D},yy.padToEven=padToEven,yy.getBinarySize=function getBinarySize(D){if("string"!=typeof D)throw new Error("[getBinarySize] method requires input type 'string', recieved ".concat(typeof D));return Buffer.byteLength(D,"utf8")},yy.arrayContainsArray=function arrayContainsArray(D,te,he){if(!0!==Array.isArray(D))throw new Error("[arrayContainsArray] method requires input 'superset' to be an array, got type '".concat(typeof D,"'"));if(!0!==Array.isArray(te))throw new Error("[arrayContainsArray] method requires input 'subset' to be an array, got type '".concat(typeof te,"'"));return te[he?"some":"every"]((function(te){return D.indexOf(te)>=0}))},yy.toAscii=function toAscii(D){var te="",he=0,ye=D.length;for("0x"===D.substring(0,2)&&(he=2);he<ye;he+=2){var be=parseInt(D.substr(he,2),16);te+=String.fromCharCode(be)}return te},yy.fromUtf8=function fromUtf8(D){var te=Buffer.from(D,"utf8");return"0x".concat(padToEven(te.toString("hex")).replace(/^0+|0+$/g,""))},yy.fromAscii=function fromAscii(D){for(var te="",he=0;he<D.length;he++){var ye=D.charCodeAt(he).toString(16);te+=ye.length<2?"0".concat(ye):ye}return"0x".concat(te)},yy.getKeys=function getKeys(D,te,he){if(!Array.isArray(D))throw new Error("[getKeys] method expects input 'params' to be an array, got ".concat(typeof D));if("string"!=typeof te)throw new Error("[getKeys] method expects input 'key' to be type 'string', got ".concat(typeof D));for(var ye=[],be=0;be<D.length;be++){var ve=D[be][te];if(he&&!ve)ve="";else if("string"!=typeof ve)throw new Error("invalid abi - expected type 'string', received ".concat(typeof ve));ye.push(ve)}return ye},yy.isHexString=function isHexString$2(D,te){return!("string"!=typeof D||!D.match(/^0x[0-9A-Fa-f]*$/))&&(!te||D.length===2+2*te)};var my={},by={};Object.defineProperty(by,"__esModule",{value:!0}),by.assertIsString=by.assertIsArray=by.assertIsBuffer=by.assertIsHexString=void 0;var gy=yy;by.assertIsHexString=function(D){if(!(0,gy.isHexString)(D)){var te="This method only supports 0x-prefixed hex strings but input was: ".concat(D);throw new Error(te)}};by.assertIsBuffer=function(D){if(!Buffer.isBuffer(D)){var te="This method only supports Buffer but input was: ".concat(D);throw new Error(te)}};by.assertIsArray=function(D){if(!Array.isArray(D)){var te="This method only supports number arrays but input was: ".concat(D);throw new Error(te)}};by.assertIsString=function(D){if("string"!=typeof D){var te="This method only supports strings but input was: ".concat(D);throw new Error(te)}},function(D){var te=rn&&rn.__values||function(D){var te="function"==typeof Symbol&&Symbol.iterator,he=te&&D[te],ye=0;if(he)return he.call(D);if(D&&"number"==typeof D.length)return{next:function(){return D&&ye>=D.length&&(D=void 0),{value:D&&D[ye++],done:!D}}};throw new TypeError(te?"Object is not iterable.":"Symbol.iterator is not defined.")},he=rn&&rn.__read||function(D,te){var he="function"==typeof Symbol&&D[Symbol.iterator];if(!he)return D;var ye,be,ve=he.call(D),we=[];try{for(;(void 0===te||te-- >0)&&!(ye=ve.next()).done;)we.push(ye.value)}catch(D){be={error:D}}finally{try{ye&&!ye.done&&(he=ve.return)&&he.call(ve)}finally{if(be)throw be.error}}return we};Object.defineProperty(D,"__esModule",{value:!0}),D.bufArrToArr=D.arrToBufArr=D.validateNoLeadingZeroes=D.baToJSON=D.toUtf8=D.addHexPrefix=D.toUnsigned=D.fromSigned=D.bufferToHex=D.bufferToInt=D.toBuffer=D.unpadHexString=D.unpadArray=D.unpadBuffer=D.setLengthRight=D.setLengthLeft=D.zeros=D.intToBuffer=D.intToHex=void 0;var ye=Ul,be=yy,ve=by;D.intToHex=function(D){if(!Number.isSafeInteger(D)||D<0)throw new Error("Received an invalid integer type: ".concat(D));return"0x".concat(D.toString(16))};D.intToBuffer=function(te){var he=(0,D.intToHex)(te);return Buffer.from((0,be.padToEven)(he.slice(2)),"hex")};D.zeros=function(D){return Buffer.allocUnsafe(D).fill(0)};var setLength=function(te,he,ye){var be=(0,D.zeros)(he);return ye?te.length<he?(te.copy(be),be):te.slice(0,he):te.length<he?(te.copy(be,he-te.length),be):te.slice(-he)};D.setLengthLeft=function(D,te){return(0,ve.assertIsBuffer)(D),setLength(D,te,!1)};D.setLengthRight=function(D,te){return(0,ve.assertIsBuffer)(D),setLength(D,te,!0)};var stripZeros=function(D){for(var te=D[0];D.length>0&&"0"===te.toString();)te=(D=D.slice(1))[0];return D};D.unpadBuffer=function(D){return(0,ve.assertIsBuffer)(D),stripZeros(D)};D.unpadArray=function(D){return(0,ve.assertIsArray)(D),stripZeros(D)};D.unpadHexString=function(D){return(0,ve.assertIsHexString)(D),D=(0,be.stripHexPrefix)(D),stripZeros(D)};D.toBuffer=function(te){if(null==te)return Buffer.allocUnsafe(0);if(Buffer.isBuffer(te))return Buffer.from(te);if(Array.isArray(te)||te instanceof Uint8Array)return Buffer.from(te);if("string"==typeof te){if(!(0,be.isHexString)(te))throw new Error("Cannot convert string to buffer. toBuffer only supports 0x-prefixed hex strings and this string was given: ".concat(te));return Buffer.from((0,be.padToEven)((0,be.stripHexPrefix)(te)),"hex")}if("number"==typeof te)return(0,D.intToBuffer)(te);if(ye.BN.isBN(te)){if(te.isNeg())throw new Error("Cannot convert negative BN to buffer. Given: ".concat(te));return te.toArrayLike(Buffer)}if(te.toArray)return Buffer.from(te.toArray());if(te.toBuffer)return Buffer.from(te.toBuffer());throw new Error("invalid type")};D.bufferToInt=function(te){return new ye.BN((0,D.toBuffer)(te)).toNumber()};D.bufferToHex=function(te){return"0x"+(te=(0,D.toBuffer)(te)).toString("hex")};D.fromSigned=function(D){return new ye.BN(D).fromTwos(256)};D.toUnsigned=function(D){return Buffer.from(D.toTwos(256).toArray())};D.addHexPrefix=function(D){return"string"!=typeof D||(0,be.isHexPrefixed)(D)?D:"0x"+D};D.toUtf8=function(D){if((D=(0,be.stripHexPrefix)(D)).length%2!=0)throw new Error("Invalid non-even hex string input for toUtf8() provided");return Buffer.from(D.replace(/^(00)+|(00)+$/g,""),"hex").toString("utf8")};D.baToJSON=function(te){if(Buffer.isBuffer(te))return"0x".concat(te.toString("hex"));if(te instanceof Array){for(var he=[],ye=0;ye<te.length;ye++)he.push((0,D.baToJSON)(te[ye]));return he}};D.validateNoLeadingZeroes=function(D){var ye,be;try{for(var ve=te(Object.entries(D)),we=ve.next();!we.done;we=ve.next()){var _e=he(we.value,2),Pe=_e[0],Ie=_e[1];if(void 0!==Ie&&Ie.length>0&&0===Ie[0])throw new Error("".concat(Pe," cannot have leading zeroes, received: ").concat(Ie.toString("hex")))}}catch(D){ye={error:D}}finally{try{we&&!we.done&&(be=ve.return)&&be.call(ve)}finally{if(ye)throw ye.error}}},D.arrToBufArr=function arrToBufArr(D){return Array.isArray(D)?D.map((function(D){return arrToBufArr(D)})):Buffer.from(D)},D.bufArrToArr=function bufArrToArr(D){return Array.isArray(D)?D.map((function(D){return bufArrToArr(D)})):Uint8Array.from(null!=D?D:[])}}(my);var vy={},wy={},_y={};Object.defineProperty(_y,"__esModule",{value:!0}),_y.createHashFunction=function createHashFunction(D){return function(te){var he=D();return he.update(te),Buffer.from(he.digest())}};var Ty={exports:{}};function EventHandlers(){}function EventEmitter(){EventEmitter.init.call(this)}function $getMaxListeners(D){return void 0===D._maxListeners?EventEmitter.defaultMaxListeners:D._maxListeners}function _addListener(D,te,he,ye){var be,ve,we;if("function"!=typeof he)throw new TypeError('"listener" argument must be a function');if((ve=D._events)?(ve.newListener&&(D.emit("newListener",te,he.listener?he.listener:he),ve=D._events),we=ve[te]):(ve=D._events=new EventHandlers,D._eventsCount=0),we){if("function"==typeof we?we=ve[te]=ye?[he,we]:[we,he]:ye?we.unshift(he):we.push(he),!we.warned&&(be=$getMaxListeners(D))&&be>0&&we.length>be){we.warned=!0;var _e=new Error("Possible EventEmitter memory leak detected. "+we.length+" "+te+" listeners added. Use emitter.setMaxListeners() to increase limit");_e.name="MaxListenersExceededWarning",_e.emitter=D,_e.type=te,_e.count=we.length,function emitWarning(D){"function"==typeof console.warn?console.warn(D):console.log(D)}(_e)}}else we=ve[te]=he,++D._eventsCount;return D}function _onceWrap(D,te,he){var ye=!1;function g(){D.removeListener(te,g),ye||(ye=!0,he.apply(D,arguments))}return g.listener=he,g}function listenerCount$1(D){var te=this._events;if(te){var he=te[D];if("function"==typeof he)return 1;if(he)return he.length}return 0}function arrayClone(D,te){for(var he=new Array(te);te--;)he[te]=D[te];return he}EventHandlers.prototype=Object.create(null),EventEmitter.EventEmitter=EventEmitter,EventEmitter.usingDomains=!1,EventEmitter.prototype.domain=void 0,EventEmitter.prototype._events=void 0,EventEmitter.prototype._maxListeners=void 0,EventEmitter.defaultMaxListeners=10,EventEmitter.init=function(){this.domain=null,EventEmitter.usingDomains&&undefined.active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new EventHandlers,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},EventEmitter.prototype.setMaxListeners=function setMaxListeners(D){if("number"!=typeof D||D<0||isNaN(D))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=D,this},EventEmitter.prototype.getMaxListeners=function getMaxListeners(){return $getMaxListeners(this)},EventEmitter.prototype.emit=function emit(D){var te,he,ye,be,ve,we,_e,Pe="error"===D;if(we=this._events)Pe=Pe&&null==we.error;else if(!Pe)return!1;if(_e=this.domain,Pe){if(te=arguments[1],!_e){if(te instanceof Error)throw te;var Ie=new Error('Uncaught, unspecified "error" event. ('+te+")");throw Ie.context=te,Ie}return te||(te=new Error('Uncaught, unspecified "error" event')),te.domainEmitter=this,te.domain=_e,te.domainThrown=!1,_e.emit("error",te),!1}if(!(he=we[D]))return!1;var Re="function"==typeof he;switch(ye=arguments.length){case 1:!function emitNone(D,te,he){if(te)D.call(he);else for(var ye=D.length,be=arrayClone(D,ye),ve=0;ve<ye;++ve)be[ve].call(he)}(he,Re,this);break;case 2:!function emitOne(D,te,he,ye){if(te)D.call(he,ye);else for(var be=D.length,ve=arrayClone(D,be),we=0;we<be;++we)ve[we].call(he,ye)}(he,Re,this,arguments[1]);break;case 3:!function emitTwo(D,te,he,ye,be){if(te)D.call(he,ye,be);else for(var ve=D.length,we=arrayClone(D,ve),_e=0;_e<ve;++_e)we[_e].call(he,ye,be)}(he,Re,this,arguments[1],arguments[2]);break;case 4:!function emitThree(D,te,he,ye,be,ve){if(te)D.call(he,ye,be,ve);else for(var we=D.length,_e=arrayClone(D,we),Pe=0;Pe<we;++Pe)_e[Pe].call(he,ye,be,ve)}(he,Re,this,arguments[1],arguments[2],arguments[3]);break;default:for(be=new Array(ye-1),ve=1;ve<ye;ve++)be[ve-1]=arguments[ve];!function emitMany(D,te,he,ye){if(te)D.apply(he,ye);else for(var be=D.length,ve=arrayClone(D,be),we=0;we<be;++we)ve[we].apply(he,ye)}(he,Re,this,be)}return!0},EventEmitter.prototype.addListener=function addListener(D,te){return _addListener(this,D,te,!1)},EventEmitter.prototype.on=EventEmitter.prototype.addListener,EventEmitter.prototype.prependListener=function prependListener(D,te){return _addListener(this,D,te,!0)},EventEmitter.prototype.once=function once(D,te){if("function"!=typeof te)throw new TypeError('"listener" argument must be a function');return this.on(D,_onceWrap(this,D,te)),this},EventEmitter.prototype.prependOnceListener=function prependOnceListener(D,te){if("function"!=typeof te)throw new TypeError('"listener" argument must be a function');return this.prependListener(D,_onceWrap(this,D,te)),this},EventEmitter.prototype.removeListener=function removeListener(D,te){var he,ye,be,ve,we;if("function"!=typeof te)throw new TypeError('"listener" argument must be a function');if(!(ye=this._events))return this;if(!(he=ye[D]))return this;if(he===te||he.listener&&he.listener===te)0==--this._eventsCount?this._events=new EventHandlers:(delete ye[D],ye.removeListener&&this.emit("removeListener",D,he.listener||te));else if("function"!=typeof he){for(be=-1,ve=he.length;ve-- >0;)if(he[ve]===te||he[ve].listener&&he[ve].listener===te){we=he[ve].listener,be=ve;break}if(be<0)return this;if(1===he.length){if(he[0]=void 0,0==--this._eventsCount)return this._events=new EventHandlers,this;delete ye[D]}else!function spliceOne(D,te){for(var he=te,ye=he+1,be=D.length;ye<be;he+=1,ye+=1)D[he]=D[ye];D.pop()}(he,be);ye.removeListener&&this.emit("removeListener",D,we||te)}return this},EventEmitter.prototype.off=function(D,te){return this.removeListener(D,te)},EventEmitter.prototype.removeAllListeners=function removeAllListeners(D){var te,he;if(!(he=this._events))return this;if(!he.removeListener)return 0===arguments.length?(this._events=new EventHandlers,this._eventsCount=0):he[D]&&(0==--this._eventsCount?this._events=new EventHandlers:delete he[D]),this;if(0===arguments.length){for(var ye,be=Object.keys(he),ve=0;ve<be.length;++ve)"removeListener"!==(ye=be[ve])&&this.removeAllListeners(ye);return this.removeAllListeners("removeListener"),this._events=new EventHandlers,this._eventsCount=0,this}if("function"==typeof(te=he[D]))this.removeListener(D,te);else if(te)do{this.removeListener(D,te[te.length-1])}while(te[0]);return this},EventEmitter.prototype.listeners=function listeners(D){var te,he,ye=this._events;return he=ye&&(te=ye[D])?"function"==typeof te?[te.listener||te]:function unwrapListeners(D){for(var te=new Array(D.length),he=0;he<te.length;++he)te[he]=D[he].listener||D[he];return te}(te):[],he},EventEmitter.listenerCount=function(D,te){return"function"==typeof D.listenerCount?D.listenerCount(te):listenerCount$1.call(D,te)},EventEmitter.prototype.listenerCount=listenerCount$1,EventEmitter.prototype.eventNames=function eventNames(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};var Ay,Ey,Py=getAugmentedNamespace$1(Object.freeze({__proto__:null,EventEmitter:EventEmitter,default:EventEmitter}));function requireStreamBrowser(){return Ey?Ay:(Ey=1,Ay=Py.EventEmitter)}var Sy,Cy,Iy,Ry,ky=getAugmentedNamespace$1(_p);function requireBuffer_list(){if(Cy)return Sy;function ownKeys(D,te){var he=Object.keys(D);if(Object.getOwnPropertySymbols){var ye=Object.getOwnPropertySymbols(D);te&&(ye=ye.filter((function(te){return Object.getOwnPropertyDescriptor(D,te).enumerable}))),he.push.apply(he,ye)}return he}function _objectSpread(D){for(var te=1;te<arguments.length;te++){var he=null!=arguments[te]?arguments[te]:{};te%2?ownKeys(Object(he),!0).forEach((function(te){_defineProperty(D,te,he[te])})):Object.getOwnPropertyDescriptors?Object.defineProperties(D,Object.getOwnPropertyDescriptors(he)):ownKeys(Object(he)).forEach((function(te){Object.defineProperty(D,te,Object.getOwnPropertyDescriptor(he,te))}))}return D}function _defineProperty(D,te,he){return(te=_toPropertyKey(te))in D?Object.defineProperty(D,te,{value:he,enumerable:!0,configurable:!0,writable:!0}):D[te]=he,D}function _createClass(D,te,he){return te&&function _defineProperties(D,te){for(var he=0;he<te.length;he++){var ye=te[he];ye.enumerable=ye.enumerable||!1,ye.configurable=!0,"value"in ye&&(ye.writable=!0),Object.defineProperty(D,_toPropertyKey(ye.key),ye)}}(D.prototype,te),Object.defineProperty(D,"prototype",{writable:!1}),D}function _toPropertyKey(D){var te=function _toPrimitive(D,te){if("object"!=typeof D||null===D)return D;var he=D[Symbol.toPrimitive];if(void 0!==he){var ye=he.call(D,te||"default");if("object"!=typeof ye)return ye;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===te?String:Number)(D)}(D,"string");return"symbol"==typeof te?te:String(te)}Cy=1;var D=Ri.Buffer,te=ky.inspect,he=te&&te.custom||"inspect";function copyBuffer(te,he,ye){D.prototype.copy.call(te,he,ye)}return Sy=function(){function BufferList(){!function _classCallCheck(D,te){if(!(D instanceof te))throw new TypeError("Cannot call a class as a function")}(this,BufferList),this.head=null,this.tail=null,this.length=0}return _createClass(BufferList,[{key:"push",value:function push(D){var te={data:D,next:null};this.length>0?this.tail.next=te:this.head=te,this.tail=te,++this.length}},{key:"unshift",value:function unshift(D){var te={data:D,next:this.head};0===this.length&&(this.tail=te),this.head=te,++this.length}},{key:"shift",value:function shift(){if(0!==this.length){var D=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,D}}},{key:"clear",value:function clear(){this.head=this.tail=null,this.length=0}},{key:"join",value:function join(D){if(0===this.length)return"";for(var te=this.head,he=""+te.data;te=te.next;)he+=D+te.data;return he}},{key:"concat",value:function concat(te){if(0===this.length)return D.alloc(0);for(var he=D.allocUnsafe(te>>>0),ye=this.head,be=0;ye;)copyBuffer(ye.data,he,be),be+=ye.data.length,ye=ye.next;return he}},{key:"consume",value:function consume(D,te){var he;return D<this.head.data.length?(he=this.head.data.slice(0,D),this.head.data=this.head.data.slice(D)):he=D===this.head.data.length?this.shift():te?this._getString(D):this._getBuffer(D),he}},{key:"first",value:function first(){return this.head.data}},{key:"_getString",value:function _getString(D){var te=this.head,he=1,ye=te.data;for(D-=ye.length;te=te.next;){var be=te.data,ve=D>be.length?be.length:D;if(ve===be.length?ye+=be:ye+=be.slice(0,D),0===(D-=ve)){ve===be.length?(++he,te.next?this.head=te.next:this.head=this.tail=null):(this.head=te,te.data=be.slice(ve));break}++he}return this.length-=he,ye}},{key:"_getBuffer",value:function _getBuffer(te){var he=D.allocUnsafe(te),ye=this.head,be=1;for(ye.data.copy(he),te-=ye.data.length;ye=ye.next;){var ve=ye.data,we=te>ve.length?ve.length:te;if(ve.copy(he,he.length-te,0,we),0===(te-=we)){we===ve.length?(++be,ye.next?this.head=ye.next:this.head=this.tail=null):(this.head=ye,ye.data=ve.slice(we));break}++be}return this.length-=be,he}},{key:he,value:function value(D,he){return te(this,_objectSpread(_objectSpread({},he),{},{depth:0,customInspect:!1}))}}]),BufferList}(),Sy}function requireDestroy(){if(Ry)return Iy;function emitErrorAndCloseNT(D,te){emitErrorNT(D,te),emitCloseNT(D)}function emitCloseNT(D){D._writableState&&!D._writableState.emitClose||D._readableState&&!D._readableState.emitClose||D.emit("close")}function emitErrorNT(D,te){D.emit("error",te)}return Ry=1,Iy={destroy:function destroy(D,te){var he=this,ye=this._readableState&&this._readableState.destroyed,be=this._writableState&&this._writableState.destroyed;return ye||be?(te?te(D):D&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(emitErrorNT,this,D)):process.nextTick(emitErrorNT,this,D)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(D||null,(function(D){!te&&D?he._writableState?he._writableState.errorEmitted?process.nextTick(emitCloseNT,he):(he._writableState.errorEmitted=!0,process.nextTick(emitErrorAndCloseNT,he,D)):process.nextTick(emitErrorAndCloseNT,he,D):te?(process.nextTick(emitCloseNT,he),te(D)):process.nextTick(emitCloseNT,he)})),this)},undestroy:function undestroy(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function errorOrDestroy(D,te){var he=D._readableState,ye=D._writableState;he&&he.autoDestroy||ye&&ye.autoDestroy?D.destroy(te):D.emit("error",te)}}}var Oy={};var xy,Ny,My,By,Fy,Dy,Ly,Uy,$y={};function createErrorType(D,te,he){he||(he=Error);var ye=function(D){function NodeError(he,ye,be){return D.call(this,function getMessage(D,he,ye){return"string"==typeof te?te:te(D,he,ye)}(he,ye,be))||this}return function _inheritsLoose$5(D,te){D.prototype=Object.create(te.prototype),D.prototype.constructor=D,D.__proto__=te}(NodeError,D),NodeError}(he);ye.prototype.name=he.name,ye.prototype.code=D,$y[D]=ye}function oneOf(D,te){if(Array.isArray(D)){var he=D.length;return D=D.map((function(D){return String(D)})),he>2?"one of ".concat(te," ").concat(D.slice(0,he-1).join(", "),", or ")+D[he-1]:2===he?"one of ".concat(te," ").concat(D[0]," or ").concat(D[1]):"of ".concat(te," ").concat(D[0])}return"of ".concat(te," ").concat(String(D))}function requireState(){if(Ny)return xy;Ny=1;var D=Oy.codes.ERR_INVALID_OPT_VALUE;return xy={getHighWaterMark:function getHighWaterMark(te,he,ye,be){var ve=function highWaterMarkFrom(D,te,he){return null!=D.highWaterMark?D.highWaterMark:te?D[he]:null}(he,be,ye);if(null!=ve){if(!isFinite(ve)||Math.floor(ve)!==ve||ve<0)throw new D(be?ye:"highWaterMark",ve);return Math.floor(ve)}return te.objectMode?16:16384}}}function requireBrowser(){if(By)return My;function config(D){try{if(!rn.localStorage)return!1}catch(D){return!1}var te=rn.localStorage[D];return null!=te&&"true"===String(te).toLowerCase()}return By=1,My=function deprecate(D,te){if(config("noDeprecation"))return D;var he=!1;return function deprecated(){if(!he){if(config("throwDeprecation"))throw new Error(te);config("traceDeprecation")?console.trace(te):console.warn(te),he=!0}return D.apply(this,arguments)}},My}function require_stream_writable(){if(Dy)return Fy;function CorkedRequest(D){var te=this;this.next=null,this.entry=null,this.finish=function(){!function onCorkedFinish(D,te,he){var ye=D.entry;D.entry=null;for(;ye;){var be=ye.callback;te.pendingcb--,be(he),ye=ye.next}te.corkedRequestsFree.next=D}(te,D)}}var D;Dy=1,Fy=Writable,Writable.WritableState=WritableState;var te={deprecate:requireBrowser()},he=requireStreamBrowser(),ye=Ri.Buffer,be=(void 0!==rn?rn:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var ve,we=requireDestroy(),_e=requireState().getHighWaterMark,Pe=Oy.codes,Ie=Pe.ERR_INVALID_ARG_TYPE,Re=Pe.ERR_METHOD_NOT_IMPLEMENTED,ke=Pe.ERR_MULTIPLE_CALLBACK,Oe=Pe.ERR_STREAM_CANNOT_PIPE,xe=Pe.ERR_STREAM_DESTROYED,Be=Pe.ERR_STREAM_NULL_VALUES,Fe=Pe.ERR_STREAM_WRITE_AFTER_END,De=Pe.ERR_UNKNOWN_ENCODING,Le=we.errorOrDestroy;function nop(){}function WritableState(te,he,ye){D=D||require_stream_duplex(),te=te||{},"boolean"!=typeof ye&&(ye=he instanceof D),this.objectMode=!!te.objectMode,ye&&(this.objectMode=this.objectMode||!!te.writableObjectMode),this.highWaterMark=_e(this,te,"writableHighWaterMark",ye),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var be=!1===te.decodeStrings;this.decodeStrings=!be,this.defaultEncoding=te.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(D){!function onwrite(D,te){var he=D._writableState,ye=he.sync,be=he.writecb;if("function"!=typeof be)throw new ke;if(function onwriteStateUpdate(D){D.writing=!1,D.writecb=null,D.length-=D.writelen,D.writelen=0}(he),te)!function onwriteError(D,te,he,ye,be){--te.pendingcb,he?(process.nextTick(be,ye),process.nextTick(finishMaybe,D,te),D._writableState.errorEmitted=!0,Le(D,ye)):(be(ye),D._writableState.errorEmitted=!0,Le(D,ye),finishMaybe(D,te))}(D,he,ye,te,be);else{var ve=needFinish(he)||D.destroyed;ve||he.corked||he.bufferProcessing||!he.bufferedRequest||clearBuffer(D,he),ye?process.nextTick(afterWrite,D,he,ve,be):afterWrite(D,he,ve,be)}}(he,D)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==te.emitClose,this.autoDestroy=!!te.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new CorkedRequest(this)}function Writable(te){var ye=this instanceof(D=D||require_stream_duplex());if(!ye&&!ve.call(Writable,this))return new Writable(te);this._writableState=new WritableState(te,this,ye),this.writable=!0,te&&("function"==typeof te.write&&(this._write=te.write),"function"==typeof te.writev&&(this._writev=te.writev),"function"==typeof te.destroy&&(this._destroy=te.destroy),"function"==typeof te.final&&(this._final=te.final)),he.call(this)}function doWrite(D,te,he,ye,be,ve,we){te.writelen=ye,te.writecb=we,te.writing=!0,te.sync=!0,te.destroyed?te.onwrite(new xe("write")):he?D._writev(be,te.onwrite):D._write(be,ve,te.onwrite),te.sync=!1}function afterWrite(D,te,he,ye){he||function onwriteDrain(D,te){0===te.length&&te.needDrain&&(te.needDrain=!1,D.emit("drain"))}(D,te),te.pendingcb--,ye(),finishMaybe(D,te)}function clearBuffer(D,te){te.bufferProcessing=!0;var he=te.bufferedRequest;if(D._writev&&he&&he.next){var ye=te.bufferedRequestCount,be=new Array(ye),ve=te.corkedRequestsFree;ve.entry=he;for(var we=0,_e=!0;he;)be[we]=he,he.isBuf||(_e=!1),he=he.next,we+=1;be.allBuffers=_e,doWrite(D,te,!0,te.length,be,"",ve.finish),te.pendingcb++,te.lastBufferedRequest=null,ve.next?(te.corkedRequestsFree=ve.next,ve.next=null):te.corkedRequestsFree=new CorkedRequest(te),te.bufferedRequestCount=0}else{for(;he;){var Pe=he.chunk,Ie=he.encoding,Re=he.callback;if(doWrite(D,te,!1,te.objectMode?1:Pe.length,Pe,Ie,Re),he=he.next,te.bufferedRequestCount--,te.writing)break}null===he&&(te.lastBufferedRequest=null)}te.bufferedRequest=he,te.bufferProcessing=!1}function needFinish(D){return D.ending&&0===D.length&&null===D.bufferedRequest&&!D.finished&&!D.writing}function callFinal(D,te){D._final((function(he){te.pendingcb--,he&&Le(D,he),te.prefinished=!0,D.emit("prefinish"),finishMaybe(D,te)}))}function finishMaybe(D,te){var he=needFinish(te);if(he&&(function prefinish(D,te){te.prefinished||te.finalCalled||("function"!=typeof D._final||te.destroyed?(te.prefinished=!0,D.emit("prefinish")):(te.pendingcb++,te.finalCalled=!0,process.nextTick(callFinal,D,te)))}(D,te),0===te.pendingcb&&(te.finished=!0,D.emit("finish"),te.autoDestroy))){var ye=D._readableState;(!ye||ye.autoDestroy&&ye.endEmitted)&&D.destroy()}return he}return dc(Writable,he),WritableState.prototype.getBuffer=function getBuffer(){for(var D=this.bufferedRequest,te=[];D;)te.push(D),D=D.next;return te},function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:te.deprecate((function writableStateBufferGetter(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(D){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(ve=Function.prototype[Symbol.hasInstance],Object.defineProperty(Writable,Symbol.hasInstance,{value:function value(D){return!!ve.call(this,D)||this===Writable&&(D&&D._writableState instanceof WritableState)}})):ve=function realHasInstance(D){return D instanceof this},Writable.prototype.pipe=function(){Le(this,new Oe)},Writable.prototype.write=function(D,te,he){var ve=this._writableState,we=!1,_e=!ve.objectMode&&function _isUint8Array(D){return ye.isBuffer(D)||D instanceof be}(D);return _e&&!ye.isBuffer(D)&&(D=function _uint8ArrayToBuffer(D){return ye.from(D)}(D)),"function"==typeof te&&(he=te,te=null),_e?te="buffer":te||(te=ve.defaultEncoding),"function"!=typeof he&&(he=nop),ve.ending?function writeAfterEnd(D,te){var he=new Fe;Le(D,he),process.nextTick(te,he)}(this,he):(_e||function validChunk(D,te,he,ye){var be;return null===he?be=new Be:"string"==typeof he||te.objectMode||(be=new Ie("chunk",["string","Buffer"],he)),!be||(Le(D,be),process.nextTick(ye,be),!1)}(this,ve,D,he))&&(ve.pendingcb++,we=function writeOrBuffer(D,te,he,be,ve,we){if(!he){var _e=function decodeChunk(D,te,he){D.objectMode||!1===D.decodeStrings||"string"!=typeof te||(te=ye.from(te,he));return te}(te,be,ve);be!==_e&&(he=!0,ve="buffer",be=_e)}var Pe=te.objectMode?1:be.length;te.length+=Pe;var Ie=te.length<te.highWaterMark;Ie||(te.needDrain=!0);if(te.writing||te.corked){var Re=te.lastBufferedRequest;te.lastBufferedRequest={chunk:be,encoding:ve,isBuf:he,callback:we,next:null},Re?Re.next=te.lastBufferedRequest:te.bufferedRequest=te.lastBufferedRequest,te.bufferedRequestCount+=1}else doWrite(D,te,!1,Pe,be,ve,we);return Ie}(this,ve,_e,D,te,he)),we},Writable.prototype.cork=function(){this._writableState.corked++},Writable.prototype.uncork=function(){var D=this._writableState;D.corked&&(D.corked--,D.writing||D.corked||D.bufferProcessing||!D.bufferedRequest||clearBuffer(this,D))},Writable.prototype.setDefaultEncoding=function setDefaultEncoding(D){if("string"==typeof D&&(D=D.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((D+"").toLowerCase())>-1))throw new De(D);return this._writableState.defaultEncoding=D,this},Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:!1,get:function get(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:!1,get:function get(){return this._writableState.highWaterMark}}),Writable.prototype._write=function(D,te,he){he(new Re("_write()"))},Writable.prototype._writev=null,Writable.prototype.end=function(D,te,he){var ye=this._writableState;return"function"==typeof D?(he=D,D=null,te=null):"function"==typeof te&&(he=te,te=null),null!=D&&this.write(D,te),ye.corked&&(ye.corked=1,this.uncork()),ye.ending||function endWritable(D,te,he){te.ending=!0,finishMaybe(D,te),he&&(te.finished?process.nextTick(he):D.once("finish",he));te.ended=!0,D.writable=!1}(this,ye,he),this},Object.defineProperty(Writable.prototype,"writableLength",{enumerable:!1,get:function get(){return this._writableState.length}}),Object.defineProperty(Writable.prototype,"destroyed",{enumerable:!1,get:function get(){return void 0!==this._writableState&&this._writableState.destroyed},set:function set(D){this._writableState&&(this._writableState.destroyed=D)}}),Writable.prototype.destroy=we.destroy,Writable.prototype._undestroy=we.undestroy,Writable.prototype._destroy=function(D,te){te(D)},Fy}function require_stream_duplex(){if(Uy)return Ly;Uy=1;var D=Object.keys||function(D){var te=[];for(var he in D)te.push(he);return te};Ly=Duplex;var te=require_stream_readable(),he=require_stream_writable();dc(Duplex,te);for(var ye=D(he.prototype),be=0;be<ye.length;be++){var ve=ye[be];Duplex.prototype[ve]||(Duplex.prototype[ve]=he.prototype[ve])}function Duplex(D){if(!(this instanceof Duplex))return new Duplex(D);te.call(this,D),he.call(this,D),this.allowHalfOpen=!0,D&&(!1===D.readable&&(this.readable=!1),!1===D.writable&&(this.writable=!1),!1===D.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",onend)))}function onend(){this._writableState.ended||process.nextTick(onEndNT,this)}function onEndNT(D){D.end()}return Object.defineProperty(Duplex.prototype,"writableHighWaterMark",{enumerable:!1,get:function get(){return this._writableState.highWaterMark}}),Object.defineProperty(Duplex.prototype,"writableBuffer",{enumerable:!1,get:function get(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(Duplex.prototype,"writableLength",{enumerable:!1,get:function get(){return this._writableState.length}}),Object.defineProperty(Duplex.prototype,"destroyed",{enumerable:!1,get:function get(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function set(D){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=D,this._writableState.destroyed=D)}}),Ly}createErrorType("ERR_INVALID_OPT_VALUE",(function(D,te){return'The value "'+te+'" is invalid for option "'+D+'"'}),TypeError),createErrorType("ERR_INVALID_ARG_TYPE",(function(D,te,he){var ye,be;if("string"==typeof te&&function startsWith(D,te,he){return D.substr(0,te.length)===te}(te,"not ")?(ye="must not be",te=te.replace(/^not /,"")):ye="must be",function endsWith$1(D,te,he){return(void 0===he||he>D.length)&&(he=D.length),D.substring(he-te.length,he)===te}(D," argument"))be="The ".concat(D," ").concat(ye," ").concat(oneOf(te,"type"));else{var ve=function includes(D,te,he){return"number"!=typeof he&&(he=0),!(he+te.length>D.length)&&-1!==D.indexOf(te,he)}(D,".")?"property":"argument";be='The "'.concat(D,'" ').concat(ve," ").concat(ye," ").concat(oneOf(te,"type"))}return be+=". Received type ".concat(typeof he)}),TypeError),createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),createErrorType("ERR_METHOD_NOT_IMPLEMENTED",(function(D){return"The "+D+" method is not implemented"})),createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close"),createErrorType("ERR_STREAM_DESTROYED",(function(D){return"Cannot call "+D+" after a stream was destroyed"})),createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end"),createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),createErrorType("ERR_UNKNOWN_ENCODING",(function(D){return"Unknown encoding: "+D}),TypeError),createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),Oy.codes=$y;var qy=Buffer$h.isEncoding||function(D){switch(D&&D.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function StringDecoder$1(D){switch(this.encoding=(D||"utf8").toLowerCase().replace(/[-_]/,""),function assertEncoding(D){if(D&&!qy(D))throw new Error("Unknown encoding: "+D)}(D),this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2,this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3,this.detectIncompleteChar=base64DetectIncompleteChar;break;default:return void(this.write=passThroughWrite)}this.charBuffer=new Buffer$h(6),this.charReceived=0,this.charLength=0}function passThroughWrite(D){return D.toString(this.encoding)}function utf16DetectIncompleteChar(D){this.charReceived=D.length%2,this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(D){this.charReceived=D.length%3,this.charLength=this.charReceived?3:0}StringDecoder$1.prototype.write=function(D){for(var te="";this.charLength;){var he=D.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:D.length;if(D.copy(this.charBuffer,this.charReceived,0,he),this.charReceived+=he,this.charReceived<this.charLength)return"";if(D=D.slice(he,D.length),!((be=(te=this.charBuffer.slice(0,this.charLength).toString(this.encoding)).charCodeAt(te.length-1))>=55296&&be<=56319)){if(this.charReceived=this.charLength=0,0===D.length)return te;break}this.charLength+=this.surrogateSize,te=""}this.detectIncompleteChar(D);var ye=D.length;this.charLength&&(D.copy(this.charBuffer,0,D.length-this.charReceived,ye),ye-=this.charReceived);var be;ye=(te+=D.toString(this.encoding,0,ye)).length-1;if((be=te.charCodeAt(ye))>=55296&&be<=56319){var ve=this.surrogateSize;return this.charLength+=ve,this.charReceived+=ve,this.charBuffer.copy(this.charBuffer,ve,0,ve),D.copy(this.charBuffer,0,0,ve),te.substring(0,ye)}return te},StringDecoder$1.prototype.detectIncompleteChar=function(D){for(var te=D.length>=3?3:D.length;te>0;te--){var he=D[D.length-te];if(1==te&&he>>5==6){this.charLength=2;break}if(te<=2&&he>>4==14){this.charLength=3;break}if(te<=3&&he>>3==30){this.charLength=4;break}}this.charReceived=te},StringDecoder$1.prototype.end=function(D){var te="";if(D&&D.length&&(te=this.write(D)),this.charReceived){var he=this.charReceived,ye=this.charBuffer,be=this.encoding;te+=ye.slice(0,he).toString(be)}return te};var Gy=getAugmentedNamespace$1(Object.freeze({__proto__:null,StringDecoder:StringDecoder$1})),jy=Oy.codes.ERR_STREAM_PREMATURE_CLOSE;function noop$2(){}var Hy,zy,Wy,Vy,Ky,Jy,Xy=function eos$1(D,te,he){if("function"==typeof te)return eos$1(D,null,te);te||(te={}),he=function once$1(D){var te=!1;return function(){if(!te){te=!0;for(var he=arguments.length,ye=new Array(he),be=0;be<he;be++)ye[be]=arguments[be];D.apply(this,ye)}}}(he||noop$2);var ye=te.readable||!1!==te.readable&&D.readable,be=te.writable||!1!==te.writable&&D.writable,ve=function onlegacyfinish(){D.writable||_e()},we=D._writableState&&D._writableState.finished,_e=function onfinish(){be=!1,we=!0,ye||he.call(D)},Pe=D._readableState&&D._readableState.endEmitted,Ie=function onend(){ye=!1,Pe=!0,be||he.call(D)},Re=function onerror(te){he.call(D,te)},ke=function onclose(){var te;return ye&&!Pe?(D._readableState&&D._readableState.ended||(te=new jy),he.call(D,te)):be&&!we?(D._writableState&&D._writableState.ended||(te=new jy),he.call(D,te)):void 0},Oe=function onrequest(){D.req.on("finish",_e)};return!function isRequest$1(D){return D.setHeader&&"function"==typeof D.abort}(D)?be&&!D._writableState&&(D.on("end",ve),D.on("close",ve)):(D.on("complete",_e),D.on("abort",ke),D.req?Oe():D.on("request",Oe)),D.on("end",Ie),D.on("finish",_e),!1!==te.error&&D.on("error",Re),D.on("close",ke),function(){D.removeListener("complete",_e),D.removeListener("abort",ke),D.removeListener("request",Oe),D.req&&D.req.removeListener("finish",_e),D.removeListener("end",ve),D.removeListener("close",ve),D.removeListener("finish",_e),D.removeListener("end",Ie),D.removeListener("error",Re),D.removeListener("close",ke)}};function requireAsync_iterator(){if(zy)return Hy;var D;function _defineProperty(D,te,he){return(te=function _toPropertyKey(D){var te=function _toPrimitive(D,te){if("object"!=typeof D||null===D)return D;var he=D[Symbol.toPrimitive];if(void 0!==he){var ye=he.call(D,te||"default");if("object"!=typeof ye)return ye;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===te?String:Number)(D)}(D,"string");return"symbol"==typeof te?te:String(te)}(te))in D?Object.defineProperty(D,te,{value:he,enumerable:!0,configurable:!0,writable:!0}):D[te]=he,D}zy=1;var te=Xy,he=Symbol("lastResolve"),ye=Symbol("lastReject"),be=Symbol("error"),ve=Symbol("ended"),we=Symbol("lastPromise"),_e=Symbol("handlePromise"),Pe=Symbol("stream");function createIterResult(D,te){return{value:D,done:te}}function readAndResolve(D){var te=D[he];if(null!==te){var be=D[Pe].read();null!==be&&(D[we]=null,D[he]=null,D[ye]=null,te(createIterResult(be,!1)))}}function onReadable(D){process.nextTick(readAndResolve,D)}var Ie=Object.getPrototypeOf((function(){})),Re=Object.setPrototypeOf((D={get stream(){return this[Pe]},next:function next(){var D=this,te=this[be];if(null!==te)return Promise.reject(te);if(this[ve])return Promise.resolve(createIterResult(void 0,!0));if(this[Pe].destroyed)return new Promise((function(te,he){process.nextTick((function(){D[be]?he(D[be]):te(createIterResult(void 0,!0))}))}));var he,ye=this[we];if(ye)he=new Promise(function wrapForNext(D,te){return function(he,ye){D.then((function(){te[ve]?he(createIterResult(void 0,!0)):te[_e](he,ye)}),ye)}}(ye,this));else{var Ie=this[Pe].read();if(null!==Ie)return Promise.resolve(createIterResult(Ie,!1));he=new Promise(this[_e])}return this[we]=he,he}},_defineProperty(D,Symbol.asyncIterator,(function(){return this})),_defineProperty(D,"return",(function _return(){var D=this;return new Promise((function(te,he){D[Pe].destroy(null,(function(D){D?he(D):te(createIterResult(void 0,!0))}))}))})),D),Ie);return Hy=function createReadableStreamAsyncIterator(D){var Ie,ke=Object.create(Re,(_defineProperty(Ie={},Pe,{value:D,writable:!0}),_defineProperty(Ie,he,{value:null,writable:!0}),_defineProperty(Ie,ye,{value:null,writable:!0}),_defineProperty(Ie,be,{value:null,writable:!0}),_defineProperty(Ie,ve,{value:D._readableState.endEmitted,writable:!0}),_defineProperty(Ie,_e,{value:function value(D,te){var be=ke[Pe].read();be?(ke[we]=null,ke[he]=null,ke[ye]=null,D(createIterResult(be,!1))):(ke[he]=D,ke[ye]=te)},writable:!0}),Ie));return ke[we]=null,te(D,(function(D){if(D&&"ERR_STREAM_PREMATURE_CLOSE"!==D.code){var te=ke[ye];return null!==te&&(ke[we]=null,ke[he]=null,ke[ye]=null,te(D)),void(ke[be]=D)}var _e=ke[he];null!==_e&&(ke[we]=null,ke[he]=null,ke[ye]=null,_e(createIterResult(void 0,!0))),ke[ve]=!0})),D.on("readable",onReadable.bind(null,ke)),ke},Hy}function require_stream_readable(){if(Jy)return Ky;var D;Jy=1,Ky=Readable,Readable.ReadableState=ReadableState,Py.EventEmitter;var te=function EElistenerCount(D,te){return D.listeners(te).length},he=requireStreamBrowser(),ye=Ri.Buffer,be=(void 0!==rn?rn:"undefined"!=typeof window?window:"undefined"!=typeof self?self:{}).Uint8Array||function(){};var ve,we=ky;ve=we&&we.debuglog?we.debuglog("stream"):function debug(){};var _e,Pe,Ie,Re=requireBuffer_list(),ke=requireDestroy(),Oe=requireState().getHighWaterMark,xe=Oy.codes,Be=xe.ERR_INVALID_ARG_TYPE,Fe=xe.ERR_STREAM_PUSH_AFTER_EOF,De=xe.ERR_METHOD_NOT_IMPLEMENTED,Le=xe.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;dc(Readable,he);var Ue=ke.errorOrDestroy,qe=["error","close","destroy","pause","resume"];function ReadableState(te,he,ye){D=D||require_stream_duplex(),te=te||{},"boolean"!=typeof ye&&(ye=he instanceof D),this.objectMode=!!te.objectMode,ye&&(this.objectMode=this.objectMode||!!te.readableObjectMode),this.highWaterMark=Oe(this,te,"readableHighWaterMark",ye),this.buffer=new Re,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==te.emitClose,this.autoDestroy=!!te.autoDestroy,this.destroyed=!1,this.defaultEncoding=te.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,te.encoding&&(_e||(_e=Gy.StringDecoder),this.decoder=new _e(te.encoding),this.encoding=te.encoding)}function Readable(te){if(D=D||require_stream_duplex(),!(this instanceof Readable))return new Readable(te);var ye=this instanceof D;this._readableState=new ReadableState(te,this,ye),this.readable=!0,te&&("function"==typeof te.read&&(this._read=te.read),"function"==typeof te.destroy&&(this._destroy=te.destroy)),he.call(this)}function readableAddChunk(D,te,he,we,_e){ve("readableAddChunk",te);var Pe,Ie=D._readableState;if(null===te)Ie.reading=!1,function onEofChunk(D,te){if(ve("onEofChunk"),te.ended)return;if(te.decoder){var he=te.decoder.end();he&&he.length&&(te.buffer.push(he),te.length+=te.objectMode?1:he.length)}te.ended=!0,te.sync?emitReadable(D):(te.needReadable=!1,te.emittedReadable||(te.emittedReadable=!0,emitReadable_(D)))}(D,Ie);else if(_e||(Pe=function chunkInvalid(D,te){var he;(function _isUint8Array(D){return ye.isBuffer(D)||D instanceof be})(te)||"string"==typeof te||void 0===te||D.objectMode||(he=new Be("chunk",["string","Buffer","Uint8Array"],te));return he}(Ie,te)),Pe)Ue(D,Pe);else if(Ie.objectMode||te&&te.length>0)if("string"==typeof te||Ie.objectMode||Object.getPrototypeOf(te)===ye.prototype||(te=function _uint8ArrayToBuffer(D){return ye.from(D)}(te)),we)Ie.endEmitted?Ue(D,new Le):addChunk(D,Ie,te,!0);else if(Ie.ended)Ue(D,new Fe);else{if(Ie.destroyed)return!1;Ie.reading=!1,Ie.decoder&&!he?(te=Ie.decoder.write(te),Ie.objectMode||0!==te.length?addChunk(D,Ie,te,!1):maybeReadMore(D,Ie)):addChunk(D,Ie,te,!1)}else we||(Ie.reading=!1,maybeReadMore(D,Ie));return!Ie.ended&&(Ie.length<Ie.highWaterMark||0===Ie.length)}function addChunk(D,te,he,ye){te.flowing&&0===te.length&&!te.sync?(te.awaitDrain=0,D.emit("data",he)):(te.length+=te.objectMode?1:he.length,ye?te.buffer.unshift(he):te.buffer.push(he),te.needReadable&&emitReadable(D)),maybeReadMore(D,te)}Object.defineProperty(Readable.prototype,"destroyed",{enumerable:!1,get:function get(){return void 0!==this._readableState&&this._readableState.destroyed},set:function set(D){this._readableState&&(this._readableState.destroyed=D)}}),Readable.prototype.destroy=ke.destroy,Readable.prototype._undestroy=ke.undestroy,Readable.prototype._destroy=function(D,te){te(D)},Readable.prototype.push=function(D,te){var he,be=this._readableState;return be.objectMode?he=!0:"string"==typeof D&&((te=te||be.defaultEncoding)!==be.encoding&&(D=ye.from(D,te),te=""),he=!0),readableAddChunk(this,D,te,!1,he)},Readable.prototype.unshift=function(D){return readableAddChunk(this,D,null,!0,!1)},Readable.prototype.isPaused=function(){return!1===this._readableState.flowing},Readable.prototype.setEncoding=function(D){_e||(_e=Gy.StringDecoder);var te=new _e(D);this._readableState.decoder=te,this._readableState.encoding=this._readableState.decoder.encoding;for(var he=this._readableState.buffer.head,ye="";null!==he;)ye+=te.write(he.data),he=he.next;return this._readableState.buffer.clear(),""!==ye&&this._readableState.buffer.push(ye),this._readableState.length=ye.length,this};var je=1073741824;function howMuchToRead(D,te){return D<=0||0===te.length&&te.ended?0:te.objectMode?1:D!=D?te.flowing&&te.length?te.buffer.head.data.length:te.length:(D>te.highWaterMark&&(te.highWaterMark=function computeNewHighWaterMark(D){return D>=je?D=je:(D--,D|=D>>>1,D|=D>>>2,D|=D>>>4,D|=D>>>8,D|=D>>>16,D++),D}(D)),D<=te.length?D:te.ended?te.length:(te.needReadable=!0,0))}function emitReadable(D){var te=D._readableState;ve("emitReadable",te.needReadable,te.emittedReadable),te.needReadable=!1,te.emittedReadable||(ve("emitReadable",te.flowing),te.emittedReadable=!0,process.nextTick(emitReadable_,D))}function emitReadable_(D){var te=D._readableState;ve("emitReadable_",te.destroyed,te.length,te.ended),te.destroyed||!te.length&&!te.ended||(D.emit("readable"),te.emittedReadable=!1),te.needReadable=!te.flowing&&!te.ended&&te.length<=te.highWaterMark,flow(D)}function maybeReadMore(D,te){te.readingMore||(te.readingMore=!0,process.nextTick(maybeReadMore_,D,te))}function maybeReadMore_(D,te){for(;!te.reading&&!te.ended&&(te.length<te.highWaterMark||te.flowing&&0===te.length);){var he=te.length;if(ve("maybeReadMore read 0"),D.read(0),he===te.length)break}te.readingMore=!1}function updateReadableListening(D){var te=D._readableState;te.readableListening=D.listenerCount("readable")>0,te.resumeScheduled&&!te.paused?te.flowing=!0:D.listenerCount("data")>0&&D.resume()}function nReadingNextTick(D){ve("readable nexttick read 0"),D.read(0)}function resume_(D,te){ve("resume",te.reading),te.reading||D.read(0),te.resumeScheduled=!1,D.emit("resume"),flow(D),te.flowing&&!te.reading&&D.read(0)}function flow(D){var te=D._readableState;for(ve("flow",te.flowing);te.flowing&&null!==D.read(););}function fromList(D,te){return 0===te.length?null:(te.objectMode?he=te.buffer.shift():!D||D>=te.length?(he=te.decoder?te.buffer.join(""):1===te.buffer.length?te.buffer.first():te.buffer.concat(te.length),te.buffer.clear()):he=te.buffer.consume(D,te.decoder),he);var he}function endReadable(D){var te=D._readableState;ve("endReadable",te.endEmitted),te.endEmitted||(te.ended=!0,process.nextTick(endReadableNT,te,D))}function endReadableNT(D,te){if(ve("endReadableNT",D.endEmitted,D.length),!D.endEmitted&&0===D.length&&(D.endEmitted=!0,te.readable=!1,te.emit("end"),D.autoDestroy)){var he=te._writableState;(!he||he.autoDestroy&&he.finished)&&te.destroy()}}function indexOf(D,te){for(var he=0,ye=D.length;he<ye;he++)if(D[he]===te)return he;return-1}return Readable.prototype.read=function(D){ve("read",D),D=parseInt(D,10);var te=this._readableState,he=D;if(0!==D&&(te.emittedReadable=!1),0===D&&te.needReadable&&((0!==te.highWaterMark?te.length>=te.highWaterMark:te.length>0)||te.ended))return ve("read: emitReadable",te.length,te.ended),0===te.length&&te.ended?endReadable(this):emitReadable(this),null;if(0===(D=howMuchToRead(D,te))&&te.ended)return 0===te.length&&endReadable(this),null;var ye,be=te.needReadable;return ve("need readable",be),(0===te.length||te.length-D<te.highWaterMark)&&ve("length less than watermark",be=!0),te.ended||te.reading?ve("reading or ended",be=!1):be&&(ve("do read"),te.reading=!0,te.sync=!0,0===te.length&&(te.needReadable=!0),this._read(te.highWaterMark),te.sync=!1,te.reading||(D=howMuchToRead(he,te))),null===(ye=D>0?fromList(D,te):null)?(te.needReadable=te.length<=te.highWaterMark,D=0):(te.length-=D,te.awaitDrain=0),0===te.length&&(te.ended||(te.needReadable=!0),he!==D&&te.ended&&endReadable(this)),null!==ye&&this.emit("data",ye),ye},Readable.prototype._read=function(D){Ue(this,new De("_read()"))},Readable.prototype.pipe=function(D,he){var ye=this,be=this._readableState;switch(be.pipesCount){case 0:be.pipes=D;break;case 1:be.pipes=[be.pipes,D];break;default:be.pipes.push(D)}be.pipesCount+=1,ve("pipe count=%d opts=%j",be.pipesCount,he);var we=(!he||!1!==he.end)&&D!==process.stdout&&D!==process.stderr?onend:unpipe;function onunpipe(te,he){ve("onunpipe"),te===ye&&he&&!1===he.hasUnpiped&&(he.hasUnpiped=!0,function cleanup(){ve("cleanup"),D.removeListener("close",onclose),D.removeListener("finish",onfinish),D.removeListener("drain",_e),D.removeListener("error",onerror),D.removeListener("unpipe",onunpipe),ye.removeListener("end",onend),ye.removeListener("end",unpipe),ye.removeListener("data",ondata),Pe=!0,!be.awaitDrain||D._writableState&&!D._writableState.needDrain||_e()}())}function onend(){ve("onend"),D.end()}be.endEmitted?process.nextTick(we):ye.once("end",we),D.on("unpipe",onunpipe);var _e=function pipeOnDrain(D){return function pipeOnDrainFunctionResult(){var he=D._readableState;ve("pipeOnDrain",he.awaitDrain),he.awaitDrain&&he.awaitDrain--,0===he.awaitDrain&&te(D,"data")&&(he.flowing=!0,flow(D))}}(ye);D.on("drain",_e);var Pe=!1;function ondata(te){ve("ondata");var he=D.write(te);ve("dest.write",he),!1===he&&((1===be.pipesCount&&be.pipes===D||be.pipesCount>1&&-1!==indexOf(be.pipes,D))&&!Pe&&(ve("false write response, pause",be.awaitDrain),be.awaitDrain++),ye.pause())}function onerror(he){ve("onerror",he),unpipe(),D.removeListener("error",onerror),0===te(D,"error")&&Ue(D,he)}function onclose(){D.removeListener("finish",onfinish),unpipe()}function onfinish(){ve("onfinish"),D.removeListener("close",onclose),unpipe()}function unpipe(){ve("unpipe"),ye.unpipe(D)}return ye.on("data",ondata),function prependListener(D,te,he){if("function"==typeof D.prependListener)return D.prependListener(te,he);D._events&&D._events[te]?Array.isArray(D._events[te])?D._events[te].unshift(he):D._events[te]=[he,D._events[te]]:D.on(te,he)}(D,"error",onerror),D.once("close",onclose),D.once("finish",onfinish),D.emit("pipe",ye),be.flowing||(ve("pipe resume"),ye.resume()),D},Readable.prototype.unpipe=function(D){var te=this._readableState,he={hasUnpiped:!1};if(0===te.pipesCount)return this;if(1===te.pipesCount)return D&&D!==te.pipes||(D||(D=te.pipes),te.pipes=null,te.pipesCount=0,te.flowing=!1,D&&D.emit("unpipe",this,he)),this;if(!D){var ye=te.pipes,be=te.pipesCount;te.pipes=null,te.pipesCount=0,te.flowing=!1;for(var ve=0;ve<be;ve++)ye[ve].emit("unpipe",this,{hasUnpiped:!1});return this}var we=indexOf(te.pipes,D);return-1===we||(te.pipes.splice(we,1),te.pipesCount-=1,1===te.pipesCount&&(te.pipes=te.pipes[0]),D.emit("unpipe",this,he)),this},Readable.prototype.on=function(D,te){var ye=he.prototype.on.call(this,D,te),be=this._readableState;return"data"===D?(be.readableListening=this.listenerCount("readable")>0,!1!==be.flowing&&this.resume()):"readable"===D&&(be.endEmitted||be.readableListening||(be.readableListening=be.needReadable=!0,be.flowing=!1,be.emittedReadable=!1,ve("on readable",be.length,be.reading),be.length?emitReadable(this):be.reading||process.nextTick(nReadingNextTick,this))),ye},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.removeListener=function(D,te){var ye=he.prototype.removeListener.call(this,D,te);return"readable"===D&&process.nextTick(updateReadableListening,this),ye},Readable.prototype.removeAllListeners=function(D){var te=he.prototype.removeAllListeners.apply(this,arguments);return"readable"!==D&&void 0!==D||process.nextTick(updateReadableListening,this),te},Readable.prototype.resume=function(){var D=this._readableState;return D.flowing||(ve("resume"),D.flowing=!D.readableListening,function resume(D,te){te.resumeScheduled||(te.resumeScheduled=!0,process.nextTick(resume_,D,te))}(this,D)),D.paused=!1,this},Readable.prototype.pause=function(){return ve("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(ve("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},Readable.prototype.wrap=function(D){var te=this,he=this._readableState,ye=!1;for(var be in D.on("end",(function(){if(ve("wrapped end"),he.decoder&&!he.ended){var D=he.decoder.end();D&&D.length&&te.push(D)}te.push(null)})),D.on("data",(function(be){(ve("wrapped data"),he.decoder&&(be=he.decoder.write(be)),he.objectMode&&null==be)||(he.objectMode||be&&be.length)&&(te.push(be)||(ye=!0,D.pause()))})),D)void 0===this[be]&&"function"==typeof D[be]&&(this[be]=function methodWrap(te){return function methodWrapReturnFunction(){return D[te].apply(D,arguments)}}(be));for(var we=0;we<qe.length;we++)D.on(qe[we],this.emit.bind(this,qe[we]));return this._read=function(te){ve("wrapped _read",te),ye&&(ye=!1,D.resume())},this},"function"==typeof Symbol&&(Readable.prototype[Symbol.asyncIterator]=function(){return void 0===Pe&&(Pe=requireAsync_iterator()),Pe(this)}),Object.defineProperty(Readable.prototype,"readableHighWaterMark",{enumerable:!1,get:function get(){return this._readableState.highWaterMark}}),Object.defineProperty(Readable.prototype,"readableBuffer",{enumerable:!1,get:function get(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(Readable.prototype,"readableFlowing",{enumerable:!1,get:function get(){return this._readableState.flowing},set:function set(D){this._readableState&&(this._readableState.flowing=D)}}),Readable._fromList=fromList,Object.defineProperty(Readable.prototype,"readableLength",{enumerable:!1,get:function get(){return this._readableState.length}}),"function"==typeof Symbol&&(Readable.from=function(D,te){return void 0===Ie&&(Ie=function requireFromBrowser(){return Vy?Wy:(Vy=1,Wy=function(){throw new Error("Readable.from is not available in the browser")})}()),Ie(Readable,D,te)}),Ky}var Qy=Transform$6,Zy=Oy.codes,Yy=Zy.ERR_METHOD_NOT_IMPLEMENTED,em=Zy.ERR_MULTIPLE_CALLBACK,tm=Zy.ERR_TRANSFORM_ALREADY_TRANSFORMING,rm=Zy.ERR_TRANSFORM_WITH_LENGTH_0,nm=require_stream_duplex();function afterTransform$1(D,te){var he=this._transformState;he.transforming=!1;var ye=he.writecb;if(null===ye)return this.emit("error",new em);he.writechunk=null,he.writecb=null,null!=te&&this.push(te),ye(D);var be=this._readableState;be.reading=!1,(be.needReadable||be.length<be.highWaterMark)&&this._read(be.highWaterMark)}function Transform$6(D){if(!(this instanceof Transform$6))return new Transform$6(D);nm.call(this,D),this._transformState={afterTransform:afterTransform$1.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,D&&("function"==typeof D.transform&&(this._transform=D.transform),"function"==typeof D.flush&&(this._flush=D.flush)),this.on("prefinish",prefinish$1)}function prefinish$1(){var D=this;"function"!=typeof this._flush||this._readableState.destroyed?done$1(this,null,null):this._flush((function(te,he){done$1(D,te,he)}))}function done$1(D,te,he){if(te)return D.emit("error",te);if(null!=he&&D.push(he),D._writableState.length)throw new rm;if(D._transformState.transforming)throw new tm;return D.push(null)}dc(Transform$6,nm),Transform$6.prototype.push=function(D,te){return this._transformState.needTransform=!1,nm.prototype.push.call(this,D,te)},Transform$6.prototype._transform=function(D,te,he){he(new Yy("_transform()"))},Transform$6.prototype._write=function(D,te,he){var ye=this._transformState;if(ye.writecb=he,ye.writechunk=D,ye.writeencoding=te,!ye.transforming){var be=this._readableState;(ye.needTransform||be.needReadable||be.length<be.highWaterMark)&&this._read(be.highWaterMark)}},Transform$6.prototype._read=function(D){var te=this._transformState;null===te.writechunk||te.transforming?te.needTransform=!0:(te.transforming=!0,this._transform(te.writechunk,te.writeencoding,te.afterTransform))},Transform$6.prototype._destroy=function(D,te){nm.prototype._destroy.call(this,D,(function(D){te(D)}))};var am,im=PassThrough$1,sm=Qy;function PassThrough$1(D){if(!(this instanceof PassThrough$1))return new PassThrough$1(D);sm.call(this,D)}dc(PassThrough$1,sm),PassThrough$1.prototype._transform=function(D,te,he){he(null,D)};var om=Oy.codes,cm=om.ERR_MISSING_ARGS,dm=om.ERR_STREAM_DESTROYED;function noop$1(D){if(D)throw D}function call(D){D()}function pipe(D,te){return D.pipe(te)}var um=function pipeline(){for(var D=arguments.length,te=new Array(D),he=0;he<D;he++)te[he]=arguments[he];var ye,be=function popCallback(D){return D.length?"function"!=typeof D[D.length-1]?noop$1:D.pop():noop$1}(te);if(Array.isArray(te[0])&&(te=te[0]),te.length<2)throw new cm("streams");var ve=te.map((function(D,he){var we=he<te.length-1;return function destroyer(D,te,he,ye){ye=function once(D){var te=!1;return function(){te||(te=!0,D.apply(void 0,arguments))}}(ye);var be=!1;D.on("close",(function(){be=!0})),void 0===am&&(am=Xy),am(D,{readable:te,writable:he},(function(D){if(D)return ye(D);be=!0,ye()}));var ve=!1;return function(te){if(!be&&!ve)return ve=!0,function isRequest(D){return D.setHeader&&"function"==typeof D.abort}(D)?D.abort():"function"==typeof D.destroy?D.destroy():void ye(te||new dm("pipe"))}}(D,we,he>0,(function(D){ye||(ye=D),D&&ve.forEach(call),we||(ve.forEach(call),be(ye))}))}));return te.reduce(pipe)};!function(D,te){(te=D.exports=require_stream_readable()).Stream=te,te.Readable=te,te.Writable=require_stream_writable(),te.Duplex=require_stream_duplex(),te.Transform=Qy,te.PassThrough=im,te.finished=Xy,te.pipeline=um}(Ty,Ty.exports);var fm=Ty.exports;const{Transform:lm}=fm;const{Transform:pm}=fm;const createKeccak=D=>class Keccak extends lm{constructor(te,he,ye,be,ve){super(ve),this._rate=te,this._capacity=he,this._delimitedSuffix=ye,this._hashBitLength=be,this._options=ve,this._state=new D,this._state.initialize(te,he),this._finalized=!1}_transform(D,te,he){let ye=null;try{this.update(D,te)}catch(D){ye=D}he(ye)}_flush(D){let te=null;try{this.push(this.digest())}catch(D){te=D}D(te)}update(D,te){if(!Buffer.isBuffer(D)&&"string"!=typeof D)throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Digest already called");return Buffer.isBuffer(D)||(D=Buffer.from(D,te)),this._state.absorb(D),this}digest(D){if(this._finalized)throw new Error("Digest already called");this._finalized=!0,this._delimitedSuffix&&this._state.absorbLastFewBits(this._delimitedSuffix);let te=this._state.squeeze(this._hashBitLength/8);return void 0!==D&&(te=te.toString(D)),this._resetState(),te}_resetState(){return this._state.initialize(this._rate,this._capacity),this}_clone(){const D=new Keccak(this._rate,this._capacity,this._delimitedSuffix,this._hashBitLength,this._options);return this._state.copy(D._state),D._finalized=this._finalized,D}},createShake=D=>class Shake extends pm{constructor(te,he,ye,be){super(be),this._rate=te,this._capacity=he,this._delimitedSuffix=ye,this._options=be,this._state=new D,this._state.initialize(te,he),this._finalized=!1}_transform(D,te,he){let ye=null;try{this.update(D,te)}catch(D){ye=D}he(ye)}_flush(){}_read(D){this.push(this.squeeze(D))}update(D,te){if(!Buffer.isBuffer(D)&&"string"!=typeof D)throw new TypeError("Data must be a string or a buffer");if(this._finalized)throw new Error("Squeeze already called");return Buffer.isBuffer(D)||(D=Buffer.from(D,te)),this._state.absorb(D),this}squeeze(D,te){this._finalized||(this._finalized=!0,this._state.absorbLastFewBits(this._delimitedSuffix));let he=this._state.squeeze(D);return void 0!==te&&(he=he.toString(te)),he}_resetState(){return this._state.initialize(this._rate,this._capacity),this}_clone(){const D=new Shake(this._rate,this._capacity,this._delimitedSuffix,this._options);return this._state.copy(D._state),D._finalized=this._finalized,D}};var hm={};const ym=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648];hm.p1600=function(D){for(let te=0;te<24;++te){const he=D[0]^D[10]^D[20]^D[30]^D[40],ye=D[1]^D[11]^D[21]^D[31]^D[41],be=D[2]^D[12]^D[22]^D[32]^D[42],ve=D[3]^D[13]^D[23]^D[33]^D[43],we=D[4]^D[14]^D[24]^D[34]^D[44],_e=D[5]^D[15]^D[25]^D[35]^D[45],Pe=D[6]^D[16]^D[26]^D[36]^D[46],Ie=D[7]^D[17]^D[27]^D[37]^D[47],Re=D[8]^D[18]^D[28]^D[38]^D[48],ke=D[9]^D[19]^D[29]^D[39]^D[49];let Oe=Re^(be<<1|ve>>>31),xe=ke^(ve<<1|be>>>31);const Be=D[0]^Oe,Fe=D[1]^xe,De=D[10]^Oe,Le=D[11]^xe,Ue=D[20]^Oe,qe=D[21]^xe,je=D[30]^Oe,Je=D[31]^xe,et=D[40]^Oe,tt=D[41]^xe;Oe=he^(we<<1|_e>>>31),xe=ye^(_e<<1|we>>>31);const rt=D[2]^Oe,nt=D[3]^xe,at=D[12]^Oe,ut=D[13]^xe,ht=D[22]^Oe,yt=D[23]^xe,mt=D[32]^Oe,bt=D[33]^xe,wt=D[42]^Oe,_t=D[43]^xe;Oe=be^(Pe<<1|Ie>>>31),xe=ve^(Ie<<1|Pe>>>31);const Tt=D[4]^Oe,At=D[5]^xe,Et=D[14]^Oe,Pt=D[15]^xe,St=D[24]^Oe,Ct=D[25]^xe,kt=D[34]^Oe,Ot=D[35]^xe,xt=D[44]^Oe,Nt=D[45]^xe;Oe=we^(Re<<1|ke>>>31),xe=_e^(ke<<1|Re>>>31);const Bt=D[6]^Oe,Ft=D[7]^xe,Lt=D[16]^Oe,Ut=D[17]^xe,$t=D[26]^Oe,qt=D[27]^xe,Gt=D[36]^Oe,zt=D[37]^xe,Wt=D[46]^Oe,Vt=D[47]^xe;Oe=Pe^(he<<1|ye>>>31),xe=Ie^(ye<<1|he>>>31);const Kt=D[8]^Oe,Jt=D[9]^xe,Zt=D[18]^Oe,rr=D[19]^xe,cr=D[28]^Oe,dr=D[29]^xe,kr=D[38]^Oe,$r=D[39]^xe,qr=D[48]^Oe,jr=D[49]^xe,Hr=Be,zr=Fe,Vr=Le<<4|De>>>28,Jr=De<<4|Le>>>28,Xr=Ue<<3|qe>>>29,Qr=qe<<3|Ue>>>29,Zr=Je<<9|je>>>23,en=je<<9|Je>>>23,rn=et<<18|tt>>>14,nn=tt<<18|et>>>14,sn=rt<<1|nt>>>31,on=nt<<1|rt>>>31,yn=ut<<12|at>>>20,bn=at<<12|ut>>>20,wn=ht<<10|yt>>>22,_n=yt<<10|ht>>>22,Cn=bt<<13|mt>>>19,Rn=mt<<13|bt>>>19,kn=wt<<2|_t>>>30,Mn=_t<<2|wt>>>30,Fn=At<<30|Tt>>>2,Dn=Tt<<30|At>>>2,Ln=Et<<6|Pt>>>26,Un=Pt<<6|Et>>>26,$n=Ct<<11|St>>>21,qn=St<<11|Ct>>>21,Gn=kt<<15|Ot>>>17,Wn=Ot<<15|kt>>>17,Kn=Nt<<29|xt>>>3,Jn=xt<<29|Nt>>>3,Yn=Bt<<28|Ft>>>4,ea=Ft<<28|Bt>>>4,ta=Ut<<23|Lt>>>9,ra=Lt<<23|Ut>>>9,na=$t<<25|qt>>>7,aa=qt<<25|$t>>>7,ia=Gt<<21|zt>>>11,sa=zt<<21|Gt>>>11,oa=Vt<<24|Wt>>>8,ca=Wt<<24|Vt>>>8,da=Kt<<27|Jt>>>5,ua=Jt<<27|Kt>>>5,fa=Zt<<20|rr>>>12,la=rr<<20|Zt>>>12,pa=dr<<7|cr>>>25,ha=cr<<7|dr>>>25,ya=kr<<8|$r>>>24,ma=$r<<8|kr>>>24,ba=qr<<14|jr>>>18,ga=jr<<14|qr>>>18;D[0]=Hr^~yn&$n,D[1]=zr^~bn&qn,D[10]=Yn^~fa&Xr,D[11]=ea^~la&Qr,D[20]=sn^~Ln&na,D[21]=on^~Un&aa,D[30]=da^~Vr&wn,D[31]=ua^~Jr&_n,D[40]=Fn^~ta&pa,D[41]=Dn^~ra&ha,D[2]=yn^~$n&ia,D[3]=bn^~qn&sa,D[12]=fa^~Xr&Cn,D[13]=la^~Qr&Rn,D[22]=Ln^~na&ya,D[23]=Un^~aa&ma,D[32]=Vr^~wn&Gn,D[33]=Jr^~_n&Wn,D[42]=ta^~pa&Zr,D[43]=ra^~ha&en,D[4]=$n^~ia&ba,D[5]=qn^~sa&ga,D[14]=Xr^~Cn&Kn,D[15]=Qr^~Rn&Jn,D[24]=na^~ya&rn,D[25]=aa^~ma&nn,D[34]=wn^~Gn&oa,D[35]=_n^~Wn&ca,D[44]=pa^~Zr&kn,D[45]=ha^~en&Mn,D[6]=ia^~ba&Hr,D[7]=sa^~ga&zr,D[16]=Cn^~Kn&Yn,D[17]=Rn^~Jn&ea,D[26]=ya^~rn&sn,D[27]=ma^~nn&on,D[36]=Gn^~oa&da,D[37]=Wn^~ca&ua,D[46]=Zr^~kn&Fn,D[47]=en^~Mn&Dn,D[8]=ba^~Hr&yn,D[9]=ga^~zr&bn,D[18]=Kn^~Yn&fa,D[19]=Jn^~ea&la,D[28]=rn^~sn&Ln,D[29]=nn^~on&Un,D[38]=oa^~da&Vr,D[39]=ca^~ua&Jr,D[48]=kn^~Fn&ta,D[49]=Mn^~Dn&ra,D[0]^=ym[2*te],D[1]^=ym[2*te+1]}};const mm=hm;function Keccak$1(){this.state=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.blockSize=null,this.count=0,this.squeezing=!1}Keccak$1.prototype.initialize=function(D,te){for(let D=0;D<50;++D)this.state[D]=0;this.blockSize=D/8,this.count=0,this.squeezing=!1},Keccak$1.prototype.absorb=function(D){for(let te=0;te<D.length;++te)this.state[~~(this.count/4)]^=D[te]<<this.count%4*8,this.count+=1,this.count===this.blockSize&&(mm.p1600(this.state),this.count=0)},Keccak$1.prototype.absorbLastFewBits=function(D){this.state[~~(this.count/4)]^=D<<this.count%4*8,0!=(128&D)&&this.count===this.blockSize-1&&mm.p1600(this.state),this.state[~~((this.blockSize-1)/4)]^=128<<(this.blockSize-1)%4*8,mm.p1600(this.state),this.count=0,this.squeezing=!0},Keccak$1.prototype.squeeze=function(D){this.squeezing||this.absorbLastFewBits(1);const te=Buffer.alloc(D);for(let he=0;he<D;++he)te[he]=this.state[~~(this.count/4)]>>>this.count%4*8&255,this.count+=1,this.count===this.blockSize&&(mm.p1600(this.state),this.count=0);return te},Keccak$1.prototype.copy=function(D){for(let te=0;te<50;++te)D.state[te]=this.state[te];D.blockSize=this.blockSize,D.count=this.count,D.squeezing=this.squeezing};var bm=function(D){const te=createKeccak(D),he=createShake(D);return function(D,ye){switch("string"==typeof D?D.toLowerCase():D){case"keccak224":return new te(1152,448,null,224,ye);case"keccak256":return new te(1088,512,null,256,ye);case"keccak384":return new te(832,768,null,384,ye);case"keccak512":return new te(576,1024,null,512,ye);case"sha3-224":return new te(1152,448,6,224,ye);case"sha3-256":return new te(1088,512,6,256,ye);case"sha3-384":return new te(832,768,6,384,ye);case"sha3-512":return new te(576,1024,6,512,ye);case"shake128":return new he(1344,256,31,ye);case"shake256":return new he(1088,512,31,ye);default:throw new Error("Invald algorithm: "+D)}}}(Keccak$1);Object.defineProperty(wy,"__esModule",{value:!0});var gm=_y,vm=bm;wy.keccak224=gm.createHashFunction((function(){return vm("keccak224")})),wy.keccak256=gm.createHashFunction((function(){return vm("keccak256")})),wy.keccak384=gm.createHashFunction((function(){return vm("keccak384")})),wy.keccak512=gm.createHashFunction((function(){return vm("keccak512")}));var wm=cy.Buffer,_m=fm.Transform;function HashBase$2(D){_m.call(this),this._block=wm.allocUnsafe(D),this._blockSize=D,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}dc(HashBase$2,_m),HashBase$2.prototype._transform=function(D,te,he){var ye=null;try{this.update(D,te)}catch(D){ye=D}he(ye)},HashBase$2.prototype._flush=function(D){var te=null;try{this.push(this.digest())}catch(D){te=D}D(te)},HashBase$2.prototype.update=function(D,te){if(function throwIfNotStringOrBuffer(D,te){if(!wm.isBuffer(D)&&"string"!=typeof D)throw new TypeError(te+" must be a string or a buffer")}(D,"Data"),this._finalized)throw new Error("Digest already called");wm.isBuffer(D)||(D=wm.from(D,te));for(var he=this._block,ye=0;this._blockOffset+D.length-ye>=this._blockSize;){for(var be=this._blockOffset;be<this._blockSize;)he[be++]=D[ye++];this._update(),this._blockOffset=0}for(;ye<D.length;)he[this._blockOffset++]=D[ye++];for(var ve=0,we=8*D.length;we>0;++ve)this._length[ve]+=we,(we=this._length[ve]/4294967296|0)>0&&(this._length[ve]-=4294967296*we);return this},HashBase$2.prototype._update=function(){throw new Error("_update is not implemented")},HashBase$2.prototype.digest=function(D){if(this._finalized)throw new Error("Digest already called");this._finalized=!0;var te=this._digest();void 0!==D&&(te=te.toString(D)),this._block.fill(0),this._blockOffset=0;for(var he=0;he<4;++he)this._length[he]=0;return te},HashBase$2.prototype._digest=function(){throw new Error("_digest is not implemented")};var Tm=HashBase$2,Am=dc,Em=Tm,Pm=cy.Buffer,Sm=new Array(16);function MD5$2(){Em.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}function rotl$1(D,te){return D<<te|D>>>32-te}function fnF(D,te,he,ye,be,ve,we){return rotl$1(D+(te&he|~te&ye)+be+ve|0,we)+te|0}function fnG(D,te,he,ye,be,ve,we){return rotl$1(D+(te&ye|he&~ye)+be+ve|0,we)+te|0}function fnH(D,te,he,ye,be,ve,we){return rotl$1(D+(te^he^ye)+be+ve|0,we)+te|0}function fnI(D,te,he,ye,be,ve,we){return rotl$1(D+(he^(te|~ye))+be+ve|0,we)+te|0}Am(MD5$2,Em),MD5$2.prototype._update=function(){for(var D=Sm,te=0;te<16;++te)D[te]=this._block.readInt32LE(4*te);var he=this._a,ye=this._b,be=this._c,ve=this._d;he=fnF(he,ye,be,ve,D[0],3614090360,7),ve=fnF(ve,he,ye,be,D[1],3905402710,12),be=fnF(be,ve,he,ye,D[2],606105819,17),ye=fnF(ye,be,ve,he,D[3],3250441966,22),he=fnF(he,ye,be,ve,D[4],4118548399,7),ve=fnF(ve,he,ye,be,D[5],1200080426,12),be=fnF(be,ve,he,ye,D[6],2821735955,17),ye=fnF(ye,be,ve,he,D[7],4249261313,22),he=fnF(he,ye,be,ve,D[8],1770035416,7),ve=fnF(ve,he,ye,be,D[9],2336552879,12),be=fnF(be,ve,he,ye,D[10],4294925233,17),ye=fnF(ye,be,ve,he,D[11],2304563134,22),he=fnF(he,ye,be,ve,D[12],1804603682,7),ve=fnF(ve,he,ye,be,D[13],4254626195,12),be=fnF(be,ve,he,ye,D[14],2792965006,17),he=fnG(he,ye=fnF(ye,be,ve,he,D[15],1236535329,22),be,ve,D[1],4129170786,5),ve=fnG(ve,he,ye,be,D[6],3225465664,9),be=fnG(be,ve,he,ye,D[11],643717713,14),ye=fnG(ye,be,ve,he,D[0],3921069994,20),he=fnG(he,ye,be,ve,D[5],3593408605,5),ve=fnG(ve,he,ye,be,D[10],38016083,9),be=fnG(be,ve,he,ye,D[15],3634488961,14),ye=fnG(ye,be,ve,he,D[4],3889429448,20),he=fnG(he,ye,be,ve,D[9],568446438,5),ve=fnG(ve,he,ye,be,D[14],3275163606,9),be=fnG(be,ve,he,ye,D[3],4107603335,14),ye=fnG(ye,be,ve,he,D[8],1163531501,20),he=fnG(he,ye,be,ve,D[13],2850285829,5),ve=fnG(ve,he,ye,be,D[2],4243563512,9),be=fnG(be,ve,he,ye,D[7],1735328473,14),he=fnH(he,ye=fnG(ye,be,ve,he,D[12],2368359562,20),be,ve,D[5],4294588738,4),ve=fnH(ve,he,ye,be,D[8],2272392833,11),be=fnH(be,ve,he,ye,D[11],1839030562,16),ye=fnH(ye,be,ve,he,D[14],4259657740,23),he=fnH(he,ye,be,ve,D[1],2763975236,4),ve=fnH(ve,he,ye,be,D[4],1272893353,11),be=fnH(be,ve,he,ye,D[7],4139469664,16),ye=fnH(ye,be,ve,he,D[10],3200236656,23),he=fnH(he,ye,be,ve,D[13],681279174,4),ve=fnH(ve,he,ye,be,D[0],3936430074,11),be=fnH(be,ve,he,ye,D[3],3572445317,16),ye=fnH(ye,be,ve,he,D[6],76029189,23),he=fnH(he,ye,be,ve,D[9],3654602809,4),ve=fnH(ve,he,ye,be,D[12],3873151461,11),be=fnH(be,ve,he,ye,D[15],530742520,16),he=fnI(he,ye=fnH(ye,be,ve,he,D[2],3299628645,23),be,ve,D[0],4096336452,6),ve=fnI(ve,he,ye,be,D[7],1126891415,10),be=fnI(be,ve,he,ye,D[14],2878612391,15),ye=fnI(ye,be,ve,he,D[5],4237533241,21),he=fnI(he,ye,be,ve,D[12],1700485571,6),ve=fnI(ve,he,ye,be,D[3],2399980690,10),be=fnI(be,ve,he,ye,D[10],4293915773,15),ye=fnI(ye,be,ve,he,D[1],2240044497,21),he=fnI(he,ye,be,ve,D[8],1873313359,6),ve=fnI(ve,he,ye,be,D[15],4264355552,10),be=fnI(be,ve,he,ye,D[6],2734768916,15),ye=fnI(ye,be,ve,he,D[13],1309151649,21),he=fnI(he,ye,be,ve,D[4],4149444226,6),ve=fnI(ve,he,ye,be,D[11],3174756917,10),be=fnI(be,ve,he,ye,D[2],718787259,15),ye=fnI(ye,be,ve,he,D[9],3951481745,21),this._a=this._a+he|0,this._b=this._b+ye|0,this._c=this._c+be|0,this._d=this._d+ve|0},MD5$2.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=Pm.allocUnsafe(16);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D};var Cm=MD5$2,Im=Ri.Buffer,Rm=dc,km=Tm,Om=new Array(16),xm=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],Nm=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],Mm=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],Bm=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11],Fm=[0,1518500249,1859775393,2400959708,2840853838],Dm=[1352829926,1548603684,1836072691,2053994217,0];function RIPEMD160$2(){km.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function rotl(D,te){return D<<te|D>>>32-te}function fn1(D,te,he,ye,be,ve,we,_e){return rotl(D+(te^he^ye)+ve+we|0,_e)+be|0}function fn2(D,te,he,ye,be,ve,we,_e){return rotl(D+(te&he|~te&ye)+ve+we|0,_e)+be|0}function fn3(D,te,he,ye,be,ve,we,_e){return rotl(D+((te|~he)^ye)+ve+we|0,_e)+be|0}function fn4(D,te,he,ye,be,ve,we,_e){return rotl(D+(te&ye|he&~ye)+ve+we|0,_e)+be|0}function fn5(D,te,he,ye,be,ve,we,_e){return rotl(D+(te^(he|~ye))+ve+we|0,_e)+be|0}Rm(RIPEMD160$2,km),RIPEMD160$2.prototype._update=function(){for(var D=Om,te=0;te<16;++te)D[te]=this._block.readInt32LE(4*te);for(var he=0|this._a,ye=0|this._b,be=0|this._c,ve=0|this._d,we=0|this._e,_e=0|this._a,Pe=0|this._b,Ie=0|this._c,Re=0|this._d,ke=0|this._e,Oe=0;Oe<80;Oe+=1){var xe,Be;Oe<16?(xe=fn1(he,ye,be,ve,we,D[xm[Oe]],Fm[0],Mm[Oe]),Be=fn5(_e,Pe,Ie,Re,ke,D[Nm[Oe]],Dm[0],Bm[Oe])):Oe<32?(xe=fn2(he,ye,be,ve,we,D[xm[Oe]],Fm[1],Mm[Oe]),Be=fn4(_e,Pe,Ie,Re,ke,D[Nm[Oe]],Dm[1],Bm[Oe])):Oe<48?(xe=fn3(he,ye,be,ve,we,D[xm[Oe]],Fm[2],Mm[Oe]),Be=fn3(_e,Pe,Ie,Re,ke,D[Nm[Oe]],Dm[2],Bm[Oe])):Oe<64?(xe=fn4(he,ye,be,ve,we,D[xm[Oe]],Fm[3],Mm[Oe]),Be=fn2(_e,Pe,Ie,Re,ke,D[Nm[Oe]],Dm[3],Bm[Oe])):(xe=fn5(he,ye,be,ve,we,D[xm[Oe]],Fm[4],Mm[Oe]),Be=fn1(_e,Pe,Ie,Re,ke,D[Nm[Oe]],Dm[4],Bm[Oe])),he=we,we=ve,ve=rotl(be,10),be=ye,ye=xe,_e=ke,ke=Re,Re=rotl(Ie,10),Ie=Pe,Pe=Be}var Fe=this._b+be+Re|0;this._b=this._c+ve+ke|0,this._c=this._d+we+_e|0,this._d=this._e+he+Pe|0,this._e=this._a+ye+Ie|0,this._a=Fe},RIPEMD160$2.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var D=Im.alloc?Im.alloc(20):new Im(20);return D.writeInt32LE(this._a,0),D.writeInt32LE(this._b,4),D.writeInt32LE(this._c,8),D.writeInt32LE(this._d,12),D.writeInt32LE(this._e,16),D};var Lm=RIPEMD160$2,Um={exports:{}},$m=cy.Buffer;function Hash$a(D,te){this._block=$m.alloc(D),this._finalSize=te,this._blockSize=D,this._len=0}Hash$a.prototype.update=function(D,te){"string"==typeof D&&(te=te||"utf8",D=$m.from(D,te));for(var he=this._block,ye=this._blockSize,be=D.length,ve=this._len,we=0;we<be;){for(var _e=ve%ye,Pe=Math.min(be-we,ye-_e),Ie=0;Ie<Pe;Ie++)he[_e+Ie]=D[we+Ie];we+=Pe,(ve+=Pe)%ye==0&&this._update(he)}return this._len+=be,this},Hash$a.prototype.digest=function(D){var te=this._len%this._blockSize;this._block[te]=128,this._block.fill(0,te+1),te>=this._finalSize&&(this._update(this._block),this._block.fill(0));var he=8*this._len;if(he<=4294967295)this._block.writeUInt32BE(he,this._blockSize-4);else{var ye=(4294967295&he)>>>0,be=(he-ye)/4294967296;this._block.writeUInt32BE(be,this._blockSize-8),this._block.writeUInt32BE(ye,this._blockSize-4)}this._update(this._block);var ve=this._hash();return D?ve.toString(D):ve},Hash$a.prototype._update=function(){throw new Error("_update must be implemented by subclass")};var qm=Hash$a,Gm=dc,jm=qm,Hm=cy.Buffer,zm=[1518500249,1859775393,-1894007588,-899497514],Wm=new Array(80);function Sha(){this.init(),this._w=Wm,jm.call(this,64,56)}function rotl30$1(D){return D<<30|D>>>2}function ft$3(D,te,he,ye){return 0===D?te&he|~te&ye:2===D?te&he|te&ye|he&ye:te^he^ye}Gm(Sha,jm),Sha.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha.prototype._update=function(D){for(var te,he=this._w,ye=0|this._a,be=0|this._b,ve=0|this._c,we=0|this._d,_e=0|this._e,Pe=0;Pe<16;++Pe)he[Pe]=D.readInt32BE(4*Pe);for(;Pe<80;++Pe)he[Pe]=he[Pe-3]^he[Pe-8]^he[Pe-14]^he[Pe-16];for(var Ie=0;Ie<80;++Ie){var Re=~~(Ie/20),ke=0|((te=ye)<<5|te>>>27)+ft$3(Re,be,ve,we)+_e+he[Ie]+zm[Re];_e=we,we=ve,ve=rotl30$1(be),be=ye,ye=ke}this._a=ye+this._a|0,this._b=be+this._b|0,this._c=ve+this._c|0,this._d=we+this._d|0,this._e=_e+this._e|0},Sha.prototype._hash=function(){var D=Hm.allocUnsafe(20);return D.writeInt32BE(0|this._a,0),D.writeInt32BE(0|this._b,4),D.writeInt32BE(0|this._c,8),D.writeInt32BE(0|this._d,12),D.writeInt32BE(0|this._e,16),D};var Vm=Sha,Km=dc,Jm=qm,Xm=cy.Buffer,Qm=[1518500249,1859775393,-1894007588,-899497514],Zm=new Array(80);function Sha1(){this.init(),this._w=Zm,Jm.call(this,64,56)}function rotl5(D){return D<<5|D>>>27}function rotl30(D){return D<<30|D>>>2}function ft$2(D,te,he,ye){return 0===D?te&he|~te&ye:2===D?te&he|te&ye|he&ye:te^he^ye}Km(Sha1,Jm),Sha1.prototype.init=function(){return this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520,this},Sha1.prototype._update=function(D){for(var te,he=this._w,ye=0|this._a,be=0|this._b,ve=0|this._c,we=0|this._d,_e=0|this._e,Pe=0;Pe<16;++Pe)he[Pe]=D.readInt32BE(4*Pe);for(;Pe<80;++Pe)he[Pe]=(te=he[Pe-3]^he[Pe-8]^he[Pe-14]^he[Pe-16])<<1|te>>>31;for(var Ie=0;Ie<80;++Ie){var Re=~~(Ie/20),ke=rotl5(ye)+ft$2(Re,be,ve,we)+_e+he[Ie]+Qm[Re]|0;_e=we,we=ve,ve=rotl30(be),be=ye,ye=ke}this._a=ye+this._a|0,this._b=be+this._b|0,this._c=ve+this._c|0,this._d=we+this._d|0,this._e=_e+this._e|0},Sha1.prototype._hash=function(){var D=Xm.allocUnsafe(20);return D.writeInt32BE(0|this._a,0),D.writeInt32BE(0|this._b,4),D.writeInt32BE(0|this._c,8),D.writeInt32BE(0|this._d,12),D.writeInt32BE(0|this._e,16),D};var Ym=Sha1,eb=dc,tb=qm,rb=cy.Buffer,nb=[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],ab=new Array(64);function Sha256$1(){this.init(),this._w=ab,tb.call(this,64,56)}function ch(D,te,he){return he^D&(te^he)}function maj$1(D,te,he){return D&te|he&(D|te)}function sigma0$1(D){return(D>>>2|D<<30)^(D>>>13|D<<19)^(D>>>22|D<<10)}function sigma1$1(D){return(D>>>6|D<<26)^(D>>>11|D<<21)^(D>>>25|D<<7)}function gamma0(D){return(D>>>7|D<<25)^(D>>>18|D<<14)^D>>>3}function gamma1(D){return(D>>>17|D<<15)^(D>>>19|D<<13)^D>>>10}eb(Sha256$1,tb),Sha256$1.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},Sha256$1.prototype._update=function(D){for(var te=this._w,he=0|this._a,ye=0|this._b,be=0|this._c,ve=0|this._d,we=0|this._e,_e=0|this._f,Pe=0|this._g,Ie=0|this._h,Re=0;Re<16;++Re)te[Re]=D.readInt32BE(4*Re);for(;Re<64;++Re)te[Re]=gamma1(te[Re-2])+te[Re-7]+gamma0(te[Re-15])+te[Re-16]|0;for(var ke=0;ke<64;++ke){var Oe=Ie+sigma1$1(we)+ch(we,_e,Pe)+nb[ke]+te[ke]|0,xe=sigma0$1(he)+maj$1(he,ye,be)|0;Ie=Pe,Pe=_e,_e=we,we=ve+Oe|0,ve=be,be=ye,ye=he,he=Oe+xe|0}this._a=he+this._a|0,this._b=ye+this._b|0,this._c=be+this._c|0,this._d=ve+this._d|0,this._e=we+this._e|0,this._f=_e+this._f|0,this._g=Pe+this._g|0,this._h=Ie+this._h|0},Sha256$1.prototype._hash=function(){var D=rb.allocUnsafe(32);return D.writeInt32BE(this._a,0),D.writeInt32BE(this._b,4),D.writeInt32BE(this._c,8),D.writeInt32BE(this._d,12),D.writeInt32BE(this._e,16),D.writeInt32BE(this._f,20),D.writeInt32BE(this._g,24),D.writeInt32BE(this._h,28),D};var ib=Sha256$1,sb=dc,ob=ib,db=qm,ub=cy.Buffer,fb=new Array(64);function Sha224(){this.init(),this._w=fb,db.call(this,64,56)}sb(Sha224,ob),Sha224.prototype.init=function(){return this._a=3238371032,this._b=914150663,this._c=812702999,this._d=4144912697,this._e=4290775857,this._f=1750603025,this._g=1694076839,this._h=3204075428,this},Sha224.prototype._hash=function(){var D=ub.allocUnsafe(28);return D.writeInt32BE(this._a,0),D.writeInt32BE(this._b,4),D.writeInt32BE(this._c,8),D.writeInt32BE(this._d,12),D.writeInt32BE(this._e,16),D.writeInt32BE(this._f,20),D.writeInt32BE(this._g,24),D};var lb=Sha224,pb=dc,hb=qm,yb=cy.Buffer,mb=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],bb=new Array(160);function Sha512(){this.init(),this._w=bb,hb.call(this,128,112)}function Ch(D,te,he){return he^D&(te^he)}function maj(D,te,he){return D&te|he&(D|te)}function sigma0(D,te){return(D>>>28|te<<4)^(te>>>2|D<<30)^(te>>>7|D<<25)}function sigma1(D,te){return(D>>>14|te<<18)^(D>>>18|te<<14)^(te>>>9|D<<23)}function Gamma0(D,te){return(D>>>1|te<<31)^(D>>>8|te<<24)^D>>>7}function Gamma0l(D,te){return(D>>>1|te<<31)^(D>>>8|te<<24)^(D>>>7|te<<25)}function Gamma1(D,te){return(D>>>19|te<<13)^(te>>>29|D<<3)^D>>>6}function Gamma1l(D,te){return(D>>>19|te<<13)^(te>>>29|D<<3)^(D>>>6|te<<26)}function getCarry(D,te){return D>>>0<te>>>0?1:0}pb(Sha512,hb),Sha512.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},Sha512.prototype._update=function(D){for(var te=this._w,he=0|this._ah,ye=0|this._bh,be=0|this._ch,ve=0|this._dh,we=0|this._eh,_e=0|this._fh,Pe=0|this._gh,Ie=0|this._hh,Re=0|this._al,ke=0|this._bl,Oe=0|this._cl,xe=0|this._dl,Be=0|this._el,Fe=0|this._fl,De=0|this._gl,Le=0|this._hl,Ue=0;Ue<32;Ue+=2)te[Ue]=D.readInt32BE(4*Ue),te[Ue+1]=D.readInt32BE(4*Ue+4);for(;Ue<160;Ue+=2){var qe=te[Ue-30],je=te[Ue-30+1],Je=Gamma0(qe,je),et=Gamma0l(je,qe),tt=Gamma1(qe=te[Ue-4],je=te[Ue-4+1]),rt=Gamma1l(je,qe),nt=te[Ue-14],at=te[Ue-14+1],ut=te[Ue-32],ht=te[Ue-32+1],yt=et+at|0,mt=Je+nt+getCarry(yt,et)|0;mt=(mt=mt+tt+getCarry(yt=yt+rt|0,rt)|0)+ut+getCarry(yt=yt+ht|0,ht)|0,te[Ue]=mt,te[Ue+1]=yt}for(var bt=0;bt<160;bt+=2){mt=te[bt],yt=te[bt+1];var wt=maj(he,ye,be),_t=maj(Re,ke,Oe),Tt=sigma0(he,Re),At=sigma0(Re,he),Et=sigma1(we,Be),Pt=sigma1(Be,we),St=mb[bt],Ct=mb[bt+1],kt=Ch(we,_e,Pe),Ot=Ch(Be,Fe,De),xt=Le+Pt|0,Nt=Ie+Et+getCarry(xt,Le)|0;Nt=(Nt=(Nt=Nt+kt+getCarry(xt=xt+Ot|0,Ot)|0)+St+getCarry(xt=xt+Ct|0,Ct)|0)+mt+getCarry(xt=xt+yt|0,yt)|0;var Bt=At+_t|0,Ft=Tt+wt+getCarry(Bt,At)|0;Ie=Pe,Le=De,Pe=_e,De=Fe,_e=we,Fe=Be,we=ve+Nt+getCarry(Be=xe+xt|0,xe)|0,ve=be,xe=Oe,be=ye,Oe=ke,ye=he,ke=Re,he=Nt+Ft+getCarry(Re=xt+Bt|0,xt)|0}this._al=this._al+Re|0,this._bl=this._bl+ke|0,this._cl=this._cl+Oe|0,this._dl=this._dl+xe|0,this._el=this._el+Be|0,this._fl=this._fl+Fe|0,this._gl=this._gl+De|0,this._hl=this._hl+Le|0,this._ah=this._ah+he+getCarry(this._al,Re)|0,this._bh=this._bh+ye+getCarry(this._bl,ke)|0,this._ch=this._ch+be+getCarry(this._cl,Oe)|0,this._dh=this._dh+ve+getCarry(this._dl,xe)|0,this._eh=this._eh+we+getCarry(this._el,Be)|0,this._fh=this._fh+_e+getCarry(this._fl,Fe)|0,this._gh=this._gh+Pe+getCarry(this._gl,De)|0,this._hh=this._hh+Ie+getCarry(this._hl,Le)|0},Sha512.prototype._hash=function(){var D=yb.allocUnsafe(64);function writeInt64BE(te,he,ye){D.writeInt32BE(te,ye),D.writeInt32BE(he,ye+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),writeInt64BE(this._gh,this._gl,48),writeInt64BE(this._hh,this._hl,56),D};var gb=Sha512,vb=dc,wb=gb,_b=qm,Tb=cy.Buffer,Ab=new Array(160);function Sha384(){this.init(),this._w=Ab,_b.call(this,128,112)}vb(Sha384,wb),Sha384.prototype.init=function(){return this._ah=3418070365,this._bh=1654270250,this._ch=2438529370,this._dh=355462360,this._eh=1731405415,this._fh=2394180231,this._gh=3675008525,this._hh=1203062813,this._al=3238371032,this._bl=914150663,this._cl=812702999,this._dl=4144912697,this._el=4290775857,this._fl=1750603025,this._gl=1694076839,this._hl=3204075428,this},Sha384.prototype._hash=function(){var D=Tb.allocUnsafe(48);function writeInt64BE(te,he,ye){D.writeInt32BE(te,ye),D.writeInt32BE(he,ye+4)}return writeInt64BE(this._ah,this._al,0),writeInt64BE(this._bh,this._bl,8),writeInt64BE(this._ch,this._cl,16),writeInt64BE(this._dh,this._dl,24),writeInt64BE(this._eh,this._el,32),writeInt64BE(this._fh,this._fl,40),D};var Eb=Sha384,Pb=Um.exports=function SHA(D){D=D.toLowerCase();var te=Pb[D];if(!te)throw new Error(D+" is not supported (we accept pull requests)");return new te};Pb.sha=Vm,Pb.sha1=Ym,Pb.sha224=lb,Pb.sha256=ib,Pb.sha384=Eb,Pb.sha512=gb;var Sb=Um.exports;function BufferList(){this.head=null,this.tail=null,this.length=0}BufferList.prototype.push=function(D){var te={data:D,next:null};this.length>0?this.tail.next=te:this.head=te,this.tail=te,++this.length},BufferList.prototype.unshift=function(D){var te={data:D,next:this.head};0===this.length&&(this.tail=te),this.head=te,++this.length},BufferList.prototype.shift=function(){if(0!==this.length){var D=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,D}},BufferList.prototype.clear=function(){this.head=this.tail=null,this.length=0},BufferList.prototype.join=function(D){if(0===this.length)return"";for(var te=this.head,he=""+te.data;te=te.next;)he+=D+te.data;return he},BufferList.prototype.concat=function(D){if(0===this.length)return Buffer$h.alloc(0);if(1===this.length)return this.head.data;for(var te=Buffer$h.allocUnsafe(D>>>0),he=this.head,ye=0;he;)he.data.copy(te,ye),ye+=he.data.length,he=he.next;return te},Readable.ReadableState=ReadableState;var Cb=debuglog("stream");function ReadableState(D,te){D=D||{},this.objectMode=!!D.objectMode,te instanceof Duplex&&(this.objectMode=this.objectMode||!!D.readableObjectMode);var he=D.highWaterMark,ye=this.objectMode?16:16384;this.highWaterMark=he||0===he?he:ye,this.highWaterMark=~~this.highWaterMark,this.buffer=new BufferList,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=D.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,D.encoding&&(this.decoder=new StringDecoder$1(D.encoding),this.encoding=D.encoding)}function Readable(D){if(!(this instanceof Readable))return new Readable(D);this._readableState=new ReadableState(D,this),this.readable=!0,D&&"function"==typeof D.read&&(this._read=D.read),EventEmitter.call(this)}function readableAddChunk(D,te,he,ye,be){var ve=function chunkInvalid(D,te){var he=null;Buffer$h.isBuffer(te)||"string"==typeof te||null==te||D.objectMode||(he=new TypeError("Invalid non-string/buffer chunk"));return he}(te,he);if(ve)D.emit("error",ve);else if(null===he)te.reading=!1,function onEofChunk(D,te){if(te.ended)return;if(te.decoder){var he=te.decoder.end();he&&he.length&&(te.buffer.push(he),te.length+=te.objectMode?1:he.length)}te.ended=!0,emitReadable(D)}(D,te);else if(te.objectMode||he&&he.length>0)if(te.ended&&!be){var we=new Error("stream.push() after EOF");D.emit("error",we)}else if(te.endEmitted&&be){var _e=new Error("stream.unshift() after end event");D.emit("error",_e)}else{var Pe;!te.decoder||be||ye||(he=te.decoder.write(he),Pe=!te.objectMode&&0===he.length),be||(te.reading=!1),Pe||(te.flowing&&0===te.length&&!te.sync?(D.emit("data",he),D.read(0)):(te.length+=te.objectMode?1:he.length,be?te.buffer.unshift(he):te.buffer.push(he),te.needReadable&&emitReadable(D))),function maybeReadMore(D,te){te.readingMore||(te.readingMore=!0,nextTick(maybeReadMore_,D,te))}(D,te)}else be||(te.reading=!1);return function needMoreData(D){return!D.ended&&(D.needReadable||D.length<D.highWaterMark||0===D.length)}(te)}lp(Readable,EventEmitter),Readable.prototype.push=function(D,te){var he=this._readableState;return he.objectMode||"string"!=typeof D||(te=te||he.defaultEncoding)!==he.encoding&&(D=Buffer$h.from(D,te),te=""),readableAddChunk(this,he,D,te,!1)},Readable.prototype.unshift=function(D){return readableAddChunk(this,this._readableState,D,"",!0)},Readable.prototype.isPaused=function(){return!1===this._readableState.flowing},Readable.prototype.setEncoding=function(D){return this._readableState.decoder=new StringDecoder$1(D),this._readableState.encoding=D,this};var Ib=8388608;function howMuchToRead(D,te){return D<=0||0===te.length&&te.ended?0:te.objectMode?1:D!=D?te.flowing&&te.length?te.buffer.head.data.length:te.length:(D>te.highWaterMark&&(te.highWaterMark=function computeNewHighWaterMark(D){return D>=Ib?D=Ib:(D--,D|=D>>>1,D|=D>>>2,D|=D>>>4,D|=D>>>8,D|=D>>>16,D++),D}(D)),D<=te.length?D:te.ended?te.length:(te.needReadable=!0,0))}function emitReadable(D){var te=D._readableState;te.needReadable=!1,te.emittedReadable||(Cb("emitReadable",te.flowing),te.emittedReadable=!0,te.sync?nextTick(emitReadable_,D):emitReadable_(D))}function emitReadable_(D){Cb("emit readable"),D.emit("readable"),flow(D)}function maybeReadMore_(D,te){for(var he=te.length;!te.reading&&!te.flowing&&!te.ended&&te.length<te.highWaterMark&&(Cb("maybeReadMore read 0"),D.read(0),he!==te.length);)he=te.length;te.readingMore=!1}function nReadingNextTick(D){Cb("readable nexttick read 0"),D.read(0)}function resume_(D,te){te.reading||(Cb("resume read 0"),D.read(0)),te.resumeScheduled=!1,te.awaitDrain=0,D.emit("resume"),flow(D),te.flowing&&!te.reading&&D.read(0)}function flow(D){var te=D._readableState;for(Cb("flow",te.flowing);te.flowing&&null!==D.read(););}function fromList(D,te){return 0===te.length?null:(te.objectMode?he=te.buffer.shift():!D||D>=te.length?(he=te.decoder?te.buffer.join(""):1===te.buffer.length?te.buffer.head.data:te.buffer.concat(te.length),te.buffer.clear()):he=function fromListPartial(D,te,he){var ye;D<te.head.data.length?(ye=te.head.data.slice(0,D),te.head.data=te.head.data.slice(D)):ye=D===te.head.data.length?te.shift():he?function copyFromBufferString(D,te){var he=te.head,ye=1,be=he.data;D-=be.length;for(;he=he.next;){var ve=he.data,we=D>ve.length?ve.length:D;if(we===ve.length?be+=ve:be+=ve.slice(0,D),0===(D-=we)){we===ve.length?(++ye,he.next?te.head=he.next:te.head=te.tail=null):(te.head=he,he.data=ve.slice(we));break}++ye}return te.length-=ye,be}(D,te):function copyFromBuffer(D,te){var he=Buffer$h.allocUnsafe(D),ye=te.head,be=1;ye.data.copy(he),D-=ye.data.length;for(;ye=ye.next;){var ve=ye.data,we=D>ve.length?ve.length:D;if(ve.copy(he,he.length-D,0,we),0===(D-=we)){we===ve.length?(++be,ye.next?te.head=ye.next:te.head=te.tail=null):(te.head=ye,ye.data=ve.slice(we));break}++be}return te.length-=be,he}(D,te);return ye}(D,te.buffer,te.decoder),he);var he}function endReadable(D){var te=D._readableState;if(te.length>0)throw new Error('"endReadable()" called on non-empty stream');te.endEmitted||(te.ended=!0,nextTick(endReadableNT,te,D))}function endReadableNT(D,te){D.endEmitted||0!==D.length||(D.endEmitted=!0,te.readable=!1,te.emit("end"))}function indexOf(D,te){for(var he=0,ye=D.length;he<ye;he++)if(D[he]===te)return he;return-1}function nop(){}function WriteReq(D,te,he){this.chunk=D,this.encoding=te,this.callback=he,this.next=null}function WritableState(D,te){Object.defineProperty(this,"buffer",{get:deprecate((function(){return this.getBuffer()}),"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")}),D=D||{},this.objectMode=!!D.objectMode,te instanceof Duplex&&(this.objectMode=this.objectMode||!!D.writableObjectMode);var he=D.highWaterMark,ye=this.objectMode?16:16384;this.highWaterMark=he||0===he?he:ye,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var be=!1===D.decodeStrings;this.decodeStrings=!be,this.defaultEncoding=D.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(D){!function onwrite(D,te){var he=D._writableState,ye=he.sync,be=he.writecb;if(function onwriteStateUpdate(D){D.writing=!1,D.writecb=null,D.length-=D.writelen,D.writelen=0}(he),te)!function onwriteError(D,te,he,ye,be){--te.pendingcb,he?nextTick(be,ye):be(ye);D._writableState.errorEmitted=!0,D.emit("error",ye)}(D,he,ye,te,be);else{var ve=needFinish(he);ve||he.corked||he.bufferProcessing||!he.bufferedRequest||clearBuffer(D,he),ye?nextTick(afterWrite,D,he,ve,be):afterWrite(D,he,ve,be)}}(te,D)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new CorkedRequest(this)}function Writable(D){if(!(this instanceof Writable||this instanceof Duplex))return new Writable(D);this._writableState=new WritableState(D,this),this.writable=!0,D&&("function"==typeof D.write&&(this._write=D.write),"function"==typeof D.writev&&(this._writev=D.writev)),EventEmitter.call(this)}function doWrite(D,te,he,ye,be,ve,we){te.writelen=ye,te.writecb=we,te.writing=!0,te.sync=!0,he?D._writev(be,te.onwrite):D._write(be,ve,te.onwrite),te.sync=!1}function afterWrite(D,te,he,ye){he||function onwriteDrain(D,te){0===te.length&&te.needDrain&&(te.needDrain=!1,D.emit("drain"))}(D,te),te.pendingcb--,ye(),finishMaybe(D,te)}function clearBuffer(D,te){te.bufferProcessing=!0;var he=te.bufferedRequest;if(D._writev&&he&&he.next){var ye=te.bufferedRequestCount,be=new Array(ye),ve=te.corkedRequestsFree;ve.entry=he;for(var we=0;he;)be[we]=he,he=he.next,we+=1;doWrite(D,te,!0,te.length,be,"",ve.finish),te.pendingcb++,te.lastBufferedRequest=null,ve.next?(te.corkedRequestsFree=ve.next,ve.next=null):te.corkedRequestsFree=new CorkedRequest(te)}else{for(;he;){var _e=he.chunk,Pe=he.encoding,Ie=he.callback;if(doWrite(D,te,!1,te.objectMode?1:_e.length,_e,Pe,Ie),he=he.next,te.writing)break}null===he&&(te.lastBufferedRequest=null)}te.bufferedRequestCount=0,te.bufferedRequest=he,te.bufferProcessing=!1}function needFinish(D){return D.ending&&0===D.length&&null===D.bufferedRequest&&!D.finished&&!D.writing}function prefinish(D,te){te.prefinished||(te.prefinished=!0,D.emit("prefinish"))}function finishMaybe(D,te){var he=needFinish(te);return he&&(0===te.pendingcb?(prefinish(D,te),te.finished=!0,D.emit("finish")):prefinish(D,te)),he}function CorkedRequest(D){var te=this;this.next=null,this.entry=null,this.finish=function(he){var ye=te.entry;for(te.entry=null;ye;){var be=ye.callback;D.pendingcb--,be(he),ye=ye.next}D.corkedRequestsFree?D.corkedRequestsFree.next=te:D.corkedRequestsFree=te}}Readable.prototype.read=function(D){Cb("read",D),D=parseInt(D,10);var te=this._readableState,he=D;if(0!==D&&(te.emittedReadable=!1),0===D&&te.needReadable&&(te.length>=te.highWaterMark||te.ended))return Cb("read: emitReadable",te.length,te.ended),0===te.length&&te.ended?endReadable(this):emitReadable(this),null;if(0===(D=howMuchToRead(D,te))&&te.ended)return 0===te.length&&endReadable(this),null;var ye,be=te.needReadable;return Cb("need readable",be),(0===te.length||te.length-D<te.highWaterMark)&&Cb("length less than watermark",be=!0),te.ended||te.reading?Cb("reading or ended",be=!1):be&&(Cb("do read"),te.reading=!0,te.sync=!0,0===te.length&&(te.needReadable=!0),this._read(te.highWaterMark),te.sync=!1,te.reading||(D=howMuchToRead(he,te))),null===(ye=D>0?fromList(D,te):null)?(te.needReadable=!0,D=0):te.length-=D,0===te.length&&(te.ended||(te.needReadable=!0),he!==D&&te.ended&&endReadable(this)),null!==ye&&this.emit("data",ye),ye},Readable.prototype._read=function(D){this.emit("error",new Error("not implemented"))},Readable.prototype.pipe=function(D,te){var he=this,ye=this._readableState;switch(ye.pipesCount){case 0:ye.pipes=D;break;case 1:ye.pipes=[ye.pipes,D];break;default:ye.pipes.push(D)}ye.pipesCount+=1,Cb("pipe count=%d opts=%j",ye.pipesCount,te);var be=!te||!1!==te.end?onend:cleanup;function onunpipe(D){Cb("onunpipe"),D===he&&cleanup()}function onend(){Cb("onend"),D.end()}ye.endEmitted?nextTick(be):he.once("end",be),D.on("unpipe",onunpipe);var ve=function pipeOnDrain(D){return function(){var te=D._readableState;Cb("pipeOnDrain",te.awaitDrain),te.awaitDrain&&te.awaitDrain--,0===te.awaitDrain&&D.listeners("data").length&&(te.flowing=!0,flow(D))}}(he);D.on("drain",ve);var we=!1;function cleanup(){Cb("cleanup"),D.removeListener("close",onclose),D.removeListener("finish",onfinish),D.removeListener("drain",ve),D.removeListener("error",onerror),D.removeListener("unpipe",onunpipe),he.removeListener("end",onend),he.removeListener("end",cleanup),he.removeListener("data",ondata),we=!0,!ye.awaitDrain||D._writableState&&!D._writableState.needDrain||ve()}var _e=!1;function ondata(te){Cb("ondata"),_e=!1,!1!==D.write(te)||_e||((1===ye.pipesCount&&ye.pipes===D||ye.pipesCount>1&&-1!==indexOf(ye.pipes,D))&&!we&&(Cb("false write response, pause",he._readableState.awaitDrain),he._readableState.awaitDrain++,_e=!0),he.pause())}function onerror(te){Cb("onerror",te),unpipe(),D.removeListener("error",onerror),0===function listenerCount(D,te){return D.listeners(te).length}(D,"error")&&D.emit("error",te)}function onclose(){D.removeListener("finish",onfinish),unpipe()}function onfinish(){Cb("onfinish"),D.removeListener("close",onclose),unpipe()}function unpipe(){Cb("unpipe"),he.unpipe(D)}return he.on("data",ondata),function prependListener(D,te,he){if("function"==typeof D.prependListener)return D.prependListener(te,he);D._events&&D._events[te]?Array.isArray(D._events[te])?D._events[te].unshift(he):D._events[te]=[he,D._events[te]]:D.on(te,he)}(D,"error",onerror),D.once("close",onclose),D.once("finish",onfinish),D.emit("pipe",he),ye.flowing||(Cb("pipe resume"),he.resume()),D},Readable.prototype.unpipe=function(D){var te=this._readableState;if(0===te.pipesCount)return this;if(1===te.pipesCount)return D&&D!==te.pipes||(D||(D=te.pipes),te.pipes=null,te.pipesCount=0,te.flowing=!1,D&&D.emit("unpipe",this)),this;if(!D){var he=te.pipes,ye=te.pipesCount;te.pipes=null,te.pipesCount=0,te.flowing=!1;for(var be=0;be<ye;be++)he[be].emit("unpipe",this);return this}var ve=indexOf(te.pipes,D);return-1===ve||(te.pipes.splice(ve,1),te.pipesCount-=1,1===te.pipesCount&&(te.pipes=te.pipes[0]),D.emit("unpipe",this)),this},Readable.prototype.on=function(D,te){var he=EventEmitter.prototype.on.call(this,D,te);if("data"===D)!1!==this._readableState.flowing&&this.resume();else if("readable"===D){var ye=this._readableState;ye.endEmitted||ye.readableListening||(ye.readableListening=ye.needReadable=!0,ye.emittedReadable=!1,ye.reading?ye.length&&emitReadable(this):nextTick(nReadingNextTick,this))}return he},Readable.prototype.addListener=Readable.prototype.on,Readable.prototype.resume=function(){var D=this._readableState;return D.flowing||(Cb("resume"),D.flowing=!0,function resume(D,te){te.resumeScheduled||(te.resumeScheduled=!0,nextTick(resume_,D,te))}(this,D)),this},Readable.prototype.pause=function(){return Cb("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(Cb("pause"),this._readableState.flowing=!1,this.emit("pause")),this},Readable.prototype.wrap=function(D){var te=this._readableState,he=!1,ye=this;for(var be in D.on("end",(function(){if(Cb("wrapped end"),te.decoder&&!te.ended){var D=te.decoder.end();D&&D.length&&ye.push(D)}ye.push(null)})),D.on("data",(function(be){(Cb("wrapped data"),te.decoder&&(be=te.decoder.write(be)),te.objectMode&&null==be)||(te.objectMode||be&&be.length)&&(ye.push(be)||(he=!0,D.pause()))})),D)void 0===this[be]&&"function"==typeof D[be]&&(this[be]=function(te){return function(){return D[te].apply(D,arguments)}}(be));return function forEach$1(D,te){for(var he=0,ye=D.length;he<ye;he++)te(D[he],he)}(["error","close","destroy","pause","resume"],(function(te){D.on(te,ye.emit.bind(ye,te))})),ye._read=function(te){Cb("wrapped _read",te),he&&(he=!1,D.resume())},ye},Readable._fromList=fromList,Writable.WritableState=WritableState,lp(Writable,EventEmitter),WritableState.prototype.getBuffer=function writableStateGetBuffer(){for(var D=this.bufferedRequest,te=[];D;)te.push(D),D=D.next;return te},Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},Writable.prototype.write=function(D,te,he){var ye=this._writableState,be=!1;return"function"==typeof te&&(he=te,te=null),Buffer$h.isBuffer(D)?te="buffer":te||(te=ye.defaultEncoding),"function"!=typeof he&&(he=nop),ye.ended?function writeAfterEnd(D,te){var he=new Error("write after end");D.emit("error",he),nextTick(te,he)}(this,he):function validChunk(D,te,he,ye){var be=!0,ve=!1;return null===he?ve=new TypeError("May not write null values to stream"):Buffer$h.isBuffer(he)||"string"==typeof he||void 0===he||te.objectMode||(ve=new TypeError("Invalid non-string/buffer chunk")),ve&&(D.emit("error",ve),nextTick(ye,ve),be=!1),be}(this,ye,D,he)&&(ye.pendingcb++,be=function writeOrBuffer(D,te,he,ye,be){he=function decodeChunk(D,te,he){D.objectMode||!1===D.decodeStrings||"string"!=typeof te||(te=Buffer$h.from(te,he));return te}(te,he,ye),Buffer$h.isBuffer(he)&&(ye="buffer");var ve=te.objectMode?1:he.length;te.length+=ve;var we=te.length<te.highWaterMark;we||(te.needDrain=!0);if(te.writing||te.corked){var _e=te.lastBufferedRequest;te.lastBufferedRequest=new WriteReq(he,ye,be),_e?_e.next=te.lastBufferedRequest:te.bufferedRequest=te.lastBufferedRequest,te.bufferedRequestCount+=1}else doWrite(D,te,!1,ve,he,ye,be);return we}(this,ye,D,te,he)),be},Writable.prototype.cork=function(){this._writableState.corked++},Writable.prototype.uncork=function(){var D=this._writableState;D.corked&&(D.corked--,D.writing||D.corked||D.finished||D.bufferProcessing||!D.bufferedRequest||clearBuffer(this,D))},Writable.prototype.setDefaultEncoding=function setDefaultEncoding(D){if("string"==typeof D&&(D=D.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((D+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+D);return this._writableState.defaultEncoding=D,this},Writable.prototype._write=function(D,te,he){he(new Error("not implemented"))},Writable.prototype._writev=null,Writable.prototype.end=function(D,te,he){var ye=this._writableState;"function"==typeof D?(he=D,D=null,te=null):"function"==typeof te&&(he=te,te=null),null!=D&&this.write(D,te),ye.corked&&(ye.corked=1,this.uncork()),ye.ending||ye.finished||function endWritable(D,te,he){te.ending=!0,finishMaybe(D,te),he&&(te.finished?nextTick(he):D.once("finish",he));te.ended=!0,D.writable=!1}(this,ye,he)},lp(Duplex,Readable);for(var Rb=Object.keys(Writable.prototype),kb=0;kb<Rb.length;kb++){var Ob=Rb[kb];Duplex.prototype[Ob]||(Duplex.prototype[Ob]=Writable.prototype[Ob])}function Duplex(D){if(!(this instanceof Duplex))return new Duplex(D);Readable.call(this,D),Writable.call(this,D),D&&!1===D.readable&&(this.readable=!1),D&&!1===D.writable&&(this.writable=!1),this.allowHalfOpen=!0,D&&!1===D.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",onend)}function onend(){this.allowHalfOpen||this._writableState.ended||nextTick(onEndNT,this)}function onEndNT(D){D.end()}function TransformState(D){this.afterTransform=function(te,he){return function afterTransform(D,te,he){var ye=D._transformState;ye.transforming=!1;var be=ye.writecb;if(!be)return D.emit("error",new Error("no writecb in Transform class"));ye.writechunk=null,ye.writecb=null,null!=he&&D.push(he);be(te);var ve=D._readableState;ve.reading=!1,(ve.needReadable||ve.length<ve.highWaterMark)&&D._read(ve.highWaterMark)}(D,te,he)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function Transform$1(D){if(!(this instanceof Transform$1))return new Transform$1(D);Duplex.call(this,D),this._transformState=new TransformState(this);var te=this;this._readableState.needReadable=!0,this._readableState.sync=!1,D&&("function"==typeof D.transform&&(this._transform=D.transform),"function"==typeof D.flush&&(this._flush=D.flush)),this.once("prefinish",(function(){"function"==typeof this._flush?this._flush((function(D){done(te,D)})):done(te)}))}function done(D,te){if(te)return D.emit("error",te);var he=D._writableState,ye=D._transformState;if(he.length)throw new Error("Calling transform done when ws.length != 0");if(ye.transforming)throw new Error("Calling transform done when still transforming");return D.push(null)}function PassThrough(D){if(!(this instanceof PassThrough))return new PassThrough(D);Transform$1.call(this,D)}function Stream(){EventEmitter.call(this)}lp(Transform$1,Duplex),Transform$1.prototype.push=function(D,te){return this._transformState.needTransform=!1,Duplex.prototype.push.call(this,D,te)},Transform$1.prototype._transform=function(D,te,he){throw new Error("Not implemented")},Transform$1.prototype._write=function(D,te,he){var ye=this._transformState;if(ye.writecb=he,ye.writechunk=D,ye.writeencoding=te,!ye.transforming){var be=this._readableState;(ye.needTransform||be.needReadable||be.length<be.highWaterMark)&&this._read(be.highWaterMark)}},Transform$1.prototype._read=function(D){var te=this._transformState;null!==te.writechunk&&te.writecb&&!te.transforming?(te.transforming=!0,this._transform(te.writechunk,te.writeencoding,te.afterTransform)):te.needTransform=!0},lp(PassThrough,Transform$1),PassThrough.prototype._transform=function(D,te,he){he(null,D)},lp(Stream,EventEmitter),Stream.Readable=Readable,Stream.Writable=Writable,Stream.Duplex=Duplex,Stream.Transform=Transform$1,Stream.PassThrough=PassThrough,Stream.Stream=Stream,Stream.prototype.pipe=function(D,te){var he=this;function ondata(te){D.writable&&!1===D.write(te)&&he.pause&&he.pause()}function ondrain(){he.readable&&he.resume&&he.resume()}he.on("data",ondata),D.on("drain",ondrain),D._isStdio||te&&!1===te.end||(he.on("end",onend),he.on("close",onclose));var ye=!1;function onend(){ye||(ye=!0,D.end())}function onclose(){ye||(ye=!0,"function"==typeof D.destroy&&D.destroy())}function onerror(D){if(cleanup(),0===EventEmitter.listenerCount(this,"error"))throw D}function cleanup(){he.removeListener("data",ondata),D.removeListener("drain",ondrain),he.removeListener("end",onend),he.removeListener("close",onclose),he.removeListener("error",onerror),D.removeListener("error",onerror),he.removeListener("end",cleanup),he.removeListener("close",cleanup),D.removeListener("close",cleanup)}return he.on("error",onerror),D.on("error",onerror),he.on("end",cleanup),he.on("close",cleanup),D.on("close",cleanup),D.emit("pipe",he),D};var xb=getAugmentedNamespace$1(Object.freeze({__proto__:null,Duplex:Duplex,PassThrough:PassThrough,Readable:Readable,Stream:Stream,Transform:Transform$1,Writable:Writable,default:Stream})),Nb=cy.Buffer,Mb=xb.Transform,Bb=Gy.StringDecoder;function CipherBase(D){Mb.call(this),this.hashMode="string"==typeof D,this.hashMode?this[D]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}dc(CipherBase,Mb),CipherBase.prototype.update=function(D,te,he){"string"==typeof D&&(D=Nb.from(D,te));var ye=this._update(D);return this.hashMode?this:(he&&(ye=this._toString(ye,he)),ye)},CipherBase.prototype.setAutoPadding=function(){},CipherBase.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},CipherBase.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},CipherBase.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},CipherBase.prototype._transform=function(D,te,he){var ye;try{this.hashMode?this._update(D):this.push(this._update(D))}catch(D){ye=D}finally{he(ye)}},CipherBase.prototype._flush=function(D){var te;try{this.push(this.__final())}catch(D){te=D}D(te)},CipherBase.prototype._finalOrDigest=function(D){var te=this.__final()||Nb.alloc(0);return D&&(te=this._toString(te,D,!0)),te},CipherBase.prototype._toString=function(D,te,he){if(this._decoder||(this._decoder=new Bb(te),this._encoding=te),this._encoding!==te)throw new Error("can't switch encodings");var ye=this._decoder.write(D);return he&&(ye+=this._decoder.end()),ye};var Fb=CipherBase,Db=Cm,Lb=Lm,Ub=Sb,$b=Fb;function Hash$3(D){$b.call(this,"digest"),this._hash=D}dc(Hash$3,$b),Hash$3.prototype._update=function(D){this._hash.update(D)},Hash$3.prototype._final=function(){return this._hash.digest()};var qb=function createHash(D){return"md5"===(D=D.toLowerCase())?new Db:"rmd160"===D||"ripemd160"===D?new Lb:new Hash$3(Ub(D))};!function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.rlphash=D.ripemd160FromArray=D.ripemd160FromString=D.ripemd160=D.sha256FromArray=D.sha256FromString=D.sha256=D.keccakFromArray=D.keccakFromHexString=D.keccakFromString=D.keccak256=D.keccak=void 0;var te=wy,he=qb,ye=Ul,be=my,ve=by;D.keccak=function(D,he){switch(void 0===he&&(he=256),(0,ve.assertIsBuffer)(D),he){case 224:return(0,te.keccak224)(D);case 256:return(0,te.keccak256)(D);case 384:return(0,te.keccak384)(D);case 512:return(0,te.keccak512)(D);default:throw new Error("Invald algorithm: keccak".concat(he))}};D.keccak256=function(te){return(0,D.keccak)(te)};D.keccakFromString=function(te,he){void 0===he&&(he=256),(0,ve.assertIsString)(te);var ye=Buffer.from(te,"utf8");return(0,D.keccak)(ye,he)};D.keccakFromHexString=function(te,he){return void 0===he&&(he=256),(0,ve.assertIsHexString)(te),(0,D.keccak)((0,be.toBuffer)(te),he)};D.keccakFromArray=function(te,he){return void 0===he&&(he=256),(0,ve.assertIsArray)(te),(0,D.keccak)((0,be.toBuffer)(te),he)};var _sha256=function(D){return D=(0,be.toBuffer)(D),he("sha256").update(D).digest()};D.sha256=function(D){return(0,ve.assertIsBuffer)(D),_sha256(D)};D.sha256FromString=function(D){return(0,ve.assertIsString)(D),_sha256(D)};D.sha256FromArray=function(D){return(0,ve.assertIsArray)(D),_sha256(D)};var _ripemd160=function(D,te){D=(0,be.toBuffer)(D);var ye=he("rmd160").update(D).digest();return!0===te?(0,be.setLengthLeft)(ye,32):ye};D.ripemd160=function(D,te){return(0,ve.assertIsBuffer)(D),_ripemd160(D,te)};D.ripemd160FromString=function(D,te){return(0,ve.assertIsString)(D),_ripemd160(D,te)};D.ripemd160FromArray=function(D,te){return(0,ve.assertIsArray)(D),_ripemd160(D,te)};D.rlphash=function(te){return(0,D.keccak)(ye.rlp.encode(te))}}(vy);var Gb={};!function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.toType=D.TypeOutput=D.bnToRlp=D.bnToUnpaddedBuffer=D.bnToHex=void 0;var te,he=Ul,ye=yy,be=my;function bnToUnpaddedBuffer(D){return(0,be.unpadBuffer)(D.toArrayLike(Buffer))}D.bnToHex=function bnToHex(D){return"0x".concat(D.toString(16))},D.bnToUnpaddedBuffer=bnToUnpaddedBuffer,D.bnToRlp=function bnToRlp(D){return bnToUnpaddedBuffer(D)},function(D){D[D.Number=0]="Number",D[D.BN=1]="BN",D[D.Buffer=2]="Buffer",D[D.PrefixedHexString=3]="PrefixedHexString"}(te=D.TypeOutput||(D.TypeOutput={})),D.toType=function toType(D,ve){if(null===D)return null;if(void 0!==D){if("string"==typeof D&&!(0,ye.isHexString)(D))throw new Error("A string must be provided with a 0x-prefix, given: ".concat(D));if("number"==typeof D&&!Number.isSafeInteger(D))throw new Error("The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)");var we=(0,be.toBuffer)(D);if(ve===te.Buffer)return we;if(ve===te.BN)return new he.BN(we);if(ve===te.Number){var _e=new he.BN(we),Pe=new he.BN(Number.MAX_SAFE_INTEGER.toString());if(_e.gt(Pe))throw new Error("The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)");return _e.toNumber()}return"0x".concat(we.toString("hex"))}}}(Gb),function(D){var te=rn&&rn.__read||function(D,te){var he="function"==typeof Symbol&&D[Symbol.iterator];if(!he)return D;var ye,be,ve=he.call(D),we=[];try{for(;(void 0===te||te-- >0)&&!(ye=ve.next()).done;)we.push(ye.value)}catch(D){be={error:D}}finally{try{ye&&!ye.done&&(he=ve.return)&&he.call(ve)}finally{if(be)throw be.error}}return we},he=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(D,"__esModule",{value:!0}),D.isZeroAddress=D.zeroAddress=D.importPublic=D.privateToAddress=D.privateToPublic=D.publicToAddress=D.pubToAddress=D.isValidPublic=D.isValidPrivate=D.generateAddress2=D.generateAddress=D.isValidChecksumAddress=D.toChecksumAddress=D.isValidAddress=D.Account=void 0;var ye=he(Cp),be=Ul,ve=Ip,we=yy,_e=Ll,Pe=my,Ie=vy,Re=by,ke=Gb,Oe=function(){function Account(D,te,he,ye){void 0===D&&(D=new be.BN(0)),void 0===te&&(te=new be.BN(0)),void 0===he&&(he=_e.KECCAK256_RLP),void 0===ye&&(ye=_e.KECCAK256_NULL),this.nonce=D,this.balance=te,this.stateRoot=he,this.codeHash=ye,this._validate()}return Account.fromAccountData=function(D){var te=D.nonce,he=D.balance,ye=D.stateRoot,ve=D.codeHash;return new Account(te?new be.BN((0,Pe.toBuffer)(te)):void 0,he?new be.BN((0,Pe.toBuffer)(he)):void 0,ye?(0,Pe.toBuffer)(ye):void 0,ve?(0,Pe.toBuffer)(ve):void 0)},Account.fromRlpSerializedAccount=function(D){var te=be.rlp.decode(D);if(!Array.isArray(te))throw new Error("Invalid serialized account input. Must be array");return this.fromValuesArray(te)},Account.fromValuesArray=function(D){var he=te(D,4),ye=he[0],ve=he[1],we=he[2],_e=he[3];return new Account(new be.BN(ye),new be.BN(ve),we,_e)},Account.prototype._validate=function(){if(this.nonce.lt(new be.BN(0)))throw new Error("nonce must be greater than zero");if(this.balance.lt(new be.BN(0)))throw new Error("balance must be greater than zero");if(32!==this.stateRoot.length)throw new Error("stateRoot must have a length of 32");if(32!==this.codeHash.length)throw new Error("codeHash must have a length of 32")},Account.prototype.raw=function(){return[(0,ke.bnToUnpaddedBuffer)(this.nonce),(0,ke.bnToUnpaddedBuffer)(this.balance),this.stateRoot,this.codeHash]},Account.prototype.serialize=function(){return be.rlp.encode(this.raw())},Account.prototype.isContract=function(){return!this.codeHash.equals(_e.KECCAK256_NULL)},Account.prototype.isEmpty=function(){return this.balance.isZero()&&this.nonce.isZero()&&this.codeHash.equals(_e.KECCAK256_NULL)},Account}();D.Account=Oe;D.isValidAddress=function(D){try{(0,Re.assertIsString)(D)}catch(D){return!1}return/^0x[0-9a-fA-F]{40}$/.test(D)};D.toChecksumAddress=function(D,te){(0,Re.assertIsHexString)(D);var he=(0,we.stripHexPrefix)(D).toLowerCase(),ye="";te&&(ye=(0,ke.toType)(te,ke.TypeOutput.BN).toString()+"0x");for(var be=(0,Ie.keccakFromString)(ye+he).toString("hex"),ve="0x",_e=0;_e<he.length;_e++)parseInt(be[_e],16)>=8?ve+=he[_e].toUpperCase():ve+=he[_e];return ve};D.isValidChecksumAddress=function(te,he){return(0,D.isValidAddress)(te)&&(0,D.toChecksumAddress)(te,he)===te};D.generateAddress=function(D,te){(0,Re.assertIsBuffer)(D),(0,Re.assertIsBuffer)(te);var he=new be.BN(te);return he.isZero()?(0,Ie.rlphash)([D,null]).slice(-20):(0,Ie.rlphash)([D,Buffer.from(he.toArray())]).slice(-20)};D.generateAddress2=function(D,te,he){return(0,Re.assertIsBuffer)(D),(0,Re.assertIsBuffer)(te),(0,Re.assertIsBuffer)(he),(0,ye.default)(20===D.length),(0,ye.default)(32===te.length),(0,Ie.keccak256)(Buffer.concat([Buffer.from("ff","hex"),D,te,(0,Ie.keccak256)(he)])).slice(-20)};D.isValidPrivate=function(D){return(0,ve.privateKeyVerify)(D)};D.isValidPublic=function(D,te){return void 0===te&&(te=!1),(0,Re.assertIsBuffer)(D),64===D.length?(0,ve.publicKeyVerify)(Buffer.concat([Buffer.from([4]),D])):!!te&&(0,ve.publicKeyVerify)(D)};D.pubToAddress=function(D,te){return void 0===te&&(te=!1),(0,Re.assertIsBuffer)(D),te&&64!==D.length&&(D=Buffer.from((0,ve.publicKeyConvert)(D,!1).slice(1))),(0,ye.default)(64===D.length),(0,Ie.keccak)(D).slice(-20)},D.publicToAddress=D.pubToAddress;D.privateToPublic=function(D){return(0,Re.assertIsBuffer)(D),Buffer.from((0,ve.publicKeyCreate)(D,!1)).slice(1)};D.privateToAddress=function(te){return(0,D.publicToAddress)((0,D.privateToPublic)(te))};D.importPublic=function(D){return(0,Re.assertIsBuffer)(D),64!==D.length&&(D=Buffer.from((0,ve.publicKeyConvert)(D,!1).slice(1))),D};D.zeroAddress=function(){var D=(0,Pe.zeros)(20);return(0,Pe.bufferToHex)(D)};D.isZeroAddress=function(te){try{(0,Re.assertIsString)(te)}catch(D){return!1}return(0,D.zeroAddress)()===te}}(Jl);var jb={},Hb=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(jb,"__esModule",{value:!0}),jb.Address=void 0;var zb=Hb(Cp),Wb=Ul,Vb=my,Kb=Jl,Jb=function(){function Address(D){(0,zb.default)(20===D.length,"Invalid address length"),this.buf=D}return Address.zero=function(){return new Address((0,Vb.zeros)(20))},Address.fromString=function(D){return(0,zb.default)((0,Kb.isValidAddress)(D),"Invalid address"),new Address((0,Vb.toBuffer)(D))},Address.fromPublicKey=function(D){return(0,zb.default)(Buffer.isBuffer(D),"Public key should be Buffer"),new Address((0,Kb.pubToAddress)(D))},Address.fromPrivateKey=function(D){return(0,zb.default)(Buffer.isBuffer(D),"Private key should be Buffer"),new Address((0,Kb.privateToAddress)(D))},Address.generate=function(D,te){return(0,zb.default)(Wb.BN.isBN(te)),new Address((0,Kb.generateAddress)(D.buf,te.toArrayLike(Buffer)))},Address.generate2=function(D,te,he){return(0,zb.default)(Buffer.isBuffer(te)),(0,zb.default)(Buffer.isBuffer(he)),new Address((0,Kb.generateAddress2)(D.buf,te,he))},Address.prototype.equals=function(D){return this.buf.equals(D.buf)},Address.prototype.isZero=function(){return this.equals(Address.zero())},Address.prototype.isPrecompileOrSystemAddress=function(){var D=new Wb.BN(this.buf),te=new Wb.BN(0),he=new Wb.BN("ffff","hex");return D.gte(te)&&D.lte(he)},Address.prototype.toString=function(){return"0x"+this.buf.toString("hex")},Address.prototype.toBuffer=function(){return Buffer.from(this.buf)},Address}();jb.Address=Jb;var Xb={};Object.defineProperty(Xb,"__esModule",{value:!0}),Xb.hashPersonalMessage=Xb.isValidSignature=Xb.fromRpcSig=Xb.toCompactSig=Xb.toRpcSig=Xb.ecrecover=Xb.ecsign=void 0;var Qb=Ip,Zb=Ul,Yb=my,eg=vy,tg=by,rg=Gb;function calculateSigRecovery(D,te){var he=(0,rg.toType)(D,rg.TypeOutput.BN);if(he.eqn(0)||he.eqn(1))return(0,rg.toType)(D,rg.TypeOutput.BN);if(!te)return he.subn(27);var ye=(0,rg.toType)(te,rg.TypeOutput.BN);return he.sub(ye.muln(2).addn(35))}function isValidSigRecovery(D){var te=new Zb.BN(D);return te.eqn(0)||te.eqn(1)}Xb.ecsign=function ecsign(D,te,he){var ye=(0,Qb.ecdsaSign)(D,te),be=ye.signature,ve=ye.recid,we=Buffer.from(be.slice(0,32)),_e=Buffer.from(be.slice(32,64));if(!he||"number"==typeof he){if(he&&!Number.isSafeInteger(he))throw new Error("The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)");return{r:we,s:_e,v:he?ve+(2*he+35):ve+27}}return{r:we,s:_e,v:(0,rg.toType)(he,rg.TypeOutput.BN).muln(2).addn(35).addn(ve).toArrayLike(Buffer)}};Xb.ecrecover=function(D,te,he,ye,be){var ve=Buffer.concat([(0,Yb.setLengthLeft)(he,32),(0,Yb.setLengthLeft)(ye,32)],64),we=calculateSigRecovery(te,be);if(!isValidSigRecovery(we))throw new Error("Invalid signature v value");var _e=(0,Qb.ecdsaRecover)(ve,we.toNumber(),D);return Buffer.from((0,Qb.publicKeyConvert)(_e,!1).slice(1))};Xb.toRpcSig=function(D,te,he,ye){if(!isValidSigRecovery(calculateSigRecovery(D,ye)))throw new Error("Invalid signature v value");return(0,Yb.bufferToHex)(Buffer.concat([(0,Yb.setLengthLeft)(te,32),(0,Yb.setLengthLeft)(he,32),(0,Yb.toBuffer)(D)]))};Xb.toCompactSig=function(D,te,he,ye){if(!isValidSigRecovery(calculateSigRecovery(D,ye)))throw new Error("Invalid signature v value");var be=(0,rg.toType)(D,rg.TypeOutput.Number),ve=he;return(be>28&&be%2==1||1===be||28===be)&&((ve=Buffer.from(he))[0]|=128),(0,Yb.bufferToHex)(Buffer.concat([(0,Yb.setLengthLeft)(te,32),(0,Yb.setLengthLeft)(ve,32)]))};Xb.fromRpcSig=function(D){var te,he,ye,be=(0,Yb.toBuffer)(D);if(be.length>=65)te=be.slice(0,32),he=be.slice(32,64),ye=(0,Yb.bufferToInt)(be.slice(64));else{if(64!==be.length)throw new Error("Invalid signature length");te=be.slice(0,32),he=be.slice(32,64),ye=(0,Yb.bufferToInt)(be.slice(32,33))>>7,he[0]&=127}return ye<27&&(ye+=27),{v:ye,r:te,s:he}};Xb.isValidSignature=function(D,te,he,ye,be){void 0===ye&&(ye=!0);var ve=new Zb.BN("7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0",16),we=new Zb.BN("fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141",16);if(32!==te.length||32!==he.length)return!1;if(!isValidSigRecovery(calculateSigRecovery(D,be)))return!1;var _e=new Zb.BN(te),Pe=new Zb.BN(he);return!(_e.isZero()||_e.gt(we)||Pe.isZero()||Pe.gt(we))&&(!ye||1!==Pe.cmp(ve))};Xb.hashPersonalMessage=function(D){(0,tg.assertIsBuffer)(D);var te=Buffer.from("Ethereum Signed Message:\n".concat(D.length),"utf-8");return(0,eg.keccak)(Buffer.concat([te,D]))};var ng={},ag=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(ng,"__esModule",{value:!0}),ng.defineProperties=void 0;var ig=ag(Cp),sg=yy,og=Ul,cg=my;ng.defineProperties=function(D,te,he){if(D.raw=[],D._fields=[],D.toJSON=function(te){if(void 0===te&&(te=!1),te){var he={};return D._fields.forEach((function(te){he[te]="0x".concat(D[te].toString("hex"))})),he}return(0,cg.baToJSON)(D.raw)},D.serialize=function serialize(){return og.rlp.encode(D.raw)},te.forEach((function(te,he){function getter(){return D.raw[he]}function setter(ye){"00"!==(ye=(0,cg.toBuffer)(ye)).toString("hex")||te.allowZero||(ye=Buffer.allocUnsafe(0)),te.allowLess&&te.length?(ye=(0,cg.unpadBuffer)(ye),(0,ig.default)(te.length>=ye.length,"The field ".concat(te.name," must not have more ").concat(te.length," bytes"))):te.allowZero&&0===ye.length||!te.length||(0,ig.default)(te.length===ye.length,"The field ".concat(te.name," must have byte length of ").concat(te.length)),D.raw[he]=ye}D._fields.push(te.name),Object.defineProperty(D,te.name,{enumerable:!0,configurable:!0,get:getter,set:setter}),te.default&&(D[te.name]=te.default),te.alias&&Object.defineProperty(D,te.alias,{enumerable:!1,configurable:!0,set:setter,get:getter})})),he)if("string"==typeof he&&(he=Buffer.from((0,sg.stripHexPrefix)(he),"hex")),Buffer.isBuffer(he)&&(he=og.rlp.decode(he)),Array.isArray(he)){if(he.length>D._fields.length)throw new Error("wrong number of fields in data");he.forEach((function(te,he){D[D._fields[he]]=(0,cg.toBuffer)(te)}))}else{if("object"!=typeof he)throw new Error("invalid data");var ye=Object.keys(he);te.forEach((function(te){-1!==ye.indexOf(te.name)&&(D[te.name]=he[te.name]),-1!==ye.indexOf(te.alias)&&(D[te.alias]=he[te.alias])}))}},function(D){var te=rn&&rn.__createBinding||(Object.create?function(D,te,he,ye){void 0===ye&&(ye=he);var be=Object.getOwnPropertyDescriptor(te,he);be&&!("get"in be?!te.__esModule:be.writable||be.configurable)||(be={enumerable:!0,get:function(){return te[he]}}),Object.defineProperty(D,ye,be)}:function(D,te,he,ye){void 0===ye&&(ye=he),D[ye]=te[he]}),he=rn&&rn.__exportStar||function(D,he){for(var ye in D)"default"===ye||Object.prototype.hasOwnProperty.call(he,ye)||te(he,D,ye)};Object.defineProperty(D,"__esModule",{value:!0}),D.isHexString=D.getKeys=D.fromAscii=D.fromUtf8=D.toAscii=D.arrayContainsArray=D.getBinarySize=D.padToEven=D.stripHexPrefix=D.isHexPrefixed=void 0,he(Ll,D),he(Jl,D),he(jb,D),he(vy,D),he(Xb,D),he(my,D),he(ng,D),he(Ul,D),he(Gb,D);var ye=yy;Object.defineProperty(D,"isHexPrefixed",{enumerable:!0,get:function(){return ye.isHexPrefixed}}),Object.defineProperty(D,"stripHexPrefix",{enumerable:!0,get:function(){return ye.stripHexPrefix}}),Object.defineProperty(D,"padToEven",{enumerable:!0,get:function(){return ye.padToEven}}),Object.defineProperty(D,"getBinarySize",{enumerable:!0,get:function(){return ye.getBinarySize}}),Object.defineProperty(D,"arrayContainsArray",{enumerable:!0,get:function(){return ye.arrayContainsArray}}),Object.defineProperty(D,"toAscii",{enumerable:!0,get:function(){return ye.toAscii}}),Object.defineProperty(D,"fromUtf8",{enumerable:!0,get:function(){return ye.fromUtf8}}),Object.defineProperty(D,"fromAscii",{enumerable:!0,get:function(){return ye.fromAscii}}),Object.defineProperty(D,"getKeys",{enumerable:!0,get:function(){return ye.getKeys}}),Object.defineProperty(D,"isHexString",{enumerable:!0,get:function(){return ye.isHexString}})}(Dl);var dg={},ug={},fg=cy.Buffer;var lg=function base$1(D){if(D.length>=255)throw new TypeError("Alphabet too long");for(var te=new Uint8Array(256),he=0;he<te.length;he++)te[he]=255;for(var ye=0;ye<D.length;ye++){var be=D.charAt(ye),ve=be.charCodeAt(0);if(255!==te[ve])throw new TypeError(be+" is ambiguous");te[ve]=ye}var we=D.length,_e=D.charAt(0),Pe=Math.log(we)/Math.log(256),Ie=Math.log(256)/Math.log(we);function decodeUnsafe(D){if("string"!=typeof D)throw new TypeError("Expected String");if(0===D.length)return fg.alloc(0);for(var he=0,ye=0,be=0;D[he]===_e;)ye++,he++;for(var ve=(D.length-he)*Pe+1>>>0,Ie=new Uint8Array(ve);D[he];){var Re=te[D.charCodeAt(he)];if(255===Re)return;for(var ke=0,Oe=ve-1;(0!==Re||ke<be)&&-1!==Oe;Oe--,ke++)Re+=we*Ie[Oe]>>>0,Ie[Oe]=Re%256>>>0,Re=Re/256>>>0;if(0!==Re)throw new Error("Non-zero carry");be=ke,he++}for(var xe=ve-be;xe!==ve&&0===Ie[xe];)xe++;var Be=fg.allocUnsafe(ye+(ve-xe));Be.fill(0,0,ye);for(var Fe=ye;xe!==ve;)Be[Fe++]=Ie[xe++];return Be}return{encode:function encode(te){if((Array.isArray(te)||te instanceof Uint8Array)&&(te=fg.from(te)),!fg.isBuffer(te))throw new TypeError("Expected Buffer");if(0===te.length)return"";for(var he=0,ye=0,be=0,ve=te.length;be!==ve&&0===te[be];)be++,he++;for(var Pe=(ve-be)*Ie+1>>>0,Re=new Uint8Array(Pe);be!==ve;){for(var ke=te[be],Oe=0,xe=Pe-1;(0!==ke||Oe<ye)&&-1!==xe;xe--,Oe++)ke+=256*Re[xe]>>>0,Re[xe]=ke%we>>>0,ke=ke/we>>>0;if(0!==ke)throw new Error("Non-zero carry");ye=Oe,be++}for(var Be=Pe-ye;Be!==Pe&&0===Re[Be];)Be++;for(var Fe=_e.repeat(he);Be<Pe;++Be)Fe+=D.charAt(Re[Be]);return Fe},decodeUnsafe:decodeUnsafe,decode:function decode(D){var te=decodeUnsafe(D);if(te)return te;throw new Error("Non-base"+we+" character")}}},pg=lg("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),hg=cy.Buffer,yg=qb,bs58checkBase=function(D){function decodeRaw(te){var he=te.slice(0,-4),ye=te.slice(-4),be=D(he);if(!(ye[0]^be[0]|ye[1]^be[1]|ye[2]^be[2]|ye[3]^be[3]))return he}return{encode:function encode(te){var he=D(te);return pg.encode(hg.concat([te,he],te.length+4))},decode:function decode(D){var te=decodeRaw(pg.decode(D));if(!te)throw new Error("Invalid checksum");return te},decodeUnsafe:function decodeUnsafe(D){var te=pg.decodeUnsafe(D);if(te)return decodeRaw(te)}}};var mg=bs58checkBase((function sha256x2(D){var te=yg("sha256").update(D).digest();return yg("sha256").update(te).digest()})),bg={},gg={};Object.defineProperty(gg,"__esModule",{value:!0});var vg=hd.ripemd160,wg=_y;gg.ripemd160=wg.createHashFunction((function(){return new vg}));var _g={};Object.defineProperty(_g,"__esModule",{value:!0});var Tg=jc,Ag=_y;_g.sha256=Ag.createHashFunction((function(){return new Tg}));var Eg=dc,Pg=cy.Buffer,Sg=Fb,Cg=Pg.alloc(128),Ig=64;function Hmac$1(D,te){Sg.call(this,"digest"),"string"==typeof te&&(te=Pg.from(te)),this._alg=D,this._key=te,te.length>Ig?te=D(te):te.length<Ig&&(te=Pg.concat([te,Cg],Ig));for(var he=this._ipad=Pg.allocUnsafe(Ig),ye=this._opad=Pg.allocUnsafe(Ig),be=0;be<Ig;be++)he[be]=54^te[be],ye[be]=92^te[be];this._hash=[he]}Eg(Hmac$1,Sg),Hmac$1.prototype._update=function(D){this._hash.push(D)},Hmac$1.prototype._final=function(){var D=this._alg(Pg.concat(this._hash));return this._alg(Pg.concat([this._opad,D]))};var Rg=Cm,kg=dc,Og=Hmac$1,xg=Fb,Ng=cy.Buffer,md5$2=function(D){return(new Rg).update(D).digest()},Mg=Lm,Bg=Sb,Fg=Ng.alloc(128);function Hmac(D,te){xg.call(this,"digest"),"string"==typeof te&&(te=Ng.from(te));var he="sha512"===D||"sha384"===D?128:64;(this._alg=D,this._key=te,te.length>he)?te=("rmd160"===D?new Mg:Bg(D)).update(te).digest():te.length<he&&(te=Ng.concat([te,Fg],he));for(var ye=this._ipad=Ng.allocUnsafe(he),be=this._opad=Ng.allocUnsafe(he),ve=0;ve<he;ve++)ye[ve]=54^te[ve],be[ve]=92^te[ve];this._hash="rmd160"===D?new Mg:Bg(D),this._hash.update(ye)}kg(Hmac,xg),Hmac.prototype._update=function(D){this._hash.update(D)},Hmac.prototype._final=function(){var D=this._hash.digest();return("rmd160"===this._alg?new Mg:Bg(this._alg)).update(this._opad).update(D).digest()};Object.defineProperty(bg,"__esModule",{value:!0});var Dg=gg,Lg=_g;bg.createHmac=function createHmac(D,te){return"rmd160"===(D=D.toLowerCase())||"ripemd160"===D?new Hmac("rmd160",te):"md5"===D?new Og(md5$2,te):new Hmac(D,te)},bg.randomBytes=py;var Ug=function(){function Hash(D){this.hashFunction=D,this.buffers=[]}return Hash.prototype.update=function(D){if(!Buffer.isBuffer(D))throw new Error("hdkey-crypto shim is outdated");return this.buffers.push(D),this},Hash.prototype.digest=function(D){if(D)throw new Error("hdkey-crypto shim is outdated");return this.hashFunction(Buffer.concat(this.buffers))},Hash}();bg.createHash=function(D){if("ripemd160"===D)return new Ug(Dg.ripemd160);if("sha256"===D)return new Ug(Lg.sha256);throw new Error("hdkey-crypto shim is outdated")};var $g={},qg={},Gg=rn&&rn.__importStar||function(D){if(D&&D.__esModule)return D;var te={};if(null!=D)for(var he in D)Object.hasOwnProperty.call(D,he)&&(te[he]=D[he]);return te.default=D,te};Object.defineProperty(qg,"__esModule",{value:!0});var jg=Gg(ay);function _interopDefault$1(D){return D&&"object"==typeof D&&"default"in D?D.default:D}qg.privateKeyVerify=function privateKeyVerify(D){return jg.privateKeyVerify(D)},qg.publicKeyCreate=function publicKeyCreate(D,te){return void 0===te&&(te=!0),Buffer.from(jg.publicKeyCreate(D,te))},qg.publicKeyVerify=function publicKeyVerify(D){return jg.publicKeyVerify(D)},qg.publicKeyConvert=function publicKeyConvert(D,te){return void 0===te&&(te=!0),Buffer.from(jg.publicKeyConvert(D,te))},qg.privateKeyTweakAdd=function privateKeyTweakAdd(D,te){return Buffer.from(jg.privateKeyTweakAdd(Buffer.from(D),te))},qg.publicKeyTweakAdd=function publicKeyTweakAdd(D,te,he){return void 0===he&&(he=!0),Buffer.from(jg.publicKeyTweakAdd(Buffer.from(D),te,he))},qg.sign=function sign(D,te){var he=jg.ecdsaSign(D,te);return{signature:Buffer.from(he.signature),recovery:he.recid}},qg.verify=function verify(D,te,he){return jg.ecdsaVerify(te,D,he)},function(D){Object.defineProperty(D,"__esModule",{value:!0}),function __export(te){for(var he in te)D.hasOwnProperty(he)||(D[he]=te[he])}(qg)}($g);var Hg=_interopDefault$1(Cp),zg=_interopDefault$1(cy),Wg=_interopDefault$1(mg),Vg=bg,Kg=$g,Jg=zg.Buffer,Xg=Jg.from("Bitcoin seed","utf8"),Qg=2147483648,Zg={private:76066276,public:76067358};function HDKey(D){this.versions=D||Zg,this.depth=0,this.index=0,this._privateKey=null,this._publicKey=null,this.chainCode=null,this._fingerprint=0,this.parentFingerprint=0}function serialize(D,te,he){var ye=Jg.allocUnsafe(78);ye.writeUInt32BE(te,0),ye.writeUInt8(D.depth,4);var be=D.depth?D.parentFingerprint:0;return ye.writeUInt32BE(be,5),ye.writeUInt32BE(D.index,9),D.chainCode.copy(ye,13),he.copy(ye,45),ye}function hash160(D){var te=Vg.createHash("sha256").update(D).digest();return Vg.createHash("ripemd160").update(te).digest()}Object.defineProperty(HDKey.prototype,"fingerprint",{get:function(){return this._fingerprint}}),Object.defineProperty(HDKey.prototype,"identifier",{get:function(){return this._identifier}}),Object.defineProperty(HDKey.prototype,"pubKeyHash",{get:function(){return this.identifier}}),Object.defineProperty(HDKey.prototype,"privateKey",{get:function(){return this._privateKey},set:function(D){Hg.equal(D.length,32,"Private key must be 32 bytes."),Hg(!0===Kg.privateKeyVerify(D),"Invalid private key"),this._privateKey=D,this._publicKey=Kg.publicKeyCreate(D,!0),this._identifier=hash160(this.publicKey),this._fingerprint=this._identifier.slice(0,4).readUInt32BE(0)}}),Object.defineProperty(HDKey.prototype,"publicKey",{get:function(){return this._publicKey},set:function(D){Hg(33===D.length||65===D.length,"Public key must be 33 or 65 bytes."),Hg(!0===Kg.publicKeyVerify(D),"Invalid public key"),this._publicKey=Kg.publicKeyConvert(D,!0),this._identifier=hash160(this.publicKey),this._fingerprint=this._identifier.slice(0,4).readUInt32BE(0),this._privateKey=null}}),Object.defineProperty(HDKey.prototype,"privateExtendedKey",{get:function(){return this._privateKey?Wg.encode(serialize(this,this.versions.private,Jg.concat([Jg.alloc(1,0),this.privateKey]))):null}}),Object.defineProperty(HDKey.prototype,"publicExtendedKey",{get:function(){return Wg.encode(serialize(this,this.versions.public,this.publicKey))}}),HDKey.prototype.derive=function(D){if("m"===D||"M"===D||"m'"===D||"M'"===D)return this;var te=D.split("/"),he=this;return te.forEach((function(D,te){if(0!==te){var ye=D.length>1&&"'"===D[D.length-1],be=parseInt(D,10);Hg(be<Qg,"Invalid index"),ye&&(be+=Qg),he=he.deriveChild(be)}else Hg(/^[mM]{1}/.test(D),'Path must start with "m" or "M"')})),he},HDKey.prototype.deriveChild=function(D){var te,he=D>=Qg,ye=Jg.allocUnsafe(4);if(ye.writeUInt32BE(D,0),he){Hg(this.privateKey,"Could not derive hardened child key");var be=this.privateKey,ve=Jg.alloc(1,0);be=Jg.concat([ve,be]),te=Jg.concat([be,ye])}else te=Jg.concat([this.publicKey,ye]);var we=Vg.createHmac("sha512",this.chainCode).update(te).digest(),_e=we.slice(0,32),Pe=we.slice(32),Ie=new HDKey(this.versions);if(this.privateKey)try{Ie.privateKey=Kg.privateKeyTweakAdd(this.privateKey,_e)}catch(te){return this.deriveChild(D+1)}else try{Ie.publicKey=Kg.publicKeyTweakAdd(this.publicKey,_e,!0)}catch(te){return this.deriveChild(D+1)}return Ie.chainCode=Pe,Ie.depth=this.depth+1,Ie.parentFingerprint=this.fingerprint,Ie.index=D,Ie},HDKey.prototype.sign=function(D){return Kg.sign(D,this.privateKey).signature},HDKey.prototype.verify=function(D,te){return Kg.verify(D,te,this.publicKey)},HDKey.prototype.wipePrivateData=function(){return this._privateKey&&Vg.randomBytes(this._privateKey.length).copy(this._privateKey),this._privateKey=null,this},HDKey.prototype.toJSON=function(){return{xpriv:this.privateExtendedKey,xpub:this.publicExtendedKey}},HDKey.fromMasterSeed=function(D,te){var he=Vg.createHmac("sha512",Xg).update(D).digest(),ye=he.slice(0,32),be=he.slice(32),ve=new HDKey(te);return ve.chainCode=be,ve.privateKey=ye,ve},HDKey.fromExtendedKey=function(D,te){var he=new HDKey(te=te||Zg),ye=Wg.decode(D),be=ye.readUInt32BE(0);Hg(be===te.private||be===te.public,"Version mismatch: does not match private or public"),he.depth=ye.readUInt8(4),he.parentFingerprint=ye.readUInt32BE(5),he.index=ye.readUInt32BE(9),he.chainCode=ye.slice(13,45);var ve=ye.slice(45);return 0===ve.readUInt8(0)?(Hg(be===te.private,"Version mismatch: version does not match private"),he.privateKey=ve.slice(1)):(Hg(be===te.public,"Version mismatch: version does not match public"),he.publicKey=ve),he},HDKey.fromJSON=function(D){return HDKey.fromExtendedKey(D.xpriv)},HDKey.HARDENED_OFFSET=Qg;var Yg=HDKey;Object.defineProperty(ug,"__esModule",{value:!0});var ev,tv=Yg;ug.HDKey=tv;var rv={},nv={};
/*! https://mths.be/utf8js v3.0.0 by @mathias */
!function(D){!function(D){var te,he,ye,be=String.fromCharCode;function ucs2decode(D){for(var te,he,ye=[],be=0,ve=D.length;be<ve;)(te=D.charCodeAt(be++))>=55296&&te<=56319&&be<ve?56320==(64512&(he=D.charCodeAt(be++)))?ye.push(((1023&te)<<10)+(1023&he)+65536):(ye.push(te),be--):ye.push(te);return ye}function checkScalarValue(D){if(D>=55296&&D<=57343)throw Error("Lone surrogate U+"+D.toString(16).toUpperCase()+" is not a scalar value")}function createByte(D,te){return be(D>>te&63|128)}function encodeCodePoint(D){if(0==(4294967168&D))return be(D);var te="";return 0==(4294965248&D)?te=be(D>>6&31|192):0==(4294901760&D)?(checkScalarValue(D),te=be(D>>12&15|224),te+=createByte(D,6)):0==(4292870144&D)&&(te=be(D>>18&7|240),te+=createByte(D,12),te+=createByte(D,6)),te+=be(63&D|128)}function readContinuationByte(){if(ye>=he)throw Error("Invalid byte index");var D=255&te[ye];if(ye++,128==(192&D))return 63&D;throw Error("Invalid continuation byte")}function decodeSymbol(){var D,be;if(ye>he)throw Error("Invalid byte index");if(ye==he)return!1;if(D=255&te[ye],ye++,0==(128&D))return D;if(192==(224&D)){if((be=(31&D)<<6|readContinuationByte())>=128)return be;throw Error("Invalid continuation byte")}if(224==(240&D)){if((be=(15&D)<<12|readContinuationByte()<<6|readContinuationByte())>=2048)return checkScalarValue(be),be;throw Error("Invalid continuation byte")}if(240==(248&D)&&(be=(7&D)<<18|readContinuationByte()<<12|readContinuationByte()<<6|readContinuationByte())>=65536&&be<=1114111)return be;throw Error("Invalid UTF-8 detected")}D.version="3.0.0",D.encode=function utf8encode(D){for(var te=ucs2decode(D),he=te.length,ye=-1,be="";++ye<he;)be+=encodeCodePoint(te[ye]);return be},D.decode=function utf8decode(D){te=ucs2decode(D),he=te.length,ye=0;for(var ve,we=[];!1!==(ve=decodeSymbol());)we.push(ve);return function ucs2encode(D){for(var te,he=D.length,ye=-1,ve="";++ye<he;)(te=D[ye])>65535&&(ve+=be((te-=65536)>>>10&1023|55296),te=56320|1023&te),ve+=be(te);return ve}(we)}}(D)}(nv);var av={exports:{}};
/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */!function(D,te){!function(te){function checkInt(D){return parseInt(D)===D}function checkInts(D){if(!checkInt(D.length))return!1;for(var te=0;te<D.length;te++)if(!checkInt(D[te])||D[te]<0||D[te]>255)return!1;return!0}function coerceArray(D,te){if(D.buffer&&"Uint8Array"===D.name)return te&&(D=D.slice?D.slice():Array.prototype.slice.call(D)),D;if(Array.isArray(D)){if(!checkInts(D))throw new Error("Array contains invalid value: "+D);return new Uint8Array(D)}if(checkInt(D.length)&&checkInts(D))return new Uint8Array(D);throw new Error("unsupported array-like object")}function createArray(D){return new Uint8Array(D)}function copyArray(D,te,he,ye,be){null==ye&&null==be||(D=D.slice?D.slice(ye,be):Array.prototype.slice.call(D,ye,be)),te.set(D,he)}var he,ye={toBytes:function toBytes(D){var te=[],he=0;for(D=encodeURI(D);he<D.length;){var ye=D.charCodeAt(he++);37===ye?(te.push(parseInt(D.substr(he,2),16)),he+=2):te.push(ye)}return coerceArray(te)},fromBytes:function fromBytes(D){for(var te=[],he=0;he<D.length;){var ye=D[he];ye<128?(te.push(String.fromCharCode(ye)),he++):ye>191&&ye<224?(te.push(String.fromCharCode((31&ye)<<6|63&D[he+1])),he+=2):(te.push(String.fromCharCode((15&ye)<<12|(63&D[he+1])<<6|63&D[he+2])),he+=3)}return te.join("")}},be=(he="0123456789abcdef",{toBytes:function toBytes(D){for(var te=[],he=0;he<D.length;he+=2)te.push(parseInt(D.substr(he,2),16));return te},fromBytes:function fromBytes(D){for(var te=[],ye=0;ye<D.length;ye++){var be=D[ye];te.push(he[(240&be)>>4]+he[15&be])}return te.join("")}}),ve={16:10,24:12,32:14},we=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],_e=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],Pe=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Ie=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Re=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],ke=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],Oe=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],xe=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Be=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Fe=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],De=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],Le=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],Ue=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],qe=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],je=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function convertToInt32(D){for(var te=[],he=0;he<D.length;he+=4)te.push(D[he]<<24|D[he+1]<<16|D[he+2]<<8|D[he+3]);return te}var AES=function(D){if(!(this instanceof AES))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:coerceArray(D,!0)}),this._prepare()};AES.prototype._prepare=function(){var D=ve[this.key.length];if(null==D)throw new Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var te=0;te<=D;te++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var he,ye=4*(D+1),be=this.key.length/4,Pe=convertToInt32(this.key);for(te=0;te<be;te++)he=te>>2,this._Ke[he][te%4]=Pe[te],this._Kd[D-he][te%4]=Pe[te];for(var Ie,Re=0,ke=be;ke<ye;){if(Ie=Pe[be-1],Pe[0]^=_e[Ie>>16&255]<<24^_e[Ie>>8&255]<<16^_e[255&Ie]<<8^_e[Ie>>24&255]^we[Re]<<24,Re+=1,8!=be)for(te=1;te<be;te++)Pe[te]^=Pe[te-1];else{for(te=1;te<be/2;te++)Pe[te]^=Pe[te-1];Ie=Pe[be/2-1],Pe[be/2]^=_e[255&Ie]^_e[Ie>>8&255]<<8^_e[Ie>>16&255]<<16^_e[Ie>>24&255]<<24;for(te=be/2+1;te<be;te++)Pe[te]^=Pe[te-1]}for(te=0;te<be&&ke<ye;)Oe=ke>>2,xe=ke%4,this._Ke[Oe][xe]=Pe[te],this._Kd[D-Oe][xe]=Pe[te++],ke++}for(var Oe=1;Oe<D;Oe++)for(var xe=0;xe<4;xe++)Ie=this._Kd[Oe][xe],this._Kd[Oe][xe]=Le[Ie>>24&255]^Ue[Ie>>16&255]^qe[Ie>>8&255]^je[255&Ie]},AES.prototype.encrypt=function(D){if(16!=D.length)throw new Error("invalid plaintext size (must be 16 bytes)");for(var te=this._Ke.length-1,he=[0,0,0,0],ye=convertToInt32(D),be=0;be<4;be++)ye[be]^=this._Ke[0][be];for(var ve=1;ve<te;ve++){for(be=0;be<4;be++)he[be]=Ie[ye[be]>>24&255]^Re[ye[(be+1)%4]>>16&255]^ke[ye[(be+2)%4]>>8&255]^Oe[255&ye[(be+3)%4]]^this._Ke[ve][be];ye=he.slice()}var we,Pe=createArray(16);for(be=0;be<4;be++)we=this._Ke[te][be],Pe[4*be]=255&(_e[ye[be]>>24&255]^we>>24),Pe[4*be+1]=255&(_e[ye[(be+1)%4]>>16&255]^we>>16),Pe[4*be+2]=255&(_e[ye[(be+2)%4]>>8&255]^we>>8),Pe[4*be+3]=255&(_e[255&ye[(be+3)%4]]^we);return Pe},AES.prototype.decrypt=function(D){if(16!=D.length)throw new Error("invalid ciphertext size (must be 16 bytes)");for(var te=this._Kd.length-1,he=[0,0,0,0],ye=convertToInt32(D),be=0;be<4;be++)ye[be]^=this._Kd[0][be];for(var ve=1;ve<te;ve++){for(be=0;be<4;be++)he[be]=xe[ye[be]>>24&255]^Be[ye[(be+3)%4]>>16&255]^Fe[ye[(be+2)%4]>>8&255]^De[255&ye[(be+1)%4]]^this._Kd[ve][be];ye=he.slice()}var we,_e=createArray(16);for(be=0;be<4;be++)we=this._Kd[te][be],_e[4*be]=255&(Pe[ye[be]>>24&255]^we>>24),_e[4*be+1]=255&(Pe[ye[(be+3)%4]>>16&255]^we>>16),_e[4*be+2]=255&(Pe[ye[(be+2)%4]>>8&255]^we>>8),_e[4*be+3]=255&(Pe[255&ye[(be+1)%4]]^we);return _e};var ModeOfOperationECB=function(D){if(!(this instanceof ModeOfOperationECB))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new AES(D)};ModeOfOperationECB.prototype.encrypt=function(D){if((D=coerceArray(D)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var te=createArray(D.length),he=createArray(16),ye=0;ye<D.length;ye+=16)copyArray(D,he,0,ye,ye+16),copyArray(he=this._aes.encrypt(he),te,ye);return te},ModeOfOperationECB.prototype.decrypt=function(D){if((D=coerceArray(D)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var te=createArray(D.length),he=createArray(16),ye=0;ye<D.length;ye+=16)copyArray(D,he,0,ye,ye+16),copyArray(he=this._aes.decrypt(he),te,ye);return te};var ModeOfOperationCBC=function(D,te){if(!(this instanceof ModeOfOperationCBC))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",te){if(16!=te.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else te=createArray(16);this._lastCipherblock=coerceArray(te,!0),this._aes=new AES(D)};ModeOfOperationCBC.prototype.encrypt=function(D){if((D=coerceArray(D)).length%16!=0)throw new Error("invalid plaintext size (must be multiple of 16 bytes)");for(var te=createArray(D.length),he=createArray(16),ye=0;ye<D.length;ye+=16){copyArray(D,he,0,ye,ye+16);for(var be=0;be<16;be++)he[be]^=this._lastCipherblock[be];this._lastCipherblock=this._aes.encrypt(he),copyArray(this._lastCipherblock,te,ye)}return te},ModeOfOperationCBC.prototype.decrypt=function(D){if((D=coerceArray(D)).length%16!=0)throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");for(var te=createArray(D.length),he=createArray(16),ye=0;ye<D.length;ye+=16){copyArray(D,he,0,ye,ye+16),he=this._aes.decrypt(he);for(var be=0;be<16;be++)te[ye+be]=he[be]^this._lastCipherblock[be];copyArray(D,this._lastCipherblock,0,ye,ye+16)}return te};var ModeOfOperationCFB=function(D,te,he){if(!(this instanceof ModeOfOperationCFB))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",te){if(16!=te.length)throw new Error("invalid initialation vector size (must be 16 size)")}else te=createArray(16);he||(he=1),this.segmentSize=he,this._shiftRegister=coerceArray(te,!0),this._aes=new AES(D)};ModeOfOperationCFB.prototype.encrypt=function(D){if(D.length%this.segmentSize!=0)throw new Error("invalid plaintext size (must be segmentSize bytes)");for(var te,he=coerceArray(D,!0),ye=0;ye<he.length;ye+=this.segmentSize){te=this._aes.encrypt(this._shiftRegister);for(var be=0;be<this.segmentSize;be++)he[ye+be]^=te[be];copyArray(this._shiftRegister,this._shiftRegister,0,this.segmentSize),copyArray(he,this._shiftRegister,16-this.segmentSize,ye,ye+this.segmentSize)}return he},ModeOfOperationCFB.prototype.decrypt=function(D){if(D.length%this.segmentSize!=0)throw new Error("invalid ciphertext size (must be segmentSize bytes)");for(var te,he=coerceArray(D,!0),ye=0;ye<he.length;ye+=this.segmentSize){te=this._aes.encrypt(this._shiftRegister);for(var be=0;be<this.segmentSize;be++)he[ye+be]^=te[be];copyArray(this._shiftRegister,this._shiftRegister,0,this.segmentSize),copyArray(D,this._shiftRegister,16-this.segmentSize,ye,ye+this.segmentSize)}return he};var ModeOfOperationOFB=function(D,te){if(!(this instanceof ModeOfOperationOFB))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",te){if(16!=te.length)throw new Error("invalid initialation vector size (must be 16 bytes)")}else te=createArray(16);this._lastPrecipher=coerceArray(te,!0),this._lastPrecipherIndex=16,this._aes=new AES(D)};ModeOfOperationOFB.prototype.encrypt=function(D){for(var te=coerceArray(D,!0),he=0;he<te.length;he++)16===this._lastPrecipherIndex&&(this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0),te[he]^=this._lastPrecipher[this._lastPrecipherIndex++];return te},ModeOfOperationOFB.prototype.decrypt=ModeOfOperationOFB.prototype.encrypt;var Counter=function(D){if(!(this instanceof Counter))throw Error("Counter must be instanitated with `new`");0===D||D||(D=1),"number"==typeof D?(this._counter=createArray(16),this.setValue(D)):this.setBytes(D)};Counter.prototype.setValue=function(D){if("number"!=typeof D||parseInt(D)!=D)throw new Error("invalid counter value (must be an integer)");if(D>Number.MAX_SAFE_INTEGER)throw new Error("integer value out of safe range");for(var te=15;te>=0;--te)this._counter[te]=D%256,D=parseInt(D/256)},Counter.prototype.setBytes=function(D){if(16!=(D=coerceArray(D,!0)).length)throw new Error("invalid counter bytes size (must be 16 bytes)");this._counter=D},Counter.prototype.increment=function(){for(var D=15;D>=0;D--){if(255!==this._counter[D]){this._counter[D]++;break}this._counter[D]=0}};var ModeOfOperationCTR=function(D,te){if(!(this instanceof ModeOfOperationCTR))throw Error("AES must be instanitated with `new`");this.description="Counter",this.name="ctr",te instanceof Counter||(te=new Counter(te)),this._counter=te,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new AES(D)};ModeOfOperationCTR.prototype.encrypt=function(D){for(var te=coerceArray(D,!0),he=0;he<te.length;he++)16===this._remainingCounterIndex&&(this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment()),te[he]^=this._remainingCounter[this._remainingCounterIndex++];return te},ModeOfOperationCTR.prototype.decrypt=ModeOfOperationCTR.prototype.encrypt;var Je={AES:AES,Counter:Counter,ModeOfOperation:{ecb:ModeOfOperationECB,cbc:ModeOfOperationCBC,cfb:ModeOfOperationCFB,ofb:ModeOfOperationOFB,ctr:ModeOfOperationCTR},utils:{hex:be,utf8:ye},padding:{pkcs7:{pad:function pkcs7pad(D){var te=16-(D=coerceArray(D,!0)).length%16,he=createArray(D.length+te);copyArray(D,he);for(var ye=D.length;ye<he.length;ye++)he[ye]=te;return he},strip:function pkcs7strip(D){if((D=coerceArray(D,!0)).length<16)throw new Error("PKCS#7 invalid length");var te=D[D.length-1];if(te>16)throw new Error("PKCS#7 padding byte out of range");for(var he=D.length-te,ye=0;ye<te;ye++)if(D[he+ye]!==te)throw new Error("PKCS#7 invalid padding byte");var be=createArray(he);return copyArray(D,be,0,0,he),be}}},_arrayTest:{coerceArray:coerceArray,createArray:createArray,copyArray:copyArray}};D.exports=Je}()}(av);var iv,sv,ov=av.exports;function requireThirdparty(){if(iv)return rv;iv=1;var D=rn&&rn.__createBinding||(Object.create?function(D,te,he,ye){void 0===ye&&(ye=he),Object.defineProperty(D,ye,{enumerable:!0,get:function(){return te[he]}})}:function(D,te,he,ye){void 0===ye&&(ye=he),D[ye]=te[he]}),te=rn&&rn.__setModuleDefault||(Object.create?function(D,te){Object.defineProperty(D,"default",{enumerable:!0,value:te})}:function(D,te){D.default=te}),he=rn&&rn.__importStar||function(he){if(he&&he.__esModule)return he;var ye={};if(null!=he)for(var be in he)"default"!==be&&Object.prototype.hasOwnProperty.call(he,be)&&D(ye,he,be);return te(ye,he),ye},ye=rn&&rn.__awaiter||function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))},be=rn&&rn.__generator||function(D,te){var he,ye,be,ve,we={label:0,sent:function(){if(1&be[0])throw be[1];return be[1]},trys:[],ops:[]};return ve={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(ve[Symbol.iterator]=function(){return this}),ve;function verb(ve){return function(_e){return function step(ve){if(he)throw new TypeError("Generator is already executing.");for(;we;)try{if(he=1,ye&&(be=2&ve[0]?ye.return:ve[0]?ye.throw||((be=ye.return)&&be.call(ye),0):ye.next)&&!(be=be.call(ye,ve[1])).done)return be;switch(ye=0,be&&(ve=[2&ve[0],be.value]),ve[0]){case 0:case 1:be=ve;break;case 4:return we.label++,{value:ve[1],done:!1};case 5:we.label++,ye=ve[1],ve=[0];continue;case 7:ve=we.ops.pop(),we.trys.pop();continue;default:if(!(be=we.trys,(be=be.length>0&&be[be.length-1])||6!==ve[0]&&2!==ve[0])){we=0;continue}if(3===ve[0]&&(!be||ve[1]>be[0]&&ve[1]<be[3])){we.label=ve[1];break}if(6===ve[0]&&we.label<be[1]){we.label=be[1],be=ve;break}if(be&&we.label<be[2]){we.label=be[2],we.ops.push(ve);break}be[2]&&we.ops.pop(),we.trys.pop();continue}ve=te.call(D,we)}catch(D){ve=[6,D],ye=0}finally{he=be=0}if(5&ve[0])throw ve[1];return{value:ve[0]?ve[1]:void 0,done:!0}}([ve,_e])}}},ve=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(rv,"__esModule",{value:!0}),rv.fromQuorumWallet=rv.fromKryptoKit=rv.fromEtherCamp=rv.fromEtherWallet=void 0;var we=he(Af),_e=Dl,Pe=Iu,Ie=ve(requireDist_browser()),Re=nv,ke=ov;var Oe={count:1,keysize:16,ivsize:16,digest:"md5"};function evp_kdf(D,te,he){var ye=function mergeEvpKdfOptsWithDefaults(D){return D?{count:D.count||Oe.count,keysize:D.keysize||Oe.keysize,ivsize:D.ivsize||Oe.ivsize,digest:D.digest||Oe.digest}:Oe}(he);function iter(he){var be=we.createHash(ye.digest);be.update(he),be.update(D),be.update(te),he=be.digest();for(var ve=1,_e=ye.count;ve<_e;ve++)(be=we.createHash(ye.digest)).update(he),he=be.digest();return he}for(var be=[],ve=0;Buffer.concat(be).length<ye.keysize+ye.ivsize;)be[ve]=iter(0===ve?Buffer.alloc(0):be[ve-1]),ve++;var _e=Buffer.concat(be);return{key:_e.slice(0,ye.keysize),iv:_e.slice(ye.keysize,ye.keysize+ye.ivsize)}}function fromEtherWallet(D,te){var he,ye="object"==typeof D?D:JSON.parse(D);if(ye.locked){if("string"!=typeof te)throw new Error("Password required");if(te.length<7)throw new Error("Password must be at least 7 characters");var be=function decodeCryptojsSalt(D){var te=Buffer.from(D,"base64");return"Salted__"===te.slice(0,8).toString()?{salt:te.slice(8,16),ciphertext:te.slice(16)}:{ciphertext:te}}(ye.encrypted?ye.private.slice(0,128):ye.private);if(!be.salt)throw new Error("Unsupported EtherWallet key format");var ve=evp_kdf(Buffer.from(te),be.salt,{keysize:32,ivsize:16});he=function runCipherBuffer(D,te){return Buffer.concat([D.update(te),D.final()])}(we.createDecipheriv("aes-256-cbc",ve.key,ve.iv),Buffer.from(be.ciphertext)),he=Buffer.from(Re.decode(he.toString()),"hex")}else{if(64!==ye.private.length)throw new Error("Invalid private key length");he=Buffer.from(ye.private,"hex")}var _e=new Ie.default(he);if(_e.getAddressString()!==ye.address)throw new Error("Invalid private key or address");return _e}function fromEtherCamp(D){return new Ie.default((0,_e.keccak256)(Buffer.from(D)))}function fromKryptoKit(D,te){return ye(this,void 0,void 0,(function(){var he,ye,ve,we,Re,Oe,xe;return be(this,(function(be){switch(be.label){case 0:return"#"===D[0]&&(D=D.slice(1)),he=D[0],D=D.slice(1),"d"!==he?[3,1]:(ye=(0,_e.sha256)((0,_e.toBuffer)(D)),[3,4]);case 1:if("q"!==he)return[3,3];if("string"!=typeof te)throw new Error("Password required");return ve=(0,_e.sha256)(Buffer.from(D.slice(0,30))),we=D.slice(30,46),Re=function kryptoKitBrokenScryptSeed(D){function decodeUtf8Char(D){try{return decodeURIComponent(D)}catch(D){return String.fromCharCode(65533)}}for(var te="",he="",ye=0;ye<D.length;ye++)D[ye]<=127?(te+=decodeUtf8Char(he)+String.fromCharCode(D[ye]),he=""):he+="%"+D[ye].toString(16);return Buffer.from(te+decodeUtf8Char(he))}(ve),[4,(0,Pe.scrypt)(Buffer.from(te,"utf8"),Re,16384,8,1,32)];case 2:if(Oe=be.sent(),xe=new ke.ModeOfOperation.ecb(Oe),ye=Buffer.concat([Buffer.from(xe.decrypt(ve.slice(0,16))),Buffer.from(xe.decrypt(ve.slice(16,32)))]),we.length>0&&we!==(0,_e.sha256)((0,_e.sha256)(ye)).slice(0,8).toString("hex"))throw new Error("Failed to decrypt input - possibly invalid passphrase");return[3,4];case 3:throw new Error("Unsupported or invalid entropy type");case 4:return[2,new Ie.default(ye)]}}))}))}function fromQuorumWallet(D,te){if(D.length<10)throw new Error("Passphrase must be at least 10 characters");if(te.length<10)throw new Error("User id must be at least 10 characters");var he=D+te,ye=we.pbkdf2Sync(he,he,2e3,32,"sha256");return new Ie.default(ye)}rv.fromEtherWallet=fromEtherWallet,rv.fromEtherCamp=fromEtherCamp,rv.fromKryptoKit=fromKryptoKit,rv.fromQuorumWallet=fromQuorumWallet;var xe={fromEtherWallet:fromEtherWallet,fromEtherCamp:fromEtherCamp,fromKryptoKit:fromKryptoKit,fromQuorumWallet:fromQuorumWallet};return rv.default=xe,rv}var cv=new Uint8Array(16);function rng(){if(!sv&&!(sv="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return sv(cv)}var dv=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function validate(D){return"string"==typeof D&&dv.test(D)}for(var uv,fv,lv=[],pv=0;pv<256;++pv)lv.push((pv+256).toString(16).substr(1));function stringify$1(D){var te=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,he=(lv[D[te+0]]+lv[D[te+1]]+lv[D[te+2]]+lv[D[te+3]]+"-"+lv[D[te+4]]+lv[D[te+5]]+"-"+lv[D[te+6]]+lv[D[te+7]]+"-"+lv[D[te+8]]+lv[D[te+9]]+"-"+lv[D[te+10]]+lv[D[te+11]]+lv[D[te+12]]+lv[D[te+13]]+lv[D[te+14]]+lv[D[te+15]]).toLowerCase();if(!validate(he))throw TypeError("Stringified UUID is invalid");return he}var hv=0,yv=0;function parse(D){if(!validate(D))throw TypeError("Invalid UUID");var te,he=new Uint8Array(16);return he[0]=(te=parseInt(D.slice(0,8),16))>>>24,he[1]=te>>>16&255,he[2]=te>>>8&255,he[3]=255&te,he[4]=(te=parseInt(D.slice(9,13),16))>>>8,he[5]=255&te,he[6]=(te=parseInt(D.slice(14,18),16))>>>8,he[7]=255&te,he[8]=(te=parseInt(D.slice(19,23),16))>>>8,he[9]=255&te,he[10]=(te=parseInt(D.slice(24,36),16))/1099511627776&255,he[11]=te/4294967296&255,he[12]=te>>>24&255,he[13]=te>>>16&255,he[14]=te>>>8&255,he[15]=255&te,he}function v35(D,te,he){function generateUUID(D,ye,be,ve){if("string"==typeof D&&(D=function stringToBytes(D){D=unescape(encodeURIComponent(D));for(var te=[],he=0;he<D.length;++he)te.push(D.charCodeAt(he));return te}(D)),"string"==typeof ye&&(ye=parse(ye)),16!==ye.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var we=new Uint8Array(16+D.length);if(we.set(ye),we.set(D,ye.length),(we=he(we))[6]=15&we[6]|te,we[8]=63&we[8]|128,be){ve=ve||0;for(var _e=0;_e<16;++_e)be[ve+_e]=we[_e];return be}return stringify$1(we)}try{generateUUID.name=D}catch(D){}return generateUUID.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",generateUUID.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",generateUUID}function getOutputLength(D){return 14+(D+64>>>9<<4)+1}function safeAdd(D,te){var he=(65535&D)+(65535&te);return(D>>16)+(te>>16)+(he>>16)<<16|65535&he}function md5cmn(D,te,he,ye,be,ve){return safeAdd(function bitRotateLeft(D,te){return D<<te|D>>>32-te}(safeAdd(safeAdd(te,D),safeAdd(ye,ve)),be),he)}function md5ff(D,te,he,ye,be,ve,we){return md5cmn(te&he|~te&ye,D,te,be,ve,we)}function md5gg(D,te,he,ye,be,ve,we){return md5cmn(te&ye|he&~ye,D,te,be,ve,we)}function md5hh(D,te,he,ye,be,ve,we){return md5cmn(te^he^ye,D,te,be,ve,we)}function md5ii(D,te,he,ye,be,ve,we){return md5cmn(he^(te|~ye),D,te,be,ve,we)}var mv=v35("v3",48,(function md5$1(D){if("string"==typeof D){var te=unescape(encodeURIComponent(D));D=new Uint8Array(te.length);for(var he=0;he<te.length;++he)D[he]=te.charCodeAt(he)}return function md5ToHexEncodedArray(D){for(var te=[],he=32*D.length,ye="0123456789abcdef",be=0;be<he;be+=8){var ve=D[be>>5]>>>be%32&255,we=parseInt(ye.charAt(ve>>>4&15)+ye.charAt(15&ve),16);te.push(we)}return te}(function wordsToMd5(D,te){D[te>>5]|=128<<te%32,D[getOutputLength(te)-1]=te;for(var he=1732584193,ye=-271733879,be=-1732584194,ve=271733878,we=0;we<D.length;we+=16){var _e=he,Pe=ye,Ie=be,Re=ve;he=md5ff(he,ye,be,ve,D[we],7,-680876936),ve=md5ff(ve,he,ye,be,D[we+1],12,-389564586),be=md5ff(be,ve,he,ye,D[we+2],17,606105819),ye=md5ff(ye,be,ve,he,D[we+3],22,-1044525330),he=md5ff(he,ye,be,ve,D[we+4],7,-176418897),ve=md5ff(ve,he,ye,be,D[we+5],12,1200080426),be=md5ff(be,ve,he,ye,D[we+6],17,-1473231341),ye=md5ff(ye,be,ve,he,D[we+7],22,-45705983),he=md5ff(he,ye,be,ve,D[we+8],7,1770035416),ve=md5ff(ve,he,ye,be,D[we+9],12,-1958414417),be=md5ff(be,ve,he,ye,D[we+10],17,-42063),ye=md5ff(ye,be,ve,he,D[we+11],22,-1990404162),he=md5ff(he,ye,be,ve,D[we+12],7,1804603682),ve=md5ff(ve,he,ye,be,D[we+13],12,-40341101),be=md5ff(be,ve,he,ye,D[we+14],17,-1502002290),he=md5gg(he,ye=md5ff(ye,be,ve,he,D[we+15],22,1236535329),be,ve,D[we+1],5,-165796510),ve=md5gg(ve,he,ye,be,D[we+6],9,-1069501632),be=md5gg(be,ve,he,ye,D[we+11],14,643717713),ye=md5gg(ye,be,ve,he,D[we],20,-373897302),he=md5gg(he,ye,be,ve,D[we+5],5,-701558691),ve=md5gg(ve,he,ye,be,D[we+10],9,38016083),be=md5gg(be,ve,he,ye,D[we+15],14,-660478335),ye=md5gg(ye,be,ve,he,D[we+4],20,-405537848),he=md5gg(he,ye,be,ve,D[we+9],5,568446438),ve=md5gg(ve,he,ye,be,D[we+14],9,-1019803690),be=md5gg(be,ve,he,ye,D[we+3],14,-187363961),ye=md5gg(ye,be,ve,he,D[we+8],20,1163531501),he=md5gg(he,ye,be,ve,D[we+13],5,-1444681467),ve=md5gg(ve,he,ye,be,D[we+2],9,-51403784),be=md5gg(be,ve,he,ye,D[we+7],14,1735328473),he=md5hh(he,ye=md5gg(ye,be,ve,he,D[we+12],20,-1926607734),be,ve,D[we+5],4,-378558),ve=md5hh(ve,he,ye,be,D[we+8],11,-2022574463),be=md5hh(be,ve,he,ye,D[we+11],16,1839030562),ye=md5hh(ye,be,ve,he,D[we+14],23,-35309556),he=md5hh(he,ye,be,ve,D[we+1],4,-1530992060),ve=md5hh(ve,he,ye,be,D[we+4],11,1272893353),be=md5hh(be,ve,he,ye,D[we+7],16,-155497632),ye=md5hh(ye,be,ve,he,D[we+10],23,-1094730640),he=md5hh(he,ye,be,ve,D[we+13],4,681279174),ve=md5hh(ve,he,ye,be,D[we],11,-358537222),be=md5hh(be,ve,he,ye,D[we+3],16,-722521979),ye=md5hh(ye,be,ve,he,D[we+6],23,76029189),he=md5hh(he,ye,be,ve,D[we+9],4,-640364487),ve=md5hh(ve,he,ye,be,D[we+12],11,-421815835),be=md5hh(be,ve,he,ye,D[we+15],16,530742520),he=md5ii(he,ye=md5hh(ye,be,ve,he,D[we+2],23,-995338651),be,ve,D[we],6,-198630844),ve=md5ii(ve,he,ye,be,D[we+7],10,1126891415),be=md5ii(be,ve,he,ye,D[we+14],15,-1416354905),ye=md5ii(ye,be,ve,he,D[we+5],21,-57434055),he=md5ii(he,ye,be,ve,D[we+12],6,1700485571),ve=md5ii(ve,he,ye,be,D[we+3],10,-1894986606),be=md5ii(be,ve,he,ye,D[we+10],15,-1051523),ye=md5ii(ye,be,ve,he,D[we+1],21,-2054922799),he=md5ii(he,ye,be,ve,D[we+8],6,1873313359),ve=md5ii(ve,he,ye,be,D[we+15],10,-30611744),be=md5ii(be,ve,he,ye,D[we+6],15,-1560198380),ye=md5ii(ye,be,ve,he,D[we+13],21,1309151649),he=md5ii(he,ye,be,ve,D[we+4],6,-145523070),ve=md5ii(ve,he,ye,be,D[we+11],10,-1120210379),be=md5ii(be,ve,he,ye,D[we+2],15,718787259),ye=md5ii(ye,be,ve,he,D[we+9],21,-343485551),he=safeAdd(he,_e),ye=safeAdd(ye,Pe),be=safeAdd(be,Ie),ve=safeAdd(ve,Re)}return[he,ye,be,ve]}(function bytesToWords(D){if(0===D.length)return[];for(var te=8*D.length,he=new Uint32Array(getOutputLength(te)),ye=0;ye<te;ye+=8)he[ye>>5]|=(255&D[ye/8])<<ye%32;return he}(D),8*D.length))}));function v4(D,te,he){var ye=(D=D||{}).random||(D.rng||rng)();if(ye[6]=15&ye[6]|64,ye[8]=63&ye[8]|128,te){he=he||0;for(var be=0;be<16;++be)te[he+be]=ye[be];return te}return stringify$1(ye)}function f$2(D,te,he,ye){switch(D){case 0:return te&he^~te&ye;case 1:case 3:return te^he^ye;case 2:return te&he^te&ye^he&ye}}function ROTL(D,te){return D<<te|D>>>32-te}var bv=v35("v5",80,(function sha1$1(D){var te=[1518500249,1859775393,2400959708,3395469782],he=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof D){var ye=unescape(encodeURIComponent(D));D=[];for(var be=0;be<ye.length;++be)D.push(ye.charCodeAt(be))}else Array.isArray(D)||(D=Array.prototype.slice.call(D));D.push(128);for(var ve=D.length/4+2,we=Math.ceil(ve/16),_e=new Array(we),Pe=0;Pe<we;++Pe){for(var Ie=new Uint32Array(16),Re=0;Re<16;++Re)Ie[Re]=D[64*Pe+4*Re]<<24|D[64*Pe+4*Re+1]<<16|D[64*Pe+4*Re+2]<<8|D[64*Pe+4*Re+3];_e[Pe]=Ie}_e[we-1][14]=8*(D.length-1)/Math.pow(2,32),_e[we-1][14]=Math.floor(_e[we-1][14]),_e[we-1][15]=8*(D.length-1)&4294967295;for(var ke=0;ke<we;++ke){for(var Oe=new Uint32Array(80),xe=0;xe<16;++xe)Oe[xe]=_e[ke][xe];for(var Be=16;Be<80;++Be)Oe[Be]=ROTL(Oe[Be-3]^Oe[Be-8]^Oe[Be-14]^Oe[Be-16],1);for(var Fe=he[0],De=he[1],Le=he[2],Ue=he[3],qe=he[4],je=0;je<80;++je){var Je=Math.floor(je/20),et=ROTL(Fe,5)+f$2(Je,De,Le,Ue)+qe+te[Je]+Oe[je]>>>0;qe=Ue,Ue=Le,Le=ROTL(De,30)>>>0,De=Fe,Fe=et}he[0]=he[0]+Fe>>>0,he[1]=he[1]+De>>>0,he[2]=he[2]+Le>>>0,he[3]=he[3]+Ue>>>0,he[4]=he[4]+qe>>>0}return[he[0]>>24&255,he[0]>>16&255,he[0]>>8&255,255&he[0],he[1]>>24&255,he[1]>>16&255,he[1]>>8&255,255&he[1],he[2]>>24&255,he[2]>>16&255,he[2]>>8&255,255&he[2],he[3]>>24&255,he[3]>>16&255,he[3]>>8&255,255&he[3],he[4]>>24&255,he[4]>>16&255,he[4]>>8&255,255&he[4]]}));var gv,vv=Object.freeze({__proto__:null,NIL:"00000000-0000-0000-0000-000000000000",parse:parse,stringify:stringify$1,v1:function v1$1(D,te,he){var ye=te&&he||0,be=te||new Array(16),ve=(D=D||{}).node||uv,we=void 0!==D.clockseq?D.clockseq:fv;if(null==ve||null==we){var _e=D.random||(D.rng||rng)();null==ve&&(ve=uv=[1|_e[0],_e[1],_e[2],_e[3],_e[4],_e[5]]),null==we&&(we=fv=16383&(_e[6]<<8|_e[7]))}var Pe=void 0!==D.msecs?D.msecs:Date.now(),Ie=void 0!==D.nsecs?D.nsecs:yv+1,Re=Pe-hv+(Ie-yv)/1e4;if(Re<0&&void 0===D.clockseq&&(we=we+1&16383),(Re<0||Pe>hv)&&void 0===D.nsecs&&(Ie=0),Ie>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");hv=Pe,yv=Ie,fv=we;var ke=(1e4*(268435455&(Pe+=122192928e5))+Ie)%4294967296;be[ye++]=ke>>>24&255,be[ye++]=ke>>>16&255,be[ye++]=ke>>>8&255,be[ye++]=255&ke;var Oe=Pe/4294967296*1e4&268435455;be[ye++]=Oe>>>8&255,be[ye++]=255&Oe,be[ye++]=Oe>>>24&15|16,be[ye++]=Oe>>>16&255,be[ye++]=we>>>8|128,be[ye++]=255&we;for(var xe=0;xe<6;++xe)be[ye+xe]=ve[xe];return te||stringify$1(be)},v3:mv,v4:v4,v5:bv,validate:validate,version:function version$d(D){if(!validate(D))throw TypeError("Invalid UUID");return parseInt(D.substr(14,1),16)}}),wv=getAugmentedNamespace$1(vv);function requireDist_browser(){return gv||(gv=1,function(D){var te=rn&&rn.__assign||function(){return te=Object.assign||function(D){for(var te,he=1,ye=arguments.length;he<ye;he++)for(var be in te=arguments[he])Object.prototype.hasOwnProperty.call(te,be)&&(D[be]=te[be]);return D},te.apply(this,arguments)},he=rn&&rn.__createBinding||(Object.create?function(D,te,he,ye){void 0===ye&&(ye=he),Object.defineProperty(D,ye,{enumerable:!0,get:function(){return te[he]}})}:function(D,te,he,ye){void 0===ye&&(ye=he),D[ye]=te[he]}),ye=rn&&rn.__setModuleDefault||(Object.create?function(D,te){Object.defineProperty(D,"default",{enumerable:!0,value:te})}:function(D,te){D.default=te}),be=rn&&rn.__importStar||function(D){if(D&&D.__esModule)return D;var te={};if(null!=D)for(var be in D)"default"!==be&&Object.prototype.hasOwnProperty.call(D,be)&&he(te,D,be);return ye(te,D),te},ve=rn&&rn.__awaiter||function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))},we=rn&&rn.__generator||function(D,te){var he,ye,be,ve,we={label:0,sent:function(){if(1&be[0])throw be[1];return be[1]},trys:[],ops:[]};return ve={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(ve[Symbol.iterator]=function(){return this}),ve;function verb(ve){return function(_e){return function step(ve){if(he)throw new TypeError("Generator is already executing.");for(;we;)try{if(he=1,ye&&(be=2&ve[0]?ye.return:ve[0]?ye.throw||((be=ye.return)&&be.call(ye),0):ye.next)&&!(be=be.call(ye,ve[1])).done)return be;switch(ye=0,be&&(ve=[2&ve[0],be.value]),ve[0]){case 0:case 1:be=ve;break;case 4:return we.label++,{value:ve[1],done:!1};case 5:we.label++,ye=ve[1],ve=[0];continue;case 7:ve=we.ops.pop(),we.trys.pop();continue;default:if(!(be=we.trys,(be=be.length>0&&be[be.length-1])||6!==ve[0]&&2!==ve[0])){we=0;continue}if(3===ve[0]&&(!be||ve[1]>be[0]&&ve[1]<be[3])){we.label=ve[1];break}if(6===ve[0]&&we.label<be[1]){we.label=be[1],be=ve;break}if(be&&we.label<be[2]){we.label=be[2],we.ops.push(ve);break}be[2]&&we.ops.pop(),we.trys.pop();continue}ve=te.call(D,we)}catch(D){ve=[6,D],ye=0}finally{he=be=0}if(5&ve[0])throw ve[1];return{value:ve[0]?ve[1]:void 0,done:!0}}([ve,_e])}}},_e=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(D,"__esModule",{value:!0}),D.thirdparty=D.hdkey=void 0;var Pe=be(Af),Ie=Dl,Re=Iu,ke=function requireHdkey(){if(ev)return dg;ev=1;var D=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(dg,"__esModule",{value:!0});var te=D(requireDist_browser()),he=ug,ye=function(){function EthereumHDKey(D){this._hdkey=D}return EthereumHDKey.fromMasterSeed=function(D){return new EthereumHDKey(he.HDKey.fromMasterSeed(D))},EthereumHDKey.fromExtendedKey=function(D){return new EthereumHDKey(he.HDKey.fromExtendedKey(D))},EthereumHDKey.prototype.privateExtendedKey=function(){if(!this._hdkey.privateExtendedKey)throw new Error("This is a public key only wallet");return this._hdkey.privateExtendedKey},EthereumHDKey.prototype.publicExtendedKey=function(){return this._hdkey.publicExtendedKey},EthereumHDKey.prototype.derivePath=function(D){return new EthereumHDKey(this._hdkey.derive(D))},EthereumHDKey.prototype.deriveChild=function(D){return new EthereumHDKey(this._hdkey.deriveChild(D))},EthereumHDKey.prototype.getWallet=function(){return this._hdkey._privateKey?te.default.fromPrivateKey(this._hdkey._privateKey):te.default.fromPublicKey(this._hdkey._publicKey,!0)},EthereumHDKey}();return dg.default=ye,dg}();Object.defineProperty(D,"hdkey",{enumerable:!0,get:function(){return _e(ke).default}});var Oe=requireThirdparty();Object.defineProperty(D,"thirdparty",{enumerable:!0,get:function(){return _e(Oe).default}});var xe=mg,Be=py,Fe=wv.v4;function validateHexString(D,te,he){if(te.toLowerCase().startsWith("0x")&&(te=te.slice(2)),!te&&!he)return te;if(he%2)throw new Error("Invalid length argument, must be an even number");if("number"==typeof he&&te.length!==he)throw new Error("Invalid "+D+", string must be "+he+" hex characters");if(!/^([0-9a-f]{2})+$/i.test(te))throw new Error("Invalid "+D+", string must be "+("number"==typeof he?he:"empty or a non-zero even number of")+" hex characters");return te}function validateBuffer(D,te,he){if(!Buffer.isBuffer(te))throw new Error("Invalid "+D+", must be a string ("+("number"==typeof he?""+2*he:"empty or a non-zero even number of")+" hex characters) or buffer"+("number"==typeof he?" ("+he+" bytes)":""));if("number"==typeof he&&te.length!==he)throw new Error("Invalid "+D+", buffer must be "+he+" bytes");return te}var De=function(){function Wallet(D,te){if(void 0===te&&(te=void 0),this.privateKey=D,this.publicKey=te,D&&te)throw new Error("Cannot supply both a private and a public key to the constructor");if(D&&!(0,Ie.isValidPrivate)(D))throw new Error("Private key does not satisfy the curve requirements (ie. it is invalid)");if(te&&!(0,Ie.isValidPublic)(te))throw new Error("Invalid public key")}return Wallet.generate=function(D){if(void 0===D&&(D=!1),!D)return new Wallet(Be(32));for(var te=new Ie.BN("088f924eeceeda7fe92e1f5b0fffffffffffffff",16);;){var he=Be(32);if(new Ie.BN((0,Ie.privateToAddress)(he)).lte(te))return new Wallet(he)}},Wallet.generateVanityAddress=function(D){for(D instanceof RegExp||(D=new RegExp(D));;){var te=Be(32),he=(0,Ie.privateToAddress)(te);if(D.test(he.toString("hex")))return new Wallet(te)}},Wallet.fromPublicKey=function(D,te){return void 0===te&&(te=!1),te&&(D=(0,Ie.importPublic)(D)),new Wallet(void 0,D)},Wallet.fromExtendedPublicKey=function(D){if("xpub"!==D.slice(0,4))throw new Error("Not an extended public key");var te=xe.decode(D).slice(45);return Wallet.fromPublicKey(te,!0)},Wallet.fromPrivateKey=function(D){return new Wallet(D)},Wallet.fromExtendedPrivateKey=function(D){if("xprv"!==D.slice(0,4))throw new Error("Not an extended private key");var te=xe.decode(D);if(0!==te[45])throw new Error("Invalid extended private key");return Wallet.fromPrivateKey(te.slice(46))},Wallet.fromV1=function(D,te){return ve(this,void 0,void 0,(function(){var he,ye,be,ve,_e;return we(this,(function(we){switch(we.label){case 0:if("1"!==(he="object"==typeof D?D:JSON.parse(D)).Version)throw new Error("Not a V1 Wallet");if("scrypt"!==he.Crypto.KeyHeader.Kdf)throw new Error("Unsupported key derivation scheme");return ye=he.Crypto.KeyHeader.KdfParams,[4,(0,Re.scrypt)(Buffer.from(te),Buffer.from(he.Crypto.Salt,"hex"),ye.N,ye.R,ye.P,ye.DkLen)];case 1:if(be=we.sent(),ve=Buffer.from(he.Crypto.CipherText,"hex"),(0,Ie.keccak256)(Buffer.concat([be.slice(16,32),ve])).toString("hex")!==he.Crypto.MAC)throw new Error("Key derivation failed - possibly wrong passphrase");return _e=Pe.createDecipheriv("aes-128-cbc",(0,Ie.keccak256)(be.slice(0,16)).slice(0,16),Buffer.from(he.Crypto.IV,"hex")),[2,new Wallet(runCipherBuffer(_e,ve))]}}))}))},Wallet.fromV3=function(D,te,he){return void 0===he&&(he=!1),ve(this,void 0,void 0,(function(){var ye,be,ve,_e,ke;return we(this,(function(we){switch(we.label){case 0:if(3!==(ye="object"==typeof D?D:JSON.parse(he?D.toLowerCase():D)).version)throw new Error("Not a V3 wallet");return"scrypt"!==ye.crypto.kdf?[3,2]:(ve=ye.crypto.kdfparams,[4,(0,Re.scrypt)(Buffer.from(te),Buffer.from(ve.salt,"hex"),ve.n,ve.r,ve.p,ve.dklen)]);case 1:return be=we.sent(),[3,3];case 2:if("pbkdf2"!==ye.crypto.kdf)throw new Error("Unsupported key derivation scheme");if("hmac-sha256"!==(ve=ye.crypto.kdfparams).prf)throw new Error("Unsupported parameters to PBKDF2");be=Pe.pbkdf2Sync(Buffer.from(te),Buffer.from(ve.salt,"hex"),ve.c,ve.dklen,"sha256"),we.label=3;case 3:if(_e=Buffer.from(ye.crypto.ciphertext,"hex"),(0,Ie.keccak256)(Buffer.concat([Buffer.from(be.slice(16,32)),_e])).toString("hex")!==ye.crypto.mac)throw new Error("Key derivation failed - possibly wrong passphrase");return ke=Pe.createDecipheriv(ye.crypto.cipher,be.slice(0,16),Buffer.from(ye.crypto.cipherparams.iv,"hex")),[2,new Wallet(runCipherBuffer(ke,_e))]}}))}))},Wallet.fromEthSale=function(D,te){var he="object"==typeof D?D:JSON.parse(D),ye=Buffer.from(he.encseed,"hex"),be=Pe.pbkdf2Sync(te,te,2e3,32,"sha256").slice(0,16),ve=runCipherBuffer(Pe.createDecipheriv("aes-128-cbc",be,ye.slice(0,16)),ye.slice(16)),we=new Wallet((0,Ie.keccak256)(ve));if(we.getAddress().toString("hex")!==he.ethaddr)throw new Error("Decoded key mismatch - possibly wrong passphrase");return we},Object.defineProperty(Wallet.prototype,"pubKey",{get:function(){return keyExists(this.publicKey)||(this.publicKey=(0,Ie.privateToPublic)(this.privateKey)),this.publicKey},enumerable:!1,configurable:!0}),Object.defineProperty(Wallet.prototype,"privKey",{get:function(){if(!keyExists(this.privateKey))throw new Error("This is a public key only wallet");return this.privateKey},enumerable:!1,configurable:!0}),Wallet.prototype.getPrivateKey=function(){return this.privKey},Wallet.prototype.getPrivateKeyString=function(){return(0,Ie.bufferToHex)(this.privKey)},Wallet.prototype.getPublicKey=function(){return this.pubKey},Wallet.prototype.getPublicKeyString=function(){return(0,Ie.bufferToHex)(this.getPublicKey())},Wallet.prototype.getAddress=function(){return(0,Ie.publicToAddress)(this.pubKey)},Wallet.prototype.getAddressString=function(){return(0,Ie.bufferToHex)(this.getAddress())},Wallet.prototype.getChecksumAddressString=function(){return(0,Ie.toChecksumAddress)(this.getAddressString())},Wallet.prototype.toV3=function(D,he){return ve(this,void 0,void 0,(function(){var ye,be,ve,_e,ke,Oe;return we(this,(function(we){switch(we.label){case 0:if(!keyExists(this.privateKey))throw new Error("This is a public key only wallet");switch(ye=function mergeToV3ParamsWithDefaults(D){var he={cipher:"aes-128-ctr",kdf:"scrypt",salt:Be(32),iv:Be(16),uuid:Be(16),dklen:32,c:262144,n:262144,r:8,p:1};return D?("string"==typeof D.salt&&(D.salt=Buffer.from(validateHexString("salt",D.salt),"hex")),"string"==typeof D.iv&&(D.iv=Buffer.from(validateHexString("iv",D.iv,32),"hex")),"string"==typeof D.uuid&&(D.uuid=Buffer.from(validateHexString("uuid",D.uuid,32),"hex")),D.salt&&validateBuffer("salt",D.salt),D.iv&&validateBuffer("iv",D.iv,16),D.uuid&&validateBuffer("uuid",D.uuid,16),te(te({},he),D)):he}(he),ye.kdf){case"pbkdf2":return[3,1];case"scrypt":return[3,2]}return[3,4];case 1:return be=function kdfParamsForPBKDF(D){return{dklen:D.dklen,salt:D.salt,c:D.c,prf:"hmac-sha256"}}(ye),ve=Pe.pbkdf2Sync(Buffer.from(D),be.salt,be.c,be.dklen,"sha256"),[3,5];case 2:return be=function kdfParamsForScrypt(D){return{dklen:D.dklen,salt:D.salt,n:D.n,r:D.r,p:D.p}}(ye),[4,(0,Re.scrypt)(Buffer.from(D),be.salt,be.n,be.r,be.p,be.dklen)];case 3:return ve=we.sent(),[3,5];case 4:throw new Error("Unsupported kdf");case 5:if(!(_e=Pe.createCipheriv(ye.cipher,ve.slice(0,16),ye.iv)))throw new Error("Unsupported cipher");return ke=runCipherBuffer(_e,this.privKey),Oe=(0,Ie.keccak256)(Buffer.concat([Buffer.from(ve.slice(16,32)),Buffer.from(ke)])),[2,{version:3,id:Fe({random:ye.uuid}),address:this.getAddress().toString("hex"),crypto:{ciphertext:ke.toString("hex"),cipherparams:{iv:ye.iv.toString("hex")},cipher:ye.cipher,kdf:ye.kdf,kdfparams:te(te({},be),{salt:be.salt.toString("hex")}),mac:Oe.toString("hex")}}]}}))}))},Wallet.prototype.getV3Filename=function(D){return["UTC--",(D?new Date(D):new Date).toJSON().replace(/:/g,"-"),"--",this.getAddress().toString("hex")].join("")},Wallet.prototype.toV3String=function(D,te){return ve(this,void 0,void 0,(function(){var he,ye;return we(this,(function(be){switch(be.label){case 0:return ye=(he=JSON).stringify,[4,this.toV3(D,te)];case 1:return[2,ye.apply(he,[be.sent()])]}}))}))},Wallet}();function runCipherBuffer(D,te){return Buffer.concat([D.update(te),D.final()])}function keyExists(D){return null!=D}D.default=De}(Fl)),Fl}var _v=requireDist_browser();class ApiConfiguration extends Ca.Configuration{}const Tv={"x-sdk-version":"ts-immutable-sdk-1.77.7"},createConfig=({coreContractAddress:D,registrationContractAddress:te,registrationV4ContractAddress:he,chainID:ye,basePath:be,headers:ve,sdkVersion:we,baseConfig:_e})=>{if(!be.trim())throw Error("basePath can not be empty");we&&(Tv["x-sdk-version"]=we),ve={...ve||{},...addKeysToHeadersOverride(_e,{headers:ve})?.headers||{},...Tv};return{apiConfiguration:new ApiConfiguration({basePath:be,baseOptions:{headers:ve}}),ethConfiguration:{coreContractAddress:D,registrationContractAddress:te,registrationV4ContractAddress:he,chainID:ye}}},createImmutableXConfiguration=({basePath:D,chainID:te,coreContractAddress:he,registrationContractAddress:ye,registrationV4ContractAddress:be,baseConfig:ve})=>createConfig({basePath:D,chainID:te,coreContractAddress:he,registrationContractAddress:ye,registrationV4ContractAddress:be,sdkVersion:"ts-immutable-sdk-1.77.7",baseConfig:ve}),production=({baseConfig:D})=>createImmutableXConfiguration({basePath:"https://api.x.immutable.com",chainID:1,coreContractAddress:"0x5FDCCA53617f4d2b9134B29090C87D01058e27e9",registrationContractAddress:"0x72a06bf2a1CE5e39cBA06c0CAb824960B587d64c",registrationV4ContractAddress:"0xac88a57943b5BBa1ecd931F8494cAd0B7F717590",baseConfig:D}),sandbox=({baseConfig:D})=>createImmutableXConfiguration({basePath:"https://api.sandbox.x.immutable.com",chainID:11155111,coreContractAddress:"0x2d5C349fD8464DA06a3f90b4B0E9195F3d1b7F98",registrationContractAddress:"0xDbA6129C02E69405622fAdc3d5A7f8d23eac3b97",registrationV4ContractAddress:"0xd1527c65c6287ec5ab816d328eb83bb4cb690e92",baseConfig:D});class ImxConfiguration{immutableXConfig;baseConfig;constructor({baseConfig:D,overrides:te}){if(this.baseConfig=D,te)this.immutableXConfig=te.immutableXConfig;else switch(D.environment){case ra.SANDBOX:this.immutableXConfig=sandbox({baseConfig:D});break;case ra.PRODUCTION:this.immutableXConfig=production({baseConfig:D});break;default:this.immutableXConfig=sandbox({baseConfig:D})}}}class IMXError extends Error{code;details;constructor({code:D,details:te,message:he}){super(he),this.code=D,this.details=te}}function formatError(D){if(Kt.isAxiosError(D)&&D.response){const te=D.response.data;return te.code&&te.message?new IMXError({code:te.code,details:te.details,message:te.message}):new IMXError({code:D.code??D.response?.status.toString()??"unknown_error_code",message:String(D)})}return new IMXError({code:"unknown_error_code",message:String(D)})}function convertToSignableToken$1(D){switch(D.type){case"ERC721":return{type:"ERC721",data:{token_id:D.tokenId,token_address:D.tokenAddress}};case"ERC20":return{type:"ERC20",data:{token_address:D.tokenAddress}};default:return{type:"ETH",data:{decimals:18}}}}const Av=[["49ee3eba8c1600700ee1b87eb599f16716b0b1022947733551fde4050ca6804","3ca0cfe4b3bc6ddf346d49d06ea0ed34e621062c0e056c1d0405d266e10268a"],["1ef15c18599971b7beced415a40f0c7deacfd9b0d1819e03d723d8bc943cfca","5668060aa49730b7be4801df46ec62de53ecd11abe43a32873000c36e8dc1f"],["234287dcbaffe7f969c748655fca9e58fa8120b6d56eb0c1080d17957ebe47b","3b056f100f96fb21e889527d41f4e39940135dd7a6c94cc6ed0268ee89e5615"],["3909690e1123c80678a7ba0fde0e8447f6f02b3f6b960034d1e93524f8b476","7122e9063d239d89d4e336753845b76f2b33ca0d7f0c1acd4b9fe974994cc19"],["40fd002e38ea01a01b2702eb7c643e9decc2894cbf31765922e281939ab542c","109f720a79e2a41471f054ca885efd90c8cfbbec37991d1b6343991e0a3e740"],["2f52066635c139fc2f64eb0bd5e3fd7a705f576854ec4f00aa60361fddb981b","6d78a24d8a5f97fc600318ce16b3c840315979c3273078ec1a285f217ee6a26"],["6a0767a1fd60d5b9027a35af1b68e57a1c366ebcde2006cdd07af27043ef674","606b72c0ca0498b8c1817ed7922d550894c324f5efdfc85a19a1ae382411ca2"],["7fa463ee2a2d6a585d5c3358918270f6c28c66df1f86803374d1edf3819cc62","a996edf01598832e644e1cae9a37288865ad80e2787f9bf958aceccc99afae"],["3d4da70d1540da597dbae1651d28487604a4e66a4a1823b97e8e9639393dbec","45cdef70c35d3b6f0a2273a9886ccb6306d813e8204bdfd30b4efee63c8a3f9"],["1e448fdbcd9896c6fbf5f36cb7e7fcb77a751ff2d942593cae023363cc7750e","30c81da0f3a8cb64468eaa491c7ae7b4842b62cb4148820da211afc4caffb3a"],["6531acf1a7cb90a4eb27de0b7f915e387a3b0fd063ba6e1289b91f48411be26","31330f5daa091889981a3ea782ae997f5f171336ed0487a03f051551a2cafa2"],["54be016394d5662d67d7e82f5e889ed2f97ccf95d911f57dd2362c4040ed4f4","c6cb184053f054d6a59c1bf0986d17090d25089b3fdcdaf185edc87ef113e5"],["35b9ecd0499ca1d5d42dcbb0c6b4042b3733c64b607ca711e706e786ef2afc6","5624b476a5b21c3a544f0712d4817b06ad380a5a6529d323bf64da8ef862d8d"],["4ce0378e3ee8f77ed58f2ddbd8bb7676c8a38bfb1d3694c275254bd8ca38e23","5a16fcbff0769c9cf2b02c31621878ec819fff4b8231bff82c6183db2746820"],["648d5c6f98680a1b926bfeb01c00224c56fdcf751b251c4449c8a94f425cfcf","72c05ac793cd1620a833fbe2214d36900ebe446e095c62fcb740937f98cca8c"],["bd09be3e4e1af8a14189977e334f097c18e4a8bf42577ef5aafa0f807bd89b","6e0e72ed7eb65c86cee29c411fb4761122558ee81013344ba8509c49de9f9b6"],["35ea4e339b44ae7724419bdfbe07022253137a4afb7cbaffad341ea61249357","3665d676a026a174f367bb4417780e53a7803cb02d0db32eb4545c267c42f14"],["36457bc744f42e697b825c2d1afd8f4029d696a4514710f81da52d88e178643","7c93715896735492a68c7969a024b3a8fd538bffc1521538107de1a5f13ce9c"],["5b3a08ebcf9c109cc9082f70d9df2b9c11b5428ee23917b4e790c4c10f6e661","9d7b42ab0c20f5510df7ea5e196eec99342739077e9a168198c89da859753"],["21883ef8580fc06e59481955d52ece3aca6e82c8c9fc58e216dcf46f96990c6","51a6423543e6e8a43e71da34cd90f5b520b8d33b67c4bf857573ab9e301aa4c"],["19e86b77f9b581e81092b305c852faf53940a8f15f0a6990c414f04c0fa7ef9","515630e35d4398c9c79fc4ee08e1023fa47d8e03c6e7819c6d2ccef45398fa"],["888ab8eb4c31bb2ac5b54aa320dbe1a69c96b864e8a5f54d89c1d1a6b86c24","730e148467f6a55ce22c5296f5380df88f38de76ef0b2de844cd3094aaaf3ea"],["75e79ff13a894e7120dac17b7429c0c32ce7828f726c9973728c0977a5f5977","4960526e59c1c736561a201bc56f7d762641b39f609d273cc996f5d9197cfb8"],["640fe009249115d7254f72ecafb3006139e4bed7e9041af51458c737282d1d5","3cc6c978a575246e2ce4f7ef1fcc7f63085db9ff98a1b1f3fe374087c0332c"],["6d6fd09ccab7c26de9b3906191235deb5c34685580c488275356a05e209ca96","7157f81a34213dd8f91dea4f6df1bcfabc4ee091a3049eeeb3b7923d39b8645"],["5531ca1d00f151d71da820918f74caf2985b24dca20e124721fff507b5a5876","518529643d3f25e47f72c322223ba60a63d6bfe78cf3f612215d9c19bf29200"],["6192d454e4f8fe212bdfccd5b15dd5056d7622ffe456c6c67e5a7265aea49c4","2377a45dc630017ae863cb968ddb38333a70c7946d8684e6d7a6213f634b7bc"],["542fb44b4ef3640a64fdb22a2560fb26668065c069cf31d1df424819a39ff18","5dbae9b0948e0361aea443503840341c322aa1a1366ce5390e71bf161f78f8c"],["299ff3e3412a7eb4cb4a3051b07b1be2e7b1c4b789f39ffb52cba3d048b71de","1951d3175c02761b291d86b6c0a08387ad5e2a2130ccc33c852530572cb3958"],["628ce3f5367dadc1411133e55eb25e2e3c2880d6e28754a5cb1c5d109627e73","ae3e9b7d50964e28bd15380400b7659b87affdef5d2586cbefcd9be7d67c0d"],["6ea54aff064895eccf9db2283225d62044ae67621192b3346338948382f5933","6431507e51aadacfaf39f102a8ff387756e9b5e1bc8323d44acae55130d93db"],["28097d50d175a6235320fe8cfe138dd9e46895d189582e472c38ad7a67d923a","7f9eab4133d7d09a7ff63368d6135c26262b62336eca1b5ca33f2096ce388ba"],["619fd09cdd6ff4323973f256c2cbdcb224f7f25b8aef623af2d4a0105e62e02","2c95f0ae11d47eeae1bc7f1350f75f9185c5bc840382ceb38a797cae9c40308"],["641c18982ced304512a3f2395942a38add0d6a7156229c2a7c8b8dfbe9beb96","6f6288c9c659b6af5ac975f4180deffe53d516399b2cc62f31732e9d4ba9837"],["58ab546e51fe49fc5a382e4064a2bd6cfc268904412f86c26de14f28a71d0f2","124b7217943e7e328408e8afdfa7da00dcbc94a2bb85fd8e01fb162d2c2c0a9"],["a82c2fdedbb26c3c762a12f7e86b0e01e65320e0a25a8399d665f6e266bf74","1a1de28e253f3e10f44d0111e8074f882d7f42e5900780ccbdc31da372d3fd8"],["744c725a7455a992e3cf5bd007bc234dd4668dba285f553f38350ad94c1615b","7f721a87f48798bdc4a9c0eb88559e2ad7a74112fd901e70ea159e67a9c33f"],["434df142ddaa60f7881b6348d91687de40457de7ccfb07f0304b9e820705d0c","7fae425e3b53f97dd1f5b20e49ed9fe24ff1efc341ba5e017ac89cf8df0cc39"],["7a1e2b809dff46277021cbc376f79c37e1b683bbd6bca5317014f0dc0e1ae73","56790278a231912c334eff05281e08af1558e85516b4411ef64647c13bea431"],["4931b7990348d41cf8907be79f45bb7991fd18f8a57868351c92fa7a34cbcd7","ca35091815cdf0837d396e25aad6052ad32d497a33b123256cffdc008bc50e"],["250b815d352fd89f8210b624b147ea7d0a4f47bcac49f3ac9b777840da93ebe","1173f10e9691948b7da7632f328520455aadcba46e017f891e0a1d7da2bef04"],["2223b85032fa67292f6e1f822628e6756e5c3cc08fc252ab88d63d624e4dfb2","55619ba96a7dcec77832fcb22cd5c21c7dcebc0280d730cba0002b67e0a8c63"],["249b131e04de73af9820d3e22492d9ec51bdc0c4c4f34d95352fa44dd61f245","7576d3b5d136368ff01170a77d8286d0d1c7c40688862fb40813b4af3c6065e"],["6777915d9b4769027eb7e04733f8a2d669c84fe06080f55e8a55674dfbf9efb","640d0ff384c9635e1af364760f104e058e3c86209fa9d2320aeac887b2e02d8"],["2abe3f237681052f002414399111cf07f8421535af41251edc427a36b5b19c9","636ce4deaf468a503ab20ccb2f7e5bdc98551656ebf53e9c7786b11dd9090be"],["4d5cc5414758ea1be55be779bd7da296c7e11f1564d9e8797ceea347c16f8ea","1a680c4c410cf5ddc74e95ff2897c193edaaecce5b2cde4e96bbae5c0054eff"],["46c375c684b30adf4d51de81e92afee52b1a3847e177403372c82109373edca","1eaadc5783c90a0261306423d52009e991126b3f620e9cb6cffca41ca096f4f"],["2ddfb71f51205888118cbabba8fd07d460a810289bfdeeb7118707e310cb152","1fd905d07b3933be886f2518246bdafa6f33259a174668808223cd7c28183c7"],["386f3879960713d41fdb3b1e41bbebf26b1c0e27a9a75bb1adcc1a0d3e8547b","2b21498c0f34ec6f17c720334dc0f36021c2f87afbbbc8847d0bd536eb265e5"],["407eae62c6c4de3b942195afec3f45efec71ddb5e6edee3d427631bcdbf9b90","436e7f2d78268ef62c4172d2ff1469028bad1f1d0f97ab007064418e61caa8f"],["1b881175e21201d17e095e9b3966b354f47de8c1acee5177f5909e0fd72328f","69954b1a9b8bfccf8ec384d32924518a935758f3d3662ef754bcc88f1f6f3ec"],["7d545a82bff003b8115be32a0c437f7c0a98f776bcf7fddb0392822844f3c5e","34b6e53a9565a7daa010711f5bf72254a4e61da3e6a562210a9abc9e8b66d69"],["299b9fcd4fadfc4b6141457a3036aaa68501c23df579de26df69d4def89b913","b95bf2c2bb303c38bb396382edc798ca6a4847e573ce19b7b08533d1912675"],["551f5a4dae4a341a3e20336a7d2f365ddd45849351ec6dd4fcbedfe4806d5d5","5865c977a0ecf13ce85ae14c5c316872080bd36f0f614f56b6dfc7ece83792e"],["7a1d69c08e68c80ad8b310736e6247a53bcba0183b9b8798833bc696a0fb6e2","3ce803a20ebb3b120d5eaf0ad64bed0522fad1a0f2ce39a5c5cbae98c4438f6"],["28acacc0bc41d84e83663f02b36981a2c8272ecd72d3901164be2affb09c504","7a5aee0b160eaff5b5968ab1a0304ce58c3d5ae0148d9191c39e87668229e5b"],["1f78cfdbcc767b68e69a224a077468cdfcb0afd6952b85bccbdb96d1fb8500b","4772ba173c6b583284eb001cfc2a124104833f464ff9df096443e10ef3e9dd4"],["2774108962ca9897e7f22c064d2ccedac4fef5fc9569331c27cdc336c95774b","9e13d79b68e8dc8091c019618f5b07283a710ddf1733dc674a99fc32c12911"],["770d116415cd2c4ace0d8b721dd77e4a2ef766591f9ec9fa0b61304548994ed","42165d93c82f687635aa2b68492b3adffd516beb4baa94520efa11467a209fd"],["5e6e4ece6621e2275415e1fda1e7c4f496de498b77c0b913073c6a6099394b9","3d92ce044fc77fa227adc31f6fc17ef8b4ec1c5aafc44630c0d9195075bf56d"],["6e69c717b5d98807ff1e404a5187a9ceaf0110b83aa15a84f930928b1171825","1ee7cfc3a9744d7fa380ba28604af9df33ac077724374c04588bd71fa16b177"],["404318f2d2ceb44f549c80f9d7de9879d8f7da4b81e7350c00e974ebf2daef1","3934831b5af70d17a3f1da9d2931bd757e6acf2893236264fc7e0d92ff1a1cb"],["20dcb6f394fea6d549b2e75748f61b7ec03b6e52319cb14163373a9c22bb9dc","106a8c96cfb95a331618b7416d1498554730499e194a58fbf63019890480fc7"],["119000f277ccee013e6bb121194ec1ab5460fb6a96eb702a14079865f4170aa","1737a32f5415e8720a5606ec1dd4756f02e7c6817e3723b453d091f2d192773"],["45d0fb5cd95db76d05dec3faa12e467a308eabaad363a062353db3cd2d9b749","ae08691b5b0cdd19ec499132421638f470f493320e4003d123ab1da761b965"],["1257b3e65cdfb6367c6d0942327e799bc66eb221e70c6573a9862889eb51c38","593309fd45755dd2cc4afd2b9316bc4638b0c5ddb3009694fcb7b250d0c8a2f"],["186dcf9950f72e868014a8accf14aa36e82a7a2a29f86ba37f6632da4189db3","55684c9f7a043fc523ed78f756f834b4db823d5e4161bd79602c17d55a5cd8c"],["58791d5569f282f5c3b01ecdc9388df7ba3ca223a2dc1eed5edaf2a1d302fb9","6298d7dd51561a045bb4089deda9f40b2865589ed433e56d54554f8b45e79f0"],["13fd87144aa5aa4b24d5a7bf907d8280d15937fed262d41084898cb688fc28b","3fa54367770cc4479a857411ddcabe86627b405ce1cd14ad3b2863bde13abe4"],["48118139445415f0c1879224e2dee744ed35280ff00537260402a1741ec3676","4dfa39dadaabecfc54ecb7a25319444f8e952782d863790e42a9887064fc0c1"],["4ad031bb9eda84f2fe5d354c7948d41558ca657a04508654721810ee72ef158","620ebd5d0086b92c6009a42777b946a351c2c7ba852b57d3c9905fc337459ef"],["4a34abb016ad8cb4575ea5bd28385d2348e5bcc0cbba90059f90f9c71f86e8b","4f781829ad83f9ed1e1b6de0e5f4ac60dfdfe7f23cb4411e815817e705e52c8"],["7fc632d7512aab5356b7915dca854c8b12b369ab54f524fbce352f00eb9b9f9","2ce80b944fc9158005f630b34385d50c3ad84450a9e1e529925b3211dd2a1de"],["65ed10347503cbc0216ca03f7536cca16b6abd18d332a9258685907f2e5c23f","3be1a18c6bfa6f2f4898ebefad5a8e844c74626d5baa04a820d407fe28bbca6"],["1a8abba1be2e276cdd1f28c912280833a5ede1ec121738fcca47dc070dcc71d","21b724378bc029a5199799df005922590d4e59cae52976f8e437bf6693eec4a"],["3a99c22dafcfe9004ebb674805736a26aeed7ed5d465ae37226dcbe270a972b","5bf67552af08e1e6e2a24bf562c23225e89869cab9bef8becb3669175a3c94f"],["4a6a5e4b3501f2b7bbdd8da73ea81ffca347170bdfb6776a037cdd74c560fb4","5af167ebb259c2da88740ec559ee04052bb66480b836cadd0e2590c32d7111b"],["6890d95308525f0bac9dc25cc1189eb92d29d4b3fe61bc8aee1c716ac17b1e8","e6f23f78e882026b53ea4fac6950e56e3da461e52339eb43d2fdb2dade7ca9"],["748f4cf4f027efdeaed7c7f91ef3730ff2f2bb0bfc2db8f27aadde947f7d4d5","3a1cbc550699411052c76293b8c41a3a8a1ecf12cbbc029a1b2b6ea986fca93"],["7321f3f581690922cd0dec40c9c352aae412ec2ccdf718f137f7786ab452cd3","5be5130c9277cdb76d7409452438ec15d246b211dd1e276ee58e82a81c98fd4"],["6c4d6cb7e7ae70955224b8a912ff57ca218635a2436b36cee25dce8a5cdf51f","32f8c03c6db3246946e432e4148e69f5628b200c6d7d72449df6eeac0998039"],["1dad5f2e795ea6fa5177f110989516eacf8fb37bd6a091c7c93f1d73a2fe309","56b2298c538180e99dea3e171dbb5c6fba0bd0a9ed40537277c0c2373a8e2c4"],["1610605baacc9bc62c4cc923dc943347cfece7ae241e746fbe6c2c878221dbd","431a82d657e0d109d00dea88cf3fa9b999845221b7b5590a20c40fc71368c1c"],["6a4f5c787fb09a5be2b04d2eafa1e6f3d3c863ee22960eb0b64f6eaf6659162","14dbc3eaea6146ee7eaace5a91ed9430dad3a47e9ca2f68b455171f8fe6a7b3"],["738415b73e55412b0e582e45ff0d7bf4b1bf2922db581783fdcc75559f40e","33825aeb3fd8459999eb418d15102ba5864b069c6ea517f0c6e9eab8d9aca47"],["2603e72ce53985c70782774057a17944f7b4ce224a809be4e2b5af3606aa1d8","92822921809c42318f42dac4d773325f41c43069e990adac7818a45e2554dc"],["181cd967ab4615357cc96c82eae9152ce7598c1a1dfdd91a458bddb016ae9fe","5d562fdaeb0e12647e230e50eaf216bed52fa73c6b7378821a3bfc4cd66d4ff"],["1121726069b9ef5954ba6490100b226e0be53fef3e071b7c58a1286174b789a","4b25594cf4e9eb2d14b3f52f2661a9992234fc222c0a0d44517cb77deb9c16f"],["e543663969b915337f105f80995a77b356f1a51d8b4a4fb12d44364130e873","34b2e3c009fdab4cb7349a580df2e64c0098a123280078e5da6623a9ec6b44f"],["4e2f8909bb62de5ef65600e61bbf969293815296b6e23702875e049b3ce5c45","3cb81f2c21f22a7add26fa38a9ce5d9cce1bb251bd2698f90c34ff0a84f7af"],["37b546e403a1ba970c17b67c2f1361ab9c803f8d2b5cd93803014faa08861ed","37079184ea46272f5809b523d060686633f7995167897a153be1772fd6566f6"],["27bddca77f7bd7f66b3693567a4238f2e6751d95b0bcb409f6b24d08f84798c","6417a85cbfd6fc02df560d3963a241a986baacdfa423f65d7227ce49a96c57d"],["2de71a39aa043057d1bc66e45f804542acddf18f7a6d88c0d7fb0ca240debdf","306c1ce39ab46300f7cca0f3a2fbfa77296a27e24bc66b0b8044968ec0ee413"],["307c877154364c0c03534e7327d5a88e1380ceef6481567ade37a14ee7c1a72","3404bc7dbfb33b95d922d0693aaf9358f77888d7d95e773c38d83dbe2e5f995"],["79f09ff7c60850e5f5ea020722659a1ed27db4c95dca131f99552f785c8afbc","40429528c099349b426ddbf129497176951a64a53db5f9d8bd2be0252cb22b2"],["4027dc6b56d446e5972f35464eeac85c5254ef377c902d9fe37aea841bb5292","7c3ea37689ef679fa2f5c7e031a78e23d484a8317990fd34d44d95cc1db3717"],["645dbf78a3c228c4b7151450b5e65edb58e71f37e1e4bc5f471e0f1abd6d9c2","15cfe7850f327b256e23b00627451560c5c6ab60db78d45b7ab286afb6f13ab"],["1503ca373757677ad1d911a2b599d01c46eb879d1ce21ae171c7e439846a85f","583eb269b7030da6a0c324026919de3f9489d2ff6ae0e6320c36f05469ad66c"],["66e1819ba3ec4ad4ae9f7d7588d23baa004e29d3aad2393d52af204a81626ca","505249980cbe6273b82ad5038fe04a981896f4117345ac1abcc67e2525c0ee4"],["5ec20dbb290254545f9292c0a8e4fbbfb80ad9aab0a0e0e9e9923f784d70ed1","bdb1ca3a859227cf5d00eaae1f22584e826ed83b7ccdb65483ed5213dc4323"],["a5c1a5011f4b81c5c01ef0b07c0fbf0a166de77280f0ae241f2db6cba15194","4444521fb9b33d7dfeb1247d0ee1a2b854ad166cb663d9dd2e686909362a689"],["1f35335de40e00c62642dac2fda8b30f071986ce4f11db849df11bc45ad4e0c","7801a2c761b90fd4477ba0be9a775003d5dfcd959b1ed198b4681f15e7acbf"],["48db4798cf6821c1ffb8178b1d3bb6020e04186c96aaf4670972d367f4ed5f","781019494df95b888f1578f1b4a3f8e125ea60eca47ef9207a10630671217a3"],["17f653d904210148a8e74d8e719a3061683c164aa6d79c902a19f185ab437bd","6780e97985932c3860d810af1e065d454b1cb4be0e7ffe2d8cea7d52526e223"],["5c4d0c7432f9b0070436240f9855adae1467cdc9826952ae01b68cd52a3ad89","1c5747f968ed91261b7ae9bf1023c999da9816e37de602d6a1a50d397752bff"],["6fedd7639fdaa2f7bad4ca0b391710f6f8a7e890250ae8ae4252bb8b39a1e58","436a215f655a3fd3778b2335ffdc9aca6b98474e43d764c1f8362830b084f0e"],["7fbd45a889c5e9d127bb4f8474d6be7cb9796bbfff923b75e42a1ad4cae37d6","484bd12622a6ba81cd53049c550d9ed682a8e765b656b1cbff9bbea637bd1f4"],["17d984d47937263f7966a3e7b1eea04071e678494bd749c9e02b48b3234f06d","7b341ff08722c4e161005d0037204a7a2001fdda7af2cc1a0b04a027f115a0f"],["7f1822045db45ea07e1519c3ee1f7705915f35fe4dd8db1e8921b5d1c740edf","33d41e06b93320ad1b3d9580380ec797a05dac3f1cc8008899110ebefde2f78"],["7b19453ecb74b7d0e2a66b9890ff73bfbbcd61a266abd6d82dbe665bf32f34d","6dba2355420dac582b1f349609ea1c89b89bba2d1a68a0642f1dd12d86e73cb"],["273e82a15f395ddf2489a95685bec8bac62c4b459d1b28987d3cb27e4bc9128","653375b48a4cf5d5b101c9ef533039bedce5dbeef3f59e8f168bdc99b06ca5f"],["3006c9e7fc6a553d8eb4e8a47ce9f10d1a39576ac255ae9e0a4ce3869e76212","65fe9e2ef2aae608be309332d464f57e28f1df5de1a6a519751b056971f932e"],["5e8f384c8a4607fbe9789fcc52d54249d304d698562597d114c1d81452d3dee","3c8bc78066b5d947dc1e405e326ee55ea606c7988f666748d259850fa259a22"],["7841b2102e9aa103fb53a642b3e167b21113ea44751ab38e0b5ef8312654db9","71bf5c8308fcf9c4a7847494cd9bdd946fddf7d3a37e8bb0b201ff2343deb8e"],["40f68027420c11e3ade9aae041978dc18081c4f94943463aac92d887f922a62","499c6062594a6c7e21a3cb91ea451813393bff365a27a08f1a515439b83cf42"],["6ce77a50d038b222634e87948df0590b79d66087b01e42b9b6d8fa30ebb1465","35f5c46bb1be8555a93f155a174d54ec048c2ac8676e7c743054ddc52709d37"],["604f8b9f2dacb13d569262864063c2d4bb2b2cd716db6eeb2b1eeabc57746f6","68c6799e24f3b44eec3049973445174727a66970f1614a782efa2b91ab1e457"],["73d620f3bfe77f672943d448d7dc05327adf64b8e7af50039c469d7f7c994c4","4859deb36eaf0c802f0d1514602368143a33ec6ce8fd55248b59025debc6afb"],["3fd2bcd1c89d706a3647fbd354097f09c76636e93ae504973f944d8fc3bcc1","677ef842cf5eb2444941f527abec567725e469469192354ad509a26ebb3d0e0"],["39222ea924ac17b533c72ffb2c47ffdc11d6a7f7c70fbde3a10fb0b8f35eb2f","20dc4bd1089019bc1d7379b4feb3eae6eb5af59e9f253845da9fd633057e952"],["326f58994e1347f62e4102183215b5db956378d2f61f14aba4dec94577f53c","7a03284c296003bbe05178a1d82efdb7b8125511d63e20e50aed789c2e52e1"],["53aa8939c74d4ee58f03bc88bace5a45c7bfcf27466201da05dc6723a5f5632","2e32535ca7732904a048183247b04b426ecf9b39fc393a9cebe92fb1dc7a7f1"],["6cee1a03145e93b3e826e6067005f09c06099c98198c91c222407ba5c8c132e","beaecad1274e7c6e5476a100c271aa1a6f86ee5a9fa5c2f26124d5886fa63"],["3ec659b8175e1be1bd5a252108714776b813e330393f587814f5f1f32a73332","529a5cf9f8c237ae69a94217d173c8d19c156952041f5c980da557990863fa7"],["3d66ec5963d0c534d4139c8cef2e1ac48b3e7965fafabf58be26f903318af4e","3d3f2de7a95f59b683725ee6283cbaf31f97c4b600df9a4621413223a468740"],["7fb38ace8e0932fac2ea0d3eb676db8d684db1817e2e4d59da7996ce398b4a","68f92bd5768cdd4710249f9d49ef1d5654e497b9a4ba10bd2971366d83fb400"],["1c4a49314d6b4969cdd142c76ceb7682bfb868ace7f7568b0fc8635bda5a9fb","5fc0519f1f4cc10b5771312458748c036313b87707ed0540026ac64a5955aa9"],["3073c95d08d3b97caea5f0be16b2789bee766f76b7e5499f8ce8f96abb0f344","52a8974b4eb9a1f6a0ae2c83cb4715bf18d73f057255fcb3f63b74f7e78f590"],["44485b16d597a5de3604df6f7ed7e00b8aeef9e7e8dea8688255153b8bb16aa","6cccb0ba170123266f24b5d93a744397dc2c44820edc4f8f5b9a0f5c9b3b940"],["7618f77b7b32d512688dd62e0b48231d9574c6361e8be353a7dc04f7c3a115e","78ffcd16d80636381ca231aae70d99c9e20298b4f5388fd823ea9fa2b8ddfd9"],["7dc82fee1ef95cf5b3720fcc07f63246654bfe39762627839da40e51c75654d","4c0ccdd70955da74558de20c88352df8a02aa97e4d5971c500e884740a8cb62"],["7fa5d460dc10cbb418b444d9bde97e92c70a99a222b99f244dccee7e62cc04c","636163901baa5b7576c38c43407af578b8c4607e01e86011ae2dde587a89f84"],["758930d46006623a756c89bd0cc378f6a3c1f43c9a0edbb42274c35e75c16d2","1d74dd9f81c2fec811b8cbd6168a745b0a111932b2a345265ef2853b50b6245"],["7332ee0626b044d664ef228f8cb84df7c643e52f6a2591ae1c9007ad61ec16e","229bd8e630572cbdee54283234cf3e9f060e6382f99943bf234119d47b54470"],["78a16ef803aa20a075bb2f66c61bb2dae5698bebb94a0995fa74c3d53de1614","246d588b68edb6fed96c128349908c42dcd64c46341b205e79f4aed9b5d3675"],["6e1933939bd03b67bba753cc0cbe7d2f25bad68c993887ef8c9e2fcd59b0647","599413f7c204a11a5ce315eab11299ab7326603412bb00bc1c59ff75a37d6b4"],["4a79957a5a1888ad063b51c69565a2b48e8eb917183e220a1c8d3374526d30e","1f092de0e069bba7fc5386e2e9a114c1618f88c4b95e220cd35ffe96f99fcad"],["3148aa3df9ece39aca84f59489f2710522216f14be6055ee0027529d1d55e2d","617e9a52a92975db0ba1977f71116f7058a0d31b869ac7f3ee2fd80b0c5100c"],["5c1188e72384160ae39d07328346cda4f6c12d227448e6236f04dc971625287","1643006eb3a3bc6aafd5f685cf054f2a572e6ca58c0118bcec0b833741f116d"],["3f72efc93c9b71adc4c51d8fc69d3940b20d08733af2b7d05140fdb1d1c1004","7399259987c8f4ebfab46e522380707e58427d3962ee0c2a91760813f76d232"],["3129b34c03c51aa8f611e91d5cfcc9bd3ef108ee66e6d3ee35a0e0e50055bb","563b18b5650085efb4cf179a029e6afff27b1d3091cd28eaa68d24fa1f801c6"],["16eac0f9fb4c67cf89a7fa4ee615bbe731d8edcb709a1b9b50c7d873a530f52","7ff8288b6e199ca8f316192881424a37fb080c29daa76b1f0edaccaf580a80e"],["75f6b6028c43ce832f65d7e8e620d43b16cba215b4b94df5b60fc24e9655ee4","35e9ccfaed2293a8b94b28de03bcb13eb64a26c831e26cc61a39b97969a2ff0"],["3c6152fe093bd6316897917ec56a218640ec1b2148f21db9b14fc7a5ff362e8","6eef2df27ae7d63a28856b07b73e7aad7ca94f317201a1e675ffc6f9a1710dd"],["54e01b5fe4fd96052aad55b3f26b1d254dfc7e2525fffb9ae0a77eb8cc5579","7c3d39232ab333675b219abc766ed9b4782c840e6b046614dedb8a619696eb0"],["d1e63f8ea8a76429cf254a6d3b668761f0dc572d4bfac4fd56d9eaf58fb6c0","2bd0a84d3908a63085824c9329a0983913006ba155b56a58eb3f9becab29c45"],["2d6122f2a702edd4da7385b1580796a71d13bd72be94cfb3fec01149c006c2d","70eb282fae992efa6f5915e578b640653549f23385ef3a29ab29b1b9b8ad63b"],["752fec14beaadb5ddbba6b3a17fcb86579fa588ef407fad0ea07dbb22a640d3","3feb6728eca21a1e84e8f9f23010387a53a96a1cb62d86fb37996150a1299ef"],["63f94a92f27acde8f5ed949b459506f51d70c85bcc61a34d647264ecc53c65e","37e5dce0646ee66f4fdb93b82d54d83a054948fa7d7fa74ab6b36246fc7383e"],["d6aa909287a2f05b9528690c741702c4c5f4d486c19a46c38215f52ef79c7b","5ebe1128dd81093df4aca0df365d58adab848d1be1a94b95eeb649afd66a018"],["12866812b3053e2f7a9572bdaf5ef2b48c6fb62a0eed9ff0356df50e7d05557","6785f7eb2cd1c120e4c7167b46861d10117040a2e9f2ca86a71e9d67df90613"],["46a730d05330b1b13673cb8a1b8f45460035e4a9f1a1751cfba099c4355c1c","76fb0ec6cd16a8141cdcd875c8b2de9fce42d296072643d148ac7e7fa7472df"],["4bd4380a22900bd34835e0a908eacf4b6edb61eda0cf483f9212453b37e7516","5e9551cd20d8d7ddbf4366880b7d5267385afa1966ff30da4baaf273b009d29"],["71f1994ad40baa2922424ae222663a64f93d8b67929e9a10f9e4c1ab19f3833","85320fe68ec0d37cc19fdfd03589d66906ffa4046c80e1b094a85f27676346"],["5a63b1bf5232f28f808765c6be7ce1f81c52145b39f01c879fae0f4303bee61","3bc5d6df68bb6d0577bf9ae2ae59ec0e9b2dc7dd56ea179fb38a41e853db950"],["161ded55ff1087032381e6c1449704f63ad2d88df82dfc44a71890fa09b3941","78a52e0013842037274ea75daaf8eb4afc04ccc4b07bfaf3f5ee47d165e01b"],["1bfce5229c5fbff5c0f452a22317fcfcd9262f23df41840f84fe7d44cfba1a1","66b387872c00e63c73006a955d42cf49c46c5708fc9d1579b9ae38341b24a3d"],["56d47dadc9cbd1dcb2ee3efcd5d4af5e6aea71df10815c68b54a14e81d11b44","47e966ba54df48e9b612a903685e0060a67e4725402e8cb4cf654e54e813a3e"],["4b1c44438afd4ddf20a2cf612df2ee494ce84c7274c5529e857693e73018491","430403bd31d8f0677e06abff7159384560f27b9622943fea1a3192f14bf40d4"],["7f7281728fc2214aa1dbf13176a4624b53814734abd570eb6ef7c7e32379606","312da47be347fb3fa2c9089b38df372560dcace2effeeacab4d96ab11567295"],["16a28884a1be8183e0d3fc0db84a9afbf47126fd3be548c2a584aaafbfa7dfe","7c3f57b3b895564ba562c1cd80b71fda6d2e611665c6ab87744f5390858fe24"],["323339f37b327a731232a9580e79952063c7c232bd1380146d8a83c285f4b8b","4f16be1d983c7232f92cce6b9690695978d42cecc8eeb8c206e125d1098a265"],["624d26cbaa197e104eb83cebf2adeed09a5cdad359993fe5e3529d4d0def21d","261b7da3cfb55c788977e0d8d640e3e93ae5a325d962ce85c816d7d32cfc430"],["f24ecb7ee83a3e28dab54a330dc93d0429a7aea36412e922dce8fbff40d60d","b043e36a258d1df1d21b0cc7be9c4dcae1bd4ed326c110e668ac23d86805a6"],["686cea46b710bde1231483bfdbc700cfa3da6ecd5841c0e0c782f9ea24328ec","7eb7407aa58edd6911c7c7e8d1e03bb52ead4a2415a0c33325872ff3a521dd6"],["3866ee1186264549df3dfcdf8705c0380c9372eef6d4081c2454d3aded1720e","634c6d3e8eb8af652a4be73e3b613452c2213104ca875b66b4b15ee5b1716af"],["484c687cd2969a1d20a58cdfb9a60f280a473284503b1ecff5de514aaf8206b","34d44d26b7427e51a646d1b924084762f5b461685450f21d6a472de565bebd8"],["203561333771fa0fe22c4033349f7b877d15b0542a5598e81e067968768247a","2b6a533aff6e2163a36a2a89cb7415848bef48db40f952ffd380f47676707c2"],["2ffa6cca6233695760251206fc5e34c8d3692498589478cdd3d5b09f0b7c05d","6c57d605478fa9626c4ed769554d075daa53e1a1d0bd4d94174d3bfeeb11ad6"],["5dccf0fa46a5571f204d0b033b45f299cbb3d9f80fded57253ea4f1c64faaef","30a38e131ee8756ee5ea2a3e16618a5dbc28b5b9311308bf037ecc2039dfc7d"],["57b0a2eaebeafd950221facdd24790d7d1ab8883e5c5d55635f0d14a1ee4741","7b41cc478fa6be38417271db8ed12efc0da6982552c1496025d2df0576bf4ad"],["611b5725101f611c387ccaa13889ecf3bb5595071a179ce350029bfca4ad7f1","3129755977abc8995fec7eec1123a1561e429fde37ff36af002d3211831ecf4"],["1c06bbd0c52fdab9fcaf680c7a93fb821e538a2ed79f00f3c34d5afb9ea6b31","3873d3bdfe0be0157bbc141198dc95497823cc222986d24c594b87bd48dc527"],["275cdbabc989c615130d36dabfa55ca9d539ed5f67c187444b0a9a12e5b7234","2b7f723e68e579e551115d56f0ae71a3b787b843cc04a35b9f11084b006521"],["6cc702eb20f8b5940c7da71f8b1801f55c8c2d8e2e4a3c6c983f00bc1ffdd95","5d15b3727bc66f3aba6d589acdd139fae115232eb845abe61fbdfc51341352e"],["44defb418700cee8c9bd696b872adb005490512d8bba081f8f99a9f15cc981c","3b2072cdb1d919b2b65b5cb3557f0a3381d7ca293c267ca4a38f83e77bcc96e"],["fd83ce77b1578b3a9b8c3cbeaddb1504d2fd4a19c901c21ac65961224e4966","110cbe64fc10c6b9c66f15ca406a35f50b723b35d83c5eb9797a57f8395f4f9"],["9dc6ff90e341875e113bbfb507724dc7095a280d2f32cb6ba61a1e0c2d2aef","4aeb622896c852c2747454e8f172c9482955a42ecbe522d6ce07ecde79d0a51"],["71c58b0e47b9dd9107ebd8a8c8fa9f0534e78231bac612c1ddc7a94edf33eb7","7f90edaf4792bf8334adbaa0f4ee7c654312725af188682d75f34874c4eccb9"],["1f6de1f14988778ceb2dfe844f92394f1f1e72fd1581ceb3bf336c95ce50345","4f6007ed4e022d2ee9fe4ca8207c5f6c766c4f3b85260e941fb24ad0dcbf0bc"],["3ddc3ac25ede4a67a97547ed27dc920239b585fb3624177e2e8d59eba678115","a9afd8f8bb759cbd1dff2addc63f47da4ba1291ea34229c09c0637dc5c8d24"],["c56b0269d8431556e471cab9d70edda3a37b391696f107b2dc370631de51d","729c52f6b134f733eb750c14bd9f95c077f0f6f6ff4005701e5bedc6544599d"],["44d32ce19ac6807cb22e4f25fe1486a36a13926f147fbfa054b63ff0446177d","212a21e8c124c9cd37c80d2dd66913ceaa6b6f666522f115c39382b2d5925e8"],["35dfc16f3ae6ccc06a267bf6d931601e52f3e45359ffc513570b65b96adc4f","74311d10f4bece01b5ae65a6affe5c931463aa1b73a3320eeb41bbb7bb1ff62"],["e0acd9d2d907031b319b80121dc90699d003d220ea785d50e5033cdb3b1a03","3911ba78d6e507485d6374b0f7d2e6198f6462a7d6d3cf046404a07af690357"],["3c57918ca254c0cb7dac251ef4e10c7d82327969552eae15d26c4c52660922a","5fd5f5ff3f14e671548074114c72c48409df8a2e71fc8aa3c8acb506e2a88df"],["222ad8b61e219ba2b581f606b7c996516850a46a3db72fe1f72b5a9be6c324c","72015a5e2db648112abd284fd867b59fc5606645177d26cf6e9a655c9912d42"],["3c86d5d774bc614469768ad38f7be9a53e9a233942c5c553b82e49aae684764","480febea8229e130dedffff89c11f3c43e11724e6bd89d5566d78752859d41c"],["adb73bb8352d0c10175df371f7868ef2c9e0c79ac788430c480c0f7d85c187","60b564785248111502e6f39c4994d6293fac22bc25f4d764b2fb1957d3c9bd8"],["3836ab8b46cf4f453a22532c886940b982029b29c42adca90ded5bf77e6bcb9","7b15e91d6355f147b171a90b064a9d8b2d7bf3699bbf4987664c61c950d8996"],["12ed96af1a97c45ec31f1531e96f6fb28a03ba52ab8484545fbe0dddc97bb32","6d1f522b6c6cad0940cff8e23decc72bb8d4164696af031415508b025aa8be1"],["27382994ae5878223ef802e9b4882f481a1b4008f1eec8484483471f7aa742b","c31750d242b3975b0026a0e86ccdd17d0f680a8c6f53f197fc25eb1f777917"],["431677eba3715455bc235557518a74f3b111a88844ef13e159ad44bc16de3e6","30000e1eb6a17d9df776981e65c6e500fded1ac12003adc9446b269812c9197"],["4b563e6f42589671579eabfa2cda5502b361c46a5ac8d45c8ed44741a925b33","627bdb41678443fdd1aa607709e9699b652308615f4bea760a3b79ee0d9ab5c"],["2932fd3f81fc973ca9def6b7f1bb50f980fe589187cfe9e9f52ba4d356cf2c8","1e6bfd00fa976c4770263a227048214c38850fe0f059e7b3d2c7871ef07d68f"],["e44e4f3d96d9dec775b996be57e57fdc28e7c68023109b221c414a244a0dbc","58b1e52fa274812e5184e00e9ad812bec2463140adfb4bea3b2d665867dcc9"],["7fcb89be1f4bec745887bb891e53fefd665c53d00a9e74de16b8a7e1f7adfb5","74af0b06633f779897e199609c71cc5649bbb65bc2c0abd4c678f0480c198d1"],["62a381ffb904ea3ff4d451d4c8459457cdbc3dc2fd2da646a95d8c1e90c0b7b","1ba058658e09db9e319fa73de8ab4a992b71e4efc22c273725bdcab84e2a315"],["1b0fbb7a84c67e668450a54449c7a46261a2d355589f8b84ebfbaf9a77ee938","44f8fffa33dd33a6146c35d196595e22cc4a215f61ee9197cd751400970a1b"],["78fe920bd96a356d4d95ee34adafe8fecf071d3107c36f047b4024ddc4b3eea","6162f29607fdbec10181fbac6e57d5cb41b922c5791fb24bd28bcdd75d16c41"],["5629b849e026e65d119ac11821d7ab7efd9c52226f75c7427505d6818bb0c8d","1539c0f90970ee8b490e45bbe5568170e5708521a0e59f976be680595906feb"],["62bc853f349bac8c6e5921d27ba85dbd9ba20a375d70a7bc008928f3e123b04","6acfeb1de05ba43c3ef1a9110a983a320e77b3ca294abbc04aeca19b194f26f"],["4cf4bed663464418285cbae359b5d84ec76b5997d24f3640984c7663421190f","941f818e3e3e8fb1568da85217d17f9250ebc948379014d900a7b1a848494"],["52ff3d9ffe9a302f6dfaaf74bab57c08027d5cb699a69b30830540c0a2d47a1","987dd8876873778d933fbfed37aab2f7d6f669c37024f926b1edcb2ca55782"],["1109ee32f0bc53de6bfa457060b366e909d7c18061ec9845f46ac715496897f","38f36f172bdfd454b9285f86e6bdece8fdffc95182c7d801b03c671cc55139b"],["4b4482f1d84efe23dadf3bb10df3dcaa251312dcdd604f616f1eb540e1f3232","7c9c149dcae9135f940fb54482f9c3cd8193721643a6e23157b8020410d439c"],["69cb459b9e415b7581ca163611c470d875971d5d7949de732d1f0f200544a73","a7136fa9dd00c0469863b7def3f83a5611ed628810d7e807e7a873da5a9897"],["b66a4e32ac9a4baa8f64780acd94ed3628b2b0ea874ba4dece629af65f9e62","24328ba9996a24389658e3467b8b90dc3927ef8419fe28b3f55b1c1aaa51915"],["5ecc3080062dd451236de0e4eb91c5c75100733364bc5469f5fa76f79021ecb","6da4abb9031a27b5be94529324fad8026e7d871570780081b0f424d4fe543c9"],["1e3146f00880bb22486d5bc73e54367d54251f4002bcf342d0393b05a4b9ce0","23b6fb8e945d3205f633ba724202db5a99305f807137edf942cd60eef867699"],["2e1da8013285598b899f026c6974185db12c97b4c63509769d3d4ad1d18a4e5","1e7e7b668674d1593c39d58bc7bccbf568208732b3519bc2cdf93db34366862"],["d26c3f389d81709506f184b53871497c8d36c5c9eee8e3737358204c1acba3","34649c3d39f3b825947fedbca215ae30c5a5995e93b1c8efca4944cf85a082a"],["91300478a83595d548f32f259033291fc7d083953b0b8bde88c7559660c563","e5d2bff57fc6551e9b80c06ac7314a71907cdcc66ce82f2cce721a670df10a"],["1f7abcb9d462c63ffe92aa56619ae8590089cca4d93ee3e5f34a63882452cc7","7e9f85c7b7ca6e9a4f3a026d1048adbeef69ea9d876c6f647c257b879a81bdd"],["4d2caa1323012e4c83b0ad387308b8aef5637bc35ddd882e7f5e41cf2ca410f","47150e808c81a540b6f8864e9d6636589cacaa516f82caaa96506edfbd6f0e"],["3c10a6083c38351deb3e6d1b386827d0acf48979b66b95249eb8700ec26b069","47e34bfe561d903cffdd1d849b85aa3cbd31cb4a9bbd8cc2e5fd2f95016cabc"],["758bd54868eec045d0b4d3d2bc415d24bce13fee47cefdfda46425c109b657","3392a7c66ea3bd7b044680bbe9f78ae86752097404c067e9d2572f55330df83"],["19e718e0ca1d2d6fadbc6006ee7dda7a385430e29f5e239cdd4bb7c3fdcb2f8","5c68249b7fe03ea2e13481a63b6cd4bf74ce42009a89fee0b3f8f968b3ec709"],["28077f57ea62401806367e6d54fe45d02de5b072db787ffdcc3854e12a3e855","14f3762689072f5fb41d03e94b01808c739f6d42b7b785b0e464100b150efd2"],["3b8a8cefd017363ce867265af3293cec081fa589fe561830f0078778cbd338f","69ccf2383cb7b4f9c806d72535812483e7c5e9a1a5928529d64ca7e085e758d"],["77878f388d22161a2953e5aca6bac1ea480e102f329574b4b201640d44a296b","7eb35706a90a03aff7c2fecca72659136547cee98038746db5aba16fd7178df"],["97332e6da70961f2ef31b7b628f1018d21db8db015922a301fca7d6fc6a8e6","2e37b06f639fc7a82601b744570a2619e543cbfaf60e474107fcaf4686d3223"],["a81518d452d3aac48bf0386c3ff170ef4e684a4def242c964e129c64f4d647","37506e44c85908ec7b7adda9547fbdcc2e3605151fefa77fbf127ce3bc938f2"],["e80336b2220b1d666074f6b0dac85353d0e4c2e8bd0f37055a2236a6a9fadc","1cae76d73eda7a5964c5d9d3ad6748aff51f5543c56441d2fdb7b444a39846a"],["2c01fd8430ecb44e066f352c4f697fc9fda177dbe162f82862d7b9ea8c918de","6e1dfa99640fdf5b30603d34c7c97c1aa6e6b7f3a2c52a21fc64b0fcac7d591"],["744e37b511cd0ddcfe15f3581947014c159de81ed055d15a13c7a2d1fa39f0f","685caa8ff6979a6c63640ac638a3f9c75737f2031bd55322a47384357af164d"],["40e627ff84e1a7a9068b4368770f5956128a4d9e9e33e9cf5e24d9a242149fd","2465bd6cb20bbdf810e2bc5c3c458cecf4f3aa163a7ac99c2579e5f33417f2e"],["5f635af7f554a17bceb6ccb6e637abf89ab6dadd399189b0a0390e87b1896bc","2aa6238a69f89665646c0e3ca2ba5f709cc6e14351cf71e1b00ec45201417a2"],["5edad3063c9fa8305978d7e6a4e037c9fa519b8023c7608dfc3b66e5c1e8985","49f405d07d7d01919da51159ecdad1031a5ac208c026fdfc14d38f633d92183"],["2fdf2e8a45858c12926a1f25a62255fb2d02d0149a15ef669f859806683e649","61cfb686bb31e2524470d4ad2ae09e3cc91b16305a21d748098feb1d8ce3b3d"],["ecdbd7c37f1dffa3943977278da3bb429afdf948b4ea6cdebace3d3be82381","190b67fb34f7f3ad6afd3d6b6427aa327547d8ac0fb4deeb0feeba1f63d6c60"],["233021b483f578dfa5222f8cccba5766ceee0ac65f6d4a3b1673b302a21fb3c","7d4b6d44d175d4b593f06f5a6dcba2cdbc4eaa2097abaf613123546866cf4ef"],["42db4e953c2a7a743de9fe20c5798f2247f51db4eabc6f40e86c13909a310ce","12c1a0764a0b9f3666e431923ce15e7fcd0ded5ab153f0b48d362cca1604e65"],["30d539e2b545fb957e40e2255f6463b52d227c9808472cee6a3d521aa283a44","5f9eccf747fe6313570f99e845db32b40070acee9ce9e34da7f3c29ca53a07a"],["4bd64e5ade3e2733580a6116b4af328751198e7128f9acfe3a3496b545efb5a","4d584768900dabfc0dbaa086632b8051bb3905ef79b84d96c01514441d0cc93"],["62d6e771f02e591557197d13c3e77dfa2d1794ac1808407bd8227c4be31b466","5c6f5607c1808e899ba36a425911fa8566b7ea9cc80de8a80538c0fceb837c0"],["5ce406218cb2852b1d2fe1836b19462f664631785216e87ffbce26030e2101f","5225f107743c255ab50e7be4a090fe39478d1ef4ff558468559d8cfa87bb94"],["670286486e8dda3dc66b0ed3149be7697d3e06c8279844079daa7e42d5af728","26becabe7430380c56e320f5ae3329569cae7b0af06fd5327ee23979d200eb0"],["3ef448df33a4394c43e93e5850cd0c5a6dcb18ae1cd865d00fe8ede9336a9f5","56711f6ab7e0e4f7365ac34e284ac2879f40208c46f6febcc1dcf7146ecf015"],["4b63fc130288e92f2d6ba238caa7a6364804e29829ac037c57df32fbf762bc3","1eb8c80af55278b4113286c038fff2bfad2da62763bb03426506b869139da0e"],["4e7e998557b29a95f805a6e2e26efc1e970108272d4755738c04f28572295c0","97cfcc2f447bde61bde71049d8200a74a3028b21703bc139143d81a3623f09"],["574b67898f02964c408f68e9470e7b615be037e40b824e6617f89cb56c21219","49392d5f8e6740a1b0b7444f56d7a17363f8656c6e4c628678c86223f2e46c8"],["7e8cb50ea5d5c1b09e219e7305bcb601d99b6d7185b1c388aa8e36fe1e56554","47fefa308645455c12ccb5817da338f0c4f423b341aff4a9d158891a4fd69ba"],["67266dea9e71b4ed2bf24a597a823dd048cf31e725db511edceac72998c9ef6","39babd65850befde1f7c28e41dbdbb4caf82bbcf3bcb5b33161f1c2960b2d8"],["63e99c2cb9c74eb9227d48065e27abb8f606df8fc83b2c44e4ea38b046bad2b","60494a53dd13ecf34e08079d343c88fb655d6d810785af81f08d5aa9bcdcf9"],["3cf0600b0f5a2a4eb78c487cd385350e8c7848e3f6983231881d7f1bbe28543","56dee4288528de609976ef6b903b652127c37b0590e91a2fdbebc3f11df2628"],["758f09245fa4b8b23d290ee2b3bfcede199b4fdb11f3cf2502a8ceedd61b129","622d9baadfde781e985d9722e0a04715666769a4cc7a9bea0b96d6386be1746"],["38e1a45b81492aa95d7abea2b08b8c14dc0b8a41108b036871fb737910ae18c","145c611262656385e5ed6243568cd3f9f59dbfed7a01ba11e22bb8bb272e08e"],["206e54ca53a2f155bd4fc45bf2edb77798ae6623defd4cf22f2dd4a7d119dad","6c94e7f0825ad81680e4cdbcaaaf4df806d57a0d1fb2331926c3fe2b79d22e8"],["56e98d2862893caebf66180e84badf19ffc8b53041eaaa313ae7286a8fac3d","526306f9c01afd6e0c1198ea5de17630f5a39c4ecd02d8e6f0d613c355995c6"],["4fa56f376c83db33f9dab2656558f3399099ec1de5e3018b7a6932dba8aa378","3fa0984c931c9e38113e0c0e47e4401562761f92a7a23b45168f4e80ff5b54d"],["450cfaadfecdb8a2fbd4b95c44cb1db723ee5ac9677c9c188b3d7c8eff4ca58","1a552bdfc0c81be734f1f6ca9a6dd3ab4daa61c11fb53ebb7046eee25d617c7"],["6fe20e5c8a8004e33eafc84d16ef770f2f0b7bace19adaaa150f987d295a34d","28a35040a2ebe9a14a162d3208d5eabc6e2f3a8310f926bd80be65aa71775e2"],["1bd65f45a35bf62ae8f9ffcbd7de2976b90518b6820c219f039c50043bb1edf","fb5f0f8659f9b6ed7cb0ddd7999506d0c20b26bbe69d1915a31842cfac41eb"],["4ba4cc166be8dec764910f75b45f74b40c690c74709e90f3aa372f0bd2d6997","40301cf5c1751f4b971e46c4ede85fcac5c59a5ce5ae7c48151f27b24b219c"],["21cfbc678f5a279ebb6ed124273c8df37eaf12a2d04180403ae6b5ec0b1e1ef","4478ed6a346d899ad7b0b10350270aad39ddd5b68529297e4c91a54357f0a7f"],["350bfefbe3d864eaadac9cc1195c14159bb736be743aed7380d2384cadd2046","5e2a4b3ad0e1d7b9b8ef72b10d68a80e5ee691d7db591fcfbaad6240d41da8b"],["529acd569127f73c8d34345f87e96cebfb48ee12a00a3861cda209337ed94e6","3120671a89b705e5bfd99b0e7fd2118b4914a3ac309b3d74527cacb5ad7491"],["55d3d7956a97d10e65a4d8ffeba40deaf0db0b57f8e022cdb3df6df613f5c6d","159e59a6f92f48fcf85aa96c1a03749a4c4e2cf9e2bc94dd36796daebd9b8b9"],["405f019ee8f2e972a005c549b0884b5051f63d1e78480b73208dc07d8c65a1f","4301a3d0c285ad309ff24a12c100ead7f48ba1368143712f32ac141ab4d9e8d"],["376d59b298d982f02dccad0edd5bbd4e5e8fad7898750675ed0856850a7babe","5233b12bbc50564eb61cc098a17d3d97f06ec7a230380e4c5d3b725cc318eba"],["2f55624af6109ef04b2ed035a44a904ace8627f55889f011f768aabf4de9a38","7f64209ce7dfb63337ccf3d8c14f4093295f86996cabfee23b1655549aca089"],["3b8965e942bed2714bc2e685fb103496e1e3595ac6a343d6df45fb5ef6979ed","5b7cac7a165cb69ae103dd9052fb39c00ed0aad47989005aee53972d82d45b5"],["7abfe3accdec1eae1a50049efdd9a8eb7c2921a08e8bf1fe606e9d5a4039ec4","3af178e7e831f8148244d2d2b284a32991852db6212ad0a9d77540ef648a5fe"],["4983196df6ad7d6f0a8d76f86af3863ad8611374a03fc0fd00793181dbde9d","204c1f91b70f975a21d24a8face664e496f00f602daaafa69a3b56098a4cf89"],["79e2b91c1531a3b16dbd53e72d94e16bf265cbec261658151acfaea3718ea72","3d9bdb47e8b148c1c5e9e694ffbc2cf71aac74ae1a85e8d8c3f77e580f962eb"],["297efceec61b3be17565843cae465c52524b4ecd9331a4170f54f7de8c4556c","6ccef1733624cc8b973ac63dd54e7a53604929affe81c3439525ae5ed6af993"],["44f04b1966264a23ccdc870c8563ad2efcd4c8087b5469b90e792287a5581c7","1c417f0e9829fa3d3cbb7c3cf4dc7aac04c5bf66ff3f86b833a42c533aed1fc"],["6ff83f5d8b51db3be0bda80eed2e2adb7037f2f58f705e88f0f98197431ac26","64f59b8428894c2b7afd740866065ded42e716c7d48accd3f117f22768ed9fd"],["14aa8187c9559f77cd1cf96b2dfc949182529936f2b0b4050ea56e134073b24","5f36508c68b1dc586f3fd3f4e2bd29c6d8258491b8a6aa19ede811ce0d3d0a1"],["95e8882a68c5000d1c2be7c0b43e7f2a6f8de906485241f0285a5c73a27a83","1e4cb67207ab73bc1e5d19fa2146fde6d03021393b77a55df4ddda1fd28f5b1"],["2ae0704dacb3da47d564514b4c3543505b403ba09a248c6e74593cba1867ff5","5a4b5818088dc9ef4066b90a8893ae80fc89584f987ec1928ef9d72cea2bd67"],["61a10898a76fb99989e51c0e823cb60b95ec7ccccb917c42b2b28014f5fd94d","23d8ec1de45366d3b86c64c2da05a2ce3d171adf52ca5522e652ffd0eeee795"],["79884133c879cf07734976fd64de220c5a972e04c2a3afb74c362d6c3beecbf","2aaa0e6d4891b792b5643fdf09873343cd0e3fbba3cbd0601b481a4083f32b6"],["45f73d2fa82be6c5ccd0f62d2237efe8727c479967d27cce28e42b9a44bad5b","2fa4932215f72d56d8be5205c5851c9b3e5f2a14468e4a7acace5437c6b27dd"],["37f53f771850f52f9c8f87b53c6bf0c93c2bed76f5fd1d5697356d0b2325007","50f1a052b79b446fbc7b93ffa1a4515f6c3be3a76a2b0bc5eb8ff327549960c"],["71bd6d23e0d2f312d47582efa609101f15b9ccc571fca8ac4fe3457c67fbc9b","3b3fdf86bd4c7fc26d60540a6439b4d179dcbf7b91efb0ddc60dfbff9a148c6"],["78219ba049438385b829c13a4993874a4a326c4143de0dd581c7b9956f99b06","5505f1268dcdd4ee01b77abac3bfdcbf3f0513ab097c69ff777b4a631aaf256"],["b81e924a86536dcf68bc5a2ca2065a61103ba6c9eb0ae4cf8cce9dbe286f15","653a6dfb51acfe8a844fb8362795e5549d424aed88d3a090366a44f840b5b83"],["441c0d7b7aa705046dc0e07ba5f33a7d9df23f694a05192ff8c2d7be2aa3fdc","4c06568c0902bb99d428bfa0a946ed0f0ca0a51fbf07cad88e06e9c78e38a59"],["2569c8c78b6d6b92533f29f767c95720d377fa63ad5a3b9827ee0a74b0488aa","4b59c81d3cfe08834f946d9d57614f5366e0bcd9349475aaaebe01341196fe0"],["3f2fa285a0471647b214eac652bbad9d58a9f2dd2e812aff0210d0d8a6eb32f","4cdb18e1c2848c2b52c1a6557165bd1a8f55c2f7562f5cc0b326f73c25b696c"],["5bb5141ab4fcc5290ae9151b8045a2cd8391547ce7b3b33cbbb10f8fb538092","5a36bfd52acc6a83a9913b937ec086cc27fed030b5fa70dbc5d3c12c9515f56"],["3f3fed272edf91aa7f8ca5d70005d390fbc67830ffc69c5fa3ae17582d2771","459057e0883c44d8776fa217405f443e5954f08c4a5db68e437becaa664a999"],["5237ca6656237a717a739a4509f70db1b9dedbb6cd232f60c9bd8c4563a6b1f","56c7799dd02896dbe7d69dd8bb9718270549592099569d107b7b49c34bf5a49"],["1cf6b8499ac881e0b2fc7def9bc1a28937033b2fc52de99e75909a620c7a281","5769cf4f735366fa386b6858043dc99a100f86fbc77b16d57d77766197ba27a"],["1b74b8a6b86dbf9638cdb0601e1a332b8d880753423d38c3394902c57f15e40","6bb2dc10d2ecbb913219d0ebdc8d3337d644ed8b6c4e70637ef4c7e50887488"],["61e4da415661bba52a4737e2bcde1a837787c4796b2e1854778534f1582c29b","27c43e632cb7652e8508c9c38e3b4ad0d3dd6ba748d42dc84ec2685e64b9aad"],["7c460a204d23f20ce86596dae6ac9b36734e4a9f7c5b43262c97a36c6a41c6e","481a11f9300ab4c4bf6924c5ca884728cc361247377065920966785d043fbbf"],["124ff5e55e4effa40daa5b9618d75c49c8b6fad95cbe8c0bfdd83cb9bed8316","33a2ea15d0f71f58a00de71acd7f22ccf9002115e49dd1f7631faa0d32f9987"],["61c9f8fc86715e95ff43583a865c5a6515f93381839d557ef884a68637eaf4c","5877daaa42bbab9083b571e12648a9d62ced4470d71653092b6546f4a5acceb"],["70a6b9a9e5d1fcc07dd9ebef6d8f5fcf04c6cb34932d0fe2335330ac6dc8d3d","3f0cbd332ac56922e886656bee74f6e9bb4bb88f7af7bba9098678af1f38fc"],["41db8a0f1ea78443a39e08a54323743c8897eed1ddc28f41aec6f2655040d9f","7d4bf32f8f4719c2e4af8b7889f3b65cfdd033dc2f971798a12170f2b26efce"],["62f035e01acdfe841104942d6c8c07f0fbd618cb85998ea24bcc24cfac1f8","1caa886104b7d753fda93645a746989794cd825c62473b526ea34b3d51b5771"],["441c6f016d270e86c19843727b83b864cec060cafc813b23d7e41e5abb1a60a","29fece4e40400f3acae0586f4fc8ed535e805e472123ec38d662d8a0b01c086"],["2c791ba0fb0b66177815c98191fa6188dba9c795e34a7c3c8a19086215e3cee","11123151389d4b330db6a665a560407e7cd8c3807c749e2b0cffd9c3074ba77"],["5292da4ca71ae75ed0554c267747e39c7a129b3b863e1af3ebb3e368439c4ea","63af6a5016deea8cc674c44f16c63c1db31f09af4fb4d2ea7917c28116661fc"],["3367388d5d1b7758dc3d92e244f227bb8a54e3d9909e7b7dd62ab5965e3efc7","7ffb4833071e4b03ea755ccb9938487a478248fe9b1158a08f1ac298801c092"],["95c863314b7f18090f8eee602403be823a367a1b416d54c32e5f914e67d922","159c2824f899171deee23e0ed520d4825bd667983df0a8d45d3a1f7156d91f9"],["621c6e08b3c57404644ad49ac7629832c141273fa1f323781b3395393fe985c","65d1eb0140652958c4371ebec791e03317d6b2e689d90e304666f1b610783dd"],["54313129bf13993952cd2b31ed06013aba85e74c1b8a00e062031f32188a84e","680129efc9eb8ec07fc180e8f6877e5f0f9f44e3000a2c586ed4ce49d12a313"],["21ea57a1c8286bb45872e78617853c47b89091670ba51c124afa3362e7260d","7087e5c1536df233ec9bfe2f983e8d7622892b9bf64c450c9823898e2cc2fc8"],["3793b05b99e7a57d88db4ed0dbc3b771285abcd9052da50f88595354409f3f3","12164105041c056f127e737c7cd63981e05f246bd2b6b65d1f427019c7c3801"],["befd345cef5fcae22ac37dacd6b9128cc58cbba3e3fd774e11b421c2ba392","6209d25f24f88f7876ca604db23d05f78e6b3b67fb033f2f1bee221f352b8c8"],["15fa536045fda4c65ff74f10b4e669ce88b9996c6772288289d3ad725987fa6","30e0c2124a35e265e931ccc66ce5ac3697d982814beb407144ff6762cb691df"],["38b795bd77ac573576dc204857a488cac2cce19809882631ca2069598c577c8","786ba555d55ebef688b068bb9186a34a08cb00bdfef51619bbf911890ae9a13"],["6c66853592196c3eb8d9526dc155205e2c64097adf8684bb0e15eb460ce1c72","1bb4ebf654f4250c8dd1061a4e1b464b31a8a9999ac9960446ef8108a66871a"],["5b08dfbc87ad9c00b88e78816973ad2f9c10c70f2156908892cc7b7a2a1fd30","1151f407a77e2556073173d8f5c9ff561d8a23742121ca15f7d0ac391af50ea"],["309190eba106aa6ead54b5ca5817969aa68b4b4c627700799a49fc6bdd32ba1","505b6a2bc7b0d78ca6ce2abe7dfb7312369918a4599cccf8a615f6701cfd851"],["89cc205966af08acc8910d563af7443d5dfbb5d88dae79c013c678c65dcecc","1f8cf955694b246a423ac725791231257b88936e00347ecaa1e17045c0ab540"],["480086b61a80c36cf1e1a350baf554e58ee8d9333186b70c9c512fb9e9d5a84","511edfe58f8d36a6170df743731da1ff525cfd5108be20e30ac4183d1281570"],["3caf14fb1d2e90a13ad4eb091250fe37133aabf6029633e905e5a93ead41dbb","49122aff6059dfda19e4b973aba5ebe3804c91728936c6381c1ed1ea9380920"],["66d1b8fb2cabc46cd79741ce1cb7326077ad8ea3227a6427244bdd3806bdadd","4a52eb74f4d5371ba3265dffd61c844f9e68d4ff0b44dc4936182f9280bb66b"],["373330c5afd53c31257fcc9050fef873e15ea9f81d9810f30744309b04e02b3","5889806607b3dc97a9c5b0c8a2f16d1792099a22866b879ca480cb89a11ef5c"],["26840d0ec69a22c6818ff64b8b14633b531508c866e21d1dc9239778ae9e8c7","157971f9a6e3a24d3b307be0e7c8cd352e2eb5cad33cf276270c0f309ee63fc"],["ebb84848f1c38c19a754d1b5d9460e39624dadbb30800987c9419c0f933b9f","517b297cf32f4064e6d6c8e761ba8db89809604a701c7b3aa1a9c6beb370ea7"],["25780380bc0795ed0dca727c55240f1d63593e552d224adb40df2d3721c0f66","10215fb5a893e0275e9f1f66b217dde35addee91ed0e8f7d79531a2ff57b8c8"],["243e1581cd1abfbf18c31c19a4c3d1cedfe69a40bb57b607c9af2717eefc742","1296c27929f14535718c3a4ebe045f00afdc60afc74c7d398d8ce1b6609dc0f"],["48babb8649e054bc8e0b902c89e6940c265f48464520649502ef1064eb94562","3235be7852b0526d1a16f6969ec0e5b0e09cedaadc65863dea4e47f4f398264"],["592db7c27e63489ef4bcef2eafce89f40067cd9a1ba48bc3dc76b5fc62ad9ca","48b7711b570cd9ac65910e75e752f4b751fdbfb4091a28f59b8c046d3d9f8bc"],["31d133456222586ae42a9ec7ce8539ee04afbe0b2ed00a2564dab0798d9b55d","a77c52fa1fd718db5c83e7fda6d7d4d9aafef9ad95cad621470f2b753729e5"],["4651668379883521e7983aafcb93811b4a72ef2975b3277773746708ef3e3fc","512507f3f544d80ba5d47f73b571881e8d70d7b1d305b9704bdad036b7abc47"],["26069e359b2e847affaef604f772f36224608b7642245d0e643889ed231bddc","75ae1ec379f074ebc91270077c74b4d34347ce183b676b4dbe100bfff143b9e"],["3196d01d1fa11dc3803b4813c4bbc6326869f61410f2bd14bc0f570d875aebe","20313217cac79875bd2a503db1e86d1e5559911667a02524759344468d9561d"],["483256607f75f06fb126addc60cadddd602154cc4782bcc08351a48745d0b97","2950a7e500ebbe9775f08be37cc2e62ccf9030de18948d1bab07a4a9173f75d"],["65f07b6050a2fc6eebe2c29ffa62f764060f7f9d3c82d2cb5e4e368aaa442c9","562c9654b646cb84a213b41de203c871b3eae0a05c9c105a66a53c319c06373"],["284870f6181c43f3b01d94baa9c5b6ada0deb861145523ad9169580eb7bed35","5e03e6c40c1cfa3cafb01fd0622349871832a9d35499d06408a83edc1b76d02"],["32229810a52137f0e6c3d37595c46f6132822d4b05f42674b48d7a7ac3ad85","7babde959a0cf2c53ee59fc52c77c3adf899453f077f441965629f9aead30cd"],["1ea8b98a6b85e74e0a2fbc18b206e290f3ed94ce99ca665e8e2351dfade990a","478e93c4724115fb1648c8d5347422adbc1a0bbf962b2312e14aec80e1be742"],["270cbaa08c79140c85b864475a0bf569cc03ac785e57f543dc444f37ce746cf","3a9b8d894016680ae9d1bf3deb931d8987d4d8d8bfed45b81ccc595ec79046b"],["6943922708b8ae5b40dd7031ef2e487abc4ac39a3591368285e83d6c9c51f4d","5f157c37d09634e8cbfbef90ea50af59815d011e419a691c67ca3402b5efc33"],["48ac6a80979fab4912cf0cb557d917a0bd68825d8658ec100496eaae6ff62e1","2b6931350ab183402e39476340eb1177b7006f7a552915581e29a79bd7203a0"],["e3adf9517d92ef22d1e2a787740a292ba32d5ca69faa9e8675f63ed816dce5","36bccf69bb12dadd610145a3399213248d193660d8dc90a2e206f23bf2c7997"],["5e6c8ae5afb2fa470f767581f3d578cf6a49547e4b78665edfd45776948bef8","6cbfc11953dd7e195d2ce74e52a60df524767b44c4608bdd755be4bc85eb74c"],["15a576a1242d39300f0db3ad770983825988da0457718ecd596c63a0a0eb4a6","69a42e5f6f5a63349b57683a4609bba90f556a1680fa1ec3b02ee7d3211f903"],["274cd14e4fbf2ed07402e8ad8075b320c5f76b7ea45ea36af523e95ed63ab50","6ca640f9557c5f2d8b27f6ce95b108880ff4e4816b26b70b6506114389ce656"],["4d8284e132e2fe81c5f71be1e3c79ab51b229e2c56c323e207cda179999d123","116cfc00e9fbee1cf16af6282123cdf20eed13021c2037ef4c86f94eb6e6cba"],["4056194fb5643e97991942ef5b63cadd89080bf57a01489c4398aca03f0980a","2e2cddb434fa6f6da7859c3d518f0ced8795eea043a6c9613fb3e020103339f"],["5d119d5c5ce532afc0875e0ee9b026d878c8773d34237f90a0d0670da6f01b3","4a79fc025ce076b6a4742fbcc8cad313d0a8220c58024a41a5a674c0947e64b"],["11800ce4061d99b9d53fd4138802335258f7798c5a935c9979f5a949ce1d483","36745a4741a5c7290eaa8f2a3f9ec955ccb7ca323272e5d35d35c2a724ffac8"],["4302525bceb97fa642fd5560a4a39fba3d2c06f68e6aff3332ff1854439ebb3","e31edfd081ce82f8177b2d7d96e69851d09e908c2517114ffb37ee12c0ac64"],["2f5fcbb96f0a66fd3bdfbcc78bda361cb812570f50e7c476533d56eee01c0e3","527428a34855b5695c479d8fb7e831a299f7897f36682a74169cc60d160df2d"],["52167df045ad0dc999b98de3d035aced9da4434211149b8cf4bf20e774580cf","19051d2a1ad3fab190c5dfaf45188b49b4e90cca22aae54f0a785562d3d3f41"],["541b5332491dbdb2b6f6bccceb7634970c046963891fae936dd950f4432b961","78fa54da996a51e3a9c06091d58c2405a806649da2bb1f323807c4eec50eda2"],["5f11e973da659b7738f87ca5bd4f3bd02207dd3c8d978f0d3e83fe81030febd","137aba7027069f62d25caed416e13537687bb1428e71e5f0a0c52d52f2e65bc"],["15ec941ee6c2110b819b5541be52981c09d83484c9dc735c43f39f5778718b4","4561826142dc5b56acfcf605a78a4090472bb61235bcd605a765e05d0a7e549"],["68ba398736d659522f484406110b43c68158bf4992094acf797a38979c587a4","7c1d9e1702e28afddf22fed7a7a79df4315c174d0c6c4f4c75bc77d9b56777f"],["67889cea31c81a429fbae643a4fce0ecd690a5c32b99397e39ed6d7a08702df","7ea277c80b671146c9e455b98f42f45b941ac95ca2d15c8fa9ea82ee9b45e01"],["596f2c68390ac26505d3c2eca5c77d46f8f3acbed192a2649d8c525a58d2334","49f3bd8c62c610d5c19c52d970bde24b270c4ff7ae900453b909e72483974a0"],["567779fb8b0afe592cea284629e3621ccfae3c4d7d3dc559c9fed750591a395","6010bdc33f1cdb374facefff537e7910b72a1120502f312a7ce41df0d552ddd"],["cebed0233e810aa6a29a8b0829d28f1c92f303d14dd73d6b12da98117dfc7","4bdd51e1192a00df23aa8d0673e4915877ca41ddb8c9eaf21d39dd167fde7b7"],["4c7085f066adeb6781596771972b188177e63f2e2b3788d03e033cdd5af1f06","2929ee89f525862b0cedb3ab9b5166e1680cb77fb4668f10a6a3d76b5434566"],["760e341bd836899c226176f47685f69438270c150c6fe7744cd723cd1e72359","1bf09f2f1aac1a10ce8bdf20d5d178db747f01a4aa0aa8a5e4bfeef562cd94e"],["6016b94c00b54920027ef64902c61478244b1936337d2ad41d9a8d43dd6a4b2","3bf3dd9bce7f6d6f120de87fcbce6219340b59c2c1d75ee0d45105d33aab1cd"],["4929e44ff692eb944d1045bee96e750219cda3bda0500029f0df49a1db30b5b","2e138dcbd092242699004b4ce98764ffe4e892841f56830af298581cd1e523f"],["5972d0e526311bacb70a04e88969b6c63c7399b578f0dc28bbd00d65ef01da7","76b22bca9ac12d26530e7b0757e646beb3bbc5680d0f3f82fb8ee57ed4b5e39"],["2ca0a42a26e26934ca2d48db960b4719113d87c5e57fb437d557c5eb4e03ac7","62778c02561d4ec5d83a132afd7763a8349207c6b5d01fba70b56ba660cba2e"],["5137ee53f076e21a2c23da09f63c0d275408c31e4634a6b6373be5cf13e6c00","14fb446c077beb78e04de3282a63bfde12f9af85caaca4ddfab506cee31c0c1"],["7d944853d1627b63f560aeda33acf640d35a4ee4d23a744957a2dae9d5b7c6c","bcb411a210710acbcb9ea12680d89e3e4e652228b6786d3886e95f4d9e6970"],["37d412c2ffb173a728477446b60b2b702d07a5243cb5fc8963e623a5ee75843","672c79968908f92cd0cb0b4c65ba86e8f359b015623a89441e1bf859bba84cb"],["5b37f472aa80398bff12cc74c8ee784c4fc89757292580d3a498bff17e9f114","7d79da1aab9cfef58a5f3d1c9ec466956a45f8d2af0c1da6dd4c93f720fae6e"],["25c09b3f1188c562571536202eb0f5fc4b9a7590417b8ea58b4343685d88a63","3d5b817c73b37e9a1d24ca923351359b42ced2f3cafbcac8c2d6322dc767bb"],["32e60904e73f9756f71e0a918d302aeca17cad4acacc81bab15702ab5ff78f0","bcf4c0204f8275072f98a65b09ac58b87cdc9c70c4edfe99fe18870a3a5459"],["49c35575996c1517d2daed90d2fe4a58e674d6b4aaa7288d0642c8bf59e562f","57eeee00adea4ca80eeabab57852cbf03f1a57e21872cd44221e0550b9193b8"],["10e1776b4c2a867bf1b028c6edec224cc6616c747e272f49e69b67b02a893dd","8d45d62ec8e627b56950f2f7622a0438647f9e9f28e723e4a37cebc039a1b0"],["79a93a75ecbe943acc964fd39ecfc971dc6555b2bc335e7b53f52f4eb16cd36","146132a68ce2ca8b48363612226771ac547eb3cf52b6eb7981718faac08aa3c"],["6b22d32e0590e169504e7f19864fd646d0994e7ed3e578a5b88f6e095913439","68c3b22d859fb85e5c8fa0a8aea932285945b230957e603394333e9ad5acd82"],["71ce5ec8286eb8c93b8481c6d19cf0a288ef4da4397e9c80f65023e516bc097","54470babc742780cd8a05499026e738ccbf81d4170d1731734de68a8e5b402c"],["27beb13a43bc6a1f6ce046da438b0beac5899ff4d57962dcfb6476b563f74b","14074e9e93ee45394dfbe833998b9d1691961f8ba3166224b36404448c61bb3"],["6b1de6c8f161aa6509a1dcacf2c0aa1bcf6ee9d9b40e032a9d72f77a6fa298c","5e9312eb5b59d6cbadd7d3dcbc39f1b5bd9a8346fdcfdf1107bada6f9cc048"],["32670fc3fa43bf39974ba72ea51f0d045d92d084a81fe5282dfc8309aa900b9","518fee521bf1af62356aac3b7e53fdbf57121e030c6e9572b3de69912ca4eb4"],["4b9ca363eabed9c66091a347375f7065cd28f49f914447de7cc1461f1375f1e","3a1a3a2e5e7e72476befe2571ece708052d740d02cbe6fed58740968ae609c4"],["4cc6da42863a3deca62fa218b7a3b50e034eb4bafd393eccba3f4cbe192ef10","20bfa683c884f203713953b26d2821287ecd305fa2cb70570474533fc07f918"],["87705353c44a5ccec8de65cf5433be6b3d9bd21eea49b60e6c907cf1a67a6a","112804b13eee56e3b01aff75fa08fa8374c44fc461aed8a30ad54acd09c24eb"],["6cf6eeeb9d339c0a05f72fd5af73fc7588e6d957100ee8999109437bc126cae","54fa257cea22032eac272fcd034dadf2e00d602ef9e519cf7072023c130aad1"],["19b32925048c5519d929650c833661b452ef7be7963fab0b6b328ab7dd7a28a","1bd0c14a10bf9b88ea61011c0b2e64d07da151c6203800d5a5d12063838a510"],["12a5fc5559428bc3b4eff97b21b63668b866e0722807f1db1f19696bacd9b0d","4c2eb07f0c24047a3d73b560144f3fd32c99d6dbd9fc7cd2fd2a72a6e4b24c7"],["13662b7a7d390aa76eb86a7c3bff6d9913eb28db6bd1a7c42de5cdad2e35ce2","40626aded7f56f82cc431ae30527b096f57fbfbc04d3e12a5abae3edf301cf1"],["255825bd49b8a2cce114360bd9c8fe8c641af64c8e7710107213cfcb006f43d","3619cce4482335232f9e76a1460be9d296f2d468d26e4f95a78c71524fe59cc"],["7f83009eeed4f12f54d341bbf06066480cfcdf51dda103ac54d4bcecf6b3b31","4269519d28faafd7fd68bebfd8404d71ba05d62c4bb6d65d24aa6802fb84ab6"],["2f325650eb316646b4eec903fe44828fcb11054f1bd42ca3a77f7e734110b35","44f976082271016f9048e22c507d97d628722bb431f8d5cc1890524e6c386bf"],["750b166bb6edc0ee80fae39c7c106879036738df2d79fb2294e1c21e9a24d6b","54f8aa297a1afafe2a17a3254f45861167414327e918d17003c6aad01d0b24c"],["3aedb10db9cf3285cdeee375879396fac1fb50dd259e1716f8c01e66f67ca72","7feb9400f621f58c21601f23b7ec7c94a9b6b193c1cd74a8a60846aedadd359"],["4ab7151702de76faa493e7a0b1ac20ee4d10c33b83fec9477547cb1236973eb","63f1f122e3ef3acc46b0915ac69c3f5772879799cad889a817f55f5853d1235"],["1675ead0d20e5bc3a7a7331999a87ac4c916ae29669e54197bb02aa6364520f","4d1122da90d49e491922d9b533a6a668e2f65a2737ebb391ebb29fb7c1f8a9d"],["2f7148111ef53c613157aeec12e16a20f13481da4390b6ce18a85d1d8547087","2eeda779ab395597651d2a0b833ccf53b10280750139916ae2baf4ec57c633d"],["4439c7810e7b2ba772b701ec3acdca0b80c9df23047710b87f7dc3f13b337d3","5029cfe704c602a8a4662af0a5860ec03fb88f046d0e3400f2ce7638014c621"],["2248eec40b5732a6a488b681f093643af7937071bc73118acae295a32b51b05","1577e4aec30a97b648de4d0b19cf8891151b4eb11f8de9c6d7312f091552e19"],["4738424e558d4e0d87a3124ca02ea24f0adc6b7a9768b0d3945ed2a6104857c","33576f92aca3f0c8ae689c3c274c2de6b918940d86a6852e02fc99e35d1614"],["7829edd8b866ebf7baaf604ed13d19a9797578f44bbc51b1cd67ca53803e96b","5559040a6083f2af1f9133ccaf5bc2ce06e56ddfc7dd410e9635c0116b62722"],["7f927b881f2cdc05e1a69e40bb714af47b630d1425f08ab5d574ee698f33d51","26a465288e96572de303203bd38f4a03031e8158da0591cb037c0a5111d1056"],["36a65598552f8753580d1655417d645a140966e10a1e1663015f9fdfae44881","33d5bbfaebf59eae72b89b1aea12ab2ba3c9617f8c3baed1ec16bdf668381b5"],["403becfa545c826782026ff409cc16c9d4fe428f1b5b6e630c92439d2fa5fd","47bd6f2bf5d74f710ecb479c79b01fb774fbdad590e683a415cdedf33f71dc5"],["3a747826d241b877d3d56b16e0b810cf088eda4fd6048da174c9991a942a5eb","2c7ba19b0a3486a2cdb84d4a388d34beb077a0e467ba44590166f93f6a09d2e"],["3d60cd375842714b37bda89dd1f13a7e0f3ff133b522209617d031bce05a537","f77f216451ab01ad5226844d2162a7f32744688bcb4325445539e2ce5cec4"],["235bf66f67c9100e7f0e22bb299cdfaa603644b240e0770aec7e7fd163e2a65","37110b3fa83ece3990afca2bea8d5ebb3c7aace60a0147f8e6ab733e2f2b4d5"],["3b796d4eb69a55471fa86108f787b3604874e92b6887a7667a6c2bfbbd9a42b","4912d6dc0419732ef82cb3278415851d4e2d7ca89e0f4d7128cc9de51b810fe"],["48d53516dd51e49faa7ab46c8c10db1befd10f23c6a9d9bc3640a2f0da44518","73a2fb3d064adadf21aa1362c04affc660598f38a9e069b3afb74d0a99ae9ee"],["48c32cff161ed145da0d5b73084897647abb777adf65738559ceab6939cf3e0","3d99308978e828f857c382df32b472bda81e8ec8e30c8844077ba6d6d2ba903"],["2947ff091a8ec9684affbc9a62e09e598841c4a6dc638088492aa47dea57097","19a2cc97975e547f97a4d02e42f89e6ced6f5a953cfccdec347867d26926541"],["1960d85f30475615f82484eba0bdafb7ea7cac3809f0518a757d66f02b01676","36c8f77baabf0cc8805d993bbe62041fcf4e3239cf9d53278a4fbd91e75eeb7"],["2765f28074d21d5a055340b6d40092d2bbef807e02009fabfa08ec0b9bdf38b","7fb189e0553d5df52b6843661814824b3f3cbebbd54988f042fb256c6bf30b"],["348836cb2aaa00212f4b1a4e2d7fc5417f246bf2fe5c9a16ebabda449e2e08a","3f7276fd7d69e0d55ce5ee1d2d830534a27227fe0b6d8a36c93f9a78b872969"],["7afb9d34b6a42ea8c6d870e4b8191c274201dc1f93a1a2219a2392b7e345a31","42bbc20dc7115e0758b364a110227b16b64ec58fc535ce5ff1a9ad8b8a09fdd"],["2cae0c2afee1767fd4c66f52e1f176d217e92e89cc19eb36d5a6c1715f641a","5335efe2d9bc3667d25ea88bf76438a4d6ab9ba5c512f9da7d0529b79b62d83"],["1cc5fde334707723c3a06f00c106db88664284a2df47bb6b144d9f960aea3e2","dbbf610d100316938bcd8bcd078513512ecb50d4579690dbefaa419c05980d"],["54e90cb8f3a2998d2675c5780679e06c0556b1e618f8fdf07f9a4b2466fbf1e","16248676b6f06ec5e34994bc3115f85c8147b54f34d8500928f2fdc051e2089"],["525c70a2ba0dbdd68d75640f47f13d0d415ea595f7030f533f4625c2a46523b","58292c8675e5e1a438f49e0c05648d9a7aa997f2f1fd77d5de1944afe5d7eea"],["54726d78d099007393348787a03107ab492e59690a46c87fb02ec554f2353bd","53b54b77184ba75a3391e0ebfa6d6974db028f3f8e34bbd5460759a5848dd76"],["4ac81a66903537769d3aac6c483ccc08535cb767b6b5e1ec8017a7393ab70ae","2cb22b77a8a05d26f11a4dec80eff292633aa05553a889c5ab16b6ac6e2ab17"],["21d0175349e21114988a2930b9a607d43245783cb4a0c984ce27f4c4206708","59f1f49342cc5496213d3329bf4ca7fb0044337449c579bf53147a1dac9e67c"],["167f821b381f4c8adcc39789475fb55ba639e5124fe75f26dd61be396dd5e66","22002c87d4cafb47ac9d27286d5cf5ff7a6715d69814118269b0729be9e4b3a"],["31010666c6db83a9f9e4db4c48173afd405783ac53852a6e38a8ff925528843","1f466dc9b5d9094107c741dbf380f9fd98d8549cd50f67169901516f8cce74c"],["1ad3875769a5053388a86edc85dd80fdffbbda6a456aea497ff81a0f1f6707b","2de7cdec5e2bad56a71bd2f33a4ae4c874e1ad4210a6ac32b443cfa34e85b1b"],["c489650fb7f459ce09cd05a456fc5a46b849b38a671298ed645bcdaab168b0","45610d092b8af1c43ceed474cd17f7bbee65120aa6fa4d37f949e7e41f25327"],["394256a5ef4d7af5459587a0bd2edb8acaf5ecfef2563c9a04daf34a4abe4c6","1ebee390dae1403c0c53994e1d064fa64e20fcb45392e209b2b99486a559ffd"],["410a1511fead6151e9bedb089b9832d0fe01fab76d3f8459929f767525aeb27","361f0a5ffe09fcc3ad4eff3f5e89508ac247af80267100b69de3c59df561cfa"],["38cd437c9f659e110a869605c182ee9fdc26de36baf559d9229e258267bb734","624b1128ea7739bf1cbd0e423af92a4884323c868d2ba0ee9d362946edee2d1"],["78b126e50b7042d2a019f95cb87a3213c664ca1bafe345999b1e9e2dac1e608","19e398196b22f4488cbe854c614ad8c353839abc5ab3a4f3f5c03c16ba8a198"],["6d3a5ce91132f385a91823c5c8046c4b638f5fe63357424410d901457cdb867","7b80bae16d2d487e122495174f7a70992bc5dafbed72bf84127ead7c57302bb"],["32d053a904dc4d88fbe7d0b96e0cbeca22a00aa5c79c753d52b0b60abf31602","3af6a02e5cae6d6490354ae51185149e3fdb6d0d9caab90e95ff58aa0c40377"],["49b1fbff5bdb0aa6938b066dde0ed772c0d81f9eff52e7fe038b0ccbd78adb5","1c6e57834eb14d507eed8b36c81ddf92fa91c242467061927a742fafa82b43d"],["2f28b8994ca6f234d9293d26196b43b9d1d5306844348c4a638102c05de85f5","759cfb172eab065d477248b3569f4ff5791055f01e95fe71b94b8e615d73c96"],["3c2ee954ff534f856f59188fa0f29ed8a022aee0cac52d634f6dc58cd514d70","22bd162e74925f0a876bd8a206b8767dfdd7c898576a73a490f138d9a7f99c6"],["5763a7cab001e1aaeabf9ab5b9b2fffe6cc2b299ab04ec4933da74d960e1ab","715ee4f8ee93ab5a1dba00f0a6abc4eec47d49b61254cc27fc36a031e32f0f8"],["19976ad8d7b7f47c785408243a227401996b36e47c7a78a7bc7d4256233ba9a","896b713c5d7777b0703821a73c1d9a4c3755501042120534ff13990975e1f5"],["61674b992c29827186cab5ff454758dbbed8e89bc23d0bd33193afccc3a04bc","38e1020744c13903809ea30a0662fdb5226ae760cdcf10800faabec452e00f8"],["2ea2d48bcb83c0c9cda4efe11f07165cfcbc9ccd26526e5fb12556316d4b1df","1d2d68b74ad384c5c4a9c85453104216357bfcdf635680b40215f0f800974cb"],["7881212050264c40c336ed3a15dd2cd868ec9a558f5b728869eab66e8b8ed54","21aaefcc8ad8a161b8971d6880321781dbd939570c540da4c330922b8c81e9b"],["b6be88ce0461d20f59c5199573cda0170b61decf6e8e69a6d32f1695adc4ed","5536e4808370716f2bb3423a9a49a38ddbfe91faf3b7a35eb53d3519238b6cf"],["e5972af1655eb6dde2e8c77cc58044299922441b5ee41ceaf5cafedc765bcc","550282f37a4783dd60801c237045992d6fbe82a5902e7d837ea25f6f98c7b3a"],["7efc1aad1f580d8f50274f1c114c40056be19a8c96fa8c4cb5bf85e1e7f3e4","2689f1c3898b114d668be6413643ee9f879913d40c262541fd0316264c60a4f"],["7939db98037f59b0113e9d60051f75ac9c3cfd1a3eb535c73e2d945068c6c5c","410914ca8bbf3c65cdf3e9772ca790c19131c50068d34b7346c10260a578a8e"],["225b77ad00a2b83d26690190b74867326eca4f55bfbc3a13be036225ca3b1b5","411faafef89042ce6beb64309fdaff70fa53e9d32d79a21e7f82f80e79ff05e"],["1501e64c99c8b6658b0479f2c05c9142d246eaabfccf2fcec8dc4399539d8e1","3bab1e3339e42c9ee66c65b0b20236fdd9362d3ce786ad3a9779ab578af50a8"],["59b907b941f24fb8ea2458153e55f07534b388e835af7b69f3c9f54392a335","1d5438c4f2f68a417f3d56f916d899a6ffe910f5f2989ca31687f1b10f60db8"],["2887d08a26f484546f360e33abbf7a998b7170a5b30070938b84f072c676bf3","62a78e8d00e5d3a59e2fc424ffa08961567ba1ef24c8531cd7bceee6074a535"],["6e3cc8076b3d45377929033af35aab0c6d19ae4fd47c0daf844079ca04c46eb","7b90f338e4d848aa8f19d0b5c3bca916a2a9024acbf14bddb278bca2aa39e5f"],["34844dacdd3ec54a3af328bb9d67715ab33425e194ac9977ca02ef22e8f7a88","3c1affc6372f32a1634748124f9e1a03c4f0c993971da0dc28888b0801279d"],["436b192e03a49796cf9bc5e93c88268b71c9c24f9c3a85322bba634ebea309d","67a8091ef69d62abcb28ce5df4dc7d53f8dc2b9690344f75ecd03a6d9386044"],["592d25b68baff87a6d7fd41ff0dadbddc1bd1316683de3b2d677501c0eb14e4","27ad1e1099683f54589010faeefb19e38569ace43653be8787a42b0591e7bc5"],["89a5111ae911512ba62e87b97f643c0219702f235c70f62c6678a129302009","557fa3d98e9ce7b83b47545013a4498f3de43787fb66b1a54521222242f7c1b"],["1c9b5e53377e72da5066cb08566bbf9ec31ec1877f455d932cd9b1aa375d34e","72f79555a8bc207863f32d482fca54692825449fd8963fcea3de3a8183a739a"],["574a6e05eb14591729515be239ea8c1fa9e12d4049d42876f76c8ff37bca03","5f99b3af43ca68c1c73e8190d5f73c8de162ba643d7d5f0cd73cfa8135db6d3"],["513fc5c2e16505b2b25a2f284e167d5401194bcac0dc3ecf8b7c9acb560daa1","687ee7a1a8954d08d3856e1a16ded808e419e789736d3f55f79f7693bad69f5"],["53d48bd1205274b1c2b0a0ceb3d21c5fcd7c8892a784931603240b288a598b9","35387abd7ea59c9b956de44d36533cad1f6668c438d666651695ff3862159be"],["213eb1ea99e08825110dd61094eb6e8145119dc1c507636f068730b1e086d44","744f6853f4f02f4f042468d0739e0c9f64df720b87ed77d1979547084ef7a89"],["735ef017d091ca23264ad0aa7bb9b2be3309b4539605e79ed4a652ccb2fbe3c","7f0ccc7a5747c4e921fff97d431169f690763427e2cfd1ad74d7a0308d7faa9"],["3f36babc5a30070b610ed97db44997e6d9115c9c0579ad8f75d295a17130001","79047908a2474e32d5c712a07bf5c4ad522590bb5d6cefda410d30528e12ca8"],["51c04907ae88a5926b242fb2862cb1f2c651a94e6caad5bff8601c079fded74","10a585a269f460aed43f54c7de13cdf623fc8de5957526997278be939ef32ad"],["c1e1bd626a735aa2c065831317217ecce68e377eb1f67e54ce2e97bc2ef2dc","53c5af23a9b482f420be6dfd37b6886154cfd130794098e1f51c1885ac2556a"],["5aff3b30775ae4758e604a4a6262803a545f5ef4e7855fa245ac6a6431a9ece","39a4799e5519047f29333bee9c86c99bfa8056d4aa381c396c4a44331fe795f"],["3d753e9723701a8e9d99b91bb93dee2eda7ffa5072fb2cd5c5fd99aebcdb299","15798bf5c17d6d5880fed1553af32dd8d8baf2888c715a886575448a24c7975"],["6593e5078466b07a4222d2e544da826d2c583c9cc5f2eaea148b129b00d4aa0","11b352b08a0a61d3cd67d1dc08069dec3bde907b3da0f56de5011b956bf8744"],["7a6eb353c5be9ff03fe4a06c01fb71aad2b38144179a291ebcbb2c2417cca65","3de3ecb12f2fa699b46a9d399abf77ca17bebc3e491bfb2542dd0fba991e2bb"],["2c7ead583d6c32162091034a9eddfa775b4e84b8bdbea939edb2a80dcf64f6","461790ce40d9c276d962b2a1e9a74d66e9d7335962e234e8a2fc6963d31722d"],["34285af023d9b4c2c2b88e8704bf2c05a9b553b00b2e70ff05f8c2970cb134f","33fe678e7671760a83836107428dbade68c3593fbe568f3f8f1b2c568099c44"],["6222f720a24466263db6a11842f117fc4bb78da6705f140e48869db3e087441","6eff5b9bf3aeedc962bc5a24b66e7bdad2153450ed53a058bf2c8dbf2907693"],["17c6ec5ea206eb97cbf53851e37ce391080e0d2bf1e5395610f79ab0503f7ce","3adb71ca3523d88ceb1e365f12dfb24895453c14daf0046b2626cddadfdf5f7"],["70859f9771a713e54974ce11cdaf44b0dcc3e9befa0c0834908d877eeaafd27","d18f794bf0cc0623b711e7450030424e52326c45ba9b03341883ae4828a5f8"],["2a820cfd0fd4ab0871e7b303cd545a3086caf8fa818c087a4017197da74efbf","5f992683ff37f6c041b84bfc01503d333ac9763505cc8f69473da01812969d1"],["5b0526de2c07fe7cd73e3884f642d57a0ac5e13c68590ed03a14e530616e8c1","eec69d0cbd92c9fca31ec967dba848bec368e792d6678797946a5e34fe3487"],["6cf6b3efee707210cb3a72f1e885c3d0953aefb43e5e148c740aa1641725c61","911cb630b898e2c1a9115f9e45bafe3b819edfb1eab6e15612d14289939984"],["74e913de55f1e46143cb2ecfc580f8d3d3908f200281322b84e21c989cda293","761d2736c9ac7670ba905bc2629c6c0dbe988820a4454ff415ba68710f7df92"],["44084305e0c911a40b7cbefe5f13cffe9a99375d1a584c4a2200958050af7a9","249c83877371564708ea525b64b1e7e12785460d83364446531c9adcacba5f0"],["2bf71ad4d1bee1a67fb300477029f54bdb0e09f78bf2ac2e8afc7465a7adbcc","6244dd6cad282539049be57487bfd9900bb0d5da805d02b535096368fcb4cd5"],["3a62d8f763b62def36e4089458046a49c5ecb91b861549530773e0548ff2bb","6a10a03ba61e6ac657270465c09aa9526cf1ebe96bdecdf0e7000476a47b9eb"],["284eed3a17c51e0677d4fe897f056abe9def8af07a4630e6ca5723e2aa6677","516a06ac1d5626ed03d2eee9de6f60f0311eca703a99b0fb31b9c66b01c27c7"],["2a2c63b16cccd685f731d06fe93ce2cffb358d34d03dda9a7368185c1eb0c32","7180baca0ba81284809f92eca1654cd76b925a9242e5d5e0f18d0a55d13c6ec"],["5f9466017ec09769611389ea5370ad68dda936d3f5816c9e928ff9574abf9a7","6619b5b145bb5f4f29deb7a4cd68ef4da3995312fa6537f0d01684da4267ece"],["74f229babe01b4962b3307589c1a13019134b1db6822698388bebb55d21c30f","156ae857ab3279f754facba0db36398dffec8c31e5e160473198f2f891b7531"],["334b9fe3a5fd99bc966ddd1309698fd32afd1f235062f2c275b6616a185de45","221a60053583cc0607f6f2e6966b62fc9dac00538bb7eb1148e007a92116d2"],["7ad710ba002a67c731efbaba2149d16fec5d2f7aa3d126fd9886172e9f4ea30","3a10f8e902a7a13aec94d66415347e1314f9bac83a7db176096b809b25ffb86"],["4306dd0a184a3283c3097ff8f7434cec80912e9dc04b7df21ba73fda9f8e6d8","6d42bd3d1a8dbddafd09e872e2aa3891ae79ec939dc1b382196bc21c4ab749"],["1c3f2124e1135c32a426d1d14e471edd9e0f2c7bd703ee123cbbd608e8c4be7","3cc607a3c3f1ab68dd5fa56c65996002721b8ad8ad4b0dd9e5b1467d316583"],["294af33272ffcee0b56a436de1b73759cbddebef4c07888b42c2f92b0b68e1","d837164311d5dca8d37b99ef9eb22708643c83d1cbdfe852f63ea07b06fbad"],["753bdb5439a19bbffdfa02b1dc24e8368f22d0a8276b109c11e6feb26f56f39","6ed396231af93647633eab467f1a034f38e76823eb85baf97cae56e2dcd9f75"],["5674f0cb892b733fc0b50e121d8679afed0a925c32594cc65ffe83bebe7748e","7fbf0325dd38dd94905adab2c52758552292a6a103d9edfcb11938828e828c8"],["4a8f053573a0a74251059d0229d89b6660407ba0b491779fd10f87a5117c81f","21b70112485398bf67ec9d733df24a1df30dea718a93b786f41ed04e3ae3c5e"],["726c01ec4a08df8fc8de173311f50d4f3b97c5a9cf68c1536146f827db95ae8","15013cafadefa7f1c4e4dfdd70bd4d3979dd18bd7f0332572ce2a3fd8773d12"],["38ac0fbfa98937257460db7e6645d7e5112b6fce7234813fc8a704e8ade8da2","73c0109f86048aad08c443f781ae60ad13b99f7b9cfdf3128fe6d6eeb799a7b"],["6f6d3a38621582ace092eb50ecfe9eff265df141ebdcab8653299116fcea291","4a1bf3f39bc919c8f1b720a0b1ce952cad17f2ba98308ee6b76dd9b6f3d7b75"],["6a307fc28e1df8d9ad01766419e097797d65cb674436fa1c8f012d3de2c2a1f","26911a635ba824db004875d79dd84834a97ac12643e42829015bf88c1fd6f05"],["2a74860e3336d6db916555894cc8028f41508812925db1925457afe40257155","5f8da573f4c39816ce2dba8a20224223a7cfec53117ec78973930c0e9b60244"],["4d2b49e1ed0799f719b8269f092cb489a466a645bc0ccabafdc678864c176d7","5410083df7d256f18cbf5697ae5e52c31e075d8a3b27e21d6f5177ca882f6c1"],["110ecb9fbf6c333d168cee473cc5ad98809b6cb9eb5d1f6cd28ab5fab504fd3","7e3c54d7533d9f8c3310f219dab0cc3ea4d39b418a748eeffd6bae2b8637a43"],["5be4d711b80da70e6d3ac493250bbfd16f20b25f31919b3a91cf14ffbac1096","7f55a0919f082e8885f1515e83c5b39b6022404503507498e1b4422d79c43e2"],["2605125b95ca4ba93a21cbbba5762898a7cf9e988f07ab9e64cb3868e3b139d","62f0ccf55b9fc0eaf9736fc8ee484e2acdbe259813af9803cf815829a5e9d3b"],["1092bbbf206f2a3068167c3dd99a72de31e206f6c504c071c8214d105ff814d","309f489f68a62089f53b96df5d4fbc3ecc5a1a42eb7ece0e49bad17ad490ff4"],["2abdee9409d9c92559ca3f4e6bddd649c31aa09b90bfcb4a612af491241e18d","3ffa8eac180a29de3f8a69efca84bac046f921f5725e96a6ff0530be1436aaf"],["376313f27d00bb1aae7ec991745efe6ee28c6b50de0c6cd9845cc4bb4f83543","6a8e0a9389ba528b156fa94ac090a895d7b795818d4941c29415d9e2984c547"],["a80380c71bd466a696b3f0fbf02817c9459d9798f4f3899cf32edf647fe066","6a09805e814e7cdfc76eba4b79f1df5ae559e0f0aba9f728d3cba4ea5c57471"],["223694b921d247d989a79b9b2b2f07496036c40cb043eab074a9d6a2cd2ffed","c247217f1b1df35e30d9e15fdaadf42d6fb0edd3a5a7e265d4cdc426c120aa"],["102333620df278c6714bbc880fc087db58c1b9b4d77ed4d61b32a74bfc7c3e2","6a77d37727ccf71c2caeb151faf4404d4b94e9047f9f0a7c3966367f3b53c65"],["891626f466536929ee7eadcd18b41925706dedab7528ed5f0f7abf039eb9d2","5f73d11c141c933a35b2d0d06e5cbae614a20d17dc3b439f8bcdc3413c5ea37"],["215c23fd3f073f870e5e80303967391bf173f8adcdbeec72d131c557babc203","10634332e9d9439a321597dc5b0fac9ff478834c3d6e281735f21a4a5e13266"],["21ea0bdc1332bc36e6aeb43be9071651c27e4ea2eadec636c8d818d4af72a36","3a523d9643dccc6bb9c7c58413312caa3e60ba9c7c7f0177e0f3f469a3241e3"],["60deaed1bffb6190beed40caaf2bfab5e43d3707aff7ad3f278d571aa247eae","e41f71ff254c1418e6a66992af307789fe04d6606fb2670900bb1a089fd879"],["1e1fac4a1646253fb1332fadc21fbdd3e3a24a840d129400f520ae4116a4cf5","69c406f9f46576afad68808de0ab7e8922b6226af748e721d9097e21f1800f3"],["5db0ddcdf79ffe74d6454c12d2bc60b06776db03c75dc413f5be42ea9a91b5e","134c3d6c699841f17306835bb193785228ffe7ab212a01a861c56b086a18cec"],["626814e320fb5bea505b248fd1c1389ad586c1cfe04923fe2f83173e915f4f8","7ae407a926e887206a8b85cf485f1f327c9bb8ccbb6897024e2d122877d8ee0"],["23186237dc7d3b570cea645282ad4c359731bbfa54e7f036426bf6493812cd","7d1fbab7e61a22d3b00993290d9f4cd5d820061573e787f66c2cff9a18e1eaf"],["54302dcb0e6cc1c6e44cca8f61a63bb2ca65048d53fb325d36ff12c49a58202","1b77b3e37d13504b348046268d8ae25ce98ad783c25561a879dcc77e99c2426"],["13961b56b9fc0e412e468c385c22bd0680a25624ec211ffbb6bc877b2a6926c","62f7f7792c77cd981fad13cb6863fe099c4d971c1374109185eae99943f16e9"],["47abd7308c70659af3f00fafe6837298af3cb530b6c2ba710ffd07a6bc1ae98","75d0c8a7377aa9f0663d0c124a5659750847afabc29e39893fd27534a4a03cb"],["2c6276b764fb398fa555857dbe0ce0ec18fab7a233bf23851295739801f0585","5d8f4897ce44007ec5bfcb9aeb78b8f6e1d40a514f72d213c9300d2770d2b8c"]],Ev=new Oi("800000000000011000000000000000000000000000000000000000000000001",16),Pv=new Oi("08000000 00000010 ffffffff ffffffff b781126d cae7b232 1e66a241 adc64d2f",16),Sv=new Bl.ec(new Bl.curves.PresetCurve({type:"short",prime:null,p:Ev,a:"00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001",b:"06f21413 efbe40de 150e596d 72f7a8c5 609ad26c 15c915c1 f4cdfcb9 9cee9e89",n:Pv,hash:Rd.sha256,gRed:!1,g:Av[1]}));Av.map((D=>Sv.curve.point(new Oi(D[0],16),new Oi(D[1],16))))[0],new Oi("0"),new Oi("1"),new Oi("3"),new Oi("4"),new Oi("1000"),new Oi("1001"),new Oi("1002"),new Oi("1003"),new Oi("0"),new Oi("1"),new Oi("400000",16),new Oi("80000000",16),new Oi("8000000000000000",16),new Oi("800000000000011000000000000000000000000000000000000000000000001",16),new Oi("800000000000000000000000000000000000000000000000000000000000000",16);const Cv=new Oi("08000000 00000010 ffffffff ffffffff b781126d cae7b232 1e66a241 adc64d2f",16),Iv=new Oi("FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141",16);function getIntFromBits(D,te,he=void 0){const ye=_s(D).slice(te,he);return Es(ye)}function hashKeyWithIndex$1(D,te){return new Oi(Rd.sha256().update(ws(Cs(D)+Ps(As(te),2))).digest("hex"),16)}function grindKey$1(D){let te=0,he=hashKeyWithIndex$1(D,te);for(;!he.lt(Iv.sub(Iv.mod(Cv)));)he=hashKeyWithIndex$1(he.toString(16),te),te=te++;return he.mod(Cv).toString("hex")}var Rv;!function(D){D.StarkCurveInvalidMessageLength="invalid message length"}(Rv||(Rv={}));class StandardStarkSigner{privateKey;keyPair;constructor(D){this.privateKey=D,this.keyPair=Sv.keyFromPrivate(D,"hex")}getAddress(){const D=this.keyPair.getPublic().getX().toString("hex");return Rs(D)}async signMessage(D){return this.serialize(this.keyPair.sign(this.fixMsgHashLen(D)))}serialize(D){return Is(Ss(D.r.toString("hex"),64)+Ss(D.s.toString("hex"),64))}getYCoordinate(){const D=Ps(this.keyPair.getPublic().getY().toString(16),2);return Promise.resolve(D)}fixMsgHashLen(D){if(D=Cs(D),(D=new Oi(D,"hex").toString("hex")).length<=62)return D;if(63!==D.length)throw new Error(Rv.StarkCurveInvalidMessageLength);return`${D}0`}}function createStarkSigner(D){return new StandardStarkSigner(D)}const{curves:kv,ec:Ov}=Bl,xv=new Oi("08000000 00000010 ffffffff ffffffff b781126d cae7b232 1e66a241 adc64d2f",16);new Ov(new kv.PresetCurve({type:"short",prime:null,p:"08000000 00000011 00000000 00000000 00000000 00000000 00000000 00000001",a:"00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000001",b:"06f21413 efbe40de 150e596d 72f7a8c5 609ad26c 15c915c1 f4cdfcb9 9cee9e89",n:xv.toString("hex"),hash:Rd.sha256,gRed:!1,g:["1ef15c18599971b7beced415a40f0c7deacfd9b0d1819e03d723d8bc943cfca","5668060aa49730b7be4801df46ec62de53ecd11abe43a32873000c36e8dc1f"]}));const MAX_ALLOWED_VAL=()=>{const D=new Oi("1 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000",16);return D.sub(D.mod(xv))};function hashKeyWithIndex(D,te){return new Oi(Rd.sha256().update(ws(Cs(D)+Ps(As(te),2))).digest("hex"),16)}async function getKeyFromPath(D,te,he){const ye=function getPrivateKeyFromPath(D,te){const he=_v.hdkey.fromMasterSeed(Buffer.from(D.slice(2),"hex")).derivePath(te).getWallet().getPrivateKey();return new Oi(he)}(D,te),be=function grindKey(D){const te=MAX_ALLOWED_VAL();let he=hashKeyWithIndex(D.toString("hex",64),0);for(let D=1;he.gte(te);D++)he=hashKeyWithIndex(he.toString("hex"),D);return he.umod(xv).toString("hex")}(ye);if(!function checkIfHashedKeyIsAboveLimit(D){const te=MAX_ALLOWED_VAL();return hashKeyWithIndex(D.toString("hex",64),0).gte(te)}(ye))return be;const ve=await async function getStarkPublicKeyFromImx(D){try{if(D){const te=(await Kt.get(`https://api.x.immutable.com/v1/users/${D}`)).data;if(te?.accounts&&te.accounts.length>0)return{starkPublicKey:te.accounts[0],accountNotFound:!1}}}catch(D){if(Kt.isAxiosError(D)&&"account_not_found"===D.response?.data.code)return{starkPublicKey:"",accountNotFound:!0}}}(he);if(void 0===ve)throw new Error("Error fetching stark public key from IMX");if(ve.accountNotFound)return be;const we=new Oi(Cs(ve.starkPublicKey),16);let _e=await createStarkSigner(be).getAddress();if(we.eq(new Oi(Cs(_e),16)))return be;const Pe=function grindKeyV201(D){const te=MAX_ALLOWED_VAL();let he=hashKeyWithIndex(D.toString("hex",64),0);for(let D=0;he.gte(te);D++)he=hashKeyWithIndex(he.toString("hex"),D);return he.umod(xv).toString("hex")}(ye);if(_e=await createStarkSigner(Pe).getAddress(),we.eq(new Oi(Cs(_e),16)))return Pe;const Ie=function getPrivateKeyFromPath$1(D,te){return _v.hdkey.fromMasterSeed(Buffer.from(D.slice(2),"hex")).derivePath(te).getWallet().getPrivateKeyString()}(D,te),Re=grindKey$1(Ie);if(_e=await createStarkSigner(Re).getAddress(),we.eq(new Oi(Cs(_e),16)))return Re;throw new Error("Can not deterministically generate stark private key - please contact support")}async function generateLegacyStarkPrivateKey(D){const te=(await D.getAddress()).toLowerCase(),he=splitSignature(await D.signMessage("Only sign this request if you’ve initiated an action with Immutable X.")).s,ye=function getAccountPath(D,te,he,ye){const be=Rd.sha256().update(D).digest("hex"),ve=Rd.sha256().update(te).digest("hex");return`m/2645'/${getIntFromBits(be,-31)}'/${getIntFromBits(ve,-31)}'/${getIntFromBits(he,-31)}'/${getIntFromBits(he,-62,-31)}'/${ye}`}("starkex","immutablex",te,"1");return(await getKeyFromPath(he,ye,te)).padStart(64,"0")}function importRecoveryParam$1(D){return D.trim()?-1!==new Oi(D,16).cmp(new Oi(27))?new Oi(D,16).sub(new Oi(27)).toNumber():new Oi(D,16).toNumber():void 0}function deserializeSignature$1(D,te=64){return D=Cs(D),{r:new Oi(D.substring(0,te),"hex"),s:new Oi(D.substring(te,2*te),"hex"),recoveryParam:importRecoveryParam$1(D.substring(2*te,2*te+2))}}async function signRaw$1(D,te){return function serializeEthSignature$1(D){return Is(Ss(D.r.toString(16),64)+Ss(D.s.toString(16),64)+Ss(D.recoveryParam?.toString(16)||"",2))}(deserializeSignature$1(await te.signMessage(D)))}async function generateIMXAuthorisationHeaders(D){const te=Math.floor(Date.now()/1e3).toString();return{timestamp:te,signature:await signRaw$1(te,D)}}function serializePackedSignature(D,te){return Rs(Ss(D.r.toString(16),64)+Ss(D.s.toString(16),64,"0")+Ss(new Oi(Cs(te),"hex").toString(16),64,"0"))}async function signRegisterEthAddress(D,te,he){const ye=keccak256$2(["string","address","uint256"],["UserRegistration:",te,he]),be=new Oi(Cs(ye),16).mod(xv);return serializePackedSignature(deserializeSignature$1(await D.signMessage(be.toString(16))),Rs(await D.getYCoordinate()))}class Workflows{config;mintsApi;projectsApi;collectionsApi;metadataApi;metadataRefreshesApi;exchangesApi;isChainValid(D){return D===this.config.ethConfiguration.chainID}constructor(D,te,he,ye,be,ve,we){this.config=D,this.config=D,this.collectionsApi=te,this.exchangesApi=he,this.metadataApi=ye,this.metadataRefreshesApi=be,this.mintsApi=ve,this.projectsApi=we}async validateChain(D){const te=await D.getChainId();if(!this.isChainValid(te))throw new Error("The wallet used for this operation is not from the correct network.")}async getStarkExContractVersion(){const D={baseURL:`${this.config.apiConfiguration.basePath}/v1`};return Kt.get("/starkex-contract-version",D)}async mint(D,te){return await this.validateChain(D),async function mintingWorkflow(D,te,he){const ye=te.users.map((D=>({ether_key:D.user,tokens:D.tokens.map((D=>({id:D.id,blueprint:D.blueprint,...D.royalties&&D.royalties.length>0&&{royalties:D.royalties.map((D=>({recipient:D.recipient,percentage:D.percentage})))}})))}))),{royalties:be}=te,ve={contract_address:te.contract_address,...be&&be.length>0&&{royalties:be.map((D=>({recipient:D.recipient,percentage:D.percentage})))},users:ye,auth_signature:""},we=keccak256$3(toUtf8Bytes$2(JSON.stringify(ve))),_e=await signRaw$1(we,D),Pe={mintTokensRequestV2:[{users:ve.users.map((D=>({user:D.ether_key,tokens:D.tokens}))),...be&&be.length>0&&{royalties:be},contract_address:te.contract_address,auth_signature:_e}]};return(await he.mintTokens(Pe)).data}(D,te,this.mintsApi)}async exchangeTransfer(D,te){return await this.validateChain(D.ethSigner),async function exchangeTransfersWorkflow({ethSigner:D,starkSigner:te,request:he,exchangesApi:ye}){const be=await D.getAddress(),ve=he.amount,we=await ye.getExchangeSignableTransfer({id:he.transactionID,getSignableTransferRequest:{sender:be,token:convertToSignableToken$1(he),amount:ve,receiver:he.receiver}}),{signable_message:_e,payload_hash:Pe}=we.data,Ie=await signRaw$1(_e,D),Re=await te.signMessage(Pe),ke={sender_stark_key:we.data.sender_stark_key,sender_vault_id:we.data.sender_vault_id,receiver_stark_key:we.data.receiver_stark_key,receiver_vault_id:we.data.receiver_vault_id,asset_id:we.data.asset_id,amount:we.data.amount,nonce:we.data.nonce,expiration_timestamp:we.data.expiration_timestamp,stark_signature:Re},Oe=await ye.createExchangeTransfer({id:he.transactionID,createTransferRequest:ke,xImxEthAddress:be,xImxEthSignature:Ie});return{sent_signature:Oe?.data.sent_signature,status:Oe?.data.status?.toString(),time:Oe?.data.time,transfer_id:Oe?.data.transfer_id}}({...D,request:te,exchangesApi:this.exchangesApi})}async getProject(D,te){const he=await generateIMXAuthorisationHeaders(D);return this.projectsApi.getProject({id:te,iMXSignature:he.signature,iMXTimestamp:he.timestamp})}async createCollection(D,te){const he=await generateIMXAuthorisationHeaders(D);return this.collectionsApi.createCollection({iMXSignature:he.signature,iMXTimestamp:he.timestamp,createCollectionRequest:te})}async updateCollection(D,te,he){const ye=await generateIMXAuthorisationHeaders(D);return this.collectionsApi.updateCollection({iMXSignature:ye.signature,iMXTimestamp:ye.timestamp,address:te,updateCollectionRequest:he})}async addMetadataSchemaToCollection(D,te,he){const ye=await generateIMXAuthorisationHeaders(D);return this.metadataApi.addMetadataSchemaToCollection({iMXSignature:ye.signature,iMXTimestamp:ye.timestamp,addMetadataSchemaToCollectionRequest:he,address:te})}async updateMetadataSchemaByName(D,te,he,ye){const be=await generateIMXAuthorisationHeaders(D);return this.metadataApi.updateMetadataSchemaByName({iMXSignature:be.signature,iMXTimestamp:be.timestamp,address:te,name:he,metadataSchemaRequest:ye})}async listMetadataRefreshes(D,te,he,ye){const be=await generateIMXAuthorisationHeaders(D),ve=await D.getAddress();return this.metadataRefreshesApi.getAListOfMetadataRefreshes({xImxEthSignature:be.signature,xImxEthTimestamp:be.timestamp,xImxEthAddress:ve,collectionAddress:te,pageSize:he,cursor:ye})}async getMetadataRefreshErrors(D,te,he,ye){const be=await generateIMXAuthorisationHeaders(D),ve=await D.getAddress();return this.metadataRefreshesApi.getMetadataRefreshErrors({xImxEthSignature:be.signature,xImxEthTimestamp:be.timestamp,xImxEthAddress:ve,refreshId:te,pageSize:he,cursor:ye})}async getMetadataRefreshResults(D,te){const he=await generateIMXAuthorisationHeaders(D),ye=await D.getAddress();return this.metadataRefreshesApi.getMetadataRefreshResults({xImxEthSignature:he.signature,xImxEthTimestamp:he.timestamp,xImxEthAddress:ye,refreshId:te})}async createMetadataRefresh(D,te){const he=await generateIMXAuthorisationHeaders(D),ye=await D.getAddress();return this.metadataRefreshesApi.requestAMetadataRefresh({xImxEthSignature:he.signature,xImxEthTimestamp:he.timestamp,xImxEthAddress:ye,createMetadataRefreshRequest:te})}}class IMXClient{immutableX;imxConfig;assetApi;balanceApi;collectionApi;depositsApi;encodingApi;exchangeApi;metadataApi;metadataRefreshesApi;mintsApi;nftCheckoutPrimaryApi;ordersApi;projectsApi;tokensApi;tradesApi;transfersApi;usersApi;withdrawalsApi;workflows;constructor(D){this.imxConfig=new ImxConfiguration(D),this.immutableX=new ImxApiClients(this.imxConfig.immutableXConfig.apiConfiguration),this.assetApi=this.immutableX.assetApi,this.balanceApi=this.immutableX.balanceApi,this.collectionApi=this.immutableX.collectionApi,this.depositsApi=this.immutableX.depositsApi,this.encodingApi=this.immutableX.encodingApi,this.exchangeApi=this.immutableX.exchangeApi,this.metadataApi=this.immutableX.metadataApi,this.metadataRefreshesApi=this.immutableX.metadataRefreshesApi,this.mintsApi=this.immutableX.mintsApi,this.nftCheckoutPrimaryApi=this.immutableX.nftCheckoutPrimaryApi,this.ordersApi=this.immutableX.ordersApi,this.projectsApi=this.immutableX.projectsApi,this.tokensApi=this.immutableX.tokensApi,this.tradesApi=this.immutableX.tradesApi,this.transfersApi=this.immutableX.transfersApi,this.usersApi=this.immutableX.usersApi,this.withdrawalsApi=this.immutableX.withdrawalsApi,this.workflows=new Workflows(this.imxConfig.immutableXConfig,this.immutableX.collectionApi,this.immutableX.exchangeApi,this.immutableX.metadataApi,this.immutableX.metadataRefreshesApi,this.immutableX.mintsApi,this.immutableX.projectsApi)}getDeposit(D){return this.depositsApi.getDeposit(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listDeposits(D){return this.depositsApi.listDeposits(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getUser(D){return this.usersApi.getUsers({user:D}).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getAsset(D){return this.assetApi.getAsset(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listAssets(D){return this.assetApi.listAssets(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}createCollection(D,te){return this.workflows.createCollection(D,te).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getCollection(D){return this.collectionApi.getCollection(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listCollectionFilters(D){return this.collectionApi.listCollectionFilters(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listCollections(D){return this.collectionApi.listCollections(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}updateCollection(D,te,he){return this.workflows.updateCollection(D,te,he).then((D=>D.data)).catch((D=>{throw formatError(D)}))}addMetadataSchemaToCollection(D,te,he){return this.workflows.addMetadataSchemaToCollection(D,te,he).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getMetadataSchema(D){return this.metadataApi.getMetadataSchema(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}updateMetadataSchemaByName(D,te,he,ye){return this.workflows.updateMetadataSchemaByName(D,te,he,ye).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listMetadataRefreshes(D,te,he,ye){return this.workflows.listMetadataRefreshes(D,te,he,ye).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getMetadataRefreshErrors(D,te,he,ye){return this.workflows.getMetadataRefreshErrors(D,te,he,ye).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getMetadataRefreshResults(D,te){return this.workflows.getMetadataRefreshResults(D,te).then((D=>D.data)).catch((D=>{throw formatError(D)}))}createMetadataRefresh(D,te){return this.workflows.createMetadataRefresh(D,te).then((D=>D.data)).catch((D=>{throw formatError(D)}))}async getProject(D,te){return this.workflows.getProject(D,te).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getBalance(D){return this.balanceApi.getBalance(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listBalances(D){return this.balanceApi.listBalances(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getMint(D){return this.mintsApi.getMint(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listMints(D){return this.mintsApi.listMints(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}mint(D,te){return this.workflows.mint(D,te)}listWithdrawals(D){return this.withdrawalsApi.listWithdrawals(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getWithdrawal(D){return this.withdrawalsApi.getWithdrawal(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getOrder(D){return this.ordersApi.getOrderV3(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listOrders(D){return this.ordersApi.listOrdersV3(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getTrade(D){return this.tradesApi.getTradeV3(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listTrades(D){return this.tradesApi.listTradesV3(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getToken(D){return this.tokensApi.getToken(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listTokens(D){return this.tokensApi.listTokens(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getTransfer(D){return this.transfersApi.getTransfer(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}listTransfers(D){return this.transfersApi.listTransfers(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}createExchange(D){return this.exchangeApi.createExchange(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getExchange(D){return this.exchangeApi.getExchange(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getExchanges(D){return this.exchangeApi.getExchanges(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}exchangeTransfer(D,te){return this.workflows.exchangeTransfer(D,te)}createNftPrimary(D){return this.nftCheckoutPrimaryApi.createNftPrimary(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getCurrenciesNFTCheckoutPrimary(D){return this.nftCheckoutPrimaryApi.getCurrenciesNFTCheckoutPrimary(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getNftPrimaryTransaction(D){return this.nftCheckoutPrimaryApi.getNftPrimaryTransaction(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}getNftPrimaryTransactions(D){return this.nftCheckoutPrimaryApi.getNftPrimaryTransactions(D).then((D=>D.data)).catch((D=>{throw formatError(D)}))}}const Nv=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];const Mv=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"operator",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"owner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"_approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];const Bv=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"depositorEthKey",type:"address"},{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogDepositCancel",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogDepositCancelReclaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogDepositNftCancelReclaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"}],name:"LogFullWithdrawalRequest",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogMintWithdrawalPerformed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogMintableWithdrawalAllowed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"depositorEthKey",type:"address"},{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogNftDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogNftWithdrawalAllowed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"}],name:"LogNftWithdrawalPerformed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"sequenceNumber",type:"uint256"},{indexed:!1,internalType:"uint256",name:"batchId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultRoot",type:"uint256"},{indexed:!1,internalType:"uint256",name:"orderRoot",type:"uint256"}],name:"LogRootUpdate",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"stateTransitionFact",type:"bytes32"}],name:"LogStateTransitionFact",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"ethKey",type:"address"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"int256",name:"quantizedAmountChange",type:"int256"}],name:"LogVaultBalanceChangeApplied",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogWithdrawalAllowed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"}],name:"LogWithdrawalPerformed",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"announceAvailabilityVerifierRemovalIntent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"announceVerifierRemovalIntent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"depositCancel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"depositERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"depositEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"depositNft",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"depositNftReclaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"depositReclaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"escape",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"freezeRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"fullWithdrawalRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"assetType",type:"uint256"}],name:"getAssetInfo",outputs:[{internalType:"bytes",name:"assetInfo",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getCancellationRequest",outputs:[{internalType:"uint256",name:"request",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getDepositBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"}],name:"getEthKey",outputs:[{internalType:"address",name:"ethKey",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getFullWithdrawalRequest",outputs:[{internalType:"uint256",name:"res",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBatchId",outputs:[{internalType:"uint256",name:"batchId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOrderRoot",outputs:[{internalType:"uint256",name:"root",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOrderTreeHeight",outputs:[{internalType:"uint256",name:"height",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getQuantizedDepositBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"presumedAssetType",type:"uint256"}],name:"getQuantum",outputs:[{internalType:"uint256",name:"quantum",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getRegisteredAvailabilityVerifiers",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getRegisteredVerifiers",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getSequenceNumber",outputs:[{internalType:"uint256",name:"seq",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getVaultRoot",outputs:[{internalType:"uint256",name:"root",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getVaultTreeHeight",outputs:[{internalType:"uint256",name:"height",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"ownerKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"}],name:"getWithdrawalBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isAvailabilityVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"isFrozen",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isOperator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isTokenAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isUserAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"isVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"mainAcceptGovernance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"mainCancelNomination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"mainIsGovernor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"mainNominateNewGovernor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"mainRemoveGovernor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"registerAndDepositERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"registerAndDepositEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"string",name:"",type:"string"}],name:"registerAvailabilityVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"registerOperator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"registerToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"registerTokenAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"registerUser",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"registerUserAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"string",name:"",type:"string"}],name:"registerVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"removeAvailabilityVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"removeVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unFreeze",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"unregisterOperator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"unregisterTokenAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"unregisterUserAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256[]",name:"publicInput",type:"uint256[]"},{internalType:"uint256[]",name:"applicationData",type:"uint256[]"}],name:"updateState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"ownerKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"ownerKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"bytes",name:"mintingBlob",type:"bytes"}],name:"withdrawAndMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"ownerKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"withdrawNft",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],name:"withdrawNftTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],name:"withdrawTo",outputs:[],stateMutability:"nonpayable",type:"function"}];const Fv=[{inputs:[{internalType:"contract Core",name:"_imx",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"imx",outputs:[{internalType:"contract Core",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"}],name:"isRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"registerAndDepositNft",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"}],name:"registerAndWithdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"registerAndWithdrawNft",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"registerAndWithdrawNftTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"registerAndWithdrawTo",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"bytes",name:"mintingBlob",type:"bytes"}],name:"regsiterAndWithdrawAndMint",outputs:[],stateMutability:"nonpayable",type:"function"}],Dv="0x60806040523480156200001157600080fd5b5060405162001313380380620013138339818101604052810190620000379190620000fc565b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506200012e565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000b08262000083565b9050919050565b6000620000c482620000a3565b9050919050565b620000d681620000b7565b8114620000e257600080fd5b50565b600081519050620000f681620000cb565b92915050565b6000602082840312156200011557620001146200007e565b5b60006200012584828501620000e5565b91505092915050565b6111d5806200013e6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80634280d50a1161005b5780634280d50a146100ff5780634627d5981461011b578063579a698814610137578063ea864adf1461016757610088565b80630a9c3beb1461008d5780630f08025f146100a95780631259cc6c146100c7578063352eb84c146100e3575b600080fd5b6100a760048036038101906100a29190610a72565b610183565b005b6100b16102ae565b6040516100be9190610b8d565b60405180910390f35b6100e160048036038101906100dc9190610ba8565b6102d2565b005b6100fd60048036038101906100f89190610c57565b6103fd565b005b61011960048036038101906101149190610cf1565b610525565b005b61013560048036038101906101309190610da0565b610650565b005b610151600480360381019061014c9190610e3a565b610778565b60405161015e9190610e82565b60405180910390f35b610181600480360381019061017c9190610e9d565b61084a565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd2414d4888888886040518563ffffffff1660e01b81526004016101e29493929190610fa1565b600060405180830381600087803b1580156101fc57600080fd5b505af1158015610210573d6000803e3d6000fd5b5050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d91443b7878585856040518563ffffffff1660e01b81526004016102739493929190610fe1565b600060405180830381600087803b15801561028d57600080fd5b505af11580156102a1573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd2414d4888888886040518563ffffffff1660e01b81526004016103319493929190610fa1565b600060405180830381600087803b15801561034b57600080fd5b505af115801561035f573d6000803e3d6000fd5b5050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ebef0fd0878585856040518563ffffffff1660e01b81526004016103c29493929190611021565b600060405180830381600087803b1580156103dc57600080fd5b505af11580156103f0573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd2414d4878787876040518563ffffffff1660e01b815260040161045c9493929190610fa1565b600060405180830381600087803b15801561047657600080fd5b505af115801561048a573d6000803e3d6000fd5b5050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663019b417a8684846040518463ffffffff1660e01b81526004016104eb93929190611066565b600060405180830381600087803b15801561050557600080fd5b505af1158015610519573d6000803e3d6000fd5b50505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd2414d4888888886040518563ffffffff1660e01b81526004016105849493929190610fa1565b600060405180830381600087803b15801561059e57600080fd5b505af11580156105b2573d6000803e3d6000fd5b5050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ae1cdde6878585856040518563ffffffff1660e01b8152600401610615949392919061109d565b600060405180830381600087803b15801561062f57600080fd5b505af1158015610643573d6000803e3d6000fd5b5050505050505050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd2414d4878787876040518563ffffffff1660e01b81526004016106af9493929190610fa1565b600060405180830381600087803b1580156106c957600080fd5b505af11580156106dd573d6000803e3d6000fd5b5050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166314cd70e48684846040518463ffffffff1660e01b815260040161073e939291906110e2565b600060405180830381600087803b15801561075857600080fd5b505af115801561076c573d6000803e3d6000fd5b50505050505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631dbd1da7846040518263ffffffff1660e01b81526004016107ea9190611119565b602060405180830381865afa158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190611149565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd2414d4868686866040518563ffffffff1660e01b81526004016108a99493929190610fa1565b600060405180830381600087803b1580156108c357600080fd5b505af11580156108d7573d6000803e3d6000fd5b5050505060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663441a3e7085836040518363ffffffff1660e01b8152600401610936929190611176565b600060405180830381600087803b15801561095057600080fd5b505af1158015610964573d6000803e3d6000fd5b505050505050505050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109a482610979565b9050919050565b6109b481610999565b81146109bf57600080fd5b50565b6000813590506109d1816109ab565b92915050565b6000819050919050565b6109ea816109d7565b81146109f557600080fd5b50565b600081359050610a07816109e1565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112610a3257610a31610a0d565b5b8235905067ffffffffffffffff811115610a4f57610a4e610a12565b5b602083019150836001820283011115610a6b57610a6a610a17565b5b9250929050565b600080600080600080600060a0888a031215610a9157610a9061096f565b5b6000610a9f8a828b016109c2565b9750506020610ab08a828b016109f8565b965050604088013567ffffffffffffffff811115610ad157610ad0610974565b5b610add8a828b01610a1c565b95509550506060610af08a828b016109f8565b935050608088013567ffffffffffffffff811115610b1157610b10610974565b5b610b1d8a828b01610a1c565b925092505092959891949750929550565b6000819050919050565b6000610b53610b4e610b4984610979565b610b2e565b610979565b9050919050565b6000610b6582610b38565b9050919050565b6000610b7782610b5a565b9050919050565b610b8781610b6c565b82525050565b6000602082019050610ba26000830184610b7e565b92915050565b600080600080600080600060c0888a031215610bc757610bc661096f565b5b6000610bd58a828b016109c2565b9750506020610be68a828b016109f8565b965050604088013567ffffffffffffffff811115610c0757610c06610974565b5b610c138a828b01610a1c565b95509550506060610c268a828b016109f8565b9350506080610c378a828b016109f8565b92505060a0610c488a828b016109c2565b91505092959891949750929550565b60008060008060008060a08789031215610c7457610c7361096f565b5b6000610c8289828a016109c2565b9650506020610c9389828a016109f8565b955050604087013567ffffffffffffffff811115610cb457610cb3610974565b5b610cc089828a01610a1c565b94509450506060610cd389828a016109f8565b9250506080610ce489828a016109f8565b9150509295509295509295565b600080600080600080600060c0888a031215610d1057610d0f61096f565b5b6000610d1e8a828b016109c2565b9750506020610d2f8a828b016109f8565b965050604088013567ffffffffffffffff811115610d5057610d4f610974565b5b610d5c8a828b01610a1c565b95509550506060610d6f8a828b016109f8565b9350506080610d808a828b016109f8565b92505060a0610d918a828b016109f8565b91505092959891949750929550565b60008060008060008060a08789031215610dbd57610dbc61096f565b5b6000610dcb89828a016109c2565b9650506020610ddc89828a016109f8565b955050604087013567ffffffffffffffff811115610dfd57610dfc610974565b5b610e0989828a01610a1c565b94509450506060610e1c89828a016109f8565b9250506080610e2d89828a016109c2565b9150509295509295509295565b600060208284031215610e5057610e4f61096f565b5b6000610e5e848285016109f8565b91505092915050565b60008115159050919050565b610e7c81610e67565b82525050565b6000602082019050610e976000830184610e73565b92915050565b600080600080600060808688031215610eb957610eb861096f565b5b6000610ec7888289016109c2565b9550506020610ed8888289016109f8565b945050604086013567ffffffffffffffff811115610ef957610ef8610974565b5b610f0588828901610a1c565b93509350506060610f18888289016109f8565b9150509295509295909350565b610f2e81610999565b82525050565b610f3d816109d7565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000601f19601f8301169050919050565b6000610f808385610f43565b9350610f8d838584610f54565b610f9683610f63565b840190509392505050565b6000606082019050610fb66000830187610f25565b610fc36020830186610f34565b8181036040830152610fd6818486610f74565b905095945050505050565b6000606082019050610ff66000830187610f34565b6110036020830186610f34565b8181036040830152611016818486610f74565b905095945050505050565b60006080820190506110366000830187610f34565b6110436020830186610f34565b6110506040830185610f34565b61105d6060830184610f25565b95945050505050565b600060608201905061107b6000830186610f34565b6110886020830185610f34565b6110956040830184610f34565b949350505050565b60006080820190506110b26000830187610f34565b6110bf6020830186610f34565b6110cc6040830185610f34565b6110d96060830184610f34565b95945050505050565b60006060820190506110f76000830186610f34565b6111046020830185610f34565b6111116040830184610f25565b949350505050565b600060208201905061112e6000830184610f34565b92915050565b600081519050611143816109ab565b92915050565b60006020828403121561115f5761115e61096f565b5b600061116d84828501611134565b91505092915050565b600060408201905061118b6000830185610f34565b6111986020830184610f34565b939250505056fea2646970667358221220ec3495278afe78566e74b538d48e94b094c110ca38b03493e90e5e382cc99d0264736f6c63430008130033";const Lv=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"implementation",type:"address"},{indexed:!1,internalType:"uint256",name:"updatedActivationTime",type:"uint256"}],name:"ImplementationActivationRescheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newDefaultLockTime",type:"uint256"}],name:"LogDefaultVaultWithdrawalLockSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"depositorEthKey",type:"address"},{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogDepositCancel",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogDepositCancelReclaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogDepositNftCancelReclaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"ethKey",type:"address"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogDepositToVault",type:"event"},{anonymous:!1,inputs:[],name:"LogFrozen",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"}],name:"LogFullWithdrawalRequest",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogMintWithdrawalPerformed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogMintableWithdrawalAllowed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"acceptedGovernor",type:"address"}],name:"LogNewGovernorAccepted",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"depositorEthKey",type:"address"},{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogNftDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"}],name:"LogNftWithdrawalAllowed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"}],name:"LogNftWithdrawalPerformed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"nominatedGovernor",type:"address"}],name:"LogNominatedGovernor",type:"event"},{anonymous:!1,inputs:[],name:"LogNominationCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"operator",type:"address"}],name:"LogOperatorAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"operator",type:"address"}],name:"LogOperatorRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"entry",type:"address"},{indexed:!1,internalType:"string",name:"entryId",type:"string"}],name:"LogRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"entry",type:"address"},{indexed:!1,internalType:"string",name:"entryId",type:"string"}],name:"LogRemovalIntent",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"entry",type:"address"},{indexed:!1,internalType:"string",name:"entryId",type:"string"}],name:"LogRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"removedGovernor",type:"address"}],name:"LogRemovedGovernor",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"sequenceNumber",type:"uint256"},{indexed:!1,internalType:"uint256",name:"batchId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultRoot",type:"uint256"},{indexed:!1,internalType:"uint256",name:"orderRoot",type:"uint256"}],name:"LogRootUpdate",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"stateTransitionFact",type:"bytes32"}],name:"LogStateTransitionFact",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAdmin",type:"address"}],name:"LogTokenAdminAdded",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"tokenAdmin",type:"address"}],name:"LogTokenAdminRemoved",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"bytes",name:"assetInfo",type:"bytes"},{indexed:!1,internalType:"uint256",name:"quantum",type:"uint256"}],name:"LogTokenRegistered",type:"event"},{anonymous:!1,inputs:[],name:"LogUnFrozen",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"ethKey",type:"address"},{indexed:!1,internalType:"uint256",name:"starkKey",type:"uint256"},{indexed:!1,internalType:"address",name:"sender",type:"address"}],name:"LogUserRegistered",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"ethKey",type:"address"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"int256",name:"quantizedAmountChange",type:"int256"}],name:"LogVaultBalanceChangeApplied",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"ethKey",type:"address"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"timeRelease",type:"uint256"}],name:"LogVaultWithdrawalLockSet",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogWithdrawalAllowed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"ethKey",type:"address"},{indexed:!1,internalType:"uint256",name:"assetId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vaultId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"LogWithdrawalFromVault",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"ownerKey",type:"uint256"},{indexed:!1,internalType:"uint256",name:"assetType",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonQuantizedAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"quantizedAmount",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"}],name:"LogWithdrawalPerformed",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"DEPOSIT_CANCEL_DELAY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"FREEZE_GRACE_PERIOD",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAIN_GOVERNANCE_INFO_TAG",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_FORCED_ACTIONS_REQS_PER_BLOCK",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAX_VERIFIER_COUNT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"STARKEX_MAX_DEFAULT_VAULT_LOCK",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNFREEZE_DELAY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"VERIFIER_REMOVAL_DELAY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"VERSION",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"verifier",type:"address"}],name:"announceAvailabilityVerifierRemovalIntent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"verifier",type:"address"}],name:"announceVerifierRemovalIntent",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"defaultVaultWithdrawalLock",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"depositCancel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"depositERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"depositERC20ToVault",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"depositEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"depositEthToVault",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"depositNft",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"depositNftReclaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"depositReclaim",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"escape",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"freezeRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"fullWithdrawalRequest",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"getActionCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"actionIndex",type:"uint256"}],name:"getActionHashByIndex",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"assetType",type:"uint256"}],name:"getAssetInfo",outputs:[{internalType:"bytes",name:"assetInfo",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getCancellationRequest",outputs:[{internalType:"uint256",name:"request",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getDepositBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"ownerKey",type:"uint256"}],name:"getEthKey",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getFullWithdrawalRequest",outputs:[{internalType:"uint256",name:"res",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBatchId",outputs:[{internalType:"uint256",name:"batchId",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOrderRoot",outputs:[{internalType:"uint256",name:"root",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getOrderTreeHeight",outputs:[{internalType:"uint256",name:"height",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getQuantizedDepositBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getQuantizedVaultBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"presumedAssetType",type:"uint256"}],name:"getQuantum",outputs:[{internalType:"uint256",name:"quantum",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getRegisteredAvailabilityVerifiers",outputs:[{internalType:"address[]",name:"_verifers",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getRegisteredVerifiers",outputs:[{internalType:"address[]",name:"_verifers",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getSequenceNumber",outputs:[{internalType:"uint256",name:"seq",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getVaultBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getVaultRoot",outputs:[{internalType:"uint256",name:"root",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getVaultTreeHeight",outputs:[{internalType:"uint256",name:"height",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"getVaultWithdrawalLock",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"ownerKey",type:"uint256"},{internalType:"uint256",name:"assetId",type:"uint256"}],name:"getWithdrawalBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"assetType",type:"uint256"}],name:"isAssetRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"verifierAddress",type:"address"}],name:"isAvailabilityVerifier",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"isFrozen",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"testedOperator",type:"address"}],name:"isOperator",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"isStrictVaultBalancePolicy",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"testedAdmin",type:"address"}],name:"isTokenAdmin",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"isVaultLocked",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"verifierAddress",type:"address"}],name:"isVerifier",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"lockTime",type:"uint256"}],name:"lockVault",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"mainAcceptGovernance",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"mainCancelNomination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"testGovernor",type:"address"}],name:"mainIsGovernor",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newGovernor",type:"address"}],name:"mainNominateNewGovernor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"governorForRemoval",type:"address"}],name:"mainRemoveGovernor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"orderRegistryAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"registerAndDepositERC20",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"}],name:"registerAndDepositEth",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"verifier",type:"address"},{internalType:"string",name:"identifier",type:"string"}],name:"registerAvailabilityVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"starkSignature",type:"bytes"}],name:"registerEthAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOperator",type:"address"}],name:"registerOperator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"starkSignature",type:"bytes"}],name:"registerSender",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"bytes",name:"assetInfo",type:"bytes"}],name:"registerToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"bytes",name:"assetInfo",type:"bytes"},{internalType:"uint256",name:"quantum",type:"uint256"}],name:"registerToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newAdmin",type:"address"}],name:"registerTokenAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"verifier",type:"address"},{internalType:"string",name:"identifier",type:"string"}],name:"registerVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"verifier",type:"address"}],name:"removeAvailabilityVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"verifier",type:"address"}],name:"removeVerifier",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newDefaultTime",type:"uint256"}],name:"setDefaultVaultWithdrawalLock",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unFreeze",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"removedOperator",type:"address"}],name:"unregisterOperator",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oldAdmin",type:"address"}],name:"unregisterTokenAdmin",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"implementation",type:"address"},{internalType:"bytes",name:"data",type:"bytes"},{internalType:"bool",name:"finalize",type:"bool"}],name:"updateImplementationActivationTime",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256[]",name:"publicInput",type:"uint256[]"},{internalType:"uint256[]",name:"applicationData",type:"uint256[]"}],name:"updateState",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"ownerKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"ownerKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"bytes",name:"mintingBlob",type:"bytes"}],name:"withdrawAndMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"assetId",type:"uint256"},{internalType:"uint256",name:"vaultId",type:"uint256"},{internalType:"uint256",name:"quantizedAmount",type:"uint256"}],name:"withdrawFromVault",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"ownerKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"withdrawNft",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];const Uv=[{inputs:[{internalType:"address payable",name:"_imx",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"ethKey",type:"uint256"},{internalType:"uint256",name:"starkKey",type:"uint256"}],name:"NoFundsToWithdraw",type:"error"},{inputs:[],name:"getVersion",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"imx",outputs:[{internalType:"contract CoreV4",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"starkKey",type:"uint256"}],name:"isRegistered",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"}],name:"registerAndWithdrawAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"registerAndWithdrawNft",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"ethKey",type:"address"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"uint256",name:"assetType",type:"uint256"},{internalType:"bytes",name:"mintingBlob",type:"bytes"}],name:"registerWithdrawAndMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"ethKey",type:"uint256"},{internalType:"uint256",name:"starkKey",type:"uint256"},{internalType:"uint256",name:"assetType",type:"uint256"}],name:"withdrawAll",outputs:[],stateMutability:"nonpayable",type:"function"}],$v="0x60a06040523480156200001157600080fd5b50604051620012bc380380620012bc8339818101604052810190620000379190620000dc565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506200010e565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000a48262000077565b9050919050565b620000b68162000097565b8114620000c257600080fd5b50565b600081519050620000d681620000ab565b92915050565b600060208284031215620000f557620000f462000072565b5b60006200010584828501620000c5565b91505092915050565b608051611145620001776000396000818161016d01528181610229015281816102c2015281816102f30152818161038501528181610429015281816104bb0152818161056e01528181610629015281816106c9015281816107c4015261085b01526111456000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063352eb84c1161005b578063352eb84c146100da57806343fa186d146100f6578063579a698814610112578063d2fc99b5146101425761007d565b8063022cabbc146100825780630d8e6e2c1461009e5780630f08025f146100bc575b600080fd5b61009c600480360381019061009791906109fb565b61015e565b005b6100a6610225565b6040516100b39190610b13565b60405180910390f35b6100c46102c0565b6040516100d19190610b94565b60405180910390f35b6100f460048036038101906100ef9190610baf565b6102e4565b005b610110600480360381019061010b9190610c49565b61041a565b005b61012c60048036038101906101279190610d05565b610553565b6040516101399190610d4d565b60405180910390f35b61015c60048036038101906101579190610d68565b610625565b005b61016784610553565b6101fd577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bea84187868686866040518563ffffffff1660e01b81526004016101ca9493929190610e26565b600060405180830381600087803b1580156101e457600080fd5b505af11580156101f8573d6000803e3d6000fd5b505050505b61021e8573ffffffffffffffffffffffffffffffffffffffff168583610625565b5050505050565b60607f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ffa1ad746040518163ffffffff1660e01b8152600401600060405180830381865afa158015610292573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906102bb9190610f87565b905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102ed85610553565b610383577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bea84187878787876040518563ffffffff1660e01b81526004016103509493929190610e26565b600060405180830381600087803b15801561036a57600080fd5b505af115801561037e573d6000803e3d6000fd5b505050505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663019b417a8684846040518463ffffffff1660e01b81526004016103e093929190610fd0565b600060405180830381600087803b1580156103fa57600080fd5b505af115801561040e573d6000803e3d6000fd5b50505050505050505050565b61042386610553565b6104b9577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663bea84187888888886040518563ffffffff1660e01b81526004016104869493929190610e26565b600060405180830381600087803b1580156104a057600080fd5b505af11580156104b4573d6000803e3d6000fd5b505050505b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d91443b7878585856040518563ffffffff1660e01b81526004016105189493929190611007565b600060405180830381600087803b15801561053257600080fd5b505af1158015610546573d6000803e3d6000fd5b5050505050505050505050565b60008073ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16631dbd1da7846040518263ffffffff1660e01b81526004016105c59190611047565b602060405180830381865afa1580156105e2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106069190611077565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ec3161b085846040518363ffffffff1660e01b81526004016106829291906110a4565b602060405180830381865afa15801561069f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106c391906110e2565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ec3161b085856040518363ffffffff1660e01b81526004016107229291906110a4565b602060405180830381865afa15801561073f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076391906110e2565b90506000821480156107755750600081145b156107b95784846040517f1362cdf20000000000000000000000000000000000000000000000000000000081526004016107b09291906110a4565b60405180910390fd5b6000821115610850577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663441a3e7086856040518363ffffffff1660e01b815260040161081d9291906110a4565b600060405180830381600087803b15801561083757600080fd5b505af115801561084b573d6000803e3d6000fd5b505050505b60008111156108e7577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663441a3e7085856040518363ffffffff1660e01b81526004016108b49291906110a4565b600060405180830381600087803b1580156108ce57600080fd5b505af11580156108e2573d6000803e3d6000fd5b505050505b5050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061092d82610902565b9050919050565b61093d81610922565b811461094857600080fd5b50565b60008135905061095a81610934565b92915050565b6000819050919050565b61097381610960565b811461097e57600080fd5b50565b6000813590506109908161096a565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126109bb576109ba610996565b5b8235905067ffffffffffffffff8111156109d8576109d761099b565b5b6020830191508360018202830111156109f4576109f36109a0565b5b9250929050565b600080600080600060808688031215610a1757610a166108f8565b5b6000610a258882890161094b565b9550506020610a3688828901610981565b945050604086013567ffffffffffffffff811115610a5757610a566108fd565b5b610a63888289016109a5565b93509350506060610a7688828901610981565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60005b83811015610abd578082015181840152602081019050610aa2565b60008484015250505050565b6000601f19601f8301169050919050565b6000610ae582610a83565b610aef8185610a8e565b9350610aff818560208601610a9f565b610b0881610ac9565b840191505092915050565b60006020820190508181036000830152610b2d8184610ada565b905092915050565b6000819050919050565b6000610b5a610b55610b5084610902565b610b35565b610902565b9050919050565b6000610b6c82610b3f565b9050919050565b6000610b7e82610b61565b9050919050565b610b8e81610b73565b82525050565b6000602082019050610ba96000830184610b85565b92915050565b60008060008060008060a08789031215610bcc57610bcb6108f8565b5b6000610bda89828a0161094b565b9650506020610beb89828a01610981565b955050604087013567ffffffffffffffff811115610c0c57610c0b6108fd565b5b610c1889828a016109a5565b94509450506060610c2b89828a01610981565b9250506080610c3c89828a01610981565b9150509295509295509295565b600080600080600080600060a0888a031215610c6857610c676108f8565b5b6000610c768a828b0161094b565b9750506020610c878a828b01610981565b965050604088013567ffffffffffffffff811115610ca857610ca76108fd565b5b610cb48a828b016109a5565b95509550506060610cc78a828b01610981565b935050608088013567ffffffffffffffff811115610ce857610ce76108fd565b5b610cf48a828b016109a5565b925092505092959891949750929550565b600060208284031215610d1b57610d1a6108f8565b5b6000610d2984828501610981565b91505092915050565b60008115159050919050565b610d4781610d32565b82525050565b6000602082019050610d626000830184610d3e565b92915050565b600080600060608486031215610d8157610d806108f8565b5b6000610d8f86828701610981565b9350506020610da086828701610981565b9250506040610db186828701610981565b9150509250925092565b610dc481610922565b82525050565b610dd381610960565b82525050565b600082825260208201905092915050565b82818337600083830152505050565b6000610e058385610dd9565b9350610e12838584610dea565b610e1b83610ac9565b840190509392505050565b6000606082019050610e3b6000830187610dbb565b610e486020830186610dca565b8181036040830152610e5b818486610df9565b905095945050505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610ea382610ac9565b810181811067ffffffffffffffff82111715610ec257610ec1610e6b565b5b80604052505050565b6000610ed56108ee565b9050610ee18282610e9a565b919050565b600067ffffffffffffffff821115610f0157610f00610e6b565b5b610f0a82610ac9565b9050602081019050919050565b6000610f2a610f2584610ee6565b610ecb565b905082815260208101848484011115610f4657610f45610e66565b5b610f51848285610a9f565b509392505050565b600082601f830112610f6e57610f6d610996565b5b8151610f7e848260208601610f17565b91505092915050565b600060208284031215610f9d57610f9c6108f8565b5b600082015167ffffffffffffffff811115610fbb57610fba6108fd565b5b610fc784828501610f59565b91505092915050565b6000606082019050610fe56000830186610dca565b610ff26020830185610dca565b610fff6040830184610dca565b949350505050565b600060608201905061101c6000830187610dca565b6110296020830186610dca565b818103604083015261103c818486610df9565b905095945050505050565b600060208201905061105c6000830184610dca565b92915050565b60008151905061107181610934565b92915050565b60006020828403121561108d5761108c6108f8565b5b600061109b84828501611062565b91505092915050565b60006040820190506110b96000830185610dca565b6110c66020830184610dca565b9392505050565b6000815190506110dc8161096a565b92915050565b6000602082840312156110f8576110f76108f8565b5b6000611106848285016110cd565b9150509291505056fea2646970667358221220c33e1830b470bf1e012ac831ec80242d6268e5e6e990b7e1574a230f71533ebd64736f6c63430008130033";var qv=Object.freeze({__proto__:null,Core:class Core__factory{static abi=Bv;static createInterface(){return new Xo(Bv)}static connect(D,te){return new fu(D,Bv,te)}},CoreV4:class CoreV4__factory{static abi=Lv;static createInterface(){return new Xo(Lv)}static connect(D,te){return new fu(D,Lv,te)}},IERC20:class IERC20__factory{static abi=Nv;static createInterface(){return new Xo(Nv)}static connect(D,te){return new fu(D,Nv,te)}},IERC721:class IERC721__factory{static abi=Mv;static createInterface(){return new Xo(Mv)}static connect(D,te){return new fu(D,Mv,te)}},Registration:class Registration__factory extends ContractFactory{constructor(...D){D.length>1?super(...D):super(Fv,Dv,D[0])}deploy(D,te){return super.deploy(D,te||{})}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}attach(D){return super.attach(D)}connect(D){return super.connect(D)}static bytecode=Dv;static abi=Fv;static createInterface(){return new Xo(Fv)}static connect(D,te){return new fu(D,Fv,te)}},RegistrationV4:class RegistrationV4__factory extends ContractFactory{constructor(...D){D.length>1?super(...D):super(Uv,$v,D[0])}deploy(D,te){return super.deploy(D,te||{})}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}attach(D){return super.attach(D)}connect(D){return super.connect(D)}static bytecode=$v;static abi=Uv;static createInterface(){return new Xo(Uv)}static connect(D,te){return new fu(D,Uv,te)}}});class AssetsApi extends Ca.AssetsApi{}class BalancesApi extends Ca.BalancesApi{}class CollectionsApi extends Ca.CollectionsApi{}class DepositsApi extends Ca.DepositsApi{}class EncodingApi extends Ca.EncodingApi{}class ExchangesApi extends Ca.ExchangesApi{}class MintsApi extends Ca.MintsApi{}class MetadataApi extends Ca.MetadataApi{}class MetadataRefreshesApi extends Ca.MetadataRefreshesApi{}class NftCheckoutPrimaryApi extends Ca.NftCheckoutPrimaryApi{}class OrdersApi extends Ca.OrdersApi{}class ProjectsApi extends Ca.ProjectsApi{}class TokensApi extends Ca.TokensApi{}class TradesApi extends Ca.TradesApi{}class TransfersApi extends Ca.TransfersApi{}class UsersApi extends Ca.UsersApi{}class WithdrawalsApi extends Ca.WithdrawalsApi{}const Gv=Ca.MetadataSchemaRequestTypeEnum;function commonjsRequire(D){throw new Error('Could not dynamically require "'+D+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var jv={exports:{}};!function(D,te){D.exports=function(){var D=D||function(D,te){var he;if("undefined"!=typeof window&&window.crypto&&(he=window.crypto),"undefined"!=typeof self&&self.crypto&&(he=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(he=globalThis.crypto),!he&&"undefined"!=typeof window&&window.msCrypto&&(he=window.msCrypto),!he&&void 0!==rn&&rn.crypto&&(he=rn.crypto),!he)try{he=Af}catch(D){}var cryptoSecureRandomInt=function(){if(he){if("function"==typeof he.getRandomValues)try{return he.getRandomValues(new Uint32Array(1))[0]}catch(D){}if("function"==typeof he.randomBytes)try{return he.randomBytes(4).readInt32LE()}catch(D){}}throw new Error("Native crypto module could not be used to get secure random number.")},ye=Object.create||function(){function F(){}return function(D){var te;return F.prototype=D,te=new F,F.prototype=null,te}}(),be={},ve=be.lib={},we=ve.Base={extend:function(D){var te=ye(this);return D&&te.mixIn(D),te.hasOwnProperty("init")&&this.init!==te.init||(te.init=function(){te.$super.init.apply(this,arguments)}),te.init.prototype=te,te.$super=this,te},create:function(){var D=this.extend();return D.init.apply(D,arguments),D},init:function(){},mixIn:function(D){for(var te in D)D.hasOwnProperty(te)&&(this[te]=D[te]);D.hasOwnProperty("toString")&&(this.toString=D.toString)},clone:function(){return this.init.prototype.extend(this)}},_e=ve.WordArray=we.extend({init:function(D,he){D=this.words=D||[],this.sigBytes=he!=te?he:4*D.length},toString:function(D){return(D||Ie).stringify(this)},concat:function(D){var te=this.words,he=D.words,ye=this.sigBytes,be=D.sigBytes;if(this.clamp(),ye%4)for(var ve=0;ve<be;ve++){var we=he[ve>>>2]>>>24-ve%4*8&255;te[ye+ve>>>2]|=we<<24-(ye+ve)%4*8}else for(var _e=0;_e<be;_e+=4)te[ye+_e>>>2]=he[_e>>>2];return this.sigBytes+=be,this},clamp:function(){var te=this.words,he=this.sigBytes;te[he>>>2]&=4294967295<<32-he%4*8,te.length=D.ceil(he/4)},clone:function(){var D=we.clone.call(this);return D.words=this.words.slice(0),D},random:function(D){for(var te=[],he=0;he<D;he+=4)te.push(cryptoSecureRandomInt());return new _e.init(te,D)}}),Pe=be.enc={},Ie=Pe.Hex={stringify:function(D){for(var te=D.words,he=D.sigBytes,ye=[],be=0;be<he;be++){var ve=te[be>>>2]>>>24-be%4*8&255;ye.push((ve>>>4).toString(16)),ye.push((15&ve).toString(16))}return ye.join("")},parse:function(D){for(var te=D.length,he=[],ye=0;ye<te;ye+=2)he[ye>>>3]|=parseInt(D.substr(ye,2),16)<<24-ye%8*4;return new _e.init(he,te/2)}},Re=Pe.Latin1={stringify:function(D){for(var te=D.words,he=D.sigBytes,ye=[],be=0;be<he;be++){var ve=te[be>>>2]>>>24-be%4*8&255;ye.push(String.fromCharCode(ve))}return ye.join("")},parse:function(D){for(var te=D.length,he=[],ye=0;ye<te;ye++)he[ye>>>2]|=(255&D.charCodeAt(ye))<<24-ye%4*8;return new _e.init(he,te)}},ke=Pe.Utf8={stringify:function(D){try{return decodeURIComponent(escape(Re.stringify(D)))}catch(D){throw new Error("Malformed UTF-8 data")}},parse:function(D){return Re.parse(unescape(encodeURIComponent(D)))}},Oe=ve.BufferedBlockAlgorithm=we.extend({reset:function(){this._data=new _e.init,this._nDataBytes=0},_append:function(D){"string"==typeof D&&(D=ke.parse(D)),this._data.concat(D),this._nDataBytes+=D.sigBytes},_process:function(te){var he,ye=this._data,be=ye.words,ve=ye.sigBytes,we=this.blockSize,Pe=ve/(4*we),Ie=(Pe=te?D.ceil(Pe):D.max((0|Pe)-this._minBufferSize,0))*we,Re=D.min(4*Ie,ve);if(Ie){for(var ke=0;ke<Ie;ke+=we)this._doProcessBlock(be,ke);he=be.splice(0,Ie),ye.sigBytes-=Re}return new _e.init(he,Re)},clone:function(){var D=we.clone.call(this);return D._data=this._data.clone(),D},_minBufferSize:0});ve.Hasher=Oe.extend({cfg:we.extend(),init:function(D){this.cfg=this.cfg.extend(D),this.reset()},reset:function(){Oe.reset.call(this),this._doReset()},update:function(D){return this._append(D),this._process(),this},finalize:function(D){return D&&this._append(D),this._doFinalize()},blockSize:16,_createHelper:function(D){return function(te,he){return new D.init(he).finalize(te)}},_createHmacHelper:function(D){return function(te,he){return new xe.HMAC.init(D,he).finalize(te)}}});var xe=be.algo={};return be}(Math);return D}()}(jv);var Hv=jv.exports,zv=getDefaultExportFromCjs$1(Hv),Wv={exports:{}};!function(D,te){D.exports=function(D){return function(te){var he=D,ye=he.lib,be=ye.WordArray,ve=ye.Hasher,we=he.algo,_e=[],Pe=[];!function(){function isPrime(D){for(var he=te.sqrt(D),ye=2;ye<=he;ye++)if(!(D%ye))return!1;return!0}function getFractionalBits(D){return 4294967296*(D-(0|D))|0}for(var D=2,he=0;he<64;)isPrime(D)&&(he<8&&(_e[he]=getFractionalBits(te.pow(D,.5))),Pe[he]=getFractionalBits(te.pow(D,1/3)),he++),D++}();var Ie=[],Re=we.SHA256=ve.extend({_doReset:function(){this._hash=new be.init(_e.slice(0))},_doProcessBlock:function(D,te){for(var he=this._hash.words,ye=he[0],be=he[1],ve=he[2],we=he[3],_e=he[4],Re=he[5],ke=he[6],Oe=he[7],xe=0;xe<64;xe++){if(xe<16)Ie[xe]=0|D[te+xe];else{var Be=Ie[xe-15],Fe=(Be<<25|Be>>>7)^(Be<<14|Be>>>18)^Be>>>3,De=Ie[xe-2],Le=(De<<15|De>>>17)^(De<<13|De>>>19)^De>>>10;Ie[xe]=Fe+Ie[xe-7]+Le+Ie[xe-16]}var Ue=ye&be^ye&ve^be&ve,qe=(ye<<30|ye>>>2)^(ye<<19|ye>>>13)^(ye<<10|ye>>>22),je=Oe+((_e<<26|_e>>>6)^(_e<<21|_e>>>11)^(_e<<7|_e>>>25))+(_e&Re^~_e&ke)+Pe[xe]+Ie[xe];Oe=ke,ke=Re,Re=_e,_e=we+je|0,we=ve,ve=be,be=ye,ye=je+(qe+Ue)|0}he[0]=he[0]+ye|0,he[1]=he[1]+be|0,he[2]=he[2]+ve|0,he[3]=he[3]+we|0,he[4]=he[4]+_e|0,he[5]=he[5]+Re|0,he[6]=he[6]+ke|0,he[7]=he[7]+Oe|0},_doFinalize:function(){var D=this._data,he=D.words,ye=8*this._nDataBytes,be=8*D.sigBytes;return he[be>>>5]|=128<<24-be%32,he[14+(be+64>>>9<<4)]=te.floor(ye/4294967296),he[15+(be+64>>>9<<4)]=ye,D.sigBytes=4*he.length,this._process(),this._hash},clone:function(){var D=ve.clone.call(this);return D._hash=this._hash.clone(),D}});he.SHA256=ve._createHelper(Re),he.HmacSHA256=ve._createHmacHelper(Re)}(Math),D.SHA256}(Hv)}(Wv);var Vv=Wv.exports,Kv=getDefaultExportFromCjs$1(Vv),Jv={exports:{}};!function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.WordArray;function parseLoop(D,te,ye){for(var be=[],ve=0,we=0;we<te;we++)if(we%4){var _e=ye[D.charCodeAt(we-1)]<<we%4*2|ye[D.charCodeAt(we)]>>>6-we%4*2;be[ve>>>2]|=_e<<24-ve%4*8,ve++}return he.create(be,ve)}te.enc.Base64={stringify:function(D){var te=D.words,he=D.sigBytes,ye=this._map;D.clamp();for(var be=[],ve=0;ve<he;ve+=3)for(var we=(te[ve>>>2]>>>24-ve%4*8&255)<<16|(te[ve+1>>>2]>>>24-(ve+1)%4*8&255)<<8|te[ve+2>>>2]>>>24-(ve+2)%4*8&255,_e=0;_e<4&&ve+.75*_e<he;_e++)be.push(ye.charAt(we>>>6*(3-_e)&63));var Pe=ye.charAt(64);if(Pe)for(;be.length%4;)be.push(Pe);return be.join("")},parse:function(D){var te=D.length,he=this._map,ye=this._reverseMap;if(!ye){ye=this._reverseMap=[];for(var be=0;be<he.length;be++)ye[he.charCodeAt(be)]=be}var ve=he.charAt(64);if(ve){var we=D.indexOf(ve);-1!==we&&(te=we)}return parseLoop(D,te,ye)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),D.enc.Base64}(Hv)}(Jv);var Xv=Jv.exports,Qv=getDefaultExportFromCjs$1(Xv),Zv={exports:{}};!function(D,te){D.exports=function(D){return D.enc.Utf8}(Hv)}(Zv);var Yv=getDefaultExportFromCjs$1(Zv.exports);function e(D){this.message=D}e.prototype=new Error,e.prototype.name="InvalidCharacterError";var ew="undefined"!=typeof window&&window.atob&&window.atob.bind(window)||function(D){var te=String(D).replace(/=+$/,"");if(te.length%4==1)throw new e("'atob' failed: The string to be decoded is not correctly encoded.");for(var he,ye,be=0,ve=0,we="";ye=te.charAt(ve++);~ye&&(he=be%4?64*he+ye:ye,be++%4)?we+=String.fromCharCode(255&he>>(-2*be&6)):0)ye="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(ye);return we};function t(D){var te=D.replace(/-/g,"+").replace(/_/g,"/");switch(te.length%4){case 0:break;case 2:te+="==";break;case 3:te+="=";break;default:throw"Illegal base64url string!"}try{return function(D){return decodeURIComponent(ew(D).replace(/(.)/g,(function(D,te){var he=te.charCodeAt(0).toString(16).toUpperCase();return he.length<2&&(he="0"+he),"%"+he})))}(te)}catch(D){return ew(te)}}function n$2(D){this.message=D}function o$1(D,te){if("string"!=typeof D)throw new n$2("Invalid token specified");var he=!0===(te=te||{}).header?0:1;try{return JSON.parse(t(D.split(".")[he]))}catch(D){throw new n$2("Invalid token specified: "+D.message)}}n$2.prototype=new Error,n$2.prototype.name="InvalidTokenError";var tw,rw,nw,aw={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},iw=(D=>(D[D.NONE=0]="NONE",D[D.ERROR=1]="ERROR",D[D.WARN=2]="WARN",D[D.INFO=3]="INFO",D[D.DEBUG=4]="DEBUG",D))(iw||{});(nw=iw||(iw={})).reset=function reset(){tw=3,rw=aw},nw.setLevel=function setLevel(D){if(!(0<=D&&D<=4))throw new Error("Invalid log level");tw=D},nw.setLogger=function setLogger(D){rw=D};var sw=class Logger{constructor(D){this._name=D}debug(...D){tw>=4&&rw.debug(sw._format(this._name,this._method),...D)}info(...D){tw>=3&&rw.info(sw._format(this._name,this._method),...D)}warn(...D){tw>=2&&rw.warn(sw._format(this._name,this._method),...D)}error(...D){tw>=1&&rw.error(sw._format(this._name,this._method),...D)}throw(D){throw this.error(D),D}create(D){const te=Object.create(this);return te._method=D,te.debug("begin"),te}static createStatic(D,te){const he=new sw(`${D}.${te}`);return he.debug("begin"),he}static _format(D,te){const he=`[${D}]`;return te?`${he} ${te}:`:he}static debug(D,...te){tw>=4&&rw.debug(sw._format(D),...te)}static info(D,...te){tw>=3&&rw.info(sw._format(D),...te)}static warn(D,...te){tw>=2&&rw.warn(sw._format(D),...te)}static error(D,...te){tw>=1&&rw.error(sw._format(D),...te)}};iw.reset();var ow=class{static _randomWord(){return zv.lib.WordArray.random(1).words[0]}static generateUUIDv4(){const D="10000000-1000-4000-8000-100000000000".replace(/[018]/g,(D=>(+D^ow._randomWord()&15>>+D/4).toString(16)));return D.replace(/-/g,"")}static generateCodeVerifier(){return ow.generateUUIDv4()+ow.generateUUIDv4()+ow.generateUUIDv4()}static generateCodeChallenge(D){try{const te=Kv(D);return Qv.stringify(te).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}catch(D){throw sw.error("CryptoUtils.generateCodeChallenge",D),D}}static generateBasicAuth(D,te){const he=Yv.parse([D,te].join(":"));return Qv.stringify(he)}},cw=class{constructor(D){this._name=D,this._logger=new sw(`Event('${this._name}')`),this._callbacks=[]}addHandler(D){return this._callbacks.push(D),()=>this.removeHandler(D)}removeHandler(D){const te=this._callbacks.lastIndexOf(D);te>=0&&this._callbacks.splice(te,1)}raise(...D){this._logger.debug("raise:",...D);for(const te of this._callbacks)te(...D)}},dw=class{static decode(D){try{return o$1(D)}catch(D){throw sw.error("JwtUtils.decode",D),D}}},uw=class{static center({...D}){var te;return null==D.width&&(D.width=null!=(te=[800,720,600,480].find((D=>D<=window.outerWidth/1.618)))?te:360),null!=D.left||(D.left=Math.max(0,Math.round(window.screenX+(window.outerWidth-D.width)/2))),null!=D.height&&(null!=D.top||(D.top=Math.max(0,Math.round(window.screenY+(window.outerHeight-D.height)/2)))),D}static serialize(D){return Object.entries(D).filter((([,D])=>null!=D)).map((([D,te])=>`${D}=${"boolean"!=typeof te?te:te?"yes":"no"}`)).join(",")}},fw=class extends cw{constructor(){super(...arguments),this._logger=new sw(`Timer('${this._name}')`),this._timerHandle=null,this._expiration=0,this._callback=()=>{const D=this._expiration-fw.getEpochTime();this._logger.debug("timer completes in",D),this._expiration<=fw.getEpochTime()&&(this.cancel(),super.raise())}}static getEpochTime(){return Math.floor(Date.now()/1e3)}init(D){const te=this._logger.create("init");D=Math.max(Math.floor(D),1);const he=fw.getEpochTime()+D;if(this.expiration===he&&this._timerHandle)return void te.debug("skipping since already initialized for expiration at",this.expiration);this.cancel(),te.debug("using duration",D),this._expiration=he;const ye=Math.min(D,5);this._timerHandle=setInterval(this._callback,1e3*ye)}get expiration(){return this._expiration}cancel(){this._logger.create("cancel"),this._timerHandle&&(clearInterval(this._timerHandle),this._timerHandle=null)}},lw=class{static readParams(D,te="query"){if(!D)throw new TypeError("Invalid URL");const he=new URL(D,"http://127.0.0.1")["fragment"===te?"hash":"search"];return new URLSearchParams(he.slice(1))}},pw=class extends Error{constructor(D,te){var he,ye,be;if(super(D.error_description||D.error||""),this.form=te,this.name="ErrorResponse",!D.error)throw sw.error("ErrorResponse","No error passed"),new Error("No error passed");this.error=D.error,this.error_description=null!=(he=D.error_description)?he:null,this.error_uri=null!=(ye=D.error_uri)?ye:null,this.state=D.userState,this.session_state=null!=(be=D.session_state)?be:null,this.url_state=D.url_state}},hw=class extends Error{constructor(D){super(D),this.name="ErrorTimeout"}},yw=class{constructor(D){this._logger=new sw("AccessTokenEvents"),this._expiringTimer=new fw("Access token expiring"),this._expiredTimer=new fw("Access token expired"),this._expiringNotificationTimeInSeconds=D.expiringNotificationTimeInSeconds}load(D){const te=this._logger.create("load");if(D.access_token&&void 0!==D.expires_in){const he=D.expires_in;if(te.debug("access token present, remaining duration:",he),he>0){let D=he-this._expiringNotificationTimeInSeconds;D<=0&&(D=1),te.debug("registering expiring timer, raising in",D,"seconds"),this._expiringTimer.init(D)}else te.debug("canceling existing expiring timer because we're past expiration."),this._expiringTimer.cancel();const ye=he+1;te.debug("registering expired timer, raising in",ye,"seconds"),this._expiredTimer.init(ye)}else this._expiringTimer.cancel(),this._expiredTimer.cancel()}unload(){this._logger.debug("unload: canceling existing access token timers"),this._expiringTimer.cancel(),this._expiredTimer.cancel()}addAccessTokenExpiring(D){return this._expiringTimer.addHandler(D)}removeAccessTokenExpiring(D){this._expiringTimer.removeHandler(D)}addAccessTokenExpired(D){return this._expiredTimer.addHandler(D)}removeAccessTokenExpired(D){this._expiredTimer.removeHandler(D)}},mw=class{constructor(){this._logger=new sw("InMemoryWebStorage"),this._data={}}clear(){this._logger.create("clear"),this._data={}}getItem(D){return this._logger.create(`getItem('${D}')`),this._data[D]}setItem(D,te){this._logger.create(`setItem('${D}')`),this._data[D]=te}removeItem(D){this._logger.create(`removeItem('${D}')`),delete this._data[D]}get length(){return Object.getOwnPropertyNames(this._data).length}key(D){return Object.getOwnPropertyNames(this._data)[D]}},bw=class{constructor(D=[],te=null,he={}){this._jwtHandler=te,this._extraHeaders=he,this._logger=new sw("JsonService"),this._contentTypes=[],this._contentTypes.push(...D,"application/json"),te&&this._contentTypes.push("application/jwt")}async fetchWithTimeout(D,te={}){const{timeoutInSeconds:he,...ye}=te;if(!he)return await fetch(D,ye);const be=new AbortController,ve=setTimeout((()=>be.abort()),1e3*he);try{return await fetch(D,{...te,signal:be.signal})}catch(D){if(D instanceof DOMException&&"AbortError"===D.name)throw new hw("Network timed out");throw D}finally{clearTimeout(ve)}}async getJson(D,{token:te,credentials:he}={}){const ye=this._logger.create("getJson"),be={Accept:this._contentTypes.join(", ")};let ve;te&&(ye.debug("token passed, setting Authorization header"),be.Authorization="Bearer "+te),this.appendExtraHeaders(be);try{ye.debug("url:",D),ve=await this.fetchWithTimeout(D,{method:"GET",headers:be,credentials:he})}catch(D){throw ye.error("Network Error"),D}ye.debug("HTTP response received, status",ve.status);const we=ve.headers.get("Content-Type");if(we&&!this._contentTypes.find((D=>we.startsWith(D)))&&ye.throw(new Error(`Invalid response Content-Type: ${null!=we?we:"undefined"}, from URL: ${D}`)),ve.ok&&this._jwtHandler&&(null==we?void 0:we.startsWith("application/jwt")))return await this._jwtHandler(await ve.text());let _e;try{_e=await ve.json()}catch(D){if(ye.error("Error parsing JSON response",D),ve.ok)throw D;throw new Error(`${ve.statusText} (${ve.status})`)}if(!ve.ok){if(ye.error("Error from server:",_e),_e.error)throw new pw(_e);throw new Error(`${ve.statusText} (${ve.status}): ${JSON.stringify(_e)}`)}return _e}async postForm(D,{body:te,basicAuth:he,timeoutInSeconds:ye,initCredentials:be}){const ve=this._logger.create("postForm"),we={Accept:this._contentTypes.join(", "),"Content-Type":"application/x-www-form-urlencoded"};let _e;void 0!==he&&(we.Authorization="Basic "+he),this.appendExtraHeaders(we);try{ve.debug("url:",D),_e=await this.fetchWithTimeout(D,{method:"POST",headers:we,body:te,timeoutInSeconds:ye,credentials:be})}catch(D){throw ve.error("Network error"),D}ve.debug("HTTP response received, status",_e.status);const Pe=_e.headers.get("Content-Type");if(Pe&&!this._contentTypes.find((D=>Pe.startsWith(D))))throw new Error(`Invalid response Content-Type: ${null!=Pe?Pe:"undefined"}, from URL: ${D}`);const Ie=await _e.text();let Re={};if(Ie)try{Re=JSON.parse(Ie)}catch(D){if(ve.error("Error parsing JSON response",D),_e.ok)throw D;throw new Error(`${_e.statusText} (${_e.status})`)}if(!_e.ok){if(ve.error("Error from server:",Re),Re.error)throw new pw(Re,te);throw new Error(`${_e.statusText} (${_e.status}): ${JSON.stringify(Re)}`)}return Re}appendExtraHeaders(D){const te=this._logger.create("appendExtraHeaders"),he=Object.keys(this._extraHeaders),ye=["authorization","accept","content-type"];0!==he.length&&he.forEach((he=>{if(ye.includes(he.toLocaleLowerCase()))return void te.warn("Protected header could not be overridden",he,ye);const be="function"==typeof this._extraHeaders[he]?this._extraHeaders[he]():this._extraHeaders[he];be&&""!==be&&(D[he]=be)}))}},gw=class{constructor({prefix:D="oidc.",store:te=localStorage}={}){this._logger=new sw("WebStorageStateStore"),this._store=te,this._prefix=D}async set(D,te){this._logger.create(`set('${D}')`),D=this._prefix+D,await this._store.setItem(D,te)}async get(D){this._logger.create(`get('${D}')`),D=this._prefix+D;return await this._store.getItem(D)}async remove(D){this._logger.create(`remove('${D}')`),D=this._prefix+D;const te=await this._store.getItem(D);return await this._store.removeItem(D),te}async getAllKeys(){this._logger.create("getAllKeys");const D=await this._store.length,te=[];for(let he=0;he<D;he++){const D=await this._store.key(he);D&&0===D.indexOf(this._prefix)&&te.push(D.substr(this._prefix.length))}return te}},vw=class{constructor({authority:D,metadataUrl:te,metadata:he,signingKeys:ye,metadataSeed:be,client_id:ve,client_secret:we,response_type:_e="code",scope:Pe="openid",redirect_uri:Ie,post_logout_redirect_uri:Re,client_authentication:ke="client_secret_post",prompt:Oe,display:xe,max_age:Be,ui_locales:Fe,acr_values:De,resource:Le,response_mode:Ue="query",filterProtocolClaims:qe=!0,loadUserInfo:je=!1,staleStateAgeInSeconds:Je=900,clockSkewInSeconds:et=300,userInfoJwtIssuer:tt="OP",mergeClaims:rt=!1,disablePKCE:nt=!1,stateStore:at,refreshTokenCredentials:ut,revokeTokenAdditionalContentTypes:ht,fetchRequestCredentials:yt,refreshTokenAllowedScope:mt,extraQueryParams:bt={},extraTokenParams:wt={},extraHeaders:_t={}}){if(this.authority=D,te?this.metadataUrl=te:(this.metadataUrl=D,D&&(this.metadataUrl.endsWith("/")||(this.metadataUrl+="/"),this.metadataUrl+=".well-known/openid-configuration")),this.metadata=he,this.metadataSeed=be,this.signingKeys=ye,this.client_id=ve,this.client_secret=we,this.response_type=_e,this.scope=Pe,this.redirect_uri=Ie,this.post_logout_redirect_uri=Re,this.client_authentication=ke,this.prompt=Oe,this.display=xe,this.max_age=Be,this.ui_locales=Fe,this.acr_values=De,this.resource=Le,this.response_mode=Ue,this.filterProtocolClaims=null==qe||qe,this.loadUserInfo=!!je,this.staleStateAgeInSeconds=Je,this.clockSkewInSeconds=et,this.userInfoJwtIssuer=tt,this.mergeClaims=!!rt,this.disablePKCE=!!nt,this.revokeTokenAdditionalContentTypes=ht,yt&&ut&&console.warn("Both fetchRequestCredentials and refreshTokenCredentials is set. Only fetchRequestCredentials will be used."),this.fetchRequestCredentials=yt||(ut||"same-origin"),at)this.stateStore=at;else{const D="undefined"!=typeof window?window.localStorage:new mw;this.stateStore=new gw({store:D})}this.refreshTokenAllowedScope=mt,this.extraQueryParams=bt,this.extraTokenParams=wt,this.extraHeaders=_t}},ww=class{constructor(D,te){this._settings=D,this._metadataService=te,this._logger=new sw("TokenClient"),this._jsonService=new bw(this._settings.revokeTokenAdditionalContentTypes,null,this._settings.extraHeaders)}async exchangeCode({grant_type:D="authorization_code",redirect_uri:te=this._settings.redirect_uri,client_id:he=this._settings.client_id,client_secret:ye=this._settings.client_secret,...be}){const ve=this._logger.create("exchangeCode");he||ve.throw(new Error("A client_id is required")),te||ve.throw(new Error("A redirect_uri is required")),be.code||ve.throw(new Error("A code is required"));const we=new URLSearchParams({grant_type:D,redirect_uri:te});for(const[D,te]of Object.entries(be))null!=te&&we.set(D,te);let _e;switch(this._settings.client_authentication){case"client_secret_basic":if(!ye)throw ve.throw(new Error("A client_secret is required")),null;_e=ow.generateBasicAuth(he,ye);break;case"client_secret_post":we.append("client_id",he),ye&&we.append("client_secret",ye)}const Pe=await this._metadataService.getTokenEndpoint(!1);ve.debug("got token endpoint");const Ie=await this._jsonService.postForm(Pe,{body:we,basicAuth:_e,initCredentials:this._settings.fetchRequestCredentials});return ve.debug("got response"),Ie}async exchangeCredentials({grant_type:D="password",client_id:te=this._settings.client_id,client_secret:he=this._settings.client_secret,scope:ye=this._settings.scope,...be}){const ve=this._logger.create("exchangeCredentials");te||ve.throw(new Error("A client_id is required"));const we=new URLSearchParams({grant_type:D,scope:ye});for(const[D,te]of Object.entries(be))null!=te&&we.set(D,te);let _e;switch(this._settings.client_authentication){case"client_secret_basic":if(!he)throw ve.throw(new Error("A client_secret is required")),null;_e=ow.generateBasicAuth(te,he);break;case"client_secret_post":we.append("client_id",te),he&&we.append("client_secret",he)}const Pe=await this._metadataService.getTokenEndpoint(!1);ve.debug("got token endpoint");const Ie=await this._jsonService.postForm(Pe,{body:we,basicAuth:_e,initCredentials:this._settings.fetchRequestCredentials});return ve.debug("got response"),Ie}async exchangeRefreshToken({grant_type:D="refresh_token",client_id:te=this._settings.client_id,client_secret:he=this._settings.client_secret,timeoutInSeconds:ye,...be}){const ve=this._logger.create("exchangeRefreshToken");te||ve.throw(new Error("A client_id is required")),be.refresh_token||ve.throw(new Error("A refresh_token is required"));const we=new URLSearchParams({grant_type:D});for(const[D,te]of Object.entries(be))Array.isArray(te)?te.forEach((te=>we.append(D,te))):null!=te&&we.set(D,te);let _e;switch(this._settings.client_authentication){case"client_secret_basic":if(!he)throw ve.throw(new Error("A client_secret is required")),null;_e=ow.generateBasicAuth(te,he);break;case"client_secret_post":we.append("client_id",te),he&&we.append("client_secret",he)}const Pe=await this._metadataService.getTokenEndpoint(!1);ve.debug("got token endpoint");const Ie=await this._jsonService.postForm(Pe,{body:we,basicAuth:_e,timeoutInSeconds:ye,initCredentials:this._settings.fetchRequestCredentials});return ve.debug("got response"),Ie}async revoke(D){var te;const he=this._logger.create("revoke");D.token||he.throw(new Error("A token is required"));const ye=await this._metadataService.getRevocationEndpoint(!1);he.debug(`got revocation endpoint, revoking ${null!=(te=D.token_type_hint)?te:"default token type"}`);const be=new URLSearchParams;for(const[te,he]of Object.entries(D))null!=he&&be.set(te,he);be.set("client_id",this._settings.client_id),this._settings.client_secret&&be.set("client_secret",this._settings.client_secret),await this._jsonService.postForm(ye,{body:be}),he.debug("got response")}},_w=class{constructor(D){this.id=D.id||ow.generateUUIDv4(),this.data=D.data,D.created&&D.created>0?this.created=D.created:this.created=fw.getEpochTime(),this.request_type=D.request_type,this.url_state=D.url_state}toStorageString(){return new sw("State").create("toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state})}static fromStorageString(D){return sw.createStatic("State","fromStorageString"),new _w(JSON.parse(D))}static async clearStaleState(D,te){const he=sw.createStatic("State","clearStaleState"),ye=fw.getEpochTime()-te,be=await D.getAllKeys();he.debug("got keys",be);for(let te=0;te<be.length;te++){const ve=be[te],we=await D.get(ve);let _e=!1;if(we)try{const D=_w.fromStorageString(we);he.debug("got item from key:",ve,D.created),D.created<=ye&&(_e=!0)}catch(D){he.error("Error parsing state for key:",ve,D),_e=!0}else he.debug("no item in storage for key:",ve),_e=!0;_e&&(he.debug("removed item for key:",ve),D.remove(ve))}}},Tw=class extends _w{constructor(D){super(D),!0===D.code_verifier?this.code_verifier=ow.generateCodeVerifier():D.code_verifier&&(this.code_verifier=D.code_verifier),this.code_verifier&&(this.code_challenge=ow.generateCodeChallenge(this.code_verifier)),this.authority=D.authority,this.client_id=D.client_id,this.redirect_uri=D.redirect_uri,this.scope=D.scope,this.client_secret=D.client_secret,this.extraTokenParams=D.extraTokenParams,this.response_mode=D.response_mode,this.skipUserInfo=D.skipUserInfo}toStorageString(){return new sw("SigninState").create("toStorageString"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,url_state:this.url_state,code_verifier:this.code_verifier,authority:this.authority,client_id:this.client_id,redirect_uri:this.redirect_uri,scope:this.scope,client_secret:this.client_secret,extraTokenParams:this.extraTokenParams,response_mode:this.response_mode,skipUserInfo:this.skipUserInfo})}static fromStorageString(D){sw.createStatic("SigninState","fromStorageString");const te=JSON.parse(D);return new Tw(te)}},Aw=class{constructor(D){if(this.access_token="",this.token_type="",this.profile={},this.state=D.get("state"),this.session_state=D.get("session_state"),this.state){const D=decodeURIComponent(this.state).split(";");this.state=D[0],D.length>1&&(this.url_state=D.slice(1).join(";"))}this.error=D.get("error"),this.error_description=D.get("error_description"),this.error_uri=D.get("error_uri"),this.code=D.get("code")}get expires_in(){if(void 0!==this.expires_at)return this.expires_at-fw.getEpochTime()}set expires_in(D){"string"==typeof D&&(D=Number(D)),void 0!==D&&D>=0&&(this.expires_at=Math.floor(D)+fw.getEpochTime())}get isOpenId(){var D;return(null==(D=this.scope)?void 0:D.split(" ").includes("openid"))||!!this.id_token}},Ew=["nbf","jti","auth_time","nonce","acr","amr","azp","at_hash"],Pw=["sub","iss","aud","exp","iat"],Sw=class{constructor(D){var te;this.id_token=D.id_token,this.session_state=null!=(te=D.session_state)?te:null,this.access_token=D.access_token,this.refresh_token=D.refresh_token,this.token_type=D.token_type,this.scope=D.scope,this.profile=D.profile,this.expires_at=D.expires_at,this.state=D.userState,this.url_state=D.url_state}get expires_in(){if(void 0!==this.expires_at)return this.expires_at-fw.getEpochTime()}set expires_in(D){void 0!==D&&(this.expires_at=Math.floor(D)+fw.getEpochTime())}get expired(){const D=this.expires_in;if(void 0!==D)return D<=0}get scopes(){var D,te;return null!=(te=null==(D=this.scope)?void 0:D.split(" "))?te:[]}toStorageString(){return new sw("User").create("toStorageString"),JSON.stringify({id_token:this.id_token,session_state:this.session_state,access_token:this.access_token,refresh_token:this.refresh_token,token_type:this.token_type,scope:this.scope,profile:this.profile,expires_at:this.expires_at})}static fromStorageString(D){return sw.createStatic("User","fromStorageString"),new Sw(JSON.parse(D))}},Cw="oidc-client",Iw=class{constructor(){this._abort=new cw("Window navigation aborted"),this._disposeHandlers=new Set,this._window=null}async navigate(D){const te=this._logger.create("navigate");if(!this._window)throw new Error("Attempted to navigate on a disposed window");te.debug("setting URL in window"),this._window.location.replace(D.url);const{url:he,keepOpen:ye}=await new Promise(((he,ye)=>{const listener=be=>{var ve;const we=be.data,_e=null!=(ve=D.scriptOrigin)?ve:window.location.origin;if(be.origin===_e&&(null==we?void 0:we.source)===Cw){try{const he=lw.readParams(we.url,D.response_mode).get("state");if(he||te.warn("no state found in response url"),be.source!==this._window&&he!==D.state)return}catch(D){this._dispose(),ye(new Error("Invalid response from window"))}he(we)}};window.addEventListener("message",listener,!1),this._disposeHandlers.add((()=>window.removeEventListener("message",listener,!1))),this._disposeHandlers.add(this._abort.addHandler((D=>{this._dispose(),ye(D)})))}));return te.debug("got response from window"),this._dispose(),ye||this.close(),{url:he}}_dispose(){this._logger.create("_dispose");for(const D of this._disposeHandlers)D();this._disposeHandlers.clear()}static _notifyParent(D,te,he=!1,ye=window.location.origin){D.postMessage({source:Cw,url:te,keepOpen:he},ye)}},Rw={location:!1,toolbar:!1,height:640,closePopupWindowAfterInSeconds:-1},kw="_blank",Ow=60,xw=2,Nw=10,Mw=class extends vw{constructor(D){const{popup_redirect_uri:te=D.redirect_uri,popup_post_logout_redirect_uri:he=D.post_logout_redirect_uri,popupWindowFeatures:ye=Rw,popupWindowTarget:be=kw,redirectMethod:ve="assign",redirectTarget:we="self",iframeNotifyParentOrigin:_e=D.iframeNotifyParentOrigin,iframeScriptOrigin:Pe=D.iframeScriptOrigin,silent_redirect_uri:Ie=D.redirect_uri,silentRequestTimeoutInSeconds:Re=Nw,automaticSilentRenew:ke=!0,validateSubOnSilentRenew:Oe=!0,includeIdTokenInSilentRenew:xe=!1,monitorSession:Be=!1,monitorAnonymousSession:Fe=!1,checkSessionIntervalInSeconds:De=xw,query_status_response_type:Le="code",stopCheckSessionOnError:Ue=!0,revokeTokenTypes:qe=["access_token","refresh_token"],revokeTokensOnSignout:je=!1,includeIdTokenInSilentSignout:Je=!1,accessTokenExpiringNotificationTimeInSeconds:et=Ow,userStore:tt}=D;if(super(D),this.popup_redirect_uri=te,this.popup_post_logout_redirect_uri=he,this.popupWindowFeatures=ye,this.popupWindowTarget=be,this.redirectMethod=ve,this.redirectTarget=we,this.iframeNotifyParentOrigin=_e,this.iframeScriptOrigin=Pe,this.silent_redirect_uri=Ie,this.silentRequestTimeoutInSeconds=Re,this.automaticSilentRenew=ke,this.validateSubOnSilentRenew=Oe,this.includeIdTokenInSilentRenew=xe,this.monitorSession=Be,this.monitorAnonymousSession=Fe,this.checkSessionIntervalInSeconds=De,this.stopCheckSessionOnError=Ue,this.query_status_response_type=Le,this.revokeTokenTypes=qe,this.revokeTokensOnSignout=je,this.includeIdTokenInSilentSignout=Je,this.accessTokenExpiringNotificationTimeInSeconds=et,tt)this.userStore=tt;else{const D="undefined"!=typeof window?window.sessionStorage:new mw;this.userStore=new gw({store:D})}}},Bw=class extends Iw{constructor({silentRequestTimeoutInSeconds:D=Nw}){super(),this._logger=new sw("IFrameWindow"),this._timeoutInSeconds=D,this._frame=Bw.createHiddenIframe(),this._window=this._frame.contentWindow}static createHiddenIframe(){const D=window.document.createElement("iframe");return D.style.visibility="hidden",D.style.position="fixed",D.style.left="-1000px",D.style.top="0",D.width="0",D.height="0",window.document.body.appendChild(D),D}async navigate(D){this._logger.debug("navigate: Using timeout of:",this._timeoutInSeconds);const te=setTimeout((()=>this._abort.raise(new hw("IFrame timed out without a response"))),1e3*this._timeoutInSeconds);return this._disposeHandlers.add((()=>clearTimeout(te))),await super.navigate(D)}close(){var D;this._frame&&(this._frame.parentNode&&(this._frame.addEventListener("load",(D=>{var te;const he=D.target;null==(te=he.parentNode)||te.removeChild(he),this._abort.raise(new Error("IFrame removed from DOM"))}),!0),null==(D=this._frame.contentWindow)||D.location.replace("about:blank")),this._frame=null),this._window=null}static notifyParent(D,te){return super._notifyParent(window.parent,D,!1,te)}},Fw=class extends Iw{constructor({popupWindowTarget:D=kw,popupWindowFeatures:te={}}){super(),this._logger=new sw("PopupWindow");const he=uw.center({...Rw,...te});this._window=window.open(void 0,D,uw.serialize(he)),te.closePopupWindowAfterInSeconds&&te.closePopupWindowAfterInSeconds>0&&setTimeout((()=>{this._window&&"boolean"==typeof this._window.closed&&!this._window.closed?this.close():this._abort.raise(new Error("Popup blocked by user"))}),1e3*te.closePopupWindowAfterInSeconds)}async navigate(D){var te;null==(te=this._window)||te.focus();const he=setInterval((()=>{this._window&&!this._window.closed||this._abort.raise(new Error("Popup closed by user"))}),500);return this._disposeHandlers.add((()=>clearInterval(he))),await super.navigate(D)}close(){this._window&&(this._window.closed||(this._window.close(),this._abort.raise(new Error("Popup closed")))),this._window=null}static notifyOpener(D,te){if(!window.opener)throw new Error("No window.opener. Can't complete notification.");return super._notifyParent(window.opener,D,te)}},Dw=class extends yw{constructor(D){super({expiringNotificationTimeInSeconds:D.accessTokenExpiringNotificationTimeInSeconds}),this._logger=new sw("UserManagerEvents"),this._userLoaded=new cw("User loaded"),this._userUnloaded=new cw("User unloaded"),this._silentRenewError=new cw("Silent renew error"),this._userSignedIn=new cw("User signed in"),this._userSignedOut=new cw("User signed out"),this._userSessionChanged=new cw("User session changed")}load(D,te=!0){super.load(D),te&&this._userLoaded.raise(D)}unload(){super.unload(),this._userUnloaded.raise()}addUserLoaded(D){return this._userLoaded.addHandler(D)}removeUserLoaded(D){return this._userLoaded.removeHandler(D)}addUserUnloaded(D){return this._userUnloaded.addHandler(D)}removeUserUnloaded(D){return this._userUnloaded.removeHandler(D)}addSilentRenewError(D){return this._silentRenewError.addHandler(D)}removeSilentRenewError(D){return this._silentRenewError.removeHandler(D)}_raiseSilentRenewError(D){this._silentRenewError.raise(D)}addUserSignedIn(D){return this._userSignedIn.addHandler(D)}removeUserSignedIn(D){this._userSignedIn.removeHandler(D)}_raiseUserSignedIn(){this._userSignedIn.raise()}addUserSignedOut(D){return this._userSignedOut.addHandler(D)}removeUserSignedOut(D){this._userSignedOut.removeHandler(D)}_raiseUserSignedOut(){this._userSignedOut.raise()}addUserSessionChanged(D){return this._userSessionChanged.addHandler(D)}removeUserSessionChanged(D){this._userSessionChanged.removeHandler(D)}_raiseUserSessionChanged(){this._userSessionChanged.raise()}},Lw={exports:{}};
/*!
      localForage -- Offline Storage, Improved
      Version 1.10.0
      https://localforage.github.io/localForage
      (c) 2013-2017 Mozilla, Apache License 2.0
  */
!function(D,te){D.exports=function e(D,te,he){function s(be,ve){if(!te[be]){if(!D[be]){if(!ve&&commonjsRequire)return commonjsRequire(be);if(ye)return ye(be,!0);var we=new Error("Cannot find module '"+be+"'");throw we.code="MODULE_NOT_FOUND",we}var _e=te[be]={exports:{}};D[be][0].call(_e.exports,(function(te){var he=D[be][1][te];return s(he||te)}),_e,_e.exports,e,D,te,he)}return te[be].exports}for(var ye=commonjsRequire,be=0;be<he.length;be++)s(he[be]);return s}({1:[function(D,te,he){(function(D){var he,ye,be=D.MutationObserver||D.WebKitMutationObserver;if(be){var ve=0,we=new be(nextTick),_e=D.document.createTextNode("");we.observe(_e,{characterData:!0}),he=function(){_e.data=ve=++ve%2}}else if(D.setImmediate||void 0===D.MessageChannel)he="document"in D&&"onreadystatechange"in D.document.createElement("script")?function(){var te=D.document.createElement("script");te.onreadystatechange=function(){nextTick(),te.onreadystatechange=null,te.parentNode.removeChild(te),te=null},D.document.documentElement.appendChild(te)}:function(){setTimeout(nextTick,0)};else{var Pe=new D.MessageChannel;Pe.port1.onmessage=nextTick,he=function(){Pe.port2.postMessage(0)}}var Ie=[];function nextTick(){var D,te;ye=!0;for(var he=Ie.length;he;){for(te=Ie,Ie=[],D=-1;++D<he;)te[D]();he=Ie.length}ye=!1}function immediate(D){1!==Ie.push(D)||ye||he()}te.exports=immediate}).call(this,void 0!==rn?rn:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(D,te,he){var ye=D(1);function INTERNAL(){}var be={},ve=["REJECTED"],we=["FULFILLED"],_e=["PENDING"];function Promise(D){if("function"!=typeof D)throw new TypeError("resolver must be a function");this.state=_e,this.queue=[],this.outcome=void 0,D!==INTERNAL&&safelyResolveThenable(this,D)}function QueueItem(D,te,he){this.promise=D,"function"==typeof te&&(this.onFulfilled=te,this.callFulfilled=this.otherCallFulfilled),"function"==typeof he&&(this.onRejected=he,this.callRejected=this.otherCallRejected)}function unwrap(D,te,he){ye((function(){var ye;try{ye=te(he)}catch(te){return be.reject(D,te)}ye===D?be.reject(D,new TypeError("Cannot resolve promise with itself")):be.resolve(D,ye)}))}function getThen(D){var te=D&&D.then;if(D&&("object"==typeof D||"function"==typeof D)&&"function"==typeof te)return function appyThen(){te.apply(D,arguments)}}function safelyResolveThenable(D,te){var he=!1;function onError(te){he||(he=!0,be.reject(D,te))}function onSuccess(te){he||(he=!0,be.resolve(D,te))}function tryToUnwrap(){te(onSuccess,onError)}var ye=tryCatch(tryToUnwrap);"error"===ye.status&&onError(ye.value)}function tryCatch(D,te){var he={};try{he.value=D(te),he.status="success"}catch(D){he.status="error",he.value=D}return he}function resolve(D){return D instanceof this?D:be.resolve(new this(INTERNAL),D)}function reject(D){var te=new this(INTERNAL);return be.reject(te,D)}function all(D){var te=this;if("[object Array]"!==Object.prototype.toString.call(D))return this.reject(new TypeError("must be an array"));var he=D.length,ye=!1;if(!he)return this.resolve([]);for(var ve=new Array(he),we=0,_e=-1,Pe=new this(INTERNAL);++_e<he;)allResolver(D[_e],_e);return Pe;function allResolver(D,_e){function resolveFromAll(D){ve[_e]=D,++we!==he||ye||(ye=!0,be.resolve(Pe,ve))}te.resolve(D).then(resolveFromAll,(function(D){ye||(ye=!0,be.reject(Pe,D))}))}}function race(D){var te=this;if("[object Array]"!==Object.prototype.toString.call(D))return this.reject(new TypeError("must be an array"));var he=D.length,ye=!1;if(!he)return this.resolve([]);for(var ve=-1,we=new this(INTERNAL);++ve<he;)resolver(D[ve]);return we;function resolver(D){te.resolve(D).then((function(D){ye||(ye=!0,be.resolve(we,D))}),(function(D){ye||(ye=!0,be.reject(we,D))}))}}te.exports=Promise,Promise.prototype.catch=function(D){return this.then(null,D)},Promise.prototype.then=function(D,te){if("function"!=typeof D&&this.state===we||"function"!=typeof te&&this.state===ve)return this;var he=new this.constructor(INTERNAL);return this.state!==_e?unwrap(he,this.state===we?D:te,this.outcome):this.queue.push(new QueueItem(he,D,te)),he},QueueItem.prototype.callFulfilled=function(D){be.resolve(this.promise,D)},QueueItem.prototype.otherCallFulfilled=function(D){unwrap(this.promise,this.onFulfilled,D)},QueueItem.prototype.callRejected=function(D){be.reject(this.promise,D)},QueueItem.prototype.otherCallRejected=function(D){unwrap(this.promise,this.onRejected,D)},be.resolve=function(D,te){var he=tryCatch(getThen,te);if("error"===he.status)return be.reject(D,he.value);var ye=he.value;if(ye)safelyResolveThenable(D,ye);else{D.state=we,D.outcome=te;for(var ve=-1,_e=D.queue.length;++ve<_e;)D.queue[ve].callFulfilled(te)}return D},be.reject=function(D,te){D.state=ve,D.outcome=te;for(var he=-1,ye=D.queue.length;++he<ye;)D.queue[he].callRejected(te);return D},Promise.resolve=resolve,Promise.reject=reject,Promise.all=all,Promise.race=race},{1:1}],3:[function(D,te,he){(function(te){"function"!=typeof te.Promise&&(te.Promise=D(2))}).call(this,void 0!==rn?rn:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(D,te,he){var ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(D){return typeof D}:function(D){return D&&"function"==typeof Symbol&&D.constructor===Symbol&&D!==Symbol.prototype?"symbol":typeof D};function _classCallCheck(D,te){if(!(D instanceof te))throw new TypeError("Cannot call a class as a function")}function getIDB(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(D){return}}var be=getIDB();function isIndexedDBValid(){try{if(!be||!be.open)return!1;var D="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),te="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!D||te)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(D){return!1}}function createBlob(D,te){D=D||[],te=te||{};try{return new Blob(D,te)}catch(be){if("TypeError"!==be.name)throw be;for(var he=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),ye=0;ye<D.length;ye+=1)he.append(D[ye]);return he.getBlob(te.type)}}"undefined"==typeof Promise&&D(3);var ve=Promise;function executeCallback(D,te){te&&D.then((function(D){te(null,D)}),(function(D){te(D)}))}function executeTwoCallbacks(D,te,he){"function"==typeof te&&D.then(te),"function"==typeof he&&D.catch(he)}function normalizeKey(D){return"string"!=typeof D&&(console.warn(D+" used as a key, but it is not a string."),D=String(D)),D}function getCallback(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var we="local-forage-detect-blob-support",_e=void 0,Pe={},Ie=Object.prototype.toString,Re="readonly",ke="readwrite";function _binStringToArrayBuffer(D){for(var te=D.length,he=new ArrayBuffer(te),ye=new Uint8Array(he),be=0;be<te;be++)ye[be]=D.charCodeAt(be);return he}function _checkBlobSupportWithoutCaching(D){return new ve((function(te){var he=D.transaction(we,ke),ye=createBlob([""]);he.objectStore(we).put(ye,"key"),he.onabort=function(D){D.preventDefault(),D.stopPropagation(),te(!1)},he.oncomplete=function(){var D=navigator.userAgent.match(/Chrome\/(\d+)/),he=navigator.userAgent.match(/Edge\//);te(he||!D||parseInt(D[1],10)>=43)}})).catch((function(){return!1}))}function _checkBlobSupport(D){return"boolean"==typeof _e?ve.resolve(_e):_checkBlobSupportWithoutCaching(D).then((function(D){return _e=D}))}function _deferReadiness(D){var te=Pe[D.name],he={};he.promise=new ve((function(D,te){he.resolve=D,he.reject=te})),te.deferredOperations.push(he),te.dbReady?te.dbReady=te.dbReady.then((function(){return he.promise})):te.dbReady=he.promise}function _advanceReadiness(D){var te=Pe[D.name].deferredOperations.pop();if(te)return te.resolve(),te.promise}function _rejectReadiness(D,te){var he=Pe[D.name].deferredOperations.pop();if(he)return he.reject(te),he.promise}function _getConnection(D,te){return new ve((function(he,ye){if(Pe[D.name]=Pe[D.name]||createDbContext(),D.db){if(!te)return he(D.db);_deferReadiness(D),D.db.close()}var ve=[D.name];te&&ve.push(D.version);var _e=be.open.apply(be,ve);te&&(_e.onupgradeneeded=function(te){var he=_e.result;try{he.createObjectStore(D.storeName),te.oldVersion<=1&&he.createObjectStore(we)}catch(he){if("ConstraintError"!==he.name)throw he;console.warn('The database "'+D.name+'" has been upgraded from version '+te.oldVersion+" to version "+te.newVersion+', but the storage "'+D.storeName+'" already exists.')}}),_e.onerror=function(D){D.preventDefault(),ye(_e.error)},_e.onsuccess=function(){var te=_e.result;te.onversionchange=function(D){D.target.close()},he(te),_advanceReadiness(D)}}))}function _getOriginalConnection(D){return _getConnection(D,!1)}function _getUpgradedConnection(D){return _getConnection(D,!0)}function _isUpgradeNeeded(D,te){if(!D.db)return!0;var he=!D.db.objectStoreNames.contains(D.storeName),ye=D.version<D.db.version,be=D.version>D.db.version;if(ye&&(D.version!==te&&console.warn('The database "'+D.name+"\" can't be downgraded from version "+D.db.version+" to version "+D.version+"."),D.version=D.db.version),be||he){if(he){var ve=D.db.version+1;ve>D.version&&(D.version=ve)}return!0}return!1}function _encodeBlob(D){return new ve((function(te,he){var ye=new FileReader;ye.onerror=he,ye.onloadend=function(he){var ye=btoa(he.target.result||"");te({__local_forage_encoded_blob:!0,data:ye,type:D.type})},ye.readAsBinaryString(D)}))}function _decodeBlob(D){return createBlob([_binStringToArrayBuffer(atob(D.data))],{type:D.type})}function _isEncodedBlob(D){return D&&D.__local_forage_encoded_blob}function _fullyReady(D){var te=this,he=te._initReady().then((function(){var D=Pe[te._dbInfo.name];if(D&&D.dbReady)return D.dbReady}));return executeTwoCallbacks(he,D,D),he}function _tryReconnect(D){_deferReadiness(D);for(var te=Pe[D.name],he=te.forages,ye=0;ye<he.length;ye++){var be=he[ye];be._dbInfo.db&&(be._dbInfo.db.close(),be._dbInfo.db=null)}return D.db=null,_getOriginalConnection(D).then((function(te){return D.db=te,_isUpgradeNeeded(D)?_getUpgradedConnection(D):te})).then((function(ye){D.db=te.db=ye;for(var be=0;be<he.length;be++)he[be]._dbInfo.db=ye})).catch((function(te){throw _rejectReadiness(D,te),te}))}function createTransaction(D,te,he,ye){void 0===ye&&(ye=1);try{var be=D.db.transaction(D.storeName,te);he(null,be)}catch(be){if(ye>0&&(!D.db||"InvalidStateError"===be.name||"NotFoundError"===be.name))return ve.resolve().then((function(){if(!D.db||"NotFoundError"===be.name&&!D.db.objectStoreNames.contains(D.storeName)&&D.version<=D.db.version)return D.db&&(D.version=D.db.version+1),_getUpgradedConnection(D)})).then((function(){return _tryReconnect(D).then((function(){createTransaction(D,te,he,ye-1)}))})).catch(he);he(be)}}function createDbContext(){return{forages:[],db:null,dbReady:null,deferredOperations:[]}}function _initStorage(D){var te=this,he={db:null};if(D)for(var ye in D)he[ye]=D[ye];var be=Pe[he.name];be||(be=createDbContext(),Pe[he.name]=be),be.forages.push(te),te._initReady||(te._initReady=te.ready,te.ready=_fullyReady);var we=[];function ignoreErrors(){return ve.resolve()}for(var _e=0;_e<be.forages.length;_e++){var Ie=be.forages[_e];Ie!==te&&we.push(Ie._initReady().catch(ignoreErrors))}var Re=be.forages.slice(0);return ve.all(we).then((function(){return he.db=be.db,_getOriginalConnection(he)})).then((function(D){return he.db=D,_isUpgradeNeeded(he,te._defaultConfig.version)?_getUpgradedConnection(he):D})).then((function(D){he.db=be.db=D,te._dbInfo=he;for(var ye=0;ye<Re.length;ye++){var ve=Re[ye];ve!==te&&(ve._dbInfo.db=he.db,ve._dbInfo.version=he.version)}}))}function getItem(D,te){var he=this;D=normalizeKey(D);var ye=new ve((function(te,ye){he.ready().then((function(){createTransaction(he._dbInfo,Re,(function(be,ve){if(be)return ye(be);try{var we=ve.objectStore(he._dbInfo.storeName).get(D);we.onsuccess=function(){var D=we.result;void 0===D&&(D=null),_isEncodedBlob(D)&&(D=_decodeBlob(D)),te(D)},we.onerror=function(){ye(we.error)}}catch(D){ye(D)}}))})).catch(ye)}));return executeCallback(ye,te),ye}function iterate(D,te){var he=this,ye=new ve((function(te,ye){he.ready().then((function(){createTransaction(he._dbInfo,Re,(function(be,ve){if(be)return ye(be);try{var we=ve.objectStore(he._dbInfo.storeName).openCursor(),_e=1;we.onsuccess=function(){var he=we.result;if(he){var ye=he.value;_isEncodedBlob(ye)&&(ye=_decodeBlob(ye));var be=D(ye,he.key,_e++);void 0!==be?te(be):he.continue()}else te()},we.onerror=function(){ye(we.error)}}catch(D){ye(D)}}))})).catch(ye)}));return executeCallback(ye,te),ye}function setItem(D,te,he){var ye=this;D=normalizeKey(D);var be=new ve((function(he,be){var ve;ye.ready().then((function(){return ve=ye._dbInfo,"[object Blob]"===Ie.call(te)?_checkBlobSupport(ve.db).then((function(D){return D?te:_encodeBlob(te)})):te})).then((function(te){createTransaction(ye._dbInfo,ke,(function(ve,we){if(ve)return be(ve);try{var _e=we.objectStore(ye._dbInfo.storeName);null===te&&(te=void 0);var Pe=_e.put(te,D);we.oncomplete=function(){void 0===te&&(te=null),he(te)},we.onabort=we.onerror=function(){var D=Pe.error?Pe.error:Pe.transaction.error;be(D)}}catch(D){be(D)}}))})).catch(be)}));return executeCallback(be,he),be}function removeItem(D,te){var he=this;D=normalizeKey(D);var ye=new ve((function(te,ye){he.ready().then((function(){createTransaction(he._dbInfo,ke,(function(be,ve){if(be)return ye(be);try{var we=ve.objectStore(he._dbInfo.storeName).delete(D);ve.oncomplete=function(){te()},ve.onerror=function(){ye(we.error)},ve.onabort=function(){var D=we.error?we.error:we.transaction.error;ye(D)}}catch(D){ye(D)}}))})).catch(ye)}));return executeCallback(ye,te),ye}function clear(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){createTransaction(te._dbInfo,ke,(function(ye,be){if(ye)return he(ye);try{var ve=be.objectStore(te._dbInfo.storeName).clear();be.oncomplete=function(){D()},be.onabort=be.onerror=function(){var D=ve.error?ve.error:ve.transaction.error;he(D)}}catch(D){he(D)}}))})).catch(he)}));return executeCallback(he,D),he}function length(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){createTransaction(te._dbInfo,Re,(function(ye,be){if(ye)return he(ye);try{var ve=be.objectStore(te._dbInfo.storeName).count();ve.onsuccess=function(){D(ve.result)},ve.onerror=function(){he(ve.error)}}catch(D){he(D)}}))})).catch(he)}));return executeCallback(he,D),he}function key(D,te){var he=this,ye=new ve((function(te,ye){D<0?te(null):he.ready().then((function(){createTransaction(he._dbInfo,Re,(function(be,ve){if(be)return ye(be);try{var we=ve.objectStore(he._dbInfo.storeName),_e=!1,Pe=we.openKeyCursor();Pe.onsuccess=function(){var he=Pe.result;he?0===D||_e?te(he.key):(_e=!0,he.advance(D)):te(null)},Pe.onerror=function(){ye(Pe.error)}}catch(D){ye(D)}}))})).catch(ye)}));return executeCallback(ye,te),ye}function keys(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){createTransaction(te._dbInfo,Re,(function(ye,be){if(ye)return he(ye);try{var ve=be.objectStore(te._dbInfo.storeName).openKeyCursor(),we=[];ve.onsuccess=function(){var te=ve.result;te?(we.push(te.key),te.continue()):D(we)},ve.onerror=function(){he(ve.error)}}catch(D){he(D)}}))})).catch(he)}));return executeCallback(he,D),he}function dropInstance(D,te){te=getCallback.apply(this,arguments);var he=this.config();(D="function"!=typeof D&&D||{}).name||(D.name=D.name||he.name,D.storeName=D.storeName||he.storeName);var ye,we=this;if(D.name){var _e=D.name===he.name&&we._dbInfo.db?ve.resolve(we._dbInfo.db):_getOriginalConnection(D).then((function(te){var he=Pe[D.name],ye=he.forages;he.db=te;for(var be=0;be<ye.length;be++)ye[be]._dbInfo.db=te;return te}));ye=D.storeName?_e.then((function(te){if(te.objectStoreNames.contains(D.storeName)){var he=te.version+1;_deferReadiness(D);var ye=Pe[D.name],we=ye.forages;te.close();for(var _e=0;_e<we.length;_e++){var Ie=we[_e];Ie._dbInfo.db=null,Ie._dbInfo.version=he}var Re=new ve((function(te,ye){var ve=be.open(D.name,he);ve.onerror=function(D){ve.result.close(),ye(D)},ve.onupgradeneeded=function(){ve.result.deleteObjectStore(D.storeName)},ve.onsuccess=function(){var D=ve.result;D.close(),te(D)}}));return Re.then((function(D){ye.db=D;for(var te=0;te<we.length;te++){var he=we[te];he._dbInfo.db=D,_advanceReadiness(he._dbInfo)}})).catch((function(te){throw(_rejectReadiness(D,te)||ve.resolve()).catch((function(){})),te}))}})):_e.then((function(te){_deferReadiness(D);var he=Pe[D.name],ye=he.forages;te.close();for(var we=0;we<ye.length;we++)ye[we]._dbInfo.db=null;var _e=new ve((function(te,he){var ye=be.deleteDatabase(D.name);ye.onerror=function(){var D=ye.result;D&&D.close(),he(ye.error)},ye.onblocked=function(){console.warn('dropInstance blocked for database "'+D.name+'" until all open connections are closed')},ye.onsuccess=function(){var D=ye.result;D&&D.close(),te(D)}}));return _e.then((function(D){he.db=D;for(var te=0;te<ye.length;te++)_advanceReadiness(ye[te]._dbInfo)})).catch((function(te){throw(_rejectReadiness(D,te)||ve.resolve()).catch((function(){})),te}))}))}else ye=ve.reject("Invalid arguments");return executeCallback(ye,te),ye}var Oe={_driver:"asyncStorage",_initStorage:_initStorage,_support:isIndexedDBValid(),iterate:iterate,getItem:getItem,setItem:setItem,removeItem:removeItem,clear:clear,length:length,key:key,keys:keys,dropInstance:dropInstance};function isWebSQLValid(){return"function"==typeof openDatabase}var xe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Be="~~local_forage_type~",Fe=/^~~local_forage_type~([^~]+)~/,De="__lfsc__:",Le=De.length,Ue="arbf",qe="blob",je="si08",Je="ui08",et="uic8",tt="si16",rt="si32",nt="ur16",at="ui32",ut="fl32",ht="fl64",yt=Le+Ue.length,mt=Object.prototype.toString;function stringToBuffer(D){var te,he,ye,be,ve,we=.75*D.length,_e=D.length,Pe=0;"="===D[D.length-1]&&(we--,"="===D[D.length-2]&&we--);var Ie=new ArrayBuffer(we),Re=new Uint8Array(Ie);for(te=0;te<_e;te+=4)he=xe.indexOf(D[te]),ye=xe.indexOf(D[te+1]),be=xe.indexOf(D[te+2]),ve=xe.indexOf(D[te+3]),Re[Pe++]=he<<2|ye>>4,Re[Pe++]=(15&ye)<<4|be>>2,Re[Pe++]=(3&be)<<6|63&ve;return Ie}function bufferToString(D){var te,he=new Uint8Array(D),ye="";for(te=0;te<he.length;te+=3)ye+=xe[he[te]>>2],ye+=xe[(3&he[te])<<4|he[te+1]>>4],ye+=xe[(15&he[te+1])<<2|he[te+2]>>6],ye+=xe[63&he[te+2]];return he.length%3==2?ye=ye.substring(0,ye.length-1)+"=":he.length%3==1&&(ye=ye.substring(0,ye.length-2)+"=="),ye}function serialize(D,te){var he="";if(D&&(he=mt.call(D)),D&&("[object ArrayBuffer]"===he||D.buffer&&"[object ArrayBuffer]"===mt.call(D.buffer))){var ye,be=De;D instanceof ArrayBuffer?(ye=D,be+=Ue):(ye=D.buffer,"[object Int8Array]"===he?be+=je:"[object Uint8Array]"===he?be+=Je:"[object Uint8ClampedArray]"===he?be+=et:"[object Int16Array]"===he?be+=tt:"[object Uint16Array]"===he?be+=nt:"[object Int32Array]"===he?be+=rt:"[object Uint32Array]"===he?be+=at:"[object Float32Array]"===he?be+=ut:"[object Float64Array]"===he?be+=ht:te(new Error("Failed to get type for BinaryArray"))),te(be+bufferToString(ye))}else if("[object Blob]"===he){var ve=new FileReader;ve.onload=function(){var he=Be+D.type+"~"+bufferToString(this.result);te(De+qe+he)},ve.readAsArrayBuffer(D)}else try{te(JSON.stringify(D))}catch(he){console.error("Couldn't convert value into a JSON string: ",D),te(null,he)}}function deserialize(D){if(D.substring(0,Le)!==De)return JSON.parse(D);var te,he=D.substring(yt),ye=D.substring(Le,yt);if(ye===qe&&Fe.test(he)){var be=he.match(Fe);te=be[1],he=he.substring(be[0].length)}var ve=stringToBuffer(he);switch(ye){case Ue:return ve;case qe:return createBlob([ve],{type:te});case je:return new Int8Array(ve);case Je:return new Uint8Array(ve);case et:return new Uint8ClampedArray(ve);case tt:return new Int16Array(ve);case nt:return new Uint16Array(ve);case rt:return new Int32Array(ve);case at:return new Uint32Array(ve);case ut:return new Float32Array(ve);case ht:return new Float64Array(ve);default:throw new Error("Unkown type: "+ye)}}var bt={serialize:serialize,deserialize:deserialize,stringToBuffer:stringToBuffer,bufferToString:bufferToString};function createDbTable(D,te,he,ye){D.executeSql("CREATE TABLE IF NOT EXISTS "+te.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],he,ye)}function _initStorage$1(D){var te=this,he={db:null};if(D)for(var ye in D)he[ye]="string"!=typeof D[ye]?D[ye].toString():D[ye];var be=new ve((function(D,ye){try{he.db=openDatabase(he.name,String(he.version),he.description,he.size)}catch(D){return ye(D)}he.db.transaction((function(be){createDbTable(be,he,(function(){te._dbInfo=he,D()}),(function(D,te){ye(te)}))}),ye)}));return he.serializer=bt,be}function tryExecuteSql(D,te,he,ye,be,ve){D.executeSql(he,ye,be,(function(D,we){we.code===we.SYNTAX_ERR?D.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[te.storeName],(function(D,_e){_e.rows.length?ve(D,we):createDbTable(D,te,(function(){D.executeSql(he,ye,be,ve)}),ve)}),ve):ve(D,we)}),ve)}function getItem$1(D,te){var he=this;D=normalizeKey(D);var ye=new ve((function(te,ye){he.ready().then((function(){var be=he._dbInfo;be.db.transaction((function(he){tryExecuteSql(he,be,"SELECT * FROM "+be.storeName+" WHERE key = ? LIMIT 1",[D],(function(D,he){var ye=he.rows.length?he.rows.item(0).value:null;ye&&(ye=be.serializer.deserialize(ye)),te(ye)}),(function(D,te){ye(te)}))}))})).catch(ye)}));return executeCallback(ye,te),ye}function iterate$1(D,te){var he=this,ye=new ve((function(te,ye){he.ready().then((function(){var be=he._dbInfo;be.db.transaction((function(he){tryExecuteSql(he,be,"SELECT * FROM "+be.storeName,[],(function(he,ye){for(var ve=ye.rows,we=ve.length,_e=0;_e<we;_e++){var Pe=ve.item(_e),Ie=Pe.value;if(Ie&&(Ie=be.serializer.deserialize(Ie)),void 0!==(Ie=D(Ie,Pe.key,_e+1)))return void te(Ie)}te()}),(function(D,te){ye(te)}))}))})).catch(ye)}));return executeCallback(ye,te),ye}function _setItem(D,te,he,ye){var be=this;D=normalizeKey(D);var we=new ve((function(ve,we){be.ready().then((function(){void 0===te&&(te=null);var _e=te,Pe=be._dbInfo;Pe.serializer.serialize(te,(function(te,Ie){Ie?we(Ie):Pe.db.transaction((function(he){tryExecuteSql(he,Pe,"INSERT OR REPLACE INTO "+Pe.storeName+" (key, value) VALUES (?, ?)",[D,te],(function(){ve(_e)}),(function(D,te){we(te)}))}),(function(te){if(te.code===te.QUOTA_ERR){if(ye>0)return void ve(_setItem.apply(be,[D,_e,he,ye-1]));we(te)}}))}))})).catch(we)}));return executeCallback(we,he),we}function setItem$1(D,te,he){return _setItem.apply(this,[D,te,he,1])}function removeItem$1(D,te){var he=this;D=normalizeKey(D);var ye=new ve((function(te,ye){he.ready().then((function(){var be=he._dbInfo;be.db.transaction((function(he){tryExecuteSql(he,be,"DELETE FROM "+be.storeName+" WHERE key = ?",[D],(function(){te()}),(function(D,te){ye(te)}))}))})).catch(ye)}));return executeCallback(ye,te),ye}function clear$1(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){var ye=te._dbInfo;ye.db.transaction((function(te){tryExecuteSql(te,ye,"DELETE FROM "+ye.storeName,[],(function(){D()}),(function(D,te){he(te)}))}))})).catch(he)}));return executeCallback(he,D),he}function length$1(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){var ye=te._dbInfo;ye.db.transaction((function(te){tryExecuteSql(te,ye,"SELECT COUNT(key) as c FROM "+ye.storeName,[],(function(te,he){var ye=he.rows.item(0).c;D(ye)}),(function(D,te){he(te)}))}))})).catch(he)}));return executeCallback(he,D),he}function key$1(D,te){var he=this,ye=new ve((function(te,ye){he.ready().then((function(){var be=he._dbInfo;be.db.transaction((function(he){tryExecuteSql(he,be,"SELECT key FROM "+be.storeName+" WHERE id = ? LIMIT 1",[D+1],(function(D,he){var ye=he.rows.length?he.rows.item(0).key:null;te(ye)}),(function(D,te){ye(te)}))}))})).catch(ye)}));return executeCallback(ye,te),ye}function keys$1(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){var ye=te._dbInfo;ye.db.transaction((function(te){tryExecuteSql(te,ye,"SELECT key FROM "+ye.storeName,[],(function(te,he){for(var ye=[],be=0;be<he.rows.length;be++)ye.push(he.rows.item(be).key);D(ye)}),(function(D,te){he(te)}))}))})).catch(he)}));return executeCallback(he,D),he}function getAllStoreNames(D){return new ve((function(te,he){D.transaction((function(ye){ye.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(he,ye){for(var be=[],ve=0;ve<ye.rows.length;ve++)be.push(ye.rows.item(ve).name);te({db:D,storeNames:be})}),(function(D,te){he(te)}))}),(function(D){he(D)}))}))}function dropInstance$1(D,te){te=getCallback.apply(this,arguments);var he=this.config();(D="function"!=typeof D&&D||{}).name||(D.name=D.name||he.name,D.storeName=D.storeName||he.storeName);var ye,be=this;return ye=D.name?new ve((function(te){var ye;ye=D.name===he.name?be._dbInfo.db:openDatabase(D.name,"","",0),D.storeName?te({db:ye,storeNames:[D.storeName]}):te(getAllStoreNames(ye))})).then((function(D){return new ve((function(te,he){D.db.transaction((function(ye){function dropTable(D){return new ve((function(te,he){ye.executeSql("DROP TABLE IF EXISTS "+D,[],(function(){te()}),(function(D,te){he(te)}))}))}for(var be=[],we=0,_e=D.storeNames.length;we<_e;we++)be.push(dropTable(D.storeNames[we]));ve.all(be).then((function(){te()})).catch((function(D){he(D)}))}),(function(D){he(D)}))}))})):ve.reject("Invalid arguments"),executeCallback(ye,te),ye}var wt={_driver:"webSQLStorage",_initStorage:_initStorage$1,_support:isWebSQLValid(),iterate:iterate$1,getItem:getItem$1,setItem:setItem$1,removeItem:removeItem$1,clear:clear$1,length:length$1,key:key$1,keys:keys$1,dropInstance:dropInstance$1};function isLocalStorageValid(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(D){return!1}}function _getKeyPrefix(D,te){var he=D.name+"/";return D.storeName!==te.storeName&&(he+=D.storeName+"/"),he}function checkIfLocalStorageThrows(){var D="_localforage_support_test";try{return localStorage.setItem(D,!0),localStorage.removeItem(D),!1}catch(D){return!0}}function _isLocalStorageUsable(){return!checkIfLocalStorageThrows()||localStorage.length>0}function _initStorage$2(D){var te=this,he={};if(D)for(var ye in D)he[ye]=D[ye];return he.keyPrefix=_getKeyPrefix(D,te._defaultConfig),_isLocalStorageUsable()?(te._dbInfo=he,he.serializer=bt,ve.resolve()):ve.reject()}function clear$2(D){var te=this,he=te.ready().then((function(){for(var D=te._dbInfo.keyPrefix,he=localStorage.length-1;he>=0;he--){var ye=localStorage.key(he);0===ye.indexOf(D)&&localStorage.removeItem(ye)}}));return executeCallback(he,D),he}function getItem$2(D,te){var he=this;D=normalizeKey(D);var ye=he.ready().then((function(){var te=he._dbInfo,ye=localStorage.getItem(te.keyPrefix+D);return ye&&(ye=te.serializer.deserialize(ye)),ye}));return executeCallback(ye,te),ye}function iterate$2(D,te){var he=this,ye=he.ready().then((function(){for(var te=he._dbInfo,ye=te.keyPrefix,be=ye.length,ve=localStorage.length,we=1,_e=0;_e<ve;_e++){var Pe=localStorage.key(_e);if(0===Pe.indexOf(ye)){var Ie=localStorage.getItem(Pe);if(Ie&&(Ie=te.serializer.deserialize(Ie)),void 0!==(Ie=D(Ie,Pe.substring(be),we++)))return Ie}}}));return executeCallback(ye,te),ye}function key$2(D,te){var he=this,ye=he.ready().then((function(){var te,ye=he._dbInfo;try{te=localStorage.key(D)}catch(D){te=null}return te&&(te=te.substring(ye.keyPrefix.length)),te}));return executeCallback(ye,te),ye}function keys$2(D){var te=this,he=te.ready().then((function(){for(var D=te._dbInfo,he=localStorage.length,ye=[],be=0;be<he;be++){var ve=localStorage.key(be);0===ve.indexOf(D.keyPrefix)&&ye.push(ve.substring(D.keyPrefix.length))}return ye}));return executeCallback(he,D),he}function length$2(D){var te=this.keys().then((function(D){return D.length}));return executeCallback(te,D),te}function removeItem$2(D,te){var he=this;D=normalizeKey(D);var ye=he.ready().then((function(){var te=he._dbInfo;localStorage.removeItem(te.keyPrefix+D)}));return executeCallback(ye,te),ye}function setItem$2(D,te,he){var ye=this;D=normalizeKey(D);var be=ye.ready().then((function(){void 0===te&&(te=null);var he=te;return new ve((function(be,ve){var we=ye._dbInfo;we.serializer.serialize(te,(function(te,ye){if(ye)ve(ye);else try{localStorage.setItem(we.keyPrefix+D,te),be(he)}catch(D){"QuotaExceededError"!==D.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==D.name||ve(D),ve(D)}}))}))}));return executeCallback(be,he),be}function dropInstance$2(D,te){if(te=getCallback.apply(this,arguments),!(D="function"!=typeof D&&D||{}).name){var he=this.config();D.name=D.name||he.name,D.storeName=D.storeName||he.storeName}var ye,be=this;return ye=D.name?new ve((function(te){D.storeName?te(_getKeyPrefix(D,be._defaultConfig)):te(D.name+"/")})).then((function(D){for(var te=localStorage.length-1;te>=0;te--){var he=localStorage.key(te);0===he.indexOf(D)&&localStorage.removeItem(he)}})):ve.reject("Invalid arguments"),executeCallback(ye,te),ye}var _t={_driver:"localStorageWrapper",_initStorage:_initStorage$2,_support:isLocalStorageValid(),iterate:iterate$2,getItem:getItem$2,setItem:setItem$2,removeItem:removeItem$2,clear:clear$2,length:length$2,key:key$2,keys:keys$2,dropInstance:dropInstance$2},Tt=function sameValue(D,te){return D===te||"number"==typeof D&&"number"==typeof te&&isNaN(D)&&isNaN(te)},At=function includes(D,te){for(var he=D.length,ye=0;ye<he;){if(Tt(D[ye],te))return!0;ye++}return!1},Et=Array.isArray||function(D){return"[object Array]"===Object.prototype.toString.call(D)},Pt={},St={},Ct={INDEXEDDB:Oe,WEBSQL:wt,LOCALSTORAGE:_t},kt=[Ct.INDEXEDDB._driver,Ct.WEBSQL._driver,Ct.LOCALSTORAGE._driver],Ot=["dropInstance"],xt=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(Ot),Nt={description:"",driver:kt.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function callWhenReady(D,te){D[te]=function(){var he=arguments;return D.ready().then((function(){return D[te].apply(D,he)}))}}function extend(){for(var D=1;D<arguments.length;D++){var te=arguments[D];if(te)for(var he in te)te.hasOwnProperty(he)&&(Et(te[he])?arguments[0][he]=te[he].slice():arguments[0][he]=te[he])}return arguments[0]}var Bt=function(){function LocalForage(D){for(var te in _classCallCheck(this,LocalForage),Ct)if(Ct.hasOwnProperty(te)){var he=Ct[te],ye=he._driver;this[te]=ye,Pt[ye]||this.defineDriver(he)}this._defaultConfig=extend({},Nt),this._config=extend({},this._defaultConfig,D),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return LocalForage.prototype.config=function config(D){if("object"===(void 0===D?"undefined":ye(D))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var te in D){if("storeName"===te&&(D[te]=D[te].replace(/\W/g,"_")),"version"===te&&"number"!=typeof D[te])return new Error("Database version must be a number.");this._config[te]=D[te]}return!("driver"in D)||!D.driver||this.setDriver(this._config.driver)}return"string"==typeof D?this._config[D]:this._config},LocalForage.prototype.defineDriver=function defineDriver(D,te,he){var ye=new ve((function(te,he){try{var ye=D._driver,be=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!D._driver)return void he(be);for(var we=xt.concat("_initStorage"),_e=0,Pe=we.length;_e<Pe;_e++){var Ie=we[_e];if((!At(Ot,Ie)||D[Ie])&&"function"!=typeof D[Ie])return void he(be)}var Re=function configureMissingMethods(){for(var te=function methodNotImplementedFactory(D){return function(){var te=new Error("Method "+D+" is not implemented by the current driver"),he=ve.reject(te);return executeCallback(he,arguments[arguments.length-1]),he}},he=0,ye=Ot.length;he<ye;he++){var be=Ot[he];D[be]||(D[be]=te(be))}};Re();var ke=function setDriverSupport(he){Pt[ye]&&console.info("Redefining LocalForage driver: "+ye),Pt[ye]=D,St[ye]=he,te()};"_support"in D?D._support&&"function"==typeof D._support?D._support().then(ke,he):ke(!!D._support):ke(!0)}catch(D){he(D)}}));return executeTwoCallbacks(ye,te,he),ye},LocalForage.prototype.driver=function driver(){return this._driver||null},LocalForage.prototype.getDriver=function getDriver(D,te,he){var ye=Pt[D]?ve.resolve(Pt[D]):ve.reject(new Error("Driver not found."));return executeTwoCallbacks(ye,te,he),ye},LocalForage.prototype.getSerializer=function getSerializer(D){var te=ve.resolve(bt);return executeTwoCallbacks(te,D),te},LocalForage.prototype.ready=function ready(D){var te=this,he=te._driverSet.then((function(){return null===te._ready&&(te._ready=te._initDriver()),te._ready}));return executeTwoCallbacks(he,D,D),he},LocalForage.prototype.setDriver=function setDriver(D,te,he){var ye=this;Et(D)||(D=[D]);var be=this._getSupportedDrivers(D);function setDriverToConfig(){ye._config.driver=ye.driver()}function extendSelfWithDriver(D){return ye._extend(D),setDriverToConfig(),ye._ready=ye._initStorage(ye._config),ye._ready}function initDriver(D){return function(){var te=0;function driverPromiseLoop(){for(;te<D.length;){var he=D[te];return te++,ye._dbInfo=null,ye._ready=null,ye.getDriver(he).then(extendSelfWithDriver).catch(driverPromiseLoop)}setDriverToConfig();var be=new Error("No available storage method found.");return ye._driverSet=ve.reject(be),ye._driverSet}return driverPromiseLoop()}}var we=null!==this._driverSet?this._driverSet.catch((function(){return ve.resolve()})):ve.resolve();return this._driverSet=we.then((function(){var D=be[0];return ye._dbInfo=null,ye._ready=null,ye.getDriver(D).then((function(D){ye._driver=D._driver,setDriverToConfig(),ye._wrapLibraryMethodsWithReady(),ye._initDriver=initDriver(be)}))})).catch((function(){setDriverToConfig();var D=new Error("No available storage method found.");return ye._driverSet=ve.reject(D),ye._driverSet})),executeTwoCallbacks(this._driverSet,te,he),this._driverSet},LocalForage.prototype.supports=function supports(D){return!!St[D]},LocalForage.prototype._extend=function _extend(D){extend(this,D)},LocalForage.prototype._getSupportedDrivers=function _getSupportedDrivers(D){for(var te=[],he=0,ye=D.length;he<ye;he++){var be=D[he];this.supports(be)&&te.push(be)}return te},LocalForage.prototype._wrapLibraryMethodsWithReady=function _wrapLibraryMethodsWithReady(){for(var D=0,te=xt.length;D<te;D++)callWhenReady(this,xt[D])},LocalForage.prototype.createInstance=function createInstance(D){return new LocalForage(D)},LocalForage}(),Ft=new Bt;te.exports=Ft},{3:3}]},{},[4])(4)}(Lw);var Uw,$w=getDefaultExportFromCjs$1(Lw.exports),qw=(D=>(D.MissingApiKey="MISSING_API_KEY",D.ModalNotReady="MODAL_NOT_READY",D.MalformedResponse="MALFORMED_RESPONSE",D.InvalidArgument="INVALID_ARGUMENT",D.ExtensionNotInitialized="EXTENSION_NOT_INITIALIZED",D.IncompatibleExtensions="INCOMPATIBLE_EXTENSIONS",D))(qw||{}),Gw=((Uw=Gw||{}).SyncWeb3Method="SYNC_WEB3_METHOD",Uw.DuplicateIframe="DUPLICATE_IFRAME",Uw.ReactNativeEndpointConfiguration="REACT_NATIVE_ENDPOINT_CONFIGURATION",Uw.DeprecationNotice="DEPRECATION_NOTICE",Uw),jw=(D=>(D[D.ParseError=-32700]="ParseError",D[D.InvalidRequest=-32600]="InvalidRequest",D[D.MethodNotFound=-32601]="MethodNotFound",D[D.InvalidParams=-32602]="InvalidParams",D[D.InternalError=-32603]="InternalError",D[D.MagicLinkFailedVerification=-1e4]="MagicLinkFailedVerification",D[D.MagicLinkExpired=-10001]="MagicLinkExpired",D[D.MagicLinkRateLimited=-10002]="MagicLinkRateLimited",D[D.MagicLinkInvalidRedirectURL=-10006]="MagicLinkInvalidRedirectURL",D[D.UserAlreadyLoggedIn=-10003]="UserAlreadyLoggedIn",D[D.UpdateEmailFailed=-10004]="UpdateEmailFailed",D[D.UserRequestEditEmail=-10005]="UserRequestEditEmail",D[D.InactiveRecipient=-10010]="InactiveRecipient",D[D.AccessDeniedToUser=-10011]="AccessDeniedToUser",D[D.RedirectLoginComplete=-10015]="RedirectLoginComplete",D))(jw||{}),Hw=(D=>(D.MetaMask="metamask",D.CoinbaseWallet="coinbase_wallet",D))(Hw||{}),zw=(D=>(D.WalletSelected="wallet_selected",D.WalletConnected="wallet_connected",D.WalletRejected="wallet_rejected",D))(zw||{}),Ww=(D=>(D.LoginWithSms="magic_auth_login_with_sms",D.LoginWithEmailOTP="magic_auth_login_with_email_otp",D.LoginWithMagicLink="magic_auth_login_with_magic_link",D.LoginWithCredential="magic_auth_login_with_credential",D.SetAuthorizationToken="magic_auth_set_authorization_token",D.GetIdToken="magic_auth_get_id_token",D.GenerateIdToken="magic_auth_generate_id_token",D.GetMetadata="magic_auth_get_metadata",D.IsLoggedIn="magic_is_logged_in",D.Logout="magic_auth_logout",D.UpdateEmail="magic_auth_update_email",D.UserSettings="magic_auth_settings",D.UserSettingsTestMode="magic_auth_settings_testing_mode",D.LoginWithSmsTestMode="magic_auth_login_with_sms_testing_mode",D.LoginWithEmailOTPTestMode="magic_auth_login_with_email_otp_testing_mode",D.LoginWithMagicLinkTestMode="magic_login_with_magic_link_testing_mode",D.LoginWithCredentialTestMode="magic_auth_login_with_credential_testing_mode",D.GetIdTokenTestMode="magic_auth_get_id_token_testing_mode",D.GenerateIdTokenTestMode="magic_auth_generate_id_token_testing_mode",D.GetMetadataTestMode="magic_auth_get_metadata_testing_mode",D.IsLoggedInTestMode="magic_auth_is_logged_in_testing_mode",D.LogoutTestMode="magic_auth_logout_testing_mode",D.UpdateEmailTestMode="magic_auth_update_email_testing_mode",D.IntermediaryEvent="magic_intermediary_event",D.RequestAccounts="eth_requestAccounts",D.GetInfo="magic_get_info",D.ShowUI="magic_wallet",D.NFTPurchase="magic_nft_purchase",D.NFTCheckout="magic_nft_checkout",D.NFTTransfer="magic_nft_transfer",D.RequestUserInfoWithUI="mc_request_user_info",D.Disconnect="mc_disconnect",D.RecoverAccount="magic_auth_recover_account",D.RecoverAccountTestMode="magic_auth_recover_account_testing_mode",D.MagicBoxHeartBeat="magic_box_heart_beat",D.AutoConnect="mc_auto_connect",D.Login="mc_login",D.EncryptV1="magic_auth_encrypt_v1",D.DecryptV1="magic_auth_decrypt_v1",D.ShowNFTs="magic_show_nfts",D.ShowOnRamp="magic_show_fiat_onramp",D.ShowSendTokensUI="magic_show_send_tokens_ui",D.ShowAddress="magic_show_address",D.ShowBalances="magic_show_balances",D.SendGaslessTransaction="eth_sendGaslessTransaction",D))(Ww||{}),Vw=(D=>(D.MAGIC_HANDLE_RESPONSE="MAGIC_HANDLE_RESPONSE",D.MAGIC_OVERLAY_READY="MAGIC_OVERLAY_READY",D.MAGIC_SHOW_OVERLAY="MAGIC_SHOW_OVERLAY",D.MAGIC_HIDE_OVERLAY="MAGIC_HIDE_OVERLAY",D.MAGIC_HANDLE_EVENT="MAGIC_HANDLE_EVENT",D.MAGIC_MG_BOX_SEND_RECEIPT="MAGIC_MG_BOX_SEND_RECEIPT",D))(Vw||{}),Kw=(D=>(D.MAGIC_HANDLE_REQUEST="MAGIC_HANDLE_REQUEST",D))(Kw||{}),Jw=(D=>(D.UpdateEmail="update-email",D.MFA="mfa",D.Recovery="recovery",D))(Jw||{}),Xw=(D=>(D.Retry="retry",D))(Xw||{}),Qw=(D=>(D.EmailSent="email-sent",D.EmailNotDeliverable="email-not-deliverable",D))(Qw||{}),Zw=(D=>(D.VerifyEmailOtp="verify-email-otp",D.Cancel="cancel",D))(Zw||{}),Yw=(D=>(D.EmailOTPSent="email-otp-sent",D.InvalidEmailOtp="invalid-email-otp",D.ExpiredEmailOtp="expired-email-otp",D))(Yw||{}),e_=(D=>(D.Retry="device-retry",D))(e_||{}),t_=(D=>(D.DeviceApproved="device-approved",D.DeviceNeedsApproval="device-needs-approval",D.DeviceVerificationLinkExpired="device-verification-link-expired",D.DeviceVerificationEmailSent="device-verification-email-sent",D))(t_||{}),r_=(D=>(D.Harmony="HARMONY",D))(r_||{}),n_=(D=>(D.PhoneNumber="phone_number",D))(n_||{}),a_=Object.create,i_=Object.defineProperty,s_=Object.defineProperties,o_=Object.getOwnPropertyDescriptor,c_=Object.getOwnPropertyDescriptors,d_=Object.getOwnPropertyNames,u_=Object.getOwnPropertySymbols,f_=Object.getPrototypeOf,l_=Object.prototype.hasOwnProperty,p_=Object.prototype.propertyIsEnumerable,We=(D,te,he)=>te in D?i_(D,te,{enumerable:!0,configurable:!0,writable:!0,value:he}):D[te]=he,G=(D,te)=>{for(var he in te||(te={}))l_.call(te,he)&&We(D,he,te[he]);if(u_)for(var he of u_(te))p_.call(te,he)&&We(D,he,te[he]);return D},se$1=(D,te)=>s_(D,c_(te)),E=(D,te,he)=>new Promise(((ye,be)=>{var s=D=>{try{i(he.next(D))}catch(D){be(D)}},a=D=>{try{i(he.throw(D))}catch(D){be(D)}},i=D=>D.done?ye(D.value):Promise.resolve(D.value).then(s,a);i((he=he.apply(D,te)).next())})),h_=((D,te)=>()=>(te||D((te={exports:{}}).exports,te),te.exports))(((D,te)=>{var he=Object.prototype.hasOwnProperty,ye="~";function ee(){}function On(D,te,he){this.fn=D,this.context=te,this.once=he||!1}function pt(D,te,he,be,ve){if("function"!=typeof he)throw new TypeError("The listener must be a function");var we=new On(he,be||D,ve),_e=ye?ye+te:te;return D._events[_e]?D._events[_e].fn?D._events[_e]=[D._events[_e],we]:D._events[_e].push(we):(D._events[_e]=we,D._eventsCount++),D}function pe(D,te){0==--D._eventsCount?D._events=new ee:delete D._events[te]}function v(){this._events=new ee,this._eventsCount=0}Object.create&&(ee.prototype=Object.create(null),(new ee).__proto__||(ye=!1)),v.prototype.eventNames=function(){var D,te,be=[];if(0===this._eventsCount)return be;for(te in D=this._events)he.call(D,te)&&be.push(ye?te.slice(1):te);return Object.getOwnPropertySymbols?be.concat(Object.getOwnPropertySymbols(D)):be},v.prototype.listeners=function(D){var te=ye?ye+D:D,he=this._events[te];if(!he)return[];if(he.fn)return[he.fn];for(var be=0,ve=he.length,we=new Array(ve);be<ve;be++)we[be]=he[be].fn;return we},v.prototype.listenerCount=function(D){var te=ye?ye+D:D,he=this._events[te];return he?he.fn?1:he.length:0},v.prototype.emit=function(D,te,he,be,ve,we){var _e=ye?ye+D:D;if(!this._events[_e])return!1;var Pe,Ie,Re=this._events[_e],ke=arguments.length;if(Re.fn){switch(Re.once&&this.removeListener(D,Re.fn,void 0,!0),ke){case 1:return Re.fn.call(Re.context),!0;case 2:return Re.fn.call(Re.context,te),!0;case 3:return Re.fn.call(Re.context,te,he),!0;case 4:return Re.fn.call(Re.context,te,he,be),!0;case 5:return Re.fn.call(Re.context,te,he,be,ve),!0;case 6:return Re.fn.call(Re.context,te,he,be,ve,we),!0}for(Ie=1,Pe=new Array(ke-1);Ie<ke;Ie++)Pe[Ie-1]=arguments[Ie];Re.fn.apply(Re.context,Pe)}else{var Oe,xe=Re.length;for(Ie=0;Ie<xe;Ie++)switch(Re[Ie].once&&this.removeListener(D,Re[Ie].fn,void 0,!0),ke){case 1:Re[Ie].fn.call(Re[Ie].context);break;case 2:Re[Ie].fn.call(Re[Ie].context,te);break;case 3:Re[Ie].fn.call(Re[Ie].context,te,he);break;case 4:Re[Ie].fn.call(Re[Ie].context,te,he,be);break;default:if(!Pe)for(Oe=1,Pe=new Array(ke-1);Oe<ke;Oe++)Pe[Oe-1]=arguments[Oe];Re[Ie].fn.apply(Re[Ie].context,Pe)}}return!0},v.prototype.on=function(D,te,he){return pt(this,D,te,he,!1)},v.prototype.once=function(D,te,he){return pt(this,D,te,he,!0)},v.prototype.removeListener=function(D,te,he,be){var ve=ye?ye+D:D;if(!this._events[ve])return this;if(!te)return pe(this,ve),this;var we=this._events[ve];if(we.fn)we.fn===te&&(!be||we.once)&&(!he||we.context===he)&&pe(this,ve);else{for(var _e=0,Pe=[],Ie=we.length;_e<Ie;_e++)(we[_e].fn!==te||be&&!we[_e].once||he&&we[_e].context!==he)&&Pe.push(we[_e]);Pe.length?this._events[ve]=1===Pe.length?Pe[0]:Pe:pe(this,ve)}return this},v.prototype.removeAllListeners=function(D){var te;return D?(te=ye?ye+D:D,this._events[te]&&pe(this,te)):(this._events=new ee,this._eventsCount=0),this},v.prototype.off=v.prototype.removeListener,v.prototype.addListener=v.prototype.on,v.prefixed=ye,v.EventEmitter=v,typeof te<"u"&&(te.exports=v)}));var y_={SEMVER_SPEC_VERSION:"2.0.0",MAX_LENGTH:256,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH:16},h=()=>{},m_=function Dt(D){let te={exports:{}};return D(te,te.exports),te.exports}((function(D,te){let{MAX_SAFE_COMPONENT_LENGTH:he}=y_,ye=(te=D.exports={}).re=[],be=te.src=[],ve=te.t={},we=0,i=(D,te,he)=>{let _e=we++;ve[D]=_e,be[_e]=te,ye[_e]=new RegExp(te,he?"g":void 0)};i("NUMERICIDENTIFIER","0|[1-9]\\d*"),i("NUMERICIDENTIFIERLOOSE","[0-9]+"),i("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*"),i("MAINVERSION",`(${be[ve.NUMERICIDENTIFIER]})\\.(${be[ve.NUMERICIDENTIFIER]})\\.(${be[ve.NUMERICIDENTIFIER]})`),i("MAINVERSIONLOOSE",`(${be[ve.NUMERICIDENTIFIERLOOSE]})\\.(${be[ve.NUMERICIDENTIFIERLOOSE]})\\.(${be[ve.NUMERICIDENTIFIERLOOSE]})`),i("PRERELEASEIDENTIFIER",`(?:${be[ve.NUMERICIDENTIFIER]}|${be[ve.NONNUMERICIDENTIFIER]})`),i("PRERELEASEIDENTIFIERLOOSE",`(?:${be[ve.NUMERICIDENTIFIERLOOSE]}|${be[ve.NONNUMERICIDENTIFIER]})`),i("PRERELEASE",`(?:-(${be[ve.PRERELEASEIDENTIFIER]}(?:\\.${be[ve.PRERELEASEIDENTIFIER]})*))`),i("PRERELEASELOOSE",`(?:-?(${be[ve.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${be[ve.PRERELEASEIDENTIFIERLOOSE]})*))`),i("BUILDIDENTIFIER","[0-9A-Za-z-]+"),i("BUILD",`(?:\\+(${be[ve.BUILDIDENTIFIER]}(?:\\.${be[ve.BUILDIDENTIFIER]})*))`),i("FULLPLAIN",`v?${be[ve.MAINVERSION]}${be[ve.PRERELEASE]}?${be[ve.BUILD]}?`),i("FULL",`^${be[ve.FULLPLAIN]}$`),i("LOOSEPLAIN",`[v=\\s]*${be[ve.MAINVERSIONLOOSE]}${be[ve.PRERELEASELOOSE]}?${be[ve.BUILD]}?`),i("LOOSE",`^${be[ve.LOOSEPLAIN]}$`),i("GTLT","((?:<|>)?=?)"),i("XRANGEIDENTIFIERLOOSE",`${be[ve.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),i("XRANGEIDENTIFIER",`${be[ve.NUMERICIDENTIFIER]}|x|X|\\*`),i("XRANGEPLAIN",`[v=\\s]*(${be[ve.XRANGEIDENTIFIER]})(?:\\.(${be[ve.XRANGEIDENTIFIER]})(?:\\.(${be[ve.XRANGEIDENTIFIER]})(?:${be[ve.PRERELEASE]})?${be[ve.BUILD]}?)?)?`),i("XRANGEPLAINLOOSE",`[v=\\s]*(${be[ve.XRANGEIDENTIFIERLOOSE]})(?:\\.(${be[ve.XRANGEIDENTIFIERLOOSE]})(?:\\.(${be[ve.XRANGEIDENTIFIERLOOSE]})(?:${be[ve.PRERELEASELOOSE]})?${be[ve.BUILD]}?)?)?`),i("XRANGE",`^${be[ve.GTLT]}\\s*${be[ve.XRANGEPLAIN]}$`),i("XRANGELOOSE",`^${be[ve.GTLT]}\\s*${be[ve.XRANGEPLAINLOOSE]}$`),i("COERCE",`(^|[^\\d])(\\d{1,${he}})(?:\\.(\\d{1,${he}}))?(?:\\.(\\d{1,${he}}))?(?:$|[^\\d])`),i("COERCERTL",be[ve.COERCE],!0),i("LONETILDE","(?:~>?)"),i("TILDETRIM",`(\\s*)${be[ve.LONETILDE]}\\s+`,!0),te.tildeTrimReplace="$1~",i("TILDE",`^${be[ve.LONETILDE]}${be[ve.XRANGEPLAIN]}$`),i("TILDELOOSE",`^${be[ve.LONETILDE]}${be[ve.XRANGEPLAINLOOSE]}$`),i("LONECARET","(?:\\^)"),i("CARETTRIM",`(\\s*)${be[ve.LONECARET]}\\s+`,!0),te.caretTrimReplace="$1^",i("CARET",`^${be[ve.LONECARET]}${be[ve.XRANGEPLAIN]}$`),i("CARETLOOSE",`^${be[ve.LONECARET]}${be[ve.XRANGEPLAINLOOSE]}$`),i("COMPARATORLOOSE",`^${be[ve.GTLT]}\\s*(${be[ve.LOOSEPLAIN]})$|^$`),i("COMPARATOR",`^${be[ve.GTLT]}\\s*(${be[ve.FULLPLAIN]})$|^$`),i("COMPARATORTRIM",`(\\s*)${be[ve.GTLT]}\\s*(${be[ve.LOOSEPLAIN]}|${be[ve.XRANGEPLAIN]})`,!0),te.comparatorTrimReplace="$1$2$3",i("HYPHENRANGE",`^\\s*(${be[ve.XRANGEPLAIN]})\\s+-\\s+(${be[ve.XRANGEPLAIN]})\\s*$`),i("HYPHENRANGELOOSE",`^\\s*(${be[ve.XRANGEPLAINLOOSE]})\\s+-\\s+(${be[ve.XRANGEPLAINLOOSE]})\\s*$`),i("STAR","(<|>)?=?\\s*\\*"),i("GTE0","^\\s*>=\\s*0.0.0\\s*$"),i("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")})),b_=/^[0-9]+$/,ze=(D,te)=>{let he=b_.test(D),ye=b_.test(te);return he&&ye&&(D=+D,te=+te),D===te?0:he&&!ye?-1:ye&&!he?1:D<te?-1:1},g_={compareIdentifiers:ze,rcompareIdentifiers:(D,te)=>ze(te,D)},{MAX_LENGTH:v_,MAX_SAFE_INTEGER:w_}=y_,{re:T_,t:A_}=m_,{compareIdentifiers:E_}=g_,P_=class{constructor(D,te){if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),D instanceof P_){if(D.loose===!!te.loose&&D.includePrerelease===!!te.includePrerelease)return D;D=D.version}else if("string"!=typeof D)throw new TypeError(`Invalid Version: ${D}`);if(D.length>v_)throw new TypeError(`version is longer than ${v_} characters`);this.options=te,this.loose=!!te.loose,this.includePrerelease=!!te.includePrerelease;let he=D.trim().match(te.loose?T_[A_.LOOSE]:T_[A_.FULL]);if(!he)throw new TypeError(`Invalid Version: ${D}`);if(this.raw=D,this.major=+he[1],this.minor=+he[2],this.patch=+he[3],this.major>w_||this.major<0)throw new TypeError("Invalid major version");if(this.minor>w_||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>w_||this.patch<0)throw new TypeError("Invalid patch version");he[4]?this.prerelease=he[4].split(".").map((D=>{if(/^[0-9]+$/.test(D)){let te=+D;if(te>=0&&te<w_)return te}return D})):this.prerelease=[],this.build=he[5]?he[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(D){if(h("SemVer.compare",this.version,this.options),!(D instanceof P_)){if("string"==typeof D&&D===this.version)return 0;D=new P_(D,this.options)}return D.version===this.version?0:this.compareMain(D)||this.comparePre(D)}compareMain(D){return D instanceof P_||(D=new P_(D,this.options)),E_(this.major,D.major)||E_(this.minor,D.minor)||E_(this.patch,D.patch)}comparePre(D){if(D instanceof P_||(D=new P_(D,this.options)),this.prerelease.length&&!D.prerelease.length)return-1;if(!this.prerelease.length&&D.prerelease.length)return 1;if(!this.prerelease.length&&!D.prerelease.length)return 0;let te=0;do{let he=this.prerelease[te],ye=D.prerelease[te];if(void 0===he&&void 0===ye)return 0;if(void 0===ye)return 1;if(void 0===he)return-1;if(he!==ye)return E_(he,ye)}while(++te)}compareBuild(D){D instanceof P_||(D=new P_(D,this.options));let te=0;do{let he=this.build[te],ye=D.build[te];if(void 0===he&&void 0===ye)return 0;if(void 0===ye)return 1;if(void 0===he)return-1;if(he!==ye)return E_(he,ye)}while(++te)}inc(D,te){switch(D){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",te);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",te);break;case"prepatch":this.prerelease.length=0,this.inc("patch",te),this.inc("pre",te);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",te),this.inc("pre",te);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{let D=this.prerelease.length;for(;--D>=0;)"number"==typeof this.prerelease[D]&&(this.prerelease[D]++,D=-2);-1===D&&this.prerelease.push(0)}te&&(this.prerelease[0]===te?isNaN(this.prerelease[1])&&(this.prerelease=[te,0]):this.prerelease=[te,0]);break;default:throw new Error(`invalid increment argument: ${D}`)}return this.format(),this.raw=this.version,this}},K=(D,te,he)=>new P_(D,he).compare(new P_(te,he)),jt=(D,te,he)=>0===K(D,te,he),Xt=(D,te,he)=>0!==K(D,te,he),Ht=(D,te,he)=>K(D,te,he)>0,Yt=(D,te,he)=>K(D,te,he)>=0,Qt=(D,te,he)=>K(D,te,he)<0,tn=(D,te,he)=>K(D,te,he)<=0,Me=(D,te,he,ye)=>{switch(te){case"===":return"object"==typeof D&&(D=D.version),"object"==typeof he&&(he=he.version),D===he;case"!==":return"object"==typeof D&&(D=D.version),"object"==typeof he&&(he=he.version),D!==he;case"":case"=":case"==":return jt(D,he,ye);case"!=":return Xt(D,he,ye);case">":return Ht(D,he,ye);case">=":return Yt(D,he,ye);case"<":return Qt(D,he,ye);case"<=":return tn(D,he,ye);default:throw new TypeError(`Invalid operator: ${te}`)}},S_=Symbol("SemVer ANY"),C_=class{static get ANY(){return S_}constructor(D,te){if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),D instanceof C_){if(D.loose===!!te.loose)return D;D=D.value}this.options=te,this.loose=!!te.loose,this.parse(D),this.semver===S_?this.value="":this.value=this.operator+this.semver.version}parse(D){let te=this.options.loose?I_[R_.COMPARATORLOOSE]:I_[R_.COMPARATOR],he=D.match(te);if(!he)throw new TypeError(`Invalid comparator: ${D}`);this.operator=void 0!==he[1]?he[1]:"","="===this.operator&&(this.operator=""),he[2]?this.semver=new P_(he[2],this.options.loose):this.semver=S_}toString(){return this.value}test(D){if(h("Comparator.test",D,this.options.loose),this.semver===S_||D===S_)return!0;if("string"==typeof D)try{D=new P_(D,this.options)}catch(D){return!1}return Me(D,this.operator,this.semver,this.options)}intersects(D,te){if(!(D instanceof C_))throw new TypeError("a Comparator is required");if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),""===this.operator)return""===this.value||new k_(D.value,te).test(this.value);if(""===D.operator)return""===D.value||new k_(this.value,te).test(D.semver);let he=!(">="!==this.operator&&">"!==this.operator||">="!==D.operator&&">"!==D.operator),ye=!("<="!==this.operator&&"<"!==this.operator||"<="!==D.operator&&"<"!==D.operator),be=this.semver.version===D.semver.version,ve=!(">="!==this.operator&&"<="!==this.operator||">="!==D.operator&&"<="!==D.operator),we=Me(this.semver,"<",D.semver,te)&&(">="===this.operator||">"===this.operator)&&("<="===D.operator||"<"===D.operator),_e=Me(this.semver,">",D.semver,te)&&("<="===this.operator||"<"===this.operator)&&(">="===D.operator||">"===D.operator);return he||ye||be&&ve||we||_e}},{re:I_,t:R_}=m_,k_=class{constructor(D,te){if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),D instanceof k_)return D.loose===!!te.loose&&D.includePrerelease===!!te.includePrerelease?D:new k_(D.raw,te);if(D instanceof C_)return this.raw=D.value,this.set=[[D]],this.format(),this;if(this.options=te,this.loose=!!te.loose,this.includePrerelease=!!te.includePrerelease,this.raw=D,this.set=D.split(/\s*\|\|\s*/).map((D=>this.parseRange(D.trim()))).filter((D=>D.length)),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${D}`);this.format()}format(){return this.range=this.set.map((D=>D.join(" ").trim())).join("||").trim(),this.range}toString(){return this.range}parseRange(D){let{loose:te}=this.options;D=D.trim();let he=te?O_[x_.HYPHENRANGELOOSE]:O_[x_.HYPHENRANGE];D=(D=D.replace(he,fn(this.options.includePrerelease))).replace(O_[x_.COMPARATORTRIM],N_),h("comparator trim",D,O_[x_.COMPARATORTRIM]),D=(D=(D=D.replace(O_[x_.TILDETRIM],M_)).replace(O_[x_.CARETTRIM],B_)).split(/\s+/).join(" ");let ye=te?O_[x_.COMPARATORLOOSE]:O_[x_.COMPARATOR];return D.split(" ").map((D=>an(D,this.options))).join(" ").split(/\s+/).map((D=>En(D,this.options))).filter(this.options.loose?D=>!!D.match(ye):()=>!0).map((D=>new C_(D,this.options)))}intersects(D,te){if(!(D instanceof k_))throw new TypeError("a Range is required");return this.set.some((he=>Xe(he,te)&&D.set.some((D=>Xe(D,te)&&he.every((he=>D.every((D=>he.intersects(D,te)))))))))}test(D){if(!D)return!1;if("string"==typeof D)try{D=new P_(D,this.options)}catch(D){return!1}for(let te=0;te<this.set.length;te++)if(gn(this.set[te],D,this.options))return!0;return!1}},{re:O_,t:x_,comparatorTrimReplace:N_,tildeTrimReplace:M_,caretTrimReplace:B_}=m_,Xe=(D,te)=>{let he=!0,ye=D.slice(),be=ye.pop();for(;he&&ye.length;)he=ye.every((D=>be.intersects(D,te))),be=ye.pop();return he},an=(D,te)=>(D=un(D,te),D=cn(D,te),D=pn(D,te),D=hn(D)),T=D=>!D||"x"===D.toLowerCase()||"*"===D,cn=(D,te)=>D.trim().split(/\s+/).map((D=>ln(D,te))).join(" "),ln=(D,te)=>{let he=te.loose?O_[x_.TILDELOOSE]:O_[x_.TILDE];return D.replace(he,((D,te,he,ye,be)=>{let ve;return ve=T(te)?"":T(he)?`>=${te}.0.0 <${+te+1}.0.0-0`:T(ye)?`>=${te}.${he}.0 <${te}.${+he+1}.0-0`:be?`>=${te}.${he}.${ye}-${be} <${te}.${+he+1}.0-0`:`>=${te}.${he}.${ye} <${te}.${+he+1}.0-0`,ve}))},un=(D,te)=>D.trim().split(/\s+/).map((D=>dn(D,te))).join(" "),dn=(D,te)=>{let he=te.loose?O_[x_.CARETLOOSE]:O_[x_.CARET],ye=te.includePrerelease?"-0":"";return D.replace(he,((D,te,he,be,ve)=>{let we;return we=T(te)?"":T(he)?`>=${te}.0.0${ye} <${+te+1}.0.0-0`:T(be)?"0"===te?`>=${te}.${he}.0${ye} <${te}.${+he+1}.0-0`:`>=${te}.${he}.0${ye} <${+te+1}.0.0-0`:ve?"0"===te?"0"===he?`>=${te}.${he}.${be}-${ve} <${te}.${he}.${+be+1}-0`:`>=${te}.${he}.${be}-${ve} <${te}.${+he+1}.0-0`:`>=${te}.${he}.${be}-${ve} <${+te+1}.0.0-0`:"0"===te?"0"===he?`>=${te}.${he}.${be}${ye} <${te}.${he}.${+be+1}-0`:`>=${te}.${he}.${be}${ye} <${te}.${+he+1}.0-0`:`>=${te}.${he}.${be} <${+te+1}.0.0-0`,we}))},pn=(D,te)=>D.split(/\s+/).map((D=>mn(D,te))).join(" "),mn=(D,te)=>{D=D.trim();let he=te.loose?O_[x_.XRANGELOOSE]:O_[x_.XRANGE];return D.replace(he,((D,he,ye,be,ve,we)=>{let _e=T(ye),Pe=_e||T(be),Ie=Pe||T(ve),Re=Ie;return"="===he&&Re&&(he=""),we=te.includePrerelease?"-0":"",_e?D=">"===he||"<"===he?"<0.0.0-0":"*":he&&Re?(Pe&&(be=0),ve=0,">"===he?(he=">=",Pe?(ye=+ye+1,be=0,ve=0):(be=+be+1,ve=0)):"<="===he&&(he="<",Pe?ye=+ye+1:be=+be+1),"<"===he&&(we="-0"),D=`${he+ye}.${be}.${ve}${we}`):Pe?D=`>=${ye}.0.0${we} <${+ye+1}.0.0-0`:Ie&&(D=`>=${ye}.${be}.0${we} <${ye}.${+be+1}.0-0`),D}))},hn=(D,te)=>D.trim().replace(O_[x_.STAR],""),En=(D,te)=>D.trim().replace(O_[te.includePrerelease?x_.GTE0PRE:x_.GTE0],""),fn=D=>(te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe)=>`${he=T(ye)?"":T(be)?`>=${ye}.0.0${D?"-0":""}`:T(ve)?`>=${ye}.${be}.0${D?"-0":""}`:we?`>=${he}`:`>=${he}${D?"-0":""}`} ${Pe=T(Ie)?"":T(Re)?`<${+Ie+1}.0.0-0`:T(ke)?`<${Ie}.${+Re+1}.0-0`:Oe?`<=${Ie}.${Re}.${ke}-${Oe}`:D?`<${Ie}.${Re}.${+ke+1}-0`:`<=${Pe}`}`.trim(),gn=(D,te,he)=>{for(let he=0;he<D.length;he++)if(!D[he].test(te))return!1;if(te.prerelease.length&&!he.includePrerelease){for(let he=0;he<D.length;he++)if(h(D[he].semver),D[he].semver!==C_.ANY&&D[he].semver.prerelease.length>0){let ye=D[he].semver;if(ye.major===te.major&&ye.minor===te.minor&&ye.patch===te.patch)return!0}return!1}return!0},Ye=(D,te,he)=>{try{te=new k_(te,he)}catch(D){return!1}return te.test(D)},{MAX_LENGTH:F_}=y_,{re:D_,t:L_}=m_,vn=(D,te)=>{if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),D instanceof P_)return D;if("string"!=typeof D||D.length>F_||!(te.loose?D_[L_.LOOSE]:D_[L_.FULL]).test(D))return null;try{return new P_(D,te)}catch(D){return null}},{re:U_,t:$_}=m_,Ze$1=(D,te)=>{if(D instanceof P_)return D;if("number"==typeof D&&(D=String(D)),"string"!=typeof D)return null;let he=null;if((te=te||{}).rtl){let te;for(;(te=U_[$_.COERCERTL].exec(D))&&(!he||he.index+he[0].length!==D.length);)he&&te.index+te[0].length===he.index+he[0].length||(he=te),U_[$_.COERCERTL].lastIndex=te.index+te[1].length+te[2].length;U_[$_.COERCERTL].lastIndex=-1}else he=D.match(U_[$_.COERCE]);return null===he?null:vn(`${he[2]}.${he[3]||"0"}.${he[4]||"0"}`,te)};function Tn(D){return String.fromCharCode(parseInt(D.slice(1),16))}function In(D){return`%${`00${D.charCodeAt(0).toString(16)}`.slice(-2)}`}function ce(D){return function bn$1(D){return btoa(encodeURIComponent(D).replace(/%[0-9A-F]{2}/g,Tn))}(JSON.stringify(D))}function Qe(D){return JSON.parse(function Pn(D){return decodeURIComponent(Array.from(atob(D),In).join(""))}(D))}function C(D){return void 0===D}function le(D){return function xn(D){return null===D}(D)||C(D)}function ue(D){if(!D)return!0;for(let te in D)if(Object.hasOwnProperty.call(D,te))return!1;return!0}var q_={};var G_={"magic-sdk":"magic-sdk","@magic-sdk/react-native":"magic-sdk-rn","@magic-sdk/react-native-bare":"magic-sdk-rn-bare","@magic-sdk/react-native-expo":"magic-sdk-rn-expo"},j_=class extends Error{constructor(D,te){super(`Magic SDK Error: [${D}] ${te}`),this.code=D,this.rawMessage=te,this.__proto__=Error,Object.setPrototypeOf(this,j_.prototype)}},H_=class extends Error{constructor(D){super(),this.__proto__=Error;let te=Number(null==D?void 0:D.code);this.rawMessage=(null==D?void 0:D.message)||"Internal error",this.code=function tt$1(D){return!le(D)&&"number"==typeof D&&Object.values(jw).includes(D)}(te)?te:jw.InternalError,this.message=`Magic RPC Error: [${this.code}] ${this.rawMessage}`,this.data=(null==D?void 0:D.data)||void 0,Object.setPrototypeOf(this,H_.prototype)}},z_=class{constructor(D,te){this.code=D,this.rawMessage=te,this.message=`Magic SDK Warning: [${D}] ${te}`}log(){console.warn(this.message)}},W_=class extends Error{constructor(D,te,he,ye){super(`Magic Extension Error (${D.name}): [${te}] ${he}`),this.code=te,this.rawMessage=he,this.data=ye,this.__proto__=Error,Object.setPrototypeOf(this,W_.prototype)}},V_=class{constructor(D,te,he){this.code=te,this.rawMessage=he,this.message=`Magic Extension Warning (${D.name}): [${te}] ${he}`}log(){console.warn(this.message)}};function rt$1(){return new j_(qw.MissingApiKey,"Please provide an API key that you acquired from the Magic developer dashboard.")}function st(){return new j_(qw.MalformedResponse,"Response from the Magic iframe is malformed.")}function ot(D){return new j_(qw.ExtensionNotInitialized,`Extensions must be initialized with a Magic SDK instance before \`Extension.${D}\` can be accessed. Do not invoke \`Extension.${D}\` inside an extension constructor.`)}function it(D){let te=`Some extensions are incompatible with \`${q_.sdkName}@${q_.version}\`:`;return D.filter((D=>void 0!==D.compat&&null!==D.compat)).forEach((D=>{let he=D.compat[q_.sdkName];"string"==typeof he?te+=`\n  - Extension \`${D.name}\` supports version(s) \`${he}\``:he||(te+=`\n  - Extension \`${D.name}\` does not support ${q_.platform} environments.`)})),new j_(qw.IncompatibleExtensions,te)}function L(D){let{method:te,removalVersions:he,useInstead:ye}=D,be=he[q_.sdkName],ve=ye?` Use \`${ye}\` instead.`:"",we=`\`${te}\` will be removed from \`${q_.sdkName}\` in version \`${be}\`.${ve}`;return new z_(Gw.DeprecationNotice,we)}var K_=function*An(){let D=0;for(;;)D<Number.MAX_SAFE_INTEGER?yield++D:D=0}();function Ne(){return K_.next().value}var J_=Symbol("Payload pre-processed by Magic SDK");function dt(D){return Object.defineProperty(D,J_,{value:!0,enumerable:!1}),D}function F(D){var te,he,ye;return function Sn(D){return!!D[J_]}(D)||(D.jsonrpc=null!=(te=D.jsonrpc)?te:"2.0",D.id=Ne(),D.method=null!=(he=D.method)?he:"noop",D.params=null!=(ye=D.params)?ye:[],dt(D)),D}function d(D,te=[]){return dt({params:te,method:D,jsonrpc:"2.0",id:Ne()})}var X_=class{constructor(D){D instanceof X_?(this._jsonrpc=D.payload.jsonrpc,this._id=D.payload.id,this._result=D.payload.result,this._error=D.payload.error):function et$1(D){return!le(D)&&!(C(D.jsonrpc)||C(D.id)||C(D.result)&&C(D.error))}(D)?(this._jsonrpc=D.jsonrpc,this._id=D.id,this._result=D.result,this._error=D.error):(this._jsonrpc=D.jsonrpc,this._id=D.id,this._result=void 0,this._error=void 0)}applyError(D){return this._error=D,this}applyResult(D){return this._result=D,this}get hasError(){return void 0!==this._error&&null!==this._error}get hasResult(){return void 0!==this._result}get payload(){return{jsonrpc:this._jsonrpc,id:this._id,result:this._result,error:this._error}}},Q_=((D,te,he)=>(he=null!=D?a_(f_(D)):{},((D,te,he,ye)=>{if(te&&"object"==typeof te||"function"==typeof te)for(let be of d_(te))!l_.call(D,be)&&be!==he&&i_(D,be,{get:()=>te[be],enumerable:!(ye=o_(te,be))||ye.enumerable});return D})(D&&D.__esModule?he:i_(he,"default",{value:D,enumerable:!0}),D)))(h_()),Z_=class extends Q_.default{};function me(){let D=new Z_;return{emitter:D,createChainingEmitterMethod:(te,he)=>(...ye)=>(D[te].apply(D,ye),he),createBoundEmitterMethod:te=>(...he)=>D[te].apply(D,he)}}var Y_=Symbol("isPromiEvent");function ft$1(D){return!!D[Y_]}function V(D){let te=Ce(D),{createBoundEmitterMethod:he,createChainingEmitterMethod:ye}=me(),be=Symbol("Promise.then"),ve=Symbol("Promise.catch"),we=Symbol("Promise.finally"),i=(D,te)=>(...he)=>{let ye=te[D].apply(te,he);return c(ye)},c=D=>Object.assign(D,{[Y_]:!0,[be]:D[be]||D.then,[ve]:D[ve]||D.catch,[we]:D[we]||D.finally,then:i(be,D),catch:i(ve,D),finally:i(we,D),on:ye("on",D),once:ye("once",D),addListener:ye("addListener",D),off:ye("off",D),removeListener:ye("removeListener",D),removeAllListeners:ye("removeAllListeners",D),emit:he("emit"),eventNames:he("eventNames"),listeners:he("listeners"),listenerCount:he("listenerCount")}),_e=c(te.then((D=>(_e.emit("done",D),_e.emit("settled"),D)),(D=>{throw _e.emit("error",D),_e.emit("settled"),D})));return _e}function Ce(D){return new Promise(((te,he)=>{let ye=D(te,he);Promise.resolve(ye).catch(he)}))}var eT=class b{constructor(D){this.sdk=D}get overlay(){return this.sdk.overlay}request(D){let te=this.overlay.post(Kw.MAGIC_HANDLE_REQUEST,F(D)),he=V(((D,he)=>{te.then((te=>{if(ye(),te.hasError)he(new H_(te.payload.error));else{if(!te.hasResult)throw st();D(te.payload.result)}})).catch((D=>{ye(),he(D)}))})),ye=this.overlay.on(Vw.MAGIC_HANDLE_EVENT,(te=>{var ye;let{response:be}=te.data;if(be.id===D.id&&(null==(ye=be.result)?void 0:ye.event)){let{event:D,params:te=[]}=be.result;he.emit(D,...te)}}));return he}createIntermediaryEvent(D,te){return he=>{let ye=d(Ww.IntermediaryEvent,[{payloadId:te,eventType:D,args:he}]);this.request(ye)}}};var tT,rT={"magic-sdk":"v18.0.0","@magic-sdk/react-native":"v14.0.0","@magic-sdk/react-native-bare":"v19.0.0","@magic-sdk/react-native-expo":"v19.0.0"},nT=class extends eT{loginWithMagicLink(D){let te="@magic-sdk/react-native"===q_.sdkName||"@magic-sdk/react-native-bare"===q_.sdkName||"@magic-sdk/react-native-expo"===q_.sdkName;if(te&&function gt(D,te){let[he]=D.split(".").map(Number);return he>=te}(q_.version,19))throw new Error("loginWithMagicLink() is deprecated for this package, please utlize a passcode method like loginWithSMS or loginWithEmailOTP instead.");te&&L({method:"auth.loginWithMagicLink()",removalVersions:rT,useInstead:"auth.loginWithEmailOTP()"}).log();let{email:he,showUI:ye=!0,redirectURI:be,overrides:ve}=D,we=d(this.sdk.testMode?Ww.LoginWithMagicLinkTestMode:Ww.LoginWithMagicLink,[{email:he,showUI:ye,redirectURI:be,overrides:ve}]);return this.request(we)}loginWithSMS(D){let{phoneNumber:te}=D,he=d(this.sdk.testMode?Ww.LoginWithSmsTestMode:Ww.LoginWithSms,[{phoneNumber:te,showUI:!0}]);return this.request(he)}loginWithEmailOTP(D){let{email:te,showUI:he,deviceCheckUI:ye,overrides:be}=D,ve=d(this.sdk.testMode?Ww.LoginWithEmailOTPTestMode:Ww.LoginWithEmailOTP,[{email:te,showUI:he,deviceCheckUI:ye,overrides:be}]),we=this.request(ve);return!ye&&we&&we.on(e_.Retry,(()=>{this.createIntermediaryEvent(e_.Retry,ve.id)()})),!he&&we&&(we.on(Zw.VerifyEmailOtp,(D=>{this.createIntermediaryEvent(Zw.VerifyEmailOtp,ve.id)(D)})),we.on(Zw.Cancel,(()=>{this.createIntermediaryEvent(Zw.Cancel,ve.id)()}))),we}loginWithCredential(D){let te=null!=D?D:"";if(!D&&"web"===q_.platform){te=window.location.search;let D=window.location.origin+window.location.pathname;window.history.replaceState(null,"",D)}let he=d(this.sdk.testMode?Ww.LoginWithCredentialTestMode:Ww.LoginWithCredential,[te]);return this.request(he)}setAuthorizationToken(D){let te=d(Ww.SetAuthorizationToken,[{jwt:D}]);return this.request(te)}updateEmailWithUI(D){let{email:te,showUI:he=!0}=D,ye=d(this.sdk.testMode?Ww.UpdateEmailTestMode:Ww.UpdateEmail,[{email:te,showUI:he}]);return this.request(ye)}},aT={};function U(D){return(...te)=>E(this,null,(function*(){return tT||(tT=yield q_.configureStorage()),yield tT.ready(),tT[D](...te)}))}((D,te)=>{for(var he in te)i_(D,he,{get:te[he],enumerable:!0})})(aT,{clear:()=>cT,getItem:()=>iT,iterate:()=>lT,key:()=>uT,keys:()=>fT,length:()=>dT,removeItem:()=>oT,setItem:()=>sT});var iT=U("getItem"),sT=U("setItem"),oT=U("removeItem"),cT=U("clear"),dT=U("length"),uT=U("key"),fT=U("keys"),lT=U("iterate"),pT=class ge extends eT{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}getIdToken(D){let te=d(this.sdk.testMode?Ww.GetIdTokenTestMode:Ww.GetIdToken,[D]);return this.request(te)}generateIdToken(D){let te=d(this.sdk.testMode?Ww.GenerateIdTokenTestMode:Ww.GenerateIdToken,[D]);return this.request(te)}getInfo(){return E(this,null,(function*(){let D=yield iT(this.localForageKey),te=d(Ww.GetInfo,[{walletType:D}]);return this.request(te)}))}isLoggedIn(){let D=d(this.sdk.testMode?Ww.IsLoggedInTestMode:Ww.IsLoggedIn);return this.request(D)}logout(){oT(this.localForageKey);let D=d(this.sdk.testMode?Ww.LogoutTestMode:Ww.Logout);return this.request(D)}requestInfoWithUI(D){let te=d(Ww.RequestUserInfoWithUI,D?[D]:[]);return this.request(te)}showSettings(D){let te=d(this.sdk.testMode?Ww.UserSettingsTestMode:Ww.UserSettings,[D]);return this.request(te)}recoverAccount(D){let te=d(this.sdk.testMode?Ww.RecoverAccountTestMode:Ww.RecoverAccount,[D]);return this.request(te)}getMetadata(){L({method:"user.getMetadata()",removalVersions:rT,useInstead:"user.getInfo()"}).log();let D=d(this.sdk.testMode?Ww.GetMetadataTestMode:Ww.GetMetadata);return this.request(D)}updateEmail(D){L({method:"user.updateEmail()",removalVersions:rT,useInstead:"auth.updateEmailWithUI()"}).log();let{email:te,showUI:he=!0}=D,ye=d(this.sdk.testMode?Ww.UpdateEmailTestMode:Ww.UpdateEmail,[{email:te,showUI:he}]);return this.request(ye)}};function Se(D,te){return te?new URL(D,te):new URL(D)}function Rt(){let D=window.crypto.getRandomValues(new Uint8Array(16));D[6]=15&D[6]|64,D[8]=191&D[8]|128;let te="";return te+=D[0].toString(16),te+=D[1].toString(16),te+=D[2].toString(16),te+=D[3].toString(16),te+="-",te+=D[4].toString(16),te+=D[5].toString(16),te+="-",te+=D[6].toString(16),te+=D[7].toString(16),te+="-",te+=D[8].toString(16),te+=D[9].toString(16),te+="-",te+=D[10].toString(16),te+=D[11].toString(16),te+=D[12].toString(16),te+=D[13].toString(16),te+=D[14].toString(16),te+=D[15].toString(16),te}var hT="STORE_KEY_PRIVATE_KEY",yT="STORE_KEY_PUBLIC_JWK",mT="ECDSA",bT={name:mT,namedCurve:"P-256"};function It(){return E(this,null,(function*(){let D=yield function jn(){return E(this,null,(function*(){if(function Xn(){let D="undefined"!=typeof window&&!!window.crypto,te=D&&!!window.crypto.subtle;return D&&te}())return(yield iT(yT))||(yield function Bn(){return E(this,null,(function*(){let{subtle:D}=window.crypto,te=yield D.generateKey(bT,!1,["sign"]),he=yield D.exportKey("jwk",te.publicKey);yield sT(hT,te.privateKey),yield sT(yT,he)}))}()),iT(yT);console.info("webcrypto is not supported")}))}();if(!D)return void console.info("unable to create public key or webcrypto is unsupported");let{subtle:te}=window.crypto,he=yield iT(hT);if(!he||!te)return void console.info("unable to find private key or webcrypto unsupported");let ye={iat:Math.floor((new Date).getTime()/1e3),jti:Rt()},be={typ:"dpop+jwt",alg:"ES256",jwk:D},ve=vt(JSON.stringify(be)),we=vt(JSON.stringify(ye)),_e=function Vn(D){return(new TextEncoder).encode(D)}(`${ve}.${we}`),Pe={name:mT,hash:{name:"SHA-256"}},Ie=function zn(D){let te="";return D.forEach((D=>{te+=String.fromCharCode(D)})),bt$1(te)}(new Uint8Array(yield te.sign(Pe,he,_e)));return`${ve}.${we}.${Ie}`}))}function vt(D){return bt$1(function Hn(D){return encodeURIComponent(D).replace(/%([0-9A-F]{2})/g,((D,te)=>String.fromCharCode(parseInt(te,16))))}(D))}function bt$1(D){return btoa(D).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+/g,"")}var gT=class extends eT{constructor(){super(...arguments),this.localForageKey="mc_active_wallet"}connectWithUI(){let D=V(((te,he)=>E(this,null,(function*(){try{if(this.isMetaMaskBrowser()&&(yield this.isWalletEnabled(Hw.MetaMask))){let D=yield this.autoConnectIfWalletBrowser(Hw.MetaMask);return void te(D)}if(this.isCoinbaseWalletBrowser()&&(yield this.isWalletEnabled(Hw.CoinbaseWallet))){let D=yield this.autoConnectIfWalletBrowser(Hw.CoinbaseWallet);return void te(D)}let ye=this.getUserEnv(),be=d(Ww.Login,[ye]),ve=this.request(be);ve.on(zw.WalletSelected,(D=>this.handleWalletSelected(se$1(G({},D),{payloadId:be.id})))),ve.on("id-token-created",(te=>{D.emit("id-token-created",te)}));let we=yield ve;we.error&&he(we),te(we)}catch(D){he(D)}}))));return D}showUI(){return this.request(d(Ww.ShowUI))}showAddress(){return this.request(d(Ww.ShowAddress))}showSendTokensUI(){return this.request(d(Ww.ShowSendTokensUI))}showOnRamp(){return this.request(d(Ww.ShowOnRamp))}showNFTs(){return this.request(d(Ww.ShowNFTs))}showBalances(){return this.request(d(Ww.ShowBalances))}sendGaslessTransaction(D,te){return this.request(d(Ww.SendGaslessTransaction,[D,te]))}getInfo(){return E(this,null,(function*(){L({method:"wallet.getInfo()",removalVersions:rT,useInstead:"user.getInfo()"}).log();let D=yield iT(this.localForageKey),te=d(Ww.GetInfo,[{walletType:D}]);return this.request(te)}))}disconnect(){L({method:"wallet.disconnect()",removalVersions:rT,useInstead:"user.logout()"}).log(),oT(this.localForageKey);let D=d(Ww.Disconnect);return this.request(D)}requestUserInfoWithUI(D){L({method:"wallet.requestUserInfoWithUI()",removalVersions:rT,useInstead:"user.requestUserInfoWithUI()"}).log();let te=d(Ww.RequestUserInfoWithUI,D?[D]:[]);return this.request(te)}getProvider(){return E(this,null,(function*(){switch(yield iT(this.localForageKey)){case Hw.MetaMask:return this.getMetaMaskProvider();case Hw.CoinbaseWallet:return this.getCoinbaseProvider();default:return this.sdk.rpcProvider}}))}isMetaMaskInstalled(){var D,te,he;return(null==(D=window.ethereum)?void 0:D.isMetaMask)||!(null==(he=null==(te=window.ethereum)?void 0:te.providers)||!he.find((D=>null==D?void 0:D.isMetaMask)))}isMetaMaskBrowser(){return this.isMobile()&&this.isMetaMaskInstalled()}getMetaMaskProvider(){var D,te;return(null==(te=null==(D=window.ethereum)?void 0:D.providers)?void 0:te.find((D=>null==D?void 0:D.isMetaMask)))||window.ethereum}connectToMetaMask(){if(this.isMobile()&&!this.isMetaMaskInstalled()){let D=`https://metamask.app.link/dapp/${window.location.href.replace(/(^\w+:|^)\/\//,"")}`;window.location.href=D}return this.getMetaMaskProvider().request({method:"eth_requestAccounts"})}isCoinbaseWalletInstalled(){var D,te,he;return(null==(D=window.ethereum)?void 0:D.isCoinbaseWallet)||!(null==(he=null==(te=window.ethereum)?void 0:te.providers)||!he.find((D=>null==D?void 0:D.isCoinbaseWallet)))}isCoinbaseWalletBrowser(){var D;return!(null==(D=window.ethereum)||!D.isCoinbaseBrowser)}getCoinbaseProvider(){var D,te;return(null==(te=null==(D=window.ethereum)?void 0:D.providers)?void 0:te.find((D=>null==D?void 0:D.isCoinbaseWallet)))||window.ethereum}connectToCoinbaseWallet(){if(this.isMobile()&&!this.isCoinbaseWalletBrowser()){let D=`https://go.cb-w.com/dapp?cb_url=${encodeURIComponent(window.location.href)}`;window.location.href=D}return this.getCoinbaseProvider().request({method:"eth_requestAccounts"})}isMobile(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Silk|Opera Mini/i.test(navigator.userAgent)}getUserEnv(){return{env:{isMetaMaskInstalled:this.isMetaMaskInstalled(),isCoinbaseWalletInstalled:this.isCoinbaseWalletInstalled()}}}connectToThirdPartyWallet(D){switch(D){case Hw.MetaMask:return this.connectToMetaMask();case Hw.CoinbaseWallet:return this.connectToCoinbaseWallet();default:throw new Error(`Invalid provider: ${D}. Must be one of "metamask" or "coinbase_wallet".`)}}isWalletEnabled(D){let te=d("mc_is_wallet_enabled",[{wallet:D}]);return this.request(te)}handleWalletSelected(D){return E(this,null,(function*(){try{let te=yield this.connectToThirdPartyWallet(D.wallet);yield sT(this.localForageKey,D.wallet),this.createIntermediaryEvent(zw.WalletConnected,D.payloadId)(te)}catch(te){console.error(te),this.createIntermediaryEvent(zw.WalletRejected,D.payloadId)()}}))}autoConnectIfWalletBrowser(D){return E(this,null,(function*(){let te;D===Hw.MetaMask&&(te=yield this.getMetaMaskProvider().request({method:"eth_requestAccounts"})),D===Hw.CoinbaseWallet&&(te=yield this.getCoinbaseProvider().request({method:"eth_requestAccounts"})),yield sT(this.localForageKey,D);let he=d(Ww.AutoConnect,[{wallet:D,address:te}]);return this.request(he)}))}},{createBoundEmitterMethod:vT,createChainingEmitterMethod:wT}=me(),_T=class Te extends eT{constructor(){super(...arguments),this.isMagic=!0,this.on=wT("on",this),this.once=wT("once",this),this.addListener=wT("addListener",this),this.off=wT("off",this),this.removeListener=wT("removeListener",this),this.removeAllListeners=wT("removeAllListeners",this),this.emit=vT("emit"),this.eventNames=vT("eventNames"),this.listeners=vT("listeners"),this.listenerCount=vT("listenerCount")}sendAsync(D,te){if(!te)throw function at$1(D){return new j_(qw.InvalidArgument,`Invalid ${(D=>{let te=D+1,he=te%10,ye=te%100;return 1===he&&11!==ye?`${te}st`:2===he&&12!==ye?`${te}nd`:3===he&&13!==ye?`${te}rd`:`${te}th`})(D.argument)} argument given to \`${D.procedure}\`.\n  Expected: \`${D.expected}\`\n  Received: \`${D.received}\``)}({procedure:"Magic.rpcProvider.sendAsync",argument:1,expected:"function",received:null===te?"null":typeof te});if(Array.isArray(D))this.overlay.post(Kw.MAGIC_HANDLE_REQUEST,D.map((D=>{let te=F(D);return this.prefixPayloadMethodForTestMode(te),te}))).then((D=>{te(null,D.map((D=>se$1(G({},D.payload),{error:D.hasError?new H_(D.payload.error):null}))))}));else{let he=F(D);this.prefixPayloadMethodForTestMode(he),this.overlay.post(Kw.MAGIC_HANDLE_REQUEST,he).then((D=>{te(D.hasError?new H_(D.payload.error):null,D.payload)}))}}send(D,te){if("string"==typeof D){let he=d(D,Array.isArray(te)?te:[]);return this.request(he)}if(Array.isArray(D)||te)return void this.sendAsync(D,te);let he=function ct(){return new z_(Gw.SyncWeb3Method,"Non-async web3 methods are deprecated in web3 > 1.0 and are not supported by the Magic web3 provider. Please use an async method instead.")}();return he.log(),new X_(D).applyError({code:-32603,message:he.rawMessage}).payload}enable(){let D=d(Ww.Login);return this.request(D)}request(D){return this.prefixPayloadMethodForTestMode(D),super.request(D)}prefixPayloadMethodForTestMode(D){this.sdk.testMode&&(D.method=`testMode/eth/${D.method}`)}},TT=["request","overlay","sdk"];function Zn(D){let te=Object.getPrototypeOf(D),he=[te];for(;te!==eT.prototype;)te=Object.getPrototypeOf(te),he.push(te);return he}var AT=class extends eT{constructor(){super(void 0),this.__sdk_access_field_descriptors__=new Map,this.__is_initialized__=!1,this.utils={createPromiEvent:V,isPromiEvent:ft$1,encodeJSON:ce,decodeJSON:Qe,createJsonRpcRequestPayload:d,standardizeJsonRpcRequestPayload:F,storage:aT};let D=[this,...Zn(this)];TT.forEach((te=>{let he=D.map((D=>Object.getOwnPropertyDescriptor(D,te))),ye=he.findIndex((D=>!!D)),be=ye>0,ve=he[ye];ve&&(this.__sdk_access_field_descriptors__.set(te,{descriptor:ve,isPrototypeField:be}),Object.defineProperty(this,te,{configurable:!0,get:()=>{throw ot(te)}}))}))}init(D){this.__is_initialized__||(TT.forEach((D=>{if(this.__sdk_access_field_descriptors__.has(D)){let{descriptor:te,isPrototypeField:he}=this.__sdk_access_field_descriptors__.get(D);he?delete this[D]:Object.defineProperty(this,D,te)}})),this.sdk=D,this.__is_initialized__=!0)}createDeprecationWarning(D){let{method:te,removalVersion:he,useInstead:ye}=D;return new V_(this,"DEPRECATION_NOTICE",`\`${te}\` will be removed from this Extension in version \`${he}\`.${ye?` Use \`${ye}\` instead.`:""}`)}createWarning(D,te){return new V_(this,D,te)}createError(D,te,he){return new W_(this,D,te,he)}},ET=class extends AT{};ET.Internal=class extends AT{},ET.Anonymous="anonymous extension";var PT=class extends eT{purchase(D){let te=d(Ww.NFTPurchase,[D]);return this.request(te)}checkout(D){let te=d(Ww.NFTCheckout,[D]);return this.request(te)}transfer(D){let te=d(Ww.NFTTransfer,[D]);return this.request(te)}};function Mt(D){return!D.compat||null==D.compat[q_.sdkName]||("string"==typeof D.compat[q_.sdkName]?Ye(Ze$1(q_.version),D.compat[q_.sdkName]):!!D.compat[q_.sdkName])}function Qn(D){var te;let he=null!=(te=null==D?void 0:D.extensions)?te:[],ye={},be=[];if(Array.isArray(he)?he.forEach((D=>{Mt(D)?(D.init(this),(D.name||D.name!==ET.Anonymous)&&(this[D.name]=D),D instanceof ET.Internal&&(ue(D.config)||(ye[D.name]=D.config))):be.push(D)})):Object.keys(he).forEach((D=>{if(Mt(he[D])){he[D].init(this);let te=he[D];this[D]=te,te instanceof ET.Internal&&(ue(te.config)||(ye[he[D].name]=te.config))}else be.push(he[D])})),be.length)throw it(be);return ye}var ST=class{constructor(D,te){var he;if(this.apiKey=D,!D)throw rt$1();"react-native"===q_.platform&&(null==te?void 0:te.endpoint)&&function lt(){return new z_(Gw.ReactNativeEndpointConfiguration,`CUSTOM DOMAINS ARE NOT SUPPORTED WHEN USING MAGIC SDK WITH REACT NATIVE! The \`endpoint\` parameter SHOULD NOT be provided. The Magic \`<iframe>\` is automatically wrapped by a WebView pointed at \`${q_.defaultEndpoint}\`. Changing this default behavior will lead to unexpected results and potentially security-threatening bugs.`)}().log();let{defaultEndpoint:ye,version:be}=q_;this.testMode=!(null==te||!te.testMode),this.endpoint=Se(null!=(he=null==te?void 0:te.endpoint)?he:ye).origin,this.auth=new nT(this),this.user=new pT(this),this.wallet=new gT(this),this.nft=new PT(this),this.rpcProvider=new _T(this);let ve=Qn.call(this,te);this.parameters=ce(G({API_KEY:this.apiKey,DOMAIN_ORIGIN:window.location?window.location.origin:"",ETH_NETWORK:null==te?void 0:te.network,host:Se(this.endpoint).host,sdk:G_[q_.sdkName],version:be,ext:ue(ve)?void 0:ve,locale:(null==te?void 0:te.locale)||"en_US"},q_.bundleId?{bundleId:q_.bundleId}:{})),null!=te&&te.deferPreload||this.preload()}get overlay(){if(!ST.__overlays__.has(this.parameters)){let D=new q_.ViewController(this.endpoint,this.parameters);D.init(),ST.__overlays__.set(this.parameters,D)}return ST.__overlays__.get(this.parameters)}preload(){return E(this,null,(function*(){yield this.overlay.ready}))}},CT=ST;function tr(D,te){var he;let ye=null==(he=te.data.response)?void 0:he.id,be=function er(D,te){return te&&Array.isArray(D)?D.find((D=>D.id===te)):D}(D,ye);if(ye&&be){return{id:ye,response:new X_(be).applyResult(te.data.response.result).applyError(te.data.response.error)}}return{}}CT.__overlays__=new Map;var IT=class{constructor(D,te){this.endpoint=D,this.parameters=te,this.messageHandlers=new Set,this.ready=this.waitForReady(),this.listen()}post(D,te){return E(this,null,(function*(){return Ce((he=>E(this,null,(function*(){yield this.ready;let ye=[],be=Array.isArray(te)?te.map((D=>D.id)):[],ve=yield function nr(D,te){return E(this,null,(function*(){let he,ye=yield iT("rt");if("web"===q_.platform)try{he=yield It()}catch(D){console.error("webcrypto error",D)}return he?ye?{msgType:D,payload:te,jwt:he,rt:ye}:{msgType:D,payload:te,jwt:he}:{msgType:D,payload:te}}))}(`${D}-${this.parameters}`,te);yield this._post(ve);let we=this.on(Vw.MAGIC_HANDLE_RESPONSE,(D=>ve=>{let{id:we,response:_e}=tr(te,ve);(function rr$1(D){return E(this,null,(function*(){!D.data.rt||(yield sT("rt",D.data.rt))}))})(ve),we&&_e&&Array.isArray(te)&&be.includes(we)?(ye.push(_e),ye.length===te.length&&(D(),he(ye))):we&&_e&&!Array.isArray(te)&&we===te.id&&(D(),he(_e))})((()=>we())))}))))}))}on(D,te){let he=te.bind(window),o=te=>{te.data.msgType===`${D}-${this.parameters}`&&he(te)};return this.messageHandlers.add(o),()=>this.messageHandlers.delete(o)}waitForReady(){return new Promise((D=>{this.on(Vw.MAGIC_OVERLAY_READY,(()=>D()))}))}listen(){this.on(Vw.MAGIC_HIDE_OVERLAY,(()=>{this.hideOverlay()})),this.on(Vw.MAGIC_SHOW_OVERLAY,(()=>{this.showOverlay()}))}},RT=Object.create,kT=Object.defineProperty,OT=Object.getOwnPropertyDescriptor,xT=Object.getOwnPropertyNames,NT=Object.getPrototypeOf,MT=Object.prototype.hasOwnProperty,BT=(D=>"undefined"!=typeof require?require:"undefined"!=typeof Proxy?new Proxy(D,{get:(D,te)=>("undefined"!=typeof require?require:D)[te]}):D)((function(D){if("undefined"!=typeof require)return require.apply(this,arguments);throw new Error('Dynamic require of "'+D+'" is not supported')})),$e=(D,te)=>()=>(te||D((te={exports:{}}).exports,te),te.exports),Ze=(D,te,he)=>(he=null!=D?RT(NT(D)):{},((D,te,he,ye)=>{if(te&&"object"==typeof te||"function"==typeof te)for(let be of xT(te))!MT.call(D,be)&&be!==he&&kT(D,be,{get:()=>te[be],enumerable:!(ye=OT(te,be))||ye.enumerable});return D})(D&&D.__esModule?he:kT(he,"default",{value:D,enumerable:!0}),D)),se=(D,te,he)=>new Promise(((ye,be)=>{var X=D=>{try{Y(he.next(D))}catch(D){be(D)}},P=D=>{try{Y(he.throw(D))}catch(D){be(D)}},Y=D=>D.done?ye(D.value):Promise.resolve(D.value).then(X,P);Y((he=he.apply(D,te)).next())})),FT=$e(((D,te)=>{!function(he){if("object"==typeof D&&typeof te<"u")te.exports=he();else if("function"==typeof define&&define.amd)define([],he);else{(typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:this).localforage=he()}}((function(){return function L(D,te,he){function Y(be,ve){if(!te[be]){if(!D[be]){var we="function"==typeof BT&&BT;if(!ve&&we)return we(be,!0);if(ye)return ye(be,!0);var _e=new Error("Cannot find module '"+be+"'");throw _e.code="MODULE_NOT_FOUND",_e}var Pe=te[be]={exports:{}};D[be][0].call(Pe.exports,(function(te){return Y(D[be][1][te]||te)}),Pe,Pe.exports,L,D,te,he)}return te[be].exports}for(var ye="function"==typeof BT&&BT,be=0;be<he.length;be++)Y(he[be]);return Y}({1:[function(D,te,he){(function(D){var he,ye=D.MutationObserver||D.WebKitMutationObserver;if(ye){var be=0,ve=new ye(z),we=D.document.createTextNode("");ve.observe(we,{characterData:!0}),he=function(){we.data=be=++be%2}}else if(!D.setImmediate&&typeof D.MessageChannel<"u"){var _e=new D.MessageChannel;_e.port1.onmessage=z,he=function(){_e.port2.postMessage(0)}}else he="document"in D&&"onreadystatechange"in D.document.createElement("script")?function(){var te=D.document.createElement("script");te.onreadystatechange=function(){z(),te.onreadystatechange=null,te.parentNode.removeChild(te),te=null},D.document.documentElement.appendChild(te)}:function(){setTimeout(z,0)};var Pe,Ie=[];function z(){Pe=!0;for(var D,te,he=Ie.length;he;){for(te=Ie,Ie=[],D=-1;++D<he;)te[D]();he=Ie.length}Pe=!1}te.exports=function Z(D){1===Ie.push(D)&&!Pe&&he()}}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{}],2:[function(D,te,he){var ye=D(1);function Y(){}var be={},ve=["REJECTED"],we=["FULFILLED"],_e=["PENDING"];function m(D){if("function"!=typeof D)throw new TypeError("resolver must be a function");this.state=_e,this.queue=[],this.outcome=void 0,D!==Y&&Z(this,D)}function _(D,te,he){this.promise=D,"function"==typeof te&&(this.onFulfilled=te,this.callFulfilled=this.otherCallFulfilled),"function"==typeof he&&(this.onRejected=he,this.callRejected=this.otherCallRejected)}function B(D,te,he){ye((function(){var ye;try{ye=te(he)}catch(te){return be.reject(D,te)}ye===D?be.reject(D,new TypeError("Cannot resolve promise with itself")):be.resolve(D,ye)}))}function z(D){var te=D&&D.then;if(D&&("object"==typeof D||"function"==typeof D)&&"function"==typeof te)return function(){te.apply(D,arguments)}}function Z(D,te){var he=!1;function O(te){he||(he=!0,be.reject(D,te))}function V(te){he||(he=!0,be.resolve(D,te))}var ye=F((function j(){te(V,O)}));"error"===ye.status&&O(ye.value)}function F(D,te){var he={};try{he.value=D(te),he.status="success"}catch(D){he.status="error",he.value=D}return he}te.exports=m,m.prototype.catch=function(D){return this.then(null,D)},m.prototype.then=function(D,te){if("function"!=typeof D&&this.state===we||"function"!=typeof te&&this.state===ve)return this;var he=new this.constructor(Y);this.state!==_e?B(he,this.state===we?D:te,this.outcome):this.queue.push(new _(he,D,te));return he},_.prototype.callFulfilled=function(D){be.resolve(this.promise,D)},_.prototype.otherCallFulfilled=function(D){B(this.promise,this.onFulfilled,D)},_.prototype.callRejected=function(D){be.reject(this.promise,D)},_.prototype.otherCallRejected=function(D){B(this.promise,this.onRejected,D)},be.resolve=function(D,te){var he=F(z,te);if("error"===he.status)return be.reject(D,he.value);var ye=he.value;if(ye)Z(D,ye);else{D.state=we,D.outcome=te;for(var ve=-1,_e=D.queue.length;++ve<_e;)D.queue[ve].callFulfilled(te)}return D},be.reject=function(D,te){D.state=ve,D.outcome=te;for(var he=-1,ye=D.queue.length;++he<ye;)D.queue[he].callRejected(te);return D},m.resolve=function k(D){return D instanceof this?D:be.resolve(new this(Y),D)},m.reject=function U(D){var te=new this(Y);return be.reject(te,D)},m.all=function ae(D){var te=this;if("[object Array]"!==Object.prototype.toString.call(D))return this.reject(new TypeError("must be an array"));var he=D.length,ye=!1;if(!he)return this.resolve([]);for(var ve=new Array(he),we=0,_e=-1,Pe=new this(Y);++_e<he;)ee(D[_e],_e);return Pe;function ee(D,_e){te.resolve(D).then((function s(D){ve[_e]=D,++we===he&&!ye&&(ye=!0,be.resolve(Pe,ve))}),(function(D){ye||(ye=!0,be.reject(Pe,D))}))}},m.race=function re(D){var te=this;if("[object Array]"!==Object.prototype.toString.call(D))return this.reject(new TypeError("must be an array"));var he=D.length,ye=!1;if(!he)return this.resolve([]);for(var ve=-1,we=new this(Y);++ve<he;)Q(D[ve]);return we;function Q(D){te.resolve(D).then((function(D){ye||(ye=!0,be.resolve(we,D))}),(function(D){ye||(ye=!0,be.reject(we,D))}))}}},{1:1}],3:[function(D,te,he){(function(te){"function"!=typeof te.Promise&&(te.Promise=D(2))}).call(this,typeof global<"u"?global:typeof self<"u"?self:typeof window<"u"?window:{})},{2:2}],4:[function(D,te,he){var ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(D){return typeof D}:function(D){return D&&"function"==typeof Symbol&&D.constructor===Symbol&&D!==Symbol.prototype?"symbol":typeof D};var be=function I(){try{if(typeof indexedDB<"u")return indexedDB;if(typeof webkitIndexedDB<"u")return webkitIndexedDB;if(typeof mozIndexedDB<"u")return mozIndexedDB;if(typeof OIndexedDB<"u")return OIndexedDB;if(typeof msIndexedDB<"u")return msIndexedDB}catch{return}}();function $(D,te){D=D||[],te=te||{};try{return new Blob(D,te)}catch(be){if("TypeError"!==be.name)throw be;for(var he=new(typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder),ye=0;ye<D.length;ye+=1)he.append(D[ye]);return he.getBlob(te.type)}}typeof Promise>"u"&&D(3);var ve=Promise;function _(D,te){te&&D.then((function(D){te(null,D)}),(function(D){te(D)}))}function B(D,te,he){"function"==typeof te&&D.then(te),"function"==typeof he&&D.catch(he)}function z(D){return"string"!=typeof D&&(console.warn(D+" used as a key, but it is not a string."),D=String(D)),D}function Z(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var we="local-forage-detect-blob-support",_e=void 0,Pe={},Ie=Object.prototype.toString,Re="readonly",ke="readwrite";function O(D){return"boolean"==typeof _e?ve.resolve(_e):function E(D){return new ve((function(te){var he=D.transaction(we,ke),ye=$([""]);he.objectStore(we).put(ye,"key"),he.onabort=function(D){D.preventDefault(),D.stopPropagation(),te(!1)},he.oncomplete=function(){var D=navigator.userAgent.match(/Chrome\/(\d+)/),he=navigator.userAgent.match(/Edge\//);te(he||!D||parseInt(D[1],10)>=43)}})).catch((function(){return!1}))}(D).then((function(D){return _e=D}))}function V(D){var te=Pe[D.name],he={};he.promise=new ve((function(D,te){he.resolve=D,he.reject=te})),te.deferredOperations.push(he),te.dbReady?te.dbReady=te.dbReady.then((function(){return he.promise})):te.dbReady=he.promise}function j(D){var te=Pe[D.name].deferredOperations.pop();if(te)return te.resolve(),te.promise}function Q(D,te){var he=Pe[D.name].deferredOperations.pop();if(he)return he.reject(te),he.promise}function J(D,te){return new ve((function(he,ye){if(Pe[D.name]=Pe[D.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},D.db){if(!te)return he(D.db);V(D),D.db.close()}var ve=[D.name];te&&ve.push(D.version);var _e=be.open.apply(be,ve);te&&(_e.onupgradeneeded=function(te){var he=_e.result;try{he.createObjectStore(D.storeName),te.oldVersion<=1&&he.createObjectStore(we)}catch(he){if("ConstraintError"!==he.name)throw he;console.warn('The database "'+D.name+'" has been upgraded from version '+te.oldVersion+" to version "+te.newVersion+', but the storage "'+D.storeName+'" already exists.')}}),_e.onerror=function(D){D.preventDefault(),ye(_e.error)},_e.onsuccess=function(){var te=_e.result;te.onversionchange=function(D){D.target.close()},he(te),j(D)}}))}function ee(D){return J(D,!1)}function oe(D){return J(D,!0)}function a(D,te){if(!D.db)return!0;var he=!D.db.objectStoreNames.contains(D.storeName),ye=D.version<D.db.version,be=D.version>D.db.version;if(ye&&(D.version!==te&&console.warn('The database "'+D.name+"\" can't be downgraded from version "+D.db.version+" to version "+D.version+"."),D.version=D.db.version),be||he){if(he){var ve=D.db.version+1;ve>D.version&&(D.version=ve)}return!0}return!1}function v(D){var te=function N(D){for(var te=D.length,he=new ArrayBuffer(te),ye=new Uint8Array(he),be=0;be<te;be++)ye[be]=D.charCodeAt(be);return he}(atob(D.data));return $([te],{type:D.type})}function p(D){return D&&D.__local_forage_encoded_blob}function g(D){var te=this,he=te._initReady().then((function(){var D=Pe[te._dbInfo.name];if(D&&D.dbReady)return D.dbReady}));return B(he,D,D),he}function T(D,te,he,ye){void 0===ye&&(ye=1);try{var be=D.db.transaction(D.storeName,te);he(null,be)}catch(be){if(ye>0&&(!D.db||"InvalidStateError"===be.name||"NotFoundError"===be.name))return ve.resolve().then((function(){if(!D.db||"NotFoundError"===be.name&&!D.db.objectStoreNames.contains(D.storeName)&&D.version<=D.db.version)return D.db&&(D.version=D.db.version+1),oe(D)})).then((function(){return function w(D){V(D);for(var te=Pe[D.name],he=te.forages,ye=0;ye<he.length;ye++){var be=he[ye];be._dbInfo.db&&(be._dbInfo.db.close(),be._dbInfo.db=null)}return D.db=null,ee(D).then((function(te){return D.db=te,a(D)?oe(D):te})).then((function(ye){D.db=te.db=ye;for(var be=0;be<he.length;be++)he[be]._dbInfo.db=ye})).catch((function(te){throw Q(D,te),te}))}(D).then((function(){T(D,te,he,ye-1)}))})).catch(he);he(be)}}var Oe={_driver:"asyncStorage",_initStorage:function fe(D){var te=this,he={db:null};if(D)for(var ye in D)he[ye]=D[ye];var be=Pe[he.name];be||(be={forages:[],db:null,dbReady:null,deferredOperations:[]},Pe[he.name]=be),be.forages.push(te),te._initReady||(te._initReady=te.ready,te.ready=g);var we=[];function f(){return ve.resolve()}for(var _e=0;_e<be.forages.length;_e++){var Ie=be.forages[_e];Ie!==te&&we.push(Ie._initReady().catch(f))}var Re=be.forages.slice(0);return ve.all(we).then((function(){return he.db=be.db,ee(he)})).then((function(D){return he.db=D,a(he,te._defaultConfig.version)?oe(he):D})).then((function(D){he.db=be.db=D,te._dbInfo=he;for(var ye=0;ye<Re.length;ye++){var ve=Re[ye];ve!==te&&(ve._dbInfo.db=he.db,ve._dbInfo.version=he.version)}}))},_support:function H(){try{if(!be||!be.open)return!1;var D=typeof openDatabase<"u"&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),te="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!D||te)&&typeof indexedDB<"u"&&typeof IDBKeyRange<"u"}catch{return!1}}(),iterate:function ce(D,te){var he=this,ye=new ve((function(te,ye){he.ready().then((function(){T(he._dbInfo,Re,(function(be,ve){if(be)return ye(be);try{var we=ve.objectStore(he._dbInfo.storeName).openCursor(),_e=1;we.onsuccess=function(){var he=we.result;if(he){var ye=he.value;p(ye)&&(ye=v(ye));var be=D(ye,he.key,_e++);void 0!==be?te(be):he.continue()}else te()},we.onerror=function(){ye(we.error)}}catch(D){ye(D)}}))})).catch(ye)}));return _(ye,te),ye},getItem:function ie(D,te){var he=this;D=z(D);var ye=new ve((function(te,ye){he.ready().then((function(){T(he._dbInfo,Re,(function(be,ve){if(be)return ye(be);try{var we=ve.objectStore(he._dbInfo.storeName).get(D);we.onsuccess=function(){var D=we.result;void 0===D&&(D=null),p(D)&&(D=v(D)),te(D)},we.onerror=function(){ye(we.error)}}catch(D){ye(D)}}))})).catch(ye)}));return _(ye,te),ye},setItem:function nr(D,te,he){var ye=this;D=z(D);var be=new ve((function(he,be){var we;ye.ready().then((function(){return we=ye._dbInfo,"[object Blob]"===Ie.call(te)?O(we.db).then((function(D){return D?te:function s(D){return new ve((function(te,he){var ye=new FileReader;ye.onerror=he,ye.onloadend=function(he){var ye=btoa(he.target.result||"");te({__local_forage_encoded_blob:!0,data:ye,type:D.type})},ye.readAsBinaryString(D)}))}(te)})):te})).then((function(te){T(ye._dbInfo,ke,(function(ve,we){if(ve)return be(ve);try{var _e=we.objectStore(ye._dbInfo.storeName);null===te&&(te=void 0);var Pe=_e.put(te,D);we.oncomplete=function(){void 0===te&&(te=null),he(te)},we.onabort=we.onerror=function(){var D=Pe.error?Pe.error:Pe.transaction.error;be(D)}}catch(D){be(D)}}))})).catch(be)}));return _(be,he),be},removeItem:function or(D,te){var he=this;D=z(D);var ye=new ve((function(te,ye){he.ready().then((function(){T(he._dbInfo,ke,(function(be,ve){if(be)return ye(be);try{var we=ve.objectStore(he._dbInfo.storeName).delete(D);ve.oncomplete=function(){te()},ve.onerror=function(){ye(we.error)},ve.onabort=function(){var D=we.error?we.error:we.transaction.error;ye(D)}}catch(D){ye(D)}}))})).catch(ye)}));return _(ye,te),ye},clear:function ir(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){T(te._dbInfo,ke,(function(ye,be){if(ye)return he(ye);try{var ve=be.objectStore(te._dbInfo.storeName).clear();be.oncomplete=function(){D()},be.onabort=be.onerror=function(){var D=ve.error?ve.error:ve.transaction.error;he(D)}}catch(D){he(D)}}))})).catch(he)}));return _(he,D),he},length:function ar(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){T(te._dbInfo,Re,(function(ye,be){if(ye)return he(ye);try{var ve=be.objectStore(te._dbInfo.storeName).count();ve.onsuccess=function(){D(ve.result)},ve.onerror=function(){he(ve.error)}}catch(D){he(D)}}))})).catch(he)}));return _(he,D),he},key:function fr(D,te){var he=this,ye=new ve((function(te,ye){D<0?te(null):he.ready().then((function(){T(he._dbInfo,Re,(function(be,ve){if(be)return ye(be);try{var we=ve.objectStore(he._dbInfo.storeName),_e=!1,Pe=we.openKeyCursor();Pe.onsuccess=function(){var he=Pe.result;he?0===D||_e?te(he.key):(_e=!0,he.advance(D)):te(null)},Pe.onerror=function(){ye(Pe.error)}}catch(D){ye(D)}}))})).catch(ye)}));return _(ye,te),ye},keys:function ur(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){T(te._dbInfo,Re,(function(ye,be){if(ye)return he(ye);try{var ve=be.objectStore(te._dbInfo.storeName).openKeyCursor(),we=[];ve.onsuccess=function(){var te=ve.result;te?(we.push(te.key),te.continue()):D(we)},ve.onerror=function(){he(ve.error)}}catch(D){he(D)}}))})).catch(he)}));return _(he,D),he},dropInstance:function sr(D,te){te=Z.apply(this,arguments);var he,ye=this.config();if((D="function"!=typeof D&&D||{}).name||(D.name=D.name||ye.name,D.storeName=D.storeName||ye.storeName),D.name){var we=D.name===ye.name&&this._dbInfo.db?ve.resolve(this._dbInfo.db):ee(D).then((function(te){var he=Pe[D.name],ye=he.forages;he.db=te;for(var be=0;be<ye.length;be++)ye[be]._dbInfo.db=te;return te}));he=D.storeName?we.then((function(te){if(te.objectStoreNames.contains(D.storeName)){var he=te.version+1;V(D);var ye=Pe[D.name],we=ye.forages;te.close();for(var _e=0;_e<we.length;_e++){var Ie=we[_e];Ie._dbInfo.db=null,Ie._dbInfo.version=he}var Re=new ve((function(te,ye){var ve=be.open(D.name,he);ve.onerror=function(D){ve.result.close(),ye(D)},ve.onupgradeneeded=function(){ve.result.deleteObjectStore(D.storeName)},ve.onsuccess=function(){var D=ve.result;D.close(),te(D)}}));return Re.then((function(D){ye.db=D;for(var te=0;te<we.length;te++){var he=we[te];he._dbInfo.db=D,j(he._dbInfo)}})).catch((function(te){throw(Q(D,te)||ve.resolve()).catch((function(){})),te}))}})):we.then((function(te){V(D);var he=Pe[D.name],ye=he.forages;te.close();for(var we=0;we<ye.length;we++){ye[we]._dbInfo.db=null}var _e=new ve((function(te,he){var ye=be.deleteDatabase(D.name);ye.onerror=function(){var D=ye.result;D&&D.close(),he(ye.error)},ye.onblocked=function(){console.warn('dropInstance blocked for database "'+D.name+'" until all open connections are closed')},ye.onsuccess=function(){var D=ye.result;D&&D.close(),te(D)}}));return _e.then((function(D){he.db=D;for(var te=0;te<ye.length;te++){j(ye[te]._dbInfo)}})).catch((function(te){throw(Q(D,te)||ve.resolve()).catch((function(){})),te}))}))}else he=ve.reject("Invalid arguments");return _(he,te),he}};var xe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Be=/^~~local_forage_type~([^~]+)~/,Fe="__lfsc__:",De="arbf",Le="blob",Ue="si08",qe="ui08",je="uic8",Je="si16",et="si32",tt="ur16",rt="ui32",nt="fl32",at="fl64",ut=Object.prototype.toString;function Ke(D){var te,he,ye,be,ve,we=.75*D.length,_e=D.length,Pe=0;"="===D[D.length-1]&&(we--,"="===D[D.length-2]&&we--);var Ie=new ArrayBuffer(we),Re=new Uint8Array(Ie);for(te=0;te<_e;te+=4)he=xe.indexOf(D[te]),ye=xe.indexOf(D[te+1]),be=xe.indexOf(D[te+2]),ve=xe.indexOf(D[te+3]),Re[Pe++]=he<<2|ye>>4,Re[Pe++]=(15&ye)<<4|be>>2,Re[Pe++]=(3&be)<<6|63&ve;return Ie}function Ee(D){var te,he=new Uint8Array(D),ye="";for(te=0;te<he.length;te+=3)ye+=xe[he[te]>>2],ye+=xe[(3&he[te])<<4|he[te+1]>>4],ye+=xe[(15&he[te+1])<<2|he[te+2]>>6],ye+=xe[63&he[te+2]];return he.length%3==2?ye=ye.substring(0,ye.length-1)+"=":he.length%3==1&&(ye=ye.substring(0,ye.length-2)+"=="),ye}var ht={serialize:function vr(D,te){var he="";if(D&&(he=ut.call(D)),D&&("[object ArrayBuffer]"===he||D.buffer&&"[object ArrayBuffer]"===ut.call(D.buffer))){var ye,be=Fe;D instanceof ArrayBuffer?(ye=D,be+=De):(ye=D.buffer,"[object Int8Array]"===he?be+=Ue:"[object Uint8Array]"===he?be+=qe:"[object Uint8ClampedArray]"===he?be+=je:"[object Int16Array]"===he?be+=Je:"[object Uint16Array]"===he?be+=tt:"[object Int32Array]"===he?be+=et:"[object Uint32Array]"===he?be+=rt:"[object Float32Array]"===he?be+=nt:"[object Float64Array]"===he?be+=at:te(new Error("Failed to get type for BinaryArray"))),te(be+Ee(ye))}else if("[object Blob]"===he){var ve=new FileReader;ve.onload=function(){var he="~~local_forage_type~"+D.type+"~"+Ee(this.result);te(Fe+Le+he)},ve.readAsArrayBuffer(D)}else try{te(JSON.stringify(D))}catch(he){console.error("Couldn't convert value into a JSON string: ",D),te(null,he)}},deserialize:function hr(D){if(D.substring(0,9)!==Fe)return JSON.parse(D);var te,he=D.substring(13),ye=D.substring(9,13);if(ye===Le&&Be.test(he)){var be=he.match(Be);te=be[1],he=he.substring(be[0].length)}var ve=Ke(he);switch(ye){case De:return ve;case Le:return $([ve],{type:te});case Ue:return new Int8Array(ve);case qe:return new Uint8Array(ve);case je:return new Uint8ClampedArray(ve);case Je:return new Int16Array(ve);case tt:return new Uint16Array(ve);case et:return new Int32Array(ve);case rt:return new Uint32Array(ve);case nt:return new Float32Array(ve);case at:return new Float64Array(ve);default:throw new Error("Unkown type: "+ye)}},stringToBuffer:Ke,bufferToString:Ee};function He(D,te,he,ye){D.executeSql("CREATE TABLE IF NOT EXISTS "+te.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],he,ye)}function ne(D,te,he,ye,be,ve){D.executeSql(he,ye,be,(function(D,we){we.code===we.SYNTAX_ERR?D.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[te.storeName],(function(D,_e){_e.rows.length?ve(D,we):He(D,te,(function(){D.executeSql(he,ye,be,ve)}),ve)}),ve):ve(D,we)}),ve)}function Ve(D,te,he,ye){var be=this;D=z(D);var we=new ve((function(ve,we){be.ready().then((function(){void 0===te&&(te=null);var _e=te,Pe=be._dbInfo;Pe.serializer.serialize(te,(function(te,Ie){Ie?we(Ie):Pe.db.transaction((function(he){ne(he,Pe,"INSERT OR REPLACE INTO "+Pe.storeName+" (key, value) VALUES (?, ?)",[D,te],(function(){ve(_e)}),(function(D,te){we(te)}))}),(function(te){if(te.code===te.QUOTA_ERR){if(ye>0)return void ve(Ve.apply(be,[D,_e,he,ye-1]));we(te)}}))}))})).catch(we)}));return _(we,he),we}var yt={_driver:"webSQLStorage",_initStorage:function mr(D){var te=this,he={db:null};if(D)for(var ye in D)he[ye]="string"!=typeof D[ye]?D[ye].toString():D[ye];var be=new ve((function(D,ye){try{he.db=openDatabase(he.name,String(he.version),he.description,he.size)}catch(D){return ye(D)}he.db.transaction((function(be){He(be,he,(function(){te._dbInfo=he,D()}),(function(D,te){ye(te)}))}),ye)}));return he.serializer=ht,be},_support:function lr(){return"function"==typeof openDatabase}(),iterate:function pr(D,te){var he=this,ye=new ve((function(te,ye){he.ready().then((function(){var be=he._dbInfo;be.db.transaction((function(he){ne(he,be,"SELECT * FROM "+be.storeName,[],(function(he,ye){for(var ve=ye.rows,we=ve.length,_e=0;_e<we;_e++){var Pe=ve.item(_e),Ie=Pe.value;if(Ie&&(Ie=be.serializer.deserialize(Ie)),void 0!==(Ie=D(Ie,Pe.key,_e+1)))return void te(Ie)}te()}),(function(D,te){ye(te)}))}))})).catch(ye)}));return _(ye,te),ye},getItem:function yr(D,te){var he=this;D=z(D);var ye=new ve((function(te,ye){he.ready().then((function(){var be=he._dbInfo;be.db.transaction((function(he){ne(he,be,"SELECT * FROM "+be.storeName+" WHERE key = ? LIMIT 1",[D],(function(D,he){var ye=he.rows.length?he.rows.item(0).value:null;ye&&(ye=be.serializer.deserialize(ye)),te(ye)}),(function(D,te){ye(te)}))}))})).catch(ye)}));return _(ye,te),ye},setItem:function gr(D,te,he){return Ve.apply(this,[D,te,he,1])},removeItem:function br(D,te){var he=this;D=z(D);var ye=new ve((function(te,ye){he.ready().then((function(){var be=he._dbInfo;be.db.transaction((function(he){ne(he,be,"DELETE FROM "+be.storeName+" WHERE key = ?",[D],(function(){te()}),(function(D,te){ye(te)}))}))})).catch(ye)}));return _(ye,te),ye},clear:function _r(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){var ye=te._dbInfo;ye.db.transaction((function(te){ne(te,ye,"DELETE FROM "+ye.storeName,[],(function(){D()}),(function(D,te){he(te)}))}))})).catch(he)}));return _(he,D),he},length:function wr(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){var ye=te._dbInfo;ye.db.transaction((function(te){ne(te,ye,"SELECT COUNT(key) as c FROM "+ye.storeName,[],(function(te,he){var ye=he.rows.item(0).c;D(ye)}),(function(D,te){he(te)}))}))})).catch(he)}));return _(he,D),he},key:function Er(D,te){var he=this,ye=new ve((function(te,ye){he.ready().then((function(){var be=he._dbInfo;be.db.transaction((function(he){ne(he,be,"SELECT key FROM "+be.storeName+" WHERE id = ? LIMIT 1",[D+1],(function(D,he){var ye=he.rows.length?he.rows.item(0).key:null;te(ye)}),(function(D,te){ye(te)}))}))})).catch(ye)}));return _(ye,te),ye},keys:function Ir(D){var te=this,he=new ve((function(D,he){te.ready().then((function(){var ye=te._dbInfo;ye.db.transaction((function(te){ne(te,ye,"SELECT key FROM "+ye.storeName,[],(function(te,he){for(var ye=[],be=0;be<he.rows.length;be++)ye.push(he.rows.item(be).key);D(ye)}),(function(D,te){he(te)}))}))})).catch(he)}));return _(he,D),he},dropInstance:function Ar(D,te){te=Z.apply(this,arguments);var he=this.config();(D="function"!=typeof D&&D||{}).name||(D.name=D.name||he.name,D.storeName=D.storeName||he.storeName);var ye,be=this;return ye=D.name?new ve((function(te){var ye;ye=D.name===he.name?be._dbInfo.db:openDatabase(D.name,"","",0),D.storeName?te({db:ye,storeNames:[D.storeName]}):te(function Sr(D){return new ve((function(te,he){D.transaction((function(ye){ye.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(he,ye){for(var be=[],ve=0;ve<ye.rows.length;ve++)be.push(ye.rows.item(ve).name);te({db:D,storeNames:be})}),(function(D,te){he(te)}))}),(function(D){he(D)}))}))}(ye))})).then((function(D){return new ve((function(te,he){D.db.transaction((function(ye){function l(D){return new ve((function(te,he){ye.executeSql("DROP TABLE IF EXISTS "+D,[],(function(){te()}),(function(D,te){he(te)}))}))}for(var be=[],we=0,_e=D.storeNames.length;we<_e;we++)be.push(l(D.storeNames[we]));ve.all(be).then((function(){te()})).catch((function(D){he(D)}))}),(function(D){he(D)}))}))})):ve.reject("Invalid arguments"),_(ye,te),ye}};function Ge(D,te){var he=D.name+"/";return D.storeName!==te.storeName&&(he+=D.storeName+"/"),he}function Tr(){return!function Nr(){var D="_localforage_support_test";try{return localStorage.setItem(D,!0),localStorage.removeItem(D),!1}catch{return!0}}()||localStorage.length>0}var mt={_driver:"localStorageWrapper",_initStorage:function Br(D){var te={};if(D)for(var he in D)te[he]=D[he];return te.keyPrefix=Ge(D,this._defaultConfig),Tr()?(this._dbInfo=te,te.serializer=ht,ve.resolve()):ve.reject()},_support:function Dr(){try{return typeof localStorage<"u"&&"setItem"in localStorage&&!!localStorage.setItem}catch{return!1}}(),iterate:function Cr(D,te){var he=this,ye=he.ready().then((function(){for(var te=he._dbInfo,ye=te.keyPrefix,be=ye.length,ve=localStorage.length,we=1,_e=0;_e<ve;_e++){var Pe=localStorage.key(_e);if(0===Pe.indexOf(ye)){var Ie=localStorage.getItem(Pe);if(Ie&&(Ie=te.serializer.deserialize(Ie)),void 0!==(Ie=D(Ie,Pe.substring(be),we++)))return Ie}}}));return _(ye,te),ye},getItem:function Or(D,te){var he=this;D=z(D);var ye=he.ready().then((function(){var te=he._dbInfo,ye=localStorage.getItem(te.keyPrefix+D);return ye&&(ye=te.serializer.deserialize(ye)),ye}));return _(ye,te),ye},setItem:function Ur(D,te,he){var ye=this;D=z(D);var be=ye.ready().then((function(){void 0===te&&(te=null);var he=te;return new ve((function(be,ve){var we=ye._dbInfo;we.serializer.serialize(te,(function(te,ye){if(ye)ve(ye);else try{localStorage.setItem(we.keyPrefix+D,te),be(he)}catch(D){("QuotaExceededError"===D.name||"NS_ERROR_DOM_QUOTA_REACHED"===D.name)&&ve(D),ve(D)}}))}))}));return _(be,he),be},removeItem:function Fr(D,te){var he=this;D=z(D);var ye=he.ready().then((function(){var te=he._dbInfo;localStorage.removeItem(te.keyPrefix+D)}));return _(ye,te),ye},clear:function xr(D){var te=this,he=te.ready().then((function(){for(var D=te._dbInfo.keyPrefix,he=localStorage.length-1;he>=0;he--){var ye=localStorage.key(he);0===ye.indexOf(D)&&localStorage.removeItem(ye)}}));return _(he,D),he},length:function Mr(D){var te=this.keys().then((function(D){return D.length}));return _(te,D),te},key:function Lr(D,te){var he=this,ye=he.ready().then((function(){var te,ye=he._dbInfo;try{te=localStorage.key(D)}catch{te=null}return te&&(te=te.substring(ye.keyPrefix.length)),te}));return _(ye,te),ye},keys:function Pr(D){var te=this,he=te.ready().then((function(){for(var D=te._dbInfo,he=localStorage.length,ye=[],be=0;be<he;be++){var ve=localStorage.key(be);0===ve.indexOf(D.keyPrefix)&&ye.push(ve.substring(D.keyPrefix.length))}return ye}));return _(he,D),he},dropInstance:function Yr(D,te){if(te=Z.apply(this,arguments),!(D="function"!=typeof D&&D||{}).name){var he=this.config();D.name=D.name||he.name,D.storeName=D.storeName||he.storeName}var ye,be=this;return ye=D.name?new ve((function(te){D.storeName?te(Ge(D,be._defaultConfig)):te(D.name+"/")})).then((function(D){for(var te=localStorage.length-1;te>=0;te--){var he=localStorage.key(te);0===he.indexOf(D)&&localStorage.removeItem(he)}})):ve.reject("Invalid arguments"),_(ye,te),ye}},Wr=function(D,te){return D===te||"number"==typeof D&&"number"==typeof te&&isNaN(D)&&isNaN(te)},Kr=function(D,te){for(var he=D.length,ye=0;ye<he;){if(Wr(D[ye],te))return!0;ye++}return!1},bt=Array.isArray||function(D){return"[object Array]"===Object.prototype.toString.call(D)},wt={},_t={},Tt={INDEXEDDB:Oe,WEBSQL:yt,LOCALSTORAGE:mt},At=[Tt.INDEXEDDB._driver,Tt.WEBSQL._driver,Tt.LOCALSTORAGE._driver],Et=["dropInstance"],Pt=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(Et),St={description:"",driver:At.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function Gr(D,te){D[te]=function(){var he=arguments;return D.ready().then((function(){return D[te].apply(D,he)}))}}function Ae(){for(var D=1;D<arguments.length;D++){var te=arguments[D];if(te)for(var he in te)te.hasOwnProperty(he)&&(bt(te[he])?arguments[0][he]=te[he].slice():arguments[0][he]=te[he])}return arguments[0]}var Ct=function(){function e(D){for(var te in function Y(D,te){if(!(D instanceof te))throw new TypeError("Cannot call a class as a function")}(this,e),Tt)if(Tt.hasOwnProperty(te)){var he=Tt[te],ye=he._driver;this[te]=ye,wt[ye]||this.defineDriver(he)}this._defaultConfig=Ae({},St),this._config=Ae({},this._defaultConfig,D),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(D){if("object"===(typeof D>"u"?"undefined":ye(D))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var te in D){if("storeName"===te&&(D[te]=D[te].replace(/\W/g,"_")),"version"===te&&"number"!=typeof D[te])return new Error("Database version must be a number.");this._config[te]=D[te]}return!("driver"in D)||!D.driver||this.setDriver(this._config.driver)}return"string"==typeof D?this._config[D]:this._config},e.prototype.defineDriver=function(D,te,he){var ye=new ve((function(te,he){try{var ye=D._driver,be=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!D._driver)return void he(be);for(var we=Pt.concat("_initStorage"),_e=0,Pe=we.length;_e<Pe;_e++){var Ie=we[_e];if((!Kr(Et,Ie)||D[Ie])&&"function"!=typeof D[Ie])return void he(be)}!function(){for(var de=function(D){return function(){var te=new Error("Method "+D+" is not implemented by the current driver"),he=ve.reject(te);return _(he,arguments[arguments.length-1]),he}},te=0,he=Et.length;te<he;te++){var ye=Et[te];D[ye]||(D[ye]=de(ye))}}();var W=function(he){wt[ye]&&console.info("Redefining LocalForage driver: "+ye),wt[ye]=D,_t[ye]=he,te()};"_support"in D?D._support&&"function"==typeof D._support?D._support().then(W,he):W(!!D._support):W(!0)}catch(D){he(D)}}));return B(ye,te,he),ye},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(D,te,he){var ye=wt[D]?ve.resolve(wt[D]):ve.reject(new Error("Driver not found."));return B(ye,te,he),ye},e.prototype.getSerializer=function(D){var te=ve.resolve(ht);return B(te,D),te},e.prototype.ready=function(D){var te=this,he=te._driverSet.then((function(){return null===te._ready&&(te._ready=te._initDriver()),te._ready}));return B(he,D,D),he},e.prototype.setDriver=function(D,te,he){var ye=this;bt(D)||(D=[D]);var be=this._getSupportedDrivers(D);function u(){ye._config.driver=ye.driver()}function c(D){return ye._extend(D),u(),ye._ready=ye._initStorage(ye._config),ye._ready}var we=null!==this._driverSet?this._driverSet.catch((function(){return ve.resolve()})):ve.resolve();return this._driverSet=we.then((function(){var D=be[0];return ye._dbInfo=null,ye._ready=null,ye.getDriver(D).then((function(D){ye._driver=D._driver,u(),ye._wrapLibraryMethodsWithReady(),ye._initDriver=function l(D){return function(){var te=0;return function x(){for(;te<D.length;){var he=D[te];return te++,ye._dbInfo=null,ye._ready=null,ye.getDriver(he).then(c).catch(x)}u();var be=new Error("No available storage method found.");return ye._driverSet=ve.reject(be),ye._driverSet}()}}(be)}))})).catch((function(){u();var D=new Error("No available storage method found.");return ye._driverSet=ve.reject(D),ye._driverSet})),B(this._driverSet,te,he),this._driverSet},e.prototype.supports=function(D){return!!_t[D]},e.prototype._extend=function(D){Ae(this,D)},e.prototype._getSupportedDrivers=function(D){for(var te=[],he=0,ye=D.length;he<ye;he++){var be=D[he];this.supports(be)&&te.push(be)}return te},e.prototype._wrapLibraryMethodsWithReady=function(){for(var D=0,te=Pt.length;D<te;D++)Gr(this,Pt[D])},e.prototype.createInstance=function(D){return new e(D)},e}(),kt=new Ct;te.exports=kt},{3:3}]},{},[4])(4)}))})),DT=$e(((D,te)=>{!function(he,ye){"object"==typeof D&&typeof te<"u"?ye(D):"function"==typeof define&&define.amd?define("localforage-driver-memory",["exports"],ye):ye(he.LocalforageDriverMemory={})}(typeof self<"u"?self:D,(function(D){var te=/^~~local_forage_type~([^~]+)~/,he=Object.prototype.toString;function I(D){var te=.75*D.length,he=D.length;"="===D[D.length-1]&&(te--,"="===D[D.length-2]&&te--);for(var ye=new ArrayBuffer(te),be=new Uint8Array(ye),ve=0,we=0;ve<he;ve+=4){var _e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(D[ve]),Pe="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(D[ve+1]),Ie="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(D[ve+2]),Re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".indexOf(D[ve+3]);be[we++]=_e<<2|Pe>>4,be[we++]=(15&Pe)<<4|Ie>>2,be[we++]=(3&Ie)<<6|63&Re}return ye}function M(D){for(var te=new Uint8Array(D),he="",ye=0;ye<te.length;ye+=3)he+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[te[ye]>>2],he+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(3&te[ye])<<4|te[ye+1]>>4],he+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(15&te[ye+1])<<2|te[ye+2]>>6],he+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[63&te[ye+2]];return te.length%3==2?he=he.substring(0,he.length-1)+"=":te.length%3==1&&(he=he.substring(0,he.length-2)+"=="),he}function m(D){var te,he;if(null===D||"object"!=typeof D||"isActiveClone"in D)return D;var ye=D instanceof Date?new Date(D):D.constructor();try{for(var be=function R(D){var te="function"==typeof Symbol&&D[Symbol.iterator],he=0;return te?te.call(D):{next:function(){return D&&he>=D.length&&(D=void 0),{value:D&&D[he++],done:!D}}}}(Object.keys(D)),ve=be.next();!ve.done;ve=be.next()){var we=ve.value;Object.prototype.hasOwnProperty.call(D,we)&&(D.isActiveClone=null,ye[we]=m(D[we]),delete D.isActiveClone)}}catch(D){te={error:D}}finally{try{ve&&!ve.done&&(he=be.return)&&he.call(be)}finally{if(te)throw te.error}}return ye}function _(D,te){return(D.name||te.name)+"/"+(D.storeName||te.storeName)+"/"}function B(D,te){te&&D.then((function(D){te(null,D)}),(function(D){te(D)}))}function z(){for(var D=[],te=0;te<arguments.length;te++)D[te]=arguments[te];if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}function Z(D,te){var he,ye=this;if(te=z.apply(this,arguments),!(D="function"!=typeof D&&D||{}).name){var be=this.config();D.name=D.name||be.name,D.storeName=D.storeName||be.storeName}return he=D.name?new Promise((function(te){D.storeName?te(_(D,ye._defaultConfig)):te(D.name+"/")})):Promise.reject("Invalid arguments"),{promise:he,callback:te}}function F(D){return"string"!=typeof D&&(console.warn(D+" used as a key, but it is not a string."),D=String(D)),D}var ye={bufferToString:M,deserialize:function $(D){if("__lfsc__:"!==D.substring(0,9))return JSON.parse(D);var he,ye=D.substring(13),be=D.substring(9,13);if("blob"===be&&te.test(ye)){var ve=ye.match(te);he=ve[1],ye=ye.substring(ve[0].length)}var we=I(ye);switch(be){case"arbf":return we;case"blob":return function L(D,te){D=D||[],te=te||{};try{return new Blob(D,te)}catch(be){if("TypeError"!==be.name)throw be;for(var he=new(typeof BlobBuilder<"u"?BlobBuilder:typeof MSBlobBuilder<"u"?MSBlobBuilder:typeof MozBlobBuilder<"u"?MozBlobBuilder:WebKitBlobBuilder),ye=0;ye<D.length;ye+=1)he.append(D[ye]);return he.getBlob(te.type)}}([we],{type:he});case"si08":return new Int8Array(we);case"ui08":return new Uint8Array(we);case"uic8":return new Uint8ClampedArray(we);case"si16":return new Int16Array(we);case"ur16":return new Uint16Array(we);case"si32":return new Int32Array(we);case"ui32":return new Uint32Array(we);case"fl32":return new Float32Array(we);case"fl64":return new Float64Array(we);default:throw new Error("Unkown type: "+be)}},serialize:function H(D,te){var ye="";if(D&&(ye=he.call(D)),D&&("[object ArrayBuffer]"===ye||D.buffer&&"[object ArrayBuffer]"===he.call(D.buffer))){var be=void 0,ve="__lfsc__:";D instanceof ArrayBuffer?(be=D,ve+="arbf"):(be=D.buffer,"[object Int8Array]"===ye?ve+="si08":"[object Uint8Array]"===ye?ve+="ui08":"[object Uint8ClampedArray]"===ye?ve+="uic8":"[object Int16Array]"===ye?ve+="si16":"[object Uint16Array]"===ye?ve+="ur16":"[object Int32Array]"===ye?ve+="si32":"[object Uint32Array]"===ye?ve+="ui32":"[object Float32Array]"===ye?ve+="fl32":"[object Float64Array]"===ye?ve+="fl64":te(new Error("Failed to get type for BinaryArray"))),te(ve+M(be))}else if("[object Blob]"===ye){var we=new FileReader;we.onload=function(){var he="~~local_forage_type~"+D.type+"~"+M(this.result);te("__lfsc__:blob"+he)},we.readAsArrayBuffer(D)}else try{te(JSON.stringify(D))}catch(he){console.error("Couldn't convert value into a JSON string: ",D),te(null,he)}},stringToBuffer:I},be={},ve=function(){function a(D){this.kp=D,this.data={}}return a.resolve=function(D){return be[D]||(be[D]=new a(D)),be[D]},a.prototype.clear=function(){this.data={}},a.prototype.drop=function(){this.clear(),delete be[this.kp]},a.prototype.get=function(D){return this.data[D]},a.prototype.key=function(D){return this.keys()[D]},a.prototype.keys=function(){return Object.keys(this.data)},a.prototype.rm=function(D){delete this.data[D]},a.prototype.set=function(D,te){this.data[D]=te},a}();D._support=!0,D._driver="localforage-driver-memory",D._initStorage=function re(D){var te=D?m(D):{},he=_(te,this._defaultConfig),be=ve.resolve(he);return this._dbInfo=te,this._dbInfo.serializer=ye,this._dbInfo.keyPrefix=he,this._dbInfo.mStore=be,Promise.resolve()},D.clear=function h(D){var te=this,he=this.ready().then((function(){te._dbInfo.mStore.clear()}));return B(he,D),he},D.dropInstance=function N(D,te){var he=Z.apply(this,arguments),ye=he.promise,be=he.callback,we=ye.then((function(D){ve.resolve(D).drop()}));return B(we,be),ye},D.getItem=function E(D,te){var he=this;D=F(D);var ye=this.ready().then((function(){var te=he._dbInfo.mStore.get(D);return null==te?null:he._dbInfo.serializer.deserialize(te)}));return B(ye,te),ye},D.iterate=function O(D,te){var he=this,ye=this.ready().then((function(){for(var te=he._dbInfo.mStore,ye=te.keys(),be=0;be<ye.length;be++){var ve=te.get(ye[be]);if(ve&&(ve=he._dbInfo.serializer.deserialize(ve)),void 0!==(ve=D(ve,ye[be],be+1)))return ve}}));return B(ye,te),ye},D.key=function V(D,te){var he=this,ye=this.ready().then((function(){var te;try{void 0===(te=he._dbInfo.mStore.key(D))&&(te=null)}catch{te=null}return te}));return B(ye,te),ye},D.keys=function j(D){var te=this,he=this.ready().then((function(){return te._dbInfo.mStore.keys()}));return B(he,D),he},D.length=function Q(D){var te=this.keys().then((function(D){return D.length}));return B(te,D),te},D.removeItem=function J(D,te){var he=this;D=F(D);var ye=this.ready().then((function(){he._dbInfo.mStore.rm(D)}));return B(ye,te),ye},D.setItem=function ee(D,te,he){var ye=this;D=F(D);var be=this.ready().then((function(){void 0===te&&(te=null);var he=te;return new Promise((function(be,ve){ye._dbInfo.serializer.serialize(te,(function(te,we){if(we)ve(we);else try{ye._dbInfo.mStore.set(D,te),be(he)}catch(D){ve(D)}}))}))}));return B(be,he),be},Object.defineProperty(D,"__esModule",{value:!0})}))})),LT=Ze(FT()),UT=Ze(DT()),$T={display:"none",position:"fixed",top:"0",right:"0",width:"100%",height:"100%",borderRadius:"0",border:"none",zIndex:"2147483647"};var qT=function Nn(D,te){return Object.assign(q_,te),D}(CT,{platform:"web",sdkName:"magic-sdk",version:"21.2.0",defaultEndpoint:"https://auth.magic.link/",ViewController:class extends IT{constructor(){super(...arguments),this.activeElement=null}init(){this.test="hello",this.iframe=new Promise((D=>{let L=()=>{if(function ut$1(D){let te=[].slice.call(document.querySelectorAll(".magic-iframe"));return Boolean(te.find((te=>te.src.includes(D))))}(encodeURIComponent(this.parameters)))(function Rr(){return new z_(Gw.DuplicateIframe,"Duplicate iframes found.")})().log();else{let te=document.createElement("iframe");te.classList.add("magic-iframe"),te.dataset.magicIframeLabel=Se(this.endpoint).host,te.title="Secure Modal",te.src=Se(`/send?params=${encodeURIComponent(this.parameters)}`,this.endpoint).href,function ft(D){for(let[te,he]of Object.entries($T))D.style[te]=he}(te),document.body.appendChild(te),D(te)}};["loaded","interactive","complete"].includes(document.readyState)?L():window.addEventListener("load",L,!1)})),window.addEventListener("message",(D=>{var te;if(D.origin===this.endpoint&&D.data&&D.data.msgType&&this.messageHandlers.size){D.data.response=null!=(te=D.data.response)?te:{};for(let te of this.messageHandlers.values())te(D)}}))}showOverlay(){return se(this,null,(function*(){let D=yield this.iframe;D.style.display="block",this.activeElement=document.activeElement,D.focus()}))}hideOverlay(){return se(this,null,(function*(){var D;(yield this.iframe).style.display="none",null!=(D=this.activeElement)&&D.focus&&this.activeElement.focus(),this.activeElement=null}))}_post(D){return se(this,null,(function*(){let te=yield this.iframe;if(!te||!te.contentWindow)throw function yr(){return new j_(qw.ModalNotReady,"Modal is not ready.")}();te.contentWindow.postMessage(D,this.endpoint)}))}},configureStorage:()=>se(void 0,null,(function*(){let D=LT.default.createInstance({name:"MagicAuthLocalStorageDB",storeName:"MagicAuthLocalStorage"});return yield D.defineDriver(UT),yield D.setDriver([LT.default.INDEXEDDB,LT.default.LOCALSTORAGE,UT._driver]),D}))}),GT=(D=>(D.LoginWithOIDC="magic_auth_login_with_oidc",D))(GT||{}),jT=class n extends ET.Internal{constructor(){super(...arguments),this.name="openid",this.config={}}loginWithOIDC(D){let te=this.utils.createJsonRpcRequestPayload("magic_auth_login_with_oidc",[D]);return this.request(te)}};function importRecoveryParam(D){const te=-1!==new Oi(D,16).cmp(new Oi(27))?new Oi(D,16).sub(new Oi(27)).toNumber():new Oi(D,16).toNumber();return D.trim()?te:void 0}async function signRaw(D,te){return function serializeEthSignature(D){return Is(Ss(D.r.toString(16),64)+Ss(D.s.toString(16),64)+Ss(D.recoveryParam?.toString(16)||"",2))}(function deserializeSignature(D,te=64){const he=Cs(D);return{r:new Oi(he.substring(0,te),"hex"),s:new Oi(he.substring(te,2*te),"hex"),recoveryParam:importRecoveryParam(he.substring(2*te,2*te+2))}}(await te.signMessage(D)))}function convertToSignableToken(D){switch(D.type){case"ERC721":return{type:"ERC721",data:{token_id:D.tokenId,token_address:D.tokenAddress}};case"ERC20":return{type:"ERC20",data:{token_address:D.tokenAddress}};default:return{type:"ETH",data:{decimals:18}}}}var HT=Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"bytes32",type:"bytes32"}],name:"getAlternativeSignature",outputs:[{internalType:"string",type:"string"}],stateMutability:"view",type:"function"}]});var zT=Object.freeze({__proto__:null,abi:[{type:"function",name:"isValidSignature",constant:!0,inputs:[{type:"bytes32"},{type:"bytes"}],outputs:[{type:"bytes4"}],payable:!1,stateMutability:"view"}],returns:{isValidSignatureBytes32:"0x1626ba7e"}});const WT={erc6492:Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"bytes",name:"error",type:"bytes"}],name:"ERC1271Revert",type:"error"},{inputs:[{internalType:"bytes",name:"error",type:"bytes"}],name:"ERC6492DeployFailed",type:"error"},{inputs:[{internalType:"address",name:"_signer",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"_signature",type:"bytes"}],name:"isValidSig",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"_signature",type:"bytes"},{internalType:"bool",name:"allowSideEffects",type:"bool"},{internalType:"bool",name:"deployAlreadyDeployed",type:"bool"}],name:"isValidSigImpl",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"_signature",type:"bytes"}],name:"isValidSigNoThrow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"_signature",type:"bytes"}],name:"isValidSigWithSideEffects",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_signer",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"bytes",name:"_signature",type:"bytes"}],name:"isValidSigWithSideEffectsNoThrow",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}]}),erc5719:HT,erc1271:zT,factory:Object.freeze({__proto__:null,abi:[{type:"function",name:"deploy",constant:!1,inputs:[{type:"address"},{type:"bytes32"}],outputs:[],payable:!0,stateMutability:"payable"}]}),mainModule:Object.freeze({__proto__:null,abi:[{type:"function",name:"nonce",constant:!0,inputs:[],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"readNonce",constant:!0,inputs:[{type:"uint256"}],outputs:[{type:"uint256"}],payable:!1,stateMutability:"view"},{type:"function",name:"updateImplementation",constant:!1,inputs:[{type:"address"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"selfExecute",constant:!1,inputs:[{components:[{type:"bool",name:"delegateCall"},{type:"bool",name:"revertOnError"},{type:"uint256",name:"gasLimit"},{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"data"}],type:"tuple[]"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"execute",constant:!1,inputs:[{components:[{type:"bool",name:"delegateCall"},{type:"bool",name:"revertOnError"},{type:"uint256",name:"gasLimit"},{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"data"}],type:"tuple[]"},{type:"uint256"},{type:"bytes"}],outputs:[],payable:!1,stateMutability:"nonpayable"},{type:"function",name:"createContract",inputs:[{type:"bytes"}],payable:!0,stateMutability:"payable"}]}),mainModuleUpgradable:Object.freeze({__proto__:null,abi:[{type:"function",name:"updateImageHash",constant:!0,inputs:[{type:"bytes32"}],outputs:[],payable:!1,stateMutability:"view"},{type:"function",name:"imageHash",constant:!0,inputs:[],outputs:[{type:"bytes32"}],payable:!1,stateMutability:"view"}]}),sequenceUtils:Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_mainModule",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_wallet",type:"address"},{indexed:!0,internalType:"bytes32",name:"_imageHash",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"_threshold",type:"uint256"},{indexed:!1,internalType:"bytes",name:"_signers",type:"bytes"}],name:"RequiredConfig",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"_wallet",type:"address"},{indexed:!0,internalType:"address",name:"_signer",type:"address"}],name:"RequiredSigner",type:"event"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callBalanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callBlockNumber",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_i",type:"uint256"}],name:"callBlockhash",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"callChainId",outputs:[{internalType:"uint256",name:"id",type:"uint256"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCode",outputs:[{internalType:"bytes",name:"code",type:"bytes"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCodeHash",outputs:[{internalType:"bytes32",name:"codeHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_addr",type:"address"}],name:"callCodeSize",outputs:[{internalType:"uint256",name:"size",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callCoinbase",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"callDifficulty",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasLeft",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callGasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"callOrigin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"callTimestamp",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"knownImageHashes",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"lastImageHashUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"lastSignerUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"lastWalletUpdate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bool",name:"delegateCall",type:"bool"},{internalType:"bool",name:"revertOnError",type:"bool"},{internalType:"uint256",name:"gasLimit",type:"uint256"},{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],internalType:"struct IModuleCalls.Transaction[]",name:"_txs",type:"tuple[]"}],name:"multiCall",outputs:[{internalType:"bool[]",name:"_successes",type:"bool[]"},{internalType:"bytes[]",name:"_results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"uint256",name:"_threshold",type:"uint256"},{components:[{internalType:"uint256",name:"weight",type:"uint256"},{internalType:"address",name:"signer",type:"address"}],internalType:"struct RequireUtils.Member[]",name:"_members",type:"tuple[]"},{internalType:"bool",name:"_index",type:"bool"}],name:"publishConfig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"bytes32",name:"_hash",type:"bytes32"},{internalType:"uint256",name:"_sizeMembers",type:"uint256"},{internalType:"bytes",name:"_signature",type:"bytes"},{internalType:"bool",name:"_index",type:"bool"}],name:"publishInitialSigners",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_wallet",type:"address"},{internalType:"uint256",name:"_nonce",type:"uint256"}],name:"requireMinNonce",outputs:[],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_expiration",type:"uint256"}],name:"requireNonExpired",outputs:[],stateMutability:"view",type:"function"}]}),requireFreshSigner:Object.freeze({__proto__:null,abi:[{inputs:[{internalType:"address",name:"",type:"address"}],name:"requireFreshSigner",outputs:[],stateMutability:"nonpayable",type:"function"}]})};function _extends$4(){return _extends$4=Object.assign?Object.assign.bind():function(D){for(var te=1;te<arguments.length;te++){var he=arguments[te];for(var ye in he)Object.prototype.hasOwnProperty.call(he,ye)&&(D[ye]=he[ye])}return D},_extends$4.apply(this,arguments)}const VT="0x1626ba7e",KT=[{inputs:[{internalType:"bytes32",type:"bytes32"},{internalType:"bytes",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",type:"bytes4"}],stateMutability:"view",type:"function"}];let JT=function(D){return D[D.EIP712=1]="EIP712",D[D.ETH_SIGN=2]="ETH_SIGN",D[D.WALLET_BYTES32=3]="WALLET_BYTES32",D}({});function recoverSigner(D,te){const he=arrayify$1(te),ye=arrayify$1(D),be=he[he.length-1],ve={r:hexlify$2(he.slice(0,32)),s:hexlify$2(he.slice(32,64)),v:Li.from(he.slice(64,65)).toNumber()};if(be===JT.EIP712)return recoverAddress$1(ye,ve);if(be===JT.ETH_SIGN)return recoverAddress$1(hashMessage(ye),ve);throw new Error(`Unsupported signature type: ${be}`)}function isValidSignature(D,te,he,ye){const be=arrayify$1(he),ve=be[be.length-1];if(ve===JT.EIP712||ve===JT.ETH_SIGN)return D===recoverSigner(te,he);if(ve===JT.WALLET_BYTES32)return async function isValidEIP1271Signature(D,te,he,ye){const be=new fu(D,KT,ye);return await be.isValidSignature(te,he)===VT}(D,hexlify$2(te),be.slice(0,-1),ye);throw new Error(`Unsupported signature type: ${ve}`)}let XT=function(D){return D[D.EOASignature=0]="EOASignature",D[D.Address=1]="Address",D[D.DynamicSignature=2]="DynamicSignature",D}({});function isAddressMember(D){return void 0!==D.address&&!isUnrecoveredSignatureMember(D)}function isUnrecoveredSignatureMember(D){return void 0!==D.signature&&void 0!==D.weight&&void 0!==D.isDynamic}function isUnrecoveredSignature$1(D){return void 0!==D.threshold&&void 0!==D.signers}function decodeSignature$1(D){const te=arrayify$1(D),he=te[0]<<8|te[1],ye=[];for(let D=2;D<te.length;){const he=te[D++],be=te[D++];switch(he){case XT.EOASignature:ye.push({unrecovered:!0,weight:be,signature:hexlify$2(te.slice(D,D+66)),isDynamic:!1}),D+=66;break;case XT.Address:ye.push({weight:be,address:getAddress$2(hexlify$2(te.slice(D,D+20)))}),D+=20;break;case XT.DynamicSignature:const ve=getAddress$2(hexlify$2(te.slice(D,D+20)));D+=20;const we=te[D]<<8|te[D+1];D+=2,ye.push({unrecovered:!0,weight:be,signature:hexlify$2(te.slice(D,D+we)),address:ve,isDynamic:!0}),D+=we;break;default:throw new Error(`Unknown signature part type: ${he}`)}}return{version:1,threshold:he,signers:ye}}function encodeSignature$1(D){if(isBytesLike$2(D))return hexlify$2(D);const{signers:te,threshold:he}=isUnrecoveredSignature$1(D)?D:D.config,ye=te.map((D=>{if(isAddressMember(D))return pack$2(["uint8","uint8","address"],[XT.Address,D.weight,D.address]);if(D.isDynamic){const te=arrayify$1(D.signature);return pack$2(["uint8","uint8","address","uint16","bytes"],[XT.DynamicSignature,D.weight,D.address,te.length,te])}return pack$2(["uint8","uint8","bytes"],[XT.EOASignature,D.weight,D.signature])}));return pack$2(["uint16",...new Array(ye.length).fill("bytes")],[he,...ye])}async function recoverSignature$1(D,te,he){const ye=function subdigestOf(D){return keccak256$2(["bytes","uint256","address","bytes32"],["0x1901",D.chainId,D.address,D.digest])}(te),be=await Promise.all(D.signers.map((async D=>{if(isAddressMember(D))return D;if(D.isDynamic){if(!D.address)throw new Error("Dynamic signature part must have address");if(!isValidSignature(D.address,ye,D.signature,he))throw new Error(`Invalid dynamic signature part ${D.address}`);return{address:D.address,weight:D.weight,signature:D.signature}}return{address:recoverSigner(ye,D.signature),weight:D.weight,signature:D.signature}})));return{version:1,payload:te,subdigest:ye,config:{version:1,threshold:D.threshold,signers:be}}}function encodeSigners$1(D,te,he,ye){if(0!==he.length)throw new Error("Explicit subdigests not supported on v1");let be=Li.from(0);const ve=D.signers.map((D=>{if(!te.has(D.address))return D;const he=te.get(D.address),ye=arrayify$1(he.signature);return be=be.add(D.weight),he.isDynamic||66!==ye.length?_extends$4({},D,{isDynamic:!0,signature:he.signature,address:D.address}):_extends$4({},D,{isDynamic:!1,signature:he.signature})}));return{encoded:encodeSignature$1({version:1,threshold:D.threshold,signers:ve}),weight:be}}const QT={decode:D=>decodeSignature$1(D),encode:D=>encodeSignature$1(D),trim:async D=>D,supportsNoChainId:!0,recover:(D,te,he)=>recoverSignature$1(D,te,he),encodeSigners:(D,te,he,ye)=>encodeSigners$1(D,te,he),hasEnoughSigningPower:(D,te)=>{const{weight:he}=QT.encodeSigners(D,te,[],0);return he.gte(D.threshold)},chainSignatures:(D,te)=>{throw new Error("Signature chaining not supported on v1")},hashSetImageHash:function(D){throw new Error("Image hash not supported on v1")},signaturesOf:D=>D.signers.filter((D=>void 0!==D.signature)).map((D=>({address:D.address,signature:D.signature}))),signaturesOfDecoded:function(D){return D.signers.map((D=>D.signature)).filter((D=>void 0!==D))}};var ZT=Object.freeze({__proto__:null,SignaturePartType:XT,isAddressMember:isAddressMember,isUnrecoveredSignatureMember:isUnrecoveredSignatureMember,isUnrecoveredSignature:isUnrecoveredSignature$1,decodeSignature:decodeSignature$1,encodeSignature:encodeSignature$1,recoverSignature:recoverSignature$1,encodeSigners:encodeSigners$1,SignatureCoder:QT});const YT={isWalletConfig:D=>1===D.version&&void 0!==D.threshold&&void 0!==D.signers,imageHashOf:D=>D.signers.reduce(((D,te)=>keccak256$3(vo.encode(["bytes32","uint8","address"],[D,te.weight,te.address]))),pack$2(["uint256"],[D.threshold])),hasSubdigest:(D,te)=>!1,isComplete:D=>!0,checkpointOf:D=>Li.from(0),signersOf:D=>D.signers.map((D=>({address:D.address,weight:Li.from(D.weight).toNumber()}))),fromSimple:D=>{if(!Vi.eq(D.checkpoint))throw new Error("v1 wallet config does not support checkpoint");return{version:1,threshold:D.threshold,signers:D.signers}},update:{isKindUsed:!0,buildTransaction:(D,te,he,ye)=>{const be=new Xo([...WT.mainModule.abi,...WT.mainModuleUpgradable.abi]),ve=[];return ye&&"first"!==ye||ve.push({to:D,data:be.encodeFunctionData(be.getFunction("updateImplementation"),[he.mainModuleUpgradable]),gasLimit:0,delegateCall:!1,revertOnError:!0,value:0}),ve.push({to:D,data:be.encodeFunctionData(be.getFunction("updateImageHash"),[YT.imageHashOf(te)]),gasLimit:0,delegateCall:!1,revertOnError:!0,value:0}),{entrypoint:D,transactions:ve}},decodeTransaction:function(D){throw new Error("Function not implemented.")}},toJSON:function(D){const te=D.signers.map((D=>({weight:Li.from(D.weight).toString(),address:D.address})));return JSON.stringify({version:D.version,threshold:Li.from(D.threshold).toString(),signers:te})},fromJSON:function(D){const te=JSON.parse(D),he=te.signers.map((D=>({weight:Li.from(D.weight),address:D.address})));return{version:te.version,threshold:Li.from(te.threshold),signers:he}},editConfig:function(D,te){var he;const ye=D.signers.slice();if(te.checkpoint&&!Vi.eq(te.checkpoint))throw new Error("v1 wallet config does not support checkpoint");if(te.add)for(const D of te.add)ye.find((te=>te.address===D.address))||ye.push({weight:D.weight,address:D.address});if(te.remove)for(const D of te.remove){const te=ye.findIndex((te=>te.address===D));te>=0&&ye.splice(te,1)}return{version:D.version,threshold:null!=(he=te.threshold)?he:D.threshold,signers:ye}},buildStubSignature:function(D,te){const he=new Map;for(const[ye,be]of te.entries()){he.set(ye,{signature:be,isDynamic:!0});const{encoded:te,weight:ve}=encodeSigners$1(D,he,[]);if(ve.gte(D.threshold))return te}const ye=D.signers;for(const{address:te}of ye.sort((({weight:D},{weight:te})=>Li.from(D).sub(te).toNumber()))){const ye="0x4e82f02f388a12b5f9d29eaf2452dd040c0ee5804b4e504b4dd64e396c6c781f2c7624195acba242dd825bfd25a290912e3c230841fd55c9a734c4de8d9899451b02";he.set(te,{signature:ye,isDynamic:!1});const{encoded:be,weight:ve}=encodeSigners$1(D,he,[]);if(ve.gte(D.threshold))return be}return encodeSigners$1(D,he,[]).encoded}};var eA=Object.freeze({__proto__:null,ConfigCoder:YT});const tA={version:1,factory:"0xf9D09D634Fb818b05149329C1dcCFAeA53639d96",guestModule:"0x02390F3E6E5FD1C6786CB78FD3027C117a9955A7",mainModule:"0xd01F11855bCcb95f88D7A48492F66410d4637313",mainModuleUpgradable:"0x7EFE6cE415956c5f80C6530cC6cc81b4808F6118",walletCreationCode:"0x603a600e3d39601a805130553df3363d3d373d3d3d363d30545af43d82803e903d91601857fd5bf3"};var rA,nA=Object.freeze({__proto__:null,config:eA,signature:ZT,version:1,DeployedWalletContext:tA});function isAPIError(D){return"code"in D&&"message"in D}!function(D){D.AUTHENTICATION_ERROR="AUTHENTICATION_ERROR",D.INVALID_CONFIGURATION="INVALID_CONFIGURATION",D.WALLET_CONNECTION_ERROR="WALLET_CONNECTION_ERROR",D.NOT_LOGGED_IN_ERROR="NOT_LOGGED_IN_ERROR",D.SILENT_LOGIN_ERROR="SILENT_LOGIN_ERROR",D.REFRESH_TOKEN_ERROR="REFRESH_TOKEN_ERROR",D.USER_REGISTRATION_ERROR="USER_REGISTRATION_ERROR",D.USER_NOT_REGISTERED_ERROR="USER_NOT_REGISTERED_ERROR",D.LOGOUT_ERROR="LOGOUT_ERROR",D.TRANSFER_ERROR="TRANSFER_ERROR",D.CREATE_ORDER_ERROR="CREATE_ORDER_ERROR",D.CANCEL_ORDER_ERROR="CANCEL_ORDER_ERROR",D.EXCHANGE_TRANSFER_ERROR="EXCHANGE_TRANSFER_ERROR",D.CREATE_TRADE_ERROR="CREATE_TRADE_ERROR",D.OPERATION_NOT_SUPPORTED_ERROR="OPERATION_NOT_SUPPORTED_ERROR",D.LINK_WALLET_ALREADY_LINKED_ERROR="LINK_WALLET_ALREADY_LINKED_ERROR",D.LINK_WALLET_MAX_WALLETS_LINKED_ERROR="LINK_WALLET_MAX_WALLETS_LINKED_ERROR",D.LINK_WALLET_VALIDATION_ERROR="LINK_WALLET_VALIDATION_ERROR",D.LINK_WALLET_DUPLICATE_NONCE_ERROR="LINK_WALLET_DUPLICATE_NONCE_ERROR",D.LINK_WALLET_GENERIC_ERROR="LINK_WALLET_GENERIC_ERROR",D.SERVICE_UNAVAILABLE_ERROR="SERVICE_UNAVAILABLE_ERROR"}(rA||(rA={}));class PassportError extends Error{type;constructor(D,te){super(D),this.type=te}}const withPassportError=async(D,te)=>{try{return await D()}catch(D){let he;if(D instanceof PassportError&&D.type===rA.SERVICE_UNAVAILABLE_ERROR)throw new PassportError(D.message,D.type);throw he=jr(D)&&D.response?.data&&isAPIError(D.response.data)?D.response.data.message:D.message,new PassportError(he,te)}},aA="pkce_state",iA="pkce_verifier";class DeviceCredentialsManager{areValid(D){if(D){const te=this.isTokenValid(D.access_token),he=this.isTokenValid(D.id_token);return te&&he}return!1}isTokenValid(D){try{const te=o$1(D).exp??0;return te>Date.now()/1e3+3600}catch(D){return!1}}savePKCEData(D){localStorage.setItem(aA,D.state),localStorage.setItem(iA,D.verifier)}getPKCEData(){const D=localStorage.getItem(aA),te=localStorage.getItem(iA);return D&&te?{state:D,verifier:te}:null}}var sA,logger$f_warn=(...D)=>{};function isTokenExpired(D){const{id_token:te,expired:he}=D;return!!he||function isIdTokenExpired(D){if(!D)return!1;const te=o$1(D),he=Math.floor(Date.now()/1e3);return te.exp<he}(te)}!function(D){D.LOGGED_OUT="loggedOut",D.LOGGED_IN="loggedIn",D.ACCOUNTS_REQUESTED="accountsRequested"}(sA||(sA={}));const isUserZkEvm=D=>!!D.zkEvm,isUserImx=D=>!!D.imx,oA="passport-overlay",cA=`${oA}-close`,dA=`${oA}-try-again`,getOverlay=D=>`\n    <div\n      id="${oA}"\n      style="\n        position: fixed !important;\n        top: 0 !important;\n        left: 0 !important;\n        width: 100% !important;\n        height: 100% !important;\n        background: rgba(13, 13, 13, 0.48) !important;\n        backdrop-filter: blur(28px) !important;\n        -webkit-backdrop-filter: blur(28px) !important;\n        display: flex !important;\n        flex-direction: column !important;\n        justify-content: center !important;\n        align-items: center !important;\n        font-size: 16px !important;\n        line-height: 1.5 !important;\n        font-family: Roboto !important;\n        font-style: normal !important;\n        font-weight: 400 !important;\n        font-feature-settings: 'clig' off, 'liga' off !important;\n        z-index: 2147483647 !important;\n      "\n    >\n      \n    <button\n      id="${cA}"\n      style="\n        background: #f3f3f326 !important;\n        border: none !important;\n        border-radius: 50% !important;\n        width: 48px !important;\n        height: 48px !important;\n        position: absolute !important;\n        top: 40px !important;\n        right: 40px !important;\n        cursor: pointer !important;\n        display: flex !important;\n        align-items: center !important;\n        justify-content: center !important;\n      "\n    >\n      \n  <svg\n    viewBox="0 0 20 20"\n    fill="none"\n    xmlns="http://www.w3.org/2000/svg"\n    style="width: 20px !important;"\n    >\n      <path\n        d="M16.25 5.75833L14.2417 3.75L10 7.99167L5.75833 3.75L3.75 5.75833L7.99167 10L3.75 14.2417L5.75833 16.25L10 12.0083L14.2417 16.25L16.25 14.2417L12.0083 10L16.25 5.75833Z"\n        fill="#F3F3F3"\n      />\n  </svg>\n\n    </button>\n  \n      <div\n        style="\n          display: flex !important;\n          flex-direction: column !important;\n          align-items: center !important;\n          max-width: 400px !important;\n        "\n      >\n        \n  <svg\n    style="\n      max-width: 123px !important;\n      margin-bottom: 24px !important;\n    "\n    viewBox="0 0 124 112"\n    fill="none"\n    xmlns="http://www.w3.org/2000/svg"\n  >\n    <g clip-path="url(#clip0_332_47939)">\n      <g clip-path="url(#clip1_332_47939)">\n        <path\n          d="M4.10008 74.9453H0.5V93.6041H4.10008V74.9453Z"\n          fill="#F3F3F3"\n        />\n        <path\n          d="M22.9585 80.0212C21.1727 80.0212 19.5283 80.7622 18.5505 82.3115C17.8209 80.8013 16.3595 80.0212 14.4691 80.0212C12.864 80.0212 11.3786 80.7231 10.4792 82.1681V80.282H7.00976V93.6063H10.4792V86.2032C10.4792 84.3432 11.7445 82.9503 13.3475 82.9503H13.5565C14.9787 82.9503 15.643 83.8477 15.643 85.6187V93.6085H19.1124V86.2054C19.1124 84.3453 20.3647 82.9525 21.9676 82.9525H22.1767C23.5989 82.9525 24.237 83.8499 24.237 85.6208V93.6106H27.7064V85.2188C27.7064 83.6435 27.3274 82.3832 26.5717 81.4315C25.8029 80.4949 24.6029 80.0256 22.9585 80.0256V80.0212Z"\n          fill="#F3F3F3"\n        />\n        <path\n          d="M46.0291 80.0212C44.2432 80.0212 42.5989 80.7622 41.621 82.3115C40.8914 80.8013 39.43 80.0212 37.5396 80.0212C35.9345 80.0212 34.4492 80.7231 33.5497 82.1681V80.282H30.0803V93.6063H33.5497V86.2032C33.5497 84.3432 34.8151 82.9503 36.418 82.9503H36.6271C38.0493 82.9503 38.7135 83.8477 38.7135 85.6187V93.6085H42.1829V86.2054C42.1829 84.3453 43.4352 82.9525 45.0381 82.9525H45.2472C46.6694 82.9525 47.3075 83.8499 47.3075 85.6208V93.6106H50.7769V85.2188C50.7769 83.6435 50.398 82.3832 49.6422 81.4315C48.8734 80.4949 47.6734 80.0256 46.0291 80.0256V80.0212Z"\n          fill="#F3F3F3"\n        />\n        <path\n          d="M72.3077 89.2061V83.0785H75.2936V80.282H72.3077V75.9622H68.8383V80.282H61.4312V87.6851C61.4312 89.5451 60.192 91.0683 58.6805 91.0683H58.4715C57.2061 91.0683 56.4896 90.1318 56.4896 88.413V80.282H53.0202V88.8041C53.0202 90.3534 53.3991 91.5746 54.1549 92.4872C54.8975 93.4107 56.0322 93.867 57.5328 93.867C59.188 93.867 60.6102 93.0218 61.4312 91.655V93.6063H64.9006V83.0807H68.8405V90.1448C68.8405 92.396 70.0536 93.6063 72.3099 93.6063H75.7009V90.6794H73.7843C72.5582 90.6794 72.3099 90.4317 72.3099 89.2083L72.3077 89.2061Z"\n          fill="#F3F3F3"\n        />\n        <path\n          d="M88.0757 84.8082C88.0757 81.7378 85.8325 80.0191 82.4676 80.0191C79.1027 80.0191 77.0033 81.8791 76.7158 84.404H80.1982C80.2766 83.5979 81.0977 82.8156 82.35 82.8156H82.5722C83.8506 82.8156 84.7109 83.7391 84.7109 84.9364V85.2623L81.346 85.5622C79.9108 85.6795 78.7369 86.0945 77.8243 86.8246C76.9118 87.5525 76.4544 88.5934 76.4544 89.9471C76.4152 92.2895 78.4363 93.8888 80.8364 93.8627C82.5438 93.8627 83.9529 93.1348 84.7871 91.9766C84.8132 92.6785 84.8655 93.226 84.9439 93.6019H88.2042C88.1127 92.9783 88.0735 92.0005 88.0735 90.675V84.806L88.0757 84.8082ZM84.7109 88.1653C84.7109 89.8428 83.3148 91.0661 81.738 91.0661H81.5289C80.5772 91.0661 79.8737 90.5316 79.8737 89.7124C79.8737 89.204 80.0697 88.8281 80.4596 88.5543C80.8516 88.2805 81.3068 88.124 81.8164 88.0849L84.7109 87.785V88.1653Z"\n          fill="#F3F3F3"\n        />\n        <path\n          d="M97.7935 80.0212C96.0076 80.0212 94.5201 81.036 93.9452 82.0116V74.9475H90.4758V93.6063H93.9452V91.8766C94.5201 92.8523 96.0055 93.867 97.7935 93.867C101.537 93.9322 103.765 90.5881 103.726 86.9441C103.765 83.3002 101.535 79.956 97.7935 80.0212ZM97.2055 91.0683H96.9964C95.4044 91.1074 93.919 89.3908 93.9452 86.9441C93.919 84.4974 95.4065 82.7808 96.9964 82.8199H97.2055C98.9522 82.8199 100.257 84.4192 100.257 86.9181C100.257 89.4169 98.9391 91.0683 97.2055 91.0683Z"\n          fill="#F3F3F3"\n        />\n        <path\n          d="M108.931 74.9453H105.462V93.6041H108.931V74.9453Z"\n          fill="#F3F3F3"\n        />\n        <path\n          d="M117.057 80.0212C113.146 79.9691 110.667 82.9612 110.706 86.9441C110.641 91.1987 113.705 93.9192 117.057 93.867C120.33 93.867 122.443 92.0461 123.094 89.3908H119.651C119.403 90.3665 118.555 91.0683 117.303 91.0683H117.081C115.633 91.0683 114.2 89.8189 114.069 88.0371H123.094C123.133 87.4656 123.147 87.0484 123.147 86.7877C123.186 82.8982 120.956 79.9821 117.057 80.0212ZM114.071 85.3688C114.15 83.7934 115.363 82.8178 116.824 82.8178H117.033C118.495 82.8178 119.708 83.7934 119.784 85.3688H114.071Z"\n          fill="#F3F3F3"\n        />\n      </g>\n      <path\n        d="M30.4851 101.025V109H32.0581V106.195H33.2571C35.0941 106.195 36.7221 105.7 36.7221 103.665C36.7221 101.256 34.8521 101.025 33.2131 101.025H30.4851ZM33.2461 102.257C34.1041 102.257 35.1051 102.367 35.1051 103.676C35.1051 104.732 34.3351 104.974 33.3561 104.974H32.0581V102.257H33.2461Z"\n        fill="#F3F3F3"\n      />\n      <path\n        d="M36.9683 109H38.5743L39.1353 107.383H42.2373L42.7983 109H44.5034L41.5224 101.025H39.9383L36.9683 109ZM40.6863 102.95L41.7863 106.096H39.5863L40.6863 102.95Z"\n        fill="#F3F3F3"\n      />\n      <path\n        d="M49.1875 105.689C50.0345 105.843 50.6615 106.096 50.6615 106.778C50.6615 107.636 49.7705 107.889 49.0665 107.889C48.1205 107.889 47.3065 107.537 47.1305 106.371H45.6125C45.7555 108.087 47.0535 109.143 49.0115 109.143C50.6175 109.143 52.2455 108.34 52.2455 106.701C52.2455 105.051 50.8155 104.534 49.5175 104.303L48.4725 104.116C47.8345 103.995 47.3615 103.687 47.3615 103.126C47.3615 102.411 48.1755 102.136 48.9015 102.136C49.6495 102.136 50.4635 102.444 50.5845 103.379H52.1025C52.0255 101.85 50.6175 100.882 48.9675 100.882C47.4935 100.882 45.7885 101.586 45.7885 103.192C45.7885 104.578 46.8775 105.249 48.1755 105.502L49.1875 105.689Z"\n        fill="#F3F3F3"\n      />\n      <path\n        d="M57.5244 105.689C58.3714 105.843 58.9984 106.096 58.9984 106.778C58.9984 107.636 58.1074 107.889 57.4034 107.889C56.4574 107.889 55.6434 107.537 55.4674 106.371H53.9494C54.0924 108.087 55.3904 109.143 57.3484 109.143C58.9544 109.143 60.5824 108.34 60.5824 106.701C60.5824 105.051 59.1524 104.534 57.8544 104.303L56.8094 104.116C56.1714 103.995 55.6984 103.687 55.6984 103.126C55.6984 102.411 56.5124 102.136 57.2384 102.136C57.9864 102.136 58.8004 102.444 58.9214 103.379H60.4394C60.3624 101.85 58.9544 100.882 57.3044 100.882C55.8304 100.882 54.1254 101.586 54.1254 103.192C54.1254 104.578 55.2144 105.249 56.5124 105.502L57.5244 105.689Z"\n        fill="#F3F3F3"\n      />\n      <path\n        d="M62.5544 101.025V109H64.1274V106.195H65.3264C67.1634 106.195 68.7914 105.7 68.7914 103.665C68.7914 101.256 66.9214 101.025 65.2824 101.025H62.5544ZM65.3154 102.257C66.1734 102.257 67.1744 102.367 67.1744 103.676C67.1744 104.732 66.4044 104.974 65.4254 104.974H64.1274V102.257H65.3154Z"\n        fill="#F3F3F3"\n      />\n      <path\n        d="M71.8888 105.007C71.8888 103.137 72.9228 102.136 74.1658 102.136C75.4088 102.136 76.4428 103.137 76.4428 105.007C76.4428 106.877 75.4088 107.889 74.1658 107.889C72.9228 107.889 71.8888 106.877 71.8888 105.007ZM78.0708 105.007C78.0708 102.532 76.5418 100.882 74.1658 100.882C71.7898 100.882 70.2608 102.532 70.2608 105.007C70.2608 107.482 71.7898 109.143 74.1658 109.143C76.5418 109.143 78.0708 107.482 78.0708 105.007Z"\n        fill="#F3F3F3"\n      />\n      <path\n        d="M85.0133 109H86.7623L84.9913 105.546C85.9813 105.128 86.4323 104.358 86.4323 103.445C86.4323 101.773 85.4313 101.025 82.8023 101.025H80.1843V109H81.7573V105.876H83.0553H83.4293L85.0133 109ZM82.9783 102.257C84.0453 102.257 84.8153 102.532 84.8153 103.456C84.8153 104.237 84.2763 104.655 83.0553 104.655H81.7573V102.257H82.9783Z"\n        fill="#F3F3F3"\n      />\n      <path\n        d="M90.1424 109H91.7154V102.301H94.1794V101.025H87.6894V102.301H90.1424V109Z"\n        fill="#F3F3F3"\n      />\n      <g clip-path="url(#clip2_332_47939)">\n        <circle\n          cx="61.5"\n          cy="30"\n          r="28.125"\n          fill="url(#paint0_radial_332_47939)"\n        />\n        <circle\n          cx="61.5"\n          cy="30"\n          r="28.125"\n          fill="url(#paint1_radial_332_47939)"\n        />\n        <path\n          d="M61.5 0C44.9315 0 31.5 13.4315 31.5 30C31.5 46.5685 44.9315 60 61.5 60C78.0685 60 91.5 46.5685 91.5 30C91.5 13.4315 78.0685 0 61.5 0ZM60.3397 11.4576C61.1729 11.0494 62.0508 11.0774 62.8588 11.5359C65.6603 13.1323 68.4534 14.7428 71.2325 16.37C72.1272 16.8956 72.5857 17.7372 72.5885 18.7717C72.6053 22.3979 72.5997 26.0214 72.5885 29.6477C72.5885 29.7819 72.5019 29.9776 72.3928 30.0419C71.3164 30.685 70.226 31.3029 69.0433 31.9851V31.4147C69.0433 27.685 69.0322 23.9581 69.0517 20.2283C69.0545 19.5126 68.8085 19.0513 68.1738 18.6906C64.9222 16.8425 61.6873 14.9609 58.4469 13.0904C58.3071 13.0093 58.1701 12.9226 57.9576 12.794C58.7908 12.3215 59.5401 11.8462 60.3341 11.4576H60.3397ZM59.7442 48.5564C59.5624 48.4641 59.4282 48.3998 59.2968 48.3243C55.0051 45.8499 50.719 43.3588 46.4133 40.904C45.2055 40.2162 44.6547 39.2349 44.6687 37.8565C44.6938 34.9264 44.6855 31.9963 44.6715 29.0634C44.6659 27.7409 45.2027 26.7819 46.3658 26.1221C49.3882 24.4026 52.3938 22.658 55.3993 20.9105C55.6594 20.7596 55.8495 20.7344 56.1207 20.8966C57.158 21.52 58.2148 22.1156 59.3192 22.753C59.1095 22.8788 58.9501 22.9739 58.788 23.069C55.5335 24.9478 52.2847 26.8322 49.0219 28.6999C48.4879 29.0047 48.239 29.4017 48.2446 30.0224C48.2614 32.3318 48.2642 34.6412 48.2446 36.9506C48.239 37.5881 48.4935 37.9935 49.0415 38.3066C52.4832 40.2749 55.911 42.2656 59.35 44.2395C59.6407 44.4073 59.7637 44.5806 59.7582 44.9273C59.733 46.11 59.7498 47.2954 59.7498 48.5592L59.7442 48.5564ZM59.7442 41.9413C59.445 41.7707 59.2297 41.6505 59.0144 41.5247C56.2856 39.9506 53.5596 38.3709 50.8253 36.808C50.5289 36.6403 50.4199 36.4585 50.4226 36.1146C50.4422 34.3392 50.4338 32.5638 50.4282 30.7884C50.4282 30.548 50.4646 30.383 50.7022 30.2488C51.7088 29.6869 52.7041 29.0997 53.7022 28.5266C53.7749 28.4846 53.8532 28.4539 53.9846 28.3896V30.383C53.9846 31.4623 54.0014 32.5443 53.979 33.6235C53.9651 34.2386 54.2027 34.6552 54.7395 34.9571C56.2856 35.8294 57.8122 36.7353 59.3583 37.6048C59.6631 37.7754 59.7554 37.9655 59.7498 38.301C59.7302 39.4809 59.7414 40.6636 59.7414 41.9385L59.7442 41.9413ZM56.5932 18.6375C56.0144 18.2964 55.5196 18.2992 54.9408 18.6375C51.6976 20.5331 48.4404 22.4035 45.1859 24.2824C45.0489 24.3635 44.9063 24.4362 44.6631 24.5676C44.7498 23.3318 44.4842 22.1659 44.9063 21.0363C45.1356 20.4185 45.5662 19.9543 46.1365 19.6244C48.8514 18.0559 51.5634 16.4846 54.2838 14.9245C55.2763 14.3541 56.2884 14.3681 57.281 14.9413C60.3705 16.7195 63.4571 18.5033 66.5382 20.2926C66.6696 20.3681 66.8346 20.5387 66.8346 20.6673C66.8569 21.9366 66.8486 23.2088 66.8486 24.5704C65.7274 23.9245 64.6929 23.3262 63.6584 22.7279C61.3015 21.3663 58.939 20.0186 56.5932 18.6375ZM78.3033 38.5974C78.2223 39.5955 77.6379 40.3029 76.774 40.8006C73.4664 42.7018 70.1617 44.6142 66.8569 46.521C65.8197 47.1193 64.7824 47.7176 63.7423 48.3159C63.6165 48.3886 63.4879 48.4501 63.3173 48.5396C63.3061 48.3663 63.2922 48.2404 63.2922 48.1146C63.2922 47.0186 63.2978 45.9254 63.2866 44.8294C63.2866 44.5806 63.3453 44.4296 63.5746 44.2982C68.3947 41.5247 73.212 38.7428 78.0266 35.9637C78.0993 35.9217 78.1803 35.8882 78.3173 35.8239C78.3173 36.7968 78.3732 37.7027 78.3033 38.5974ZM78.3285 31.6971C78.3201 32.8322 77.7078 33.6291 76.7377 34.1883C72.9688 36.3551 69.2027 38.5331 65.4366 40.7083C64.7488 41.1053 64.0582 41.4995 63.3201 41.9245C63.3089 41.7372 63.295 41.6142 63.295 41.4883C63.295 40.4091 63.3062 39.3271 63.2866 38.2479C63.281 37.9404 63.3844 37.7782 63.65 37.6244C67.075 35.6589 70.4888 33.671 73.9194 31.7167C74.5289 31.37 74.7973 30.9422 74.7917 30.2265C74.7665 26.4967 74.7805 22.767 74.7805 19.0373V18.3858C75.6752 18.9254 76.514 19.37 77.2801 19.9124C77.979 20.4073 78.3313 21.1566 78.3341 22.0205C78.3453 25.247 78.3537 28.4734 78.3313 31.6999L78.3285 31.6971Z"\n          fill="#131313"\n        />\n        <path\n          fill-rule="evenodd"\n          clip-rule="evenodd"\n          d="M61.5 0C44.9315 0 31.5 13.4315 31.5 30C31.5 46.5685 44.9315 60 61.5 60C78.0685 60 91.5 46.5685 91.5 30C91.5 13.4315 78.0685 0 61.5 0ZM61.5 2.5C46.3122 2.5 34 14.8122 34 30C34 45.1878 46.3122 57.5 61.5 57.5C76.6878 57.5 89 45.1878 89 30C89 14.8122 76.6878 2.5 61.5 2.5Z"\n          fill="url(#paint2_radial_332_47939)"\n        />\n        <path\n          fill-rule="evenodd"\n          clip-rule="evenodd"\n          d="M61.5 0C44.9315 0 31.5 13.4315 31.5 30C31.5 46.5685 44.9315 60 61.5 60C78.0685 60 91.5 46.5685 91.5 30C91.5 13.4315 78.0685 0 61.5 0ZM61.5 2.5C46.3122 2.5 34 14.8122 34 30C34 45.1878 46.3122 57.5 61.5 57.5C76.6878 57.5 89 45.1878 89 30C89 14.8122 76.6878 2.5 61.5 2.5Z"\n          fill="url(#paint3_radial_332_47939)"\n        />\n      </g>\n    </g>\n    <defs>\n      <radialGradient\n        id="paint0_radial_332_47939"\n        cx="0"\n        cy="0"\n        r="1"\n        gradientUnits="userSpaceOnUse"\n        gradientTransform="translate(48.3053 16.7373) rotate(44.9817) scale(58.4359 123.929)"\n      >\n        <stop stop-color="#A3EEF8" />\n        <stop offset="0.177083" stop-color="#A4DCF5" />\n        <stop offset="0.380208" stop-color="#A6AEEC" />\n        <stop offset="1" stop-color="#ECBEE1" />\n      </radialGradient>\n      <radialGradient\n        id="paint1_radial_332_47939"\n        cx="0"\n        cy="0"\n        r="1"\n        gradientUnits="userSpaceOnUse"\n        gradientTransform="translate(63.9394 54.6335) rotate(84.265) scale(30.2672 57.9018)"\n      >\n        <stop stop-color="#FCF5EE" />\n        <stop offset="0.715135" stop-color="#ECBEE1" stop-opacity="0" />\n      </radialGradient>\n      <radialGradient\n        id="paint2_radial_332_47939"\n        cx="0"\n        cy="0"\n        r="1"\n        gradientUnits="userSpaceOnUse"\n        gradientTransform="translate(47.4257 15.8532) rotate(44.9817) scale(62.3316 132.191)"\n      >\n        <stop stop-color="#A3EEF8" />\n        <stop offset="0.177083" stop-color="#A4DCF5" />\n        <stop offset="0.380208" stop-color="#A6AEEC" />\n        <stop offset="1" stop-color="#ECBEE1" />\n      </radialGradient>\n      <radialGradient\n        id="paint3_radial_332_47939"\n        cx="0"\n        cy="0"\n        r="1"\n        gradientUnits="userSpaceOnUse"\n        gradientTransform="translate(64.102 56.2758) rotate(84.265) scale(32.2851 61.7619)"\n      >\n        <stop stop-color="#FCF5EE" />\n        <stop offset="0.715135" stop-color="#ECBEE1" stop-opacity="0" />\n      </radialGradient>\n      <clipPath id="clip0_332_47939">\n        <rect\n          width="123"\n          height="112"\n          fill="white"\n          transform="translate(0.5)"\n        />\n      </clipPath>\n      <clipPath id="clip1_332_47939">\n        <rect\n          width="123"\n          height="19"\n          fill="white"\n          transform="translate(0.5 75)"\n        />\n      </clipPath>\n      <clipPath id="clip2_332_47939">\n        <rect\n          width="60"\n          height="60"\n          fill="white"\n          transform="translate(31.5)"\n        />\n      </clipPath>\n    </defs>\n  </svg>\n\n        ${D}\n        \n    <button\n      id="${dA}"\n      style="\n        margin-top: 27px !important;\n        color: #f3f3f3 !important;\n        background: transparent !important;\n        padding: 12px 24px !important;\n        border-radius: 30px !important;\n        border: 2px solid #f3f3f3 !important;\n        font-size: 1em !important;\n        font-weight: 500 !important;\n        cursor: pointer !important;\n      "\n    >\n      Try again\n    </button>\n  \n      </div>\n    </div>\n  `;function addLink({id:D,href:te,rel:he,crossOrigin:ye}){const be=`${oA}-${D}`;if(!document.getElementById(be)){const D=document.createElement("link");D.id=be,D.href=te,he&&(D.rel=he),ye&&(D.crossOrigin=ye),document.head.appendChild(D)}}class Overlay{disableGenericPopupOverlay;disableBlockedPopupOverlay;overlay;isBlockedOverlay;tryAgainListener;onCloseListener;constructor(D,te=!1){this.disableBlockedPopupOverlay=D.disableBlockedPopupOverlay||!1,this.disableGenericPopupOverlay=D.disableGenericPopupOverlay||!1,this.isBlockedOverlay=te}append(D,te){this.shouldAppendOverlay()&&(this.appendOverlay(),this.updateTryAgainButton(D),this.updateCloseButton(te))}update(D){this.updateTryAgainButton(D)}remove(){this.overlay&&this.overlay.remove()}shouldAppendOverlay(){return(!this.disableGenericPopupOverlay||!this.disableBlockedPopupOverlay)&&(!(this.disableGenericPopupOverlay&&!this.isBlockedOverlay)&&(!this.disableBlockedPopupOverlay||!this.isBlockedOverlay))}appendOverlay(){if(!this.overlay){addLink({id:"link-googleapis",href:"https://fonts.googleapis.com"}),addLink({id:"link-gstatic",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),addLink({id:"link-roboto",href:"https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap",rel:"stylesheet"});const D=document.createElement("div");D.innerHTML=this.isBlockedOverlay?getOverlay('\n    <div\n      style="\n        color: #e01a3d !important;\n        display: flex !important;\n        align-items: center !important;\n        gap: 4px !important;\n        margin-bottom: 10px !important;\n      "\n    >\n      \n  <svg\n  viewBox="0 0 17 16"\n  fill="none"\n  xmlns="http://www.w3.org/2000/svg"\n  style="width: 16px !important;"\n  >\n    <path\n      fill-rule="evenodd"\n      clip-rule="evenodd"\n      d="M0.5 14.3333L8.5 0.333336L16.5 14.3333H0.5ZM9.16667 10.6667V12H7.83333V10.6667H9.16667ZM9.16667 5.33334L9.16667 9.33334H7.83333L7.83333 5.33334H9.16667Z"\n      fill="#E01A3D"\n    />\n  </svg>\n\n      Pop-up blocked\n    </div>\n    <p style="\n        color: #b6b6b6 !important;\n        text-align: center !important;\n        margin: 0 !important;\n      "\n    >\n      Please try again below.<br />\n      If the problem continues, adjust your<br />\n      browser settings.\n    </p>\n  '):getOverlay('\n    <p style="\n        color: #b6b6b6 !important;\n        text-align: center !important;\n        margin: 0 !important;\n      "\n    >\n      Secure pop-up not showing?<br />We\'ll help you re-launch\n    </p>\n  '),document.body.insertAdjacentElement("beforeend",D),this.overlay=D}}updateTryAgainButton(D){const te=document.getElementById(dA);te&&(this.tryAgainListener&&te.removeEventListener("click",this.tryAgainListener),this.tryAgainListener=D,te.addEventListener("click",D))}updateCloseButton(D){const te=document.getElementById(cA);te&&(this.onCloseListener&&te.removeEventListener("click",this.onCloseListener),this.onCloseListener=D,te.addEventListener("click",D))}}class LocalForageAsyncStorage{storage;constructor(D,te){this.storage=$w.createInstance({name:D,driver:te})}get length(){return this.storage.length()}clear(){return this.storage.clear()}getItem(D){return this.storage.getItem(D)}key(D){return this.storage.key(D)}async removeItem(D){await this.storage.removeItem(D)}async setItem(D,te){await this.storage.setItem(D,te)}}const uA={headers:{"Content-Type":"application/x-www-form-urlencoded"}},fA="/v2/logout";function wait$2(D){return new Promise((te=>{setTimeout(te,D)}))}function base64URLEncode(D){return D.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}class AuthManager{userManager;deviceCredentialsManager;config;logoutMode;refreshingPromise=null;constructor(D){this.config=D,this.userManager=new class{constructor(D,te,he,ye){this._logger=new sw("UserManager"),this.settings=new Mw(D),this._client=new class{constructor(D,te){this._logger=new sw("OidcClient"),this.settings=D instanceof vw?D:new vw(D),this.metadataService=null!=te?te:new class{constructor(D){this._settings=D,this._logger=new sw("MetadataService"),this._signingKeys=null,this._metadata=null,this._metadataUrl=this._settings.metadataUrl,this._jsonService=new bw(["application/jwk-set+json"],null,this._settings.extraHeaders),this._settings.signingKeys&&(this._logger.debug("using signingKeys from settings"),this._signingKeys=this._settings.signingKeys),this._settings.metadata&&(this._logger.debug("using metadata from settings"),this._metadata=this._settings.metadata),this._settings.fetchRequestCredentials&&(this._logger.debug("using fetchRequestCredentials from settings"),this._fetchRequestCredentials=this._settings.fetchRequestCredentials)}resetSigningKeys(){this._signingKeys=null}async getMetadata(){const D=this._logger.create("getMetadata");if(this._metadata)return D.debug("using cached values"),this._metadata;if(!this._metadataUrl)throw D.throw(new Error("No authority or metadataUrl configured on settings")),null;D.debug("getting metadata from",this._metadataUrl);const te=await this._jsonService.getJson(this._metadataUrl,{credentials:this._fetchRequestCredentials});return D.debug("merging remote JSON with seed metadata"),this._metadata=Object.assign({},this._settings.metadataSeed,te),this._metadata}getIssuer(){return this._getMetadataProperty("issuer")}getAuthorizationEndpoint(){return this._getMetadataProperty("authorization_endpoint")}getUserInfoEndpoint(){return this._getMetadataProperty("userinfo_endpoint")}getTokenEndpoint(D=!0){return this._getMetadataProperty("token_endpoint",D)}getCheckSessionIframe(){return this._getMetadataProperty("check_session_iframe",!0)}getEndSessionEndpoint(){return this._getMetadataProperty("end_session_endpoint",!0)}getRevocationEndpoint(D=!0){return this._getMetadataProperty("revocation_endpoint",D)}getKeysEndpoint(D=!0){return this._getMetadataProperty("jwks_uri",D)}async _getMetadataProperty(D,te=!1){const he=this._logger.create(`_getMetadataProperty('${D}')`),ye=await this.getMetadata();if(he.debug("resolved"),void 0===ye[D]){if(!0===te)return void he.warn("Metadata does not contain optional property");he.throw(new Error("Metadata does not contain property "+D))}return ye[D]}async getSigningKeys(){const D=this._logger.create("getSigningKeys");if(this._signingKeys)return D.debug("returning signingKeys from cache"),this._signingKeys;const te=await this.getKeysEndpoint(!1);D.debug("got jwks_uri",te);const he=await this._jsonService.getJson(te);if(D.debug("got key set",he),!Array.isArray(he.keys))throw D.throw(new Error("Missing keys on keyset")),null;return this._signingKeys=he.keys,this._signingKeys}}(this.settings),this._claimsService=new class{constructor(D){this._settings=D,this._logger=new sw("ClaimsService")}filterProtocolClaims(D){const te={...D};if(this._settings.filterProtocolClaims){let D;D=Array.isArray(this._settings.filterProtocolClaims)?this._settings.filterProtocolClaims:Ew;for(const he of D)Pw.includes(he)||delete te[he]}return te}mergeClaims(D,te){const he={...D};for(const[D,ye]of Object.entries(te))for(const te of Array.isArray(ye)?ye:[ye]){const ye=he[D];void 0===ye?he[D]=te:Array.isArray(ye)?ye.includes(te)||ye.push(te):he[D]!==te&&("object"==typeof te&&this._settings.mergeClaims?he[D]=this.mergeClaims(ye,te):he[D]=[ye,te])}return he}}(this.settings),this._validator=new class{constructor(D,te,he){this._settings=D,this._metadataService=te,this._claimsService=he,this._logger=new sw("ResponseValidator"),this._userInfoService=new class{constructor(D,te){this._settings=D,this._metadataService=te,this._logger=new sw("UserInfoService"),this._getClaimsFromJwt=async D=>{const te=this._logger.create("_getClaimsFromJwt");try{const he=dw.decode(D);return te.debug("JWT decoding successful"),he}catch(D){throw te.error("Error parsing JWT response"),D}},this._jsonService=new bw(void 0,this._getClaimsFromJwt,this._settings.extraHeaders)}async getClaims(D){const te=this._logger.create("getClaims");D||this._logger.throw(new Error("No token passed"));const he=await this._metadataService.getUserInfoEndpoint();te.debug("got userinfo url",he);const ye=await this._jsonService.getJson(he,{token:D,credentials:this._settings.fetchRequestCredentials});return te.debug("got claims",ye),ye}}(this._settings,this._metadataService),this._tokenClient=new ww(this._settings,this._metadataService)}async validateSigninResponse(D,te){const he=this._logger.create("validateSigninResponse");this._processSigninState(D,te),he.debug("state processed"),await this._processCode(D,te),he.debug("code processed"),D.isOpenId&&this._validateIdTokenAttributes(D),he.debug("tokens validated"),await this._processClaims(D,null==te?void 0:te.skipUserInfo,D.isOpenId),he.debug("claims processed")}async validateCredentialsResponse(D,te){const he=this._logger.create("validateCredentialsResponse");D.isOpenId&&D.id_token&&this._validateIdTokenAttributes(D),he.debug("tokens validated"),await this._processClaims(D,te,D.isOpenId),he.debug("claims processed")}async validateRefreshResponse(D,te){const he=this._logger.create("validateRefreshResponse");D.userState=te.data,null!=D.session_state||(D.session_state=te.session_state),null!=D.scope||(D.scope=te.scope),D.isOpenId&&D.id_token&&(this._validateIdTokenAttributes(D,te.id_token),he.debug("ID Token validated")),D.id_token||(D.id_token=te.id_token,D.profile=te.profile);const ye=D.isOpenId&&!!D.id_token;await this._processClaims(D,!1,ye),he.debug("claims processed")}validateSignoutResponse(D,te){const he=this._logger.create("validateSignoutResponse");if(te.id!==D.state&&he.throw(new Error("State does not match")),he.debug("state validated"),D.userState=te.data,D.error)throw he.warn("Response was error",D.error),new pw(D)}_processSigninState(D,te){const he=this._logger.create("_processSigninState");if(te.id!==D.state&&he.throw(new Error("State does not match")),te.client_id||he.throw(new Error("No client_id on state")),te.authority||he.throw(new Error("No authority on state")),this._settings.authority!==te.authority&&he.throw(new Error("authority mismatch on settings vs. signin state")),this._settings.client_id&&this._settings.client_id!==te.client_id&&he.throw(new Error("client_id mismatch on settings vs. signin state")),he.debug("state validated"),D.userState=te.data,D.url_state=te.url_state,null!=D.scope||(D.scope=te.scope),D.error)throw he.warn("Response was error",D.error),new pw(D);te.code_verifier&&!D.code&&he.throw(new Error("Expected code in response"))}async _processClaims(D,te=!1,he=!0){const ye=this._logger.create("_processClaims");if(D.profile=this._claimsService.filterProtocolClaims(D.profile),te||!this._settings.loadUserInfo||!D.access_token)return void ye.debug("not loading user info");ye.debug("loading user info");const be=await this._userInfoService.getClaims(D.access_token);ye.debug("user info claims received from user info endpoint"),he&&be.sub!==D.profile.sub&&ye.throw(new Error("subject from UserInfo response does not match subject in ID Token")),D.profile=this._claimsService.mergeClaims(D.profile,this._claimsService.filterProtocolClaims(be)),ye.debug("user info claims received, updated profile:",D.profile)}async _processCode(D,te){const he=this._logger.create("_processCode");if(D.code){he.debug("Validating code");const ye=await this._tokenClient.exchangeCode({client_id:te.client_id,client_secret:te.client_secret,code:D.code,redirect_uri:te.redirect_uri,code_verifier:te.code_verifier,...te.extraTokenParams});Object.assign(D,ye)}else he.debug("No code to undefined")}_validateIdTokenAttributes(D,te){var he;const ye=this._logger.create("_validateIdTokenAttributes");ye.debug("decoding ID Token JWT");const be=dw.decode(null!=(he=D.id_token)?he:"");if(be.sub||ye.throw(new Error("ID Token is missing a subject claim")),te){const D=dw.decode(te);be.sub!==D.sub&&ye.throw(new Error("sub in id_token does not match current sub")),be.auth_time&&be.auth_time!==D.auth_time&&ye.throw(new Error("auth_time in id_token does not match original auth_time")),be.azp&&be.azp!==D.azp&&ye.throw(new Error("azp in id_token does not match original azp")),!be.azp&&D.azp&&ye.throw(new Error("azp not in id_token, but present in original id_token"))}D.profile=be}}(this.settings,this.metadataService,this._claimsService),this._tokenClient=new ww(this.settings,this.metadataService)}async createSigninRequest({state:D,request:te,request_uri:he,request_type:ye,id_token_hint:be,login_hint:ve,skipUserInfo:we,nonce:_e,url_state:Pe,response_type:Ie=this.settings.response_type,scope:Re=this.settings.scope,redirect_uri:ke=this.settings.redirect_uri,prompt:Oe=this.settings.prompt,display:xe=this.settings.display,max_age:Be=this.settings.max_age,ui_locales:Fe=this.settings.ui_locales,acr_values:De=this.settings.acr_values,resource:Le=this.settings.resource,response_mode:Ue=this.settings.response_mode,extraQueryParams:qe=this.settings.extraQueryParams,extraTokenParams:je=this.settings.extraTokenParams}){const Je=this._logger.create("createSigninRequest");if("code"!==Ie)throw new Error("Only the Authorization Code flow (with PKCE) is supported");const et=await this.metadataService.getAuthorizationEndpoint();Je.debug("Received authorization endpoint",et);const tt=new class{constructor({url:D,authority:te,client_id:he,redirect_uri:ye,response_type:be,scope:ve,state_data:we,response_mode:_e,request_type:Pe,client_secret:Ie,nonce:Re,url_state:ke,resource:Oe,skipUserInfo:xe,extraQueryParams:Be,extraTokenParams:Fe,disablePKCE:De,...Le}){if(this._logger=new sw("SigninRequest"),!D)throw this._logger.error("ctor: No url passed"),new Error("url");if(!he)throw this._logger.error("ctor: No client_id passed"),new Error("client_id");if(!ye)throw this._logger.error("ctor: No redirect_uri passed"),new Error("redirect_uri");if(!be)throw this._logger.error("ctor: No response_type passed"),new Error("response_type");if(!ve)throw this._logger.error("ctor: No scope passed"),new Error("scope");if(!te)throw this._logger.error("ctor: No authority passed"),new Error("authority");this.state=new Tw({data:we,request_type:Pe,url_state:ke,code_verifier:!De,client_id:he,authority:te,redirect_uri:ye,response_mode:_e,client_secret:Ie,scope:ve,extraTokenParams:Fe,skipUserInfo:xe});const Ue=new URL(D);Ue.searchParams.append("client_id",he),Ue.searchParams.append("redirect_uri",ye),Ue.searchParams.append("response_type",be),Ue.searchParams.append("scope",ve),Re&&Ue.searchParams.append("nonce",Re);let qe=this.state.id;ke&&(qe=`${qe};${ke}`),Ue.searchParams.append("state",qe),this.state.code_challenge&&(Ue.searchParams.append("code_challenge",this.state.code_challenge),Ue.searchParams.append("code_challenge_method","S256")),Oe&&(Array.isArray(Oe)?Oe:[Oe]).forEach((D=>Ue.searchParams.append("resource",D)));for(const[D,te]of Object.entries({response_mode:_e,...Le,...Be}))null!=te&&Ue.searchParams.append(D,te.toString());this.url=Ue.href}}({url:et,authority:this.settings.authority,client_id:this.settings.client_id,redirect_uri:ke,response_type:Ie,scope:Re,state_data:D,url_state:Pe,prompt:Oe,display:xe,max_age:Be,ui_locales:Fe,id_token_hint:be,login_hint:ve,acr_values:De,resource:Le,request:te,request_uri:he,extraQueryParams:qe,extraTokenParams:je,request_type:ye,response_mode:Ue,client_secret:this.settings.client_secret,skipUserInfo:we,nonce:_e,disablePKCE:this.settings.disablePKCE});await this.clearStaleState();const rt=tt.state;return await this.settings.stateStore.set(rt.id,rt.toStorageString()),tt}async readSigninResponseState(D,te=!1){const he=this._logger.create("readSigninResponseState"),ye=new Aw(lw.readParams(D,this.settings.response_mode));if(!ye.state)throw he.throw(new Error("No state in response")),null;const be=await this.settings.stateStore[te?"remove":"get"](ye.state);if(!be)throw he.throw(new Error("No matching state found in storage")),null;return{state:Tw.fromStorageString(be),response:ye}}async processSigninResponse(D){const te=this._logger.create("processSigninResponse"),{state:he,response:ye}=await this.readSigninResponseState(D,!0);return te.debug("received state from storage; validating response"),await this._validator.validateSigninResponse(ye,he),ye}async processResourceOwnerPasswordCredentials({username:D,password:te,skipUserInfo:he=!1,extraTokenParams:ye={}}){const be=await this._tokenClient.exchangeCredentials({username:D,password:te,...ye}),ve=new Aw(new URLSearchParams);return Object.assign(ve,be),await this._validator.validateCredentialsResponse(ve,he),ve}async useRefreshToken({state:D,timeoutInSeconds:te}){var he;const ye=this._logger.create("useRefreshToken");let be;if(void 0===this.settings.refreshTokenAllowedScope)be=D.scope;else{const te=this.settings.refreshTokenAllowedScope.split(" ");be=((null==(he=D.scope)?void 0:he.split(" "))||[]).filter((D=>te.includes(D))).join(" ")}const ve=await this._tokenClient.exchangeRefreshToken({refresh_token:D.refresh_token,resource:D.resource,scope:be,timeoutInSeconds:te}),we=new Aw(new URLSearchParams);return Object.assign(we,ve),ye.debug("validating response",we),await this._validator.validateRefreshResponse(we,{...D,scope:be}),we}async createSignoutRequest({state:D,id_token_hint:te,client_id:he,request_type:ye,post_logout_redirect_uri:be=this.settings.post_logout_redirect_uri,extraQueryParams:ve=this.settings.extraQueryParams}={}){const we=this._logger.create("createSignoutRequest"),_e=await this.metadataService.getEndSessionEndpoint();if(!_e)throw we.throw(new Error("No end session endpoint")),null;we.debug("Received end session endpoint",_e),he||!be||te||(he=this.settings.client_id);const Pe=new class{constructor({url:D,state_data:te,id_token_hint:he,post_logout_redirect_uri:ye,extraQueryParams:be,request_type:ve,client_id:we}){if(this._logger=new sw("SignoutRequest"),!D)throw this._logger.error("ctor: No url passed"),new Error("url");const _e=new URL(D);he&&_e.searchParams.append("id_token_hint",he),we&&_e.searchParams.append("client_id",we),ye&&(_e.searchParams.append("post_logout_redirect_uri",ye),te&&(this.state=new _w({data:te,request_type:ve}),_e.searchParams.append("state",this.state.id)));for(const[D,te]of Object.entries({...be}))null!=te&&_e.searchParams.append(D,te.toString());this.url=_e.href}}({url:_e,id_token_hint:te,client_id:he,post_logout_redirect_uri:be,state_data:D,extraQueryParams:ve,request_type:ye});await this.clearStaleState();const Ie=Pe.state;return Ie&&(we.debug("Signout request has state to persist"),await this.settings.stateStore.set(Ie.id,Ie.toStorageString())),Pe}async readSignoutResponseState(D,te=!1){const he=this._logger.create("readSignoutResponseState"),ye=new class{constructor(D){this.state=D.get("state"),this.error=D.get("error"),this.error_description=D.get("error_description"),this.error_uri=D.get("error_uri")}}(lw.readParams(D,this.settings.response_mode));if(!ye.state){if(he.debug("No state in response"),ye.error)throw he.warn("Response was error:",ye.error),new pw(ye);return{state:void 0,response:ye}}const be=await this.settings.stateStore[te?"remove":"get"](ye.state);if(!be)throw he.throw(new Error("No matching state found in storage")),null;return{state:_w.fromStorageString(be),response:ye}}async processSignoutResponse(D){const te=this._logger.create("processSignoutResponse"),{state:he,response:ye}=await this.readSignoutResponseState(D,!0);return he?(te.debug("Received state from storage; validating response"),this._validator.validateSignoutResponse(ye,he)):te.debug("No state from storage; skipping response validation"),ye}clearStaleState(){return this._logger.create("clearStaleState"),_w.clearStaleState(this.settings.stateStore,this.settings.staleStateAgeInSeconds)}async revokeToken(D,te){return this._logger.create("revokeToken"),await this._tokenClient.revoke({token:D,token_type_hint:te})}}(D),this._redirectNavigator=null!=te?te:new class{constructor(D){this._settings=D,this._logger=new sw("RedirectNavigator")}async prepare({redirectMethod:D=this._settings.redirectMethod,redirectTarget:te=this._settings.redirectTarget}){var he;this._logger.create("prepare");let ye=window.self;"top"===te&&(ye=null!=(he=window.top)?he:window.self);const be=ye.location[D].bind(ye.location);let ve;return{navigate:async D=>{this._logger.create("navigate");const te=new Promise(((D,te)=>{ve=te}));return be(D.url),await te},close:()=>{this._logger.create("close"),null==ve||ve(new Error("Redirect aborted")),ye.stop()}}}async callback(){}}(this.settings),this._popupNavigator=null!=he?he:new class{constructor(D){this._settings=D,this._logger=new sw("PopupNavigator")}async prepare({popupWindowFeatures:D=this._settings.popupWindowFeatures,popupWindowTarget:te=this._settings.popupWindowTarget}){return new Fw({popupWindowFeatures:D,popupWindowTarget:te})}async callback(D,{keepOpen:te=!1}){this._logger.create("callback"),Fw.notifyOpener(D,te)}}(this.settings),this._iframeNavigator=null!=ye?ye:new class{constructor(D){this._settings=D,this._logger=new sw("IFrameNavigator")}async prepare({silentRequestTimeoutInSeconds:D=this._settings.silentRequestTimeoutInSeconds}){return new Bw({silentRequestTimeoutInSeconds:D})}async callback(D){this._logger.create("callback"),Bw.notifyParent(D,this._settings.iframeNotifyParentOrigin)}}(this.settings),this._events=new Dw(this.settings),this._silentRenewService=new class{constructor(D){this._userManager=D,this._logger=new sw("SilentRenewService"),this._isStarted=!1,this._retryTimer=new fw("Retry Silent Renew"),this._tokenExpiring=async()=>{const D=this._logger.create("_tokenExpiring");try{await this._userManager.signinSilent(),D.debug("silent token renewal successful")}catch(te){if(te instanceof hw)return D.warn("ErrorTimeout from signinSilent:",te,"retry in 5s"),void this._retryTimer.init(5);D.error("Error from signinSilent:",te),this._userManager.events._raiseSilentRenewError(te)}}}async start(){const D=this._logger.create("start");if(!this._isStarted){this._isStarted=!0,this._userManager.events.addAccessTokenExpiring(this._tokenExpiring),this._retryTimer.addHandler(this._tokenExpiring);try{await this._userManager.getUser()}catch(te){D.error("getUser error",te)}}}stop(){this._isStarted&&(this._retryTimer.cancel(),this._retryTimer.removeHandler(this._tokenExpiring),this._userManager.events.removeAccessTokenExpiring(this._tokenExpiring),this._isStarted=!1)}}(this),this.settings.automaticSilentRenew&&this.startSilentRenew(),this._sessionMonitor=null,this.settings.monitorSession&&(this._sessionMonitor=new class{constructor(D){this._userManager=D,this._logger=new sw("SessionMonitor"),this._start=async D=>{const te=D.session_state;if(!te)return;const he=this._logger.create("_start");if(D.profile?(this._sub=D.profile.sub,this._sid=D.profile.sid,he.debug("session_state",te,", sub",this._sub)):(this._sub=void 0,this._sid=void 0,he.debug("session_state",te,", anonymous user")),this._checkSessionIFrame)this._checkSessionIFrame.start(te);else try{const D=await this._userManager.metadataService.getCheckSessionIframe();if(D){he.debug("initializing check session iframe");const ye=this._userManager.settings.client_id,be=this._userManager.settings.checkSessionIntervalInSeconds,ve=this._userManager.settings.stopCheckSessionOnError,we=new class{constructor(D,te,he,ye,be){this._callback=D,this._client_id=te,this._intervalInSeconds=ye,this._stopOnError=be,this._logger=new sw("CheckSessionIFrame"),this._timer=null,this._session_state=null,this._message=D=>{D.origin===this._frame_origin&&D.source===this._frame.contentWindow&&("error"===D.data?(this._logger.error("error message from check session op iframe"),this._stopOnError&&this.stop()):"changed"===D.data?(this._logger.debug("changed message from check session op iframe"),this.stop(),this._callback()):this._logger.debug(D.data+" message from check session op iframe"))};const ve=new URL(he);this._frame_origin=ve.origin,this._frame=window.document.createElement("iframe"),this._frame.style.visibility="hidden",this._frame.style.position="fixed",this._frame.style.left="-1000px",this._frame.style.top="0",this._frame.width="0",this._frame.height="0",this._frame.src=ve.href}load(){return new Promise((D=>{this._frame.onload=()=>{D()},window.document.body.appendChild(this._frame),window.addEventListener("message",this._message,!1)}))}start(D){if(this._session_state===D)return;this._logger.create("start"),this.stop(),this._session_state=D;const send=()=>{this._frame.contentWindow&&this._session_state&&this._frame.contentWindow.postMessage(this._client_id+" "+this._session_state,this._frame_origin)};send(),this._timer=setInterval(send,1e3*this._intervalInSeconds)}stop(){this._logger.create("stop"),this._session_state=null,this._timer&&(clearInterval(this._timer),this._timer=null)}}(this._callback,ye,D,be,ve);await we.load(),this._checkSessionIFrame=we,we.start(te)}else he.warn("no check session iframe found in the metadata")}catch(D){he.error("Error from getCheckSessionIframe:",D instanceof Error?D.message:D)}},this._stop=()=>{const D=this._logger.create("_stop");if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&this._checkSessionIFrame.stop(),this._userManager.settings.monitorAnonymousSession){const te=setInterval((async()=>{clearInterval(te);try{const D=await this._userManager.querySessionStatus();if(D){const te={session_state:D.session_state,profile:D.sub&&D.sid?{sub:D.sub,sid:D.sid}:null};this._start(te)}}catch(te){D.error("error from querySessionStatus",te instanceof Error?te.message:te)}}),1e3)}},this._callback=async()=>{const D=this._logger.create("_callback");try{const te=await this._userManager.querySessionStatus();let he=!0;te&&this._checkSessionIFrame?te.sub===this._sub?(he=!1,this._checkSessionIFrame.start(te.session_state),te.sid===this._sid?D.debug("same sub still logged in at OP, restarting check session iframe; session_state",te.session_state):(D.debug("same sub still logged in at OP, session state has changed, restarting check session iframe; session_state",te.session_state),this._userManager.events._raiseUserSessionChanged())):D.debug("different subject signed into OP",te.sub):D.debug("subject no longer signed into OP"),he?this._sub?this._userManager.events._raiseUserSignedOut():this._userManager.events._raiseUserSignedIn():D.debug("no change in session detected, no event to raise")}catch(te){this._sub&&(D.debug("Error calling queryCurrentSigninSession; raising signed out event",te),this._userManager.events._raiseUserSignedOut())}},D||this._logger.throw(new Error("No user manager passed")),this._userManager.events.addUserLoaded(this._start),this._userManager.events.addUserUnloaded(this._stop),this._init().catch((D=>{this._logger.error(D)}))}async _init(){this._logger.create("_init");const D=await this._userManager.getUser();if(D)this._start(D);else if(this._userManager.settings.monitorAnonymousSession){const D=await this._userManager.querySessionStatus();if(D){const te={session_state:D.session_state,profile:D.sub&&D.sid?{sub:D.sub,sid:D.sid}:null};this._start(te)}}}}(this))}get events(){return this._events}get metadataService(){return this._client.metadataService}async getUser(){const D=this._logger.create("getUser"),te=await this._loadUser();return te?(D.info("user loaded"),this._events.load(te,!1),te):(D.info("user not found in storage"),null)}async removeUser(){const D=this._logger.create("removeUser");await this.storeUser(null),D.info("user removed from storage"),this._events.unload()}async signinRedirect(D={}){this._logger.create("signinRedirect");const{redirectMethod:te,...he}=D,ye=await this._redirectNavigator.prepare({redirectMethod:te});await this._signinStart({request_type:"si:r",...he},ye)}async signinRedirectCallback(D=window.location.href){const te=this._logger.create("signinRedirectCallback"),he=await this._signinEnd(D);return he.profile&&he.profile.sub?te.info("success, signed in subject",he.profile.sub):te.info("no subject"),he}async signinResourceOwnerCredentials({username:D,password:te,skipUserInfo:he=!1}){const ye=this._logger.create("signinResourceOwnerCredential"),be=await this._client.processResourceOwnerPasswordCredentials({username:D,password:te,skipUserInfo:he,extraTokenParams:this.settings.extraTokenParams});ye.debug("got signin response");const ve=await this._buildUser(be);return ve.profile&&ve.profile.sub?ye.info("success, signed in subject",ve.profile.sub):ye.info("no subject"),ve}async signinPopup(D={}){const te=this._logger.create("signinPopup"),{popupWindowFeatures:he,popupWindowTarget:ye,...be}=D,ve=this.settings.popup_redirect_uri;ve||te.throw(new Error("No popup_redirect_uri configured"));const we=await this._popupNavigator.prepare({popupWindowFeatures:he,popupWindowTarget:ye}),_e=await this._signin({request_type:"si:p",redirect_uri:ve,display:"popup",...be},we);return _e&&(_e.profile&&_e.profile.sub?te.info("success, signed in subject",_e.profile.sub):te.info("no subject")),_e}async signinPopupCallback(D=window.location.href,te=!1){const he=this._logger.create("signinPopupCallback");await this._popupNavigator.callback(D,{keepOpen:te}),he.info("success")}async signinSilent(D={}){var te;const he=this._logger.create("signinSilent"),{silentRequestTimeoutInSeconds:ye,resource:be,...ve}=D;let we=await this._loadUser();if(null==we?void 0:we.refresh_token){he.debug("using refresh token");const D=new class{constructor(D,te){this.refresh_token=D.refresh_token,this.id_token=D.id_token,this.session_state=D.session_state,this.scope=D.scope,this.profile=D.profile,this.resource=te,this.data=D.state}}(we,be);return await this._useRefreshToken(D)}const _e=this.settings.silent_redirect_uri;let Pe;_e||he.throw(new Error("No silent_redirect_uri configured")),we&&this.settings.validateSubOnSilentRenew&&(he.debug("subject prior to silent renew:",we.profile.sub),Pe=we.profile.sub);const Ie=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:ye});return we=await this._signin({request_type:"si:s",redirect_uri:_e,prompt:"none",id_token_hint:this.settings.includeIdTokenInSilentRenew?null==we?void 0:we.id_token:void 0,...ve},Ie,Pe),we&&((null==(te=we.profile)?void 0:te.sub)?he.info("success, signed in subject",we.profile.sub):he.info("no subject")),we}async _useRefreshToken(D){const te=await this._client.useRefreshToken({state:D,timeoutInSeconds:this.settings.silentRequestTimeoutInSeconds}),he=new Sw({...D,...te});return await this.storeUser(he),this._events.load(he),he}async signinSilentCallback(D=window.location.href){const te=this._logger.create("signinSilentCallback");await this._iframeNavigator.callback(D),te.info("success")}async signinCallback(D=window.location.href){const{state:te}=await this._client.readSigninResponseState(D);switch(te.request_type){case"si:r":return await this.signinRedirectCallback(D);case"si:p":return await this.signinPopupCallback(D);case"si:s":return await this.signinSilentCallback(D);default:throw new Error("invalid response_type in state")}}async signoutCallback(D=window.location.href,te=!1){const{state:he}=await this._client.readSignoutResponseState(D);if(he)switch(he.request_type){case"so:r":await this.signoutRedirectCallback(D);break;case"so:p":await this.signoutPopupCallback(D,te);break;case"so:s":await this.signoutSilentCallback(D);break;default:throw new Error("invalid response_type in state")}}async querySessionStatus(D={}){const te=this._logger.create("querySessionStatus"),{silentRequestTimeoutInSeconds:he,...ye}=D,be=this.settings.silent_redirect_uri;be||te.throw(new Error("No silent_redirect_uri configured"));const ve=await this._loadUser(),we=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:he}),_e=await this._signinStart({request_type:"si:s",redirect_uri:be,prompt:"none",id_token_hint:this.settings.includeIdTokenInSilentRenew?null==ve?void 0:ve.id_token:void 0,response_type:this.settings.query_status_response_type,scope:"openid",skipUserInfo:!0,...ye},we);try{const D=await this._client.processSigninResponse(_e.url);return te.debug("got signin response"),D.session_state&&D.profile.sub?(te.info("success for subject",D.profile.sub),{session_state:D.session_state,sub:D.profile.sub,sid:D.profile.sid}):(te.info("success, user not authenticated"),null)}catch(D){if(this.settings.monitorAnonymousSession&&D instanceof pw)switch(D.error){case"login_required":case"consent_required":case"interaction_required":case"account_selection_required":return te.info("success for anonymous user"),{session_state:D.session_state}}throw D}}async _signin(D,te,he){const ye=await this._signinStart(D,te);return await this._signinEnd(ye.url,he)}async _signinStart(D,te){const he=this._logger.create("_signinStart");try{const ye=await this._client.createSigninRequest(D);return he.debug("got signin request"),await te.navigate({url:ye.url,state:ye.state.id,response_mode:ye.state.response_mode,scriptOrigin:this.settings.iframeScriptOrigin})}catch(D){throw he.debug("error after preparing navigator, closing navigator window"),te.close(),D}}async _signinEnd(D,te){const he=this._logger.create("_signinEnd"),ye=await this._client.processSigninResponse(D);return he.debug("got signin response"),await this._buildUser(ye,te)}async _buildUser(D,te){const he=this._logger.create("_buildUser"),ye=new Sw(D);if(te){if(te!==ye.profile.sub)throw he.debug("current user does not match user returned from signin. sub from signin:",ye.profile.sub),new pw({...D,error:"login_required"});he.debug("current user matches user returned from signin")}return await this.storeUser(ye),he.debug("user stored"),this._events.load(ye),ye}async signoutRedirect(D={}){const te=this._logger.create("signoutRedirect"),{redirectMethod:he,...ye}=D,be=await this._redirectNavigator.prepare({redirectMethod:he});await this._signoutStart({request_type:"so:r",post_logout_redirect_uri:this.settings.post_logout_redirect_uri,...ye},be),te.info("success")}async signoutRedirectCallback(D=window.location.href){const te=this._logger.create("signoutRedirectCallback"),he=await this._signoutEnd(D);return te.info("success"),he}async signoutPopup(D={}){const te=this._logger.create("signoutPopup"),{popupWindowFeatures:he,popupWindowTarget:ye,...be}=D,ve=this.settings.popup_post_logout_redirect_uri,we=await this._popupNavigator.prepare({popupWindowFeatures:he,popupWindowTarget:ye});await this._signout({request_type:"so:p",post_logout_redirect_uri:ve,state:null==ve?void 0:{},...be},we),te.info("success")}async signoutPopupCallback(D=window.location.href,te=!1){const he=this._logger.create("signoutPopupCallback");await this._popupNavigator.callback(D,{keepOpen:te}),he.info("success")}async _signout(D,te){const he=await this._signoutStart(D,te);return await this._signoutEnd(he.url)}async _signoutStart(D={},te){var he;const ye=this._logger.create("_signoutStart");try{const be=await this._loadUser();ye.debug("loaded current user from storage"),this.settings.revokeTokensOnSignout&&await this._revokeInternal(be);const ve=D.id_token_hint||be&&be.id_token;ve&&(ye.debug("setting id_token_hint in signout request"),D.id_token_hint=ve),await this.removeUser(),ye.debug("user removed, creating signout request");const we=await this._client.createSignoutRequest(D);return ye.debug("got signout request"),await te.navigate({url:we.url,state:null==(he=we.state)?void 0:he.id,scriptOrigin:this.settings.iframeScriptOrigin})}catch(D){throw ye.debug("error after preparing navigator, closing navigator window"),te.close(),D}}async _signoutEnd(D){const te=this._logger.create("_signoutEnd"),he=await this._client.processSignoutResponse(D);return te.debug("got signout response"),he}async signoutSilent(D={}){var te;const he=this._logger.create("signoutSilent"),{silentRequestTimeoutInSeconds:ye,...be}=D,ve=this.settings.includeIdTokenInSilentSignout?null==(te=await this._loadUser())?void 0:te.id_token:void 0,we=this.settings.popup_post_logout_redirect_uri,_e=await this._iframeNavigator.prepare({silentRequestTimeoutInSeconds:ye});await this._signout({request_type:"so:s",post_logout_redirect_uri:we,id_token_hint:ve,...be},_e),he.info("success")}async signoutSilentCallback(D=window.location.href){const te=this._logger.create("signoutSilentCallback");await this._iframeNavigator.callback(D),te.info("success")}async revokeTokens(D){const te=await this._loadUser();await this._revokeInternal(te,D)}async _revokeInternal(D,te=this.settings.revokeTokenTypes){const he=this._logger.create("_revokeInternal");if(!D)return;const ye=te.filter((te=>"string"==typeof D[te]));if(ye.length){for(const te of ye)await this._client.revokeToken(D[te],te),he.info(`${te} revoked successfully`),"access_token"!==te&&(D[te]=null);await this.storeUser(D),he.debug("user stored"),this._events.load(D)}else he.debug("no need to revoke due to no token(s)")}startSilentRenew(){this._logger.create("startSilentRenew"),this._silentRenewService.start()}stopSilentRenew(){this._silentRenewService.stop()}get _userStoreKey(){return`user:${this.settings.authority}:${this.settings.client_id}`}async _loadUser(){const D=this._logger.create("_loadUser"),te=await this.settings.userStore.get(this._userStoreKey);return te?(D.debug("user storageString loaded"),Sw.fromStorageString(te)):(D.debug("no user storageString"),null)}async storeUser(D){const te=this._logger.create("storeUser");if(D){te.debug("storing user");const he=D.toStorageString();await this.settings.userStore.set(this._userStoreKey,he)}else this._logger.debug("removing user"),await this.settings.userStore.remove(this._userStoreKey)}async clearStaleState(){await this._client.clearStaleState()}}((D=>{const{authenticationDomain:te,oidcConfiguration:he}=D;let ye;ye=D.crossSdkBridgeEnabled?new LocalForageAsyncStorage("ImmutableSDKPassport",$w.INDEXEDDB):"undefined"!=typeof window?window.localStorage:new mw;const be=new gw({store:ye}),ve=new URL(fA,te.replace(/^(?:https?:\/\/)?(.*)/,"https://$1"));ve.searchParams.set("client_id",he.clientId),he.logoutRedirectUri&&ve.searchParams.set("returnTo",he.logoutRedirectUri);const we={authority:te,redirect_uri:he.redirectUri,popup_redirect_uri:he.redirectUri,client_id:he.clientId,metadata:{authorization_endpoint:`${te}/authorize`,token_endpoint:`${te}/oauth/token`,userinfo_endpoint:`${te}/userinfo`,end_session_endpoint:ve.toString()},mergeClaims:!0,automaticSilentRenew:!1,scope:he.scope,userStore:be};return he.audience&&(we.extraQueryParams={audience:he.audience}),we})(D)),this.deviceCredentialsManager=new DeviceCredentialsManager,this.logoutMode=D.oidcConfiguration.logoutMode||"redirect"}static mapOidcUserToDomainModel=D=>{let te;D.id_token&&(te=o$1(D.id_token)?.passport);const he={expired:D.expired,idToken:D.id_token,accessToken:D.access_token,refreshToken:D.refresh_token,profile:{sub:D.profile.sub,email:D.profile.email,nickname:D.profile.nickname}};return te?.imx_eth_address&&(he.imx={ethAddress:te.imx_eth_address,starkAddress:te.imx_stark_address,userAdminAddress:te.imx_user_admin_address}),te?.zkevm_eth_address&&(he.zkEvm={ethAddress:te?.zkevm_eth_address,userAdminAddress:te?.zkevm_user_admin_address}),he};static mapDeviceTokenResponseToOidcUser=D=>{const te=o$1(D.id_token);return new Sw({id_token:D.id_token,access_token:D.access_token,refresh_token:D.refresh_token,token_type:D.token_type,profile:{sub:te.sub,iss:te.iss,aud:te.aud,exp:te.exp,iat:te.iat,email:te.email,nickname:te.nickname,passport:te.passport}})};async login(D){return withPassportError((async()=>{const te="passportLoginPrompt",signinPopup=async()=>this.userManager.signinPopup({extraQueryParams:{...this.userManager.settings?.extraQueryParams??{},rid:ea(wn.RUNTIME_ID)||"",third_party_a_id:D||""},popupWindowFeatures:{width:410,height:450},popupWindowTarget:te});return new Promise(((D,he)=>{signinPopup().then((te=>{D(AuthManager.mapOidcUserToDomainModel(te))})).catch((ye=>{if(!(ye instanceof Error)||"Attempted to navigate on a disposed window"!==ye.message)return void he(ye);let be=!1;const ve=new Overlay(this.config.popupOverlayOptions,!0);ve.append((async()=>{try{if(be)window.open("",te);else{be=!0;const te=await signinPopup();ve.remove(),D(AuthManager.mapOidcUserToDomainModel(te))}}catch(D){ve.remove(),he(D)}}),(()=>{ve.remove(),he(new Error("Popup closed by user"))}))}))}))}),rA.AUTHENTICATION_ERROR)}async getUserOrLogin(){let D=null;try{D=await this.getUser()}catch(D){}return D||this.login()}async loginCallback(){return withPassportError((async()=>{await this.userManager.signinCallback()}),rA.AUTHENTICATION_ERROR)}async loginWithDeviceFlow(D){return withPassportError((async()=>{const te=await Kt.post(`${this.config.authenticationDomain}/oauth/device/code`,{client_id:this.config.oidcConfiguration.clientId,scope:this.config.oidcConfiguration.scope,audience:this.config.oidcConfiguration.audience},uA),he=ea(wn.RUNTIME_ID);return{code:te.data.user_code,deviceCode:te.data.device_code,url:`${te.data.verification_uri_complete}${he?`&rid=${he}`:""}${D?`&third_party_a_id=${D}`:""}`,interval:te.data.interval}}),rA.AUTHENTICATION_ERROR)}async loginWithDeviceFlowCallback(D,te,he){return withPassportError((async()=>{const ye=Date.now();for(;;){if(null!=he&&Date.now()-ye>he)throw new Error("Timed out");await wait$2(1e3*te);try{const te=await this.getDeviceFlowToken(D),he=AuthManager.mapDeviceTokenResponseToOidcUser(te),ye=AuthManager.mapOidcUserToDomainModel(he);return await this.userManager.storeUser(he),ye}catch(D){if(!Kt.isAxiosError(D))throw D;{const te=D.response?.data;switch(te.error){case"authorization_pending":case"slow_down":break;case"expired_token":throw new Error("Token expired, please log in again");case"access_denied":throw new Error("User denied access");default:throw new Error("Error getting token")}}}}throw new Error("Failed to get credentials")}),rA.AUTHENTICATION_ERROR)}async getDeviceFlowToken(D){return(await Kt.post(`${this.config.authenticationDomain}/oauth/token`,{client_id:this.config.oidcConfiguration.clientId,grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:D},uA)).data}getPKCEAuthorizationUrl(){const D=base64URLEncode((void 0)(32)),te=base64URLEncode(function sha256$3(D){return(void 0)("sha256").update(D).digest()}(D)),he=base64URLEncode((void 0)(32)),{redirectUri:ye,scope:be,audience:ve,clientId:we}=this.config.oidcConfiguration;this.deviceCredentialsManager.savePKCEData({state:he,verifier:D});const _e=new URL("/authorize",this.config.authenticationDomain);return _e.searchParams.set("response_type","code"),_e.searchParams.set("code_challenge",te),_e.searchParams.set("code_challenge_method","S256"),_e.searchParams.set("client_id",we),_e.searchParams.set("redirect_uri",ye),_e.searchParams.set("state",he),be&&_e.searchParams.set("scope",be),ve&&_e.searchParams.set("audience",ve),_e.toString()}async loginWithPKCEFlowCallback(D,te){return withPassportError((async()=>{const he=this.deviceCredentialsManager.getPKCEData();if(!he)throw new Error("No code verifier or state for PKCE");if(te!==he.state)throw new Error("Provided state does not match stored state");const ye=await this.getPKCEToken(D,he.verifier),be=AuthManager.mapDeviceTokenResponseToOidcUser(ye),ve=AuthManager.mapOidcUserToDomainModel(be);return await this.userManager.storeUser(be),ve}),rA.AUTHENTICATION_ERROR)}async getPKCEToken(D,te){return(await Kt.post(`${this.config.authenticationDomain}/oauth/token`,{client_id:this.config.oidcConfiguration.clientId,grant_type:"authorization_code",code_verifier:te,code:D,redirect_uri:this.config.oidcConfiguration.redirectUri},uA)).data}async logout(){return withPassportError((async()=>"silent"===this.logoutMode?this.userManager.signoutSilent():this.userManager.signoutRedirect()),rA.LOGOUT_ERROR)}async logoutSilentCallback(D){return this.userManager.signoutSilentCallback(D)}async removeUser(){return this.userManager.removeUser()}async getDeviceFlowEndSessionEndpoint(){const{authenticationDomain:D,oidcConfiguration:te}=this.config,he=new URL(fA,D);return he.searchParams.set("client_id",te.clientId),te.logoutRedirectUri&&he.searchParams.set("returnTo",te.logoutRedirectUri),he.toString()}forceUserRefreshInBackground(){this.refreshTokenAndUpdatePromise().catch((D=>{}))}async forceUserRefresh(){return this.refreshTokenAndUpdatePromise().catch((D=>null))}async refreshTokenAndUpdatePromise(){return this.refreshingPromise||(this.refreshingPromise=new Promise((async(D,te)=>{try{const te=await this.userManager.signinSilent();if(te)return void D(AuthManager.mapOidcUserToDomainModel(te));D(null)}catch(D){let he=rA.AUTHENTICATION_ERROR,ye="Failed to refresh token",be=!0;if(D instanceof hw?(he=rA.SILENT_LOGIN_ERROR,ye=`${ye}: ${D.message}`,be=!1):D instanceof pw?(he=rA.NOT_LOGGED_IN_ERROR,ye=`${ye}: ${D.message||D.error_description}`):D instanceof Error?ye=`${ye}: ${D.message}`:"string"==typeof D&&(ye=`${ye}: ${D}`),be)try{await this.userManager.removeUser()}catch(D){D instanceof Error&&(ye=`${ye}: Failed to remove user: ${D.message}`)}te(new PassportError(ye,he))}finally{this.refreshingPromise=null}}))),this.refreshingPromise}async getUser(D=(D=>!0)){if(this.refreshingPromise){const te=await this.refreshingPromise;return te&&D(te)?te:null}const te=await this.userManager.getUser();if(!te)return null;if(!isTokenExpired(te)){const he=AuthManager.mapOidcUserToDomainModel(te);if(he&&D(he))return he}if(te.refresh_token){const te=await this.refreshTokenAndUpdatePromise();if(te&&D(te))return te}return null}async getUserZkEvm(){const D=await this.getUser(isUserZkEvm);if(!D)throw new Error("Failed to obtain a User with the required ZkEvm attributes");return D}async getUserImx(){const D=await this.getUser(isUserImx);if(!D)throw new Error("Failed to obtain a User with the required IMX attributes");return D}}const withMetrics=(D,te)=>{const he=qn("passport",te);try{return D(he)}catch(D){throw D instanceof Error&&Gn("passport",te,D),he.addEvent("errored"),D}finally{he.addEvent("End")}},withMetricsAsync=async(D,te)=>{const he=qn("passport",te);try{return await D(he)}catch(D){throw D instanceof Error&&Gn("passport",te,D),he.addEvent("errored"),D}finally{he.addEvent("End")}};class MagicAdapter{config;lazyMagicClient;constructor(D){this.config=D,"undefined"!=typeof window&&(this.lazyMagicClient=((D,te)=>D().then(te))((()=>new Promise((D=>{const onReadyStateChange=()=>{"complete"===window.document.readyState&&(D(),window.document.removeEventListener("readystatechange",onReadyStateChange))};window.document.addEventListener("readystatechange",onReadyStateChange),"complete"===window.document.readyState&&(D(),window.document.removeEventListener("readystatechange",onReadyStateChange))}))),(()=>new qT(this.config.magicPublishableApiKey,{extensions:[new jT],network:"mainnet"}))))}get magicClient(){if(!this.lazyMagicClient)throw new Error("Cannot perform this action outside of the browser");return this.lazyMagicClient}async login(D){return withPassportError((async()=>withMetricsAsync((async te=>{const he=performance.now(),ye=await this.magicClient;return te.addEvent("endMagicClientInit"),await ye.openid.loginWithOIDC({jwt:D,providerId:this.config.magicProviderId}),te.addEvent("endLoginWithOIDC"),trackDuration("passport",te.details.flowName,Math.round(performance.now()-he)),ye.rpcProvider}),"magicLogin")),rA.WALLET_CONNECTION_ERROR)}async logout(){const D=await this.magicClient;D.user&&await D.user.logout()}}const lA="ERC721";const pA="ERC721";const hA=1e3,yA=3,retryWithDelay=async(D,te)=>{const{retries:he=yA,interval:ye=hA,finalErr:be=Error("Retry failed"),finallyFn:ve=(()=>{})}=te||{};try{return await D()}catch(te){return he<=0?Promise.reject(be):(await(we=ye,new Promise((D=>{setTimeout((()=>D()),we)}))),retryWithDelay(D,{retries:he-1,finalErr:be,finallyFn:ve}))}finally{he<=0&&ve()}var we};async function forceUserRefresh(D){await retryWithDelay((async()=>{const te=await D.forceUserRefresh();return te?.imx?te:Promise.reject(new Error("user wallet addresses not exist"))}))}async function registerOffchain$1(D,te,he,ye,be){return withPassportError((async()=>{try{const ve=await async function registerPassport({ethSigner:D,starkSigner:te,imxApiClients:he},ye){return withPassportError((async()=>{const[be,ve]=await Promise.all([D.getAddress(),te.getAddress()]),we=await he.usersApi.getSignableRegistrationOffchain({getSignableRegistrationRequest:{ether_key:be,stark_key:ve}}),{signable_message:_e,payload_hash:Pe}=we.data,[Ie,Re]=await Promise.all([signRaw(_e,D),te.signMessage(Pe)]);return(await he.usersApi.registerPassportUserV2({authorization:`Bearer ${ye}`,registerPassportUserRequest:{eth_signature:Ie,ether_key:be,stark_signature:Re,stark_key:ve}})).data}),rA.USER_REGISTRATION_ERROR)}({ethSigner:D,starkSigner:te,imxApiClients:be},he.accessToken);return await forceUserRefresh(ye),ve}catch(D){if(Kt.isAxiosError(D)&&409===D.response?.status)return await forceUserRefresh(ye),{tx_hash:""};throw D}}),rA.USER_REGISTRATION_ERROR)}class PassportImxProvider{authManager;immutableXClient;guardianClient;imxApiClients;magicAdapter;signers;signerInitialisationError;constructor({authManager:D,immutableXClient:te,passportEventEmitter:he,magicAdapter:ye,imxApiClients:be,guardianClient:ve}){this.authManager=D,this.immutableXClient=te,this.magicAdapter=ye,this.imxApiClients=be,this.guardianClient=ve,this.#e(),he.on(sA.LOGGED_OUT,this.handleLogout)}handleLogout=()=>{this.signers=void 0};#e(){const generateSigners=async()=>{const D=await this.authManager.getUser(),te=await this.magicAdapter.login(D.idToken),he=new Web3Provider(te).getSigner();return{ethSigner:he,starkSigner:await(async D=>withPassportError((async()=>createStarkSigner(await generateLegacyStarkPrivateKey(D))),rA.WALLET_CONNECTION_ERROR))(he)}};this.signers=new Promise((async D=>{try{D(await generateSigners())}catch(te){this.signerInitialisationError=te,D(void 0)}}))}async#t(){const D=await this.authManager.getUser();if(!D||!this.signers)throw new PassportError("User has been logged out",rA.NOT_LOGGED_IN_ERROR);return D}async#r(){const D=await this.signers;if(void 0===D){if(void 0!==this.signerInitialisationError)throw this.signerInitialisationError;throw new Error("Signers failed to initialise")}return D}async#n(){const[D,te]=await Promise.all([this.#t(),this.#r()]);if(!isUserImx(D))throw new PassportError("User has not been registered with StarkEx",rA.USER_NOT_REGISTERED_ERROR);return{user:D,starkSigner:te.starkSigner,ethSigner:te.ethSigner}}async transfer(D){return withMetricsAsync((()=>this.guardianClient.withDefaultConfirmationScreenTask((async()=>{const{user:te,starkSigner:he}=await this.#n();return async function transfer$1({request:D,transfersApi:te,starkSigner:he,user:ye,guardianClient:be}){return withPassportError((async()=>{const ve=D.type===pA?"1":D.amount,we={sender:ye.imx.ethAddress,token:convertToSignableToken(D),amount:ve,receiver:D.receiver},_e={Authorization:`Bearer ${ye.accessToken}`},Pe=await te.getSignableTransferV1({getSignableTransferRequest:we},{headers:_e});await be.evaluateImxTransaction({payloadHash:Pe.data.payload_hash});const Ie=Pe.data,{payload_hash:Re}=Ie,ke=await he.signMessage(Re),Oe=await he.getAddress(),xe={createTransferRequest:{sender_stark_key:Ie.sender_stark_key||Oe,sender_vault_id:Ie.sender_vault_id,receiver_stark_key:Ie.receiver_stark_key,receiver_vault_id:Ie.receiver_vault_id,asset_id:Ie.asset_id,amount:Ie.amount,nonce:Ie.nonce,expiration_timestamp:Ie.expiration_timestamp,stark_signature:ke}},{data:Be}=await te.createTransferV1(xe,{headers:_e});return{sent_signature:Be.sent_signature,status:Be.status?.toString(),time:Be.time,transfer_id:Be.transfer_id}}),rA.TRANSFER_ERROR)}({request:D,user:te,starkSigner:he,transfersApi:this.immutableXClient.transfersApi,guardianClient:this.guardianClient})}))()),"imxTransfer")}async registerOffchain(){return withMetricsAsync((async()=>{const[D,te]=await Promise.all([this.#t(),this.#r()]);return await registerOffchain$1(te.ethSigner,te.starkSigner,D,this.authManager,this.imxApiClients)}),"imxRegisterOffchain")}async isRegisteredOffchain(){return withMetricsAsync((async()=>!!(await this.#t()).imx),"imxIsRegisteredOffchain")}isRegisteredOnchain(){throw new PassportError("Operation not supported",rA.OPERATION_NOT_SUPPORTED_ERROR)}async createOrder(D){return withMetricsAsync((()=>this.guardianClient.withDefaultConfirmationScreenTask((async()=>{const{user:te,starkSigner:he}=await this.#n();return async function createOrder$1({starkSigner:D,user:te,request:he,ordersApi:ye,guardianClient:be}){return withPassportError((async()=>{const{ethAddress:ve}=te.imx,we=he.sell.type===lA?"1":he.sell.amount,_e=he.buy.type===lA?"1":he.buy.amount,Pe={Authorization:`Bearer ${te.accessToken}`},Ie={user:ve,amount_buy:_e,token_buy:convertToSignableToken(he.buy),amount_sell:we,token_sell:convertToSignableToken(he.sell),fees:he.fees,split_fees:!0,expiration_timestamp:he.expiration_timestamp},Re=await ye.getSignableOrder({getSignableOrderRequestV3:Ie},{headers:Pe});await be.evaluateImxTransaction({payloadHash:Re.data.payload_hash});const{payload_hash:ke}=Re.data,Oe=await D.signMessage(ke),xe=Re.data,Be={createOrderRequest:{include_fees:!0,fees:he.fees,stark_signature:Oe,amount_buy:xe.amount_buy,amount_sell:xe.amount_sell,asset_id_buy:xe.asset_id_buy,asset_id_sell:xe.asset_id_sell,expiration_timestamp:xe.expiration_timestamp,nonce:xe.nonce,stark_key:xe.stark_key,vault_id_buy:xe.vault_id_buy,vault_id_sell:xe.vault_id_sell}};return{...(await ye.createOrderV3(Be,{headers:Pe})).data}}),rA.CREATE_ORDER_ERROR)}({request:D,user:te,starkSigner:he,ordersApi:this.immutableXClient.ordersApi,guardianClient:this.guardianClient})}))()),"imxCreateOrder")}async cancelOrder(D){return withMetricsAsync((()=>this.guardianClient.withDefaultConfirmationScreenTask((async()=>{const{user:te,starkSigner:he}=await this.#n();return async function cancelOrder$1({user:D,starkSigner:te,request:he,ordersApi:ye,guardianClient:be}){return withPassportError((async()=>{const ve={order_id:he.order_id},we={Authorization:`Bearer ${D.accessToken}`},_e=await ye.getSignableCancelOrderV3({getSignableCancelOrderRequest:ve},{headers:we});await be.evaluateImxTransaction({payloadHash:_e.data.payload_hash});const{payload_hash:Pe}=_e.data,Ie=await te.signMessage(Pe),Re=await ye.cancelOrderV3({id:he.order_id.toString(),cancelOrderRequest:{order_id:he.order_id,stark_signature:Ie}},{headers:we});return{order_id:Re.data.order_id,status:Re.data.status}}),rA.CANCEL_ORDER_ERROR)}({request:D,user:te,starkSigner:he,ordersApi:this.immutableXClient.ordersApi,guardianClient:this.guardianClient})}))()),"imxCancelOrder")}async createTrade(D){return withMetricsAsync((()=>this.guardianClient.withDefaultConfirmationScreenTask((async()=>{const{user:te,starkSigner:he}=await this.#n();return async function createTrade$1({request:D,tradesApi:te,user:he,starkSigner:ye,guardianClient:be}){return withPassportError((async()=>{const{ethAddress:ve}=he.imx,we={expiration_timestamp:D.expiration_timestamp,fees:D.fees,order_id:D.order_id,user:ve},_e={Authorization:`Bearer ${he.accessToken}`},Pe=await te.getSignableTrade({getSignableTradeRequest:we},{headers:_e});await be.evaluateImxTransaction({payloadHash:Pe.data.payload_hash});const{payload_hash:Ie}=Pe.data,Re=await ye.signMessage(Ie),{data:ke}=Pe,Oe={createTradeRequest:{include_fees:!0,fees:D?.fees,stark_signature:Re,order_id:D?.order_id,fee_info:ke.fee_info,amount_buy:ke.amount_buy,amount_sell:ke.amount_sell,asset_id_buy:ke.asset_id_buy,asset_id_sell:ke.asset_id_sell,expiration_timestamp:ke.expiration_timestamp,nonce:ke.nonce,stark_key:ke.stark_key,vault_id_buy:ke.vault_id_buy,vault_id_sell:ke.vault_id_sell}},{data:xe}=await te.createTradeV3(Oe,{headers:_e});return xe}),rA.CREATE_TRADE_ERROR)}({request:D,user:te,starkSigner:he,tradesApi:this.immutableXClient.tradesApi,guardianClient:this.guardianClient})}))()),"imxCreateTrade")}async batchNftTransfer(D){return withMetricsAsync((()=>this.guardianClient.withConfirmationScreenTask({width:480,height:784})((async()=>{const{user:te,starkSigner:he}=await this.#n();return async function batchNftTransfer({user:D,starkSigner:te,request:he,transfersApi:ye,guardianClient:be}){return withPassportError((async()=>{const{ethAddress:ve}=D.imx,we=he.map((D=>({amount:"1",token:convertToSignableToken({type:pA,tokenId:D.tokenId,tokenAddress:D.tokenAddress}),receiver:D.receiver}))),_e={Authorization:`Bearer ${D.accessToken}`},Pe=await ye.getSignableTransfer({getSignableTransferRequestV2:{sender_ether_key:ve,signable_requests:we}},{headers:_e});await be.evaluateImxTransaction({payloadHash:Pe.data.signable_responses[0]?.payload_hash});const Ie=await Promise.all(Pe.data.signable_responses.map((async D=>{const he=await te.signMessage(D.payload_hash);return{sender_vault_id:D.sender_vault_id,receiver_stark_key:D.receiver_stark_key,receiver_vault_id:D.receiver_vault_id,asset_id:D.asset_id,amount:D.amount,nonce:D.nonce,expiration_timestamp:D.expiration_timestamp,stark_signature:he}}))),Re={sender_stark_key:Pe.data.sender_stark_key,requests:Ie},ke=await ye.createTransfer({createTransferRequestV2:Re},{headers:_e});return{transfer_ids:ke?.data.transfer_ids}}),rA.TRANSFER_ERROR)}({request:D,user:te,starkSigner:he,transfersApi:this.immutableXClient.transfersApi,guardianClient:this.guardianClient})}))()),"imxBatchNftTransfer")}async exchangeTransfer(D){return withMetricsAsync((async()=>{const{user:te,starkSigner:he}=await this.#n();return async function exchangeTransfer$1({user:D,starkSigner:te,request:he,exchangesApi:ye}){return withPassportError((async()=>{const{ethAddress:be}=D.imx,ve=he.amount,we=await ye.getExchangeSignableTransfer({id:he.transactionID,getSignableTransferRequest:{sender:be,token:convertToSignableToken(he),amount:ve,receiver:he.receiver}}),_e=await te.getAddress(),{payload_hash:Pe}=we.data,Ie=await te.signMessage(Pe),Re={sender_stark_key:we.data.sender_stark_key||_e,sender_vault_id:we.data.sender_vault_id,receiver_stark_key:we.data.receiver_stark_key,receiver_vault_id:we.data.receiver_vault_id,asset_id:we.data.asset_id,amount:we.data.amount,nonce:we.data.nonce,expiration_timestamp:we.data.expiration_timestamp,stark_signature:Ie},ke={Authorization:`Bearer ${D.accessToken}`},Oe=await ye.createExchangeTransfer({id:he.transactionID,createTransferRequest:Re},{headers:ke});return{sent_signature:Oe?.data.sent_signature,status:Oe?.data.status?.toString(),time:Oe?.data.time,transfer_id:Oe?.data.transfer_id}}),rA.EXCHANGE_TRANSFER_ERROR)}({request:D,user:te,starkSigner:he,exchangesApi:this.immutableXClient.exchangeApi})}),"imxExchangeTransfer")}deposit(D){throw new PassportError("Operation not supported",rA.OPERATION_NOT_SUPPORTED_ERROR)}prepareWithdrawal(D){throw new PassportError("Operation not supported",rA.OPERATION_NOT_SUPPORTED_ERROR)}completeWithdrawal(D,te){throw new PassportError("Operation not supported",rA.OPERATION_NOT_SUPPORTED_ERROR)}async getAddress(){return withMetricsAsync((async()=>{const D=await this.#t();if(!isUserImx(D))throw new PassportError("User has not been registered with StarkEx",rA.USER_NOT_REGISTERED_ERROR);return Promise.resolve(D.imx.ethAddress)}),"imxGetAddress")}}class PassportImxProviderFactory{authManager;immutableXClient;magicAdapter;passportEventEmitter;imxApiClients;guardianClient;constructor({authManager:D,immutableXClient:te,magicAdapter:he,passportEventEmitter:ye,imxApiClients:be,guardianClient:ve}){this.authManager=D,this.immutableXClient=te,this.magicAdapter=he,this.passportEventEmitter=ye,this.imxApiClients=be,this.guardianClient=ve}async getProvider(){const D=await this.authManager.getUserOrLogin();return this.createProviderInstance(D)}async getProviderSilent(){const D=await this.authManager.getUser();return D?this.createProviderInstance(D):null}async createProviderInstance(D){if(!D.idToken)throw new PassportError("Failed to initialise",rA.WALLET_CONNECTION_ERROR);return new PassportImxProvider({authManager:this.authManager,immutableXClient:this.immutableXClient,passportEventEmitter:this.passportEventEmitter,magicAdapter:this.magicAdapter,imxApiClients:this.imxApiClients,guardianClient:this.guardianClient})}}const validateConfiguration=(D,te,he)=>{const ye=te.map((te=>!D[te]&&te)).filter((D=>D)).join(", ");if(""!==ye){throw new PassportError(he?`${he} - ${ye} cannot be null`:`${ye} cannot be null`,rA.INVALID_CONFIGURATION)}};class PassportConfiguration{authenticationDomain;passportDomain;imxPublicApiDomain;magicPublishableApiKey;magicProviderId;oidcConfiguration;baseConfig;zkEvmRpcUrl;relayerUrl;multiRollupConfig;crossSdkBridgeEnabled;jsonRpcReferrer;forceScwDeployBeforeMessageSignature;popupOverlayOptions;constructor({baseConfig:D,overrides:te,crossSdkBridgeEnabled:he,jsonRpcReferrer:ye,forceScwDeployBeforeMessageSignature:be,popupOverlayOptions:ve,...we}){if(validateConfiguration(we,["clientId","redirectUri"]),this.oidcConfiguration=we,this.baseConfig=D,this.crossSdkBridgeEnabled=he||!1,this.jsonRpcReferrer=ye||"",this.forceScwDeployBeforeMessageSignature=be||!1,this.popupOverlayOptions=ve||{disableGenericPopupOverlay:!1,disableBlockedPopupOverlay:!1},te)validateConfiguration(te,["authenticationDomain","passportDomain","magicPublishableApiKey","magicProviderId","zkEvmRpcUrl","relayerUrl","imxPublicApiDomain","indexerMrBasePath","orderBookMrBasePath","passportMrBasePath"],"overrides"),this.authenticationDomain=te.authenticationDomain,this.passportDomain=te.passportDomain,this.imxPublicApiDomain=te.imxPublicApiDomain,this.magicPublishableApiKey=te.magicPublishableApiKey,this.magicProviderId=te.magicProviderId,this.zkEvmRpcUrl=te.zkEvmRpcUrl,this.relayerUrl=te.relayerUrl,this.multiRollupConfig={indexer:createConfig$1({basePath:te.indexerMrBasePath}),orderBook:createConfig$1({basePath:te.orderBookMrBasePath}),passport:createConfig$1({basePath:te.passportMrBasePath})};else switch(D.environment){case ra.PRODUCTION:this.authenticationDomain="https://auth.immutable.com",this.magicPublishableApiKey="pk_live_10F423798A540ED7",this.magicProviderId="fSMzaRQ4O7p4fttl7pCyGVtJS_G70P8SNsLXtPPGHo0=",this.passportDomain="https://passport.immutable.com",this.imxPublicApiDomain="https://api.immutable.com",this.zkEvmRpcUrl="https://rpc.immutable.com",this.relayerUrl="https://api.immutable.com/relayer-mr",this.multiRollupConfig=multiRollupConfig_getProduction();break;case ra.SANDBOX:default:this.authenticationDomain="https://auth.immutable.com",this.magicPublishableApiKey="pk_live_10F423798A540ED7",this.magicProviderId="fSMzaRQ4O7p4fttl7pCyGVtJS_G70P8SNsLXtPPGHo0=",this.passportDomain="https://passport.sandbox.immutable.com",this.imxPublicApiDomain="https://api.sandbox.immutable.com",this.zkEvmRpcUrl="https://rpc.testnet.immutable.com",this.relayerUrl="https://api.sandbox.immutable.com/relayer-mr",this.multiRollupConfig=multiRollupConfig_getSandbox()}}}var mA,bA;!function(D){D.CONFIRMATION_START="confirmation_start"}(mA||(mA={})),function(D){D.CONFIRMATION_WINDOW_READY="confirmation_window_ready",D.TRANSACTION_CONFIRMED="transaction_confirmed",D.TRANSACTION_ERROR="transaction_error",D.TRANSACTION_REJECTED="transaction_rejected",D.MESSAGE_CONFIRMED="message_confirmed",D.MESSAGE_ERROR="message_error",D.MESSAGE_REJECTED="message_rejected"}(bA||(bA={}));const gA="imx_passport_confirmation",openPopupCenter=({url:D,title:te,width:he,height:ye})=>{const be=Math.max(0,Math.round(window.screenX+(window.outerWidth-he)/2)),ve=Math.max(0,Math.round(window.screenY+(window.outerHeight-ye)/2)),we=window.open(D,te,`\n      scrollbars=yes,\n      width=${he}, \n      height=${ye}, \n      top=${ve}, \n      left=${be}\n     `);if(!we)throw new Error("Failed to open confirmation screen");return we.focus(),we},vA="Confirm this transaction";class ConfirmationScreen{config;confirmationWindow;popupOptions;overlay;overlayClosed;timer;constructor(D){this.config=D,this.overlayClosed=!1}getHref(D,te){let he=`${this.config.passportDomain}/transaction-confirmation/${D}`;if(te){const D=te?Object.keys(te).map((D=>`${D}=${te[D]}`)).join("&"):"";he=`${he}?${D}`}return he}requestConfirmation(D,te,he,ye){return new Promise(((be,ve)=>{const messageHandler=({data:D,origin:te})=>{if(te===this.config.passportDomain&&D.eventType===gA)switch(D.messageType){case bA.CONFIRMATION_WINDOW_READY:this.confirmationWindow?.postMessage({eventType:gA,messageType:mA.CONFIRMATION_START},this.config.passportDomain);break;case bA.TRANSACTION_CONFIRMED:this.closeWindow(),be({confirmed:!0});break;case bA.TRANSACTION_REJECTED:this.closeWindow(),be({confirmed:!1});break;case bA.TRANSACTION_ERROR:this.closeWindow(),ve(new Error("Error during transaction confirmation"));break;default:this.closeWindow(),ve(new Error("Unsupported message type"))}};let we="";we=he===Za.TransactionApprovalRequestChainTypeEnum.Starkex?this.getHref("transaction",{transactionId:D,etherAddress:te,chainType:he}):this.getHref("zkevm/transaction",{transactionID:D,etherAddress:te,chainType:he,chainID:ye}),window.addEventListener("message",messageHandler),this.showConfirmationScreen(we,messageHandler,be)}))}requestMessageConfirmation(D,te,he){return new Promise(((ye,be)=>{const messageHandler=({data:D,origin:te})=>{if(te===this.config.passportDomain&&D.eventType===gA)switch(D.messageType){case bA.CONFIRMATION_WINDOW_READY:this.confirmationWindow?.postMessage({eventType:gA,messageType:mA.CONFIRMATION_START},this.config.passportDomain);break;case bA.MESSAGE_CONFIRMED:this.closeWindow(),ye({confirmed:!0});break;case bA.MESSAGE_REJECTED:this.closeWindow(),ye({confirmed:!1});break;case bA.MESSAGE_ERROR:this.closeWindow(),be(new Error("Error during message confirmation"));break;default:this.closeWindow(),be(new Error("Unsupported message type"))}};window.addEventListener("message",messageHandler);const ve=this.getHref("zkevm/message",{messageID:D,etherAddress:te,...he?{messageType:he}:{}});this.showConfirmationScreen(ve,messageHandler,ye)}))}showServiceUnavailable(){return new Promise(((D,te)=>{this.showConfirmationScreen(this.getHref("unavailable"),(()=>{}),(()=>{this.closeWindow(),te(new Error("Service unavailable"))}))}))}loading(D){if(!this.config.crossSdkBridgeEnabled){this.popupOptions=D;try{this.confirmationWindow=openPopupCenter({url:this.getHref("loading"),title:vA,width:D?.width||480,height:D?.height||720}),this.overlay=new Overlay(this.config.popupOverlayOptions)}catch(D){const te=D instanceof Error?D.message:String(D);Gn("passport","confirmationPopupDenied",new Error(te)),this.overlay=new Overlay(this.config.popupOverlayOptions,!0)}this.overlay.append((()=>{try{this.confirmationWindow?.close(),this.confirmationWindow=openPopupCenter({url:this.getHref("loading"),title:vA,width:this.popupOptions?.width||480,height:this.popupOptions?.height||720})}catch{}}),(()=>{this.overlayClosed=!0,this.closeWindow()}))}}closeWindow(){this.confirmationWindow?.close(),this.overlay?.remove(),this.overlay=void 0}showConfirmationScreen(D,te,he){if(this.confirmationWindow&&(this.confirmationWindow.location.href=D),!this.overlay)return this.overlayClosed=!1,void he({confirmed:!1});const timerCallback=()=>{(this.confirmationWindow?.closed||this.overlayClosed)&&(clearInterval(this.timer),window.removeEventListener("message",te),he({confirmed:!1}),this.overlayClosed=!1,this.confirmationWindow=void 0)};this.timer=setInterval(timerCallback,1e3),this.overlay.update((()=>this.recreateConfirmationWindow(D,timerCallback)))}recreateConfirmationWindow(D,te){try{clearInterval(this.timer),this.confirmationWindow?.close(),this.confirmationWindow=openPopupCenter({url:D,title:vA,width:this.popupOptions?.width||480,height:this.popupOptions?.height||720}),this.timer=setInterval(te,1e3)}catch{}}}var wA,_A;!function(D){D.PENDING="PENDING",D.SUBMITTED="SUBMITTED",D.SUCCESSFUL="SUCCESSFUL",D.REVERTED="REVERTED",D.FAILED="FAILED",D.CANCELLED="CANCELLED"}(wA||(wA={})),function(D){D.ACCOUNTS_CHANGED="accountsChanged"}(_A||(_A={}));class TypedEventEmitter{emitter=new EventEmitter;emit(D,...te){this.emitter.emit(D,...te)}on(D,te){this.emitter.on(D,te)}removeListener(D,te){this.emitter.removeListener(D,te)}}const TA="tuple(\n  bool delegateCall,\n  bool revertOnError,\n  uint256 gasLimit,\n  address target,\n  uint256 value,\n  bytes data\n)[]",getNormalisedTransactions=D=>D.map((D=>({delegateCall:!0===D.delegateCall,revertOnError:!0===D.revertOnError,gasLimit:D.gasLimit??Vi,target:D.to??bi,value:D.value??Vi,data:D.data??[]}))),getNonce=async(D,te,he)=>{try{const ye=new fu(te,WT.mainModule.abi,D),be=(D=>D||Li.from(0))(he),ve=await ye.readNonce(be);if(ve instanceof Li)return((D,te)=>{const he=Li.from(D).mul(Ji.pow(96));return Li.from(te).add(he)})(be,ve)}catch(D){if(D instanceof Error&&"code"in D&&D.code===li.CALL_EXCEPTION)return Li.from(0);throw D}throw new Error("Unexpected result from contract.nonce() call.")},encodeMessageSubDigest=(D,te,he)=>pack$2(["string","uint256","address","bytes32"],["",D,te,he]),signMetaTransactions=async(D,te,he,ye,be)=>{const ve=getNormalisedTransactions(D),we=((D,te)=>keccak256$3(vo.encode(["uint256",TA],[D,te])))(te,ve),_e=arrayify$1(keccak256$3(encodeMessageSubDigest(he,ye,we))),Pe=performance.now(),Ie=await be.signMessage(_e);trackDuration("passport","magicSignMessageGetSignedMetaTransactions",Math.round(performance.now()-Pe));const Re=`${Ie}02`,ke=nA.signature.encodeSignature({version:1,threshold:1,signers:[{isDynamic:!1,unrecovered:!0,weight:1,signature:Re}]}),Oe=new Xo(WT.mainModule.abi);return Oe.encodeFunctionData(Oe.getFunction("execute"),[ve,te,ke])},packSignatures=(D,te,he)=>{const ye=`${D}02`,{signers:be}=(D=>{const te=`0x0000${D}`;return nA.signature.decodeSignature(te)})(he),ve=[...be,{isDynamic:!1,unrecovered:!0,weight:1,signature:ye,address:te}].sort(((D,te)=>{const he=Li.from(D.address),ye=Li.from(te.address);return he.lte(ye)?-1:he.eq(ye)?0:1}));return nA.signature.encodeSignature({version:1,threshold:2,signers:ve})},getEip155ChainId=D=>`eip155:${D}`;class RelayerClient{config;rpcProvider;authManager;constructor({config:D,rpcProvider:te,authManager:he}){this.config=D,this.rpcProvider=te,this.authManager=he}async postToRelayer(D){const te={id:1,jsonrpc:"2.0",...D},he=await this.authManager.getUserZkEvm(),ye=performance.now(),be=await fetch(`${this.config.relayerUrl}/v1/transactions`,{method:"POST",headers:{Authorization:`Bearer ${he.accessToken}`,"Content-Type":"application/json"},body:JSON.stringify(te)});trackDuration("passport","postToRelayer",Math.round(performance.now()-ye),{rpcMethod:D.method});const ve=await be.json();if(ve.error)throw ve.error;return ve}async ethSendTransaction(D,te){const{chainId:he}=await this.rpcProvider.detectNetwork(),ye={method:"eth_sendTransaction",params:[{to:D,data:te,chainId:getEip155ChainId(he)}]},{result:be}=await this.postToRelayer(ye);return be}async imGetTransactionByHash(D){const te={method:"im_getTransactionByHash",params:[D]},{result:he}=await this.postToRelayer(te);return he}async imGetFeeOptions(D,te){const{chainId:he}=await this.rpcProvider.detectNetwork(),ye={method:"im_getFeeOptions",params:[{userAddress:D,data:te,chainId:getEip155ChainId(he)}]},{result:be}=await this.postToRelayer(ye);return be}async imSignTypedData(D,te){const{chainId:he}=await this.rpcProvider.detectNetwork(),ye={method:"im_signTypedData",params:[{address:D,eip712Payload:te,chainId:getEip155ChainId(he)}]},{result:be}=await this.postToRelayer(ye);return be}async imSign(D,te){const{chainId:he}=await this.rpcProvider.detectNetwork(),ye={method:"im_sign",params:[{address:D,message:te,chainId:getEip155ChainId(he)}]},{result:be}=await this.postToRelayer(ye);return be}}var AA,EA;!function(D){D[D.USER_REJECTED_REQUEST=4001]="USER_REJECTED_REQUEST",D[D.UNAUTHORIZED=4100]="UNAUTHORIZED",D[D.UNSUPPORTED_METHOD=4200]="UNSUPPORTED_METHOD",D[D.DISCONNECTED=4900]="DISCONNECTED"}(AA||(AA={})),function(D){D[D.RPC_SERVER_ERROR=-32e3]="RPC_SERVER_ERROR",D[D.INVALID_REQUEST=-32600]="INVALID_REQUEST",D[D.METHOD_NOT_FOUND=-32601]="METHOD_NOT_FOUND",D[D.INVALID_PARAMS=-32602]="INVALID_PARAMS",D[D.INTERNAL_ERROR=-32603]="INTERNAL_ERROR",D[D.PARSE_ERROR=-32700]="PARSE_ERROR",D[D.TRANSACTION_REJECTED=-32003]="TRANSACTION_REJECTED"}(EA||(EA={}));class JsonRpcError extends Error{message;code;constructor(D,te){super(te),this.message=te,this.code=D}}const PA="Transaction requires confirmation but this functionality is not supported in this environment. Please contact Immutable support if you need to enable this feature.",convertBigNumberishToString=D=>Li.from(D).toString();class GuardianClient{guardianApi;confirmationScreen;crossSdkBridgeEnabled;authManager;constructor({confirmationScreen:D,config:te,authManager:he,guardianApi:ye}){this.confirmationScreen=D,this.crossSdkBridgeEnabled=te.crossSdkBridgeEnabled,this.guardianApi=ye,this.authManager=he}withConfirmationScreen(D){return te=>this.withConfirmationScreenTask(D)(te)()}withConfirmationScreenTask(D){return te=>async()=>{this.confirmationScreen.loading(D);try{return await te()}catch(D){if(D instanceof PassportError&&D.type===rA.SERVICE_UNAVAILABLE_ERROR)throw await this.confirmationScreen.showServiceUnavailable(),D;throw this.confirmationScreen.closeWindow(),D}}}withDefaultConfirmationScreenTask(D){return this.withConfirmationScreenTask()(D)}async evaluateImxTransaction({payloadHash:D}){try{const finallyFn=()=>{this.confirmationScreen.closeWindow()},te=await this.authManager.getUserImx(),he={Authorization:`Bearer ${te.accessToken}`};if(!(await retryWithDelay((async()=>this.guardianApi.getTransactionByID({transactionID:D,chainType:"starkex"},{headers:he})),{finallyFn:finallyFn})).data.id)throw new Error("Transaction doesn't exists");const ye=await this.guardianApi.evaluateTransaction({id:D,transactionEvaluationRequest:{chainType:"starkex"}},{headers:he}),{confirmationRequired:be}=ye.data;if(be){if(this.crossSdkBridgeEnabled)throw new Error(PA);if(!(await this.confirmationScreen.requestConfirmation(D,te.imx.ethAddress,Za.TransactionApprovalRequestChainTypeEnum.Starkex)).confirmed)throw new Error("Transaction rejected by user")}else this.confirmationScreen.closeWindow()}catch(D){if(Kt.isAxiosError(D)&&403===D.response?.status)throw new PassportError("Service unavailable",rA.SERVICE_UNAVAILABLE_ERROR);throw D}}async evaluateEVMTransaction({chainId:D,nonce:te,metaTransactions:he}){const ye=await this.authManager.getUserZkEvm(),be={Authorization:`Bearer ${ye.accessToken}`},ve=(D=>{try{return D.map((D=>({delegateCall:!0===D.delegateCall,revertOnError:!0===D.revertOnError,gasLimit:D.gasLimit?convertBigNumberishToString(D.gasLimit):"0",target:D.to??bi,value:D.value?convertBigNumberishToString(D.value):"0",data:D.data?D.data.toString():"0x"})))}catch(D){const te=D instanceof Error?D.message:String(D);throw new JsonRpcError(EA.INVALID_PARAMS,`Transaction failed to parsing: ${te}`)}})(he);try{return(await this.guardianApi.evaluateTransaction({id:"evm",transactionEvaluationRequest:{chainType:"evm",chainId:D,transactionData:{nonce:te,userAddress:ye.zkEvm.ethAddress,metaTransactions:ve}}},{headers:be})).data}catch(D){if(Kt.isAxiosError(D)&&403===D.response?.status)throw new PassportError("Service unavailable",rA.SERVICE_UNAVAILABLE_ERROR);const te=D instanceof Error?D.message:String(D);throw new JsonRpcError(EA.INTERNAL_ERROR,`Transaction failed to validate with error: ${te}`)}}async validateEVMTransaction({chainId:D,nonce:te,metaTransactions:he}){const ye=await this.evaluateEVMTransaction({chainId:D,nonce:te,metaTransactions:he}),{confirmationRequired:be,transactionId:ve}=ye;if(be&&this.crossSdkBridgeEnabled)throw new JsonRpcError(EA.TRANSACTION_REJECTED,PA);if(be&&ve){const te=await this.authManager.getUserZkEvm();if(!(await this.confirmationScreen.requestConfirmation(ve,te.zkEvm.ethAddress,Za.TransactionApprovalRequestChainTypeEnum.Evm,D)).confirmed)throw new JsonRpcError(EA.TRANSACTION_REJECTED,"Transaction rejected by user")}else this.confirmationScreen.closeWindow()}async handleEIP712MessageEvaluation({chainID:D,payload:te}){try{const he=await this.authManager.getUserZkEvm();if(null===he)throw new JsonRpcError(AA.UNAUTHORIZED,"User not logged in. Please log in first.");return(await this.guardianApi.evaluateMessage({messageEvaluationRequest:{chainID:D,payload:te}},{headers:{Authorization:`Bearer ${he.accessToken}`}})).data}catch(D){const te=D instanceof Error?D.message:String(D);throw new JsonRpcError(EA.INTERNAL_ERROR,`Message failed to validate with error: ${te}`)}}async evaluateEIP712Message({chainID:D,payload:te}){const{messageId:he,confirmationRequired:ye}=await this.handleEIP712MessageEvaluation({chainID:D,payload:te});if(ye&&this.crossSdkBridgeEnabled)throw new JsonRpcError(EA.TRANSACTION_REJECTED,PA);if(ye&&he){const D=await this.authManager.getUserZkEvm();if(!(await this.confirmationScreen.requestMessageConfirmation(he,D.zkEvm.ethAddress,"eip712")).confirmed)throw new JsonRpcError(EA.TRANSACTION_REJECTED,"Signature rejected by user")}else this.confirmationScreen.closeWindow()}async handleERC191MessageEvaluation({chainID:D,payload:te}){try{const he=await this.authManager.getUserZkEvm();if(null===he)throw new JsonRpcError(AA.UNAUTHORIZED,"User not logged in. Please log in first.");return(await this.guardianApi.evaluateErc191Message({eRC191MessageEvaluationRequest:{chainID:getEip155ChainId(D),payload:te}},{headers:{Authorization:`Bearer ${he.accessToken}`}})).data}catch(D){const te=D instanceof Error?D.message:String(D);throw new JsonRpcError(EA.INTERNAL_ERROR,`Message failed to validate with error: ${te}`)}}async evaluateERC191Message({chainID:D,payload:te}){const{messageId:he,confirmationRequired:ye}=await this.handleERC191MessageEvaluation({chainID:D,payload:te});if(ye&&this.crossSdkBridgeEnabled)throw new JsonRpcError(EA.TRANSACTION_REJECTED,PA);if(ye&&he){const D=await this.authManager.getUserZkEvm();if(!(await this.confirmationScreen.requestMessageConfirmation(he,D.zkEvm.ethAddress,"erc191")).confirmed)throw new JsonRpcError(EA.TRANSACTION_REJECTED,"Signature rejected by user")}else this.confirmationScreen.closeWindow()}}const getFeeOption=async(D,te,he)=>{const ye=getNormalisedTransactions([D]),be=(ve=ye,vo.encode([TA],[ve]));var ve;const we=(await he.imGetFeeOptions(te,be)).find((D=>"IMX"===D.tokenSymbol));if(!we)throw new Error("Failed to retrieve fees for IMX token");return we},pollRelayerTransaction=async(D,te,he)=>{const ye=await retryWithDelay((async()=>{const he=await D.imGetTransactionByHash(te);if(he.status===wA.PENDING)throw new Error;return he}),{retries:30,interval:1e3,finalErr:new JsonRpcError(EA.RPC_SERVER_ERROR,"transaction hash not generated in time")});if(he.addEvent("endRetrieveRelayerTransaction"),![wA.SUBMITTED,wA.SUCCESSFUL].includes(ye.status)){let D=`Transaction failed to submit with status ${ye.status}.`;throw ye.statusMessage&&(D+=` Error message: ${ye.statusMessage}`),new JsonRpcError(EA.RPC_SERVER_ERROR,D)}return ye},prepareAndSignTransaction=async({transactionRequest:D,ethSigner:te,rpcProvider:he,guardianClient:ye,relayerClient:be,zkEvmAddress:ve,flow:we,nonceSpace:_e})=>{const{chainId:Pe}=await he.detectNetwork(),Ie=Li.from(Pe);we.addEvent("endDetectNetwork");const Re=await(async(D,te,he,ye,be)=>{if(!D.to)throw new JsonRpcError(EA.INVALID_PARAMS,'eth_sendTransaction requires a "to" field');const ve={to:D.to,data:D.data,nonce:Li.from(0),value:D.value,revertOnError:!0},[we,_e]=await Promise.all([getNonce(te,ye,be),getFeeOption(ve,ye,he)]),Pe=[{...ve,nonce:we}],Ie=Li.from(_e.tokenPrice);return Ie.isZero()||Pe.push({nonce:we,to:_e.recipientAddress,value:Ie,revertOnError:!0}),Pe})(D,he,be,ve,_e);we.addEvent("endBuildMetaTransactions");const{nonce:ke}=Re[0];if(!ke)throw new Error("Failed to retrieve nonce from the smart wallet");const[,Oe]=await Promise.all([(async()=>{await ye.validateEVMTransaction({chainId:getEip155ChainId(Pe),nonce:convertBigNumberishToString(ke),metaTransactions:Re}),we.addEvent("endValidateEVMTransaction")})(),(async()=>{const D=await signMetaTransactions(Re,ke,Ie,ve,te);return we.addEvent("endGetSignedMetaTransactions"),D})()]),xe=await be.ethSendTransaction(ve,Oe);return we.addEvent("endRelayerSendTransaction"),{signedTransactions:Oe,relayerId:xe,nonce:ke}},prepareAndSignEjectionTransaction=async({transactionRequest:D,ethSigner:te,zkEvmAddress:he,flow:ye})=>{const be=await(async D=>{if(!D.to)throw new JsonRpcError(EA.INVALID_PARAMS,'im_signEjectionTransaction requires a "to" field');if(void 0===D.nonce)throw new JsonRpcError(EA.INVALID_PARAMS,'im_signEjectionTransaction requires a "nonce" field');if(!D.chainId)throw new JsonRpcError(EA.INVALID_PARAMS,'im_signEjectionTransaction requires a "chainId" field');return[{to:D.to,data:D.data,nonce:D.nonce,value:D.value,revertOnError:!0}]})(D);ye.addEvent("endBuildMetaTransactions");const ve=await signMetaTransactions(be,D.nonce,Li.from(D.chainId),he,te);return ye.addEvent("endGetSignedMetaTransactions"),{to:he,data:ve,chainId:getEip155ChainId(D.chainId)}},sendTransaction$1=async({params:D,ethSigner:te,rpcProvider:he,relayerClient:ye,guardianClient:be,zkEvmAddress:ve,flow:we,nonceSpace:_e})=>{const Pe=D[0],{relayerId:Ie}=await prepareAndSignTransaction({transactionRequest:Pe,ethSigner:te,rpcProvider:he,guardianClient:be,relayerClient:ye,zkEvmAddress:ve,flow:we,nonceSpace:_e}),{hash:Re}=await pollRelayerTransaction(ye,Ie,we);return Re},SA=["types","domain","primaryType","message"],transformTypedData=(D,te)=>{let he;if("string"==typeof D)try{he=JSON.parse(D)}catch(D){throw new JsonRpcError(EA.INVALID_PARAMS,`Failed to parse typed data JSON: ${D}`)}else{if("object"!=typeof D)throw new JsonRpcError(EA.INVALID_PARAMS,`Invalid typed data argument: ${D}`);he=D}if(!(D=>SA.every((te=>te in D)))(he))throw new JsonRpcError(EA.INVALID_PARAMS,`Invalid typed data argument. The following properties are required: ${SA.join(", ")}`);const ye=he.domain?.chainId;if(ye&&("string"==typeof ye&&(ye.startsWith("0x")?he.domain.chainId=parseInt(ye,16):he.domain.chainId=parseInt(ye,10)),he.domain.chainId!==te))throw new JsonRpcError(EA.INVALID_PARAMS,`Invalid chainId, expected ${te}`);return he},signTypedDataV4=async({params:D,method:te,ethSigner:he,rpcProvider:ye,relayerClient:be,guardianClient:ve,flow:we})=>{const _e=D[0],Pe=D[1];if(!_e||!Pe)throw new JsonRpcError(EA.INVALID_PARAMS,`${te} requires an address and a typed data JSON`);const{chainId:Ie}=await ye.detectNetwork(),Re=transformTypedData(Pe,Ie);we.addEvent("endDetectNetwork"),await ve.evaluateEIP712Message({chainID:String(Ie),payload:Re}),we.addEvent("endValidateMessage");const ke=await be.imSignTypedData(_e,Re);we.addEvent("endRelayerSignTypedData");const Oe=await(async(D,te,he,ye,be)=>{const ve={...D.types};delete ve.EIP712Domain;const{_TypedDataEncoder:we}=hf,_e=we.hash(D.domain,ve,D.message),Pe=arrayify$1(keccak256$3(encodeMessageSubDigest(he,ye,_e))),Ie=performance.now(),Re=await be.signMessage(Pe);trackDuration("passport","magicSignMessageTypedData",Math.round(performance.now()-Ie));const ke=await be.getAddress();return packSignatures(Re,ke,te)})(Re,ke,Li.from(Ie),_e,he);return we.addEvent("getSignedTypedData"),Oe},personalSign=async({params:D,ethSigner:te,zkEvmAddress:he,rpcProvider:ye,guardianClient:be,relayerClient:ve,flow:we})=>{const _e=D[0],Pe=D[1];if(!Pe||!_e)throw new JsonRpcError(EA.INVALID_PARAMS,"personal_sign requires an address and a message");if(Pe.toLowerCase()!==he.toLowerCase())throw new JsonRpcError(EA.INVALID_PARAMS,"personal_sign requires the signer to be the from address");const Ie=(D=>{if(!D)return D;try{return toUtf8String$2(stripZeros$1(arrayify$1(D)))}catch(te){return D}})(_e),{chainId:Re}=await ye.detectNetwork();we.addEvent("endDetectNetwork");const ke=(async(D,te,he,ye)=>{const be=hashMessage(te),ve=arrayify$1(keccak256$3(encodeMessageSubDigest(D,ye,be)));return he.signMessage(ve)})(Li.from(Re),Ie,te,Pe);ke.then((()=>we.addEvent("endEOASignature"))),await be.evaluateERC191Message({chainID:Re,payload:Ie}),we.addEvent("endEvaluateERC191Message");const[Oe,xe]=await Promise.all([ke,ve.imSign(Pe,Ie)]);we.addEvent("endRelayerSign");const Be=await te.getAddress();return we.addEvent("endGetEOAAddress"),packSignatures(Oe,Be,xe)},getBaseUrl=D=>{switch(D){case ra.SANDBOX:return"https://api.sandbox.immutable.com";case ra.PRODUCTION:return"https://api.immutable.com";default:throw new Error("Environment not supported")}};let CA;const{getItem:IA,setItem:RA}=ta.localStorage,kA="sessionActivitySendCount",OA="sessionActivityDate",xA={};let NA={};const MA={},syncSendCount=()=>{NA=IA(kA)||{};const D=IA(OA),te=new Date,he=`${te.getFullYear()}-${`${te.getMonth()+1}`.padStart(2,"0")}-${`${te.getDate()}`.padStart(2,"0")}`;D&&D===he||(NA={}),RA(OA,he),RA(kA,NA)};syncSendCount();const trackSessionActivityFn=async D=>{const te=D.flow||qn("passport","sendSessionActivity"),he=D.passportClient;if(!he)throw te.addEvent("No Passport Client ID"),new Error("No Passport Client ID provided");if(MA[he])return void te.addEvent("Existing Delay Early Exit");MA[he]=!0;const{sendTransaction:ye,environment:be}=D;if(!ye)throw new Error("No sendTransaction function provided");if(!be)throw new Error("No environment provided");(D=>{CA||(CA=Kt.create({baseURL:getBaseUrl(D)}))})(be);const ve=D.walletAddress;if(!ve)throw te.addEvent("No Passport Wallet Address"),new Error("No wallet address");let we;try{if(te.addEvent("Fetching details"),we=await async function get(D){if(!CA)throw new Error("Client not initialised");return CA.get("/v1/sdk/session-activity/check",{params:D}).then((D=>D.data)).catch((D=>{if(404!==D.response.status)throw D}))}({clientId:he,wallet:ve,checkCount:xA[he]||0,sendCount:NA[he]||0}),xA[he]++,te.addEvent("Fetched details",{checkCount:xA[he]}),!we)return void te.addEvent("No details found")}catch(D){throw te.addEvent("Failed to fetch details"),new Error("Failed to get details",{cause:D})}if(we&&we.contractAddress&&we.functionName){const ye=(()=>new Xo([`function ${we.functionName}()`]))().encodeFunctionData(we.functionName),be=we.contractAddress;try{te.addEvent("Start Sending Transaction");const we=await D.sendTransaction([{to:be,from:ve,data:ye}],te);(D=>{syncSendCount(),NA[D]||(NA[D]=0),NA[D]++,RA(kA,NA),xA[D]=0})(he),te.addEvent("Transaction Sent",{tx:we})}catch(D){te.addEvent("Failed to send Transaction");const he=new Error("Failed to send transaction",{cause:D});Gn("passport","sessionActivityError",he)}}we&&we.delay&&we.delay>0&&(te.addEvent("Delaying Transaction",{delay:we.delay}),await(async D=>new Promise((te=>{setTimeout(te,1e3*D)})))(we.delay),setTimeout((()=>{te.addEvent("Retrying after Delay"),MA[he]=!1,trackSessionWrapper({...D,flow:te})}),0))},trackSessionWrapper=D=>function errorBoundary$1(D,te){return(...he)=>{try{const ye=D(...he);return ye instanceof Promise?ye.catch((D=>(D instanceof Error&&Gn("passport","sessionActivityError",D),te))):ye}catch(D){return D instanceof Error&&Gn("passport","sessionActivityError",D),te}}}(trackSessionActivityFn)(D).then((()=>{MA[D.passportClient]=!1})),BA=trackSessionWrapper,isZkEvmUser=D=>"zkEvm"in D;class ZkEvmProvider{#a;#i;#s;#o;#c;#d;#u;#f;#l;#p;#h;isPassport=!0;constructor({authManager:D,magicAdapter:te,config:he,multiRollupApiClients:ye,passportEventEmitter:be,guardianClient:ve}){this.#a=D,this.#u=te,this.#i=he,this.#c=ve,this.#o=be,he.jsonRpcReferrer?this.#d=new StaticJsonRpcProvider({url:this.#i.zkEvmRpcUrl,fetchOptions:{referrer:he.jsonRpcReferrer}}):this.#d=new StaticJsonRpcProvider(this.#i.zkEvmRpcUrl),this.#l=new RelayerClient({config:this.#i,rpcProvider:this.#d,authManager:this.#a}),this.#f=ye,this.#s=new TypedEventEmitter,this.#a.getUser().then((D=>{D&&(this.#y(D),isZkEvmUser(D)&&this.#m(D.zkEvm.ethAddress))})).catch((()=>{})),be.on(sA.LOGGED_IN,(D=>{this.#y(D),isZkEvmUser(D)&&this.#m(D.zkEvm.ethAddress)})),be.on(sA.LOGGED_OUT,this.#b),be.on(sA.ACCOUNTS_REQUESTED,BA)}#b=()=>{this.#p=void 0,this.#s.emit(_A.ACCOUNTS_CHANGED,[])};#y(D){const generateSigner=async()=>{const te=await this.#u.login(D.idToken);return new Web3Provider(te).getSigner()};this.#h=void 0,this.#p=new Promise((async D=>{try{D(await generateSigner())}catch(te){this.#h=te,D(void 0)}}))}async#g(){const D=await this.#p;if(void 0===D){if(void 0!==this.#h)throw this.#h;throw new Error("Signer failed to initialise")}return D}async#m(D,te){const he=Li.from(1);this.#o.emit(sA.ACCOUNTS_REQUESTED,{environment:this.#i.baseConfig.environment,sendTransaction:async(te,ye)=>{const be=await this.#g();return await sendTransaction$1({params:te,ethSigner:be,guardianClient:this.#c,rpcProvider:this.#d,relayerClient:this.#l,zkEvmAddress:D,flow:ye,nonceSpace:he})},walletAddress:D,passportClient:te||this.#i.oidcConfiguration.clientId})}async#v(){try{const D=await this.#a.getUser();return D&&isZkEvmUser(D)?D.zkEvm.ethAddress:void 0}catch{return}}async#w(D){switch(D.method){case"eth_requestAccounts":{const D=await this.#v();if(D)return[D];const te=qn("passport","ethRequestAccounts");try{const D=await this.#a.getUserOrLogin();let he;if(te.addEvent("endGetUserOrLogin"),this.#p||this.#y(D),isZkEvmUser(D))he=D.zkEvm.ethAddress;else{te.addEvent("startUserRegistration");const ye=await this.#g();te.addEvent("ethSignerResolved"),he=await async function registerZkEvmUser({authManager:D,ethSigner:te,multiRollupApiClients:he,accessToken:ye,rpcProvider:be,flow:ve}){const we=te.getAddress();we.then((()=>ve.addEvent("endGetAddress")));const _e=signRaw("Only sign this message from Immutable Passport",te);_e.then((()=>ve.addEvent("endSignRaw")));const Pe=be.detectNetwork();Pe.then((()=>ve.addEvent("endDetectNetwork")));const Ie=he.chainsApi.listChains();Ie.then((()=>ve.addEvent("endListChains")));const[Re,ke,Oe,xe]=await Promise.all([we,_e,Pe,Ie]),Be=getEip155ChainId(Oe.chainId),Fe=xe.data?.result?.find((D=>D.id===Be))?.name;if(!Fe)throw new JsonRpcError(EA.INTERNAL_ERROR,`Chain name does not exist on for chain id ${Oe.chainId}`);try{const te=await he.passportApi.createCounterfactualAddressV2({chainName:Fe,createCounterfactualAddressRequest:{ethereum_address:Re,ethereum_signature:ke}},{headers:{Authorization:`Bearer ${ye}`}});return ve.addEvent("endCreateCounterfactualAddress"),D.forceUserRefreshInBackground(),te.data.counterfactual_address}catch(D){throw new JsonRpcError(EA.INTERNAL_ERROR,`Failed to create counterfactual address: ${D}`)}}({ethSigner:ye,authManager:this.#a,multiRollupApiClients:this.#f,accessToken:D.accessToken,rpcProvider:this.#d,flow:te}),te.addEvent("endUserRegistration")}return this.#s.emit(_A.ACCOUNTS_CHANGED,[he]),Wn({passportId:D.profile.sub}),this.#m(he),[he]}catch(D){throw D instanceof Error&&Gn("passport","ethRequestAccounts",D),te.addEvent("errored"),D}finally{te.addEvent("End")}}case"eth_sendTransaction":{const te=await this.#v();if(!te)throw new JsonRpcError(AA.UNAUTHORIZED,"Unauthorised - call eth_requestAccounts first");const he=qn("passport","ethSendTransaction");try{return await this.#c.withConfirmationScreen({width:480,height:720})((async()=>{const ye=await this.#g();return he.addEvent("endGetSigner"),await sendTransaction$1({params:D.params||[],ethSigner:ye,guardianClient:this.#c,rpcProvider:this.#d,relayerClient:this.#l,zkEvmAddress:te,flow:he})}))}catch(D){throw D instanceof Error&&Gn("passport","eth_sendTransaction",D),he.addEvent("errored"),D}finally{he.addEvent("End")}}case"eth_accounts":{const D=await this.#v();return D?[D]:[]}case"personal_sign":{const te=await this.#v();if(!te)throw new JsonRpcError(AA.UNAUTHORIZED,"Unauthorised - call eth_requestAccounts first");const he=qn("passport","personalSign");try{return await this.#c.withConfirmationScreen({width:480,height:720})((async()=>{const ye=await this.#g();if(he.addEvent("endGetSigner"),this.#i.forceScwDeployBeforeMessageSignature){if(!(await getNonce(this.#d,te)).gt(0))return await(async({params:D,ethSigner:te,rpcProvider:he,relayerClient:ye,guardianClient:be,zkEvmAddress:ve,flow:we})=>{const _e={to:ve,value:0},{relayerId:Pe}=await prepareAndSignTransaction({transactionRequest:_e,ethSigner:te,rpcProvider:he,guardianClient:be,relayerClient:ye,zkEvmAddress:ve,flow:we});return be.withConfirmationScreen()((async()=>{const _e=await personalSign({params:D,ethSigner:te,zkEvmAddress:ve,rpcProvider:he,guardianClient:be,relayerClient:ye,flow:we});return await pollRelayerTransaction(ye,Pe,we),_e}))})({params:D.params||[],ethSigner:ye,zkEvmAddress:te,rpcProvider:this.#d,guardianClient:this.#c,relayerClient:this.#l,flow:he})}return await personalSign({params:D.params||[],ethSigner:ye,zkEvmAddress:te,rpcProvider:this.#d,guardianClient:this.#c,relayerClient:this.#l,flow:he})}))}catch(D){throw D instanceof Error&&Gn("passport","personal_sign",D),he.addEvent("errored"),D}finally{he.addEvent("End")}}case"eth_signTypedData":case"eth_signTypedData_v4":{if(!await this.#v())throw new JsonRpcError(AA.UNAUTHORIZED,"Unauthorised - call eth_requestAccounts first");const te=qn("passport","ethSignTypedDataV4");try{return await this.#c.withConfirmationScreen({width:480,height:720})((async()=>{const he=await this.#g();return te.addEvent("endGetSigner"),await signTypedDataV4({method:D.method,params:D.params||[],ethSigner:he,rpcProvider:this.#d,relayerClient:this.#l,guardianClient:this.#c,flow:te})}))}catch(D){throw D instanceof Error&&Gn("passport","eth_signTypedData",D),te.addEvent("errored"),D}finally{te.addEvent("End")}}case"eth_chainId":{const{chainId:D}=await this.#d.detectNetwork();return hexlify$2(D)}case"eth_getBalance":case"eth_getCode":case"eth_getTransactionCount":{const[te,he]=D.params||[];return this.#d.send(D.method,[te,he||"latest"])}case"eth_getStorageAt":{const[te,he,ye]=D.params||[];return this.#d.send(D.method,[te,he,ye||"latest"])}case"eth_call":case"eth_estimateGas":{const[te,he]=D.params||[];return this.#d.send(D.method,[te,he||"latest"])}case"eth_gasPrice":case"eth_blockNumber":case"eth_getBlockByHash":case"eth_getBlockByNumber":case"eth_getTransactionByHash":case"eth_getTransactionReceipt":return this.#d.send(D.method,D.params||[]);case"im_signEjectionTransaction":{const te=await this.#v();if(!te)throw new JsonRpcError(AA.UNAUTHORIZED,"Unauthorised - call eth_requestAccounts first");const he=qn("passport","imSignEjectionTransaction");try{const ye=await this.#g();return he.addEvent("endGetSigner"),await(async({params:D,ethSigner:te,zkEvmAddress:he,flow:ye})=>{if(!D||1!==D.length)throw new JsonRpcError(EA.INVALID_PARAMS,"im_signEjectionTransaction requires a singular param (hash)");const be=D[0];return await prepareAndSignEjectionTransaction({transactionRequest:be,ethSigner:te,zkEvmAddress:he,flow:ye})})({params:D.params||[],ethSigner:ye,zkEvmAddress:te,flow:he})}catch(D){throw D instanceof Error&&Gn("passport","imSignEjectionTransaction",D),he.addEvent("errored"),D}finally{he.addEvent("End")}}case"im_addSessionActivity":{const[te]=D.params||[],he=await this.#v();return he&&this.#m(he,te),null}default:throw new JsonRpcError(AA.UNSUPPORTED_METHOD,"Method not supported")}}async#_(D){const{id:te,jsonrpc:he}=D;try{return{id:te,jsonrpc:he,result:await this.#w(D)}}catch(D){let ye;return ye=D instanceof JsonRpcError?D:D instanceof Error?new JsonRpcError(EA.INTERNAL_ERROR,D.message):new JsonRpcError(EA.INTERNAL_ERROR,"Internal error"),{id:te,jsonrpc:he,error:ye}}}async request(D){try{return this.#w(D)}catch(D){if(D instanceof JsonRpcError)throw D;if(D instanceof Error)throw new JsonRpcError(EA.INTERNAL_ERROR,D.message);throw new JsonRpcError(EA.INTERNAL_ERROR,"Internal error")}}sendAsync(D,te){if(!te)throw new Error("No callback provided");Array.isArray(D)?Promise.all(D.map(this.#_)).then((D=>{te(null,D)})).catch((D=>{te(D,[])})):this.#_(D).then((D=>{te(null,D)})).catch((D=>{te(D,null)}))}async send(D,te,he){if("string"==typeof D)return"function"==typeof te?this.sendAsync({method:D,params:[]},te):he?this.sendAsync({method:D,params:Array.isArray(te)?te:[]},he):this.request({method:D,params:Array.isArray(te)?te:[]});if("function"==typeof te)return this.sendAsync(D,te);if(!Array.isArray(D)&&"object"==typeof D)return this.#_(D);throw new JsonRpcError(EA.INVALID_REQUEST,"Invalid request")}on(D,te){this.#s.on(D,te)}removeListener(D,te){this.#s.removeListener(D,te)}}const FA={icon:'data:image/svg+xml,<svg viewBox="0 0 48 48" class="SvgIcon undefined Logo Logo--PassportSymbolOutlined css-1dn9atd" xmlns="http://www.w3.org/2000/svg"><g data-testid="undefined__g"><circle cx="24" cy="24" r="22.5" fill="url(%23paint0_radial_6324_83922)"></circle><circle cx="24" cy="24" r="22.5" fill="url(%23paint1_radial_6324_83922)"></circle><path d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM23.0718 9.16608C23.7383 8.83951 24.4406 8.86188 25.087 9.2287C27.3282 10.5059 29.5627 11.7942 31.786 13.096C32.5018 13.5165 32.8686 14.1897 32.8708 15.0173C32.8843 17.9184 32.8798 20.8171 32.8708 23.7182C32.8708 23.8255 32.8015 23.9821 32.7143 24.0335C31.8531 24.548 30.9808 25.0423 30.0347 25.5881V25.1318C30.0347 22.148 30.0257 19.1664 30.0414 16.1827C30.0436 15.6101 29.8468 15.241 29.339 14.9525C26.7377 13.474 24.1499 11.9687 21.5575 10.4723C21.4457 10.4075 21.3361 10.3381 21.1661 10.2352C21.8326 9.85722 22.4321 9.47698 23.0673 9.16608H23.0718ZM22.5953 38.8451C22.45 38.7713 22.3426 38.7198 22.2375 38.6595C18.8041 36.68 15.3752 34.687 11.9307 32.7232C10.9644 32.173 10.5238 31.3879 10.5349 30.2852C10.5551 27.9411 10.5484 25.597 10.5372 23.2507C10.5327 22.1927 10.9622 21.4255 11.8926 20.8977C14.3105 19.5221 16.715 18.1264 19.1195 16.7284C19.3275 16.6076 19.4796 16.5875 19.6965 16.7172C20.5264 17.216 21.3719 17.6924 22.2554 18.2024C22.0876 18.3031 21.9601 18.3791 21.8304 18.4552C19.2268 19.9582 16.6278 21.4658 14.0175 22.9599C13.5903 23.2037 13.3912 23.5213 13.3957 24.0179C13.4091 25.8654 13.4114 27.713 13.3957 29.5605C13.3912 30.0705 13.5948 30.3948 14.0332 30.6453C16.7866 32.2199 19.5288 33.8125 22.28 35.3916C22.5126 35.5258 22.611 35.6645 22.6065 35.9418C22.5864 36.888 22.5998 37.8363 22.5998 38.8473L22.5953 38.8451ZM22.5953 33.553C22.356 33.4166 22.1838 33.3204 22.0116 33.2198C19.8285 31.9605 17.6477 30.6967 15.4602 29.4464C15.2231 29.3122 15.1359 29.1668 15.1381 28.8917C15.1538 27.4714 15.1471 26.0511 15.1426 24.6308C15.1426 24.4384 15.1717 24.3064 15.3618 24.1991C16.167 23.7495 16.9633 23.2798 17.7618 22.8212C17.8199 22.7877 17.8826 22.7631 17.9877 22.7116V24.3064C17.9877 25.1698 18.0011 26.0354 17.9832 26.8988C17.972 27.3909 18.1622 27.7241 18.5916 27.9657C19.8285 28.6636 21.0498 29.3883 22.2867 30.0839C22.5305 30.2203 22.6043 30.3724 22.5998 30.6408C22.5842 31.5847 22.5931 32.5308 22.5931 33.5508L22.5953 33.553ZM20.0746 14.91C19.6116 14.6371 19.2157 14.6393 18.7527 14.91C16.1581 16.4265 13.5523 17.9228 10.9487 19.4259C10.8391 19.4908 10.7251 19.5489 10.5305 19.6541C10.5998 18.6654 10.3873 17.7327 10.7251 16.8291C10.9085 16.3348 11.2529 15.9635 11.7092 15.6995C13.8811 14.4447 16.0507 13.1877 18.227 11.9396C19.0211 11.4833 19.8308 11.4945 20.6248 11.953C23.0964 13.3756 25.5657 14.8026 28.0306 16.2341C28.1357 16.2945 28.2677 16.4309 28.2677 16.5338C28.2856 17.5493 28.2788 18.567 28.2788 19.6563C27.3819 19.1396 26.5543 18.6609 25.7267 18.1823C23.8412 17.093 21.9512 16.0149 20.0746 14.91ZM37.4427 30.8779C37.3778 31.6764 36.9103 32.2423 36.2192 32.6404C33.5732 34.1614 30.9294 35.6913 28.2856 37.2168C27.4557 37.6954 26.6259 38.1741 25.7938 38.6527C25.6932 38.7109 25.5903 38.7601 25.4539 38.8317C25.4449 38.693 25.4337 38.5924 25.4337 38.4917C25.4337 37.6149 25.4382 36.7404 25.4293 35.8636C25.4293 35.6645 25.4762 35.5437 25.6596 35.4386C29.5157 33.2198 33.3696 30.9942 37.2212 28.7709C37.2794 28.7374 37.3443 28.7105 37.4539 28.6591C37.4539 29.4375 37.4986 30.1622 37.4427 30.8779ZM37.4628 25.3577C37.4561 26.2658 36.9663 26.9033 36.1901 27.3506C33.175 29.0841 30.1622 30.8265 27.1493 32.5666C26.5991 32.8842 26.0466 33.1996 25.4561 33.5396C25.4472 33.3897 25.436 33.2913 25.436 33.1907C25.436 32.3273 25.4449 31.4617 25.4293 30.5983C25.4248 30.3523 25.5075 30.2226 25.72 30.0995C28.46 28.5271 31.1911 26.9368 33.9355 25.3733C34.4231 25.096 34.6378 24.7538 34.6334 24.1812C34.6132 21.1974 34.6244 18.2136 34.6244 15.2298V14.7087C35.3402 15.1404 36.0112 15.496 36.624 15.9299C37.1832 16.3258 37.465 16.9253 37.4673 17.6164C37.4762 20.1976 37.4829 22.7788 37.465 25.3599L37.4628 25.3577Z" fill="%230D0D0D"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint2_radial_6324_83922)"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint3_radial_6324_83922)"></path><defs><radialGradient id="paint0_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.4442 13.3899) rotate(44.9817) scale(46.7487 99.1435)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint1_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.9515 43.7068) rotate(84.265) scale(24.2138 46.3215)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient><radialGradient id="paint2_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.7405 12.6825) rotate(44.9817) scale(49.8653 105.753)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint3_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(26.0816 45.0206) rotate(84.265) scale(25.828 49.4096)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient></defs></g></svg>',name:"Immutable Passport",rdns:"com.immutable.passport",uuid:v4()};const buildImxApiClients=D=>{if(D.overrides?.imxApiClients)return D.overrides.imxApiClients;const te=(D=>D.overrides?createConfig$1({basePath:D.overrides.imxPublicApiDomain}):D.baseConfig.environment===ra.SANDBOX?imxApiConfig_getSandbox():imxApiConfig_getProduction())(D);return new ImxApiClients(te)};var DA=Object.freeze({__proto__:null,JsonRpcError:JsonRpcError,Passport:class Passport{authManager;config;confirmationScreen;immutableXClient;magicAdapter;multiRollupApiClients;passportImxProviderFactory;passportEventEmitter;guardianClient;constructor(D){const te=(D=>{const te=new PassportConfiguration(D),he=new AuthManager(te),ye=new MagicAdapter(te),be=new ConfirmationScreen(te),ve=new MultiRollupApiClients(te.multiRollupConfig),we=new TypedEventEmitter,_e=D.overrides?D.overrides.immutableXClient:new IMXClient({baseConfig:D.baseConfig}),Pe=new GuardianClient({confirmationScreen:be,config:te,authManager:he,guardianApi:ve.guardianApi}),Ie=buildImxApiClients(D);return{config:te,authManager:he,magicAdapter:ye,confirmationScreen:be,immutableXClient:_e,multiRollupApiClients:ve,passportEventEmitter:we,passportImxProviderFactory:new PassportImxProviderFactory({authManager:he,immutableXClient:_e,magicAdapter:ye,passportEventEmitter:we,imxApiClients:Ie,guardianClient:Pe}),guardianClient:Pe}})(D);this.config=te.config,this.authManager=te.authManager,this.magicAdapter=te.magicAdapter,this.confirmationScreen=te.confirmationScreen,this.immutableXClient=te.immutableXClient,this.multiRollupApiClients=te.multiRollupApiClients,this.passportEventEmitter=te.passportEventEmitter,this.passportImxProviderFactory=te.passportImxProviderFactory,this.guardianClient=te.guardianClient,Jn(D.clientId),Ln("passport","initialise")}async connectImxSilent(){return withMetricsAsync((()=>this.passportImxProviderFactory.getProviderSilent()),"connectImxSilent")}async connectImx(){return withMetricsAsync((()=>this.passportImxProviderFactory.getProvider()),"connectImx")}connectEvm(D={announceProvider:!0}){return withMetrics((()=>{const te=new ZkEvmProvider({passportEventEmitter:this.passportEventEmitter,authManager:this.authManager,magicAdapter:this.magicAdapter,config:this.config,multiRollupApiClients:this.multiRollupApiClients,guardianClient:this.guardianClient});return D?.announceProvider&&function announceProvider(D){if("undefined"==typeof window)return;const te=new CustomEvent("eip6963:announceProvider",{detail:Object.freeze(D)});window.dispatchEvent(te),window.addEventListener("eip6963:requestProvider",(()=>window.dispatchEvent(te)))}({info:FA,provider:te}),te}),"connectEvm")}async login(D){return withMetricsAsync((async()=>{const{useCachedSession:te=!1,useSilentLogin:he}=D||{};let ye=null;try{ye=await this.authManager.getUser()}catch(D){if(D instanceof Error&&!D.message.includes("Unknown or invalid refresh token")&&Gn("passport","login",D),te)throw D;logger$f_warn("Failed to retrieve a cached user session",D)}return!ye&&he?ye=await this.authManager.forceUserRefresh():ye||te||(ye=await this.authManager.login(D?.anonymousId)),ye&&(Wn({passportId:ye.profile.sub}),this.passportEventEmitter.emit(sA.LOGGED_IN,ye)),ye?ye.profile:null}),"login")}async loginCallback(){return withMetricsAsync((()=>this.authManager.loginCallback()),"loginCallback")}async loginWithDeviceFlow(D){return withMetricsAsync((()=>this.authManager.loginWithDeviceFlow(D?.anonymousId)),"loginWithDeviceFlow")}async loginWithDeviceFlowCallback(D,te,he){return withMetricsAsync((async()=>{const ye=await this.authManager.loginWithDeviceFlowCallback(D,te,he);return this.passportEventEmitter.emit(sA.LOGGED_IN,ye),ye.profile}),"loginWithDeviceFlowCallback")}loginWithPKCEFlow(){return withMetrics((()=>this.authManager.getPKCEAuthorizationUrl()),"loginWithPKCEFlow")}async loginWithPKCEFlowCallback(D,te){return withMetricsAsync((async()=>{const he=await this.authManager.loginWithPKCEFlowCallback(D,te);return this.passportEventEmitter.emit(sA.LOGGED_IN,he),he.profile}),"loginWithPKCEFlowCallback")}async logout(){return withMetricsAsync((async()=>{"silent"===this.config.oidcConfiguration.logoutMode?await Promise.allSettled([this.authManager.logout(),this.magicAdapter.logout()]):(await this.magicAdapter.logout(),await this.authManager.logout()),this.passportEventEmitter.emit(sA.LOGGED_OUT)}),"logout")}async logoutDeviceFlow(){return withMetricsAsync((async()=>(await this.authManager.removeUser(),await this.magicAdapter.logout(),this.passportEventEmitter.emit(sA.LOGGED_OUT),await this.authManager.getDeviceFlowEndSessionEndpoint())),"logoutDeviceFlow")}async logoutSilentCallback(D){return withMetricsAsync((()=>this.authManager.logoutSilentCallback(D)),"logoutSilentCallback")}async getUserInfo(){return withMetricsAsync((async()=>{const D=await this.authManager.getUser();return D?.profile}),"getUserInfo")}async getIdToken(){return withMetricsAsync((async()=>{const D=await this.authManager.getUser();return D?.idToken}),"getIdToken")}async getAccessToken(){return withMetricsAsync((async()=>{const D=await this.authManager.getUser();return D?.accessToken}),"getAccessToken")}async getLinkedAddresses(){return withMetricsAsync((async()=>{const D=await this.authManager.getUser();if(!D?.profile.sub)return[];const te={Authorization:`Bearer ${D.accessToken}`};return(await this.multiRollupApiClients.passportProfileApi.getUserInfo({headers:te})).data.linked_addresses}),"getLinkedAddresses")}async linkExternalWallet(D){const te=qn("passport","linkExternalWallet"),he=await this.authManager.getUser();if(!he)throw new PassportError("User is not logged in",rA.NOT_LOGGED_IN_ERROR);const ye=isUserImx(he),be=isUserZkEvm(he);if(!ye&&!be)throw new PassportError("User has not been registered",rA.USER_NOT_REGISTERED_ERROR);const ve={Authorization:`Bearer ${he.accessToken}`},we={type:D.type,wallet_address:D.walletAddress,signature:D.signature,nonce:D.nonce};try{return{...(await this.multiRollupApiClients.passportProfileApi.linkWalletV2({linkWalletV2Request:we},{headers:ve})).data}}catch(D){if(D instanceof Error&&Gn("passport","linkExternalWallet",D),te.addEvent("errored"),jr(D)&&D.response)if(D.response.data&&isAPIError(D.response.data)){const{code:te,message:he}=D.response.data;switch(te){case"ALREADY_LINKED":throw new PassportError(he,rA.LINK_WALLET_ALREADY_LINKED_ERROR);case"MAX_WALLETS_LINKED":throw new PassportError(he,rA.LINK_WALLET_MAX_WALLETS_LINKED_ERROR);case"DUPLICATE_NONCE":throw new PassportError(he,rA.LINK_WALLET_DUPLICATE_NONCE_ERROR);case"VALIDATION_ERROR":throw new PassportError(he,rA.LINK_WALLET_VALIDATION_ERROR);default:throw new PassportError(he,rA.LINK_WALLET_GENERIC_ERROR)}}else if(D.response.status)throw new PassportError(`Link wallet request failed with status code ${D.response.status}`,rA.LINK_WALLET_GENERIC_ERROR);let he="Link wallet request failed";throw D instanceof Error&&(he+=`: ${D.message}`),new PassportError(he,rA.LINK_WALLET_GENERIC_ERROR)}finally{te.addEvent("End")}}},PassportError:PassportError,get ProviderErrorCode(){return AA},get ProviderEvent(){return _A},get RpcErrorCode(){return EA}}),LA=getDefaultExportFromCjs$1("object"==typeof self?self.FormData:window.FormData);const UA="6.11.1";function _assertClassBrand(D,te,he){if("function"==typeof D?D===te:D.has(te))return arguments.length<3?te:he;throw new TypeError("Private element is not present on this object")}function _classPrivateFieldGet2(D,te){return D.get(_assertClassBrand(D,te))}function _classPrivateFieldSet2(D,te,he){return D.set(_assertClassBrand(D,te),he),he}function _toPropertyKey(D){var te=function _toPrimitive(D,te){if("object"!=typeof D||!D)return D;var he=D[Symbol.toPrimitive];if(void 0!==he){var ye=he.call(D,te||"default");if("object"!=typeof ye)return ye;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===te?String:Number)(D)}(D,"string");return"symbol"==typeof te?te:te+""}function _defineProperty(D,te,he){return(te=_toPropertyKey(te))in D?Object.defineProperty(D,te,{value:he,enumerable:!0,configurable:!0,writable:!0}):D[te]=he,D}function _checkPrivateRedeclaration(D,te){if(te.has(D))throw new TypeError("Cannot initialize the same private elements twice on an object")}function _classPrivateFieldInitSpec(D,te,he){_checkPrivateRedeclaration(D,te),te.set(D,he)}function _classPrivateMethodInitSpec(D,te){_checkPrivateRedeclaration(D,te),te.add(D)}function checkType(D,te,he){const ye=te.split("|").map((D=>D.trim()));for(let he=0;he<ye.length;he++)switch(te){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof D===te)return}const be=new Error(`invalid value for type ${te}`);throw be.code="INVALID_ARGUMENT",be.argument=`value.${he}`,be.value=D,be}async function resolveProperties$1(D){const te=Object.keys(D);return(await Promise.all(te.map((te=>Promise.resolve(D[te]))))).reduce(((D,he,ye)=>(D[te[ye]]=he,D)),{})}function defineProperties(D,te,he){for(let ye in te){let be=te[ye];const ve=he?he[ye]:null;ve&&checkType(be,ve,ye),Object.defineProperty(D,ye,{enumerable:!0,value:be,writable:!1})}}function stringify(D){if(null==D)return"null";if(Array.isArray(D))return"[ "+D.map(stringify).join(", ")+" ]";if(D instanceof Uint8Array){const te="0123456789abcdef";let he="0x";for(let ye=0;ye<D.length;ye++)he+=te[D[ye]>>4],he+=te[15&D[ye]];return he}if("object"==typeof D&&"function"==typeof D.toJSON)return stringify(D.toJSON());switch(typeof D){case"boolean":case"symbol":case"number":return D.toString();case"bigint":return BigInt(D).toString();case"string":return JSON.stringify(D);case"object":{const te=Object.keys(D);return te.sort(),"{ "+te.map((te=>`${stringify(te)}: ${stringify(D[te])}`)).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function isError(D,te){return D&&D.code===te}function isCallException(D){return isError(D,"CALL_EXCEPTION")}function makeError(D,te,he){let ye,be=D;{const ye=[];if(he){if("message"in he||"code"in he||"name"in he)throw new Error(`value will overwrite populated values: ${stringify(he)}`);for(const D in he){if("shortMessage"===D)continue;const te=he[D];ye.push(D+"="+stringify(te))}}ye.push(`code=${te}`),ye.push(`version=${UA}`),ye.length&&(D+=" ("+ye.join(", ")+")")}switch(te){case"INVALID_ARGUMENT":ye=new TypeError(D);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":ye=new RangeError(D);break;default:ye=new Error(D)}return defineProperties(ye,{code:te}),he&&Object.assign(ye,he),null==ye.shortMessage&&defineProperties(ye,{shortMessage:be}),ye}function assert(D,te,he,ye){if(!D)throw makeError(te,he,ye)}function assertArgument(D,te,he,ye){assert(D,te,"INVALID_ARGUMENT",{argument:he,value:ye})}function assertArgumentCount(D,te,he){null==he&&(he=""),he&&(he=": "+he),assert(D>=te,"missing arguemnt"+he,"MISSING_ARGUMENT",{count:D,expectedCount:te}),assert(D<=te,"too many arguments"+he,"UNEXPECTED_ARGUMENT",{count:D,expectedCount:te})}function assertPrivate(D,te,he){if(null==he&&(he=""),D!==te){let D=he,te="new";he&&(D+=".",te+=" "+he),assert(!1,`private constructor; use ${D}from* methods`,"UNSUPPORTED_OPERATION",{operation:te})}}function _getBytes(D,te,he){if(D instanceof Uint8Array)return he?new Uint8Array(D):D;if("string"==typeof D&&D.match(/^0x([0-9a-f][0-9a-f])*$/i)){const te=new Uint8Array((D.length-2)/2);let he=2;for(let ye=0;ye<te.length;ye++)te[ye]=parseInt(D.substring(he,he+2),16),he+=2;return te}assertArgument(!1,"invalid BytesLike value",te||"value",D)}function getBytes(D,te){return _getBytes(D,te,!1)}function getBytesCopy(D,te){return _getBytes(D,te,!0)}function isHexString$1(D,te){return!("string"!=typeof D||!D.match(/^0x[0-9A-Fa-f]*$/))&&(("number"!=typeof te||D.length===2+2*te)&&(!0!==te||D.length%2==0))}["NFD","NFC","NFKD","NFKC"].reduce(((D,te)=>{try{if("test"!=="test".normalize(te))throw new Error("bad");if("NFD"===te){const D=String.fromCharCode(233).normalize("NFD");if(D!==String.fromCharCode(101,769))throw new Error("broken")}D.push(te)}catch(D){}return D}),[]);const $A="0123456789abcdef";function hexlify$1(D){const te=getBytes(D);let he="0x";for(let D=0;D<te.length;D++){const ye=te[D];he+=$A[(240&ye)>>4]+$A[15&ye]}return he}function concat$1(D){return"0x"+D.map((D=>hexlify$1(D).substring(2))).join("")}function dataLength(D){return isHexString$1(D,!0)?(D.length-2)/2:getBytes(D).length}function dataSlice(D,te,he){const ye=getBytes(D);return null!=he&&he>ye.length&&assert(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:ye,length:ye.length,offset:he}),hexlify$1(ye.slice(null==te?0:te,null==he?ye.length:he))}function zeroPad$1(D,te,he){const ye=getBytes(D);assert(te>=ye.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(ye),length:te,offset:te+1});const be=new Uint8Array(te);return be.fill(0),he?be.set(ye,te-ye.length):be.set(ye,0),hexlify$1(be)}function zeroPadValue(D,te){return zeroPad$1(D,te,!0)}const qA=BigInt(0),GA=BigInt(1),jA=9007199254740991;function toTwos(D,te){let he=getBigInt(D,"value");const ye=BigInt(getNumber(te,"width")),be=GA<<ye-GA;if(he<qA){he=-he,assert(he<=be,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:D});return(~he&(GA<<ye)-GA)+GA}return assert(he<be,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:D}),he}function mask(D,te){const he=getUint(D,"value"),ye=BigInt(getNumber(te,"bits"));return he&(GA<<ye)-GA}function getBigInt(D,te){switch(typeof D){case"bigint":return D;case"number":return assertArgument(Number.isInteger(D),"underflow",te||"value",D),assertArgument(D>=-jA&&D<=jA,"overflow",te||"value",D),BigInt(D);case"string":try{if(""===D)throw new Error("empty string");return"-"===D[0]&&"-"!==D[1]?-BigInt(D.substring(1)):BigInt(D)}catch(he){assertArgument(!1,`invalid BigNumberish string: ${he.message}`,te||"value",D)}}assertArgument(!1,"invalid BigNumberish value",te||"value",D)}function getUint(D,te){const he=getBigInt(D,te);return assert(he>=qA,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:D}),he}const HA="0123456789abcdef";function toBigInt(D){if(D instanceof Uint8Array){let te="0x0";for(const he of D)te+=HA[he>>4],te+=HA[15&he];return BigInt(te)}return getBigInt(D)}function getNumber(D,te){switch(typeof D){case"bigint":return assertArgument(D>=-jA&&D<=jA,"overflow",te||"value",D),Number(D);case"number":return assertArgument(Number.isInteger(D),"underflow",te||"value",D),assertArgument(D>=-jA&&D<=jA,"overflow",te||"value",D),D;case"string":try{if(""===D)throw new Error("empty string");return getNumber(BigInt(D),te)}catch(he){assertArgument(!1,`invalid numeric string: ${he.message}`,te||"value",D)}}assertArgument(!1,"invalid numeric value",te||"value",D)}function toBeHex(D,te){let he=getUint(D,"value").toString(16);if(null==te)he.length%2&&(he="0"+he);else{const ye=getNumber(te,"width");for(assert(2*ye>=he.length,`value exceeds width (${ye} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:D});he.length<2*ye;)he="0"+he}return"0x"+he}function toBeArray(D){const te=getUint(D,"value");if(te===qA)return new Uint8Array([]);let he=te.toString(16);he.length%2&&(he="0"+he);const ye=new Uint8Array(he.length/2);for(let D=0;D<ye.length;D++){const te=2*D;ye[D]=parseInt(he.substring(te,te+2),16)}return ye}function toQuantity(D){let te=hexlify$1(function isBytesLike$1(D){return isHexString$1(D,!0)||D instanceof Uint8Array}(D)?D:toBeArray(D)).substring(2);for(;te.startsWith("0");)te=te.substring(1);return""===te&&(te="0"),"0x"+te}const zA="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";BigInt(0);const WA=BigInt(58);var VA=new WeakMap;class EventPayload{constructor(D,te,he){_defineProperty(this,"filter",void 0),_defineProperty(this,"emitter",void 0),_classPrivateFieldInitSpec(this,VA,void 0),_classPrivateFieldSet2(VA,this,te),defineProperties(this,{emitter:D,filter:he})}async removeListener(){null!=_classPrivateFieldGet2(VA,this)&&await this.emitter.off(this.filter,_classPrivateFieldGet2(VA,this))}}function ignoreFunc$1(D,te,he,ye,be){if("BAD_PREFIX"===D||"UNEXPECTED_CONTINUE"===D){let D=0;for(let ye=te+1;ye<he.length&&he[ye]>>6==2;ye++)D++;return D}return"OVERRUN"===D?he.length-te-1:0}const KA=Object.freeze({error:function errorFunc$1(D,te,he,ye,be){assertArgument(!1,`invalid codepoint at offset ${te}; ${D}`,"bytes",he)},ignore:ignoreFunc$1,replace:function replaceFunc$1(D,te,he,ye,be){return"OVERLONG"===D?(assertArgument("number"==typeof be,"invalid bad code point for replacement","badCodepoint",be),ye.push(be),0):(ye.push(65533),ignoreFunc$1(D,te,he))}});function toUtf8Bytes$1(D,te){assertArgument("string"==typeof D,"invalid string value","str",D);let he=[];for(let te=0;te<D.length;te++){const ye=D.charCodeAt(te);if(ye<128)he.push(ye);else if(ye<2048)he.push(ye>>6|192),he.push(63&ye|128);else if(55296==(64512&ye)){te++;const be=D.charCodeAt(te);assertArgument(te<D.length&&56320==(64512&be),"invalid surrogate pair","str",D);const ve=65536+((1023&ye)<<10)+(1023&be);he.push(ve>>18|240),he.push(ve>>12&63|128),he.push(ve>>6&63|128),he.push(63&ve|128)}else he.push(ye>>12|224),he.push(ye>>6&63|128),he.push(63&ye|128)}return new Uint8Array(he)}function toUtf8String$1(D,te){return function _toUtf8String$1(D){return D.map((D=>D<=65535?String.fromCharCode(D):(D-=65536,String.fromCharCode(55296+(D>>10&1023),56320+(1023&D))))).join("")}(function getUtf8CodePoints$1(D,te){null==te&&(te=KA.error);const he=getBytes(D,"bytes"),ye=[];let be=0;for(;be<he.length;){const D=he[be++];if(D>>7==0){ye.push(D);continue}let ve=null,we=null;if(192==(224&D))ve=1,we=127;else if(224==(240&D))ve=2,we=2047;else{if(240!=(248&D)){be+=te(128==(192&D)?"UNEXPECTED_CONTINUE":"BAD_PREFIX",be-1,he,ye);continue}ve=3,we=65535}if(be-1+ve>=he.length){be+=te("OVERRUN",be-1,he,ye);continue}let _e=D&(1<<8-ve-1)-1;for(let D=0;D<ve;D++){let D=he[be];if(128!=(192&D)){be+=te("MISSING_CONTINUE",be,he,ye),_e=null;break}_e=_e<<6|63&D,be++}null!==_e&&(_e>1114111?be+=te("OUT_OF_RANGE",be-1-ve,he,ye,_e):_e>=55296&&_e<=57343?be+=te("UTF16_SURROGATE",be-1-ve,he,ye,_e):_e<=we?be+=te("OVERLONG",be-1-ve,he,ye,_e):ye.push(_e))}return ye}(D,te))}function createGetUrl(D){return async function getUrl(D,te){const he=D.url.split(":")[0].toLowerCase();let ye;if(assert("http"===he||"https"===he,`unsupported protocol ${he}`,"UNSUPPORTED_OPERATION",{info:{protocol:he},operation:"request"}),assert("https"===he||!D.credentials||D.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"}),te){const D=new AbortController;ye=D.signal,te.addListener((()=>{D.abort()}))}const be={method:D.method,headers:new Headers(Array.from(D)),body:D.body||void 0,signal:ye},ve=await fetch(D.url,be),we={};ve.headers.forEach(((D,te)=>{we[te.toLowerCase()]=D}));const _e=await ve.arrayBuffer(),Pe=null==_e?null:new Uint8Array(_e);return{statusCode:ve.status,statusMessage:ve.statusText,headers:we,body:Pe}}}let JA=createGetUrl();const XA=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),QA=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let ZA=!1;async function dataGatewayFunc(D,te){try{const te=D.match(XA);if(!te)throw new Error("invalid data");return new FetchResponse(200,"OK",{"content-type":te[1]||"text/plain"},te[2]?function decodeBase64(D){D=atob(D);const te=new Uint8Array(D.length);for(let he=0;he<D.length;he++)te[he]=D.charCodeAt(he);return getBytes(te)}(te[3]):function unpercent(D){return toUtf8Bytes$1(D.replace(/%([0-9a-f][0-9a-f])/gi,((D,te)=>String.fromCharCode(parseInt(te,16)))))}(te[3]))}catch(te){return new FetchResponse(599,"BAD REQUEST (invalid data: URI)",{},null,new FetchRequest(D))}}function getIpfsGatewayFunc(D){return async function gatewayIpfs(te,he){try{const he=te.match(QA);if(!he)throw new Error("invalid link");return new FetchRequest(`${D}${he[2]}`)}catch(D){return new FetchResponse(599,"BAD REQUEST (invalid IPFS URI)",{},null,new FetchRequest(te))}}}const YA={data:dataGatewayFunc,ipfs:getIpfsGatewayFunc("https://gateway.ipfs.io/ipfs/")},eE=new WeakMap;var tE=new WeakMap,rE=new WeakMap;class FetchCancelSignal{constructor(D){_classPrivateFieldInitSpec(this,tE,void 0),_classPrivateFieldInitSpec(this,rE,void 0),_classPrivateFieldSet2(tE,this,[]),_classPrivateFieldSet2(rE,this,!1),eE.set(D,(()=>{if(!_classPrivateFieldGet2(rE,this)){_classPrivateFieldSet2(rE,this,!0);for(const D of _classPrivateFieldGet2(tE,this))setTimeout((()=>{D()}),0);_classPrivateFieldSet2(tE,this,[])}}))}addListener(D){assert(!_classPrivateFieldGet2(rE,this),"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),_classPrivateFieldGet2(tE,this).push(D)}get cancelled(){return _classPrivateFieldGet2(rE,this)}checkSignal(){assert(!this.cancelled,"cancelled","CANCELLED",{})}}function checkSignal(D){if(null==D)throw new Error("missing signal; should not happen");return D.checkSignal(),D}var nE=new WeakMap,aE=new WeakMap,iE=new WeakMap,sE=new WeakMap,oE=new WeakMap,cE=new WeakMap,dE=new WeakMap,uE=new WeakMap,fE=new WeakMap,lE=new WeakMap,pE=new WeakMap,hE=new WeakMap,yE=new WeakMap,mE=new WeakMap,bE=new WeakMap,gE=new WeakSet;class FetchRequest{get url(){return _classPrivateFieldGet2(cE,this)}set url(D){_classPrivateFieldSet2(cE,this,String(D))}get body(){return null==_classPrivateFieldGet2(dE,this)?null:new Uint8Array(_classPrivateFieldGet2(dE,this))}set body(D){if(null==D)_classPrivateFieldSet2(dE,this,void 0),_classPrivateFieldSet2(uE,this,void 0);else if("string"==typeof D)_classPrivateFieldSet2(dE,this,toUtf8Bytes$1(D)),_classPrivateFieldSet2(uE,this,"text/plain");else if(D instanceof Uint8Array)_classPrivateFieldSet2(dE,this,D),_classPrivateFieldSet2(uE,this,"application/octet-stream");else{if("object"!=typeof D)throw new Error("invalid body");_classPrivateFieldSet2(dE,this,toUtf8Bytes$1(JSON.stringify(D))),_classPrivateFieldSet2(uE,this,"application/json")}}hasBody(){return null!=_classPrivateFieldGet2(dE,this)}get method(){return _classPrivateFieldGet2(sE,this)?_classPrivateFieldGet2(sE,this):this.hasBody()?"POST":"GET"}set method(D){null==D&&(D=""),_classPrivateFieldSet2(sE,this,String(D).toUpperCase())}get headers(){const D=Object.assign({},_classPrivateFieldGet2(iE,this));return _classPrivateFieldGet2(fE,this)&&(D.authorization=`Basic ${function encodeBase64(D){const te=getBytes(D);let he="";for(let D=0;D<te.length;D++)he+=String.fromCharCode(te[D]);return btoa(he)}(toUtf8Bytes$1(_classPrivateFieldGet2(fE,this)))}`),this.allowGzip&&(D["accept-encoding"]="gzip"),null==D["content-type"]&&_classPrivateFieldGet2(uE,this)&&(D["content-type"]=_classPrivateFieldGet2(uE,this)),this.body&&(D["content-length"]=String(this.body.length)),D}getHeader(D){return this.headers[D.toLowerCase()]}setHeader(D,te){_classPrivateFieldGet2(iE,this)[String(D).toLowerCase()]=String(te)}clearHeaders(){_classPrivateFieldSet2(iE,this,{})}[Symbol.iterator](){const D=this.headers,te=Object.keys(D);let he=0;return{next:()=>{if(he<te.length){const ye=te[he++];return{value:[ye,D[ye]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return _classPrivateFieldGet2(fE,this)||null}setCredentials(D,te){assertArgument(!D.match(/:/),"invalid basic authentication username","username","[REDACTED]"),_classPrivateFieldSet2(fE,this,`${D}:${te}`)}get allowGzip(){return _classPrivateFieldGet2(aE,this)}set allowGzip(D){_classPrivateFieldSet2(aE,this,!!D)}get allowInsecureAuthentication(){return!!_classPrivateFieldGet2(nE,this)}set allowInsecureAuthentication(D){_classPrivateFieldSet2(nE,this,!!D)}get timeout(){return _classPrivateFieldGet2(oE,this)}set timeout(D){assertArgument(D>=0,"timeout must be non-zero","timeout",D),_classPrivateFieldSet2(oE,this,D)}get preflightFunc(){return _classPrivateFieldGet2(lE,this)||null}set preflightFunc(D){_classPrivateFieldSet2(lE,this,D)}get processFunc(){return _classPrivateFieldGet2(pE,this)||null}set processFunc(D){_classPrivateFieldSet2(pE,this,D)}get retryFunc(){return _classPrivateFieldGet2(hE,this)||null}set retryFunc(D){_classPrivateFieldSet2(hE,this,D)}get getUrlFunc(){return _classPrivateFieldGet2(bE,this)||JA}set getUrlFunc(D){_classPrivateFieldSet2(bE,this,D)}constructor(D){_classPrivateMethodInitSpec(this,gE),_classPrivateFieldInitSpec(this,nE,void 0),_classPrivateFieldInitSpec(this,aE,void 0),_classPrivateFieldInitSpec(this,iE,void 0),_classPrivateFieldInitSpec(this,sE,void 0),_classPrivateFieldInitSpec(this,oE,void 0),_classPrivateFieldInitSpec(this,cE,void 0),_classPrivateFieldInitSpec(this,dE,void 0),_classPrivateFieldInitSpec(this,uE,void 0),_classPrivateFieldInitSpec(this,fE,void 0),_classPrivateFieldInitSpec(this,lE,void 0),_classPrivateFieldInitSpec(this,pE,void 0),_classPrivateFieldInitSpec(this,hE,void 0),_classPrivateFieldInitSpec(this,yE,void 0),_classPrivateFieldInitSpec(this,mE,void 0),_classPrivateFieldInitSpec(this,bE,void 0),_classPrivateFieldSet2(cE,this,String(D)),_classPrivateFieldSet2(nE,this,!1),_classPrivateFieldSet2(aE,this,!0),_classPrivateFieldSet2(iE,this,{}),_classPrivateFieldSet2(sE,this,""),_classPrivateFieldSet2(oE,this,3e5),_classPrivateFieldSet2(mE,this,{slotInterval:250,maxAttempts:12}),_classPrivateFieldSet2(bE,this,null)}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${_classPrivateFieldGet2(dE,this)?hexlify$1(_classPrivateFieldGet2(dE,this)):"null"}>`}setThrottleParams(D){null!=D.slotInterval&&(_classPrivateFieldGet2(mE,this).slotInterval=D.slotInterval),null!=D.maxAttempts&&(_classPrivateFieldGet2(mE,this).maxAttempts=D.maxAttempts)}send(){return assert(null==_classPrivateFieldGet2(yE,this),"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),_classPrivateFieldSet2(yE,this,new FetchCancelSignal(this)),_assertClassBrand(gE,this,_send).call(this,0,getTime$1()+this.timeout,0,this,new FetchResponse(0,"",{},null,this))}cancel(){assert(null!=_classPrivateFieldGet2(yE,this),"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const D=eE.get(this);if(!D)throw new Error("missing signal; should not happen");D()}redirect(D){const te=this.url.split(":")[0].toLowerCase(),he=D.split(":")[0].toLowerCase();assert("GET"===this.method&&("https"!==te||"http"!==he)&&D.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(D)})`});const ye=new FetchRequest(D);return ye.method="GET",ye.allowGzip=this.allowGzip,ye.timeout=this.timeout,_classPrivateFieldSet2(iE,ye,Object.assign({},_classPrivateFieldGet2(iE,this))),_classPrivateFieldGet2(dE,this)&&_classPrivateFieldSet2(dE,ye,new Uint8Array(_classPrivateFieldGet2(dE,this))),_classPrivateFieldSet2(uE,ye,_classPrivateFieldGet2(uE,this)),ye}clone(){const D=new FetchRequest(this.url);return _classPrivateFieldSet2(sE,D,_classPrivateFieldGet2(sE,this)),_classPrivateFieldGet2(dE,this)&&_classPrivateFieldSet2(dE,D,_classPrivateFieldGet2(dE,this)),_classPrivateFieldSet2(uE,D,_classPrivateFieldGet2(uE,this)),_classPrivateFieldSet2(iE,D,Object.assign({},_classPrivateFieldGet2(iE,this))),_classPrivateFieldSet2(fE,D,_classPrivateFieldGet2(fE,this)),this.allowGzip&&(D.allowGzip=!0),D.timeout=this.timeout,this.allowInsecureAuthentication&&(D.allowInsecureAuthentication=!0),_classPrivateFieldSet2(lE,D,_classPrivateFieldGet2(lE,this)),_classPrivateFieldSet2(pE,D,_classPrivateFieldGet2(pE,this)),_classPrivateFieldSet2(hE,D,_classPrivateFieldGet2(hE,this)),_classPrivateFieldSet2(bE,D,_classPrivateFieldGet2(bE,this)),D}static lockConfig(){ZA=!0}static getGateway(D){return YA[D.toLowerCase()]||null}static registerGateway(D,te){if("http"===(D=D.toLowerCase())||"https"===D)throw new Error(`cannot intercept ${D}; use registerGetUrl`);if(ZA)throw new Error("gateways locked");YA[D]=te}static registerGetUrl(D){if(ZA)throw new Error("gateways locked");JA=D}static createGetUrlFunc(D){return createGetUrl()}static createDataGateway(){return dataGatewayFunc}static createIpfsGatewayFunc(D){return getIpfsGatewayFunc(D)}}async function _send(D,te,he,ye,be){if(D>=_classPrivateFieldGet2(mE,this).maxAttempts)return be.makeServerError("exceeded maximum retry limit");assert(getTime$1()<=te,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:ye}),he>0&&await function wait(D){return new Promise((te=>setTimeout(te,D)))}(he);let ve=this.clone();const we=(ve.url.split(":")[0]||"").toLowerCase();if(we in YA){const D=await YA[we](ve.url,checkSignal(_classPrivateFieldGet2(yE,ye)));if(D instanceof FetchResponse){let te=D;if(this.processFunc){checkSignal(_classPrivateFieldGet2(yE,ye));try{te=await this.processFunc(ve,te)}catch(D){null!=D.throttle&&"number"==typeof D.stall||te.makeServerError("error in post-processing function",D).assertOk()}}return te}ve=D}this.preflightFunc&&(ve=await this.preflightFunc(ve));const _e=await this.getUrlFunc(ve,checkSignal(_classPrivateFieldGet2(yE,ye)));let Pe=new FetchResponse(_e.statusCode,_e.statusMessage,_e.headers,_e.body,ye);if(301===Pe.statusCode||302===Pe.statusCode){try{var Ie;const he=Pe.headers.location||"";return _assertClassBrand(gE,Ie=ve.redirect(he),_send).call(Ie,D+1,te,0,ye,Pe)}catch(D){}return Pe}if(429===Pe.statusCode&&(null==this.retryFunc||await this.retryFunc(ve,Pe,D))){var Re;const he=Pe.headers["retry-after"];let be=_classPrivateFieldGet2(mE,this).slotInterval*Math.trunc(Math.random()*Math.pow(2,D));return"string"==typeof he&&he.match(/^[1-9][0-9]*$/)&&(be=parseInt(he)),_assertClassBrand(gE,Re=ve.clone(),_send).call(Re,D+1,te,be,ye,Pe)}if(this.processFunc){checkSignal(_classPrivateFieldGet2(yE,ye));try{Pe=await this.processFunc(ve,Pe)}catch(he){var ke;null!=he.throttle&&"number"==typeof he.stall||Pe.makeServerError("error in post-processing function",he).assertOk();let be=_classPrivateFieldGet2(mE,this).slotInterval*Math.trunc(Math.random()*Math.pow(2,D));return he.stall>=0&&(be=he.stall),_assertClassBrand(gE,ke=ve.clone(),_send).call(ke,D+1,te,be,ye,Pe)}}return Pe}var vE=new WeakMap,wE=new WeakMap,_E=new WeakMap,TE=new WeakMap,AE=new WeakMap,EE=new WeakMap;class FetchResponse{toString(){return`<FetchResponse status=${this.statusCode} body=${_classPrivateFieldGet2(TE,this)?hexlify$1(_classPrivateFieldGet2(TE,this)):"null"}>`}get statusCode(){return _classPrivateFieldGet2(vE,this)}get statusMessage(){return _classPrivateFieldGet2(wE,this)}get headers(){return Object.assign({},_classPrivateFieldGet2(_E,this))}get body(){return null==_classPrivateFieldGet2(TE,this)?null:new Uint8Array(_classPrivateFieldGet2(TE,this))}get bodyText(){try{return null==_classPrivateFieldGet2(TE,this)?"":toUtf8String$1(_classPrivateFieldGet2(TE,this))}catch(D){assert(!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(D){assert(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const D=this.headers,te=Object.keys(D);let he=0;return{next:()=>{if(he<te.length){const ye=te[he++];return{value:[ye,D[ye]],done:!1}}return{value:void 0,done:!0}}}}constructor(D,te,he,ye,be){_classPrivateFieldInitSpec(this,vE,void 0),_classPrivateFieldInitSpec(this,wE,void 0),_classPrivateFieldInitSpec(this,_E,void 0),_classPrivateFieldInitSpec(this,TE,void 0),_classPrivateFieldInitSpec(this,AE,void 0),_classPrivateFieldInitSpec(this,EE,void 0),_classPrivateFieldSet2(vE,this,D),_classPrivateFieldSet2(wE,this,te),_classPrivateFieldSet2(_E,this,Object.keys(he).reduce(((D,te)=>(D[te.toLowerCase()]=String(he[te]),D)),{})),_classPrivateFieldSet2(TE,this,null==ye?null:new Uint8Array(ye)),_classPrivateFieldSet2(AE,this,be||null),_classPrivateFieldSet2(EE,this,{message:""})}makeServerError(D,te){let he;he=D?`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${D})`:`CLIENT ESCALATED SERVER ERROR (${D=`${this.statusCode} ${this.statusMessage}`})`;const ye=new FetchResponse(599,he,this.headers,this.body,_classPrivateFieldGet2(AE,this)||void 0);return _classPrivateFieldSet2(EE,ye,{message:D,error:te}),ye}throwThrottleError(D,te){null==te?te=-1:assertArgument(Number.isInteger(te)&&te>=0,"invalid stall timeout","stall",te);const he=new Error(D||"throttling requests");throw defineProperties(he,{stall:te,throttle:!0}),he}getHeader(D){return this.headers[D.toLowerCase()]}hasBody(){return null!=_classPrivateFieldGet2(TE,this)}get request(){return _classPrivateFieldGet2(AE,this)}ok(){return""===_classPrivateFieldGet2(EE,this).message&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:D,error:te}=_classPrivateFieldGet2(EE,this);""===D&&(D=`server response ${this.statusCode} ${this.statusMessage}`);let he=null;this.request&&(he=this.request.url);let ye=null;try{_classPrivateFieldGet2(TE,this)&&(ye=toUtf8String$1(_classPrivateFieldGet2(TE,this)))}catch(D){}assert(!1,D,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:te,info:{requestUrl:he,responseBody:ye,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function getTime$1(){return(new Date).getTime()}function hexlifyByte(D){let te=D.toString(16);for(;te.length<2;)te="0"+te;return"0x"+te}function unarrayifyInteger(D,te,he){let ye=0;for(let be=0;be<he;be++)ye=256*ye+D[te+be];return ye}function _decodeChildren(D,te,he,ye){const be=[];for(;he<te+1+ye;){const ve=_decode(D,he);be.push(ve.result),assert((he+=ve.consumed)<=te+1+ye,"child data too short","BUFFER_OVERRUN",{buffer:D,length:ye,offset:te})}return{consumed:1+ye,result:be}}function _decode(D,te){assert(0!==D.length,"data too short","BUFFER_OVERRUN",{buffer:D,length:0,offset:1});const checkOffset=te=>{assert(te<=D.length,"data short segment too short","BUFFER_OVERRUN",{buffer:D,length:D.length,offset:te})};if(D[te]>=248){const he=D[te]-247;checkOffset(te+1+he);const ye=unarrayifyInteger(D,te+1,he);return checkOffset(te+1+he+ye),_decodeChildren(D,te,te+1+he,he+ye)}if(D[te]>=192){const he=D[te]-192;return checkOffset(te+1+he),_decodeChildren(D,te,te+1,he)}if(D[te]>=184){const he=D[te]-183;checkOffset(te+1+he);const ye=unarrayifyInteger(D,te+1,he);checkOffset(te+1+he+ye);return{consumed:1+he+ye,result:hexlify$1(D.slice(te+1+he,te+1+he+ye))}}if(D[te]>=128){const he=D[te]-128;checkOffset(te+1+he);return{consumed:1+he,result:hexlify$1(D.slice(te+1,te+1+he))}}return{consumed:1,result:hexlifyByte(D[te])}}function decodeRlp(D){const te=getBytes(D,"data"),he=_decode(te,0);return assertArgument(he.consumed===te.length,"unexpected junk after rlp payload","data",D),he.result}function arrayifyInteger$1(D){const te=[];for(;D;)te.unshift(255&D),D>>=8;return te}function _encode$1(D){if(Array.isArray(D)){let te=[];if(D.forEach((function(D){te=te.concat(_encode$1(D))})),te.length<=55)return te.unshift(192+te.length),te;const he=arrayifyInteger$1(te.length);return he.unshift(247+he.length),he.concat(te)}const te=Array.prototype.slice.call(getBytes(D,"object"));if(1===te.length&&te[0]<=127)return te;if(te.length<=55)return te.unshift(128+te.length),te;const he=arrayifyInteger$1(te.length);return he.unshift(183+he.length),he.concat(te)}const PE="0123456789abcdef";function encodeRlp(D){let te="0x";for(const he of _encode$1(D))te+=PE[he>>4],te+=PE[15&he];return te}const SE=32,CE=new Uint8Array(SE),IE=["then"],RE={};function throwError(D,te){const he=new Error(`deferred error during ABI decoding triggered accessing ${D}`);throw he.error=te,he}var kE=new WeakMap;class Result extends Array{constructor(...D){const te=D[0];let he=D[1],ye=(D[2]||[]).slice(),be=!0;te!==RE&&(he=D,ye=[],be=!1),super(he.length),_classPrivateFieldInitSpec(this,kE,void 0),he.forEach(((D,te)=>{this[te]=D}));const ve=ye.reduce(((D,te)=>("string"==typeof te&&D.set(te,(D.get(te)||0)+1),D)),new Map);if(_classPrivateFieldSet2(kE,this,Object.freeze(he.map(((D,te)=>{const he=ye[te];return null!=he&&1===ve.get(he)?he:null})))),be)return Object.freeze(this),new Proxy(this,{get:(D,te,he)=>{if("string"==typeof te){if(te.match(/^[0-9]+$/)){const he=getNumber(te,"%index");if(he<0||he>=this.length)throw new RangeError("out of result range");const ye=D[he];return ye instanceof Error&&throwError(`index ${he}`,ye),ye}if(IE.indexOf(te)>=0)return Reflect.get(D,te,he);const ye=D[te];if(ye instanceof Function)return function(...te){return ye.apply(this===he?D:this,te)};if(!(te in D))return D.getValue.apply(this===he?D:this,[te])}return Reflect.get(D,te,he)}})}toArray(){const D=[];return this.forEach(((te,he)=>{te instanceof Error&&throwError(`index ${he}`,te),D.push(te)})),D}toObject(){return _classPrivateFieldGet2(kE,this).reduce(((D,te,he)=>(assert(null!=te,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"}),te in D||(D[te]=this.getValue(te)),D)),{})}slice(D,te){null==D&&(D=0),D<0&&(D+=this.length)<0&&(D=0),null==te&&(te=this.length),te<0&&(te+=this.length)<0&&(te=0),te>this.length&&(te=this.length);const he=[],ye=[];for(let be=D;be<te;be++)he.push(this[be]),ye.push(_classPrivateFieldGet2(kE,this)[be]);return new Result(RE,he,ye)}filter(D,te){const he=[],ye=[];for(let be=0;be<this.length;be++){const ve=this[be];ve instanceof Error&&throwError(`index ${be}`,ve),D.call(te,ve,be,this)&&(he.push(ve),ye.push(_classPrivateFieldGet2(kE,this)[be]))}return new Result(RE,he,ye)}map(D,te){const he=[];for(let ye=0;ye<this.length;ye++){const be=this[ye];be instanceof Error&&throwError(`index ${ye}`,be),he.push(D.call(te,be,ye,this))}return he}getValue(D){const te=_classPrivateFieldGet2(kE,this).indexOf(D);if(-1===te)return;const he=this[te];return he instanceof Error&&throwError(`property ${JSON.stringify(D)}`,he.error),he}static fromItems(D,te){return new Result(RE,D,te)}}function getValue$1(D){let te=toBeArray(D);return assert(te.length<=SE,"value out-of-bounds","BUFFER_OVERRUN",{buffer:te,length:SE,offset:te.length}),te.length!==SE&&(te=getBytesCopy(concat$1([CE.slice(te.length%SE),te]))),te}let OE=class Coder{constructor(D,te,he,ye){_defineProperty(this,"name",void 0),_defineProperty(this,"type",void 0),_defineProperty(this,"localName",void 0),_defineProperty(this,"dynamic",void 0),defineProperties(this,{name:D,type:te,localName:he,dynamic:ye},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(D,te){assertArgument(!1,D,this.localName,te)}};var xE=new WeakMap,NE=new WeakMap,ME=new WeakSet;let BE=class Writer{constructor(){_classPrivateMethodInitSpec(this,ME),_classPrivateFieldInitSpec(this,xE,void 0),_classPrivateFieldInitSpec(this,NE,void 0),_classPrivateFieldSet2(xE,this,[]),_classPrivateFieldSet2(NE,this,0)}get data(){return concat$1(_classPrivateFieldGet2(xE,this))}get length(){return _classPrivateFieldGet2(NE,this)}appendWriter(D){return _assertClassBrand(ME,this,_writeData).call(this,getBytesCopy(D.data))}writeBytes(D){let te=getBytesCopy(D);const he=te.length%SE;return he&&(te=getBytesCopy(concat$1([te,CE.slice(he)]))),_assertClassBrand(ME,this,_writeData).call(this,te)}writeValue(D){return _assertClassBrand(ME,this,_writeData).call(this,getValue$1(D))}writeUpdatableValue(){const D=_classPrivateFieldGet2(xE,this).length;return _classPrivateFieldGet2(xE,this).push(CE),_classPrivateFieldSet2(NE,this,_classPrivateFieldGet2(NE,this)+SE),te=>{_classPrivateFieldGet2(xE,this)[D]=getValue$1(te)}}};function _writeData(D){return _classPrivateFieldGet2(xE,this).push(D),_classPrivateFieldSet2(NE,this,_classPrivateFieldGet2(NE,this)+D.length),D.length}var FE=new WeakMap,DE=new WeakMap,LE=new WeakMap,UE=new WeakMap,$E=new WeakMap,qE=new WeakSet;function _incrementBytesRead(D){var te;if(_classPrivateFieldGet2(UE,this))return _assertClassBrand(qE,te=_classPrivateFieldGet2(UE,this),_incrementBytesRead).call(te,D);_classPrivateFieldSet2(LE,this,_classPrivateFieldGet2(LE,this)+D),assert(_classPrivateFieldGet2($E,this)<1||_classPrivateFieldGet2(LE,this)<=_classPrivateFieldGet2($E,this)*this.dataLength,`compressed ABI data exceeds inflation ratio of ${_classPrivateFieldGet2($E,this)} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:getBytesCopy(_classPrivateFieldGet2(FE,this)),offset:_classPrivateFieldGet2(DE,this),length:D,info:{bytesRead:_classPrivateFieldGet2(LE,this),dataLength:this.dataLength}})}function _peekBytes(D,te,he){let ye=Math.ceil(te/SE)*SE;return _classPrivateFieldGet2(DE,this)+ye>_classPrivateFieldGet2(FE,this).length&&(this.allowLoose&&he&&_classPrivateFieldGet2(DE,this)+te<=_classPrivateFieldGet2(FE,this).length?ye=te:assert(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:getBytesCopy(_classPrivateFieldGet2(FE,this)),length:_classPrivateFieldGet2(FE,this).length,offset:_classPrivateFieldGet2(DE,this)+ye})),_classPrivateFieldGet2(FE,this).slice(_classPrivateFieldGet2(DE,this),_classPrivateFieldGet2(DE,this)+ye)}function number$2(D){if(!Number.isSafeInteger(D)||D<0)throw new Error(`Wrong positive integer: ${D}`)}function bytes$2(D,...te){if(!(D instanceof Uint8Array))throw new Error("Expected Uint8Array");if(te.length>0&&!te.includes(D.length))throw new Error(`Expected Uint8Array of length ${te}, not of length=${D.length}`)}function exists$1(D,te=!0){if(D.destroyed)throw new Error("Hash instance has been destroyed");if(te&&D.finished)throw new Error("Hash#digest() has already been called")}
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const u8a$2=D=>D instanceof Uint8Array;if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");function toBytes$1(D){if("string"==typeof D&&(D=function utf8ToBytes$2(D){if("string"!=typeof D)throw new Error("utf8ToBytes expected string, got "+typeof D);return new Uint8Array((new TextEncoder).encode(D))}(D)),!u8a$2(D))throw new Error("expected Uint8Array, got "+typeof D);return D}let GE=class Hash{clone(){return this._cloneInto()}};const jE=BigInt(2**32-1),HE=BigInt(32);function fromBig(D,te=!1){return te?{h:Number(D&jE),l:Number(D>>HE&jE)}:{h:0|Number(D>>HE&jE),l:0|Number(D&jE)}}function split$1(D,te=!1){let he=new Uint32Array(D.length),ye=new Uint32Array(D.length);for(let be=0;be<D.length;be++){const{h:ve,l:we}=fromBig(D[be],te);[he[be],ye[be]]=[ve,we]}return[he,ye]}const[zE,WE,VE]=[[],[],[]],KE=BigInt(0),JE=BigInt(1),XE=BigInt(2),QE=BigInt(7),ZE=BigInt(256),YE=BigInt(113);for(let D=0,te=JE,he=1,ye=0;D<24;D++){[he,ye]=[ye,(2*he+3*ye)%5],zE.push(2*(5*ye+he)),WE.push((D+1)*(D+2)/2%64);let be=KE;for(let D=0;D<7;D++)te=(te<<JE^(te>>QE)*YE)%ZE,te&XE&&(be^=JE<<(JE<<BigInt(D))-JE);VE.push(be)}const[eP,tP]=split$1(VE,!0),rotlH=(D,te,he)=>he>32?((D,te,he)=>te<<he-32|D>>>64-he)(D,te,he):((D,te,he)=>D<<he|te>>>32-he)(D,te,he),rotlL=(D,te,he)=>he>32?((D,te,he)=>D<<he-32|te>>>64-he)(D,te,he):((D,te,he)=>te<<he|D>>>32-he)(D,te,he);class Keccak extends GE{constructor(D,te,he,ye=!1,be=24){if(super(),this.blockLen=D,this.suffix=te,this.outputLen=he,this.enableXOF=ye,this.rounds=be,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,number$2(he),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");var ve;this.state=new Uint8Array(200),this.state32=(ve=this.state,new Uint32Array(ve.buffer,ve.byteOffset,Math.floor(ve.byteLength/4)))}keccak(){!function keccakP(D,te=24){const he=new Uint32Array(10);for(let ye=24-te;ye<24;ye++){for(let te=0;te<10;te++)he[te]=D[te]^D[te+10]^D[te+20]^D[te+30]^D[te+40];for(let te=0;te<10;te+=2){const ye=(te+8)%10,be=(te+2)%10,ve=he[be],we=he[be+1],_e=rotlH(ve,we,1)^he[ye],Pe=rotlL(ve,we,1)^he[ye+1];for(let he=0;he<50;he+=10)D[te+he]^=_e,D[te+he+1]^=Pe}let te=D[2],be=D[3];for(let he=0;he<24;he++){const ye=WE[he],ve=rotlH(te,be,ye),we=rotlL(te,be,ye),_e=zE[he];te=D[_e],be=D[_e+1],D[_e]=ve,D[_e+1]=we}for(let te=0;te<50;te+=10){for(let ye=0;ye<10;ye++)he[ye]=D[te+ye];for(let ye=0;ye<10;ye++)D[te+ye]^=~he[(ye+2)%10]&he[(ye+4)%10]}D[0]^=eP[ye],D[1]^=tP[ye]}he.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(D){exists$1(this);const{blockLen:te,state:he}=this,ye=(D=toBytes$1(D)).length;for(let be=0;be<ye;){const ve=Math.min(te-this.pos,ye-be);for(let te=0;te<ve;te++)he[this.pos++]^=D[be++];this.pos===te&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:D,suffix:te,pos:he,blockLen:ye}=this;D[he]^=te,0!=(128&te)&&he===ye-1&&this.keccak(),D[ye-1]^=128,this.keccak()}writeInto(D){exists$1(this,!1),bytes$2(D),this.finish();const te=this.state,{blockLen:he}=this;for(let ye=0,be=D.length;ye<be;){this.posOut>=he&&this.keccak();const ve=Math.min(he-this.posOut,be-ye);D.set(te.subarray(this.posOut,this.posOut+ve),ye),this.posOut+=ve,ye+=ve}return D}xofInto(D){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(D)}xof(D){return number$2(D),this.xofInto(new Uint8Array(D))}digestInto(D){if(function output$1(D,te){bytes$2(D);const he=te.outputLen;if(D.length<he)throw new Error(`digestInto() expects output buffer of length at least ${he}`)}(D,this),this.finished)throw new Error("digest() was already called");return this.writeInto(D),this.destroy(),D}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(D){const{blockLen:te,suffix:he,outputLen:ye,rounds:be,enableXOF:ve}=this;return D||(D=new Keccak(te,he,ye,ve,be)),D.state32.set(this.state32),D.pos=this.pos,D.posOut=this.posOut,D.finished=this.finished,D.rounds=be,D.suffix=he,D.outputLen=ye,D.enableXOF=ve,D.destroyed=this.destroyed,D}}const rP=((D,te,he)=>function wrapConstructor$1(D){const hashC=te=>D().update(toBytes$1(te)).digest(),te=D();return hashC.outputLen=te.outputLen,hashC.blockLen=te.blockLen,hashC.create=()=>D(),hashC}((()=>new Keccak(te,D,he))))(1,136,32);let nP=!1;const _keccak256=function(D){return rP(D)};let aP=_keccak256;function keccak256$1(D){const te=getBytes(D,"data");return hexlify$1(aP(te))}function number$1(D){if(!Number.isSafeInteger(D)||D<0)throw new Error(`Wrong positive integer: ${D}`)}function bytes$1(D,...te){if(!(D instanceof Uint8Array))throw new Error("Expected Uint8Array");if(te.length>0&&!te.includes(D.length))throw new Error(`Expected Uint8Array of length ${te}, not of length=${D.length}`)}function exists(D,te=!0){if(D.destroyed)throw new Error("Hash instance has been destroyed");if(te&&D.finished)throw new Error("Hash#digest() has already been called")}keccak256$1._=_keccak256,keccak256$1.lock=function(){nP=!0},keccak256$1.register=function(D){if(nP)throw new TypeError("keccak256 is locked");aP=D},Object.freeze(keccak256$1);const iP="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,u8a$1=D=>D instanceof Uint8Array,createView=D=>new DataView(D.buffer,D.byteOffset,D.byteLength),rotr=(D,te)=>D<<32-te|D>>>te;
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */if(!(68===new Uint8Array(new Uint32Array([287454020]).buffer)[0]))throw new Error("Non little-endian hardware is not supported");function toBytes(D){if("string"==typeof D&&(D=function utf8ToBytes$1(D){if("string"!=typeof D)throw new Error("utf8ToBytes expected string, got "+typeof D);return new Uint8Array((new TextEncoder).encode(D))}(D)),!u8a$1(D))throw new Error("expected Uint8Array, got "+typeof D);return D}class Hash{clone(){return this._cloneInto()}}function wrapConstructor(D){const hashC=te=>D().update(toBytes(te)).digest(),te=D();return hashC.outputLen=te.outputLen,hashC.blockLen=te.blockLen,hashC.create=()=>D(),hashC}function randomBytes(D=32){if(iP&&"function"==typeof iP.getRandomValues)return iP.getRandomValues(new Uint8Array(D));throw new Error("crypto.getRandomValues must be defined")}class SHA2 extends Hash{constructor(D,te,he,ye){super(),this.blockLen=D,this.outputLen=te,this.padOffset=he,this.isLE=ye,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(D),this.view=createView(this.buffer)}update(D){exists(this);const{view:te,buffer:he,blockLen:ye}=this,be=(D=toBytes(D)).length;for(let ve=0;ve<be;){const we=Math.min(ye-this.pos,be-ve);if(we!==ye)he.set(D.subarray(ve,ve+we),this.pos),this.pos+=we,ve+=we,this.pos===ye&&(this.undefined(te,0),this.pos=0);else{const te=createView(D);for(;ye<=be-ve;ve+=ye)this.undefined(te,ve)}}return this.length+=D.length,this.roundClean(),this}digestInto(D){exists(this),function output(D,te){bytes$1(D);const he=te.outputLen;if(D.length<he)throw new Error(`digestInto() expects output buffer of length at least ${he}`)}(D,this),this.finished=!0;const{buffer:te,view:he,blockLen:ye,isLE:be}=this;let{pos:ve}=this;te[ve++]=128,this.buffer.subarray(ve).fill(0),this.padOffset>ye-ve&&(this.undefined(he,0),ve=0);for(let D=ve;D<ye;D++)te[D]=0;!function setBigUint64(D,te,he,ye){if("function"==typeof D.setBigUint64)return D.setBigUint64(te,he,ye);const be=BigInt(32),ve=BigInt(4294967295),we=Number(he>>be&ve),_e=Number(he&ve),Pe=ye?4:0,Ie=ye?0:4;D.setUint32(te+Pe,we,ye),D.setUint32(te+Ie,_e,ye)}(he,ye-8,BigInt(8*this.length),be),this.undefined(he,0);const we=createView(D),_e=this.outputLen;if(_e%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const Pe=_e/4,Ie=this.get();if(Pe>Ie.length)throw new Error("_sha2: outputLen bigger than state");for(let D=0;D<Pe;D++)we.setUint32(4*D,Ie[D],be)}digest(){const{buffer:D,outputLen:te}=this;this.digestInto(D);const he=D.slice(0,te);return this.destroy(),he}_cloneInto(D){D||(D=new this.constructor),D.set(...this.get());const{blockLen:te,buffer:he,length:ye,finished:be,destroyed:ve,pos:we}=this;return D.length=ye,D.pos=we,D.finished=be,D.destroyed=ve,ye%te&&D.buffer.set(he),D}}const Chi=(D,te,he)=>D&te^~D&he,Maj=(D,te,he)=>D&te^D&he^te&he,sP=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]),oP=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),cP=new Uint32Array(64);class SHA256 extends SHA2{constructor(){super(64,32,8,!1),this.A=0|oP[0],this.B=0|oP[1],this.C=0|oP[2],this.D=0|oP[3],this.E=0|oP[4],this.F=0|oP[5],this.G=0|oP[6],this.H=0|oP[7]}get(){const{A:D,B:te,C:he,D:ye,E:be,F:ve,G:we,H:_e}=this;return[D,te,he,ye,be,ve,we,_e]}set(D,te,he,ye,be,ve,we,_e){this.A=0|D,this.B=0|te,this.C=0|he,this.D=0|ye,this.E=0|be,this.F=0|ve,this.G=0|we,this.H=0|_e}undefined(D,te){for(let he=0;he<16;he++,te+=4)cP[he]=D.getUint32(te,!1);for(let D=16;D<64;D++){const te=cP[D-15],he=cP[D-2],ye=rotr(te,7)^rotr(te,18)^te>>>3,be=rotr(he,17)^rotr(he,19)^he>>>10;cP[D]=be+cP[D-7]+ye+cP[D-16]|0}let{A:he,B:ye,C:be,D:ve,E:we,F:_e,G:Pe,H:Ie}=this;for(let D=0;D<64;D++){const te=Ie+(rotr(we,6)^rotr(we,11)^rotr(we,25))+Chi(we,_e,Pe)+sP[D]+cP[D]|0,Re=(rotr(he,2)^rotr(he,13)^rotr(he,22))+Maj(he,ye,be)|0;Ie=Pe,Pe=_e,_e=we,we=ve+te|0,ve=be,be=ye,ye=he,he=te+Re|0}he=he+this.A|0,ye=ye+this.B|0,be=be+this.C|0,ve=ve+this.D|0,we=we+this.E|0,_e=_e+this.F|0,Pe=Pe+this.G|0,Ie=Ie+this.H|0,this.set(he,ye,be,ve,we,_e,Pe,Ie)}roundClean(){cP.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const dP=wrapConstructor((()=>new SHA256)),uP=BigInt(0),fP=BigInt(1),lP=BigInt(2),u8a=D=>D instanceof Uint8Array,pP=Array.from({length:256},((D,te)=>te.toString(16).padStart(2,"0")));
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function bytesToHex(D){if(!u8a(D))throw new Error("Uint8Array expected");let te="";for(let he=0;he<D.length;he++)te+=pP[D[he]];return te}function numberToHexUnpadded(D){const te=D.toString(16);return 1&te.length?`0${te}`:te}function hexToNumber(D){if("string"!=typeof D)throw new Error("hex string expected, got "+typeof D);return BigInt(""===D?"0":`0x${D}`)}function hexToBytes(D){if("string"!=typeof D)throw new Error("hex string expected, got "+typeof D);const te=D.length;if(te%2)throw new Error("padded hex string expected, got unpadded hex of length "+te);const he=new Uint8Array(te/2);for(let te=0;te<he.length;te++){const ye=2*te,be=D.slice(ye,ye+2),ve=Number.parseInt(be,16);if(Number.isNaN(ve)||ve<0)throw new Error("Invalid byte sequence");he[te]=ve}return he}function bytesToNumberBE(D){return hexToNumber(bytesToHex(D))}function bytesToNumberLE(D){if(!u8a(D))throw new Error("Uint8Array expected");return hexToNumber(bytesToHex(Uint8Array.from(D).reverse()))}function numberToBytesBE(D,te){return hexToBytes(D.toString(16).padStart(2*te,"0"))}function numberToBytesLE(D,te){return numberToBytesBE(D,te).reverse()}function ensureBytes(D,te,he){let ye;if("string"==typeof te)try{ye=hexToBytes(te)}catch(he){throw new Error(`${D} must be valid hex string, got "${te}". Cause: ${he}`)}else{if(!u8a(te))throw new Error(`${D} must be hex string or Uint8Array`);ye=Uint8Array.from(te)}const be=ye.length;if("number"==typeof he&&be!==he)throw new Error(`${D} expected ${he} bytes, got ${be}`);return ye}function concatBytes(...D){const te=new Uint8Array(D.reduce(((D,te)=>D+te.length),0));let he=0;return D.forEach((D=>{if(!u8a(D))throw new Error("Uint8Array expected");te.set(D,he),he+=D.length})),te}const bitMask=D=>(lP<<BigInt(D-1))-fP,u8n=D=>new Uint8Array(D),u8fr=D=>Uint8Array.from(D);function createHmacDrbg(D,te,he){if("number"!=typeof D||D<2)throw new Error("hashLen must be a number");if("number"!=typeof te||te<2)throw new Error("qByteLen must be a number");if("function"!=typeof he)throw new Error("hmacFn must be a function");let ye=u8n(D),be=u8n(D),ve=0;const reset=()=>{ye.fill(1),be.fill(0),ve=0},h=(...D)=>he(be,ye,...D),reseed=(D=u8n())=>{be=h(u8fr([0]),D),ye=h(),0!==D.length&&(be=h(u8fr([1]),D),ye=h())},gen=()=>{if(ve++>=1e3)throw new Error("drbg: tried 1000 values");let D=0;const he=[];for(;D<te;){ye=h();const te=ye.slice();he.push(te),D+=ye.length}return concatBytes(...he)};return(D,te)=>{let he;for(reset(),reseed(D);!(he=te(gen()));)reseed();return reset(),he}}const hP={bigint:D=>"bigint"==typeof D,function:D=>"function"==typeof D,boolean:D=>"boolean"==typeof D,string:D=>"string"==typeof D,stringOrUint8Array:D=>"string"==typeof D||D instanceof Uint8Array,isSafeInteger:D=>Number.isSafeInteger(D),array:D=>Array.isArray(D),field:(D,te)=>te.Fp.isValid(D),hash:D=>"function"==typeof D&&Number.isSafeInteger(D.outputLen)};function validateObject(D,te,he={}){const checkField=(te,he,ye)=>{const be=hP[he];if("function"!=typeof be)throw new Error(`Invalid validator "${he}", expected function`);const ve=D[te];if(!(ye&&void 0===ve||be(ve,D)))throw new Error(`Invalid param ${String(te)}=${ve} (${typeof ve}), expected ${he}`)};for(const[D,he]of Object.entries(te))checkField(D,he,!1);for(const[D,te]of Object.entries(he))checkField(D,te,!0);return D}var yP=Object.freeze({__proto__:null,bitGet:function bitGet(D,te){return D>>BigInt(te)&fP},bitLen:function bitLen(D){let te;for(te=0;D>uP;D>>=fP,te+=1);return te},bitMask:bitMask,bitSet:(D,te,he)=>D|(he?fP:uP)<<BigInt(te),bytesToHex:bytesToHex,bytesToNumberBE:bytesToNumberBE,bytesToNumberLE:bytesToNumberLE,concatBytes:concatBytes,createHmacDrbg:createHmacDrbg,ensureBytes:ensureBytes,equalBytes:function equalBytes(D,te){if(D.length!==te.length)return!1;for(let he=0;he<D.length;he++)if(D[he]!==te[he])return!1;return!0},hexToBytes:hexToBytes,hexToNumber:hexToNumber,numberToBytesBE:numberToBytesBE,numberToBytesLE:numberToBytesLE,numberToHexUnpadded:numberToHexUnpadded,numberToVarBytesBE:function numberToVarBytesBE(D){return hexToBytes(numberToHexUnpadded(D))},utf8ToBytes:function utf8ToBytes(D){if("string"!=typeof D)throw new Error("utf8ToBytes expected string, got "+typeof D);return new Uint8Array((new TextEncoder).encode(D))},validateObject:validateObject});
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const mP=BigInt(0),bP=BigInt(1),gP=BigInt(2),vP=BigInt(3),wP=BigInt(4),_P=BigInt(5),TP=BigInt(8);function mod(D,te){const he=D%te;return he>=mP?he:te+he}function pow(D,te,he){if(he<=mP||te<mP)throw new Error("Expected power/modulo > 0");if(he===bP)return mP;let ye=bP;for(;te>mP;)te&bP&&(ye=ye*D%he),D=D*D%he,te>>=bP;return ye}function pow2(D,te,he){let ye=D;for(;te-- >mP;)ye*=ye,ye%=he;return ye}function invert(D,te){if(D===mP||te<=mP)throw new Error(`invert: expected positive integers, got n=${D} mod=${te}`);let he=mod(D,te),ye=te,be=mP,ve=bP;for(;he!==mP;){const D=ye%he,te=be-ve*(ye/he);ye=he,he=D,be=ve,ve=te}if(ye!==bP)throw new Error("invert: does not exist");return mod(be,te)}function FpSqrt(D){if(D%wP===vP){const te=(D+bP)/wP;return function sqrt3mod4(D,he){const ye=D.pow(he,te);if(!D.eql(D.sqr(ye),he))throw new Error("Cannot find square root");return ye}}if(D%TP===_P){const te=(D-_P)/TP;return function sqrt5mod8(D,he){const ye=D.mul(he,gP),be=D.pow(ye,te),ve=D.mul(he,be),we=D.mul(D.mul(ve,gP),be),_e=D.mul(ve,D.sub(we,D.ONE));if(!D.eql(D.sqr(_e),he))throw new Error("Cannot find square root");return _e}}return function tonelliShanks(D){const te=(D-bP)/gP;let he,ye,be;for(he=D-bP,ye=0;he%gP===mP;he/=gP,ye++);for(be=gP;be<D&&pow(be,te,D)!==D-bP;be++);if(1===ye){const te=(D+bP)/wP;return function tonelliFast(D,he){const ye=D.pow(he,te);if(!D.eql(D.sqr(ye),he))throw new Error("Cannot find square root");return ye}}const ve=(he+bP)/gP;return function tonelliSlow(D,we){if(D.pow(we,te)===D.neg(D.ONE))throw new Error("Cannot find square root");let _e=ye,Pe=D.pow(D.mul(D.ONE,be),he),Ie=D.pow(we,ve),Re=D.pow(we,he);for(;!D.eql(Re,D.ONE);){if(D.eql(Re,D.ZERO))return D.ZERO;let te=1;for(let he=D.sqr(Re);te<_e&&!D.eql(he,D.ONE);te++)he=D.sqr(he);const he=D.pow(Pe,bP<<BigInt(_e-te-1));Pe=D.sqr(he),Ie=D.mul(Ie,he),Re=D.mul(Re,Pe),_e=te}return Ie}}(D)}BigInt(9),BigInt(16);const AP=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function nLength(D,te){const he=void 0!==te?te:D.toString(2).length;return{nBitLength:he,nByteLength:Math.ceil(he/8)}}function getFieldBytesLength(D){if("bigint"!=typeof D)throw new Error("field order must be bigint");const te=D.toString(2).length;return Math.ceil(te/8)}function getMinHashLength(D){const te=getFieldBytesLength(D);return te+Math.ceil(te/2)}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const EP=BigInt(0),PP=BigInt(1);function validateBasic(D){return function validateField(D){return validateObject(D,AP.reduce(((D,te)=>(D[te]="function",D)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"}))}(D.Fp),validateObject(D,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...nLength(D.n,D.nBitLength),...D,p:D.Fp.ORDER})}
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const{bytesToNumberBE:SP,hexToBytes:CP}=yP,IP={Err:class DERErr extends Error{constructor(D=""){super(D)}},_parseInt(D){const{Err:te}=IP;if(D.length<2||2!==D[0])throw new te("Invalid signature integer tag");const he=D[1],ye=D.subarray(2,he+2);if(!he||ye.length!==he)throw new te("Invalid signature integer: wrong length");if(128&ye[0])throw new te("Invalid signature integer: negative");if(0===ye[0]&&!(128&ye[1]))throw new te("Invalid signature integer: unnecessary leading zero");return{d:SP(ye),l:D.subarray(he+2)}},toSig(D){const{Err:te}=IP,he="string"==typeof D?CP(D):D;if(!(he instanceof Uint8Array))throw new Error("ui8a expected");let ye=he.length;if(ye<2||48!=he[0])throw new te("Invalid signature tag");if(he[1]!==ye-2)throw new te("Invalid signature: incorrect length");const{d:be,l:ve}=IP._parseInt(he.subarray(2)),{d:we,l:_e}=IP._parseInt(ve);if(_e.length)throw new te("Invalid signature: left bytes after parsing");return{r:be,s:we}},hexFromSig(D){const slice=D=>8&Number.parseInt(D[0],16)?"00"+D:D,h=D=>{const te=D.toString(16);return 1&te.length?`0${te}`:te},te=slice(h(D.s)),he=slice(h(D.r)),ye=te.length/2,be=he.length/2,ve=h(ye),we=h(be);return`30${h(be+ye+4)}02${we}${he}02${ve}${te}`}},RP=BigInt(0),kP=BigInt(1);BigInt(2);const OP=BigInt(3);function weierstrassPoints(D){const te=function validatePointOpts(D){const te=validateBasic(D);validateObject(te,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:he,Fp:ye,a:be}=te;if(he){if(!ye.eql(be,ye.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof he||"bigint"!=typeof he.beta||"function"!=typeof he.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...te})}(D),{Fp:he}=te,ye=te.toBytes||((D,te,ye)=>{const be=te.toAffine();return concatBytes(Uint8Array.from([4]),he.toBytes(be.x),he.toBytes(be.y))}),be=te.fromBytes||(D=>{const te=D.subarray(1);return{x:he.fromBytes(te.subarray(0,he.BYTES)),y:he.fromBytes(te.subarray(he.BYTES,2*he.BYTES))}});function weierstrassEquation(D){const{a:ye,b:be}=te,ve=he.sqr(D),we=he.mul(ve,D);return he.add(he.add(we,he.mul(D,ye)),be)}if(!he.eql(he.sqr(te.Gy),weierstrassEquation(te.Gx)))throw new Error("bad generator point: equation left != right");function isWithinCurveOrder(D){return"bigint"==typeof D&&RP<D&&D<te.n}function assertGE(D){if(!isWithinCurveOrder(D))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function normPrivateKeyToScalar(D){const{allowedPrivateKeyLengths:he,nByteLength:ye,wrapPrivateKey:be,n:ve}=te;if(he&&"bigint"!=typeof D){if(D instanceof Uint8Array&&(D=bytesToHex(D)),"string"!=typeof D||!he.includes(D.length))throw new Error("Invalid key");D=D.padStart(2*ye,"0")}let we;try{we="bigint"==typeof D?D:bytesToNumberBE(ensureBytes("private key",D,ye))}catch(te){throw new Error(`private key must be ${ye} bytes, hex or bigint, not ${typeof D}`)}return be&&(we=mod(we,ve)),assertGE(we),we}const ve=new Map;function assertPrjPoint(D){if(!(D instanceof Point))throw new Error("ProjectivePoint expected")}class Point{constructor(D,te,ye){if(this.px=D,this.py=te,this.pz=ye,null==D||!he.isValid(D))throw new Error("x required");if(null==te||!he.isValid(te))throw new Error("y required");if(null==ye||!he.isValid(ye))throw new Error("z required")}static fromAffine(D){const{x:te,y:ye}=D||{};if(!D||!he.isValid(te)||!he.isValid(ye))throw new Error("invalid affine point");if(D instanceof Point)throw new Error("projective point not allowed");const is0=D=>he.eql(D,he.ZERO);return is0(te)&&is0(ye)?Point.ZERO:new Point(te,ye,he.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(D){const te=he.invertBatch(D.map((D=>D.pz)));return D.map(((D,he)=>D.toAffine(te[he]))).map(Point.fromAffine)}static fromHex(D){const te=Point.fromAffine(be(ensureBytes("pointHex",D)));return te.assertValidity(),te}static fromPrivateKey(D){return Point.BASE.multiply(normPrivateKeyToScalar(D))}_setWindowSize(D){this._WINDOW_SIZE=D,ve.delete(this)}assertValidity(){if(this.is0()){if(te.allowInfinityPoint&&!he.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:D,y:ye}=this.toAffine();if(!he.isValid(D)||!he.isValid(ye))throw new Error("bad point: x or y not FE");const be=he.sqr(ye),ve=weierstrassEquation(D);if(!he.eql(be,ve))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:D}=this.toAffine();if(he.isOdd)return!he.isOdd(D);throw new Error("Field doesn't support isOdd")}equals(D){assertPrjPoint(D);const{px:te,py:ye,pz:be}=this,{px:ve,py:we,pz:_e}=D,Pe=he.eql(he.mul(te,_e),he.mul(ve,be)),Ie=he.eql(he.mul(ye,_e),he.mul(we,be));return Pe&&Ie}negate(){return new Point(this.px,he.neg(this.py),this.pz)}double(){const{a:D,b:ye}=te,be=he.mul(ye,OP),{px:ve,py:we,pz:_e}=this;let Pe=he.ZERO,Ie=he.ZERO,Re=he.ZERO,ke=he.mul(ve,ve),Oe=he.mul(we,we),xe=he.mul(_e,_e),Be=he.mul(ve,we);return Be=he.add(Be,Be),Re=he.mul(ve,_e),Re=he.add(Re,Re),Pe=he.mul(D,Re),Ie=he.mul(be,xe),Ie=he.add(Pe,Ie),Pe=he.sub(Oe,Ie),Ie=he.add(Oe,Ie),Ie=he.mul(Pe,Ie),Pe=he.mul(Be,Pe),Re=he.mul(be,Re),xe=he.mul(D,xe),Be=he.sub(ke,xe),Be=he.mul(D,Be),Be=he.add(Be,Re),Re=he.add(ke,ke),ke=he.add(Re,ke),ke=he.add(ke,xe),ke=he.mul(ke,Be),Ie=he.add(Ie,ke),xe=he.mul(we,_e),xe=he.add(xe,xe),ke=he.mul(xe,Be),Pe=he.sub(Pe,ke),Re=he.mul(xe,Oe),Re=he.add(Re,Re),Re=he.add(Re,Re),new Point(Pe,Ie,Re)}add(D){assertPrjPoint(D);const{px:ye,py:be,pz:ve}=this,{px:we,py:_e,pz:Pe}=D;let Ie=he.ZERO,Re=he.ZERO,ke=he.ZERO;const Oe=te.a,xe=he.mul(te.b,OP);let Be=he.mul(ye,we),Fe=he.mul(be,_e),De=he.mul(ve,Pe),Le=he.add(ye,be),Ue=he.add(we,_e);Le=he.mul(Le,Ue),Ue=he.add(Be,Fe),Le=he.sub(Le,Ue),Ue=he.add(ye,ve);let qe=he.add(we,Pe);return Ue=he.mul(Ue,qe),qe=he.add(Be,De),Ue=he.sub(Ue,qe),qe=he.add(be,ve),Ie=he.add(_e,Pe),qe=he.mul(qe,Ie),Ie=he.add(Fe,De),qe=he.sub(qe,Ie),ke=he.mul(Oe,Ue),Ie=he.mul(xe,De),ke=he.add(Ie,ke),Ie=he.sub(Fe,ke),ke=he.add(Fe,ke),Re=he.mul(Ie,ke),Fe=he.add(Be,Be),Fe=he.add(Fe,Be),De=he.mul(Oe,De),Ue=he.mul(xe,Ue),Fe=he.add(Fe,De),De=he.sub(Be,De),De=he.mul(Oe,De),Ue=he.add(Ue,De),Be=he.mul(Fe,Ue),Re=he.add(Re,Be),Be=he.mul(qe,Ue),Ie=he.mul(Le,Ie),Ie=he.sub(Ie,Be),Be=he.mul(Le,Fe),ke=he.mul(qe,ke),ke=he.add(ke,Be),new Point(Ie,Re,ke)}subtract(D){return this.add(D.negate())}is0(){return this.equals(Point.ZERO)}wNAF(D){return _e.wNAFCached(this,ve,D,(D=>{const te=he.invertBatch(D.map((D=>D.pz)));return D.map(((D,he)=>D.toAffine(te[he]))).map(Point.fromAffine)}))}multiplyUnsafe(D){const ye=Point.ZERO;if(D===RP)return ye;if(assertGE(D),D===kP)return this;const{endo:be}=te;if(!be)return _e.unsafeLadder(this,D);let{k1neg:ve,k1:we,k2neg:Pe,k2:Ie}=be.splitScalar(D),Re=ye,ke=ye,Oe=this;for(;we>RP||Ie>RP;)we&kP&&(Re=Re.add(Oe)),Ie&kP&&(ke=ke.add(Oe)),Oe=Oe.double(),we>>=kP,Ie>>=kP;return ve&&(Re=Re.negate()),Pe&&(ke=ke.negate()),ke=new Point(he.mul(ke.px,be.beta),ke.py,ke.pz),Re.add(ke)}multiply(D){assertGE(D);let ye,be,ve=D;const{endo:we}=te;if(we){const{k1neg:D,k1:te,k2neg:Pe,k2:Ie}=we.splitScalar(ve);let{p:Re,f:ke}=this.wNAF(te),{p:Oe,f:xe}=this.wNAF(Ie);Re=_e.constTimeNegate(D,Re),Oe=_e.constTimeNegate(Pe,Oe),Oe=new Point(he.mul(Oe.px,we.beta),Oe.py,Oe.pz),ye=Re.add(Oe),be=ke.add(xe)}else{const{p:D,f:te}=this.wNAF(ve);ye=D,be=te}return Point.normalizeZ([ye,be])[0]}multiplyAndAddUnsafe(D,te,he){const ye=Point.BASE,mul=(D,te)=>te!==RP&&te!==kP&&D.equals(ye)?D.multiply(te):D.multiplyUnsafe(te),be=mul(this,te).add(mul(D,he));return be.is0()?void 0:be}toAffine(D){const{px:te,py:ye,pz:be}=this,ve=this.is0();null==D&&(D=ve?he.ONE:he.inv(be));const we=he.mul(te,D),_e=he.mul(ye,D),Pe=he.mul(be,D);if(ve)return{x:he.ZERO,y:he.ZERO};if(!he.eql(Pe,he.ONE))throw new Error("invZ was invalid");return{x:we,y:_e}}isTorsionFree(){const{h:D,isTorsionFree:he}=te;if(D===kP)return!0;if(he)return he(Point,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:D,clearCofactor:he}=te;return D===kP?this:he?he(Point,this):this.multiplyUnsafe(te.h)}toRawBytes(D=!0){return this.assertValidity(),ye(Point,this,D)}toHex(D=!0){return bytesToHex(this.toRawBytes(D))}}Point.BASE=new Point(te.Gx,te.Gy,he.ONE),Point.ZERO=new Point(he.ZERO,he.ONE,he.ZERO);const we=te.nBitLength,_e=function wNAF(D,te){const constTimeNegate=(D,te)=>{const he=te.negate();return D?he:te},opts=D=>({windows:Math.ceil(te/D)+1,windowSize:2**(D-1)});return{constTimeNegate:constTimeNegate,unsafeLadder(te,he){let ye=D.ZERO,be=te;for(;he>EP;)he&PP&&(ye=ye.add(be)),be=be.double(),he>>=PP;return ye},precomputeWindow(D,te){const{windows:he,windowSize:ye}=opts(te),be=[];let ve=D,we=ve;for(let D=0;D<he;D++){we=ve,be.push(we);for(let D=1;D<ye;D++)we=we.add(ve),be.push(we);ve=we.double()}return be},wNAF(te,he,ye){const{windows:be,windowSize:ve}=opts(te);let we=D.ZERO,_e=D.BASE;const Pe=BigInt(2**te-1),Ie=2**te,Re=BigInt(te);for(let D=0;D<be;D++){const te=D*ve;let be=Number(ye&Pe);ye>>=Re,be>ve&&(be-=Ie,ye+=PP);const ke=te,Oe=te+Math.abs(be)-1,xe=D%2!=0,Be=be<0;0===be?_e=_e.add(constTimeNegate(xe,he[ke])):we=we.add(constTimeNegate(Be,he[Oe]))}return{p:we,f:_e}},wNAFCached(D,te,he,ye){const be=D._WINDOW_SIZE||1;let ve=te.get(D);return ve||(ve=this.precomputeWindow(D,be),1!==be&&te.set(D,ye(ve))),this.wNAF(be,ve,he)}}}(Point,te.endo?Math.ceil(we/2):we);return{CURVE:te,ProjectivePoint:Point,normPrivateKeyToScalar:normPrivateKeyToScalar,weierstrassEquation:weierstrassEquation,isWithinCurveOrder:isWithinCurveOrder}}function weierstrass$1(D){const te=function validateOpts(D){const te=validateBasic(D);return validateObject(te,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...te})}(D),{Fp:he,n:ye}=te,be=he.BYTES+1,ve=2*he.BYTES+1;function modN(D){return mod(D,ye)}function invN(D){return invert(D,ye)}const{ProjectivePoint:we,normPrivateKeyToScalar:_e,weierstrassEquation:Pe,isWithinCurveOrder:Ie}=weierstrassPoints({...te,toBytes(D,te,ye){const be=te.toAffine(),ve=he.toBytes(be.x),we=concatBytes;return ye?we(Uint8Array.from([te.hasEvenY()?2:3]),ve):we(Uint8Array.from([4]),ve,he.toBytes(be.y))},fromBytes(D){const te=D.length,ye=D[0],we=D.subarray(1);if(te!==be||2!==ye&&3!==ye){if(te===ve&&4===ye){return{x:he.fromBytes(we.subarray(0,he.BYTES)),y:he.fromBytes(we.subarray(he.BYTES,2*he.BYTES))}}throw new Error(`Point of length ${te} was invalid. Expected ${be} compressed bytes or ${ve} uncompressed bytes`)}{const D=bytesToNumberBE(we);if(!function isValidFieldElement(D){return RP<D&&D<he.ORDER}(D))throw new Error("Point is not on curve");const te=Pe(D);let be=he.sqrt(te);return 1==(1&ye)!==((be&kP)===kP)&&(be=he.neg(be)),{x:D,y:be}}}}),numToNByteStr=D=>bytesToHex(numberToBytesBE(D,te.nByteLength));function isBiggerThanHalfOrder(D){return D>ye>>kP}const slcNum=(D,te,he)=>bytesToNumberBE(D.slice(te,he));class Signature{constructor(D,te,he){this.r=D,this.s=te,this.recovery=he,this.assertValidity()}static fromCompact(D){const he=te.nByteLength;return D=ensureBytes("compactSignature",D,2*he),new Signature(slcNum(D,0,he),slcNum(D,he,2*he))}static fromDER(D){const{r:te,s:he}=IP.toSig(ensureBytes("DER",D));return new Signature(te,he)}assertValidity(){if(!Ie(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!Ie(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(D){return new Signature(this.r,this.s,D)}recoverPublicKey(D){const{r:ye,s:be,recovery:ve}=this,_e=Oe(ensureBytes("msgHash",D));if(null==ve||![0,1,2,3].includes(ve))throw new Error("recovery id invalid");const Pe=2===ve||3===ve?ye+te.n:ye;if(Pe>=he.ORDER)throw new Error("recovery id 2 or 3 invalid");const Ie=0==(1&ve)?"02":"03",Re=we.fromHex(Ie+numToNByteStr(Pe)),ke=invN(Pe),xe=modN(-_e*ke),Be=modN(be*ke),Fe=we.BASE.multiplyAndAddUnsafe(Re,xe,Be);if(!Fe)throw new Error("point at infinify");return Fe.assertValidity(),Fe}hasHighS(){return isBiggerThanHalfOrder(this.s)}normalizeS(){return this.hasHighS()?new Signature(this.r,modN(-this.s),this.recovery):this}toDERRawBytes(){return hexToBytes(this.toDERHex())}toDERHex(){return IP.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return hexToBytes(this.toCompactHex())}toCompactHex(){return numToNByteStr(this.r)+numToNByteStr(this.s)}}const Re={isValidPrivateKey(D){try{return _e(D),!0}catch(D){return!1}},normPrivateKeyToScalar:_e,randomPrivateKey:()=>{const D=getMinHashLength(te.n);return function mapHashToField(D,te,he=!1){const ye=D.length,be=getFieldBytesLength(te),ve=getMinHashLength(te);if(ye<16||ye<ve||ye>1024)throw new Error(`expected ${ve}-1024 bytes of input, got ${ye}`);const we=mod(he?bytesToNumberBE(D):bytesToNumberLE(D),te-bP)+bP;return he?numberToBytesLE(we,be):numberToBytesBE(we,be)}(te.randomBytes(D),te.n)},precompute:(D=8,te=we.BASE)=>(te._setWindowSize(D),te.multiply(BigInt(3)),te)};function isProbPub(D){const te=D instanceof Uint8Array,he="string"==typeof D,ye=(te||he)&&D.length;return te?ye===be||ye===ve:he?ye===2*be||ye===2*ve:D instanceof we}const ke=te.bits2int||function(D){const he=bytesToNumberBE(D),ye=8*D.length-te.nBitLength;return ye>0?he>>BigInt(ye):he},Oe=te.bits2int_modN||function(D){return modN(ke(D))},xe=bitMask(te.nBitLength);function int2octets(D){if("bigint"!=typeof D)throw new Error("bigint expected");if(!(RP<=D&&D<xe))throw new Error(`bigint expected < 2^${te.nBitLength}`);return numberToBytesBE(D,te.nByteLength)}function prepSig(D,ye,be=Be){if(["recovered","canonical"].some((D=>D in be)))throw new Error("sign() legacy options not supported");const{hash:ve,randomBytes:Pe}=te;let{lowS:Re,prehash:xe,extraEntropy:Fe}=be;null==Re&&(Re=!0),D=ensureBytes("msgHash",D),xe&&(D=ensureBytes("prehashed msgHash",ve(D)));const De=Oe(D),Le=_e(ye),Ue=[int2octets(Le),int2octets(De)];if(null!=Fe){const D=!0===Fe?Pe(he.BYTES):Fe;Ue.push(ensureBytes("extraEntropy",D))}const qe=concatBytes(...Ue),je=De;return{seed:qe,k2sig:function k2sig(D){const te=ke(D);if(!Ie(te))return;const he=invN(te),ye=we.BASE.multiply(te).toAffine(),be=modN(ye.x);if(be===RP)return;const ve=modN(he*modN(je+be*Le));if(ve===RP)return;let _e=(ye.x===be?0:2)|Number(ye.y&kP),Pe=ve;return Re&&isBiggerThanHalfOrder(ve)&&(Pe=function normalizeS(D){return isBiggerThanHalfOrder(D)?modN(-D):D}(ve),_e^=1),new Signature(be,Pe,_e)}}}const Be={lowS:te.lowS,prehash:!1},Fe={lowS:te.lowS,prehash:!1};return we.BASE._setWindowSize(8),{CURVE:te,getPublicKey:function getPublicKey(D,te=!0){return we.fromPrivateKey(D).toRawBytes(te)},getSharedSecret:function getSharedSecret(D,te,he=!0){if(isProbPub(D))throw new Error("first arg must be private key");if(!isProbPub(te))throw new Error("second arg must be public key");return we.fromHex(te).multiply(_e(D)).toRawBytes(he)},sign:function sign(D,he,ye=Be){const{seed:be,k2sig:ve}=prepSig(D,he,ye),we=te;return createHmacDrbg(we.hash.outputLen,we.nByteLength,we.hmac)(be,ve)},verify:function verify(D,he,ye,be=Fe){const ve=D;if(he=ensureBytes("msgHash",he),ye=ensureBytes("publicKey",ye),"strict"in be)throw new Error("options.strict was renamed to lowS");const{lowS:_e,prehash:Pe}=be;let Ie,Re;try{if("string"==typeof ve||ve instanceof Uint8Array)try{Ie=Signature.fromDER(ve)}catch(D){if(!(D instanceof IP.Err))throw D;Ie=Signature.fromCompact(ve)}else{if("object"!=typeof ve||"bigint"!=typeof ve.r||"bigint"!=typeof ve.s)throw new Error("PARSE");{const{r:D,s:te}=ve;Ie=new Signature(D,te)}}Re=we.fromHex(ye)}catch(D){if("PARSE"===D.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(_e&&Ie.hasHighS())return!1;Pe&&(he=te.hash(he));const{r:ke,s:xe}=Ie,Be=Oe(he),De=invN(xe),Le=modN(Be*De),Ue=modN(ke*De),qe=we.BASE.multiplyAndAddUnsafe(Re,Le,Ue)?.toAffine();return!!qe&&modN(qe.x)===ke},ProjectivePoint:we,Signature:Signature,utils:Re}}BigInt(4);class HMAC extends Hash{constructor(D,te){super(),this.finished=!1,this.destroyed=!1,function hash$1(D){if("function"!=typeof D||"function"!=typeof D.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");number$1(D.outputLen),number$1(D.blockLen)}(D);const he=toBytes(te);if(this.iHash=D.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const ye=this.blockLen,be=new Uint8Array(ye);be.set(he.length>ye?D.create().update(he).digest():he);for(let D=0;D<be.length;D++)be[D]^=54;this.iHash.update(be),this.oHash=D.create();for(let D=0;D<be.length;D++)be[D]^=106;this.oHash.update(be),be.fill(0)}update(D){return exists(this),this.iHash.update(D),this}digestInto(D){exists(this),bytes$1(D,this.outputLen),this.finished=!0,this.iHash.digestInto(D),this.oHash.update(D),this.oHash.digestInto(D),this.destroy()}digest(){const D=new Uint8Array(this.oHash.outputLen);return this.digestInto(D),D}_cloneInto(D){D||(D=Object.create(Object.getPrototypeOf(this),{}));const{oHash:te,iHash:he,finished:ye,destroyed:be,blockLen:ve,outputLen:we}=this;return D.finished=ye,D.destroyed=be,D.blockLen=ve,D.outputLen=we,D.oHash=te._cloneInto(D.oHash),D.iHash=he._cloneInto(D.iHash),D}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const hmac$4=(D,te,he)=>new HMAC(D,te).update(he).digest();
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
function getHash(D){return{hash:D,hmac:(te,...he)=>hmac$4(D,te,function concatBytes$1(...D){const te=new Uint8Array(D.reduce(((D,te)=>D+te.length),0));let he=0;return D.forEach((D=>{if(!u8a$1(D))throw new Error("Uint8Array expected");te.set(D,he),he+=D.length})),te}(...he)),randomBytes:randomBytes}}hmac$4.create=(D,te)=>new HMAC(D,te);
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const xP=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),NP=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),MP=BigInt(1),BP=BigInt(2),divNearest=(D,te)=>(D+te/BP)/te;const FP=function Field(D,te,he=!1,ye={}){if(D<=mP)throw new Error(`Expected Field ORDER > 0, got ${D}`);const{nBitLength:be,nByteLength:ve}=nLength(D,te);if(ve>2048)throw new Error("Field lengths over 2048 bytes are not supported");const we=FpSqrt(D),_e=Object.freeze({ORDER:D,BITS:be,BYTES:ve,MASK:bitMask(be),ZERO:mP,ONE:bP,create:te=>mod(te,D),isValid:te=>{if("bigint"!=typeof te)throw new Error("Invalid field element: expected bigint, got "+typeof te);return mP<=te&&te<D},is0:D=>D===mP,isOdd:D=>(D&bP)===bP,neg:te=>mod(-te,D),eql:(D,te)=>D===te,sqr:te=>mod(te*te,D),add:(te,he)=>mod(te+he,D),sub:(te,he)=>mod(te-he,D),mul:(te,he)=>mod(te*he,D),pow:(D,te)=>function FpPow(D,te,he){if(he<mP)throw new Error("Expected power > 0");if(he===mP)return D.ONE;if(he===bP)return te;let ye=D.ONE,be=te;for(;he>mP;)he&bP&&(ye=D.mul(ye,be)),be=D.sqr(be),he>>=bP;return ye}(_e,D,te),div:(te,he)=>mod(te*invert(he,D),D),sqrN:D=>D*D,addN:(D,te)=>D+te,subN:(D,te)=>D-te,mulN:(D,te)=>D*te,inv:te=>invert(te,D),sqrt:ye.sqrt||(D=>we(_e,D)),invertBatch:D=>function FpInvertBatch(D,te){const he=new Array(te.length),ye=te.reduce(((te,ye,be)=>D.is0(ye)?te:(he[be]=te,D.mul(te,ye))),D.ONE),be=D.inv(ye);return te.reduceRight(((te,ye,be)=>D.is0(ye)?te:(he[be]=D.mul(te,he[be]),D.mul(te,ye))),be),he}(_e,D),cmov:(D,te,he)=>he?te:D,toBytes:D=>he?numberToBytesLE(D,ve):numberToBytesBE(D,ve),fromBytes:D=>{if(D.length!==ve)throw new Error(`Fp.fromBytes: expected ${ve}, got ${D.length}`);return he?bytesToNumberLE(D):bytesToNumberBE(D)}});return Object.freeze(_e)}(xP,void 0,void 0,{sqrt:function sqrtMod(D){const te=xP,he=BigInt(3),ye=BigInt(6),be=BigInt(11),ve=BigInt(22),we=BigInt(23),_e=BigInt(44),Pe=BigInt(88),Ie=D*D*D%te,Re=Ie*Ie*D%te,ke=pow2(Re,he,te)*Re%te,Oe=pow2(ke,he,te)*Re%te,xe=pow2(Oe,BP,te)*Ie%te,Be=pow2(xe,be,te)*xe%te,Fe=pow2(Be,ve,te)*Be%te,De=pow2(Fe,_e,te)*Fe%te,Le=pow2(De,Pe,te)*De%te,Ue=pow2(Le,_e,te)*Fe%te,qe=pow2(Ue,he,te)*Re%te,je=pow2(qe,we,te)*Be%te,Je=pow2(je,ye,te)*Ie%te,et=pow2(Je,BP,te);if(!FP.eql(FP.sqr(et),D))throw new Error("Cannot find square root");return et}}),DP=function createCurve(D,te){const create=te=>weierstrass$1({...D,...getHash(te)});return Object.freeze({...create(te),create:create})}({a:BigInt(0),b:BigInt(7),Fp:FP,n:NP,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:D=>{const te=NP,he=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),ye=-MP*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),be=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),ve=he,we=BigInt("0x100000000000000000000000000000000"),_e=divNearest(ve*D,te),Pe=divNearest(-ye*D,te);let Ie=mod(D-_e*he-Pe*be,te),Re=mod(-_e*ye-Pe*ve,te);const ke=Ie>we,Oe=Re>we;if(ke&&(Ie=te-Ie),Oe&&(Re=te-Re),Ie>we||Re>we)throw new Error("splitScalar: Endomorphism failed, k="+D);return{k1neg:ke,k1:Ie,k2neg:Oe,k2:Re}}}},dP);BigInt(0),DP.ProjectivePoint;const LP="0x0000000000000000000000000000000000000000",UP="0x0000000000000000000000000000000000000000000000000000000000000000",$P=BigInt(0),qP=BigInt(1),GP=BigInt(2),jP=BigInt(27),HP=BigInt(28),zP=BigInt(35),WP={};function toUint256(D){return zeroPadValue(toBeArray(D),32)}var VP=new WeakMap,KP=new WeakMap,JP=new WeakMap,XP=new WeakMap;class Signature{get r(){return _classPrivateFieldGet2(VP,this)}set r(D){assertArgument(32===dataLength(D),"invalid r","value",D),_classPrivateFieldSet2(VP,this,hexlify$1(D))}get s(){return _classPrivateFieldGet2(KP,this)}set s(D){assertArgument(32===dataLength(D),"invalid s","value",D);const te=hexlify$1(D);assertArgument(parseInt(te.substring(0,3))<8,"non-canonical s","value",te),_classPrivateFieldSet2(KP,this,te)}get v(){return _classPrivateFieldGet2(JP,this)}set v(D){const te=getNumber(D,"value");assertArgument(27===te||28===te,"invalid v","v",D),_classPrivateFieldSet2(JP,this,te)}get networkV(){return _classPrivateFieldGet2(XP,this)}get legacyChainId(){const D=this.networkV;return null==D?null:Signature.getChainId(D)}get yParity(){return 27===this.v?0:1}get yParityAndS(){const D=getBytes(this.s);return this.yParity&&(D[0]|=128),hexlify$1(D)}get compactSerialized(){return concat$1([this.r,this.yParityAndS])}get serialized(){return concat$1([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(D,te,he,ye){_classPrivateFieldInitSpec(this,VP,void 0),_classPrivateFieldInitSpec(this,KP,void 0),_classPrivateFieldInitSpec(this,JP,void 0),_classPrivateFieldInitSpec(this,XP,void 0),assertPrivate(D,WP,"Signature"),_classPrivateFieldSet2(VP,this,te),_classPrivateFieldSet2(KP,this,he),_classPrivateFieldSet2(JP,this,ye),_classPrivateFieldSet2(XP,this,null)}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const D=new Signature(WP,this.r,this.s,this.v);return this.networkV&&_classPrivateFieldSet2(XP,D,this.networkV),D}toJSON(){const D=this.networkV;return{_type:"signature",networkV:null!=D?D.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(D){const te=getBigInt(D,"v");return te==jP||te==HP?$P:(assertArgument(te>=zP,"invalid EIP-155 v","v",D),(te-zP)/GP)}static getChainIdV(D,te){return getBigInt(D)*GP+BigInt(35+te-27)}static getNormalizedV(D){const te=getBigInt(D);return te===$P||te===jP?27:te===qP||te===HP?28:(assertArgument(te>=zP,"invalid v","v",D),te&qP?27:28)}static from(D){function assertError(te,he){assertArgument(te,he,"signature",D)}if(null==D)return new Signature(WP,UP,UP,27);if("string"==typeof D){const te=getBytes(D,"signature");if(64===te.length){const D=hexlify$1(te.slice(0,32)),he=te.slice(32,64),ye=128&he[0]?28:27;return he[0]&=127,new Signature(WP,D,hexlify$1(he),ye)}if(65===te.length){const D=hexlify$1(te.slice(0,32)),he=te.slice(32,64);assertError(0==(128&he[0]),"non-canonical s");const ye=Signature.getNormalizedV(te[64]);return new Signature(WP,D,hexlify$1(he),ye)}assertError(!1,"invalid raw signature length")}if(D instanceof Signature)return D.clone();const te=D.r;assertError(null!=te,"missing r");const he=toUint256(te),ye=function(D,te){if(null!=D)return toUint256(D);if(null!=te){assertError(isHexString$1(te,32),"invalid yParityAndS");const D=getBytes(te);return D[0]&=127,hexlify$1(D)}assertError(!1,"missing s")}(D.s,D.yParityAndS);assertError(0==(128&getBytes(ye)[0]),"non-canonical s");const{networkV:be,v:ve}=function(D,te,he){if(null!=D){const te=getBigInt(D);return{networkV:te>=zP?te:void 0,v:Signature.getNormalizedV(te)}}if(null!=te)return assertError(isHexString$1(te,32),"invalid yParityAndS"),{v:128&getBytes(te)[0]?28:27};if(null!=he){switch(getNumber(he,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}assertError(!1,"invalid yParity")}assertError(!1,"missing v")}(D.v,D.yParityAndS,D.yParity),we=new Signature(WP,he,ye,ve);return be&&_classPrivateFieldSet2(XP,we,be),assertError(null==D.yParity||getNumber(D.yParity,"sig.yParity")===we.yParity,"yParity mismatch"),assertError(null==D.yParityAndS||D.yParityAndS===we.yParityAndS,"yParityAndS mismatch"),we}}var QP=new WeakMap;class SigningKey{constructor(D){_classPrivateFieldInitSpec(this,QP,void 0),assertArgument(32===dataLength(D),"invalid private key","privateKey","[REDACTED]"),_classPrivateFieldSet2(QP,this,hexlify$1(D))}get privateKey(){return _classPrivateFieldGet2(QP,this)}get publicKey(){return SigningKey.computePublicKey(_classPrivateFieldGet2(QP,this))}get compressedPublicKey(){return SigningKey.computePublicKey(_classPrivateFieldGet2(QP,this),!0)}sign(D){assertArgument(32===dataLength(D),"invalid digest length","digest",D);const te=DP.sign(getBytesCopy(D),getBytesCopy(_classPrivateFieldGet2(QP,this)),{lowS:!0});return Signature.from({r:toBeHex(te.r,32),s:toBeHex(te.s,32),v:te.recovery?28:27})}computeSharedSecret(D){const te=SigningKey.computePublicKey(D);return hexlify$1(DP.getSharedSecret(getBytesCopy(_classPrivateFieldGet2(QP,this)),getBytes(te),!1))}static computePublicKey(D,te){let he=getBytes(D,"key");if(32===he.length){return hexlify$1(DP.getPublicKey(he,!!te))}if(64===he.length){const D=new Uint8Array(65);D[0]=4,D.set(he,1),he=D}return hexlify$1(DP.ProjectivePoint.fromHex(he).toRawBytes(te))}static recoverPublicKey(D,te){assertArgument(32===dataLength(D),"invalid digest length","digest",D);const he=Signature.from(te);let ye=DP.Signature.fromCompact(getBytesCopy(concat$1([he.r,he.s])));ye=ye.addRecoveryBit(he.yParity);const be=ye.recoverPublicKey(getBytesCopy(D));return assertArgument(null!=be,"invalid signautre for digest","signature",te),"0x"+be.toHex(!1)}static addPoints(D,te,he){const ye=DP.ProjectivePoint.fromHex(SigningKey.computePublicKey(D).substring(2)),be=DP.ProjectivePoint.fromHex(SigningKey.computePublicKey(te).substring(2));return"0x"+ye.add(be).toHex(!!he)}}const ZP=BigInt(0),YP=BigInt(36);function getChecksumAddress$1(D){const te=(D=D.toLowerCase()).substring(2).split(""),he=new Uint8Array(40);for(let D=0;D<40;D++)he[D]=te[D].charCodeAt(0);const ye=getBytes(keccak256$1(he));for(let D=0;D<40;D+=2)ye[D>>1]>>4>=8&&(te[D]=te[D].toUpperCase()),(15&ye[D>>1])>=8&&(te[D+1]=te[D+1].toUpperCase());return"0x"+te.join("")}const eS={};for(let D=0;D<10;D++)eS[String(D)]=String(D);for(let D=0;D<26;D++)eS[String.fromCharCode(65+D)]=String(10+D);const tS=15;const rS=function(){const D={};for(let te=0;te<36;te++){D["0123456789abcdefghijklmnopqrstuvwxyz"[te]]=BigInt(te)}return D}();function getAddress$1(D){if(assertArgument("string"==typeof D,"invalid address","address",D),D.match(/^(0x)?[0-9a-fA-F]{40}$/)){D.startsWith("0x")||(D="0x"+D);const te=getChecksumAddress$1(D);return assertArgument(!D.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||te===D,"bad address checksum","address",D),te}if(D.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){assertArgument(D.substring(2,4)===function ibanChecksum$1(D){let te=(D=(D=D.toUpperCase()).substring(4)+D.substring(0,2)+"00").split("").map((D=>eS[D])).join("");for(;te.length>=tS;){let D=te.substring(0,tS);te=parseInt(D,10)%97+te.substring(D.length)}let he=String(98-parseInt(te,10)%97);for(;he.length<2;)he="0"+he;return he}(D),"bad icap checksum","address",D);let te=function fromBase36(D){D=D.toLowerCase();let te=ZP;for(let he=0;he<D.length;he++)te=te*YP+rS[D[he]];return te}(D.substring(4)).toString(16);for(;te.length<40;)te="0"+te;return getChecksumAddress$1("0x"+te)}assertArgument(!1,"invalid address","address",D)}function isAddressable(D){return D&&"function"==typeof D.getAddress}async function checkAddress(D,te){const he=await te;return null!=he&&"0x0000000000000000000000000000000000000000"!==he||(assert("string"!=typeof D,"unconfigured name","UNCONFIGURED_NAME",{value:D}),assertArgument(!1,"invalid AddressLike value; did not resolve to a value address","target",D)),getAddress$1(he)}function resolveAddress(D,te){return"string"==typeof D?D.match(/^0x[0-9a-f]{40}$/i)?getAddress$1(D):(assert(null!=te,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),checkAddress(D,te.resolveName(D))):isAddressable(D)?checkAddress(D,D.getAddress()):D&&"function"==typeof D.then?checkAddress(D,D):void assertArgument(!1,"unsupported addressable value","target",D)}const nS={};function n(D,te){let he=!1;return te<0&&(he=!0,te*=-1),new Typed(nS,`${he?"":"u"}int${te}`,D,{signed:he,width:te})}function b(D,te){return new Typed(nS,`bytes${te||""}`,D,{size:te})}const aS=Symbol.for("_ethers_typed");var iS=new WeakMap;class Typed{constructor(D,te,he,ye){_defineProperty(this,"type",void 0),_defineProperty(this,"value",void 0),_classPrivateFieldInitSpec(this,iS,void 0),_defineProperty(this,"_typedSymbol",void 0),null==ye&&(ye=null),assertPrivate(nS,D,"Typed"),defineProperties(this,{_typedSymbol:aS,type:te,value:he}),_classPrivateFieldSet2(iS,this,ye),this.format()}format(){if("array"===this.type)throw new Error("");if("dynamicArray"===this.type)throw new Error("");return"tuple"===this.type?`tuple(${this.value.map((D=>D.format())).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return"string"===this.type}get tupleName(){if("tuple"!==this.type)throw TypeError("not a tuple");return _classPrivateFieldGet2(iS,this)}get arrayLength(){if("array"!==this.type)throw TypeError("not an array");return!0===_classPrivateFieldGet2(iS,this)?-1:!1===_classPrivateFieldGet2(iS,this)?this.value.length:null}static from(D,te){return new Typed(nS,D,te)}static uint8(D){return n(D,8)}static uint16(D){return n(D,16)}static uint24(D){return n(D,24)}static uint32(D){return n(D,32)}static uint40(D){return n(D,40)}static uint48(D){return n(D,48)}static uint56(D){return n(D,56)}static uint64(D){return n(D,64)}static uint72(D){return n(D,72)}static uint80(D){return n(D,80)}static uint88(D){return n(D,88)}static uint96(D){return n(D,96)}static uint104(D){return n(D,104)}static uint112(D){return n(D,112)}static uint120(D){return n(D,120)}static uint128(D){return n(D,128)}static uint136(D){return n(D,136)}static uint144(D){return n(D,144)}static uint152(D){return n(D,152)}static uint160(D){return n(D,160)}static uint168(D){return n(D,168)}static uint176(D){return n(D,176)}static uint184(D){return n(D,184)}static uint192(D){return n(D,192)}static uint200(D){return n(D,200)}static uint208(D){return n(D,208)}static uint216(D){return n(D,216)}static uint224(D){return n(D,224)}static uint232(D){return n(D,232)}static uint240(D){return n(D,240)}static uint248(D){return n(D,248)}static uint256(D){return n(D,256)}static uint(D){return n(D,256)}static int8(D){return n(D,-8)}static int16(D){return n(D,-16)}static int24(D){return n(D,-24)}static int32(D){return n(D,-32)}static int40(D){return n(D,-40)}static int48(D){return n(D,-48)}static int56(D){return n(D,-56)}static int64(D){return n(D,-64)}static int72(D){return n(D,-72)}static int80(D){return n(D,-80)}static int88(D){return n(D,-88)}static int96(D){return n(D,-96)}static int104(D){return n(D,-104)}static int112(D){return n(D,-112)}static int120(D){return n(D,-120)}static int128(D){return n(D,-128)}static int136(D){return n(D,-136)}static int144(D){return n(D,-144)}static int152(D){return n(D,-152)}static int160(D){return n(D,-160)}static int168(D){return n(D,-168)}static int176(D){return n(D,-176)}static int184(D){return n(D,-184)}static int192(D){return n(D,-192)}static int200(D){return n(D,-200)}static int208(D){return n(D,-208)}static int216(D){return n(D,-216)}static int224(D){return n(D,-224)}static int232(D){return n(D,-232)}static int240(D){return n(D,-240)}static int248(D){return n(D,-248)}static int256(D){return n(D,-256)}static int(D){return n(D,-256)}static bytes1(D){return b(D,1)}static bytes2(D){return b(D,2)}static bytes3(D){return b(D,3)}static bytes4(D){return b(D,4)}static bytes5(D){return b(D,5)}static bytes6(D){return b(D,6)}static bytes7(D){return b(D,7)}static bytes8(D){return b(D,8)}static bytes9(D){return b(D,9)}static bytes10(D){return b(D,10)}static bytes11(D){return b(D,11)}static bytes12(D){return b(D,12)}static bytes13(D){return b(D,13)}static bytes14(D){return b(D,14)}static bytes15(D){return b(D,15)}static bytes16(D){return b(D,16)}static bytes17(D){return b(D,17)}static bytes18(D){return b(D,18)}static bytes19(D){return b(D,19)}static bytes20(D){return b(D,20)}static bytes21(D){return b(D,21)}static bytes22(D){return b(D,22)}static bytes23(D){return b(D,23)}static bytes24(D){return b(D,24)}static bytes25(D){return b(D,25)}static bytes26(D){return b(D,26)}static bytes27(D){return b(D,27)}static bytes28(D){return b(D,28)}static bytes29(D){return b(D,29)}static bytes30(D){return b(D,30)}static bytes31(D){return b(D,31)}static bytes32(D){return b(D,32)}static address(D){return new Typed(nS,"address",D)}static bool(D){return new Typed(nS,"bool",!!D)}static bytes(D){return new Typed(nS,"bytes",D)}static string(D){return new Typed(nS,"string",D)}static array(D,te){throw new Error("not implemented yet")}static tuple(D,te){throw new Error("not implemented yet")}static overrides(D){return new Typed(nS,"overrides",Object.assign({},D))}static isTyped(D){return D&&"object"==typeof D&&"_typedSymbol"in D&&D._typedSymbol===aS}static dereference(D,te){if(Typed.isTyped(D)){if(D.type!==te)throw new Error(`invalid type: expecetd ${te}, got ${D.type}`);return D.value}return D}}let sS=class AddressCoder extends OE{constructor(D){super("address","address",D,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(D,te){let he=Typed.dereference(te,"string");try{he=getAddress$1(he)}catch(D){return this._throwError(D.message,te)}return D.writeValue(he)}decode(D){return getAddress$1(toBeHex(D.readValue(),20))}},oS=class AnonymousCoder extends OE{constructor(D){super(D.name,D.type,"_",D.dynamic),_defineProperty(this,"coder",void 0),this.coder=D}defaultValue(){return this.coder.defaultValue()}encode(D,te){return this.coder.encode(D,te)}decode(D){return this.coder.decode(D)}};function pack$1(D,te,he){let ye=[];if(Array.isArray(he))ye=he;else if(he&&"object"==typeof he){let D={};ye=te.map((te=>{const ye=te.localName;return assert(ye,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:te},value:he}),assert(!D[ye],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:te},value:he}),D[ye]=!0,he[ye]}))}else assertArgument(!1,"invalid tuple value","tuple",he);assertArgument(te.length===ye.length,"types/value length mismatch","tuple",he);let be=new BE,ve=new BE,we=[];te.forEach(((D,te)=>{let he=ye[te];if(D.dynamic){let te=ve.length;D.encode(ve,he);let ye=be.writeUpdatableValue();we.push((D=>{ye(D+te)}))}else D.encode(be,he)})),we.forEach((D=>{D(be.length)}));let _e=D.appendWriter(be);return _e+=D.appendWriter(ve),_e}function unpack$1(D,te){let he=[],ye=[],be=D.subReader(0);return te.forEach((te=>{let ve=null;if(te.dynamic){let he=D.readIndex(),ye=be.subReader(he);try{ve=te.decode(ye)}catch(D){if(isError(D,"BUFFER_OVERRUN"))throw D;ve=D,ve.baseType=te.name,ve.name=te.localName,ve.type=te.type}}else try{ve=te.decode(D)}catch(D){if(isError(D,"BUFFER_OVERRUN"))throw D;ve=D,ve.baseType=te.name,ve.name=te.localName,ve.type=te.type}if(null==ve)throw new Error("investigate");he.push(ve),ye.push(te.localName||null)})),Result.fromItems(he,ye)}let cS=class ArrayCoder extends OE{constructor(D,te,he){super("array",D.type+"["+(te>=0?te:"")+"]",he,-1===te||D.dynamic),_defineProperty(this,"coder",void 0),_defineProperty(this,"length",void 0),defineProperties(this,{coder:D,length:te})}defaultValue(){const D=this.coder.defaultValue(),te=[];for(let he=0;he<this.length;he++)te.push(D);return te}encode(D,te){const he=Typed.dereference(te,"array");Array.isArray(he)||this._throwError("expected array value",he);let ye=this.length;-1===ye&&(ye=he.length,D.writeValue(he.length)),assertArgumentCount(he.length,ye,"coder array"+(this.localName?" "+this.localName:""));let be=[];for(let D=0;D<he.length;D++)be.push(this.coder);return pack$1(D,be,he)}decode(D){let te=this.length;-1===te&&(te=D.readIndex(),assert(te*SE<=D.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:D.bytes,offset:te*SE,length:D.dataLength}));let he=[];for(let D=0;D<te;D++)he.push(new oS(this.coder));return unpack$1(D,he)}},dS=class BooleanCoder extends OE{constructor(D){super("bool","bool",D,!1)}defaultValue(){return!1}encode(D,te){const he=Typed.dereference(te,"bool");return D.writeValue(he?1:0)}decode(D){return!!D.readValue()}},uS=class DynamicBytesCoder extends OE{constructor(D,te){super(D,D,te,!0)}defaultValue(){return"0x"}encode(D,te){te=getBytesCopy(te);let he=D.writeValue(te.length);return he+=D.writeBytes(te),he}decode(D){return D.readBytes(D.readIndex(),!0)}},fS=class BytesCoder extends uS{constructor(D){super("bytes",D)}decode(D){return hexlify$1(super.decode(D))}},lS=class FixedBytesCoder extends OE{constructor(D,te){let he="bytes"+String(D);super(he,he,te,!1),_defineProperty(this,"size",void 0),defineProperties(this,{size:D},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(D,te){let he=getBytesCopy(Typed.dereference(te,this.type));return he.length!==this.size&&this._throwError("incorrect data length",te),D.writeBytes(he)}decode(D){return hexlify$1(D.readBytes(this.size))}};const pS=new Uint8Array([]);let hS=class NullCoder extends OE{constructor(D){super("null","",D,!1)}defaultValue(){return null}encode(D,te){return null!=te&&this._throwError("not null",te),D.writeBytes(pS)}decode(D){return D.readBytes(0),null}};const yS=BigInt(0),mS=BigInt(1),bS=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");let gS=class NumberCoder extends OE{constructor(D,te,he){const ye=(te?"int":"uint")+8*D;super(ye,ye,he,!1),_defineProperty(this,"size",void 0),_defineProperty(this,"signed",void 0),defineProperties(this,{size:D,signed:te},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(D,te){let he=getBigInt(Typed.dereference(te,this.type)),ye=mask(bS,256);if(this.signed){let D=mask(ye,8*this.size-1);(he>D||he<-(D+mS))&&this._throwError("value out-of-bounds",te),he=toTwos(he,256)}else(he<yS||he>mask(ye,8*this.size))&&this._throwError("value out-of-bounds",te);return D.writeValue(he)}decode(D){let te=mask(D.readValue(),8*this.size);return this.signed&&(te=function fromTwos(D,te){const he=getUint(D,"value"),ye=BigInt(getNumber(te,"width"));if(assert(he>>ye===qA,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:D}),he>>ye-GA)return-((~he&(GA<<ye)-GA)+GA);return he}(te,8*this.size)),te}},vS=class StringCoder extends uS{constructor(D){super("string",D)}defaultValue(){return""}encode(D,te){return super.encode(D,toUtf8Bytes$1(Typed.dereference(te,"string")))}decode(D){return toUtf8String$1(super.decode(D))}},wS=class TupleCoder extends OE{constructor(D,te){let he=!1;const ye=[];D.forEach((D=>{D.dynamic&&(he=!0),ye.push(D.type)}));super("tuple","tuple("+ye.join(",")+")",te,he),_defineProperty(this,"coders",void 0),defineProperties(this,{coders:Object.freeze(D.slice())})}defaultValue(){const D=[];this.coders.forEach((te=>{D.push(te.defaultValue())}));const te=this.coders.reduce(((D,te)=>{const he=te.localName;return he&&(D[he]||(D[he]=0),D[he]++),D}),{});return this.coders.forEach(((he,ye)=>{let be=he.localName;be&&1===te[be]&&("length"===be&&(be="_length"),null==D[be]&&(D[be]=D[ye]))})),Object.freeze(D)}encode(D,te){const he=Typed.dereference(te,"tuple");return pack$1(D,this.coders,he)}decode(D){return unpack$1(D,this.coders)}};function id$2(D){return keccak256$1(toUtf8Bytes$1(D))}var _S="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";const TS=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),AS=4;function read_compressed_payload(D){return function read_payload(D){let te=0;return()=>D[te++]}(function decode_arithmetic(D){let te=0;function u16(){return D[te++]<<8|D[te++]}let he=u16(),ye=1,be=[0,1];for(let D=1;D<he;D++)be.push(ye+=u16());let ve=u16(),we=te;te+=ve;let _e=0,Pe=0;function read_bit(){return 0==_e&&(Pe=Pe<<8|D[te++],_e=8),Pe>>--_e&1}const Ie=2**31,Re=Ie>>>1,ke=Ie-1;let Oe=0;for(let D=0;D<31;D++)Oe=Oe<<1|read_bit();let xe=[],Be=0,Fe=Ie;for(;;){let D=Math.floor(((Oe-Be+1)*ye-1)/Fe),te=0,ve=he;for(;ve-te>1;){let he=te+ve>>>1;D<be[he]?ve=he:te=he}if(0==te)break;xe.push(te);let we=Be+Math.floor(Fe*be[te]/ye),_e=Be+Math.floor(Fe*be[te+1]/ye)-1;for(;0==((we^_e)&Re);)Oe=Oe<<1&ke|read_bit(),we=we<<1&ke,_e=_e<<1&ke|1;for(;we&~_e&536870912;)Oe=Oe&Re|Oe<<1&ke>>>1|read_bit(),we=we<<1^Re,_e=(_e^Re)<<1|Re|1;Be=we,Fe=1+_e-we}let De=he-4;return xe.map((te=>{switch(te-De){case 3:return De+65792+(D[we++]<<16|D[we++]<<8|D[we++]);case 2:return De+256+(D[we++]<<8|D[we++]);case 1:return De+D[we++];default:return te-1}}))}(function unsafe_atob(D){let te=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach(((D,he)=>te[D.charCodeAt(0)]=he));let he=D.length,ye=new Uint8Array(6*he>>3);for(let be=0,ve=0,we=0,_e=0;be<he;be++)_e=_e<<6|te[D.charCodeAt(be)],we+=6,we>=8&&(ye[ve++]=_e>>(we-=8));return ye}(D)))}function signed(D){return 1&D?~D>>1:D>>1}function read_deltas(D,te){let he=Array(D);for(let ye=0,be=0;ye<D;ye++)he[ye]=be+=signed(te());return he}function read_sorted(D,te=0){let he=[];for(;;){let ye=D(),be=D();if(!be)break;te+=ye;for(let D=0;D<be;D++)he.push(te+D);te+=be+1}return he}function read_sorted_arrays(D){return read_array_while((()=>{let te=read_sorted(D);if(te.length)return te}))}function read_mapped(D){let te=[];for(;;){let he=D();if(0==he)break;te.push(read_linear_table(he,D))}for(;;){let he=D()-1;if(he<0)break;te.push(read_replacement_table(he,D))}return te.flat()}function read_array_while(D){let te=[];for(;;){let he=D(te.length);if(!he)break;te.push(he)}return te}function read_transposed(D,te,he){let ye=Array(D).fill().map((()=>[]));for(let be=0;be<te;be++)read_deltas(D,he).forEach(((D,te)=>ye[te].push(D)));return ye}function read_linear_table(D,te){let he=1+te(),ye=te(),be=read_array_while(te);return read_transposed(be.length,1+D,te).flatMap(((D,te)=>{let[ve,...we]=D;return Array(be[te]).fill().map(((D,te)=>{let be=te*ye;return[ve+te*he,we.map((D=>D+be))]}))}))}function read_replacement_table(D,te){return read_transposed(1+te(),1+D,te).map((D=>[D[0],D.slice(1)]))}function quote_cp(D){return`{${function hex_cp(D){return D.toString(16).toUpperCase().padStart(2,"0")}(D)}}`}function str_from_cps(D){let te=D.length;if(te<4096)return String.fromCodePoint(...D);let he=[];for(let ye=0;ye<te;)he.push(String.fromCodePoint(...D.slice(ye,ye+=4096)));return he.join("")}function compare_arrays(D,te){let he=D.length,ye=he-te.length;for(let be=0;0==ye&&be<he;be++)ye=D[be]-te[be];return ye}var ES="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";const PS=44032,SS=4352,CS=4449,IS=4519,RS=28,kS=21*RS,OS=PS+19*kS,xS=SS+19,NS=CS+21,MS=IS+RS;function unpack_cc(D){return D>>24&255}function unpack_cp(D){return 16777215&D}let BS,FS,DS,LS;function is_hangul(D){return D>=PS&&D<OS}function compose_pair(D,te){if(D>=SS&&D<xS&&te>=CS&&te<NS)return PS+(D-SS)*kS+(te-CS)*RS;if(is_hangul(D)&&te>IS&&te<MS&&(D-PS)%RS==0)return D+(te-IS);{let he=LS.get(D);return he&&(he=he.get(te),he)?he:-1}}function decomposed(D){BS||function init$1(){let D=read_compressed_payload(ES);BS=new Map(read_sorted_arrays(D).flatMap(((D,te)=>D.map((D=>[D,te+1<<24]))))),FS=new Set(read_sorted(D)),DS=new Map,LS=new Map;for(let[te,he]of read_mapped(D)){if(!FS.has(te)&&2==he.length){let[D,ye]=he,be=LS.get(D);be||(be=new Map,LS.set(D,be)),be.set(ye,te)}DS.set(te,he.reverse())}}();let te=[],he=[],ye=!1;function add(D){let he=BS.get(D);he&&(ye=!0,D|=he),te.push(D)}for(let ye of D)for(;;){if(ye<128)te.push(ye);else if(is_hangul(ye)){let D=ye-PS,te=D%kS/RS|0,he=D%RS;add(SS+(D/kS|0)),add(CS+te),he>0&&add(IS+he)}else{let D=DS.get(ye);D?he.push(...D):add(ye)}if(!he.length)break;ye=he.pop()}if(ye&&te.length>1){let D=unpack_cc(te[0]);for(let he=1;he<te.length;he++){let ye=unpack_cc(te[he]);if(0==ye||D<=ye){D=ye;continue}let be=he-1;for(;;){let he=te[be+1];if(te[be+1]=te[be],te[be]=he,!be)break;if(D=unpack_cc(te[--be]),D<=ye)break}D=unpack_cc(te[he])}}return te}function nfd(D){return decomposed(D).map(unpack_cp)}function nfc(D){return function composed_from_decomposed(D){let te=[],he=[],ye=-1,be=0;for(let ve of D){let D=unpack_cc(ve),we=unpack_cp(ve);if(-1==ye)0==D?ye=we:te.push(we);else if(be>0&&be>=D)0==D?(te.push(ye,...he),he.length=0,ye=we):he.push(we),be=D;else{let ve=compose_pair(ye,we);ve>=0?ye=ve:0==be&&0==D?(te.push(ye),ye=we):(he.push(we),be=D)}}return ye>=0&&te.push(ye,...he),te}(decomposed(D))}const US=45,$S=".",qS=65039,GS=1,Array_from=D=>Array.from(D);function group_has_cp(D,te){return D.P.has(te)||D.Q.has(te)}class Emoji extends Array{get is_emoji(){return!0}}let jS,HS,zS,WS,VS,KS,JS,XS,QS,ZS,YS;function init(){if(jS)return;let D=read_compressed_payload(_S);const read_sorted_array=()=>read_sorted(D),read_sorted_set=()=>new Set(read_sorted_array()),set_add_many=(D,te)=>te.forEach((te=>D.add(te)));jS=new Map(read_mapped(D)),HS=read_sorted_set(),zS=read_sorted_array(),WS=new Set(read_sorted_array().map((D=>zS[D]))),zS=new Set(zS),VS=read_sorted_set(),read_sorted_set();let te=read_sorted_arrays(D),he=D();const read_chunked=()=>{let D=new Set;return read_sorted_array().forEach((he=>set_add_many(D,te[he]))),set_add_many(D,read_sorted_array()),D};KS=read_array_while((te=>{let ye=read_array_while(D).map((D=>D+96));if(ye.length){let be=te>=he;return ye[0]-=32,ye=str_from_cps(ye),be&&(ye=`Restricted[${ye}]`),{N:ye,P:read_chunked(),Q:read_chunked(),M:!D(),R:be}}})),JS=read_sorted_set(),XS=new Map;let ye=read_sorted_array().concat(Array_from(JS)).sort(((D,te)=>D-te));ye.forEach(((te,he)=>{let be=D(),ve=ye[he]=be?ye[he-be]:{V:[],M:new Map};ve.V.push(te),JS.has(te)||XS.set(te,ve)}));for(let{V:D,M:te}of new Set(XS.values())){let he=[];for(let te of D){let D=KS.filter((D=>group_has_cp(D,te))),ye=he.find((({G:te})=>D.some((D=>te.has(D)))));ye||(ye={G:new Set,V:[]},he.push(ye)),ye.V.push(te),set_add_many(ye.G,D)}let ye=he.flatMap((D=>Array_from(D.G)));for(let{G:D,V:be}of he){let he=new Set(ye.filter((te=>!D.has(te))));for(let D of be)te.set(D,he)}}QS=new Set;let be=new Set;const add_to_union=D=>QS.has(D)?be.add(D):QS.add(D);for(let D of KS){for(let te of D.P)add_to_union(te);for(let te of D.Q)add_to_union(te)}for(let D of QS)XS.has(D)||be.has(D)||XS.set(D,GS);set_add_many(QS,nfd(QS)),ZS=function read_trie(D){let te=[],he=read_sorted(D);return function expand({S:D,B:he},ye,be){if(!(4&D&&be===ye[ye.length-1])){2&D&&(be=ye[ye.length-1]),1&D&&te.push(ye);for(let D of he)for(let te of D.Q)expand(D,[...ye,te],be)}}(function decode(te){let ye=D(),be=read_array_while((()=>{let te=read_sorted(D).map((D=>he[D]));if(te.length)return decode(te)}));return{S:ye,B:be,Q:te}}([]),[]),te}(D).map((D=>Emoji.from(D))).sort(compare_arrays),YS=new Map;for(let D of ZS){let te=[YS];for(let he of D){let D=te.map((D=>{let te=D.get(he);return te||(te=new Map,D.set(he,te)),te}));he===qS?te.push(...D):te=D}for(let he of te)he.V=D}}function quoted_cp(D){return(should_escape(D)?"":`${bidi_qq(safe_str_from_cps([D]))} `)+quote_cp(D)}function bidi_qq(D){return`"${D}"‎`}function safe_str_from_cps(D,te=1/0,he=quote_cp){let ye=[];(function is_combining_mark(D){return init(),zS.has(D)})(D[0])&&ye.push("◌"),D.length>te&&(te>>=1,D=[...D.slice(0,te),8230,...D.slice(-te)]);let be=0,ve=D.length;for(let te=0;te<ve;te++){let ve=D[te];should_escape(ve)&&(ye.push(str_from_cps(D.slice(be,te))),ye.push(he(ve)),be=te+1)}return ye.push(str_from_cps(D.slice(be,ve))),ye.join("")}function should_escape(D){return init(),VS.has(D)}function ens_normalize(D){return function flatten(D){return D.map((({input:te,error:he,output:ye})=>{if(he){let ye=he.message;throw new Error(1==D.length?ye:`Invalid label ${bidi_qq(safe_str_from_cps(te,63))}: ${ye}`)}return str_from_cps(ye)})).join($S)}(function split(D,te,he){if(!D)return[];init();let ye=0;return D.split($S).map((D=>{let be=function explode_cp(D){let te=[];for(let he=0,ye=D.length;he<ye;){let ye=D.codePointAt(he);he+=ye<65536?1:2,te.push(ye)}return te}(D),ve={input:be,offset:ye};ye+=be.length+1;try{let D,ye=ve.tokens=function tokens_from_str(D,te,he){let ye=[],be=[];D=D.slice().reverse();for(;D.length;){let ve=consume_emoji_reversed(D);if(ve)be.length&&(ye.push(te(be)),be=[]),ye.push(he(ve));else{let te=D.pop();if(QS.has(te))be.push(te);else{let D=jS.get(te);if(D)be.push(...D);else if(!HS.has(te))throw error_disallowed(te)}}}be.length&&ye.push(te(be));return ye}(be,te,he),we=ye.length;if(!we)throw new Error("empty label");let _e=ve.output=ye.flat();if(function check_leading_underscore(D){for(let te=D.lastIndexOf(95);te>0;)if(95!==D[--te])throw new Error("underscore allowed only at start")}(_e),!(ve.emoji=we>1||ye[0].is_emoji)&&_e.every((D=>D<128)))!function check_label_extension(D){if(D.length>=4&&D[2]==US&&D[3]==US)throw new Error(`invalid label extension: "${str_from_cps(D.slice(0,4))}"`)}(_e),D="ASCII";else{let te=ye.flatMap((D=>D.is_emoji?[]:D));if(te.length){if(zS.has(_e[0]))throw error_placement("leading combining mark");for(let D=1;D<we;D++){let te=ye[D];if(!te.is_emoji&&zS.has(te[0]))throw error_placement(`emoji + combining mark: "${str_from_cps(ye[D-1])} + ${safe_str_from_cps([te[0]])}"`)}!function check_fenced(D){let te=D[0],he=TS.get(te);if(he)throw error_placement(`leading ${he}`);let ye=D.length,be=-1;for(let ve=1;ve<ye;ve++){te=D[ve];let ye=TS.get(te);if(ye){if(be==ve)throw error_placement(`${he} + ${ye}`);be=ve+1,he=ye}}if(be==ye)throw error_placement(`trailing ${he}`)}(_e);let he=Array_from(new Set(te)),[be]=function determine_group(D){let te=KS;for(let he of D){let D=te.filter((D=>group_has_cp(D,he)));if(!D.length)throw KS.some((D=>group_has_cp(D,he)))?error_group_member(te[0],he):error_disallowed(he);if(te=D,1==D.length)break}return te}(he);!function check_group(D,te){for(let he of te)if(!group_has_cp(D,he))throw error_group_member(D,he);if(D.M){let D=nfd(te);for(let te=1,he=D.length;te<he;te++)if(WS.has(D[te])){let ye=te+1;for(let be;ye<he&&WS.has(be=D[ye]);ye++)for(let he=te;he<ye;he++)if(D[he]==be)throw new Error(`duplicate non-spacing marks: ${quoted_cp(be)}`);if(ye-te>AS)throw new Error(`excessive non-spacing marks: ${bidi_qq(safe_str_from_cps(D.slice(te-1,ye)))} (${ye-te}/${AS})`);te=ye}}}(be,te),function check_whole(D,te){let he,ye=[];for(let D of te){let te=XS.get(D);if(te===GS)return;if(te){let ye=te.M.get(D);if(he=he?he.filter((D=>ye.has(D))):Array_from(ye),!he.length)return}else ye.push(D)}if(he)for(let te of he)if(ye.every((D=>group_has_cp(te,D))))throw new Error(`whole-script confusable: ${D.N}/${te.N}`)}(be,he),D=be.N}else D="Emoji"}ve.type=D}catch(D){ve.error=D}return ve}))}(D,nfc,filter_fe0f))}function error_disallowed(D){return new Error(`disallowed character: ${quoted_cp(D)}`)}function error_group_member(D,te){let he=quoted_cp(te),ye=KS.find((D=>D.P.has(te)));return ye&&(he=`${ye.N} ${he}`),new Error(`illegal mixture: ${D.N} + ${he}`)}function error_placement(D){return new Error(`illegal placement: ${D}`)}function filter_fe0f(D){return D.filter((D=>D!=qS))}function consume_emoji_reversed(D,te){let he,ye=YS,be=D.length;for(;be&&(ye=ye.get(D[--be]),ye);){let{V:te}=ye;te&&(he=te,D.length=be)}return he}const eC=new Uint8Array(32);function checkComponent(D){return assertArgument(0!==D.length,"invalid ENS name; empty component","comp",D),D}function ensNameSplit(D){const te=toUtf8Bytes$1(function ensNormalize(D){try{if(0===D.length)throw new Error("empty label");return ens_normalize(D)}catch(te){assertArgument(!1,`invalid ENS name (${te.message})`,"name",D)}}(D)),he=[];if(0===D.length)return he;let ye=0;for(let D=0;D<te.length;D++){46===te[D]&&(he.push(checkComponent(te.slice(ye,D))),ye=D+1)}return assertArgument(ye<te.length,"invalid ENS name; empty component","name",D),he.push(checkComponent(te.slice(ye))),he}function namehash$1(D){assertArgument("string"==typeof D,"invalid ENS name; not a string","name",D),assertArgument(D.length,"invalid ENS name (empty label)","name",D);let te=eC;const he=ensNameSplit(D);for(;he.length;)te=keccak256$1(concat$1([te,keccak256$1(he.pop())]));return hexlify$1(te)}function dnsEncode(D,te){const he=te;return assertArgument(he<=255,"DNS encoded label cannot exceed 255","length",he),hexlify$1(concat$1(ensNameSplit(D).map((te=>{assertArgument(te.length<=he,`label ${JSON.stringify(D)} exceeds ${he} bytes`,"name",D);const ye=new Uint8Array(te.length+1);return ye.set(te,1),ye[0]=ye.length-1,ye}))))+"00"}function accessSetify$1(D,te){return{address:getAddress$1(D),storageKeys:te.map(((D,te)=>(assertArgument(isHexString$1(D,32),"invalid slot",`storageKeys[${te}]`,D),D.toLowerCase())))}}function accessListify$1(D){if(Array.isArray(D))return D.map(((te,he)=>Array.isArray(te)?(assertArgument(2===te.length,"invalid slot set",`value[${he}]`,te),accessSetify$1(te[0],te[1])):(assertArgument(null!=te&&"object"==typeof te,"invalid address-slot set","value",D),accessSetify$1(te.address,te.storageKeys))));assertArgument(null!=D&&"object"==typeof D,"invalid access list","value",D);const te=Object.keys(D).map((te=>{const he=D[te].reduce(((D,te)=>(D[te]=!0,D)),{});return accessSetify$1(te,Object.keys(he).sort())}));return te.sort(((D,te)=>D.address.localeCompare(te.address))),te}function recoverAddress(D,te){return function computeAddress(D){let te;return te="string"==typeof D?SigningKey.computePublicKey(D,!1):D.publicKey,getAddress$1(keccak256$1("0x"+te.substring(4)).substring(26))}(SigningKey.recoverPublicKey(D,te))}eC.fill(0);const tC=BigInt(0),rC=BigInt(2),nC=BigInt(27),aC=BigInt(28),iC=BigInt(35),sC=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function handleAddress(D){return"0x"===D?null:getAddress$1(D)}function handleAccessList(D,te){try{return accessListify$1(D)}catch(he){assertArgument(!1,he.message,te,D)}}function handleNumber(D,te){return"0x"===D?0:getNumber(D,te)}function handleUint(D,te){if("0x"===D)return tC;const he=getBigInt(D,te);return assertArgument(he<=sC,"value exceeds uint size",te,he),he}function formatNumber(D,te){const he=getBigInt(D,"value"),ye=toBeArray(he);return assertArgument(ye.length<=32,"value too large",`tx.${te}`,he),ye}function formatAccessList(D){return accessListify$1(D).map((D=>[D.address,D.storageKeys]))}function formatHashes(D,te){assertArgument(Array.isArray(D),`invalid ${te}`,"value",D);for(let te=0;te<D.length;te++)assertArgument(isHexString$1(D[te],32),"invalid ${ param } hash",`value[${te}]`,D[te]);return D}function _serializeLegacy(D,te){const he=[formatNumber(D.nonce,"nonce"),formatNumber(D.gasPrice||0,"gasPrice"),formatNumber(D.gasLimit,"gasLimit"),D.to||"0x",formatNumber(D.value,"value"),D.data];let ye=tC;if(D.chainId!=tC)ye=getBigInt(D.chainId,"tx.chainId"),assertArgument(!te||null==te.networkV||te.legacyChainId===ye,"tx.chainId/sig.v mismatch","sig",te);else if(D.signature){const te=D.signature.legacyChainId;null!=te&&(ye=te)}if(!te)return ye!==tC&&(he.push(toBeArray(ye)),he.push("0x"),he.push("0x")),encodeRlp(he);let be=BigInt(27+te.yParity);return ye!==tC?be=Signature.getChainIdV(ye,te.v):BigInt(te.v)!==be&&assertArgument(!1,"tx.chainId/sig.v mismatch","sig",te),he.push(toBeArray(be)),he.push(toBeArray(te.r)),he.push(toBeArray(te.s)),encodeRlp(he)}function _parseEipSignature(D,te){let he;try{if(he=handleNumber(te[0],"yParity"),0!==he&&1!==he)throw new Error("bad yParity")}catch(D){assertArgument(!1,"invalid yParity","yParity",te[0])}const ye=zeroPadValue(te[1],32),be=zeroPadValue(te[2],32),ve=Signature.from({r:ye,s:be,yParity:he});D.signature=ve}function _serializeEip1559(D,te){const he=[formatNumber(D.chainId,"chainId"),formatNumber(D.nonce,"nonce"),formatNumber(D.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),formatNumber(D.maxFeePerGas||0,"maxFeePerGas"),formatNumber(D.gasLimit,"gasLimit"),D.to||"0x",formatNumber(D.value,"value"),D.data,formatAccessList(D.accessList||[])];return te&&(he.push(formatNumber(te.yParity,"yParity")),he.push(toBeArray(te.r)),he.push(toBeArray(te.s))),concat$1(["0x02",encodeRlp(he)])}function _serializeEip2930(D,te){const he=[formatNumber(D.chainId,"chainId"),formatNumber(D.nonce,"nonce"),formatNumber(D.gasPrice||0,"gasPrice"),formatNumber(D.gasLimit,"gasLimit"),D.to||"0x",formatNumber(D.value,"value"),D.data,formatAccessList(D.accessList||[])];return te&&(he.push(formatNumber(te.yParity,"recoveryParam")),he.push(toBeArray(te.r)),he.push(toBeArray(te.s))),concat$1(["0x01",encodeRlp(he)])}function _serializeEip4844(D,te){const he=[formatNumber(D.chainId,"chainId"),formatNumber(D.nonce,"nonce"),formatNumber(D.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),formatNumber(D.maxFeePerGas||0,"maxFeePerGas"),formatNumber(D.gasLimit,"gasLimit"),D.to||LP,formatNumber(D.value,"value"),D.data,formatAccessList(D.accessList||[]),formatNumber(D.maxFeePerBlobGas||0,"maxFeePerBlobGas"),formatHashes(D.blobVersionedHashes||[],"blobVersionedHashes")];return te&&(he.push(formatNumber(te.yParity,"yParity")),he.push(toBeArray(te.r)),he.push(toBeArray(te.s))),concat$1(["0x03",encodeRlp(he)])}var oC=new WeakMap,cC=new WeakMap,dC=new WeakMap,uC=new WeakMap,fC=new WeakMap,lC=new WeakMap,pC=new WeakMap,hC=new WeakMap,yC=new WeakMap,mC=new WeakMap,bC=new WeakMap,gC=new WeakMap,vC=new WeakMap,wC=new WeakMap;class Transaction{get type(){return _classPrivateFieldGet2(oC,this)}set type(D){switch(D){case null:_classPrivateFieldSet2(oC,this,null);break;case 0:case"legacy":_classPrivateFieldSet2(oC,this,0);break;case 1:case"berlin":case"eip-2930":_classPrivateFieldSet2(oC,this,1);break;case 2:case"london":case"eip-1559":_classPrivateFieldSet2(oC,this,2);break;case 3:case"cancun":case"eip-4844":_classPrivateFieldSet2(oC,this,3);break;default:assertArgument(!1,"unsupported transaction type","type",D)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844"}return null}get to(){const D=_classPrivateFieldGet2(cC,this);return null==D&&3===this.type?LP:D}set to(D){_classPrivateFieldSet2(cC,this,null==D?null:getAddress$1(D))}get nonce(){return _classPrivateFieldGet2(uC,this)}set nonce(D){_classPrivateFieldSet2(uC,this,getNumber(D,"value"))}get gasLimit(){return _classPrivateFieldGet2(fC,this)}set gasLimit(D){_classPrivateFieldSet2(fC,this,getBigInt(D))}get gasPrice(){const D=_classPrivateFieldGet2(lC,this);return null!=D||0!==this.type&&1!==this.type?D:tC}set gasPrice(D){_classPrivateFieldSet2(lC,this,null==D?null:getBigInt(D,"gasPrice"))}get maxPriorityFeePerGas(){const D=_classPrivateFieldGet2(pC,this);return null==D?2===this.type||3===this.type?tC:null:D}set maxPriorityFeePerGas(D){_classPrivateFieldSet2(pC,this,null==D?null:getBigInt(D,"maxPriorityFeePerGas"))}get maxFeePerGas(){const D=_classPrivateFieldGet2(hC,this);return null==D?2===this.type||3===this.type?tC:null:D}set maxFeePerGas(D){_classPrivateFieldSet2(hC,this,null==D?null:getBigInt(D,"maxFeePerGas"))}get data(){return _classPrivateFieldGet2(dC,this)}set data(D){_classPrivateFieldSet2(dC,this,hexlify$1(D))}get value(){return _classPrivateFieldGet2(yC,this)}set value(D){_classPrivateFieldSet2(yC,this,getBigInt(D,"value"))}get chainId(){return _classPrivateFieldGet2(mC,this)}set chainId(D){_classPrivateFieldSet2(mC,this,getBigInt(D))}get signature(){return _classPrivateFieldGet2(bC,this)||null}set signature(D){_classPrivateFieldSet2(bC,this,null==D?null:Signature.from(D))}get accessList(){const D=_classPrivateFieldGet2(gC,this)||null;return null==D?1===this.type||2===this.type||3===this.type?[]:null:D}set accessList(D){_classPrivateFieldSet2(gC,this,null==D?null:accessListify$1(D))}get maxFeePerBlobGas(){const D=_classPrivateFieldGet2(vC,this);return null==D&&3===this.type?tC:D}set maxFeePerBlobGas(D){_classPrivateFieldSet2(vC,this,null==D?null:getBigInt(D,"maxFeePerBlobGas"))}get blobVersionedHashes(){let D=_classPrivateFieldGet2(wC,this);return null==D&&3===this.type?[]:D}set blobVersionedHashes(D){if(null!=D){assertArgument(Array.isArray(D),"blobVersionedHashes must be an Array","value",D),D=D.slice();for(let te=0;te<D.length;te++)assertArgument(isHexString$1(D[te],32),"invalid blobVersionedHash",`value[${te}]`,D[te])}_classPrivateFieldSet2(wC,this,D)}constructor(){_classPrivateFieldInitSpec(this,oC,void 0),_classPrivateFieldInitSpec(this,cC,void 0),_classPrivateFieldInitSpec(this,dC,void 0),_classPrivateFieldInitSpec(this,uC,void 0),_classPrivateFieldInitSpec(this,fC,void 0),_classPrivateFieldInitSpec(this,lC,void 0),_classPrivateFieldInitSpec(this,pC,void 0),_classPrivateFieldInitSpec(this,hC,void 0),_classPrivateFieldInitSpec(this,yC,void 0),_classPrivateFieldInitSpec(this,mC,void 0),_classPrivateFieldInitSpec(this,bC,void 0),_classPrivateFieldInitSpec(this,gC,void 0),_classPrivateFieldInitSpec(this,vC,void 0),_classPrivateFieldInitSpec(this,wC,void 0),_classPrivateFieldSet2(oC,this,null),_classPrivateFieldSet2(cC,this,null),_classPrivateFieldSet2(uC,this,0),_classPrivateFieldSet2(fC,this,tC),_classPrivateFieldSet2(lC,this,null),_classPrivateFieldSet2(pC,this,null),_classPrivateFieldSet2(hC,this,null),_classPrivateFieldSet2(dC,this,"0x"),_classPrivateFieldSet2(yC,this,tC),_classPrivateFieldSet2(mC,this,tC),_classPrivateFieldSet2(bC,this,null),_classPrivateFieldSet2(gC,this,null),_classPrivateFieldSet2(vC,this,null),_classPrivateFieldSet2(wC,this,null)}get hash(){return null==this.signature?null:keccak256$1(this.serialized)}get unsignedHash(){return keccak256$1(this.unsignedSerialized)}get from(){return null==this.signature?null:recoverAddress(this.unsignedHash,this.signature)}get fromPublicKey(){return null==this.signature?null:SigningKey.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return null!=this.signature}get serialized(){switch(assert(null!=this.signature,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"}),this.inferType()){case 0:return _serializeLegacy(this,this.signature);case 1:return _serializeEip2930(this,this.signature);case 2:return _serializeEip1559(this,this.signature);case 3:return _serializeEip4844(this,this.signature)}assert(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get unsignedSerialized(){switch(this.inferType()){case 0:return _serializeLegacy(this);case 1:return _serializeEip2930(this);case 2:return _serializeEip1559(this);case 3:return _serializeEip4844(this)}assert(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".unsignedSerialized"})}inferType(){const D=this.inferTypes();return D.indexOf(2)>=0?2:D.pop()}inferTypes(){const D=null!=this.gasPrice,te=null!=this.maxFeePerGas||null!=this.maxPriorityFeePerGas,he=null!=this.accessList,ye=null!=_classPrivateFieldGet2(vC,this)||_classPrivateFieldGet2(wC,this);null!=this.maxFeePerGas&&null!=this.maxPriorityFeePerGas&&assert(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),assert(!te||0!==this.type&&1!==this.type,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),assert(0!==this.type||!he,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const be=[];return null!=this.type?be.push(this.type):te?be.push(2):D?(be.push(1),he||be.push(0)):he?(be.push(1),be.push(2)):(ye&&this.to||(be.push(0),be.push(1),be.push(2)),be.push(3)),be.sort(),be}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}clone(){return Transaction.from(this)}toJSON(){const s=D=>null==D?null:D.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:s(this.gasLimit),gasPrice:s(this.gasPrice),maxPriorityFeePerGas:s(this.maxPriorityFeePerGas),maxFeePerGas:s(this.maxFeePerGas),value:s(this.value),chainId:s(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(D){if(null==D)return new Transaction;if("string"==typeof D){const te=getBytes(D);if(te[0]>=127)return Transaction.from(function _parseLegacy(D){const te=decodeRlp(D);assertArgument(Array.isArray(te)&&(9===te.length||6===te.length),"invalid field count for legacy transaction","data",D);const he={type:0,nonce:handleNumber(te[0],"nonce"),gasPrice:handleUint(te[1],"gasPrice"),gasLimit:handleUint(te[2],"gasLimit"),to:handleAddress(te[3]),value:handleUint(te[4],"value"),data:hexlify$1(te[5]),chainId:tC};if(6===te.length)return he;const ye=handleUint(te[6],"v"),be=handleUint(te[7],"r"),ve=handleUint(te[8],"s");if(be===tC&&ve===tC)he.chainId=ye;else{let be=(ye-iC)/rC;be<tC&&(be=tC),he.chainId=be,assertArgument(be!==tC||ye===nC||ye===aC,"non-canonical legacy v","v",te[6]),he.signature=Signature.from({r:zeroPadValue(te[7],32),s:zeroPadValue(te[8],32),v:ye}),he.hash=keccak256$1(D)}return he}(te));switch(te[0]){case 1:return Transaction.from(function _parseEip2930(D){const te=decodeRlp(getBytes(D).slice(1));assertArgument(Array.isArray(te)&&(8===te.length||11===te.length),"invalid field count for transaction type: 1","data",hexlify$1(D));const he={type:1,chainId:handleUint(te[0],"chainId"),nonce:handleNumber(te[1],"nonce"),gasPrice:handleUint(te[2],"gasPrice"),gasLimit:handleUint(te[3],"gasLimit"),to:handleAddress(te[4]),value:handleUint(te[5],"value"),data:hexlify$1(te[6]),accessList:handleAccessList(te[7],"accessList")};return 8===te.length||(he.hash=keccak256$1(D),_parseEipSignature(he,te.slice(8))),he}(te));case 2:return Transaction.from(function _parseEip1559(D){const te=decodeRlp(getBytes(D).slice(1));assertArgument(Array.isArray(te)&&(9===te.length||12===te.length),"invalid field count for transaction type: 2","data",hexlify$1(D));const he={type:2,chainId:handleUint(te[0],"chainId"),nonce:handleNumber(te[1],"nonce"),maxPriorityFeePerGas:handleUint(te[2],"maxPriorityFeePerGas"),maxFeePerGas:handleUint(te[3],"maxFeePerGas"),gasPrice:null,gasLimit:handleUint(te[4],"gasLimit"),to:handleAddress(te[5]),value:handleUint(te[6],"value"),data:hexlify$1(te[7]),accessList:handleAccessList(te[8],"accessList")};return 9===te.length||(he.hash=keccak256$1(D),_parseEipSignature(he,te.slice(9))),he}(te));case 3:return Transaction.from(function _parseEip4844(D){const te=decodeRlp(getBytes(D).slice(1));assertArgument(Array.isArray(te)&&(11===te.length||14===te.length),"invalid field count for transaction type: 3","data",hexlify$1(D));const he={type:3,chainId:handleUint(te[0],"chainId"),nonce:handleNumber(te[1],"nonce"),maxPriorityFeePerGas:handleUint(te[2],"maxPriorityFeePerGas"),maxFeePerGas:handleUint(te[3],"maxFeePerGas"),gasPrice:null,gasLimit:handleUint(te[4],"gasLimit"),to:handleAddress(te[5]),value:handleUint(te[6],"value"),data:hexlify$1(te[7]),accessList:handleAccessList(te[8],"accessList"),maxFeePerBlobGas:handleUint(te[9],"maxFeePerBlobGas"),blobVersionedHashes:te[10]};assertArgument(null!=he.to,"invalid address for transaction type: 3","data",D),assertArgument(Array.isArray(he.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",D);for(let te=0;te<he.blobVersionedHashes.length;te++)assertArgument(isHexString$1(he.blobVersionedHashes[te],32),`invalid blobVersionedHash at index ${te}: must be length 32`,"data",D);return 11===te.length||(he.hash=keccak256$1(D),_parseEipSignature(he,te.slice(11))),he}(te))}assert(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const te=new Transaction;return null!=D.type&&(te.type=D.type),null!=D.to&&(te.to=D.to),null!=D.nonce&&(te.nonce=D.nonce),null!=D.gasLimit&&(te.gasLimit=D.gasLimit),null!=D.gasPrice&&(te.gasPrice=D.gasPrice),null!=D.maxPriorityFeePerGas&&(te.maxPriorityFeePerGas=D.maxPriorityFeePerGas),null!=D.maxFeePerGas&&(te.maxFeePerGas=D.maxFeePerGas),null!=D.maxFeePerBlobGas&&(te.maxFeePerBlobGas=D.maxFeePerBlobGas),null!=D.data&&(te.data=D.data),null!=D.value&&(te.value=D.value),null!=D.chainId&&(te.chainId=D.chainId),null!=D.signature&&(te.signature=Signature.from(D.signature)),null!=D.accessList&&(te.accessList=D.accessList),null!=D.blobVersionedHashes&&(te.blobVersionedHashes=D.blobVersionedHashes),null!=D.hash&&(assertArgument(te.isSigned(),"unsigned transaction cannot define hash","tx",D),assertArgument(te.hash===D.hash,"hash mismatch","tx",D)),null!=D.from&&(assertArgument(te.isSigned(),"unsigned transaction cannot define from","tx",D),assertArgument(te.from.toLowerCase()===(D.from||"").toLowerCase(),"from mismatch","tx",D)),te}}const _C=new Uint8Array(32);_C.fill(0);const TC=BigInt(-1),AC=BigInt(0),EC=BigInt(1),PC=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const SC=toBeHex(EC,32),CC=toBeHex(AC,32),IC={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},RC=["name","version","chainId","verifyingContract","salt"];function checkString(D){return function(te){return assertArgument("string"==typeof te,`invalid domain value for ${JSON.stringify(D)}`,`domain.${D}`,te),te}}const kC={name:checkString("name"),version:checkString("version"),chainId:function(D){const te=getBigInt(D,"domain.chainId");return assertArgument(te>=0,"invalid chain ID","domain.chainId",D),Number.isSafeInteger(te)?Number(te):toQuantity(te)},verifyingContract:function(D){try{return getAddress$1(D).toLowerCase()}catch(D){}assertArgument(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",D)},salt:function(D){const te=getBytes(D,"domain.salt");return assertArgument(32===te.length,'invalid domain value "salt"',"domain.salt",D),hexlify$1(te)}};function getBaseEncoder(D){{const te=D.match(/^(u?)int(\d+)$/);if(te){const he=""===te[1],ye=parseInt(te[2]);assertArgument(ye%8==0&&0!==ye&&ye<=256&&te[2]===String(ye),"invalid numeric width","type",D);const be=mask(PC,he?ye-1:ye),ve=he?(be+EC)*TC:AC;return function(te){const ye=getBigInt(te,"value");return assertArgument(ye>=ve&&ye<=be,`value out-of-bounds for ${D}`,"value",ye),toBeHex(he?toTwos(ye,256):ye,32)}}}{const te=D.match(/^bytes(\d+)$/);if(te){const he=parseInt(te[1]);return assertArgument(0!==he&&he<=32&&te[1]===String(he),"invalid bytes width","type",D),function(te){return assertArgument(getBytes(te).length===he,`invalid length for ${D}`,"value",te),function hexPadRight(D){const te=getBytes(D),he=te.length%32;return he?concat$1([te,_C.slice(he)]):hexlify$1(te)}(te)}}}switch(D){case"address":return function(D){return zeroPadValue(getAddress$1(D),32)};case"bool":return function(D){return D?SC:CC};case"bytes":return function(D){return keccak256$1(D)};case"string":return function(D){return id$2(D)}}return null}function encodeType(D,te){return`${D}(${te.map((({name:D,type:te})=>te+" "+D)).join(",")})`}function splitArray(D){const te=D.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return te?{base:te[1],index:te[2]+te[4],array:{base:te[1],prefix:te[1]+te[2],count:te[5]?parseInt(te[5]):-1}}:{base:D}}var OC,xC=new WeakMap,NC=new WeakMap,MC=new WeakMap,BC=new WeakSet;class TypedDataEncoder{get types(){return JSON.parse(_classPrivateFieldGet2(xC,this))}constructor(D){_classPrivateMethodInitSpec(this,BC),_defineProperty(this,"primaryType",void 0),_classPrivateFieldInitSpec(this,xC,void 0),_classPrivateFieldInitSpec(this,NC,void 0),_classPrivateFieldInitSpec(this,MC,void 0),_classPrivateFieldSet2(NC,this,new Map),_classPrivateFieldSet2(MC,this,new Map);const te=new Map,he=new Map,ye=new Map,be={};Object.keys(D).forEach((ve=>{be[ve]=D[ve].map((({name:te,type:he})=>{let{base:ye,index:be}=splitArray(he);return"int"!==ye||D.int||(ye="int256"),"uint"!==ye||D.uint||(ye="uint256"),{name:te,type:ye+(be||"")}})),te.set(ve,new Set),he.set(ve,[]),ye.set(ve,new Set)})),_classPrivateFieldSet2(xC,this,JSON.stringify(be));for(const ye in be){const ve=new Set;for(const we of be[ye]){assertArgument(!ve.has(we.name),`duplicate variable name ${JSON.stringify(we.name)} in ${JSON.stringify(ye)}`,"types",D),ve.add(we.name);const be=splitArray(we.type).base;assertArgument(be!==ye,`circular type reference to ${JSON.stringify(be)}`,"types",D);getBaseEncoder(be)||(assertArgument(he.has(be),`unknown type ${JSON.stringify(be)}`,"types",D),he.get(be).push(ye),te.get(ye).add(be))}}const ve=Array.from(he.keys()).filter((D=>0===he.get(D).length));assertArgument(0!==ve.length,"missing primary type","types",D),assertArgument(1===ve.length,`ambiguous primary types or unused types: ${ve.map((D=>JSON.stringify(D))).join(", ")}`,"types",D),defineProperties(this,{primaryType:ve[0]}),function checkCircular(be,ve){assertArgument(!ve.has(be),`circular type reference to ${JSON.stringify(be)}`,"types",D),ve.add(be);for(const D of te.get(be))if(he.has(D)){checkCircular(D,ve);for(const te of ve)ye.get(te).add(D)}ve.delete(be)}(this.primaryType,new Set);for(const[D,te]of ye){const he=Array.from(te);he.sort(),_classPrivateFieldGet2(NC,this).set(D,encodeType(D,be[D])+he.map((D=>encodeType(D,be[D]))).join(""))}}getEncoder(D){let te=_classPrivateFieldGet2(MC,this).get(D);return te||(te=_assertClassBrand(BC,this,_getEncoder).call(this,D),_classPrivateFieldGet2(MC,this).set(D,te)),te}encodeType(D){const te=_classPrivateFieldGet2(NC,this).get(D);return assertArgument(te,`unknown type: ${JSON.stringify(D)}`,"name",D),te}encodeData(D,te){return this.getEncoder(D)(te)}hashStruct(D,te){return keccak256$1(this.encodeData(D,te))}encode(D){return this.encodeData(this.primaryType,D)}hash(D){return this.hashStruct(this.primaryType,D)}_visit(D,te,he){if(getBaseEncoder(D))return he(D,te);const ye=splitArray(D).array;if(ye)return assertArgument(-1===ye.count||ye.count===te.length,`array length mismatch; expected length ${ye.count}`,"value",te),te.map((D=>this._visit(ye.prefix,D,he)));const be=this.types[D];if(be)return be.reduce(((D,{name:ye,type:be})=>(D[ye]=this._visit(be,te[ye],he),D)),{});assertArgument(!1,`unknown type: ${D}`,"type",D)}visit(D,te){return this._visit(this.primaryType,D,te)}static from(D){return new TypedDataEncoder(D)}static getPrimaryType(D){return TypedDataEncoder.from(D).primaryType}static hashStruct(D,te,he){return TypedDataEncoder.from(te).hashStruct(D,he)}static hashDomain(D){const te=[];for(const he in D){if(null==D[he])continue;const ye=IC[he];assertArgument(ye,`invalid typed-data domain key: ${JSON.stringify(he)}`,"domain",D),te.push({name:he,type:ye})}return te.sort(((D,te)=>RC.indexOf(D.name)-RC.indexOf(te.name))),TypedDataEncoder.hashStruct("EIP712Domain",{EIP712Domain:te},D)}static encode(D,te,he){return concat$1(["0x1901",TypedDataEncoder.hashDomain(D),TypedDataEncoder.from(te).hash(he)])}static hash(D,te,he){return keccak256$1(TypedDataEncoder.encode(D,te,he))}static async resolveNames(D,te,he,ye){D=Object.assign({},D);for(const te in D)null==D[te]&&delete D[te];const be={};D.verifyingContract&&!isHexString$1(D.verifyingContract,20)&&(be[D.verifyingContract]="0x");const ve=TypedDataEncoder.from(te);ve.visit(he,((D,te)=>("address"!==D||isHexString$1(te,20)||(be[te]="0x"),te)));for(const D in be)be[D]=await ye(D);return D.verifyingContract&&be[D.verifyingContract]&&(D.verifyingContract=be[D.verifyingContract]),{domain:D,value:he=ve.visit(he,((D,te)=>"address"===D&&be[te]?be[te]:te))}}static getPayload(D,te,he){TypedDataEncoder.hashDomain(D);const ye={},be=[];RC.forEach((te=>{const he=D[te];null!=he&&(ye[te]=kC[te](he),be.push({name:te,type:IC[te]}))}));const ve=TypedDataEncoder.from(te);te=ve.types;const we=Object.assign({},te);return assertArgument(null==we.EIP712Domain,"types must not contain EIP712Domain type","types.EIP712Domain",te),we.EIP712Domain=be,ve.encode(he),{types:we,domain:ye,primaryType:ve.primaryType,message:ve.visit(he,((D,te)=>{if(D.match(/^bytes(\d*)/))return hexlify$1(getBytes(te));if(D.match(/^u?int/))return getBigInt(te).toString();switch(D){case"address":return te.toLowerCase();case"bool":return!!te;case"string":return assertArgument("string"==typeof te,"invalid string","value",te),te}assertArgument(!1,"unsupported type","type",D)}))}}}function _getEncoder(D){{const te=getBaseEncoder(D);if(te)return te}const te=splitArray(D).array;if(te){const D=te.prefix,he=this.getEncoder(D);return ye=>{assertArgument(-1===te.count||te.count===ye.length,`array length mismatch; expected length ${te.count}`,"value",ye);let be=ye.map(he);return _classPrivateFieldGet2(NC,this).has(D)&&(be=be.map(keccak256$1)),keccak256$1(concat$1(be))}}const he=this.types[D];if(he){const te=id$2(_classPrivateFieldGet2(NC,this).get(D));return D=>{const ye=he.map((({name:te,type:he})=>{const ye=this.getEncoder(he)(D[te]);return _classPrivateFieldGet2(NC,this).has(he)?keccak256$1(ye):ye}));return ye.unshift(te),concat$1(ye)}}assertArgument(!1,`unknown type: ${D}`,"type",D)}function setify(D){const te=new Set;return D.forEach((D=>te.add(D))),Object.freeze(te)}const FC=setify("external public payable override".split(" ")),DC="constant external internal payable private public pure view override",LC=setify(DC.split(" ")),UC="constructor error event fallback function receive struct",$C=setify(UC.split(" ")),qC="calldata memory storage payable indexed",GC=setify(qC.split(" ")),jC=setify([UC,qC,"tuple returns",DC].join(" ").split(" ")),HC={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},zC=new RegExp("^(\\s*)"),WC=new RegExp("^([0-9]+)"),VC=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),KC=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),JC=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");var XC=new WeakMap,QC=new WeakMap,ZC=new WeakSet;class TokenString{get offset(){return _classPrivateFieldGet2(XC,this)}get length(){return _classPrivateFieldGet2(QC,this).length-_classPrivateFieldGet2(XC,this)}constructor(D){_classPrivateMethodInitSpec(this,ZC),_classPrivateFieldInitSpec(this,XC,void 0),_classPrivateFieldInitSpec(this,QC,void 0),_classPrivateFieldSet2(XC,this,0),_classPrivateFieldSet2(QC,this,D.slice())}clone(){return new TokenString(_classPrivateFieldGet2(QC,this))}reset(){_classPrivateFieldSet2(XC,this,0)}popKeyword(D){const te=this.peek();if("KEYWORD"!==te.type||!D.has(te.text))throw new Error(`expected keyword ${te.text}`);return this.pop().text}popType(D){if(this.peek().type!==D){const te=this.peek();throw new Error(`expected ${D}; got ${te.type} ${JSON.stringify(te.text)}`)}return this.pop().text}popParen(){const D=this.peek();if("OPEN_PAREN"!==D.type)throw new Error("bad start");const te=_assertClassBrand(ZC,this,_subTokenString).call(this,_classPrivateFieldGet2(XC,this)+1,D.match+1);return _classPrivateFieldSet2(XC,this,D.match+1),te}popParams(){const D=this.peek();if("OPEN_PAREN"!==D.type)throw new Error("bad start");const te=[];for(;_classPrivateFieldGet2(XC,this)<D.match-1;){const D=this.peek().linkNext;te.push(_assertClassBrand(ZC,this,_subTokenString).call(this,_classPrivateFieldGet2(XC,this)+1,D)),_classPrivateFieldSet2(XC,this,D)}return _classPrivateFieldSet2(XC,this,D.match+1),te}peek(){if(_classPrivateFieldGet2(XC,this)>=_classPrivateFieldGet2(QC,this).length)throw new Error("out-of-bounds");return _classPrivateFieldGet2(QC,this)[_classPrivateFieldGet2(XC,this)]}peekKeyword(D){const te=this.peekType("KEYWORD");return null!=te&&D.has(te)?te:null}peekType(D){if(0===this.length)return null;const te=this.peek();return te.type===D?te.text:null}pop(){var D;const te=this.peek();return _classPrivateFieldSet2(XC,this,(D=_classPrivateFieldGet2(XC,this),++D)),te}toString(){const D=[];for(let te=_classPrivateFieldGet2(XC,this);te<_classPrivateFieldGet2(QC,this).length;te++){const he=_classPrivateFieldGet2(QC,this)[te];D.push(`${he.type}:${he.text}`)}return`<TokenString ${D.join(" ")}>`}}function _subTokenString(D=0,te=0){return new OC(_classPrivateFieldGet2(QC,this).slice(D,te).map((te=>Object.freeze(Object.assign({},te,{match:te.match-D,linkBack:te.linkBack-D,linkNext:te.linkNext-D})))))}function lex(D){const te=[],throwError=te=>{const he=be<D.length?JSON.stringify(D[be]):"$EOI";throw new Error(`invalid token ${he} at ${be}: ${te}`)};let he=[],ye=[],be=0;for(;be<D.length;){let ve=D.substring(be),we=ve.match(zC);we&&(be+=we[1].length,ve=D.substring(be));const _e={depth:he.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:be,value:-1};te.push(_e);let Pe=HC[ve[0]]||"";if(Pe){if(_e.type=Pe,_e.text=ve[0],be++,"OPEN_PAREN"===Pe)he.push(te.length-1),ye.push(te.length-1);else if("CLOSE_PAREN"==Pe)0===he.length&&throwError("no matching open bracket"),_e.match=he.pop(),te[_e.match].match=te.length-1,_e.depth--,_e.linkBack=ye.pop(),te[_e.linkBack].linkNext=te.length-1;else if("COMMA"===Pe)_e.linkBack=ye.pop(),te[_e.linkBack].linkNext=te.length-1,ye.push(te.length-1);else if("OPEN_BRACKET"===Pe)_e.type="BRACKET";else if("CLOSE_BRACKET"===Pe){let D=te.pop().text;if(te.length>0&&"NUMBER"===te[te.length-1].type){const he=te.pop().text;D=he+D,te[te.length-1].value=getNumber(he)}if(0===te.length||"BRACKET"!==te[te.length-1].type)throw new Error("missing opening bracket");te[te.length-1].text+=D}}else if(we=ve.match(VC),we){if(_e.text=we[1],be+=_e.text.length,jC.has(_e.text)){_e.type="KEYWORD";continue}if(_e.text.match(JC)){_e.type="TYPE";continue}_e.type="ID"}else{if(we=ve.match(WC),!we)throw new Error(`unexpected token ${JSON.stringify(ve[0])} at position ${be}`);_e.text=we[1],_e.type="NUMBER",be+=_e.text.length}}return new TokenString(te.map((D=>Object.freeze(D))))}function allowSingle(D,te){let he=[];for(const ye in te.keys())D.has(ye)&&he.push(ye);if(he.length>1)throw new Error(`conflicting types: ${he.join(", ")}`)}function consumeName(D,te){if(te.peekKeyword($C)){const he=te.pop().text;if(he!==D)throw new Error(`expected ${D}, got ${he}`)}return te.popType("ID")}function consumeKeywords(D,te){const he=new Set;for(;;){const ye=D.peekType("KEYWORD");if(null==ye||te&&!te.has(ye))break;if(D.pop(),he.has(ye))throw new Error(`duplicate keywords: ${JSON.stringify(ye)}`);he.add(ye)}return Object.freeze(he)}function consumeMutability(D){let te=consumeKeywords(D,LC);return allowSingle(te,setify("constant payable nonpayable".split(" "))),allowSingle(te,setify("pure view payable nonpayable".split(" "))),te.has("view")?"view":te.has("pure")?"pure":te.has("payable")?"payable":te.has("nonpayable")?"nonpayable":te.has("constant")?"view":"nonpayable"}function consumeParams(D,te){return D.popParams().map((D=>uI.from(D,te)))}function consumeGas(D){if(D.peekType("AT")){if(D.pop(),D.peekType("NUMBER"))return getBigInt(D.pop().text);throw new Error("invalid gas")}return null}function consumeEoi(D){if(D.length)throw new Error(`unexpected tokens at offset ${D.offset}: ${D.toString()}`)}OC=TokenString;const YC=new RegExp(/^(.*)\[([0-9]*)\]$/);function verifyBasicType(D){const te=D.match(JC);if(assertArgument(te,"invalid type","type",D),"uint"===D)return"uint256";if("int"===D)return"int256";if(te[2]){const he=parseInt(te[2]);assertArgument(0!==he&&he<=32,"invalid bytes length","type",D)}else if(te[3]){const he=parseInt(te[3]);assertArgument(0!==he&&he<=256&&he%8==0,"invalid numeric width","type",D)}return D}const eI={},tI=Symbol.for("_ethers_internal"),rI="_ParamTypeInternal",nI="_ErrorInternal",aI="_EventInternal",iI="_ConstructorInternal",sI="_FallbackInternal",oI="_FunctionInternal",cI="_StructInternal";var dI=new WeakSet;let uI=class ParamType{constructor(D,te,he,ye,be,ve,we,_e){if(_classPrivateMethodInitSpec(this,dI),_defineProperty(this,"name",void 0),_defineProperty(this,"type",void 0),_defineProperty(this,"baseType",void 0),_defineProperty(this,"indexed",void 0),_defineProperty(this,"components",void 0),_defineProperty(this,"arrayLength",void 0),_defineProperty(this,"arrayChildren",void 0),assertPrivate(D,eI,"ParamType"),Object.defineProperty(this,tI,{value:rI}),ve&&(ve=Object.freeze(ve.slice())),"array"===ye){if(null==we||null==_e)throw new Error("")}else if(null!=we||null!=_e)throw new Error("");if("tuple"===ye){if(null==ve)throw new Error("")}else if(null!=ve)throw new Error("");defineProperties(this,{name:te,type:he,baseType:ye,indexed:be,components:ve,arrayLength:we,arrayChildren:_e})}format(D){if(null==D&&(D="sighash"),"json"===D){const te=this.name||"";if(this.isArray()){const D=JSON.parse(this.arrayChildren.format("json"));return D.name=te,D.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(D)}const he={type:"tuple"===this.baseType?"tuple":this.type,name:te};return"boolean"==typeof this.indexed&&(he.indexed=this.indexed),this.isTuple()&&(he.components=this.components.map((te=>JSON.parse(te.format(D))))),JSON.stringify(he)}let te="";return this.isArray()?(te+=this.arrayChildren.format(D),te+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?te+="("+this.components.map((te=>te.format(D))).join("full"===D?", ":",")+")":te+=this.type,"sighash"!==D&&(!0===this.indexed&&(te+=" indexed"),"full"===D&&this.name&&(te+=" "+this.name)),te}isArray(){return"array"===this.baseType}isTuple(){return"tuple"===this.baseType}isIndexable(){return null!=this.indexed}walk(D,te){if(this.isArray()){if(!Array.isArray(D))throw new Error("invalid array value");if(-1!==this.arrayLength&&D.length!==this.arrayLength)throw new Error("array is wrong length");const he=this;return D.map((D=>he.arrayChildren.walk(D,te)))}if(this.isTuple()){if(!Array.isArray(D))throw new Error("invalid tuple value");if(D.length!==this.components.length)throw new Error("array is wrong length");const he=this;return D.map(((D,ye)=>he.components[ye].walk(D,te)))}return te(this.type,D)}async walkAsync(D,te){const he=[],ye=[D];return _assertClassBrand(dI,this,_walkAsync).call(this,he,D,te,(D=>{ye[0]=D})),he.length&&await Promise.all(he),ye[0]}static from(D,te){if(ParamType.isParamType(D))return D;if("string"==typeof D)try{return ParamType.from(lex(D),te)}catch(te){assertArgument(!1,"invalid param type","obj",D)}else if(D instanceof TokenString){let he="",ye="",be=null;consumeKeywords(D,setify(["tuple"])).has("tuple")||D.peekType("OPEN_PAREN")?(ye="tuple",be=D.popParams().map((D=>ParamType.from(D))),he=`tuple(${be.map((D=>D.format())).join(",")})`):(he=verifyBasicType(D.popType("TYPE")),ye=he);let ve=null,we=null;for(;D.length&&D.peekType("BRACKET");){const te=D.pop();ve=new ParamType(eI,"",he,ye,null,be,we,ve),we=te.value,he+=te.text,ye="array",be=null}let _e=null;if(consumeKeywords(D,GC).has("indexed")){if(!te)throw new Error("");_e=!0}const Pe=D.peekType("ID")?D.pop().text:"";if(D.length)throw new Error("leftover tokens");return new ParamType(eI,Pe,he,ye,_e,be,we,ve)}const he=D.name;assertArgument(!he||"string"==typeof he&&he.match(KC),"invalid name","obj.name",he);let ye=D.indexed;null!=ye&&(assertArgument(te,"parameter cannot be indexed","obj.indexed",D.indexed),ye=!!ye);let be=D.type,ve=be.match(YC);if(ve){const te=parseInt(ve[2]||"-1"),we=ParamType.from({type:ve[1],components:D.components});return new ParamType(eI,he||"",be,"array",ye,null,te,we)}if("tuple"===be||be.startsWith("tuple(")||be.startsWith("(")){const te=null!=D.components?D.components.map((D=>ParamType.from(D))):null;return new ParamType(eI,he||"",be,"tuple",ye,te,null,null)}return be=verifyBasicType(D.type),new ParamType(eI,he||"",be,be,ye,null,null,null)}static isParamType(D){return D&&D[tI]===rI}};function _walkAsync(D,te,he,ye){if(this.isArray()){if(!Array.isArray(te))throw new Error("invalid array value");if(-1!==this.arrayLength&&te.length!==this.arrayLength)throw new Error("array is wrong length");const be=this.arrayChildren,ve=te.slice();return ve.forEach(((te,ye)=>{_assertClassBrand(dI,be,_walkAsync).call(be,D,te,he,(D=>{ve[ye]=D}))})),void ye(ve)}if(this.isTuple()){const be=this.components;let ve;if(Array.isArray(te))ve=te.slice();else{if(null==te||"object"!=typeof te)throw new Error("invalid tuple value");ve=be.map((D=>{if(!D.name)throw new Error("cannot use object value with unnamed components");if(!(D.name in te))throw new Error(`missing value for component ${D.name}`);return te[D.name]}))}if(ve.length!==this.components.length)throw new Error("array is wrong length");return ve.forEach(((te,ye)=>{var we;_assertClassBrand(dI,we=be[ye],_walkAsync).call(we,D,te,he,(D=>{ve[ye]=D}))})),void ye(ve)}const be=he(this.type,te);be.then?D.push(async function(){ye(await be)}()):ye(be)}let fI=class Fragment{constructor(D,te,he){_defineProperty(this,"type",void 0),_defineProperty(this,"inputs",void 0),assertPrivate(D,eI,"Fragment"),defineProperties(this,{type:te,inputs:he=Object.freeze(he.slice())})}static from(D){if("string"==typeof D){try{Fragment.from(JSON.parse(D))}catch(D){}return Fragment.from(lex(D))}if(D instanceof TokenString){switch(D.peekKeyword($C)){case"constructor":return hI.from(D);case"error":return lI.from(D);case"event":return pI.from(D);case"fallback":case"receive":return FallbackFragment.from(D);case"function":return yI.from(D);case"struct":return StructFragment.from(D)}}else if("object"==typeof D){switch(D.type){case"constructor":return hI.from(D);case"error":return lI.from(D);case"event":return pI.from(D);case"fallback":case"receive":return FallbackFragment.from(D);case"function":return yI.from(D);case"struct":return StructFragment.from(D)}assert(!1,`unsupported type: ${D.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}assertArgument(!1,"unsupported frgament object","obj",D)}static isConstructor(D){return hI.isFragment(D)}static isError(D){return lI.isFragment(D)}static isEvent(D){return pI.isFragment(D)}static isFunction(D){return yI.isFragment(D)}static isStruct(D){return StructFragment.isFragment(D)}};class NamedFragment extends fI{constructor(D,te,he,ye){super(D,te,ye),_defineProperty(this,"name",void 0),assertArgument("string"==typeof he&&he.match(KC),"invalid identifier","name",he),ye=Object.freeze(ye.slice()),defineProperties(this,{name:he})}}function joinParams(D,te){return"("+te.map((te=>te.format(D))).join("full"===D?", ":",")+")"}let lI=class ErrorFragment extends NamedFragment{constructor(D,te,he){super(D,"error",te,he),Object.defineProperty(this,tI,{value:nI})}get selector(){return id$2(this.format("sighash")).substring(0,10)}format(D){if(null==D&&(D="sighash"),"json"===D)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});const te=[];return"sighash"!==D&&te.push("error"),te.push(this.name+joinParams(D,this.inputs)),te.join(" ")}static from(D){if(ErrorFragment.isFragment(D))return D;if("string"==typeof D)return ErrorFragment.from(lex(D));if(D instanceof TokenString){const te=consumeName("error",D),he=consumeParams(D);return consumeEoi(D),new ErrorFragment(eI,te,he)}return new ErrorFragment(eI,D.name,D.inputs?D.inputs.map(uI.from):[])}static isFragment(D){return D&&D[tI]===nI}},pI=class EventFragment extends NamedFragment{constructor(D,te,he,ye){super(D,"event",te,he),_defineProperty(this,"anonymous",void 0),Object.defineProperty(this,tI,{value:aI}),defineProperties(this,{anonymous:ye})}get topicHash(){return id$2(this.format("sighash"))}format(D){if(null==D&&(D="sighash"),"json"===D)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});const te=[];return"sighash"!==D&&te.push("event"),te.push(this.name+joinParams(D,this.inputs)),"sighash"!==D&&this.anonymous&&te.push("anonymous"),te.join(" ")}static getTopicHash(D,te){te=(te||[]).map((D=>uI.from(D)));return new EventFragment(eI,D,te,!1).topicHash}static from(D){if(EventFragment.isFragment(D))return D;if("string"==typeof D)try{return EventFragment.from(lex(D))}catch(te){assertArgument(!1,"invalid event fragment","obj",D)}else if(D instanceof TokenString){const te=consumeName("event",D),he=consumeParams(D,!0),ye=!!consumeKeywords(D,setify(["anonymous"])).has("anonymous");return consumeEoi(D),new EventFragment(eI,te,he,ye)}return new EventFragment(eI,D.name,D.inputs?D.inputs.map((D=>uI.from(D,!0))):[],!!D.anonymous)}static isFragment(D){return D&&D[tI]===aI}},hI=class ConstructorFragment extends fI{constructor(D,te,he,ye,be){super(D,te,he),_defineProperty(this,"payable",void 0),_defineProperty(this,"gas",void 0),Object.defineProperty(this,tI,{value:iI}),defineProperties(this,{payable:ye,gas:be})}format(D){if(assert(null!=D&&"sighash"!==D,"cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),"json"===D)return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});const te=[`constructor${joinParams(D,this.inputs)}`];return this.payable&&te.push("payable"),null!=this.gas&&te.push(`@${this.gas.toString()}`),te.join(" ")}static from(D){if(ConstructorFragment.isFragment(D))return D;if("string"==typeof D)try{return ConstructorFragment.from(lex(D))}catch(te){assertArgument(!1,"invalid constuctor fragment","obj",D)}else if(D instanceof TokenString){consumeKeywords(D,setify(["constructor"]));const te=consumeParams(D),he=!!consumeKeywords(D,FC).has("payable"),ye=consumeGas(D);return consumeEoi(D),new ConstructorFragment(eI,"constructor",te,he,ye)}return new ConstructorFragment(eI,"constructor",D.inputs?D.inputs.map(uI.from):[],!!D.payable,null!=D.gas?D.gas:null)}static isFragment(D){return D&&D[tI]===iI}};class FallbackFragment extends fI{constructor(D,te,he){super(D,"fallback",te),_defineProperty(this,"payable",void 0),Object.defineProperty(this,tI,{value:sI}),defineProperties(this,{payable:he})}format(D){const te=0===this.inputs.length?"receive":"fallback";if("json"===D){const D=this.payable?"payable":"nonpayable";return JSON.stringify({type:te,stateMutability:D})}return`${te}()${this.payable?" payable":""}`}static from(D){if(FallbackFragment.isFragment(D))return D;if("string"==typeof D)try{return FallbackFragment.from(lex(D))}catch(te){assertArgument(!1,"invalid fallback fragment","obj",D)}else if(D instanceof TokenString){const te=D.toString();assertArgument(D.peekKeyword(setify(["fallback","receive"])),"type must be fallback or receive","obj",te);if("receive"===D.popKeyword(setify(["fallback","receive"]))){const te=consumeParams(D);return assertArgument(0===te.length,"receive cannot have arguments","obj.inputs",te),consumeKeywords(D,setify(["payable"])),consumeEoi(D),new FallbackFragment(eI,[],!0)}let he=consumeParams(D);he.length?assertArgument(1===he.length&&"bytes"===he[0].type,"invalid fallback inputs","obj.inputs",he.map((D=>D.format("minimal"))).join(", ")):he=[uI.from("bytes")];const ye=consumeMutability(D);if(assertArgument("nonpayable"===ye||"payable"===ye,"fallback cannot be constants","obj.stateMutability",ye),consumeKeywords(D,setify(["returns"])).has("returns")){const te=consumeParams(D);assertArgument(1===te.length&&"bytes"===te[0].type,"invalid fallback outputs","obj.outputs",te.map((D=>D.format("minimal"))).join(", "))}return consumeEoi(D),new FallbackFragment(eI,he,"payable"===ye)}if("receive"===D.type)return new FallbackFragment(eI,[],!0);if("fallback"===D.type){const te=[uI.from("bytes")],he="payable"===D.stateMutability;return new FallbackFragment(eI,te,he)}assertArgument(!1,"invalid fallback description","obj",D)}static isFragment(D){return D&&D[tI]===sI}}let yI=class FunctionFragment extends NamedFragment{constructor(D,te,he,ye,be,ve){super(D,"function",te,ye),_defineProperty(this,"constant",void 0),_defineProperty(this,"outputs",void 0),_defineProperty(this,"stateMutability",void 0),_defineProperty(this,"payable",void 0),_defineProperty(this,"gas",void 0),Object.defineProperty(this,tI,{value:oI});defineProperties(this,{constant:"view"===he||"pure"===he,gas:ve,outputs:be=Object.freeze(be.slice()),payable:"payable"===he,stateMutability:he})}get selector(){return id$2(this.format("sighash")).substring(0,10)}format(D){if(null==D&&(D="sighash"),"json"===D)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map((te=>JSON.parse(te.format(D)))),outputs:this.outputs.map((te=>JSON.parse(te.format(D))))});const te=[];return"sighash"!==D&&te.push("function"),te.push(this.name+joinParams(D,this.inputs)),"sighash"!==D&&("nonpayable"!==this.stateMutability&&te.push(this.stateMutability),this.outputs&&this.outputs.length&&(te.push("returns"),te.push(joinParams(D,this.outputs))),null!=this.gas&&te.push(`@${this.gas.toString()}`)),te.join(" ")}static getSelector(D,te){te=(te||[]).map((D=>uI.from(D)));return new FunctionFragment(eI,D,"view",te,[],null).selector}static from(D){if(FunctionFragment.isFragment(D))return D;if("string"==typeof D)try{return FunctionFragment.from(lex(D))}catch(te){assertArgument(!1,"invalid function fragment","obj",D)}else if(D instanceof TokenString){const te=consumeName("function",D),he=consumeParams(D),ye=consumeMutability(D);let be=[];consumeKeywords(D,setify(["returns"])).has("returns")&&(be=consumeParams(D));const ve=consumeGas(D);return consumeEoi(D),new FunctionFragment(eI,te,ye,he,be,ve)}let te=D.stateMutability;return null==te&&(te="payable","boolean"==typeof D.constant?(te="view",D.constant||(te="payable","boolean"!=typeof D.payable||D.payable||(te="nonpayable"))):"boolean"!=typeof D.payable||D.payable||(te="nonpayable")),new FunctionFragment(eI,D.name,te,D.inputs?D.inputs.map(uI.from):[],D.outputs?D.outputs.map(uI.from):[],null!=D.gas?D.gas:null)}static isFragment(D){return D&&D[tI]===oI}};class StructFragment extends NamedFragment{constructor(D,te,he){super(D,"struct",te,he),Object.defineProperty(this,tI,{value:cI})}format(){throw new Error("@TODO")}static from(D){if("string"==typeof D)try{return StructFragment.from(lex(D))}catch(te){assertArgument(!1,"invalid struct fragment","obj",D)}else if(D instanceof TokenString){const te=consumeName("struct",D),he=consumeParams(D);return consumeEoi(D),new StructFragment(eI,te,he)}return new StructFragment(eI,D.name,D.inputs?D.inputs.map(uI.from):[])}static isFragment(D){return D&&D[tI]===cI}}const mI=new Map;mI.set(0,"GENERIC_PANIC"),mI.set(1,"ASSERT_FALSE"),mI.set(17,"OVERFLOW"),mI.set(18,"DIVIDE_BY_ZERO"),mI.set(33,"ENUM_RANGE_ERROR"),mI.set(34,"BAD_STORAGE_DATA"),mI.set(49,"STACK_UNDERFLOW"),mI.set(50,"ARRAY_RANGE_ERROR"),mI.set(65,"OUT_OF_MEMORY"),mI.set(81,"UNINITIALIZED_FUNCTION_CALL");const bI=new RegExp(/^bytes([0-9]*)$/),gI=new RegExp(/^(u?int)([0-9]*)$/);let vI=null,wI=1024;var _I=new WeakSet;let TI=class AbiCoder{constructor(){_classPrivateMethodInitSpec(this,_I)}getDefaultValue(D){const te=D.map((D=>_assertClassBrand(_I,this,_getCoder).call(this,uI.from(D))));return new wS(te,"_").defaultValue()}encode(D,te){assertArgumentCount(te.length,D.length,"types/values length mismatch");const he=D.map((D=>_assertClassBrand(_I,this,_getCoder).call(this,uI.from(D)))),ye=new wS(he,"_"),be=new BE;return ye.encode(be,te),be.data}decode(D,te,he){const ye=D.map((D=>_assertClassBrand(_I,this,_getCoder).call(this,uI.from(D))));return new wS(ye,"_").decode(new class Reader{constructor(D,te,he){_classPrivateMethodInitSpec(this,qE),_defineProperty(this,"allowLoose",void 0),_classPrivateFieldInitSpec(this,FE,void 0),_classPrivateFieldInitSpec(this,DE,void 0),_classPrivateFieldInitSpec(this,LE,void 0),_classPrivateFieldInitSpec(this,UE,void 0),_classPrivateFieldInitSpec(this,$E,void 0),defineProperties(this,{allowLoose:!!te}),_classPrivateFieldSet2(FE,this,getBytesCopy(D)),_classPrivateFieldSet2(LE,this,0),_classPrivateFieldSet2(UE,this,null),_classPrivateFieldSet2($E,this,null!=he?he:1024),_classPrivateFieldSet2(DE,this,0)}get data(){return hexlify$1(_classPrivateFieldGet2(FE,this))}get dataLength(){return _classPrivateFieldGet2(FE,this).length}get consumed(){return _classPrivateFieldGet2(DE,this)}get bytes(){return new Uint8Array(_classPrivateFieldGet2(FE,this))}subReader(D){const te=new Reader(_classPrivateFieldGet2(FE,this).slice(_classPrivateFieldGet2(DE,this)+D),this.allowLoose,_classPrivateFieldGet2($E,this));return _classPrivateFieldSet2(UE,te,this),te}readBytes(D,te){let he=_assertClassBrand(qE,this,_peekBytes).call(this,0,D,!!te);return _assertClassBrand(qE,this,_incrementBytesRead).call(this,D),_classPrivateFieldSet2(DE,this,_classPrivateFieldGet2(DE,this)+he.length),he.slice(0,D)}readValue(){return toBigInt(this.readBytes(SE))}readIndex(){return function toNumber(D){return getNumber(toBigInt(D))}(this.readBytes(SE))}}(te,he,wI))}static _setDefaultMaxInflation(D){assertArgument("number"==typeof D&&Number.isInteger(D),"invalid defaultMaxInflation factor","value",D),wI=D}static defaultAbiCoder(){return null==vI&&(vI=new AbiCoder),vI}static getBuiltinCallException(D,te,he){return function getBuiltinCallException(D,te,he,ye){let be="missing revert data",ve=null,we=null;if(he){be="execution reverted";const D=getBytes(he);if(he=hexlify$1(he),0===D.length)be+=" (no data present; likely require(false) occurred",ve="require(false)";else if(D.length%32!=4)be+=" (could not decode reason; invalid data length)";else if("0x08c379a0"===hexlify$1(D.slice(0,4)))try{ve=ye.decode(["string"],D.slice(4))[0],we={signature:"Error(string)",name:"Error",args:[ve]},be+=`: ${JSON.stringify(ve)}`}catch(D){be+=" (could not decode reason; invalid string data)"}else if("0x4e487b71"===hexlify$1(D.slice(0,4)))try{const te=Number(ye.decode(["uint256"],D.slice(4))[0]);we={signature:"Panic(uint256)",name:"Panic",args:[te]},ve=`Panic due to ${mI.get(te)||"UNKNOWN"}(${te})`,be+=`: ${ve}`}catch(D){be+=" (could not decode panic code)"}else be+=" (unknown custom error)"}const _e={to:te.to?getAddress$1(te.to):null,data:te.data||"0x"};return te.from&&(_e.from=getAddress$1(te.from)),makeError(be,"CALL_EXCEPTION",{action:D,data:he,reason:ve,transaction:_e,invocation:null,revert:we})}(D,te,he,AbiCoder.defaultAbiCoder())}};function _getCoder(D){if(D.isArray())return new cS(_assertClassBrand(_I,this,_getCoder).call(this,D.arrayChildren),D.arrayLength,D.name);if(D.isTuple())return new wS(D.components.map((D=>_assertClassBrand(_I,this,_getCoder).call(this,D))),D.name);switch(D.baseType){case"address":return new sS(D.name);case"bool":return new dS(D.name);case"string":return new vS(D.name);case"bytes":return new fS(D.name);case"":return new hS(D.name)}let te=D.type.match(gI);if(te){let he=parseInt(te[2]||"256");return assertArgument(0!==he&&he<=256&&he%8==0,"invalid "+te[1]+" bit length","param",D),new gS(he/8,"int"===te[1],D.name)}if(te=D.type.match(bI),te){let he=parseInt(te[1]);return assertArgument(0!==he&&he<=32,"invalid bytes length","param",D),new lS(he,D.name)}assertArgument(!1,"invalid type","type",D.type)}let AI=class Indexed{static isIndexed(D){return!(!D||!D._isIndexed)}constructor(D){_defineProperty(this,"hash",void 0),_defineProperty(this,"_isIndexed",void 0),defineProperties(this,{hash:D,_isIndexed:!0})}};const EI={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"},PI={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:D=>`reverted with reason string ${JSON.stringify(D)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:D=>{let te="unknown panic code";return D>=0&&D<=255&&EI[D.toString()]&&(te=EI[D.toString()]),`reverted with panic code 0x${D.toString(16)} (${te})`}}};var SI=new WeakMap,CI=new WeakMap,RI=new WeakMap,kI=new WeakMap,OI=new WeakSet;let xI=class Interface{constructor(D){_classPrivateMethodInitSpec(this,OI),_defineProperty(this,"fragments",void 0),_defineProperty(this,"deploy",void 0),_defineProperty(this,"fallback",void 0),_defineProperty(this,"receive",void 0),_classPrivateFieldInitSpec(this,SI,void 0),_classPrivateFieldInitSpec(this,CI,void 0),_classPrivateFieldInitSpec(this,RI,void 0),_classPrivateFieldInitSpec(this,kI,void 0);let te=[];te="string"==typeof D?JSON.parse(D):D,_classPrivateFieldSet2(RI,this,new Map),_classPrivateFieldSet2(SI,this,new Map),_classPrivateFieldSet2(CI,this,new Map);const he=[];for(const D of te)try{he.push(fI.from(D))}catch(te){console.log(`[Warning] Invalid Fragment ${JSON.stringify(D)}:`,te.message)}defineProperties(this,{fragments:Object.freeze(he)});let ye=null,be=!1;_classPrivateFieldSet2(kI,this,this.getAbiCoder()),this.fragments.forEach(((D,te)=>{let he;switch(D.type){case"constructor":return this.deploy?void console.log("duplicate definition - constructor"):void defineProperties(this,{deploy:D});case"fallback":return void(0===D.inputs.length?be=!0:(assertArgument(!ye||D.payable!==ye.payable,"conflicting fallback fragments",`fragments[${te}]`,D),ye=D,be=ye.payable));case"function":he=_classPrivateFieldGet2(RI,this);break;case"event":he=_classPrivateFieldGet2(CI,this);break;case"error":he=_classPrivateFieldGet2(SI,this);break;default:return}const ve=D.format();he.has(ve)||he.set(ve,D)})),this.deploy||defineProperties(this,{deploy:hI.from("constructor()")}),defineProperties(this,{fallback:ye,receive:be})}format(D){const te=D?"minimal":"full",he=this.fragments.map((D=>D.format(te)));return he}formatJson(){const D=this.fragments.map((D=>D.format("json")));return JSON.stringify(D.map((D=>JSON.parse(D))))}getAbiCoder(){return TI.defaultAbiCoder()}getFunctionName(D){const te=_assertClassBrand(OI,this,_getFunction).call(this,D,null,!1);return assertArgument(te,"no matching function","key",D),te.name}hasFunction(D){return!!_assertClassBrand(OI,this,_getFunction).call(this,D,null,!1)}getFunction(D,te){return _assertClassBrand(OI,this,_getFunction).call(this,D,te||null,!0)}forEachFunction(D){const te=Array.from(_classPrivateFieldGet2(RI,this).keys());te.sort(((D,te)=>D.localeCompare(te)));for(let he=0;he<te.length;he++){const ye=te[he];D(_classPrivateFieldGet2(RI,this).get(ye),he)}}getEventName(D){const te=_assertClassBrand(OI,this,_getEvent).call(this,D,null,!1);return assertArgument(te,"no matching event","key",D),te.name}hasEvent(D){return!!_assertClassBrand(OI,this,_getEvent).call(this,D,null,!1)}getEvent(D,te){return _assertClassBrand(OI,this,_getEvent).call(this,D,te||null,!0)}forEachEvent(D){const te=Array.from(_classPrivateFieldGet2(CI,this).keys());te.sort(((D,te)=>D.localeCompare(te)));for(let he=0;he<te.length;he++){const ye=te[he];D(_classPrivateFieldGet2(CI,this).get(ye),he)}}getError(D,te){if(isHexString$1(D)){const te=D.toLowerCase();if(PI[te])return lI.from(PI[te].signature);for(const D of _classPrivateFieldGet2(SI,this).values())if(te===D.selector)return D;return null}if(-1===D.indexOf("(")){const te=[];for(const[he,ye]of _classPrivateFieldGet2(SI,this))he.split("(")[0]===D&&te.push(ye);if(0===te.length)return"Error"===D?lI.from("error Error(string)"):"Panic"===D?lI.from("error Panic(uint256)"):null;if(te.length>1){const he=te.map((D=>JSON.stringify(D.format()))).join(", ");assertArgument(!1,`ambiguous error description (i.e. ${he})`,"name",D)}return te[0]}if("Error(string)"===(D=lI.from(D).format()))return lI.from("error Error(string)");if("Panic(uint256)"===D)return lI.from("error Panic(uint256)");const he=_classPrivateFieldGet2(SI,this).get(D);return he||null}forEachError(D){const te=Array.from(_classPrivateFieldGet2(SI,this).keys());te.sort(((D,te)=>D.localeCompare(te)));for(let he=0;he<te.length;he++){const ye=te[he];D(_classPrivateFieldGet2(SI,this).get(ye),he)}}_decodeParams(D,te){return _classPrivateFieldGet2(kI,this).decode(D,te)}_encodeParams(D,te){return _classPrivateFieldGet2(kI,this).encode(D,te)}encodeDeploy(D){return this._encodeParams(this.deploy.inputs,D||[])}decodeErrorResult(D,te){if("string"==typeof D){const te=this.getError(D);assertArgument(te,"unknown error","fragment",D),D=te}return assertArgument(dataSlice(te,0,4)===D.selector,`data signature does not match error ${D.name}.`,"data",te),this._decodeParams(D.inputs,dataSlice(te,4))}encodeErrorResult(D,te){if("string"==typeof D){const te=this.getError(D);assertArgument(te,"unknown error","fragment",D),D=te}return concat$1([D.selector,this._encodeParams(D.inputs,te||[])])}decodeFunctionData(D,te){if("string"==typeof D){const te=this.getFunction(D);assertArgument(te,"unknown function","fragment",D),D=te}return assertArgument(dataSlice(te,0,4)===D.selector,`data signature does not match function ${D.name}.`,"data",te),this._decodeParams(D.inputs,dataSlice(te,4))}encodeFunctionData(D,te){if("string"==typeof D){const te=this.getFunction(D);assertArgument(te,"unknown function","fragment",D),D=te}return concat$1([D.selector,this._encodeParams(D.inputs,te||[])])}decodeFunctionResult(D,te){if("string"==typeof D){const te=this.getFunction(D);assertArgument(te,"unknown function","fragment",D),D=te}let he="invalid length for result data";const ye=getBytesCopy(te);if(ye.length%32==0)try{return _classPrivateFieldGet2(kI,this).decode(D.outputs,ye)}catch(D){he="could not decode result data"}assert(!1,he,"BAD_DATA",{value:hexlify$1(ye),info:{method:D.name,signature:D.format()}})}makeError(D,te){const he=getBytes(D,"data"),ye=TI.getBuiltinCallException("call",te,he);if(ye.message.startsWith("execution reverted (unknown custom error)")){const D=hexlify$1(he.slice(0,4)),te=this.getError(D);if(te)try{const D=_classPrivateFieldGet2(kI,this).decode(te.inputs,he.slice(4));ye.revert={name:te.name,signature:te.format(),args:D},ye.reason=ye.revert.signature,ye.message=`execution reverted: ${ye.reason}`}catch(D){ye.message="execution reverted (coult not decode custom error)"}}const be=this.parseTransaction(te);return be&&(ye.invocation={method:be.name,signature:be.signature,args:be.args}),ye}encodeFunctionResult(D,te){if("string"==typeof D){const te=this.getFunction(D);assertArgument(te,"unknown function","fragment",D),D=te}return hexlify$1(_classPrivateFieldGet2(kI,this).encode(D.outputs,te||[]))}encodeFilterTopics(D,te){if("string"==typeof D){const te=this.getEvent(D);assertArgument(te,"unknown event","eventFragment",D),D=te}assert(te.length<=D.inputs.length,`too many arguments for ${D.format()}`,"UNEXPECTED_ARGUMENT",{count:te.length,expectedCount:D.inputs.length});const he=[];D.anonymous||he.push(D.topicHash);const encodeTopic=(D,te)=>"string"===D.type?id$2(te):"bytes"===D.type?keccak256$1(hexlify$1(te)):("bool"===D.type&&"boolean"==typeof te?te=te?"0x01":"0x00":D.type.match(/^u?int/)?te=toBeHex(te):D.type.match(/^bytes/)?te=function zeroPadBytes(D,te){return zeroPad$1(D,te,!1)}(te,32):"address"===D.type&&_classPrivateFieldGet2(kI,this).encode(["address"],[te]),zeroPadValue(hexlify$1(te),32));for(te.forEach(((te,ye)=>{const be=D.inputs[ye];be.indexed?null==te?he.push(null):"array"===be.baseType||"tuple"===be.baseType?assertArgument(!1,"filtering with tuples or arrays not supported","contract."+be.name,te):Array.isArray(te)?he.push(te.map((D=>encodeTopic(be,D)))):he.push(encodeTopic(be,te)):assertArgument(null==te,"cannot filter non-indexed parameters; must be null","contract."+be.name,te)}));he.length&&null===he[he.length-1];)he.pop();return he}encodeEventLog(D,te){if("string"==typeof D){const te=this.getEvent(D);assertArgument(te,"unknown event","eventFragment",D),D=te}const he=[],ye=[],be=[];return D.anonymous||he.push(D.topicHash),assertArgument(te.length===D.inputs.length,"event arguments/values mismatch","values",te),D.inputs.forEach(((D,ve)=>{const we=te[ve];if(D.indexed)if("string"===D.type)he.push(id$2(we));else if("bytes"===D.type)he.push(keccak256$1(we));else{if("tuple"===D.baseType||"array"===D.baseType)throw new Error("not implemented");he.push(_classPrivateFieldGet2(kI,this).encode([D.type],[we]))}else ye.push(D),be.push(we)})),{data:_classPrivateFieldGet2(kI,this).encode(ye,be),topics:he}}decodeEventLog(D,te,he){if("string"==typeof D){const te=this.getEvent(D);assertArgument(te,"unknown event","eventFragment",D),D=te}if(null!=he&&!D.anonymous){const te=D.topicHash;assertArgument(isHexString$1(he[0],32)&&he[0].toLowerCase()===te,"fragment/topic mismatch","topics[0]",he[0]),he=he.slice(1)}const ye=[],be=[],ve=[];D.inputs.forEach(((D,te)=>{D.indexed?"string"===D.type||"bytes"===D.type||"tuple"===D.baseType||"array"===D.baseType?(ye.push(uI.from({type:"bytes32",name:D.name})),ve.push(!0)):(ye.push(D),ve.push(!1)):(be.push(D),ve.push(!1))}));const we=null!=he?_classPrivateFieldGet2(kI,this).decode(ye,concat$1(he)):null,_e=_classPrivateFieldGet2(kI,this).decode(be,te,!0),Pe=[],Ie=[];let Re=0,ke=0;return D.inputs.forEach(((D,te)=>{let he=null;if(D.indexed)if(null==we)he=new AI(null);else if(ve[te])he=new AI(we[ke++]);else try{he=we[ke++]}catch(D){he=D}else try{he=_e[Re++]}catch(D){he=D}Pe.push(he),Ie.push(D.name||null)})),Result.fromItems(Pe,Ie)}parseTransaction(D){const te=getBytes(D.data,"tx.data"),he=getBigInt(null!=D.value?D.value:0,"tx.value"),ye=this.getFunction(hexlify$1(te.slice(0,4)));if(!ye)return null;const be=_classPrivateFieldGet2(kI,this).decode(ye.inputs,te.slice(4));return new class TransactionDescription{constructor(D,te,he,ye){_defineProperty(this,"fragment",void 0),_defineProperty(this,"name",void 0),_defineProperty(this,"args",void 0),_defineProperty(this,"signature",void 0),_defineProperty(this,"selector",void 0),_defineProperty(this,"value",void 0);const be=D.name,ve=D.format();defineProperties(this,{fragment:D,name:be,args:he,signature:ve,selector:te,value:ye})}}(ye,ye.selector,be,he)}parseCallResult(D){throw new Error("@TODO")}parseLog(D){const te=this.getEvent(D.topics[0]);return!te||te.anonymous?null:new class LogDescription{constructor(D,te,he){_defineProperty(this,"fragment",void 0),_defineProperty(this,"name",void 0),_defineProperty(this,"signature",void 0),_defineProperty(this,"topic",void 0),_defineProperty(this,"args",void 0);const ye=D.name,be=D.format();defineProperties(this,{fragment:D,name:ye,signature:be,topic:te,args:he})}}(te,te.topicHash,this.decodeEventLog(te,D.data,D.topics))}parseError(D){const te=hexlify$1(D),he=this.getError(dataSlice(te,0,4));if(!he)return null;const ye=_classPrivateFieldGet2(kI,this).decode(he.inputs,dataSlice(te,4));return new class ErrorDescription{constructor(D,te,he){_defineProperty(this,"fragment",void 0),_defineProperty(this,"name",void 0),_defineProperty(this,"args",void 0),_defineProperty(this,"signature",void 0),_defineProperty(this,"selector",void 0);const ye=D.name,be=D.format();defineProperties(this,{fragment:D,name:ye,args:he,signature:be,selector:te})}}(he,he.selector,ye)}static from(D){return D instanceof Interface?D:"string"==typeof D?new Interface(JSON.parse(D)):"function"==typeof D.format?new Interface(D.format("json")):new Interface(D)}};function _getFunction(D,te,he){if(isHexString$1(D)){const te=D.toLowerCase();for(const D of _classPrivateFieldGet2(RI,this).values())if(te===D.selector)return D;return null}if(-1===D.indexOf("(")){const ye=[];for(const[te,he]of _classPrivateFieldGet2(RI,this))te.split("(")[0]===D&&ye.push(he);if(te){const D=te.length>0?te[te.length-1]:null;let he=te.length,be=!0;Typed.isTyped(D)&&"overrides"===D.type&&(be=!1,he--);for(let D=ye.length-1;D>=0;D--){const te=ye[D].inputs.length;te===he||be&&te===he-1||ye.splice(D,1)}for(let D=ye.length-1;D>=0;D--){const he=ye[D].inputs;for(let be=0;be<te.length;be++)if(Typed.isTyped(te[be])){if(be>=he.length){if("overrides"===te[be].type)continue;ye.splice(D,1);break}if(te[be].type!==he[be].baseType){ye.splice(D,1);break}}}}if(1===ye.length&&te&&te.length!==ye[0].inputs.length){const D=te[te.length-1];(null==D||Array.isArray(D)||"object"!=typeof D)&&ye.splice(0,1)}if(0===ye.length)return null;if(ye.length>1&&he){const te=ye.map((D=>JSON.stringify(D.format()))).join(", ");assertArgument(!1,`ambiguous function description (i.e. matches ${te})`,"key",D)}return ye[0]}const ye=_classPrivateFieldGet2(RI,this).get(yI.from(D).format());return ye||null}function _getEvent(D,te,he){if(isHexString$1(D)){const te=D.toLowerCase();for(const D of _classPrivateFieldGet2(CI,this).values())if(te===D.topicHash)return D;return null}if(-1===D.indexOf("(")){const ye=[];for(const[te,he]of _classPrivateFieldGet2(CI,this))te.split("(")[0]===D&&ye.push(he);if(te){for(let D=ye.length-1;D>=0;D--)ye[D].inputs.length<te.length&&ye.splice(D,1);for(let D=ye.length-1;D>=0;D--){const he=ye[D].inputs;for(let be=0;be<te.length;be++)if(Typed.isTyped(te[be])&&te[be].type!==he[be].baseType){ye.splice(D,1);break}}}if(0===ye.length)return null;if(ye.length>1&&he){const te=ye.map((D=>JSON.stringify(D.format()))).join(", ");assertArgument(!1,`ambiguous event description (i.e. matches ${te})`,"key",D)}return ye[0]}const ye=_classPrivateFieldGet2(CI,this).get(pI.from(D).format());return ye||null}const NI=BigInt(0);function getValue(D){return null==D?null:D}function toJson(D){return null==D?null:D.toString()}class FeeData{constructor(D,te,he){_defineProperty(this,"gasPrice",void 0),_defineProperty(this,"maxFeePerGas",void 0),_defineProperty(this,"maxPriorityFeePerGas",void 0),defineProperties(this,{gasPrice:getValue(D),maxFeePerGas:getValue(te),maxPriorityFeePerGas:getValue(he)})}toJSON(){const{gasPrice:D,maxFeePerGas:te,maxPriorityFeePerGas:he}=this;return{_type:"FeeData",gasPrice:toJson(D),maxFeePerGas:toJson(te),maxPriorityFeePerGas:toJson(he)}}}function copyRequest(D){const te={};D.to&&(te.to=D.to),D.from&&(te.from=D.from),D.data&&(te.data=hexlify$1(D.data));const he="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const ye of he)ye in D&&null!=D[ye]&&(te[ye]=getBigInt(D[ye],`request.${ye}`));const ye="type,nonce".split(/,/);for(const he of ye)he in D&&null!=D[he]&&(te[he]=getNumber(D[he],`request.${he}`));return D.accessList&&(te.accessList=accessListify$1(D.accessList)),"blockTag"in D&&(te.blockTag=D.blockTag),"enableCcipRead"in D&&(te.enableCcipRead=!!D.enableCcipRead),"customData"in D&&(te.customData=D.customData),te}var MI=new WeakMap;class Block{constructor(D,te){_defineProperty(this,"provider",void 0),_defineProperty(this,"number",void 0),_defineProperty(this,"hash",void 0),_defineProperty(this,"timestamp",void 0),_defineProperty(this,"parentHash",void 0),_defineProperty(this,"parentBeaconBlockRoot",void 0),_defineProperty(this,"nonce",void 0),_defineProperty(this,"difficulty",void 0),_defineProperty(this,"gasLimit",void 0),_defineProperty(this,"gasUsed",void 0),_defineProperty(this,"stateRoot",void 0),_defineProperty(this,"receiptsRoot",void 0),_defineProperty(this,"blobGasUsed",void 0),_defineProperty(this,"excessBlobGas",void 0),_defineProperty(this,"miner",void 0),_defineProperty(this,"extraData",void 0),_defineProperty(this,"baseFeePerGas",void 0),_classPrivateFieldInitSpec(this,MI,void 0),_classPrivateFieldSet2(MI,this,D.transactions.map((D=>"string"!=typeof D?new TransactionResponse(D,te):D))),defineProperties(this,{provider:te,hash:getValue(D.hash),number:D.number,timestamp:D.timestamp,parentHash:D.parentHash,parentBeaconBlockRoot:D.parentBeaconBlockRoot,nonce:D.nonce,difficulty:D.difficulty,gasLimit:D.gasLimit,gasUsed:D.gasUsed,blobGasUsed:D.blobGasUsed,excessBlobGas:D.excessBlobGas,miner:D.miner,extraData:D.extraData,baseFeePerGas:getValue(D.baseFeePerGas),stateRoot:D.stateRoot,receiptsRoot:D.receiptsRoot})}get transactions(){return _classPrivateFieldGet2(MI,this).map((D=>"string"==typeof D?D:D.hash))}get prefetchedTransactions(){const D=_classPrivateFieldGet2(MI,this).slice();return 0===D.length?[]:(assert("object"==typeof D[0],"transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),D)}toJSON(){const{baseFeePerGas:D,difficulty:te,extraData:he,gasLimit:ye,gasUsed:be,hash:ve,miner:we,nonce:_e,number:Pe,parentHash:Ie,parentBeaconBlockRoot:Re,stateRoot:ke,receiptsRoot:Oe,timestamp:xe,transactions:Be}=this;return{_type:"Block",baseFeePerGas:toJson(D),difficulty:toJson(te),extraData:he,gasLimit:toJson(ye),gasUsed:toJson(be),blobGasUsed:toJson(this.blobGasUsed),excessBlobGas:toJson(this.excessBlobGas),hash:ve,miner:we,nonce:_e,number:Pe,parentHash:Ie,timestamp:xe,parentBeaconBlockRoot:Re,stateRoot:ke,receiptsRoot:Oe,transactions:Be}}[Symbol.iterator](){let D=0;const te=this.transactions;return{next:()=>D<this.length?{value:te[D++],done:!1}:{value:void 0,done:!0}}}get length(){return _classPrivateFieldGet2(MI,this).length}get date(){return null==this.timestamp?null:new Date(1e3*this.timestamp)}async getTransaction(D){let te;if("number"==typeof D)te=_classPrivateFieldGet2(MI,this)[D];else{const he=D.toLowerCase();for(const D of _classPrivateFieldGet2(MI,this)){if("string"==typeof D){if(D!==he)continue;te=D;break}if(D.hash!==he){te=D;break}}}if(null==te)throw new Error("no such tx");return"string"==typeof te?await this.provider.getTransaction(te):te}getPrefetchedTransaction(D){const te=this.prefetchedTransactions;if("number"==typeof D)return te[D];D=D.toLowerCase();for(const he of te)if(he.hash===D)return he;assertArgument(!1,"no matching transaction","indexOrHash",D)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return function createOrphanedBlockFilter(D){return{orphan:"drop-block",hash:D.hash,number:D.number}}(this)}}class Log{constructor(D,te){_defineProperty(this,"provider",void 0),_defineProperty(this,"transactionHash",void 0),_defineProperty(this,"blockHash",void 0),_defineProperty(this,"blockNumber",void 0),_defineProperty(this,"removed",void 0),_defineProperty(this,"address",void 0),_defineProperty(this,"data",void 0),_defineProperty(this,"topics",void 0),_defineProperty(this,"index",void 0),_defineProperty(this,"transactionIndex",void 0),this.provider=te;const he=Object.freeze(D.topics.slice());defineProperties(this,{transactionHash:D.transactionHash,blockHash:D.blockHash,blockNumber:D.blockNumber,removed:D.removed,address:D.address,data:D.data,topics:he,index:D.index,transactionIndex:D.transactionIndex})}toJSON(){const{address:D,blockHash:te,blockNumber:he,data:ye,index:be,removed:ve,topics:we,transactionHash:_e,transactionIndex:Pe}=this;return{_type:"log",address:D,blockHash:te,blockNumber:he,data:ye,index:be,removed:ve,topics:we,transactionHash:_e,transactionIndex:Pe}}async getBlock(){const D=await this.provider.getBlock(this.blockHash);return assert(!!D,"failed to find transaction","UNKNOWN_ERROR",{}),D}async getTransaction(){const D=await this.provider.getTransaction(this.transactionHash);return assert(!!D,"failed to find transaction","UNKNOWN_ERROR",{}),D}async getTransactionReceipt(){const D=await this.provider.getTransactionReceipt(this.transactionHash);return assert(!!D,"failed to find transaction receipt","UNKNOWN_ERROR",{}),D}removedEvent(){return function createRemovedLogFilter(D){return{orphan:"drop-log",log:{transactionHash:D.transactionHash,blockHash:D.blockHash,blockNumber:D.blockNumber,address:D.address,data:D.data,topics:Object.freeze(D.topics.slice()),index:D.index}}}(this)}}var BI=new WeakMap;class TransactionReceipt{constructor(D,te){_defineProperty(this,"provider",void 0),_defineProperty(this,"to",void 0),_defineProperty(this,"from",void 0),_defineProperty(this,"contractAddress",void 0),_defineProperty(this,"hash",void 0),_defineProperty(this,"index",void 0),_defineProperty(this,"blockHash",void 0),_defineProperty(this,"blockNumber",void 0),_defineProperty(this,"logsBloom",void 0),_defineProperty(this,"gasUsed",void 0),_defineProperty(this,"blobGasUsed",void 0),_defineProperty(this,"cumulativeGasUsed",void 0),_defineProperty(this,"gasPrice",void 0),_defineProperty(this,"blobGasPrice",void 0),_defineProperty(this,"type",void 0),_defineProperty(this,"status",void 0),_defineProperty(this,"root",void 0),_classPrivateFieldInitSpec(this,BI,void 0),_classPrivateFieldSet2(BI,this,Object.freeze(D.logs.map((D=>new Log(D,te)))));let he=NI;null!=D.effectiveGasPrice?he=D.effectiveGasPrice:null!=D.gasPrice&&(he=D.gasPrice),defineProperties(this,{provider:te,to:D.to,from:D.from,contractAddress:D.contractAddress,hash:D.hash,index:D.index,blockHash:D.blockHash,blockNumber:D.blockNumber,logsBloom:D.logsBloom,gasUsed:D.gasUsed,cumulativeGasUsed:D.cumulativeGasUsed,blobGasUsed:D.blobGasUsed,gasPrice:he,blobGasPrice:D.blobGasPrice,type:D.type,status:D.status,root:D.root})}get logs(){return _classPrivateFieldGet2(BI,this)}toJSON(){const{to:D,from:te,contractAddress:he,hash:ye,index:be,blockHash:ve,blockNumber:we,logsBloom:_e,logs:Pe,status:Ie,root:Re}=this;return{_type:"TransactionReceipt",blockHash:ve,blockNumber:we,contractAddress:he,cumulativeGasUsed:toJson(this.cumulativeGasUsed),from:te,gasPrice:toJson(this.gasPrice),blobGasUsed:toJson(this.blobGasUsed),blobGasPrice:toJson(this.blobGasPrice),gasUsed:toJson(this.gasUsed),hash:ye,index:be,logs:Pe,logsBloom:_e,root:Re,status:Ie,to:D}}get length(){return this.logs.length}[Symbol.iterator](){let D=0;return{next:()=>D<this.length?{value:this.logs[D++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const D=await this.provider.getBlock(this.blockHash);if(null==D)throw new Error("TODO");return D}async getTransaction(){const D=await this.provider.getTransaction(this.hash);if(null==D)throw new Error("TODO");return D}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return createRemovedTransactionFilter(this)}reorderedEvent(D){return assert(!D||D.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),createReorderedTransactionFilter(this,D)}}var FI=new WeakMap;class TransactionResponse{constructor(D,te){_defineProperty(this,"provider",void 0),_defineProperty(this,"blockNumber",void 0),_defineProperty(this,"blockHash",void 0),_defineProperty(this,"index",void 0),_defineProperty(this,"hash",void 0),_defineProperty(this,"type",void 0),_defineProperty(this,"to",void 0),_defineProperty(this,"from",void 0),_defineProperty(this,"nonce",void 0),_defineProperty(this,"gasLimit",void 0),_defineProperty(this,"gasPrice",void 0),_defineProperty(this,"maxPriorityFeePerGas",void 0),_defineProperty(this,"maxFeePerGas",void 0),_defineProperty(this,"maxFeePerBlobGas",void 0),_defineProperty(this,"data",void 0),_defineProperty(this,"value",void 0),_defineProperty(this,"chainId",void 0),_defineProperty(this,"signature",void 0),_defineProperty(this,"accessList",void 0),_defineProperty(this,"blobVersionedHashes",void 0),_classPrivateFieldInitSpec(this,FI,void 0),this.provider=te,this.blockNumber=null!=D.blockNumber?D.blockNumber:null,this.blockHash=null!=D.blockHash?D.blockHash:null,this.hash=D.hash,this.index=D.index,this.type=D.type,this.from=D.from,this.to=D.to||null,this.gasLimit=D.gasLimit,this.nonce=D.nonce,this.data=D.data,this.value=D.value,this.gasPrice=D.gasPrice,this.maxPriorityFeePerGas=null!=D.maxPriorityFeePerGas?D.maxPriorityFeePerGas:null,this.maxFeePerGas=null!=D.maxFeePerGas?D.maxFeePerGas:null,this.maxFeePerBlobGas=null!=D.maxFeePerBlobGas?D.maxFeePerBlobGas:null,this.chainId=D.chainId,this.signature=D.signature,this.accessList=null!=D.accessList?D.accessList:null,this.blobVersionedHashes=null!=D.blobVersionedHashes?D.blobVersionedHashes:null,_classPrivateFieldSet2(FI,this,-1)}toJSON(){const{blockNumber:D,blockHash:te,index:he,hash:ye,type:be,to:ve,from:we,nonce:_e,data:Pe,signature:Ie,accessList:Re,blobVersionedHashes:ke}=this;return{_type:"TransactionResponse",accessList:Re,blockNumber:D,blockHash:te,blobVersionedHashes:ke,chainId:toJson(this.chainId),data:Pe,from:we,gasLimit:toJson(this.gasLimit),gasPrice:toJson(this.gasPrice),hash:ye,maxFeePerGas:toJson(this.maxFeePerGas),maxPriorityFeePerGas:toJson(this.maxPriorityFeePerGas),maxFeePerBlobGas:toJson(this.maxFeePerBlobGas),nonce:_e,signature:Ie,to:ve,index:he,type:be,value:toJson(this.value)}}async getBlock(){let D=this.blockNumber;if(null==D){const te=await this.getTransaction();te&&(D=te.blockNumber)}if(null==D)return null;const te=this.provider.getBlock(D);if(null==te)throw new Error("TODO");return te}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(null==this.blockNumber){const{tx:D,blockNumber:te}=await resolveProperties$1({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return null==D||null==D.blockNumber?0:te-D.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(D,te){const he=null==D?1:D,ye=null==te?0:te;let be=_classPrivateFieldGet2(FI,this),ve=-1,we=-1===be;const checkReplacement=async()=>{if(we)return null;const{blockNumber:D,nonce:te}=await resolveProperties$1({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(te<this.nonce)return void(be=D);if(we)return null;const ye=await this.getTransaction();if(!ye||null==ye.blockNumber)for(-1===ve&&(ve=be-3,ve<_classPrivateFieldGet2(FI,this)&&(ve=_classPrivateFieldGet2(FI,this)));ve<=D;){if(we)return null;const te=await this.provider.getBlock(ve,!0);if(null==te)return;for(const D of te)if(D===this.hash)return;for(let ye=0;ye<te.length;ye++){const ve=await te.getTransaction(ye);if(ve.from===this.from&&ve.nonce===this.nonce){if(we)return null;const te=await this.provider.getTransactionReceipt(ve.hash);if(null==te)return;if(D-te.blockNumber+1<he)return;let ye="replaced";ve.data===this.data&&ve.to===this.to&&ve.value===this.value?ye="repriced":"0x"===ve.data&&ve.from===ve.to&&ve.value===NI&&(ye="cancelled"),assert(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:"replaced"===ye||"cancelled"===ye,reason:ye,replacement:ve.replaceableTransaction(be),hash:ve.hash,receipt:te})}}ve++}},checkReceipt=D=>{if(null==D||0!==D.status)return D;assert(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:D.to,from:D.from,data:""},receipt:D})},_e=await this.provider.getTransactionReceipt(this.hash);if(0===he)return checkReceipt(_e);if(_e){if(await _e.confirmations()>=he)return checkReceipt(_e)}else if(await checkReplacement(),0===he)return null;const Pe=new Promise(((D,te)=>{const ve=[],cancel=()=>{ve.forEach((D=>D()))};if(ve.push((()=>{we=!0})),ye>0){const D=setTimeout((()=>{cancel(),te(makeError("wait for transaction timeout","TIMEOUT"))}),ye);ve.push((()=>{clearTimeout(D)}))}const txListener=async ye=>{if(await ye.confirmations()>=he){cancel();try{D(checkReceipt(ye))}catch(D){te(D)}}};if(ve.push((()=>{this.provider.off(this.hash,txListener)})),this.provider.on(this.hash,txListener),be>=0){const replaceListener=async()=>{try{await checkReplacement()}catch(D){if(isError(D,"TRANSACTION_REPLACED"))return cancel(),void te(D)}we||this.provider.once("block",replaceListener)};ve.push((()=>{this.provider.off("block",replaceListener)})),this.provider.once("block",replaceListener)}}));return await Pe}isMined(){return null!=this.blockHash}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}removedEvent(){return assert(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),createRemovedTransactionFilter(this)}reorderedEvent(D){return assert(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),assert(!D||D.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),createReorderedTransactionFilter(this,D)}replaceableTransaction(D){assertArgument(Number.isInteger(D)&&D>=0,"invalid startBlock","startBlock",D);const te=new TransactionResponse(this,this.provider);return _classPrivateFieldSet2(FI,te,D),te}}function createReorderedTransactionFilter(D,te){return{orphan:"reorder-transaction",tx:D,other:te}}function createRemovedTransactionFilter(D){return{orphan:"drop-transaction",tx:D}}class EventLog extends Log{constructor(D,te,he){super(D,D.provider),_defineProperty(this,"interface",void 0),_defineProperty(this,"fragment",void 0),_defineProperty(this,"args",void 0);defineProperties(this,{args:te.decodeEventLog(he,D.data,D.topics),fragment:he,interface:te})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class UndecodedEventLog extends Log{constructor(D,te){super(D,D.provider),_defineProperty(this,"error",void 0),defineProperties(this,{error:te})}}var DI=new WeakMap;class ContractTransactionReceipt extends TransactionReceipt{constructor(D,te,he){super(he,te),_classPrivateFieldInitSpec(this,DI,void 0),_classPrivateFieldSet2(DI,this,D)}get logs(){return super.logs.map((D=>{const te=D.topics.length?_classPrivateFieldGet2(DI,this).getEvent(D.topics[0]):null;if(te)try{return new EventLog(D,_classPrivateFieldGet2(DI,this),te)}catch(te){return new UndecodedEventLog(D,te)}return D}))}}var LI=new WeakMap;class ContractTransactionResponse extends TransactionResponse{constructor(D,te,he){super(he,te),_classPrivateFieldInitSpec(this,LI,void 0),_classPrivateFieldSet2(LI,this,D)}async wait(D,te){const he=await super.wait(D,te);return null==he?null:new ContractTransactionReceipt(_classPrivateFieldGet2(LI,this),this.provider,he)}}class ContractUnknownEventPayload extends EventPayload{constructor(D,te,he,ye){super(D,te,he),_defineProperty(this,"log",void 0),defineProperties(this,{log:ye})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class ContractEventPayload extends ContractUnknownEventPayload{constructor(D,te,he,ye,be){super(D,te,he,new EventLog(be,D.interface,ye));defineProperties(this,{args:D.interface.decodeEventLog(ye,this.log.data,this.log.topics),fragment:ye})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const UI=BigInt(0);function canCall(D){return D&&"function"==typeof D.call}function canEstimate(D){return D&&"function"==typeof D.estimateGas}function canResolve(D){return D&&"function"==typeof D.resolveName}function canSend(D){return D&&"function"==typeof D.sendTransaction}function getResolver(D){if(null!=D){if(canResolve(D))return D;if(D.provider)return D.provider}}var $I=new WeakMap;class PreparedTopicFilter{constructor(D,te,he){if(_classPrivateFieldInitSpec(this,$I,void 0),_defineProperty(this,"fragment",void 0),defineProperties(this,{fragment:te}),te.inputs.length<he.length)throw new Error("too many arguments");const ye=getRunner(D.runner,"resolveName"),be=canResolve(ye)?ye:null;_classPrivateFieldSet2($I,this,async function(){const ye=await Promise.all(te.inputs.map(((D,te)=>null==he[te]?null:D.walkAsync(he[te],((D,te)=>"address"===D?Array.isArray(te)?Promise.all(te.map((D=>resolveAddress(D,be)))):resolveAddress(te,be):te)))));return D.interface.encodeFilterTopics(te,ye)}())}getTopicFilter(){return _classPrivateFieldGet2($I,this)}}function getRunner(D,te){return null==D?null:"function"==typeof D[te]?D:D.provider&&"function"==typeof D.provider[te]?D.provider:null}function getProvider(D){return null==D?null:D.provider||null}async function copyOverrides(D,te){const he=Typed.dereference(D,"overrides");assertArgument("object"==typeof he,"invalid overrides parameter","overrides",D);const ye=copyRequest(he);return assertArgument(null==ye.to||(te||[]).indexOf("to")>=0,"cannot override to","overrides.to",ye.to),assertArgument(null==ye.data||(te||[]).indexOf("data")>=0,"cannot override data","overrides.data",ye.data),ye.from&&(ye.from=ye.from),ye}function buildWrappedFallback(D){const populateTransaction=async function(te){const he=await copyOverrides(te,["data"]);he.to=await D.getAddress(),he.from&&(he.from=await resolveAddress(he.from,getResolver(D.runner)));const ye=D.interface,be=getBigInt(he.value||UI,"overrides.value")===UI,ve="0x"===(he.data||"0x");!ye.fallback||ye.fallback.payable||!ye.receive||ve||be||assertArgument(!1,"cannot send data to receive or send value to non-payable fallback","overrides",te),assertArgument(ye.fallback||ve,"cannot send data to receive-only contract","overrides.data",he.data);return assertArgument(ye.receive||ye.fallback&&ye.fallback.payable||be,"cannot send value to non-payable fallback","overrides.value",he.value),assertArgument(ye.fallback||ve,"cannot send data to receive-only contract","overrides.data",he.data),he},send=async function(te){const he=D.runner;assert(canSend(he),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const ye=await he.sendTransaction(await populateTransaction(te)),be=getProvider(D.runner);return new ContractTransactionResponse(D.interface,be,ye)},method=async D=>await send(D);return defineProperties(method,{_contract:D,estimateGas:async function(te){const he=getRunner(D.runner,"estimateGas");return assert(canEstimate(he),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await he.estimateGas(await populateTransaction(te))},populateTransaction:populateTransaction,send:send,staticCall:async function(te){const he=getRunner(D.runner,"call");assert(canCall(he),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const ye=await populateTransaction(te);try{return await he.call(ye)}catch(te){if(isCallException(te)&&te.data)throw D.interface.makeError(te.data,ye);throw te}}}),method}function buildWrappedMethod(D,te){const getFragment=function(...he){const ye=D.interface.getFunction(te,he);return assert(ye,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:te,args:he}}),ye},populateTransaction=async function(...te){const he=getFragment(...te);let ye={};if(he.inputs.length+1===te.length&&(ye=await copyOverrides(te.pop()),ye.from&&(ye.from=await resolveAddress(ye.from,getResolver(D.runner)))),he.inputs.length!==te.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const be=await async function resolveArgs(D,te,he){const ye=getRunner(D,"resolveName"),be=canResolve(ye)?ye:null;return await Promise.all(te.map(((D,te)=>D.walkAsync(he[te],((D,te)=>(te=Typed.dereference(te,D),"address"===D?resolveAddress(te,be):te))))))}(D.runner,he.inputs,te);return Object.assign({},ye,await resolveProperties$1({to:D.getAddress(),data:D.interface.encodeFunctionData(he,be)}))},staticCall=async function(...D){const te=await staticCallResult(...D);return 1===te.length?te[0]:te},send=async function(...te){const he=D.runner;assert(canSend(he),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const ye=await he.sendTransaction(await populateTransaction(...te)),be=getProvider(D.runner);return new ContractTransactionResponse(D.interface,be,ye)},staticCallResult=async function(...te){const he=getRunner(D.runner,"call");assert(canCall(he),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const ye=await populateTransaction(...te);let be="0x";try{be=await he.call(ye)}catch(te){if(isCallException(te)&&te.data)throw D.interface.makeError(te.data,ye);throw te}const ve=getFragment(...te);return D.interface.decodeFunctionResult(ve,be)},method=async(...D)=>getFragment(...D).constant?await staticCall(...D):await send(...D);return defineProperties(method,{name:D.interface.getFunctionName(te),_contract:D,_key:te,getFragment:getFragment,estimateGas:async function(...te){const he=getRunner(D.runner,"estimateGas");return assert(canEstimate(he),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await he.estimateGas(await populateTransaction(...te))},populateTransaction:populateTransaction,send:send,staticCall:staticCall,staticCallResult:staticCallResult}),Object.defineProperty(method,"fragment",{configurable:!1,enumerable:!0,get:()=>{const he=D.interface.getFunction(te);return assert(he,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:te}}),he}}),method}const qI=Symbol.for("_ethersInternal_contract"),GI=new WeakMap;function getInternal(D){return GI.get(D[qI])}async function getSubInfo(D,te){let he,ye=null;if(Array.isArray(te)){const topicHashify=function(te){if(isHexString$1(te,32))return te;const he=D.interface.getEvent(te);return assertArgument(he,"unknown fragment","name",te),he.topicHash};he=te.map((D=>null==D?null:Array.isArray(D)?D.map(topicHashify):topicHashify(D)))}else"*"===te?he=[null]:"string"==typeof te?isHexString$1(te,32)?he=[te]:(ye=D.interface.getEvent(te),assertArgument(ye,"unknown fragment","event",te),he=[ye.topicHash]):!function isDeferred(D){return D&&"object"==typeof D&&"getTopicFilter"in D&&"function"==typeof D.getTopicFilter&&D.fragment}(te)?"fragment"in te?(ye=te.fragment,he=[ye.topicHash]):assertArgument(!1,"unknown event name","event",te):he=await te.getTopicFilter();he=he.map((D=>{if(null==D)return null;if(Array.isArray(D)){const te=Array.from(new Set(D.map((D=>D.toLowerCase()))).values());return 1===te.length?te[0]:(te.sort(),te)}return D.toLowerCase()}));const be=he.map((D=>null==D?"null":Array.isArray(D)?D.join("|"):D)).join("&");return{fragment:ye,tag:be,topics:he}}async function hasSub(D,te){const{subs:he}=getInternal(D);return he.get((await getSubInfo(D,te)).tag)||null}async function getSub(D,te,he){const ye=getProvider(D.runner);assert(ye,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:te});const{fragment:be,tag:ve,topics:we}=await getSubInfo(D,he),{addr:_e,subs:Pe}=getInternal(D);let Ie=Pe.get(ve);if(!Ie){const te={address:_e||D,topics:we},listener=te=>{let ye=be;if(null==ye)try{ye=D.interface.getEvent(te.topics[0])}catch(D){}if(ye){const ve=ye,we=be?D.interface.decodeEventLog(be,te.data,te.topics):[];emit(D,he,we,(ye=>new ContractEventPayload(D,ye,he,ve,te)))}else emit(D,he,[],(ye=>new ContractUnknownEventPayload(D,ye,he,te)))};let Re=[];Ie={tag:ve,listeners:[],start:()=>{Re.length||Re.push(ye.on(te,listener))},stop:async()=>{if(0==Re.length)return;let D=Re;Re=[],await Promise.all(D),ye.off(te,listener)}},Pe.set(ve,Ie)}return Ie}let jI=Promise.resolve();async function emit(D,te,he,ye){try{await jI}catch(D){}const be=async function _emit(D,te,he,ye){await jI;const be=await hasSub(D,te);if(!be)return!1;const ve=be.listeners.length;return be.listeners=be.listeners.filter((({listener:te,once:be})=>{const ve=Array.from(he);ye&&ve.push(ye(be?null:te));try{te.call(D,...ve)}catch(D){}return!be})),0===be.listeners.length&&(be.stop(),getInternal(D).subs.delete(be.tag)),ve>0}(D,te,he,ye);return jI=be,await be}const HI=["then"];let zI=class BaseContract{constructor(D,te,he,ye){_defineProperty(this,"target",void 0),_defineProperty(this,"interface",void 0),_defineProperty(this,"runner",void 0),_defineProperty(this,"filters",void 0),_defineProperty(this,qI,void 0),_defineProperty(this,"fallback",void 0),assertArgument("string"==typeof D||isAddressable(D),"invalid value for Contract target","target",D),null==he&&(he=null);const be=xI.from(te);let ve;defineProperties(this,{target:D,runner:he,interface:be}),Object.defineProperty(this,qI,{value:{}});let we=null,_e=null;if(ye){const D=getProvider(he);_e=new ContractTransactionResponse(this.interface,D,ye)}let Pe=new Map;if("string"==typeof D)if(isHexString$1(D))we=D,ve=Promise.resolve(D);else{const te=getRunner(he,"resolveName");if(!canResolve(te))throw makeError("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});ve=te.resolveName(D).then((te=>{if(null==te)throw makeError("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:D});return getInternal(this).addr=te,te}))}else ve=D.getAddress().then((D=>{if(null==D)throw new Error("TODO");return getInternal(this).addr=D,D}));!function setInternal(D,te){GI.set(D[qI],te)}(this,{addrPromise:ve,addr:we,deployTx:_e,subs:Pe});const Ie=new Proxy({},{get:(D,te,he)=>{if("symbol"==typeof te||HI.indexOf(te)>=0)return Reflect.get(D,te,he);try{return this.getEvent(te)}catch(D){if(!isError(D,"INVALID_ARGUMENT")||"key"!==D.argument)throw D}},has:(D,te)=>HI.indexOf(te)>=0?Reflect.has(D,te):Reflect.has(D,te)||this.interface.hasEvent(String(te))});return defineProperties(this,{filters:Ie}),defineProperties(this,{fallback:be.receive||be.fallback?buildWrappedFallback(this):null}),new Proxy(this,{get:(D,te,he)=>{if("symbol"==typeof te||te in D||HI.indexOf(te)>=0)return Reflect.get(D,te,he);try{return D.getFunction(te)}catch(D){if(!isError(D,"INVALID_ARGUMENT")||"key"!==D.argument)throw D}},has:(D,te)=>"symbol"==typeof te||te in D||HI.indexOf(te)>=0?Reflect.has(D,te):D.interface.hasFunction(te)})}connect(D){return new BaseContract(this.target,this.interface,D)}attach(D){return new BaseContract(D,this.interface,this.runner)}async getAddress(){return await getInternal(this).addrPromise}async getDeployedCode(){const D=getProvider(this.runner);assert(D,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const te=await D.getCode(await this.getAddress());return"0x"===te?null:te}async waitForDeployment(){const D=this.deploymentTransaction();if(D)return await D.wait(),this;if(null!=await this.getDeployedCode())return this;const te=getProvider(this.runner);return assert(null!=te,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise(((D,he)=>{const checkCode=async()=>{try{if(null!=await this.getDeployedCode())return D(this);te.once("block",checkCode)}catch(D){he(D)}};checkCode()}))}deploymentTransaction(){return getInternal(this).deployTx}getFunction(D){"string"!=typeof D&&(D=D.format());return buildWrappedMethod(this,D)}getEvent(D){return"string"!=typeof D&&(D=D.format()),function buildWrappedEvent(D,te){const getFragment=function(...he){const ye=D.interface.getEvent(te,he);return assert(ye,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:te,args:he}}),ye},method=function(...te){return new PreparedTopicFilter(D,getFragment(...te),te)};return defineProperties(method,{name:D.interface.getEventName(te),_contract:D,_key:te,getFragment:getFragment}),Object.defineProperty(method,"fragment",{configurable:!1,enumerable:!0,get:()=>{const he=D.interface.getEvent(te);return assert(he,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:te}}),he}}),method}(this,D)}async queryTransaction(D){throw new Error("@TODO")}async queryFilter(D,te,he){null==te&&(te=0),null==he&&(he="latest");const{addr:ye,addrPromise:be}=getInternal(this),ve=ye||await be,{fragment:we,topics:_e}=await getSubInfo(this,D),Pe={address:ve,topics:_e,fromBlock:te,toBlock:he},Ie=getProvider(this.runner);return assert(Ie,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await Ie.getLogs(Pe)).map((D=>{let te=we;if(null==te)try{te=this.interface.getEvent(D.topics[0])}catch(D){}if(te)try{return new EventLog(D,this.interface,te)}catch(te){return new UndecodedEventLog(D,te)}return new Log(D,Ie)}))}async on(D,te){const he=await getSub(this,"on",D);return he.listeners.push({listener:te,once:!1}),he.start(),this}async once(D,te){const he=await getSub(this,"once",D);return he.listeners.push({listener:te,once:!0}),he.start(),this}async emit(D,...te){return await emit(this,D,te,null)}async listenerCount(D){if(D){const te=await hasSub(this,D);return te?te.listeners.length:0}const{subs:te}=getInternal(this);let he=0;for(const{listeners:D}of te.values())he+=D.length;return he}async listeners(D){if(D){const te=await hasSub(this,D);return te?te.listeners.map((({listener:D})=>D)):[]}const{subs:te}=getInternal(this);let he=[];for(const{listeners:D}of te.values())he=he.concat(D.map((({listener:D})=>D)));return he}async off(D,te){const he=await hasSub(this,D);if(!he)return this;if(te){const D=he.listeners.map((({listener:D})=>D)).indexOf(te);D>=0&&he.listeners.splice(D,1)}return null!=te&&0!==he.listeners.length||(he.stop(),getInternal(this).subs.delete(he.tag)),this}async removeAllListeners(D){if(D){const te=await hasSub(this,D);if(!te)return this;te.stop(),getInternal(this).subs.delete(te.tag)}else{const{subs:D}=getInternal(this);for(const{tag:te,stop:he}of D.values())he(),D.delete(te)}return this}async addListener(D,te){return await this.on(D,te)}async removeListener(D,te){return await this.off(D,te)}static buildClass(D){return class CustomContract extends BaseContract{constructor(te,he=null){super(te,D,he)}}}static from(D,te,he){null==he&&(he=null);return new this(D,te,he)}};let WI=class Contract extends(function _ContractBase(){return zI}()){};var VI;function getIpfsLink(D){return D.match(/^ipfs:\/\/ipfs\//i)?D=D.substring(12):D.match(/^ipfs:\/\//i)?D=D.substring(7):assertArgument(!1,"unsupported IPFS format","link",D),`https://gateway.ipfs.io/ipfs/${D}`}class MulticoinProviderPlugin{constructor(D){_defineProperty(this,"name",void 0),defineProperties(this,{name:D})}connect(D){return this}supportsCoinType(D){return!1}async encodeAddress(D,te){throw new Error("unsupported coin")}async decodeAddress(D,te){throw new Error("unsupported coin")}}const KI=new RegExp("^(ipfs)://(.*)$","i"),JI=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),KI,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];var XI=new WeakMap,QI=new WeakMap,ZI=new WeakSet;class EnsResolver{constructor(D,te,he){_classPrivateMethodInitSpec(this,ZI),_defineProperty(this,"provider",void 0),_defineProperty(this,"address",void 0),_defineProperty(this,"name",void 0),_classPrivateFieldInitSpec(this,XI,void 0),_classPrivateFieldInitSpec(this,QI,void 0),defineProperties(this,{provider:D,address:te,name:he}),_classPrivateFieldSet2(XI,this,null),_classPrivateFieldSet2(QI,this,new WI(te,["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)"],D))}async supportsWildcard(){return null==_classPrivateFieldGet2(XI,this)&&_classPrivateFieldSet2(XI,this,(async()=>{try{return await _classPrivateFieldGet2(QI,this).supportsInterface("0x9061b923")}catch(D){if(isError(D,"CALL_EXCEPTION"))return!1;throw _classPrivateFieldSet2(XI,this,null),D}})()),await _classPrivateFieldGet2(XI,this)}async getAddress(D){if(null==D&&(D=60),60===D)try{const D=await _assertClassBrand(ZI,this,_fetch).call(this,"addr(bytes32)");return null==D||D===LP?null:D}catch(D){if(isError(D,"CALL_EXCEPTION"))return null;throw D}if(D>=0&&D<2147483648){let te=D+2147483648;const he=await _assertClassBrand(ZI,this,_fetch).call(this,"addr(bytes32,uint)",[te]);if(isHexString$1(he,20))return getAddress$1(he)}let te=null;for(const he of this.provider.plugins)if(he instanceof MulticoinProviderPlugin&&he.supportsCoinType(D)){te=he;break}if(null==te)return null;const he=await _assertClassBrand(ZI,this,_fetch).call(this,"addr(bytes32,uint)",[D]);if(null==he||"0x"===he)return null;const ye=await te.decodeAddress(D,he);if(null!=ye)return ye;assert(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${D})`,info:{coinType:D,data:he}})}async getText(D){const te=await _assertClassBrand(ZI,this,_fetch).call(this,"text(bytes32,string)",[D]);return null==te||"0x"===te?null:te}async getContentHash(){const D=await _assertClassBrand(ZI,this,_fetch).call(this,"contenthash(bytes32)");if(null==D||"0x"===D)return null;const te=D.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(te){const D="e3010170"===te[1]?"ipfs":"ipns",he=parseInt(te[4],16);if(te[5].length===2*he)return`${D}://${function encodeBase58(D){const te=getBytes(D);let he=toBigInt(te),ye="";for(;he;)ye=zA[Number(he%WA)]+ye,he/=WA;for(let D=0;D<te.length&&!te[D];D++)ye=zA[0]+ye;return ye}("0x"+te[2])}`}const he=D.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(he&&64===he[1].length)return`bzz://${he[1]}`;assert(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:D}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const D=[{type:"name",value:this.name}];try{const te=await this.getText("avatar");if(null==te)return D.push({type:"!avatar",value:""}),{url:null,linkage:D};D.push({type:"avatar",value:te});for(let he=0;he<JI.length;he++){const ye=te.match(JI[he]);if(null==ye)continue;const be=ye[1].toLowerCase();switch(be){case"https":case"data":return D.push({type:"url",value:te}),{linkage:D,url:te};case"ipfs":{const he=getIpfsLink(te);return D.push({type:"ipfs",value:te}),D.push({type:"url",value:he}),{linkage:D,url:he}}case"erc721":case"erc1155":{const he="erc721"===be?"tokenURI(uint256)":"uri(uint256)";D.push({type:be,value:te});const ve=await this.getAddress();if(null==ve)return D.push({type:"!owner",value:""}),{url:null,linkage:D};const we=(ye[2]||"").split("/");if(2!==we.length)return D.push({type:`!${be}caip`,value:ye[2]||""}),{url:null,linkage:D};const _e=we[1],Pe=new WI(we[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if("erc721"===be){const te=await Pe.ownerOf(_e);if(ve!==te)return D.push({type:"!owner",value:te}),{url:null,linkage:D};D.push({type:"owner",value:te})}else if("erc1155"===be){const te=await Pe.balanceOf(ve,_e);if(!te)return D.push({type:"!balance",value:"0"}),{url:null,linkage:D};D.push({type:"balance",value:te.toString()})}let Ie=await Pe[he](_e);if(null==Ie||"0x"===Ie)return D.push({type:"!metadata-url",value:""}),{url:null,linkage:D};D.push({type:"metadata-url-base",value:Ie}),"erc1155"===be&&(Ie=Ie.replace("{id}",toBeHex(_e,32).substring(2)),D.push({type:"metadata-url-expanded",value:Ie})),Ie.match(/^ipfs:/i)&&(Ie=getIpfsLink(Ie)),D.push({type:"metadata-url",value:Ie});let Re={};const ke=await new FetchRequest(Ie).send();ke.assertOk();try{Re=ke.bodyJson}catch(te){try{D.push({type:"!metadata",value:ke.bodyText})}catch(te){const he=ke.body;return he&&D.push({type:"!metadata",value:hexlify$1(he)}),{url:null,linkage:D}}return{url:null,linkage:D}}if(!Re)return D.push({type:"!metadata",value:""}),{url:null,linkage:D};D.push({type:"metadata",value:JSON.stringify(Re)});let Oe=Re.image;if("string"!=typeof Oe)return D.push({type:"!imageUrl",value:""}),{url:null,linkage:D};if(Oe.match(/^(https:\/\/|data:)/i));else{if(null==Oe.match(KI))return D.push({type:"!imageUrl-ipfs",value:Oe}),{url:null,linkage:D};D.push({type:"imageUrl-ipfs",value:Oe}),Oe=getIpfsLink(Oe)}return D.push({type:"url",value:Oe}),{linkage:D,url:Oe}}}}}catch(D){}return{linkage:D,url:null}}static async getEnsAddress(D){const te=await D.getNetwork(),he=te.getPlugin("org.ethers.plugins.network.Ens");return assert(he,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:te}}),he.address}static async fromName(D,te){let he=te;for(;;){if(""===he||"."===he)return null;if("eth"!==te&&"eth"===he)return null;const ye=await _getResolver.call(EnsResolver,D,he);if(null!=ye){const be=new EnsResolver(D,ye,te);return he===te||await be.supportsWildcard()?be:null}he=he.split(".").slice(1).join(".")}}}async function _fetch(D,te){te=(te||[]).slice();const he=_classPrivateFieldGet2(QI,this).interface;te.unshift(namehash$1(this.name));let ye=null;await this.supportsWildcard()&&(ye=he.getFunction(D),assert(ye,"missing fragment","UNKNOWN_ERROR",{info:{funcName:D}}),te=[dnsEncode(this.name,255),he.encodeFunctionData(ye,te)],D="resolve(bytes,bytes)"),te.push({enableCcipRead:!0});try{const be=await _classPrivateFieldGet2(QI,this)[D](...te);return ye?he.decodeFunctionResult(ye,be)[0]:be}catch(D){if(!isError(D,"CALL_EXCEPTION"))throw D}return null}async function _getResolver(D,te){const he=await VI.getEnsAddress(D);try{const ye=new WI(he,["function resolver(bytes32) view returns (address)"],D),be=await ye.resolver(namehash$1(te),{enableCcipRead:!0});return be===LP?null:be}catch(D){throw D}return null}VI=EnsResolver;const YI=BigInt(0);function allowNull(D,te){return function(he){return null==he?te:D(he)}}function arrayOf(D,te){return he=>{if(te&&null==he)return null;if(!Array.isArray(he))throw new Error("not an array");return he.map((te=>D(te)))}}function object(D,te){return he=>{const ye={};for(const be in D){let ve=be;if(te&&be in te&&!(ve in he))for(const D of te[be])if(D in he){ve=D;break}try{const te=D[be](he[ve]);void 0!==te&&(ye[be]=te)}catch(D){assert(!1,`invalid value for value.${be} (${D instanceof Error?D.message:"not-an-error"})`,"BAD_DATA",{value:he})}}return ye}}function formatData(D){return assertArgument(isHexString$1(D,!0),"invalid data","value",D),D}function formatHash(D){return assertArgument(isHexString$1(D,32),"invalid hash","value",D),D}const eR=object({address:getAddress$1,blockHash:formatHash,blockNumber:getNumber,data:formatData,index:getNumber,removed:allowNull((function formatBoolean(D){switch(D){case!0:case"true":return!0;case!1:case"false":return!1}assertArgument(!1,`invalid boolean; ${JSON.stringify(D)}`,"value",D)}),!1),topics:arrayOf(formatHash),transactionHash:formatHash,transactionIndex:getNumber},{index:["logIndex"]});const tR=object({hash:allowNull(formatHash),parentHash:formatHash,parentBeaconBlockRoot:allowNull(formatHash,null),number:getNumber,timestamp:getNumber,nonce:allowNull(formatData),difficulty:getBigInt,gasLimit:getBigInt,gasUsed:getBigInt,stateRoot:allowNull(formatHash,null),receiptsRoot:allowNull(formatHash,null),blobGasUsed:allowNull(getBigInt,null),excessBlobGas:allowNull(getBigInt,null),miner:allowNull(getAddress$1),extraData:formatData,baseFeePerGas:allowNull(getBigInt)});const rR=object({transactionIndex:getNumber,blockNumber:getNumber,transactionHash:formatHash,address:getAddress$1,topics:arrayOf(formatHash),data:formatData,index:getNumber,blockHash:formatHash},{index:["logIndex"]});const nR=object({to:allowNull(getAddress$1,null),from:allowNull(getAddress$1,null),contractAddress:allowNull(getAddress$1,null),index:getNumber,root:allowNull(hexlify$1),gasUsed:getBigInt,blobGasUsed:allowNull(getBigInt,null),logsBloom:allowNull(formatData),blockHash:formatHash,hash:formatHash,logs:arrayOf((function formatReceiptLog(D){return rR(D)})),blockNumber:getNumber,cumulativeGasUsed:getBigInt,effectiveGasPrice:allowNull(getBigInt),blobGasPrice:allowNull(getBigInt,null),status:allowNull(getNumber),type:allowNull(getNumber,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function formatTransactionResponse(D){D.to&&getBigInt(D.to)===YI&&(D.to="0x0000000000000000000000000000000000000000");const te=object({hash:formatHash,index:allowNull(getNumber,void 0),type:D=>"0x"===D||null==D?0:getNumber(D),accessList:allowNull(accessListify$1,null),blobVersionedHashes:allowNull(arrayOf(formatHash,!0),null),blockHash:allowNull(formatHash,null),blockNumber:allowNull(getNumber,null),transactionIndex:allowNull(getNumber,null),from:getAddress$1,gasPrice:allowNull(getBigInt),maxPriorityFeePerGas:allowNull(getBigInt),maxFeePerGas:allowNull(getBigInt),maxFeePerBlobGas:allowNull(getBigInt,null),gasLimit:getBigInt,to:allowNull(getAddress$1,null),value:getBigInt,nonce:getNumber,data:formatData,creates:allowNull(getAddress$1,null),chainId:allowNull(getBigInt,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(D);if(null==te.to&&null==te.creates&&(te.creates=function getCreateAddress(D){const te=getAddress$1(D.from);let he=getBigInt(D.nonce,"tx.nonce").toString(16);return he="0"===he?"0x":he.length%2?"0x0"+he:"0x"+he,getAddress$1(dataSlice(keccak256$1(encodeRlp([te,he])),12))}(te)),1!==D.type&&2!==D.type||null!=D.accessList||(te.accessList=[]),D.signature?te.signature=Signature.from(D.signature):te.signature=Signature.from(D),null==te.chainId){const D=te.signature.legacyChainId;null!=D&&(te.chainId=D)}return te.blockHash&&getBigInt(te.blockHash)===YI&&(te.blockHash=null),te}class NetworkPlugin{constructor(D){_defineProperty(this,"name",void 0),defineProperties(this,{name:D})}clone(){return new NetworkPlugin(this.name)}}class GasCostPlugin extends NetworkPlugin{constructor(D,te){null==D&&(D=0),super(`org.ethers.network.plugins.GasCost#${D||0}`),_defineProperty(this,"effectiveBlock",void 0),_defineProperty(this,"txBase",void 0),_defineProperty(this,"txCreate",void 0),_defineProperty(this,"txDataZero",void 0),_defineProperty(this,"txDataNonzero",void 0),_defineProperty(this,"txAccessListStorageKey",void 0),_defineProperty(this,"txAccessListAddress",void 0);const he={effectiveBlock:D};function set(D,ye){let be=(te||{})[D];null==be&&(be=ye),assertArgument("number"==typeof be,`invalud value for ${D}`,"costs",te),he[D]=be}set("txBase",21e3),set("txCreate",32e3),set("txDataZero",4),set("txDataNonzero",16),set("txAccessListStorageKey",1900),set("txAccessListAddress",2400),defineProperties(this,he)}clone(){return new GasCostPlugin(this.effectiveBlock,this)}}class EnsPlugin extends NetworkPlugin{constructor(D,te){super("org.ethers.plugins.network.Ens"),_defineProperty(this,"address",void 0),_defineProperty(this,"targetNetwork",void 0),defineProperties(this,{address:D||"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",targetNetwork:null==te?1:te})}clone(){return new EnsPlugin(this.address,this.targetNetwork)}}var aR=new WeakMap,iR=new WeakMap;class FetchUrlFeeDataNetworkPlugin extends NetworkPlugin{get url(){return _classPrivateFieldGet2(aR,this)}get processFunc(){return _classPrivateFieldGet2(iR,this)}constructor(D,te){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),_classPrivateFieldInitSpec(this,aR,void 0),_classPrivateFieldInitSpec(this,iR,void 0),_classPrivateFieldSet2(aR,this,D),_classPrivateFieldSet2(iR,this,te)}clone(){return this}}const sR=new Map;var oR=new WeakMap,cR=new WeakMap,dR=new WeakMap;class Network{constructor(D,te){_classPrivateFieldInitSpec(this,oR,void 0),_classPrivateFieldInitSpec(this,cR,void 0),_classPrivateFieldInitSpec(this,dR,void 0),_classPrivateFieldSet2(oR,this,D),_classPrivateFieldSet2(cR,this,getBigInt(te)),_classPrivateFieldSet2(dR,this,new Map)}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return _classPrivateFieldGet2(oR,this)}set name(D){_classPrivateFieldSet2(oR,this,D)}get chainId(){return _classPrivateFieldGet2(cR,this)}set chainId(D){_classPrivateFieldSet2(cR,this,getBigInt(D,"chainId"))}matches(D){if(null==D)return!1;if("string"==typeof D){try{return this.chainId===getBigInt(D)}catch(D){}return this.name===D}if("number"==typeof D||"bigint"==typeof D){try{return this.chainId===getBigInt(D)}catch(D){}return!1}if("object"==typeof D){if(null!=D.chainId){try{return this.chainId===getBigInt(D.chainId)}catch(D){}return!1}return null!=D.name&&this.name===D.name}return!1}get plugins(){return Array.from(_classPrivateFieldGet2(dR,this).values())}attachPlugin(D){if(_classPrivateFieldGet2(dR,this).get(D.name))throw new Error(`cannot replace existing plugin: ${D.name} `);return _classPrivateFieldGet2(dR,this).set(D.name,D.clone()),this}getPlugin(D){return _classPrivateFieldGet2(dR,this).get(D)||null}getPlugins(D){return this.plugins.filter((te=>te.name.split("#")[0]===D))}clone(){const D=new Network(this.name,this.chainId);return this.plugins.forEach((te=>{D.attachPlugin(te.clone())})),D}computeIntrinsicGas(D){const te=this.getPlugin("org.ethers.plugins.network.GasCost")||new GasCostPlugin;let he=te.txBase;if(null==D.to&&(he+=te.txCreate),D.data)for(let ye=2;ye<D.data.length;ye+=2)"00"===D.data.substring(ye,ye+2)?he+=te.txDataZero:he+=te.txDataNonzero;if(D.accessList){const ye=accessListify$1(D.accessList);for(const D in ye)he+=te.txAccessListAddress+te.txAccessListStorageKey*ye[D].storageKeys.length}return he}static from(D){if(function injectCommonNetworks(){if(uR)return;function registerEth(D,te,he){const func=function(){const ye=new Network(D,te);return null!=he.ensNetwork&&ye.attachPlugin(new EnsPlugin(null,he.ensNetwork)),ye.attachPlugin(new GasCostPlugin),(he.plugins||[]).forEach((D=>{ye.attachPlugin(D)})),ye};Network.register(D,func),Network.register(te,func),he.altNames&&he.altNames.forEach((D=>{Network.register(D,func)}))}uR=!0,registerEth("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),registerEth("ropsten",3,{ensNetwork:3}),registerEth("rinkeby",4,{ensNetwork:4}),registerEth("goerli",5,{ensNetwork:5}),registerEth("kovan",42,{ensNetwork:42}),registerEth("sepolia",11155111,{ensNetwork:11155111}),registerEth("holesky",17e3,{ensNetwork:17e3}),registerEth("classic",61,{}),registerEth("classicKotti",6,{}),registerEth("arbitrum",42161,{ensNetwork:1}),registerEth("arbitrum-goerli",421613,{}),registerEth("arbitrum-sepolia",421614,{}),registerEth("base",8453,{ensNetwork:1}),registerEth("base-goerli",84531,{}),registerEth("base-sepolia",84532,{}),registerEth("bnb",56,{ensNetwork:1}),registerEth("bnbt",97,{}),registerEth("linea",59144,{ensNetwork:1}),registerEth("linea-goerli",59140,{}),registerEth("matic",137,{ensNetwork:1,plugins:[getGasStationPlugin("https://gasstation.polygon.technology/v2")]}),registerEth("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[getGasStationPlugin("https://gasstation-testnet.polygon.technology/v2")]}),registerEth("optimism",10,{ensNetwork:1,plugins:[]}),registerEth("optimism-goerli",420,{}),registerEth("optimism-sepolia",11155420,{}),registerEth("xdai",100,{ensNetwork:1})}(),null==D)return Network.from("mainnet");if("number"==typeof D&&(D=BigInt(D)),"string"==typeof D||"bigint"==typeof D){const te=sR.get(D);if(te)return te();if("bigint"==typeof D)return new Network("unknown",D);assertArgument(!1,"unknown network","network",D)}if("function"==typeof D.clone){return D.clone()}if("object"==typeof D){assertArgument("string"==typeof D.name&&"number"==typeof D.chainId,"invalid network object name or chainId","network",D);const te=new Network(D.name,D.chainId);return(D.ensAddress||null!=D.ensNetwork)&&te.attachPlugin(new EnsPlugin(D.ensAddress,D.ensNetwork)),te}assertArgument(!1,"invalid network","network",D)}static register(D,te){"number"==typeof D&&(D=BigInt(D));const he=sR.get(D);he&&assertArgument(!1,`conflicting network for ${JSON.stringify(he.name)}`,"nameOrChainId",D),sR.set(D,te)}}function parseUnits(D,te){const he=String(D);if(!he.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${D}`);const ye=he.split(".");if(1===ye.length&&ye.push(""),2!==ye.length)throw new Error(`invalid gwei value: ${D}`);for(;ye[1].length<te;)ye[1]+="0";if(ye[1].length>9){let D=BigInt(ye[1].substring(0,9));ye[1].substring(9).match(/^0+$/)||D++,ye[1]=D.toString()}return BigInt(ye[0]+ye[1])}function getGasStationPlugin(D){return new FetchUrlFeeDataNetworkPlugin(D,(async(D,te,he)=>{let ye;he.setHeader("User-Agent","ethers");try{const[te,be]=await Promise.all([he.send(),D()]);ye=te;const ve=ye.bodyJson.standard;return{gasPrice:be.gasPrice,maxFeePerGas:parseUnits(ve.maxFee,9),maxPriorityFeePerGas:parseUnits(ve.maxPriorityFee,9)}}catch(D){assert(!1,`error encountered with polygon gas station (${JSON.stringify(he.url)})`,"SERVER_ERROR",{request:he,response:ye,error:D})}}))}let uR=!1;function copy$2(D){return JSON.parse(JSON.stringify(D))}var fR=new WeakMap,lR=new WeakMap,pR=new WeakMap,hR=new WeakMap,yR=new WeakSet;class PollingBlockSubscriber{constructor(D){_classPrivateMethodInitSpec(this,yR),_classPrivateFieldInitSpec(this,fR,void 0),_classPrivateFieldInitSpec(this,lR,void 0),_classPrivateFieldInitSpec(this,pR,void 0),_classPrivateFieldInitSpec(this,hR,void 0),_classPrivateFieldSet2(fR,this,D),_classPrivateFieldSet2(lR,this,null),_classPrivateFieldSet2(pR,this,4e3),_classPrivateFieldSet2(hR,this,-2)}get pollingInterval(){return _classPrivateFieldGet2(pR,this)}set pollingInterval(D){_classPrivateFieldSet2(pR,this,D)}start(){_classPrivateFieldGet2(lR,this)||(_classPrivateFieldSet2(lR,this,_classPrivateFieldGet2(fR,this)._setTimeout(_assertClassBrand(yR,this,_poll$1).bind(this),_classPrivateFieldGet2(pR,this))),_assertClassBrand(yR,this,_poll$1).call(this))}stop(){_classPrivateFieldGet2(lR,this)&&(_classPrivateFieldGet2(fR,this)._clearTimeout(_classPrivateFieldGet2(lR,this)),_classPrivateFieldSet2(lR,this,null))}pause(D){this.stop(),D&&_classPrivateFieldSet2(hR,this,-2)}resume(){this.start()}}async function _poll$1(){try{const D=await _classPrivateFieldGet2(fR,this).getBlockNumber();if(-2===_classPrivateFieldGet2(hR,this))return void _classPrivateFieldSet2(hR,this,D);if(D!==_classPrivateFieldGet2(hR,this)){for(let te=_classPrivateFieldGet2(hR,this)+1;te<=D;te++){if(null==_classPrivateFieldGet2(lR,this))return;await _classPrivateFieldGet2(fR,this).emit("block",te)}_classPrivateFieldSet2(hR,this,D)}}catch(D){}null!=_classPrivateFieldGet2(lR,this)&&_classPrivateFieldSet2(lR,this,_classPrivateFieldGet2(fR,this)._setTimeout(_assertClassBrand(yR,this,_poll$1).bind(this),_classPrivateFieldGet2(pR,this)))}var mR=new WeakMap,bR=new WeakMap,gR=new WeakMap;class OnBlockSubscriber{constructor(D){_classPrivateFieldInitSpec(this,mR,void 0),_classPrivateFieldInitSpec(this,bR,void 0),_classPrivateFieldInitSpec(this,gR,void 0),_classPrivateFieldSet2(mR,this,D),_classPrivateFieldSet2(gR,this,!1),_classPrivateFieldSet2(bR,this,(D=>{this._poll(D,_classPrivateFieldGet2(mR,this))}))}async _poll(D,te){throw new Error("sub-classes must override this")}start(){_classPrivateFieldGet2(gR,this)||(_classPrivateFieldSet2(gR,this,!0),_classPrivateFieldGet2(bR,this).call(this,-2),_classPrivateFieldGet2(mR,this).on("block",_classPrivateFieldGet2(bR,this)))}stop(){_classPrivateFieldGet2(gR,this)&&(_classPrivateFieldSet2(gR,this,!1),_classPrivateFieldGet2(mR,this).off("block",_classPrivateFieldGet2(bR,this)))}pause(D){this.stop()}resume(){this.start()}}var vR=new WeakMap,wR=new WeakMap;class PollingBlockTagSubscriber extends OnBlockSubscriber{constructor(D,te){super(D),_classPrivateFieldInitSpec(this,vR,void 0),_classPrivateFieldInitSpec(this,wR,void 0),_classPrivateFieldSet2(vR,this,te),_classPrivateFieldSet2(wR,this,-2)}pause(D){D&&_classPrivateFieldSet2(wR,this,-2),super.pause(D)}async _poll(D,te){const he=await te.getBlock(_classPrivateFieldGet2(vR,this));null!=he&&(-2===_classPrivateFieldGet2(wR,this)?_classPrivateFieldSet2(wR,this,he.number):he.number>_classPrivateFieldGet2(wR,this)&&(te.emit(_classPrivateFieldGet2(vR,this),he.number),_classPrivateFieldSet2(wR,this,he.number)))}}var _R=new WeakMap;class PollingOrphanSubscriber extends OnBlockSubscriber{constructor(D,te){super(D),_classPrivateFieldInitSpec(this,_R,void 0),_classPrivateFieldSet2(_R,this,copy$2(te))}async _poll(D,te){throw new Error("@TODO")}}var TR=new WeakMap;class PollingTransactionSubscriber extends OnBlockSubscriber{constructor(D,te){super(D),_classPrivateFieldInitSpec(this,TR,void 0),_classPrivateFieldSet2(TR,this,te)}async _poll(D,te){const he=await te.getTransactionReceipt(_classPrivateFieldGet2(TR,this));he&&te.emit(_classPrivateFieldGet2(TR,this),he)}}var AR=new WeakMap,ER=new WeakMap,PR=new WeakMap,SR=new WeakMap,CR=new WeakMap,IR=new WeakSet;class PollingEventSubscriber{constructor(D,te){_classPrivateMethodInitSpec(this,IR),_classPrivateFieldInitSpec(this,AR,void 0),_classPrivateFieldInitSpec(this,ER,void 0),_classPrivateFieldInitSpec(this,PR,void 0),_classPrivateFieldInitSpec(this,SR,void 0),_classPrivateFieldInitSpec(this,CR,void 0),_classPrivateFieldSet2(AR,this,D),_classPrivateFieldSet2(ER,this,copy$2(te)),_classPrivateFieldSet2(PR,this,_assertClassBrand(IR,this,_poll3).bind(this)),_classPrivateFieldSet2(SR,this,!1),_classPrivateFieldSet2(CR,this,-2)}start(){_classPrivateFieldGet2(SR,this)||(_classPrivateFieldSet2(SR,this,!0),-2===_classPrivateFieldGet2(CR,this)&&_classPrivateFieldGet2(AR,this).getBlockNumber().then((D=>{_classPrivateFieldSet2(CR,this,D)})),_classPrivateFieldGet2(AR,this).on("block",_classPrivateFieldGet2(PR,this)))}stop(){_classPrivateFieldGet2(SR,this)&&(_classPrivateFieldSet2(SR,this,!1),_classPrivateFieldGet2(AR,this).off("block",_classPrivateFieldGet2(PR,this)))}pause(D){this.stop(),D&&_classPrivateFieldSet2(CR,this,-2)}resume(){this.start()}}async function _poll3(D){if(-2===_classPrivateFieldGet2(CR,this))return;const te=copy$2(_classPrivateFieldGet2(ER,this));te.fromBlock=_classPrivateFieldGet2(CR,this)+1,te.toBlock=D;const he=await _classPrivateFieldGet2(AR,this).getLogs(te);if(0!==he.length)for(const D of he)_classPrivateFieldGet2(AR,this).emit(_classPrivateFieldGet2(ER,this),D),_classPrivateFieldSet2(CR,this,D.blockNumber);else _classPrivateFieldGet2(CR,this)<D-60&&_classPrivateFieldSet2(CR,this,D-60)}const RR=BigInt(2);function isPromise(D){return D&&"function"==typeof D.then}function getTag(D,te){return D+":"+JSON.stringify(te,((D,te)=>{if(null==te)return"null";if("bigint"==typeof te)return`bigint:${te.toString()}`;if("string"==typeof te)return te.toLowerCase();if("object"==typeof te&&!Array.isArray(te)){const D=Object.keys(te);return D.sort(),D.reduce(((D,he)=>(D[he]=te[he],D)),{})}return te}))}class UnmanagedSubscriber{constructor(D){_defineProperty(this,"name",void 0),defineProperties(this,{name:D})}start(){}stop(){}pause(D){}resume(){}}function concisify(D){return(D=Array.from(new Set(D).values())).sort(),D}async function getSubscription(D,te){if(null==D)throw new Error("invalid event");if(Array.isArray(D)&&(D={topics:D}),"string"==typeof D)switch(D){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:D,tag:D}}if(isHexString$1(D,32)){const te=D.toLowerCase();return{type:"transaction",tag:getTag("tx",{hash:te}),hash:te}}if(D.orphan){const te=D;return{type:"orphan",tag:getTag("orphan",te),filter:(he=te,JSON.parse(JSON.stringify(he)))}}var he;if(D.address||D.topics){const he=D,ye={topics:(he.topics||[]).map((D=>null==D?null:Array.isArray(D)?concisify(D.map((D=>D.toLowerCase()))):D.toLowerCase()))};if(he.address){const D=[],be=[],addAddress=he=>{isHexString$1(he)?D.push(he):be.push((async()=>{D.push(await resolveAddress(he,te))})())};Array.isArray(he.address)?he.address.forEach(addAddress):addAddress(he.address),be.length&&await Promise.all(be),ye.address=concisify(D.map((D=>D.toLowerCase())))}return{filter:ye,tag:getTag("event",ye),type:"event"}}assertArgument(!1,"unknown ProviderEvent","event",D)}function getTime(){return(new Date).getTime()}const kR={cacheTimeout:250,pollingInterval:4e3};var OR=new WeakMap,xR=new WeakMap,NR=new WeakMap,MR=new WeakMap,BR=new WeakMap,FR=new WeakMap,DR=new WeakMap,LR=new WeakMap,UR=new WeakMap,$R=new WeakMap,qR=new WeakMap,GR=new WeakMap,jR=new WeakSet;class AbstractProvider{constructor(D,te){if(_classPrivateMethodInitSpec(this,jR),_classPrivateFieldInitSpec(this,OR,void 0),_classPrivateFieldInitSpec(this,xR,void 0),_classPrivateFieldInitSpec(this,NR,void 0),_classPrivateFieldInitSpec(this,MR,void 0),_classPrivateFieldInitSpec(this,BR,void 0),_classPrivateFieldInitSpec(this,FR,void 0),_classPrivateFieldInitSpec(this,DR,void 0),_classPrivateFieldInitSpec(this,LR,void 0),_classPrivateFieldInitSpec(this,UR,void 0),_classPrivateFieldInitSpec(this,$R,void 0),_classPrivateFieldInitSpec(this,qR,void 0),_classPrivateFieldInitSpec(this,GR,void 0),_classPrivateFieldSet2(GR,this,Object.assign({},kR,te||{})),"any"===D)_classPrivateFieldSet2(FR,this,!0),_classPrivateFieldSet2(BR,this,null);else if(D){const te=Network.from(D);_classPrivateFieldSet2(FR,this,!1),_classPrivateFieldSet2(BR,this,Promise.resolve(te)),setTimeout((()=>{this.emit("network",te,null)}),0)}else _classPrivateFieldSet2(FR,this,!1),_classPrivateFieldSet2(BR,this,null);_classPrivateFieldSet2(LR,this,-1),_classPrivateFieldSet2(DR,this,new Map),_classPrivateFieldSet2(OR,this,new Map),_classPrivateFieldSet2(xR,this,new Map),_classPrivateFieldSet2(NR,this,null),_classPrivateFieldSet2(MR,this,!1),_classPrivateFieldSet2(UR,this,1),_classPrivateFieldSet2($R,this,new Map),_classPrivateFieldSet2(qR,this,!1)}get pollingInterval(){return _classPrivateFieldGet2(GR,this).pollingInterval}get provider(){return this}get plugins(){return Array.from(_classPrivateFieldGet2(xR,this).values())}attachPlugin(D){if(_classPrivateFieldGet2(xR,this).get(D.name))throw new Error(`cannot replace existing plugin: ${D.name} `);return _classPrivateFieldGet2(xR,this).set(D.name,D.connect(this)),this}getPlugin(D){return _classPrivateFieldGet2(xR,this).get(D)||null}get disableCcipRead(){return _classPrivateFieldGet2(qR,this)}set disableCcipRead(D){_classPrivateFieldSet2(qR,this,!!D)}async ccipReadFetch(D,te,he){if(this.disableCcipRead||0===he.length||null==D.to)return null;const ye=D.to.toLowerCase(),be=te.toLowerCase(),ve=[];for(let te=0;te<he.length;te++){const we=he[te],_e=we.replace("{sender}",ye).replace("{data}",be),Pe=new FetchRequest(_e);-1===we.indexOf("{data}")&&(Pe.body={data:be,sender:ye}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:Pe,index:te,urls:he});let Ie="unknown error";const Re=await Pe.send();try{const D=Re.bodyJson;if(D.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:Pe,result:D}),D.data;D.message&&(Ie=D.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:Pe,result:D})}catch(D){}assert(Re.statusCode<400||Re.statusCode>=500,`response not found during CCIP fetch: ${Ie}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:D,info:{url:we,errorMessage:Ie}}),ve.push(Ie)}assert(!1,`error encountered during CCIP fetch: ${ve.map((D=>JSON.stringify(D))).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:D,info:{urls:he,errorMessages:ve}})}_wrapBlock(D,te){return new Block(function formatBlock(D){const te=tR(D);return te.transactions=D.transactions.map((D=>"string"==typeof D?D:formatTransactionResponse(D))),te}(D),this)}_wrapLog(D,te){return new Log(function formatLog(D){return eR(D)}(D),this)}_wrapTransactionReceipt(D,te){return new TransactionReceipt(function formatTransactionReceipt(D){return nR(D)}(D),this)}_wrapTransactionResponse(D,te){return new TransactionResponse(formatTransactionResponse(D),this)}_detectNetwork(){assert(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(D){assert(!1,`unsupported method: ${D.method}`,"UNSUPPORTED_OPERATION",{operation:D.method,info:D})}async getBlockNumber(){const D=getNumber(await _assertClassBrand(jR,this,_perform).call(this,{method:"getBlockNumber"}),"%response");return _classPrivateFieldGet2(LR,this)>=0&&_classPrivateFieldSet2(LR,this,D),D}_getAddress(D){return resolveAddress(D,this)}_getBlockTag(D){if(null==D)return"latest";switch(D){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return D}return isHexString$1(D)?isHexString$1(D,32)?D:toQuantity(D):("bigint"==typeof D&&(D=getNumber(D,"blockTag")),"number"==typeof D?D>=0?toQuantity(D):_classPrivateFieldGet2(LR,this)>=0?toQuantity(_classPrivateFieldGet2(LR,this)+D):this.getBlockNumber().then((te=>toQuantity(te+D))):void assertArgument(!1,"invalid blockTag","blockTag",D))}_getFilter(D){const te=(D.topics||[]).map((D=>null==D?null:Array.isArray(D)?concisify(D.map((D=>D.toLowerCase()))):D.toLowerCase())),he="blockHash"in D?D.blockHash:void 0,resolve=(D,ye,be)=>{let ve;switch(D.length){case 0:break;case 1:ve=D[0];break;default:D.sort(),ve=D}if(he&&(null!=ye||null!=be))throw new Error("invalid filter");const we={};return ve&&(we.address=ve),te.length&&(we.topics=te),ye&&(we.fromBlock=ye),be&&(we.toBlock=be),he&&(we.blockHash=he),we};let ye,be,ve=[];if(D.address)if(Array.isArray(D.address))for(const te of D.address)ve.push(this._getAddress(te));else ve.push(this._getAddress(D.address));return"fromBlock"in D&&(ye=this._getBlockTag(D.fromBlock)),"toBlock"in D&&(be=this._getBlockTag(D.toBlock)),ve.filter((D=>"string"!=typeof D)).length||null!=ye&&"string"!=typeof ye||null!=be&&"string"!=typeof be?Promise.all([Promise.all(ve),ye,be]).then((D=>resolve(D[0],D[1],D[2]))):resolve(ve,ye,be)}_getTransactionRequest(D){const te=copyRequest(D),he=[];if(["to","from"].forEach((D=>{if(null==te[D])return;const ye=resolveAddress(te[D],this);isPromise(ye)?he.push(async function(){te[D]=await ye}()):te[D]=ye})),null!=te.blockTag){const D=this._getBlockTag(te.blockTag);isPromise(D)?he.push(async function(){te.blockTag=await D}()):te.blockTag=D}return he.length?async function(){return await Promise.all(he),te}():te}async getNetwork(){if(null==_classPrivateFieldGet2(BR,this)){const D=(async()=>{try{const D=await this._detectNetwork();return this.emit("network",D,null),D}catch(te){throw _classPrivateFieldGet2(BR,this)===D&&_classPrivateFieldSet2(BR,this,null),te}})();return _classPrivateFieldSet2(BR,this,D),(await D).clone()}const D=_classPrivateFieldGet2(BR,this),[te,he]=await Promise.all([D,this._detectNetwork()]);return te.chainId!==he.chainId&&(_classPrivateFieldGet2(FR,this)?(this.emit("network",he,te),_classPrivateFieldGet2(BR,this)===D&&_classPrivateFieldSet2(BR,this,Promise.resolve(he))):assert(!1,`network changed: ${te.chainId} => ${he.chainId} `,"NETWORK_ERROR",{event:"changed"})),te.clone()}async getFeeData(){const D=await this.getNetwork(),getFeeDataFunc=async()=>{const{_block:te,gasPrice:he,priorityFee:ye}=await resolveProperties$1({_block:_assertClassBrand(jR,this,_getBlock).call(this,"latest",!1),gasPrice:(async()=>{try{return getBigInt(await _assertClassBrand(jR,this,_perform).call(this,{method:"getGasPrice"}),"%response")}catch(D){}return null})(),priorityFee:(async()=>{try{return getBigInt(await _assertClassBrand(jR,this,_perform).call(this,{method:"getPriorityFee"}),"%response")}catch(D){}return null})()});let be=null,ve=null;const we=this._wrapBlock(te,D);return we&&we.baseFeePerGas&&(ve=null!=ye?ye:BigInt("1000000000"),be=we.baseFeePerGas*RR+ve),new FeeData(he,be,ve)},te=D.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(te){const D=new FetchRequest(te.url),he=await te.processFunc(getFeeDataFunc,this,D);return new FeeData(he.gasPrice,he.maxFeePerGas,he.maxPriorityFeePerGas)}return await getFeeDataFunc()}async estimateGas(D){let te=this._getTransactionRequest(D);return isPromise(te)&&(te=await te),getBigInt(await _assertClassBrand(jR,this,_perform).call(this,{method:"estimateGas",transaction:te}),"%response")}async call(D){const{tx:te,blockTag:he}=await resolveProperties$1({tx:this._getTransactionRequest(D),blockTag:this._getBlockTag(D.blockTag)});return await _assertClassBrand(jR,this,_checkNetwork).call(this,_assertClassBrand(jR,this,_call).call(this,te,he,D.enableCcipRead?0:-1))}async getBalance(D,te){return getBigInt(await _assertClassBrand(jR,this,_getAccountValue).call(this,{method:"getBalance"},D,te),"%response")}async getTransactionCount(D,te){return getNumber(await _assertClassBrand(jR,this,_getAccountValue).call(this,{method:"getTransactionCount"},D,te),"%response")}async getCode(D,te){return hexlify$1(await _assertClassBrand(jR,this,_getAccountValue).call(this,{method:"getCode"},D,te))}async getStorage(D,te,he){const ye=getBigInt(te,"position");return hexlify$1(await _assertClassBrand(jR,this,_getAccountValue).call(this,{method:"getStorage",position:ye},D,he))}async broadcastTransaction(D){const{blockNumber:te,hash:he,network:ye}=await resolveProperties$1({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:D}),network:this.getNetwork()}),be=Transaction.from(D);if(be.hash!==he)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(be,ye).replaceableTransaction(te)}async getBlock(D,te){const{network:he,params:ye}=await resolveProperties$1({network:this.getNetwork(),params:_assertClassBrand(jR,this,_getBlock).call(this,D,!!te)});return null==ye?null:this._wrapBlock(ye,he)}async getTransaction(D){const{network:te,params:he}=await resolveProperties$1({network:this.getNetwork(),params:_assertClassBrand(jR,this,_perform).call(this,{method:"getTransaction",hash:D})});return null==he?null:this._wrapTransactionResponse(he,te)}async getTransactionReceipt(D){const{network:te,params:he}=await resolveProperties$1({network:this.getNetwork(),params:_assertClassBrand(jR,this,_perform).call(this,{method:"getTransactionReceipt",hash:D})});if(null==he)return null;if(null==he.gasPrice&&null==he.effectiveGasPrice){const te=await _assertClassBrand(jR,this,_perform).call(this,{method:"getTransaction",hash:D});if(null==te)throw new Error("report this; could not find tx or effectiveGasPrice");he.effectiveGasPrice=te.gasPrice}return this._wrapTransactionReceipt(he,te)}async getTransactionResult(D){const{result:te}=await resolveProperties$1({network:this.getNetwork(),result:_assertClassBrand(jR,this,_perform).call(this,{method:"getTransactionResult",hash:D})});return null==te?null:hexlify$1(te)}async getLogs(D){let te=this._getFilter(D);isPromise(te)&&(te=await te);const{network:he,params:ye}=await resolveProperties$1({network:this.getNetwork(),params:_assertClassBrand(jR,this,_perform).call(this,{method:"getLogs",filter:te})});return ye.map((D=>this._wrapLog(D,he)))}_getProvider(D){assert(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(D){return await EnsResolver.fromName(this,D)}async getAvatar(D){const te=await this.getResolver(D);return te?await te.getAvatar():null}async resolveName(D){const te=await this.getResolver(D);return te?await te.getAddress():null}async lookupAddress(D){const te=namehash$1((D=getAddress$1(D)).substring(2).toLowerCase()+".addr.reverse");try{const he=await EnsResolver.getEnsAddress(this),ye=new WI(he,["function resolver(bytes32) view returns (address)"],this),be=await ye.resolver(te);if(null==be||be===LP)return null;const ve=new WI(be,["function name(bytes32) view returns (string)"],this),we=await ve.name(te);return await this.resolveName(we)!==D?null:we}catch(D){if(isError(D,"BAD_DATA")&&"0x"===D.value)return null;if(isError(D,"CALL_EXCEPTION"))return null;throw D}return null}async waitForTransaction(D,te,he){const ye=null!=te?te:1;return 0===ye?this.getTransactionReceipt(D):new Promise((async(te,be)=>{let ve=null;const listener=async he=>{try{const be=await this.getTransactionReceipt(D);if(null!=be&&he-be.blockNumber+1>=ye)return te(be),void(ve&&(clearTimeout(ve),ve=null))}catch(D){console.log("EEE",D)}this.once("block",listener)};null!=he&&(ve=setTimeout((()=>{null!=ve&&(ve=null,this.off("block",listener),be(makeError("timeout","TIMEOUT",{reason:"timeout"})))}),he)),listener(await this.getBlockNumber())}))}async waitForBlock(D){assert(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(D){const te=_classPrivateFieldGet2($R,this).get(D);te&&(te.timer&&clearTimeout(te.timer),_classPrivateFieldGet2($R,this).delete(D))}_setTimeout(D,te){var he,ye;null==te&&(te=0);const be=(_classPrivateFieldSet2(UR,this,(he=_classPrivateFieldGet2(UR,this),ye=he++,he)),ye),func=()=>{_classPrivateFieldGet2($R,this).delete(be),D()};if(this.paused)_classPrivateFieldGet2($R,this).set(be,{timer:null,func:func,time:te});else{const D=setTimeout(func,te);_classPrivateFieldGet2($R,this).set(be,{timer:D,func:func,time:getTime()})}return be}_forEachSubscriber(D){for(const te of _classPrivateFieldGet2(OR,this).values())D(te.subscriber)}_getSubscriber(D){switch(D.type){case"debug":case"error":case"network":return new UnmanagedSubscriber(D.type);case"block":{const D=new PollingBlockSubscriber(this);return D.pollingInterval=this.pollingInterval,D}case"safe":case"finalized":return new PollingBlockTagSubscriber(this,D.type);case"event":return new PollingEventSubscriber(this,D.filter);case"transaction":return new PollingTransactionSubscriber(this,D.hash);case"orphan":return new PollingOrphanSubscriber(this,D.filter)}throw new Error(`unsupported event: ${D.type}`)}_recoverSubscriber(D,te){for(const he of _classPrivateFieldGet2(OR,this).values())if(he.subscriber===D){he.started&&he.subscriber.stop(),he.subscriber=te,he.started&&te.start(),null!=_classPrivateFieldGet2(NR,this)&&te.pause(_classPrivateFieldGet2(NR,this));break}}async on(D,te){const he=await _assertClassBrand(jR,this,_getSub).call(this,D);return he.listeners.push({listener:te,once:!1}),he.started||(he.subscriber.start(),he.started=!0,null!=_classPrivateFieldGet2(NR,this)&&he.subscriber.pause(_classPrivateFieldGet2(NR,this))),this}async once(D,te){const he=await _assertClassBrand(jR,this,_getSub).call(this,D);return he.listeners.push({listener:te,once:!0}),he.started||(he.subscriber.start(),he.started=!0,null!=_classPrivateFieldGet2(NR,this)&&he.subscriber.pause(_classPrivateFieldGet2(NR,this))),this}async emit(D,...te){const he=await _assertClassBrand(jR,this,_hasSub).call(this,D,te);if(!he||0===he.listeners.length)return!1;const ye=he.listeners.length;return he.listeners=he.listeners.filter((({listener:he,once:ye})=>{const be=new EventPayload(this,ye?null:he,D);try{he.call(this,...te,be)}catch(D){}return!ye})),0===he.listeners.length&&(he.started&&he.subscriber.stop(),_classPrivateFieldGet2(OR,this).delete(he.tag)),ye>0}async listenerCount(D){if(D){const te=await _assertClassBrand(jR,this,_hasSub).call(this,D);return te?te.listeners.length:0}let te=0;for(const{listeners:D}of _classPrivateFieldGet2(OR,this).values())te+=D.length;return te}async listeners(D){if(D){const te=await _assertClassBrand(jR,this,_hasSub).call(this,D);return te?te.listeners.map((({listener:D})=>D)):[]}let te=[];for(const{listeners:D}of _classPrivateFieldGet2(OR,this).values())te=te.concat(D.map((({listener:D})=>D)));return te}async off(D,te){const he=await _assertClassBrand(jR,this,_hasSub).call(this,D);if(!he)return this;if(te){const D=he.listeners.map((({listener:D})=>D)).indexOf(te);D>=0&&he.listeners.splice(D,1)}return te&&0!==he.listeners.length||(he.started&&he.subscriber.stop(),_classPrivateFieldGet2(OR,this).delete(he.tag)),this}async removeAllListeners(D){if(D){const{tag:te,started:he,subscriber:ye}=await _assertClassBrand(jR,this,_getSub).call(this,D);he&&ye.stop(),_classPrivateFieldGet2(OR,this).delete(te)}else for(const[D,{started:te,subscriber:he}]of _classPrivateFieldGet2(OR,this))te&&he.stop(),_classPrivateFieldGet2(OR,this).delete(D);return this}async addListener(D,te){return await this.on(D,te)}async removeListener(D,te){return this.off(D,te)}get destroyed(){return _classPrivateFieldGet2(MR,this)}destroy(){this.removeAllListeners();for(const D of _classPrivateFieldGet2($R,this).keys())this._clearTimeout(D);_classPrivateFieldSet2(MR,this,!0)}get paused(){return null!=_classPrivateFieldGet2(NR,this)}set paused(D){!!D!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(D){if(_classPrivateFieldSet2(LR,this,-1),null!=_classPrivateFieldGet2(NR,this)){if(_classPrivateFieldGet2(NR,this)==!!D)return;assert(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber((te=>te.pause(D))),_classPrivateFieldSet2(NR,this,!!D);for(const D of _classPrivateFieldGet2($R,this).values())D.timer&&clearTimeout(D.timer),D.time=getTime()-D.time}resume(){if(null!=_classPrivateFieldGet2(NR,this)){this._forEachSubscriber((D=>D.resume())),_classPrivateFieldSet2(NR,this,null);for(const D of _classPrivateFieldGet2($R,this).values()){let te=D.time;te<0&&(te=0),D.time=getTime(),setTimeout(D.func,te)}}}}async function _perform(D){const te=_classPrivateFieldGet2(GR,this).cacheTimeout;if(te<0)return await this._perform(D);const he=getTag(D.method,D);let ye=_classPrivateFieldGet2(DR,this).get(he);return ye||(ye=this._perform(D),_classPrivateFieldGet2(DR,this).set(he,ye),setTimeout((()=>{_classPrivateFieldGet2(DR,this).get(he)===ye&&_classPrivateFieldGet2(DR,this).delete(he)}),te)),await ye}async function _call(D,te,he){assert(he<10,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},D,{blockTag:te,enableCcipRead:!0})});const ye=copyRequest(D);try{return hexlify$1(await this._perform({method:"call",transaction:ye,blockTag:te}))}catch(D){if(!this.disableCcipRead&&isCallException(D)&&D.data&&he>=0&&"latest"===te&&null!=ye.to&&"0x556f1830"===dataSlice(D.data,0,4)){const be=D.data,ve=await resolveAddress(ye.to,this);let we;try{we=function parseOffchainLookup(D){const te={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};assert(dataLength(D)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const he=dataSlice(D,0,32);assert(dataSlice(he,0,12)===dataSlice(zR,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),te.sender=dataSlice(he,12);try{const he=[],ye=getNumber(dataSlice(D,32,64)),be=getNumber(dataSlice(D,ye,ye+32)),ve=dataSlice(D,ye+32);for(let D=0;D<be;D++){const te=_parseString(ve,32*D);if(null==te)throw new Error("abort");he.push(te)}te.urls=he}catch(D){assert(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const he=_parseBytes(D,64);if(null==he)throw new Error("abort");te.calldata=he}catch(D){assert(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}assert(dataSlice(D,100,128)===dataSlice(zR,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),te.selector=dataSlice(D,96,100);try{const he=_parseBytes(D,128);if(null==he)throw new Error("abort");te.extraData=he}catch(D){assert(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return te.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map((D=>te[D])),te}(dataSlice(D.data,4))}catch(D){assert(!1,D.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:ye,info:{data:be}})}assert(we.sender.toLowerCase()===ve.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:be,reason:"OffchainLookup",transaction:ye,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:we.errorArgs}});const _e=await this.ccipReadFetch(ye,we.calldata,we.urls);assert(null!=_e,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:ye,info:{data:D.data,errorArgs:we.errorArgs}});const Pe={to:ve,data:concat$1([we.selector,encodeBytes([_e,we.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:Pe});try{const D=await _assertClassBrand(jR,this,_call).call(this,Pe,te,he+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},Pe),result:D}),D}catch(D){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},Pe),error:D}),D}}throw D}}async function _checkNetwork(D){const{value:te}=await resolveProperties$1({network:this.getNetwork(),value:D});return te}async function _getAccountValue(D,te,he){let ye=this._getAddress(te),be=this._getBlockTag(he);return"string"==typeof ye&&"string"==typeof be||([ye,be]=await Promise.all([ye,be])),await _assertClassBrand(jR,this,_checkNetwork).call(this,_assertClassBrand(jR,this,_perform).call(this,Object.assign(D,{address:ye,blockTag:be})))}async function _getBlock(D,te){if(isHexString$1(D,32))return await _assertClassBrand(jR,this,_perform).call(this,{method:"getBlock",blockHash:D,includeTransactions:te});let he=this._getBlockTag(D);return"string"!=typeof he&&(he=await he),await _assertClassBrand(jR,this,_perform).call(this,{method:"getBlock",blockTag:he,includeTransactions:te})}async function _hasSub(D,te){let he=await getSubscription(D,this);return"event"===he.type&&te&&te.length>0&&!0===te[0].removed&&(he=await getSubscription({orphan:"drop-log",log:te[0]},this)),_classPrivateFieldGet2(OR,this).get(he.tag)||null}async function _getSub(D){const te=await getSubscription(D,this),he=te.tag;let ye=_classPrivateFieldGet2(OR,this).get(he);if(!ye){ye={subscriber:this._getSubscriber(te),tag:he,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},_classPrivateFieldGet2(OR,this).set(he,ye)}return ye}function _parseString(D,te){try{const he=_parseBytes(D,te);if(he)return toUtf8String$1(he)}catch(D){}return null}function _parseBytes(D,te){if("0x"===D)return null;try{const he=getNumber(dataSlice(D,te,te+32)),ye=getNumber(dataSlice(D,he,he+32));return dataSlice(D,he+32,he+32+ye)}catch(D){}return null}function numPad(D){const te=toBeArray(D);if(te.length>32)throw new Error("internal; should not happen");const he=new Uint8Array(32);return he.set(te,32-te.length),he}function bytesPad(D){if(D.length%32==0)return D;const te=new Uint8Array(32*Math.ceil(D.length/32));return te.set(D),te}const HR=new Uint8Array([]);function encodeBytes(D){const te=[];let he=0;for(let ye=0;ye<D.length;ye++)te.push(HR),he+=32;for(let ye=0;ye<D.length;ye++){const be=getBytes(D[ye]);te[ye]=numPad(he),te.push(numPad(be.length)),te.push(bytesPad(be)),he+=32+32*Math.ceil(be.length/32)}return concat$1(te)}const zR="0x0000000000000000000000000000000000000000000000000000000000000000";function checkProvider(D,te){if(D.provider)return D.provider;assert(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:te})}async function populate$1(D,te){let he=copyRequest(te);if(null!=he.to&&(he.to=resolveAddress(he.to,D)),null!=he.from){const te=he.from;he.from=Promise.all([D.getAddress(),resolveAddress(te,D)]).then((([D,te])=>(assertArgument(D.toLowerCase()===te.toLowerCase(),"transaction from mismatch","tx.from",te),D)))}else he.from=D.getAddress();return await resolveProperties$1(he)}class AbstractSigner{constructor(D){_defineProperty(this,"provider",void 0),defineProperties(this,{provider:D||null})}async getNonce(D){return checkProvider(this,"getTransactionCount").getTransactionCount(await this.getAddress(),D)}async populateCall(D){return await populate$1(this,D)}async populateTransaction(D){const te=checkProvider(this,"populateTransaction"),he=await populate$1(this,D);null==he.nonce&&(he.nonce=await this.getNonce("pending")),null==he.gasLimit&&(he.gasLimit=await this.estimateGas(he));const ye=await this.provider.getNetwork();if(null!=he.chainId){assertArgument(getBigInt(he.chainId)===ye.chainId,"transaction chainId mismatch","tx.chainId",D.chainId)}else he.chainId=ye.chainId;const be=null!=he.maxFeePerGas||null!=he.maxPriorityFeePerGas;if(null==he.gasPrice||2!==he.type&&!be?0!==he.type&&1!==he.type||!be||assertArgument(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",D):assertArgument(!1,"eip-1559 transaction do not support gasPrice","tx",D),2!==he.type&&null!=he.type||null==he.maxFeePerGas||null==he.maxPriorityFeePerGas)if(0===he.type||1===he.type){const D=await te.getFeeData();assert(null!=D.gasPrice,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),null==he.gasPrice&&(he.gasPrice=D.gasPrice)}else{const D=await te.getFeeData();if(null==he.type)if(null!=D.maxFeePerGas&&null!=D.maxPriorityFeePerGas)if(he.type=2,null!=he.gasPrice){const D=he.gasPrice;delete he.gasPrice,he.maxFeePerGas=D,he.maxPriorityFeePerGas=D}else null==he.maxFeePerGas&&(he.maxFeePerGas=D.maxFeePerGas),null==he.maxPriorityFeePerGas&&(he.maxPriorityFeePerGas=D.maxPriorityFeePerGas);else null!=D.gasPrice?(assert(!be,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),null==he.gasPrice&&(he.gasPrice=D.gasPrice),he.type=0):assert(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else 2===he.type&&(null==he.maxFeePerGas&&(he.maxFeePerGas=D.maxFeePerGas),null==he.maxPriorityFeePerGas&&(he.maxPriorityFeePerGas=D.maxPriorityFeePerGas))}else he.type=2;return await resolveProperties$1(he)}async estimateGas(D){return checkProvider(this,"estimateGas").estimateGas(await this.populateCall(D))}async call(D){return checkProvider(this,"call").call(await this.populateCall(D))}async resolveName(D){const te=checkProvider(this,"resolveName");return await te.resolveName(D)}async sendTransaction(D){const te=checkProvider(this,"sendTransaction"),he=await this.populateTransaction(D);delete he.from;const ye=Transaction.from(he);return await te.broadcastTransaction(await this.signTransaction(ye))}}var WR=new WeakMap,VR=new WeakMap,KR=new WeakMap,JR=new WeakMap,XR=new WeakMap,QR=new WeakMap,ZR=new WeakSet;class FilterIdSubscriber{constructor(D){_classPrivateMethodInitSpec(this,ZR),_classPrivateFieldInitSpec(this,WR,void 0),_classPrivateFieldInitSpec(this,VR,void 0),_classPrivateFieldInitSpec(this,KR,void 0),_classPrivateFieldInitSpec(this,JR,void 0),_classPrivateFieldInitSpec(this,XR,void 0),_classPrivateFieldInitSpec(this,QR,void 0),_classPrivateFieldSet2(WR,this,D),_classPrivateFieldSet2(VR,this,null),_classPrivateFieldSet2(KR,this,_assertClassBrand(ZR,this,_poll).bind(this)),_classPrivateFieldSet2(JR,this,!1),_classPrivateFieldSet2(XR,this,null),_classPrivateFieldSet2(QR,this,!1)}_subscribe(D){throw new Error("subclasses must override this")}_emitResults(D,te){throw new Error("subclasses must override this")}_recover(D){throw new Error("subclasses must override this")}start(){_classPrivateFieldGet2(JR,this)||(_classPrivateFieldSet2(JR,this,!0),_assertClassBrand(ZR,this,_poll).call(this,-2))}stop(){_classPrivateFieldGet2(JR,this)&&(_classPrivateFieldSet2(JR,this,!1),_classPrivateFieldSet2(QR,this,!0),_assertClassBrand(ZR,this,_teardown).call(this),_classPrivateFieldGet2(WR,this).off("block",_classPrivateFieldGet2(KR,this)))}pause(D){D&&_assertClassBrand(ZR,this,_teardown).call(this),_classPrivateFieldGet2(WR,this).off("block",_classPrivateFieldGet2(KR,this))}resume(){this.start()}}async function _poll(D){try{null==_classPrivateFieldGet2(VR,this)&&_classPrivateFieldSet2(VR,this,this._subscribe(_classPrivateFieldGet2(WR,this)));let D=null;try{D=await _classPrivateFieldGet2(VR,this)}catch(D){if(!isError(D,"UNSUPPORTED_OPERATION")||"eth_newFilter"!==D.operation)throw D}if(null==D)return _classPrivateFieldSet2(VR,this,null),void _classPrivateFieldGet2(WR,this)._recoverSubscriber(this,this._recover(_classPrivateFieldGet2(WR,this)));const te=await _classPrivateFieldGet2(WR,this).getNetwork();if(_classPrivateFieldGet2(XR,this)||_classPrivateFieldSet2(XR,this,te),_classPrivateFieldGet2(XR,this).chainId!==te.chainId)throw new Error("chaid changed");if(_classPrivateFieldGet2(QR,this))return;const he=await _classPrivateFieldGet2(WR,this).send("eth_getFilterChanges",[D]);await this._emitResults(_classPrivateFieldGet2(WR,this),he)}catch(D){console.log("@TODO",D)}_classPrivateFieldGet2(WR,this).once("block",_classPrivateFieldGet2(KR,this))}function _teardown(){const D=_classPrivateFieldGet2(VR,this);D&&(_classPrivateFieldSet2(VR,this,null),D.then((D=>{_classPrivateFieldGet2(WR,this).send("eth_uninstallFilter",[D])})))}var YR=new WeakMap;class FilterIdEventSubscriber extends FilterIdSubscriber{constructor(D,te){super(D),_classPrivateFieldInitSpec(this,YR,void 0),_classPrivateFieldSet2(YR,this,function copy(D){return JSON.parse(JSON.stringify(D))}(te))}_recover(D){return new PollingEventSubscriber(D,_classPrivateFieldGet2(YR,this))}async _subscribe(D){return await D.send("eth_newFilter",[_classPrivateFieldGet2(YR,this)])}async _emitResults(D,te){for(const he of te)D.emit(_classPrivateFieldGet2(YR,this),D._wrapLog(he,D._network))}}class FilterIdPendingSubscriber extends FilterIdSubscriber{async _subscribe(D){return await D.send("eth_newPendingTransactionFilter",[])}async _emitResults(D,te){for(const he of te)D.emit("pending",he)}}const ek="bigint,boolean,function,number,string,symbol".split(/,/g);function deepCopy$1(D){if(null==D||ek.indexOf(typeof D)>=0)return D;if("function"==typeof D.getAddress)return D;if(Array.isArray(D))return D.map(deepCopy$1);if("object"==typeof D)return Object.keys(D).reduce(((te,he)=>(te[he]=D[he],te)),{});throw new Error(`should not happen: ${D} (${typeof D})`)}function stall(D){return new Promise((te=>{setTimeout(te,D)}))}function getLowerCase(D){return D?D.toLowerCase():D}function isPollable(D){return D&&"number"==typeof D.pollingInterval}const tk={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class JsonRpcSigner extends AbstractSigner{constructor(D,te){super(D),_defineProperty(this,"address",void 0),defineProperties(this,{address:te=getAddress$1(te)})}connect(D){assert(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(D){return await this.populateCall(D)}async sendUncheckedTransaction(D){const te=deepCopy$1(D),he=[];if(te.from){const ye=te.from;he.push((async()=>{const he=await resolveAddress(ye,this.provider);assertArgument(null!=he&&he.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",D),te.from=he})())}else te.from=this.address;if(null==te.gasLimit&&he.push((async()=>{te.gasLimit=await this.provider.estimateGas({...te,from:this.address})})()),null!=te.to){const D=te.to;he.push((async()=>{te.to=await resolveAddress(D,this.provider)})())}he.length&&await Promise.all(he);const ye=this.provider.getRpcTransaction(te);return this.provider.send("eth_sendTransaction",[ye])}async sendTransaction(D){const te=await this.provider.getBlockNumber(),he=await this.sendUncheckedTransaction(D);return await new Promise(((D,ye)=>{const be=[1e3,100];let ve=0;const checkTx=async()=>{try{const ye=await this.provider.getTransaction(he);if(null!=ye)return void D(ye.replaceableTransaction(te))}catch(D){if(isError(D,"CANCELLED")||isError(D,"BAD_DATA")||isError(D,"NETWORK_ERROR"))return null==D.info&&(D.info={}),D.info.sendTransactionHash=he,void ye(D);if(isError(D,"INVALID_ARGUMENT")&&(ve++,null==D.info&&(D.info={}),D.info.sendTransactionHash=he,ve>10))return void ye(D);this.provider.emit("error",makeError("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:D}))}this.provider._setTimeout((()=>{checkTx()}),be.pop()||4e3)};checkTx()}))}async signTransaction(D){const te=deepCopy$1(D);if(te.from){const he=await resolveAddress(te.from,this.provider);assertArgument(null!=he&&he.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",D),te.from=he}else te.from=this.address;const he=this.provider.getRpcTransaction(te);return await this.provider.send("eth_signTransaction",[he])}async signMessage(D){const te="string"==typeof D?toUtf8Bytes$1(D):D;return await this.provider.send("personal_sign",[hexlify$1(te),this.address.toLowerCase()])}async signTypedData(D,te,he){const ye=deepCopy$1(he),be=await TypedDataEncoder.resolveNames(D,te,ye,(async D=>{const te=await resolveAddress(D);return assertArgument(null!=te,"TypedData does not support null address","value",D),te}));return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(TypedDataEncoder.getPayload(be.domain,te,be.value))])}async unlock(D){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),D,null])}async _legacySignMessage(D){const te="string"==typeof D?toUtf8Bytes$1(D):D;return await this.provider.send("eth_sign",[this.address.toLowerCase(),hexlify$1(te)])}}var rk=new WeakMap,nk=new WeakMap,ak=new WeakMap,ik=new WeakMap,sk=new WeakMap,ck=new WeakMap,dk=new WeakMap,uk=new WeakSet;class JsonRpcApiProvider extends AbstractProvider{constructor(D,te){super(D,te),_classPrivateMethodInitSpec(this,uk),_classPrivateFieldInitSpec(this,rk,void 0),_classPrivateFieldInitSpec(this,nk,void 0),_classPrivateFieldInitSpec(this,ak,void 0),_classPrivateFieldInitSpec(this,ik,void 0),_classPrivateFieldInitSpec(this,sk,void 0),_classPrivateFieldInitSpec(this,ck,void 0),_classPrivateFieldInitSpec(this,dk,void 0),_classPrivateFieldSet2(nk,this,1),_classPrivateFieldSet2(rk,this,Object.assign({},tk,te||{})),_classPrivateFieldSet2(ak,this,[]),_classPrivateFieldSet2(ik,this,null),_classPrivateFieldSet2(ck,this,null),_classPrivateFieldSet2(dk,this,null);{let D=null;const te=new Promise((te=>{D=te}));_classPrivateFieldSet2(sk,this,{promise:te,resolve:D})}const he=this._getOption("staticNetwork");"boolean"==typeof he?(assertArgument(!he||"any"!==D,"staticNetwork cannot be used on special network 'any'","options",te),he&&null!=D&&_classPrivateFieldSet2(ck,this,Network.from(D))):he&&(assertArgument(null==D||he.matches(D),"staticNetwork MUST match network object","options",te),_classPrivateFieldSet2(ck,this,he))}_getOption(D){return _classPrivateFieldGet2(rk,this)[D]}get _network(){return assert(_classPrivateFieldGet2(ck,this),"network is not available yet","NETWORK_ERROR"),_classPrivateFieldGet2(ck,this)}async _perform(D){if("call"===D.method||"estimateGas"===D.method){let te=D.transaction;if(te&&null!=te.type&&getBigInt(te.type)&&null==te.maxFeePerGas&&null==te.maxPriorityFeePerGas){const he=await this.getFeeData();null==he.maxFeePerGas&&null==he.maxPriorityFeePerGas&&(D=Object.assign({},D,{transaction:Object.assign({},te,{type:void 0})}))}}const te=this.getRpcRequest(D);return null!=te?await this.send(te.method,te.args):super._perform(D)}async _detectNetwork(){const D=this._getOption("staticNetwork");if(D){if(!0!==D)return D;if(_classPrivateFieldGet2(ck,this))return _classPrivateFieldGet2(ck,this)}return _classPrivateFieldGet2(dk,this)?await _classPrivateFieldGet2(dk,this):this.ready?(_classPrivateFieldSet2(dk,this,(async()=>{try{const D=Network.from(getBigInt(await this.send("eth_chainId",[])));return _classPrivateFieldSet2(dk,this,null),D}catch(D){throw _classPrivateFieldSet2(dk,this,null),D}})()),await _classPrivateFieldGet2(dk,this)):(_classPrivateFieldSet2(dk,this,(async(D,te)=>{const he={id:(_classPrivateFieldSet2(nk,this,(D=_classPrivateFieldGet2(nk,this),te=D++,D)),te),method:"eth_chainId",params:[],jsonrpc:"2.0"};let ye;this.emit("debug",{action:"sendRpcPayload",payload:he});try{ye=(await this._send(he))[0],_classPrivateFieldSet2(dk,this,null)}catch(D){throw _classPrivateFieldSet2(dk,this,null),this.emit("debug",{action:"receiveRpcError",error:D}),D}if(this.emit("debug",{action:"receiveRpcResult",result:ye}),"result"in ye)return Network.from(getBigInt(ye.result));throw this.getRpcError(he,ye)})()),await _classPrivateFieldGet2(dk,this))}_start(){null!=_classPrivateFieldGet2(sk,this)&&null!=_classPrivateFieldGet2(sk,this).resolve&&(_classPrivateFieldGet2(sk,this).resolve(),_classPrivateFieldSet2(sk,this,null),(async()=>{for(;null==_classPrivateFieldGet2(ck,this)&&!this.destroyed;)try{_classPrivateFieldSet2(ck,this,await this._detectNetwork())}catch(D){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",makeError("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:D}})),await stall(1e3)}_assertClassBrand(uk,this,_scheduleDrain).call(this)})())}async _waitUntilReady(){if(null!=_classPrivateFieldGet2(sk,this))return await _classPrivateFieldGet2(sk,this).promise}_getSubscriber(D){return"pending"===D.type?new FilterIdPendingSubscriber(this):"event"===D.type?this._getOption("polling")?new PollingEventSubscriber(this,D.filter):new FilterIdEventSubscriber(this,D.filter):"orphan"===D.type&&"drop-log"===D.filter.orphan?new UnmanagedSubscriber("orphan"):super._getSubscriber(D)}get ready(){return null==_classPrivateFieldGet2(sk,this)}getRpcTransaction(D){const te={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((he=>{if(null==D[he])return;let ye=he;"gasLimit"===he&&(ye="gas"),te[ye]=toQuantity(getBigInt(D[he],`tx.${he}`))})),["from","to","data"].forEach((he=>{null!=D[he]&&(te[he]=hexlify$1(D[he]))})),D.accessList&&(te.accessList=accessListify$1(D.accessList)),te}getRpcRequest(D){switch(D.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:[getLowerCase(D.address),D.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[getLowerCase(D.address),D.blockTag]};case"getCode":return{method:"eth_getCode",args:[getLowerCase(D.address),D.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[getLowerCase(D.address),"0x"+D.position.toString(16),D.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[D.signedTransaction]};case"getBlock":if("blockTag"in D)return{method:"eth_getBlockByNumber",args:[D.blockTag,!!D.includeTransactions]};if("blockHash"in D)return{method:"eth_getBlockByHash",args:[D.blockHash,!!D.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[D.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[D.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(D.transaction),D.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(D.transaction)]};case"getLogs":return D.filter&&null!=D.filter.address&&(Array.isArray(D.filter.address)?D.filter.address=D.filter.address.map(getLowerCase):D.filter.address=getLowerCase(D.filter.address)),{method:"eth_getLogs",args:[D.filter]}}return null}getRpcError(D,te){const{method:he}=D,{error:ye}=te;if("eth_estimateGas"===he&&ye.message){const te=ye.message;if(!te.match(/revert/i)&&te.match(/insufficient funds/i))return makeError("insufficient funds","INSUFFICIENT_FUNDS",{transaction:D.params[0],info:{payload:D,error:ye}})}if("eth_call"===he||"eth_estimateGas"===he){const te=spelunkData(ye),be=TI.getBuiltinCallException("eth_call"===he?"call":"estimateGas",D.params[0],te?te.data:null);return be.info={error:ye,payload:D},be}const be=JSON.stringify(function spelunkMessage(D){const te=[];return _spelunkMessage(D,te),te}(ye));if("string"==typeof ye.message&&ye.message.match(/user denied|ethers-user-denied/i)){return makeError("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"}[he]||"unknown",reason:"rejected",info:{payload:D,error:ye}})}if("eth_sendRawTransaction"===he||"eth_sendTransaction"===he){const te=D.params[0];if(be.match(/insufficient funds|base fee exceeds gas limit/i))return makeError("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:te,info:{error:ye}});if(be.match(/nonce/i)&&be.match(/too low/i))return makeError("nonce has already been used","NONCE_EXPIRED",{transaction:te,info:{error:ye}});if(be.match(/replacement transaction/i)&&be.match(/underpriced/i))return makeError("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:te,info:{error:ye}});if(be.match(/only replay-protected/i))return makeError("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:he,info:{transaction:te,info:{error:ye}}})}let ve=!!be.match(/the method .* does not exist/i);return ve||ye&&ye.details&&ye.details.startsWith("Unauthorized method:")&&(ve=!0),ve?makeError("unsupported operation","UNSUPPORTED_OPERATION",{operation:D.method,info:{error:ye,payload:D}}):makeError("could not coalesce error","UNKNOWN_ERROR",{error:ye,payload:D})}send(D,te){var he,ye;if(this.destroyed)return Promise.reject(makeError("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:D}));const be=(_classPrivateFieldSet2(nk,this,(he=_classPrivateFieldGet2(nk,this),ye=he++,he)),ye),ve=new Promise(((he,ye)=>{_classPrivateFieldGet2(ak,this).push({resolve:he,reject:ye,payload:{method:D,params:te,id:be,jsonrpc:"2.0"}})}));return _assertClassBrand(uk,this,_scheduleDrain).call(this),ve}async getSigner(D){null==D&&(D=0);const te=this.send("eth_accounts",[]);if("number"==typeof D){const he=await te;if(D>=he.length)throw new Error("no such account");return new JsonRpcSigner(this,he[D])}const{accounts:he}=await resolveProperties$1({network:this.getNetwork(),accounts:te});D=getAddress$1(D);for(const te of he)if(getAddress$1(te)===D)return new JsonRpcSigner(this,D);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map((D=>new JsonRpcSigner(this,D)))}destroy(){_classPrivateFieldGet2(ik,this)&&(clearTimeout(_classPrivateFieldGet2(ik,this)),_classPrivateFieldSet2(ik,this,null));for(const{payload:D,reject:te}of _classPrivateFieldGet2(ak,this))te(makeError("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:D.method}));_classPrivateFieldSet2(ak,this,[]),super.destroy()}}function _scheduleDrain(){if(_classPrivateFieldGet2(ik,this))return;const D=1===this._getOption("batchMaxCount")?0:this._getOption("batchStallTime");_classPrivateFieldSet2(ik,this,setTimeout((()=>{_classPrivateFieldSet2(ik,this,null);const D=_classPrivateFieldGet2(ak,this);for(_classPrivateFieldSet2(ak,this,[]);D.length;){const te=[D.shift()];for(;D.length&&te.length!==_classPrivateFieldGet2(rk,this).batchMaxCount;){te.push(D.shift());const he=JSON.stringify(te.map((D=>D.payload)));if(he.length>_classPrivateFieldGet2(rk,this).batchMaxSize){D.unshift(te.pop());break}}(async()=>{const D=1===te.length?te[0].payload:te.map((D=>D.payload));this.emit("debug",{action:"sendRpcPayload",payload:D});try{const he=await this._send(D);this.emit("debug",{action:"receiveRpcResult",result:he});for(const{resolve:D,reject:ye,payload:be}of te){if(this.destroyed){ye(makeError("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:be.method}));continue}const te=he.filter((D=>D.id===be.id))[0];if(null!=te)"error"in te?ye(this.getRpcError(be,te)):D(te.result);else{const D=makeError("missing response for request","BAD_DATA",{value:he,info:{payload:be}});this.emit("error",D),ye(D)}}}catch(D){this.emit("debug",{action:"receiveRpcError",error:D});for(const{reject:he}of te)he(D)}})()}}),D))}var fk=new WeakMap;class JsonRpcApiPollingProvider extends JsonRpcApiProvider{constructor(D,te){super(D,te),_classPrivateFieldInitSpec(this,fk,void 0),_classPrivateFieldSet2(fk,this,4e3)}_getSubscriber(D){const te=super._getSubscriber(D);return isPollable(te)&&(te.pollingInterval=_classPrivateFieldGet2(fk,this)),te}get pollingInterval(){return _classPrivateFieldGet2(fk,this)}set pollingInterval(D){if(!Number.isInteger(D)||D<0)throw new Error("invalid interval");_classPrivateFieldSet2(fk,this,D),this._forEachSubscriber((D=>{isPollable(D)&&(D.pollingInterval=_classPrivateFieldGet2(fk,this))}))}}var lk=new WeakMap;class JsonRpcProvider extends JsonRpcApiPollingProvider{constructor(D,te,he){null==D&&(D="http://localhost:8545"),super(te,he),_classPrivateFieldInitSpec(this,lk,void 0),_classPrivateFieldSet2(lk,this,"string"==typeof D?new FetchRequest(D):D.clone())}_getConnection(){return _classPrivateFieldGet2(lk,this).clone()}async send(D,te){return await this._start(),await super.send(D,te)}async _send(D){const te=this._getConnection();te.body=JSON.stringify(D),te.setHeader("content-type","application/json");const he=await te.send();he.assertOk();let ye=he.bodyJson;return Array.isArray(ye)||(ye=[ye]),ye}}function spelunkData(D){if(null==D)return null;if("string"==typeof D.message&&D.message.match(/revert/i)&&isHexString$1(D.data))return{message:D.message,data:D.data};if("object"==typeof D){for(const te in D){const he=spelunkData(D[te]);if(he)return he}return null}if("string"==typeof D)try{return spelunkData(JSON.parse(D))}catch(D){}return null}function _spelunkMessage(D,te){if(null!=D){if("string"==typeof D.message&&te.push(D.message),"object"==typeof D)for(const he in D)_spelunkMessage(D[he],te);if("string"==typeof D)try{return _spelunkMessage(JSON.parse(D),te)}catch(D){}}}var pk={},hk={},yk={exports:{}};!function(D,te){D.exports=function(){function makePrefix(D,te){var he=te?"└":"├";return he+=D?"─ ":"──┐"}function filterKeys(D,te){var he=[];for(var ye in D)D.hasOwnProperty(ye)&&(te&&"function"==typeof D[ye]||he.push(ye));return he}function growBranch(D,te,he,ye,be,ve,we){var _e,Pe,Ie="",Re=0,ke=ye.slice(0);if(ke.push([te,he])&&ye.length>0&&(ye.forEach((function(D,he){he>0&&(Ie+=(D[1]?" ":"│")+"  "),Pe||D[0]!==te||(Pe=!0)})),Ie+=makePrefix(D,he)+D,be&&("object"!=typeof te||te instanceof Date)&&(Ie+=": "+te),Pe&&(Ie+=" (circular ref.)"),we(Ie)),!Pe&&"object"==typeof te){var Oe=filterKeys(te,ve);Oe.forEach((function(D){_e=++Re===Oe.length,growBranch(D,te[D],_e,ke,be,ve,we)}))}}var D={asLines:function(D,te,he,ye){growBranch(".",D,!1,[],te,"function"!=typeof he&&he,ye||he)},asTree:function(D,te,he){var ye="";return growBranch(".",D,!1,[],te,he,(function(D){ye+=D+"\n"})),ye}};return D}()}(yk);var mk,bk=yk.exports,gk={},vk={exports:{}},wk={exports:{}};function requireX64Core(){return mk||(mk=1,function(D,te){D.exports=function(D){return function(te){var he=D,ye=he.lib,be=ye.Base,ve=ye.WordArray,we=he.x64={};we.Word=be.extend({init:function(D,te){this.high=D,this.low=te}}),we.WordArray=be.extend({init:function(D,he){D=this.words=D||[],this.sigBytes=he!=te?he:8*D.length},toX32:function(){for(var D=this.words,te=D.length,he=[],ye=0;ye<te;ye++){var be=D[ye];he.push(be.high),he.push(be.low)}return ve.create(he,this.sigBytes)},clone:function(){for(var D=be.clone.call(this),te=D.words=this.words.slice(0),he=te.length,ye=0;ye<he;ye++)te[ye]=te[ye].clone();return D}})}(),D}(Hv)}(wk)),wk.exports}var _k,Tk={exports:{}};function requireLibTypedarrays(){return _k||(_k=1,function(D,te){D.exports=function(D){return function(){if("function"==typeof ArrayBuffer){var te=D.lib.WordArray,he=te.init,ye=te.init=function(D){if(D instanceof ArrayBuffer&&(D=new Uint8Array(D)),(D instanceof Int8Array||"undefined"!=typeof Uint8ClampedArray&&D instanceof Uint8ClampedArray||D instanceof Int16Array||D instanceof Uint16Array||D instanceof Int32Array||D instanceof Uint32Array||D instanceof Float32Array||D instanceof Float64Array)&&(D=new Uint8Array(D.buffer,D.byteOffset,D.byteLength)),D instanceof Uint8Array){for(var te=D.byteLength,ye=[],be=0;be<te;be++)ye[be>>>2]|=D[be]<<24-be%4*8;he.call(this,ye,te)}else he.apply(this,arguments)};ye.prototype=te}}(),D.lib.WordArray}(Hv)}(Tk)),Tk.exports}var Ak,Ek={exports:{}};function requireEncUtf16(){return Ak||(Ak=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.WordArray,ye=te.enc;function swapEndian(D){return D<<8&4278255360|D>>>8&16711935}ye.Utf16=ye.Utf16BE={stringify:function(D){for(var te=D.words,he=D.sigBytes,ye=[],be=0;be<he;be+=2){var ve=te[be>>>2]>>>16-be%4*8&65535;ye.push(String.fromCharCode(ve))}return ye.join("")},parse:function(D){for(var te=D.length,ye=[],be=0;be<te;be++)ye[be>>>1]|=D.charCodeAt(be)<<16-be%2*16;return he.create(ye,2*te)}},ye.Utf16LE={stringify:function(D){for(var te=D.words,he=D.sigBytes,ye=[],be=0;be<he;be+=2){var ve=swapEndian(te[be>>>2]>>>16-be%4*8&65535);ye.push(String.fromCharCode(ve))}return ye.join("")},parse:function(D){for(var te=D.length,ye=[],be=0;be<te;be++)ye[be>>>1]|=swapEndian(D.charCodeAt(be)<<16-be%2*16);return he.create(ye,2*te)}}}(),D.enc.Utf16}(Hv)}(Ek)),Ek.exports}var Pk,Sk={exports:{}};function requireEncBase64url(){return Pk||(Pk=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.WordArray;function parseLoop(D,te,ye){for(var be=[],ve=0,we=0;we<te;we++)if(we%4){var _e=ye[D.charCodeAt(we-1)]<<we%4*2|ye[D.charCodeAt(we)]>>>6-we%4*2;be[ve>>>2]|=_e<<24-ve%4*8,ve++}return he.create(be,ve)}te.enc.Base64url={stringify:function(D,te){void 0===te&&(te=!0);var he=D.words,ye=D.sigBytes,be=te?this._safe_map:this._map;D.clamp();for(var ve=[],we=0;we<ye;we+=3)for(var _e=(he[we>>>2]>>>24-we%4*8&255)<<16|(he[we+1>>>2]>>>24-(we+1)%4*8&255)<<8|he[we+2>>>2]>>>24-(we+2)%4*8&255,Pe=0;Pe<4&&we+.75*Pe<ye;Pe++)ve.push(be.charAt(_e>>>6*(3-Pe)&63));var Ie=be.charAt(64);if(Ie)for(;ve.length%4;)ve.push(Ie);return ve.join("")},parse:function(D,te){void 0===te&&(te=!0);var he=D.length,ye=te?this._safe_map:this._map,be=this._reverseMap;if(!be){be=this._reverseMap=[];for(var ve=0;ve<ye.length;ve++)be[ye.charCodeAt(ve)]=ve}var we=ye.charAt(64);if(we){var _e=D.indexOf(we);-1!==_e&&(he=_e)}return parseLoop(D,he,be)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_safe_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"}}(),D.enc.Base64url}(Hv)}(Sk)),Sk.exports}var Ck,Ik={exports:{}};function requireMd5(){return Ck||(Ck=1,function(D,te){D.exports=function(D){return function(te){var he=D,ye=he.lib,be=ye.WordArray,ve=ye.Hasher,we=he.algo,_e=[];!function(){for(var D=0;D<64;D++)_e[D]=4294967296*te.abs(te.sin(D+1))|0}();var Pe=we.MD5=ve.extend({_doReset:function(){this._hash=new be.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(D,te){for(var he=0;he<16;he++){var ye=te+he,be=D[ye];D[ye]=16711935&(be<<8|be>>>24)|4278255360&(be<<24|be>>>8)}var ve=this._hash.words,we=D[te+0],Pe=D[te+1],Ie=D[te+2],Re=D[te+3],ke=D[te+4],Oe=D[te+5],xe=D[te+6],Be=D[te+7],Fe=D[te+8],De=D[te+9],Le=D[te+10],Ue=D[te+11],qe=D[te+12],je=D[te+13],Je=D[te+14],et=D[te+15],tt=ve[0],rt=ve[1],nt=ve[2],at=ve[3];tt=FF(tt,rt,nt,at,we,7,_e[0]),at=FF(at,tt,rt,nt,Pe,12,_e[1]),nt=FF(nt,at,tt,rt,Ie,17,_e[2]),rt=FF(rt,nt,at,tt,Re,22,_e[3]),tt=FF(tt,rt,nt,at,ke,7,_e[4]),at=FF(at,tt,rt,nt,Oe,12,_e[5]),nt=FF(nt,at,tt,rt,xe,17,_e[6]),rt=FF(rt,nt,at,tt,Be,22,_e[7]),tt=FF(tt,rt,nt,at,Fe,7,_e[8]),at=FF(at,tt,rt,nt,De,12,_e[9]),nt=FF(nt,at,tt,rt,Le,17,_e[10]),rt=FF(rt,nt,at,tt,Ue,22,_e[11]),tt=FF(tt,rt,nt,at,qe,7,_e[12]),at=FF(at,tt,rt,nt,je,12,_e[13]),nt=FF(nt,at,tt,rt,Je,17,_e[14]),tt=GG(tt,rt=FF(rt,nt,at,tt,et,22,_e[15]),nt,at,Pe,5,_e[16]),at=GG(at,tt,rt,nt,xe,9,_e[17]),nt=GG(nt,at,tt,rt,Ue,14,_e[18]),rt=GG(rt,nt,at,tt,we,20,_e[19]),tt=GG(tt,rt,nt,at,Oe,5,_e[20]),at=GG(at,tt,rt,nt,Le,9,_e[21]),nt=GG(nt,at,tt,rt,et,14,_e[22]),rt=GG(rt,nt,at,tt,ke,20,_e[23]),tt=GG(tt,rt,nt,at,De,5,_e[24]),at=GG(at,tt,rt,nt,Je,9,_e[25]),nt=GG(nt,at,tt,rt,Re,14,_e[26]),rt=GG(rt,nt,at,tt,Fe,20,_e[27]),tt=GG(tt,rt,nt,at,je,5,_e[28]),at=GG(at,tt,rt,nt,Ie,9,_e[29]),nt=GG(nt,at,tt,rt,Be,14,_e[30]),tt=HH(tt,rt=GG(rt,nt,at,tt,qe,20,_e[31]),nt,at,Oe,4,_e[32]),at=HH(at,tt,rt,nt,Fe,11,_e[33]),nt=HH(nt,at,tt,rt,Ue,16,_e[34]),rt=HH(rt,nt,at,tt,Je,23,_e[35]),tt=HH(tt,rt,nt,at,Pe,4,_e[36]),at=HH(at,tt,rt,nt,ke,11,_e[37]),nt=HH(nt,at,tt,rt,Be,16,_e[38]),rt=HH(rt,nt,at,tt,Le,23,_e[39]),tt=HH(tt,rt,nt,at,je,4,_e[40]),at=HH(at,tt,rt,nt,we,11,_e[41]),nt=HH(nt,at,tt,rt,Re,16,_e[42]),rt=HH(rt,nt,at,tt,xe,23,_e[43]),tt=HH(tt,rt,nt,at,De,4,_e[44]),at=HH(at,tt,rt,nt,qe,11,_e[45]),nt=HH(nt,at,tt,rt,et,16,_e[46]),tt=II(tt,rt=HH(rt,nt,at,tt,Ie,23,_e[47]),nt,at,we,6,_e[48]),at=II(at,tt,rt,nt,Be,10,_e[49]),nt=II(nt,at,tt,rt,Je,15,_e[50]),rt=II(rt,nt,at,tt,Oe,21,_e[51]),tt=II(tt,rt,nt,at,qe,6,_e[52]),at=II(at,tt,rt,nt,Re,10,_e[53]),nt=II(nt,at,tt,rt,Le,15,_e[54]),rt=II(rt,nt,at,tt,Pe,21,_e[55]),tt=II(tt,rt,nt,at,Fe,6,_e[56]),at=II(at,tt,rt,nt,et,10,_e[57]),nt=II(nt,at,tt,rt,xe,15,_e[58]),rt=II(rt,nt,at,tt,je,21,_e[59]),tt=II(tt,rt,nt,at,ke,6,_e[60]),at=II(at,tt,rt,nt,Ue,10,_e[61]),nt=II(nt,at,tt,rt,Ie,15,_e[62]),rt=II(rt,nt,at,tt,De,21,_e[63]),ve[0]=ve[0]+tt|0,ve[1]=ve[1]+rt|0,ve[2]=ve[2]+nt|0,ve[3]=ve[3]+at|0},_doFinalize:function(){var D=this._data,he=D.words,ye=8*this._nDataBytes,be=8*D.sigBytes;he[be>>>5]|=128<<24-be%32;var ve=te.floor(ye/4294967296),we=ye;he[15+(be+64>>>9<<4)]=16711935&(ve<<8|ve>>>24)|4278255360&(ve<<24|ve>>>8),he[14+(be+64>>>9<<4)]=16711935&(we<<8|we>>>24)|4278255360&(we<<24|we>>>8),D.sigBytes=4*(he.length+1),this._process();for(var _e=this._hash,Pe=_e.words,Ie=0;Ie<4;Ie++){var Re=Pe[Ie];Pe[Ie]=16711935&(Re<<8|Re>>>24)|4278255360&(Re<<24|Re>>>8)}return _e},clone:function(){var D=ve.clone.call(this);return D._hash=this._hash.clone(),D}});function FF(D,te,he,ye,be,ve,we){var _e=D+(te&he|~te&ye)+be+we;return(_e<<ve|_e>>>32-ve)+te}function GG(D,te,he,ye,be,ve,we){var _e=D+(te&ye|he&~ye)+be+we;return(_e<<ve|_e>>>32-ve)+te}function HH(D,te,he,ye,be,ve,we){var _e=D+(te^he^ye)+be+we;return(_e<<ve|_e>>>32-ve)+te}function II(D,te,he,ye,be,ve,we){var _e=D+(he^(te|~ye))+be+we;return(_e<<ve|_e>>>32-ve)+te}he.MD5=ve._createHelper(Pe),he.HmacMD5=ve._createHmacHelper(Pe)}(Math),D.MD5}(Hv)}(Ik)),Ik.exports}var Rk,kk={exports:{}};function requireSha1(){return Rk||(Rk=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib,ye=he.WordArray,be=he.Hasher,ve=te.algo,we=[],_e=ve.SHA1=be.extend({_doReset:function(){this._hash=new ye.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(D,te){for(var he=this._hash.words,ye=he[0],be=he[1],ve=he[2],_e=he[3],Pe=he[4],Ie=0;Ie<80;Ie++){if(Ie<16)we[Ie]=0|D[te+Ie];else{var Re=we[Ie-3]^we[Ie-8]^we[Ie-14]^we[Ie-16];we[Ie]=Re<<1|Re>>>31}var ke=(ye<<5|ye>>>27)+Pe+we[Ie];ke+=Ie<20?1518500249+(be&ve|~be&_e):Ie<40?1859775393+(be^ve^_e):Ie<60?(be&ve|be&_e|ve&_e)-1894007588:(be^ve^_e)-899497514,Pe=_e,_e=ve,ve=be<<30|be>>>2,be=ye,ye=ke}he[0]=he[0]+ye|0,he[1]=he[1]+be|0,he[2]=he[2]+ve|0,he[3]=he[3]+_e|0,he[4]=he[4]+Pe|0},_doFinalize:function(){var D=this._data,te=D.words,he=8*this._nDataBytes,ye=8*D.sigBytes;return te[ye>>>5]|=128<<24-ye%32,te[14+(ye+64>>>9<<4)]=Math.floor(he/4294967296),te[15+(ye+64>>>9<<4)]=he,D.sigBytes=4*te.length,this._process(),this._hash},clone:function(){var D=be.clone.call(this);return D._hash=this._hash.clone(),D}});te.SHA1=be._createHelper(_e),te.HmacSHA1=be._createHmacHelper(_e)}(),D.SHA1}(Hv)}(kk)),kk.exports}var Ok,xk={exports:{}};var Nk,Mk={exports:{}};function requireSha512$1(){return Nk||(Nk=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.Hasher,ye=te.x64,be=ye.Word,ve=ye.WordArray,we=te.algo;function X64Word_create(){return be.create.apply(be,arguments)}var _e=[X64Word_create(1116352408,3609767458),X64Word_create(1899447441,602891725),X64Word_create(3049323471,3964484399),X64Word_create(3921009573,2173295548),X64Word_create(961987163,4081628472),X64Word_create(1508970993,3053834265),X64Word_create(2453635748,2937671579),X64Word_create(2870763221,3664609560),X64Word_create(3624381080,2734883394),X64Word_create(310598401,1164996542),X64Word_create(607225278,1323610764),X64Word_create(1426881987,3590304994),X64Word_create(1925078388,4068182383),X64Word_create(2162078206,991336113),X64Word_create(2614888103,633803317),X64Word_create(3248222580,3479774868),X64Word_create(3835390401,2666613458),X64Word_create(4022224774,944711139),X64Word_create(264347078,2341262773),X64Word_create(604807628,2007800933),X64Word_create(770255983,1495990901),X64Word_create(1249150122,1856431235),X64Word_create(1555081692,3175218132),X64Word_create(1996064986,2198950837),X64Word_create(2554220882,3999719339),X64Word_create(2821834349,766784016),X64Word_create(2952996808,2566594879),X64Word_create(3210313671,3203337956),X64Word_create(3336571891,1034457026),X64Word_create(3584528711,2466948901),X64Word_create(113926993,3758326383),X64Word_create(338241895,168717936),X64Word_create(666307205,1188179964),X64Word_create(773529912,1546045734),X64Word_create(1294757372,1522805485),X64Word_create(1396182291,2643833823),X64Word_create(1695183700,2343527390),X64Word_create(1986661051,1014477480),X64Word_create(2177026350,1206759142),X64Word_create(2456956037,344077627),X64Word_create(2730485921,1290863460),X64Word_create(2820302411,3158454273),X64Word_create(3259730800,3505952657),X64Word_create(3345764771,106217008),X64Word_create(3516065817,3606008344),X64Word_create(3600352804,1432725776),X64Word_create(4094571909,1467031594),X64Word_create(275423344,851169720),X64Word_create(430227734,3100823752),X64Word_create(506948616,1363258195),X64Word_create(659060556,3750685593),X64Word_create(883997877,3785050280),X64Word_create(958139571,3318307427),X64Word_create(1322822218,3812723403),X64Word_create(1537002063,2003034995),X64Word_create(1747873779,3602036899),X64Word_create(1955562222,1575990012),X64Word_create(2024104815,1125592928),X64Word_create(2227730452,2716904306),X64Word_create(2361852424,442776044),X64Word_create(2428436474,593698344),X64Word_create(2756734187,3733110249),X64Word_create(3204031479,2999351573),X64Word_create(3329325298,3815920427),X64Word_create(3391569614,3928383900),X64Word_create(3515267271,566280711),X64Word_create(3940187606,3454069534),X64Word_create(4118630271,4000239992),X64Word_create(116418474,1914138554),X64Word_create(174292421,2731055270),X64Word_create(289380356,3203993006),X64Word_create(460393269,320620315),X64Word_create(685471733,587496836),X64Word_create(852142971,1086792851),X64Word_create(1017036298,365543100),X64Word_create(1126000580,2618297676),X64Word_create(1288033470,3409855158),X64Word_create(1501505948,4234509866),X64Word_create(1607167915,987167468),X64Word_create(1816402316,1246189591)],Pe=[];!function(){for(var D=0;D<80;D++)Pe[D]=X64Word_create()}();var Ie=we.SHA512=he.extend({_doReset:function(){this._hash=new ve.init([new be.init(1779033703,4089235720),new be.init(3144134277,2227873595),new be.init(1013904242,4271175723),new be.init(2773480762,1595750129),new be.init(1359893119,2917565137),new be.init(2600822924,725511199),new be.init(528734635,4215389547),new be.init(1541459225,327033209)])},_doProcessBlock:function(D,te){for(var he=this._hash.words,ye=he[0],be=he[1],ve=he[2],we=he[3],Ie=he[4],Re=he[5],ke=he[6],Oe=he[7],xe=ye.high,Be=ye.low,Fe=be.high,De=be.low,Le=ve.high,Ue=ve.low,qe=we.high,je=we.low,Je=Ie.high,et=Ie.low,tt=Re.high,rt=Re.low,nt=ke.high,at=ke.low,ut=Oe.high,ht=Oe.low,yt=xe,mt=Be,bt=Fe,wt=De,_t=Le,Tt=Ue,At=qe,Et=je,Pt=Je,St=et,Ct=tt,kt=rt,Ot=nt,xt=at,Nt=ut,Bt=ht,Ft=0;Ft<80;Ft++){var Lt,Ut,$t=Pe[Ft];if(Ft<16)Ut=$t.high=0|D[te+2*Ft],Lt=$t.low=0|D[te+2*Ft+1];else{var qt=Pe[Ft-15],Gt=qt.high,zt=qt.low,Wt=(Gt>>>1|zt<<31)^(Gt>>>8|zt<<24)^Gt>>>7,Vt=(zt>>>1|Gt<<31)^(zt>>>8|Gt<<24)^(zt>>>7|Gt<<25),Kt=Pe[Ft-2],Jt=Kt.high,Zt=Kt.low,rr=(Jt>>>19|Zt<<13)^(Jt<<3|Zt>>>29)^Jt>>>6,cr=(Zt>>>19|Jt<<13)^(Zt<<3|Jt>>>29)^(Zt>>>6|Jt<<26),dr=Pe[Ft-7],kr=dr.high,$r=dr.low,qr=Pe[Ft-16],jr=qr.high,Hr=qr.low;Ut=(Ut=(Ut=Wt+kr+((Lt=Vt+$r)>>>0<Vt>>>0?1:0))+rr+((Lt+=cr)>>>0<cr>>>0?1:0))+jr+((Lt+=Hr)>>>0<Hr>>>0?1:0),$t.high=Ut,$t.low=Lt}var zr,Vr=Pt&Ct^~Pt&Ot,Jr=St&kt^~St&xt,Xr=yt&bt^yt&_t^bt&_t,Qr=mt&wt^mt&Tt^wt&Tt,Zr=(yt>>>28|mt<<4)^(yt<<30|mt>>>2)^(yt<<25|mt>>>7),en=(mt>>>28|yt<<4)^(mt<<30|yt>>>2)^(mt<<25|yt>>>7),rn=(Pt>>>14|St<<18)^(Pt>>>18|St<<14)^(Pt<<23|St>>>9),nn=(St>>>14|Pt<<18)^(St>>>18|Pt<<14)^(St<<23|Pt>>>9),sn=_e[Ft],on=sn.high,yn=sn.low,bn=Nt+rn+((zr=Bt+nn)>>>0<Bt>>>0?1:0),wn=en+Qr;Nt=Ot,Bt=xt,Ot=Ct,xt=kt,Ct=Pt,kt=St,Pt=At+(bn=(bn=(bn=bn+Vr+((zr+=Jr)>>>0<Jr>>>0?1:0))+on+((zr+=yn)>>>0<yn>>>0?1:0))+Ut+((zr+=Lt)>>>0<Lt>>>0?1:0))+((St=Et+zr|0)>>>0<Et>>>0?1:0)|0,At=_t,Et=Tt,_t=bt,Tt=wt,bt=yt,wt=mt,yt=bn+(Zr+Xr+(wn>>>0<en>>>0?1:0))+((mt=zr+wn|0)>>>0<zr>>>0?1:0)|0}Be=ye.low=Be+mt,ye.high=xe+yt+(Be>>>0<mt>>>0?1:0),De=be.low=De+wt,be.high=Fe+bt+(De>>>0<wt>>>0?1:0),Ue=ve.low=Ue+Tt,ve.high=Le+_t+(Ue>>>0<Tt>>>0?1:0),je=we.low=je+Et,we.high=qe+At+(je>>>0<Et>>>0?1:0),et=Ie.low=et+St,Ie.high=Je+Pt+(et>>>0<St>>>0?1:0),rt=Re.low=rt+kt,Re.high=tt+Ct+(rt>>>0<kt>>>0?1:0),at=ke.low=at+xt,ke.high=nt+Ot+(at>>>0<xt>>>0?1:0),ht=Oe.low=ht+Bt,Oe.high=ut+Nt+(ht>>>0<Bt>>>0?1:0)},_doFinalize:function(){var D=this._data,te=D.words,he=8*this._nDataBytes,ye=8*D.sigBytes;return te[ye>>>5]|=128<<24-ye%32,te[30+(ye+128>>>10<<5)]=Math.floor(he/4294967296),te[31+(ye+128>>>10<<5)]=he,D.sigBytes=4*te.length,this._process(),this._hash.toX32()},clone:function(){var D=he.clone.call(this);return D._hash=this._hash.clone(),D},blockSize:32});te.SHA512=he._createHelper(Ie),te.HmacSHA512=he._createHmacHelper(Ie)}(),D.SHA512}(Hv,requireX64Core())}(Mk)),Mk.exports}var Bk,Fk={exports:{}};var Dk,Lk={exports:{}};function requireSha3$1(){return Dk||(Dk=1,function(D,te){D.exports=function(D){return function(te){var he=D,ye=he.lib,be=ye.WordArray,ve=ye.Hasher,we=he.x64.Word,_e=he.algo,Pe=[],Ie=[],Re=[];!function(){for(var D=1,te=0,he=0;he<24;he++){Pe[D+5*te]=(he+1)*(he+2)/2%64;var ye=(2*D+3*te)%5;D=te%5,te=ye}for(D=0;D<5;D++)for(te=0;te<5;te++)Ie[D+5*te]=te+(2*D+3*te)%5*5;for(var be=1,ve=0;ve<24;ve++){for(var _e=0,ke=0,Oe=0;Oe<7;Oe++){if(1&be){var xe=(1<<Oe)-1;xe<32?ke^=1<<xe:_e^=1<<xe-32}128&be?be=be<<1^113:be<<=1}Re[ve]=we.create(_e,ke)}}();var ke=[];!function(){for(var D=0;D<25;D++)ke[D]=we.create()}();var Oe=_e.SHA3=ve.extend({cfg:ve.cfg.extend({outputLength:512}),_doReset:function(){for(var D=this._state=[],te=0;te<25;te++)D[te]=new we.init;this.blockSize=(1600-2*this.cfg.outputLength)/32},_doProcessBlock:function(D,te){for(var he=this._state,ye=this.blockSize/2,be=0;be<ye;be++){var ve=D[te+2*be],we=D[te+2*be+1];ve=16711935&(ve<<8|ve>>>24)|4278255360&(ve<<24|ve>>>8),we=16711935&(we<<8|we>>>24)|4278255360&(we<<24|we>>>8),(ht=he[be]).high^=we,ht.low^=ve}for(var _e=0;_e<24;_e++){for(var Oe=0;Oe<5;Oe++){for(var xe=0,Be=0,Fe=0;Fe<5;Fe++)xe^=(ht=he[Oe+5*Fe]).high,Be^=ht.low;var De=ke[Oe];De.high=xe,De.low=Be}for(Oe=0;Oe<5;Oe++){var Le=ke[(Oe+4)%5],Ue=ke[(Oe+1)%5],qe=Ue.high,je=Ue.low;for(xe=Le.high^(qe<<1|je>>>31),Be=Le.low^(je<<1|qe>>>31),Fe=0;Fe<5;Fe++)(ht=he[Oe+5*Fe]).high^=xe,ht.low^=Be}for(var Je=1;Je<25;Je++){var et=(ht=he[Je]).high,tt=ht.low,rt=Pe[Je];rt<32?(xe=et<<rt|tt>>>32-rt,Be=tt<<rt|et>>>32-rt):(xe=tt<<rt-32|et>>>64-rt,Be=et<<rt-32|tt>>>64-rt);var nt=ke[Ie[Je]];nt.high=xe,nt.low=Be}var at=ke[0],ut=he[0];for(at.high=ut.high,at.low=ut.low,Oe=0;Oe<5;Oe++)for(Fe=0;Fe<5;Fe++){var ht=he[Je=Oe+5*Fe],yt=ke[Je],mt=ke[(Oe+1)%5+5*Fe],bt=ke[(Oe+2)%5+5*Fe];ht.high=yt.high^~mt.high&bt.high,ht.low=yt.low^~mt.low&bt.low}ht=he[0];var wt=Re[_e];ht.high^=wt.high,ht.low^=wt.low}},_doFinalize:function(){var D=this._data,he=D.words;this._nDataBytes;var ye=8*D.sigBytes,ve=32*this.blockSize;he[ye>>>5]|=1<<24-ye%32,he[(te.ceil((ye+1)/ve)*ve>>>5)-1]|=128,D.sigBytes=4*he.length,this._process();for(var we=this._state,_e=this.cfg.outputLength/8,Pe=_e/8,Ie=[],Re=0;Re<Pe;Re++){var ke=we[Re],Oe=ke.high,xe=ke.low;Oe=16711935&(Oe<<8|Oe>>>24)|4278255360&(Oe<<24|Oe>>>8),xe=16711935&(xe<<8|xe>>>24)|4278255360&(xe<<24|xe>>>8),Ie.push(xe),Ie.push(Oe)}return new be.init(Ie,_e)},clone:function(){for(var D=ve.clone.call(this),te=D._state=this._state.slice(0),he=0;he<25;he++)te[he]=te[he].clone();return D}});he.SHA3=ve._createHelper(Oe),he.HmacSHA3=ve._createHmacHelper(Oe)}(Math),D.SHA3}(Hv,requireX64Core())}(Lk)),Lk.exports}var Uk,$k={exports:{}};var qk,Gk={exports:{}};function requireHmac$3(){return qk||(qk=1,function(D,te){D.exports=function(D){!function(){var te=D,he=te.lib.Base,ye=te.enc.Utf8;te.algo.HMAC=he.extend({init:function(D,te){D=this._hasher=new D.init,"string"==typeof te&&(te=ye.parse(te));var he=D.blockSize,be=4*he;te.sigBytes>be&&(te=D.finalize(te)),te.clamp();for(var ve=this._oKey=te.clone(),we=this._iKey=te.clone(),_e=ve.words,Pe=we.words,Ie=0;Ie<he;Ie++)_e[Ie]^=1549556828,Pe[Ie]^=909522486;ve.sigBytes=we.sigBytes=be,this.reset()},reset:function(){var D=this._hasher;D.reset(),D.update(this._iKey)},update:function(D){return this._hasher.update(D),this},finalize:function(D){var te=this._hasher,he=te.finalize(D);return te.reset(),te.finalize(this._oKey.clone().concat(he))}})}()}(Hv)}(Gk)),Gk.exports}var jk,Hk={exports:{}};var zk,Wk={exports:{}};function requireEvpkdf(){return zk||(zk=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib,ye=he.Base,be=he.WordArray,ve=te.algo,we=ve.MD5,_e=ve.EvpKDF=ye.extend({cfg:ye.extend({keySize:4,hasher:we,iterations:1}),init:function(D){this.cfg=this.cfg.extend(D)},compute:function(D,te){for(var he,ye=this.cfg,ve=ye.hasher.create(),we=be.create(),_e=we.words,Pe=ye.keySize,Ie=ye.iterations;_e.length<Pe;){he&&ve.update(he),he=ve.update(D).finalize(te),ve.reset();for(var Re=1;Re<Ie;Re++)he=ve.finalize(he),ve.reset();we.concat(he)}return we.sigBytes=4*Pe,we}});te.EvpKDF=function(D,te,he){return _e.create(he).compute(D,te)}}(),D.EvpKDF}(Hv,requireSha1(),requireHmac$3())}(Wk)),Wk.exports}var Vk,Kk={exports:{}};function requireCipherCore(){return Vk||(Vk=1,function(D,te){D.exports=function(D){D.lib.Cipher||function(te){var he=D,ye=he.lib,be=ye.Base,ve=ye.WordArray,we=ye.BufferedBlockAlgorithm,_e=he.enc;_e.Utf8;var Pe=_e.Base64,Ie=he.algo.EvpKDF,Re=ye.Cipher=we.extend({cfg:be.extend(),createEncryptor:function(D,te){return this.create(this._ENC_XFORM_MODE,D,te)},createDecryptor:function(D,te){return this.create(this._DEC_XFORM_MODE,D,te)},init:function(D,te,he){this.cfg=this.cfg.extend(he),this._xformMode=D,this._key=te,this.reset()},reset:function(){we.reset.call(this),this._doReset()},undefined:function(D){return this._append(D),this._process()},finalize:function(D){return D&&this._append(D),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function selectCipherStrategy(D){return"string"==typeof D?qe:Le}return function(D){return{encrypt:function(te,he,ye){return selectCipherStrategy(he).encrypt(D,te,he,ye)},decrypt:function(te,he,ye){return selectCipherStrategy(he).decrypt(D,te,he,ye)}}}}()});ye.StreamCipher=Re.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var ke=he.mode={},Oe=ye.BlockCipherMode=be.extend({createEncryptor:function(D,te){return this.Encryptor.create(D,te)},createDecryptor:function(D,te){return this.Decryptor.create(D,te)},init:function(D,te){this._cipher=D,this._iv=te}}),xe=ke.CBC=function(){var D=Oe.extend();function xorBlock(D,he,ye){var be,ve=this._iv;ve?(be=ve,this._iv=te):be=this._prevBlock;for(var we=0;we<ye;we++)D[he+we]^=be[we]}return D.Encryptor=D.extend({processBlock:function(D,te){var he=this._cipher,ye=he.blockSize;xorBlock.call(this,D,te,ye),he.encryptBlock(D,te),this._prevBlock=D.slice(te,te+ye)}}),D.Decryptor=D.extend({processBlock:function(D,te){var he=this._cipher,ye=he.blockSize,be=D.slice(te,te+ye);he.decryptBlock(D,te),xorBlock.call(this,D,te,ye),this._prevBlock=be}}),D}(),Be=(he.pad={}).Pkcs7={pad:function(D,te){for(var he=4*te,ye=he-D.sigBytes%he,be=ye<<24|ye<<16|ye<<8|ye,we=[],_e=0;_e<ye;_e+=4)we.push(be);var Pe=ve.create(we,ye);D.concat(Pe)},unpad:function(D){var te=255&D.words[D.sigBytes-1>>>2];D.sigBytes-=te}};ye.BlockCipher=Re.extend({cfg:Re.cfg.extend({mode:xe,padding:Be}),reset:function(){var D;Re.reset.call(this);var te=this.cfg,he=te.iv,ye=te.mode;this._xformMode==this._ENC_XFORM_MODE?D=ye.createEncryptor:(D=ye.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==D?this._mode.init(this,he&&he.words):(this._mode=D.call(ye,this,he&&he.words),this._mode.__creator=D)},_doProcessBlock:function(D,te){this._mode.processBlock(D,te)},_doFinalize:function(){var D,te=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(te.pad(this._data,this.blockSize),D=this._process(!0)):(D=this._process(!0),te.unpad(D)),D},blockSize:4});var Fe=ye.CipherParams=be.extend({init:function(D){this.mixIn(D)},toString:function(D){return(D||this.formatter).stringify(this)}}),De=(he.format={}).OpenSSL={stringify:function(D){var te=D.ciphertext,he=D.salt;return(he?ve.create([1398893684,1701076831]).concat(he).concat(te):te).toString(Pe)},parse:function(D){var te,he=Pe.parse(D),ye=he.words;return 1398893684==ye[0]&&1701076831==ye[1]&&(te=ve.create(ye.slice(2,4)),ye.splice(0,4),he.sigBytes-=16),Fe.create({ciphertext:he,salt:te})}},Le=ye.SerializableCipher=be.extend({cfg:be.extend({format:De}),encrypt:function(D,te,he,ye){ye=this.cfg.extend(ye);var be=D.createEncryptor(he,ye),ve=be.finalize(te),we=be.cfg;return Fe.create({ciphertext:ve,key:he,iv:we.iv,algorithm:D,mode:we.mode,padding:we.padding,blockSize:D.blockSize,formatter:ye.format})},decrypt:function(D,te,he,ye){return ye=this.cfg.extend(ye),te=this._parse(te,ye.format),D.createDecryptor(he,ye).finalize(te.ciphertext)},_parse:function(D,te){return"string"==typeof D?te.parse(D,this):D}}),Ue=(he.kdf={}).OpenSSL={execute:function(D,te,he,ye,be){if(ye||(ye=ve.random(8)),be)we=Ie.create({keySize:te+he,hasher:be}).compute(D,ye);else var we=Ie.create({keySize:te+he}).compute(D,ye);var _e=ve.create(we.words.slice(te),4*he);return we.sigBytes=4*te,Fe.create({key:we,iv:_e,salt:ye})}},qe=ye.PasswordBasedCipher=Le.extend({cfg:Le.cfg.extend({kdf:Ue}),encrypt:function(D,te,he,ye){var be=(ye=this.cfg.extend(ye)).kdf.execute(he,D.keySize,D.ivSize,ye.salt,ye.hasher);ye.iv=be.iv;var ve=Le.encrypt.call(this,D,te,be.key,ye);return ve.mixIn(be),ve},decrypt:function(D,te,he,ye){ye=this.cfg.extend(ye),te=this._parse(te,ye.format);var be=ye.kdf.execute(he,D.keySize,D.ivSize,te.salt,ye.hasher);return ye.iv=be.iv,Le.decrypt.call(this,D,te,be.key,ye)}})}()}(Hv,requireEvpkdf())}(Kk)),Kk.exports}var Jk,Xk={exports:{}};function requireModeCfb$1(){return Jk||(Jk=1,function(D,te){D.exports=function(D){return D.mode.CFB=function(){var te=D.lib.BlockCipherMode.extend();function generateKeystreamAndEncrypt(D,te,he,ye){var be,ve=this._iv;ve?(be=ve.slice(0),this._iv=void 0):be=this._prevBlock,ye.encryptBlock(be,0);for(var we=0;we<he;we++)D[te+we]^=be[we]}return te.Encryptor=te.extend({processBlock:function(D,te){var he=this._cipher,ye=he.blockSize;generateKeystreamAndEncrypt.call(this,D,te,ye,he),this._prevBlock=D.slice(te,te+ye)}}),te.Decryptor=te.extend({processBlock:function(D,te){var he=this._cipher,ye=he.blockSize,be=D.slice(te,te+ye);generateKeystreamAndEncrypt.call(this,D,te,ye,he),this._prevBlock=be}}),te}(),D.mode.CFB}(Hv,requireCipherCore())}(Xk)),Xk.exports}var Qk,Zk={exports:{}};function requireModeCtr$1(){return Qk||(Qk=1,function(D,te){D.exports=function(D){return D.mode.CTR=(te=D.lib.BlockCipherMode.extend(),he=te.Encryptor=te.extend({processBlock:function(D,te){var he=this._cipher,ye=he.blockSize,be=this._iv,ve=this._counter;be&&(ve=this._counter=be.slice(0),this._iv=void 0);var we=ve.slice(0);he.encryptBlock(we,0),ve[ye-1]=ve[ye-1]+1|0;for(var _e=0;_e<ye;_e++)D[te+_e]^=we[_e]}}),te.Decryptor=he,te),D.mode.CTR;var te,he}(Hv,requireCipherCore())}(Zk)),Zk.exports}var Yk,eO={exports:{}};function requireModeCtrGladman(){return Yk||(Yk=1,function(D,te){D.exports=function(D){
/** @preserve
  			 * Counter block mode compatible with  Dr Brian Gladman fileenc.c
  			 * derived from CryptoJS.mode.CTR
  			 * Jan Hruby jhruby.web@gmail.com
  			 */
return D.mode.CTRGladman=function(){var te=D.lib.BlockCipherMode.extend();function incWord(D){if(255==(D>>24&255)){var te=D>>16&255,he=D>>8&255,ye=255&D;255===te?(te=0,255===he?(he=0,255===ye?ye=0:++ye):++he):++te,D=0,D+=te<<16,D+=he<<8,D+=ye}else D+=1<<24;return D}function incCounter(D){return 0===(D[0]=incWord(D[0]))&&(D[1]=incWord(D[1])),D}var he=te.Encryptor=te.extend({processBlock:function(D,te){var he=this._cipher,ye=he.blockSize,be=this._iv,ve=this._counter;be&&(ve=this._counter=be.slice(0),this._iv=void 0),incCounter(ve);var we=ve.slice(0);he.encryptBlock(we,0);for(var _e=0;_e<ye;_e++)D[te+_e]^=we[_e]}});return te.Decryptor=he,te}(),D.mode.CTRGladman}(Hv,requireCipherCore())}(eO)),eO.exports}var tO,rO={exports:{}};function requireModeOfb$1(){return tO||(tO=1,function(D,te){D.exports=function(D){return D.mode.OFB=(te=D.lib.BlockCipherMode.extend(),he=te.Encryptor=te.extend({processBlock:function(D,te){var he=this._cipher,ye=he.blockSize,be=this._iv,ve=this._keystream;be&&(ve=this._keystream=be.slice(0),this._iv=void 0),he.encryptBlock(ve,0);for(var we=0;we<ye;we++)D[te+we]^=ve[we]}}),te.Decryptor=he,te),D.mode.OFB;var te,he}(Hv,requireCipherCore())}(rO)),rO.exports}var nO,aO={exports:{}};var iO,sO={exports:{}};var oO,cO={exports:{}};var dO,uO={exports:{}};var fO,lO={exports:{}};var pO,hO={exports:{}};var yO,mO={exports:{}};var bO,gO={exports:{}};var vO,wO={exports:{}};function requireTripledes(){return vO||(vO=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib,ye=he.WordArray,be=he.BlockCipher,ve=te.algo,we=[57,49,41,33,25,17,9,1,58,50,42,34,26,18,10,2,59,51,43,35,27,19,11,3,60,52,44,36,63,55,47,39,31,23,15,7,62,54,46,38,30,22,14,6,61,53,45,37,29,21,13,5,28,20,12,4],_e=[14,17,11,24,1,5,3,28,15,6,21,10,23,19,12,4,26,8,16,7,27,20,13,2,41,52,31,37,47,55,30,40,51,45,33,48,44,49,39,56,34,53,46,42,50,36,29,32],Pe=[1,2,4,6,8,10,12,14,15,17,19,21,23,25,27,28],Ie=[{0:8421888,268435456:32768,536870912:8421378,805306368:2,1073741824:512,1342177280:8421890,1610612736:8389122,1879048192:8388608,2147483648:514,2415919104:8389120,2684354560:33280,2952790016:8421376,3221225472:32770,3489660928:8388610,3758096384:0,4026531840:33282,134217728:0,402653184:8421890,671088640:33282,939524096:32768,1207959552:8421888,1476395008:512,1744830464:8421378,2013265920:2,2281701376:8389120,2550136832:33280,2818572288:8421376,3087007744:8389122,3355443200:8388610,3623878656:32770,3892314112:514,4160749568:8388608,1:32768,268435457:2,536870913:8421888,805306369:8388608,1073741825:8421378,1342177281:33280,1610612737:512,1879048193:8389122,2147483649:8421890,2415919105:8421376,2684354561:8388610,2952790017:33282,3221225473:514,3489660929:8389120,3758096385:32770,4026531841:0,134217729:8421890,402653185:8421376,671088641:8388608,939524097:512,1207959553:32768,1476395009:8388610,1744830465:2,2013265921:33282,2281701377:32770,2550136833:8389122,2818572289:514,3087007745:8421888,3355443201:8389120,3623878657:0,3892314113:33280,4160749569:8421378},{0:1074282512,16777216:16384,33554432:524288,50331648:1074266128,67108864:1073741840,83886080:1074282496,100663296:1073758208,117440512:16,134217728:540672,150994944:1073758224,167772160:1073741824,184549376:540688,201326592:524304,218103808:0,234881024:16400,251658240:1074266112,8388608:1073758208,25165824:540688,41943040:16,58720256:1073758224,75497472:1074282512,92274688:1073741824,109051904:524288,125829120:1074266128,142606336:524304,159383552:0,176160768:16384,192937984:1074266112,209715200:1073741840,226492416:540672,243269632:1074282496,260046848:16400,268435456:0,285212672:1074266128,301989888:1073758224,318767104:1074282496,335544320:1074266112,352321536:16,369098752:540688,385875968:16384,402653184:16400,419430400:524288,436207616:524304,452984832:1073741840,469762048:540672,486539264:1073758208,503316480:1073741824,520093696:1074282512,276824064:540688,293601280:524288,310378496:1074266112,327155712:16384,343932928:1073758208,360710144:1074282512,377487360:16,394264576:1073741824,411041792:1074282496,427819008:1073741840,444596224:1073758224,461373440:524304,478150656:0,494927872:16400,511705088:1074266128,528482304:540672},{0:260,1048576:0,2097152:67109120,3145728:65796,4194304:65540,5242880:67108868,6291456:67174660,7340032:67174400,8388608:67108864,9437184:67174656,10485760:65792,11534336:67174404,12582912:67109124,13631488:65536,14680064:4,15728640:256,524288:67174656,1572864:67174404,2621440:0,3670016:67109120,4718592:67108868,5767168:65536,6815744:65540,7864320:260,8912896:4,9961472:256,11010048:67174400,12058624:65796,13107200:65792,14155776:67109124,15204352:67174660,16252928:67108864,16777216:67174656,17825792:65540,18874368:65536,19922944:67109120,20971520:256,22020096:67174660,23068672:67108868,24117248:0,25165824:67109124,26214400:67108864,27262976:4,28311552:65792,29360128:67174400,30408704:260,31457280:65796,32505856:67174404,17301504:67108864,18350080:260,19398656:67174656,20447232:0,21495808:65540,22544384:67109120,23592960:256,24641536:67174404,25690112:65536,26738688:67174660,27787264:65796,28835840:67108868,29884416:67109124,30932992:67174400,31981568:4,33030144:65792},{0:2151682048,65536:2147487808,131072:4198464,196608:2151677952,262144:0,327680:4198400,393216:2147483712,458752:4194368,524288:2147483648,589824:4194304,655360:64,720896:2147487744,786432:2151678016,851968:4160,917504:4096,983040:2151682112,32768:2147487808,98304:64,163840:2151678016,229376:2147487744,294912:4198400,360448:2151682112,425984:0,491520:2151677952,557056:4096,622592:2151682048,688128:4194304,753664:4160,819200:2147483648,884736:4194368,950272:4198464,1015808:2147483712,1048576:4194368,1114112:4198400,1179648:2147483712,1245184:0,1310720:4160,1376256:2151678016,1441792:2151682048,1507328:2147487808,1572864:2151682112,1638400:2147483648,1703936:2151677952,1769472:4198464,1835008:2147487744,1900544:4194304,1966080:64,2031616:4096,1081344:2151677952,1146880:2151682112,1212416:0,1277952:4198400,1343488:4194368,1409024:2147483648,1474560:2147487808,1540096:64,1605632:2147483712,1671168:4096,1736704:2147487744,1802240:2151678016,1867776:4160,1933312:2151682048,1998848:4194304,2064384:4198464},{0:128,4096:17039360,8192:262144,12288:536870912,16384:537133184,20480:16777344,24576:553648256,28672:262272,32768:16777216,36864:537133056,40960:536871040,45056:553910400,49152:553910272,53248:0,57344:17039488,61440:553648128,2048:17039488,6144:553648256,10240:128,14336:17039360,18432:262144,22528:537133184,26624:553910272,30720:536870912,34816:537133056,38912:0,43008:553910400,47104:16777344,51200:536871040,55296:553648128,59392:16777216,63488:262272,65536:262144,69632:128,73728:536870912,77824:553648256,81920:16777344,86016:553910272,90112:537133184,94208:16777216,98304:553910400,102400:553648128,106496:17039360,110592:537133056,114688:262272,118784:536871040,122880:0,126976:17039488,67584:553648256,71680:16777216,75776:17039360,79872:537133184,83968:536870912,88064:17039488,92160:128,96256:553910272,100352:262272,104448:553910400,108544:0,112640:553648128,116736:16777344,120832:262144,124928:537133056,129024:536871040},{0:268435464,256:8192,512:270532608,768:270540808,1024:268443648,1280:2097152,1536:2097160,1792:268435456,2048:0,2304:268443656,2560:2105344,2816:8,3072:270532616,3328:2105352,3584:8200,3840:270540800,128:270532608,384:270540808,640:8,896:2097152,1152:2105352,1408:268435464,1664:268443648,1920:8200,2176:2097160,2432:8192,2688:268443656,2944:270532616,3200:0,3456:270540800,3712:2105344,3968:268435456,4096:268443648,4352:270532616,4608:270540808,4864:8200,5120:2097152,5376:268435456,5632:268435464,5888:2105344,6144:2105352,6400:0,6656:8,6912:270532608,7168:8192,7424:268443656,7680:270540800,7936:2097160,4224:8,4480:2105344,4736:2097152,4992:268435464,5248:268443648,5504:8200,5760:270540808,6016:270532608,6272:270540800,6528:270532616,6784:8192,7040:2105352,7296:2097160,7552:0,7808:268435456,8064:268443656},{0:1048576,16:33555457,32:1024,48:1049601,64:34604033,80:0,96:1,112:34603009,128:33555456,144:1048577,160:33554433,176:34604032,192:34603008,208:1025,224:1049600,240:33554432,8:34603009,24:0,40:33555457,56:34604032,72:1048576,88:33554433,104:33554432,120:1025,136:1049601,152:33555456,168:34603008,184:1048577,200:1024,216:34604033,232:1,248:1049600,256:33554432,272:1048576,288:33555457,304:34603009,320:1048577,336:33555456,352:34604032,368:1049601,384:1025,400:34604033,416:1049600,432:1,448:0,464:34603008,480:33554433,496:1024,264:1049600,280:33555457,296:34603009,312:1,328:33554432,344:1048576,360:1025,376:34604032,392:33554433,408:34603008,424:0,440:34604033,456:1049601,472:1024,488:33555456,504:1048577},{0:134219808,1:131072,2:134217728,3:32,4:131104,5:134350880,6:134350848,7:2048,8:134348800,9:134219776,10:133120,11:134348832,12:2080,13:0,14:134217760,15:133152,2147483648:2048,2147483649:134350880,2147483650:134219808,2147483651:134217728,2147483652:134348800,2147483653:133120,2147483654:133152,2147483655:32,2147483656:134217760,2147483657:2080,2147483658:131104,2147483659:134350848,2147483660:0,2147483661:134348832,2147483662:134219776,2147483663:131072,16:133152,17:134350848,18:32,19:2048,20:134219776,21:134217760,22:134348832,23:131072,24:0,25:131104,26:134348800,27:134219808,28:134350880,29:133120,30:2080,31:134217728,2147483664:131072,2147483665:2048,2147483666:134348832,2147483667:133152,2147483668:32,2147483669:134348800,2147483670:134217728,2147483671:134219808,2147483672:134350880,2147483673:134217760,2147483674:134219776,2147483675:0,2147483676:133120,2147483677:2080,2147483678:131104,2147483679:134350848}],Re=[4160749569,528482304,33030144,2064384,129024,8064,504,2147483679],ke=ve.DES=be.extend({_doReset:function(){for(var D=this._key.words,te=[],he=0;he<56;he++){var ye=we[he]-1;te[he]=D[ye>>>5]>>>31-ye%32&1}for(var be=this._subKeys=[],ve=0;ve<16;ve++){var Ie=be[ve]=[],Re=Pe[ve];for(he=0;he<24;he++)Ie[he/6|0]|=te[(_e[he]-1+Re)%28]<<31-he%6,Ie[4+(he/6|0)]|=te[28+(_e[he+24]-1+Re)%28]<<31-he%6;for(Ie[0]=Ie[0]<<1|Ie[0]>>>31,he=1;he<7;he++)Ie[he]=Ie[he]>>>4*(he-1)+3;Ie[7]=Ie[7]<<5|Ie[7]>>>27}var ke=this._invSubKeys=[];for(he=0;he<16;he++)ke[he]=be[15-he]},encryptBlock:function(D,te){this._doCryptBlock(D,te,this._subKeys)},decryptBlock:function(D,te){this._doCryptBlock(D,te,this._invSubKeys)},_doCryptBlock:function(D,te,he){this._lBlock=D[te],this._rBlock=D[te+1],exchangeLR.call(this,4,252645135),exchangeLR.call(this,16,65535),exchangeRL.call(this,2,858993459),exchangeRL.call(this,8,16711935),exchangeLR.call(this,1,1431655765);for(var ye=0;ye<16;ye++){for(var be=he[ye],ve=this._lBlock,we=this._rBlock,_e=0,Pe=0;Pe<8;Pe++)_e|=Ie[Pe][((we^be[Pe])&Re[Pe])>>>0];this._lBlock=we,this._rBlock=ve^_e}var ke=this._lBlock;this._lBlock=this._rBlock,this._rBlock=ke,exchangeLR.call(this,1,1431655765),exchangeRL.call(this,8,16711935),exchangeRL.call(this,2,858993459),exchangeLR.call(this,16,65535),exchangeLR.call(this,4,252645135),D[te]=this._lBlock,D[te+1]=this._rBlock},keySize:2,ivSize:2,blockSize:2});function exchangeLR(D,te){var he=(this._lBlock>>>D^this._rBlock)&te;this._rBlock^=he,this._lBlock^=he<<D}function exchangeRL(D,te){var he=(this._rBlock>>>D^this._lBlock)&te;this._lBlock^=he,this._rBlock^=he<<D}te.DES=be._createHelper(ke);var Oe=ve.TripleDES=be.extend({_doReset:function(){var D=this._key.words;if(2!==D.length&&4!==D.length&&D.length<6)throw new Error("Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.");var te=D.slice(0,2),he=D.length<4?D.slice(0,2):D.slice(2,4),be=D.length<6?D.slice(0,2):D.slice(4,6);this._des1=ke.createEncryptor(ye.create(te)),this._des2=ke.createEncryptor(ye.create(he)),this._des3=ke.createEncryptor(ye.create(be))},encryptBlock:function(D,te){this._des1.encryptBlock(D,te),this._des2.decryptBlock(D,te),this._des3.encryptBlock(D,te)},decryptBlock:function(D,te){this._des3.decryptBlock(D,te),this._des2.encryptBlock(D,te),this._des1.decryptBlock(D,te)},keySize:6,ivSize:2,blockSize:2});te.TripleDES=be._createHelper(Oe)}(),D.TripleDES}(Hv,requireMd5(),requireEvpkdf(),requireCipherCore())}(wO)),wO.exports}var _O,TO={exports:{}};var AO,EO={exports:{}};var PO,SO={exports:{}};var CO,IO={exports:{}};function requireBlowfish(){return CO||(CO=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.BlockCipher,ye=te.algo;const be=16,ve=[608135816,2242054355,320440878,57701188,2752067618,698298832,137296536,3964562569,1160258022,953160567,3193202383,887688300,3232508343,3380367581,1065670069,3041331479,2450970073,2306472731],we=[[3509652390,2564797868,805139163,3491422135,3101798381,1780907670,3128725573,4046225305,614570311,3012652279,134345442,2240740374,1667834072,1901547113,2757295779,4103290238,227898511,1921955416,1904987480,2182433518,2069144605,3260701109,2620446009,720527379,3318853667,677414384,3393288472,3101374703,2390351024,1614419982,1822297739,2954791486,3608508353,3174124327,2024746970,1432378464,3864339955,2857741204,1464375394,1676153920,1439316330,715854006,3033291828,289532110,2706671279,2087905683,3018724369,1668267050,732546397,1947742710,3462151702,2609353502,2950085171,1814351708,2050118529,680887927,999245976,1800124847,3300911131,1713906067,1641548236,4213287313,1216130144,1575780402,4018429277,3917837745,3693486850,3949271944,596196993,3549867205,258830323,2213823033,772490370,2760122372,1774776394,2652871518,566650946,4142492826,1728879713,2882767088,1783734482,3629395816,2517608232,2874225571,1861159788,326777828,3124490320,2130389656,2716951837,967770486,1724537150,2185432712,2364442137,1164943284,2105845187,998989502,3765401048,2244026483,1075463327,1455516326,1322494562,910128902,469688178,1117454909,936433444,3490320968,3675253459,1240580251,122909385,2157517691,634681816,4142456567,3825094682,3061402683,2540495037,79693498,3249098678,1084186820,1583128258,426386531,1761308591,1047286709,322548459,995290223,1845252383,2603652396,3431023940,2942221577,3202600964,3727903485,1712269319,422464435,3234572375,1170764815,3523960633,3117677531,1434042557,442511882,3600875718,1076654713,1738483198,4213154764,2393238008,3677496056,1014306527,4251020053,793779912,2902807211,842905082,4246964064,1395751752,1040244610,2656851899,3396308128,445077038,3742853595,3577915638,679411651,2892444358,2354009459,1767581616,3150600392,3791627101,3102740896,284835224,4246832056,1258075500,768725851,2589189241,3069724005,3532540348,1274779536,3789419226,2764799539,1660621633,3471099624,4011903706,913787905,3497959166,737222580,2514213453,2928710040,3937242737,1804850592,3499020752,2949064160,2386320175,2390070455,2415321851,4061277028,2290661394,2416832540,1336762016,1754252060,3520065937,3014181293,791618072,3188594551,3933548030,2332172193,3852520463,3043980520,413987798,3465142937,3030929376,4245938359,2093235073,3534596313,375366246,2157278981,2479649556,555357303,3870105701,2008414854,3344188149,4221384143,3956125452,2067696032,3594591187,2921233993,2428461,544322398,577241275,1471733935,610547355,4027169054,1432588573,1507829418,2025931657,3646575487,545086370,48609733,2200306550,1653985193,298326376,1316178497,3007786442,2064951626,458293330,2589141269,3591329599,3164325604,727753846,2179363840,146436021,1461446943,4069977195,705550613,3059967265,3887724982,4281599278,3313849956,1404054877,2845806497,146425753,1854211946],[1266315497,3048417604,3681880366,3289982499,290971e4,1235738493,2632868024,2414719590,3970600049,1771706367,1449415276,3266420449,422970021,1963543593,2690192192,3826793022,1062508698,1531092325,1804592342,2583117782,2714934279,4024971509,1294809318,4028980673,1289560198,2221992742,1669523910,35572830,157838143,1052438473,1016535060,1802137761,1753167236,1386275462,3080475397,2857371447,1040679964,2145300060,2390574316,1461121720,2956646967,4031777805,4028374788,33600511,2920084762,1018524850,629373528,3691585981,3515945977,2091462646,2486323059,586499841,988145025,935516892,3367335476,2599673255,2839830854,265290510,3972581182,2759138881,3795373465,1005194799,847297441,406762289,1314163512,1332590856,1866599683,4127851711,750260880,613907577,1450815602,3165620655,3734664991,3650291728,3012275730,3704569646,1427272223,778793252,1343938022,2676280711,2052605720,1946737175,3164576444,3914038668,3967478842,3682934266,1661551462,3294938066,4011595847,840292616,3712170807,616741398,312560963,711312465,1351876610,322626781,1910503582,271666773,2175563734,1594956187,70604529,3617834859,1007753275,1495573769,4069517037,2549218298,2663038764,504708206,2263041392,3941167025,2249088522,1514023603,1998579484,1312622330,694541497,2582060303,2151582166,1382467621,776784248,2618340202,3323268794,2497899128,2784771155,503983604,4076293799,907881277,423175695,432175456,1378068232,4145222326,3954048622,3938656102,3820766613,2793130115,2977904593,26017576,3274890735,3194772133,1700274565,1756076034,4006520079,3677328699,720338349,1533947780,354530856,688349552,3973924725,1637815568,332179504,3949051286,53804574,2852348879,3044236432,1282449977,3583942155,3416972820,4006381244,1617046695,2628476075,3002303598,1686838959,431878346,2686675385,1700445008,1080580658,1009431731,832498133,3223435511,2605976345,2271191193,2516031870,1648197032,4164389018,2548247927,300782431,375919233,238389289,3353747414,2531188641,2019080857,1475708069,455242339,2609103871,448939670,3451063019,1395535956,2413381860,1841049896,1491858159,885456874,4264095073,4001119347,1565136089,3898914787,1108368660,540939232,1173283510,2745871338,3681308437,4207628240,3343053890,4016749493,1699691293,1103962373,3625875870,2256883143,3830138730,1031889488,3479347698,1535977030,4236805024,3251091107,2132092099,1774941330,1199868427,1452454533,157007616,2904115357,342012276,595725824,1480756522,206960106,497939518,591360097,863170706,2375253569,3596610801,1814182875,2094937945,3421402208,1082520231,3463918190,2785509508,435703966,3908032597,1641649973,2842273706,3305899714,1510255612,2148256476,2655287854,3276092548,4258621189,236887753,3681803219,274041037,1734335097,3815195456,3317970021,1899903192,1026095262,4050517792,356393447,2410691914,3873677099,3682840055],[3913112168,2491498743,4132185628,2489919796,1091903735,1979897079,3170134830,3567386728,3557303409,857797738,1136121015,1342202287,507115054,2535736646,337727348,3213592640,1301675037,2528481711,1895095763,1721773893,3216771564,62756741,2142006736,835421444,2531993523,1442658625,3659876326,2882144922,676362277,1392781812,170690266,3921047035,1759253602,3611846912,1745797284,664899054,1329594018,3901205900,3045908486,2062866102,2865634940,3543621612,3464012697,1080764994,553557557,3656615353,3996768171,991055499,499776247,1265440854,648242737,3940784050,980351604,3713745714,1749149687,3396870395,4211799374,3640570775,1161844396,3125318951,1431517754,545492359,4268468663,3499529547,1437099964,2702547544,3433638243,2581715763,2787789398,1060185593,1593081372,2418618748,4260947970,69676912,2159744348,86519011,2512459080,3838209314,1220612927,3339683548,133810670,1090789135,1078426020,1569222167,845107691,3583754449,4072456591,1091646820,628848692,1613405280,3757631651,526609435,236106946,48312990,2942717905,3402727701,1797494240,859738849,992217954,4005476642,2243076622,3870952857,3732016268,765654824,3490871365,2511836413,1685915746,3888969200,1414112111,2273134842,3281911079,4080962846,172450625,2569994100,980381355,4109958455,2819808352,2716589560,2568741196,3681446669,3329971472,1835478071,660984891,3704678404,4045999559,3422617507,3040415634,1762651403,1719377915,3470491036,2693910283,3642056355,3138596744,1364962596,2073328063,1983633131,926494387,3423689081,2150032023,4096667949,1749200295,3328846651,309677260,2016342300,1779581495,3079819751,111262694,1274766160,443224088,298511866,1025883608,3806446537,1145181785,168956806,3641502830,3584813610,1689216846,3666258015,3200248200,1692713982,2646376535,4042768518,1618508792,1610833997,3523052358,4130873264,2001055236,3610705100,2202168115,4028541809,2961195399,1006657119,2006996926,3186142756,1430667929,3210227297,1314452623,4074634658,4101304120,2273951170,1399257539,3367210612,3027628629,1190975929,2062231137,2333990788,2221543033,2438960610,1181637006,548689776,2362791313,3372408396,3104550113,3145860560,296247880,1970579870,3078560182,3769228297,1714227617,3291629107,3898220290,166772364,1251581989,493813264,448347421,195405023,2709975567,677966185,3703036547,1463355134,2715995803,1338867538,1343315457,2802222074,2684532164,233230375,2599980071,2000651841,3277868038,1638401717,4028070440,3237316320,6314154,819756386,300326615,590932579,1405279636,3267499572,3150704214,2428286686,3959192993,3461946742,1862657033,1266418056,963775037,2089974820,2263052895,1917689273,448879540,3550394620,3981727096,150775221,3627908307,1303187396,508620638,2975983352,2726630617,1817252668,1876281319,1457606340,908771278,3720792119,3617206836,2455994898,1729034894,1080033504],[976866871,3556439503,2881648439,1522871579,1555064734,1336096578,3548522304,2579274686,3574697629,3205460757,3593280638,3338716283,3079412587,564236357,2993598910,1781952180,1464380207,3163844217,3332601554,1699332808,1393555694,1183702653,3581086237,1288719814,691649499,2847557200,2895455976,3193889540,2717570544,1781354906,1676643554,2592534050,3230253752,1126444790,2770207658,2633158820,2210423226,2615765581,2414155088,3127139286,673620729,2805611233,1269405062,4015350505,3341807571,4149409754,1057255273,2012875353,2162469141,2276492801,2601117357,993977747,3918593370,2654263191,753973209,36408145,2530585658,25011837,3520020182,2088578344,530523599,2918365339,1524020338,1518925132,3760827505,3759777254,1202760957,3985898139,3906192525,674977740,4174734889,2031300136,2019492241,3983892565,4153806404,3822280332,352677332,2297720250,60907813,90501309,3286998549,1016092578,2535922412,2839152426,457141659,509813237,4120667899,652014361,1966332200,2975202805,55981186,2327461051,676427537,3255491064,2882294119,3433927263,1307055953,942726286,933058658,2468411793,3933900994,4215176142,1361170020,2001714738,2830558078,3274259782,1222529897,1679025792,2729314320,3714953764,1770335741,151462246,3013232138,1682292957,1483529935,471910574,1539241949,458788160,3436315007,1807016891,3718408830,978976581,1043663428,3165965781,1927990952,4200891579,2372276910,3208408903,3533431907,1412390302,2931980059,4132332400,1947078029,3881505623,4168226417,2941484381,1077988104,1320477388,886195818,18198404,3786409e3,2509781533,112762804,3463356488,1866414978,891333506,18488651,661792760,1628790961,3885187036,3141171499,876946877,2693282273,1372485963,791857591,2686433993,3759982718,3167212022,3472953795,2716379847,445679433,3561995674,3504004811,3574258232,54117162,3331405415,2381918588,3769707343,4154350007,1140177722,4074052095,668550556,3214352940,367459370,261225585,2610173221,4209349473,3468074219,3265815641,314222801,3066103646,3808782860,282218597,3406013506,3773591054,379116347,1285071038,846784868,2669647154,3771962079,3550491691,2305946142,453669953,1268987020,3317592352,3279303384,3744833421,2610507566,3859509063,266596637,3847019092,517658769,3462560207,3443424879,370717030,4247526661,2224018117,4143653529,4112773975,2788324899,2477274417,1456262402,2901442914,1517677493,1846949527,2295493580,3734397586,2176403920,1280348187,1908823572,3871786941,846861322,1172426758,3287448474,3383383037,1655181056,3139813346,901632758,1897031941,2986607138,3066810236,3447102507,1393639104,373351379,950779232,625454576,3124240540,4148612726,2007998917,544563296,2244738638,2330496472,2058025392,1291430526,424198748,50039436,29584100,3605783033,2429876329,2791104160,1057563949,3255363231,3075367218,3463963227,1469046755,985887462]];var _e={pbox:[],sbox:[]};function F(D,te){let he=te>>24&255,ye=te>>16&255,be=te>>8&255,ve=255&te,we=D.sbox[0][he]+D.sbox[1][ye];return we^=D.sbox[2][be],we+=D.sbox[3][ve],we}function BlowFish_Encrypt(D,te,he){let ye,ve=te,we=he;for(let te=0;te<be;++te)ve^=D.pbox[te],we=F(D,ve)^we,ye=ve,ve=we,we=ye;return ye=ve,ve=we,we=ye,we^=D.pbox[be],ve^=D.pbox[be+1],{left:ve,right:we}}function BlowFish_Decrypt(D,te,he){let ye,ve=te,we=he;for(let te=be+1;te>1;--te)ve^=D.pbox[te],we=F(D,ve)^we,ye=ve,ve=we,we=ye;return ye=ve,ve=we,we=ye,we^=D.pbox[1],ve^=D.pbox[0],{left:ve,right:we}}function BlowFishInit(D,te,he){for(let te=0;te<4;te++){D.sbox[te]=[];for(let he=0;he<256;he++)D.sbox[te][he]=we[te][he]}let ye=0;for(let we=0;we<be+2;we++)D.pbox[we]=ve[we]^te[ye],ye++,ye>=he&&(ye=0);let _e=0,Pe=0,Ie=0;for(let te=0;te<be+2;te+=2)Ie=BlowFish_Encrypt(D,_e,Pe),_e=Ie.left,Pe=Ie.right,D.pbox[te]=_e,D.pbox[te+1]=Pe;for(let te=0;te<4;te++)for(let he=0;he<256;he+=2)Ie=BlowFish_Encrypt(D,_e,Pe),_e=Ie.left,Pe=Ie.right,D.sbox[te][he]=_e,D.sbox[te][he+1]=Pe;return!0}var Pe=ye.Blowfish=he.extend({_doReset:function(){if(this._keyPriorReset!==this._key){var D=this._keyPriorReset=this._key,te=D.words,he=D.sigBytes/4;BlowFishInit(_e,te,he)}},encryptBlock:function(D,te){var he=BlowFish_Encrypt(_e,D[te],D[te+1]);D[te]=he.left,D[te+1]=he.right},decryptBlock:function(D,te){var he=BlowFish_Decrypt(_e,D[te],D[te+1]);D[te]=he.left,D[te+1]=he.right},blockSize:2,keySize:4,ivSize:2});te.Blowfish=he._createHelper(Pe)}(),D.Blowfish}(Hv,requireMd5(),requireEvpkdf(),requireCipherCore())}(IO)),IO.exports}!function(D,te){D.exports=function(D){return D}(Hv,requireX64Core(),requireLibTypedarrays(),requireEncUtf16(),requireEncBase64url(),requireMd5(),requireSha1(),function requireSha224(){return Ok||(Ok=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.WordArray,ye=te.algo,be=ye.SHA256,ve=ye.SHA224=be.extend({_doReset:function(){this._hash=new he.init([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428])},_doFinalize:function(){var D=be._doFinalize.call(this);return D.sigBytes-=4,D}});te.SHA224=be._createHelper(ve),te.HmacSHA224=be._createHmacHelper(ve)}(),D.SHA224}(Hv)}(xk)),xk.exports}(),requireSha512$1(),function requireSha384(){return Bk||(Bk=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.x64,ye=he.Word,be=he.WordArray,ve=te.algo,we=ve.SHA512,_e=ve.SHA384=we.extend({_doReset:function(){this._hash=new be.init([new ye.init(3418070365,3238371032),new ye.init(1654270250,914150663),new ye.init(2438529370,812702999),new ye.init(355462360,4144912697),new ye.init(1731405415,4290775857),new ye.init(2394180231,1750603025),new ye.init(3675008525,1694076839),new ye.init(1203062813,3204075428)])},_doFinalize:function(){var D=we._doFinalize.call(this);return D.sigBytes-=16,D}});te.SHA384=we._createHelper(_e),te.HmacSHA384=we._createHmacHelper(_e)}(),D.SHA384}(Hv,requireX64Core(),requireSha512$1())}(Fk)),Fk.exports}(),requireSha3$1(),function requireRipemd160$2(){return Uk||(Uk=1,function(D,te){D.exports=function(D){
/** @preserve
  			(c) 2012 by Cédric Mesnil. All rights reserved.

  			Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  			    - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  			    - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  			THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  			*/
return function(te){var he=D,ye=he.lib,be=ye.WordArray,ve=ye.Hasher,we=he.algo,_e=be.create([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13]),Pe=be.create([5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11]),Ie=be.create([11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6]),Re=be.create([8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]),ke=be.create([0,1518500249,1859775393,2400959708,2840853838]),Oe=be.create([1352829926,1548603684,1836072691,2053994217,0]),xe=we.RIPEMD160=ve.extend({_doReset:function(){this._hash=be.create([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(D,te){for(var he=0;he<16;he++){var ye=te+he,be=D[ye];D[ye]=16711935&(be<<8|be>>>24)|4278255360&(be<<24|be>>>8)}var ve,we,xe,Be,Fe,De,Le,Ue,qe,je,Je,et=this._hash.words,tt=ke.words,rt=Oe.words,nt=_e.words,at=Pe.words,ut=Ie.words,ht=Re.words;for(De=ve=et[0],Le=we=et[1],Ue=xe=et[2],qe=Be=et[3],je=Fe=et[4],he=0;he<80;he+=1)Je=ve+D[te+nt[he]]|0,Je+=he<16?f1(we,xe,Be)+tt[0]:he<32?f2(we,xe,Be)+tt[1]:he<48?f3(we,xe,Be)+tt[2]:he<64?f4(we,xe,Be)+tt[3]:f5(we,xe,Be)+tt[4],Je=(Je=rotl(Je|=0,ut[he]))+Fe|0,ve=Fe,Fe=Be,Be=rotl(xe,10),xe=we,we=Je,Je=De+D[te+at[he]]|0,Je+=he<16?f5(Le,Ue,qe)+rt[0]:he<32?f4(Le,Ue,qe)+rt[1]:he<48?f3(Le,Ue,qe)+rt[2]:he<64?f2(Le,Ue,qe)+rt[3]:f1(Le,Ue,qe)+rt[4],Je=(Je=rotl(Je|=0,ht[he]))+je|0,De=je,je=qe,qe=rotl(Ue,10),Ue=Le,Le=Je;Je=et[1]+xe+qe|0,et[1]=et[2]+Be+je|0,et[2]=et[3]+Fe+De|0,et[3]=et[4]+ve+Le|0,et[4]=et[0]+we+Ue|0,et[0]=Je},_doFinalize:function(){var D=this._data,te=D.words,he=8*this._nDataBytes,ye=8*D.sigBytes;te[ye>>>5]|=128<<24-ye%32,te[14+(ye+64>>>9<<4)]=16711935&(he<<8|he>>>24)|4278255360&(he<<24|he>>>8),D.sigBytes=4*(te.length+1),this._process();for(var be=this._hash,ve=be.words,we=0;we<5;we++){var _e=ve[we];ve[we]=16711935&(_e<<8|_e>>>24)|4278255360&(_e<<24|_e>>>8)}return be},clone:function(){var D=ve.clone.call(this);return D._hash=this._hash.clone(),D}});function f1(D,te,he){return D^te^he}function f2(D,te,he){return D&te|~D&he}function f3(D,te,he){return(D|~te)^he}function f4(D,te,he){return D&he|te&~he}function f5(D,te,he){return D^(te|~he)}function rotl(D,te){return D<<te|D>>>32-te}he.RIPEMD160=ve._createHelper(xe),he.HmacRIPEMD160=ve._createHmacHelper(xe)}(),D.RIPEMD160}(Hv)}($k)),$k.exports}(),requireHmac$3(),function requirePbkdf2$2(){return jk||(jk=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib,ye=he.Base,be=he.WordArray,ve=te.algo,we=ve.SHA256,_e=ve.HMAC,Pe=ve.PBKDF2=ye.extend({cfg:ye.extend({keySize:4,hasher:we,iterations:25e4}),init:function(D){this.cfg=this.cfg.extend(D)},compute:function(D,te){for(var he=this.cfg,ye=_e.create(he.hasher,D),ve=be.create(),we=be.create([1]),Pe=ve.words,Ie=we.words,Re=he.keySize,ke=he.iterations;Pe.length<Re;){var Oe=ye.update(te).finalize(we);ye.reset();for(var xe=Oe.words,Be=xe.length,Fe=Oe,De=1;De<ke;De++){Fe=ye.finalize(Fe),ye.reset();for(var Le=Fe.words,Ue=0;Ue<Be;Ue++)xe[Ue]^=Le[Ue]}ve.concat(Oe),Ie[0]++}return ve.sigBytes=4*Re,ve}});te.PBKDF2=function(D,te,he){return Pe.create(he).compute(D,te)}}(),D.PBKDF2}(Hv,requireHmac$3())}(Hk)),Hk.exports}(),requireEvpkdf(),requireCipherCore(),requireModeCfb$1(),requireModeCtr$1(),requireModeCtrGladman(),requireModeOfb$1(),function requireModeEcb$1(){return nO||(nO=1,function(D,te){D.exports=function(D){return D.mode.ECB=((te=D.lib.BlockCipherMode.extend()).Encryptor=te.extend({processBlock:function(D,te){this._cipher.encryptBlock(D,te)}}),te.Decryptor=te.extend({processBlock:function(D,te){this._cipher.decryptBlock(D,te)}}),te),D.mode.ECB;var te}(Hv,requireCipherCore())}(aO)),aO.exports}(),function requirePadAnsix923(){return iO||(iO=1,function(D,te){D.exports=function(D){return D.pad.AnsiX923={pad:function(D,te){var he=D.sigBytes,ye=4*te,be=ye-he%ye,ve=he+be-1;D.clamp(),D.words[ve>>>2]|=be<<24-ve%4*8,D.sigBytes+=be},unpad:function(D){var te=255&D.words[D.sigBytes-1>>>2];D.sigBytes-=te}},D.pad.Ansix923}(Hv,requireCipherCore())}(sO)),sO.exports}(),function requirePadIso10126(){return oO||(oO=1,function(D,te){D.exports=function(D){return D.pad.Iso10126={pad:function(te,he){var ye=4*he,be=ye-te.sigBytes%ye;te.concat(D.lib.WordArray.random(be-1)).concat(D.lib.WordArray.create([be<<24],1))},unpad:function(D){var te=255&D.words[D.sigBytes-1>>>2];D.sigBytes-=te}},D.pad.Iso10126}(Hv,requireCipherCore())}(cO)),cO.exports}(),function requirePadIso97971(){return dO||(dO=1,function(D,te){D.exports=function(D){return D.pad.Iso97971={pad:function(te,he){te.concat(D.lib.WordArray.create([2147483648],1)),D.pad.ZeroPadding.pad(te,he)},unpad:function(te){D.pad.ZeroPadding.unpad(te),te.sigBytes--}},D.pad.Iso97971}(Hv,requireCipherCore())}(uO)),uO.exports}(),function requirePadZeropadding(){return fO||(fO=1,function(D,te){D.exports=function(D){return D.pad.ZeroPadding={pad:function(D,te){var he=4*te;D.clamp(),D.sigBytes+=he-(D.sigBytes%he||he)},unpad:function(D){var te=D.words,he=D.sigBytes-1;for(he=D.sigBytes-1;he>=0;he--)if(te[he>>>2]>>>24-he%4*8&255){D.sigBytes=he+1;break}}},D.pad.ZeroPadding}(Hv,requireCipherCore())}(lO)),lO.exports}(),function requirePadNopadding(){return pO||(pO=1,function(D,te){D.exports=function(D){return D.pad.NoPadding={pad:function(){},unpad:function(){}},D.pad.NoPadding}(Hv,requireCipherCore())}(hO)),hO.exports}(),function requireFormatHex(){return yO||(yO=1,function(D,te){D.exports=function(D){return function(te){var he=D,ye=he.lib.CipherParams,be=he.enc.Hex;he.format.Hex={stringify:function(D){return D.ciphertext.toString(be)},parse:function(D){var te=be.parse(D);return ye.create({ciphertext:te})}}}(),D.format.Hex}(Hv,requireCipherCore())}(mO)),mO.exports}(),function requireAes$1(){return bO||(bO=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.BlockCipher,ye=te.algo,be=[],ve=[],we=[],_e=[],Pe=[],Ie=[],Re=[],ke=[],Oe=[],xe=[];!function(){for(var D=[],te=0;te<256;te++)D[te]=te<128?te<<1:te<<1^283;var he=0,ye=0;for(te=0;te<256;te++){var Be=ye^ye<<1^ye<<2^ye<<3^ye<<4;Be=Be>>>8^255&Be^99,be[he]=Be,ve[Be]=he;var Fe=D[he],De=D[Fe],Le=D[De],Ue=257*D[Be]^16843008*Be;we[he]=Ue<<24|Ue>>>8,_e[he]=Ue<<16|Ue>>>16,Pe[he]=Ue<<8|Ue>>>24,Ie[he]=Ue,Ue=16843009*Le^65537*De^257*Fe^16843008*he,Re[Be]=Ue<<24|Ue>>>8,ke[Be]=Ue<<16|Ue>>>16,Oe[Be]=Ue<<8|Ue>>>24,xe[Be]=Ue,he?(he=Fe^D[D[D[Le^Fe]]],ye^=D[D[ye]]):he=ye=1}}();var Be=[0,1,2,4,8,16,32,64,128,27,54],Fe=ye.AES=he.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var D=this._keyPriorReset=this._key,te=D.words,he=D.sigBytes/4,ye=4*((this._nRounds=he+6)+1),ve=this._keySchedule=[],we=0;we<ye;we++)we<he?ve[we]=te[we]:(Ie=ve[we-1],we%he?he>6&&we%he==4&&(Ie=be[Ie>>>24]<<24|be[Ie>>>16&255]<<16|be[Ie>>>8&255]<<8|be[255&Ie]):(Ie=be[(Ie=Ie<<8|Ie>>>24)>>>24]<<24|be[Ie>>>16&255]<<16|be[Ie>>>8&255]<<8|be[255&Ie],Ie^=Be[we/he|0]<<24),ve[we]=ve[we-he]^Ie);for(var _e=this._invKeySchedule=[],Pe=0;Pe<ye;Pe++){if(we=ye-Pe,Pe%4)var Ie=ve[we];else Ie=ve[we-4];_e[Pe]=Pe<4||we<=4?Ie:Re[be[Ie>>>24]]^ke[be[Ie>>>16&255]]^Oe[be[Ie>>>8&255]]^xe[be[255&Ie]]}}},encryptBlock:function(D,te){this._doCryptBlock(D,te,this._keySchedule,we,_e,Pe,Ie,be)},decryptBlock:function(D,te){var he=D[te+1];D[te+1]=D[te+3],D[te+3]=he,this._doCryptBlock(D,te,this._invKeySchedule,Re,ke,Oe,xe,ve),he=D[te+1],D[te+1]=D[te+3],D[te+3]=he},_doCryptBlock:function(D,te,he,ye,be,ve,we,_e){for(var Pe=this._nRounds,Ie=D[te]^he[0],Re=D[te+1]^he[1],ke=D[te+2]^he[2],Oe=D[te+3]^he[3],xe=4,Be=1;Be<Pe;Be++){var Fe=ye[Ie>>>24]^be[Re>>>16&255]^ve[ke>>>8&255]^we[255&Oe]^he[xe++],De=ye[Re>>>24]^be[ke>>>16&255]^ve[Oe>>>8&255]^we[255&Ie]^he[xe++],Le=ye[ke>>>24]^be[Oe>>>16&255]^ve[Ie>>>8&255]^we[255&Re]^he[xe++],Ue=ye[Oe>>>24]^be[Ie>>>16&255]^ve[Re>>>8&255]^we[255&ke]^he[xe++];Ie=Fe,Re=De,ke=Le,Oe=Ue}Fe=(_e[Ie>>>24]<<24|_e[Re>>>16&255]<<16|_e[ke>>>8&255]<<8|_e[255&Oe])^he[xe++],De=(_e[Re>>>24]<<24|_e[ke>>>16&255]<<16|_e[Oe>>>8&255]<<8|_e[255&Ie])^he[xe++],Le=(_e[ke>>>24]<<24|_e[Oe>>>16&255]<<16|_e[Ie>>>8&255]<<8|_e[255&Re])^he[xe++],Ue=(_e[Oe>>>24]<<24|_e[Ie>>>16&255]<<16|_e[Re>>>8&255]<<8|_e[255&ke])^he[xe++],D[te]=Fe,D[te+1]=De,D[te+2]=Le,D[te+3]=Ue},keySize:8});te.AES=he._createHelper(Fe)}(),D.AES}(Hv,requireMd5(),requireEvpkdf(),requireCipherCore())}(gO)),gO.exports}(),requireTripledes(),function requireRc4(){return _O||(_O=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.StreamCipher,ye=te.algo,be=ye.RC4=he.extend({_doReset:function(){for(var D=this._key,te=D.words,he=D.sigBytes,ye=this._S=[],be=0;be<256;be++)ye[be]=be;be=0;for(var ve=0;be<256;be++){var we=be%he,_e=te[we>>>2]>>>24-we%4*8&255;ve=(ve+ye[be]+_e)%256;var Pe=ye[be];ye[be]=ye[ve],ye[ve]=Pe}this._i=this._j=0},_doProcessBlock:function(D,te){D[te]^=generateKeystreamWord.call(this)},keySize:8,ivSize:0});function generateKeystreamWord(){for(var D=this._S,te=this._i,he=this._j,ye=0,be=0;be<4;be++){he=(he+D[te=(te+1)%256])%256;var ve=D[te];D[te]=D[he],D[he]=ve,ye|=D[(D[te]+D[he])%256]<<24-8*be}return this._i=te,this._j=he,ye}te.RC4=he._createHelper(be);var ve=ye.RC4Drop=be.extend({cfg:be.cfg.extend({drop:192}),_doReset:function(){be._doReset.call(this);for(var D=this.cfg.drop;D>0;D--)generateKeystreamWord.call(this)}});te.RC4Drop=he._createHelper(ve)}(),D.RC4}(Hv,requireMd5(),requireEvpkdf(),requireCipherCore())}(TO)),TO.exports}(),function requireRabbit(){return AO||(AO=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.StreamCipher,ye=te.algo,be=[],ve=[],we=[],_e=ye.Rabbit=he.extend({_doReset:function(){for(var D=this._key.words,te=this.cfg.iv,he=0;he<4;he++)D[he]=16711935&(D[he]<<8|D[he]>>>24)|4278255360&(D[he]<<24|D[he]>>>8);var ye=this._X=[D[0],D[3]<<16|D[2]>>>16,D[1],D[0]<<16|D[3]>>>16,D[2],D[1]<<16|D[0]>>>16,D[3],D[2]<<16|D[1]>>>16],be=this._C=[D[2]<<16|D[2]>>>16,4294901760&D[0]|65535&D[1],D[3]<<16|D[3]>>>16,4294901760&D[1]|65535&D[2],D[0]<<16|D[0]>>>16,4294901760&D[2]|65535&D[3],D[1]<<16|D[1]>>>16,4294901760&D[3]|65535&D[0]];for(this._b=0,he=0;he<4;he++)nextState.call(this);for(he=0;he<8;he++)be[he]^=ye[he+4&7];if(te){var ve=te.words,we=ve[0],_e=ve[1],Pe=16711935&(we<<8|we>>>24)|4278255360&(we<<24|we>>>8),Ie=16711935&(_e<<8|_e>>>24)|4278255360&(_e<<24|_e>>>8),Re=Pe>>>16|4294901760&Ie,ke=Ie<<16|65535&Pe;for(be[0]^=Pe,be[1]^=Re,be[2]^=Ie,be[3]^=ke,be[4]^=Pe,be[5]^=Re,be[6]^=Ie,be[7]^=ke,he=0;he<4;he++)nextState.call(this)}},_doProcessBlock:function(D,te){var he=this._X;nextState.call(this),be[0]=he[0]^he[5]>>>16^he[3]<<16,be[1]=he[2]^he[7]>>>16^he[5]<<16,be[2]=he[4]^he[1]>>>16^he[7]<<16,be[3]=he[6]^he[3]>>>16^he[1]<<16;for(var ye=0;ye<4;ye++)be[ye]=16711935&(be[ye]<<8|be[ye]>>>24)|4278255360&(be[ye]<<24|be[ye]>>>8),D[te+ye]^=be[ye]},blockSize:4,ivSize:2});function nextState(){for(var D=this._X,te=this._C,he=0;he<8;he++)ve[he]=te[he];for(te[0]=te[0]+1295307597+this._b|0,te[1]=te[1]+3545052371+(te[0]>>>0<ve[0]>>>0?1:0)|0,te[2]=te[2]+886263092+(te[1]>>>0<ve[1]>>>0?1:0)|0,te[3]=te[3]+1295307597+(te[2]>>>0<ve[2]>>>0?1:0)|0,te[4]=te[4]+3545052371+(te[3]>>>0<ve[3]>>>0?1:0)|0,te[5]=te[5]+886263092+(te[4]>>>0<ve[4]>>>0?1:0)|0,te[6]=te[6]+1295307597+(te[5]>>>0<ve[5]>>>0?1:0)|0,te[7]=te[7]+3545052371+(te[6]>>>0<ve[6]>>>0?1:0)|0,this._b=te[7]>>>0<ve[7]>>>0?1:0,he=0;he<8;he++){var ye=D[he]+te[he],be=65535&ye,_e=ye>>>16,Pe=((be*be>>>17)+be*_e>>>15)+_e*_e,Ie=((4294901760&ye)*ye|0)+((65535&ye)*ye|0);we[he]=Pe^Ie}D[0]=we[0]+(we[7]<<16|we[7]>>>16)+(we[6]<<16|we[6]>>>16)|0,D[1]=we[1]+(we[0]<<8|we[0]>>>24)+we[7]|0,D[2]=we[2]+(we[1]<<16|we[1]>>>16)+(we[0]<<16|we[0]>>>16)|0,D[3]=we[3]+(we[2]<<8|we[2]>>>24)+we[1]|0,D[4]=we[4]+(we[3]<<16|we[3]>>>16)+(we[2]<<16|we[2]>>>16)|0,D[5]=we[5]+(we[4]<<8|we[4]>>>24)+we[3]|0,D[6]=we[6]+(we[5]<<16|we[5]>>>16)+(we[4]<<16|we[4]>>>16)|0,D[7]=we[7]+(we[6]<<8|we[6]>>>24)+we[5]|0}te.Rabbit=he._createHelper(_e)}(),D.Rabbit}(Hv,requireMd5(),requireEvpkdf(),requireCipherCore())}(EO)),EO.exports}(),function requireRabbitLegacy(){return PO||(PO=1,function(D,te){D.exports=function(D){return function(){var te=D,he=te.lib.StreamCipher,ye=te.algo,be=[],ve=[],we=[],_e=ye.RabbitLegacy=he.extend({_doReset:function(){var D=this._key.words,te=this.cfg.iv,he=this._X=[D[0],D[3]<<16|D[2]>>>16,D[1],D[0]<<16|D[3]>>>16,D[2],D[1]<<16|D[0]>>>16,D[3],D[2]<<16|D[1]>>>16],ye=this._C=[D[2]<<16|D[2]>>>16,4294901760&D[0]|65535&D[1],D[3]<<16|D[3]>>>16,4294901760&D[1]|65535&D[2],D[0]<<16|D[0]>>>16,4294901760&D[2]|65535&D[3],D[1]<<16|D[1]>>>16,4294901760&D[3]|65535&D[0]];this._b=0;for(var be=0;be<4;be++)nextState.call(this);for(be=0;be<8;be++)ye[be]^=he[be+4&7];if(te){var ve=te.words,we=ve[0],_e=ve[1],Pe=16711935&(we<<8|we>>>24)|4278255360&(we<<24|we>>>8),Ie=16711935&(_e<<8|_e>>>24)|4278255360&(_e<<24|_e>>>8),Re=Pe>>>16|4294901760&Ie,ke=Ie<<16|65535&Pe;for(ye[0]^=Pe,ye[1]^=Re,ye[2]^=Ie,ye[3]^=ke,ye[4]^=Pe,ye[5]^=Re,ye[6]^=Ie,ye[7]^=ke,be=0;be<4;be++)nextState.call(this)}},_doProcessBlock:function(D,te){var he=this._X;nextState.call(this),be[0]=he[0]^he[5]>>>16^he[3]<<16,be[1]=he[2]^he[7]>>>16^he[5]<<16,be[2]=he[4]^he[1]>>>16^he[7]<<16,be[3]=he[6]^he[3]>>>16^he[1]<<16;for(var ye=0;ye<4;ye++)be[ye]=16711935&(be[ye]<<8|be[ye]>>>24)|4278255360&(be[ye]<<24|be[ye]>>>8),D[te+ye]^=be[ye]},blockSize:4,ivSize:2});function nextState(){for(var D=this._X,te=this._C,he=0;he<8;he++)ve[he]=te[he];for(te[0]=te[0]+1295307597+this._b|0,te[1]=te[1]+3545052371+(te[0]>>>0<ve[0]>>>0?1:0)|0,te[2]=te[2]+886263092+(te[1]>>>0<ve[1]>>>0?1:0)|0,te[3]=te[3]+1295307597+(te[2]>>>0<ve[2]>>>0?1:0)|0,te[4]=te[4]+3545052371+(te[3]>>>0<ve[3]>>>0?1:0)|0,te[5]=te[5]+886263092+(te[4]>>>0<ve[4]>>>0?1:0)|0,te[6]=te[6]+1295307597+(te[5]>>>0<ve[5]>>>0?1:0)|0,te[7]=te[7]+3545052371+(te[6]>>>0<ve[6]>>>0?1:0)|0,this._b=te[7]>>>0<ve[7]>>>0?1:0,he=0;he<8;he++){var ye=D[he]+te[he],be=65535&ye,_e=ye>>>16,Pe=((be*be>>>17)+be*_e>>>15)+_e*_e,Ie=((4294901760&ye)*ye|0)+((65535&ye)*ye|0);we[he]=Pe^Ie}D[0]=we[0]+(we[7]<<16|we[7]>>>16)+(we[6]<<16|we[6]>>>16)|0,D[1]=we[1]+(we[0]<<8|we[0]>>>24)+we[7]|0,D[2]=we[2]+(we[1]<<16|we[1]>>>16)+(we[0]<<16|we[0]>>>16)|0,D[3]=we[3]+(we[2]<<8|we[2]>>>24)+we[1]|0,D[4]=we[4]+(we[3]<<16|we[3]>>>16)+(we[2]<<16|we[2]>>>16)|0,D[5]=we[5]+(we[4]<<8|we[4]>>>24)+we[3]|0,D[6]=we[6]+(we[5]<<16|we[5]>>>16)+(we[4]<<16|we[4]>>>16)|0,D[7]=we[7]+(we[6]<<8|we[6]>>>24)+we[5]|0}te.RabbitLegacy=he._createHelper(_e)}(),D.RabbitLegacy}(Hv,requireMd5(),requireEvpkdf(),requireCipherCore())}(SO)),SO.exports}(),requireBlowfish())}(vk);var RO=vk.exports,kO=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(gk,"__esModule",{value:!0}),gk.Base=void 0;const OO=Ri,xO=kO(RO);class Base{print(){Base.print(this)}bufferIndexOf(D,te,he=!1){if(he)return this.binarySearch(D,te,OO.Buffer.compare);return this.linearSearch(D,te,((D,te)=>D.equals(te)))}static binarySearch(D,te,he){let ye=0,be=D.length-1;for(;ye<=be;){const ve=Math.floor((ye+be)/2),we=he(D[ve],te);if(0===we){for(let ye=ve-1;ye>=0;ye--)if(0!==he(D[ye],te))return ye+1;return 0}we<0?ye=ve+1:be=ve-1}return-1}binarySearch(D,te,he){return Base.binarySearch(D,te,he)}static linearSearch(D,te,he){for(let ye=0;ye<D.length;ye++)if(he(D[ye],te))return ye;return-1}linearSearch(D,te,he){return Base.linearSearch(D,te,he)}static bufferify(D){if(!OO.Buffer.isBuffer(D)){if("object"==typeof D&&D.words)return OO.Buffer.from(D.toString(xO.default.enc.Hex),"hex");if(Base.isHexString(D))return OO.Buffer.from(D.replace(/^0x/,""),"hex");if("string"==typeof D)return OO.Buffer.from(D);if("bigint"==typeof D)return OO.Buffer.from(D.toString(16),"hex");if(D instanceof Uint8Array)return OO.Buffer.from(D.buffer);if("number"==typeof D){let te=D.toString();return te.length%2&&(te=`0${te}`),OO.Buffer.from(te,"hex")}if(ArrayBuffer.isView(D))return OO.Buffer.from(D.buffer,D.byteOffset,D.byteLength)}return D}bigNumberify(D){return Base.bigNumberify(D)}static bigNumberify(D){if("bigint"==typeof D)return D;if("string"==typeof D)return D.startsWith("0x")&&Base.isHexString(D)?BigInt("0x"+D.replace("0x","").toString()):BigInt(D);if(OO.Buffer.isBuffer(D))return BigInt("0x"+D.toString("hex"));if(D instanceof Uint8Array)return BigInt(D);if("number"==typeof D)return BigInt(D);throw new Error("cannot bigNumberify")}static isHexString(D){return"string"==typeof D&&/^(0x)?[0-9A-Fa-f]*$/.test(D)}static print(D){console.log(D.toString())}bufferToHex(D,te=!0){return Base.bufferToHex(D,te)}static bufferToHex(D,te=!0){return`${te?"0x":""}${(D||OO.Buffer.alloc(0)).toString("hex")}`}bufferify(D){return Base.bufferify(D)}bufferifyFn(D){return te=>{const he=D(te);return OO.Buffer.isBuffer(he)?he:this.isHexString(he)?OO.Buffer.from(he.replace("0x",""),"hex"):"string"==typeof he?OO.Buffer.from(he):"bigint"==typeof he?OO.Buffer.from(te.toString(16),"hex"):ArrayBuffer.isView(he)?OO.Buffer.from(he.buffer,he.byteOffset,he.byteLength):OO.Buffer.from(D(xO.default.enc.Hex.parse(te.toString("hex"))).toString(xO.default.enc.Hex),"hex")}}isHexString(D){return Base.isHexString(D)}log2(D){return 1===D?0:1+this.log2(D/2|0)}zip(D,te){return D.map(((D,he)=>[D,te[he]]))}static hexZeroPad(D,te){return"0x"+D.replace("0x","").padStart(te,"0")}}gk.Base=Base,gk.default=Base;var NO=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(hk,"__esModule",{value:!0}),hk.MerkleTree=void 0;const MO=Ri,BO=NO((function reverse(D){for(var te=new Buffer(D.length),he=0,ye=D.length-1;he<=ye;++he,--ye)te[he]=D[ye],te[ye]=D[he];return te})),FO=NO(Vv),DO=NO(bk),LO=NO(gk);let UO=class MerkleTree extends LO.default{constructor(D,te=FO.default,he={}){if(super(),this.duplicateOdd=!1,this.concatenator=MO.Buffer.concat,this.hashLeaves=!1,this.isBitcoinTree=!1,this.leaves=[],this.layers=[],this.sortLeaves=!1,this.sortPairs=!1,this.sort=!1,this.fillDefaultHash=null,this.complete=!1,he.complete){if(he.isBitcoinTree)throw new Error('option "complete" is incompatible with "isBitcoinTree"');if(he.duplicateOdd)throw new Error('option "complete" is incompatible with "duplicateOdd"')}if(this.isBitcoinTree=!!he.isBitcoinTree,this.hashLeaves=!!he.hashLeaves,this.sortLeaves=!!he.sortLeaves,this.sortPairs=!!he.sortPairs,this.complete=!!he.complete,he.fillDefaultHash)if("function"==typeof he.fillDefaultHash)this.fillDefaultHash=he.fillDefaultHash;else{if(!MO.Buffer.isBuffer(he.fillDefaultHash)&&"string"!=typeof he.fillDefaultHash)throw new Error('method "fillDefaultHash" must be a function, Buffer, or string');this.fillDefaultHash=(D,te)=>he.fillDefaultHash}this.sort=!!he.sort,this.sort&&(this.sortLeaves=!0,this.sortPairs=!0),this.duplicateOdd=!!he.duplicateOdd,he.concatenator&&(this.concatenator=he.concatenator),this.hashFn=this.bufferifyFn(te),this.processLeaves(D)}getOptions(){var D,te;return{complete:this.complete,isBitcoinTree:this.isBitcoinTree,hashLeaves:this.hashLeaves,sortLeaves:this.sortLeaves,sortPairs:this.sortPairs,sort:this.sort,fillDefaultHash:null!==(te=null===(D=this.fillDefaultHash)||void 0===D?void 0:D.toString())&&void 0!==te?te:null,duplicateOdd:this.duplicateOdd}}processLeaves(D){if(this.hashLeaves&&(D=D.map(this.hashFn)),this.leaves=D.map(this.bufferify),this.sortLeaves&&(this.leaves=this.leaves.sort(MO.Buffer.compare)),this.fillDefaultHash)for(let D=this.leaves.length;D<Math.pow(2,Math.ceil(Math.log2(this.leaves.length)));D++)this.leaves.push(this.bufferify(this.fillDefaultHash(D,this.hashFn)));this.createHashes(this.leaves)}createHashes(D){for(this.layers=[D];D.length>1;){const te=this.layers.length;this.layers.push([]);const he=this.complete&&1===te&&!Number.isInteger(Math.log2(D.length))?2*D.length-Math.pow(2,Math.ceil(Math.log2(D.length))):D.length;for(let ye=0;ye<D.length;ye+=2){if(ye>=he){this.layers[te].push(...D.slice(he));break}if(ye+1===D.length&&D.length%2==1){const he=D[D.length-1];let be=he;if(this.isBitcoinTree){be=this.hashFn(this.concatenator([BO.default(he),BO.default(he)])),be=BO.default(this.hashFn(be)),this.layers[te].push(be);continue}if(!this.duplicateOdd){this.layers[te].push(D[ye]);continue}}const be=D[ye],ve=ye+1===D.length?be:D[ye+1];let we=null;we=this.isBitcoinTree?[BO.default(be),BO.default(ve)]:[be,ve],this.sortPairs&&we.sort(MO.Buffer.compare);let _e=this.hashFn(this.concatenator(we));this.isBitcoinTree&&(_e=BO.default(this.hashFn(_e))),this.layers[te].push(_e)}D=this.layers[te]}}addLeaf(D,te=!1){te&&(D=this.hashFn(D)),this.processLeaves(this.leaves.concat(D))}addLeaves(D,te=!1){te&&(D=D.map(this.hashFn)),this.processLeaves(this.leaves.concat(D))}getLeaves(D){return Array.isArray(D)?(this.hashLeaves&&(D=D.map(this.hashFn),this.sortLeaves&&(D=D.sort(MO.Buffer.compare))),this.leaves.filter((te=>-1!==this.bufferIndexOf(D,te,this.sortLeaves)))):this.leaves}getLeaf(D){return D<0||D>this.leaves.length-1?MO.Buffer.from([]):this.leaves[D]}getLeafIndex(D){D=this.bufferify(D);const te=this.getLeaves();for(let he=0;he<te.length;he++){if(te[he].equals(D))return he}return-1}getLeafCount(){return this.leaves.length}getHexLeaves(){return this.leaves.map((D=>this.bufferToHex(D)))}static marshalLeaves(D){return JSON.stringify(D.map((D=>MerkleTree.bufferToHex(D))),null,2)}static unmarshalLeaves(D){let te=null;if("string"==typeof D)te=JSON.parse(D);else{if(!(D instanceof Object))throw new Error("Expected type of string or object");te=D}if(!te)return[];if(!Array.isArray(te))throw new Error("Expected JSON string to be array");return te.map(MerkleTree.bufferify)}getLayers(){return this.layers}getHexLayers(){return this.layers.reduce(((D,te)=>(Array.isArray(te)?D.push(te.map((D=>this.bufferToHex(D)))):D.push(te),D)),[])}getLayersFlat(){const D=this.layers.reduce(((D,te)=>(Array.isArray(te)?D.unshift(...te):D.unshift(te),D)),[]);return D.unshift(MO.Buffer.from([0])),D}getHexLayersFlat(){return this.getLayersFlat().map((D=>this.bufferToHex(D)))}getLayerCount(){return this.getLayers().length}getRoot(){return 0===this.layers.length?MO.Buffer.from([]):this.layers[this.layers.length-1][0]||MO.Buffer.from([])}getHexRoot(){return this.bufferToHex(this.getRoot())}getProof(D,te){if(void 0===D)throw new Error("leaf is required");D=this.bufferify(D);const he=[];if(!Number.isInteger(te)){te=-1;for(let he=0;he<this.leaves.length;he++)0===MO.Buffer.compare(D,this.leaves[he])&&(te=he)}if(te<=-1)return[];for(let D=0;D<this.layers.length;D++){const ye=this.layers[D],be=te%2,ve=be?te-1:this.isBitcoinTree&&te===ye.length-1&&D<this.layers.length-1?te:te+1;ve<ye.length&&he.push({position:be?"left":"right",data:ye[ve]}),te=te/2|0}return he}getHexProof(D,te){return this.getProof(D,te).map((D=>this.bufferToHex(D.data)))}getProofs(){const D=[];return this.getProofsDFS(this.layers.length-1,0,[],D),D}getProofsDFS(D,te,he,ye){const be=te%2;if(-1===D)return void(be||ye.push([...he].reverse()));if(te>=this.layers[D].length)return;const ve=this.layers[D],we=be?te-1:te+1;let _e=!1;we<ve.length&&(_e=!0,he.push({position:be?"left":"right",data:ve[we]}));const Pe=2*te,Ie=2*te+1;this.getProofsDFS(D-1,Pe,he,ye),this.getProofsDFS(D-1,Ie,he,ye),_e&&he.splice(he.length-1,1)}getHexProofs(){return this.getProofs().map((D=>this.bufferToHex(D.data)))}getPositionalHexProof(D,te){return this.getProof(D,te).map((D=>["left"===D.position?0:1,this.bufferToHex(D.data)]))}static marshalProof(D){const te=D.map((D=>"string"==typeof D?D:MO.Buffer.isBuffer(D)?MerkleTree.bufferToHex(D):{position:D.position,data:MerkleTree.bufferToHex(D.data)}));return JSON.stringify(te,null,2)}static unmarshalProof(D){let te=null;if("string"==typeof D)te=JSON.parse(D);else{if(!(D instanceof Object))throw new Error("Expected type of string or object");te=D}if(!te)return[];if(!Array.isArray(te))throw new Error("Expected JSON string to be array");return te.map((D=>{if("string"==typeof D)return MerkleTree.bufferify(D);if(D instanceof Object)return{position:D.position,data:MerkleTree.bufferify(D.data)};throw new Error("Expected item to be of type string or object")}))}static marshalTree(D){const te=D.getHexRoot(),he=D.leaves.map((D=>MerkleTree.bufferToHex(D))),ye=D.getHexLayers(),be=D.getOptions();return JSON.stringify({options:be,root:te,layers:ye,leaves:he},null,2)}static unmarshalTree(D,te=FO.default,he={}){let ye=null;if("string"==typeof D)ye=JSON.parse(D);else{if(!(D instanceof Object))throw new Error("Expected type of string or object");ye=D}if(!ye)throw new Error("could not parse json");return he=Object.assign({},ye.options||{},he),new MerkleTree(ye.leaves,te,he)}getProofIndices(D,te){const he=Math.pow(2,te);let ye=new Set;for(const te of D){let D=he+te;for(;D>1;)ye.add(1^D),D=D/2|0}const be=D.map((D=>he+D)),ve=Array.from(ye).sort(((D,te)=>D-te)).reverse();ye=be.concat(ve);const we=new Set,_e=[];for(let D of ye)if(!we.has(D))for(_e.push(D);D>1&&(we.add(D),we.has(1^D));)D=D/2|0;return _e.filter((te=>!D.includes(te-he)))}getProofIndicesForUnevenTree(D,te){const he=Math.ceil(Math.log2(te)),ye=[];for(let D=0;D<he;D++){te%2!=0&&ye.push({index:D,leavesCount:te}),te=Math.ceil(te/2)}const be=[];let ve=D;for(let D=0;D<he;D++){const te=ve.map((D=>D%2==0?D+1:D-1));let he=te.filter((D=>!ve.includes(D)));const we=ye.find((({index:te})=>te===D));we&&ve.includes(we.leavesCount-1)&&(he=he.slice(0,-1)),be.push(he),ve=[...new Set(ve.map((D=>D%2==0?D/2:D%2==0?(D+1)/2:(D-1)/2)))]}return be}getMultiProof(D,te){this.complete||console.warn("Warning: For correct multiProofs it's strongly recommended to set complete: true"),te||(te=D,D=this.getLayersFlat());if(this.isUnevenTree()&&te.every(Number.isInteger))return this.getMultiProofForUnevenTree(te);if(!te.every(Number.isInteger)){let D=te;this.sortPairs&&(D=D.sort(MO.Buffer.compare));let he=D.map((D=>this.bufferIndexOf(this.leaves,D,this.sortLeaves))).sort(((D,te)=>D===te?0:D>te?1:-1));if(!he.every((D=>-1!==D)))throw new Error("Element does not exist in Merkle tree");const ye=[],be=[];let ve=[];for(let D=0;D<this.layers.length;D++){const te=this.layers[D];for(let D=0;D<he.length;D++){const we=he[D],_e=this.getPairNode(te,we);ye.push(te[we]),_e&&be.push(_e),ve.push(we/2|0)}he=ve.filter(((D,te,he)=>he.indexOf(D)===te)),ve=[]}return be.filter((D=>!ye.includes(D)))}return this.getProofIndices(te,Math.log2(D.length/2|0)).map((te=>D[te]))}getMultiProofForUnevenTree(D,te){te||(te=D,D=this.getLayers());let he=[],ye=te;for(const te of D){const D=[];for(const he of ye){if(he%2==0){const be=he+1;if(!ye.includes(be)&&te[be]){D.push(te[be]);continue}}const be=he-1;ye.includes(be)||!te[be]||D.push(te[be])}he=he.concat(D);const be=new Set;for(const D of ye)D%2!=0?D%2!=0?be.add((D-1)/2):be.add((D+1)/2):be.add(D/2);ye=Array.from(be)}return he}getHexMultiProof(D,te){return this.getMultiProof(D,te).map((D=>this.bufferToHex(D)))}getProofFlags(D,te){if(!Array.isArray(D)||D.length<=0)throw new Error("Invalid Inputs!");let he;if(he=D.every(Number.isInteger)?[...D].sort(((D,te)=>D===te?0:D>te?1:-1)):D.map((D=>this.bufferIndexOf(this.leaves,D,this.sortLeaves))).sort(((D,te)=>D===te?0:D>te?1:-1)),!he.every((D=>-1!==D)))throw new Error("Element does not exist in Merkle tree");const ye=te.map((D=>this.bufferify(D))),be=[],ve=[];for(let D=0;D<this.layers.length;D++){const te=this.layers[D];he=he.reduce(((D,he)=>{if(!be.includes(te[he])){const D=this.getPairNode(te,he),we=ye.includes(te[he])||ye.includes(D);D&&ve.push(!we),be.push(te[he]),be.push(D)}return D.push(he/2|0),D}),[])}return ve}verify(D,te,he){let ye=this.bufferify(te);if(he=this.bufferify(he),!Array.isArray(D)||!te||!he)return!1;for(let te=0;te<D.length;te++){const he=D[te];let be=null,ve=null;if("string"==typeof he)be=this.bufferify(he),ve=!0;else if(Array.isArray(he))ve=0===he[0],be=this.bufferify(he[1]);else if(MO.Buffer.isBuffer(he))be=he,ve=!0;else{if(!(he instanceof Object))throw new Error("Expected node to be of type string or object");be=this.bufferify(he.data),ve="left"===he.position}const we=[];this.isBitcoinTree?(we.push(BO.default(ye)),we[ve?"unshift":"push"](BO.default(be)),ye=this.hashFn(this.concatenator(we)),ye=BO.default(this.hashFn(ye))):this.sortPairs?-1===MO.Buffer.compare(ye,be)?(we.push(ye,be),ye=this.hashFn(this.concatenator(we))):(we.push(be,ye),ye=this.hashFn(this.concatenator(we))):(we.push(ye),we[ve?"unshift":"push"](be),ye=this.hashFn(this.concatenator(we)))}return 0===MO.Buffer.compare(ye,he)}verifyMultiProof(D,te,he,ye,be){if(this.isUnevenTree())return this.verifyMultiProofForUnevenTree(D,te,he,ye,be);const ve=Math.ceil(Math.log2(ye));D=this.bufferify(D),he=he.map((D=>this.bufferify(D))),be=be.map((D=>this.bufferify(D)));const we={};for(const[D,ye]of this.zip(te,he))we[Math.pow(2,ve)+D]=ye;for(const[D,he]of this.zip(this.getProofIndices(te,ve),be))we[D]=he;let _e=Object.keys(we).map((D=>+D)).sort(((D,te)=>D-te));_e=_e.slice(0,_e.length-1);let Pe=0;for(;Pe<_e.length;){const D=_e[Pe];if(D>=2&&{}.hasOwnProperty.call(we,1^D)){let te=[we[D-D%2],we[D-D%2+1]];this.sortPairs&&(te=te.sort(MO.Buffer.compare));const he=te[1]?this.hashFn(this.concatenator(te)):te[0];we[D/2|0]=he,_e.push(D/2|0)}Pe+=1}return!te.length||{}.hasOwnProperty.call(we,1)&&we[1].equals(D)}verifyMultiProofWithFlags(D,te,he,ye){D=this.bufferify(D),te=te.map(this.bufferify),he=he.map(this.bufferify);const be=te.length,ve=ye.length,we=[];let _e=0,Pe=0,Ie=0;for(let D=0;D<ve;D++){const ve=[ye[D]?_e<be?te[_e++]:we[Pe++]:he[Ie++],_e<be?te[_e++]:we[Pe++]].sort(MO.Buffer.compare);we[D]=this.hashFn(this.concatenator(ve))}return 0===MO.Buffer.compare(we[ve-1],D)}verifyMultiProofForUnevenTree(D,te,he,ye,be){D=this.bufferify(D),he=he.map((D=>this.bufferify(D))),be=be.map((D=>this.bufferify(D)));const ve=this.calculateRootForUnevenTree(te,he,ye,be);return D.equals(ve)}getDepth(){return this.getLayers().length-1}getLayersAsObject(){const D=this.getLayers().map((D=>D.map((D=>this.bufferToHex(D,!1))))),te=[];for(let he=0;he<D.length;he++){const ye=[];for(let be=0;be<D[he].length;be++){const ve={[D[he][be]]:null};if(te.length){ve[D[he][be]]={};const ye=te.shift(),we=Object.keys(ye)[0];if(ve[D[he][be]][we]=ye[we],te.length){const ye=te.shift(),we=Object.keys(ye)[0];ve[D[he][be]][we]=ye[we]}}ye.push(ve)}te.push(...ye)}return te[0]}static verify(D,te,he,ye=FO.default,be={}){return new MerkleTree([],ye,be).verify(D,te,he)}static getMultiProof(D,te){return new MerkleTree([]).getMultiProof(D,te)}resetTree(){this.leaves=[],this.layers=[]}getPairNode(D,te){const he=te%2==0?te+1:te-1;return he<D.length?D[he]:null}toTreeString(){const D=this.getLayersAsObject();return DO.default.asTree(D,!0)}toString(){return this.toTreeString()}isUnevenTree(D){const te=(null==D?void 0:D.length)||this.getDepth();return!this.isPowOf2(te)}isPowOf2(D){return D&&!(D&D-1)}calculateRootForUnevenTree(D,te,he,ye){const be=this.zip(D,te).sort((([D],[te])=>D-te)),ve=be.map((([D])=>D)),we=this.getProofIndicesForUnevenTree(ve,he);let _e=0;const Pe=[];for(let D=0;D<we.length;D++){const te=we[D],he=_e;_e+=te.length,Pe[D]=this.zip(te,ye.slice(he,_e))}const Ie=[be];for(let D=0;D<Pe.length;D++){const te=Pe[D].concat(Ie[D]).sort((([D],[te])=>D-te)).map((([,D])=>D)),he=Ie[D].map((([D])=>D)),ye=[...new Set(he.map((D=>D%2==0?D/2:D%2==0?(D+1)/2:(D-1)/2)))],be=[];for(let D=0;D<ye.length;D++){const he=ye[D],ve=te[2*D],we=te[2*D+1],_e=we?this.hashFn(this.concatenator([ve,we])):ve;be.push([he,_e])}Ie.push(be)}return Ie[Ie.length-1][0][1]}};hk.MerkleTree=UO,"undefined"!=typeof window&&(window.MerkleTree=UO),hk.default=UO;var $O={},qO=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty($O,"__esModule",{value:!0}),$O.MerkleMountainRange=void 0;const GO=Ri,jO=qO(Vv),HO=qO(gk);class MerkleMountainRange extends HO.default{constructor(D=jO.default,te=[],he,ye,be){super(),this.root=GO.Buffer.alloc(0),this.size=0,this.width=0,this.hashes={},this.data={},te=te.map(this.bufferify),this.hashFn=this.bufferifyFn(D),this.hashLeafFn=he,this.peakBaggingFn=ye,this.hashBranchFn=be;for(const D of te)this.append(D)}append(D){D=this.bufferify(D);const te=this.hashFn(D),he=this.bufferToHex(te);this.data[he]&&this.bufferToHex(this.hashFn(this.data[he]))===he||(this.data[he]=D);const ye=this.hashLeaf(this.size+1,te);this.hashes[this.size+1]=ye,this.width+=1;const be=this.getPeakIndexes(this.width);this.size=this.getSize(this.width);const ve=[];for(let D=0;D<be.length;D++)ve[D]=this._getOrCreateNode(be[D]);this.root=this.peakBagging(this.width,ve)}hashLeaf(D,te){return te=this.bufferify(te),this.hashLeafFn?this.bufferify(this.hashLeafFn(D,te)):this.hashFn(GO.Buffer.concat([this.bufferify(D),te]))}hashBranch(D,te,he){return this.hashBranchFn?this.bufferify(this.hashBranchFn(D,te,he)):this.hashFn(GO.Buffer.concat([this.bufferify(D),this.bufferify(te),this.bufferify(he)]))}getPeaks(){const D=this.getPeakIndexes(this.width),te=[];for(let he=0;he<D.length;he++)te[he]=this.hashes[D[he]];return te}getLeafIndex(D){return D%2==1?this.getSize(D):this.getSize(D-1)+1}getPeakIndexes(D){const te=this.numOfPeaks(D),he=[];let ye=0,be=0;for(let ve=255;ve>0&&!(0!=(D&1<<ve-1)&&(be=be+(1<<ve)-1,he[ye++]=be,he.length>=te));ve--);if(ye!==he.length)throw new Error("invalid bit calculation");return he}numOfPeaks(D){let te=D,he=0;for(;te>0;)te%2==1&&he++,te>>=1;return he}peakBagging(D,te){const he=this.getSize(D);if(this.numOfPeaks(D)!==te.length)throw new Error("received invalid number of peaks");return 0!==D||te.length?this.peakBaggingFn?this.bufferify(this.peakBaggingFn(he,te)):this.hashFn(GO.Buffer.concat([this.bufferify(he),...te.map(this.bufferify)])):GO.Buffer.alloc(0)}getSize(D){return(D<<1)-this.numOfPeaks(D)}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.getRoot())}getNode(D){return this.hashes[D]}mountainHeight(D){let te=1;for(;1<<te<=D+te;)te++;return te-1}heightAt(D){let te=D,he=0,ye=0;for(;te>he;)te-=(1<<ye)-1,ye=this.mountainHeight(te),he=(1<<ye)-1;return ye-(he-te)}isLeaf(D){return 1===this.heightAt(D)}getChildren(D){const te=D-(1<<this.heightAt(D)-1),he=D-1;if(te===he)throw new Error("not a parent");return[te,he]}getMerkleProof(D){if(D>this.size)throw new Error("out of range");if(!this.isLeaf(D))throw new Error("not a leaf");const te=this.root,he=this.width,ye=this.getPeakIndexes(this.width),be=[];let ve=0;for(let te=0;te<ye.length;te++)be[te]=this.hashes[ye[te]],ye[te]>=D&&0===ve&&(ve=ye[te]);let we=0,_e=0,Pe=this.heightAt(ve);const Ie=[];for(;ve!==D;)Pe--,[we,_e]=this.getChildren(ve),ve=D<=we?we:_e,Ie[Pe-1]=this.hashes[D<=we?_e:we];return{root:te,width:he,peakBagging:be,siblings:Ie}}verify(D,te,he,ye,be,ve){ye=this.bufferify(ye);if(this.getSize(te)<he)throw new Error("index is out of range");if(!D.equals(this.peakBagging(te,be)))throw new Error("invalid root hash from the peaks");let we,_e=0;const Pe=this.getPeakIndexes(te);for(let D=0;D<Pe.length;D++)if(Pe[D]>=he){we=be[D],_e=Pe[D];break}if(!we)throw new Error("target not found");let Ie=ve.length+1;const Re=new Array(Ie);let ke,Oe=0,xe=0;for(;Ie>0&&(Re[--Ie]=_e,_e!==he);)[Oe,xe]=this.getChildren(_e),_e=he>Oe?xe:Oe;for(;Ie<Re.length;)_e=Re[Ie],ke=0===Ie?this.hashLeaf(_e,this.hashFn(ye)):_e-1===Re[Ie-1]?this.hashBranch(_e,ve[Ie-1],ke):this.hashBranch(_e,ke,ve[Ie-1]),Ie++;if(!ke.equals(we))throw new Error("hashed peak is invalid");return!0}peaksToPeakMap(D,te){const he={};let ye=0,be=0,ve=te.length;for(let we=1;we<=32;we++)ye=32-we,be=1<<we-1,he[ye]=0!=(D&be)?te[--ve]:0;if(0!==ve)throw new Error("invalid number of peaks");return he}peakMapToPeaks(D,te){const he=this.numOfPeaks(D),ye=new Array(he);let be=0;for(let D=0;D<32;D++)0!==te[D]&&(ye[be++]=te[D]);if(be!==he)throw new Error("invalid number of peaks");return ye}peakUpdate(D,te,he){const ye={},be=D+1;let ve=this.getLeafIndex(be),we=this.hashLeaf(ve,he),_e=0,Pe=0,Ie=!1,Re=!1,ke=!1;for(let he=1;he<=32;he++)_e=32-he,ke?ye[_e]=te[_e]:(Pe=1<<he-1,Ie=0!=(D&Pe),Re=0!=(be&Pe),ve++,Ie&&(we=this.hashBranch(ve,te[_e],we)),Re?(ye[_e]=Ie?te[_e]:we,ke=!0):ye[_e]=0);return ye}rollUp(D,te,he,ye){if(!D.equals(this.peakBagging(te,he)))throw new Error("invalid root hash from the peaks");let be=te,ve=this.peaksToPeakMap(te,he);for(let D=0;D<ye.length;D++)ve=this.peakUpdate(be,ve,ye[D]),be++;return this.peakBagging(be,this.peakMapToPeaks(be,ve))}_getOrCreateNode(D){if(D>this.size)throw new Error("out of range");if(!this.hashes[D]){const[te,he]=this.getChildren(D),ye=this._getOrCreateNode(te),be=this._getOrCreateNode(he);this.hashes[D]=this.hashBranch(D,ye,be)}return this.hashes[D]}}$O.MerkleMountainRange=MerkleMountainRange,"undefined"!=typeof window&&(window.MerkleMountainRange=MerkleMountainRange),$O.default=MerkleMountainRange;var zO={},WO=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(zO,"__esModule",{value:!0}),zO.IncrementalMerkleTree=void 0;const VO=WO(gk),KO=WO(bk);class IncrementalMerkleTree extends VO.default{constructor(D,te){if(super(),this.hashFn=D,te.depth&&(this.depth=te.depth),te.arity&&(this.arity=te.arity),this.depth<1)throw new Error("depth must be greater than 0");if(this.arity<1)throw new Error("arity must be greater than 0");const he=[];let ye=te.zeroValue;if(this.zeroValue=ye,this.zeroes=[],this.depth)for(let D=0;D<this.depth;D++)this.zeroes.push(ye),he[D]=[],ye=this.hashFn(Array(this.arity).fill(ye));this.nodes=he,this.root=ye}getRoot(){return this.root}getHexRoot(){return this.bufferToHex(this.bufferify(this.getRoot()))}insert(D){if(this.depth&&this.arity&&this.nodes[0].length>=this.getMaxLeaves())throw new Error("tree is full");let te=D,he=this.nodes[0].length;for(let D=0;D<this.depth;D+=1){const ye=he-he%this.arity,be=ye+this.arity,ve=[];this.nodes[D][he]=te;for(let te=ye;te<be;te+=1)te<this.nodes[D].length?ve.push(this.nodes[D][te]):ve.push(this.zeroes[D]);te=this.hashFn(ve),he=Math.floor(he/this.arity)}this.root=te}delete(D){this.update(D,this.zeroValue)}update(D,te){if(D<0||D>=this.nodes[0].length)throw new Error("out of bounds");let he=te;for(let te=0;te<this.depth;te+=1){const ye=D-D%this.arity,be=ye+this.arity,ve=[];this.nodes[te][D]=he;for(let D=ye;D<be;D+=1)D<this.nodes[te].length?ve.push(this.nodes[te][D]):ve.push(this.zeroes[te]);he=this.hashFn(ve),D=Math.floor(D/this.arity)}this.root=he}getDepth(){return this.depth}getArity(){return this.arity}getMaxLeaves(){return Math.pow(this.depth,this.arity)}indexOf(D){return this.nodes[0].indexOf(D)}getLeaves(){const D=this.copyList(this.nodes[0]);for(let te=this.nodes[0].length;te<this.getMaxLeaves();te++)D[te]=this.zeroValue;return D}copyList(D){return D.map((D=>BigInt(D)))}getLayers(){const D=[];for(const te of this.nodes)D.push(this.copyList(te));if(D[0].length<this.getMaxLeaves()){let te=D[0].length;for(let he=te;he<this.getMaxLeaves();he++)D[0][he]=this.zeroValue;for(let he=0;he<this.depth;he++){const ye=te-te%this.arity,be=ye+this.arity;for(let te=ye;te<be;te++)te>=D[he].length&&(D[he][te]=this.zeroes[he]);te=Math.floor(te/this.arity)}}return D.push([this.root]),D}getHexLayers(){return this.getLayers().reduce(((D,te)=>(Array.isArray(te)?D.push(te.map((D=>this.bufferToHex(this.bufferify(D))))):D.push(te),D)),[])}getLayersAsObject(){const D=this.getLayers().map((D=>D.map((D=>this.bufferToHex(this.bufferify(D),!1))))),te=[];for(let he=0;he<D.length;he++){const ye=[];for(let be=0;be<D[he].length;be++){const ve={[D[he][be]]:null};if(te.length){ve[D[he][be]]={};const ye=te.shift(),we=Object.keys(ye)[0];if(ve[D[he][be]][we]=ye[we],te.length){const ye=te.shift(),we=Object.keys(ye)[0];ve[D[he][be]][we]=ye[we]}}ye.push(ve)}te.push(...ye)}return te[0]}computeRoot(){let D,te=this.nodes[0].length;for(let he=0;he<this.depth;he+=1){const ye=te-te%this.arity,be=ye+this.arity,ve=[];for(let D=ye;D<be;D+=1)D<this.nodes[he].length?ve.push(this.nodes[he][D]):ve.push(this.zeroes[he]);D=this.hashFn(ve),te=Math.floor(te/this.arity)}return D}getProof(D){if(D<0||D>=this.nodes[0].length)throw new Error("The leaf does not exist in this tree");const te=[],he=[],ye=D;for(let ye=0;ye<this.depth;ye+=1){const be=D%this.arity,ve=D-be,we=ve+this.arity;he[ye]=be,te[ye]=[];for(let he=ve;he<we;he+=1)he!==D&&(he<this.nodes[ye].length?te[ye].push(this.nodes[ye][he]):te[ye].push(this.zeroes[ye]));D=Math.floor(D/this.arity)}return{root:this.root,leaf:this.nodes[0][ye],pathIndices:he,siblings:te}}verify(D){let te=D.leaf;for(let he=0;he<D.siblings.length;he+=1){const ye=D.siblings[he].slice();ye.splice(D.pathIndices[he],0,te),te=this.hashFn(ye)}return D.root===te}toString(){return this.toTreeString()}toTreeString(){const D=this.getLayersAsObject();return KO.default.asTree(D,!0)}}zO.IncrementalMerkleTree=IncrementalMerkleTree,"undefined"!=typeof window&&(window.IncrementalMerkleTree=IncrementalMerkleTree),zO.default=IncrementalMerkleTree;var JO={};Object.defineProperty(JO,"__esModule",{value:!0}),JO.MerkleSumTree=JO.ProofStep=JO.Leaf=JO.Bucket=void 0;const XO=gk;class Bucket{constructor(D,te){this.size=BigInt(D),this.hashed=te,this.parent=null,this.left=null,this.right=null}}JO.Bucket=Bucket;JO.Leaf=class Leaf{constructor(D,te,he){this.hashFn=D,this.rng=te.map((D=>BigInt(D))),this.data=he}getBucket(){let D;return D=this.data?this.hashFn(this.data):Buffer.alloc(32),new Bucket(BigInt(this.rng[1])-BigInt(this.rng[0]),D)}};class ProofStep{constructor(D,te){this.bucket=D,this.right=te}}JO.ProofStep=ProofStep;class MerkleSumTree extends XO.Base{constructor(D,te){super(),this.leaves=D,this.hashFn=te,MerkleSumTree.checkConsecutive(D),this.buckets=[];for(const te of D)this.buckets.push(te.getBucket());let he=[];for(const D of this.buckets)he.push(D);for(;1!==he.length;){const D=[];for(;he.length;)if(he.length>=2){const te=he.shift(),ye=he.shift(),be=te.size+ye.size,ve=this.hashFn(Buffer.concat([this.sizeToBuffer(te.size),this.bufferify(te.hashed),this.sizeToBuffer(ye.size),this.bufferify(ye.hashed)])),we=new Bucket(be,ve);ye.parent=we,te.parent=ye.parent,te.right=ye,ye.left=te,D.push(we)}else D.push(he.shift());he=D}this.root=he[0]}sizeToBuffer(D){const te=Buffer.alloc(8);return new DataView(te.buffer).setBigInt64(0,BigInt(D),!1),te}static checkConsecutive(D){let te=BigInt(0);for(const he of D){if(he.rng[0]!==te)throw new Error("leaf ranges are invalid");te=BigInt(he.rng[1])}}getProof(D){let te=this.buckets[Number(D)];const he=[];for(;te&&te.parent;){const D=!!te.right,ye=te.right?te.right:te.left;te=te.parent,he.push(new ProofStep(ye,D))}return he}sum(D){let te=BigInt(0);for(const he of D)te+=BigInt(he);return te}verifyProof(D,te,he){const ye=[this.sum(he.filter((D=>!D.right)).map((D=>D.bucket.size))),BigInt(D.size)-this.sum(he.filter((D=>D.right)).map((D=>D.bucket.size)))];if(ye[0]!==te.rng[0]||ye[1]!==te.rng[1])return!1;let be,ve=te.getBucket();for(const D of he)be=D.right?this.hashFn(Buffer.concat([this.sizeToBuffer(ve.size),this.bufferify(ve.hashed),this.sizeToBuffer(D.bucket.size),this.bufferify(D.bucket.hashed)])):this.hashFn(Buffer.concat([this.sizeToBuffer(D.bucket.size),this.bufferify(D.bucket.hashed),this.sizeToBuffer(ve.size),this.bufferify(ve.hashed)])),ve=new Bucket(BigInt(ve.size)+BigInt(D.bucket.size),be);return ve.size===D.size&&ve.hashed.toString("hex")===D.hashed.toString("hex")}}JO.MerkleSumTree=MerkleSumTree,"undefined"!=typeof window&&(window.MerkleSumTree=MerkleSumTree),JO.default=MerkleSumTree,function(D){var te=rn&&rn.__importDefault||function(D){return D&&D.__esModule?D:{default:D}};Object.defineProperty(D,"__esModule",{value:!0}),D.MerkleTree=void 0;const he=te(hk);D.MerkleTree=he.default;var ye=$O;Object.defineProperty(D,"MerkleMountainRange",{enumerable:!0,get:function(){return ye.MerkleMountainRange}});var be=zO;Object.defineProperty(D,"IncrementalMerkleTree",{enumerable:!0,get:function(){return be.IncrementalMerkleTree}});var ve=JO;Object.defineProperty(D,"MerkleSumTree",{enumerable:!0,get:function(){return ve.MerkleSumTree}}),D.default=he.default}(pk);var QO={},ZO={},YO={},extendStatics=function(D,te){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(D,te){D.__proto__=te}||function(D,te){for(var he in te)Object.prototype.hasOwnProperty.call(te,he)&&(D[he]=te[he])},extendStatics(D,te)};function __extends(D,te){if("function"!=typeof te&&null!==te)throw new TypeError("Class extends value "+String(te)+" is not a constructor or null");function __(){this.constructor=D}extendStatics(D,te),D.prototype=null===te?Object.create(te):(__.prototype=te.prototype,new __)}var __assign=function(){return __assign=Object.assign||function __assign(D){for(var te,he=1,ye=arguments.length;he<ye;he++)for(var be in te=arguments[he])Object.prototype.hasOwnProperty.call(te,be)&&(D[be]=te[be]);return D},__assign.apply(this,arguments)};function __rest(D,te){var he={};for(var ye in D)Object.prototype.hasOwnProperty.call(D,ye)&&te.indexOf(ye)<0&&(he[ye]=D[ye]);if(null!=D&&"function"==typeof Object.getOwnPropertySymbols){var be=0;for(ye=Object.getOwnPropertySymbols(D);be<ye.length;be++)te.indexOf(ye[be])<0&&Object.prototype.propertyIsEnumerable.call(D,ye[be])&&(he[ye[be]]=D[ye[be]])}return he}function __decorate(D,te,he,ye){var be,ve=arguments.length,we=ve<3?te:null===ye?ye=Object.getOwnPropertyDescriptor(te,he):ye;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)we=Reflect.decorate(D,te,he,ye);else for(var _e=D.length-1;_e>=0;_e--)(be=D[_e])&&(we=(ve<3?be(we):ve>3?be(te,he,we):be(te,he))||we);return ve>3&&we&&Object.defineProperty(te,he,we),we}function __param(D,te){return function(he,ye){te(he,ye,D)}}function __metadata(D,te){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(D,te)}function __awaiter$4(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))}function __generator(D,te){var he,ye,be,ve,we={label:0,sent:function(){if(1&be[0])throw be[1];return be[1]},trys:[],ops:[]};return ve={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(ve[Symbol.iterator]=function(){return this}),ve;function verb(_e){return function(Pe){return function step(_e){if(he)throw new TypeError("Generator is already executing.");for(;ve&&(ve=0,_e[0]&&(we=0)),we;)try{if(he=1,ye&&(be=2&_e[0]?ye.return:_e[0]?ye.throw||((be=ye.return)&&be.call(ye),0):ye.next)&&!(be=be.call(ye,_e[1])).done)return be;switch(ye=0,be&&(_e=[2&_e[0],be.value]),_e[0]){case 0:case 1:be=_e;break;case 4:return we.label++,{value:_e[1],done:!1};case 5:we.label++,ye=_e[1],_e=[0];continue;case 7:_e=we.ops.pop(),we.trys.pop();continue;default:if(!(be=we.trys,(be=be.length>0&&be[be.length-1])||6!==_e[0]&&2!==_e[0])){we=0;continue}if(3===_e[0]&&(!be||_e[1]>be[0]&&_e[1]<be[3])){we.label=_e[1];break}if(6===_e[0]&&we.label<be[1]){we.label=be[1],be=_e;break}if(be&&we.label<be[2]){we.label=be[2],we.ops.push(_e);break}be[2]&&we.ops.pop(),we.trys.pop();continue}_e=te.call(D,we)}catch(D){_e=[6,D],ye=0}finally{he=be=0}if(5&_e[0])throw _e[1];return{value:_e[0]?_e[1]:void 0,done:!0}}([_e,Pe])}}}var ex=Object.create?function(D,te,he,ye){void 0===ye&&(ye=he);var be=Object.getOwnPropertyDescriptor(te,he);be&&!("get"in be?!te.__esModule:be.writable||be.configurable)||(be={enumerable:!0,get:function(){return te[he]}}),Object.defineProperty(D,ye,be)}:function(D,te,he,ye){void 0===ye&&(ye=he),D[ye]=te[he]};function __exportStar(D,te){for(var he in D)"default"===he||Object.prototype.hasOwnProperty.call(te,he)||ex(te,D,he)}function __values(D){var te="function"==typeof Symbol&&Symbol.iterator,he=te&&D[te],ye=0;if(he)return he.call(D);if(D&&"number"==typeof D.length)return{next:function(){return D&&ye>=D.length&&(D=void 0),{value:D&&D[ye++],done:!D}}};throw new TypeError(te?"Object is not iterable.":"Symbol.iterator is not defined.")}function __read(D,te){var he="function"==typeof Symbol&&D[Symbol.iterator];if(!he)return D;var ye,be,ve=he.call(D),we=[];try{for(;(void 0===te||te-- >0)&&!(ye=ve.next()).done;)we.push(ye.value)}catch(D){be={error:D}}finally{try{ye&&!ye.done&&(he=ve.return)&&he.call(ve)}finally{if(be)throw be.error}}return we}function __spread(){for(var D=[],te=0;te<arguments.length;te++)D=D.concat(__read(arguments[te]));return D}function __spreadArrays(){for(var D=0,te=0,he=arguments.length;te<he;te++)D+=arguments[te].length;var ye=Array(D),be=0;for(te=0;te<he;te++)for(var ve=arguments[te],we=0,_e=ve.length;we<_e;we++,be++)ye[be]=ve[we];return ye}function __spreadArray(D,te,he){if(he||2===arguments.length)for(var ye,be=0,ve=te.length;be<ve;be++)!ye&&be in te||(ye||(ye=Array.prototype.slice.call(te,0,be)),ye[be]=te[be]);return D.concat(ye||Array.prototype.slice.call(te))}function __await(D){return this instanceof __await?(this.v=D,this):new __await(D)}function __asyncGenerator(D,te,he){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var ye,be=he.apply(D,te||[]),ve=[];return ye={},verb("next"),verb("throw"),verb("return"),ye[Symbol.asyncIterator]=function(){return this},ye;function verb(D){be[D]&&(ye[D]=function(te){return new Promise((function(he,ye){ve.push([D,te,he,ye])>1||resume(D,te)}))})}function resume(D,te){try{!function step(D){D.value instanceof __await?Promise.resolve(D.value.v).then(fulfill,reject):settle(ve[0][2],D)}(be[D](te))}catch(D){settle(ve[0][3],D)}}function fulfill(D){resume("next",D)}function reject(D){resume("throw",D)}function settle(D,te){D(te),ve.shift(),ve.length&&resume(ve[0][0],ve[0][1])}}function __asyncDelegator(D){var te,he;return te={},verb("next"),verb("throw",(function(D){throw D})),verb("return"),te[Symbol.iterator]=function(){return this},te;function verb(ye,be){te[ye]=D[ye]?function(te){return(he=!he)?{value:__await(D[ye](te)),done:!1}:be?be(te):te}:be}}function __asyncValues(D){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var te,he=D[Symbol.asyncIterator];return he?he.call(D):(D=__values(D),te={},verb("next"),verb("throw"),verb("return"),te[Symbol.asyncIterator]=function(){return this},te);function verb(he){te[he]=D[he]&&function(te){return new Promise((function(ye,be){(function settle(D,te,he,ye){Promise.resolve(ye).then((function(te){D({value:te,done:he})}),te)})(ye,be,(te=D[he](te)).done,te.value)}))}}}function __makeTemplateObject(D,te){return Object.defineProperty?Object.defineProperty(D,"raw",{value:te}):D.raw=te,D}var tx=Object.create?function(D,te){Object.defineProperty(D,"default",{enumerable:!0,value:te})}:function(D,te){D.default=te};function __importStar(D){if(D&&D.__esModule)return D;var te={};if(null!=D)for(var he in D)"default"!==he&&Object.prototype.hasOwnProperty.call(D,he)&&ex(te,D,he);return tx(te,D),te}function __importDefault(D){return D&&D.__esModule?D:{default:D}}function __classPrivateFieldGet(D,te,he,ye){if("a"===he&&!ye)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof te?D!==te||!ye:!te.has(D))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===he?ye:"a"===he?ye.call(D):ye?ye.value:te.get(D)}function __classPrivateFieldSet(D,te,he,ye,be){if("m"===ye)throw new TypeError("Private method is not writable");if("a"===ye&&!be)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof te?D!==te||!be:!te.has(D))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===ye?be.call(D,he):be?be.value=he:te.set(D,he),he}function __classPrivateFieldIn(D,te){if(null===te||"object"!=typeof te&&"function"!=typeof te)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof D?te===D:D.has(te)}function __addDisposableResource(D,te,he){if(null!=te){if("object"!=typeof te&&"function"!=typeof te)throw new TypeError("Object expected.");var ye;if(he){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");ye=te[Symbol.asyncDispose]}if(void 0===ye){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");ye=te[Symbol.dispose]}if("function"!=typeof ye)throw new TypeError("Object not disposable.");D.stack.push({value:te,dispose:ye,async:he})}else he&&D.stack.push({async:!0});return te}var rx="function"==typeof SuppressedError?SuppressedError:function(D,te,he){var ye=new Error(he);return ye.name="SuppressedError",ye.error=D,ye.suppressed=te,ye};function __disposeResources(D){function fail(te){D.error=D.hasError?new rx(te,D.error,"An error was suppressed during disposal."):te,D.hasError=!0}return function next(){for(;D.stack.length;){var te=D.stack.pop();try{var he=te.dispose&&te.dispose.call(te.value);if(te.async)return Promise.resolve(he).then(next,(function(D){return fail(D),next()}))}catch(D){fail(D)}}if(D.hasError)throw D.error}()}var nx,ax={__extends:__extends,__assign:__assign,__rest:__rest,__decorate:__decorate,__param:__param,__metadata:__metadata,__awaiter:__awaiter$4,__generator:__generator,__createBinding:ex,__exportStar:__exportStar,__values:__values,__read:__read,__spread:__spread,__spreadArrays:__spreadArrays,__spreadArray:__spreadArray,__await:__await,__asyncGenerator:__asyncGenerator,__asyncDelegator:__asyncDelegator,__asyncValues:__asyncValues,__makeTemplateObject:__makeTemplateObject,__importStar:__importStar,__importDefault:__importDefault,__classPrivateFieldGet:__classPrivateFieldGet,__classPrivateFieldSet:__classPrivateFieldSet,__classPrivateFieldIn:__classPrivateFieldIn,__addDisposableResource:__addDisposableResource,__disposeResources:__disposeResources},ix=Object.freeze({__proto__:null,__addDisposableResource:__addDisposableResource,get __assign(){return __assign},__asyncDelegator:__asyncDelegator,__asyncGenerator:__asyncGenerator,__asyncValues:__asyncValues,__await:__await,__awaiter:__awaiter$4,__classPrivateFieldGet:__classPrivateFieldGet,__classPrivateFieldIn:__classPrivateFieldIn,__classPrivateFieldSet:__classPrivateFieldSet,__createBinding:ex,__decorate:__decorate,__disposeResources:__disposeResources,__esDecorate:function __esDecorate(D,te,he,ye,be,ve){function accept(D){if(void 0!==D&&"function"!=typeof D)throw new TypeError("Function expected");return D}for(var we,_e=ye.kind,Pe="getter"===_e?"get":"setter"===_e?"set":"value",Ie=!te&&D?ye.static?D:D.prototype:null,Re=te||(Ie?Object.getOwnPropertyDescriptor(Ie,ye.name):{}),ke=!1,Oe=he.length-1;Oe>=0;Oe--){var xe={};for(var Be in ye)xe[Be]="access"===Be?{}:ye[Be];for(var Be in ye.access)xe.access[Be]=ye.access[Be];xe.addInitializer=function(D){if(ke)throw new TypeError("Cannot add initializers after decoration has completed");ve.push(accept(D||null))};var Fe=(0,he[Oe])("accessor"===_e?{get:Re.get,set:Re.set}:Re[Pe],xe);if("accessor"===_e){if(void 0===Fe)continue;if(null===Fe||"object"!=typeof Fe)throw new TypeError("Object expected");(we=accept(Fe.get))&&(Re.get=we),(we=accept(Fe.set))&&(Re.set=we),(we=accept(Fe.init))&&be.unshift(we)}else(we=accept(Fe))&&("field"===_e?be.unshift(we):Re[Pe]=we)}Ie&&Object.defineProperty(Ie,ye.name,Re),ke=!0},__exportStar:__exportStar,__extends:__extends,__generator:__generator,__importDefault:__importDefault,__importStar:__importStar,__makeTemplateObject:__makeTemplateObject,__metadata:__metadata,__param:__param,__propKey:function __propKey(D){return"symbol"==typeof D?D:"".concat(D)},__read:__read,__rest:__rest,__runInitializers:function __runInitializers(D,te,he){for(var ye=arguments.length>2,be=0;be<te.length;be++)he=ye?te[be].call(D,he):te[be].call(D);return ye?he:void 0},__setFunctionName:function __setFunctionName(D,te,he){return"symbol"==typeof te&&(te=te.description?"[".concat(te.description,"]"):""),Object.defineProperty(D,"name",{configurable:!0,value:he?"".concat(he," ",te):te})},__spread:__spread,__spreadArray:__spreadArray,__spreadArrays:__spreadArrays,__values:__values,default:ax}),sx=getAugmentedNamespace$1(ix),ox={},cx={};function require_version(){return nx||(nx=1,Object.defineProperty(cx,"__esModule",{value:!0}),cx.version=void 0,cx.version="6.11.1"),cx}var dx,ux,fx,lx={},px={},hx={},yx={},mx={},bx={},gx={};function requireProperties(){if(dx)return gx;function checkType(D,te,he){const ye=te.split("|").map((D=>D.trim()));for(let he=0;he<ye.length;he++)switch(te){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof D===te)return}const be=new Error(`invalid value for type ${te}`);throw be.code="INVALID_ARGUMENT",be.argument=`value.${he}`,be.value=D,be}return dx=1,Object.defineProperty(gx,"__esModule",{value:!0}),gx.defineProperties=gx.resolveProperties=void 0,gx.resolveProperties=async function resolveProperties(D){const te=Object.keys(D);return(await Promise.all(te.map((te=>Promise.resolve(D[te]))))).reduce(((D,he,ye)=>(D[te[ye]]=he,D)),{})},gx.defineProperties=function defineProperties(D,te,he){for(let ye in te){let be=te[ye];const ve=he?he[ye]:null;ve&&checkType(be,ve,ye),Object.defineProperty(D,ye,{enumerable:!0,value:be,writable:!1})}},gx}function requireErrors(){if(ux)return bx;ux=1,Object.defineProperty(bx,"__esModule",{value:!0}),bx.assertPrivate=bx.assertNormalize=bx.assertArgumentCount=bx.assertArgument=bx.assert=bx.makeError=bx.isCallException=bx.isError=void 0;const D=require_version(),te=requireProperties();function stringify(D){if(null==D)return"null";if(Array.isArray(D))return"[ "+D.map(stringify).join(", ")+" ]";if(D instanceof Uint8Array){const te="0123456789abcdef";let he="0x";for(let ye=0;ye<D.length;ye++)he+=te[D[ye]>>4],he+=te[15&D[ye]];return he}if("object"==typeof D&&"function"==typeof D.toJSON)return stringify(D.toJSON());switch(typeof D){case"boolean":case"symbol":case"number":return D.toString();case"bigint":return BigInt(D).toString();case"string":return JSON.stringify(D);case"object":{const te=Object.keys(D);return te.sort(),"{ "+te.map((te=>`${stringify(te)}: ${stringify(D[te])}`)).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function isError(D,te){return D&&D.code===te}function makeError(he,ye,be){let ve,we=he;{const te=[];if(be){if("message"in be||"code"in be||"name"in be)throw new Error(`value will overwrite populated values: ${stringify(be)}`);for(const D in be){if("shortMessage"===D)continue;const he=be[D];te.push(D+"="+stringify(he))}}te.push(`code=${ye}`),te.push(`version=${D.version}`),te.length&&(he+=" ("+te.join(", ")+")")}switch(ye){case"INVALID_ARGUMENT":ve=new TypeError(he);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":ve=new RangeError(he);break;default:ve=new Error(he)}return(0,te.defineProperties)(ve,{code:ye}),be&&Object.assign(ve,be),null==ve.shortMessage&&(0,te.defineProperties)(ve,{shortMessage:we}),ve}function assert(D,te,he,ye){if(!D)throw makeError(te,he,ye)}bx.isError=isError,bx.isCallException=function isCallException(D){return isError(D,"CALL_EXCEPTION")},bx.makeError=makeError,bx.assert=assert,bx.assertArgument=function assertArgument(D,te,he,ye){assert(D,te,"INVALID_ARGUMENT",{argument:he,value:ye})},bx.assertArgumentCount=function assertArgumentCount(D,te,he){null==he&&(he=""),he&&(he=": "+he),assert(D>=te,"missing arguemnt"+he,"MISSING_ARGUMENT",{count:D,expectedCount:te}),assert(D<=te,"too many arguments"+he,"UNEXPECTED_ARGUMENT",{count:D,expectedCount:te})};const he=["NFD","NFC","NFKD","NFKC"].reduce(((D,te)=>{try{if("test"!=="test".normalize(te))throw new Error("bad");if("NFD"===te){const D=String.fromCharCode(233).normalize("NFD");if(D!==String.fromCharCode(101,769))throw new Error("broken")}D.push(te)}catch(D){}return D}),[]);return bx.assertNormalize=function assertNormalize(D){assert(he.indexOf(D)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:D}})},bx.assertPrivate=function assertPrivate(D,te,he){if(null==he&&(he=""),D!==te){let D=he,te="new";he&&(D+=".",te+=" "+he),assert(!1,`private constructor; use ${D}from* methods`,"UNSUPPORTED_OPERATION",{operation:te})}},bx}function requireData(){if(fx)return mx;fx=1,Object.defineProperty(mx,"__esModule",{value:!0}),mx.zeroPadBytes=mx.zeroPadValue=mx.stripZerosLeft=mx.dataSlice=mx.dataLength=mx.concat=mx.hexlify=mx.isBytesLike=mx.isHexString=mx.getBytesCopy=mx.getBytes=void 0;const D=requireErrors();function _getBytes(te,he,ye){if(te instanceof Uint8Array)return ye?new Uint8Array(te):te;if("string"==typeof te&&te.match(/^0x([0-9a-f][0-9a-f])*$/i)){const D=new Uint8Array((te.length-2)/2);let he=2;for(let ye=0;ye<D.length;ye++)D[ye]=parseInt(te.substring(he,he+2),16),he+=2;return D}(0,D.assertArgument)(!1,"invalid BytesLike value",he||"value",te)}function getBytes(D,te){return _getBytes(D,te,!1)}function isHexString(D,te){return!("string"!=typeof D||!D.match(/^0x[0-9A-Fa-f]*$/))&&(("number"!=typeof te||D.length===2+2*te)&&(!0!==te||D.length%2==0))}mx.getBytes=getBytes,mx.getBytesCopy=function getBytesCopy(D,te){return _getBytes(D,te,!0)},mx.isHexString=isHexString,mx.isBytesLike=function isBytesLike(D){return isHexString(D,!0)||D instanceof Uint8Array};const te="0123456789abcdef";function hexlify(D){const he=getBytes(D);let ye="0x";for(let D=0;D<he.length;D++){const be=he[D];ye+=te[(240&be)>>4]+te[15&be]}return ye}function zeroPad(te,he,ye){const be=getBytes(te);(0,D.assert)(he>=be.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(be),length:he,offset:he+1});const ve=new Uint8Array(he);return ve.fill(0),ye?ve.set(be,he-be.length):ve.set(be,0),hexlify(ve)}return mx.hexlify=hexlify,mx.concat=function concat(D){return"0x"+D.map((D=>hexlify(D).substring(2))).join("")},mx.dataLength=function dataLength(D){return isHexString(D,!0)?(D.length-2)/2:getBytes(D).length},mx.dataSlice=function dataSlice(te,he,ye){const be=getBytes(te);return null!=ye&&ye>be.length&&(0,D.assert)(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:be,length:be.length,offset:ye}),hexlify(be.slice(null==he?0:he,null==ye?be.length:ye))},mx.stripZerosLeft=function stripZerosLeft(D){let te=hexlify(D).substring(2);for(;te.startsWith("00");)te=te.substring(2);return"0x"+te},mx.zeroPadValue=function zeroPadValue(D,te){return zeroPad(D,te,!0)},mx.zeroPadBytes=function zeroPadBytes(D,te){return zeroPad(D,te,!1)},mx}var vx,wx,_x={};function requireMaths(){if(vx)return _x;vx=1,Object.defineProperty(_x,"__esModule",{value:!0}),_x.toQuantity=_x.toBeArray=_x.toBeHex=_x.toNumber=_x.getNumber=_x.toBigInt=_x.getUint=_x.getBigInt=_x.mask=_x.toTwos=_x.fromTwos=void 0;const D=requireData(),te=requireErrors(),he=BigInt(0),ye=BigInt(1),be=9007199254740991;function getBigInt(D,he){switch(typeof D){case"bigint":return D;case"number":return(0,te.assertArgument)(Number.isInteger(D),"underflow",he||"value",D),(0,te.assertArgument)(D>=-be&&D<=be,"overflow",he||"value",D),BigInt(D);case"string":try{if(""===D)throw new Error("empty string");return"-"===D[0]&&"-"!==D[1]?-BigInt(D.substring(1)):BigInt(D)}catch(ye){(0,te.assertArgument)(!1,`invalid BigNumberish string: ${ye.message}`,he||"value",D)}}(0,te.assertArgument)(!1,"invalid BigNumberish value",he||"value",D)}function getUint(D,ye){const be=getBigInt(D,ye);return(0,te.assert)(be>=he,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:D}),be}_x.fromTwos=function fromTwos(D,be){const ve=getUint(D,"value"),we=BigInt(getNumber(be,"width"));if((0,te.assert)(ve>>we===he,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:D}),ve>>we-ye){return-((~ve&(ye<<we)-ye)+ye)}return ve},_x.toTwos=function toTwos(D,be){let ve=getBigInt(D,"value");const we=BigInt(getNumber(be,"width")),_e=ye<<we-ye;if(ve<he){ve=-ve,(0,te.assert)(ve<=_e,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:D});return(~ve&(ye<<we)-ye)+ye}return(0,te.assert)(ve<_e,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:D}),ve},_x.mask=function mask(D,te){const he=getUint(D,"value"),be=BigInt(getNumber(te,"bits"));return he&(ye<<be)-ye},_x.getBigInt=getBigInt,_x.getUint=getUint;const ve="0123456789abcdef";function toBigInt(D){if(D instanceof Uint8Array){let te="0x0";for(const he of D)te+=ve[he>>4],te+=ve[15&he];return BigInt(te)}return getBigInt(D)}function getNumber(D,he){switch(typeof D){case"bigint":return(0,te.assertArgument)(D>=-be&&D<=be,"overflow",he||"value",D),Number(D);case"number":return(0,te.assertArgument)(Number.isInteger(D),"underflow",he||"value",D),(0,te.assertArgument)(D>=-be&&D<=be,"overflow",he||"value",D),D;case"string":try{if(""===D)throw new Error("empty string");return getNumber(BigInt(D),he)}catch(ye){(0,te.assertArgument)(!1,`invalid numeric string: ${ye.message}`,he||"value",D)}}(0,te.assertArgument)(!1,"invalid numeric value",he||"value",D)}function toBeArray(D){const te=getUint(D,"value");if(te===he)return new Uint8Array([]);let ye=te.toString(16);ye.length%2&&(ye="0"+ye);const be=new Uint8Array(ye.length/2);for(let D=0;D<be.length;D++){const te=2*D;be[D]=parseInt(ye.substring(te,te+2),16)}return be}return _x.toBigInt=toBigInt,_x.getNumber=getNumber,_x.toNumber=function toNumber(D){return getNumber(toBigInt(D))},_x.toBeHex=function toBeHex(D,he){let ye=getUint(D,"value").toString(16);if(null==he)ye.length%2&&(ye="0"+ye);else{const be=getNumber(he,"width");for((0,te.assert)(2*be>=ye.length,`value exceeds width (${be} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:D});ye.length<2*be;)ye="0"+ye}return"0x"+ye},_x.toBeArray=toBeArray,_x.toQuantity=function toQuantity(te){let he=(0,D.hexlify)((0,D.isBytesLike)(te)?te:toBeArray(te)).substring(2);for(;he.startsWith("0");)he=he.substring(1);return""===he&&(he="0"),"0x"+he},_x}var Tx,Ax={};function requireBase64Browser(){if(Tx)return Ax;Tx=1,Object.defineProperty(Ax,"__esModule",{value:!0}),Ax.encodeBase64=Ax.decodeBase64=void 0;const D=requireData();return Ax.decodeBase64=function decodeBase64(te){te=atob(te);const he=new Uint8Array(te.length);for(let D=0;D<te.length;D++)he[D]=te.charCodeAt(D);return(0,D.getBytes)(he)},Ax.encodeBase64=function encodeBase64(te){const he=(0,D.getBytes)(te);let ye="";for(let D=0;D<he.length;D++)ye+=String.fromCharCode(he[D]);return btoa(ye)},Ax}var Ex,Px={};var Sx,Cx={},Ix={};function requireUtf8(){return Sx||(Sx=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.toUtf8CodePoints=D.toUtf8String=D.toUtf8Bytes=D.Utf8ErrorFuncs=void 0;const te=requireData(),he=requireErrors();function ignoreFunc(D,te,he,ye,be){if("BAD_PREFIX"===D||"UNEXPECTED_CONTINUE"===D){let D=0;for(let ye=te+1;ye<he.length&&he[ye]>>6==2;ye++)D++;return D}return"OVERRUN"===D?he.length-te-1:0}function getUtf8CodePoints(he,ye){null==ye&&(ye=D.Utf8ErrorFuncs.error);const be=(0,te.getBytes)(he,"bytes"),ve=[];let we=0;for(;we<be.length;){const D=be[we++];if(D>>7==0){ve.push(D);continue}let te=null,he=null;if(192==(224&D))te=1,he=127;else if(224==(240&D))te=2,he=2047;else{if(240!=(248&D)){we+=ye(128==(192&D)?"UNEXPECTED_CONTINUE":"BAD_PREFIX",we-1,be,ve);continue}te=3,he=65535}if(we-1+te>=be.length){we+=ye("OVERRUN",we-1,be,ve);continue}let _e=D&(1<<8-te-1)-1;for(let D=0;D<te;D++){let D=be[we];if(128!=(192&D)){we+=ye("MISSING_CONTINUE",we,be,ve),_e=null;break}_e=_e<<6|63&D,we++}null!==_e&&(_e>1114111?we+=ye("OUT_OF_RANGE",we-1-te,be,ve,_e):_e>=55296&&_e<=57343?we+=ye("UTF16_SURROGATE",we-1-te,be,ve,_e):_e<=he?we+=ye("OVERLONG",we-1-te,be,ve,_e):ve.push(_e))}return ve}function toUtf8Bytes(D,te){(0,he.assertArgument)("string"==typeof D,"invalid string value","str",D),null!=te&&((0,he.assertNormalize)(te),D=D.normalize(te));let ye=[];for(let te=0;te<D.length;te++){const be=D.charCodeAt(te);if(be<128)ye.push(be);else if(be<2048)ye.push(be>>6|192),ye.push(63&be|128);else if(55296==(64512&be)){te++;const ve=D.charCodeAt(te);(0,he.assertArgument)(te<D.length&&56320==(64512&ve),"invalid surrogate pair","str",D);const we=65536+((1023&be)<<10)+(1023&ve);ye.push(we>>18|240),ye.push(we>>12&63|128),ye.push(we>>6&63|128),ye.push(63&we|128)}else ye.push(be>>12|224),ye.push(be>>6&63|128),ye.push(63&be|128)}return new Uint8Array(ye)}D.Utf8ErrorFuncs=Object.freeze({error:function errorFunc(D,te,ye,be,ve){(0,he.assertArgument)(!1,`invalid codepoint at offset ${te}; ${D}`,"bytes",ye)},ignore:ignoreFunc,replace:function replaceFunc(D,te,ye,be,ve){return"OVERLONG"===D?((0,he.assertArgument)("number"==typeof ve,"invalid bad code point for replacement","badCodepoint",ve),be.push(ve),0):(be.push(65533),ignoreFunc(D,te,ye))}}),D.toUtf8Bytes=toUtf8Bytes,D.toUtf8String=function toUtf8String(D,te){return function _toUtf8String(D){return D.map((D=>D<=65535?String.fromCharCode(D):(D-=65536,String.fromCharCode(55296+(D>>10&1023),56320+(1023&D))))).join("")}(getUtf8CodePoints(D,te))},D.toUtf8CodePoints=function toUtf8CodePoints(D,te){return getUtf8CodePoints(toUtf8Bytes(D,te))}}(Ix)),Ix}var Rx,kx,Ox={};function requireFetch(){if(kx)return Cx;kx=1,Object.defineProperty(Cx,"__esModule",{value:!0}),Cx.FetchResponse=Cx.FetchRequest=Cx.FetchCancelSignal=void 0;const D=requireBase64Browser(),te=requireData(),he=requireErrors(),ye=requireProperties(),be=requireUtf8(),ve=function requireGeturlBrowser(){if(Rx)return Ox;Rx=1,Object.defineProperty(Ox,"__esModule",{value:!0}),Ox.getUrl=Ox.createGetUrl=void 0;const D=requireErrors();function createGetUrl(te){return async function getUrl(te,he){const ye=te.url.split(":")[0].toLowerCase();let be;if((0,D.assert)("http"===ye||"https"===ye,`unsupported protocol ${ye}`,"UNSUPPORTED_OPERATION",{info:{protocol:ye},operation:"request"}),(0,D.assert)("https"===ye||!te.credentials||te.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"}),he){const D=new AbortController;be=D.signal,he.addListener((()=>{D.abort()}))}const ve={method:te.method,headers:new Headers(Array.from(te)),body:te.body||void 0,signal:be},we=await fetch(te.url,ve),_e={};we.headers.forEach(((D,te)=>{_e[te.toLowerCase()]=D}));const Pe=await we.arrayBuffer(),Ie=null==Pe?null:new Uint8Array(Pe);return{statusCode:we.status,statusMessage:we.statusText,headers:_e,body:Ie}}}Ox.createGetUrl=createGetUrl;const te=createGetUrl();return Ox.getUrl=async function getUrl(D,he){return te(D,he)},Ox}();let we=(0,ve.createGetUrl)();const _e=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),Pe=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let Ie=!1;async function dataGatewayFunc(te,he){try{const he=te.match(_e);if(!he)throw new Error("invalid data");return new FetchResponse(200,"OK",{"content-type":he[1]||"text/plain"},he[2]?(0,D.decodeBase64)(he[3]):function unpercent(D){return(0,be.toUtf8Bytes)(D.replace(/%([0-9a-f][0-9a-f])/gi,((D,te)=>String.fromCharCode(parseInt(te,16)))))}(he[3]))}catch(D){return new FetchResponse(599,"BAD REQUEST (invalid data: URI)",{},null,new FetchRequest(te))}}function getIpfsGatewayFunc(D){return async function gatewayIpfs(te,he){try{const he=te.match(Pe);if(!he)throw new Error("invalid link");return new FetchRequest(`${D}${he[2]}`)}catch(D){return new FetchResponse(599,"BAD REQUEST (invalid IPFS URI)",{},null,new FetchRequest(te))}}}const Re={data:dataGatewayFunc,ipfs:getIpfsGatewayFunc("https://gateway.ipfs.io/ipfs/")},ke=new WeakMap;var Oe=new WeakMap,xe=new WeakMap;class FetchCancelSignal{constructor(D){_classPrivateFieldInitSpec(this,Oe,void 0),_classPrivateFieldInitSpec(this,xe,void 0),_classPrivateFieldSet2(Oe,this,[]),_classPrivateFieldSet2(xe,this,!1),ke.set(D,(()=>{if(!_classPrivateFieldGet2(xe,this)){_classPrivateFieldSet2(xe,this,!0);for(const D of _classPrivateFieldGet2(Oe,this))setTimeout((()=>{D()}),0);_classPrivateFieldSet2(Oe,this,[])}}))}addListener(D){(0,he.assert)(!_classPrivateFieldGet2(xe,this),"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),_classPrivateFieldGet2(Oe,this).push(D)}get cancelled(){return _classPrivateFieldGet2(xe,this)}checkSignal(){(0,he.assert)(!this.cancelled,"cancelled","CANCELLED",{})}}function checkSignal(D){if(null==D)throw new Error("missing signal; should not happen");return D.checkSignal(),D}Cx.FetchCancelSignal=FetchCancelSignal;var Be=new WeakMap,Fe=new WeakMap,De=new WeakMap,Le=new WeakMap,Ue=new WeakMap,qe=new WeakMap,je=new WeakMap,Je=new WeakMap,et=new WeakMap,tt=new WeakMap,rt=new WeakMap,nt=new WeakMap,at=new WeakMap,ut=new WeakMap,ht=new WeakMap,yt=new WeakSet;class FetchRequest{get url(){return _classPrivateFieldGet2(qe,this)}set url(D){_classPrivateFieldSet2(qe,this,String(D))}get body(){return null==_classPrivateFieldGet2(je,this)?null:new Uint8Array(_classPrivateFieldGet2(je,this))}set body(D){if(null==D)_classPrivateFieldSet2(je,this,void 0),_classPrivateFieldSet2(Je,this,void 0);else if("string"==typeof D)_classPrivateFieldSet2(je,this,(0,be.toUtf8Bytes)(D)),_classPrivateFieldSet2(Je,this,"text/plain");else if(D instanceof Uint8Array)_classPrivateFieldSet2(je,this,D),_classPrivateFieldSet2(Je,this,"application/octet-stream");else{if("object"!=typeof D)throw new Error("invalid body");_classPrivateFieldSet2(je,this,(0,be.toUtf8Bytes)(JSON.stringify(D))),_classPrivateFieldSet2(Je,this,"application/json")}}hasBody(){return null!=_classPrivateFieldGet2(je,this)}get method(){return _classPrivateFieldGet2(Le,this)?_classPrivateFieldGet2(Le,this):this.hasBody()?"POST":"GET"}set method(D){null==D&&(D=""),_classPrivateFieldSet2(Le,this,String(D).toUpperCase())}get headers(){const te=Object.assign({},_classPrivateFieldGet2(De,this));return _classPrivateFieldGet2(et,this)&&(te.authorization=`Basic ${(0,D.encodeBase64)((0,be.toUtf8Bytes)(_classPrivateFieldGet2(et,this)))}`),this.allowGzip&&(te["accept-encoding"]="gzip"),null==te["content-type"]&&_classPrivateFieldGet2(Je,this)&&(te["content-type"]=_classPrivateFieldGet2(Je,this)),this.body&&(te["content-length"]=String(this.body.length)),te}getHeader(D){return this.headers[D.toLowerCase()]}setHeader(D,te){_classPrivateFieldGet2(De,this)[String(D).toLowerCase()]=String(te)}clearHeaders(){_classPrivateFieldSet2(De,this,{})}[Symbol.iterator](){const D=this.headers,te=Object.keys(D);let he=0;return{next:()=>{if(he<te.length){const ye=te[he++];return{value:[ye,D[ye]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return _classPrivateFieldGet2(et,this)||null}setCredentials(D,te){(0,he.assertArgument)(!D.match(/:/),"invalid basic authentication username","username","[REDACTED]"),_classPrivateFieldSet2(et,this,`${D}:${te}`)}get allowGzip(){return _classPrivateFieldGet2(Fe,this)}set allowGzip(D){_classPrivateFieldSet2(Fe,this,!!D)}get allowInsecureAuthentication(){return!!_classPrivateFieldGet2(Be,this)}set allowInsecureAuthentication(D){_classPrivateFieldSet2(Be,this,!!D)}get timeout(){return _classPrivateFieldGet2(Ue,this)}set timeout(D){(0,he.assertArgument)(D>=0,"timeout must be non-zero","timeout",D),_classPrivateFieldSet2(Ue,this,D)}get preflightFunc(){return _classPrivateFieldGet2(tt,this)||null}set preflightFunc(D){_classPrivateFieldSet2(tt,this,D)}get processFunc(){return _classPrivateFieldGet2(rt,this)||null}set processFunc(D){_classPrivateFieldSet2(rt,this,D)}get retryFunc(){return _classPrivateFieldGet2(nt,this)||null}set retryFunc(D){_classPrivateFieldSet2(nt,this,D)}get getUrlFunc(){return _classPrivateFieldGet2(ht,this)||we}set getUrlFunc(D){_classPrivateFieldSet2(ht,this,D)}constructor(D){_classPrivateMethodInitSpec(this,yt),_classPrivateFieldInitSpec(this,Be,void 0),_classPrivateFieldInitSpec(this,Fe,void 0),_classPrivateFieldInitSpec(this,De,void 0),_classPrivateFieldInitSpec(this,Le,void 0),_classPrivateFieldInitSpec(this,Ue,void 0),_classPrivateFieldInitSpec(this,qe,void 0),_classPrivateFieldInitSpec(this,je,void 0),_classPrivateFieldInitSpec(this,Je,void 0),_classPrivateFieldInitSpec(this,et,void 0),_classPrivateFieldInitSpec(this,tt,void 0),_classPrivateFieldInitSpec(this,rt,void 0),_classPrivateFieldInitSpec(this,nt,void 0),_classPrivateFieldInitSpec(this,at,void 0),_classPrivateFieldInitSpec(this,ut,void 0),_classPrivateFieldInitSpec(this,ht,void 0),_classPrivateFieldSet2(qe,this,String(D)),_classPrivateFieldSet2(Be,this,!1),_classPrivateFieldSet2(Fe,this,!0),_classPrivateFieldSet2(De,this,{}),_classPrivateFieldSet2(Le,this,""),_classPrivateFieldSet2(Ue,this,3e5),_classPrivateFieldSet2(ut,this,{slotInterval:250,maxAttempts:12}),_classPrivateFieldSet2(ht,this,null)}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${_classPrivateFieldGet2(je,this)?(0,te.hexlify)(_classPrivateFieldGet2(je,this)):"null"}>`}setThrottleParams(D){null!=D.slotInterval&&(_classPrivateFieldGet2(ut,this).slotInterval=D.slotInterval),null!=D.maxAttempts&&(_classPrivateFieldGet2(ut,this).maxAttempts=D.maxAttempts)}send(){return(0,he.assert)(null==_classPrivateFieldGet2(at,this),"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),_classPrivateFieldSet2(at,this,new FetchCancelSignal(this)),_assertClassBrand(yt,this,_send).call(this,0,getTime()+this.timeout,0,this,new FetchResponse(0,"",{},null,this))}cancel(){(0,he.assert)(null!=_classPrivateFieldGet2(at,this),"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const D=ke.get(this);if(!D)throw new Error("missing signal; should not happen");D()}redirect(D){const te=this.url.split(":")[0].toLowerCase(),ye=D.split(":")[0].toLowerCase();(0,he.assert)("GET"===this.method&&("https"!==te||"http"!==ye)&&D.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(D)})`});const be=new FetchRequest(D);return be.method="GET",be.allowGzip=this.allowGzip,be.timeout=this.timeout,_classPrivateFieldSet2(De,be,Object.assign({},_classPrivateFieldGet2(De,this))),_classPrivateFieldGet2(je,this)&&_classPrivateFieldSet2(je,be,new Uint8Array(_classPrivateFieldGet2(je,this))),_classPrivateFieldSet2(Je,be,_classPrivateFieldGet2(Je,this)),be}clone(){const D=new FetchRequest(this.url);return _classPrivateFieldSet2(Le,D,_classPrivateFieldGet2(Le,this)),_classPrivateFieldGet2(je,this)&&_classPrivateFieldSet2(je,D,_classPrivateFieldGet2(je,this)),_classPrivateFieldSet2(Je,D,_classPrivateFieldGet2(Je,this)),_classPrivateFieldSet2(De,D,Object.assign({},_classPrivateFieldGet2(De,this))),_classPrivateFieldSet2(et,D,_classPrivateFieldGet2(et,this)),this.allowGzip&&(D.allowGzip=!0),D.timeout=this.timeout,this.allowInsecureAuthentication&&(D.allowInsecureAuthentication=!0),_classPrivateFieldSet2(tt,D,_classPrivateFieldGet2(tt,this)),_classPrivateFieldSet2(rt,D,_classPrivateFieldGet2(rt,this)),_classPrivateFieldSet2(nt,D,_classPrivateFieldGet2(nt,this)),_classPrivateFieldSet2(ht,D,_classPrivateFieldGet2(ht,this)),D}static lockConfig(){Ie=!0}static getGateway(D){return Re[D.toLowerCase()]||null}static registerGateway(D,te){if("http"===(D=D.toLowerCase())||"https"===D)throw new Error(`cannot intercept ${D}; use registerGetUrl`);if(Ie)throw new Error("gateways locked");Re[D]=te}static registerGetUrl(D){if(Ie)throw new Error("gateways locked");we=D}static createGetUrlFunc(D){return(0,ve.createGetUrl)(D)}static createDataGateway(){return dataGatewayFunc}static createIpfsGatewayFunc(D){return getIpfsGatewayFunc(D)}}async function _send(D,te,ye,be,ve){if(D>=_classPrivateFieldGet2(ut,this).maxAttempts)return ve.makeServerError("exceeded maximum retry limit");(0,he.assert)(getTime()<=te,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:be}),ye>0&&await function wait(D){return new Promise((te=>setTimeout(te,D)))}(ye);let we=this.clone();const _e=(we.url.split(":")[0]||"").toLowerCase();if(_e in Re){const D=await Re[_e](we.url,checkSignal(_classPrivateFieldGet2(at,be)));if(D instanceof FetchResponse){let te=D;if(this.processFunc){checkSignal(_classPrivateFieldGet2(at,be));try{te=await this.processFunc(we,te)}catch(D){null!=D.throttle&&"number"==typeof D.stall||te.makeServerError("error in post-processing function",D).assertOk()}}return te}we=D}this.preflightFunc&&(we=await this.preflightFunc(we));const Pe=await this.getUrlFunc(we,checkSignal(_classPrivateFieldGet2(at,be)));let Ie=new FetchResponse(Pe.statusCode,Pe.statusMessage,Pe.headers,Pe.body,be);if(301===Ie.statusCode||302===Ie.statusCode){try{var ke;const he=Ie.headers.location||"";return _assertClassBrand(yt,ke=we.redirect(he),_send).call(ke,D+1,te,0,be,Ie)}catch(D){}return Ie}if(429===Ie.statusCode&&(null==this.retryFunc||await this.retryFunc(we,Ie,D))){var Oe;const he=Ie.headers["retry-after"];let ye=_classPrivateFieldGet2(ut,this).slotInterval*Math.trunc(Math.random()*Math.pow(2,D));return"string"==typeof he&&he.match(/^[1-9][0-9]*$/)&&(ye=parseInt(he)),_assertClassBrand(yt,Oe=we.clone(),_send).call(Oe,D+1,te,ye,be,Ie)}if(this.processFunc){checkSignal(_classPrivateFieldGet2(at,be));try{Ie=await this.processFunc(we,Ie)}catch(he){var xe;null!=he.throttle&&"number"==typeof he.stall||Ie.makeServerError("error in post-processing function",he).assertOk();let ye=_classPrivateFieldGet2(ut,this).slotInterval*Math.trunc(Math.random()*Math.pow(2,D));return he.stall>=0&&(ye=he.stall),_assertClassBrand(yt,xe=we.clone(),_send).call(xe,D+1,te,ye,be,Ie)}}return Ie}Cx.FetchRequest=FetchRequest;var mt=new WeakMap,bt=new WeakMap,wt=new WeakMap,_t=new WeakMap,Tt=new WeakMap,At=new WeakMap;class FetchResponse{toString(){return`<FetchResponse status=${this.statusCode} body=${_classPrivateFieldGet2(_t,this)?(0,te.hexlify)(_classPrivateFieldGet2(_t,this)):"null"}>`}get statusCode(){return _classPrivateFieldGet2(mt,this)}get statusMessage(){return _classPrivateFieldGet2(bt,this)}get headers(){return Object.assign({},_classPrivateFieldGet2(wt,this))}get body(){return null==_classPrivateFieldGet2(_t,this)?null:new Uint8Array(_classPrivateFieldGet2(_t,this))}get bodyText(){try{return null==_classPrivateFieldGet2(_t,this)?"":(0,be.toUtf8String)(_classPrivateFieldGet2(_t,this))}catch(D){(0,he.assert)(!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(D){(0,he.assert)(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const D=this.headers,te=Object.keys(D);let he=0;return{next:()=>{if(he<te.length){const ye=te[he++];return{value:[ye,D[ye]],done:!1}}return{value:void 0,done:!0}}}}constructor(D,te,he,ye,be){_classPrivateFieldInitSpec(this,mt,void 0),_classPrivateFieldInitSpec(this,bt,void 0),_classPrivateFieldInitSpec(this,wt,void 0),_classPrivateFieldInitSpec(this,_t,void 0),_classPrivateFieldInitSpec(this,Tt,void 0),_classPrivateFieldInitSpec(this,At,void 0),_classPrivateFieldSet2(mt,this,D),_classPrivateFieldSet2(bt,this,te),_classPrivateFieldSet2(wt,this,Object.keys(he).reduce(((D,te)=>(D[te.toLowerCase()]=String(he[te]),D)),{})),_classPrivateFieldSet2(_t,this,null==ye?null:new Uint8Array(ye)),_classPrivateFieldSet2(Tt,this,be||null),_classPrivateFieldSet2(At,this,{message:""})}makeServerError(D,te){let he;he=D?`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${D})`:`CLIENT ESCALATED SERVER ERROR (${D=`${this.statusCode} ${this.statusMessage}`})`;const ye=new FetchResponse(599,he,this.headers,this.body,_classPrivateFieldGet2(Tt,this)||void 0);return _classPrivateFieldSet2(At,ye,{message:D,error:te}),ye}throwThrottleError(D,te){null==te?te=-1:(0,he.assertArgument)(Number.isInteger(te)&&te>=0,"invalid stall timeout","stall",te);const be=new Error(D||"throttling requests");throw(0,ye.defineProperties)(be,{stall:te,throttle:!0}),be}getHeader(D){return this.headers[D.toLowerCase()]}hasBody(){return null!=_classPrivateFieldGet2(_t,this)}get request(){return _classPrivateFieldGet2(Tt,this)}ok(){return""===_classPrivateFieldGet2(At,this).message&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:D,error:te}=_classPrivateFieldGet2(At,this);""===D&&(D=`server response ${this.statusCode} ${this.statusMessage}`);let ye=null;this.request&&(ye=this.request.url);let ve=null;try{_classPrivateFieldGet2(_t,this)&&(ve=(0,be.toUtf8String)(_classPrivateFieldGet2(_t,this)))}catch(D){}(0,he.assert)(!1,D,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:te,info:{requestUrl:ye,responseBody:ve,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function getTime(){return(new Date).getTime()}return Cx.FetchResponse=FetchResponse,Cx}var xx,Nx={};function requireFixednumber(){var D;if(xx)return Nx;xx=1,Object.defineProperty(Nx,"__esModule",{value:!0}),Nx.FixedNumber=void 0;const te=requireData(),he=requireErrors(),ye=requireMaths(),be=requireProperties(),ve=BigInt(-1),we=BigInt(0),_e=BigInt(1),Pe=BigInt(5),Ie={};let Re="0000";for(;Re.length<80;)Re+=Re;function getTens(D){let te=Re;for(;te.length<D;)te+=te;return BigInt("1"+te.substring(0,D))}function checkValue(D,te,be){const ve=BigInt(te.width);if(te.signed){const te=_e<<ve-_e;(0,he.assert)(null==be||D>=-te&&D<te,"overflow","NUMERIC_FAULT",{operation:be,fault:"overflow",value:D}),D=D>we?(0,ye.fromTwos)((0,ye.mask)(D,ve),ve):-(0,ye.fromTwos)((0,ye.mask)(-D,ve),ve)}else{const te=_e<<ve;(0,he.assert)(null==be||D>=0&&D<te,"overflow","NUMERIC_FAULT",{operation:be,fault:"overflow",value:D}),D=(D%te+te)%te&te-_e}return D}function getFormat(D){"number"==typeof D&&(D=`fixed128x${D}`);let te=!0,ye=128,be=18;if("string"==typeof D)if("fixed"===D);else if("ufixed"===D)te=!1;else{const ve=D.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);(0,he.assertArgument)(ve,"invalid fixed format","format",D),te="u"!==ve[1],ye=parseInt(ve[2]),be=parseInt(ve[3])}else if(D){const ve=D,check=(D,te,ye)=>null==ve[D]?ye:((0,he.assertArgument)(typeof ve[D]===te,"invalid fixed format ("+D+" not "+te+")","format."+D,ve[D]),ve[D]);te=check("signed","boolean",te),ye=check("width","number",ye),be=check("decimals","number",be)}(0,he.assertArgument)(ye%8==0,"invalid FixedNumber width (not byte aligned)","format.width",ye),(0,he.assertArgument)(be<=80,"invalid FixedNumber decimals (too large)","format.decimals",be);return{signed:te,width:ye,decimals:be,name:(te?"":"u")+"fixed"+String(ye)+"x"+String(be)}}var ke=new WeakMap,Oe=new WeakMap,xe=new WeakMap,Be=new WeakSet;class FixedNumber{constructor(D,te,ye){_classPrivateMethodInitSpec(this,Be),_defineProperty(this,"format",void 0),_classPrivateFieldInitSpec(this,ke,void 0),_classPrivateFieldInitSpec(this,Oe,void 0),_classPrivateFieldInitSpec(this,xe,void 0),_defineProperty(this,"_value",void 0),(0,he.assertPrivate)(D,Ie,"FixedNumber"),_classPrivateFieldSet2(Oe,this,te),_classPrivateFieldSet2(ke,this,ye);const _e=function toString(D,te){let he="";D<we&&(he="-",D*=ve);let ye=D.toString();if(0===te)return he+ye;for(;ye.length<=te;)ye=Re+ye;const be=ye.length-te;for(ye=ye.substring(0,be)+"."+ye.substring(be);"0"===ye[0]&&"."!==ye[1];)ye=ye.substring(1);for(;"0"===ye[ye.length-1]&&"."!==ye[ye.length-2];)ye=ye.substring(0,ye.length-1);return he+ye}(te,ye.decimals);(0,be.defineProperties)(this,{format:ye.name,_value:_e}),_classPrivateFieldSet2(xe,this,getTens(ye.decimals))}get signed(){return _classPrivateFieldGet2(ke,this).signed}get width(){return _classPrivateFieldGet2(ke,this).width}get decimals(){return _classPrivateFieldGet2(ke,this).decimals}get value(){return _classPrivateFieldGet2(Oe,this)}addUnsafe(D){return _assertClassBrand(Be,this,_add).call(this,D)}add(D){return _assertClassBrand(Be,this,_add).call(this,D,"add")}subUnsafe(D){return _assertClassBrand(Be,this,_sub).call(this,D)}sub(D){return _assertClassBrand(Be,this,_sub).call(this,D,"sub")}mulUnsafe(D){return _assertClassBrand(Be,this,_mul).call(this,D)}mul(D){return _assertClassBrand(Be,this,_mul).call(this,D,"mul")}mulSignal(D){_assertClassBrand(Be,this,_checkFormat).call(this,D);const te=_classPrivateFieldGet2(Oe,this)*_classPrivateFieldGet2(Oe,D);return(0,he.assert)(te%_classPrivateFieldGet2(xe,this)===we,"precision lost during signalling mul","NUMERIC_FAULT",{operation:"mulSignal",fault:"underflow",value:this}),_assertClassBrand(Be,this,_checkValue).call(this,te/_classPrivateFieldGet2(xe,this),"mulSignal")}divUnsafe(D){return _assertClassBrand(Be,this,_div).call(this,D)}div(D){return _assertClassBrand(Be,this,_div).call(this,D,"div")}divSignal(D){(0,he.assert)(_classPrivateFieldGet2(Oe,D)!==we,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),_assertClassBrand(Be,this,_checkFormat).call(this,D);const te=_classPrivateFieldGet2(Oe,this)*_classPrivateFieldGet2(xe,this);return(0,he.assert)(te%_classPrivateFieldGet2(Oe,D)===we,"precision lost during signalling div","NUMERIC_FAULT",{operation:"divSignal",fault:"underflow",value:this}),_assertClassBrand(Be,this,_checkValue).call(this,te/_classPrivateFieldGet2(Oe,D),"divSignal")}cmp(D){let te=this.value,he=D.value;const ye=this.decimals-D.decimals;return ye>0?he*=getTens(ye):ye<0&&(te*=getTens(-ye)),te<he?-1:te>he?1:0}eq(D){return 0===this.cmp(D)}lt(D){return this.cmp(D)<0}lte(D){return this.cmp(D)<=0}gt(D){return this.cmp(D)>0}gte(D){return this.cmp(D)>=0}floor(){let D=_classPrivateFieldGet2(Oe,this);return _classPrivateFieldGet2(Oe,this)<we&&(D-=_classPrivateFieldGet2(xe,this)-_e),D=_classPrivateFieldGet2(Oe,this)/_classPrivateFieldGet2(xe,this)*_classPrivateFieldGet2(xe,this),_assertClassBrand(Be,this,_checkValue).call(this,D,"floor")}ceiling(){let D=_classPrivateFieldGet2(Oe,this);return _classPrivateFieldGet2(Oe,this)>we&&(D+=_classPrivateFieldGet2(xe,this)-_e),D=_classPrivateFieldGet2(Oe,this)/_classPrivateFieldGet2(xe,this)*_classPrivateFieldGet2(xe,this),_assertClassBrand(Be,this,_checkValue).call(this,D,"ceiling")}round(D){if(null==D&&(D=0),D>=this.decimals)return this;const te=this.decimals-D,he=Pe*getTens(te-1);let ye=this.value+he;const be=getTens(te);return ye=ye/be*be,checkValue(ye,_classPrivateFieldGet2(ke,this),"round"),new FixedNumber(Ie,ye,_classPrivateFieldGet2(ke,this))}isZero(){return _classPrivateFieldGet2(Oe,this)===we}isNegative(){return _classPrivateFieldGet2(Oe,this)<we}toString(){return this._value}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(D){return FixedNumber.fromString(this.toString(),D)}static fromValue(D,te,be){const ve=null==te?0:(0,ye.getNumber)(te),_e=getFormat(be);let Pe=(0,ye.getBigInt)(D,"value");const Re=ve-_e.decimals;if(Re>0){const te=getTens(Re);(0,he.assert)(Pe%te===we,"value loses precision for format","NUMERIC_FAULT",{operation:"fromValue",fault:"underflow",value:D}),Pe/=te}else Re<0&&(Pe*=getTens(-Re));return checkValue(Pe,_e,"fromValue"),new FixedNumber(Ie,Pe,_e)}static fromString(D,te){const ye=D.match(/^(-?)([0-9]*)\.?([0-9]*)$/);(0,he.assertArgument)(ye&&ye[2].length+ye[3].length>0,"invalid FixedNumber string value","value",D);const be=getFormat(te);let ve=ye[2]||"0",we=ye[3]||"";for(;we.length<be.decimals;)we+=Re;(0,he.assert)(we.substring(be.decimals).match(/^0*$/),"too many decimals for format","NUMERIC_FAULT",{operation:"fromString",fault:"underflow",value:D}),we=we.substring(0,be.decimals);const _e=BigInt(ye[1]+ve+we);return checkValue(_e,be,"fromString"),new FixedNumber(Ie,_e,be)}static fromBytes(D,he){let be=(0,ye.toBigInt)((0,te.getBytes)(D,"value"));const ve=getFormat(he);return ve.signed&&(be=(0,ye.fromTwos)(be,ve.width)),checkValue(be,ve,"fromBytes"),new FixedNumber(Ie,be,ve)}}function _checkFormat(D){(0,he.assertArgument)(this.format===D.format,"incompatible format; use fixedNumber.toFormat","other",D)}function _checkValue(te,he){return te=checkValue(te,_classPrivateFieldGet2(ke,this),he),new D(Ie,te,_classPrivateFieldGet2(ke,this))}function _add(D,te){return _assertClassBrand(Be,this,_checkFormat).call(this,D),_assertClassBrand(Be,this,_checkValue).call(this,_classPrivateFieldGet2(Oe,this)+_classPrivateFieldGet2(Oe,D),te)}function _sub(D,te){return _assertClassBrand(Be,this,_checkFormat).call(this,D),_assertClassBrand(Be,this,_checkValue).call(this,_classPrivateFieldGet2(Oe,this)-_classPrivateFieldGet2(Oe,D),te)}function _mul(D,te){return _assertClassBrand(Be,this,_checkFormat).call(this,D),_assertClassBrand(Be,this,_checkValue).call(this,_classPrivateFieldGet2(Oe,this)*_classPrivateFieldGet2(Oe,D)/_classPrivateFieldGet2(xe,this),te)}function _div(D,te){return(0,he.assert)(_classPrivateFieldGet2(Oe,D)!==we,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),_assertClassBrand(Be,this,_checkFormat).call(this,D),_assertClassBrand(Be,this,_checkValue).call(this,_classPrivateFieldGet2(Oe,this)*_classPrivateFieldGet2(xe,this)/_classPrivateFieldGet2(Oe,D),te)}return D=FixedNumber,Nx.FixedNumber=FixedNumber,Nx}var Mx,Bx={};var Fx,Dx={};function requireRlpEncode(){if(Fx)return Dx;Fx=1,Object.defineProperty(Dx,"__esModule",{value:!0}),Dx.encodeRlp=void 0;const D=requireData();function arrayifyInteger(D){const te=[];for(;D;)te.unshift(255&D),D>>=8;return te}function _encode(te){if(Array.isArray(te)){let D=[];if(te.forEach((function(te){D=D.concat(_encode(te))})),D.length<=55)return D.unshift(192+D.length),D;const he=arrayifyInteger(D.length);return he.unshift(247+he.length),he.concat(D)}const he=Array.prototype.slice.call((0,D.getBytes)(te,"object"));if(1===he.length&&he[0]<=127)return he;if(he.length<=55)return he.unshift(128+he.length),he;const ye=arrayifyInteger(he.length);return ye.unshift(183+ye.length),ye.concat(he)}const te="0123456789abcdef";return Dx.encodeRlp=function encodeRlp(D){let he="0x";for(const ye of _encode(D))he+=te[ye>>4],he+=te[15&ye];return he},Dx}var Lx,Ux={};var $x,qx,Gx={};function requireUtils$4(){return qx||(qx=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.toUtf8String=D.toUtf8CodePoints=D.toUtf8Bytes=D.parseUnits=D.formatUnits=D.parseEther=D.formatEther=D.encodeRlp=D.decodeRlp=D.defineProperties=D.resolveProperties=D.toQuantity=D.toBeArray=D.toBeHex=D.toNumber=D.toBigInt=D.getUint=D.getNumber=D.getBigInt=D.mask=D.toTwos=D.fromTwos=D.FixedNumber=D.FetchCancelSignal=D.FetchResponse=D.FetchRequest=D.EventPayload=D.makeError=D.assertNormalize=D.assertPrivate=D.assertArgumentCount=D.assertArgument=D.assert=D.isError=D.isCallException=D.zeroPadBytes=D.zeroPadValue=D.stripZerosLeft=D.dataSlice=D.dataLength=D.concat=D.hexlify=D.isBytesLike=D.isHexString=D.getBytesCopy=D.getBytes=D.encodeBase64=D.decodeBase64=D.encodeBase58=D.decodeBase58=void 0,D.uuidV4=D.Utf8ErrorFuncs=void 0;var te=function requireBase58(){if(wx)return yx;wx=1,Object.defineProperty(yx,"__esModule",{value:!0}),yx.decodeBase58=yx.encodeBase58=void 0;const D=requireData(),te=requireErrors(),he=requireMaths(),ye="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";let be=null;function getAlpha(D){if(null==be){be={};for(let D=0;D<ye.length;D++)be[ye[D]]=BigInt(D)}const he=be[D];return(0,te.assertArgument)(null!=he,"invalid base58 value","letter",D),he}const ve=BigInt(0),we=BigInt(58);return yx.encodeBase58=function encodeBase58(te){const be=(0,D.getBytes)(te);let ve=(0,he.toBigInt)(be),_e="";for(;ve;)_e=ye[Number(ve%we)]+_e,ve/=we;for(let D=0;D<be.length&&!be[D];D++)_e=ye[0]+_e;return _e},yx.decodeBase58=function decodeBase58(D){let te=ve;for(let he=0;he<D.length;he++)te*=we,te+=getAlpha(D[he]);return te},yx}();Object.defineProperty(D,"decodeBase58",{enumerable:!0,get:function(){return te.decodeBase58}}),Object.defineProperty(D,"encodeBase58",{enumerable:!0,get:function(){return te.encodeBase58}});var he=requireBase64Browser();Object.defineProperty(D,"decodeBase64",{enumerable:!0,get:function(){return he.decodeBase64}}),Object.defineProperty(D,"encodeBase64",{enumerable:!0,get:function(){return he.encodeBase64}});var ye=requireData();Object.defineProperty(D,"getBytes",{enumerable:!0,get:function(){return ye.getBytes}}),Object.defineProperty(D,"getBytesCopy",{enumerable:!0,get:function(){return ye.getBytesCopy}}),Object.defineProperty(D,"isHexString",{enumerable:!0,get:function(){return ye.isHexString}}),Object.defineProperty(D,"isBytesLike",{enumerable:!0,get:function(){return ye.isBytesLike}}),Object.defineProperty(D,"hexlify",{enumerable:!0,get:function(){return ye.hexlify}}),Object.defineProperty(D,"concat",{enumerable:!0,get:function(){return ye.concat}}),Object.defineProperty(D,"dataLength",{enumerable:!0,get:function(){return ye.dataLength}}),Object.defineProperty(D,"dataSlice",{enumerable:!0,get:function(){return ye.dataSlice}}),Object.defineProperty(D,"stripZerosLeft",{enumerable:!0,get:function(){return ye.stripZerosLeft}}),Object.defineProperty(D,"zeroPadValue",{enumerable:!0,get:function(){return ye.zeroPadValue}}),Object.defineProperty(D,"zeroPadBytes",{enumerable:!0,get:function(){return ye.zeroPadBytes}});var be=requireErrors();Object.defineProperty(D,"isCallException",{enumerable:!0,get:function(){return be.isCallException}}),Object.defineProperty(D,"isError",{enumerable:!0,get:function(){return be.isError}}),Object.defineProperty(D,"assert",{enumerable:!0,get:function(){return be.assert}}),Object.defineProperty(D,"assertArgument",{enumerable:!0,get:function(){return be.assertArgument}}),Object.defineProperty(D,"assertArgumentCount",{enumerable:!0,get:function(){return be.assertArgumentCount}}),Object.defineProperty(D,"assertPrivate",{enumerable:!0,get:function(){return be.assertPrivate}}),Object.defineProperty(D,"assertNormalize",{enumerable:!0,get:function(){return be.assertNormalize}}),Object.defineProperty(D,"makeError",{enumerable:!0,get:function(){return be.makeError}});var ve=function requireEvents(){if(Ex)return Px;Ex=1,Object.defineProperty(Px,"__esModule",{value:!0}),Px.EventPayload=void 0;const D=requireProperties();var te=new WeakMap;return Px.EventPayload=class EventPayload{constructor(he,ye,be){_defineProperty(this,"filter",void 0),_defineProperty(this,"emitter",void 0),_classPrivateFieldInitSpec(this,te,void 0),_classPrivateFieldSet2(te,this,ye),(0,D.defineProperties)(this,{emitter:he,filter:be})}async removeListener(){null!=_classPrivateFieldGet2(te,this)&&await this.emitter.off(this.filter,_classPrivateFieldGet2(te,this))}},Px}();Object.defineProperty(D,"EventPayload",{enumerable:!0,get:function(){return ve.EventPayload}});var we=requireFetch();Object.defineProperty(D,"FetchRequest",{enumerable:!0,get:function(){return we.FetchRequest}}),Object.defineProperty(D,"FetchResponse",{enumerable:!0,get:function(){return we.FetchResponse}}),Object.defineProperty(D,"FetchCancelSignal",{enumerable:!0,get:function(){return we.FetchCancelSignal}});var _e=requireFixednumber();Object.defineProperty(D,"FixedNumber",{enumerable:!0,get:function(){return _e.FixedNumber}});var Pe=requireMaths();Object.defineProperty(D,"fromTwos",{enumerable:!0,get:function(){return Pe.fromTwos}}),Object.defineProperty(D,"toTwos",{enumerable:!0,get:function(){return Pe.toTwos}}),Object.defineProperty(D,"mask",{enumerable:!0,get:function(){return Pe.mask}}),Object.defineProperty(D,"getBigInt",{enumerable:!0,get:function(){return Pe.getBigInt}}),Object.defineProperty(D,"getNumber",{enumerable:!0,get:function(){return Pe.getNumber}}),Object.defineProperty(D,"getUint",{enumerable:!0,get:function(){return Pe.getUint}}),Object.defineProperty(D,"toBigInt",{enumerable:!0,get:function(){return Pe.toBigInt}}),Object.defineProperty(D,"toNumber",{enumerable:!0,get:function(){return Pe.toNumber}}),Object.defineProperty(D,"toBeHex",{enumerable:!0,get:function(){return Pe.toBeHex}}),Object.defineProperty(D,"toBeArray",{enumerable:!0,get:function(){return Pe.toBeArray}}),Object.defineProperty(D,"toQuantity",{enumerable:!0,get:function(){return Pe.toQuantity}});var Ie=requireProperties();Object.defineProperty(D,"resolveProperties",{enumerable:!0,get:function(){return Ie.resolveProperties}}),Object.defineProperty(D,"defineProperties",{enumerable:!0,get:function(){return Ie.defineProperties}});var Re=function requireRlpDecode(){if(Mx)return Bx;Mx=1,Object.defineProperty(Bx,"__esModule",{value:!0}),Bx.decodeRlp=void 0;const D=requireData(),te=requireErrors(),he=requireData();function hexlifyByte(D){let te=D.toString(16);for(;te.length<2;)te="0"+te;return"0x"+te}function unarrayifyInteger(D,te,he){let ye=0;for(let be=0;be<he;be++)ye=256*ye+D[te+be];return ye}function _decodeChildren(D,he,ye,be){const ve=[];for(;ye<he+1+be;){const we=_decode(D,ye);ve.push(we.result),ye+=we.consumed,(0,te.assert)(ye<=he+1+be,"child data too short","BUFFER_OVERRUN",{buffer:D,length:be,offset:he})}return{consumed:1+be,result:ve}}function _decode(he,ye){(0,te.assert)(0!==he.length,"data too short","BUFFER_OVERRUN",{buffer:he,length:0,offset:1});const checkOffset=D=>{(0,te.assert)(D<=he.length,"data short segment too short","BUFFER_OVERRUN",{buffer:he,length:he.length,offset:D})};if(he[ye]>=248){const D=he[ye]-247;checkOffset(ye+1+D);const te=unarrayifyInteger(he,ye+1,D);return checkOffset(ye+1+D+te),_decodeChildren(he,ye,ye+1+D,D+te)}if(he[ye]>=192){const D=he[ye]-192;return checkOffset(ye+1+D),_decodeChildren(he,ye,ye+1,D)}if(he[ye]>=184){const te=he[ye]-183;checkOffset(ye+1+te);const be=unarrayifyInteger(he,ye+1,te);return checkOffset(ye+1+te+be),{consumed:1+te+be,result:(0,D.hexlify)(he.slice(ye+1+te,ye+1+te+be))}}if(he[ye]>=128){const te=he[ye]-128;return checkOffset(ye+1+te),{consumed:1+te,result:(0,D.hexlify)(he.slice(ye+1,ye+1+te))}}return{consumed:1,result:hexlifyByte(he[ye])}}return Bx.decodeRlp=function decodeRlp(D){const ye=(0,he.getBytes)(D,"data"),be=_decode(ye,0);return(0,te.assertArgument)(be.consumed===ye.length,"unexpected junk after rlp payload","data",D),be.result},Bx}();Object.defineProperty(D,"decodeRlp",{enumerable:!0,get:function(){return Re.decodeRlp}});var ke=requireRlpEncode();Object.defineProperty(D,"encodeRlp",{enumerable:!0,get:function(){return ke.encodeRlp}});var Oe=function requireUnits(){if(Lx)return Ux;Lx=1,Object.defineProperty(Ux,"__esModule",{value:!0}),Ux.parseEther=Ux.formatEther=Ux.parseUnits=Ux.formatUnits=void 0;const D=requireErrors(),te=requireFixednumber(),he=requireMaths(),ye=["wei","kwei","mwei","gwei","szabo","finney","ether"];function formatUnits(be,ve){let we=18;if("string"==typeof ve){const te=ye.indexOf(ve);(0,D.assertArgument)(te>=0,"invalid unit","unit",ve),we=3*te}else null!=ve&&(we=(0,he.getNumber)(ve,"unit"));return te.FixedNumber.fromValue(be,we,{decimals:we,width:512}).toString()}function parseUnits(be,ve){(0,D.assertArgument)("string"==typeof be,"value must be a string","value",be);let we=18;if("string"==typeof ve){const te=ye.indexOf(ve);(0,D.assertArgument)(te>=0,"invalid unit","unit",ve),we=3*te}else null!=ve&&(we=(0,he.getNumber)(ve,"unit"));return te.FixedNumber.fromString(be,{decimals:we,width:512}).value}return Ux.formatUnits=formatUnits,Ux.parseUnits=parseUnits,Ux.formatEther=function formatEther(D){return formatUnits(D,18)},Ux.parseEther=function parseEther(D){return parseUnits(D,18)},Ux}();Object.defineProperty(D,"formatEther",{enumerable:!0,get:function(){return Oe.formatEther}}),Object.defineProperty(D,"parseEther",{enumerable:!0,get:function(){return Oe.parseEther}}),Object.defineProperty(D,"formatUnits",{enumerable:!0,get:function(){return Oe.formatUnits}}),Object.defineProperty(D,"parseUnits",{enumerable:!0,get:function(){return Oe.parseUnits}});var xe=requireUtf8();Object.defineProperty(D,"toUtf8Bytes",{enumerable:!0,get:function(){return xe.toUtf8Bytes}}),Object.defineProperty(D,"toUtf8CodePoints",{enumerable:!0,get:function(){return xe.toUtf8CodePoints}}),Object.defineProperty(D,"toUtf8String",{enumerable:!0,get:function(){return xe.toUtf8String}}),Object.defineProperty(D,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return xe.Utf8ErrorFuncs}});var Be=function requireUuid(){if($x)return Gx;$x=1,Object.defineProperty(Gx,"__esModule",{value:!0}),Gx.uuidV4=void 0;const D=requireData();return Gx.uuidV4=function uuidV4(te){const he=(0,D.getBytes)(te,"randomBytes");he[6]=15&he[6]|64,he[8]=63&he[8]|128;const ye=(0,D.hexlify)(he);return[ye.substring(2,10),ye.substring(10,14),ye.substring(14,18),ye.substring(18,22),ye.substring(22,34)].join("-")},Gx}();Object.defineProperty(D,"uuidV4",{enumerable:!0,get:function(){return Be.uuidV4}})}(hx)),hx}var jx,Hx={};function requireAbstractCoder(){return jx||(jx=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.Reader=D.Writer=D.Coder=D.checkResultErrors=D.Result=D.WordSize=void 0;const te=requireUtils$4();D.WordSize=32;const he=new Uint8Array(D.WordSize),ye=["then"],be={};function throwError(D,te){const he=new Error(`deferred error during ABI decoding triggered accessing ${D}`);throw he.error=te,he}var ve=new WeakMap;class Result extends Array{constructor(...D){const he=D[0];let we=D[1],_e=(D[2]||[]).slice(),Pe=!0;he!==be&&(we=D,_e=[],Pe=!1),super(we.length),_classPrivateFieldInitSpec(this,ve,void 0),we.forEach(((D,te)=>{this[te]=D}));const Ie=_e.reduce(((D,te)=>("string"==typeof te&&D.set(te,(D.get(te)||0)+1),D)),new Map);if(_classPrivateFieldSet2(ve,this,Object.freeze(we.map(((D,te)=>{const he=_e[te];return null!=he&&1===Ie.get(he)?he:null})))),Pe)return Object.freeze(this),new Proxy(this,{get:(D,he,be)=>{if("string"==typeof he){if(he.match(/^[0-9]+$/)){const ye=(0,te.getNumber)(he,"%index");if(ye<0||ye>=this.length)throw new RangeError("out of result range");const be=D[ye];return be instanceof Error&&throwError(`index ${ye}`,be),be}if(ye.indexOf(he)>=0)return Reflect.get(D,he,be);const ve=D[he];if(ve instanceof Function)return function(...te){return ve.apply(this===be?D:this,te)};if(!(he in D))return D.getValue.apply(this===be?D:this,[he])}return Reflect.get(D,he,be)}})}toArray(){const D=[];return this.forEach(((te,he)=>{te instanceof Error&&throwError(`index ${he}`,te),D.push(te)})),D}toObject(){return _classPrivateFieldGet2(ve,this).reduce(((D,he,ye)=>((0,te.assert)(null!=he,"value at index ${ index } unnamed","UNSUPPORTED_OPERATION",{operation:"toObject()"}),he in D||(D[he]=this.getValue(he)),D)),{})}slice(D,te){null==D&&(D=0),D<0&&(D+=this.length)<0&&(D=0),null==te&&(te=this.length),te<0&&(te+=this.length)<0&&(te=0),te>this.length&&(te=this.length);const he=[],ye=[];for(let be=D;be<te;be++)he.push(this[be]),ye.push(_classPrivateFieldGet2(ve,this)[be]);return new Result(be,he,ye)}filter(D,te){const he=[],ye=[];for(let be=0;be<this.length;be++){const we=this[be];we instanceof Error&&throwError(`index ${be}`,we),D.call(te,we,be,this)&&(he.push(we),ye.push(_classPrivateFieldGet2(ve,this)[be]))}return new Result(be,he,ye)}map(D,te){const he=[];for(let ye=0;ye<this.length;ye++){const be=this[ye];be instanceof Error&&throwError(`index ${ye}`,be),he.push(D.call(te,be,ye,this))}return he}getValue(D){const te=_classPrivateFieldGet2(ve,this).indexOf(D);if(-1===te)return;const he=this[te];return he instanceof Error&&throwError(`property ${JSON.stringify(D)}`,he.error),he}static fromItems(D,te){return new Result(be,D,te)}}function getValue(ye){let be=(0,te.toBeArray)(ye);return(0,te.assert)(be.length<=D.WordSize,"value out-of-bounds","BUFFER_OVERRUN",{buffer:be,length:D.WordSize,offset:be.length}),be.length!==D.WordSize&&(be=(0,te.getBytesCopy)((0,te.concat)([he.slice(be.length%D.WordSize),be]))),be}D.Result=Result,D.checkResultErrors=function checkResultErrors(D){const te=[],checkErrors=function(D,he){if(Array.isArray(he))for(let ye in he){const be=D.slice();be.push(ye);try{checkErrors(be,he[ye])}catch(D){te.push({path:be,error:D})}}};return checkErrors([],D),te};D.Coder=class Coder{constructor(D,he,ye,be){_defineProperty(this,"name",void 0),_defineProperty(this,"type",void 0),_defineProperty(this,"localName",void 0),_defineProperty(this,"dynamic",void 0),(0,te.defineProperties)(this,{name:D,type:he,localName:ye,dynamic:be},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(D,he){(0,te.assertArgument)(!1,D,this.localName,he)}};var we=new WeakMap,_e=new WeakMap,Pe=new WeakSet;function _writeData(D){return _classPrivateFieldGet2(we,this).push(D),_classPrivateFieldSet2(_e,this,_classPrivateFieldGet2(_e,this)+D.length),D.length}D.Writer=class Writer{constructor(){_classPrivateMethodInitSpec(this,Pe),_classPrivateFieldInitSpec(this,we,void 0),_classPrivateFieldInitSpec(this,_e,void 0),_classPrivateFieldSet2(we,this,[]),_classPrivateFieldSet2(_e,this,0)}get data(){return(0,te.concat)(_classPrivateFieldGet2(we,this))}get length(){return _classPrivateFieldGet2(_e,this)}appendWriter(D){return _assertClassBrand(Pe,this,_writeData).call(this,(0,te.getBytesCopy)(D.data))}writeBytes(ye){let be=(0,te.getBytesCopy)(ye);const ve=be.length%D.WordSize;return ve&&(be=(0,te.getBytesCopy)((0,te.concat)([be,he.slice(ve)]))),_assertClassBrand(Pe,this,_writeData).call(this,be)}writeValue(D){return _assertClassBrand(Pe,this,_writeData).call(this,getValue(D))}writeUpdatableValue(){const te=_classPrivateFieldGet2(we,this).length;return _classPrivateFieldGet2(we,this).push(he),_classPrivateFieldSet2(_e,this,_classPrivateFieldGet2(_e,this)+D.WordSize),D=>{_classPrivateFieldGet2(we,this)[te]=getValue(D)}}};var Ie=new WeakMap,Re=new WeakMap,ke=new WeakMap,Oe=new WeakMap,xe=new WeakMap,Be=new WeakSet;class Reader{constructor(D,he,ye){_classPrivateMethodInitSpec(this,Be),_defineProperty(this,"allowLoose",void 0),_classPrivateFieldInitSpec(this,Ie,void 0),_classPrivateFieldInitSpec(this,Re,void 0),_classPrivateFieldInitSpec(this,ke,void 0),_classPrivateFieldInitSpec(this,Oe,void 0),_classPrivateFieldInitSpec(this,xe,void 0),(0,te.defineProperties)(this,{allowLoose:!!he}),_classPrivateFieldSet2(Ie,this,(0,te.getBytesCopy)(D)),_classPrivateFieldSet2(ke,this,0),_classPrivateFieldSet2(Oe,this,null),_classPrivateFieldSet2(xe,this,null!=ye?ye:1024),_classPrivateFieldSet2(Re,this,0)}get data(){return(0,te.hexlify)(_classPrivateFieldGet2(Ie,this))}get dataLength(){return _classPrivateFieldGet2(Ie,this).length}get consumed(){return _classPrivateFieldGet2(Re,this)}get bytes(){return new Uint8Array(_classPrivateFieldGet2(Ie,this))}subReader(D){const te=new Reader(_classPrivateFieldGet2(Ie,this).slice(_classPrivateFieldGet2(Re,this)+D),this.allowLoose,_classPrivateFieldGet2(xe,this));return _classPrivateFieldSet2(Oe,te,this),te}readBytes(D,te){let he=_assertClassBrand(Be,this,_peekBytes).call(this,0,D,!!te);return _assertClassBrand(Be,this,_incrementBytesRead).call(this,D),_classPrivateFieldSet2(Re,this,_classPrivateFieldGet2(Re,this)+he.length),he.slice(0,D)}readValue(){return(0,te.toBigInt)(this.readBytes(D.WordSize))}readIndex(){return(0,te.toNumber)(this.readBytes(D.WordSize))}}function _incrementBytesRead(D){var he;if(_classPrivateFieldGet2(Oe,this))return _assertClassBrand(Be,he=_classPrivateFieldGet2(Oe,this),_incrementBytesRead).call(he,D);_classPrivateFieldSet2(ke,this,_classPrivateFieldGet2(ke,this)+D),(0,te.assert)(_classPrivateFieldGet2(xe,this)<1||_classPrivateFieldGet2(ke,this)<=_classPrivateFieldGet2(xe,this)*this.dataLength,`compressed ABI data exceeds inflation ratio of ${_classPrivateFieldGet2(xe,this)} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:(0,te.getBytesCopy)(_classPrivateFieldGet2(Ie,this)),offset:_classPrivateFieldGet2(Re,this),length:D,info:{bytesRead:_classPrivateFieldGet2(ke,this),dataLength:this.dataLength}})}function _peekBytes(he,ye,be){let ve=Math.ceil(ye/D.WordSize)*D.WordSize;return _classPrivateFieldGet2(Re,this)+ve>_classPrivateFieldGet2(Ie,this).length&&(this.allowLoose&&be&&_classPrivateFieldGet2(Re,this)+ye<=_classPrivateFieldGet2(Ie,this).length?ve=ye:(0,te.assert)(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:(0,te.getBytesCopy)(_classPrivateFieldGet2(Ie,this)),length:_classPrivateFieldGet2(Ie,this).length,offset:_classPrivateFieldGet2(Re,this)+ve})),_classPrivateFieldGet2(Ie,this).slice(_classPrivateFieldGet2(Re,this),_classPrivateFieldGet2(Re,this)+ve)}D.Reader=Reader}(Hx)),Hx}var zx,Wx={},Vx={},Kx={},Jx={},Xx={},Qx={},Zx={},Yx={};function require_assert$1(){if(zx)return Yx;function number(D){if(!Number.isSafeInteger(D)||D<0)throw new Error(`Wrong positive integer: ${D}`)}function bool(D){if("boolean"!=typeof D)throw new Error(`Expected boolean, not ${D}`)}function bytes(D,...te){if(!(D instanceof Uint8Array))throw new Error("Expected Uint8Array");if(te.length>0&&!te.includes(D.length))throw new Error(`Expected Uint8Array of length ${te}, not of length=${D.length}`)}function hash(D){if("function"!=typeof D||"function"!=typeof D.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");number(D.outputLen),number(D.blockLen)}function exists(D,te=!0){if(D.destroyed)throw new Error("Hash instance has been destroyed");if(te&&D.finished)throw new Error("Hash#digest() has already been called")}function output(D,te){bytes(D);const he=te.outputLen;if(D.length<he)throw new Error(`digestInto() expects output buffer of length at least ${he}`)}zx=1,Object.defineProperty(Yx,"__esModule",{value:!0}),Yx.output=Yx.exists=Yx.hash=Yx.bytes=Yx.bool=Yx.number=void 0,Yx.number=number,Yx.bool=bool,Yx.bytes=bytes,Yx.hash=hash,Yx.exists=exists,Yx.output=output;const D={number:number,bool:bool,bytes:bytes,hash:hash,exists:exists,output:output};return Yx.default=D,Yx}var eN,tN,rN,nN={},aN={};function requireUtils$3(){return tN||(tN=1,function(D){
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
Object.defineProperty(D,"__esModule",{value:!0}),D.randomBytes=D.wrapXOFConstructorWithOpts=D.wrapConstructorWithOpts=D.wrapConstructor=D.checkOpts=D.Hash=D.concatBytes=D.toBytes=D.utf8ToBytes=D.asyncLoop=D.nextTick=D.hexToBytes=D.bytesToHex=D.isLE=D.rotr=D.createView=D.u32=D.u8=void 0;const te=function requireCrypto$2(){return eN||(eN=1,Object.defineProperty(aN,"__esModule",{value:!0}),aN.crypto=void 0,aN.crypto="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0),aN}(),u8a=D=>D instanceof Uint8Array;D.u8=D=>new Uint8Array(D.buffer,D.byteOffset,D.byteLength);D.u32=D=>new Uint32Array(D.buffer,D.byteOffset,Math.floor(D.byteLength/4));D.createView=D=>new DataView(D.buffer,D.byteOffset,D.byteLength);if(D.rotr=(D,te)=>D<<32-te|D>>>te,D.isLE=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0],!D.isLE)throw new Error("Non little-endian hardware is not supported");const he=Array.from({length:256},((D,te)=>te.toString(16).padStart(2,"0")));D.bytesToHex=function bytesToHex(D){if(!u8a(D))throw new Error("Uint8Array expected");let te="";for(let ye=0;ye<D.length;ye++)te+=he[D[ye]];return te},D.hexToBytes=function hexToBytes(D){if("string"!=typeof D)throw new Error("hex string expected, got "+typeof D);const te=D.length;if(te%2)throw new Error("padded hex string expected, got unpadded hex of length "+te);const he=new Uint8Array(te/2);for(let te=0;te<he.length;te++){const ye=2*te,be=D.slice(ye,ye+2),ve=Number.parseInt(be,16);if(Number.isNaN(ve)||ve<0)throw new Error("Invalid byte sequence");he[te]=ve}return he};function utf8ToBytes(D){if("string"!=typeof D)throw new Error("utf8ToBytes expected string, got "+typeof D);return new Uint8Array((new TextEncoder).encode(D))}function toBytes(D){if("string"==typeof D&&(D=utf8ToBytes(D)),!u8a(D))throw new Error("expected Uint8Array, got "+typeof D);return D}D.nextTick=async()=>{},D.asyncLoop=async function asyncLoop(te,he,ye){let be=Date.now();for(let ve=0;ve<te;ve++){ye(ve);const te=Date.now()-be;te>=0&&te<he||(await(0,D.nextTick)(),be+=te)}},D.utf8ToBytes=utf8ToBytes,D.toBytes=toBytes,D.concatBytes=function concatBytes(...D){const te=new Uint8Array(D.reduce(((D,te)=>D+te.length),0));let he=0;return D.forEach((D=>{if(!u8a(D))throw new Error("Uint8Array expected");te.set(D,he),he+=D.length})),te};D.Hash=class Hash{clone(){return this._cloneInto()}};const ye={}.toString;D.checkOpts=function checkOpts(D,te){if(void 0!==te&&"[object Object]"!==ye.call(te))throw new Error("Options should be object or undefined");return Object.assign(D,te)},D.wrapConstructor=function wrapConstructor(D){const hashC=te=>D().update(toBytes(te)).digest(),te=D();return hashC.outputLen=te.outputLen,hashC.blockLen=te.blockLen,hashC.create=()=>D(),hashC},D.wrapConstructorWithOpts=function wrapConstructorWithOpts(D){const hashC=(te,he)=>D(he).update(toBytes(te)).digest(),te=D({});return hashC.outputLen=te.outputLen,hashC.blockLen=te.blockLen,hashC.create=te=>D(te),hashC},D.wrapXOFConstructorWithOpts=function wrapXOFConstructorWithOpts(D){const hashC=(te,he)=>D(he).update(toBytes(te)).digest(),te=D({});return hashC.outputLen=te.outputLen,hashC.blockLen=te.blockLen,hashC.create=te=>D(te),hashC},D.randomBytes=function randomBytes(D=32){if(te.crypto&&"function"==typeof te.crypto.getRandomValues)return te.crypto.getRandomValues(new Uint8Array(D));throw new Error("crypto.getRandomValues must be defined")}}(nN)),nN}function requireHmac$2(){return rN||(rN=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.hmac=D.HMAC=void 0;const te=require_assert$1(),he=requireUtils$3();class HMAC extends he.Hash{constructor(D,ye){super(),this.finished=!1,this.destroyed=!1,(0,te.hash)(D);const be=(0,he.toBytes)(ye);if(this.iHash=D.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const ve=this.blockLen,we=new Uint8Array(ve);we.set(be.length>ve?D.create().update(be).digest():be);for(let D=0;D<we.length;D++)we[D]^=54;this.iHash.update(we),this.oHash=D.create();for(let D=0;D<we.length;D++)we[D]^=106;this.oHash.update(we),we.fill(0)}update(D){return(0,te.exists)(this),this.iHash.update(D),this}digestInto(D){(0,te.exists)(this),(0,te.bytes)(D,this.outputLen),this.finished=!0,this.iHash.digestInto(D),this.oHash.update(D),this.oHash.digestInto(D),this.destroy()}digest(){const D=new Uint8Array(this.oHash.outputLen);return this.digestInto(D),D}_cloneInto(D){D||(D=Object.create(Object.getPrototypeOf(this),{}));const{oHash:te,iHash:he,finished:ye,destroyed:be,blockLen:ve,outputLen:we}=this;return D.finished=ye,D.destroyed=be,D.blockLen=ve,D.outputLen=we,D.oHash=te._cloneInto(D.oHash),D.iHash=he._cloneInto(D.iHash),D}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}D.HMAC=HMAC;D.hmac=(D,te,he)=>new HMAC(D,te).update(he).digest(),D.hmac.create=(D,te)=>new HMAC(D,te)}(Zx)),Zx}var iN,sN={};function requirePbkdf2$1(){if(iN)return sN;iN=1,Object.defineProperty(sN,"__esModule",{value:!0}),sN.pbkdf2Async=sN.pbkdf2=void 0;const D=require_assert$1(),te=requireHmac$2(),he=requireUtils$3();function pbkdf2Init(ye,be,ve,we){(0,D.hash)(ye);const _e=(0,he.checkOpts)({dkLen:32,asyncTick:10},we),{c:Pe,dkLen:Ie,asyncTick:Re}=_e;if((0,D.number)(Pe),(0,D.number)(Ie),(0,D.number)(Re),Pe<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const ke=(0,he.toBytes)(be),Oe=(0,he.toBytes)(ve),xe=new Uint8Array(Ie),Be=te.hmac.create(ye,ke),Fe=Be._cloneInto().update(Oe);return{c:Pe,dkLen:Ie,asyncTick:Re,DK:xe,PRF:Be,PRFSalt:Fe}}function pbkdf2Output(D,te,he,ye,be){return D.destroy(),te.destroy(),ye&&ye.destroy(),be.fill(0),he}return sN.pbkdf2=function pbkdf2(D,te,ye,be){const{c:ve,dkLen:we,DK:_e,PRF:Pe,PRFSalt:Ie}=pbkdf2Init(D,te,ye,be);let Re;const ke=new Uint8Array(4),Oe=(0,he.createView)(ke),xe=new Uint8Array(Pe.outputLen);for(let D=1,te=0;te<we;D++,te+=Pe.outputLen){const he=_e.subarray(te,te+Pe.outputLen);Oe.setInt32(0,D,!1),(Re=Ie._cloneInto(Re)).update(ke).digestInto(xe),he.set(xe.subarray(0,he.length));for(let D=1;D<ve;D++){Pe._cloneInto(Re).update(xe).digestInto(xe);for(let D=0;D<he.length;D++)he[D]^=xe[D]}}return pbkdf2Output(Pe,Ie,_e,Re,xe)},sN.pbkdf2Async=async function pbkdf2Async(D,te,ye,be){const{c:ve,dkLen:we,asyncTick:_e,DK:Pe,PRF:Ie,PRFSalt:Re}=pbkdf2Init(D,te,ye,be);let ke;const Oe=new Uint8Array(4),xe=(0,he.createView)(Oe),Be=new Uint8Array(Ie.outputLen);for(let D=1,te=0;te<we;D++,te+=Ie.outputLen){const ye=Pe.subarray(te,te+Ie.outputLen);xe.setInt32(0,D,!1),(ke=Re._cloneInto(ke)).update(Oe).digestInto(Be),ye.set(Be.subarray(0,ye.length)),await(0,he.asyncLoop)(ve-1,_e,(()=>{Ie._cloneInto(ke).update(Be).digestInto(Be);for(let D=0;D<ye.length;D++)ye[D]^=Be[D]}))}return pbkdf2Output(Ie,Re,Pe,ke,Be)},sN}var oN,cN,dN={},uN={};function require_sha2$1(){if(oN)return uN;oN=1,Object.defineProperty(uN,"__esModule",{value:!0}),uN.SHA2=void 0;const D=require_assert$1(),te=requireUtils$3();class SHA2 extends te.Hash{constructor(D,he,ye,be){super(),this.blockLen=D,this.outputLen=he,this.padOffset=ye,this.isLE=be,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(D),this.view=(0,te.createView)(this.buffer)}update(he){(0,D.exists)(this);const{view:ye,buffer:be,blockLen:ve}=this,we=(he=(0,te.toBytes)(he)).length;for(let D=0;D<we;){const _e=Math.min(ve-this.pos,we-D);if(_e!==ve)be.set(he.subarray(D,D+_e),this.pos),this.pos+=_e,D+=_e,this.pos===ve&&(this.undefined(ye,0),this.pos=0);else{const ye=(0,te.createView)(he);for(;ve<=we-D;D+=ve)this.undefined(ye,D)}}return this.length+=he.length,this.roundClean(),this}digestInto(he){(0,D.exists)(this),(0,D.output)(he,this),this.finished=!0;const{buffer:ye,view:be,blockLen:ve,isLE:we}=this;let{pos:_e}=this;ye[_e++]=128,this.buffer.subarray(_e).fill(0),this.padOffset>ve-_e&&(this.undefined(be,0),_e=0);for(let D=_e;D<ve;D++)ye[D]=0;!function setBigUint64(D,te,he,ye){if("function"==typeof D.setBigUint64)return D.setBigUint64(te,he,ye);const be=BigInt(32),ve=BigInt(4294967295),we=Number(he>>be&ve),_e=Number(he&ve),Pe=ye?4:0,Ie=ye?0:4;D.setUint32(te+Pe,we,ye),D.setUint32(te+Ie,_e,ye)}(be,ve-8,BigInt(8*this.length),we),this.undefined(be,0);const Pe=(0,te.createView)(he),Ie=this.outputLen;if(Ie%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const Re=Ie/4,ke=this.get();if(Re>ke.length)throw new Error("_sha2: outputLen bigger than state");for(let D=0;D<Re;D++)Pe.setUint32(4*D,ke[D],we)}digest(){const{buffer:D,outputLen:te}=this;this.digestInto(D);const he=D.slice(0,te);return this.destroy(),he}_cloneInto(D){D||(D=new this.constructor),D.set(...this.get());const{blockLen:te,buffer:he,length:ye,finished:be,destroyed:ve,pos:we}=this;return D.length=ye,D.pos=we,D.finished=be,D.destroyed=ve,ye%te&&D.buffer.set(he),D}}return uN.SHA2=SHA2,uN}function requireSha256$1(){if(cN)return dN;cN=1,Object.defineProperty(dN,"__esModule",{value:!0}),dN.sha224=dN.sha256=void 0;const D=require_sha2$1(),te=requireUtils$3(),Chi=(D,te,he)=>D&te^~D&he,Maj=(D,te,he)=>D&te^D&he^te&he,he=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]),ye=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),be=new Uint32Array(64);class SHA256 extends D.SHA2{constructor(){super(64,32,8,!1),this.A=0|ye[0],this.B=0|ye[1],this.C=0|ye[2],this.D=0|ye[3],this.E=0|ye[4],this.F=0|ye[5],this.G=0|ye[6],this.H=0|ye[7]}get(){const{A:D,B:te,C:he,D:ye,E:be,F:ve,G:we,H:_e}=this;return[D,te,he,ye,be,ve,we,_e]}set(D,te,he,ye,be,ve,we,_e){this.A=0|D,this.B=0|te,this.C=0|he,this.D=0|ye,this.E=0|be,this.F=0|ve,this.G=0|we,this.H=0|_e}undefined(D,ye){for(let te=0;te<16;te++,ye+=4)be[te]=D.getUint32(ye,!1);for(let D=16;D<64;D++){const he=be[D-15],ye=be[D-2],ve=(0,te.rotr)(he,7)^(0,te.rotr)(he,18)^he>>>3,we=(0,te.rotr)(ye,17)^(0,te.rotr)(ye,19)^ye>>>10;be[D]=we+be[D-7]+ve+be[D-16]|0}let{A:ve,B:we,C:_e,D:Pe,E:Ie,F:Re,G:ke,H:Oe}=this;for(let D=0;D<64;D++){const ye=Oe+((0,te.rotr)(Ie,6)^(0,te.rotr)(Ie,11)^(0,te.rotr)(Ie,25))+Chi(Ie,Re,ke)+he[D]+be[D]|0,xe=((0,te.rotr)(ve,2)^(0,te.rotr)(ve,13)^(0,te.rotr)(ve,22))+Maj(ve,we,_e)|0;Oe=ke,ke=Re,Re=Ie,Ie=Pe+ye|0,Pe=_e,_e=we,we=ve,ve=ye+xe|0}ve=ve+this.A|0,we=we+this.B|0,_e=_e+this.C|0,Pe=Pe+this.D|0,Ie=Ie+this.E|0,Re=Re+this.F|0,ke=ke+this.G|0,Oe=Oe+this.H|0,this.set(ve,we,_e,Pe,Ie,Re,ke,Oe)}roundClean(){be.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class SHA224 extends SHA256{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}return dN.sha256=(0,te.wrapConstructor)((()=>new SHA256)),dN.sha224=(0,te.wrapConstructor)((()=>new SHA224)),dN}var fN,lN,pN,hN,yN={},mN={};function require_u64(){if(fN)return mN;fN=1,Object.defineProperty(mN,"__esModule",{value:!0}),mN.add5L=mN.add5H=mN.add4H=mN.add4L=mN.add3H=mN.add3L=mN.add=mN.rotlBL=mN.rotlBH=mN.rotlSL=mN.rotlSH=mN.rotr32L=mN.rotr32H=mN.rotrBL=mN.rotrBH=mN.rotrSL=mN.rotrSH=mN.shrSL=mN.shrSH=mN.toBig=mN.split=mN.fromBig=void 0;const D=BigInt(2**32-1),te=BigInt(32);function fromBig(he,ye=!1){return ye?{h:Number(he&D),l:Number(he>>te&D)}:{h:0|Number(he>>te&D),l:0|Number(he&D)}}function split(D,te=!1){let he=new Uint32Array(D.length),ye=new Uint32Array(D.length);for(let be=0;be<D.length;be++){const{h:ve,l:we}=fromBig(D[be],te);[he[be],ye[be]]=[ve,we]}return[he,ye]}mN.fromBig=fromBig,mN.split=split;const toBig=(D,he)=>BigInt(D>>>0)<<te|BigInt(he>>>0);mN.toBig=toBig;const shrSH=(D,te,he)=>D>>>he;mN.shrSH=shrSH;const shrSL=(D,te,he)=>D<<32-he|te>>>he;mN.shrSL=shrSL;const rotrSH=(D,te,he)=>D>>>he|te<<32-he;mN.rotrSH=rotrSH;const rotrSL=(D,te,he)=>D<<32-he|te>>>he;mN.rotrSL=rotrSL;const rotrBH=(D,te,he)=>D<<64-he|te>>>he-32;mN.rotrBH=rotrBH;const rotrBL=(D,te,he)=>D>>>he-32|te<<64-he;mN.rotrBL=rotrBL;const rotr32H=(D,te)=>te;mN.rotr32H=rotr32H;const rotr32L=(D,te)=>D;mN.rotr32L=rotr32L;const rotlSH=(D,te,he)=>D<<he|te>>>32-he;mN.rotlSH=rotlSH;const rotlSL=(D,te,he)=>te<<he|D>>>32-he;mN.rotlSL=rotlSL;const rotlBH=(D,te,he)=>te<<he-32|D>>>64-he;mN.rotlBH=rotlBH;const rotlBL=(D,te,he)=>D<<he-32|te>>>64-he;function add(D,te,he,ye){const be=(te>>>0)+(ye>>>0);return{h:D+he+(be/2**32|0)|0,l:0|be}}mN.rotlBL=rotlBL,mN.add=add;const add3L=(D,te,he)=>(D>>>0)+(te>>>0)+(he>>>0);mN.add3L=add3L;const add3H=(D,te,he,ye)=>te+he+ye+(D/2**32|0)|0;mN.add3H=add3H;const add4L=(D,te,he,ye)=>(D>>>0)+(te>>>0)+(he>>>0)+(ye>>>0);mN.add4L=add4L;const add4H=(D,te,he,ye,be)=>te+he+ye+be+(D/2**32|0)|0;mN.add4H=add4H;const add5L=(D,te,he,ye,be)=>(D>>>0)+(te>>>0)+(he>>>0)+(ye>>>0)+(be>>>0);mN.add5L=add5L;const add5H=(D,te,he,ye,be,ve)=>te+he+ye+be+ve+(D/2**32|0)|0;mN.add5H=add5H;const he={fromBig:fromBig,split:split,toBig:toBig,shrSH:shrSH,shrSL:shrSL,rotrSH:rotrSH,rotrSL:rotrSL,rotrBH:rotrBH,rotrBL:rotrBL,rotr32H:rotr32H,rotr32L:rotr32L,rotlSH:rotlSH,rotlSL:rotlSL,rotlBH:rotlBH,rotlBL:rotlBL,add:add,add3L:add3L,add3H:add3H,add4L:add4L,add4H:add4H,add5H:add5H,add5L:add5L};return mN.default=he,mN}function requireCryptoBrowser(){if(pN)return Qx;pN=1,Object.defineProperty(Qx,"__esModule",{value:!0}),Qx.randomBytes=Qx.pbkdf2Sync=Qx.createHmac=Qx.createHash=void 0;const D=requireHmac$2(),te=requirePbkdf2$1(),he=requireSha256$1(),ye=function requireSha512(){if(lN)return yN;lN=1,Object.defineProperty(yN,"__esModule",{value:!0}),yN.sha384=yN.sha512_256=yN.sha512_224=yN.sha512=yN.SHA512=void 0;const D=require_sha2$1(),te=require_u64(),he=requireUtils$3(),[ye,be]=(()=>te.default.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((D=>BigInt(D)))))(),ve=new Uint32Array(80),we=new Uint32Array(80);class SHA512 extends D.SHA2{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:D,Al:te,Bh:he,Bl:ye,Ch:be,Cl:ve,Dh:we,Dl:_e,Eh:Pe,El:Ie,Fh:Re,Fl:ke,Gh:Oe,Gl:xe,Hh:Be,Hl:Fe}=this;return[D,te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe]}set(D,te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe){this.Ah=0|D,this.Al=0|te,this.Bh=0|he,this.Bl=0|ye,this.Ch=0|be,this.Cl=0|ve,this.Dh=0|we,this.Dl=0|_e,this.Eh=0|Pe,this.El=0|Ie,this.Fh=0|Re,this.Fl=0|ke,this.Gh=0|Oe,this.Gl=0|xe,this.Hh=0|Be,this.Hl=0|Fe}undefined(D,he){for(let te=0;te<16;te++,he+=4)ve[te]=D.getUint32(he),we[te]=D.getUint32(he+=4);for(let D=16;D<80;D++){const he=0|ve[D-15],ye=0|we[D-15],be=te.default.rotrSH(he,ye,1)^te.default.rotrSH(he,ye,8)^te.default.shrSH(he,ye,7),_e=te.default.rotrSL(he,ye,1)^te.default.rotrSL(he,ye,8)^te.default.shrSL(he,ye,7),Pe=0|ve[D-2],Ie=0|we[D-2],Re=te.default.rotrSH(Pe,Ie,19)^te.default.rotrBH(Pe,Ie,61)^te.default.shrSH(Pe,Ie,6),ke=te.default.rotrSL(Pe,Ie,19)^te.default.rotrBL(Pe,Ie,61)^te.default.shrSL(Pe,Ie,6),Oe=te.default.add4L(_e,ke,we[D-7],we[D-16]),xe=te.default.add4H(Oe,be,Re,ve[D-7],ve[D-16]);ve[D]=0|xe,we[D]=0|Oe}let{Ah:_e,Al:Pe,Bh:Ie,Bl:Re,Ch:ke,Cl:Oe,Dh:xe,Dl:Be,Eh:Fe,El:De,Fh:Le,Fl:Ue,Gh:qe,Gl:je,Hh:Je,Hl:et}=this;for(let D=0;D<80;D++){const he=te.default.rotrSH(Fe,De,14)^te.default.rotrSH(Fe,De,18)^te.default.rotrBH(Fe,De,41),tt=te.default.rotrSL(Fe,De,14)^te.default.rotrSL(Fe,De,18)^te.default.rotrBL(Fe,De,41),rt=Fe&Le^~Fe&qe,nt=De&Ue^~De&je,at=te.default.add5L(et,tt,nt,be[D],we[D]),ut=te.default.add5H(at,Je,he,rt,ye[D],ve[D]),ht=0|at,yt=te.default.rotrSH(_e,Pe,28)^te.default.rotrBH(_e,Pe,34)^te.default.rotrBH(_e,Pe,39),mt=te.default.rotrSL(_e,Pe,28)^te.default.rotrBL(_e,Pe,34)^te.default.rotrBL(_e,Pe,39),bt=_e&Ie^_e&ke^Ie&ke,wt=Pe&Re^Pe&Oe^Re&Oe;Je=0|qe,et=0|je,qe=0|Le,je=0|Ue,Le=0|Fe,Ue=0|De,({h:Fe,l:De}=te.default.add(0|xe,0|Be,0|ut,0|ht)),xe=0|ke,Be=0|Oe,ke=0|Ie,Oe=0|Re,Ie=0|_e,Re=0|Pe;const _t=te.default.add3L(ht,mt,wt);_e=te.default.add3H(_t,ut,yt,bt),Pe=0|_t}({h:_e,l:Pe}=te.default.add(0|this.Ah,0|this.Al,0|_e,0|Pe)),({h:Ie,l:Re}=te.default.add(0|this.Bh,0|this.Bl,0|Ie,0|Re)),({h:ke,l:Oe}=te.default.add(0|this.Ch,0|this.Cl,0|ke,0|Oe)),({h:xe,l:Be}=te.default.add(0|this.Dh,0|this.Dl,0|xe,0|Be)),({h:Fe,l:De}=te.default.add(0|this.Eh,0|this.El,0|Fe,0|De)),({h:Le,l:Ue}=te.default.add(0|this.Fh,0|this.Fl,0|Le,0|Ue)),({h:qe,l:je}=te.default.add(0|this.Gh,0|this.Gl,0|qe,0|je)),({h:Je,l:et}=te.default.add(0|this.Hh,0|this.Hl,0|Je,0|et)),this.set(_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je,et)}roundClean(){ve.fill(0),we.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}yN.SHA512=SHA512;class SHA512_224 extends SHA512{constructor(){super(),this.Ah=-1942145080,this.Al=424955298,this.Bh=1944164710,this.Bl=-1982016298,this.Ch=502970286,this.Cl=855612546,this.Dh=1738396948,this.Dl=1479516111,this.Eh=258812777,this.El=2077511080,this.Fh=2011393907,this.Fl=79989058,this.Gh=1067287976,this.Gl=1780299464,this.Hh=286451373,this.Hl=-1848208735,this.outputLen=28}}class SHA512_256 extends SHA512{constructor(){super(),this.Ah=573645204,this.Al=-64227540,this.Bh=-1621794909,this.Bl=-934517566,this.Ch=596883563,this.Cl=1867755857,this.Dh=-1774684391,this.Dl=1497426621,this.Eh=-1775747358,this.El=-1467023389,this.Fh=-1101128155,this.Fl=1401305490,this.Gh=721525244,this.Gl=746961066,this.Hh=246885852,this.Hl=-2117784414,this.outputLen=32}}class SHA384 extends SHA512{constructor(){super(),this.Ah=-876896931,this.Al=-1056596264,this.Bh=1654270250,this.Bl=914150663,this.Ch=-1856437926,this.Cl=812702999,this.Dh=355462360,this.Dl=-150054599,this.Eh=1731405415,this.El=-4191439,this.Fh=-1900787065,this.Fl=1750603025,this.Gh=-619958771,this.Gl=1694076839,this.Hh=1203062813,this.Hl=-1090891868,this.outputLen=48}}return yN.sha512=(0,he.wrapConstructor)((()=>new SHA512)),yN.sha512_224=(0,he.wrapConstructor)((()=>new SHA512_224)),yN.sha512_256=(0,he.wrapConstructor)((()=>new SHA512_256)),yN.sha384=(0,he.wrapConstructor)((()=>new SHA384)),yN}(),be=requireUtils$4();const ve=function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==rn)return rn;throw new Error("unable to locate global object")}(),we=ve.crypto||ve.msCrypto;return Qx.createHash=function createHash(D){switch(D){case"sha256":return he.sha256.create();case"sha512":return ye.sha512.create()}(0,be.assertArgument)(!1,"invalid hashing algorithm name","algorithm",D)},Qx.createHmac=function createHmac(te,ve){const we={sha256:he.sha256,sha512:ye.sha512}[te];return(0,be.assertArgument)(null!=we,"invalid hmac algorithm","algorithm",te),D.hmac.create(we,ve)},Qx.pbkdf2Sync=function pbkdf2Sync(D,ve,we,_e,Pe){const Ie={sha256:he.sha256,sha512:ye.sha512}[Pe];return(0,be.assertArgument)(null!=Ie,"invalid pbkdf2 algorithm","algorithm",Pe),(0,te.pbkdf2)(Ie,D,ve,{c:we,dkLen:_e})},Qx.randomBytes=function randomBytes(D){(0,be.assert)(null!=we,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),(0,be.assertArgument)(Number.isInteger(D)&&D>0&&D<=1024,"invalid length","length",D);const te=new Uint8Array(D);return we.getRandomValues(te),te},Qx}var bN,gN,vN={},wN={};function requireKeccak(){if(gN)return vN;gN=1,Object.defineProperty(vN,"__esModule",{value:!0}),vN.keccak256=void 0;const D=function requireSha3(){if(bN)return wN;bN=1,Object.defineProperty(wN,"__esModule",{value:!0}),wN.shake256=wN.shake128=wN.keccak_512=wN.keccak_384=wN.keccak_256=wN.keccak_224=wN.sha3_512=wN.sha3_384=wN.sha3_256=wN.sha3_224=wN.Keccak=wN.keccakP=void 0;const D=require_assert$1(),te=require_u64(),he=requireUtils$3(),[ye,be,ve]=[[],[],[]],we=BigInt(0),_e=BigInt(1),Pe=BigInt(2),Ie=BigInt(7),Re=BigInt(256),ke=BigInt(113);for(let D=0,te=_e,he=1,Oe=0;D<24;D++){[he,Oe]=[Oe,(2*he+3*Oe)%5],ye.push(2*(5*Oe+he)),be.push((D+1)*(D+2)/2%64);let xe=we;for(let D=0;D<7;D++)te=(te<<_e^(te>>Ie)*ke)%Re,te&Pe&&(xe^=_e<<(_e<<BigInt(D))-_e);ve.push(xe)}const[Oe,xe]=(0,te.split)(ve,!0),rotlH=(D,he,ye)=>ye>32?(0,te.rotlBH)(D,he,ye):(0,te.rotlSH)(D,he,ye),rotlL=(D,he,ye)=>ye>32?(0,te.rotlBL)(D,he,ye):(0,te.rotlSL)(D,he,ye);function keccakP(D,te=24){const he=new Uint32Array(10);for(let ve=24-te;ve<24;ve++){for(let te=0;te<10;te++)he[te]=D[te]^D[te+10]^D[te+20]^D[te+30]^D[te+40];for(let te=0;te<10;te+=2){const ye=(te+8)%10,be=(te+2)%10,ve=he[be],we=he[be+1],_e=rotlH(ve,we,1)^he[ye],Pe=rotlL(ve,we,1)^he[ye+1];for(let he=0;he<50;he+=10)D[te+he]^=_e,D[te+he+1]^=Pe}let te=D[2],we=D[3];for(let he=0;he<24;he++){const ve=be[he],_e=rotlH(te,we,ve),Pe=rotlL(te,we,ve),Ie=ye[he];te=D[Ie],we=D[Ie+1],D[Ie]=_e,D[Ie+1]=Pe}for(let te=0;te<50;te+=10){for(let ye=0;ye<10;ye++)he[ye]=D[te+ye];for(let ye=0;ye<10;ye++)D[te+ye]^=~he[(ye+2)%10]&he[(ye+4)%10]}D[0]^=Oe[ve],D[1]^=xe[ve]}he.fill(0)}wN.keccakP=keccakP;class Keccak extends he.Hash{constructor(te,ye,be,ve=!1,we=24){if(super(),this.blockLen=te,this.suffix=ye,this.outputLen=be,this.enableXOF=ve,this.rounds=we,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,(0,D.number)(be),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=(0,he.u32)(this.state)}keccak(){keccakP(this.state32,this.rounds),this.posOut=0,this.pos=0}update(te){(0,D.exists)(this);const{blockLen:ye,state:be}=this,ve=(te=(0,he.toBytes)(te)).length;for(let D=0;D<ve;){const he=Math.min(ye-this.pos,ve-D);for(let ye=0;ye<he;ye++)be[this.pos++]^=te[D++];this.pos===ye&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:D,suffix:te,pos:he,blockLen:ye}=this;D[he]^=te,0!=(128&te)&&he===ye-1&&this.keccak(),D[ye-1]^=128,this.keccak()}writeInto(te){(0,D.exists)(this,!1),(0,D.bytes)(te),this.finish();const he=this.state,{blockLen:ye}=this;for(let D=0,be=te.length;D<be;){this.posOut>=ye&&this.keccak();const ve=Math.min(ye-this.posOut,be-D);te.set(he.subarray(this.posOut,this.posOut+ve),D),this.posOut+=ve,D+=ve}return te}xofInto(D){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(D)}xof(te){return(0,D.number)(te),this.xofInto(new Uint8Array(te))}digestInto(te){if((0,D.output)(te,this),this.finished)throw new Error("digest() was already called");return this.writeInto(te),this.destroy(),te}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(D){const{blockLen:te,suffix:he,outputLen:ye,rounds:be,enableXOF:ve}=this;return D||(D=new Keccak(te,he,ye,ve,be)),D.state32.set(this.state32),D.pos=this.pos,D.posOut=this.posOut,D.finished=this.finished,D.rounds=be,D.suffix=he,D.outputLen=ye,D.enableXOF=ve,D.destroyed=this.destroyed,D}}wN.Keccak=Keccak;const gen=(D,te,ye)=>(0,he.wrapConstructor)((()=>new Keccak(te,D,ye)));wN.sha3_224=gen(6,144,28),wN.sha3_256=gen(6,136,32),wN.sha3_384=gen(6,104,48),wN.sha3_512=gen(6,72,64),wN.keccak_224=gen(1,144,28),wN.keccak_256=gen(1,136,32),wN.keccak_384=gen(1,104,48),wN.keccak_512=gen(1,72,64);const genShake=(D,te,ye)=>(0,he.wrapXOFConstructorWithOpts)(((he={})=>new Keccak(te,D,void 0===he.dkLen?ye:he.dkLen,!0)));return wN.shake128=genShake(31,168,16),wN.shake256=genShake(31,136,32),wN}(),te=requireUtils$4();let he=!1;const _keccak256=function(te){return(0,D.keccak_256)(te)};let ye=_keccak256;function keccak256(D){const he=(0,te.getBytes)(D,"data");return(0,te.hexlify)(ye(he))}return vN.keccak256=keccak256,keccak256._=_keccak256,keccak256.lock=function(){he=!0},keccak256.register=function(D){if(he)throw new TypeError("keccak256 is locked");ye=D},Object.freeze(keccak256),vN}var _N,TN,AN={},EN={};function requireRipemd160$1(){if(_N)return EN;_N=1,Object.defineProperty(EN,"__esModule",{value:!0}),EN.ripemd160=EN.RIPEMD160=void 0;const D=require_sha2$1(),te=requireUtils$3(),he=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),ye=Uint8Array.from({length:16},((D,te)=>te)),be=ye.map((D=>(9*D+5)%16));let ve=[ye],we=[be];for(let D=0;D<4;D++)for(let te of[ve,we])te.push(te[D].map((D=>he[D])));const _e=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((D=>new Uint8Array(D))),Pe=ve.map(((D,te)=>D.map((D=>_e[te][D])))),Ie=we.map(((D,te)=>D.map((D=>_e[te][D])))),Re=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),ke=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),rotl=(D,te)=>D<<te|D>>>32-te;function f(D,te,he,ye){return 0===D?te^he^ye:1===D?te&he|~te&ye:2===D?(te|~he)^ye:3===D?te&ye|he&~ye:te^(he|~ye)}const Oe=new Uint32Array(16);class RIPEMD160 extends D.SHA2{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:D,h1:te,h2:he,h3:ye,h4:be}=this;return[D,te,he,ye,be]}set(D,te,he,ye,be){this.h0=0|D,this.h1=0|te,this.h2=0|he,this.h3=0|ye,this.h4=0|be}undefined(D,te){for(let he=0;he<16;he++,te+=4)Oe[he]=D.getUint32(te,!0);let he=0|this.h0,ye=he,be=0|this.h1,_e=be,xe=0|this.h2,Be=xe,Fe=0|this.h3,De=Fe,Le=0|this.h4,Ue=Le;for(let D=0;D<5;D++){const te=4-D,qe=Re[D],je=ke[D],Je=ve[D],et=we[D],tt=Pe[D],rt=Ie[D];for(let te=0;te<16;te++){const ye=rotl(he+f(D,be,xe,Fe)+Oe[Je[te]]+qe,tt[te])+Le|0;he=Le,Le=Fe,Fe=0|rotl(xe,10),xe=be,be=ye}for(let D=0;D<16;D++){const he=rotl(ye+f(te,_e,Be,De)+Oe[et[D]]+je,rt[D])+Ue|0;ye=Ue,Ue=De,De=0|rotl(Be,10),Be=_e,_e=he}}this.set(this.h1+xe+De|0,this.h2+Fe+Ue|0,this.h3+Le+ye|0,this.h4+he+_e|0,this.h0+be+Be|0)}roundClean(){Oe.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}return EN.RIPEMD160=RIPEMD160,EN.ripemd160=(0,te.wrapConstructor)((()=>new RIPEMD160)),EN}var PN,SN={};var CN,IN={};var RN,kN,ON={},xN={};function requireScrypt$1(){if(RN)return xN;RN=1,Object.defineProperty(xN,"__esModule",{value:!0}),xN.scryptAsync=xN.scrypt=void 0;const D=require_assert$1(),te=requireSha256$1(),he=requirePbkdf2$1(),ye=requireUtils$3(),rotl=(D,te)=>D<<te|D>>>32-te;function XorAndSalsa(D,te,he,ye,be,ve){let we=D[te++]^he[ye++],_e=D[te++]^he[ye++],Pe=D[te++]^he[ye++],Ie=D[te++]^he[ye++],Re=D[te++]^he[ye++],ke=D[te++]^he[ye++],Oe=D[te++]^he[ye++],xe=D[te++]^he[ye++],Be=D[te++]^he[ye++],Fe=D[te++]^he[ye++],De=D[te++]^he[ye++],Le=D[te++]^he[ye++],Ue=D[te++]^he[ye++],qe=D[te++]^he[ye++],je=D[te++]^he[ye++],Je=D[te++]^he[ye++],et=we,tt=_e,rt=Pe,nt=Ie,at=Re,ut=ke,ht=Oe,yt=xe,mt=Be,bt=Fe,wt=De,_t=Le,Tt=Ue,At=qe,Et=je,Pt=Je;for(let D=0;D<8;D+=2)at^=rotl(et+Tt|0,7),mt^=rotl(at+et|0,9),Tt^=rotl(mt+at|0,13),et^=rotl(Tt+mt|0,18),bt^=rotl(ut+tt|0,7),At^=rotl(bt+ut|0,9),tt^=rotl(At+bt|0,13),ut^=rotl(tt+At|0,18),Et^=rotl(wt+ht|0,7),rt^=rotl(Et+wt|0,9),ht^=rotl(rt+Et|0,13),wt^=rotl(ht+rt|0,18),nt^=rotl(Pt+_t|0,7),yt^=rotl(nt+Pt|0,9),_t^=rotl(yt+nt|0,13),Pt^=rotl(_t+yt|0,18),tt^=rotl(et+nt|0,7),rt^=rotl(tt+et|0,9),nt^=rotl(rt+tt|0,13),et^=rotl(nt+rt|0,18),ht^=rotl(ut+at|0,7),yt^=rotl(ht+ut|0,9),at^=rotl(yt+ht|0,13),ut^=rotl(at+yt|0,18),_t^=rotl(wt+bt|0,7),mt^=rotl(_t+wt|0,9),bt^=rotl(mt+_t|0,13),wt^=rotl(bt+mt|0,18),Tt^=rotl(Pt+Et|0,7),At^=rotl(Tt+Pt|0,9),Et^=rotl(At+Tt|0,13),Pt^=rotl(Et+At|0,18);be[ve++]=we+et|0,be[ve++]=_e+tt|0,be[ve++]=Pe+rt|0,be[ve++]=Ie+nt|0,be[ve++]=Re+at|0,be[ve++]=ke+ut|0,be[ve++]=Oe+ht|0,be[ve++]=xe+yt|0,be[ve++]=Be+mt|0,be[ve++]=Fe+bt|0,be[ve++]=De+wt|0,be[ve++]=Le+_t|0,be[ve++]=Ue+Tt|0,be[ve++]=qe+At|0,be[ve++]=je+Et|0,be[ve++]=Je+Pt|0}function BlockMix(D,te,he,ye,be){let ve=ye+0,we=ye+16*be;for(let ye=0;ye<16;ye++)he[we+ye]=D[te+16*(2*be-1)+ye];for(let ye=0;ye<be;ye++,ve+=16,te+=16)XorAndSalsa(he,we,D,te,he,ve),ye>0&&(we+=16),XorAndSalsa(he,ve,D,te+=16,he,we)}function scryptInit(be,ve,we){const _e=(0,ye.checkOpts)({dkLen:32,asyncTick:10,maxmem:1073742848},we),{N:Pe,r:Ie,p:Re,dkLen:ke,asyncTick:Oe,maxmem:xe,onProgress:Be}=_e;if((0,D.number)(Pe),(0,D.number)(Ie),(0,D.number)(Re),(0,D.number)(ke),(0,D.number)(Oe),(0,D.number)(xe),void 0!==Be&&"function"!=typeof Be)throw new Error("progressCb should be function");const Fe=128*Ie,De=Fe/4;if(Pe<=1||0!=(Pe&Pe-1)||Pe>=2**(Fe/8)||Pe>2**32)throw new Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(Re<0||Re>137438953440/Fe)throw new Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(ke<0||ke>137438953440)throw new Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");const Le=Fe*(Pe+Re);if(Le>xe)throw new Error(`Scrypt: parameters too large, ${Le} (128 * r * (N + p)) > ${xe} (maxmem)`);const Ue=(0,he.pbkdf2)(te.sha256,be,ve,{c:1,dkLen:Fe*Re}),qe=(0,ye.u32)(Ue),je=(0,ye.u32)(new Uint8Array(Fe*Pe)),Je=(0,ye.u32)(new Uint8Array(Fe));let blockMixCb=()=>{};if(Be){const D=2*Pe*Re,te=Math.max(Math.floor(D/1e4),1);let he=0;blockMixCb=()=>{he++,!Be||he%te&&he!==D||Be(he/D)}}return{N:Pe,r:Ie,p:Re,dkLen:ke,blockSize32:De,V:je,B32:qe,B:Ue,tmp:Je,blockMixCb:blockMixCb,asyncTick:Oe}}function scryptOutput(D,ye,be,ve,we){const _e=(0,he.pbkdf2)(te.sha256,D,be,{c:1,dkLen:ye});return be.fill(0),ve.fill(0),we.fill(0),_e}return xN.scrypt=function scrypt$1(D,te,he){const{N:ye,r:be,p:ve,dkLen:we,blockSize32:_e,V:Pe,B32:Ie,B:Re,tmp:ke,blockMixCb:Oe}=scryptInit(D,te,he);for(let D=0;D<ve;D++){const te=_e*D;for(let D=0;D<_e;D++)Pe[D]=Ie[te+D];for(let D=0,te=0;D<ye-1;D++)BlockMix(Pe,te,Pe,te+=_e,be),Oe();BlockMix(Pe,(ye-1)*_e,Ie,te,be),Oe();for(let D=0;D<ye;D++){const D=Ie[te+_e-16]%ye;for(let he=0;he<_e;he++)ke[he]=Ie[te+he]^Pe[D*_e+he];BlockMix(ke,0,Ie,te,be),Oe()}}return scryptOutput(D,we,Re,Pe,ke)},xN.scryptAsync=async function scryptAsync(D,te,he){const{N:be,r:ve,p:we,dkLen:_e,blockSize32:Pe,V:Ie,B32:Re,B:ke,tmp:Oe,blockMixCb:xe,asyncTick:Be}=scryptInit(D,te,he);for(let D=0;D<we;D++){const te=Pe*D;for(let D=0;D<Pe;D++)Ie[D]=Re[te+D];let he=0;await(0,ye.asyncLoop)(be-1,Be,(()=>{BlockMix(Ie,he,Ie,he+=Pe,ve),xe()})),BlockMix(Ie,(be-1)*Pe,Re,te,ve),xe(),await(0,ye.asyncLoop)(be,Be,(()=>{const D=Re[te+Pe-16]%be;for(let he=0;he<Pe;he++)Oe[he]=Re[te+he]^Ie[D*Pe+he];BlockMix(Oe,0,Re,te,ve),xe()}))}return scryptOutput(D,_e,ke,Ie,Oe)},xN}var NN,MN={};var FN,DN={},LN={},UN={},$N={},qN={};function require_assert(){if(FN)return qN;function number(D){if(!Number.isSafeInteger(D)||D<0)throw new Error(`Wrong positive integer: ${D}`)}function bool(D){if("boolean"!=typeof D)throw new Error(`Expected boolean, not ${D}`)}function bytes(D,...te){if(!(D instanceof Uint8Array))throw new Error("Expected Uint8Array");if(te.length>0&&!te.includes(D.length))throw new Error(`Expected Uint8Array of length ${te}, not of length=${D.length}`)}function hash(D){if("function"!=typeof D||"function"!=typeof D.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");number(D.outputLen),number(D.blockLen)}function exists(D,te=!0){if(D.destroyed)throw new Error("Hash instance has been destroyed");if(te&&D.finished)throw new Error("Hash#digest() has already been called")}function output(D,te){bytes(D);const he=te.outputLen;if(D.length<he)throw new Error(`digestInto() expects output buffer of length at least ${he}`)}FN=1,Object.defineProperty(qN,"__esModule",{value:!0}),qN.output=qN.exists=qN.hash=qN.bytes=qN.bool=qN.number=void 0,qN.number=number,qN.bool=bool,qN.bytes=bytes,qN.hash=hash,qN.exists=exists,qN.output=output;const D={number:number,bool:bool,bytes:bytes,hash:hash,exists:exists,output:output};return qN.default=D,qN}var GN,jN,HN,zN,WN={},VN={};function requireUtils$2(){return jN||(jN=1,function(D){
/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */
Object.defineProperty(D,"__esModule",{value:!0}),D.randomBytes=D.wrapXOFConstructorWithOpts=D.wrapConstructorWithOpts=D.wrapConstructor=D.checkOpts=D.Hash=D.concatBytes=D.toBytes=D.utf8ToBytes=D.asyncLoop=D.nextTick=D.hexToBytes=D.bytesToHex=D.isLE=D.rotr=D.createView=D.u32=D.u8=void 0;const te=function requireCrypto$1(){return GN||(GN=1,Object.defineProperty(VN,"__esModule",{value:!0}),VN.crypto=void 0,VN.crypto="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0),VN}(),u8a=D=>D instanceof Uint8Array;D.u8=D=>new Uint8Array(D.buffer,D.byteOffset,D.byteLength);D.u32=D=>new Uint32Array(D.buffer,D.byteOffset,Math.floor(D.byteLength/4));D.createView=D=>new DataView(D.buffer,D.byteOffset,D.byteLength);if(D.rotr=(D,te)=>D<<32-te|D>>>te,D.isLE=68===new Uint8Array(new Uint32Array([287454020]).buffer)[0],!D.isLE)throw new Error("Non little-endian hardware is not supported");const he=Array.from({length:256},((D,te)=>te.toString(16).padStart(2,"0")));D.bytesToHex=function bytesToHex(D){if(!u8a(D))throw new Error("Uint8Array expected");let te="";for(let ye=0;ye<D.length;ye++)te+=he[D[ye]];return te},D.hexToBytes=function hexToBytes(D){if("string"!=typeof D)throw new Error("hex string expected, got "+typeof D);const te=D.length;if(te%2)throw new Error("padded hex string expected, got unpadded hex of length "+te);const he=new Uint8Array(te/2);for(let te=0;te<he.length;te++){const ye=2*te,be=D.slice(ye,ye+2),ve=Number.parseInt(be,16);if(Number.isNaN(ve)||ve<0)throw new Error("Invalid byte sequence");he[te]=ve}return he};function utf8ToBytes(D){if("string"!=typeof D)throw new Error("utf8ToBytes expected string, got "+typeof D);return new Uint8Array((new TextEncoder).encode(D))}function toBytes(D){if("string"==typeof D&&(D=utf8ToBytes(D)),!u8a(D))throw new Error("expected Uint8Array, got "+typeof D);return D}D.nextTick=async()=>{},D.asyncLoop=async function asyncLoop(te,he,ye){let be=Date.now();for(let ve=0;ve<te;ve++){ye(ve);const te=Date.now()-be;te>=0&&te<he||(await(0,D.nextTick)(),be+=te)}},D.utf8ToBytes=utf8ToBytes,D.toBytes=toBytes,D.concatBytes=function concatBytes(...D){const te=new Uint8Array(D.reduce(((D,te)=>D+te.length),0));let he=0;return D.forEach((D=>{if(!u8a(D))throw new Error("Uint8Array expected");te.set(D,he),he+=D.length})),te};D.Hash=class Hash{clone(){return this._cloneInto()}};const ye={}.toString;D.checkOpts=function checkOpts(D,te){if(void 0!==te&&"[object Object]"!==ye.call(te))throw new Error("Options should be object or undefined");return Object.assign(D,te)},D.wrapConstructor=function wrapConstructor(D){const hashC=te=>D().update(toBytes(te)).digest(),te=D();return hashC.outputLen=te.outputLen,hashC.blockLen=te.blockLen,hashC.create=()=>D(),hashC},D.wrapConstructorWithOpts=function wrapConstructorWithOpts(D){const hashC=(te,he)=>D(he).update(toBytes(te)).digest(),te=D({});return hashC.outputLen=te.outputLen,hashC.blockLen=te.blockLen,hashC.create=te=>D(te),hashC},D.wrapXOFConstructorWithOpts=function wrapXOFConstructorWithOpts(D){const hashC=(te,he)=>D(he).update(toBytes(te)).digest(),te=D({});return hashC.outputLen=te.outputLen,hashC.blockLen=te.blockLen,hashC.create=te=>D(te),hashC},D.randomBytes=function randomBytes(D=32){if(te.crypto&&"function"==typeof te.crypto.getRandomValues)return te.crypto.getRandomValues(new Uint8Array(D));throw new Error("crypto.getRandomValues must be defined")}}(WN)),WN}function require_sha2(){if(HN)return $N;HN=1,Object.defineProperty($N,"__esModule",{value:!0}),$N.SHA2=void 0;const D=require_assert(),te=requireUtils$2();class SHA2 extends te.Hash{constructor(D,he,ye,be){super(),this.blockLen=D,this.outputLen=he,this.padOffset=ye,this.isLE=be,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(D),this.view=(0,te.createView)(this.buffer)}update(he){(0,D.exists)(this);const{view:ye,buffer:be,blockLen:ve}=this,we=(he=(0,te.toBytes)(he)).length;for(let D=0;D<we;){const _e=Math.min(ve-this.pos,we-D);if(_e!==ve)be.set(he.subarray(D,D+_e),this.pos),this.pos+=_e,D+=_e,this.pos===ve&&(this.undefined(ye,0),this.pos=0);else{const ye=(0,te.createView)(he);for(;ve<=we-D;D+=ve)this.undefined(ye,D)}}return this.length+=he.length,this.roundClean(),this}digestInto(he){(0,D.exists)(this),(0,D.output)(he,this),this.finished=!0;const{buffer:ye,view:be,blockLen:ve,isLE:we}=this;let{pos:_e}=this;ye[_e++]=128,this.buffer.subarray(_e).fill(0),this.padOffset>ve-_e&&(this.undefined(be,0),_e=0);for(let D=_e;D<ve;D++)ye[D]=0;!function setBigUint64(D,te,he,ye){if("function"==typeof D.setBigUint64)return D.setBigUint64(te,he,ye);const be=BigInt(32),ve=BigInt(4294967295),we=Number(he>>be&ve),_e=Number(he&ve),Pe=ye?4:0,Ie=ye?0:4;D.setUint32(te+Pe,we,ye),D.setUint32(te+Ie,_e,ye)}(be,ve-8,BigInt(8*this.length),we),this.undefined(be,0);const Pe=(0,te.createView)(he),Ie=this.outputLen;if(Ie%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const Re=Ie/4,ke=this.get();if(Re>ke.length)throw new Error("_sha2: outputLen bigger than state");for(let D=0;D<Re;D++)Pe.setUint32(4*D,ke[D],we)}digest(){const{buffer:D,outputLen:te}=this;this.digestInto(D);const he=D.slice(0,te);return this.destroy(),he}_cloneInto(D){D||(D=new this.constructor),D.set(...this.get());const{blockLen:te,buffer:he,length:ye,finished:be,destroyed:ve,pos:we}=this;return D.length=ye,D.pos=we,D.finished=be,D.destroyed=ve,ye%te&&D.buffer.set(he),D}}return $N.SHA2=SHA2,$N}var KN,JN,XN={},QN={};function requireUtils$1(){if(KN)return QN;KN=1,Object.defineProperty(QN,"__esModule",{value:!0}),QN.validateObject=QN.createHmacDrbg=QN.bitMask=QN.bitSet=QN.bitGet=QN.bitLen=QN.utf8ToBytes=QN.equalBytes=QN.concatBytes=QN.ensureBytes=QN.numberToVarBytesBE=QN.numberToBytesLE=QN.numberToBytesBE=QN.bytesToNumberLE=QN.bytesToNumberBE=QN.hexToBytes=QN.hexToNumber=QN.numberToHexUnpadded=QN.bytesToHex=void 0;
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const D=BigInt(0),te=BigInt(1),he=BigInt(2),u8a=D=>D instanceof Uint8Array,ye=Array.from({length:256},((D,te)=>te.toString(16).padStart(2,"0")));function bytesToHex(D){if(!u8a(D))throw new Error("Uint8Array expected");let te="";for(let he=0;he<D.length;he++)te+=ye[D[he]];return te}function numberToHexUnpadded(D){const te=D.toString(16);return 1&te.length?`0${te}`:te}function hexToNumber(D){if("string"!=typeof D)throw new Error("hex string expected, got "+typeof D);return BigInt(""===D?"0":`0x${D}`)}function hexToBytes(D){if("string"!=typeof D)throw new Error("hex string expected, got "+typeof D);const te=D.length;if(te%2)throw new Error("padded hex string expected, got unpadded hex of length "+te);const he=new Uint8Array(te/2);for(let te=0;te<he.length;te++){const ye=2*te,be=D.slice(ye,ye+2),ve=Number.parseInt(be,16);if(Number.isNaN(ve)||ve<0)throw new Error("Invalid byte sequence");he[te]=ve}return he}function numberToBytesBE(D,te){return hexToBytes(D.toString(16).padStart(2*te,"0"))}function concatBytes(...D){const te=new Uint8Array(D.reduce(((D,te)=>D+te.length),0));let he=0;return D.forEach((D=>{if(!u8a(D))throw new Error("Uint8Array expected");te.set(D,he),he+=D.length})),te}QN.bytesToHex=bytesToHex,QN.numberToHexUnpadded=numberToHexUnpadded,QN.hexToNumber=hexToNumber,QN.hexToBytes=hexToBytes,QN.bytesToNumberBE=function bytesToNumberBE(D){return hexToNumber(bytesToHex(D))},QN.bytesToNumberLE=function bytesToNumberLE(D){if(!u8a(D))throw new Error("Uint8Array expected");return hexToNumber(bytesToHex(Uint8Array.from(D).reverse()))},QN.numberToBytesBE=numberToBytesBE,QN.numberToBytesLE=function numberToBytesLE(D,te){return numberToBytesBE(D,te).reverse()},QN.numberToVarBytesBE=function numberToVarBytesBE(D){return hexToBytes(numberToHexUnpadded(D))},QN.ensureBytes=function ensureBytes(D,te,he){let ye;if("string"==typeof te)try{ye=hexToBytes(te)}catch(he){throw new Error(`${D} must be valid hex string, got "${te}". Cause: ${he}`)}else{if(!u8a(te))throw new Error(`${D} must be hex string or Uint8Array`);ye=Uint8Array.from(te)}const be=ye.length;if("number"==typeof he&&be!==he)throw new Error(`${D} expected ${he} bytes, got ${be}`);return ye},QN.concatBytes=concatBytes,QN.equalBytes=function equalBytes(D,te){if(D.length!==te.length)return!1;for(let he=0;he<D.length;he++)if(D[he]!==te[he])return!1;return!0},QN.utf8ToBytes=function utf8ToBytes(D){if("string"!=typeof D)throw new Error("utf8ToBytes expected string, got "+typeof D);return new Uint8Array((new TextEncoder).encode(D))},QN.bitLen=function bitLen(he){let ye;for(ye=0;he>D;he>>=te,ye+=1);return ye},QN.bitGet=function bitGet(D,he){return D>>BigInt(he)&te};QN.bitSet=(he,ye,be)=>he|(be?te:D)<<BigInt(ye);QN.bitMask=D=>(he<<BigInt(D-1))-te;const u8n=D=>new Uint8Array(D),u8fr=D=>Uint8Array.from(D);QN.createHmacDrbg=function createHmacDrbg(D,te,he){if("number"!=typeof D||D<2)throw new Error("hashLen must be a number");if("number"!=typeof te||te<2)throw new Error("qByteLen must be a number");if("function"!=typeof he)throw new Error("hmacFn must be a function");let ye=u8n(D),be=u8n(D),ve=0;const reset=()=>{ye.fill(1),be.fill(0),ve=0},h=(...D)=>he(be,ye,...D),reseed=(D=u8n())=>{be=h(u8fr([0]),D),ye=h(),0!==D.length&&(be=h(u8fr([1]),D),ye=h())},gen=()=>{if(ve++>=1e3)throw new Error("drbg: tried 1000 values");let D=0;const he=[];for(;D<te;){ye=h();const te=ye.slice();he.push(te),D+=ye.length}return concatBytes(...he)};return(D,te)=>{let he;for(reset(),reseed(D);!(he=te(gen()));)reseed();return reset(),he}};const be={bigint:D=>"bigint"==typeof D,function:D=>"function"==typeof D,boolean:D=>"boolean"==typeof D,string:D=>"string"==typeof D,stringOrUint8Array:D=>"string"==typeof D||D instanceof Uint8Array,isSafeInteger:D=>Number.isSafeInteger(D),array:D=>Array.isArray(D),field:(D,te)=>te.Fp.isValid(D),hash:D=>"function"==typeof D&&Number.isSafeInteger(D.outputLen)};return QN.validateObject=function validateObject(D,te,he={}){const checkField=(te,he,ye)=>{const ve=be[he];if("function"!=typeof ve)throw new Error(`Invalid validator "${he}", expected function`);const we=D[te];if(!(ye&&void 0===we||ve(we,D)))throw new Error(`Invalid param ${String(te)}=${we} (${typeof we}), expected ${he}`)};for(const[D,he]of Object.entries(te))checkField(D,he,!1);for(const[D,te]of Object.entries(he))checkField(D,te,!0);return D},QN}function requireModular(){if(JN)return XN;JN=1,Object.defineProperty(XN,"__esModule",{value:!0}),XN.mapHashToField=XN.getMinHashLength=XN.getFieldBytesLength=XN.hashToPrivateScalar=XN.FpSqrtEven=XN.FpSqrtOdd=XN.Field=XN.nLength=XN.FpIsSquare=XN.FpDiv=XN.FpInvertBatch=XN.FpPow=XN.validateField=XN.isNegativeLE=XN.FpSqrt=XN.tonelliShanks=XN.invert=XN.pow2=XN.pow=XN.mod=void 0;
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const D=requireUtils$1(),te=BigInt(0),he=BigInt(1),ye=BigInt(2),be=BigInt(3),ve=BigInt(4),we=BigInt(5),_e=BigInt(8);function mod(D,he){const ye=D%he;return ye>=te?ye:he+ye}function pow(D,ye,be){if(be<=te||ye<te)throw new Error("Expected power/modulo > 0");if(be===he)return te;let ve=he;for(;ye>te;)ye&he&&(ve=ve*D%be),D=D*D%be,ye>>=he;return ve}function invert(D,ye){if(D===te||ye<=te)throw new Error(`invert: expected positive integers, got n=${D} mod=${ye}`);let be=mod(D,ye),ve=ye,we=te,_e=he;for(;be!==te;){const D=ve%be,te=we-_e*(ve/be);ve=be,be=D,we=_e,_e=te}if(ve!==he)throw new Error("invert: does not exist");return mod(we,ye)}function tonelliShanks(D){const be=(D-he)/ye;let we,_e,Pe;for(we=D-he,_e=0;we%ye===te;we/=ye,_e++);for(Pe=ye;Pe<D&&pow(Pe,be,D)!==D-he;Pe++);if(1===_e){const te=(D+he)/ve;return function tonelliFast(D,he){const ye=D.pow(he,te);if(!D.eql(D.sqr(ye),he))throw new Error("Cannot find square root");return ye}}const Ie=(we+he)/ye;return function tonelliSlow(D,te){if(D.pow(te,be)===D.neg(D.ONE))throw new Error("Cannot find square root");let ye=_e,ve=D.pow(D.mul(D.ONE,Pe),we),Re=D.pow(te,Ie),ke=D.pow(te,we);for(;!D.eql(ke,D.ONE);){if(D.eql(ke,D.ZERO))return D.ZERO;let te=1;for(let he=D.sqr(ke);te<ye&&!D.eql(he,D.ONE);te++)he=D.sqr(he);const be=D.pow(ve,he<<BigInt(ye-te-1));ve=D.sqr(be),Re=D.mul(Re,be),ke=D.mul(ke,ve),ye=te}return Re}}function FpSqrt(D){if(D%ve===be){const te=(D+he)/ve;return function sqrt3mod4(D,he){const ye=D.pow(he,te);if(!D.eql(D.sqr(ye),he))throw new Error("Cannot find square root");return ye}}if(D%_e===we){const te=(D-we)/_e;return function sqrt5mod8(D,he){const be=D.mul(he,ye),ve=D.pow(be,te),we=D.mul(he,ve),_e=D.mul(D.mul(we,ye),ve),Pe=D.mul(we,D.sub(_e,D.ONE));if(!D.eql(D.sqr(Pe),he))throw new Error("Cannot find square root");return Pe}}return tonelliShanks(D)}BigInt(9),BigInt(16),XN.mod=mod,XN.pow=pow,XN.pow2=function pow2(D,he,ye){let be=D;for(;he-- >te;)be*=be,be%=ye;return be},XN.invert=invert,XN.tonelliShanks=tonelliShanks,XN.FpSqrt=FpSqrt;XN.isNegativeLE=(D,te)=>(mod(D,te)&he)===he;const Pe=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function FpPow(D,ye,be){if(be<te)throw new Error("Expected power > 0");if(be===te)return D.ONE;if(be===he)return ye;let ve=D.ONE,we=ye;for(;be>te;)be&he&&(ve=D.mul(ve,we)),we=D.sqr(we),be>>=he;return ve}function FpInvertBatch(D,te){const he=new Array(te.length),ye=te.reduce(((te,ye,be)=>D.is0(ye)?te:(he[be]=te,D.mul(te,ye))),D.ONE),be=D.inv(ye);return te.reduceRight(((te,ye,be)=>D.is0(ye)?te:(he[be]=D.mul(te,he[be]),D.mul(te,ye))),be),he}function nLength(D,te){const he=void 0!==te?te:D.toString(2).length;return{nBitLength:he,nByteLength:Math.ceil(he/8)}}function getFieldBytesLength(D){if("bigint"!=typeof D)throw new Error("field order must be bigint");const te=D.toString(2).length;return Math.ceil(te/8)}function getMinHashLength(D){const te=getFieldBytesLength(D);return te+Math.ceil(te/2)}return XN.validateField=function validateField(te){const he=Pe.reduce(((D,te)=>(D[te]="function",D)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});return(0,D.validateObject)(te,he)},XN.FpPow=FpPow,XN.FpInvertBatch=FpInvertBatch,XN.FpDiv=function FpDiv(D,te,he){return D.mul(te,"bigint"==typeof he?invert(he,D.ORDER):D.inv(he))},XN.FpIsSquare=function FpIsSquare(D){const te=(D.ORDER-he)/ye;return he=>{const ye=D.pow(he,te);return D.eql(ye,D.ZERO)||D.eql(ye,D.ONE)}},XN.nLength=nLength,XN.Field=function Field(ye,be,ve=!1,we={}){if(ye<=te)throw new Error(`Expected Field ORDER > 0, got ${ye}`);const{nBitLength:_e,nByteLength:Pe}=nLength(ye,be);if(Pe>2048)throw new Error("Field lengths over 2048 bytes are not supported");const Ie=FpSqrt(ye),Re=Object.freeze({ORDER:ye,BITS:_e,BYTES:Pe,MASK:(0,D.bitMask)(_e),ZERO:te,ONE:he,create:D=>mod(D,ye),isValid:D=>{if("bigint"!=typeof D)throw new Error("Invalid field element: expected bigint, got "+typeof D);return te<=D&&D<ye},is0:D=>D===te,isOdd:D=>(D&he)===he,neg:D=>mod(-D,ye),eql:(D,te)=>D===te,sqr:D=>mod(D*D,ye),add:(D,te)=>mod(D+te,ye),sub:(D,te)=>mod(D-te,ye),mul:(D,te)=>mod(D*te,ye),pow:(D,te)=>FpPow(Re,D,te),div:(D,te)=>mod(D*invert(te,ye),ye),sqrN:D=>D*D,addN:(D,te)=>D+te,subN:(D,te)=>D-te,mulN:(D,te)=>D*te,inv:D=>invert(D,ye),sqrt:we.sqrt||(D=>Ie(Re,D)),invertBatch:D=>FpInvertBatch(Re,D),cmov:(D,te,he)=>he?te:D,toBytes:te=>ve?(0,D.numberToBytesLE)(te,Pe):(0,D.numberToBytesBE)(te,Pe),fromBytes:te=>{if(te.length!==Pe)throw new Error(`Fp.fromBytes: expected ${Pe}, got ${te.length}`);return ve?(0,D.bytesToNumberLE)(te):(0,D.bytesToNumberBE)(te)}});return Object.freeze(Re)},XN.FpSqrtOdd=function FpSqrtOdd(D,te){if(!D.isOdd)throw new Error("Field doesn't have isOdd");const he=D.sqrt(te);return D.isOdd(he)?he:D.neg(he)},XN.FpSqrtEven=function FpSqrtEven(D,te){if(!D.isOdd)throw new Error("Field doesn't have isOdd");const he=D.sqrt(te);return D.isOdd(he)?D.neg(he):he},XN.hashToPrivateScalar=function hashToPrivateScalar(te,ye,be=!1){const ve=(te=(0,D.ensureBytes)("privateHash",te)).length,we=nLength(ye).nByteLength+8;if(we<24||ve<we||ve>1024)throw new Error(`hashToPrivateScalar: expected ${we}-1024 bytes of input, got ${ve}`);return mod(be?(0,D.bytesToNumberLE)(te):(0,D.bytesToNumberBE)(te),ye-he)+he},XN.getFieldBytesLength=getFieldBytesLength,XN.getMinHashLength=getMinHashLength,XN.mapHashToField=function mapHashToField(te,ye,be=!1){const ve=te.length,we=getFieldBytesLength(ye),_e=getMinHashLength(ye);if(ve<16||ve<_e||ve>1024)throw new Error(`expected ${_e}-1024 bytes of input, got ${ve}`);const Pe=mod(be?(0,D.bytesToNumberBE)(te):(0,D.bytesToNumberLE)(te),ye-he)+he;return be?(0,D.numberToBytesLE)(Pe,we):(0,D.numberToBytesBE)(Pe,we)},XN}var ZN,YN,eM={},tM={};function requireWeierstrass(){return YN||(YN=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.mapToCurveSimpleSWU=D.SWUFpSqrtRatio=D.weierstrass=D.weierstrassPoints=D.DER=void 0;
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const te=requireModular(),he=requireUtils$1(),ye=requireUtils$1(),be=function requireCurve(){if(ZN)return tM;ZN=1,Object.defineProperty(tM,"__esModule",{value:!0}),tM.validateBasic=tM.wNAF=void 0;
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const D=requireModular(),te=requireUtils$1(),he=BigInt(0),ye=BigInt(1);return tM.wNAF=function wNAF(D,te){const constTimeNegate=(D,te)=>{const he=te.negate();return D?he:te},opts=D=>({windows:Math.ceil(te/D)+1,windowSize:2**(D-1)});return{constTimeNegate:constTimeNegate,unsafeLadder(te,be){let ve=D.ZERO,we=te;for(;be>he;)be&ye&&(ve=ve.add(we)),we=we.double(),be>>=ye;return ve},precomputeWindow(D,te){const{windows:he,windowSize:ye}=opts(te),be=[];let ve=D,we=ve;for(let D=0;D<he;D++){we=ve,be.push(we);for(let D=1;D<ye;D++)we=we.add(ve),be.push(we);ve=we.double()}return be},wNAF(te,he,be){const{windows:ve,windowSize:we}=opts(te);let _e=D.ZERO,Pe=D.BASE;const Ie=BigInt(2**te-1),Re=2**te,ke=BigInt(te);for(let D=0;D<ve;D++){const te=D*we;let ve=Number(be&Ie);be>>=ke,ve>we&&(ve-=Re,be+=ye);const Oe=te,xe=te+Math.abs(ve)-1,Be=D%2!=0,Fe=ve<0;0===ve?Pe=Pe.add(constTimeNegate(Be,he[Oe])):_e=_e.add(constTimeNegate(Fe,he[xe]))}return{p:_e,f:Pe}},wNAFCached(D,te,he,ye){const be=D._WINDOW_SIZE||1;let ve=te.get(D);return ve||(ve=this.precomputeWindow(D,be),1!==be&&te.set(D,ye(ve))),this.wNAF(be,ve,he)}}},tM.validateBasic=function validateBasic(he){return(0,D.validateField)(he.Fp),(0,te.validateObject)(he,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...(0,D.nLength)(he.n,he.nBitLength),...he,p:he.Fp.ORDER})},tM}();const{bytesToNumberBE:ve,hexToBytes:we}=he;D.DER={Err:class DERErr extends Error{constructor(D=""){super(D)}},_parseInt(te){const{Err:he}=D.DER;if(te.length<2||2!==te[0])throw new he("Invalid signature integer tag");const ye=te[1],be=te.subarray(2,ye+2);if(!ye||be.length!==ye)throw new he("Invalid signature integer: wrong length");if(128&be[0])throw new he("Invalid signature integer: negative");if(0===be[0]&&!(128&be[1]))throw new he("Invalid signature integer: unnecessary leading zero");return{d:ve(be),l:te.subarray(ye+2)}},toSig(te){const{Err:he}=D.DER,ye="string"==typeof te?we(te):te;if(!(ye instanceof Uint8Array))throw new Error("ui8a expected");let be=ye.length;if(be<2||48!=ye[0])throw new he("Invalid signature tag");if(ye[1]!==be-2)throw new he("Invalid signature: incorrect length");const{d:ve,l:_e}=D.DER._parseInt(ye.subarray(2)),{d:Pe,l:Ie}=D.DER._parseInt(_e);if(Ie.length)throw new he("Invalid signature: left bytes after parsing");return{r:ve,s:Pe}},hexFromSig(D){const slice=D=>8&Number.parseInt(D[0],16)?"00"+D:D,h=D=>{const te=D.toString(16);return 1&te.length?`0${te}`:te},te=slice(h(D.s)),he=slice(h(D.r)),ye=te.length/2,be=he.length/2,ve=h(ye),we=h(be);return`30${h(be+ye+4)}02${we}${he}02${ve}${te}`}};const _e=BigInt(0),Pe=BigInt(1),Ie=BigInt(2),Re=BigInt(3),ke=BigInt(4);function weierstrassPoints(D){const ve=function validatePointOpts(D){const te=(0,be.validateBasic)(D);he.validateObject(te,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:ye,Fp:ve,a:we}=te;if(ye){if(!ve.eql(we,ve.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof ye||"bigint"!=typeof ye.beta||"function"!=typeof ye.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...te})}(D),{Fp:we}=ve,Ie=ve.toBytes||((D,te,ye)=>{const be=te.toAffine();return he.concatBytes(Uint8Array.from([4]),we.toBytes(be.x),we.toBytes(be.y))}),ke=ve.fromBytes||(D=>{const te=D.subarray(1);return{x:we.fromBytes(te.subarray(0,we.BYTES)),y:we.fromBytes(te.subarray(we.BYTES,2*we.BYTES))}});function weierstrassEquation(D){const{a:te,b:he}=ve,ye=we.sqr(D),be=we.mul(ye,D);return we.add(we.add(be,we.mul(D,te)),he)}if(!we.eql(we.sqr(ve.Gy),weierstrassEquation(ve.Gx)))throw new Error("bad generator point: equation left != right");function isWithinCurveOrder(D){return"bigint"==typeof D&&_e<D&&D<ve.n}function assertGE(D){if(!isWithinCurveOrder(D))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function normPrivateKeyToScalar(D){const{allowedPrivateKeyLengths:be,nByteLength:we,wrapPrivateKey:_e,n:Pe}=ve;if(be&&"bigint"!=typeof D){if(D instanceof Uint8Array&&(D=he.bytesToHex(D)),"string"!=typeof D||!be.includes(D.length))throw new Error("Invalid key");D=D.padStart(2*we,"0")}let Ie;try{Ie="bigint"==typeof D?D:he.bytesToNumberBE((0,ye.ensureBytes)("private key",D,we))}catch(te){throw new Error(`private key must be ${we} bytes, hex or bigint, not ${typeof D}`)}return _e&&(Ie=te.mod(Ie,Pe)),assertGE(Ie),Ie}const Oe=new Map;function assertPrjPoint(D){if(!(D instanceof Point))throw new Error("ProjectivePoint expected")}class Point{constructor(D,te,he){if(this.px=D,this.py=te,this.pz=he,null==D||!we.isValid(D))throw new Error("x required");if(null==te||!we.isValid(te))throw new Error("y required");if(null==he||!we.isValid(he))throw new Error("z required")}static fromAffine(D){const{x:te,y:he}=D||{};if(!D||!we.isValid(te)||!we.isValid(he))throw new Error("invalid affine point");if(D instanceof Point)throw new Error("projective point not allowed");const is0=D=>we.eql(D,we.ZERO);return is0(te)&&is0(he)?Point.ZERO:new Point(te,he,we.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(D){const te=we.invertBatch(D.map((D=>D.pz)));return D.map(((D,he)=>D.toAffine(te[he]))).map(Point.fromAffine)}static fromHex(D){const te=Point.fromAffine(ke((0,ye.ensureBytes)("pointHex",D)));return te.assertValidity(),te}static fromPrivateKey(D){return Point.BASE.multiply(normPrivateKeyToScalar(D))}_setWindowSize(D){this._WINDOW_SIZE=D,Oe.delete(this)}assertValidity(){if(this.is0()){if(ve.allowInfinityPoint&&!we.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:D,y:te}=this.toAffine();if(!we.isValid(D)||!we.isValid(te))throw new Error("bad point: x or y not FE");const he=we.sqr(te),ye=weierstrassEquation(D);if(!we.eql(he,ye))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:D}=this.toAffine();if(we.isOdd)return!we.isOdd(D);throw new Error("Field doesn't support isOdd")}equals(D){assertPrjPoint(D);const{px:te,py:he,pz:ye}=this,{px:be,py:ve,pz:_e}=D,Pe=we.eql(we.mul(te,_e),we.mul(be,ye)),Ie=we.eql(we.mul(he,_e),we.mul(ve,ye));return Pe&&Ie}negate(){return new Point(this.px,we.neg(this.py),this.pz)}double(){const{a:D,b:te}=ve,he=we.mul(te,Re),{px:ye,py:be,pz:_e}=this;let Pe=we.ZERO,Ie=we.ZERO,ke=we.ZERO,Oe=we.mul(ye,ye),xe=we.mul(be,be),Be=we.mul(_e,_e),Fe=we.mul(ye,be);return Fe=we.add(Fe,Fe),ke=we.mul(ye,_e),ke=we.add(ke,ke),Pe=we.mul(D,ke),Ie=we.mul(he,Be),Ie=we.add(Pe,Ie),Pe=we.sub(xe,Ie),Ie=we.add(xe,Ie),Ie=we.mul(Pe,Ie),Pe=we.mul(Fe,Pe),ke=we.mul(he,ke),Be=we.mul(D,Be),Fe=we.sub(Oe,Be),Fe=we.mul(D,Fe),Fe=we.add(Fe,ke),ke=we.add(Oe,Oe),Oe=we.add(ke,Oe),Oe=we.add(Oe,Be),Oe=we.mul(Oe,Fe),Ie=we.add(Ie,Oe),Be=we.mul(be,_e),Be=we.add(Be,Be),Oe=we.mul(Be,Fe),Pe=we.sub(Pe,Oe),ke=we.mul(Be,xe),ke=we.add(ke,ke),ke=we.add(ke,ke),new Point(Pe,Ie,ke)}add(D){assertPrjPoint(D);const{px:te,py:he,pz:ye}=this,{px:be,py:_e,pz:Pe}=D;let Ie=we.ZERO,ke=we.ZERO,Oe=we.ZERO;const xe=ve.a,Be=we.mul(ve.b,Re);let Fe=we.mul(te,be),De=we.mul(he,_e),Le=we.mul(ye,Pe),Ue=we.add(te,he),qe=we.add(be,_e);Ue=we.mul(Ue,qe),qe=we.add(Fe,De),Ue=we.sub(Ue,qe),qe=we.add(te,ye);let je=we.add(be,Pe);return qe=we.mul(qe,je),je=we.add(Fe,Le),qe=we.sub(qe,je),je=we.add(he,ye),Ie=we.add(_e,Pe),je=we.mul(je,Ie),Ie=we.add(De,Le),je=we.sub(je,Ie),Oe=we.mul(xe,qe),Ie=we.mul(Be,Le),Oe=we.add(Ie,Oe),Ie=we.sub(De,Oe),Oe=we.add(De,Oe),ke=we.mul(Ie,Oe),De=we.add(Fe,Fe),De=we.add(De,Fe),Le=we.mul(xe,Le),qe=we.mul(Be,qe),De=we.add(De,Le),Le=we.sub(Fe,Le),Le=we.mul(xe,Le),qe=we.add(qe,Le),Fe=we.mul(De,qe),ke=we.add(ke,Fe),Fe=we.mul(je,qe),Ie=we.mul(Ue,Ie),Ie=we.sub(Ie,Fe),Fe=we.mul(Ue,De),Oe=we.mul(je,Oe),Oe=we.add(Oe,Fe),new Point(Ie,ke,Oe)}subtract(D){return this.add(D.negate())}is0(){return this.equals(Point.ZERO)}wNAF(D){return Be.wNAFCached(this,Oe,D,(D=>{const te=we.invertBatch(D.map((D=>D.pz)));return D.map(((D,he)=>D.toAffine(te[he]))).map(Point.fromAffine)}))}multiplyUnsafe(D){const te=Point.ZERO;if(D===_e)return te;if(assertGE(D),D===Pe)return this;const{endo:he}=ve;if(!he)return Be.unsafeLadder(this,D);let{k1neg:ye,k1:be,k2neg:Ie,k2:Re}=he.splitScalar(D),ke=te,Oe=te,xe=this;for(;be>_e||Re>_e;)be&Pe&&(ke=ke.add(xe)),Re&Pe&&(Oe=Oe.add(xe)),xe=xe.double(),be>>=Pe,Re>>=Pe;return ye&&(ke=ke.negate()),Ie&&(Oe=Oe.negate()),Oe=new Point(we.mul(Oe.px,he.beta),Oe.py,Oe.pz),ke.add(Oe)}multiply(D){assertGE(D);let te,he,ye=D;const{endo:be}=ve;if(be){const{k1neg:D,k1:ve,k2neg:_e,k2:Pe}=be.splitScalar(ye);let{p:Ie,f:Re}=this.wNAF(ve),{p:ke,f:Oe}=this.wNAF(Pe);Ie=Be.constTimeNegate(D,Ie),ke=Be.constTimeNegate(_e,ke),ke=new Point(we.mul(ke.px,be.beta),ke.py,ke.pz),te=Ie.add(ke),he=Re.add(Oe)}else{const{p:D,f:be}=this.wNAF(ye);te=D,he=be}return Point.normalizeZ([te,he])[0]}multiplyAndAddUnsafe(D,te,he){const ye=Point.BASE,mul=(D,te)=>te!==_e&&te!==Pe&&D.equals(ye)?D.multiply(te):D.multiplyUnsafe(te),be=mul(this,te).add(mul(D,he));return be.is0()?void 0:be}toAffine(D){const{px:te,py:he,pz:ye}=this,be=this.is0();null==D&&(D=be?we.ONE:we.inv(ye));const ve=we.mul(te,D),_e=we.mul(he,D),Pe=we.mul(ye,D);if(be)return{x:we.ZERO,y:we.ZERO};if(!we.eql(Pe,we.ONE))throw new Error("invZ was invalid");return{x:ve,y:_e}}isTorsionFree(){const{h:D,isTorsionFree:te}=ve;if(D===Pe)return!0;if(te)return te(Point,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:D,clearCofactor:te}=ve;return D===Pe?this:te?te(Point,this):this.multiplyUnsafe(ve.h)}toRawBytes(D=!0){return this.assertValidity(),Ie(Point,this,D)}toHex(D=!0){return he.bytesToHex(this.toRawBytes(D))}}Point.BASE=new Point(ve.Gx,ve.Gy,we.ONE),Point.ZERO=new Point(we.ZERO,we.ONE,we.ZERO);const xe=ve.nBitLength,Be=(0,be.wNAF)(Point,ve.endo?Math.ceil(xe/2):xe);return{CURVE:ve,ProjectivePoint:Point,normPrivateKeyToScalar:normPrivateKeyToScalar,weierstrassEquation:weierstrassEquation,isWithinCurveOrder:isWithinCurveOrder}}function SWUFpSqrtRatio(D,te){const he=D.ORDER;let ye=_e;for(let D=he-Pe;D%Ie===_e;D/=Ie)ye+=Pe;const be=ye,ve=Ie<<be-Pe-Pe,we=ve*Ie,Oe=(he-Pe)/we,xe=(Oe-Pe)/Ie,Be=we-Pe,Fe=ve,De=D.pow(te,Oe),Le=D.pow(te,(Oe+Pe)/Ie);let sqrtRatio=(te,he)=>{let ye=De,ve=D.pow(he,Be),we=D.sqr(ve);we=D.mul(we,he);let _e=D.mul(te,we);_e=D.pow(_e,xe),_e=D.mul(_e,ve),ve=D.mul(_e,he),we=D.mul(_e,te);let Re=D.mul(we,ve);_e=D.pow(Re,Fe);let ke=D.eql(_e,D.ONE);ve=D.mul(we,Le),_e=D.mul(Re,ye),we=D.cmov(ve,we,ke),Re=D.cmov(_e,Re,ke);for(let te=be;te>Pe;te--){let he=te-Ie;he=Ie<<he-Pe;let be=D.pow(Re,he);const _e=D.eql(be,D.ONE);ve=D.mul(we,ye),ye=D.mul(ye,ye),be=D.mul(Re,ye),we=D.cmov(ve,we,_e),Re=D.cmov(be,Re,_e)}return{isValid:ke,value:we}};if(D.ORDER%ke===Re){const he=(D.ORDER-Re)/ke,ye=D.sqrt(D.neg(te));sqrtRatio=(te,be)=>{let ve=D.sqr(be);const we=D.mul(te,be);ve=D.mul(ve,we);let _e=D.pow(ve,he);_e=D.mul(_e,we);const Pe=D.mul(_e,ye),Ie=D.mul(D.sqr(_e),be),Re=D.eql(Ie,te);return{isValid:Re,value:D.cmov(Pe,_e,Re)}}}return sqrtRatio}D.weierstrassPoints=weierstrassPoints,D.weierstrass=function weierstrass(ve){const we=function validateOpts(D){const te=(0,be.validateBasic)(D);return he.validateObject(te,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...te})}(ve),{Fp:Ie,n:Re}=we,ke=Ie.BYTES+1,Oe=2*Ie.BYTES+1;function modN(D){return te.mod(D,Re)}function invN(D){return te.invert(D,Re)}const{ProjectivePoint:xe,normPrivateKeyToScalar:Be,weierstrassEquation:Fe,isWithinCurveOrder:De}=weierstrassPoints({...we,toBytes(D,te,ye){const be=te.toAffine(),ve=Ie.toBytes(be.x),we=he.concatBytes;return ye?we(Uint8Array.from([te.hasEvenY()?2:3]),ve):we(Uint8Array.from([4]),ve,Ie.toBytes(be.y))},fromBytes(D){const te=D.length,ye=D[0],be=D.subarray(1);if(te!==ke||2!==ye&&3!==ye){if(te===Oe&&4===ye){return{x:Ie.fromBytes(be.subarray(0,Ie.BYTES)),y:Ie.fromBytes(be.subarray(Ie.BYTES,2*Ie.BYTES))}}throw new Error(`Point of length ${te} was invalid. Expected ${ke} compressed bytes or ${Oe} uncompressed bytes`)}{const D=he.bytesToNumberBE(be);if(!function isValidFieldElement(D){return _e<D&&D<Ie.ORDER}(D))throw new Error("Point is not on curve");const te=Fe(D);let ve=Ie.sqrt(te);return 1==(1&ye)!==((ve&Pe)===Pe)&&(ve=Ie.neg(ve)),{x:D,y:ve}}}}),numToNByteStr=D=>he.bytesToHex(he.numberToBytesBE(D,we.nByteLength));function isBiggerThanHalfOrder(D){return D>Re>>Pe}const slcNum=(D,te,ye)=>he.bytesToNumberBE(D.slice(te,ye));class Signature{constructor(D,te,he){this.r=D,this.s=te,this.recovery=he,this.assertValidity()}static fromCompact(D){const te=we.nByteLength;return D=(0,ye.ensureBytes)("compactSignature",D,2*te),new Signature(slcNum(D,0,te),slcNum(D,te,2*te))}static fromDER(te){const{r:he,s:be}=D.DER.toSig((0,ye.ensureBytes)("DER",te));return new Signature(he,be)}assertValidity(){if(!De(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!De(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(D){return new Signature(this.r,this.s,D)}recoverPublicKey(D){const{r:te,s:he,recovery:be}=this,ve=qe((0,ye.ensureBytes)("msgHash",D));if(null==be||![0,1,2,3].includes(be))throw new Error("recovery id invalid");const _e=2===be||3===be?te+we.n:te;if(_e>=Ie.ORDER)throw new Error("recovery id 2 or 3 invalid");const Pe=0==(1&be)?"02":"03",Re=xe.fromHex(Pe+numToNByteStr(_e)),ke=invN(_e),Oe=modN(-ve*ke),Be=modN(he*ke),Fe=xe.BASE.multiplyAndAddUnsafe(Re,Oe,Be);if(!Fe)throw new Error("point at infinify");return Fe.assertValidity(),Fe}hasHighS(){return isBiggerThanHalfOrder(this.s)}normalizeS(){return this.hasHighS()?new Signature(this.r,modN(-this.s),this.recovery):this}toDERRawBytes(){return he.hexToBytes(this.toDERHex())}toDERHex(){return D.DER.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return he.hexToBytes(this.toCompactHex())}toCompactHex(){return numToNByteStr(this.r)+numToNByteStr(this.s)}}const Le={isValidPrivateKey(D){try{return Be(D),!0}catch(D){return!1}},normPrivateKeyToScalar:Be,randomPrivateKey:()=>{const D=te.getMinHashLength(we.n);return te.mapHashToField(we.randomBytes(D),we.n)},precompute:(D=8,te=xe.BASE)=>(te._setWindowSize(D),te.multiply(BigInt(3)),te)};function isProbPub(D){const te=D instanceof Uint8Array,he="string"==typeof D,ye=(te||he)&&D.length;return te?ye===ke||ye===Oe:he?ye===2*ke||ye===2*Oe:D instanceof xe}const Ue=we.bits2int||function(D){const te=he.bytesToNumberBE(D),ye=8*D.length-we.nBitLength;return ye>0?te>>BigInt(ye):te},qe=we.bits2int_modN||function(D){return modN(Ue(D))},je=he.bitMask(we.nBitLength);function int2octets(D){if("bigint"!=typeof D)throw new Error("bigint expected");if(!(_e<=D&&D<je))throw new Error(`bigint expected < 2^${we.nBitLength}`);return he.numberToBytesBE(D,we.nByteLength)}function prepSig(D,te,be=Je){if(["recovered","canonical"].some((D=>D in be)))throw new Error("sign() legacy options not supported");const{hash:ve,randomBytes:Re}=we;let{lowS:ke,prehash:Oe,extraEntropy:Fe}=be;null==ke&&(ke=!0),D=(0,ye.ensureBytes)("msgHash",D),Oe&&(D=(0,ye.ensureBytes)("prehashed msgHash",ve(D)));const Le=qe(D),je=Be(te),et=[int2octets(je),int2octets(Le)];if(null!=Fe){const D=!0===Fe?Re(Ie.BYTES):Fe;et.push((0,ye.ensureBytes)("extraEntropy",D))}const tt=he.concatBytes(...et),rt=Le;return{seed:tt,k2sig:function k2sig(D){const te=Ue(D);if(!De(te))return;const he=invN(te),ye=xe.BASE.multiply(te).toAffine(),be=modN(ye.x);if(be===_e)return;const ve=modN(he*modN(rt+be*je));if(ve===_e)return;let we=(ye.x===be?0:2)|Number(ye.y&Pe),Ie=ve;return ke&&isBiggerThanHalfOrder(ve)&&(Ie=function normalizeS(D){return isBiggerThanHalfOrder(D)?modN(-D):D}(ve),we^=1),new Signature(be,Ie,we)}}}const Je={lowS:we.lowS,prehash:!1},et={lowS:we.lowS,prehash:!1};return xe.BASE._setWindowSize(8),{CURVE:we,getPublicKey:function getPublicKey(D,te=!0){return xe.fromPrivateKey(D).toRawBytes(te)},getSharedSecret:function getSharedSecret(D,te,he=!0){if(isProbPub(D))throw new Error("first arg must be private key");if(!isProbPub(te))throw new Error("second arg must be public key");return xe.fromHex(te).multiply(Be(D)).toRawBytes(he)},sign:function sign(D,te,ye=Je){const{seed:be,k2sig:ve}=prepSig(D,te,ye),_e=we;return he.createHmacDrbg(_e.hash.outputLen,_e.nByteLength,_e.hmac)(be,ve)},verify:function verify(te,he,be,ve=et){const _e=te;if(he=(0,ye.ensureBytes)("msgHash",he),be=(0,ye.ensureBytes)("publicKey",be),"strict"in ve)throw new Error("options.strict was renamed to lowS");const{lowS:Pe,prehash:Ie}=ve;let Re,ke;try{if("string"==typeof _e||_e instanceof Uint8Array)try{Re=Signature.fromDER(_e)}catch(te){if(!(te instanceof D.DER.Err))throw te;Re=Signature.fromCompact(_e)}else{if("object"!=typeof _e||"bigint"!=typeof _e.r||"bigint"!=typeof _e.s)throw new Error("PARSE");{const{r:D,s:te}=_e;Re=new Signature(D,te)}}ke=xe.fromHex(be)}catch(D){if("PARSE"===D.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(Pe&&Re.hasHighS())return!1;Ie&&(he=we.hash(he));const{r:Oe,s:Be}=Re,Fe=qe(he),De=invN(Be),Le=modN(Fe*De),Ue=modN(Oe*De),je=xe.BASE.multiplyAndAddUnsafe(ke,Le,Ue)?.toAffine();return!!je&&modN(je.x)===Oe},ProjectivePoint:xe,Signature:Signature,utils:Le}},D.SWUFpSqrtRatio=SWUFpSqrtRatio,D.mapToCurveSimpleSWU=function mapToCurveSimpleSWU(D,he){if(te.validateField(D),!D.isValid(he.A)||!D.isValid(he.B)||!D.isValid(he.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");const ye=SWUFpSqrtRatio(D,he.Z);if(!D.isOdd)throw new Error("Fp.isOdd is not implemented!");return te=>{let be,ve,we,_e,Pe,Ie,Re,ke;be=D.sqr(te),be=D.mul(be,he.Z),ve=D.sqr(be),ve=D.add(ve,be),we=D.add(ve,D.ONE),we=D.mul(we,he.B),_e=D.cmov(he.Z,D.neg(ve),!D.eql(ve,D.ZERO)),_e=D.mul(_e,he.A),ve=D.sqr(we),Ie=D.sqr(_e),Pe=D.mul(Ie,he.A),ve=D.add(ve,Pe),ve=D.mul(ve,we),Ie=D.mul(Ie,_e),Pe=D.mul(Ie,he.B),ve=D.add(ve,Pe),Re=D.mul(be,we);const{isValid:Oe,value:xe}=ye(ve,Ie);ke=D.mul(be,te),ke=D.mul(ke,xe),Re=D.cmov(Re,we,Oe),ke=D.cmov(ke,xe,Oe);const Be=D.isOdd(te)===D.isOdd(ke);return ke=D.cmov(D.neg(ke),ke,Be),Re=D.div(Re,_e),{x:Re,y:ke}}}}(eM)),eM}var rM,nM={};function requireHashToCurve(){if(rM)return nM;rM=1,Object.defineProperty(nM,"__esModule",{value:!0}),nM.createHasher=nM.isogenyMap=nM.hash_to_field=nM.expand_message_xof=nM.expand_message_xmd=void 0;const D=requireModular(),te=requireUtils$1();const he=te.bytesToNumberBE;function i2osp(D,te){if(D<0||D>=1<<8*te)throw new Error(`bad I2OSP call: value=${D} length=${te}`);const he=Array.from({length:te}).fill(0);for(let ye=te-1;ye>=0;ye--)he[ye]=255&D,D>>>=8;return new Uint8Array(he)}function strxor(D,te){const he=new Uint8Array(D.length);for(let ye=0;ye<D.length;ye++)he[ye]=D[ye]^te[ye];return he}function isBytes(D){if(!(D instanceof Uint8Array))throw new Error("Uint8Array expected")}function isNum(D){if(!Number.isSafeInteger(D))throw new Error("number expected")}function expand_message_xmd(D,he,ye,be){isBytes(D),isBytes(he),isNum(ye),he.length>255&&(he=be((0,te.concatBytes)((0,te.utf8ToBytes)("H2C-OVERSIZE-DST-"),he)));const{outputLen:ve,blockLen:we}=be,_e=Math.ceil(ye/ve);if(_e>255)throw new Error("Invalid xmd length");const Pe=(0,te.concatBytes)(he,i2osp(he.length,1)),Ie=i2osp(0,we),Re=i2osp(ye,2),ke=new Array(_e),Oe=be((0,te.concatBytes)(Ie,D,Re,i2osp(0,1),Pe));ke[0]=be((0,te.concatBytes)(Oe,i2osp(1,1),Pe));for(let D=1;D<=_e;D++){const he=[strxor(Oe,ke[D-1]),i2osp(D+1,1),Pe];ke[D]=be((0,te.concatBytes)(...he))}return(0,te.concatBytes)(...ke).slice(0,ye)}function expand_message_xof(D,he,ye,be,ve){if(isBytes(D),isBytes(he),isNum(ye),he.length>255){const D=Math.ceil(2*be/8);he=ve.create({dkLen:D}).update((0,te.utf8ToBytes)("H2C-OVERSIZE-DST-")).update(he).digest()}if(ye>65535||he.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return ve.create({dkLen:ye}).update(D).update(i2osp(ye,2)).update(he).update(i2osp(he.length,1)).digest()}function hash_to_field(ye,be,ve){(0,te.validateObject)(ve,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});const{p:we,k:_e,m:Pe,hash:Ie,expand:Re,DST:ke}=ve;isBytes(ye),isNum(be);const Oe=function validateDST(D){if(D instanceof Uint8Array)return D;if("string"==typeof D)return(0,te.utf8ToBytes)(D);throw new Error("DST must be Uint8Array or string")}(ke),xe=we.toString(2).length,Be=Math.ceil((xe+_e)/8),Fe=be*Pe*Be;let De;if("xmd"===Re)De=expand_message_xmd(ye,Oe,Fe,Ie);else if("xof"===Re)De=expand_message_xof(ye,Oe,Fe,_e,Ie);else{if("_internal_pass"!==Re)throw new Error('expand must be "xmd" or "xof"');De=ye}const Le=new Array(be);for(let te=0;te<be;te++){const ye=new Array(Pe);for(let be=0;be<Pe;be++){const ve=Be*(be+te*Pe),_e=De.subarray(ve,ve+Be);ye[be]=(0,D.mod)(he(_e),we)}Le[te]=ye}return Le}return nM.expand_message_xmd=expand_message_xmd,nM.expand_message_xof=expand_message_xof,nM.hash_to_field=hash_to_field,nM.isogenyMap=function isogenyMap(D,te){const he=te.map((D=>Array.from(D).reverse()));return(te,ye)=>{const[be,ve,we,_e]=he.map((he=>he.reduce(((he,ye)=>D.add(D.mul(he,te),ye)))));return te=D.div(be,ve),ye=D.mul(ye,D.div(we,_e)),{x:te,y:ye}}},nM.createHasher=function createHasher(D,te,he){if("function"!=typeof te)throw new Error("mapToCurve() must be defined");return{hashToCurve(ye,be){const ve=hash_to_field(ye,2,{...he,DST:he.DST,...be}),we=D.fromAffine(te(ve[0])),_e=D.fromAffine(te(ve[1])),Pe=we.add(_e).clearCofactor();return Pe.assertValidity(),Pe},encodeToCurve(ye,be){const ve=hash_to_field(ye,1,{...he,DST:he.encodeDST,...be}),we=D.fromAffine(te(ve[0])).clearCofactor();return we.assertValidity(),we}}},nM}var aM,iM,sM,oM={},cM={};function require_shortw_utils(){if(iM)return oM;iM=1,Object.defineProperty(oM,"__esModule",{value:!0}),oM.createCurve=oM.getHash=void 0;
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const D=function requireHmac(){return aM||(aM=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.hmac=D.HMAC=void 0;const te=require_assert(),he=requireUtils$2();class HMAC extends he.Hash{constructor(D,ye){super(),this.finished=!1,this.destroyed=!1,(0,te.hash)(D);const be=(0,he.toBytes)(ye);if(this.iHash=D.create(),"function"!=typeof this.iHash.update)throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const ve=this.blockLen,we=new Uint8Array(ve);we.set(be.length>ve?D.create().update(be).digest():be);for(let D=0;D<we.length;D++)we[D]^=54;this.iHash.update(we),this.oHash=D.create();for(let D=0;D<we.length;D++)we[D]^=106;this.oHash.update(we),we.fill(0)}update(D){return(0,te.exists)(this),this.iHash.update(D),this}digestInto(D){(0,te.exists)(this),(0,te.bytes)(D,this.outputLen),this.finished=!0,this.iHash.digestInto(D),this.oHash.update(D),this.oHash.digestInto(D),this.destroy()}digest(){const D=new Uint8Array(this.oHash.outputLen);return this.digestInto(D),D}_cloneInto(D){D||(D=Object.create(Object.getPrototypeOf(this),{}));const{oHash:te,iHash:he,finished:ye,destroyed:be,blockLen:ve,outputLen:we}=this;return D.finished=ye,D.destroyed=be,D.blockLen=ve,D.outputLen=we,D.oHash=te._cloneInto(D.oHash),D.iHash=he._cloneInto(D.iHash),D}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}D.HMAC=HMAC,D.hmac=(D,te,he)=>new HMAC(D,te).update(he).digest(),D.hmac.create=(D,te)=>new HMAC(D,te)}(cM)),cM}(),te=requireUtils$2(),he=requireWeierstrass();function getHash(he){return{hash:he,hmac:(ye,...be)=>(0,D.hmac)(he,ye,(0,te.concatBytes)(...be)),randomBytes:te.randomBytes}}return oM.getHash=getHash,oM.createCurve=function createCurve(D,te){const create=te=>(0,he.weierstrass)({...D,...getHash(te)});return Object.freeze({...create(te),create:create})},oM}function requireSecp256k1(){return sM||(sM=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.encodeToCurve=D.hashToCurve=D.schnorr=D.secp256k1=void 0;
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
const te=function requireSha256(){if(zN)return UN;zN=1,Object.defineProperty(UN,"__esModule",{value:!0}),UN.sha224=UN.sha256=void 0;const D=require_sha2(),te=requireUtils$2(),Chi=(D,te,he)=>D&te^~D&he,Maj=(D,te,he)=>D&te^D&he^te&he,he=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]),ye=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),be=new Uint32Array(64);class SHA256 extends D.SHA2{constructor(){super(64,32,8,!1),this.A=0|ye[0],this.B=0|ye[1],this.C=0|ye[2],this.D=0|ye[3],this.E=0|ye[4],this.F=0|ye[5],this.G=0|ye[6],this.H=0|ye[7]}get(){const{A:D,B:te,C:he,D:ye,E:be,F:ve,G:we,H:_e}=this;return[D,te,he,ye,be,ve,we,_e]}set(D,te,he,ye,be,ve,we,_e){this.A=0|D,this.B=0|te,this.C=0|he,this.D=0|ye,this.E=0|be,this.F=0|ve,this.G=0|we,this.H=0|_e}undefined(D,ye){for(let te=0;te<16;te++,ye+=4)be[te]=D.getUint32(ye,!1);for(let D=16;D<64;D++){const he=be[D-15],ye=be[D-2],ve=(0,te.rotr)(he,7)^(0,te.rotr)(he,18)^he>>>3,we=(0,te.rotr)(ye,17)^(0,te.rotr)(ye,19)^ye>>>10;be[D]=we+be[D-7]+ve+be[D-16]|0}let{A:ve,B:we,C:_e,D:Pe,E:Ie,F:Re,G:ke,H:Oe}=this;for(let D=0;D<64;D++){const ye=Oe+((0,te.rotr)(Ie,6)^(0,te.rotr)(Ie,11)^(0,te.rotr)(Ie,25))+Chi(Ie,Re,ke)+he[D]+be[D]|0,xe=((0,te.rotr)(ve,2)^(0,te.rotr)(ve,13)^(0,te.rotr)(ve,22))+Maj(ve,we,_e)|0;Oe=ke,ke=Re,Re=Ie,Ie=Pe+ye|0,Pe=_e,_e=we,we=ve,ve=ye+xe|0}ve=ve+this.A|0,we=we+this.B|0,_e=_e+this.C|0,Pe=Pe+this.D|0,Ie=Ie+this.E|0,Re=Re+this.F|0,ke=ke+this.G|0,Oe=Oe+this.H|0,this.set(ve,we,_e,Pe,Ie,Re,ke,Oe)}roundClean(){be.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}class SHA224 extends SHA256{constructor(){super(),this.A=-1056596264,this.B=914150663,this.C=812702999,this.D=-150054599,this.E=-4191439,this.F=1750603025,this.G=1694076839,this.H=-1090891868,this.outputLen=28}}return UN.sha256=(0,te.wrapConstructor)((()=>new SHA256)),UN.sha224=(0,te.wrapConstructor)((()=>new SHA224)),UN}(),he=requireUtils$2(),ye=requireModular(),be=requireWeierstrass(),ve=requireUtils$1(),we=requireHashToCurve(),_e=require_shortw_utils(),Pe=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Ie=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Re=BigInt(1),ke=BigInt(2),divNearest=(D,te)=>(D+te/ke)/te;function sqrtMod(D){const te=Pe,he=BigInt(3),be=BigInt(6),ve=BigInt(11),we=BigInt(22),_e=BigInt(23),Ie=BigInt(44),Re=BigInt(88),xe=D*D*D%te,Be=xe*xe*D%te,Fe=(0,ye.pow2)(Be,he,te)*Be%te,De=(0,ye.pow2)(Fe,he,te)*Be%te,Le=(0,ye.pow2)(De,ke,te)*xe%te,Ue=(0,ye.pow2)(Le,ve,te)*Le%te,qe=(0,ye.pow2)(Ue,we,te)*Ue%te,je=(0,ye.pow2)(qe,Ie,te)*qe%te,Je=(0,ye.pow2)(je,Re,te)*je%te,et=(0,ye.pow2)(Je,Ie,te)*qe%te,tt=(0,ye.pow2)(et,he,te)*Be%te,rt=(0,ye.pow2)(tt,_e,te)*Ue%te,nt=(0,ye.pow2)(rt,be,te)*xe%te,at=(0,ye.pow2)(nt,ke,te);if(!Oe.eql(Oe.sqr(at),D))throw new Error("Cannot find square root");return at}const Oe=(0,ye.Field)(Pe,void 0,void 0,{sqrt:sqrtMod});D.secp256k1=(0,_e.createCurve)({a:BigInt(0),b:BigInt(7),Fp:Oe,n:Ie,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:D=>{const te=Ie,he=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),be=-Re*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),ve=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),we=he,_e=BigInt("0x100000000000000000000000000000000"),Pe=divNearest(we*D,te),ke=divNearest(-be*D,te);let Oe=(0,ye.mod)(D-Pe*he-ke*ve,te),xe=(0,ye.mod)(-Pe*be-ke*we,te);const Be=Oe>_e,Fe=xe>_e;if(Be&&(Oe=te-Oe),Fe&&(xe=te-xe),Oe>_e||xe>_e)throw new Error("splitScalar: Endomorphism failed, k="+D);return{k1neg:Be,k1:Oe,k2neg:Fe,k2:xe}}}},te.sha256);const xe=BigInt(0),fe=D=>"bigint"==typeof D&&xe<D&&D<Pe,ge=D=>"bigint"==typeof D&&xe<D&&D<Ie,Be={};function taggedHash(D,...he){let ye=Be[D];if(void 0===ye){const he=(0,te.sha256)(Uint8Array.from(D,(D=>D.charCodeAt(0))));ye=(0,ve.concatBytes)(he,he),Be[D]=ye}return(0,te.sha256)((0,ve.concatBytes)(ye,...he))}const pointToBytes=D=>D.toRawBytes(!0).slice(1),numTo32b=D=>(0,ve.numberToBytesBE)(D,32),modP=D=>(0,ye.mod)(D,Pe),modN=D=>(0,ye.mod)(D,Ie),Fe=D.secp256k1.ProjectivePoint,GmulAdd=(D,te,he)=>Fe.BASE.multiplyAndAddUnsafe(D,te,he);function schnorrGetExtPubKey(te){let he=D.secp256k1.utils.normPrivateKeyToScalar(te),ye=Fe.fromPrivateKey(he);return{scalar:ye.hasEvenY()?he:modN(-he),bytes:pointToBytes(ye)}}function lift_x(D){if(!fe(D))throw new Error("bad x: need 0 < x < p");const te=modP(D*D);let he=sqrtMod(modP(te*D+BigInt(7)));he%ke!==xe&&(he=modP(-he));const ye=new Fe(D,he,Re);return ye.assertValidity(),ye}function challenge(...D){return modN((0,ve.bytesToNumberBE)(taggedHash("BIP0340/challenge",...D)))}function schnorrGetPublicKey(D){return schnorrGetExtPubKey(D).bytes}function schnorrSign(D,te,ye=(0,he.randomBytes)(32)){const be=(0,ve.ensureBytes)("message",D),{bytes:we,scalar:_e}=schnorrGetExtPubKey(te),Pe=(0,ve.ensureBytes)("auxRand",ye,32),Ie=numTo32b(_e^(0,ve.bytesToNumberBE)(taggedHash("BIP0340/aux",Pe))),Re=taggedHash("BIP0340/nonce",Ie,we,be),ke=modN((0,ve.bytesToNumberBE)(Re));if(ke===xe)throw new Error("sign failed: k is zero");const{bytes:Oe,scalar:Be}=schnorrGetExtPubKey(ke),Fe=challenge(Oe,we,be),De=new Uint8Array(64);if(De.set(Oe,0),De.set(numTo32b(modN(Be+Fe*_e)),32),!schnorrVerify(De,be,we))throw new Error("sign: Invalid signature produced");return De}function schnorrVerify(D,te,he){const ye=(0,ve.ensureBytes)("signature",D,64),be=(0,ve.ensureBytes)("message",te),we=(0,ve.ensureBytes)("publicKey",he,32);try{const D=lift_x((0,ve.bytesToNumberBE)(we)),te=(0,ve.bytesToNumberBE)(ye.subarray(0,32));if(!fe(te))return!1;const he=(0,ve.bytesToNumberBE)(ye.subarray(32,64));if(!ge(he))return!1;const _e=challenge(numTo32b(te),pointToBytes(D),be),Pe=GmulAdd(D,he,modN(-_e));return!(!Pe||!Pe.hasEvenY()||Pe.toAffine().x!==te)}catch(D){return!1}}D.schnorr={getPublicKey:schnorrGetPublicKey,sign:schnorrSign,verify:schnorrVerify,utils:{randomPrivateKey:D.secp256k1.utils.randomPrivateKey,lift_x:lift_x,pointToBytes:pointToBytes,numberToBytesBE:ve.numberToBytesBE,bytesToNumberBE:ve.bytesToNumberBE,taggedHash:taggedHash,mod:ye.mod}};const De=(()=>(0,we.isogenyMap)(Oe,[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map((D=>D.map((D=>BigInt(D)))))))(),Le=(()=>(0,be.mapToCurveSimpleSWU)(Oe,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:Oe.create(BigInt("-11"))}))(),Ue=(()=>(0,we.createHasher)(D.secp256k1.ProjectivePoint,(D=>{const{x:te,y:he}=Le(Oe.create(D[0]));return De(te,he)}),{DST:"secp256k1_XMD:SHA-256_SSWU_RO_",encodeDST:"secp256k1_XMD:SHA-256_SSWU_NU_",p:Oe.ORDER,m:1,k:128,expand:"xmd",hash:te.sha256}))();D.hashToCurve=Ue.hashToCurve,D.encodeToCurve=Ue.encodeToCurve}(LN)),LN}var dM,uM={},fM={},lM={};function requireAddresses(){return dM||(dM=1,Object.defineProperty(lM,"__esModule",{value:!0}),lM.ZeroAddress=void 0,lM.ZeroAddress="0x0000000000000000000000000000000000000000"),lM}var pM,hM={};var yM,mM={};var bM,gM,vM,wM,_M,TM,AM={};function requireConstants(){return gM||(gM=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.MessagePrefix=D.EtherSymbol=D.MaxInt256=D.MinInt256=D.MaxUint256=D.WeiPerEther=D.N=D.ZeroHash=D.ZeroAddress=void 0;var te=requireAddresses();Object.defineProperty(D,"ZeroAddress",{enumerable:!0,get:function(){return te.ZeroAddress}});var he=function requireHashes(){return pM||(pM=1,Object.defineProperty(hM,"__esModule",{value:!0}),hM.ZeroHash=void 0,hM.ZeroHash="0x0000000000000000000000000000000000000000000000000000000000000000"),hM}();Object.defineProperty(D,"ZeroHash",{enumerable:!0,get:function(){return he.ZeroHash}});var ye=function requireNumbers(){return yM||(yM=1,Object.defineProperty(mM,"__esModule",{value:!0}),mM.MaxInt256=mM.MinInt256=mM.MaxUint256=mM.WeiPerEther=mM.N=void 0,mM.N=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),mM.WeiPerEther=BigInt("1000000000000000000"),mM.MaxUint256=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),mM.MinInt256=BigInt("0x8000000000000000000000000000000000000000000000000000000000000000")*BigInt(-1),mM.MaxInt256=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")),mM}();Object.defineProperty(D,"N",{enumerable:!0,get:function(){return ye.N}}),Object.defineProperty(D,"WeiPerEther",{enumerable:!0,get:function(){return ye.WeiPerEther}}),Object.defineProperty(D,"MaxUint256",{enumerable:!0,get:function(){return ye.MaxUint256}}),Object.defineProperty(D,"MinInt256",{enumerable:!0,get:function(){return ye.MinInt256}}),Object.defineProperty(D,"MaxInt256",{enumerable:!0,get:function(){return ye.MaxInt256}});var be=function requireStrings(){return bM||(bM=1,Object.defineProperty(AM,"__esModule",{value:!0}),AM.MessagePrefix=AM.EtherSymbol=void 0,AM.EtherSymbol="Ξ",AM.MessagePrefix="Ethereum Signed Message:\n"),AM}();Object.defineProperty(D,"EtherSymbol",{enumerable:!0,get:function(){return be.EtherSymbol}}),Object.defineProperty(D,"MessagePrefix",{enumerable:!0,get:function(){return be.MessagePrefix}})}(fM)),fM}function requireSignature(){if(vM)return uM;vM=1,Object.defineProperty(uM,"__esModule",{value:!0}),uM.Signature=void 0;const D=requireConstants(),te=requireUtils$4(),he=BigInt(0),ye=BigInt(1),be=BigInt(2),ve=BigInt(27),we=BigInt(28),_e=BigInt(35),Pe={};function toUint256(D){return(0,te.zeroPadValue)((0,te.toBeArray)(D),32)}var Ie=new WeakMap,Re=new WeakMap,ke=new WeakMap,Oe=new WeakMap;class Signature{get r(){return _classPrivateFieldGet2(Ie,this)}set r(D){(0,te.assertArgument)(32===(0,te.dataLength)(D),"invalid r","value",D),_classPrivateFieldSet2(Ie,this,(0,te.hexlify)(D))}get s(){return _classPrivateFieldGet2(Re,this)}set s(D){(0,te.assertArgument)(32===(0,te.dataLength)(D),"invalid s","value",D);const he=(0,te.hexlify)(D);(0,te.assertArgument)(parseInt(he.substring(0,3))<8,"non-canonical s","value",he),_classPrivateFieldSet2(Re,this,he)}get v(){return _classPrivateFieldGet2(ke,this)}set v(D){const he=(0,te.getNumber)(D,"value");(0,te.assertArgument)(27===he||28===he,"invalid v","v",D),_classPrivateFieldSet2(ke,this,he)}get networkV(){return _classPrivateFieldGet2(Oe,this)}get legacyChainId(){const D=this.networkV;return null==D?null:Signature.getChainId(D)}get yParity(){return 27===this.v?0:1}get yParityAndS(){const D=(0,te.getBytes)(this.s);return this.yParity&&(D[0]|=128),(0,te.hexlify)(D)}get compactSerialized(){return(0,te.concat)([this.r,this.yParityAndS])}get serialized(){return(0,te.concat)([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(D,he,ye,be){_classPrivateFieldInitSpec(this,Ie,void 0),_classPrivateFieldInitSpec(this,Re,void 0),_classPrivateFieldInitSpec(this,ke,void 0),_classPrivateFieldInitSpec(this,Oe,void 0),(0,te.assertPrivate)(D,Pe,"Signature"),_classPrivateFieldSet2(Ie,this,he),_classPrivateFieldSet2(Re,this,ye),_classPrivateFieldSet2(ke,this,be),_classPrivateFieldSet2(Oe,this,null)}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const D=new Signature(Pe,this.r,this.s,this.v);return this.networkV&&_classPrivateFieldSet2(Oe,D,this.networkV),D}toJSON(){const D=this.networkV;return{_type:"signature",networkV:null!=D?D.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(D){const ye=(0,te.getBigInt)(D,"v");return ye==ve||ye==we?he:((0,te.assertArgument)(ye>=_e,"invalid EIP-155 v","v",D),(ye-_e)/be)}static getChainIdV(D,he){return(0,te.getBigInt)(D)*be+BigInt(35+he-27)}static getNormalizedV(D){const be=(0,te.getBigInt)(D);return be===he||be===ve?27:be===ye||be===we?28:((0,te.assertArgument)(be>=_e,"invalid v","v",D),be&ye?27:28)}static from(he){function assertError(D,ye){(0,te.assertArgument)(D,ye,"signature",he)}if(null==he)return new Signature(Pe,D.ZeroHash,D.ZeroHash,27);if("string"==typeof he){const D=(0,te.getBytes)(he,"signature");if(64===D.length){const he=(0,te.hexlify)(D.slice(0,32)),ye=D.slice(32,64),be=128&ye[0]?28:27;return ye[0]&=127,new Signature(Pe,he,(0,te.hexlify)(ye),be)}if(65===D.length){const he=(0,te.hexlify)(D.slice(0,32)),ye=D.slice(32,64);assertError(0==(128&ye[0]),"non-canonical s");const be=Signature.getNormalizedV(D[64]);return new Signature(Pe,he,(0,te.hexlify)(ye),be)}assertError(!1,"invalid raw signature length")}if(he instanceof Signature)return he.clone();const ye=he.r;assertError(null!=ye,"missing r");const be=toUint256(ye),ve=function(D,he){if(null!=D)return toUint256(D);if(null!=he){assertError((0,te.isHexString)(he,32),"invalid yParityAndS");const D=(0,te.getBytes)(he);return D[0]&=127,(0,te.hexlify)(D)}assertError(!1,"missing s")}(he.s,he.yParityAndS);assertError(0==(128&(0,te.getBytes)(ve)[0]),"non-canonical s");const{networkV:we,v:Ie}=function(D,he,ye){if(null!=D){const he=(0,te.getBigInt)(D);return{networkV:he>=_e?he:void 0,v:Signature.getNormalizedV(he)}}if(null!=he)return assertError((0,te.isHexString)(he,32),"invalid yParityAndS"),{v:128&(0,te.getBytes)(he)[0]?28:27};if(null!=ye){switch((0,te.getNumber)(ye,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}assertError(!1,"invalid yParity")}assertError(!1,"missing v")}(he.v,he.yParityAndS,he.yParity),Re=new Signature(Pe,be,ve,Ie);return we&&_classPrivateFieldSet2(Oe,Re,we),assertError(null==he.yParity||(0,te.getNumber)(he.yParity,"sig.yParity")===Re.yParity,"yParity mismatch"),assertError(null==he.yParityAndS||he.yParityAndS===Re.yParityAndS,"yParityAndS mismatch"),Re}}return uM.Signature=Signature,uM}function requireCrypto(){return _M||(_M=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.lock=D.Signature=D.SigningKey=D.scryptSync=D.scrypt=D.pbkdf2=D.sha512=D.sha256=D.ripemd160=D.keccak256=D.randomBytes=D.computeHmac=void 0;const te=function requireHmac$1(){if(hN)return Xx;hN=1,Object.defineProperty(Xx,"__esModule",{value:!0}),Xx.computeHmac=void 0;const D=requireCryptoBrowser(),te=requireUtils$4();let he=!1;const _computeHmac=function(te,he,ye){return(0,D.createHmac)(te,he).update(ye).digest()};let ye=_computeHmac;function computeHmac(D,he,be){const ve=(0,te.getBytes)(he,"key"),we=(0,te.getBytes)(be,"data");return(0,te.hexlify)(ye(D,ve,we))}return Xx.computeHmac=computeHmac,computeHmac._=_computeHmac,computeHmac.lock=function(){he=!0},computeHmac.register=function(D){if(he)throw new Error("computeHmac is locked");ye=D},Object.freeze(computeHmac),Xx}();Object.defineProperty(D,"computeHmac",{enumerable:!0,get:function(){return te.computeHmac}});const he=requireKeccak();Object.defineProperty(D,"keccak256",{enumerable:!0,get:function(){return he.keccak256}});const ye=function requireRipemd160(){if(TN)return AN;TN=1,Object.defineProperty(AN,"__esModule",{value:!0}),AN.ripemd160=void 0;const D=requireRipemd160$1(),te=requireUtils$4();let he=!1;const _ripemd160=function(te){return(0,D.ripemd160)(te)};let ye=_ripemd160;function ripemd160(D){const he=(0,te.getBytes)(D,"data");return(0,te.hexlify)(ye(he))}return AN.ripemd160=ripemd160,ripemd160._=_ripemd160,ripemd160.lock=function(){he=!0},ripemd160.register=function(D){if(he)throw new TypeError("ripemd160 is locked");ye=D},Object.freeze(ripemd160),AN}();Object.defineProperty(D,"ripemd160",{enumerable:!0,get:function(){return ye.ripemd160}});const be=function requirePbkdf2(){if(PN)return SN;PN=1,Object.defineProperty(SN,"__esModule",{value:!0}),SN.pbkdf2=void 0;const D=requireCryptoBrowser(),te=requireUtils$4();let he=!1;const _pbkdf2=function(te,he,ye,be,ve){return(0,D.pbkdf2Sync)(te,he,ye,be,ve)};let ye=_pbkdf2;function pbkdf2$1(D,he,be,ve,we){const _e=(0,te.getBytes)(D,"password"),Pe=(0,te.getBytes)(he,"salt");return(0,te.hexlify)(ye(_e,Pe,be,ve,we))}return SN.pbkdf2=pbkdf2$1,pbkdf2$1._=_pbkdf2,pbkdf2$1.lock=function(){he=!0},pbkdf2$1.register=function(D){if(he)throw new Error("pbkdf2 is locked");ye=D},Object.freeze(pbkdf2$1),SN}();Object.defineProperty(D,"pbkdf2",{enumerable:!0,get:function(){return be.pbkdf2}});const ve=function requireRandom(){if(CN)return IN;CN=1,Object.defineProperty(IN,"__esModule",{value:!0}),IN.randomBytes=void 0;const D=requireCryptoBrowser();let te=!1;const _randomBytes=function(te){return new Uint8Array((0,D.randomBytes)(te))};let he=_randomBytes;function randomBytes(D){return he(D)}return IN.randomBytes=randomBytes,randomBytes._=_randomBytes,randomBytes.lock=function(){te=!0},randomBytes.register=function(D){if(te)throw new Error("randomBytes is locked");he=D},Object.freeze(randomBytes),IN}();Object.defineProperty(D,"randomBytes",{enumerable:!0,get:function(){return ve.randomBytes}});const we=function requireScrypt(){if(kN)return ON;kN=1,Object.defineProperty(ON,"__esModule",{value:!0}),ON.scryptSync=ON.scrypt=void 0;const D=requireScrypt$1(),te=requireUtils$4();let he=!1,ye=!1;const _scryptAsync=async function(te,he,ye,be,ve,we,_e){return await(0,D.scryptAsync)(te,he,{N:ye,r:be,p:ve,dkLen:we,onProgress:_e})},_scryptSync=function(te,he,ye,be,ve,we){return(0,D.scrypt)(te,he,{N:ye,r:be,p:ve,dkLen:we})};let be=_scryptAsync,ve=_scryptSync;async function scrypt(D,he,ye,ve,we,_e,Pe){const Ie=(0,te.getBytes)(D,"passwd"),Re=(0,te.getBytes)(he,"salt");return(0,te.hexlify)(await be(Ie,Re,ye,ve,we,_e,Pe))}function scryptSync(D,he,ye,be,we,_e){const Pe=(0,te.getBytes)(D,"passwd"),Ie=(0,te.getBytes)(he,"salt");return(0,te.hexlify)(ve(Pe,Ie,ye,be,we,_e))}return ON.scrypt=scrypt,scrypt._=_scryptAsync,scrypt.lock=function(){ye=!0},scrypt.register=function(D){if(ye)throw new Error("scrypt is locked");be=D},Object.freeze(scrypt),ON.scryptSync=scryptSync,scryptSync._=_scryptSync,scryptSync.lock=function(){he=!0},scryptSync.register=function(D){if(he)throw new Error("scryptSync is locked");ve=D},Object.freeze(scryptSync),ON}();Object.defineProperty(D,"scrypt",{enumerable:!0,get:function(){return we.scrypt}}),Object.defineProperty(D,"scryptSync",{enumerable:!0,get:function(){return we.scryptSync}});const _e=function requireSha2(){if(NN)return MN;NN=1,Object.defineProperty(MN,"__esModule",{value:!0}),MN.sha512=MN.sha256=void 0;const D=requireCryptoBrowser(),te=requireUtils$4(),_sha256=function(te){return(0,D.createHash)("sha256").update(te).digest()},_sha512=function(te){return(0,D.createHash)("sha512").update(te).digest()};let he=_sha256,ye=_sha512,be=!1,ve=!1;function sha256(D){const ye=(0,te.getBytes)(D,"data");return(0,te.hexlify)(he(ye))}function sha512(D){const he=(0,te.getBytes)(D,"data");return(0,te.hexlify)(ye(he))}return MN.sha256=sha256,sha256._=_sha256,sha256.lock=function(){be=!0},sha256.register=function(D){if(be)throw new Error("sha256 is locked");he=D},Object.freeze(sha256),MN.sha512=sha512,sha512._=_sha512,sha512.lock=function(){ve=!0},sha512.register=function(D){if(ve)throw new Error("sha512 is locked");ye=D},Object.freeze(sha256),MN}();Object.defineProperty(D,"sha256",{enumerable:!0,get:function(){return _e.sha256}}),Object.defineProperty(D,"sha512",{enumerable:!0,get:function(){return _e.sha512}});var Pe=function requireSigningKey(){if(wM)return DN;wM=1,Object.defineProperty(DN,"__esModule",{value:!0}),DN.SigningKey=void 0;const D=requireSecp256k1(),te=requireUtils$4(),he=requireSignature();var ye=new WeakMap;class SigningKey{constructor(D){_classPrivateFieldInitSpec(this,ye,void 0),(0,te.assertArgument)(32===(0,te.dataLength)(D),"invalid private key","privateKey","[REDACTED]"),_classPrivateFieldSet2(ye,this,(0,te.hexlify)(D))}get privateKey(){return _classPrivateFieldGet2(ye,this)}get publicKey(){return SigningKey.computePublicKey(_classPrivateFieldGet2(ye,this))}get compressedPublicKey(){return SigningKey.computePublicKey(_classPrivateFieldGet2(ye,this),!0)}sign(be){(0,te.assertArgument)(32===(0,te.dataLength)(be),"invalid digest length","digest",be);const ve=D.secp256k1.sign((0,te.getBytesCopy)(be),(0,te.getBytesCopy)(_classPrivateFieldGet2(ye,this)),{lowS:!0});return he.Signature.from({r:(0,te.toBeHex)(ve.r,32),s:(0,te.toBeHex)(ve.s,32),v:ve.recovery?28:27})}computeSharedSecret(he){const be=SigningKey.computePublicKey(he);return(0,te.hexlify)(D.secp256k1.getSharedSecret((0,te.getBytesCopy)(_classPrivateFieldGet2(ye,this)),(0,te.getBytes)(be),!1))}static computePublicKey(he,ye){let be=(0,te.getBytes)(he,"key");if(32===be.length){const he=D.secp256k1.getPublicKey(be,!!ye);return(0,te.hexlify)(he)}if(64===be.length){const D=new Uint8Array(65);D[0]=4,D.set(be,1),be=D}const ve=D.secp256k1.ProjectivePoint.fromHex(be);return(0,te.hexlify)(ve.toRawBytes(ye))}static recoverPublicKey(ye,be){(0,te.assertArgument)(32===(0,te.dataLength)(ye),"invalid digest length","digest",ye);const ve=he.Signature.from(be);let we=D.secp256k1.Signature.fromCompact((0,te.getBytesCopy)((0,te.concat)([ve.r,ve.s])));we=we.addRecoveryBit(ve.yParity);const _e=we.recoverPublicKey((0,te.getBytesCopy)(ye));return(0,te.assertArgument)(null!=_e,"invalid signautre for digest","signature",be),"0x"+_e.toHex(!1)}static addPoints(te,he,ye){const be=D.secp256k1.ProjectivePoint.fromHex(SigningKey.computePublicKey(te).substring(2)),ve=D.secp256k1.ProjectivePoint.fromHex(SigningKey.computePublicKey(he).substring(2));return"0x"+be.add(ve).toHex(!!ye)}}return DN.SigningKey=SigningKey,DN}();Object.defineProperty(D,"SigningKey",{enumerable:!0,get:function(){return Pe.SigningKey}});var Ie=requireSignature();Object.defineProperty(D,"Signature",{enumerable:!0,get:function(){return Ie.Signature}}),D.lock=function lock(){te.computeHmac.lock(),he.keccak256.lock(),be.pbkdf2.lock(),ve.randomBytes.lock(),ye.ripemd160.lock(),we.scrypt.lock(),we.scryptSync.lock(),_e.sha256.lock(),_e.sha512.lock(),ve.randomBytes.lock()}}(Jx)),Jx}function requireAddress$3(){if(TM)return Kx;TM=1,Object.defineProperty(Kx,"__esModule",{value:!0}),Kx.getIcapAddress=Kx.getAddress=void 0;const D=requireCrypto(),te=requireUtils$4(),he=BigInt(0),ye=BigInt(36);function getChecksumAddress(he){const ye=(he=he.toLowerCase()).substring(2).split(""),be=new Uint8Array(40);for(let D=0;D<40;D++)be[D]=ye[D].charCodeAt(0);const ve=(0,te.getBytes)((0,D.keccak256)(be));for(let D=0;D<40;D+=2)ve[D>>1]>>4>=8&&(ye[D]=ye[D].toUpperCase()),(15&ve[D>>1])>=8&&(ye[D+1]=ye[D+1].toUpperCase());return"0x"+ye.join("")}const be={};for(let D=0;D<10;D++)be[String(D)]=String(D);for(let D=0;D<26;D++)be[String.fromCharCode(65+D)]=String(10+D);const ve=15;function ibanChecksum(D){let te=(D=(D=D.toUpperCase()).substring(4)+D.substring(0,2)+"00").split("").map((D=>be[D])).join("");for(;te.length>=ve;){let D=te.substring(0,ve);te=parseInt(D,10)%97+te.substring(D.length)}let he=String(98-parseInt(te,10)%97);for(;he.length<2;)he="0"+he;return he}const we=function(){const D={};for(let te=0;te<36;te++){D["0123456789abcdefghijklmnopqrstuvwxyz"[te]]=BigInt(te)}return D}();function getAddress(D){if((0,te.assertArgument)("string"==typeof D,"invalid address","address",D),D.match(/^(0x)?[0-9a-fA-F]{40}$/)){D.startsWith("0x")||(D="0x"+D);const he=getChecksumAddress(D);return(0,te.assertArgument)(!D.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||he===D,"bad address checksum","address",D),he}if(D.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){(0,te.assertArgument)(D.substring(2,4)===ibanChecksum(D),"bad icap checksum","address",D);let be=function fromBase36(D){D=D.toLowerCase();let te=he;for(let he=0;he<D.length;he++)te=te*ye+we[D[he]];return te}(D.substring(4)).toString(16);for(;be.length<40;)be="0"+be;return getChecksumAddress("0x"+be)}(0,te.assertArgument)(!1,"invalid address","address",D)}return Kx.getAddress=getAddress,Kx.getIcapAddress=function getIcapAddress(D){let te=BigInt(getAddress(D)).toString(36).toUpperCase();for(;te.length<30;)te="0"+te;return"XE"+ibanChecksum("XE00"+te)+te},Kx}var EM,PM={};var SM,CM,IM={};function requireAddress$2(){return CM||(CM=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.resolveAddress=D.isAddress=D.isAddressable=D.getCreate2Address=D.getCreateAddress=D.getIcapAddress=D.getAddress=void 0;var te=requireAddress$3();Object.defineProperty(D,"getAddress",{enumerable:!0,get:function(){return te.getAddress}}),Object.defineProperty(D,"getIcapAddress",{enumerable:!0,get:function(){return te.getIcapAddress}});var he=function requireContractAddress(){if(EM)return PM;EM=1,Object.defineProperty(PM,"__esModule",{value:!0}),PM.getCreate2Address=PM.getCreateAddress=void 0;const D=requireCrypto(),te=requireUtils$4(),he=requireAddress$3();return PM.getCreateAddress=function getCreateAddress(ye){const be=(0,he.getAddress)(ye.from);let ve=(0,te.getBigInt)(ye.nonce,"tx.nonce").toString(16);return ve="0"===ve?"0x":ve.length%2?"0x0"+ve:"0x"+ve,(0,he.getAddress)((0,te.dataSlice)((0,D.keccak256)((0,te.encodeRlp)([be,ve])),12))},PM.getCreate2Address=function getCreate2Address(ye,be,ve){const we=(0,he.getAddress)(ye),_e=(0,te.getBytes)(be,"salt"),Pe=(0,te.getBytes)(ve,"initCodeHash");return(0,te.assertArgument)(32===_e.length,"salt must be 32 bytes","salt",be),(0,te.assertArgument)(32===Pe.length,"initCodeHash must be 32 bytes","initCodeHash",ve),(0,he.getAddress)((0,te.dataSlice)((0,D.keccak256)((0,te.concat)(["0xff",we,_e,Pe])),12))},PM}();Object.defineProperty(D,"getCreateAddress",{enumerable:!0,get:function(){return he.getCreateAddress}}),Object.defineProperty(D,"getCreate2Address",{enumerable:!0,get:function(){return he.getCreate2Address}});var ye=function requireChecks(){if(SM)return IM;SM=1,Object.defineProperty(IM,"__esModule",{value:!0}),IM.resolveAddress=IM.isAddress=IM.isAddressable=void 0;const D=requireUtils$4(),te=requireAddress$3();function isAddressable(D){return D&&"function"==typeof D.getAddress}async function checkAddress(he,ye){const be=await ye;return null!=be&&"0x0000000000000000000000000000000000000000"!==be||((0,D.assert)("string"!=typeof he,"unconfigured name","UNCONFIGURED_NAME",{value:he}),(0,D.assertArgument)(!1,"invalid AddressLike value; did not resolve to a value address","target",he)),(0,te.getAddress)(be)}return IM.isAddressable=isAddressable,IM.isAddress=function isAddress(D){try{return(0,te.getAddress)(D),!0}catch(D){}return!1},IM.resolveAddress=function resolveAddress(he,ye){return"string"==typeof he?he.match(/^0x[0-9a-f]{40}$/i)?(0,te.getAddress)(he):((0,D.assert)(null!=ye,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),checkAddress(he,ye.resolveName(he))):isAddressable(he)?checkAddress(he,he.getAddress()):he&&"function"==typeof he.then?checkAddress(he,he):void(0,D.assertArgument)(!1,"unsupported addressable value","target",he)},IM}();Object.defineProperty(D,"isAddressable",{enumerable:!0,get:function(){return ye.isAddressable}}),Object.defineProperty(D,"isAddress",{enumerable:!0,get:function(){return ye.isAddress}}),Object.defineProperty(D,"resolveAddress",{enumerable:!0,get:function(){return ye.resolveAddress}})}(Vx)),Vx}var RM,kM,OM={};function requireTyped(){if(RM)return OM;RM=1,Object.defineProperty(OM,"__esModule",{value:!0}),OM.Typed=void 0;const D=requireUtils$4(),te={};function n(D,he){let ye=!1;return he<0&&(ye=!0,he*=-1),new Typed(te,`${ye?"":"u"}int${he}`,D,{signed:ye,width:he})}function b(D,he){return new Typed(te,`bytes${he||""}`,D,{size:he})}const he=Symbol.for("_ethers_typed");var ye=new WeakMap;class Typed{constructor(be,ve,we,_e){_defineProperty(this,"type",void 0),_defineProperty(this,"value",void 0),_classPrivateFieldInitSpec(this,ye,void 0),_defineProperty(this,"_typedSymbol",void 0),null==_e&&(_e=null),(0,D.assertPrivate)(te,be,"Typed"),(0,D.defineProperties)(this,{_typedSymbol:he,type:ve,value:we}),_classPrivateFieldSet2(ye,this,_e),this.format()}format(){if("array"===this.type)throw new Error("");if("dynamicArray"===this.type)throw new Error("");return"tuple"===this.type?`tuple(${this.value.map((D=>D.format())).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return"string"===this.type}get tupleName(){if("tuple"!==this.type)throw TypeError("not a tuple");return _classPrivateFieldGet2(ye,this)}get arrayLength(){if("array"!==this.type)throw TypeError("not an array");return!0===_classPrivateFieldGet2(ye,this)?-1:!1===_classPrivateFieldGet2(ye,this)?this.value.length:null}static from(D,he){return new Typed(te,D,he)}static uint8(D){return n(D,8)}static uint16(D){return n(D,16)}static uint24(D){return n(D,24)}static uint32(D){return n(D,32)}static uint40(D){return n(D,40)}static uint48(D){return n(D,48)}static uint56(D){return n(D,56)}static uint64(D){return n(D,64)}static uint72(D){return n(D,72)}static uint80(D){return n(D,80)}static uint88(D){return n(D,88)}static uint96(D){return n(D,96)}static uint104(D){return n(D,104)}static uint112(D){return n(D,112)}static uint120(D){return n(D,120)}static uint128(D){return n(D,128)}static uint136(D){return n(D,136)}static uint144(D){return n(D,144)}static uint152(D){return n(D,152)}static uint160(D){return n(D,160)}static uint168(D){return n(D,168)}static uint176(D){return n(D,176)}static uint184(D){return n(D,184)}static uint192(D){return n(D,192)}static uint200(D){return n(D,200)}static uint208(D){return n(D,208)}static uint216(D){return n(D,216)}static uint224(D){return n(D,224)}static uint232(D){return n(D,232)}static uint240(D){return n(D,240)}static uint248(D){return n(D,248)}static uint256(D){return n(D,256)}static uint(D){return n(D,256)}static int8(D){return n(D,-8)}static int16(D){return n(D,-16)}static int24(D){return n(D,-24)}static int32(D){return n(D,-32)}static int40(D){return n(D,-40)}static int48(D){return n(D,-48)}static int56(D){return n(D,-56)}static int64(D){return n(D,-64)}static int72(D){return n(D,-72)}static int80(D){return n(D,-80)}static int88(D){return n(D,-88)}static int96(D){return n(D,-96)}static int104(D){return n(D,-104)}static int112(D){return n(D,-112)}static int120(D){return n(D,-120)}static int128(D){return n(D,-128)}static int136(D){return n(D,-136)}static int144(D){return n(D,-144)}static int152(D){return n(D,-152)}static int160(D){return n(D,-160)}static int168(D){return n(D,-168)}static int176(D){return n(D,-176)}static int184(D){return n(D,-184)}static int192(D){return n(D,-192)}static int200(D){return n(D,-200)}static int208(D){return n(D,-208)}static int216(D){return n(D,-216)}static int224(D){return n(D,-224)}static int232(D){return n(D,-232)}static int240(D){return n(D,-240)}static int248(D){return n(D,-248)}static int256(D){return n(D,-256)}static int(D){return n(D,-256)}static bytes1(D){return b(D,1)}static bytes2(D){return b(D,2)}static bytes3(D){return b(D,3)}static bytes4(D){return b(D,4)}static bytes5(D){return b(D,5)}static bytes6(D){return b(D,6)}static bytes7(D){return b(D,7)}static bytes8(D){return b(D,8)}static bytes9(D){return b(D,9)}static bytes10(D){return b(D,10)}static bytes11(D){return b(D,11)}static bytes12(D){return b(D,12)}static bytes13(D){return b(D,13)}static bytes14(D){return b(D,14)}static bytes15(D){return b(D,15)}static bytes16(D){return b(D,16)}static bytes17(D){return b(D,17)}static bytes18(D){return b(D,18)}static bytes19(D){return b(D,19)}static bytes20(D){return b(D,20)}static bytes21(D){return b(D,21)}static bytes22(D){return b(D,22)}static bytes23(D){return b(D,23)}static bytes24(D){return b(D,24)}static bytes25(D){return b(D,25)}static bytes26(D){return b(D,26)}static bytes27(D){return b(D,27)}static bytes28(D){return b(D,28)}static bytes29(D){return b(D,29)}static bytes30(D){return b(D,30)}static bytes31(D){return b(D,31)}static bytes32(D){return b(D,32)}static address(D){return new Typed(te,"address",D)}static bool(D){return new Typed(te,"bool",!!D)}static bytes(D){return new Typed(te,"bytes",D)}static string(D){return new Typed(te,"string",D)}static array(D,te){throw new Error("not implemented yet")}static tuple(D,te){throw new Error("not implemented yet")}static overrides(D){return new Typed(te,"overrides",Object.assign({},D))}static isTyped(D){return D&&"object"==typeof D&&"_typedSymbol"in D&&D._typedSymbol===he}static dereference(D,te){if(Typed.isTyped(D)){if(D.type!==te)throw new Error(`invalid type: expecetd ${te}, got ${D.type}`);return D.value}return D}}return OM.Typed=Typed,OM}var xM,NM,MM={},BM={};function requireArray(){if(NM)return MM;NM=1,Object.defineProperty(MM,"__esModule",{value:!0}),MM.ArrayCoder=MM.unpack=MM.pack=void 0;const D=requireUtils$4(),te=requireTyped(),he=requireAbstractCoder(),ye=function requireAnonymous(){if(xM)return BM;xM=1,Object.defineProperty(BM,"__esModule",{value:!0}),BM.AnonymousCoder=void 0;const D=requireAbstractCoder();class AnonymousCoder extends D.Coder{constructor(D){super(D.name,D.type,"_",D.dynamic),_defineProperty(this,"coder",void 0),this.coder=D}defaultValue(){return this.coder.defaultValue()}encode(D,te){return this.coder.encode(D,te)}decode(D){return this.coder.decode(D)}}return BM.AnonymousCoder=AnonymousCoder,BM}();function pack(te,ye,be){let ve=[];if(Array.isArray(be))ve=be;else if(be&&"object"==typeof be){let te={};ve=ye.map((he=>{const ye=he.localName;return(0,D.assert)(ye,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:he},value:be}),(0,D.assert)(!te[ye],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:he},value:be}),te[ye]=!0,be[ye]}))}else(0,D.assertArgument)(!1,"invalid tuple value","tuple",be);(0,D.assertArgument)(ye.length===ve.length,"types/value length mismatch","tuple",be);let we=new he.Writer,_e=new he.Writer,Pe=[];ye.forEach(((D,te)=>{let he=ve[te];if(D.dynamic){let te=_e.length;D.encode(_e,he);let ye=we.writeUpdatableValue();Pe.push((D=>{ye(D+te)}))}else D.encode(we,he)})),Pe.forEach((D=>{D(we.length)}));let Ie=te.appendWriter(we);return Ie+=te.appendWriter(_e),Ie}function unpack(te,ye){let be=[],ve=[],we=te.subReader(0);return ye.forEach((he=>{let ye=null;if(he.dynamic){let be=te.readIndex(),ve=we.subReader(be);try{ye=he.decode(ve)}catch(te){if((0,D.isError)(te,"BUFFER_OVERRUN"))throw te;ye=te,ye.baseType=he.name,ye.name=he.localName,ye.type=he.type}}else try{ye=he.decode(te)}catch(te){if((0,D.isError)(te,"BUFFER_OVERRUN"))throw te;ye=te,ye.baseType=he.name,ye.name=he.localName,ye.type=he.type}if(null==ye)throw new Error("investigate");be.push(ye),ve.push(he.localName||null)})),he.Result.fromItems(be,ve)}MM.pack=pack,MM.unpack=unpack;class ArrayCoder extends he.Coder{constructor(te,he,ye){super("array",te.type+"["+(he>=0?he:"")+"]",ye,-1===he||te.dynamic),_defineProperty(this,"coder",void 0),_defineProperty(this,"length",void 0),(0,D.defineProperties)(this,{coder:te,length:he})}defaultValue(){const D=this.coder.defaultValue(),te=[];for(let he=0;he<this.length;he++)te.push(D);return te}encode(he,ye){const be=te.Typed.dereference(ye,"array");Array.isArray(be)||this._throwError("expected array value",be);let ve=this.length;-1===ve&&(ve=be.length,he.writeValue(be.length)),(0,D.assertArgumentCount)(be.length,ve,"coder array"+(this.localName?" "+this.localName:""));let we=[];for(let D=0;D<be.length;D++)we.push(this.coder);return pack(he,we,be)}decode(te){let be=this.length;-1===be&&(be=te.readIndex(),(0,D.assert)(be*he.WordSize<=te.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:te.bytes,offset:be*he.WordSize,length:te.dataLength}));let ve=[];for(let D=0;D<be;D++)ve.push(new ye.AnonymousCoder(this.coder));return unpack(te,ve)}}return MM.ArrayCoder=ArrayCoder,MM}var FM,DM={};var LM,UM={};function requireBytes(){if(LM)return UM;LM=1,Object.defineProperty(UM,"__esModule",{value:!0}),UM.BytesCoder=UM.DynamicBytesCoder=void 0;const D=requireUtils$4(),te=requireAbstractCoder();class DynamicBytesCoder extends te.Coder{constructor(D,te){super(D,D,te,!0)}defaultValue(){return"0x"}encode(te,he){he=(0,D.getBytesCopy)(he);let ye=te.writeValue(he.length);return ye+=te.writeBytes(he),ye}decode(D){return D.readBytes(D.readIndex(),!0)}}UM.DynamicBytesCoder=DynamicBytesCoder;return UM.BytesCoder=class BytesCoder extends DynamicBytesCoder{constructor(D){super("bytes",D)}decode(te){return(0,D.hexlify)(super.decode(te))}},UM}var $M,qM={};var GM,jM={};var HM,zM={};var WM,VM={};var KM,JM={};var XM,QM={},ZM={},YM={};function requireId(){if(XM)return YM;XM=1,Object.defineProperty(YM,"__esModule",{value:!0}),YM.id=void 0;const D=requireCrypto(),te=requireUtils$4();return YM.id=function id(he){return(0,D.keccak256)((0,te.toUtf8Bytes)(he))},YM}var eB,tB,rB={},nB={};function requireDist(){if(eB)return nB;eB=1;var D="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";const te=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),he=4;function read_compressed_payload(D){return function read_payload(D){let te=0;return()=>D[te++]}(function decode_arithmetic(D){let te=0;function u16(){return D[te++]<<8|D[te++]}let he=u16(),ye=1,be=[0,1];for(let D=1;D<he;D++)be.push(ye+=u16());let ve=u16(),we=te;te+=ve;let _e=0,Pe=0;function read_bit(){return 0==_e&&(Pe=Pe<<8|D[te++],_e=8),Pe>>--_e&1}const Ie=2**31,Re=Ie>>>1,ke=Ie-1;let Oe=0;for(let D=0;D<31;D++)Oe=Oe<<1|read_bit();let xe=[],Be=0,Fe=Ie;for(;;){let D=Math.floor(((Oe-Be+1)*ye-1)/Fe),te=0,ve=he;for(;ve-te>1;){let he=te+ve>>>1;D<be[he]?ve=he:te=he}if(0==te)break;xe.push(te);let we=Be+Math.floor(Fe*be[te]/ye),_e=Be+Math.floor(Fe*be[te+1]/ye)-1;for(;0==((we^_e)&Re);)Oe=Oe<<1&ke|read_bit(),we=we<<1&ke,_e=_e<<1&ke|1;for(;we&~_e&536870912;)Oe=Oe&Re|Oe<<1&ke>>>1|read_bit(),we=we<<1^Re,_e=(_e^Re)<<1|Re|1;Be=we,Fe=1+_e-we}let De=he-4;return xe.map((te=>{switch(te-De){case 3:return De+65792+(D[we++]<<16|D[we++]<<8|D[we++]);case 2:return De+256+(D[we++]<<8|D[we++]);case 1:return De+D[we++];default:return te-1}}))}(function unsafe_atob(D){let te=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach(((D,he)=>te[D.charCodeAt(0)]=he));let he=D.length,ye=new Uint8Array(6*he>>3);for(let be=0,ve=0,we=0,_e=0;be<he;be++)_e=_e<<6|te[D.charCodeAt(be)],we+=6,we>=8&&(ye[ve++]=_e>>(we-=8));return ye}(D)))}function signed(D){return 1&D?~D>>1:D>>1}function read_deltas(D,te){let he=Array(D);for(let ye=0,be=0;ye<D;ye++)he[ye]=be+=signed(te());return he}function read_sorted(D,te=0){let he=[];for(;;){let ye=D(),be=D();if(!be)break;te+=ye;for(let D=0;D<be;D++)he.push(te+D);te+=be+1}return he}function read_sorted_arrays(D){return read_array_while((()=>{let te=read_sorted(D);if(te.length)return te}))}function read_mapped(D){let te=[];for(;;){let he=D();if(0==he)break;te.push(read_linear_table(he,D))}for(;;){let he=D()-1;if(he<0)break;te.push(read_replacement_table(he,D))}return te.flat()}function read_array_while(D){let te=[];for(;;){let he=D(te.length);if(!he)break;te.push(he)}return te}function read_transposed(D,te,he){let ye=Array(D).fill().map((()=>[]));for(let be=0;be<te;be++)read_deltas(D,he).forEach(((D,te)=>ye[te].push(D)));return ye}function read_linear_table(D,te){let he=1+te(),ye=te(),be=read_array_while(te);return read_transposed(be.length,1+D,te).flatMap(((D,te)=>{let[ve,...we]=D;return Array(be[te]).fill().map(((D,te)=>{let be=te*ye;return[ve+te*he,we.map((D=>D+be))]}))}))}function read_replacement_table(D,te){return read_transposed(1+te(),1+D,te).map((D=>[D[0],D.slice(1)]))}function quote_cp(D){return`{${function hex_cp(D){return D.toString(16).toUpperCase().padStart(2,"0")}(D)}}`}function explode_cp(D){let te=[];for(let he=0,ye=D.length;he<ye;){let ye=D.codePointAt(he);he+=ye<65536?1:2,te.push(ye)}return te}function str_from_cps(D){let te=D.length;if(te<4096)return String.fromCodePoint(...D);let he=[];for(let ye=0;ye<te;)he.push(String.fromCodePoint(...D.slice(ye,ye+=4096)));return he.join("")}function compare_arrays(D,te){let he=D.length,ye=he-te.length;for(let be=0;0==ye&&be<he;be++)ye=D[be]-te[be];return ye}var ye="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";const be=44032,ve=4352,we=4449,_e=4519,Pe=28,Ie=21*Pe,Re=be+19*Ie,ke=ve+19,Oe=we+21,xe=_e+Pe;function unpack_cc(D){return D>>24&255}function unpack_cp(D){return 16777215&D}let Be,Fe,De,Le;function is_hangul(D){return D>=be&&D<Re}function compose_pair(D,te){if(D>=ve&&D<ke&&te>=we&&te<Oe)return be+(D-ve)*Ie+(te-we)*Pe;if(is_hangul(D)&&te>_e&&te<xe&&(D-be)%Pe==0)return D+(te-_e);{let he=Le.get(D);return he&&(he=he.get(te),he)?he:-1}}function decomposed(D){Be||function init$1(){let D=read_compressed_payload(ye);Be=new Map(read_sorted_arrays(D).flatMap(((D,te)=>D.map((D=>[D,te+1<<24]))))),Fe=new Set(read_sorted(D)),De=new Map,Le=new Map;for(let[te,he]of read_mapped(D)){if(!Fe.has(te)&&2==he.length){let[D,ye]=he,be=Le.get(D);be||(be=new Map,Le.set(D,be)),be.set(ye,te)}De.set(te,he.reverse())}}();let te=[],he=[],Re=!1;function add(D){let he=Be.get(D);he&&(Re=!0,D|=he),te.push(D)}for(let ye of D)for(;;){if(ye<128)te.push(ye);else if(is_hangul(ye)){let D=ye-be,te=D%Ie/Pe|0,he=D%Pe;add(ve+(D/Ie|0)),add(we+te),he>0&&add(_e+he)}else{let D=De.get(ye);D?he.push(...D):add(ye)}if(!he.length)break;ye=he.pop()}if(Re&&te.length>1){let D=unpack_cc(te[0]);for(let he=1;he<te.length;he++){let ye=unpack_cc(te[he]);if(0==ye||D<=ye){D=ye;continue}let be=he-1;for(;;){let he=te[be+1];if(te[be+1]=te[be],te[be]=he,!be)break;if(D=unpack_cc(te[--be]),D<=ye)break}D=unpack_cc(te[he])}}return te}function nfd(D){return decomposed(D).map(unpack_cp)}function nfc(D){return function composed_from_decomposed(D){let te=[],he=[],ye=-1,be=0;for(let ve of D){let D=unpack_cc(ve),we=unpack_cp(ve);if(-1==ye)0==D?ye=we:te.push(we);else if(be>0&&be>=D)0==D?(te.push(ye,...he),he.length=0,ye=we):he.push(we),be=D;else{let ve=compose_pair(ye,we);ve>=0?ye=ve:0==be&&0==D?(te.push(ye),ye=we):(he.push(we),be=D)}}return ye>=0&&te.push(ye,...he),te}(decomposed(D))}const Ue=45,qe=".",je=65039,Je=1,Array_from=D=>Array.from(D);function group_has_cp(D,te){return D.P.has(te)||D.Q.has(te)}class Emoji extends Array{get is_emoji(){return!0}}let et,tt,rt,nt,at,ut,ht,yt,mt,bt,wt,_t;function init(){if(et)return;let te=read_compressed_payload(D);const read_sorted_array=()=>read_sorted(te),read_sorted_set=()=>new Set(read_sorted_array()),set_add_many=(D,te)=>te.forEach((te=>D.add(te)));et=new Map(read_mapped(te)),tt=read_sorted_set(),rt=read_sorted_array(),nt=new Set(read_sorted_array().map((D=>rt[D]))),rt=new Set(rt),at=read_sorted_set(),ut=read_sorted_set();let he=read_sorted_arrays(te),ye=te();const read_chunked=()=>{let D=new Set;return read_sorted_array().forEach((te=>set_add_many(D,he[te]))),set_add_many(D,read_sorted_array()),D};ht=read_array_while((D=>{let he=read_array_while(te).map((D=>D+96));if(he.length){let be=D>=ye;return he[0]-=32,he=str_from_cps(he),be&&(he=`Restricted[${he}]`),{N:he,P:read_chunked(),Q:read_chunked(),M:!te(),R:be}}})),yt=read_sorted_set(),mt=new Map;let be=read_sorted_array().concat(Array_from(yt)).sort(((D,te)=>D-te));be.forEach(((D,he)=>{let ye=te(),ve=be[he]=ye?be[he-ye]:{V:[],M:new Map};ve.V.push(D),yt.has(D)||mt.set(D,ve)}));for(let{V:D,M:te}of new Set(mt.values())){let he=[];for(let te of D){let D=ht.filter((D=>group_has_cp(D,te))),ye=he.find((({G:te})=>D.some((D=>te.has(D)))));ye||(ye={G:new Set,V:[]},he.push(ye)),ye.V.push(te),set_add_many(ye.G,D)}let ye=he.flatMap((D=>Array_from(D.G)));for(let{G:D,V:be}of he){let he=new Set(ye.filter((te=>!D.has(te))));for(let D of be)te.set(D,he)}}bt=new Set;let ve=new Set;const add_to_union=D=>bt.has(D)?ve.add(D):bt.add(D);for(let D of ht){for(let te of D.P)add_to_union(te);for(let te of D.Q)add_to_union(te)}for(let D of bt)mt.has(D)||ve.has(D)||mt.set(D,Je);set_add_many(bt,nfd(bt)),wt=function read_trie(D){let te=[],he=read_sorted(D);return function expand({S:D,B:he},ye,be){if(!(4&D&&be===ye[ye.length-1])){2&D&&(be=ye[ye.length-1]),1&D&&te.push(ye);for(let D of he)for(let te of D.Q)expand(D,[...ye,te],be)}}(function decode(te){let ye=D(),be=read_array_while((()=>{let te=read_sorted(D).map((D=>he[D]));if(te.length)return decode(te)}));return{S:ye,B:be,Q:te}}([]),[]),te}(te).map((D=>Emoji.from(D))).sort(compare_arrays),_t=new Map;for(let D of wt){let te=[_t];for(let he of D){let D=te.map((D=>{let te=D.get(he);return te||(te=new Map,D.set(he,te)),te}));he===je?te.push(...D):te=D}for(let he of te)he.V=D}}function quoted_cp(D){return(should_escape(D)?"":`${bidi_qq(safe_str_from_cps([D]))} `)+quote_cp(D)}function bidi_qq(D){return`"${D}"‎`}function safe_str_from_cps(D,te=1/0,he=quote_cp){let ye=[];is_combining_mark(D[0])&&ye.push("◌"),D.length>te&&(te>>=1,D=[...D.slice(0,te),8230,...D.slice(-te)]);let be=0,ve=D.length;for(let te=0;te<ve;te++){let ve=D[te];should_escape(ve)&&(ye.push(str_from_cps(D.slice(be,te))),ye.push(he(ve)),be=te+1)}return ye.push(str_from_cps(D.slice(be,ve))),ye.join("")}function is_combining_mark(D){return init(),rt.has(D)}function should_escape(D){return init(),at.has(D)}function array_replace(D,te,he){let ye=0;for(;;){let be=D.indexOf(te,ye);if(be<0)break;D[be]=he,ye=be+1}}function split(D,ye,be){if(!D)return[];init();let ve=0;return D.split(qe).map((D=>{let we=explode_cp(D),_e={input:we,offset:ve};ve+=we.length+1;try{let D,ve=_e.tokens=tokens_from_str(we,ye,be),Pe=ve.length;if(!Pe)throw new Error("empty label");let Ie=_e.output=ve.flat();if(function check_leading_underscore(D){for(let te=D.lastIndexOf(95);te>0;)if(95!==D[--te])throw new Error("underscore allowed only at start")}(Ie),!(_e.emoji=Pe>1||ve[0].is_emoji)&&Ie.every((D=>D<128)))!function check_label_extension(D){if(D.length>=4&&D[2]==Ue&&D[3]==Ue)throw new Error(`invalid label extension: "${str_from_cps(D.slice(0,4))}"`)}(Ie),D="ASCII";else{let ye=ve.flatMap((D=>D.is_emoji?[]:D));if(ye.length){if(rt.has(Ie[0]))throw error_placement("leading combining mark");for(let D=1;D<Pe;D++){let te=ve[D];if(!te.is_emoji&&rt.has(te[0]))throw error_placement(`emoji + combining mark: "${str_from_cps(ve[D-1])} + ${safe_str_from_cps([te[0]])}"`)}!function check_fenced(D){let he=D[0],ye=te.get(he);if(ye)throw error_placement(`leading ${ye}`);let be=D.length,ve=-1;for(let we=1;we<be;we++){he=D[we];let be=te.get(he);if(be){if(ve==we)throw error_placement(`${ye} + ${be}`);ve=we+1,ye=be}}if(ve==be)throw error_placement(`trailing ${ye}`)}(Ie);let be=Array_from(new Set(ye)),[we]=function determine_group(D){let te=ht;for(let he of D){let D=te.filter((D=>group_has_cp(D,he)));if(!D.length)throw ht.some((D=>group_has_cp(D,he)))?error_group_member(te[0],he):error_disallowed(he);if(te=D,1==D.length)break}return te}(be);!function check_group(D,te){for(let he of te)if(!group_has_cp(D,he))throw error_group_member(D,he);if(D.M){let D=nfd(te);for(let te=1,ye=D.length;te<ye;te++)if(nt.has(D[te])){let be=te+1;for(let he;be<ye&&nt.has(he=D[be]);be++)for(let ye=te;ye<be;ye++)if(D[ye]==he)throw new Error(`duplicate non-spacing marks: ${quoted_cp(he)}`);if(be-te>he)throw new Error(`excessive non-spacing marks: ${bidi_qq(safe_str_from_cps(D.slice(te-1,be)))} (${be-te}/${he})`);te=be}}}(we,ye),function check_whole(D,te){let he,ye=[];for(let D of te){let te=mt.get(D);if(te===Je)return;if(te){let ye=te.M.get(D);if(he=he?he.filter((D=>ye.has(D))):Array_from(ye),!he.length)return}else ye.push(D)}if(he)for(let te of he)if(ye.every((D=>group_has_cp(te,D))))throw new Error(`whole-script confusable: ${D.N}/${te.N}`)}(we,be),D=we.N}else D="Emoji"}_e.type=D}catch(D){_e.error=D}return _e}))}function flatten(D){return D.map((({input:te,error:he,output:ye})=>{if(he){let ye=he.message;throw new Error(1==D.length?ye:`Invalid label ${bidi_qq(safe_str_from_cps(te,63))}: ${ye}`)}return str_from_cps(ye)})).join(qe)}function error_disallowed(D){return new Error(`disallowed character: ${quoted_cp(D)}`)}function error_group_member(D,te){let he=quoted_cp(te),ye=ht.find((D=>D.P.has(te)));return ye&&(he=`${ye.N} ${he}`),new Error(`illegal mixture: ${D.N} + ${he}`)}function error_placement(D){return new Error(`illegal placement: ${D}`)}function tokens_from_str(D,te,he){let ye=[],be=[];for(D=D.slice().reverse();D.length;){let ve=consume_emoji_reversed(D);if(ve)be.length&&(ye.push(te(be)),be=[]),ye.push(he(ve));else{let te=D.pop();if(bt.has(te))be.push(te);else{let D=et.get(te);if(D)be.push(...D);else if(!tt.has(te))throw error_disallowed(te)}}}return be.length&&ye.push(te(be)),ye}function filter_fe0f(D){return D.filter((D=>D!=je))}function consume_emoji_reversed(D,te){let he,ye=_t,be=D.length;for(;be&&(ye=ye.get(D[--be]),ye);){let{V:ve}=ye;ve&&(he=ve,te&&te.push(...D.slice(be).reverse()),D.length=be)}return he}const Tt="valid",At="mapped",Et="ignored";function is_valid_or_mapped(D){return D==Tt||D==At}function requires_check(D){return D.some((D=>ut.has(D)))}function collapse_valid_tokens(D){for(let te=0;te<D.length;te++)if(D[te].type==Tt){let he=te+1;for(;he<D.length&&D[he].type==Tt;)he++;D.splice(te,he-te,{type:Tt,cps:D.slice(te,he).flatMap((D=>D.cps))})}return D}return nB.ens_beautify=function ens_beautify(D){let te=split(D,nfc,(D=>D));for(let{type:D,output:he,error:ye}of te){if(ye)break;"Greek"!==D&&array_replace(he,958,926)}return flatten(te)},nB.ens_emoji=function ens_emoji(){return init(),wt.map((D=>D.slice()))},nB.ens_normalize=function ens_normalize(D){return flatten(split(D,nfc,filter_fe0f))},nB.ens_normalize_fragment=function ens_normalize_fragment(D,te){init();let he=te?nfd:nfc;return D.split(qe).map((D=>str_from_cps(tokens_from_str(explode_cp(D),he,filter_fe0f).flat()))).join(qe)},nB.ens_split=function ens_split(D,te){return split(D,nfc,te?D=>D.slice():filter_fe0f)},nB.ens_tokenize=function ens_tokenize(D,{nf:te=!0}={}){init();let he=explode_cp(D).reverse(),ye=[],be=[];for(;he.length;){let D=consume_emoji_reversed(he,ye);if(D)be.push({type:"emoji",emoji:D.slice(),input:ye,cps:filter_fe0f(D)}),ye=[];else{let D=he.pop();if(46==D)be.push({type:"stop",cp:D});else if(bt.has(D))be.push({type:Tt,cps:[D]});else if(tt.has(D))be.push({type:Et,cp:D});else{let te=et.get(D);te?be.push({type:At,cp:D,cps:te.slice()}):be.push({type:"disallowed",cp:D})}}}if(te)for(let D=0,te=-1;D<be.length;D++){let he=be[D];if(is_valid_or_mapped(he.type))if(requires_check(he.cps)){let he=D+1;for(let D=he;D<be.length;D++){let{type:te,cps:ye}=be[D];if(is_valid_or_mapped(te)){if(!requires_check(ye))break;he=D+1}else if(te!==Et)break}te<0&&(te=D);let ye=be.slice(te,he),ve=ye.flatMap((D=>is_valid_or_mapped(D.type)?D.cps:[])),we=nfc(ve);compare_arrays(we,ve)?(be.splice(te,he-te,{type:"nfc",input:ve,cps:we,tokens0:collapse_valid_tokens(ye),tokens:ens_tokenize(str_from_cps(we),{nf:!1})}),D=te):D=he-1,te=-1}else te=D;else he.type!==Et&&(te=-1)}return collapse_valid_tokens(be)},nB.is_combining_mark=is_combining_mark,nB.nfc=nfc,nB.nfd=nfd,nB.safe_str_from_cps=safe_str_from_cps,nB.should_escape=should_escape,nB}var aB,iB={},sB={},oB={};function requireAccesslist(){if(aB)return oB;aB=1,Object.defineProperty(oB,"__esModule",{value:!0}),oB.accessListify=void 0;const D=requireAddress$2(),te=requireUtils$4();function accessSetify(he,ye){return{address:(0,D.getAddress)(he),storageKeys:ye.map(((D,he)=>((0,te.assertArgument)((0,te.isHexString)(D,32),"invalid slot",`storageKeys[${he}]`,D),D.toLowerCase())))}}return oB.accessListify=function accessListify(D){if(Array.isArray(D))return D.map(((he,ye)=>Array.isArray(he)?((0,te.assertArgument)(2===he.length,"invalid slot set",`value[${ye}]`,he),accessSetify(he[0],he[1])):((0,te.assertArgument)(null!=he&&"object"==typeof he,"invalid address-slot set","value",D),accessSetify(he.address,he.storageKeys))));(0,te.assertArgument)(null!=D&&"object"==typeof D,"invalid access list","value",D);const he=Object.keys(D).map((te=>{const he=D[te].reduce(((D,te)=>(D[te]=!0,D)),{});return accessSetify(te,Object.keys(he).sort())}));return he.sort(((D,te)=>D.address.localeCompare(te.address))),he},oB}var cB,dB={};function requireAddress(){if(cB)return dB;cB=1,Object.defineProperty(dB,"__esModule",{value:!0}),dB.recoverAddress=dB.computeAddress=void 0;const D=requireAddress$2(),te=requireCrypto();function computeAddress(he){let ye;return ye="string"==typeof he?te.SigningKey.computePublicKey(he,!1):he.publicKey,(0,D.getAddress)((0,te.keccak256)("0x"+ye.substring(4)).substring(26))}return dB.computeAddress=computeAddress,dB.recoverAddress=function recoverAddress(D,he){return computeAddress(te.SigningKey.recoverPublicKey(D,he))},dB}var uB,fB,lB,pB={};function requireTransaction$1(){if(uB)return pB;uB=1,Object.defineProperty(pB,"__esModule",{value:!0}),pB.Transaction=void 0;const D=requireAddress$2(),te=requireAddresses(),he=requireCrypto(),ye=requireUtils$4(),be=requireAccesslist(),ve=requireAddress(),we=BigInt(0),_e=BigInt(2),Pe=BigInt(27),Ie=BigInt(28),Re=BigInt(35),ke=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function handleAddress(te){return"0x"===te?null:(0,D.getAddress)(te)}function handleAccessList(D,te){try{return(0,be.accessListify)(D)}catch(he){(0,ye.assertArgument)(!1,he.message,te,D)}}function handleNumber(D,te){return"0x"===D?0:(0,ye.getNumber)(D,te)}function handleUint(D,te){if("0x"===D)return we;const he=(0,ye.getBigInt)(D,te);return(0,ye.assertArgument)(he<=ke,"value exceeds uint size",te,he),he}function formatNumber(D,te){const he=(0,ye.getBigInt)(D,"value"),be=(0,ye.toBeArray)(he);return(0,ye.assertArgument)(be.length<=32,"value too large",`tx.${te}`,he),be}function formatAccessList(D){return(0,be.accessListify)(D).map((D=>[D.address,D.storageKeys]))}function formatHashes(D,te){(0,ye.assertArgument)(Array.isArray(D),`invalid ${te}`,"value",D);for(let te=0;te<D.length;te++)(0,ye.assertArgument)((0,ye.isHexString)(D[te],32),"invalid ${ param } hash",`value[${te}]`,D[te]);return D}function _serializeLegacy(D,te){const be=[formatNumber(D.nonce,"nonce"),formatNumber(D.gasPrice||0,"gasPrice"),formatNumber(D.gasLimit,"gasLimit"),D.to||"0x",formatNumber(D.value,"value"),D.data];let ve=we;if(D.chainId!=we)ve=(0,ye.getBigInt)(D.chainId,"tx.chainId"),(0,ye.assertArgument)(!te||null==te.networkV||te.legacyChainId===ve,"tx.chainId/sig.v mismatch","sig",te);else if(D.signature){const te=D.signature.legacyChainId;null!=te&&(ve=te)}if(!te)return ve!==we&&(be.push((0,ye.toBeArray)(ve)),be.push("0x"),be.push("0x")),(0,ye.encodeRlp)(be);let _e=BigInt(27+te.yParity);return ve!==we?_e=he.Signature.getChainIdV(ve,te.v):BigInt(te.v)!==_e&&(0,ye.assertArgument)(!1,"tx.chainId/sig.v mismatch","sig",te),be.push((0,ye.toBeArray)(_e)),be.push((0,ye.toBeArray)(te.r)),be.push((0,ye.toBeArray)(te.s)),(0,ye.encodeRlp)(be)}function _parseEipSignature(D,te){let be;try{if(be=handleNumber(te[0],"yParity"),0!==be&&1!==be)throw new Error("bad yParity")}catch(D){(0,ye.assertArgument)(!1,"invalid yParity","yParity",te[0])}const ve=(0,ye.zeroPadValue)(te[1],32),we=(0,ye.zeroPadValue)(te[2],32),_e=he.Signature.from({r:ve,s:we,yParity:be});D.signature=_e}function _serializeEip1559(D,te){const he=[formatNumber(D.chainId,"chainId"),formatNumber(D.nonce,"nonce"),formatNumber(D.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),formatNumber(D.maxFeePerGas||0,"maxFeePerGas"),formatNumber(D.gasLimit,"gasLimit"),D.to||"0x",formatNumber(D.value,"value"),D.data,formatAccessList(D.accessList||[])];return te&&(he.push(formatNumber(te.yParity,"yParity")),he.push((0,ye.toBeArray)(te.r)),he.push((0,ye.toBeArray)(te.s))),(0,ye.concat)(["0x02",(0,ye.encodeRlp)(he)])}function _serializeEip2930(D,te){const he=[formatNumber(D.chainId,"chainId"),formatNumber(D.nonce,"nonce"),formatNumber(D.gasPrice||0,"gasPrice"),formatNumber(D.gasLimit,"gasLimit"),D.to||"0x",formatNumber(D.value,"value"),D.data,formatAccessList(D.accessList||[])];return te&&(he.push(formatNumber(te.yParity,"recoveryParam")),he.push((0,ye.toBeArray)(te.r)),he.push((0,ye.toBeArray)(te.s))),(0,ye.concat)(["0x01",(0,ye.encodeRlp)(he)])}function _serializeEip4844(D,he){const be=[formatNumber(D.chainId,"chainId"),formatNumber(D.nonce,"nonce"),formatNumber(D.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),formatNumber(D.maxFeePerGas||0,"maxFeePerGas"),formatNumber(D.gasLimit,"gasLimit"),D.to||te.ZeroAddress,formatNumber(D.value,"value"),D.data,formatAccessList(D.accessList||[]),formatNumber(D.maxFeePerBlobGas||0,"maxFeePerBlobGas"),formatHashes(D.blobVersionedHashes||[],"blobVersionedHashes")];return he&&(be.push(formatNumber(he.yParity,"yParity")),be.push((0,ye.toBeArray)(he.r)),be.push((0,ye.toBeArray)(he.s))),(0,ye.concat)(["0x03",(0,ye.encodeRlp)(be)])}var Oe=new WeakMap,xe=new WeakMap,Be=new WeakMap,Fe=new WeakMap,De=new WeakMap,Le=new WeakMap,Ue=new WeakMap,qe=new WeakMap,je=new WeakMap,Je=new WeakMap,et=new WeakMap,tt=new WeakMap,rt=new WeakMap,nt=new WeakMap;class Transaction{get type(){return _classPrivateFieldGet2(Oe,this)}set type(D){switch(D){case null:_classPrivateFieldSet2(Oe,this,null);break;case 0:case"legacy":_classPrivateFieldSet2(Oe,this,0);break;case 1:case"berlin":case"eip-2930":_classPrivateFieldSet2(Oe,this,1);break;case 2:case"london":case"eip-1559":_classPrivateFieldSet2(Oe,this,2);break;case 3:case"cancun":case"eip-4844":_classPrivateFieldSet2(Oe,this,3);break;default:(0,ye.assertArgument)(!1,"unsupported transaction type","type",D)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844"}return null}get to(){const D=_classPrivateFieldGet2(xe,this);return null==D&&3===this.type?te.ZeroAddress:D}set to(te){_classPrivateFieldSet2(xe,this,null==te?null:(0,D.getAddress)(te))}get nonce(){return _classPrivateFieldGet2(Fe,this)}set nonce(D){_classPrivateFieldSet2(Fe,this,(0,ye.getNumber)(D,"value"))}get gasLimit(){return _classPrivateFieldGet2(De,this)}set gasLimit(D){_classPrivateFieldSet2(De,this,(0,ye.getBigInt)(D))}get gasPrice(){const D=_classPrivateFieldGet2(Le,this);return null!=D||0!==this.type&&1!==this.type?D:we}set gasPrice(D){_classPrivateFieldSet2(Le,this,null==D?null:(0,ye.getBigInt)(D,"gasPrice"))}get maxPriorityFeePerGas(){const D=_classPrivateFieldGet2(Ue,this);return null==D?2===this.type||3===this.type?we:null:D}set maxPriorityFeePerGas(D){_classPrivateFieldSet2(Ue,this,null==D?null:(0,ye.getBigInt)(D,"maxPriorityFeePerGas"))}get maxFeePerGas(){const D=_classPrivateFieldGet2(qe,this);return null==D?2===this.type||3===this.type?we:null:D}set maxFeePerGas(D){_classPrivateFieldSet2(qe,this,null==D?null:(0,ye.getBigInt)(D,"maxFeePerGas"))}get data(){return _classPrivateFieldGet2(Be,this)}set data(D){_classPrivateFieldSet2(Be,this,(0,ye.hexlify)(D))}get value(){return _classPrivateFieldGet2(je,this)}set value(D){_classPrivateFieldSet2(je,this,(0,ye.getBigInt)(D,"value"))}get chainId(){return _classPrivateFieldGet2(Je,this)}set chainId(D){_classPrivateFieldSet2(Je,this,(0,ye.getBigInt)(D))}get signature(){return _classPrivateFieldGet2(et,this)||null}set signature(D){_classPrivateFieldSet2(et,this,null==D?null:he.Signature.from(D))}get accessList(){const D=_classPrivateFieldGet2(tt,this)||null;return null==D?1===this.type||2===this.type||3===this.type?[]:null:D}set accessList(D){_classPrivateFieldSet2(tt,this,null==D?null:(0,be.accessListify)(D))}get maxFeePerBlobGas(){const D=_classPrivateFieldGet2(rt,this);return null==D&&3===this.type?we:D}set maxFeePerBlobGas(D){_classPrivateFieldSet2(rt,this,null==D?null:(0,ye.getBigInt)(D,"maxFeePerBlobGas"))}get blobVersionedHashes(){let D=_classPrivateFieldGet2(nt,this);return null==D&&3===this.type?[]:D}set blobVersionedHashes(D){if(null!=D){(0,ye.assertArgument)(Array.isArray(D),"blobVersionedHashes must be an Array","value",D),D=D.slice();for(let te=0;te<D.length;te++)(0,ye.assertArgument)((0,ye.isHexString)(D[te],32),"invalid blobVersionedHash",`value[${te}]`,D[te])}_classPrivateFieldSet2(nt,this,D)}constructor(){_classPrivateFieldInitSpec(this,Oe,void 0),_classPrivateFieldInitSpec(this,xe,void 0),_classPrivateFieldInitSpec(this,Be,void 0),_classPrivateFieldInitSpec(this,Fe,void 0),_classPrivateFieldInitSpec(this,De,void 0),_classPrivateFieldInitSpec(this,Le,void 0),_classPrivateFieldInitSpec(this,Ue,void 0),_classPrivateFieldInitSpec(this,qe,void 0),_classPrivateFieldInitSpec(this,je,void 0),_classPrivateFieldInitSpec(this,Je,void 0),_classPrivateFieldInitSpec(this,et,void 0),_classPrivateFieldInitSpec(this,tt,void 0),_classPrivateFieldInitSpec(this,rt,void 0),_classPrivateFieldInitSpec(this,nt,void 0),_classPrivateFieldSet2(Oe,this,null),_classPrivateFieldSet2(xe,this,null),_classPrivateFieldSet2(Fe,this,0),_classPrivateFieldSet2(De,this,we),_classPrivateFieldSet2(Le,this,null),_classPrivateFieldSet2(Ue,this,null),_classPrivateFieldSet2(qe,this,null),_classPrivateFieldSet2(Be,this,"0x"),_classPrivateFieldSet2(je,this,we),_classPrivateFieldSet2(Je,this,we),_classPrivateFieldSet2(et,this,null),_classPrivateFieldSet2(tt,this,null),_classPrivateFieldSet2(rt,this,null),_classPrivateFieldSet2(nt,this,null)}get hash(){return null==this.signature?null:(0,he.keccak256)(this.serialized)}get unsignedHash(){return(0,he.keccak256)(this.unsignedSerialized)}get from(){return null==this.signature?null:(0,ve.recoverAddress)(this.unsignedHash,this.signature)}get fromPublicKey(){return null==this.signature?null:he.SigningKey.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return null!=this.signature}get serialized(){switch((0,ye.assert)(null!=this.signature,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"}),this.inferType()){case 0:return _serializeLegacy(this,this.signature);case 1:return _serializeEip2930(this,this.signature);case 2:return _serializeEip1559(this,this.signature);case 3:return _serializeEip4844(this,this.signature)}(0,ye.assert)(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get unsignedSerialized(){switch(this.inferType()){case 0:return _serializeLegacy(this);case 1:return _serializeEip2930(this);case 2:return _serializeEip1559(this);case 3:return _serializeEip4844(this)}(0,ye.assert)(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".unsignedSerialized"})}inferType(){const D=this.inferTypes();return D.indexOf(2)>=0?2:D.pop()}inferTypes(){const D=null!=this.gasPrice,te=null!=this.maxFeePerGas||null!=this.maxPriorityFeePerGas,he=null!=this.accessList,be=null!=_classPrivateFieldGet2(rt,this)||_classPrivateFieldGet2(nt,this);null!=this.maxFeePerGas&&null!=this.maxPriorityFeePerGas&&(0,ye.assert)(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),(0,ye.assert)(!te||0!==this.type&&1!==this.type,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),(0,ye.assert)(0!==this.type||!he,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const ve=[];return null!=this.type?ve.push(this.type):te?ve.push(2):D?(ve.push(1),he||ve.push(0)):he?(ve.push(1),ve.push(2)):(be&&this.to||(ve.push(0),ve.push(1),ve.push(2)),ve.push(3)),ve.sort(),ve}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}clone(){return Transaction.from(this)}toJSON(){const s=D=>null==D?null:D.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:s(this.gasLimit),gasPrice:s(this.gasPrice),maxPriorityFeePerGas:s(this.maxPriorityFeePerGas),maxFeePerGas:s(this.maxFeePerGas),value:s(this.value),chainId:s(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(D){if(null==D)return new Transaction;if("string"==typeof D){const te=(0,ye.getBytes)(D);if(te[0]>=127)return Transaction.from(function _parseLegacy(D){const te=(0,ye.decodeRlp)(D);(0,ye.assertArgument)(Array.isArray(te)&&(9===te.length||6===te.length),"invalid field count for legacy transaction","data",D);const be={type:0,nonce:handleNumber(te[0],"nonce"),gasPrice:handleUint(te[1],"gasPrice"),gasLimit:handleUint(te[2],"gasLimit"),to:handleAddress(te[3]),value:handleUint(te[4],"value"),data:(0,ye.hexlify)(te[5]),chainId:we};if(6===te.length)return be;const ve=handleUint(te[6],"v"),ke=handleUint(te[7],"r"),Oe=handleUint(te[8],"s");if(ke===we&&Oe===we)be.chainId=ve;else{let ke=(ve-Re)/_e;ke<we&&(ke=we),be.chainId=ke,(0,ye.assertArgument)(ke!==we||ve===Pe||ve===Ie,"non-canonical legacy v","v",te[6]),be.signature=he.Signature.from({r:(0,ye.zeroPadValue)(te[7],32),s:(0,ye.zeroPadValue)(te[8],32),v:ve}),be.hash=(0,he.keccak256)(D)}return be}(te));switch(te[0]){case 1:return Transaction.from(function _parseEip2930(D){const te=(0,ye.decodeRlp)((0,ye.getBytes)(D).slice(1));(0,ye.assertArgument)(Array.isArray(te)&&(8===te.length||11===te.length),"invalid field count for transaction type: 1","data",(0,ye.hexlify)(D));const be={type:1,chainId:handleUint(te[0],"chainId"),nonce:handleNumber(te[1],"nonce"),gasPrice:handleUint(te[2],"gasPrice"),gasLimit:handleUint(te[3],"gasLimit"),to:handleAddress(te[4]),value:handleUint(te[5],"value"),data:(0,ye.hexlify)(te[6]),accessList:handleAccessList(te[7],"accessList")};return 8===te.length||(be.hash=(0,he.keccak256)(D),_parseEipSignature(be,te.slice(8))),be}(te));case 2:return Transaction.from(function _parseEip1559(D){const te=(0,ye.decodeRlp)((0,ye.getBytes)(D).slice(1));(0,ye.assertArgument)(Array.isArray(te)&&(9===te.length||12===te.length),"invalid field count for transaction type: 2","data",(0,ye.hexlify)(D));const be={type:2,chainId:handleUint(te[0],"chainId"),nonce:handleNumber(te[1],"nonce"),maxPriorityFeePerGas:handleUint(te[2],"maxPriorityFeePerGas"),maxFeePerGas:handleUint(te[3],"maxFeePerGas"),gasPrice:null,gasLimit:handleUint(te[4],"gasLimit"),to:handleAddress(te[5]),value:handleUint(te[6],"value"),data:(0,ye.hexlify)(te[7]),accessList:handleAccessList(te[8],"accessList")};return 9===te.length||(be.hash=(0,he.keccak256)(D),_parseEipSignature(be,te.slice(9))),be}(te));case 3:return Transaction.from(function _parseEip4844(D){const te=(0,ye.decodeRlp)((0,ye.getBytes)(D).slice(1));(0,ye.assertArgument)(Array.isArray(te)&&(11===te.length||14===te.length),"invalid field count for transaction type: 3","data",(0,ye.hexlify)(D));const be={type:3,chainId:handleUint(te[0],"chainId"),nonce:handleNumber(te[1],"nonce"),maxPriorityFeePerGas:handleUint(te[2],"maxPriorityFeePerGas"),maxFeePerGas:handleUint(te[3],"maxFeePerGas"),gasPrice:null,gasLimit:handleUint(te[4],"gasLimit"),to:handleAddress(te[5]),value:handleUint(te[6],"value"),data:(0,ye.hexlify)(te[7]),accessList:handleAccessList(te[8],"accessList"),maxFeePerBlobGas:handleUint(te[9],"maxFeePerBlobGas"),blobVersionedHashes:te[10]};(0,ye.assertArgument)(null!=be.to,"invalid address for transaction type: 3","data",D),(0,ye.assertArgument)(Array.isArray(be.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",D);for(let te=0;te<be.blobVersionedHashes.length;te++)(0,ye.assertArgument)((0,ye.isHexString)(be.blobVersionedHashes[te],32),`invalid blobVersionedHash at index ${te}: must be length 32`,"data",D);return 11===te.length||(be.hash=(0,he.keccak256)(D),_parseEipSignature(be,te.slice(11))),be}(te))}(0,ye.assert)(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const te=new Transaction;return null!=D.type&&(te.type=D.type),null!=D.to&&(te.to=D.to),null!=D.nonce&&(te.nonce=D.nonce),null!=D.gasLimit&&(te.gasLimit=D.gasLimit),null!=D.gasPrice&&(te.gasPrice=D.gasPrice),null!=D.maxPriorityFeePerGas&&(te.maxPriorityFeePerGas=D.maxPriorityFeePerGas),null!=D.maxFeePerGas&&(te.maxFeePerGas=D.maxFeePerGas),null!=D.maxFeePerBlobGas&&(te.maxFeePerBlobGas=D.maxFeePerBlobGas),null!=D.data&&(te.data=D.data),null!=D.value&&(te.value=D.value),null!=D.chainId&&(te.chainId=D.chainId),null!=D.signature&&(te.signature=he.Signature.from(D.signature)),null!=D.accessList&&(te.accessList=D.accessList),null!=D.blobVersionedHashes&&(te.blobVersionedHashes=D.blobVersionedHashes),null!=D.hash&&((0,ye.assertArgument)(te.isSigned(),"unsigned transaction cannot define hash","tx",D),(0,ye.assertArgument)(te.hash===D.hash,"hash mismatch","tx",D)),null!=D.from&&((0,ye.assertArgument)(te.isSigned(),"unsigned transaction cannot define from","tx",D),(0,ye.assertArgument)(te.from.toLowerCase()===(D.from||"").toLowerCase(),"from mismatch","tx",D)),te}}return pB.Transaction=Transaction,pB}function requireTransaction(){return fB||(fB=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.Transaction=D.recoverAddress=D.computeAddress=D.accessListify=void 0;var te=requireAccesslist();Object.defineProperty(D,"accessListify",{enumerable:!0,get:function(){return te.accessListify}});var he=requireAddress();Object.defineProperty(D,"computeAddress",{enumerable:!0,get:function(){return he.computeAddress}}),Object.defineProperty(D,"recoverAddress",{enumerable:!0,get:function(){return he.recoverAddress}});var ye=requireTransaction$1();Object.defineProperty(D,"Transaction",{enumerable:!0,get:function(){return ye.Transaction}})}(sB)),sB}var hB,yB={};function requireSolidity(){if(hB)return yB;hB=1,Object.defineProperty(yB,"__esModule",{value:!0}),yB.solidityPackedSha256=yB.solidityPackedKeccak256=yB.solidityPacked=void 0;const D=requireAddress$2(),te=requireCrypto(),he=requireUtils$4(),ye=new RegExp("^bytes([0-9]+)$"),be=new RegExp("^(u?int)([0-9]*)$"),ve=new RegExp("^(.*)\\[([0-9]*)\\]$");function _pack(te,we,_e){switch(te){case"address":return _e?(0,he.getBytes)((0,he.zeroPadValue)(we,32)):(0,he.getBytes)((0,D.getAddress)(we));case"string":return(0,he.toUtf8Bytes)(we);case"bytes":return(0,he.getBytes)(we);case"bool":return we=we?"0x01":"0x00",_e?(0,he.getBytes)((0,he.zeroPadValue)(we,32)):(0,he.getBytes)(we)}let Pe=te.match(be);if(Pe){let D="int"===Pe[1],ye=parseInt(Pe[2]||"256");return(0,he.assertArgument)((!Pe[2]||Pe[2]===String(ye))&&ye%8==0&&0!==ye&&ye<=256,"invalid number type","type",te),_e&&(ye=256),D&&(we=(0,he.toTwos)(we,ye)),(0,he.getBytes)((0,he.zeroPadValue)((0,he.toBeArray)(we),ye/8))}if(Pe=te.match(ye),Pe){const D=parseInt(Pe[1]);return(0,he.assertArgument)(String(D)===Pe[1]&&0!==D&&D<=32,"invalid bytes type","type",te),(0,he.assertArgument)((0,he.dataLength)(we)===D,`invalid value for ${te}`,"value",we),_e?(0,he.getBytes)((0,he.zeroPadBytes)(we,32)):we}if(Pe=te.match(ve),Pe&&Array.isArray(we)){const D=Pe[1],ye=parseInt(Pe[2]||String(we.length));(0,he.assertArgument)(ye===we.length,`invalid array length for ${te}`,"value",we);const be=[];return we.forEach((function(te){be.push(_pack(D,te,!0))})),(0,he.getBytes)((0,he.concat)(be))}(0,he.assertArgument)(!1,"invalid type","type",te)}function solidityPacked(D,te){(0,he.assertArgument)(D.length===te.length,"wrong number of values; expected ${ types.length }","values",te);const ye=[];return D.forEach((function(D,he){ye.push(_pack(D,te[he]))})),(0,he.hexlify)((0,he.concat)(ye))}return yB.solidityPacked=solidityPacked,yB.solidityPackedKeccak256=function solidityPackedKeccak256(D,he){return(0,te.keccak256)(solidityPacked(D,he))},yB.solidityPackedSha256=function solidityPackedSha256(D,he){return(0,te.sha256)(solidityPacked(D,he))},yB}var mB,bB,gB,vB,wB={};function requireTypedData(){if(mB)return wB;mB=1,Object.defineProperty(wB,"__esModule",{value:!0}),wB.verifyTypedData=wB.TypedDataEncoder=void 0;const D=requireAddress$2(),te=requireCrypto(),he=requireTransaction(),ye=requireUtils$4(),be=requireId(),ve=new Uint8Array(32);ve.fill(0);const we=BigInt(-1),_e=BigInt(0),Pe=BigInt(1),Ie=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const Re=(0,ye.toBeHex)(Pe,32),ke=(0,ye.toBeHex)(_e,32),Oe={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},xe=["name","version","chainId","verifyingContract","salt"];function checkString(D){return function(te){return(0,ye.assertArgument)("string"==typeof te,`invalid domain value for ${JSON.stringify(D)}`,`domain.${D}`,te),te}}const Be={name:checkString("name"),version:checkString("version"),chainId:function(D){const te=(0,ye.getBigInt)(D,"domain.chainId");return(0,ye.assertArgument)(te>=0,"invalid chain ID","domain.chainId",D),Number.isSafeInteger(te)?Number(te):(0,ye.toQuantity)(te)},verifyingContract:function(te){try{return(0,D.getAddress)(te).toLowerCase()}catch(D){}(0,ye.assertArgument)(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",te)},salt:function(D){const te=(0,ye.getBytes)(D,"domain.salt");return(0,ye.assertArgument)(32===te.length,'invalid domain value "salt"',"domain.salt",D),(0,ye.hexlify)(te)}};function getBaseEncoder(he){{const D=he.match(/^(u?)int(\d+)$/);if(D){const te=""===D[1],be=parseInt(D[2]);(0,ye.assertArgument)(be%8==0&&0!==be&&be<=256&&D[2]===String(be),"invalid numeric width","type",he);const ve=(0,ye.mask)(Ie,te?be-1:be),Re=te?(ve+Pe)*we:_e;return function(D){const be=(0,ye.getBigInt)(D,"value");return(0,ye.assertArgument)(be>=Re&&be<=ve,`value out-of-bounds for ${he}`,"value",be),(0,ye.toBeHex)(te?(0,ye.toTwos)(be,256):be,32)}}}{const D=he.match(/^bytes(\d+)$/);if(D){const te=parseInt(D[1]);return(0,ye.assertArgument)(0!==te&&te<=32&&D[1]===String(te),"invalid bytes width","type",he),function(D){const be=(0,ye.getBytes)(D);return(0,ye.assertArgument)(be.length===te,`invalid length for ${he}`,"value",D),function hexPadRight(D){const te=(0,ye.getBytes)(D),he=te.length%32;return he?(0,ye.concat)([te,ve.slice(he)]):(0,ye.hexlify)(te)}(D)}}}switch(he){case"address":return function(te){return(0,ye.zeroPadValue)((0,D.getAddress)(te),32)};case"bool":return function(D){return D?Re:ke};case"bytes":return function(D){return(0,te.keccak256)(D)};case"string":return function(D){return(0,be.id)(D)}}return null}function encodeType(D,te){return`${D}(${te.map((({name:D,type:te})=>te+" "+D)).join(",")})`}function splitArray(D){const te=D.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return te?{base:te[1],index:te[2]+te[4],array:{base:te[1],prefix:te[1]+te[2],count:te[5]?parseInt(te[5]):-1}}:{base:D}}var Fe=new WeakMap,De=new WeakMap,Le=new WeakMap,Ue=new WeakSet;class TypedDataEncoder{get types(){return JSON.parse(_classPrivateFieldGet2(Fe,this))}constructor(D){_classPrivateMethodInitSpec(this,Ue),_defineProperty(this,"primaryType",void 0),_classPrivateFieldInitSpec(this,Fe,void 0),_classPrivateFieldInitSpec(this,De,void 0),_classPrivateFieldInitSpec(this,Le,void 0),_classPrivateFieldSet2(De,this,new Map),_classPrivateFieldSet2(Le,this,new Map);const te=new Map,he=new Map,be=new Map,ve={};Object.keys(D).forEach((ye=>{ve[ye]=D[ye].map((({name:te,type:he})=>{let{base:ye,index:be}=splitArray(he);return"int"!==ye||D.int||(ye="int256"),"uint"!==ye||D.uint||(ye="uint256"),{name:te,type:ye+(be||"")}})),te.set(ye,new Set),he.set(ye,[]),be.set(ye,new Set)})),_classPrivateFieldSet2(Fe,this,JSON.stringify(ve));for(const be in ve){const we=new Set;for(const _e of ve[be]){(0,ye.assertArgument)(!we.has(_e.name),`duplicate variable name ${JSON.stringify(_e.name)} in ${JSON.stringify(be)}`,"types",D),we.add(_e.name);const ve=splitArray(_e.type).base;(0,ye.assertArgument)(ve!==be,`circular type reference to ${JSON.stringify(ve)}`,"types",D);getBaseEncoder(ve)||((0,ye.assertArgument)(he.has(ve),`unknown type ${JSON.stringify(ve)}`,"types",D),he.get(ve).push(be),te.get(be).add(ve))}}const we=Array.from(he.keys()).filter((D=>0===he.get(D).length));(0,ye.assertArgument)(0!==we.length,"missing primary type","types",D),(0,ye.assertArgument)(1===we.length,`ambiguous primary types or unused types: ${we.map((D=>JSON.stringify(D))).join(", ")}`,"types",D),(0,ye.defineProperties)(this,{primaryType:we[0]}),function checkCircular(ve,we){(0,ye.assertArgument)(!we.has(ve),`circular type reference to ${JSON.stringify(ve)}`,"types",D),we.add(ve);for(const D of te.get(ve))if(he.has(D)){checkCircular(D,we);for(const te of we)be.get(te).add(D)}we.delete(ve)}(this.primaryType,new Set);for(const[D,te]of be){const he=Array.from(te);he.sort(),_classPrivateFieldGet2(De,this).set(D,encodeType(D,ve[D])+he.map((D=>encodeType(D,ve[D]))).join(""))}}getEncoder(D){let te=_classPrivateFieldGet2(Le,this).get(D);return te||(te=_assertClassBrand(Ue,this,_getEncoder).call(this,D),_classPrivateFieldGet2(Le,this).set(D,te)),te}encodeType(D){const te=_classPrivateFieldGet2(De,this).get(D);return(0,ye.assertArgument)(te,`unknown type: ${JSON.stringify(D)}`,"name",D),te}encodeData(D,te){return this.getEncoder(D)(te)}hashStruct(D,he){return(0,te.keccak256)(this.encodeData(D,he))}encode(D){return this.encodeData(this.primaryType,D)}hash(D){return this.hashStruct(this.primaryType,D)}_visit(D,te,he){if(getBaseEncoder(D))return he(D,te);const be=splitArray(D).array;if(be)return(0,ye.assertArgument)(-1===be.count||be.count===te.length,`array length mismatch; expected length ${be.count}`,"value",te),te.map((D=>this._visit(be.prefix,D,he)));const ve=this.types[D];if(ve)return ve.reduce(((D,{name:ye,type:be})=>(D[ye]=this._visit(be,te[ye],he),D)),{});(0,ye.assertArgument)(!1,`unknown type: ${D}`,"type",D)}visit(D,te){return this._visit(this.primaryType,D,te)}static from(D){return new TypedDataEncoder(D)}static getPrimaryType(D){return TypedDataEncoder.from(D).primaryType}static hashStruct(D,te,he){return TypedDataEncoder.from(te).hashStruct(D,he)}static hashDomain(D){const te=[];for(const he in D){if(null==D[he])continue;const be=Oe[he];(0,ye.assertArgument)(be,`invalid typed-data domain key: ${JSON.stringify(he)}`,"domain",D),te.push({name:he,type:be})}return te.sort(((D,te)=>xe.indexOf(D.name)-xe.indexOf(te.name))),TypedDataEncoder.hashStruct("EIP712Domain",{EIP712Domain:te},D)}static encode(D,te,he){return(0,ye.concat)(["0x1901",TypedDataEncoder.hashDomain(D),TypedDataEncoder.from(te).hash(he)])}static hash(D,he,ye){return(0,te.keccak256)(TypedDataEncoder.encode(D,he,ye))}static async resolveNames(D,te,he,be){D=Object.assign({},D);for(const te in D)null==D[te]&&delete D[te];const ve={};D.verifyingContract&&!(0,ye.isHexString)(D.verifyingContract,20)&&(ve[D.verifyingContract]="0x");const we=TypedDataEncoder.from(te);we.visit(he,((D,te)=>("address"!==D||(0,ye.isHexString)(te,20)||(ve[te]="0x"),te)));for(const D in ve)ve[D]=await be(D);return D.verifyingContract&&ve[D.verifyingContract]&&(D.verifyingContract=ve[D.verifyingContract]),{domain:D,value:he=we.visit(he,((D,te)=>"address"===D&&ve[te]?ve[te]:te))}}static getPayload(D,te,he){TypedDataEncoder.hashDomain(D);const be={},ve=[];xe.forEach((te=>{const he=D[te];null!=he&&(be[te]=Be[te](he),ve.push({name:te,type:Oe[te]}))}));const we=TypedDataEncoder.from(te);te=we.types;const _e=Object.assign({},te);return(0,ye.assertArgument)(null==_e.EIP712Domain,"types must not contain EIP712Domain type","types.EIP712Domain",te),_e.EIP712Domain=ve,we.encode(he),{types:_e,domain:be,primaryType:we.primaryType,message:we.visit(he,((D,te)=>{if(D.match(/^bytes(\d*)/))return(0,ye.hexlify)((0,ye.getBytes)(te));if(D.match(/^u?int/))return(0,ye.getBigInt)(te).toString();switch(D){case"address":return te.toLowerCase();case"bool":return!!te;case"string":return(0,ye.assertArgument)("string"==typeof te,"invalid string","value",te),te}(0,ye.assertArgument)(!1,"unsupported type","type",D)}))}}}function _getEncoder(D){{const te=getBaseEncoder(D);if(te)return te}const he=splitArray(D).array;if(he){const D=he.prefix,be=this.getEncoder(D);return ve=>{(0,ye.assertArgument)(-1===he.count||he.count===ve.length,`array length mismatch; expected length ${he.count}`,"value",ve);let we=ve.map(be);return _classPrivateFieldGet2(De,this).has(D)&&(we=we.map(te.keccak256)),(0,te.keccak256)((0,ye.concat)(we))}}const ve=this.types[D];if(ve){const he=(0,be.id)(_classPrivateFieldGet2(De,this).get(D));return D=>{const be=ve.map((({name:he,type:ye})=>{const be=this.getEncoder(ye)(D[he]);return _classPrivateFieldGet2(De,this).has(ye)?(0,te.keccak256)(be):be}));return be.unshift(he),(0,ye.concat)(be)}}(0,ye.assertArgument)(!1,`unknown type: ${D}`,"type",D)}return wB.TypedDataEncoder=TypedDataEncoder,wB.verifyTypedData=function verifyTypedData(D,te,ye,be){return(0,he.recoverAddress)(TypedDataEncoder.hash(D,te,ye),be)},wB}function requireHash(){return bB||(bB=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.verifyTypedData=D.TypedDataEncoder=D.solidityPackedSha256=D.solidityPackedKeccak256=D.solidityPacked=D.verifyMessage=D.hashMessage=D.dnsEncode=D.namehash=D.isValidName=D.ensNormalize=D.id=void 0;var te=requireId();Object.defineProperty(D,"id",{enumerable:!0,get:function(){return te.id}});var he=function requireNamehash(){if(tB)return rB;tB=1,Object.defineProperty(rB,"__esModule",{value:!0}),rB.dnsEncode=rB.namehash=rB.isValidName=rB.ensNormalize=void 0;const D=requireCrypto(),te=requireUtils$4(),he=requireDist(),ye=new Uint8Array(32);function checkComponent(D){return(0,te.assertArgument)(0!==D.length,"invalid ENS name; empty component","comp",D),D}function ensNameSplit(D){const he=(0,te.toUtf8Bytes)(ensNormalize(D)),ye=[];if(0===D.length)return ye;let be=0;for(let D=0;D<he.length;D++)46===he[D]&&(ye.push(checkComponent(he.slice(be,D))),be=D+1);return(0,te.assertArgument)(be<he.length,"invalid ENS name; empty component","name",D),ye.push(checkComponent(he.slice(be))),ye}function ensNormalize(D){try{if(0===D.length)throw new Error("empty label");return(0,he.ens_normalize)(D)}catch(he){(0,te.assertArgument)(!1,`invalid ENS name (${he.message})`,"name",D)}}return ye.fill(0),rB.ensNormalize=ensNormalize,rB.isValidName=function isValidName(D){try{return 0!==ensNameSplit(D).length}catch(D){}return!1},rB.namehash=function namehash$1(he){(0,te.assertArgument)("string"==typeof he,"invalid ENS name; not a string","name",he),(0,te.assertArgument)(he.length,"invalid ENS name (empty label)","name",he);let be=ye;const ve=ensNameSplit(he);for(;ve.length;)be=(0,D.keccak256)((0,te.concat)([be,(0,D.keccak256)(ve.pop())]));return(0,te.hexlify)(be)},rB.dnsEncode=function dnsEncode(D,he){const ye=null!=he?he:63;return(0,te.assertArgument)(ye<=255,"DNS encoded label cannot exceed 255","length",ye),(0,te.hexlify)((0,te.concat)(ensNameSplit(D).map((he=>{(0,te.assertArgument)(he.length<=ye,`label ${JSON.stringify(D)} exceeds ${ye} bytes`,"name",D);const be=new Uint8Array(he.length+1);return be.set(he,1),be[0]=be.length-1,be}))))+"00"},rB}();Object.defineProperty(D,"ensNormalize",{enumerable:!0,get:function(){return he.ensNormalize}}),Object.defineProperty(D,"isValidName",{enumerable:!0,get:function(){return he.isValidName}}),Object.defineProperty(D,"namehash",{enumerable:!0,get:function(){return he.namehash}}),Object.defineProperty(D,"dnsEncode",{enumerable:!0,get:function(){return he.dnsEncode}});var ye=function requireMessage(){if(lB)return iB;lB=1,Object.defineProperty(iB,"__esModule",{value:!0}),iB.verifyMessage=iB.hashMessage=void 0;const D=requireCrypto(),te=requireConstants(),he=requireTransaction(),ye=requireUtils$4();function hashMessage(he){return"string"==typeof he&&(he=(0,ye.toUtf8Bytes)(he)),(0,D.keccak256)((0,ye.concat)([(0,ye.toUtf8Bytes)(te.MessagePrefix),(0,ye.toUtf8Bytes)(String(he.length)),he]))}return iB.hashMessage=hashMessage,iB.verifyMessage=function verifyMessage(D,te){const ye=hashMessage(D);return(0,he.recoverAddress)(ye,te)},iB}();Object.defineProperty(D,"hashMessage",{enumerable:!0,get:function(){return ye.hashMessage}}),Object.defineProperty(D,"verifyMessage",{enumerable:!0,get:function(){return ye.verifyMessage}});var be=requireSolidity();Object.defineProperty(D,"solidityPacked",{enumerable:!0,get:function(){return be.solidityPacked}}),Object.defineProperty(D,"solidityPackedKeccak256",{enumerable:!0,get:function(){return be.solidityPackedKeccak256}}),Object.defineProperty(D,"solidityPackedSha256",{enumerable:!0,get:function(){return be.solidityPackedSha256}});var ve=requireTypedData();Object.defineProperty(D,"TypedDataEncoder",{enumerable:!0,get:function(){return ve.TypedDataEncoder}}),Object.defineProperty(D,"verifyTypedData",{enumerable:!0,get:function(){return ve.verifyTypedData}})}(ZM)),ZM}function requireFragments(){var D;if(gB)return QM;gB=1,Object.defineProperty(QM,"__esModule",{value:!0}),QM.StructFragment=QM.FunctionFragment=QM.FallbackFragment=QM.ConstructorFragment=QM.EventFragment=QM.ErrorFragment=QM.NamedFragment=QM.Fragment=QM.ParamType=void 0;const te=requireUtils$4(),he=requireHash();function setify(D){const te=new Set;return D.forEach((D=>te.add(D))),Object.freeze(te)}const ye=setify("external public payable override".split(" ")),be="constant external internal payable private public pure view override",ve=setify(be.split(" ")),we="constructor error event fallback function receive struct",_e=setify(we.split(" ")),Pe="calldata memory storage payable indexed",Ie=setify(Pe.split(" ")),Re=setify([we,Pe,"tuple returns",be].join(" ").split(" ")),ke={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},Oe=new RegExp("^(\\s*)"),xe=new RegExp("^([0-9]+)"),Be=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Fe=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),De=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");var Le=new WeakMap,Ue=new WeakMap,qe=new WeakSet;class TokenString{get offset(){return _classPrivateFieldGet2(Le,this)}get length(){return _classPrivateFieldGet2(Ue,this).length-_classPrivateFieldGet2(Le,this)}constructor(D){_classPrivateMethodInitSpec(this,qe),_classPrivateFieldInitSpec(this,Le,void 0),_classPrivateFieldInitSpec(this,Ue,void 0),_classPrivateFieldSet2(Le,this,0),_classPrivateFieldSet2(Ue,this,D.slice())}clone(){return new TokenString(_classPrivateFieldGet2(Ue,this))}reset(){_classPrivateFieldSet2(Le,this,0)}popKeyword(D){const te=this.peek();if("KEYWORD"!==te.type||!D.has(te.text))throw new Error(`expected keyword ${te.text}`);return this.pop().text}popType(D){if(this.peek().type!==D){const te=this.peek();throw new Error(`expected ${D}; got ${te.type} ${JSON.stringify(te.text)}`)}return this.pop().text}popParen(){const D=this.peek();if("OPEN_PAREN"!==D.type)throw new Error("bad start");const te=_assertClassBrand(qe,this,_subTokenString).call(this,_classPrivateFieldGet2(Le,this)+1,D.match+1);return _classPrivateFieldSet2(Le,this,D.match+1),te}popParams(){const D=this.peek();if("OPEN_PAREN"!==D.type)throw new Error("bad start");const te=[];for(;_classPrivateFieldGet2(Le,this)<D.match-1;){const D=this.peek().linkNext;te.push(_assertClassBrand(qe,this,_subTokenString).call(this,_classPrivateFieldGet2(Le,this)+1,D)),_classPrivateFieldSet2(Le,this,D)}return _classPrivateFieldSet2(Le,this,D.match+1),te}peek(){if(_classPrivateFieldGet2(Le,this)>=_classPrivateFieldGet2(Ue,this).length)throw new Error("out-of-bounds");return _classPrivateFieldGet2(Ue,this)[_classPrivateFieldGet2(Le,this)]}peekKeyword(D){const te=this.peekType("KEYWORD");return null!=te&&D.has(te)?te:null}peekType(D){if(0===this.length)return null;const te=this.peek();return te.type===D?te.text:null}pop(){var D;const te=this.peek();return _classPrivateFieldSet2(Le,this,(D=_classPrivateFieldGet2(Le,this),++D)),te}toString(){const D=[];for(let te=_classPrivateFieldGet2(Le,this);te<_classPrivateFieldGet2(Ue,this).length;te++){const he=_classPrivateFieldGet2(Ue,this)[te];D.push(`${he.type}:${he.text}`)}return`<TokenString ${D.join(" ")}>`}}function _subTokenString(te=0,he=0){return new D(_classPrivateFieldGet2(Ue,this).slice(te,he).map((D=>Object.freeze(Object.assign({},D,{match:D.match-te,linkBack:D.linkBack-te,linkNext:D.linkNext-te})))))}function lex(D){const he=[],throwError=te=>{const he=ve<D.length?JSON.stringify(D[ve]):"$EOI";throw new Error(`invalid token ${he} at ${ve}: ${te}`)};let ye=[],be=[],ve=0;for(;ve<D.length;){let we=D.substring(ve),_e=we.match(Oe);_e&&(ve+=_e[1].length,we=D.substring(ve));const Pe={depth:ye.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:ve,value:-1};he.push(Pe);let Ie=ke[we[0]]||"";if(Ie){if(Pe.type=Ie,Pe.text=we[0],ve++,"OPEN_PAREN"===Ie)ye.push(he.length-1),be.push(he.length-1);else if("CLOSE_PAREN"==Ie)0===ye.length&&throwError("no matching open bracket"),Pe.match=ye.pop(),he[Pe.match].match=he.length-1,Pe.depth--,Pe.linkBack=be.pop(),he[Pe.linkBack].linkNext=he.length-1;else if("COMMA"===Ie)Pe.linkBack=be.pop(),he[Pe.linkBack].linkNext=he.length-1,be.push(he.length-1);else if("OPEN_BRACKET"===Ie)Pe.type="BRACKET";else if("CLOSE_BRACKET"===Ie){let D=he.pop().text;if(he.length>0&&"NUMBER"===he[he.length-1].type){const ye=he.pop().text;D=ye+D,he[he.length-1].value=(0,te.getNumber)(ye)}if(0===he.length||"BRACKET"!==he[he.length-1].type)throw new Error("missing opening bracket");he[he.length-1].text+=D}}else if(_e=we.match(Be),_e){if(Pe.text=_e[1],ve+=Pe.text.length,Re.has(Pe.text)){Pe.type="KEYWORD";continue}if(Pe.text.match(De)){Pe.type="TYPE";continue}Pe.type="ID"}else{if(_e=we.match(xe),!_e)throw new Error(`unexpected token ${JSON.stringify(we[0])} at position ${ve}`);Pe.text=_e[1],Pe.type="NUMBER",ve+=Pe.text.length}}return new TokenString(he.map((D=>Object.freeze(D))))}function allowSingle(D,te){let he=[];for(const ye in te.keys())D.has(ye)&&he.push(ye);if(he.length>1)throw new Error(`conflicting types: ${he.join(", ")}`)}function consumeName(D,te){if(te.peekKeyword(_e)){const he=te.pop().text;if(he!==D)throw new Error(`expected ${D}, got ${he}`)}return te.popType("ID")}function consumeKeywords(D,te){const he=new Set;for(;;){const ye=D.peekType("KEYWORD");if(null==ye||te&&!te.has(ye))break;if(D.pop(),he.has(ye))throw new Error(`duplicate keywords: ${JSON.stringify(ye)}`);he.add(ye)}return Object.freeze(he)}function consumeMutability(D){let te=consumeKeywords(D,ve);return allowSingle(te,setify("constant payable nonpayable".split(" "))),allowSingle(te,setify("pure view payable nonpayable".split(" "))),te.has("view")?"view":te.has("pure")?"pure":te.has("payable")?"payable":te.has("nonpayable")?"nonpayable":te.has("constant")?"view":"nonpayable"}function consumeParams(D,te){return D.popParams().map((D=>ParamType.from(D,te)))}function consumeGas(D){if(D.peekType("AT")){if(D.pop(),D.peekType("NUMBER"))return(0,te.getBigInt)(D.pop().text);throw new Error("invalid gas")}return null}function consumeEoi(D){if(D.length)throw new Error(`unexpected tokens at offset ${D.offset}: ${D.toString()}`)}D=TokenString;const je=new RegExp(/^(.*)\[([0-9]*)\]$/);function verifyBasicType(D){const he=D.match(De);if((0,te.assertArgument)(he,"invalid type","type",D),"uint"===D)return"uint256";if("int"===D)return"int256";if(he[2]){const ye=parseInt(he[2]);(0,te.assertArgument)(0!==ye&&ye<=32,"invalid bytes length","type",D)}else if(he[3]){const ye=parseInt(he[3]);(0,te.assertArgument)(0!==ye&&ye<=256&&ye%8==0,"invalid numeric width","type",D)}return D}const Je={},et=Symbol.for("_ethers_internal"),tt="_ParamTypeInternal",rt="_ErrorInternal",nt="_EventInternal",at="_ConstructorInternal",ut="_FallbackInternal",ht="_FunctionInternal",yt="_StructInternal";var mt=new WeakSet;class ParamType{constructor(D,he,ye,be,ve,we,_e,Pe){if(_classPrivateMethodInitSpec(this,mt),_defineProperty(this,"name",void 0),_defineProperty(this,"type",void 0),_defineProperty(this,"baseType",void 0),_defineProperty(this,"indexed",void 0),_defineProperty(this,"components",void 0),_defineProperty(this,"arrayLength",void 0),_defineProperty(this,"arrayChildren",void 0),(0,te.assertPrivate)(D,Je,"ParamType"),Object.defineProperty(this,et,{value:tt}),we&&(we=Object.freeze(we.slice())),"array"===be){if(null==_e||null==Pe)throw new Error("")}else if(null!=_e||null!=Pe)throw new Error("");if("tuple"===be){if(null==we)throw new Error("")}else if(null!=we)throw new Error("");(0,te.defineProperties)(this,{name:he,type:ye,baseType:be,indexed:ve,components:we,arrayLength:_e,arrayChildren:Pe})}format(D){if(null==D&&(D="sighash"),"json"===D){const te=this.name||"";if(this.isArray()){const D=JSON.parse(this.arrayChildren.format("json"));return D.name=te,D.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(D)}const he={type:"tuple"===this.baseType?"tuple":this.type,name:te};return"boolean"==typeof this.indexed&&(he.indexed=this.indexed),this.isTuple()&&(he.components=this.components.map((te=>JSON.parse(te.format(D))))),JSON.stringify(he)}let te="";return this.isArray()?(te+=this.arrayChildren.format(D),te+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?te+="("+this.components.map((te=>te.format(D))).join("full"===D?", ":",")+")":te+=this.type,"sighash"!==D&&(!0===this.indexed&&(te+=" indexed"),"full"===D&&this.name&&(te+=" "+this.name)),te}isArray(){return"array"===this.baseType}isTuple(){return"tuple"===this.baseType}isIndexable(){return null!=this.indexed}walk(D,te){if(this.isArray()){if(!Array.isArray(D))throw new Error("invalid array value");if(-1!==this.arrayLength&&D.length!==this.arrayLength)throw new Error("array is wrong length");const he=this;return D.map((D=>he.arrayChildren.walk(D,te)))}if(this.isTuple()){if(!Array.isArray(D))throw new Error("invalid tuple value");if(D.length!==this.components.length)throw new Error("array is wrong length");const he=this;return D.map(((D,ye)=>he.components[ye].walk(D,te)))}return te(this.type,D)}async walkAsync(D,te){const he=[],ye=[D];return _assertClassBrand(mt,this,_walkAsync).call(this,he,D,te,(D=>{ye[0]=D})),he.length&&await Promise.all(he),ye[0]}static from(D,he){if(ParamType.isParamType(D))return D;if("string"==typeof D)try{return ParamType.from(lex(D),he)}catch(he){(0,te.assertArgument)(!1,"invalid param type","obj",D)}else if(D instanceof TokenString){let te="",ye="",be=null;consumeKeywords(D,setify(["tuple"])).has("tuple")||D.peekType("OPEN_PAREN")?(ye="tuple",be=D.popParams().map((D=>ParamType.from(D))),te=`tuple(${be.map((D=>D.format())).join(",")})`):(te=verifyBasicType(D.popType("TYPE")),ye=te);let ve=null,we=null;for(;D.length&&D.peekType("BRACKET");){const he=D.pop();ve=new ParamType(Je,"",te,ye,null,be,we,ve),we=he.value,te+=he.text,ye="array",be=null}let _e=null;if(consumeKeywords(D,Ie).has("indexed")){if(!he)throw new Error("");_e=!0}const Pe=D.peekType("ID")?D.pop().text:"";if(D.length)throw new Error("leftover tokens");return new ParamType(Je,Pe,te,ye,_e,be,we,ve)}const ye=D.name;(0,te.assertArgument)(!ye||"string"==typeof ye&&ye.match(Fe),"invalid name","obj.name",ye);let be=D.indexed;null!=be&&((0,te.assertArgument)(he,"parameter cannot be indexed","obj.indexed",D.indexed),be=!!be);let ve=D.type,we=ve.match(je);if(we){const te=parseInt(we[2]||"-1"),he=ParamType.from({type:we[1],components:D.components});return new ParamType(Je,ye||"",ve,"array",be,null,te,he)}if("tuple"===ve||ve.startsWith("tuple(")||ve.startsWith("(")){const te=null!=D.components?D.components.map((D=>ParamType.from(D))):null;return new ParamType(Je,ye||"",ve,"tuple",be,te,null,null)}return ve=verifyBasicType(D.type),new ParamType(Je,ye||"",ve,ve,be,null,null,null)}static isParamType(D){return D&&D[et]===tt}}function _walkAsync(D,te,he,ye){if(this.isArray()){if(!Array.isArray(te))throw new Error("invalid array value");if(-1!==this.arrayLength&&te.length!==this.arrayLength)throw new Error("array is wrong length");const be=this.arrayChildren,ve=te.slice();return ve.forEach(((te,ye)=>{_assertClassBrand(mt,be,_walkAsync).call(be,D,te,he,(D=>{ve[ye]=D}))})),void ye(ve)}if(this.isTuple()){const be=this.components;let ve;if(Array.isArray(te))ve=te.slice();else{if(null==te||"object"!=typeof te)throw new Error("invalid tuple value");ve=be.map((D=>{if(!D.name)throw new Error("cannot use object value with unnamed components");if(!(D.name in te))throw new Error(`missing value for component ${D.name}`);return te[D.name]}))}if(ve.length!==this.components.length)throw new Error("array is wrong length");return ve.forEach(((te,ye)=>{var we;_assertClassBrand(mt,we=be[ye],_walkAsync).call(we,D,te,he,(D=>{ve[ye]=D}))})),void ye(ve)}const be=he(this.type,te);be.then?D.push(async function(){ye(await be)}()):ye(be)}QM.ParamType=ParamType;class Fragment{constructor(D,he,ye){_defineProperty(this,"type",void 0),_defineProperty(this,"inputs",void 0),(0,te.assertPrivate)(D,Je,"Fragment"),ye=Object.freeze(ye.slice()),(0,te.defineProperties)(this,{type:he,inputs:ye})}static from(D){if("string"==typeof D){try{Fragment.from(JSON.parse(D))}catch(D){}return Fragment.from(lex(D))}if(D instanceof TokenString){switch(D.peekKeyword(_e)){case"constructor":return ConstructorFragment.from(D);case"error":return ErrorFragment.from(D);case"event":return EventFragment.from(D);case"fallback":case"receive":return FallbackFragment.from(D);case"function":return FunctionFragment.from(D);case"struct":return StructFragment.from(D)}}else if("object"==typeof D){switch(D.type){case"constructor":return ConstructorFragment.from(D);case"error":return ErrorFragment.from(D);case"event":return EventFragment.from(D);case"fallback":case"receive":return FallbackFragment.from(D);case"function":return FunctionFragment.from(D);case"struct":return StructFragment.from(D)}(0,te.assert)(!1,`unsupported type: ${D.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}(0,te.assertArgument)(!1,"unsupported frgament object","obj",D)}static isConstructor(D){return ConstructorFragment.isFragment(D)}static isError(D){return ErrorFragment.isFragment(D)}static isEvent(D){return EventFragment.isFragment(D)}static isFunction(D){return FunctionFragment.isFragment(D)}static isStruct(D){return StructFragment.isFragment(D)}}QM.Fragment=Fragment;class NamedFragment extends Fragment{constructor(D,he,ye,be){super(D,he,be),_defineProperty(this,"name",void 0),(0,te.assertArgument)("string"==typeof ye&&ye.match(Fe),"invalid identifier","name",ye),be=Object.freeze(be.slice()),(0,te.defineProperties)(this,{name:ye})}}function joinParams(D,te){return"("+te.map((te=>te.format(D))).join("full"===D?", ":",")+")"}QM.NamedFragment=NamedFragment;class ErrorFragment extends NamedFragment{constructor(D,te,he){super(D,"error",te,he),Object.defineProperty(this,et,{value:rt})}get selector(){return(0,he.id)(this.format("sighash")).substring(0,10)}format(D){if(null==D&&(D="sighash"),"json"===D)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});const te=[];return"sighash"!==D&&te.push("error"),te.push(this.name+joinParams(D,this.inputs)),te.join(" ")}static from(D){if(ErrorFragment.isFragment(D))return D;if("string"==typeof D)return ErrorFragment.from(lex(D));if(D instanceof TokenString){const te=consumeName("error",D),he=consumeParams(D);return consumeEoi(D),new ErrorFragment(Je,te,he)}return new ErrorFragment(Je,D.name,D.inputs?D.inputs.map(ParamType.from):[])}static isFragment(D){return D&&D[et]===rt}}QM.ErrorFragment=ErrorFragment;class EventFragment extends NamedFragment{constructor(D,he,ye,be){super(D,"event",he,ye),_defineProperty(this,"anonymous",void 0),Object.defineProperty(this,et,{value:nt}),(0,te.defineProperties)(this,{anonymous:be})}get topicHash(){return(0,he.id)(this.format("sighash"))}format(D){if(null==D&&(D="sighash"),"json"===D)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});const te=[];return"sighash"!==D&&te.push("event"),te.push(this.name+joinParams(D,this.inputs)),"sighash"!==D&&this.anonymous&&te.push("anonymous"),te.join(" ")}static getTopicHash(D,te){te=(te||[]).map((D=>ParamType.from(D)));return new EventFragment(Je,D,te,!1).topicHash}static from(D){if(EventFragment.isFragment(D))return D;if("string"==typeof D)try{return EventFragment.from(lex(D))}catch(he){(0,te.assertArgument)(!1,"invalid event fragment","obj",D)}else if(D instanceof TokenString){const te=consumeName("event",D),he=consumeParams(D,!0),ye=!!consumeKeywords(D,setify(["anonymous"])).has("anonymous");return consumeEoi(D),new EventFragment(Je,te,he,ye)}return new EventFragment(Je,D.name,D.inputs?D.inputs.map((D=>ParamType.from(D,!0))):[],!!D.anonymous)}static isFragment(D){return D&&D[et]===nt}}QM.EventFragment=EventFragment;class ConstructorFragment extends Fragment{constructor(D,he,ye,be,ve){super(D,he,ye),_defineProperty(this,"payable",void 0),_defineProperty(this,"gas",void 0),Object.defineProperty(this,et,{value:at}),(0,te.defineProperties)(this,{payable:be,gas:ve})}format(D){if((0,te.assert)(null!=D&&"sighash"!==D,"cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),"json"===D)return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});const he=[`constructor${joinParams(D,this.inputs)}`];return this.payable&&he.push("payable"),null!=this.gas&&he.push(`@${this.gas.toString()}`),he.join(" ")}static from(D){if(ConstructorFragment.isFragment(D))return D;if("string"==typeof D)try{return ConstructorFragment.from(lex(D))}catch(he){(0,te.assertArgument)(!1,"invalid constuctor fragment","obj",D)}else if(D instanceof TokenString){consumeKeywords(D,setify(["constructor"]));const te=consumeParams(D),he=!!consumeKeywords(D,ye).has("payable"),be=consumeGas(D);return consumeEoi(D),new ConstructorFragment(Je,"constructor",te,he,be)}return new ConstructorFragment(Je,"constructor",D.inputs?D.inputs.map(ParamType.from):[],!!D.payable,null!=D.gas?D.gas:null)}static isFragment(D){return D&&D[et]===at}}QM.ConstructorFragment=ConstructorFragment;class FallbackFragment extends Fragment{constructor(D,he,ye){super(D,"fallback",he),_defineProperty(this,"payable",void 0),Object.defineProperty(this,et,{value:ut}),(0,te.defineProperties)(this,{payable:ye})}format(D){const te=0===this.inputs.length?"receive":"fallback";if("json"===D){const D=this.payable?"payable":"nonpayable";return JSON.stringify({type:te,stateMutability:D})}return`${te}()${this.payable?" payable":""}`}static from(D){if(FallbackFragment.isFragment(D))return D;if("string"==typeof D)try{return FallbackFragment.from(lex(D))}catch(he){(0,te.assertArgument)(!1,"invalid fallback fragment","obj",D)}else if(D instanceof TokenString){const he=D.toString(),ye=D.peekKeyword(setify(["fallback","receive"]));(0,te.assertArgument)(ye,"type must be fallback or receive","obj",he);if("receive"===D.popKeyword(setify(["fallback","receive"]))){const he=consumeParams(D);return(0,te.assertArgument)(0===he.length,"receive cannot have arguments","obj.inputs",he),consumeKeywords(D,setify(["payable"])),consumeEoi(D),new FallbackFragment(Je,[],!0)}let be=consumeParams(D);be.length?(0,te.assertArgument)(1===be.length&&"bytes"===be[0].type,"invalid fallback inputs","obj.inputs",be.map((D=>D.format("minimal"))).join(", ")):be=[ParamType.from("bytes")];const ve=consumeMutability(D);if((0,te.assertArgument)("nonpayable"===ve||"payable"===ve,"fallback cannot be constants","obj.stateMutability",ve),consumeKeywords(D,setify(["returns"])).has("returns")){const he=consumeParams(D);(0,te.assertArgument)(1===he.length&&"bytes"===he[0].type,"invalid fallback outputs","obj.outputs",he.map((D=>D.format("minimal"))).join(", "))}return consumeEoi(D),new FallbackFragment(Je,be,"payable"===ve)}if("receive"===D.type)return new FallbackFragment(Je,[],!0);if("fallback"===D.type){const te=[ParamType.from("bytes")],he="payable"===D.stateMutability;return new FallbackFragment(Je,te,he)}(0,te.assertArgument)(!1,"invalid fallback description","obj",D)}static isFragment(D){return D&&D[et]===ut}}QM.FallbackFragment=FallbackFragment;class FunctionFragment extends NamedFragment{constructor(D,he,ye,be,ve,we){super(D,"function",he,be),_defineProperty(this,"constant",void 0),_defineProperty(this,"outputs",void 0),_defineProperty(this,"stateMutability",void 0),_defineProperty(this,"payable",void 0),_defineProperty(this,"gas",void 0),Object.defineProperty(this,et,{value:ht}),ve=Object.freeze(ve.slice());const _e="view"===ye||"pure"===ye,Pe="payable"===ye;(0,te.defineProperties)(this,{constant:_e,gas:we,outputs:ve,payable:Pe,stateMutability:ye})}get selector(){return(0,he.id)(this.format("sighash")).substring(0,10)}format(D){if(null==D&&(D="sighash"),"json"===D)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map((te=>JSON.parse(te.format(D)))),outputs:this.outputs.map((te=>JSON.parse(te.format(D))))});const te=[];return"sighash"!==D&&te.push("function"),te.push(this.name+joinParams(D,this.inputs)),"sighash"!==D&&("nonpayable"!==this.stateMutability&&te.push(this.stateMutability),this.outputs&&this.outputs.length&&(te.push("returns"),te.push(joinParams(D,this.outputs))),null!=this.gas&&te.push(`@${this.gas.toString()}`)),te.join(" ")}static getSelector(D,te){te=(te||[]).map((D=>ParamType.from(D)));return new FunctionFragment(Je,D,"view",te,[],null).selector}static from(D){if(FunctionFragment.isFragment(D))return D;if("string"==typeof D)try{return FunctionFragment.from(lex(D))}catch(he){(0,te.assertArgument)(!1,"invalid function fragment","obj",D)}else if(D instanceof TokenString){const te=consumeName("function",D),he=consumeParams(D),ye=consumeMutability(D);let be=[];consumeKeywords(D,setify(["returns"])).has("returns")&&(be=consumeParams(D));const ve=consumeGas(D);return consumeEoi(D),new FunctionFragment(Je,te,ye,he,be,ve)}let he=D.stateMutability;return null==he&&(he="payable","boolean"==typeof D.constant?(he="view",D.constant||(he="payable","boolean"!=typeof D.payable||D.payable||(he="nonpayable"))):"boolean"!=typeof D.payable||D.payable||(he="nonpayable")),new FunctionFragment(Je,D.name,he,D.inputs?D.inputs.map(ParamType.from):[],D.outputs?D.outputs.map(ParamType.from):[],null!=D.gas?D.gas:null)}static isFragment(D){return D&&D[et]===ht}}QM.FunctionFragment=FunctionFragment;class StructFragment extends NamedFragment{constructor(D,te,he){super(D,"struct",te,he),Object.defineProperty(this,et,{value:yt})}format(){throw new Error("@TODO")}static from(D){if("string"==typeof D)try{return StructFragment.from(lex(D))}catch(he){(0,te.assertArgument)(!1,"invalid struct fragment","obj",D)}else if(D instanceof TokenString){const te=consumeName("struct",D),he=consumeParams(D);return consumeEoi(D),new StructFragment(Je,te,he)}return new StructFragment(Je,D.name,D.inputs?D.inputs.map(ParamType.from):[])}static isFragment(D){return D&&D[et]===yt}}return QM.StructFragment=StructFragment,QM}function requireAbiCoder(){if(vB)return px;vB=1,Object.defineProperty(px,"__esModule",{value:!0}),px.AbiCoder=void 0;const D=requireUtils$4(),te=requireAbstractCoder(),he=function requireAddress$1(){if(kM)return Wx;kM=1,Object.defineProperty(Wx,"__esModule",{value:!0}),Wx.AddressCoder=void 0;const D=requireAddress$2(),te=requireMaths(),he=requireTyped(),ye=requireAbstractCoder();class AddressCoder extends ye.Coder{constructor(D){super("address","address",D,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(te,ye){let be=he.Typed.dereference(ye,"string");try{be=(0,D.getAddress)(be)}catch(D){return this._throwError(D.message,ye)}return te.writeValue(be)}decode(he){return(0,D.getAddress)((0,te.toBeHex)(he.readValue(),20))}}return Wx.AddressCoder=AddressCoder,Wx}(),ye=requireArray(),be=function requireBoolean(){if(FM)return DM;FM=1,Object.defineProperty(DM,"__esModule",{value:!0}),DM.BooleanCoder=void 0;const D=requireTyped(),te=requireAbstractCoder();class BooleanCoder extends te.Coder{constructor(D){super("bool","bool",D,!1)}defaultValue(){return!1}encode(te,he){const ye=D.Typed.dereference(he,"bool");return te.writeValue(ye?1:0)}decode(D){return!!D.readValue()}}return DM.BooleanCoder=BooleanCoder,DM}(),ve=requireBytes(),we=function requireFixedBytes(){if($M)return qM;$M=1,Object.defineProperty(qM,"__esModule",{value:!0}),qM.FixedBytesCoder=void 0;const D=requireUtils$4(),te=requireTyped(),he=requireAbstractCoder();class FixedBytesCoder extends he.Coder{constructor(te,he){let ye="bytes"+String(te);super(ye,ye,he,!1),_defineProperty(this,"size",void 0),(0,D.defineProperties)(this,{size:te},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(he,ye){let be=(0,D.getBytesCopy)(te.Typed.dereference(ye,this.type));return be.length!==this.size&&this._throwError("incorrect data length",ye),he.writeBytes(be)}decode(te){return(0,D.hexlify)(te.readBytes(this.size))}}return qM.FixedBytesCoder=FixedBytesCoder,qM}(),_e=function require_null(){if(GM)return jM;GM=1,Object.defineProperty(jM,"__esModule",{value:!0}),jM.NullCoder=void 0;const D=requireAbstractCoder(),te=new Uint8Array([]);class NullCoder extends D.Coder{constructor(D){super("null","",D,!1)}defaultValue(){return null}encode(D,he){return null!=he&&this._throwError("not null",he),D.writeBytes(te)}decode(D){return D.readBytes(0),null}}return jM.NullCoder=NullCoder,jM}(),Pe=function requireNumber(){if(HM)return zM;HM=1,Object.defineProperty(zM,"__esModule",{value:!0}),zM.NumberCoder=void 0;const D=requireUtils$4(),te=requireTyped(),he=requireAbstractCoder(),ye=BigInt(0),be=BigInt(1),ve=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class NumberCoder extends he.Coder{constructor(te,he,ye){const be=(he?"int":"uint")+8*te;super(be,be,ye,!1),_defineProperty(this,"size",void 0),_defineProperty(this,"signed",void 0),(0,D.defineProperties)(this,{size:te,signed:he},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(we,_e){let Pe=(0,D.getBigInt)(te.Typed.dereference(_e,this.type)),Ie=(0,D.mask)(ve,8*he.WordSize);if(this.signed){let te=(0,D.mask)(Ie,8*this.size-1);(Pe>te||Pe<-(te+be))&&this._throwError("value out-of-bounds",_e),Pe=(0,D.toTwos)(Pe,8*he.WordSize)}else(Pe<ye||Pe>(0,D.mask)(Ie,8*this.size))&&this._throwError("value out-of-bounds",_e);return we.writeValue(Pe)}decode(te){let he=(0,D.mask)(te.readValue(),8*this.size);return this.signed&&(he=(0,D.fromTwos)(he,8*this.size)),he}}return zM.NumberCoder=NumberCoder,zM}(),Ie=function requireString(){if(WM)return VM;WM=1,Object.defineProperty(VM,"__esModule",{value:!0}),VM.StringCoder=void 0;const D=requireUtf8(),te=requireTyped(),he=requireBytes();class StringCoder extends he.DynamicBytesCoder{constructor(D){super("string",D)}defaultValue(){return""}encode(he,ye){return super.encode(he,(0,D.toUtf8Bytes)(te.Typed.dereference(ye,"string")))}decode(te){return(0,D.toUtf8String)(super.decode(te))}}return VM.StringCoder=StringCoder,VM}(),Re=function requireTuple(){if(KM)return JM;KM=1,Object.defineProperty(JM,"__esModule",{value:!0}),JM.TupleCoder=void 0;const D=requireProperties(),te=requireTyped(),he=requireAbstractCoder(),ye=requireArray();class TupleCoder extends he.Coder{constructor(te,he){let ye=!1;const be=[];te.forEach((D=>{D.dynamic&&(ye=!0),be.push(D.type)})),super("tuple","tuple("+be.join(",")+")",he,ye),_defineProperty(this,"coders",void 0),(0,D.defineProperties)(this,{coders:Object.freeze(te.slice())})}defaultValue(){const D=[];this.coders.forEach((te=>{D.push(te.defaultValue())}));const te=this.coders.reduce(((D,te)=>{const he=te.localName;return he&&(D[he]||(D[he]=0),D[he]++),D}),{});return this.coders.forEach(((he,ye)=>{let be=he.localName;be&&1===te[be]&&("length"===be&&(be="_length"),null==D[be]&&(D[be]=D[ye]))})),Object.freeze(D)}encode(D,he){const be=te.Typed.dereference(he,"tuple");return(0,ye.pack)(D,this.coders,be)}decode(D){return(0,ye.unpack)(D,this.coders)}}return JM.TupleCoder=TupleCoder,JM}(),ke=requireFragments(),Oe=requireAddress$2(),xe=requireUtils$4(),Be=new Map;Be.set(0,"GENERIC_PANIC"),Be.set(1,"ASSERT_FALSE"),Be.set(17,"OVERFLOW"),Be.set(18,"DIVIDE_BY_ZERO"),Be.set(33,"ENUM_RANGE_ERROR"),Be.set(34,"BAD_STORAGE_DATA"),Be.set(49,"STACK_UNDERFLOW"),Be.set(50,"ARRAY_RANGE_ERROR"),Be.set(65,"OUT_OF_MEMORY"),Be.set(81,"UNINITIALIZED_FUNCTION_CALL");const Fe=new RegExp(/^bytes([0-9]*)$/),De=new RegExp(/^(u?int)([0-9]*)$/);let Le=null,Ue=1024;var qe=new WeakSet;class AbiCoder{constructor(){_classPrivateMethodInitSpec(this,qe)}getDefaultValue(D){const te=D.map((D=>_assertClassBrand(qe,this,_getCoder).call(this,ke.ParamType.from(D))));return new Re.TupleCoder(te,"_").defaultValue()}encode(he,ye){(0,D.assertArgumentCount)(ye.length,he.length,"types/values length mismatch");const be=he.map((D=>_assertClassBrand(qe,this,_getCoder).call(this,ke.ParamType.from(D)))),ve=new Re.TupleCoder(be,"_"),we=new te.Writer;return ve.encode(we,ye),we.data}decode(D,he,ye){const be=D.map((D=>_assertClassBrand(qe,this,_getCoder).call(this,ke.ParamType.from(D))));return new Re.TupleCoder(be,"_").decode(new te.Reader(he,ye,Ue))}static _setDefaultMaxInflation(te){(0,D.assertArgument)("number"==typeof te&&Number.isInteger(te),"invalid defaultMaxInflation factor","value",te),Ue=te}static defaultAbiCoder(){return null==Le&&(Le=new AbiCoder),Le}static getBuiltinCallException(D,te,he){return function getBuiltinCallException(D,te,he,ye){let be="missing revert data",ve=null,we=null;if(he){be="execution reverted";const D=(0,xe.getBytes)(he);if(he=(0,xe.hexlify)(he),0===D.length)be+=" (no data present; likely require(false) occurred",ve="require(false)";else if(D.length%32!=4)be+=" (could not decode reason; invalid data length)";else if("0x08c379a0"===(0,xe.hexlify)(D.slice(0,4)))try{ve=ye.decode(["string"],D.slice(4))[0],we={signature:"Error(string)",name:"Error",args:[ve]},be+=`: ${JSON.stringify(ve)}`}catch(D){be+=" (could not decode reason; invalid string data)"}else if("0x4e487b71"===(0,xe.hexlify)(D.slice(0,4)))try{const te=Number(ye.decode(["uint256"],D.slice(4))[0]);we={signature:"Panic(uint256)",name:"Panic",args:[te]},ve=`Panic due to ${Be.get(te)||"UNKNOWN"}(${te})`,be+=`: ${ve}`}catch(D){be+=" (could not decode panic code)"}else be+=" (unknown custom error)"}const _e={to:te.to?(0,Oe.getAddress)(te.to):null,data:te.data||"0x"};return te.from&&(_e.from=(0,Oe.getAddress)(te.from)),(0,xe.makeError)(be,"CALL_EXCEPTION",{action:D,data:he,reason:ve,transaction:_e,invocation:null,revert:we})}(D,te,he,AbiCoder.defaultAbiCoder())}}function _getCoder(te){if(te.isArray())return new ye.ArrayCoder(_assertClassBrand(qe,this,_getCoder).call(this,te.arrayChildren),te.arrayLength,te.name);if(te.isTuple())return new Re.TupleCoder(te.components.map((D=>_assertClassBrand(qe,this,_getCoder).call(this,D))),te.name);switch(te.baseType){case"address":return new he.AddressCoder(te.name);case"bool":return new be.BooleanCoder(te.name);case"string":return new Ie.StringCoder(te.name);case"bytes":return new ve.BytesCoder(te.name);case"":return new _e.NullCoder(te.name)}let ke=te.type.match(De);if(ke){let he=parseInt(ke[2]||"256");return(0,D.assertArgument)(0!==he&&he<=256&&he%8==0,"invalid "+ke[1]+" bit length","param",te),new Pe.NumberCoder(he/8,"int"===ke[1],te.name)}if(ke=te.type.match(Fe),ke){let he=parseInt(ke[1]);return(0,D.assertArgument)(0!==he&&he<=32,"invalid bytes length","param",te),new we.FixedBytesCoder(he,te.name)}(0,D.assertArgument)(!1,"invalid type","type",te.type)}return px.AbiCoder=AbiCoder,px}var _B,TB={};var AB,EB,PB={};function requireAbi(){return EB||(EB=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.Typed=D.Result=D.TransactionDescription=D.LogDescription=D.ErrorDescription=D.Interface=D.Indexed=D.checkResultErrors=D.StructFragment=D.ParamType=D.NamedFragment=D.FunctionFragment=D.Fragment=D.FallbackFragment=D.EventFragment=D.ErrorFragment=D.ConstructorFragment=D.encodeBytes32String=D.decodeBytes32String=D.AbiCoder=void 0;var te=requireAbiCoder();Object.defineProperty(D,"AbiCoder",{enumerable:!0,get:function(){return te.AbiCoder}});var he=function requireBytes32(){if(_B)return TB;_B=1,Object.defineProperty(TB,"__esModule",{value:!0}),TB.decodeBytes32String=TB.encodeBytes32String=void 0;const D=requireUtils$4();return TB.encodeBytes32String=function encodeBytes32String(te){const he=(0,D.toUtf8Bytes)(te);if(he.length>31)throw new Error("bytes32 string must be less than 32 bytes");return(0,D.zeroPadBytes)(he,32)},TB.decodeBytes32String=function decodeBytes32String(te){const he=(0,D.getBytes)(te,"bytes");if(32!==he.length)throw new Error("invalid bytes32 - not 32 bytes long");if(0!==he[31])throw new Error("invalid bytes32 string - no null terminator");let ye=31;for(;0===he[ye-1];)ye--;return(0,D.toUtf8String)(he.slice(0,ye))},TB}();Object.defineProperty(D,"decodeBytes32String",{enumerable:!0,get:function(){return he.decodeBytes32String}}),Object.defineProperty(D,"encodeBytes32String",{enumerable:!0,get:function(){return he.encodeBytes32String}});var ye=requireFragments();Object.defineProperty(D,"ConstructorFragment",{enumerable:!0,get:function(){return ye.ConstructorFragment}}),Object.defineProperty(D,"ErrorFragment",{enumerable:!0,get:function(){return ye.ErrorFragment}}),Object.defineProperty(D,"EventFragment",{enumerable:!0,get:function(){return ye.EventFragment}}),Object.defineProperty(D,"FallbackFragment",{enumerable:!0,get:function(){return ye.FallbackFragment}}),Object.defineProperty(D,"Fragment",{enumerable:!0,get:function(){return ye.Fragment}}),Object.defineProperty(D,"FunctionFragment",{enumerable:!0,get:function(){return ye.FunctionFragment}}),Object.defineProperty(D,"NamedFragment",{enumerable:!0,get:function(){return ye.NamedFragment}}),Object.defineProperty(D,"ParamType",{enumerable:!0,get:function(){return ye.ParamType}}),Object.defineProperty(D,"StructFragment",{enumerable:!0,get:function(){return ye.StructFragment}});var be=function require_interface(){return AB||(AB=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.Interface=D.Indexed=D.ErrorDescription=D.TransactionDescription=D.LogDescription=D.Result=D.checkResultErrors=void 0;const te=requireCrypto(),he=requireHash(),ye=requireUtils$4(),be=requireAbiCoder(),ve=requireAbstractCoder();Object.defineProperty(D,"checkResultErrors",{enumerable:!0,get:function(){return ve.checkResultErrors}}),Object.defineProperty(D,"Result",{enumerable:!0,get:function(){return ve.Result}});const we=requireFragments(),_e=requireTyped();class LogDescription{constructor(D,te,he){_defineProperty(this,"fragment",void 0),_defineProperty(this,"name",void 0),_defineProperty(this,"signature",void 0),_defineProperty(this,"topic",void 0),_defineProperty(this,"args",void 0);const be=D.name,ve=D.format();(0,ye.defineProperties)(this,{fragment:D,name:be,signature:ve,topic:te,args:he})}}D.LogDescription=LogDescription;class TransactionDescription{constructor(D,te,he,be){_defineProperty(this,"fragment",void 0),_defineProperty(this,"name",void 0),_defineProperty(this,"args",void 0),_defineProperty(this,"signature",void 0),_defineProperty(this,"selector",void 0),_defineProperty(this,"value",void 0);const ve=D.name,we=D.format();(0,ye.defineProperties)(this,{fragment:D,name:ve,args:he,signature:we,selector:te,value:be})}}D.TransactionDescription=TransactionDescription;class ErrorDescription{constructor(D,te,he){_defineProperty(this,"fragment",void 0),_defineProperty(this,"name",void 0),_defineProperty(this,"args",void 0),_defineProperty(this,"signature",void 0),_defineProperty(this,"selector",void 0);const be=D.name,ve=D.format();(0,ye.defineProperties)(this,{fragment:D,name:be,args:he,signature:ve,selector:te})}}D.ErrorDescription=ErrorDescription;class Indexed{static isIndexed(D){return!(!D||!D._isIndexed)}constructor(D){_defineProperty(this,"hash",void 0),_defineProperty(this,"_isIndexed",void 0),(0,ye.defineProperties)(this,{hash:D,_isIndexed:!0})}}D.Indexed=Indexed;const Pe={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"},Ie={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:D=>`reverted with reason string ${JSON.stringify(D)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:D=>{let te="unknown panic code";return D>=0&&D<=255&&Pe[D.toString()]&&(te=Pe[D.toString()]),`reverted with panic code 0x${D.toString(16)} (${te})`}}};var Re=new WeakMap,ke=new WeakMap,Oe=new WeakMap,xe=new WeakMap,Be=new WeakSet;class Interface{constructor(D){_classPrivateMethodInitSpec(this,Be),_defineProperty(this,"fragments",void 0),_defineProperty(this,"deploy",void 0),_defineProperty(this,"fallback",void 0),_defineProperty(this,"receive",void 0),_classPrivateFieldInitSpec(this,Re,void 0),_classPrivateFieldInitSpec(this,ke,void 0),_classPrivateFieldInitSpec(this,Oe,void 0),_classPrivateFieldInitSpec(this,xe,void 0);let te=[];te="string"==typeof D?JSON.parse(D):D,_classPrivateFieldSet2(Oe,this,new Map),_classPrivateFieldSet2(Re,this,new Map),_classPrivateFieldSet2(ke,this,new Map);const he=[];for(const D of te)try{he.push(we.Fragment.from(D))}catch(te){console.log(`[Warning] Invalid Fragment ${JSON.stringify(D)}:`,te.message)}(0,ye.defineProperties)(this,{fragments:Object.freeze(he)});let be=null,ve=!1;_classPrivateFieldSet2(xe,this,this.getAbiCoder()),this.fragments.forEach(((D,te)=>{let he;switch(D.type){case"constructor":return this.deploy?void console.log("duplicate definition - constructor"):void(0,ye.defineProperties)(this,{deploy:D});case"fallback":return void(0===D.inputs.length?ve=!0:((0,ye.assertArgument)(!be||D.payable!==be.payable,"conflicting fallback fragments",`fragments[${te}]`,D),be=D,ve=be.payable));case"function":he=_classPrivateFieldGet2(Oe,this);break;case"event":he=_classPrivateFieldGet2(ke,this);break;case"error":he=_classPrivateFieldGet2(Re,this);break;default:return}const we=D.format();he.has(we)||he.set(we,D)})),this.deploy||(0,ye.defineProperties)(this,{deploy:we.ConstructorFragment.from("constructor()")}),(0,ye.defineProperties)(this,{fallback:be,receive:ve})}format(D){const te=D?"minimal":"full",he=this.fragments.map((D=>D.format(te)));return he}formatJson(){const D=this.fragments.map((D=>D.format("json")));return JSON.stringify(D.map((D=>JSON.parse(D))))}getAbiCoder(){return be.AbiCoder.defaultAbiCoder()}getFunctionName(D){const te=_assertClassBrand(Be,this,_getFunction).call(this,D,null,!1);return(0,ye.assertArgument)(te,"no matching function","key",D),te.name}hasFunction(D){return!!_assertClassBrand(Be,this,_getFunction).call(this,D,null,!1)}getFunction(D,te){return _assertClassBrand(Be,this,_getFunction).call(this,D,te||null,!0)}forEachFunction(D){const te=Array.from(_classPrivateFieldGet2(Oe,this).keys());te.sort(((D,te)=>D.localeCompare(te)));for(let he=0;he<te.length;he++){const ye=te[he];D(_classPrivateFieldGet2(Oe,this).get(ye),he)}}getEventName(D){const te=_assertClassBrand(Be,this,_getEvent).call(this,D,null,!1);return(0,ye.assertArgument)(te,"no matching event","key",D),te.name}hasEvent(D){return!!_assertClassBrand(Be,this,_getEvent).call(this,D,null,!1)}getEvent(D,te){return _assertClassBrand(Be,this,_getEvent).call(this,D,te||null,!0)}forEachEvent(D){const te=Array.from(_classPrivateFieldGet2(ke,this).keys());te.sort(((D,te)=>D.localeCompare(te)));for(let he=0;he<te.length;he++){const ye=te[he];D(_classPrivateFieldGet2(ke,this).get(ye),he)}}getError(D,te){if((0,ye.isHexString)(D)){const te=D.toLowerCase();if(Ie[te])return we.ErrorFragment.from(Ie[te].signature);for(const D of _classPrivateFieldGet2(Re,this).values())if(te===D.selector)return D;return null}if(-1===D.indexOf("(")){const te=[];for(const[he,ye]of _classPrivateFieldGet2(Re,this))he.split("(")[0]===D&&te.push(ye);if(0===te.length)return"Error"===D?we.ErrorFragment.from("error Error(string)"):"Panic"===D?we.ErrorFragment.from("error Panic(uint256)"):null;if(te.length>1){const he=te.map((D=>JSON.stringify(D.format()))).join(", ");(0,ye.assertArgument)(!1,`ambiguous error description (i.e. ${he})`,"name",D)}return te[0]}if("Error(string)"===(D=we.ErrorFragment.from(D).format()))return we.ErrorFragment.from("error Error(string)");if("Panic(uint256)"===D)return we.ErrorFragment.from("error Panic(uint256)");return _classPrivateFieldGet2(Re,this).get(D)||null}forEachError(D){const te=Array.from(_classPrivateFieldGet2(Re,this).keys());te.sort(((D,te)=>D.localeCompare(te)));for(let he=0;he<te.length;he++){const ye=te[he];D(_classPrivateFieldGet2(Re,this).get(ye),he)}}_decodeParams(D,te){return _classPrivateFieldGet2(xe,this).decode(D,te)}_encodeParams(D,te){return _classPrivateFieldGet2(xe,this).encode(D,te)}encodeDeploy(D){return this._encodeParams(this.deploy.inputs,D||[])}decodeErrorResult(D,te){if("string"==typeof D){const te=this.getError(D);(0,ye.assertArgument)(te,"unknown error","fragment",D),D=te}return(0,ye.assertArgument)((0,ye.dataSlice)(te,0,4)===D.selector,`data signature does not match error ${D.name}.`,"data",te),this._decodeParams(D.inputs,(0,ye.dataSlice)(te,4))}encodeErrorResult(D,te){if("string"==typeof D){const te=this.getError(D);(0,ye.assertArgument)(te,"unknown error","fragment",D),D=te}return(0,ye.concat)([D.selector,this._encodeParams(D.inputs,te||[])])}decodeFunctionData(D,te){if("string"==typeof D){const te=this.getFunction(D);(0,ye.assertArgument)(te,"unknown function","fragment",D),D=te}return(0,ye.assertArgument)((0,ye.dataSlice)(te,0,4)===D.selector,`data signature does not match function ${D.name}.`,"data",te),this._decodeParams(D.inputs,(0,ye.dataSlice)(te,4))}encodeFunctionData(D,te){if("string"==typeof D){const te=this.getFunction(D);(0,ye.assertArgument)(te,"unknown function","fragment",D),D=te}return(0,ye.concat)([D.selector,this._encodeParams(D.inputs,te||[])])}decodeFunctionResult(D,te){if("string"==typeof D){const te=this.getFunction(D);(0,ye.assertArgument)(te,"unknown function","fragment",D),D=te}let he="invalid length for result data";const be=(0,ye.getBytesCopy)(te);if(be.length%32==0)try{return _classPrivateFieldGet2(xe,this).decode(D.outputs,be)}catch(D){he="could not decode result data"}(0,ye.assert)(!1,he,"BAD_DATA",{value:(0,ye.hexlify)(be),info:{method:D.name,signature:D.format()}})}makeError(D,te){const he=(0,ye.getBytes)(D,"data"),ve=be.AbiCoder.getBuiltinCallException("call",te,he);if(ve.message.startsWith("execution reverted (unknown custom error)")){const D=(0,ye.hexlify)(he.slice(0,4)),te=this.getError(D);if(te)try{const D=_classPrivateFieldGet2(xe,this).decode(te.inputs,he.slice(4));ve.revert={name:te.name,signature:te.format(),args:D},ve.reason=ve.revert.signature,ve.message=`execution reverted: ${ve.reason}`}catch(D){ve.message="execution reverted (coult not decode custom error)"}}const we=this.parseTransaction(te);return we&&(ve.invocation={method:we.name,signature:we.signature,args:we.args}),ve}encodeFunctionResult(D,te){if("string"==typeof D){const te=this.getFunction(D);(0,ye.assertArgument)(te,"unknown function","fragment",D),D=te}return(0,ye.hexlify)(_classPrivateFieldGet2(xe,this).encode(D.outputs,te||[]))}encodeFilterTopics(D,be){if("string"==typeof D){const te=this.getEvent(D);(0,ye.assertArgument)(te,"unknown event","eventFragment",D),D=te}(0,ye.assert)(be.length<=D.inputs.length,`too many arguments for ${D.format()}`,"UNEXPECTED_ARGUMENT",{count:be.length,expectedCount:D.inputs.length});const ve=[];D.anonymous||ve.push(D.topicHash);const encodeTopic=(D,be)=>"string"===D.type?(0,he.id)(be):"bytes"===D.type?(0,te.keccak256)((0,ye.hexlify)(be)):("bool"===D.type&&"boolean"==typeof be?be=be?"0x01":"0x00":D.type.match(/^u?int/)?be=(0,ye.toBeHex)(be):D.type.match(/^bytes/)?be=(0,ye.zeroPadBytes)(be,32):"address"===D.type&&_classPrivateFieldGet2(xe,this).encode(["address"],[be]),(0,ye.zeroPadValue)((0,ye.hexlify)(be),32));for(be.forEach(((te,he)=>{const be=D.inputs[he];be.indexed?null==te?ve.push(null):"array"===be.baseType||"tuple"===be.baseType?(0,ye.assertArgument)(!1,"filtering with tuples or arrays not supported","contract."+be.name,te):Array.isArray(te)?ve.push(te.map((D=>encodeTopic(be,D)))):ve.push(encodeTopic(be,te)):(0,ye.assertArgument)(null==te,"cannot filter non-indexed parameters; must be null","contract."+be.name,te)}));ve.length&&null===ve[ve.length-1];)ve.pop();return ve}encodeEventLog(D,be){if("string"==typeof D){const te=this.getEvent(D);(0,ye.assertArgument)(te,"unknown event","eventFragment",D),D=te}const ve=[],we=[],_e=[];return D.anonymous||ve.push(D.topicHash),(0,ye.assertArgument)(be.length===D.inputs.length,"event arguments/values mismatch","values",be),D.inputs.forEach(((D,ye)=>{const Pe=be[ye];if(D.indexed)if("string"===D.type)ve.push((0,he.id)(Pe));else if("bytes"===D.type)ve.push((0,te.keccak256)(Pe));else{if("tuple"===D.baseType||"array"===D.baseType)throw new Error("not implemented");ve.push(_classPrivateFieldGet2(xe,this).encode([D.type],[Pe]))}else we.push(D),_e.push(Pe)})),{data:_classPrivateFieldGet2(xe,this).encode(we,_e),topics:ve}}decodeEventLog(D,te,he){if("string"==typeof D){const te=this.getEvent(D);(0,ye.assertArgument)(te,"unknown event","eventFragment",D),D=te}if(null!=he&&!D.anonymous){const te=D.topicHash;(0,ye.assertArgument)((0,ye.isHexString)(he[0],32)&&he[0].toLowerCase()===te,"fragment/topic mismatch","topics[0]",he[0]),he=he.slice(1)}const be=[],_e=[],Pe=[];D.inputs.forEach(((D,te)=>{D.indexed?"string"===D.type||"bytes"===D.type||"tuple"===D.baseType||"array"===D.baseType?(be.push(we.ParamType.from({type:"bytes32",name:D.name})),Pe.push(!0)):(be.push(D),Pe.push(!1)):(_e.push(D),Pe.push(!1))}));const Ie=null!=he?_classPrivateFieldGet2(xe,this).decode(be,(0,ye.concat)(he)):null,Re=_classPrivateFieldGet2(xe,this).decode(_e,te,!0),ke=[],Oe=[];let Be=0,Fe=0;return D.inputs.forEach(((D,te)=>{let he=null;if(D.indexed)if(null==Ie)he=new Indexed(null);else if(Pe[te])he=new Indexed(Ie[Fe++]);else try{he=Ie[Fe++]}catch(D){he=D}else try{he=Re[Be++]}catch(D){he=D}ke.push(he),Oe.push(D.name||null)})),ve.Result.fromItems(ke,Oe)}parseTransaction(D){const te=(0,ye.getBytes)(D.data,"tx.data"),he=(0,ye.getBigInt)(null!=D.value?D.value:0,"tx.value"),be=this.getFunction((0,ye.hexlify)(te.slice(0,4)));if(!be)return null;const ve=_classPrivateFieldGet2(xe,this).decode(be.inputs,te.slice(4));return new TransactionDescription(be,be.selector,ve,he)}parseCallResult(D){throw new Error("@TODO")}parseLog(D){const te=this.getEvent(D.topics[0]);return!te||te.anonymous?null:new LogDescription(te,te.topicHash,this.decodeEventLog(te,D.data,D.topics))}parseError(D){const te=(0,ye.hexlify)(D),he=this.getError((0,ye.dataSlice)(te,0,4));if(!he)return null;const be=_classPrivateFieldGet2(xe,this).decode(he.inputs,(0,ye.dataSlice)(te,4));return new ErrorDescription(he,he.selector,be)}static from(D){return D instanceof Interface?D:"string"==typeof D?new Interface(JSON.parse(D)):"function"==typeof D.format?new Interface(D.format("json")):new Interface(D)}}function _getFunction(D,te,he){if((0,ye.isHexString)(D)){const te=D.toLowerCase();for(const D of _classPrivateFieldGet2(Oe,this).values())if(te===D.selector)return D;return null}if(-1===D.indexOf("(")){const be=[];for(const[te,he]of _classPrivateFieldGet2(Oe,this))te.split("(")[0]===D&&be.push(he);if(te){const D=te.length>0?te[te.length-1]:null;let he=te.length,ye=!0;_e.Typed.isTyped(D)&&"overrides"===D.type&&(ye=!1,he--);for(let D=be.length-1;D>=0;D--){const te=be[D].inputs.length;te===he||ye&&te===he-1||be.splice(D,1)}for(let D=be.length-1;D>=0;D--){const he=be[D].inputs;for(let ye=0;ye<te.length;ye++)if(_e.Typed.isTyped(te[ye])){if(ye>=he.length){if("overrides"===te[ye].type)continue;be.splice(D,1);break}if(te[ye].type!==he[ye].baseType){be.splice(D,1);break}}}}if(1===be.length&&te&&te.length!==be[0].inputs.length){const D=te[te.length-1];(null==D||Array.isArray(D)||"object"!=typeof D)&&be.splice(0,1)}if(0===be.length)return null;if(be.length>1&&he){const te=be.map((D=>JSON.stringify(D.format()))).join(", ");(0,ye.assertArgument)(!1,`ambiguous function description (i.e. matches ${te})`,"key",D)}return be[0]}return _classPrivateFieldGet2(Oe,this).get(we.FunctionFragment.from(D).format())||null}function _getEvent(D,te,he){if((0,ye.isHexString)(D)){const te=D.toLowerCase();for(const D of _classPrivateFieldGet2(ke,this).values())if(te===D.topicHash)return D;return null}if(-1===D.indexOf("(")){const be=[];for(const[te,he]of _classPrivateFieldGet2(ke,this))te.split("(")[0]===D&&be.push(he);if(te){for(let D=be.length-1;D>=0;D--)be[D].inputs.length<te.length&&be.splice(D,1);for(let D=be.length-1;D>=0;D--){const he=be[D].inputs;for(let ye=0;ye<te.length;ye++)if(_e.Typed.isTyped(te[ye])&&te[ye].type!==he[ye].baseType){be.splice(D,1);break}}}if(0===be.length)return null;if(be.length>1&&he){const te=be.map((D=>JSON.stringify(D.format()))).join(", ");(0,ye.assertArgument)(!1,`ambiguous event description (i.e. matches ${te})`,"key",D)}return be[0]}return _classPrivateFieldGet2(ke,this).get(we.EventFragment.from(D).format())||null}D.Interface=Interface}(PB)),PB}();Object.defineProperty(D,"checkResultErrors",{enumerable:!0,get:function(){return be.checkResultErrors}}),Object.defineProperty(D,"Indexed",{enumerable:!0,get:function(){return be.Indexed}}),Object.defineProperty(D,"Interface",{enumerable:!0,get:function(){return be.Interface}}),Object.defineProperty(D,"ErrorDescription",{enumerable:!0,get:function(){return be.ErrorDescription}}),Object.defineProperty(D,"LogDescription",{enumerable:!0,get:function(){return be.LogDescription}}),Object.defineProperty(D,"TransactionDescription",{enumerable:!0,get:function(){return be.TransactionDescription}}),Object.defineProperty(D,"Result",{enumerable:!0,get:function(){return be.Result}});var ve=requireTyped();Object.defineProperty(D,"Typed",{enumerable:!0,get:function(){return ve.Typed}})}(lx)),lx}var SB,CB={},IB={},RB={};function requireProvider(){if(SB)return RB;SB=1,Object.defineProperty(RB,"__esModule",{value:!0}),RB.TransactionResponse=RB.TransactionReceipt=RB.Log=RB.Block=RB.copyRequest=RB.FeeData=void 0;const D=requireUtils$4(),te=requireTransaction(),he=BigInt(0);function getValue(D){return null==D?null:D}function toJson(D){return null==D?null:D.toString()}RB.FeeData=class FeeData{constructor(te,he,ye){_defineProperty(this,"gasPrice",void 0),_defineProperty(this,"maxFeePerGas",void 0),_defineProperty(this,"maxPriorityFeePerGas",void 0),(0,D.defineProperties)(this,{gasPrice:getValue(te),maxFeePerGas:getValue(he),maxPriorityFeePerGas:getValue(ye)})}toJSON(){const{gasPrice:D,maxFeePerGas:te,maxPriorityFeePerGas:he}=this;return{_type:"FeeData",gasPrice:toJson(D),maxFeePerGas:toJson(te),maxPriorityFeePerGas:toJson(he)}}},RB.copyRequest=function copyRequest(he){const ye={};he.to&&(ye.to=he.to),he.from&&(ye.from=he.from),he.data&&(ye.data=(0,D.hexlify)(he.data));const be="chainId,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const te of be)te in he&&null!=he[te]&&(ye[te]=(0,D.getBigInt)(he[te],`request.${te}`));const ve="type,nonce".split(/,/);for(const te of ve)te in he&&null!=he[te]&&(ye[te]=(0,D.getNumber)(he[te],`request.${te}`));return he.accessList&&(ye.accessList=(0,te.accessListify)(he.accessList)),"blockTag"in he&&(ye.blockTag=he.blockTag),"enableCcipRead"in he&&(ye.enableCcipRead=!!he.enableCcipRead),"customData"in he&&(ye.customData=he.customData),ye};var ye=new WeakMap;class Block{constructor(te,he){_defineProperty(this,"provider",void 0),_defineProperty(this,"number",void 0),_defineProperty(this,"hash",void 0),_defineProperty(this,"timestamp",void 0),_defineProperty(this,"parentHash",void 0),_defineProperty(this,"parentBeaconBlockRoot",void 0),_defineProperty(this,"nonce",void 0),_defineProperty(this,"difficulty",void 0),_defineProperty(this,"gasLimit",void 0),_defineProperty(this,"gasUsed",void 0),_defineProperty(this,"stateRoot",void 0),_defineProperty(this,"receiptsRoot",void 0),_defineProperty(this,"blobGasUsed",void 0),_defineProperty(this,"excessBlobGas",void 0),_defineProperty(this,"miner",void 0),_defineProperty(this,"extraData",void 0),_defineProperty(this,"baseFeePerGas",void 0),_classPrivateFieldInitSpec(this,ye,void 0),_classPrivateFieldSet2(ye,this,te.transactions.map((D=>"string"!=typeof D?new TransactionResponse(D,he):D))),(0,D.defineProperties)(this,{provider:he,hash:getValue(te.hash),number:te.number,timestamp:te.timestamp,parentHash:te.parentHash,parentBeaconBlockRoot:te.parentBeaconBlockRoot,nonce:te.nonce,difficulty:te.difficulty,gasLimit:te.gasLimit,gasUsed:te.gasUsed,blobGasUsed:te.blobGasUsed,excessBlobGas:te.excessBlobGas,miner:te.miner,extraData:te.extraData,baseFeePerGas:getValue(te.baseFeePerGas),stateRoot:te.stateRoot,receiptsRoot:te.receiptsRoot})}get transactions(){return _classPrivateFieldGet2(ye,this).map((D=>"string"==typeof D?D:D.hash))}get prefetchedTransactions(){const te=_classPrivateFieldGet2(ye,this).slice();return 0===te.length?[]:((0,D.assert)("object"==typeof te[0],"transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),te)}toJSON(){const{baseFeePerGas:D,difficulty:te,extraData:he,gasLimit:ye,gasUsed:be,hash:ve,miner:we,nonce:_e,number:Pe,parentHash:Ie,parentBeaconBlockRoot:Re,stateRoot:ke,receiptsRoot:Oe,timestamp:xe,transactions:Be}=this;return{_type:"Block",baseFeePerGas:toJson(D),difficulty:toJson(te),extraData:he,gasLimit:toJson(ye),gasUsed:toJson(be),blobGasUsed:toJson(this.blobGasUsed),excessBlobGas:toJson(this.excessBlobGas),hash:ve,miner:we,nonce:_e,number:Pe,parentHash:Ie,timestamp:xe,parentBeaconBlockRoot:Re,stateRoot:ke,receiptsRoot:Oe,transactions:Be}}[Symbol.iterator](){let D=0;const te=this.transactions;return{next:()=>D<this.length?{value:te[D++],done:!1}:{value:void 0,done:!0}}}get length(){return _classPrivateFieldGet2(ye,this).length}get date(){return null==this.timestamp?null:new Date(1e3*this.timestamp)}async getTransaction(D){let te;if("number"==typeof D)te=_classPrivateFieldGet2(ye,this)[D];else{const he=D.toLowerCase();for(const D of _classPrivateFieldGet2(ye,this)){if("string"==typeof D){if(D!==he)continue;te=D;break}if(D.hash!==he){te=D;break}}}if(null==te)throw new Error("no such tx");return"string"==typeof te?await this.provider.getTransaction(te):te}getPrefetchedTransaction(te){const he=this.prefetchedTransactions;if("number"==typeof te)return he[te];te=te.toLowerCase();for(const D of he)if(D.hash===te)return D;(0,D.assertArgument)(!1,"no matching transaction","indexOrHash",te)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return function createOrphanedBlockFilter(D){return{orphan:"drop-block",hash:D.hash,number:D.number}}(this)}}RB.Block=Block;class Log{constructor(te,he){_defineProperty(this,"provider",void 0),_defineProperty(this,"transactionHash",void 0),_defineProperty(this,"blockHash",void 0),_defineProperty(this,"blockNumber",void 0),_defineProperty(this,"removed",void 0),_defineProperty(this,"address",void 0),_defineProperty(this,"data",void 0),_defineProperty(this,"topics",void 0),_defineProperty(this,"index",void 0),_defineProperty(this,"transactionIndex",void 0),this.provider=he;const ye=Object.freeze(te.topics.slice());(0,D.defineProperties)(this,{transactionHash:te.transactionHash,blockHash:te.blockHash,blockNumber:te.blockNumber,removed:te.removed,address:te.address,data:te.data,topics:ye,index:te.index,transactionIndex:te.transactionIndex})}toJSON(){const{address:D,blockHash:te,blockNumber:he,data:ye,index:be,removed:ve,topics:we,transactionHash:_e,transactionIndex:Pe}=this;return{_type:"log",address:D,blockHash:te,blockNumber:he,data:ye,index:be,removed:ve,topics:we,transactionHash:_e,transactionIndex:Pe}}async getBlock(){const te=await this.provider.getBlock(this.blockHash);return(0,D.assert)(!!te,"failed to find transaction","UNKNOWN_ERROR",{}),te}async getTransaction(){const te=await this.provider.getTransaction(this.transactionHash);return(0,D.assert)(!!te,"failed to find transaction","UNKNOWN_ERROR",{}),te}async getTransactionReceipt(){const te=await this.provider.getTransactionReceipt(this.transactionHash);return(0,D.assert)(!!te,"failed to find transaction receipt","UNKNOWN_ERROR",{}),te}removedEvent(){return function createRemovedLogFilter(D){return{orphan:"drop-log",log:{transactionHash:D.transactionHash,blockHash:D.blockHash,blockNumber:D.blockNumber,address:D.address,data:D.data,topics:Object.freeze(D.topics.slice()),index:D.index}}}(this)}}RB.Log=Log;var be=new WeakMap;class TransactionReceipt{constructor(te,ye){_defineProperty(this,"provider",void 0),_defineProperty(this,"to",void 0),_defineProperty(this,"from",void 0),_defineProperty(this,"contractAddress",void 0),_defineProperty(this,"hash",void 0),_defineProperty(this,"index",void 0),_defineProperty(this,"blockHash",void 0),_defineProperty(this,"blockNumber",void 0),_defineProperty(this,"logsBloom",void 0),_defineProperty(this,"gasUsed",void 0),_defineProperty(this,"blobGasUsed",void 0),_defineProperty(this,"cumulativeGasUsed",void 0),_defineProperty(this,"gasPrice",void 0),_defineProperty(this,"blobGasPrice",void 0),_defineProperty(this,"type",void 0),_defineProperty(this,"status",void 0),_defineProperty(this,"root",void 0),_classPrivateFieldInitSpec(this,be,void 0),_classPrivateFieldSet2(be,this,Object.freeze(te.logs.map((D=>new Log(D,ye)))));let ve=he;null!=te.effectiveGasPrice?ve=te.effectiveGasPrice:null!=te.gasPrice&&(ve=te.gasPrice),(0,D.defineProperties)(this,{provider:ye,to:te.to,from:te.from,contractAddress:te.contractAddress,hash:te.hash,index:te.index,blockHash:te.blockHash,blockNumber:te.blockNumber,logsBloom:te.logsBloom,gasUsed:te.gasUsed,cumulativeGasUsed:te.cumulativeGasUsed,blobGasUsed:te.blobGasUsed,gasPrice:ve,blobGasPrice:te.blobGasPrice,type:te.type,status:te.status,root:te.root})}get logs(){return _classPrivateFieldGet2(be,this)}toJSON(){const{to:D,from:te,contractAddress:he,hash:ye,index:be,blockHash:ve,blockNumber:we,logsBloom:_e,logs:Pe,status:Ie,root:Re}=this;return{_type:"TransactionReceipt",blockHash:ve,blockNumber:we,contractAddress:he,cumulativeGasUsed:toJson(this.cumulativeGasUsed),from:te,gasPrice:toJson(this.gasPrice),blobGasUsed:toJson(this.blobGasUsed),blobGasPrice:toJson(this.blobGasPrice),gasUsed:toJson(this.gasUsed),hash:ye,index:be,logs:Pe,logsBloom:_e,root:Re,status:Ie,to:D}}get length(){return this.logs.length}[Symbol.iterator](){let D=0;return{next:()=>D<this.length?{value:this.logs[D++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const D=await this.provider.getBlock(this.blockHash);if(null==D)throw new Error("TODO");return D}async getTransaction(){const D=await this.provider.getTransaction(this.hash);if(null==D)throw new Error("TODO");return D}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return createRemovedTransactionFilter(this)}reorderedEvent(te){return(0,D.assert)(!te||te.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),createReorderedTransactionFilter(this,te)}}RB.TransactionReceipt=TransactionReceipt;var ve=new WeakMap;class TransactionResponse{constructor(D,te){_defineProperty(this,"provider",void 0),_defineProperty(this,"blockNumber",void 0),_defineProperty(this,"blockHash",void 0),_defineProperty(this,"index",void 0),_defineProperty(this,"hash",void 0),_defineProperty(this,"type",void 0),_defineProperty(this,"to",void 0),_defineProperty(this,"from",void 0),_defineProperty(this,"nonce",void 0),_defineProperty(this,"gasLimit",void 0),_defineProperty(this,"gasPrice",void 0),_defineProperty(this,"maxPriorityFeePerGas",void 0),_defineProperty(this,"maxFeePerGas",void 0),_defineProperty(this,"maxFeePerBlobGas",void 0),_defineProperty(this,"data",void 0),_defineProperty(this,"value",void 0),_defineProperty(this,"chainId",void 0),_defineProperty(this,"signature",void 0),_defineProperty(this,"accessList",void 0),_defineProperty(this,"blobVersionedHashes",void 0),_classPrivateFieldInitSpec(this,ve,void 0),this.provider=te,this.blockNumber=null!=D.blockNumber?D.blockNumber:null,this.blockHash=null!=D.blockHash?D.blockHash:null,this.hash=D.hash,this.index=D.index,this.type=D.type,this.from=D.from,this.to=D.to||null,this.gasLimit=D.gasLimit,this.nonce=D.nonce,this.data=D.data,this.value=D.value,this.gasPrice=D.gasPrice,this.maxPriorityFeePerGas=null!=D.maxPriorityFeePerGas?D.maxPriorityFeePerGas:null,this.maxFeePerGas=null!=D.maxFeePerGas?D.maxFeePerGas:null,this.maxFeePerBlobGas=null!=D.maxFeePerBlobGas?D.maxFeePerBlobGas:null,this.chainId=D.chainId,this.signature=D.signature,this.accessList=null!=D.accessList?D.accessList:null,this.blobVersionedHashes=null!=D.blobVersionedHashes?D.blobVersionedHashes:null,_classPrivateFieldSet2(ve,this,-1)}toJSON(){const{blockNumber:D,blockHash:te,index:he,hash:ye,type:be,to:ve,from:we,nonce:_e,data:Pe,signature:Ie,accessList:Re,blobVersionedHashes:ke}=this;return{_type:"TransactionResponse",accessList:Re,blockNumber:D,blockHash:te,blobVersionedHashes:ke,chainId:toJson(this.chainId),data:Pe,from:we,gasLimit:toJson(this.gasLimit),gasPrice:toJson(this.gasPrice),hash:ye,maxFeePerGas:toJson(this.maxFeePerGas),maxPriorityFeePerGas:toJson(this.maxPriorityFeePerGas),maxFeePerBlobGas:toJson(this.maxFeePerBlobGas),nonce:_e,signature:Ie,to:ve,index:he,type:be,value:toJson(this.value)}}async getBlock(){let D=this.blockNumber;if(null==D){const te=await this.getTransaction();te&&(D=te.blockNumber)}if(null==D)return null;const te=this.provider.getBlock(D);if(null==te)throw new Error("TODO");return te}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(null==this.blockNumber){const{tx:te,blockNumber:he}=await(0,D.resolveProperties)({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return null==te||null==te.blockNumber?0:he-te.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(te,ye){const be=null==te?1:te,we=null==ye?0:ye;let _e=_classPrivateFieldGet2(ve,this),Pe=-1,Ie=-1===_e;const checkReplacement=async()=>{if(Ie)return null;const{blockNumber:te,nonce:ye}=await(0,D.resolveProperties)({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(ye<this.nonce)return void(_e=te);if(Ie)return null;const we=await this.getTransaction();if(!we||null==we.blockNumber)for(-1===Pe&&(Pe=_e-3,Pe<_classPrivateFieldGet2(ve,this)&&(Pe=_classPrivateFieldGet2(ve,this)));Pe<=te;){if(Ie)return null;const ye=await this.provider.getBlock(Pe,!0);if(null==ye)return;for(const D of ye)if(D===this.hash)return;for(let ve=0;ve<ye.length;ve++){const we=await ye.getTransaction(ve);if(we.from===this.from&&we.nonce===this.nonce){if(Ie)return null;const ye=await this.provider.getTransactionReceipt(we.hash);if(null==ye)return;if(te-ye.blockNumber+1<be)return;let ve="replaced";we.data===this.data&&we.to===this.to&&we.value===this.value?ve="repriced":"0x"===we.data&&we.from===we.to&&we.value===he&&(ve="cancelled"),(0,D.assert)(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:"replaced"===ve||"cancelled"===ve,reason:ve,replacement:we.replaceableTransaction(_e),hash:we.hash,receipt:ye})}}Pe++}},checkReceipt=te=>{if(null==te||0!==te.status)return te;(0,D.assert)(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:te.to,from:te.from,data:""},receipt:te})},Re=await this.provider.getTransactionReceipt(this.hash);if(0===be)return checkReceipt(Re);if(Re){if(await Re.confirmations()>=be)return checkReceipt(Re)}else if(await checkReplacement(),0===be)return null;const ke=new Promise(((te,he)=>{const ye=[],cancel=()=>{ye.forEach((D=>D()))};if(ye.push((()=>{Ie=!0})),we>0){const te=setTimeout((()=>{cancel(),he((0,D.makeError)("wait for transaction timeout","TIMEOUT"))}),we);ye.push((()=>{clearTimeout(te)}))}const txListener=async D=>{if(await D.confirmations()>=be){cancel();try{te(checkReceipt(D))}catch(D){he(D)}}};if(ye.push((()=>{this.provider.off(this.hash,txListener)})),this.provider.on(this.hash,txListener),_e>=0){const replaceListener=async()=>{try{await checkReplacement()}catch(te){if((0,D.isError)(te,"TRANSACTION_REPLACED"))return cancel(),void he(te)}Ie||this.provider.once("block",replaceListener)};ye.push((()=>{this.provider.off("block",replaceListener)})),this.provider.once("block",replaceListener)}}));return await ke}isMined(){return null!=this.blockHash}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}removedEvent(){return(0,D.assert)(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),createRemovedTransactionFilter(this)}reorderedEvent(te){return(0,D.assert)(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),(0,D.assert)(!te||te.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),createReorderedTransactionFilter(this,te)}replaceableTransaction(te){(0,D.assertArgument)(Number.isInteger(te)&&te>=0,"invalid startBlock","startBlock",te);const he=new TransactionResponse(this,this.provider);return _classPrivateFieldSet2(ve,he,te),he}}function createReorderedTransactionFilter(D,te){return{orphan:"reorder-transaction",tx:D,other:te}}function createRemovedTransactionFilter(D){return{orphan:"drop-transaction",tx:D}}return RB.TransactionResponse=TransactionResponse,RB}var kB,OB,xB={};function requireWrappers(){if(kB)return xB;kB=1,Object.defineProperty(xB,"__esModule",{value:!0}),xB.ContractEventPayload=xB.ContractUnknownEventPayload=xB.ContractTransactionResponse=xB.ContractTransactionReceipt=xB.UndecodedEventLog=xB.EventLog=void 0;const D=requireProvider(),te=requireUtils$4();class EventLog extends D.Log{constructor(D,he,ye){super(D,D.provider),_defineProperty(this,"interface",void 0),_defineProperty(this,"fragment",void 0),_defineProperty(this,"args",void 0);const be=he.decodeEventLog(ye,D.data,D.topics);(0,te.defineProperties)(this,{args:be,fragment:ye,interface:he})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}xB.EventLog=EventLog;class UndecodedEventLog extends D.Log{constructor(D,he){super(D,D.provider),_defineProperty(this,"error",void 0),(0,te.defineProperties)(this,{error:he})}}xB.UndecodedEventLog=UndecodedEventLog;var he=new WeakMap;class ContractTransactionReceipt extends D.TransactionReceipt{constructor(D,te,ye){super(ye,te),_classPrivateFieldInitSpec(this,he,void 0),_classPrivateFieldSet2(he,this,D)}get logs(){return super.logs.map((D=>{const te=D.topics.length?_classPrivateFieldGet2(he,this).getEvent(D.topics[0]):null;if(te)try{return new EventLog(D,_classPrivateFieldGet2(he,this),te)}catch(te){return new UndecodedEventLog(D,te)}return D}))}}xB.ContractTransactionReceipt=ContractTransactionReceipt;var ye=new WeakMap;class ContractTransactionResponse extends D.TransactionResponse{constructor(D,te,he){super(he,te),_classPrivateFieldInitSpec(this,ye,void 0),_classPrivateFieldSet2(ye,this,D)}async wait(D,te){const he=await super.wait(D,te);return null==he?null:new ContractTransactionReceipt(_classPrivateFieldGet2(ye,this),this.provider,he)}}xB.ContractTransactionResponse=ContractTransactionResponse;class ContractUnknownEventPayload extends te.EventPayload{constructor(D,he,ye,be){super(D,he,ye),_defineProperty(this,"log",void 0),(0,te.defineProperties)(this,{log:be})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}xB.ContractUnknownEventPayload=ContractUnknownEventPayload;return xB.ContractEventPayload=class ContractEventPayload extends ContractUnknownEventPayload{constructor(D,he,ye,be,ve){super(D,he,ye,new EventLog(ve,D.interface,be));const we=D.interface.decodeEventLog(be,this.log.data,this.log.topics);(0,te.defineProperties)(this,{args:we,fragment:be})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}},xB}function requireContract$1(){if(OB)return IB;OB=1,Object.defineProperty(IB,"__esModule",{value:!0}),IB.Contract=IB.BaseContract=IB.resolveArgs=IB.copyOverrides=void 0;const D=requireAbi(),te=requireAddress$2(),he=requireProvider(),ye=requireUtils$4(),be=requireWrappers(),ve=BigInt(0);function canCall(D){return D&&"function"==typeof D.call}function canEstimate(D){return D&&"function"==typeof D.estimateGas}function canResolve(D){return D&&"function"==typeof D.resolveName}function canSend(D){return D&&"function"==typeof D.sendTransaction}function getResolver(D){if(null!=D){if(canResolve(D))return D;if(D.provider)return D.provider}}var we=new WeakMap;class PreparedTopicFilter{constructor(D,he,be){if(_classPrivateFieldInitSpec(this,we,void 0),_defineProperty(this,"fragment",void 0),(0,ye.defineProperties)(this,{fragment:he}),he.inputs.length<be.length)throw new Error("too many arguments");const ve=getRunner(D.runner,"resolveName"),_e=canResolve(ve)?ve:null;_classPrivateFieldSet2(we,this,async function(){const ye=await Promise.all(he.inputs.map(((D,he)=>null==be[he]?null:D.walkAsync(be[he],((D,he)=>"address"===D?Array.isArray(he)?Promise.all(he.map((D=>(0,te.resolveAddress)(D,_e)))):(0,te.resolveAddress)(he,_e):he)))));return D.interface.encodeFilterTopics(he,ye)}())}getTopicFilter(){return _classPrivateFieldGet2(we,this)}}function getRunner(D,te){return null==D?null:"function"==typeof D[te]?D:D.provider&&"function"==typeof D.provider[te]?D.provider:null}function getProvider(D){return null==D?null:D.provider||null}async function copyOverrides(te,be){const ve=D.Typed.dereference(te,"overrides");(0,ye.assertArgument)("object"==typeof ve,"invalid overrides parameter","overrides",te);const we=(0,he.copyRequest)(ve);return(0,ye.assertArgument)(null==we.to||(be||[]).indexOf("to")>=0,"cannot override to","overrides.to",we.to),(0,ye.assertArgument)(null==we.data||(be||[]).indexOf("data")>=0,"cannot override data","overrides.data",we.data),we.from&&(we.from=we.from),we}async function resolveArgs(he,ye,be){const ve=getRunner(he,"resolveName"),we=canResolve(ve)?ve:null;return await Promise.all(ye.map(((he,ye)=>he.walkAsync(be[ye],((he,ye)=>(ye=D.Typed.dereference(ye,he),"address"===he?(0,te.resolveAddress)(ye,we):ye))))))}function buildWrappedFallback(D){const populateTransaction=async function(he){const be=await copyOverrides(he,["data"]);be.to=await D.getAddress(),be.from&&(be.from=await(0,te.resolveAddress)(be.from,getResolver(D.runner)));const we=D.interface,_e=(0,ye.getBigInt)(be.value||ve,"overrides.value")===ve,Pe="0x"===(be.data||"0x");!we.fallback||we.fallback.payable||!we.receive||Pe||_e||(0,ye.assertArgument)(!1,"cannot send data to receive or send value to non-payable fallback","overrides",he),(0,ye.assertArgument)(we.fallback||Pe,"cannot send data to receive-only contract","overrides.data",be.data);const Ie=we.receive||we.fallback&&we.fallback.payable;return(0,ye.assertArgument)(Ie||_e,"cannot send value to non-payable fallback","overrides.value",be.value),(0,ye.assertArgument)(we.fallback||Pe,"cannot send data to receive-only contract","overrides.data",be.data),be},send=async function(te){const he=D.runner;(0,ye.assert)(canSend(he),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const ve=await he.sendTransaction(await populateTransaction(te)),we=getProvider(D.runner);return new be.ContractTransactionResponse(D.interface,we,ve)},method=async D=>await send(D);return(0,ye.defineProperties)(method,{_contract:D,estimateGas:async function(te){const he=getRunner(D.runner,"estimateGas");return(0,ye.assert)(canEstimate(he),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await he.estimateGas(await populateTransaction(te))},populateTransaction:populateTransaction,send:send,staticCall:async function(te){const he=getRunner(D.runner,"call");(0,ye.assert)(canCall(he),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const be=await populateTransaction(te);try{return await he.call(be)}catch(te){if((0,ye.isCallException)(te)&&te.data)throw D.interface.makeError(te.data,be);throw te}}}),method}IB.copyOverrides=copyOverrides,IB.resolveArgs=resolveArgs;const _e=Symbol.for("_ethersInternal_contract"),Pe=new WeakMap;function getInternal(D){return Pe.get(D[_e])}async function getSubInfo(D,te){let he,be=null;if(Array.isArray(te)){const topicHashify=function(te){if((0,ye.isHexString)(te,32))return te;const he=D.interface.getEvent(te);return(0,ye.assertArgument)(he,"unknown fragment","name",te),he.topicHash};he=te.map((D=>null==D?null:Array.isArray(D)?D.map(topicHashify):topicHashify(D)))}else"*"===te?he=[null]:"string"==typeof te?(0,ye.isHexString)(te,32)?he=[te]:(be=D.interface.getEvent(te),(0,ye.assertArgument)(be,"unknown fragment","event",te),he=[be.topicHash]):!function isDeferred(D){return D&&"object"==typeof D&&"getTopicFilter"in D&&"function"==typeof D.getTopicFilter&&D.fragment}(te)?"fragment"in te?(be=te.fragment,he=[be.topicHash]):(0,ye.assertArgument)(!1,"unknown event name","event",te):he=await te.getTopicFilter();he=he.map((D=>{if(null==D)return null;if(Array.isArray(D)){const te=Array.from(new Set(D.map((D=>D.toLowerCase()))).values());return 1===te.length?te[0]:(te.sort(),te)}return D.toLowerCase()}));const ve=he.map((D=>null==D?"null":Array.isArray(D)?D.join("|"):D)).join("&");return{fragment:be,tag:ve,topics:he}}async function hasSub(D,te){const{subs:he}=getInternal(D);return he.get((await getSubInfo(D,te)).tag)||null}async function getSub(D,te,he){const ve=getProvider(D.runner);(0,ye.assert)(ve,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:te});const{fragment:we,tag:_e,topics:Pe}=await getSubInfo(D,he),{addr:Ie,subs:Re}=getInternal(D);let ke=Re.get(_e);if(!ke){const te={address:Ie||D,topics:Pe},listener=te=>{let ye=we;if(null==ye)try{ye=D.interface.getEvent(te.topics[0])}catch(D){}if(ye){const ve=ye,_e=we?D.interface.decodeEventLog(we,te.data,te.topics):[];emit(D,he,_e,(ye=>new be.ContractEventPayload(D,ye,he,ve,te)))}else emit(D,he,[],(ye=>new be.ContractUnknownEventPayload(D,ye,he,te)))};let ye=[];ke={tag:_e,listeners:[],start:()=>{ye.length||ye.push(ve.on(te,listener))},stop:async()=>{if(0==ye.length)return;let D=ye;ye=[],await Promise.all(D),ve.off(te,listener)}},Re.set(_e,ke)}return ke}let Ie=Promise.resolve();async function emit(D,te,he,ye){try{await Ie}catch(D){}const be=async function _emit(D,te,he,ye){await Ie;const be=await hasSub(D,te);if(!be)return!1;const ve=be.listeners.length;return be.listeners=be.listeners.filter((({listener:te,once:be})=>{const ve=Array.from(he);ye&&ve.push(ye(be?null:te));try{te.call(D,...ve)}catch(D){}return!be})),0===be.listeners.length&&(be.stop(),getInternal(D).subs.delete(be.tag)),ve>0}(D,te,he,ye);return Ie=be,await be}const Re=["then"];class BaseContract{constructor(he,ve,we,Ie){_defineProperty(this,"target",void 0),_defineProperty(this,"interface",void 0),_defineProperty(this,"runner",void 0),_defineProperty(this,"filters",void 0),_defineProperty(this,_e,void 0),_defineProperty(this,"fallback",void 0),(0,ye.assertArgument)("string"==typeof he||(0,te.isAddressable)(he),"invalid value for Contract target","target",he),null==we&&(we=null);const ke=D.Interface.from(ve);let Oe;(0,ye.defineProperties)(this,{target:he,runner:we,interface:ke}),Object.defineProperty(this,_e,{value:{}});let xe=null,Be=null;if(Ie){const D=getProvider(we);Be=new be.ContractTransactionResponse(this.interface,D,Ie)}let Fe=new Map;if("string"==typeof he)if((0,ye.isHexString)(he))xe=he,Oe=Promise.resolve(he);else{const D=getRunner(we,"resolveName");if(!canResolve(D))throw(0,ye.makeError)("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});Oe=D.resolveName(he).then((D=>{if(null==D)throw(0,ye.makeError)("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:he});return getInternal(this).addr=D,D}))}else Oe=he.getAddress().then((D=>{if(null==D)throw new Error("TODO");return getInternal(this).addr=D,D}));!function setInternal(D,te){Pe.set(D[_e],te)}(this,{addrPromise:Oe,addr:xe,deployTx:Be,subs:Fe});const De=new Proxy({},{get:(D,te,he)=>{if("symbol"==typeof te||Re.indexOf(te)>=0)return Reflect.get(D,te,he);try{return this.getEvent(te)}catch(D){if(!(0,ye.isError)(D,"INVALID_ARGUMENT")||"key"!==D.argument)throw D}},has:(D,te)=>Re.indexOf(te)>=0?Reflect.has(D,te):Reflect.has(D,te)||this.interface.hasEvent(String(te))});return(0,ye.defineProperties)(this,{filters:De}),(0,ye.defineProperties)(this,{fallback:ke.receive||ke.fallback?buildWrappedFallback(this):null}),new Proxy(this,{get:(D,te,he)=>{if("symbol"==typeof te||te in D||Re.indexOf(te)>=0)return Reflect.get(D,te,he);try{return D.getFunction(te)}catch(D){if(!(0,ye.isError)(D,"INVALID_ARGUMENT")||"key"!==D.argument)throw D}},has:(D,te)=>"symbol"==typeof te||te in D||Re.indexOf(te)>=0?Reflect.has(D,te):D.interface.hasFunction(te)})}connect(D){return new BaseContract(this.target,this.interface,D)}attach(D){return new BaseContract(D,this.interface,this.runner)}async getAddress(){return await getInternal(this).addrPromise}async getDeployedCode(){const D=getProvider(this.runner);(0,ye.assert)(D,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const te=await D.getCode(await this.getAddress());return"0x"===te?null:te}async waitForDeployment(){const D=this.deploymentTransaction();if(D)return await D.wait(),this;if(null!=await this.getDeployedCode())return this;const te=getProvider(this.runner);return(0,ye.assert)(null!=te,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise(((D,he)=>{const checkCode=async()=>{try{if(null!=await this.getDeployedCode())return D(this);te.once("block",checkCode)}catch(D){he(D)}};checkCode()}))}deploymentTransaction(){return getInternal(this).deployTx}getFunction(D){"string"!=typeof D&&(D=D.format());const he=function buildWrappedMethod(D,he){const getFragment=function(...te){const be=D.interface.getFunction(he,te);return(0,ye.assert)(be,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:he,args:te}}),be},populateTransaction=async function(...he){const be=getFragment(...he);let ve={};if(be.inputs.length+1===he.length&&(ve=await copyOverrides(he.pop()),ve.from&&(ve.from=await(0,te.resolveAddress)(ve.from,getResolver(D.runner)))),be.inputs.length!==he.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const we=await resolveArgs(D.runner,be.inputs,he);return Object.assign({},ve,await(0,ye.resolveProperties)({to:D.getAddress(),data:D.interface.encodeFunctionData(be,we)}))},staticCall=async function(...D){const te=await staticCallResult(...D);return 1===te.length?te[0]:te},send=async function(...te){const he=D.runner;(0,ye.assert)(canSend(he),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const ve=await he.sendTransaction(await populateTransaction(...te)),we=getProvider(D.runner);return new be.ContractTransactionResponse(D.interface,we,ve)},staticCallResult=async function(...te){const he=getRunner(D.runner,"call");(0,ye.assert)(canCall(he),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const be=await populateTransaction(...te);let ve="0x";try{ve=await he.call(be)}catch(te){if((0,ye.isCallException)(te)&&te.data)throw D.interface.makeError(te.data,be);throw te}const we=getFragment(...te);return D.interface.decodeFunctionResult(we,ve)},method=async(...D)=>getFragment(...D).constant?await staticCall(...D):await send(...D);return(0,ye.defineProperties)(method,{name:D.interface.getFunctionName(he),_contract:D,_key:he,getFragment:getFragment,estimateGas:async function(...te){const he=getRunner(D.runner,"estimateGas");return(0,ye.assert)(canEstimate(he),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await he.estimateGas(await populateTransaction(...te))},populateTransaction:populateTransaction,send:send,staticCall:staticCall,staticCallResult:staticCallResult}),Object.defineProperty(method,"fragment",{configurable:!1,enumerable:!0,get:()=>{const te=D.interface.getFunction(he);return(0,ye.assert)(te,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:he}}),te}}),method}(this,D);return he}getEvent(D){return"string"!=typeof D&&(D=D.format()),function buildWrappedEvent(D,te){const getFragment=function(...he){const be=D.interface.getEvent(te,he);return(0,ye.assert)(be,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:te,args:he}}),be},method=function(...te){return new PreparedTopicFilter(D,getFragment(...te),te)};return(0,ye.defineProperties)(method,{name:D.interface.getEventName(te),_contract:D,_key:te,getFragment:getFragment}),Object.defineProperty(method,"fragment",{configurable:!1,enumerable:!0,get:()=>{const he=D.interface.getEvent(te);return(0,ye.assert)(he,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:te}}),he}}),method}(this,D)}async queryTransaction(D){throw new Error("@TODO")}async queryFilter(D,te,ve){null==te&&(te=0),null==ve&&(ve="latest");const{addr:we,addrPromise:_e}=getInternal(this),Pe=we||await _e,{fragment:Ie,topics:Re}=await getSubInfo(this,D),ke={address:Pe,topics:Re,fromBlock:te,toBlock:ve},Oe=getProvider(this.runner);return(0,ye.assert)(Oe,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await Oe.getLogs(ke)).map((D=>{let te=Ie;if(null==te)try{te=this.interface.getEvent(D.topics[0])}catch(D){}if(te)try{return new be.EventLog(D,this.interface,te)}catch(te){return new be.UndecodedEventLog(D,te)}return new he.Log(D,Oe)}))}async on(D,te){const he=await getSub(this,"on",D);return he.listeners.push({listener:te,once:!1}),he.start(),this}async once(D,te){const he=await getSub(this,"once",D);return he.listeners.push({listener:te,once:!0}),he.start(),this}async emit(D,...te){return await emit(this,D,te,null)}async listenerCount(D){if(D){const te=await hasSub(this,D);return te?te.listeners.length:0}const{subs:te}=getInternal(this);let he=0;for(const{listeners:D}of te.values())he+=D.length;return he}async listeners(D){if(D){const te=await hasSub(this,D);return te?te.listeners.map((({listener:D})=>D)):[]}const{subs:te}=getInternal(this);let he=[];for(const{listeners:D}of te.values())he=he.concat(D.map((({listener:D})=>D)));return he}async off(D,te){const he=await hasSub(this,D);if(!he)return this;if(te){const D=he.listeners.map((({listener:D})=>D)).indexOf(te);D>=0&&he.listeners.splice(D,1)}return null!=te&&0!==he.listeners.length||(he.stop(),getInternal(this).subs.delete(he.tag)),this}async removeAllListeners(D){if(D){const te=await hasSub(this,D);if(!te)return this;te.stop(),getInternal(this).subs.delete(te.tag)}else{const{subs:D}=getInternal(this);for(const{tag:te,stop:he}of D.values())he(),D.delete(te)}return this}async addListener(D,te){return await this.on(D,te)}async removeListener(D,te){return await this.off(D,te)}static buildClass(D){return class CustomContract extends BaseContract{constructor(te,he=null){super(te,D,he)}}}static from(D,te,he){null==he&&(he=null);return new this(D,te,he)}}IB.BaseContract=BaseContract;class Contract extends(function _ContractBase(){return BaseContract}()){}return IB.Contract=Contract,IB}var NB,MB,BB={};function requireContract(){return MB||(MB=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.UndecodedEventLog=D.EventLog=D.ContractTransactionResponse=D.ContractTransactionReceipt=D.ContractUnknownEventPayload=D.ContractEventPayload=D.ContractFactory=D.Contract=D.BaseContract=void 0;var te=requireContract$1();Object.defineProperty(D,"BaseContract",{enumerable:!0,get:function(){return te.BaseContract}}),Object.defineProperty(D,"Contract",{enumerable:!0,get:function(){return te.Contract}});var he=function requireFactory(){if(NB)return BB;NB=1,Object.defineProperty(BB,"__esModule",{value:!0}),BB.ContractFactory=void 0;const D=requireAbi(),te=requireAddress$2(),he=requireUtils$4(),ye=requireContract$1();class ContractFactory{constructor(te,ye,be){_defineProperty(this,"interface",void 0),_defineProperty(this,"bytecode",void 0),_defineProperty(this,"runner",void 0);const ve=D.Interface.from(te);ye instanceof Uint8Array||("object"==typeof ye&&(ye=ye.object),ye.startsWith("0x")||(ye="0x"+ye)),ye=(0,he.hexlify)((0,he.getBytes)(ye)),(0,he.defineProperties)(this,{bytecode:ye,interface:ve,runner:be||null})}attach(D){return new ye.BaseContract(D,this.interface,this.runner)}async getDeployTransaction(...D){let te={};const be=this.interface.deploy;if(be.inputs.length+1===D.length&&(te=await(0,ye.copyOverrides)(D.pop())),be.inputs.length!==D.length)throw new Error("incorrect number of arguments to constructor");const ve=await(0,ye.resolveArgs)(this.runner,be.inputs,D),we=(0,he.concat)([this.bytecode,this.interface.encodeDeploy(ve)]);return Object.assign({},te,{data:we})}async deploy(...D){const be=await this.getDeployTransaction(...D);(0,he.assert)(this.runner&&"function"==typeof this.runner.sendTransaction,"factory runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const ve=await this.runner.sendTransaction(be),we=(0,te.getCreateAddress)(ve);return new ye.BaseContract(we,this.interface,this.runner,ve)}connect(D){return new ContractFactory(this.interface,this.bytecode,D)}static fromSolidity(D,te){(0,he.assertArgument)(null!=D,"bad compiler output","output",D),"string"==typeof D&&(D=JSON.parse(D));const ye=D.abi;let be="";return D.bytecode?be=D.bytecode:D.evm&&D.evm.bytecode&&(be=D.evm.bytecode),new this(ye,be,te)}}return BB.ContractFactory=ContractFactory,BB}();Object.defineProperty(D,"ContractFactory",{enumerable:!0,get:function(){return he.ContractFactory}});var ye=requireWrappers();Object.defineProperty(D,"ContractEventPayload",{enumerable:!0,get:function(){return ye.ContractEventPayload}}),Object.defineProperty(D,"ContractUnknownEventPayload",{enumerable:!0,get:function(){return ye.ContractUnknownEventPayload}}),Object.defineProperty(D,"ContractTransactionReceipt",{enumerable:!0,get:function(){return ye.ContractTransactionReceipt}}),Object.defineProperty(D,"ContractTransactionResponse",{enumerable:!0,get:function(){return ye.ContractTransactionResponse}}),Object.defineProperty(D,"EventLog",{enumerable:!0,get:function(){return ye.EventLog}}),Object.defineProperty(D,"UndecodedEventLog",{enumerable:!0,get:function(){return ye.UndecodedEventLog}})}(CB)),CB}var FB,DB={},LB={},UB={};function requireEnsResolver(){var D;if(FB)return UB;FB=1,Object.defineProperty(UB,"__esModule",{value:!0}),UB.EnsResolver=UB.BasicMulticoinProviderPlugin=UB.MulticoinProviderPlugin=void 0;const te=requireAddress$2(),he=requireConstants(),ye=requireContract(),be=requireHash(),ve=requireUtils$4();function getIpfsLink(D){return D.match(/^ipfs:\/\/ipfs\//i)?D=D.substring(12):D.match(/^ipfs:\/\//i)?D=D.substring(7):(0,ve.assertArgument)(!1,"unsupported IPFS format","link",D),`https://gateway.ipfs.io/ipfs/${D}`}class MulticoinProviderPlugin{constructor(D){_defineProperty(this,"name",void 0),(0,ve.defineProperties)(this,{name:D})}connect(D){return this}supportsCoinType(D){return!1}async encodeAddress(D,te){throw new Error("unsupported coin")}async decodeAddress(D,te){throw new Error("unsupported coin")}}UB.MulticoinProviderPlugin=MulticoinProviderPlugin;UB.BasicMulticoinProviderPlugin=class BasicMulticoinProviderPlugin extends MulticoinProviderPlugin{constructor(){super("org.ethers.plugins.provider.BasicMulticoin")}};const we=new RegExp("^(ipfs)://(.*)$","i"),_e=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),we,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];var Pe=new WeakMap,Ie=new WeakMap,Re=new WeakSet;class EnsResolver{constructor(D,te,he){_classPrivateMethodInitSpec(this,Re),_defineProperty(this,"provider",void 0),_defineProperty(this,"address",void 0),_defineProperty(this,"name",void 0),_classPrivateFieldInitSpec(this,Pe,void 0),_classPrivateFieldInitSpec(this,Ie,void 0),(0,ve.defineProperties)(this,{provider:D,address:te,name:he}),_classPrivateFieldSet2(Pe,this,null),_classPrivateFieldSet2(Ie,this,new ye.Contract(te,["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)"],D))}async supportsWildcard(){return null==_classPrivateFieldGet2(Pe,this)&&_classPrivateFieldSet2(Pe,this,(async()=>{try{return await _classPrivateFieldGet2(Ie,this).supportsInterface("0x9061b923")}catch(D){if((0,ve.isError)(D,"CALL_EXCEPTION"))return!1;throw _classPrivateFieldSet2(Pe,this,null),D}})()),await _classPrivateFieldGet2(Pe,this)}async getAddress(D){if(null==D&&(D=60),60===D)try{const D=await _assertClassBrand(Re,this,_fetch).call(this,"addr(bytes32)");return null==D||D===he.ZeroAddress?null:D}catch(D){if((0,ve.isError)(D,"CALL_EXCEPTION"))return null;throw D}if(D>=0&&D<2147483648){let he=D+2147483648;const ye=await _assertClassBrand(Re,this,_fetch).call(this,"addr(bytes32,uint)",[he]);if((0,ve.isHexString)(ye,20))return(0,te.getAddress)(ye)}let ye=null;for(const te of this.provider.plugins)if(te instanceof MulticoinProviderPlugin&&te.supportsCoinType(D)){ye=te;break}if(null==ye)return null;const be=await _assertClassBrand(Re,this,_fetch).call(this,"addr(bytes32,uint)",[D]);if(null==be||"0x"===be)return null;const we=await ye.decodeAddress(D,be);if(null!=we)return we;(0,ve.assert)(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${D})`,info:{coinType:D,data:be}})}async getText(D){const te=await _assertClassBrand(Re,this,_fetch).call(this,"text(bytes32,string)",[D]);return null==te||"0x"===te?null:te}async getContentHash(){const D=await _assertClassBrand(Re,this,_fetch).call(this,"contenthash(bytes32)");if(null==D||"0x"===D)return null;const te=D.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(te){const D="e3010170"===te[1]?"ipfs":"ipns",he=parseInt(te[4],16);if(te[5].length===2*he)return`${D}://${(0,ve.encodeBase58)("0x"+te[2])}`}const he=D.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(he&&64===he[1].length)return`bzz://${he[1]}`;(0,ve.assert)(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:D}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const D=[{type:"name",value:this.name}];try{const te=await this.getText("avatar");if(null==te)return D.push({type:"!avatar",value:""}),{url:null,linkage:D};D.push({type:"avatar",value:te});for(let he=0;he<_e.length;he++){const be=te.match(_e[he]);if(null==be)continue;const Pe=be[1].toLowerCase();switch(Pe){case"https":case"data":return D.push({type:"url",value:te}),{linkage:D,url:te};case"ipfs":{const he=getIpfsLink(te);return D.push({type:"ipfs",value:te}),D.push({type:"url",value:he}),{linkage:D,url:he}}case"erc721":case"erc1155":{const he="erc721"===Pe?"tokenURI(uint256)":"uri(uint256)";D.push({type:Pe,value:te});const _e=await this.getAddress();if(null==_e)return D.push({type:"!owner",value:""}),{url:null,linkage:D};const Ie=(be[2]||"").split("/");if(2!==Ie.length)return D.push({type:`!${Pe}caip`,value:be[2]||""}),{url:null,linkage:D};const Re=Ie[1],ke=new ye.Contract(Ie[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if("erc721"===Pe){const te=await ke.ownerOf(Re);if(_e!==te)return D.push({type:"!owner",value:te}),{url:null,linkage:D};D.push({type:"owner",value:te})}else if("erc1155"===Pe){const te=await ke.balanceOf(_e,Re);if(!te)return D.push({type:"!balance",value:"0"}),{url:null,linkage:D};D.push({type:"balance",value:te.toString()})}let Oe=await ke[he](Re);if(null==Oe||"0x"===Oe)return D.push({type:"!metadata-url",value:""}),{url:null,linkage:D};D.push({type:"metadata-url-base",value:Oe}),"erc1155"===Pe&&(Oe=Oe.replace("{id}",(0,ve.toBeHex)(Re,32).substring(2)),D.push({type:"metadata-url-expanded",value:Oe})),Oe.match(/^ipfs:/i)&&(Oe=getIpfsLink(Oe)),D.push({type:"metadata-url",value:Oe});let xe={};const Be=await new ve.FetchRequest(Oe).send();Be.assertOk();try{xe=Be.bodyJson}catch(te){try{D.push({type:"!metadata",value:Be.bodyText})}catch(te){const he=Be.body;return he&&D.push({type:"!metadata",value:(0,ve.hexlify)(he)}),{url:null,linkage:D}}return{url:null,linkage:D}}if(!xe)return D.push({type:"!metadata",value:""}),{url:null,linkage:D};D.push({type:"metadata",value:JSON.stringify(xe)});let Fe=xe.image;if("string"!=typeof Fe)return D.push({type:"!imageUrl",value:""}),{url:null,linkage:D};if(Fe.match(/^(https:\/\/|data:)/i));else{if(null==Fe.match(we))return D.push({type:"!imageUrl-ipfs",value:Fe}),{url:null,linkage:D};D.push({type:"imageUrl-ipfs",value:Fe}),Fe=getIpfsLink(Fe)}return D.push({type:"url",value:Fe}),{linkage:D,url:Fe}}}}}catch(D){}return{linkage:D,url:null}}static async getEnsAddress(D){const te=await D.getNetwork(),he=te.getPlugin("org.ethers.plugins.network.Ens");return(0,ve.assert)(he,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:te}}),he.address}static async fromName(D,te){let he=te;for(;;){if(""===he||"."===he)return null;if("eth"!==te&&"eth"===he)return null;const ye=await _getResolver.call(EnsResolver,D,he);if(null!=ye){const be=new EnsResolver(D,ye,te);return he===te||await be.supportsWildcard()?be:null}he=he.split(".").slice(1).join(".")}}}async function _fetch(D,te){te=(te||[]).slice();const he=_classPrivateFieldGet2(Ie,this).interface;te.unshift((0,be.namehash)(this.name));let ye=null;await this.supportsWildcard()&&(ye=he.getFunction(D),(0,ve.assert)(ye,"missing fragment","UNKNOWN_ERROR",{info:{funcName:D}}),te=[(0,be.dnsEncode)(this.name,255),he.encodeFunctionData(ye,te)],D="resolve(bytes,bytes)"),te.push({enableCcipRead:!0});try{const be=await _classPrivateFieldGet2(Ie,this)[D](...te);return ye?he.decodeFunctionResult(ye,be)[0]:be}catch(D){if(!(0,ve.isError)(D,"CALL_EXCEPTION"))throw D}return null}async function _getResolver(te,ve){const we=await D.getEnsAddress(te);try{const D=new ye.Contract(we,["function resolver(bytes32) view returns (address)"],te),_e=await D.resolver((0,be.namehash)(ve),{enableCcipRead:!0});return _e===he.ZeroAddress?null:_e}catch(D){throw D}return null}return D=EnsResolver,UB.EnsResolver=EnsResolver,UB}var $B,qB={};var GB,jB,HB={},zB={};function requirePluginsNetwork(){if(GB)return zB;GB=1,Object.defineProperty(zB,"__esModule",{value:!0}),zB.FetchUrlFeeDataNetworkPlugin=zB.FeeDataNetworkPlugin=zB.EnsPlugin=zB.GasCostPlugin=zB.NetworkPlugin=void 0;const D=requireProperties(),te=requireUtils$4();class NetworkPlugin{constructor(te){_defineProperty(this,"name",void 0),(0,D.defineProperties)(this,{name:te})}clone(){return new NetworkPlugin(this.name)}}zB.NetworkPlugin=NetworkPlugin;class GasCostPlugin extends NetworkPlugin{constructor(he,ye){null==he&&(he=0),super(`org.ethers.network.plugins.GasCost#${he||0}`),_defineProperty(this,"effectiveBlock",void 0),_defineProperty(this,"txBase",void 0),_defineProperty(this,"txCreate",void 0),_defineProperty(this,"txDataZero",void 0),_defineProperty(this,"txDataNonzero",void 0),_defineProperty(this,"txAccessListStorageKey",void 0),_defineProperty(this,"txAccessListAddress",void 0);const be={effectiveBlock:he};function set(D,he){let ve=(ye||{})[D];null==ve&&(ve=he),(0,te.assertArgument)("number"==typeof ve,`invalud value for ${D}`,"costs",ye),be[D]=ve}set("txBase",21e3),set("txCreate",32e3),set("txDataZero",4),set("txDataNonzero",16),set("txAccessListStorageKey",1900),set("txAccessListAddress",2400),(0,D.defineProperties)(this,be)}clone(){return new GasCostPlugin(this.effectiveBlock,this)}}zB.GasCostPlugin=GasCostPlugin;class EnsPlugin extends NetworkPlugin{constructor(te,he){super("org.ethers.plugins.network.Ens"),_defineProperty(this,"address",void 0),_defineProperty(this,"targetNetwork",void 0),(0,D.defineProperties)(this,{address:te||"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",targetNetwork:null==he?1:he})}clone(){return new EnsPlugin(this.address,this.targetNetwork)}}zB.EnsPlugin=EnsPlugin;var he=new WeakMap;class FeeDataNetworkPlugin extends NetworkPlugin{get feeDataFunc(){return _classPrivateFieldGet2(he,this)}constructor(D){super("org.ethers.plugins.network.FeeData"),_classPrivateFieldInitSpec(this,he,void 0),_classPrivateFieldSet2(he,this,D)}async getFeeData(D){return await _classPrivateFieldGet2(he,this).call(this,D)}clone(){return new FeeDataNetworkPlugin(_classPrivateFieldGet2(he,this))}}zB.FeeDataNetworkPlugin=FeeDataNetworkPlugin;var ye=new WeakMap,be=new WeakMap;return zB.FetchUrlFeeDataNetworkPlugin=class FetchUrlFeeDataNetworkPlugin extends NetworkPlugin{get url(){return _classPrivateFieldGet2(ye,this)}get processFunc(){return _classPrivateFieldGet2(be,this)}constructor(D,te){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),_classPrivateFieldInitSpec(this,ye,void 0),_classPrivateFieldInitSpec(this,be,void 0),_classPrivateFieldSet2(ye,this,D),_classPrivateFieldSet2(be,this,te)}clone(){return this}},zB}function requireNetwork(){if(jB)return HB;jB=1,Object.defineProperty(HB,"__esModule",{value:!0}),HB.Network=void 0;const D=requireTransaction(),te=requireUtils$4(),he=requirePluginsNetwork(),ye=new Map;var be=new WeakMap,ve=new WeakMap,we=new WeakMap;class Network{constructor(D,he){_classPrivateFieldInitSpec(this,be,void 0),_classPrivateFieldInitSpec(this,ve,void 0),_classPrivateFieldInitSpec(this,we,void 0),_classPrivateFieldSet2(be,this,D),_classPrivateFieldSet2(ve,this,(0,te.getBigInt)(he)),_classPrivateFieldSet2(we,this,new Map)}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return _classPrivateFieldGet2(be,this)}set name(D){_classPrivateFieldSet2(be,this,D)}get chainId(){return _classPrivateFieldGet2(ve,this)}set chainId(D){_classPrivateFieldSet2(ve,this,(0,te.getBigInt)(D,"chainId"))}matches(D){if(null==D)return!1;if("string"==typeof D){try{return this.chainId===(0,te.getBigInt)(D)}catch(D){}return this.name===D}if("number"==typeof D||"bigint"==typeof D){try{return this.chainId===(0,te.getBigInt)(D)}catch(D){}return!1}if("object"==typeof D){if(null!=D.chainId){try{return this.chainId===(0,te.getBigInt)(D.chainId)}catch(D){}return!1}return null!=D.name&&this.name===D.name}return!1}get plugins(){return Array.from(_classPrivateFieldGet2(we,this).values())}attachPlugin(D){if(_classPrivateFieldGet2(we,this).get(D.name))throw new Error(`cannot replace existing plugin: ${D.name} `);return _classPrivateFieldGet2(we,this).set(D.name,D.clone()),this}getPlugin(D){return _classPrivateFieldGet2(we,this).get(D)||null}getPlugins(D){return this.plugins.filter((te=>te.name.split("#")[0]===D))}clone(){const D=new Network(this.name,this.chainId);return this.plugins.forEach((te=>{D.attachPlugin(te.clone())})),D}computeIntrinsicGas(te){const ye=this.getPlugin("org.ethers.plugins.network.GasCost")||new he.GasCostPlugin;let be=ye.txBase;if(null==te.to&&(be+=ye.txCreate),te.data)for(let D=2;D<te.data.length;D+=2)"00"===te.data.substring(D,D+2)?be+=ye.txDataZero:be+=ye.txDataNonzero;if(te.accessList){const he=(0,D.accessListify)(te.accessList);for(const D in he)be+=ye.txAccessListAddress+ye.txAccessListStorageKey*he[D].storageKeys.length}return be}static from(D){if(function injectCommonNetworks(){if(_e)return;function registerEth(D,te,ye){const func=function(){const be=new Network(D,te);return null!=ye.ensNetwork&&be.attachPlugin(new he.EnsPlugin(null,ye.ensNetwork)),be.attachPlugin(new he.GasCostPlugin),(ye.plugins||[]).forEach((D=>{be.attachPlugin(D)})),be};Network.register(D,func),Network.register(te,func),ye.altNames&&ye.altNames.forEach((D=>{Network.register(D,func)}))}_e=!0,registerEth("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),registerEth("ropsten",3,{ensNetwork:3}),registerEth("rinkeby",4,{ensNetwork:4}),registerEth("goerli",5,{ensNetwork:5}),registerEth("kovan",42,{ensNetwork:42}),registerEth("sepolia",11155111,{ensNetwork:11155111}),registerEth("holesky",17e3,{ensNetwork:17e3}),registerEth("classic",61,{}),registerEth("classicKotti",6,{}),registerEth("arbitrum",42161,{ensNetwork:1}),registerEth("arbitrum-goerli",421613,{}),registerEth("arbitrum-sepolia",421614,{}),registerEth("base",8453,{ensNetwork:1}),registerEth("base-goerli",84531,{}),registerEth("base-sepolia",84532,{}),registerEth("bnb",56,{ensNetwork:1}),registerEth("bnbt",97,{}),registerEth("linea",59144,{ensNetwork:1}),registerEth("linea-goerli",59140,{}),registerEth("matic",137,{ensNetwork:1,plugins:[getGasStationPlugin("https://gasstation.polygon.technology/v2")]}),registerEth("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[getGasStationPlugin("https://gasstation-testnet.polygon.technology/v2")]}),registerEth("optimism",10,{ensNetwork:1,plugins:[]}),registerEth("optimism-goerli",420,{}),registerEth("optimism-sepolia",11155420,{}),registerEth("xdai",100,{ensNetwork:1})}(),null==D)return Network.from("mainnet");if("number"==typeof D&&(D=BigInt(D)),"string"==typeof D||"bigint"==typeof D){const he=ye.get(D);if(he)return he();if("bigint"==typeof D)return new Network("unknown",D);(0,te.assertArgument)(!1,"unknown network","network",D)}if("function"==typeof D.clone){return D.clone()}if("object"==typeof D){(0,te.assertArgument)("string"==typeof D.name&&"number"==typeof D.chainId,"invalid network object name or chainId","network",D);const ye=new Network(D.name,D.chainId);return(D.ensAddress||null!=D.ensNetwork)&&ye.attachPlugin(new he.EnsPlugin(D.ensAddress,D.ensNetwork)),ye}(0,te.assertArgument)(!1,"invalid network","network",D)}static register(D,he){"number"==typeof D&&(D=BigInt(D));const be=ye.get(D);be&&(0,te.assertArgument)(!1,`conflicting network for ${JSON.stringify(be.name)}`,"nameOrChainId",D),ye.set(D,he)}}function parseUnits(D,te){const he=String(D);if(!he.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${D}`);const ye=he.split(".");if(1===ye.length&&ye.push(""),2!==ye.length)throw new Error(`invalid gwei value: ${D}`);for(;ye[1].length<te;)ye[1]+="0";if(ye[1].length>9){let D=BigInt(ye[1].substring(0,9));ye[1].substring(9).match(/^0+$/)||D++,ye[1]=D.toString()}return BigInt(ye[0]+ye[1])}function getGasStationPlugin(D){return new he.FetchUrlFeeDataNetworkPlugin(D,(async(D,he,ye)=>{let be;ye.setHeader("User-Agent","ethers");try{const[te,he]=await Promise.all([ye.send(),D()]);be=te;const ve=be.bodyJson.standard;return{gasPrice:he.gasPrice,maxFeePerGas:parseUnits(ve.maxFee,9),maxPriorityFeePerGas:parseUnits(ve.maxPriorityFee,9)}}catch(D){(0,te.assert)(!1,`error encountered with polygon gas station (${JSON.stringify(ye.url)})`,"SERVER_ERROR",{request:ye,response:be,error:D})}}))}HB.Network=Network;let _e=!1;return HB}var WB,VB,KB={};function requireSubscriberPolling(){if(WB)return KB;WB=1,Object.defineProperty(KB,"__esModule",{value:!0}),KB.PollingEventSubscriber=KB.PollingTransactionSubscriber=KB.PollingOrphanSubscriber=KB.PollingBlockTagSubscriber=KB.OnBlockSubscriber=KB.PollingBlockSubscriber=KB.getPollingSubscriber=void 0;const D=requireUtils$4();function copy(D){return JSON.parse(JSON.stringify(D))}KB.getPollingSubscriber=function getPollingSubscriber(te,he){return"block"===he?new PollingBlockSubscriber(te):(0,D.isHexString)(he,32)?new PollingTransactionSubscriber(te,he):void(0,D.assert)(!1,"unsupported polling event","UNSUPPORTED_OPERATION",{operation:"getPollingSubscriber",info:{event:he}})};var te=new WeakMap,he=new WeakMap,ye=new WeakMap,be=new WeakMap,ve=new WeakSet;class PollingBlockSubscriber{constructor(D){_classPrivateMethodInitSpec(this,ve),_classPrivateFieldInitSpec(this,te,void 0),_classPrivateFieldInitSpec(this,he,void 0),_classPrivateFieldInitSpec(this,ye,void 0),_classPrivateFieldInitSpec(this,be,void 0),_classPrivateFieldSet2(te,this,D),_classPrivateFieldSet2(he,this,null),_classPrivateFieldSet2(ye,this,4e3),_classPrivateFieldSet2(be,this,-2)}get pollingInterval(){return _classPrivateFieldGet2(ye,this)}set pollingInterval(D){_classPrivateFieldSet2(ye,this,D)}start(){_classPrivateFieldGet2(he,this)||(_classPrivateFieldSet2(he,this,_classPrivateFieldGet2(te,this)._setTimeout(_assertClassBrand(ve,this,_poll).bind(this),_classPrivateFieldGet2(ye,this))),_assertClassBrand(ve,this,_poll).call(this))}stop(){_classPrivateFieldGet2(he,this)&&(_classPrivateFieldGet2(te,this)._clearTimeout(_classPrivateFieldGet2(he,this)),_classPrivateFieldSet2(he,this,null))}pause(D){this.stop(),D&&_classPrivateFieldSet2(be,this,-2)}resume(){this.start()}}async function _poll(){try{const D=await _classPrivateFieldGet2(te,this).getBlockNumber();if(-2===_classPrivateFieldGet2(be,this))return void _classPrivateFieldSet2(be,this,D);if(D!==_classPrivateFieldGet2(be,this)){for(let ye=_classPrivateFieldGet2(be,this)+1;ye<=D;ye++){if(null==_classPrivateFieldGet2(he,this))return;await _classPrivateFieldGet2(te,this).emit("block",ye)}_classPrivateFieldSet2(be,this,D)}}catch(D){}null!=_classPrivateFieldGet2(he,this)&&_classPrivateFieldSet2(he,this,_classPrivateFieldGet2(te,this)._setTimeout(_assertClassBrand(ve,this,_poll).bind(this),_classPrivateFieldGet2(ye,this)))}KB.PollingBlockSubscriber=PollingBlockSubscriber;var we=new WeakMap,_e=new WeakMap,Pe=new WeakMap;class OnBlockSubscriber{constructor(D){_classPrivateFieldInitSpec(this,we,void 0),_classPrivateFieldInitSpec(this,_e,void 0),_classPrivateFieldInitSpec(this,Pe,void 0),_classPrivateFieldSet2(we,this,D),_classPrivateFieldSet2(Pe,this,!1),_classPrivateFieldSet2(_e,this,(D=>{this._poll(D,_classPrivateFieldGet2(we,this))}))}async _poll(D,te){throw new Error("sub-classes must override this")}start(){_classPrivateFieldGet2(Pe,this)||(_classPrivateFieldSet2(Pe,this,!0),_classPrivateFieldGet2(_e,this).call(this,-2),_classPrivateFieldGet2(we,this).on("block",_classPrivateFieldGet2(_e,this)))}stop(){_classPrivateFieldGet2(Pe,this)&&(_classPrivateFieldSet2(Pe,this,!1),_classPrivateFieldGet2(we,this).off("block",_classPrivateFieldGet2(_e,this)))}pause(D){this.stop()}resume(){this.start()}}KB.OnBlockSubscriber=OnBlockSubscriber;var Ie=new WeakMap,Re=new WeakMap;KB.PollingBlockTagSubscriber=class PollingBlockTagSubscriber extends OnBlockSubscriber{constructor(D,te){super(D),_classPrivateFieldInitSpec(this,Ie,void 0),_classPrivateFieldInitSpec(this,Re,void 0),_classPrivateFieldSet2(Ie,this,te),_classPrivateFieldSet2(Re,this,-2)}pause(D){D&&_classPrivateFieldSet2(Re,this,-2),super.pause(D)}async _poll(D,te){const he=await te.getBlock(_classPrivateFieldGet2(Ie,this));null!=he&&(-2===_classPrivateFieldGet2(Re,this)?_classPrivateFieldSet2(Re,this,he.number):he.number>_classPrivateFieldGet2(Re,this)&&(te.emit(_classPrivateFieldGet2(Ie,this),he.number),_classPrivateFieldSet2(Re,this,he.number)))}};var ke=new WeakMap;KB.PollingOrphanSubscriber=class PollingOrphanSubscriber extends OnBlockSubscriber{constructor(D,te){super(D),_classPrivateFieldInitSpec(this,ke,void 0),_classPrivateFieldSet2(ke,this,copy(te))}async _poll(D,te){throw new Error("@TODO")}};var Oe=new WeakMap;class PollingTransactionSubscriber extends OnBlockSubscriber{constructor(D,te){super(D),_classPrivateFieldInitSpec(this,Oe,void 0),_classPrivateFieldSet2(Oe,this,te)}async _poll(D,te){const he=await te.getTransactionReceipt(_classPrivateFieldGet2(Oe,this));he&&te.emit(_classPrivateFieldGet2(Oe,this),he)}}KB.PollingTransactionSubscriber=PollingTransactionSubscriber;var xe=new WeakMap,Be=new WeakMap,Fe=new WeakMap,De=new WeakMap,Le=new WeakMap,Ue=new WeakSet;async function _poll3(D){if(-2===_classPrivateFieldGet2(Le,this))return;const te=copy(_classPrivateFieldGet2(Be,this));te.fromBlock=_classPrivateFieldGet2(Le,this)+1,te.toBlock=D;const he=await _classPrivateFieldGet2(xe,this).getLogs(te);if(0!==he.length)for(const D of he)_classPrivateFieldGet2(xe,this).emit(_classPrivateFieldGet2(Be,this),D),_classPrivateFieldSet2(Le,this,D.blockNumber);else _classPrivateFieldGet2(Le,this)<D-60&&_classPrivateFieldSet2(Le,this,D-60)}return KB.PollingEventSubscriber=class PollingEventSubscriber{constructor(D,te){_classPrivateMethodInitSpec(this,Ue),_classPrivateFieldInitSpec(this,xe,void 0),_classPrivateFieldInitSpec(this,Be,void 0),_classPrivateFieldInitSpec(this,Fe,void 0),_classPrivateFieldInitSpec(this,De,void 0),_classPrivateFieldInitSpec(this,Le,void 0),_classPrivateFieldSet2(xe,this,D),_classPrivateFieldSet2(Be,this,copy(te)),_classPrivateFieldSet2(Fe,this,_assertClassBrand(Ue,this,_poll3).bind(this)),_classPrivateFieldSet2(De,this,!1),_classPrivateFieldSet2(Le,this,-2)}start(){_classPrivateFieldGet2(De,this)||(_classPrivateFieldSet2(De,this,!0),-2===_classPrivateFieldGet2(Le,this)&&_classPrivateFieldGet2(xe,this).getBlockNumber().then((D=>{_classPrivateFieldSet2(Le,this,D)})),_classPrivateFieldGet2(xe,this).on("block",_classPrivateFieldGet2(Fe,this)))}stop(){_classPrivateFieldGet2(De,this)&&(_classPrivateFieldSet2(De,this,!1),_classPrivateFieldGet2(xe,this).off("block",_classPrivateFieldGet2(Fe,this)))}pause(D){this.stop(),D&&_classPrivateFieldSet2(Le,this,-2)}resume(){this.start()}},KB}function requireAbstractProvider(){if(VB)return LB;VB=1,Object.defineProperty(LB,"__esModule",{value:!0}),LB.AbstractProvider=LB.UnmanagedSubscriber=void 0;const D=requireAddress$2(),te=requireConstants(),he=requireContract(),ye=requireHash(),be=requireTransaction(),ve=requireUtils$4(),we=requireEnsResolver(),_e=function requireFormat(){if($B)return qB;$B=1,Object.defineProperty(qB,"__esModule",{value:!0}),qB.formatTransactionResponse=qB.formatTransactionReceipt=qB.formatReceiptLog=qB.formatBlock=qB.formatLog=qB.formatUint256=qB.formatHash=qB.formatData=qB.formatBoolean=qB.object=qB.arrayOf=qB.allowNull=void 0;const D=requireAddress$2(),te=requireCrypto(),he=requireTransaction(),ye=requireUtils$4(),be=BigInt(0);function allowNull(D,te){return function(he){return null==he?te:D(he)}}function arrayOf(D,te){return he=>{if(te&&null==he)return null;if(!Array.isArray(he))throw new Error("not an array");return he.map((te=>D(te)))}}function object(D,te){return he=>{const be={};for(const ve in D){let we=ve;if(te&&ve in te&&!(we in he))for(const D of te[ve])if(D in he){we=D;break}try{const te=D[ve](he[we]);void 0!==te&&(be[ve]=te)}catch(D){const te=D instanceof Error?D.message:"not-an-error";(0,ye.assert)(!1,`invalid value for value.${ve} (${te})`,"BAD_DATA",{value:he})}}return be}}function formatBoolean(D){switch(D){case!0:case"true":return!0;case!1:case"false":return!1}(0,ye.assertArgument)(!1,`invalid boolean; ${JSON.stringify(D)}`,"value",D)}function formatData(D){return(0,ye.assertArgument)((0,ye.isHexString)(D,!0),"invalid data","value",D),D}function formatHash(D){return(0,ye.assertArgument)((0,ye.isHexString)(D,32),"invalid hash","value",D),D}qB.allowNull=allowNull,qB.arrayOf=arrayOf,qB.object=object,qB.formatBoolean=formatBoolean,qB.formatData=formatData,qB.formatHash=formatHash,qB.formatUint256=function formatUint256(D){if(!(0,ye.isHexString)(D))throw new Error("invalid uint256");return(0,ye.zeroPadValue)(D,32)};const ve=object({address:D.getAddress,blockHash:formatHash,blockNumber:ye.getNumber,data:formatData,index:ye.getNumber,removed:allowNull(formatBoolean,!1),topics:arrayOf(formatHash),transactionHash:formatHash,transactionIndex:ye.getNumber},{index:["logIndex"]});qB.formatLog=function formatLog(D){return ve(D)};const we=object({hash:allowNull(formatHash),parentHash:formatHash,parentBeaconBlockRoot:allowNull(formatHash,null),number:ye.getNumber,timestamp:ye.getNumber,nonce:allowNull(formatData),difficulty:ye.getBigInt,gasLimit:ye.getBigInt,gasUsed:ye.getBigInt,stateRoot:allowNull(formatHash,null),receiptsRoot:allowNull(formatHash,null),blobGasUsed:allowNull(ye.getBigInt,null),excessBlobGas:allowNull(ye.getBigInt,null),miner:allowNull(D.getAddress),extraData:formatData,baseFeePerGas:allowNull(ye.getBigInt)});qB.formatBlock=function formatBlock(D){const te=we(D);return te.transactions=D.transactions.map((D=>"string"==typeof D?D:formatTransactionResponse(D))),te};const _e=object({transactionIndex:ye.getNumber,blockNumber:ye.getNumber,transactionHash:formatHash,address:D.getAddress,topics:arrayOf(formatHash),data:formatData,index:ye.getNumber,blockHash:formatHash},{index:["logIndex"]});function formatReceiptLog(D){return _e(D)}qB.formatReceiptLog=formatReceiptLog;const Pe=object({to:allowNull(D.getAddress,null),from:allowNull(D.getAddress,null),contractAddress:allowNull(D.getAddress,null),index:ye.getNumber,root:allowNull(ye.hexlify),gasUsed:ye.getBigInt,blobGasUsed:allowNull(ye.getBigInt,null),logsBloom:allowNull(formatData),blockHash:formatHash,hash:formatHash,logs:arrayOf(formatReceiptLog),blockNumber:ye.getNumber,cumulativeGasUsed:ye.getBigInt,effectiveGasPrice:allowNull(ye.getBigInt),blobGasPrice:allowNull(ye.getBigInt,null),status:allowNull(ye.getNumber),type:allowNull(ye.getNumber,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function formatTransactionResponse(ve){ve.to&&(0,ye.getBigInt)(ve.to)===be&&(ve.to="0x0000000000000000000000000000000000000000");const we=object({hash:formatHash,index:allowNull(ye.getNumber,void 0),type:D=>"0x"===D||null==D?0:(0,ye.getNumber)(D),accessList:allowNull(he.accessListify,null),blobVersionedHashes:allowNull(arrayOf(formatHash,!0),null),blockHash:allowNull(formatHash,null),blockNumber:allowNull(ye.getNumber,null),transactionIndex:allowNull(ye.getNumber,null),from:D.getAddress,gasPrice:allowNull(ye.getBigInt),maxPriorityFeePerGas:allowNull(ye.getBigInt),maxFeePerGas:allowNull(ye.getBigInt),maxFeePerBlobGas:allowNull(ye.getBigInt,null),gasLimit:ye.getBigInt,to:allowNull(D.getAddress,null),value:ye.getBigInt,nonce:ye.getNumber,data:formatData,creates:allowNull(D.getAddress,null),chainId:allowNull(ye.getBigInt,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(ve);if(null==we.to&&null==we.creates&&(we.creates=(0,D.getCreateAddress)(we)),1!==ve.type&&2!==ve.type||null!=ve.accessList||(we.accessList=[]),ve.signature?we.signature=te.Signature.from(ve.signature):we.signature=te.Signature.from(ve),null==we.chainId){const D=we.signature.legacyChainId;null!=D&&(we.chainId=D)}return we.blockHash&&(0,ye.getBigInt)(we.blockHash)===be&&(we.blockHash=null),we}return qB.formatTransactionReceipt=function formatTransactionReceipt(D){return Pe(D)},qB.formatTransactionResponse=formatTransactionResponse,qB}(),Pe=requireNetwork(),Ie=requireProvider(),Re=requireSubscriberPolling(),ke=BigInt(2);function isPromise(D){return D&&"function"==typeof D.then}function getTag(D,te){return D+":"+JSON.stringify(te,((D,te)=>{if(null==te)return"null";if("bigint"==typeof te)return`bigint:${te.toString()}`;if("string"==typeof te)return te.toLowerCase();if("object"==typeof te&&!Array.isArray(te)){const D=Object.keys(te);return D.sort(),D.reduce(((D,he)=>(D[he]=te[he],D)),{})}return te}))}class UnmanagedSubscriber{constructor(D){_defineProperty(this,"name",void 0),(0,ve.defineProperties)(this,{name:D})}start(){}stop(){}pause(D){}resume(){}}function concisify(D){return(D=Array.from(new Set(D).values())).sort(),D}async function getSubscription(te,he){if(null==te)throw new Error("invalid event");if(Array.isArray(te)&&(te={topics:te}),"string"==typeof te)switch(te){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:te,tag:te}}if((0,ve.isHexString)(te,32)){const D=te.toLowerCase();return{type:"transaction",tag:getTag("tx",{hash:D}),hash:D}}if(te.orphan){const D=te;return{type:"orphan",tag:getTag("orphan",D),filter:(ye=D,JSON.parse(JSON.stringify(ye)))}}var ye;if(te.address||te.topics){const ye=te,be={topics:(ye.topics||[]).map((D=>null==D?null:Array.isArray(D)?concisify(D.map((D=>D.toLowerCase()))):D.toLowerCase()))};if(ye.address){const te=[],we=[],addAddress=ye=>{(0,ve.isHexString)(ye)?te.push(ye):we.push((async()=>{te.push(await(0,D.resolveAddress)(ye,he))})())};Array.isArray(ye.address)?ye.address.forEach(addAddress):addAddress(ye.address),we.length&&await Promise.all(we),be.address=concisify(te.map((D=>D.toLowerCase())))}return{filter:be,tag:getTag("event",be),type:"event"}}(0,ve.assertArgument)(!1,"unknown ProviderEvent","event",te)}function getTime(){return(new Date).getTime()}LB.UnmanagedSubscriber=UnmanagedSubscriber;const Oe={cacheTimeout:250,pollingInterval:4e3};var xe=new WeakMap,Be=new WeakMap,Fe=new WeakMap,De=new WeakMap,Le=new WeakMap,Ue=new WeakMap,qe=new WeakMap,je=new WeakMap,Je=new WeakMap,et=new WeakMap,tt=new WeakMap,rt=new WeakMap,nt=new WeakSet;async function _perform(D){const te=_classPrivateFieldGet2(rt,this).cacheTimeout;if(te<0)return await this._perform(D);const he=getTag(D.method,D);let ye=_classPrivateFieldGet2(qe,this).get(he);return ye||(ye=this._perform(D),_classPrivateFieldGet2(qe,this).set(he,ye),setTimeout((()=>{_classPrivateFieldGet2(qe,this).get(he)===ye&&_classPrivateFieldGet2(qe,this).delete(he)}),te)),await ye}async function _call(te,he,ye){(0,ve.assert)(ye<10,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},te,{blockTag:he,enableCcipRead:!0})});const be=(0,Ie.copyRequest)(te);try{return(0,ve.hexlify)(await this._perform({method:"call",transaction:be,blockTag:he}))}catch(te){if(!this.disableCcipRead&&(0,ve.isCallException)(te)&&te.data&&ye>=0&&"latest"===he&&null!=be.to&&"0x556f1830"===(0,ve.dataSlice)(te.data,0,4)){const we=te.data,_e=await(0,D.resolveAddress)(be.to,this);let Pe;try{Pe=function parseOffchainLookup(D){const te={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};(0,ve.assert)((0,ve.dataLength)(D)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const he=(0,ve.dataSlice)(D,0,32);(0,ve.assert)((0,ve.dataSlice)(he,0,12)===(0,ve.dataSlice)(ut,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),te.sender=(0,ve.dataSlice)(he,12);try{const he=[],ye=(0,ve.getNumber)((0,ve.dataSlice)(D,32,64)),be=(0,ve.getNumber)((0,ve.dataSlice)(D,ye,ye+32)),we=(0,ve.dataSlice)(D,ye+32);for(let D=0;D<be;D++){const te=_parseString(we,32*D);if(null==te)throw new Error("abort");he.push(te)}te.urls=he}catch(D){(0,ve.assert)(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const he=_parseBytes(D,64);if(null==he)throw new Error("abort");te.calldata=he}catch(D){(0,ve.assert)(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}(0,ve.assert)((0,ve.dataSlice)(D,100,128)===(0,ve.dataSlice)(ut,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),te.selector=(0,ve.dataSlice)(D,96,100);try{const he=_parseBytes(D,128);if(null==he)throw new Error("abort");te.extraData=he}catch(D){(0,ve.assert)(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return te.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map((D=>te[D])),te}((0,ve.dataSlice)(te.data,4))}catch(D){(0,ve.assert)(!1,D.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:be,info:{data:we}})}(0,ve.assert)(Pe.sender.toLowerCase()===_e.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:we,reason:"OffchainLookup",transaction:be,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:Pe.errorArgs}});const Ie=await this.ccipReadFetch(be,Pe.calldata,Pe.urls);(0,ve.assert)(null!=Ie,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:be,info:{data:te.data,errorArgs:Pe.errorArgs}});const Re={to:_e,data:(0,ve.concat)([Pe.selector,encodeBytes([Ie,Pe.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:Re});try{const D=await _assertClassBrand(nt,this,_call).call(this,Re,he,ye+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},Re),result:D}),D}catch(D){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},Re),error:D}),D}}throw te}}async function _checkNetwork(D){const{value:te}=await(0,ve.resolveProperties)({network:this.getNetwork(),value:D});return te}async function _getAccountValue(D,te,he){let ye=this._getAddress(te),be=this._getBlockTag(he);return"string"==typeof ye&&"string"==typeof be||([ye,be]=await Promise.all([ye,be])),await _assertClassBrand(nt,this,_checkNetwork).call(this,_assertClassBrand(nt,this,_perform).call(this,Object.assign(D,{address:ye,blockTag:be})))}async function _getBlock(D,te){if((0,ve.isHexString)(D,32))return await _assertClassBrand(nt,this,_perform).call(this,{method:"getBlock",blockHash:D,includeTransactions:te});let he=this._getBlockTag(D);return"string"!=typeof he&&(he=await he),await _assertClassBrand(nt,this,_perform).call(this,{method:"getBlock",blockTag:he,includeTransactions:te})}async function _hasSub(D,te){let he=await getSubscription(D,this);return"event"===he.type&&te&&te.length>0&&!0===te[0].removed&&(he=await getSubscription({orphan:"drop-log",log:te[0]},this)),_classPrivateFieldGet2(xe,this).get(he.tag)||null}async function _getSub(D){const te=await getSubscription(D,this),he=te.tag;let ye=_classPrivateFieldGet2(xe,this).get(he);if(!ye){ye={subscriber:this._getSubscriber(te),tag:he,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},_classPrivateFieldGet2(xe,this).set(he,ye)}return ye}function _parseString(D,te){try{const he=_parseBytes(D,te);if(he)return(0,ve.toUtf8String)(he)}catch(D){}return null}function _parseBytes(D,te){if("0x"===D)return null;try{const he=(0,ve.getNumber)((0,ve.dataSlice)(D,te,te+32)),ye=(0,ve.getNumber)((0,ve.dataSlice)(D,he,he+32));return(0,ve.dataSlice)(D,he+32,he+32+ye)}catch(D){}return null}function numPad(D){const te=(0,ve.toBeArray)(D);if(te.length>32)throw new Error("internal; should not happen");const he=new Uint8Array(32);return he.set(te,32-te.length),he}function bytesPad(D){if(D.length%32==0)return D;const te=new Uint8Array(32*Math.ceil(D.length/32));return te.set(D),te}LB.AbstractProvider=class AbstractProvider{constructor(D,te){if(_classPrivateMethodInitSpec(this,nt),_classPrivateFieldInitSpec(this,xe,void 0),_classPrivateFieldInitSpec(this,Be,void 0),_classPrivateFieldInitSpec(this,Fe,void 0),_classPrivateFieldInitSpec(this,De,void 0),_classPrivateFieldInitSpec(this,Le,void 0),_classPrivateFieldInitSpec(this,Ue,void 0),_classPrivateFieldInitSpec(this,qe,void 0),_classPrivateFieldInitSpec(this,je,void 0),_classPrivateFieldInitSpec(this,Je,void 0),_classPrivateFieldInitSpec(this,et,void 0),_classPrivateFieldInitSpec(this,tt,void 0),_classPrivateFieldInitSpec(this,rt,void 0),_classPrivateFieldSet2(rt,this,Object.assign({},Oe,te||{})),"any"===D)_classPrivateFieldSet2(Ue,this,!0),_classPrivateFieldSet2(Le,this,null);else if(D){const te=Pe.Network.from(D);_classPrivateFieldSet2(Ue,this,!1),_classPrivateFieldSet2(Le,this,Promise.resolve(te)),setTimeout((()=>{this.emit("network",te,null)}),0)}else _classPrivateFieldSet2(Ue,this,!1),_classPrivateFieldSet2(Le,this,null);_classPrivateFieldSet2(je,this,-1),_classPrivateFieldSet2(qe,this,new Map),_classPrivateFieldSet2(xe,this,new Map),_classPrivateFieldSet2(Be,this,new Map),_classPrivateFieldSet2(Fe,this,null),_classPrivateFieldSet2(De,this,!1),_classPrivateFieldSet2(Je,this,1),_classPrivateFieldSet2(et,this,new Map),_classPrivateFieldSet2(tt,this,!1)}get pollingInterval(){return _classPrivateFieldGet2(rt,this).pollingInterval}get provider(){return this}get plugins(){return Array.from(_classPrivateFieldGet2(Be,this).values())}attachPlugin(D){if(_classPrivateFieldGet2(Be,this).get(D.name))throw new Error(`cannot replace existing plugin: ${D.name} `);return _classPrivateFieldGet2(Be,this).set(D.name,D.connect(this)),this}getPlugin(D){return _classPrivateFieldGet2(Be,this).get(D)||null}get disableCcipRead(){return _classPrivateFieldGet2(tt,this)}set disableCcipRead(D){_classPrivateFieldSet2(tt,this,!!D)}async ccipReadFetch(D,te,he){if(this.disableCcipRead||0===he.length||null==D.to)return null;const ye=D.to.toLowerCase(),be=te.toLowerCase(),we=[];for(let te=0;te<he.length;te++){const _e=he[te],Pe=_e.replace("{sender}",ye).replace("{data}",be),Ie=new ve.FetchRequest(Pe);-1===_e.indexOf("{data}")&&(Ie.body={data:be,sender:ye}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:Ie,index:te,urls:he});let Re="unknown error";const ke=await Ie.send();try{const D=ke.bodyJson;if(D.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:Ie,result:D}),D.data;D.message&&(Re=D.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:Ie,result:D})}catch(D){}(0,ve.assert)(ke.statusCode<400||ke.statusCode>=500,`response not found during CCIP fetch: ${Re}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:D,info:{url:_e,errorMessage:Re}}),we.push(Re)}(0,ve.assert)(!1,`error encountered during CCIP fetch: ${we.map((D=>JSON.stringify(D))).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:D,info:{urls:he,errorMessages:we}})}_wrapBlock(D,te){return new Ie.Block((0,_e.formatBlock)(D),this)}_wrapLog(D,te){return new Ie.Log((0,_e.formatLog)(D),this)}_wrapTransactionReceipt(D,te){return new Ie.TransactionReceipt((0,_e.formatTransactionReceipt)(D),this)}_wrapTransactionResponse(D,te){return new Ie.TransactionResponse((0,_e.formatTransactionResponse)(D),this)}_detectNetwork(){(0,ve.assert)(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(D){(0,ve.assert)(!1,`unsupported method: ${D.method}`,"UNSUPPORTED_OPERATION",{operation:D.method,info:D})}async getBlockNumber(){const D=(0,ve.getNumber)(await _assertClassBrand(nt,this,_perform).call(this,{method:"getBlockNumber"}),"%response");return _classPrivateFieldGet2(je,this)>=0&&_classPrivateFieldSet2(je,this,D),D}_getAddress(te){return(0,D.resolveAddress)(te,this)}_getBlockTag(D){if(null==D)return"latest";switch(D){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return D}return(0,ve.isHexString)(D)?(0,ve.isHexString)(D,32)?D:(0,ve.toQuantity)(D):("bigint"==typeof D&&(D=(0,ve.getNumber)(D,"blockTag")),"number"==typeof D?D>=0?(0,ve.toQuantity)(D):_classPrivateFieldGet2(je,this)>=0?(0,ve.toQuantity)(_classPrivateFieldGet2(je,this)+D):this.getBlockNumber().then((te=>(0,ve.toQuantity)(te+D))):void(0,ve.assertArgument)(!1,"invalid blockTag","blockTag",D))}_getFilter(D){const te=(D.topics||[]).map((D=>null==D?null:Array.isArray(D)?concisify(D.map((D=>D.toLowerCase()))):D.toLowerCase())),he="blockHash"in D?D.blockHash:void 0,resolve=(D,ye,be)=>{let ve;switch(D.length){case 0:break;case 1:ve=D[0];break;default:D.sort(),ve=D}if(he&&(null!=ye||null!=be))throw new Error("invalid filter");const we={};return ve&&(we.address=ve),te.length&&(we.topics=te),ye&&(we.fromBlock=ye),be&&(we.toBlock=be),he&&(we.blockHash=he),we};let ye,be,ve=[];if(D.address)if(Array.isArray(D.address))for(const te of D.address)ve.push(this._getAddress(te));else ve.push(this._getAddress(D.address));return"fromBlock"in D&&(ye=this._getBlockTag(D.fromBlock)),"toBlock"in D&&(be=this._getBlockTag(D.toBlock)),ve.filter((D=>"string"!=typeof D)).length||null!=ye&&"string"!=typeof ye||null!=be&&"string"!=typeof be?Promise.all([Promise.all(ve),ye,be]).then((D=>resolve(D[0],D[1],D[2]))):resolve(ve,ye,be)}_getTransactionRequest(te){const he=(0,Ie.copyRequest)(te),ye=[];if(["to","from"].forEach((te=>{if(null==he[te])return;const be=(0,D.resolveAddress)(he[te],this);isPromise(be)?ye.push(async function(){he[te]=await be}()):he[te]=be})),null!=he.blockTag){const D=this._getBlockTag(he.blockTag);isPromise(D)?ye.push(async function(){he.blockTag=await D}()):he.blockTag=D}return ye.length?async function(){return await Promise.all(ye),he}():he}async getNetwork(){if(null==_classPrivateFieldGet2(Le,this)){const D=(async()=>{try{const D=await this._detectNetwork();return this.emit("network",D,null),D}catch(te){throw _classPrivateFieldGet2(Le,this)===D&&_classPrivateFieldSet2(Le,this,null),te}})();return _classPrivateFieldSet2(Le,this,D),(await D).clone()}const D=_classPrivateFieldGet2(Le,this),[te,he]=await Promise.all([D,this._detectNetwork()]);return te.chainId!==he.chainId&&(_classPrivateFieldGet2(Ue,this)?(this.emit("network",he,te),_classPrivateFieldGet2(Le,this)===D&&_classPrivateFieldSet2(Le,this,Promise.resolve(he))):(0,ve.assert)(!1,`network changed: ${te.chainId} => ${he.chainId} `,"NETWORK_ERROR",{event:"changed"})),te.clone()}async getFeeData(){const D=await this.getNetwork(),getFeeDataFunc=async()=>{const{_block:te,gasPrice:he,priorityFee:ye}=await(0,ve.resolveProperties)({_block:_assertClassBrand(nt,this,_getBlock).call(this,"latest",!1),gasPrice:(async()=>{try{const D=await _assertClassBrand(nt,this,_perform).call(this,{method:"getGasPrice"});return(0,ve.getBigInt)(D,"%response")}catch(D){}return null})(),priorityFee:(async()=>{try{const D=await _assertClassBrand(nt,this,_perform).call(this,{method:"getPriorityFee"});return(0,ve.getBigInt)(D,"%response")}catch(D){}return null})()});let be=null,we=null;const _e=this._wrapBlock(te,D);return _e&&_e.baseFeePerGas&&(we=null!=ye?ye:BigInt("1000000000"),be=_e.baseFeePerGas*ke+we),new Ie.FeeData(he,be,we)},te=D.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(te){const D=new ve.FetchRequest(te.url),he=await te.processFunc(getFeeDataFunc,this,D);return new Ie.FeeData(he.gasPrice,he.maxFeePerGas,he.maxPriorityFeePerGas)}return await getFeeDataFunc()}async estimateGas(D){let te=this._getTransactionRequest(D);return isPromise(te)&&(te=await te),(0,ve.getBigInt)(await _assertClassBrand(nt,this,_perform).call(this,{method:"estimateGas",transaction:te}),"%response")}async call(D){const{tx:te,blockTag:he}=await(0,ve.resolveProperties)({tx:this._getTransactionRequest(D),blockTag:this._getBlockTag(D.blockTag)});return await _assertClassBrand(nt,this,_checkNetwork).call(this,_assertClassBrand(nt,this,_call).call(this,te,he,D.enableCcipRead?0:-1))}async getBalance(D,te){return(0,ve.getBigInt)(await _assertClassBrand(nt,this,_getAccountValue).call(this,{method:"getBalance"},D,te),"%response")}async getTransactionCount(D,te){return(0,ve.getNumber)(await _assertClassBrand(nt,this,_getAccountValue).call(this,{method:"getTransactionCount"},D,te),"%response")}async getCode(D,te){return(0,ve.hexlify)(await _assertClassBrand(nt,this,_getAccountValue).call(this,{method:"getCode"},D,te))}async getStorage(D,te,he){const ye=(0,ve.getBigInt)(te,"position");return(0,ve.hexlify)(await _assertClassBrand(nt,this,_getAccountValue).call(this,{method:"getStorage",position:ye},D,he))}async broadcastTransaction(D){const{blockNumber:te,hash:he,network:ye}=await(0,ve.resolveProperties)({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:D}),network:this.getNetwork()}),we=be.Transaction.from(D);if(we.hash!==he)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(we,ye).replaceableTransaction(te)}async getBlock(D,te){const{network:he,params:ye}=await(0,ve.resolveProperties)({network:this.getNetwork(),params:_assertClassBrand(nt,this,_getBlock).call(this,D,!!te)});return null==ye?null:this._wrapBlock(ye,he)}async getTransaction(D){const{network:te,params:he}=await(0,ve.resolveProperties)({network:this.getNetwork(),params:_assertClassBrand(nt,this,_perform).call(this,{method:"getTransaction",hash:D})});return null==he?null:this._wrapTransactionResponse(he,te)}async getTransactionReceipt(D){const{network:te,params:he}=await(0,ve.resolveProperties)({network:this.getNetwork(),params:_assertClassBrand(nt,this,_perform).call(this,{method:"getTransactionReceipt",hash:D})});if(null==he)return null;if(null==he.gasPrice&&null==he.effectiveGasPrice){const te=await _assertClassBrand(nt,this,_perform).call(this,{method:"getTransaction",hash:D});if(null==te)throw new Error("report this; could not find tx or effectiveGasPrice");he.effectiveGasPrice=te.gasPrice}return this._wrapTransactionReceipt(he,te)}async getTransactionResult(D){const{result:te}=await(0,ve.resolveProperties)({network:this.getNetwork(),result:_assertClassBrand(nt,this,_perform).call(this,{method:"getTransactionResult",hash:D})});return null==te?null:(0,ve.hexlify)(te)}async getLogs(D){let te=this._getFilter(D);isPromise(te)&&(te=await te);const{network:he,params:ye}=await(0,ve.resolveProperties)({network:this.getNetwork(),params:_assertClassBrand(nt,this,_perform).call(this,{method:"getLogs",filter:te})});return ye.map((D=>this._wrapLog(D,he)))}_getProvider(D){(0,ve.assert)(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(D){return await we.EnsResolver.fromName(this,D)}async getAvatar(D){const te=await this.getResolver(D);return te?await te.getAvatar():null}async resolveName(D){const te=await this.getResolver(D);return te?await te.getAddress():null}async lookupAddress(be){be=(0,D.getAddress)(be);const _e=(0,ye.namehash)(be.substring(2).toLowerCase()+".addr.reverse");try{const D=await we.EnsResolver.getEnsAddress(this),ye=new he.Contract(D,["function resolver(bytes32) view returns (address)"],this),ve=await ye.resolver(_e);if(null==ve||ve===te.ZeroAddress)return null;const Pe=new he.Contract(ve,["function name(bytes32) view returns (string)"],this),Ie=await Pe.name(_e);return await this.resolveName(Ie)!==be?null:Ie}catch(D){if((0,ve.isError)(D,"BAD_DATA")&&"0x"===D.value)return null;if((0,ve.isError)(D,"CALL_EXCEPTION"))return null;throw D}return null}async waitForTransaction(D,te,he){const ye=null!=te?te:1;return 0===ye?this.getTransactionReceipt(D):new Promise((async(te,be)=>{let we=null;const listener=async he=>{try{const be=await this.getTransactionReceipt(D);if(null!=be&&he-be.blockNumber+1>=ye)return te(be),void(we&&(clearTimeout(we),we=null))}catch(D){console.log("EEE",D)}this.once("block",listener)};null!=he&&(we=setTimeout((()=>{null!=we&&(we=null,this.off("block",listener),be((0,ve.makeError)("timeout","TIMEOUT",{reason:"timeout"})))}),he)),listener(await this.getBlockNumber())}))}async waitForBlock(D){(0,ve.assert)(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(D){const te=_classPrivateFieldGet2(et,this).get(D);te&&(te.timer&&clearTimeout(te.timer),_classPrivateFieldGet2(et,this).delete(D))}_setTimeout(D,te){var he,ye;null==te&&(te=0);const be=(_classPrivateFieldSet2(Je,this,(he=_classPrivateFieldGet2(Je,this),ye=he++,he)),ye),func=()=>{_classPrivateFieldGet2(et,this).delete(be),D()};if(this.paused)_classPrivateFieldGet2(et,this).set(be,{timer:null,func:func,time:te});else{const D=setTimeout(func,te);_classPrivateFieldGet2(et,this).set(be,{timer:D,func:func,time:getTime()})}return be}_forEachSubscriber(D){for(const te of _classPrivateFieldGet2(xe,this).values())D(te.subscriber)}_getSubscriber(D){switch(D.type){case"debug":case"error":case"network":return new UnmanagedSubscriber(D.type);case"block":{const D=new Re.PollingBlockSubscriber(this);return D.pollingInterval=this.pollingInterval,D}case"safe":case"finalized":return new Re.PollingBlockTagSubscriber(this,D.type);case"event":return new Re.PollingEventSubscriber(this,D.filter);case"transaction":return new Re.PollingTransactionSubscriber(this,D.hash);case"orphan":return new Re.PollingOrphanSubscriber(this,D.filter)}throw new Error(`unsupported event: ${D.type}`)}_recoverSubscriber(D,te){for(const he of _classPrivateFieldGet2(xe,this).values())if(he.subscriber===D){he.started&&he.subscriber.stop(),he.subscriber=te,he.started&&te.start(),null!=_classPrivateFieldGet2(Fe,this)&&te.pause(_classPrivateFieldGet2(Fe,this));break}}async on(D,te){const he=await _assertClassBrand(nt,this,_getSub).call(this,D);return he.listeners.push({listener:te,once:!1}),he.started||(he.subscriber.start(),he.started=!0,null!=_classPrivateFieldGet2(Fe,this)&&he.subscriber.pause(_classPrivateFieldGet2(Fe,this))),this}async once(D,te){const he=await _assertClassBrand(nt,this,_getSub).call(this,D);return he.listeners.push({listener:te,once:!0}),he.started||(he.subscriber.start(),he.started=!0,null!=_classPrivateFieldGet2(Fe,this)&&he.subscriber.pause(_classPrivateFieldGet2(Fe,this))),this}async emit(D,...te){const he=await _assertClassBrand(nt,this,_hasSub).call(this,D,te);if(!he||0===he.listeners.length)return!1;const ye=he.listeners.length;return he.listeners=he.listeners.filter((({listener:he,once:ye})=>{const be=new ve.EventPayload(this,ye?null:he,D);try{he.call(this,...te,be)}catch(D){}return!ye})),0===he.listeners.length&&(he.started&&he.subscriber.stop(),_classPrivateFieldGet2(xe,this).delete(he.tag)),ye>0}async listenerCount(D){if(D){const te=await _assertClassBrand(nt,this,_hasSub).call(this,D);return te?te.listeners.length:0}let te=0;for(const{listeners:D}of _classPrivateFieldGet2(xe,this).values())te+=D.length;return te}async listeners(D){if(D){const te=await _assertClassBrand(nt,this,_hasSub).call(this,D);return te?te.listeners.map((({listener:D})=>D)):[]}let te=[];for(const{listeners:D}of _classPrivateFieldGet2(xe,this).values())te=te.concat(D.map((({listener:D})=>D)));return te}async off(D,te){const he=await _assertClassBrand(nt,this,_hasSub).call(this,D);if(!he)return this;if(te){const D=he.listeners.map((({listener:D})=>D)).indexOf(te);D>=0&&he.listeners.splice(D,1)}return te&&0!==he.listeners.length||(he.started&&he.subscriber.stop(),_classPrivateFieldGet2(xe,this).delete(he.tag)),this}async removeAllListeners(D){if(D){const{tag:te,started:he,subscriber:ye}=await _assertClassBrand(nt,this,_getSub).call(this,D);he&&ye.stop(),_classPrivateFieldGet2(xe,this).delete(te)}else for(const[D,{started:te,subscriber:he}]of _classPrivateFieldGet2(xe,this))te&&he.stop(),_classPrivateFieldGet2(xe,this).delete(D);return this}async addListener(D,te){return await this.on(D,te)}async removeListener(D,te){return this.off(D,te)}get destroyed(){return _classPrivateFieldGet2(De,this)}destroy(){this.removeAllListeners();for(const D of _classPrivateFieldGet2(et,this).keys())this._clearTimeout(D);_classPrivateFieldSet2(De,this,!0)}get paused(){return null!=_classPrivateFieldGet2(Fe,this)}set paused(D){!!D!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(D){if(_classPrivateFieldSet2(je,this,-1),null!=_classPrivateFieldGet2(Fe,this)){if(_classPrivateFieldGet2(Fe,this)==!!D)return;(0,ve.assert)(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber((te=>te.pause(D))),_classPrivateFieldSet2(Fe,this,!!D);for(const D of _classPrivateFieldGet2(et,this).values())D.timer&&clearTimeout(D.timer),D.time=getTime()-D.time}resume(){if(null!=_classPrivateFieldGet2(Fe,this)){this._forEachSubscriber((D=>D.resume())),_classPrivateFieldSet2(Fe,this,null);for(const D of _classPrivateFieldGet2(et,this).values()){let te=D.time;te<0&&(te=0),D.time=getTime(),setTimeout(D.func,te)}}}};const at=new Uint8Array([]);function encodeBytes(D){const te=[];let he=0;for(let ye=0;ye<D.length;ye++)te.push(at),he+=32;for(let ye=0;ye<D.length;ye++){const be=(0,ve.getBytes)(D[ye]);te[ye]=numPad(he),te.push(numPad(be.length)),te.push(bytesPad(be)),he+=32+32*Math.ceil(be.length/32)}return(0,ve.concat)(te)}const ut="0x0000000000000000000000000000000000000000000000000000000000000000";return LB}var JB,XB={};function requireAbstractSigner(){if(JB)return XB;JB=1,Object.defineProperty(XB,"__esModule",{value:!0}),XB.VoidSigner=XB.AbstractSigner=void 0;const D=requireAddress$2(),te=requireTransaction(),he=requireUtils$4(),ye=requireProvider();function checkProvider(D,te){if(D.provider)return D.provider;(0,he.assert)(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:te})}async function populate(te,be){let ve=(0,ye.copyRequest)(be);if(null!=ve.to&&(ve.to=(0,D.resolveAddress)(ve.to,te)),null!=ve.from){const ye=ve.from;ve.from=Promise.all([te.getAddress(),(0,D.resolveAddress)(ye,te)]).then((([D,te])=>((0,he.assertArgument)(D.toLowerCase()===te.toLowerCase(),"transaction from mismatch","tx.from",te),D)))}else ve.from=te.getAddress();return await(0,he.resolveProperties)(ve)}class AbstractSigner{constructor(D){_defineProperty(this,"provider",void 0),(0,he.defineProperties)(this,{provider:D||null})}async getNonce(D){return checkProvider(this,"getTransactionCount").getTransactionCount(await this.getAddress(),D)}async populateCall(D){return await populate(this,D)}async populateTransaction(D){const te=checkProvider(this,"populateTransaction"),ye=await populate(this,D);null==ye.nonce&&(ye.nonce=await this.getNonce("pending")),null==ye.gasLimit&&(ye.gasLimit=await this.estimateGas(ye));const be=await this.provider.getNetwork();if(null!=ye.chainId){const te=(0,he.getBigInt)(ye.chainId);(0,he.assertArgument)(te===be.chainId,"transaction chainId mismatch","tx.chainId",D.chainId)}else ye.chainId=be.chainId;const ve=null!=ye.maxFeePerGas||null!=ye.maxPriorityFeePerGas;if(null==ye.gasPrice||2!==ye.type&&!ve?0!==ye.type&&1!==ye.type||!ve||(0,he.assertArgument)(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",D):(0,he.assertArgument)(!1,"eip-1559 transaction do not support gasPrice","tx",D),2!==ye.type&&null!=ye.type||null==ye.maxFeePerGas||null==ye.maxPriorityFeePerGas)if(0===ye.type||1===ye.type){const D=await te.getFeeData();(0,he.assert)(null!=D.gasPrice,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),null==ye.gasPrice&&(ye.gasPrice=D.gasPrice)}else{const D=await te.getFeeData();if(null==ye.type)if(null!=D.maxFeePerGas&&null!=D.maxPriorityFeePerGas)if(ye.type=2,null!=ye.gasPrice){const D=ye.gasPrice;delete ye.gasPrice,ye.maxFeePerGas=D,ye.maxPriorityFeePerGas=D}else null==ye.maxFeePerGas&&(ye.maxFeePerGas=D.maxFeePerGas),null==ye.maxPriorityFeePerGas&&(ye.maxPriorityFeePerGas=D.maxPriorityFeePerGas);else null!=D.gasPrice?((0,he.assert)(!ve,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),null==ye.gasPrice&&(ye.gasPrice=D.gasPrice),ye.type=0):(0,he.assert)(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else 2===ye.type&&(null==ye.maxFeePerGas&&(ye.maxFeePerGas=D.maxFeePerGas),null==ye.maxPriorityFeePerGas&&(ye.maxPriorityFeePerGas=D.maxPriorityFeePerGas))}else ye.type=2;return await(0,he.resolveProperties)(ye)}async estimateGas(D){return checkProvider(this,"estimateGas").estimateGas(await this.populateCall(D))}async call(D){return checkProvider(this,"call").call(await this.populateCall(D))}async resolveName(D){const te=checkProvider(this,"resolveName");return await te.resolveName(D)}async sendTransaction(D){const he=checkProvider(this,"sendTransaction"),ye=await this.populateTransaction(D);delete ye.from;const be=te.Transaction.from(ye);return await he.broadcastTransaction(await this.signTransaction(be))}}XB.AbstractSigner=AbstractSigner;var be=new WeakSet;class VoidSigner extends AbstractSigner{constructor(D,te){super(te),_classPrivateMethodInitSpec(this,be),_defineProperty(this,"address",void 0),(0,he.defineProperties)(this,{address:D})}async getAddress(){return this.address}connect(D){return new VoidSigner(this.address,D)}async signTransaction(D){_assertClassBrand(be,this,_throwUnsupported).call(this,"transactions","signTransaction")}async signMessage(D){_assertClassBrand(be,this,_throwUnsupported).call(this,"messages","signMessage")}async signTypedData(D,te,he){_assertClassBrand(be,this,_throwUnsupported).call(this,"typed-data","signTypedData")}}function _throwUnsupported(D,te){(0,he.assert)(!1,`VoidSigner cannot sign ${D}`,"UNSUPPORTED_OPERATION",{operation:te})}return XB.VoidSigner=VoidSigner,XB}var QB,ZB={};function requireCommunity(){if(QB)return ZB;QB=1,Object.defineProperty(ZB,"__esModule",{value:!0}),ZB.showThrottleMessage=void 0;const D=new Set;return ZB.showThrottleMessage=function showThrottleMessage(te){D.has(te)||(D.add(te),console.log("========= NOTICE ========="),console.log(`Request-Rate Exceeded for ${te} (this message will not be repeated)`),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.org/api-keys/"),console.log("=========================="))},ZB}var YB,eF,tF,rF={},nF={},aF={},iF={};function requireSubscriberFilterid(){if(YB)return iF;YB=1,Object.defineProperty(iF,"__esModule",{value:!0}),iF.FilterIdPendingSubscriber=iF.FilterIdEventSubscriber=iF.FilterIdSubscriber=void 0;const D=requireUtils$4(),te=requireSubscriberPolling();var he=new WeakMap,ye=new WeakMap,be=new WeakMap,ve=new WeakMap,we=new WeakMap,_e=new WeakMap,Pe=new WeakSet;class FilterIdSubscriber{constructor(D){_classPrivateMethodInitSpec(this,Pe),_classPrivateFieldInitSpec(this,he,void 0),_classPrivateFieldInitSpec(this,ye,void 0),_classPrivateFieldInitSpec(this,be,void 0),_classPrivateFieldInitSpec(this,ve,void 0),_classPrivateFieldInitSpec(this,we,void 0),_classPrivateFieldInitSpec(this,_e,void 0),_classPrivateFieldSet2(he,this,D),_classPrivateFieldSet2(ye,this,null),_classPrivateFieldSet2(be,this,_assertClassBrand(Pe,this,_poll).bind(this)),_classPrivateFieldSet2(ve,this,!1),_classPrivateFieldSet2(we,this,null),_classPrivateFieldSet2(_e,this,!1)}_subscribe(D){throw new Error("subclasses must override this")}_emitResults(D,te){throw new Error("subclasses must override this")}_recover(D){throw new Error("subclasses must override this")}start(){_classPrivateFieldGet2(ve,this)||(_classPrivateFieldSet2(ve,this,!0),_assertClassBrand(Pe,this,_poll).call(this,-2))}stop(){_classPrivateFieldGet2(ve,this)&&(_classPrivateFieldSet2(ve,this,!1),_classPrivateFieldSet2(_e,this,!0),_assertClassBrand(Pe,this,_teardown).call(this),_classPrivateFieldGet2(he,this).off("block",_classPrivateFieldGet2(be,this)))}pause(D){D&&_assertClassBrand(Pe,this,_teardown).call(this),_classPrivateFieldGet2(he,this).off("block",_classPrivateFieldGet2(be,this))}resume(){this.start()}}async function _poll(te){try{null==_classPrivateFieldGet2(ye,this)&&_classPrivateFieldSet2(ye,this,this._subscribe(_classPrivateFieldGet2(he,this)));let te=null;try{te=await _classPrivateFieldGet2(ye,this)}catch(te){if(!(0,D.isError)(te,"UNSUPPORTED_OPERATION")||"eth_newFilter"!==te.operation)throw te}if(null==te)return _classPrivateFieldSet2(ye,this,null),void _classPrivateFieldGet2(he,this)._recoverSubscriber(this,this._recover(_classPrivateFieldGet2(he,this)));const be=await _classPrivateFieldGet2(he,this).getNetwork();if(_classPrivateFieldGet2(we,this)||_classPrivateFieldSet2(we,this,be),_classPrivateFieldGet2(we,this).chainId!==be.chainId)throw new Error("chaid changed");if(_classPrivateFieldGet2(_e,this))return;const ve=await _classPrivateFieldGet2(he,this).send("eth_getFilterChanges",[te]);await this._emitResults(_classPrivateFieldGet2(he,this),ve)}catch(D){console.log("@TODO",D)}_classPrivateFieldGet2(he,this).once("block",_classPrivateFieldGet2(be,this))}function _teardown(){const D=_classPrivateFieldGet2(ye,this);D&&(_classPrivateFieldSet2(ye,this,null),D.then((D=>{_classPrivateFieldGet2(he,this).send("eth_uninstallFilter",[D])})))}iF.FilterIdSubscriber=FilterIdSubscriber;var Ie=new WeakMap;iF.FilterIdEventSubscriber=class FilterIdEventSubscriber extends FilterIdSubscriber{constructor(D,te){super(D),_classPrivateFieldInitSpec(this,Ie,void 0),_classPrivateFieldSet2(Ie,this,function copy(D){return JSON.parse(JSON.stringify(D))}(te))}_recover(D){return new te.PollingEventSubscriber(D,_classPrivateFieldGet2(Ie,this))}async _subscribe(D){return await D.send("eth_newFilter",[_classPrivateFieldGet2(Ie,this)])}async _emitResults(D,te){for(const he of te)D.emit(_classPrivateFieldGet2(Ie,this),D._wrapLog(he,D._network))}};return iF.FilterIdPendingSubscriber=class FilterIdPendingSubscriber extends FilterIdSubscriber{async _subscribe(D){return await D.send("eth_newPendingTransactionFilter",[])}async _emitResults(D,te){for(const he of te)D.emit("pending",he)}},iF}function requireProviderJsonrpc(){if(eF)return aF;eF=1,Object.defineProperty(aF,"__esModule",{value:!0}),aF.JsonRpcProvider=aF.JsonRpcApiPollingProvider=aF.JsonRpcApiProvider=aF.JsonRpcSigner=void 0;const D=requireAbi(),te=requireAddress$2(),he=requireHash(),ye=requireTransaction(),be=requireUtils$4(),ve=requireAbstractProvider(),we=requireAbstractSigner(),_e=requireNetwork(),Pe=requireSubscriberFilterid(),Ie=requireSubscriberPolling(),Re="bigint,boolean,function,number,string,symbol".split(/,/g);function deepCopy(D){if(null==D||Re.indexOf(typeof D)>=0)return D;if("function"==typeof D.getAddress)return D;if(Array.isArray(D))return D.map(deepCopy);if("object"==typeof D)return Object.keys(D).reduce(((te,he)=>(te[he]=D[he],te)),{});throw new Error(`should not happen: ${D} (${typeof D})`)}function stall(D){return new Promise((te=>{setTimeout(te,D)}))}function getLowerCase(D){return D?D.toLowerCase():D}function isPollable(D){return D&&"number"==typeof D.pollingInterval}const ke={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class JsonRpcSigner extends we.AbstractSigner{constructor(D,he){super(D),_defineProperty(this,"address",void 0),he=(0,te.getAddress)(he),(0,be.defineProperties)(this,{address:he})}connect(D){(0,be.assert)(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(D){return await this.populateCall(D)}async sendUncheckedTransaction(D){const he=deepCopy(D),ye=[];if(he.from){const ve=he.from;ye.push((async()=>{const ye=await(0,te.resolveAddress)(ve,this.provider);(0,be.assertArgument)(null!=ye&&ye.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",D),he.from=ye})())}else he.from=this.address;if(null==he.gasLimit&&ye.push((async()=>{he.gasLimit=await this.provider.estimateGas({...he,from:this.address})})()),null!=he.to){const D=he.to;ye.push((async()=>{he.to=await(0,te.resolveAddress)(D,this.provider)})())}ye.length&&await Promise.all(ye);const ve=this.provider.getRpcTransaction(he);return this.provider.send("eth_sendTransaction",[ve])}async sendTransaction(D){const te=await this.provider.getBlockNumber(),he=await this.sendUncheckedTransaction(D);return await new Promise(((D,ye)=>{const ve=[1e3,100];let we=0;const checkTx=async()=>{try{const ye=await this.provider.getTransaction(he);if(null!=ye)return void D(ye.replaceableTransaction(te))}catch(D){if((0,be.isError)(D,"CANCELLED")||(0,be.isError)(D,"BAD_DATA")||(0,be.isError)(D,"NETWORK_ERROR"))return null==D.info&&(D.info={}),D.info.sendTransactionHash=he,void ye(D);if((0,be.isError)(D,"INVALID_ARGUMENT")&&(we++,null==D.info&&(D.info={}),D.info.sendTransactionHash=he,we>10))return void ye(D);this.provider.emit("error",(0,be.makeError)("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:D}))}this.provider._setTimeout((()=>{checkTx()}),ve.pop()||4e3)};checkTx()}))}async signTransaction(D){const he=deepCopy(D);if(he.from){const ye=await(0,te.resolveAddress)(he.from,this.provider);(0,be.assertArgument)(null!=ye&&ye.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",D),he.from=ye}else he.from=this.address;const ye=this.provider.getRpcTransaction(he);return await this.provider.send("eth_signTransaction",[ye])}async signMessage(D){const te="string"==typeof D?(0,be.toUtf8Bytes)(D):D;return await this.provider.send("personal_sign",[(0,be.hexlify)(te),this.address.toLowerCase()])}async signTypedData(D,ye,ve){const we=deepCopy(ve),_e=await he.TypedDataEncoder.resolveNames(D,ye,we,(async D=>{const he=await(0,te.resolveAddress)(D);return(0,be.assertArgument)(null!=he,"TypedData does not support null address","value",D),he}));return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(he.TypedDataEncoder.getPayload(_e.domain,ye,_e.value))])}async unlock(D){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),D,null])}async _legacySignMessage(D){const te="string"==typeof D?(0,be.toUtf8Bytes)(D):D;return await this.provider.send("eth_sign",[this.address.toLowerCase(),(0,be.hexlify)(te)])}}aF.JsonRpcSigner=JsonRpcSigner;var Oe=new WeakMap,xe=new WeakMap,Be=new WeakMap,Fe=new WeakMap,De=new WeakMap,Le=new WeakMap,Ue=new WeakMap,qe=new WeakSet;class JsonRpcApiProvider extends ve.AbstractProvider{constructor(D,te){super(D,te),_classPrivateMethodInitSpec(this,qe),_classPrivateFieldInitSpec(this,Oe,void 0),_classPrivateFieldInitSpec(this,xe,void 0),_classPrivateFieldInitSpec(this,Be,void 0),_classPrivateFieldInitSpec(this,Fe,void 0),_classPrivateFieldInitSpec(this,De,void 0),_classPrivateFieldInitSpec(this,Le,void 0),_classPrivateFieldInitSpec(this,Ue,void 0),_classPrivateFieldSet2(xe,this,1),_classPrivateFieldSet2(Oe,this,Object.assign({},ke,te||{})),_classPrivateFieldSet2(Be,this,[]),_classPrivateFieldSet2(Fe,this,null),_classPrivateFieldSet2(Le,this,null),_classPrivateFieldSet2(Ue,this,null);{let D=null;const te=new Promise((te=>{D=te}));_classPrivateFieldSet2(De,this,{promise:te,resolve:D})}const he=this._getOption("staticNetwork");"boolean"==typeof he?((0,be.assertArgument)(!he||"any"!==D,"staticNetwork cannot be used on special network 'any'","options",te),he&&null!=D&&_classPrivateFieldSet2(Le,this,_e.Network.from(D))):he&&((0,be.assertArgument)(null==D||he.matches(D),"staticNetwork MUST match network object","options",te),_classPrivateFieldSet2(Le,this,he))}_getOption(D){return _classPrivateFieldGet2(Oe,this)[D]}get _network(){return(0,be.assert)(_classPrivateFieldGet2(Le,this),"network is not available yet","NETWORK_ERROR"),_classPrivateFieldGet2(Le,this)}async _perform(D){if("call"===D.method||"estimateGas"===D.method){let te=D.transaction;if(te&&null!=te.type&&(0,be.getBigInt)(te.type)&&null==te.maxFeePerGas&&null==te.maxPriorityFeePerGas){const he=await this.getFeeData();null==he.maxFeePerGas&&null==he.maxPriorityFeePerGas&&(D=Object.assign({},D,{transaction:Object.assign({},te,{type:void 0})}))}}const te=this.getRpcRequest(D);return null!=te?await this.send(te.method,te.args):super._perform(D)}async _detectNetwork(){const D=this._getOption("staticNetwork");if(D){if(!0!==D)return D;if(_classPrivateFieldGet2(Le,this))return _classPrivateFieldGet2(Le,this)}return _classPrivateFieldGet2(Ue,this)?await _classPrivateFieldGet2(Ue,this):this.ready?(_classPrivateFieldSet2(Ue,this,(async()=>{try{const D=_e.Network.from((0,be.getBigInt)(await this.send("eth_chainId",[])));return _classPrivateFieldSet2(Ue,this,null),D}catch(D){throw _classPrivateFieldSet2(Ue,this,null),D}})()),await _classPrivateFieldGet2(Ue,this)):(_classPrivateFieldSet2(Ue,this,(async(D,te)=>{const he={id:(_classPrivateFieldSet2(xe,this,(D=_classPrivateFieldGet2(xe,this),te=D++,D)),te),method:"eth_chainId",params:[],jsonrpc:"2.0"};let ye;this.emit("debug",{action:"sendRpcPayload",payload:he});try{ye=(await this._send(he))[0],_classPrivateFieldSet2(Ue,this,null)}catch(D){throw _classPrivateFieldSet2(Ue,this,null),this.emit("debug",{action:"receiveRpcError",error:D}),D}if(this.emit("debug",{action:"receiveRpcResult",result:ye}),"result"in ye)return _e.Network.from((0,be.getBigInt)(ye.result));throw this.getRpcError(he,ye)})()),await _classPrivateFieldGet2(Ue,this))}_start(){null!=_classPrivateFieldGet2(De,this)&&null!=_classPrivateFieldGet2(De,this).resolve&&(_classPrivateFieldGet2(De,this).resolve(),_classPrivateFieldSet2(De,this,null),(async()=>{for(;null==_classPrivateFieldGet2(Le,this)&&!this.destroyed;)try{_classPrivateFieldSet2(Le,this,await this._detectNetwork())}catch(D){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,be.makeError)("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:D}})),await stall(1e3)}_assertClassBrand(qe,this,_scheduleDrain).call(this)})())}async _waitUntilReady(){if(null!=_classPrivateFieldGet2(De,this))return await _classPrivateFieldGet2(De,this).promise}_getSubscriber(D){return"pending"===D.type?new Pe.FilterIdPendingSubscriber(this):"event"===D.type?this._getOption("polling")?new Ie.PollingEventSubscriber(this,D.filter):new Pe.FilterIdEventSubscriber(this,D.filter):"orphan"===D.type&&"drop-log"===D.filter.orphan?new ve.UnmanagedSubscriber("orphan"):super._getSubscriber(D)}get ready(){return null==_classPrivateFieldGet2(De,this)}getRpcTransaction(D){const te={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((he=>{if(null==D[he])return;let ye=he;"gasLimit"===he&&(ye="gas"),te[ye]=(0,be.toQuantity)((0,be.getBigInt)(D[he],`tx.${he}`))})),["from","to","data"].forEach((he=>{null!=D[he]&&(te[he]=(0,be.hexlify)(D[he]))})),D.accessList&&(te.accessList=(0,ye.accessListify)(D.accessList)),te}getRpcRequest(D){switch(D.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:[getLowerCase(D.address),D.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[getLowerCase(D.address),D.blockTag]};case"getCode":return{method:"eth_getCode",args:[getLowerCase(D.address),D.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[getLowerCase(D.address),"0x"+D.position.toString(16),D.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[D.signedTransaction]};case"getBlock":if("blockTag"in D)return{method:"eth_getBlockByNumber",args:[D.blockTag,!!D.includeTransactions]};if("blockHash"in D)return{method:"eth_getBlockByHash",args:[D.blockHash,!!D.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[D.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[D.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(D.transaction),D.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(D.transaction)]};case"getLogs":return D.filter&&null!=D.filter.address&&(Array.isArray(D.filter.address)?D.filter.address=D.filter.address.map(getLowerCase):D.filter.address=getLowerCase(D.filter.address)),{method:"eth_getLogs",args:[D.filter]}}return null}getRpcError(te,he){const{method:ye}=te,{error:ve}=he;if("eth_estimateGas"===ye&&ve.message){const D=ve.message;if(!D.match(/revert/i)&&D.match(/insufficient funds/i))return(0,be.makeError)("insufficient funds","INSUFFICIENT_FUNDS",{transaction:te.params[0],info:{payload:te,error:ve}})}if("eth_call"===ye||"eth_estimateGas"===ye){const he=spelunkData(ve),be=D.AbiCoder.getBuiltinCallException("eth_call"===ye?"call":"estimateGas",te.params[0],he?he.data:null);return be.info={error:ve,payload:te},be}const we=JSON.stringify(function spelunkMessage(D){const te=[];return _spelunkMessage(D,te),te}(ve));if("string"==typeof ve.message&&ve.message.match(/user denied|ethers-user-denied/i)){const D={eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"};return(0,be.makeError)("user rejected action","ACTION_REJECTED",{action:D[ye]||"unknown",reason:"rejected",info:{payload:te,error:ve}})}if("eth_sendRawTransaction"===ye||"eth_sendTransaction"===ye){const D=te.params[0];if(we.match(/insufficient funds|base fee exceeds gas limit/i))return(0,be.makeError)("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:D,info:{error:ve}});if(we.match(/nonce/i)&&we.match(/too low/i))return(0,be.makeError)("nonce has already been used","NONCE_EXPIRED",{transaction:D,info:{error:ve}});if(we.match(/replacement transaction/i)&&we.match(/underpriced/i))return(0,be.makeError)("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:D,info:{error:ve}});if(we.match(/only replay-protected/i))return(0,be.makeError)("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:ye,info:{transaction:D,info:{error:ve}}})}let _e=!!we.match(/the method .* does not exist/i);return _e||ve&&ve.details&&ve.details.startsWith("Unauthorized method:")&&(_e=!0),_e?(0,be.makeError)("unsupported operation","UNSUPPORTED_OPERATION",{operation:te.method,info:{error:ve,payload:te}}):(0,be.makeError)("could not coalesce error","UNKNOWN_ERROR",{error:ve,payload:te})}send(D,te){var he,ye;if(this.destroyed)return Promise.reject((0,be.makeError)("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:D}));const ve=(_classPrivateFieldSet2(xe,this,(he=_classPrivateFieldGet2(xe,this),ye=he++,he)),ye),we=new Promise(((he,ye)=>{_classPrivateFieldGet2(Be,this).push({resolve:he,reject:ye,payload:{method:D,params:te,id:ve,jsonrpc:"2.0"}})}));return _assertClassBrand(qe,this,_scheduleDrain).call(this),we}async getSigner(D){null==D&&(D=0);const he=this.send("eth_accounts",[]);if("number"==typeof D){const te=await he;if(D>=te.length)throw new Error("no such account");return new JsonRpcSigner(this,te[D])}const{accounts:ye}=await(0,be.resolveProperties)({network:this.getNetwork(),accounts:he});D=(0,te.getAddress)(D);for(const he of ye)if((0,te.getAddress)(he)===D)return new JsonRpcSigner(this,D);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map((D=>new JsonRpcSigner(this,D)))}destroy(){_classPrivateFieldGet2(Fe,this)&&(clearTimeout(_classPrivateFieldGet2(Fe,this)),_classPrivateFieldSet2(Fe,this,null));for(const{payload:D,reject:te}of _classPrivateFieldGet2(Be,this))te((0,be.makeError)("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:D.method}));_classPrivateFieldSet2(Be,this,[]),super.destroy()}}function _scheduleDrain(){if(_classPrivateFieldGet2(Fe,this))return;const D=1===this._getOption("batchMaxCount")?0:this._getOption("batchStallTime");_classPrivateFieldSet2(Fe,this,setTimeout((()=>{_classPrivateFieldSet2(Fe,this,null);const D=_classPrivateFieldGet2(Be,this);for(_classPrivateFieldSet2(Be,this,[]);D.length;){const te=[D.shift()];for(;D.length&&te.length!==_classPrivateFieldGet2(Oe,this).batchMaxCount;){te.push(D.shift());const he=JSON.stringify(te.map((D=>D.payload)));if(he.length>_classPrivateFieldGet2(Oe,this).batchMaxSize){D.unshift(te.pop());break}}(async()=>{const D=1===te.length?te[0].payload:te.map((D=>D.payload));this.emit("debug",{action:"sendRpcPayload",payload:D});try{const he=await this._send(D);this.emit("debug",{action:"receiveRpcResult",result:he});for(const{resolve:D,reject:ye,payload:ve}of te){if(this.destroyed){ye((0,be.makeError)("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:ve.method}));continue}const te=he.filter((D=>D.id===ve.id))[0];if(null!=te)"error"in te?ye(this.getRpcError(ve,te)):D(te.result);else{const D=(0,be.makeError)("missing response for request","BAD_DATA",{value:he,info:{payload:ve}});this.emit("error",D),ye(D)}}}catch(D){this.emit("debug",{action:"receiveRpcError",error:D});for(const{reject:he}of te)he(D)}})()}}),D))}aF.JsonRpcApiProvider=JsonRpcApiProvider;var je=new WeakMap;class JsonRpcApiPollingProvider extends JsonRpcApiProvider{constructor(D,te){super(D,te),_classPrivateFieldInitSpec(this,je,void 0),_classPrivateFieldSet2(je,this,4e3)}_getSubscriber(D){const te=super._getSubscriber(D);return isPollable(te)&&(te.pollingInterval=_classPrivateFieldGet2(je,this)),te}get pollingInterval(){return _classPrivateFieldGet2(je,this)}set pollingInterval(D){if(!Number.isInteger(D)||D<0)throw new Error("invalid interval");_classPrivateFieldSet2(je,this,D),this._forEachSubscriber((D=>{isPollable(D)&&(D.pollingInterval=_classPrivateFieldGet2(je,this))}))}}aF.JsonRpcApiPollingProvider=JsonRpcApiPollingProvider;var Je=new WeakMap;function spelunkData(D){if(null==D)return null;if("string"==typeof D.message&&D.message.match(/revert/i)&&(0,be.isHexString)(D.data))return{message:D.message,data:D.data};if("object"==typeof D){for(const te in D){const he=spelunkData(D[te]);if(he)return he}return null}if("string"==typeof D)try{return spelunkData(JSON.parse(D))}catch(D){}return null}function _spelunkMessage(D,te){if(null!=D){if("string"==typeof D.message&&te.push(D.message),"object"==typeof D)for(const he in D)_spelunkMessage(D[he],te);if("string"==typeof D)try{return _spelunkMessage(JSON.parse(D),te)}catch(D){}}}return aF.JsonRpcProvider=class JsonRpcProvider extends JsonRpcApiPollingProvider{constructor(D,te,he){null==D&&(D="http://localhost:8545"),super(te,he),_classPrivateFieldInitSpec(this,Je,void 0),_classPrivateFieldSet2(Je,this,"string"==typeof D?new be.FetchRequest(D):D.clone())}_getConnection(){return _classPrivateFieldGet2(Je,this).clone()}async send(D,te){return await this._start(),await super.send(D,te)}async _send(D){const te=this._getConnection();te.body=JSON.stringify(D),te.setHeader("content-type","application/json");const he=await te.send();he.assertOk();let ye=he.bodyJson;return Array.isArray(ye)||(ye=[ye]),ye}},aF}function requireProviderAnkr(){if(tF)return nF;tF=1,Object.defineProperty(nF,"__esModule",{value:!0}),nF.AnkrProvider=void 0;const D=requireUtils$4(),te=requireCommunity(),he=requireNetwork(),ye=requireProviderJsonrpc(),be="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";class AnkrProvider extends ye.JsonRpcProvider{constructor(te,ye){null==te&&(te="mainnet");const ve=he.Network.from(te);null==ye&&(ye=be);const we={polling:!0,staticNetwork:ve};super(AnkrProvider.getRequest(ve,ye),ve,we),_defineProperty(this,"apiKey",void 0),(0,D.defineProperties)(this,{apiKey:ye})}_getProvider(D){try{return new AnkrProvider(D,this.apiKey)}catch(D){}return super._getProvider(D)}static getRequest(he,ye){null==ye&&(ye=be);const ve=new D.FetchRequest(`https://${function getHost(te){switch(te){case"mainnet":return"rpc.ankr.com/eth";case"goerli":return"rpc.ankr.com/eth_goerli";case"sepolia":return"rpc.ankr.com/eth_sepolia";case"arbitrum":return"rpc.ankr.com/arbitrum";case"base":return"rpc.ankr.com/base";case"base-goerli":return"rpc.ankr.com/base_goerli";case"base-sepolia":return"rpc.ankr.com/base_sepolia";case"bnb":return"rpc.ankr.com/bsc";case"bnbt":return"rpc.ankr.com/bsc_testnet_chapel";case"matic":return"rpc.ankr.com/polygon";case"matic-mumbai":return"rpc.ankr.com/polygon_mumbai";case"optimism":return"rpc.ankr.com/optimism";case"optimism-goerli":return"rpc.ankr.com/optimism_testnet";case"optimism-sepolia":return"rpc.ankr.com/optimism_sepolia"}(0,D.assertArgument)(!1,"unsupported network","network",te)}(he.name)}/${ye}`);return ve.allowGzip=!0,ye===be&&(ve.retryFunc=async(D,he,ye)=>((0,te.showThrottleMessage)("AnkrProvider"),!0)),ve}getRpcError(D,te){return"eth_sendRawTransaction"===D.method&&te&&te.error&&"INTERNAL_ERROR: could not replace existing tx"===te.error.message&&(te.error.message="replacement transaction underpriced"),super.getRpcError(D,te)}isCommunityResource(){return this.apiKey===be}}return nF.AnkrProvider=AnkrProvider,nF}var sF,oF={};function requireProviderAlchemy(){if(sF)return oF;sF=1,Object.defineProperty(oF,"__esModule",{value:!0}),oF.AlchemyProvider=void 0;const D=requireUtils$4(),te=requireCommunity(),he=requireNetwork(),ye=requireProviderJsonrpc(),be="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class AlchemyProvider extends ye.JsonRpcProvider{constructor(te,ye){null==te&&(te="mainnet");const ve=he.Network.from(te);null==ye&&(ye=be);super(AlchemyProvider.getRequest(ve,ye),ve,{staticNetwork:ve}),_defineProperty(this,"apiKey",void 0),(0,D.defineProperties)(this,{apiKey:ye})}_getProvider(D){try{return new AlchemyProvider(D,this.apiKey)}catch(D){}return super._getProvider(D)}async _perform(te){if("getTransactionResult"===te.method){const{trace:he,tx:ye}=await(0,D.resolveProperties)({trace:this.send("trace_transaction",[te.hash]),tx:this.getTransaction(te.hash)});if(null==he||null==ye)return null;let be,ve=!1;try{be=he[0].result.output,ve="Reverted"===he[0].error}catch(D){}if(be)return(0,D.assert)(!ve,"an error occurred during transaction executions","CALL_EXCEPTION",{action:"getTransactionResult",data:be,reason:null,transaction:ye,invocation:null,revert:null}),be;(0,D.assert)(!1,"could not parse trace result","BAD_DATA",{value:he})}return await super._perform(te)}isCommunityResource(){return this.apiKey===be}static getRequest(he,ye){null==ye&&(ye=be);const ve=new D.FetchRequest(`https://${function getHost(te){switch(te){case"mainnet":return"eth-mainnet.alchemyapi.io";case"goerli":return"eth-goerli.g.alchemy.com";case"sepolia":return"eth-sepolia.g.alchemy.com";case"arbitrum":return"arb-mainnet.g.alchemy.com";case"arbitrum-goerli":return"arb-goerli.g.alchemy.com";case"arbitrum-sepolia":return"arb-sepolia.g.alchemy.com";case"base":return"base-mainnet.g.alchemy.com";case"base-goerli":return"base-goerli.g.alchemy.com";case"base-sepolia":return"base-sepolia.g.alchemy.com";case"matic":return"polygon-mainnet.g.alchemy.com";case"matic-mumbai":return"polygon-mumbai.g.alchemy.com";case"optimism":return"opt-mainnet.g.alchemy.com";case"optimism-goerli":return"opt-goerli.g.alchemy.com";case"optimism-sepolia":return"opt-sepolia.g.alchemy.com"}(0,D.assertArgument)(!1,"unsupported network","network",te)}(he.name)}/v2/${ye}`);return ve.allowGzip=!0,ye===be&&(ve.retryFunc=async(D,he,ye)=>((0,te.showThrottleMessage)("alchemy"),!0)),ve}}return oF.AlchemyProvider=AlchemyProvider,oF}var cF,dF={};function requireProviderCloudflare(){if(cF)return dF;cF=1,Object.defineProperty(dF,"__esModule",{value:!0}),dF.CloudflareProvider=void 0;const D=requireUtils$4(),te=requireNetwork(),he=requireProviderJsonrpc();class CloudflareProvider extends he.JsonRpcProvider{constructor(he){null==he&&(he="mainnet");const ye=te.Network.from(he);(0,D.assertArgument)("mainnet"===ye.name,"unsupported network","network",he),super("https://cloudflare-eth.com/",ye,{staticNetwork:ye})}}return dF.CloudflareProvider=CloudflareProvider,dF}var uF,fF={};function requireProviderEtherscan(){if(uF)return fF;uF=1,Object.defineProperty(fF,"__esModule",{value:!0}),fF.EtherscanProvider=fF.EtherscanPlugin=void 0;const D=requireAbi(),te=requireContract(),he=requireTransaction(),ye=requireUtils$4(),be=requireAbstractProvider(),ve=requireNetwork(),we=requirePluginsNetwork(),_e=requireCommunity();const Pe="org.ethers.plugins.provider.Etherscan";class EtherscanPlugin extends we.NetworkPlugin{constructor(D){super(Pe),_defineProperty(this,"baseUrl",void 0),(0,ye.defineProperties)(this,{baseUrl:D})}clone(){return new EtherscanPlugin(this.baseUrl)}}fF.EtherscanPlugin=EtherscanPlugin;const Ie=["enableCcipRead"];let Re=1;var ke=new WeakMap;class EtherscanProvider extends be.AbstractProvider{constructor(D,te){const he=null!=te?te:null;super(),_defineProperty(this,"network",void 0),_defineProperty(this,"apiKey",void 0),_classPrivateFieldInitSpec(this,ke,void 0);const be=ve.Network.from(D);_classPrivateFieldSet2(ke,this,be.getPlugin(Pe)),(0,ye.defineProperties)(this,{apiKey:he,network:be}),this.getBaseUrl()}getBaseUrl(){if(_classPrivateFieldGet2(ke,this))return _classPrivateFieldGet2(ke,this).baseUrl;switch(this.network.name){case"mainnet":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"holesky":return"https://api-holesky.etherscan.io";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"bnb":return"https://api.bscscan.com";case"bnbt":return"https://api-testnet.bscscan.com";case"matic":return"https://api.polygonscan.com";case"matic-mumbai":return"https://api-testnet.polygonscan.com";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io"}(0,ye.assertArgument)(!1,"unsupported network","network",this.network)}getUrl(D,te){const he=Object.keys(te).reduce(((D,he)=>{const ye=te[he];return null!=ye&&(D+=`&${he}=${ye}`),D}),""),ye=this.apiKey?`&apikey=${this.apiKey}`:"";return`${this.getBaseUrl()}/api?module=${D}${he}${ye}`}getPostUrl(){return`${this.getBaseUrl()}/api`}getPostData(D,te){return te.module=D,te.apikey=this.apiKey,te}async detectNetwork(){return this.network}async fetch(D,te,he){const be=Re++,ve=he?this.getPostUrl():this.getUrl(D,te),we=he?this.getPostData(D,te):null;this.emit("debug",{action:"sendRequest",id:be,url:ve,payload:we});const Pe=new ye.FetchRequest(ve);Pe.setThrottleParams({slotInterval:1e3}),Pe.retryFunc=(D,te,he)=>(this.isCommunityResource()&&(0,_e.showThrottleMessage)("Etherscan"),Promise.resolve(!0)),Pe.processFunc=async(te,he)=>{const ve=he.hasBody()?JSON.parse((0,ye.toUtf8String)(he.body)):{},we=("string"==typeof ve.result?ve.result:"").toLowerCase().indexOf("rate limit")>=0;return"proxy"===D?ve&&0==ve.status&&"NOTOK"==ve.message&&we&&(this.emit("debug",{action:"receiveError",id:be,reason:"proxy-NOTOK",error:ve}),he.throwThrottleError(ve.result,2e3)):we&&(this.emit("debug",{action:"receiveError",id:be,reason:"null result",error:ve.result}),he.throwThrottleError(ve.result,2e3)),he},we&&(Pe.setHeader("content-type","application/x-www-form-urlencoded; charset=UTF-8"),Pe.body=Object.keys(we).map((D=>`${D}=${we[D]}`)).join("&"));const Ie=await Pe.send();try{Ie.assertOk()}catch(D){this.emit("debug",{action:"receiveError",id:be,error:D,reason:"assertOk"}),(0,ye.assert)(!1,"response error","SERVER_ERROR",{request:Pe,response:Ie})}Ie.hasBody()||(this.emit("debug",{action:"receiveError",id:be,error:"missing body",reason:"null body"}),(0,ye.assert)(!1,"missing response","SERVER_ERROR",{request:Pe,response:Ie}));const ke=JSON.parse((0,ye.toUtf8String)(Ie.body));return"proxy"===D?("2.0"!=ke.jsonrpc&&(this.emit("debug",{action:"receiveError",id:be,result:ke,reason:"invalid JSON-RPC"}),(0,ye.assert)(!1,"invalid JSON-RPC response (missing jsonrpc='2.0')","SERVER_ERROR",{request:Pe,response:Ie,info:{result:ke}})),ke.error&&(this.emit("debug",{action:"receiveError",id:be,result:ke,reason:"JSON-RPC error"}),(0,ye.assert)(!1,"error response","SERVER_ERROR",{request:Pe,response:Ie,info:{result:ke}})),this.emit("debug",{action:"receiveRequest",id:be,result:ke}),ke.result):0!=ke.status||"No records found"!==ke.message&&"No transactions found"!==ke.message?((1!=ke.status||"string"==typeof ke.message&&!ke.message.match(/^OK/))&&(this.emit("debug",{action:"receiveError",id:be,result:ke}),(0,ye.assert)(!1,"error response","SERVER_ERROR",{request:Pe,response:Ie,info:{result:ke}})),this.emit("debug",{action:"receiveRequest",id:be,result:ke}),ke.result):(this.emit("debug",{action:"receiveRequest",id:be,result:ke}),ke.result)}_getTransactionPostData(D){const te={};for(let be in D){if(Ie.indexOf(be)>=0)continue;if(null==D[be])continue;let ve=D[be];"type"===be&&0===ve||("blockTag"===be&&"latest"===ve||(ve={type:!0,gasLimit:!0,gasPrice:!0,maxFeePerGs:!0,maxPriorityFeePerGas:!0,nonce:!0,value:!0}[be]?(0,ye.toQuantity)(ve):"accessList"===be?"["+(0,he.accessListify)(ve).map((D=>`{address:"${D.address}",storageKeys:["${D.storageKeys.join('","')}"]}`)).join(",")+"]":(0,ye.hexlify)(ve),te[be]=ve))}return te}_checkError(te,be,ve){let we="";if((0,ye.isError)(be,"SERVER_ERROR")){try{we=be.info.result.error.message}catch(D){}if(!we)try{we=be.info.message}catch(D){}}if("estimateGas"===te.method&&!we.match(/revert/i)&&we.match(/insufficient funds/i)&&(0,ye.assert)(!1,"insufficient funds","INSUFFICIENT_FUNDS",{transaction:te.transaction}),("call"===te.method||"estimateGas"===te.method)&&we.match(/execution reverted/i)){let he="";try{he=be.info.result.error.data}catch(be){}const ye=D.AbiCoder.getBuiltinCallException(te.method,te.transaction,he);throw ye.info={request:te,error:be},ye}if(we&&"broadcastTransaction"===te.method){const D=he.Transaction.from(te.signedTransaction);we.match(/replacement/i)&&we.match(/underpriced/i)&&(0,ye.assert)(!1,"replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:D}),we.match(/insufficient funds/)&&(0,ye.assert)(!1,"insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:D}),we.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&(0,ye.assert)(!1,"nonce has already been used","NONCE_EXPIRED",{transaction:D})}throw be}async _detectNetwork(){return this.network}async _perform(D){switch(D.method){case"chainId":return this.network.chainId;case"getBlockNumber":return this.fetch("proxy",{action:"eth_blockNumber"});case"getGasPrice":return this.fetch("proxy",{action:"eth_gasPrice"});case"getPriorityFee":if("mainnet"===this.network.name)return"1000000000";if("optimism"===this.network.name)return"1000000";throw new Error("fallback onto the AbstractProvider default");case"getBalance":return this.fetch("account",{action:"balance",address:D.address,tag:D.blockTag});case"getTransactionCount":return this.fetch("proxy",{action:"eth_getTransactionCount",address:D.address,tag:D.blockTag});case"getCode":return this.fetch("proxy",{action:"eth_getCode",address:D.address,tag:D.blockTag});case"getStorage":return this.fetch("proxy",{action:"eth_getStorageAt",address:D.address,position:D.position,tag:D.blockTag});case"broadcastTransaction":return this.fetch("proxy",{action:"eth_sendRawTransaction",hex:D.signedTransaction},!0).catch((te=>this._checkError(D,te,D.signedTransaction)));case"getBlock":if("blockTag"in D)return this.fetch("proxy",{action:"eth_getBlockByNumber",tag:D.blockTag,boolean:D.includeTransactions?"true":"false"});(0,ye.assert)(!1,"getBlock by blockHash not supported by Etherscan","UNSUPPORTED_OPERATION",{operation:"getBlock(blockHash)"});case"getTransaction":return this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:D.hash});case"getTransactionReceipt":return this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:D.hash});case"call":{if("latest"!==D.blockTag)throw new Error("EtherscanProvider does not support blockTag for call");const te=this._getTransactionPostData(D.transaction);te.module="proxy",te.action="eth_call";try{return await this.fetch("proxy",te,!0)}catch(te){return this._checkError(D,te,D.transaction)}}case"estimateGas":{const te=this._getTransactionPostData(D.transaction);te.module="proxy",te.action="eth_estimateGas";try{return await this.fetch("proxy",te,!0)}catch(te){return this._checkError(D,te,D.transaction)}}}return super._perform(D)}async getNetwork(){return this.network}async getEtherPrice(){return"mainnet"!==this.network.name?0:parseFloat((await this.fetch("stats",{action:"ethprice"})).ethusd)}async getContract(D){let he=this._getAddress(D);(function isPromise(D){return D&&"function"==typeof D.then})(he)&&(he=await he);try{const D=await this.fetch("contract",{action:"getabi",address:he}),ye=JSON.parse(D);return new te.Contract(he,ye,this)}catch(D){return null}}isCommunityResource(){return null==this.apiKey}}return fF.EtherscanProvider=EtherscanProvider,fF}var lF,pF={},hF={},yF={};var mF,bF,gF,vF={};function requireProviderSocket(){if(mF)return vF;mF=1,Object.defineProperty(vF,"__esModule",{value:!0}),vF.SocketProvider=vF.SocketEventSubscriber=vF.SocketPendingSubscriber=vF.SocketBlockSubscriber=vF.SocketSubscriber=void 0;const D=requireAbstractProvider(),te=requireUtils$4(),he=requireProviderJsonrpc();var ye=new WeakMap,be=new WeakMap,ve=new WeakMap,we=new WeakMap,_e=new WeakMap;class SocketSubscriber{get filter(){return JSON.parse(_classPrivateFieldGet2(be,this))}constructor(D,te){_classPrivateFieldInitSpec(this,ye,void 0),_classPrivateFieldInitSpec(this,be,void 0),_classPrivateFieldInitSpec(this,ve,void 0),_classPrivateFieldInitSpec(this,we,void 0),_classPrivateFieldInitSpec(this,_e,void 0),_classPrivateFieldSet2(ye,this,D),_classPrivateFieldSet2(be,this,JSON.stringify(te)),_classPrivateFieldSet2(ve,this,null),_classPrivateFieldSet2(we,this,null),_classPrivateFieldSet2(_e,this,null)}start(){_classPrivateFieldSet2(ve,this,_classPrivateFieldGet2(ye,this).send("eth_subscribe",this.filter).then((D=>(_classPrivateFieldGet2(ye,this)._register(D,this),D))))}stop(){_classPrivateFieldGet2(ve,this).then((D=>{_classPrivateFieldGet2(ye,this).send("eth_unsubscribe",[D])})),_classPrivateFieldSet2(ve,this,null)}pause(D){(0,te.assert)(D,"preserve logs while paused not supported by SocketSubscriber yet","UNSUPPORTED_OPERATION",{operation:"pause(false)"}),_classPrivateFieldSet2(we,this,!!D)}resume(){_classPrivateFieldSet2(we,this,null)}_handleMessage(D){if(null!=_classPrivateFieldGet2(ve,this)&&null===_classPrivateFieldGet2(we,this)){let te=_classPrivateFieldGet2(_e,this);te=null==te?this._emit(_classPrivateFieldGet2(ye,this),D):te.then((async()=>{await this._emit(_classPrivateFieldGet2(ye,this),D)})),_classPrivateFieldSet2(_e,this,te.then((()=>{_classPrivateFieldGet2(_e,this)===te&&_classPrivateFieldSet2(_e,this,null)})))}}async _emit(D,te){throw new Error("sub-classes must implemente this; _emit")}}vF.SocketSubscriber=SocketSubscriber;class SocketBlockSubscriber extends SocketSubscriber{constructor(D){super(D,["newHeads"])}async _emit(D,te){D.emit("block",parseInt(te.number))}}vF.SocketBlockSubscriber=SocketBlockSubscriber;class SocketPendingSubscriber extends SocketSubscriber{constructor(D){super(D,["newPendingTransactions"])}async _emit(D,te){D.emit("pending",te)}}vF.SocketPendingSubscriber=SocketPendingSubscriber;var Pe=new WeakMap;class SocketEventSubscriber extends SocketSubscriber{get logFilter(){return JSON.parse(_classPrivateFieldGet2(Pe,this))}constructor(D,te){super(D,["logs",te]),_classPrivateFieldInitSpec(this,Pe,void 0),_classPrivateFieldSet2(Pe,this,JSON.stringify(te))}async _emit(D,te){D.emit(this.logFilter,D._wrapLog(te,D._network))}}vF.SocketEventSubscriber=SocketEventSubscriber;var Ie=new WeakMap,Re=new WeakMap,ke=new WeakMap;class SocketProvider extends he.JsonRpcApiProvider{constructor(D,he){const ye=Object.assign({},null!=he?he:{});(0,te.assertArgument)(null==ye.batchMaxCount||1===ye.batchMaxCount,"sockets-based providers do not support batches","options.batchMaxCount",he),ye.batchMaxCount=1,null==ye.staticNetwork&&(ye.staticNetwork=!0),super(D,ye),_classPrivateFieldInitSpec(this,Ie,void 0),_classPrivateFieldInitSpec(this,Re,void 0),_classPrivateFieldInitSpec(this,ke,void 0),_classPrivateFieldSet2(Ie,this,new Map),_classPrivateFieldSet2(Re,this,new Map),_classPrivateFieldSet2(ke,this,new Map)}_getSubscriber(te){switch(te.type){case"close":return new D.UnmanagedSubscriber("close");case"block":return new SocketBlockSubscriber(this);case"pending":return new SocketPendingSubscriber(this);case"event":return new SocketEventSubscriber(this,te.filter);case"orphan":if("drop-log"===te.filter.orphan)return new D.UnmanagedSubscriber("drop-log")}return super._getSubscriber(te)}_register(D,te){_classPrivateFieldGet2(Re,this).set(D,te);const he=_classPrivateFieldGet2(ke,this).get(D);if(he){for(const D of he)te._handleMessage(D);_classPrivateFieldGet2(ke,this).delete(D)}}async _send(D){(0,te.assertArgument)(!Array.isArray(D),"WebSocket does not support batch send","payload",D);const he=new Promise(((te,he)=>{_classPrivateFieldGet2(Ie,this).set(D.id,{payload:D,resolve:te,reject:he})}));return await this._waitUntilReady(),await this._write(JSON.stringify(D)),[await he]}async _processMessage(D){const he=JSON.parse(D);if(he&&"object"==typeof he&&"id"in he){const D=_classPrivateFieldGet2(Ie,this).get(he.id);if(null==D)return void this.emit("error",(0,te.makeError)("received result for unknown id","UNKNOWN_ERROR",{reasonCode:"UNKNOWN_ID",result:he}));_classPrivateFieldGet2(Ie,this).delete(he.id),D.resolve(he)}else{if(!he||"eth_subscription"!==he.method)return void this.emit("error",(0,te.makeError)("received unexpected message","UNKNOWN_ERROR",{reasonCode:"UNEXPECTED_MESSAGE",result:he}));{const D=he.params.subscription,te=_classPrivateFieldGet2(Re,this).get(D);if(te)te._handleMessage(he.params.result);else{let te=_classPrivateFieldGet2(ke,this).get(D);null==te&&(te=[],_classPrivateFieldGet2(ke,this).set(D,te)),te.push(he.params.result)}}}}async _write(D){throw new Error("sub-classes must override this")}}return vF.SocketProvider=SocketProvider,vF}function requireProviderWebsocket(){if(bF)return hF;bF=1,Object.defineProperty(hF,"__esModule",{value:!0}),hF.WebSocketProvider=void 0;const D=function requireWsBrowser(){if(lF)return yF;lF=1,Object.defineProperty(yF,"__esModule",{value:!0}),yF.WebSocket=void 0;const D=function getGlobal(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==rn)return rn;throw new Error("unable to locate global object")}().WebSocket;return yF.WebSocket=D,yF}(),te=requireProviderSocket();var he=new WeakMap,ye=new WeakMap;class WebSocketProvider extends te.SocketProvider{get websocket(){if(null==_classPrivateFieldGet2(ye,this))throw new Error("websocket closed");return _classPrivateFieldGet2(ye,this)}constructor(te,be,ve){super(be,ve),_classPrivateFieldInitSpec(this,he,void 0),_classPrivateFieldInitSpec(this,ye,void 0),"string"==typeof te?(_classPrivateFieldSet2(he,this,(()=>new D.WebSocket(te))),_classPrivateFieldSet2(ye,this,_classPrivateFieldGet2(he,this).call(this))):"function"==typeof te?(_classPrivateFieldSet2(he,this,te),_classPrivateFieldSet2(ye,this,te())):(_classPrivateFieldSet2(he,this,null),_classPrivateFieldSet2(ye,this,te)),this.websocket.onopen=async()=>{try{await this._start(),this.resume()}catch(D){console.log("failed to start WebsocketProvider",D)}},this.websocket.onmessage=D=>{this._processMessage(D.data)}}async _write(D){this.websocket.send(D)}async destroy(){null!=_classPrivateFieldGet2(ye,this)&&(_classPrivateFieldGet2(ye,this).close(),_classPrivateFieldSet2(ye,this,null)),super.destroy()}}return hF.WebSocketProvider=WebSocketProvider,hF}function requireProviderInfura(){if(gF)return pF;gF=1,Object.defineProperty(pF,"__esModule",{value:!0}),pF.InfuraProvider=pF.InfuraWebSocketProvider=void 0;const D=requireUtils$4(),te=requireCommunity(),he=requireNetwork(),ye=requireProviderJsonrpc(),be=requireProviderWebsocket(),ve="84842078b09946638c03157f83405213";class InfuraWebSocketProvider extends be.WebSocketProvider{constructor(te,he){const ye=new InfuraProvider(te,he),be=ye._getConnection();(0,D.assert)(!be.credentials,"INFURA WebSocket project secrets unsupported","UNSUPPORTED_OPERATION",{operation:"InfuraProvider.getWebSocketProvider()"});super(be.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),te),_defineProperty(this,"projectId",void 0),_defineProperty(this,"projectSecret",void 0),(0,D.defineProperties)(this,{projectId:ye.projectId,projectSecret:ye.projectSecret})}isCommunityResource(){return this.projectId===ve}}pF.InfuraWebSocketProvider=InfuraWebSocketProvider;class InfuraProvider extends ye.JsonRpcProvider{constructor(te,ye,be){null==te&&(te="mainnet");const we=he.Network.from(te);null==ye&&(ye=ve),null==be&&(be=null);super(InfuraProvider.getRequest(we,ye,be),we,{staticNetwork:we}),_defineProperty(this,"projectId",void 0),_defineProperty(this,"projectSecret",void 0),(0,D.defineProperties)(this,{projectId:ye,projectSecret:be})}_getProvider(D){try{return new InfuraProvider(D,this.projectId,this.projectSecret)}catch(D){}return super._getProvider(D)}isCommunityResource(){return this.projectId===ve}static getWebSocketProvider(D,te){return new InfuraWebSocketProvider(D,te)}static getRequest(he,ye,be){null==ye&&(ye=ve),null==be&&(be=null);const we=new D.FetchRequest(`https://${function getHost(te){switch(te){case"mainnet":return"mainnet.infura.io";case"goerli":return"goerli.infura.io";case"sepolia":return"sepolia.infura.io";case"arbitrum":return"arbitrum-mainnet.infura.io";case"arbitrum-goerli":return"arbitrum-goerli.infura.io";case"arbitrum-sepolia":return"arbitrum-sepolia.infura.io";case"base":return"base-mainnet.infura.io";case"base-goerlia":return"base-goerli.infura.io";case"base-sepolia":return"base-sepolia.infura.io";case"bnb":return"bnbsmartchain-mainnet.infura.io";case"bnbt":return"bnbsmartchain-testnet.infura.io";case"linea":return"linea-mainnet.infura.io";case"linea-goerli":return"linea-goerli.infura.io";case"matic":return"polygon-mainnet.infura.io";case"matic-mumbai":return"polygon-mumbai.infura.io";case"optimism":return"optimism-mainnet.infura.io";case"optimism-goerli":return"optimism-goerli.infura.io";case"optimism-sepolia":return"optimism-sepolia.infura.io"}(0,D.assertArgument)(!1,"unsupported network","network",te)}(he.name)}/v3/${ye}`);return we.allowGzip=!0,be&&we.setCredentials("",be),ye===ve&&(we.retryFunc=async(D,he,ye)=>((0,te.showThrottleMessage)("InfuraProvider"),!0)),we}}return pF.InfuraProvider=InfuraProvider,pF}var wF,_F={};function requireProviderQuicknode(){if(wF)return _F;wF=1,Object.defineProperty(_F,"__esModule",{value:!0}),_F.QuickNodeProvider=void 0;const D=requireUtils$4(),te=requireCommunity(),he=requireNetwork(),ye=requireProviderJsonrpc(),be="919b412a057b5e9c9b6dce193c5a60242d6efadb";class QuickNodeProvider extends ye.JsonRpcProvider{constructor(te,ye){null==te&&(te="mainnet");const ve=he.Network.from(te);null==ye&&(ye=be);super(QuickNodeProvider.getRequest(ve,ye),ve,{staticNetwork:ve}),_defineProperty(this,"token",void 0),(0,D.defineProperties)(this,{token:ye})}_getProvider(D){try{return new QuickNodeProvider(D,this.token)}catch(D){}return super._getProvider(D)}isCommunityResource(){return this.token===be}static getRequest(he,ye){null==ye&&(ye=be);const ve=new D.FetchRequest(`https://${function getHost(te){switch(te){case"mainnet":return"ethers.quiknode.pro";case"goerli":return"ethers.ethereum-goerli.quiknode.pro";case"sepolia":return"ethers.ethereum-sepolia.quiknode.pro";case"holesky":return"ethers.ethereum-holesky.quiknode.pro";case"arbitrum":return"ethers.arbitrum-mainnet.quiknode.pro";case"arbitrum-goerli":return"ethers.arbitrum-goerli.quiknode.pro";case"arbitrum-sepolia":return"ethers.arbitrum-sepolia.quiknode.pro";case"base":return"ethers.base-mainnet.quiknode.pro";case"base-goerli":return"ethers.base-goerli.quiknode.pro";case"base-spolia":return"ethers.base-sepolia.quiknode.pro";case"bnb":return"ethers.bsc.quiknode.pro";case"bnbt":return"ethers.bsc-testnet.quiknode.pro";case"matic":return"ethers.matic.quiknode.pro";case"matic-mumbai":return"ethers.matic-testnet.quiknode.pro";case"optimism":return"ethers.optimism.quiknode.pro";case"optimism-goerli":return"ethers.optimism-goerli.quiknode.pro";case"optimism-sepolia":return"ethers.optimism-sepolia.quiknode.pro";case"xdai":return"ethers.xdai.quiknode.pro"}(0,D.assertArgument)(!1,"unsupported network","network",te)}(he.name)}/${ye}`);return ve.allowGzip=!0,ye===be&&(ve.retryFunc=async(D,he,ye)=>((0,te.showThrottleMessage)("QuickNodeProvider"),!0)),ve}}return _F.QuickNodeProvider=QuickNodeProvider,_F}var TF,AF,EF={};function requireProviderFallback(){if(TF)return EF;TF=1,Object.defineProperty(EF,"__esModule",{value:!0}),EF.FallbackProvider=void 0;const D=requireUtils$4(),te=requireAbstractProvider(),he=requireNetwork(),ye=BigInt("1"),be=BigInt("2");function getTime(){return(new Date).getTime()}function stringify(D){return JSON.stringify(D,((D,te)=>"bigint"==typeof te?{type:"bigint",value:te.toString()}:te))}const ve={stallTimeout:400,priority:1,weight:1},we={blockNumber:-2,requests:0,lateResponses:0,errorResponses:0,outOfSync:-1,unsupportedEvents:0,rollingDuration:0,score:0,_network:null,_updateNumber:null,_totalTime:0,_lastFatalError:null,_lastFatalErrorTimestamp:0};function _normalize(D){if(null==D)return"null";if(Array.isArray(D))return"["+D.map(_normalize).join(",")+"]";if("object"==typeof D&&"function"==typeof D.toJSON)return _normalize(D.toJSON());switch(typeof D){case"boolean":case"symbol":return D.toString();case"bigint":case"number":return BigInt(D).toString();case"string":return JSON.stringify(D);case"object":{const te=Object.keys(D);return te.sort(),"{"+te.map((te=>`${JSON.stringify(te)}:${_normalize(D[te])}`)).join(",")+"}"}}throw console.log("Could not serialize",D),new Error("Hmm...")}function normalizeResult(D){if("error"in D){const te=D.error;return{tag:_normalize(te),value:te}}const te=D.result;return{tag:_normalize(te),value:te}}function checkQuorum(D,te){const he=new Map;for(const{value:D,tag:ye,weight:be}of te){const te=he.get(ye)||{value:D,weight:0};te.weight+=be,he.set(ye,te)}let ye=null;for(const te of he.values())te.weight>=D&&(!ye||te.weight>ye.weight)&&(ye=te);if(ye)return ye.value}function getMedian(D,te){let he=0;const ve=new Map;let we=null;const _e=[];for(const{value:D,tag:ye,weight:be}of te)if(D instanceof Error){const te=ve.get(ye)||{value:D,weight:0};te.weight+=be,ve.set(ye,te),(null==we||te.weight>we.weight)&&(we=te)}else _e.push(BigInt(D)),he+=be;if(he<D)return we&&we.weight>=D?we.value:void 0;_e.sort(((D,te)=>D<te?-1:te>D?1:0));const Pe=Math.floor(_e.length/2);return _e.length%2?_e[Pe]:(_e[Pe-1]+_e[Pe]+ye)/be}function getAnyResult(D,te){const he=checkQuorum(D,te);if(void 0!==he)return he;for(const D of te)if(D.value)return D.value}var _e=new WeakMap,Pe=new WeakMap,Ie=new WeakMap,Re=new WeakSet;class FallbackProvider extends te.AbstractProvider{constructor(he,ye,be){super(ye,be),_classPrivateMethodInitSpec(this,Re),_defineProperty(this,"quorum",void 0),_defineProperty(this,"eventQuorum",void 0),_defineProperty(this,"eventWorkers",void 0),_classPrivateFieldInitSpec(this,_e,void 0),_classPrivateFieldInitSpec(this,Pe,void 0),_classPrivateFieldInitSpec(this,Ie,void 0),_classPrivateFieldSet2(_e,this,he.map((D=>D instanceof te.AbstractProvider?Object.assign({provider:D},ve,we):Object.assign({},ve,D,we)))),_classPrivateFieldSet2(Pe,this,-2),_classPrivateFieldSet2(Ie,this,null),be&&null!=be.quorum?this.quorum=be.quorum:this.quorum=Math.ceil(_classPrivateFieldGet2(_e,this).reduce(((D,te)=>D+=te.weight),0)/2),this.eventQuorum=1,this.eventWorkers=1,(0,D.assertArgument)(this.quorum<=_classPrivateFieldGet2(_e,this).reduce(((D,te)=>D+te.weight),0),"quorum exceed provider wieght","quorum",this.quorum)}get providerConfigs(){return _classPrivateFieldGet2(_e,this).map((D=>{const te=Object.assign({},D);for(const D in te)"_"===D[0]&&delete te[D];return te}))}async _detectNetwork(){return he.Network.from((0,D.getBigInt)(await this._perform({method:"chainId"})))}async _translatePerform(D,te){switch(te.method){case"broadcastTransaction":return await D.broadcastTransaction(te.signedTransaction);case"call":return await D.call(Object.assign({},te.transaction,{blockTag:te.blockTag}));case"chainId":return(await D.getNetwork()).chainId;case"estimateGas":return await D.estimateGas(te.transaction);case"getBalance":return await D.getBalance(te.address,te.blockTag);case"getBlock":{const he="blockHash"in te?te.blockHash:te.blockTag;return await D.getBlock(he,te.includeTransactions)}case"getBlockNumber":return await D.getBlockNumber();case"getCode":return await D.getCode(te.address,te.blockTag);case"getGasPrice":return(await D.getFeeData()).gasPrice;case"getPriorityFee":return(await D.getFeeData()).maxPriorityFeePerGas;case"getLogs":return await D.getLogs(te.filter);case"getStorage":return await D.getStorage(te.address,te.position,te.blockTag);case"getTransaction":return await D.getTransaction(te.hash);case"getTransactionCount":return await D.getTransactionCount(te.address,te.blockTag);case"getTransactionReceipt":return await D.getTransactionReceipt(te.hash);case"getTransactionResult":return await D.getTransactionResult(te.hash)}}async _perform(te){if("broadcastTransaction"===te.method){const he=_classPrivateFieldGet2(_e,this).map((D=>null)),ye=_classPrivateFieldGet2(_e,this).map((async({provider:D,weight:ye},be)=>{try{const ve=await D._perform(te);he[be]=Object.assign(normalizeResult({result:ve}),{weight:ye})}catch(D){he[be]=Object.assign(normalizeResult({error:D}),{weight:ye})}}));for(;;){const te=he.filter((D=>null!=D));for(const{value:D}of te)if(!(D instanceof Error))return D;const be=checkQuorum(this.quorum,he.filter((D=>null!=D)));if((0,D.isError)(be,"INSUFFICIENT_FUNDS"))throw be;const ve=ye.filter(((D,te)=>null==he[te]));if(0===ve.length)break;await Promise.race(ve)}const be=getAnyResult(this.quorum,he);if((0,D.assert)(void 0!==be,"problem multi-broadcasting","SERVER_ERROR",{request:"%sub-requests",info:{request:te,results:he.map(stringify)}}),be instanceof Error)throw be;return be}await _assertClassBrand(Re,this,_initialSync).call(this);const he=new Set;let ye=0;for(;;){const D=_assertClassBrand(Re,this,_addRunner).call(this,he,te);if(null==D)break;if(ye+=D.config.weight,ye>=this.quorum)break}const be=await _assertClassBrand(Re,this,_waitForQuorum).call(this,he,te);for(const D of he)D.perform&&null==D.result&&D.config.lateResponses++;return be}async destroy(){for(const{provider:D}of _classPrivateFieldGet2(_e,this))D.destroy();super.destroy()}}function _getNextConfig(D){const te=Array.from(D).map((D=>D.config)),he=_classPrivateFieldGet2(_e,this).slice();!function shuffle(D){for(let te=D.length-1;te>0;te--){const he=Math.floor(Math.random()*(te+1)),ye=D[te];D[te]=D[he],D[he]=ye}}(he),he.sort(((D,te)=>D.priority-te.priority));for(const D of he)if(!D._lastFatalError&&-1===te.indexOf(D))return D;return null}function _addRunner(D,te){const he=_assertClassBrand(Re,this,_getNextConfig).call(this,D);if(null==he)return null;const ye={config:he,result:null,didBump:!1,perform:null,staller:null},be=getTime();return ye.perform=(async()=>{try{he.requests++;const D=await this._translatePerform(he.provider,te);ye.result={result:D}}catch(D){he.errorResponses++,ye.result={error:D}}const D=getTime()-be;he._totalTime+=D,he.rollingDuration=.95*he.rollingDuration+.05*D,ye.perform=null})(),ye.staller=(async()=>{await function stall(D){return new Promise((te=>{setTimeout(te,D)}))}(he.stallTimeout),ye.staller=null})(),D.add(ye),ye}async function _initialSync(){let te=_classPrivateFieldGet2(Ie,this);if(!te){const he=[];_classPrivateFieldGet2(_e,this).forEach((D=>{he.push((async()=>{await async function waitForSync(D,te){for(;(D.blockNumber<0||D.blockNumber<te)&&(D._updateNumber||(D._updateNumber=(async()=>{try{const te=await D.provider.getBlockNumber();te>D.blockNumber&&(D.blockNumber=te)}catch(te){D.blockNumber=-2,D._lastFatalError=te,D._lastFatalErrorTimestamp=getTime()}D._updateNumber=null})()),await D._updateNumber,D.outOfSync++,!D._lastFatalError););}(D,0),D._lastFatalError||(D._network=await D.provider.getNetwork())})())})),_classPrivateFieldSet2(Ie,this,te=(async()=>{await Promise.all(he);let te=null;for(const he of _classPrivateFieldGet2(_e,this)){if(he._lastFatalError)continue;const ye=he._network;null==te?te=ye.chainId:ye.chainId!==te&&(0,D.assert)(!1,"cannot mix providers on different networks","UNSUPPORTED_OPERATION",{operation:"new FallbackProvider"})}})())}await te}async function _checkQuorum(te,he){const ye=[];for(const D of te)if(null!=D.result){const{tag:te,value:he}=normalizeResult(D.result);ye.push({tag:te,value:he,weight:D.config.weight})}if(!(ye.reduce(((D,te)=>D+te.weight),0)<this.quorum)){switch(he.method){case"getBlockNumber":{-2===_classPrivateFieldGet2(Pe,this)&&_classPrivateFieldSet2(Pe,this,Math.ceil((0,D.getNumber)(getMedian(this.quorum,_classPrivateFieldGet2(_e,this).filter((D=>!D._lastFatalError)).map((te=>({value:te.blockNumber,tag:(0,D.getNumber)(te.blockNumber).toString(),weight:te.weight})))))));const te=function getFuzzyMode(te,he){if(1===te)return(0,D.getNumber)(getMedian(te,he),"%internal");const ye=new Map,add=(D,te)=>{const he=ye.get(D)||{result:D,weight:0};he.weight+=te,ye.set(D,he)};for(const{weight:te,value:ye}of he){const he=(0,D.getNumber)(ye);add(he-1,te),add(he,te),add(he+1,te)}let be,ve=0;for(const{weight:D,result:he}of ye.values())D>=te&&(D>ve||null!=be&&D===ve&&he>be)&&(ve=D,be=he);return be}(this.quorum,ye);if(void 0===te)return;return te>_classPrivateFieldGet2(Pe,this)&&_classPrivateFieldSet2(Pe,this,te),_classPrivateFieldGet2(Pe,this)}case"getGasPrice":case"getPriorityFee":case"estimateGas":return getMedian(this.quorum,ye);case"getBlock":return"blockTag"in he&&"pending"===he.blockTag?getAnyResult(this.quorum,ye):checkQuorum(this.quorum,ye);case"call":case"chainId":case"getBalance":case"getTransactionCount":case"getCode":case"getStorage":case"getTransaction":case"getTransactionReceipt":case"getLogs":return checkQuorum(this.quorum,ye);case"broadcastTransaction":return getAnyResult(this.quorum,ye)}(0,D.assert)(!1,"unsupported method","UNSUPPORTED_OPERATION",{operation:`_perform(${stringify(he.method)})`})}}async function _waitForQuorum(te,he){if(0===te.size)throw new Error("no runners?!");const ye=[];let be=0;for(const D of te)D.perform&&ye.push(D.perform),D.staller?ye.push(D.staller):D.didBump||(D.didBump=!0,be++);const ve=await _assertClassBrand(Re,this,_checkQuorum).call(this,te,he);if(void 0!==ve){if(ve instanceof Error)throw ve;return ve}for(let D=0;D<be;D++)_assertClassBrand(Re,this,_addRunner).call(this,te,he);return(0,D.assert)(ye.length>0,"quorum not met","SERVER_ERROR",{request:"%sub-requests",info:{request:he,results:Array.from(te).map((D=>stringify(D.result)))}}),await Promise.race(ye),await _assertClassBrand(Re,this,_waitForQuorum).call(this,te,he)}return EF.FallbackProvider=FallbackProvider,EF}var PF,SF={};var CF,IF={};var RF,kF={};function requireProviderPocket(){if(RF)return kF;RF=1,Object.defineProperty(kF,"__esModule",{value:!0}),kF.PocketProvider=void 0;const D=requireUtils$4(),te=requireCommunity(),he=requireNetwork(),ye=requireProviderJsonrpc(),be="62e1ad51b37b8e00394bda3b";class PocketProvider extends ye.JsonRpcProvider{constructor(te,ye,ve){null==te&&(te="mainnet");const we=he.Network.from(te);null==ye&&(ye=be),null==ve&&(ve=null);const _e={staticNetwork:we};super(PocketProvider.getRequest(we,ye,ve),we,_e),_defineProperty(this,"applicationId",void 0),_defineProperty(this,"applicationSecret",void 0),(0,D.defineProperties)(this,{applicationId:ye,applicationSecret:ve})}_getProvider(D){try{return new PocketProvider(D,this.applicationId,this.applicationSecret)}catch(D){}return super._getProvider(D)}static getRequest(he,ye,ve){null==ye&&(ye=be);const we=new D.FetchRequest(`https://${function getHost(te){switch(te){case"mainnet":return"eth-mainnet.gateway.pokt.network";case"goerli":return"eth-goerli.gateway.pokt.network";case"matic":return"poly-mainnet.gateway.pokt.network";case"matic-mumbai":return"polygon-mumbai-rpc.gateway.pokt.network"}(0,D.assertArgument)(!1,"unsupported network","network",te)}(he.name)}/v1/lb/${ye}`);return we.allowGzip=!0,ve&&we.setCredentials("",ve),ye===be&&(we.retryFunc=async(D,he,ye)=>((0,te.showThrottleMessage)("PocketProvider"),!0)),we}isCommunityResource(){return this.applicationId===be}}return kF.PocketProvider=PocketProvider,kF}var OF,xF,NF={};function requireProviders(){return xF||(xF=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.SocketEventSubscriber=D.SocketPendingSubscriber=D.SocketBlockSubscriber=D.SocketSubscriber=D.WebSocketProvider=D.SocketProvider=D.IpcSocketProvider=D.QuickNodeProvider=D.PocketProvider=D.InfuraWebSocketProvider=D.InfuraProvider=D.EtherscanPlugin=D.EtherscanProvider=D.CloudflareProvider=D.AnkrProvider=D.AlchemyProvider=D.BrowserProvider=D.JsonRpcSigner=D.JsonRpcProvider=D.JsonRpcApiProvider=D.FallbackProvider=D.copyRequest=D.TransactionResponse=D.TransactionReceipt=D.Log=D.FeeData=D.Block=D.FetchUrlFeeDataNetworkPlugin=D.FeeDataNetworkPlugin=D.EnsPlugin=D.GasCostPlugin=D.NetworkPlugin=D.NonceManager=D.Network=D.MulticoinProviderPlugin=D.EnsResolver=D.getDefaultProvider=D.showThrottleMessage=D.VoidSigner=D.AbstractSigner=D.UnmanagedSubscriber=D.AbstractProvider=void 0;var te=requireAbstractProvider();Object.defineProperty(D,"AbstractProvider",{enumerable:!0,get:function(){return te.AbstractProvider}}),Object.defineProperty(D,"UnmanagedSubscriber",{enumerable:!0,get:function(){return te.UnmanagedSubscriber}});var he=requireAbstractSigner();Object.defineProperty(D,"AbstractSigner",{enumerable:!0,get:function(){return he.AbstractSigner}}),Object.defineProperty(D,"VoidSigner",{enumerable:!0,get:function(){return he.VoidSigner}});var ye=requireCommunity();Object.defineProperty(D,"showThrottleMessage",{enumerable:!0,get:function(){return ye.showThrottleMessage}});var be=function requireDefaultProvider(){if(AF)return rF;AF=1,Object.defineProperty(rF,"__esModule",{value:!0}),rF.getDefaultProvider=void 0;const D=requireUtils$4(),te=requireProviderAnkr(),he=requireProviderAlchemy(),ye=requireProviderCloudflare(),be=requireProviderEtherscan(),ve=requireProviderInfura(),we=requireProviderQuicknode(),_e=requireProviderFallback(),Pe=requireProviderJsonrpc(),Ie=requireNetwork(),Re=requireProviderWebsocket(),ke="goerli kovan sepolia classicKotti optimism-goerli arbitrum-goerli matic-mumbai bnbt".split(" ");return rF.getDefaultProvider=function getDefaultProvider(Oe,xe){null==xe&&(xe={});const allowService=D=>"-"!==xe[D]&&("string"==typeof xe.exclusive?D===xe.exclusive:!Array.isArray(xe.exclusive)||-1!==xe.exclusive.indexOf(D));if("string"==typeof Oe&&Oe.match(/^https?:/))return new Pe.JsonRpcProvider(Oe);if("string"==typeof Oe&&Oe.match(/^wss?:/)||function isWebSocketLike(D){return D&&"function"==typeof D.send&&"function"==typeof D.close}(Oe))return new Re.WebSocketProvider(Oe);let Be=null;try{Be=Ie.Network.from(Oe)}catch(D){}const Fe=[];if(allowService("publicPolygon")&&Be&&"matic"===Be.name&&Fe.push(new Pe.JsonRpcProvider("https://polygon-rpc.com/",Be,{staticNetwork:Be})),allowService("alchemy"))try{Fe.push(new he.AlchemyProvider(Oe,xe.alchemy))}catch(D){}if(allowService("ankr")&&null!=xe.ankr)try{Fe.push(new te.AnkrProvider(Oe,xe.ankr))}catch(D){}if(allowService("cloudflare"))try{Fe.push(new ye.CloudflareProvider(Oe))}catch(D){}if(allowService("etherscan"))try{Fe.push(new be.EtherscanProvider(Oe,xe.etherscan))}catch(D){}if(allowService("infura"))try{let D,te=xe.infura;"object"==typeof te&&(D=te.projectSecret,te=te.projectId),Fe.push(new ve.InfuraProvider(Oe,te,D))}catch(D){}if(allowService("quicknode"))try{let D=xe.quicknode;Fe.push(new we.QuickNodeProvider(Oe,D))}catch(D){}if((0,D.assert)(Fe.length,"unsupported default network","UNSUPPORTED_OPERATION",{operation:"getDefaultProvider"}),1===Fe.length)return Fe[0];let De=Math.floor(Fe.length/2);return De>2&&(De=2),Be&&-1!==ke.indexOf(Be.name)&&(De=1),xe&&xe.quorum&&(De=xe.quorum),new _e.FallbackProvider(Fe,void 0,{quorum:De})},rF}();Object.defineProperty(D,"getDefaultProvider",{enumerable:!0,get:function(){return be.getDefaultProvider}});var ve=requireEnsResolver();Object.defineProperty(D,"EnsResolver",{enumerable:!0,get:function(){return ve.EnsResolver}}),Object.defineProperty(D,"MulticoinProviderPlugin",{enumerable:!0,get:function(){return ve.MulticoinProviderPlugin}});var we=requireNetwork();Object.defineProperty(D,"Network",{enumerable:!0,get:function(){return we.Network}});var _e=function requireSignerNoncemanager(){if(PF)return SF;PF=1,Object.defineProperty(SF,"__esModule",{value:!0}),SF.NonceManager=void 0;const D=requireUtils$4(),te=requireAbstractSigner();var he=new WeakMap,ye=new WeakMap;class NonceManager extends te.AbstractSigner{constructor(te){super(te.provider),_defineProperty(this,"signer",void 0),_classPrivateFieldInitSpec(this,he,void 0),_classPrivateFieldInitSpec(this,ye,void 0),(0,D.defineProperties)(this,{signer:te}),_classPrivateFieldSet2(he,this,null),_classPrivateFieldSet2(ye,this,0)}async getAddress(){return this.signer.getAddress()}connect(D){return new NonceManager(this.signer.connect(D))}async getNonce(D){if("pending"===D){null==_classPrivateFieldGet2(he,this)&&_classPrivateFieldSet2(he,this,super.getNonce("pending"));const D=_classPrivateFieldGet2(ye,this);return await _classPrivateFieldGet2(he,this)+D}return super.getNonce(D)}increment(){var D;_classPrivateFieldSet2(ye,this,(D=_classPrivateFieldGet2(ye,this),++D))}reset(){_classPrivateFieldSet2(ye,this,0),_classPrivateFieldSet2(he,this,null)}async sendTransaction(D){const te=this.getNonce("pending");return this.increment(),(D=await this.signer.populateTransaction(D)).nonce=await te,await this.signer.sendTransaction(D)}signTransaction(D){return this.signer.signTransaction(D)}signMessage(D){return this.signer.signMessage(D)}signTypedData(D,te,he){return this.signer.signTypedData(D,te,he)}}return SF.NonceManager=NonceManager,SF}();Object.defineProperty(D,"NonceManager",{enumerable:!0,get:function(){return _e.NonceManager}});var Pe=requirePluginsNetwork();Object.defineProperty(D,"NetworkPlugin",{enumerable:!0,get:function(){return Pe.NetworkPlugin}}),Object.defineProperty(D,"GasCostPlugin",{enumerable:!0,get:function(){return Pe.GasCostPlugin}}),Object.defineProperty(D,"EnsPlugin",{enumerable:!0,get:function(){return Pe.EnsPlugin}}),Object.defineProperty(D,"FeeDataNetworkPlugin",{enumerable:!0,get:function(){return Pe.FeeDataNetworkPlugin}}),Object.defineProperty(D,"FetchUrlFeeDataNetworkPlugin",{enumerable:!0,get:function(){return Pe.FetchUrlFeeDataNetworkPlugin}});var Ie=requireProvider();Object.defineProperty(D,"Block",{enumerable:!0,get:function(){return Ie.Block}}),Object.defineProperty(D,"FeeData",{enumerable:!0,get:function(){return Ie.FeeData}}),Object.defineProperty(D,"Log",{enumerable:!0,get:function(){return Ie.Log}}),Object.defineProperty(D,"TransactionReceipt",{enumerable:!0,get:function(){return Ie.TransactionReceipt}}),Object.defineProperty(D,"TransactionResponse",{enumerable:!0,get:function(){return Ie.TransactionResponse}}),Object.defineProperty(D,"copyRequest",{enumerable:!0,get:function(){return Ie.copyRequest}});var Re=requireProviderFallback();Object.defineProperty(D,"FallbackProvider",{enumerable:!0,get:function(){return Re.FallbackProvider}});var ke=requireProviderJsonrpc();Object.defineProperty(D,"JsonRpcApiProvider",{enumerable:!0,get:function(){return ke.JsonRpcApiProvider}}),Object.defineProperty(D,"JsonRpcProvider",{enumerable:!0,get:function(){return ke.JsonRpcProvider}}),Object.defineProperty(D,"JsonRpcSigner",{enumerable:!0,get:function(){return ke.JsonRpcSigner}});var Oe=function requireProviderBrowser(){if(CF)return IF;CF=1,Object.defineProperty(IF,"__esModule",{value:!0}),IF.BrowserProvider=void 0;const D=requireUtils$4(),te=requireProviderJsonrpc();var he=new WeakMap;class BrowserProvider extends te.JsonRpcApiPollingProvider{constructor(te,ye){(0,D.assertArgument)(te&&te.request,"invalid EIP-1193 provider","ethereum",te),super(ye,{batchMaxCount:1}),_classPrivateFieldInitSpec(this,he,void 0),_classPrivateFieldSet2(he,this,(async(D,he)=>{const ye={method:D,params:he};this.emit("debug",{action:"sendEip1193Request",payload:ye});try{const D=await te.request(ye);return this.emit("debug",{action:"receiveEip1193Result",result:D}),D}catch(D){const te=new Error(D.message);throw te.code=D.code,te.data=D.data,te.payload=ye,this.emit("debug",{action:"receiveEip1193Error",error:te}),te}}))}async send(D,te){return await this._start(),await super.send(D,te)}async _send(te){(0,D.assertArgument)(!Array.isArray(te),"EIP-1193 does not support batch request","payload",te);try{const D=await _classPrivateFieldGet2(he,this).call(this,te.method,te.params||[]);return[{id:te.id,result:D}]}catch(D){return[{id:te.id,error:{code:D.code,data:D.data,message:D.message}}]}}getRpcError(D,te){switch((te=JSON.parse(JSON.stringify(te))).error.code||-1){case 4001:te.error.message=`ethers-user-denied: ${te.error.message}`;break;case 4200:te.error.message=`ethers-unsupported: ${te.error.message}`}return super.getRpcError(D,te)}async hasSigner(D){null==D&&(D=0);const te=await this.send("eth_accounts",[]);return"number"==typeof D?te.length>D:(D=D.toLowerCase(),0!==te.filter((te=>te.toLowerCase()===D)).length)}async getSigner(D){if(null==D&&(D=0),!await this.hasSigner(D))try{await _classPrivateFieldGet2(he,this).call(this,"eth_requestAccounts",[])}catch(D){const te=D.payload;throw this.getRpcError(te,{id:te.id,error:D})}return await super.getSigner(D)}}return IF.BrowserProvider=BrowserProvider,IF}();Object.defineProperty(D,"BrowserProvider",{enumerable:!0,get:function(){return Oe.BrowserProvider}});var xe=requireProviderAlchemy();Object.defineProperty(D,"AlchemyProvider",{enumerable:!0,get:function(){return xe.AlchemyProvider}});var Be=requireProviderAnkr();Object.defineProperty(D,"AnkrProvider",{enumerable:!0,get:function(){return Be.AnkrProvider}});var Fe=requireProviderCloudflare();Object.defineProperty(D,"CloudflareProvider",{enumerable:!0,get:function(){return Fe.CloudflareProvider}});var De=requireProviderEtherscan();Object.defineProperty(D,"EtherscanProvider",{enumerable:!0,get:function(){return De.EtherscanProvider}}),Object.defineProperty(D,"EtherscanPlugin",{enumerable:!0,get:function(){return De.EtherscanPlugin}});var Le=requireProviderInfura();Object.defineProperty(D,"InfuraProvider",{enumerable:!0,get:function(){return Le.InfuraProvider}}),Object.defineProperty(D,"InfuraWebSocketProvider",{enumerable:!0,get:function(){return Le.InfuraWebSocketProvider}});var Ue=requireProviderPocket();Object.defineProperty(D,"PocketProvider",{enumerable:!0,get:function(){return Ue.PocketProvider}});var qe=requireProviderQuicknode();Object.defineProperty(D,"QuickNodeProvider",{enumerable:!0,get:function(){return qe.QuickNodeProvider}});const je=function requireProviderIpcsocketBrowser(){return OF||(OF=1,Object.defineProperty(NF,"__esModule",{value:!0}),NF.IpcSocketProvider=void 0,NF.IpcSocketProvider=void 0),NF}();Object.defineProperty(D,"IpcSocketProvider",{enumerable:!0,get:function(){return je.IpcSocketProvider}});var Je=requireProviderSocket();Object.defineProperty(D,"SocketProvider",{enumerable:!0,get:function(){return Je.SocketProvider}});var et=requireProviderWebsocket();Object.defineProperty(D,"WebSocketProvider",{enumerable:!0,get:function(){return et.WebSocketProvider}});var tt=requireProviderSocket();Object.defineProperty(D,"SocketSubscriber",{enumerable:!0,get:function(){return tt.SocketSubscriber}}),Object.defineProperty(D,"SocketBlockSubscriber",{enumerable:!0,get:function(){return tt.SocketBlockSubscriber}}),Object.defineProperty(D,"SocketPendingSubscriber",{enumerable:!0,get:function(){return tt.SocketPendingSubscriber}}),Object.defineProperty(D,"SocketEventSubscriber",{enumerable:!0,get:function(){return tt.SocketEventSubscriber}})}(DB)),DB}var MF,BF={},DF={};function requireBaseWallet(){if(MF)return DF;MF=1,Object.defineProperty(DF,"__esModule",{value:!0}),DF.BaseWallet=void 0;const D=requireAddress$2(),te=requireHash(),he=requireProviders(),ye=requireTransaction(),be=requireUtils$4();var ve=new WeakMap;class BaseWallet extends he.AbstractSigner{constructor(D,te){super(te),_defineProperty(this,"address",void 0),_classPrivateFieldInitSpec(this,ve,void 0),(0,be.assertArgument)(D&&"function"==typeof D.sign,"invalid private key","privateKey","[ REDACTED ]"),_classPrivateFieldSet2(ve,this,D);const he=(0,ye.computeAddress)(this.signingKey.publicKey);(0,be.defineProperties)(this,{address:he})}get signingKey(){return _classPrivateFieldGet2(ve,this)}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(D){return new BaseWallet(_classPrivateFieldGet2(ve,this),D)}async signTransaction(te){const{to:he,from:ve}=await(0,be.resolveProperties)({to:te.to?(0,D.resolveAddress)(te.to,this.provider):void 0,from:te.from?(0,D.resolveAddress)(te.from,this.provider):void 0});null!=he&&(te.to=he),null!=ve&&(te.from=ve),null!=te.from&&((0,be.assertArgument)((0,D.getAddress)(te.from)===this.address,"transaction from address mismatch","tx.from",te.from),delete te.from);const we=ye.Transaction.from(te);return we.signature=this.signingKey.sign(we.unsignedHash),we.serialized}async signMessage(D){return this.signMessageSync(D)}signMessageSync(D){return this.signingKey.sign((0,te.hashMessage)(D)).serialized}async signTypedData(D,he,ye){const ve=await te.TypedDataEncoder.resolveNames(D,he,ye,(async D=>{(0,be.assert)(null!=this.provider,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:D}});const te=await this.provider.resolveName(D);return(0,be.assert)(null!=te,"unconfigured ENS name","UNCONFIGURED_NAME",{value:D}),te}));return this.signingKey.sign(te.TypedDataEncoder.hash(ve.domain,he,ve.value)).serialized}}return DF.BaseWallet=BaseWallet,DF}var LF,UF={},$F={},qF={},GF={};function requireDecodeOwl(){if(LF)return GF;LF=1,Object.defineProperty(GF,"__esModule",{value:!0}),GF.decodeOwl=GF.decode=void 0;const D=requireUtils$4(),te=" !#$%&'()*+,-./<=>?@[]^_`{|}~",he=/^[a-z]*$/i;function unfold(D,te){let ye=97;return D.reduce(((D,be)=>(be===te?ye++:be.match(he)?D.push(String.fromCharCode(ye)+be):(ye=97,D.push(be)),D)),[])}function decode(D,he){for(let ye=te.length-1;ye>=0;ye--)D=D.split(te[ye]).join(he.substring(2*ye,2*ye+2));const ye=[],be=D.replace(/(:|([0-9])|([A-Z][a-z]*))/g,((D,te,he,be)=>{if(he)for(let D=parseInt(he);D>=0;D--)ye.push(";");else ye.push(te.toLowerCase());return""}));if(be)throw new Error(`leftovers: ${JSON.stringify(be)}`);return unfold(unfold(ye,";"),":")}return GF.decode=decode,GF.decodeOwl=function decodeOwl$1(he){return(0,D.assertArgument)("0"===he[0],"unsupported auwl data","data",he),decode(he.substring(1+2*te.length),he.substring(1,1+2*te.length))},GF}var jF,HF,zF,WF={};function requireWordlist(){if(jF)return WF;jF=1,Object.defineProperty(WF,"__esModule",{value:!0}),WF.Wordlist=void 0;const D=requireUtils$4();return WF.Wordlist=class Wordlist{constructor(te){_defineProperty(this,"locale",void 0),(0,D.defineProperties)(this,{locale:te})}split(D){return D.toLowerCase().split(/\s+/g)}join(D){return D.join(" ")}},WF}function requireWordlistOwl(){if(HF)return qF;HF=1,Object.defineProperty(qF,"__esModule",{value:!0}),qF.WordlistOwl=void 0;const D=requireHash(),te=requireUtils$4(),he=requireDecodeOwl(),ye=requireWordlist();var be=new WeakMap,ve=new WeakMap,we=new WeakMap,_e=new WeakSet;class WordlistOwl extends ye.Wordlist{constructor(D,te,he){super(D),_classPrivateMethodInitSpec(this,_e),_classPrivateFieldInitSpec(this,be,void 0),_classPrivateFieldInitSpec(this,ve,void 0),_classPrivateFieldInitSpec(this,we,void 0),_classPrivateFieldSet2(be,this,te),_classPrivateFieldSet2(ve,this,he),_classPrivateFieldSet2(we,this,null)}get _data(){return _classPrivateFieldGet2(be,this)}_decodeWords(){return(0,he.decodeOwl)(_classPrivateFieldGet2(be,this))}getWord(D){const he=_assertClassBrand(_e,this,_loadWords).call(this);return(0,te.assertArgument)(D>=0&&D<he.length,`invalid word index: ${D}`,"index",D),he[D]}getWordIndex(D){return _assertClassBrand(_e,this,_loadWords).call(this).indexOf(D)}}function _loadWords(){if(null==_classPrivateFieldGet2(we,this)){const te=this._decodeWords();if((0,D.id)(te.join("\n")+"\n")!==_classPrivateFieldGet2(ve,this))throw new Error(`BIP39 Wordlist for ${this.locale} FAILED`);_classPrivateFieldSet2(we,this,te)}return _classPrivateFieldGet2(we,this)}return qF.WordlistOwl=WordlistOwl,qF}function requireLangEn(){if(zF)return $F;zF=1,Object.defineProperty($F,"__esModule",{value:!0}),$F.LangEn=void 0;const D=requireWordlistOwl();let te=null;class LangEn extends D.WordlistOwl{constructor(){super("en","0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO","0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60")}static wordlist(){return null==te&&(te=new LangEn),te}}return $F.LangEn=LangEn,$F}var VF,KF={};function requireMnemonic(){if(VF)return KF;VF=1,Object.defineProperty(KF,"__esModule",{value:!0}),KF.Mnemonic=void 0;const D=requireCrypto(),te=requireUtils$4(),he=requireLangEn();function getUpperMask(D){return(1<<D)-1<<8-D&255}function mnemonicToEntropy(ye,be){(0,te.assertNormalize)("NFKD"),null==be&&(be=he.LangEn.wordlist());const ve=be.split(ye);(0,te.assertArgument)(ve.length%3==0&&ve.length>=12&&ve.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");const we=new Uint8Array(Math.ceil(11*ve.length/8));let _e=0;for(let D=0;D<ve.length;D++){let he=be.getWordIndex(ve[D].normalize("NFKD"));(0,te.assertArgument)(he>=0,`invalid mnemonic word at index ${D}`,"mnemonic","[ REDACTED ]");for(let D=0;D<11;D++)he&1<<10-D&&(we[_e>>3]|=1<<7-_e%8),_e++}const Pe=32*ve.length/3,Ie=getUpperMask(ve.length/3),Re=(0,te.getBytes)((0,D.sha256)(we.slice(0,Pe/8)))[0]&Ie;return(0,te.assertArgument)(Re===(we[we.length-1]&Ie),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),(0,te.hexlify)(we.slice(0,Pe/8))}function entropyToMnemonic(ye,be){(0,te.assertArgument)(ye.length%4==0&&ye.length>=16&&ye.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),null==be&&(be=he.LangEn.wordlist());const ve=[0];let we=11;for(let D=0;D<ye.length;D++)we>8?(ve[ve.length-1]<<=8,ve[ve.length-1]|=ye[D],we-=8):(ve[ve.length-1]<<=we,ve[ve.length-1]|=ye[D]>>8-we,ve.push(ye[D]&((1<<8-we)-1&255)),we+=3);const _e=ye.length/4,Pe=parseInt((0,D.sha256)(ye).substring(2,4),16)&getUpperMask(_e);return ve[ve.length-1]<<=_e,ve[ve.length-1]|=Pe>>8-_e,be.join(ve.map((D=>be.getWord(D))))}const ye={};class Mnemonic{constructor(D,be,ve,we,_e){_defineProperty(this,"phrase",void 0),_defineProperty(this,"password",void 0),_defineProperty(this,"wordlist",void 0),_defineProperty(this,"entropy",void 0),null==we&&(we=""),null==_e&&(_e=he.LangEn.wordlist()),(0,te.assertPrivate)(D,ye,"Mnemonic"),(0,te.defineProperties)(this,{phrase:ve,password:we,wordlist:_e,entropy:be})}computeSeed(){const he=(0,te.toUtf8Bytes)("mnemonic"+this.password,"NFKD");return(0,D.pbkdf2)((0,te.toUtf8Bytes)(this.phrase,"NFKD"),he,2048,64,"sha512")}static fromPhrase(D,he,be){const ve=mnemonicToEntropy(D,be);return D=entropyToMnemonic((0,te.getBytes)(ve),be),new Mnemonic(ye,ve,D,he,be)}static fromEntropy(D,he,be){const ve=(0,te.getBytes)(D,"entropy"),we=entropyToMnemonic(ve,be);return new Mnemonic(ye,(0,te.hexlify)(ve),we,he,be)}static entropyToPhrase(D,he){return entropyToMnemonic((0,te.getBytes)(D,"entropy"),he)}static phraseToEntropy(D,te){return mnemonicToEntropy(D,te)}static isValidMnemonic(D,te){try{return mnemonicToEntropy(D,te),!0}catch(D){}return!1}}return KF.Mnemonic=Mnemonic,KF}var JF,XF={},QF={},ZF={};function requireAes(){if(JF)return ZF;JF=1;
/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */
var D,te,he,ye=rn&&rn.__classPrivateFieldGet||function(D,te,he,ye){if("a"===he&&!ye)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof te?D!==te||!ye:!te.has(D))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===he?ye:"a"===he?ye.call(D):ye?ye.value:te.get(D)},be=rn&&rn.__classPrivateFieldSet||function(D,te,he,ye,be){if("m"===ye)throw new TypeError("Private method is not writable");if("a"===ye&&!be)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof te?D!==te||!be:!te.has(D))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===ye?be.call(D,he):be?be.value=he:te.set(D,he),he};Object.defineProperty(ZF,"__esModule",{value:!0}),ZF.AES=void 0;const ve={16:10,24:12,32:14},we=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],_e=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],Pe=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],Ie=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],Re=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],ke=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],Oe=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],xe=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],Be=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],Fe=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239e3,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],De=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998e3,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],Le=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],Ue=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],qe=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239e3,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],je=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998e3,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function convertToInt32(D){const te=[];for(let he=0;he<D.length;he+=4)te.push(D[he]<<24|D[he+1]<<16|D[he+2]<<8|D[he+3]);return te}class AES{get key(){return ye(this,D,"f").slice()}constructor(Pe){if(D.set(this,void 0),te.set(this,void 0),he.set(this,void 0),!(this instanceof AES))throw Error("AES must be instanitated with `new`");be(this,D,new Uint8Array(Pe),"f");const Ie=ve[this.key.length];if(null==Ie)throw new TypeError("invalid key size (must be 16, 24 or 32 bytes)");be(this,he,[],"f"),be(this,te,[],"f");for(let D=0;D<=Ie;D++)ye(this,he,"f").push([0,0,0,0]),ye(this,te,"f").push([0,0,0,0]);const Re=4*(Ie+1),ke=this.key.length/4,Oe=convertToInt32(this.key);let xe;for(let D=0;D<ke;D++)xe=D>>2,ye(this,he,"f")[xe][D%4]=Oe[D],ye(this,te,"f")[Ie-xe][D%4]=Oe[D];let Be,Fe=0,De=ke;for(;De<Re;){if(Be=Oe[ke-1],Oe[0]^=_e[Be>>16&255]<<24^_e[Be>>8&255]<<16^_e[255&Be]<<8^_e[Be>>24&255]^we[Fe]<<24,Fe+=1,8!=ke)for(let D=1;D<ke;D++)Oe[D]^=Oe[D-1];else{for(let D=1;D<ke/2;D++)Oe[D]^=Oe[D-1];Be=Oe[ke/2-1],Oe[ke/2]^=_e[255&Be]^_e[Be>>8&255]<<8^_e[Be>>16&255]<<16^_e[Be>>24&255]<<24;for(let D=ke/2+1;D<ke;D++)Oe[D]^=Oe[D-1]}let D,be,ve=0;for(;ve<ke&&De<Re;)D=De>>2,be=De%4,ye(this,he,"f")[D][be]=Oe[ve],ye(this,te,"f")[Ie-D][be]=Oe[ve++],De++}for(let D=1;D<Ie;D++)for(let he=0;he<4;he++)Be=ye(this,te,"f")[D][he],ye(this,te,"f")[D][he]=Le[Be>>24&255]^Ue[Be>>16&255]^qe[Be>>8&255]^je[255&Be]}encrypt(D){if(16!=D.length)throw new TypeError("invalid plaintext size (must be 16 bytes)");const te=ye(this,he,"f").length-1,be=[0,0,0,0];let ve=convertToInt32(D);for(let D=0;D<4;D++)ve[D]^=ye(this,he,"f")[0][D];for(let D=1;D<te;D++){for(let te=0;te<4;te++)be[te]=Ie[ve[te]>>24&255]^Re[ve[(te+1)%4]>>16&255]^ke[ve[(te+2)%4]>>8&255]^Oe[255&ve[(te+3)%4]]^ye(this,he,"f")[D][te];ve=be.slice()}const we=new Uint8Array(16);let Pe=0;for(let D=0;D<4;D++)Pe=ye(this,he,"f")[te][D],we[4*D]=255&(_e[ve[D]>>24&255]^Pe>>24),we[4*D+1]=255&(_e[ve[(D+1)%4]>>16&255]^Pe>>16),we[4*D+2]=255&(_e[ve[(D+2)%4]>>8&255]^Pe>>8),we[4*D+3]=255&(_e[255&ve[(D+3)%4]]^Pe);return we}decrypt(D){if(16!=D.length)throw new TypeError("invalid ciphertext size (must be 16 bytes)");const he=ye(this,te,"f").length-1,be=[0,0,0,0];let ve=convertToInt32(D);for(let D=0;D<4;D++)ve[D]^=ye(this,te,"f")[0][D];for(let D=1;D<he;D++){for(let he=0;he<4;he++)be[he]=xe[ve[he]>>24&255]^Be[ve[(he+3)%4]>>16&255]^Fe[ve[(he+2)%4]>>8&255]^De[255&ve[(he+1)%4]]^ye(this,te,"f")[D][he];ve=be.slice()}const we=new Uint8Array(16);let _e=0;for(let D=0;D<4;D++)_e=ye(this,te,"f")[he][D],we[4*D]=255&(Pe[ve[D]>>24&255]^_e>>24),we[4*D+1]=255&(Pe[ve[(D+3)%4]>>16&255]^_e>>16),we[4*D+2]=255&(Pe[ve[(D+2)%4]>>8&255]^_e>>8),we[4*D+3]=255&(Pe[255&ve[(D+1)%4]]^_e);return we}}return ZF.AES=AES,D=new WeakMap,te=new WeakMap,he=new WeakMap,ZF}var YF,eD={};function requireMode(){if(YF)return eD;YF=1,Object.defineProperty(eD,"__esModule",{value:!0}),eD.ModeOfOperation=void 0;const D=requireAes();return eD.ModeOfOperation=class ModeOfOperation{constructor(te,he,ye){if(ye&&!(this instanceof ye))throw new Error(`${te} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new D.AES(he)},name:{enumerable:!0,value:te}})}},eD}var tD,rD={};var nD,aD={};var iD,sD={};var oD,cD={};var dD,uD={};var fD,lD,pD={};function requireLib_commonjs(){return lD||(lD=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.pkcs7Strip=D.pkcs7Pad=D.OFB=D.ECB=D.CTR=D.CFB=D.CBC=D.ModeOfOperation=D.AES=void 0;var te=requireAes();Object.defineProperty(D,"AES",{enumerable:!0,get:function(){return te.AES}});var he=requireMode();Object.defineProperty(D,"ModeOfOperation",{enumerable:!0,get:function(){return he.ModeOfOperation}});var ye=function requireModeCbc(){if(tD)return rD;tD=1;var D,te,he=rn&&rn.__classPrivateFieldSet||function(D,te,he,ye,be){if("m"===ye)throw new TypeError("Private method is not writable");if("a"===ye&&!be)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof te?D!==te||!be:!te.has(D))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===ye?be.call(D,he):be?be.value=he:te.set(D,he),he},ye=rn&&rn.__classPrivateFieldGet||function(D,te,he,ye){if("a"===he&&!ye)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof te?D!==te||!ye:!te.has(D))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===he?ye:"a"===he?ye.call(D):ye?ye.value:te.get(D)};Object.defineProperty(rD,"__esModule",{value:!0}),rD.CBC=void 0;const be=requireMode();class CBC extends be.ModeOfOperation{constructor(ye,be){if(super("ECC",ye,CBC),D.set(this,void 0),te.set(this,void 0),be){if(be.length%16)throw new TypeError("invalid iv size (must be 16 bytes)");he(this,D,new Uint8Array(be),"f")}else he(this,D,new Uint8Array(16),"f");he(this,te,this.iv,"f")}get iv(){return new Uint8Array(ye(this,D,"f"))}encrypt(D){if(D.length%16)throw new TypeError("invalid plaintext size (must be multiple of 16 bytes)");const be=new Uint8Array(D.length);for(let ve=0;ve<D.length;ve+=16){for(let he=0;he<16;he++)ye(this,te,"f")[he]^=D[ve+he];he(this,te,this.aes.encrypt(ye(this,te,"f")),"f"),be.set(ye(this,te,"f"),ve)}return be}decrypt(D){if(D.length%16)throw new TypeError("invalid ciphertext size (must be multiple of 16 bytes)");const he=new Uint8Array(D.length);for(let be=0;be<D.length;be+=16){const ve=this.aes.decrypt(D.subarray(be,be+16));for(let we=0;we<16;we++)he[be+we]=ve[we]^ye(this,te,"f")[we],ye(this,te,"f")[we]=D[be+we]}return he}}return rD.CBC=CBC,D=new WeakMap,te=new WeakMap,rD}();Object.defineProperty(D,"CBC",{enumerable:!0,get:function(){return ye.CBC}});var be=function requireModeCfb(){if(nD)return aD;nD=1;var D,te,he,ye,be=rn&&rn.__classPrivateFieldSet||function(D,te,he,ye,be){if("m"===ye)throw new TypeError("Private method is not writable");if("a"===ye&&!be)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof te?D!==te||!be:!te.has(D))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===ye?be.call(D,he):be?be.value=he:te.set(D,he),he},ve=rn&&rn.__classPrivateFieldGet||function(D,te,he,ye){if("a"===he&&!ye)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof te?D!==te||!ye:!te.has(D))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===he?ye:"a"===he?ye.call(D):ye?ye.value:te.get(D)};Object.defineProperty(aD,"__esModule",{value:!0}),aD.CFB=void 0;const we=requireMode();class CFB extends we.ModeOfOperation{constructor(ye,ve,we=8){if(super("CFB",ye,CFB),D.add(this),te.set(this,void 0),he.set(this,void 0),!Number.isInteger(we)||we%8)throw new TypeError("invalid segmentSize");if(Object.defineProperties(this,{segmentSize:{enumerable:!0,value:we}}),ve){if(ve.length%16)throw new TypeError("invalid iv size (must be 16 bytes)");be(this,te,new Uint8Array(ve),"f")}else be(this,te,new Uint8Array(16),"f");be(this,he,this.iv,"f")}get iv(){return new Uint8Array(ve(this,te,"f"))}encrypt(te){if(8*te.length%this.segmentSize)throw new TypeError("invalid plaintext size (must be multiple of segmentSize bytes)");const be=this.segmentSize/8,we=new Uint8Array(te);for(let te=0;te<we.length;te+=be){const _e=this.aes.encrypt(ve(this,he,"f"));for(let D=0;D<be;D++)we[te+D]^=_e[D];ve(this,D,"m",ye).call(this,we.subarray(te))}return we}decrypt(te){if(8*te.length%this.segmentSize)throw new TypeError("invalid ciphertext size (must be multiple of segmentSize bytes)");const be=this.segmentSize/8,we=new Uint8Array(te);for(let _e=0;_e<we.length;_e+=be){const Pe=this.aes.encrypt(ve(this,he,"f"));for(let D=0;D<be;D++)we[_e+D]^=Pe[D];ve(this,D,"m",ye).call(this,te.subarray(_e))}return we}}return aD.CFB=CFB,te=new WeakMap,he=new WeakMap,D=new WeakSet,ye=function _CFB_shift(D){const te=this.segmentSize/8;ve(this,he,"f").set(ve(this,he,"f").subarray(te)),ve(this,he,"f").set(D.subarray(0,te),16-te)},aD}();Object.defineProperty(D,"CFB",{enumerable:!0,get:function(){return be.CFB}});var ve=function requireModeCtr(){if(iD)return sD;iD=1;var D,te,he,ye=rn&&rn.__classPrivateFieldSet||function(D,te,he,ye,be){if("m"===ye)throw new TypeError("Private method is not writable");if("a"===ye&&!be)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof te?D!==te||!be:!te.has(D))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===ye?be.call(D,he):be?be.value=he:te.set(D,he),he},be=rn&&rn.__classPrivateFieldGet||function(D,te,he,ye){if("a"===he&&!ye)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof te?D!==te||!ye:!te.has(D))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===he?ye:"a"===he?ye.call(D):ye?ye.value:te.get(D)};Object.defineProperty(sD,"__esModule",{value:!0}),sD.CTR=void 0;const ve=requireMode();class CTR extends ve.ModeOfOperation{constructor(ve,we){super("CTR",ve,CTR),D.set(this,void 0),te.set(this,void 0),he.set(this,void 0),ye(this,he,new Uint8Array(16),"f"),be(this,he,"f").fill(0),ye(this,D,be(this,he,"f"),"f"),ye(this,te,16,"f"),null==we&&(we=1),"number"==typeof we?this.setCounterValue(we):this.setCounterBytes(we)}get counter(){return new Uint8Array(be(this,he,"f"))}setCounterValue(D){if(!Number.isInteger(D)||D<0||D>Number.MAX_SAFE_INTEGER)throw new TypeError("invalid counter initial integer value");for(let te=15;te>=0;--te)be(this,he,"f")[te]=D%256,D=Math.floor(D/256)}setCounterBytes(D){if(16!==D.length)throw new TypeError("invalid counter initial Uint8Array value length");be(this,he,"f").set(D)}increment(){for(let D=15;D>=0;D--){if(255!==be(this,he,"f")[D]){be(this,he,"f")[D]++;break}be(this,he,"f")[D]=0}}encrypt(ve){var we,_e;const Pe=new Uint8Array(ve);for(let ve=0;ve<Pe.length;ve++)16===be(this,te,"f")&&(ye(this,D,this.aes.encrypt(be(this,he,"f")),"f"),ye(this,te,0,"f"),this.increment()),Pe[ve]^=be(this,D,"f")[(ye(this,te,(_e=be(this,te,"f"),we=_e++,_e),"f"),we)];return Pe}decrypt(D){return this.encrypt(D)}}return sD.CTR=CTR,D=new WeakMap,te=new WeakMap,he=new WeakMap,sD}();Object.defineProperty(D,"CTR",{enumerable:!0,get:function(){return ve.CTR}});var we=function requireModeEcb(){if(oD)return cD;oD=1,Object.defineProperty(cD,"__esModule",{value:!0}),cD.ECB=void 0;const D=requireMode();class ECB extends D.ModeOfOperation{constructor(D){super("ECB",D,ECB)}encrypt(D){if(D.length%16)throw new TypeError("invalid plaintext size (must be multiple of 16 bytes)");const te=new Uint8Array(D.length);for(let he=0;he<D.length;he+=16)te.set(this.aes.encrypt(D.subarray(he,he+16)),he);return te}decrypt(D){if(D.length%16)throw new TypeError("invalid ciphertext size (must be multiple of 16 bytes)");const te=new Uint8Array(D.length);for(let he=0;he<D.length;he+=16)te.set(this.aes.decrypt(D.subarray(he,he+16)),he);return te}}return cD.ECB=ECB,cD}();Object.defineProperty(D,"ECB",{enumerable:!0,get:function(){return we.ECB}});var _e=function requireModeOfb(){if(dD)return uD;dD=1;var D,te,he,ye=rn&&rn.__classPrivateFieldSet||function(D,te,he,ye,be){if("m"===ye)throw new TypeError("Private method is not writable");if("a"===ye&&!be)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof te?D!==te||!be:!te.has(D))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===ye?be.call(D,he):be?be.value=he:te.set(D,he),he},be=rn&&rn.__classPrivateFieldGet||function(D,te,he,ye){if("a"===he&&!ye)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof te?D!==te||!ye:!te.has(D))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===he?ye:"a"===he?ye.call(D):ye?ye.value:te.get(D)};Object.defineProperty(uD,"__esModule",{value:!0}),uD.OFB=void 0;const ve=requireMode();class OFB extends ve.ModeOfOperation{constructor(be,ve){if(super("OFB",be,OFB),D.set(this,void 0),te.set(this,void 0),he.set(this,void 0),ve){if(ve.length%16)throw new TypeError("invalid iv size (must be 16 bytes)");ye(this,D,new Uint8Array(ve),"f")}else ye(this,D,new Uint8Array(16),"f");ye(this,te,this.iv,"f"),ye(this,he,16,"f")}get iv(){return new Uint8Array(be(this,D,"f"))}encrypt(D){var ve,we;if(D.length%16)throw new TypeError("invalid plaintext size (must be multiple of 16 bytes)");const _e=new Uint8Array(D);for(let D=0;D<_e.length;D++)16===be(this,he,"f")&&(ye(this,te,this.aes.encrypt(be(this,te,"f")),"f"),ye(this,he,0,"f")),_e[D]^=be(this,te,"f")[(ye(this,he,(we=be(this,he,"f"),ve=we++,we),"f"),ve)];return _e}decrypt(D){if(D.length%16)throw new TypeError("invalid ciphertext size (must be multiple of 16 bytes)");return this.encrypt(D)}}return uD.OFB=OFB,D=new WeakMap,te=new WeakMap,he=new WeakMap,uD}();Object.defineProperty(D,"OFB",{enumerable:!0,get:function(){return _e.OFB}});var Pe=function requirePadding(){return fD||(fD=1,Object.defineProperty(pD,"__esModule",{value:!0}),pD.pkcs7Strip=pD.pkcs7Pad=void 0,pD.pkcs7Pad=function pkcs7Pad(D){const te=16-D.length%16,he=new Uint8Array(D.length+te);he.set(D);for(let ye=D.length;ye<he.length;ye++)he[ye]=te;return he},pD.pkcs7Strip=function pkcs7Strip(D){if(D.length<16)throw new TypeError("PKCS#7 invalid length");const te=D[D.length-1];if(te>16)throw new TypeError("PKCS#7 padding byte out of range");const he=D.length-te;for(let ye=0;ye<te;ye++)if(D[he+ye]!==te)throw new TypeError("PKCS#7 invalid padding byte");return new Uint8Array(D.subarray(0,he))}),pD}();Object.defineProperty(D,"pkcs7Pad",{enumerable:!0,get:function(){return Pe.pkcs7Pad}}),Object.defineProperty(D,"pkcs7Strip",{enumerable:!0,get:function(){return Pe.pkcs7Strip}})}(QF)),QF}var hD,yD,mD,bD={};function requireUtils(){if(hD)return bD;hD=1,Object.defineProperty(bD,"__esModule",{value:!0}),bD.spelunk=bD.getPassword=bD.zpad=bD.looseArrayify=void 0;const D=requireUtils$4();function looseArrayify(te){return"string"!=typeof te||te.startsWith("0x")||(te="0x"+te),(0,D.getBytesCopy)(te)}return bD.looseArrayify=looseArrayify,bD.zpad=function zpad(D,te){for(D=String(D);D.length<te;)D="0"+D;return D},bD.getPassword=function getPassword(te){return"string"==typeof te?(0,D.toUtf8Bytes)(te,"NFKC"):(0,D.getBytesCopy)(te)},bD.spelunk=function spelunk(te,he){const ye=he.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);(0,D.assertArgument)(null!=ye,"invalid path","path",he);const be=ye[1],ve=ye[3],we="!"===ye[4];let _e=te;for(const D of be.toLowerCase().split(".")){if(Array.isArray(_e)){if(!D.match(/^[0-9]+$/))break;_e=_e[parseInt(D)]}else if("object"==typeof _e){let te=null;for(const he in _e)if(he.toLowerCase()===D){te=_e[he];break}_e=te}else _e=null;if(null==_e)break}if((0,D.assertArgument)(!we||null!=_e,"missing required value","path",be),ve&&null!=_e){if("int"===ve){if("string"==typeof _e&&_e.match(/^-?[0-9]+$/))return parseInt(_e);if(Number.isSafeInteger(_e))return _e}if("number"===ve&&"string"==typeof _e&&_e.match(/^-?[0-9.]*$/))return parseFloat(_e);if("data"===ve&&"string"==typeof _e)return looseArrayify(_e);if("array"===ve&&Array.isArray(_e))return _e;if(ve===typeof _e)return _e;(0,D.assertArgument)(!1,`wrong type found for ${ve} `,"path",be)}return _e},bD}function requireJsonKeystore(){if(yD)return XF;yD=1,Object.defineProperty(XF,"__esModule",{value:!0}),XF.encryptKeystoreJson=XF.encryptKeystoreJsonSync=XF.decryptKeystoreJson=XF.decryptKeystoreJsonSync=XF.isKeystoreJson=void 0;const D=requireLib_commonjs(),te=requireAddress$2(),he=requireCrypto(),ye=requireTransaction(),be=requireUtils$4(),ve=requireUtils(),we=require_version(),_e="m/44'/60'/0'/0/0";function getAccount(we,Pe){const Ie=(0,be.getBytes)(Pe),Re=(0,ve.spelunk)(we,"crypto.ciphertext:data!"),ke=(0,be.hexlify)((0,he.keccak256)((0,be.concat)([Ie.slice(16,32),Re]))).substring(2);(0,be.assertArgument)(ke===(0,ve.spelunk)(we,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");const Oe=function decrypt(te,he,ye){if("aes-128-ctr"===(0,ve.spelunk)(te,"crypto.cipher:string")){const we=(0,ve.spelunk)(te,"crypto.cipherparams.iv:data!"),_e=new D.CTR(he,we);return(0,be.hexlify)(_e.decrypt(ye))}(0,be.assert)(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}(we,Ie.slice(0,16),Re),xe=(0,ye.computeAddress)(Oe);if(we.address){let D=we.address.toLowerCase();D.startsWith("0x")||(D="0x"+D),(0,be.assertArgument)((0,te.getAddress)(D)===xe,"keystore address/privateKey mismatch","address",we.address)}const Be={address:xe,privateKey:Oe};if("0.1"===(0,ve.spelunk)(we,"x-ethers.version:string")){const te=Ie.slice(32,64),he=(0,ve.spelunk)(we,"x-ethers.mnemonicCiphertext:data!"),ye=(0,ve.spelunk)(we,"x-ethers.mnemonicCounter:data!"),Pe=new D.CTR(te,ye);Be.mnemonic={path:(0,ve.spelunk)(we,"x-ethers.path:string")||_e,locale:(0,ve.spelunk)(we,"x-ethers.locale:string")||"en",entropy:(0,be.hexlify)((0,be.getBytes)(Pe.decrypt(he)))}}return Be}function getDecryptKdfParams(D){const te=(0,ve.spelunk)(D,"crypto.kdf:string");if(te&&"string"==typeof te){if("scrypt"===te.toLowerCase()){const he=(0,ve.spelunk)(D,"crypto.kdfparams.salt:data!"),ye=(0,ve.spelunk)(D,"crypto.kdfparams.n:int!"),we=(0,ve.spelunk)(D,"crypto.kdfparams.r:int!"),_e=(0,ve.spelunk)(D,"crypto.kdfparams.p:int!");(0,be.assertArgument)(ye>0&&0==(ye&ye-1),"invalid kdf.N","kdf.N",ye),(0,be.assertArgument)(we>0&&_e>0,"invalid kdf","kdf",te);const Pe=(0,ve.spelunk)(D,"crypto.kdfparams.dklen:int!");return(0,be.assertArgument)(32===Pe,"invalid kdf.dklen","kdf.dflen",Pe),{name:"scrypt",salt:he,N:ye,r:we,p:_e,dkLen:64}}if("pbkdf2"===te.toLowerCase()){const te=(0,ve.spelunk)(D,"crypto.kdfparams.salt:data!"),he=(0,ve.spelunk)(D,"crypto.kdfparams.prf:string!"),ye=he.split("-").pop();(0,be.assertArgument)("sha256"===ye||"sha512"===ye,"invalid kdf.pdf","kdf.pdf",he);const we=(0,ve.spelunk)(D,"crypto.kdfparams.c:int!"),_e=(0,ve.spelunk)(D,"crypto.kdfparams.dklen:int!");return(0,be.assertArgument)(32===_e,"invalid kdf.dklen","kdf.dklen",_e),{name:"pbkdf2",salt:te,count:we,dkLen:_e,algorithm:ye}}}(0,be.assertArgument)(!1,"unsupported key-derivation function","kdf",te)}function stall(D){return new Promise((te=>{setTimeout((()=>{te()}),D)}))}function getEncryptKdfParams(D){const te=null!=D.salt?(0,be.getBytes)(D.salt,"options.salt"):(0,he.randomBytes)(32);let ye=1<<17,ve=8,we=1;return D.scrypt&&(D.scrypt.N&&(ye=D.scrypt.N),D.scrypt.r&&(ve=D.scrypt.r),D.scrypt.p&&(we=D.scrypt.p)),(0,be.assertArgument)("number"==typeof ye&&ye>0&&Number.isSafeInteger(ye)&&(BigInt(ye)&BigInt(ye-1))===BigInt(0),"invalid scrypt N parameter","options.N",ye),(0,be.assertArgument)("number"==typeof ve&&ve>0&&Number.isSafeInteger(ve),"invalid scrypt r parameter","options.r",ve),(0,be.assertArgument)("number"==typeof we&&we>0&&Number.isSafeInteger(we),"invalid scrypt p parameter","options.p",we),{name:"scrypt",dkLen:32,salt:te,N:ye,r:ve,p:we}}function _encryptKeystore(te,ye,Pe,Ie){const Re=(0,be.getBytes)(Pe.privateKey,"privateKey"),ke=null!=Ie.iv?(0,be.getBytes)(Ie.iv,"options.iv"):(0,he.randomBytes)(16);(0,be.assertArgument)(16===ke.length,"invalid options.iv length","options.iv",Ie.iv);const Oe=null!=Ie.uuid?(0,be.getBytes)(Ie.uuid,"options.uuid"):(0,he.randomBytes)(16);(0,be.assertArgument)(16===Oe.length,"invalid options.uuid length","options.uuid",Ie.iv);const xe=te.slice(0,16),Be=te.slice(16,32),Fe=new D.CTR(xe,ke),De=(0,be.getBytes)(Fe.encrypt(Re)),Le=(0,he.keccak256)((0,be.concat)([Be,De])),Ue={address:Pe.address.substring(2).toLowerCase(),id:(0,be.uuidV4)(Oe),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:(0,be.hexlify)(ke).substring(2)},ciphertext:(0,be.hexlify)(De).substring(2),kdf:"scrypt",kdfparams:{salt:(0,be.hexlify)(ye.salt).substring(2),n:ye.N,dklen:32,p:ye.p,r:ye.r},mac:Le.substring(2)}};if(Pe.mnemonic){const ye=null!=Ie.client?Ie.client:`ethers/${we.version}`,Re=Pe.mnemonic.path||_e,ke=Pe.mnemonic.locale||"en",Oe=te.slice(32,64),xe=(0,be.getBytes)(Pe.mnemonic.entropy,"account.mnemonic.entropy"),Be=(0,he.randomBytes)(16),Fe=new D.CTR(Oe,Be),De=(0,be.getBytes)(Fe.encrypt(xe)),Le=new Date,qe="UTC--"+(Le.getUTCFullYear()+"-"+(0,ve.zpad)(Le.getUTCMonth()+1,2)+"-"+(0,ve.zpad)(Le.getUTCDate(),2)+"T"+(0,ve.zpad)(Le.getUTCHours(),2)+"-"+(0,ve.zpad)(Le.getUTCMinutes(),2)+"-"+(0,ve.zpad)(Le.getUTCSeconds(),2)+".0Z")+"--"+Ue.address;Ue["x-ethers"]={client:ye,gethFilename:qe,path:Re,locale:ke,mnemonicCounter:(0,be.hexlify)(Be).substring(2),mnemonicCiphertext:(0,be.hexlify)(De).substring(2),version:"0.1"}}return JSON.stringify(Ue)}return XF.isKeystoreJson=function isKeystoreJson(D){try{const te=JSON.parse(D);if(3===(null!=te.version?parseInt(te.version):0))return!0}catch(D){}return!1},XF.decryptKeystoreJsonSync=function decryptKeystoreJsonSync(D,te){const ye=JSON.parse(D),we=(0,ve.getPassword)(te),_e=getDecryptKdfParams(ye);if("pbkdf2"===_e.name){const{salt:D,count:te,dkLen:be,algorithm:ve}=_e;return getAccount(ye,(0,he.pbkdf2)(we,D,te,be,ve))}(0,be.assert)("scrypt"===_e.name,"cannot be reached","UNKNOWN_ERROR",{params:_e});const{salt:Pe,N:Ie,r:Re,p:ke,dkLen:Oe}=_e;return getAccount(ye,(0,he.scryptSync)(we,Pe,Ie,Re,ke,Oe))},XF.decryptKeystoreJson=async function decryptKeystoreJson(D,te,ye){const we=JSON.parse(D),_e=(0,ve.getPassword)(te),Pe=getDecryptKdfParams(we);if("pbkdf2"===Pe.name){ye&&(ye(0),await stall(0));const{salt:D,count:te,dkLen:be,algorithm:ve}=Pe,Ie=(0,he.pbkdf2)(_e,D,te,be,ve);return ye&&(ye(1),await stall(0)),getAccount(we,Ie)}(0,be.assert)("scrypt"===Pe.name,"cannot be reached","UNKNOWN_ERROR",{params:Pe});const{salt:Ie,N:Re,r:ke,p:Oe,dkLen:xe}=Pe;return getAccount(we,await(0,he.scrypt)(_e,Ie,Re,ke,Oe,xe,ye))},XF.encryptKeystoreJsonSync=function encryptKeystoreJsonSync(D,te,ye){null==ye&&(ye={});const we=(0,ve.getPassword)(te),_e=getEncryptKdfParams(ye),Pe=(0,he.scryptSync)(we,_e.salt,_e.N,_e.r,_e.p,64);return _encryptKeystore((0,be.getBytes)(Pe),_e,D,ye)},XF.encryptKeystoreJson=async function encryptKeystoreJson(D,te,ye){null==ye&&(ye={});const we=(0,ve.getPassword)(te),_e=getEncryptKdfParams(ye),Pe=await(0,he.scrypt)(we,_e.salt,_e.N,_e.r,_e.p,64,ye.progressCallback);return _encryptKeystore((0,be.getBytes)(Pe),_e,D,ye)},XF}function requireHdwallet(){return mD||(mD=1,function(D,te){Object.defineProperty(D,"__esModule",{value:!0}),D.getIndexedAccountPath=D.getAccountPath=D.HDNodeVoidWallet=D.HDNodeWallet=D.defaultPath=void 0;const he=requireCrypto(),ye=requireProviders(),be=requireTransaction(),ve=requireUtils$4(),we=requireLangEn(),_e=requireBaseWallet(),Pe=requireMnemonic(),Ie=requireJsonKeystore();D.defaultPath="m/44'/60'/0'/0/0";const Re=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),ke=2147483648,Oe=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");function zpad(D,te){let he="";for(;D;)he="0123456789abcdef"[D%16]+he,D=Math.trunc(D/16);for(;he.length<2*te;)he="0"+he;return"0x"+he}function encodeBase58Check(D){const te=(0,ve.getBytes)(D),ye=(0,ve.dataSlice)((0,he.sha256)((0,he.sha256)(te)),0,4),be=(0,ve.concat)([te,ye]);return(0,ve.encodeBase58)(be)}const xe={};function ser_I(D,te,ye,be){const we=new Uint8Array(37);D&ke?((0,ve.assert)(null!=be,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),we.set((0,ve.getBytes)(be),1)):we.set((0,ve.getBytes)(ye));for(let te=24;te>=0;te-=8)we[33+(te>>3)]=D>>24-te&255;const _e=(0,ve.getBytes)((0,he.computeHmac)("sha512",te,we));return{IL:_e.slice(0,32),IR:_e.slice(32)}}function derivePath(D,te){const he=te.split("/");(0,ve.assertArgument)(he.length>0,"invalid path","path",te),"m"===he[0]&&((0,ve.assertArgument)(0===D.depth,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${D.depth}`,"path",te),he.shift());let ye=D;for(let D=0;D<he.length;D++){const te=he[D];if(te.match(/^[0-9]+'$/)){const he=parseInt(te.substring(0,te.length-1));(0,ve.assertArgument)(he<ke,"invalid path index",`path[${D}]`,te),ye=ye.deriveChild(ke+he)}else if(te.match(/^[0-9]+$/)){const he=parseInt(te);(0,ve.assertArgument)(he<ke,"invalid path index",`path[${D}]`,te),ye=ye.deriveChild(he)}else(0,ve.assertArgument)(!1,"invalid path component",`path[${D}]`,te)}return ye}var Be=new WeakSet;class HDNodeWallet extends _e.BaseWallet{constructor(D,te,ye,be,we,_e,Pe,Ie,Re){super(te,Re),_classPrivateMethodInitSpec(this,Be),_defineProperty(this,"publicKey",void 0),_defineProperty(this,"fingerprint",void 0),_defineProperty(this,"parentFingerprint",void 0),_defineProperty(this,"mnemonic",void 0),_defineProperty(this,"chainCode",void 0),_defineProperty(this,"path",void 0),_defineProperty(this,"index",void 0),_defineProperty(this,"depth",void 0),(0,ve.assertPrivate)(D,xe,"HDNodeWallet"),(0,ve.defineProperties)(this,{publicKey:te.compressedPublicKey});const ke=(0,ve.dataSlice)((0,he.ripemd160)((0,he.sha256)(this.publicKey)),0,4);(0,ve.defineProperties)(this,{parentFingerprint:ye,fingerprint:ke,chainCode:be,path:we,index:_e,depth:Pe}),(0,ve.defineProperties)(this,{mnemonic:Ie})}connect(D){return new HDNodeWallet(xe,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,D)}async encrypt(D,te){return await(0,Ie.encryptKeystoreJson)(_assertClassBrand(Be,this,_account).call(this),D,{progressCallback:te})}encryptSync(D){return(0,Ie.encryptKeystoreJsonSync)(_assertClassBrand(Be,this,_account).call(this),D)}get extendedKey(){return(0,ve.assert)(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),encodeBase58Check((0,ve.concat)(["0x0488ADE4",zpad(this.depth,1),this.parentFingerprint,zpad(this.index,4),this.chainCode,(0,ve.concat)(["0x00",this.privateKey])]))}hasPath(){return null!=this.path}neuter(){return new HDNodeVoidWallet(xe,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(D){const te=(0,ve.getNumber)(D,"index");(0,ve.assertArgument)(te<=4294967295,"invalid index","index",te);let ye=this.path;ye&&(ye+="/"+(2147483647&te),te&ke&&(ye+="'"));const{IR:be,IL:we}=ser_I(te,this.chainCode,this.publicKey,this.privateKey),_e=new he.SigningKey((0,ve.toBeHex)(((0,ve.toBigInt)(we)+BigInt(this.privateKey))%Oe,32));return new HDNodeWallet(xe,_e,this.fingerprint,(0,ve.hexlify)(be),ye,te,this.depth+1,this.mnemonic,this.provider)}derivePath(D){return derivePath(this,D)}static fromExtendedKey(D){const te=(0,ve.toBeArray)((0,ve.decodeBase58)(D));(0,ve.assertArgument)(82===te.length||encodeBase58Check(te.slice(0,78))===D,"invalid extended key","extendedKey","[ REDACTED ]");const ye=te[4],we=(0,ve.hexlify)(te.slice(5,9)),_e=parseInt((0,ve.hexlify)(te.slice(9,13)).substring(2),16),Pe=(0,ve.hexlify)(te.slice(13,45)),Ie=te.slice(45,78);switch((0,ve.hexlify)(te.slice(0,4))){case"0x0488b21e":case"0x043587cf":{const D=(0,ve.hexlify)(Ie);return new HDNodeVoidWallet(xe,(0,be.computeAddress)(D),D,we,Pe,null,_e,ye,null)}case"0x0488ade4":case"0x04358394 ":if(0!==Ie[0])break;return new HDNodeWallet(xe,new he.SigningKey(Ie.slice(1)),we,Pe,null,_e,ye,null,null)}(0,ve.assertArgument)(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(te,ye,be){null==te&&(te=""),null==ye&&(ye=D.defaultPath),null==be&&(be=we.LangEn.wordlist());const ve=Pe.Mnemonic.fromEntropy((0,he.randomBytes)(16),te,be);return _fromSeed.call(HDNodeWallet,ve.computeSeed(),ve).derivePath(ye)}static fromMnemonic(te,he){return he||(he=D.defaultPath),_fromSeed.call(HDNodeWallet,te.computeSeed(),te).derivePath(he)}static fromPhrase(te,he,ye,be){null==he&&(he=""),null==ye&&(ye=D.defaultPath),null==be&&(be=we.LangEn.wordlist());const ve=Pe.Mnemonic.fromPhrase(te,he,be);return _fromSeed.call(HDNodeWallet,ve.computeSeed(),ve).derivePath(ye)}static fromSeed(D){return _fromSeed.call(HDNodeWallet,D,null)}}function _account(){const D={address:this.address,privateKey:this.privateKey},te=this.mnemonic;return this.path&&te&&"en"===te.wordlist.locale&&""===te.password&&(D.mnemonic={path:this.path,locale:"en",entropy:te.entropy}),D}function _fromSeed(D,ye){(0,ve.assertArgument)((0,ve.isBytesLike)(D),"invalid seed","seed","[REDACTED]");const be=(0,ve.getBytes)(D,"seed");(0,ve.assertArgument)(be.length>=16&&be.length<=64,"invalid seed","seed","[REDACTED]");const we=(0,ve.getBytes)((0,he.computeHmac)("sha512",Re,be)),_e=new he.SigningKey((0,ve.hexlify)(we.slice(0,32)));return new te(xe,_e,"0x00000000",(0,ve.hexlify)(we.slice(32)),"m",0,0,ye,null)}te=HDNodeWallet,D.HDNodeWallet=HDNodeWallet;class HDNodeVoidWallet extends ye.VoidSigner{constructor(D,te,ye,be,we,_e,Pe,Ie,Re){super(te,Re),_defineProperty(this,"publicKey",void 0),_defineProperty(this,"fingerprint",void 0),_defineProperty(this,"parentFingerprint",void 0),_defineProperty(this,"chainCode",void 0),_defineProperty(this,"path",void 0),_defineProperty(this,"index",void 0),_defineProperty(this,"depth",void 0),(0,ve.assertPrivate)(D,xe,"HDNodeVoidWallet"),(0,ve.defineProperties)(this,{publicKey:ye});const ke=(0,ve.dataSlice)((0,he.ripemd160)((0,he.sha256)(ye)),0,4);(0,ve.defineProperties)(this,{publicKey:ye,fingerprint:ke,parentFingerprint:be,chainCode:we,path:_e,index:Pe,depth:Ie})}connect(D){return new HDNodeVoidWallet(xe,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,D)}get extendedKey(){return(0,ve.assert)(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),encodeBase58Check((0,ve.concat)(["0x0488B21E",zpad(this.depth,1),this.parentFingerprint,zpad(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return null!=this.path}deriveChild(D){const te=(0,ve.getNumber)(D,"index");(0,ve.assertArgument)(te<=4294967295,"invalid index","index",te);let ye=this.path;ye&&(ye+="/"+(2147483647&te),te&ke&&(ye+="'"));const{IR:we,IL:_e}=ser_I(te,this.chainCode,this.publicKey,null),Pe=he.SigningKey.addPoints(_e,this.publicKey,!0),Ie=(0,be.computeAddress)(Pe);return new HDNodeVoidWallet(xe,Ie,Pe,this.fingerprint,(0,ve.hexlify)(we),ye,te,this.depth+1,this.provider)}derivePath(D){return derivePath(this,D)}}D.HDNodeVoidWallet=HDNodeVoidWallet,D.getAccountPath=function getAccountPath(D){const te=(0,ve.getNumber)(D,"index");return(0,ve.assertArgument)(te>=0&&te<ke,"invalid account index","index",te),`m/44'/60'/${te}'/0/0`},D.getIndexedAccountPath=function getIndexedAccountPath(D){const te=(0,ve.getNumber)(D,"index");return(0,ve.assertArgument)(te>=0&&te<ke,"invalid account index","index",te),`m/44'/60'/0'/0/${te}`}}(UF)),UF}var gD,vD={};function requireJsonCrowdsale(){if(gD)return vD;gD=1,Object.defineProperty(vD,"__esModule",{value:!0}),vD.decryptCrowdsaleJson=vD.isCrowdsaleJson=void 0;const D=requireLib_commonjs(),te=requireAddress$2(),he=requireCrypto(),ye=requireHash(),be=requireUtils$4(),ve=requireUtils();return vD.isCrowdsaleJson=function isCrowdsaleJson(D){try{if(JSON.parse(D).encseed)return!0}catch(D){}return!1},vD.decryptCrowdsaleJson=function decryptCrowdsaleJson(we,_e){const Pe=JSON.parse(we),Ie=(0,ve.getPassword)(_e),Re=(0,te.getAddress)((0,ve.spelunk)(Pe,"ethaddr:string!")),ke=(0,ve.looseArrayify)((0,ve.spelunk)(Pe,"encseed:string!"));(0,be.assertArgument)(ke&&ke.length%16==0,"invalid encseed","json",we);const Oe=(0,be.getBytes)((0,he.pbkdf2)(Ie,Ie,2e3,32,"sha256")).slice(0,16),xe=ke.slice(0,16),Be=ke.slice(16),Fe=new D.CBC(Oe,xe),De=(0,D.pkcs7Strip)((0,be.getBytes)(Fe.decrypt(Be)));let Le="";for(let D=0;D<De.length;D++)Le+=String.fromCharCode(De[D]);return{address:Re,privateKey:(0,ye.id)(Le)}},vD}var wD,_D,TD={};function requireWallet(){return _D||(_D=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.Wallet=D.Mnemonic=D.encryptKeystoreJsonSync=D.encryptKeystoreJson=D.decryptKeystoreJson=D.decryptKeystoreJsonSync=D.isKeystoreJson=D.decryptCrowdsaleJson=D.isCrowdsaleJson=D.HDNodeVoidWallet=D.HDNodeWallet=D.getIndexedAccountPath=D.getAccountPath=D.defaultPath=D.BaseWallet=void 0;var te=requireBaseWallet();Object.defineProperty(D,"BaseWallet",{enumerable:!0,get:function(){return te.BaseWallet}});var he=requireHdwallet();Object.defineProperty(D,"defaultPath",{enumerable:!0,get:function(){return he.defaultPath}}),Object.defineProperty(D,"getAccountPath",{enumerable:!0,get:function(){return he.getAccountPath}}),Object.defineProperty(D,"getIndexedAccountPath",{enumerable:!0,get:function(){return he.getIndexedAccountPath}}),Object.defineProperty(D,"HDNodeWallet",{enumerable:!0,get:function(){return he.HDNodeWallet}}),Object.defineProperty(D,"HDNodeVoidWallet",{enumerable:!0,get:function(){return he.HDNodeVoidWallet}});var ye=requireJsonCrowdsale();Object.defineProperty(D,"isCrowdsaleJson",{enumerable:!0,get:function(){return ye.isCrowdsaleJson}}),Object.defineProperty(D,"decryptCrowdsaleJson",{enumerable:!0,get:function(){return ye.decryptCrowdsaleJson}});var be=requireJsonKeystore();Object.defineProperty(D,"isKeystoreJson",{enumerable:!0,get:function(){return be.isKeystoreJson}}),Object.defineProperty(D,"decryptKeystoreJsonSync",{enumerable:!0,get:function(){return be.decryptKeystoreJsonSync}}),Object.defineProperty(D,"decryptKeystoreJson",{enumerable:!0,get:function(){return be.decryptKeystoreJson}}),Object.defineProperty(D,"encryptKeystoreJson",{enumerable:!0,get:function(){return be.encryptKeystoreJson}}),Object.defineProperty(D,"encryptKeystoreJsonSync",{enumerable:!0,get:function(){return be.encryptKeystoreJsonSync}});var ve=requireMnemonic();Object.defineProperty(D,"Mnemonic",{enumerable:!0,get:function(){return ve.Mnemonic}});var we=function requireWallet$1(){var D;if(wD)return TD;wD=1,Object.defineProperty(TD,"__esModule",{value:!0}),TD.Wallet=void 0;const te=requireCrypto(),he=requireUtils$4(),ye=requireBaseWallet(),be=requireHdwallet(),ve=requireJsonCrowdsale(),we=requireJsonKeystore(),_e=requireMnemonic();function stall(D){return new Promise((te=>{setTimeout((()=>{te()}),D)}))}class Wallet extends ye.BaseWallet{constructor(D,he){"string"!=typeof D||D.startsWith("0x")||(D="0x"+D),super("string"==typeof D?new te.SigningKey(D):D,he)}connect(D){return new Wallet(this.signingKey,D)}async encrypt(D,te){const he={address:this.address,privateKey:this.privateKey};return await(0,we.encryptKeystoreJson)(he,D,{progressCallback:te})}encryptSync(D){const te={address:this.address,privateKey:this.privateKey};return(0,we.encryptKeystoreJsonSync)(te,D)}static async fromEncryptedJson(D,te,he){let ye=null;return(0,we.isKeystoreJson)(D)?ye=await(0,we.decryptKeystoreJson)(D,te,he):(0,ve.isCrowdsaleJson)(D)&&(he&&(he(0),await stall(0)),ye=(0,ve.decryptCrowdsaleJson)(D,te),he&&(he(1),await stall(0))),_fromAccount.call(Wallet,ye)}static fromEncryptedJsonSync(D,te){let ye=null;return(0,we.isKeystoreJson)(D)?ye=(0,we.decryptKeystoreJsonSync)(D,te):(0,ve.isCrowdsaleJson)(D)?ye=(0,ve.decryptCrowdsaleJson)(D,te):(0,he.assertArgument)(!1,"invalid JSON wallet","json","[ REDACTED ]"),_fromAccount.call(Wallet,ye)}static createRandom(D){const te=be.HDNodeWallet.createRandom();return D?te.connect(D):te}static fromPhrase(D,te){const he=be.HDNodeWallet.fromPhrase(D);return te?he.connect(te):he}}function _fromAccount(te){if((0,he.assertArgument)(te,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in te&&te.mnemonic&&"en"===te.mnemonic.locale){const D=_e.Mnemonic.fromEntropy(te.mnemonic.entropy),he=be.HDNodeWallet.fromMnemonic(D,te.mnemonic.path);if(he.address===te.address&&he.privateKey===te.privateKey)return he;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}const ye=new D(te.privateKey);return(0,he.assertArgument)(ye.address===te.address,"address/privateKey mismatch","json","[ REDACTED ]"),ye}return D=Wallet,TD.Wallet=Wallet,TD}();Object.defineProperty(D,"Wallet",{enumerable:!0,get:function(){return we.Wallet}})}(BF)),BF}var AD,ED,PD,SD={},CD={},ID={},RD={};function requireDecodeOwla(){if(ED)return ID;ED=1,Object.defineProperty(ID,"__esModule",{value:!0}),ID.decodeOwlA=void 0;const D=requireUtils$4(),te=function requireBitReader(){return AD||(AD=1,Object.defineProperty(RD,"__esModule",{value:!0}),RD.decodeBits=void 0,RD.decodeBits=function decodeBits(D,te){const he=(1<<D)-1,ye=[];let be=0,ve=0,we=0;for(let _e=0;_e<te.length;_e++)for(be=be<<6|")!@#$%^&*(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".indexOf(te[_e]),ve+=6;ve>=D;){const te=be>>ve-D;be&=(1<<ve-D)-1,ve-=D,0===te?we+=he:(ye.push(te+we),we=0)}return ye}),RD}(),he=requireDecodeOwl();return ID.decodeOwlA=function decodeOwlA(ye,be){let ve=(0,he.decodeOwl)(ye).join(",");return be.split(/,/g).forEach((he=>{const ye=he.match(/^([a-z]*)([0-9]+)([0-9])(.*)$/);(0,D.assertArgument)(null!==ye,"internal error parsing accents","accents",be);let we=0;const _e=(0,te.decodeBits)(parseInt(ye[3]),ye[4]),Pe=parseInt(ye[2]),Ie=new RegExp(`([${ye[1]}])`,"g");ve=ve.replace(Ie,((D,te)=>(0===--_e[we]&&(te=String.fromCharCode(te.charCodeAt(0),Pe),we++),te)))})),ve.split(",")},ID}var kD,OD,xD,ND={};function requireWordlists(){return OD||(OD=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.wordlists=D.WordlistOwlA=D.WordlistOwl=D.LangEn=D.Wordlist=void 0;var te=requireWordlist();Object.defineProperty(D,"Wordlist",{enumerable:!0,get:function(){return te.Wordlist}});var he=requireLangEn();Object.defineProperty(D,"LangEn",{enumerable:!0,get:function(){return he.LangEn}});var ye=requireWordlistOwl();Object.defineProperty(D,"WordlistOwl",{enumerable:!0,get:function(){return ye.WordlistOwl}});var be=function requireWordlistOwla(){if(PD)return CD;PD=1,Object.defineProperty(CD,"__esModule",{value:!0}),CD.WordlistOwlA=void 0;const D=requireWordlistOwl(),te=requireDecodeOwla();var he=new WeakMap;class WordlistOwlA extends D.WordlistOwl{constructor(D,te,ye,be){super(D,te,be),_classPrivateFieldInitSpec(this,he,void 0),_classPrivateFieldSet2(he,this,ye)}get _accent(){return _classPrivateFieldGet2(he,this)}_decodeWords(){return(0,te.decodeOwlA)(this._data,this._accent)}}return CD.WordlistOwlA=WordlistOwlA,CD}();Object.defineProperty(D,"WordlistOwlA",{enumerable:!0,get:function(){return be.WordlistOwlA}});var ve=function requireWordlistsBrowser(){if(kD)return ND;kD=1,Object.defineProperty(ND,"__esModule",{value:!0}),ND.wordlists=void 0;const D=requireLangEn();return ND.wordlists={en:D.LangEn.wordlist()},ND}();Object.defineProperty(D,"wordlists",{enumerable:!0,get:function(){return ve.wordlists}})}(SD)),SD}function requireEthers(){return xD||(xD=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.ripemd160=D.keccak256=D.randomBytes=D.computeHmac=D.UndecodedEventLog=D.EventLog=D.ContractUnknownEventPayload=D.ContractTransactionResponse=D.ContractTransactionReceipt=D.ContractEventPayload=D.ContractFactory=D.Contract=D.BaseContract=D.MessagePrefix=D.EtherSymbol=D.ZeroHash=D.N=D.MaxInt256=D.MinInt256=D.MaxUint256=D.WeiPerEther=D.ZeroAddress=D.resolveAddress=D.isAddress=D.isAddressable=D.getCreate2Address=D.getCreateAddress=D.getIcapAddress=D.getAddress=D.Typed=D.TransactionDescription=D.Result=D.LogDescription=D.Interface=D.Indexed=D.ErrorDescription=D.checkResultErrors=D.StructFragment=D.ParamType=D.NamedFragment=D.FunctionFragment=D.FallbackFragment=D.Fragment=D.EventFragment=D.ErrorFragment=D.ConstructorFragment=D.AbiCoder=D.encodeBytes32String=D.decodeBytes32String=D.version=void 0,D.EtherscanPlugin=D.EnsPlugin=D.Network=D.EnsResolver=D.WebSocketProvider=D.SocketProvider=D.IpcSocketProvider=D.QuickNodeProvider=D.PocketProvider=D.InfuraWebSocketProvider=D.InfuraProvider=D.EtherscanProvider=D.CloudflareProvider=D.AnkrProvider=D.AlchemyProvider=D.BrowserProvider=D.JsonRpcSigner=D.JsonRpcProvider=D.JsonRpcApiProvider=D.FallbackProvider=D.AbstractProvider=D.VoidSigner=D.NonceManager=D.AbstractSigner=D.TransactionResponse=D.TransactionReceipt=D.Log=D.FeeData=D.Block=D.getDefaultProvider=D.verifyTypedData=D.TypedDataEncoder=D.solidityPackedSha256=D.solidityPackedKeccak256=D.solidityPacked=D.verifyMessage=D.hashMessage=D.dnsEncode=D.namehash=D.isValidName=D.ensNormalize=D.id=D.SigningKey=D.Signature=D.lock=D.scryptSync=D.scrypt=D.pbkdf2=D.sha512=D.sha256=void 0,D.toBeArray=D.getUint=D.getNumber=D.getBigInt=D.FixedNumber=D.FetchCancelSignal=D.FetchResponse=D.FetchRequest=D.EventPayload=D.isError=D.isCallException=D.makeError=D.assertPrivate=D.assertNormalize=D.assertArgumentCount=D.assertArgument=D.assert=D.resolveProperties=D.defineProperties=D.zeroPadValue=D.zeroPadBytes=D.stripZerosLeft=D.isBytesLike=D.isHexString=D.hexlify=D.getBytesCopy=D.getBytes=D.dataSlice=D.dataLength=D.concat=D.encodeBase64=D.decodeBase64=D.encodeBase58=D.decodeBase58=D.Transaction=D.recoverAddress=D.computeAddress=D.accessListify=D.showThrottleMessage=D.copyRequest=D.UnmanagedSubscriber=D.SocketSubscriber=D.SocketPendingSubscriber=D.SocketEventSubscriber=D.SocketBlockSubscriber=D.MulticoinProviderPlugin=D.NetworkPlugin=D.GasCostPlugin=D.FetchUrlFeeDataNetworkPlugin=D.FeeDataNetworkPlugin=void 0,D.wordlists=D.WordlistOwlA=D.WordlistOwl=D.LangEn=D.Wordlist=D.encryptKeystoreJsonSync=D.encryptKeystoreJson=D.decryptKeystoreJson=D.decryptKeystoreJsonSync=D.decryptCrowdsaleJson=D.isKeystoreJson=D.isCrowdsaleJson=D.getIndexedAccountPath=D.getAccountPath=D.defaultPath=D.Wallet=D.HDNodeVoidWallet=D.HDNodeWallet=D.BaseWallet=D.Mnemonic=D.uuidV4=D.encodeRlp=D.decodeRlp=D.Utf8ErrorFuncs=D.toUtf8String=D.toUtf8CodePoints=D.toUtf8Bytes=D.parseUnits=D.formatUnits=D.parseEther=D.formatEther=D.mask=D.toTwos=D.fromTwos=D.toQuantity=D.toNumber=D.toBeHex=D.toBigInt=void 0;var te=require_version();Object.defineProperty(D,"version",{enumerable:!0,get:function(){return te.version}});var he=requireAbi();Object.defineProperty(D,"decodeBytes32String",{enumerable:!0,get:function(){return he.decodeBytes32String}}),Object.defineProperty(D,"encodeBytes32String",{enumerable:!0,get:function(){return he.encodeBytes32String}}),Object.defineProperty(D,"AbiCoder",{enumerable:!0,get:function(){return he.AbiCoder}}),Object.defineProperty(D,"ConstructorFragment",{enumerable:!0,get:function(){return he.ConstructorFragment}}),Object.defineProperty(D,"ErrorFragment",{enumerable:!0,get:function(){return he.ErrorFragment}}),Object.defineProperty(D,"EventFragment",{enumerable:!0,get:function(){return he.EventFragment}}),Object.defineProperty(D,"Fragment",{enumerable:!0,get:function(){return he.Fragment}}),Object.defineProperty(D,"FallbackFragment",{enumerable:!0,get:function(){return he.FallbackFragment}}),Object.defineProperty(D,"FunctionFragment",{enumerable:!0,get:function(){return he.FunctionFragment}}),Object.defineProperty(D,"NamedFragment",{enumerable:!0,get:function(){return he.NamedFragment}}),Object.defineProperty(D,"ParamType",{enumerable:!0,get:function(){return he.ParamType}}),Object.defineProperty(D,"StructFragment",{enumerable:!0,get:function(){return he.StructFragment}}),Object.defineProperty(D,"checkResultErrors",{enumerable:!0,get:function(){return he.checkResultErrors}}),Object.defineProperty(D,"ErrorDescription",{enumerable:!0,get:function(){return he.ErrorDescription}}),Object.defineProperty(D,"Indexed",{enumerable:!0,get:function(){return he.Indexed}}),Object.defineProperty(D,"Interface",{enumerable:!0,get:function(){return he.Interface}}),Object.defineProperty(D,"LogDescription",{enumerable:!0,get:function(){return he.LogDescription}}),Object.defineProperty(D,"Result",{enumerable:!0,get:function(){return he.Result}}),Object.defineProperty(D,"TransactionDescription",{enumerable:!0,get:function(){return he.TransactionDescription}}),Object.defineProperty(D,"Typed",{enumerable:!0,get:function(){return he.Typed}});var ye=requireAddress$2();Object.defineProperty(D,"getAddress",{enumerable:!0,get:function(){return ye.getAddress}}),Object.defineProperty(D,"getIcapAddress",{enumerable:!0,get:function(){return ye.getIcapAddress}}),Object.defineProperty(D,"getCreateAddress",{enumerable:!0,get:function(){return ye.getCreateAddress}}),Object.defineProperty(D,"getCreate2Address",{enumerable:!0,get:function(){return ye.getCreate2Address}}),Object.defineProperty(D,"isAddressable",{enumerable:!0,get:function(){return ye.isAddressable}}),Object.defineProperty(D,"isAddress",{enumerable:!0,get:function(){return ye.isAddress}}),Object.defineProperty(D,"resolveAddress",{enumerable:!0,get:function(){return ye.resolveAddress}});var be=requireConstants();Object.defineProperty(D,"ZeroAddress",{enumerable:!0,get:function(){return be.ZeroAddress}}),Object.defineProperty(D,"WeiPerEther",{enumerable:!0,get:function(){return be.WeiPerEther}}),Object.defineProperty(D,"MaxUint256",{enumerable:!0,get:function(){return be.MaxUint256}}),Object.defineProperty(D,"MinInt256",{enumerable:!0,get:function(){return be.MinInt256}}),Object.defineProperty(D,"MaxInt256",{enumerable:!0,get:function(){return be.MaxInt256}}),Object.defineProperty(D,"N",{enumerable:!0,get:function(){return be.N}}),Object.defineProperty(D,"ZeroHash",{enumerable:!0,get:function(){return be.ZeroHash}}),Object.defineProperty(D,"EtherSymbol",{enumerable:!0,get:function(){return be.EtherSymbol}}),Object.defineProperty(D,"MessagePrefix",{enumerable:!0,get:function(){return be.MessagePrefix}});var ve=requireContract();Object.defineProperty(D,"BaseContract",{enumerable:!0,get:function(){return ve.BaseContract}}),Object.defineProperty(D,"Contract",{enumerable:!0,get:function(){return ve.Contract}}),Object.defineProperty(D,"ContractFactory",{enumerable:!0,get:function(){return ve.ContractFactory}}),Object.defineProperty(D,"ContractEventPayload",{enumerable:!0,get:function(){return ve.ContractEventPayload}}),Object.defineProperty(D,"ContractTransactionReceipt",{enumerable:!0,get:function(){return ve.ContractTransactionReceipt}}),Object.defineProperty(D,"ContractTransactionResponse",{enumerable:!0,get:function(){return ve.ContractTransactionResponse}}),Object.defineProperty(D,"ContractUnknownEventPayload",{enumerable:!0,get:function(){return ve.ContractUnknownEventPayload}}),Object.defineProperty(D,"EventLog",{enumerable:!0,get:function(){return ve.EventLog}}),Object.defineProperty(D,"UndecodedEventLog",{enumerable:!0,get:function(){return ve.UndecodedEventLog}});var we=requireCrypto();Object.defineProperty(D,"computeHmac",{enumerable:!0,get:function(){return we.computeHmac}}),Object.defineProperty(D,"randomBytes",{enumerable:!0,get:function(){return we.randomBytes}}),Object.defineProperty(D,"keccak256",{enumerable:!0,get:function(){return we.keccak256}}),Object.defineProperty(D,"ripemd160",{enumerable:!0,get:function(){return we.ripemd160}}),Object.defineProperty(D,"sha256",{enumerable:!0,get:function(){return we.sha256}}),Object.defineProperty(D,"sha512",{enumerable:!0,get:function(){return we.sha512}}),Object.defineProperty(D,"pbkdf2",{enumerable:!0,get:function(){return we.pbkdf2}}),Object.defineProperty(D,"scrypt",{enumerable:!0,get:function(){return we.scrypt}}),Object.defineProperty(D,"scryptSync",{enumerable:!0,get:function(){return we.scryptSync}}),Object.defineProperty(D,"lock",{enumerable:!0,get:function(){return we.lock}}),Object.defineProperty(D,"Signature",{enumerable:!0,get:function(){return we.Signature}}),Object.defineProperty(D,"SigningKey",{enumerable:!0,get:function(){return we.SigningKey}});var _e=requireHash();Object.defineProperty(D,"id",{enumerable:!0,get:function(){return _e.id}}),Object.defineProperty(D,"ensNormalize",{enumerable:!0,get:function(){return _e.ensNormalize}}),Object.defineProperty(D,"isValidName",{enumerable:!0,get:function(){return _e.isValidName}}),Object.defineProperty(D,"namehash",{enumerable:!0,get:function(){return _e.namehash}}),Object.defineProperty(D,"dnsEncode",{enumerable:!0,get:function(){return _e.dnsEncode}}),Object.defineProperty(D,"hashMessage",{enumerable:!0,get:function(){return _e.hashMessage}}),Object.defineProperty(D,"verifyMessage",{enumerable:!0,get:function(){return _e.verifyMessage}}),Object.defineProperty(D,"solidityPacked",{enumerable:!0,get:function(){return _e.solidityPacked}}),Object.defineProperty(D,"solidityPackedKeccak256",{enumerable:!0,get:function(){return _e.solidityPackedKeccak256}}),Object.defineProperty(D,"solidityPackedSha256",{enumerable:!0,get:function(){return _e.solidityPackedSha256}}),Object.defineProperty(D,"TypedDataEncoder",{enumerable:!0,get:function(){return _e.TypedDataEncoder}}),Object.defineProperty(D,"verifyTypedData",{enumerable:!0,get:function(){return _e.verifyTypedData}});var Pe=requireProviders();Object.defineProperty(D,"getDefaultProvider",{enumerable:!0,get:function(){return Pe.getDefaultProvider}}),Object.defineProperty(D,"Block",{enumerable:!0,get:function(){return Pe.Block}}),Object.defineProperty(D,"FeeData",{enumerable:!0,get:function(){return Pe.FeeData}}),Object.defineProperty(D,"Log",{enumerable:!0,get:function(){return Pe.Log}}),Object.defineProperty(D,"TransactionReceipt",{enumerable:!0,get:function(){return Pe.TransactionReceipt}}),Object.defineProperty(D,"TransactionResponse",{enumerable:!0,get:function(){return Pe.TransactionResponse}}),Object.defineProperty(D,"AbstractSigner",{enumerable:!0,get:function(){return Pe.AbstractSigner}}),Object.defineProperty(D,"NonceManager",{enumerable:!0,get:function(){return Pe.NonceManager}}),Object.defineProperty(D,"VoidSigner",{enumerable:!0,get:function(){return Pe.VoidSigner}}),Object.defineProperty(D,"AbstractProvider",{enumerable:!0,get:function(){return Pe.AbstractProvider}}),Object.defineProperty(D,"FallbackProvider",{enumerable:!0,get:function(){return Pe.FallbackProvider}}),Object.defineProperty(D,"JsonRpcApiProvider",{enumerable:!0,get:function(){return Pe.JsonRpcApiProvider}}),Object.defineProperty(D,"JsonRpcProvider",{enumerable:!0,get:function(){return Pe.JsonRpcProvider}}),Object.defineProperty(D,"JsonRpcSigner",{enumerable:!0,get:function(){return Pe.JsonRpcSigner}}),Object.defineProperty(D,"BrowserProvider",{enumerable:!0,get:function(){return Pe.BrowserProvider}}),Object.defineProperty(D,"AlchemyProvider",{enumerable:!0,get:function(){return Pe.AlchemyProvider}}),Object.defineProperty(D,"AnkrProvider",{enumerable:!0,get:function(){return Pe.AnkrProvider}}),Object.defineProperty(D,"CloudflareProvider",{enumerable:!0,get:function(){return Pe.CloudflareProvider}}),Object.defineProperty(D,"EtherscanProvider",{enumerable:!0,get:function(){return Pe.EtherscanProvider}}),Object.defineProperty(D,"InfuraProvider",{enumerable:!0,get:function(){return Pe.InfuraProvider}}),Object.defineProperty(D,"InfuraWebSocketProvider",{enumerable:!0,get:function(){return Pe.InfuraWebSocketProvider}}),Object.defineProperty(D,"PocketProvider",{enumerable:!0,get:function(){return Pe.PocketProvider}}),Object.defineProperty(D,"QuickNodeProvider",{enumerable:!0,get:function(){return Pe.QuickNodeProvider}}),Object.defineProperty(D,"IpcSocketProvider",{enumerable:!0,get:function(){return Pe.IpcSocketProvider}}),Object.defineProperty(D,"SocketProvider",{enumerable:!0,get:function(){return Pe.SocketProvider}}),Object.defineProperty(D,"WebSocketProvider",{enumerable:!0,get:function(){return Pe.WebSocketProvider}}),Object.defineProperty(D,"EnsResolver",{enumerable:!0,get:function(){return Pe.EnsResolver}}),Object.defineProperty(D,"Network",{enumerable:!0,get:function(){return Pe.Network}}),Object.defineProperty(D,"EnsPlugin",{enumerable:!0,get:function(){return Pe.EnsPlugin}}),Object.defineProperty(D,"EtherscanPlugin",{enumerable:!0,get:function(){return Pe.EtherscanPlugin}}),Object.defineProperty(D,"FeeDataNetworkPlugin",{enumerable:!0,get:function(){return Pe.FeeDataNetworkPlugin}}),Object.defineProperty(D,"FetchUrlFeeDataNetworkPlugin",{enumerable:!0,get:function(){return Pe.FetchUrlFeeDataNetworkPlugin}}),Object.defineProperty(D,"GasCostPlugin",{enumerable:!0,get:function(){return Pe.GasCostPlugin}}),Object.defineProperty(D,"NetworkPlugin",{enumerable:!0,get:function(){return Pe.NetworkPlugin}}),Object.defineProperty(D,"MulticoinProviderPlugin",{enumerable:!0,get:function(){return Pe.MulticoinProviderPlugin}}),Object.defineProperty(D,"SocketBlockSubscriber",{enumerable:!0,get:function(){return Pe.SocketBlockSubscriber}}),Object.defineProperty(D,"SocketEventSubscriber",{enumerable:!0,get:function(){return Pe.SocketEventSubscriber}}),Object.defineProperty(D,"SocketPendingSubscriber",{enumerable:!0,get:function(){return Pe.SocketPendingSubscriber}}),Object.defineProperty(D,"SocketSubscriber",{enumerable:!0,get:function(){return Pe.SocketSubscriber}}),Object.defineProperty(D,"UnmanagedSubscriber",{enumerable:!0,get:function(){return Pe.UnmanagedSubscriber}}),Object.defineProperty(D,"copyRequest",{enumerable:!0,get:function(){return Pe.copyRequest}}),Object.defineProperty(D,"showThrottleMessage",{enumerable:!0,get:function(){return Pe.showThrottleMessage}});var Ie=requireTransaction();Object.defineProperty(D,"accessListify",{enumerable:!0,get:function(){return Ie.accessListify}}),Object.defineProperty(D,"computeAddress",{enumerable:!0,get:function(){return Ie.computeAddress}}),Object.defineProperty(D,"recoverAddress",{enumerable:!0,get:function(){return Ie.recoverAddress}}),Object.defineProperty(D,"Transaction",{enumerable:!0,get:function(){return Ie.Transaction}});var Re=requireUtils$4();Object.defineProperty(D,"decodeBase58",{enumerable:!0,get:function(){return Re.decodeBase58}}),Object.defineProperty(D,"encodeBase58",{enumerable:!0,get:function(){return Re.encodeBase58}}),Object.defineProperty(D,"decodeBase64",{enumerable:!0,get:function(){return Re.decodeBase64}}),Object.defineProperty(D,"encodeBase64",{enumerable:!0,get:function(){return Re.encodeBase64}}),Object.defineProperty(D,"concat",{enumerable:!0,get:function(){return Re.concat}}),Object.defineProperty(D,"dataLength",{enumerable:!0,get:function(){return Re.dataLength}}),Object.defineProperty(D,"dataSlice",{enumerable:!0,get:function(){return Re.dataSlice}}),Object.defineProperty(D,"getBytes",{enumerable:!0,get:function(){return Re.getBytes}}),Object.defineProperty(D,"getBytesCopy",{enumerable:!0,get:function(){return Re.getBytesCopy}}),Object.defineProperty(D,"hexlify",{enumerable:!0,get:function(){return Re.hexlify}}),Object.defineProperty(D,"isHexString",{enumerable:!0,get:function(){return Re.isHexString}}),Object.defineProperty(D,"isBytesLike",{enumerable:!0,get:function(){return Re.isBytesLike}}),Object.defineProperty(D,"stripZerosLeft",{enumerable:!0,get:function(){return Re.stripZerosLeft}}),Object.defineProperty(D,"zeroPadBytes",{enumerable:!0,get:function(){return Re.zeroPadBytes}}),Object.defineProperty(D,"zeroPadValue",{enumerable:!0,get:function(){return Re.zeroPadValue}}),Object.defineProperty(D,"defineProperties",{enumerable:!0,get:function(){return Re.defineProperties}}),Object.defineProperty(D,"resolveProperties",{enumerable:!0,get:function(){return Re.resolveProperties}}),Object.defineProperty(D,"assert",{enumerable:!0,get:function(){return Re.assert}}),Object.defineProperty(D,"assertArgument",{enumerable:!0,get:function(){return Re.assertArgument}}),Object.defineProperty(D,"assertArgumentCount",{enumerable:!0,get:function(){return Re.assertArgumentCount}}),Object.defineProperty(D,"assertNormalize",{enumerable:!0,get:function(){return Re.assertNormalize}}),Object.defineProperty(D,"assertPrivate",{enumerable:!0,get:function(){return Re.assertPrivate}}),Object.defineProperty(D,"makeError",{enumerable:!0,get:function(){return Re.makeError}}),Object.defineProperty(D,"isCallException",{enumerable:!0,get:function(){return Re.isCallException}}),Object.defineProperty(D,"isError",{enumerable:!0,get:function(){return Re.isError}}),Object.defineProperty(D,"EventPayload",{enumerable:!0,get:function(){return Re.EventPayload}}),Object.defineProperty(D,"FetchRequest",{enumerable:!0,get:function(){return Re.FetchRequest}}),Object.defineProperty(D,"FetchResponse",{enumerable:!0,get:function(){return Re.FetchResponse}}),Object.defineProperty(D,"FetchCancelSignal",{enumerable:!0,get:function(){return Re.FetchCancelSignal}}),Object.defineProperty(D,"FixedNumber",{enumerable:!0,get:function(){return Re.FixedNumber}}),Object.defineProperty(D,"getBigInt",{enumerable:!0,get:function(){return Re.getBigInt}}),Object.defineProperty(D,"getNumber",{enumerable:!0,get:function(){return Re.getNumber}}),Object.defineProperty(D,"getUint",{enumerable:!0,get:function(){return Re.getUint}}),Object.defineProperty(D,"toBeArray",{enumerable:!0,get:function(){return Re.toBeArray}}),Object.defineProperty(D,"toBigInt",{enumerable:!0,get:function(){return Re.toBigInt}}),Object.defineProperty(D,"toBeHex",{enumerable:!0,get:function(){return Re.toBeHex}}),Object.defineProperty(D,"toNumber",{enumerable:!0,get:function(){return Re.toNumber}}),Object.defineProperty(D,"toQuantity",{enumerable:!0,get:function(){return Re.toQuantity}}),Object.defineProperty(D,"fromTwos",{enumerable:!0,get:function(){return Re.fromTwos}}),Object.defineProperty(D,"toTwos",{enumerable:!0,get:function(){return Re.toTwos}}),Object.defineProperty(D,"mask",{enumerable:!0,get:function(){return Re.mask}}),Object.defineProperty(D,"formatEther",{enumerable:!0,get:function(){return Re.formatEther}}),Object.defineProperty(D,"parseEther",{enumerable:!0,get:function(){return Re.parseEther}}),Object.defineProperty(D,"formatUnits",{enumerable:!0,get:function(){return Re.formatUnits}}),Object.defineProperty(D,"parseUnits",{enumerable:!0,get:function(){return Re.parseUnits}}),Object.defineProperty(D,"toUtf8Bytes",{enumerable:!0,get:function(){return Re.toUtf8Bytes}}),Object.defineProperty(D,"toUtf8CodePoints",{enumerable:!0,get:function(){return Re.toUtf8CodePoints}}),Object.defineProperty(D,"toUtf8String",{enumerable:!0,get:function(){return Re.toUtf8String}}),Object.defineProperty(D,"Utf8ErrorFuncs",{enumerable:!0,get:function(){return Re.Utf8ErrorFuncs}}),Object.defineProperty(D,"decodeRlp",{enumerable:!0,get:function(){return Re.decodeRlp}}),Object.defineProperty(D,"encodeRlp",{enumerable:!0,get:function(){return Re.encodeRlp}}),Object.defineProperty(D,"uuidV4",{enumerable:!0,get:function(){return Re.uuidV4}});var ke=requireWallet();Object.defineProperty(D,"Mnemonic",{enumerable:!0,get:function(){return ke.Mnemonic}}),Object.defineProperty(D,"BaseWallet",{enumerable:!0,get:function(){return ke.BaseWallet}}),Object.defineProperty(D,"HDNodeWallet",{enumerable:!0,get:function(){return ke.HDNodeWallet}}),Object.defineProperty(D,"HDNodeVoidWallet",{enumerable:!0,get:function(){return ke.HDNodeVoidWallet}}),Object.defineProperty(D,"Wallet",{enumerable:!0,get:function(){return ke.Wallet}}),Object.defineProperty(D,"defaultPath",{enumerable:!0,get:function(){return ke.defaultPath}}),Object.defineProperty(D,"getAccountPath",{enumerable:!0,get:function(){return ke.getAccountPath}}),Object.defineProperty(D,"getIndexedAccountPath",{enumerable:!0,get:function(){return ke.getIndexedAccountPath}}),Object.defineProperty(D,"isCrowdsaleJson",{enumerable:!0,get:function(){return ke.isCrowdsaleJson}}),Object.defineProperty(D,"isKeystoreJson",{enumerable:!0,get:function(){return ke.isKeystoreJson}}),Object.defineProperty(D,"decryptCrowdsaleJson",{enumerable:!0,get:function(){return ke.decryptCrowdsaleJson}}),Object.defineProperty(D,"decryptKeystoreJsonSync",{enumerable:!0,get:function(){return ke.decryptKeystoreJsonSync}}),Object.defineProperty(D,"decryptKeystoreJson",{enumerable:!0,get:function(){return ke.decryptKeystoreJson}}),Object.defineProperty(D,"encryptKeystoreJson",{enumerable:!0,get:function(){return ke.encryptKeystoreJson}}),Object.defineProperty(D,"encryptKeystoreJsonSync",{enumerable:!0,get:function(){return ke.encryptKeystoreJsonSync}});var Oe=requireWordlists();Object.defineProperty(D,"Wordlist",{enumerable:!0,get:function(){return Oe.Wordlist}}),Object.defineProperty(D,"LangEn",{enumerable:!0,get:function(){return Oe.LangEn}}),Object.defineProperty(D,"WordlistOwl",{enumerable:!0,get:function(){return Oe.WordlistOwl}}),Object.defineProperty(D,"WordlistOwlA",{enumerable:!0,get:function(){return Oe.WordlistOwlA}}),Object.defineProperty(D,"wordlists",{enumerable:!0,get:function(){return Oe.wordlists}})}(ox)),ox}!function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.ethers=void 0;const te=sx,he=te.__importStar(requireEthers());D.ethers=he,te.__exportStar(requireEthers(),D)}(YO);var MD={};!function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.DOMAIN_REGISTRY_ADDRESS=D.KNOWN_CONDUIT_KEYS_TO_CONDUIT=D.NO_CONDUIT=D.ONE_HUNDRED_PERCENT_BP=D.MAX_INT=D.BasicOrderRouteType=D.Side=D.ItemType=D.OrderType=D.EIP_712_BULK_ORDER_TYPE=D.EIP_712_ORDER_TYPE=D.OPENSEA_CONDUIT_ADDRESS=D.OPENSEA_CONDUIT_KEY=D.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS=D.CROSS_CHAIN_SEAPORT_V1_6_ADDRESS=D.SEAPORT_CONTRACT_VERSION_V1_6=D.SEAPORT_CONTRACT_NAME=void 0;const te=YO;var he,ye,be,ve;D.SEAPORT_CONTRACT_NAME="Seaport",D.SEAPORT_CONTRACT_VERSION_V1_6="1.6",D.CROSS_CHAIN_SEAPORT_V1_6_ADDRESS="0x0000000000000068F116a894984e2DB1123eB395",D.CROSS_CHAIN_SEAPORT_V1_5_ADDRESS="0x00000000000000ADc04C56Bf30aC9d3c0aAF14dC",D.OPENSEA_CONDUIT_KEY="0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000",D.OPENSEA_CONDUIT_ADDRESS="0x1e0049783f008a0085193e00003d00cd54003c71",D.EIP_712_ORDER_TYPE={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]},D.EIP_712_BULK_ORDER_TYPE={BulkOrder:[{name:"tree",type:"OrderComponents[2][2][2][2][2][2][2]"}],OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]},function(D){D[D.FULL_OPEN=0]="FULL_OPEN",D[D.PARTIAL_OPEN=1]="PARTIAL_OPEN",D[D.FULL_RESTRICTED=2]="FULL_RESTRICTED",D[D.PARTIAL_RESTRICTED=3]="PARTIAL_RESTRICTED"}(he||(D.OrderType=he={})),function(D){D[D.NATIVE=0]="NATIVE",D[D.ERC20=1]="ERC20",D[D.ERC721=2]="ERC721",D[D.ERC1155=3]="ERC1155",D[D.ERC721_WITH_CRITERIA=4]="ERC721_WITH_CRITERIA",D[D.ERC1155_WITH_CRITERIA=5]="ERC1155_WITH_CRITERIA"}(ye||(D.ItemType=ye={})),function(D){D[D.OFFER=0]="OFFER",D[D.CONSIDERATION=1]="CONSIDERATION"}(be||(D.Side=be={})),function(D){D[D.ETH_TO_ERC721=0]="ETH_TO_ERC721",D[D.ETH_TO_ERC1155=1]="ETH_TO_ERC1155",D[D.ERC20_TO_ERC721=2]="ERC20_TO_ERC721",D[D.ERC20_TO_ERC1155=3]="ERC20_TO_ERC1155",D[D.ERC721_TO_ERC20=4]="ERC721_TO_ERC20",D[D.ERC1155_TO_ERC20=5]="ERC1155_TO_ERC20"}(ve||(D.BasicOrderRouteType=ve={})),D.MAX_INT=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),D.ONE_HUNDRED_PERCENT_BP=10000n,D.NO_CONDUIT=te.ethers.ZeroHash,D.KNOWN_CONDUIT_KEYS_TO_CONDUIT={[D.OPENSEA_CONDUIT_KEY]:D.OPENSEA_CONDUIT_ADDRESS},D.DOMAIN_REGISTRY_ADDRESS="0x000000000DaD0DE04D2B2D4a5A74581EBA94124A"}(MD);var BD={},FD={},DD={},LD={},UD={},$D={},qD={},GD={},jD={};Object.defineProperty(jD,"__esModule",{value:!0}),jD.ERC1155__factory=void 0;const HD=YO,zD=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"owners",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"balances",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}];class ERC1155__factory{static createInterface(){return new HD.Interface(zD)}static connect(D,te){return new HD.Contract(D,zD,te)}}jD.ERC1155__factory=ERC1155__factory,ERC1155__factory.abi=zD;var WD={};Object.defineProperty(WD,"__esModule",{value:!0}),WD.ERC1155TokenReceiver__factory=void 0;const VD=YO,KD=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"uint256[]",name:"",type:"uint256[]"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155BatchReceived",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC1155Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"}];class ERC1155TokenReceiver__factory{static createInterface(){return new VD.Interface(KD)}static connect(D,te){return new VD.Contract(D,KD,te)}}WD.ERC1155TokenReceiver__factory=ERC1155TokenReceiver__factory,ERC1155TokenReceiver__factory.abi=KD,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.ERC1155TokenReceiver__factory=D.ERC1155__factory=void 0;var te=jD;Object.defineProperty(D,"ERC1155__factory",{enumerable:!0,get:function(){return te.ERC1155__factory}});var he=WD;Object.defineProperty(D,"ERC1155TokenReceiver__factory",{enumerable:!0,get:function(){return he.ERC1155TokenReceiver__factory}})}(GD);var JD={},XD={};Object.defineProperty(XD,"__esModule",{value:!0}),XD.ERC721__factory=void 0;const QD=YO,ZD=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"owner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}];class ERC721__factory{static createInterface(){return new QD.Interface(ZD)}static connect(D,te){return new QD.Contract(D,ZD,te)}}XD.ERC721__factory=ERC721__factory,ERC721__factory.abi=ZD;var YD={};Object.defineProperty(YD,"__esModule",{value:!0}),YD.ERC721TokenReceiver__factory=void 0;const eL=YO,tL=[{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"}];class ERC721TokenReceiver__factory{static createInterface(){return new eL.Interface(tL)}static connect(D,te){return new eL.Contract(D,tL,te)}}YD.ERC721TokenReceiver__factory=ERC721TokenReceiver__factory,ERC721TokenReceiver__factory.abi=tL,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.ERC721TokenReceiver__factory=D.ERC721__factory=void 0;var te=XD;Object.defineProperty(D,"ERC721__factory",{enumerable:!0,get:function(){return te.ERC721__factory}});var he=YD;Object.defineProperty(D,"ERC721TokenReceiver__factory",{enumerable:!0,get:function(){return he.ERC721TokenReceiver__factory}})}(JD);var rL={};Object.defineProperty(rL,"__esModule",{value:!0}),rL.ERC20__factory=void 0;const nL=YO,aL=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];let iL=class ERC20__factory{static createInterface(){return new nL.Interface(aL)}static connect(D,te){return new nL.Contract(D,aL,te)}};rL.ERC20__factory=iL,iL.abi=aL,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.ERC20__factory=D.erc721Sol=D.erc1155Sol=void 0,D.erc1155Sol=GD,D.erc721Sol=JD;var te=rL;Object.defineProperty(D,"ERC20__factory",{enumerable:!0,get:function(){return te.ERC20__factory}})}(qD),Object.defineProperty($D,"__esModule",{value:!0}),$D.tokens=void 0,$D.tokens=qD,Object.defineProperty(UD,"__esModule",{value:!0}),UD.src=void 0,UD.src=$D,Object.defineProperty(LD,"__esModule",{value:!0}),LD.solmate=void 0,LD.solmate=UD;var sL={},oL={},cL={},dL={},uL={};Object.defineProperty(uL,"__esModule",{value:!0}),uL.LocalConduit__factory=void 0;const fL=YO,lL=[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"address",name:"channel",type:"address"}],name:"ChannelClosed",type:"error"},{inputs:[{internalType:"address",name:"channel",type:"address"},{internalType:"bool",name:"isOpen",type:"bool"}],name:"ChannelStatusAlreadySet",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidController",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidItemType",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"channel",type:"address"},{indexed:!1,internalType:"bool",name:"open",type:"bool"}],name:"ChannelUpdated",type:"event"},{inputs:[{components:[{internalType:"enum ConduitItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ConduitTransfer[]",name:"transfers",type:"tuple[]"}],name:"execute",outputs:[{internalType:"bytes4",name:"magicValue",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],internalType:"struct ConduitBatch1155Transfer[]",name:"batchTransfers",type:"tuple[]"}],name:"executeBatch1155",outputs:[{internalType:"bytes4",name:"magicValue",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"enum ConduitItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ConduitTransfer[]",name:"standardTransfers",type:"tuple[]"},{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],internalType:"struct ConduitBatch1155Transfer[]",name:"batchTransfers",type:"tuple[]"}],name:"executeWithBatch1155",outputs:[{internalType:"bytes4",name:"magicValue",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"channel",type:"address"},{internalType:"bool",name:"isOpen",type:"bool"}],name:"updateChannel",outputs:[],stateMutability:"nonpayable",type:"function"}],pL="0x60a060405234801561000f575f80fd5b5033608052608051610a3e61002c5f395f6101d20152610a3e5ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80634ce34aa21461004e578063899e104c1461007e5780638df25d9214610091578063c4e8fcb5146100a4575b5f80fd5b61006161005c366004610834565b6100b9565b6040516001600160e01b0319909116815260200160405180910390f35b61006161008c3660046108b4565b610121565b61006161009f36600461091b565b61018a565b6100b76100b2366004610969565b6101c7565b005b5f335f525f60205260405f20546100dd576349ed56f960e11b5f523360045260245ffd5b815f5b81811015610110576101088585838181106100fd576100fd6109a2565b905060c002016102c4565b6001016100e0565b50632671a55160e11b949350505050565b5f335f525f60205260405f2054610145576349ed56f960e11b5f523360045260245ffd5b835f5b8181101561016d576101658787838181106100fd576100fd6109a2565b600101610148565b506101788484610436565b50632267841360e21b95945050505050565b5f335f525f60205260405f20546101ae576349ed56f960e11b5f523360045260245ffd5b6101b88383610436565b506346f92ec960e11b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610210576040516336abb4df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604090205481151560ff909116151503610268576040516349271a0f60e11b81526001600160a01b038316600482015281151560248201526044015b60405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff191685151590811790915591519182527fae63067d43ac07563b7eb8db6595635fc77f1578a2a5ea06ba91b63e2afa37e2910160405180910390a25050565b60016102d360208301836109ca565b60038111156102e4576102e46109b6565b03610329576103266102fc60408301602084016109ef565b61030c60608401604085016109ef565b61031c60808501606086016109ef565b8460a0013561056c565b50565b600261033860208301836109ca565b6003811115610349576103496109b6565b036103b6578060a00135600114610379576040516369f9582760e01b815260a0820135600482015260240161025f565b61032661038c60408301602084016109ef565b61039c60608401604085016109ef565b6103ac60808501606086016109ef565b8460800135610660565b60036103c560208301836109ca565b60038111156103d6576103d66109b6565b0361041d576103266103ee60408301602084016109ef565b6103fe60608401604085016109ef565b61040e60808501606086016109ef565b84608001358560a00135610715565b604051631e4cbc7f60e21b815260040160405180910390fd5b808280631759616b60e11b6020525f5b8381101561055f57823582018035803b61046b57635f15d6725f52806020526024601cfd5b60a08201358060051b60c0018060808501351460a0606086013514168185013583141615905080156104a657633ae8821360e21b5f5260045ffd5b506020860195506080602084016024378060061b60400190508060a00160a4525f8160c401528060c4018160a0850160c4375f808260205f875af1935083610550573d1561053057601f3d0160051c91508060051c826003028184111561051a578184036003028280028580020360091c01015b5a60208201101561052d573d5f803e3d5ffd5b50505b6357e222f160e11b5f528260045260c0606452608451602001608452805ffd5b50505050600181019050610446565b5050505060806040525050565b6040516323b872dd60e01b5f5283600452826024528160445260205f60645f80895af1803d15601f3d1160015f51141617163d151581166106515780873b15151661065157806106405781610623573d1561060257601f3d0160051c8360051c81600302818311156105eb578183036003028280028480020360091c01015b5a6020820110156105fe573d5f803e3d5ffd5b5050505b63f486bc875f528660205285604052846060525f6080528360a05260a4601cfd5b63988919235f52866020528560405284606052836080526084601cfd5b635f15d6725f52866020526024601cfd5b505060405250505f6060525050565b833b61067757635f15d6725f52836020526024601cfd5b6040516323b872dd60e01b5f528360045282602452816044525f8060645f80895af180610707573d156106e557601f3d0160051c8260051c81600302818311156106ce578183036003028280028480020360091c01015b5a6020820110156106e1573d5f803e3d5ffd5b5050505b63f486bc875f5285602052846040528360605282608052600160a05260a4601cfd5b5060405250505f6060525050565b843b61072c57635f15d6725f52846020526024601cfd5b60405160805160a05160c051637921219560e11b5f528760045286602452856044528460645260a06084525f60a4525f8060c45f808d5af1806107d1573d156107b057601f3d0160051c8560051c8160030281831115610799578183036003028280028480020360091c01015b5a6020820110156107ac573d5f803e3d5ffd5b5050505b63f486bc875f52896020528860405287606052866080528560a05260a4601cfd5b5060809290925260a05260c05260405250505f606052505050565b5f8083601f8401126107fc575f80fd5b50813567ffffffffffffffff811115610813575f80fd5b60208301915083602060c08302850101111561082d575f80fd5b9250929050565b5f8060208385031215610845575f80fd5b823567ffffffffffffffff81111561085b575f80fd5b610867858286016107ec565b90969095509350505050565b5f8083601f840112610883575f80fd5b50813567ffffffffffffffff81111561089a575f80fd5b6020830191508360208260051b850101111561082d575f80fd5b5f805f80604085870312156108c7575f80fd5b843567ffffffffffffffff808211156108de575f80fd5b6108ea888389016107ec565b90965094506020870135915080821115610902575f80fd5b5061090f87828801610873565b95989497509550505050565b5f806020838503121561092c575f80fd5b823567ffffffffffffffff811115610942575f80fd5b61086785828601610873565b80356001600160a01b0381168114610964575f80fd5b919050565b5f806040838503121561097a575f80fd5b6109838361094e565b915060208301358015158114610997575f80fd5b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f602082840312156109da575f80fd5b8135600481106109e8575f80fd5b9392505050565b5f602082840312156109ff575f80fd5b6109e88261094e56fea26469706673582212204bd6c1ad7e8432b2ace82ccabb27cac8ed10d508fdedde8305c6353deda3a4d164736f6c63430008180033";class LocalConduit__factory extends fL.ContractFactory{constructor(...D){D.length>1?super(...D):super(lL,pL,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new fL.Interface(lL)}static connect(D,te){return new fL.Contract(D,lL,te)}}uL.LocalConduit__factory=LocalConduit__factory,LocalConduit__factory.bytecode=pL,LocalConduit__factory.abi=lL,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.LocalConduit__factory=void 0;var te=uL;Object.defineProperty(D,"LocalConduit__factory",{enumerable:!0,get:function(){return te.LocalConduit__factory}})}(dL);var hL={},yL={};Object.defineProperty(yL,"__esModule",{value:!0}),yL.LocalConduitController__factory=void 0;const mL=YO,bL=[{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"CallerIsNotNewPotentialOwner",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"CallerIsNotOwner",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"ChannelOutOfRange",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"ConduitAlreadyExists",type:"error"},{inputs:[],name:"InvalidCreator",type:"error"},{inputs:[],name:"InvalidInitialOwner",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"newPotentialOwner",type:"address"}],name:"NewPotentialOwnerAlreadySet",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"NewPotentialOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoConduit",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"NoPotentialOwnerCurrentlySet",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"conduit",type:"address"},{indexed:!1,internalType:"bytes32",name:"conduitKey",type:"bytes32"}],name:"NewConduit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"conduit",type:"address"},{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newPotentialOwner",type:"address"}],name:"PotentialOwnerUpdated",type:"event"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"cancelOwnershipTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"initialOwner",type:"address"}],name:"createConduit",outputs:[{internalType:"address",name:"conduit",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"uint256",name:"channelIndex",type:"uint256"}],name:"getChannel",outputs:[{internalType:"address",name:"channel",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"channel",type:"address"}],name:"getChannelStatus",outputs:[{internalType:"bool",name:"isOpen",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getChannels",outputs:[{internalType:"address[]",name:"channels",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],name:"getConduit",outputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"bool",name:"exists",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getConduitCodeHashes",outputs:[{internalType:"bytes32",name:"creationCodeHash",type:"bytes32"},{internalType:"bytes32",name:"runtimeCodeHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getKey",outputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getPotentialOwner",outputs:[{internalType:"address",name:"potentialOwner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getTotalChannels",outputs:[{internalType:"uint256",name:"totalChannels",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"owner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"newPotentialOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"channel",type:"address"},{internalType:"bool",name:"isOpen",type:"bool"}],name:"updateChannel",outputs:[],stateMutability:"nonpayable",type:"function"}],gL="0x60c060405234801561000f575f80fd5b5060405161001f60208201610082565b6020820181038252601f19601f8201166040525080519060200120608081815250505f805f1b60405161005190610082565b8190604051809103905ff590508015801561006e573d5f803e3d5ffd5b506001600160a01b03163f60a0525061008f565b610a6a8061197083390190565b60805160a0516118a46100cc5f395f81816101420152818161081101526108df01525f818161011f015281816107b9015261089b01526118a45ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c80636d435421116100885780637b37e561116100635780637b37e561146102435780638b9e028b14610256578063906c87cc1461027657806393790f4414610289575f80fd5b80636d435421146101eb5780636e9bfd9f146101fe578063794593bc14610230575f80fd5b806314afd79e116100c357806314afd79e1461018157806333bc8572146101945780634e3f9580146101b757806351710e45146101d8575f80fd5b8063027cc764146100e95780630a96ad391461011957806313ad9cab1461016c575b5f80fd5b6100fc6100f7366004610c39565b61029c565b6040516001600160a01b0390911681526020015b60405180910390f35b604080517f000000000000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000602082015201610110565b61017f61017a366004610c61565b610339565b005b6100fc61018f366004610ca9565b610531565b6101a76101a2366004610cc9565b61055c565b6040519015158152602001610110565b6101ca6101c5366004610ca9565b610595565b604051908152602001610110565b61017f6101e6366004610ca9565b6105bd565b61017f6101f9366004610cc9565b6106be565b61021161020c366004610cfa565b6107ae565b604080516001600160a01b039093168352901515602083015201610110565b6100fc61023e366004610d11565b610838565b61017f610251366004610ca9565b610a0a565b610269610264366004610ca9565b610aab565b6040516101109190610d32565b6100fc610284366004610ca9565b610b28565b6101ca610297366004610ca9565b610b53565b5f6102a683610b8e565b6001600160a01b0383165f908152602081905260409020600301548083106102f157604051636ceb340b60e01b81526001600160a01b03851660048201526024015b60405180910390fd5b6001600160a01b0384165f90815260208190526040902060030180548490811061031d5761031d610d7e565b5f918252602090912001546001600160a01b0316949350505050565b61034283610bc6565b60405163c4e8fcb560e01b81526001600160a01b038381166004830152821515602483015284169063c4e8fcb5906044015f604051808303815f87803b15801561038a575f80fd5b505af115801561039c573d5f803e3d5ffd5b505050506001600160a01b038381165f908152602081815260408083209386168352600484019091529020548015158380156103d6575080155b15610425576003830180546001810182555f828152602080822090920180546001600160a01b0319166001600160a01b038a169081179091559254928152600486019091526040902055610529565b831580156104305750805b156105295760038301545f198301905f9061044d90600190610d92565b90508181146104d8575f85600301828154811061046c5761046c610d7e565b5f918252602090912001546003870180546001600160a01b03909216925082918590811061049c5761049c610d7e565b5f91825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260048701909152604090208490555b846003018054806104eb576104eb610db7565b5f828152602080822083015f1990810180546001600160a01b03191690559092019092556001600160a01b0389168252600487019052604081205550505b505050505050565b5f61053b82610b8e565b506001600160a01b039081165f908152602081905260409020600101541690565b5f61056683610b8e565b506001600160a01b039182165f9081526020818152604080832093909416825260049092019091522054151590565b5f61059f82610b8e565b506001600160a01b03165f9081526020819052604090206003015490565b6105c681610b8e565b6001600160a01b038181165f9081526020819052604090206002015416331461060d576040516388c3a11560e01b81526001600160a01b03821660048201526024016102e8565b6040515f907f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da908290a26001600160a01b038082165f818152602081905260408082206002810180546001600160a01b031916905560010154905133949190911692917fc8894f26f396ce8c004245c8b7cd1b92103a6e4302fcbab883987149ac01b7ec91a46001600160a01b03165f90815260208190526040902060010180546001600160a01b03191633179055565b6106c782610bc6565b6001600160a01b0381166106f95760405163a388d26360e01b81526001600160a01b03831660048201526024016102e8565b6001600160a01b038083165f9081526020819052604090206002015481169082160361074b576040516365e0406560e11b81526001600160a01b038084166004830152821660248201526044016102e8565b6040516001600160a01b038216907f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da905f90a26001600160a01b039182165f90815260208190526040902060020180546001600160a01b03191691909216179055565b5f8060ff60f81b30847f00000000000000000000000000000000000000000000000000000000000000006040516020016107eb9493929190610dcb565b60408051601f198184030181529190528051602090910120936001600160a01b0385163f7f0000000000000000000000000000000000000000000000000000000000000000149350915050565b5f6001600160a01b0382166108605760405163267eaa8160e21b815260040160405180910390fd5b606083901c3314610884576040516332db94d160e21b815260040160405180910390fd5b6040516108c3906001600160f81b031990309086907f000000000000000000000000000000000000000000000000000000000000000090602001610dcb565b604051602081830303815290604052805190602001205f1c90507f0000000000000000000000000000000000000000000000000000000000000000816001600160a01b03163f0361093257604051633194665960e11b81526001600160a01b03821660048201526024016102e8565b8260405161093f90610c16565b8190604051809103905ff590508015801561095c573d5f803e3d5ffd5b50506001600160a01b038181165f81815260208181526040918290206001810180546001600160a01b03191695881695909517909455868455815192835282018690527f4397af6128d529b8ae0442f99db1296d5136062597a15bbc61c1b2a6431a7d15910160405180910390a16040516001600160a01b03808516915f918516907fc8894f26f396ce8c004245c8b7cd1b92103a6e4302fcbab883987149ac01b7ec908390a45092915050565b610a1381610bc6565b6001600160a01b038181165f9081526020819052604090206002015416610a58576040516335809b0b60e11b81526001600160a01b03821660048201526024016102e8565b6040515f907f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da908290a26001600160a01b03165f90815260208190526040902060020180546001600160a01b0319169055565b6060610ab682610b8e565b6001600160a01b0382165f908152602081815260409182902060030180548351818402810184019094528084529091830182828015610b1c57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610afe575b50505050509050919050565b5f610b3282610b8e565b506001600160a01b039081165f908152602081905260409020600201541690565b6001600160a01b0381165f9081526020819052604090205480610b89576040516304ca820960e41b815260040160405180910390fd5b919050565b6001600160a01b0381165f90815260208190526040902054610bc3576040516304ca820960e41b815260040160405180910390fd5b50565b610bcf81610b8e565b6001600160a01b038181165f90815260208190526040902060010154163314610bc35760405163d4ed9a1760e01b81526001600160a01b03821660048201526024016102e8565b610a6a80610e0583390190565b80356001600160a01b0381168114610b89575f80fd5b5f8060408385031215610c4a575f80fd5b610c5383610c23565b946020939093013593505050565b5f805f60608486031215610c73575f80fd5b610c7c84610c23565b9250610c8a60208501610c23565b915060408401358015158114610c9e575f80fd5b809150509250925092565b5f60208284031215610cb9575f80fd5b610cc282610c23565b9392505050565b5f8060408385031215610cda575f80fd5b610ce383610c23565b9150610cf160208401610c23565b90509250929050565b5f60208284031215610d0a575f80fd5b5035919050565b5f8060408385031215610d22575f80fd5b82359150610cf160208401610c23565b602080825282518282018190525f9190848201906040850190845b81811015610d725783516001600160a01b031683529284019291840191600101610d4d565b50909695505050505050565b634e487b7160e01b5f52603260045260245ffd5b81810381811115610db157634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52603160045260245ffd5b6001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff19166001840152601583015260358201526055019056fe60a060405234801561000f575f80fd5b5033608052608051610a3e61002c5f395f6101d20152610a3e5ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80634ce34aa21461004e578063899e104c1461007e5780638df25d9214610091578063c4e8fcb5146100a4575b5f80fd5b61006161005c366004610834565b6100b9565b6040516001600160e01b0319909116815260200160405180910390f35b61006161008c3660046108b4565b610121565b61006161009f36600461091b565b61018a565b6100b76100b2366004610969565b6101c7565b005b5f335f525f60205260405f20546100dd576349ed56f960e11b5f523360045260245ffd5b815f5b81811015610110576101088585838181106100fd576100fd6109a2565b905060c002016102c4565b6001016100e0565b50632671a55160e11b949350505050565b5f335f525f60205260405f2054610145576349ed56f960e11b5f523360045260245ffd5b835f5b8181101561016d576101658787838181106100fd576100fd6109a2565b600101610148565b506101788484610436565b50632267841360e21b95945050505050565b5f335f525f60205260405f20546101ae576349ed56f960e11b5f523360045260245ffd5b6101b88383610436565b506346f92ec960e11b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610210576040516336abb4df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604090205481151560ff909116151503610268576040516349271a0f60e11b81526001600160a01b038316600482015281151560248201526044015b60405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff191685151590811790915591519182527fae63067d43ac07563b7eb8db6595635fc77f1578a2a5ea06ba91b63e2afa37e2910160405180910390a25050565b60016102d360208301836109ca565b60038111156102e4576102e46109b6565b03610329576103266102fc60408301602084016109ef565b61030c60608401604085016109ef565b61031c60808501606086016109ef565b8460a0013561056c565b50565b600261033860208301836109ca565b6003811115610349576103496109b6565b036103b6578060a00135600114610379576040516369f9582760e01b815260a0820135600482015260240161025f565b61032661038c60408301602084016109ef565b61039c60608401604085016109ef565b6103ac60808501606086016109ef565b8460800135610660565b60036103c560208301836109ca565b60038111156103d6576103d66109b6565b0361041d576103266103ee60408301602084016109ef565b6103fe60608401604085016109ef565b61040e60808501606086016109ef565b84608001358560a00135610715565b604051631e4cbc7f60e21b815260040160405180910390fd5b808280631759616b60e11b6020525f5b8381101561055f57823582018035803b61046b57635f15d6725f52806020526024601cfd5b60a08201358060051b60c0018060808501351460a0606086013514168185013583141615905080156104a657633ae8821360e21b5f5260045ffd5b506020860195506080602084016024378060061b60400190508060a00160a4525f8160c401528060c4018160a0850160c4375f808260205f875af1935083610550573d1561053057601f3d0160051c91508060051c826003028184111561051a578184036003028280028580020360091c01015b5a60208201101561052d573d5f803e3d5ffd5b50505b6357e222f160e11b5f528260045260c0606452608451602001608452805ffd5b50505050600181019050610446565b5050505060806040525050565b6040516323b872dd60e01b5f5283600452826024528160445260205f60645f80895af1803d15601f3d1160015f51141617163d151581166106515780873b15151661065157806106405781610623573d1561060257601f3d0160051c8360051c81600302818311156105eb578183036003028280028480020360091c01015b5a6020820110156105fe573d5f803e3d5ffd5b5050505b63f486bc875f528660205285604052846060525f6080528360a05260a4601cfd5b63988919235f52866020528560405284606052836080526084601cfd5b635f15d6725f52866020526024601cfd5b505060405250505f6060525050565b833b61067757635f15d6725f52836020526024601cfd5b6040516323b872dd60e01b5f528360045282602452816044525f8060645f80895af180610707573d156106e557601f3d0160051c8260051c81600302818311156106ce578183036003028280028480020360091c01015b5a6020820110156106e1573d5f803e3d5ffd5b5050505b63f486bc875f5285602052846040528360605282608052600160a05260a4601cfd5b5060405250505f6060525050565b843b61072c57635f15d6725f52846020526024601cfd5b60405160805160a05160c051637921219560e11b5f528760045286602452856044528460645260a06084525f60a4525f8060c45f808d5af1806107d1573d156107b057601f3d0160051c8560051c8160030281831115610799578183036003028280028480020360091c01015b5a6020820110156107ac573d5f803e3d5ffd5b5050505b63f486bc875f52896020528860405287606052866080528560a05260a4601cfd5b5060809290925260a05260c05260405250505f606052505050565b5f8083601f8401126107fc575f80fd5b50813567ffffffffffffffff811115610813575f80fd5b60208301915083602060c08302850101111561082d575f80fd5b9250929050565b5f8060208385031215610845575f80fd5b823567ffffffffffffffff81111561085b575f80fd5b610867858286016107ec565b90969095509350505050565b5f8083601f840112610883575f80fd5b50813567ffffffffffffffff81111561089a575f80fd5b6020830191508360208260051b850101111561082d575f80fd5b5f805f80604085870312156108c7575f80fd5b843567ffffffffffffffff808211156108de575f80fd5b6108ea888389016107ec565b90965094506020870135915080821115610902575f80fd5b5061090f87828801610873565b95989497509550505050565b5f806020838503121561092c575f80fd5b823567ffffffffffffffff811115610942575f80fd5b61086785828601610873565b80356001600160a01b0381168114610964575f80fd5b919050565b5f806040838503121561097a575f80fd5b6109838361094e565b915060208301358015158114610997575f80fd5b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f602082840312156109da575f80fd5b8135600481106109e8575f80fd5b9392505050565b5f602082840312156109ff575f80fd5b6109e88261094e56fea2646970667358221220b0886aab2892937538153703aeb41ab7d7ac415a3ca8c13b06cc4ce7aa06f43764736f6c63430008180033a2646970667358221220b58b5844486fa5644e523bd3c6ebc053496e4b6567a082345c1c5ff44f746df564736f6c6343000818003360a060405234801561000f575f80fd5b5033608052608051610a3e61002c5f395f6101d20152610a3e5ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80634ce34aa21461004e578063899e104c1461007e5780638df25d9214610091578063c4e8fcb5146100a4575b5f80fd5b61006161005c366004610834565b6100b9565b6040516001600160e01b0319909116815260200160405180910390f35b61006161008c3660046108b4565b610121565b61006161009f36600461091b565b61018a565b6100b76100b2366004610969565b6101c7565b005b5f335f525f60205260405f20546100dd576349ed56f960e11b5f523360045260245ffd5b815f5b81811015610110576101088585838181106100fd576100fd6109a2565b905060c002016102c4565b6001016100e0565b50632671a55160e11b949350505050565b5f335f525f60205260405f2054610145576349ed56f960e11b5f523360045260245ffd5b835f5b8181101561016d576101658787838181106100fd576100fd6109a2565b600101610148565b506101788484610436565b50632267841360e21b95945050505050565b5f335f525f60205260405f20546101ae576349ed56f960e11b5f523360045260245ffd5b6101b88383610436565b506346f92ec960e11b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610210576040516336abb4df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604090205481151560ff909116151503610268576040516349271a0f60e11b81526001600160a01b038316600482015281151560248201526044015b60405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff191685151590811790915591519182527fae63067d43ac07563b7eb8db6595635fc77f1578a2a5ea06ba91b63e2afa37e2910160405180910390a25050565b60016102d360208301836109ca565b60038111156102e4576102e46109b6565b03610329576103266102fc60408301602084016109ef565b61030c60608401604085016109ef565b61031c60808501606086016109ef565b8460a0013561056c565b50565b600261033860208301836109ca565b6003811115610349576103496109b6565b036103b6578060a00135600114610379576040516369f9582760e01b815260a0820135600482015260240161025f565b61032661038c60408301602084016109ef565b61039c60608401604085016109ef565b6103ac60808501606086016109ef565b8460800135610660565b60036103c560208301836109ca565b60038111156103d6576103d66109b6565b0361041d576103266103ee60408301602084016109ef565b6103fe60608401604085016109ef565b61040e60808501606086016109ef565b84608001358560a00135610715565b604051631e4cbc7f60e21b815260040160405180910390fd5b808280631759616b60e11b6020525f5b8381101561055f57823582018035803b61046b57635f15d6725f52806020526024601cfd5b60a08201358060051b60c0018060808501351460a0606086013514168185013583141615905080156104a657633ae8821360e21b5f5260045ffd5b506020860195506080602084016024378060061b60400190508060a00160a4525f8160c401528060c4018160a0850160c4375f808260205f875af1935083610550573d1561053057601f3d0160051c91508060051c826003028184111561051a578184036003028280028580020360091c01015b5a60208201101561052d573d5f803e3d5ffd5b50505b6357e222f160e11b5f528260045260c0606452608451602001608452805ffd5b50505050600181019050610446565b5050505060806040525050565b6040516323b872dd60e01b5f5283600452826024528160445260205f60645f80895af1803d15601f3d1160015f51141617163d151581166106515780873b15151661065157806106405781610623573d1561060257601f3d0160051c8360051c81600302818311156105eb578183036003028280028480020360091c01015b5a6020820110156105fe573d5f803e3d5ffd5b5050505b63f486bc875f528660205285604052846060525f6080528360a05260a4601cfd5b63988919235f52866020528560405284606052836080526084601cfd5b635f15d6725f52866020526024601cfd5b505060405250505f6060525050565b833b61067757635f15d6725f52836020526024601cfd5b6040516323b872dd60e01b5f528360045282602452816044525f8060645f80895af180610707573d156106e557601f3d0160051c8260051c81600302818311156106ce578183036003028280028480020360091c01015b5a6020820110156106e1573d5f803e3d5ffd5b5050505b63f486bc875f5285602052846040528360605282608052600160a05260a4601cfd5b5060405250505f6060525050565b843b61072c57635f15d6725f52846020526024601cfd5b60405160805160a05160c051637921219560e11b5f528760045286602452856044528460645260a06084525f60a4525f8060c45f808d5af1806107d1573d156107b057601f3d0160051c8560051c8160030281831115610799578183036003028280028480020360091c01015b5a6020820110156107ac573d5f803e3d5ffd5b5050505b63f486bc875f52896020528860405287606052866080528560a05260a4601cfd5b5060809290925260a05260c05260405250505f606052505050565b5f8083601f8401126107fc575f80fd5b50813567ffffffffffffffff811115610813575f80fd5b60208301915083602060c08302850101111561082d575f80fd5b9250929050565b5f8060208385031215610845575f80fd5b823567ffffffffffffffff81111561085b575f80fd5b610867858286016107ec565b90969095509350505050565b5f8083601f840112610883575f80fd5b50813567ffffffffffffffff81111561089a575f80fd5b6020830191508360208260051b850101111561082d575f80fd5b5f805f80604085870312156108c7575f80fd5b843567ffffffffffffffff808211156108de575f80fd5b6108ea888389016107ec565b90965094506020870135915080821115610902575f80fd5b5061090f87828801610873565b95989497509550505050565b5f806020838503121561092c575f80fd5b823567ffffffffffffffff811115610942575f80fd5b61086785828601610873565b80356001600160a01b0381168114610964575f80fd5b919050565b5f806040838503121561097a575f80fd5b6109838361094e565b915060208301358015158114610997575f80fd5b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f602082840312156109da575f80fd5b8135600481106109e8575f80fd5b9392505050565b5f602082840312156109ff575f80fd5b6109e88261094e56fea2646970667358221220b0886aab2892937538153703aeb41ab7d7ac415a3ca8c13b06cc4ce7aa06f43764736f6c63430008180033";class LocalConduitController__factory extends mL.ContractFactory{constructor(...D){D.length>1?super(...D):super(bL,gL,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new mL.Interface(bL)}static connect(D,te){return new mL.Contract(D,bL,te)}}yL.LocalConduitController__factory=LocalConduitController__factory,LocalConduitController__factory.bytecode=gL,LocalConduitController__factory.abi=bL,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.LocalConduitController__factory=void 0;var te=yL;Object.defineProperty(D,"LocalConduitController__factory",{enumerable:!0,get:function(){return te.LocalConduitController__factory}})}(hL),Object.defineProperty(cL,"__esModule",{value:!0}),cL.conduitControllerSol=cL.conduitSol=void 0,cL.conduitSol=dL,cL.conduitControllerSol=hL;var vL={};Object.defineProperty(vL,"__esModule",{value:!0}),vL.Seaport__factory=void 0;const wL=YO,_L=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents[]",name:"orders",type:"tuple[]"}],name:"cancel",outputs:[{internalType:"bool",name:"cancelled",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder",name:"",type:"tuple"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"}],name:"fulfillAdvancedOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableAdvancedOrders",outputs:[{internalType:"bool[]",name:"",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableOrders",outputs:[{internalType:"bool[]",name:"",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"",type:"tuple"}],name:"fulfillBasicOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"",type:"tuple"}],name:"fulfillBasicOrder_efficient_6GL6yc",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order",name:"",type:"tuple"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"}],name:"fulfillOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"contractOfferer",type:"address"}],name:"getContractOffererNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"offerer",type:"address"}],name:"getCounter",outputs:[{internalType:"uint256",name:"counter",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents",name:"",type:"tuple"}],name:"getOrderHash",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"getOrderStatus",outputs:[{internalType:"bool",name:"isValidated",type:"bool"},{internalType:"bool",name:"isCancelled",type:"bool"},{internalType:"uint256",name:"totalFilled",type:"uint256"},{internalType:"uint256",name:"totalSize",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrementCounter",outputs:[{internalType:"uint256",name:"newCounter",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"information",outputs:[{internalType:"string",name:"version",type:"string"},{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"",type:"tuple[]"},{internalType:"address",name:"recipient",type:"address"}],name:"matchAdvancedOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"",type:"tuple[]"}],name:"matchOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"}],name:"validate",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],TL="0x61020060405234801562000011575f80fd5b50604051620061dc380380620061dc83398101604081905262000034916200031b565b808080808080808080806200004862000179565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa158015620000d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000f991906200034a565b506101a052505f90506200010c620002a0565b90506001600160a01b0381166200013657604051632aea588760e01b815260040160405180910390fd5b5f6200014282620002b9565b8015156101c0526001600160a01b0383166101e0529050806200016857600163929eee14555b5050505050505050505050620003e8565b5f8080808080620001a460408051808201909152600781526614d9585c1bdc9d60ca1b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a815260200162006172606a913990505f6040518060c001604052806084815260200162005fc86084913990505f60405180610100016040528060d481526020016200609e60d4913990506040518060800160405280605281526020016200604c6052913980519060200120965082805190602001209550818051906020012094505f81838560405160200162000279939291906200039c565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a620002d39190620003c8565b6040515f8181818686fa925050503d805f81146200030d576040519150601f19603f3d011682016040523d82523d5f602084013e62000312565b606091505b50909392505050565b5f602082840312156200032c575f80fd5b81516001600160a01b038116811462000343575f80fd5b9392505050565b5f80604083850312156200035c575f80fd5b505080516020909101519092909150565b5f81515f5b818110156200038e576020818501810151868301520162000372565b505f93019283525090919050565b5f620003bf620003b8620003b184886200036d565b866200036d565b846200036d565b95945050505050565b5f82620003e357634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615b24620004a45f395f61047f01525f818161036d0152818161043401528181611a7201528181611ac501526124e501525f61309501525f81816112b7015261306501525f612f2d01525f612e7501525f8181610c27015261165201525f8181610bb6015261149b01525f8181610b5001526115e401525f612ea501525f612eee01525f612eca0152615b245ff3fe608060405260043610610103575f3560e01c8063a900866b11610092578063f07ec37311610062578063f07ec373146102f7578063f2d12b1214610316578063f47b774014610329578063fb0f3ee114610116578063fd9f1e101461034c575f80fd5b8063a900866b1461028a578063b3a34c4c146102be578063e7acab24146102d1578063ed98a574146102e4575f80fd5b80637423eb3c116100d85780637423eb3c146101f757806379df72bd1461020b57806387201b411461022a578063881477321461024b578063a81744041461026a575f80fd5b801561011657806306fdde031461013e57806346423aa71461015f5780635b34b966146101d5575f80fd5b366101125761011061036b565b005b5f80fd5b61012961012436600461513d565b610402565b60405190151581526020015b60405180910390f35b348015610149575f80fd5b50610152610411565b60405161013591906151b7565b34801561016a575f80fd5b506101b36101793660046151c9565b5f9081526001602052604090205460ff808216926101008304909116916001600160781b03620100008204811692600160881b9092041690565b6040805194151585529215156020850152918301526060820152608001610135565b3480156101e0575f80fd5b506101e9610420565b604051908152602001610135565b348015610202575f80fd5b50610110610429565b348015610216575f80fd5b506101e96102253660046151e0565b6104ca565b61023d610238366004615274565b610501565b604051610135929190615418565b348015610256575f80fd5b50610129610265366004615467565b61057a565b61027d6102783660046154a5565b610598565b604051610135919061550b565b348015610295575f80fd5b506101e96102a436600461551d565b6001600160a01b03165f9081526002602052604090205490565b6101296102cc366004615536565b610633565b6101296102df36600461557b565b6106ac565b61023d6102f23660046155ff565b6106ea565b348015610302575f80fd5b506101e961031136600461551d565b61078d565b61027d61032436600461569f565b6107aa565b348015610334575f80fd5b5061033d6107f3565b60405161013593929190615741565b348015610357575f80fd5b50610129610366366004615467565b61080a565b7f000000000000000000000000000000000000000000000000000000000000000080156103b057600263929eee145c146103b05763a61be9f05f52346020526024601cfd5b806103ff5763929eee1454806103de57600263929eee145c146103de5763a61be9f05f52346020526024601cfd5b600381141581151516156103fd5763a61be9f05f52346020526024601cfd5b505b50565b5f61040b610815565b92915050565b606061041b6109c9565b905090565b5f61041b6109e1565b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061045c575080155b1561047a57604051630f45b98b60e41b815260040160405180910390fd5b6104a37f0000000000000000000000000000000000000000000000000000000000000000610a4e565b6104c0576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f806104d66004610aac565b90506104fa6104eb82610abc5b63ffffffff16565b610140830135610b39565b3590565b9392505050565b60608061056661051c6105146004610aac565b610c7d6104e3565b61053361052b60046020610ce5565b610d036104e3565b61054a61054260046040610ce5565b610d5b6104e3565b61055961054260046060610ce5565b89338a15028a0189610db3565b915091509b509b9950505050505050505050565b5f6104fa61059361058b6004610aac565b610ded6104e3565b610e45565b60606106286105b26105aa6004610aac565b610f666104e3565b604080515f808252602082019092529061060a565b6105f76040805160a081019091525f808252602082019081526020015f81526020015f8152602001606081525090565b8152602001906001900390816105c75790505b5061062261061a60046020610ce5565b610fbe6104e3565b33611016565b90505b949350505050565b5f6104fa61064c6106446004610aac565b6110546104e3565b604080515f80825260208201909252906106a4565b6106916040805160a081019091525f808252602082019081526020015f81526020015f8152602001606081525090565b8152602001906001900390816106615790505b5084336110ca565b5f6106e06106c56106bd6004610aac565b6112496104e3565b6106d461052b60046020610ce5565b853386150286016110ca565b9695505050505050565b60608061077c6106fd6105aa6004610aac565b604080515f8082526020820190925290610755565b6107426040805160a081019091525f808252602082019081526020015f81526020015f8152602001606081525090565b8152602001906001900390816107125790505b5061076561054260046020610ce5565b61077461054260046040610ce5565b883389610db3565b915091509850989650505050505050565b6001600160a01b0381165f9081526020819052604081205461040b565b60606107e56107bc6105146004610aac565b6107cb61052b60046020610ce5565b6107da61061a60046040610ce5565b338615028601611016565b90505b979650505050505050565b60605f806107ff6112a5565b925092509250909192565b5f6104fa83836112f1565b5f61012435600281901c906003166001821183341582148061083a5761083a3461142c565b506003841160a0810260240135906502030203010160d01b861a905f630101020360d01b881a61086d888289888861143d565b9096509150506101c4600583901b01355f87600581111561089057610890615351565b036108c55760443560243517156108ae57636ab37ce75f526004601cfd5b6108b8848261175a565b6108c0611824565b6109a6565b6040805160208082528183019092525f9160208201818036833701905050905060028a60058111156108f9576108f9615351565b0361091c5761091760c4356084353360e435610104355b87876118a4565b610991565b60038a600581111561093057610930615351565b0361094e5761091760c4356084353360e435610104355b87876118ef565b60048a600581111561096257610962615351565b0361097c5761091760243533608435604435606435610910565b61099160243533608435604435606435610947565b61099b8482611925565b6109a4816119df565b505b6109b1868984611a03565b6109b9611a70565b6001995050505050505050505090565b6060602080526707536561706f727460475260606020f35b5f6109ea611ac3565b600143034060801c335f525f60205260405f208054820192508281555050336001600160a01b03167f721c20121297512b72821b97f5326877ea8ecf4bb9948fea5bfcb6453074d37f82604051610a4391815260200190565b60405180910390a290565b5f816001600160a01b0316600a5a610a66919061579b565b6040515f8181818686fa925050503d805f8114610a9e576040519150601f19603f3d011682016040523d82523d5f602084013e610aa3565b606091505b50909392505050565b5f813563ffffffff16820161040b565b5f610acf61016060408051918201905290565b9050610ade8282610140611b40565b610afb610af4610aef846040610ce5565b611b49565b6040830152565b5f610b0f610b0a846060610ce5565b611b9c565b9050610b1c816060840152565b610b2f610b27825190565b610140840152565b50919050565b0190565b610140820151604080519084015180515f939284927f000000000000000000000000000000000000000000000000000000000000000092602090910190845b81811015610ba5578251601f1901805186825260c082208652905260209384019390920191600101610b78565b508060051b6040512094505050505f7f0000000000000000000000000000000000000000000000000000000000000000915060405160206060890151015f5b86811015610c11578151601f1901805186825260e082208552905260209283019290910190600101610be4565b505060408051600587901b9020601f198a0180517f00000000000000000000000000000000000000000000000000000000000000008252928b01805197815260608c018051938152610140909c019a8b5261018082209390915295909552939097525050925250919050565b5f8063ffffffff8335169050600581901b610ca16020820160408051918201905290565b828152925060208381019085015f5b83811015610cdb57610cd3610ccd610cc88484610ce5565b611249565b82850152565b602001610cb0565b5050505050919050565b5f6104fa63ffffffff610cfd6104f68686610b358516565b16840190565b5f8063ffffffff8335169050600581901b610d276020820160408051918201905290565b828152925060208381019085015f5b83811015610cdb57610d53610ccd610d4e8484610ce5565b611bdf565b602001610d36565b5f8063ffffffff8335169050600581901b610d7f6020820160408051918201905290565b828152925060208381019085015f5b83811015610cdb57610dab610ccd610da68484610ce5565b611c21565b602001610d8e565b60608036155f80610dc78c8c85898b611c64565b91509150610dda8c8b8b8b8b8787612041565b9450945050505097509795505050505050565b5f8063ffffffff8335169050600581901b610e116020820160408051918201905290565b828152925060208381019085015f5b83811015610cdb57610e3d610ccd610e388484610ce5565b612173565b602001610e20565b5f610e4e611ac3565b5f805f80855190505f5b81811015610f59575f878281518110610e7357610e736157ba565b60209081029190910101518051909150600481608001516004811115610e9b57610e9b615351565b03610ea7575050610f51565b80519450610eb4816121b6565b5f8181526001602052604081209850909650610ed690879089903615156121ef565b50865460ff16610f4e5780610140015181606001515114610ef957610ef961227d565b610f088587846020015161228a565b865460ff191660011787556040517ff280791efe782edcf06ce15c8f4dff17601db3b88eb3805a0db7d77faf757f0490610f4590889084906158bd565b60405180910390a15b50505b600101610e58565b5060019695505050505050565b5f8063ffffffff8335169050600581901b610f8a6020820160408051918201905290565b828152925060208381019085015f5b83811015610cdb57610fb6610ccd610fb18484610ce5565b611054565b602001610f99565b5f8063ffffffff8335169050600581901b610fe26020820160408051918201905290565b828152925060208381019085015f5b83811015610cdb5761100e610ccd6110098484610ce5565b612326565b602001610ff1565b60605f36151590505f8061102e8888858b5189611c64565b9150915061103b82612359565b6110488887848885612398565b98975050505050505050565b5f61106761020060408051918201905290565b60a0810180825290915061108361107d84610aac565b8261246b565b61108f60016020840152565b61109b60016040840152565b6110b86110b16110ac856020610ce5565b6124a1565b6060840152565b610b2f6110c36124c9565b6080840152565b835160808101515f91906110f160048260048111156110eb576110eb615351565b146124e3565b5f80806111008a361515612586565b60408051600180825281830190925293965091945092505f9190816020015b61112761504f565b81526020019060019003908161111f5790505090508a815f8151811061114f5761114f6157ba565b6020026020010181905250611164818b61277e565b6111708684848b6128f7565b6040805160018082528183019092525f9160208083019080368337509192505050361515600487818111156111a7576111a7615351565b146111ca576111b88d83885f6129f7565b6111c486868684612a49565b506111dc565b6111d9888e6080015183612b4d565b95505b6111e7888c8c612c1d565b85825f815181106111fa576111fa6157ba565b6020026020010181815250506112118d8388612d40565b61122e86895f01518a602001518d8c604001518d60600151612e0d565b611236611a70565b5060019c9b505050505050505050505050565b5f61125c61020060408051918201905290565b905061127060208381019083016040611b40565b60a0810180825261128361107d84610aac565b6112946110b16110ac856060610ce5565b610b2f6110c36110ac856080610ce5565b60605f805f6112b2612e72565b90505f7f0000000000000000000000000000000000000000000000000000000000000000905060605f5281602052806040526303312e3660635260a05ff35b5f6112fa611ac3565b5f8083815b81811015611411573687878381811061131a5761131a6157ba565b905060200281019061132c919061599f565b90505f61133c602083018361551d565b90505f61134f604084016020850161551d565b90505f61136260a08501608086016159be565b905081331483331417156004821417871796505f61139661138b6113838790565b610abc6104e3565b866101400135610b39565b5f8181526001602052604090819020805461ffff19166101001781559051909a509091506001600160a01b0380851691908616907f6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d906113f99085815260200190565b60405180910390a385600101955050505050506112ff565b5050801561142157611421612f4f565b506001949350505050565b63a61be9f05f52806020526024601cfd5b5f806114485f6124e3565b611450612f5c565b42610164351115426101443511171561147e576321ccfeb75f5261014435602052610164356040526044601cfd5b610204356102643510156114995763466aa6165f526004601cfd5b7f0000000000000000000000000000000000000000000000000000000000000000608081905260a08790526060602460c037604060646101203760e060802061016052610264356102043560051b6102a0016001820181526020810190508881526080602460208301376101608860a0528760c0525f60e0525f6102043593505f5b8481101561156f578060400261028401602081610100376040816101203760208101358317925060208401935060e0608020845260a0850194508b85528a602086015260408160608701375060010161151b565b6001850160051b610160206060526102643594505b848110156115bf578060400261028401925060a0840193508a8452896020850152604083606086013760208301359190911790600101611584565b506001600160a01b038111156115dc576339f3e3fd5f526004601cfd5b50505050505f7f00000000000000000000000000000000000000000000000000000000000000009050806080528360a052606060c460c0376020610104610120375060c06080205f9081526020812060e05260843590611650826001600160a01b03165f9081526020819052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000060808190529091506040608460a03760605161010052896101205260a061014461014037816101e05261018060802094505050506102043560051b61018001828152336020820152608060408201526101206060820152600160808201528360a0820152606060c460c083013760a061026435026101e00160a4356084357f9d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f318385a35f60605260608101820160405250505f61172c83612fa7565b90506117388389612ff8565b7101000000000000000000000000000001000182559150509550959350505050565b60c43560843560e4356101043584156117cb576117768161304d565b5f6040519050632671a55160e11b815260206004820152600160248201528660448201528460648201528360848201523360a48201528260c48201528160e48201526117c5868261010461305f565b5061181c565b60028660058111156117df576117df615351565b0361180657806001146117f5576117f581613116565b61180184843385613127565b61181c565b61180f8161304d565b61181c84843385856131dc565b505050505050565b346064356084356102643560061b5f80805b838110156118755761028481013592506102a481013591508683111561185e5761185e6132b3565b828703965061186d82846132c0565b604001611836565b5085851115611886576118866132b3565b61189084866132c0565b8486111561181c5761181c338688036132c0565b6118ae81836132f6565b816118d557826001146118c4576118c483613116565b6118d087878787613127565b6118e6565b6118e6828260028a8a8a8a8a613314565b50505050505050565b6118f88361304d565b61190281836132f6565b81611914576118d087878787876131dc565b6118e6828260038a8a8a8a8a613314565b5f805f805f861561194a57505060843592503391505060c4356101043560e43561195f565b50339350506084359150506024356064356044355b801561196d5761196d613393565b50600586901b6101e403356102643560061b5f80805b838110156119c45761028481013592506102a481013591508a156119ae576119ab83876159dc565b95505b6119bc878a8486898f6133a0565b604001611983565b506119d386898988888e6133a0565b50505050505050505050565b60408151146119eb5750565b5f6119f7826020015190565b90506103fd81836133d5565b611a1f8260a4355b331415600182116004909210919091161690565b15611a6b57805f611a2e825190565b9050608081901c63ffffffff8216611a4684826133f9565b601c840163fb5014fc6060529350611a6260a435888685613409565b5f6060526118e6565b505050565b7f00000000000000000000000000000000000000000000000000000000000000008015611aa1575f63929eee145d50565b63929eee145480611ab7575f63929eee145d5050565b50600163929eee145550565b7f00000000000000000000000000000000000000000000000000000000000000008015611b025763929eee145c15611b0257637fa8a9875f526004601cfd5b806103ff5763929eee145480611b2a5763929eee145c15611b2a57637fa8a9875f526004601cfd5b60018111156103fd57637fa8a9875f526004601cfd5b80838337505050565b5f63ffffffff8235166040519150808252602082018160051b81018060a084026020870183378293505b81841015611b8c5780845260209093019260a001611b73565b60405250919392505050565b9052565b5f63ffffffff8235166040519150808252602082018160051b81018060c084026020870183378293505b81841015611b8c5780845260209093019260c001611bc6565b5f611bf160a060408051918201905290565b9050611bff82826080611b40565b611c1c611c15611c10846080610ce5565b613451565b6080830152565b919050565b5f63ffffffff8235166040519150808252602082018160051b8101808360061b6020870183378293505b81841015611b8c57808452602090930192604001611c4b565b60605f611c7160016124e3565b86515f90600160e61b82351690806001600160401b03811115611c9657611c96615773565b604051908082528060200260200182016040528015611cbf578160200160208202803683370190505b50945060010160051b91505f60205b83811015611ec0575f611ce48c83613cf86104e3565b90505f805f611cf3848e612586565b6001600160781b0382166020880152919450925090505f829003611d1a5750505050611eb8565b6001600160781b0381166040808601919091528a8601849052845160a081015160c0820151608083015192909301518051600184119d909d179c600490931099509092915f5b81811015611e02575f838281518110611d7b57611d7b6157ba565b602002602001015190508b8151108d179c505f611d9d89898460800151613488565b90508160800151826060015103611dba5760608201819052611dcf565b611dc989898460600151613488565b60608301525b5f611de88360600151838a8a611de3361590565b6134c4565b606084018190526080909301929092525050600101611d60565b5087516060015180515f5b81811015611eac575f838281518110611e2857611e286157ba565b602002602001015190505f611e428b8b8460800151613488565b90508160800151826060015103611e5f5760608201819052611e74565b611e6e8b8b8460600151613488565b60608301525b5f611e898360600151838c8c611de336151590565b6060840181905260a0840180516080909501949094529092525050600101611e0d565b50505050505050505050505b602001611cce565b50506001600160e61b018103611ed857611ed8613517565b50611ee3888861277e565b5f8060205b8381101561202657858101519250821561201e575f611f0a8c83613cf86104e3565b9050885f03611f25575f87830181905260209091015261201e565b60048151608001516004811115611f3e57611f3e615351565b14611fc157611f578188866001600587901c038e613524565b611f6d575f87830181905260209091015261201e565b602080820151604083015183516080810151930151611fa69388936001600160781b039081169316913314156001909111168e17612a49565b611fbc575f87830181905260209091015261201e565b611fec565b611fd3815f015182608001518c612b4d565b878301819052935083611fec575f60209091015261201e565b886001900398505f815f0151905061201785825f015183602001518c85604001518660600151612e0d565b6001935050505b602001611ee8565b50806120345761203461357f565b5050509550959350505050565b85518551606091829161205481836159ef565b6001600160401b0381111561206b5761206b615773565b6040519080825280602002602001820160405280156120a457816020015b612091615082565b8152602001906001900390816120895790505b5092505f5b828110156120fc576120d78c5f8d84815181106120c8576120c86157ba565b60200260200101518c8c61358c565b8482815181106120e9576120e96157ba565b60209081029190910101526001016120a9565b505f5b818110156121555761212e8c60018c848151811061211f5761211f6157ba565b60200260200101518c5f61358c565b8484830181518110612142576121426157ba565b60209081029190910101526001016120ff565b506121638b84888a896135db565b9350505097509795505050505050565b5f6121846040808051918201905290565b905061219e61219a61219584610aac565b6138c4565b8252565b611c1c6121af6110ac846020610ce5565b6020830152565b5f6121cb8260600151518361014001516138e3565b81516001600160a01b03165f9081526020819052604090205461040b908390610b39565b82545f90610100900460ff161561221657811561220f5761220f856138f3565b505f61062b565b83546201000090046001600160781b031680156122715783156122415761223c86613904565b612271565b8454600160881b90046001600160781b031681106122715782156122685761226886613915565b5f91505061062b565b50600195945050505050565b632165628a5f526004601cfd5b33831480156122995750505050565b5f6122a2612e72565b61190160f01b5f9081526002828152602287815260428320908390528651939450929190601f601d840116106102e2606219840110161561230c576122e78688613926565b61190160f01b5f9081526002869052602282815260428220919052909750905061230f565b50815b61231c888285858a6139bc565b5050505050505050565b5f6123376040808051918201905290565b905061234861219a610da684610aac565b611c1c6121af610da6846020610ce5565b80518060051b6040019050602082038051602082527f4b9f2d36e1b4c93de62cc077b00b1a91d84b6c31b4a14e012718dcca230689e78383a190525050565b8351606090806001600160401b038111156123b5576123b5615773565b6040519080825280602002602001820160405280156123ee57816020015b6123db615082565b8152602001906001900390816123d35790505b5091505f5b81811015612451575f87828151811061240e5761240e6157ba565b6020026020010151905061242b89825f0151836020015185613b05565b84838151811061243d5761243d6157ba565b6020908102919091010152506001016123f3565b5061245f87838787876135db565b50505b95945050505050565b6124788282610160611b40565b612489610af4610aef846040610ce5565b6103fd61249a610b0a846060610ce5565b6060830152565b6040518135601f0163ffffffe01660200180838337913563ffffffff16815290810160405290565b5f6124db602060408051918201905290565b5f8152905090565b7f000000000000000000000000000000000000000000000000000000000000000080156125315763929eee145c1561252257637fa8a9875f526004601cfd5b8160010163929eee145d6103fd565b63929eee1454806125645763929eee145c1561255457637fa8a9875f526004601cfd5b8260010163929eee145d506103fd565b6001811461257957637fa8a9875f526004601cfd5b505060020163929eee1455565b5f805f80855f015190506125a38160a001518260c0015187613caa565b6125b657505f9250829150819050612777565b602086015160408701516001600160781b0391821694501691505f6004826080015160048111156125e9576125e9615351565b03612616576001838502189050801561260457612604613ccd565b50600193508392508291506127779050565b50818311831517801561262b5761262b613ccd565b608082015160011615848411161561264557612645613cda565b61264e826121b6565b5f81815260016020526040812091965061266c90879083908a6121ef565b61267f57505f9350839250612777915050565b805460ff1661269a5761269a835f0151878a6060015161228a565b8054608881901c806126ae57869150612771565b6001600160781b038260101c169150600186036126d2578181039650809550612771565b8086036126ed57908601858103868211029096039590612771565b80860296810291909502810186810387821102918290039695919003906001600160781b0386111561277157612731565b5f5b8215610b2f57908290069190612720565b61274461273e878461271e565b8861271e565b8015019687900496909504946001600160781b0386111561277157634e487b715f5260116020526024601cfd5b50505050505b9250925092565b805182515f5b8281101561286d575f84828151811061279f5761279f6157ba565b602002602001015190505f815f015190508381106127c4576127c48260200151613ce7565b5f8782815181106127d7576127d76157ba565b6020026020010151905080602001516001600160781b03165f036127fd57505050612865565b80516040808201519085015163bfb3f8ce5f8760200151600181111561282557612825615351565b14612841575f612836856060613cf8565b9350636088d7de9150505b8251821061285257805f526004601cfd5b61285d838389613d03565b505050505050505b600101612784565b505f5b818110156128f0575f85828151811061288b5761288b6157ba565b6020026020010151905080602001516001600160781b03165f036128af57506128e8565b8051608081015160608201516128cc9085908363a8930e9a613db4565b6128e48483604001518363d69293326104e3613db490565b5050505b600101612870565b5050505050565b60a084015160c08501516040860151515f805b82811015612974575f89604001518281518110612929576129296157ba565b602002602001015190505f815f01519050801584179350505f612960826060015183608001518c8c8b8b61295b361590565b613e1b565b60608301525060800186905260010161290a565b506080880151600481108216801561298e5761298e613517565b505050506060860151515f5b8181101561231c575f886060015182815181106129b9576129b96157ba565b602002602001015190505f6129de826060015183608001518b8b8a8a61295b36151590565b60608301525060a081015160809091015260010161299a565b8351608081015160208201513314156001821160049092109190911616156128f0575f80612a2c858489608001518988613e56565b63fb5014fc6060529092509050611a628360200151868484613409565b5f848152600160205260408120805482908290608881901c80612a6e57889150612af6565b6001600160781b038260101c169150808803612a9257908801878111935090612af6565b97880297808802979190910288018781119350906001600160781b038083119089111715612af657612ac4888361271e565b8015019788900497909104906001600160781b038083119089111715612af657634e487b715f5260116020526024601cfd5b508215612b2f578515612b23576040516310fda3e160e01b8152600481018a905260240160405180910390fd5b5f94505050505061062b565b8660881b8160101b1760011782556001945050505050949350505050565b5f83610140015184606001515114612b6757612b6761227d565b83515f8080612b768888613fd4565b915091505f8082845f885af16001600160a01b0385165f908152600260205260409020805460018101909155606086901b189550925082612bd5578515612bc857612bbf61407e565b612bc8856140c5565b505f93506104fa92505050565b505050505f805f612bf2876040015188606001516104e36140d690565b925092509250825f14612c0857612c08846140c5565b60408701919091526060860152509392505050565b6040805160208082528183019092525f916020820181803683375050506040850151519091505f5b81811015612c95575f86604001518281518110612c6457612c646157ba565b60200260200101519050846080820152612c8c81885f0151896101200151876104e361434f90565b50600101612c45565b50506060840151515f90815b81811015612d23575f87606001518281518110612cc057612cc06157ba565b602002602001015190505f6005811115612cdc57612cdc615351565b81516005811115612cef57612cef615351565b03612d0b574793508381606001511115612d0b57612d0b6132b3565b612d1a8133898861434f6104e3565b50600101612ca1565b5050612d2e826119df565b504780156128f0576128f033826132c0565b8251608081015160208201515f92839283928392916004811060019091111633909114151615612da257612d83612d7d61010083015190565b5190565b88614444565b9093509150612d9460208201612d79565b945063fb5014fc9350612dee565b600481608001516004811115612dba57612dba615351565b0361231c57805194505f8560601b9050612ddb87838b608001518b85614485565b639397928596509094509250612dee9050565b612df86060859052565b612e0485878585613409565b5f60605261231c565b60608290506060829050856001600160a01b0316876001600160a01b03167f9d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f318a888686604051612e609493929190615a3b565b60405180910390a35050505050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000004614612f2a575060408051608080517f00000000000000000000000000000000000000000000000000000000000000005f9081527f00000000000000000000000000000000000000000000000000000000000000006020527f0000000000000000000000000000000000000000000000000000000000000000855246606090815230845260a08220949095529093529190915290565b507f000000000000000000000000000000000000000000000000000000000000000090565b63fed398fc5f526004601cfd5b600435602014610224356102401416610244356102606102643560061b01141660186101243510600160a01b60843560a4351760c4356024351717101616806103ff576103ff614550565b5f8181526001602081905260409091209060843590612fcc90849084903615156121ef565b50815460ff16610b2f57610b2f8184612ff3602463ffffffff6102443516016124a16104e3565b61228a565b5f6130058260a435611a0b565b1561040b575f805f6130168661455d565b63fb5014fc6060529194509250905061303660a43587601c860185613409565b5f60605260209190910160801b1781529392505050565b806103ff576391b3e5145f526004601cfd5b604080517f000000000000000000000000000000000000000000000000000000000000000060ff60a01b175f90815260208690527f000000000000000000000000000000000000000000000000000000000000000083526055600b20919092526001600160a01b031690505f805f805260205f85875f875af191505f519050816130f4576130eb61407e565b6130f483614615565b6001600160e01b03198116632671a55160e11b1461181c5761181c8684614626565b6369f958275f52806020526024601cfd5b833b61313e57635f15d6725f52836020526024601cfd5b6040516323b872dd60e01b5f528360045282602452816044525f8060645f80895af1806131ce573d156131ac57601f3d0160051c8260051c8160030281831115613195578183036003028280028480020360091c01015b5a6020820110156131a8573d5f803e3d5ffd5b5050505b63f486bc875f5285602052846040528360605282608052600160a05260a4601cfd5b5060405250505f6060525050565b843b6131f357635f15d6725f52846020526024601cfd5b60405160805160a05160c051637921219560e11b5f528760045286602452856044528460645260a06084525f60a4525f8060c45f808d5af180613298573d1561327757601f3d0160051c8560051c8160030281831115613260578183036003028280028480020360091c01015b5a602082011015613273573d5f803e3d5ffd5b5050505b63f486bc875f52896020528860405287606052866080528560a05260a4601cfd5b5060809290925260a05260c05260405250505f606052505050565b638ffff9805f526004601cfd5b6132c98161304d565b5f805f805f85875af1905080611a6b576132e161407e565b63bc806b965f5282602052816040526044601cfd5b5f613302836020015190565b9050818114611a6b57611a6b836119df565b5f602088510361334e5750604080885260208089018a9052632671a55160e11b91890191909152604488015260016064880181905261335d565b50606487018051600101908190525b603c60c082028901038781528660208201528560408201528460608201528360808201528260a082015250505050505050505050565b636ab37ce75f526004601cfd5b6133a98361304d565b6133b381836132f6565b816133c4576118018686868661463b565b61181c828260018989895f8a613314565b6064810151604082019060c0026044016133f084838361305f565b50506020905250565b6317b1f9428252600181526103fd565b5f806001600160e01b03198451165f805260205f85875f8b5af15f51909350149050816134425761343861407e565b846080526024607cfd5b8061181c57846080526024607cfd5b5f8063ffffffff83351690506001810160051b6134748160408051918201905290565b9250613481848483611b40565b5050919050565b5f8284036134975750806104fa565b82848309156134ad5763c63cf0895f526004601cfd5b5f6134b88584615ad7565b93909304949350505050565b5f84861461350d57838303428590038082035f6134e1838a615ad7565b6134eb838c615ad7565b6134f591906159ef565b90508584878303040181151502945050505050612462565b5092949350505050565b6312d3f5a35f526004601cfd5b8451608081015160208201515f92916004811060019091111633909114151615610f59575f8061355b87848b608001518b8a613e56565b91509150613575836020015188848463fb5014fc8a61472f565b9350505050612462565b63d5da9a1b5f526004601cfd5b613594615082565b83515f036135a5576135a58561479c565b5f8560018111156135b8576135b8615351565b036135ce576135c9868583856147ad565b612462565b612462868583338761491d565b84516060905f816001600160401b038111156135f9576135f9615773565b604051908082528060200260200182016040528015613622578160200160208202803683370190505b506040805160208082528183019092529192505f9190602082018180368337505089519192505060010160051b60205b818110156136b1575f6136688b83613cf86104e3565b805160608101519192509080156136a657478111825115161561369257638ffff9805f526004601cfd5b6136a682846020015185604001518961434f565b505050602001613652565b50505f5b8381101561381d575f8a82815181106136d0576136d06157ba565b6020026020010151905080602001516001600160781b03165f03613717575f848381518110613701576137016157ba565b9115156020928302919091019091015250613815565b600184838151811061372b5761372b6157ba565b911515602092830291909101909101528051604081015180515f5b818110156137b0575f838281518110613761576137616157ba565b6020026020010151905080606001515f1461379d57608081018051908e905285516101208701516137979184918c61434f6104e3565b60808201525b6080810151606090910152600101613746565b505050606081015180515f5b8181101561380f575f8382815181106137d7576137d76157ba565b602002602001015190505f81606001519050805f146137fb576137fb888483614a54565b5060a08101516060909101526001016137bc565b50505050505b6001016136b5565b50613827816119df565b4780156138385761383833826132c0565b85156138ae575f5b848110156138ac5783818151811061385a5761385a6157ba565b6020026020010151156138a4576138a48b828151811061387c5761387c6157ba565b60200260200101518a8b8481518110613897576138976157ba565b6020026020010151612d40565b600101613840565b505b6138b6611a70565b509098975050505050505050565b5f6138d761016060408051918201905290565b9050611c1c828261246b565b808210156103fd576103fd614a6d565b631a5155745f52806020526024601cfd5b63ee9e0e635f52806020526024601cfd5b6310fda3e15f52806020526024601cfd5b5f805f84516001811660410380820360051c9250808752806020018701915050805160e81c6003820191506001811660051b868152825160208218525060015b838110156139925760405f2082821c60051b602090811691825293840180519190941852600101613966565b50505060405f2091505f6139a582614a7a565b5f9081526020939093525050604090209392505050565b5f805f528151602083038051826041035f60018211613a1f57604087015160608801515f1a8315613a0057601b8260ff1c0190506001600160ff1b03821660408a01525b88528a855260205f60808760015afa508385528588526040880152505f515b8a148a1515169450849050613ae857858552604082526044850380516040870351630b135d3f60e11b835289604089035260205f60648b01858f5afa96508615613adc57630b135d3f60e11b5f5114613adc578b3b15613a8657634f7fb80d5f526004601cfd5b6001866041031115613a9f57638baa579f5f526004601cfd5b64010100000060608901515f1a1a15604187141615613acf57631f003d0a5f5260608801515f1a6020526024601cfd5b63815e1d645f526004601cfd5b8385529152603f198601525b5050508061181c57613af861407e565b634f7fb80d5f526004601cfd5b613b0d615082565b8251158451151715613b26576398e9db6e5f526004601cfd5b613b2e615082565b613b3b8685835f8061491d565b805160608101515f03613b505750905061062b565b613b6087878584608001516147ad565b82516040828101519082015160208085015190840151855185511891181791181715613b975763bced929d5f52846020526024601cfd5b806060015182606001511115613c1e575f865f81518110613bba57613bba6157ba565b60200260200101519050816060015183606001510389825f015181518110613be457613be46157ba565b60200260200101515f015160600151826020015181518110613c0857613c086157ba565b6020026020010151606001818152505050613c9f565b5f875f81518110613c3157613c316157ba565b60200260200101519050826060015182606001510389825f015181518110613c5b57613c5b6157ba565b60200260200101515f015160400151826020015181518110613c7f57613c7f6157ba565b602002602001015160600181815250508260600151826060018181525050505b505050949350505050565b428084111590831116818015613cbe575080155b156104fa576104fa8484614e89565b635a052b325f526004601cfd5b63a11b63ff5f526004601cfd5b63133c37c65f52806020526024601cfd5b5f6104fa8284015190565b5f838381518110613d1657613d166157ba565b602002602001015190505f815f01519050613d318160031090565b613d3d57613d3d614e9e565b60408201518015613d6057613d5b8460600151828660800151614eab565b613d73565b60808401515115613d7357613d73614ef5565b600119820183816005811115613d8b57613d8b615351565b90816005811115613d9e57613d9e615351565b9052505050606090920151604090910152505050565b82515f5b8181101561181c575f858281518110613dd357613dd36157ba565b60209081029190910101518051604082015191925090600382116004881415821515171615613e0d57855f5288602052836040526044601cfd5b505050806001019050613db8565b5f868803613e3557613e2e868689613488565b90506107e8565b6107e5613e4387878b613488565b613e4e88888b613488565b8686866134c4565b5f805f613e61614f02565b6301e4d72a815260208082015260408101898152336060830152601c820194509091508751604082015287613ea1613e9a60a083015190565b60e0840152565b613eb7613eaf60c083015190565b610100840152565b613ecd613ec560e083015190565b610120840152565b610140613edb816060850152565b5f613ee7604084015190565b90505f613ef682848701614f0c565b928301929050613f07836080870152565b5f613f13606086015190565b90505f613f2282868901614f72565b948501949050613f338560a0890152565b5f613f408e878a01614fd7565b959095019450613f518560c0890152565b8685015f613f5f8e83614ff6565b602497019687019a50613f7b9050613f768c8c0190565b615026565b8060408b901b60808b901b17178f610100018181525050613fa58c82611b9890919063ffffffff16565b60058c8e51613fb491906159dc565b613fbf911b8b6159dc565b99505050505050505050509550959350505050565b5f8083613fdf614f02565b639891976581523360208201908152608060408301819052601c9092019450905f61400b604085015190565b90505f61401a82848601614f0c565b92830192905061402b836040860152565b5f614037606087015190565b90505f61404682868801614f0c565b948501949050614057856060880152565b895f61406582898901614fd7565b9a9d96909a016004019b50949950505050505050505050565b3d156140c357601f3d0160051c60405160051c81600302818311156140b0578183036003028280028480020360091c01015b5a602082011015611a6b573d5f803e3d5ffd5b565b63939792855f52806020526024601cfd5b60603d105f8080808080866141485760405f803e5f51935060205192503d60208501113d60208501118082179850505086614148576020845f3e5f51915060208360203e60205190508160071b60208501018160a0026020850101803d10823d101761ffff8486171117985050505f80525b8661417a575f8061415d84602088018d614183565b9250975061416f83602087018c614263565b929092179850909550505b50505050612777565b5f806040519150825160c08602602001830160405285835260208660010160051b8085018360010160051b87016141c1858b81811090829003020190565b60010160051b8a861196505b8085101561422157828589015260808a843e6060830151955085608084015260608201518681116141fe858561430a565b17881797505060808a01995060a08301925060a0820191506020850194506141cd565b50505b81831015614257578083870152608088823e6060810151608082015260808801975060a081019050602083019250614224565b50505050935093915050565b604051815180851190808603818710028101602060e08202850181016040528185526001928301600590811b87019390920190911b908185015b8282101561425757808287015260a088823e60206060890160a083013e606081015160608501516142da6080840151608088015180159114171590565b818311176142e8848861430a565b60a09b909b019a179690961795505060c093840193602092909201910161429d565b5f81516040830151801560038311161561432c57506040840151600119909101905b604085015181148551831460208701516020870151141616159250505092915050565b5f8451600581111561436357614363615351565b036143a057604084015160208501516001600160a01b0316171561438957614389613393565b61439b846080015185606001516132c0565b61443e565b6001845160058111156143b5576143b5615351565b036143e6576040840151156143cc576143cc613393565b61439b8460200151848660800151876060015186866133a0565b6002845160058111156143fb576143fb615351565b0361441f5761439b84602001518486608001518760400151886060015187876118a4565b61443e84602001518486608001518760400151886060015187876118ef565b50505050565b608082901c63ffffffff604084901c8116908085169061446c9084906317b1f94290611b9816565b601c8301925061447c8482614ff6565b50509250929050565b5f8061448f614f02565b63f4dd92ce815287841860a0820152601c8101925060200160a0808252875f6144b9604083015190565b90505f6144c882858701614f0c565b9384019390506144d9846020870152565b5f6144e5606085015190565b90505f6144f482878901614f72565b958601959050614505866040890152565b5f6145128d888a01614fd7565b9687019690506145238760608a0152565b5f6145308d898b01614ff6565b905080880197508760040199505050505050505050509550959350505050565b6339f3e3fd5f526004601cfd5b6301e4d72a6102043560051b6080019081525f808260208082015260408101858152336060830152601c9190910190614597608435610af4565b6145a861014460e083016060611b40565b6101406145b6816060840152565b6145c460a082016080840152565b61016060a06102643581029290920101906145e0908290840152565b6145ea5f82840152565b6020016145f88160c0840152565b5f9181019182526020820196909652939560449095019492505050565b63d13d53d45f52806020526024601cfd5b631cf99b265f5281602052806040526044601cfd5b6040516323b872dd60e01b5f5283600452826024528160445260205f60645f80895af1803d15601f3d1160015f51141617163d151581166147205780873b151516614720578061470f57816146f2573d156146d157601f3d0160051c8360051c81600302818311156146ba578183036003028280028480020360091c01015b5a6020820110156146cd573d5f803e3d5ffd5b5050505b63f486bc875f528660205285604052846060525f6080528360a05260a4601cfd5b63988919235f52866020528560405284606052836080526084601cfd5b635f15d6725f52866020526024601cfd5b505060405250505f6060525050565b5f805f6001600160e01b03198751165f805260205f888a5f8e5af15f519093501490508161477b5783614766575f925050506106e0565b61476e61407e565b845f52876020526024601cfd5b8061478d57845f52876020526024601cfd5b50600198975050505050505050565b63375c24c15f52806020526024601cfd5b5f805f85865160051b87015b808210156148ca576020820191508851825151106147d9576147d96148fe565b81515160051b60208a01015180516020845101515f60408301516020850151158151841015171561480e5750505050506147b9565b8260051b60208201015191505060608101935083518901915083511589831060011b17881797508198505f84528a5193508615600181146148775760608220881860408d01516101208601511860208e0151865118171715614872576148726148fe565b6148c0565b8151855260208201516020860152604082015160408601528a6080860152835160208d015261012084015160408d015260608520975060208d019250868318156148c057865183525b50505050506147b9565b5050508160608551015280156148f757600181036148ef576391b3e5145f526004601cfd5b6148f761490b565b505061443e565b637fda72795f526004601cfd5b634e487b715f5260116020526024601cfd5b5f805f86875160051b88015b80821015614a1f576020820191508151518a51811061494a5761494a6148fe565b8060051b60208c01015190506020835101515f6060835101516020840151158151841015171561497d5750505050614929565b8260051b60208201015191505060608101925082518801915082511588831060011b17871796508197505f83528a5192508515600181146149cf5760a0822087146149ca576149ca6148fe565b614a16565b815184526020820151602085015260408201516040850152608082015160808501528a60208d01528960408d015260a08220965060208d01925085831815614a1657855183525b50505050614929565b50508551606001839052508015614a4d5760018103614a45576391b3e5145f526004601cfd5b614a4d61490b565b50506128f0565b63a5f542085f528260205281604052806060526064601cfd5b63466aa6165f526004601cfd5b5f614e80565b5f6009821015614bd9576005821015614b36576003821015614ae9577f832c58a5b611aadcfa6a082ac9d04bace53d8278387f10040347b7e98eb5b30260018314027fbf8e29b89f29ed9b529c154a63038ffca562f8d7cd1e2545dda53a1b582dde301861040b565b7ff3e8417a785f980bdaf134fa0274a6bf891eeb8195cd94b09d2aa651046e28bc60038314027fa02eb7ff164c884e5e2c336dc85f81c6a93329d8e9adf214b32729b894de2af11861040b565b6007821015614b8c577f25d02425402d882d211a7ab774c0ed6eca048c4d03d9af40132475744753b2a360058314027f1c19f71958cdd8f081b4c31f7caf5c010b29d12950be2fa1c95070dc47e30b551861040b565b7fb58d772fb09b426b9dece637f61ca9065f2b994f1464b51e9207f55f7c8f594860078314027f7ff98d9d4e55d876c5cfac10b43c04039522f3ddfb0ea9bfe70c68cfb5c7cc141861040b565b6011821015614d3157600d821015614c8e57600b821015614c41577f6f0ec38c21f6f583ab7f3c5413c773ffd5344c34fde1d390958e438bf667448f60098314027fd1d97d1ef5eaa37a4ee5fbf234e6f6d64eb511eb562221cd7edfbdde0848da051861040b565b7f32f4e7485d6485f9f6c255929b9905c62ba919758bbe231f231eaeecf33d810c600b8314027fbb98d87cc12922b83759626c5f07d72266da9702d19ffad6a514c73a89002f5f1861040b565b600f821015614ce4577f8df51df98847160517f5b1186b4bc3f418d98b8a7f17f1292f392d79d600d79e600d8314027f6b5b04cbae4fcb1a9d78e7b2dfc51a36933d023cf6e347e03d517b472a8525901861040b565b7fcc4886e37eedd9aacd6c1c2c9247197a621a71282e87a7cbc673f3736d9aa141600f8314027f1da3eed3ecef6ebaa6e5023c057ec2c75150693fd0dac5c90f4a142f9879fde81861040b565b6015821015614ddd576013821015614d90577f2d7a3ed6dab270fdb8e054b2ad525f0ce2a8b89cc76c17f0965434740f673a5560118314027fc3939feff011e53ab8c35ca3370aad54c5df1fc2938cd62543174fa6e7d858771861040b565b7f54b3212a178782f104e0d514b41a9a5c4ca9c980bf6597c3cecbf280917e202a60138314027f5a4f867d3d458dabecad65f6201ceeaba0096df2d0c491cc32e6ea4e643500171861040b565b6017821015614e33577fbb40bf8cea3a5a716e2b6eb08bbdac8ec159f82f380783db3c56904f15a43d0460158314027f3bd8cff538aba49a9c374c806d277181e9651624b3e31111bc0624574f8bca1d1861040b565b7f403be09941a31d05cfc2f896505811353d45d38743288b016630cce39435476a60178314027f1d51df90cba8de7637ca3e8fe1e3511d1dc2f23487d05dbdecb781860c21ac1c1861040b565b61040b82614a80565b6321ccfeb75f5281602052806040526044601cfd5b6394eb6af65f526004601cfd5b5f835f5260205f2060208301835160051b81015b80821015614ee657815180841160051b93845260209384185260405f209290910190614ebf565b5050831490508061443e5761443e5b6309bde3395f526004601cfd5b5f61041b60405190565b5f825180835260208401602084018260051b82015b80831015614f5f5782518051835260208101516020840152604081015160408401526060810151606084015250602083019250608082019150614f21565b5050508060071b60200191505092915050565b5f80614f7c845190565b8084529050602084810190600583901b860181019085015b82821115614fc4575f614fa684615030565b9050614fb4818360a0615039565b506020929092019160a001614f94565b60a0840260200194505050505092915050565b5f63ffffffe0603f614fe7855190565b0116905061040b838383615039565b5f80615000845190565b8084529050600581901b61501b602086810190860183615039565b602001949350505050565b6103ff6040829052565b5f61040b825190565b8082828560045afa80153d15171561443e575f80fd5b6040518060a001604052806150626150c4565b81525f602082018190526040820152606080820181905260809091015290565b60408051610100810182525f606082018181526080830182905260a0830182905260c0830182905260e083018290528252602082018190529181019190915290565b6040518061016001604052805f6001600160a01b031681526020015f6001600160a01b0316815260200160608152602001606081526020015f600481111561510e5761510e615351565b81525f6020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b5f6020828403121561514d575f80fd5b81356001600160401b03811115615162575f80fd5b820161024081850312156104fa575f80fd5b5f81518084525f5b818110156151985760208185018101518683018201520161517c565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6104fa6020830184615174565b5f602082840312156151d9575f80fd5b5035919050565b5f602082840312156151f0575f80fd5b81356001600160401b03811115615205575f80fd5b820161016081850312156104fa575f80fd5b5f8083601f840112615227575f80fd5b5081356001600160401b0381111561523d575f80fd5b6020830191508360208260051b8501011115615257575f80fd5b9250929050565b80356001600160a01b0381168114611c1c575f80fd5b5f805f805f805f805f805f60e08c8e03121561528e575f80fd5b6001600160401b03808d3511156152a3575f80fd5b6152b08e8e358f01615217565b909c509a5060208d01358110156152c5575f80fd5b6152d58e60208f01358f01615217565b909a50985060408d01358110156152ea575f80fd5b6152fa8e60408f01358f01615217565b909850965060608d013581101561530f575f80fd5b506153208d60608e01358e01615217565b909550935060808c0135925061533860a08d0161525e565b915060c08c013590509295989b509295989b9093969950565b634e487b7160e01b5f52602160045260245ffd5b60068110611b9857611b98615351565b615380828251615365565b6020818101516001600160a01b0390811691840191909152604080830151908401526060808301519084015260809182015116910152565b5f815180845260208085019450602084015f5b8381101561540d5781516153e0888251615375565b808401516001600160a01b031660a08901526040015160c088015260e090960195908201906001016153cb565b509495945050505050565b604080825283519082018190525f906020906060840190828701845b82811015615452578151151584529284019290840190600101615434565b50505083810360208501526106e081866153b8565b5f8060208385031215615478575f80fd5b82356001600160401b0381111561548d575f80fd5b61549985828601615217565b90969095509350505050565b5f805f80604085870312156154b8575f80fd5b84356001600160401b03808211156154ce575f80fd5b6154da88838901615217565b909650945060208701359150808211156154f2575f80fd5b506154ff87828801615217565b95989497509550505050565b602081525f6104fa60208301846153b8565b5f6020828403121561552d575f80fd5b6104fa8261525e565b5f8060408385031215615547575f80fd5b82356001600160401b0381111561555c575f80fd5b83016040818603121561556d575f80fd5b946020939093013593505050565b5f805f805f6080868803121561558f575f80fd5b85356001600160401b03808211156155a5575f80fd5b9087019060a0828a0312156155b8575f80fd5b909550602087013590808211156155cd575f80fd5b506155da88828901615217565b909550935050604086013591506155f36060870161525e565b90509295509295909350565b5f805f805f805f8060a0898b031215615616575f80fd5b88356001600160401b038082111561562c575f80fd5b6156388c838d01615217565b909a50985060208b0135915080821115615650575f80fd5b61565c8c838d01615217565b909850965060408b0135915080821115615674575f80fd5b506156818b828c01615217565b999c989b509699959896976060870135966080013595509350505050565b5f805f805f805f6080888a0312156156b5575f80fd5b87356001600160401b03808211156156cb575f80fd5b6156d78b838c01615217565b909950975060208a01359150808211156156ef575f80fd5b6156fb8b838c01615217565b909750955060408a0135915080821115615713575f80fd5b506157208a828b01615217565b909450925061573390506060890161525e565b905092959891949750929550565b606081525f6157536060830186615174565b6020830194909452506001600160a01b0391909116604090910152919050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f826157b557634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b8381101561540d5781516157f6888251615365565b838101516001600160a01b03168885015260408082015190890152606080820151908901526080908101519088015260a090960195908201906001016157e1565b5f815180845260208085019450602084015f5b8381101561540d57815161585f888251615365565b808401516001600160a01b0390811689860152604080830151908a0152606080830151908a0152608080830151908a015260a091820151169088015260c0909601959082019060010161584a565b60058110611b9857611b98615351565b828152604060208201526158dd6040820183516001600160a01b03169052565b5f60208301516158f860608401826001600160a01b03169052565b5060408301516101608060808501526159156101a08501836157ce565b91506060850151603f198584030160a08601526159328382615837565b925050608085015161594760c08601826158ad565b5060a085015160e085015260c0850151610100818187015260e0870151915061012082818801528188015192506101409150828288015280880151848801525080870151610180870152505050809150509392505050565b5f823561015e198336030181126159b4575f80fd5b9190910192915050565b5f602082840312156159ce575f80fd5b8135600581106104fa575f80fd5b8181038181111561040b5761040b615787565b8082018082111561040b5761040b615787565b5f815180845260208085019450602084015f5b8381101561540d57615a28878351615375565b60a0969096019590820190600101615a15565b5f6080808301878452602060018060a01b03808916602087015260406080604088015283895180865260a08901915060208b0195505f5b81811015615ab3578651615a87848251615365565b808701518616848801528481015185850152606090810151908401529585019591870191600101615a72565b50508781036060890152615ac7818a615a02565b9c9b505050505050505050505050565b808202811582820484141761040b5761040b61578756fea264697066735822122096875ef1894bdfe7b2f5edc7307457fb7330844836c1e3538c6f67427177396564736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class Seaport__factory extends wL.ContractFactory{constructor(...D){D.length>1?super(...D):super(_L,TL,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new wL.Interface(_L)}static connect(D,te){return new wL.Contract(D,_L,te)}}vL.Seaport__factory=Seaport__factory,Seaport__factory.bytecode=TL,Seaport__factory.abi=_L,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.Seaport__factory=D.conduit=void 0,D.conduit=cL;var te=vL;Object.defineProperty(D,"Seaport__factory",{enumerable:!0,get:function(){return te.Seaport__factory}})}(oL),Object.defineProperty(sL,"__esModule",{value:!0}),sL.contracts=void 0,sL.contracts=oL;var AL={},EL={},PL={},SL={};Object.defineProperty(SL,"__esModule",{value:!0}),SL.Conduit__factory=void 0;const CL=YO,IL=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"address",name:"channel",type:"address"}],name:"ChannelClosed",type:"error"},{inputs:[{internalType:"address",name:"channel",type:"address"},{internalType:"bool",name:"isOpen",type:"bool"}],name:"ChannelStatusAlreadySet",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidController",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidItemType",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"channel",type:"address"},{indexed:!1,internalType:"bool",name:"open",type:"bool"}],name:"ChannelUpdated",type:"event"},{inputs:[{components:[{internalType:"enum ConduitItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ConduitTransfer[]",name:"transfers",type:"tuple[]"}],name:"execute",outputs:[{internalType:"bytes4",name:"magicValue",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],internalType:"struct ConduitBatch1155Transfer[]",name:"batchTransfers",type:"tuple[]"}],name:"executeBatch1155",outputs:[{internalType:"bytes4",name:"magicValue",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"enum ConduitItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ConduitTransfer[]",name:"standardTransfers",type:"tuple[]"},{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],internalType:"struct ConduitBatch1155Transfer[]",name:"batchTransfers",type:"tuple[]"}],name:"executeWithBatch1155",outputs:[{internalType:"bytes4",name:"magicValue",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"channel",type:"address"},{internalType:"bool",name:"isOpen",type:"bool"}],name:"updateChannel",outputs:[],stateMutability:"nonpayable",type:"function"}],RL="0x60a060405234801561000f575f80fd5b5033608052608051610a3e61002c5f395f6101d20152610a3e5ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80634ce34aa21461004e578063899e104c1461007e5780638df25d9214610091578063c4e8fcb5146100a4575b5f80fd5b61006161005c366004610834565b6100b9565b6040516001600160e01b0319909116815260200160405180910390f35b61006161008c3660046108b4565b610121565b61006161009f36600461091b565b61018a565b6100b76100b2366004610969565b6101c7565b005b5f335f525f60205260405f20546100dd576349ed56f960e11b5f523360045260245ffd5b815f5b81811015610110576101088585838181106100fd576100fd6109a2565b905060c002016102c4565b6001016100e0565b50632671a55160e11b949350505050565b5f335f525f60205260405f2054610145576349ed56f960e11b5f523360045260245ffd5b835f5b8181101561016d576101658787838181106100fd576100fd6109a2565b600101610148565b506101788484610436565b50632267841360e21b95945050505050565b5f335f525f60205260405f20546101ae576349ed56f960e11b5f523360045260245ffd5b6101b88383610436565b506346f92ec960e11b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610210576040516336abb4df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604090205481151560ff909116151503610268576040516349271a0f60e11b81526001600160a01b038316600482015281151560248201526044015b60405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff191685151590811790915591519182527fae63067d43ac07563b7eb8db6595635fc77f1578a2a5ea06ba91b63e2afa37e2910160405180910390a25050565b60016102d360208301836109ca565b60038111156102e4576102e46109b6565b03610329576103266102fc60408301602084016109ef565b61030c60608401604085016109ef565b61031c60808501606086016109ef565b8460a0013561056c565b50565b600261033860208301836109ca565b6003811115610349576103496109b6565b036103b6578060a00135600114610379576040516369f9582760e01b815260a0820135600482015260240161025f565b61032661038c60408301602084016109ef565b61039c60608401604085016109ef565b6103ac60808501606086016109ef565b8460800135610660565b60036103c560208301836109ca565b60038111156103d6576103d66109b6565b0361041d576103266103ee60408301602084016109ef565b6103fe60608401604085016109ef565b61040e60808501606086016109ef565b84608001358560a00135610715565b604051631e4cbc7f60e21b815260040160405180910390fd5b808280631759616b60e11b6020525f5b8381101561055f57823582018035803b61046b57635f15d6725f52806020526024601cfd5b60a08201358060051b60c0018060808501351460a0606086013514168185013583141615905080156104a657633ae8821360e21b5f5260045ffd5b506020860195506080602084016024378060061b60400190508060a00160a4525f8160c401528060c4018160a0850160c4375f808260205f875af1935083610550573d1561053057601f3d0160051c91508060051c826003028184111561051a578184036003028280028580020360091c01015b5a60208201101561052d573d5f803e3d5ffd5b50505b6357e222f160e11b5f528260045260c0606452608451602001608452805ffd5b50505050600181019050610446565b5050505060806040525050565b6040516323b872dd60e01b5f5283600452826024528160445260205f60645f80895af1803d15601f3d1160015f51141617163d151581166106515780873b15151661065157806106405781610623573d1561060257601f3d0160051c8360051c81600302818311156105eb578183036003028280028480020360091c01015b5a6020820110156105fe573d5f803e3d5ffd5b5050505b63f486bc875f528660205285604052846060525f6080528360a05260a4601cfd5b63988919235f52866020528560405284606052836080526084601cfd5b635f15d6725f52866020526024601cfd5b505060405250505f6060525050565b833b61067757635f15d6725f52836020526024601cfd5b6040516323b872dd60e01b5f528360045282602452816044525f8060645f80895af180610707573d156106e557601f3d0160051c8260051c81600302818311156106ce578183036003028280028480020360091c01015b5a6020820110156106e1573d5f803e3d5ffd5b5050505b63f486bc875f5285602052846040528360605282608052600160a05260a4601cfd5b5060405250505f6060525050565b843b61072c57635f15d6725f52846020526024601cfd5b60405160805160a05160c051637921219560e11b5f528760045286602452856044528460645260a06084525f60a4525f8060c45f808d5af1806107d1573d156107b057601f3d0160051c8560051c8160030281831115610799578183036003028280028480020360091c01015b5a6020820110156107ac573d5f803e3d5ffd5b5050505b63f486bc875f52896020528860405287606052866080528560a05260a4601cfd5b5060809290925260a05260c05260405250505f606052505050565b5f8083601f8401126107fc575f80fd5b50813567ffffffffffffffff811115610813575f80fd5b60208301915083602060c08302850101111561082d575f80fd5b9250929050565b5f8060208385031215610845575f80fd5b823567ffffffffffffffff81111561085b575f80fd5b610867858286016107ec565b90969095509350505050565b5f8083601f840112610883575f80fd5b50813567ffffffffffffffff81111561089a575f80fd5b6020830191508360208260051b850101111561082d575f80fd5b5f805f80604085870312156108c7575f80fd5b843567ffffffffffffffff808211156108de575f80fd5b6108ea888389016107ec565b90965094506020870135915080821115610902575f80fd5b5061090f87828801610873565b95989497509550505050565b5f806020838503121561092c575f80fd5b823567ffffffffffffffff811115610942575f80fd5b61086785828601610873565b80356001600160a01b0381168114610964575f80fd5b919050565b5f806040838503121561097a575f80fd5b6109838361094e565b915060208301358015158114610997575f80fd5b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f602082840312156109da575f80fd5b8135600481106109e8575f80fd5b9392505050565b5f602082840312156109ff575f80fd5b6109e88261094e56fea2646970667358221220b0886aab2892937538153703aeb41ab7d7ac415a3ca8c13b06cc4ce7aa06f43764736f6c63430008180033";class Conduit__factory extends CL.ContractFactory{constructor(...D){D.length>1?super(...D):super(IL,RL,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new CL.Interface(IL)}static connect(D,te){return new CL.Contract(D,IL,te)}}SL.Conduit__factory=Conduit__factory,Conduit__factory.bytecode=RL,Conduit__factory.abi=IL;var kL={};Object.defineProperty(kL,"__esModule",{value:!0}),kL.ConduitController__factory=void 0;const OL=YO,xL=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"CallerIsNotNewPotentialOwner",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"CallerIsNotOwner",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"ChannelOutOfRange",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"ConduitAlreadyExists",type:"error"},{inputs:[],name:"InvalidCreator",type:"error"},{inputs:[],name:"InvalidInitialOwner",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"newPotentialOwner",type:"address"}],name:"NewPotentialOwnerAlreadySet",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"NewPotentialOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoConduit",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"NoPotentialOwnerCurrentlySet",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"conduit",type:"address"},{indexed:!1,internalType:"bytes32",name:"conduitKey",type:"bytes32"}],name:"NewConduit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"conduit",type:"address"},{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newPotentialOwner",type:"address"}],name:"PotentialOwnerUpdated",type:"event"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"cancelOwnershipTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"initialOwner",type:"address"}],name:"createConduit",outputs:[{internalType:"address",name:"conduit",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"uint256",name:"channelIndex",type:"uint256"}],name:"getChannel",outputs:[{internalType:"address",name:"channel",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"channel",type:"address"}],name:"getChannelStatus",outputs:[{internalType:"bool",name:"isOpen",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getChannels",outputs:[{internalType:"address[]",name:"channels",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],name:"getConduit",outputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"bool",name:"exists",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getConduitCodeHashes",outputs:[{internalType:"bytes32",name:"creationCodeHash",type:"bytes32"},{internalType:"bytes32",name:"runtimeCodeHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getKey",outputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getPotentialOwner",outputs:[{internalType:"address",name:"potentialOwner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getTotalChannels",outputs:[{internalType:"uint256",name:"totalChannels",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"owner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"newPotentialOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"channel",type:"address"},{internalType:"bool",name:"isOpen",type:"bool"}],name:"updateChannel",outputs:[],stateMutability:"nonpayable",type:"function"}],NL="0x60c060405234801561000f575f80fd5b5060405161001f60208201610082565b6020820181038252601f19601f8201166040525080519060200120608081815250505f805f1b60405161005190610082565b8190604051809103905ff590508015801561006e573d5f803e3d5ffd5b506001600160a01b03163f60a0525061008f565b610a6a8061197083390190565b60805160a0516118a46100cc5f395f81816101420152818161081101526108df01525f818161011f015281816107b9015261089b01526118a45ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c80636d435421116100885780637b37e561116100635780637b37e561146102435780638b9e028b14610256578063906c87cc1461027657806393790f4414610289575f80fd5b80636d435421146101eb5780636e9bfd9f146101fe578063794593bc14610230575f80fd5b806314afd79e116100c357806314afd79e1461018157806333bc8572146101945780634e3f9580146101b757806351710e45146101d8575f80fd5b8063027cc764146100e95780630a96ad391461011957806313ad9cab1461016c575b5f80fd5b6100fc6100f7366004610c39565b61029c565b6040516001600160a01b0390911681526020015b60405180910390f35b604080517f000000000000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000602082015201610110565b61017f61017a366004610c61565b610339565b005b6100fc61018f366004610ca9565b610531565b6101a76101a2366004610cc9565b61055c565b6040519015158152602001610110565b6101ca6101c5366004610ca9565b610595565b604051908152602001610110565b61017f6101e6366004610ca9565b6105bd565b61017f6101f9366004610cc9565b6106be565b61021161020c366004610cfa565b6107ae565b604080516001600160a01b039093168352901515602083015201610110565b6100fc61023e366004610d11565b610838565b61017f610251366004610ca9565b610a0a565b610269610264366004610ca9565b610aab565b6040516101109190610d32565b6100fc610284366004610ca9565b610b28565b6101ca610297366004610ca9565b610b53565b5f6102a683610b8e565b6001600160a01b0383165f908152602081905260409020600301548083106102f157604051636ceb340b60e01b81526001600160a01b03851660048201526024015b60405180910390fd5b6001600160a01b0384165f90815260208190526040902060030180548490811061031d5761031d610d7e565b5f918252602090912001546001600160a01b0316949350505050565b61034283610bc6565b60405163c4e8fcb560e01b81526001600160a01b038381166004830152821515602483015284169063c4e8fcb5906044015f604051808303815f87803b15801561038a575f80fd5b505af115801561039c573d5f803e3d5ffd5b505050506001600160a01b038381165f908152602081815260408083209386168352600484019091529020548015158380156103d6575080155b15610425576003830180546001810182555f828152602080822090920180546001600160a01b0319166001600160a01b038a169081179091559254928152600486019091526040902055610529565b831580156104305750805b156105295760038301545f198301905f9061044d90600190610d92565b90508181146104d8575f85600301828154811061046c5761046c610d7e565b5f918252602090912001546003870180546001600160a01b03909216925082918590811061049c5761049c610d7e565b5f91825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260048701909152604090208490555b846003018054806104eb576104eb610db7565b5f828152602080822083015f1990810180546001600160a01b03191690559092019092556001600160a01b0389168252600487019052604081205550505b505050505050565b5f61053b82610b8e565b506001600160a01b039081165f908152602081905260409020600101541690565b5f61056683610b8e565b506001600160a01b039182165f9081526020818152604080832093909416825260049092019091522054151590565b5f61059f82610b8e565b506001600160a01b03165f9081526020819052604090206003015490565b6105c681610b8e565b6001600160a01b038181165f9081526020819052604090206002015416331461060d576040516388c3a11560e01b81526001600160a01b03821660048201526024016102e8565b6040515f907f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da908290a26001600160a01b038082165f818152602081905260408082206002810180546001600160a01b031916905560010154905133949190911692917fc8894f26f396ce8c004245c8b7cd1b92103a6e4302fcbab883987149ac01b7ec91a46001600160a01b03165f90815260208190526040902060010180546001600160a01b03191633179055565b6106c782610bc6565b6001600160a01b0381166106f95760405163a388d26360e01b81526001600160a01b03831660048201526024016102e8565b6001600160a01b038083165f9081526020819052604090206002015481169082160361074b576040516365e0406560e11b81526001600160a01b038084166004830152821660248201526044016102e8565b6040516001600160a01b038216907f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da905f90a26001600160a01b039182165f90815260208190526040902060020180546001600160a01b03191691909216179055565b5f8060ff60f81b30847f00000000000000000000000000000000000000000000000000000000000000006040516020016107eb9493929190610dcb565b60408051601f198184030181529190528051602090910120936001600160a01b0385163f7f0000000000000000000000000000000000000000000000000000000000000000149350915050565b5f6001600160a01b0382166108605760405163267eaa8160e21b815260040160405180910390fd5b606083901c3314610884576040516332db94d160e21b815260040160405180910390fd5b6040516108c3906001600160f81b031990309086907f000000000000000000000000000000000000000000000000000000000000000090602001610dcb565b604051602081830303815290604052805190602001205f1c90507f0000000000000000000000000000000000000000000000000000000000000000816001600160a01b03163f0361093257604051633194665960e11b81526001600160a01b03821660048201526024016102e8565b8260405161093f90610c16565b8190604051809103905ff590508015801561095c573d5f803e3d5ffd5b50506001600160a01b038181165f81815260208181526040918290206001810180546001600160a01b03191695881695909517909455868455815192835282018690527f4397af6128d529b8ae0442f99db1296d5136062597a15bbc61c1b2a6431a7d15910160405180910390a16040516001600160a01b03808516915f918516907fc8894f26f396ce8c004245c8b7cd1b92103a6e4302fcbab883987149ac01b7ec908390a45092915050565b610a1381610bc6565b6001600160a01b038181165f9081526020819052604090206002015416610a58576040516335809b0b60e11b81526001600160a01b03821660048201526024016102e8565b6040515f907f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da908290a26001600160a01b03165f90815260208190526040902060020180546001600160a01b0319169055565b6060610ab682610b8e565b6001600160a01b0382165f908152602081815260409182902060030180548351818402810184019094528084529091830182828015610b1c57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610afe575b50505050509050919050565b5f610b3282610b8e565b506001600160a01b039081165f908152602081905260409020600201541690565b6001600160a01b0381165f9081526020819052604090205480610b89576040516304ca820960e41b815260040160405180910390fd5b919050565b6001600160a01b0381165f90815260208190526040902054610bc3576040516304ca820960e41b815260040160405180910390fd5b50565b610bcf81610b8e565b6001600160a01b038181165f90815260208190526040902060010154163314610bc35760405163d4ed9a1760e01b81526001600160a01b03821660048201526024016102e8565b610a6a80610e0583390190565b80356001600160a01b0381168114610b89575f80fd5b5f8060408385031215610c4a575f80fd5b610c5383610c23565b946020939093013593505050565b5f805f60608486031215610c73575f80fd5b610c7c84610c23565b9250610c8a60208501610c23565b915060408401358015158114610c9e575f80fd5b809150509250925092565b5f60208284031215610cb9575f80fd5b610cc282610c23565b9392505050565b5f8060408385031215610cda575f80fd5b610ce383610c23565b9150610cf160208401610c23565b90509250929050565b5f60208284031215610d0a575f80fd5b5035919050565b5f8060408385031215610d22575f80fd5b82359150610cf160208401610c23565b602080825282518282018190525f9190848201906040850190845b81811015610d725783516001600160a01b031683529284019291840191600101610d4d565b50909695505050505050565b634e487b7160e01b5f52603260045260245ffd5b81810381811115610db157634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52603160045260245ffd5b6001600160f81b031994909416845260609290921b6bffffffffffffffffffffffff19166001840152601583015260358201526055019056fe60a060405234801561000f575f80fd5b5033608052608051610a3e61002c5f395f6101d20152610a3e5ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80634ce34aa21461004e578063899e104c1461007e5780638df25d9214610091578063c4e8fcb5146100a4575b5f80fd5b61006161005c366004610834565b6100b9565b6040516001600160e01b0319909116815260200160405180910390f35b61006161008c3660046108b4565b610121565b61006161009f36600461091b565b61018a565b6100b76100b2366004610969565b6101c7565b005b5f335f525f60205260405f20546100dd576349ed56f960e11b5f523360045260245ffd5b815f5b81811015610110576101088585838181106100fd576100fd6109a2565b905060c002016102c4565b6001016100e0565b50632671a55160e11b949350505050565b5f335f525f60205260405f2054610145576349ed56f960e11b5f523360045260245ffd5b835f5b8181101561016d576101658787838181106100fd576100fd6109a2565b600101610148565b506101788484610436565b50632267841360e21b95945050505050565b5f335f525f60205260405f20546101ae576349ed56f960e11b5f523360045260245ffd5b6101b88383610436565b506346f92ec960e11b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610210576040516336abb4df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604090205481151560ff909116151503610268576040516349271a0f60e11b81526001600160a01b038316600482015281151560248201526044015b60405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff191685151590811790915591519182527fae63067d43ac07563b7eb8db6595635fc77f1578a2a5ea06ba91b63e2afa37e2910160405180910390a25050565b60016102d360208301836109ca565b60038111156102e4576102e46109b6565b03610329576103266102fc60408301602084016109ef565b61030c60608401604085016109ef565b61031c60808501606086016109ef565b8460a0013561056c565b50565b600261033860208301836109ca565b6003811115610349576103496109b6565b036103b6578060a00135600114610379576040516369f9582760e01b815260a0820135600482015260240161025f565b61032661038c60408301602084016109ef565b61039c60608401604085016109ef565b6103ac60808501606086016109ef565b8460800135610660565b60036103c560208301836109ca565b60038111156103d6576103d66109b6565b0361041d576103266103ee60408301602084016109ef565b6103fe60608401604085016109ef565b61040e60808501606086016109ef565b84608001358560a00135610715565b604051631e4cbc7f60e21b815260040160405180910390fd5b808280631759616b60e11b6020525f5b8381101561055f57823582018035803b61046b57635f15d6725f52806020526024601cfd5b60a08201358060051b60c0018060808501351460a0606086013514168185013583141615905080156104a657633ae8821360e21b5f5260045ffd5b506020860195506080602084016024378060061b60400190508060a00160a4525f8160c401528060c4018160a0850160c4375f808260205f875af1935083610550573d1561053057601f3d0160051c91508060051c826003028184111561051a578184036003028280028580020360091c01015b5a60208201101561052d573d5f803e3d5ffd5b50505b6357e222f160e11b5f528260045260c0606452608451602001608452805ffd5b50505050600181019050610446565b5050505060806040525050565b6040516323b872dd60e01b5f5283600452826024528160445260205f60645f80895af1803d15601f3d1160015f51141617163d151581166106515780873b15151661065157806106405781610623573d1561060257601f3d0160051c8360051c81600302818311156105eb578183036003028280028480020360091c01015b5a6020820110156105fe573d5f803e3d5ffd5b5050505b63f486bc875f528660205285604052846060525f6080528360a05260a4601cfd5b63988919235f52866020528560405284606052836080526084601cfd5b635f15d6725f52866020526024601cfd5b505060405250505f6060525050565b833b61067757635f15d6725f52836020526024601cfd5b6040516323b872dd60e01b5f528360045282602452816044525f8060645f80895af180610707573d156106e557601f3d0160051c8260051c81600302818311156106ce578183036003028280028480020360091c01015b5a6020820110156106e1573d5f803e3d5ffd5b5050505b63f486bc875f5285602052846040528360605282608052600160a05260a4601cfd5b5060405250505f6060525050565b843b61072c57635f15d6725f52846020526024601cfd5b60405160805160a05160c051637921219560e11b5f528760045286602452856044528460645260a06084525f60a4525f8060c45f808d5af1806107d1573d156107b057601f3d0160051c8560051c8160030281831115610799578183036003028280028480020360091c01015b5a6020820110156107ac573d5f803e3d5ffd5b5050505b63f486bc875f52896020528860405287606052866080528560a05260a4601cfd5b5060809290925260a05260c05260405250505f606052505050565b5f8083601f8401126107fc575f80fd5b50813567ffffffffffffffff811115610813575f80fd5b60208301915083602060c08302850101111561082d575f80fd5b9250929050565b5f8060208385031215610845575f80fd5b823567ffffffffffffffff81111561085b575f80fd5b610867858286016107ec565b90969095509350505050565b5f8083601f840112610883575f80fd5b50813567ffffffffffffffff81111561089a575f80fd5b6020830191508360208260051b850101111561082d575f80fd5b5f805f80604085870312156108c7575f80fd5b843567ffffffffffffffff808211156108de575f80fd5b6108ea888389016107ec565b90965094506020870135915080821115610902575f80fd5b5061090f87828801610873565b95989497509550505050565b5f806020838503121561092c575f80fd5b823567ffffffffffffffff811115610942575f80fd5b61086785828601610873565b80356001600160a01b0381168114610964575f80fd5b919050565b5f806040838503121561097a575f80fd5b6109838361094e565b915060208301358015158114610997575f80fd5b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f602082840312156109da575f80fd5b8135600481106109e8575f80fd5b9392505050565b5f602082840312156109ff575f80fd5b6109e88261094e56fea2646970667358221220b0886aab2892937538153703aeb41ab7d7ac415a3ca8c13b06cc4ce7aa06f43764736f6c63430008180033a2646970667358221220e29054c540a0f6e7d656266a120916316eb9aa4069456f077abfb7efa982c5ee64736f6c6343000818003360a060405234801561000f575f80fd5b5033608052608051610a3e61002c5f395f6101d20152610a3e5ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c80634ce34aa21461004e578063899e104c1461007e5780638df25d9214610091578063c4e8fcb5146100a4575b5f80fd5b61006161005c366004610834565b6100b9565b6040516001600160e01b0319909116815260200160405180910390f35b61006161008c3660046108b4565b610121565b61006161009f36600461091b565b61018a565b6100b76100b2366004610969565b6101c7565b005b5f335f525f60205260405f20546100dd576349ed56f960e11b5f523360045260245ffd5b815f5b81811015610110576101088585838181106100fd576100fd6109a2565b905060c002016102c4565b6001016100e0565b50632671a55160e11b949350505050565b5f335f525f60205260405f2054610145576349ed56f960e11b5f523360045260245ffd5b835f5b8181101561016d576101658787838181106100fd576100fd6109a2565b600101610148565b506101788484610436565b50632267841360e21b95945050505050565b5f335f525f60205260405f20546101ae576349ed56f960e11b5f523360045260245ffd5b6101b88383610436565b506346f92ec960e11b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610210576040516336abb4df60e11b815260040160405180910390fd5b6001600160a01b0382165f9081526020819052604090205481151560ff909116151503610268576040516349271a0f60e11b81526001600160a01b038316600482015281151560248201526044015b60405180910390fd5b6001600160a01b0382165f8181526020818152604091829020805460ff191685151590811790915591519182527fae63067d43ac07563b7eb8db6595635fc77f1578a2a5ea06ba91b63e2afa37e2910160405180910390a25050565b60016102d360208301836109ca565b60038111156102e4576102e46109b6565b03610329576103266102fc60408301602084016109ef565b61030c60608401604085016109ef565b61031c60808501606086016109ef565b8460a0013561056c565b50565b600261033860208301836109ca565b6003811115610349576103496109b6565b036103b6578060a00135600114610379576040516369f9582760e01b815260a0820135600482015260240161025f565b61032661038c60408301602084016109ef565b61039c60608401604085016109ef565b6103ac60808501606086016109ef565b8460800135610660565b60036103c560208301836109ca565b60038111156103d6576103d66109b6565b0361041d576103266103ee60408301602084016109ef565b6103fe60608401604085016109ef565b61040e60808501606086016109ef565b84608001358560a00135610715565b604051631e4cbc7f60e21b815260040160405180910390fd5b808280631759616b60e11b6020525f5b8381101561055f57823582018035803b61046b57635f15d6725f52806020526024601cfd5b60a08201358060051b60c0018060808501351460a0606086013514168185013583141615905080156104a657633ae8821360e21b5f5260045ffd5b506020860195506080602084016024378060061b60400190508060a00160a4525f8160c401528060c4018160a0850160c4375f808260205f875af1935083610550573d1561053057601f3d0160051c91508060051c826003028184111561051a578184036003028280028580020360091c01015b5a60208201101561052d573d5f803e3d5ffd5b50505b6357e222f160e11b5f528260045260c0606452608451602001608452805ffd5b50505050600181019050610446565b5050505060806040525050565b6040516323b872dd60e01b5f5283600452826024528160445260205f60645f80895af1803d15601f3d1160015f51141617163d151581166106515780873b15151661065157806106405781610623573d1561060257601f3d0160051c8360051c81600302818311156105eb578183036003028280028480020360091c01015b5a6020820110156105fe573d5f803e3d5ffd5b5050505b63f486bc875f528660205285604052846060525f6080528360a05260a4601cfd5b63988919235f52866020528560405284606052836080526084601cfd5b635f15d6725f52866020526024601cfd5b505060405250505f6060525050565b833b61067757635f15d6725f52836020526024601cfd5b6040516323b872dd60e01b5f528360045282602452816044525f8060645f80895af180610707573d156106e557601f3d0160051c8260051c81600302818311156106ce578183036003028280028480020360091c01015b5a6020820110156106e1573d5f803e3d5ffd5b5050505b63f486bc875f5285602052846040528360605282608052600160a05260a4601cfd5b5060405250505f6060525050565b843b61072c57635f15d6725f52846020526024601cfd5b60405160805160a05160c051637921219560e11b5f528760045286602452856044528460645260a06084525f60a4525f8060c45f808d5af1806107d1573d156107b057601f3d0160051c8560051c8160030281831115610799578183036003028280028480020360091c01015b5a6020820110156107ac573d5f803e3d5ffd5b5050505b63f486bc875f52896020528860405287606052866080528560a05260a4601cfd5b5060809290925260a05260c05260405250505f606052505050565b5f8083601f8401126107fc575f80fd5b50813567ffffffffffffffff811115610813575f80fd5b60208301915083602060c08302850101111561082d575f80fd5b9250929050565b5f8060208385031215610845575f80fd5b823567ffffffffffffffff81111561085b575f80fd5b610867858286016107ec565b90969095509350505050565b5f8083601f840112610883575f80fd5b50813567ffffffffffffffff81111561089a575f80fd5b6020830191508360208260051b850101111561082d575f80fd5b5f805f80604085870312156108c7575f80fd5b843567ffffffffffffffff808211156108de575f80fd5b6108ea888389016107ec565b90965094506020870135915080821115610902575f80fd5b5061090f87828801610873565b95989497509550505050565b5f806020838503121561092c575f80fd5b823567ffffffffffffffff811115610942575f80fd5b61086785828601610873565b80356001600160a01b0381168114610964575f80fd5b919050565b5f806040838503121561097a575f80fd5b6109838361094e565b915060208301358015158114610997575f80fd5b809150509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b5f602082840312156109da575f80fd5b8135600481106109e8575f80fd5b9392505050565b5f602082840312156109ff575f80fd5b6109e88261094e56fea2646970667358221220b0886aab2892937538153703aeb41ab7d7ac415a3ca8c13b06cc4ce7aa06f43764736f6c63430008180033";class ConduitController__factory extends OL.ContractFactory{constructor(...D){D.length>1?super(...D):super(xL,NL,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new OL.Interface(xL)}static connect(D,te){return new OL.Contract(D,xL,te)}}kL.ConduitController__factory=ConduitController__factory,ConduitController__factory.bytecode=NL,ConduitController__factory.abi=xL,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.ConduitController__factory=D.Conduit__factory=void 0;var te=SL;Object.defineProperty(D,"Conduit__factory",{enumerable:!0,get:function(){return te.Conduit__factory}});var he=kL;Object.defineProperty(D,"ConduitController__factory",{enumerable:!0,get:function(){return he.ConduitController__factory}})}(PL);var ML={},BL={};Object.defineProperty(BL,"__esModule",{value:!0}),BL.AmountDeriver__factory=void 0;const FL=YO,DL=[{inputs:[],name:"InexactFraction",type:"error"}],LL="0x6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220a39826498d0de68d571ab26af5858e9d3d7e4d0fb3b081a46a01f21a5a6fc96d64736f6c63430008180033";class AmountDeriver__factory extends FL.ContractFactory{constructor(...D){D.length>1?super(...D):super(DL,LL,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new FL.Interface(DL)}static connect(D,te){return new FL.Contract(D,DL,te)}}BL.AmountDeriver__factory=AmountDeriver__factory,AmountDeriver__factory.bytecode=LL,AmountDeriver__factory.abi=DL;var UL={};Object.defineProperty(UL,"__esModule",{value:!0}),UL.Assertions__factory=void 0;const $L=YO,qL=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"}],GL="0x610200604052348015610010575f80fd5b506040516107b83803806107b883398101604081905261002f916102f5565b8080610039610158565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa1580156100c3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e79190610322565b506101a052505f90506100f861027e565b90506001600160a01b03811661012157604051632aea588760e01b815260040160405180910390fd5b5f61012b82610297565b8015156101c0526001600160a01b0383166101e05290508061015057600163929eee14555b5050506103b6565b5f808080808061018860408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a815260200161074e606a913990505f6040518060c00160405280608481526020016105a46084913990505f60405180610100016040528060d4815260200161067a60d4913990506040518060800160405280605281526020016106286052913980519060200120965082805190602001209550818051906020012094505f81838560405160200161025793929190610371565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a6102af9190610397565b6040515f8181818686fa925050503d805f81146102e7576040519150601f19603f3d011682016040523d82523d5f602084013e6102ec565b606091505b50909392505050565b5f60208284031215610305575f80fd5b81516001600160a01b038116811461031b575f80fd5b9392505050565b5f8060408385031215610333575f80fd5b505080516020909101519092909150565b5f81515f5b818110156103635760208185018101518683015201610349565b505f93019283525090919050565b5f61038e6103886103828488610344565b86610344565b84610344565b95945050505050565b5f826103b157634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161018b6104195f395f608d01525f604201525f50505f50505f50505f50505f50505f50505f50505f50505f50505f505061018b5ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80637423eb3c1461002d575b5f80fd5b610035610037565b005b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061006a575080155b1561008857604051630f45b98b60e41b815260040160405180910390fd5b6100b17f00000000000000000000000000000000000000000000000000000000000000006100d8565b6100ce576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f816001600160a01b0316600a5a6100f09190610136565b6040515f8181818686fa925050503d805f8114610128576040519150601f19603f3d011682016040523d82523d5f602084013e61012d565b606091505b50909392505050565b5f8261015057634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122059b3727fd612b5707c5b2591a54bc2067a81375bbc72d00c0cec9e095f68d5d964736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class Assertions__factory extends $L.ContractFactory{constructor(...D){D.length>1?super(...D):super(qL,GL,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new $L.Interface(qL)}static connect(D,te){return new $L.Contract(D,qL,te)}}UL.Assertions__factory=Assertions__factory,Assertions__factory.bytecode=GL,Assertions__factory.abi=qL;var jL={};Object.defineProperty(jL,"__esModule",{value:!0}),jL.BasicOrderFulfiller__factory=void 0;const HL=YO,zL=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"}],WL="0x610200604052348015610010575f80fd5b506040516107c03803806107c083398101604081905261002f916102fd565b80808080808061003d610160565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa1580156100c7573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100eb919061032a565b506101a052505f90506100fc610286565b90506001600160a01b03811661012557604051632aea588760e01b815260040160405180910390fd5b5f61012f8261029f565b8015156101c0526001600160a01b0383166101e05290508061015457600163929eee14555b505050505050506103be565b5f808080808061019060408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a8152602001610756606a913990505f6040518060c00160405280608481526020016105ac6084913990505f60405180610100016040528060d4815260200161068260d4913990506040518060800160405280605281526020016106306052913980519060200120965082805190602001209550818051906020012094505f81838560405160200161025f93929190610379565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a6102b7919061039f565b6040515f8181818686fa925050503d805f81146102ef576040519150601f19603f3d011682016040523d82523d5f602084013e6102f4565b606091505b50909392505050565b5f6020828403121561030d575f80fd5b81516001600160a01b0381168114610323575f80fd5b9392505050565b5f806040838503121561033b575f80fd5b505080516020909101519092909150565b5f81515f5b8181101561036b5760208185018101518683015201610351565b505f93019283525090919050565b5f61039661039061038a848861034c565b8661034c565b8461034c565b95945050505050565b5f826103b957634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161018b6104215f395f608d01525f604201525f50505f50505f50505f50505f50505f50505f50505f50505f50505f505061018b5ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80637423eb3c1461002d575b5f80fd5b610035610037565b005b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061006a575080155b1561008857604051630f45b98b60e41b815260040160405180910390fd5b6100b17f00000000000000000000000000000000000000000000000000000000000000006100d8565b6100ce576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f816001600160a01b0316600a5a6100f09190610136565b6040515f8181818686fa925050503d805f8114610128576040519150601f19603f3d011682016040523d82523d5f602084013e61012d565b606091505b50909392505050565b5f8261015057634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220ea6de715722e433f7e977dcf4cbdcdb92ac57176688d66996b43661f3af351cc64736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class BasicOrderFulfiller__factory extends HL.ContractFactory{constructor(...D){D.length>1?super(...D):super(zL,WL,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new HL.Interface(zL)}static connect(D,te){return new HL.Contract(D,zL,te)}}jL.BasicOrderFulfiller__factory=BasicOrderFulfiller__factory,BasicOrderFulfiller__factory.bytecode=WL,BasicOrderFulfiller__factory.abi=zL;var VL={};Object.defineProperty(VL,"__esModule",{value:!0}),VL.Consideration__factory=void 0;const KL=YO,JL=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents[]",name:"orders",type:"tuple[]"}],name:"cancel",outputs:[{internalType:"bool",name:"cancelled",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder",name:"",type:"tuple"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"}],name:"fulfillAdvancedOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableAdvancedOrders",outputs:[{internalType:"bool[]",name:"",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableOrders",outputs:[{internalType:"bool[]",name:"",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"",type:"tuple"}],name:"fulfillBasicOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"",type:"tuple"}],name:"fulfillBasicOrder_efficient_6GL6yc",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order",name:"",type:"tuple"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"}],name:"fulfillOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"contractOfferer",type:"address"}],name:"getContractOffererNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"offerer",type:"address"}],name:"getCounter",outputs:[{internalType:"uint256",name:"counter",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents",name:"",type:"tuple"}],name:"getOrderHash",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"getOrderStatus",outputs:[{internalType:"bool",name:"isValidated",type:"bool"},{internalType:"bool",name:"isCancelled",type:"bool"},{internalType:"uint256",name:"totalFilled",type:"uint256"},{internalType:"uint256",name:"totalSize",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrementCounter",outputs:[{internalType:"uint256",name:"newCounter",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"information",outputs:[{internalType:"string",name:"version",type:"string"},{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"",type:"tuple[]"},{internalType:"address",name:"recipient",type:"address"}],name:"matchAdvancedOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"",type:"tuple[]"}],name:"matchOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"",type:"tuple[]"}],name:"validate",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],XL="0x61020060405234801562000011575f80fd5b50604051620061e6380380620061e683398101604081905262000034916200031f565b8080808080808080806200004762000177565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa158015620000d2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620000f891906200034e565b506101a052505f90506200010b620002a4565b90506001600160a01b0381166200013557604051632aea588760e01b815260040160405180910390fd5b5f6200014182620002bd565b8015156101c0526001600160a01b0383166101e0529050806200016757600163929eee14555b50505050505050505050620003ec565b5f8080808080620001a860408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a81526020016200617c606a913990505f6040518060c001604052806084815260200162005fd26084913990505f60405180610100016040528060d48152602001620060a860d491399050604051806080016040528060528152602001620060566052913980519060200120965082805190602001209550818051906020012094505f8183856040516020016200027d93929190620003a0565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a620002d79190620003cc565b6040515f8181818686fa925050503d805f811462000311576040519150601f19603f3d011682016040523d82523d5f602084013e62000316565b606091505b50909392505050565b5f6020828403121562000330575f80fd5b81516001600160a01b038116811462000347575f80fd5b9392505050565b5f806040838503121562000360575f80fd5b505080516020909101519092909150565b5f81515f5b8181101562000392576020818501810151868301520162000376565b505f93019283525090919050565b5f620003c3620003bc620003b5848862000371565b8662000371565b8462000371565b95945050505050565b5f82620003e757634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051615b2a620004a85f395f61047f01525f818161036d0152818161043401528181611a7801528181611acb01526124eb01525f61309b01525f81816112bd015261306b01525f612f3301525f612e7b01525f8181610c2d015261165801525f8181610bbc01526114a101525f8181610b5601526115ea01525f612eab01525f612ef401525f612ed00152615b2a5ff3fe608060405260043610610103575f3560e01c8063a900866b11610092578063f07ec37311610062578063f07ec373146102f7578063f2d12b1214610316578063f47b774014610329578063fb0f3ee114610116578063fd9f1e101461034c575f80fd5b8063a900866b1461028a578063b3a34c4c146102be578063e7acab24146102d1578063ed98a574146102e4575f80fd5b80637423eb3c116100d85780637423eb3c146101f757806379df72bd1461020b57806387201b411461022a578063881477321461024b578063a81744041461026a575f80fd5b801561011657806306fdde031461013e57806346423aa71461015f5780635b34b966146101d5575f80fd5b366101125761011061036b565b005b5f80fd5b610129610124366004615143565b610402565b60405190151581526020015b60405180910390f35b348015610149575f80fd5b50610152610411565b60405161013591906151bd565b34801561016a575f80fd5b506101b36101793660046151cf565b5f9081526001602052604090205460ff808216926101008304909116916001600160781b03620100008204811692600160881b9092041690565b6040805194151585529215156020850152918301526060820152608001610135565b3480156101e0575f80fd5b506101e9610420565b604051908152602001610135565b348015610202575f80fd5b50610110610429565b348015610216575f80fd5b506101e96102253660046151e6565b6104ca565b61023d61023836600461527a565b610501565b60405161013592919061541e565b348015610256575f80fd5b5061012961026536600461546d565b61057a565b61027d6102783660046154ab565b610598565b6040516101359190615511565b348015610295575f80fd5b506101e96102a4366004615523565b6001600160a01b03165f9081526002602052604090205490565b6101296102cc36600461553c565b610633565b6101296102df366004615581565b6106ac565b61023d6102f2366004615605565b6106ea565b348015610302575f80fd5b506101e9610311366004615523565b61078d565b61027d6103243660046156a5565b6107aa565b348015610334575f80fd5b5061033d6107f3565b60405161013593929190615747565b348015610357575f80fd5b5061012961036636600461546d565b61080a565b7f000000000000000000000000000000000000000000000000000000000000000080156103b057600263929eee145c146103b05763a61be9f05f52346020526024601cfd5b806103ff5763929eee1454806103de57600263929eee145c146103de5763a61be9f05f52346020526024601cfd5b600381141581151516156103fd5763a61be9f05f52346020526024601cfd5b505b50565b5f61040b610815565b92915050565b606061041b6109c9565b905090565b5f61041b6109e7565b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061045c575080155b1561047a57604051630f45b98b60e41b815260040160405180910390fd5b6104a37f0000000000000000000000000000000000000000000000000000000000000000610a54565b6104c0576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f806104d66004610ab2565b90506104fa6104eb82610ac25b63ffffffff16565b610140830135610b3f565b3590565b9392505050565b60608061056661051c6105146004610ab2565b610c836104e3565b61053361052b60046020610ceb565b610d096104e3565b61054a61054260046040610ceb565b610d616104e3565b61055961054260046060610ceb565b89338a15028a0189610db9565b915091509b509b9950505050505050505050565b5f6104fa61059361058b6004610ab2565b610df36104e3565b610e4b565b60606106286105b26105aa6004610ab2565b610f6c6104e3565b604080515f808252602082019092529061060a565b6105f76040805160a081019091525f808252602082019081526020015f81526020015f8152602001606081525090565b8152602001906001900390816105c75790505b5061062261061a60046020610ceb565b610fc46104e3565b3361101c565b90505b949350505050565b5f6104fa61064c6106446004610ab2565b61105a6104e3565b604080515f80825260208201909252906106a4565b6106916040805160a081019091525f808252602082019081526020015f81526020015f8152602001606081525090565b8152602001906001900390816106615790505b5084336110d0565b5f6106e06106c56106bd6004610ab2565b61124f6104e3565b6106d461052b60046020610ceb565b853386150286016110d0565b9695505050505050565b60608061077c6106fd6105aa6004610ab2565b604080515f8082526020820190925290610755565b6107426040805160a081019091525f808252602082019081526020015f81526020015f8152602001606081525090565b8152602001906001900390816107125790505b5061076561054260046020610ceb565b61077461054260046040610ceb565b883389610db9565b915091509850989650505050505050565b6001600160a01b0381165f9081526020819052604081205461040b565b60606107e56107bc6105146004610ab2565b6107cb61052b60046020610ceb565b6107da61061a60046040610ceb565b33861502860161101c565b90505b979650505050505050565b60605f806107ff6112ab565b925092509250909192565b5f6104fa83836112f7565b5f61012435600281901c906003166001821183341582148061083a5761083a34611432565b506003841160a0810260240135906502030203010160d01b861a905f630101020360d01b881a61086d8882898888611443565b9096509150506101c4600583901b01355f87600581111561089057610890615357565b036108c55760443560243517156108ae57636ab37ce75f526004601cfd5b6108b88482611760565b6108c061182a565b6109a6565b6040805160208082528183019092525f9160208201818036833701905050905060028a60058111156108f9576108f9615357565b0361091c5761091760c4356084353360e435610104355b87876118aa565b610991565b60038a600581111561093057610930615357565b0361094e5761091760c4356084353360e435610104355b87876118f5565b60048a600581111561096257610962615357565b0361097c5761091760243533608435604435606435610910565b61099160243533608435604435606435610947565b61099b848261192b565b6109a4816119e5565b505b6109b1868984611a09565b6109b9611a76565b6001995050505050505050505090565b6060602080526d0d436f6e73696465726174696f6e604d5260606020f35b5f6109f0611ac9565b600143034060801c335f525f60205260405f208054820192508281555050336001600160a01b03167f721c20121297512b72821b97f5326877ea8ecf4bb9948fea5bfcb6453074d37f82604051610a4991815260200190565b60405180910390a290565b5f816001600160a01b0316600a5a610a6c91906157a1565b6040515f8181818686fa925050503d805f8114610aa4576040519150601f19603f3d011682016040523d82523d5f602084013e610aa9565b606091505b50909392505050565b5f813563ffffffff16820161040b565b5f610ad561016060408051918201905290565b9050610ae48282610140611b46565b610b01610afa610af5846040610ceb565b611b4f565b6040830152565b5f610b15610b10846060610ceb565b611ba2565b9050610b22816060840152565b610b35610b2d825190565b610140840152565b50919050565b0190565b610140820151604080519084015180515f939284927f000000000000000000000000000000000000000000000000000000000000000092602090910190845b81811015610bab578251601f1901805186825260c082208652905260209384019390920191600101610b7e565b508060051b6040512094505050505f7f0000000000000000000000000000000000000000000000000000000000000000915060405160206060890151015f5b86811015610c17578151601f1901805186825260e082208552905260209283019290910190600101610bea565b505060408051600587901b9020601f198a0180517f00000000000000000000000000000000000000000000000000000000000000008252928b01805197815260608c018051938152610140909c019a8b5261018082209390915295909552939097525050925250919050565b5f8063ffffffff8335169050600581901b610ca76020820160408051918201905290565b828152925060208381019085015f5b83811015610ce157610cd9610cd3610cce8484610ceb565b61124f565b82850152565b602001610cb6565b5050505050919050565b5f6104fa63ffffffff610d036104f68686610b3b8516565b16840190565b5f8063ffffffff8335169050600581901b610d2d6020820160408051918201905290565b828152925060208381019085015f5b83811015610ce157610d59610cd3610d548484610ceb565b611be5565b602001610d3c565b5f8063ffffffff8335169050600581901b610d856020820160408051918201905290565b828152925060208381019085015f5b83811015610ce157610db1610cd3610dac8484610ceb565b611c27565b602001610d94565b60608036155f80610dcd8c8c85898b611c6a565b91509150610de08c8b8b8b8b8787612047565b9450945050505097509795505050505050565b5f8063ffffffff8335169050600581901b610e176020820160408051918201905290565b828152925060208381019085015f5b83811015610ce157610e43610cd3610e3e8484610ceb565b612179565b602001610e26565b5f610e54611ac9565b5f805f80855190505f5b81811015610f5f575f878281518110610e7957610e796157c0565b60209081029190910101518051909150600481608001516004811115610ea157610ea1615357565b03610ead575050610f57565b80519450610eba816121bc565b5f8181526001602052604081209850909650610edc90879089903615156121f5565b50865460ff16610f545780610140015181606001515114610eff57610eff612283565b610f0e85878460200151612290565b865460ff191660011787556040517ff280791efe782edcf06ce15c8f4dff17601db3b88eb3805a0db7d77faf757f0490610f4b90889084906158c3565b60405180910390a15b50505b600101610e5e565b5060019695505050505050565b5f8063ffffffff8335169050600581901b610f906020820160408051918201905290565b828152925060208381019085015f5b83811015610ce157610fbc610cd3610fb78484610ceb565b61105a565b602001610f9f565b5f8063ffffffff8335169050600581901b610fe86020820160408051918201905290565b828152925060208381019085015f5b83811015610ce157611014610cd361100f8484610ceb565b61232c565b602001610ff7565b60605f36151590505f806110348888858b5189611c6a565b915091506110418261235f565b61104e888784888561239e565b98975050505050505050565b5f61106d61020060408051918201905290565b60a0810180825290915061108961108384610ab2565b82612471565b61109560016020840152565b6110a160016040840152565b6110be6110b76110b2856020610ceb565b6124a7565b6060840152565b610b356110c96124cf565b6080840152565b835160808101515f91906110f760048260048111156110f1576110f1615357565b146124e9565b5f80806111068a36151561258c565b60408051600180825281830190925293965091945092505f9190816020015b61112d615055565b8152602001906001900390816111255790505090508a815f81518110611155576111556157c0565b602002602001018190525061116a818b612784565b6111768684848b6128fd565b6040805160018082528183019092525f9160208083019080368337509192505050361515600487818111156111ad576111ad615357565b146111d0576111be8d83885f6129fd565b6111ca86868684612a4f565b506111e2565b6111df888e6080015183612b53565b95505b6111ed888c8c612c23565b85825f81518110611200576112006157c0565b6020026020010181815250506112178d8388612d46565b61123486895f01518a602001518d8c604001518d60600151612e13565b61123c611a76565b5060019c9b505050505050505050505050565b5f61126261020060408051918201905290565b905061127660208381019083016040611b46565b60a0810180825261128961108384610ab2565b61129a6110b76110b2856060610ceb565b610b356110c96110b2856080610ceb565b60605f805f6112b8612e78565b90505f7f0000000000000000000000000000000000000000000000000000000000000000905060605f5281602052806040526303312e3660635260a05ff35b5f611300611ac9565b5f8083815b818110156114175736878783818110611320576113206157c0565b905060200281019061133291906159a5565b90505f6113426020830183615523565b90505f6113556040840160208501615523565b90505f61136860a08501608086016159c4565b905081331483331417156004821417871796505f61139c6113916113898790565b610ac26104e3565b866101400135610b3f565b5f8181526001602052604090819020805461ffff19166101001781559051909a509091506001600160a01b0380851691908616907f6bacc01dbe442496068f7d234edd811f1a5f833243e0aec824f86ab861f3c90d906113ff9085815260200190565b60405180910390a38560010195505050505050611305565b5050801561142757611427612f55565b506001949350505050565b63a61be9f05f52806020526024601cfd5b5f8061144e5f6124e9565b611456612f62565b426101643511154261014435111715611484576321ccfeb75f5261014435602052610164356040526044601cfd5b6102043561026435101561149f5763466aa6165f526004601cfd5b7f0000000000000000000000000000000000000000000000000000000000000000608081905260a08790526060602460c037604060646101203760e060802061016052610264356102043560051b6102a0016001820181526020810190508881526080602460208301376101608860a0528760c0525f60e0525f6102043593505f5b84811015611575578060400261028401602081610100376040816101203760208101358317925060208401935060e0608020845260a0850194508b85528a6020860152604081606087013750600101611521565b6001850160051b610160206060526102643594505b848110156115c5578060400261028401925060a0840193508a845289602085015260408360608601376020830135919091179060010161158a565b506001600160a01b038111156115e2576339f3e3fd5f526004601cfd5b50505050505f7f00000000000000000000000000000000000000000000000000000000000000009050806080528360a052606060c460c0376020610104610120375060c06080205f9081526020812060e05260843590611656826001600160a01b03165f9081526020819052604090205490565b7f000000000000000000000000000000000000000000000000000000000000000060808190529091506040608460a03760605161010052896101205260a061014461014037816101e05261018060802094505050506102043560051b61018001828152336020820152608060408201526101206060820152600160808201528360a0820152606060c460c083013760a061026435026101e00160a4356084357f9d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f318385a35f60605260608101820160405250505f61173283612fad565b905061173e8389612ffe565b7101000000000000000000000000000001000182559150509550959350505050565b60c43560843560e4356101043584156117d15761177c81613053565b5f6040519050632671a55160e11b815260206004820152600160248201528660448201528460648201528360848201523360a48201528260c48201528160e48201526117cb8682610104613065565b50611822565b60028660058111156117e5576117e5615357565b0361180c57806001146117fb576117fb8161311c565b6118078484338561312d565b611822565b61181581613053565b61182284843385856131e2565b505050505050565b346064356084356102643560061b5f80805b8381101561187b5761028481013592506102a4810135915086831115611864576118646132b9565b828703965061187382846132c6565b60400161183c565b508585111561188c5761188c6132b9565b61189684866132c6565b8486111561182257611822338688036132c6565b6118b481836132fc565b816118db57826001146118ca576118ca8361311c565b6118d68787878761312d565b6118ec565b6118ec828260028a8a8a8a8a61331a565b50505050505050565b6118fe83613053565b61190881836132fc565b8161191a576118d687878787876131e2565b6118ec828260038a8a8a8a8a61331a565b5f805f805f861561195057505060843592503391505060c4356101043560e435611965565b50339350506084359150506024356064356044355b801561197357611973613399565b50600586901b6101e403356102643560061b5f80805b838110156119ca5761028481013592506102a481013591508a156119b4576119b183876159e2565b95505b6119c2878a8486898f6133a6565b604001611989565b506119d986898988888e6133a6565b50505050505050505050565b60408151146119f15750565b5f6119fd826020015190565b90506103fd81836133db565b611a258260a4355b331415600182116004909210919091161690565b15611a7157805f611a34825190565b9050608081901c63ffffffff8216611a4c84826133ff565b601c840163fb5014fc6060529350611a6860a43588868561340f565b5f6060526118ec565b505050565b7f00000000000000000000000000000000000000000000000000000000000000008015611aa7575f63929eee145d50565b63929eee145480611abd575f63929eee145d5050565b50600163929eee145550565b7f00000000000000000000000000000000000000000000000000000000000000008015611b085763929eee145c15611b0857637fa8a9875f526004601cfd5b806103ff5763929eee145480611b305763929eee145c15611b3057637fa8a9875f526004601cfd5b60018111156103fd57637fa8a9875f526004601cfd5b80838337505050565b5f63ffffffff8235166040519150808252602082018160051b81018060a084026020870183378293505b81841015611b925780845260209093019260a001611b79565b60405250919392505050565b9052565b5f63ffffffff8235166040519150808252602082018160051b81018060c084026020870183378293505b81841015611b925780845260209093019260c001611bcc565b5f611bf760a060408051918201905290565b9050611c0582826080611b46565b611c22611c1b611c16846080610ceb565b613457565b6080830152565b919050565b5f63ffffffff8235166040519150808252602082018160051b8101808360061b6020870183378293505b81841015611b9257808452602090930192604001611c51565b60605f611c7760016124e9565b86515f90600160e61b82351690806001600160401b03811115611c9c57611c9c615779565b604051908082528060200260200182016040528015611cc5578160200160208202803683370190505b50945060010160051b91505f60205b83811015611ec6575f611cea8c83613cfe6104e3565b90505f805f611cf9848e61258c565b6001600160781b0382166020880152919450925090505f829003611d205750505050611ebe565b6001600160781b0381166040808601919091528a8601849052845160a081015160c0820151608083015192909301518051600184119d909d179c600490931099509092915f5b81811015611e08575f838281518110611d8157611d816157c0565b602002602001015190508b8151108d179c505f611da38989846080015161348e565b90508160800151826060015103611dc05760608201819052611dd5565b611dcf8989846060015161348e565b60608301525b5f611dee8360600151838a8a611de9361590565b6134ca565b606084018190526080909301929092525050600101611d66565b5087516060015180515f5b81811015611eb2575f838281518110611e2e57611e2e6157c0565b602002602001015190505f611e488b8b846080015161348e565b90508160800151826060015103611e655760608201819052611e7a565b611e748b8b846060015161348e565b60608301525b5f611e8f8360600151838c8c611de936151590565b6060840181905260a0840180516080909501949094529092525050600101611e13565b50505050505050505050505b602001611cd4565b50506001600160e61b018103611ede57611ede61351d565b50611ee98888612784565b5f8060205b8381101561202c578581015192508215612024575f611f108c83613cfe6104e3565b9050885f03611f2b575f878301819052602090910152612024565b60048151608001516004811115611f4457611f44615357565b14611fc757611f5d8188866001600587901c038e61352a565b611f73575f878301819052602090910152612024565b602080820151604083015183516080810151930151611fac9388936001600160781b039081169316913314156001909111168e17612a4f565b611fc2575f878301819052602090910152612024565b611ff2565b611fd9815f015182608001518c612b53565b878301819052935083611ff2575f602090910152612024565b886001900398505f815f0151905061201d85825f015183602001518c85604001518660600151612e13565b6001935050505b602001611eee565b508061203a5761203a613585565b5050509550959350505050565b85518551606091829161205a81836159f5565b6001600160401b0381111561207157612071615779565b6040519080825280602002602001820160405280156120aa57816020015b612097615088565b81526020019060019003908161208f5790505b5092505f5b82811015612102576120dd8c5f8d84815181106120ce576120ce6157c0565b60200260200101518c8c613592565b8482815181106120ef576120ef6157c0565b60209081029190910101526001016120af565b505f5b8181101561215b576121348c60018c8481518110612125576121256157c0565b60200260200101518c5f613592565b8484830181518110612148576121486157c0565b6020908102919091010152600101612105565b506121698b84888a896135e1565b9350505097509795505050505050565b5f61218a6040808051918201905290565b90506121a46121a061219b84610ab2565b6138ca565b8252565b611c226121b56110b2846020610ceb565b6020830152565b5f6121d18260600151518361014001516138e9565b81516001600160a01b03165f9081526020819052604090205461040b908390610b3f565b82545f90610100900460ff161561221c57811561221557612215856138f9565b505f61062b565b83546201000090046001600160781b03168015612277578315612247576122428661390a565b612277565b8454600160881b90046001600160781b0316811061227757821561226e5761226e8661391b565b5f91505061062b565b50600195945050505050565b632165628a5f526004601cfd5b338314801561229f5750505050565b5f6122a8612e78565b61190160f01b5f9081526002828152602287815260428320908390528651939450929190601f601d840116106102e26062198401101615612312576122ed868861392c565b61190160f01b5f90815260028690526022828152604282209190529097509050612315565b50815b612322888285858a6139c2565b5050505050505050565b5f61233d6040808051918201905290565b905061234e6121a0610dac84610ab2565b611c226121b5610dac846020610ceb565b80518060051b6040019050602082038051602082527f4b9f2d36e1b4c93de62cc077b00b1a91d84b6c31b4a14e012718dcca230689e78383a190525050565b8351606090806001600160401b038111156123bb576123bb615779565b6040519080825280602002602001820160405280156123f457816020015b6123e1615088565b8152602001906001900390816123d95790505b5091505f5b81811015612457575f878281518110612414576124146157c0565b6020026020010151905061243189825f0151836020015185613b0b565b848381518110612443576124436157c0565b6020908102919091010152506001016123f9565b5061246587838787876135e1565b50505b95945050505050565b61247e8282610160611b46565b61248f610afa610af5846040610ceb565b6103fd6124a0610b10846060610ceb565b6060830152565b6040518135601f0163ffffffe01660200180838337913563ffffffff16815290810160405290565b5f6124e1602060408051918201905290565b5f8152905090565b7f000000000000000000000000000000000000000000000000000000000000000080156125375763929eee145c1561252857637fa8a9875f526004601cfd5b8160010163929eee145d6103fd565b63929eee14548061256a5763929eee145c1561255a57637fa8a9875f526004601cfd5b8260010163929eee145d506103fd565b6001811461257f57637fa8a9875f526004601cfd5b505060020163929eee1455565b5f805f80855f015190506125a98160a001518260c0015187613cb0565b6125bc57505f925082915081905061277d565b602086015160408701516001600160781b0391821694501691505f6004826080015160048111156125ef576125ef615357565b0361261c576001838502189050801561260a5761260a613cd3565b506001935083925082915061277d9050565b50818311831517801561263157612631613cd3565b608082015160011615848411161561264b5761264b613ce0565b612654826121bc565b5f81815260016020526040812091965061267290879083908a6121f5565b61268557505f935083925061277d915050565b805460ff166126a0576126a0835f0151878a60600151612290565b8054608881901c806126b457869150612777565b6001600160781b038260101c169150600186036126d8578181039650809550612777565b8086036126f357908601858103868211029096039590612777565b80860296810291909502810186810387821102918290039695919003906001600160781b0386111561277757612737565b5f5b8215610b3557908290069190612726565b61274a6127448784612724565b88612724565b8015019687900496909504946001600160781b0386111561277757634e487b715f5260116020526024601cfd5b50505050505b9250925092565b805182515f5b82811015612873575f8482815181106127a5576127a56157c0565b602002602001015190505f815f015190508381106127ca576127ca8260200151613ced565b5f8782815181106127dd576127dd6157c0565b6020026020010151905080602001516001600160781b03165f036128035750505061286b565b80516040808201519085015163bfb3f8ce5f8760200151600181111561282b5761282b615357565b14612847575f61283c856060613cfe565b9350636088d7de9150505b8251821061285857805f526004601cfd5b612863838389613d09565b505050505050505b60010161278a565b505f5b818110156128f6575f858281518110612891576128916157c0565b6020026020010151905080602001516001600160781b03165f036128b557506128ee565b8051608081015160608201516128d29085908363a8930e9a613dba565b6128ea8483604001518363d69293326104e3613dba90565b5050505b600101612876565b5050505050565b60a084015160c08501516040860151515f805b8281101561297a575f8960400151828151811061292f5761292f6157c0565b602002602001015190505f815f01519050801584179350505f612966826060015183608001518c8c8b8b612961361590565b613e21565b606083015250608001869052600101612910565b50608088015160048110821680156129945761299461351d565b505050506060860151515f5b81811015612322575f886060015182815181106129bf576129bf6157c0565b602002602001015190505f6129e4826060015183608001518b8b8a8a61296136151590565b60608301525060a08101516080909101526001016129a0565b8351608081015160208201513314156001821160049092109190911616156128f6575f80612a32858489608001518988613e5c565b63fb5014fc6060529092509050611a68836020015186848461340f565b5f848152600160205260408120805482908290608881901c80612a7457889150612afc565b6001600160781b038260101c169150808803612a9857908801878111935090612afc565b97880297808802979190910288018781119350906001600160781b038083119089111715612afc57612aca8883612724565b8015019788900497909104906001600160781b038083119089111715612afc57634e487b715f5260116020526024601cfd5b508215612b35578515612b29576040516310fda3e160e01b8152600481018a905260240160405180910390fd5b5f94505050505061062b565b8660881b8160101b1760011782556001945050505050949350505050565b5f83610140015184606001515114612b6d57612b6d612283565b83515f8080612b7c8888613fda565b915091505f8082845f885af16001600160a01b0385165f908152600260205260409020805460018101909155606086901b189550925082612bdb578515612bce57612bc5614084565b612bce856140cb565b505f93506104fa92505050565b505050505f805f612bf8876040015188606001516104e36140dc90565b925092509250825f14612c0e57612c0e846140cb565b60408701919091526060860152509392505050565b6040805160208082528183019092525f916020820181803683375050506040850151519091505f5b81811015612c9b575f86604001518281518110612c6a57612c6a6157c0565b60200260200101519050846080820152612c9281885f0151896101200151876104e361435590565b50600101612c4b565b50506060840151515f90815b81811015612d29575f87606001518281518110612cc657612cc66157c0565b602002602001015190505f6005811115612ce257612ce2615357565b81516005811115612cf557612cf5615357565b03612d11574793508381606001511115612d1157612d116132b9565b612d20813389886143556104e3565b50600101612ca7565b5050612d34826119e5565b504780156128f6576128f633826132c6565b8251608081015160208201515f92839283928392916004811060019091111633909114151615612da857612d89612d8361010083015190565b5190565b8861444a565b9093509150612d9a60208201612d7f565b945063fb5014fc9350612df4565b600481608001516004811115612dc057612dc0615357565b0361232257805194505f8560601b9050612de187838b608001518b8561448b565b639397928596509094509250612df49050565b612dfe6060859052565b612e0a8587858561340f565b5f606052612322565b60608290506060829050856001600160a01b0316876001600160a01b03167f9d9af8e38d66c62e2c12f0225249fd9d721c54b83f48d9352c97c6cacdcb6f318a888686604051612e669493929190615a41565b60405180910390a35050505050505050565b5f7f00000000000000000000000000000000000000000000000000000000000000004614612f30575060408051608080517f00000000000000000000000000000000000000000000000000000000000000005f9081527f00000000000000000000000000000000000000000000000000000000000000006020527f0000000000000000000000000000000000000000000000000000000000000000855246606090815230845260a08220949095529093529190915290565b507f000000000000000000000000000000000000000000000000000000000000000090565b63fed398fc5f526004601cfd5b600435602014610224356102401416610244356102606102643560061b01141660186101243510600160a01b60843560a4351760c4356024351717101616806103ff576103ff614556565b5f8181526001602081905260409091209060843590612fd290849084903615156121f5565b50815460ff16610b3557610b358184612ff9602463ffffffff6102443516016124a76104e3565b612290565b5f61300b8260a435611a11565b1561040b575f805f61301c86614563565b63fb5014fc6060529194509250905061303c60a43587601c86018561340f565b5f60605260209190910160801b1781529392505050565b806103ff576391b3e5145f526004601cfd5b604080517f000000000000000000000000000000000000000000000000000000000000000060ff60a01b175f90815260208690527f000000000000000000000000000000000000000000000000000000000000000083526055600b20919092526001600160a01b031690505f805f805260205f85875f875af191505f519050816130fa576130f1614084565b6130fa8361461b565b6001600160e01b03198116632671a55160e11b1461182257611822868461462c565b6369f958275f52806020526024601cfd5b833b61314457635f15d6725f52836020526024601cfd5b6040516323b872dd60e01b5f528360045282602452816044525f8060645f80895af1806131d4573d156131b257601f3d0160051c8260051c816003028183111561319b578183036003028280028480020360091c01015b5a6020820110156131ae573d5f803e3d5ffd5b5050505b63f486bc875f5285602052846040528360605282608052600160a05260a4601cfd5b5060405250505f6060525050565b843b6131f957635f15d6725f52846020526024601cfd5b60405160805160a05160c051637921219560e11b5f528760045286602452856044528460645260a06084525f60a4525f8060c45f808d5af18061329e573d1561327d57601f3d0160051c8560051c8160030281831115613266578183036003028280028480020360091c01015b5a602082011015613279573d5f803e3d5ffd5b5050505b63f486bc875f52896020528860405287606052866080528560a05260a4601cfd5b5060809290925260a05260c05260405250505f606052505050565b638ffff9805f526004601cfd5b6132cf81613053565b5f805f805f85875af1905080611a71576132e7614084565b63bc806b965f5282602052816040526044601cfd5b5f613308836020015190565b9050818114611a7157611a71836119e5565b5f60208851036133545750604080885260208089018a9052632671a55160e11b918901919091526044880152600160648801819052613363565b50606487018051600101908190525b603c60c082028901038781528660208201528560408201528460608201528360808201528260a082015250505050505050505050565b636ab37ce75f526004601cfd5b6133af83613053565b6133b981836132fc565b816133ca5761180786868686614641565b611822828260018989895f8a61331a565b6064810151604082019060c0026044016133f6848383613065565b50506020905250565b6317b1f9428252600181526103fd565b5f806001600160e01b03198451165f805260205f85875f8b5af15f51909350149050816134485761343e614084565b846080526024607cfd5b8061182257846080526024607cfd5b5f8063ffffffff83351690506001810160051b61347a8160408051918201905290565b9250613487848483611b46565b5050919050565b5f82840361349d5750806104fa565b82848309156134b35763c63cf0895f526004601cfd5b5f6134be8584615add565b93909304949350505050565b5f84861461351357838303428590038082035f6134e7838a615add565b6134f1838c615add565b6134fb91906159f5565b90508584878303040181151502945050505050612468565b5092949350505050565b6312d3f5a35f526004601cfd5b8451608081015160208201515f92916004811060019091111633909114151615610f5f575f8061356187848b608001518b8a613e5c565b9150915061357b836020015188848463fb5014fc8a614735565b9350505050612468565b63d5da9a1b5f526004601cfd5b61359a615088565b83515f036135ab576135ab856147a2565b5f8560018111156135be576135be615357565b036135d4576135cf868583856147b3565b612468565b6124688685833387614923565b84516060905f816001600160401b038111156135ff576135ff615779565b604051908082528060200260200182016040528015613628578160200160208202803683370190505b506040805160208082528183019092529192505f9190602082018180368337505089519192505060010160051b60205b818110156136b7575f61366e8b83613cfe6104e3565b805160608101519192509080156136ac57478111825115161561369857638ffff9805f526004601cfd5b6136ac828460200151856040015189614355565b505050602001613658565b50505f5b83811015613823575f8a82815181106136d6576136d66157c0565b6020026020010151905080602001516001600160781b03165f0361371d575f848381518110613707576137076157c0565b911515602092830291909101909101525061381b565b6001848381518110613731576137316157c0565b911515602092830291909101909101528051604081015180515f5b818110156137b6575f838281518110613767576137676157c0565b6020026020010151905080606001515f146137a357608081018051908e9052855161012087015161379d9184918c6143556104e3565b60808201525b608081015160609091015260010161374c565b505050606081015180515f5b81811015613815575f8382815181106137dd576137dd6157c0565b602002602001015190505f81606001519050805f1461380157613801888483614a5a565b5060a08101516060909101526001016137c2565b50505050505b6001016136bb565b5061382d816119e5565b47801561383e5761383e33826132c6565b85156138b4575f5b848110156138b257838181518110613860576138606157c0565b6020026020010151156138aa576138aa8b8281518110613882576138826157c0565b60200260200101518a8b848151811061389d5761389d6157c0565b6020026020010151612d46565b600101613846565b505b6138bc611a76565b509098975050505050505050565b5f6138dd61016060408051918201905290565b9050611c228282612471565b808210156103fd576103fd614a73565b631a5155745f52806020526024601cfd5b63ee9e0e635f52806020526024601cfd5b6310fda3e15f52806020526024601cfd5b5f805f84516001811660410380820360051c9250808752806020018701915050805160e81c6003820191506001811660051b868152825160208218525060015b838110156139985760405f2082821c60051b60209081169182529384018051919094185260010161396c565b50505060405f2091505f6139ab82614a80565b5f9081526020939093525050604090209392505050565b5f805f528151602083038051826041035f60018211613a2557604087015160608801515f1a8315613a0657601b8260ff1c0190506001600160ff1b03821660408a01525b88528a855260205f60808760015afa508385528588526040880152505f515b8a148a1515169450849050613aee57858552604082526044850380516040870351630b135d3f60e11b835289604089035260205f60648b01858f5afa96508615613ae257630b135d3f60e11b5f5114613ae2578b3b15613a8c57634f7fb80d5f526004601cfd5b6001866041031115613aa557638baa579f5f526004601cfd5b64010100000060608901515f1a1a15604187141615613ad557631f003d0a5f5260608801515f1a6020526024601cfd5b63815e1d645f526004601cfd5b8385529152603f198601525b5050508061182257613afe614084565b634f7fb80d5f526004601cfd5b613b13615088565b8251158451151715613b2c576398e9db6e5f526004601cfd5b613b34615088565b613b418685835f80614923565b805160608101515f03613b565750905061062b565b613b6687878584608001516147b3565b82516040828101519082015160208085015190840151855185511891181791181715613b9d5763bced929d5f52846020526024601cfd5b806060015182606001511115613c24575f865f81518110613bc057613bc06157c0565b60200260200101519050816060015183606001510389825f015181518110613bea57613bea6157c0565b60200260200101515f015160600151826020015181518110613c0e57613c0e6157c0565b6020026020010151606001818152505050613ca5565b5f875f81518110613c3757613c376157c0565b60200260200101519050826060015182606001510389825f015181518110613c6157613c616157c0565b60200260200101515f015160400151826020015181518110613c8557613c856157c0565b602002602001015160600181815250508260600151826060018181525050505b505050949350505050565b428084111590831116818015613cc4575080155b156104fa576104fa8484614e8f565b635a052b325f526004601cfd5b63a11b63ff5f526004601cfd5b63133c37c65f52806020526024601cfd5b5f6104fa8284015190565b5f838381518110613d1c57613d1c6157c0565b602002602001015190505f815f01519050613d378160031090565b613d4357613d43614ea4565b60408201518015613d6657613d618460600151828660800151614eb1565b613d79565b60808401515115613d7957613d79614efb565b600119820183816005811115613d9157613d91615357565b90816005811115613da457613da4615357565b9052505050606090920151604090910152505050565b82515f5b81811015611822575f858281518110613dd957613dd96157c0565b60209081029190910101518051604082015191925090600382116004881415821515171615613e1357855f5288602052836040526044601cfd5b505050806001019050613dbe565b5f868803613e3b57613e3486868961348e565b90506107e8565b6107e5613e4987878b61348e565b613e5488888b61348e565b8686866134ca565b5f805f613e67614f08565b6301e4d72a815260208082015260408101898152336060830152601c820194509091508751604082015287613ea7613ea060a083015190565b60e0840152565b613ebd613eb560c083015190565b610100840152565b613ed3613ecb60e083015190565b610120840152565b610140613ee1816060850152565b5f613eed604084015190565b90505f613efc82848701614f12565b928301929050613f0d836080870152565b5f613f19606086015190565b90505f613f2882868901614f78565b948501949050613f398560a0890152565b5f613f468e878a01614fdd565b959095019450613f578560c0890152565b8685015f613f658e83614ffc565b602497019687019a50613f819050613f7c8c8c0190565b61502c565b8060408b901b60808b901b17178f610100018181525050613fab8c82611b9e90919063ffffffff16565b60058c8e51613fba91906159e2565b613fc5911b8b6159e2565b99505050505050505050509550959350505050565b5f8083613fe5614f08565b639891976581523360208201908152608060408301819052601c9092019450905f614011604085015190565b90505f61402082848601614f12565b928301929050614031836040860152565b5f61403d606087015190565b90505f61404c82868801614f12565b94850194905061405d856060880152565b895f61406b82898901614fdd565b9a9d96909a016004019b50949950505050505050505050565b3d156140c957601f3d0160051c60405160051c81600302818311156140b6578183036003028280028480020360091c01015b5a602082011015611a71573d5f803e3d5ffd5b565b63939792855f52806020526024601cfd5b60603d105f80808080808661414e5760405f803e5f51935060205192503d60208501113d6020850111808217985050508661414e576020845f3e5f51915060208360203e60205190508160071b60208501018160a0026020850101803d10823d101761ffff8486171117985050505f80525b86614180575f8061416384602088018d614189565b9250975061417583602087018c614269565b929092179850909550505b5050505061277d565b5f806040519150825160c08602602001830160405285835260208660010160051b8085018360010160051b87016141c7858b81811090829003020190565b60010160051b8a861196505b8085101561422757828589015260808a843e6060830151955085608084015260608201518681116142048585614310565b17881797505060808a01995060a08301925060a0820191506020850194506141d3565b50505b8183101561425d578083870152608088823e6060810151608082015260808801975060a08101905060208301925061422a565b50505050935093915050565b604051815180851190808603818710028101602060e08202850181016040528185526001928301600590811b87019390920190911b908185015b8282101561425d57808287015260a088823e60206060890160a083013e606081015160608501516142e06080840151608088015180159114171590565b818311176142ee8488614310565b60a09b909b019a179690961795505060c09384019360209290920191016142a3565b5f81516040830151801560038311161561433257506040840151600119909101905b604085015181148551831460208701516020870151141616159250505092915050565b5f8451600581111561436957614369615357565b036143a657604084015160208501516001600160a01b0316171561438f5761438f613399565b6143a1846080015185606001516132c6565b614444565b6001845160058111156143bb576143bb615357565b036143ec576040840151156143d2576143d2613399565b6143a18460200151848660800151876060015186866133a6565b60028451600581111561440157614401615357565b03614425576143a184602001518486608001518760400151886060015187876118aa565b61444484602001518486608001518760400151886060015187876118f5565b50505050565b608082901c63ffffffff604084901c811690808516906144729084906317b1f94290611b9e16565b601c830192506144828482614ffc565b50509250929050565b5f80614495614f08565b63f4dd92ce815287841860a0820152601c8101925060200160a0808252875f6144bf604083015190565b90505f6144ce82858701614f12565b9384019390506144df846020870152565b5f6144eb606085015190565b90505f6144fa82878901614f78565b95860195905061450b866040890152565b5f6145188d888a01614fdd565b9687019690506145298760608a0152565b5f6145368d898b01614ffc565b905080880197508760040199505050505050505050509550959350505050565b6339f3e3fd5f526004601cfd5b6301e4d72a6102043560051b6080019081525f808260208082015260408101858152336060830152601c919091019061459d608435610afa565b6145ae61014460e083016060611b46565b6101406145bc816060840152565b6145ca60a082016080840152565b61016060a06102643581029290920101906145e6908290840152565b6145f05f82840152565b6020016145fe8160c0840152565b5f9181019182526020820196909652939560449095019492505050565b63d13d53d45f52806020526024601cfd5b631cf99b265f5281602052806040526044601cfd5b6040516323b872dd60e01b5f5283600452826024528160445260205f60645f80895af1803d15601f3d1160015f51141617163d151581166147265780873b151516614726578061471557816146f8573d156146d757601f3d0160051c8360051c81600302818311156146c0578183036003028280028480020360091c01015b5a6020820110156146d3573d5f803e3d5ffd5b5050505b63f486bc875f528660205285604052846060525f6080528360a05260a4601cfd5b63988919235f52866020528560405284606052836080526084601cfd5b635f15d6725f52866020526024601cfd5b505060405250505f6060525050565b5f805f6001600160e01b03198751165f805260205f888a5f8e5af15f5190935014905081614781578361476c575f925050506106e0565b614774614084565b845f52876020526024601cfd5b8061479357845f52876020526024601cfd5b50600198975050505050505050565b63375c24c15f52806020526024601cfd5b5f805f85865160051b87015b808210156148d0576020820191508851825151106147df576147df614904565b81515160051b60208a01015180516020845101515f6040830151602085015115815184101517156148145750505050506147bf565b8260051b60208201015191505060608101935083518901915083511589831060011b17881797508198505f84528a51935086156001811461487d5760608220881860408d01516101208601511860208e015186511817171561487857614878614904565b6148c6565b8151855260208201516020860152604082015160408601528a6080860152835160208d015261012084015160408d015260608520975060208d019250868318156148c657865183525b50505050506147bf565b5050508160608551015280156148fd57600181036148f5576391b3e5145f526004601cfd5b6148fd614911565b5050614444565b637fda72795f526004601cfd5b634e487b715f5260116020526024601cfd5b5f805f86875160051b88015b80821015614a25576020820191508151518a51811061495057614950614904565b8060051b60208c01015190506020835101515f60608351015160208401511581518410151715614983575050505061492f565b8260051b60208201015191505060608101925082518801915082511588831060011b17871796508197505f83528a5192508515600181146149d55760a0822087146149d0576149d0614904565b614a1c565b815184526020820151602085015260408201516040850152608082015160808501528a60208d01528960408d015260a08220965060208d01925085831815614a1c57855183525b5050505061492f565b50508551606001839052508015614a535760018103614a4b576391b3e5145f526004601cfd5b614a53614911565b50506128f6565b63a5f542085f528260205281604052806060526064601cfd5b63466aa6165f526004601cfd5b5f614e86565b5f6009821015614bdf576005821015614b3c576003821015614aef577f832c58a5b611aadcfa6a082ac9d04bace53d8278387f10040347b7e98eb5b30260018314027fbf8e29b89f29ed9b529c154a63038ffca562f8d7cd1e2545dda53a1b582dde301861040b565b7ff3e8417a785f980bdaf134fa0274a6bf891eeb8195cd94b09d2aa651046e28bc60038314027fa02eb7ff164c884e5e2c336dc85f81c6a93329d8e9adf214b32729b894de2af11861040b565b6007821015614b92577f25d02425402d882d211a7ab774c0ed6eca048c4d03d9af40132475744753b2a360058314027f1c19f71958cdd8f081b4c31f7caf5c010b29d12950be2fa1c95070dc47e30b551861040b565b7fb58d772fb09b426b9dece637f61ca9065f2b994f1464b51e9207f55f7c8f594860078314027f7ff98d9d4e55d876c5cfac10b43c04039522f3ddfb0ea9bfe70c68cfb5c7cc141861040b565b6011821015614d3757600d821015614c9457600b821015614c47577f6f0ec38c21f6f583ab7f3c5413c773ffd5344c34fde1d390958e438bf667448f60098314027fd1d97d1ef5eaa37a4ee5fbf234e6f6d64eb511eb562221cd7edfbdde0848da051861040b565b7f32f4e7485d6485f9f6c255929b9905c62ba919758bbe231f231eaeecf33d810c600b8314027fbb98d87cc12922b83759626c5f07d72266da9702d19ffad6a514c73a89002f5f1861040b565b600f821015614cea577f8df51df98847160517f5b1186b4bc3f418d98b8a7f17f1292f392d79d600d79e600d8314027f6b5b04cbae4fcb1a9d78e7b2dfc51a36933d023cf6e347e03d517b472a8525901861040b565b7fcc4886e37eedd9aacd6c1c2c9247197a621a71282e87a7cbc673f3736d9aa141600f8314027f1da3eed3ecef6ebaa6e5023c057ec2c75150693fd0dac5c90f4a142f9879fde81861040b565b6015821015614de3576013821015614d96577f2d7a3ed6dab270fdb8e054b2ad525f0ce2a8b89cc76c17f0965434740f673a5560118314027fc3939feff011e53ab8c35ca3370aad54c5df1fc2938cd62543174fa6e7d858771861040b565b7f54b3212a178782f104e0d514b41a9a5c4ca9c980bf6597c3cecbf280917e202a60138314027f5a4f867d3d458dabecad65f6201ceeaba0096df2d0c491cc32e6ea4e643500171861040b565b6017821015614e39577fbb40bf8cea3a5a716e2b6eb08bbdac8ec159f82f380783db3c56904f15a43d0460158314027f3bd8cff538aba49a9c374c806d277181e9651624b3e31111bc0624574f8bca1d1861040b565b7f403be09941a31d05cfc2f896505811353d45d38743288b016630cce39435476a60178314027f1d51df90cba8de7637ca3e8fe1e3511d1dc2f23487d05dbdecb781860c21ac1c1861040b565b61040b82614a86565b6321ccfeb75f5281602052806040526044601cfd5b6394eb6af65f526004601cfd5b5f835f5260205f2060208301835160051b81015b80821015614eec57815180841160051b93845260209384185260405f209290910190614ec5565b50508314905080614444576144445b6309bde3395f526004601cfd5b5f61041b60405190565b5f825180835260208401602084018260051b82015b80831015614f655782518051835260208101516020840152604081015160408401526060810151606084015250602083019250608082019150614f27565b5050508060071b60200191505092915050565b5f80614f82845190565b8084529050602084810190600583901b860181019085015b82821115614fca575f614fac84615036565b9050614fba818360a061503f565b506020929092019160a001614f9a565b60a0840260200194505050505092915050565b5f63ffffffe0603f614fed855190565b0116905061040b83838361503f565b5f80615006845190565b8084529050600581901b61502160208681019086018361503f565b602001949350505050565b6103ff6040829052565b5f61040b825190565b8082828560045afa80153d151715614444575f80fd5b6040518060a001604052806150686150ca565b81525f602082018190526040820152606080820181905260809091015290565b60408051610100810182525f606082018181526080830182905260a0830182905260c0830182905260e083018290528252602082018190529181019190915290565b6040518061016001604052805f6001600160a01b031681526020015f6001600160a01b0316815260200160608152602001606081526020015f600481111561511457615114615357565b81525f6020820181905260408201819052606082018190526080820181905260a0820181905260c09091015290565b5f60208284031215615153575f80fd5b81356001600160401b03811115615168575f80fd5b820161024081850312156104fa575f80fd5b5f81518084525f5b8181101561519e57602081850181015186830182015201615182565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f6104fa602083018461517a565b5f602082840312156151df575f80fd5b5035919050565b5f602082840312156151f6575f80fd5b81356001600160401b0381111561520b575f80fd5b820161016081850312156104fa575f80fd5b5f8083601f84011261522d575f80fd5b5081356001600160401b03811115615243575f80fd5b6020830191508360208260051b850101111561525d575f80fd5b9250929050565b80356001600160a01b0381168114611c22575f80fd5b5f805f805f805f805f805f60e08c8e031215615294575f80fd5b6001600160401b03808d3511156152a9575f80fd5b6152b68e8e358f0161521d565b909c509a5060208d01358110156152cb575f80fd5b6152db8e60208f01358f0161521d565b909a50985060408d01358110156152f0575f80fd5b6153008e60408f01358f0161521d565b909850965060608d0135811015615315575f80fd5b506153268d60608e01358e0161521d565b909550935060808c0135925061533e60a08d01615264565b915060c08c013590509295989b509295989b9093969950565b634e487b7160e01b5f52602160045260245ffd5b60068110611b9e57611b9e615357565b61538682825161536b565b6020818101516001600160a01b0390811691840191909152604080830151908401526060808301519084015260809182015116910152565b5f815180845260208085019450602084015f5b838110156154135781516153e688825161537b565b808401516001600160a01b031660a08901526040015160c088015260e090960195908201906001016153d1565b509495945050505050565b604080825283519082018190525f906020906060840190828701845b8281101561545857815115158452928401929084019060010161543a565b50505083810360208501526106e081866153be565b5f806020838503121561547e575f80fd5b82356001600160401b03811115615493575f80fd5b61549f8582860161521d565b90969095509350505050565b5f805f80604085870312156154be575f80fd5b84356001600160401b03808211156154d4575f80fd5b6154e08883890161521d565b909650945060208701359150808211156154f8575f80fd5b506155058782880161521d565b95989497509550505050565b602081525f6104fa60208301846153be565b5f60208284031215615533575f80fd5b6104fa82615264565b5f806040838503121561554d575f80fd5b82356001600160401b03811115615562575f80fd5b830160408186031215615573575f80fd5b946020939093013593505050565b5f805f805f60808688031215615595575f80fd5b85356001600160401b03808211156155ab575f80fd5b9087019060a0828a0312156155be575f80fd5b909550602087013590808211156155d3575f80fd5b506155e08882890161521d565b909550935050604086013591506155f960608701615264565b90509295509295909350565b5f805f805f805f8060a0898b03121561561c575f80fd5b88356001600160401b0380821115615632575f80fd5b61563e8c838d0161521d565b909a50985060208b0135915080821115615656575f80fd5b6156628c838d0161521d565b909850965060408b013591508082111561567a575f80fd5b506156878b828c0161521d565b999c989b509699959896976060870135966080013595509350505050565b5f805f805f805f6080888a0312156156bb575f80fd5b87356001600160401b03808211156156d1575f80fd5b6156dd8b838c0161521d565b909950975060208a01359150808211156156f5575f80fd5b6157018b838c0161521d565b909750955060408a0135915080821115615719575f80fd5b506157268a828b0161521d565b9094509250615739905060608901615264565b905092959891949750929550565b606081525f615759606083018661517a565b6020830194909452506001600160a01b0391909116604090910152919050565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f826157bb57634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f815180845260208085019450602084015f5b838110156154135781516157fc88825161536b565b838101516001600160a01b03168885015260408082015190890152606080820151908901526080908101519088015260a090960195908201906001016157e7565b5f815180845260208085019450602084015f5b8381101561541357815161586588825161536b565b808401516001600160a01b0390811689860152604080830151908a0152606080830151908a0152608080830151908a015260a091820151169088015260c09096019590820190600101615850565b60058110611b9e57611b9e615357565b828152604060208201526158e36040820183516001600160a01b03169052565b5f60208301516158fe60608401826001600160a01b03169052565b50604083015161016080608085015261591b6101a08501836157d4565b91506060850151603f198584030160a0860152615938838261583d565b925050608085015161594d60c08601826158b3565b5060a085015160e085015260c0850151610100818187015260e0870151915061012082818801528188015192506101409150828288015280880151848801525080870151610180870152505050809150509392505050565b5f823561015e198336030181126159ba575f80fd5b9190910192915050565b5f602082840312156159d4575f80fd5b8135600581106104fa575f80fd5b8181038181111561040b5761040b61578d565b8082018082111561040b5761040b61578d565b5f815180845260208085019450602084015f5b8381101561541357615a2e87835161537b565b60a0969096019590820190600101615a1b565b5f6080808301878452602060018060a01b03808916602087015260406080604088015283895180865260a08901915060208b0195505f5b81811015615ab9578651615a8d84825161536b565b808701518616848801528481015185850152606090810151908401529585019591870191600101615a78565b50508781036060890152615acd818a615a08565b9c9b505050505050505050505050565b808202811582820484141761040b5761040b61578d56fea2646970667358221220144ae316c8b03bb9076a4856a427dfd0918729f5e815fc76c06889fcb10b46bb64736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class Consideration__factory extends KL.ContractFactory{constructor(...D){D.length>1?super(...D):super(JL,XL,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new KL.Interface(JL)}static connect(D,te){return new KL.Contract(D,JL,te)}}VL.Consideration__factory=Consideration__factory,Consideration__factory.bytecode=XL,Consideration__factory.abi=JL;var QL={};Object.defineProperty(QL,"__esModule",{value:!0}),QL.ConsiderationBase__factory=void 0;const ZL=YO,YL=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"}],eU="0x6101c0604052348015610010575f80fd5b5060405161055938038061055983398101604081905261002f91610216565b6100376100f0565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa1580156100c1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e59190610243565b506101a052506102b8565b5f808080808061012060408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a81526020016104ef606a913990505f6040518060c00160405280608481526020016103456084913990505f60405180610100016040528060d4815260200161041b60d4913990506040518060800160405280605281526020016103c96052913980519060200120965082805190602001209550818051906020012094505f8183856040516020016101ef93929190610292565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f60208284031215610226575f80fd5b81516001600160a01b038116811461023c575f80fd5b9392505050565b5f8060408385031215610254575f80fd5b505080516020909101519092909150565b5f81515f5b81811015610284576020818501810151868301520161026a565b505f93019283525090919050565b5f6102af6102a96102a38488610265565b86610265565b84610265565b95945050505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051603e6103075f395f50505f50505f50505f50505f50505f50505f50505f50505f50505f5050603e5ff3fe60806040525f80fdfea2646970667358221220c6ffe18fa92bda9699516ff36313fbc821bd831fb9b149f399b06205add0353064736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class ConsiderationBase__factory extends ZL.ContractFactory{constructor(...D){D.length>1?super(...D):super(YL,eU,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new ZL.Interface(YL)}static connect(D,te){return new ZL.Contract(D,YL,te)}}QL.ConsiderationBase__factory=ConsiderationBase__factory,ConsiderationBase__factory.bytecode=eU,ConsiderationBase__factory.abi=YL;var tU={};Object.defineProperty(tU,"__esModule",{value:!0}),tU.CounterManager__factory=void 0;const rU=YO,nU=[{inputs:[],name:"BadFraction",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"}],aU="0x60c060405234801561000f575f80fd5b505f610019610076565b90506001600160a01b03811661004257604051632aea588760e01b815260040160405180910390fd5b5f61004c8261008f565b8015156080526001600160a01b03831660a05290508061006f57600163929eee14555b505061010c565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a6100a791906100ed565b6040515f8181818686fa925050503d805f81146100df576040519150601f19603f3d011682016040523d82523d5f602084013e6100e4565b606091505b50909392505050565b5f8261010757634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05161018b61012b5f395f608d01525f6042015261018b5ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80637423eb3c1461002d575b5f80fd5b610035610037565b005b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061006a575080155b1561008857604051630f45b98b60e41b815260040160405180910390fd5b6100b17f00000000000000000000000000000000000000000000000000000000000000006100d8565b6100ce576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f816001600160a01b0316600a5a6100f09190610136565b6040515f8181818686fa925050503d805f8114610128576040519150601f19603f3d011682016040523d82523d5f602084013e61012d565b606091505b50909392505050565b5f8261015057634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220c84c0e5646455162d0de7da644549cedcffcd49028fd38c31e4d3be5826fc0bc64736f6c63430008180033";class CounterManager__factory extends rU.ContractFactory{constructor(...D){D.length>1?super(...D):super(nU,aU,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new rU.Interface(nU)}static connect(D,te){return new rU.Contract(D,nU,te)}}tU.CounterManager__factory=CounterManager__factory,CounterManager__factory.bytecode=aU,CounterManager__factory.abi=nU;var iU={};Object.defineProperty(iU,"__esModule",{value:!0}),iU.CriteriaResolution__factory=void 0;const sU=YO,oU=[{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"}],cU="0x6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220f613ca4fda4b0650eb06a2a814e61f6a9afa26b55c206c64970473a15b796f4764736f6c63430008180033";class CriteriaResolution__factory extends sU.ContractFactory{constructor(...D){D.length>1?super(...D):super(oU,cU,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new sU.Interface(oU)}static connect(D,te){return new sU.Contract(D,oU,te)}}iU.CriteriaResolution__factory=CriteriaResolution__factory,CriteriaResolution__factory.bytecode=cU,CriteriaResolution__factory.abi=oU;var dU={};Object.defineProperty(dU,"__esModule",{value:!0}),dU.Executor__factory=void 0;const uU=YO,fU=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"}],lU="0x610200604052348015610010575f80fd5b506040516107bc3803806107bc83398101604081905261002f916102f9565b8080808061003b61015c565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa1580156100c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e99190610326565b506101a052505f90506100fa610282565b90506001600160a01b03811661012357604051632aea588760e01b815260040160405180910390fd5b5f61012d8261029b565b8015156101c0526001600160a01b0383166101e05290508061015257600163929eee14555b50505050506103ba565b5f808080808061018c60408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a8152602001610752606a913990505f6040518060c00160405280608481526020016105a86084913990505f60405180610100016040528060d4815260200161067e60d49139905060405180608001604052806052815260200161062c6052913980519060200120965082805190602001209550818051906020012094505f81838560405160200161025b93929190610375565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a6102b3919061039b565b6040515f8181818686fa925050503d805f81146102eb576040519150601f19603f3d011682016040523d82523d5f602084013e6102f0565b606091505b50909392505050565b5f60208284031215610309575f80fd5b81516001600160a01b038116811461031f575f80fd5b9392505050565b5f8060408385031215610337575f80fd5b505080516020909101519092909150565b5f81515f5b81811015610367576020818501810151868301520161034d565b505f93019283525090919050565b5f61039261038c6103868488610348565b86610348565b84610348565b95945050505050565b5f826103b557634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161018b61041d5f395f608d01525f604201525f50505f50505f50505f50505f50505f50505f50505f50505f50505f505061018b5ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80637423eb3c1461002d575b5f80fd5b610035610037565b005b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061006a575080155b1561008857604051630f45b98b60e41b815260040160405180910390fd5b6100b17f00000000000000000000000000000000000000000000000000000000000000006100d8565b6100ce576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f816001600160a01b0316600a5a6100f09190610136565b6040515f8181818686fa925050503d805f8114610128576040519150601f19603f3d011682016040523d82523d5f602084013e61012d565b606091505b50909392505050565b5f8261015057634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220886bb2b7f7350dd17decd5e0decd38ac95caf56921cbbe143b88589e0631647a64736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class Executor__factory extends uU.ContractFactory{constructor(...D){D.length>1?super(...D):super(fU,lU,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new uU.Interface(fU)}static connect(D,te){return new uU.Contract(D,fU,te)}}dU.Executor__factory=Executor__factory,Executor__factory.bytecode=lU,Executor__factory.abi=fU;var pU={};Object.defineProperty(pU,"__esModule",{value:!0}),pU.FulfillmentApplier__factory=void 0;const hU=YO,yU=[{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"}],mU="0x6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220e18f94530c9f91237515c9e94a3e96d81a4843e5e2bd34e0d3f8623b1bc91c5264736f6c63430008180033";class FulfillmentApplier__factory extends hU.ContractFactory{constructor(...D){D.length>1?super(...D):super(yU,mU,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new hU.Interface(yU)}static connect(D,te){return new hU.Contract(D,yU,te)}}pU.FulfillmentApplier__factory=FulfillmentApplier__factory,FulfillmentApplier__factory.bytecode=mU,FulfillmentApplier__factory.abi=yU;var bU={};Object.defineProperty(bU,"__esModule",{value:!0}),bU.GettersAndDerivers__factory=void 0;const gU=YO,vU=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"}],wU="0x6101c0604052348015610010575f80fd5b5060405161055c38038061055c83398101604081905261002f91610219565b806100386100f3565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa1580156100c2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e69190610246565b506101a052506102bb9050565b5f808080808061012360408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a81526020016104f2606a913990505f6040518060c00160405280608481526020016103486084913990505f60405180610100016040528060d4815260200161041e60d4913990506040518060800160405280605281526020016103cc6052913980519060200120965082805190602001209550818051906020012094505f8183856040516020016101f293929190610295565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f60208284031215610229575f80fd5b81516001600160a01b038116811461023f575f80fd5b9392505050565b5f8060408385031215610257575f80fd5b505080516020909101519092909150565b5f81515f5b81811015610287576020818501810151868301520161026d565b505f93019283525090919050565b5f6102b26102ac6102a68488610268565b86610268565b84610268565b95945050505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051603e61030a5f395f50505f50505f50505f50505f50505f50505f50505f50505f50505f5050603e5ff3fe60806040525f80fdfea2646970667358221220dab8f3b02f3b0f76433738f50323af6adf3ef44ef65771c1369ed6d1b00e506064736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class GettersAndDerivers__factory extends gU.ContractFactory{constructor(...D){D.length>1?super(...D):super(vU,wU,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new gU.Interface(vU)}static connect(D,te){return new gU.Contract(D,vU,te)}}bU.GettersAndDerivers__factory=GettersAndDerivers__factory,GettersAndDerivers__factory.bytecode=wU,GettersAndDerivers__factory.abi=vU;var _U={};Object.defineProperty(_U,"__esModule",{value:!0}),_U.OrderCombiner__factory=void 0;const TU=YO,AU=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"}],EU="0x610200604052348015610010575f80fd5b506040516107c43803806107c483398101604081905261002f91610301565b808080808080808061003f610164565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa1580156100c9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ed919061032e565b506101a052505f90506100fe61028a565b90506001600160a01b03811661012757604051632aea588760e01b815260040160405180910390fd5b5f610131826102a3565b8015156101c0526001600160a01b0383166101e05290508061015657600163929eee14555b5050505050505050506103c2565b5f808080808061019460408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a815260200161075a606a913990505f6040518060c00160405280608481526020016105b06084913990505f60405180610100016040528060d4815260200161068660d4913990506040518060800160405280605281526020016106346052913980519060200120965082805190602001209550818051906020012094505f8183856040516020016102639392919061037d565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a6102bb91906103a3565b6040515f8181818686fa925050503d805f81146102f3576040519150601f19603f3d011682016040523d82523d5f602084013e6102f8565b606091505b50909392505050565b5f60208284031215610311575f80fd5b81516001600160a01b0381168114610327575f80fd5b9392505050565b5f806040838503121561033f575f80fd5b505080516020909101519092909150565b5f81515f5b8181101561036f5760208185018101518683015201610355565b505f93019283525090919050565b5f61039a61039461038e8488610350565b86610350565b84610350565b95945050505050565b5f826103bd57634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161018b6104255f395f608d01525f604201525f50505f50505f50505f50505f50505f50505f50505f50505f50505f505061018b5ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80637423eb3c1461002d575b5f80fd5b610035610037565b005b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061006a575080155b1561008857604051630f45b98b60e41b815260040160405180910390fd5b6100b17f00000000000000000000000000000000000000000000000000000000000000006100d8565b6100ce576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f816001600160a01b0316600a5a6100f09190610136565b6040515f8181818686fa925050503d805f8114610128576040519150601f19603f3d011682016040523d82523d5f602084013e61012d565b606091505b50909392505050565b5f8261015057634e487b7160e01b5f52601260045260245ffd5b50049056fea2646970667358221220f55781cea9f97f7ad8b87e66c18dac58c8e52c8498bda3c74bf343731da75d6b64736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class OrderCombiner__factory extends TU.ContractFactory{constructor(...D){D.length>1?super(...D):super(AU,EU,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new TU.Interface(AU)}static connect(D,te){return new TU.Contract(D,AU,te)}}_U.OrderCombiner__factory=OrderCombiner__factory,OrderCombiner__factory.bytecode=EU,OrderCombiner__factory.abi=AU;var PU={};Object.defineProperty(PU,"__esModule",{value:!0}),PU.OrderFulfiller__factory=void 0;const SU=YO,CU=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InexactFraction",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"}],IU="0x610200604052348015610010575f80fd5b506040516107c23803806107c283398101604081905261002f916102ff565b8080808080808061003e610162565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa1580156100c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ec919061032c565b506101a052505f90506100fd610288565b90506001600160a01b03811661012657604051632aea588760e01b815260040160405180910390fd5b5f610130826102a1565b8015156101c0526001600160a01b0383166101e05290508061015557600163929eee14555b50505050505050506103c0565b5f808080808061019260408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a8152602001610758606a913990505f6040518060c00160405280608481526020016105ae6084913990505f60405180610100016040528060d4815260200161068460d4913990506040518060800160405280605281526020016106326052913980519060200120965082805190602001209550818051906020012094505f8183856040516020016102619392919061037b565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a6102b991906103a1565b6040515f8181818686fa925050503d805f81146102f1576040519150601f19603f3d011682016040523d82523d5f602084013e6102f6565b606091505b50909392505050565b5f6020828403121561030f575f80fd5b81516001600160a01b0381168114610325575f80fd5b9392505050565b5f806040838503121561033d575f80fd5b505080516020909101519092909150565b5f81515f5b8181101561036d5760208185018101518683015201610353565b505f93019283525090919050565b5f61039861039261038c848861034e565b8661034e565b8461034e565b95945050505050565b5f826103bb57634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161018b6104235f395f608d01525f604201525f50505f50505f50505f50505f50505f50505f50505f50505f50505f505061018b5ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80637423eb3c1461002d575b5f80fd5b610035610037565b005b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061006a575080155b1561008857604051630f45b98b60e41b815260040160405180910390fd5b6100b17f00000000000000000000000000000000000000000000000000000000000000006100d8565b6100ce576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f816001600160a01b0316600a5a6100f09190610136565b6040515f8181818686fa925050503d805f8114610128576040519150601f19603f3d011682016040523d82523d5f602084013e61012d565b606091505b50909392505050565b5f8261015057634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212209b2a54dacc9f6a84c6a04b0fc4438fb0177d80cf7d42961f8a9576dccdd6e99a64736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class OrderFulfiller__factory extends SU.ContractFactory{constructor(...D){D.length>1?super(...D):super(CU,IU,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new SU.Interface(CU)}static connect(D,te){return new SU.Contract(D,CU,te)}}PU.OrderFulfiller__factory=OrderFulfiller__factory,OrderFulfiller__factory.bytecode=IU,OrderFulfiller__factory.abi=CU;var RU={};Object.defineProperty(RU,"__esModule",{value:!0}),RU.OrderValidator__factory=void 0;const kU=YO,OU=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"}],xU="0x610200604052348015610010575f80fd5b506040516107be3803806107be83398101604081905261002f916102fb565b808080808061003c61015e565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa1580156100c6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100ea9190610328565b506101a052505f90506100fb610284565b90506001600160a01b03811661012457604051632aea588760e01b815260040160405180910390fd5b5f61012e8261029d565b8015156101c0526001600160a01b0383166101e05290508061015357600163929eee14555b5050505050506103bc565b5f808080808061018e60408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a8152602001610754606a913990505f6040518060c00160405280608481526020016105aa6084913990505f60405180610100016040528060d4815260200161068060d49139905060405180608001604052806052815260200161062e6052913980519060200120965082805190602001209550818051906020012094505f81838560405160200161025d93929190610377565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a6102b5919061039d565b6040515f8181818686fa925050503d805f81146102ed576040519150601f19603f3d011682016040523d82523d5f602084013e6102f2565b606091505b50909392505050565b5f6020828403121561030b575f80fd5b81516001600160a01b0381168114610321575f80fd5b9392505050565b5f8060408385031215610339575f80fd5b505080516020909101519092909150565b5f81515f5b81811015610369576020818501810151868301520161034f565b505f93019283525090919050565b5f61039461038e610388848861034a565b8661034a565b8461034a565b95945050505050565b5f826103b757634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161018b61041f5f395f608d01525f604201525f50505f50505f50505f50505f50505f50505f50505f50505f50505f505061018b5ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80637423eb3c1461002d575b5f80fd5b610035610037565b005b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061006a575080155b1561008857604051630f45b98b60e41b815260040160405180910390fd5b6100b17f00000000000000000000000000000000000000000000000000000000000000006100d8565b6100ce576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f816001600160a01b0316600a5a6100f09190610136565b6040515f8181818686fa925050503d805f8114610128576040519150601f19603f3d011682016040523d82523d5f602084013e61012d565b606091505b50909392505050565b5f8261015057634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122072e5f6ae135872cdaebd56fcb57e472ba41e59b702e59e756edfdcb11b92698564736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class OrderValidator__factory extends kU.ContractFactory{constructor(...D){D.length>1?super(...D):super(OU,xU,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new kU.Interface(OU)}static connect(D,te){return new kU.Contract(D,OU,te)}}RU.OrderValidator__factory=OrderValidator__factory,OrderValidator__factory.bytecode=xU,OrderValidator__factory.abi=OU;var NU={};Object.defineProperty(NU,"__esModule",{value:!0}),NU.ReentrancyGuard__factory=void 0;const MU=YO,BU=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"}],FU="0x60c060405234801561000f575f80fd5b505f610019610076565b90506001600160a01b03811661004257604051632aea588760e01b815260040160405180910390fd5b5f61004c8261008f565b8015156080526001600160a01b03831660a05290508061006f57600163929eee14555b505061010c565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a6100a791906100ed565b6040515f8181818686fa925050503d805f81146100df576040519150601f19603f3d011682016040523d82523d5f602084013e6100e4565b606091505b50909392505050565b5f8261010757634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05161018b61012b5f395f608d01525f6042015261018b5ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80637423eb3c1461002d575b5f80fd5b610035610037565b005b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061006a575080155b1561008857604051630f45b98b60e41b815260040160405180910390fd5b6100b17f00000000000000000000000000000000000000000000000000000000000000006100d8565b6100ce576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f816001600160a01b0316600a5a6100f09190610136565b6040515f8181818686fa925050503d805f8114610128576040519150601f19603f3d011682016040523d82523d5f602084013e61012d565b606091505b50909392505050565b5f8261015057634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212200b7deff1ff3e0664ceada1cb9953469a04b1867a733fd55416f02dcb5d12cf3464736f6c63430008180033";class ReentrancyGuard__factory extends MU.ContractFactory{constructor(...D){D.length>1?super(...D):super(BU,FU,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new MU.Interface(BU)}static connect(D,te){return new MU.Contract(D,BU,te)}}NU.ReentrancyGuard__factory=ReentrancyGuard__factory,ReentrancyGuard__factory.bytecode=FU,ReentrancyGuard__factory.abi=BU;var DU={};Object.defineProperty(DU,"__esModule",{value:!0}),DU.SignatureVerification__factory=void 0;const LU=YO,UU=[{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"}],$U="0x6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea2646970667358221220c33f341fc1c39001b6bfa2d4e617624bdaf9d7c43032a43176f397c5e05f1dcb64736f6c63430008180033";class SignatureVerification__factory extends LU.ContractFactory{constructor(...D){D.length>1?super(...D):super(UU,$U,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new LU.Interface(UU)}static connect(D,te){return new LU.Contract(D,UU,te)}}DU.SignatureVerification__factory=SignatureVerification__factory,SignatureVerification__factory.bytecode=$U,SignatureVerification__factory.abi=UU;var qU={};Object.defineProperty(qU,"__esModule",{value:!0}),qU.TokenTransferrer__factory=void 0;const GU=YO,jU=[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"}],HU="0x6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea264697066735822122096d328f4f566a1c9c8883c5e49aa03f35600bab7454c84391bb3aea09834822364736f6c63430008180033";class TokenTransferrer__factory extends GU.ContractFactory{constructor(...D){D.length>1?super(...D):super(jU,HU,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new GU.Interface(jU)}static connect(D,te){return new GU.Contract(D,jU,te)}}qU.TokenTransferrer__factory=TokenTransferrer__factory,TokenTransferrer__factory.bytecode=HU,TokenTransferrer__factory.abi=jU;var zU={};Object.defineProperty(zU,"__esModule",{value:!0}),zU.Verifiers__factory=void 0;const WU=YO,VU=[{inputs:[{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[],name:"BadFraction",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"},{inputs:[],name:"__activateTstore",outputs:[],stateMutability:"nonpayable",type:"function"}],KU="0x610200604052348015610010575f80fd5b506040516107ba3803806107ba83398101604081905261002f916102f7565b80808061003a61015a565b610120526101005260e05260c081905260a082815246610140819052604080515f9485526020879052948152606091825230608090815292842085825293909152939052610160526001600160a01b038316610180819052630a96ad3960e01b825282519092630a96ad3992600480820193918290030181865afa1580156100c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100e89190610324565b506101a052505f90506100f9610280565b90506001600160a01b03811661012257604051632aea588760e01b815260040160405180910390fd5b5f61012c82610299565b8015156101c0526001600160a01b0383166101e05290508061015157600163929eee14555b505050506103b8565b5f808080808061018a60408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b8051906020012095506040518060400160405280600381526020016218971b60e91b8152508051906020012094505f6040518060a00160405280606a8152602001610750606a913990505f6040518060c00160405280608481526020016105a66084913990505f60405180610100016040528060d4815260200161067c60d49139905060405180608001604052806052815260200161062a6052913980519060200120965082805190602001209550818051906020012094505f81838560405160200161025993929190610373565b60405160208183030381529060405290508080519060200120945050505050909192939495565b5f696002601e613d5c3d52f35f52600a60165ff0905090565b5f816001600160a01b0316600a5a6102b19190610399565b6040515f8181818686fa925050503d805f81146102e9576040519150601f19603f3d011682016040523d82523d5f602084013e6102ee565b606091505b50909392505050565b5f60208284031215610307575f80fd5b81516001600160a01b038116811461031d575f80fd5b9392505050565b5f8060408385031215610335575f80fd5b505080516020909101519092909150565b5f81515f5b81811015610365576020818501810151868301520161034b565b505f93019283525090919050565b5f61039061038a6103848488610346565b86610346565b84610346565b95945050505050565b5f826103b357634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e05161018b61041b5f395f608d01525f604201525f50505f50505f50505f50505f50505f50505f50505f50505f50505f505061018b5ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c80637423eb3c1461002d575b5f80fd5b610035610037565b005b63929eee14546001147f00000000000000000000000000000000000000000000000000000000000000008061006a575080155b1561008857604051630f45b98b60e41b815260040160405180910390fd5b6100b17f00000000000000000000000000000000000000000000000000000000000000006100d8565b6100ce576040516370a4078f60e01b815260040160405180910390fd5b5f63929eee145550565b5f816001600160a01b0316600a5a6100f09190610136565b6040515f8181818686fa925050503d805f8114610128576040519150601f19603f3d011682016040523d82523d5f602084013e61012d565b606091505b50909392505050565b5f8261015057634e487b7160e01b5f52601260045260245ffd5b50049056fea264697066735822122020e5c6c5dac5bed8a6941955fbcd3f0bef3b14edd08b1ec1d02cb021ea09f25e64736f6c63430008180033436f6e73696465726174696f6e4974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e742c6164647265737320726563697069656e7429454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e7472616374294f72646572436f6d706f6e656e74732861646472657373206f6666657265722c61646472657373207a6f6e652c4f666665724974656d5b5d206f666665722c436f6e73696465726174696f6e4974656d5b5d20636f6e73696465726174696f6e2c75696e7438206f72646572547970652c75696e7432353620737461727454696d652c75696e7432353620656e6454696d652c62797465733332207a6f6e65486173682c75696e743235362073616c742c6279746573333220636f6e647569744b65792c75696e7432353620636f756e746572294f666665724974656d2875696e7438206974656d547970652c6164647265737320746f6b656e2c75696e74323536206964656e7469666965724f7243726974657269612c75696e74323536207374617274416d6f756e742c75696e7432353620656e64416d6f756e7429";class Verifiers__factory extends WU.ContractFactory{constructor(...D){D.length>1?super(...D):super(VU,KU,D[0])}getDeployTransaction(D,te){return super.getDeployTransaction(D,te||{})}deploy(D,te){return super.deploy(D,te||{})}connect(D){return super.connect(D)}static createInterface(){return new WU.Interface(VU)}static connect(D,te){return new WU.Contract(D,VU,te)}}zU.Verifiers__factory=Verifiers__factory,Verifiers__factory.bytecode=KU,Verifiers__factory.abi=VU;var JU={};Object.defineProperty(JU,"__esModule",{value:!0}),JU.ZoneInteraction__factory=void 0;const XU=YO,QU=[{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"}],ZU="0x6080604052348015600e575f80fd5b50603e80601a5f395ff3fe60806040525f80fdfea264697066735822122030b78722acfb68476127f7f246052e6735a8966a534cb4457bd18c966e8dd62964736f6c63430008180033";class ZoneInteraction__factory extends XU.ContractFactory{constructor(...D){D.length>1?super(...D):super(QU,ZU,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new XU.Interface(QU)}static connect(D,te){return new XU.Contract(D,QU,te)}}JU.ZoneInteraction__factory=ZoneInteraction__factory,ZoneInteraction__factory.bytecode=ZU,ZoneInteraction__factory.abi=QU,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.ZoneInteraction__factory=D.Verifiers__factory=D.TokenTransferrer__factory=D.SignatureVerification__factory=D.ReentrancyGuard__factory=D.OrderValidator__factory=D.OrderFulfiller__factory=D.OrderCombiner__factory=D.GettersAndDerivers__factory=D.FulfillmentApplier__factory=D.Executor__factory=D.CriteriaResolution__factory=D.CounterManager__factory=D.ConsiderationBase__factory=D.Consideration__factory=D.BasicOrderFulfiller__factory=D.Assertions__factory=D.AmountDeriver__factory=void 0;var te=BL;Object.defineProperty(D,"AmountDeriver__factory",{enumerable:!0,get:function(){return te.AmountDeriver__factory}});var he=UL;Object.defineProperty(D,"Assertions__factory",{enumerable:!0,get:function(){return he.Assertions__factory}});var ye=jL;Object.defineProperty(D,"BasicOrderFulfiller__factory",{enumerable:!0,get:function(){return ye.BasicOrderFulfiller__factory}});var be=VL;Object.defineProperty(D,"Consideration__factory",{enumerable:!0,get:function(){return be.Consideration__factory}});var ve=QL;Object.defineProperty(D,"ConsiderationBase__factory",{enumerable:!0,get:function(){return ve.ConsiderationBase__factory}});var we=tU;Object.defineProperty(D,"CounterManager__factory",{enumerable:!0,get:function(){return we.CounterManager__factory}});var _e=iU;Object.defineProperty(D,"CriteriaResolution__factory",{enumerable:!0,get:function(){return _e.CriteriaResolution__factory}});var Pe=dU;Object.defineProperty(D,"Executor__factory",{enumerable:!0,get:function(){return Pe.Executor__factory}});var Ie=pU;Object.defineProperty(D,"FulfillmentApplier__factory",{enumerable:!0,get:function(){return Ie.FulfillmentApplier__factory}});var Re=bU;Object.defineProperty(D,"GettersAndDerivers__factory",{enumerable:!0,get:function(){return Re.GettersAndDerivers__factory}});var ke=_U;Object.defineProperty(D,"OrderCombiner__factory",{enumerable:!0,get:function(){return ke.OrderCombiner__factory}});var Oe=PU;Object.defineProperty(D,"OrderFulfiller__factory",{enumerable:!0,get:function(){return Oe.OrderFulfiller__factory}});var xe=RU;Object.defineProperty(D,"OrderValidator__factory",{enumerable:!0,get:function(){return xe.OrderValidator__factory}});var Be=NU;Object.defineProperty(D,"ReentrancyGuard__factory",{enumerable:!0,get:function(){return Be.ReentrancyGuard__factory}});var Fe=DU;Object.defineProperty(D,"SignatureVerification__factory",{enumerable:!0,get:function(){return Fe.SignatureVerification__factory}});var De=qU;Object.defineProperty(D,"TokenTransferrer__factory",{enumerable:!0,get:function(){return De.TokenTransferrer__factory}});var Le=zU;Object.defineProperty(D,"Verifiers__factory",{enumerable:!0,get:function(){return Le.Verifiers__factory}});var Ue=JU;Object.defineProperty(D,"ZoneInteraction__factory",{enumerable:!0,get:function(){return Ue.ZoneInteraction__factory}})}(ML),Object.defineProperty(EL,"__esModule",{value:!0}),EL.lib=EL.conduit=void 0,EL.conduit=PL,EL.lib=ML,Object.defineProperty(AL,"__esModule",{value:!0}),AL.src=void 0,AL.src=EL;var YU={},e$={},t$={},r$={};Object.defineProperty(r$,"__esModule",{value:!0}),r$.AmountDerivationErrors__factory=void 0;const n$=YO,a$=[{inputs:[],name:"InexactFraction",type:"error"}];class AmountDerivationErrors__factory{static createInterface(){return new n$.Interface(a$)}static connect(D,te){return new n$.Contract(D,a$,te)}}r$.AmountDerivationErrors__factory=AmountDerivationErrors__factory,AmountDerivationErrors__factory.abi=a$;var i$={};Object.defineProperty(i$,"__esModule",{value:!0}),i$.ConduitControllerInterface__factory=void 0;const s$=YO,o$=[{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"CallerIsNotNewPotentialOwner",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"CallerIsNotOwner",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"ChannelOutOfRange",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"ConduitAlreadyExists",type:"error"},{inputs:[],name:"InvalidCreator",type:"error"},{inputs:[],name:"InvalidInitialOwner",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"newPotentialOwner",type:"address"}],name:"NewPotentialOwnerAlreadySet",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"NewPotentialOwnerIsZeroAddress",type:"error"},{inputs:[],name:"NoConduit",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"NoPotentialOwnerCurrentlySet",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"conduit",type:"address"},{indexed:!1,internalType:"bytes32",name:"conduitKey",type:"bytes32"}],name:"NewConduit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"conduit",type:"address"},{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newPotentialOwner",type:"address"}],name:"PotentialOwnerUpdated",type:"event"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"cancelOwnershipTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"initialOwner",type:"address"}],name:"createConduit",outputs:[{internalType:"address",name:"conduit",type:"address"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"uint256",name:"channelIndex",type:"uint256"}],name:"getChannel",outputs:[{internalType:"address",name:"channel",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"channel",type:"address"}],name:"getChannelStatus",outputs:[{internalType:"bool",name:"isOpen",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getChannels",outputs:[{internalType:"address[]",name:"channels",type:"address[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],name:"getConduit",outputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"bool",name:"exists",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"getConduitCodeHashes",outputs:[{internalType:"bytes32",name:"creationCodeHash",type:"bytes32"},{internalType:"bytes32",name:"runtimeCodeHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getKey",outputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getPotentialOwner",outputs:[{internalType:"address",name:"potentialOwner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"getTotalChannels",outputs:[{internalType:"uint256",name:"totalChannels",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"ownerOf",outputs:[{internalType:"address",name:"owner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"newPotentialOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"conduit",type:"address"},{internalType:"address",name:"channel",type:"address"},{internalType:"bool",name:"isOpen",type:"bool"}],name:"updateChannel",outputs:[],stateMutability:"nonpayable",type:"function"}];class ConduitControllerInterface__factory{static createInterface(){return new s$.Interface(o$)}static connect(D,te){return new s$.Contract(D,o$,te)}}i$.ConduitControllerInterface__factory=ConduitControllerInterface__factory,ConduitControllerInterface__factory.abi=o$;var c$={};Object.defineProperty(c$,"__esModule",{value:!0}),c$.ConduitInterface__factory=void 0;const d$=YO,u$=[{inputs:[{internalType:"address",name:"channel",type:"address"}],name:"ChannelClosed",type:"error"},{inputs:[{internalType:"address",name:"channel",type:"address"},{internalType:"bool",name:"isOpen",type:"bool"}],name:"ChannelStatusAlreadySet",type:"error"},{inputs:[],name:"InvalidController",type:"error"},{inputs:[],name:"InvalidItemType",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"channel",type:"address"},{indexed:!1,internalType:"bool",name:"open",type:"bool"}],name:"ChannelUpdated",type:"event"},{inputs:[{components:[{internalType:"enum ConduitItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ConduitTransfer[]",name:"transfers",type:"tuple[]"}],name:"execute",outputs:[{internalType:"bytes4",name:"magicValue",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],internalType:"struct ConduitBatch1155Transfer[]",name:"batch1155Transfers",type:"tuple[]"}],name:"executeBatch1155",outputs:[{internalType:"bytes4",name:"magicValue",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"enum ConduitItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],internalType:"struct ConduitTransfer[]",name:"standardTransfers",type:"tuple[]"},{components:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],internalType:"struct ConduitBatch1155Transfer[]",name:"batch1155Transfers",type:"tuple[]"}],name:"executeWithBatch1155",outputs:[{internalType:"bytes4",name:"magicValue",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"channel",type:"address"},{internalType:"bool",name:"isOpen",type:"bool"}],name:"updateChannel",outputs:[],stateMutability:"nonpayable",type:"function"}];class ConduitInterface__factory{static createInterface(){return new d$.Interface(u$)}static connect(D,te){return new d$.Contract(D,u$,te)}}c$.ConduitInterface__factory=ConduitInterface__factory,ConduitInterface__factory.abi=u$;var f$={};Object.defineProperty(f$,"__esModule",{value:!0}),f$.ConsiderationEventsAndErrors__factory=void 0;const l$=YO,p$=[{inputs:[],name:"BadFraction",type:"error"},{inputs:[],name:"CannotCancelOrder",type:"error"},{inputs:[],name:"ConsiderationLengthNotEqualToTotalOriginal",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"},{internalType:"uint256",name:"shortfallAmount",type:"uint256"}],name:"ConsiderationNotMet",type:"error"},{inputs:[],name:"InsufficientNativeTokensSupplied",type:"error"},{inputs:[],name:"InvalidBasicOrderParameterEncoding",type:"error"},{inputs:[{internalType:"address",name:"conduit",type:"address"}],name:"InvalidCallToConduit",type:"error"},{inputs:[{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"address",name:"conduit",type:"address"}],name:"InvalidConduit",type:"error"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"InvalidMsgValue",type:"error"},{inputs:[],name:"InvalidNativeOfferItem",type:"error"},{inputs:[{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"}],name:"InvalidTime",type:"error"},{inputs:[],name:"MissingOriginalConsiderationItems",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeTokenTransferGenericFailure",type:"error"},{inputs:[],name:"NoSpecifiedOrdersAvailable",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderAlreadyFilled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderIsCancelled",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"OrderPartiallyFilled",type:"error"},{inputs:[],name:"PartialFillsNotEnabledForOrder",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newCounter",type:"uint256"},{indexed:!0,internalType:"address",name:"offerer",type:"address"}],name:"CounterIncremented",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"}],name:"OrderCancelled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{indexed:!0,internalType:"address",name:"offerer",type:"address"},{indexed:!0,internalType:"address",name:"zone",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],indexed:!1,internalType:"struct SpentItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],indexed:!1,internalType:"struct ReceivedItem[]",name:"consideration",type:"tuple[]"}],name:"OrderFulfilled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"orderHash",type:"bytes32"},{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],indexed:!1,internalType:"struct OrderParameters",name:"orderParameters",type:"tuple"}],name:"OrderValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32[]",name:"orderHashes",type:"bytes32[]"}],name:"OrdersMatched",type:"event"}];class ConsiderationEventsAndErrors__factory{static createInterface(){return new l$.Interface(p$)}static connect(D,te){return new l$.Contract(D,p$,te)}}f$.ConsiderationEventsAndErrors__factory=ConsiderationEventsAndErrors__factory,ConsiderationEventsAndErrors__factory.abi=p$;var h$={};Object.defineProperty(h$,"__esModule",{value:!0}),h$.ConsiderationInterface__factory=void 0;const y$=YO,m$=[{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents[]",name:"orders",type:"tuple[]"}],name:"cancel",outputs:[{internalType:"bool",name:"cancelled",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder",name:"advancedOrder",type:"tuple"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"}],name:"fulfillAdvancedOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"advancedOrders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableAdvancedOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"offerFulfillments",type:"tuple[][]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[][]",name:"considerationFulfillments",type:"tuple[][]"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"maximumFulfilled",type:"uint256"}],name:"fulfillAvailableOrders",outputs:[{internalType:"bool[]",name:"availableOrders",type:"bool[]"},{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"considerationToken",type:"address"},{internalType:"uint256",name:"considerationIdentifier",type:"uint256"},{internalType:"uint256",name:"considerationAmount",type:"uint256"},{internalType:"address payable",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{internalType:"address",name:"offerToken",type:"address"},{internalType:"uint256",name:"offerIdentifier",type:"uint256"},{internalType:"uint256",name:"offerAmount",type:"uint256"},{internalType:"enum BasicOrderType",name:"basicOrderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"offererConduitKey",type:"bytes32"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalAdditionalRecipients",type:"uint256"},{components:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct AdditionalRecipient[]",name:"additionalRecipients",type:"tuple[]"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct BasicOrderParameters",name:"parameters",type:"tuple"}],name:"fulfillBasicOrder_efficient_6GL6yc",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order",name:"order",type:"tuple"},{internalType:"bytes32",name:"fulfillerConduitKey",type:"bytes32"}],name:"fulfillOrder",outputs:[{internalType:"bool",name:"fulfilled",type:"bool"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"contractOfferer",type:"address"}],name:"getContractOffererNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"offerer",type:"address"}],name:"getCounter",outputs:[{internalType:"uint256",name:"counter",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"counter",type:"uint256"}],internalType:"struct OrderComponents",name:"order",type:"tuple"}],name:"getOrderHash",outputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"getOrderStatus",outputs:[{internalType:"bool",name:"isValidated",type:"bool"},{internalType:"bool",name:"isCancelled",type:"bool"},{internalType:"uint256",name:"totalFilled",type:"uint256"},{internalType:"uint256",name:"totalSize",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"incrementCounter",outputs:[{internalType:"uint256",name:"newCounter",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"information",outputs:[{internalType:"string",name:"version",type:"string"},{internalType:"bytes32",name:"domainSeparator",type:"bytes32"},{internalType:"address",name:"conduitController",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"uint120",name:"numerator",type:"uint120"},{internalType:"uint120",name:"denominator",type:"uint120"},{internalType:"bytes",name:"signature",type:"bytes"},{internalType:"bytes",name:"extraData",type:"bytes"}],internalType:"struct AdvancedOrder[]",name:"orders",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"enum Side",name:"side",type:"uint8"},{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"bytes32[]",name:"criteriaProof",type:"bytes32[]"}],internalType:"struct CriteriaResolver[]",name:"criteriaResolvers",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"},{internalType:"address",name:"recipient",type:"address"}],name:"matchAdvancedOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"},{components:[{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"offerComponents",type:"tuple[]"},{components:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"itemIndex",type:"uint256"}],internalType:"struct FulfillmentComponent[]",name:"considerationComponents",type:"tuple[]"}],internalType:"struct Fulfillment[]",name:"fulfillments",type:"tuple[]"}],name:"matchOrders",outputs:[{components:[{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ReceivedItem",name:"item",type:"tuple"},{internalType:"address",name:"offerer",type:"address"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"}],internalType:"struct Execution[]",name:"executions",type:"tuple[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"contractName",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{internalType:"address",name:"offerer",type:"address"},{internalType:"address",name:"zone",type:"address"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"}],internalType:"struct OfferItem[]",name:"offer",type:"tuple[]"},{components:[{internalType:"enum ItemType",name:"itemType",type:"uint8"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"identifierOrCriteria",type:"uint256"},{internalType:"uint256",name:"startAmount",type:"uint256"},{internalType:"uint256",name:"endAmount",type:"uint256"},{internalType:"address payable",name:"recipient",type:"address"}],internalType:"struct ConsiderationItem[]",name:"consideration",type:"tuple[]"},{internalType:"enum OrderType",name:"orderType",type:"uint8"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"bytes32",name:"zoneHash",type:"bytes32"},{internalType:"uint256",name:"salt",type:"uint256"},{internalType:"bytes32",name:"conduitKey",type:"bytes32"},{internalType:"uint256",name:"totalOriginalConsiderationItems",type:"uint256"}],internalType:"struct OrderParameters",name:"parameters",type:"tuple"},{internalType:"bytes",name:"signature",type:"bytes"}],internalType:"struct Order[]",name:"orders",type:"tuple[]"}],name:"validate",outputs:[{internalType:"bool",name:"validated",type:"bool"}],stateMutability:"nonpayable",type:"function"}];class ConsiderationInterface__factory{static createInterface(){return new y$.Interface(m$)}static connect(D,te){return new y$.Contract(D,m$,te)}}h$.ConsiderationInterface__factory=ConsiderationInterface__factory,ConsiderationInterface__factory.abi=m$;var b$={};Object.defineProperty(b$,"__esModule",{value:!0}),b$.CriteriaResolutionErrors__factory=void 0;const g$=YO,v$=[{inputs:[],name:"ConsiderationCriteriaResolverOutOfRange",type:"error"},{inputs:[],name:"CriteriaNotEnabledForItem",type:"error"},{inputs:[],name:"InvalidProof",type:"error"},{inputs:[],name:"OfferCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"OrderCriteriaResolverOutOfRange",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"considerationIndex",type:"uint256"}],name:"UnresolvedConsiderationCriteria",type:"error"},{inputs:[{internalType:"uint256",name:"orderIndex",type:"uint256"},{internalType:"uint256",name:"offerIndex",type:"uint256"}],name:"UnresolvedOfferCriteria",type:"error"}];class CriteriaResolutionErrors__factory{static createInterface(){return new g$.Interface(v$)}static connect(D,te){return new g$.Contract(D,v$,te)}}b$.CriteriaResolutionErrors__factory=CriteriaResolutionErrors__factory,CriteriaResolutionErrors__factory.abi=v$;var w$={};Object.defineProperty(w$,"__esModule",{value:!0}),w$.FulfillmentApplicationErrors__factory=void 0;const _$=YO,T$=[{inputs:[],name:"InvalidFulfillmentComponentData",type:"error"},{inputs:[{internalType:"uint256",name:"fulfillmentIndex",type:"uint256"}],name:"MismatchedFulfillmentOfferAndConsiderationComponents",type:"error"},{inputs:[{internalType:"enum Side",name:"side",type:"uint8"}],name:"MissingFulfillmentComponentOnAggregation",type:"error"},{inputs:[],name:"OfferAndConsiderationRequiredOnFulfillment",type:"error"}];class FulfillmentApplicationErrors__factory{static createInterface(){return new _$.Interface(T$)}static connect(D,te){return new _$.Contract(D,T$,te)}}w$.FulfillmentApplicationErrors__factory=FulfillmentApplicationErrors__factory,FulfillmentApplicationErrors__factory.abi=T$;var A$={};Object.defineProperty(A$,"__esModule",{value:!0}),A$.ReentrancyErrors__factory=void 0;const E$=YO,P$=[{inputs:[],name:"NoReentrantCalls",type:"error"},{inputs:[],name:"TStoreAlreadyActivated",type:"error"},{inputs:[],name:"TStoreNotSupported",type:"error"},{inputs:[],name:"TloadTestContractDeploymentFailed",type:"error"}];class ReentrancyErrors__factory{static createInterface(){return new E$.Interface(P$)}static connect(D,te){return new E$.Contract(D,P$,te)}}A$.ReentrancyErrors__factory=ReentrancyErrors__factory,ReentrancyErrors__factory.abi=P$;var S$={};Object.defineProperty(S$,"__esModule",{value:!0}),S$.SignatureVerificationErrors__factory=void 0;const C$=YO,I$=[{inputs:[],name:"BadContractSignature",type:"error"},{inputs:[{internalType:"uint8",name:"v",type:"uint8"}],name:"BadSignatureV",type:"error"},{inputs:[],name:"InvalidSignature",type:"error"},{inputs:[],name:"InvalidSigner",type:"error"}];class SignatureVerificationErrors__factory{static createInterface(){return new C$.Interface(I$)}static connect(D,te){return new C$.Contract(D,I$,te)}}S$.SignatureVerificationErrors__factory=SignatureVerificationErrors__factory,SignatureVerificationErrors__factory.abi=I$;var R$={};Object.defineProperty(R$,"__esModule",{value:!0}),R$.TokenTransferrerErrors__factory=void 0;const k$=YO,O$=[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"BadReturnValueFromERC20OnTransfer",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"identifiers",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"ERC1155BatchTransferGenericFailure",type:"error"},{inputs:[],name:"Invalid1155BatchTransferEncoding",type:"error"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"InvalidERC721TransferAmount",type:"error"},{inputs:[],name:"MissingItemAmount",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"NoContract",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"identifier",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"TokenTransferGenericFailure",type:"error"},{inputs:[],name:"UnusedItemParameters",type:"error"}];class TokenTransferrerErrors__factory{static createInterface(){return new k$.Interface(O$)}static connect(D,te){return new k$.Contract(D,O$,te)}}R$.TokenTransferrerErrors__factory=TokenTransferrerErrors__factory,TokenTransferrerErrors__factory.abi=O$;var x$={};Object.defineProperty(x$,"__esModule",{value:!0}),x$.ZoneInteractionErrors__factory=void 0;const N$=YO,M$=[{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidContractOrder",type:"error"},{inputs:[{internalType:"bytes32",name:"orderHash",type:"bytes32"}],name:"InvalidRestrictedOrder",type:"error"}];class ZoneInteractionErrors__factory{static createInterface(){return new N$.Interface(M$)}static connect(D,te){return new N$.Contract(D,M$,te)}}x$.ZoneInteractionErrors__factory=ZoneInteractionErrors__factory,ZoneInteractionErrors__factory.abi=M$,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.ZoneInteractionErrors__factory=D.TokenTransferrerErrors__factory=D.SignatureVerificationErrors__factory=D.ReentrancyErrors__factory=D.FulfillmentApplicationErrors__factory=D.CriteriaResolutionErrors__factory=D.ConsiderationInterface__factory=D.ConsiderationEventsAndErrors__factory=D.ConduitInterface__factory=D.ConduitControllerInterface__factory=D.AmountDerivationErrors__factory=void 0;var te=r$;Object.defineProperty(D,"AmountDerivationErrors__factory",{enumerable:!0,get:function(){return te.AmountDerivationErrors__factory}});var he=i$;Object.defineProperty(D,"ConduitControllerInterface__factory",{enumerable:!0,get:function(){return he.ConduitControllerInterface__factory}});var ye=c$;Object.defineProperty(D,"ConduitInterface__factory",{enumerable:!0,get:function(){return ye.ConduitInterface__factory}});var be=f$;Object.defineProperty(D,"ConsiderationEventsAndErrors__factory",{enumerable:!0,get:function(){return be.ConsiderationEventsAndErrors__factory}});var ve=h$;Object.defineProperty(D,"ConsiderationInterface__factory",{enumerable:!0,get:function(){return ve.ConsiderationInterface__factory}});var we=b$;Object.defineProperty(D,"CriteriaResolutionErrors__factory",{enumerable:!0,get:function(){return we.CriteriaResolutionErrors__factory}});var _e=w$;Object.defineProperty(D,"FulfillmentApplicationErrors__factory",{enumerable:!0,get:function(){return _e.FulfillmentApplicationErrors__factory}});var Pe=A$;Object.defineProperty(D,"ReentrancyErrors__factory",{enumerable:!0,get:function(){return Pe.ReentrancyErrors__factory}});var Ie=S$;Object.defineProperty(D,"SignatureVerificationErrors__factory",{enumerable:!0,get:function(){return Ie.SignatureVerificationErrors__factory}});var Re=R$;Object.defineProperty(D,"TokenTransferrerErrors__factory",{enumerable:!0,get:function(){return Re.TokenTransferrerErrors__factory}});var ke=x$;Object.defineProperty(D,"ZoneInteractionErrors__factory",{enumerable:!0,get:function(){return ke.ZoneInteractionErrors__factory}})}(t$),Object.defineProperty(e$,"__esModule",{value:!0}),e$.interfaces=void 0,e$.interfaces=t$,Object.defineProperty(YU,"__esModule",{value:!0}),YU.src=void 0,YU.src=e$;var B$={},F$={},D$={},L$={};Object.defineProperty(L$,"__esModule",{value:!0}),L$.DomainRegistry__factory=void 0;const U$=YO,$$=[{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"DomainAlreadyRegistered",type:"error"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"maxIndex",type:"uint256"},{internalType:"uint256",name:"suppliedIndex",type:"uint256"}],name:"DomainIndexOutOfRange",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"domain",type:"string"},{indexed:!1,internalType:"bytes4",name:"tag",type:"bytes4"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"DomainRegistered",type:"event"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"index",type:"uint256"}],name:"getDomain",outputs:[{internalType:"string",name:"domain",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getDomains",outputs:[{internalType:"string[]",name:"domains",type:"string[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getNumberOfDomains",outputs:[{internalType:"uint256",name:"totalDomains",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"setDomain",outputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],stateMutability:"nonpayable",type:"function"}],q$="0x608060405234801561000f575f80fd5b506107ef8061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c8063432ba75c1461004e578063d45619b61461008a578063e5eab096146100aa578063eab5fc24146100d6575b5f80fd5b61007761005c366004610447565b6001600160e01b0319165f9081526020819052604090205490565b6040519081526020015b60405180910390f35b61009d610098366004610447565b6100f6565b60405161008191906104aa565b6100bd6100b836600461050c565b6101df565b6040516001600160e01b03199091168152602001610081565b6100e96100e4366004610578565b610302565b60405161008191906105a0565b6001600160e01b031981165f90815260208181526040808320805482518185028101850190935280835260609492939192909184015b828210156101d4578382905f5260205f20018054610149906105b2565b80601f0160208091040260200160405190810160405280929190818152602001828054610175906105b2565b80156101c05780601f10610197576101008083540402835291602001916101c0565b820191905f5260205f20905b8154815290600101906020018083116101a357829003601f168201915b50505050508152602001906001019061012c565b505050509050919050565b5f600183836040516101f29291906105ea565b9081526040519081900360200190205460ff16156102305782826040516350cb29b360e01b8152600401610227929190610621565b60405180910390fd5b60018084846040516102439291906105ea565b90815260405160209181900382018120805460ff1916931515939093179092556102719185918591016105ea565b60408051601f1981840301815291815281516020928301206001600160e01b031981165f90815280845291822080546001810182559083529290912090925081016102bd84868361069c565b507fe1a483db0873e9c9247adea872915ec5b4ca6f23d07334941b368c0c04224c0d848484846040516102f39493929190610756565b60405180910390a15092915050565b6001600160e01b031982165f908152602081905260408120546060919061032b90600190610786565b90508083111561036857604051630a6e1dad60e31b81526001600160e01b0319851660048201526024810182905260448101849052606401610227565b6001600160e01b031984165f908152602081905260409020805484908110610392576103926107a5565b905f5260205f200180546103a5906105b2565b80601f01602080910402602001604051908101604052809291908181526020018280546103d1906105b2565b801561041c5780601f106103f35761010080835404028352916020019161041c565b820191905f5260205f20905b8154815290600101906020018083116103ff57829003601f168201915b50505050509150505b92915050565b80356001600160e01b031981168114610442575f80fd5b919050565b5f60208284031215610457575f80fd5b6104608261042b565b9392505050565b5f81518084525f5b8181101561048b5760208185018101518683018201520161046f565b505f602082860101526020601f19601f83011685010191505092915050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156104ff57603f198886030184526104ed858351610467565b945092850192908501906001016104d1565b5092979650505050505050565b5f806020838503121561051d575f80fd5b823567ffffffffffffffff80821115610534575f80fd5b818501915085601f830112610547575f80fd5b813581811115610555575f80fd5b866020828501011115610566575f80fd5b60209290920196919550909350505050565b5f8060408385031215610589575f80fd5b6105928361042b565b946020939093013593505050565b602081525f6104606020830184610467565b600181811c908216806105c657607f821691505b6020821081036105e457634e487b7160e01b5f52602260045260245ffd5b50919050565b818382375f9101908152919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f6106346020830184866105f9565b949350505050565b634e487b7160e01b5f52604160045260245ffd5b601f82111561069757805f5260205f20601f840160051c810160208510156106755750805b601f840160051c820191505b81811015610694575f8155600101610681565b50505b505050565b67ffffffffffffffff8311156106b4576106b461063c565b6106c8836106c283546105b2565b83610650565b5f601f8411600181146106f9575f85156106e25750838201355b5f19600387901b1c1916600186901b178355610694565b5f83815260208120601f198716915b828110156107285786850135825560209485019460019092019101610708565b5086821015610744575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b606081525f6107696060830186886105f9565b6001600160e01b0319949094166020830152506040015292915050565b8181038181111561042557634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220f6b7ceec5684a9f90abdbd865b3b166abf224a1fbbc93139ede29f15637e0eb164736f6c63430008180033";class DomainRegistry__factory extends U$.ContractFactory{constructor(...D){D.length>1?super(...D):super($$,q$,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new U$.Interface($$)}static connect(D,te){return new U$.Contract(D,$$,te)}}L$.DomainRegistry__factory=DomainRegistry__factory,DomainRegistry__factory.bytecode=q$,DomainRegistry__factory.abi=$$;var G$={};Object.defineProperty(G$,"__esModule",{value:!0}),G$.DomainRegistryInterface__factory=void 0;const j$=YO,H$=[{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"DomainAlreadyRegistered",type:"error"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"maxIndex",type:"uint256"},{internalType:"uint256",name:"suppliedIndex",type:"uint256"}],name:"DomainIndexOutOfRange",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"domain",type:"string"},{indexed:!1,internalType:"bytes4",name:"tag",type:"bytes4"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"DomainRegistered",type:"event"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"},{internalType:"uint256",name:"index",type:"uint256"}],name:"getDomain",outputs:[{internalType:"string",name:"domain",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getDomains",outputs:[{internalType:"string[]",name:"domains",type:"string[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],name:"getNumberOfDomains",outputs:[{internalType:"uint256",name:"totalDomains",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"domain",type:"string"}],name:"setDomain",outputs:[{internalType:"bytes4",name:"tag",type:"bytes4"}],stateMutability:"nonpayable",type:"function"}];class DomainRegistryInterface__factory{static createInterface(){return new j$.Interface(H$)}static connect(D,te){return new j$.Contract(D,H$,te)}}G$.DomainRegistryInterface__factory=DomainRegistryInterface__factory,DomainRegistryInterface__factory.abi=H$,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.DomainRegistryInterface__factory=D.DomainRegistry__factory=void 0;var te=L$;Object.defineProperty(D,"DomainRegistry__factory",{enumerable:!0,get:function(){return te.DomainRegistry__factory}});var he=G$;Object.defineProperty(D,"DomainRegistryInterface__factory",{enumerable:!0,get:function(){return he.DomainRegistryInterface__factory}})}(D$);var z$={},W$={},V$={};Object.defineProperty(V$,"__esModule",{value:!0}),V$.IERC20Approve__factory=void 0;const K$=YO,J$=[{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];class IERC20Approve__factory{static createInterface(){return new K$.Interface(J$)}static connect(D,te){return new K$.Contract(D,J$,te)}}V$.IERC20Approve__factory=IERC20Approve__factory,IERC20Approve__factory.abi=J$;var X$={};Object.defineProperty(X$,"__esModule",{value:!0}),X$.TestERC1271Wallet__factory=void 0;const Q$=YO,Z$=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approveToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"hash",type:"bytes32"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"isValidSignature",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"bytes",name:"",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"pure",type:"function"},{inputs:[],name:"orderSigner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],Y$="0x608060405234801561000f575f80fd5b505f80546001600160a01b031916331790556104d48061002e5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c8063150b7a021461004e5780631626ba7e1461008b578063da3e33971461009e578063f299f8b3146100b3575b5f80fd5b61006d61005c36600461036f565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020015b60405180910390f35b61006d6100993660046103d9565b6100dd565b6100b16100ac366004610421565b610152565b005b5f546100c5906001600160a01b031681565b6040516001600160a01b039091168152602001610082565b5f8061011e8585858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506101c892505050565b5f549091506001600160a01b03908116908216036101465750630b135d3f60e11b905061014b565b505f90505b9392505050565b60405163095ea7b360e01b81526001600160a01b0383811660048301526024820183905284169063095ea7b3906044016020604051808303815f875af115801561019e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101c2919061045a565b50505050565b5f805f8084516041036101ee575050506020820151604083015160608401515f1a610267565b845160400361021b5750505060408201516020830151906001600160ff1b0381169060ff1c601b01610267565b60405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640160405180910390fd5b601b8160ff1610156102815761027e601b82610479565b90505b8060ff16601b1415801561029957508060ff16601c14155b156102a9575f9350505050610309565b604080515f81526020810180835288905260ff831691810191909152606081018490526080810183905260019060a0016020604051602081039080840390855afa1580156102f9573d5f803e3d5ffd5b5050506020604051035193505050505b92915050565b80356001600160a01b0381168114610325575f80fd5b919050565b5f8083601f84011261033a575f80fd5b50813567ffffffffffffffff811115610351575f80fd5b602083019150836020828501011115610368575f80fd5b9250929050565b5f805f805f60808688031215610383575f80fd5b61038c8661030f565b945061039a6020870161030f565b935060408601359250606086013567ffffffffffffffff8111156103bc575f80fd5b6103c88882890161032a565b969995985093965092949392505050565b5f805f604084860312156103eb575f80fd5b83359250602084013567ffffffffffffffff811115610408575f80fd5b6104148682870161032a565b9497909650939450505050565b5f805f60608486031215610433575f80fd5b61043c8461030f565b925061044a6020850161030f565b9150604084013590509250925092565b5f6020828403121561046a575f80fd5b8151801515811461014b575f80fd5b60ff818116838216019081111561030957634e487b7160e01b5f52601160045260245ffdfea26469706673582212200f000a5230cc36b934f80f6c61eb58ed52a293f12d76642f777291aa1cabb7f664736f6c63430008180033";class TestERC1271Wallet__factory extends Q$.ContractFactory{constructor(...D){D.length>1?super(...D):super(Z$,Y$,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new Q$.Interface(Z$)}static connect(D,te){return new Q$.Contract(D,Z$,te)}}X$.TestERC1271Wallet__factory=TestERC1271Wallet__factory,TestERC1271Wallet__factory.bytecode=Y$,TestERC1271Wallet__factory.abi=Z$,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.TestERC1271Wallet__factory=D.IERC20Approve__factory=void 0;var te=V$;Object.defineProperty(D,"IERC20Approve__factory",{enumerable:!0,get:function(){return te.IERC20Approve__factory}});var he=X$;Object.defineProperty(D,"TestERC1271Wallet__factory",{enumerable:!0,get:function(){return he.TestERC1271Wallet__factory}})}(W$);var tq={};Object.defineProperty(tq,"__esModule",{value:!0}),tq.TestERC1155__factory=void 0;const rq=YO,nq=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256[]",name:"ids",type:"uint256[]"},{indexed:!1,internalType:"uint256[]",name:"amounts",type:"uint256[]"}],name:"TransferBatch",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"TransferSingle",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"value",type:"string"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"URI",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"owners",type:"address[]"},{internalType:"uint256[]",name:"ids",type:"uint256[]"}],name:"balanceOfBatch",outputs:[{internalType:"uint256[]",name:"balances",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256[]",name:"ids",type:"uint256[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeBatchTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"uri",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"}],aq="0x608060405234801561000f575f80fd5b50610fe58061001d5f395ff3fe608060405234801561000f575f80fd5b506004361061008f575f3560e01c80632eb2c2d6116100635780632eb2c2d61461013c5780634e1273f414610151578063a22cb46514610171578063e985e9c514610184578063f242432a146101b1575f80fd5b8062fdd58e1461009357806301ffc9a7146100cd5780630e89341c146100f0578063156e29f614610129575b5f80fd5b6100ba6100a13660046109c6565b5f60208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b6100e06100db366004610a06565b6101c4565b60405190151581526020016100c4565b61011c6100fe366004610a28565b5060408051808201909152600381526275726960e81b602082015290565b6040516100c49190610a82565b6100e0610137366004610a94565b610215565b61014f61014a366004610b4a565b61023a565b005b61016461015f366004610bfd565b6104da565b6040516100c49190610c64565b61014f61017f366004610ca7565b61060a565b6100e0610192366004610ce0565b600160209081525f928352604080842090915290825290205460ff1681565b61014f6101bf366004610d11565b610675565b5f6301ffc9a760e01b6001600160e01b0319831614806101f45750636cdb3d1360e11b6001600160e01b03198316145b8061020f57506303a24d0760e21b6001600160e01b03198316145b92915050565b5f61023084848460405180602001604052805f815250610869565b5060019392505050565b8483146102805760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b60448201526064015b60405180910390fd5b336001600160a01b03891614806102b957506001600160a01b0388165f90815260016020908152604080832033845290915290205460ff165b6102f65760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610277565b5f805f5b878110156103ad5788888281811061031457610314610d84565b90506020020135925086868281811061032f5761032f610d84565b6001600160a01b038e165f908152602081815260408083208984528252822080549390910294909401359550859392509061036b908490610dac565b90915550506001600160a01b038a165f90815260208181526040808320868452909152812080548492906103a0908490610dbf565b90915550506001016102fa565b50886001600160a01b03168a6001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8b8b8b8b6040516104019493929190610e02565b60405180910390a46001600160a01b0389163b156104a55760405163bc197c8160e01b808252906001600160a01b038b169063bc197c81906104559033908f908e908e908e908e908e908e90600401610e5b565b6020604051808303815f875af1158015610471573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104959190610ebe565b6001600160e01b031916146104b2565b6001600160a01b03891615155b6104ce5760405162461bcd60e51b815260040161027790610ed9565b50505050505050505050565b606083821461051d5760405162461bcd60e51b815260206004820152600f60248201526e0988a9c8ea890be9a92a69a82a8869608b1b6044820152606401610277565b8367ffffffffffffffff81111561053657610536610f03565b60405190808252806020026020018201604052801561055f578160200160208202803683370190505b5090505f5b84811015610601575f8087878481811061058057610580610d84565b90506020020160208101906105959190610f17565b6001600160a01b03166001600160a01b031681526020019081526020015f205f8585848181106105c7576105c7610d84565b9050602002013581526020019081526020015f20548282815181106105ee576105ee610d84565b6020908102919091010152600101610564565b50949350505050565b335f8181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b336001600160a01b03871614806106ae57506001600160a01b0386165f90815260016020908152604080832033845290915290205460ff165b6106eb5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610277565b6001600160a01b0386165f908152602081815260408083208784529091528120805485929061071b908490610dac565b90915550506001600160a01b0385165f9081526020818152604080832087845290915281208054859290610750908490610dbf565b909155505060408051858152602081018590526001600160a01b03808816929089169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0385163b156108385760405163f23a6e6160e01b808252906001600160a01b0387169063f23a6e61906107e89033908b908a908a908a908a90600401610f30565b6020604051808303815f875af1158015610804573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108289190610ebe565b6001600160e01b03191614610845565b6001600160a01b03851615155b6108615760405162461bcd60e51b815260040161027790610ed9565b505050505050565b6001600160a01b0384165f9081526020818152604080832086845290915281208054849290610899908490610dbf565b909155505060408051848152602081018490526001600160a01b038616915f9133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46001600160a01b0384163b1561097c5760405163f23a6e6160e01b808252906001600160a01b0386169063f23a6e619061092c9033905f90899089908990600401610f76565b6020604051808303815f875af1158015610948573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096c9190610ebe565b6001600160e01b03191614610989565b6001600160a01b03841615155b6109a55760405162461bcd60e51b815260040161027790610ed9565b50505050565b80356001600160a01b03811681146109c1575f80fd5b919050565b5f80604083850312156109d7575f80fd5b6109e0836109ab565b946020939093013593505050565b6001600160e01b031981168114610a03575f80fd5b50565b5f60208284031215610a16575f80fd5b8135610a21816109ee565b9392505050565b5f60208284031215610a38575f80fd5b5035919050565b5f81518084525f5b81811015610a6357602081850181015186830182015201610a47565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610a216020830184610a3f565b5f805f60608486031215610aa6575f80fd5b610aaf846109ab565b95602085013595506040909401359392505050565b5f8083601f840112610ad4575f80fd5b50813567ffffffffffffffff811115610aeb575f80fd5b6020830191508360208260051b8501011115610b05575f80fd5b9250929050565b5f8083601f840112610b1c575f80fd5b50813567ffffffffffffffff811115610b33575f80fd5b602083019150836020828501011115610b05575f80fd5b5f805f805f805f8060a0898b031215610b61575f80fd5b610b6a896109ab565b9750610b7860208a016109ab565b9650604089013567ffffffffffffffff80821115610b94575f80fd5b610ba08c838d01610ac4565b909850965060608b0135915080821115610bb8575f80fd5b610bc48c838d01610ac4565b909650945060808b0135915080821115610bdc575f80fd5b50610be98b828c01610b0c565b999c989b5096995094979396929594505050565b5f805f8060408587031215610c10575f80fd5b843567ffffffffffffffff80821115610c27575f80fd5b610c3388838901610ac4565b90965094506020870135915080821115610c4b575f80fd5b50610c5887828801610ac4565b95989497509550505050565b602080825282518282018190525f9190848201906040850190845b81811015610c9b57835183529284019291840191600101610c7f565b50909695505050505050565b5f8060408385031215610cb8575f80fd5b610cc1836109ab565b915060208301358015158114610cd5575f80fd5b809150509250929050565b5f8060408385031215610cf1575f80fd5b610cfa836109ab565b9150610d08602084016109ab565b90509250929050565b5f805f805f8060a08789031215610d26575f80fd5b610d2f876109ab565b9550610d3d602088016109ab565b94506040870135935060608701359250608087013567ffffffffffffffff811115610d66575f80fd5b610d7289828a01610b0c565b979a9699509497509295939492505050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8181038181111561020f5761020f610d98565b8082018082111561020f5761020f610d98565b8183525f6001600160fb1b03831115610de9575f80fd5b8260051b80836020870137939093016020019392505050565b604081525f610e15604083018688610dd2565b8281036020840152610e28818587610dd2565b979650505050505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6001600160a01b0389811682528816602082015260a0604082018190525f90610e87908301888a610dd2565b8281036060840152610e9a818789610dd2565b90508281036080840152610eaf818587610e33565b9b9a5050505050505050505050565b5f60208284031215610ece575f80fd5b8151610a21816109ee565b60208082526010908201526f155394d0519157d49150d2541251539560821b604082015260600190565b634e487b7160e01b5f52604160045260245ffd5b5f60208284031215610f27575f80fd5b610a21826109ab565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190525f90610f6a9083018486610e33565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f90610e2890830184610a3f56fea2646970667358221220ec74e0d7d66f1c1290ad4b687119dcd8d1c065edb860f43b04d1fa3c05894fc864736f6c63430008180033";class TestERC1155__factory extends rq.ContractFactory{constructor(...D){D.length>1?super(...D):super(nq,aq,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new rq.Interface(nq)}static connect(D,te){return new rq.Contract(D,nq,te)}}tq.TestERC1155__factory=TestERC1155__factory,TestERC1155__factory.bytecode=aq,TestERC1155__factory.abi=nq;var iq={};Object.defineProperty(iq,"__esModule",{value:!0}),iq.TestERC20__factory=void 0;const sq=YO,oq=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"blocking",type:"bool"}],name:"blockTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"blocked",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"ok",type:"bool"}],stateMutability:"nonpayable",type:"function"}],cq="0x60e060405234801562000010575f80fd5b506040518060400160405280600681526020016505465737432360d41b81525060405180604001604052806005815260200164054535432360dc1b8152506012825f9081620000609190620001d3565b5060016200006f8382620001d3565b5060ff81166080524660a052620000856200009b565b60c05250506006805460ff191690555062000319565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051620000cd91906200029f565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200015e57607f821691505b6020821081036200017d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620001ce57805f5260205f20601f840160051c81016020851015620001aa5750805b601f840160051c820191505b81811015620001cb575f8155600101620001b6565b50505b505050565b81516001600160401b03811115620001ef57620001ef62000135565b620002078162000200845462000149565b8462000183565b602080601f8311600181146200023d575f8415620002255750858301515b5f19600386901b1c1916600185901b17855562000297565b5f85815260208120601f198616915b828110156200026d578886015182559484019460019091019084016200024c565b50858210156200028b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f808354620002ae8162000149565b60018281168015620002c95760018114620002df576200030d565b60ff19841687528215158302870194506200030d565b875f526020805f205f5b85811015620003045781548a820152908401908201620002e9565b50505082870194505b50929695505050505050565b60805160a05160c051610ba2620003445f395f6103d401525f61039f01525f6101710152610ba25ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c806340c10f1911610093578063a9059cbb11610063578063a9059cbb14610206578063d505accf14610219578063dd62ed3e1461022e578063e074d6a914610258575f80fd5b806340c10f19146101ad57806370a08231146101c05780637ecebe00146101df57806395d89b41146101fe575f80fd5b806323b872dd116100ce57806323b872dd1461014c578063303bdd2c1461015f578063313ce5671461016c5780633644e515146101a5575f80fd5b806306fdde03146100f4578063095ea7b31461011257806318160ddd14610135575b5f80fd5b6100fc610279565b60405161010991906108be565b60405180910390f35b610125610120366004610925565b610304565b6040519015158152602001610109565b61013e60025481565b604051908152602001610109565b61012561015a36600461094d565b610370565b6006546101259060ff1681565b6101937f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610109565b61013e61039c565b6101256101bb366004610925565b6103f6565b61013e6101ce366004610986565b60036020525f908152604090205481565b61013e6101ed366004610986565b60056020525f908152604090205481565b6100fc61040a565b610125610214366004610925565b610417565b61022c61022736600461099f565b61048d565b005b61013e61023c366004610a0c565b600460209081525f928352604080842090915290825290205481565b61022c610266366004610a3d565b6006805460ff1916911515919091179055565b5f805461028590610a5c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610a5c565b80156102fc5780601f106102d3576101008083540402835291602001916102fc565b820191905f5260205f20905b8154815290600101906020018083116102df57829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061035e9086815260200190565b60405180910390a35060015b92915050565b6006545f9060ff161561038457505f610395565b61038f8484846106d0565b50600190505b9392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000046146103d1576103cc6107bd565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b5f6104018383610855565b50600192915050565b6001805461028590610a5c565b335f90815260036020526040812080548391908390610437908490610aa8565b90915550506001600160a01b0383165f81815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061035e9086815260200190565b428410156104e25760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b5f60016104ed61039c565b6001600160a01b038a81165f8181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156105f5573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381161580159061062b5750876001600160a01b0316816001600160a01b0316145b6106685760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016104d9565b6001600160a01b039081165f9081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f198114610729576107058382610aa8565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b6001600160a01b0385165f9081526003602052604081208054859290610750908490610aa8565b90915550506001600160a01b038085165f81815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107aa9087815260200190565b60405180910390a3506001949350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516107ed9190610abb565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8060025f8282546108669190610b59565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5f602080835283518060208501525f5b818110156108ea578581018301518582016040015282016108ce565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610920575f80fd5b919050565b5f8060408385031215610936575f80fd5b61093f8361090a565b946020939093013593505050565b5f805f6060848603121561095f575f80fd5b6109688461090a565b92506109766020850161090a565b9150604084013590509250925092565b5f60208284031215610996575f80fd5b6103958261090a565b5f805f805f805f60e0888a0312156109b5575f80fd5b6109be8861090a565b96506109cc6020890161090a565b95506040880135945060608801359350608088013560ff811681146109ef575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215610a1d575f80fd5b610a268361090a565b9150610a346020840161090a565b90509250929050565b5f60208284031215610a4d575f80fd5b81358015158114610395575f80fd5b600181811c90821680610a7057607f821691505b602082108103610a8e57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561036a5761036a610a94565b5f8083545f60018260011c91506001831680610ad857607f831692505b60208084108203610af757634e487b7160e01b5f52602260045260245ffd5b818015610b0b5760018114610b2057610b4b565b60ff1986168952841515850289019650610b4b565b5f8a8152602090205f5b86811015610b435781548b820152908501908301610b2a565b505084890196505b509498975050505050505050565b8082018082111561036a5761036a610a9456fea2646970667358221220309e8fd45163f082d3f1c520ec74fc6129f86d68c526883865e74dfb67cba9bd64736f6c63430008180033";class TestERC20__factory extends sq.ContractFactory{constructor(...D){D.length>1?super(...D):super(oq,cq,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new sq.Interface(oq)}static connect(D,te){return new sq.Contract(D,oq,te)}}iq.TestERC20__factory=TestERC20__factory,TestERC20__factory.bytecode=cq,TestERC20__factory.abi=oq;var dq={};Object.defineProperty(dq,"__esModule",{value:!0}),dq.TestERC20USDC__factory=void 0;const uq=YO,fq=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"blocking",type:"bool"}],name:"blockTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"blocked",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"ok",type:"bool"}],stateMutability:"nonpayable",type:"function"}],lq="0x60e060405234801562000010575f80fd5b5060405180604001604052806008815260200167546573745553444360c01b815250604051806040016040528060078152602001665453545553444360c81b8152506006825f9081620000649190620001d7565b506001620000738382620001d7565b5060ff81166080524660a052620000896200009f565b60c05250506006805460ff19169055506200031d565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f604051620000d19190620002a3565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200016257607f821691505b6020821081036200018157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620001d257805f5260205f20601f840160051c81016020851015620001ae5750805b601f840160051c820191505b81811015620001cf575f8155600101620001ba565b50505b505050565b81516001600160401b03811115620001f357620001f362000139565b6200020b816200020484546200014d565b8462000187565b602080601f83116001811462000241575f8415620002295750858301515b5f19600386901b1c1916600185901b1785556200029b565b5f85815260208120601f198616915b82811015620002715788860151825594840194600190910190840162000250565b50858210156200028f57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f808354620002b2816200014d565b60018281168015620002cd5760018114620002e35762000311565b60ff198416875282151583028701945062000311565b875f526020805f205f5b85811015620003085781548a820152908401908201620002ed565b50505082870194505b50929695505050505050565b60805160a05160c051610ba2620003485f395f6103d401525f61039f01525f6101710152610ba25ff3fe608060405234801561000f575f80fd5b50600436106100f0575f3560e01c806340c10f1911610093578063a9059cbb11610063578063a9059cbb14610206578063d505accf14610219578063dd62ed3e1461022e578063e074d6a914610258575f80fd5b806340c10f19146101ad57806370a08231146101c05780637ecebe00146101df57806395d89b41146101fe575f80fd5b806323b872dd116100ce57806323b872dd1461014c578063303bdd2c1461015f578063313ce5671461016c5780633644e515146101a5575f80fd5b806306fdde03146100f4578063095ea7b31461011257806318160ddd14610135575b5f80fd5b6100fc610279565b60405161010991906108be565b60405180910390f35b610125610120366004610925565b610304565b6040519015158152602001610109565b61013e60025481565b604051908152602001610109565b61012561015a36600461094d565b610370565b6006546101259060ff1681565b6101937f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff9091168152602001610109565b61013e61039c565b6101256101bb366004610925565b6103f6565b61013e6101ce366004610986565b60036020525f908152604090205481565b61013e6101ed366004610986565b60056020525f908152604090205481565b6100fc61040a565b610125610214366004610925565b610417565b61022c61022736600461099f565b61048d565b005b61013e61023c366004610a0c565b600460209081525f928352604080842090915290825290205481565b61022c610266366004610a3d565b6006805460ff1916911515919091179055565b5f805461028590610a5c565b80601f01602080910402602001604051908101604052809291908181526020018280546102b190610a5c565b80156102fc5780601f106102d3576101008083540402835291602001916102fc565b820191905f5260205f20905b8154815290600101906020018083116102df57829003601f168201915b505050505081565b335f8181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061035e9086815260200190565b60405180910390a35060015b92915050565b6006545f9060ff161561038457505f610395565b61038f8484846106d0565b50600190505b9392505050565b5f7f000000000000000000000000000000000000000000000000000000000000000046146103d1576103cc6107bd565b905090565b507f000000000000000000000000000000000000000000000000000000000000000090565b5f6104018383610855565b50600192915050565b6001805461028590610a5c565b335f90815260036020526040812080548391908390610437908490610aa8565b90915550506001600160a01b0383165f81815260036020526040908190208054850190555133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061035e9086815260200190565b428410156104e25760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f4558504952454400000000000000000060448201526064015b60405180910390fd5b5f60016104ed61039c565b6001600160a01b038a81165f8181526005602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f1981840301815282825280516020918201205f84529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa1580156105f5573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b0381161580159061062b5750876001600160a01b0316816001600160a01b0316145b6106685760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b60448201526064016104d9565b6001600160a01b039081165f9081526004602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b6001600160a01b0383165f9081526004602090815260408083203384529091528120545f198114610729576107058382610aa8565b6001600160a01b0386165f9081526004602090815260408083203384529091529020555b6001600160a01b0385165f9081526003602052604081208054859290610750908490610aa8565b90915550506001600160a01b038085165f81815260036020526040908190208054870190555190918716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906107aa9087815260200190565b60405180910390a3506001949350505050565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f5f6040516107ed9190610abb565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b8060025f8282546108669190610b59565b90915550506001600160a01b0382165f818152600360209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b5f602080835283518060208501525f5b818110156108ea578581018301518582016040015282016108ce565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610920575f80fd5b919050565b5f8060408385031215610936575f80fd5b61093f8361090a565b946020939093013593505050565b5f805f6060848603121561095f575f80fd5b6109688461090a565b92506109766020850161090a565b9150604084013590509250925092565b5f60208284031215610996575f80fd5b6103958261090a565b5f805f805f805f60e0888a0312156109b5575f80fd5b6109be8861090a565b96506109cc6020890161090a565b95506040880135945060608801359350608088013560ff811681146109ef575f80fd5b9699959850939692959460a0840135945060c09093013592915050565b5f8060408385031215610a1d575f80fd5b610a268361090a565b9150610a346020840161090a565b90509250929050565b5f60208284031215610a4d575f80fd5b81358015158114610395575f80fd5b600181811c90821680610a7057607f821691505b602082108103610a8e57634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561036a5761036a610a94565b5f8083545f60018260011c91506001831680610ad857607f831692505b60208084108203610af757634e487b7160e01b5f52602260045260245ffd5b818015610b0b5760018114610b2057610b4b565b60ff1986168952841515850289019650610b4b565b5f8a8152602090205f5b86811015610b435781548b820152908501908301610b2a565b505084890196505b509498975050505050505050565b8082018082111561036a5761036a610a9456fea2646970667358221220c6ecf48e577715c99a01d2b6a3ce00783fb94e506d38827fdf46b888bdc0784064736f6c63430008180033";class TestERC20USDC__factory extends uq.ContractFactory{constructor(...D){D.length>1?super(...D):super(fq,lq,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new uq.Interface(fq)}static connect(D,te){return new uq.Contract(D,fq,te)}}dq.TestERC20USDC__factory=TestERC20USDC__factory,TestERC20USDC__factory.bytecode=lq,TestERC20USDC__factory.abi=fq;var pq={};Object.defineProperty(pq,"__esModule",{value:!0}),pq.TestERC721__factory=void 0;const hq=YO,yq=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"id",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"id",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"owner",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"}],mq="0x608060405234801562000010575f80fd5b50604051806040016040528060078152602001665465737437323160c81b8152506040518060400160405280600681526020016554535437323160d01b815250815f908162000060919062000116565b5060016200006f828262000116565b505050620001e2565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620000a157607f821691505b602082108103620000c057634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200011157805f5260205f20601f840160051c81016020851015620000ed5750805b601f840160051c820191505b818110156200010e575f8155600101620000f9565b50505b505050565b81516001600160401b0381111562000132576200013262000078565b6200014a816200014384546200008c565b84620000c6565b602080601f83116001811462000180575f8415620001685750858301515b5f19600386901b1c1916600185901b178555620001da565b5f85815260208120601f198616915b82811015620001b0578886015182559484019460019091019084016200018f565b5085821015620001ce57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b610d2080620001f05f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c80636352211e11610088578063a22cb46511610063578063a22cb465146101f0578063b88d4fde14610203578063c87b56dd14610216578063e985e9c514610247575f80fd5b80636352211e146101b457806370a08231146101c757806395d89b41146101e8575f80fd5b8063095ea7b3116100c3578063095ea7b31461016657806323b872dd1461017b57806340c10f191461018e57806342842e0e146101a1575f80fd5b806301ffc9a7146100e957806306fdde0314610111578063081812fc14610126575b5f80fd5b6100fc6100f7366004610a33565b610274565b60405190151581526020015b60405180910390f35b6101196102c5565b6040516101089190610a55565b61014e610134366004610aa1565b60046020525f90815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610108565b610179610174366004610ace565b610350565b005b610179610189366004610af6565b610434565b6100fc61019c366004610ace565b6105f6565b6101796101af366004610af6565b61060a565b61014e6101c2366004610aa1565b6106fe565b6101da6101d5366004610b2f565b610754565b604051908152602001610108565b6101196107b5565b6101796101fe366004610b48565b6107c2565b610179610211366004610b81565b61082d565b610119610224366004610aa1565b50604080518082019091526008815267746f6b656e55524960c01b602082015290565b6100fc610255366004610c14565b600560209081525f928352604080842090915290825290205460ff1681565b5f6301ffc9a760e01b6001600160e01b0319831614806102a457506380ac58cd60e01b6001600160e01b03198316145b806102bf5750635b5e139f60e01b6001600160e01b03198316145b92915050565b5f80546102d190610c45565b80601f01602080910402602001604051908101604052809291908181526020018280546102fd90610c45565b80156103485780601f1061031f57610100808354040283529160200191610348565b820191905f5260205f20905b81548152906001019060200180831161032b57829003601f168201915b505050505081565b5f818152600260205260409020546001600160a01b03163381148061039757506001600160a01b0381165f90815260056020908152604080832033845290915290205460ff165b6103d95760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b5f8281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b5f818152600260205260409020546001600160a01b038481169116146104895760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103d0565b6001600160a01b0382166104d35760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103d0565b336001600160a01b038416148061050c57506001600160a01b0383165f90815260056020908152604080832033845290915290205460ff165b8061052c57505f818152600460205260409020546001600160a01b031633145b6105695760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016103d0565b6001600160a01b038084165f81815260036020908152604080832080545f19019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b5f6106018383610912565b50600192915050565b610615838383610434565b6001600160a01b0382163b15806106ba5750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401525f608484015290919084169063150b7a029060a4016020604051808303815f875af115801561068a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ae9190610c7d565b6001600160e01b031916145b6106f95760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103d0565b505050565b5f818152600260205260409020546001600160a01b03168061074f5760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103d0565b919050565b5f6001600160a01b03821661079a5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103d0565b506001600160a01b03165f9081526003602052604090205490565b600180546102d190610c45565b335f8181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610838858585610434565b6001600160a01b0384163b15806108cc5750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a02906108809033908a90899089908990600401610c98565b6020604051808303815f875af115801561089c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108c09190610c7d565b6001600160e01b031916145b61090b5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103d0565b5050505050565b6001600160a01b03821661095c5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103d0565b5f818152600260205260409020546001600160a01b0316156109b15760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016103d0565b6001600160a01b0382165f81815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b031981168114610a30575f80fd5b50565b5f60208284031215610a43575f80fd5b8135610a4e81610a1b565b9392505050565b5f602080835283518060208501525f5b81811015610a8157858101830151858201604001528201610a65565b505f604082860101526040601f19601f8301168501019250505092915050565b5f60208284031215610ab1575f80fd5b5035919050565b80356001600160a01b038116811461074f575f80fd5b5f8060408385031215610adf575f80fd5b610ae883610ab8565b946020939093013593505050565b5f805f60608486031215610b08575f80fd5b610b1184610ab8565b9250610b1f60208501610ab8565b9150604084013590509250925092565b5f60208284031215610b3f575f80fd5b610a4e82610ab8565b5f8060408385031215610b59575f80fd5b610b6283610ab8565b915060208301358015158114610b76575f80fd5b809150509250929050565b5f805f805f60808688031215610b95575f80fd5b610b9e86610ab8565b9450610bac60208701610ab8565b935060408601359250606086013567ffffffffffffffff80821115610bcf575f80fd5b818801915088601f830112610be2575f80fd5b813581811115610bf0575f80fd5b896020828501011115610c01575f80fd5b9699959850939650602001949392505050565b5f8060408385031215610c25575f80fd5b610c2e83610ab8565b9150610c3c60208401610ab8565b90509250929050565b600181811c90821680610c5957607f821691505b602082108103610c7757634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208284031215610c8d575f80fd5b8151610a4e81610a1b565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290525f828460a08401375f60a0848401015260a0601f19601f8501168301019050969550505050505056fea26469706673582212205a79bcfc82262828b2b16ac33b24c34a52b9fde11fb66fd482dcb03e54d0043364736f6c63430008180033";class TestERC721__factory extends hq.ContractFactory{constructor(...D){D.length>1?super(...D):super(yq,mq,D[0])}getDeployTransaction(D){return super.getDeployTransaction(D||{})}deploy(D){return super.deploy(D||{})}connect(D){return super.connect(D)}static createInterface(){return new hq.Interface(yq)}static connect(D,te){return new hq.Contract(D,yq,te)}}pq.TestERC721__factory=TestERC721__factory,TestERC721__factory.bytecode=mq,TestERC721__factory.abi=yq,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.TestERC721__factory=D.TestERC20USDC__factory=D.TestERC20__factory=D.TestERC1155__factory=D.testErc1271WalletSol=void 0,D.testErc1271WalletSol=W$;var te=tq;Object.defineProperty(D,"TestERC1155__factory",{enumerable:!0,get:function(){return te.TestERC1155__factory}});var he=iq;Object.defineProperty(D,"TestERC20__factory",{enumerable:!0,get:function(){return he.TestERC20__factory}});var ye=dq;Object.defineProperty(D,"TestERC20USDC__factory",{enumerable:!0,get:function(){return ye.TestERC20USDC__factory}});var be=pq;Object.defineProperty(D,"TestERC721__factory",{enumerable:!0,get:function(){return be.TestERC721__factory}})}(z$),Object.defineProperty(F$,"__esModule",{value:!0}),F$.test=F$.domainRegistrySol=void 0,F$.domainRegistrySol=D$,F$.test=z$,Object.defineProperty(B$,"__esModule",{value:!0}),B$.contracts=void 0,B$.contracts=F$,Object.defineProperty(DD,"__esModule",{value:!0}),DD.src=DD.seaportTypes=DD.seaportCore=DD.seaport=DD.rariCapital=void 0,DD.rariCapital=LD,DD.seaport=sL,DD.seaportCore=AL,DD.seaportTypes=YU,DD.src=B$,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.TestERC721__factory=D.TestERC20USDC__factory=D.TestERC20__factory=D.TestERC1271Wallet__factory=D.IERC20Approve__factory=D.TestERC1155__factory=D.DomainRegistryInterface__factory=D.DomainRegistry__factory=D.Seaport__factory=D.LocalConduitController__factory=D.LocalConduit__factory=D.ZoneInteractionErrors__factory=D.TokenTransferrerErrors__factory=D.SignatureVerificationErrors__factory=D.ReentrancyErrors__factory=D.FulfillmentApplicationErrors__factory=D.CriteriaResolutionErrors__factory=D.ConsiderationInterface__factory=D.ConsiderationEventsAndErrors__factory=D.ConduitInterface__factory=D.ConduitControllerInterface__factory=D.AmountDerivationErrors__factory=D.ZoneInteraction__factory=D.Verifiers__factory=D.TokenTransferrer__factory=D.SignatureVerification__factory=D.ReentrancyGuard__factory=D.OrderValidator__factory=D.OrderFulfiller__factory=D.OrderCombiner__factory=D.GettersAndDerivers__factory=D.FulfillmentApplier__factory=D.Executor__factory=D.CriteriaResolution__factory=D.CounterManager__factory=D.ConsiderationBase__factory=D.Consideration__factory=D.BasicOrderFulfiller__factory=D.Assertions__factory=D.AmountDeriver__factory=D.ConduitController__factory=D.Conduit__factory=D.ERC721TokenReceiver__factory=D.ERC721__factory=D.ERC20__factory=D.ERC1155TokenReceiver__factory=D.ERC1155__factory=D.factories=void 0,D.factories=DD;var te=jD;Object.defineProperty(D,"ERC1155__factory",{enumerable:!0,get:function(){return te.ERC1155__factory}});var he=WD;Object.defineProperty(D,"ERC1155TokenReceiver__factory",{enumerable:!0,get:function(){return he.ERC1155TokenReceiver__factory}});var ye=rL;Object.defineProperty(D,"ERC20__factory",{enumerable:!0,get:function(){return ye.ERC20__factory}});var be=XD;Object.defineProperty(D,"ERC721__factory",{enumerable:!0,get:function(){return be.ERC721__factory}});var ve=YD;Object.defineProperty(D,"ERC721TokenReceiver__factory",{enumerable:!0,get:function(){return ve.ERC721TokenReceiver__factory}});var we=SL;Object.defineProperty(D,"Conduit__factory",{enumerable:!0,get:function(){return we.Conduit__factory}});var _e=kL;Object.defineProperty(D,"ConduitController__factory",{enumerable:!0,get:function(){return _e.ConduitController__factory}});var Pe=BL;Object.defineProperty(D,"AmountDeriver__factory",{enumerable:!0,get:function(){return Pe.AmountDeriver__factory}});var Ie=UL;Object.defineProperty(D,"Assertions__factory",{enumerable:!0,get:function(){return Ie.Assertions__factory}});var Re=jL;Object.defineProperty(D,"BasicOrderFulfiller__factory",{enumerable:!0,get:function(){return Re.BasicOrderFulfiller__factory}});var ke=VL;Object.defineProperty(D,"Consideration__factory",{enumerable:!0,get:function(){return ke.Consideration__factory}});var Oe=QL;Object.defineProperty(D,"ConsiderationBase__factory",{enumerable:!0,get:function(){return Oe.ConsiderationBase__factory}});var xe=tU;Object.defineProperty(D,"CounterManager__factory",{enumerable:!0,get:function(){return xe.CounterManager__factory}});var Be=iU;Object.defineProperty(D,"CriteriaResolution__factory",{enumerable:!0,get:function(){return Be.CriteriaResolution__factory}});var Fe=dU;Object.defineProperty(D,"Executor__factory",{enumerable:!0,get:function(){return Fe.Executor__factory}});var De=pU;Object.defineProperty(D,"FulfillmentApplier__factory",{enumerable:!0,get:function(){return De.FulfillmentApplier__factory}});var Le=bU;Object.defineProperty(D,"GettersAndDerivers__factory",{enumerable:!0,get:function(){return Le.GettersAndDerivers__factory}});var Ue=_U;Object.defineProperty(D,"OrderCombiner__factory",{enumerable:!0,get:function(){return Ue.OrderCombiner__factory}});var qe=PU;Object.defineProperty(D,"OrderFulfiller__factory",{enumerable:!0,get:function(){return qe.OrderFulfiller__factory}});var je=RU;Object.defineProperty(D,"OrderValidator__factory",{enumerable:!0,get:function(){return je.OrderValidator__factory}});var Je=NU;Object.defineProperty(D,"ReentrancyGuard__factory",{enumerable:!0,get:function(){return Je.ReentrancyGuard__factory}});var et=DU;Object.defineProperty(D,"SignatureVerification__factory",{enumerable:!0,get:function(){return et.SignatureVerification__factory}});var tt=qU;Object.defineProperty(D,"TokenTransferrer__factory",{enumerable:!0,get:function(){return tt.TokenTransferrer__factory}});var rt=zU;Object.defineProperty(D,"Verifiers__factory",{enumerable:!0,get:function(){return rt.Verifiers__factory}});var nt=JU;Object.defineProperty(D,"ZoneInteraction__factory",{enumerable:!0,get:function(){return nt.ZoneInteraction__factory}});var at=r$;Object.defineProperty(D,"AmountDerivationErrors__factory",{enumerable:!0,get:function(){return at.AmountDerivationErrors__factory}});var ut=i$;Object.defineProperty(D,"ConduitControllerInterface__factory",{enumerable:!0,get:function(){return ut.ConduitControllerInterface__factory}});var ht=c$;Object.defineProperty(D,"ConduitInterface__factory",{enumerable:!0,get:function(){return ht.ConduitInterface__factory}});var yt=f$;Object.defineProperty(D,"ConsiderationEventsAndErrors__factory",{enumerable:!0,get:function(){return yt.ConsiderationEventsAndErrors__factory}});var mt=h$;Object.defineProperty(D,"ConsiderationInterface__factory",{enumerable:!0,get:function(){return mt.ConsiderationInterface__factory}});var bt=b$;Object.defineProperty(D,"CriteriaResolutionErrors__factory",{enumerable:!0,get:function(){return bt.CriteriaResolutionErrors__factory}});var wt=w$;Object.defineProperty(D,"FulfillmentApplicationErrors__factory",{enumerable:!0,get:function(){return wt.FulfillmentApplicationErrors__factory}});var _t=A$;Object.defineProperty(D,"ReentrancyErrors__factory",{enumerable:!0,get:function(){return _t.ReentrancyErrors__factory}});var Tt=S$;Object.defineProperty(D,"SignatureVerificationErrors__factory",{enumerable:!0,get:function(){return Tt.SignatureVerificationErrors__factory}});var At=R$;Object.defineProperty(D,"TokenTransferrerErrors__factory",{enumerable:!0,get:function(){return At.TokenTransferrerErrors__factory}});var Et=x$;Object.defineProperty(D,"ZoneInteractionErrors__factory",{enumerable:!0,get:function(){return Et.ZoneInteractionErrors__factory}});var Pt=uL;Object.defineProperty(D,"LocalConduit__factory",{enumerable:!0,get:function(){return Pt.LocalConduit__factory}});var St=yL;Object.defineProperty(D,"LocalConduitController__factory",{enumerable:!0,get:function(){return St.LocalConduitController__factory}});var Ct=vL;Object.defineProperty(D,"Seaport__factory",{enumerable:!0,get:function(){return Ct.Seaport__factory}});var kt=L$;Object.defineProperty(D,"DomainRegistry__factory",{enumerable:!0,get:function(){return kt.DomainRegistry__factory}});var Ot=G$;Object.defineProperty(D,"DomainRegistryInterface__factory",{enumerable:!0,get:function(){return Ot.DomainRegistryInterface__factory}});var xt=tq;Object.defineProperty(D,"TestERC1155__factory",{enumerable:!0,get:function(){return xt.TestERC1155__factory}});var Nt=V$;Object.defineProperty(D,"IERC20Approve__factory",{enumerable:!0,get:function(){return Nt.IERC20Approve__factory}});var Bt=X$;Object.defineProperty(D,"TestERC1271Wallet__factory",{enumerable:!0,get:function(){return Bt.TestERC1271Wallet__factory}});var Ft=iq;Object.defineProperty(D,"TestERC20__factory",{enumerable:!0,get:function(){return Ft.TestERC20__factory}});var Lt=dq;Object.defineProperty(D,"TestERC20USDC__factory",{enumerable:!0,get:function(){return Lt.TestERC20USDC__factory}});var Ut=pq;Object.defineProperty(D,"TestERC721__factory",{enumerable:!0,get:function(){return Ut.TestERC721__factory}})}(FD);var bq,gq={},vq={};function requireCriteria(){if(bq)return vq;bq=1,Object.defineProperty(vq,"__esModule",{value:!0}),vq.getItemToCriteriaMap=vq.generateCriteriaResolvers=void 0;const D=MD,te=requireItem();vq.generateCriteriaResolvers=({orders:he,offerCriterias:ye=[[]],considerationCriterias:be=[[]]})=>{const ve=he.flatMap(((he,ye)=>he.parameters.offer.map(((te,he)=>({orderIndex:ye,item:te,index:he,side:D.Side.OFFER}))).filter((({item:D})=>(0,te.isCriteriaItem)(D.itemType))))),we=he.flatMap(((he,ye)=>he.parameters.consideration.map(((te,he)=>({orderIndex:ye,item:te,index:he,side:D.Side.CONSIDERATION}))).filter((({item:D})=>(0,te.isCriteriaItem)(D.itemType))))),mapCriteriaItemsToResolver=(D,te)=>D.map((({orderIndex:D,item:he,index:ye,side:be})=>{const ve=he.identifierOrCriteria||"0",we=te[D][ye];return{orderIndex:D,index:ye,side:be,identifier:we.identifier,criteriaProof:"0"===ve?[]:we.proof}}));return[...mapCriteriaItemsToResolver(ve,ye),...mapCriteriaItemsToResolver(we,be)]};return vq.getItemToCriteriaMap=(D,he)=>{const ye=[...he];return D.reduce(((D,he)=>((0,te.isCriteriaItem)(he.itemType)&&D.set(he,ye.shift()),D)),new Map)},vq}var wq,_q={};function requireItem(){return wq||(wq=1,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.getMaximumSizeForOrder=D.getSummedTokenAndIdentifierAmounts=D.getPresentItemAmount=D.isCriteriaItem=D.isErc1155Item=D.isErc721Item=D.isErc20Item=D.isNativeCurrencyItem=D.isCurrencyItem=void 0;const te=MD,he=requireCriteria(),ye=_q;D.isCurrencyItem=({itemType:D})=>[te.ItemType.NATIVE,te.ItemType.ERC20].includes(D);D.isNativeCurrencyItem=({itemType:D})=>D===te.ItemType.NATIVE;D.isErc20Item=D=>D===te.ItemType.ERC20;D.isErc721Item=D=>[te.ItemType.ERC721,te.ItemType.ERC721_WITH_CRITERIA].includes(D);D.isErc1155Item=D=>[te.ItemType.ERC1155,te.ItemType.ERC1155_WITH_CRITERIA].includes(D);D.isCriteriaItem=D=>[te.ItemType.ERC721_WITH_CRITERIA,te.ItemType.ERC1155_WITH_CRITERIA].includes(D);D.getPresentItemAmount=({startAmount:D,endAmount:te,timeBasedItemParams:he})=>{const ye=BigInt(D),be=BigInt(te);if(!he)return ye>be?ye:be;const{isConsiderationItem:ve,currentBlockTimestamp:we,ascendingAmountTimestampBuffer:_e,startTime:Pe,endTime:Ie}=he,Re=BigInt(Pe),ke=BigInt(Ie),Oe=ke-Re,xe=BigInt(be>ye?we+_e:we);if(xe<Re)return ye;const Be=(xe>ke?ke:xe)-Re;return(ye*(Oe-Be)+be*Be+(ve?Oe-1n:0n))/Oe};D.getSummedTokenAndIdentifierAmounts=({items:te,criterias:ye,timeBasedItemParams:be})=>{const ve=(0,he.getItemToCriteriaMap)(te,ye),we=te.reduce(((te,he)=>{const ye=ve.get(he)?.identifier??he.identifierOrCriteria;return{...te,[he.token]:{...te[he.token],[ye]:(te[he.token]?.[ye]??0n)+(0,D.getPresentItemAmount)({startAmount:he.startAmount,endAmount:he.endAmount,timeBasedItemParams:be})}}}),{});return we};D.getMaximumSizeForOrder=({parameters:{offer:D,consideration:te}})=>{const he=[...D,...te].flatMap((({startAmount:D,endAmount:te})=>[D,te]));return(0,ye.findGcd)(he)}}(gq)),gq}!function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.findGcd=D.gcd=void 0;D.gcd=(te,he)=>{const ye=BigInt(te),be=BigInt(he);return 0n===ye?be:(0,D.gcd)(be%ye,ye)};D.findGcd=te=>{let he=BigInt(te[0]);for(let ye=1;ye<te.length;ye++)if(he=(0,D.gcd)(te[ye],he),1n===he)return he;return he}}(_q);var Tq={};!function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.getTagFromDomain=D.getTransactionMethods=D.executeAllActions=void 0;const te=YO;D.executeAllActions=async D=>{for(let te=0;te<D.length-1;te++){const he=D[te];if("approval"===he.type){const D=await he.transactionMethods.transact();await D.wait()}}const te=D[D.length-1];switch(te.type){case"create":return te.createOrder();case"createBulk":return te.createBulkOrders();default:return te.transactionMethods.transact()}};D.getTransactionMethods=(te,he,ye,be,ve)=>{let we;if(be?.length>0){const D=be[be.length-1];(D=>{const te=["gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","type","accessList","customData","ccipReadEnabled","value","blockTag","overrides"];return void 0===D||Object.keys(D).length>0&&Object.keys(D).every((D=>te.includes(D)))})(D)&&(we=D,be.pop())}const contractMethod=async D=>he.connect(await D)[ye],buildTransaction=async he=>{const ye={...we,...he},_e=await contractMethod(te),Pe=await _e.populateTransaction(...be,ye);if(ve){const te=(0,D.getTagFromDomain)(ve);Pe.data=Pe.data+te}return Pe};return{staticCall:async D=>{const he={...we,...D},ye=[...be,he];return(await contractMethod(te)).staticCall(...ye)},estimateGas:async D=>{const he={...we,...D},ye=[...be,he];return(await contractMethod(te)).estimateGas(...ye)},transact:async D=>{const he={...we,...D},ye=await buildTransaction(he);return(await te).sendTransaction(ye)},buildTransaction:buildTransaction}};D.getTagFromDomain=D=>(0,te.keccak256)((0,te.toUtf8Bytes)(D)).slice(2,10)}(Tq),Object.defineProperty(BD,"__esModule",{value:!0}),BD.getApprovalActions=BD.approvedItemAmount=void 0;const Aq=MD,Eq=FD,Pq=requireItem(),Sq=Tq;BD.approvedItemAmount=async(D,te,he,ye)=>{if((0,Pq.isErc721Item)(te.itemType)||(0,Pq.isErc1155Item)(te.itemType)){const be=Eq.TestERC721__factory.connect(te.token,ye);return await be.isApprovedForAll(D,he)?Aq.MAX_INT:0n}if(te.itemType===Aq.ItemType.ERC20){return Eq.TestERC20__factory.connect(te.token,ye).allowance(D,he)}return Aq.MAX_INT},BD.getApprovalActions=function getApprovalActions(D,te,he){return D.filter(((te,he)=>he===D.length-1||D[he+1].token!==te.token)).map((({token:D,operator:ye,itemType:be,identifierOrCriteria:ve,requiredApprovedAmount:we})=>{const _e=(0,Pq.isErc1155Item)(be);if((0,Pq.isErc721Item)(be)||_e){const we=Eq.TestERC721__factory.connect(D,he);return{type:"approval",token:D,identifierOrCriteria:ve,itemType:be,operator:ye,transactionMethods:te&&!_e?(0,Sq.getTransactionMethods)(he,we,"approve",[ye,ve]):(0,Sq.getTransactionMethods)(he,we,"setApprovalForAll",[ye,!0])}}{const _e=Eq.TestERC20__factory.connect(D,he);return{type:"approval",token:D,identifierOrCriteria:ve,itemType:be,transactionMethods:(0,Sq.getTransactionMethods)(he,_e,"approve",[ye,te?we:Aq.MAX_INT]),operator:ye}}}))};var Cq={},Iq={};Object.defineProperty(Iq,"__esModule",{value:!0}),Iq.balanceOf=void 0;const Rq=MD,kq=FD,Oq=requireItem();Iq.balanceOf=async(D,te,he,ye)=>{if((0,Oq.isErc721Item)(te.itemType)){const be=kq.TestERC721__factory.connect(te.token,he);return te.itemType===Rq.ItemType.ERC721_WITH_CRITERIA?ye?be.ownerOf(ye.identifier).then((te=>BigInt(te.toLowerCase()===D.toLowerCase()))):be.balanceOf(D):be.ownerOf(te.identifierOrCriteria).then((te=>BigInt(te.toLowerCase()===D.toLowerCase())))}if((0,Oq.isErc1155Item)(te.itemType)){const be=kq.TestERC1155__factory.connect(te.token,he);if(te.itemType===Rq.ItemType.ERC1155_WITH_CRITERIA){if(!ye){const D=BigInt(te.startAmount),he=BigInt(te.endAmount);return D>he?D:he}return be.balanceOf(D,ye.identifier)}return be.balanceOf(D,te.identifierOrCriteria)}if((0,Oq.isErc20Item)(te.itemType)){return kq.TestERC20__factory.connect(te.token,he).balanceOf(D)}return he.getBalance(D)},function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.validateStandardFulfillBalancesAndApprovals=D.validateBasicFulfillBalancesAndApprovals=D.validateOfferBalancesAndApprovals=D.getInsufficientBalanceAndApprovalAmounts=D.getBalancesAndApprovals=void 0;const te=MD,he=BD,ye=Iq,be=requireCriteria(),ve=requireItem(),findBalanceAndApproval=(D,te,he)=>{const ye=D.find((({token:D,identifierOrCriteria:ye})=>te.toLowerCase()===D.toLowerCase()&&ye.toLowerCase()===he.toLowerCase()));if(!ye)throw new Error("Balances and approvals didn't contain all tokens and identifiers");return ye};D.getBalancesAndApprovals=async({owner:D,items:we,criterias:_e,operator:Pe,provider:Ie})=>{const Re=(0,be.getItemToCriteriaMap)(we,_e);return Promise.all(we.map((async be=>{let we=0n;return we=(0,ve.isErc721Item)(be.itemType)||(0,ve.isErc1155Item)(be.itemType)||(0,ve.isErc20Item)(be.itemType)?await(0,he.approvedItemAmount)(D,be,Pe,Ie):te.MAX_INT,{token:be.token,identifierOrCriteria:Re.get(be)?.identifier??be.identifierOrCriteria,balance:await(0,ye.balanceOf)(D,be,Ie,Re.get(be)),approvedAmount:we,itemType:be.itemType}})))};D.getInsufficientBalanceAndApprovalAmounts=({balancesAndApprovals:D,tokenAndIdentifierAmounts:te,operator:he})=>{const ye=[...Object.entries(te).map((([D,te])=>Object.entries(te).map((([te,he])=>[D,te,he]))))].flat(),filterBalancesOrApprovals=te=>ye.filter((([he,ye,be])=>findBalanceAndApproval(D,he,ye)[te]<be)).map((([he,ye,be])=>{const ve=findBalanceAndApproval(D,he,ye);return{token:he,identifierOrCriteria:ye,requiredAmount:be,amountHave:ve[te],itemType:ve.itemType}})),[be,ve]=[filterBalancesOrApprovals("balance"),filterBalancesOrApprovals("approvedAmount").map((D=>({token:D.token,identifierOrCriteria:D.identifierOrCriteria,approvedAmount:D.amountHave,requiredApprovedAmount:D.requiredAmount,itemType:D.itemType,operator:he})))];return{insufficientBalances:be,insufficientApprovals:ve}};D.validateOfferBalancesAndApprovals=({offer:te,criterias:he,balancesAndApprovals:ye,timeBasedItemParams:be,throwOnInsufficientBalances:we=!0,throwOnInsufficientApprovals:_e,operator:Pe})=>{const{insufficientBalances:Ie,insufficientApprovals:Re}=(0,D.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:ye,tokenAndIdentifierAmounts:(0,ve.getSummedTokenAndIdentifierAmounts)({items:te,criterias:he,timeBasedItemParams:be?{...be,isConsiderationItem:!1}:void 0}),operator:Pe});if(we&&Ie.length>0)throw new Error("The offerer does not have the amount needed to create or fulfill.");if(_e&&Re.length>0)throw new Error("The offerer does not have the sufficient approvals.");return Re};D.validateBasicFulfillBalancesAndApprovals=({offer:te,consideration:he,offererBalancesAndApprovals:ye,fulfillerBalancesAndApprovals:be,timeBasedItemParams:we,offererOperator:_e,fulfillerOperator:Pe})=>{(0,D.validateOfferBalancesAndApprovals)({offer:te,criterias:[],balancesAndApprovals:ye,timeBasedItemParams:we,throwOnInsufficientApprovals:!0,operator:_e});const Ie=he.filter((D=>D.itemType!==te[0].itemType)),{insufficientBalances:Re,insufficientApprovals:ke}=(0,D.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:be,tokenAndIdentifierAmounts:(0,ve.getSummedTokenAndIdentifierAmounts)({items:Ie,criterias:[],timeBasedItemParams:{...we,isConsiderationItem:!0}}),operator:Pe});if(Re.length>0)throw new Error("The fulfiller does not have the balances needed to fulfill.");return ke};D.validateStandardFulfillBalancesAndApprovals=({offer:te,consideration:he,offerCriteria:ye,considerationCriteria:be,offererBalancesAndApprovals:we,fulfillerBalancesAndApprovals:_e,timeBasedItemParams:Pe,offererOperator:Ie,fulfillerOperator:Re})=>{(0,D.validateOfferBalancesAndApprovals)({offer:te,criterias:ye,balancesAndApprovals:we,timeBasedItemParams:Pe,throwOnInsufficientApprovals:!0,operator:Ie});const ke=addToExistingBalances({items:te,criterias:ye,balancesAndApprovals:_e,timeBasedItemParams:Pe}),{insufficientBalances:Oe,insufficientApprovals:xe}=(0,D.getInsufficientBalanceAndApprovalAmounts)({balancesAndApprovals:ke,tokenAndIdentifierAmounts:(0,ve.getSummedTokenAndIdentifierAmounts)({items:he,criterias:be,timeBasedItemParams:{...Pe,isConsiderationItem:!0}}),operator:Re});if(Oe.length>0)throw new Error("The fulfiller does not have the balances needed to fulfill.");return xe};const addToExistingBalances=({items:D,criterias:te,timeBasedItemParams:he,balancesAndApprovals:ye})=>{const be=(0,ve.getSummedTokenAndIdentifierAmounts)({items:D,criterias:te,timeBasedItemParams:{...he,isConsiderationItem:!1}}),we=ye.map((D=>({...D})));return Object.entries(be).forEach((([D,te])=>Object.entries(te).forEach((([te,he])=>{const ye=findBalanceAndApproval(we,D,te),be=we.indexOf(ye);we[be].balance=we[be].balance+he})))),we}}(Cq);var xq={},Nq={},Mq={};Object.defineProperty(Mq,"__esModule",{value:!0}),Mq.DefaultGetter=void 0;const Bq=YO,Fq={integer:0,address:Bq.ethers.zeroPadValue("0x",20),bool:!1,bytes:"0x",string:""},isNullish$1=D=>void 0!==D&&(null!=D&&(["string","number"].includes(typeof D)&&0n===BigInt(D)||Array.isArray(D)&&D.every(isNullish$1)||"object"==typeof D&&Object.values(D).every(isNullish$1)||"boolean"==typeof D&&!1===D));Mq.DefaultGetter=class DefaultGetter{constructor(D){this.types=D,this.defaultValues={};for(const te in D){const D=this.getDefaultValue(te);if(this.defaultValues[te]=D,!isNullish$1(D))throw new Error(`Got non-empty value for type ${te} in default generator: ${D}`)}}static from(D,te){const{defaultValues:he}=new DefaultGetter(D);return te?he[te]:he}getDefaultValue(D){if(this.defaultValues[D])return this.defaultValues[D];const te=function getDefaultForBaseType$1(D){const[,te]=D.match(/^bytes(\d+)$/)??[];return te?(0,Bq.zeroPadValue)("0x",parseInt(te)):(D.match(/^(u?)int(\d*)$/)&&(D="integer"),Fq[D])}(D);if(void 0!==te)return te;const he=D.match(/^(.*)(\x5b(\d*)\x5d)$/);if(he){const D=he[1],te=parseInt(he[3]);if(te>0){const he=this.getDefaultValue(D);return Array(te).fill(he)}return[]}const ye=this.types[D];if(ye)return ye.reduce(((D,{name:te,type:he})=>({...D,[te]:this.getDefaultValue(he)})),{});throw new Error(`unknown type: ${D}`)}};var Dq={};!function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.getNextLayer=D.getRoot=D.fillArray=D.hashConcat=D.bufferKeccak=D.hexToBuffer=D.bufferToHex=D.chunk=D.makeArray=void 0;const te=YO;D.makeArray=(D,te)=>Array(D).fill(0).map(((D,he)=>te(he)));D.chunk=(te,he)=>(0,D.makeArray)(Math.ceil(te.length/he),(D=>te.slice(D*he,(D+1)*he)));D.bufferToHex=D=>(0,te.toBeHex)(D.toString("hex"));D.hexToBuffer=D=>Buffer.from(D.slice(2),"hex");D.bufferKeccak=he=>(0,D.hexToBuffer)((0,te.keccak256)(he));D.hashConcat=he=>(0,D.bufferKeccak)((0,te.concat)(he));D.fillArray=(D,te,he)=>(te>D.length&&D.push(...Array(te-D.length).fill(he)),D);D.getRoot=(te,he=!0)=>{if(0===te.length)throw new Error("empty tree");const ye=te.map((te=>{const ye=Buffer.isBuffer(te)?te:(0,D.hexToBuffer)(te);return he?(0,D.bufferKeccak)(ye):ye})),be=[ye];for(;be[be.length-1].length>1;)be.push((0,D.getNextLayer)(be[be.length-1]));return be[be.length-1][0]};D.getNextLayer=te=>(0,D.chunk)(te,2).map(D.hashConcat)}(Dq),Object.defineProperty(Nq,"__esModule",{value:!0}),Nq.Eip712MerkleTree=void 0;const Lq=YO,Uq=pk,$q=Mq,qq=Dq;Nq.Eip712MerkleTree=class Eip712MerkleTree{get completedSize(){return Math.pow(2,this.depth)}getCompleteElements(){const D=this.elements;return(0,qq.fillArray)([...D],this.completedSize,this.defaultNode)}getCompleteLeaves(){const D=this.elements.map(this.leafHasher);return(0,qq.fillArray)([...D],this.completedSize,this.defaultLeaf)}get root(){return this.tree.getHexRoot()}getProof(D){const te=this.getCompleteLeaves()[D];return{leaf:te,proof:this.tree.getHexProof(te,D),root:this.tree.getHexRoot()}}getEncodedProofAndSignature(D,te){const{proof:he}=this.getProof(D);return((D,te,he=`0x${"ff".repeat(64)}`)=>(0,Lq.concat)([he,`0x${D.toString(16).padStart(6,"0")}`,Lq.AbiCoder.defaultAbiCoder().encode([`uint256[${te.length}]`],[te])]))(D,he,te)}getDataToSign(){let D=this.getCompleteElements();for(;D.length>2;)D=(0,qq.chunk)(D,2);return D}add(D){this.elements.push(D)}getBulkOrderHash(){const D=this.encoder.hashStruct("BulkOrder",{tree:this.getDataToSign()}),te=this.getCompleteLeaves().map(qq.hexToBuffer),he=(0,qq.bufferToHex)((0,qq.getRoot)(te,!1)),ye=(0,Lq.keccak256)((0,Lq.toUtf8Bytes)(this.encoder.types.BulkOrder[0].type));if((0,Lq.keccak256)((0,Lq.concat)([ye,he]))!==D)throw new Error("expected derived bulk order hash to match");return D}constructor(D,te,he,ye,be){this.types=D,this.rootType=te,this.leafType=he,this.elements=ye,this.depth=be;const ve=Lq.TypedDataEncoder.from(D);var we,_e;this.encoder=ve,this.leafHasher=D=>ve.hashStruct(he,D),this.defaultNode=$q.DefaultGetter.from(D,he),this.defaultLeaf=this.leafHasher(this.defaultNode),this.tree=(we=this.getCompleteLeaves(),_e=this.defaultLeaf,new Uq.MerkleTree(we.map(qq.hexToBuffer),qq.bufferKeccak,{complete:!0,sort:!1,hashLeaves:!1,fillDefaultHash:(0,qq.hexToBuffer)(_e)}))}},Object.defineProperty(xq,"__esModule",{value:!0}),xq.getBulkOrderTypeHashes=xq.getBulkOrderTypeHash=xq.getBulkOrderTree=xq.getBulkOrderTreeHeight=void 0;const Gq=YO,jq=Nq,Hq=Mq,zq=Dq,Wq=MD;function getBulkOrderTypes$1(D){const te={...Wq.EIP_712_BULK_ORDER_TYPE};return te.BulkOrder=[{name:"tree",type:`OrderComponents${"[2]".repeat(D)}`}],te}function getBulkOrderTreeHeight$1(D){return Math.max(Math.ceil(Math.log2(D)),1)}function getBulkOrderTypeHash(D){const te=getBulkOrderTypes$1(D),he=Gq.TypedDataEncoder.from(te),ye=(0,Gq.toUtf8Bytes)(he.types.BulkOrder[0].type);return(0,Gq.keccak256)(ye)}xq.getBulkOrderTreeHeight=getBulkOrderTreeHeight$1,xq.getBulkOrderTree=function getBulkOrderTree$1(D,te=0,he=getBulkOrderTreeHeight$1(D.length+te)){const ye=getBulkOrderTypes$1(he),be=Hq.DefaultGetter.from(ye,"OrderComponents");let ve=[...D];return te>0&&(ve=[...(0,zq.fillArray)([],te,be),...D]),new jq.Eip712MerkleTree(ye,"BulkOrder","OrderComponents",ve,he)},xq.getBulkOrderTypeHash=getBulkOrderTypeHash,xq.getBulkOrderTypeHashes=function getBulkOrderTypeHashes(D){const te=[];for(let he=0;he<D;he++)te.push(getBulkOrderTypeHash(he+1));return te};var Vq={},Kq={},Jq={};Object.defineProperty(Jq,"__esModule",{value:!0}),Jq.MerkleTree=void 0;const Xq=YO,Qq=pk,hashIdentifier=D=>(0,Xq.keccak256)(Buffer.from((0,Xq.toBeHex)(D).slice(2).padStart(64,"0"),"hex"));Jq.MerkleTree=class MerkleTree{constructor(D){this.tree=new Qq.default(D.map(hashIdentifier),Xq.keccak256,{sort:!0})}getProof(D){return this.tree.getHexProof(hashIdentifier(D))}getRoot(){return this.tree.getRoot().toString("hex")?this.tree.getHexRoot():"0"}},Object.defineProperty(Kq,"__esModule",{value:!0}),Kq.shouldUseMatchForFulfill=Kq.generateRandomSalt=Kq.mapTipAmountsFromFilledStatus=Kq.mapTipAmountsFromUnitsToFill=Kq.mapOrderAmountsFromUnitsToFill=Kq.mapOrderAmountsFromFilledStatus=Kq.totalItemsAmount=Kq.areAllCurrenciesSame=Kq.mapInputItemToOfferItem=Kq.deductFees=Kq.feeToConsiderationItem=void 0;const Zq=YO,Yq=MD,eG=requireItem(),tG=Jq,multiplyBasisPoints=(D,te)=>BigInt(D)*BigInt(te)/Yq.ONE_HUNDRED_PERCENT_BP;Kq.feeToConsiderationItem=({fee:D,token:te,baseAmount:he,baseEndAmount:ye=he})=>({itemType:te===Zq.ethers.ZeroAddress?Yq.ItemType.NATIVE:Yq.ItemType.ERC20,token:te,identifierOrCriteria:"0",startAmount:multiplyBasisPoints(he,D.basisPoints).toString(),endAmount:multiplyBasisPoints(ye,D.basisPoints).toString(),recipient:D.recipient});Kq.deductFees=(D,te)=>{if(!te)return D;const he=te.reduce(((D,te)=>D+te.basisPoints),0);return D.map((D=>({...D,startAmount:(0,eG.isCurrencyItem)(D)?(BigInt(D.startAmount)-multiplyBasisPoints(D.startAmount,he)).toString():D.startAmount,endAmount:(0,eG.isCurrencyItem)(D)?(BigInt(D.endAmount)-multiplyBasisPoints(D.endAmount,he)).toString():D.endAmount})))};Kq.mapInputItemToOfferItem=D=>{if("itemType"in D){if("identifiers"in D||"criteria"in D){const te="criteria"in D?D.criteria:new tG.MerkleTree(D.identifiers).getRoot();return{itemType:D.itemType===Yq.ItemType.ERC721?Yq.ItemType.ERC721_WITH_CRITERIA:Yq.ItemType.ERC1155_WITH_CRITERIA,token:D.token,identifierOrCriteria:te,startAmount:D.amount??"1",endAmount:D.endAmount??D.amount??"1"}}return"amount"in D||"endAmount"in D?{itemType:D.itemType,token:D.token,identifierOrCriteria:D.identifier??"0",startAmount:D.amount,endAmount:D.endAmount??D.amount??"1"}:{itemType:D.itemType,token:D.token,identifierOrCriteria:D.identifier,startAmount:"1",endAmount:"1"}}return{itemType:D.token&&D.token!==Zq.ethers.ZeroAddress?Yq.ItemType.ERC20:Yq.ItemType.NATIVE,token:D.token??Zq.ethers.ZeroAddress,identifierOrCriteria:"0",startAmount:D.amount,endAmount:D.endAmount??D.amount}};Kq.areAllCurrenciesSame=({offer:D,consideration:te})=>{const he=[...D,...te].filter(eG.isCurrencyItem);return he.every((({itemType:D,token:te})=>D===he[0].itemType&&te.toLowerCase()===he[0].token.toLowerCase()))};Kq.totalItemsAmount=D=>D.map((({startAmount:D,endAmount:te})=>({startAmount:D,endAmount:te}))).reduce((({startAmount:D,endAmount:te},{startAmount:he,endAmount:ye})=>({startAmount:D+BigInt(he),endAmount:te+BigInt(ye)})),{startAmount:0n,endAmount:0n});Kq.mapOrderAmountsFromFilledStatus=(D,{totalFilled:te,totalSize:he})=>{if(0n===te||0n===he)return D;const ye=(he-te)*Yq.ONE_HUNDRED_PERCENT_BP/he;return{parameters:{...D.parameters,offer:D.parameters.offer.map((D=>({...D,startAmount:multiplyBasisPoints(D.startAmount,ye).toString(),endAmount:multiplyBasisPoints(D.endAmount,ye).toString()}))),consideration:D.parameters.consideration.map((D=>({...D,startAmount:multiplyBasisPoints(D.startAmount,ye).toString(),endAmount:multiplyBasisPoints(D.endAmount,ye).toString()})))},signature:D.signature}};const multiplyDivision=(D,te,he)=>BigInt(D)*BigInt(te)/BigInt(he);Kq.mapOrderAmountsFromUnitsToFill=(D,{unitsToFill:te,totalSize:he})=>{const ye=BigInt(te);if(ye<=0n)throw new Error("Units to fill must be greater than 1");const be=(0,eG.getMaximumSizeForOrder)(D);return 0n===he&&(he=be),{parameters:{...D.parameters,offer:D.parameters.offer.map((D=>({...D,startAmount:multiplyDivision(D.startAmount,ye,he).toString(),endAmount:multiplyDivision(D.endAmount,ye,he).toString()}))),consideration:D.parameters.consideration.map((D=>({...D,startAmount:multiplyDivision(D.startAmount,ye,he).toString(),endAmount:multiplyDivision(D.endAmount,ye,he).toString()})))},signature:D.signature}},Kq.mapTipAmountsFromUnitsToFill=function mapTipAmountsFromUnitsToFill(D,te,he){const ye=BigInt(te);if(ye<=0n)throw new Error("Units to fill must be greater than 0");return D.map((D=>({...D,startAmount:multiplyDivision(D.startAmount,ye,he).toString(),endAmount:multiplyDivision(D.endAmount,ye,he).toString()})))},Kq.mapTipAmountsFromFilledStatus=function mapTipAmountsFromFilledStatus(D,te,he){if(0n===te||0n===he)return D;const ye=(he-te)*Yq.ONE_HUNDRED_PERCENT_BP/he;return D.map((D=>({...D,startAmount:multiplyBasisPoints(D.startAmount,ye).toString(),endAmount:multiplyBasisPoints(D.endAmount,ye).toString()})))};Kq.generateRandomSalt=D=>D?(0,Zq.toBeHex)((0,Zq.concat)([(0,Zq.keccak256)((0,Zq.toUtf8Bytes)(D)).slice(0,10),Uint8Array.from(Array(20).fill(0)),(0,Zq.randomBytes)(8)])):`0x${Buffer.from((0,Zq.randomBytes)(8)).toString("hex").padStart(64,"0")}`;Kq.shouldUseMatchForFulfill=()=>!0,function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.scaleOrderStatusToMaxUnits=D.getAdvancedOrderNumeratorDenominator=D.generateFulfillOrdersFulfillments=D.fulfillAvailableOrders=D.validateAndSanitizeFromOrderStatus=D.fulfillStandardOrder=D.fulfillBasicOrder=D.shouldUseBasicFulfill=void 0;const te=YO,he=MD,ye=BD,be=Cq,ve=requireCriteria(),we=_q,_e=requireItem(),Pe=Kq,Ie=Tq;D.shouldUseBasicFulfill=({offer:D,consideration:ye,offerer:be},ve)=>{if(0n!==ve)return!1;if(D.length>1||0===ye.length)return!1;const we=[...D,...ye],Ie=we.filter((({itemType:D})=>[he.ItemType.ERC721,he.ItemType.ERC1155].includes(D))),Re=we.filter((({itemType:D})=>(0,_e.isCriteriaItem)(D)));if((0,_e.isNativeCurrencyItem)(D[0]))return!1;if(1!==Ie.length||0!==Re.length)return!1;if(!(0,Pe.areAllCurrenciesSame)({offer:D,consideration:ye}))return!1;if(we.some((({startAmount:D,endAmount:te})=>D!==te)))return!1;const[ke,...Oe]=ye;if(ke.recipient.toLowerCase()!==be.toLowerCase())return!1;if(ye.length>1&&Oe.every((te=>te.itemType===D[0].itemType))&&(0,Pe.totalItemsAmount)(Oe).endAmount>BigInt(D[0].endAmount))return!1;const xe=we.filter(_e.isCurrencyItem),Be=xe.filter((({itemType:D})=>D===he.ItemType.NATIVE)).every((({token:D})=>D===te.ethers.ZeroAddress)),Fe=xe.every((({identifierOrCriteria:D})=>0n===BigInt(D))),De=Ie.filter((({itemType:D})=>D===he.ItemType.ERC721)).every((({endAmount:D})=>"1"===D));return Be&&Fe&&De};const Re={[he.ItemType.ERC20]:{[he.ItemType.ERC721]:he.BasicOrderRouteType.ERC721_TO_ERC20,[he.ItemType.ERC1155]:he.BasicOrderRouteType.ERC1155_TO_ERC20},[he.ItemType.ERC721]:{[he.ItemType.NATIVE]:he.BasicOrderRouteType.ETH_TO_ERC721,[he.ItemType.ERC20]:he.BasicOrderRouteType.ERC20_TO_ERC721},[he.ItemType.ERC1155]:{[he.ItemType.NATIVE]:he.BasicOrderRouteType.ETH_TO_ERC1155,[he.ItemType.ERC20]:he.BasicOrderRouteType.ERC20_TO_ERC1155}};function validateAndSanitizeFromOrderStatus(D,te){const{isValidated:he,isCancelled:ye,totalFilled:be,totalSize:ve}=te;if(ve>0n&&be/ve===1n)throw new Error("The order you are trying to fulfill is already filled");if(ye)throw new Error("The order you are trying to fulfill is cancelled");return he?{parameters:{...D.parameters},signature:"0x"}:D}function generateFulfillOrdersFulfillments(D){const hashAggregateKey=({sourceOrDestination:D,operator:te="",token:he,identifier:ye})=>`${D}-${te}-${he}-${ye}`,te={},he={};return D.forEach((({order:D,offererOperator:he,offerCriteria:ye},be)=>{const we=(0,ve.getItemToCriteriaMap)(D.parameters.offer,ye);return D.parameters.offer.forEach(((ye,ve)=>{const Pe=`${hashAggregateKey({sourceOrDestination:D.parameters.offerer,operator:he,token:ye.token,identifier:we.get(ye)?.identifier??ye.identifierOrCriteria})}${(0,_e.isErc721Item)(ye.itemType)?ve:""}`;te[Pe]=[...te[Pe]??[],{orderIndex:be,itemIndex:ve}]}))})),D.forEach((({order:D,considerationCriteria:te,tips:ye},be)=>{const we=(0,ve.getItemToCriteriaMap)(D.parameters.consideration,te);return[...D.parameters.consideration,...ye].forEach(((D,te)=>{const ye=`${hashAggregateKey({sourceOrDestination:D.recipient,token:D.token,identifier:we.get(D)?.identifier??D.identifierOrCriteria})}${(0,_e.isErc721Item)(D.itemType)?te:""}`;he[ye]=[...he[ye]??[],{orderIndex:be,itemIndex:te}]}))})),{offerFulfillments:Object.values(te),considerationFulfillments:Object.values(he)}}D.fulfillBasicOrder=function fulfillBasicOrder({order:D,seaportContract:ve,offererBalancesAndApprovals:we,fulfillerBalancesAndApprovals:Pe,timeBasedItemParams:ke,offererOperator:Oe,fulfillerOperator:xe,signer:Be,tips:Fe=[],conduitKey:De=he.NO_CONDUIT,domain:Le,overrides:Ue},qe){const{offer:je,consideration:Je}=D.parameters,et=[...Je,...Fe],tt=je[0],[rt,...nt]=et,at=Re[tt.itemType]?.[rt.itemType];if(void 0===at)throw new Error("Order parameters did not result in a valid basic fulfillment");const ut=nt.map((({startAmount:D,recipient:te})=>({amount:D,recipient:te}))),ht=et.filter((D=>D.itemType!==je[0].itemType)),yt=(0,_e.getSummedTokenAndIdentifierAmounts)({items:ht,criterias:[],timeBasedItemParams:{...ke,isConsiderationItem:!0}})[te.ethers.ZeroAddress]?.[0],mt=(0,be.validateBasicFulfillBalancesAndApprovals)({offer:je,consideration:et,offererBalancesAndApprovals:we,fulfillerBalancesAndApprovals:Pe,timeBasedItemParams:ke,offererOperator:Oe,fulfillerOperator:xe}),bt={offerer:D.parameters.offerer,offererConduitKey:D.parameters.conduitKey,zone:D.parameters.zone,basicOrderType:D.parameters.orderType+4*at,offerToken:tt.token,offerIdentifier:tt.identifierOrCriteria,offerAmount:tt.endAmount,considerationToken:rt.token,considerationIdentifier:rt.identifierOrCriteria,considerationAmount:rt.endAmount,startTime:D.parameters.startTime,endTime:D.parameters.endTime,salt:D.parameters.salt,totalOriginalAdditionalRecipients:D.parameters.consideration.length-1,signature:D.signature,fulfillerConduitKey:De,additionalRecipients:ut,zoneHash:D.parameters.zoneHash};Ue={...Ue,value:yt};const wt=[...(0,ye.getApprovalActions)(mt,qe,Be),{type:"exchange",transactionMethods:(0,Ie.getTransactionMethods)(Be,ve,"fulfillBasicOrder",[bt,Ue],Le)}];return{actions:wt,executeAllActions:()=>(0,Ie.executeAllActions)(wt)}},D.fulfillStandardOrder=function fulfillStandardOrder({order:he,unitsToFill:we=0,totalSize:Re,totalFilled:ke,offerCriteria:Oe,considerationCriteria:xe,tips:Be=[],extraData:Fe,seaportContract:De,offererBalancesAndApprovals:Le,fulfillerBalancesAndApprovals:Ue,offererOperator:qe,fulfillerOperator:je,timeBasedItemParams:Je,conduitKey:et,recipientAddress:tt,signer:rt,domain:nt,overrides:at},ut){const ht=we?(0,Pe.mapOrderAmountsFromUnitsToFill)(he,{unitsToFill:we,totalSize:Re}):(0,Pe.mapOrderAmountsFromFilledStatus)(he,{totalFilled:ke,totalSize:Re});let yt=[];Be.length>0&&(yt=(0,Pe.mapTipAmountsFromUnitsToFill)(Be,we,Re));const{parameters:{offer:mt,consideration:bt}}=ht,wt=[...bt,...yt],_t=mt.filter((({itemType:D})=>(0,_e.isCriteriaItem)(D))),Tt=wt.filter((({itemType:D})=>(0,_e.isCriteriaItem)(D))),At=_t.length>0||Tt.length>0;if(_t.length!==Oe.length||Tt.length!==xe.length)throw new Error("You must supply the appropriate criterias for criteria based items");const Et=(0,_e.getSummedTokenAndIdentifierAmounts)({items:wt,criterias:xe,timeBasedItemParams:{...Je,isConsiderationItem:!0}})[te.ethers.ZeroAddress]?.[0],Pt=(0,be.validateStandardFulfillBalancesAndApprovals)({offer:mt,consideration:wt,offerCriteria:Oe,considerationCriteria:xe,offererBalancesAndApprovals:Le,fulfillerBalancesAndApprovals:Ue,timeBasedItemParams:Je,offererOperator:qe,fulfillerOperator:je});at={...at,value:Et};const St=(0,ye.getApprovalActions)(Pt,ut,rt),Ct=tt!==te.ethers.ZeroAddress,kt=Boolean(we)||At||Ct,Ot={...he,parameters:{...he.parameters,consideration:[...he.parameters.consideration,...Be],totalOriginalConsiderationItems:bt.length}},{numerator:xt,denominator:Nt}=(0,D.getAdvancedOrderNumeratorDenominator)(he,we),Bt=[...St,{type:"exchange",transactionMethods:kt?(0,Ie.getTransactionMethods)(rt,De,"fulfillAdvancedOrder",[{...Ot,numerator:xt,denominator:Nt,extraData:Fe??"0x"},At?(0,ve.generateCriteriaResolvers)({orders:[he],offerCriterias:[Oe],considerationCriterias:[xe]}):[],et,tt,at],nt):(0,Ie.getTransactionMethods)(rt,De,"fulfillOrder",[Ot,et,at],nt)}];return{actions:Bt,executeAllActions:()=>(0,Ie.executeAllActions)(Bt)}},D.validateAndSanitizeFromOrderStatus=validateAndSanitizeFromOrderStatus,D.fulfillAvailableOrders=function fulfillAvailableOrders({ordersMetadata:he,seaportContract:we,fulfillerBalancesAndApprovals:Re,fulfillerOperator:ke,currentBlockTimestamp:Oe,ascendingAmountTimestampBuffer:xe,conduitKey:Be,signer:Fe,recipientAddress:De,exactApproval:Le,domain:Ue}){const qe=he.map((D=>({...D,order:validateAndSanitizeFromOrderStatus(D.order,D.orderStatus)}))),adjustTips=D=>D.tips&&D.tips.length?D.unitsToFill?(0,Pe.mapTipAmountsFromUnitsToFill)(D.tips,D.unitsToFill,D.orderStatus.totalSize):(0,Pe.mapTipAmountsFromFilledStatus)(D.tips,D.orderStatus.totalFilled,D.orderStatus.totalSize):[],je=qe.map((D=>({...D,order:D.unitsToFill?(0,Pe.mapOrderAmountsFromUnitsToFill)(D.order,{unitsToFill:D.unitsToFill,totalSize:D.orderStatus.totalSize}):(0,Pe.mapOrderAmountsFromFilledStatus)(D.order,{totalFilled:D.orderStatus.totalFilled,totalSize:D.orderStatus.totalSize}),tips:adjustTips(D)})));let Je=0n;const et=[],tt=qe.flatMap((D=>[D.order.parameters.offer,D.order.parameters.consideration])).flat().filter((({itemType:D})=>(0,_e.isCriteriaItem)(D))).length>0;je.forEach((({order:D,tips:he,offerCriteria:ye,considerationCriteria:ve,offererBalancesAndApprovals:we,offererOperator:Pe})=>{const Ie=[...D.parameters.consideration,...he],Be={startTime:D.parameters.startTime,endTime:D.parameters.endTime,currentBlockTimestamp:Oe,ascendingAmountTimestampBuffer:xe,isConsiderationItem:!0};Je+=(0,_e.getSummedTokenAndIdentifierAmounts)({items:Ie,criterias:ve,timeBasedItemParams:Be})[te.ethers.ZeroAddress]?.[0]??0n;const Fe=(0,be.validateStandardFulfillBalancesAndApprovals)({offer:D.parameters.offer,consideration:Ie,offerCriteria:ye,considerationCriteria:ve,offererBalancesAndApprovals:we,fulfillerBalancesAndApprovals:Re,timeBasedItemParams:Be,offererOperator:Pe,fulfillerOperator:ke}),De=D.parameters.offer.filter((({itemType:D})=>(0,_e.isCriteriaItem)(D))),Le=Ie.filter((({itemType:D})=>(0,_e.isCriteriaItem)(D)));if(De.length!==ye.length||Le.length!==ve.length)throw new Error("You must supply the appropriate criterias for criteria based items");Fe.forEach((D=>{et.find((te=>te.token===D.token))||et.push(D)}))}));const rt={value:Je},nt=(0,ye.getApprovalActions)(et,Le,Fe),at=qe.map((({order:te,unitsToFill:he=0,tips:ye,extraData:be})=>{const{numerator:ve,denominator:we}=(0,D.getAdvancedOrderNumeratorDenominator)(te,he),_e=[...te.parameters.consideration,...ye];return{...te,parameters:{...te.parameters,consideration:_e,totalOriginalConsiderationItems:te.parameters.consideration.length},numerator:ve,denominator:we,extraData:be}})),{offerFulfillments:ut,considerationFulfillments:ht}=generateFulfillOrdersFulfillments(he),yt={type:"exchange",transactionMethods:(0,Ie.getTransactionMethods)(Fe,we,"fulfillAvailableAdvancedOrders",[at,tt?(0,ve.generateCriteriaResolvers)({orders:he.map((({order:D})=>D)),offerCriterias:he.map((({offerCriteria:D})=>D)),considerationCriterias:he.map((({considerationCriteria:D})=>D))}):[],ut,ht,Be,De,at.length,rt],Ue)},mt=[...nt,yt];return{actions:mt,executeAllActions:()=>(0,Ie.executeAllActions)(mt)}},D.generateFulfillOrdersFulfillments=generateFulfillOrdersFulfillments;D.getAdvancedOrderNumeratorDenominator=(D,te)=>{const he=(0,_e.getMaximumSizeForOrder)(D);let ye=1n,be=1n;if(te){const D=(0,we.gcd)(BigInt(te),he);ye=BigInt(te)/D,be=he/D}return{numerator:ye,denominator:be}};D.scaleOrderStatusToMaxUnits=(D,te)=>{const he=(0,_e.getMaximumSizeForOrder)(D);return 0n===te.totalSize||(te.totalFilled=te.totalFilled*he/te.totalSize),te.totalSize=he,te}}(Vq),Object.defineProperty(ZO,"__esModule",{value:!0}),ZO.Seaport=void 0;const rG=YO,nG=MD,aG=BD,iG=Cq,sG=xq,oG=Vq,cG=requireItem(),dG=Kq,uG=Tq,fG=FD;ZO.Seaport=class Seaport{constructor(D,{overrides:te,ascendingAmountFulfillmentBuffer:he=300,balanceAndApprovalChecksOnOrderCreation:ye=!0,conduitKeyToConduit:be}={}){this.OPENSEA_CONDUIT_KEY=nG.OPENSEA_CONDUIT_KEY,this.getOrderHash=D=>{const te="OfferItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount)",he="ConsiderationItem(uint8 itemType,address token,uint256 identifierOrCriteria,uint256 startAmount,uint256 endAmount,address recipient)",ye=`OrderComponents(address offerer,address zone,OfferItem[] offer,ConsiderationItem[] consideration,uint8 orderType,uint256 startTime,uint256 endTime,bytes32 zoneHash,uint256 salt,bytes32 conduitKey,uint256 counter)${he}${te}`,be=rG.ethers.keccak256(rG.ethers.toUtf8Bytes(te)),ve=rG.ethers.keccak256(rG.ethers.toUtf8Bytes(he)),we=rG.ethers.keccak256(rG.ethers.toUtf8Bytes(ye)),_e=rG.ethers.keccak256("0x"+D.offer.map((D=>rG.ethers.keccak256("0x"+[be.slice(2),D.itemType.toString().padStart(64,"0"),D.token.slice(2).padStart(64,"0"),rG.ethers.toBeHex(D.identifierOrCriteria).slice(2).padStart(64,"0"),rG.ethers.toBeHex(D.startAmount).slice(2).padStart(64,"0"),rG.ethers.toBeHex(D.endAmount).slice(2).padStart(64,"0")].join("")).slice(2))).join("")),Pe=rG.ethers.keccak256("0x"+D.consideration.map((D=>rG.ethers.keccak256("0x"+[ve.slice(2),D.itemType.toString().padStart(64,"0"),D.token.slice(2).padStart(64,"0"),rG.ethers.toBeHex(D.identifierOrCriteria).slice(2).padStart(64,"0"),rG.ethers.toBeHex(D.startAmount).slice(2).padStart(64,"0"),rG.ethers.toBeHex(D.endAmount).slice(2).padStart(64,"0"),D.recipient.slice(2).padStart(64,"0")].join("")).slice(2))).join(""));return rG.ethers.keccak256("0x"+[we.slice(2),D.offerer.slice(2).padStart(64,"0"),D.zone.slice(2).padStart(64,"0"),_e.slice(2),Pe.slice(2),D.orderType.toString().padStart(64,"0"),rG.ethers.toBeHex(D.startTime).slice(2).padStart(64,"0"),rG.ethers.toBeHex(D.endTime).slice(2).padStart(64,"0"),D.zoneHash.slice(2),rG.ethers.toBeHex(D.salt).slice(2).padStart(64,"0"),D.conduitKey.slice(2).padStart(64,"0"),rG.ethers.toBeHex(D.counter).slice(2).padStart(64,"0")].join(""))};const ve="provider"in D?D.provider:D;if(this.signer="getAddress"in D?D:void 0,!ve)throw new Error("Either a provider or custom signer with provider must be provided");this.provider=ve;const we=te?.seaportVersion??nG.SEAPORT_CONTRACT_VERSION_V1_6,_e=te?.contractAddress??nG.CROSS_CHAIN_SEAPORT_V1_6_ADDRESS;this.contract=fG.Seaport__factory.connect(_e,this.provider);const Pe=te?.domainRegistryAddress??nG.DOMAIN_REGISTRY_ADDRESS;this.domainRegistry=fG.DomainRegistry__factory.connect(Pe,this.provider),this.config={ascendingAmountFulfillmentBuffer:he,balanceAndApprovalChecksOnOrderCreation:ye,conduitKeyToConduit:{...nG.KNOWN_CONDUIT_KEYS_TO_CONDUIT,[nG.NO_CONDUIT]:_e,...be},seaportVersion:we},this.defaultConduitKey=te?.defaultConduitKey??nG.NO_CONDUIT}async createOrder(D,te,he){const ye=await this._getSigner(te),be=te??await ye.getAddress(),{orderComponents:ve,approvalActions:we}=await this._formatOrder(ye,be,Boolean(he),D),_e={type:"create",getMessageToSign:()=>this._getMessageToSign(ve),createOrder:async()=>{const D=await this.signOrder(ve,be);return{parameters:ve,signature:D}}},Pe=[...we,_e];return{actions:Pe,executeAllActions:()=>(0,uG.executeAllActions)(Pe)}}async createBulkOrders(D,te,he){const ye=await this._getSigner(te),be=await ye.getAddress(),ve=await this.getCounter(be),we=[],_e=[];for(const te of D){te.counter??(te.counter=ve);const{orderComponents:D,approvalActions:Pe}=await this._formatOrder(ye,be,Boolean(he),te);_e.push(D);for(const D of Pe)void 0===we.find((te=>te.token===D.token))&&we.push(D)}const Pe={type:"createBulk",getMessageToSign:()=>this._getBulkMessageToSign(_e),createBulkOrders:async()=>await this.signBulkOrder(_e,be)},Ie=[...we,Pe];return{actions:Ie,executeAllActions:()=>(0,uG.executeAllActions)(Ie)}}async _formatOrder(D,te,he,{conduitKey:ye=this.defaultConduitKey,zone:be=rG.ethers.ZeroAddress,zoneHash:ve=rG.ethers.ZeroHash,startTime:we=Math.floor(Date.now()/1e3).toString(),endTime:_e=nG.MAX_INT.toString(),offer:Pe,consideration:Ie,counter:Re,allowPartialFills:ke,restrictedByZone:Oe,fees:xe,domain:Be,salt:Fe}){const De=Pe.map(dG.mapInputItemToOfferItem),Le=[...Ie.map((D=>({...(0,dG.mapInputItemToOfferItem)(D),recipient:D.recipient??te})))];if(xe?.length&&!(0,dG.areAllCurrenciesSame)({offer:De,consideration:Le}))throw new Error("All currency tokens in the order must be the same token when applying fees");const Ue=[...De,...Le].filter(cG.isCurrencyItem),qe=(0,dG.totalItemsAmount)(Ue),je=this.config.conduitKeyToConduit[ye],Je=this._getOrderTypeFromOrderOptions({allowPartialFills:ke,restrictedByZone:Oe}),et=[...(0,dG.deductFees)(Le,xe),...Ue.length?xe?.map((D=>(0,dG.feeToConsiderationItem)({fee:D,token:Ue[0].token,baseAmount:qe.startAmount,baseEndAmount:qe.endAmount})))??[]:[]],tt=void 0!==Fe?`0x${rG.ethers.toBeHex(Fe).slice(2).padStart(64,"0")}`:(0,dG.generateRandomSalt)(Be),rt={offerer:te,zone:be,zoneHash:ve,startTime:we,endTime:_e,orderType:Je,offer:De,consideration:et,totalOriginalConsiderationItems:et.length,salt:tt,conduitKey:ye,counter:(Re??await this.getCounter(te)).toString()},nt=[];if(this.config.balanceAndApprovalChecksOnOrderCreation){const ye=await(0,iG.getBalancesAndApprovals)({owner:te,items:De,criterias:[],provider:this.provider,operator:je}),be=(0,iG.validateOfferBalancesAndApprovals)({offer:De,criterias:[],balancesAndApprovals:ye,throwOnInsufficientBalances:!0,operator:je}),ve=(0,aG.getApprovalActions)(be,he,D);nt.push(...ve)}return{orderComponents:rt,approvalActions:nt}}async _getSigner(D){if(this.signer)return this.signer;if(!("send"in this.provider))throw new Error("Either signer or JsonRpcProvider with signer must be provided");return this.provider.getSigner(D)}_getOrderTypeFromOrderOptions({allowPartialFills:D,restrictedByZone:te}){return D?te?nG.OrderType.PARTIAL_RESTRICTED:nG.OrderType.PARTIAL_OPEN:te?nG.OrderType.FULL_RESTRICTED:nG.OrderType.FULL_OPEN}async _getDomainData(){const{chainId:D}=await this.provider.getNetwork();return{name:nG.SEAPORT_CONTRACT_NAME,version:this.config.seaportVersion,chainId:D,verifyingContract:await this.contract.getAddress()}}async _getMessageToSign(D){const te=await this._getDomainData();return JSON.stringify(rG.TypedDataEncoder.getPayload(te,nG.EIP_712_ORDER_TYPE,D))}async _getBulkMessageToSign(D){const te=await this._getDomainData(),he=(0,sG.getBulkOrderTree)(D),ye=he.types,be=he.getDataToSign();return JSON.stringify(rG.TypedDataEncoder.getPayload(te,ye,{tree:be}))}async signOrder(D,te){const he=await this._getSigner(te),ye=await this._getDomainData();let be=await he.signTypedData(ye,nG.EIP_712_ORDER_TYPE,D);return 132===be.length&&(be=rG.ethers.Signature.from(be).compactSerialized),be}async signBulkOrder(D,te){const he=await this._getSigner(te),ye=await this._getDomainData(),be=(0,sG.getBulkOrderTree)(D),ve=be.types,we={tree:be.getDataToSign()};let _e=await he.signTypedData(ye,ve,we);132===_e.length&&(_e=rG.ethers.Signature.from(_e).compactSerialized);const Pe=D.map(((D,te)=>({parameters:D,signature:be.getEncodedProofAndSignature(te,_e)})));return Pe}cancelOrders(D,te,he,ye){return(0,uG.getTransactionMethods)(this._getSigner(te),this.contract,"cancel",[D,ye],he)}bulkCancelOrders(D,te,he){return(0,uG.getTransactionMethods)(this._getSigner(D),this.contract,"incrementCounter",[he],te)}validate(D,te,he,ye){return(0,uG.getTransactionMethods)(this._getSigner(te),this.contract,"validate",[D,ye],he)}async getOrderStatus(D){const te=await this.contract.getOrderStatus(D),[he,ye,be,ve]=te;return{isValidated:he,isCancelled:ye,totalFilled:be,totalSize:ve}}getCounter(D){return this.contract.getCounter(D)}async fulfillOrder({order:D,unitsToFill:te,offerCriteria:he=[],considerationCriteria:ye=[],tips:be=[],extraData:ve="0x",accountAddress:we,conduitKey:_e=this.defaultConduitKey,recipientAddress:Pe=rG.ethers.ZeroAddress,domain:Ie,exactApproval:Re=!1,overrides:ke}){if(!D.signature)throw new Error("Order is missing signature");const{parameters:Oe}=D,{offerer:xe,offer:Be,consideration:Fe}=Oe,De=await this._getSigner(we),Le=await De.getAddress(),Ue=this.config.conduitKeyToConduit[Oe.conduitKey],qe=this.config.conduitKeyToConduit[_e],[je,Je,et,tt]=await Promise.all([(0,iG.getBalancesAndApprovals)({owner:xe,items:Be,criterias:he,provider:this.provider,operator:Ue}),(0,iG.getBalancesAndApprovals)({owner:Le,items:[...Be,...Fe],criterias:[...he,...ye],provider:this.provider,operator:qe}),this.provider.getBlock("latest"),this.getOrderStatus(this.getOrderHash(Oe))]),rt=et.timestamp;(0,oG.scaleOrderStatusToMaxUnits)(D,tt);const{totalFilled:nt,totalSize:at}=tt,ut=(0,oG.validateAndSanitizeFromOrderStatus)(D,tt),ht={startTime:ut.parameters.startTime,endTime:ut.parameters.endTime,currentBlockTimestamp:rt,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer},yt=be.map((D=>({...(0,dG.mapInputItemToOfferItem)(D),recipient:D.recipient}))),mt=Pe===rG.ethers.ZeroAddress;return!te&&mt&&(0,oG.shouldUseBasicFulfill)(ut.parameters,nt)?(0,oG.fulfillBasicOrder)({order:ut,seaportContract:this.contract,offererBalancesAndApprovals:je,fulfillerBalancesAndApprovals:Je,timeBasedItemParams:ht,conduitKey:_e,offererOperator:Ue,fulfillerOperator:qe,signer:De,tips:yt,domain:Ie,overrides:ke},Re):(0,oG.fulfillStandardOrder)({order:ut,unitsToFill:te,totalFilled:nt,totalSize:at,offerCriteria:he,considerationCriteria:ye,tips:yt,extraData:ve,seaportContract:this.contract,offererBalancesAndApprovals:je,fulfillerBalancesAndApprovals:Je,timeBasedItemParams:ht,conduitKey:_e,signer:De,offererOperator:Ue,fulfillerOperator:qe,recipientAddress:Pe,domain:Ie,overrides:ke},Re)}async fulfillOrders({fulfillOrderDetails:D,accountAddress:te,conduitKey:he=this.defaultConduitKey,recipientAddress:ye=rG.ethers.ZeroAddress,domain:be,exactApproval:ve=!1}){if(D.some((D=>!D.order.signature)))throw new Error("All orders must include signatures");const we=await this._getSigner(te),_e=await we.getAddress(),Pe=D.map((({order:D})=>this.config.conduitKeyToConduit[D.parameters.conduitKey])),Ie=this.config.conduitKeyToConduit[he],Re=D.flatMap((({order:D})=>D.parameters.offer)),ke=D.flatMap((({order:D})=>D.parameters.consideration)),Oe=D.flatMap((({offerCriteria:D=[]})=>D)),xe=D.flatMap((({considerationCriteria:D=[]})=>D)),[Be,Fe,De,Le]=await Promise.all([Promise.all(D.map((({order:D,offerCriteria:te=[]},he)=>(0,iG.getBalancesAndApprovals)({owner:D.parameters.offerer,items:D.parameters.offer,criterias:te,operator:Pe[he],provider:this.provider})))),(0,iG.getBalancesAndApprovals)({owner:_e,items:[...Re,...ke],criterias:[...Oe,...xe],operator:Ie,provider:this.provider}),this.provider.getBlock("latest"),Promise.all(D.map((({order:D})=>this.getOrderStatus(this.getOrderHash(D.parameters)))))]),Ue=D.map(((D,te)=>({order:D.order,unitsToFill:D.unitsToFill,orderStatus:(0,oG.scaleOrderStatusToMaxUnits)(D.order,Le[te]),offerCriteria:D.offerCriteria??[],considerationCriteria:D.considerationCriteria??[],tips:D.tips?.map((D=>({...(0,dG.mapInputItemToOfferItem)(D),recipient:D.recipient})))??[],extraData:D.extraData??"0x",offererBalancesAndApprovals:Be[te],offererOperator:Pe[te]})));return(0,oG.fulfillAvailableOrders)({ordersMetadata:Ue,seaportContract:this.contract,fulfillerBalancesAndApprovals:Fe,currentBlockTimestamp:De.timestamp,ascendingAmountTimestampBuffer:this.config.ascendingAmountFulfillmentBuffer,fulfillerOperator:Ie,signer:we,conduitKey:he,recipientAddress:ye,domain:be,exactApproval:ve})}matchOrders({orders:D,fulfillments:te,overrides:he,accountAddress:ye,domain:be}){return(0,uG.getTransactionMethods)(this._getSigner(ye),this.contract,"matchOrders",[D,te,he],be)}setDomain(D,te,he){return(0,uG.getTransactionMethods)(this._getSigner(te),this.domainRegistry,"setDomain",[D,he])}getNumberOfDomains(D){return this.domainRegistry.getNumberOfDomains(D)}getDomain(D,te){return this.domainRegistry.getDomain(D,te)}async getDomains(D){try{return this.domainRegistry.getDomains(D)}catch(te){const he=await this.domainRegistry.getNumberOfDomains(D),ye=Promise.all([...Array(Number(he)).keys()].map((te=>this.domainRegistry.getDomain(D,te))));return await ye}}},function(D){Object.defineProperty(D,"__esModule",{value:!0}),D.Seaport=void 0;const te=ZO;Object.defineProperty(D,"Seaport",{enumerable:!0,get:function(){return te.Seaport}})}(QO);class BaseHttpRequest{config;constructor(D){this.config=D}}class ApiError extends Error{url;status;statusText;body;request;constructor(D,te,he){super(he),this.name="ApiError",this.url=te.url,this.status=te.status,this.statusText=te.statusText,this.body=te.body,this.request=D}}class CancelError extends Error{constructor(D){super(D),this.name="CancelError"}get isCancelled(){return!0}}class CancelablePromise{[Symbol.toStringTag];_isResolved;_isRejected;_isCancelled;_cancelHandlers;_promise;_resolve;_reject;constructor(D){this._isResolved=!1,this._isRejected=!1,this._isCancelled=!1,this._cancelHandlers=[],this._promise=new Promise(((te,he)=>{this._resolve=te,this._reject=he;const onCancel=D=>{this._isResolved||this._isRejected||this._isCancelled||this._cancelHandlers.push(D)};return Object.defineProperty(onCancel,"isResolved",{get:()=>this._isResolved}),Object.defineProperty(onCancel,"isRejected",{get:()=>this._isRejected}),Object.defineProperty(onCancel,"isCancelled",{get:()=>this._isCancelled}),D((D=>{this._isResolved||this._isRejected||this._isCancelled||(this._isResolved=!0,this._resolve?.(D))}),(D=>{this._isResolved||this._isRejected||this._isCancelled||(this._isRejected=!0,this._reject?.(D))}),onCancel)}))}then(D,te){return this._promise.then(D,te)}catch(D){return this._promise.catch(D)}finally(D){return this._promise.finally(D)}cancel(){if(!(this._isResolved||this._isRejected||this._isCancelled)){if(this._isCancelled=!0,this._cancelHandlers.length)try{for(const D of this._cancelHandlers)D()}catch(D){return void console.warn("Cancellation threw an error",D)}this._cancelHandlers.length=0,this._reject?.(new CancelError("Request aborted"))}}get isCancelled(){return this._isCancelled}}const isDefined=D=>null!=D,isString$1=D=>"string"==typeof D,isStringWithValue=D=>isString$1(D)&&""!==D,getUrl=(D,te)=>{const he=D.ENCODE_PATH||encodeURI,ye=te.url.replace("{api-version}",D.VERSION).replace(/{(.*?)}/g,((D,ye)=>te.path?.hasOwnProperty(ye)?he(String(te.path[ye])):D)),be=`${D.BASE}${ye}`;return te.query?`${be}${(D=>{const te=[];return Object.entries(D).forEach((([D,te])=>{(void 0)(D,te)})),te.length>0?`?${te.join("&")}`:""})(te.query)}`:be},resolve=async(D,te)=>"function"==typeof te?te(D):te,getHeaders=async(D,te,he)=>{const ye=await resolve(te,D.TOKEN),be=await resolve(te,D.USERNAME),ve=await resolve(te,D.PASSWORD),we=await resolve(te,D.HEADERS),_e="function"==typeof he?.getHeaders&&he?.getHeaders()||{},Pe=Object.entries({Accept:"application/json",...we,...te.headers,..._e}).filter((([D,te])=>isDefined(te))).reduce(((D,[te,he])=>({...D,[te]:String(he)})),{});if(isStringWithValue(ye)&&(Pe.Authorization=`Bearer ${ye}`),isStringWithValue(be)&&isStringWithValue(ve)){const D=(D=>{try{return btoa(D)}catch(te){return Buffer.from(D).toString("base64")}})(`${be}:${ve}`);Pe.Authorization=`Basic ${D}`}var Ie;return te.body&&(te.mediaType?Pe["Content-Type"]=te.mediaType:"object"==typeof(Ie=te.body)&&"string"==typeof Ie.type&&"function"==typeof Ie.stream&&"function"==typeof Ie.arrayBuffer&&"function"==typeof Ie.constructor&&"string"==typeof Ie.constructor.name&&/^(Blob|File)$/.test(Ie.constructor.name)&&/^(Blob|File)$/.test(Ie[Symbol.toStringTag])?Pe["Content-Type"]=te.body.type||"application/octet-stream":isString$1(te.body)?Pe["Content-Type"]="text/plain":(D=>D instanceof LA)(te.body)||(Pe["Content-Type"]="application/json")),Pe},request=(D,te)=>new CancelablePromise((async(he,ye,be)=>{try{const ye=getUrl(D,te),we=(D=>{if(D.formData){const te=new LA;return Object.entries(D.formData).filter((([D,te])=>isDefined(te))).forEach((([D,te])=>{Array.isArray(te)?te.forEach((te=>(void 0)(D,te))):(void 0)(D,te)})),te}})(te),_e=(D=>{if(D.body)return D.body})(te),Pe=await getHeaders(D,te,we);if(!be.isCancelled){const Ie=await(async(D,te,he,ye,be,ve,we)=>{const _e=Kt.CancelToken.source(),Pe={url:he,headers:ve,data:ye??be,method:te.method,withCredentials:D.WITH_CREDENTIALS,cancelToken:_e.token};we((()=>_e.cancel("The user aborted a request.")));try{return await Kt.request(Pe)}catch(D){const te=D;if(te.response)return te.response;throw D}})(D,te,ye,_e,we,Pe,be),Re=(D=>{if(204!==D.status)return D.data})(Ie),ke=((D,te)=>{if(te){const he=D.headers[te];if(isString$1(he))return he}})(Ie,te.responseHeader),Oe={url:ye,ok:(ve=Ie.status,ve>=200&&ve<300),status:Ie.status,statusText:Ie.statusText,body:ke??Re};((D,te)=>{const he={400:"Bad Request",401:"Unauthorized",403:"Forbidden",404:"Not Found",500:"Internal Server Error",502:"Bad Gateway",503:"Service Unavailable",...D.errors}[te.status];if(he)throw new ApiError(D,te,he);if(!te.ok)throw new ApiError(D,te,"Generic Error")})(te,Oe),he(Oe.body)}}catch(D){ye(D)}var ve}));class AxiosHttpRequest extends BaseHttpRequest{constructor(D){super(D)}request(D){return request(this.config,D)}}class OrdersService{httpRequest;constructor(D){this.httpRequest=D}cancelOrders({chainName:D,requestBody:te}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/cancel",path:{chain_name:D},body:te,mediaType:"application/json",errors:{400:"Bad Request (400)",401:"Unauthorised Request (401)",404:"The specified resource was not found (404)",429:"Too Many Requests (429)",500:"Internal Server Error (500)",501:"Not Implemented Error (501)"}})}listListings({chainName:D,status:te,sellItemContractAddress:he,buyItemType:ye,buyItemContractAddress:be,accountAddress:ve,sellItemMetadataId:we,sellItemTokenId:_e,fromUpdatedAt:Pe,pageSize:Ie,sortBy:Re,sortDirection:ke,pageCursor:Oe}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:D},query:{status:te,sell_item_contract_address:he,buy_item_type:ye,buy_item_contract_address:be,account_address:ve,sell_item_metadata_id:we,sell_item_token_id:_e,from_updated_at:Pe,page_size:Ie,sort_by:Re,sort_direction:ke,page_cursor:Oe},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}createListing({chainName:D,requestBody:te}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/listings",path:{chain_name:D},body:te,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}listBids({chainName:D,status:te,buyItemContractAddress:he,sellItemContractAddress:ye,accountAddress:be,buyItemMetadataId:ve,buyItemTokenId:we,fromUpdatedAt:_e,pageSize:Pe,sortBy:Ie,sortDirection:Re,pageCursor:ke}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/bids",path:{chain_name:D},query:{status:te,buy_item_contract_address:he,sell_item_contract_address:ye,account_address:be,buy_item_metadata_id:ve,buy_item_token_id:we,from_updated_at:_e,page_size:Pe,sort_by:Ie,sort_direction:Re,page_cursor:ke},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}createBid({chainName:D,requestBody:te}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/bids",path:{chain_name:D},body:te,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)",501:"Not Implemented Error (501)"}})}listCollectionBids({chainName:D,status:te,buyItemContractAddress:he,sellItemContractAddress:ye,accountAddress:be,fromUpdatedAt:ve,pageSize:we,sortBy:_e,sortDirection:Pe,pageCursor:Ie}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/collection-bids",path:{chain_name:D},query:{status:te,buy_item_contract_address:he,sell_item_contract_address:ye,account_address:be,from_updated_at:ve,page_size:we,sort_by:_e,sort_direction:Pe,page_cursor:Ie},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}createCollectionBid({chainName:D,requestBody:te}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/collection-bids",path:{chain_name:D},body:te,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)",501:"Not Implemented Error (501)"}})}getListing({chainName:D,listingId:te}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/listings/{listing_id}",path:{chain_name:D,listing_id:te},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getBid({chainName:D,bidId:te}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/bids/{bid_id}",path:{chain_name:D,bid_id:te},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getCollectionBid({chainName:D,collectionBidId:te}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/orders/collection-bids/{collection_bid_id}",path:{chain_name:D,collection_bid_id:te},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}fulfillmentData({chainName:D,requestBody:te}){return this.httpRequest.request({method:"POST",url:"/v1/chains/{chain_name}/orders/fulfillment-data",path:{chain_name:D},body:te,mediaType:"application/json",errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}listTrades({chainName:D,accountAddress:te,sellItemContractAddress:he,fromIndexedAt:ye,pageSize:be,sortBy:ve,sortDirection:we,pageCursor:_e}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades",path:{chain_name:D},query:{account_address:te,sell_item_contract_address:he,from_indexed_at:ye,page_size:be,sort_by:ve,sort_direction:we,page_cursor:_e},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}getTrade({chainName:D,tradeId:te}){return this.httpRequest.request({method:"GET",url:"/v1/chains/{chain_name}/trades/{trade_id}",path:{chain_name:D,trade_id:te},errors:{400:"Bad Request (400)",404:"The specified resource was not found (404)",500:"Internal Server Error (500)"}})}}class OrderBookClient{orders;request;constructor(D,te=AxiosHttpRequest){this.request=new te({BASE:D?.BASE??"https://api.immutable.com",VERSION:D?.VERSION??"1.0.0",WITH_CREDENTIALS:D?.WITH_CREDENTIALS??!1,CREDENTIALS:D?.CREDENTIALS??"include",TOKEN:D?.TOKEN,USERNAME:D?.USERNAME,PASSWORD:D?.PASSWORD,HEADERS:D?.HEADERS,ENCODE_PATH:D?.ENCODE_PATH}),this.orders=new OrdersService(this.request)}}var lG,pG,hG,yG,mG,bG,gG,vG,wG,_G;function exhaustiveSwitch(D){throw new Error("Unreachable")}function mapListingFromOpenApiOrder(D){if(D.type!==yG.type.LISTING)throw new Error("Order type must be LISTING");const te=D.sell.map((D=>{if("ERC721"===D.type)return{type:"ERC721",contractAddress:D.contract_address,tokenId:D.token_id};if("ERC1155"===D.type)return{type:"ERC1155",contractAddress:D.contract_address,tokenId:D.token_id,amount:D.amount};throw new Error("Listing sell items must either ERC721 or ERC1155")})),he=D.buy.map((D=>{if("NATIVE"===D.type)return{type:"NATIVE",amount:D.amount};if("ERC20"===D.type)return{type:"ERC20",contractAddress:D.contract_address,amount:D.amount};throw new Error("Listing buy items must be either NATIVE or ERC20")}));return{id:D.id,type:D.type,chain:D.chain,accountAddress:D.account_address,sell:te,buy:he,fees:D.fees.map((D=>({amount:D.amount,recipientAddress:D.recipient_address,type:D.type}))),status:D.status,fillStatus:D.fill_status,startAt:D.start_at,endAt:D.end_at,salt:D.salt,signature:D.signature,orderHash:D.order_hash,protocolData:{orderType:D.protocol_data.order_type,counter:D.protocol_data.counter,seaportAddress:D.protocol_data.seaport_address,seaportVersion:D.protocol_data.seaport_version,zoneAddress:D.protocol_data.zone_address},createdAt:D.created_at,updatedAt:D.updated_at}}function mapBidFromOpenApiOrder(D){if(D.type!==yG.type.BID)throw new Error("Order type must be BID");const te=D.sell.map((D=>{if("ERC20"===D.type)return{type:"ERC20",contractAddress:D.contract_address,amount:D.amount};throw new Error("Bid sell items must be ERC20")})),he=D.buy.map((D=>{if("ERC721"===D.type)return{type:"ERC721",contractAddress:D.contract_address,tokenId:D.token_id};if("ERC1155"===D.type)return{type:"ERC1155",contractAddress:D.contract_address,tokenId:D.token_id,amount:D.amount};throw new Error("Bid buy items must either ERC721 or ERC1155")}));return{id:D.id,type:D.type,chain:D.chain,accountAddress:D.account_address,sell:te,buy:he,fees:D.fees.map((D=>({amount:D.amount,recipientAddress:D.recipient_address,type:D.type}))),status:D.status,fillStatus:D.fill_status,startAt:D.start_at,endAt:D.end_at,salt:D.salt,signature:D.signature,orderHash:D.order_hash,protocolData:{orderType:D.protocol_data.order_type,counter:D.protocol_data.counter,seaportAddress:D.protocol_data.seaport_address,seaportVersion:D.protocol_data.seaport_version,zoneAddress:D.protocol_data.zone_address},createdAt:D.created_at,updatedAt:D.updated_at}}function mapCollectionBidFromOpenApiOrder(D){if(D.type!==yG.type.COLLECTION_BID)throw new Error("Order type must be COLLECTION_BID");const te=D.sell.map((D=>{if("ERC20"===D.type)return{type:"ERC20",contractAddress:D.contract_address,amount:D.amount};throw new Error("Collection bid sell items must be ERC20")})),he=D.buy.map((D=>{if("ERC721_COLLECTION"===D.type)return{type:"ERC721_COLLECTION",contractAddress:D.contract_address,amount:D.amount};if("ERC1155_COLLECTION"===D.type)return{type:"ERC1155_COLLECTION",contractAddress:D.contract_address,amount:D.amount};throw new Error("Collection bid buy items must either ERC721_COLLECTION or ERC1155_COLLECTION")}));return{id:D.id,type:D.type,chain:D.chain,accountAddress:D.account_address,sell:te,buy:he,fees:D.fees.map((D=>({amount:D.amount,recipientAddress:D.recipient_address,type:D.type}))),status:D.status,fillStatus:D.fill_status,startAt:D.start_at,endAt:D.end_at,salt:D.salt,signature:D.signature,orderHash:D.order_hash,protocolData:{orderType:D.protocol_data.order_type,counter:D.protocol_data.counter,seaportAddress:D.protocol_data.seaport_address,seaportVersion:D.protocol_data.seaport_version,zoneAddress:D.protocol_data.zone_address},createdAt:D.created_at,updatedAt:D.updated_at}}function mapOrderFromOpenApiOrder(D){switch(D.type){case yG.type.LISTING:return mapListingFromOpenApiOrder(D);case yG.type.BID:return mapBidFromOpenApiOrder(D);case yG.type.COLLECTION_BID:return mapCollectionBidFromOpenApiOrder(D);default:return exhaustiveSwitch(D.type)}}function mapFromOpenApiTrade(D){const te=D.buy.map((D=>{if("NATIVE"===D.type)return{type:"NATIVE",amount:D.amount};if("ERC20"===D.type)return{type:"ERC20",contractAddress:D.contract_address,amount:D.amount};if("ERC721"===D.type)return{type:"ERC721",contractAddress:D.contract_address,tokenId:D.token_id};if("ERC1155"===D.type)return{type:"ERC1155",contractAddress:D.contract_address,tokenId:D.token_id,amount:D.amount};throw new Error("Buy items must be NATIVE, ERC20, ERC721 or ERC1155")})),he=D.sell.map((D=>{if("ERC20"===D.type)return{type:"ERC20",contractAddress:D.contract_address,amount:D.amount};if("ERC721"===D.type)return{type:"ERC721",contractAddress:D.contract_address,tokenId:D.token_id};if("ERC1155"===D.type)return{type:"ERC1155",contractAddress:D.contract_address,tokenId:D.token_id,amount:D.amount};throw new Error("Sell items must be ERC20, ERC721 or ERC1155")}));return{id:D.id,orderId:D.order_id,buy:te,sell:he,buyerFees:D.buyer_fees.map((D=>({amount:D.amount,recipientAddress:D.recipient_address,type:D.type}))),fees:D.fees.map((D=>({amount:D.amount,recipientAddress:D.recipient_address,type:D.type}))),chain:D.chain,indexedAt:D.indexed_at,blockchainMetadata:{blockNumber:D.blockchain_metadata.block_number,logIndex:D.blockchain_metadata.log_index,transactionHash:D.blockchain_metadata.transaction_hash,transactionIndex:D.blockchain_metadata.transaction_index},buyerAddress:D.buyer_address,makerAddress:D.maker_address,sellerAddress:D.seller_address,takerAddress:D.taker_address}}function mapFromOpenApiPage(D){return{nextCursor:D.next_cursor,previousCursor:D.previous_cursor}}!function(D){var te;(te=D.cancellation_type||(D.cancellation_type={})).ON_CHAIN="ON_CHAIN",te.OFF_CHAIN="OFF_CHAIN",te.UNDERFUNDED="UNDERFUNDED"}(lG||(lG={})),function(D){(D.reason_code||(D.reason_code={})).FILLED="FILLED"}(pG||(pG={})),function(D){var te;(te=D.type||(D.type={})).ROYALTY="ROYALTY",te.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",te.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",te.PROTOCOL="PROTOCOL"}(hG||(hG={})),function(D){var te;(te=D.type||(D.type={})).LISTING="LISTING",te.BID="BID",te.COLLECTION_BID="COLLECTION_BID"}(yG||(yG={})),function(D){D.PENDING="PENDING",D.ACTIVE="ACTIVE",D.INACTIVE="INACTIVE",D.FILLED="FILLED",D.EXPIRED="EXPIRED",D.CANCELLED="CANCELLED"}(mG||(mG={})),function(D){var te;(te=D.order_type||(D.order_type={})).FULL_RESTRICTED="FULL_RESTRICTED",te.PARTIAL_RESTRICTED="PARTIAL_RESTRICTED"}(bG||(bG={})),function(D){D.MAKER_ECOSYSTEM="MAKER_ECOSYSTEM",D.TAKER_ECOSYSTEM="TAKER_ECOSYSTEM",D.PROTOCOL="PROTOCOL",D.ROYALTY="ROYALTY"}(gG||(gG={})),function(D){D.TRANSACTION="TRANSACTION",D.SIGNABLE="SIGNABLE"}(vG||(vG={})),function(D){D.APPROVAL="APPROVAL",D.FULFILL_ORDER="FULFILL_ORDER",D.CANCEL="CANCEL"}(wG||(wG={})),function(D){D.CREATE_LISTING="CREATE_ORDER",D.CREATE_ORDER="CREATE_ORDER",D.OFF_CHAIN_CANCELLATION="OFF_CHAIN_CANCELLATION"}(_G||(_G={}));const TG="ImmutableSeaport",AG="1.5",EG={OrderComponents:[{name:"offerer",type:"address"},{name:"zone",type:"address"},{name:"offer",type:"OfferItem[]"},{name:"consideration",type:"ConsiderationItem[]"},{name:"orderType",type:"uint8"},{name:"startTime",type:"uint256"},{name:"endTime",type:"uint256"},{name:"zoneHash",type:"bytes32"},{name:"salt",type:"uint256"},{name:"conduitKey",type:"bytes32"},{name:"counter",type:"uint256"}],OfferItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"}],ConsiderationItem:[{name:"itemType",type:"uint8"},{name:"token",type:"address"},{name:"identifierOrCriteria",type:"uint256"},{name:"startAmount",type:"uint256"},{name:"endAmount",type:"uint256"},{name:"recipient",type:"address"}]};var PG,SG,CG,IG;!function(D){D[D.FULL_OPEN=0]="FULL_OPEN",D[D.PARTIAL_OPEN=1]="PARTIAL_OPEN",D[D.FULL_RESTRICTED=2]="FULL_RESTRICTED",D[D.PARTIAL_RESTRICTED=3]="PARTIAL_RESTRICTED"}(PG||(PG={})),function(D){D[D.NATIVE=0]="NATIVE",D[D.ERC20=1]="ERC20",D[D.ERC721=2]="ERC721",D[D.ERC1155=3]="ERC1155",D[D.ERC721_WITH_CRITERIA=4]="ERC721_WITH_CRITERIA",D[D.ERC1155_WITH_CRITERIA=5]="ERC1155_WITH_CRITERIA"}(SG||(SG={})),function(D){D[D.OFFER=0]="OFFER",D[D.CONSIDERATION=1]="CONSIDERATION"}(CG||(CG={})),function(D){D[D.ETH_TO_ERC721=0]="ETH_TO_ERC721",D[D.ETH_TO_ERC1155=1]="ETH_TO_ERC1155",D[D.ERC20_TO_ERC721=2]="ERC20_TO_ERC721",D[D.ERC20_TO_ERC1155=3]="ERC20_TO_ERC1155",D[D.ERC721_TO_ERC20=4]="ERC721_TO_ERC20",D[D.ERC1155_TO_ERC20=5]="ERC1155_TO_ERC20"}(IG||(IG={}));const RG={integer:0,address:zeroPadValue("0x",20),bool:!1,bytes:"0x",string:""},isNullish=D=>void 0!==D&&(null!=D&&(["string","number"].includes(typeof D)&&0n===BigInt(D)||Array.isArray(D)&&D.every(isNullish)||"object"==typeof D&&Object.values(D).every(isNullish)||"boolean"==typeof D&&!1===D));class DefaultGetter{types;defaultValues={};constructor(D){this.types=D;for(const te in D){const D=this.getDefaultValue(te);if(this.defaultValues[te]=D,!isNullish(D))throw new Error(`Got non-empty value for type ${te} in default generator: ${D}`)}}static from(D,te){const{defaultValues:he}=new DefaultGetter(D);return te?he[te]:he}getDefaultValue(D){if(this.defaultValues[D])return this.defaultValues[D];const te=function getDefaultForBaseType(D){const[,te]=D.match(/^bytes(\d+)$/)??[];return te?zeroPadValue("0x",parseInt(te)):(D.match(/^(u?)int(\d*)$/)&&(D="integer"),RG[D])}(D);if(void 0!==te)return te;const he=D.match(/^(.*)(\x5b(\d*)\x5d)$/);if(he){const D=he[1],te=parseInt(he[3]);if(te>0){const he=this.getDefaultValue(D);return Array(te).fill(he)}return[]}const ye=this.types[D];if(ye)return ye.reduce(((D,{name:te,type:he})=>({...D,[te]:this.getDefaultValue(he)})),{});throw new Error(`unknown type: ${D}`)}}const chunk=(D,te)=>((D,te)=>Array(D).fill(0).map(((D,he)=>te(he))))(Math.ceil(D.length/te),(he=>D.slice(he*te,(he+1)*te))),hexToBuffer=D=>Buffer.from(D.slice(2),"hex"),bufferKeccak=D=>hexToBuffer(keccak256$1(D)),hashConcat=D=>bufferKeccak(concat$1(D)),fillArray=(D,te,he)=>(te>D.length&&D.push(...Array(te-D.length).fill(he)),D),getNextLayer=D=>chunk(D,2).map(hashConcat);class Eip712MerkleTree{types;rootType;leafType;elements;depth;tree;leafHasher;defaultNode;defaultLeaf;encoder;get completedSize(){return 2**this.depth}getCompleteElements(){const{elements:D}=this;return fillArray([...D],this.completedSize,this.defaultNode)}getCompleteLeaves(){const D=this.elements.map(this.leafHasher);return fillArray([...D],this.completedSize,this.defaultLeaf)}get root(){return this.tree.getHexRoot()}getProof(D){const te=this.getCompleteLeaves()[D];return{leaf:te,proof:this.tree.getHexProof(te,D),root:this.tree.getHexRoot()}}getEncodedProofAndSignature(D,te){const{proof:he}=this.getProof(D);return((D,te,he=`0x${"ff".repeat(64)}`)=>concat$1([he,`0x${D.toString(16).padStart(6,"0")}`,TI.defaultAbiCoder().encode([`uint256[${te.length}]`],[te])]))(D,he,te)}getDataToSign(){let D=this.getCompleteElements();for(;D.length>2;)D=chunk(D,2);return D}add(D){this.elements.push(D)}getBulkOrderHash(){const D=this.encoder.hashStruct("BulkOrder",{tree:this.getDataToSign()}),te=this.getCompleteLeaves().map(hexToBuffer),he=(ye=((D,te=!0)=>{if(0===D.length)throw new Error("empty tree");const he=D.map((D=>{const he=Buffer.isBuffer(D)?D:hexToBuffer(D);return te?bufferKeccak(he):he})),ye=[he];for(;ye[ye.length-1].length>1;)ye.push(getNextLayer(ye[ye.length-1]));return ye[ye.length-1][0]})(te,!1),toBeHex(ye.toString("hex")));var ye;const be=keccak256$1(toUtf8Bytes$1(this.encoder.types.BulkOrder[0].type));if(keccak256$1(concat$1([be,he]))!==D)throw new Error("expected derived bulk order hash to match");return D}constructor(D,te,he,ye,be){this.types=D,this.rootType=te,this.leafType=he,this.elements=ye,this.depth=be;const ve=TypedDataEncoder.from(D);var we,_e;this.encoder=ve,this.leafHasher=D=>ve.hashStruct(he,D),this.defaultNode=DefaultGetter.from(D,he),this.defaultLeaf=this.leafHasher(this.defaultNode),this.tree=(we=this.getCompleteLeaves(),_e=this.defaultLeaf,new pk.MerkleTree(we.map(hexToBuffer),bufferKeccak,{complete:!0,sort:!1,hashLeaves:!1,fillDefaultHash:hexToBuffer(_e)}))}}function getBulkOrderTree(D,te=0,he=function getBulkOrderTreeHeight(D){return Math.max(Math.ceil(Math.log2(D)),1)}(D.length+te)){const ye=function getBulkOrderTypes(D){return{...EG,BulkOrder:[{name:"tree",type:`OrderComponents${"[2]".repeat(D)}`}]}}(he),be=DefaultGetter.from(ye,"OrderComponents");let ve=[...D];te>0&&(ve=[...fillArray([],te,be),...D]);return new Eip712MerkleTree(ye,"BulkOrder","OrderComponents",ve,he)}function orderTypeStringToEnum(D){if([PG.FULL_OPEN,PG.PARTIAL_OPEN,PG.FULL_RESTRICTED,PG.PARTIAL_RESTRICTED].includes(Number(D)))return Number(D);throw new Error(`Unknown order type ${D}`)}function itemTypeStringToEnum(D){if([SG.NATIVE,SG.ERC20,SG.ERC721,SG.ERC1155,SG.ERC721_WITH_CRITERIA,SG.ERC1155_WITH_CRITERIA].includes(Number(D)))return Number(D);throw new Error(`Unknown item type ${D}`)}function mapImmutableItemToSeaportOfferItem(D){switch(D.type){case"NATIVE":throw new Error("NATIVE items are not supported in the offer");case"ERC20":return{itemType:SG.ERC20.valueOf(),token:D.contract_address,identifierOrCriteria:"0",startAmount:D.amount,endAmount:D.amount};case"ERC721":return{itemType:SG.ERC721.valueOf(),token:D.contract_address,identifierOrCriteria:D.token_id,startAmount:"1",endAmount:"1"};case"ERC1155":return{itemType:SG.ERC1155.valueOf(),token:D.contract_address,identifierOrCriteria:D.token_id,startAmount:D.amount,endAmount:D.amount};case"ERC721_COLLECTION":throw new Error("ERC721_COLLECTION items are not supported in the offer");case"ERC1155_COLLECTION":throw new Error("ERC1155_COLLECTION items are not supported in the offer");default:return exhaustiveSwitch()}}function mapImmutableOrderToSeaportOrderComponents(D){const te=D.sell.map(mapImmutableItemToSeaportOfferItem),he=D.buy.map((te=>function mapImmutableItemToSeaportConsiderationItem(D,te){switch(D.type){case"NATIVE":return{itemType:SG.NATIVE.valueOf(),startAmount:D.amount,endAmount:D.amount,token:bi,identifierOrCriteria:"0",recipient:te};case"ERC20":return{itemType:SG.ERC20.valueOf(),startAmount:D.amount,endAmount:D.amount,token:D.contract_address,identifierOrCriteria:"0",recipient:te};case"ERC721":return{itemType:SG.ERC721.valueOf(),startAmount:"1",endAmount:"1",token:D.contract_address,identifierOrCriteria:D.token_id,recipient:te};case"ERC1155":return{itemType:SG.ERC1155.valueOf(),startAmount:D.amount,endAmount:D.amount,token:D.contract_address,identifierOrCriteria:D.token_id,recipient:te};case"ERC721_COLLECTION":return{itemType:SG.ERC721_WITH_CRITERIA.valueOf(),startAmount:D.amount,endAmount:D.amount,token:D.contract_address,identifierOrCriteria:"0",recipient:te};case"ERC1155_COLLECTION":return{itemType:SG.ERC1155_WITH_CRITERIA.valueOf(),startAmount:D.amount,endAmount:D.amount,token:D.contract_address,identifierOrCriteria:"0",recipient:te};default:return exhaustiveSwitch()}}(te,D.account_address))),ye=function(D){switch(D){case yG.type.LISTING:return he[0];case yG.type.BID:case yG.type.COLLECTION_BID:return te[0];default:return exhaustiveSwitch()}}(D.type),be=function(D){switch(D){case bG.order_type.FULL_RESTRICTED:return PG.FULL_RESTRICTED;case bG.order_type.PARTIAL_RESTRICTED:return PG.PARTIAL_RESTRICTED;default:return exhaustiveSwitch()}}(D.protocol_data.order_type),ve=D.fees.map((D=>({amount:D.amount,itemType:ye.itemType,recipient:D.recipient_address,token:ye.token,identifierOrCriteria:ye.identifierOrCriteria})));return{orderComponents:{offerer:D.account_address,zone:D.protocol_data.zone_address,offer:te,consideration:he,orderType:be.valueOf(),startTime:Math.round(new Date(D.start_at).getTime()/1e3).toString(),endTime:Math.round(new Date(D.end_at).getTime()/1e3).toString(),zoneHash:Qi,salt:D.salt,conduitKey:Qi,counter:D.protocol_data.counter,totalOriginalConsiderationItems:he.length},tips:ve}}function prepareTransaction(D,te,he){return async()=>{const ye=await D.buildTransaction(),be={to:ye.to,from:he,type:ye.type,maxFeePerGas:ye.maxFeePerGas?Li.from(ye.maxFeePerGas):void 0,maxPriorityFeePerGas:ye.maxPriorityFeePerGas?Li.from(ye.maxPriorityFeePerGas):void 0,value:ye.value?Li.from(ye.value):void 0,data:ye.data,nonce:ye.nonce,chainId:te};return be.gasLimit=Li.from(await D.estimateGas()),be.gasLimit=be.gasLimit.add(be.gasLimit.div(5)),be}}function mapImmutableSdkItemToSeaportSdkCreateInputItem(D){switch(D.type){case"ERC20":return{token:D.contractAddress,amount:D.amount};case"ERC721":return{itemType:SG.ERC721.valueOf(),token:D.contractAddress,identifier:D.tokenId};case"ERC1155":return{itemType:SG.ERC1155.valueOf(),token:D.contractAddress,identifier:D.tokenId,amount:D.amount};default:return exhaustiveSwitch()}}function mapImmutableSdkItemToSeaportSdkConsiderationInputItem(D,te){switch(D.type){case"NATIVE":return{amount:D.amount,recipient:te};case"ERC20":return{token:D.contractAddress,amount:D.amount,recipient:te};case"ERC721":return{itemType:SG.ERC721.valueOf(),token:D.contractAddress,identifier:D.tokenId,recipient:te};case"ERC1155":return{itemType:SG.ERC1155.valueOf(),token:D.contractAddress,identifier:D.tokenId,amount:D.amount,recipient:te};case"ERC721_COLLECTION":return{itemType:SG.ERC721.valueOf(),token:D.contractAddress,amount:D.amount,identifiers:[],recipient:te};case"ERC1155_COLLECTION":return{itemType:SG.ERC1155.valueOf(),token:D.contractAddress,amount:D.amount,identifiers:[],recipient:te};default:return exhaustiveSwitch()}}class Seaport{seaportLibFactory;provider;seaportContractAddress;zoneContractAddress;rateLimitingKey;constructor(D,te,he,ye,be){this.seaportLibFactory=D,this.provider=te,this.seaportContractAddress=he,this.zoneContractAddress=ye,this.rateLimitingKey=be}async prepareBulkSeaportOrders(D,te){const{actions:he}=await this.createSeaportOrders(D,te),ye=he.filter((D=>"approval"===D.type)),be=await this.provider.getNetwork(),ve=ye.map((te=>({type:vG.TRANSACTION,purpose:wG.APPROVAL,buildTransaction:prepareTransaction(te.transactionMethods,be.chainId,D)}))),we=he.find((D=>"createBulk"===D.type));if(!we)throw new Error("No create bulk order action found");const _e=await we.getMessageToSign(),{components:Pe,types:Ie,value:Re}=function getBulkOrderComponentsFromMessage(D){const te=JSON.parse(D),he=te.message.tree.flat(1/0).filter((D=>"0x0000000000000000000000000000000000000000"!==D.offerer)).map((D=>({...D,orderType:orderTypeStringToEnum(D.orderType),salt:Li.from(D.salt).toHexString(),offer:D.offer.map((D=>({...D,itemType:itemTypeStringToEnum(D.itemType)}))),consideration:D.consideration.map((D=>({...D,itemType:itemTypeStringToEnum(D.itemType)})))})));return{components:he,types:te.types,value:te.message}}(_e);return ve.push({type:vG.SIGNABLE,purpose:_G.CREATE_ORDER,message:await this.getTypedDataFromBulkOrderComponents(Ie,Re)}),{actions:ve,preparedOrders:Pe.map((D=>({orderComponents:D,orderHash:this.getSeaportLib().getOrderHash(D)})))}}async prepareSeaportOrder(D,te,he,ye,be,ve){const{actions:we}=await this.createSeaportOrder(D,te,he,ye,be,ve),_e=[],Pe=we.find((D=>"approval"===D.type));Pe&&_e.push({type:vG.TRANSACTION,purpose:wG.APPROVAL,buildTransaction:prepareTransaction(Pe.transactionMethods,(await this.provider.getNetwork()).chainId,D)});const Ie=we.find((D=>"create"===D.type));if(!Ie)throw new Error("No create order action found");const Re=function getOrderComponentsFromMessage(D){const te=JSON.parse(D).message;return{...te,orderType:orderTypeStringToEnum(te.orderType),salt:Li.from(te.salt).toHexString(),offer:te.offer.map((D=>({...D,itemType:itemTypeStringToEnum(D.itemType)}))),consideration:te.consideration.map((D=>({...D,itemType:itemTypeStringToEnum(D.itemType)})))}}(await Ie.getMessageToSign());return _e.push({type:vG.SIGNABLE,purpose:_G.CREATE_ORDER,message:await this.getTypedDataFromOrderComponents(Re)}),{actions:_e,orderComponents:Re,orderHash:this.getSeaportLib().getOrderHash(Re)}}async fulfillOrder(D,te,he,ye,be){const{orderComponents:ve,tips:we}=mapImmutableOrderToSeaportOrderComponents(D),_e=this.getSeaportLib(D),Pe=(await this.provider.getNetwork()).chainId,Ie={order:{parameters:ve,signature:D.signature},unitsToFill:ye,extraData:he,tips:we};be&&(Ie.considerationCriteria=be);const{actions:Re}=await _e.fulfillOrders({accountAddress:te,fulfillOrderDetails:[Ie]}),ke=[],Oe=Re.filter((D=>"approval"===D.type));Oe.length>0&&Oe.forEach((D=>{ke.push({type:vG.TRANSACTION,buildTransaction:prepareTransaction(D.transactionMethods,Pe,te),purpose:wG.APPROVAL})}));const xe=Re.find((D=>"exchange"===D.type));if(!xe)throw new Error("No exchange action found");return ke.push({type:vG.TRANSACTION,buildTransaction:prepareTransaction(xe.transactionMethods,Pe,te),purpose:wG.FULFILL_ORDER}),{actions:ke,expiration:Seaport.getExpirationISOTimeFromExtraData(he),order:mapOrderFromOpenApiOrder(D)}}async fulfillBulkOrders(D,te){const he=D.map((D=>{const{orderComponents:te,tips:he}=mapImmutableOrderToSeaportOrderComponents(D.order),ye={order:{parameters:te,signature:D.order.signature},unitsToFill:D.unitsToFill,extraData:D.extraData,tips:he};return D.considerationCriteria&&D.considerationCriteria.length>0&&(ye.considerationCriteria=D.considerationCriteria),ye})),{actions:ye}=await this.getSeaportLib().fulfillOrders({fulfillOrderDetails:he,accountAddress:te}),be=[],ve=ye.filter((D=>"approval"===D.type)),we=(await this.provider.getNetwork()).chainId;ve.length>0&&ve.forEach((D=>{be.push({type:vG.TRANSACTION,buildTransaction:prepareTransaction(D.transactionMethods,we,te),purpose:wG.APPROVAL})}));const _e=ye.find((D=>"exchange"===D.type));if(!_e)throw new Error("No exchange action found");return be.push({type:vG.TRANSACTION,buildTransaction:prepareTransaction(_e.transactionMethods,(await this.provider.getNetwork()).chainId,te),purpose:wG.FULFILL_ORDER}),{actions:be,expiration:he.map((D=>Seaport.getExpirationISOTimeFromExtraData(D.extraData))).reduce(((D,te)=>new Date(D)<new Date(te)?D:te))}}async cancelOrders(D,te){const he=D.map((D=>mapImmutableOrderToSeaportOrderComponents(D).orderComponents)),ye=this.getSeaportLib(D[0]),be=await ye.cancelOrders(he,te);return{type:vG.TRANSACTION,buildTransaction:prepareTransaction(be,(await this.provider.getNetwork()).chainId,te),purpose:wG.CANCEL}}createSeaportOrders(D,te){return this.getSeaportLib().createBulkOrders(te.map((te=>{const{offerItem:he,considerationItem:ye,allowPartialFills:be,orderStart:ve,orderExpiry:we}=te;return{allowPartialFills:be,offer:[mapImmutableSdkItemToSeaportSdkCreateInputItem(he)],consideration:[mapImmutableSdkItemToSeaportSdkConsiderationInputItem(ye,D)],startTime:(ve.getTime()/1e3).toFixed(0),endTime:(we.getTime()/1e3).toFixed(0),zone:this.zoneContractAddress,restrictedByZone:!0}})),D)}createSeaportOrder(D,te,he,ye,be,ve){return this.getSeaportLib().createOrder({allowPartialFills:ye,offer:[mapImmutableSdkItemToSeaportSdkCreateInputItem(te)],consideration:[mapImmutableSdkItemToSeaportSdkConsiderationInputItem(he,D)],startTime:(be.getTime()/1e3).toFixed(0),endTime:(ve.getTime()/1e3).toFixed(0),zone:this.zoneContractAddress,restrictedByZone:!0},D)}async getTypedDataFromBulkOrderComponents(D,te){delete D.EIP712Domain;const{chainId:he}=await this.provider.getNetwork();return{domain:{name:TG,version:AG,chainId:he,verifyingContract:this.seaportContractAddress},types:D,value:te}}async getTypedDataFromOrderComponents(D){const{chainId:te}=await this.provider.getNetwork();return{domain:{name:TG,version:AG,chainId:te,verifyingContract:this.seaportContractAddress},types:EG,value:D}}getSeaportLib(D){const te=D?.protocol_data?.seaport_address??this.seaportContractAddress;return this.seaportLibFactory.create(te,this.rateLimitingKey)}static getExpirationISOTimeFromExtraData(D){const te=D.slice(44,60),he=parseInt(te,16);return new Date(1e3*he).toISOString()}}function mapSeaportItemToImmutableItem(D){switch(D.itemType){case SG.NATIVE:return{type:"NATIVE",amount:D.startAmount};case SG.ERC20:return{type:"ERC20",contract_address:D.token,amount:D.startAmount};case SG.ERC721:return{type:"ERC721",contract_address:D.token,token_id:D.identifierOrCriteria};case SG.ERC1155:return{type:"ERC1155",contract_address:D.token,token_id:D.identifierOrCriteria,amount:D.startAmount};case SG.ERC721_WITH_CRITERIA:return{type:"ERC721_COLLECTION",contract_address:D.token,amount:D.startAmount};case SG.ERC1155_WITH_CRITERIA:return{type:"ERC1155_COLLECTION",contract_address:D.token,amount:D.startAmount};default:return exhaustiveSwitch(D.itemType)}}function mapSeaportItemToImmutableERC20Item(D){if(D.itemType!==SG.ERC20)throw new Error(`Expected ERC20 item, got ${D.itemType}`);return{type:"ERC20",contract_address:D.token,amount:D.startAmount}}function mapSeaportItemToImmutableAssetCollectionItem(D){switch(D.itemType){case SG.ERC721_WITH_CRITERIA:return{type:"ERC721_COLLECTION",contract_address:D.token,amount:D.startAmount};case SG.ERC1155_WITH_CRITERIA:return{type:"ERC1155_COLLECTION",contract_address:D.token,amount:D.startAmount};case SG.ERC20:case SG.NATIVE:case SG.ERC721:case SG.ERC1155:throw new Error(`Unsupported item type ${D.itemType}`);default:return exhaustiveSwitch(D.itemType)}}function mapSeaportOrderTypeToImmutableProtocolDataOrderType(D){switch(D){case PG.FULL_RESTRICTED:return bG.order_type.FULL_RESTRICTED;case PG.PARTIAL_RESTRICTED:return bG.order_type.PARTIAL_RESTRICTED;case PG.FULL_OPEN:case PG.PARTIAL_OPEN:throw new Error(`Unsupported order type ${D}`);default:return exhaustiveSwitch()}}class ImmutableApiClient{orderbookService;chainName;seaportAddress;constructor(D,te,he){this.orderbookService=D,this.chainName=te,this.seaportAddress=he}async fulfillmentData(D){return this.orderbookService.fulfillmentData({chainName:this.chainName,requestBody:D})}async getListing(D){return this.orderbookService.getListing({chainName:this.chainName,listingId:D})}async getBid(D){return this.orderbookService.getBid({chainName:this.chainName,bidId:D})}async getCollectionBid(D){return this.orderbookService.getCollectionBid({chainName:this.chainName,collectionBidId:D})}async getTrade(D){return this.orderbookService.getTrade({chainName:this.chainName,tradeId:D})}async listListings(D){return this.orderbookService.listListings({chainName:this.chainName,...D})}async listBids(D){return this.orderbookService.listBids({chainName:this.chainName,...D})}async listCollectionBids(D){return this.orderbookService.listCollectionBids({chainName:this.chainName,...D})}async listTrades(D){return this.orderbookService.listTrades({chainName:this.chainName,...D})}async cancelOrders(D,te,he){return this.orderbookService.cancelOrders({chainName:this.chainName,requestBody:{account_address:te,orders:D,signature:he}})}async createListing({orderHash:D,orderComponents:te,orderSignature:he,makerFees:ye}){if(1!==te.offer.length)throw new Error("Only one item can be listed for a listing");if(1!==te.consideration.length)throw new Error("Only one item can be used as currency for a listing");if(![SG.ERC721,SG.ERC1155].includes(te.offer[0].itemType))throw new Error("Only ERC721 / ERC1155 tokens can be listed");if(![SG.NATIVE,SG.ERC20].includes(te.consideration[0].itemType))throw new Error("Only Native / ERC20 tokens can be used as currency items in a listing");return this.orderbookService.createListing({chainName:this.chainName,requestBody:{account_address:te.offerer,buy:te.consideration.map(mapSeaportItemToImmutableItem),fees:ye.map((D=>({type:hG.type.MAKER_ECOSYSTEM,amount:D.amount,recipient_address:D.recipientAddress}))),end_at:new Date(parseInt(`${te.endTime.toString()}000`,10)).toISOString(),order_hash:D,protocol_data:{order_type:mapSeaportOrderTypeToImmutableProtocolDataOrderType(te.orderType),zone_address:te.zone,seaport_address:this.seaportAddress,seaport_version:AG,counter:te.counter.toString()},salt:te.salt,sell:te.offer.map(mapSeaportItemToImmutableItem),signature:he,start_at:new Date(parseInt(`${te.startTime.toString()}000`,10)).toISOString()}})}async createBid({orderHash:D,orderComponents:te,orderSignature:he,makerFees:ye}){if(1!==te.offer.length)throw new Error("Only one item can be listed for a bid");if(1!==te.consideration.length)throw new Error("Only one item can be used as currency for a bid");if(SG.ERC20!==te.offer[0].itemType)throw new Error("Only ERC20 tokens can be used as the currency item in a bid");if(![SG.ERC721,SG.ERC1155].includes(te.consideration[0].itemType))throw new Error("Only ERC721 / ERC1155 tokens can be bid against");return this.orderbookService.createBid({chainName:this.chainName,requestBody:{account_address:te.offerer,buy:te.consideration.map(mapSeaportItemToImmutableItem),fees:ye.map((D=>({type:hG.type.MAKER_ECOSYSTEM,amount:D.amount,recipient_address:D.recipientAddress}))),end_at:new Date(parseInt(`${te.endTime.toString()}000`,10)).toISOString(),order_hash:D,protocol_data:{order_type:mapSeaportOrderTypeToImmutableProtocolDataOrderType(te.orderType),zone_address:te.zone,seaport_address:this.seaportAddress,seaport_version:AG,counter:te.counter.toString()},salt:te.salt,sell:te.offer.map(mapSeaportItemToImmutableERC20Item),signature:he,start_at:new Date(parseInt(`${te.startTime.toString()}000`,10)).toISOString()}})}async createCollectionBid({orderHash:D,orderComponents:te,orderSignature:he,makerFees:ye}){if(1!==te.offer.length)throw new Error("Only one item can be listed for a collection bid");if(1!==te.consideration.length)throw new Error("Only one item can be used as currency for a collection bid");if(SG.ERC20!==te.offer[0].itemType)throw new Error("Only ERC20 tokens can be used as the currency item in a collection bid");if(![SG.ERC721_WITH_CRITERIA,SG.ERC1155_WITH_CRITERIA].includes(te.consideration[0].itemType))throw new Error("Only ERC721 / ERC1155 collection based tokens can be bid against");return this.orderbookService.createCollectionBid({chainName:this.chainName,requestBody:{account_address:te.offerer,buy:te.consideration.map(mapSeaportItemToImmutableAssetCollectionItem),fees:ye.map((D=>({type:hG.type.MAKER_ECOSYSTEM,amount:D.amount,recipient_address:D.recipientAddress}))),end_at:new Date(parseInt(`${te.endTime.toString()}000`,10)).toISOString(),order_hash:D,protocol_data:{order_type:mapSeaportOrderTypeToImmutableProtocolDataOrderType(te.orderType),zone_address:te.zone,seaport_address:this.seaportAddress,seaport_version:AG,counter:te.counter.toString()},salt:te.salt,sell:te.offer.map(mapSeaportItemToImmutableERC20Item),signature:he,start_at:new Date(parseInt(`${te.startTime.toString()}000`,10)).toISOString()}})}}class ImmutableApiClientFactory{chainName;seaportAddress;orderbookClient;constructor(D,te,he,ye){this.chainName=te,this.seaportAddress=he,this.orderbookClient=new OrderBookClient({BASE:D,HEADERS:ye?{"x-api-key":ye}:void 0})}create(){return new ImmutableApiClient(this.orderbookClient.orders,this.chainName,this.seaportAddress)}}function getConfiguredProvider(D,te){return new tf({url:D,headers:te?{"x-api-key":te}:void 0})}class SeaportLibFactory{defaultSeaportContractAddress;provider;constructor(D,te){this.defaultSeaportContractAddress=D,this.provider=te}create(D,te){const he=D??this.defaultSeaportContractAddress;return new QO.Seaport(function convertToV6Provider(D,te){const he=new FetchRequest(D.connection.url);te&&he.setHeader("x-api-key",te);const ye=new JsonRpcProvider(he);return ye.getSigner=async function getSigner(D){null==D&&(D=0);const te=this.send("eth_accounts",[]);if("number"==typeof D){const he=await te;if(D>=he.length)throw new Error("no such account");return new JsonRpcSigner(this,he[D])}return new JsonRpcSigner(this,D)},ye}(this.provider,te),{balanceAndApprovalChecksOnOrderCreation:!0,overrides:{contractAddress:he}})}}class Orderbook{apiClient;seaport;orderbookConfig;constructor(D){const te=function getOrderbookConfig(D){switch(D.baseConfig.environment){case ra.SANDBOX:return{seaportContractAddress:"0x7d117aA8BD6D31c4fa91722f246388f38ab1942c",zoneContractAddress:"0x1004f9615E79462c711Ff05a386BdbA91a7628C3",apiEndpoint:"https://api.sandbox.immutable.com",chainName:"imtbl-zkevm-testnet",provider:getConfiguredProvider("https://rpc.testnet.immutable.com",D.baseConfig.rateLimitingKey)};case ra.PRODUCTION:return{seaportContractAddress:"0x6c12aD6F0bD274191075Eb2E78D7dA5ba6453424",zoneContractAddress:"0x1004f9615E79462c711Ff05a386BdbA91a7628C3",apiEndpoint:"https://api.immutable.com",chainName:"imtbl-zkevm-mainnet",provider:getConfiguredProvider("https://rpc.immutable.com",D.baseConfig.rateLimitingKey)};default:return null}}(D),he={...te,...D.overrides};if(D.overrides?.jsonRpcProviderUrl&&(he.provider=getConfiguredProvider(D.overrides?.jsonRpcProviderUrl,D.baseConfig.rateLimitingKey)),!he)throw new Error("Orderbook configuration not passed, please specify the environment under config.baseConfig.environment");this.orderbookConfig=he;const{apiEndpoint:ye,chainName:be}=this.orderbookConfig;if(!ye)throw new Error("API endpoint must be provided");this.apiClient=new ImmutableApiClientFactory(ye,be,this.orderbookConfig.seaportContractAddress,D.baseConfig.rateLimitingKey).create();const ve=new SeaportLibFactory(this.orderbookConfig.seaportContractAddress,this.orderbookConfig.provider);this.seaport=new Seaport(ve,this.orderbookConfig.provider,this.orderbookConfig.seaportContractAddress,this.orderbookConfig.zoneContractAddress,D.baseConfig.rateLimitingKey)}static defaultOrderExpiry(){return new Date(Date.now()+63072e6)}config(){return this.orderbookConfig}async getListing(D){return{result:mapListingFromOpenApiOrder((await this.apiClient.getListing(D)).result)}}async getBid(D){return{result:mapBidFromOpenApiOrder((await this.apiClient.getBid(D)).result)}}async getCollectionBid(D){return{result:mapCollectionBidFromOpenApiOrder((await this.apiClient.getCollectionBid(D)).result)}}async getTrade(D){return{result:mapFromOpenApiTrade((await this.apiClient.getTrade(D)).result)}}async listListings(D){const te=await this.apiClient.listListings(D);return{page:mapFromOpenApiPage(te.page),result:te.result.map(mapListingFromOpenApiOrder)}}async listBids(D){const te=await this.apiClient.listBids(D);return{page:mapFromOpenApiPage(te.page),result:te.result.map(mapBidFromOpenApiOrder)}}async listCollectionBids(D){const te=await this.apiClient.listCollectionBids(D);return{page:mapFromOpenApiPage(te.page),result:te.result.map(mapCollectionBidFromOpenApiOrder)}}async listTrades(D){const te=await this.apiClient.listTrades(D);return{page:mapFromOpenApiPage(te.page),result:te.result.map(mapFromOpenApiTrade)}}async prepareBulkListings({makerAddress:D,listingParams:te}){if(te.length>20)throw new Error("Bulk listing creation is limited to 20 orders");if(1===te.length){const he=await this.seaport.prepareSeaportOrder(D,te[0].sell,te[0].buy,"ERC1155"===te[0].sell.type,te[0].orderStart||new Date,te[0].orderExpiry||Orderbook.defaultOrderExpiry());return{actions:he.actions,completeListings:async D=>{const ye=await this.createListing({makerFees:te[0].makerFees,orderComponents:he.orderComponents,orderHash:he.orderHash,orderSignature:"string"==typeof D?D:D[0]});return{result:[{success:!0,orderHash:he.orderHash,order:ye.result}]}}}}if("0x"!==await this.orderbookConfig.provider.getCode(D)){Ln("orderbookmr","bulkListings",{walletType:"Passport",makerAddress:D,listingsCount:te.length});const he=await Promise.all(te.map((te=>this.seaport.prepareSeaportOrder(D,te.sell,te.buy,"ERC1155"===te.sell.type,te.orderStart||new Date,te.orderExpiry||Orderbook.defaultOrderExpiry())))),ye=[],be=he.flatMap((D=>{const te=[];return D.actions.forEach((he=>{if(he.type===vG.TRANSACTION){const be=D.orderComponents.offer[0].token;ye.includes(be)||(ye.push(be),te.push(he))}else te.push(he)})),te}));return{actions:be,completeListings:async D=>{if("string"==typeof D)throw new Error("A signature per listing must be provided for smart contract wallets");const ye=await Promise.all(he.map(((he,ye)=>{const be=D[ye];return this.apiClient.createListing({makerFees:te[ye].makerFees,orderComponents:he.orderComponents,orderHash:he.orderHash,orderSignature:be}).catch((()=>{}))})));return{result:ye.map(((D,te)=>({success:!!D,orderHash:he[te].orderHash,order:D?mapListingFromOpenApiOrder(D.result):void 0})))}}}}Ln("orderbookmr","bulkListings",{walletType:"EOA",makerAddress:D,listingsCount:te.length});const{actions:he,preparedOrders:ye}=await this.seaport.prepareBulkSeaportOrders(D,te.map((D=>({offerItem:D.sell,considerationItem:D.buy,allowPartialFills:"ERC1155"===D.sell.type,orderStart:D.orderStart||new Date,orderExpiry:D.orderExpiry||Orderbook.defaultOrderExpiry()}))));return{actions:he,completeListings:async D=>{const he="object"==typeof D;if(he&&1!==D.length)throw new Error("Only a single signature is expected for bulk listing creation");const be=ye.map((D=>D.orderComponents)),ve=function getBulkSeaportOrderSignatures(D,te){const he=getBulkOrderTree(te);return te.map(((te,ye)=>he.getEncodedProofAndSignature(ye,D)))}(he?D[0]:D,be),we=await Promise.all(be.map(((D,he)=>{const be=ve[he],we=ye[he],_e=te[he];return this.apiClient.createListing({orderComponents:D,orderHash:we.orderHash,orderSignature:be,makerFees:_e.makerFees}).catch((()=>{}))})));return{result:we.map(((D,te)=>({success:!!D,orderHash:ye[te].orderHash,order:D?mapListingFromOpenApiOrder(D.result):void 0})))}}}}async prepareListing({makerAddress:D,sell:te,buy:he,orderStart:ye,orderExpiry:be}){return this.seaport.prepareSeaportOrder(D,te,he,"ERC1155"===te.type,ye||new Date,be||Orderbook.defaultOrderExpiry())}async createListing(D){return{result:mapListingFromOpenApiOrder((await this.apiClient.createListing(D)).result)}}async prepareBid({makerAddress:D,sell:te,buy:he,orderStart:ye,orderExpiry:be}){return this.seaport.prepareSeaportOrder(D,te,he,"ERC1155"===he.type,ye||new Date,be||Orderbook.defaultOrderExpiry())}async createBid(D){return{result:mapBidFromOpenApiOrder((await this.apiClient.createBid(D)).result)}}async prepareCollectionBid({makerAddress:D,sell:te,buy:he,orderStart:ye,orderExpiry:be}){return this.seaport.prepareSeaportOrder(D,te,he,!0,ye||new Date,be||Orderbook.defaultOrderExpiry())}async createCollectionBid(D){return{result:mapCollectionBidFromOpenApiOrder((await this.apiClient.createCollectionBid(D)).result)}}async fulfillOrder(D,te,he,ye,be){const ve={order_id:D,taker_address:te,fees:he.map((D=>({type:hG.type.TAKER_ECOSYSTEM,amount:D.amount,recipient_address:D.recipientAddress})))},we=be?[{identifier:be,proof:[]}]:void 0;be&&(ve.token_id=be);const _e=await this.apiClient.fulfillmentData([ve]);if(_e.result.unfulfillable_orders?.length>0)throw new Error(`Unable to prepare fulfillment data: ${_e.result.unfulfillable_orders[0].reason}`);if(1!==_e.result.fulfillable_orders?.length)throw new Error("unexpected fulfillable order result length");const Pe=_e.result.fulfillable_orders[0].extra_data,Ie=_e.result.fulfillable_orders[0].order;if(Ie.status.name!==mG.ACTIVE)throw new Error(`Cannot fulfil order that is not active. Current status: ${Ie.status}`);return this.seaport.fulfillOrder(Ie,te,Pe,ye,we)}async fulfillBulkOrders(D,te){const he=D.map((D=>{const te="listingId"in D;return{orderId:te?D.listingId:D.orderId,takerFees:D.takerFees,amountToFill:D.amountToFill,tokenId:te?void 0:D.tokenId}})),ye=await this.apiClient.fulfillmentData(he.map((D=>({order_id:D.orderId,taker_address:te,fees:D.takerFees.map((D=>({type:hG.type.TAKER_ECOSYSTEM,amount:D.amount,recipient_address:D.recipientAddress}))),token_id:D?.tokenId}))));try{const D=ye.result.fulfillable_orders.map((D=>{const te=he.find((te=>te.orderId===D.order.id&&te.tokenId===D.token_id));if(!te){let te=`Could not find order for order ${D.order.id}`;throw D.token_id&&(te+=` and token ID ${D.token_id}`),new Error(te)}const ye=[];return te.tokenId&&ye.push({identifier:te.tokenId,proof:[]}),{extraData:D.extra_data,order:D.order,unitsToFill:te.amountToFill,considerationCriteria:ye}}));return{...await this.seaport.fulfillBulkOrders(D,te),fulfillableOrders:ye.result.fulfillable_orders.map((D=>mapOrderFromOpenApiOrder(D.order))),unfulfillableOrders:ye.result.unfulfillable_orders.map((D=>({orderId:D.order_id,tokenId:D.token_id,reason:D.reason}))),sufficientBalance:!0}}catch(D){if(String(D).includes("The fulfiller does not have the balances needed to fulfill."))return{fulfillableOrders:ye.result.fulfillable_orders.map((D=>mapOrderFromOpenApiOrder(D.order))),unfulfillableOrders:ye.result.unfulfillable_orders.map((D=>({orderId:D.order_id,reason:D.reason}))),sufficientBalance:!1};throw D}}async prepareOrderCancellations(D){const te={name:"imtbl-order-book",chainId:(await this.orderbookConfig.provider.getNetwork()).chainId,verifyingContract:this.orderbookConfig.seaportContractAddress},he={orders:D.map((D=>({id:D})))};return{signableAction:{purpose:_G.OFF_CHAIN_CANCELLATION,type:vG.SIGNABLE,message:{domain:te,types:{CancelPayload:[{name:"orders",type:"Order[]"}],Order:[{name:"id",type:"string"}]},value:he}}}}async cancelOrders(D,te,he){return this.apiClient.cancelOrders(D,te,he)}async cancelOrdersOnChain(D,te){const he=Promise.all(D.map((D=>this.apiClient.getListing(D).catch((D=>{if(404!==D.status)throw D}))))),ye=Promise.all(D.map((D=>this.apiClient.getBid(D).catch((D=>{if(404!==D.status)throw D}))))),be=Promise.all(D.map((D=>this.apiClient.getCollectionBid(D).catch((D=>{if(404!==D.status)throw D}))))),ve=[await Promise.all([he,ye,be])].flat(2).filter((D=>void 0!==D)).map((D=>D.result));if(ve.length!==D.length){const te=D.filter((D=>!ve.some((te=>te.id===D))));throw new Error(`Orders ${te} not found`)}for(const D of ve)if(D.account_address!==te.toLowerCase())throw new Error(`Only account ${D.account_address} can cancel order ${D.id}`);const we=ve.map((D=>D.protocol_data.seaport_address));if(1!==new Set(...[we]).size)throw new Error("Cannot cancel multiple orders from different seaport contracts. Please group your orderIds accordingly");return{cancellationAction:await this.seaport.cancelOrders(ve,te)}}}const kG={estimatedFulfillmentGasGwei:4e5};var OG=Object.freeze({__proto__:null,get ActionType(){return vG},get FeeType(){return gG},get OrderStatusName(){return mG},Orderbook:Orderbook,get SignablePurpose(){return _G},get TransactionPurpose(){return wG},constants:kG});function bind(D,te){return function wrap(){return D.apply(te,arguments)}}const{toString:xG}=Object.prototype,{getPrototypeOf:NG}=Object,MG=(D=>te=>{const he=xG.call(te);return D[he]||(D[he]=he.slice(8,-1).toLowerCase())})(Object.create(null)),kindOfTest=D=>(D=D.toLowerCase(),te=>MG(te)===D),typeOfTest=D=>te=>typeof te===D,{isArray:BG}=Array,FG=typeOfTest("undefined");const DG=kindOfTest("ArrayBuffer");const LG=typeOfTest("string"),UG=typeOfTest("function"),$G=typeOfTest("number"),isObject=D=>null!==D&&"object"==typeof D,isPlainObject=D=>{if("object"!==MG(D))return!1;const te=NG(D);return!(null!==te&&te!==Object.prototype&&null!==Object.getPrototypeOf(te)||Symbol.toStringTag in D||Symbol.iterator in D)},qG=kindOfTest("Date"),jG=kindOfTest("File"),HG=kindOfTest("Blob"),zG=kindOfTest("FileList"),WG=kindOfTest("URLSearchParams");function forEach(D,te,{allOwnKeys:he=!1}={}){if(null==D)return;let ye,be;if("object"!=typeof D&&(D=[D]),BG(D))for(ye=0,be=D.length;ye<be;ye++)te.call(null,D[ye],ye,D);else{const be=he?Object.getOwnPropertyNames(D):Object.keys(D),ve=be.length;let we;for(ye=0;ye<ve;ye++)we=be[ye],te.call(null,D[we],we,D)}}function findKey(D,te){te=te.toLowerCase();const he=Object.keys(D);let ye,be=he.length;for(;be-- >0;)if(ye=he[be],te===ye.toLowerCase())return ye;return null}const VG="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,isContextDefined=D=>!FG(D)&&D!==VG;const KG=(D=>te=>D&&te instanceof D)("undefined"!=typeof Uint8Array&&NG(Uint8Array)),JG=kindOfTest("HTMLFormElement"),XG=(({hasOwnProperty:D})=>(te,he)=>D.call(te,he))(Object.prototype),QG=kindOfTest("RegExp"),reduceDescriptors=(D,te)=>{const he=Object.getOwnPropertyDescriptors(D),ye={};forEach(he,((he,be)=>{let ve;!1!==(ve=te(he,be,D))&&(ye[be]=ve||he)})),Object.defineProperties(D,ye)},ZG="abcdefghijklmnopqrstuvwxyz",YG="0123456789",ej={DIGIT:YG,ALPHA:ZG,ALPHA_DIGIT:ZG+ZG.toUpperCase()+YG};const tj=kindOfTest("AsyncFunction");var rj={isArray:BG,isArrayBuffer:DG,isBuffer:function isBuffer(D){return null!==D&&!FG(D)&&null!==D.constructor&&!FG(D.constructor)&&UG(D.constructor.isBuffer)&&D.constructor.isBuffer(D)},isFormData:D=>{let te;return D&&("function"==typeof FormData&&D instanceof FormData||UG(D.append)&&("formdata"===(te=MG(D))||"object"===te&&UG(D.toString)&&"[object FormData]"===D.toString()))},isArrayBufferView:function isArrayBufferView(D){let te;return te="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(D):D&&D.buffer&&DG(D.buffer),te},isString:LG,isNumber:$G,isBoolean:D=>!0===D||!1===D,isObject:isObject,isPlainObject:isPlainObject,isUndefined:FG,isDate:qG,isFile:jG,isBlob:HG,isRegExp:QG,isFunction:UG,isStream:D=>isObject(D)&&UG(D.pipe),isURLSearchParams:WG,isTypedArray:KG,isFileList:zG,forEach:forEach,merge:function merge(){const{caseless:D}=isContextDefined(this)&&this||{},te={},assignValue=(he,ye)=>{const be=D&&findKey(te,ye)||ye;isPlainObject(te[be])&&isPlainObject(he)?te[be]=merge(te[be],he):isPlainObject(he)?te[be]=merge({},he):BG(he)?te[be]=he.slice():te[be]=he};for(let D=0,te=arguments.length;D<te;D++)arguments[D]&&forEach(arguments[D],assignValue);return te},extend:(D,te,he,{allOwnKeys:ye}={})=>(forEach(te,((te,ye)=>{he&&UG(te)?D[ye]=bind(te,he):D[ye]=te}),{allOwnKeys:ye}),D),trim:D=>D.trim?D.trim():D.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:D=>(65279===D.charCodeAt(0)&&(D=D.slice(1)),D),inherits:(D,te,he,ye)=>{D.prototype=Object.create(te.prototype,ye),D.prototype.constructor=D,Object.defineProperty(D,"super",{value:te.prototype}),he&&Object.assign(D.prototype,he)},toFlatObject:(D,te,he,ye)=>{let be,ve,we;const _e={};if(te=te||{},null==D)return te;do{for(be=Object.getOwnPropertyNames(D),ve=be.length;ve-- >0;)we=be[ve],ye&&!ye(we,D,te)||_e[we]||(te[we]=D[we],_e[we]=!0);D=!1!==he&&NG(D)}while(D&&(!he||he(D,te))&&D!==Object.prototype);return te},kindOf:MG,kindOfTest:kindOfTest,endsWith:(D,te,he)=>{D=String(D),(void 0===he||he>D.length)&&(he=D.length),he-=te.length;const ye=D.indexOf(te,he);return-1!==ye&&ye===he},toArray:D=>{if(!D)return null;if(BG(D))return D;let te=D.length;if(!$G(te))return null;const he=new Array(te);for(;te-- >0;)he[te]=D[te];return he},forEachEntry:(D,te)=>{const he=(D&&D[Symbol.iterator]).call(D);let ye;for(;(ye=he.next())&&!ye.done;){const he=ye.value;te.call(D,he[0],he[1])}},matchAll:(D,te)=>{let he;const ye=[];for(;null!==(he=D.exec(te));)ye.push(he);return ye},isHTMLForm:JG,hasOwnProperty:XG,hasOwnProp:XG,reduceDescriptors:reduceDescriptors,freezeMethods:D=>{reduceDescriptors(D,((te,he)=>{if(UG(D)&&-1!==["arguments","caller","callee"].indexOf(he))return!1;const ye=D[he];UG(ye)&&(te.enumerable=!1,"writable"in te?te.writable=!1:te.set||(te.set=()=>{throw Error("Can not rewrite read-only method '"+he+"'")}))}))},toObjectSet:(D,te)=>{const he={},define=D=>{D.forEach((D=>{he[D]=!0}))};return BG(D)?define(D):define(String(D).split(te)),he},toCamelCase:D=>D.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function replacer(D,te,he){return te.toUpperCase()+he})),noop:()=>{},toFiniteNumber:(D,te)=>(D=+D,Number.isFinite(D)?D:te),findKey:findKey,global:VG,isContextDefined:isContextDefined,ALPHABET:ej,generateString:(D=16,te=ej.ALPHA_DIGIT)=>{let he="";const{length:ye}=te;for(;D--;)he+=te[Math.random()*ye|0];return he},isSpecCompliantForm:function isSpecCompliantForm(D){return!!(D&&UG(D.append)&&"FormData"===D[Symbol.toStringTag]&&D[Symbol.iterator])},toJSONObject:D=>{const te=new Array(10),visit=(D,he)=>{if(isObject(D)){if(te.indexOf(D)>=0)return;if(!("toJSON"in D)){te[he]=D;const ye=BG(D)?[]:{};return forEach(D,((D,te)=>{const be=visit(D,he+1);!FG(be)&&(ye[te]=be)})),te[he]=void 0,ye}}return D};return visit(D,0)},isAsyncFn:tj,isThenable:D=>D&&(isObject(D)||UG(D))&&UG(D.then)&&UG(D.catch)};function AxiosError(D,te,he,ye,be){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=D,this.name="AxiosError",te&&(this.code=te),he&&(this.config=he),ye&&(this.request=ye),be&&(this.response=be)}rj.inherits(AxiosError,Error,{toJSON:function toJSON(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:rj.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const nj=AxiosError.prototype,aj={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((D=>{aj[D]={value:D}})),Object.defineProperties(AxiosError,aj),Object.defineProperty(nj,"isAxiosError",{value:!0}),AxiosError.from=(D,te,he,ye,be,ve)=>{const we=Object.create(nj);return rj.toFlatObject(D,we,(function filter(D){return D!==Error.prototype}),(D=>"isAxiosError"!==D)),AxiosError.call(we,D.message,te,he,ye,be),we.cause=D,we.name=D.name,ve&&Object.assign(we,ve),we};function isVisitable(D){return rj.isPlainObject(D)||rj.isArray(D)}function removeBrackets(D){return rj.endsWith(D,"[]")?D.slice(0,-2):D}function renderKey(D,te,he){return D?D.concat(te).map((function each(D,te){return D=removeBrackets(D),!he&&te?"["+D+"]":D})).join(he?".":""):te}const ij=rj.toFlatObject(rj,{},null,(function filter(D){return/^is[A-Z]/.test(D)}));function toFormData(D,te,he){if(!rj.isObject(D))throw new TypeError("target must be an object");te=te||new FormData;const ye=(he=rj.toFlatObject(he,{metaTokens:!0,dots:!1,indexes:!1},!1,(function defined(D,te){return!rj.isUndefined(te[D])}))).metaTokens,be=he.visitor||defaultVisitor,ve=he.dots,we=he.indexes,_e=(he.Blob||"undefined"!=typeof Blob&&Blob)&&rj.isSpecCompliantForm(te);if(!rj.isFunction(be))throw new TypeError("visitor must be a function");function convertValue(D){if(null===D)return"";if(rj.isDate(D))return D.toISOString();if(!_e&&rj.isBlob(D))throw new AxiosError("Blob is not supported. Use a Buffer instead.");return rj.isArrayBuffer(D)||rj.isTypedArray(D)?_e&&"function"==typeof Blob?new Blob([D]):Buffer.from(D):D}function defaultVisitor(D,he,be){let _e=D;if(D&&!be&&"object"==typeof D)if(rj.endsWith(he,"{}"))he=ye?he:he.slice(0,-2),D=JSON.stringify(D);else if(rj.isArray(D)&&function isFlatArray(D){return rj.isArray(D)&&!D.some(isVisitable)}(D)||(rj.isFileList(D)||rj.endsWith(he,"[]"))&&(_e=rj.toArray(D)))return he=removeBrackets(he),_e.forEach((function each(D,ye){!rj.isUndefined(D)&&null!==D&&te.append(!0===we?renderKey([he],ye,ve):null===we?he:he+"[]",convertValue(D))})),!1;return!!isVisitable(D)||(te.append(renderKey(be,he,ve),convertValue(D)),!1)}const Pe=[],Ie=Object.assign(ij,{defaultVisitor:defaultVisitor,convertValue:convertValue,isVisitable:isVisitable});if(!rj.isObject(D))throw new TypeError("data must be an object");return function build(D,he){if(!rj.isUndefined(D)){if(-1!==Pe.indexOf(D))throw Error("Circular reference detected in "+he.join("."));Pe.push(D),rj.forEach(D,(function each(D,ye){!0===(!(rj.isUndefined(D)||null===D)&&be.call(te,D,rj.isString(ye)?ye.trim():ye,he,Ie))&&build(D,he?he.concat(ye):[ye])})),Pe.pop()}}(D),te}function encode$2(D){const te={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(D).replace(/[!'()~]|%20|%00/g,(function replacer(D){return te[D]}))}function AxiosURLSearchParams(D,te){this._pairs=[],D&&toFormData(D,this,te)}const sj=AxiosURLSearchParams.prototype;function encode$1(D){return encodeURIComponent(D).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function buildURL(D,te,he){if(!te)return D;const ye=he&&he.encode||encode$1,be=he&&he.serialize;let ve;if(ve=be?be(te,he):rj.isURLSearchParams(te)?te.toString():new AxiosURLSearchParams(te,he).toString(ye),ve){const te=D.indexOf("#");-1!==te&&(D=D.slice(0,te)),D+=(-1===D.indexOf("?")?"?":"&")+ve}return D}sj.append=function append(D,te){this._pairs.push([D,te])},sj.toString=function toString(D){const te=D?function(te){return D.call(this,te,encode$2)}:encode$2;return this._pairs.map((function each(D){return te(D[0])+"="+te(D[1])}),"").join("&")};class InterceptorManager{constructor(){this.handlers=[]}use(D,te,he){return this.handlers.push({fulfilled:D,rejected:te,synchronous:!!he&&he.synchronous,runWhen:he?he.runWhen:null}),this.handlers.length-1}eject(D){this.handlers[D]&&(this.handlers[D]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(D){rj.forEach(this.handlers,(function forEachHandler(te){null!==te&&D(te)}))}}var oj={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},cj={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:AxiosURLSearchParams,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const dj="undefined"!=typeof window&&"undefined"!=typeof document,uj=(D=>dj&&["ReactNative","NativeScript","NS"].indexOf(D)<0)("undefined"!=typeof navigator&&navigator.product),fj="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts;var lj={...Object.freeze({__proto__:null,hasBrowserEnv:dj,hasStandardBrowserEnv:uj,hasStandardBrowserWebWorkerEnv:fj}),...cj};function formDataToJSON(D){function buildPath(D,te,he,ye){let be=D[ye++];if("__proto__"===be)return!0;const ve=Number.isFinite(+be),we=ye>=D.length;if(be=!be&&rj.isArray(he)?he.length:be,we)return rj.hasOwnProp(he,be)?he[be]=[he[be],te]:he[be]=te,!ve;he[be]&&rj.isObject(he[be])||(he[be]=[]);return buildPath(D,te,he[be],ye)&&rj.isArray(he[be])&&(he[be]=function arrayToObject(D){const te={},he=Object.keys(D);let ye;const be=he.length;let ve;for(ye=0;ye<be;ye++)ve=he[ye],te[ve]=D[ve];return te}(he[be])),!ve}if(rj.isFormData(D)&&rj.isFunction(D.entries)){const te={};return rj.forEachEntry(D,((D,he)=>{buildPath(function parsePropPath(D){return rj.matchAll(/\w+|\[(\w*)]/g,D).map((D=>"[]"===D[0]?"":D[1]||D[0]))}(D),he,te,0)})),te}return null}const pj={transitional:oj,adapter:["xhr","http"],transformRequest:[function transformRequest(D,te){const he=te.getContentType()||"",ye=he.indexOf("application/json")>-1,be=rj.isObject(D);be&&rj.isHTMLForm(D)&&(D=new FormData(D));if(rj.isFormData(D))return ye&&ye?JSON.stringify(formDataToJSON(D)):D;if(rj.isArrayBuffer(D)||rj.isBuffer(D)||rj.isStream(D)||rj.isFile(D)||rj.isBlob(D))return D;if(rj.isArrayBufferView(D))return D.buffer;if(rj.isURLSearchParams(D))return te.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),D.toString();let ve;if(be){if(he.indexOf("application/x-www-form-urlencoded")>-1)return function toURLEncodedForm(D,te){return toFormData(D,new lj.classes.URLSearchParams,Object.assign({visitor:function(D,te,he,ye){return lj.isNode&&rj.isBuffer(D)?(this.append(te,D.toString("base64")),!1):ye.defaultVisitor.apply(this,arguments)}},te))}(D,this.formSerializer).toString();if((ve=rj.isFileList(D))||he.indexOf("multipart/form-data")>-1){const te=this.env&&this.env.FormData;return toFormData(ve?{"files[]":D}:D,te&&new te,this.formSerializer)}}return be||ye?(te.setContentType("application/json",!1),function stringifySafely(D,te,he){if(rj.isString(D))try{return(te||JSON.parse)(D),rj.trim(D)}catch(D){if("SyntaxError"!==D.name)throw D}return(0,JSON.stringify)(D)}(D)):D}],transformResponse:[function transformResponse(D){const te=this.transitional||pj.transitional,he=te&&te.forcedJSONParsing,ye="json"===this.responseType;if(D&&rj.isString(D)&&(he&&!this.responseType||ye)){const he=!(te&&te.silentJSONParsing)&&ye;try{return JSON.parse(D)}catch(D){if(he){if("SyntaxError"===D.name)throw AxiosError.from(D,AxiosError.ERR_BAD_RESPONSE,this,null,this.response);throw D}}}return D}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:lj.classes.FormData,Blob:lj.classes.Blob},validateStatus:function validateStatus(D){return D>=200&&D<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};rj.forEach(["delete","get","head","post","put","patch"],(D=>{pj.headers[D]={}}));const hj=rj.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const yj=Symbol("internals");function normalizeHeader(D){return D&&String(D).trim().toLowerCase()}function normalizeValue(D){return!1===D||null==D?D:rj.isArray(D)?D.map(normalizeValue):String(D)}function matchHeaderValue(D,te,he,ye,be){return rj.isFunction(ye)?ye.call(this,te,he):(be&&(te=he),rj.isString(te)?rj.isString(ye)?-1!==te.indexOf(ye):rj.isRegExp(ye)?ye.test(te):void 0:void 0)}class AxiosHeaders{constructor(D){D&&this.set(D)}set(D,te,he){const ye=this;function setHeader(D,te,he){const be=normalizeHeader(te);if(!be)throw new Error("header name must be a non-empty string");const ve=rj.findKey(ye,be);(!ve||void 0===ye[ve]||!0===he||void 0===he&&!1!==ye[ve])&&(ye[ve||te]=normalizeValue(D))}const setHeaders=(D,te)=>rj.forEach(D,((D,he)=>setHeader(D,he,te)));return rj.isPlainObject(D)||D instanceof this.constructor?setHeaders(D,te):rj.isString(D)&&(D=D.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(D.trim())?setHeaders((D=>{const te={};let he,ye,be;return D&&D.split("\n").forEach((function parser(D){be=D.indexOf(":"),he=D.substring(0,be).trim().toLowerCase(),ye=D.substring(be+1).trim(),!he||te[he]&&hj[he]||("set-cookie"===he?te[he]?te[he].push(ye):te[he]=[ye]:te[he]=te[he]?te[he]+", "+ye:ye)})),te})(D),te):null!=D&&setHeader(te,D,he),this}get(D,te){if(D=normalizeHeader(D)){const he=rj.findKey(this,D);if(he){const D=this[he];if(!te)return D;if(!0===te)return function parseTokens(D){const te=Object.create(null),he=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let ye;for(;ye=he.exec(D);)te[ye[1]]=ye[2];return te}(D);if(rj.isFunction(te))return te.call(this,D,he);if(rj.isRegExp(te))return te.exec(D);throw new TypeError("parser must be boolean|regexp|function")}}}has(D,te){if(D=normalizeHeader(D)){const he=rj.findKey(this,D);return!(!he||void 0===this[he]||te&&!matchHeaderValue(0,this[he],he,te))}return!1}delete(D,te){const he=this;let ye=!1;function deleteHeader(D){if(D=normalizeHeader(D)){const be=rj.findKey(he,D);!be||te&&!matchHeaderValue(0,he[be],be,te)||(delete he[be],ye=!0)}}return rj.isArray(D)?D.forEach(deleteHeader):deleteHeader(D),ye}clear(D){const te=Object.keys(this);let he=te.length,ye=!1;for(;he--;){const be=te[he];D&&!matchHeaderValue(0,this[be],be,D,!0)||(delete this[be],ye=!0)}return ye}normalize(D){const te=this,he={};return rj.forEach(this,((ye,be)=>{const ve=rj.findKey(he,be);if(ve)return te[ve]=normalizeValue(ye),void delete te[be];const we=D?function formatHeader(D){return D.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,((D,te,he)=>te.toUpperCase()+he))}(be):String(be).trim();we!==be&&delete te[be],te[we]=normalizeValue(ye),he[we]=!0})),this}concat(...D){return this.constructor.concat(this,...D)}toJSON(D){const te=Object.create(null);return rj.forEach(this,((he,ye)=>{null!=he&&!1!==he&&(te[ye]=D&&rj.isArray(he)?he.join(", "):he)})),te}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map((([D,te])=>D+": "+te)).join("\n")}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(D){return D instanceof this?D:new this(D)}static concat(D,...te){const he=new this(D);return te.forEach((D=>he.set(D))),he}static accessor(D){const te=(this[yj]=this[yj]={accessors:{}}).accessors,he=this.prototype;function defineAccessor(D){const ye=normalizeHeader(D);te[ye]||(!function buildAccessors(D,te){const he=rj.toCamelCase(" "+te);["get","set","has"].forEach((ye=>{Object.defineProperty(D,ye+he,{value:function(D,he,be){return this[ye].call(this,te,D,he,be)},configurable:!0})}))}(he,D),te[ye]=!0)}return rj.isArray(D)?D.forEach(defineAccessor):defineAccessor(D),this}}function transformData(D,te){const he=this||pj,ye=te||he,be=AxiosHeaders.from(ye.headers);let ve=ye.data;return rj.forEach(D,(function transform(D){ve=D.call(he,ve,be.normalize(),te?te.status:void 0)})),be.normalize(),ve}function isCancel(D){return!(!D||!D.__CANCEL__)}function CanceledError(D,te,he){AxiosError.call(this,null==D?"canceled":D,AxiosError.ERR_CANCELED,te,he),this.name="CanceledError"}AxiosHeaders.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),rj.reduceDescriptors(AxiosHeaders.prototype,(({value:D},te)=>{let he=te[0].toUpperCase()+te.slice(1);return{get:()=>D,set(D){this[he]=D}}})),rj.freezeMethods(AxiosHeaders),rj.inherits(CanceledError,AxiosError,{__CANCEL__:!0});var mj=lj.hasStandardBrowserEnv?{write(D,te,he,ye,be,ve){const we=[D+"="+encodeURIComponent(te)];rj.isNumber(he)&&we.push("expires="+new Date(he).toGMTString()),rj.isString(ye)&&we.push("path="+ye),rj.isString(be)&&we.push("domain="+be),!0===ve&&we.push("secure"),document.cookie=we.join("; ")},read(D){const te=document.cookie.match(new RegExp("(^|;\\s*)("+D+")=([^;]*)"));return te?decodeURIComponent(te[3]):null},remove(D){this.write(D,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function buildFullPath(D,te){return D&&!function isAbsoluteURL(D){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(D)}(te)?function combineURLs(D,te){return te?D.replace(/\/?\/$/,"")+"/"+te.replace(/^\/+/,""):D}(D,te):te}var bj=lj.hasStandardBrowserEnv?function standardBrowserEnv(){const D=/(msie|trident)/i.test(navigator.userAgent),te=document.createElement("a");let he;function resolveURL(he){let ye=he;return D&&(te.setAttribute("href",ye),ye=te.href),te.setAttribute("href",ye),{href:te.href,protocol:te.protocol?te.protocol.replace(/:$/,""):"",host:te.host,search:te.search?te.search.replace(/^\?/,""):"",hash:te.hash?te.hash.replace(/^#/,""):"",hostname:te.hostname,port:te.port,pathname:"/"===te.pathname.charAt(0)?te.pathname:"/"+te.pathname}}return he=resolveURL(window.location.href),function isURLSameOrigin(D){const te=rj.isString(D)?resolveURL(D):D;return te.protocol===he.protocol&&te.host===he.host}}():function isURLSameOrigin(){return!0};function progressEventReducer(D,te){let he=0;const ye=function speedometer(D,te){D=D||10;const he=new Array(D),ye=new Array(D);let be,ve=0,we=0;return te=void 0!==te?te:1e3,function push(_e){const Pe=Date.now(),Ie=ye[we];be||(be=Pe),he[ve]=_e,ye[ve]=Pe;let Re=we,ke=0;for(;Re!==ve;)ke+=he[Re++],Re%=D;if(ve=(ve+1)%D,ve===we&&(we=(we+1)%D),Pe-be<te)return;const Oe=Ie&&Pe-Ie;return Oe?Math.round(1e3*ke/Oe):void 0}}(50,250);return be=>{const ve=be.loaded,we=be.lengthComputable?be.total:void 0,_e=ve-he,Pe=ye(_e);he=ve;const Ie={loaded:ve,total:we,progress:we?ve/we:void 0,bytes:_e,rate:Pe||void 0,estimated:Pe&&we&&ve<=we?(we-ve)/Pe:void 0,event:be};Ie[te?"download":"upload"]=!0,D(Ie)}}var gj="undefined"!=typeof XMLHttpRequest&&function(D){return new Promise((function dispatchXhrRequest(te,he){let ye=D.data;const be=AxiosHeaders.from(D.headers).normalize();let ve,we,{responseType:_e,withXSRFToken:Pe}=D;function done(){D.cancelToken&&D.cancelToken.unsubscribe(ve),D.signal&&D.signal.removeEventListener("abort",ve)}if(rj.isFormData(ye))if(lj.hasStandardBrowserEnv||lj.hasStandardBrowserWebWorkerEnv)be.setContentType(!1);else if(!1!==(we=be.getContentType())){const[D,...te]=we?we.split(";").map((D=>D.trim())).filter(Boolean):[];be.setContentType([D||"multipart/form-data",...te].join("; "))}let Ie=new XMLHttpRequest;if(D.auth){const te=D.auth.username||"",he=D.auth.password?unescape(encodeURIComponent(D.auth.password)):"";be.set("Authorization","Basic "+btoa(te+":"+he))}const Re=buildFullPath(D.baseURL,D.url);function onloadend(){if(!Ie)return;const ye=AxiosHeaders.from("getAllResponseHeaders"in Ie&&Ie.getAllResponseHeaders());!function settle(D,te,he){const ye=he.config.validateStatus;he.status&&ye&&!ye(he.status)?te(new AxiosError("Request failed with status code "+he.status,[AxiosError.ERR_BAD_REQUEST,AxiosError.ERR_BAD_RESPONSE][Math.floor(he.status/100)-4],he.config,he.request,he)):D(he)}((function _resolve(D){te(D),done()}),(function _reject(D){he(D),done()}),{data:_e&&"text"!==_e&&"json"!==_e?Ie.response:Ie.responseText,status:Ie.status,statusText:Ie.statusText,headers:ye,config:D,request:Ie}),Ie=null}if(Ie.open(D.method.toUpperCase(),buildURL(Re,D.params,D.paramsSerializer),!0),Ie.timeout=D.timeout,"onloadend"in Ie?Ie.onloadend=onloadend:Ie.onreadystatechange=function handleLoad(){Ie&&4===Ie.readyState&&(0!==Ie.status||Ie.responseURL&&0===Ie.responseURL.indexOf("file:"))&&setTimeout(onloadend)},Ie.onabort=function handleAbort(){Ie&&(he(new AxiosError("Request aborted",AxiosError.ECONNABORTED,D,Ie)),Ie=null)},Ie.onerror=function handleError(){he(new AxiosError("Network Error",AxiosError.ERR_NETWORK,D,Ie)),Ie=null},Ie.ontimeout=function handleTimeout(){let te=D.timeout?"timeout of "+D.timeout+"ms exceeded":"timeout exceeded";const ye=D.transitional||oj;D.timeoutErrorMessage&&(te=D.timeoutErrorMessage),he(new AxiosError(te,ye.clarifyTimeoutError?AxiosError.ETIMEDOUT:AxiosError.ECONNABORTED,D,Ie)),Ie=null},lj.hasStandardBrowserEnv&&(Pe&&rj.isFunction(Pe)&&(Pe=Pe(D)),Pe||!1!==Pe&&bj(Re))){const te=D.xsrfHeaderName&&D.xsrfCookieName&&mj.read(D.xsrfCookieName);te&&be.set(D.xsrfHeaderName,te)}void 0===ye&&be.setContentType(null),"setRequestHeader"in Ie&&rj.forEach(be.toJSON(),(function setRequestHeader(D,te){Ie.setRequestHeader(te,D)})),rj.isUndefined(D.withCredentials)||(Ie.withCredentials=!!D.withCredentials),_e&&"json"!==_e&&(Ie.responseType=D.responseType),"function"==typeof D.onDownloadProgress&&Ie.addEventListener("progress",progressEventReducer(D.onDownloadProgress,!0)),"function"==typeof D.onUploadProgress&&Ie.upload&&Ie.upload.addEventListener("progress",progressEventReducer(D.onUploadProgress)),(D.cancelToken||D.signal)&&(ve=te=>{Ie&&(he(!te||te.type?new CanceledError(null,D,Ie):te),Ie.abort(),Ie=null)},D.cancelToken&&D.cancelToken.subscribe(ve),D.signal&&(D.signal.aborted?ve():D.signal.addEventListener("abort",ve)));const ke=function parseProtocol(D){const te=/^([-+\w]{1,25})(:?\/\/|:)/.exec(D);return te&&te[1]||""}(Re);ke&&-1===lj.protocols.indexOf(ke)?he(new AxiosError("Unsupported protocol "+ke+":",AxiosError.ERR_BAD_REQUEST,D)):Ie.send(ye||null)}))};const vj={http:null,xhr:gj};rj.forEach(vj,((D,te)=>{if(D){try{Object.defineProperty(D,"name",{value:te})}catch(D){}Object.defineProperty(D,"adapterName",{value:te})}}));const renderReason=D=>`- ${D}`,isResolvedHandle=D=>rj.isFunction(D)||null===D||!1===D;var adapters_getAdapter=D=>{D=rj.isArray(D)?D:[D];const{length:te}=D;let he,ye;const be={};for(let ve=0;ve<te;ve++){let te;if(he=D[ve],ye=he,!isResolvedHandle(he)&&(ye=vj[(te=String(he)).toLowerCase()],void 0===ye))throw new AxiosError(`Unknown adapter '${te}'`);if(ye)break;be[te||"#"+ve]=ye}if(!ye){const D=Object.entries(be).map((([D,te])=>`adapter ${D} `+(!1===te?"is not supported by the environment":"is not available in the build")));throw new AxiosError("There is no suitable adapter to dispatch the request "+(te?D.length>1?"since :\n"+D.map(renderReason).join("\n"):" "+renderReason(D[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return ye};function throwIfCancellationRequested(D){if(D.cancelToken&&D.cancelToken.throwIfRequested(),D.signal&&D.signal.aborted)throw new CanceledError(null,D)}function dispatchRequest(D){throwIfCancellationRequested(D),D.headers=AxiosHeaders.from(D.headers),D.data=transformData.call(D,D.transformRequest),-1!==["post","put","patch"].indexOf(D.method)&&D.headers.setContentType("application/x-www-form-urlencoded",!1);return adapters_getAdapter(D.adapter||pj.adapter)(D).then((function onAdapterResolution(te){return throwIfCancellationRequested(D),te.data=transformData.call(D,D.transformResponse,te),te.headers=AxiosHeaders.from(te.headers),te}),(function onAdapterRejection(te){return isCancel(te)||(throwIfCancellationRequested(D),te&&te.response&&(te.response.data=transformData.call(D,D.transformResponse,te.response),te.response.headers=AxiosHeaders.from(te.response.headers))),Promise.reject(te)}))}const headersToObject=D=>D instanceof AxiosHeaders?D.toJSON():D;function mergeConfig(D,te){te=te||{};const he={};function getMergedValue(D,te,he){return rj.isPlainObject(D)&&rj.isPlainObject(te)?rj.merge.call({caseless:he},D,te):rj.isPlainObject(te)?rj.merge({},te):rj.isArray(te)?te.slice():te}function mergeDeepProperties(D,te,he){return rj.isUndefined(te)?rj.isUndefined(D)?void 0:getMergedValue(void 0,D,he):getMergedValue(D,te,he)}function valueFromConfig2(D,te){if(!rj.isUndefined(te))return getMergedValue(void 0,te)}function defaultToConfig2(D,te){return rj.isUndefined(te)?rj.isUndefined(D)?void 0:getMergedValue(void 0,D):getMergedValue(void 0,te)}function mergeDirectKeys(he,ye,be){return be in te?getMergedValue(he,ye):be in D?getMergedValue(void 0,he):void 0}const ye={url:valueFromConfig2,method:valueFromConfig2,data:valueFromConfig2,baseURL:defaultToConfig2,transformRequest:defaultToConfig2,transformResponse:defaultToConfig2,paramsSerializer:defaultToConfig2,timeout:defaultToConfig2,timeoutMessage:defaultToConfig2,withCredentials:defaultToConfig2,withXSRFToken:defaultToConfig2,adapter:defaultToConfig2,responseType:defaultToConfig2,xsrfCookieName:defaultToConfig2,xsrfHeaderName:defaultToConfig2,onUploadProgress:defaultToConfig2,onDownloadProgress:defaultToConfig2,decompress:defaultToConfig2,maxContentLength:defaultToConfig2,maxBodyLength:defaultToConfig2,beforeRedirect:defaultToConfig2,transport:defaultToConfig2,httpAgent:defaultToConfig2,httpsAgent:defaultToConfig2,cancelToken:defaultToConfig2,socketPath:defaultToConfig2,responseEncoding:defaultToConfig2,validateStatus:mergeDirectKeys,headers:(D,te)=>mergeDeepProperties(headersToObject(D),headersToObject(te),!0)};return rj.forEach(Object.keys(Object.assign({},D,te)),(function computeConfigValue(be){const ve=ye[be]||mergeDeepProperties,we=ve(D[be],te[be],be);rj.isUndefined(we)&&ve!==mergeDirectKeys||(he[be]=we)})),he}const wj="1.6.5",_j={};["object","boolean","number","function","string","symbol"].forEach(((D,te)=>{_j[D]=function validator(he){return typeof he===D||"a"+(te<1?"n ":" ")+D}}));const Tj={};_j.transitional=function transitional(D,te,he){function formatMessage(D,te){return"[Axios v1.6.5] Transitional option '"+D+"'"+te+(he?". "+he:"")}return(he,ye,be)=>{if(!1===D)throw new AxiosError(formatMessage(ye," has been removed"+(te?" in "+te:"")),AxiosError.ERR_DEPRECATED);return te&&!Tj[ye]&&(Tj[ye]=!0,console.warn(formatMessage(ye," has been deprecated since v"+te+" and will be removed in the near future"))),!D||D(he,ye,be)}};var Aj={assertOptions:function assertOptions(D,te,he){if("object"!=typeof D)throw new AxiosError("options must be an object",AxiosError.ERR_BAD_OPTION_VALUE);const ye=Object.keys(D);let be=ye.length;for(;be-- >0;){const ve=ye[be],we=te[ve];if(we){const te=D[ve],he=void 0===te||we(te,ve,D);if(!0!==he)throw new AxiosError("option "+ve+" must be "+he,AxiosError.ERR_BAD_OPTION_VALUE)}else if(!0!==he)throw new AxiosError("Unknown option "+ve,AxiosError.ERR_BAD_OPTION)}},validators:_j};const Ej=Aj.validators;class Axios{constructor(D){this.defaults=D,this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}request(D,te){"string"==typeof D?(te=te||{}).url=D:te=D||{},te=mergeConfig(this.defaults,te);const{transitional:he,paramsSerializer:ye,headers:be}=te;void 0!==he&&Aj.assertOptions(he,{silentJSONParsing:Ej.transitional(Ej.boolean),forcedJSONParsing:Ej.transitional(Ej.boolean),clarifyTimeoutError:Ej.transitional(Ej.boolean)},!1),null!=ye&&(rj.isFunction(ye)?te.paramsSerializer={serialize:ye}:Aj.assertOptions(ye,{encode:Ej.function,serialize:Ej.function},!0)),te.method=(te.method||this.defaults.method||"get").toLowerCase();let ve=be&&rj.merge(be.common,be[te.method]);be&&rj.forEach(["delete","get","head","post","put","patch","common"],(D=>{delete be[D]})),te.headers=AxiosHeaders.concat(ve,be);const we=[];let _e=!0;this.interceptors.request.forEach((function unshiftRequestInterceptors(D){"function"==typeof D.runWhen&&!1===D.runWhen(te)||(_e=_e&&D.synchronous,we.unshift(D.fulfilled,D.rejected))}));const Pe=[];let Ie;this.interceptors.response.forEach((function pushResponseInterceptors(D){Pe.push(D.fulfilled,D.rejected)}));let Re,ke=0;if(!_e){const D=[dispatchRequest.bind(this),void 0];for(D.unshift.apply(D,we),D.push.apply(D,Pe),Re=D.length,Ie=Promise.resolve(te);ke<Re;)Ie=Ie.then(D[ke++],D[ke++]);return Ie}Re=we.length;let Oe=te;for(ke=0;ke<Re;){const D=we[ke++],te=we[ke++];try{Oe=D(Oe)}catch(D){te.call(this,D);break}}try{Ie=dispatchRequest.call(this,Oe)}catch(D){return Promise.reject(D)}for(ke=0,Re=Pe.length;ke<Re;)Ie=Ie.then(Pe[ke++],Pe[ke++]);return Ie}getUri(D){return buildURL(buildFullPath((D=mergeConfig(this.defaults,D)).baseURL,D.url),D.params,D.paramsSerializer)}}rj.forEach(["delete","get","head","options"],(function forEachMethodNoData(D){Axios.prototype[D]=function(te,he){return this.request(mergeConfig(he||{},{method:D,url:te,data:(he||{}).data}))}})),rj.forEach(["post","put","patch"],(function forEachMethodWithData(D){function generateHTTPMethod(te){return function httpMethod(he,ye,be){return this.request(mergeConfig(be||{},{method:D,headers:te?{"Content-Type":"multipart/form-data"}:{},url:he,data:ye}))}}Axios.prototype[D]=generateHTTPMethod(),Axios.prototype[D+"Form"]=generateHTTPMethod(!0)}));class CancelToken{constructor(D){if("function"!=typeof D)throw new TypeError("executor must be a function.");let te;this.promise=new Promise((function promiseExecutor(D){te=D}));const he=this;this.promise.then((D=>{if(!he._listeners)return;let te=he._listeners.length;for(;te-- >0;)he._listeners[te](D);he._listeners=null})),this.promise.then=D=>{let te;const ye=new Promise((D=>{he.subscribe(D),te=D})).then(D);return ye.cancel=function reject(){he.unsubscribe(te)},ye},D((function cancel(D,ye,be){he.reason||(he.reason=new CanceledError(D,ye,be),te(he.reason))}))}throwIfRequested(){if(this.reason)throw this.reason}subscribe(D){this.reason?D(this.reason):this._listeners?this._listeners.push(D):this._listeners=[D]}unsubscribe(D){if(!this._listeners)return;const te=this._listeners.indexOf(D);-1!==te&&this._listeners.splice(te,1)}static source(){let D;const te=new CancelToken((function executor(te){D=te}));return{token:te,cancel:D}}}const Pj={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Pj).forEach((([D,te])=>{Pj[te]=D}));const Sj=function createInstance(D){const te=new Axios(D),he=bind(Axios.prototype.request,te);return rj.extend(he,Axios.prototype,te,{allOwnKeys:!0}),rj.extend(he,te,null,{allOwnKeys:!0}),he.create=function create(te){return createInstance(mergeConfig(D,te))},he}(pj);Sj.Axios=Axios,Sj.CanceledError=CanceledError,Sj.CancelToken=CancelToken,Sj.isCancel=isCancel,Sj.VERSION=wj,Sj.toFormData=toFormData,Sj.AxiosError=AxiosError,Sj.Cancel=Sj.CanceledError,Sj.all=function all(D){return Promise.all(D)},Sj.spread=function spread(D){return function wrap(te){return D.apply(null,te)}},Sj.isAxiosError=function isAxiosError(D){return rj.isObject(D)&&!0===D.isAxiosError},Sj.mergeConfig=mergeConfig,Sj.AxiosHeaders=AxiosHeaders,Sj.formToJSON=D=>formDataToJSON(rj.isHTMLForm(D)?new FormData(D):D),Sj.getAdapter=adapters_getAdapter,Sj.HttpStatusCode=Pj,Sj.default=Sj;var Cj="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getDefaultExportFromCjs(D){return D&&D.__esModule&&Object.prototype.hasOwnProperty.call(D,"default")?D.default:D}function getAugmentedNamespace(D){if(D.__esModule)return D;var te=D.default;if("function"==typeof te){var he=function a(){return this instanceof a?Reflect.construct(te,arguments,this.constructor):te.apply(this,arguments)};he.prototype=te.prototype}else he={};return Object.defineProperty(he,"__esModule",{value:!0}),Object.keys(D).forEach((function(te){var ye=Object.getOwnPropertyDescriptor(D,te);Object.defineProperty(he,te,ye.get?ye:{enumerable:!0,get:function(){return D[te]}})})),he}var Ij={exports:{}},Rj=getAugmentedNamespace(Object.freeze({__proto__:null,default:{}}));!function(D){!function(D,te){function assert(D,te){if(!D)throw new Error(te||"Assertion failed")}function inherits(D,te){D.super_=te;var TempCtor=function(){};TempCtor.prototype=te.prototype,D.prototype=new TempCtor,D.prototype.constructor=D}function BN(D,te,he){if(BN.isBN(D))return D;this.negative=0,this.words=null,this.length=0,this.red=null,null!==D&&("le"!==te&&"be"!==te||(he=te,te=10),this._init(D||0,te||10,he||"be"))}var he;"object"==typeof D?D.exports=BN:te.BN=BN,BN.BN=BN,BN.wordSize=26;try{he="undefined"!=typeof window&&void 0!==window.Buffer?window.Buffer:Rj.Buffer}catch(D){}function parseHex4Bits(D,te){var he=D.charCodeAt(te);return he>=48&&he<=57?he-48:he>=65&&he<=70?he-55:he>=97&&he<=102?he-87:void assert(!1,"Invalid character in "+D)}function parseHexByte(D,te,he){var ye=parseHex4Bits(D,he);return he-1>=te&&(ye|=parseHex4Bits(D,he-1)<<4),ye}function parseBase(D,te,he,ye){for(var be=0,ve=0,we=Math.min(D.length,he),_e=te;_e<we;_e++){var Pe=D.charCodeAt(_e)-48;be*=ye,ve=Pe>=49?Pe-49+10:Pe>=17?Pe-17+10:Pe,assert(Pe>=0&&ve<ye,"Invalid character"),be+=ve}return be}function move(D,te){D.words=te.words,D.length=te.length,D.negative=te.negative,D.red=te.red}if(BN.isBN=function isBN(D){return D instanceof BN||null!==D&&"object"==typeof D&&D.constructor.wordSize===BN.wordSize&&Array.isArray(D.words)},BN.max=function max(D,te){return D.cmp(te)>0?D:te},BN.min=function min(D,te){return D.cmp(te)<0?D:te},BN.prototype._init=function init(D,te,he){if("number"==typeof D)return this._initNumber(D,te,he);if("object"==typeof D)return this._initArray(D,te,he);"hex"===te&&(te=16),assert(te===(0|te)&&te>=2&&te<=36);var ye=0;"-"===(D=D.toString().replace(/\s+/g,""))[0]&&(ye++,this.negative=1),ye<D.length&&(16===te?this._parseHex(D,ye,he):(this._parseBase(D,te,ye),"le"===he&&this._initArray(this.toArray(),te,he)))},BN.prototype._initNumber=function _initNumber(D,te,he){D<0&&(this.negative=1,D=-D),D<67108864?(this.words=[67108863&D],this.length=1):D<4503599627370496?(this.words=[67108863&D,D/67108864&67108863],this.length=2):(assert(D<9007199254740992),this.words=[67108863&D,D/67108864&67108863,1],this.length=3),"le"===he&&this._initArray(this.toArray(),te,he)},BN.prototype._initArray=function _initArray(D,te,he){if(assert("number"==typeof D.length),D.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(D.length/3),this.words=new Array(this.length);for(var ye=0;ye<this.length;ye++)this.words[ye]=0;var be,ve,we=0;if("be"===he)for(ye=D.length-1,be=0;ye>=0;ye-=3)ve=D[ye]|D[ye-1]<<8|D[ye-2]<<16,this.words[be]|=ve<<we&67108863,this.words[be+1]=ve>>>26-we&67108863,(we+=24)>=26&&(we-=26,be++);else if("le"===he)for(ye=0,be=0;ye<D.length;ye+=3)ve=D[ye]|D[ye+1]<<8|D[ye+2]<<16,this.words[be]|=ve<<we&67108863,this.words[be+1]=ve>>>26-we&67108863,(we+=24)>=26&&(we-=26,be++);return this._strip()},BN.prototype._parseHex=function _parseHex(D,te,he){this.length=Math.ceil((D.length-te)/6),this.words=new Array(this.length);for(var ye=0;ye<this.length;ye++)this.words[ye]=0;var be,ve=0,we=0;if("be"===he)for(ye=D.length-1;ye>=te;ye-=2)be=parseHexByte(D,te,ye)<<ve,this.words[we]|=67108863&be,ve>=18?(ve-=18,we+=1,this.words[we]|=be>>>26):ve+=8;else for(ye=(D.length-te)%2==0?te+1:te;ye<D.length;ye+=2)be=parseHexByte(D,te,ye)<<ve,this.words[we]|=67108863&be,ve>=18?(ve-=18,we+=1,this.words[we]|=be>>>26):ve+=8;this._strip()},BN.prototype._parseBase=function _parseBase(D,te,he){this.words=[0],this.length=1;for(var ye=0,be=1;be<=67108863;be*=te)ye++;ye--,be=be/te|0;for(var ve=D.length-he,we=ve%ye,_e=Math.min(ve,ve-we)+he,Pe=0,Ie=he;Ie<_e;Ie+=ye)Pe=parseBase(D,Ie,Ie+ye,te),this.imuln(be),this.words[0]+Pe<67108864?this.words[0]+=Pe:this._iaddn(Pe);if(0!==we){var Re=1;for(Pe=parseBase(D,Ie,D.length,te),Ie=0;Ie<we;Ie++)Re*=te;this.imuln(Re),this.words[0]+Pe<67108864?this.words[0]+=Pe:this._iaddn(Pe)}this._strip()},BN.prototype.copy=function copy(D){D.words=new Array(this.length);for(var te=0;te<this.length;te++)D.words[te]=this.words[te];D.length=this.length,D.negative=this.negative,D.red=this.red},BN.prototype._move=function _move(D){move(D,this)},BN.prototype.clone=function clone(){var D=new BN(null);return this.copy(D),D},BN.prototype._expand=function _expand(D){for(;this.length<D;)this.words[this.length++]=0;return this},BN.prototype._strip=function strip(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},BN.prototype._normSign=function _normSign(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},"undefined"!=typeof Symbol&&"function"==typeof Symbol.for)try{BN.prototype[Symbol.for("nodejs.util.inspect.custom")]=inspect}catch(D){BN.prototype.inspect=inspect}else BN.prototype.inspect=inspect;function inspect(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var ye=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],be=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],ve=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];BN.prototype.toString=function toString(D,te){var he;if(te=0|te||1,16===(D=D||10)||"hex"===D){he="";for(var we=0,_e=0,Pe=0;Pe<this.length;Pe++){var Ie=this.words[Pe],Re=(16777215&(Ie<<we|_e)).toString(16);_e=Ie>>>24-we&16777215,(we+=2)>=26&&(we-=26,Pe--),he=0!==_e||Pe!==this.length-1?ye[6-Re.length]+Re+he:Re+he}for(0!==_e&&(he=_e.toString(16)+he);he.length%te!=0;)he="0"+he;return 0!==this.negative&&(he="-"+he),he}if(D===(0|D)&&D>=2&&D<=36){var ke=be[D],Oe=ve[D];he="";var xe=this.clone();for(xe.negative=0;!xe.isZero();){var Be=xe.modrn(Oe).toString(D);he=(xe=xe.idivn(Oe)).isZero()?Be+he:ye[ke-Be.length]+Be+he}for(this.isZero()&&(he="0"+he);he.length%te!=0;)he="0"+he;return 0!==this.negative&&(he="-"+he),he}assert(!1,"Base should be between 2 and 36")},BN.prototype.toNumber=function toNumber(){var D=this.words[0];return 2===this.length?D+=67108864*this.words[1]:3===this.length&&1===this.words[2]?D+=4503599627370496+67108864*this.words[1]:this.length>2&&assert(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-D:D},BN.prototype.toJSON=function toJSON(){return this.toString(16,2)},he&&(BN.prototype.toBuffer=function toBuffer(D,te){return this.toArrayLike(he,D,te)}),BN.prototype.toArray=function toArray(D,te){return this.toArrayLike(Array,D,te)};function smallMulTo(D,te,he){he.negative=te.negative^D.negative;var ye=D.length+te.length|0;he.length=ye,ye=ye-1|0;var be=0|D.words[0],ve=0|te.words[0],we=be*ve,_e=67108863&we,Pe=we/67108864|0;he.words[0]=_e;for(var Ie=1;Ie<ye;Ie++){for(var Re=Pe>>>26,ke=67108863&Pe,Oe=Math.min(Ie,te.length-1),xe=Math.max(0,Ie-D.length+1);xe<=Oe;xe++){var Be=Ie-xe|0;Re+=(we=(be=0|D.words[Be])*(ve=0|te.words[xe])+ke)/67108864|0,ke=67108863&we}he.words[Ie]=0|ke,Pe=0|Re}return 0!==Pe?he.words[Ie]=0|Pe:he.length--,he._strip()}BN.prototype.toArrayLike=function toArrayLike(D,te,he){this._strip();var ye=this.byteLength(),be=he||Math.max(1,ye);assert(ye<=be,"byte array longer than desired length"),assert(be>0,"Requested array length <= 0");var ve=function allocate(D,te){return D.allocUnsafe?D.allocUnsafe(te):new D(te)}(D,be);return this["_toArrayLike"+("le"===te?"LE":"BE")](ve,ye),ve},BN.prototype._toArrayLikeLE=function _toArrayLikeLE(D,te){for(var he=0,ye=0,be=0,ve=0;be<this.length;be++){var we=this.words[be]<<ve|ye;D[he++]=255&we,he<D.length&&(D[he++]=we>>8&255),he<D.length&&(D[he++]=we>>16&255),6===ve?(he<D.length&&(D[he++]=we>>24&255),ye=0,ve=0):(ye=we>>>24,ve+=2)}if(he<D.length)for(D[he++]=ye;he<D.length;)D[he++]=0},BN.prototype._toArrayLikeBE=function _toArrayLikeBE(D,te){for(var he=D.length-1,ye=0,be=0,ve=0;be<this.length;be++){var we=this.words[be]<<ve|ye;D[he--]=255&we,he>=0&&(D[he--]=we>>8&255),he>=0&&(D[he--]=we>>16&255),6===ve?(he>=0&&(D[he--]=we>>24&255),ye=0,ve=0):(ye=we>>>24,ve+=2)}if(he>=0)for(D[he--]=ye;he>=0;)D[he--]=0},Math.clz32?BN.prototype._countBits=function _countBits(D){return 32-Math.clz32(D)}:BN.prototype._countBits=function _countBits(D){var te=D,he=0;return te>=4096&&(he+=13,te>>>=13),te>=64&&(he+=7,te>>>=7),te>=8&&(he+=4,te>>>=4),te>=2&&(he+=2,te>>>=2),he+te},BN.prototype._zeroBits=function _zeroBits(D){if(0===D)return 26;var te=D,he=0;return 0==(8191&te)&&(he+=13,te>>>=13),0==(127&te)&&(he+=7,te>>>=7),0==(15&te)&&(he+=4,te>>>=4),0==(3&te)&&(he+=2,te>>>=2),0==(1&te)&&he++,he},BN.prototype.bitLength=function bitLength(){var D=this.words[this.length-1],te=this._countBits(D);return 26*(this.length-1)+te},BN.prototype.zeroBits=function zeroBits(){if(this.isZero())return 0;for(var D=0,te=0;te<this.length;te++){var he=this._zeroBits(this.words[te]);if(D+=he,26!==he)break}return D},BN.prototype.byteLength=function byteLength(){return Math.ceil(this.bitLength()/8)},BN.prototype.toTwos=function toTwos(D){return 0!==this.negative?this.abs().inotn(D).iaddn(1):this.clone()},BN.prototype.fromTwos=function fromTwos(D){return this.testn(D-1)?this.notn(D).iaddn(1).ineg():this.clone()},BN.prototype.isNeg=function isNeg(){return 0!==this.negative},BN.prototype.neg=function neg(){return this.clone().ineg()},BN.prototype.ineg=function ineg(){return this.isZero()||(this.negative^=1),this},BN.prototype.iuor=function iuor(D){for(;this.length<D.length;)this.words[this.length++]=0;for(var te=0;te<D.length;te++)this.words[te]=this.words[te]|D.words[te];return this._strip()},BN.prototype.ior=function ior(D){return assert(0==(this.negative|D.negative)),this.iuor(D)},BN.prototype.or=function or(D){return this.length>D.length?this.clone().ior(D):D.clone().ior(this)},BN.prototype.uor=function uor(D){return this.length>D.length?this.clone().iuor(D):D.clone().iuor(this)},BN.prototype.iuand=function iuand(D){var te;te=this.length>D.length?D:this;for(var he=0;he<te.length;he++)this.words[he]=this.words[he]&D.words[he];return this.length=te.length,this._strip()},BN.prototype.iand=function iand(D){return assert(0==(this.negative|D.negative)),this.iuand(D)},BN.prototype.and=function and(D){return this.length>D.length?this.clone().iand(D):D.clone().iand(this)},BN.prototype.uand=function uand(D){return this.length>D.length?this.clone().iuand(D):D.clone().iuand(this)},BN.prototype.iuxor=function iuxor(D){var te,he;this.length>D.length?(te=this,he=D):(te=D,he=this);for(var ye=0;ye<he.length;ye++)this.words[ye]=te.words[ye]^he.words[ye];if(this!==te)for(;ye<te.length;ye++)this.words[ye]=te.words[ye];return this.length=te.length,this._strip()},BN.prototype.ixor=function ixor(D){return assert(0==(this.negative|D.negative)),this.iuxor(D)},BN.prototype.xor=function xor(D){return this.length>D.length?this.clone().ixor(D):D.clone().ixor(this)},BN.prototype.uxor=function uxor(D){return this.length>D.length?this.clone().iuxor(D):D.clone().iuxor(this)},BN.prototype.inotn=function inotn(D){assert("number"==typeof D&&D>=0);var te=0|Math.ceil(D/26),he=D%26;this._expand(te),he>0&&te--;for(var ye=0;ye<te;ye++)this.words[ye]=67108863&~this.words[ye];return he>0&&(this.words[ye]=~this.words[ye]&67108863>>26-he),this._strip()},BN.prototype.notn=function notn(D){return this.clone().inotn(D)},BN.prototype.setn=function setn(D,te){assert("number"==typeof D&&D>=0);var he=D/26|0,ye=D%26;return this._expand(he+1),this.words[he]=te?this.words[he]|1<<ye:this.words[he]&~(1<<ye),this._strip()},BN.prototype.iadd=function iadd(D){var te,he,ye;if(0!==this.negative&&0===D.negative)return this.negative=0,te=this.isub(D),this.negative^=1,this._normSign();if(0===this.negative&&0!==D.negative)return D.negative=0,te=this.isub(D),D.negative=1,te._normSign();this.length>D.length?(he=this,ye=D):(he=D,ye=this);for(var be=0,ve=0;ve<ye.length;ve++)te=(0|he.words[ve])+(0|ye.words[ve])+be,this.words[ve]=67108863&te,be=te>>>26;for(;0!==be&&ve<he.length;ve++)te=(0|he.words[ve])+be,this.words[ve]=67108863&te,be=te>>>26;if(this.length=he.length,0!==be)this.words[this.length]=be,this.length++;else if(he!==this)for(;ve<he.length;ve++)this.words[ve]=he.words[ve];return this},BN.prototype.add=function add(D){var te;return 0!==D.negative&&0===this.negative?(D.negative=0,te=this.sub(D),D.negative^=1,te):0===D.negative&&0!==this.negative?(this.negative=0,te=D.sub(this),this.negative=1,te):this.length>D.length?this.clone().iadd(D):D.clone().iadd(this)},BN.prototype.isub=function isub(D){if(0!==D.negative){D.negative=0;var te=this.iadd(D);return D.negative=1,te._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(D),this.negative=1,this._normSign();var he,ye,be=this.cmp(D);if(0===be)return this.negative=0,this.length=1,this.words[0]=0,this;be>0?(he=this,ye=D):(he=D,ye=this);for(var ve=0,we=0;we<ye.length;we++)ve=(te=(0|he.words[we])-(0|ye.words[we])+ve)>>26,this.words[we]=67108863&te;for(;0!==ve&&we<he.length;we++)ve=(te=(0|he.words[we])+ve)>>26,this.words[we]=67108863&te;if(0===ve&&we<he.length&&he!==this)for(;we<he.length;we++)this.words[we]=he.words[we];return this.length=Math.max(this.length,we),he!==this&&(this.negative=1),this._strip()},BN.prototype.sub=function sub(D){return this.clone().isub(D)};var we=function comb10MulTo(D,te,he){var ye,be,ve,we=D.words,_e=te.words,Pe=he.words,Ie=0,Re=0|we[0],ke=8191&Re,Oe=Re>>>13,xe=0|we[1],Be=8191&xe,Fe=xe>>>13,De=0|we[2],Le=8191&De,Ue=De>>>13,qe=0|we[3],je=8191&qe,Je=qe>>>13,et=0|we[4],tt=8191&et,rt=et>>>13,nt=0|we[5],at=8191&nt,ut=nt>>>13,ht=0|we[6],yt=8191&ht,mt=ht>>>13,bt=0|we[7],wt=8191&bt,_t=bt>>>13,Tt=0|we[8],At=8191&Tt,Et=Tt>>>13,Pt=0|we[9],St=8191&Pt,Ct=Pt>>>13,kt=0|_e[0],Ot=8191&kt,xt=kt>>>13,Nt=0|_e[1],Bt=8191&Nt,Ft=Nt>>>13,Lt=0|_e[2],Ut=8191&Lt,$t=Lt>>>13,qt=0|_e[3],Gt=8191&qt,zt=qt>>>13,Wt=0|_e[4],Vt=8191&Wt,Kt=Wt>>>13,Jt=0|_e[5],Zt=8191&Jt,rr=Jt>>>13,cr=0|_e[6],dr=8191&cr,kr=cr>>>13,$r=0|_e[7],qr=8191&$r,jr=$r>>>13,Hr=0|_e[8],zr=8191&Hr,Vr=Hr>>>13,Jr=0|_e[9],Xr=8191&Jr,Qr=Jr>>>13;he.negative=D.negative^te.negative,he.length=19;var Zr=(Ie+(ye=Math.imul(ke,Ot))|0)+((8191&(be=(be=Math.imul(ke,xt))+Math.imul(Oe,Ot)|0))<<13)|0;Ie=((ve=Math.imul(Oe,xt))+(be>>>13)|0)+(Zr>>>26)|0,Zr&=67108863,ye=Math.imul(Be,Ot),be=(be=Math.imul(Be,xt))+Math.imul(Fe,Ot)|0,ve=Math.imul(Fe,xt);var en=(Ie+(ye=ye+Math.imul(ke,Bt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Ft)|0)+Math.imul(Oe,Bt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Ft)|0)+(be>>>13)|0)+(en>>>26)|0,en&=67108863,ye=Math.imul(Le,Ot),be=(be=Math.imul(Le,xt))+Math.imul(Ue,Ot)|0,ve=Math.imul(Ue,xt),ye=ye+Math.imul(Be,Bt)|0,be=(be=be+Math.imul(Be,Ft)|0)+Math.imul(Fe,Bt)|0,ve=ve+Math.imul(Fe,Ft)|0;var rn=(Ie+(ye=ye+Math.imul(ke,Ut)|0)|0)+((8191&(be=(be=be+Math.imul(ke,$t)|0)+Math.imul(Oe,Ut)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,$t)|0)+(be>>>13)|0)+(rn>>>26)|0,rn&=67108863,ye=Math.imul(je,Ot),be=(be=Math.imul(je,xt))+Math.imul(Je,Ot)|0,ve=Math.imul(Je,xt),ye=ye+Math.imul(Le,Bt)|0,be=(be=be+Math.imul(Le,Ft)|0)+Math.imul(Ue,Bt)|0,ve=ve+Math.imul(Ue,Ft)|0,ye=ye+Math.imul(Be,Ut)|0,be=(be=be+Math.imul(Be,$t)|0)+Math.imul(Fe,Ut)|0,ve=ve+Math.imul(Fe,$t)|0;var nn=(Ie+(ye=ye+Math.imul(ke,Gt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,zt)|0)+Math.imul(Oe,Gt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,zt)|0)+(be>>>13)|0)+(nn>>>26)|0,nn&=67108863,ye=Math.imul(tt,Ot),be=(be=Math.imul(tt,xt))+Math.imul(rt,Ot)|0,ve=Math.imul(rt,xt),ye=ye+Math.imul(je,Bt)|0,be=(be=be+Math.imul(je,Ft)|0)+Math.imul(Je,Bt)|0,ve=ve+Math.imul(Je,Ft)|0,ye=ye+Math.imul(Le,Ut)|0,be=(be=be+Math.imul(Le,$t)|0)+Math.imul(Ue,Ut)|0,ve=ve+Math.imul(Ue,$t)|0,ye=ye+Math.imul(Be,Gt)|0,be=(be=be+Math.imul(Be,zt)|0)+Math.imul(Fe,Gt)|0,ve=ve+Math.imul(Fe,zt)|0;var sn=(Ie+(ye=ye+Math.imul(ke,Vt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Kt)|0)+Math.imul(Oe,Vt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Kt)|0)+(be>>>13)|0)+(sn>>>26)|0,sn&=67108863,ye=Math.imul(at,Ot),be=(be=Math.imul(at,xt))+Math.imul(ut,Ot)|0,ve=Math.imul(ut,xt),ye=ye+Math.imul(tt,Bt)|0,be=(be=be+Math.imul(tt,Ft)|0)+Math.imul(rt,Bt)|0,ve=ve+Math.imul(rt,Ft)|0,ye=ye+Math.imul(je,Ut)|0,be=(be=be+Math.imul(je,$t)|0)+Math.imul(Je,Ut)|0,ve=ve+Math.imul(Je,$t)|0,ye=ye+Math.imul(Le,Gt)|0,be=(be=be+Math.imul(Le,zt)|0)+Math.imul(Ue,Gt)|0,ve=ve+Math.imul(Ue,zt)|0,ye=ye+Math.imul(Be,Vt)|0,be=(be=be+Math.imul(Be,Kt)|0)+Math.imul(Fe,Vt)|0,ve=ve+Math.imul(Fe,Kt)|0;var on=(Ie+(ye=ye+Math.imul(ke,Zt)|0)|0)+((8191&(be=(be=be+Math.imul(ke,rr)|0)+Math.imul(Oe,Zt)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,rr)|0)+(be>>>13)|0)+(on>>>26)|0,on&=67108863,ye=Math.imul(yt,Ot),be=(be=Math.imul(yt,xt))+Math.imul(mt,Ot)|0,ve=Math.imul(mt,xt),ye=ye+Math.imul(at,Bt)|0,be=(be=be+Math.imul(at,Ft)|0)+Math.imul(ut,Bt)|0,ve=ve+Math.imul(ut,Ft)|0,ye=ye+Math.imul(tt,Ut)|0,be=(be=be+Math.imul(tt,$t)|0)+Math.imul(rt,Ut)|0,ve=ve+Math.imul(rt,$t)|0,ye=ye+Math.imul(je,Gt)|0,be=(be=be+Math.imul(je,zt)|0)+Math.imul(Je,Gt)|0,ve=ve+Math.imul(Je,zt)|0,ye=ye+Math.imul(Le,Vt)|0,be=(be=be+Math.imul(Le,Kt)|0)+Math.imul(Ue,Vt)|0,ve=ve+Math.imul(Ue,Kt)|0,ye=ye+Math.imul(Be,Zt)|0,be=(be=be+Math.imul(Be,rr)|0)+Math.imul(Fe,Zt)|0,ve=ve+Math.imul(Fe,rr)|0;var yn=(Ie+(ye=ye+Math.imul(ke,dr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,kr)|0)+Math.imul(Oe,dr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,kr)|0)+(be>>>13)|0)+(yn>>>26)|0,yn&=67108863,ye=Math.imul(wt,Ot),be=(be=Math.imul(wt,xt))+Math.imul(_t,Ot)|0,ve=Math.imul(_t,xt),ye=ye+Math.imul(yt,Bt)|0,be=(be=be+Math.imul(yt,Ft)|0)+Math.imul(mt,Bt)|0,ve=ve+Math.imul(mt,Ft)|0,ye=ye+Math.imul(at,Ut)|0,be=(be=be+Math.imul(at,$t)|0)+Math.imul(ut,Ut)|0,ve=ve+Math.imul(ut,$t)|0,ye=ye+Math.imul(tt,Gt)|0,be=(be=be+Math.imul(tt,zt)|0)+Math.imul(rt,Gt)|0,ve=ve+Math.imul(rt,zt)|0,ye=ye+Math.imul(je,Vt)|0,be=(be=be+Math.imul(je,Kt)|0)+Math.imul(Je,Vt)|0,ve=ve+Math.imul(Je,Kt)|0,ye=ye+Math.imul(Le,Zt)|0,be=(be=be+Math.imul(Le,rr)|0)+Math.imul(Ue,Zt)|0,ve=ve+Math.imul(Ue,rr)|0,ye=ye+Math.imul(Be,dr)|0,be=(be=be+Math.imul(Be,kr)|0)+Math.imul(Fe,dr)|0,ve=ve+Math.imul(Fe,kr)|0;var bn=(Ie+(ye=ye+Math.imul(ke,qr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,jr)|0)+Math.imul(Oe,qr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,jr)|0)+(be>>>13)|0)+(bn>>>26)|0,bn&=67108863,ye=Math.imul(At,Ot),be=(be=Math.imul(At,xt))+Math.imul(Et,Ot)|0,ve=Math.imul(Et,xt),ye=ye+Math.imul(wt,Bt)|0,be=(be=be+Math.imul(wt,Ft)|0)+Math.imul(_t,Bt)|0,ve=ve+Math.imul(_t,Ft)|0,ye=ye+Math.imul(yt,Ut)|0,be=(be=be+Math.imul(yt,$t)|0)+Math.imul(mt,Ut)|0,ve=ve+Math.imul(mt,$t)|0,ye=ye+Math.imul(at,Gt)|0,be=(be=be+Math.imul(at,zt)|0)+Math.imul(ut,Gt)|0,ve=ve+Math.imul(ut,zt)|0,ye=ye+Math.imul(tt,Vt)|0,be=(be=be+Math.imul(tt,Kt)|0)+Math.imul(rt,Vt)|0,ve=ve+Math.imul(rt,Kt)|0,ye=ye+Math.imul(je,Zt)|0,be=(be=be+Math.imul(je,rr)|0)+Math.imul(Je,Zt)|0,ve=ve+Math.imul(Je,rr)|0,ye=ye+Math.imul(Le,dr)|0,be=(be=be+Math.imul(Le,kr)|0)+Math.imul(Ue,dr)|0,ve=ve+Math.imul(Ue,kr)|0,ye=ye+Math.imul(Be,qr)|0,be=(be=be+Math.imul(Be,jr)|0)+Math.imul(Fe,qr)|0,ve=ve+Math.imul(Fe,jr)|0;var wn=(Ie+(ye=ye+Math.imul(ke,zr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Vr)|0)+Math.imul(Oe,zr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Vr)|0)+(be>>>13)|0)+(wn>>>26)|0,wn&=67108863,ye=Math.imul(St,Ot),be=(be=Math.imul(St,xt))+Math.imul(Ct,Ot)|0,ve=Math.imul(Ct,xt),ye=ye+Math.imul(At,Bt)|0,be=(be=be+Math.imul(At,Ft)|0)+Math.imul(Et,Bt)|0,ve=ve+Math.imul(Et,Ft)|0,ye=ye+Math.imul(wt,Ut)|0,be=(be=be+Math.imul(wt,$t)|0)+Math.imul(_t,Ut)|0,ve=ve+Math.imul(_t,$t)|0,ye=ye+Math.imul(yt,Gt)|0,be=(be=be+Math.imul(yt,zt)|0)+Math.imul(mt,Gt)|0,ve=ve+Math.imul(mt,zt)|0,ye=ye+Math.imul(at,Vt)|0,be=(be=be+Math.imul(at,Kt)|0)+Math.imul(ut,Vt)|0,ve=ve+Math.imul(ut,Kt)|0,ye=ye+Math.imul(tt,Zt)|0,be=(be=be+Math.imul(tt,rr)|0)+Math.imul(rt,Zt)|0,ve=ve+Math.imul(rt,rr)|0,ye=ye+Math.imul(je,dr)|0,be=(be=be+Math.imul(je,kr)|0)+Math.imul(Je,dr)|0,ve=ve+Math.imul(Je,kr)|0,ye=ye+Math.imul(Le,qr)|0,be=(be=be+Math.imul(Le,jr)|0)+Math.imul(Ue,qr)|0,ve=ve+Math.imul(Ue,jr)|0,ye=ye+Math.imul(Be,zr)|0,be=(be=be+Math.imul(Be,Vr)|0)+Math.imul(Fe,zr)|0,ve=ve+Math.imul(Fe,Vr)|0;var _n=(Ie+(ye=ye+Math.imul(ke,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(ke,Qr)|0)+Math.imul(Oe,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Oe,Qr)|0)+(be>>>13)|0)+(_n>>>26)|0,_n&=67108863,ye=Math.imul(St,Bt),be=(be=Math.imul(St,Ft))+Math.imul(Ct,Bt)|0,ve=Math.imul(Ct,Ft),ye=ye+Math.imul(At,Ut)|0,be=(be=be+Math.imul(At,$t)|0)+Math.imul(Et,Ut)|0,ve=ve+Math.imul(Et,$t)|0,ye=ye+Math.imul(wt,Gt)|0,be=(be=be+Math.imul(wt,zt)|0)+Math.imul(_t,Gt)|0,ve=ve+Math.imul(_t,zt)|0,ye=ye+Math.imul(yt,Vt)|0,be=(be=be+Math.imul(yt,Kt)|0)+Math.imul(mt,Vt)|0,ve=ve+Math.imul(mt,Kt)|0,ye=ye+Math.imul(at,Zt)|0,be=(be=be+Math.imul(at,rr)|0)+Math.imul(ut,Zt)|0,ve=ve+Math.imul(ut,rr)|0,ye=ye+Math.imul(tt,dr)|0,be=(be=be+Math.imul(tt,kr)|0)+Math.imul(rt,dr)|0,ve=ve+Math.imul(rt,kr)|0,ye=ye+Math.imul(je,qr)|0,be=(be=be+Math.imul(je,jr)|0)+Math.imul(Je,qr)|0,ve=ve+Math.imul(Je,jr)|0,ye=ye+Math.imul(Le,zr)|0,be=(be=be+Math.imul(Le,Vr)|0)+Math.imul(Ue,zr)|0,ve=ve+Math.imul(Ue,Vr)|0;var Cn=(Ie+(ye=ye+Math.imul(Be,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(Be,Qr)|0)+Math.imul(Fe,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Fe,Qr)|0)+(be>>>13)|0)+(Cn>>>26)|0,Cn&=67108863,ye=Math.imul(St,Ut),be=(be=Math.imul(St,$t))+Math.imul(Ct,Ut)|0,ve=Math.imul(Ct,$t),ye=ye+Math.imul(At,Gt)|0,be=(be=be+Math.imul(At,zt)|0)+Math.imul(Et,Gt)|0,ve=ve+Math.imul(Et,zt)|0,ye=ye+Math.imul(wt,Vt)|0,be=(be=be+Math.imul(wt,Kt)|0)+Math.imul(_t,Vt)|0,ve=ve+Math.imul(_t,Kt)|0,ye=ye+Math.imul(yt,Zt)|0,be=(be=be+Math.imul(yt,rr)|0)+Math.imul(mt,Zt)|0,ve=ve+Math.imul(mt,rr)|0,ye=ye+Math.imul(at,dr)|0,be=(be=be+Math.imul(at,kr)|0)+Math.imul(ut,dr)|0,ve=ve+Math.imul(ut,kr)|0,ye=ye+Math.imul(tt,qr)|0,be=(be=be+Math.imul(tt,jr)|0)+Math.imul(rt,qr)|0,ve=ve+Math.imul(rt,jr)|0,ye=ye+Math.imul(je,zr)|0,be=(be=be+Math.imul(je,Vr)|0)+Math.imul(Je,zr)|0,ve=ve+Math.imul(Je,Vr)|0;var Rn=(Ie+(ye=ye+Math.imul(Le,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(Le,Qr)|0)+Math.imul(Ue,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Ue,Qr)|0)+(be>>>13)|0)+(Rn>>>26)|0,Rn&=67108863,ye=Math.imul(St,Gt),be=(be=Math.imul(St,zt))+Math.imul(Ct,Gt)|0,ve=Math.imul(Ct,zt),ye=ye+Math.imul(At,Vt)|0,be=(be=be+Math.imul(At,Kt)|0)+Math.imul(Et,Vt)|0,ve=ve+Math.imul(Et,Kt)|0,ye=ye+Math.imul(wt,Zt)|0,be=(be=be+Math.imul(wt,rr)|0)+Math.imul(_t,Zt)|0,ve=ve+Math.imul(_t,rr)|0,ye=ye+Math.imul(yt,dr)|0,be=(be=be+Math.imul(yt,kr)|0)+Math.imul(mt,dr)|0,ve=ve+Math.imul(mt,kr)|0,ye=ye+Math.imul(at,qr)|0,be=(be=be+Math.imul(at,jr)|0)+Math.imul(ut,qr)|0,ve=ve+Math.imul(ut,jr)|0,ye=ye+Math.imul(tt,zr)|0,be=(be=be+Math.imul(tt,Vr)|0)+Math.imul(rt,zr)|0,ve=ve+Math.imul(rt,Vr)|0;var kn=(Ie+(ye=ye+Math.imul(je,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(je,Qr)|0)+Math.imul(Je,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Je,Qr)|0)+(be>>>13)|0)+(kn>>>26)|0,kn&=67108863,ye=Math.imul(St,Vt),be=(be=Math.imul(St,Kt))+Math.imul(Ct,Vt)|0,ve=Math.imul(Ct,Kt),ye=ye+Math.imul(At,Zt)|0,be=(be=be+Math.imul(At,rr)|0)+Math.imul(Et,Zt)|0,ve=ve+Math.imul(Et,rr)|0,ye=ye+Math.imul(wt,dr)|0,be=(be=be+Math.imul(wt,kr)|0)+Math.imul(_t,dr)|0,ve=ve+Math.imul(_t,kr)|0,ye=ye+Math.imul(yt,qr)|0,be=(be=be+Math.imul(yt,jr)|0)+Math.imul(mt,qr)|0,ve=ve+Math.imul(mt,jr)|0,ye=ye+Math.imul(at,zr)|0,be=(be=be+Math.imul(at,Vr)|0)+Math.imul(ut,zr)|0,ve=ve+Math.imul(ut,Vr)|0;var Mn=(Ie+(ye=ye+Math.imul(tt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(tt,Qr)|0)+Math.imul(rt,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(rt,Qr)|0)+(be>>>13)|0)+(Mn>>>26)|0,Mn&=67108863,ye=Math.imul(St,Zt),be=(be=Math.imul(St,rr))+Math.imul(Ct,Zt)|0,ve=Math.imul(Ct,rr),ye=ye+Math.imul(At,dr)|0,be=(be=be+Math.imul(At,kr)|0)+Math.imul(Et,dr)|0,ve=ve+Math.imul(Et,kr)|0,ye=ye+Math.imul(wt,qr)|0,be=(be=be+Math.imul(wt,jr)|0)+Math.imul(_t,qr)|0,ve=ve+Math.imul(_t,jr)|0,ye=ye+Math.imul(yt,zr)|0,be=(be=be+Math.imul(yt,Vr)|0)+Math.imul(mt,zr)|0,ve=ve+Math.imul(mt,Vr)|0;var Fn=(Ie+(ye=ye+Math.imul(at,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(at,Qr)|0)+Math.imul(ut,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(ut,Qr)|0)+(be>>>13)|0)+(Fn>>>26)|0,Fn&=67108863,ye=Math.imul(St,dr),be=(be=Math.imul(St,kr))+Math.imul(Ct,dr)|0,ve=Math.imul(Ct,kr),ye=ye+Math.imul(At,qr)|0,be=(be=be+Math.imul(At,jr)|0)+Math.imul(Et,qr)|0,ve=ve+Math.imul(Et,jr)|0,ye=ye+Math.imul(wt,zr)|0,be=(be=be+Math.imul(wt,Vr)|0)+Math.imul(_t,zr)|0,ve=ve+Math.imul(_t,Vr)|0;var Dn=(Ie+(ye=ye+Math.imul(yt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(yt,Qr)|0)+Math.imul(mt,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(mt,Qr)|0)+(be>>>13)|0)+(Dn>>>26)|0,Dn&=67108863,ye=Math.imul(St,qr),be=(be=Math.imul(St,jr))+Math.imul(Ct,qr)|0,ve=Math.imul(Ct,jr),ye=ye+Math.imul(At,zr)|0,be=(be=be+Math.imul(At,Vr)|0)+Math.imul(Et,zr)|0,ve=ve+Math.imul(Et,Vr)|0;var Ln=(Ie+(ye=ye+Math.imul(wt,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(wt,Qr)|0)+Math.imul(_t,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(_t,Qr)|0)+(be>>>13)|0)+(Ln>>>26)|0,Ln&=67108863,ye=Math.imul(St,zr),be=(be=Math.imul(St,Vr))+Math.imul(Ct,zr)|0,ve=Math.imul(Ct,Vr);var Un=(Ie+(ye=ye+Math.imul(At,Xr)|0)|0)+((8191&(be=(be=be+Math.imul(At,Qr)|0)+Math.imul(Et,Xr)|0))<<13)|0;Ie=((ve=ve+Math.imul(Et,Qr)|0)+(be>>>13)|0)+(Un>>>26)|0,Un&=67108863;var $n=(Ie+(ye=Math.imul(St,Xr))|0)+((8191&(be=(be=Math.imul(St,Qr))+Math.imul(Ct,Xr)|0))<<13)|0;return Ie=((ve=Math.imul(Ct,Qr))+(be>>>13)|0)+($n>>>26)|0,$n&=67108863,Pe[0]=Zr,Pe[1]=en,Pe[2]=rn,Pe[3]=nn,Pe[4]=sn,Pe[5]=on,Pe[6]=yn,Pe[7]=bn,Pe[8]=wn,Pe[9]=_n,Pe[10]=Cn,Pe[11]=Rn,Pe[12]=kn,Pe[13]=Mn,Pe[14]=Fn,Pe[15]=Dn,Pe[16]=Ln,Pe[17]=Un,Pe[18]=$n,0!==Ie&&(Pe[19]=Ie,he.length++),he};function bigMulTo(D,te,he){he.negative=te.negative^D.negative,he.length=D.length+te.length;for(var ye=0,be=0,ve=0;ve<he.length-1;ve++){var we=be;be=0;for(var _e=67108863&ye,Pe=Math.min(ve,te.length-1),Ie=Math.max(0,ve-D.length+1);Ie<=Pe;Ie++){var Re=ve-Ie,ke=(0|D.words[Re])*(0|te.words[Ie]),Oe=67108863&ke;_e=67108863&(Oe=Oe+_e|0),be+=(we=(we=we+(ke/67108864|0)|0)+(Oe>>>26)|0)>>>26,we&=67108863}he.words[ve]=_e,ye=we,we=be}return 0!==ye?he.words[ve]=ye:he.length--,he._strip()}function jumboMulTo(D,te,he){return bigMulTo(D,te,he)}Math.imul||(we=smallMulTo),BN.prototype.mulTo=function mulTo(D,te){var he=this.length+D.length;return 10===this.length&&10===D.length?we(this,D,te):he<63?smallMulTo(this,D,te):he<1024?bigMulTo(this,D,te):jumboMulTo(this,D,te)},BN.prototype.mul=function mul(D){var te=new BN(null);return te.words=new Array(this.length+D.length),this.mulTo(D,te)},BN.prototype.mulf=function mulf(D){var te=new BN(null);return te.words=new Array(this.length+D.length),jumboMulTo(this,D,te)},BN.prototype.imul=function imul(D){return this.clone().mulTo(D,this)},BN.prototype.imuln=function imuln(D){var te=D<0;te&&(D=-D),assert("number"==typeof D),assert(D<67108864);for(var he=0,ye=0;ye<this.length;ye++){var be=(0|this.words[ye])*D,ve=(67108863&be)+(67108863&he);he>>=26,he+=be/67108864|0,he+=ve>>>26,this.words[ye]=67108863&ve}return 0!==he&&(this.words[ye]=he,this.length++),te?this.ineg():this},BN.prototype.muln=function muln(D){return this.clone().imuln(D)},BN.prototype.sqr=function sqr(){return this.mul(this)},BN.prototype.isqr=function isqr(){return this.imul(this.clone())},BN.prototype.pow=function pow(D){var te=function toBitArray(D){for(var te=new Array(D.bitLength()),he=0;he<te.length;he++){var ye=he/26|0,be=he%26;te[he]=D.words[ye]>>>be&1}return te}(D);if(0===te.length)return new BN(1);for(var he=this,ye=0;ye<te.length&&0===te[ye];ye++,he=he.sqr());if(++ye<te.length)for(var be=he.sqr();ye<te.length;ye++,be=be.sqr())0!==te[ye]&&(he=he.mul(be));return he},BN.prototype.iushln=function iushln(D){assert("number"==typeof D&&D>=0);var te,he=D%26,ye=(D-he)/26,be=67108863>>>26-he<<26-he;if(0!==he){var ve=0;for(te=0;te<this.length;te++){var we=this.words[te]&be,_e=(0|this.words[te])-we<<he;this.words[te]=_e|ve,ve=we>>>26-he}ve&&(this.words[te]=ve,this.length++)}if(0!==ye){for(te=this.length-1;te>=0;te--)this.words[te+ye]=this.words[te];for(te=0;te<ye;te++)this.words[te]=0;this.length+=ye}return this._strip()},BN.prototype.ishln=function ishln(D){return assert(0===this.negative),this.iushln(D)},BN.prototype.iushrn=function iushrn(D,te,he){var ye;assert("number"==typeof D&&D>=0),ye=te?(te-te%26)/26:0;var be=D%26,ve=Math.min((D-be)/26,this.length),we=67108863^67108863>>>be<<be,_e=he;if(ye-=ve,ye=Math.max(0,ye),_e){for(var Pe=0;Pe<ve;Pe++)_e.words[Pe]=this.words[Pe];_e.length=ve}if(0===ve);else if(this.length>ve)for(this.length-=ve,Pe=0;Pe<this.length;Pe++)this.words[Pe]=this.words[Pe+ve];else this.words[0]=0,this.length=1;var Ie=0;for(Pe=this.length-1;Pe>=0&&(0!==Ie||Pe>=ye);Pe--){var Re=0|this.words[Pe];this.words[Pe]=Ie<<26-be|Re>>>be,Ie=Re&we}return _e&&0!==Ie&&(_e.words[_e.length++]=Ie),0===this.length&&(this.words[0]=0,this.length=1),this._strip()},BN.prototype.ishrn=function ishrn(D,te,he){return assert(0===this.negative),this.iushrn(D,te,he)},BN.prototype.shln=function shln(D){return this.clone().ishln(D)},BN.prototype.ushln=function ushln(D){return this.clone().iushln(D)},BN.prototype.shrn=function shrn(D){return this.clone().ishrn(D)},BN.prototype.ushrn=function ushrn(D){return this.clone().iushrn(D)},BN.prototype.testn=function testn(D){assert("number"==typeof D&&D>=0);var te=D%26,he=(D-te)/26,ye=1<<te;return!(this.length<=he)&&!!(this.words[he]&ye)},BN.prototype.imaskn=function imaskn(D){assert("number"==typeof D&&D>=0);var te=D%26,he=(D-te)/26;if(assert(0===this.negative,"imaskn works only with positive numbers"),this.length<=he)return this;if(0!==te&&he++,this.length=Math.min(he,this.length),0!==te){var ye=67108863^67108863>>>te<<te;this.words[this.length-1]&=ye}return this._strip()},BN.prototype.maskn=function maskn(D){return this.clone().imaskn(D)},BN.prototype.iaddn=function iaddn(D){return assert("number"==typeof D),assert(D<67108864),D<0?this.isubn(-D):0!==this.negative?1===this.length&&(0|this.words[0])<=D?(this.words[0]=D-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(D),this.negative=1,this):this._iaddn(D)},BN.prototype._iaddn=function _iaddn(D){this.words[0]+=D;for(var te=0;te<this.length&&this.words[te]>=67108864;te++)this.words[te]-=67108864,te===this.length-1?this.words[te+1]=1:this.words[te+1]++;return this.length=Math.max(this.length,te+1),this},BN.prototype.isubn=function isubn(D){if(assert("number"==typeof D),assert(D<67108864),D<0)return this.iaddn(-D);if(0!==this.negative)return this.negative=0,this.iaddn(D),this.negative=1,this;if(this.words[0]-=D,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var te=0;te<this.length&&this.words[te]<0;te++)this.words[te]+=67108864,this.words[te+1]-=1;return this._strip()},BN.prototype.addn=function addn(D){return this.clone().iaddn(D)},BN.prototype.subn=function subn(D){return this.clone().isubn(D)},BN.prototype.iabs=function iabs(){return this.negative=0,this},BN.prototype.abs=function abs(){return this.clone().iabs()},BN.prototype._ishlnsubmul=function _ishlnsubmul(D,te,he){var ye,be,ve=D.length+he;this._expand(ve);var we=0;for(ye=0;ye<D.length;ye++){be=(0|this.words[ye+he])+we;var _e=(0|D.words[ye])*te;we=((be-=67108863&_e)>>26)-(_e/67108864|0),this.words[ye+he]=67108863&be}for(;ye<this.length-he;ye++)we=(be=(0|this.words[ye+he])+we)>>26,this.words[ye+he]=67108863&be;if(0===we)return this._strip();for(assert(-1===we),we=0,ye=0;ye<this.length;ye++)we=(be=-(0|this.words[ye])+we)>>26,this.words[ye]=67108863&be;return this.negative=1,this._strip()},BN.prototype._wordDiv=function _wordDiv(D,te){var he=(this.length,D.length),ye=this.clone(),be=D,ve=0|be.words[be.length-1];0!==(he=26-this._countBits(ve))&&(be=be.ushln(he),ye.iushln(he),ve=0|be.words[be.length-1]);var we,_e=ye.length-be.length;if("mod"!==te){(we=new BN(null)).length=_e+1,we.words=new Array(we.length);for(var Pe=0;Pe<we.length;Pe++)we.words[Pe]=0}var Ie=ye.clone()._ishlnsubmul(be,1,_e);0===Ie.negative&&(ye=Ie,we&&(we.words[_e]=1));for(var Re=_e-1;Re>=0;Re--){var ke=67108864*(0|ye.words[be.length+Re])+(0|ye.words[be.length+Re-1]);for(ke=Math.min(ke/ve|0,67108863),ye._ishlnsubmul(be,ke,Re);0!==ye.negative;)ke--,ye.negative=0,ye._ishlnsubmul(be,1,Re),ye.isZero()||(ye.negative^=1);we&&(we.words[Re]=ke)}return we&&we._strip(),ye._strip(),"div"!==te&&0!==he&&ye.iushrn(he),{div:we||null,mod:ye}},BN.prototype.divmod=function divmod(D,te,he){return assert(!D.isZero()),this.isZero()?{div:new BN(0),mod:new BN(0)}:0!==this.negative&&0===D.negative?(ve=this.neg().divmod(D,te),"mod"!==te&&(ye=ve.div.neg()),"div"!==te&&(be=ve.mod.neg(),he&&0!==be.negative&&be.iadd(D)),{div:ye,mod:be}):0===this.negative&&0!==D.negative?(ve=this.divmod(D.neg(),te),"mod"!==te&&(ye=ve.div.neg()),{div:ye,mod:ve.mod}):0!=(this.negative&D.negative)?(ve=this.neg().divmod(D.neg(),te),"div"!==te&&(be=ve.mod.neg(),he&&0!==be.negative&&be.isub(D)),{div:ve.div,mod:be}):D.length>this.length||this.cmp(D)<0?{div:new BN(0),mod:this}:1===D.length?"div"===te?{div:this.divn(D.words[0]),mod:null}:"mod"===te?{div:null,mod:new BN(this.modrn(D.words[0]))}:{div:this.divn(D.words[0]),mod:new BN(this.modrn(D.words[0]))}:this._wordDiv(D,te);var ye,be,ve},BN.prototype.div=function div(D){return this.divmod(D,"div",!1).div},BN.prototype.mod=function mod(D){return this.divmod(D,"mod",!1).mod},BN.prototype.umod=function umod(D){return this.divmod(D,"mod",!0).mod},BN.prototype.divRound=function divRound(D){var te=this.divmod(D);if(te.mod.isZero())return te.div;var he=0!==te.div.negative?te.mod.isub(D):te.mod,ye=D.ushrn(1),be=D.andln(1),ve=he.cmp(ye);return ve<0||1===be&&0===ve?te.div:0!==te.div.negative?te.div.isubn(1):te.div.iaddn(1)},BN.prototype.modrn=function modrn(D){var te=D<0;te&&(D=-D),assert(D<=67108863);for(var he=(1<<26)%D,ye=0,be=this.length-1;be>=0;be--)ye=(he*ye+(0|this.words[be]))%D;return te?-ye:ye},BN.prototype.modn=function modn(D){return this.modrn(D)},BN.prototype.idivn=function idivn(D){var te=D<0;te&&(D=-D),assert(D<=67108863);for(var he=0,ye=this.length-1;ye>=0;ye--){var be=(0|this.words[ye])+67108864*he;this.words[ye]=be/D|0,he=be%D}return this._strip(),te?this.ineg():this},BN.prototype.divn=function divn(D){return this.clone().idivn(D)},BN.prototype.egcd=function egcd(D){assert(0===D.negative),assert(!D.isZero());var te=this,he=D.clone();te=0!==te.negative?te.umod(D):te.clone();for(var ye=new BN(1),be=new BN(0),ve=new BN(0),we=new BN(1),_e=0;te.isEven()&&he.isEven();)te.iushrn(1),he.iushrn(1),++_e;for(var Pe=he.clone(),Ie=te.clone();!te.isZero();){for(var Re=0,ke=1;0==(te.words[0]&ke)&&Re<26;++Re,ke<<=1);if(Re>0)for(te.iushrn(Re);Re-- >0;)(ye.isOdd()||be.isOdd())&&(ye.iadd(Pe),be.isub(Ie)),ye.iushrn(1),be.iushrn(1);for(var Oe=0,xe=1;0==(he.words[0]&xe)&&Oe<26;++Oe,xe<<=1);if(Oe>0)for(he.iushrn(Oe);Oe-- >0;)(ve.isOdd()||we.isOdd())&&(ve.iadd(Pe),we.isub(Ie)),ve.iushrn(1),we.iushrn(1);te.cmp(he)>=0?(te.isub(he),ye.isub(ve),be.isub(we)):(he.isub(te),ve.isub(ye),we.isub(be))}return{a:ve,b:we,gcd:he.iushln(_e)}},BN.prototype._invmp=function _invmp(D){assert(0===D.negative),assert(!D.isZero());var te=this,he=D.clone();te=0!==te.negative?te.umod(D):te.clone();for(var ye,be=new BN(1),ve=new BN(0),we=he.clone();te.cmpn(1)>0&&he.cmpn(1)>0;){for(var _e=0,Pe=1;0==(te.words[0]&Pe)&&_e<26;++_e,Pe<<=1);if(_e>0)for(te.iushrn(_e);_e-- >0;)be.isOdd()&&be.iadd(we),be.iushrn(1);for(var Ie=0,Re=1;0==(he.words[0]&Re)&&Ie<26;++Ie,Re<<=1);if(Ie>0)for(he.iushrn(Ie);Ie-- >0;)ve.isOdd()&&ve.iadd(we),ve.iushrn(1);te.cmp(he)>=0?(te.isub(he),be.isub(ve)):(he.isub(te),ve.isub(be))}return(ye=0===te.cmpn(1)?be:ve).cmpn(0)<0&&ye.iadd(D),ye},BN.prototype.gcd=function gcd(D){if(this.isZero())return D.abs();if(D.isZero())return this.abs();var te=this.clone(),he=D.clone();te.negative=0,he.negative=0;for(var ye=0;te.isEven()&&he.isEven();ye++)te.iushrn(1),he.iushrn(1);for(;;){for(;te.isEven();)te.iushrn(1);for(;he.isEven();)he.iushrn(1);var be=te.cmp(he);if(be<0){var ve=te;te=he,he=ve}else if(0===be||0===he.cmpn(1))break;te.isub(he)}return he.iushln(ye)},BN.prototype.invm=function invm(D){return this.egcd(D).a.umod(D)},BN.prototype.isEven=function isEven(){return 0==(1&this.words[0])},BN.prototype.isOdd=function isOdd(){return 1==(1&this.words[0])},BN.prototype.andln=function andln(D){return this.words[0]&D},BN.prototype.bincn=function bincn(D){assert("number"==typeof D);var te=D%26,he=(D-te)/26,ye=1<<te;if(this.length<=he)return this._expand(he+1),this.words[he]|=ye,this;for(var be=ye,ve=he;0!==be&&ve<this.length;ve++){var we=0|this.words[ve];be=(we+=be)>>>26,we&=67108863,this.words[ve]=we}return 0!==be&&(this.words[ve]=be,this.length++),this},BN.prototype.isZero=function isZero(){return 1===this.length&&0===this.words[0]},BN.prototype.cmpn=function cmpn(D){var te,he=D<0;if(0!==this.negative&&!he)return-1;if(0===this.negative&&he)return 1;if(this._strip(),this.length>1)te=1;else{he&&(D=-D),assert(D<=67108863,"Number is too big");var ye=0|this.words[0];te=ye===D?0:ye<D?-1:1}return 0!==this.negative?0|-te:te},BN.prototype.cmp=function cmp(D){if(0!==this.negative&&0===D.negative)return-1;if(0===this.negative&&0!==D.negative)return 1;var te=this.ucmp(D);return 0!==this.negative?0|-te:te},BN.prototype.ucmp=function ucmp(D){if(this.length>D.length)return 1;if(this.length<D.length)return-1;for(var te=0,he=this.length-1;he>=0;he--){var ye=0|this.words[he],be=0|D.words[he];if(ye!==be){ye<be?te=-1:ye>be&&(te=1);break}}return te},BN.prototype.gtn=function gtn(D){return 1===this.cmpn(D)},BN.prototype.gt=function gt(D){return 1===this.cmp(D)},BN.prototype.gten=function gten(D){return this.cmpn(D)>=0},BN.prototype.gte=function gte(D){return this.cmp(D)>=0},BN.prototype.ltn=function ltn(D){return-1===this.cmpn(D)},BN.prototype.lt=function lt(D){return-1===this.cmp(D)},BN.prototype.lten=function lten(D){return this.cmpn(D)<=0},BN.prototype.lte=function lte(D){return this.cmp(D)<=0},BN.prototype.eqn=function eqn(D){return 0===this.cmpn(D)},BN.prototype.eq=function eq(D){return 0===this.cmp(D)},BN.red=function red(D){return new Red(D)},BN.prototype.toRed=function toRed(D){return assert(!this.red,"Already a number in reduction context"),assert(0===this.negative,"red works only with positives"),D.convertTo(this)._forceRed(D)},BN.prototype.fromRed=function fromRed(){return assert(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},BN.prototype._forceRed=function _forceRed(D){return this.red=D,this},BN.prototype.forceRed=function forceRed(D){return assert(!this.red,"Already a number in reduction context"),this._forceRed(D)},BN.prototype.redAdd=function redAdd(D){return assert(this.red,"redAdd works only with red numbers"),this.red.add(this,D)},BN.prototype.redIAdd=function redIAdd(D){return assert(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,D)},BN.prototype.redSub=function redSub(D){return assert(this.red,"redSub works only with red numbers"),this.red.sub(this,D)},BN.prototype.redISub=function redISub(D){return assert(this.red,"redISub works only with red numbers"),this.red.isub(this,D)},BN.prototype.redShl=function redShl(D){return assert(this.red,"redShl works only with red numbers"),this.red.shl(this,D)},BN.prototype.redMul=function redMul(D){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,D),this.red.mul(this,D)},BN.prototype.redIMul=function redIMul(D){return assert(this.red,"redMul works only with red numbers"),this.red._verify2(this,D),this.red.imul(this,D)},BN.prototype.redSqr=function redSqr(){return assert(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function redISqr(){return assert(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function redSqrt(){return assert(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function redInvm(){return assert(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function redNeg(){return assert(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function redPow(D){return assert(this.red&&!D.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,D)};var _e={k256:null,p224:null,p192:null,p25519:null};function MPrime(D,te){this.name=D,this.p=new BN(te,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function K256(){MPrime.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function P224(){MPrime.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function P192(){MPrime.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function P25519(){MPrime.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function Red(D){if("string"==typeof D){var te=BN._prime(D);this.m=te.p,this.prime=te}else assert(D.gtn(1),"modulus must be greater than 1"),this.m=D,this.prime=null}function Mont(D){Red.call(this,D),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}MPrime.prototype._tmp=function _tmp(){var D=new BN(null);return D.words=new Array(Math.ceil(this.n/13)),D},MPrime.prototype.ireduce=function ireduce(D){var te,he=D;do{this.split(he,this.tmp),te=(he=(he=this.imulK(he)).iadd(this.tmp)).bitLength()}while(te>this.n);var ye=te<this.n?-1:he.ucmp(this.p);return 0===ye?(he.words[0]=0,he.length=1):ye>0?he.isub(this.p):void 0!==he.strip?he.strip():he._strip(),he},MPrime.prototype.split=function split(D,te){D.iushrn(this.n,0,te)},MPrime.prototype.imulK=function imulK(D){return D.imul(this.k)},inherits(K256,MPrime),K256.prototype.split=function split(D,te){for(var he=4194303,ye=Math.min(D.length,9),be=0;be<ye;be++)te.words[be]=D.words[be];if(te.length=ye,D.length<=9)return D.words[0]=0,void(D.length=1);var ve=D.words[9];for(te.words[te.length++]=ve&he,be=10;be<D.length;be++){var we=0|D.words[be];D.words[be-10]=(we&he)<<4|ve>>>22,ve=we}ve>>>=22,D.words[be-10]=ve,0===ve&&D.length>10?D.length-=10:D.length-=9},K256.prototype.imulK=function imulK(D){D.words[D.length]=0,D.words[D.length+1]=0,D.length+=2;for(var te=0,he=0;he<D.length;he++){var ye=0|D.words[he];te+=977*ye,D.words[he]=67108863&te,te=64*ye+(te/67108864|0)}return 0===D.words[D.length-1]&&(D.length--,0===D.words[D.length-1]&&D.length--),D},inherits(P224,MPrime),inherits(P192,MPrime),inherits(P25519,MPrime),P25519.prototype.imulK=function imulK(D){for(var te=0,he=0;he<D.length;he++){var ye=19*(0|D.words[he])+te,be=67108863&ye;ye>>>=26,D.words[he]=be,te=ye}return 0!==te&&(D.words[D.length++]=te),D},BN._prime=function prime(D){if(_e[D])return _e[D];var prime;if("k256"===D)prime=new K256;else if("p224"===D)prime=new P224;else if("p192"===D)prime=new P192;else{if("p25519"!==D)throw new Error("Unknown prime "+D);prime=new P25519}return _e[D]=prime,prime},Red.prototype._verify1=function _verify1(D){assert(0===D.negative,"red works only with positives"),assert(D.red,"red works only with red numbers")},Red.prototype._verify2=function _verify2(D,te){assert(0==(D.negative|te.negative),"red works only with positives"),assert(D.red&&D.red===te.red,"red works only with red numbers")},Red.prototype.imod=function imod(D){return this.prime?this.prime.ireduce(D)._forceRed(this):(move(D,D.umod(this.m)._forceRed(this)),D)},Red.prototype.neg=function neg(D){return D.isZero()?D.clone():this.m.sub(D)._forceRed(this)},Red.prototype.add=function add(D,te){this._verify2(D,te);var he=D.add(te);return he.cmp(this.m)>=0&&he.isub(this.m),he._forceRed(this)},Red.prototype.iadd=function iadd(D,te){this._verify2(D,te);var he=D.iadd(te);return he.cmp(this.m)>=0&&he.isub(this.m),he},Red.prototype.sub=function sub(D,te){this._verify2(D,te);var he=D.sub(te);return he.cmpn(0)<0&&he.iadd(this.m),he._forceRed(this)},Red.prototype.isub=function isub(D,te){this._verify2(D,te);var he=D.isub(te);return he.cmpn(0)<0&&he.iadd(this.m),he},Red.prototype.shl=function shl(D,te){return this._verify1(D),this.imod(D.ushln(te))},Red.prototype.imul=function imul(D,te){return this._verify2(D,te),this.imod(D.imul(te))},Red.prototype.mul=function mul(D,te){return this._verify2(D,te),this.imod(D.mul(te))},Red.prototype.isqr=function isqr(D){return this.imul(D,D.clone())},Red.prototype.sqr=function sqr(D){return this.mul(D,D)},Red.prototype.sqrt=function sqrt(D){if(D.isZero())return D.clone();var te=this.m.andln(3);if(assert(te%2==1),3===te){var he=this.m.add(new BN(1)).iushrn(2);return this.pow(D,he)}for(var ye=this.m.subn(1),be=0;!ye.isZero()&&0===ye.andln(1);)be++,ye.iushrn(1);assert(!ye.isZero());var ve=new BN(1).toRed(this),we=ve.redNeg(),_e=this.m.subn(1).iushrn(1),Pe=this.m.bitLength();for(Pe=new BN(2*Pe*Pe).toRed(this);0!==this.pow(Pe,_e).cmp(we);)Pe.redIAdd(we);for(var Ie=this.pow(Pe,ye),Re=this.pow(D,ye.addn(1).iushrn(1)),ke=this.pow(D,ye),Oe=be;0!==ke.cmp(ve);){for(var xe=ke,Be=0;0!==xe.cmp(ve);Be++)xe=xe.redSqr();assert(Be<Oe);var Fe=this.pow(Ie,new BN(1).iushln(Oe-Be-1));Re=Re.redMul(Fe),Ie=Fe.redSqr(),ke=ke.redMul(Ie),Oe=Be}return Re},Red.prototype.invm=function invm(D){var te=D._invmp(this.m);return 0!==te.negative?(te.negative=0,this.imod(te).redNeg()):this.imod(te)},Red.prototype.pow=function pow(D,te){if(te.isZero())return new BN(1).toRed(this);if(0===te.cmpn(1))return D.clone();var he=new Array(16);he[0]=new BN(1).toRed(this),he[1]=D;for(var ye=2;ye<he.length;ye++)he[ye]=this.mul(he[ye-1],D);var be=he[0],ve=0,we=0,_e=te.bitLength()%26;for(0===_e&&(_e=26),ye=te.length-1;ye>=0;ye--){for(var Pe=te.words[ye],Ie=_e-1;Ie>=0;Ie--){var Re=Pe>>Ie&1;be!==he[0]&&(be=this.sqr(be)),0!==Re||0!==ve?(ve<<=1,ve|=Re,(4===++we||0===ye&&0===Ie)&&(be=this.mul(be,he[ve]),we=0,ve=0)):we=0}_e=26}return be},Red.prototype.convertTo=function convertTo(D){var te=D.umod(this.m);return te===D?te.clone():te},Red.prototype.convertFrom=function convertFrom(D){var te=D.clone();return te.red=null,te},BN.mont=function mont(D){return new Mont(D)},inherits(Mont,Red),Mont.prototype.convertTo=function convertTo(D){return this.imod(D.ushln(this.shift))},Mont.prototype.convertFrom=function convertFrom(D){var te=this.imod(D.mul(this.rinv));return te.red=null,te},Mont.prototype.imul=function imul(D,te){if(D.isZero()||te.isZero())return D.words[0]=0,D.length=1,D;var he=D.imul(te),ye=he.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),be=he.isub(ye).iushrn(this.shift),ve=be;return be.cmp(this.m)>=0?ve=be.isub(this.m):be.cmpn(0)<0&&(ve=be.iadd(this.m)),ve._forceRed(this)},Mont.prototype.mul=function mul(D,te){if(D.isZero()||te.isZero())return new BN(0)._forceRed(this);var he=D.mul(te),ye=he.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),be=he.isub(ye).iushrn(this.shift),ve=be;return be.cmp(this.m)>=0?ve=be.isub(this.m):be.cmpn(0)<0&&(ve=be.iadd(this.m)),ve._forceRed(this)},Mont.prototype.invm=function invm(D){return this.imod(D._invmp(this.m).mul(this.r2))._forceRed(this)}}(D,Cj)}(Ij);var kj=getDefaultExportFromCjs(Ij.exports);let Oj=!1,xj=!1;const Nj={debug:1,default:2,info:2,warning:3,error:4,off:5};let Mj=Nj.default,Bj=null;const Fj=function _checkNormalize(){try{const D=[];if(["NFD","NFC","NFKD","NFKC"].forEach((te=>{try{if("test"!=="test".normalize(te))throw new Error("bad normalize")}catch(he){D.push(te)}})),D.length)throw new Error("missing "+D.join(", "));if(String.fromCharCode(233).normalize("NFD")!==String.fromCharCode(101,769))throw new Error("broken implementation")}catch(D){return D.message}return null}();var Dj,Lj;!function(D){D.DEBUG="DEBUG",D.INFO="INFO",D.WARNING="WARNING",D.ERROR="ERROR",D.OFF="OFF"}(Dj||(Dj={})),function(D){D.UNKNOWN_ERROR="UNKNOWN_ERROR",D.NOT_IMPLEMENTED="NOT_IMPLEMENTED",D.UNSUPPORTED_OPERATION="UNSUPPORTED_OPERATION",D.NETWORK_ERROR="NETWORK_ERROR",D.SERVER_ERROR="SERVER_ERROR",D.TIMEOUT="TIMEOUT",D.BUFFER_OVERRUN="BUFFER_OVERRUN",D.NUMERIC_FAULT="NUMERIC_FAULT",D.MISSING_NEW="MISSING_NEW",D.INVALID_ARGUMENT="INVALID_ARGUMENT",D.MISSING_ARGUMENT="MISSING_ARGUMENT",D.UNEXPECTED_ARGUMENT="UNEXPECTED_ARGUMENT",D.CALL_EXCEPTION="CALL_EXCEPTION",D.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",D.NONCE_EXPIRED="NONCE_EXPIRED",D.REPLACEMENT_UNDERPRICED="REPLACEMENT_UNDERPRICED",D.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",D.TRANSACTION_REPLACED="TRANSACTION_REPLACED",D.ACTION_REJECTED="ACTION_REJECTED"}(Lj||(Lj={}));const Uj="0123456789abcdef";class Logger{constructor(D){Object.defineProperty(this,"version",{enumerable:!0,value:D,writable:!1})}_log(D,te){const he=D.toLowerCase();null==Nj[he]&&this.throwArgumentError("invalid log level name","logLevel",D),Mj>Nj[he]||console.log.apply(console,te)}debug(...D){this._log(Logger.levels.DEBUG,D)}info(...D){this._log(Logger.levels.INFO,D)}warn(...D){this._log(Logger.levels.WARNING,D)}makeError(D,te,he){if(xj)return this.makeError("censored error",te,{});te||(te=Logger.errors.UNKNOWN_ERROR),he||(he={});const ye=[];Object.keys(he).forEach((D=>{const te=he[D];try{if(te instanceof Uint8Array){let he="";for(let D=0;D<te.length;D++)he+=Uj[te[D]>>4],he+=Uj[15&te[D]];ye.push(D+"=Uint8Array(0x"+he+")")}else ye.push(D+"="+JSON.stringify(te))}catch(te){ye.push(D+"="+JSON.stringify(he[D].toString()))}})),ye.push(`code=${te}`),ye.push(`version=${this.version}`);const be=D;let ve="";switch(te){case Lj.NUMERIC_FAULT:{ve="NUMERIC_FAULT";const te=D;switch(te){case"overflow":case"underflow":case"division-by-zero":ve+="-"+te;break;case"negative-power":case"negative-width":ve+="-unsupported";break;case"unbound-bitwise-result":ve+="-unbound-result"}break}case Lj.CALL_EXCEPTION:case Lj.INSUFFICIENT_FUNDS:case Lj.MISSING_NEW:case Lj.NONCE_EXPIRED:case Lj.REPLACEMENT_UNDERPRICED:case Lj.TRANSACTION_REPLACED:case Lj.UNPREDICTABLE_GAS_LIMIT:ve=te}ve&&(D+=" [ See: https://links.ethers.org/v5-errors-"+ve+" ]"),ye.length&&(D+=" ("+ye.join(", ")+")");const we=new Error(D);return we.reason=be,we.code=te,Object.keys(he).forEach((function(D){we[D]=he[D]})),we}throwError(D,te,he){throw this.makeError(D,te,he)}throwArgumentError(D,te,he){return this.throwError(D,Logger.errors.INVALID_ARGUMENT,{argument:te,value:he})}assert(D,te,he,ye){D||this.throwError(te,he,ye)}assertArgument(D,te,he,ye){D||this.throwArgumentError(te,he,ye)}checkNormalize(D){Fj&&this.throwError("platform missing String.prototype.normalize",Logger.errors.UNSUPPORTED_OPERATION,{operation:"String.prototype.normalize",form:Fj})}checkSafeUint53(D,te){"number"==typeof D&&(null==te&&(te="value not safe"),(D<0||D>=9007199254740991)&&this.throwError(te,Logger.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"out-of-safe-range",value:D}),D%1&&this.throwError(te,Logger.errors.NUMERIC_FAULT,{operation:"checkSafeInteger",fault:"non-integer",value:D}))}checkArgumentCount(D,te,he){he=he?": "+he:"",D<te&&this.throwError("missing argument"+he,Logger.errors.MISSING_ARGUMENT,{count:D,expectedCount:te}),D>te&&this.throwError("too many arguments"+he,Logger.errors.UNEXPECTED_ARGUMENT,{count:D,expectedCount:te})}checkNew(D,te){D!==Object&&null!=D||this.throwError("missing new",Logger.errors.MISSING_NEW,{name:te.name})}checkAbstract(D,te){D===te?this.throwError("cannot instantiate abstract class "+JSON.stringify(te.name)+" directly; use a sub-class",Logger.errors.UNSUPPORTED_OPERATION,{name:D.name,operation:"new"}):D!==Object&&null!=D||this.throwError("missing new",Logger.errors.MISSING_NEW,{name:te.name})}static globalLogger(){return Bj||(Bj=new Logger("logger/5.7.0")),Bj}static setCensorship(D,te){if(!D&&te&&this.globalLogger().throwError("cannot permanently disable censorship",Logger.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"}),Oj){if(!D)return;this.globalLogger().throwError("error censorship permanent",Logger.errors.UNSUPPORTED_OPERATION,{operation:"setCensorship"})}xj=!!D,Oj=!!te}static setLogLevel(D){const te=Nj[D.toLowerCase()];null!=te?Mj=te:Logger.globalLogger().warn("invalid log level - "+D)}static from(D){return new Logger(D)}}Logger.errors=Lj,Logger.levels=Dj;const $j=new Logger("bytes/5.7.0");function isHexable(D){return!!D.toHexString}function addSlice(D){return D.slice||(D.slice=function(){const te=Array.prototype.slice.call(arguments);return addSlice(new Uint8Array(Array.prototype.slice.apply(D,te)))}),D}function isInteger(D){return"number"==typeof D&&D==D&&D%1==0}function isBytes(D){if(null==D)return!1;if(D.constructor===Uint8Array)return!0;if("string"==typeof D)return!1;if(!isInteger(D.length)||D.length<0)return!1;for(let te=0;te<D.length;te++){const he=D[te];if(!isInteger(he)||he<0||he>=256)return!1}return!0}function arrayify(D,te){if(te||(te={}),"number"==typeof D){$j.checkSafeUint53(D,"invalid arrayify value");const te=[];for(;D;)te.unshift(255&D),D=parseInt(String(D/256));return 0===te.length&&te.push(0),addSlice(new Uint8Array(te))}if(te.allowMissingPrefix&&"string"==typeof D&&"0x"!==D.substring(0,2)&&(D="0x"+D),isHexable(D)&&(D=D.toHexString()),isHexString(D)){let he=D.substring(2);he.length%2&&("left"===te.hexPad?he="0"+he:"right"===te.hexPad?he+="0":$j.throwArgumentError("hex data is odd-length","value",D));const ye=[];for(let D=0;D<he.length;D+=2)ye.push(parseInt(he.substring(D,D+2),16));return addSlice(new Uint8Array(ye))}return isBytes(D)?addSlice(new Uint8Array(D)):$j.throwArgumentError("invalid arrayify value","value",D)}function concat(D){const te=D.map((D=>arrayify(D))),he=te.reduce(((D,te)=>D+te.length),0),ye=new Uint8Array(he);return te.reduce(((D,te)=>(ye.set(te,D),D+te.length)),0),addSlice(ye)}function zeroPad(D,te){(D=arrayify(D)).length>te&&$j.throwArgumentError("value out of range","value",arguments[0]);const he=new Uint8Array(te);return he.set(D,te-D.length),addSlice(he)}function isHexString(D,te){return!("string"!=typeof D||!D.match(/^0x[0-9A-Fa-f]*$/))&&(!te||D.length===2+2*te)}const qj="0123456789abcdef";function hexlify(D,te){if(te||(te={}),"number"==typeof D){$j.checkSafeUint53(D,"invalid hexlify value");let te="";for(;D;)te=qj[15&D]+te,D=Math.floor(D/16);return te.length?(te.length%2&&(te="0"+te),"0x"+te):"0x00"}if("bigint"==typeof D)return(D=D.toString(16)).length%2?"0x0"+D:"0x"+D;if(te.allowMissingPrefix&&"string"==typeof D&&"0x"!==D.substring(0,2)&&(D="0x"+D),isHexable(D))return D.toHexString();if(isHexString(D))return D.length%2&&("left"===te.hexPad?D="0x0"+D.substring(2):"right"===te.hexPad?D+="0":$j.throwArgumentError("hex data is odd-length","value",D)),D.toLowerCase();if(isBytes(D)){let te="0x";for(let he=0;he<D.length;he++){let ye=D[he];te+=qj[(240&ye)>>4]+qj[15&ye]}return te}return $j.throwArgumentError("invalid hexlify value","value",D)}function hexDataSlice(D,te,he){return"string"!=typeof D?D=hexlify(D):(!isHexString(D)||D.length%2)&&$j.throwArgumentError("invalid hexData","value",D),te=2+2*te,null!=he?"0x"+D.substring(te,2+2*he):"0x"+D.substring(te)}function hexValue(D){const te=function hexStripZeros(D){"string"!=typeof D&&(D=hexlify(D));isHexString(D)||$j.throwArgumentError("invalid hex string","value",D);D=D.substring(2);let te=0;for(;te<D.length&&"0"===D[te];)te++;return"0x"+D.substring(te)}(hexlify(D,{hexPad:"left"}));return"0x"===te?"0x0":te}function hexZeroPad(D,te){for("string"!=typeof D?D=hexlify(D):isHexString(D)||$j.throwArgumentError("invalid hex string","value",D),D.length>2*te+2&&$j.throwArgumentError("value out of range","value",arguments[1]);D.length<2*te+2;)D="0x0"+D.substring(2);return D}var Gj=kj.BN;const jj=new Logger("bignumber/5.7.0"),Hj={},zj=9007199254740991;let Wj=!1;class BigNumber{constructor(D,te){D!==Hj&&jj.throwError("cannot call constructor directly; use BigNumber.from",Logger.errors.UNSUPPORTED_OPERATION,{operation:"new (BigNumber)"}),this._hex=te,this._isBigNumber=!0,Object.freeze(this)}fromTwos(D){return toBigNumber(toBN(this).fromTwos(D))}toTwos(D){return toBigNumber(toBN(this).toTwos(D))}abs(){return"-"===this._hex[0]?BigNumber.from(this._hex.substring(1)):this}add(D){return toBigNumber(toBN(this).add(toBN(D)))}sub(D){return toBigNumber(toBN(this).sub(toBN(D)))}div(D){return BigNumber.from(D).isZero()&&throwFault("division-by-zero","div"),toBigNumber(toBN(this).div(toBN(D)))}mul(D){return toBigNumber(toBN(this).mul(toBN(D)))}mod(D){const te=toBN(D);return te.isNeg()&&throwFault("division-by-zero","mod"),toBigNumber(toBN(this).umod(te))}pow(D){const te=toBN(D);return te.isNeg()&&throwFault("negative-power","pow"),toBigNumber(toBN(this).pow(te))}and(D){const te=toBN(D);return(this.isNegative()||te.isNeg())&&throwFault("unbound-bitwise-result","and"),toBigNumber(toBN(this).and(te))}or(D){const te=toBN(D);return(this.isNegative()||te.isNeg())&&throwFault("unbound-bitwise-result","or"),toBigNumber(toBN(this).or(te))}xor(D){const te=toBN(D);return(this.isNegative()||te.isNeg())&&throwFault("unbound-bitwise-result","xor"),toBigNumber(toBN(this).xor(te))}mask(D){return(this.isNegative()||D<0)&&throwFault("negative-width","mask"),toBigNumber(toBN(this).maskn(D))}shl(D){return(this.isNegative()||D<0)&&throwFault("negative-width","shl"),toBigNumber(toBN(this).shln(D))}shr(D){return(this.isNegative()||D<0)&&throwFault("negative-width","shr"),toBigNumber(toBN(this).shrn(D))}eq(D){return toBN(this).eq(toBN(D))}lt(D){return toBN(this).lt(toBN(D))}lte(D){return toBN(this).lte(toBN(D))}gt(D){return toBN(this).gt(toBN(D))}gte(D){return toBN(this).gte(toBN(D))}isNegative(){return"-"===this._hex[0]}isZero(){return toBN(this).isZero()}toNumber(){try{return toBN(this).toNumber()}catch(D){throwFault("overflow","toNumber",this.toString())}return null}toBigInt(){try{return BigInt(this.toString())}catch(D){}return jj.throwError("this platform does not support BigInt",Logger.errors.UNSUPPORTED_OPERATION,{value:this.toString()})}toString(){return arguments.length>0&&(10===arguments[0]?Wj||(Wj=!0,jj.warn("BigNumber.toString does not accept any parameters; base-10 is assumed")):16===arguments[0]?jj.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()",Logger.errors.UNEXPECTED_ARGUMENT,{}):jj.throwError("BigNumber.toString does not accept parameters",Logger.errors.UNEXPECTED_ARGUMENT,{})),toBN(this).toString(10)}toHexString(){return this._hex}toJSON(D){return{type:"BigNumber",hex:this.toHexString()}}static from(D){if(D instanceof BigNumber)return D;if("string"==typeof D)return D.match(/^-?0x[0-9a-f]+$/i)?new BigNumber(Hj,toHex$2(D)):D.match(/^-?[0-9]+$/)?new BigNumber(Hj,toHex$2(new Gj(D))):jj.throwArgumentError("invalid BigNumber string","value",D);if("number"==typeof D)return D%1&&throwFault("underflow","BigNumber.from",D),(D>=zj||D<=-zj)&&throwFault("overflow","BigNumber.from",D),BigNumber.from(String(D));const te=D;if("bigint"==typeof te)return BigNumber.from(te.toString());if(isBytes(te))return BigNumber.from(hexlify(te));if(te)if(te.toHexString){const D=te.toHexString();if("string"==typeof D)return BigNumber.from(D)}else{let D=te._hex;if(null==D&&"BigNumber"===te.type&&(D=te.hex),"string"==typeof D&&(isHexString(D)||"-"===D[0]&&isHexString(D.substring(1))))return BigNumber.from(D)}return jj.throwArgumentError("invalid BigNumber value","value",D)}static isBigNumber(D){return!(!D||!D._isBigNumber)}}function toHex$2(D){if("string"!=typeof D)return toHex$2(D.toString(16));if("-"===D[0])return"-"===(D=D.substring(1))[0]&&jj.throwArgumentError("invalid hex","value",D),"0x00"===(D=toHex$2(D))?D:"-"+D;if("0x"!==D.substring(0,2)&&(D="0x"+D),"0x"===D)return"0x00";for(D.length%2&&(D="0x0"+D.substring(2));D.length>4&&"0x00"===D.substring(0,4);)D="0x"+D.substring(4);return D}function toBigNumber(D){return BigNumber.from(toHex$2(D))}function toBN(D){const te=BigNumber.from(D).toHexString();return"-"===te[0]?new Gj("-"+te.substring(3),16):new Gj(te.substring(2),16)}function throwFault(D,te,he){const ye={fault:D,operation:te};return null!=he&&(ye.value=he),jj.throwError(D,Logger.errors.NUMERIC_FAULT,ye)}var __awaiter$3=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const Vj=new Logger("properties/5.7.0");function defineReadOnly(D,te,he){Object.defineProperty(D,te,{enumerable:!0,value:he,writable:!1})}function getStatic(D,te){for(let he=0;he<32;he++){if(D[te])return D[te];if(!D.prototype||"object"!=typeof D.prototype)break;D=Object.getPrototypeOf(D.prototype).constructor}return null}function resolveProperties(D){return __awaiter$3(this,void 0,void 0,(function*(){const te=Object.keys(D).map((te=>{const he=D[te];return Promise.resolve(he).then((D=>({key:te,value:D})))}));return(yield Promise.all(te)).reduce(((D,te)=>(D[te.key]=te.value,D)),{})}))}function shallowCopy(D){const te={};for(const he in D)te[he]=D[he];return te}const Kj={bigint:!0,boolean:!0,function:!0,number:!0,string:!0};function _isFrozen(D){if(null==D||Kj[typeof D])return!0;if(Array.isArray(D)||"object"==typeof D){if(!Object.isFrozen(D))return!1;const te=Object.keys(D);for(let he=0;he<te.length;he++){let ye=null;try{ye=D[te[he]]}catch(D){continue}if(!_isFrozen(ye))return!1}return!0}return Vj.throwArgumentError("Cannot deepCopy "+typeof D,"object",D)}function _deepCopy(D){if(_isFrozen(D))return D;if(Array.isArray(D))return Object.freeze(D.map((D=>deepCopy(D))));if("object"==typeof D){const te={};for(const he in D){const ye=D[he];void 0!==ye&&defineReadOnly(te,he,deepCopy(ye))}return te}return Vj.throwArgumentError("Cannot deepCopy "+typeof D,"object",D)}function deepCopy(D){return _deepCopy(D)}class Description{constructor(D){for(const te in D)this[te]=deepCopy(D[te])}}const Jj="abi/5.7.0",Xj=new Logger(Jj),Qj={};let Zj={calldata:!0,memory:!0,storage:!0},Yj={calldata:!0,memory:!0};function checkModifier(D,te){if("bytes"===D||"string"===D){if(Zj[te])return!0}else if("address"===D){if("payable"===te)return!0}else if((D.indexOf("[")>=0||"tuple"===D)&&Yj[te])return!0;return(Zj[te]||"payable"===te)&&Xj.throwArgumentError("invalid modifier","name",te),!1}function populate(D,te){for(let he in te)defineReadOnly(D,he,te[he])}const eH=Object.freeze({sighash:"sighash",minimal:"minimal",full:"full",json:"json"}),tH=new RegExp(/^(.*)\[([0-9]*)\]$/);class ParamType{constructor(D,te){D!==Qj&&Xj.throwError("use fromString",Logger.errors.UNSUPPORTED_OPERATION,{operation:"new ParamType()"}),populate(this,te);let he=this.type.match(tH);populate(this,he?{arrayLength:parseInt(he[2]||"-1"),arrayChildren:ParamType.fromObject({type:he[1],components:this.components}),baseType:"array"}:{arrayLength:null,arrayChildren:null,baseType:null!=this.components?"tuple":this.type}),this._isParamType=!0,Object.freeze(this)}format(D){if(D||(D=eH.sighash),eH[D]||Xj.throwArgumentError("invalid format type","format",D),D===eH.json){let te={type:"tuple"===this.baseType?"tuple":this.type,name:this.name||void 0};return"boolean"==typeof this.indexed&&(te.indexed=this.indexed),this.components&&(te.components=this.components.map((te=>JSON.parse(te.format(D))))),JSON.stringify(te)}let te="";return"array"===this.baseType?(te+=this.arrayChildren.format(D),te+="["+(this.arrayLength<0?"":String(this.arrayLength))+"]"):"tuple"===this.baseType?(D!==eH.sighash&&(te+=this.type),te+="("+this.components.map((te=>te.format(D))).join(D===eH.full?", ":",")+")"):te+=this.type,D!==eH.sighash&&(!0===this.indexed&&(te+=" indexed"),D===eH.full&&this.name&&(te+=" "+this.name)),te}static from(D,te){return"string"==typeof D?ParamType.fromString(D,te):ParamType.fromObject(D)}static fromObject(D){return ParamType.isParamType(D)?D:new ParamType(Qj,{name:D.name||null,type:verifyType(D.type),indexed:null==D.indexed?null:!!D.indexed,components:D.components?D.components.map(ParamType.fromObject):null})}static fromString(D,te){return function ParamTypify(D){return ParamType.fromObject({name:D.name,type:D.type,indexed:D.indexed,components:D.components})}(function parseParamType(D,te){let he=D;function throwError(te){Xj.throwArgumentError(`unexpected character at position ${te}`,"param",D)}function newNode(D){let he={type:"",name:"",parent:D,state:{allowType:!0}};return te&&(he.indexed=!1),he}D=D.replace(/\s/g," ");let ye={type:"",name:"",state:{allowType:!0}},be=ye;for(let he=0;he<D.length;he++){let ye=D[he];switch(ye){case"(":be.state.allowType&&""===be.type?be.type="tuple":be.state.allowParams||throwError(he),be.state.allowType=!1,be.type=verifyType(be.type),be.components=[newNode(be)],be=be.components[0];break;case")":delete be.state,"indexed"===be.name&&(te||throwError(he),be.indexed=!0,be.name=""),checkModifier(be.type,be.name)&&(be.name=""),be.type=verifyType(be.type);let D=be;be=be.parent,be||throwError(he),delete D.parent,be.state.allowParams=!1,be.state.allowName=!0,be.state.allowArray=!0;break;case",":delete be.state,"indexed"===be.name&&(te||throwError(he),be.indexed=!0,be.name=""),checkModifier(be.type,be.name)&&(be.name=""),be.type=verifyType(be.type);let ve=newNode(be.parent);be.parent.components.push(ve),delete be.parent,be=ve;break;case" ":be.state.allowType&&""!==be.type&&(be.type=verifyType(be.type),delete be.state.allowType,be.state.allowName=!0,be.state.allowParams=!0),be.state.allowName&&""!==be.name&&("indexed"===be.name?(te||throwError(he),be.indexed&&throwError(he),be.indexed=!0,be.name=""):checkModifier(be.type,be.name)?be.name="":be.state.allowName=!1);break;case"[":be.state.allowArray||throwError(he),be.type+=ye,be.state.allowArray=!1,be.state.allowName=!1,be.state.readArray=!0;break;case"]":be.state.readArray||throwError(he),be.type+=ye,be.state.readArray=!1,be.state.allowArray=!0,be.state.allowName=!0;break;default:be.state.allowType?(be.type+=ye,be.state.allowParams=!0,be.state.allowArray=!0):be.state.allowName?(be.name+=ye,delete be.state.allowArray):be.state.readArray?be.type+=ye:throwError(he)}}return be.parent&&Xj.throwArgumentError("unexpected eof","param",D),delete ye.state,"indexed"===be.name?(te||throwError(he.length-7),be.indexed&&throwError(he.length-7),be.indexed=!0,be.name=""):checkModifier(be.type,be.name)&&(be.name=""),ye.type=verifyType(ye.type),ye}(D,!!te))}static isParamType(D){return!(null==D||!D._isParamType)}}function parseParams(D,te){return function splitNesting(D){D=D.trim();let te=[],he="",ye=0;for(let be=0;be<D.length;be++){let ve=D[be];","===ve&&0===ye?(te.push(he),he=""):(he+=ve,"("===ve?ye++:")"===ve&&(ye--,-1===ye&&Xj.throwArgumentError("unbalanced parenthesis","value",D)))}he&&te.push(he);return te}(D).map((D=>ParamType.fromString(D,te)))}class Fragment{constructor(D,te){D!==Qj&&Xj.throwError("use a static from method",Logger.errors.UNSUPPORTED_OPERATION,{operation:"new Fragment()"}),populate(this,te),this._isFragment=!0,Object.freeze(this)}static from(D){return Fragment.isFragment(D)?D:"string"==typeof D?Fragment.fromString(D):Fragment.fromObject(D)}static fromObject(D){if(Fragment.isFragment(D))return D;switch(D.type){case"function":return FunctionFragment.fromObject(D);case"event":return EventFragment.fromObject(D);case"constructor":return ConstructorFragment.fromObject(D);case"error":return ErrorFragment.fromObject(D);case"fallback":case"receive":return null}return Xj.throwArgumentError("invalid fragment object","value",D)}static fromString(D){return"event"===(D=(D=(D=D.replace(/\s/g," ")).replace(/\(/g," (").replace(/\)/g,") ").replace(/\s+/g," ")).trim()).split(" ")[0]?EventFragment.fromString(D.substring(5).trim()):"function"===D.split(" ")[0]?FunctionFragment.fromString(D.substring(8).trim()):"constructor"===D.split("(")[0].trim()?ConstructorFragment.fromString(D.trim()):"error"===D.split(" ")[0]?ErrorFragment.fromString(D.substring(5).trim()):Xj.throwArgumentError("unsupported fragment","value",D)}static isFragment(D){return!(!D||!D._isFragment)}}class EventFragment extends Fragment{format(D){if(D||(D=eH.sighash),eH[D]||Xj.throwArgumentError("invalid format type","format",D),D===eH.json)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});let te="";return D!==eH.sighash&&(te+="event "),te+=this.name+"("+this.inputs.map((te=>te.format(D))).join(D===eH.full?", ":",")+") ",D!==eH.sighash&&this.anonymous&&(te+="anonymous "),te.trim()}static from(D){return"string"==typeof D?EventFragment.fromString(D):EventFragment.fromObject(D)}static fromObject(D){if(EventFragment.isEventFragment(D))return D;"event"!==D.type&&Xj.throwArgumentError("invalid event object","value",D);const te={name:verifyIdentifier(D.name),anonymous:D.anonymous,inputs:D.inputs?D.inputs.map(ParamType.fromObject):[],type:"event"};return new EventFragment(Qj,te)}static fromString(D){let te=D.match(nH);te||Xj.throwArgumentError("invalid event string","value",D);let he=!1;return te[3].split(" ").forEach((D=>{switch(D.trim()){case"anonymous":he=!0;break;case"":break;default:Xj.warn("unknown modifier: "+D)}})),EventFragment.fromObject({name:te[1].trim(),anonymous:he,inputs:parseParams(te[2],!0),type:"event"})}static isEventFragment(D){return D&&D._isFragment&&"event"===D.type}}function parseGas(D,te){te.gas=null;let he=D.split("@");return 1!==he.length?(he.length>2&&Xj.throwArgumentError("invalid human-readable ABI signature","value",D),he[1].match(/^[0-9]+$/)||Xj.throwArgumentError("invalid human-readable ABI signature gas","value",D),te.gas=BigNumber.from(he[1]),he[0]):D}function parseModifiers(D,te){te.constant=!1,te.payable=!1,te.stateMutability="nonpayable",D.split(" ").forEach((D=>{switch(D.trim()){case"constant":te.constant=!0;break;case"payable":te.payable=!0,te.stateMutability="payable";break;case"nonpayable":te.payable=!1,te.stateMutability="nonpayable";break;case"pure":te.constant=!0,te.stateMutability="pure";break;case"view":te.constant=!0,te.stateMutability="view";break;case"external":case"public":case"":break;default:console.log("unknown modifier: "+D)}}))}function verifyState(D){let te={constant:!1,payable:!0,stateMutability:"payable"};return null!=D.stateMutability?(te.stateMutability=D.stateMutability,te.constant="view"===te.stateMutability||"pure"===te.stateMutability,null!=D.constant&&!!D.constant!==te.constant&&Xj.throwArgumentError("cannot have constant function with mutability "+te.stateMutability,"value",D),te.payable="payable"===te.stateMutability,null!=D.payable&&!!D.payable!==te.payable&&Xj.throwArgumentError("cannot have payable function with mutability "+te.stateMutability,"value",D)):null!=D.payable?(te.payable=!!D.payable,null!=D.constant||te.payable||"constructor"===D.type||Xj.throwArgumentError("unable to determine stateMutability","value",D),te.constant=!!D.constant,te.constant?te.stateMutability="view":te.stateMutability=te.payable?"payable":"nonpayable",te.payable&&te.constant&&Xj.throwArgumentError("cannot have constant payable function","value",D)):null!=D.constant?(te.constant=!!D.constant,te.payable=!te.constant,te.stateMutability=te.constant?"view":"payable"):"constructor"!==D.type&&Xj.throwArgumentError("unable to determine stateMutability","value",D),te}class ConstructorFragment extends Fragment{format(D){if(D||(D=eH.sighash),eH[D]||Xj.throwArgumentError("invalid format type","format",D),D===eH.json)return JSON.stringify({type:"constructor",stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});D===eH.sighash&&Xj.throwError("cannot format a constructor for sighash",Logger.errors.UNSUPPORTED_OPERATION,{operation:"format(sighash)"});let te="constructor("+this.inputs.map((te=>te.format(D))).join(D===eH.full?", ":",")+") ";return this.stateMutability&&"nonpayable"!==this.stateMutability&&(te+=this.stateMutability+" "),te.trim()}static from(D){return"string"==typeof D?ConstructorFragment.fromString(D):ConstructorFragment.fromObject(D)}static fromObject(D){if(ConstructorFragment.isConstructorFragment(D))return D;"constructor"!==D.type&&Xj.throwArgumentError("invalid constructor object","value",D);let te=verifyState(D);te.constant&&Xj.throwArgumentError("constructor cannot be constant","value",D);const he={name:null,type:D.type,inputs:D.inputs?D.inputs.map(ParamType.fromObject):[],payable:te.payable,stateMutability:te.stateMutability,gas:D.gas?BigNumber.from(D.gas):null};return new ConstructorFragment(Qj,he)}static fromString(D){let te={type:"constructor"},he=(D=parseGas(D,te)).match(nH);return he&&"constructor"===he[1].trim()||Xj.throwArgumentError("invalid constructor string","value",D),te.inputs=parseParams(he[2].trim(),!1),parseModifiers(he[3].trim(),te),ConstructorFragment.fromObject(te)}static isConstructorFragment(D){return D&&D._isFragment&&"constructor"===D.type}}class FunctionFragment extends ConstructorFragment{format(D){if(D||(D=eH.sighash),eH[D]||Xj.throwArgumentError("invalid format type","format",D),D===eH.json)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:this.gas?this.gas.toNumber():void 0,inputs:this.inputs.map((te=>JSON.parse(te.format(D)))),outputs:this.outputs.map((te=>JSON.parse(te.format(D))))});let te="";return D!==eH.sighash&&(te+="function "),te+=this.name+"("+this.inputs.map((te=>te.format(D))).join(D===eH.full?", ":",")+") ",D!==eH.sighash&&(this.stateMutability?"nonpayable"!==this.stateMutability&&(te+=this.stateMutability+" "):this.constant&&(te+="view "),this.outputs&&this.outputs.length&&(te+="returns ("+this.outputs.map((te=>te.format(D))).join(", ")+") "),null!=this.gas&&(te+="@"+this.gas.toString()+" ")),te.trim()}static from(D){return"string"==typeof D?FunctionFragment.fromString(D):FunctionFragment.fromObject(D)}static fromObject(D){if(FunctionFragment.isFunctionFragment(D))return D;"function"!==D.type&&Xj.throwArgumentError("invalid function object","value",D);let te=verifyState(D);const he={type:D.type,name:verifyIdentifier(D.name),constant:te.constant,inputs:D.inputs?D.inputs.map(ParamType.fromObject):[],outputs:D.outputs?D.outputs.map(ParamType.fromObject):[],payable:te.payable,stateMutability:te.stateMutability,gas:D.gas?BigNumber.from(D.gas):null};return new FunctionFragment(Qj,he)}static fromString(D){let te={type:"function"},he=(D=parseGas(D,te)).split(" returns ");he.length>2&&Xj.throwArgumentError("invalid function string","value",D);let ye=he[0].match(nH);if(ye||Xj.throwArgumentError("invalid function signature","value",D),te.name=ye[1].trim(),te.name&&verifyIdentifier(te.name),te.inputs=parseParams(ye[2],!1),parseModifiers(ye[3].trim(),te),he.length>1){let ye=he[1].match(nH);""==ye[1].trim()&&""==ye[3].trim()||Xj.throwArgumentError("unexpected tokens","value",D),te.outputs=parseParams(ye[2],!1)}else te.outputs=[];return FunctionFragment.fromObject(te)}static isFunctionFragment(D){return D&&D._isFragment&&"function"===D.type}}function checkForbidden(D){const te=D.format();return"Error(string)"!==te&&"Panic(uint256)"!==te||Xj.throwArgumentError(`cannot specify user defined ${te} error`,"fragment",D),D}class ErrorFragment extends Fragment{format(D){if(D||(D=eH.sighash),eH[D]||Xj.throwArgumentError("invalid format type","format",D),D===eH.json)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((te=>JSON.parse(te.format(D))))});let te="";return D!==eH.sighash&&(te+="error "),te+=this.name+"("+this.inputs.map((te=>te.format(D))).join(D===eH.full?", ":",")+") ",te.trim()}static from(D){return"string"==typeof D?ErrorFragment.fromString(D):ErrorFragment.fromObject(D)}static fromObject(D){if(ErrorFragment.isErrorFragment(D))return D;"error"!==D.type&&Xj.throwArgumentError("invalid error object","value",D);const te={type:D.type,name:verifyIdentifier(D.name),inputs:D.inputs?D.inputs.map(ParamType.fromObject):[]};return checkForbidden(new ErrorFragment(Qj,te))}static fromString(D){let te={type:"error"},he=D.match(nH);return he||Xj.throwArgumentError("invalid error signature","value",D),te.name=he[1].trim(),te.name&&verifyIdentifier(te.name),te.inputs=parseParams(he[2],!1),checkForbidden(ErrorFragment.fromObject(te))}static isErrorFragment(D){return D&&D._isFragment&&"error"===D.type}}function verifyType(D){return D.match(/^uint($|[^1-9])/)?D="uint256"+D.substring(4):D.match(/^int($|[^1-9])/)&&(D="int256"+D.substring(3)),D}const rH=new RegExp("^[a-zA-Z$_][a-zA-Z0-9$_]*$");function verifyIdentifier(D){return D&&D.match(rH)||Xj.throwArgumentError(`invalid identifier "${D}"`,"value",D),D}const nH=new RegExp("^([^)(]*)\\((.*)\\)([^)(]*)$");const aH=new Logger(Jj);class Coder{constructor(D,te,he,ye){this.name=D,this.type=te,this.localName=he,this.dynamic=ye}_throwError(D,te){aH.throwArgumentError(D,this.localName,te)}}class Writer{constructor(D){defineReadOnly(this,"wordSize",D||32),this._data=[],this._dataLength=0,this._padding=new Uint8Array(D)}get data(){return function hexConcat(D){let te="0x";return D.forEach((D=>{te+=hexlify(D).substring(2)})),te}(this._data)}get length(){return this._dataLength}_writeData(D){return this._data.push(D),this._dataLength+=D.length,D.length}appendWriter(D){return this._writeData(concat(D._data))}writeBytes(D){let te=arrayify(D);const he=te.length%this.wordSize;return he&&(te=concat([te,this._padding.slice(he)])),this._writeData(te)}_getValue(D){let te=arrayify(BigNumber.from(D));return te.length>this.wordSize&&aH.throwError("value out-of-bounds",Logger.errors.BUFFER_OVERRUN,{length:this.wordSize,offset:te.length}),te.length%this.wordSize&&(te=concat([this._padding.slice(te.length%this.wordSize),te])),te}writeValue(D){return this._writeData(this._getValue(D))}writeUpdatableValue(){const D=this._data.length;return this._data.push(this._padding),this._dataLength+=this.wordSize,te=>{this._data[D]=this._getValue(te)}}}class Reader{constructor(D,te,he,ye){defineReadOnly(this,"_data",arrayify(D)),defineReadOnly(this,"wordSize",te||32),defineReadOnly(this,"_coerceFunc",he),defineReadOnly(this,"allowLoose",ye),this._offset=0}get data(){return hexlify(this._data)}get consumed(){return this._offset}static coerce(D,te){let he=D.match("^u?int([0-9]+)$");return he&&parseInt(he[1])<=48&&(te=te.toNumber()),te}coerce(D,te){return this._coerceFunc?this._coerceFunc(D,te):Reader.coerce(D,te)}_peekBytes(D,te,he){let ye=Math.ceil(te/this.wordSize)*this.wordSize;return this._offset+ye>this._data.length&&(this.allowLoose&&he&&this._offset+te<=this._data.length?ye=te:aH.throwError("data out-of-bounds",Logger.errors.BUFFER_OVERRUN,{length:this._data.length,offset:this._offset+ye})),this._data.slice(this._offset,this._offset+ye)}subReader(D){return new Reader(this._data.slice(this._offset+D),this.wordSize,this._coerceFunc,this.allowLoose)}readBytes(D,te){let he=this._peekBytes(0,D,!!te);return this._offset+=he.length,he.slice(0,D)}readValue(){return BigNumber.from(this.readBytes(this.wordSize))}}var iH={exports:{}};
/**
   * [js-sha3]{@link https://github.com/emn178/js-sha3}
   *
   * @version 0.8.0
   * @author Chen, Yi-Cyuan [emn178@gmail.com]
   * @copyright Chen, Yi-Cyuan 2015-2018
   * @license MIT
   */!function(D){!function(){var te="input is invalid type",he="object"==typeof window,ye=he?window:{};ye.JS_SHA3_NO_WINDOW&&(he=!1);var be=!he&&"object"==typeof self;!ye.JS_SHA3_NO_NODE_JS&&!1?ye=Cj:be&&(ye=self);var ve=!ye.JS_SHA3_NO_COMMON_JS&&D.exports,we=!ye.JS_SHA3_NO_ARRAY_BUFFER&&"undefined"!=typeof ArrayBuffer,_e="0123456789abcdef".split(""),Pe=[4,1024,262144,67108864],Ie=[0,8,16,24],Re=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],ke=[224,256,384,512],Oe=[128,256],xe=["hex","buffer","arrayBuffer","array","digest"],Be={128:168,256:136};!ye.JS_SHA3_NO_NODE_JS&&Array.isArray||(Array.isArray=function(D){return"[object Array]"===Object.prototype.toString.call(D)}),!we||!ye.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW&&ArrayBuffer.isView||(ArrayBuffer.isView=function(D){return"object"==typeof D&&D.buffer&&D.buffer.constructor===ArrayBuffer});for(var createOutputMethod=function(D,te,he){return function(ye){return new Keccak(D,te,D).update(ye)[he]()}},createShakeOutputMethod=function(D,te,he){return function(ye,be){return new Keccak(D,te,be).update(ye)[he]()}},createCshakeOutputMethod=function(D,te,he){return function(te,ye,be,ve){return De["cshake"+D].update(te,ye,be,ve)[he]()}},createKmacOutputMethod=function(D,te,he){return function(te,ye,be,ve){return De["kmac"+D].update(te,ye,be,ve)[he]()}},createOutputMethods=function(D,te,he,ye){for(var be=0;be<xe.length;++be){var ve=xe[be];D[ve]=te(he,ye,ve)}return D},createMethod=function(D,te){var he=createOutputMethod(D,te,"hex");return he.create=function(){return new Keccak(D,te,D)},he.update=function(D){return he.create().update(D)},createOutputMethods(he,createOutputMethod,D,te)},Fe=[{name:"keccak",padding:[1,256,65536,16777216],bits:ke,createMethod:createMethod},{name:"sha3",padding:[6,1536,393216,100663296],bits:ke,createMethod:createMethod},{name:"shake",padding:[31,7936,2031616,520093696],bits:Oe,createMethod:function(D,te){var he=createShakeOutputMethod(D,te,"hex");return he.create=function(he){return new Keccak(D,te,he)},he.update=function(D,te){return he.create(te).update(D)},createOutputMethods(he,createShakeOutputMethod,D,te)}},{name:"cshake",padding:Pe,bits:Oe,createMethod:function(D,te){var he=Be[D],ye=createCshakeOutputMethod(D,0,"hex");return ye.create=function(ye,be,ve){return be||ve?new Keccak(D,te,ye).bytepad([be,ve],he):De["shake"+D].create(ye)},ye.update=function(D,te,he,be){return ye.create(te,he,be).update(D)},createOutputMethods(ye,createCshakeOutputMethod,D,te)}},{name:"kmac",padding:Pe,bits:Oe,createMethod:function(D,te){var he=Be[D],ye=createKmacOutputMethod(D,0,"hex");return ye.create=function(ye,be,ve){return new Kmac(D,te,be).bytepad(["KMAC",ve],he).bytepad([ye],he)},ye.update=function(D,te,he,be){return ye.create(D,he,be).update(te)},createOutputMethods(ye,createKmacOutputMethod,D,te)}}],De={},Le=[],Ue=0;Ue<Fe.length;++Ue)for(var qe=Fe[Ue],je=qe.bits,Je=0;Je<je.length;++Je){var et=qe.name+"_"+je[Je];if(Le.push(et),De[et]=qe.createMethod(je[Je],qe.padding),"sha3"!==qe.name){var tt=qe.name+je[Je];Le.push(tt),De[tt]=De[et]}}function Keccak(D,te,he){this.blocks=[],this.s=[],this.padding=te,this.outputBits=he,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(D<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=he>>5,this.extraBytes=(31&he)>>3;for(var ye=0;ye<50;++ye)this.s[ye]=0}function Kmac(D,te,he){Keccak.call(this,D,te,he)}Keccak.prototype.update=function(D){if(this.finalized)throw new Error("finalize already called");var he,ye=typeof D;if("string"!==ye){if("object"!==ye)throw new Error(te);if(null===D)throw new Error(te);if(we&&D.constructor===ArrayBuffer)D=new Uint8Array(D);else if(!(Array.isArray(D)||we&&ArrayBuffer.isView(D)))throw new Error(te);he=!0}for(var be,ve,_e=this.blocks,Pe=this.byteCount,Re=D.length,ke=this.blockCount,Oe=0,xe=this.s;Oe<Re;){if(this.reset)for(this.reset=!1,_e[0]=this.block,be=1;be<ke+1;++be)_e[be]=0;if(he)for(be=this.start;Oe<Re&&be<Pe;++Oe)_e[be>>2]|=D[Oe]<<Ie[3&be++];else for(be=this.start;Oe<Re&&be<Pe;++Oe)(ve=D.charCodeAt(Oe))<128?_e[be>>2]|=ve<<Ie[3&be++]:ve<2048?(_e[be>>2]|=(192|ve>>6)<<Ie[3&be++],_e[be>>2]|=(128|63&ve)<<Ie[3&be++]):ve<55296||ve>=57344?(_e[be>>2]|=(224|ve>>12)<<Ie[3&be++],_e[be>>2]|=(128|ve>>6&63)<<Ie[3&be++],_e[be>>2]|=(128|63&ve)<<Ie[3&be++]):(ve=65536+((1023&ve)<<10|1023&D.charCodeAt(++Oe)),_e[be>>2]|=(240|ve>>18)<<Ie[3&be++],_e[be>>2]|=(128|ve>>12&63)<<Ie[3&be++],_e[be>>2]|=(128|ve>>6&63)<<Ie[3&be++],_e[be>>2]|=(128|63&ve)<<Ie[3&be++]);if(this.lastByteIndex=be,be>=Pe){for(this.start=be-Pe,this.block=_e[ke],be=0;be<ke;++be)xe[be]^=_e[be];f(xe),this.reset=!0}else this.start=be}return this},Keccak.prototype.encode=function(D,te){var he=255&D,ye=1,be=[he];for(he=255&(D>>=8);he>0;)be.unshift(he),he=255&(D>>=8),++ye;return te?be.push(ye):be.unshift(ye),this.update(be),be.length},Keccak.prototype.encodeString=function(D){var he,ye=typeof D;if("string"!==ye){if("object"!==ye)throw new Error(te);if(null===D)throw new Error(te);if(we&&D.constructor===ArrayBuffer)D=new Uint8Array(D);else if(!(Array.isArray(D)||we&&ArrayBuffer.isView(D)))throw new Error(te);he=!0}var be=0,ve=D.length;if(he)be=ve;else for(var _e=0;_e<D.length;++_e){var Pe=D.charCodeAt(_e);Pe<128?be+=1:Pe<2048?be+=2:Pe<55296||Pe>=57344?be+=3:(Pe=65536+((1023&Pe)<<10|1023&D.charCodeAt(++_e)),be+=4)}return be+=this.encode(8*be),this.update(D),be},Keccak.prototype.bytepad=function(D,te){for(var he=this.encode(te),ye=0;ye<D.length;++ye)he+=this.encodeString(D[ye]);var be=te-he%te,ve=[];return ve.length=be,this.update(ve),this},Keccak.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var D=this.blocks,te=this.lastByteIndex,he=this.blockCount,ye=this.s;if(D[te>>2]|=this.padding[3&te],this.lastByteIndex===this.byteCount)for(D[0]=D[he],te=1;te<he+1;++te)D[te]=0;for(D[he-1]|=2147483648,te=0;te<he;++te)ye[te]^=D[te];f(ye)}},Keccak.prototype.toString=Keccak.prototype.hex=function(){this.finalize();for(var D,te=this.blockCount,he=this.s,ye=this.outputBlocks,be=this.extraBytes,ve=0,we=0,Pe="";we<ye;){for(ve=0;ve<te&&we<ye;++ve,++we)D=he[ve],Pe+=_e[D>>4&15]+_e[15&D]+_e[D>>12&15]+_e[D>>8&15]+_e[D>>20&15]+_e[D>>16&15]+_e[D>>28&15]+_e[D>>24&15];we%te==0&&(f(he),ve=0)}return be&&(D=he[ve],Pe+=_e[D>>4&15]+_e[15&D],be>1&&(Pe+=_e[D>>12&15]+_e[D>>8&15]),be>2&&(Pe+=_e[D>>20&15]+_e[D>>16&15])),Pe},Keccak.prototype.arrayBuffer=function(){this.finalize();var D,te=this.blockCount,he=this.s,ye=this.outputBlocks,be=this.extraBytes,ve=0,we=0,_e=this.outputBits>>3;D=be?new ArrayBuffer(ye+1<<2):new ArrayBuffer(_e);for(var Pe=new Uint32Array(D);we<ye;){for(ve=0;ve<te&&we<ye;++ve,++we)Pe[we]=he[ve];we%te==0&&f(he)}return be&&(Pe[ve]=he[ve],D=D.slice(0,_e)),D},Keccak.prototype.buffer=Keccak.prototype.arrayBuffer,Keccak.prototype.digest=Keccak.prototype.array=function(){this.finalize();for(var D,te,he=this.blockCount,ye=this.s,be=this.outputBlocks,ve=this.extraBytes,we=0,_e=0,Pe=[];_e<be;){for(we=0;we<he&&_e<be;++we,++_e)D=_e<<2,te=ye[we],Pe[D]=255&te,Pe[D+1]=te>>8&255,Pe[D+2]=te>>16&255,Pe[D+3]=te>>24&255;_e%he==0&&f(ye)}return ve&&(D=_e<<2,te=ye[we],Pe[D]=255&te,ve>1&&(Pe[D+1]=te>>8&255),ve>2&&(Pe[D+2]=te>>16&255)),Pe},Kmac.prototype=new Keccak,Kmac.prototype.finalize=function(){return this.encode(this.outputBits,!0),Keccak.prototype.finalize.call(this)};var f=function(D){var te,he,ye,be,ve,we,_e,Pe,Ie,ke,Oe,xe,Be,Fe,De,Le,Ue,qe,je,Je,et,tt,rt,nt,at,ut,ht,yt,mt,bt,wt,_t,Tt,At,Et,Pt,St,Ct,kt,Ot,xt,Nt,Bt,Ft,Lt,Ut,$t,qt,Gt,zt,Wt,Vt,Kt,Jt,Zt,rr,cr,dr,kr,$r,qr,jr,Hr;for(ye=0;ye<48;ye+=2)be=D[0]^D[10]^D[20]^D[30]^D[40],ve=D[1]^D[11]^D[21]^D[31]^D[41],we=D[2]^D[12]^D[22]^D[32]^D[42],_e=D[3]^D[13]^D[23]^D[33]^D[43],Pe=D[4]^D[14]^D[24]^D[34]^D[44],Ie=D[5]^D[15]^D[25]^D[35]^D[45],ke=D[6]^D[16]^D[26]^D[36]^D[46],Oe=D[7]^D[17]^D[27]^D[37]^D[47],te=(xe=D[8]^D[18]^D[28]^D[38]^D[48])^(we<<1|_e>>>31),he=(Be=D[9]^D[19]^D[29]^D[39]^D[49])^(_e<<1|we>>>31),D[0]^=te,D[1]^=he,D[10]^=te,D[11]^=he,D[20]^=te,D[21]^=he,D[30]^=te,D[31]^=he,D[40]^=te,D[41]^=he,te=be^(Pe<<1|Ie>>>31),he=ve^(Ie<<1|Pe>>>31),D[2]^=te,D[3]^=he,D[12]^=te,D[13]^=he,D[22]^=te,D[23]^=he,D[32]^=te,D[33]^=he,D[42]^=te,D[43]^=he,te=we^(ke<<1|Oe>>>31),he=_e^(Oe<<1|ke>>>31),D[4]^=te,D[5]^=he,D[14]^=te,D[15]^=he,D[24]^=te,D[25]^=he,D[34]^=te,D[35]^=he,D[44]^=te,D[45]^=he,te=Pe^(xe<<1|Be>>>31),he=Ie^(Be<<1|xe>>>31),D[6]^=te,D[7]^=he,D[16]^=te,D[17]^=he,D[26]^=te,D[27]^=he,D[36]^=te,D[37]^=he,D[46]^=te,D[47]^=he,te=ke^(be<<1|ve>>>31),he=Oe^(ve<<1|be>>>31),D[8]^=te,D[9]^=he,D[18]^=te,D[19]^=he,D[28]^=te,D[29]^=he,D[38]^=te,D[39]^=he,D[48]^=te,D[49]^=he,Fe=D[0],De=D[1],Ut=D[11]<<4|D[10]>>>28,$t=D[10]<<4|D[11]>>>28,yt=D[20]<<3|D[21]>>>29,mt=D[21]<<3|D[20]>>>29,$r=D[31]<<9|D[30]>>>23,qr=D[30]<<9|D[31]>>>23,Nt=D[40]<<18|D[41]>>>14,Bt=D[41]<<18|D[40]>>>14,At=D[2]<<1|D[3]>>>31,Et=D[3]<<1|D[2]>>>31,Le=D[13]<<12|D[12]>>>20,Ue=D[12]<<12|D[13]>>>20,qt=D[22]<<10|D[23]>>>22,Gt=D[23]<<10|D[22]>>>22,bt=D[33]<<13|D[32]>>>19,wt=D[32]<<13|D[33]>>>19,jr=D[42]<<2|D[43]>>>30,Hr=D[43]<<2|D[42]>>>30,Jt=D[5]<<30|D[4]>>>2,Zt=D[4]<<30|D[5]>>>2,Pt=D[14]<<6|D[15]>>>26,St=D[15]<<6|D[14]>>>26,qe=D[25]<<11|D[24]>>>21,je=D[24]<<11|D[25]>>>21,zt=D[34]<<15|D[35]>>>17,Wt=D[35]<<15|D[34]>>>17,_t=D[45]<<29|D[44]>>>3,Tt=D[44]<<29|D[45]>>>3,nt=D[6]<<28|D[7]>>>4,at=D[7]<<28|D[6]>>>4,rr=D[17]<<23|D[16]>>>9,cr=D[16]<<23|D[17]>>>9,Ct=D[26]<<25|D[27]>>>7,kt=D[27]<<25|D[26]>>>7,Je=D[36]<<21|D[37]>>>11,et=D[37]<<21|D[36]>>>11,Vt=D[47]<<24|D[46]>>>8,Kt=D[46]<<24|D[47]>>>8,Ft=D[8]<<27|D[9]>>>5,Lt=D[9]<<27|D[8]>>>5,ut=D[18]<<20|D[19]>>>12,ht=D[19]<<20|D[18]>>>12,dr=D[29]<<7|D[28]>>>25,kr=D[28]<<7|D[29]>>>25,Ot=D[38]<<8|D[39]>>>24,xt=D[39]<<8|D[38]>>>24,tt=D[48]<<14|D[49]>>>18,rt=D[49]<<14|D[48]>>>18,D[0]=Fe^~Le&qe,D[1]=De^~Ue&je,D[10]=nt^~ut&yt,D[11]=at^~ht&mt,D[20]=At^~Pt&Ct,D[21]=Et^~St&kt,D[30]=Ft^~Ut&qt,D[31]=Lt^~$t&Gt,D[40]=Jt^~rr&dr,D[41]=Zt^~cr&kr,D[2]=Le^~qe&Je,D[3]=Ue^~je&et,D[12]=ut^~yt&bt,D[13]=ht^~mt&wt,D[22]=Pt^~Ct&Ot,D[23]=St^~kt&xt,D[32]=Ut^~qt&zt,D[33]=$t^~Gt&Wt,D[42]=rr^~dr&$r,D[43]=cr^~kr&qr,D[4]=qe^~Je&tt,D[5]=je^~et&rt,D[14]=yt^~bt&_t,D[15]=mt^~wt&Tt,D[24]=Ct^~Ot&Nt,D[25]=kt^~xt&Bt,D[34]=qt^~zt&Vt,D[35]=Gt^~Wt&Kt,D[44]=dr^~$r&jr,D[45]=kr^~qr&Hr,D[6]=Je^~tt&Fe,D[7]=et^~rt&De,D[16]=bt^~_t&nt,D[17]=wt^~Tt&at,D[26]=Ot^~Nt&At,D[27]=xt^~Bt&Et,D[36]=zt^~Vt&Ft,D[37]=Wt^~Kt&Lt,D[46]=$r^~jr&Jt,D[47]=qr^~Hr&Zt,D[8]=tt^~Fe&Le,D[9]=rt^~De&Ue,D[18]=_t^~nt&ut,D[19]=Tt^~at&ht,D[28]=Nt^~At&Pt,D[29]=Bt^~Et&St,D[38]=Vt^~Ft&Ut,D[39]=Kt^~Lt&$t,D[48]=jr^~Jt&rr,D[49]=Hr^~Zt&cr,D[0]^=Re[ye],D[1]^=Re[ye+1]};if(ve)D.exports=De;else for(Ue=0;Ue<Le.length;++Ue)ye[Le[Ue]]=De[Le[Ue]]}()}(iH);var sH=getDefaultExportFromCjs(iH.exports);function keccak256(D){return"0x"+sH.keccak_256(arrayify(D))}const oH=new Logger("rlp/5.7.0");function arrayifyInteger(D){const te=[];for(;D;)te.unshift(255&D),D>>=8;return te}function _encode(D){if(Array.isArray(D)){let te=[];if(D.forEach((function(D){te=te.concat(_encode(D))})),te.length<=55)return te.unshift(192+te.length),te;const he=arrayifyInteger(te.length);return he.unshift(247+he.length),he.concat(te)}(function isBytesLike(D){return isHexString(D)&&!(D.length%2)||isBytes(D)})(D)||oH.throwArgumentError("RLP object must be BytesLike","object",D);const te=Array.prototype.slice.call(arrayify(D));if(1===te.length&&te[0]<=127)return te;if(te.length<=55)return te.unshift(128+te.length),te;const he=arrayifyInteger(te.length);return he.unshift(183+he.length),he.concat(te)}const cH=new Logger("address/5.7.0");function getChecksumAddress(D){isHexString(D,20)||cH.throwArgumentError("invalid address","address",D);const te=(D=D.toLowerCase()).substring(2).split(""),he=new Uint8Array(40);for(let D=0;D<40;D++)he[D]=te[D].charCodeAt(0);const ye=arrayify(keccak256(he));for(let D=0;D<40;D+=2)ye[D>>1]>>4>=8&&(te[D]=te[D].toUpperCase()),(15&ye[D>>1])>=8&&(te[D+1]=te[D+1].toUpperCase());return"0x"+te.join("")}const dH={};for(let D=0;D<10;D++)dH[String(D)]=String(D);for(let D=0;D<26;D++)dH[String.fromCharCode(65+D)]=String(10+D);const uH=Math.floor(function log10(D){return Math.log10?Math.log10(D):Math.log(D)/Math.LN10}(9007199254740991));function getAddress(D){let te=null;if("string"!=typeof D&&cH.throwArgumentError("invalid address","address",D),D.match(/^(0x)?[0-9a-fA-F]{40}$/))"0x"!==D.substring(0,2)&&(D="0x"+D),te=getChecksumAddress(D),D.match(/([A-F].*[a-f])|([a-f].*[A-F])/)&&te!==D&&cH.throwArgumentError("bad address checksum","address",D);else if(D.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){for(D.substring(2,4)!==function ibanChecksum(D){let te=(D=(D=D.toUpperCase()).substring(4)+D.substring(0,2)+"00").split("").map((D=>dH[D])).join("");for(;te.length>=uH;){let D=te.substring(0,uH);te=parseInt(D,10)%97+te.substring(D.length)}let he=String(98-parseInt(te,10)%97);for(;he.length<2;)he="0"+he;return he}(D)&&cH.throwArgumentError("bad icap checksum","address",D),te=function _base36To16(D){return new Gj(D,36).toString(16)}(D.substring(4));te.length<40;)te="0"+te;te=getChecksumAddress("0x"+te)}else cH.throwArgumentError("invalid address","address",D);return te}function isAddress(D){try{return getAddress(D),!0}catch(D){}return!1}function getContractAddress(D){let te=null;try{te=getAddress(D.from)}catch(te){cH.throwArgumentError("missing from address","transaction",D)}return getAddress(hexDataSlice(keccak256(function encode(D){return hexlify(_encode(D))}([te,function stripZeros(D){let te=arrayify(D);if(0===te.length)return te;let he=0;for(;he<te.length&&0===te[he];)he++;return he&&(te=te.slice(he)),te}(arrayify(BigNumber.from(D.nonce).toHexString()))])),12))}class AddressCoder extends Coder{constructor(D){super("address","address",D,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(D,te){try{te=getAddress(te)}catch(D){this._throwError(D.message,te)}return D.writeValue(te)}decode(D){return getAddress(hexZeroPad(D.readValue().toHexString(),20))}}class AnonymousCoder extends Coder{constructor(D){super(D.name,D.type,void 0,D.dynamic),this.coder=D}defaultValue(){return this.coder.defaultValue()}encode(D,te){return this.coder.encode(D,te)}decode(D){return this.coder.decode(D)}}const fH=new Logger(Jj);function pack(D,te,he){let ye=null;if(Array.isArray(he))ye=he;else if(he&&"object"==typeof he){let D={};ye=te.map((te=>{const ye=te.localName;return ye||fH.throwError("cannot encode object for signature with missing names",Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:te,value:he}),D[ye]&&fH.throwError("cannot encode object for signature with duplicate names",Logger.errors.INVALID_ARGUMENT,{argument:"values",coder:te,value:he}),D[ye]=!0,he[ye]}))}else fH.throwArgumentError("invalid tuple value","tuple",he);te.length!==ye.length&&fH.throwArgumentError("types/value length mismatch","tuple",he);let be=new Writer(D.wordSize),ve=new Writer(D.wordSize),we=[];te.forEach(((D,te)=>{let he=ye[te];if(D.dynamic){let te=ve.length;D.encode(ve,he);let ye=be.writeUpdatableValue();we.push((D=>{ye(D+te)}))}else D.encode(be,he)})),we.forEach((D=>{D(be.length)}));let _e=D.appendWriter(be);return _e+=D.appendWriter(ve),_e}function unpack(D,te){let he=[],ye=D.subReader(0);te.forEach((te=>{let be=null;if(te.dynamic){let he=D.readValue(),ve=ye.subReader(he.toNumber());try{be=te.decode(ve)}catch(D){if(D.code===Logger.errors.BUFFER_OVERRUN)throw D;be=D,be.baseType=te.name,be.name=te.localName,be.type=te.type}}else try{be=te.decode(D)}catch(D){if(D.code===Logger.errors.BUFFER_OVERRUN)throw D;be=D,be.baseType=te.name,be.name=te.localName,be.type=te.type}null!=be&&he.push(be)}));const be=te.reduce(((D,te)=>{const he=te.localName;return he&&(D[he]||(D[he]=0),D[he]++),D}),{});te.forEach(((D,te)=>{let ye=D.localName;if(!ye||1!==be[ye])return;if("length"===ye&&(ye="_length"),null!=he[ye])return;const ve=he[te];ve instanceof Error?Object.defineProperty(he,ye,{enumerable:!0,get:()=>{throw ve}}):he[ye]=ve}));for(let D=0;D<he.length;D++){const te=he[D];te instanceof Error&&Object.defineProperty(he,D,{enumerable:!0,get:()=>{throw te}})}return Object.freeze(he)}class ArrayCoder extends Coder{constructor(D,te,he){super("array",D.type+"["+(te>=0?te:"")+"]",he,-1===te||D.dynamic),this.coder=D,this.length=te}defaultValue(){const D=this.coder.defaultValue(),te=[];for(let he=0;he<this.length;he++)te.push(D);return te}encode(D,te){Array.isArray(te)||this._throwError("expected array value",te);let he=this.length;-1===he&&(he=te.length,D.writeValue(te.length)),fH.checkArgumentCount(te.length,he,"coder array"+(this.localName?" "+this.localName:""));let ye=[];for(let D=0;D<te.length;D++)ye.push(this.coder);return pack(D,ye,te)}decode(D){let te=this.length;-1===te&&(te=D.readValue().toNumber(),32*te>D._data.length&&fH.throwError("insufficient data length",Logger.errors.BUFFER_OVERRUN,{length:D._data.length,count:te}));let he=[];for(let D=0;D<te;D++)he.push(new AnonymousCoder(this.coder));return D.coerce(this.name,unpack(D,he))}}class BooleanCoder extends Coder{constructor(D){super("bool","bool",D,!1)}defaultValue(){return!1}encode(D,te){return D.writeValue(te?1:0)}decode(D){return D.coerce(this.type,!D.readValue().isZero())}}class DynamicBytesCoder extends Coder{constructor(D,te){super(D,D,te,!0)}defaultValue(){return"0x"}encode(D,te){te=arrayify(te);let he=D.writeValue(te.length);return he+=D.writeBytes(te),he}decode(D){return D.readBytes(D.readValue().toNumber(),!0)}}class BytesCoder extends DynamicBytesCoder{constructor(D){super("bytes",D)}decode(D){return D.coerce(this.name,hexlify(super.decode(D)))}}class FixedBytesCoder extends Coder{constructor(D,te){let he="bytes"+String(D);super(he,he,te,!1),this.size=D}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(D,te){let he=arrayify(te);return he.length!==this.size&&this._throwError("incorrect data length",te),D.writeBytes(he)}decode(D){return D.coerce(this.name,hexlify(D.readBytes(this.size)))}}class NullCoder extends Coder{constructor(D){super("null","",D,!1)}defaultValue(){return null}encode(D,te){return null!=te&&this._throwError("not null",te),D.writeBytes([])}decode(D){return D.readBytes(0),D.coerce(this.name,null)}}const lH="0x0000000000000000000000000000000000000000",pH=BigNumber.from(-1),hH=BigNumber.from(0),yH=BigNumber.from(1),mH=BigNumber.from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class NumberCoder extends Coder{constructor(D,te,he){const ye=(te?"int":"uint")+8*D;super(ye,ye,he,!1),this.size=D,this.signed=te}defaultValue(){return 0}encode(D,te){let he=BigNumber.from(te),ye=mH.mask(8*D.wordSize);if(this.signed){let D=ye.mask(8*this.size-1);(he.gt(D)||he.lt(D.add(yH).mul(pH)))&&this._throwError("value out-of-bounds",te)}else(he.lt(hH)||he.gt(ye.mask(8*this.size)))&&this._throwError("value out-of-bounds",te);return he=he.toTwos(8*this.size).mask(8*this.size),this.signed&&(he=he.fromTwos(8*this.size).toTwos(8*D.wordSize)),D.writeValue(he)}decode(D){let te=D.readValue().mask(8*this.size);return this.signed&&(te=te.fromTwos(8*this.size)),D.coerce(this.name,te)}}const bH=new Logger("strings/5.7.0");var gH,vH;function ignoreFunc(D,te,he,ye,be){if(D===vH.BAD_PREFIX||D===vH.UNEXPECTED_CONTINUE){let D=0;for(let ye=te+1;ye<he.length&&he[ye]>>6==2;ye++)D++;return D}return D===vH.OVERRUN?he.length-te-1:0}!function(D){D.current="",D.NFC="NFC",D.NFD="NFD",D.NFKC="NFKC",D.NFKD="NFKD"}(gH||(gH={})),function(D){D.UNEXPECTED_CONTINUE="unexpected continuation byte",D.BAD_PREFIX="bad codepoint prefix",D.OVERRUN="string overrun",D.MISSING_CONTINUE="missing continuation byte",D.OUT_OF_RANGE="out of UTF-8 range",D.UTF16_SURROGATE="UTF-16 surrogate",D.OVERLONG="overlong representation"}(vH||(vH={}));const wH=Object.freeze({error:function errorFunc(D,te,he,ye,be){return bH.throwArgumentError(`invalid codepoint at offset ${te}; ${D}`,"bytes",he)},ignore:ignoreFunc,replace:function replaceFunc(D,te,he,ye,be){return D===vH.OVERLONG?(ye.push(be),0):(ye.push(65533),ignoreFunc(D,te,he))}});function toUtf8Bytes(D,te=gH.current){te!=gH.current&&(bH.checkNormalize(),D=D.normalize(te));let he=[];for(let te=0;te<D.length;te++){const ye=D.charCodeAt(te);if(ye<128)he.push(ye);else if(ye<2048)he.push(ye>>6|192),he.push(63&ye|128);else if(55296==(64512&ye)){te++;const be=D.charCodeAt(te);if(te>=D.length||56320!=(64512&be))throw new Error("invalid utf-8 string");const ve=65536+((1023&ye)<<10)+(1023&be);he.push(ve>>18|240),he.push(ve>>12&63|128),he.push(ve>>6&63|128),he.push(63&ve|128)}else he.push(ye>>12|224),he.push(ye>>6&63|128),he.push(63&ye|128)}return arrayify(he)}function toUtf8String(D,te){return function _toUtf8String(D){return D.map((D=>D<=65535?String.fromCharCode(D):(D-=65536,String.fromCharCode(55296+(D>>10&1023),56320+(1023&D))))).join("")}(function getUtf8CodePoints(D,te){null==te&&(te=wH.error),D=arrayify(D);const he=[];let ye=0;for(;ye<D.length;){const be=D[ye++];if(be>>7==0){he.push(be);continue}let ve=null,we=null;if(192==(224&be))ve=1,we=127;else if(224==(240&be))ve=2,we=2047;else{if(240!=(248&be)){ye+=te(128==(192&be)?vH.UNEXPECTED_CONTINUE:vH.BAD_PREFIX,ye-1,D,he);continue}ve=3,we=65535}if(ye-1+ve>=D.length){ye+=te(vH.OVERRUN,ye-1,D,he);continue}let _e=be&(1<<8-ve-1)-1;for(let be=0;be<ve;be++){let be=D[ye];if(128!=(192&be)){ye+=te(vH.MISSING_CONTINUE,ye,D,he),_e=null;break}_e=_e<<6|63&be,ye++}null!==_e&&(_e>1114111?ye+=te(vH.OUT_OF_RANGE,ye-1-ve,D,he,_e):_e>=55296&&_e<=57343?ye+=te(vH.UTF16_SURROGATE,ye-1-ve,D,he,_e):_e<=we?ye+=te(vH.OVERLONG,ye-1-ve,D,he,_e):he.push(_e))}return he}(D,te))}class StringCoder extends DynamicBytesCoder{constructor(D){super("string",D)}defaultValue(){return""}encode(D,te){return super.encode(D,toUtf8Bytes(te))}decode(D){return toUtf8String(super.decode(D))}}class TupleCoder extends Coder{constructor(D,te){let he=!1;const ye=[];D.forEach((D=>{D.dynamic&&(he=!0),ye.push(D.type)}));super("tuple","tuple("+ye.join(",")+")",te,he),this.coders=D}defaultValue(){const D=[];this.coders.forEach((te=>{D.push(te.defaultValue())}));const te=this.coders.reduce(((D,te)=>{const he=te.localName;return he&&(D[he]||(D[he]=0),D[he]++),D}),{});return this.coders.forEach(((he,ye)=>{let be=he.localName;be&&1===te[be]&&("length"===be&&(be="_length"),null==D[be]&&(D[be]=D[ye]))})),Object.freeze(D)}encode(D,te){return pack(D,this.coders,te)}decode(D){return D.coerce(this.name,unpack(D,this.coders))}}const _H=new Logger(Jj),TH=new RegExp(/^bytes([0-9]*)$/),AH=new RegExp(/^(u?int)([0-9]*)$/);class AbiCoder{constructor(D){defineReadOnly(this,"coerceFunc",D||null)}_getCoder(D){switch(D.baseType){case"address":return new AddressCoder(D.name);case"bool":return new BooleanCoder(D.name);case"string":return new StringCoder(D.name);case"bytes":return new BytesCoder(D.name);case"array":return new ArrayCoder(this._getCoder(D.arrayChildren),D.arrayLength,D.name);case"tuple":return new TupleCoder((D.components||[]).map((D=>this._getCoder(D))),D.name);case"":return new NullCoder(D.name)}let te=D.type.match(AH);if(te){let he=parseInt(te[2]||"256");return(0===he||he>256||he%8!=0)&&_H.throwArgumentError("invalid "+te[1]+" bit length","param",D),new NumberCoder(he/8,"int"===te[1],D.name)}if(te=D.type.match(TH),te){let he=parseInt(te[1]);return(0===he||he>32)&&_H.throwArgumentError("invalid bytes length","param",D),new FixedBytesCoder(he,D.name)}return _H.throwArgumentError("invalid type","type",D.type)}_getWordSize(){return 32}_getReader(D,te){return new Reader(D,this._getWordSize(),this.coerceFunc,te)}_getWriter(){return new Writer(this._getWordSize())}getDefaultValue(D){const te=D.map((D=>this._getCoder(ParamType.from(D))));return new TupleCoder(te,"_").defaultValue()}encode(D,te){D.length!==te.length&&_H.throwError("types/values length mismatch",Logger.errors.INVALID_ARGUMENT,{count:{types:D.length,values:te.length},value:{types:D,values:te}});const he=D.map((D=>this._getCoder(ParamType.from(D)))),ye=new TupleCoder(he,"_"),be=this._getWriter();return ye.encode(be,te),be.data}decode(D,te,he){const ye=D.map((D=>this._getCoder(ParamType.from(D))));return new TupleCoder(ye,"_").decode(this._getReader(arrayify(te),he))}}const EH=new AbiCoder;function id(D){return keccak256(toUtf8Bytes(D))}const PH=new Logger(Jj);class LogDescription extends Description{}class TransactionDescription extends Description{}class ErrorDescription extends Description{}class Indexed extends Description{static isIndexed(D){return!(!D||!D._isIndexed)}}const SH={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:!0},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"]}};function wrapAccessError(D,te){const he=new Error(`deferred error during ABI decoding triggered accessing ${D}`);return he.error=te,he}class Interface{constructor(D){let te=[];te="string"==typeof D?JSON.parse(D):D,defineReadOnly(this,"fragments",te.map((D=>Fragment.from(D))).filter((D=>null!=D))),defineReadOnly(this,"_abiCoder",getStatic(new.target,"getAbiCoder")()),defineReadOnly(this,"functions",{}),defineReadOnly(this,"errors",{}),defineReadOnly(this,"events",{}),defineReadOnly(this,"structs",{}),this.fragments.forEach((D=>{let te=null;switch(D.type){case"constructor":return this.deploy?void PH.warn("duplicate definition - constructor"):void defineReadOnly(this,"deploy",D);case"function":te=this.functions;break;case"event":te=this.events;break;case"error":te=this.errors;break;default:return}let he=D.format();te[he]?PH.warn("duplicate definition - "+he):te[he]=D})),this.deploy||defineReadOnly(this,"deploy",ConstructorFragment.from({payable:!1,type:"constructor"})),defineReadOnly(this,"_isInterface",!0)}format(D){D||(D=eH.full),D===eH.sighash&&PH.throwArgumentError("interface does not support formatting sighash","format",D);const te=this.fragments.map((te=>te.format(D)));return D===eH.json?JSON.stringify(te.map((D=>JSON.parse(D)))):te}static getAbiCoder(){return EH}static getAddress(D){return getAddress(D)}static getSighash(D){return hexDataSlice(id(D.format()),0,4)}static getEventTopic(D){return id(D.format())}getFunction(D){if(isHexString(D)){for(const te in this.functions)if(D===this.getSighash(te))return this.functions[te];PH.throwArgumentError("no matching function","sighash",D)}if(-1===D.indexOf("(")){const te=D.trim(),he=Object.keys(this.functions).filter((D=>D.split("(")[0]===te));return 0===he.length?PH.throwArgumentError("no matching function","name",te):he.length>1&&PH.throwArgumentError("multiple matching functions","name",te),this.functions[he[0]]}const te=this.functions[FunctionFragment.fromString(D).format()];return te||PH.throwArgumentError("no matching function","signature",D),te}getEvent(D){if(isHexString(D)){const te=D.toLowerCase();for(const D in this.events)if(te===this.getEventTopic(D))return this.events[D];PH.throwArgumentError("no matching event","topichash",te)}if(-1===D.indexOf("(")){const te=D.trim(),he=Object.keys(this.events).filter((D=>D.split("(")[0]===te));return 0===he.length?PH.throwArgumentError("no matching event","name",te):he.length>1&&PH.throwArgumentError("multiple matching events","name",te),this.events[he[0]]}const te=this.events[EventFragment.fromString(D).format()];return te||PH.throwArgumentError("no matching event","signature",D),te}getError(D){if(isHexString(D)){const te=getStatic(this.constructor,"getSighash");for(const he in this.errors){if(D===te(this.errors[he]))return this.errors[he]}PH.throwArgumentError("no matching error","sighash",D)}if(-1===D.indexOf("(")){const te=D.trim(),he=Object.keys(this.errors).filter((D=>D.split("(")[0]===te));return 0===he.length?PH.throwArgumentError("no matching error","name",te):he.length>1&&PH.throwArgumentError("multiple matching errors","name",te),this.errors[he[0]]}const te=this.errors[FunctionFragment.fromString(D).format()];return te||PH.throwArgumentError("no matching error","signature",D),te}getSighash(D){if("string"==typeof D)try{D=this.getFunction(D)}catch(te){try{D=this.getError(D)}catch(D){throw te}}return getStatic(this.constructor,"getSighash")(D)}getEventTopic(D){return"string"==typeof D&&(D=this.getEvent(D)),getStatic(this.constructor,"getEventTopic")(D)}_decodeParams(D,te){return this._abiCoder.decode(D,te)}_encodeParams(D,te){return this._abiCoder.encode(D,te)}encodeDeploy(D){return this._encodeParams(this.deploy.inputs,D||[])}decodeErrorResult(D,te){"string"==typeof D&&(D=this.getError(D));const he=arrayify(te);return hexlify(he.slice(0,4))!==this.getSighash(D)&&PH.throwArgumentError(`data signature does not match error ${D.name}.`,"data",hexlify(he)),this._decodeParams(D.inputs,he.slice(4))}encodeErrorResult(D,te){return"string"==typeof D&&(D=this.getError(D)),hexlify(concat([this.getSighash(D),this._encodeParams(D.inputs,te||[])]))}decodeFunctionData(D,te){"string"==typeof D&&(D=this.getFunction(D));const he=arrayify(te);return hexlify(he.slice(0,4))!==this.getSighash(D)&&PH.throwArgumentError(`data signature does not match function ${D.name}.`,"data",hexlify(he)),this._decodeParams(D.inputs,he.slice(4))}encodeFunctionData(D,te){return"string"==typeof D&&(D=this.getFunction(D)),hexlify(concat([this.getSighash(D),this._encodeParams(D.inputs,te||[])]))}decodeFunctionResult(D,te){"string"==typeof D&&(D=this.getFunction(D));let he=arrayify(te),ye=null,be="",ve=null,we=null,_e=null;switch(he.length%this._abiCoder._getWordSize()){case 0:try{return this._abiCoder.decode(D.outputs,he)}catch(D){}break;case 4:{const D=hexlify(he.slice(0,4)),te=SH[D];if(te)ve=this._abiCoder.decode(te.inputs,he.slice(4)),we=te.name,_e=te.signature,te.reason&&(ye=ve[0]),"Error"===we?be=`; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(ve[0])}`:"Panic"===we&&(be=`; VM Exception while processing transaction: reverted with panic code ${ve[0]}`);else try{const te=this.getError(D);ve=this._abiCoder.decode(te.inputs,he.slice(4)),we=te.name,_e=te.format()}catch(D){}break}}return PH.throwError("call revert exception"+be,Logger.errors.CALL_EXCEPTION,{method:D.format(),data:hexlify(te),errorArgs:ve,errorName:we,errorSignature:_e,reason:ye})}encodeFunctionResult(D,te){return"string"==typeof D&&(D=this.getFunction(D)),hexlify(this._abiCoder.encode(D.outputs,te||[]))}encodeFilterTopics(D,te){"string"==typeof D&&(D=this.getEvent(D)),te.length>D.inputs.length&&PH.throwError("too many arguments for "+D.format(),Logger.errors.UNEXPECTED_ARGUMENT,{argument:"values",value:te});let he=[];D.anonymous||he.push(this.getEventTopic(D));const encodeTopic=(D,te)=>"string"===D.type?id(te):"bytes"===D.type?keccak256(hexlify(te)):("bool"===D.type&&"boolean"==typeof te&&(te=te?"0x01":"0x00"),D.type.match(/^u?int/)&&(te=BigNumber.from(te).toHexString()),"address"===D.type&&this._abiCoder.encode(["address"],[te]),hexZeroPad(hexlify(te),32));for(te.forEach(((te,ye)=>{let be=D.inputs[ye];be.indexed?null==te?he.push(null):"array"===be.baseType||"tuple"===be.baseType?PH.throwArgumentError("filtering with tuples or arrays not supported","contract."+be.name,te):Array.isArray(te)?he.push(te.map((D=>encodeTopic(be,D)))):he.push(encodeTopic(be,te)):null!=te&&PH.throwArgumentError("cannot filter non-indexed parameters; must be null","contract."+be.name,te)}));he.length&&null===he[he.length-1];)he.pop();return he}encodeEventLog(D,te){"string"==typeof D&&(D=this.getEvent(D));const he=[],ye=[],be=[];return D.anonymous||he.push(this.getEventTopic(D)),te.length!==D.inputs.length&&PH.throwArgumentError("event arguments/values mismatch","values",te),D.inputs.forEach(((D,ve)=>{const we=te[ve];if(D.indexed)if("string"===D.type)he.push(id(we));else if("bytes"===D.type)he.push(keccak256(we));else{if("tuple"===D.baseType||"array"===D.baseType)throw new Error("not implemented");he.push(this._abiCoder.encode([D.type],[we]))}else ye.push(D),be.push(we)})),{data:this._abiCoder.encode(ye,be),topics:he}}decodeEventLog(D,te,he){if("string"==typeof D&&(D=this.getEvent(D)),null!=he&&!D.anonymous){let te=this.getEventTopic(D);isHexString(he[0],32)&&he[0].toLowerCase()===te||PH.throwError("fragment/topic mismatch",Logger.errors.INVALID_ARGUMENT,{argument:"topics[0]",expected:te,value:he[0]}),he=he.slice(1)}let ye=[],be=[],ve=[];D.inputs.forEach(((D,te)=>{D.indexed?"string"===D.type||"bytes"===D.type||"tuple"===D.baseType||"array"===D.baseType?(ye.push(ParamType.fromObject({type:"bytes32",name:D.name})),ve.push(!0)):(ye.push(D),ve.push(!1)):(be.push(D),ve.push(!1))}));let we=null!=he?this._abiCoder.decode(ye,concat(he)):null,_e=this._abiCoder.decode(be,te,!0),Pe=[],Ie=0,Re=0;D.inputs.forEach(((D,te)=>{if(D.indexed)if(null==we)Pe[te]=new Indexed({_isIndexed:!0,hash:null});else if(ve[te])Pe[te]=new Indexed({_isIndexed:!0,hash:we[Re++]});else try{Pe[te]=we[Re++]}catch(D){Pe[te]=D}else try{Pe[te]=_e[Ie++]}catch(D){Pe[te]=D}if(D.name&&null==Pe[D.name]){const he=Pe[te];he instanceof Error?Object.defineProperty(Pe,D.name,{enumerable:!0,get:()=>{throw wrapAccessError(`property ${JSON.stringify(D.name)}`,he)}}):Pe[D.name]=he}}));for(let D=0;D<Pe.length;D++){const te=Pe[D];te instanceof Error&&Object.defineProperty(Pe,D,{enumerable:!0,get:()=>{throw wrapAccessError(`index ${D}`,te)}})}return Object.freeze(Pe)}parseTransaction(D){let te=this.getFunction(D.data.substring(0,10).toLowerCase());return te?new TransactionDescription({args:this._abiCoder.decode(te.inputs,"0x"+D.data.substring(10)),functionFragment:te,name:te.name,signature:te.format(),sighash:this.getSighash(te),value:BigNumber.from(D.value||"0")}):null}parseLog(D){let te=this.getEvent(D.topics[0]);return!te||te.anonymous?null:new LogDescription({eventFragment:te,name:te.name,signature:te.format(),topic:this.getEventTopic(te),args:this.decodeEventLog(te,D.data,D.topics)})}parseError(D){const te=hexlify(D);let he=this.getError(te.substring(0,10).toLowerCase());return he?new ErrorDescription({args:this._abiCoder.decode(he.inputs,"0x"+te.substring(10)),errorFragment:he,name:he.name,signature:he.format(),sighash:this.getSighash(he)}):null}static isInterface(D){return!(!D||!D._isInterface)}}var __awaiter$2=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const CH=new Logger("abstract-provider/5.7.0");class Provider{constructor(){CH.checkAbstract(new.target,Provider),defineReadOnly(this,"_isProvider",!0)}getFeeData(){return __awaiter$2(this,void 0,void 0,(function*(){const{block:D,gasPrice:te}=yield resolveProperties({block:this.getBlock("latest"),gasPrice:this.getGasPrice().catch((D=>null))});let he=null,ye=null,be=null;return D&&D.baseFeePerGas&&(he=D.baseFeePerGas,be=BigNumber.from("1500000000"),ye=D.baseFeePerGas.mul(2).add(be)),{lastBaseFeePerGas:he,maxFeePerGas:ye,maxPriorityFeePerGas:be,gasPrice:te}}))}addListener(D,te){return this.on(D,te)}removeListener(D,te){return this.off(D,te)}static isProvider(D){return!(!D||!D._isProvider)}}var __awaiter$1=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const IH=new Logger("abstract-signer/5.7.0"),RH=["accessList","ccipReadEnabled","chainId","customData","data","from","gasLimit","gasPrice","maxFeePerGas","maxPriorityFeePerGas","nonce","to","type","value"],kH=[Logger.errors.INSUFFICIENT_FUNDS,Logger.errors.NONCE_EXPIRED,Logger.errors.REPLACEMENT_UNDERPRICED];class Signer{constructor(){IH.checkAbstract(new.target,Signer),defineReadOnly(this,"_isSigner",!0)}getBalance(D){return __awaiter$1(this,void 0,void 0,(function*(){return this._checkProvider("getBalance"),yield this.provider.getBalance(this.getAddress(),D)}))}getTransactionCount(D){return __awaiter$1(this,void 0,void 0,(function*(){return this._checkProvider("getTransactionCount"),yield this.provider.getTransactionCount(this.getAddress(),D)}))}estimateGas(D){return __awaiter$1(this,void 0,void 0,(function*(){this._checkProvider("estimateGas");const te=yield resolveProperties(this.checkTransaction(D));return yield this.provider.estimateGas(te)}))}call(D,te){return __awaiter$1(this,void 0,void 0,(function*(){this._checkProvider("call");const he=yield resolveProperties(this.checkTransaction(D));return yield this.provider.call(he,te)}))}sendTransaction(D){return __awaiter$1(this,void 0,void 0,(function*(){this._checkProvider("sendTransaction");const te=yield this.populateTransaction(D),he=yield this.signTransaction(te);return yield this.provider.sendTransaction(he)}))}getChainId(){return __awaiter$1(this,void 0,void 0,(function*(){this._checkProvider("getChainId");return(yield this.provider.getNetwork()).chainId}))}getGasPrice(){return __awaiter$1(this,void 0,void 0,(function*(){return this._checkProvider("getGasPrice"),yield this.provider.getGasPrice()}))}getFeeData(){return __awaiter$1(this,void 0,void 0,(function*(){return this._checkProvider("getFeeData"),yield this.provider.getFeeData()}))}resolveName(D){return __awaiter$1(this,void 0,void 0,(function*(){return this._checkProvider("resolveName"),yield this.provider.resolveName(D)}))}checkTransaction(D){for(const te in D)-1===RH.indexOf(te)&&IH.throwArgumentError("invalid transaction key: "+te,"transaction",D);const te=shallowCopy(D);return null==te.from?te.from=this.getAddress():te.from=Promise.all([Promise.resolve(te.from),this.getAddress()]).then((te=>(te[0].toLowerCase()!==te[1].toLowerCase()&&IH.throwArgumentError("from address mismatch","transaction",D),te[0]))),te}populateTransaction(D){return __awaiter$1(this,void 0,void 0,(function*(){const te=yield resolveProperties(this.checkTransaction(D));null!=te.to&&(te.to=Promise.resolve(te.to).then((D=>__awaiter$1(this,void 0,void 0,(function*(){if(null==D)return null;const te=yield this.resolveName(D);return null==te&&IH.throwArgumentError("provided ENS name resolves to null","tx.to",D),te})))),te.to.catch((D=>{})));const he=null!=te.maxFeePerGas||null!=te.maxPriorityFeePerGas;if(null==te.gasPrice||2!==te.type&&!he?0!==te.type&&1!==te.type||!he||IH.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","transaction",D):IH.throwArgumentError("eip-1559 transaction do not support gasPrice","transaction",D),2!==te.type&&null!=te.type||null==te.maxFeePerGas||null==te.maxPriorityFeePerGas)if(0===te.type||1===te.type)null==te.gasPrice&&(te.gasPrice=this.getGasPrice());else{const D=yield this.getFeeData();if(null==te.type)if(null!=D.maxFeePerGas&&null!=D.maxPriorityFeePerGas)if(te.type=2,null!=te.gasPrice){const D=te.gasPrice;delete te.gasPrice,te.maxFeePerGas=D,te.maxPriorityFeePerGas=D}else null==te.maxFeePerGas&&(te.maxFeePerGas=D.maxFeePerGas),null==te.maxPriorityFeePerGas&&(te.maxPriorityFeePerGas=D.maxPriorityFeePerGas);else null!=D.gasPrice?(he&&IH.throwError("network does not support EIP-1559",Logger.errors.UNSUPPORTED_OPERATION,{operation:"populateTransaction"}),null==te.gasPrice&&(te.gasPrice=D.gasPrice),te.type=0):IH.throwError("failed to get consistent fee data",Logger.errors.UNSUPPORTED_OPERATION,{operation:"signer.getFeeData"});else 2===te.type&&(null==te.maxFeePerGas&&(te.maxFeePerGas=D.maxFeePerGas),null==te.maxPriorityFeePerGas&&(te.maxPriorityFeePerGas=D.maxPriorityFeePerGas))}else te.type=2;return null==te.nonce&&(te.nonce=this.getTransactionCount("pending")),null==te.gasLimit&&(te.gasLimit=this.estimateGas(te).catch((D=>{if(kH.indexOf(D.code)>=0)throw D;return IH.throwError("cannot estimate gas; transaction may fail or may require manual gas limit",Logger.errors.UNPREDICTABLE_GAS_LIMIT,{error:D,tx:te})}))),null==te.chainId?te.chainId=this.getChainId():te.chainId=Promise.all([Promise.resolve(te.chainId),this.getChainId()]).then((te=>(0!==te[1]&&te[0]!==te[1]&&IH.throwArgumentError("chainId address mismatch","transaction",D),te[0]))),yield resolveProperties(te)}))}_checkProvider(D){this.provider||IH.throwError("missing provider",Logger.errors.UNSUPPORTED_OPERATION,{operation:D||"_checkProvider"})}static isSigner(D){return!(!D||!D._isSigner)}}class VoidSigner extends Signer{constructor(D,te){super(),defineReadOnly(this,"address",D),defineReadOnly(this,"provider",te||null)}getAddress(){return Promise.resolve(this.address)}_fail(D,te){return Promise.resolve().then((()=>{IH.throwError(D,Logger.errors.UNSUPPORTED_OPERATION,{operation:te})}))}signMessage(D){return this._fail("VoidSigner cannot sign messages","signMessage")}signTransaction(D){return this._fail("VoidSigner cannot sign transactions","signTransaction")}_signTypedData(D,te,he){return this._fail("VoidSigner cannot sign typed data","signTypedData")}connect(D){return new VoidSigner(this.address,D)}}const OH=new Logger("transactions/5.7.0");var xH;function accessSetify(D,te){return{address:getAddress(D),storageKeys:(te||[]).map(((te,he)=>(32!==function hexDataLength(D){if("string"!=typeof D)D=hexlify(D);else if(!isHexString(D)||D.length%2)return null;return(D.length-2)/2}(te)&&OH.throwArgumentError("invalid access list storageKey",`accessList[${D}:${he}]`,te),te.toLowerCase())))}}!function(D){D[D.legacy=0]="legacy",D[D.eip2930=1]="eip2930",D[D.eip1559=2]="eip1559"}(xH||(xH={}));var __awaiter=function(D,te,he,ye){return new(he||(he=Promise))((function(be,ve){function fulfilled(D){try{step(ye.next(D))}catch(D){ve(D)}}function rejected(D){try{step(ye.throw(D))}catch(D){ve(D)}}function step(D){D.done?be(D.value):function adopt(D){return D instanceof he?D:new he((function(te){te(D)}))}(D.value).then(fulfilled,rejected)}step((ye=ye.apply(D,te||[])).next())}))};const NH=new Logger("contracts/5.7.0");function resolveName(D,te){return __awaiter(this,void 0,void 0,(function*(){const he=yield te;"string"!=typeof he&&NH.throwArgumentError("invalid address or ENS name","name",he);try{return getAddress(he)}catch(D){}D||NH.throwError("a provider or signer is needed to resolve ENS names",Logger.errors.UNSUPPORTED_OPERATION,{operation:"resolveName"});const ye=yield D.resolveName(he);return null==ye&&NH.throwArgumentError("resolver or addr is not configured for ENS name","name",he),ye}))}function resolveAddresses(D,te,he){return __awaiter(this,void 0,void 0,(function*(){return Array.isArray(he)?yield Promise.all(he.map(((he,ye)=>resolveAddresses(D,Array.isArray(te)?te[ye]:te[he.name],he)))):"address"===he.type?yield resolveName(D,te):"tuple"===he.type?yield resolveAddresses(D,te,he.components):"array"===he.baseType?Array.isArray(te)?yield Promise.all(te.map((te=>resolveAddresses(D,te,he.arrayChildren)))):Promise.reject(NH.makeError("invalid value for array",Logger.errors.INVALID_ARGUMENT,{argument:"value",value:te})):te}))}function populateTransaction(D,te,he){return __awaiter(this,void 0,void 0,(function*(){let ye={};he.length===te.inputs.length+1&&"object"==typeof he[he.length-1]&&(ye=shallowCopy(he.pop())),NH.checkArgumentCount(he.length,te.inputs.length,"passed to contract"),D.signer?ye.from?ye.from=resolveProperties({override:resolveName(D.signer,ye.from),signer:D.signer.getAddress()}).then((D=>__awaiter(this,void 0,void 0,(function*(){return getAddress(D.signer)!==D.override&&NH.throwError("Contract with a Signer cannot override from",Logger.errors.UNSUPPORTED_OPERATION,{operation:"overrides.from"}),D.override})))):ye.from=D.signer.getAddress():ye.from&&(ye.from=resolveName(D.provider,ye.from));const be=yield resolveProperties({args:resolveAddresses(D.signer||D.provider,he,te.inputs),address:D.resolvedAddress,overrides:resolveProperties(ye)||{}}),ve=D.interface.encodeFunctionData(te,be.args),we={data:ve,to:be.address},_e=be.overrides;if(null!=_e.nonce&&(we.nonce=BigNumber.from(_e.nonce).toNumber()),null!=_e.gasLimit&&(we.gasLimit=BigNumber.from(_e.gasLimit)),null!=_e.gasPrice&&(we.gasPrice=BigNumber.from(_e.gasPrice)),null!=_e.maxFeePerGas&&(we.maxFeePerGas=BigNumber.from(_e.maxFeePerGas)),null!=_e.maxPriorityFeePerGas&&(we.maxPriorityFeePerGas=BigNumber.from(_e.maxPriorityFeePerGas)),null!=_e.from&&(we.from=_e.from),null!=_e.type&&(we.type=_e.type),null!=_e.accessList&&(we.accessList=function accessListify(D){if(Array.isArray(D))return D.map(((D,te)=>Array.isArray(D)?(D.length>2&&OH.throwArgumentError("access list expected to be [ address, storageKeys[] ]",`value[${te}]`,D),accessSetify(D[0],D[1])):accessSetify(D.address,D.storageKeys)));const te=Object.keys(D).map((te=>{const he=D[te].reduce(((D,te)=>(D[te]=!0,D)),{});return accessSetify(te,Object.keys(he).sort())}));return te.sort(((D,te)=>D.address.localeCompare(te.address))),te}(_e.accessList)),null==we.gasLimit&&null!=te.gas){let D=21e3;const he=arrayify(ve);for(let te=0;te<he.length;te++)D+=4,he[te]&&(D+=64);we.gasLimit=BigNumber.from(te.gas).add(D)}if(_e.value){const D=BigNumber.from(_e.value);D.isZero()||te.payable||NH.throwError("non-payable method cannot override value",Logger.errors.UNSUPPORTED_OPERATION,{operation:"overrides.value",value:ye.value}),we.value=D}_e.customData&&(we.customData=shallowCopy(_e.customData)),_e.ccipReadEnabled&&(we.ccipReadEnabled=!!_e.ccipReadEnabled),delete ye.nonce,delete ye.gasLimit,delete ye.gasPrice,delete ye.from,delete ye.value,delete ye.type,delete ye.accessList,delete ye.maxFeePerGas,delete ye.maxPriorityFeePerGas,delete ye.customData,delete ye.ccipReadEnabled;const Pe=Object.keys(ye).filter((D=>null!=ye[D]));return Pe.length&&NH.throwError(`cannot override ${Pe.map((D=>JSON.stringify(D))).join(",")}`,Logger.errors.UNSUPPORTED_OPERATION,{operation:"overrides",overrides:Pe}),we}))}function buildCall(D,te,he){const ye=D.signer||D.provider;return function(...be){return __awaiter(this,void 0,void 0,(function*(){let ve;if(be.length===te.inputs.length+1&&"object"==typeof be[be.length-1]){const D=shallowCopy(be.pop());null!=D.blockTag&&(ve=yield D.blockTag),delete D.blockTag,be.push(D)}null!=D.deployTransaction&&(yield D._deployed(ve));const we=yield populateTransaction(D,te,be),_e=yield ye.call(we,ve);try{let ye=D.interface.decodeFunctionResult(te,_e);return he&&1===te.outputs.length&&(ye=ye[0]),ye}catch(te){throw te.code===Logger.errors.CALL_EXCEPTION&&(te.address=D.address,te.args=be,te.transaction=we),te}}))}}function buildSend(D,te){return function(...he){return __awaiter(this,void 0,void 0,(function*(){D.signer||NH.throwError("sending a transaction requires a signer",Logger.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction"}),null!=D.deployTransaction&&(yield D._deployed());const ye=yield populateTransaction(D,te,he),be=yield D.signer.sendTransaction(ye);return function addContractWait(D,te){const he=te.wait.bind(te);te.wait=te=>he(te).then((te=>(te.events=te.logs.map((he=>{let ye=deepCopy(he),be=null;try{be=D.interface.parseLog(he)}catch(D){}return be&&(ye.args=be.args,ye.decode=(te,he)=>D.interface.decodeEventLog(be.eventFragment,te,he),ye.event=be.name,ye.eventSignature=be.signature),ye.removeListener=()=>D.provider,ye.getBlock=()=>D.provider.getBlock(te.blockHash),ye.getTransaction=()=>D.provider.getTransaction(te.transactionHash),ye.getTransactionReceipt=()=>Promise.resolve(te),ye})),te)))}(D,be),be}))}}function buildDefault(D,te,he){return te.constant?buildCall(D,te,he):buildSend(D,te)}function getEventTag(D){return!D.address||null!=D.topics&&0!==D.topics.length?(D.address||"*")+"@"+(D.topics?D.topics.map((D=>Array.isArray(D)?D.join("|"):D)).join(":"):""):"*"}class RunningEvent{constructor(D,te){defineReadOnly(this,"tag",D),defineReadOnly(this,"filter",te),this._listeners=[]}addListener(D,te){this._listeners.push({listener:D,once:te})}removeListener(D){let te=!1;this._listeners=this._listeners.filter((he=>!(!te&&he.listener===D)||(te=!0,!1)))}removeAllListeners(){this._listeners=[]}listeners(){return this._listeners.map((D=>D.listener))}listenerCount(){return this._listeners.length}run(D){const te=this.listenerCount();return this._listeners=this._listeners.filter((te=>{const he=D.slice();return setTimeout((()=>{te.listener.apply(this,he)}),0),!te.once})),te}prepareEvent(D){}getEmit(D){return[D]}}class ErrorRunningEvent extends RunningEvent{constructor(){super("error",null)}}class FragmentRunningEvent extends RunningEvent{constructor(D,te,he,ye){const be={address:D};let ve=te.getEventTopic(he);ye?(ve!==ye[0]&&NH.throwArgumentError("topic mismatch","topics",ye),be.topics=ye.slice()):be.topics=[ve],super(getEventTag(be),be),defineReadOnly(this,"address",D),defineReadOnly(this,"interface",te),defineReadOnly(this,"fragment",he)}prepareEvent(D){super.prepareEvent(D),D.event=this.fragment.name,D.eventSignature=this.fragment.format(),D.decode=(D,te)=>this.interface.decodeEventLog(this.fragment,D,te);try{D.args=this.interface.decodeEventLog(this.fragment,D.data,D.topics)}catch(te){D.args=null,D.decodeError=te}}getEmit(D){const te=function checkResultErrors(D){const te=[],checkErrors=function(D,he){if(Array.isArray(he))for(let ye in he){const be=D.slice();be.push(ye);try{checkErrors(be,he[ye])}catch(D){te.push({path:be,error:D})}}};return checkErrors([],D),te}(D.args);if(te.length)throw te[0].error;const he=(D.args||[]).slice();return he.push(D),he}}class WildcardRunningEvent extends RunningEvent{constructor(D,te){super("*",{address:D}),defineReadOnly(this,"address",D),defineReadOnly(this,"interface",te)}prepareEvent(D){super.prepareEvent(D);try{const te=this.interface.parseLog(D);D.event=te.name,D.eventSignature=te.signature,D.decode=(D,he)=>this.interface.decodeEventLog(te.eventFragment,D,he),D.args=te.args}catch(D){}}}class BaseContract{constructor(D,te,he){defineReadOnly(this,"interface",getStatic(new.target,"getInterface")(te)),null==he?(defineReadOnly(this,"provider",null),defineReadOnly(this,"signer",null)):Signer.isSigner(he)?(defineReadOnly(this,"provider",he.provider||null),defineReadOnly(this,"signer",he)):Provider.isProvider(he)?(defineReadOnly(this,"provider",he),defineReadOnly(this,"signer",null)):NH.throwArgumentError("invalid signer or provider","signerOrProvider",he),defineReadOnly(this,"callStatic",{}),defineReadOnly(this,"estimateGas",{}),defineReadOnly(this,"functions",{}),defineReadOnly(this,"populateTransaction",{}),defineReadOnly(this,"filters",{});{const D={};Object.keys(this.interface.events).forEach((te=>{const he=this.interface.events[te];defineReadOnly(this.filters,te,((...D)=>({address:this.address,topics:this.interface.encodeFilterTopics(he,D)}))),D[he.name]||(D[he.name]=[]),D[he.name].push(te)})),Object.keys(D).forEach((te=>{const he=D[te];1===he.length?defineReadOnly(this.filters,te,this.filters[he[0]]):NH.warn(`Duplicate definition of ${te} (${he.join(", ")})`)}))}if(defineReadOnly(this,"_runningEvents",{}),defineReadOnly(this,"_wrappedEmits",{}),null==D&&NH.throwArgumentError("invalid contract address or ENS name","addressOrName",D),defineReadOnly(this,"address",D),this.provider)defineReadOnly(this,"resolvedAddress",resolveName(this.provider,D));else try{defineReadOnly(this,"resolvedAddress",Promise.resolve(getAddress(D)))}catch(D){NH.throwError("provider is required to use ENS name as contract address",Logger.errors.UNSUPPORTED_OPERATION,{operation:"new Contract"})}this.resolvedAddress.catch((D=>{}));const ye={},be={};Object.keys(this.interface.functions).forEach((D=>{const te=this.interface.functions[D];if(be[D])NH.warn(`Duplicate ABI entry for ${JSON.stringify(D)}`);else{be[D]=!0;{const he=te.name;ye[`%${he}`]||(ye[`%${he}`]=[]),ye[`%${he}`].push(D)}null==this[D]&&defineReadOnly(this,D,buildDefault(this,te,!0)),null==this.functions[D]&&defineReadOnly(this.functions,D,buildDefault(this,te,!1)),null==this.callStatic[D]&&defineReadOnly(this.callStatic,D,buildCall(this,te,!0)),null==this.populateTransaction[D]&&defineReadOnly(this.populateTransaction,D,function buildPopulate(D,te){return function(...he){return populateTransaction(D,te,he)}}(this,te)),null==this.estimateGas[D]&&defineReadOnly(this.estimateGas,D,function buildEstimate(D,te){const he=D.signer||D.provider;return function(...ye){return __awaiter(this,void 0,void 0,(function*(){he||NH.throwError("estimate require a provider or signer",Logger.errors.UNSUPPORTED_OPERATION,{operation:"estimateGas"});const be=yield populateTransaction(D,te,ye);return yield he.estimateGas(be)}))}}(this,te))}})),Object.keys(ye).forEach((D=>{const te=ye[D];if(te.length>1)return;D=D.substring(1);const he=te[0];try{null==this[D]&&defineReadOnly(this,D,this[he])}catch(D){}null==this.functions[D]&&defineReadOnly(this.functions,D,this.functions[he]),null==this.callStatic[D]&&defineReadOnly(this.callStatic,D,this.callStatic[he]),null==this.populateTransaction[D]&&defineReadOnly(this.populateTransaction,D,this.populateTransaction[he]),null==this.estimateGas[D]&&defineReadOnly(this.estimateGas,D,this.estimateGas[he])}))}static getContractAddress(D){return getContractAddress(D)}static getInterface(D){return Interface.isInterface(D)?D:new Interface(D)}deployed(){return this._deployed()}_deployed(D){return this._deployedPromise||(this.deployTransaction?this._deployedPromise=this.deployTransaction.wait().then((()=>this)):this._deployedPromise=this.provider.getCode(this.address,D).then((D=>("0x"===D&&NH.throwError("contract not deployed",Logger.errors.UNSUPPORTED_OPERATION,{contractAddress:this.address,operation:"getDeployed"}),this)))),this._deployedPromise}fallback(D){this.signer||NH.throwError("sending a transactions require a signer",Logger.errors.UNSUPPORTED_OPERATION,{operation:"sendTransaction(fallback)"});const te=shallowCopy(D||{});return["from","to"].forEach((function(D){null!=te[D]&&NH.throwError("cannot override "+D,Logger.errors.UNSUPPORTED_OPERATION,{operation:D})})),te.to=this.resolvedAddress,this.deployed().then((()=>this.signer.sendTransaction(te)))}connect(D){"string"==typeof D&&(D=new VoidSigner(D,this.provider));const te=new this.constructor(this.address,this.interface,D);return this.deployTransaction&&defineReadOnly(te,"deployTransaction",this.deployTransaction),te}attach(D){return new this.constructor(D,this.interface,this.signer||this.provider)}static isIndexed(D){return Indexed.isIndexed(D)}_normalizeRunningEvent(D){return this._runningEvents[D.tag]?this._runningEvents[D.tag]:D}_getRunningEvent(D){if("string"==typeof D){if("error"===D)return this._normalizeRunningEvent(new ErrorRunningEvent);if("event"===D)return this._normalizeRunningEvent(new RunningEvent("event",null));if("*"===D)return this._normalizeRunningEvent(new WildcardRunningEvent(this.address,this.interface));const te=this.interface.getEvent(D);return this._normalizeRunningEvent(new FragmentRunningEvent(this.address,this.interface,te))}if(D.topics&&D.topics.length>0){try{const te=D.topics[0];if("string"!=typeof te)throw new Error("invalid topic");const he=this.interface.getEvent(te);return this._normalizeRunningEvent(new FragmentRunningEvent(this.address,this.interface,he,D.topics))}catch(D){}const te={address:this.address,topics:D.topics};return this._normalizeRunningEvent(new RunningEvent(getEventTag(te),te))}return this._normalizeRunningEvent(new WildcardRunningEvent(this.address,this.interface))}_checkRunningEvents(D){if(0===D.listenerCount()){delete this._runningEvents[D.tag];const te=this._wrappedEmits[D.tag];te&&D.filter&&(this.provider.off(D.filter,te),delete this._wrappedEmits[D.tag])}}_wrapEvent(D,te,he){const ye=deepCopy(te);return ye.removeListener=()=>{he&&(D.removeListener(he),this._checkRunningEvents(D))},ye.getBlock=()=>this.provider.getBlock(te.blockHash),ye.getTransaction=()=>this.provider.getTransaction(te.transactionHash),ye.getTransactionReceipt=()=>this.provider.getTransactionReceipt(te.transactionHash),D.prepareEvent(ye),ye}_addEventListener(D,te,he){if(this.provider||NH.throwError("events require a provider or a signer with a provider",Logger.errors.UNSUPPORTED_OPERATION,{operation:"once"}),D.addListener(te,he),this._runningEvents[D.tag]=D,!this._wrappedEmits[D.tag]){const wrappedEmit=he=>{let ye=this._wrapEvent(D,he,te);if(null==ye.decodeError)try{const te=D.getEmit(ye);this.emit(D.filter,...te)}catch(D){ye.decodeError=D.error}null!=D.filter&&this.emit("event",ye),null!=ye.decodeError&&this.emit("error",ye.decodeError,ye)};this._wrappedEmits[D.tag]=wrappedEmit,null!=D.filter&&this.provider.on(D.filter,wrappedEmit)}}queryFilter(D,te,he){const ye=this._getRunningEvent(D),be=shallowCopy(ye.filter);return"string"==typeof te&&isHexString(te,32)?(null!=he&&NH.throwArgumentError("cannot specify toBlock with blockhash","toBlock",he),be.blockHash=te):(be.fromBlock=null!=te?te:0,be.toBlock=null!=he?he:"latest"),this.provider.getLogs(be).then((D=>D.map((D=>this._wrapEvent(ye,D,null)))))}on(D,te){return this._addEventListener(this._getRunningEvent(D),te,!1),this}once(D,te){return this._addEventListener(this._getRunningEvent(D),te,!0),this}emit(D,...te){if(!this.provider)return!1;const he=this._getRunningEvent(D),ye=he.run(te)>0;return this._checkRunningEvents(he),ye}listenerCount(D){return this.provider?null==D?Object.keys(this._runningEvents).reduce(((D,te)=>D+this._runningEvents[te].listenerCount()),0):this._getRunningEvent(D).listenerCount():0}listeners(D){if(!this.provider)return[];if(null==D){const D=[];for(let te in this._runningEvents)this._runningEvents[te].listeners().forEach((te=>{D.push(te)}));return D}return this._getRunningEvent(D).listeners()}removeAllListeners(D){if(!this.provider)return this;if(null==D){for(const D in this._runningEvents){const te=this._runningEvents[D];te.removeAllListeners(),this._checkRunningEvents(te)}return this}const te=this._getRunningEvent(D);return te.removeAllListeners(),this._checkRunningEvents(te),this}off(D,te){if(!this.provider)return this;const he=this._getRunningEvent(D);return he.removeListener(te),this._checkRunningEvents(he),this}removeListener(D,te){return this.off(D,te)}}class Contract extends BaseContract{}const MH=[{inputs:[{internalType:"address",name:"_gateway",type:"address"},{internalType:"address",name:"_initializerAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"CallerNotBridge",type:"error"},{inputs:[],name:"InvalidAddress",type:"error"},{inputs:[],name:"InvalidChildBridgeAdaptor",type:"error"},{inputs:[],name:"InvalidChildChain",type:"error"},{inputs:[],name:"InvalidSourceAddress",type:"error"},{inputs:[],name:"InvalidSourceChain",type:"error"},{inputs:[],name:"NoGas",type:"error"},{inputs:[],name:"NotApprovedByGateway",type:"error"},{inputs:[],name:"UnauthorizedInitializer",type:"error"},{inputs:[],name:"UnsupportedOperation",type:"error"},{inputs:[],name:"ZeroAddresses",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"sourceChain",type:"string"},{indexed:!1,internalType:"string",name:"sourceAddress_",type:"string"},{indexed:!1,internalType:"bytes",name:"payload_",type:"bytes"}],name:"AdaptorExecute",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"string",name:"childChain",type:"string"},{indexed:!0,internalType:"string",name:"childBridgeAdaptor",type:"string"},{indexed:!0,internalType:"bytes",name:"payload",type:"bytes"}],name:"AxelarMessageSent",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"oldChildBridgeAdaptor",type:"string"},{indexed:!1,internalType:"string",name:"newChildBridgeAdaptor",type:"string"}],name:"ChildBridgeAdaptorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"string",name:"oldChildChain",type:"string"},{indexed:!0,internalType:"string",name:"newChildChain",type:"string"}],name:"ChildChainUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldGasService",type:"address"},{indexed:!0,internalType:"address",name:"newGasService",type:"address"}],name:"GasServiceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"oldRootBridge",type:"address"},{indexed:!0,internalType:"address",name:"newRootBridge",type:"address"}],name:"RootBridgeUpdated",type:"event"},{inputs:[],name:"BRIDGE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"GAS_SERVICE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"TARGET_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childBridgeAdaptor",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"childChainId",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"commandId",type:"bytes32"},{internalType:"string",name:"sourceChain",type:"string"},{internalType:"string",name:"sourceAddress",type:"string"},{internalType:"bytes",name:"payload",type:"bytes"}],name:"execute",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"commandId",type:"bytes32"},{internalType:"string",name:"sourceChain",type:"string"},{internalType:"string",name:"sourceAddress",type:"string"},{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"string",name:"tokenSymbol",type:"string"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"executeWithToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"gasService",outputs:[{internalType:"contract IAxelarGasService",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"gateway",outputs:[{internalType:"contract IAxelarGateway",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantBridgeManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantGasServiceManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantTargetManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"bridgeManager",type:"address"},{internalType:"address",name:"gasServiceManager",type:"address"},{internalType:"address",name:"targetManager",type:"address"}],internalType:"struct IRootAxelarBridgeAdaptor.InitializationRoles",name:"_adaptorRoles",type:"tuple"},{internalType:"address",name:"_rootBridge",type:"address"},{internalType:"string",name:"_childChainId",type:"string"},{internalType:"string",name:"_childBridgeAdaptor",type:"string"},{internalType:"address",name:"_gasService",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"initializerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeBridgeManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeGasServiceManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeTargetManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootBridge",outputs:[{internalType:"contract IRootERC20Bridge",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"address",name:"refundRecipient",type:"address"}],name:"sendMessage",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"newChildBridgeAdaptor",type:"string"}],name:"updateChildBridgeAdaptor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"newChildChain",type:"string"}],name:"updateChildChain",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newGasService",type:"address"}],name:"updateGasService",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRootBridge",type:"address"}],name:"updateRootBridge",outputs:[],stateMutability:"nonpayable",type:"function"}];var BH,FH,DH,LH;!function(D){D.SUCCESS="SUCCESS",D.PENDING="PENDING",D.FAILED="FAILED"}(BH||(BH={})),function(D){D.DEPOSIT="DEPOSIT",D.WITHDRAW="WITHDRAW",D.FINALISE_WITHDRAWAL="FINALISE_WITHDRAWAL"}(FH||(FH={})),function(D){D[D.DEPOSIT_SOURCE=15e4]="DEPOSIT_SOURCE",D[D.DEPOSIT_DESTINATION=25e4]="DEPOSIT_DESTINATION",D[D.WITHDRAW_SOURCE=25e4]="WITHDRAW_SOURCE",D[D.WITHDRAW_DESTINATION=25e4]="WITHDRAW_DESTINATION",D[D.MAP_TOKEN_SOURCE=2e5]="MAP_TOKEN_SOURCE",D[D.MAP_TOKEN_DESTINATION=2e5]="MAP_TOKEN_DESTINATION",D[D.FINALISE_WITHDRAWAL=2e5]="FINALISE_WITHDRAWAL",D[D.APPROVE_TOKEN=55e3]="APPROVE_TOKEN"}(DH||(DH={})),function(D){D.PENDING="PENDING",D.PROCESSING="PROCESSING",D.COMPLETE="COMPLETE",D.RETRY="RETRY",D.ERROR="ERROR",D.NOT_ENOUGH_GAS="NOT_ENOUGH_GAS",D.FLOW_RATE_CONTROLLED="FLOW_RATE_CONTROLLED"}(LH||(LH={}));const UH="NATIVE",$H="11155111",qH="15003",GH="13473",jH="13371",zH={mainnet:"0x3a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d",testnet:"0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439",devnet:""},WH={mainnet:"0xf57e7e7c23978c3caec3c3548e3d615c346e79ff",testnet:"0xe2629e08f4125d14e446660028bD98ee60EE69F2",devnet:""},VH={mainnet:"0x52a6c53869ce09a731cd772f245b97a4401d3348",testnet:"0xe9E96d1aad82562b7588F03f49aD34186f996478",devnet:""},KH={mainnet:"0x4f49b53928a71e553bb1b0f66a5bcb54fd4e8932",testnet:"0x6328Ac88ba8D466a0F551FC7C42C61d1aC7f92ab",devnet:""},JH={mainnet:"0x4f49b53928a71e553bb1b0f66a5bcb54fd4e8932",testnet:"0x6328Ac88ba8D466a0F551FC7C42C61d1aC7f92ab",devnet:""},XH={mainnet:"immutable",testnet:"immutable",devnet:""},QH={mainnet:"0x4F4495243837681061C4743b74B3eEdf548D56A5",testnet:"0xe432150cce91c13a887f7D836923d5597adD8E31",devnet:""},ZH={rootChainID:$H,childChainID:qH},YH={rootChainID:$H,childChainID:GH},ez={rootChainID:"1",childChainID:jH},tz={mainnet:"https://api.gmp.axelarscan.io",testnet:"https://testnet.api.gmp.axelarscan.io",devnet:"https://stagenet.api.gmp.axelarscan.io"},rz={mainnet:"https://bridge-api.immutable.com/v1/tenderly/estimate",testnet:"https://bridge-api.sandbox.immutable.com/v1/tenderly/estimate",devnet:"https://bridge-api.dev.immutable.com/v1/tenderly/estimate"},nz={11155111:{id:"ethereum-sepolia",symbol:"ETH"},1:{id:"ethereum",symbol:"ETH"},15003:{id:"immutable",symbol:"IMX"},13473:{id:"immutable",symbol:"IMX"},13371:{id:"immutable",symbol:"IMX"}},az={token:"deposit",tokenTo:"depositTo",native:"depositETH",nativeTo:"depositToETH"},iz={token:"withdraw",tokenTo:"withdrawTo",native:"withdrawIMX",nativeTo:"withdrawIMXTo"};var sz;!function(D){D.UNSUPPORTED_ERROR="UNSUPPORTED_ERROR",D.INVALID_ADDRESS="INVALID_ADDRESS",D.INVALID_AMOUNT="INVALID_AMOUNT",D.INTERNAL_ERROR="INTERNAL_ERROR",D.PROVIDER_ERROR="PROVIDER_ERROR",D.ROOT_PROVIDER_ERROR="ROOT_PROVIDER_ERROR",D.CHILD_PROVIDER_ERROR="CHILD_PROVIDER_ERROR",D.TRANSACTION_REVERTED="TRANSACTION_REVERTED",D.INVALID_TOKEN="INVALID_TOKEN",D.INVALID_TRANSACTION="INVALID_TRANSACTION",D.INVALID_SOURCE_CHAIN_ID="INVALID_SOURCE_CHAIN_ID",D.INVALID_DESTINATION_CHAIN_ID="INVALID_DESTINATION_CHAIN_ID",D.INVALID_SOURCE_OR_DESTINATION_CHAIN="INVALID_SOURCE_OR_DESTINATION_CHAIN",D.CHAIN_IDS_MATCH="CHAIN_IDS_MATCH",D.AXELAR_CHAIN_NOT_FOUND="AXELAR_CHAIN_NOT_FOUND",D.AXELAR_GAS_ESTIMATE_FAILED="AXELAR_GAS_ESTIMATE_FAILED",D.TENDERLY_GAS_ESTIMATE_FAILED="TENDERLY_GAS_ESTIMATE_FAILED",D.INVALID_RECIPIENT="INVALID_RECIPIENT",D.FLOW_RATE_ERROR="FLOW_RATE_ERROR",D.INVALID_FLOWRATE_INDEX="INVALID_FLOWRATE_INDEX"}(sz||(sz={}));class BridgeError extends Error{type;constructor(D,te){super(D),this.type=te}}const withBridgeError=async(D,te,he)=>{try{return await D()}catch(D){let he=`${te}: ${D.message}`||"UnknownError";throw new BridgeError(he,te)}};async function createContract(D,te,he){return await withBridgeError((async()=>new Contract(D,te,he)),sz.PROVIDER_ERROR)}function getAddresses(D,te){let he;return he=D===ez.rootChainID||D===ez.childChainID?te.mainnet:D===YH.rootChainID||D===YH.childChainID?te.testnet:te.devnet,he}function isChildETH(D,te){return D.toUpperCase()===function getChildETH(D){return getAddresses(D,VH)}(te).toUpperCase()}function getRootIMX(D){return getAddresses(D,WH)}function getAxelarEndpoint(D){return getAddresses(D,tz)}function isWrappedIMX(D,te){return D.toUpperCase()===function getWrappedIMX(D){return getAddresses(D,zH)}(te).toUpperCase()}function isValidDeposit(D,te){return D.sourceChainId===te.rootChainID&&D.destinationChainId===te.childChainID&&D.action===FH.DEPOSIT}function isValidWithdraw(D,te){return D.sourceChainId===te.childChainID&&D.destinationChainId===te.rootChainID&&D.action===FH.WITHDRAW}async function checkReceiver(D,te,he,ye){let be;if(te===ye.bridgeInstance.rootChainID){if(!isChildETH(D,te))return;be=ye.rootProvider}else{if(!function isRootIMX(D,te){return D.toUpperCase()===getRootIMX(te).toUpperCase()}(D,te))return;be=ye.childProvider}if((await be.getCode(he)).length<=2)return;const ve=await createContract(he,["function receive()"],be);try{await ve.estimateGas.receive()}catch{try{await be.estimateGas({to:he})}catch{throw new BridgeError(`address ${he} is not a valid receipient`,sz.INVALID_RECIPIENT)}}}async function validateChainIds(D,te,he){if(!(D===he.bridgeInstance.rootChainID||D===he.bridgeInstance.childChainID))throw new BridgeError(`the sourceChainId ${D} is not a valid`,sz.INVALID_SOURCE_CHAIN_ID);if(!(te===he.bridgeInstance.rootChainID||te===he.bridgeInstance.childChainID))throw new BridgeError(`the destinationChainId ${te} is not a valid`,sz.INVALID_DESTINATION_CHAIN_ID);if(D===te)throw new BridgeError(`the sourceChainId ${D} cannot be the same as the destinationChainId ${te}`,sz.CHAIN_IDS_MATCH)}async function validateBridgeReqArgs(D,te){if(await validateChainIds(D.sourceChainId,D.destinationChainId,te),!isAddress(D.senderAddress)||!isAddress(D.recipientAddress))throw new BridgeError(`address ${D.senderAddress} or ${D.recipientAddress} is not a valid address`,sz.INVALID_ADDRESS);if(D.amount.isNegative()||D.amount.isZero())throw new BridgeError(`deposit amount ${D.amount.toString()} is invalid`,sz.INVALID_AMOUNT);if(D.token.toUpperCase()!==UH&&!isAddress(D.token))throw new BridgeError(`token address ${D.token} is not a valid address`,sz.INVALID_ADDRESS)}function calculateGasFee$1(D,te){const he=(D=>(D=>!!D.maxFeePerGas&&!!D.maxPriorityFeePerGas&&!!D.lastBaseFeePerGas)(D)?BigNumber.from(D.lastBaseFeePerGas).add(BigNumber.from(D.maxPriorityFeePerGas)):D.gasPrice?BigNumber.from(D.gasPrice):null)(D);return he?he.mul(te):BigNumber.from(0)}const oz=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"userAddress",type:"address"},{indexed:!1,internalType:"address",name:"relayerAddress",type:"address"},{indexed:!1,internalType:"bytes",name:"functionSignature",type:"bytes"}],name:"MetaTransactionExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"bridge",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"userAddress",type:"address"},{internalType:"bytes",name:"functionSignature",type:"bytes"},{internalType:"bytes32",name:"sigR",type:"bytes32"},{internalType:"bytes32",name:"sigS",type:"bytes32"},{internalType:"uint8",name:"sigV",type:"uint8"}],name:"executeMetaTransaction",outputs:[{internalType:"bytes",name:"",type:"bytes"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"getNonce",outputs:[{internalType:"uint256",name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"rootToken_",type:"address"},{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"},{internalType:"uint8",name:"decimals_",type:"uint8"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"offset",type:"uint256"}],name:"invalidateNext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}];async function getWithdrawRootToken(D,te,he){if(D.toUpperCase()===UH||isWrappedIMX(D,te))return getRootIMX(te);const ye=await async function createChildErc20Contract(D,te){return createContract(D,oz,te)}(D,he);return withBridgeError((()=>ye.rootToken()),sz.PROVIDER_ERROR)}async function submitTenderlySimulations(D,te,he){let ye;const be=function getTenderlyEndpoint(D){return getAddresses(D,rz)}(D),ve=he?function unwrapStateObjects(D){const te={};return D.forEach((D=>{const{contractAddress:he,stateDiff:ye}=D,{storageSlot:be,value:ve}=ye;void 0===te[he]&&(te[he]={stateDiff:{}}),te[he].stateDiff[be]=ve})),te}(he):void 0;try{ye=await Sj.post(be,{jsonrpc:"2.0",id:0,method:"tenderly_simulateBundle",params:[te,"latest",ve]},{headers:{"Content-Type":"application/json"}})}catch(D){ye=D.response}if(ye.data.error)throw new BridgeError(`Estimating gas failed with the reason: ${ye.data.error.message}`,sz.TENDERLY_GAS_ESTIMATE_FAILED);const we=ye.data.result;if(we.length!==te.length)throw new BridgeError("Estimating gas failed with mismatched responses",sz.TENDERLY_GAS_ESTIMATE_FAILED);const _e=[];let Pe=!1,Ie=!1,Re=!1,ke=0,Oe=!1;const xe=void 0!==te.find((D=>D.data?.startsWith("0x84a3291a0")));for(let D=0;D<we.length;D++){if(we[D].error)throw new BridgeError(`Estimating deposit gas failed with the reason: ${we[D].error.message}`,sz.TENDERLY_GAS_ESTIMATE_FAILED);if(void 0===we[D].gasUsed)throw new BridgeError("Estimating gas did not return simulation results",sz.TENDERLY_GAS_ESTIMATE_FAILED);if(xe&&void 0!==we[D].logs){const te=we[D].logs.find((D=>"QueuedWithdrawal"===D.name));if(void 0!==te){const D=new Map(te.inputs.map((D=>[D.name,D.value])));Pe=D.get("delayWithdrawalLargeAmount")||!1,Ie=D.get("delayWithdrawalUnknownToken")||!1,Re=D.get("withdrawalQueueActivated")||!1}}if(xe&&void 0!==we[D].trace){const te=we[D].trace.find((D=>"largeTransferThresholds"===D.method));void 0!==te&&(ke=te.output,Oe=!0)}Oe||_e.push(we[D].gasUsed)}return{gas:_e,delayWithdrawalLargeAmount:Pe,delayWithdrawalUnknownToken:Ie,withdrawalQueueActivated:Re,largeTransferThresholds:ke}}const cz=[{inputs:[{internalType:"address",name:"_initializerAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyMapped",type:"error"},{inputs:[{internalType:"uint256",name:"actualBalance",type:"uint256"},{internalType:"uint256",name:"expectedBalance",type:"uint256"}],name:"BalanceInvariantCheckFailed",type:"error"},{inputs:[],name:"CantMapETH",type:"error"},{inputs:[],name:"CantMapIMX",type:"error"},{inputs:[],name:"CantMapWETH",type:"error"},{inputs:[],name:"ImxDepositLimitExceeded",type:"error"},{inputs:[],name:"ImxDepositLimitTooLow",type:"error"},{inputs:[{internalType:"uint256",name:"lengthOfQueue",type:"uint256"},{internalType:"uint256",name:"requestedIndex",type:"uint256"}],name:"IndexOutsideWithdrawalQueue",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[],name:"InvalidCapacity",type:"error"},{inputs:[],name:"InvalidChildChain",type:"error"},{inputs:[{internalType:"string",name:"reason",type:"string"}],name:"InvalidData",type:"error"},{inputs:[],name:"InvalidRefillRate",type:"error"},{inputs:[],name:"InvalidToken",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"address",name:"actualToken",type:"address"}],name:"MixedTokens",type:"error"},{inputs:[],name:"NoGas",type:"error"},{inputs:[],name:"NonWrappedNativeTransfer",type:"error"},{inputs:[],name:"NotBridgeAdaptor",type:"error"},{inputs:[],name:"NotMapped",type:"error"},{inputs:[],name:"ProvideAtLeastOneIndex",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"TokenIsZero",type:"error"},{inputs:[],name:"TokenNotSupported",type:"error"},{inputs:[],name:"UnauthorizedInitializer",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"WithdrawalAlreadyProcessed",type:"error"},{inputs:[{internalType:"uint256",name:"timeNow",type:"uint256"},{internalType:"uint256",name:"currentWithdrawalTime",type:"uint256"}],name:"WithdrawalRequestTooEarly",type:"error"},{inputs:[],name:"WrongInitializer",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"who",type:"address"}],name:"ActivatedWithdrawalQueue",type:"event"},{anonymous:!1,inputs:[],name:"AutoActivatedWithdrawalQueue",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"who",type:"address"}],name:"DeactivatedWithdrawalQueue",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"EnQueuedWithdrawal",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"IMXDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"}],name:"L1TokenMapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeEthDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"oldImxDepositLimit",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newImxDepositLimit",type:"uint256"}],name:"NewImxDepositLimit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"timestamp",type:"uint256"},{indexed:!1,internalType:"uint256",name:"index",type:"uint256"}],name:"ProcessedWithdrawal",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!0,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bool",name:"delayWithdrawalLargeAmount",type:"bool"},{indexed:!1,internalType:"bool",name:"delayWithdrawalUnknownToken",type:"bool"},{indexed:!1,internalType:"bool",name:"withdrawalQueueActivated",type:"bool"}],name:"QueuedWithdrawal",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"capacity",type:"uint256"},{indexed:!1,internalType:"uint256",name:"refillRate",type:"uint256"},{indexed:!1,internalType:"uint256",name:"largeTransferThreshold",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousCapacity",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousRefillRate",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousLargeTransferThreshold",type:"uint256"}],name:"RateControlThresholdSet",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"oldRootBridgeAdaptor",type:"address"},{indexed:!1,internalType:"address",name:"newRootBridgeAdaptor",type:"address"}],name:"RootBridgeAdaptorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"RootChainERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"withdrawer",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"RootChainETHWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"WETHDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"delay",type:"uint256"},{indexed:!1,internalType:"uint256",name:"previousDelay",type:"uint256"}],name:"WithdrawalDelayUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"WithdrawalForNonFlowRatedToken",type:"event"},{inputs:[],name:"ADAPTOR_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_ETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_IMX",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNLIMITED_DEPOSIT",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNPAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"VARIABLE_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"activateWithdrawalQueue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"childERC20Bridge",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childETHToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"deactivateWithdrawalQueue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"depositToETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"finaliseQueuedWithdrawal",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256[]",name:"indices",type:"uint256[]"}],name:"finaliseQueuedWithdrawalsAggregated",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"startIndex",type:"uint256"},{internalType:"uint256",name:"stopIndex",type:"uint256"},{internalType:"uint256",name:"maxFind",type:"uint256"}],name:"findPendingWithdrawals",outputs:[{components:[{internalType:"uint256",name:"index",type:"uint256"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"}],internalType:"struct FlowRateWithdrawalQueue.FindPendingWithdrawal[]",name:"found",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"flowRateBuckets",outputs:[{internalType:"uint256",name:"capacity",type:"uint256"},{internalType:"uint256",name:"depth",type:"uint256"},{internalType:"uint256",name:"refillTime",type:"uint256"},{internalType:"uint256",name:"refillRate",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256[]",name:"indices",type:"uint256[]"}],name:"getPendingWithdrawals",outputs:[{components:[{internalType:"address",name:"withdrawer",type:"address"},{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"timestamp",type:"uint256"}],internalType:"struct FlowRateWithdrawalQueue.PendingWithdrawal[]",name:"pending",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"getPendingWithdrawalsLength",outputs:[{internalType:"uint256",name:"length",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantPauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantVariableManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"imxCumulativeDepositLimit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"pauser",type:"address"},{internalType:"address",name:"unpauser",type:"address"},{internalType:"address",name:"variableManager",type:"address"},{internalType:"address",name:"adaptorManager",type:"address"}],internalType:"struct IRootERC20Bridge.InitializationRoles",name:"newRoles",type:"tuple"},{internalType:"address",name:"newRootBridgeAdaptor",type:"address"},{internalType:"address",name:"newChildERC20Bridge",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"newRootIMXToken",type:"address"},{internalType:"address",name:"newRootWETHToken",type:"address"},{internalType:"uint256",name:"newImxCumulativeDepositLimit",type:"uint256"},{internalType:"address",name:"rateAdmin",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"pauser",type:"address"},{internalType:"address",name:"unpauser",type:"address"},{internalType:"address",name:"variableManager",type:"address"},{internalType:"address",name:"adaptorManager",type:"address"}],internalType:"struct IRootERC20Bridge.InitializationRoles",name:"",type:"tuple"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"address",name:"",type:"address"},{internalType:"uint256",name:"",type:"uint256"}],name:"initialize",outputs:[],stateMutability:"pure",type:"function"},{inputs:[],name:"initializerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"largeTransferThresholds",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IERC20Metadata",name:"rootToken",type:"address"}],name:"mapToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"onMessageReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokePauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeVariableManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootBridgeAdaptor",outputs:[{internalType:"contract IRootBridgeAdaptor",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootIMXToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"rootWETHToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"capacity",type:"uint256"},{internalType:"uint256",name:"refillRate",type:"uint256"},{internalType:"uint256",name:"largeTransferThreshold",type:"uint256"}],name:"setRateControlThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"delay",type:"uint256"}],name:"setWithdrawalDelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newImxCumulativeDepositLimit",type:"uint256"}],name:"updateImxCumulativeDepositLimit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newRootBridgeAdaptor",type:"address"}],name:"updateRootBridgeAdaptor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawalDelay",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"withdrawalQueueActivated",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{stateMutability:"payable",type:"receive"}],dz=[{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}],uz=[{inputs:[{internalType:"address",name:"_initializerAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AlreadyMapped",type:"error"},{inputs:[{internalType:"uint256",name:"actualBalance",type:"uint256"},{internalType:"uint256",name:"expectedBalance",type:"uint256"}],name:"BalanceInvariantCheckFailed",type:"error"},{inputs:[],name:"BridgeNotSet",type:"error"},{inputs:[],name:"BurnFailed",type:"error"},{inputs:[],name:"CantMapETH",type:"error"},{inputs:[],name:"CantMapIMX",type:"error"},{inputs:[],name:"EmptyTokenContract",type:"error"},{inputs:[],name:"IncorrectBridgeAddress",type:"error"},{inputs:[],name:"InsufficientIMX",type:"error"},{inputs:[],name:"InsufficientValue",type:"error"},{inputs:[{internalType:"string",name:"reason",type:"string"}],name:"InvalidData",type:"error"},{inputs:[],name:"MintFailed",type:"error"},{inputs:[],name:"NoGas",type:"error"},{inputs:[],name:"NonWrappedNativeTransfer",type:"error"},{inputs:[],name:"NotBridgeAdaptor",type:"error"},{inputs:[],name:"NotMapped",type:"error"},{inputs:[],name:"TransferWIMXFailed",type:"error"},{inputs:[],name:"UnauthorizedInitializer",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAddressRootToken",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{inputs:[],name:"ZeroValue",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"oldChildBridgeAdaptor",type:"address"},{indexed:!1,internalType:"address",name:"newChildBridgeAdaptor",type:"address"}],name:"ChildBridgeAdaptorUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainERC20Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainERC20Withdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainEthWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainNativeIMXWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ChildChainWrappedIMXWithdraw",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"IMXDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"version",type:"uint8"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"rootToken",type:"address"},{indexed:!1,internalType:"address",name:"childToken",type:"address"}],name:"L2TokenMapped",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"rootToken",type:"address"},{indexed:!0,internalType:"address",name:"childToken",type:"address"},{indexed:!1,internalType:"address",name:"depositor",type:"address"},{indexed:!0,internalType:"address",name:"receiver",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"NativeEthDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"depositor",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"PrivilegedDeposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"ADAPTOR_MANAGER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEPOSIT_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"MAP_TOKEN_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_ETH",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"NATIVE_IMX",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PRIVILEGED_DEPOSITOR_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"UNPAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAW_SIG",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"childBridgeAdaptor",outputs:[{internalType:"contract IChildBridgeAdaptor",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childETHToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"childTokenTemplate",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantPauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"grantUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"defaultAdmin",type:"address"},{internalType:"address",name:"pauser",type:"address"},{internalType:"address",name:"unpauser",type:"address"},{internalType:"address",name:"adaptorManager",type:"address"},{internalType:"address",name:"initialDepositor",type:"address"},{internalType:"address",name:"treasuryManager",type:"address"}],internalType:"struct IChildERC20Bridge.InitializationRoles",name:"newRoles",type:"tuple"},{internalType:"address",name:"newBridgeAdaptor",type:"address"},{internalType:"address",name:"newChildTokenTemplate",type:"address"},{internalType:"address",name:"newRootIMXToken",type:"address"},{internalType:"address",name:"newWIMXToken",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"initializerAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"onMessageReceive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"privilegedDeposit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeAdaptorManagerRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokePauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"revokeUnpauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rootIMXToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"rootTokenToChildToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newBridgeAdaptor",type:"address"}],name:"updateChildBridgeAdaptor",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"wIMXToken",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawETHTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawIMX",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawIMXTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"contract IChildERC20",name:"childToken",type:"address"},{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawWIMX",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawWIMXTo",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];var fz,lz;!function(D){D.SRC_GATEWAY_CALLED="source_gateway_called",D.DEST_GATEWAY_APPROVED="destination_gateway_approved",D.DEST_EXECUTED="destination_executed",D.EXPRESS_EXECUTED="express_executed",D.DEST_EXECUTE_ERROR="error",D.DEST_EXECUTING="executing",D.APPROVING="approving",D.FORECALLED="forecalled",D.FORECALLED_WITHOUT_GAS_PAID="forecalled_without_gas_paid",D.NOT_EXECUTED="not_executed",D.NOT_EXECUTED_WITHOUT_GAS_PAID="not_executed_without_gas_paid",D.INSUFFICIENT_FEE="insufficient_fee",D.UNKNOWN_ERROR="unknown_error",D.CANNOT_FETCH_STATUS="cannot_fetch_status",D.SRC_GATEWAY_CONFIRMED="confirmed"}(fz||(fz={})),function(D){D.GAS_UNPAID="gas_unpaid",D.GAS_PAID="gas_paid",D.GAS_PAID_NOT_ENOUGH_GAS="gas_paid_not_enough_gas",D.GAS_PAID_ENOUGH_GAS="gas_paid_enough_gas"}(lz||(lz={}));const parseGMPStatus=D=>{const{error:te,status:he}=D;return"error"===he&&te?fz.DEST_EXECUTE_ERROR:"executed"===he?fz.DEST_EXECUTED:"approved"===he?fz.DEST_GATEWAY_APPROVED:"called"===he?fz.SRC_GATEWAY_CALLED:"executing"===he?fz.DEST_EXECUTING:he},fetchGMPTransaction=async(D,te,he)=>(async(D,te)=>fetch(`${D}?${new URLSearchParams(te).toString()}`,{method:"GET",headers:{"Content-Type":"application/json"},cache:"no-store"}).then((D=>D.json())).then((D=>D.data)))(D,{method:"searchGMP",txHash:te,txLogIndex:he}).then((D=>D.find((D=>D.id.indexOf(te)>-1||D.call.transactionHash.indexOf(te)>-1)))).catch((()=>{})),queryTransactionStatus=async(D,te,he)=>{const ye=await fetchGMPTransaction(D,te,he);if(!ye)return{status:fz.CANNOT_FETCH_STATUS};const{call:be,gas_status:ve,gas_paid:we,executed:_e,express_executed:Pe,approved:Ie,callback:Re}=ye,ke={status:ve,details:we},Oe=ye.time_spent;return Oe&&(Oe.total=Oe.total||Object.values(Oe).reduce(((D,te)=>D+te),0)),{status:parseGMPStatus(ye),error:(xe=ye,xe.error?{message:xe.error.error.message,txHash:xe.error.error.transactionHash,chain:xe.error.chain}:xe.is_insufficient_fee?{message:"Insufficient fee",txHash:xe.call.transaction.hash,chain:xe.call.chain}:void 0),timeSpent:Oe,gasPaidInfo:ke,callTx:be,executed:_e,expressExecuted:Pe,approved:Ie,callback:Re};var xe};class TokenBridge{config;initialised;constructor(D){this.config=D,this.initialised=!1}async initialise(){this.initialised||(await async function validateChainConfiguration(D){const te="Please upgrade to the latest version of the Bridge SDK or provide valid configuration",he=await withBridgeError((async()=>D.rootProvider.getNetwork()),sz.ROOT_PROVIDER_ERROR);if(he.chainId.toString()!==D.bridgeInstance.rootChainID)throw new BridgeError(`Rootchain provider chainID ${he.chainId} does not match expected chainID ${D.bridgeInstance.rootChainID}. ${te}`,sz.UNSUPPORTED_ERROR);const ye=await withBridgeError((async()=>D.childProvider.getNetwork()),sz.CHILD_PROVIDER_ERROR);if(ye.chainId.toString()!==D.bridgeInstance.childChainID)throw new BridgeError(`Childchain provider chainID ${ye.chainId} does not match expected chainID ${D.bridgeInstance.childChainID}. ${te} `,sz.UNSUPPORTED_ERROR)}(this.config),this.initialised=!0)}async getFee(D){const[,,te]=await Promise.all([this.initialise(),async()=>{D.action!==FH.FINALISE_WITHDRAWAL&&await validateChainIds(D.sourceChainId,D.destinationChainId,this.config)},this.getFeePrivate(D)]);return te}async getFinaliseWithdrawFee(){return calculateGasFee$1(await this.config.rootProvider.getFeeData(),DH.FINALISE_WITHDRAWAL)}async getDepositOrWithdrawFee(D){let te;te=D.sourceChainId===this.config.bridgeInstance.rootChainID?await this.config.rootProvider.getFeeData():await this.config.childProvider.getFeeData();let he,ye,be=BigNumber.from(0),ve=BigNumber.from(0),we=BigNumber.from(0);if(D.action===FH.DEPOSIT)he={sourceChainId:D.sourceChainId,destinationChainId:D.destinationChainId,action:FH.DEPOSIT};else{if(D.action!==FH.WITHDRAW)throw new BridgeError("Invalid action",sz.INTERNAL_ERROR);he={sourceChainId:D.sourceChainId,destinationChainId:D.destinationChainId,action:FH.WITHDRAW}}if(!isValidDeposit(he,this.config.bridgeInstance)&&!isValidWithdraw(he,this.config.bridgeInstance))throw new BridgeError("Invalid direction",sz.INTERNAL_ERROR);return function isNativeTokenBridgeFeeRequest(D){return!("token"in D)||D.token.toUpperCase()===UH}(D)||(isValidDeposit(he,this.config.bridgeInstance)||"token"in D&&function isWithdrawWrappedIMX(D,te,he){return isValidWithdraw(te,he)&&isWrappedIMX(D,te.sourceChainId)}(D.token,he,this.config.bridgeInstance))&&(ve=calculateGasFee$1(te,DH.APPROVE_TOKEN)),D.action===FH.DEPOSIT?(be=calculateGasFee$1(te,DH.DEPOSIT_SOURCE),ye=DH.DEPOSIT_DESTINATION):(be=calculateGasFee$1(te,DH.WITHDRAW_SOURCE),ye=DH.WITHDRAW_DESTINATION),we=await this.getAxelarFee(D.sourceChainId,D.destinationChainId,ye,D.gasMultiplier),{sourceChainFee:be,approvalFee:ve,bridgeFee:we}}async getFeePrivate(D){!function validateGetFee(D,te){if(D.action===FH.FINALISE_WITHDRAWAL&&D.sourceChainId!==te.bridgeInstance.rootChainID)throw new BridgeError(`Finalised withdrawals must be on the root chain (${te.bridgeInstance.rootChainID})`,sz.INVALID_SOURCE_CHAIN_ID);if(!("destinationChainId"in D))throw new BridgeError("DEPOSIT or WITHDRAW used without destinationChainId",sz.INVALID_DESTINATION_CHAIN_ID);const he={sourceChainId:D.sourceChainId,destinationChainId:D.destinationChainId,action:D.action};if(!isValidDeposit(he,te.bridgeInstance)&&!isValidWithdraw(he,te.bridgeInstance))throw new BridgeError("This request is neither a valid deposit nor a valid withdrawal",sz.INVALID_SOURCE_OR_DESTINATION_CHAIN)}(D,this.config);let te=BigNumber.from(0),he=BigNumber.from(0),ye=BigNumber.from(0);if(D.action===FH.FINALISE_WITHDRAWAL)te=await this.getFinaliseWithdrawFee();else{const be=await this.getDepositOrWithdrawFee(D);te=be.sourceChainFee,he=be.approvalFee,ye=be.bridgeFee}const be=te.add(he).add(ye);return{sourceChainGas:te,approvalFee:he,bridgeFee:ye,imtblFee:BigNumber.from("0"),totalFees:be}}async getUnsignedApproveBridgeTx(D){const te=await this.getUnsignedBridgeBundledTx({senderAddress:D.senderAddress,recipientAddress:D.senderAddress,token:D.token,amount:D.amount,sourceChainId:D.sourceChainId,destinationChainId:D.destinationChainId,gasMultiplier:1.1});return{contractToApprove:te.contractToApprove,unsignedTx:te.unsignedApprovalTx}}async getBridgeMethods(D){let te;return te=isValidDeposit(D,this.config.bridgeInstance)?az:iz,te}async getBridgeContract(D){if(isValidDeposit(D,this.config.bridgeInstance)){const D=this.config.bridgeContracts.rootERC20BridgeFlowRate;return await createContract(D,cz,this.config.rootProvider)}const te=this.config.bridgeContracts.childERC20Bridge;return await createContract(te,uz,this.config.childProvider)}async getConfigAndBridgeTxCalldata(D,te,he,ye,be){return async function getBridgeTxCalldata(D,te,he,ye,be,ve){let we,_e;if(ye.toUpperCase()===UH)D===te?(we=be.native,_e=[he]):(we=be.nativeTo,_e=[te,he]);else{const ve=getAddress(ye);D===te?(we=be.token,_e=[ve,he]):(we=be.tokenTo,_e=[ve,te,he])}return await withBridgeError((async()=>ve.interface.encodeFunctionData(we,_e)),sz.INTERNAL_ERROR)}(D,te,he,ye,await this.getBridgeMethods(be),await this.getBridgeContract(be))}async getUnsignedBridgeTx(D){const te=await this.getUnsignedBridgeBundledTx({senderAddress:D.senderAddress,recipientAddress:D.senderAddress,token:D.token,amount:D.amount,sourceChainId:D.sourceChainId,destinationChainId:D.destinationChainId,gasMultiplier:D.gasMultiplier});return{feeData:te.feeData,unsignedTx:te.unsignedBridgeTx}}async getUnsignedBridgeBundledTx(D){const[,,,te]=await Promise.all([this.initialise(),validateBridgeReqArgs(D,this.config),checkReceiver(D.token,D.destinationChainId,D.recipientAddress,this.config),this.getUnsignedBridgeBundledTxPrivate(D)]);return te}async getUnsignedBridgeBundledTxPrivate(D){let te;if(te=function shouldBeDepositOrFinaliseWithdraw(D,te){return D===te.rootChainID}(D.sourceChainId,this.config.bridgeInstance)?{sourceChainId:D.sourceChainId,destinationChainId:D.destinationChainId,action:FH.DEPOSIT}:{sourceChainId:D.sourceChainId,destinationChainId:D.destinationChainId,action:FH.WITHDRAW},isValidDeposit(te,this.config.bridgeInstance))return this.getUnsignedBridgeDepositBundledTxPrivate(te,D.senderAddress,D.recipientAddress,D.token,D.amount,D.gasMultiplier);if(isValidWithdraw(te,this.config.bridgeInstance))return this.getUnsignedBridgeWithdrawBundledTxPrivate(te,D.senderAddress,D.recipientAddress,D.token,D.amount,D.gasMultiplier);throw new BridgeError("Invalid Bridge Bundled TX",sz.INVALID_TRANSACTION)}async getUnsignedBridgeDepositBundledTxPrivate(D,te,he,ye,be,ve){const[we,_e,Pe,Ie]=await Promise.all([this.getAllowance(D,ye,te),this.config.rootProvider.getFeeData(),this.getDynamicDepositGas(this.config.bridgeInstance.rootChainID,te,he,ye,be),this.getAxelarFee(this.config.bridgeInstance.rootChainID,this.config.bridgeInstance.childChainID,DH.DEPOSIT_DESTINATION,ve)]);let Re,ke,Oe=BigNumber.from(0),xe=BigNumber.from(0);const Be=Ie,Fe=BigNumber.from(0);if(ye.toUpperCase()!==UH&&we.lt(be)){Re=ye;const D=await createContract(ye,dz,this.config.rootProvider);ke={data:await withBridgeError((async()=>D.interface.encodeFunctionData("approve",[this.config.bridgeContracts.rootERC20BridgeFlowRate,be])),sz.INTERNAL_ERROR),to:ye,value:0,from:te,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)},xe=calculateGasFee$1(_e,Pe.approvalGas)}else Re=null,ke=null;const De=await this.getConfigAndBridgeTxCalldata(te,he,be,ye,D),Le=ye.toUpperCase()===UH?be.add(Be).toString():Be.toString(),Ue={data:De,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,value:Le,from:te,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)};Oe=calculateGasFee$1(_e,Pe.sourceChainGas);const qe=Oe.add(xe).add(Be).add(Fe);return{feeData:{sourceChainGas:Oe,approvalFee:xe,bridgeFee:Be,imtblFee:Fe,totalFees:qe},contractToApprove:Re,unsignedApprovalTx:ke,unsignedBridgeTx:Ue,delayWithdrawalLargeAmount:null,delayWithdrawalUnknownToken:null,withdrawalQueueActivated:null,largeTransferThresholds:null}}async getUnsignedBridgeWithdrawBundledTxPrivate(D,te,he,ye,be,ve){const[we,_e,Pe]=await Promise.all([this.getAllowance(D,ye,te),this.config.childProvider.getFeeData(),await this.getDynamicWithdrawGasRootChain(D.destinationChainId,te,he,ye,be)]),Ie=Pe.gas[0],Re=await this.getAxelarFee(this.config.bridgeInstance.childChainID,this.config.bridgeInstance.rootChainID,Ie,ve);let ke,Oe,xe=BigNumber.from(0),Be=BigNumber.from(0);const Fe=Re,De=BigNumber.from(0);if(isWrappedIMX(ye,this.config.bridgeInstance.childChainID)&&we.lt(be)){ke=ye;const D=await createContract(ye,dz,this.config.childProvider);Oe={data:await withBridgeError((async()=>D.interface.encodeFunctionData("approve",[this.config.bridgeContracts.childERC20Bridge,be])),sz.INTERNAL_ERROR),to:ye,value:0,from:te,chainId:parseInt(this.config.bridgeInstance.childChainID,10)},Be=calculateGasFee$1(_e,DH.APPROVE_TOKEN)}else ke=null,Oe=null;const Le=await this.getConfigAndBridgeTxCalldata(te,he,be,ye,D),Ue=ye.toUpperCase()===UH?be.add(Fe).toString():Fe.toString(),qe={data:Le,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,value:Ue,from:te,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)};xe=calculateGasFee$1(_e,DH.WITHDRAW_SOURCE);const je=xe.add(Be).add(Fe).add(De);return{feeData:{sourceChainGas:xe,approvalFee:Be,bridgeFee:Fe,imtblFee:De,totalFees:je},contractToApprove:ke,unsignedApprovalTx:Oe,unsignedBridgeTx:qe,delayWithdrawalLargeAmount:Pe.delayWithdrawalLargeAmount,delayWithdrawalUnknownToken:Pe.delayWithdrawalUnknownToken,withdrawalQueueActivated:Pe.withdrawalQueueActivated,largeTransferThresholds:Pe.largeTransferThresholds}}async getDynamicDepositGas(D,te,he,ye,be){const ve=[];if(ye.toUpperCase()!==UH){const D=await createContract(ye,dz,this.config.rootProvider),he=await withBridgeError((async()=>D.interface.encodeFunctionData("approve",[this.config.bridgeContracts.rootERC20BridgeFlowRate,be])),sz.INTERNAL_ERROR);ve.push({from:te,to:ye,data:he})}const we={action:FH.DEPOSIT,sourceChainId:D,destinationChainId:this.config.bridgeInstance.childChainID},_e=await this.getConfigAndBridgeTxCalldata(te,he,be,ye,we),Pe=ye.toUpperCase()!==UH?"0x1":hexValue(be.add("1").toHexString());ve.push({from:te,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,data:_e,value:Pe});const{gas:Ie}=await submitTenderlySimulations(D,ve),Re={};return 1===Ie.length?(Re.approvalGas=0,[Re.sourceChainGas]=Ie):[Re.approvalGas,Re.sourceChainGas]=Ie,Re}async getDynamicWithdrawGasRootChain(D,te,he,ye,be){const ve=await getWithdrawRootToken(ye,D,this.config.childProvider),we=function genAxelarWithdrawPayload(D,te,he,ye){return EH.encode(["bytes32","address","address","address","uint256"],["0x7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e982869",D,te,he,ye])}(ve,te,he,be.toString()),_e=function genUniqueAxelarCommandId(D){return keccak256(EH.encode(["bytes","uint256"],[D,(new Date).getTime()]))}(we),Pe=function getChildchain(D){return getAddresses(D,XH)}(D),Ie=getAddress(function getChildAdaptor(D){return getAddresses(D,KH)}(D)).toString(),Re=function getRootAdaptor(D){return getAddresses(D,JH)}(D),ke=keccak256(we),Oe=keccak256(EH.encode(["bytes32","bytes32","string","string","address","bytes32"],["0x07b0d4304f82012bd3b70b1d531c160e326067c90829e2a3d386722ad10b89c3",_e,Pe,Ie,Re,ke])),xe=keccak256(concat([Oe,hexlify(zeroPad(hexlify(4),32))])),Be=await createContract(Re,MH,this.config.rootProvider),Fe=await withBridgeError((async()=>Be.interface.encodeFunctionData("execute",[_e,Pe,Ie,we])),sz.INTERNAL_ERROR),De=function getAxelarGateway(D){return getAddresses(D,QH)}(D),Le=[{from:te,to:Re,data:Fe}],Ue=this.config.bridgeContracts.rootERC20BridgeFlowRate,qe=await createContract(Ue,cz,this.config.rootProvider),je=await withBridgeError((async()=>qe.interface.encodeFunctionData("largeTransferThresholds",[ve])),sz.INTERNAL_ERROR);Le.push({from:te,to:Ue,data:je});const Je={contractAddress:De,stateDiff:{storageSlot:xe,value:"0x0000000000000000000000000000000000000000000000000000000000000001"}};return await submitTenderlySimulations(D,Le,[Je])}async getAllowance(D,te,he){if(te.toUpperCase()===UH)return BigNumber.from(0);if(function isWithdrawNativeIMX(D,te,he){return isValidWithdraw(te,he)&&!isWrappedIMX(D,te.sourceChainId)}(te,D,this.config.bridgeInstance))return BigNumber.from(0);let ye,be;isValidDeposit(D,this.config.bridgeInstance)?(ye=this.config.rootProvider,be=this.config.bridgeContracts.rootERC20BridgeFlowRate):(ye=this.config.childProvider,be=this.config.bridgeContracts.childERC20Bridge);const ve=await createContract(te,dz,ye);return await withBridgeError((()=>ve.allowance(he,be)),sz.PROVIDER_ERROR)}async getAxelarFee(D,te,he,ye="auto"){const be=nz[D],ve=nz[te];if(!be)throw new BridgeError(`Source chainID ${D} can not be matched to an Axelar chain.`,sz.AXELAR_CHAIN_NOT_FOUND);if(!ve)throw new BridgeError(`Destination chainID ${te} can not be matched to an Axelar chain.`,sz.AXELAR_CHAIN_NOT_FOUND);const we=getAxelarEndpoint(D),_e={method:"estimateGasFee",sourceChain:be.id,destinationChain:ve.id,symbol:be.symbol,gasLimit:he,gasMultiplier:ye};let Pe;try{Pe=await Sj.post(we,_e)}catch(D){Pe=D.response}if(Pe.data.error)throw new BridgeError(`Estimating Axelar Gas failed with the reason: ${Pe.data.message}`,sz.AXELAR_GAS_ESTIMATE_FAILED);try{return BigNumber.from(`${Pe.data}`)}catch(D){throw new BridgeError(`Estimating Axelar Gas failed with the reason: ${D}`,sz.AXELAR_GAS_ESTIMATE_FAILED)}}async getTransactionStatus(D){const te={transactions:[]},he=await this.getAxelarStatus(D.transactions,D.sourceChainId),ye=await this.getUniqueReceivers(he,D.sourceChainId),be=[];for(const D of ye)be.push(this.getPendingWithdrawals({recipient:D}));let ve=[];try{ve=await Promise.all(be)}catch(D){throw new BridgeError(`Failed to fetch the pending withdrawals with: ${D}`,sz.FLOW_RATE_ERROR)}te.transactions=he;for(const D of te.transactions)D.status===LH.COMPLETE&&(()=>{for(const te of ve){const he=te.pending.findIndex((te=>te.amount.toString()===D.amount.toString()&&te.token===D.token&&te.withdrawer===D.sender&&te.recipient===D.recipient));if(-1!==he)return D.status=LH.FLOW_RATE_CONTROLLED,D.data={canWithdraw:te.pending[he].canWithdraw,timeoutStart:te.pending[he].timeoutStart,timeoutEnd:te.pending[he].timeoutEnd},void te.pending.splice(he,1)}})();return te}async getUniqueReceivers(D,te){const he=[],ye=[qH,GH,jH].includes(te);for(let te=0,be=D.length;te<be;te++)if(D[te].status===LH.COMPLETE&&ye&&D[te].recipient){-1===he.findIndex((he=>he===D[te].recipient))&&he.push(D[te].recipient)}return he}async getAxelarStatus(D,te){const he=[],ye=[],be=getAxelarEndpoint(te),ve=[lz.GAS_UNPAID,lz.GAS_PAID_NOT_ENOUGH_GAS],we=new AbiCoder;for(const te of D)ye.push(queryTransactionStatus(be,te.txHash));let _e;try{_e=await Promise.all(ye)}catch(D){throw new BridgeError(`Failed to fetch the Axelar Status with the reason: ${D}`,sz.AXELAR_GAS_ESTIMATE_FAILED)}for(let te=0,ye=_e.length;te<ye;te++){let ye;switch(_e[te].status){case fz.CANNOT_FETCH_STATUS:ye=LH.PENDING;break;case fz.SRC_GATEWAY_CALLED:case fz.DEST_GATEWAY_APPROVED:case fz.DEST_EXECUTING:case fz.SRC_GATEWAY_CONFIRMED:case fz.APPROVING:ye=LH.PROCESSING;break;case fz.NOT_EXECUTED:ye=LH.RETRY;break;case fz.NOT_EXECUTED_WITHOUT_GAS_PAID:case fz.INSUFFICIENT_FEE:ye=LH.NOT_ENOUGH_GAS;break;case fz.DEST_EXECUTED:ye=LH.COMPLETE;break;default:ye=LH.ERROR}_e[te].gasPaidInfo&&ve.includes(_e[te].gasPaidInfo.status)&&(ye=LH.NOT_ENOUGH_GAS);let be,Pe={txHash:D[te].txHash,status:ye,data:{gmpResponse:_e[te].status}};_e[te]?.callTx?.returnValues?.payload&&(be=we.decode(["bytes32","address","address","address","uint256"],_e[te].callTx.returnValues.payload),Pe={...Pe,token:be[1],sender:be[2],recipient:be[3],amount:be[4]}),he.push(Pe)}return he}async getFlowRateInfo(D){if(!D.tokens||0===D.tokens.length)throw new BridgeError(`invalid tokens array ${D.tokens}`,sz.INVALID_TOKEN);const te=this.config.bridgeContracts.rootERC20BridgeFlowRate,he=await createContract(te,cz,this.config.rootProvider),ye=[];ye.push(he.withdrawalQueueActivated()),ye.push(he.withdrawalDelay());for(let te of D.tokens)te.toUpperCase()===UH&&(te="0x0000000000000000000000000000000000000eee"),ye.push(he.flowRateBuckets(te)),ye.push(he.largeTransferThresholds(te));let be;try{be=await Promise.all(ye)}catch(D){throw new BridgeError("unable to query contract for flowrate info",sz.INTERNAL_ERROR)}const ve={},we=be[0],_e=be[1].toNumber();be.splice(0,2);for(let te=0,he=D.tokens.length;te<he;te++){const he=2*te;ve[D.tokens[te]]={capacity:be[he].capacity,depth:be[he].depth,refillTime:be[he].refillTime.toNumber(),refillRate:be[he].refillRate,largeTransferThreshold:be[he+1]}}return{withdrawalQueueActivated:we,withdrawalDelay:_e,tokens:ve}}async getPendingWithdrawals(D){if(!D.recipient)throw new BridgeError(`invalid recipient ${D.recipient}`,sz.INVALID_RECIPIENT);const te=this.config.bridgeContracts.rootERC20BridgeFlowRate,he=await createContract(te,cz,this.config.rootProvider),ye=await he.getPendingWithdrawalsLength(D.recipient),be={pending:[]};if(0===ye.toNumber())return be;const ve=[];for(let D=0;D<ye.toNumber();D++)ve.push(D);const we=await he.getPendingWithdrawals(D.recipient,ve),_e=Math.floor(Date.now()/1e3),Pe=await he.withdrawalDelay();for(let te=0,he=we.length;te<he;te++){const he=we[te].timestamp.add(Pe).toNumber();be.pending[te]=he>_e?{canWithdraw:!1}:{canWithdraw:!0},be.pending[te].recipient=D.recipient,be.pending[te].withdrawer=we[te].withdrawer,be.pending[te].token=we[te].token,be.pending[te].amount=we[te].amount,be.pending[te].timeoutStart=we[te].timestamp.toNumber(),be.pending[te].timeoutEnd=he}return be}async getFlowRateWithdrawTx(D){if(!D.recipient)throw new BridgeError(`invalid recipient ${D.recipient}`,sz.INVALID_RECIPIENT);if(D.index<0)throw new BridgeError(`invalid index ${D.index}`,sz.INVALID_FLOWRATE_INDEX);const te=this.config.bridgeContracts.rootERC20BridgeFlowRate,he=await createContract(te,cz,this.config.rootProvider),ye=await he.getPendingWithdrawals(D.recipient,[D.index]);if(ye[0].withdrawer===lH||ye[0].token===lH||ye[0].amount===BigNumber.from(0)||ye[0].timestamp===BigNumber.from(0))throw new BridgeError(`pending withdrawal not found for ${D.recipient} at index ${D.index}`,sz.FLOW_RATE_ERROR);const be=await he.withdrawalDelay(),ve=ye[0].timestamp.add(be).toNumber();if(ve>Math.floor(Date.now()/1e3))return{pendingWithdrawal:{canWithdraw:!1,withdrawer:ye[0].withdrawer,recipient:D.recipient,token:ye[0].token,amount:ye[0].amount,timeoutStart:ye[0].timestamp.toNumber(),timeoutEnd:ve},unsignedTx:null};const we=await withBridgeError((async()=>he.interface.encodeFunctionData("finaliseQueuedWithdrawal",[D.recipient,D.index])),sz.INTERNAL_ERROR);return{pendingWithdrawal:{canWithdraw:!0,withdrawer:ye[0].withdrawer,recipient:D.recipient,token:ye[0].token,amount:ye[0].amount,timeoutStart:ye[0].timestamp.toNumber(),timeoutEnd:ve},unsignedTx:{data:we,to:this.config.bridgeContracts.rootERC20BridgeFlowRate,value:0,chainId:parseInt(this.config.bridgeInstance.rootChainID,10)}}}async getTokenMapping(D){if(D.rootToken.toUpperCase()===UH||D.rootToken===this.config.bridgeContracts.rootChainWrappedETH){const te=this.config.bridgeContracts.childERC20Bridge,he=await createContract(te,uz,this.config.childProvider),ye=await he.childETHToken();return{rootToken:D.rootToken,childToken:ye}}const te=this.config.bridgeContracts.rootERC20BridgeFlowRate,he=await createContract(te,cz,this.config.rootProvider),ye=await he.rootTokenToChildToken(D.rootToken);return ye===lH?{rootToken:D.rootToken,childToken:null}:ye===D.rootToken?{rootToken:D.rootToken,childToken:UH}:{rootToken:D.rootToken,childToken:ye}}}
/**
   * tiny-lru
   *
   * @copyright 2023 Jason Mulligan <jason.mulligan@avoidwork.com>
   * @license BSD-3-Clause
   * @version 11.2.5
   */class LRU{constructor(D=0,te=0,he=!1){this.first=null,this.items=Object.create(null),this.last=null,this.max=D,this.resetTtl=he,this.size=0,this.ttl=te}clear(){return this.first=null,this.items=Object.create(null),this.last=null,this.size=0,this}delete(D){if(this.has(D)){const te=this.items[D];delete this.items[D],this.size--,null!==te.prev&&(te.prev.next=te.next),null!==te.next&&(te.next.prev=te.prev),this.first===te&&(this.first=te.next),this.last===te&&(this.last=te.prev)}return this}entries(D=this.keys()){return D.map((D=>[D,this.get(D)]))}evict(D=!1){if(D||this.size>0){const D=this.first;delete this.items[D.key],0==--this.size?(this.first=null,this.last=null):(this.first=D.next,this.first.prev=null)}return this}expiresAt(D){let te;return this.has(D)&&(te=this.items[D].expiry),te}get(D){let te;if(this.has(D)){const he=this.items[D];this.ttl>0&&he.expiry<=Date.now()?this.delete(D):(te=he.value,this.set(D,te,!0))}return te}has(D){return D in this.items}keys(){const D=[];let te=this.first;for(;null!==te;)D.push(te.key),te=te.next;return D}set(D,te,he=!1,ye=this.resetTtl){let be;if(he||this.has(D)){if(be=this.items[D],be.value=te,!1===he&&ye&&(be.expiry=this.ttl>0?Date.now()+this.ttl:this.ttl),this.last!==be){const D=this.last,te=be.next,he=be.prev;this.first===be&&(this.first=be.next),be.next=null,be.prev=this.last,D.next=be,null!==he&&(he.next=te),null!==te&&(te.prev=he)}}else this.max>0&&this.size===this.max&&this.evict(!0),be=this.items[D]={expiry:this.ttl>0?Date.now()+this.ttl:this.ttl,key:D,prev:this.last,next:null,value:te},1==++this.size?this.first=be:this.last.next=be;return this.last=be,this}values(D=this.keys()){return D.map((D=>this.get(D)))}}const pz={max:1e3},memorise=(D,te={})=>{const{cache:he,cacheKeyResolver:ye=defaultGenCacheKey,onHit:be,lruOptions:ve={}}=te,we={...pz,...ve},_e=he||function lru(D=1e3,te=0,he=!1){if(isNaN(D)||D<0)throw new TypeError("Invalid max value");if(isNaN(te)||te<0)throw new TypeError("Invalid ttl value");if("boolean"!=typeof he)throw new TypeError("Invalid resetTtl value");return new LRU(D,te,he)}(we.max,we.ttl);function returnFn(...te){const he=ye(...te),ve=_e.get(he);if(_e.has(he))return be&&be(he,ve,_e),ve;const we=D.apply(this,te);return _e.set(he,we),we}return returnFn._cache=_e,returnFn},defaultGenCacheKey=(...D)=>0===D.length?"no-args":D.map((D=>void 0===D?"undefined":null===D?"null":Array.isArray(D)?`[${defaultGenCacheKey(...D)}]`:"object"==typeof D?`{${defaultGenCacheKey(...sortedObjectEntries(D))}}`:JSON.stringify(D))).join(","),sortedObjectEntries=D=>Object.entries(D).sort(((D,te)=>D[0]<te[0]?-1:1));var hz={};Object.defineProperty(hz,"__esModule",{value:!0}),hz.clearGlobalNamespace=mz=hz.getGlobalisedValue=void 0;const yz={},getGlobalObject=()=>"undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:yz,createGlobalisedKey=D=>`globalise__singleton__${D}`,getGlobalScopedObject=D=>{const te=getGlobalObject(),he=createGlobalisedKey(D);return te[he]||(te[he]={}),te[he]};var mz=hz.getGlobalisedValue=(D,te,he)=>{((D,te)=>{if("string"!=typeof D)throw"Invalid namespace key";if("string"!=typeof te)throw"Invalid item key"})(D,te);const ye=((D,te)=>getGlobalScopedObject(D)[te]||void 0)(D,te);return void 0!==ye?ye:(((D,te,he)=>{getGlobalScopedObject(D)[te]=he})(D,te,he),he)};hz.clearGlobalNamespace=D=>{const te=getGlobalObject(),he=createGlobalisedKey(D);void 0!==te[he]&&delete te[he]};const isNode=()=>"undefined"==typeof window,isBrowser=()=>!isNode(),hasLocalstorage=()=>isBrowser()&&window.localStorage,genKey=D=>`__IMX-${D}`;function getItem(D){if(hasLocalstorage())return(D=>{if(null!==D)try{return JSON.parse(D)}catch(te){return D}})(window.localStorage.getItem(genKey(D)))}const setItem=(D,te)=>!!hasLocalstorage()&&(window.localStorage.setItem(genKey(D),(D=>"string"==typeof D?D:JSON.stringify(D))(te)),!0);let bz=0;const getCorrectedTime=()=>{const D=(new Date).getTime()+bz;return new Date(D).toISOString()};var gz;!function(D){D.RUNTIME_ID="rid",D.PASSPORT_CLIENT_ID="passportClientId",D.ENVIRONMENT="env",D.PUBLISHABLE_API_KEY="pak",D.IDENTITY="uid",D.DOMAIN="domain",D.SDK_VERSION="sdkVersion"}(gz||(gz={}));async function post(D,te){const he=Sj.create({baseURL:"https://api.immutable.com"}),ye=JSON.stringify(te),be={payload:Buffer.from(ye).toString("base64")};return(await he.post(D,be)).data}var vz;let wz,_z;!function(D){D.EVENTS="metrics-events",D.RUNTIME="metrics-runtime"}(vz||(vz={}));wz=getItem(vz.EVENTS)||[],_z=getItem(vz.RUNTIME)||{};const storeDetail=(D,te)=>{_z={..._z,[D]:te},setItem(vz.RUNTIME,_z)},getDetail$1=D=>{if(void 0!==_z[D])return _z[D]},flattenProperties=D=>{const te=[];return Object.entries(D).forEach((([D,he])=>{"string"!=typeof D&&"string"!=typeof he&&"number"!=typeof he&&"boolean"!=typeof he||te.push([D,he.toString()])})),te},Tz="1.77.7",runtimeHost=()=>{if(isNode())return"";let D;try{window.self!==window.top&&(D=isNode()?"":window.location.ancestorOrigins&&window.location.ancestorOrigins.length>0?new URL(window.location.ancestorOrigins[0]).hostname:document.referrer?new URL(window.document.referrer).hostname:"")}catch(D){}return D||(D=window.location.hostname),D};let Az=!1;const initialise=async()=>{Az=!0;try{const D=flattenProperties((()=>{if(storeDetail(gz.SDK_VERSION,Tz),isNode())return{browser:"nodejs",sdkVersion:Tz};const D=runtimeHost();return D&&storeDetail(gz.DOMAIN,D),{sdkVersion:Tz,browser:window.navigator.userAgent,domain:D,tz:Intl.DateTimeFormat().resolvedOptions().timeZone,screen:`${window.screen.width}x${window.screen.height}`}})()),te=getDetail$1(gz.RUNTIME_ID),he={version:1,data:{runtimeDetails:D,runtimeId:te,uId:getDetail$1(gz.IDENTITY)}},ye=await post("/v1/sdk/initialise",he),{runtimeId:be,sTime:ve}=ye;storeDetail(gz.RUNTIME_ID,be),(D=>{const te=1e3*parseInt(D,10),he=new Date(te),ye=new Date;bz=he.getTime()-ye.getTime()})(ve)}catch(D){Az=!1}};function errorBoundary(D,te){return(...he)=>{try{const ye=D(...he);return ye instanceof Promise?ye.catch((()=>te)):ye}catch(D){return te}}}const Ez=errorBoundary((function isTestEnvironmentFn(){return isBrowser(),!1}),!1),Pz="imtbl__metrics",getGlobalisedValue=(D,te)=>mz(Pz,D,te);errorBoundary(((D,te)=>{const he=memorise(te,{lruOptions:{ttl:5e3,max:1e3}});return mz(Pz,D,he)})("track",((D,te,he)=>{(D=>{wz.push(D),setItem(vz.EVENTS,wz)})({event:`${D}.${te}`,time:getCorrectedTime(),...he&&{properties:flattenProperties(he)}})})));const Sz=errorBoundary((async()=>{if(!1===Az)return void await initialise();const D=wz;if(0===D.length)return;const te=D.length,he={version:1,data:{events:D,details:_z}};var ye;await post("/v1/sdk/metrics",he)instanceof Error||(ye=te,wz=wz.slice(ye),setItem(vz.EVENTS,wz))})),flushPoll=async()=>{await Sz(),setTimeout(flushPoll,5e3)};let Cz=!1;const startFlushing=()=>{Cz||(Cz=!0,flushPoll())};Ez()||errorBoundary(getGlobalisedValue("startFlushing",startFlushing))();errorBoundary(getGlobalisedValue("setEnvironment",(D=>{storeDetail(gz.ENVIRONMENT,D)})));errorBoundary(getGlobalisedValue("setPassportClientId",(D=>{storeDetail(gz.PASSPORT_CLIENT_ID,D)})));var Iz,Rz;errorBoundary(getGlobalisedValue("setPublishableApiKey",(D=>{storeDetail(gz.PUBLISHABLE_API_KEY,D)}))),errorBoundary(getGlobalisedValue("getDetail",getDetail$1)),function(D){D.PRODUCTION="production",D.SANDBOX="sandbox"}(Iz||(Iz={})),function(D){D.API_KEY="x-immutable-api-key",D.PUBLISHABLE_KEY="x-immutable-publishable-key",D.RATE_LIMITING_KEY="x-api-key"}(Rz||(Rz={}));const kz=[ZH,YH],Oz=[ez],xz={[Iz.SANDBOX]:kz,[Iz.PRODUCTION]:Oz},Nz=(new Map).set(ZH,{rootERC20BridgeFlowRate:"0x0",childERC20Bridge:"0x0",rootChainIMX:"0x0",rootChainWrappedETH:"0x0",childChainWrappedETH:"0x0",childChainWrappedIMX:"0x0"}).set(YH,{rootERC20BridgeFlowRate:"0x0D3C59c779Fd552C27b23F723E80246c840100F5",childERC20Bridge:"0x0D3C59c779Fd552C27b23F723E80246c840100F5",rootChainIMX:"0xe2629e08f4125d14e446660028bD98ee60EE69F2",rootChainWrappedETH:"0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9",childChainWrappedETH:"0xe9E96d1aad82562b7588F03f49aD34186f996478",childChainWrappedIMX:"0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439"}).set(ez,{rootERC20BridgeFlowRate:"0xBa5E35E26Ae59c7aea6F029B68c6460De2d13eB6",childERC20Bridge:"0xBa5E35E26Ae59c7aea6F029B68c6460De2d13eB6",rootChainIMX:"0xF57e7e7C23978C3cAEC3C3548E3D615c346e79fF",rootChainWrappedETH:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",childChainWrappedETH:"0x52a6c53869ce09a731cd772f245b97a4401d3348",childChainWrappedIMX:"0x3a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d"});class BridgeConfiguration{baseConfig;bridgeInstance;bridgeContracts;rootProvider;childProvider;constructor({bridgeInstance:D,rootProvider:te,childProvider:he,baseConfig:ye,overrides:be}){if(this.baseConfig=ye,this.bridgeInstance=D,this.rootProvider=te,this.childProvider=he,be)return void(this.bridgeContracts=be.bridgeContracts);if(!xz[ye.environment].includes(D))throw new Error(`Bridge instance with rootchain ${D.rootChainID} and childchain ${D.childChainID} is not supported in environment ${ye.environment}`);if(!Nz.has(D))throw new Error(`Bridge instance with rootchain ${D.rootChainID} and childchain ${D.childChainID} is not supported in environment ${ye.environment}`);const ve=Nz.get(D);if(!ve)throw new Error(`Bridge instance with rootchain ${D.rootChainID} and childchain ${D.childChainID} is not supported in environment ${ye.environment}`);this.bridgeContracts=ve}}var Mz={exports:{}};!function(D,te){D.exports=function(){var D=Math.imul,te=Math.clz32,he=Math.abs,ye=Math.max,be=Math.floor;class o extends Array{constructor(D,te){if(super(D),this.sign=te,D>o.__kMaxLength)throw new RangeError("Maximum BigInt size exceeded")}static BigInt(D){var te=Number.isFinite;if("number"==typeof D){if(0===D)return o.__zero();if(o.__isOneDigitInt(D))return 0>D?o.__oneDigit(-D,!0):o.__oneDigit(D,!1);if(!te(D)||be(D)!==D)throw new RangeError("The number "+D+" cannot be converted to BigInt because it is not an integer");return o.__fromDouble(D)}if("string"==typeof D){const te=o.__fromString(D);if(null===te)throw new SyntaxError("Cannot convert "+D+" to a BigInt");return te}if("boolean"==typeof D)return!0===D?o.__oneDigit(1,!1):o.__zero();if("object"==typeof D){if(D.constructor===o)return D;const te=o.__toPrimitive(D);return o.BigInt(te)}throw new TypeError("Cannot convert "+D+" to a BigInt")}toDebugString(){const D=["BigInt["];for(const te of this)D.push((te?(te>>>0).toString(16):te)+", ");return D.push("]"),D.join("")}toString(D=10){if(2>D||36<D)throw new RangeError("toString() radix argument must be between 2 and 36");return 0===this.length?"0":0==(D&D-1)?o.__toStringBasePowerOfTwo(this,D):o.__toStringGeneric(this,D,!1)}static toNumber(D){const te=D.length;if(0===te)return 0;if(1===te){const te=D.__unsignedDigit(0);return D.sign?-te:te}const he=D.__digit(te-1),ye=o.__clz30(he),be=30*te-ye;if(1024<be)return D.sign?-1/0:1/0;let ve=be-1,we=he,_e=te-1;const Pe=ye+3;let Ie=32===Pe?0:we<<Pe;Ie>>>=12;const Re=Pe-12;let ke=12<=Pe?0:we<<20+Pe,Oe=20+Pe;for(0<Re&&0<_e&&(_e--,we=D.__digit(_e),Ie|=we>>>30-Re,ke=we<<Re+2,Oe=Re+2);0<Oe&&0<_e;)_e--,we=D.__digit(_e),ke|=30<=Oe?we<<Oe-30:we>>>30-Oe,Oe-=30;const xe=o.__decideRounding(D,Oe,_e,we);if((1===xe||0===xe&&1==(1&ke))&&(ke=ke+1>>>0,0===ke&&(Ie++,0!=Ie>>>20&&(Ie=0,ve++,1023<ve))))return D.sign?-1/0:1/0;const Be=D.sign?-2147483648:0;return ve=ve+1023<<20,o.__kBitConversionInts[1]=Be|ve|Ie,o.__kBitConversionInts[0]=ke,o.__kBitConversionDouble[0]}static unaryMinus(D){if(0===D.length)return D;const te=D.__copy();return te.sign=!D.sign,te}static bitwiseNot(D){return D.sign?o.__absoluteSubOne(D).__trim():o.__absoluteAddOne(D,!0)}static exponentiate(D,te){if(te.sign)throw new RangeError("Exponent must be positive");if(0===te.length)return o.__oneDigit(1,!1);if(0===D.length)return D;if(1===D.length&&1===D.__digit(0))return D.sign&&0==(1&te.__digit(0))?o.unaryMinus(D):D;if(1<te.length)throw new RangeError("BigInt too big");let he=te.__unsignedDigit(0);if(1===he)return D;if(he>=o.__kMaxLengthBits)throw new RangeError("BigInt too big");if(1===D.length&&2===D.__digit(0)){const te=1+(0|he/30),ye=D.sign&&0!=(1&he),be=new o(te,ye);be.__initializeDigits();const ve=1<<he%30;return be.__setDigit(te-1,ve),be}let ye=null,be=D;for(0!=(1&he)&&(ye=D),he>>=1;0!==he;he>>=1)be=o.multiply(be,be),0!=(1&he)&&(ye=null===ye?be:o.multiply(ye,be));return ye}static multiply(D,te){if(0===D.length)return D;if(0===te.length)return te;let he=D.length+te.length;30<=D.__clzmsd()+te.__clzmsd()&&he--;const ye=new o(he,D.sign!==te.sign);ye.__initializeDigits();for(let he=0;he<D.length;he++)o.__multiplyAccumulate(te,D.__digit(he),ye,he);return ye.__trim()}static divide(D,te){if(0===te.length)throw new RangeError("Division by zero");if(0>o.__absoluteCompare(D,te))return o.__zero();const he=D.sign!==te.sign,ye=te.__unsignedDigit(0);let be;if(1===te.length&&32767>=ye){if(1===ye)return he===D.sign?D:o.unaryMinus(D);be=o.__absoluteDivSmall(D,ye,null)}else be=o.__absoluteDivLarge(D,te,!0,!1);return be.sign=he,be.__trim()}static remainder(D,te){if(0===te.length)throw new RangeError("Division by zero");if(0>o.__absoluteCompare(D,te))return D;const he=te.__unsignedDigit(0);if(1===te.length&&32767>=he){if(1===he)return o.__zero();const te=o.__absoluteModSmall(D,he);return 0===te?o.__zero():o.__oneDigit(te,D.sign)}const ye=o.__absoluteDivLarge(D,te,!1,!0);return ye.sign=D.sign,ye.__trim()}static add(D,te){const he=D.sign;return he===te.sign?o.__absoluteAdd(D,te,he):0<=o.__absoluteCompare(D,te)?o.__absoluteSub(D,te,he):o.__absoluteSub(te,D,!he)}static subtract(D,te){const he=D.sign;return he===te.sign?0<=o.__absoluteCompare(D,te)?o.__absoluteSub(D,te,he):o.__absoluteSub(te,D,!he):o.__absoluteAdd(D,te,he)}static leftShift(D,te){return 0===te.length||0===D.length?D:te.sign?o.__rightShiftByAbsolute(D,te):o.__leftShiftByAbsolute(D,te)}static signedRightShift(D,te){return 0===te.length||0===D.length?D:te.sign?o.__leftShiftByAbsolute(D,te):o.__rightShiftByAbsolute(D,te)}static unsignedRightShift(){throw new TypeError("BigInts have no unsigned right shift; use >> instead")}static lessThan(D,te){return 0>o.__compareToBigInt(D,te)}static lessThanOrEqual(D,te){return 0>=o.__compareToBigInt(D,te)}static greaterThan(D,te){return 0<o.__compareToBigInt(D,te)}static greaterThanOrEqual(D,te){return 0<=o.__compareToBigInt(D,te)}static equal(D,te){if(D.sign!==te.sign)return!1;if(D.length!==te.length)return!1;for(let he=0;he<D.length;he++)if(D.__digit(he)!==te.__digit(he))return!1;return!0}static notEqual(D,te){return!o.equal(D,te)}static bitwiseAnd(D,te){if(!D.sign&&!te.sign)return o.__absoluteAnd(D,te).__trim();if(D.sign&&te.sign){const he=ye(D.length,te.length)+1;let be=o.__absoluteSubOne(D,he);const ve=o.__absoluteSubOne(te);return be=o.__absoluteOr(be,ve,be),o.__absoluteAddOne(be,!0,be).__trim()}return D.sign&&([D,te]=[te,D]),o.__absoluteAndNot(D,o.__absoluteSubOne(te)).__trim()}static bitwiseXor(D,te){if(!D.sign&&!te.sign)return o.__absoluteXor(D,te).__trim();if(D.sign&&te.sign){const he=ye(D.length,te.length),be=o.__absoluteSubOne(D,he),ve=o.__absoluteSubOne(te);return o.__absoluteXor(be,ve,be).__trim()}const he=ye(D.length,te.length)+1;D.sign&&([D,te]=[te,D]);let be=o.__absoluteSubOne(te,he);return be=o.__absoluteXor(be,D,be),o.__absoluteAddOne(be,!0,be).__trim()}static bitwiseOr(D,te){const he=ye(D.length,te.length);if(!D.sign&&!te.sign)return o.__absoluteOr(D,te).__trim();if(D.sign&&te.sign){let ye=o.__absoluteSubOne(D,he);const be=o.__absoluteSubOne(te);return ye=o.__absoluteAnd(ye,be,ye),o.__absoluteAddOne(ye,!0,ye).__trim()}D.sign&&([D,te]=[te,D]);let be=o.__absoluteSubOne(te,he);return be=o.__absoluteAndNot(be,D,be),o.__absoluteAddOne(be,!0,be).__trim()}static asIntN(D,te){if(0===te.length)return te;if(0>(D=be(D)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===D)return o.__zero();if(D>=o.__kMaxLengthBits)return te;const he=0|(D+29)/30;if(te.length<he)return te;const ye=te.__unsignedDigit(he-1),ve=1<<(D-1)%30;if(te.length===he&&ye<ve)return te;if((ye&ve)!==ve)return o.__truncateToNBits(D,te);if(!te.sign)return o.__truncateAndSubFromPowerOfTwo(D,te,!0);if(0==(ye&ve-1)){for(let ye=he-2;0<=ye;ye--)if(0!==te.__digit(ye))return o.__truncateAndSubFromPowerOfTwo(D,te,!1);return te.length===he&&ye===ve?te:o.__truncateToNBits(D,te)}return o.__truncateAndSubFromPowerOfTwo(D,te,!1)}static asUintN(D,te){if(0===te.length)return te;if(0>(D=be(D)))throw new RangeError("Invalid value: not (convertible to) a safe integer");if(0===D)return o.__zero();if(te.sign){if(D>o.__kMaxLengthBits)throw new RangeError("BigInt too big");return o.__truncateAndSubFromPowerOfTwo(D,te,!1)}if(D>=o.__kMaxLengthBits)return te;const he=0|(D+29)/30;if(te.length<he)return te;const ye=D%30;if(te.length==he){if(0===ye)return te;if(0==te.__digit(he-1)>>>ye)return te}return o.__truncateToNBits(D,te)}static ADD(D,te){if(D=o.__toPrimitive(D),te=o.__toPrimitive(te),"string"==typeof D)return"string"!=typeof te&&(te=te.toString()),D+te;if("string"==typeof te)return D.toString()+te;if(D=o.__toNumeric(D),te=o.__toNumeric(te),o.__isBigInt(D)&&o.__isBigInt(te))return o.add(D,te);if("number"==typeof D&&"number"==typeof te)return D+te;throw new TypeError("Cannot mix BigInt and other types, use explicit conversions")}static LT(D,te){return o.__compare(D,te,0)}static LE(D,te){return o.__compare(D,te,1)}static GT(D,te){return o.__compare(D,te,2)}static GE(D,te){return o.__compare(D,te,3)}static EQ(D,te){for(;;){if(o.__isBigInt(D))return o.__isBigInt(te)?o.equal(D,te):o.EQ(te,D);if("number"==typeof D){if(o.__isBigInt(te))return o.__equalToNumber(te,D);if("object"!=typeof te)return D==te;te=o.__toPrimitive(te)}else if("string"==typeof D){if(o.__isBigInt(te))return null!==(D=o.__fromString(D))&&o.equal(D,te);if("object"!=typeof te)return D==te;te=o.__toPrimitive(te)}else if("boolean"==typeof D){if(o.__isBigInt(te))return o.__equalToNumber(te,+D);if("object"!=typeof te)return D==te;te=o.__toPrimitive(te)}else if("symbol"==typeof D){if(o.__isBigInt(te))return!1;if("object"!=typeof te)return D==te;te=o.__toPrimitive(te)}else{if("object"!=typeof D)return D==te;if("object"==typeof te&&te.constructor!==o)return D==te;D=o.__toPrimitive(D)}}}static NE(D,te){return!o.EQ(D,te)}static __zero(){return new o(0,!1)}static __oneDigit(D,te){const he=new o(1,te);return he.__setDigit(0,D),he}__copy(){const D=new o(this.length,this.sign);for(let te=0;te<this.length;te++)D[te]=this[te];return D}__trim(){let D=this.length,te=this[D-1];for(;0===te;)D--,te=this[D-1],this.pop();return 0===D&&(this.sign=!1),this}__initializeDigits(){for(let D=0;D<this.length;D++)this[D]=0}static __decideRounding(D,te,he,ye){if(0<te)return-1;let be;if(0>te)be=-te-1;else{if(0===he)return-1;he--,ye=D.__digit(he),be=29}let ve=1<<be;if(0==(ye&ve))return-1;if(ve-=1,0!=(ye&ve))return 1;for(;0<he;)if(he--,0!==D.__digit(he))return 1;return 0}static __fromDouble(D){o.__kBitConversionDouble[0]=D;const te=(2047&o.__kBitConversionInts[1]>>>20)-1023,he=1+(0|te/30),ye=new o(he,0>D);let be=1048575&o.__kBitConversionInts[1]|1048576,ve=o.__kBitConversionInts[0];const we=20,_e=te%30;let Pe,Ie=0;if(20>_e){const D=we-_e;Ie=D+32,Pe=be>>>D,be=be<<32-D|ve>>>D,ve<<=32-D}else if(20===_e)Ie=32,Pe=be,be=ve,ve=0;else{const D=_e-we;Ie=32-D,Pe=be<<D|ve>>>32-D,be=ve<<D,ve=0}ye.__setDigit(he-1,Pe);for(let D=he-2;0<=D;D--)0<Ie?(Ie-=30,Pe=be>>>2,be=be<<30|ve>>>2,ve<<=30):Pe=0,ye.__setDigit(D,Pe);return ye.__trim()}static __isWhitespace(D){return!!(13>=D&&9<=D)||(159>=D?32==D:131071>=D?160==D||5760==D:196607>=D?10>=(D&=131071)||40==D||41==D||47==D||95==D||4096==D:65279==D)}static __fromString(D,te=0){let he=0;const ye=D.length;let be=0;if(be===ye)return o.__zero();let ve=D.charCodeAt(be);for(;o.__isWhitespace(ve);){if(++be===ye)return o.__zero();ve=D.charCodeAt(be)}if(43===ve){if(++be===ye)return null;ve=D.charCodeAt(be),he=1}else if(45===ve){if(++be===ye)return null;ve=D.charCodeAt(be),he=-1}if(0===te){if(te=10,48===ve){if(++be===ye)return o.__zero();if(ve=D.charCodeAt(be),88===ve||120===ve){if(te=16,++be===ye)return null;ve=D.charCodeAt(be)}else if(79===ve||111===ve){if(te=8,++be===ye)return null;ve=D.charCodeAt(be)}else if(66===ve||98===ve){if(te=2,++be===ye)return null;ve=D.charCodeAt(be)}}}else if(16===te&&48===ve){if(++be===ye)return o.__zero();if(ve=D.charCodeAt(be),88===ve||120===ve){if(++be===ye)return null;ve=D.charCodeAt(be)}}if(0!=he&&10!==te)return null;for(;48===ve;){if(++be===ye)return o.__zero();ve=D.charCodeAt(be)}const we=ye-be;let _e=o.__kMaxBitsPerChar[te],Pe=o.__kBitsPerCharTableMultiplier-1;if(we>1073741824/_e)return null;const Ie=_e*we+Pe>>>o.__kBitsPerCharTableShift,Re=new o(0|(Ie+29)/30,!1),ke=10>te?te:10,Oe=10<te?te-10:0;if(0==(te&te-1)){_e>>=o.__kBitsPerCharTableShift;const te=[],he=[];let we=!1;do{let Pe=0,Ie=0;for(;;){let te;if(ve-48>>>0<ke)te=ve-48;else{if(!((32|ve)-97>>>0<Oe)){we=!0;break}te=(32|ve)-87}if(Ie+=_e,Pe=Pe<<_e|te,++be===ye){we=!0;break}if(ve=D.charCodeAt(be),30<Ie+_e)break}te.push(Pe),he.push(Ie)}while(!we);o.__fillFromParts(Re,te,he)}else{Re.__initializeDigits();let he=!1,we=0;do{let Ie=0,xe=1;for(;;){let _e;if(ve-48>>>0<ke)_e=ve-48;else{if(!((32|ve)-97>>>0<Oe)){he=!0;break}_e=(32|ve)-87}const Pe=xe*te;if(1073741823<Pe)break;if(xe=Pe,Ie=Ie*te+_e,we++,++be===ye){he=!0;break}ve=D.charCodeAt(be)}Pe=30*o.__kBitsPerCharTableMultiplier-1;const Be=0|(_e*we+Pe>>>o.__kBitsPerCharTableShift)/30;Re.__inplaceMultiplyAdd(xe,Ie,Be)}while(!he)}if(be!==ye){if(!o.__isWhitespace(ve))return null;for(be++;be<ye;be++)if(ve=D.charCodeAt(be),!o.__isWhitespace(ve))return null}return Re.sign=-1==he,Re.__trim()}static __fillFromParts(D,te,he){let ye=0,be=0,ve=0;for(let we=te.length-1;0<=we;we--){const _e=te[we],Pe=he[we];be|=_e<<ve,ve+=Pe,30===ve?(D.__setDigit(ye++,be),ve=0,be=0):30<ve&&(D.__setDigit(ye++,1073741823&be),ve-=30,be=_e>>>Pe-ve)}if(0!==be){if(ye>=D.length)throw new Error("implementation bug");D.__setDigit(ye++,be)}for(;ye<D.length;ye++)D.__setDigit(ye,0)}static __toStringBasePowerOfTwo(D,te){const he=D.length;let ye=te-1;ye=(85&ye>>>1)+(85&ye),ye=(51&ye>>>2)+(51&ye),ye=(15&ye>>>4)+(15&ye);const be=ye,ve=te-1,we=D.__digit(he-1);let _e=0|(30*he-o.__clz30(we)+be-1)/be;if(D.sign&&_e++,268435456<_e)throw new Error("string too long");const Pe=Array(_e);let Ie=_e-1,Re=0,ke=0;for(let te=0;te<he-1;te++){const he=D.__digit(te),ye=(Re|he<<ke)&ve;Pe[Ie--]=o.__kConversionChars[ye];const we=be-ke;for(Re=he>>>we,ke=30-we;ke>=be;)Pe[Ie--]=o.__kConversionChars[Re&ve],Re>>>=be,ke-=be}const Oe=(Re|we<<ke)&ve;for(Pe[Ie--]=o.__kConversionChars[Oe],Re=we>>>be-ke;0!==Re;)Pe[Ie--]=o.__kConversionChars[Re&ve],Re>>>=be;if(D.sign&&(Pe[Ie--]="-"),-1!=Ie)throw new Error("implementation bug");return Pe.join("")}static __toStringGeneric(D,te,he){const ye=D.length;if(0===ye)return"";if(1===ye){let ye=D.__unsignedDigit(0).toString(te);return!1===he&&D.sign&&(ye="-"+ye),ye}const be=30*ye-o.__clz30(D.__digit(ye-1)),ve=o.__kMaxBitsPerChar[te]-1;let we=be*o.__kBitsPerCharTableMultiplier;we+=ve-1,we=0|we/ve;const _e=we+1>>1,Pe=o.exponentiate(o.__oneDigit(te,!1),o.__oneDigit(_e,!1));let Ie,Re;const ke=Pe.__unsignedDigit(0);if(1===Pe.length&&32767>=ke){Ie=new o(D.length,!1),Ie.__initializeDigits();let he=0;for(let te=2*D.length-1;0<=te;te--){const ye=he<<15|D.__halfDigit(te);Ie.__setHalfDigit(te,0|ye/ke),he=0|ye%ke}Re=he.toString(te)}else{const he=o.__absoluteDivLarge(D,Pe,!0,!0);Ie=he.quotient;const ye=he.remainder.__trim();Re=o.__toStringGeneric(ye,te,!0)}Ie.__trim();let Oe=o.__toStringGeneric(Ie,te,!0);for(;Re.length<_e;)Re="0"+Re;return!1===he&&D.sign&&(Oe="-"+Oe),Oe+Re}static __unequalSign(D){return D?-1:1}static __absoluteGreater(D){return D?-1:1}static __absoluteLess(D){return D?1:-1}static __compareToBigInt(D,te){const he=D.sign;if(he!==te.sign)return o.__unequalSign(he);const ye=o.__absoluteCompare(D,te);return 0<ye?o.__absoluteGreater(he):0>ye?o.__absoluteLess(he):0}static __compareToNumber(D,te){if(o.__isOneDigitInt(te)){const ye=D.sign,be=0>te;if(ye!==be)return o.__unequalSign(ye);if(0===D.length){if(be)throw new Error("implementation bug");return 0===te?0:-1}if(1<D.length)return o.__absoluteGreater(ye);const ve=he(te),we=D.__unsignedDigit(0);return we>ve?o.__absoluteGreater(ye):we<ve?o.__absoluteLess(ye):0}return o.__compareToDouble(D,te)}static __compareToDouble(D,te){if(te!=te)return te;if(te===1/0)return-1;if(te===-1/0)return 1;const he=D.sign;if(he!==0>te)return o.__unequalSign(he);if(0===te)throw new Error("implementation bug: should be handled elsewhere");if(0===D.length)return-1;o.__kBitConversionDouble[0]=te;const ye=2047&o.__kBitConversionInts[1]>>>20;if(2047==ye)throw new Error("implementation bug: handled elsewhere");const be=ye-1023;if(0>be)return o.__absoluteGreater(he);const ve=D.length;let we=D.__digit(ve-1);const _e=o.__clz30(we),Pe=30*ve-_e,Ie=be+1;if(Pe<Ie)return o.__absoluteLess(he);if(Pe>Ie)return o.__absoluteGreater(he);let Re=1048576|1048575&o.__kBitConversionInts[1],ke=o.__kBitConversionInts[0];const Oe=20,xe=29-_e;if(xe!==(0|(Pe-1)%30))throw new Error("implementation bug");let Be,Fe=0;if(20>xe){const D=Oe-xe;Fe=D+32,Be=Re>>>D,Re=Re<<32-D|ke>>>D,ke<<=32-D}else if(20===xe)Fe=32,Be=Re,Re=ke,ke=0;else{const D=xe-Oe;Fe=32-D,Be=Re<<D|ke>>>32-D,Re=ke<<D,ke=0}if(we>>>=0,Be>>>=0,we>Be)return o.__absoluteGreater(he);if(we<Be)return o.__absoluteLess(he);for(let te=ve-2;0<=te;te--){0<Fe?(Fe-=30,Be=Re>>>2,Re=Re<<30|ke>>>2,ke<<=30):Be=0;const ye=D.__unsignedDigit(te);if(ye>Be)return o.__absoluteGreater(he);if(ye<Be)return o.__absoluteLess(he)}if(0!==Re||0!==ke){if(0===Fe)throw new Error("implementation bug");return o.__absoluteLess(he)}return 0}static __equalToNumber(D,te){return o.__isOneDigitInt(te)?0===te?0===D.length:1===D.length&&D.sign===0>te&&D.__unsignedDigit(0)===he(te):0===o.__compareToDouble(D,te)}static __comparisonResultToBool(D,te){return 0===te?0>D:1===te?0>=D:2===te?0<D:3===te?0<=D:void 0}static __compare(D,te,he){if(D=o.__toPrimitive(D),te=o.__toPrimitive(te),"string"==typeof D&&"string"==typeof te)switch(he){case 0:return D<te;case 1:return D<=te;case 2:return D>te;case 3:return D>=te}if(o.__isBigInt(D)&&"string"==typeof te)return null!==(te=o.__fromString(te))&&o.__comparisonResultToBool(o.__compareToBigInt(D,te),he);if("string"==typeof D&&o.__isBigInt(te))return null!==(D=o.__fromString(D))&&o.__comparisonResultToBool(o.__compareToBigInt(D,te),he);if(D=o.__toNumeric(D),te=o.__toNumeric(te),o.__isBigInt(D)){if(o.__isBigInt(te))return o.__comparisonResultToBool(o.__compareToBigInt(D,te),he);if("number"!=typeof te)throw new Error("implementation bug");return o.__comparisonResultToBool(o.__compareToNumber(D,te),he)}if("number"!=typeof D)throw new Error("implementation bug");if(o.__isBigInt(te))return o.__comparisonResultToBool(o.__compareToNumber(te,D),2^he);if("number"!=typeof te)throw new Error("implementation bug");return 0===he?D<te:1===he?D<=te:2===he?D>te:3===he?D>=te:void 0}__clzmsd(){return o.__clz30(this.__digit(this.length-1))}static __absoluteAdd(D,te,he){if(D.length<te.length)return o.__absoluteAdd(te,D,he);if(0===D.length)return D;if(0===te.length)return D.sign===he?D:o.unaryMinus(D);let ye=D.length;(0===D.__clzmsd()||te.length===D.length&&0===te.__clzmsd())&&ye++;const be=new o(ye,he);let ve=0,we=0;for(;we<te.length;we++){const he=D.__digit(we)+te.__digit(we)+ve;ve=he>>>30,be.__setDigit(we,1073741823&he)}for(;we<D.length;we++){const te=D.__digit(we)+ve;ve=te>>>30,be.__setDigit(we,1073741823&te)}return we<be.length&&be.__setDigit(we,ve),be.__trim()}static __absoluteSub(D,te,he){if(0===D.length)return D;if(0===te.length)return D.sign===he?D:o.unaryMinus(D);const ye=new o(D.length,he);let be=0,ve=0;for(;ve<te.length;ve++){const he=D.__digit(ve)-te.__digit(ve)-be;be=1&he>>>30,ye.__setDigit(ve,1073741823&he)}for(;ve<D.length;ve++){const te=D.__digit(ve)-be;be=1&te>>>30,ye.__setDigit(ve,1073741823&te)}return ye.__trim()}static __absoluteAddOne(D,te,he=null){const ye=D.length;null===he?he=new o(ye,te):he.sign=te;let be=1;for(let te=0;te<ye;te++){const ye=D.__digit(te)+be;be=ye>>>30,he.__setDigit(te,1073741823&ye)}return 0!=be&&he.__setDigitGrow(ye,1),he}static __absoluteSubOne(D,te){const he=D.length,ye=new o(te=te||he,!1);let be=1;for(let te=0;te<he;te++){const he=D.__digit(te)-be;be=1&he>>>30,ye.__setDigit(te,1073741823&he)}if(0!=be)throw new Error("implementation bug");for(let D=he;D<te;D++)ye.__setDigit(D,0);return ye}static __absoluteAnd(D,te,he=null){let ye=D.length,be=te.length,ve=be;if(ye<be){ve=ye;const he=D,we=ye;D=te,ye=be,te=he,be=we}let we=ve;null===he?he=new o(we,!1):we=he.length;let _e=0;for(;_e<ve;_e++)he.__setDigit(_e,D.__digit(_e)&te.__digit(_e));for(;_e<we;_e++)he.__setDigit(_e,0);return he}static __absoluteAndNot(D,te,he=null){const ye=D.length,be=te.length;let ve=be;ye<be&&(ve=ye);let we=ye;null===he?he=new o(we,!1):we=he.length;let _e=0;for(;_e<ve;_e++)he.__setDigit(_e,D.__digit(_e)&~te.__digit(_e));for(;_e<ye;_e++)he.__setDigit(_e,D.__digit(_e));for(;_e<we;_e++)he.__setDigit(_e,0);return he}static __absoluteOr(D,te,he=null){let ye=D.length,be=te.length,ve=be;if(ye<be){ve=ye;const he=D,we=ye;D=te,ye=be,te=he,be=we}let we=ye;null===he?he=new o(we,!1):we=he.length;let _e=0;for(;_e<ve;_e++)he.__setDigit(_e,D.__digit(_e)|te.__digit(_e));for(;_e<ye;_e++)he.__setDigit(_e,D.__digit(_e));for(;_e<we;_e++)he.__setDigit(_e,0);return he}static __absoluteXor(D,te,he=null){let ye=D.length,be=te.length,ve=be;if(ye<be){ve=ye;const he=D,we=ye;D=te,ye=be,te=he,be=we}let we=ye;null===he?he=new o(we,!1):we=he.length;let _e=0;for(;_e<ve;_e++)he.__setDigit(_e,D.__digit(_e)^te.__digit(_e));for(;_e<ye;_e++)he.__setDigit(_e,D.__digit(_e));for(;_e<we;_e++)he.__setDigit(_e,0);return he}static __absoluteCompare(D,te){const he=D.length-te.length;if(0!=he)return he;let ye=D.length-1;for(;0<=ye&&D.__digit(ye)===te.__digit(ye);)ye--;return 0>ye?0:D.__unsignedDigit(ye)>te.__unsignedDigit(ye)?1:-1}static __multiplyAccumulate(D,te,he,ye){if(0===te)return;const be=32767&te,ve=te>>>15;let we=0,_e=0;for(let te,Pe=0;Pe<D.length;Pe++,ye++){te=he.__digit(ye);const Ie=D.__digit(Pe),Re=32767&Ie,ke=Ie>>>15,Oe=o.__imul(Re,be),xe=o.__imul(Re,ve),Be=o.__imul(ke,be);te+=_e+Oe+we,we=te>>>30,te&=1073741823,te+=((32767&xe)<<15)+((32767&Be)<<15),we+=te>>>30,_e=o.__imul(ke,ve)+(xe>>>15)+(Be>>>15),he.__setDigit(ye,1073741823&te)}for(;0!=we||0!==_e;ye++){let D=he.__digit(ye);D+=we+_e,_e=0,we=D>>>30,he.__setDigit(ye,1073741823&D)}}static __internalMultiplyAdd(D,te,he,ye,be){let ve=he,we=0;for(let he=0;he<ye;he++){const ye=D.__digit(he),_e=o.__imul(32767&ye,te),Pe=o.__imul(ye>>>15,te),Ie=_e+((32767&Pe)<<15)+we+ve;ve=Ie>>>30,we=Pe>>>15,be.__setDigit(he,1073741823&Ie)}if(be.length>ye)for(be.__setDigit(ye++,ve+we);ye<be.length;)be.__setDigit(ye++,0);else if(0!==ve+we)throw new Error("implementation bug")}__inplaceMultiplyAdd(D,te,he){he>this.length&&(he=this.length);const ye=32767&D,be=D>>>15;let ve=0,we=te;for(let D=0;D<he;D++){const te=this.__digit(D),he=32767&te,_e=te>>>15,Pe=o.__imul(he,ye),Ie=o.__imul(he,be),Re=o.__imul(_e,ye);let ke=we+Pe+ve;ve=ke>>>30,ke&=1073741823,ke+=((32767&Ie)<<15)+((32767&Re)<<15),ve+=ke>>>30,we=o.__imul(_e,be)+(Ie>>>15)+(Re>>>15),this.__setDigit(D,1073741823&ke)}if(0!=ve||0!==we)throw new Error("implementation bug")}static __absoluteDivSmall(D,te,he=null){null===he&&(he=new o(D.length,!1));let ye=0;for(let be,ve=2*D.length-1;0<=ve;ve-=2){be=(ye<<15|D.__halfDigit(ve))>>>0;const we=0|be/te;ye=0|be%te,be=(ye<<15|D.__halfDigit(ve-1))>>>0;const _e=0|be/te;ye=0|be%te,he.__setDigit(ve>>>1,we<<15|_e)}return he}static __absoluteModSmall(D,te){let he=0;for(let ye=2*D.length-1;0<=ye;ye--)he=0|((he<<15|D.__halfDigit(ye))>>>0)%te;return he}static __absoluteDivLarge(D,te,he,ye){const be=te.__halfDigitLength(),ve=te.length,we=D.__halfDigitLength()-be;let _e=null;he&&(_e=new o(we+2>>>1,!1),_e.__initializeDigits());const Pe=new o(be+2>>>1,!1);Pe.__initializeDigits();const Ie=o.__clz15(te.__halfDigit(be-1));0<Ie&&(te=o.__specialLeftShift(te,Ie,0));const Re=o.__specialLeftShift(D,Ie,1),ke=te.__halfDigit(be-1);let Oe=0;for(let D,ye=we;0<=ye;ye--){D=32767;const we=Re.__halfDigit(ye+be);if(we!==ke){const he=(we<<15|Re.__halfDigit(ye+be-1))>>>0;D=0|he/ke;let ve=0|he%ke;const _e=te.__halfDigit(be-2),Pe=Re.__halfDigit(ye+be-2);for(;o.__imul(D,_e)>>>0>(ve<<16|Pe)>>>0&&(D--,ve+=ke,!(32767<ve)););}o.__internalMultiplyAdd(te,D,0,ve,Pe);let Ie=Re.__inplaceSub(Pe,ye,be+1);0!==Ie&&(Ie=Re.__inplaceAdd(te,ye,be),Re.__setHalfDigit(ye+be,32767&Re.__halfDigit(ye+be)+Ie),D--),he&&(1&ye?Oe=D<<15:_e.__setDigit(ye>>>1,Oe|D))}if(ye)return Re.__inplaceRightShift(Ie),he?{quotient:_e,remainder:Re}:Re;if(he)return _e;throw new Error("unreachable")}static __clz15(D){return o.__clz30(D)-15}__inplaceAdd(D,te,he){let ye=0;for(let be=0;be<he;be++){const he=this.__halfDigit(te+be)+D.__halfDigit(be)+ye;ye=he>>>15,this.__setHalfDigit(te+be,32767&he)}return ye}__inplaceSub(D,te,he){let ye=0;if(1&te){te>>=1;let be=this.__digit(te),ve=32767&be,we=0;for(;we<he-1>>>1;we++){const he=D.__digit(we),_e=(be>>>15)-(32767&he)-ye;ye=1&_e>>>15,this.__setDigit(te+we,(32767&_e)<<15|32767&ve),be=this.__digit(te+we+1),ve=(32767&be)-(he>>>15)-ye,ye=1&ve>>>15}const _e=D.__digit(we),Pe=(be>>>15)-(32767&_e)-ye;if(ye=1&Pe>>>15,this.__setDigit(te+we,(32767&Pe)<<15|32767&ve),te+we+1>=this.length)throw new RangeError("out of bounds");0==(1&he)&&(be=this.__digit(te+we+1),ve=(32767&be)-(_e>>>15)-ye,ye=1&ve>>>15,this.__setDigit(te+D.length,1073709056&be|32767&ve))}else{te>>=1;let be=0;for(;be<D.length-1;be++){const he=this.__digit(te+be),ve=D.__digit(be),we=(32767&he)-(32767&ve)-ye;ye=1&we>>>15;const _e=(he>>>15)-(ve>>>15)-ye;ye=1&_e>>>15,this.__setDigit(te+be,(32767&_e)<<15|32767&we)}const ve=this.__digit(te+be),we=D.__digit(be),_e=(32767&ve)-(32767&we)-ye;ye=1&_e>>>15;let Pe=0;0==(1&he)&&(Pe=(ve>>>15)-(we>>>15)-ye,ye=1&Pe>>>15),this.__setDigit(te+be,(32767&Pe)<<15|32767&_e)}return ye}__inplaceRightShift(D){if(0===D)return;let te=this.__digit(0)>>>D;const he=this.length-1;for(let ye=0;ye<he;ye++){const he=this.__digit(ye+1);this.__setDigit(ye,1073741823&he<<30-D|te),te=he>>>D}this.__setDigit(he,te)}static __specialLeftShift(D,te,he){const ye=D.length,be=new o(ye+he,!1);if(0===te){for(let te=0;te<ye;te++)be.__setDigit(te,D.__digit(te));return 0<he&&be.__setDigit(ye,0),be}let ve=0;for(let he=0;he<ye;he++){const ye=D.__digit(he);be.__setDigit(he,1073741823&ye<<te|ve),ve=ye>>>30-te}return 0<he&&be.__setDigit(ye,ve),be}static __leftShiftByAbsolute(D,te){const he=o.__toShiftAmount(te);if(0>he)throw new RangeError("BigInt too big");const ye=0|he/30,be=he%30,ve=D.length,we=0!==be&&0!=D.__digit(ve-1)>>>30-be,_e=ve+ye+(we?1:0),Pe=new o(_e,D.sign);if(0===be){let te=0;for(;te<ye;te++)Pe.__setDigit(te,0);for(;te<_e;te++)Pe.__setDigit(te,D.__digit(te-ye))}else{let te=0;for(let D=0;D<ye;D++)Pe.__setDigit(D,0);for(let he=0;he<ve;he++){const ve=D.__digit(he);Pe.__setDigit(he+ye,1073741823&ve<<be|te),te=ve>>>30-be}if(we)Pe.__setDigit(ve+ye,te);else if(0!==te)throw new Error("implementation bug")}return Pe.__trim()}static __rightShiftByAbsolute(D,te){const he=D.length,ye=D.sign,be=o.__toShiftAmount(te);if(0>be)return o.__rightShiftByMaximum(ye);const ve=0|be/30,we=be%30;let _e=he-ve;if(0>=_e)return o.__rightShiftByMaximum(ye);let Pe=!1;if(ye)if(0!=(D.__digit(ve)&(1<<we)-1))Pe=!0;else for(let te=0;te<ve;te++)if(0!==D.__digit(te)){Pe=!0;break}Pe&&0===we&&0==~D.__digit(he-1)&&_e++;let Ie=new o(_e,ye);if(0===we){Ie.__setDigit(_e-1,0);for(let te=ve;te<he;te++)Ie.__setDigit(te-ve,D.__digit(te))}else{let te=D.__digit(ve)>>>we;const ye=he-ve-1;for(let he=0;he<ye;he++){const ye=D.__digit(he+ve+1);Ie.__setDigit(he,1073741823&ye<<30-we|te),te=ye>>>we}Ie.__setDigit(ye,te)}return Pe&&(Ie=o.__absoluteAddOne(Ie,!0,Ie)),Ie.__trim()}static __rightShiftByMaximum(D){return D?o.__oneDigit(1,!0):o.__zero()}static __toShiftAmount(D){if(1<D.length)return-1;const te=D.__unsignedDigit(0);return te>o.__kMaxLengthBits?-1:te}static __toPrimitive(D,te="default"){if("object"!=typeof D)return D;if(D.constructor===o)return D;if("undefined"!=typeof Symbol&&"symbol"==typeof Symbol.toPrimitive){const he=D[Symbol.toPrimitive];if(he){const D=he(te);if("object"!=typeof D)return D;throw new TypeError("Cannot convert object to primitive value")}}const he=D.valueOf;if(he){const te=he.call(D);if("object"!=typeof te)return te}const ye=D.toString;if(ye){const te=ye.call(D);if("object"!=typeof te)return te}throw new TypeError("Cannot convert object to primitive value")}static __toNumeric(D){return o.__isBigInt(D)?D:+D}static __isBigInt(D){return"object"==typeof D&&null!==D&&D.constructor===o}static __truncateToNBits(D,te){const he=0|(D+29)/30,ye=new o(he,te.sign),be=he-1;for(let D=0;D<be;D++)ye.__setDigit(D,te.__digit(D));let ve=te.__digit(be);if(0!=D%30){const te=32-D%30;ve=ve<<te>>>te}return ye.__setDigit(be,ve),ye.__trim()}static __truncateAndSubFromPowerOfTwo(D,te,he){var ye=Math.min;const be=0|(D+29)/30,ve=new o(be,he);let we=0;const _e=be-1;let Pe=0;for(const D=ye(_e,te.length);we<D;we++){const D=0-te.__digit(we)-Pe;Pe=1&D>>>30,ve.__setDigit(we,1073741823&D)}for(;we<_e;we++)ve.__setDigit(we,0|1073741823&-Pe);let Ie=_e<te.length?te.__digit(_e):0;const Re=D%30;let ke;if(0==Re)ke=0-Ie-Pe,ke&=1073741823;else{const D=32-Re;Ie=Ie<<D>>>D;const te=1<<32-D;ke=te-Ie-Pe,ke&=te-1}return ve.__setDigit(_e,ke),ve.__trim()}__digit(D){return this[D]}__unsignedDigit(D){return this[D]>>>0}__setDigit(D,te){this[D]=0|te}__setDigitGrow(D,te){this[D]=0|te}__halfDigitLength(){const D=this.length;return 32767>=this.__unsignedDigit(D-1)?2*D-1:2*D}__halfDigit(D){return 32767&this[D>>>1]>>>15*(1&D)}__setHalfDigit(D,te){const he=D>>>1,ye=this.__digit(he),be=1&D?32767&ye|te<<15:1073709056&ye|32767&te;this.__setDigit(he,be)}static __digitPow(D,te){let he=1;for(;0<te;)1&te&&(he*=D),te>>>=1,D*=D;return he}static __isOneDigitInt(D){return(1073741823&D)===D}}return o.__kMaxLength=33554432,o.__kMaxLengthBits=o.__kMaxLength<<5,o.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],o.__kBitsPerCharTableShift=5,o.__kBitsPerCharTableMultiplier=1<<o.__kBitsPerCharTableShift,o.__kConversionChars=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"],o.__kBitConversionBuffer=new ArrayBuffer(8),o.__kBitConversionDouble=new Float64Array(o.__kBitConversionBuffer),o.__kBitConversionInts=new Int32Array(o.__kBitConversionBuffer),o.__clz30=te?function(D){return te(D)-2}:function(D){var te=Math.LN2,he=Math.log;return 0===D?30:0|29-(0|he(D>>>0)/te)},o.__imul=D||function(D,te){return 0|D*te},o}()}(Mz);var Bz=Mz.exports,Fz=getDefaultExportFromCjs$1(Bz),Dz="Invariant failed";function invariant(D,te){throw new Error(Dz)}var Lz={exports:{}};
/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */!function(D){!function(te){var he,ye=1e9,be={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},ve=!0,we="[DecimalError] ",_e=we+"Invalid argument: ",Pe=we+"Exponent out of range: ",Ie=Math.floor,Re=Math.pow,ke=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Oe=1e7,xe=7,Be=9007199254740991,Fe=Ie(Be/xe),De={};function add(D,te){var he,ye,be,we,_e,Pe,Ie,Re,ke=D.constructor,Be=ke.precision;if(!D.s||!te.s)return te.s||(te=new ke(D)),ve?round(te,Be):te;if(Ie=D.d,Re=te.d,_e=D.e,be=te.e,Ie=Ie.slice(),we=_e-be){for(we<0?(ye=Ie,we=-we,Pe=Re.length):(ye=Re,be=_e,Pe=Ie.length),we>(Pe=(_e=Math.ceil(Be/xe))>Pe?_e+1:Pe+1)&&(we=Pe,ye.length=1),ye.reverse();we--;)ye.push(0);ye.reverse()}for((Pe=Ie.length)-(we=Re.length)<0&&(we=Pe,ye=Re,Re=Ie,Ie=ye),he=0;we;)he=(Ie[--we]=Ie[we]+Re[we]+he)/Oe|0,Ie[we]%=Oe;for(he&&(Ie.unshift(he),++be),Pe=Ie.length;0==Ie[--Pe];)Ie.pop();return te.d=Ie,te.e=be,ve?round(te,Be):te}function checkInt32(D,te,he){if(D!==~~D||D<te||D>he)throw Error(_e+D)}function digitsToString(D){var te,he,ye,be=D.length-1,ve="",we=D[0];if(be>0){for(ve+=we,te=1;te<be;te++)ye=D[te]+"",(he=xe-ye.length)&&(ve+=getZeroString(he)),ve+=ye;we=D[te],(he=xe-(ye=we+"").length)&&(ve+=getZeroString(he))}else if(0===we)return"0";for(;we%10==0;)we/=10;return ve+we}De.absoluteValue=De.abs=function(){var D=new this.constructor(this);return D.s&&(D.s=1),D},De.comparedTo=De.cmp=function(D){var te,he,ye,be,ve=this;if(D=new ve.constructor(D),ve.s!==D.s)return ve.s||-D.s;if(ve.e!==D.e)return ve.e>D.e^ve.s<0?1:-1;for(te=0,he=(ye=ve.d.length)<(be=D.d.length)?ye:be;te<he;++te)if(ve.d[te]!==D.d[te])return ve.d[te]>D.d[te]^ve.s<0?1:-1;return ye===be?0:ye>be^ve.s<0?1:-1},De.decimalPlaces=De.dp=function(){var D=this,te=D.d.length-1,he=(te-D.e)*xe;if(te=D.d[te])for(;te%10==0;te/=10)he--;return he<0?0:he},De.dividedBy=De.div=function(D){return Le(this,new this.constructor(D))},De.dividedToIntegerBy=De.idiv=function(D){var te=this.constructor;return round(Le(this,new te(D),0,1),te.precision)},De.equals=De.eq=function(D){return!this.cmp(D)},De.exponent=function(){return getBase10Exponent(this)},De.greaterThan=De.gt=function(D){return this.cmp(D)>0},De.greaterThanOrEqualTo=De.gte=function(D){return this.cmp(D)>=0},De.isInteger=De.isint=function(){return this.e>this.d.length-2},De.isNegative=De.isneg=function(){return this.s<0},De.isPositive=De.ispos=function(){return this.s>0},De.isZero=function(){return 0===this.s},De.lessThan=De.lt=function(D){return this.cmp(D)<0},De.lessThanOrEqualTo=De.lte=function(D){return this.cmp(D)<1},De.logarithm=De.log=function(D){var te,ye=this,be=ye.constructor,_e=be.precision,Pe=_e+5;if(void 0===D)D=new be(10);else if((D=new be(D)).s<1||D.eq(he))throw Error(we+"NaN");if(ye.s<1)throw Error(we+(ye.s?"NaN":"-Infinity"));return ye.eq(he)?new be(0):(ve=!1,te=Le(ln(ye,Pe),ln(D,Pe),Pe),ve=!0,round(te,_e))},De.minus=De.sub=function(D){var te=this;return D=new te.constructor(D),te.s==D.s?subtract(te,D):add(te,(D.s=-D.s,D))},De.modulo=De.mod=function(D){var te,he=this,ye=he.constructor,be=ye.precision;if(!(D=new ye(D)).s)throw Error(we+"NaN");return he.s?(ve=!1,te=Le(he,D,0,1).times(D),ve=!0,he.minus(te)):round(new ye(he),be)},De.naturalExponential=De.exp=function(){return exp(this)},De.naturalLogarithm=De.ln=function(){return ln(this)},De.negated=De.neg=function(){var D=new this.constructor(this);return D.s=-D.s||0,D},De.plus=De.add=function(D){var te=this;return D=new te.constructor(D),te.s==D.s?add(te,D):subtract(te,(D.s=-D.s,D))},De.precision=De.sd=function(D){var te,he,ye,be=this;if(void 0!==D&&D!==!!D&&1!==D&&0!==D)throw Error(_e+D);if(te=getBase10Exponent(be)+1,he=(ye=be.d.length-1)*xe+1,ye=be.d[ye]){for(;ye%10==0;ye/=10)he--;for(ye=be.d[0];ye>=10;ye/=10)he++}return D&&te>he?te:he},De.squareRoot=De.sqrt=function(){var D,te,he,ye,be,_e,Pe,Re=this,ke=Re.constructor;if(Re.s<1){if(!Re.s)return new ke(0);throw Error(we+"NaN")}for(D=getBase10Exponent(Re),ve=!1,0==(be=Math.sqrt(+Re))||be==1/0?(((te=digitsToString(Re.d)).length+D)%2==0&&(te+="0"),be=Math.sqrt(te),D=Ie((D+1)/2)-(D<0||D%2),ye=new ke(te=be==1/0?"5e"+D:(te=be.toExponential()).slice(0,te.indexOf("e")+1)+D)):ye=new ke(be.toString()),be=Pe=(he=ke.precision)+3;;)if(ye=(_e=ye).plus(Le(Re,_e,Pe+2)).times(.5),digitsToString(_e.d).slice(0,Pe)===(te=digitsToString(ye.d)).slice(0,Pe)){if(te=te.slice(Pe-3,Pe+1),be==Pe&&"4999"==te){if(round(_e,he+1,0),_e.times(_e).eq(Re)){ye=_e;break}}else if("9999"!=te)break;Pe+=4}return ve=!0,round(ye,he)},De.times=De.mul=function(D){var te,he,ye,be,we,_e,Pe,Ie,Re,ke=this,xe=ke.constructor,Be=ke.d,Fe=(D=new xe(D)).d;if(!ke.s||!D.s)return new xe(0);for(D.s*=ke.s,he=ke.e+D.e,(Ie=Be.length)<(Re=Fe.length)&&(we=Be,Be=Fe,Fe=we,_e=Ie,Ie=Re,Re=_e),we=[],ye=_e=Ie+Re;ye--;)we.push(0);for(ye=Re;--ye>=0;){for(te=0,be=Ie+ye;be>ye;)Pe=we[be]+Fe[ye]*Be[be-ye-1]+te,we[be--]=Pe%Oe|0,te=Pe/Oe|0;we[be]=(we[be]+te)%Oe|0}for(;!we[--_e];)we.pop();return te?++he:we.shift(),D.d=we,D.e=he,ve?round(D,xe.precision):D},De.toDecimalPlaces=De.todp=function(D,te){var he=this,be=he.constructor;return he=new be(he),void 0===D?he:(checkInt32(D,0,ye),void 0===te?te=be.rounding:checkInt32(te,0,8),round(he,D+getBase10Exponent(he)+1,te))},De.toExponential=function(D,te){var he,be=this,ve=be.constructor;return void 0===D?he=toString(be,!0):(checkInt32(D,0,ye),void 0===te?te=ve.rounding:checkInt32(te,0,8),he=toString(be=round(new ve(be),D+1,te),!0,D+1)),he},De.toFixed=function(D,te){var he,be,ve=this,we=ve.constructor;return void 0===D?toString(ve):(checkInt32(D,0,ye),void 0===te?te=we.rounding:checkInt32(te,0,8),he=toString((be=round(new we(ve),D+getBase10Exponent(ve)+1,te)).abs(),!1,D+getBase10Exponent(be)+1),ve.isneg()&&!ve.isZero()?"-"+he:he)},De.toInteger=De.toint=function(){var D=this,te=D.constructor;return round(new te(D),getBase10Exponent(D)+1,te.rounding)},De.toNumber=function(){return+this},De.toPower=De.pow=function(D){var te,ye,be,_e,Pe,Re,ke=this,Oe=ke.constructor,Fe=+(D=new Oe(D));if(!D.s)return new Oe(he);if(!(ke=new Oe(ke)).s){if(D.s<1)throw Error(we+"Infinity");return ke}if(ke.eq(he))return ke;if(be=Oe.precision,D.eq(he))return round(ke,be);if(Re=(te=D.e)>=(ye=D.d.length-1),Pe=ke.s,Re){if((ye=Fe<0?-Fe:Fe)<=Be){for(_e=new Oe(he),te=Math.ceil(be/xe+4),ve=!1;ye%2&&truncate((_e=_e.times(ke)).d,te),0!==(ye=Ie(ye/2));)truncate((ke=ke.times(ke)).d,te);return ve=!0,D.s<0?new Oe(he).div(_e):round(_e,be)}}else if(Pe<0)throw Error(we+"NaN");return Pe=Pe<0&&1&D.d[Math.max(te,ye)]?-1:1,ke.s=1,ve=!1,_e=D.times(ln(ke,be+12)),ve=!0,(_e=exp(_e)).s=Pe,_e},De.toPrecision=function(D,te){var he,be,ve=this,we=ve.constructor;return void 0===D?be=toString(ve,(he=getBase10Exponent(ve))<=we.toExpNeg||he>=we.toExpPos):(checkInt32(D,1,ye),void 0===te?te=we.rounding:checkInt32(te,0,8),be=toString(ve=round(new we(ve),D,te),D<=(he=getBase10Exponent(ve))||he<=we.toExpNeg,D)),be},De.toSignificantDigits=De.tosd=function(D,te){var he=this.constructor;return void 0===D?(D=he.precision,te=he.rounding):(checkInt32(D,1,ye),void 0===te?te=he.rounding:checkInt32(te,0,8)),round(new he(this),D,te)},De.toString=De.valueOf=De.val=De.toJSON=function(){var D=this,te=getBase10Exponent(D),he=D.constructor;return toString(D,te<=he.toExpNeg||te>=he.toExpPos)};var Le=function(){function multiplyInteger(D,te){var he,ye=0,be=D.length;for(D=D.slice();be--;)he=D[be]*te+ye,D[be]=he%Oe|0,ye=he/Oe|0;return ye&&D.unshift(ye),D}function compare(D,te,he,ye){var be,ve;if(he!=ye)ve=he>ye?1:-1;else for(be=ve=0;be<he;be++)if(D[be]!=te[be]){ve=D[be]>te[be]?1:-1;break}return ve}function subtract(D,te,he){for(var ye=0;he--;)D[he]-=ye,ye=D[he]<te[he]?1:0,D[he]=ye*Oe+D[he]-te[he];for(;!D[0]&&D.length>1;)D.shift()}return function(D,te,he,ye){var be,ve,_e,Pe,Ie,Re,ke,Be,Fe,De,Le,Ue,qe,je,Je,et,tt,rt,nt=D.constructor,at=D.s==te.s?1:-1,ut=D.d,ht=te.d;if(!D.s)return new nt(D);if(!te.s)throw Error(we+"Division by zero");for(ve=D.e-te.e,tt=ht.length,Je=ut.length,Be=(ke=new nt(at)).d=[],_e=0;ht[_e]==(ut[_e]||0);)++_e;if(ht[_e]>(ut[_e]||0)&&--ve,(Ue=null==he?he=nt.precision:ye?he+(getBase10Exponent(D)-getBase10Exponent(te))+1:he)<0)return new nt(0);if(Ue=Ue/xe+2|0,_e=0,1==tt)for(Pe=0,ht=ht[0],Ue++;(_e<Je||Pe)&&Ue--;_e++)qe=Pe*Oe+(ut[_e]||0),Be[_e]=qe/ht|0,Pe=qe%ht|0;else{for((Pe=Oe/(ht[0]+1)|0)>1&&(ht=multiplyInteger(ht,Pe),ut=multiplyInteger(ut,Pe),tt=ht.length,Je=ut.length),je=tt,De=(Fe=ut.slice(0,tt)).length;De<tt;)Fe[De++]=0;(rt=ht.slice()).unshift(0),et=ht[0],ht[1]>=Oe/2&&++et;do{Pe=0,(be=compare(ht,Fe,tt,De))<0?(Le=Fe[0],tt!=De&&(Le=Le*Oe+(Fe[1]||0)),(Pe=Le/et|0)>1?(Pe>=Oe&&(Pe=Oe-1),1==(be=compare(Ie=multiplyInteger(ht,Pe),Fe,Re=Ie.length,De=Fe.length))&&(Pe--,subtract(Ie,tt<Re?rt:ht,Re))):(0==Pe&&(be=Pe=1),Ie=ht.slice()),(Re=Ie.length)<De&&Ie.unshift(0),subtract(Fe,Ie,De),-1==be&&(be=compare(ht,Fe,tt,De=Fe.length))<1&&(Pe++,subtract(Fe,tt<De?rt:ht,De)),De=Fe.length):0===be&&(Pe++,Fe=[0]),Be[_e++]=Pe,be&&Fe[0]?Fe[De++]=ut[je]||0:(Fe=[ut[je]],De=1)}while((je++<Je||void 0!==Fe[0])&&Ue--)}return Be[0]||Be.shift(),ke.e=ve,round(ke,ye?he+getBase10Exponent(ke)+1:he)}}();function exp(D,te){var ye,be,we,_e,Ie,ke=0,Oe=0,xe=D.constructor,Be=xe.precision;if(getBase10Exponent(D)>16)throw Error(Pe+getBase10Exponent(D));if(!D.s)return new xe(he);for(null==te?(ve=!1,Ie=Be):Ie=te,_e=new xe(.03125);D.abs().gte(.1);)D=D.times(_e),Oe+=5;for(Ie+=Math.log(Re(2,Oe))/Math.LN10*2+5|0,ye=be=we=new xe(he),xe.precision=Ie;;){if(be=round(be.times(D),Ie),ye=ye.times(++ke),digitsToString((_e=we.plus(Le(be,ye,Ie))).d).slice(0,Ie)===digitsToString(we.d).slice(0,Ie)){for(;Oe--;)we=round(we.times(we),Ie);return xe.precision=Be,null==te?(ve=!0,round(we,Be)):we}we=_e}}function getBase10Exponent(D){for(var te=D.e*xe,he=D.d[0];he>=10;he/=10)te++;return te}function getLn10(D,te,he){if(te>D.LN10.sd())throw ve=!0,he&&(D.precision=he),Error(we+"LN10 precision limit exceeded");return round(new D(D.LN10),te)}function getZeroString(D){for(var te="";D--;)te+="0";return te}function ln(D,te){var ye,be,_e,Pe,Ie,Re,ke,Oe,xe,Be=1,Fe=D,De=Fe.d,Ue=Fe.constructor,qe=Ue.precision;if(Fe.s<1)throw Error(we+(Fe.s?"NaN":"-Infinity"));if(Fe.eq(he))return new Ue(0);if(null==te?(ve=!1,Oe=qe):Oe=te,Fe.eq(10))return null==te&&(ve=!0),getLn10(Ue,Oe);if(Oe+=10,Ue.precision=Oe,be=(ye=digitsToString(De)).charAt(0),Pe=getBase10Exponent(Fe),!(Math.abs(Pe)<15e14))return ke=getLn10(Ue,Oe+2,qe).times(Pe+""),Fe=ln(new Ue(be+"."+ye.slice(1)),Oe-10).plus(ke),Ue.precision=qe,null==te?(ve=!0,round(Fe,qe)):Fe;for(;be<7&&1!=be||1==be&&ye.charAt(1)>3;)be=(ye=digitsToString((Fe=Fe.times(D)).d)).charAt(0),Be++;for(Pe=getBase10Exponent(Fe),be>1?(Fe=new Ue("0."+ye),Pe++):Fe=new Ue(be+"."+ye.slice(1)),Re=Ie=Fe=Le(Fe.minus(he),Fe.plus(he),Oe),xe=round(Fe.times(Fe),Oe),_e=3;;){if(Ie=round(Ie.times(xe),Oe),digitsToString((ke=Re.plus(Le(Ie,new Ue(_e),Oe))).d).slice(0,Oe)===digitsToString(Re.d).slice(0,Oe))return Re=Re.times(2),0!==Pe&&(Re=Re.plus(getLn10(Ue,Oe+2,qe).times(Pe+""))),Re=Le(Re,new Ue(Be),Oe),Ue.precision=qe,null==te?(ve=!0,round(Re,qe)):Re;Re=ke,_e+=2}}function parseDecimal(D,te){var he,ye,be;for((he=te.indexOf("."))>-1&&(te=te.replace(".","")),(ye=te.search(/e/i))>0?(he<0&&(he=ye),he+=+te.slice(ye+1),te=te.substring(0,ye)):he<0&&(he=te.length),ye=0;48===te.charCodeAt(ye);)++ye;for(be=te.length;48===te.charCodeAt(be-1);)--be;if(te=te.slice(ye,be)){if(be-=ye,he=he-ye-1,D.e=Ie(he/xe),D.d=[],ye=(he+1)%xe,he<0&&(ye+=xe),ye<be){for(ye&&D.d.push(+te.slice(0,ye)),be-=xe;ye<be;)D.d.push(+te.slice(ye,ye+=xe));te=te.slice(ye),ye=xe-te.length}else ye-=be;for(;ye--;)te+="0";if(D.d.push(+te),ve&&(D.e>Fe||D.e<-Fe))throw Error(Pe+he)}else D.s=0,D.e=0,D.d=[0];return D}function round(D,te,he){var ye,be,we,_e,ke,Be,De,Le,Ue=D.d;for(_e=1,we=Ue[0];we>=10;we/=10)_e++;if((ye=te-_e)<0)ye+=xe,be=te,De=Ue[Le=0];else{if((Le=Math.ceil((ye+1)/xe))>=(we=Ue.length))return D;for(De=we=Ue[Le],_e=1;we>=10;we/=10)_e++;be=(ye%=xe)-xe+_e}if(void 0!==he&&(ke=De/(we=Re(10,_e-be-1))%10|0,Be=te<0||void 0!==Ue[Le+1]||De%we,Be=he<4?(ke||Be)&&(0==he||he==(D.s<0?3:2)):ke>5||5==ke&&(4==he||Be||6==he&&(ye>0?be>0?De/Re(10,_e-be):0:Ue[Le-1])%10&1||he==(D.s<0?8:7))),te<1||!Ue[0])return Be?(we=getBase10Exponent(D),Ue.length=1,te=te-we-1,Ue[0]=Re(10,(xe-te%xe)%xe),D.e=Ie(-te/xe)||0):(Ue.length=1,Ue[0]=D.e=D.s=0),D;if(0==ye?(Ue.length=Le,we=1,Le--):(Ue.length=Le+1,we=Re(10,xe-ye),Ue[Le]=be>0?(De/Re(10,_e-be)%Re(10,be)|0)*we:0),Be)for(;;){if(0==Le){(Ue[0]+=we)==Oe&&(Ue[0]=1,++D.e);break}if(Ue[Le]+=we,Ue[Le]!=Oe)break;Ue[Le--]=0,we=1}for(ye=Ue.length;0===Ue[--ye];)Ue.pop();if(ve&&(D.e>Fe||D.e<-Fe))throw Error(Pe+getBase10Exponent(D));return D}function subtract(D,te){var he,ye,be,we,_e,Pe,Ie,Re,ke,Be,Fe=D.constructor,De=Fe.precision;if(!D.s||!te.s)return te.s?te.s=-te.s:te=new Fe(D),ve?round(te,De):te;if(Ie=D.d,Be=te.d,ye=te.e,Re=D.e,Ie=Ie.slice(),_e=Re-ye){for((ke=_e<0)?(he=Ie,_e=-_e,Pe=Be.length):(he=Be,ye=Re,Pe=Ie.length),_e>(be=Math.max(Math.ceil(De/xe),Pe)+2)&&(_e=be,he.length=1),he.reverse(),be=_e;be--;)he.push(0);he.reverse()}else{for((ke=(be=Ie.length)<(Pe=Be.length))&&(Pe=be),be=0;be<Pe;be++)if(Ie[be]!=Be[be]){ke=Ie[be]<Be[be];break}_e=0}for(ke&&(he=Ie,Ie=Be,Be=he,te.s=-te.s),Pe=Ie.length,be=Be.length-Pe;be>0;--be)Ie[Pe++]=0;for(be=Be.length;be>_e;){if(Ie[--be]<Be[be]){for(we=be;we&&0===Ie[--we];)Ie[we]=Oe-1;--Ie[we],Ie[be]+=Oe}Ie[be]-=Be[be]}for(;0===Ie[--Pe];)Ie.pop();for(;0===Ie[0];Ie.shift())--ye;return Ie[0]?(te.d=Ie,te.e=ye,ve?round(te,De):te):new Fe(0)}function toString(D,te,he){var ye,be=getBase10Exponent(D),ve=digitsToString(D.d),we=ve.length;return te?(he&&(ye=he-we)>0?ve=ve.charAt(0)+"."+ve.slice(1)+getZeroString(ye):we>1&&(ve=ve.charAt(0)+"."+ve.slice(1)),ve=ve+(be<0?"e":"e+")+be):be<0?(ve="0."+getZeroString(-be-1)+ve,he&&(ye=he-we)>0&&(ve+=getZeroString(ye))):be>=we?(ve+=getZeroString(be+1-we),he&&(ye=he-be-1)>0&&(ve=ve+"."+getZeroString(ye))):((ye=be+1)<we&&(ve=ve.slice(0,ye)+"."+ve.slice(ye)),he&&(ye=he-we)>0&&(be+1===we&&(ve+="."),ve+=getZeroString(ye))),D.s<0?"-"+ve:ve}function truncate(D,te){if(D.length>te)return D.length=te,!0}function config(D){if(!D||"object"!=typeof D)throw Error(we+"Object expected");var te,he,be,ve=["precision",1,ye,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(te=0;te<ve.length;te+=3)if(void 0!==(be=D[he=ve[te]])){if(!(Ie(be)===be&&be>=ve[te+1]&&be<=ve[te+2]))throw Error(_e+he+": "+be);this[he]=be}if(void 0!==(be=D[he="LN10"])){if(be!=Math.LN10)throw Error(_e+he+": "+be);this[he]=new this(be)}return this}be=function clone(D){var te,he,ye;function Decimal(D){var te=this;if(!(te instanceof Decimal))return new Decimal(D);if(te.constructor=Decimal,D instanceof Decimal)return te.s=D.s,te.e=D.e,void(te.d=(D=D.d)?D.slice():D);if("number"==typeof D){if(0*D!=0)throw Error(_e+D);if(D>0)te.s=1;else{if(!(D<0))return te.s=0,te.e=0,void(te.d=[0]);D=-D,te.s=-1}return D===~~D&&D<1e7?(te.e=0,void(te.d=[D])):parseDecimal(te,D.toString())}if("string"!=typeof D)throw Error(_e+D);if(45===D.charCodeAt(0)?(D=D.slice(1),te.s=-1):te.s=1,!ke.test(D))throw Error(_e+D);parseDecimal(te,D)}if(Decimal.prototype=De,Decimal.ROUND_UP=0,Decimal.ROUND_DOWN=1,Decimal.ROUND_CEIL=2,Decimal.ROUND_FLOOR=3,Decimal.ROUND_HALF_UP=4,Decimal.ROUND_HALF_DOWN=5,Decimal.ROUND_HALF_EVEN=6,Decimal.ROUND_HALF_CEIL=7,Decimal.ROUND_HALF_FLOOR=8,Decimal.clone=clone,Decimal.config=Decimal.set=config,void 0===D&&(D={}),D)for(ye=["precision","rounding","toExpNeg","toExpPos","LN10"],te=0;te<ye.length;)D.hasOwnProperty(he=ye[te++])||(D[he]=this[he]);return Decimal.config(D),Decimal}(be),be.default=be.Decimal=be,he=new be(1),D.exports?D.exports=be:(te||(te="undefined"!=typeof self&&self&&self.self==self?self:Function("return this")()),te.Decimal=be)}(rn)}(Lz);var Uz=getDefaultExportFromCjs$1(Lz.exports),$z={exports:{}};!function(D){!function(te){var he,ye=1e6,be=1e6,ve="[big.js] ",we=ve+"Invalid ",_e=we+"decimal places",Pe=we+"rounding mode",Ie=ve+"Division by zero",Re={},ke=void 0,Oe=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;function round(D,te,he,ye){var be=D.c,ve=D.e+te+1;if(ve<be.length){if(1===he)ye=be[ve]>=5;else if(2===he)ye=be[ve]>5||5==be[ve]&&(ye||ve<0||be[ve+1]!==ke||1&be[ve-1]);else if(3===he)ye=ye||!!be[0];else if(ye=!1,0!==he)throw Error(Pe);if(ve<1)be.length=1,ye?(D.e=-te,be[0]=1):be[0]=D.e=0;else{if(be.length=ve--,ye)for(;++be[ve]>9;)be[ve]=0,ve--||(++D.e,be.unshift(1));for(ve=be.length;!be[--ve];)be.pop()}}else if(he<0||he>3||he!==~~he)throw Error(Pe);return D}function stringify(D,te,he,be){var ve,Pe,Ie=D.constructor,Re=!D.c[0];if(he!==ke){if(he!==~~he||he<(3==te)||he>ye)throw Error(3==te?we+"precision":_e);for(he=be-(D=new Ie(D)).e,D.c.length>++be&&round(D,he,Ie.RM),2==te&&(be=D.e+he+1);D.c.length<be;)D.c.push(0)}if(ve=D.e,he=(Pe=D.c.join("")).length,2!=te&&(1==te||3==te&&be<=ve||ve<=Ie.NE||ve>=Ie.PE))Pe=Pe.charAt(0)+(he>1?"."+Pe.slice(1):"")+(ve<0?"e":"e+")+ve;else if(ve<0){for(;++ve;)Pe="0"+Pe;Pe="0."+Pe}else if(ve>0)if(++ve>he)for(ve-=he;ve--;)Pe+="0";else ve<he&&(Pe=Pe.slice(0,ve)+"."+Pe.slice(ve));else he>1&&(Pe=Pe.charAt(0)+"."+Pe.slice(1));return D.s<0&&(!Re||4==te)?"-"+Pe:Pe}Re.abs=function(){var D=new this.constructor(this);return D.s=1,D},Re.cmp=function(D){var te,he=this,ye=he.c,be=(D=new he.constructor(D)).c,ve=he.s,we=D.s,_e=he.e,Pe=D.e;if(!ye[0]||!be[0])return ye[0]?ve:be[0]?-we:0;if(ve!=we)return ve;if(te=ve<0,_e!=Pe)return _e>Pe^te?1:-1;for(we=(_e=ye.length)<(Pe=be.length)?_e:Pe,ve=-1;++ve<we;)if(ye[ve]!=be[ve])return ye[ve]>be[ve]^te?1:-1;return _e==Pe?0:_e>Pe^te?1:-1},Re.div=function(D){var te=this,he=te.constructor,be=te.c,ve=(D=new he(D)).c,we=te.s==D.s?1:-1,Pe=he.DP;if(Pe!==~~Pe||Pe<0||Pe>ye)throw Error(_e);if(!ve[0])throw Error(Ie);if(!be[0])return new he(0*we);var Re,Oe,xe,Be,Fe,De=ve.slice(),Le=Re=ve.length,Ue=be.length,qe=be.slice(0,Re),je=qe.length,Je=D,et=Je.c=[],tt=0,rt=Pe+(Je.e=te.e-D.e)+1;for(Je.s=we,we=rt<0?0:rt,De.unshift(0);je++<Re;)qe.push(0);do{for(xe=0;xe<10;xe++){if(Re!=(je=qe.length))Be=Re>je?1:-1;else for(Fe=-1,Be=0;++Fe<Re;)if(ve[Fe]!=qe[Fe]){Be=ve[Fe]>qe[Fe]?1:-1;break}if(!(Be<0))break;for(Oe=je==Re?ve:De;je;){if(qe[--je]<Oe[je]){for(Fe=je;Fe&&!qe[--Fe];)qe[Fe]=9;--qe[Fe],qe[je]+=10}qe[je]-=Oe[je]}for(;!qe[0];)qe.shift()}et[tt++]=Be?xe:++xe,qe[0]&&Be?qe[je]=be[Le]||0:qe=[be[Le]]}while((Le++<Ue||qe[0]!==ke)&&we--);return et[0]||1==tt||(et.shift(),Je.e--),tt>rt&&round(Je,Pe,he.RM,qe[0]!==ke),Je},Re.eq=function(D){return!this.cmp(D)},Re.gt=function(D){return this.cmp(D)>0},Re.gte=function(D){return this.cmp(D)>-1},Re.lt=function(D){return this.cmp(D)<0},Re.lte=function(D){return this.cmp(D)<1},Re.minus=Re.sub=function(D){var te,he,ye,be,ve=this,we=ve.constructor,_e=ve.s,Pe=(D=new we(D)).s;if(_e!=Pe)return D.s=-Pe,ve.plus(D);var Ie=ve.c.slice(),Re=ve.e,ke=D.c,Oe=D.e;if(!Ie[0]||!ke[0])return ke[0]?(D.s=-Pe,D):new we(Ie[0]?ve:0);if(_e=Re-Oe){for((be=_e<0)?(_e=-_e,ye=Ie):(Oe=Re,ye=ke),ye.reverse(),Pe=_e;Pe--;)ye.push(0);ye.reverse()}else for(he=((be=Ie.length<ke.length)?Ie:ke).length,_e=Pe=0;Pe<he;Pe++)if(Ie[Pe]!=ke[Pe]){be=Ie[Pe]<ke[Pe];break}if(be&&(ye=Ie,Ie=ke,ke=ye,D.s=-D.s),(Pe=(he=ke.length)-(te=Ie.length))>0)for(;Pe--;)Ie[te++]=0;for(Pe=te;he>_e;){if(Ie[--he]<ke[he]){for(te=he;te&&!Ie[--te];)Ie[te]=9;--Ie[te],Ie[he]+=10}Ie[he]-=ke[he]}for(;0===Ie[--Pe];)Ie.pop();for(;0===Ie[0];)Ie.shift(),--Oe;return Ie[0]||(D.s=1,Ie=[Oe=0]),D.c=Ie,D.e=Oe,D},Re.mod=function(D){var te,he=this,ye=he.constructor,be=he.s,ve=(D=new ye(D)).s;if(!D.c[0])throw Error(Ie);return he.s=D.s=1,te=1==D.cmp(he),he.s=be,D.s=ve,te?new ye(he):(be=ye.DP,ve=ye.RM,ye.DP=ye.RM=0,he=he.div(D),ye.DP=be,ye.RM=ve,this.minus(he.times(D)))},Re.plus=Re.add=function(D){var te,he=this,ye=he.constructor,be=he.s,ve=(D=new ye(D)).s;if(be!=ve)return D.s=-ve,he.minus(D);var we=he.e,_e=he.c,Pe=D.e,Ie=D.c;if(!_e[0]||!Ie[0])return Ie[0]?D:new ye(_e[0]?he:0*be);if(_e=_e.slice(),be=we-Pe){for(be>0?(Pe=we,te=Ie):(be=-be,te=_e),te.reverse();be--;)te.push(0);te.reverse()}for(_e.length-Ie.length<0&&(te=Ie,Ie=_e,_e=te),be=Ie.length,ve=0;be;_e[be]%=10)ve=(_e[--be]=_e[be]+Ie[be]+ve)/10|0;for(ve&&(_e.unshift(ve),++Pe),be=_e.length;0===_e[--be];)_e.pop();return D.c=_e,D.e=Pe,D},Re.pow=function(D){var te=this,he=new te.constructor(1),ye=he,ve=D<0;if(D!==~~D||D<-1e6||D>be)throw Error(we+"exponent");for(ve&&(D=-D);1&D&&(ye=ye.times(te)),D>>=1;)te=te.times(te);return ve?he.div(ye):ye},Re.round=function(D,te){var he=this.constructor;if(D===ke)D=0;else if(D!==~~D||D<-ye||D>ye)throw Error(_e);return round(new he(this),D,te===ke?he.RM:te)},Re.sqrt=function(){var D,te,he,ye=this,be=ye.constructor,we=ye.s,_e=ye.e,Pe=new be(.5);if(!ye.c[0])return new be(ye);if(we<0)throw Error(ve+"No square root");0===(we=Math.sqrt(ye+""))||we===1/0?((te=ye.c.join("")).length+_e&1||(te+="0"),_e=((_e+1)/2|0)-(_e<0||1&_e),D=new be(((we=Math.sqrt(te))==1/0?"1e":(we=we.toExponential()).slice(0,we.indexOf("e")+1))+_e)):D=new be(we),_e=D.e+(be.DP+=4);do{he=D,D=Pe.times(he.plus(ye.div(he)))}while(he.c.slice(0,_e).join("")!==D.c.slice(0,_e).join(""));return round(D,be.DP-=4,be.RM)},Re.times=Re.mul=function(D){var te,he=this,ye=he.constructor,be=he.c,ve=(D=new ye(D)).c,we=be.length,_e=ve.length,Pe=he.e,Ie=D.e;if(D.s=he.s==D.s?1:-1,!be[0]||!ve[0])return new ye(0*D.s);for(D.e=Pe+Ie,we<_e&&(te=be,be=ve,ve=te,Ie=we,we=_e,_e=Ie),te=new Array(Ie=we+_e);Ie--;)te[Ie]=0;for(Pe=_e;Pe--;){for(_e=0,Ie=we+Pe;Ie>Pe;)_e=te[Ie]+ve[Pe]*be[Ie-Pe-1]+_e,te[Ie--]=_e%10,_e=_e/10|0;te[Ie]=(te[Ie]+_e)%10}for(_e?++D.e:te.shift(),Pe=te.length;!te[--Pe];)te.pop();return D.c=te,D},Re.toExponential=function(D){return stringify(this,1,D,D)},Re.toFixed=function(D){return stringify(this,2,D,this.e+D)},Re.toPrecision=function(D){return stringify(this,3,D,D-1)},Re.toString=function(){return stringify(this)},Re.valueOf=Re.toJSON=function(){return stringify(this,4)},he=function _Big_(){function Big(D){var te=this;if(!(te instanceof Big))return D===ke?_Big_():new Big(D);D instanceof Big?(te.s=D.s,te.e=D.e,te.c=D.c.slice()):function parse(D,te){var he,ye,be;if(0===te&&1/te<0)te="-0";else if(!Oe.test(te+=""))throw Error(we+"number");D.s="-"==te.charAt(0)?(te=te.slice(1),-1):1,(he=te.indexOf("."))>-1&&(te=te.replace(".",""));(ye=te.search(/e/i))>0?(he<0&&(he=ye),he+=+te.slice(ye+1),te=te.substring(0,ye)):he<0&&(he=te.length);for(be=te.length,ye=0;ye<be&&"0"==te.charAt(ye);)++ye;if(ye==be)D.c=[D.e=0];else{for(;be>0&&"0"==te.charAt(--be););for(D.e=he-ye-1,D.c=[],he=0;ye<=be;)D.c[he++]=+te.charAt(ye++)}return D}(te,D),te.constructor=Big}return Big.prototype=Re,Big.DP=20,Big.RM=1,Big.NE=-7,Big.PE=21,Big.version="5.2.2",Big}(),he.default=he.Big=he,D.exports?D.exports=he:te.Big=he}(rn)}($z);var qz=getDefaultExportFromCjs$1($z.exports),Gz={exports:{}};!function(D){D.exports&&(D.exports=function toFormat(D){return D.prototype.toFormat=function toFormat(D,te,he){if(!this.e&&0!==this.e)return this.toString();var ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue=this.format||{},qe=this.constructor.format||{};if(D!=_e?"object"==typeof D?(he=D,D=_e):te!=_e?"object"==typeof te?(he=te,te=_e):"object"!=typeof he&&(he={}):he={}:he={},Re=(ye=this.toFixed(D,te).split("."))[0],ke=ye[1],Pe=(Ie=this.s<0?Re.slice(1):Re).length,(Oe=he.decimalSeparator)==_e&&(Oe=Ue.decimalSeparator)==_e&&(Oe=qe.decimalSeparator)==_e&&(Oe="."),(xe=he.groupSeparator)==_e&&(xe=Ue.groupSeparator)==_e&&(xe=qe.groupSeparator),xe&&((Be=he.groupSize)==_e&&(Be=Ue.groupSize)==_e&&(Be=qe.groupSize)==_e&&(Be=0),(Fe=he.secondaryGroupSize)==_e&&(Fe=Ue.secondaryGroupSize)==_e&&(Fe=qe.secondaryGroupSize)==_e&&(Fe=0),Fe?(be=+Fe,Pe-=ve=+Be):(be=+Be,ve=+Fe),be>0&&Pe>0)){for(we=Pe%be||be,Re=Ie.substr(0,we);we<Pe;we+=be)Re+=xe+Ie.substr(we,be);ve>0&&(Re+=xe+Ie.slice(we)),this.s<0&&(Re="-"+Re)}return ke?((De=he.fractionGroupSeparator)==_e&&(De=Ue.fractionGroupSeparator)==_e&&(De=qe.fractionGroupSeparator),De&&((Le=he.fractionGroupSize)==_e&&(Le=Ue.fractionGroupSize)==_e&&(Le=qe.fractionGroupSize)==_e&&(Le=0),(Le=+Le)&&(ke=ke.replace(new RegExp("\\d{"+Le+"}\\B","g"),"$&"+De))),Re+Oe+ke):Re},D.format={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:"",fractionGroupSize:0},D})}(Gz);var jz,Hz,zz,Wz=getDefaultExportFromCjs$1(Gz.exports);!function(D){D[D.MAINNET=1]="MAINNET",D[D.GOERLI=5]="GOERLI",D[D.SEPOLIA=11155111]="SEPOLIA",D[D.ARBITRUM_ONE=42161]="ARBITRUM_ONE",D[D.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",D[D.OPTIMISM=10]="OPTIMISM",D[D.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",D[D.POLYGON=137]="POLYGON",D[D.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",D[D.CELO=42220]="CELO",D[D.CELO_ALFAJORES=44787]="CELO_ALFAJORES",D[D.BNB=56]="BNB"}(jz||(jz={})),function(D){D[D.EXACT_INPUT=0]="EXACT_INPUT",D[D.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(Hz||(Hz={})),function(D){D[D.ROUND_DOWN=0]="ROUND_DOWN",D[D.ROUND_HALF_UP=1]="ROUND_HALF_UP",D[D.ROUND_UP=2]="ROUND_UP"}(zz||(zz={}));var Vz,Kz,Jz=Fz.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function _createClass$5(D,te,he){return te&&function _defineProperties$5(D,te){for(var he=0;he<te.length;he++){var ye=te[he];ye.enumerable=ye.enumerable||!1,ye.configurable=!0,"value"in ye&&(ye.writable=!0),Object.defineProperty(D,ye.key,ye)}}(D.prototype,te),D}function _inheritsLoose$4(D,te){D.prototype=Object.create(te.prototype),D.prototype.constructor=D,D.__proto__=te}var Xz=Wz(Uz),Qz=Wz(qz),Zz=((Vz={})[zz.ROUND_DOWN]=Xz.ROUND_DOWN,Vz[zz.ROUND_HALF_UP]=Xz.ROUND_HALF_UP,Vz[zz.ROUND_UP]=Xz.ROUND_UP,Vz),Yz=((Kz={})[zz.ROUND_DOWN]=0,Kz[zz.ROUND_HALF_UP]=1,Kz[zz.ROUND_UP]=3,Kz),eW=function(){function Fraction(D,te){void 0===te&&(te=Fz.BigInt(1)),this.numerator=Fz.BigInt(D),this.denominator=Fz.BigInt(te)}Fraction.tryParseFraction=function tryParseFraction(D){if(D instanceof Fz||"number"==typeof D||"string"==typeof D)return new Fraction(D);if("numerator"in D&&"denominator"in D)return D;throw new Error("Could not parse fraction")};var D=Fraction.prototype;return D.invert=function invert(){return new Fraction(this.denominator,this.numerator)},D.add=function add(D){var te=Fraction.tryParseFraction(D);return Fz.equal(this.denominator,te.denominator)?new Fraction(Fz.add(this.numerator,te.numerator),this.denominator):new Fraction(Fz.add(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator)),Fz.multiply(this.denominator,te.denominator))},D.subtract=function subtract(D){var te=Fraction.tryParseFraction(D);return Fz.equal(this.denominator,te.denominator)?new Fraction(Fz.subtract(this.numerator,te.numerator),this.denominator):new Fraction(Fz.subtract(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator)),Fz.multiply(this.denominator,te.denominator))},D.lessThan=function lessThan(D){var te=Fraction.tryParseFraction(D);return Fz.lessThan(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.equalTo=function equalTo(D){var te=Fraction.tryParseFraction(D);return Fz.equal(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.greaterThan=function greaterThan(D){var te=Fraction.tryParseFraction(D);return Fz.greaterThan(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.multiply=function multiply(D){var te=Fraction.tryParseFraction(D);return new Fraction(Fz.multiply(this.numerator,te.numerator),Fz.multiply(this.denominator,te.denominator))},D.divide=function divide(D){var te=Fraction.tryParseFraction(D);return new Fraction(Fz.multiply(this.numerator,te.denominator),Fz.multiply(this.denominator,te.numerator))},D.toSignificant=function toSignificant(D,te,he){void 0===te&&(te={groupSeparator:""}),void 0===he&&(he=zz.ROUND_HALF_UP),Number.isInteger(D)||invariant(),D>0||invariant(),Xz.set({precision:D+1,rounding:Zz[he]});var ye=new Xz(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(D);return ye.toFormat(ye.decimalPlaces(),te)},D.toFixed=function toFixed(D,te,he){return void 0===te&&(te={groupSeparator:""}),void 0===he&&(he=zz.ROUND_HALF_UP),Number.isInteger(D)||invariant(),D>=0||invariant(),Qz.DP=D,Qz.RM=Yz[he],new Qz(this.numerator.toString()).div(this.denominator.toString()).toFormat(D,te)},_createClass$5(Fraction,[{key:"quotient",get:function get(){return Fz.divide(this.numerator,this.denominator)}},{key:"remainder",get:function get(){return new Fraction(Fz.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function get(){return new Fraction(this.numerator,this.denominator)}}]),Fraction}(),tW=Wz(qz),rW=function(D){function CurrencyAmount(te,he,ye){var be;return be=D.call(this,he,ye)||this,Fz.lessThanOrEqual(be.quotient,Jz)||invariant(),be.currency=te,be.decimalScale=Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(te.decimals)),be}_inheritsLoose$4(CurrencyAmount,D),CurrencyAmount.fromRawAmount=function fromRawAmount(D,te){return new CurrencyAmount(D,te)},CurrencyAmount.fromFractionalAmount=function fromFractionalAmount(D,te,he){return new CurrencyAmount(D,te,he)};var te=CurrencyAmount.prototype;return te.add=function add(te){this.currency.equals(te.currency)||invariant();var he=D.prototype.add.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.subtract=function subtract(te){this.currency.equals(te.currency)||invariant();var he=D.prototype.subtract.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.multiply=function multiply(te){var he=D.prototype.multiply.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.divide=function divide(te){var he=D.prototype.divide.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.toSignificant=function toSignificant(te,he,ye){return void 0===te&&(te=6),void 0===ye&&(ye=zz.ROUND_DOWN),D.prototype.divide.call(this,this.decimalScale).toSignificant(te,he,ye)},te.toFixed=function toFixed(te,he,ye){return void 0===te&&(te=this.currency.decimals),void 0===ye&&(ye=zz.ROUND_DOWN),te<=this.currency.decimals||invariant(),D.prototype.divide.call(this,this.decimalScale).toFixed(te,he,ye)},te.toExact=function toExact(D){return void 0===D&&(D={groupSeparator:""}),tW.DP=this.currency.decimals,new tW(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(D)},_createClass$5(CurrencyAmount,[{key:"wrapped",get:function get(){return this.currency.isToken?this:CurrencyAmount.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),CurrencyAmount}(eW),nW=new eW(Fz.BigInt(100));function toPercent$3(D){return new aW(D.numerator,D.denominator)}var aW=function(D){function Percent(){var te;return(te=D.apply(this,arguments)||this).isPercent=!0,te}_inheritsLoose$4(Percent,D);var te=Percent.prototype;return te.add=function add(te){return toPercent$3(D.prototype.add.call(this,te))},te.subtract=function subtract(te){return toPercent$3(D.prototype.subtract.call(this,te))},te.multiply=function multiply(te){return toPercent$3(D.prototype.multiply.call(this,te))},te.divide=function divide(te){return toPercent$3(D.prototype.divide.call(this,te))},te.toSignificant=function toSignificant(te,he,ye){return void 0===te&&(te=5),D.prototype.multiply.call(this,nW).toSignificant(te,he,ye)},te.toFixed=function toFixed(te,he,ye){return void 0===te&&(te=2),D.prototype.multiply.call(this,nW).toFixed(te,he,ye)},Percent}(eW),iW=function BaseCurrency(D,te,he,ye){Number.isSafeInteger(D)||invariant(),te>=0&&te<255&&Number.isInteger(te)||invariant(),this.chainId=D,this.decimals=te,this.symbol=he,this.name=ye};var sW=/^0x[0-9a-fA-F]{40}$/;var oW,cW,dW,uW,fW=function(D){function Token(te,he,ye,be,ve,we){var _e;return(_e=D.call(this,te,ye,be,ve)||this).isNative=!1,_e.isToken=!0,_e.address=we?function checkValidAddress$3(D){if(sW.test(D))return D;throw new Error(D+" is not a valid address.")}(he):function validateAndParseAddress$3(D){try{return getAddress$2(D)}catch(te){throw new Error(D+" is not a valid address.")}}(he),_e}_inheritsLoose$4(Token,D);var te=Token.prototype;return te.equals=function equals(D){return D.isToken&&this.chainId===D.chainId&&this.address.toLowerCase()===D.address.toLowerCase()},te.sortsBefore=function sortsBefore(D){return this.chainId!==D.chainId&&invariant(),this.address.toLowerCase()===D.address.toLowerCase()&&invariant(),this.address.toLowerCase()<D.address.toLowerCase()},_createClass$5(Token,[{key:"wrapped",get:function get(){return this}}]),Token}(iW);function _createClass$4(D,te,he){return te&&function _defineProperties$4(D,te){for(var he=0;he<te.length;he++){var ye=te[he];ye.enumerable=ye.enumerable||!1,ye.configurable=!0,"value"in ye&&(ye.writable=!0),Object.defineProperty(D,ye.key,ye)}}(D.prototype,te),D}function _extends$3(){return _extends$3=Object.assign||function(D){for(var te=1;te<arguments.length;te++){var he=arguments[te];for(var ye in he)Object.prototype.hasOwnProperty.call(he,ye)&&(D[ye]=he[ye])}return D},_extends$3.apply(this,arguments)}function _inheritsLoose$3(D,te){D.prototype=Object.create(te.prototype),D.prototype.constructor=D,D.__proto__=te}(oW={})[1]=new fW(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),oW[3]=new fW(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),oW[4]=new fW(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),oW[5]=new fW(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),oW[42]=new fW(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),oW[10]=new fW(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),oW[69]=new fW(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),oW[42161]=new fW(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),oW[421611]=new fW(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether"),function(D){D[D.MAINNET=1]="MAINNET",D[D.GOERLI=5]="GOERLI",D[D.SEPOLIA=11155111]="SEPOLIA",D[D.OPTIMISM=10]="OPTIMISM",D[D.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",D[D.ARBITRUM_ONE=42161]="ARBITRUM_ONE",D[D.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",D[D.POLYGON=137]="POLYGON",D[D.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",D[D.CELO=42220]="CELO",D[D.CELO_ALFAJORES=44787]="CELO_ALFAJORES",D[D.GNOSIS=100]="GNOSIS",D[D.MOONBEAM=1284]="MOONBEAM",D[D.BNB=56]="BNB",D[D.AVALANCHE=43114]="AVALANCHE",D[D.BASE_GOERLI=84531]="BASE_GOERLI",D[D.BASE=8453]="BASE"}(cW||(cW={})),cW.MAINNET,cW.OPTIMISM,cW.OPTIMISM_GOERLI,cW.ARBITRUM_ONE,cW.ARBITRUM_GOERLI,cW.POLYGON,cW.POLYGON_MUMBAI,cW.GOERLI,cW.SEPOLIA,cW.CELO_ALFAJORES,cW.CELO,cW.BNB,cW.AVALANCHE,cW.BASE,cW.BASE_GOERLI,function(D){D.ETHER="ETH",D.MATIC="MATIC",D.CELO="CELO",D.GNOSIS="XDAI",D.MOONBEAM="GLMR",D.BNB="BNB",D.AVAX="AVAX"}(dW||(dW={}));cW.MAINNET,cW.GOERLI;cW.OPTIMISM,cW.ARBITRUM_ONE,cW.POLYGON,cW.POLYGON_MUMBAI,cW.SEPOLIA;var lW,pW,hW={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},yW=_extends$3({},hW,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),mW=_extends$3({},hW,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),bW=hW,gW=_extends$3({},hW,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),vW=hW,wW={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"};(uW={})[cW.MAINNET]=yW,uW[cW.OPTIMISM]=bW,uW[cW.ARBITRUM_ONE]=gW,uW[cW.POLYGON]=vW,uW[cW.POLYGON_MUMBAI]=vW,uW[cW.GOERLI]=mW,uW[cW.CELO]=wW,uW[cW.CELO_ALFAJORES]=wW,uW[cW.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},uW[cW.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},uW[cW.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},uW[cW.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},uW[cW.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},uW[cW.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},uW[cW.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},{}[cW.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",{}[cW.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",{}[cW.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",{}[cW.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",{}[cW.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",function(D){D[D.EXACT_INPUT=0]="EXACT_INPUT",D[D.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(lW||(lW={})),function(D){D[D.ROUND_DOWN=0]="ROUND_DOWN",D[D.ROUND_HALF_UP=1]="ROUND_HALF_UP",D[D.ROUND_UP=2]="ROUND_UP"}(pW||(pW={}));var _W,TW,AW=Fz.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),EW=Wz(Uz),PW=Wz(qz),SW=((_W={})[pW.ROUND_DOWN]=EW.ROUND_DOWN,_W[pW.ROUND_HALF_UP]=EW.ROUND_HALF_UP,_W[pW.ROUND_UP]=EW.ROUND_UP,_W),CW=((TW={})[pW.ROUND_DOWN]=0,TW[pW.ROUND_HALF_UP]=1,TW[pW.ROUND_UP]=3,TW),IW=function(){function Fraction(D,te){void 0===te&&(te=Fz.BigInt(1)),this.numerator=Fz.BigInt(D),this.denominator=Fz.BigInt(te)}Fraction.tryParseFraction=function tryParseFraction(D){if(D instanceof Fz||"number"==typeof D||"string"==typeof D)return new Fraction(D);if("numerator"in D&&"denominator"in D)return D;throw new Error("Could not parse fraction")};var D=Fraction.prototype;return D.invert=function invert(){return new Fraction(this.denominator,this.numerator)},D.add=function add(D){var te=Fraction.tryParseFraction(D);return Fz.equal(this.denominator,te.denominator)?new Fraction(Fz.add(this.numerator,te.numerator),this.denominator):new Fraction(Fz.add(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator)),Fz.multiply(this.denominator,te.denominator))},D.subtract=function subtract(D){var te=Fraction.tryParseFraction(D);return Fz.equal(this.denominator,te.denominator)?new Fraction(Fz.subtract(this.numerator,te.numerator),this.denominator):new Fraction(Fz.subtract(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator)),Fz.multiply(this.denominator,te.denominator))},D.lessThan=function lessThan(D){var te=Fraction.tryParseFraction(D);return Fz.lessThan(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.equalTo=function equalTo(D){var te=Fraction.tryParseFraction(D);return Fz.equal(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.greaterThan=function greaterThan(D){var te=Fraction.tryParseFraction(D);return Fz.greaterThan(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.multiply=function multiply(D){var te=Fraction.tryParseFraction(D);return new Fraction(Fz.multiply(this.numerator,te.numerator),Fz.multiply(this.denominator,te.denominator))},D.divide=function divide(D){var te=Fraction.tryParseFraction(D);return new Fraction(Fz.multiply(this.numerator,te.denominator),Fz.multiply(this.denominator,te.numerator))},D.toSignificant=function toSignificant(D,te,he){void 0===te&&(te={groupSeparator:""}),void 0===he&&(he=pW.ROUND_HALF_UP),Number.isInteger(D)||invariant(),D>0||invariant(),EW.set({precision:D+1,rounding:SW[he]});var ye=new EW(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(D);return ye.toFormat(ye.decimalPlaces(),te)},D.toFixed=function toFixed(D,te,he){return void 0===te&&(te={groupSeparator:""}),void 0===he&&(he=pW.ROUND_HALF_UP),Number.isInteger(D)||invariant(),D>=0||invariant(),PW.DP=D,PW.RM=CW[he],new PW(this.numerator.toString()).div(this.denominator.toString()).toFormat(D,te)},_createClass$4(Fraction,[{key:"quotient",get:function get(){return Fz.divide(this.numerator,this.denominator)}},{key:"remainder",get:function get(){return new Fraction(Fz.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function get(){return new Fraction(this.numerator,this.denominator)}}]),Fraction}(),RW=Wz(qz),kW=function(D){function CurrencyAmount(te,he,ye){var be;return be=D.call(this,he,ye)||this,Fz.lessThanOrEqual(be.quotient,AW)||invariant(),be.currency=te,be.decimalScale=Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(te.decimals)),be}_inheritsLoose$3(CurrencyAmount,D),CurrencyAmount.fromRawAmount=function fromRawAmount(D,te){return new CurrencyAmount(D,te)},CurrencyAmount.fromFractionalAmount=function fromFractionalAmount(D,te,he){return new CurrencyAmount(D,te,he)};var te=CurrencyAmount.prototype;return te.add=function add(te){this.currency.equals(te.currency)||invariant();var he=D.prototype.add.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.subtract=function subtract(te){this.currency.equals(te.currency)||invariant();var he=D.prototype.subtract.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.multiply=function multiply(te){var he=D.prototype.multiply.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.divide=function divide(te){var he=D.prototype.divide.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.toSignificant=function toSignificant(te,he,ye){return void 0===te&&(te=6),void 0===ye&&(ye=pW.ROUND_DOWN),D.prototype.divide.call(this,this.decimalScale).toSignificant(te,he,ye)},te.toFixed=function toFixed(te,he,ye){return void 0===te&&(te=this.currency.decimals),void 0===ye&&(ye=pW.ROUND_DOWN),te<=this.currency.decimals||invariant(),D.prototype.divide.call(this,this.decimalScale).toFixed(te,he,ye)},te.toExact=function toExact(D){return void 0===D&&(D={groupSeparator:""}),RW.DP=this.currency.decimals,new RW(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(D)},_createClass$4(CurrencyAmount,[{key:"wrapped",get:function get(){return this.currency.isToken?this:CurrencyAmount.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),CurrencyAmount}(IW),OW=new IW(Fz.BigInt(100));function toPercent$2(D){return new xW(D.numerator,D.denominator)}var xW=function(D){function Percent(){var te;return(te=D.apply(this,arguments)||this).isPercent=!0,te}_inheritsLoose$3(Percent,D);var te=Percent.prototype;return te.add=function add(te){return toPercent$2(D.prototype.add.call(this,te))},te.subtract=function subtract(te){return toPercent$2(D.prototype.subtract.call(this,te))},te.multiply=function multiply(te){return toPercent$2(D.prototype.multiply.call(this,te))},te.divide=function divide(te){return toPercent$2(D.prototype.divide.call(this,te))},te.toSignificant=function toSignificant(te,he,ye){return void 0===te&&(te=5),D.prototype.multiply.call(this,OW).toSignificant(te,he,ye)},te.toFixed=function toFixed(te,he,ye){return void 0===te&&(te=2),D.prototype.multiply.call(this,OW).toFixed(te,he,ye)},Percent}(IW),NW=function(D){function Price(){for(var te,he,ye,be,ve,we=arguments.length,_e=new Array(we),Pe=0;Pe<we;Pe++)_e[Pe]=arguments[Pe];if(4===_e.length)he=_e[0],ye=_e[1],be=_e[2],ve=_e[3];else{var Ie=_e[0].quoteAmount.divide(_e[0].baseAmount),Re=[_e[0].baseAmount.currency,_e[0].quoteAmount.currency,Ie.denominator,Ie.numerator];he=Re[0],ye=Re[1],be=Re[2],ve=Re[3]}return(te=D.call(this,ve,be)||this).baseCurrency=he,te.quoteCurrency=ye,te.scalar=new IW(Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(he.decimals)),Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(ye.decimals))),te}_inheritsLoose$3(Price,D);var te=Price.prototype;return te.invert=function invert(){return new Price(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},te.multiply=function multiply(te){this.quoteCurrency.equals(te.baseCurrency)||invariant();var he=D.prototype.multiply.call(this,te);return new Price(this.baseCurrency,te.quoteCurrency,he.denominator,he.numerator)},te.quote=function quote(te){te.currency.equals(this.baseCurrency)||invariant();var he=D.prototype.multiply.call(this,te);return kW.fromFractionalAmount(this.quoteCurrency,he.numerator,he.denominator)},te.toSignificant=function toSignificant(D,te,he){return void 0===D&&(D=6),this.adjustedForDecimals.toSignificant(D,te,he)},te.toFixed=function toFixed(D,te,he){return void 0===D&&(D=4),this.adjustedForDecimals.toFixed(D,te,he)},_createClass$4(Price,[{key:"adjustedForDecimals",get:function get(){return D.prototype.multiply.call(this,this.scalar)}}]),Price}(IW),MW=function BaseCurrency(D,te,he,ye){Number.isSafeInteger(D)||invariant(),te>=0&&te<255&&Number.isInteger(te)||invariant(),this.chainId=D,this.decimals=te,this.symbol=he,this.name=ye};function validateAndParseAddress$2(D){try{return getAddress$2(D)}catch(te){throw new Error(D+" is not a valid address.")}}var BW=/^0x[0-9a-fA-F]{40}$/;var FW,DW=function(D){function Token(te,he,ye,be,ve,we){var _e;return(_e=D.call(this,te,ye,be,ve)||this).isNative=!1,_e.isToken=!0,_e.address=we?function checkValidAddress$2(D){if(BW.test(D))return D;throw new Error(D+" is not a valid address.")}(he):validateAndParseAddress$2(he),_e}_inheritsLoose$3(Token,D);var te=Token.prototype;return te.equals=function equals(D){return D.isToken&&this.chainId===D.chainId&&this.address.toLowerCase()===D.address.toLowerCase()},te.sortsBefore=function sortsBefore(D){return this.chainId!==D.chainId&&invariant(),this.address.toLowerCase()===D.address.toLowerCase()&&invariant(),this.address.toLowerCase()<D.address.toLowerCase()},_createClass$4(Token,[{key:"wrapped",get:function get(){return this}}]),Token}(MW);function sortedInsert$2(D,te,he,ye){if(he>0||invariant(),D.length<=he||invariant(),0===D.length)return D.push(te),null;var be=D.length===he;if(be&&ye(D[D.length-1],te)<=0)return te;for(var ve=0,we=D.length;ve<we;){var _e=ve+we>>>1;ye(D[_e],te)<=0?ve=_e+1:we=_e}return D.splice(ve,0,te),be?D.pop():null}(FW={})[1]=new DW(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),FW[3]=new DW(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),FW[4]=new DW(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),FW[5]=new DW(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),FW[42]=new DW(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),FW[10]=new DW(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),FW[69]=new DW(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),FW[42161]=new DW(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),FW[421611]=new DW(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether");var LW=Fz.BigInt(Number.MAX_SAFE_INTEGER),UW=Fz.BigInt(0),$W=Fz.BigInt(1),qW=Fz.BigInt(2);var GW=[{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"}],jW=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"},{internalType:"address",name:"_tokenDescriptor_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"approved",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"operator",type:"address"},{indexed:!1,internalType:"bool",name:"approved",type:"bool"}],name:"ApprovalForAll",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Collect",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"DecreaseLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"IncreaseLiquidity",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PERMIT_TYPEHASH",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"baseURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"burn",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint128",name:"amount0Max",type:"uint128"},{internalType:"uint128",name:"amount1Max",type:"uint128"}],internalType:"struct INonfungiblePositionManager.CollectParams",name:"params",type:"tuple"}],name:"collect",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"createAndInitializePoolIfNecessary",outputs:[{internalType:"address",name:"pool",type:"address"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.DecreaseLiquidityParams",name:"params",type:"tuple"}],name:"decreaseLiquidity",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Desired",type:"uint256"},{internalType:"uint256",name:"amount1Desired",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Desired",type:"uint256"},{internalType:"uint256",name:"amount1Desired",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"}],internalType:"struct INonfungiblePositionManager.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"positions",outputs:[{internalType:"uint96",name:"nonce",type:"uint96"},{internalType:"address",name:"operator",type:"address"},{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"},{internalType:"uint128",name:"tokensOwed0",type:"uint128"},{internalType:"uint128",name:"tokensOwed1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"safeTransferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint256",name:"index",type:"uint256"}],name:"tokenOfOwnerByIndex",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"tokenURI",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"transferFrom",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount0Owed",type:"uint256"},{internalType:"uint256",name:"amount1Owed",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3MintCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}],HW=[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"}],zW=[{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"}],WW=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountOut",type:"uint256"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"path",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"view",type:"function"}],VW=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountIn",type:"uint256"}],name:"quoteExactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160[]",name:"sqrtPriceX96AfterList",type:"uint160[]"},{internalType:"uint32[]",name:"initializedTicksCrossedList",type:"uint32[]"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactInputSingleParams",name:"params",type:"tuple"}],name:"quoteExactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"uint256",name:"amountOut",type:"uint256"}],name:"quoteExactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160[]",name:"sqrtPriceX96AfterList",type:"uint160[]"},{internalType:"uint32[]",name:"initializedTicksCrossedList",type:"uint32[]"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IQuoterV2.QuoteExactOutputSingleParams",name:"params",type:"tuple"}],name:"quoteExactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint160",name:"sqrtPriceX96After",type:"uint160"},{internalType:"uint32",name:"initializedTicksCrossed",type:"uint32"},{internalType:"uint256",name:"gasEstimate",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"path",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"view",type:"function"}],KW=[{inputs:[{internalType:"contract IUniswapV3Factory",name:"_factory",type:"address"},{internalType:"contract INonfungiblePositionManager",name:"_nonfungiblePositionManager",type:"address"},{internalType:"uint256",name:"_maxIncentiveStartLeadTime",type:"uint256"},{internalType:"uint256",name:"_maxIncentiveDuration",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"address",name:"oldOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"DepositTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{indexed:!0,internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{indexed:!1,internalType:"uint256",name:"startTime",type:"uint256"},{indexed:!1,internalType:"uint256",name:"endTime",type:"uint256"},{indexed:!1,internalType:"address",name:"refundee",type:"address"},{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"IncentiveCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"refund",type:"uint256"}],name:"IncentiveEnded",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"reward",type:"uint256"}],name:"RewardClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"}],name:"TokenStaked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"tokenId",type:"uint256"},{indexed:!0,internalType:"bytes32",name:"incentiveId",type:"bytes32"}],name:"TokenUnstaked",type:"event"},{inputs:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amountRequested",type:"uint256"}],name:"claimReward",outputs:[{internalType:"uint256",name:"reward",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"reward",type:"uint256"}],name:"createIncentive",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"deposits",outputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"uint48",name:"numberOfStakes",type:"uint48"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"}],name:"endIncentive",outputs:[{internalType:"uint256",name:"refund",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"contract IUniswapV3Factory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getRewardInfo",outputs:[{internalType:"uint256",name:"reward",type:"uint256"},{internalType:"uint160",name:"secondsInsideX128",type:"uint160"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"incentives",outputs:[{internalType:"uint256",name:"totalRewardUnclaimed",type:"uint256"},{internalType:"uint160",name:"totalSecondsClaimedX128",type:"uint160"},{internalType:"uint96",name:"numberOfStakes",type:"uint96"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxIncentiveDuration",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxIncentiveStartLeadTime",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"nonfungiblePositionManager",outputs:[{internalType:"contract INonfungiblePositionManager",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"},{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"onERC721Received",outputs:[{internalType:"bytes4",name:"",type:"bytes4"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20Minimal",name:"",type:"address"},{internalType:"address",name:"",type:"address"}],name:"rewards",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"stakeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"bytes32",name:"incentiveId",type:"bytes32"}],name:"stakes",outputs:[{internalType:"uint160",name:"secondsPerLiquidityInsideInitialX128",type:"uint160"},{internalType:"uint128",name:"liquidity",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"transferDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"contract IERC20Minimal",name:"rewardToken",type:"address"},{internalType:"contract IUniswapV3Pool",name:"pool",type:"address"},{internalType:"uint256",name:"startTime",type:"uint256"},{internalType:"uint256",name:"endTime",type:"uint256"},{internalType:"address",name:"refundee",type:"address"}],internalType:"struct IUniswapV3Staker.IncentiveKey",name:"key",type:"tuple"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"unstakeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"address",name:"to",type:"address"},{internalType:"bytes",name:"data",type:"bytes"}],name:"withdrawToken",outputs:[],stateMutability:"nonpayable",type:"function"}],JW=[{inputs:[{internalType:"address",name:"_factory",type:"address"},{internalType:"address",name:"_WETH9",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"WETH9",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct ISwapRouter.ExactInputParams",name:"params",type:"tuple"}],name:"exactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactInputSingleParams",name:"params",type:"tuple"}],name:"exactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct ISwapRouter.ExactOutputParams",name:"params",type:"tuple"}],name:"exactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct ISwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"_data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{stateMutability:"payable",type:"receive"}];function asyncGeneratorStep(D,te,he,ye,be,ve,we){try{var _e=D[ve](we),Pe=_e.value}catch(D){return void he(D)}_e.done?te(Pe):Promise.resolve(Pe).then(ye,be)}function _asyncToGenerator(D){return function(){var te=this,he=arguments;return new Promise((function(ye,be){var ve=D.apply(te,he);function _next(D){asyncGeneratorStep(ve,ye,be,_next,_throw,"next",D)}function _throw(D){asyncGeneratorStep(ve,ye,be,_next,_throw,"throw",D)}_next(void 0)}))}}function _createClass$3(D,te,he){return te&&function _defineProperties$3(D,te){for(var he=0;he<te.length;he++){var ye=te[he];ye.enumerable=ye.enumerable||!1,ye.configurable=!0,"value"in ye&&(ye.writable=!0),Object.defineProperty(D,ye.key,ye)}}(D.prototype,te),D}function _extends$2(){return _extends$2=Object.assign||function(D){for(var te=1;te<arguments.length;te++){var he=arguments[te];for(var ye in he)Object.prototype.hasOwnProperty.call(he,ye)&&(D[ye]=he[ye])}return D},_extends$2.apply(this,arguments)}function _arrayLikeToArray$1(D,te){(null==te||te>D.length)&&(te=D.length);for(var he=0,ye=new Array(te);he<te;he++)ye[he]=D[he];return ye}function _createForOfIteratorHelperLoose$1(D,te){var he;if("undefined"==typeof Symbol||null==D[Symbol.iterator]){if(Array.isArray(D)||(he=function _unsupportedIterableToArray$1(D,te){if(D){if("string"==typeof D)return _arrayLikeToArray$1(D,te);var he=Object.prototype.toString.call(D).slice(8,-1);return"Object"===he&&D.constructor&&(he=D.constructor.name),"Map"===he||"Set"===he?Array.from(D):"Arguments"===he||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(he)?_arrayLikeToArray$1(D,te):void 0}}(D))||te){he&&(D=he);var ye=0;return function(){return ye>=D.length?{done:!0}:{done:!1,value:D[ye++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(he=D[Symbol.iterator]()).next.bind(he)}var XW,QW,ZW=function createCommonjsModule(D,te){return D(te={exports:{}},te.exports),te.exports}((function(D){var te=function(D){var te,he=Object.prototype,ye=he.hasOwnProperty,be="function"==typeof Symbol?Symbol:{},ve=be.iterator||"@@iterator",we=be.asyncIterator||"@@asyncIterator",_e=be.toStringTag||"@@toStringTag";function define(D,te,he){return Object.defineProperty(D,te,{value:he,enumerable:!0,configurable:!0,writable:!0}),D[te]}try{define({},"")}catch(D){define=function(D,te,he){return D[te]=he}}function wrap(D,te,he,ye){var be=te&&te.prototype instanceof Generator?te:Generator,ve=Object.create(be.prototype),we=new Context(ye||[]);return ve._invoke=function makeInvokeMethod(D,te,he){var ye=Pe;return function invoke(be,ve){if(ye===Re)throw new Error("Generator is already running");if(ye===ke){if("throw"===be)throw ve;return doneResult()}for(he.method=be,he.arg=ve;;){var we=he.delegate;if(we){var _e=maybeInvokeDelegate(we,he);if(_e){if(_e===Oe)continue;return _e}}if("next"===he.method)he.sent=he._sent=he.arg;else if("throw"===he.method){if(ye===Pe)throw ye=ke,he.arg;he.dispatchException(he.arg)}else"return"===he.method&&he.abrupt("return",he.arg);ye=Re;var xe=tryCatch(D,te,he);if("normal"===xe.type){if(ye=he.done?ke:Ie,xe.arg===Oe)continue;return{value:xe.arg,done:he.done}}"throw"===xe.type&&(ye=ke,he.method="throw",he.arg=xe.arg)}}}(D,he,we),ve}function tryCatch(D,te,he){try{return{type:"normal",arg:D.call(te,he)}}catch(D){return{type:"throw",arg:D}}}D.wrap=wrap;var Pe="suspendedStart",Ie="suspendedYield",Re="executing",ke="completed",Oe={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var xe={};xe[ve]=function(){return this};var Be=Object.getPrototypeOf,Fe=Be&&Be(Be(values([])));Fe&&Fe!==he&&ye.call(Fe,ve)&&(xe=Fe);var De=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(xe);function defineIteratorMethods(D){["next","throw","return"].forEach((function(te){define(D,te,(function(D){return this._invoke(te,D)}))}))}function AsyncIterator(D,te){function invoke(he,be,ve,we){var _e=tryCatch(D[he],D,be);if("throw"!==_e.type){var Pe=_e.arg,Ie=Pe.value;return Ie&&"object"==typeof Ie&&ye.call(Ie,"__await")?te.resolve(Ie.__await).then((function(D){invoke("next",D,ve,we)}),(function(D){invoke("throw",D,ve,we)})):te.resolve(Ie).then((function(D){Pe.value=D,ve(Pe)}),(function(D){return invoke("throw",D,ve,we)}))}we(_e.arg)}var he;this._invoke=function enqueue(D,ye){function callInvokeWithMethodAndArg(){return new te((function(te,he){invoke(D,ye,te,he)}))}return he=he?he.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}}function maybeInvokeDelegate(D,he){var ye=D.iterator[he.method];if(ye===te){if(he.delegate=null,"throw"===he.method){if(D.iterator.return&&(he.method="return",he.arg=te,maybeInvokeDelegate(D,he),"throw"===he.method))return Oe;he.method="throw",he.arg=new TypeError("The iterator does not provide a 'throw' method")}return Oe}var be=tryCatch(ye,D.iterator,he.arg);if("throw"===be.type)return he.method="throw",he.arg=be.arg,he.delegate=null,Oe;var ve=be.arg;return ve?ve.done?(he[D.resultName]=ve.value,he.next=D.nextLoc,"return"!==he.method&&(he.method="next",he.arg=te),he.delegate=null,Oe):ve:(he.method="throw",he.arg=new TypeError("iterator result is not an object"),he.delegate=null,Oe)}function pushTryEntry(D){var te={tryLoc:D[0]};1 in D&&(te.catchLoc=D[1]),2 in D&&(te.finallyLoc=D[2],te.afterLoc=D[3]),this.tryEntries.push(te)}function resetTryEntry(D){var te=D.completion||{};te.type="normal",delete te.arg,D.completion=te}function Context(D){this.tryEntries=[{tryLoc:"root"}],D.forEach(pushTryEntry,this),this.reset(!0)}function values(D){if(D){var he=D[ve];if(he)return he.call(D);if("function"==typeof D.next)return D;if(!isNaN(D.length)){var be=-1,we=function next(){for(;++be<D.length;)if(ye.call(D,be))return next.value=D[be],next.done=!1,next;return next.value=te,next.done=!0,next};return we.next=we}}return{next:doneResult}}function doneResult(){return{value:te,done:!0}}return GeneratorFunction.prototype=De.constructor=GeneratorFunctionPrototype,GeneratorFunctionPrototype.constructor=GeneratorFunction,GeneratorFunction.displayName=define(GeneratorFunctionPrototype,_e,"GeneratorFunction"),D.isGeneratorFunction=function(D){var te="function"==typeof D&&D.constructor;return!!te&&(te===GeneratorFunction||"GeneratorFunction"===(te.displayName||te.name))},D.mark=function(D){return Object.setPrototypeOf?Object.setPrototypeOf(D,GeneratorFunctionPrototype):(D.__proto__=GeneratorFunctionPrototype,define(D,_e,"GeneratorFunction")),D.prototype=Object.create(De),D},D.awrap=function(D){return{__await:D}},defineIteratorMethods(AsyncIterator.prototype),AsyncIterator.prototype[we]=function(){return this},D.AsyncIterator=AsyncIterator,D.async=function(te,he,ye,be,ve){void 0===ve&&(ve=Promise);var we=new AsyncIterator(wrap(te,he,ye,be),ve);return D.isGeneratorFunction(he)?we:we.next().then((function(D){return D.done?D.value:we.next()}))},defineIteratorMethods(De),define(De,_e,"Generator"),De[ve]=function(){return this},De.toString=function(){return"[object Generator]"},D.keys=function(D){var te=[];for(var he in D)te.push(he);return te.reverse(),function next(){for(;te.length;){var he=te.pop();if(he in D)return next.value=he,next.done=!1,next}return next.done=!0,next}},D.values=values,Context.prototype={constructor:Context,reset:function(D){if(this.prev=0,this.next=0,this.sent=this._sent=te,this.done=!1,this.delegate=null,this.method="next",this.arg=te,this.tryEntries.forEach(resetTryEntry),!D)for(var he in this)"t"===he.charAt(0)&&ye.call(this,he)&&!isNaN(+he.slice(1))&&(this[he]=te)},stop:function(){this.done=!0;var D=this.tryEntries[0].completion;if("throw"===D.type)throw D.arg;return this.rval},dispatchException:function(D){if(this.done)throw D;var he=this;function handle(ye,be){return we.type="throw",we.arg=D,he.next=ye,be&&(he.method="next",he.arg=te),!!be}for(var be=this.tryEntries.length-1;be>=0;--be){var ve=this.tryEntries[be],we=ve.completion;if("root"===ve.tryLoc)return handle("end");if(ve.tryLoc<=this.prev){var _e=ye.call(ve,"catchLoc"),Pe=ye.call(ve,"finallyLoc");if(_e&&Pe){if(this.prev<ve.catchLoc)return handle(ve.catchLoc,!0);if(this.prev<ve.finallyLoc)return handle(ve.finallyLoc)}else if(_e){if(this.prev<ve.catchLoc)return handle(ve.catchLoc,!0)}else{if(!Pe)throw new Error("try statement without catch or finally");if(this.prev<ve.finallyLoc)return handle(ve.finallyLoc)}}}},abrupt:function(D,te){for(var he=this.tryEntries.length-1;he>=0;--he){var be=this.tryEntries[he];if(be.tryLoc<=this.prev&&ye.call(be,"finallyLoc")&&this.prev<be.finallyLoc){var ve=be;break}}ve&&("break"===D||"continue"===D)&&ve.tryLoc<=te&&te<=ve.finallyLoc&&(ve=null);var we=ve?ve.completion:{};return we.type=D,we.arg=te,ve?(this.method="next",this.next=ve.finallyLoc,Oe):this.complete(we)},complete:function(D,te){if("throw"===D.type)throw D.arg;return"break"===D.type||"continue"===D.type?this.next=D.arg:"return"===D.type?(this.rval=this.arg=D.arg,this.method="return",this.next="end"):"normal"===D.type&&te&&(this.next=te),Oe},finish:function(D){for(var te=this.tryEntries.length-1;te>=0;--te){var he=this.tryEntries[te];if(he.finallyLoc===D)return this.complete(he.completion,he.afterLoc),resetTryEntry(he),Oe}},catch:function(D){for(var te=this.tryEntries.length-1;te>=0;--te){var he=this.tryEntries[te];if(he.tryLoc===D){var ye=he.completion;if("throw"===ye.type){var be=ye.arg;resetTryEntry(he)}return be}}throw new Error("illegal catch attempt")},delegateYield:function(D,he,ye){return this.delegate={iterator:values(D),resultName:he,nextLoc:ye},"next"===this.method&&(this.arg=te),Oe}},D}(D.exports);try{regeneratorRuntime=te}catch(D){Function("r","regeneratorRuntime = r")(te)}})),YW="0x1F98431c8aD98523631AE4a59f267346ea31F984",eV="0x0000000000000000000000000000000000000000",tV="0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54";!function(D){D[D.LOWEST=100]="LOWEST",D[D.LOW=500]="LOW",D[D.MEDIUM=3e3]="MEDIUM",D[D.HIGH=1e4]="HIGH"}(QW||(QW={}));var rV=((XW={})[QW.LOWEST]=1,XW[QW.LOW]=10,XW[QW.MEDIUM]=60,XW[QW.HIGH]=200,XW),nV=Fz.BigInt(-1),aV=Fz.BigInt(0),iV=Fz.BigInt(1),sV=Fz.exponentiate(Fz.BigInt(2),Fz.BigInt(96)),oV=Fz.exponentiate(sV,Fz.BigInt(2));function computePoolAddress$1(D){var te=D.factoryAddress,he=D.tokenA,ye=D.tokenB,be=D.fee,ve=D.initCodeHashManualOverride,we=he.sortsBefore(ye)?[he,ye]:[ye,he],_e=we[0],Pe=we[1];return getCreate2Address(te,keccak256$2(["bytes"],[vo.encode(["address","address","uint24"],[_e.address,Pe.address,be])]),null!=ve?ve:tV)}var cV=function(){function LiquidityMath(){}return LiquidityMath.addDelta=function addDelta(D,te){return Fz.lessThan(te,aV)?Fz.subtract(D,Fz.multiply(te,nV)):Fz.add(D,te)},LiquidityMath}(),dV=function(){function FullMath(){}return FullMath.mulDivRoundingUp=function mulDivRoundingUp(D,te,he){var ye=Fz.multiply(D,te),be=Fz.divide(ye,he);return Fz.notEqual(Fz.remainder(ye,he),aV)&&(be=Fz.add(be,iV)),be},FullMath}(),uV=Fz.subtract(Fz.exponentiate(Fz.BigInt(2),Fz.BigInt(160)),iV);function multiplyIn256(D,te){var he=Fz.multiply(D,te);return Fz.bitwiseAnd(he,AW)}var fV=function(){function SqrtPriceMath(){}return SqrtPriceMath.getAmount0Delta=function getAmount0Delta(D,te,he,ye){if(Fz.greaterThan(D,te)){var be=[te,D];D=be[0],te=be[1]}var ve=Fz.leftShift(he,Fz.BigInt(96)),we=Fz.subtract(te,D);return ye?dV.mulDivRoundingUp(dV.mulDivRoundingUp(ve,we,te),iV,D):Fz.divide(Fz.divide(Fz.multiply(ve,we),te),D)},SqrtPriceMath.getAmount1Delta=function getAmount1Delta(D,te,he,ye){if(Fz.greaterThan(D,te)){var be=[te,D];D=be[0],te=be[1]}return ye?dV.mulDivRoundingUp(he,Fz.subtract(te,D),sV):Fz.divide(Fz.multiply(he,Fz.subtract(te,D)),sV)},SqrtPriceMath.getNextSqrtPriceFromInput=function getNextSqrtPriceFromInput(D,te,he,ye){return Fz.greaterThan(D,aV)||invariant(),Fz.greaterThan(te,aV)||invariant(),ye?this.getNextSqrtPriceFromAmount0RoundingUp(D,te,he,!0):this.getNextSqrtPriceFromAmount1RoundingDown(D,te,he,!0)},SqrtPriceMath.getNextSqrtPriceFromOutput=function getNextSqrtPriceFromOutput(D,te,he,ye){return Fz.greaterThan(D,aV)||invariant(),Fz.greaterThan(te,aV)||invariant(),ye?this.getNextSqrtPriceFromAmount1RoundingDown(D,te,he,!1):this.getNextSqrtPriceFromAmount0RoundingUp(D,te,he,!1)},SqrtPriceMath.getNextSqrtPriceFromAmount0RoundingUp=function getNextSqrtPriceFromAmount0RoundingUp(D,te,he,ye){if(Fz.equal(he,aV))return D;var be=Fz.leftShift(te,Fz.BigInt(96));if(ye){var ve=multiplyIn256(he,D);if(Fz.equal(Fz.divide(ve,he),D)){var we=function addIn256(D,te){var he=Fz.add(D,te);return Fz.bitwiseAnd(he,AW)}(be,ve);if(Fz.greaterThanOrEqual(we,be))return dV.mulDivRoundingUp(be,D,we)}return dV.mulDivRoundingUp(be,iV,Fz.add(Fz.divide(be,D),he))}var _e=multiplyIn256(he,D);Fz.equal(Fz.divide(_e,he),D)||invariant(),Fz.greaterThan(be,_e)||invariant();var Pe=Fz.subtract(be,_e);return dV.mulDivRoundingUp(be,D,Pe)},SqrtPriceMath.getNextSqrtPriceFromAmount1RoundingDown=function getNextSqrtPriceFromAmount1RoundingDown(D,te,he,ye){if(ye){var be=Fz.lessThanOrEqual(he,uV)?Fz.divide(Fz.leftShift(he,Fz.BigInt(96)),te):Fz.divide(Fz.multiply(he,sV),te);return Fz.add(D,be)}var ve=dV.mulDivRoundingUp(he,sV,te);return Fz.greaterThan(D,ve)||invariant(),Fz.subtract(D,ve)},SqrtPriceMath}(),lV=Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(6)),pV=function(){function SwapMath(){}return SwapMath.computeSwapStep=function computeSwapStep(D,te,he,ye,be){var ve={},we=Fz.greaterThanOrEqual(D,te),_e=Fz.greaterThanOrEqual(ye,aV);if(_e){var Pe=Fz.divide(Fz.multiply(ye,Fz.subtract(lV,Fz.BigInt(be))),lV);ve.amountIn=we?fV.getAmount0Delta(te,D,he,!0):fV.getAmount1Delta(D,te,he,!0),Fz.greaterThanOrEqual(Pe,ve.amountIn)?ve.sqrtRatioNextX96=te:ve.sqrtRatioNextX96=fV.getNextSqrtPriceFromInput(D,he,Pe,we)}else ve.amountOut=we?fV.getAmount1Delta(te,D,he,!1):fV.getAmount0Delta(D,te,he,!1),Fz.greaterThanOrEqual(Fz.multiply(ye,nV),ve.amountOut)?ve.sqrtRatioNextX96=te:ve.sqrtRatioNextX96=fV.getNextSqrtPriceFromOutput(D,he,Fz.multiply(ye,nV),we);var Ie=Fz.equal(te,ve.sqrtRatioNextX96);return we?(ve.amountIn=Ie&&_e?ve.amountIn:fV.getAmount0Delta(ve.sqrtRatioNextX96,D,he,!0),ve.amountOut=Ie&&!_e?ve.amountOut:fV.getAmount1Delta(ve.sqrtRatioNextX96,D,he,!1)):(ve.amountIn=Ie&&_e?ve.amountIn:fV.getAmount1Delta(D,ve.sqrtRatioNextX96,he,!0),ve.amountOut=Ie&&!_e?ve.amountOut:fV.getAmount0Delta(D,ve.sqrtRatioNextX96,he,!1)),!_e&&Fz.greaterThan(ve.amountOut,Fz.multiply(ye,nV))&&(ve.amountOut=Fz.multiply(ye,nV)),_e&&Fz.notEqual(ve.sqrtRatioNextX96,te)?ve.feeAmount=Fz.subtract(ye,ve.amountIn):ve.feeAmount=dV.mulDivRoundingUp(ve.amountIn,Fz.BigInt(be),Fz.subtract(lV,Fz.BigInt(be))),[ve.sqrtRatioNextX96,ve.amountIn,ve.amountOut,ve.feeAmount]},SwapMath}(),hV=Fz.BigInt(2),yV=[128,64,32,16,8,4,2,1].map((function(D){return[D,Fz.exponentiate(hV,Fz.BigInt(D))]}));function mostSignificantBit(D){Fz.greaterThan(D,aV)||invariant(),Fz.lessThanOrEqual(D,AW)||invariant();for(var te,he=0,ye=_createForOfIteratorHelperLoose$1(yV);!(te=ye()).done;){var be=te.value,ve=be[0],we=be[1];Fz.greaterThanOrEqual(D,we)&&(D=Fz.signedRightShift(D,Fz.BigInt(ve)),he+=ve)}return he}function mulShift(D,te){return Fz.signedRightShift(Fz.multiply(D,Fz.BigInt(te)),Fz.BigInt(128))}var mV=Fz.exponentiate(Fz.BigInt(2),Fz.BigInt(32)),bV=function(){function TickMath(){}return TickMath.getSqrtRatioAtTick=function getSqrtRatioAtTick(D){D>=TickMath.MIN_TICK&&D<=TickMath.MAX_TICK&&Number.isInteger(D)||invariant();var te=D<0?-1*D:D,he=0!=(1&te)?Fz.BigInt("0xfffcb933bd6fad37aa2d162d1a594001"):Fz.BigInt("0x100000000000000000000000000000000");return 0!=(2&te)&&(he=mulShift(he,"0xfff97272373d413259a46990580e213a")),0!=(4&te)&&(he=mulShift(he,"0xfff2e50f5f656932ef12357cf3c7fdcc")),0!=(8&te)&&(he=mulShift(he,"0xffe5caca7e10e4e61c3624eaa0941cd0")),0!=(16&te)&&(he=mulShift(he,"0xffcb9843d60f6159c9db58835c926644")),0!=(32&te)&&(he=mulShift(he,"0xff973b41fa98c081472e6896dfb254c0")),0!=(64&te)&&(he=mulShift(he,"0xff2ea16466c96a3843ec78b326b52861")),0!=(128&te)&&(he=mulShift(he,"0xfe5dee046a99a2a811c461f1969c3053")),0!=(256&te)&&(he=mulShift(he,"0xfcbe86c7900a88aedcffc83b479aa3a4")),0!=(512&te)&&(he=mulShift(he,"0xf987a7253ac413176f2b074cf7815e54")),0!=(1024&te)&&(he=mulShift(he,"0xf3392b0822b70005940c7a398e4b70f3")),0!=(2048&te)&&(he=mulShift(he,"0xe7159475a2c29b7443b29c7fa6e889d9")),0!=(4096&te)&&(he=mulShift(he,"0xd097f3bdfd2022b8845ad8f792aa5825")),0!=(8192&te)&&(he=mulShift(he,"0xa9f746462d870fdf8a65dc1f90e061e5")),0!=(16384&te)&&(he=mulShift(he,"0x70d869a156d2a1b890bb3df62baf32f7")),0!=(32768&te)&&(he=mulShift(he,"0x31be135f97d08fd981231505542fcfa6")),0!=(65536&te)&&(he=mulShift(he,"0x9aa508b5b7a84e1c677de54f3e99bc9")),0!=(131072&te)&&(he=mulShift(he,"0x5d6af8dedb81196699c329225ee604")),0!=(262144&te)&&(he=mulShift(he,"0x2216e584f5fa1ea926041bedfe98")),0!=(524288&te)&&(he=mulShift(he,"0x48a170391f7dc42444e8fa2")),D>0&&(he=Fz.divide(AW,he)),Fz.greaterThan(Fz.remainder(he,mV),aV)?Fz.add(Fz.divide(he,mV),iV):Fz.divide(he,mV)},TickMath.getTickAtSqrtRatio=function getTickAtSqrtRatio(D){Fz.greaterThanOrEqual(D,TickMath.MIN_SQRT_RATIO)&&Fz.lessThan(D,TickMath.MAX_SQRT_RATIO)||invariant();var te,he=Fz.leftShift(D,Fz.BigInt(32)),ye=mostSignificantBit(he);te=Fz.greaterThanOrEqual(Fz.BigInt(ye),Fz.BigInt(128))?Fz.signedRightShift(he,Fz.BigInt(ye-127)):Fz.leftShift(he,Fz.BigInt(127-ye));for(var be=Fz.leftShift(Fz.subtract(Fz.BigInt(ye),Fz.BigInt(128)),Fz.BigInt(64)),ve=0;ve<14;ve++){te=Fz.signedRightShift(Fz.multiply(te,te),Fz.BigInt(127));var we=Fz.signedRightShift(te,Fz.BigInt(128));be=Fz.bitwiseOr(be,Fz.leftShift(we,Fz.BigInt(63-ve))),te=Fz.signedRightShift(te,we)}var _e=Fz.multiply(be,Fz.BigInt("255738958999603826347141")),Pe=Fz.toNumber(Fz.signedRightShift(Fz.subtract(_e,Fz.BigInt("3402992956809132418596140100660247210")),Fz.BigInt(128))),Ie=Fz.toNumber(Fz.signedRightShift(Fz.add(_e,Fz.BigInt("291339464771989622907027621153398088495")),Fz.BigInt(128)));return Pe===Ie?Pe:Fz.lessThanOrEqual(TickMath.getSqrtRatioAtTick(Ie),D)?Ie:Pe},TickMath}();bV.MIN_TICK=-887272,bV.MAX_TICK=-bV.MIN_TICK,bV.MIN_SQRT_RATIO=Fz.BigInt("4295128739"),bV.MAX_SQRT_RATIO=Fz.BigInt("1461446703485210103287273052203988822378723970342");var gV=function(){function NoTickDataProvider(){}var D=NoTickDataProvider.prototype;return D.getTick=function(){var D=_asyncToGenerator(ZW.mark((function _callee(D){return ZW.wrap((function _callee$(D){for(;;)switch(D.prev=D.next){case 0:throw new Error(NoTickDataProvider.ERROR_MESSAGE);case 1:case"end":return D.stop()}}),_callee)})));return function getTick(te){return D.apply(this,arguments)}}(),D.nextInitializedTickWithinOneWord=function(){var D=_asyncToGenerator(ZW.mark((function _callee2(D,te,he){return ZW.wrap((function _callee2$(D){for(;;)switch(D.prev=D.next){case 0:throw new Error(NoTickDataProvider.ERROR_MESSAGE);case 1:case"end":return D.stop()}}),_callee2)})));return function nextInitializedTickWithinOneWord(te,he,ye){return D.apply(this,arguments)}}(),NoTickDataProvider}();function isSorted(D,te){for(var he=0;he<D.length-1;he++)if(te(D[he],D[he+1])>0)return!1;return!0}function tickComparator(D,te){return D.index-te.index}gV.ERROR_MESSAGE="No tick data provider was given";var vV=function(){function TickList(){}return TickList.validateList=function validateList(D,te){te>0||invariant(),D.every((function(D){return D.index%te==0}))||invariant(),Fz.equal(D.reduce((function(D,te){var he=te.liquidityNet;return Fz.add(D,he)}),aV),aV)||invariant(),isSorted(D,tickComparator)||invariant()},TickList.isBelowSmallest=function isBelowSmallest(D,te){return D.length>0||invariant(),te<D[0].index},TickList.isAtOrAboveLargest=function isAtOrAboveLargest(D,te){return D.length>0||invariant(),te>=D[D.length-1].index},TickList.getTick=function getTick(D,te){var he=D[this.binarySearch(D,te)];return he.index!==te&&invariant(),he},TickList.binarySearch=function binarySearch(D,te){this.isBelowSmallest(D,te)&&invariant();for(var he,ye=0,be=D.length-1;;){if(D[he=Math.floor((ye+be)/2)].index<=te&&(he===D.length-1||D[he+1].index>te))return he;D[he].index<te?ye=he+1:be=he-1}},TickList.nextInitializedTick=function nextInitializedTick(D,te,he){return he?(TickList.isBelowSmallest(D,te)&&invariant(),TickList.isAtOrAboveLargest(D,te)?D[D.length-1]:D[this.binarySearch(D,te)]):(this.isAtOrAboveLargest(D,te)&&invariant(),this.isBelowSmallest(D,te)?D[0]:D[this.binarySearch(D,te)+1])},TickList.nextInitializedTickWithinOneWord=function nextInitializedTickWithinOneWord(D,te,he,ye){var be=Math.floor(te/ye);if(he){var ve=(be>>8<<8)*ye;if(TickList.isBelowSmallest(D,te))return[ve,!1];var we=TickList.nextInitializedTick(D,te,he).index,_e=Math.max(ve,we);return[_e,_e===we]}var Pe=(((be+1>>8)+1<<8)-1)*ye;if(this.isAtOrAboveLargest(D,te))return[Pe,!1];var Ie=this.nextInitializedTick(D,te,he).index,Re=Math.min(Pe,Ie);return[Re,Re===Ie]},TickList}();function toHex$1(D){var te=Fz.BigInt(D).toString(16);return te.length%2!=0&&(te="0"+te),"0x"+te}function encodeRouteToPath(D,te){var he=D.input.wrapped,ye=D.pools.reduce((function(D,te,he){var ye=D.inputToken,be=D.path,ve=D.types,we=te.token0.equals(ye)?te.token1:te.token0;return 0===he?{inputToken:we,types:["address","uint24","address"],path:[ye.address,te.fee,we.address]}:{inputToken:we,types:[].concat(ve,["uint24","address"]),path:[].concat(be,[te.fee,we.address])}}),{inputToken:he,path:[],types:[]}),be=ye.path,ve=ye.types;return te?pack$2(ve.reverse(),be.reverse()):pack$2(ve,be)}function encodeSqrtRatioX96(D,te){var he=Fz.leftShift(Fz.BigInt(D),Fz.BigInt(192)),ye=Fz.BigInt(te);return function sqrt$2(D){if(Fz.greaterThanOrEqual(D,UW)||invariant(),Fz.lessThan(D,LW))return Fz.BigInt(Math.floor(Math.sqrt(Fz.toNumber(D))));var te,he;for(te=D,he=Fz.add(Fz.divide(D,qW),$W);Fz.lessThan(he,te);)te=he,he=Fz.divide(Fz.add(Fz.divide(D,he),he),qW);return te}(Fz.divide(he,ye))}function maxLiquidityForAmount0Imprecise(D,te,he){if(Fz.greaterThan(D,te)){var ye=[te,D];D=ye[0],te=ye[1]}var be=Fz.divide(Fz.multiply(D,te),sV);return Fz.divide(Fz.multiply(Fz.BigInt(he),be),Fz.subtract(te,D))}function maxLiquidityForAmount0Precise(D,te,he){if(Fz.greaterThan(D,te)){var ye=[te,D];D=ye[0],te=ye[1]}var be=Fz.multiply(Fz.multiply(Fz.BigInt(he),D),te),ve=Fz.multiply(sV,Fz.subtract(te,D));return Fz.divide(be,ve)}function maxLiquidityForAmount1(D,te,he){if(Fz.greaterThan(D,te)){var ye=[te,D];D=ye[0],te=ye[1]}return Fz.divide(Fz.multiply(Fz.BigInt(he),sV),Fz.subtract(te,D))}function maxLiquidityForAmounts(D,te,he,ye,be,ve){if(Fz.greaterThan(te,he)){var we=[he,te];te=we[0],he=we[1]}var _e=ve?maxLiquidityForAmount0Precise:maxLiquidityForAmount0Imprecise;if(Fz.lessThanOrEqual(D,te))return _e(te,he,ye);if(Fz.lessThan(D,he)){var Pe=_e(D,he,ye),Ie=maxLiquidityForAmount1(te,D,be);return Fz.lessThan(Pe,Ie)?Pe:Ie}return maxLiquidityForAmount1(te,he,be)}var wV=Fz.exponentiate(Fz.BigInt(2),Fz.BigInt(128)),_V=function(){function PositionLibrary(){}return PositionLibrary.getTokensOwed=function getTokensOwed(D,te,he,ye,be){return[Fz.divide(Fz.multiply(subIn256(ye,D),he),wV),Fz.divide(Fz.multiply(subIn256(be,te),he),wV)]},PositionLibrary}();function tickToPrice(D,te,he){var ye=bV.getSqrtRatioAtTick(he),be=Fz.multiply(ye,ye);return D.sortsBefore(te)?new NW(D,te,oV,be):new NW(D,te,be,oV)}var TV=Fz.exponentiate(Fz.BigInt(2),Fz.BigInt(256));function subIn256(D,te){var he=Fz.subtract(D,te);return Fz.lessThan(he,aV)?Fz.add(TV,he):he}var AV=function(){function TickLibrary(){}return TickLibrary.getFeeGrowthInside=function getFeeGrowthInside(D,te,he,ye,be,ve,we){var _e,Pe,Ie,Re;return be>=he?(_e=D.feeGrowthOutside0X128,Pe=D.feeGrowthOutside1X128):(_e=subIn256(ve,D.feeGrowthOutside0X128),Pe=subIn256(we,D.feeGrowthOutside1X128)),be<ye?(Ie=te.feeGrowthOutside0X128,Re=te.feeGrowthOutside1X128):(Ie=subIn256(ve,te.feeGrowthOutside0X128),Re=subIn256(we,te.feeGrowthOutside1X128)),[subIn256(subIn256(ve,_e),Ie),subIn256(subIn256(we,Pe),Re)]},TickLibrary}(),EV=function Tick(D){var te=D.index,he=D.liquidityGross,ye=D.liquidityNet;te>=bV.MIN_TICK&&te<=bV.MAX_TICK||invariant(),this.index=te,this.liquidityGross=Fz.BigInt(he),this.liquidityNet=Fz.BigInt(ye)},PV=function(){function TickListDataProvider(D,te){var he=D.map((function(D){return D instanceof EV?D:new EV(D)}));vV.validateList(he,te),this.ticks=he}var D=TickListDataProvider.prototype;return D.getTick=function(){var D=_asyncToGenerator(ZW.mark((function _callee(D){return ZW.wrap((function _callee$(te){for(;;)switch(te.prev=te.next){case 0:return te.abrupt("return",vV.getTick(this.ticks,D));case 1:case"end":return te.stop()}}),_callee,this)})));return function getTick(te){return D.apply(this,arguments)}}(),D.nextInitializedTickWithinOneWord=function(){var D=_asyncToGenerator(ZW.mark((function _callee2(D,te,he){return ZW.wrap((function _callee2$(ye){for(;;)switch(ye.prev=ye.next){case 0:return ye.abrupt("return",vV.nextInitializedTickWithinOneWord(this.ticks,D,te,he));case 1:case"end":return ye.stop()}}),_callee2,this)})));return function nextInitializedTickWithinOneWord(te,he,ye){return D.apply(this,arguments)}}(),TickListDataProvider}(),SV=new gV,CV=function(){function Pool(D,te,he,ye,be,ve,we){void 0===we&&(we=SV),Number.isInteger(he)&&he<1e6||invariant();var _e=bV.getSqrtRatioAtTick(ve),Pe=bV.getSqrtRatioAtTick(ve+1);Fz.greaterThanOrEqual(Fz.BigInt(ye),_e)&&Fz.lessThanOrEqual(Fz.BigInt(ye),Pe)||invariant();var Ie=D.sortsBefore(te)?[D,te]:[te,D];this.token0=Ie[0],this.token1=Ie[1],this.fee=he,this.sqrtRatioX96=Fz.BigInt(ye),this.liquidity=Fz.BigInt(be),this.tickCurrent=ve,this.tickDataProvider=Array.isArray(we)?new PV(we,rV[he]):we}Pool.getAddress=function getAddress(D,te,he,ye,be){return computePoolAddress$1({factoryAddress:null!=be?be:YW,fee:he,tokenA:D,tokenB:te,initCodeHashManualOverride:ye})};var D=Pool.prototype;return D.involvesToken=function involvesToken(D){return D.equals(this.token0)||D.equals(this.token1)},D.priceOf=function priceOf(D){return this.involvesToken(D)||invariant(),D.equals(this.token0)?this.token0Price:this.token1Price},D.getOutputAmount=function(){var D=_asyncToGenerator(ZW.mark((function _callee(D,te){var he,ye,be,ve,we,_e,Pe;return ZW.wrap((function _callee$(Ie){for(;;)switch(Ie.prev=Ie.next){case 0:return this.involvesToken(D.currency)||invariant(),he=D.currency.equals(this.token0),Ie.next=4,this.swap(he,D.quotient,te);case 4:return ye=Ie.sent,be=ye.amountCalculated,ve=ye.sqrtRatioX96,we=ye.liquidity,_e=ye.tickCurrent,Pe=he?this.token1:this.token0,Ie.abrupt("return",[kW.fromRawAmount(Pe,Fz.multiply(be,nV)),new Pool(this.token0,this.token1,this.fee,ve,we,_e,this.tickDataProvider)]);case 11:case"end":return Ie.stop()}}),_callee,this)})));return function getOutputAmount(te,he){return D.apply(this,arguments)}}(),D.getInputAmount=function(){var D=_asyncToGenerator(ZW.mark((function _callee2(D,te){var he,ye,be,ve,we,_e,Pe;return ZW.wrap((function _callee2$(Ie){for(;;)switch(Ie.prev=Ie.next){case 0:return D.currency.isToken&&this.involvesToken(D.currency)||invariant(),he=D.currency.equals(this.token1),Ie.next=4,this.swap(he,Fz.multiply(D.quotient,nV),te);case 4:return ye=Ie.sent,be=ye.amountCalculated,ve=ye.sqrtRatioX96,we=ye.liquidity,_e=ye.tickCurrent,Pe=he?this.token0:this.token1,Ie.abrupt("return",[kW.fromRawAmount(Pe,be),new Pool(this.token0,this.token1,this.fee,ve,we,_e,this.tickDataProvider)]);case 11:case"end":return Ie.stop()}}),_callee2,this)})));return function getInputAmount(te,he){return D.apply(this,arguments)}}(),D.swap=function(){var D=_asyncToGenerator(ZW.mark((function _callee3(D,te,he){var ye,be,ve,we,_e,Pe;return ZW.wrap((function _callee3$(Ie){for(;;)switch(Ie.prev=Ie.next){case 0:he||(he=D?Fz.add(bV.MIN_SQRT_RATIO,iV):Fz.subtract(bV.MAX_SQRT_RATIO,iV)),D?(Fz.greaterThan(he,bV.MIN_SQRT_RATIO)||invariant(),Fz.lessThan(he,this.sqrtRatioX96)||invariant()):(Fz.lessThan(he,bV.MAX_SQRT_RATIO)||invariant(),Fz.greaterThan(he,this.sqrtRatioX96)||invariant()),ye=Fz.greaterThanOrEqual(te,aV),be={amountSpecifiedRemaining:te,amountCalculated:aV,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};case 4:if(!Fz.notEqual(be.amountSpecifiedRemaining,aV)||be.sqrtPriceX96==he){Ie.next=35;break}return(ve={}).sqrtPriceStartX96=be.sqrtPriceX96,Ie.next=9,this.tickDataProvider.nextInitializedTickWithinOneWord(be.tick,D,this.tickSpacing);case 9:if(we=Ie.sent,ve.tickNext=we[0],ve.initialized=we[1],ve.tickNext<bV.MIN_TICK?ve.tickNext=bV.MIN_TICK:ve.tickNext>bV.MAX_TICK&&(ve.tickNext=bV.MAX_TICK),ve.sqrtPriceNextX96=bV.getSqrtRatioAtTick(ve.tickNext),_e=pV.computeSwapStep(be.sqrtPriceX96,(D?Fz.lessThan(ve.sqrtPriceNextX96,he):Fz.greaterThan(ve.sqrtPriceNextX96,he))?he:ve.sqrtPriceNextX96,be.liquidity,be.amountSpecifiedRemaining,this.fee),be.sqrtPriceX96=_e[0],ve.amountIn=_e[1],ve.amountOut=_e[2],ve.feeAmount=_e[3],ye?(be.amountSpecifiedRemaining=Fz.subtract(be.amountSpecifiedRemaining,Fz.add(ve.amountIn,ve.feeAmount)),be.amountCalculated=Fz.subtract(be.amountCalculated,ve.amountOut)):(be.amountSpecifiedRemaining=Fz.add(be.amountSpecifiedRemaining,ve.amountOut),be.amountCalculated=Fz.add(be.amountCalculated,Fz.add(ve.amountIn,ve.feeAmount))),!Fz.equal(be.sqrtPriceX96,ve.sqrtPriceNextX96)){Ie.next=32;break}if(!ve.initialized){Ie.next=29;break}return Ie.t0=Fz,Ie.next=25,this.tickDataProvider.getTick(ve.tickNext);case 25:Ie.t1=Ie.sent.liquidityNet,Pe=Ie.t0.BigInt.call(Ie.t0,Ie.t1),D&&(Pe=Fz.multiply(Pe,nV)),be.liquidity=cV.addDelta(be.liquidity,Pe);case 29:be.tick=D?ve.tickNext-1:ve.tickNext,Ie.next=33;break;case 32:Fz.notEqual(be.sqrtPriceX96,ve.sqrtPriceStartX96)&&(be.tick=bV.getTickAtSqrtRatio(be.sqrtPriceX96));case 33:Ie.next=4;break;case 35:return Ie.abrupt("return",{amountCalculated:be.amountCalculated,sqrtRatioX96:be.sqrtPriceX96,liquidity:be.liquidity,tickCurrent:be.tick});case 36:case"end":return Ie.stop()}}),_callee3,this)})));return function swap(te,he,ye){return D.apply(this,arguments)}}(),_createClass$3(Pool,[{key:"token0Price",get:function get(){var D;return null!=(D=this._token0Price)?D:this._token0Price=new NW(this.token0,this.token1,oV,Fz.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:"token1Price",get:function get(){var D;return null!=(D=this._token1Price)?D:this._token1Price=new NW(this.token1,this.token0,Fz.multiply(this.sqrtRatioX96,this.sqrtRatioX96),oV)}},{key:"chainId",get:function get(){return this.token0.chainId}},{key:"tickSpacing",get:function get(){return rV[this.fee]}}]),Pool}(),IV=function(){function Position(D){var te=D.pool,he=D.liquidity,ye=D.tickLower,be=D.tickUpper;this._token0Amount=null,this._token1Amount=null,this._mintAmounts=null,ye<be||invariant(),ye>=bV.MIN_TICK&&ye%te.tickSpacing==0||invariant(),be<=bV.MAX_TICK&&be%te.tickSpacing==0||invariant(),this.pool=te,this.tickLower=ye,this.tickUpper=be,this.liquidity=Fz.BigInt(he)}var D=Position.prototype;return D.ratiosAfterSlippage=function ratiosAfterSlippage(D){var te=this.pool.token0Price.asFraction.multiply(new xW(1).subtract(D)),he=this.pool.token0Price.asFraction.multiply(D.add(1)),ye=encodeSqrtRatioX96(te.numerator,te.denominator);Fz.lessThanOrEqual(ye,bV.MIN_SQRT_RATIO)&&(ye=Fz.add(bV.MIN_SQRT_RATIO,Fz.BigInt(1)));var be=encodeSqrtRatioX96(he.numerator,he.denominator);return Fz.greaterThanOrEqual(be,bV.MAX_SQRT_RATIO)&&(be=Fz.subtract(bV.MAX_SQRT_RATIO,Fz.BigInt(1))),{sqrtRatioX96Lower:ye,sqrtRatioX96Upper:be}},D.mintAmountsWithSlippage=function mintAmountsWithSlippage(D){var te=this.ratiosAfterSlippage(D),he=te.sqrtRatioX96Upper,ye=te.sqrtRatioX96Lower,be=new CV(this.pool.token0,this.pool.token1,this.pool.fee,ye,0,bV.getTickAtSqrtRatio(ye)),ve=new CV(this.pool.token0,this.pool.token1,this.pool.fee,he,0,bV.getTickAtSqrtRatio(he)),we=Position.fromAmounts(_extends$2({pool:this.pool,tickLower:this.tickLower,tickUpper:this.tickUpper},this.mintAmounts,{useFullPrecision:!1}));return{amount0:new Position({pool:ve,liquidity:we.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount0,amount1:new Position({pool:be,liquidity:we.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount1}},D.burnAmountsWithSlippage=function burnAmountsWithSlippage(D){var te=this.ratiosAfterSlippage(D),he=te.sqrtRatioX96Upper,ye=te.sqrtRatioX96Lower,be=new CV(this.pool.token0,this.pool.token1,this.pool.fee,ye,0,bV.getTickAtSqrtRatio(ye)),ve=new Position({pool:new CV(this.pool.token0,this.pool.token1,this.pool.fee,he,0,bV.getTickAtSqrtRatio(he)),liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount0,we=new Position({pool:be,liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount1;return{amount0:ve.quotient,amount1:we.quotient}},Position.fromAmounts=function fromAmounts(D){var te=D.pool,he=D.tickLower,ye=D.tickUpper,be=D.amount0,ve=D.amount1,we=D.useFullPrecision,_e=bV.getSqrtRatioAtTick(he),Pe=bV.getSqrtRatioAtTick(ye);return new Position({pool:te,tickLower:he,tickUpper:ye,liquidity:maxLiquidityForAmounts(te.sqrtRatioX96,_e,Pe,be,ve,we)})},Position.fromAmount0=function fromAmount0(D){var te=D.pool,he=D.tickLower,ye=D.tickUpper,be=D.amount0,ve=D.useFullPrecision;return Position.fromAmounts({pool:te,tickLower:he,tickUpper:ye,amount0:be,amount1:AW,useFullPrecision:ve})},Position.fromAmount1=function fromAmount1(D){var te=D.pool,he=D.tickLower,ye=D.tickUpper,be=D.amount1;return Position.fromAmounts({pool:te,tickLower:he,tickUpper:ye,amount0:AW,amount1:be,useFullPrecision:!0})},_createClass$3(Position,[{key:"token0PriceLower",get:function get(){return tickToPrice(this.pool.token0,this.pool.token1,this.tickLower)}},{key:"token0PriceUpper",get:function get(){return tickToPrice(this.pool.token0,this.pool.token1,this.tickUpper)}},{key:"amount0",get:function get(){return null===this._token0Amount&&(this.pool.tickCurrent<this.tickLower?this._token0Amount=kW.fromRawAmount(this.pool.token0,fV.getAmount0Delta(bV.getSqrtRatioAtTick(this.tickLower),bV.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this.pool.tickCurrent<this.tickUpper?this._token0Amount=kW.fromRawAmount(this.pool.token0,fV.getAmount0Delta(this.pool.sqrtRatioX96,bV.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1)):this._token0Amount=kW.fromRawAmount(this.pool.token0,aV)),this._token0Amount}},{key:"amount1",get:function get(){return null===this._token1Amount&&(this.pool.tickCurrent<this.tickLower?this._token1Amount=kW.fromRawAmount(this.pool.token1,aV):this.pool.tickCurrent<this.tickUpper?this._token1Amount=kW.fromRawAmount(this.pool.token1,fV.getAmount1Delta(bV.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!1)):this._token1Amount=kW.fromRawAmount(this.pool.token1,fV.getAmount1Delta(bV.getSqrtRatioAtTick(this.tickLower),bV.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1))),this._token1Amount}},{key:"mintAmounts",get:function get(){return null===this._mintAmounts?this.pool.tickCurrent<this.tickLower?{amount0:fV.getAmount0Delta(bV.getSqrtRatioAtTick(this.tickLower),bV.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:aV}:this.pool.tickCurrent<this.tickUpper?{amount0:fV.getAmount0Delta(this.pool.sqrtRatioX96,bV.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:fV.getAmount1Delta(bV.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!0)}:{amount0:aV,amount1:fV.getAmount1Delta(bV.getSqrtRatioAtTick(this.tickLower),bV.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0)}:this._mintAmounts}}]),Position}(),RV=function(){function Route(D,te,he){this._midPrice=null,D.length>0||invariant();var ye=D[0].chainId,be=D.every((function(D){return D.chainId===ye}));be||invariant();var ve=te.wrapped;D[0].involvesToken(ve)||invariant(),D[D.length-1].involvesToken(he.wrapped)||invariant();for(var we,_e=[ve],Pe=_createForOfIteratorHelperLoose$1(D.entries());!(we=Pe()).done;){var Ie=we.value,Re=Ie[0],ke=Ie[1],Oe=_e[Re];Oe.equals(ke.token0)||Oe.equals(ke.token1)||invariant();var xe=Oe.equals(ke.token0)?ke.token1:ke.token0;_e.push(xe)}this.pools=D,this.tokenPath=_e,this.input=te,this.output=null!=he?he:_e[_e.length-1]}return _createClass$3(Route,[{key:"chainId",get:function get(){return this.pools[0].chainId}},{key:"midPrice",get:function get(){if(null!==this._midPrice)return this._midPrice;var D=this.pools.slice(1).reduce((function(D,te){var he=D.nextInput,ye=D.price;return he.equals(te.token0)?{nextInput:te.token1,price:ye.multiply(te.token0Price)}:{nextInput:te.token0,price:ye.multiply(te.token1Price)}}),this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new NW(this.input,this.output,D.denominator,D.numerator)}}]),Route}();function tradeComparator$1(D,te){return D.inputAmount.currency.equals(te.inputAmount.currency)||invariant(),D.outputAmount.currency.equals(te.outputAmount.currency)||invariant(),D.outputAmount.equalTo(te.outputAmount)?D.inputAmount.equalTo(te.inputAmount)?D.swaps.reduce((function(D,te){return D+te.route.tokenPath.length}),0)-te.swaps.reduce((function(D,te){return D+te.route.tokenPath.length}),0):D.inputAmount.lessThan(te.inputAmount)?-1:1:D.outputAmount.lessThan(te.outputAmount)?1:-1}var kV=function(){function Trade(D){var te=D.routes,he=D.tradeType,ye=te[0].inputAmount.currency,be=te[0].outputAmount.currency;te.every((function(D){var te=D.route;return ye.wrapped.equals(te.input.wrapped)}))||invariant(),te.every((function(D){var te=D.route;return be.wrapped.equals(te.output.wrapped)}))||invariant();for(var ve,we=te.map((function(D){return D.route.pools.length})).reduce((function(D,te){return D+te}),0),_e=new Set,Pe=_createForOfIteratorHelperLoose$1(te);!(ve=Pe()).done;)for(var Ie,Re=_createForOfIteratorHelperLoose$1(ve.value.route.pools);!(Ie=Re()).done;){var ke=Ie.value;_e.add(CV.getAddress(ke.token0,ke.token1,ke.fee))}we!=_e.size&&invariant(),this.swaps=te,this.tradeType=he}Trade.exactIn=function(){var D=_asyncToGenerator(ZW.mark((function _callee(D,te){return ZW.wrap((function _callee$(he){for(;;)switch(he.prev=he.next){case 0:return he.abrupt("return",Trade.fromRoute(D,te,lW.EXACT_INPUT));case 1:case"end":return he.stop()}}),_callee)})));return function exactIn(te,he){return D.apply(this,arguments)}}(),Trade.exactOut=function(){var D=_asyncToGenerator(ZW.mark((function _callee2(D,te){return ZW.wrap((function _callee2$(he){for(;;)switch(he.prev=he.next){case 0:return he.abrupt("return",Trade.fromRoute(D,te,lW.EXACT_OUTPUT));case 1:case"end":return he.stop()}}),_callee2)})));return function exactOut(te,he){return D.apply(this,arguments)}}(),Trade.fromRoute=function(){var D=_asyncToGenerator(ZW.mark((function _callee3(D,te,he){var ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe;return ZW.wrap((function _callee3$(Be){for(;;)switch(Be.prev=Be.next){case 0:if(ye=new Array(D.tokenPath.length),he!==lW.EXACT_INPUT){Be.next=19;break}te.currency.equals(D.input)||invariant(),ye[0]=te.wrapped,we=0;case 5:if(!(we<D.tokenPath.length-1)){Be.next=15;break}return _e=D.pools[we],Be.next=9,_e.getOutputAmount(ye[we]);case 9:Pe=Be.sent,Ie=Pe[0],ye[we+1]=Ie;case 12:we++,Be.next=5;break;case 15:be=kW.fromFractionalAmount(D.input,te.numerator,te.denominator),ve=kW.fromFractionalAmount(D.output,ye[ye.length-1].numerator,ye[ye.length-1].denominator),Be.next=34;break;case 19:te.currency.equals(D.output)||invariant(),ye[ye.length-1]=te.wrapped,Re=D.tokenPath.length-1;case 22:if(!(Re>0)){Be.next=32;break}return ke=D.pools[Re-1],Be.next=26,ke.getInputAmount(ye[Re]);case 26:Oe=Be.sent,xe=Oe[0],ye[Re-1]=xe;case 29:Re--,Be.next=22;break;case 32:be=kW.fromFractionalAmount(D.input,ye[0].numerator,ye[0].denominator),ve=kW.fromFractionalAmount(D.output,te.numerator,te.denominator);case 34:return Be.abrupt("return",new Trade({routes:[{inputAmount:be,outputAmount:ve,route:D}],tradeType:he}));case 35:case"end":return Be.stop()}}),_callee3)})));return function fromRoute(te,he,ye){return D.apply(this,arguments)}}(),Trade.fromRoutes=function(){var D=_asyncToGenerator(ZW.mark((function _callee4(D,te){var he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue;return ZW.wrap((function _callee4$(qe){for(;;)switch(qe.prev=qe.next){case 0:he=[],ye=_createForOfIteratorHelperLoose$1(D);case 2:if((be=ye()).done){qe.next=43;break}if(ve=be.value,we=ve.route,_e=ve.amount,Pe=new Array(we.tokenPath.length),Ie=void 0,Re=void 0,te!==lW.EXACT_INPUT){qe.next=25;break}_e.currency.equals(we.input)||invariant(),Ie=kW.fromFractionalAmount(we.input,_e.numerator,_e.denominator),Pe[0]=kW.fromFractionalAmount(we.input.wrapped,_e.numerator,_e.denominator),ke=0;case 12:if(!(ke<we.tokenPath.length-1)){qe.next=22;break}return Oe=we.pools[ke],qe.next=16,Oe.getOutputAmount(Pe[ke]);case 16:xe=qe.sent,Be=xe[0],Pe[ke+1]=Be;case 19:ke++,qe.next=12;break;case 22:Re=kW.fromFractionalAmount(we.output,Pe[Pe.length-1].numerator,Pe[Pe.length-1].denominator),qe.next=40;break;case 25:_e.currency.equals(we.output)||invariant(),Re=kW.fromFractionalAmount(we.output,_e.numerator,_e.denominator),Pe[Pe.length-1]=kW.fromFractionalAmount(we.output.wrapped,_e.numerator,_e.denominator),Fe=we.tokenPath.length-1;case 29:if(!(Fe>0)){qe.next=39;break}return De=we.pools[Fe-1],qe.next=33,De.getInputAmount(Pe[Fe]);case 33:Le=qe.sent,Ue=Le[0],Pe[Fe-1]=Ue;case 36:Fe--,qe.next=29;break;case 39:Ie=kW.fromFractionalAmount(we.input,Pe[0].numerator,Pe[0].denominator);case 40:he.push({route:we,inputAmount:Ie,outputAmount:Re});case 41:qe.next=2;break;case 43:return qe.abrupt("return",new Trade({routes:he,tradeType:te}));case 44:case"end":return qe.stop()}}),_callee4)})));return function fromRoutes(te,he){return D.apply(this,arguments)}}(),Trade.createUncheckedTrade=function createUncheckedTrade(D){return new Trade(_extends$2({},D,{routes:[{inputAmount:D.inputAmount,outputAmount:D.outputAmount,route:D.route}]}))},Trade.createUncheckedTradeWithMultipleRoutes=function createUncheckedTradeWithMultipleRoutes(D){return new Trade(D)};var D=Trade.prototype;return D.minimumAmountOut=function minimumAmountOut(D,te){if(void 0===te&&(te=this.outputAmount),D.lessThan(aV)&&invariant(),this.tradeType===lW.EXACT_OUTPUT)return te;var he=new IW(iV).add(D).invert().multiply(te.quotient).quotient;return kW.fromRawAmount(te.currency,he)},D.maximumAmountIn=function maximumAmountIn(D,te){if(void 0===te&&(te=this.inputAmount),D.lessThan(aV)&&invariant(),this.tradeType===lW.EXACT_INPUT)return te;var he=new IW(iV).add(D).multiply(te.quotient).quotient;return kW.fromRawAmount(te.currency,he)},D.worstExecutionPrice=function worstExecutionPrice(D){return new NW(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(D).quotient,this.minimumAmountOut(D).quotient)},Trade.bestTradeExactIn=function(){var D=_asyncToGenerator(ZW.mark((function _callee5(D,te,he,ye,be,ve,we){var _e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue;return ZW.wrap((function _callee5$(qe){for(;;)switch(qe.prev=qe.next){case 0:Pe=(_e=void 0===ye?{}:ye).maxNumResults,Ie=void 0===Pe?3:Pe,Re=_e.maxHops,ke=void 0===Re?3:Re,void 0===be&&(be=[]),void 0===ve&&(ve=te),void 0===we&&(we=[]),D.length>0||invariant(),ke>0||invariant(),te===ve||be.length>0||invariant(),Oe=ve.wrapped,xe=he.wrapped,Be=0;case 10:if(!(Be<D.length)){qe.next=46;break}if((Fe=D[Be]).token0.equals(Oe.currency)||Fe.token1.equals(Oe.currency)){qe.next=14;break}return qe.abrupt("continue",43);case 14:return De=void 0,qe.prev=15,qe.next=19,Fe.getOutputAmount(Oe);case 19:Le=qe.sent,De=Le[0],qe.next=28;break;case 23:if(qe.prev=23,qe.t0=qe.catch(15),!qe.t0.isInsufficientInputAmountError){qe.next=27;break}return qe.abrupt("continue",43);case 27:throw qe.t0;case 28:if(!De.currency.isToken||!De.currency.equals(xe)){qe.next=39;break}return qe.t1=sortedInsert$2,qe.t2=we,qe.next=33,Trade.fromRoute(new RV([].concat(be,[Fe]),te.currency,he),te,lW.EXACT_INPUT);case 33:qe.t3=qe.sent,qe.t4=Ie,qe.t5=tradeComparator$1,(0,qe.t1)(qe.t2,qe.t3,qe.t4,qe.t5),qe.next=43;break;case 39:if(!(ke>1&&D.length>1)){qe.next=43;break}return Ue=D.slice(0,Be).concat(D.slice(Be+1,D.length)),qe.next=43,Trade.bestTradeExactIn(Ue,te,he,{maxNumResults:Ie,maxHops:ke-1},[].concat(be,[Fe]),De,we);case 43:Be++,qe.next=10;break;case 46:return qe.abrupt("return",we);case 47:case"end":return qe.stop()}}),_callee5,null,[[15,23]])})));return function bestTradeExactIn(te,he,ye,be,ve,we,_e){return D.apply(this,arguments)}}(),Trade.bestTradeExactOut=function(){var D=_asyncToGenerator(ZW.mark((function _callee6(D,te,he,ye,be,ve,we){var _e,Pe,Ie,Re,ke,Oe,xe,Be,Fe,De,Le,Ue;return ZW.wrap((function _callee6$(qe){for(;;)switch(qe.prev=qe.next){case 0:Pe=(_e=void 0===ye?{}:ye).maxNumResults,Ie=void 0===Pe?3:Pe,Re=_e.maxHops,ke=void 0===Re?3:Re,void 0===be&&(be=[]),void 0===ve&&(ve=he),void 0===we&&(we=[]),D.length>0||invariant(),ke>0||invariant(),he===ve||be.length>0||invariant(),Oe=ve.wrapped,xe=te.wrapped,Be=0;case 10:if(!(Be<D.length)){qe.next=46;break}if((Fe=D[Be]).token0.equals(Oe.currency)||Fe.token1.equals(Oe.currency)){qe.next=14;break}return qe.abrupt("continue",43);case 14:return De=void 0,qe.prev=15,qe.next=19,Fe.getInputAmount(Oe);case 19:Le=qe.sent,De=Le[0],qe.next=28;break;case 23:if(qe.prev=23,qe.t0=qe.catch(15),!qe.t0.isInsufficientReservesError){qe.next=27;break}return qe.abrupt("continue",43);case 27:throw qe.t0;case 28:if(!De.currency.equals(xe)){qe.next=39;break}return qe.t1=sortedInsert$2,qe.t2=we,qe.next=33,Trade.fromRoute(new RV([Fe].concat(be),te,he.currency),he,lW.EXACT_OUTPUT);case 33:qe.t3=qe.sent,qe.t4=Ie,qe.t5=tradeComparator$1,(0,qe.t1)(qe.t2,qe.t3,qe.t4,qe.t5),qe.next=43;break;case 39:if(!(ke>1&&D.length>1)){qe.next=43;break}return Ue=D.slice(0,Be).concat(D.slice(Be+1,D.length)),qe.next=43,Trade.bestTradeExactOut(Ue,te,he,{maxNumResults:Ie,maxHops:ke-1},[Fe].concat(be),De,we);case 43:Be++,qe.next=10;break;case 46:return qe.abrupt("return",we);case 47:case"end":return qe.stop()}}),_callee6,null,[[15,23]])})));return function bestTradeExactOut(te,he,ye,be,ve,we,_e){return D.apply(this,arguments)}}(),_createClass$3(Trade,[{key:"route",get:function get(){return 1!=this.swaps.length&&invariant(),this.swaps[0].route}},{key:"inputAmount",get:function get(){if(this._inputAmount)return this._inputAmount;var D=this.swaps[0].inputAmount.currency,te=this.swaps.map((function(D){return D.inputAmount})).reduce((function(D,te){return D.add(te)}),kW.fromRawAmount(D,0));return this._inputAmount=te,this._inputAmount}},{key:"outputAmount",get:function get(){if(this._outputAmount)return this._outputAmount;var D=this.swaps[0].outputAmount.currency,te=this.swaps.map((function(D){return D.outputAmount})).reduce((function(D,te){return D.add(te)}),kW.fromRawAmount(D,0));return this._outputAmount=te,this._outputAmount}},{key:"executionPrice",get:function get(){var D;return null!=(D=this._executionPrice)?D:this._executionPrice=new NW(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function get(){if(this._priceImpact)return this._priceImpact;for(var D,te=kW.fromRawAmount(this.outputAmount.currency,0),he=_createForOfIteratorHelperLoose$1(this.swaps);!(D=he()).done;){var ye=D.value,be=ye.route,ve=ye.inputAmount,we=be.midPrice;te=te.add(we.quote(ve))}var _e=te.subtract(this.outputAmount).divide(te);return this._priceImpact=new xW(_e.numerator,_e.denominator),this._priceImpact}}]),Trade}(),OV=function(){function Multicall(){}return Multicall.encodeMulticall=function encodeMulticall(D){return Array.isArray(D)||(D=[D]),1===D.length?D[0]:Multicall.INTERFACE.encodeFunctionData("multicall",[D])},Multicall}();OV.INTERFACE=new Xo(GW);var xV=function(){function SelfPermit(){}return SelfPermit.encodePermit=function encodePermit(D,te){return function isAllowedPermit(D){return"nonce"in D}(te)?SelfPermit.INTERFACE.encodeFunctionData("selfPermitAllowed",[D.address,toHex$1(te.nonce),toHex$1(te.expiry),te.v,te.r,te.s]):SelfPermit.INTERFACE.encodeFunctionData("selfPermit",[D.address,toHex$1(te.amount),toHex$1(te.deadline),te.v,te.r,te.s])},SelfPermit}();xV.INTERFACE=new Xo(HW);var NV=function(){function Payments(){}return Payments.encodeFeeBips=function encodeFeeBips(D){return toHex$1(D.multiply(1e4).quotient)},Payments.encodeUnwrapWETH9=function encodeUnwrapWETH9(D,te,he){if(te=validateAndParseAddress$2(te),he){var ye=this.encodeFeeBips(he.fee),be=validateAndParseAddress$2(he.recipient);return Payments.INTERFACE.encodeFunctionData("unwrapWETH9WithFee",[toHex$1(D),te,ye,be])}return Payments.INTERFACE.encodeFunctionData("unwrapWETH9",[toHex$1(D),te])},Payments.encodeSweepToken=function encodeSweepToken(D,te,he,ye){if(he=validateAndParseAddress$2(he),ye){var be=this.encodeFeeBips(ye.fee),ve=validateAndParseAddress$2(ye.recipient);return Payments.INTERFACE.encodeFunctionData("sweepTokenWithFee",[D.address,toHex$1(te),he,be,ve])}return Payments.INTERFACE.encodeFunctionData("sweepToken",[D.address,toHex$1(te),he])},Payments.encodeRefundETH=function encodeRefundETH(){return Payments.INTERFACE.encodeFunctionData("refundETH")},Payments}();NV.INTERFACE=new Xo(zW);var MV=toHex$1(Fz.subtract(Fz.exponentiate(Fz.BigInt(2),Fz.BigInt(128)),Fz.BigInt(1)));function isMint(D){return Object.keys(D).some((function(D){return"recipient"===D}))}var BV=function(){function NonfungiblePositionManager(){}return NonfungiblePositionManager.encodeCreate=function encodeCreate(D){return NonfungiblePositionManager.INTERFACE.encodeFunctionData("createAndInitializePoolIfNecessary",[D.token0.address,D.token1.address,D.fee,toHex$1(D.sqrtRatioX96)])},NonfungiblePositionManager.createCallParameters=function createCallParameters(D){return{calldata:this.encodeCreate(D),value:toHex$1(0)}},NonfungiblePositionManager.addCallParameters=function addCallParameters(D,te){Fz.greaterThan(D.liquidity,aV)||invariant();var he=[],ye=D.mintAmounts,be=ye.amount0,ve=ye.amount1,we=D.mintAmountsWithSlippage(te.slippageTolerance),_e=toHex$1(we.amount0),Pe=toHex$1(we.amount1),Ie=toHex$1(te.deadline);if(isMint(te)&&te.createPool&&he.push(this.encodeCreate(D.pool)),te.token0Permit&&he.push(xV.encodePermit(D.pool.token0,te.token0Permit)),te.token1Permit&&he.push(xV.encodePermit(D.pool.token1,te.token1Permit)),isMint(te)){var Re=validateAndParseAddress$2(te.recipient);he.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData("mint",[{token0:D.pool.token0.address,token1:D.pool.token1.address,fee:D.pool.fee,tickLower:D.tickLower,tickUpper:D.tickUpper,amount0Desired:toHex$1(be),amount1Desired:toHex$1(ve),amount0Min:_e,amount1Min:Pe,recipient:Re,deadline:Ie}]))}else he.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData("increaseLiquidity",[{tokenId:toHex$1(te.tokenId),amount0Desired:toHex$1(be),amount1Desired:toHex$1(ve),amount0Min:_e,amount1Min:Pe,deadline:Ie}]));var ke=toHex$1(0);if(te.useNative){var Oe=te.useNative.wrapped;D.pool.token0.equals(Oe)||D.pool.token1.equals(Oe)||invariant();var xe=D.pool.token0.equals(Oe)?be:ve;Fz.greaterThan(xe,aV)&&he.push(NV.encodeRefundETH()),ke=toHex$1(xe)}return{calldata:OV.encodeMulticall(he),value:ke}},NonfungiblePositionManager.encodeCollect=function encodeCollect(D){var te=[],he=toHex$1(D.tokenId),ye=D.expectedCurrencyOwed0.currency.isNative||D.expectedCurrencyOwed1.currency.isNative,be=validateAndParseAddress$2(D.recipient);if(te.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData("collect",[{tokenId:he,recipient:ye?eV:be,amount0Max:MV,amount1Max:MV}])),ye){var ve=D.expectedCurrencyOwed0.currency.isNative?D.expectedCurrencyOwed0.quotient:D.expectedCurrencyOwed1.quotient,we=D.expectedCurrencyOwed0.currency.isNative?D.expectedCurrencyOwed1.currency:D.expectedCurrencyOwed0.currency,_e=D.expectedCurrencyOwed0.currency.isNative?D.expectedCurrencyOwed1.quotient:D.expectedCurrencyOwed0.quotient;te.push(NV.encodeUnwrapWETH9(ve,be)),te.push(NV.encodeSweepToken(we,_e,be))}return te},NonfungiblePositionManager.collectCallParameters=function collectCallParameters(D){var te=NonfungiblePositionManager.encodeCollect(D);return{calldata:OV.encodeMulticall(te),value:toHex$1(0)}},NonfungiblePositionManager.removeCallParameters=function removeCallParameters(D,te){var he=[],ye=toHex$1(te.deadline),be=toHex$1(te.tokenId),ve=new IV({pool:D.pool,liquidity:te.liquidityPercentage.multiply(D.liquidity).quotient,tickLower:D.tickLower,tickUpper:D.tickUpper});Fz.greaterThan(ve.liquidity,aV)||invariant();var we=ve.burnAmountsWithSlippage(te.slippageTolerance),_e=we.amount0,Pe=we.amount1;te.permit&&he.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData("permit",[validateAndParseAddress$2(te.permit.spender),be,toHex$1(te.permit.deadline),te.permit.v,te.permit.r,te.permit.s])),he.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData("decreaseLiquidity",[{tokenId:be,liquidity:toHex$1(ve.liquidity),amount0Min:toHex$1(_e),amount1Min:toHex$1(Pe),deadline:ye}]));var Ie=te.collectOptions,Re=Ie.expectedCurrencyOwed0,ke=Ie.expectedCurrencyOwed1,Oe=function _objectWithoutPropertiesLoose(D,te){if(null==D)return{};var he,ye,be={},ve=Object.keys(D);for(ye=0;ye<ve.length;ye++)he=ve[ye],te.indexOf(he)>=0||(be[he]=D[he]);return be}(Ie,["expectedCurrencyOwed0","expectedCurrencyOwed1"]);return he.push.apply(he,NonfungiblePositionManager.encodeCollect(_extends$2({tokenId:toHex$1(te.tokenId),expectedCurrencyOwed0:Re.add(kW.fromRawAmount(Re.currency,_e)),expectedCurrencyOwed1:ke.add(kW.fromRawAmount(ke.currency,Pe))},Oe))),te.liquidityPercentage.equalTo(iV)?te.burnToken&&he.push(NonfungiblePositionManager.INTERFACE.encodeFunctionData("burn",[be])):!0===te.burnToken&&invariant(),{calldata:OV.encodeMulticall(he),value:toHex$1(0)}},NonfungiblePositionManager.safeTransferFromParameters=function safeTransferFromParameters(D){var te=validateAndParseAddress$2(D.recipient),he=validateAndParseAddress$2(D.sender);return{calldata:D.data?NonfungiblePositionManager.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256,bytes)",[he,te,toHex$1(D.tokenId),D.data]):NonfungiblePositionManager.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256)",[he,te,toHex$1(D.tokenId)]),value:toHex$1(0)}},NonfungiblePositionManager}();BV.INTERFACE=new Xo(jW);var FV=function(){function SwapQuoter(){}return SwapQuoter.quoteCallParameters=function quoteCallParameters(D,te,he,ye){void 0===ye&&(ye={});var be,ve=1===D.pools.length,we=toHex$1(te.quotient),_e=ye.useQuoterV2?this.V2INTERFACE:this.V1INTERFACE;if(ve){var Pe,Ie,Re={tokenIn:D.tokenPath[0].address,tokenOut:D.tokenPath[1].address,fee:D.pools[0].fee,sqrtPriceLimitX96:toHex$1(null!=(Pe=null==(Ie=ye)?void 0:Ie.sqrtPriceLimitX96)?Pe:0)},ke=_extends$2({},Re,he==lW.EXACT_INPUT?{amountIn:we}:{amount:we}),Oe=[Re.tokenIn,Re.tokenOut,Re.fee,we,Re.sqrtPriceLimitX96],xe=he===lW.EXACT_INPUT?"quoteExactInputSingle":"quoteExactOutputSingle";be=_e.encodeFunctionData(xe,ye.useQuoterV2?[ke]:Oe)}else{var Be;void 0!==(null==(Be=ye)?void 0:Be.sqrtPriceLimitX96)&&invariant();var Fe=encodeRouteToPath(D,he===lW.EXACT_OUTPUT),De=he===lW.EXACT_INPUT?"quoteExactInput":"quoteExactOutput";be=_e.encodeFunctionData(De,[Fe,we])}return{calldata:be,value:toHex$1(0)}},SwapQuoter}();FV.V1INTERFACE=new Xo(WW),FV.V2INTERFACE=new Xo(VW);var DV=function(){function Staker(){}return Staker.encodeClaim=function encodeClaim(D,te){var he,ye=[];ye.push(Staker.INTERFACE.encodeFunctionData("unstakeToken",[this._encodeIncentiveKey(D),toHex$1(te.tokenId)]));var be=validateAndParseAddress$2(te.recipient),ve=null!=(he=te.amount)?he:0;return ye.push(Staker.INTERFACE.encodeFunctionData("claimReward",[D.rewardToken.address,be,toHex$1(ve)])),ye},Staker.collectRewards=function collectRewards(D,te){D=Array.isArray(D)?D:[D];for(var he=[],ye=0;ye<D.length;ye++){var be=D[ye];(he=he.concat(this.encodeClaim(be,te))).push(Staker.INTERFACE.encodeFunctionData("stakeToken",[this._encodeIncentiveKey(be),toHex$1(te.tokenId)]))}return{calldata:OV.encodeMulticall(he),value:toHex$1(0)}},Staker.withdrawToken=function withdrawToken(D,te){var he=[];D=Array.isArray(D)?D:[D];for(var ye={tokenId:te.tokenId,recipient:te.recipient,amount:te.amount},be=0;be<D.length;be++){var ve=D[be];he=he.concat(this.encodeClaim(ve,ye))}var we=validateAndParseAddress$2(te.owner);return he.push(Staker.INTERFACE.encodeFunctionData("withdrawToken",[toHex$1(te.tokenId),we,te.data?te.data:toHex$1(0)])),{calldata:OV.encodeMulticall(he),value:toHex$1(0)}},Staker.encodeDeposit=function encodeDeposit(D){var te;if((D=Array.isArray(D)?D:[D]).length>1){for(var he=[],ye=0;ye<D.length;ye++){var be=D[ye];he.push(this._encodeIncentiveKey(be))}te=vo.encode([Staker.INCENTIVE_KEY_ABI+"[]"],[he])}else te=vo.encode([Staker.INCENTIVE_KEY_ABI],[this._encodeIncentiveKey(D[0])]);return te},Staker._encodeIncentiveKey=function _encodeIncentiveKey(D){var te=D.pool,he=te.token0,ye=te.token1,be=te.fee,ve=validateAndParseAddress$2(D.refundee);return{rewardToken:D.rewardToken.address,pool:CV.getAddress(he,ye,be),startTime:toHex$1(D.startTime),endTime:toHex$1(D.endTime),refundee:ve}},Staker}();DV.INTERFACE=new Xo(KW),DV.INCENTIVE_KEY_ABI="tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)";var LV=function(){function SwapRouter(){}return SwapRouter.swapCallParameters=function swapCallParameters(D,te){Array.isArray(D)||(D=[D]);var he=D[0],ye=he.inputAmount.currency.wrapped,be=he.outputAmount.currency.wrapped;D.every((function(D){return D.inputAmount.currency.wrapped.equals(ye)}))||invariant(),D.every((function(D){return D.outputAmount.currency.wrapped.equals(be)}))||invariant();var ve=[],we=kW.fromRawAmount(D[0].inputAmount.currency,0),_e=kW.fromRawAmount(D[0].outputAmount.currency,0),Pe=D.reduce((function(D,he){return D.add(he.minimumAmountOut(te.slippageTolerance))}),_e),Ie=he.inputAmount.currency.isNative&&he.tradeType===lW.EXACT_OUTPUT,Re=he.inputAmount.currency.isNative,ke=he.outputAmount.currency.isNative,Oe=ke||!!te.fee,xe=Re?D.reduce((function(D,he){return D.add(he.maximumAmountIn(te.slippageTolerance))}),we):we;te.inputTokenPermit&&(he.inputAmount.currency.isToken||invariant(),ve.push(xV.encodePermit(he.inputAmount.currency,te.inputTokenPermit)));for(var Be,Fe=validateAndParseAddress$2(te.recipient),De=toHex$1(te.deadline),Le=_createForOfIteratorHelperLoose$1(D);!(Be=Le()).done;)for(var Ue,qe=Be.value,je=_createForOfIteratorHelperLoose$1(qe.swaps);!(Ue=je()).done;){var Je=Ue.value,et=Je.route,tt=Je.inputAmount,rt=Je.outputAmount,nt=toHex$1(qe.maximumAmountIn(te.slippageTolerance,tt).quotient),at=toHex$1(qe.minimumAmountOut(te.slippageTolerance,rt).quotient);if(1===et.pools.length)if(qe.tradeType===lW.EXACT_INPUT){var ut,ht={tokenIn:et.tokenPath[0].address,tokenOut:et.tokenPath[1].address,fee:et.pools[0].fee,recipient:Oe?eV:Fe,deadline:De,amountIn:nt,amountOutMinimum:at,sqrtPriceLimitX96:toHex$1(null!=(ut=te.sqrtPriceLimitX96)?ut:0)};ve.push(SwapRouter.INTERFACE.encodeFunctionData("exactInputSingle",[ht]))}else{var yt,mt={tokenIn:et.tokenPath[0].address,tokenOut:et.tokenPath[1].address,fee:et.pools[0].fee,recipient:Oe?eV:Fe,deadline:De,amountOut:at,amountInMaximum:nt,sqrtPriceLimitX96:toHex$1(null!=(yt=te.sqrtPriceLimitX96)?yt:0)};ve.push(SwapRouter.INTERFACE.encodeFunctionData("exactOutputSingle",[mt]))}else{void 0!==te.sqrtPriceLimitX96&&invariant();var bt=encodeRouteToPath(et,qe.tradeType===lW.EXACT_OUTPUT);if(qe.tradeType===lW.EXACT_INPUT){var wt={path:bt,recipient:Oe?eV:Fe,deadline:De,amountIn:nt,amountOutMinimum:at};ve.push(SwapRouter.INTERFACE.encodeFunctionData("exactInput",[wt]))}else{var _t={path:bt,recipient:Oe?eV:Fe,deadline:De,amountOut:at,amountInMaximum:nt};ve.push(SwapRouter.INTERFACE.encodeFunctionData("exactOutput",[_t]))}}}return Oe&&(te.fee?ke?ve.push(NV.encodeUnwrapWETH9(Pe.quotient,Fe,te.fee)):ve.push(NV.encodeSweepToken(he.outputAmount.currency.wrapped,Pe.quotient,Fe,te.fee)):ve.push(NV.encodeUnwrapWETH9(Pe.quotient,Fe))),Ie&&ve.push(NV.encodeRefundETH()),{calldata:OV.encodeMulticall(ve),value:toHex$1(xe.quotient)}},SwapRouter}();LV.INTERFACE=new Xo(JW);var UV,$V,qV=Object.freeze({__proto__:null,ADDRESS_ZERO:eV,FACTORY_ADDRESS:YW,get FeeAmount(){return QW},FullMath:dV,LiquidityMath:cV,Multicall:OV,NoTickDataProvider:gV,NonfungiblePositionManager:BV,POOL_INIT_CODE_HASH:tV,Payments:NV,Pool:CV,Position:IV,PositionLibrary:_V,Route:RV,SelfPermit:xV,SqrtPriceMath:fV,Staker:DV,SwapMath:pV,SwapQuoter:FV,SwapRouter:LV,TICK_SPACINGS:rV,Tick:EV,TickLibrary:AV,TickList:vV,TickListDataProvider:PV,TickMath:bV,Trade:kV,computePoolAddress:computePoolAddress$1,encodeRouteToPath:encodeRouteToPath,encodeSqrtRatioX96:encodeSqrtRatioX96,isSorted:isSorted,maxLiquidityForAmounts:maxLiquidityForAmounts,mostSignificantBit:mostSignificantBit,nearestUsableTick:function nearestUsableTick(D,te){Number.isInteger(D)&&Number.isInteger(te)||invariant(),te>0||invariant(),D>=bV.MIN_TICK&&D<=bV.MAX_TICK||invariant();var he=Math.round(D/te)*te;return he<bV.MIN_TICK?he+te:he>bV.MAX_TICK?he-te:he},priceToClosestTick:function priceToClosestTick(D){var te=D.baseCurrency.sortsBefore(D.quoteCurrency),he=te?encodeSqrtRatioX96(D.numerator,D.denominator):encodeSqrtRatioX96(D.denominator,D.numerator),ye=bV.getTickAtSqrtRatio(he),be=tickToPrice(D.baseCurrency,D.quoteCurrency,ye+1);return te?D.lessThan(be)||ye++:D.greaterThan(be)||ye++,ye},subIn256:subIn256,tickToPrice:tickToPrice,toHex:toHex$1,tradeComparator:tradeComparator$1}),GV={exports:{}},jV={},HV=getAugmentedNamespace$1(Qo);var zV,WV={_format:"hh-sol-artifact-1",contractName:"IApproveAndCall",sourceName:"contracts/interfaces/IApproveAndCall.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"callPositionManager",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"getApprovalType",outputs:[{internalType:"enum IApproveAndCall.ApprovalType",name:"",type:"uint8"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"}],internalType:"struct IApproveAndCall.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IApproveAndCall.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},VV=getAugmentedNamespace$1(qV),KV={_format:"hh-sol-artifact-1",contractName:"IMulticallExtended",sourceName:"contracts/interfaces/IMulticallExtended.sol",abi:[{inputs:[{internalType:"bytes32",name:"previousBlockhash",type:"bytes32"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}};function _createClass$2(D,te,he){return te&&function _defineProperties$2(D,te){for(var he=0;he<te.length;he++){var ye=te[he];ye.enumerable=ye.enumerable||!1,ye.configurable=!0,"value"in ye&&(ye.writable=!0),Object.defineProperty(D,ye.key,ye)}}(D.prototype,te),D}function _extends$1(){return _extends$1=Object.assign||function(D){for(var te=1;te<arguments.length;te++){var he=arguments[te];for(var ye in he)Object.prototype.hasOwnProperty.call(he,ye)&&(D[ye]=he[ye])}return D},_extends$1.apply(this,arguments)}function _inheritsLoose$2(D,te){D.prototype=Object.create(te.prototype),D.prototype.constructor=D,D.__proto__=te}!function(D){D[D.MAINNET=1]="MAINNET",D[D.GOERLI=5]="GOERLI",D[D.SEPOLIA=11155111]="SEPOLIA",D[D.OPTIMISM=10]="OPTIMISM",D[D.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",D[D.ARBITRUM_ONE=42161]="ARBITRUM_ONE",D[D.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",D[D.POLYGON=137]="POLYGON",D[D.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",D[D.CELO=42220]="CELO",D[D.CELO_ALFAJORES=44787]="CELO_ALFAJORES",D[D.GNOSIS=100]="GNOSIS",D[D.MOONBEAM=1284]="MOONBEAM",D[D.BNB=56]="BNB",D[D.AVALANCHE=43114]="AVALANCHE",D[D.BASE_GOERLI=84531]="BASE_GOERLI",D[D.BASE=8453]="BASE"}(zV||(zV={}));var JV,XV,QV,ZV,YV,eK,tK,rK=[zV.MAINNET,zV.OPTIMISM,zV.OPTIMISM_GOERLI,zV.ARBITRUM_ONE,zV.ARBITRUM_GOERLI,zV.POLYGON,zV.POLYGON_MUMBAI,zV.GOERLI,zV.SEPOLIA,zV.CELO_ALFAJORES,zV.CELO,zV.BNB,zV.AVALANCHE,zV.BASE,zV.BASE_GOERLI];!function(D){D.ETHER="ETH",D.MATIC="MATIC",D.CELO="CELO",D.GNOSIS="XDAI",D.MOONBEAM="GLMR",D.BNB="BNB",D.AVAX="AVAX"}(JV||(JV={}));var nK=[zV.MAINNET,zV.GOERLI];function constructSameAddressMap$1(D,te){return void 0===te&&(te=[]),nK.concat(te).reduce((function(te,he){return te[he]=D,te}),{})}var aK,iK,sK=constructSameAddressMap$1("0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",[zV.OPTIMISM,zV.ARBITRUM_ONE,zV.POLYGON,zV.POLYGON_MUMBAI,zV.SEPOLIA]),oK="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",cK=constructSameAddressMap$1(oK),dK="0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",uK=constructSameAddressMap$1(dK),fK={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},lK=_extends$1({},fK,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),pK=_extends$1({},fK,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),hK=fK,yK=_extends$1({},fK,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),mK=fK,bK={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"},gK=((XV={})[zV.MAINNET]=lK,XV[zV.OPTIMISM]=hK,XV[zV.ARBITRUM_ONE]=yK,XV[zV.POLYGON]=mK,XV[zV.POLYGON_MUMBAI]=mK,XV[zV.GOERLI]=pK,XV[zV.CELO]=bK,XV[zV.CELO_ALFAJORES]=bK,XV[zV.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},XV[zV.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},XV[zV.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},XV[zV.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},XV[zV.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},XV[zV.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},XV[zV.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},XV),vK=_extends$1({},rK.reduce((function(D,te){return D[te]=gK[te].v3CoreFactoryAddress,D}),{})),wK=_extends$1({},rK.reduce((function(D,te){var he=gK[te].v3MigratorAddress;return he&&(D[te]=he),D}),{})),_K=_extends$1({},rK.reduce((function(D,te){return D[te]=gK[te].multicallAddress,D}),{})),TK=constructSameAddressMap$1("0x5e4be8Bc9637f0EAA1A755019e06A68ce081D58F"),AK=((QV={})[zV.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",QV),EK=((ZV={})[zV.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",ZV),PK=constructSameAddressMap$1("0x1a9C8182C09F50C8318d769245beA52c32BE35BC"),SK=((YV={})[zV.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",YV),CK=((eK={})[zV.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",eK),IK=_extends$1({},rK.reduce((function(D,te){return D[te]=gK[te].quoterAddress,D}),{})),RK=_extends$1({},rK.reduce((function(D,te){var he=gK[te].nonfungiblePositionManagerAddress;return he&&(D[te]=he),D}),{})),kK=_extends$1({},constructSameAddressMap$1("0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e")),OK=((tK={})[zV.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",tK),xK=_extends$1({},rK.reduce((function(D,te){var he=gK[te].tickLensAddress;return he&&(D[te]=he),D}),{})),NK=rK.reduce((function(D,te){var he=gK[te].v1MixedRouteQuoterAddress;return he&&(D[te]=he),D}),{});!function(D){D[D.EXACT_INPUT=0]="EXACT_INPUT",D[D.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(aK||(aK={})),function(D){D[D.ROUND_DOWN=0]="ROUND_DOWN",D[D.ROUND_HALF_UP=1]="ROUND_HALF_UP",D[D.ROUND_UP=2]="ROUND_UP"}(iK||(iK={}));var MK,BK,FK=Fz.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),DK=Wz(Uz),LK=Wz(qz),UK=((MK={})[iK.ROUND_DOWN]=DK.ROUND_DOWN,MK[iK.ROUND_HALF_UP]=DK.ROUND_HALF_UP,MK[iK.ROUND_UP]=DK.ROUND_UP,MK),$K=((BK={})[iK.ROUND_DOWN]=0,BK[iK.ROUND_HALF_UP]=1,BK[iK.ROUND_UP]=3,BK),qK=function(){function Fraction(D,te){void 0===te&&(te=Fz.BigInt(1)),this.numerator=Fz.BigInt(D),this.denominator=Fz.BigInt(te)}Fraction.tryParseFraction=function tryParseFraction(D){if(D instanceof Fz||"number"==typeof D||"string"==typeof D)return new Fraction(D);if("numerator"in D&&"denominator"in D)return D;throw new Error("Could not parse fraction")};var D=Fraction.prototype;return D.invert=function invert(){return new Fraction(this.denominator,this.numerator)},D.add=function add(D){var te=Fraction.tryParseFraction(D);return Fz.equal(this.denominator,te.denominator)?new Fraction(Fz.add(this.numerator,te.numerator),this.denominator):new Fraction(Fz.add(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator)),Fz.multiply(this.denominator,te.denominator))},D.subtract=function subtract(D){var te=Fraction.tryParseFraction(D);return Fz.equal(this.denominator,te.denominator)?new Fraction(Fz.subtract(this.numerator,te.numerator),this.denominator):new Fraction(Fz.subtract(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator)),Fz.multiply(this.denominator,te.denominator))},D.lessThan=function lessThan(D){var te=Fraction.tryParseFraction(D);return Fz.lessThan(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.equalTo=function equalTo(D){var te=Fraction.tryParseFraction(D);return Fz.equal(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.greaterThan=function greaterThan(D){var te=Fraction.tryParseFraction(D);return Fz.greaterThan(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.multiply=function multiply(D){var te=Fraction.tryParseFraction(D);return new Fraction(Fz.multiply(this.numerator,te.numerator),Fz.multiply(this.denominator,te.denominator))},D.divide=function divide(D){var te=Fraction.tryParseFraction(D);return new Fraction(Fz.multiply(this.numerator,te.denominator),Fz.multiply(this.denominator,te.numerator))},D.toSignificant=function toSignificant(D,te,he){void 0===te&&(te={groupSeparator:""}),void 0===he&&(he=iK.ROUND_HALF_UP),Number.isInteger(D)||invariant(),D>0||invariant(),DK.set({precision:D+1,rounding:UK[he]});var ye=new DK(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(D);return ye.toFormat(ye.decimalPlaces(),te)},D.toFixed=function toFixed(D,te,he){return void 0===te&&(te={groupSeparator:""}),void 0===he&&(he=iK.ROUND_HALF_UP),Number.isInteger(D)||invariant(),D>=0||invariant(),LK.DP=D,LK.RM=$K[he],new LK(this.numerator.toString()).div(this.denominator.toString()).toFormat(D,te)},_createClass$2(Fraction,[{key:"quotient",get:function get(){return Fz.divide(this.numerator,this.denominator)}},{key:"remainder",get:function get(){return new Fraction(Fz.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function get(){return new Fraction(this.numerator,this.denominator)}}]),Fraction}(),GK=Wz(qz),jK=function(D){function CurrencyAmount(te,he,ye){var be;return be=D.call(this,he,ye)||this,Fz.lessThanOrEqual(be.quotient,FK)||invariant(),be.currency=te,be.decimalScale=Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(te.decimals)),be}_inheritsLoose$2(CurrencyAmount,D),CurrencyAmount.fromRawAmount=function fromRawAmount(D,te){return new CurrencyAmount(D,te)},CurrencyAmount.fromFractionalAmount=function fromFractionalAmount(D,te,he){return new CurrencyAmount(D,te,he)};var te=CurrencyAmount.prototype;return te.add=function add(te){this.currency.equals(te.currency)||invariant();var he=D.prototype.add.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.subtract=function subtract(te){this.currency.equals(te.currency)||invariant();var he=D.prototype.subtract.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.multiply=function multiply(te){var he=D.prototype.multiply.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.divide=function divide(te){var he=D.prototype.divide.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.toSignificant=function toSignificant(te,he,ye){return void 0===te&&(te=6),void 0===ye&&(ye=iK.ROUND_DOWN),D.prototype.divide.call(this,this.decimalScale).toSignificant(te,he,ye)},te.toFixed=function toFixed(te,he,ye){return void 0===te&&(te=this.currency.decimals),void 0===ye&&(ye=iK.ROUND_DOWN),te<=this.currency.decimals||invariant(),D.prototype.divide.call(this,this.decimalScale).toFixed(te,he,ye)},te.toExact=function toExact(D){return void 0===D&&(D={groupSeparator:""}),GK.DP=this.currency.decimals,new GK(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(D)},_createClass$2(CurrencyAmount,[{key:"wrapped",get:function get(){return this.currency.isToken?this:CurrencyAmount.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),CurrencyAmount}(qK),HK=new qK(Fz.BigInt(100));function toPercent$1(D){return new zK(D.numerator,D.denominator)}var zK=function(D){function Percent(){var te;return(te=D.apply(this,arguments)||this).isPercent=!0,te}_inheritsLoose$2(Percent,D);var te=Percent.prototype;return te.add=function add(te){return toPercent$1(D.prototype.add.call(this,te))},te.subtract=function subtract(te){return toPercent$1(D.prototype.subtract.call(this,te))},te.multiply=function multiply(te){return toPercent$1(D.prototype.multiply.call(this,te))},te.divide=function divide(te){return toPercent$1(D.prototype.divide.call(this,te))},te.toSignificant=function toSignificant(te,he,ye){return void 0===te&&(te=5),D.prototype.multiply.call(this,HK).toSignificant(te,he,ye)},te.toFixed=function toFixed(te,he,ye){return void 0===te&&(te=2),D.prototype.multiply.call(this,HK).toFixed(te,he,ye)},Percent}(qK),WK=function(D){function Price(){for(var te,he,ye,be,ve,we=arguments.length,_e=new Array(we),Pe=0;Pe<we;Pe++)_e[Pe]=arguments[Pe];if(4===_e.length)he=_e[0],ye=_e[1],be=_e[2],ve=_e[3];else{var Ie=_e[0].quoteAmount.divide(_e[0].baseAmount),Re=[_e[0].baseAmount.currency,_e[0].quoteAmount.currency,Ie.denominator,Ie.numerator];he=Re[0],ye=Re[1],be=Re[2],ve=Re[3]}return(te=D.call(this,ve,be)||this).baseCurrency=he,te.quoteCurrency=ye,te.scalar=new qK(Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(he.decimals)),Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(ye.decimals))),te}_inheritsLoose$2(Price,D);var te=Price.prototype;return te.invert=function invert(){return new Price(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},te.multiply=function multiply(te){this.quoteCurrency.equals(te.baseCurrency)||invariant();var he=D.prototype.multiply.call(this,te);return new Price(this.baseCurrency,te.quoteCurrency,he.denominator,he.numerator)},te.quote=function quote(te){te.currency.equals(this.baseCurrency)||invariant();var he=D.prototype.multiply.call(this,te);return jK.fromFractionalAmount(this.quoteCurrency,he.numerator,he.denominator)},te.toSignificant=function toSignificant(D,te,he){return void 0===D&&(D=6),this.adjustedForDecimals.toSignificant(D,te,he)},te.toFixed=function toFixed(D,te,he){return void 0===D&&(D=4),this.adjustedForDecimals.toFixed(D,te,he)},_createClass$2(Price,[{key:"adjustedForDecimals",get:function get(){return D.prototype.multiply.call(this,this.scalar)}}]),Price}(qK),VK=function BaseCurrency(D,te,he,ye){Number.isSafeInteger(D)||invariant(),te>=0&&te<255&&Number.isInteger(te)||invariant(),this.chainId=D,this.decimals=te,this.symbol=he,this.name=ye},KK=function(D){function NativeCurrency(){var te;return(te=D.apply(this,arguments)||this).isNative=!0,te.isToken=!1,te}return _inheritsLoose$2(NativeCurrency,D),NativeCurrency}(VK);function validateAndParseAddress$1(D){try{return getAddress$2(D)}catch(te){throw new Error(D+" is not a valid address.")}}var JK=/^0x[0-9a-fA-F]{40}$/;var XK,QK=function(D){function Token(te,he,ye,be,ve,we){var _e;return(_e=D.call(this,te,ye,be,ve)||this).isNative=!1,_e.isToken=!0,_e.address=we?function checkValidAddress$1(D){if(JK.test(D))return D;throw new Error(D+" is not a valid address.")}(he):validateAndParseAddress$1(he),_e}_inheritsLoose$2(Token,D);var te=Token.prototype;return te.equals=function equals(D){return D.isToken&&this.chainId===D.chainId&&this.address.toLowerCase()===D.address.toLowerCase()},te.sortsBefore=function sortsBefore(D){return this.chainId!==D.chainId&&invariant(),this.address.toLowerCase()===D.address.toLowerCase()&&invariant(),this.address.toLowerCase()<D.address.toLowerCase()},_createClass$2(Token,[{key:"wrapped",get:function get(){return this}}]),Token}(VK),ZK=((XK={})[1]=new QK(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),XK[3]=new QK(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),XK[4]=new QK(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),XK[5]=new QK(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),XK[42]=new QK(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),XK[10]=new QK(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),XK[69]=new QK(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),XK[42161]=new QK(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),XK[421611]=new QK(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether"),XK),YK=function(D){function Ether(te){return D.call(this,te,18,"ETH","Ether")||this}return _inheritsLoose$2(Ether,D),Ether.onChain=function onChain(D){var te;return null!=(te=this._etherCache[D])?te:this._etherCache[D]=new Ether(D)},Ether.prototype.equals=function equals(D){return D.isNative&&D.chainId===this.chainId},_createClass$2(Ether,[{key:"wrapped",get:function get(){var D=ZK[this.chainId];return D||invariant(),D}}]),Ether}(KK);YK._etherCache={};var eJ=Fz.BigInt(Number.MAX_SAFE_INTEGER),tJ=Fz.BigInt(0),rJ=Fz.BigInt(1),nJ=Fz.BigInt(2);var aJ,iJ,sJ,oJ=Object.freeze({__proto__:null,ARGENT_WALLET_DETECTOR_ADDRESS:CK,CHAIN_TO_ADDRESSES_MAP:gK,get ChainId(){return zV},CurrencyAmount:jK,ENS_REGISTRAR_ADDRESSES:kK,Ether:YK,Fraction:qK,GOVERNANCE_ALPHA_V0_ADDRESSES:TK,GOVERNANCE_ALPHA_V1_ADDRESSES:AK,GOVERNANCE_BRAVO_ADDRESSES:EK,MERKLE_DISTRIBUTOR_ADDRESS:SK,MIXED_ROUTE_QUOTER_V1_ADDRESSES:NK,MULTICALL_ADDRESSES:_K,MaxUint256:FK,NONFUNGIBLE_POSITION_MANAGER_ADDRESSES:RK,NativeCurrency:KK,get NativeCurrencyName(){return JV},Percent:zK,Price:WK,QUOTER_ADDRESSES:IK,get Rounding(){return iK},SOCKS_CONTROLLER_ADDRESSES:OK,SUPPORTED_CHAINS:rK,SWAP_ROUTER_02_ADDRESSES:function SWAP_ROUTER_02_ADDRESSES(D){return D==zV.BNB?gK[D].swapRouter02Address:"0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45"},TICK_LENS_ADDRESSES:xK,TIMELOCK_ADDRESSES:PK,Token:QK,get TradeType(){return aK},UNISWAP_NFT_AIRDROP_CLAIM_ADDRESS:"0x8B799381ac40b838BBA4131ffB26197C432AFe78",UNI_ADDRESSES:sK,V2_FACTORY_ADDRESS:oK,V2_FACTORY_ADDRESSES:cK,V2_ROUTER_ADDRESS:dK,V2_ROUTER_ADDRESSES:uK,V3_CORE_FACTORY_ADDRESSES:vK,V3_MIGRATOR_ADDRESSES:wK,WETH9:ZK,computePriceImpact:function computePriceImpact$1(D,te,he){var ye=D.quote(te),be=ye.subtract(he).divide(ye);return new zK(be.numerator,be.denominator)},sortedInsert:function sortedInsert$1(D,te,he,ye){if(he>0||invariant(),D.length<=he||invariant(),0===D.length)return D.push(te),null;var be=D.length===he;if(be&&ye(D[D.length-1],te)<=0)return te;for(var ve=0,we=D.length;ve<we;){var _e=ve+we>>>1;ye(D[_e],te)<=0?ve=_e+1:we=_e}return D.splice(ve,0,te),be?D.pop():null},sqrt:function sqrt$1(D){if(Fz.greaterThanOrEqual(D,tJ)||invariant(),Fz.lessThan(D,eJ))return Fz.BigInt(Math.floor(Math.sqrt(Fz.toNumber(D))));var te,he;for(te=D,he=Fz.add(Fz.divide(D,nJ),rJ);Fz.lessThan(he,te);)te=he,he=Fz.divide(Fz.add(Fz.divide(D,he),he),nJ);return te},validateAndParseAddress:validateAndParseAddress$1}),cJ=getAugmentedNamespace$1(oJ),dJ={_format:"hh-sol-artifact-1",contractName:"IPeripheryPaymentsWithFeeExtended",sourceName:"contracts/interfaces/IPeripheryPaymentsWithFeeExtended.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"pull",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"refundETH",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"sweepToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"sweepTokenWithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"unwrapWETH9",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"},{internalType:"uint256",name:"feeBips",type:"uint256"},{internalType:"address",name:"feeRecipient",type:"address"}],name:"unwrapWETH9WithFee",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"value",type:"uint256"}],name:"wrapETH",outputs:[],stateMutability:"payable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}},uJ={_format:"hh-sol-artifact-1",contractName:"ISwapRouter02",sourceName:"contracts/interfaces/ISwapRouter02.sol",abi:[{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMax",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"approveZeroThenMaxMinusOne",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes",name:"data",type:"bytes"}],name:"callPositionManager",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactInputParams",name:"params",type:"tuple"}],name:"exactInput",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactInputSingleParams",name:"params",type:"tuple"}],name:"exactInputSingle",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactOutputParams",name:"params",type:"tuple"}],name:"exactOutput",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactOutputSingleParams",name:"params",type:"tuple"}],name:"exactOutputSingle",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"getApprovalType",outputs:[{internalType:"enum IApproveAndCall.ApprovalType",name:"",type:"uint8"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"}],internalType:"struct IApproveAndCall.IncreaseLiquidityParams",name:"params",type:"tuple"}],name:"increaseLiquidity",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address",name:"token0",type:"address"},{internalType:"address",name:"token1",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint256",name:"amount0Min",type:"uint256"},{internalType:"uint256",name:"amount1Min",type:"uint256"},{internalType:"address",name:"recipient",type:"address"}],internalType:"struct IApproveAndCall.MintParams",name:"params",type:"tuple"}],name:"mint",outputs:[{internalType:"bytes",name:"result",type:"bytes"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"previousBlockhash",type:"bytes32"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermit",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowed",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitAllowedIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"token",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"selfPermitIfNecessary",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMin",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"swapExactTokensForTokens",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMax",type:"uint256"},{internalType:"address[]",name:"path",type:"address[]"},{internalType:"address",name:"to",type:"address"}],name:"swapTokensForExactTokens",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"int256",name:"amount0Delta",type:"int256"},{internalType:"int256",name:"amount1Delta",type:"int256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"uniswapV3SwapCallback",outputs:[],stateMutability:"nonpayable",type:"function"}],bytecode:"0x",deployedBytecode:"0x",linkReferences:{},deployedLinkReferences:{}};function _createClass$1(D,te,he){return te&&function _defineProperties$1(D,te){for(var he=0;he<te.length;he++){var ye=te[he];ye.enumerable=ye.enumerable||!1,ye.configurable=!0,"value"in ye&&(ye.writable=!0),Object.defineProperty(D,ye.key,ye)}}(D.prototype,te),D}function _extends(){return _extends=Object.assign||function(D){for(var te=1;te<arguments.length;te++){var he=arguments[te];for(var ye in he)Object.prototype.hasOwnProperty.call(he,ye)&&(D[ye]=he[ye])}return D},_extends.apply(this,arguments)}function _inheritsLoose$1(D,te){D.prototype=Object.create(te.prototype),D.prototype.constructor=D,D.__proto__=te}!function(D){D[D.MAINNET=1]="MAINNET",D[D.GOERLI=5]="GOERLI",D[D.SEPOLIA=11155111]="SEPOLIA",D[D.OPTIMISM=10]="OPTIMISM",D[D.OPTIMISM_GOERLI=420]="OPTIMISM_GOERLI",D[D.ARBITRUM_ONE=42161]="ARBITRUM_ONE",D[D.ARBITRUM_GOERLI=421613]="ARBITRUM_GOERLI",D[D.POLYGON=137]="POLYGON",D[D.POLYGON_MUMBAI=80001]="POLYGON_MUMBAI",D[D.CELO=42220]="CELO",D[D.CELO_ALFAJORES=44787]="CELO_ALFAJORES",D[D.GNOSIS=100]="GNOSIS",D[D.MOONBEAM=1284]="MOONBEAM",D[D.BNB=56]="BNB",D[D.AVALANCHE=43114]="AVALANCHE",D[D.BASE_GOERLI=84531]="BASE_GOERLI",D[D.BASE=8453]="BASE"}(aJ||(aJ={})),aJ.MAINNET,aJ.OPTIMISM,aJ.OPTIMISM_GOERLI,aJ.ARBITRUM_ONE,aJ.ARBITRUM_GOERLI,aJ.POLYGON,aJ.POLYGON_MUMBAI,aJ.GOERLI,aJ.SEPOLIA,aJ.CELO_ALFAJORES,aJ.CELO,aJ.BNB,aJ.AVALANCHE,aJ.BASE,aJ.BASE_GOERLI,function(D){D.ETHER="ETH",D.MATIC="MATIC",D.CELO="CELO",D.GNOSIS="XDAI",D.MOONBEAM="GLMR",D.BNB="BNB",D.AVAX="AVAX"}(iJ||(iJ={}));aJ.MAINNET,aJ.GOERLI;aJ.OPTIMISM,aJ.ARBITRUM_ONE,aJ.POLYGON,aJ.POLYGON_MUMBAI,aJ.SEPOLIA;var fJ,lJ,pJ={v3CoreFactoryAddress:"0x1F98431c8aD98523631AE4a59f267346ea31F984",multicallAddress:"0x1F98415757620B543A52E61c46B32eB19261F984",quoterAddress:"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6",v3MigratorAddress:"0xA5644E29708357803b5A882D272c41cC0dF92B34",nonfungiblePositionManagerAddress:"0xC36442b4a4522E871399CD717aBDD847Ab11FE88"},hJ=_extends({},pJ,{v1MixedRouteQuoterAddress:"0x84E44095eeBfEC7793Cd7d5b57B7e401D7f1cA2E"}),yJ=_extends({},pJ,{v1MixedRouteQuoterAddress:"0xBa60b6e6fF25488308789E6e0A65D838be34194e"}),mJ=pJ,bJ=_extends({},pJ,{multicallAddress:"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB",tickLensAddress:"0xbfd8137f7d1516D3ea5cA83523914859ec47F573"}),gJ=pJ,vJ={v3CoreFactoryAddress:"0xAfE208a311B21f13EF87E33A90049fC17A7acDEc",multicallAddress:"0x633987602DE5C4F337e3DbF265303A1080324204",quoterAddress:"0x82825d0554fA07f7FC52Ab63c961F330fdEFa8E8",v3MigratorAddress:"0x3cFd4d48EDfDCC53D3f173F596f621064614C582",nonfungiblePositionManagerAddress:"0x3d79EdAaBC0EaB6F08ED885C05Fc0B014290D95A",tickLensAddress:"0x5f115D9113F88e0a0Db1b5033D90D4a9690AcD3D"};(sJ={})[aJ.MAINNET]=hJ,sJ[aJ.OPTIMISM]=mJ,sJ[aJ.ARBITRUM_ONE]=bJ,sJ[aJ.POLYGON]=gJ,sJ[aJ.POLYGON_MUMBAI]=gJ,sJ[aJ.GOERLI]=yJ,sJ[aJ.CELO]=vJ,sJ[aJ.CELO_ALFAJORES]=vJ,sJ[aJ.BNB]={v3CoreFactoryAddress:"0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",multicallAddress:"0x963Df249eD09c358A4819E39d9Cd5736c3087184",quoterAddress:"0x78D78E420Da98ad378D7799bE8f4AF69033EB077",v3MigratorAddress:"0x32681814957e0C13117ddc0c2aba232b5c9e760f",nonfungiblePositionManagerAddress:"0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613",tickLensAddress:"0xD9270014D396281579760619CCf4c3af0501A47C",swapRouter02Address:"0xB971eF87ede563556b2ED4b1C0b0019111Dd85d2"},sJ[aJ.OPTIMISM_GOERLI]={v3CoreFactoryAddress:"0xB656dA17129e7EB733A557f4EBc57B76CFbB5d10",multicallAddress:"0x07F2D8a2a02251B62af965f22fC4744A5f96BCCd",quoterAddress:"0x9569CbA925c8ca2248772A9A4976A516743A246F",v3MigratorAddress:"0xf6c55fBe84B1C8c3283533c53F51bC32F5C7Aba8",nonfungiblePositionManagerAddress:"0x39Ca85Af2F383190cBf7d7c41ED9202D27426EF6",tickLensAddress:"0xe6140Bd164b63E8BfCfc40D5dF952f83e171758e"},sJ[aJ.ARBITRUM_GOERLI]={v3CoreFactoryAddress:"0x4893376342d5D7b3e31d4184c08b265e5aB2A3f6",multicallAddress:"0x8260CB40247290317a4c062F3542622367F206Ee",quoterAddress:"0x1dd92b83591781D0C6d98d07391eea4b9a6008FA",v3MigratorAddress:"0xA815919D2584Ac3F76ea9CB62E6Fd40a43BCe0C3",nonfungiblePositionManagerAddress:"0x622e4726a167799826d1E1D150b076A7725f5D81",tickLensAddress:"0xb52429333da969a0C79a60930a4Bf0020E5D1DE8"},sJ[aJ.SEPOLIA]={v3CoreFactoryAddress:"0x0227628f3F023bb0B980b67D528571c95c6DaC1c",multicallAddress:"0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07",quoterAddress:"0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3",v3MigratorAddress:"0x729004182cF005CEC8Bd85df140094b6aCbe8b15",nonfungiblePositionManagerAddress:"0x1238536071E1c677A632429e3655c799b22cDA52",tickLensAddress:"0xd7f33bcdb21b359c8ee6f0251d30e94832baad07"},sJ[aJ.AVALANCHE]={v3CoreFactoryAddress:"0x740b1c1de25031C31FF4fC9A62f554A55cdC1baD",multicallAddress:"0x0139141Cd4Ee88dF3Cdb65881D411bAE271Ef0C2",quoterAddress:"0xbe0F5544EC67e9B3b2D979aaA43f18Fd87E6257F",v3MigratorAddress:"0x44f5f1f5E452ea8d29C890E8F6e893fC0f1f0f97",nonfungiblePositionManagerAddress:"0x655C406EBFa14EE2006250925e54ec43AD184f8B",tickLensAddress:"0xEB9fFC8bf81b4fFd11fb6A63a6B0f098c6e21950",swapRouter02Address:"0xbb00FF08d01D300023C629E8fFfFcb65A5a578cE"},sJ[aJ.BASE]={v3CoreFactoryAddress:"0x33128a8fC17869897dcE68Ed026d694621f6FDfD",multicallAddress:"0x091e99cb1C49331a94dD62755D168E941AbD0693",quoterAddress:"0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a",v3MigratorAddress:"0x23cF10b1ee3AdfCA73B0eF17C07F7577e7ACd2d7",nonfungiblePositionManagerAddress:"0x03a520b32C04BF3bEEf7BEb72E919cf822Ed34f1",tickLensAddress:"0x0CdeE061c75D43c82520eD998C23ac2991c9ac6d",swapRouter02Address:"0x2626664c2603336E57B271c5C0b26F421741e481"},sJ[aJ.BASE_GOERLI]={v3CoreFactoryAddress:"0x9323c1d6D800ed51Bd7C6B216cfBec678B7d0BC2",multicallAddress:"0xB206027a9E0E13F05eBEFa5D2402Bab3eA716439",quoterAddress:"0xedf539058e28E5937dAef3f69cEd0b25fbE66Ae9",v3MigratorAddress:"0x3efe5d02a04b7351D671Db7008ec6eBA9AD9e3aE",nonfungiblePositionManagerAddress:"0x3c61369ef0D1D2AFa70d8feC2F31C5D6Ce134F30",tickLensAddress:"0x1acB873Ee909D0c98adB18e4474943249F931b92",swapRouter02Address:"0x8357227D4eDc78991Db6FDB9bD6ADE250536dE1d"},{}[aJ.MAINNET]="0xC4e172459f1E7939D522503B81AFAaC1014CE6F6",{}[aJ.MAINNET]="0x408ED6354d4973f66138C91495F2f2FCbd8724C3",{}[aJ.MAINNET]="0x090D4613473dEE047c3f2706764f49E0821D256e",{}[aJ.MAINNET]="0xeca4B0bDBf7c55E9b7925919d03CbF8Dc82537E8",{}[aJ.MAINNET]="0x65770b5283117639760beA3F867b69b3697a91dd",function(D){D[D.EXACT_INPUT=0]="EXACT_INPUT",D[D.EXACT_OUTPUT=1]="EXACT_OUTPUT"}(fJ||(fJ={})),function(D){D[D.ROUND_DOWN=0]="ROUND_DOWN",D[D.ROUND_HALF_UP=1]="ROUND_HALF_UP",D[D.ROUND_UP=2]="ROUND_UP"}(lJ||(lJ={}));var wJ,_J,TJ=Fz.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),AJ=Wz(Uz),EJ=Wz(qz),PJ=((wJ={})[lJ.ROUND_DOWN]=AJ.ROUND_DOWN,wJ[lJ.ROUND_HALF_UP]=AJ.ROUND_HALF_UP,wJ[lJ.ROUND_UP]=AJ.ROUND_UP,wJ),SJ=((_J={})[lJ.ROUND_DOWN]=0,_J[lJ.ROUND_HALF_UP]=1,_J[lJ.ROUND_UP]=3,_J),CJ=function(){function Fraction(D,te){void 0===te&&(te=Fz.BigInt(1)),this.numerator=Fz.BigInt(D),this.denominator=Fz.BigInt(te)}Fraction.tryParseFraction=function tryParseFraction(D){if(D instanceof Fz||"number"==typeof D||"string"==typeof D)return new Fraction(D);if("numerator"in D&&"denominator"in D)return D;throw new Error("Could not parse fraction")};var D=Fraction.prototype;return D.invert=function invert(){return new Fraction(this.denominator,this.numerator)},D.add=function add(D){var te=Fraction.tryParseFraction(D);return Fz.equal(this.denominator,te.denominator)?new Fraction(Fz.add(this.numerator,te.numerator),this.denominator):new Fraction(Fz.add(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator)),Fz.multiply(this.denominator,te.denominator))},D.subtract=function subtract(D){var te=Fraction.tryParseFraction(D);return Fz.equal(this.denominator,te.denominator)?new Fraction(Fz.subtract(this.numerator,te.numerator),this.denominator):new Fraction(Fz.subtract(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator)),Fz.multiply(this.denominator,te.denominator))},D.lessThan=function lessThan(D){var te=Fraction.tryParseFraction(D);return Fz.lessThan(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.equalTo=function equalTo(D){var te=Fraction.tryParseFraction(D);return Fz.equal(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.greaterThan=function greaterThan(D){var te=Fraction.tryParseFraction(D);return Fz.greaterThan(Fz.multiply(this.numerator,te.denominator),Fz.multiply(te.numerator,this.denominator))},D.multiply=function multiply(D){var te=Fraction.tryParseFraction(D);return new Fraction(Fz.multiply(this.numerator,te.numerator),Fz.multiply(this.denominator,te.denominator))},D.divide=function divide(D){var te=Fraction.tryParseFraction(D);return new Fraction(Fz.multiply(this.numerator,te.denominator),Fz.multiply(this.denominator,te.numerator))},D.toSignificant=function toSignificant(D,te,he){void 0===te&&(te={groupSeparator:""}),void 0===he&&(he=lJ.ROUND_HALF_UP),Number.isInteger(D)||invariant(),D>0||invariant(),AJ.set({precision:D+1,rounding:PJ[he]});var ye=new AJ(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(D);return ye.toFormat(ye.decimalPlaces(),te)},D.toFixed=function toFixed(D,te,he){return void 0===te&&(te={groupSeparator:""}),void 0===he&&(he=lJ.ROUND_HALF_UP),Number.isInteger(D)||invariant(),D>=0||invariant(),EJ.DP=D,EJ.RM=SJ[he],new EJ(this.numerator.toString()).div(this.denominator.toString()).toFormat(D,te)},_createClass$1(Fraction,[{key:"quotient",get:function get(){return Fz.divide(this.numerator,this.denominator)}},{key:"remainder",get:function get(){return new Fraction(Fz.remainder(this.numerator,this.denominator),this.denominator)}},{key:"asFraction",get:function get(){return new Fraction(this.numerator,this.denominator)}}]),Fraction}(),IJ=Wz(qz),RJ=function(D){function CurrencyAmount(te,he,ye){var be;return be=D.call(this,he,ye)||this,Fz.lessThanOrEqual(be.quotient,TJ)||invariant(),be.currency=te,be.decimalScale=Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(te.decimals)),be}_inheritsLoose$1(CurrencyAmount,D),CurrencyAmount.fromRawAmount=function fromRawAmount(D,te){return new CurrencyAmount(D,te)},CurrencyAmount.fromFractionalAmount=function fromFractionalAmount(D,te,he){return new CurrencyAmount(D,te,he)};var te=CurrencyAmount.prototype;return te.add=function add(te){this.currency.equals(te.currency)||invariant();var he=D.prototype.add.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.subtract=function subtract(te){this.currency.equals(te.currency)||invariant();var he=D.prototype.subtract.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.multiply=function multiply(te){var he=D.prototype.multiply.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.divide=function divide(te){var he=D.prototype.divide.call(this,te);return CurrencyAmount.fromFractionalAmount(this.currency,he.numerator,he.denominator)},te.toSignificant=function toSignificant(te,he,ye){return void 0===te&&(te=6),void 0===ye&&(ye=lJ.ROUND_DOWN),D.prototype.divide.call(this,this.decimalScale).toSignificant(te,he,ye)},te.toFixed=function toFixed(te,he,ye){return void 0===te&&(te=this.currency.decimals),void 0===ye&&(ye=lJ.ROUND_DOWN),te<=this.currency.decimals||invariant(),D.prototype.divide.call(this,this.decimalScale).toFixed(te,he,ye)},te.toExact=function toExact(D){return void 0===D&&(D={groupSeparator:""}),IJ.DP=this.currency.decimals,new IJ(this.quotient.toString()).div(this.decimalScale.toString()).toFormat(D)},_createClass$1(CurrencyAmount,[{key:"wrapped",get:function get(){return this.currency.isToken?this:CurrencyAmount.fromFractionalAmount(this.currency.wrapped,this.numerator,this.denominator)}}]),CurrencyAmount}(CJ),kJ=new CJ(Fz.BigInt(100));function toPercent(D){return new OJ(D.numerator,D.denominator)}var OJ=function(D){function Percent(){var te;return(te=D.apply(this,arguments)||this).isPercent=!0,te}_inheritsLoose$1(Percent,D);var te=Percent.prototype;return te.add=function add(te){return toPercent(D.prototype.add.call(this,te))},te.subtract=function subtract(te){return toPercent(D.prototype.subtract.call(this,te))},te.multiply=function multiply(te){return toPercent(D.prototype.multiply.call(this,te))},te.divide=function divide(te){return toPercent(D.prototype.divide.call(this,te))},te.toSignificant=function toSignificant(te,he,ye){return void 0===te&&(te=5),D.prototype.multiply.call(this,kJ).toSignificant(te,he,ye)},te.toFixed=function toFixed(te,he,ye){return void 0===te&&(te=2),D.prototype.multiply.call(this,kJ).toFixed(te,he,ye)},Percent}(CJ),xJ=function(D){function Price(){for(var te,he,ye,be,ve,we=arguments.length,_e=new Array(we),Pe=0;Pe<we;Pe++)_e[Pe]=arguments[Pe];if(4===_e.length)he=_e[0],ye=_e[1],be=_e[2],ve=_e[3];else{var Ie=_e[0].quoteAmount.divide(_e[0].baseAmount),Re=[_e[0].baseAmount.currency,_e[0].quoteAmount.currency,Ie.denominator,Ie.numerator];he=Re[0],ye=Re[1],be=Re[2],ve=Re[3]}return(te=D.call(this,ve,be)||this).baseCurrency=he,te.quoteCurrency=ye,te.scalar=new CJ(Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(he.decimals)),Fz.exponentiate(Fz.BigInt(10),Fz.BigInt(ye.decimals))),te}_inheritsLoose$1(Price,D);var te=Price.prototype;return te.invert=function invert(){return new Price(this.quoteCurrency,this.baseCurrency,this.numerator,this.denominator)},te.multiply=function multiply(te){this.quoteCurrency.equals(te.baseCurrency)||invariant();var he=D.prototype.multiply.call(this,te);return new Price(this.baseCurrency,te.quoteCurrency,he.denominator,he.numerator)},te.quote=function quote(te){te.currency.equals(this.baseCurrency)||invariant();var he=D.prototype.multiply.call(this,te);return RJ.fromFractionalAmount(this.quoteCurrency,he.numerator,he.denominator)},te.toSignificant=function toSignificant(D,te,he){return void 0===D&&(D=6),this.adjustedForDecimals.toSignificant(D,te,he)},te.toFixed=function toFixed(D,te,he){return void 0===D&&(D=4),this.adjustedForDecimals.toFixed(D,te,he)},_createClass$1(Price,[{key:"adjustedForDecimals",get:function get(){return D.prototype.multiply.call(this,this.scalar)}}]),Price}(CJ),NJ=function BaseCurrency(D,te,he,ye){Number.isSafeInteger(D)||invariant(),te>=0&&te<255&&Number.isInteger(te)||invariant(),this.chainId=D,this.decimals=te,this.symbol=he,this.name=ye};function validateAndParseAddress(D){try{return getAddress$2(D)}catch(te){throw new Error(D+" is not a valid address.")}}var MJ=/^0x[0-9a-fA-F]{40}$/;var BJ,FJ=function(D){function Token(te,he,ye,be,ve,we){var _e;return(_e=D.call(this,te,ye,be,ve)||this).isNative=!1,_e.isToken=!0,_e.address=we?function checkValidAddress(D){if(MJ.test(D))return D;throw new Error(D+" is not a valid address.")}(he):validateAndParseAddress(he),_e}_inheritsLoose$1(Token,D);var te=Token.prototype;return te.equals=function equals(D){return D.isToken&&this.chainId===D.chainId&&this.address.toLowerCase()===D.address.toLowerCase()},te.sortsBefore=function sortsBefore(D){return this.chainId!==D.chainId&&invariant(),this.address.toLowerCase()===D.address.toLowerCase()&&invariant(),this.address.toLowerCase()<D.address.toLowerCase()},_createClass$1(Token,[{key:"wrapped",get:function get(){return this}}]),Token}(NJ);function sortedInsert(D,te,he,ye){if(he>0||invariant(),D.length<=he||invariant(),0===D.length)return D.push(te),null;var be=D.length===he;if(be&&ye(D[D.length-1],te)<=0)return te;for(var ve=0,we=D.length;ve<we;){var _e=ve+we>>>1;ye(D[_e],te)<=0?ve=_e+1:we=_e}return D.splice(ve,0,te),be?D.pop():null}(BJ={})[1]=new FJ(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),BJ[3]=new FJ(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),BJ[4]=new FJ(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),BJ[5]=new FJ(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),BJ[42]=new FJ(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),BJ[10]=new FJ(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),BJ[69]=new FJ(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),BJ[42161]=new FJ(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),BJ[421611]=new FJ(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether");var DJ=Fz.BigInt(Number.MAX_SAFE_INTEGER),LJ=Fz.BigInt(0),UJ=Fz.BigInt(1),$J=Fz.BigInt(2);function sqrt(D){if(Fz.greaterThanOrEqual(D,LJ)||invariant(),Fz.lessThan(D,DJ))return Fz.BigInt(Math.floor(Math.sqrt(Fz.toNumber(D))));var te,he;for(te=D,he=Fz.add(Fz.divide(D,$J),UJ);Fz.lessThan(he,te);)te=he,he=Fz.divide(Fz.add(Fz.divide(D,he),he),$J);return te}var qJ="0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f",GJ="0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f",jJ=Fz.BigInt(1e3),HJ=Fz.BigInt(0),zJ=Fz.BigInt(1),WJ=Fz.BigInt(5),VJ=Fz.BigInt(997),KJ=Fz.BigInt(1e3);function _createClass(D,te,he){return te&&function _defineProperties(D,te){for(var he=0;he<te.length;he++){var ye=te[he];ye.enumerable=ye.enumerable||!1,ye.configurable=!0,"value"in ye&&(ye.writable=!0),Object.defineProperty(D,ye.key,ye)}}(D.prototype,te),D}function _inheritsLoose(D,te){D.prototype=Object.create(te.prototype),D.prototype.constructor=D,D.__proto__=te}function _getPrototypeOf(D){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function _getPrototypeOf(D){return D.__proto__||Object.getPrototypeOf(D)},_getPrototypeOf(D)}function _setPrototypeOf(D,te){return _setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(D,te){return D.__proto__=te,D},_setPrototypeOf(D,te)}function _construct(D,te,he){return _construct=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(D){return!1}}()?Reflect.construct:function _construct(D,te,he){var ye=[null];ye.push.apply(ye,te);var be=new(Function.bind.apply(D,ye));return he&&_setPrototypeOf(be,he.prototype),be},_construct.apply(null,arguments)}function _wrapNativeSuper(D){var te="function"==typeof Map?new Map:void 0;return _wrapNativeSuper=function _wrapNativeSuper(D){if(null===D||!function _isNativeFunction(D){return-1!==Function.toString.call(D).indexOf("[native code]")}(D))return D;if("function"!=typeof D)throw new TypeError("Super expression must either be null or a function");if(void 0!==te){if(te.has(D))return te.get(D);te.set(D,Wrapper)}function Wrapper(){return _construct(D,arguments,_getPrototypeOf(this).constructor)}return Wrapper.prototype=Object.create(D.prototype,{constructor:{value:Wrapper,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf(Wrapper,D)},_wrapNativeSuper(D)}function _assertThisInitialized(D){if(void 0===D)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return D}function _arrayLikeToArray(D,te){(null==te||te>D.length)&&(te=D.length);for(var he=0,ye=new Array(te);he<te;he++)ye[he]=D[he];return ye}function _createForOfIteratorHelperLoose(D,te){var he;if("undefined"==typeof Symbol||null==D[Symbol.iterator]){if(Array.isArray(D)||(he=function _unsupportedIterableToArray(D,te){if(D){if("string"==typeof D)return _arrayLikeToArray(D,te);var he=Object.prototype.toString.call(D).slice(8,-1);return"Object"===he&&D.constructor&&(he=D.constructor.name),"Map"===he||"Set"===he?Array.from(D):"Arguments"===he||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(he)?_arrayLikeToArray(D,te):void 0}}(D))||te){he&&(D=he);var ye=0;return function(){return ye>=D.length?{done:!0}:{done:!1,value:D[ye++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(he=D[Symbol.iterator]()).next.bind(he)}var JJ="setPrototypeOf"in Object,XJ=function(D){function InsufficientReservesError(){var te;return(te=D.call(this)||this).isInsufficientReservesError=!0,te.name=te.constructor.name,JJ&&Object.setPrototypeOf(_assertThisInitialized(te),(this instanceof InsufficientReservesError?this.constructor:void 0).prototype),te}return _inheritsLoose(InsufficientReservesError,D),InsufficientReservesError}(_wrapNativeSuper(Error)),QJ=function(D){function InsufficientInputAmountError(){var te;return(te=D.call(this)||this).isInsufficientInputAmountError=!0,te.name=te.constructor.name,JJ&&Object.setPrototypeOf(_assertThisInitialized(te),(this instanceof InsufficientInputAmountError?this.constructor:void 0).prototype),te}return _inheritsLoose(InsufficientInputAmountError,D),InsufficientInputAmountError}(_wrapNativeSuper(Error)),ZJ=function computePairAddress(D){var te=D.factoryAddress,he=D.tokenA,ye=D.tokenB,be=he.sortsBefore(ye)?[he,ye]:[ye,he],ve=be[1];return getCreate2Address(te,keccak256$2(["bytes"],[pack$2(["address","address"],[be[0].address,ve.address])]),GJ)},YJ=function(){function Pair(D,te){var he=D.currency.sortsBefore(te.currency)?[D,te]:[te,D];this.liquidityToken=new FJ(he[0].currency.chainId,Pair.getAddress(he[0].currency,he[1].currency),18,"UNI-V2","Uniswap V2"),this.tokenAmounts=he}Pair.getAddress=function getAddress(D,te){return ZJ({factoryAddress:qJ,tokenA:D,tokenB:te})};var D=Pair.prototype;return D.involvesToken=function involvesToken(D){return D.equals(this.token0)||D.equals(this.token1)},D.priceOf=function priceOf(D){return this.involvesToken(D)||invariant(),D.equals(this.token0)?this.token0Price:this.token1Price},D.reserveOf=function reserveOf(D){return this.involvesToken(D)||invariant(),D.equals(this.token0)?this.reserve0:this.reserve1},D.getOutputAmount=function getOutputAmount(D){if(this.involvesToken(D.currency)||invariant(),Fz.equal(this.reserve0.quotient,HJ)||Fz.equal(this.reserve1.quotient,HJ))throw new XJ;var te=this.reserveOf(D.currency),he=this.reserveOf(D.currency.equals(this.token0)?this.token1:this.token0),ye=Fz.multiply(D.quotient,VJ),be=Fz.multiply(ye,he.quotient),ve=Fz.add(Fz.multiply(te.quotient,KJ),ye),we=RJ.fromRawAmount(D.currency.equals(this.token0)?this.token1:this.token0,Fz.divide(be,ve));if(Fz.equal(we.quotient,HJ))throw new QJ;return[we,new Pair(te.add(D),he.subtract(we))]},D.getInputAmount=function getInputAmount(D){if(this.involvesToken(D.currency)||invariant(),Fz.equal(this.reserve0.quotient,HJ)||Fz.equal(this.reserve1.quotient,HJ)||Fz.greaterThanOrEqual(D.quotient,this.reserveOf(D.currency).quotient))throw new XJ;var te=this.reserveOf(D.currency),he=this.reserveOf(D.currency.equals(this.token0)?this.token1:this.token0),ye=Fz.multiply(Fz.multiply(he.quotient,D.quotient),KJ),be=Fz.multiply(Fz.subtract(te.quotient,D.quotient),VJ),ve=RJ.fromRawAmount(D.currency.equals(this.token0)?this.token1:this.token0,Fz.add(Fz.divide(ye,be),zJ));return[ve,new Pair(he.add(ve),te.subtract(D))]},D.getLiquidityMinted=function getLiquidityMinted(D,te,he){D.currency.equals(this.liquidityToken)||invariant();var ye,be=te.currency.sortsBefore(he.currency)?[te,he]:[he,te];if(be[0].currency.equals(this.token0)&&be[1].currency.equals(this.token1)||invariant(),Fz.equal(D.quotient,HJ))ye=Fz.subtract(sqrt(Fz.multiply(be[0].quotient,be[1].quotient)),jJ);else{var ve=Fz.divide(Fz.multiply(be[0].quotient,D.quotient),this.reserve0.quotient),we=Fz.divide(Fz.multiply(be[1].quotient,D.quotient),this.reserve1.quotient);ye=Fz.lessThanOrEqual(ve,we)?ve:we}if(!Fz.greaterThan(ye,HJ))throw new QJ;return RJ.fromRawAmount(this.liquidityToken,ye)},D.getLiquidityValue=function getLiquidityValue(D,te,he,ye,be){var ve;if(void 0===ye&&(ye=!1),this.involvesToken(D)||invariant(),te.currency.equals(this.liquidityToken)||invariant(),he.currency.equals(this.liquidityToken)||invariant(),Fz.lessThanOrEqual(he.quotient,te.quotient)||invariant(),ye){be||invariant();var we=Fz.BigInt(be);if(Fz.equal(we,HJ))ve=te;else{var _e=sqrt(Fz.multiply(this.reserve0.quotient,this.reserve1.quotient)),Pe=sqrt(we);if(Fz.greaterThan(_e,Pe)){var Ie=Fz.multiply(te.quotient,Fz.subtract(_e,Pe)),Re=Fz.add(Fz.multiply(_e,WJ),Pe),ke=Fz.divide(Ie,Re);ve=te.add(RJ.fromRawAmount(this.liquidityToken,ke))}else ve=te}}else ve=te;return RJ.fromRawAmount(D,Fz.divide(Fz.multiply(he.quotient,this.reserveOf(D).quotient),ve.quotient))},_createClass(Pair,[{key:"token0Price",get:function get(){var D=this.tokenAmounts[1].divide(this.tokenAmounts[0]);return new xJ(this.token0,this.token1,D.denominator,D.numerator)}},{key:"token1Price",get:function get(){var D=this.tokenAmounts[0].divide(this.tokenAmounts[1]);return new xJ(this.token1,this.token0,D.denominator,D.numerator)}},{key:"chainId",get:function get(){return this.token0.chainId}},{key:"token0",get:function get(){return this.tokenAmounts[0].currency}},{key:"token1",get:function get(){return this.tokenAmounts[1].currency}},{key:"reserve0",get:function get(){return this.tokenAmounts[0]}},{key:"reserve1",get:function get(){return this.tokenAmounts[1]}}]),Pair}(),eX=function(){function Route(D,te,he){this._midPrice=null,D.length>0||invariant();var ye=D[0].chainId;D.every((function(D){return D.chainId===ye}))||invariant();var be=te.wrapped;D[0].involvesToken(be)||invariant(),void 0===he||D[D.length-1].involvesToken(he.wrapped)||invariant();for(var ve,we=[be],_e=_createForOfIteratorHelperLoose(D.entries());!(ve=_e()).done;){var Pe=ve.value,Ie=Pe[0],Re=Pe[1],ke=we[Ie];ke.equals(Re.token0)||ke.equals(Re.token1)||invariant();var Oe=ke.equals(Re.token0)?Re.token1:Re.token0;we.push(Oe)}this.pairs=D,this.path=we,this.input=te,this.output=he}return _createClass(Route,[{key:"midPrice",get:function get(){if(null!==this._midPrice)return this._midPrice;for(var D,te=[],he=_createForOfIteratorHelperLoose(this.pairs.entries());!(D=he()).done;){var ye=D.value,be=ye[0],ve=ye[1];te.push(this.path[be].equals(ve.token0)?new xJ(ve.reserve0.currency,ve.reserve1.currency,ve.reserve0.quotient,ve.reserve1.quotient):new xJ(ve.reserve1.currency,ve.reserve0.currency,ve.reserve1.quotient,ve.reserve0.quotient))}var we=te.slice(1).reduce((function(D,te){return D.multiply(te)}),te[0]);return this._midPrice=new xJ(this.input,this.output,we.denominator,we.numerator)}},{key:"chainId",get:function get(){return this.pairs[0].chainId}}]),Route}();function inputOutputComparator(D,te){return D.inputAmount.currency.equals(te.inputAmount.currency)||invariant(),D.outputAmount.currency.equals(te.outputAmount.currency)||invariant(),D.outputAmount.equalTo(te.outputAmount)?D.inputAmount.equalTo(te.inputAmount)?0:D.inputAmount.lessThan(te.inputAmount)?-1:1:D.outputAmount.lessThan(te.outputAmount)?1:-1}function tradeComparator(D,te){var he=inputOutputComparator(D,te);return 0!==he?he:D.priceImpact.lessThan(te.priceImpact)?-1:D.priceImpact.greaterThan(te.priceImpact)?1:D.route.path.length-te.route.path.length}var tX=function(){function Trade(D,te,he){this.route=D,this.tradeType=he;var ye=new Array(D.path.length);if(he===fJ.EXACT_INPUT){te.currency.equals(D.input)||invariant(),ye[0]=te.wrapped;for(var be=0;be<D.path.length-1;be++){var ve=D.pairs[be].getOutputAmount(ye[be])[0];ye[be+1]=ve}this.inputAmount=RJ.fromFractionalAmount(D.input,te.numerator,te.denominator),this.outputAmount=RJ.fromFractionalAmount(D.output,ye[ye.length-1].numerator,ye[ye.length-1].denominator)}else{te.currency.equals(D.output)||invariant(),ye[ye.length-1]=te.wrapped;for(var we=D.path.length-1;we>0;we--){var _e=D.pairs[we-1].getInputAmount(ye[we])[0];ye[we-1]=_e}this.inputAmount=RJ.fromFractionalAmount(D.input,ye[0].numerator,ye[0].denominator),this.outputAmount=RJ.fromFractionalAmount(D.output,te.numerator,te.denominator)}this.executionPrice=new xJ(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient),this.priceImpact=function computePriceImpact(D,te,he){var ye=D.quote(te),be=ye.subtract(he).divide(ye);return new OJ(be.numerator,be.denominator)}(D.midPrice,this.inputAmount,this.outputAmount)}Trade.exactIn=function exactIn(D,te){return new Trade(D,te,fJ.EXACT_INPUT)},Trade.exactOut=function exactOut(D,te){return new Trade(D,te,fJ.EXACT_OUTPUT)};var D=Trade.prototype;return D.minimumAmountOut=function minimumAmountOut(D){if(D.lessThan(HJ)&&invariant(),this.tradeType===fJ.EXACT_OUTPUT)return this.outputAmount;var te=new CJ(zJ).add(D).invert().multiply(this.outputAmount.quotient).quotient;return RJ.fromRawAmount(this.outputAmount.currency,te)},D.maximumAmountIn=function maximumAmountIn(D){if(D.lessThan(HJ)&&invariant(),this.tradeType===fJ.EXACT_INPUT)return this.inputAmount;var te=new CJ(zJ).add(D).multiply(this.inputAmount.quotient).quotient;return RJ.fromRawAmount(this.inputAmount.currency,te)},Trade.bestTradeExactIn=function bestTradeExactIn(D,te,he,ye,be,ve,we){var _e=void 0===ye?{}:ye,Pe=_e.maxNumResults,Ie=void 0===Pe?3:Pe,Re=_e.maxHops,ke=void 0===Re?3:Re;void 0===be&&(be=[]),void 0===ve&&(ve=te),void 0===we&&(we=[]),D.length>0||invariant(),ke>0||invariant(),te===ve||be.length>0||invariant();for(var Oe=ve.wrapped,xe=he.wrapped,Be=0;Be<D.length;Be++){var Fe=D[Be];if((Fe.token0.equals(Oe.currency)||Fe.token1.equals(Oe.currency))&&(!Fe.reserve0.equalTo(HJ)&&!Fe.reserve1.equalTo(HJ))){var De=void 0;try{De=Fe.getOutputAmount(Oe)[0]}catch(D){if(D.isInsufficientInputAmountError)continue;throw D}if(De.currency.equals(xe))sortedInsert(we,new Trade(new eX([].concat(be,[Fe]),te.currency,he),te,fJ.EXACT_INPUT),Ie,tradeComparator);else if(ke>1&&D.length>1){var Le=D.slice(0,Be).concat(D.slice(Be+1,D.length));Trade.bestTradeExactIn(Le,te,he,{maxNumResults:Ie,maxHops:ke-1},[].concat(be,[Fe]),De,we)}}}return we},D.worstExecutionPrice=function worstExecutionPrice(D){return new xJ(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(D).quotient,this.minimumAmountOut(D).quotient)},Trade.bestTradeExactOut=function bestTradeExactOut(D,te,he,ye,be,ve,we){var _e=void 0===ye?{}:ye,Pe=_e.maxNumResults,Ie=void 0===Pe?3:Pe,Re=_e.maxHops,ke=void 0===Re?3:Re;void 0===be&&(be=[]),void 0===ve&&(ve=he),void 0===we&&(we=[]),D.length>0||invariant(),ke>0||invariant(),he===ve||be.length>0||invariant();for(var Oe=ve.wrapped,xe=te.wrapped,Be=0;Be<D.length;Be++){var Fe=D[Be];if((Fe.token0.equals(Oe.currency)||Fe.token1.equals(Oe.currency))&&(!Fe.reserve0.equalTo(HJ)&&!Fe.reserve1.equalTo(HJ))){var De=void 0;try{De=Fe.getInputAmount(Oe)[0]}catch(D){if(D.isInsufficientReservesError)continue;throw D}if(De.currency.equals(xe))sortedInsert(we,new Trade(new eX([Fe].concat(be),te,he.currency),he,fJ.EXACT_OUTPUT),Ie,tradeComparator);else if(ke>1&&D.length>1){var Le=D.slice(0,Be).concat(D.slice(Be+1,D.length));Trade.bestTradeExactOut(Le,te,he,{maxNumResults:Ie,maxHops:ke-1},[Fe].concat(be),De,we)}}}return we},Trade}();function toHex(D){return"0x"+D.quotient.toString(16)}var rX,nX="0x0",aX=function(){function Router(){}return Router.swapCallParameters=function swapCallParameters(D,te){var he=D.inputAmount.currency.isNative,ye=D.outputAmount.currency.isNative;he&&ye&&invariant(),!("ttl"in te)||te.ttl>0||invariant();var be,ve,we,_e=validateAndParseAddress(te.recipient),Pe=toHex(D.maximumAmountIn(te.allowedSlippage)),Ie=toHex(D.minimumAmountOut(te.allowedSlippage)),Re=D.route.path.map((function(D){return D.address})),ke="ttl"in te?"0x"+(Math.floor((new Date).getTime()/1e3)+te.ttl).toString(16):"0x"+te.deadline.toString(16),Oe=Boolean(te.feeOnTransfer);switch(D.tradeType){case fJ.EXACT_INPUT:he?(be=Oe?"swapExactETHForTokensSupportingFeeOnTransferTokens":"swapExactETHForTokens",ve=[Ie,Re,_e,ke],we=Pe):ye?(be=Oe?"swapExactTokensForETHSupportingFeeOnTransferTokens":"swapExactTokensForETH",ve=[Pe,Ie,Re,_e,ke],we=nX):(be=Oe?"swapExactTokensForTokensSupportingFeeOnTransferTokens":"swapExactTokensForTokens",ve=[Pe,Ie,Re,_e,ke],we=nX);break;case fJ.EXACT_OUTPUT:Oe&&invariant(),he?(be="swapETHForExactTokens",ve=[Ie,Re,_e,ke],we=Pe):ye?(be="swapTokensForExactETH",ve=[Ie,Pe,Re,_e,ke],we=nX):(be="swapTokensForExactTokens",ve=[Ie,Pe,Re,_e,ke],we=nX)}return{methodName:be,args:ve,value:we}},Router}(),iX=getAugmentedNamespace$1(Object.freeze({__proto__:null,FACTORY_ADDRESS:qJ,INIT_CODE_HASH:GJ,InsufficientInputAmountError:QJ,InsufficientReservesError:XJ,MINIMUM_LIQUIDITY:jJ,Pair:YJ,Route:eX,Router:aX,Trade:tX,computePairAddress:ZJ,inputOutputComparator:inputOutputComparator,tradeComparator:tradeComparator})),sX=getAugmentedNamespace$1(ff);GV.exports=function requireRouterSdk_cjs_production_min(){return rX||(rX=1,function(D){function t(D){return D&&"object"==typeof D&&"default"in D?D.default:D}Object.defineProperty(D,"__esModule",{value:!0});var te,he=t(Bz),ye=HV,be=t(function requireTinyInvariant_cjs(){return $V?UV:($V=1,UV=function invariant(D,te){if(!D)throw new Error("Invariant failed")})}()),ve=WV,we=VV,_e=KV,Pe=cJ,Ie=dJ,Re=uJ,ke=iX,Oe=sX,xe="0x0000000000000000000000000000000000000001",Be="0x0000000000000000000000000000000000000002",Fe=he.BigInt(0),De=he.BigInt(1);function A(D){return Object.keys(D).some((function(D){return"recipient"===D}))}(te=D.ApprovalTypes||(D.ApprovalTypes={}))[te.NOT_REQUIRED=0]="NOT_REQUIRED",te[te.MAX=1]="MAX",te[te.MAX_MINUS_ONE=2]="MAX_MINUS_ONE",te[te.ZERO_THEN_MAX=3]="ZERO_THEN_MAX",te[te.ZERO_THEN_MAX_MINUS_ONE=4]="ZERO_THEN_MAX_MINUS_ONE";var Le=function(){function t(){}return t.encodeApproveMax=function(D){return t.INTERFACE.encodeFunctionData("approveMax",[D.address])},t.encodeApproveMaxMinusOne=function(D){return t.INTERFACE.encodeFunctionData("approveMaxMinusOne",[D.address])},t.encodeApproveZeroThenMax=function(D){return t.INTERFACE.encodeFunctionData("approveZeroThenMax",[D.address])},t.encodeApproveZeroThenMaxMinusOne=function(D){return t.INTERFACE.encodeFunctionData("approveZeroThenMaxMinusOne",[D.address])},t.encodeCallPositionManager=function(D){if(D.length>0||be(!1),1==D.length)return t.INTERFACE.encodeFunctionData("callPositionManager",D);var te=we.NonfungiblePositionManager.INTERFACE.encodeFunctionData("multicall",[D]);return t.INTERFACE.encodeFunctionData("callPositionManager",[te])},t.encodeAddLiquidity=function(D,te,ye,be){var ve=D.mintAmountsWithSlippage(be),_e=ve.amount0,Pe=ve.amount1;return he.lessThan(te.amount0.quotient,_e)&&(_e=te.amount0.quotient),he.lessThan(te.amount1.quotient,Pe)&&(Pe=te.amount1.quotient),A(ye)?t.INTERFACE.encodeFunctionData("mint",[{token0:D.pool.token0.address,token1:D.pool.token1.address,fee:D.pool.fee,tickLower:D.tickLower,tickUpper:D.tickUpper,amount0Min:we.toHex(_e),amount1Min:we.toHex(Pe),recipient:ye.recipient}]):t.INTERFACE.encodeFunctionData("increaseLiquidity",[{token0:D.pool.token0.address,token1:D.pool.token1.address,amount0Min:we.toHex(_e),amount1Min:we.toHex(Pe),tokenId:we.toHex(ye.tokenId)}])},t.encodeApprove=function(te,he){switch(he){case D.ApprovalTypes.MAX:return t.encodeApproveMax(te.wrapped);case D.ApprovalTypes.MAX_MINUS_ONE:return t.encodeApproveMaxMinusOne(te.wrapped);case D.ApprovalTypes.ZERO_THEN_MAX:return t.encodeApproveZeroThenMax(te.wrapped);case D.ApprovalTypes.ZERO_THEN_MAX_MINUS_ONE:return t.encodeApproveZeroThenMaxMinusOne(te.wrapped);default:throw"Error: invalid ApprovalType"}},t}();Le.INTERFACE=new ye.Interface(ve.abi);var Ue=function(){function t(){}return t.encodeMulticall=function(D,te){if(void 0===te)return we.Multicall.encodeMulticall(D);if(Array.isArray(D)||(D=[D]),"string"==typeof te&&te.startsWith("0x")){var he=function(D){if(!D.match(/^0x[0-9a-fA-F]{64}$/))throw new Error(D+" is not valid bytes32.");return D.toLowerCase()}(te);return t.INTERFACE.encodeFunctionData("multicall(bytes32,bytes[])",[he,D])}var ye=we.toHex(te);return t.INTERFACE.encodeFunctionData("multicall(uint256,bytes[])",[ye,D])},t}();function w(D){return we.toHex(D.multiply(1e4).quotient)}Ue.INTERFACE=new ye.Interface(_e.abi);var qe=function(){function t(){}return t.encodeUnwrapWETH9=function(D,te,he){if("string"==typeof te)return we.Payments.encodeUnwrapWETH9(D,te,he);if(he){var ye=w(he.fee),be=Pe.validateAndParseAddress(he.recipient);return t.INTERFACE.encodeFunctionData("unwrapWETH9WithFee(uint256,uint256,address)",[we.toHex(D),ye,be])}return t.INTERFACE.encodeFunctionData("unwrapWETH9(uint256)",[we.toHex(D)])},t.encodeSweepToken=function(D,te,he,ye){if("string"==typeof he)return we.Payments.encodeSweepToken(D,te,he,ye);if(ye){var be=w(ye.fee),ve=Pe.validateAndParseAddress(ye.recipient);return t.INTERFACE.encodeFunctionData("sweepTokenWithFee(address,uint256,uint256,address)",[D.address,we.toHex(te),be,ve])}return t.INTERFACE.encodeFunctionData("sweepToken(address,uint256)",[D.address,we.toHex(te)])},t.encodePull=function(D,te){return t.INTERFACE.encodeFunctionData("pull",[D.address,we.toHex(te)])},t.encodeWrapETH=function(D){return t.INTERFACE.encodeFunctionData("wrapETH",[we.toHex(D)])},t}();function E(D,te,he,ye,be,ve,we){try{var _e=D[ve](we),Pe=_e.value}catch(D){return void he(D)}_e.done?te(Pe):Promise.resolve(Pe).then(ye,be)}function k(D){return function(){var te=this,he=arguments;return new Promise((function(ye,be){var ve=D.apply(te,he);function i(D){E(ve,ye,be,i,a,"next",D)}function a(D){E(ve,ye,be,i,a,"throw",D)}i(void 0)}))}}function I(D,te,he){return te&&function g(D,te){for(var he=0;he<te.length;he++){var ye=te[he];ye.enumerable=ye.enumerable||!1,ye.configurable=!0,"value"in ye&&(ye.writable=!0),Object.defineProperty(D,ye.key,ye)}}(D.prototype,te),D}function P(){return(P=Object.assign||function(D){for(var te=1;te<arguments.length;te++){var he=arguments[te];for(var ye in he)Object.prototype.hasOwnProperty.call(he,ye)&&(D[ye]=he[ye])}return D}).apply(this,arguments)}function R(D,te){D.prototype=Object.create(te.prototype),D.prototype.constructor=D,(Object.setPrototypeOf||function(D,te){return D.__proto__=te,D})(D,te)}function _(D,te){(null==te||te>D.length)&&(te=D.length);for(var he=0,ye=new Array(te);he<te;he++)ye[he]=D[he];return ye}function b(D,te){var he="undefined"!=typeof Symbol&&D[Symbol.iterator]||D["@@iterator"];if(he)return(he=he.call(D)).next.bind(he);if(Array.isArray(D)||(he=function(D,te){if(D){if("string"==typeof D)return _(D,void 0);var he=Object.prototype.toString.call(D).slice(8,-1);return"Object"===he&&D.constructor&&(he=D.constructor.name),"Map"===he||"Set"===he?Array.from(D):"Arguments"===he||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(he)?_(D,void 0):void 0}}(D))||te){he&&(D=he);var ye=0;return function(){return ye>=D.length?{done:!0}:{done:!1,value:D[ye++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}qe.INTERFACE=new ye.Interface(Ie.abi);var je,Je=(function(D){var te=function(D){var te=Object.prototype,he=te.hasOwnProperty,ye="function"==typeof Symbol?Symbol:{},be=ye.iterator||"@@iterator",ve=ye.asyncIterator||"@@asyncIterator",we=ye.toStringTag||"@@toStringTag";function a(D,te,he){return Object.defineProperty(D,te,{value:he,enumerable:!0,configurable:!0,writable:!0}),D[te]}try{a({},"")}catch(D){a=function(D,te,he){return D[te]=he}}function c(D,te,he,ye){var be=Object.create((te&&te.prototype instanceof d?te:d).prototype),ve=new k(ye||[]);return be._invoke=function(D,te,he){var ye="suspendedStart";return function(be,ve){if("executing"===ye)throw new Error("Generator is already running");if("completed"===ye){if("throw"===be)throw ve;return{value:void 0,done:!0}}for(he.method=be,he.arg=ve;;){var we=he.delegate;if(we){var Pe=w(we,he);if(Pe){if(Pe===_e)continue;return Pe}}if("next"===he.method)he.sent=he._sent=he.arg;else if("throw"===he.method){if("suspendedStart"===ye)throw ye="completed",he.arg;he.dispatchException(he.arg)}else"return"===he.method&&he.abrupt("return",he.arg);ye="executing";var Ie=s(D,te,he);if("normal"===Ie.type){if(ye=he.done?"completed":"suspendedYield",Ie.arg===_e)continue;return{value:Ie.arg,done:he.done}}"throw"===Ie.type&&(ye="completed",he.method="throw",he.arg=Ie.arg)}}}(D,he,ve),be}function s(D,te,he){try{return{type:"normal",arg:D.call(te,he)}}catch(D){return{type:"throw",arg:D}}}D.wrap=c;var _e={};function d(){}function l(){}function m(){}var Pe={};a(Pe,be,(function(){return this}));var Ie=Object.getPrototypeOf,Re=Ie&&Ie(Ie(g([])));Re&&Re!==te&&he.call(Re,be)&&(Pe=Re);var ke=m.prototype=d.prototype=Object.create(Pe);function y(D){["next","throw","return"].forEach((function(te){a(D,te,(function(D){return this._invoke(te,D)}))}))}function T(D,te){var ye;this._invoke=function(be,ve){function i(){return new te((function(ye,we){!function r(ye,be,ve,we){var _e=s(D[ye],D,be);if("throw"!==_e.type){var Pe=_e.arg,Ie=Pe.value;return Ie&&"object"==typeof Ie&&he.call(Ie,"__await")?te.resolve(Ie.__await).then((function(D){r("next",D,ve,we)}),(function(D){r("throw",D,ve,we)})):te.resolve(Ie).then((function(D){Pe.value=D,ve(Pe)}),(function(D){return r("throw",D,ve,we)}))}we(_e.arg)}(be,ve,ye,we)}))}return ye=ye?ye.then(i,i):i()}}function w(D,te){var he=D.iterator[te.method];if(void 0===he){if(te.delegate=null,"throw"===te.method){if(D.iterator.return&&(te.method="return",te.arg=void 0,w(D,te),"throw"===te.method))return _e;te.method="throw",te.arg=new TypeError("The iterator does not provide a 'throw' method")}return _e}var ye=s(he,D.iterator,te.arg);if("throw"===ye.type)return te.method="throw",te.arg=ye.arg,te.delegate=null,_e;var be=ye.arg;return be?be.done?(te[D.resultName]=be.value,te.next=D.nextLoc,"return"!==te.method&&(te.method="next",te.arg=void 0),te.delegate=null,_e):be:(te.method="throw",te.arg=new TypeError("iterator result is not an object"),te.delegate=null,_e)}function x(D){var te={tryLoc:D[0]};1 in D&&(te.catchLoc=D[1]),2 in D&&(te.finallyLoc=D[2],te.afterLoc=D[3]),this.tryEntries.push(te)}function E(D){var te=D.completion||{};te.type="normal",delete te.arg,D.completion=te}function k(D){this.tryEntries=[{tryLoc:"root"}],D.forEach(x,this),this.reset(!0)}function g(D){if(D){var te=D[be];if(te)return te.call(D);if("function"==typeof D.next)return D;if(!isNaN(D.length)){var ye=-1,ve=function e(){for(;++ye<D.length;)if(he.call(D,ye))return e.value=D[ye],e.done=!1,e;return e.value=void 0,e.done=!0,e};return ve.next=ve}}return{next:I}}function I(){return{value:void 0,done:!0}}return l.prototype=m,a(ke,"constructor",m),a(m,"constructor",l),l.displayName=a(m,we,"GeneratorFunction"),D.isGeneratorFunction=function(D){var te="function"==typeof D&&D.constructor;return!!te&&(te===l||"GeneratorFunction"===(te.displayName||te.name))},D.mark=function(D){return Object.setPrototypeOf?Object.setPrototypeOf(D,m):(D.__proto__=m,a(D,we,"GeneratorFunction")),D.prototype=Object.create(ke),D},D.awrap=function(D){return{__await:D}},y(T.prototype),a(T.prototype,ve,(function(){return this})),D.AsyncIterator=T,D.async=function(te,he,ye,be,ve){void 0===ve&&(ve=Promise);var we=new T(c(te,he,ye,be),ve);return D.isGeneratorFunction(he)?we:we.next().then((function(D){return D.done?D.value:we.next()}))},y(ke),a(ke,we,"Generator"),a(ke,be,(function(){return this})),a(ke,"toString",(function(){return"[object Generator]"})),D.keys=function(D){var te=[];for(var he in D)te.push(he);return te.reverse(),function n(){for(;te.length;){var he=te.pop();if(he in D)return n.value=he,n.done=!1,n}return n.done=!0,n}},D.values=g,k.prototype={constructor:k,reset:function(D){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!D)for(var te in this)"t"===te.charAt(0)&&he.call(this,te)&&!isNaN(+te.slice(1))&&(this[te]=void 0)},stop:function(){this.done=!0;var D=this.tryEntries[0].completion;if("throw"===D.type)throw D.arg;return this.rval},dispatchException:function(D){if(this.done)throw D;var te=this;function r(he,ye){return ve.type="throw",ve.arg=D,te.next=he,ye&&(te.method="next",te.arg=void 0),!!ye}for(var ye=this.tryEntries.length-1;ye>=0;--ye){var be=this.tryEntries[ye],ve=be.completion;if("root"===be.tryLoc)return r("end");if(be.tryLoc<=this.prev){var we=he.call(be,"catchLoc"),_e=he.call(be,"finallyLoc");if(we&&_e){if(this.prev<be.catchLoc)return r(be.catchLoc,!0);if(this.prev<be.finallyLoc)return r(be.finallyLoc)}else if(we){if(this.prev<be.catchLoc)return r(be.catchLoc,!0)}else{if(!_e)throw new Error("try statement without catch or finally");if(this.prev<be.finallyLoc)return r(be.finallyLoc)}}}},abrupt:function(D,te){for(var ye=this.tryEntries.length-1;ye>=0;--ye){var be=this.tryEntries[ye];if(be.tryLoc<=this.prev&&he.call(be,"finallyLoc")&&this.prev<be.finallyLoc){var ve=be;break}}ve&&("break"===D||"continue"===D)&&ve.tryLoc<=te&&te<=ve.finallyLoc&&(ve=null);var we=ve?ve.completion:{};return we.type=D,we.arg=te,ve?(this.method="next",this.next=ve.finallyLoc,_e):this.complete(we)},complete:function(D,te){if("throw"===D.type)throw D.arg;return"break"===D.type||"continue"===D.type?this.next=D.arg:"return"===D.type?(this.rval=this.arg=D.arg,this.method="return",this.next="end"):"normal"===D.type&&te&&(this.next=te),_e},finish:function(D){for(var te=this.tryEntries.length-1;te>=0;--te){var he=this.tryEntries[te];if(he.finallyLoc===D)return this.complete(he.completion,he.afterLoc),E(he),_e}},catch:function(D){for(var te=this.tryEntries.length-1;te>=0;--te){var he=this.tryEntries[te];if(he.tryLoc===D){var ye=he.completion;if("throw"===ye.type){var be=ye.arg;E(he)}return be}}throw new Error("illegal catch attempt")},delegateYield:function(D,te,he){return this.delegate={iterator:g(D),resultName:te,nextLoc:he},"next"===this.method&&(this.arg=void 0),_e}},D}(D.exports);try{regeneratorRuntime=te}catch(D){"object"==typeof globalThis?globalThis.regeneratorRuntime=te:Function("r","regeneratorRuntime = r")(te)}}(je={exports:{}}),je.exports),et=function(){function t(D,te,he){this._midPrice=null,D.length>0||be(!1);var ye=D[0].chainId;D.every((function(D){return D.chainId===ye}))||be(!1);var ve=te.wrapped;D[0].involvesToken(ve)||be(!1),D[D.length-1].involvesToken(he.wrapped)||be(!1);for(var we,_e=[ve],Pe=b(D.entries());!(we=Pe()).done;){var Ie=we.value,Re=Ie[1],ke=_e[Ie[0]];ke.equals(Re.token0)||ke.equals(Re.token1)||be(!1);var Oe=ke.equals(Re.token0)?Re.token1:Re.token0;_e.push(Oe)}this.pools=D,this.path=_e,this.input=te,this.output=null!=he?he:_e[_e.length-1]}return I(t,[{key:"chainId",get:function(){return this.pools[0].chainId}},{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;var D=this.pools.slice(1).reduce((function(D,te){var he=D.price;return D.nextInput.equals(te.token0)?{nextInput:te.token1,price:he.multiply(te.token0Price)}:{nextInput:te.token0,price:he.multiply(te.token1Price)}}),this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new Pe.Price(this.input,this.output,D.denominator,D.numerator)}}]),t}();function q(D,te){return D.inputAmount.currency.equals(te.inputAmount.currency)||be(!1),D.outputAmount.currency.equals(te.outputAmount.currency)||be(!1),D.outputAmount.equalTo(te.outputAmount)?D.inputAmount.equalTo(te.inputAmount)?D.swaps.reduce((function(D,te){return D+te.route.path.length}),0)-te.swaps.reduce((function(D,te){return D+te.route.path.length}),0):D.inputAmount.lessThan(te.inputAmount)?-1:1:D.outputAmount.lessThan(te.outputAmount)?1:-1}var tt,rt=function(){function t(D){var te=D.routes,he=D.tradeType,ye=te[0].inputAmount.currency,ve=te[0].outputAmount.currency;te.every((function(D){return ye.wrapped.equals(D.route.input.wrapped)}))||be(!1),te.every((function(D){return ve.wrapped.equals(D.route.output.wrapped)}))||be(!1);for(var _e,Ie=te.map((function(D){return D.route.pools.length})).reduce((function(D,te){return D+te}),0),Re=new Set,Oe=b(te);!(_e=Oe()).done;)for(var xe,Be=b(_e.value.route.pools);!(xe=Be()).done;){var Fe=xe.value;Re.add(Fe instanceof we.Pool?we.Pool.getAddress(Fe.token0,Fe.token1,Fe.fee):ke.Pair.getAddress(Fe.token0,Fe.token1))}Ie!=Re.size&&be(!1),he!==Pe.TradeType.EXACT_INPUT&&be(!1),this.swaps=te,this.tradeType=he}t.fromRoute=function(){var D=k(Je.mark((function e(D,te,he){var ye,ve,we,_e,Ie;return Je.wrap((function(Re){for(;;)switch(Re.prev=Re.next){case 0:ye=new Array(D.path.length),he!==Pe.TradeType.EXACT_INPUT&&be(!1),te.currency.equals(D.input)||be(!1),ye[0]=te.wrapped,_e=0;case 5:if(!(_e<D.path.length-1)){Re.next=15;break}return Ie=D.pools[_e],Re.next=9,Ie.getOutputAmount(ye[_e]);case 9:ye[_e+1]=Re.sent[0];case 12:_e++,Re.next=5;break;case 15:return ve=Pe.CurrencyAmount.fromFractionalAmount(D.input,te.numerator,te.denominator),we=Pe.CurrencyAmount.fromFractionalAmount(D.output,ye[ye.length-1].numerator,ye[ye.length-1].denominator),Re.abrupt("return",new t({routes:[{inputAmount:ve,outputAmount:we,route:D}],tradeType:he}));case 18:case"end":return Re.stop()}}),e)})));return function(te,he,ye){return D.apply(this,arguments)}}(),t.fromRoutes=function(){var D=k(Je.mark((function e(D,te){var he,ye,ve,we,_e,Ie,Re,ke,Oe,xe,Be;return Je.wrap((function(Fe){for(;;)switch(Fe.prev=Fe.next){case 0:he=[],te!==Pe.TradeType.EXACT_INPUT&&be(!1),ye=b(D);case 3:if((ve=ye()).done){Fe.next=26;break}_e=(we=ve.value).route,Ie=we.amount,Re=new Array(_e.path.length),ke=void 0,Oe=void 0,Ie.currency.equals(_e.input)||be(!1),ke=Pe.CurrencyAmount.fromFractionalAmount(_e.input,Ie.numerator,Ie.denominator),Re[0]=Pe.CurrencyAmount.fromFractionalAmount(_e.input.wrapped,Ie.numerator,Ie.denominator),xe=0;case 12:if(!(xe<_e.path.length-1)){Fe.next=22;break}return Be=_e.pools[xe],Fe.next=16,Be.getOutputAmount(Re[xe]);case 16:Re[xe+1]=Fe.sent[0];case 19:xe++,Fe.next=12;break;case 22:Oe=Pe.CurrencyAmount.fromFractionalAmount(_e.output,Re[Re.length-1].numerator,Re[Re.length-1].denominator),he.push({route:_e,inputAmount:ke,outputAmount:Oe});case 24:Fe.next=3;break;case 26:return Fe.abrupt("return",new t({routes:he,tradeType:te}));case 27:case"end":return Fe.stop()}}),e)})));return function(te,he){return D.apply(this,arguments)}}(),t.createUncheckedTrade=function(D){return new t(P({},D,{routes:[{inputAmount:D.inputAmount,outputAmount:D.outputAmount,route:D.route}]}))},t.createUncheckedTradeWithMultipleRoutes=function(D){return new t(D)};var D=t.prototype;return D.minimumAmountOut=function(D,te){void 0===te&&(te=this.outputAmount),D.lessThan(Fe)&&be(!1);var he=new Pe.Fraction(De).add(D).invert().multiply(te.quotient).quotient;return Pe.CurrencyAmount.fromRawAmount(te.currency,he)},D.maximumAmountIn=function(D,te){return void 0===te&&(te=this.inputAmount),D.lessThan(Fe)&&be(!1),te},D.worstExecutionPrice=function(D){return new Pe.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(D).quotient,this.minimumAmountOut(D).quotient)},t.bestTradeExactIn=function(){var D=k(Je.mark((function e(D,te,he,ye,ve,we,_e){var Ie,Re,Oe,xe,Be,De,Le,Ue,qe,je,tt;return Je.wrap((function(Je){for(;;)switch(Je.prev=Je.next){case 0:Oe=void 0===(Re=(Ie=void 0===ye?{}:ye).maxNumResults)?3:Re,Be=void 0===(xe=Ie.maxHops)?3:xe,void 0===ve&&(ve=[]),void 0===we&&(we=te),void 0===_e&&(_e=[]),D.length>0||be(!1),Be>0||be(!1),te===we||ve.length>0||be(!1),De=we.wrapped,Le=he.wrapped,Ue=0;case 10:if(!(Ue<D.length)){Je.next=49;break}if((qe=D[Ue]).token0.equals(De.currency)||qe.token1.equals(De.currency)){Je.next=14;break}return Je.abrupt("continue",46);case 14:if(!(qe instanceof ke.Pair)){Je.next=17;break}if(!qe.reserve0.equalTo(Fe)&&!qe.reserve1.equalTo(Fe)){Je.next=17;break}return Je.abrupt("continue",46);case 17:return je=void 0,Je.prev=18,Je.next=22,qe.getOutputAmount(De);case 22:je=Je.sent[0],Je.next=31;break;case 26:if(Je.prev=26,Je.t0=Je.catch(18),!Je.t0.isInsufficientInputAmountError){Je.next=30;break}return Je.abrupt("continue",46);case 30:throw Je.t0;case 31:if(!je.currency.isToken||!je.currency.equals(Le)){Je.next=42;break}return Je.t1=Pe.sortedInsert,Je.t2=_e,Je.next=36,t.fromRoute(new et([].concat(ve,[qe]),te.currency,he),te,Pe.TradeType.EXACT_INPUT);case 36:Je.t3=Je.sent,Je.t4=Oe,Je.t5=q,(0,Je.t1)(Je.t2,Je.t3,Je.t4,Je.t5),Je.next=46;break;case 42:if(!(Be>1&&D.length>1)){Je.next=46;break}return tt=D.slice(0,Ue).concat(D.slice(Ue+1,D.length)),Je.next=46,t.bestTradeExactIn(tt,te,he,{maxNumResults:Oe,maxHops:Be-1},[].concat(ve,[qe]),je,_e);case 46:Ue++,Je.next=10;break;case 49:return Je.abrupt("return",_e);case 50:case"end":return Je.stop()}}),e,null,[[18,26]])})));return function(te,he,ye,be,ve,we,_e){return D.apply(this,arguments)}}(),I(t,[{key:"route",get:function(){return 1!=this.swaps.length&&be(!1),this.swaps[0].route}},{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var D=this.swaps[0].inputAmount.currency,te=this.swaps.map((function(D){return D.inputAmount})).reduce((function(D,te){return D.add(te)}),Pe.CurrencyAmount.fromRawAmount(D,0));return this._inputAmount=te,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var D=this.swaps[0].outputAmount.currency,te=this.swaps.map((function(D){return D.outputAmount})).reduce((function(D,te){return D.add(te)}),Pe.CurrencyAmount.fromRawAmount(D,0));return this._outputAmount=te,this._outputAmount}},{key:"executionPrice",get:function(){var D;return null!=(D=this._executionPrice)?D:this._executionPrice=new Pe.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var D,te=Pe.CurrencyAmount.fromRawAmount(this.outputAmount.currency,0),he=b(this.swaps);!(D=he()).done;){var ye=D.value;te=te.add(ye.route.midPrice.quote(ye.inputAmount))}var be=te.subtract(this.outputAmount).divide(te);return this._priceImpact=new Pe.Percent(be.numerator,be.denominator),this._priceImpact}}]),t}();(tt=D.Protocol||(D.Protocol={})).V2="V2",tt.V3="V3",tt.MIXED="MIXED";var nt=function(te){function e(he){var ye;return(ye=te.call(this,he.pairs,he.input,he.output)||this).protocol=D.Protocol.V2,ye.pools=ye.pairs,ye}return R(e,te),e}(ke.Route),at=function(te){function e(he){var ye;return(ye=te.call(this,he.pools,he.input,he.output)||this).protocol=D.Protocol.V3,ye.path=he.tokenPath,ye}return R(e,te),e}(we.Route),ut=function(te){function e(he){var ye;return(ye=te.call(this,he.pools,he.input,he.output)||this).protocol=D.Protocol.MIXED,ye}return R(e,te),e}(et),ht=function(){function t(D){var te=D.v2Routes,he=D.v3Routes,ye=D.tradeType,ve=D.mixedRoutes;this.swaps=[],this.routes=[];for(var _e,Pe=b(te);!(_e=Pe()).done;){var Ie=_e.value,Re=Ie.inputAmount,Oe=Ie.outputAmount,xe=new nt(Ie.routev2);this.routes.push(xe),this.swaps.push({route:xe,inputAmount:Re,outputAmount:Oe})}for(var Be,Fe=b(he);!(Be=Fe()).done;){var De=Be.value,Le=De.inputAmount,Ue=De.outputAmount,qe=new at(De.routev3);this.routes.push(qe),this.swaps.push({route:qe,inputAmount:Le,outputAmount:Ue})}if(ve)for(var je,Je=b(ve);!(je=Je()).done;){var et=je.value,tt=et.inputAmount,rt=et.outputAmount,ht=new ut(et.mixedRoute);this.routes.push(ht),this.swaps.push({route:ht,inputAmount:tt,outputAmount:rt})}this.tradeType=ye;var yt=this.swaps[0].inputAmount.currency,mt=this.swaps[0].outputAmount.currency;this.swaps.every((function(D){return yt.wrapped.equals(D.route.input.wrapped)}))||be(!1),this.swaps.every((function(D){return mt.wrapped.equals(D.route.output.wrapped)}))||be(!1);for(var bt,wt=this.swaps.map((function(D){return D.route.pools.length})).reduce((function(D,te){return D+te}),0),_t=new Set,Tt=b(this.swaps);!(bt=Tt()).done;)for(var At,Et=b(bt.value.route.pools);!(At=Et()).done;){var Pt=At.value;if(Pt instanceof we.Pool)_t.add(we.Pool.getAddress(Pt.token0,Pt.token1,Pt.fee));else{if(!(Pt instanceof ke.Pair))throw new Error("Unexpected pool type in route when constructing trade object");_t.add(ke.Pair.getAddress(Pt.token0,Pt.token1))}}wt!=_t.size&&be(!1)}var D=t.prototype;return D.minimumAmountOut=function(D,te){if(void 0===te&&(te=this.outputAmount),D.lessThan(Fe)&&be(!1),this.tradeType===Pe.TradeType.EXACT_OUTPUT)return te;var he=new Pe.Fraction(De).add(D).invert().multiply(te.quotient).quotient;return Pe.CurrencyAmount.fromRawAmount(te.currency,he)},D.maximumAmountIn=function(D,te){if(void 0===te&&(te=this.inputAmount),D.lessThan(Fe)&&be(!1),this.tradeType===Pe.TradeType.EXACT_INPUT)return te;var he=new Pe.Fraction(De).add(D).multiply(te.quotient).quotient;return Pe.CurrencyAmount.fromRawAmount(te.currency,he)},D.worstExecutionPrice=function(D){return new Pe.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(D).quotient,this.minimumAmountOut(D).quotient)},t.fromRoutes=function(){var D=k(Je.mark((function e(D,te,he,ye){var be,ve,_e,Pe,Ie,Re,Oe,xe,Be,Fe,De,Le,Ue,qe,je,et,tt,nt,at,ut;return Je.wrap((function(Je){for(;;)switch(Je.prev=Je.next){case 0:for(be=[],ve=[],_e=[],Pe=b(D);!(Ie=Pe()).done;)xe=new ke.Trade(Oe=(Re=Ie.value).routev2,Re.amount,he),be.push({routev2:Oe,inputAmount:xe.inputAmount,outputAmount:xe.outputAmount});Be=b(te);case 5:if((Fe=Be()).done){Je.next=14;break}return Le=(De=Fe.value).routev3,Ue=De.amount,Je.next=9,we.Trade.fromRoute(Le,Ue,he);case 9:ve.push({routev3:Le,inputAmount:(qe=Je.sent).inputAmount,outputAmount:qe.outputAmount});case 12:Je.next=5;break;case 14:if(!ye){Je.next=25;break}je=b(ye);case 16:if((et=je()).done){Je.next=25;break}return nt=(tt=et.value).mixedRoute,at=tt.amount,Je.next=20,rt.fromRoute(nt,at,he);case 20:_e.push({mixedRoute:nt,inputAmount:(ut=Je.sent).inputAmount,outputAmount:ut.outputAmount});case 23:Je.next=16;break;case 25:return Je.abrupt("return",new t({v2Routes:be,v3Routes:ve,mixedRoutes:_e,tradeType:he}));case 26:case"end":return Je.stop()}}),e)})));return function(te,he,ye,be){return D.apply(this,arguments)}}(),t.fromRoute=function(){var D=k(Je.mark((function e(D,te,he){var ye,be,ve,_e,Pe,Ie;return Je.wrap((function(Re){for(;;)switch(Re.prev=Re.next){case 0:if(ye=[],be=[],ve=[],!(D instanceof ke.Route)){Re.next=9;break}_e=new ke.Trade(D,te,he),ye=[{routev2:D,inputAmount:_e.inputAmount,outputAmount:_e.outputAmount}],Re.next=26;break;case 9:if(!(D instanceof we.Route)){Re.next=17;break}return Re.next=12,we.Trade.fromRoute(D,te,he);case 12:be=[{routev3:D,inputAmount:(Pe=Re.sent).inputAmount,outputAmount:Pe.outputAmount}],Re.next=26;break;case 17:if(!(D instanceof et)){Re.next=25;break}return Re.next=20,rt.fromRoute(D,te,he);case 20:ve=[{mixedRoute:D,inputAmount:(Ie=Re.sent).inputAmount,outputAmount:Ie.outputAmount}],Re.next=26;break;case 25:throw new Error("Invalid route type");case 26:return Re.abrupt("return",new t({v2Routes:ye,v3Routes:be,mixedRoutes:ve,tradeType:he}));case 27:case"end":return Re.stop()}}),e)})));return function(te,he,ye){return D.apply(this,arguments)}}(),I(t,[{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var D=this.swaps[0].inputAmount.currency,te=this.swaps.map((function(D){return D.inputAmount})).reduce((function(D,te){return D.add(te)}),Pe.CurrencyAmount.fromRawAmount(D,0));return this._inputAmount=te,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var D=this.swaps[0].outputAmount.currency,te=this.swaps.map((function(D){return D.outputAmount})).reduce((function(D,te){return D.add(te)}),Pe.CurrencyAmount.fromRawAmount(D,0));return this._outputAmount=te,this._outputAmount}},{key:"executionPrice",get:function(){var D;return null!=(D=this._executionPrice)?D:this._executionPrice=new Pe.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var D,te=Pe.CurrencyAmount.fromRawAmount(this.outputAmount.currency,0),he=b(this.swaps);!(D=he()).done;){var ye=D.value;te=te.add(ye.route.midPrice.quote(ye.inputAmount))}var be=te.subtract(this.outputAmount).divide(te);return this._priceImpact=new Pe.Percent(be.numerator,be.denominator),this._priceImpact}}]),t}();function L(D){var te=D.pools.reduce((function(D,te,he){var ye=D.inputToken,be=D.path,ve=D.types,_e=te.token0.equals(ye)?te.token1:te.token0;return 0===he?{inputToken:_e,types:["address","uint24","address"],path:[ye.address,te instanceof we.Pool?te.fee:8388608,_e.address]}:{inputToken:_e,types:[].concat(ve,["uint24","address"]),path:[].concat(be,[te instanceof we.Pool?te.fee:8388608,_e.address])}}),{inputToken:D.input.wrapped,path:[],types:[]});return Oe.pack(te.types,te.path)}var X=function(D){for(var te=[],he=0,ye=0;ye<D.pools.length;)(D.pools[he]instanceof we.Pool&&D.pools[ye]instanceof ke.Pair||D.pools[he]instanceof ke.Pair&&D.pools[ye]instanceof we.Pool)&&(te.push(D.pools.slice(he,ye)),he=ye),++ye===D.pools.length&&te.push(D.pools.slice(he,ye));return te},j=function(D,te){return D.reduce((function(D,te){var he=D.inputToken;if(!te.involvesToken(he))throw new Error("PATH");return{inputToken:te.token0.equals(he)?te.token1:te.token0}}),{inputToken:te}).inputToken},yt=he.BigInt(0),mt=new Pe.Percent(he.BigInt(50),he.BigInt(100)),bt=function(){function t(){}return t.encodeV2Swap=function(D,te,he,ye){var be=we.toHex(D.maximumAmountIn(te.slippageTolerance).quotient),ve=we.toHex(D.minimumAmountOut(te.slippageTolerance).quotient),_e=D.route.path.map((function(D){return D.address})),Ie=he?Be:void 0===te.recipient?xe:Pe.validateAndParseAddress(te.recipient);return D.tradeType===Pe.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",[be,ye?0:ve,_e,Ie]):t.INTERFACE.encodeFunctionData("swapTokensForExactTokens",[ve,be,_e,Ie])},t.encodeV3Swap=function(D,te,he,ye){for(var be,ve=[],_e=b(D.swaps);!(be=_e()).done;){var Ie=be.value,Re=Ie.route,ke=Ie.outputAmount,Oe=we.toHex(D.maximumAmountIn(te.slippageTolerance,Ie.inputAmount).quotient),Fe=we.toHex(D.minimumAmountOut(te.slippageTolerance,ke).quotient),De=1===Re.pools.length,Le=he?Be:void 0===te.recipient?xe:Pe.validateAndParseAddress(te.recipient);if(De)ve.push(D.tradeType===Pe.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("exactInputSingle",[{tokenIn:Re.tokenPath[0].address,tokenOut:Re.tokenPath[1].address,fee:Re.pools[0].fee,recipient:Le,amountIn:Oe,amountOutMinimum:ye?0:Fe,sqrtPriceLimitX96:0}]):t.INTERFACE.encodeFunctionData("exactOutputSingle",[{tokenIn:Re.tokenPath[0].address,tokenOut:Re.tokenPath[1].address,fee:Re.pools[0].fee,recipient:Le,amountOut:Fe,amountInMaximum:Oe,sqrtPriceLimitX96:0}]));else{var Ue=we.encodeRouteToPath(Re,D.tradeType===Pe.TradeType.EXACT_OUTPUT);ve.push(D.tradeType===Pe.TradeType.EXACT_INPUT?t.INTERFACE.encodeFunctionData("exactInput",[{path:Ue,recipient:Le,amountIn:Oe,amountOutMinimum:ye?0:Fe}]):t.INTERFACE.encodeFunctionData("exactOutput",[{path:Ue,recipient:Le,amountOut:Fe,amountInMaximum:Oe}]))}}return ve},t.encodeMixedRouteSwap=function(D,te,he,ye){var ve=[];D.tradeType!==Pe.TradeType.EXACT_INPUT&&be(!1);for(var _e,Ie=b(D.swaps);!(_e=Ie()).done;){var Re=_e.value,ke=Re.route,Oe=Re.outputAmount,Fe=we.toHex(D.maximumAmountIn(te.slippageTolerance,Re.inputAmount).quotient),De=we.toHex(D.minimumAmountOut(te.slippageTolerance,Oe).quotient),Le=1===ke.pools.length,Ue=he?Be:void 0===te.recipient?xe:Pe.validateAndParseAddress(te.recipient),w=function(D){return D.pools.every((function(D){return D instanceof we.Pool}))};if(Le)if(w(ke))ve.push(t.INTERFACE.encodeFunctionData("exactInputSingle",[{tokenIn:ke.path[0].address,tokenOut:ke.path[1].address,fee:ke.pools[0].fee,recipient:Ue,amountIn:Fe,amountOutMinimum:ye?0:De,sqrtPriceLimitX96:0}]));else{var qe=ke.path.map((function(D){return D.address}));ve.push(t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",[Fe,ye?0:De,qe,Ue]))}else!function(){for(var D=X(ke),n=function(te){return te===D.length-1},te=void 0,he=ke.input.wrapped,ye=0;ye<D.length;ye++){var be=D[ye];te=j(be,he);var we=new et([].concat(be),be[0].token0.equals(he)?be[0].token0:be[0].token1,te),_e=new ut(we);if(he=te,w(_e)){var Pe={path:L(_e),recipient:n(ye)?Ue:Be,amountIn:0==ye?Fe:0,amountOutMinimum:n(ye)?De:0};ve.push(t.INTERFACE.encodeFunctionData("exactInput",[Pe]))}else{var Ie=[0==ye?Fe:0,n(ye)?De:0,_e.path.map((function(D){return D.address})),n(ye)?Ue:Be];ve.push(t.INTERFACE.encodeFunctionData("swapExactTokensForTokens",Ie))}}}()}return ve},t.encodeSwaps=function(te,he,ye){if(te instanceof ht){te.swaps.every((function(te){return te.route.protocol==D.Protocol.V3||te.route.protocol==D.Protocol.V2||te.route.protocol==D.Protocol.MIXED}))||be(!1);for(var ve,_e=[],Ie=b(te.swaps);!(ve=Ie()).done;){var Re=ve.value,Oe=Re.route,xe=Re.inputAmount,Be=Re.outputAmount;if(Oe.protocol==D.Protocol.V2)_e.push(new ke.Trade(Oe,te.tradeType==Pe.TradeType.EXACT_INPUT?xe:Be,te.tradeType));else if(Oe.protocol==D.Protocol.V3)_e.push(we.Trade.createUncheckedTrade({route:Oe,inputAmount:xe,outputAmount:Be,tradeType:te.tradeType}));else{if(Oe.protocol!=D.Protocol.MIXED)throw new Error("UNSUPPORTED_TRADE_PROTOCOL");_e.push(rt.createUncheckedTrade({route:Oe,inputAmount:xe,outputAmount:Be,tradeType:te.tradeType}))}}te=_e}Array.isArray(te)||(te=[te]);var Fe=te.reduce((function(D,te){return D+(te instanceof we.Trade||te instanceof rt?te.swaps.length:1)}),0),De=te[0];te.every((function(D){return D.inputAmount.currency.equals(De.inputAmount.currency)}))||be(!1),te.every((function(D){return D.outputAmount.currency.equals(De.outputAmount.currency)}))||be(!1),te.every((function(D){return D.tradeType===De.tradeType}))||be(!1);var Le=[],Ue=De.inputAmount.currency.isNative,qe=De.outputAmount.currency.isNative,je=De.tradeType===Pe.TradeType.EXACT_INPUT&&Fe>2,Je=qe||!!he.fee||!!ye||je;he.inputTokenPermit&&(De.inputAmount.currency.isToken||be(!1),Le.push(we.SelfPermit.encodePermit(De.inputAmount.currency,he.inputTokenPermit)));for(var et,tt=b(te);!(et=tt()).done;){var nt=et.value;if(nt instanceof ke.Trade)Le.push(t.encodeV2Swap(nt,he,Je,je));else if(nt instanceof we.Trade)for(var at,ut=b(t.encodeV3Swap(nt,he,Je,je));!(at=ut()).done;)Le.push(at.value);else{if(!(nt instanceof rt))throw new Error("Unsupported trade object");for(var yt,mt=b(t.encodeMixedRouteSwap(nt,he,Je,je));!(yt=mt()).done;)Le.push(yt.value)}}var bt=Pe.CurrencyAmount.fromRawAmount(De.inputAmount.currency,0),wt=Pe.CurrencyAmount.fromRawAmount(De.outputAmount.currency,0),_t=te.reduce((function(D,te){return D.add(te.minimumAmountOut(he.slippageTolerance))}),wt),Tt=te.reduce((function(D,te){return D.add(te.outputAmount)}),wt),At=te.reduce((function(D,te){return D.add(te.maximumAmountIn(he.slippageTolerance))}),bt);return{calldatas:Le,sampleTrade:De,routerMustCustody:Je,inputIsNative:Ue,outputIsNative:qe,totalAmountIn:At,minimumAmountOut:_t,quoteAmountOut:Tt}},t.swapCallParameters=function(D,te){var he=t.encodeSwaps(D,te),ye=he.calldatas,be=he.sampleTrade,ve=he.inputIsNative,_e=he.totalAmountIn,Ie=he.minimumAmountOut;return he.routerMustCustody&&ye.push(he.outputIsNative?qe.encodeUnwrapWETH9(Ie.quotient,te.recipient,te.fee):qe.encodeSweepToken(be.outputAmount.currency.wrapped,Ie.quotient,te.recipient,te.fee)),ve&&(be.tradeType===Pe.TradeType.EXACT_OUTPUT||t.riskOfPartialFill(D))&&ye.push(we.Payments.encodeRefundETH()),{calldata:Ue.encodeMulticall(ye,te.deadlineOrPreviousBlockhash),value:we.toHex(ve?_e.quotient:yt)}},t.swapAndAddCallParameters=function(te,he,ye,ve,_e,Ie){var Re=t.encodeSwaps(te,he,!0),ke=Re.calldatas,Oe=Re.inputIsNative,xe=Re.outputIsNative,Be=Re.sampleTrade,Fe=Re.totalAmountIn,De=Re.quoteAmountOut,je=Re.minimumAmountOut;he.outputTokenPermit&&(De.currency.isToken||be(!1),ke.push(we.SelfPermit.encodePermit(De.currency,he.outputTokenPermit)));var Je=Be.route.chainId,et=ye.pool.token0.wrapped.address===Fe.currency.wrapped.address,tt=t.getPositionAmounts(ye,et),rt=tt.positionAmountIn,nt=tt.positionAmountOut,at=Oe?Pe.WETH9[Je]:rt.currency.wrapped,ut=xe?Pe.WETH9[Je]:nt.currency.wrapped,ht=nt.subtract(De.wrapped);ht.greaterThan(Pe.CurrencyAmount.fromRawAmount(nt.currency,0))&&ke.push(xe?qe.encodeWrapETH(ht.quotient):qe.encodePull(ut,ht.quotient)),ke.push(Oe?qe.encodeWrapETH(rt.quotient):qe.encodePull(at,rt.quotient)),_e!==D.ApprovalTypes.NOT_REQUIRED&&ke.push(Le.encodeApprove(at,_e)),Ie!==D.ApprovalTypes.NOT_REQUIRED&&ke.push(Le.encodeApprove(ut,Ie));var mt,bt=we.Position.fromAmounts({pool:ye.pool,tickLower:ye.tickLower,tickUpper:ye.tickUpper,amount0:et?ye.amount0.quotient.toString():je.quotient.toString(),amount1:et?je.quotient.toString():ye.amount1.quotient.toString(),useFullPrecision:!1});return ke.push(Le.encodeAddLiquidity(ye,bt,ve,he.slippageTolerance)),ke.push(Oe?qe.encodeUnwrapWETH9(yt):qe.encodeSweepToken(at,yt)),ke.push(xe?qe.encodeUnwrapWETH9(yt):qe.encodeSweepToken(ut,yt)),mt=Oe?Fe.wrapped.add(rt.wrapped).quotient:xe?ht.quotient:yt,{calldata:Ue.encodeMulticall(ke,he.deadlineOrPreviousBlockhash),value:mt.toString()}},t.riskOfPartialFill=function(D){return Array.isArray(D)?D.some((function(D){return t.v3TradeWithHighPriceImpact(D)})):t.v3TradeWithHighPriceImpact(D)},t.v3TradeWithHighPriceImpact=function(D){return!(D instanceof ke.Trade)&&D.priceImpact.greaterThan(mt)},t.getPositionAmounts=function(D,te){var he=D.mintAmounts,ye=he.amount1,be=Pe.CurrencyAmount.fromRawAmount(D.pool.token0,he.amount0),ve=Pe.CurrencyAmount.fromRawAmount(D.pool.token1,ye),we=te?[be,ve]:[ve,be];return{positionAmountIn:we[0],positionAmountOut:we[1]}},t}();bt.INTERFACE=new ye.Interface(Re.abi),D.ADDRESS_THIS=Be,D.ApproveAndCall=Le,D.MSG_SENDER=xe,D.MixedRoute=ut,D.MixedRouteSDK=et,D.MixedRouteTrade=rt,D.MulticallExtended=Ue,D.ONE=De,D.PaymentsExtended=qe,D.RouteV2=nt,D.RouteV3=at,D.SwapRouter=bt,D.Trade=ht,D.V2_FEE_PATH_PLACEHOLDER=8388608,D.ZERO=Fe,D.encodeMixedRouteToPath=L,D.getOutputOfPools=j,D.isMint=A,D.partitionMixedRouteByProtocol=X,D.tradeComparator=q}(jV)),jV}();var oX,cX=GV.exports;!function(D){D.INVALID_CONFIGURATION="INVALID_CONFIGURATION",D.INVALID_SLIPPAGE="INVALID_SLIPPAGE",D.INVALID_MAX_HOPS="INVALID_MAX_HOPS",D.INVALID_ADDRESS="INVALID_ADDRESS",D.DUPLICATE_ADDRESSES="DUPLICATE_ADDRESSES",D.CHAIN_NOT_SUPPORTED="CHAIN_NOT_SUPPORTED",D.NO_ROUTES_AVAILABLE="NO_ROUTES_AVAILABLE",D.PROVIDER_CALL_ERROR="PROVIDER_CALL_ERROR",D.APPROVE_ERROR="APPROVE_ERROR",D.ALREADY_APPROVED_ERROR="ALREADY_APPROVED_ERROR"}(oX||(oX={}));class ExchangeError extends Error{message;code;constructor(D,te){super(D),this.message=D,this.code=te}}class InvalidConfigurationError extends ExchangeError{constructor(D){super(D||"Invalid configuration",oX.INVALID_CONFIGURATION)}}class ChainNotSupportedError extends ExchangeError{constructor(D,te){super(`Chain with ID ${D} is not a supported chain in environment ${te}`,oX.CHAIN_NOT_SUPPORTED)}}class InvalidSlippageError extends ExchangeError{constructor(D){super(D,oX.INVALID_SLIPPAGE)}}class InvalidMaxHopsError extends ExchangeError{constructor(D){super(D,oX.INVALID_MAX_HOPS)}}class InvalidAddressError extends ExchangeError{constructor(D){super(D,oX.INVALID_ADDRESS)}}class DuplicateAddressesError extends ExchangeError{constructor(){super("token in and token out addresses must be different",oX.DUPLICATE_ADDRESSES)}}class NoRoutesAvailableError extends ExchangeError{constructor(){super("no routes available",oX.NO_ROUTES_AVAILABLE)}}class ProviderCallError extends ExchangeError{constructor(D){super(D,oX.PROVIDER_CALL_ERROR)}}class ApproveError extends ExchangeError{constructor(D){super(D,oX.APPROVE_ERROR)}}const dX={"0xcdca1753":["uint256","uint160[]","uint32[]","uint256"],"0xc6a5026a":["uint256","uint160","uint32","uint256"],"0x2f80bb1d":["uint256","uint160[]","uint32[]","uint256"],"0xbd21704a":["uint256","uint160","uint32","uint256"]};const uX=id$3("decimals()").substring(0,10);async function getTokenDecimals(D,te,he){if("native"===D)return he.decimals;try{const he=await te.call({to:D,data:uX});return parseInt(he,16)}catch(D){const te=D instanceof Error?D.message:"Unknown Error";throw new ProviderCallError(`failed to get ERC20 decimals: ${te}`)}}function isValidNonZeroAddress(D){if(D===bi)return!1;try{return getAddress$2(D),!0}catch(D){return!1}}const isValidTokenLiteral=D=>"native"===D||isValidNonZeroAddress(D),erc20ToUniswapToken=D=>new fW(D.chainId,D.address,D.decimals,D.symbol,D.name),uniswapTokenToERC20=D=>({chainId:D.chainId,address:D.address,decimals:D.decimals,symbol:D.symbol,name:D.name,type:"erc20"}),toCurrencyAmount=D=>{const te=erc20ToUniswapToken(D.token);return rW.fromRawAmount(te,D.value.toString())},newAmount=(D,te)=>({value:D,token:te}),isERC20Amount=D=>"erc20"===D.token.type,isNativeAmount=D=>"native"===D.token.type,isNative=D=>"native"===D.type,addAmount=(D,te)=>{if(isERC20Amount(D)&&isERC20Amount(te))return((D,te)=>{if(D.token.address!==te.token.address)throw new Error("Token mismatch: token addresses must be the same");return{value:D.value.add(te.value),token:D.token}})(D,te);if(isNativeAmount(D)&&isNativeAmount(te))return((D,te)=>({value:D.value.add(te.value),token:D.token}))(D,te);throw new Error("Token mismatch: token types must be the same")},subtractAmount=(D,te)=>{if(isERC20Amount(D)&&isERC20Amount(te))return((D,te)=>{if(D.token.address!==te.token.address)throw new Error("Token mismatch: token addresses must be the same");return{value:D.value.sub(te.value),token:D.token}})(D,te);if(isNativeAmount(D)&&isNativeAmount(te))return((D,te)=>({value:D.value.sub(te.value),token:D.token}))(D,te);throw new Error("Token mismatch: token types must be the same")},toPublicAmount=D=>{return{token:(te=D.token,"native"===te.type?{address:"native",chainId:te.chainId,decimals:te.decimals,symbol:te.symbol,name:te.name}:te),value:D.value};var te},getDefaultDeadlineSeconds=()=>Math.floor(Date.now()/1e3)+900,fX=13473,lX=13371,pX={chainId:fX,decimals:18,symbol:"tIMX",name:"Immutable Testnet Token",type:"native"},hX={chainId:fX,address:"0x1CcCa691501174B4A623CeDA58cC8f1a76dc3439",decimals:18,symbol:"WIMX",name:"Wrapped Immutable Testnet Token",type:"erc20"},yX=[hX],mX={chainId:lX,decimals:18,symbol:"IMX",name:"Immutable Token",type:"native"},bX={chainId:lX,address:"0x3a0c2ba54d6cbd3121f01b96dfd20e99d1696c9d",decimals:18,symbol:"WIMX",name:"Wrapped Immutable Token",type:"erc20"},gX=[bX,{chainId:lX,address:"0x52a6c53869ce09a731cd772f245b97a4401d3348",decimals:18,symbol:"ETH",name:"Ethereum",type:"erc20"}],fetchGasPrice=async(D,te)=>{const he=await(async D=>{const[te,he]=await Promise.all([D.getBlock("latest"),D.send("eth_maxPriorityFeePerGas",[])]);if(!te.baseFeePerGas)throw new Error("Base fee per gas not found in block");return{maxFeePerGas:te.baseFeePerGas.mul(2).add(he),maxPriorityFeePerGas:he,lastBaseFeePerGas:te.baseFeePerGas}})(D).catch((()=>null));return he?newAmount(he.maxFeePerGas,te):null},calculateGasFee=(D,te,he)=>{const ye=newAmount(he.mul(te.value),te.token);return D?newAmount(ye.value.add(te.value.mul(50876)),te.token):ye},vX=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}];class ERC20__factory{static abi=vX;static createInterface(){return new Xo(vX)}static connect(D,te){return new fu(D,vX,te)}}const getApproveTransaction$1=async(D,te,he,ye)=>{const be=await(async(D,te,he,ye)=>{const be=ERC20__factory.connect(he.token.address,D);let ve;try{ve=await be.allowance(te,ye)}catch(D){const te=D instanceof Error?D.message:"Unknown Error";throw new ApproveError(`failed to get allowance: ${te}`)}const we=he.value.sub(ve);return!we.isNegative()&&!we.isZero()})(D,te,he,ye);return be?((D,te,he)=>{if(D===he)throw new ApproveError("owner and spender addresses are the same");return{data:ERC20__factory.createInterface().encodeFunctionData("approve",[he,te.value]),to:te.token.address,value:0,from:D}})(te,he,ye):null};const getApproval=async(D,te,he,ye)=>{const be=await getApproveTransaction$1(D,te,he.amount,he.spender);if(!be)return null;const ve=await async function getApproveGasEstimate(D,te,he,ye){const be=ERC20__factory.connect(ye,D);return await be.estimateGas.approve(he,Xi,{from:te})}(D,te,he.spender,he.amount.token.address),we=ye?calculateGasFee(!1,ye,ve):null;return{transaction:be,gasFeeEstimate:we?toPublicAmount(we):null}},canUnwrapToken=D=>"native"===D.type;class NativeTokenService{nativeToken;wrappedToken;constructor(D,te){this.nativeToken=D,this.wrappedToken=te}wrapAmount(D){return newAmount(D.value,this.wrappedToken)}unwrapAmount(D){if(D.token.address.toLowerCase()!==this.wrappedToken.address.toLowerCase())throw new Error(`cannot unwrap non-wrapped token ${D.token.address}`);return newAmount(D.value,this.nativeToken)}maybeWrapToken(D){return canUnwrapToken(D)?this.wrappedToken:D}maybeWrapAmount(D){return newAmount(D.value,this.maybeWrapToken(D.token))}isWrappedNative(D){return"erc20"===D.type&&D.address.toLowerCase()===this.wrappedToken.address.toLowerCase()}isWrapOrUnwrap(D,te){return D===this.nativeToken&&this.isWrappedNative(te)||this.isWrappedNative(D)&&te===this.nativeToken}}const slippageToFraction=D=>{if(1===D.toString().split(".").length)return new aW(D,100);const te=(D/100).toString().split("."),he=te[0]+te[1],ye=10**te[1].length;return new aW(he,ye)};const prepareUserQuote=(D,te,he,ye)=>{const be=function getQuoteAmountFromTradeType(D){return D.tradeType===Hz.EXACT_INPUT?D.amountOut:D.amountIn}(te),ve=canUnwrapToken(ye)?D.unwrapAmount(be):be,we=newAmount(function applySlippage(D,te,he){const ye=slippageToFraction(he).add(1),be=(D===Hz.EXACT_INPUT?ye.invert():ye).multiply(te.toString()).quotient;return Li.from(be.toString())}(te.tradeType,ve.value,he),ye);return{quotedAmount:ve,quotedAmountWithMaxSlippage:we}};class Fees{secondaryFees;amount;constructor(D,te){this.secondaryFees=D,this.amount=newAmount(Li.from(0),te)}get token(){return this.amount.token}addAmount(D){this.amount=addAmount(this.amount,D)}amountWithFeesApplied(){return addAmount(this.amount,this.total())}amountLessFees(){return subtractAmount(this.amount,this.total())}withAmounts(){return this.secondaryFees.map((D=>{const te=this.amount.value.mul(D.basisPoints).div(1e4);return{...D,amount:newAmount(te,this.amount.token)}}))}total(){let D=newAmount(Li.from(0),this.amount.token);for(const te of this.secondaryFees){const he=this.amount.value.mul(te.basisPoints).div(1e4);D=addAmount(D,newAmount(he,this.amount.token))}return D}}const wX=[{inputs:[{internalType:"address",name:"_admin",type:"address"},{internalType:"address",name:"_uniRouter",type:"address"},{internalType:"address",name:"_wimx",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"ContractPaused",type:"error"},{inputs:[],name:"DeadlinePassed",type:"error"},{inputs:[],name:"FailedToRefundNativeTokens",type:"error"},{inputs:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"FailedToSendFees",type:"error"},{inputs:[{internalType:"uint256",name:"required",type:"uint256"},{internalType:"uint256",name:"actual",type:"uint256"}],name:"FailedToUnwrapNativeTokens",type:"error"},{inputs:[],name:"FailedToWithdrawNativeTokens",type:"error"},{inputs:[],name:"FeeTooHigh",type:"error"},{inputs:[],name:"IncorrectRecipient",type:"error"},{inputs:[],name:"InputTokenNotWrapped",type:"error"},{inputs:[],name:"NativeTokenAmountMismatch",type:"error"},{inputs:[],name:"Unauthorized",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"feeToken",type:"address"},{indexed:!0,internalType:"address",name:"feePayer",type:"address"},{indexed:!0,internalType:"address",name:"feeRecipient",type:"address"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"}],name:"FeeTaken",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"feePayer",type:"address"},{indexed:!0,internalType:"address",name:"feeRecipient",type:"address"},{indexed:!1,internalType:"uint256",name:"feeAmount",type:"uint256"}],name:"FeeTaken",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct IImmutableSwapProxy.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactInputSingleParams",name:"swapParams",type:"tuple"}],name:"exactInputSingleWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct IImmutableSwapProxy.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountIn",type:"uint256"},{internalType:"uint256",name:"amountOutMinimum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactInputParams",name:"swapParams",type:"tuple"}],name:"exactInputWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountOut",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct IImmutableSwapProxy.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"address",name:"tokenIn",type:"address"},{internalType:"address",name:"tokenOut",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"}],internalType:"struct IV3SwapRouter.ExactOutputSingleParams",name:"swapParams",type:"tuple"}],name:"exactOutputSingleWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{components:[{internalType:"address payable",name:"recipient",type:"address"},{internalType:"uint256",name:"feeBasisPoints",type:"uint256"}],internalType:"struct IImmutableSwapProxy.SecondaryFeeParams[]",name:"secondaryFees",type:"tuple[]"},{components:[{internalType:"bytes",name:"path",type:"bytes"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"amountInMaximum",type:"uint256"}],internalType:"struct IV3SwapRouter.ExactOutputParams",name:"swapParams",type:"tuple"}],name:"exactOutputWithSecondaryFee",outputs:[{internalType:"uint256",name:"amountIn",type:"uint256"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"",type:"bytes[]"}],stateMutability:"payable",type:"function"},{inputs:[{internalType:"bytes[]",name:"data",type:"bytes[]"}],name:"multicall",outputs:[{internalType:"bytes[]",name:"results",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amountMinimum",type:"uint256"}],name:"unwrapNativeToken",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"address",name:"erc20",type:"address"}],name:"withdrawFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"}],name:"withdrawFunds",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}],_X="0x60806040523480156200001157600080fd5b50604051620034dd380380620034dd83398101604081905262000034916200015c565b6001805460ff191690556200004b6000846200009e565b600180546001600160a01b039384166101008102610100600160a81b03199092169190911790915560038054929093166001600160a01b03199283161790925560028054909116909117905550620001a6565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200013b576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000fa3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b80516001600160a01b03811681146200015757600080fd5b919050565b6000806000606084860312156200017257600080fd5b6200017d846200013f565b92506200018d602085016200013f565b91506200019d604085016200013f565b90509250925092565b61332780620001b66000396000f3fe6080604052600436106101175760003560e01c806358e81a50116100a05780638456cb59116100645780638456cb59146102c457806391d14854146102d9578063a217fddf146102f9578063ac9650d81461030e578063d547741f1461032e57600080fd5b806358e81a50146102465780635ae401dc146102595780635c975abb146102795780635ebca7991461029157806368742da6146102a457600080fd5b80632f2ff15d116100e75780632f2ff15d146101cb57806336568abe146101eb578063383ebb0b1461020b5780633f4ba83a1461021e5780635640f6591461023357600080fd5b80620fa9fb1461012357806301ffc9a714610145578063116944b21461017a578063248a9ca31461019b57600080fd5b3661011e57005b600080fd5b34801561012f57600080fd5b5061014361013e366004612ab8565b61034e565b005b34801561015157600080fd5b50610165610160366004612af1565b61041a565b60405190151581526020015b60405180910390f35b61018d610188366004612c89565b610451565b604051908152602001610171565b3480156101a757600080fd5b5061018d6101b6366004612cde565b60009081526020819052604090206001015490565b3480156101d757600080fd5b506101436101e6366004612cf7565b610771565b3480156101f757600080fd5b50610143610206366004612cf7565b610796565b61018d610219366004612ddf565b610819565b34801561022a57600080fd5b50610143610b86565b61018d610241366004612ddf565b610bd6565b61018d610254366004612c89565b610ee4565b61026c610267366004612e8b565b61121e565b6040516101719190612f26565b34801561028557600080fd5b5060015460ff16610165565b61014361029f366004612cde565b611255565b3480156102b057600080fd5b506101436102bf366004612f88565b6113ad565b3480156102d057600080fd5b50610143611428565b3480156102e557600080fd5b506101656102f4366004612cf7565b611476565b34801561030557600080fd5b5061018d600081565b34801561031a57600080fd5b5061026c610329366004612fa5565b61149f565b34801561033a57600080fd5b50610143610349366004612cf7565b611593565b6103787f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b610394576040516282b42960e81b815260040160405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156103db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ff9190612fe6565b90506104156001600160a01b03831684836115b8565b505050565b60006001600160e01b03198216637965db0b60e01b148061044b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061045f60015460ff1690565b1561047d5760405163ab35696f60e01b815260040160405180910390fd5b61048a826060015161161b565b6104a75760405163519bdea760e01b815260040160405180910390fd5b608082015134801561065a57836080015181146104d7576040516342f7487960e11b815260040160405180910390fd5b60035484516001600160a01b03908116911614610507576040516324d0121760e01b815260040160405180910390fd5b60008061056f866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b828210156105655761055660408302860136819003810190612fff565b81526020019060010190610539565b5050505050611641565b608088018290526001546040516304e45aaf60e01b815292945090925061010090046001600160a01b0316906304e45aaf9084906105b1908a90600401613056565b60206040518083038185885af11580156105cf573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906105f49190612fe6565b945061065384828a8a808060200260200160405190810160405280939291908181526020016000905b828210156106495761063a60408302860136819003810190612fff565b8152602001906001019061061d565b5050505050611679565b5050610768565b6000806106b8866000015187608001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610565576106a960408302860136819003810190612fff565b8152602001906001019061068c565b60808801829052875191935091506106db906001600160a01b031633308561170c565b6001546040516304e45aaf60e01b81526101009091046001600160a01b0316906304e45aaf9061070f908990600401613056565b6020604051808303816000875af115801561072e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107529190612fe6565b9450610765866000015185838b8b61174a565b50505b50509392505050565b60008281526020819052604090206001015461078c8161184b565b6104158383611855565b6001600160a01b038116331461080b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61081582826118d9565b5050565b600061082760015460ff1690565b156108455760405163ab35696f60e01b815260040160405180910390fd5b610852826020015161161b565b61086f5760405163519bdea760e01b815260040160405180910390fd5b600061087e836000015161193e565b606084015190915034908115610a30576003546001600160a01b038481169116146108bc576040516324d0121760e01b815260040160405180910390fd5b846060015182146108e0576040516342f7487960e11b815260040160405180910390fd5b600061094286606001518989808060200260200160405190810160405280939291908181526020016000905b828210156109385761092960408302860136819003810190612fff565b8152602001906001019061090c565b5050505050611974565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b81346908490610985908b906004016130fc565b60206040518083038185885af11580156109a3573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906109c89190612fe6565b9050610a2781848b8b808060200260200160405190810160405280939291908181526020016000905b82821015610a1d57610a0e60408302860136819003810190612fff565b815260200190600101906109f1565b50505050506119c3565b95505050610b7c565b6000610a938487606001518a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a8957610a7a60408302860136819003810190612fff565b81526020019060010190610a5d565b5050505050611aab565b606087018190526001546040516304dc09a360e11b81529192506000916101009091046001600160a01b0316906309b8134690610ad4908a906004016130fc565b6020604051808303816000875af1158015610af3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b179190612fe6565b9050610b778582858c8c808060200260200160405190810160405280939291908181526020016000905b82821015610b6d57610b5e60408302860136819003810190612fff565b81526020019060010190610b41565b5050505050611b03565b955050505b5050509392505050565b610bb07fe7276a2a84d8de556657ec9cf93a55a7d66f096e529d0582ed08e9e2208b92b533611476565b610bcc576040516282b42960e81b815260040160405180910390fd5b610bd4611b57565b565b6000610be460015460ff1690565b15610c025760405163ab35696f60e01b815260040160405180910390fd5b610c0f826020015161161b565b610c2c5760405163519bdea760e01b815260040160405180910390fd5b6000610c3b8360000151611ba9565b6040840151909150348015610dd75784604001518114610c6e576040516342f7487960e11b815260040160405180910390fd5b6003546001600160a01b03848116911614610c9c576040516324d0121760e01b815260040160405180910390fd5b600080610cf68588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610ce760408302860136819003810190612fff565b81526020019060010190610cca565b6040898101839052600154905163b858183f60e01b815292945090925061010090046001600160a01b03169063b858183f908490610d38908b906004016130fc565b60206040518083038185885af1158015610d56573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d7b9190612fe6565b9550610dd084828b8b808060200260200160405190810160405280939291908181526020016000905b8282101561064957610dc160408302860136819003810190612fff565b81526020019060010190610da4565b5050610b7c565b600080610e318588604001518b8b808060200260200160405190810160405280939291908181526020016000905b8282101561056557610e2260408302860136819003810190612fff565b81526020019060010190610e05565b604089018290529092509050610e526001600160a01b03861633308561170c565b60015460405163b858183f60e01b81526101009091046001600160a01b03169063b858183f90610e86908a906004016130fc565b6020604051808303816000875af1158015610ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec99190612fe6565b9550610ed88585838c8c61174a565b50505050509392505050565b6000610ef260015460ff1690565b15610f105760405163ab35696f60e01b815260040160405180910390fd5b610f1d826060015161161b565b610f3a5760405163519bdea760e01b815260040160405180910390fd5b60a0820151349081156110d75760035484516001600160a01b03908116911614610f77576040516324d0121760e01b815260040160405180910390fd5b8360a001518214610f9b576040516342f7487960e11b815260040160405180910390fd5b6000610ff38560a001518888808060200260200160405190810160405280939291908181526020016000905b8282101561093857610fe460408302860136819003810190612fff565b81526020019060010190610fc7565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df908490611036908a90600401613056565b60206040518083038185885af1158015611054573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906110799190612fe6565b90506110ce81848a8a808060200260200160405190810160405280939291908181526020016000905b82821015610a1d576110bf60408302860136819003810190612fff565b815260200190600101906110a2565b94505050610768565b600061113485600001518660a001518989808060200260200160405190810160405280939291908181526020016000905b82821015610a895761112560408302860136819003810190612fff565b81526020019060010190611108565b60a08601819052600154604051635023b4df60e01b81529192506000916101009091046001600160a01b031690635023b4df90611175908990600401613056565b6020604051808303816000875af1158015611194573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b89190612fe6565b9050611212866000015182858b8b808060200260200160405190810160405280939291908181526020016000905b82821015610b6d5761120360408302860136819003810190612fff565b815260200190600101906111e6565b98975050505050505050565b6060834211156112415760405163387b2e5560e11b815260040160405180910390fd5b61124b838361149f565b90505b9392505050565b60015460ff16156112795760405163ab35696f60e01b815260040160405180910390fd5b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156112c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e69190612fe6565b905081811015611313576040516342fb4ceb60e11b81526004810183905260248101829052604401610802565b801561081557600354604051632e1a7d4d60e01b8152600481018390526001600160a01b0390911690632e1a7d4d90602401600060405180830381600087803b15801561135f57600080fd5b505af1158015611373573d6000803e3d6000fd5b5050505060006113833383611bb5565b905080610415576040516342fb4ceb60e11b81526004810184905260248101839052604401610802565b6113d77f7a8dc26796a1e50e6e190b70259f58f6a4edd5b22280ceecc82b687b8e98286933611476565b6113f3576040516282b42960e81b815260040160405180910390fd5b47156114255760006114058247611bb5565b90508061081557604051633398652560e11b815260040160405180910390fd5b50565b6114527ffcb9fcbfa83b897fb2d5cf4b58962164105c1e71489a37ef3ae0db3fdce576f633611476565b61146e576040516282b42960e81b815260040160405180910390fd5b610bd4611c5f565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b6060816001600160401b038111156114b9576114b9612b66565b6040519080825280602002602001820160405280156114ec57816020015b60608152602001906001900390816114d75790505b50905060005b8281101561158c5761155c308585848181106115105761151061310f565b90506020028101906115229190613125565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611c9a92505050565b82828151811061156e5761156e61310f565b6020026020010181905250808061158490613181565b9150506114f2565b5092915050565b6000828152602081905260409020600101546115ae8161184b565b61041583836118d9565b6040516001600160a01b03831660248201526044810182905261041590849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611cbf565b60006001600160a01b03821633148061044b57506001600160a01b038216301492915050565b60008061164d83611d94565b506116588484611e07565b509050611665818561319a565b91506116718583611f30565b935093915050565b600061168361202d565b905060006116928583866120a4565b90506000806116a18386611e07565b915091506116ae816120d0565b8315611703576000826116c1858a61319a565b6116cb919061319a565b905080156117015760006116df3383611bb5565b9050806116ff576040516382e4f46960e01b815260040160405180910390fd5b505b505b50505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526117449085906323b872dd60e01b906084016115e4565b50505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038716906370a0823190602401602060405180830381865afa158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b59190612fe6565b905060006117c48683876120a4565b90506000611824828686808060200260200160405190810160405280939291908181526020016000905b8282101561181a5761180b60408302860136819003810190612fff565b815260200190600101906117ee565b5050505050611e07565b91505061183188826121af565b8215611701576117016001600160a01b03891633856115b8565b61142581336122b8565b61185f8282611476565b610815576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556118953390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6118e38282611476565b15610815576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000806014835161194f919061319a565b9050600061195f84836014612311565b905061196c81600061241e565b949350505050565b60008061198083611d94565b90506000611990826127106131ad565b905060006119a18661271084612483565b6003549091506119ba906001600160a01b031682611f30565b95945050505050565b60008060006119d28685611e07565b915091506119df816120d0565b600260009054906101000a90046001600160a01b03166001600160a01b03166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611a2f57600080fd5b505af1158015611a43573d6000803e3d6000fd5b505050506000828787611a56919061319a565b611a60919061319a565b90508015611a96576000611a743383611bb5565b905080611a94576040516382e4f46960e01b815260040160405180910390fd5b505b611aa083886131ad565b979650505050505050565b600080611ab783611d94565b90506000611ac7826127106131ad565b90506000611ad88661271084612483565b9050611ae48782611f30565b611af96001600160a01b03881633308961170c565b9695505050505050565b6000806000611b128685611e07565b91509150611b2087826124c3565b600082611b2d888861319a565b611b37919061319a565b9050611b4d6001600160a01b03891633836115b8565b61121283886131ad565b611b5f6125ca565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061044b828261241e565b600081471015611c075760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610802565b6040516001600160a01b038416908390600081818185875af1925050503d8060008114611c50576040519150601f19603f3d011682016040523d82523d6000602084013e611c55565b606091505b5090949350505050565b611c67612613565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611b8c565b606061124e83836040518060600160405280602781526020016132cb60279139612659565b6000611d14826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166126c79092919063ffffffff16565b9050805160001480611d35575080806020019051810190611d3591906131c0565b6104155760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610802565b6000805b8251811015611dde57828181518110611db357611db361310f565b60200260200101516020015182611dca91906131ad565b915080611dd681613181565b915050611d98565b506103e8811115611e025760405163cd4e616760e01b815260040160405180910390fd5b919050565b6000606082516001600160401b03811115611e2457611e24612b66565b604051908082528060200260200182016040528015611e6957816020015b6040805180820190915260008082526020820152815260200190600190039081611e425790505b50905060005b8351811015611f28576000611eae858381518110611e8f57611e8f61310f565b602002602001015160200151612710886126d69092919063ffffffff16565b90506040518060400160405280868481518110611ecd57611ecd61310f565b6020026020010151600001516001600160a01b0316815260200182815250838381518110611efd57611efd61310f565b6020908102919091010152611f1281856131ad565b9350508080611f2090613181565b915050611e6f565b509250929050565b600154604051636eb1769f60e11b81523060048201526001600160a01b0361010090920482166024820152829184169063dd62ed3e90604401602060405180830381865afa158015611f86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611faa9190612fe6565b10156108155760015460405163095ea7b360e01b81526101009091046001600160a01b039081166004830152600019602483015283169063095ea7b3906044016020604051808303816000875af1158015612009573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041591906131c0565b60025460408051630910874560e11b8152905160009247926001600160a01b03909116916312210e8a91600480820192879290919082900301818387803b15801561207757600080fd5b505af115801561208b573d6000803e3d6000fd5b5047925061209d91508390508261319a565b9250505090565b600082156120c857816120b7848661319a565b6120c1919061319a565b905061124e565b509192915050565b60005b81518110156108155760008282815181106120f0576120f061310f565b60200260200101519050600061210e82600001518360200151611bb5565b90508061214557815160208301516040516208c3b360e61b81526001600160a01b0390921660048301526024820152604401610802565b81600001516001600160a01b0316336001600160a01b03167fe0e765ab26c1caf691c510426951246128b96830e49cc81d8c093fd551abac35846020015160405161219291815260200190565b60405180910390a3505080806121a790613181565b9150506120d3565b60005b815181101561041557612215338383815181106121d1576121d161310f565b6020026020010151600001518484815181106121ef576121ef61310f565b602002602001015160200151866001600160a01b031661170c909392919063ffffffff16565b8181815181106122275761222761310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106122835761228361310f565b60200260200101516020015160405161229e91815260200190565b60405180910390a4806122b081613181565b9150506121b2565b6122c28282611476565b610815576122cf81612778565b6122da83602061278a565b6040516020016122eb9291906131e2565b60408051601f198184030181529082905262461bcd60e51b825261080291600401613257565b60608161231f81601f6131ad565b101561235e5760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606401610802565b61236882846131ad565b845110156123ac5760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606401610802565b6060821580156123cb5760405191506000825260208201604052612415565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156124045780518352602092830192016123ec565b5050858452601f01601f1916604052505b50949350505050565b600061242b8260146131ad565b835110156124735760405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606401610802565b500160200151600160601b900490565b60006124908484846126d6565b9050600082806124a2576124a261326a565b848609111561124e5760001981106124b957600080fd5b6001019392505050565b60005b8151811015610415576125278282815181106124e4576124e461310f565b6020026020010151600001518383815181106125025761250261310f565b602002602001015160200151856001600160a01b03166115b89092919063ffffffff16565b8181815181106125395761253961310f565b6020026020010151600001516001600160a01b0316336001600160a01b0316846001600160a01b03167f1f9a9fdac86b6ca3c5300bec0b61555cded1f1a234378602dcca6c27085eac8e8585815181106125955761259561310f565b6020026020010151602001516040516125b091815260200190565b60405180910390a4806125c281613181565b9150506124c6565b60015460ff16610bd45760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610802565b60015460ff1615610bd45760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610802565b6060600080856001600160a01b0316856040516126769190613280565b600060405180830381855af49150503d80600081146126b1576040519150601f19603f3d011682016040523d82523d6000602084013e6126b6565b606091505b5091509150611af986838387612925565b606061124b848460008561299e565b600083830281600019858709828110838203039150508084116126f857600080fd5b8060000361270b5750829004905061124e565b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b606061044b6001600160a01b03831660145b6060600061279983600261329c565b6127a49060026131ad565b6001600160401b038111156127bb576127bb612b66565b6040519080825280601f01601f1916602001820160405280156127e5576020820181803683370190505b509050600360fc1b816000815181106128005761280061310f565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061282f5761282f61310f565b60200101906001600160f81b031916908160001a905350600061285384600261329c565b61285e9060016131ad565b90505b60018111156128d6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106128925761289261310f565b1a60f81b8282815181106128a8576128a861310f565b60200101906001600160f81b031916908160001a90535060049490941c936128cf816132b3565b9050612861565b50831561124e5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610802565b6060831561299457825160000361298d576001600160a01b0385163b61298d5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610802565b508161196c565b61196c8383612a6e565b6060824710156129ff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610802565b600080866001600160a01b03168587604051612a1b9190613280565b60006040518083038185875af1925050503d8060008114612a58576040519150601f19603f3d011682016040523d82523d6000602084013e612a5d565b606091505b5091509150611aa087838387612925565b815115612a7e5781518083602001fd5b8060405162461bcd60e51b81526004016108029190613257565b6001600160a01b038116811461142557600080fd5b8035611e0281612a98565b60008060408385031215612acb57600080fd5b8235612ad681612a98565b91506020830135612ae681612a98565b809150509250929050565b600060208284031215612b0357600080fd5b81356001600160e01b03198116811461124e57600080fd5b60008083601f840112612b2d57600080fd5b5081356001600160401b03811115612b4457600080fd5b6020830191508360208260061b8501011115612b5f57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b60405160e081016001600160401b0381118282101715612b9e57612b9e612b66565b60405290565b604051608081016001600160401b0381118282101715612b9e57612b9e612b66565b604051601f8201601f191681016001600160401b0381118282101715612bee57612bee612b66565b604052919050565b600060e08284031215612c0857600080fd5b612c10612b7c565b90508135612c1d81612a98565b81526020820135612c2d81612a98565b6020820152604082013562ffffff81168114612c4857600080fd5b6040820152612c5960608301612aad565b60608201526080820135608082015260a082013560a0820152612c7e60c08301612aad565b60c082015292915050565b60008060006101008486031215612c9f57600080fd5b83356001600160401b03811115612cb557600080fd5b612cc186828701612b1b565b9094509250612cd590508560208601612bf6565b90509250925092565b600060208284031215612cf057600080fd5b5035919050565b60008060408385031215612d0a57600080fd5b823591506020830135612ae681612a98565b600060808284031215612d2e57600080fd5b612d36612ba4565b905081356001600160401b0380821115612d4f57600080fd5b818401915084601f830112612d6357600080fd5b8135602082821115612d7757612d77612b66565b612d89601f8301601f19168201612bc6565b92508183528681838601011115612d9f57600080fd5b81818501828501376000818385010152828552612dbd818701612aad565b8186015250505050604082013560408201526060820135606082015292915050565b600080600060408486031215612df457600080fd5b83356001600160401b0380821115612e0b57600080fd5b612e1787838801612b1b565b90955093506020860135915080821115612e3057600080fd5b50612e3d86828701612d1c565b9150509250925092565b60008083601f840112612e5957600080fd5b5081356001600160401b03811115612e7057600080fd5b6020830191508360208260051b8501011115612b5f57600080fd5b600080600060408486031215612ea057600080fd5b8335925060208401356001600160401b03811115612ebd57600080fd5b612ec986828701612e47565b9497909650939450505050565b60005b83811015612ef1578181015183820152602001612ed9565b50506000910152565b60008151808452612f12816020860160208601612ed6565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612f7b57603f19888603018452612f69858351612efa565b94509285019290850190600101612f4d565b5092979650505050505050565b600060208284031215612f9a57600080fd5b813561124e81612a98565b60008060208385031215612fb857600080fd5b82356001600160401b03811115612fce57600080fd5b612fda85828601612e47565b90969095509350505050565b600060208284031215612ff857600080fd5b5051919050565b60006040828403121561301157600080fd5b604051604081018181106001600160401b038211171561303357613033612b66565b604052823561304181612a98565b81526020928301359281019290925250919050565b60e0810161044b828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c09182015116910152565b60008151608084526130ca6080850182612efa565b6020848101516001600160a01b0316908601526040808501519086015260609384015193909401929092525090919050565b60208152600061124e60208301846130b5565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261313c57600080fd5b8301803591506001600160401b0382111561315657600080fd5b602001915036819003821315612b5f57600080fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131935761319361316b565b5060010190565b8181038181111561044b5761044b61316b565b8082018082111561044b5761044b61316b565b6000602082840312156131d257600080fd5b8151801515811461124e57600080fd5b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161321a816017850160208801612ed6565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161324b816028840160208801612ed6565b01602801949350505050565b60208152600061124e6020830184612efa565b634e487b7160e01b600052601260045260246000fd5b60008251613292818460208701612ed6565b9190910192915050565b808202811582820484141761044b5761044b61316b565b6000816132c2576132c261316b565b50600019019056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220162c0f9d1b47c666f486fc65c7c7502bb0e7378e3166be6f93d98943154831c364736f6c63430008130033";class ImmutableSwapProxy__factory extends ContractFactory{constructor(...D){D.length>1?super(...D):super(wX,_X,D[0])}deploy(D,te,he,ye){return super.deploy(D,te,he,ye||{})}getDeployTransaction(D,te,he,ye){return super.getDeployTransaction(D,te,he,ye||{})}attach(D){return super.attach(D)}connect(D){return super.connect(D)}static bytecode=_X;static abi=wX;static createInterface(){return new Xo(wX)}static connect(D,te){return new fu(D,wX,te)}}const TX=[{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"uint256",name:"gasLimit",type:"uint256"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct UniswapInterfaceMulticall.Call[]",name:"calls",type:"tuple[]"}],name:"multicall",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"uint256",name:"gasUsed",type:"uint256"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct UniswapInterfaceMulticall.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}],AX="0x608060405234801561001057600080fd5b50610567806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630f28c97d146100465780631749e1e3146100645780634d2301cc14610085575b600080fd5b61004e610098565b60405161005b919061041f565b60405180910390f35b6100776100723660046102a7565b61009c565b60405161005b929190610428565b61004e610093366004610286565b610220565b4290565b8051439060609067ffffffffffffffff811180156100b957600080fd5b506040519080825280602002602001820160405280156100f357816020015b6100e061023a565b8152602001906001900390816100d85790505b50905060005b835181101561021a57600080600086848151811061011357fe5b60200260200101516000015187858151811061012b57fe5b60200260200101516020015188868151811061014357fe5b60200260200101516040015192509250925060005a90506000808573ffffffffffffffffffffffffffffffffffffffff1685856040516101839190610403565b60006040518083038160008787f1925050503d80600081146101c1576040519150601f19603f3d011682016040523d82523d6000602084013e6101c6565b606091505b509150915060005a8403905060405180606001604052808415158152602001828152602001838152508989815181106101fb57fe5b60200260200101819052505050505050505080806001019150506100f9565b50915091565b73ffffffffffffffffffffffffffffffffffffffff163190565b604051806060016040528060001515815260200160008152602001606081525090565b803573ffffffffffffffffffffffffffffffffffffffff8116811461028157600080fd5b919050565b600060208284031215610297578081fd5b6102a08261025d565b9392505050565b600060208083850312156102b9578182fd5b823567ffffffffffffffff808211156102d0578384fd5b818501915085601f8301126102e3578384fd5b8135818111156102ef57fe5b6102fc8485830201610506565b81815284810190848601875b848110156103f457813587017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0606081838f03011215610346578a8bfd5b60408051606081018181108b8211171561035c57fe5b8252610369848d0161025d565b8152818401358c82015260608401358a811115610384578d8efd5b8085019450508e603f850112610398578c8dfd5b8b8401358a8111156103a657fe5b6103b68d85601f84011601610506565b93508084528f838287010111156103cb578d8efd5b808386018e86013783018c018d9052908101919091528552509287019290870190600101610308565b50909998505050505050505050565b6000825161041581846020870161052a565b9190910192915050565b90815260200190565b600060408083018584526020828186015281865180845260609350838701915083838202880101838901875b838110156104f6578983037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa001855281518051151584528681015187850152880151888401889052805188850181905260806104b582828801858c0161052a565b96880196601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01694909401909301925090850190600101610454565b50909a9950505050505050505050565b60405181810167ffffffffffffffff8111828210171561052257fe5b604052919050565b60005b8381101561054557818101518382015260200161052d565b83811115610554576000848401525b5050505056fea164736f6c6343000706000a";class Multicall__factory extends ContractFactory{constructor(...D){D.length>1?super(...D):super(TX,AX,D[0])}deploy(D){return super.deploy(D||{})}getDeployTransaction(D){return super.getDeployTransaction(D||{})}attach(D){return super.attach(D)}connect(D){return super.connect(D)}static bytecode=AX;static abi=TX;static createInterface(){return new Xo(TX)}static connect(D,te){return new fu(D,TX,te)}}const EX=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Burn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"amount1",type:"uint128"}],name:"Collect",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint128",name:"amount0",type:"uint128"},{indexed:!1,internalType:"uint128",name:"amount1",type:"uint128"}],name:"CollectProtocol",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"},{indexed:!1,internalType:"uint256",name:"paid0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"paid1",type:"uint256"}],name:"Flash",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint16",name:"observationCardinalityNextOld",type:"uint16"},{indexed:!1,internalType:"uint16",name:"observationCardinalityNextNew",type:"uint16"}],name:"IncreaseObservationCardinalityNext",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Initialize",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"int24",name:"tickLower",type:"int24"},{indexed:!0,internalType:"int24",name:"tickUpper",type:"int24"},{indexed:!1,internalType:"uint128",name:"amount",type:"uint128"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"}],name:"Mint",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint8",name:"feeProtocol0Old",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol1Old",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol0New",type:"uint8"},{indexed:!1,internalType:"uint8",name:"feeProtocol1New",type:"uint8"}],name:"SetFeeProtocol",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"int256",name:"amount0",type:"int256"},{indexed:!1,internalType:"int256",name:"amount1",type:"int256"},{indexed:!1,internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{indexed:!1,internalType:"uint128",name:"liquidity",type:"uint128"},{indexed:!1,internalType:"int24",name:"tick",type:"int24"}],name:"Swap",type:"event"},{inputs:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount",type:"uint128"}],name:"burn",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount0Requested",type:"uint128"},{internalType:"uint128",name:"amount1Requested",type:"uint128"}],name:"collect",outputs:[{internalType:"uint128",name:"amount0",type:"uint128"},{internalType:"uint128",name:"amount1",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint128",name:"amount0Requested",type:"uint128"},{internalType:"uint128",name:"amount1Requested",type:"uint128"}],name:"collectProtocol",outputs:[{internalType:"uint128",name:"amount0",type:"uint128"},{internalType:"uint128",name:"amount1",type:"uint128"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"factory",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"fee",outputs:[{internalType:"uint24",name:"",type:"uint24"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeGrowthGlobal0X128",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"feeGrowthGlobal1X128",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"bytes",name:"data",type:"bytes"}],name:"flash",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"observationCardinalityNext",type:"uint16"}],name:"increaseObservationCardinalityNext",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"liquidity",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxLiquidityPerTick",outputs:[{internalType:"uint128",name:"",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"},{internalType:"uint128",name:"amount",type:"uint128"},{internalType:"bytes",name:"data",type:"bytes"}],name:"mint",outputs:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"",type:"uint256"}],name:"observations",outputs:[{internalType:"uint32",name:"blockTimestamp",type:"uint32"},{internalType:"int56",name:"tickCumulative",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityCumulativeX128",type:"uint160"},{internalType:"bool",name:"initialized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint32[]",name:"secondsAgos",type:"uint32[]"}],name:"observe",outputs:[{internalType:"int56[]",name:"tickCumulatives",type:"int56[]"},{internalType:"uint160[]",name:"secondsPerLiquidityCumulativeX128s",type:"uint160[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"",type:"bytes32"}],name:"positions",outputs:[{internalType:"uint128",name:"liquidity",type:"uint128"},{internalType:"uint256",name:"feeGrowthInside0LastX128",type:"uint256"},{internalType:"uint256",name:"feeGrowthInside1LastX128",type:"uint256"},{internalType:"uint128",name:"tokensOwed0",type:"uint128"},{internalType:"uint128",name:"tokensOwed1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[],name:"protocolFees",outputs:[{internalType:"uint128",name:"token0",type:"uint128"},{internalType:"uint128",name:"token1",type:"uint128"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint8",name:"feeProtocol0",type:"uint8"},{internalType:"uint8",name:"feeProtocol1",type:"uint8"}],name:"setFeeProtocol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"slot0",outputs:[{internalType:"uint160",name:"sqrtPriceX96",type:"uint160"},{internalType:"int24",name:"tick",type:"int24"},{internalType:"uint16",name:"observationIndex",type:"uint16"},{internalType:"uint16",name:"observationCardinality",type:"uint16"},{internalType:"uint16",name:"observationCardinalityNext",type:"uint16"},{internalType:"uint8",name:"feeProtocol",type:"uint8"},{internalType:"bool",name:"unlocked",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int24",name:"tickLower",type:"int24"},{internalType:"int24",name:"tickUpper",type:"int24"}],name:"snapshotCumulativesInside",outputs:[{internalType:"int56",name:"tickCumulativeInside",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityInsideX128",type:"uint160"},{internalType:"uint32",name:"secondsInside",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bool",name:"zeroForOne",type:"bool"},{internalType:"int256",name:"amountSpecified",type:"int256"},{internalType:"uint160",name:"sqrtPriceLimitX96",type:"uint160"},{internalType:"bytes",name:"data",type:"bytes"}],name:"swap",outputs:[{internalType:"int256",name:"amount0",type:"int256"},{internalType:"int256",name:"amount1",type:"int256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"int16",name:"",type:"int16"}],name:"tickBitmap",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"tickSpacing",outputs:[{internalType:"int24",name:"",type:"int24"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"int24",name:"",type:"int24"}],name:"ticks",outputs:[{internalType:"uint128",name:"liquidityGross",type:"uint128"},{internalType:"int128",name:"liquidityNet",type:"int128"},{internalType:"uint256",name:"feeGrowthOutside0X128",type:"uint256"},{internalType:"uint256",name:"feeGrowthOutside1X128",type:"uint256"},{internalType:"int56",name:"tickCumulativeOutside",type:"int56"},{internalType:"uint160",name:"secondsPerLiquidityOutsideX128",type:"uint160"},{internalType:"uint32",name:"secondsOutside",type:"uint32"},{internalType:"bool",name:"initialized",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"token0",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"token1",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],PX="0x6101606040523480156200001257600080fd5b503060601b60805260408051630890357360e41b81529051600091339163890357309160048082019260a092909190829003018186803b1580156200005657600080fd5b505afa1580156200006b573d6000803e3d6000fd5b505050506040513d60a08110156200008257600080fd5b508051602080830151604084015160608086015160809096015160e896871b6001600160e81b0319166101005291811b6001600160601b031990811660e05292811b831660c0529390931b1660a052600282810b900b90921b610120529150620000f79082906200010f811b62002b8417901c565b60801b6001600160801b03191661014052506200017d565b60008082600281900b620d89e719816200012557fe5b05029050600083600281900b620d89e8816200013d57fe5b0502905060008460020b83830360020b816200015557fe5b0560010190508062ffffff166001600160801b038016816200017357fe5b0495945050505050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160e81c6101405160801c61567e6200024a60003980611fee5280614b5f5280614b96525080610c0052806128fd5280614bca5280614bfc525080610cef52806119cb5280611a0252806129455250806111c75280611a855280611ef4528061244452806129215280613e6b5250806108d252806112f55280611a545280611e8e52806123be5280613d2252508061207b528061227d52806128d9525080612bfb525061567e6000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c806370cf754a116100ee578063c45a015511610097578063ddca3f4311610071578063ddca3f4314610800578063f305839914610820578063f30dba9314610828578063f637731d146108aa576101ae565b8063c45a0155146107d1578063d0c93a7c146107d9578063d21220a7146107f8576101ae565b8063883bdbfd116100c8578063883bdbfd14610633578063a34123a71461073c578063a38807f214610776576101ae565b806370cf754a146105c65780638206a4d1146105ce57806385b66729146105f6576101ae565b80633850c7bd1161015b578063490e6cbc11610135578063490e6cbc146104705780634f1eb3d8146104fc578063514ea4bf1461054d5780635339c296146105a6576101ae565b80633850c7bd1461035b5780633c8a7d8d146103b45780634614131914610456576101ae565b80631ad8b03b1161018c5780631ad8b03b146102aa578063252c09d7146102e157806332148f6714610338576101ae565b80630dfe1681146101b3578063128acb08146101d75780631a68650214610286575b600080fd5b6101bb6108d0565b604080516001600160a01b039092168252519081900360200190f35b61026d600480360360a08110156101ed57600080fd5b6001600160a01b0382358116926020810135151592604082013592606083013516919081019060a08101608082013564010000000081111561022e57600080fd5b82018360208201111561024057600080fd5b8035906020019184600183028401116401000000008311171561026257600080fd5b5090925090506108f4565b6040805192835260208301919091528051918290030190f35b61028e6114ad565b604080516001600160801b039092168252519081900360200190f35b6102b26114bc565b60405180836001600160801b03168152602001826001600160801b031681526020019250505060405180910390f35b6102fe600480360360208110156102f757600080fd5b50356114d6565b6040805163ffffffff909516855260069390930b60208501526001600160a01b039091168383015215156060830152519081900360800190f35b6103596004803603602081101561034e57600080fd5b503561ffff1661151c565b005b610363611616565b604080516001600160a01b03909816885260029690960b602088015261ffff9485168787015292841660608701529216608085015260ff90911660a0840152151560c0830152519081900360e00190f35b61026d600480360360a08110156103ca57600080fd5b6001600160a01b03823516916020810135600290810b92604083013590910b916001600160801b036060820135169181019060a08101608082013564010000000081111561041757600080fd5b82018360208201111561042957600080fd5b8035906020019184600183028401116401000000008311171561044b57600080fd5b509092509050611666565b61045e611922565b60408051918252519081900360200190f35b6103596004803603608081101561048657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156104bd57600080fd5b8201836020820111156104cf57600080fd5b803590602001918460018302840111640100000000831117156104f157600080fd5b509092509050611928565b6102b2600480360360a081101561051257600080fd5b506001600160a01b03813516906020810135600290810b91604081013590910b906001600160801b0360608201358116916080013516611d83565b61056a6004803603602081101561056357600080fd5b5035611f9d565b604080516001600160801b0396871681526020810195909552848101939093529084166060840152909216608082015290519081900360a00190f35b61045e600480360360208110156105bc57600080fd5b503560010b611fda565b61028e611fec565b610359600480360360408110156105e457600080fd5b5060ff81358116916020013516612010565b6102b26004803603606081101561060c57600080fd5b506001600160a01b03813516906001600160801b036020820135811691604001351661220f565b6106a36004803603602081101561064957600080fd5b81019060208101813564010000000081111561066457600080fd5b82018360208201111561067657600080fd5b8035906020019184602083028401116401000000008311171561069857600080fd5b5090925090506124dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b838110156106e75781810151838201526020016106cf565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561072657818101518382015260200161070e565b5050505090500194505050505060405180910390f35b61026d6004803603606081101561075257600080fd5b508035600290810b91602081013590910b90604001356001600160801b0316612569565b6107a06004803603604081101561078c57600080fd5b508035600290810b9160200135900b6126e0565b6040805160069490940b84526001600160a01b03909216602084015263ffffffff1682820152519081900360600190f35b6101bb6128d7565b6107e16128fb565b6040805160029290920b8252519081900360200190f35b6101bb61291f565b610808612943565b6040805162ffffff9092168252519081900360200190f35b61045e612967565b6108486004803603602081101561083e57600080fd5b503560020b61296d565b604080516001600160801b039099168952600f9790970b602089015287870195909552606087019390935260069190910b60808601526001600160a01b031660a085015263ffffffff1660c0840152151560e083015251908190036101000190f35b610359600480360360208110156108c057600080fd5b50356001600160a01b03166129db565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806108ff612bf0565b85610936576040805162461bcd60e51b8152602060048201526002602482015261415360f01b604482015290519081900360640190fd5b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c082018190526109ef576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b87610a3a5780600001516001600160a01b0316866001600160a01b0316118015610a35575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038716105b610a6c565b80600001516001600160a01b0316866001600160a01b0316108015610a6c57506401000276a36001600160a01b038716115b610aa3576040805162461bcd60e51b815260206004820152600360248201526214d41360ea1b604482015290519081900360640190fd5b6000805460ff60f01b191681556040805160c08101909152808a610ad25760048460a0015160ff16901c610ae5565b60108460a0015160ff1681610ae357fe5b065b60ff1681526004546001600160801b03166020820152604001610b06612c27565b63ffffffff168152602001600060060b815260200160006001600160a01b031681526020016000151581525090506000808913905060006040518060e001604052808b81526020016000815260200185600001516001600160a01b03168152602001856020015160020b81526020018c610b8257600254610b86565b6001545b815260200160006001600160801b0316815260200184602001516001600160801b031681525090505b805115801590610bd55750886001600160a01b031681604001516001600160a01b031614155b15610f9f57610be261560e565b60408201516001600160a01b031681526060820151610c25906006907f00000000000000000000000000000000000000000000000000000000000000008f612c2b565b15156040830152600290810b810b60208301819052620d89e719910b1215610c5657620d89e7196020820152610c75565b6020810151620d89e860029190910b1315610c7557620d89e860208201525b610c828160200151612d6d565b6001600160a01b031660608201526040820151610d13908d610cbc578b6001600160a01b031683606001516001600160a01b031611610cd6565b8b6001600160a01b031683606001516001600160a01b0316105b610ce4578260600151610ce6565b8b5b60c085015185517f000000000000000000000000000000000000000000000000000000000000000061309f565b60c085015260a084015260808301526001600160a01b031660408301528215610d7557610d498160c00151826080015101613291565b825103825260a0810151610d6b90610d6090613291565b6020840151906132a7565b6020830152610db0565b610d828160a00151613291565b825101825260c08101516080820151610daa91610d9f9101613291565b6020840151906132c3565b60208301525b835160ff1615610df6576000846000015160ff168260c0015181610dd057fe5b60c0840180519290910491829003905260a0840180519091016001600160801b03169052505b60c08201516001600160801b031615610e3557610e298160c00151600160801b8460c001516001600160801b03166132d9565b60808301805190910190525b80606001516001600160a01b031682604001516001600160a01b03161415610f5e57806040015115610f35578360a00151610ebf57610e9d846040015160008760200151886040015188602001518a606001516008613389909695949392919063ffffffff16565b6001600160a01b03166080860152600690810b900b6060850152600160a08501525b6000610f0b82602001518e610ed657600154610edc565b84608001515b8f610eeb578560800151610eef565b6002545b608089015160608a015160408b0151600595949392919061351c565b90508c15610f17576000035b610f258360c00151826135ef565b6001600160801b031660c0840152505b8b610f44578060200151610f4d565b60018160200151035b600290810b900b6060830152610f99565b80600001516001600160a01b031682604001516001600160a01b031614610f9957610f8c82604001516136a5565b600290810b900b60608301525b50610baf565b836020015160020b816060015160020b1461107a57600080610fed86604001518660400151886020015188602001518a606001518b6080015160086139d1909695949392919063ffffffff16565b604085015160608601516000805461ffff60c81b1916600160c81b61ffff958616021761ffff60b81b1916600160b81b95909416949094029290921762ffffff60a01b1916600160a01b62ffffff60029490940b93909316929092029190911773ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03909116179055506110ac9050565b60408101516000805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039092169190911790555b8060c001516001600160801b031683602001516001600160801b0316146110f25760c0810151600480546001600160801b0319166001600160801b039092169190911790555b8a1561114257608081015160015560a08101516001600160801b03161561113d5760a0810151600380546001600160801b031981166001600160801b03918216909301169190911790555b611188565b608081015160025560a08101516001600160801b0316156111885760a0810151600380546001600160801b03808216600160801b92839004821690940116029190911790555b8115158b1515146111a157602081015181518b036111ae565b80600001518a0381602001515b90965094508a156112e75760008512156111f0576111f07f00000000000000000000000000000000000000000000000000000000000000008d87600003613b86565b60006111fa613cd4565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b15801561127e57600080fd5b505af1158015611292573d6000803e3d6000fd5b5050505061129e613cd4565b6112a88289613e0d565b11156112e1576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b50611411565b600086121561131e5761131e7f00000000000000000000000000000000000000000000000000000000000000008d88600003613b86565b6000611328613e1d565b9050336001600160a01b031663fa461e3388888c8c6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156113ac57600080fd5b505af11580156113c0573d6000803e3d6000fd5b505050506113cc613e1d565b6113d68288613e0d565b111561140f576040805162461bcd60e51b815260206004820152600360248201526249494160e81b604482015290519081900360640190fd5b505b60408082015160c083015160608085015184518b8152602081018b90526001600160a01b03948516818701526001600160801b039093169183019190915260020b60808201529151908e169133917fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca679181900360a00190a350506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b6004546001600160801b031681565b6003546001600160801b0380821691600160801b90041682565b60088161ffff81106114e757600080fd5b015463ffffffff81169150640100000000810460060b90600160581b81046001600160a01b031690600160f81b900460ff1684565b600054600160f01b900460ff16611560576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611575612bf0565b60008054600160d81b900461ffff169061159160088385613eb5565b6000805461ffff808416600160d81b810261ffff60d81b19909316929092179092559192508316146115fe576040805161ffff80851682528316602082015281517fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a929181900390910190a15b50506000805460ff60f01b1916600160f01b17905550565b6000546001600160a01b03811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b600080548190600160f01b900460ff166116ad576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b191690556001600160801b0385166116cd57600080fd5b60008061171b60405180608001604052808c6001600160a01b031681526020018b60020b81526020018a60020b81526020016117118a6001600160801b0316613f58565b600f0b9052613f69565b9250925050819350809250600080600086111561173d5761173a613cd4565b91505b841561174e5761174b613e1d565b90505b336001600160a01b031663d348799787878b8b6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b1580156117d057600080fd5b505af11580156117e4573d6000803e3d6000fd5b50505050600086111561183b576117f9613cd4565b6118038388613e0d565b111561183b576040805162461bcd60e51b815260206004820152600260248201526104d360f41b604482015290519081900360640190fd5b841561188b57611849613e1d565b6118538287613e0d565b111561188b576040805162461bcd60e51b81526020600482015260026024820152614d3160f01b604482015290519081900360640190fd5b8960020b8b60020b8d6001600160a01b03167f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde338d8b8b60405180856001600160a01b03168152602001846001600160801b0316815260200183815260200182815260200194505050505060405180910390a450506000805460ff60f01b1916600160f01b17905550919890975095505050505050565b60025481565b600054600160f01b900460ff1661196c576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19169055611981612bf0565b6004546001600160801b0316806119c3576040805162461bcd60e51b81526020600482015260016024820152601360fa1b604482015290519081900360640190fd5b60006119f8867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a2f867f000000000000000000000000000000000000000000000000000000000000000062ffffff16620f42406141a9565b90506000611a3b613cd4565b90506000611a47613e1d565b90508815611a7a57611a7a7f00000000000000000000000000000000000000000000000000000000000000008b8b613b86565b8715611aab57611aab7f00000000000000000000000000000000000000000000000000000000000000008b8a613b86565b336001600160a01b031663e9cbafb085858a8a6040518563ffffffff1660e01b815260040180858152602001848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505095505050505050600060405180830381600087803b158015611b2d57600080fd5b505af1158015611b41573d6000803e3d6000fd5b505050506000611b4f613cd4565b90506000611b5b613e1d565b905081611b688588613e0d565b1115611ba0576040805162461bcd60e51b8152602060048201526002602482015261046360f41b604482015290519081900360640190fd5b80611bab8487613e0d565b1115611be3576040805162461bcd60e51b8152602060048201526002602482015261463160f01b604482015290519081900360640190fd5b8382038382038115611c725760008054600160e81b9004600f16908115611c16578160ff168481611c1057fe5b04611c19565b60005b90506001600160801b03811615611c4c57600380546001600160801b038082168401166001600160801b03199091161790555b611c66818503600160801b8d6001600160801b03166132d9565b60018054909101905550505b8015611cfd5760008054600160e81b900460041c600f16908115611ca2578160ff168381611c9c57fe5b04611ca5565b60005b90506001600160801b03811615611cd757600380546001600160801b03600160801b8083048216850182160291161790555b611cf1818403600160801b8d6001600160801b03166132d9565b60028054909101905550505b8d6001600160a01b0316336001600160a01b03167fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6338f8f86866040518085815260200184815260200183815260200182815260200194505050505060405180910390a350506000805460ff60f01b1916600160f01b179055505050505050505050505050565b600080548190600160f01b900460ff16611dca576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b19168155611de460073389896141e3565b60038101549091506001600160801b0390811690861611611e055784611e14565b60038101546001600160801b03165b60038201549093506001600160801b03600160801b909104811690851611611e3c5783611e52565b6003810154600160801b90046001600160801b03165b91506001600160801b03831615611eb7576003810180546001600160801b031981166001600160801b03918216869003821617909155611eb7907f0000000000000000000000000000000000000000000000000000000000000000908a908616613b86565b6001600160801b03821615611f1d576003810180546001600160801b03600160801b808304821686900382160291811691909117909155611f1d907f0000000000000000000000000000000000000000000000000000000000000000908a908516613b86565b604080516001600160a01b038a1681526001600160801b0380861660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4506000805460ff60f01b1916600160f01b17905590969095509350505050565b60076020526000908152604090208054600182015460028301546003909301546001600160801b0392831693919281811691600160801b90041685565b60066020526000908152604090205481565b7f000000000000000000000000000000000000000000000000000000000000000081565b600054600160f01b900460ff16612054576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156120c157600080fd5b505afa1580156120d5573d6000803e3d6000fd5b505050506040513d60208110156120eb57600080fd5b50516001600160a01b0316331461210157600080fd5b60ff82161580612124575060048260ff16101580156121245750600a8260ff1611155b801561214e575060ff8116158061214e575060048160ff161015801561214e5750600a8160ff1611155b61215757600080fd5b60008054610ff0600484901b16840160ff908116600160e81b9081027fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841617909355919004167f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b1336010826040805160ff9390920683168252600f600486901c16602083015286831682820152918516606082015290519081900360800190a150506000805460ff60f01b1916600160f01b17905550565b600080548190600160f01b900460ff16612256576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916905560408051638da5cb5b60e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691638da5cb5b916004808301926020929190829003018186803b1580156122c357600080fd5b505afa1580156122d7573d6000803e3d6000fd5b505050506040513d60208110156122ed57600080fd5b50516001600160a01b0316331461230357600080fd5b6003546001600160801b039081169085161161231f578361232c565b6003546001600160801b03165b6003549092506001600160801b03600160801b9091048116908416116123525782612366565b600354600160801b90046001600160801b03165b90506001600160801b038216156123e7576003546001600160801b038381169116141561239557600019909101905b600380546001600160801b031981166001600160801b039182168590038216179091556123e7907f00000000000000000000000000000000000000000000000000000000000000009087908516613b86565b6001600160801b0381161561246d576003546001600160801b03828116600160801b90920416141561241857600019015b600380546001600160801b03600160801b80830482168590038216029181169190911790915561246d907f00000000000000000000000000000000000000000000000000000000000000009087908416613b86565b604080516001600160801b0380851682528316602082015281516001600160a01b0388169233927f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151929081900390910190a36000805460ff60f01b1916600160f01b1790559094909350915050565b6060806124e7612bf0565b61255e6124f2612c27565b858580806020026020016040519081016040528093929190818152602001838360200280828437600092018290525054600454600896959450600160a01b820460020b935061ffff600160b81b8304811693506001600160801b0390911691600160c81b900416614247565b915091509250929050565b600080548190600160f01b900460ff166125b0576040805162461bcd60e51b81526020600482015260036024820152624c4f4b60e81b604482015290519081900360640190fd5b6000805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b918101919091528190819061260990606081016125fc6001600160801b038a16613f58565b600003600f0b9052613f69565b925092509250816000039450806000039350600085118061262a5750600084115b15612669576003830180546001600160801b038082168089018216600160801b93849004831689019092169092029091176001600160801b0319161790555b604080516001600160801b0388168152602081018790528082018690529051600289810b92908b900b9133917f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c919081900360600190a450506000805460ff60f01b1916600160f01b179055509094909350915050565b60008060006126ed612bf0565b6126f785856143a1565b600285810b810b60009081526005602052604080822087840b90930b825281206003830154600681900b9367010000000000000082046001600160a01b0316928492600160d81b810463ffffffff169284929091600160f81b900460ff168061275f57600080fd5b6003820154600681900b985067010000000000000081046001600160a01b03169650600160d81b810463ffffffff169450600160f81b900460ff16806127a457600080fd5b50506040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e810b91900b1215905061284d575093909403965090039350900390506128d0565b8a60020b816020015160020b12156128c1576000612869612c27565b602083015160408401516004546060860151939450600093849361289f936008938893879392916001600160801b031690613389565b9a9003989098039b5050949096039290920396509091030392506128d0915050565b50949093039650039350900390505b9250925092565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60015481565b60056020526000908152604090208054600182015460028301546003909301546001600160801b03831693600160801b909304600f0b9290600681900b9067010000000000000081046001600160a01b031690600160d81b810463ffffffff1690600160f81b900460ff1688565b6000546001600160a01b031615612a1e576040805162461bcd60e51b8152602060048201526002602482015261414960f01b604482015290519081900360640190fd5b6000612a29826136a5565b9050600080612a41612a39612c27565b60089061446a565b6040805160e0810182526001600160a01b038816808252600288810b6020808501829052600085870181905261ffff898116606088018190529089166080880181905260a08801839052600160c0909801979097528154600160f01b73ffffffffffffffffffffffffffffffffffffffff19909116871762ffffff60a01b1916600160a01b62ffffff9787900b9790971696909602959095177fffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffff16600160c81b9091021761ffff60d81b1916600160d81b909602959095177fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692909217909355835191825281019190915281519395509193507f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c9592918290030190a150505050565b60008082600281900b620d89e71981612b9957fe5b05029050600083600281900b620d89e881612bb057fe5b0502905060008460020b83830360020b81612bc757fe5b0560010190508062ffffff166001600160801b03801681612be457fe5b0493505050505b919050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614612c2557600080fd5b565b4290565b60008060008460020b8660020b81612c3f57fe5b05905060008660020b128015612c6657508460020b8660020b81612c5f57fe5b0760020b15155b15612c7057600019015b8315612ce557600080612c82836144b6565b600182810b810b600090815260208d9052604090205460ff83169190911b80016000190190811680151597509294509092509085612cc757888360ff16860302612cda565b88612cd1826144c8565b840360ff168603025b965050505050612d63565b600080612cf4836001016144b6565b91509150600060018260ff166001901b031990506000818b60008660010b60010b8152602001908152602001600020541690508060001415955085612d4657888360ff0360ff16866001010102612d5c565b8883612d5183614568565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b12612d84578260020b612d8c565b8260020b6000035b9050620d89e8811115612dca576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b600060018216612dde57600160801b612df0565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615612e24576ffff97272373d413259a46990580e213a0260801c5b6004821615612e43576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612e62576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612e81576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612ea0576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612ebf576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612ede576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612efe576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612f1e576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612f3e576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612f5e576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612f7e576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612f9e576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612fbe576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612fde576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612fff576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561301f576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561303e576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561305b576b048a170391f7dc42444e8fa20260801c5b60008460020b131561307657806000198161307257fe5b0490505b64010000000081061561308a57600161308d565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906131245760006130d88989620f42400362ffffff16620f42406132d9565b9050826130f1576130ec8c8c8c6001614652565b6130fe565b6130fe8b8d8c60016146cd565b955085811061310f578a965061311e565b61311b8c8b838661478a565b96505b5061316e565b8161313b576131368b8b8b60006146cd565b613148565b6131488a8c8b6000614652565b935083886000031061315c5789955061316e565b61316b8b8a8a600003856147d6565b95505b6001600160a01b038a81169087161482156131d15780801561318d5750815b6131a35761319e878d8c60016146cd565b6131a5565b855b95508080156131b2575081155b6131c8576131c3878d8c6000614652565b6131ca565b845b945061321b565b8080156131db5750815b6131f1576131ec8c888c6001614652565b6131f3565b855b9550808015613200575081155b613216576132118c888c60006146cd565b613218565b845b94505b8115801561322b57508860000385115b15613237578860000394505b81801561325657508a6001600160a01b0316876001600160a01b031614155b15613265578589039350613282565b61327f868962ffffff168a620f42400362ffffff166141a9565b93505b50505095509550955095915050565b6000600160ff1b82106132a357600080fd5b5090565b808203828113156000831215146132bd57600080fd5b92915050565b818101828112156000831215146132bd57600080fd5b600080806000198587098686029250828110908390030390508061330f576000841161330457600080fd5b508290049050613382565b80841161331b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b60008063ffffffff8716613430576000898661ffff1661ffff81106133aa57fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff16151560608301529092508a161461341c57613419818a8988614822565b90505b806020015181604001519250925050613510565b8688036000806134458c8c858c8c8c8c6148d2565b91509150816000015163ffffffff168363ffffffff161415613477578160200151826040015194509450505050613510565b805163ffffffff8481169116141561349f578060200151816040015194509450505050613510565b8151815160208085015190840151918390039286039163ffffffff80841692908516910360060b816134cd57fe5b05028460200151018263ffffffff168263ffffffff1686604001518660400151036001600160a01b031602816134ff57fe5b048560400151019650965050505050505b97509795505050505050565b600295860b860b60009081526020979097526040909620600181018054909503909455938301805490920390915560038201805463ffffffff600160d81b6001600160a01b036701000000000000008085048216909603169094027fffffffffff0000000000000000000000000000000000000000ffffffffffffff90921691909117600681810b90960390950b66ffffffffffffff1666ffffffffffffff199095169490941782810485169095039093160263ffffffff60d81b1990931692909217905554600160801b9004600f0b90565b60008082600f0b121561365457826001600160801b03168260000384039150816001600160801b03161061364f576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b6132bd565b826001600160801b03168284019150816001600160801b031610156132bd576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b038316108015906136e1575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b613716576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106137b757607f810383901c91506137c1565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b146139c257886001600160a01b03166139a682612d6d565b6001600160a01b031611156139bb57816139bd565b805b6139c4565b815b9998505050505050505050565b6000806000898961ffff1661ffff81106139e757fe5b60408051608081018252919092015463ffffffff8082168084526401000000008304600690810b810b900b6020850152600160581b83046001600160a01b031694840194909452600160f81b90910460ff161515606083015290925089161415613a575788859250925050613510565b8461ffff168461ffff16118015613a7857506001850361ffff168961ffff16145b15613a8557839150613a89565b8491505b8161ffff168960010161ffff1681613a9d57fe5b069250613aac81898989614822565b8a8461ffff1661ffff8110613abd57fe5b825191018054602084015160408501516060909501511515600160f81b027effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160a01b03909616600160581b027fff0000000000000000000000000000000000000000ffffffffffffffffffffff60069390930b66ffffffffffffff16640100000000026affffffffffffff000000001963ffffffff90971663ffffffff199095169490941795909516929092171692909217929092161790555097509795505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1781529251825160009485949389169392918291908083835b60208310613c025780518252601f199092019160209182019101613be3565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613c64576040519150601f19603f3d011682016040523d82523d6000602084013e613c69565b606091505b5091509150818015613c97575080511580613c975750808060200190516020811015613c9457600080fd5b50515b613ccd576040805162461bcd60e51b81526020600482015260026024820152612a2360f11b604482015290519081900360640190fd5b5050505050565b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001693919290918291908083835b60208310613d6d5780518252601f199092019160209182019101613d4e565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613dcd576040519150601f19603f3d011682016040523d82523d6000602084013e613dd2565b606091505b5091509150818015613de657506020815110155b613def57600080fd5b808060200190516020811015613e0457600080fd5b50519250505090565b808201828110156132bd57600080fd5b604080513060248083019190915282518083039091018152604490910182526020810180516001600160e01b03166370a0823160e01b17815291518151600093849384936001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016939192909182919080838360208310613d6d5780518252601f199092019160209182019101613d4e565b6000808361ffff1611613ef3576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b8261ffff168261ffff1611613f09575081613382565b825b8261ffff168161ffff161015613f4f576001858261ffff1661ffff8110613f2e57fe5b01805463ffffffff191663ffffffff92909216919091179055600101613f0b565b50909392505050565b80600f81900b8114612beb57600080fd5b6000806000613f76612bf0565b613f88846020015185604001516143a1565b6040805160e0810182526000546001600160a01b0381168252600160a01b8104600290810b810b900b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461402c9491939092909190614acf565b93508460600151600f0b6000146141a157846020015160020b816020015160020b12156140815761407a6140638660200151612d6d565b6140708760400151612d6d565b8760600151614c84565b92506141a1565b846040015160020b816020015160020b12156141775760045460408201516001600160801b03909116906140d3906140b7612c27565b60208501516060860151608087015160089493929187916139d1565b6000805461ffff60c81b1916600160c81b61ffff938416021761ffff60b81b1916600160b81b939092169290920217905581516040870151614123919061411990612d6d565b8860600151614c84565b93506141416141358760200151612d6d565b83516060890151614cc8565b92506141518187606001516135ef565b600480546001600160801b0319166001600160801b0392909216919091179055506141a1565b61419e6141878660200151612d6d565b6141948760400151612d6d565b8760600151614cc8565b91505b509193909250565b60006141b68484846132d9565b9050600082806141c257fe5b84860911156133825760001981106141d957600080fd5b6001019392505050565b6040805160609490941b6bffffffffffffffffffffffff1916602080860191909152600293840b60e890811b60348701529290930b90911b60378401528051808403601a018152603a90930181528251928201929092206000908152929052902090565b60608060008361ffff1611614287576040805162461bcd60e51b81526020600482015260016024820152604960f81b604482015290519081900360640190fd5b865167ffffffffffffffff8111801561429f57600080fd5b506040519080825280602002602001820160405280156142c9578160200160208202803683370190505b509150865167ffffffffffffffff811180156142e457600080fd5b5060405190808252806020026020018201604052801561430e578160200160208202803683370190505b50905060005b87518110156143945761433f8a8a8a848151811061432e57fe5b60200260200101518a8a8a8a613389565b84838151811061434b57fe5b6020026020010184848151811061435e57fe5b60200260200101826001600160a01b03166001600160a01b03168152508260060b60060b81525050508080600101915050614314565b5097509795505050505050565b8060020b8260020b126143e1576040805162461bcd60e51b8152602060048201526003602482015262544c5560e81b604482015290519081900360640190fd5b620d89e719600283900b1215614424576040805162461bcd60e51b8152602060048201526003602482015262544c4d60e81b604482015290519081900360640190fd5b620d89e8600282900b1315614466576040805162461bcd60e51b815260206004820152600360248201526254554d60e81b604482015290519081900360640190fd5b5050565b6040805160808101825263ffffffff9283168082526000602083018190529282019290925260016060909101819052835463ffffffff1916909117909116600160f81b17909155908190565b60020b600881901d9161010090910790565b60008082116144d657600080fd5b600160801b82106144e957608091821c91015b68010000000000000000821061450157604091821c91015b640100000000821061451557602091821c91015b62010000821061452757601091821c91015b610100821061453857600891821c91015b6010821061454857600491821c91015b6004821061455857600291821c91015b60028210612beb57600101919050565b600080821161457657600080fd5b5060ff6001600160801b0382161561459157607f1901614599565b608082901c91505b67ffffffffffffffff8216156145b257603f19016145ba565b604082901c91505b63ffffffff8216156145cf57601f19016145d7565b602082901c91505b61ffff8216156145ea57600f19016145f2565b601082901c91505b60ff821615614604576007190161460c565b600882901c91505b600f82161561461e5760031901614626565b600482901c91505b60038216156146385760011901614640565b600282901c91505b6001821615612beb5760001901919050565b6000836001600160a01b0316856001600160a01b03161115614672579293925b8161469f5761469a836001600160801b03168686036001600160a01b0316600160601b6132d9565b6146c2565b6146c2836001600160801b03168686036001600160a01b0316600160601b6141a9565b90505b949350505050565b6000836001600160a01b0316856001600160a01b031611156146ed579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b03868603811690871661472957600080fd5b8361475957866001600160a01b031661474c8383896001600160a01b03166132d9565b8161475357fe5b0461477f565b61477f6147708383896001600160a01b03166141a9565b886001600160a01b0316614cf7565b979650505050505050565b600080856001600160a01b0316116147a157600080fd5b6000846001600160801b0316116147b757600080fd5b816147c95761469a8585856001614d02565b6146c28585856001614de3565b600080856001600160a01b0316116147ed57600080fd5b6000846001600160801b03161161480357600080fd5b816148155761469a8585856000614de3565b6146c28585856000614d02565b61482a61564a565b600085600001518503905060405180608001604052808663ffffffff1681526020018263ffffffff168660020b0288602001510160060b81526020016000856001600160801b03161161487e576001614880565b845b6001600160801b031673ffffffff00000000000000000000000000000000608085901b16816148ab57fe5b048860400151016001600160a01b0316815260200160011515815250915050949350505050565b6148da61564a565b6148e261564a565b888561ffff1661ffff81106148f357fe5b60408051608081018252919092015463ffffffff81168083526401000000008204600690810b810b900b6020840152600160581b82046001600160a01b031693830193909352600160f81b900460ff1615156060820152925061495890899089614ed8565b15614990578663ffffffff16826000015163ffffffff16141561497a57613510565b8161498783898988614822565b91509150613510565b888361ffff168660010161ffff16816149a557fe5b0661ffff1661ffff81106149b557fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b90910416151560608201819052909250614a6c57604080516080810182528a5463ffffffff811682526401000000008104600690810b810b900b6020830152600160581b81046001600160a01b031692820192909252600160f81b90910460ff161515606082015291505b614a7b88836000015189614ed8565b614ab2576040805162461bcd60e51b815260206004820152600360248201526213d31160ea1b604482015290519081900360640190fd5b614abf8989898887614f9b565b9150915097509795505050505050565b6000614ade60078787876141e3565b60015460025491925090600080600f87900b15614c24576000614aff612c27565b6000805460045492935090918291614b499160089186918591600160a01b810460020b9161ffff600160b81b83048116926001600160801b0390921691600160c81b900416613389565b9092509050614b8360058d8b8d8b8b87898b60007f000000000000000000000000000000000000000000000000000000000000000061513b565b9450614bba60058c8b8d8b8b87898b60017f000000000000000000000000000000000000000000000000000000000000000061513b565b93508415614bee57614bee60068d7f0000000000000000000000000000000000000000000000000000000000000000615325565b8315614c2057614c2060068c7f0000000000000000000000000000000000000000000000000000000000000000615325565b5050505b600080614c3660058c8c8b8a8a61538b565b9092509050614c47878a8484615437565b600089600f0b1215614c75578315614c6457614c6460058c6155cc565b8215614c7557614c7560058b6155cc565b50505050505095945050505050565b60008082600f0b12614caa57614ca5614ca085858560016146cd565b613291565b6146c5565b614cbd614ca085858560000360006146cd565b600003949350505050565b60008082600f0b12614ce457614ca5614ca08585856001614652565b614cbd614ca08585856000036000614652565b808204910615150190565b60008115614d755760006001600160a01b03841115614d3857614d3384600160601b876001600160801b03166132d9565b614d50565b6001600160801b038516606085901b81614d4e57fe5b045b9050614d6d614d686001600160a01b03881683613e0d565b6155f8565b9150506146c5565b60006001600160a01b03841115614da357614d9e84600160601b876001600160801b03166141a9565b614dba565b614dba606085901b6001600160801b038716614cf7565b905080866001600160a01b031611614dd157600080fd5b6001600160a01b0386160390506146c5565b600082614df15750836146c5565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215614e91576001600160a01b03861684810290858281614e3157fe5b041415614e6257818101828110614e6057614e5683896001600160a01b0316836141a9565b93505050506146c5565b505b614e8882614e83878a6001600160a01b03168681614e7c57fe5b0490613e0d565b614cf7565b925050506146c5565b6001600160a01b03861684810290858281614ea857fe5b04148015614eb557508082115b614ebe57600080fd5b808203614e56614d68846001600160a01b038b16846141a9565b60008363ffffffff168363ffffffff1611158015614f0257508363ffffffff168263ffffffff1611155b15614f1e578163ffffffff168363ffffffff1611159050613382565b60008463ffffffff168463ffffffff1611614f46578363ffffffff1664010000000001614f4e565b8363ffffffff165b64ffffffffff16905060008563ffffffff168463ffffffff1611614f7f578363ffffffff1664010000000001614f87565b8363ffffffff165b64ffffffffff169091111595945050505050565b614fa361564a565b614fab61564a565b60008361ffff168560010161ffff1681614fc157fe5b0661ffff169050600060018561ffff16830103905060005b506002818301048961ffff87168281614fee57fe5b0661ffff8110614ffa57fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b9091041615156060820181905290955061506557806001019250614fd9565b898661ffff16826001018161507657fe5b0661ffff811061508257fe5b60408051608081018252929091015463ffffffff811683526401000000008104600690810b810b900b60208401526001600160a01b03600160581b8204169183019190915260ff600160f81b909104161515606082015285519094506000906150ed908b908b614ed8565b905080801561510657506151068a8a8760000151614ed8565b15615111575061512e565b8061512157600182039250615128565b8160010193505b50614fd9565b5050509550959350505050565b60028a810b900b600090815260208c90526040812080546001600160801b031682615166828d6135ef565b9050846001600160801b0316816001600160801b031611156151b4576040805162461bcd60e51b81526020600482015260026024820152614c4f60f01b604482015290519081900360640190fd5b6001600160801b03828116159082161581141594501561528a578c60020b8e60020b1361525a57600183018b9055600283018a90556003830180547fffffffffff0000000000000000000000000000000000000000ffffffffffffff166701000000000000006001600160a01b038c16021766ffffffffffffff191666ffffffffffffff60068b900b161763ffffffff60d81b1916600160d81b63ffffffff8a16021790555b6003830180547effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160f81b1790555b82546001600160801b0319166001600160801b038216178355856152d35782546152ce906152c990600160801b9004600f90810b810b908f900b6132c3565b613f58565b6152f4565b82546152f4906152c990600160801b9004600f90810b810b908f900b6132a7565b8354600f9190910b6001600160801b03908116600160801b0291161790925550909c9b505050505050505050505050565b8060020b8260020b8161533457fe5b0760020b1561534257600080fd5b60008061535d8360020b8560020b8161535757fe5b056144b6565b600191820b820b60009081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b80820b60009081526020899052604080822088850b850b83529082209193849391929184918291908a900b126153d1575050600182015460028301546153e4565b8360010154880391508360020154870390505b6000808b60020b8b60020b121561540657505060018301546002840154615419565b84600101548a0391508460020154890390505b92909803979097039b96909503949094039850939650505050505050565b6040805160a08101825285546001600160801b0390811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201526000600f85900b6154d65781516001600160801b03166154ce576040805162461bcd60e51b815260206004820152600260248201526104e560f41b604482015290519081900360640190fd5b5080516154e5565b81516154e290866135ef565b90505b60006155098360200151860384600001516001600160801b0316600160801b6132d9565b9050600061552f8460400151860385600001516001600160801b0316600160801b6132d9565b905086600f0b6000146155565787546001600160801b0319166001600160801b0384161788555b60018801869055600288018590556001600160801b03821615158061558457506000816001600160801b0316115b156155c2576003880180546001600160801b031981166001600160801b039182168501821617808216600160801b9182900483168501909216021790555b5050505050505050565b600290810b810b6000908152602092909252604082208281556001810183905590810182905560030155565b806001600160a01b0381168114612beb57600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b6040805160808101825260008082526020820181905291810182905260608101919091529056fea164736f6c6343000706000a";class UniswapV3Pool__factory extends ContractFactory{constructor(...D){D.length>1?super(...D):super(EX,PX,D[0])}deploy(D){return super.deploy(D||{})}getDeployTransaction(D){return super.getDeployTransaction(D||{})}attach(D){return super.attach(D)}connect(D){return super.connect(D)}static bytecode=PX;static abi=EX;static createInterface(){return new Xo(EX)}static connect(D,te){return new fu(D,EX,te)}}const SX=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"guy",type:"address"},{name:"wad",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"src",type:"address"},{name:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[{name:"wad",type:"uint256"}],name:"withdraw",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"dst",type:"address"},{name:"wad",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!1,inputs:[],name:"deposit",outputs:[],payable:!0,stateMutability:"payable",type:"function"},{constant:!0,inputs:[{name:"",type:"address"},{name:"",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!0,name:"guy",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"dst",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"src",type:"address"},{indexed:!1,name:"wad",type:"uint256"}],name:"Withdrawal",type:"event"}];class WIMX__factory{static abi=SX;static createInterface(){return new Xo(SX)}static connect(D,te){return new fu(D,SX,te)}}async function multicallSingleCallDataMultipleContracts(D,te,he){const ye=UniswapV3Pool__factory.createInterface(),be=getCallData(te,ye),ve=[];return be&&he.forEach((D=>{D&&ve.push({target:D,callData:be,gasLimit:Li.from("1000000")})})),D.callStatic.multicall(ve)}const getCallData=(D,te)=>{const he=te?.getFunction(D);return he?te?.encodeFunctionData(he):void 0};function computePoolAddress({factoryAddress:D,erc20Pair:te,fee:he,initCodeHashManualOverride:ye}){return te=ensureCorrectERC20AddressOrder(te),getCreate2Address(D,keccak256$2(["bytes"],[vo.encode(["address","address","uint24"],[te[0].address,te[1].address,he])]),ye??"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54")}const ensureCorrectERC20AddressOrder=D=>{if(D[0].address.toLowerCase()>D[1].address.toLowerCase()){const te=D[0];D[0]=D[1],D[1]=te}return D},CX=[QW.LOWEST,QW.LOW,QW.MEDIUM,QW.HIGH],generatePossiblePoolsFromERC20Pair=(D,te,he)=>{const ye=((D,te)=>{const he=new Map,ye=[];[...D,...te].forEach((D=>{he.set(D.address,D),ye.push(D.address)}));const be=[...new Set([...ye])],ve=[];for(let D=0;D<be.length;D++)for(let te=D+1;te<be.length;te++){const ye=he.get(be[D]),we=he.get(be[te]);ye&&we&&ve.push([ye,we])}return ve})(D,te),be=[];for(let D=0;D<ye.length;D++)for(let te=0;te<CX.length;te++){const ve=computePoolAddress({factoryAddress:he,erc20Pair:ye[D],fee:CX[te]});be.push({erc20Pair:ye[D],fee:CX[te],poolAddress:ve})}return be},IX="liquidity",RX="slot0";class Router{provider;multicallContract;routingTokens;routingContracts;constructor(D,te,he,ye){this.provider=D,this.multicallContract=te,this.routingTokens=he,this.routingContracts=ye,this.provider=D,this.multicallContract=te,this.routingTokens=he,this.routingContracts=ye}async findOptimalRoute(D,te,he,ye=2){const[be,ve]=this.determineERC20InAndERC20Out(he,D,te),we=[be,ve],_e=await(async(D,te,he,ye)=>{const be=generatePossiblePoolsFromERC20Pair(te,he,ye),ve=be.map((D=>D.poolAddress));let we,_e;try{[we,_e]=await Promise.all([multicallSingleCallDataMultipleContracts(D,RX,ve),multicallSingleCallDataMultipleContracts(D,IX,ve)])}catch(D){const te=D instanceof Error?D.message:"Unknown Error";throw new ProviderCallError(`failed multicall: ${te}`)}const Pe=we.returnData,Ie=_e.returnData,Re=UniswapV3Pool__factory.createInterface(),ke=[];return be.forEach(((D,te)=>{const he="0x"===we.returnData[te].returnData,ye="0x"===_e.returnData[te].returnData;if(he||ye)return;const be=Re.decodeFunctionResult(RX,Pe[te].returnData),ve=Re.decodeFunctionResult(IX,Ie[te].returnData),Oe=be.sqrtPriceX96.isZero(),xe=ve[0].isZero();if(Oe||xe)return;const Be=new CV(erc20ToUniswapToken(D.erc20Pair[0]),erc20ToUniswapToken(D.erc20Pair[1]),D.fee,be.sqrtPriceX96.toString(),ve.toString(),be.tick);ke.push(Be)})),ke})(this.multicallContract,we,this.routingTokens,this.routingContracts.coreFactory);if(0===_e.length)throw new NoRoutesAvailableError;const Pe=generateAllAcyclicPaths(be,ve,_e,ye,[],[],be);if(0===Pe.length)throw new NoRoutesAvailableError;return await this.getBestQuoteFromRoutes(Pe,D,he)}async getBestQuoteFromRoutes(D,te,he){const ye=await async function getQuotesForRoutes(D,te,he,ye,be){const ve=he.map((D=>FV.quoteCallParameters(D,toCurrencyAmount(ye),be,{useQuoterV2:!0}).calldata)),we=await Promise.allSettled(ve.map((he=>D.send("eth_call",[{to:te,data:he},"latest"])))),_e=we.reduce(((D,te,we)=>{if("rejected"===te.status)return D;const _e=ve[we].substring(0,10),Pe=dX[_e];if(!Pe)throw new Error("No quoting function signature found");if("0x"===te.value)return D;try{const ve=vo.decode(Pe,te.value);if(ve){const te=ve[0];if(!(te instanceof Li))throw new Error("Expected BigNumber");const _e=uniswapTokenToERC20(he[we].input),Pe=uniswapTokenToERC20(he[we].output);D.push({route:he[we],amountIn:be===Hz.EXACT_INPUT?ye:newAmount(te,_e),amountOut:be===Hz.EXACT_INPUT?newAmount(te,Pe):ye,gasEstimate:Li.from(ve[3]),tradeType:be})}}catch{}return D}),new Array);return _e}(this.provider,this.routingContracts.quoter,D,te,he);if(0===ye.length)throw new NoRoutesAvailableError;if(he===Hz.EXACT_INPUT)return this.bestQuoteForAmountIn(ye);if(he===Hz.EXACT_OUTPUT)return this.bestQuoteForAmountOut(ye);throw new Error("Invalid trade type")}bestQuoteForAmountIn(D){let te=D[0];for(let he=1;he<D.length;he++)D[he].amountOut.value.gt(te.amountOut.value)&&(te=D[he]);return te}bestQuoteForAmountOut(D){let te=D[0];for(let he=1;he<D.length;he++)D[he].amountIn.value.lt(te.amountIn.value)&&(te=D[he]);return te}determineERC20InAndERC20Out(D,te,he){return D===Hz.EXACT_INPUT?[te.token,he]:[he,te.token]}}const generateAllAcyclicPaths=(D,te,he,ye,be=[],ve=[],we=D)=>{const _e=erc20ToUniswapToken(D),Pe=erc20ToUniswapToken(te),Ie=erc20ToUniswapToken(we);for(const D of he){const Re=D.involvesToken(_e),ke=be.find((te=>{return(he=D)===(ye=te)||he.token0.equals(ye.token0)&&he.token1.equals(ye.token1)&&he.fee===ye.fee;var he,ye}));if(!Re||ke)continue;const Oe=D.token0.equals(_e)?D.token1:D.token0;Oe.equals(Pe)?ve.push(new RV([...be,D],Ie,Pe)):ye>1&&generateAllAcyclicPaths(uniswapTokenToERC20(Oe),te,he,ye-1,[...be,D],ve,we)}return ve},kX="multicall(uint256,bytes[])";function buildSwapParameters(D,te,he,ye,be,ve,we,_e,Pe,Ie){const{route:Re}=ye.swaps[0],ke=1===Re.pools.length,Oe=be.length>0;return ke?Oe?function buildSinglePoolSwapWithFees(D,te,he,ye,be,ve,we,_e){const Pe=ve.map((D=>({feeBasisPoints:D.basisPoints,recipient:D.recipient}))),Ie=[];return te.tradeType===Hz.EXACT_INPUT&&Ie.push(we.encodeFunctionData("exactInputSingleWithSecondaryFee",[Pe,{tokenIn:he.tokenPath[0].address,tokenOut:he.tokenPath[1].address,fee:he.pools[0].fee,recipient:D,amountIn:ye,amountOutMinimum:be,sqrtPriceLimitX96:0}])),te.tradeType===Hz.EXACT_OUTPUT&&Ie.push(we.encodeFunctionData("exactOutputSingleWithSecondaryFee",[Pe,{tokenIn:he.tokenPath[0].address,tokenOut:he.tokenPath[1].address,fee:he.pools[0].fee,recipient:D,amountInMaximum:ye,amountOut:be,sqrtPriceLimitX96:0}])),isNative(_e)&&Ie.push(we.encodeFunctionData("unwrapNativeToken",[be])),Ie}(he,ye,Re,Pe,Ie,be,ve,te):function buildSinglePoolSwap(D,te,he,ye,be,ve,we,_e,Pe){const Ie=[];return ye.tradeType===Hz.EXACT_INPUT&&Ie.push(_e.encodeFunctionData("exactInputSingle",[{tokenIn:be.tokenPath[0].address,tokenOut:be.tokenPath[1].address,fee:be.pools[0].fee,recipient:he,amountIn:ve,amountOutMinimum:we,sqrtPriceLimitX96:0}])),ye.tradeType===Hz.EXACT_OUTPUT&&Ie.push(_e.encodeFunctionData("exactOutputSingle",[{tokenIn:be.tokenPath[0].address,tokenOut:be.tokenPath[1].address,fee:be.pools[0].fee,recipient:he,amountInMaximum:ve,amountOut:we,sqrtPriceLimitX96:0}])),isNative(D)&&Ie.push(Pe.encodeFunctionData("refundETH")),isNative(te)&&Ie.push(Pe.encodeFunctionData("unwrapWETH9(uint256)",[we])),Ie}(D,te,he,ye,Re,Pe,Ie,we,_e):Oe?function buildMultiPoolSwapWithFees(D,te,he,ye,be,ve,we,_e){const Pe=encodeRouteToPath(he,te.tradeType===Hz.EXACT_OUTPUT),Ie=ve.map((D=>({feeBasisPoints:D.basisPoints,recipient:D.recipient}))),Re=[];return te.tradeType===Hz.EXACT_INPUT&&Re.push(we.encodeFunctionData("exactInputWithSecondaryFee",[Ie,{path:Pe,recipient:D,amountIn:ye,amountOutMinimum:be}])),te.tradeType===Hz.EXACT_OUTPUT&&Re.push(we.encodeFunctionData("exactOutputWithSecondaryFee",[Ie,{path:Pe,recipient:D,amountInMaximum:ye,amountOut:be}])),isNative(_e)&&Re.push(we.encodeFunctionData("unwrapNativeToken",[be])),Re}(he,ye,Re,Pe,Ie,be,ve,te):function buildMultiPoolSwap(D,te,he,ye,be,ve,we,_e,Pe){const Ie=encodeRouteToPath(be,ye.tradeType===Hz.EXACT_OUTPUT),Re=[];return ye.tradeType===Hz.EXACT_INPUT&&Re.push(_e.encodeFunctionData("exactInput",[{path:Ie,recipient:he,amountIn:ve,amountOutMinimum:we}])),ye.tradeType===Hz.EXACT_OUTPUT&&Re.push(_e.encodeFunctionData("exactOutput",[{path:Ie,recipient:he,amountInMaximum:ve,amountOut:we}])),isNative(D)&&Re.push(Pe.encodeFunctionData("refundETH")),isNative(te)&&Re.push(Pe.encodeFunctionData("unwrapWETH9(uint256)",[we])),Re}(D,te,he,ye,Re,Pe,Ie,we,_e)}function createSwapCallParameters(D,te,he,ye,be,ve,we,_e){const Pe=ImmutableSwapProxy__factory.createInterface(),Ie=buildSwapParameters(D,te,ye,he,ve,Pe,cX.SwapRouter.INTERFACE,cX.PaymentsExtended.INTERFACE,we,_e);return Pe.encodeFunctionData(kX,[be.deadlineOrPreviousBlockhash,Ie])}function getSwap(D,te,he,ye,be,ve,we,_e,Pe,Ie){const Re=((D,te,he,ye,be)=>isNative(D)?0===be.length?he:ye:te)(te,ye,we,_e,Ie),{calldata:ke,maximumAmountIn:Oe}=function createSwapParameters(D,te,he,ye,be,ve,we){const _e=kV.createUncheckedTrade({route:he.route,inputAmount:toCurrencyAmount(he.amountIn),outputAmount:toCurrencyAmount(he.amountOut),tradeType:he.tradeType}),Pe={slippageTolerance:slippageToFraction(be),recipient:ye,deadlineOrPreviousBlockhash:ve},Ie=toHex$1(_e.maximumAmountIn(Pe.slippageTolerance).quotient),Re=toHex$1(_e.minimumAmountOut(Pe.slippageTolerance).quotient);return{calldata:createSwapCallParameters(D,te,_e,ye,Pe,we,Ie,Re),maximumAmountIn:Ie}}(D,te,he,Re,be,ve,Ie),xe=Ie.length>0,Be=Pe?calculateGasFee(xe,Pe,he.gasEstimate):null,Fe=((D,te)=>"native"===D.type?te:"0x00")(D,Oe);return{transaction:{data:ke,to:Ie.length>0?_e:we,value:Fe,from:ye},gasFeeEstimate:Be?toPublicAmount(Be):null}}function adjustQuoteWithFees(D,te,he,ye){const be=((D,te,he,ye)=>{if(D.tradeType===Hz.EXACT_OUTPUT){const te=canUnwrapToken(he.token)?ye.unwrapAmount(D.amountIn):D.amountIn;return he.addAmount(te),ye.maybeWrapAmount(he.amountWithFeesApplied())}return ye.maybeWrapAmount(te)})(D,te,he,ye);return{gasEstimate:D.gasEstimate,route:D.route,amountIn:be,amountOut:D.amountOut,tradeType:D.tradeType}}const OX={[fX]:{multicall:"0x4857Dfd11c712e862eC362cEee29F7974B70EfcD",coreFactory:"0x56c2162254b0E4417288786eE402c2B41d4e181e",quoter:"0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd",swapRouter:"0x0b012055F770AE7BB7a8303968A7Fb6088A2296e",immutableSwapProxy:"0xDdBDa144cEbe1cCd68E746CDff8a6e4Be51A9e98"},[lX]:{multicall:"0xc7efb32470dEE601959B15f1f923e017C6A918cA",coreFactory:"0x56c2162254b0E4417288786eE402c2B41d4e181e",quoter:"0xF6Ad3CcF71Abb3E12beCf6b3D2a74C963859ADCd",swapRouter:"0xE5a02c2Be08406c3fB36F9Aa29bF7C7A09CAe50B",immutableSwapProxy:"0xD67cc11151dBccCC424A16F8963ece3D0539BD61"}},xX={[fX]:{chainId:fX,rpcUrl:"https://rpc.testnet.immutable.com",contracts:OX[13473],commonRoutingTokens:yX,nativeToken:pX,wrappedNativeToken:hX}},NX={[lX]:{chainId:lX,rpcUrl:"https://rpc.immutable.com",contracts:OX[13371],commonRoutingTokens:gX,nativeToken:mX,wrappedNativeToken:bX}},MX={[ra.SANDBOX]:xX,[ra.PRODUCTION]:NX};class ExchangeConfiguration{baseConfig;chain;secondaryFees=[];constructor({chainId:D,baseConfig:te,secondaryFees:he,overrides:ye}){if(this.baseConfig=te,this.secondaryFees=he||[],function validateSecondaryFees(D){let te=0;for(const he of D){if(!isValidNonZeroAddress(he.recipient))throw new InvalidConfigurationError(`Invalid secondary fee recipient address: ${he.recipient}`);if(he.basisPoints<=0||he.basisPoints>1e3)throw new InvalidConfigurationError(`Invalid secondary fee basis points: ${he.basisPoints}`);te+=he.basisPoints}if(te>1e3)throw new InvalidConfigurationError(`Invalid total secondary fee basis points: ${te}`)}(this.secondaryFees),ye)return function validateOverrides(D){const te=["rpcURL","exchangeContracts","commonRoutingTokens","nativeToken"];for(const he of te)if(!D[he])throw new InvalidConfigurationError(`Missing override: ${he}`);Object.entries(D.exchangeContracts).forEach((([D,te])=>{if(!isValidNonZeroAddress(te))throw new InvalidConfigurationError(`Invalid exchange contract address for ${D}`)}))}(ye),this.chain={chainId:D,rpcUrl:ye.rpcURL,contracts:ye.exchangeContracts,commonRoutingTokens:ye.commonRoutingTokens,nativeToken:ye.nativeToken,wrappedNativeToken:ye.wrappedNativeToken},void(this.secondaryFees=he||[]);const be=MX[te.environment][D];if(!be)throw new ChainNotSupportedError(D,te.environment);this.chain=be}}class Exchange{provider;batchProvider;router;chainId;nativeToken;wrappedNativeToken;secondaryFees;nativeTokenService;swapProxyContractAddress;routerContractAddress;constructor(D){const te=new ExchangeConfiguration(D);this.chainId=te.chain.chainId,this.nativeToken=te.chain.nativeToken,this.wrappedNativeToken=te.chain.wrappedNativeToken,this.nativeTokenService=new NativeTokenService(this.nativeToken,this.wrappedNativeToken),this.secondaryFees=te.secondaryFees,this.routerContractAddress=te.chain.contracts.swapRouter,this.swapProxyContractAddress=te.chain.contracts.immutableSwapProxy,this.provider=new StaticJsonRpcProvider({url:te.chain.rpcUrl,skipFetchSetup:!0},te.chain.chainId),this.batchProvider=new JsonRpcBatchProvider({url:te.chain.rpcUrl,skipFetchSetup:!0},te.chain.chainId);const he=Multicall__factory.connect(te.chain.contracts.multicall,this.provider);this.router=new Router(this.batchProvider,he,te.chain.commonRoutingTokens,te.chain.contracts)}static validate(D,te,he,ye,be){assert$c(isValidNonZeroAddress(be),new InvalidAddressError("invalid from address")),assert$c(isValidTokenLiteral(D),new InvalidAddressError("invalid token in address")),assert$c(isValidTokenLiteral(te),new InvalidAddressError("invalid token out address")),assert$c(D.toLocaleLowerCase()!==te.toLocaleLowerCase(),new DuplicateAddressesError),assert$c(he<=10,new InvalidMaxHopsError("max hops must be less than or equal to 10")),assert$c(he>=1,new InvalidMaxHopsError("max hops must be greater than or equal to 1")),assert$c(ye<=50,new InvalidSlippageError("slippage percent must be less than or equal to 50")),assert$c(ye>=0,new InvalidSlippageError("slippage percent must be greater than or equal to 0"))}async getSecondaryFees(D){if(0===this.secondaryFees.length)return[];const te=ImmutableSwapProxy__factory.connect(this.swapProxyContractAddress,D);return await te.paused()?[]:this.secondaryFees}parseTokenLiteral(D,te){return"native"===D?this.nativeToken:{type:"erc20",address:D,chainId:this.chainId,decimals:te}}async getUnwrapTransaction(D,te,he,ye){const be=he.encodeFunctionData("withdraw",[te]),ve=Li.from(35216),we=ye?toPublicAmount(calculateGasFee(!1,ye,ve)):null;return{transaction:{transaction:{data:be,to:this.wrappedNativeToken.address,from:D},gasFeeEstimate:we},approval:null}}getWrapTransaction(D,te,he,ye){const be=he.encodeFunctionData("deposit"),ve=Li.from(45038),we=ye?toPublicAmount(calculateGasFee(!1,ye,ve)):null;return{transaction:{transaction:{data:be,to:this.wrappedNativeToken.address,value:te,from:D},gasFeeEstimate:we},approval:null}}async getUnsignedWrapUnwrapTx(D,te,he,ye){const be="native"===te.token.type,ve={token:"native"===D.type?this.wrappedNativeToken:this.nativeToken,value:te.value},we={amount:toPublicAmount(ve),amountWithMaxSlippage:toPublicAmount(ve),slippage:0,fees:[]},_e=WIMX__factory.createInterface();let Pe;return Pe=be?this.getWrapTransaction(he,ve.value,_e,ye):await this.getUnwrapTransaction(he,ve.value,_e,ye),{quote:we,approval:Pe.approval,swap:Pe.transaction}}async getUnsignedSwapTx(D,te,he,ye,be,ve,we,_e){Exchange.validate(te,he,ve,be,D);const Pe=[getTokenDecimals(te,this.batchProvider,this.nativeToken),getTokenDecimals(he,this.batchProvider,this.nativeToken),this.getSecondaryFees(this.batchProvider),fetchGasPrice(this.batchProvider,this.nativeToken)],[Ie,Re,ke,Oe]=await Promise.all(Pe),xe=this.parseTokenLiteral(te,Ie),Be=this.parseTokenLiteral(he,Re),[Fe,De]=_e===Hz.EXACT_INPUT?[xe,Be]:[Be,xe],Le=newAmount(ye,Fe);if(this.nativeTokenService.isWrapOrUnwrap(xe,Be))return this.getUnsignedWrapUnwrapTx(Fe,newAmount(ye,xe),D,Oe);const Ue=new Fees(ke,xe),qe=function getOurQuoteReqAmount(D,te,he,ye){return he===Hz.EXACT_OUTPUT?ye.maybeWrapAmount(D):(te.addAmount(D),ye.maybeWrapAmount(te.amountLessFees()))}(Le,Ue,_e,this.nativeTokenService),je=adjustQuoteWithFees(await this.router.findOptimalRoute(qe,this.nativeTokenService.maybeWrapToken(De),_e,ve),Le,Ue,this.nativeTokenService),Je=getSwap(xe,Be,je,D,be,we,this.routerContractAddress,this.swapProxyContractAddress,Oe,ke),{quotedAmount:et,quotedAmountWithMaxSlippage:tt}=prepareUserQuote(this.nativeTokenService,je,be,De),rt=((D,te,he,ye,be)=>{const ve=D===Hz.EXACT_INPUT?te:he;return isERC20Amount(ve)?{spender:0===be.length?ye.routerAddress:ye.secondaryFeeAddress,amount:ve}:null})(_e,Le,tt,{routerAddress:this.routerContractAddress,secondaryFeeAddress:this.swapProxyContractAddress},ke),nt=rt?await getApproval(this.provider,D,rt,Oe):null,at=((D,te,he,ye)=>({amount:toPublicAmount(D),amountWithMaxSlippage:toPublicAmount(te),slippage:he,fees:ye.withAmounts().map((D=>({...D,amount:toPublicAmount(D.amount)})))}))(et,tt,be,Ue);return{quote:at,approval:nt,swap:Je}}async getUnsignedSwapTxFromAmountIn(D,te,he,ye,be=.1,ve=2,we=getDefaultDeadlineSeconds()){return await this.getUnsignedSwapTx(D,te,he,Li.from(ye),be,ve,we,Hz.EXACT_INPUT)}async getUnsignedSwapTxFromAmountOut(D,te,he,ye,be=.1,ve=2,we=getDefaultDeadlineSeconds()){return await this.getUnsignedSwapTx(D,te,he,Li.from(ye),be,ve,we,Hz.EXACT_OUTPUT)}}var BX=function detectEthereumProvider({mustBeMetaMask:D=!1,silent:te=!1,timeout:he=3e3}={}){!function _validateInputs(){if("boolean"!=typeof D)throw new Error("@metamask/detect-provider: Expected option 'mustBeMetaMask' to be a boolean.");if("boolean"!=typeof te)throw new Error("@metamask/detect-provider: Expected option 'silent' to be a boolean.");if("number"!=typeof he)throw new Error("@metamask/detect-provider: Expected option 'timeout' to be a number.")}();let ye=!1;return new Promise((be=>{function handleEthereum(){if(ye)return;ye=!0,window.removeEventListener("ethereum#initialized",handleEthereum);const{ethereum:he}=window;if(!he||D&&!he.isMetaMask){const ye=D&&he?"Non-MetaMask window.ethereum detected.":"Unable to detect window.ethereum.";!te&&console.error("@metamask/detect-provider:",ye),be(null)}else be(he)}window.ethereum?handleEthereum():(window.addEventListener("ethereum#initialized",handleEthereum,{once:!0}),setTimeout((()=>{handleEthereum()}),he))}))},FX=getDefaultExportFromCjs$1(BX),DX={exports:{}};!function(D,te){var he;te=D.exports=SemVer,he=function(){},te.SEMVER_SPEC_VERSION="2.0.0";var ye=256,be=Number.MAX_SAFE_INTEGER||9007199254740991,ve=ye-6,we=te.re=[],_e=te.safeRe=[],Pe=te.src=[],Ie=te.tokens={},Re=0;function tok(D){Ie[D]=Re++}var ke="[a-zA-Z0-9-]",Oe=[["\\s",1],["\\d",ye],[ke,ve]];function makeSafeRe(D){for(var te=0;te<Oe.length;te++){var he=Oe[te][0],ye=Oe[te][1];D=D.split(he+"*").join(he+"{0,"+ye+"}").split(he+"+").join(he+"{1,"+ye+"}")}return D}tok("NUMERICIDENTIFIER"),Pe[Ie.NUMERICIDENTIFIER]="0|[1-9]\\d*",tok("NUMERICIDENTIFIERLOOSE"),Pe[Ie.NUMERICIDENTIFIERLOOSE]="\\d+",tok("NONNUMERICIDENTIFIER"),Pe[Ie.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+ke+"*",tok("MAINVERSION"),Pe[Ie.MAINVERSION]="("+Pe[Ie.NUMERICIDENTIFIER]+")\\.("+Pe[Ie.NUMERICIDENTIFIER]+")\\.("+Pe[Ie.NUMERICIDENTIFIER]+")",tok("MAINVERSIONLOOSE"),Pe[Ie.MAINVERSIONLOOSE]="("+Pe[Ie.NUMERICIDENTIFIERLOOSE]+")\\.("+Pe[Ie.NUMERICIDENTIFIERLOOSE]+")\\.("+Pe[Ie.NUMERICIDENTIFIERLOOSE]+")",tok("PRERELEASEIDENTIFIER"),Pe[Ie.PRERELEASEIDENTIFIER]="(?:"+Pe[Ie.NUMERICIDENTIFIER]+"|"+Pe[Ie.NONNUMERICIDENTIFIER]+")",tok("PRERELEASEIDENTIFIERLOOSE"),Pe[Ie.PRERELEASEIDENTIFIERLOOSE]="(?:"+Pe[Ie.NUMERICIDENTIFIERLOOSE]+"|"+Pe[Ie.NONNUMERICIDENTIFIER]+")",tok("PRERELEASE"),Pe[Ie.PRERELEASE]="(?:-("+Pe[Ie.PRERELEASEIDENTIFIER]+"(?:\\."+Pe[Ie.PRERELEASEIDENTIFIER]+")*))",tok("PRERELEASELOOSE"),Pe[Ie.PRERELEASELOOSE]="(?:-?("+Pe[Ie.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+Pe[Ie.PRERELEASEIDENTIFIERLOOSE]+")*))",tok("BUILDIDENTIFIER"),Pe[Ie.BUILDIDENTIFIER]=ke+"+",tok("BUILD"),Pe[Ie.BUILD]="(?:\\+("+Pe[Ie.BUILDIDENTIFIER]+"(?:\\."+Pe[Ie.BUILDIDENTIFIER]+")*))",tok("FULL"),tok("FULLPLAIN"),Pe[Ie.FULLPLAIN]="v?"+Pe[Ie.MAINVERSION]+Pe[Ie.PRERELEASE]+"?"+Pe[Ie.BUILD]+"?",Pe[Ie.FULL]="^"+Pe[Ie.FULLPLAIN]+"$",tok("LOOSEPLAIN"),Pe[Ie.LOOSEPLAIN]="[v=\\s]*"+Pe[Ie.MAINVERSIONLOOSE]+Pe[Ie.PRERELEASELOOSE]+"?"+Pe[Ie.BUILD]+"?",tok("LOOSE"),Pe[Ie.LOOSE]="^"+Pe[Ie.LOOSEPLAIN]+"$",tok("GTLT"),Pe[Ie.GTLT]="((?:<|>)?=?)",tok("XRANGEIDENTIFIERLOOSE"),Pe[Ie.XRANGEIDENTIFIERLOOSE]=Pe[Ie.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",tok("XRANGEIDENTIFIER"),Pe[Ie.XRANGEIDENTIFIER]=Pe[Ie.NUMERICIDENTIFIER]+"|x|X|\\*",tok("XRANGEPLAIN"),Pe[Ie.XRANGEPLAIN]="[v=\\s]*("+Pe[Ie.XRANGEIDENTIFIER]+")(?:\\.("+Pe[Ie.XRANGEIDENTIFIER]+")(?:\\.("+Pe[Ie.XRANGEIDENTIFIER]+")(?:"+Pe[Ie.PRERELEASE]+")?"+Pe[Ie.BUILD]+"?)?)?",tok("XRANGEPLAINLOOSE"),Pe[Ie.XRANGEPLAINLOOSE]="[v=\\s]*("+Pe[Ie.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+Pe[Ie.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+Pe[Ie.XRANGEIDENTIFIERLOOSE]+")(?:"+Pe[Ie.PRERELEASELOOSE]+")?"+Pe[Ie.BUILD]+"?)?)?",tok("XRANGE"),Pe[Ie.XRANGE]="^"+Pe[Ie.GTLT]+"\\s*"+Pe[Ie.XRANGEPLAIN]+"$",tok("XRANGELOOSE"),Pe[Ie.XRANGELOOSE]="^"+Pe[Ie.GTLT]+"\\s*"+Pe[Ie.XRANGEPLAINLOOSE]+"$",tok("COERCE"),Pe[Ie.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",tok("COERCERTL"),we[Ie.COERCERTL]=new RegExp(Pe[Ie.COERCE],"g"),_e[Ie.COERCERTL]=new RegExp(makeSafeRe(Pe[Ie.COERCE]),"g"),tok("LONETILDE"),Pe[Ie.LONETILDE]="(?:~>?)",tok("TILDETRIM"),Pe[Ie.TILDETRIM]="(\\s*)"+Pe[Ie.LONETILDE]+"\\s+",we[Ie.TILDETRIM]=new RegExp(Pe[Ie.TILDETRIM],"g"),_e[Ie.TILDETRIM]=new RegExp(makeSafeRe(Pe[Ie.TILDETRIM]),"g");tok("TILDE"),Pe[Ie.TILDE]="^"+Pe[Ie.LONETILDE]+Pe[Ie.XRANGEPLAIN]+"$",tok("TILDELOOSE"),Pe[Ie.TILDELOOSE]="^"+Pe[Ie.LONETILDE]+Pe[Ie.XRANGEPLAINLOOSE]+"$",tok("LONECARET"),Pe[Ie.LONECARET]="(?:\\^)",tok("CARETTRIM"),Pe[Ie.CARETTRIM]="(\\s*)"+Pe[Ie.LONECARET]+"\\s+",we[Ie.CARETTRIM]=new RegExp(Pe[Ie.CARETTRIM],"g"),_e[Ie.CARETTRIM]=new RegExp(makeSafeRe(Pe[Ie.CARETTRIM]),"g");tok("CARET"),Pe[Ie.CARET]="^"+Pe[Ie.LONECARET]+Pe[Ie.XRANGEPLAIN]+"$",tok("CARETLOOSE"),Pe[Ie.CARETLOOSE]="^"+Pe[Ie.LONECARET]+Pe[Ie.XRANGEPLAINLOOSE]+"$",tok("COMPARATORLOOSE"),Pe[Ie.COMPARATORLOOSE]="^"+Pe[Ie.GTLT]+"\\s*("+Pe[Ie.LOOSEPLAIN]+")$|^$",tok("COMPARATOR"),Pe[Ie.COMPARATOR]="^"+Pe[Ie.GTLT]+"\\s*("+Pe[Ie.FULLPLAIN]+")$|^$",tok("COMPARATORTRIM"),Pe[Ie.COMPARATORTRIM]="(\\s*)"+Pe[Ie.GTLT]+"\\s*("+Pe[Ie.LOOSEPLAIN]+"|"+Pe[Ie.XRANGEPLAIN]+")",we[Ie.COMPARATORTRIM]=new RegExp(Pe[Ie.COMPARATORTRIM],"g"),_e[Ie.COMPARATORTRIM]=new RegExp(makeSafeRe(Pe[Ie.COMPARATORTRIM]),"g");tok("HYPHENRANGE"),Pe[Ie.HYPHENRANGE]="^\\s*("+Pe[Ie.XRANGEPLAIN]+")\\s+-\\s+("+Pe[Ie.XRANGEPLAIN]+")\\s*$",tok("HYPHENRANGELOOSE"),Pe[Ie.HYPHENRANGELOOSE]="^\\s*("+Pe[Ie.XRANGEPLAINLOOSE]+")\\s+-\\s+("+Pe[Ie.XRANGEPLAINLOOSE]+")\\s*$",tok("STAR"),Pe[Ie.STAR]="(<|>)?=?\\s*\\*";for(var xe=0;xe<Re;xe++)he(xe,Pe[xe]),we[xe]||(we[xe]=new RegExp(Pe[xe]),_e[xe]=new RegExp(makeSafeRe(Pe[xe])));function parse(D,te){if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),D instanceof SemVer)return D;if("string"!=typeof D)return null;if(D.length>ye)return null;if(!(te.loose?_e[Ie.LOOSE]:_e[Ie.FULL]).test(D))return null;try{return new SemVer(D,te)}catch(D){return null}}function SemVer(D,te){if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),D instanceof SemVer){if(D.loose===te.loose)return D;D=D.version}else if("string"!=typeof D)throw new TypeError("Invalid Version: "+D);if(D.length>ye)throw new TypeError("version is longer than "+ye+" characters");if(!(this instanceof SemVer))return new SemVer(D,te);he("SemVer",D,te),this.options=te,this.loose=!!te.loose;var ve=D.trim().match(te.loose?_e[Ie.LOOSE]:_e[Ie.FULL]);if(!ve)throw new TypeError("Invalid Version: "+D);if(this.raw=D,this.major=+ve[1],this.minor=+ve[2],this.patch=+ve[3],this.major>be||this.major<0)throw new TypeError("Invalid major version");if(this.minor>be||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>be||this.patch<0)throw new TypeError("Invalid patch version");ve[4]?this.prerelease=ve[4].split(".").map((function(D){if(/^[0-9]+$/.test(D)){var te=+D;if(te>=0&&te<be)return te}return D})):this.prerelease=[],this.build=ve[5]?ve[5].split("."):[],this.format()}te.parse=parse,te.valid=function valid(D,te){var he=parse(D,te);return he?he.version:null},te.clean=function clean(D,te){var he=parse(D.trim().replace(/^[=v]+/,""),te);return he?he.version:null},te.SemVer=SemVer,SemVer.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},SemVer.prototype.toString=function(){return this.version},SemVer.prototype.compare=function(D){return he("SemVer.compare",this.version,this.options,D),D instanceof SemVer||(D=new SemVer(D,this.options)),this.compareMain(D)||this.comparePre(D)},SemVer.prototype.compareMain=function(D){return D instanceof SemVer||(D=new SemVer(D,this.options)),compareIdentifiers(this.major,D.major)||compareIdentifiers(this.minor,D.minor)||compareIdentifiers(this.patch,D.patch)},SemVer.prototype.comparePre=function(D){if(D instanceof SemVer||(D=new SemVer(D,this.options)),this.prerelease.length&&!D.prerelease.length)return-1;if(!this.prerelease.length&&D.prerelease.length)return 1;if(!this.prerelease.length&&!D.prerelease.length)return 0;var te=0;do{var ye=this.prerelease[te],be=D.prerelease[te];if(he("prerelease compare",te,ye,be),void 0===ye&&void 0===be)return 0;if(void 0===be)return 1;if(void 0===ye)return-1;if(ye!==be)return compareIdentifiers(ye,be)}while(++te)},SemVer.prototype.compareBuild=function(D){D instanceof SemVer||(D=new SemVer(D,this.options));var te=0;do{var ye=this.build[te],be=D.build[te];if(he("prerelease compare",te,ye,be),void 0===ye&&void 0===be)return 0;if(void 0===be)return 1;if(void 0===ye)return-1;if(ye!==be)return compareIdentifiers(ye,be)}while(++te)},SemVer.prototype.inc=function(D,te){switch(D){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",te);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",te);break;case"prepatch":this.prerelease.length=0,this.inc("patch",te),this.inc("pre",te);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",te),this.inc("pre",te);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var he=this.prerelease.length;--he>=0;)"number"==typeof this.prerelease[he]&&(this.prerelease[he]++,he=-2);-1===he&&this.prerelease.push(0)}te&&(this.prerelease[0]===te?isNaN(this.prerelease[1])&&(this.prerelease=[te,0]):this.prerelease=[te,0]);break;default:throw new Error("invalid increment argument: "+D)}return this.format(),this.raw=this.version,this},te.inc=function inc(D,te,he,ye){"string"==typeof he&&(ye=he,he=void 0);try{return new SemVer(D,he).inc(te,ye).version}catch(D){return null}},te.diff=function diff(D,te){if(eq(D,te))return null;var he=parse(D),ye=parse(te),be="";if(he.prerelease.length||ye.prerelease.length){be="pre";var ve="prerelease"}for(var we in he)if(("major"===we||"minor"===we||"patch"===we)&&he[we]!==ye[we])return be+we;return ve},te.compareIdentifiers=compareIdentifiers;var Be=/^[0-9]+$/;function compareIdentifiers(D,te){var he=Be.test(D),ye=Be.test(te);return he&&ye&&(D=+D,te=+te),D===te?0:he&&!ye?-1:ye&&!he?1:D<te?-1:1}function compare(D,te,he){return new SemVer(D,he).compare(new SemVer(te,he))}function gt(D,te,he){return compare(D,te,he)>0}function lt(D,te,he){return compare(D,te,he)<0}function eq(D,te,he){return 0===compare(D,te,he)}function neq(D,te,he){return 0!==compare(D,te,he)}function gte(D,te,he){return compare(D,te,he)>=0}function lte(D,te,he){return compare(D,te,he)<=0}function cmp(D,te,he,ye){switch(te){case"===":return"object"==typeof D&&(D=D.version),"object"==typeof he&&(he=he.version),D===he;case"!==":return"object"==typeof D&&(D=D.version),"object"==typeof he&&(he=he.version),D!==he;case"":case"=":case"==":return eq(D,he,ye);case"!=":return neq(D,he,ye);case">":return gt(D,he,ye);case">=":return gte(D,he,ye);case"<":return lt(D,he,ye);case"<=":return lte(D,he,ye);default:throw new TypeError("Invalid operator: "+te)}}function Comparator(D,te){if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),D instanceof Comparator){if(D.loose===!!te.loose)return D;D=D.value}if(!(this instanceof Comparator))return new Comparator(D,te);D=D.trim().split(/\s+/).join(" "),he("comparator",D,te),this.options=te,this.loose=!!te.loose,this.parse(D),this.semver===Fe?this.value="":this.value=this.operator+this.semver.version,he("comp",this)}te.rcompareIdentifiers=function rcompareIdentifiers(D,te){return compareIdentifiers(te,D)},te.major=function major(D,te){return new SemVer(D,te).major},te.minor=function minor(D,te){return new SemVer(D,te).minor},te.patch=function patch(D,te){return new SemVer(D,te).patch},te.compare=compare,te.compareLoose=function compareLoose(D,te){return compare(D,te,!0)},te.compareBuild=function compareBuild(D,te,he){var ye=new SemVer(D,he),be=new SemVer(te,he);return ye.compare(be)||ye.compareBuild(be)},te.rcompare=function rcompare(D,te,he){return compare(te,D,he)},te.sort=function sort(D,he){return D.sort((function(D,ye){return te.compareBuild(D,ye,he)}))},te.rsort=function rsort(D,he){return D.sort((function(D,ye){return te.compareBuild(ye,D,he)}))},te.gt=gt,te.lt=lt,te.eq=eq,te.neq=neq,te.gte=gte,te.lte=lte,te.cmp=cmp,te.Comparator=Comparator;var Fe={};function Range(D,te){if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),D instanceof Range)return D.loose===!!te.loose&&D.includePrerelease===!!te.includePrerelease?D:new Range(D.raw,te);if(D instanceof Comparator)return new Range(D.value,te);if(!(this instanceof Range))return new Range(D,te);if(this.options=te,this.loose=!!te.loose,this.includePrerelease=!!te.includePrerelease,this.raw=D.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map((function(D){return this.parseRange(D.trim())}),this).filter((function(D){return D.length})),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}function isSatisfiable(D,te){for(var he=!0,ye=D.slice(),be=ye.pop();he&&ye.length;)he=ye.every((function(D){return be.intersects(D,te)})),be=ye.pop();return he}function isX(D){return!D||"x"===D.toLowerCase()||"*"===D}function hyphenReplace(D,te,he,ye,be,ve,we,_e,Pe,Ie,Re,ke,Oe){return((te=isX(he)?"":isX(ye)?">="+he+".0.0":isX(be)?">="+he+"."+ye+".0":">="+te)+" "+(_e=isX(Pe)?"":isX(Ie)?"<"+(+Pe+1)+".0.0":isX(Re)?"<"+Pe+"."+(+Ie+1)+".0":ke?"<="+Pe+"."+Ie+"."+Re+"-"+ke:"<="+_e)).trim()}function testSet(D,te,ye){for(var be=0;be<D.length;be++)if(!D[be].test(te))return!1;if(te.prerelease.length&&!ye.includePrerelease){for(be=0;be<D.length;be++)if(he(D[be].semver),D[be].semver!==Fe&&D[be].semver.prerelease.length>0){var ve=D[be].semver;if(ve.major===te.major&&ve.minor===te.minor&&ve.patch===te.patch)return!0}return!1}return!0}function satisfies(D,te,he){try{te=new Range(te,he)}catch(D){return!1}return te.test(D)}function outside(D,te,he,ye){var be,ve,we,_e,Pe;switch(D=new SemVer(D,ye),te=new Range(te,ye),he){case">":be=gt,ve=lte,we=lt,_e=">",Pe=">=";break;case"<":be=lt,ve=gte,we=gt,_e="<",Pe="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(satisfies(D,te,ye))return!1;for(var Ie=0;Ie<te.set.length;++Ie){var Re=te.set[Ie],ke=null,Oe=null;if(Re.forEach((function(D){D.semver===Fe&&(D=new Comparator(">=0.0.0")),ke=ke||D,Oe=Oe||D,be(D.semver,ke.semver,ye)?ke=D:we(D.semver,Oe.semver,ye)&&(Oe=D)})),ke.operator===_e||ke.operator===Pe)return!1;if((!Oe.operator||Oe.operator===_e)&&ve(D,Oe.semver))return!1;if(Oe.operator===Pe&&we(D,Oe.semver))return!1}return!0}Comparator.prototype.parse=function(D){var te=this.options.loose?_e[Ie.COMPARATORLOOSE]:_e[Ie.COMPARATOR],he=D.match(te);if(!he)throw new TypeError("Invalid comparator: "+D);this.operator=void 0!==he[1]?he[1]:"","="===this.operator&&(this.operator=""),he[2]?this.semver=new SemVer(he[2],this.options.loose):this.semver=Fe},Comparator.prototype.toString=function(){return this.value},Comparator.prototype.test=function(D){if(he("Comparator.test",D,this.options.loose),this.semver===Fe||D===Fe)return!0;if("string"==typeof D)try{D=new SemVer(D,this.options)}catch(D){return!1}return cmp(D,this.operator,this.semver,this.options)},Comparator.prototype.intersects=function(D,te){if(!(D instanceof Comparator))throw new TypeError("a Comparator is required");var he;if(te&&"object"==typeof te||(te={loose:!!te,includePrerelease:!1}),""===this.operator)return""===this.value||(he=new Range(D.value,te),satisfies(this.value,he,te));if(""===D.operator)return""===D.value||(he=new Range(this.value,te),satisfies(D.semver,he,te));var ye=!(">="!==this.operator&&">"!==this.operator||">="!==D.operator&&">"!==D.operator),be=!("<="!==this.operator&&"<"!==this.operator||"<="!==D.operator&&"<"!==D.operator),ve=this.semver.version===D.semver.version,we=!(">="!==this.operator&&"<="!==this.operator||">="!==D.operator&&"<="!==D.operator),_e=cmp(this.semver,"<",D.semver,te)&&(">="===this.operator||">"===this.operator)&&("<="===D.operator||"<"===D.operator),Pe=cmp(this.semver,">",D.semver,te)&&("<="===this.operator||"<"===this.operator)&&(">="===D.operator||">"===D.operator);return ye||be||ve&&we||_e||Pe},te.Range=Range,Range.prototype.format=function(){return this.range=this.set.map((function(D){return D.join(" ").trim()})).join("||").trim(),this.range},Range.prototype.toString=function(){return this.range},Range.prototype.parseRange=function(D){var te=this.options.loose,ye=te?_e[Ie.HYPHENRANGELOOSE]:_e[Ie.HYPHENRANGE];D=D.replace(ye,hyphenReplace),he("hyphen replace",D),D=D.replace(_e[Ie.COMPARATORTRIM],"$1$2$3"),he("comparator trim",D,_e[Ie.COMPARATORTRIM]),D=(D=(D=D.replace(_e[Ie.TILDETRIM],"$1~")).replace(_e[Ie.CARETTRIM],"$1^")).split(/\s+/).join(" ");var be=te?_e[Ie.COMPARATORLOOSE]:_e[Ie.COMPARATOR],ve=D.split(" ").map((function(D){return function parseComparator(D,te){return he("comp",D,te),D=function replaceCarets(D,te){return D.trim().split(/\s+/).map((function(D){return function replaceCaret(D,te){he("caret",D,te);var ye=te.loose?_e[Ie.CARETLOOSE]:_e[Ie.CARET];return D.replace(ye,(function(te,ye,be,ve,we){var _e;return he("caret",D,te,ye,be,ve,we),isX(ye)?_e="":isX(be)?_e=">="+ye+".0.0 <"+(+ye+1)+".0.0":isX(ve)?_e="0"===ye?">="+ye+"."+be+".0 <"+ye+"."+(+be+1)+".0":">="+ye+"."+be+".0 <"+(+ye+1)+".0.0":we?(he("replaceCaret pr",we),_e="0"===ye?"0"===be?">="+ye+"."+be+"."+ve+"-"+we+" <"+ye+"."+be+"."+(+ve+1):">="+ye+"."+be+"."+ve+"-"+we+" <"+ye+"."+(+be+1)+".0":">="+ye+"."+be+"."+ve+"-"+we+" <"+(+ye+1)+".0.0"):(he("no pr"),_e="0"===ye?"0"===be?">="+ye+"."+be+"."+ve+" <"+ye+"."+be+"."+(+ve+1):">="+ye+"."+be+"."+ve+" <"+ye+"."+(+be+1)+".0":">="+ye+"."+be+"."+ve+" <"+(+ye+1)+".0.0"),he("caret return",_e),_e}))}(D,te)})).join(" ")}(D,te),he("caret",D),D=function replaceTildes(D,te){return D.trim().split(/\s+/).map((function(D){return function replaceTilde(D,te){var ye=te.loose?_e[Ie.TILDELOOSE]:_e[Ie.TILDE];return D.replace(ye,(function(te,ye,be,ve,we){var _e;return he("tilde",D,te,ye,be,ve,we),isX(ye)?_e="":isX(be)?_e=">="+ye+".0.0 <"+(+ye+1)+".0.0":isX(ve)?_e=">="+ye+"."+be+".0 <"+ye+"."+(+be+1)+".0":we?(he("replaceTilde pr",we),_e=">="+ye+"."+be+"."+ve+"-"+we+" <"+ye+"."+(+be+1)+".0"):_e=">="+ye+"."+be+"."+ve+" <"+ye+"."+(+be+1)+".0",he("tilde return",_e),_e}))}(D,te)})).join(" ")}(D,te),he("tildes",D),D=function replaceXRanges(D,te){return he("replaceXRanges",D,te),D.split(/\s+/).map((function(D){return function replaceXRange(D,te){D=D.trim();var ye=te.loose?_e[Ie.XRANGELOOSE]:_e[Ie.XRANGE];return D.replace(ye,(function(ye,be,ve,we,_e,Pe){he("xRange",D,ye,be,ve,we,_e,Pe);var Ie=isX(ve),Re=Ie||isX(we),ke=Re||isX(_e),Oe=ke;return"="===be&&Oe&&(be=""),Pe=te.includePrerelease?"-0":"",Ie?ye=">"===be||"<"===be?"<0.0.0-0":"*":be&&Oe?(Re&&(we=0),_e=0,">"===be?(be=">=",Re?(ve=+ve+1,we=0,_e=0):(we=+we+1,_e=0)):"<="===be&&(be="<",Re?ve=+ve+1:we=+we+1),ye=be+ve+"."+we+"."+_e+Pe):Re?ye=">="+ve+".0.0"+Pe+" <"+(+ve+1)+".0.0"+Pe:ke&&(ye=">="+ve+"."+we+".0"+Pe+" <"+ve+"."+(+we+1)+".0"+Pe),he("xRange return",ye),ye}))}(D,te)})).join(" ")}(D,te),he("xrange",D),D=function replaceStars(D,te){return he("replaceStars",D,te),D.trim().replace(_e[Ie.STAR],"")}(D,te),he("stars",D),D}(D,this.options)}),this).join(" ").split(/\s+/);return this.options.loose&&(ve=ve.filter((function(D){return!!D.match(be)}))),ve=ve.map((function(D){return new Comparator(D,this.options)}),this)},Range.prototype.intersects=function(D,te){if(!(D instanceof Range))throw new TypeError("a Range is required");return this.set.some((function(he){return isSatisfiable(he,te)&&D.set.some((function(D){return isSatisfiable(D,te)&&he.every((function(he){return D.every((function(D){return he.intersects(D,te)}))}))}))}))},te.toComparators=function toComparators(D,te){return new Range(D,te).set.map((function(D){return D.map((function(D){return D.value})).join(" ").trim().split(" ")}))},Range.prototype.test=function(D){if(!D)return!1;if("string"==typeof D)try{D=new SemVer(D,this.options)}catch(D){return!1}for(var te=0;te<this.set.length;te++)if(testSet(this.set[te],D,this.options))return!0;return!1},te.satisfies=satisfies,te.maxSatisfying=function maxSatisfying(D,te,he){var ye=null,be=null;try{var ve=new Range(te,he)}catch(D){return null}return D.forEach((function(D){ve.test(D)&&(ye&&-1!==be.compare(D)||(be=new SemVer(ye=D,he)))})),ye},te.minSatisfying=function minSatisfying(D,te,he){var ye=null,be=null;try{var ve=new Range(te,he)}catch(D){return null}return D.forEach((function(D){ve.test(D)&&(ye&&1!==be.compare(D)||(be=new SemVer(ye=D,he)))})),ye},te.minVersion=function minVersion(D,te){D=new Range(D,te);var he=new SemVer("0.0.0");if(D.test(he))return he;if(he=new SemVer("0.0.0-0"),D.test(he))return he;he=null;for(var ye=0;ye<D.set.length;++ye){D.set[ye].forEach((function(D){var te=new SemVer(D.semver.version);switch(D.operator){case">":0===te.prerelease.length?te.patch++:te.prerelease.push(0),te.raw=te.format();case"":case">=":he&&!gt(he,te)||(he=te);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+D.operator)}}))}if(he&&D.test(he))return he;return null},te.validRange=function validRange(D,te){try{return new Range(D,te).range||"*"}catch(D){return null}},te.ltr=function ltr(D,te,he){return outside(D,te,"<",he)},te.gtr=function gtr(D,te,he){return outside(D,te,">",he)},te.outside=outside,te.prerelease=function prerelease(D,te){var he=parse(D,te);return he&&he.prerelease.length?he.prerelease:null},te.intersects=function intersects(D,te,he){return D=new Range(D,he),te=new Range(te,he),D.intersects(te)},te.coerce=function coerce(D,te){if(D instanceof SemVer)return D;"number"==typeof D&&(D=String(D));if("string"!=typeof D)return null;var he=null;if((te=te||{}).rtl){for(var ye;(ye=_e[Ie.COERCERTL].exec(D))&&(!he||he.index+he[0].length!==D.length);)he&&ye.index+ye[0].length===he.index+he[0].length||(he=ye),_e[Ie.COERCERTL].lastIndex=ye.index+ye[1].length+ye[2].length;_e[Ie.COERCERTL].lastIndex=-1}else he=D.match(_e[Ie.COERCE]);if(null===he)return null;return parse(he[2]+"."+(he[3]||"0")+"."+(he[4]||"0"),te)}}(DX,DX.exports);var LX,UX,$X,qX,GX,jX,HX,zX,WX,VX,KX,JX,XX,QX,ZX,YX,eQ,tQ,rQ,nQ,aQ,iQ=getDefaultExportFromCjs$1(DX.exports);!function(D){D.IMTBL_WIDGETS_PROVIDER="imtbl-widgets-provider",D.IMTBL_CONNECT_WIDGET_EVENT="imtbl-connect-widget",D.IMTBL_WALLET_WIDGET_EVENT="imtbl-wallet-widget",D.IMTBL_SWAP_WIDGET_EVENT="imtbl-swap-widget",D.IMTBL_BRIDGE_WIDGET_EVENT="imtbl-bridge-widget",D.IMTBL_ONRAMP_WIDGET_EVENT="imtbl-onramp-widget",D.IMTBL_SALE_WIDGET_EVENT="imtbl-sale-widget",D.IMTBL_COMMERCE_WIDGET_EVENT="imtbl-commerce-widget",D.IMTBL_ADD_TOKENS_WIDGET_EVENT="imtbl-add-tokens-widget",D.IMTBL_PURCHASE_WIDGET_EVENT="imtbl-purchase-widget"}(LX||(LX={})),function(D){D.PROVIDER_UPDATED="PROVIDER_UPDATED"}(UX||(UX={})),function(D){D.CLOSE_WIDGET="close-widget",D.SUCCESS="success",D.FAILURE="failure",D.LANGUAGE_CHANGED="language-changed",D.WALLETCONNECT_PROVIDER_UPDATED="walletconnect-provider-updated"}($X||($X={})),function(D){D.CLOSE_WIDGET="close-widget",D.NETWORK_SWITCH="network-switch",D.DISCONNECT_WALLET="disconnect-wallet",D.LANGUAGE_CHANGED="language-changed"}(qX||(qX={})),function(D){D.CLOSE_WIDGET="close-widget",D.SUCCESS="success",D.FAILURE="failure",D.REJECTED="rejected",D.LANGUAGE_CHANGED="language-changed"}(GX||(GX={})),function(D){D.CLOSE_WIDGET="close-widget",D.SUCCESS="success",D.FAILURE="failure",D.REJECTED="rejected",D.TRANSACTION_SUCCESS="transaction-success",D.LANGUAGE_CHANGED="language-changed",D.PAYMENT_METHOD="payment-method",D.REQUEST_BRIDGE="request-bridge",D.REQUEST_ONRAMP="request-onramp",D.REQUEST_SWAP="request-swap",D.PAYMENT_TOKEN="payment-token"}(jX||(jX={})),function(D){D.CRYPTO="crypto",D.DEBIT="debit",D.CREDIT="credit"}(HX||(HX={})),function(D){D.CLOSE_WIDGET="close-widget",D.FAILURE="failure",D.TRANSACTION_SENT="transaction-sent",D.LANGUAGE_CHANGED="language-changed",D.CLAIM_WITHDRAWAL_SUCCESS="claim-withdrawal-success",D.CLAIM_WITHDRAWAL_FAILURE="claim-withdrawal-failure"}(zX||(zX={})),function(D){D.REQUEST_CONNECT="request-connect",D.REQUEST_WALLET="request-wallet",D.REQUEST_SWAP="request-swap",D.REQUEST_BRIDGE="request-bridge",D.REQUEST_ONRAMP="request-onramp",D.REQUEST_ADD_TOKENS="request-add-tokens",D.REQUEST_PURCHASE="request-purchase",D.REQUEST_GO_BACK="request-go-back"}(WX||(WX={})),function(D){D.CLOSE_WIDGET="close-widget",D.SUCCESS="success",D.FAILURE="failure",D.LANGUAGE_CHANGED="language-changed"}(VX||(VX={})),function(D){D.INITIALISED="INITIALISED",D.PROVIDER_UPDATED="PROVIDER_UPDATED",D.CLOSE="CLOSE",D.SUCCESS="SUCCESS",D.FAILURE="FAILURE",D.DISCONNECTED="DISCONNECTED",D.USER_ACTION="USER_ACTION"}(KX||(KX={})),function(D){D.SWAP_SUCCESS="SWAP_SUCCESS",D.ONRAMP_SUCCESS="ONRAMP_SUCCESS",D.CONNECT_SUCCESS="CONNECT_SUCCESS",D.SALE_SUCCESS="SALE_SUCCESS",D.SALE_TRANSACTION_SUCCESS="SALE_TRANSACTION_SUCCESS",D.BRIDGE_SUCCESS="BRIDGE_SUCCESS",D.BRIDGE_CLAIM_WITHDRAWAL_SUCCESS="BRIDGE_CLAIM_WITHDRAWAL_SUCCESS",D.ADD_TOKENS_SUCCESS="ADD_TOKENS_SUCCESS",D.ADD_TOKENS_CONNECT_SUCCESS="ADD_TOKENS_CONNECT_SUCCESS"}(JX||(JX={})),function(D){D.BRIDGE_FAILED="BRIDGE_FAILED",D.BRIDGE_CLAIM_WITHDRAWAL_FAILED="BRIDGE_CLAIM_WITHDRAWAL_FAILED",D.SWAP_FAILED="SWAP_FAILED",D.SWAP_REJECTED="SWAP_REJECTED",D.CONNECT_FAILED="CONNECT_FAILED",D.SALE_FAILED="SALE_FAILED",D.ONRAMP_FAILED="ONRAMP_FAILED",D.ADD_TOKENS_FAILED="ADD_TOKENS_FAILED"}(XX||(XX={})),function(D){D.PAYMENT_METHOD_SELECTED="PAYMENT_METHOD_SELECTED",D.PAYMENT_TOKEN_SELECTED="PAYMENT_TOKEN_SELECTED",D.NETWORK_SWITCH="NETWORK_SWITCH"}(QX||(QX={})),function(D){D.CLOSE_WIDGET="close-widget",D.LANGUAGE_CHANGED="language-changed",D.CONNECT_SUCCESS="connect-success",D.SUCCESS="success",D.FAILURE="failure"}(ZX||(ZX={})),function(D){D.CLOSE_WIDGET="close-widget",D.CONNECT_SUCCESS="connect-success",D.SUCCESS="success",D.FAILURE="failure"}(YX||(YX={})),function(D){D.CONNECT="connect",D.WALLET="wallet",D.SWAP="swap",D.BRIDGE="bridge",D.ONRAMP="onramp",D.SALE="sale",D.IMMUTABLE_COMMERCE="immutableCommerce",D.ADD_TOKENS="addTokens",D.PURCHASE="purchase"}(eQ||(eQ={})),function(D){D.LAYER1="LAYER1",D.LAYER2="LAYER2"}(tQ||(tQ={})),function(D){D.FROM="FROM",D.TO="TO"}(rQ||(rQ={})),function(D){D.CONNECT="CONNECT",D.WALLET="WALLET",D.SALE="SALE",D.SWAP="SWAP",D.BRIDGE="BRIDGE",D.ONRAMP="ONRAMP",D.ADD_TOKENS="ADD_TOKENS",D.PURCHASE="PURCHASE"}(nQ||(nQ={})),function(D){D.LIGHT="light",D.DARK="dark"}(aQ||(aQ={}));const sQ=["https://checkout-api.dev.immutable.com","https://checkout-api.sandbox.immutable.com","https://checkout-api.immutable.com"];class HttpClient{config;axiosInstance;constructor(D){this.config=D,this.axiosInstance=Kt.create(),this.setupInterceptors()}shouldAddPublishableKey(D){return sQ.some((te=>D.startsWith(te)))}setupInterceptors(){this.axiosInstance.interceptors.request.use((D=>{const te=this.config?.baseConfig?.publishableKey;if(te&&this.shouldAddPublishableKey(D.url||"")){if(!te.startsWith("pk_imapik-"))throw new Error("Invalid Publishable key. Create your Publishable key in Immutable developer hub. https://hub.immutable.com");D.headers["x-immutable-publishable-key"]=te}return D}),(D=>Promise.reject(D)))}async request(D){return await this.axiosInstance.request(D)}async get(D,te){const he={...te,url:D};return await this.request(he)}async post(D,te,he){const ye={...he,data:te,url:D};return await this.request(ye)}async put(D,te,he){const ye={...he,data:te,url:D};return await this.request(ye)}async delete(D,te,he){const ye={...he,data:te,url:D};return await this.request(ye)}}var oQ,cQ;!function(D){D.MISSING_PARAMS="MISSING_PARAMS",D.WEB3_PROVIDER_ERROR="WEB3_PROVIDER_ERROR",D.PROVIDER_ERROR="PROVIDER_ERROR",D.DEFAULT_PROVIDER_ERROR="DEFAULT_PROVIDER_ERROR",D.CONNECT_PROVIDER_ERROR="CONNECT_PROVIDER_ERROR",D.GET_BALANCE_ERROR="GET_BALANCE_ERROR",D.GET_INDEXER_BALANCE_ERROR="GET_INDEXER_BALANCE_ERROR",D.GET_ERC20_INFO_ERROR="GET_ERC20_INFO_ERROR",D.GET_ERC20_BALANCE_ERROR="GET_ERC20_BALANCE_ERROR",D.GET_ERC721_BALANCE_ERROR="GET_ERC721_BALANCE_ERROR",D.GET_NETWORK_INFO_ERROR="GET_NETWORK_INFO_ERROR",D.METAMASK_PROVIDER_ERROR="METAMASK_PROVIDER_ERROR",D.CHAIN_NOT_SUPPORTED_ERROR="CHAIN_NOT_SUPPORTED_ERROR",D.PROVIDER_REQUEST_MISSING_ERROR="PROVIDER_REQUEST_MISSING_ERROR",D.PROVIDER_REQUEST_FAILED_ERROR="PROVIDER_REQUEST_FAILED_ERROR",D.USER_REJECTED_REQUEST_ERROR="USER_REJECTED_REQUEST_ERROR",D.TRANSACTION_FAILED="TRANSACTION_FAILED",D.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",D.UNPREDICTABLE_GAS_LIMIT="UNPREDICTABLE_GAS_LIMIT",D.INVALID_GAS_ESTIMATE_TYPE="INVALID_GAS_ESTIMATE_TYPE",D.UNSUPPORTED_TOKEN_TYPE_ERROR="UNSUPPORTED_TOKEN_TYPE_ERROR",D.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR="UNSUPPORTED_BALANCE_REQUIREMENT_ERROR",D.GET_ORDER_LISTING_ERROR="GET_ORDER_LISTING_ERROR",D.CANCEL_ORDER_LISTING_ERROR="CANCEL_ORDER_LISTING_ERROR",D.PREPARE_ORDER_LISTING_ERROR="PREPARE_ORDER_LISTING_ERROR",D.CREATE_ORDER_LISTING_ERROR="CREATE_ORDER_LISTING_ERROR",D.FULFILL_ORDER_LISTING_ERROR="FULFILL_ORDER_LISTING_ERROR",D.SWITCH_NETWORK_UNSUPPORTED="SWITCH_NETWORK_UNSUPPORTED",D.GET_ERC20_ALLOWANCE_ERROR="GET_ERC20_ALLOWANCE_ERROR",D.GET_ERC721_ALLOWANCE_ERROR="GET_ERC721_ALLOWANCE_ERROR",D.GET_ERC1155_ALLOWANCE_ERROR="GET_ERC1155_ALLOWANCE_ERROR",D.EXECUTE_APPROVAL_TRANSACTION_ERROR="EXECUTE_APPROVAL_TRANSACTION_ERROR",D.EXECUTE_FULFILLMENT_TRANSACTION_ERROR="EXECUTE_FULFILLMENT_TRANSACTION_ERROR",D.SIGN_MESSAGE_ERROR="SIGN_MESSAGE_ERROR",D.BRIDGE_GAS_ESTIMATE_ERROR="BRIDGE_GAS_ESTIMATE_ERROR",D.ORDER_FEE_ERROR="ORDER_FEE_ERROR",D.ITEM_REQUIREMENTS_ERROR="ITEM_REQUIREMENTS_ERROR",D.API_ERROR="API_ERROR",D.ORDER_EXPIRED_ERROR="ORDER_EXPIRED_ERROR",D.WIDGETS_SCRIPT_LOAD_ERROR="WIDGETS_SCRIPT_LOAD_ERROR",D.APPROVAL_TRANSACTION_FAILED="APPROVAL_TRANSACTION_FAILED"}(oQ||(oQ={}));class CheckoutError extends Error{message;type;data;constructor(D,te,he){super(D),this.message=D,this.type=te,this.data=he}}!function(D){D.REJECTED_SWITCH_AFTER_ADDING_NETWORK="REJECTED_SWITCH_AFTER_ADDING_NETWORK"}(cQ||(cQ={}));const withCheckoutError=async(D,te)=>{try{return await D()}catch(D){const he=`${D.message}`||"UnknownError",ye=te.message?`[${te.type}]:${te.message}. Cause:${he}`:`[${te.type}] Cause:${he}`;if(D instanceof CheckoutError)throw new CheckoutError(ye,te.type,{...te.data,innerErrorType:D.type,...D.data});throw new CheckoutError(ye,te.type,{...te.data})}};var dQ,uQ,fQ;!function(D){D[D.IMTBL_ZKEVM_MAINNET=13371]="IMTBL_ZKEVM_MAINNET",D[D.IMTBL_ZKEVM_TESTNET=13473]="IMTBL_ZKEVM_TESTNET",D[D.IMTBL_ZKEVM_DEVNET=15003]="IMTBL_ZKEVM_DEVNET",D[D.ETHEREUM=1]="ETHEREUM",D[D.SEPOLIA=11155111]="SEPOLIA"}(dQ||(dQ={})),function(D){D.ETHEREUM="Ethereum",D.SEPOLIA="Sepolia",D.IMTBL_ZKEVM_TESTNET="Immutable zkEVM Testnet",D.IMTBL_ZKEVM_DEVNET="Immutable zkEVM Dev",D.IMTBL_ZKEVM_MAINNET="Immutable zkEVM"}(uQ||(uQ={})),function(D){D.ETHEREUM="ethereum",D.SEPOLIA="sepolia",D.IMTBL_ZKEVM_MAINNET="imtbl-zkevm-mainnet",D.IMTBL_ZKEVM_TESTNET="imtbl-zkevm-testnet",D.IMTBL_ZKEVM_DEVNET="imtbl-zkevm-devnet"}(fQ||(fQ={}));const lQ="development",pQ=18,hQ="native",yQ={name:"IMX",symbol:"IMX",decimals:pQ,address:hQ},mQ={name:"tIMX",symbol:"tIMX",decimals:pQ,address:hQ},bQ={[lQ]:"https://api.dev.immutable.com",[ra.SANDBOX]:"https://api.sandbox.immutable.com",[ra.PRODUCTION]:"https://api.immutable.com"},gQ={[lQ]:"https://checkout-api.dev.immutable.com",[ra.SANDBOX]:"https://checkout-api.sandbox.immutable.com",[ra.PRODUCTION]:"https://checkout-api.immutable.com"},vQ={[ra.SANDBOX]:"https://global-stg.transak.com",[ra.PRODUCTION]:"https://global.transak.com/"},wQ=new Map([[dQ.ETHEREUM,{chainIdHex:`0x${dQ.ETHEREUM.toString(16)}`,chainName:uQ.ETHEREUM,rpcUrls:["https://checkout-api.immutable.com/v1/rpc/eth-mainnet"],nativeCurrency:{name:uQ.ETHEREUM,symbol:"ETH",decimals:18},blockExplorerUrls:["https://etherscan.io/"]}],[dQ.IMTBL_ZKEVM_MAINNET,{chainIdHex:`0x${dQ.IMTBL_ZKEVM_MAINNET.toString(16)}`,chainName:uQ.IMTBL_ZKEVM_MAINNET,rpcUrls:["https://rpc.immutable.com"],nativeCurrency:yQ}]]),_Q=new Map([[dQ.SEPOLIA,{chainIdHex:`0x${dQ.SEPOLIA.toString(16)}`,chainName:uQ.SEPOLIA,rpcUrls:["https://checkout-api.sandbox.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[dQ.IMTBL_ZKEVM_TESTNET,{chainIdHex:`0x${dQ.IMTBL_ZKEVM_TESTNET.toString(16)}`,chainName:uQ.IMTBL_ZKEVM_TESTNET,rpcUrls:["https://rpc.testnet.immutable.com"],nativeCurrency:mQ}]]),TQ=new Map([[dQ.SEPOLIA,{chainIdHex:`0x${dQ.SEPOLIA.toString(16)}`,chainName:uQ.SEPOLIA,rpcUrls:["https://checkout-api.dev.immutable.com/v1/rpc/eth-sepolia"],nativeCurrency:{name:"Sep Eth",symbol:"ETH",decimals:18},blockExplorerUrls:["https://sepolia.etherscan.io/"]}],[dQ.IMTBL_ZKEVM_DEVNET,{chainIdHex:`0x${dQ.IMTBL_ZKEVM_DEVNET.toString(16)}`,chainName:uQ.IMTBL_ZKEVM_DEVNET,rpcUrls:["https://rpc.dev.immutable.com"],nativeCurrency:yQ}]]),AQ={[dQ.IMTBL_ZKEVM_TESTNET]:{url:"https://explorer.testnet.immutable.com",nativeToken:_Q.get(dQ.IMTBL_ZKEVM_TESTNET).nativeCurrency},[dQ.IMTBL_ZKEVM_MAINNET]:{url:"https://explorer.immutable.com",nativeToken:wQ.get(dQ.IMTBL_ZKEVM_MAINNET).nativeCurrency},[dQ.SEPOLIA]:{url:"https://eth-sepolia.blockscout.com",nativeToken:_Q.get(dQ.SEPOLIA).nativeCurrency},[dQ.ETHEREUM]:{url:"https://eth.blockscout.com/",nativeToken:wQ.get(dQ.ETHEREUM).nativeCurrency}},EQ=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"}],PQ=[{constant:!1,inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"approve",outputs:[],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"getApproved",outputs:[{internalType:"address",name:"",type:"address"}],payable:!1,stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"tokenId",type:"uint256"}],name:"ownerOf",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}],SQ=[{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"address",name:"operator",type:"address"}],name:"isApprovedForAll",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"operator",type:"address"},{internalType:"bool",name:"approved",type:"bool"}],name:"setApprovalForAll",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"id",type:"uint256"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],CQ={maxFeePerGas:Li.from(15e9),maxPriorityFeePerGas:Li.from(1e10)},availabilityService=(D,te)=>({checkDexAvailability:async()=>{let he;try{he=await Kt.post(`${D?bQ[lQ]:te?bQ[ra.PRODUCTION]:bQ[ra.SANDBOX]}/v1/availability/checkout/swap`)}catch(D){if(he=D.response,403===he.status)return!1;throw new CheckoutError(`Error fetching from api: ${he.status} ${he.statusText}`,oQ.API_ERROR,{error:D})}return!0}});var IQ,RQ,kQ,OQ,xQ,NQ,MQ,BQ;!function(D){D.TRANSAK="201811419111"}(IQ||(IQ={})),function(D){D.BRIDGE_TO_L2="BRIDGE_TO_L2",D.SWAP="SWAP"}(RQ||(RQ={})),function(D){D.ALL="all"}(kQ||(kQ={})),function(D){D.ALL="all",D.SWAP="swap",D.BRIDGE="bridge",D.ONRAMP="onramp"}(OQ||(OQ={})),function(D){D.CHECK_CONNECTION="eth_accounts",D.CONNECT="eth_requestAccounts",D.ADD_NETWORK="wallet_addEthereumChain",D.SWITCH_NETWORK="wallet_switchEthereumChain",D.GET_CHAINID="eth_chainId",D.REQUEST_PERMISSIONS="wallet_requestPermissions"}(xQ||(xQ={})),function(D){D.ALL="all"}(NQ||(NQ={})),function(D){D.PASSPORT="passport",D.METAMASK="metamask",D.WALLETCONNECT="walletconnect"}(MQ||(MQ={})),function(D){D.PASSPORT="com.immutable.passport",D.METAMASK="io.metamask",D.WALLETCONNECT="walletconnect"}(BQ||(BQ={}));const FQ={allowMistmatchedChainId:!1,allowUnsupportedProvider:!1};var DQ,LQ,UQ,$Q,qQ,GQ,jQ,HQ;!function(D){D.SUCCESS="SUCCESS",D.FAILED="FAILED",D.INSUFFICIENT_FUNDS="INSUFFICIENT_FUNDS",D.FULFILLMENTS_UNSETTLED="FULFILLMENTS_UNSETTLED"}(DQ||(DQ={})),function(D){D.NATIVE="NATIVE",D.ERC20="ERC20",D.ERC721="ERC721",D.ERC1155="ERC1155"}(LQ||(LQ={})),function(D){D.TRANSACTION="TRANSACTION",D.GAS="GAS"}(UQ||(UQ={})),function(D){D.NATIVE="NATIVE",D.ERC20="ERC20"}($Q||($Q={})),function(D){D.ROUTES_FOUND="ROUTES_FOUND",D.NO_ROUTES_FOUND="NO_ROUTES_FOUND",D.NO_ROUTE_OPTIONS="NO_ROUTE_OPTIONS"}(qQ||(qQ={})),function(D){D.GAS="GAS",D.BRIDGE_FEE="BRIDGE_FEE",D.SWAP_FEE="SWAP_FEE",D.IMMUTABLE_FEE="IMMUTABLE_FEE"}(GQ||(GQ={})),function(D){D.BRIDGE="BRIDGE",D.SWAP="SWAP",D.ONRAMP="ONRAMP"}(jQ||(jQ={})),function(D){D.ONRAMP="onramp"}(HQ||(HQ={}));const parseChainId=D=>{if("number"==typeof D)return D;if("string"==typeof D&&!Number.isNaN(Number(D)))return D.startsWith("0x")?parseInt(D,16):Number(D);throw new CheckoutError("Invalid chainId",oQ.WEB3_PROVIDER_ERROR)};async function getUnderlyingChainId(D){const te=D.provider?.chainId;return te?parseChainId(te):async function requestChainId(D){if(!D.provider?.request)throw new CheckoutError("Parsed provider is not a valid Web3Provider",oQ.WEB3_PROVIDER_ERROR);const te=await D.provider.request({method:xQ.GET_CHAINID,params:[]});return parseChainId(te)}(D)}async function addNetworkToWallet(D,te,he){if(te.provider?.request){const ye=D.get(he),be={chainId:ye?.chainIdHex,chainName:ye?.chainName,rpcUrls:ye?.rpcUrls,nativeCurrency:ye?.nativeCurrency,blockExplorerUrls:ye?.blockExplorerUrls};return await te.provider.request({method:xQ.ADD_NETWORK,params:[be]})}return Promise.reject("Provider does not support request method")}async function getNetworkAllowList(D,{type:te=kQ.ALL,exclude:he}){const{networkMap:ye}=D,be=await D.remote.getConfig("allowedNetworks");be||console.warn("No allowed networks configured");const ve=(be||[]).filter((D=>{const ye=te===kQ.ALL,be=!(he||[]).map((D=>D.chainId)).includes(D.chainId);return ye&&be})),we=[];return ve.forEach((D=>{const te=ye.get(D.chainId);te&&we.push({name:te.chainName,chainId:parseInt(te.chainIdHex,16),nativeCurrency:te.nativeCurrency,isSupported:!0})})),{networks:we}}async function getNetworkInfo(D,te){const{networkMap:he}=D;return withCheckoutError((async()=>{try{const D=await te.getNetwork();if(Array.from(he.keys()).includes(D.chainId)){const te=he.get(D.chainId);return{name:te.chainName,chainId:parseInt(te.chainIdHex,16),nativeCurrency:te.nativeCurrency,isSupported:!0}}return{chainId:D.chainId,name:D.name,isSupported:!1}}catch(D){const ye=await getUnderlyingChainId(te);return{chainId:ye,isSupported:Array.from(he.keys()).includes(ye)}}}),{type:oQ.GET_NETWORK_INFO_ERROR})}async function switchWalletNetwork(D,te,he){const{networkMap:ye}=D;if(!(await getNetworkAllowList(D,{type:kQ.ALL})).networks.some((D=>D.chainId===he)))throw new CheckoutError(`Chain:${he} is not a supported chain`,oQ.CHAIN_NOT_SUPPORTED_ERROR);if(te.provider?.isPassport)throw new CheckoutError("Switching networks with Passport provider is not supported",oQ.SWITCH_NETWORK_UNSUPPORTED);try{await async function switchNetworkInWallet(D,te,he){if(te.provider?.request)return await te.provider.request({method:xQ.SWITCH_NETWORK,params:[{chainId:D.get(he)?.chainIdHex}]})}(ye,te,he)}catch(D){if(console.error(D),4902!==D.code)throw new CheckoutError("User cancelled switch network request",oQ.USER_REJECTED_REQUEST_ERROR);try{await addNetworkToWallet(ye,te,he)}catch(D){throw new CheckoutError("User cancelled add network request",oQ.USER_REJECTED_REQUEST_ERROR,{error:D})}}const be=new Web3Provider(te.provider);if((await be.getNetwork()).chainId!==he)throw new CheckoutError("User cancelled switch network request",oQ.USER_REJECTED_REQUEST_ERROR);return{network:await getNetworkInfo(D,be),provider:be}}class RemoteConfigFetcher{httpClient;isDevelopment;isProduction;configCache;version="v1";constructor(D,te){this.isDevelopment=te.isDevelopment,this.isProduction=te.isProduction,this.httpClient=D}getEndpoint=()=>this.isDevelopment?gQ[lQ]:this.isProduction?gQ[ra.PRODUCTION]:gQ[ra.SANDBOX];parseResponse(D){let te=D.data;if(D.data&&"object"!=typeof D.data)try{te=JSON.parse(D.data)}catch(D){throw new CheckoutError("Invalid configuration",oQ.API_ERROR,{error:D})}return te}async loadConfig(){if(this.configCache)return this.configCache;let D;try{D=await this.httpClient.get(`${this.getEndpoint()}/${this.version}/config`)}catch(D){throw new CheckoutError(`Error: ${D.message}`,oQ.API_ERROR,{error:D})}return this.configCache=this.parseResponse(D),this.configCache}async getConfig(D){const te=await this.loadConfig();if(te)return D?te[D]:te}getHttpClient=()=>this.httpClient}class TokensFetcher{httpClient;remoteConfig;isDevelopment;isProduction;tokensCache;constructor(D,te,he){this.isDevelopment=he.isDevelopment,this.isProduction=he.isProduction,this.httpClient=D,this.remoteConfig=te}getBaseUrl=()=>this.isDevelopment?bQ[lQ]:this.isProduction?bQ[ra.PRODUCTION]:bQ[ra.SANDBOX];getChainSlug=()=>this.isDevelopment?fQ.IMTBL_ZKEVM_DEVNET:this.isProduction?fQ.IMTBL_ZKEVM_MAINNET:fQ.IMTBL_ZKEVM_TESTNET;async loadTokens(){if(this.tokensCache)return this.tokensCache;let D;try{D=await this.httpClient.get(`${this.getBaseUrl()}/v1/chains/${this.getChainSlug()}/tokens?verification_status=verified&is_canonical=true`)}catch(D){throw new CheckoutError(`Error: ${D.message}`,oQ.API_ERROR,{error:D})}const te=this.parseResponse(D);return this.tokensCache=await this.getMappingsForTokensResponse(te?.result||[]),this.tokensCache}async getChainTokensConfig(){return await this.loadTokens()??{}}async getTokensConfig(D){const te=await this.loadTokens();return te&&te[D]?te[D]??[]:[]}async getMappingsForTokensResponse(D){const te={},he=await this.fetchIMXTokenMappings();return Object.keys(he).forEach((D=>{const ye=parseInt(D,10);te[ye]=[],te[ye]?.push({address:he[D],decimals:18,name:"IMX",symbol:"IMX"})})),D.forEach((D=>{const he=parseInt(D.chain.id.split("eip155:").pop()||"",10);if(!D.symbol||!D.decimals)return;te[he]||(te[he]=[]);const ye={address:D.contract_address.toLowerCase(),decimals:D.decimals,name:D.name,symbol:D.symbol,icon:D.image_url??void 0};te[he]?.push(ye);const be=parseInt(D.root_chain_id?.split("eip155:").pop()||"",10);let ve=D.root_contract_address?.toLowerCase();be&&ve&&(te[be]||(te[be]=[]),"0x0000000000000000000000000000000000000eee"===ve&&(ve="native"),te[be]?.push({...ye,address:ve}))})),te}parseResponse(D){let te=D.data;if(D.data&&"object"!=typeof D.data)try{te=JSON.parse(D.data)}catch(D){throw new CheckoutError("Invalid token data",oQ.API_ERROR,{error:D})}return te}async fetchIMXTokenMappings(){return await this.remoteConfig.getConfig("imxAddressMapping")}}class CheckoutConfigurationError extends Error{message;constructor(D){super(D),this.message=D}}const getL1ChainId=D=>D.isProduction?dQ.ETHEREUM:dQ.SEPOLIA,getL2ChainId=D=>D.isDevelopment?dQ.IMTBL_ZKEVM_DEVNET:D.isProduction?dQ.IMTBL_ZKEVM_MAINNET:dQ.IMTBL_ZKEVM_TESTNET;class CheckoutConfiguration{isDevelopment=!1;isProduction;isOnRampEnabled;isSwapEnabled;isBridgeEnabled;remote;tokens;environment;networkMap;publishableKey;overrides;constructor(D,te){if(!Object.values(ra).includes(D.baseConfig.environment))throw new CheckoutConfigurationError("Invalid checkout configuration of environment");var he;this.environment=D.baseConfig.environment,this.isProduction=!this.isDevelopment&&this.environment===ra.PRODUCTION,this.isOnRampEnabled=D.onRamp?.enable??true,this.isSwapEnabled=D.swap?.enable??true,this.isBridgeEnabled=D.bridge?.enable??true,this.publishableKey=D.publishableKey??"<no-publishable-key>",this.networkMap=(he=this.isProduction,this.isDevelopment?TQ:he?wQ:_Q),this.remote=new RemoteConfigFetcher(te,{isDevelopment:this.isDevelopment,isProduction:this.isProduction}),this.tokens=new TokensFetcher(te,this.remote,{isDevelopment:this.isDevelopment,isProduction:this.isProduction}),this.overrides=D.overrides??{}}get sdkVersion(){return"1.77.7"}}const isMatchingAddress=(D="",te="")=>D.toLowerCase()===te.toLowerCase(),formatSmartCheckoutAmount=(D,te=6)=>{if(-1===D.indexOf("."))return D;const he=((D,te)=>{const he=D.indexOf("."),ye=D.substring(he+te+1);if(ye&&parseFloat(ye)>=1){const ye=D.substring(0,he+te+1),be=1/10**te;return(parseFloat(ye)+be).toString()}return parseFloat(D.substring(0,he+te+1)).toString()})(D,te);return he},getTokenAllowList=async(D,{type:te=OQ.ALL,chainId:he,exclude:ye})=>{let be,ve,we=[];const _e=he??getL1ChainId(D),Pe=getL2ChainId(D);switch(te){case OQ.SWAP:we=await D.tokens.getTokensConfig(Pe),ve=((await D.remote.getConfig("dex"))?.blocklist||[]).map((D=>D.address.toLowerCase())),we=we.filter((D=>D.address&&!ve.includes(D.address)));break;case OQ.ONRAMP:be=await D.remote.getConfig("onramp"),be||(we=[]),we=be[IQ.TRANSAK]?.tokens||[];break;case OQ.BRIDGE:case OQ.ALL:default:we=await D.tokens.getTokensConfig(_e)}return ye&&0!==ye?.length?{tokens:we.filter((D=>!ye.map((D=>D.address)).includes(D.address||"")))}:{tokens:we}},isNativeToken=D=>!D||isMatchingAddress(D,hQ);async function getERC20TokenInfo(D,te){return await withCheckoutError((async()=>{const he=new fu(te,JSON.stringify(EQ),D),[ye,be,ve]=await Promise.all([he.name(),he.symbol(),he.decimals()]);return{name:ye,symbol:be,decimals:ve,address:te}}),{type:oQ.GET_ERC20_INFO_ERROR})}class Blockscout{url;nativeToken;ttl;chainId;cacheMap;httpClient;setCache(D,te){this.cacheMap[D]={data:te,ttl:(new Date).getTime()+1e3*this.ttl}}getCache(D){const te=this.cacheMap[D];return!te||te.ttl<=(new Date).getTime()?null:te.data}constructor(D,te,he){this.httpClient=D,this.chainId=te,this.url=AQ[this.chainId].url;const ye=AQ[this.chainId].nativeToken;this.nativeToken={address:ye.address??"",decimals:ye.decimals.toString(),name:ye.name,symbol:ye.symbol},this.cacheMap={},this.ttl=void 0!==he?he:5}static isChainSupported=D=>Boolean(AQ[D]);static isBlockscoutError=D=>"code"in D;async getTokensByWalletAddress(D){try{let te=`${this.url}/api/v2/addresses/${D.walletAddress}/tokens?type=${D.tokenType}`;D.nextPage&&(te+=`&${new URLSearchParams(D.nextPage)}`);const he=this.getCache(te);if(he)return Promise.resolve(he);const ye=await this.httpClient.get(te),be={items:ye.data?.items?.filter((D=>D.token.address&&D.token.address!==this.nativeToken.address)),next_page_params:ye.data?.next_page_params};return this.setCache(te,be),Promise.resolve(be)}catch(D){let te=Jr.InternalServerError,he="InternalServerError";return Kt.isAxiosError(D)&&(te=D.response?.status||te,he=D.message),Promise.reject({code:te,message:he})}}async getNativeTokenByWalletAddress(D){try{const te=`${this.url}/api/v2/addresses/${D.walletAddress}`,he=this.getCache(te);if(he)return Promise.resolve(he);const ye=await this.httpClient.get(te),be={token:this.nativeToken,value:ye.data.coin_balance};return this.setCache(te,be),Promise.resolve(be)}catch(D){let te=Jr.InternalServerError,he="InternalServerError";return Kt.isAxiosError(D)&&(te=D.response?.status||te,he=D.message),Promise.reject({code:te,message:he})}}}var zQ;!function(D){D.ERC20="ERC-20"}(zQ||(zQ={}));const debugLogger=(D,te,he)=>{D.isProduction||console.info(te,he)},measureAsyncExecution=async(D,te,he)=>{const ye=performance.now(),be=await he,ve=performance.now();return debugLogger(D,te,(ve-ye)/1e3),be},getBalance=async(D,te,he)=>await withCheckoutError((async()=>{const ye=await getNetworkInfo(D,te);if(!ye.isSupported)throw new CheckoutError(`Chain:${ye.chainId} is not a supported chain`,oQ.CHAIN_NOT_SUPPORTED_ERROR,{chainName:ye.name});const be=await te.getBalance(he);return{balance:be,formattedBalance:formatUnits(be,ye.nativeCurrency.decimals),token:ye.nativeCurrency}}),{type:oQ.GET_BALANCE_ERROR});async function getERC20Balance(D,te,he){return await withCheckoutError((async()=>{const ye=new fu(he,JSON.stringify(EQ),D);return Promise.all([getERC20TokenInfo(D,he),ye.balanceOf(te)]).then((([D,te])=>({balance:te,formattedBalance:formatUnits(te,D.decimals),token:{name:D.name,symbol:D.symbol,decimals:D.decimals,address:he}})))}),{type:oQ.GET_ERC20_BALANCE_ERROR})}const WQ=new Map,resetBlockscoutClientMap=()=>WQ.clear(),getTokenBalances$1=async(D,te,he,ye,be)=>{if(!te)throw new CheckoutError("indexer is disabled for this chain, you must provide a provider.",oQ.MISSING_PARAMS);let ve=he;return ve||(ve=await(te?.getSigner().getAddress())),await measureAsyncExecution(D,`Time to fetch balances using RPC for ${ye}`,(async(D,te,he,ye)=>{const be=[];return ye.forEach((ye=>{!ye.address||isMatchingAddress(ye.address,hQ)?be.push(getBalance(D,te,he)):be.push(getERC20Balance(te,he,ye.address))})),{balances:(await Promise.allSettled(be)).filter((D=>"fulfilled"===D.status)).map((D=>{const te=D,{token:he}=te.value;return he.address&&!isMatchingAddress(he.address,hQ)||(te.value.token.address=hQ),te.value}))}})(D,te,ve,be))},getAllBalances=async(D,te,he,ye,be=!1)=>{if(!he&&!te)throw new CheckoutError("both walletAddress and provider are missing. At least one must be provided.",oQ.MISSING_PARAMS);if(!D.networkMap.get(ye))throw new CheckoutError(`chain ID ${ye} not supported by the environment`,oQ.CHAIN_NOT_SUPPORTED_ERROR);const{tokens:ve}=await getTokenAllowList(D,{type:OQ.ALL,chainId:ye});if(be&&resetBlockscoutClientMap(),Blockscout.isChainSupported(ye)){const be=he??await(te?.getSigner().getAddress());try{return await measureAsyncExecution(D,`Time to fetch balances using blockscout for ${ye}`,(async(D,te,he,ye)=>{const be=void 0!==ye,ve=Object.assign({},...(ye??[]).map((D=>({[D.address?.toLowerCase()||hQ]:D}))));let we=WQ.get(he);if(!we){const te=D.remote.getHttpClient();we=new Blockscout(te,he),WQ.set(he,we)}const _e=[],Pe=zQ.ERC20;await Promise.all([(async D=>{let he;try{do{he=await D.getTokensByWalletAddress({walletAddress:te,tokenType:Pe,nextPage:he?.next_page_params}),_e.push(...he.items)}while(he.next_page_params)}catch(D){if(D?.code!==Jr.NotFound)throw new CheckoutError(D.message||"InternalServerError | getTokensByWalletAddress",oQ.GET_INDEXER_BALANCE_ERROR,{error:D})}})(we),(async D=>{try{const he=await D.getNativeTokenByWalletAddress({walletAddress:te});he.token.address||=hQ,_e.push(he)}catch(D){if(D?.code!==Jr.NotFound)throw new CheckoutError(D.message||"InternalServerError | getNativeTokenByWalletAddress",oQ.GET_INDEXER_BALANCE_ERROR,{error:D})}})(we)]);const Ie=[];return _e.forEach((D=>{const te=ve[D.token.address.toLowerCase()];if(be&&!te)return;const he=D.token||{};if(null==D.value)return;const ye=Li.from(D.value);let we=parseInt(he.decimals,10);Number.isNaN(we)&&(we=pQ);const _e=he.icon_url??te.icon,Pe={...he,decimals:we,icon:_e},Re=formatUnits(D.value,Pe.decimals);Ie.push({balance:ye,formattedBalance:Re,token:Pe})})),{balances:Ie}})(D,be,ye,ve))}catch(be){if(be.type===oQ.GET_INDEXER_BALANCE_ERROR&&be.data?.error?.code===Jr.TooManyRequests)return getTokenBalances$1(D,te,he,ye,ve);throw be}}return getTokenBalances$1(D,te,he,ye,ve)};class FiatRampService{config;constructor(D){this.config=D}async feeEstimate(){const D=await this.config.remote.getConfig("onramp");return D[IQ.TRANSAK]?.fees}async createWidgetUrl(D){return await this.getTransakWidgetUrl(D)}async getTransakWidgetUrl(D){const te=await this.config.remote.getConfig("onramp"),he=vQ[this.config.environment];let ye={apiKey:te[IQ.TRANSAK].publishableApiKey,network:"immutablezkevm",defaultPaymentMethod:"credit_debit_card",disablePaymentMethods:"",productsAvailed:"buy",exchangeScreenTitle:"Buy",themeColor:"0D0D0D",defaultCryptoCurrency:D.tokenSymbol||"IMX"};return D.isPassport&&D.email&&(ye={...ye,email:encodeURIComponent(D.email),isAutoFillUserData:!0,disableWalletAddressForm:!0}),ye=D.tokenAmount&&D.tokenSymbol?{...ye,defaultCryptoAmount:D.tokenAmount,cryptoCurrencyCode:D.tokenSymbol}:{...ye,defaultFiatAmount:50,defaultFiatCurrency:"usd"},D.walletAddress&&(ye={...ye,walletAddress:D.walletAddress}),D.allowedTokens&&(ye={...ye,cryptoCurrencyList:D.allowedTokens?.join(",").toLowerCase()}),`${he}?${new URLSearchParams(ye).toString()}`}}function createBridgeInstance(D,te,he,ye){const be=he.get(D),ve=he.get(te);if(!be)throw new CheckoutError(`Chain:${D} is not a supported chain`,oQ.CHAIN_NOT_SUPPORTED_ERROR);if(!ve)throw new CheckoutError(`Chain:${te} is not a supported chain`,oQ.CHAIN_NOT_SUPPORTED_ERROR);let we=YH;ye.isDevelopment&&(we=ZH),ye.isProduction&&(we=ez);const _e=new BridgeConfiguration({baseConfig:new ImmutableConfiguration({environment:ye.environment}),bridgeInstance:we,rootProvider:be,childProvider:ve});return new TokenBridge(_e)}async function createExchangeInstance(D,te){const he=await te.remote.getConfig("dex");return new Exchange({chainId:D,baseConfig:new ImmutableConfiguration({environment:te.environment}),overrides:he?.overrides,secondaryFees:he?.secondaryFees})}function createOrderbookInstance(D){return new Orderbook({baseConfig:{environment:D.environment}})}function createBlockchainDataInstance(D){return new BlockchainData({baseConfig:{environment:D.environment}})}const VQ="0x0000000000000000000000000000000000000001",KQ=18;async function bridgeToL2GasEstimator(D,te){const he=getL1ChainId(te),ye=getL2ChainId(te);if(!D.get(he))throw new Error(`Missing JsonRpcProvider for chain id: ${he}`);try{const be=createBridgeInstance(he,ye,D,te),ve=await async function getBridgeFeeEstimate$1(D,te,he,ye){const be=te===getL1ChainId(ye)?FH.DEPOSIT:FH.WITHDRAW;return await D.getFee({action:be,gasMultiplier:"auto",sourceChainId:te.toString(),destinationChainId:he.toString(),token:hQ.toUpperCase(),amount:Li.from(0)})}(be,he,ye,te);return{gasEstimateType:RQ.BRIDGE_TO_L2,fees:ve,token:te.networkMap.get(he)?.nativeCurrency}}catch{return{gasEstimateType:RQ.BRIDGE_TO_L2,fees:{sourceChainGas:Li.from(0),approvalFee:Li.from(0),bridgeFee:Li.from(0),imtblFee:Li.from(0),totalFees:Li.from(0)},token:te.networkMap.get(he)?.nativeCurrency}}}async function gasEstimator(D,te,he){switch(D.gasEstimateType){case RQ.BRIDGE_TO_L2:return await bridgeToL2GasEstimator(te,he);case RQ.SWAP:return await async function swapGasEstimator(D){const te=getL2ChainId(D),he=await D.remote.getConfig("gasEstimateTokens"),{inAddress:ye,outAddress:be}=he[te].swapAddresses;try{const he=await createExchangeInstance(te,D),{swap:ve}=await he.getUnsignedSwapTxFromAmountIn(VQ,ye,be,Li.from(parseUnits$1("1",KQ)));return ve.gasFeeEstimate?{gasEstimateType:RQ.SWAP,fees:{totalFees:ve.gasFeeEstimate.value?Li.from(ve.gasFeeEstimate.value):void 0,token:{address:ve.gasFeeEstimate.token.address,symbol:ve.gasFeeEstimate.token.symbol??"",name:ve.gasFeeEstimate.token.name??"",decimals:ve.gasFeeEstimate.token.decimals??KQ}}}:{gasEstimateType:RQ.SWAP,fees:{}}}catch{return{gasEstimateType:RQ.SWAP,fees:{}}}}(he);default:throw new CheckoutError("Invalid type provided for gasEstimateType",oQ.INVALID_GAS_ESTIMATE_TYPE)}}function createStore(){const D=new Set;let te=[];const request=()=>function requestProviders(D){if("undefined"==typeof window)return;const handler=te=>D(te.detail);return window.addEventListener("eip6963:announceProvider",handler),window.dispatchEvent(new CustomEvent("eip6963:requestProvider")),()=>window.removeEventListener("eip6963:announceProvider",handler)}((he=>{te.some((({info:D})=>D.uuid===he.info.uuid))||(te=[...te,he],D.forEach((D=>D(te,{added:[he]}))))}));let he=request();return{_listeners:()=>D,clear(){D.forEach((D=>D([],{removed:[...te]}))),te=[]},destroy(){this.clear(),D.clear(),he?.()},findProvider:({rdns:D})=>te.find((te=>te.info.rdns===D)),getProviders:()=>te,reset(){this.clear(),he?.(),he=request()},subscribe:(he,{emitImmediately:ye}={})=>(D.add(he),ye&&he(te,{added:te}),()=>D.delete(he))}}class InjectedProvidersManager{static instance;store;resetTimeout;isInit=!1;constructor(){this.store=createStore(),this.store.reset()}static getInstance(){return InjectedProvidersManager.instance||(InjectedProvidersManager.instance=new InjectedProvidersManager),InjectedProvidersManager.instance}findProvider(D){return this.store.findProvider(D)}getProviders(){return this.store.getProviders()}subscribe(D){return this.store.subscribe(D)}clear(){this.store.clear()}reset(){clearTimeout(this.resetTimeout),this.resetTimeout=setTimeout((()=>{this.store.reset()}),200)}initialise(){this.isInit||(this.isInit=!0,this.reset())}requestProviders(){window.dispatchEvent(new CustomEvent("eip6963:requestProvider"))}destroy(){this.store.destroy()}}const JQ={name:"MetaMask",rdns:"io.metamask",icon:"data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjMzIiB2aWV3Qm94PSIwIDAgMzUgMzMiIHdpZHRoPSIzNSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iLjI1Ij48cGF0aCBkPSJtMzIuOTU4MiAxLTEzLjEzNDEgOS43MTgzIDIuNDQyNC01LjcyNzMxeiIgZmlsbD0iI2UxNzcyNiIgc3Ryb2tlPSIjZTE3NzI2Ii8+PGcgZmlsbD0iI2UyNzYyNSIgc3Ryb2tlPSIjZTI3NjI1Ij48cGF0aCBkPSJtMi42NjI5NiAxIDEzLjAxNzE0IDkuODA5LTIuMzI1NC01LjgxODAyeiIvPjxwYXRoIGQ9Im0yOC4yMjk1IDIzLjUzMzUtMy40OTQ3IDUuMzM4NiA3LjQ4MjkgMi4wNjAzIDIuMTQzNi03LjI4MjN6Ii8+PHBhdGggZD0ibTEuMjcyODEgMjMuNjUwMSAyLjEzMDU1IDcuMjgyMyA3LjQ2OTk0LTIuMDYwMy0zLjQ4MTY2LTUuMzM4NnoiLz48cGF0aCBkPSJtMTAuNDcwNiAxNC41MTQ5LTIuMDc4NiAzLjEzNTggNy40MDUuMzM2OS0uMjQ2OS03Ljk2OXoiLz48cGF0aCBkPSJtMjUuMTUwNSAxNC41MTQ5LTUuMTU3NS00LjU4NzA0LS4xNjg4IDguMDU5NzQgNy40MDQ5LS4zMzY5eiIvPjxwYXRoIGQ9Im0xMC44NzMzIDI4Ljg3MjEgNC40ODE5LTIuMTYzOS0zLjg1ODMtMy4wMDYyeiIvPjxwYXRoIGQ9Im0yMC4yNjU5IDI2LjcwODIgNC40Njg5IDIuMTYzOS0uNjEwNS01LjE3MDF6Ii8+PC9nPjxwYXRoIGQ9Im0yNC43MzQ4IDI4Ljg3MjEtNC40NjktMi4xNjM5LjM2MzggMi45MDI1LS4wMzkgMS4yMzF6IiBmaWxsPSIjZDViZmIyIiBzdHJva2U9IiNkNWJmYjIiLz48cGF0aCBkPSJtMTAuODczMiAyOC44NzIxIDQuMTU3MiAxLjk2OTYtLjAyNi0xLjIzMS4zNTA4LTIuOTAyNXoiIGZpbGw9IiNkNWJmYjIiIHN0cm9rZT0iI2Q1YmZiMiIvPjxwYXRoIGQ9Im0xNS4xMDg0IDIxLjc4NDItMy43MTU1LTEuMDg4NCAyLjYyNDMtMS4yMDUxeiIgZmlsbD0iIzIzMzQ0NyIgc3Ryb2tlPSIjMjMzNDQ3Ii8+PHBhdGggZD0ibTIwLjUxMjYgMjEuNzg0MiAxLjA5MTMtMi4yOTM1IDIuNjM3MiAxLjIwNTF6IiBmaWxsPSIjMjMzNDQ3IiBzdHJva2U9IiMyMzM0NDciLz48cGF0aCBkPSJtMTAuODczMyAyOC44NzIxLjY0OTUtNS4zMzg2LTQuMTMxMTcuMTE2N3oiIGZpbGw9IiNjYzYyMjgiIHN0cm9rZT0iI2NjNjIyOCIvPjxwYXRoIGQ9Im0yNC4wOTgyIDIzLjUzMzUuNjM2NiA1LjMzODYgMy40OTQ2LTUuMjIxOXoiIGZpbGw9IiNjYzYyMjgiIHN0cm9rZT0iI2NjNjIyOCIvPjxwYXRoIGQ9Im0yNy4yMjkxIDE3LjY1MDctNy40MDUuMzM2OS42ODg1IDMuNzk2NiAxLjA5MTMtMi4yOTM1IDIuNjM3MiAxLjIwNTF6IiBmaWxsPSIjY2M2MjI4IiBzdHJva2U9IiNjYzYyMjgiLz48cGF0aCBkPSJtMTEuMzkyOSAyMC42OTU4IDIuNjI0Mi0xLjIwNTEgMS4wOTEzIDIuMjkzNS42ODg1LTMuNzk2Ni03LjQwNDk1LS4zMzY5eiIgZmlsbD0iI2NjNjIyOCIgc3Ryb2tlPSIjY2M2MjI4Ii8+PHBhdGggZD0ibTguMzkyIDE3LjY1MDcgMy4xMDQ5IDYuMDUxMy0uMTAzOS0zLjAwNjJ6IiBmaWxsPSIjZTI3NTI1IiBzdHJva2U9IiNlMjc1MjUiLz48cGF0aCBkPSJtMjQuMjQxMiAyMC42OTU4LS4xMTY5IDMuMDA2MiAzLjEwNDktNi4wNTEzeiIgZmlsbD0iI2UyNzUyNSIgc3Ryb2tlPSIjZTI3NTI1Ii8+PHBhdGggZD0ibTE1Ljc5NyAxNy45ODc2LS42ODg2IDMuNzk2Ny44NzA0IDQuNDgzMy4xOTQ5LTUuOTA4N3oiIGZpbGw9IiNlMjc1MjUiIHN0cm9rZT0iI2UyNzUyNSIvPjxwYXRoIGQ9Im0xOS44MjQyIDE3Ljk4NzYtLjM2MzggMi4zNTg0LjE4MTkgNS45MjE2Ljg3MDQtNC40ODMzeiIgZmlsbD0iI2UyNzUyNSIgc3Ryb2tlPSIjZTI3NTI1Ii8+PHBhdGggZD0ibTIwLjUxMjcgMjEuNzg0Mi0uODcwNCA0LjQ4MzQuNjIzNi40NDA2IDMuODU4NC0zLjAwNjIuMTE2OS0zLjAwNjJ6IiBmaWxsPSIjZjU4NDFmIiBzdHJva2U9IiNmNTg0MWYiLz48cGF0aCBkPSJtMTEuMzkyOSAyMC42OTU4LjEwNCAzLjAwNjIgMy44NTgzIDMuMDA2Mi42MjM2LS40NDA2LS44NzA0LTQuNDgzNHoiIGZpbGw9IiNmNTg0MWYiIHN0cm9rZT0iI2Y1ODQxZiIvPjxwYXRoIGQ9Im0yMC41OTA2IDMwLjg0MTcuMDM5LTEuMjMxLS4zMzc4LS4yODUxaC00Ljk2MjZsLS4zMjQ4LjI4NTEuMDI2IDEuMjMxLTQuMTU3Mi0xLjk2OTYgMS40NTUxIDEuMTkyMSAyLjk0ODkgMi4wMzQ0aDUuMDUzNmwyLjk2Mi0yLjAzNDQgMS40NDItMS4xOTIxeiIgZmlsbD0iI2MwYWM5ZCIgc3Ryb2tlPSIjYzBhYzlkIi8+PHBhdGggZD0ibTIwLjI2NTkgMjYuNzA4Mi0uNjIzNi0uNDQwNmgtMy42NjM1bC0uNjIzNi40NDA2LS4zNTA4IDIuOTAyNS4zMjQ4LS4yODUxaDQuOTYyNmwuMzM3OC4yODUxeiIgZmlsbD0iIzE2MTYxNiIgc3Ryb2tlPSIjMTYxNjE2Ii8+PHBhdGggZD0ibTMzLjUxNjggMTEuMzUzMiAxLjEwNDMtNS4zNjQ0Ny0xLjY2MjktNC45ODg3My0xMi42OTIzIDkuMzk0NCA0Ljg4NDYgNC4xMjA1IDYuODk4MyAyLjAwODUgMS41Mi0xLjc3NTItLjY2MjYtLjQ3OTUgMS4wNTIzLS45NTg4LS44MDU0LS42MjIgMS4wNTIzLS44MDM0eiIgZmlsbD0iIzc2M2UxYSIgc3Ryb2tlPSIjNzYzZTFhIi8+PHBhdGggZD0ibTEgNS45ODg3MyAxLjExNzI0IDUuMzY0NDctLjcxNDUxLjUzMTMgMS4wNjUyNy44MDM0LS44MDU0NS42MjIgMS4wNTIyOC45NTg4LS42NjI1NS40Nzk1IDEuNTE5OTcgMS43NzUyIDYuODk4MzUtMi4wMDg1IDQuODg0Ni00LjEyMDUtMTIuNjkyMzMtOS4zOTQ0eiIgZmlsbD0iIzc2M2UxYSIgc3Ryb2tlPSIjNzYzZTFhIi8+PHBhdGggZD0ibTMyLjA0ODkgMTYuNTIzNC02Ljg5ODMtMi4wMDg1IDIuMDc4NiAzLjEzNTgtMy4xMDQ5IDYuMDUxMyA0LjEwNTItLjA1MTloNi4xMzE4eiIgZmlsbD0iI2Y1ODQxZiIgc3Ryb2tlPSIjZjU4NDFmIi8+PHBhdGggZD0ibTEwLjQ3MDUgMTQuNTE0OS02Ljg5ODI4IDIuMDA4NS0yLjI5OTQ0IDcuMTI2N2g2LjExODgzbDQuMTA1MTkuMDUxOS0zLjEwNDg3LTYuMDUxM3oiIGZpbGw9IiNmNTg0MWYiIHN0cm9rZT0iI2Y1ODQxZiIvPjxwYXRoIGQ9Im0xOS44MjQxIDE3Ljk4NzYuNDQxNy03LjU5MzIgMi4wMDA3LTUuNDAzNGgtOC45MTE5bDIuMDAwNiA1LjQwMzQuNDQxNyA3LjU5MzIuMTY4OSAyLjM4NDIuMDEzIDUuODk1OGgzLjY2MzVsLjAxMy01Ljg5NTh6IiBmaWxsPSIjZjU4NDFmIiBzdHJva2U9IiNmNTg0MWYiLz48L2c+PC9zdmc+",uuid:"fb8e904e-1a71-454a-af65-dc1ee86311c3"},XQ={icon:'data:image/svg+xml,<svg viewBox="0 0 48 48" class="SvgIcon undefined Logo Logo--PassportSymbolOutlined css-1dn9atd" xmlns="http://www.w3.org/2000/svg"><g data-testid="undefined__g"><circle cx="24" cy="24" r="22.5" fill="url(%23paint0_radial_6324_83922)"></circle><circle cx="24" cy="24" r="22.5" fill="url(%23paint1_radial_6324_83922)"></circle><path d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM23.0718 9.16608C23.7383 8.83951 24.4406 8.86188 25.087 9.2287C27.3282 10.5059 29.5627 11.7942 31.786 13.096C32.5018 13.5165 32.8686 14.1897 32.8708 15.0173C32.8843 17.9184 32.8798 20.8171 32.8708 23.7182C32.8708 23.8255 32.8015 23.9821 32.7143 24.0335C31.8531 24.548 30.9808 25.0423 30.0347 25.5881V25.1318C30.0347 22.148 30.0257 19.1664 30.0414 16.1827C30.0436 15.6101 29.8468 15.241 29.339 14.9525C26.7377 13.474 24.1499 11.9687 21.5575 10.4723C21.4457 10.4075 21.3361 10.3381 21.1661 10.2352C21.8326 9.85722 22.4321 9.47698 23.0673 9.16608H23.0718ZM22.5953 38.8451C22.45 38.7713 22.3426 38.7198 22.2375 38.6595C18.8041 36.68 15.3752 34.687 11.9307 32.7232C10.9644 32.173 10.5238 31.3879 10.5349 30.2852C10.5551 27.9411 10.5484 25.597 10.5372 23.2507C10.5327 22.1927 10.9622 21.4255 11.8926 20.8977C14.3105 19.5221 16.715 18.1264 19.1195 16.7284C19.3275 16.6076 19.4796 16.5875 19.6965 16.7172C20.5264 17.216 21.3719 17.6924 22.2554 18.2024C22.0876 18.3031 21.9601 18.3791 21.8304 18.4552C19.2268 19.9582 16.6278 21.4658 14.0175 22.9599C13.5903 23.2037 13.3912 23.5213 13.3957 24.0179C13.4091 25.8654 13.4114 27.713 13.3957 29.5605C13.3912 30.0705 13.5948 30.3948 14.0332 30.6453C16.7866 32.2199 19.5288 33.8125 22.28 35.3916C22.5126 35.5258 22.611 35.6645 22.6065 35.9418C22.5864 36.888 22.5998 37.8363 22.5998 38.8473L22.5953 38.8451ZM22.5953 33.553C22.356 33.4166 22.1838 33.3204 22.0116 33.2198C19.8285 31.9605 17.6477 30.6967 15.4602 29.4464C15.2231 29.3122 15.1359 29.1668 15.1381 28.8917C15.1538 27.4714 15.1471 26.0511 15.1426 24.6308C15.1426 24.4384 15.1717 24.3064 15.3618 24.1991C16.167 23.7495 16.9633 23.2798 17.7618 22.8212C17.8199 22.7877 17.8826 22.7631 17.9877 22.7116V24.3064C17.9877 25.1698 18.0011 26.0354 17.9832 26.8988C17.972 27.3909 18.1622 27.7241 18.5916 27.9657C19.8285 28.6636 21.0498 29.3883 22.2867 30.0839C22.5305 30.2203 22.6043 30.3724 22.5998 30.6408C22.5842 31.5847 22.5931 32.5308 22.5931 33.5508L22.5953 33.553ZM20.0746 14.91C19.6116 14.6371 19.2157 14.6393 18.7527 14.91C16.1581 16.4265 13.5523 17.9228 10.9487 19.4259C10.8391 19.4908 10.7251 19.5489 10.5305 19.6541C10.5998 18.6654 10.3873 17.7327 10.7251 16.8291C10.9085 16.3348 11.2529 15.9635 11.7092 15.6995C13.8811 14.4447 16.0507 13.1877 18.227 11.9396C19.0211 11.4833 19.8308 11.4945 20.6248 11.953C23.0964 13.3756 25.5657 14.8026 28.0306 16.2341C28.1357 16.2945 28.2677 16.4309 28.2677 16.5338C28.2856 17.5493 28.2788 18.567 28.2788 19.6563C27.3819 19.1396 26.5543 18.6609 25.7267 18.1823C23.8412 17.093 21.9512 16.0149 20.0746 14.91ZM37.4427 30.8779C37.3778 31.6764 36.9103 32.2423 36.2192 32.6404C33.5732 34.1614 30.9294 35.6913 28.2856 37.2168C27.4557 37.6954 26.6259 38.1741 25.7938 38.6527C25.6932 38.7109 25.5903 38.7601 25.4539 38.8317C25.4449 38.693 25.4337 38.5924 25.4337 38.4917C25.4337 37.6149 25.4382 36.7404 25.4293 35.8636C25.4293 35.6645 25.4762 35.5437 25.6596 35.4386C29.5157 33.2198 33.3696 30.9942 37.2212 28.7709C37.2794 28.7374 37.3443 28.7105 37.4539 28.6591C37.4539 29.4375 37.4986 30.1622 37.4427 30.8779ZM37.4628 25.3577C37.4561 26.2658 36.9663 26.9033 36.1901 27.3506C33.175 29.0841 30.1622 30.8265 27.1493 32.5666C26.5991 32.8842 26.0466 33.1996 25.4561 33.5396C25.4472 33.3897 25.436 33.2913 25.436 33.1907C25.436 32.3273 25.4449 31.4617 25.4293 30.5983C25.4248 30.3523 25.5075 30.2226 25.72 30.0995C28.46 28.5271 31.1911 26.9368 33.9355 25.3733C34.4231 25.096 34.6378 24.7538 34.6334 24.1812C34.6132 21.1974 34.6244 18.2136 34.6244 15.2298V14.7087C35.3402 15.1404 36.0112 15.496 36.624 15.9299C37.1832 16.3258 37.465 16.9253 37.4673 17.6164C37.4762 20.1976 37.4829 22.7788 37.465 25.3599L37.4628 25.3577Z" fill="%230D0D0D"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint2_radial_6324_83922)"></path><path fill-rule="evenodd" d="M24 0C10.7452 0 0 10.7452 0 24C0 37.2548 10.7452 48 24 48C37.2548 48 48 37.2548 48 24C48 10.7452 37.2548 0 24 0ZM24 2C11.8497 2 2 11.8497 2 24C2 36.1503 11.8497 46 24 46C36.1503 46 46 36.1503 46 24C46 11.8497 36.1503 2 24 2Z" fill="url(%23paint3_radial_6324_83922)"></path><defs><radialGradient id="paint0_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(13.4442 13.3899) rotate(44.9817) scale(46.7487 99.1435)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint1_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(25.9515 43.7068) rotate(84.265) scale(24.2138 46.3215)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient><radialGradient id="paint2_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.7405 12.6825) rotate(44.9817) scale(49.8653 105.753)"><stop stop-color="%23A3EEF8"></stop><stop offset="0.177083" stop-color="%23A4DCF5"></stop><stop offset="0.380208" stop-color="%23A6AEEC"></stop><stop offset="1" stop-color="%23ECBEE1"></stop></radialGradient><radialGradient id="paint3_radial_6324_83922" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(26.0816 45.0206) rotate(84.265) scale(25.828 49.4096)"><stop stop-color="%23FCF5EE"></stop><stop offset="0.715135" stop-color="%23ECBEE1" stop-opacity="0"></stop></radialGradient></defs></g></svg>',name:"Immutable Passport",rdns:"com.immutable.passport",uuid:"b90118be-7234-4c89-b89b-d5d267663eb5"};async function createProvider(D,te){let he,ye=null;switch(D){case MQ.PASSPORT:if(he=InjectedProvidersManager.getInstance().findProvider({rdns:XQ.rdns}),!he){if(!te)throw console.error("WalletProviderName was PASSPORT but the passport instance was not provided to the Checkout constructor"),new CheckoutError("Passport not provided",oQ.DEFAULT_PROVIDER_ERROR);ye=new Web3Provider(te.connectEvm({announceProvider:!1}))}break;case MQ.METAMASK:he=InjectedProvidersManager.getInstance().findProvider({rdns:JQ.rdns}),he||(ye=await async function getMetaMaskProvider(){const D=await withCheckoutError((async()=>await FX()),{type:oQ.METAMASK_PROVIDER_ERROR});if(!D||!D.request)throw new CheckoutError("No MetaMask provider installed.",oQ.METAMASK_PROVIDER_ERROR);return new Web3Provider(D)}());break;default:if(he=InjectedProvidersManager.getInstance().findProvider({rdns:D}),!he)throw console.error("The WalletProviderName that was provided is not supported"),new CheckoutError("Provider not supported",oQ.DEFAULT_PROVIDER_ERROR)}return!ye&&he&&(ye=new Web3Provider(he.provider)),{provider:ye,walletProviderName:D}}function isWeb3Provider(D){return!(!D||!D.provider?.request||"function"!=typeof D.provider.request)}async function validateProvider(D,te,he){return withCheckoutError((async()=>{if(te.provider?.isPassport)return te;if(!isWeb3Provider(te))throw new CheckoutError("Parsed provider is not a valid Web3Provider",oQ.WEB3_PROVIDER_ERROR);const ye={...FQ,...he},be=await getUnderlyingChainId(te);let ve=te.network?.chainId;try{ve=te.network?.chainId,ve||(ve=(await te.getNetwork()).chainId)}catch(D){throw new CheckoutError("Unable to detect the web3Provider network",oQ.WEB3_PROVIDER_ERROR,{error:D})}if(ve!==be&&!ye.allowMistmatchedChainId)throw console.error("web3ChainId",ve,"underlyingChainId",be,ye),new CheckoutError("Your wallet has changed network, please switch to a supported network",oQ.WEB3_PROVIDER_ERROR);const we=(await getNetworkAllowList(D,{type:kQ.ALL})).networks.some((D=>D.chainId===be));if(!we&&!ye.allowUnsupportedProvider)throw new CheckoutError("Your wallet is connected to an unsupported network, please switch to a supported network",oQ.WEB3_PROVIDER_ERROR);return te}),{type:oQ.WEB3_PROVIDER_ERROR})}async function createReadOnlyProviders(D,te){if(D.isProduction&&te?.has(dQ.ETHEREUM))return te;if(te?.has(dQ.SEPOLIA))return te;const he=new Map;return(await getNetworkAllowList(D,{type:kQ.ALL})).networks.forEach((te=>{const ye=D.networkMap.get(te.chainId)?.rpcUrls[0],be=new tf(ye);he.set(te.chainId,be)})),he}const itemAggregator=D=>(D=>{const te=new Map,he=[];return D.forEach((D=>{const{type:ye}=D;if(ye!==LQ.ERC1155)return void he.push(D);const{contractAddress:be,spenderAddress:ve,id:we,amount:_e}=D,Pe=`${be}${ve}${we}`,Ie=te.get(Pe);Ie&&Ie.type===LQ.ERC1155?Ie.amount=Li.from(Ie.amount).add(_e):te.set(Pe,{...D})})),he.concat(Array.from(te.values()))})((D=>{const te=new Map,he=[];return D.forEach((D=>{const{type:ye}=D;if(ye!==LQ.ERC721)return void he.push(D);const{contractAddress:be,spenderAddress:ve,id:we}=D,_e=`${be}${ve}${we}`;te.get(_e)||te.set(_e,{...D})})),he.concat(Array.from(te.values()))})((D=>{const te=new Map,he=[];return D.forEach((D=>{const{type:ye}=D;if(ye!==LQ.ERC20||D.isFee)return void he.push(D);const be={...D,isFee:"isFee"in D&&D.isFee},{tokenAddress:ve,spenderAddress:we,amount:_e}=be,Pe=`${ve}${we}`,Ie=te.get(Pe);Ie&&Ie.type===LQ.ERC20?Ie.amount=Li.from(Ie.amount).add(_e):te.set(Pe,{...be})})),he.concat(Array.from(te.values()))})((D=>{const te=new Map,he=[];return D.forEach((D=>{const{type:ye}=D;if(ye!==LQ.NATIVE||D.isFee)return void he.push(D);const be={...D,isFee:"isFee"in D&&D.isFee},{amount:ve}=be,we=te.get(ye);we&&we.type===LQ.NATIVE?we.amount=Li.from(we.amount).add(ve):te.set(ye,{...be})})),he.concat(Array.from(te.values()))})(D)))),getERC20Allowance=async(D,te,he,ye)=>{try{const be=new fu(he,JSON.stringify(EQ),D);return await be.allowance(te,ye)}catch(D){throw new CheckoutError("Failed to get the allowance for ERC20",oQ.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:he,error:D})}},getERC20ApprovalTransaction=async(D,te,he,ye,be)=>{try{const ve=new fu(he,JSON.stringify(EQ),D),we=await ve.populateTransaction.approve(ye,be);return we&&(we.from=te),we}catch(D){throw new CheckoutError("Failed to get the approval transaction for ERC20",oQ.GET_ERC20_ALLOWANCE_ERROR,{contractAddress:he,error:D})}},getERC721ApprovedForAll=async(D,te,he,ye)=>{try{const be=new fu(he,JSON.stringify(PQ),D);return await be.isApprovedForAll(te,ye)}catch(D){throw new CheckoutError("Failed to check approval for all ERC721s of collection",oQ.GET_ERC721_ALLOWANCE_ERROR,{ownerAddress:te,contractAddress:he,spenderAddress:ye,error:D})}},getApproveTransaction=async(D,te,he,ye,be)=>{try{const ve=new fu(he,JSON.stringify(PQ),D),we=await ve.populateTransaction.approve(ye,be);return we&&(we.from=te),we}catch(D){throw new CheckoutError("Failed to get the approval transaction for ERC721",oQ.GET_ERC721_ALLOWANCE_ERROR,{id:be.toString(),contractAddress:he,spenderAddress:ye,ownerAddress:te,error:D})}},getERC721ApprovedAddress=async(D,te,he)=>{try{const ye=new fu(te,JSON.stringify(PQ),D);return await ye.getApproved(he)}catch(D){throw new CheckoutError("Failed to get approved address for ERC721",oQ.GET_ERC721_ALLOWANCE_ERROR,{id:he.toString(),contractAddress:te,error:D})}},convertIdToNumber=(D,te)=>{try{return Li.from(D)}catch(he){throw new CheckoutError("Invalid ERC721 ID",oQ.GET_ERC721_ALLOWANCE_ERROR,{id:D,contractAddress:te})}},hasERC721Allowances=async(D,te,he)=>{let ye=!0;const be=[],ve=new Map,we=new Map,_e=new Map,Pe=new Map,Ie=await(async(D,te,he)=>{const ye=new Map,be=new Map;for(const ve of te){if(ve.type!==LQ.ERC721)continue;const{contractAddress:te,spenderAddress:we}=ve,_e=`${te}-${we}`;ye.set(_e,!1),be.has(_e)||be.set(_e,getERC721ApprovedForAll(D,he,te,we))}const ve=await Promise.all(be.values()),we=Array.from(be.keys());return ve.forEach(((D,te)=>{ye.set(we[te],D)})),ye})(D,he,te);for(const te of he){if(te.type!==LQ.ERC721)continue;const{contractAddress:he,id:ye,spenderAddress:_e}=te,Pe=`${he}-${_e}`;if(Ie.get(Pe)){be.push({sufficient:!0,itemRequirement:te});continue}const Re=`${he}-${ye}`,ke=convertIdToNumber(ye,he);ve.set(Re,te),we.set(Re,getERC721ApprovedAddress(D,he,ke))}const Re=await Promise.all(we.values()),ke=Array.from(we.keys());for(let he=0;he<Re.length;he++){const we=ve.get(ke[he]);if(!we||we.type!==LQ.ERC721)continue;if(Re[he]===we.spenderAddress){be.push({sufficient:!0,itemRequirement:we});continue}ye=!1;const{contractAddress:Ie,id:Oe,spenderAddress:xe}=we,Be=`${Ie}-${Oe}`,Fe=convertIdToNumber(Oe,Ie);_e.set(Be,{type:LQ.ERC721,sufficient:!1,itemRequirement:we,approvalTransaction:void 0}),Pe.set(Be,getApproveTransaction(D,te,Ie,xe,Fe))}const Oe=await Promise.all(Pe.values()),xe=Array.from(Pe.keys());return Oe.forEach(((D,te)=>{const he=_e.get(xe[te]);he&&(he.sufficient||(he.approvalTransaction=D))})),{sufficient:ye,allowances:be.concat(Array.from(_e.values()))}},hasERC1155Allowances=async(D,te,he)=>{const ye=he.filter((D=>D.type===LQ.ERC1155)),be=await Promise.all(ye.map((async he=>{const ye=await(async(D,te,he,ye)=>{try{const be=new fu(he,JSON.stringify(SQ),D);return await be.isApprovedForAll(te,ye)}catch(D){throw new CheckoutError("Failed to check approval for all ERC1155s of collection",oQ.GET_ERC1155_ALLOWANCE_ERROR,{ownerAddress:te,contractAddress:he,spenderAddress:ye,error:D})}})(D,te,he.contractAddress,he.spenderAddress);if(ye)return{sufficient:!0,itemRequirement:he};const be=await(async(D,te,he,ye)=>{try{const be=new fu(he,JSON.stringify(SQ),D),ve=await be.populateTransaction.setApprovalForAll(ye,!0);return ve&&(ve.from=te),ve}catch(D){throw new CheckoutError("Failed to get the approval transaction for ERC1155",oQ.GET_ERC1155_ALLOWANCE_ERROR,{contractAddress:he,spenderAddress:ye,ownerAddress:te,error:D})}})(D,te,he.contractAddress,he.spenderAddress);return{type:LQ.ERC1155,sufficient:!1,itemRequirement:he,approvalTransaction:be}})));return{sufficient:be.some((D=>D.sufficient)),allowances:be}},balanceAggregator=D=>(D=>{const te=new Map,he=[];return D.forEach((D=>{const{type:ye}=D;if(ye!==LQ.ERC721)return void he.push(D);const{contractAddress:be,id:ve}=D,we=`${be}${ve}`;te.get(we)||te.set(we,{...D})})),he.concat(Array.from(te.values()))})((D=>{const te=new Map,he=[];return D.forEach((D=>{const{type:ye}=D;if(ye!==LQ.ERC20||D.isFee)return void he.push(D);const{tokenAddress:be,amount:ve}=D,we=`${be}`,_e=te.get(we);_e&&_e.type===LQ.ERC20?_e.amount=Li.from(_e.amount).add(ve):te.set(we,{...D})})),he.concat(Array.from(te.values()))})((D=>{const te=new Map,he=[];return D.forEach((D=>{const{type:ye}=D;if(ye!==LQ.NATIVE||D.isFee)return void he.push(D);const{amount:be}=D,ve=te.get(ye);ve&&ve.type===LQ.NATIVE?ve.amount=Li.from(ve.amount).add(be):te.set(ye,{...D})})),he.concat(Array.from(te.values()))})(D))),getTokenFromBalances=(D,te)=>D.type===LQ.ERC20?te.find((te=>isMatchingAddress(te.token?.address,D.tokenAddress))):te.find((D=>isNativeToken(D.token?.address))),getTokenBalances=async(D,te,he,ye,be=!1)=>{try{const ve=new Map;(D=>D.map((D=>{switch(D.type){case LQ.ERC20:return{address:D.tokenAddress};case LQ.NATIVE:return{address:hQ};case LQ.ERC721:default:return{address:D.contractAddress}}})))(ye).forEach((D=>{D.address&&ve.set(D.address.toLocaleLowerCase(),D)}));const{balances:we}=await getAllBalances(D,te,he,getL2ChainId(D),be);return we.filter((D=>ve.get((D.token.address||hQ).toLocaleLowerCase())))}catch(D){throw new CheckoutError("Failed to get balances",oQ.GET_BALANCE_ERROR,{error:D})}},balanceCheck=async(D,te,he,ye,be=!1)=>{const ve=balanceAggregator(ye),we=[],_e=[];if(ve.forEach((D=>{switch(D.type){case LQ.ERC20:case LQ.NATIVE:we.push(D);break;case LQ.ERC721:_e.push(D)}})),we.sort((D=>"isFee"in D&&D.isFee?1:-1)),0===_e.length&&0===we.length)throw new CheckoutError("Unsupported item requirement balance check",oQ.UNSUPPORTED_BALANCE_REQUIREMENT_ERROR);const Pe=[];we.length>0&&Pe.push(getTokenBalances(D,te,he,ve,be)),_e.length>0&&Pe.push((async(D,te,he)=>{const ye=[],be=new Map,ve=new Map;he.forEach((te=>{if(te.type!==LQ.ERC721)return;const he=new fu(te.contractAddress,JSON.stringify(PQ),D);be.set(te.contractAddress,te),ve.set(te.contractAddress,he.ownerOf(te.id))}));try{const D=await Promise.all(ve.values()),he=Array.from(ve.keys());D.forEach(((D,ve)=>{const we=be.get(he[ve]);let _e=0;we&&isMatchingAddress(te,D)&&(_e=1),ye.push({type:LQ.ERC721,balance:Li.from(_e),formattedBalance:_e.toString(),contractAddress:we.contractAddress,id:we.id})}))}catch(D){throw new CheckoutError("Failed to get ERC721 balances",oQ.GET_ERC721_BALANCE_ERROR,{error:D})}return ye})(te,he,ve));const Ie=await Promise.all(Pe),Re=[];if(we.length>0){const D=Ie.shift()??[],he=new Map(D.map((D=>[D.type===LQ.NATIVE?hQ:D.token.address?.toLowerCase(),D]))),ye=await(async(D,te,he)=>{const ye={};for(const be of D){if(be.type===LQ.NATIVE){ye[hQ]=yQ;continue}const D=getTokenFromBalances(be,te);let ve=D?.token.address??"",we=D?.token.name??"",_e=D?.token.symbol??"",Pe=D?.token.decimals??pQ;if(!D&&be.type===LQ.ERC20){if(ve=be.tokenAddress,ve.toLowerCase()in ye)continue;try{const D=new fu(be.tokenAddress,JSON.stringify(EQ),he),[te,ye,Ie]=await Promise.all([D.name(),D.symbol(),D.decimals()]);ve=be.tokenAddress,Pe=Ie,we=te,_e=ye}catch(D){console.error("Failed to query contract information",be.tokenAddress)}}ye[ve.toLowerCase()]={address:ve,name:we,symbol:_e,decimals:Pe}}return ye})(we,D,te);we.forEach((D=>{const te=(D.tokenAddress??hQ).toLowerCase(),be=ye[te],ve=he.get(te),we=((D,te,he)=>{let ye=getTokenFromBalances(D,te);const be=D.amount,ve=be.isNegative()||be.isZero()||(ye?.balance.gte(be)??!1),we=be.sub(ye?.balance??Li.from(0));return D.type===LQ.NATIVE?(ye||(ye={type:LQ.NATIVE,balance:Li.from(0),formattedBalance:"0",token:he}),{sufficient:ve,type:LQ.NATIVE,delta:{balance:we,formattedBalance:formatUnits(we,he.decimals)},current:{...ye,type:LQ.NATIVE,token:he},required:{...ye,type:LQ.NATIVE,balance:Li.from(D.amount),formattedBalance:formatUnits(D.amount,he.decimals),token:he},isFee:D.isFee}):(ye||(ye={type:D.type,balance:Li.from(0),formattedBalance:"0",token:he}),{sufficient:ve,type:LQ.ERC20,delta:{balance:we,formattedBalance:formatUnits(we,he.decimals)},current:{...ye,token:he},required:{...ye,token:he,balance:Li.from(D.amount),formattedBalance:formatUnits(D.amount,he.decimals)},isFee:D.isFee})})(D,[...he.values()],be);if(Re.push(we),!ve)return;const _e=ve.balance.sub(we.required.balance);he.set(te,{...ve,balance:_e,formattedBalance:formatUnits(_e,we.required.token.decimals)})}))}if(_e.length>0){const D=Ie.shift()??[];_e.forEach((te=>{Re.push(((D,te)=>{const he=Li.from(1),ye=te.find((te=>{const he=te;return isMatchingAddress(he.contractAddress,D.contractAddress)&&he.id===D.id})),be=he.isNegative()||he.isZero()||(ye?.balance.gte(he)??!1),ve=he.sub(ye?.balance??Li.from(0));let we=ye;return we||(we={type:LQ.ERC721,balance:Li.from(0),formattedBalance:"0",contractAddress:D.contractAddress,id:D.id}),{sufficient:be,type:LQ.ERC721,delta:{balance:ve,formattedBalance:ve.toString()},current:we,required:{...we,balance:Li.from(1),formattedBalance:"1"},isFee:!1}})(te,D))}))}return{sufficient:void 0===Re.find((D=>!D.sufficient)),balanceRequirements:Re}},estimateGas=async(D,te)=>{try{return await D.estimateGas(te)}catch(D){throw new CheckoutError("Failed to estimate gas for transaction",oQ.UNPREDICTABLE_GAS_LIMIT,{error:D})}},gasCalculator=async(D,te,he)=>{const ye=[];let be=Li.from(0);for(const he of te)void 0!==he.approvalTransaction&&ye.push(estimateGas(D,he.approvalTransaction));if(he.type===UQ.TRANSACTION)ye.push(estimateGas(D,he.transaction));else{const te=(D=>(D=>!!D.maxFeePerGas&&!!D.maxPriorityFeePerGas)(D)?Li.from(D.lastBaseFeePerGas).add(Li.from(D.maxPriorityFeePerGas)):D.gasPrice?Li.from(D.gasPrice):null)(await D.getFeeData());if(null!==te){const D=te?.mul(he.gasToken.limit);D&&(be=be.add(D))}}return(await Promise.all(ye)).forEach((D=>{be=be.add(D)})),be.eq(0)?null:((D,te)=>te.type===UQ.TRANSACTION||te.gasToken.type===$Q.NATIVE?{type:LQ.NATIVE,amount:D,isFee:!0}:{type:LQ.ERC20,amount:D,tokenAddress:te.gasToken.tokenAddress,spenderAddress:"",isFee:!0})(be,he)},isOnRampAvailable=async()=>!0,isSwapAvailable=async D=>{const te=availabilityService(D.isDevelopment,D.isProduction);try{return await te.checkDexAvailability()}catch{return!1}},quoteFetcher=async(D,te,he,ye,be)=>{const ve=new Map;try{const we=await createExchangeInstance(te,D),_e=[],Pe=[];for(const D of be)D!==ye.address&&(_e.push(we.getUnsignedSwapTxFromAmountOut(he,D,ye.address,ye.amount,1)),Pe.push(D));return(await measureAsyncExecution(D,"Time to resolve swap quotes from the dex",Promise.allSettled(_e))).forEach(((D,te)=>{if("rejected"===D.status)return;const he=Pe[te];ve.set(he,{quote:D.value.quote,approval:D.value.approval?.gasFeeEstimate??null,swap:D.value.swap.gasFeeEstimate})})),ve}catch{return ve}},constructFees$1=(D,te,he)=>{let ye,be=Li.from(0),ve="0";D&&(be=D.value,ve=formatUnits(D.value,D.token.decimals),ye={name:D.token.name??"",symbol:D.token.symbol??"",address:D.token.address,decimals:D.token.decimals});let we,_e=Li.from(0),Pe="0";te&&(_e=te.value,Pe=formatUnits(te.value,te.token.decimals),we={name:te.token.name??"",symbol:te.token.symbol??"",address:te.token.address,decimals:te.token.decimals});const Ie=[];for(const D of he)Ie.push({type:GQ.SWAP_FEE,amount:D.amount.value,formattedAmount:formatUnits(D.amount.value,D.amount.token.decimals),basisPoints:D.basisPoints,token:{name:D.amount.token.name??"",symbol:D.amount.token.symbol??"",address:D.amount.token.address,decimals:D.amount.token.decimals}});return{approvalGasFee:{type:GQ.GAS,amount:be,formattedAmount:ve,token:ye},swapGasFee:{type:GQ.GAS,amount:_e,formattedAmount:Pe,token:we},swapFees:Ie}},constructSwapRoute=(D,te,he,ye)=>{const be=he.token.address;let ve=LQ.ERC20;return isNativeToken(be)&&(ve=LQ.NATIVE),{type:jQ.SWAP,chainId:D,fundingItem:{type:ve,fundsRequired:{amount:te,formattedAmount:formatSmartCheckoutAmount(formatUnits(te,he.token.decimals))},userBalance:{balance:he.balance,formattedBalance:he.formattedBalance},token:he.token},fees:ye}},checkUserCanCoverApprovalFees=(D,te)=>{if(!te)return{sufficient:!0,approvalGasFee:Li.from(0),approvalGasTokenAddress:""};const he=te.value,ye=te.token.address;if(0===D.length)return{sufficient:!1,approvalGasFee:he,approvalGasTokenAddress:ye};const be=D.find((D=>isNativeToken(D.token.address)&&isNativeToken(ye)||isMatchingAddress(D.token.address,ye)));return be?be.balance.lt(he)?{sufficient:!1,approvalGasFee:he,approvalGasTokenAddress:ye}:{sufficient:!0,approvalGasFee:he,approvalGasTokenAddress:ye}:{sufficient:!1,approvalGasFee:he,approvalGasTokenAddress:ye}},checkUserCanCoverSwapFees=(D,te,he,ye,be)=>{const ve=new Map;if(te.approvalGasFee.gt(Li.from(0))&&ve.set(te.approvalGasTokenAddress,te.approvalGasFee),he){const D=ve.get(he.token.address);D?ve.set(he.token.address,D.add(he.value)):ve.set(he.token.address,he.value)}if(be){const D=ve.get(be.address);D?ve.set(be.address,D.add(be.amount)):ve.set(be.address,be.amount)}for(const D of ye){const te=ve.get(D.amount.token.address);te?ve.set(D.amount.token.address,te.add(D.amount.value)):ve.set(D.amount.token.address,D.amount.value)}for(const[te,he]of ve.entries()){if(he===Li.from(0))continue;const ye=D.find((D=>isNativeToken(D.token.address)&&isNativeToken(te)||isMatchingAddress(D.token.address,te)));if(!ye)return!1;if(ye.balance.lt(he))return!1}return!0},checkIfUserCanCoverRequirement=(D,te,he,ye,be,ve)=>{let we=Li.from(0),_e="",Pe=!1;if(te.balanceRequirements.forEach((te=>{te.type!==LQ.NATIVE&&te.type!==LQ.ERC20||te.required.token.address&&isMatchingAddress(te.required.token.address,he)&&(_e=te.required.token.address,Pe=!0,we=D.sub(te.required.balance))})),!Pe)return!0;isMatchingAddress(be.approvalGasTokenAddress,_e)&&(we=we.sub(be.approvalGasFee));for(const D of ve)isMatchingAddress(D.amount.token.address,_e)&&(we=we.sub(D.amount.value));return we.gte(ye)},swapRoute=async(D,te,he,ye,be,ve,we)=>{const _e=[];if(!te.swap)return _e;if(0===ve.length)return _e;if(!(D=>D.type===LQ.ERC20?!!D.required.token.address:D.type===LQ.NATIVE&&isNativeToken(D.required.token.address))(ye))return _e;const Pe=(D=>{let te="",he=Li.from(0);switch(D.type){case LQ.ERC20:te=D.required.token.address,he=D.delta.balance;break;case LQ.NATIVE:he=D.delta.balance}return{address:te,amount:he}})(ye),Ie=getL2ChainId(D),Re=be.get(Ie);if(!Re)return _e;const ke=Re.balances;if(0===ke.length)return _e;const Oe=await quoteFetcher(D,getL2ChainId(D),he,Pe,ve),xe=Array.from(Oe.keys());for(const D of xe){const te=Oe.get(D);if(!te)continue;const he=ke.find((te=>isMatchingAddress(te.token.address,D)));if(!he)continue;const ye=te.quote.amountWithMaxSlippage;if(he.balance.lt(ye.value))continue;const be=checkUserCanCoverApprovalFees(ke,te.approval);if(!be.sufficient)continue;if(!checkUserCanCoverSwapFees(ke,be,te.swap,te.quote.fees,{amount:ye.value,address:D}))continue;if(!checkIfUserCanCoverRequirement(he.balance,we,D,ye.value,be,te.quote.fees))continue;const ve=constructFees$1(te.approval,te.swap,te.quote.fees);_e.push(constructSwapRoute(Ie,ye.value,he,ve))}return _e},filterTokens=(D,te)=>te&&te.success?D.filter((D=>"address"in D?te.balances.find((te=>isMatchingAddress(te.token.address,D.address)&&te.balance.gt(0))):te.balances.find((D=>!("address"in D.token)&&D.balance.gt(0))))):[],allowListCheckForOnRamp=async(D,te)=>{if(te.onRamp){return(await getTokenAllowList(D,{type:OQ.ONRAMP})).tokens}return[]},allowListCheckForBridge=async(D,te,he)=>{if(he.bridge){const he=getL1ChainId(D),ye=(await getTokenAllowList(D,{type:OQ.BRIDGE,chainId:he})).tokens,be=te.get(he);return filterTokens(ye,be)}return[]},allowListCheck=async(D,te,he)=>{const ye={};return ye.swap=await(async(D,te,he)=>{if(he.swap){const he=(await getTokenAllowList(D,{type:OQ.SWAP})).tokens,ye=te.get(getL2ChainId(D));return filterTokens(he,ye)}return[]})(D,te,he),ye.bridge=await allowListCheckForBridge(D,te,he),ye.onRamp=await allowListCheckForOnRamp(D,he),ye},QQ="0x0000000000000000000000000000000000000eee",getImxL1Representation=async(D,te)=>(await te.remote.getConfig("imxAddressMapping"))[D]??"",fetchL1Representation=async(D,te)=>{if(isNativeToken(te))return{l1address:await getImxL1Representation(getL1ChainId(D),D),l2address:hQ};const he=(ye=getL2ChainId(D))===dQ.IMTBL_ZKEVM_MAINNET?fQ.IMTBL_ZKEVM_MAINNET:ye===dQ.IMTBL_ZKEVM_TESTNET?fQ.IMTBL_ZKEVM_TESTNET:ye===dQ.IMTBL_ZKEVM_DEVNET?fQ.IMTBL_ZKEVM_DEVNET:"";var ye;const be=createBlockchainDataInstance(D),ve=(await be.getToken({chainName:he,contractAddress:te})).result.root_contract_address;return isMatchingAddress(ve??"",QQ)?{l1address:"native",l2address:te}:null!==ve?{l1address:ve,l2address:te}:void 0},hasSufficientL1Eth=(D,te)=>(D=>{for(const te of D.balances)if(isNativeToken(te.token.address))return te.balance;return Li.from(0)})(D).gte(te),constructFees=(D,te,he,ye,be)=>{const ve=be?.decimals??pQ,we=[];return te.gt(0)&&we.push({type:GQ.BRIDGE_FEE,amount:te,formattedAmount:formatUnits(te,ve),token:be}),he.gt(0)&&we.push({type:GQ.IMMUTABLE_FEE,amount:he,formattedAmount:formatUnits(he,ve),token:be}),{approvalGasFee:{type:GQ.GAS,amount:ye,formattedAmount:formatUnits(ye,pQ),token:be},bridgeGasFee:{type:GQ.GAS,amount:D,formattedAmount:formatUnits(D,pQ),token:be},bridgeFees:we}},constructBridgeFundingRoute=(D,te,he,ye,be)=>({type:jQ.BRIDGE,chainId:D,fundingItem:{type:ye,fundsRequired:{amount:he.amount,formattedAmount:formatSmartCheckoutAmount(he.formattedAmount)},userBalance:{balance:te.balance,formattedBalance:te.formattedBalance},token:{name:te.token.name,symbol:te.token.symbol,address:te.token.address,decimals:te.token.decimals}},fees:be}),bridgeRoute=async(D,te,he,ye,be)=>{if(!he.bridge)return;const ve=getL1ChainId(D),we=getL2ChainId(D),_e=D.networkMap.get(ve)?.nativeCurrency,Pe=be.get(ve);if(!te.get(ve))throw new CheckoutError("No L1 provider available",oQ.PROVIDER_ERROR,{chainId:ve.toString()});if(void 0===Pe||!1===Pe.success)return;const Ie=await allowListCheckForBridge(D,be,he);if(0===Ie.length)return;const Re=await fetchL1Representation(D,ye.l2address);if(!Re)return;const{l1address:ke}=Re;if(isNativeToken(ke)){if(!Ie.find((D=>isNativeToken(D.address))))return}else if(!Ie.find((D=>isMatchingAddress(D.address,ke))))return;const Oe=await(async(D,te,he,ye)=>{const be=createBridgeInstance(he,ye,te,D);try{return{...await be.getFee({action:FH.DEPOSIT,gasMultiplier:"auto",sourceChainId:he.toString(),destinationChainId:ye.toString()}),approvalGas:Li.from(0)}}catch(D){throw new CheckoutError("Error estimating gas for bridge",oQ.BRIDGE_GAS_ESTIMATE_ERROR,{error:D})}})(D,te,ve,we),{sourceChainGas:xe,approvalGas:Be,bridgeFee:Fe,imtblFee:De,totalFees:Le}=Oe;if(!hasSufficientL1Eth(Pe,Le))return;if(isNativeToken(ke)){const D=Pe.balances.find((D=>isNativeToken(D.token.address)));if(D&&D.balance.gte(ye.amount.add(Le))){const te=constructFees(xe,Fe,De,Be,_e);return constructBridgeFundingRoute(ve,D,ye,LQ.NATIVE,te)}return}const Ue=Pe.balances.find((D=>isMatchingAddress(D.token.address,ke)));if(Ue&&Ue.balance.gte(ye.amount)){const D=constructFees(xe,Fe,De,Be,_e);return constructBridgeFundingRoute(ve,Ue,ye,LQ.ERC20,D)}},getFeesForTokenAddress=(D,te)=>{let he=Li.from(0);return D.quote.fees.forEach((D=>{isMatchingAddress(D.amount.token.address,te)&&(he=he.add(D.amount.value))})),D.approval&&isMatchingAddress(D.approval.token.address,te)&&(he=he.add(D.approval.value)),he},getAmountFromBalanceRequirement=(D,te)=>{for(const he of D.balanceRequirements)if((he.type===LQ.NATIVE||he.type===LQ.ERC20)&&isMatchingAddress(he.required.token.address,te))return he.required.balance;return Li.from(0)},getAmountToBridge=(D,te,he)=>{const ye=he?.balance??Li.from(0);if(ye.gte(D.add(te)))return Li.from(0);if(ye.lte(0))return D.add(te);const be=ye.sub(te);return be.gte(0)?D.sub(be):D.add(te).sub(ye)},bridgeAndSwapRoute=async(D,te,he,ye,be,ve,we,_e,Pe)=>{const{l1balances:Ie,l2balances:Re}=((D,te)=>{const he={l1balances:[],l2balances:[]},ye=te.get(getL1ChainId(D)),be=te.get(getL2ChainId(D));return ye?void 0!==ye.error?he:ye.success&&be?void 0!==be.error?he:be.success?{l1balances:ye.balances,l2balances:be.balances}:he:he:he})(D,ve),ke=ye.required.token.address;if(((D,te,he,ye,be,ve)=>0===D.length||0===te.length||0===he.length||0===ye.length||!be.bridge||!be.swap||void 0===ve||""===ve)(we,_e,Ie,Re,he,ke))return[];const Oe=await(async(D,te)=>{const he=te.map((te=>fetchL1Representation(D,te.address??"")));return(await Promise.all(he)).filter((D=>void 0!==D))})(D,_e),xe=((D,te,he,ye)=>{const be=[];for(const ve of ye){if(!te.includes(ve.l1address))continue;if(isMatchingAddress(ve.l2address,D))continue;const ye=he.find((D=>isMatchingAddress(D.address,ve.l2address)));ye&&be.push(ye)}return be})(ke,we,_e,Oe);if(0===xe.length)return[];const Be=await(async(D,te,he,ye,be)=>{const ve=[];for(const D of be)D.address&&ve.push(D.address);return await quoteFetcher(D,getL2ChainId(D),te,{address:he,amount:ye.delta.balance},ve)})(D,be,ke,ye,xe),Fe=((D,te,he,ye,be)=>{const ve=[];for(const[we,_e]of D){const D=he.find((D=>isMatchingAddress(D.token.address,we))),Pe=ye.find((D=>isMatchingAddress(D.l2address,we)));if(!Pe)continue;const{l1address:Ie,l2address:Re}=Pe;if(!Ie)continue;const ke=te.find((D=>!(void 0!==D.token.address||!isMatchingAddress(Ie,QQ))||isMatchingAddress(D.token.address,Ie)));if(!ke)continue;const Oe=_e.quote.amountWithMaxSlippage.value,xe=getFeesForTokenAddress(_e,we),Be=Oe.add(xe),Fe=getAmountFromBalanceRequirement(be,we),De=getAmountToBridge(Be,Fe,D);De.lte(0)||De.gte(ke.balance)||ve.push({amount:De,formattedAmount:formatSmartCheckoutAmount(formatUnits(De,ke.token.decimals)),l2address:Re})}return ve})(Be,Ie,Re,Oe,Pe);if(0===Fe.length)return[];const De=new Map,Le=new Map,Ue=[];for(const ye of Fe)ye.l2address&&(De.set(ye.l2address,bridgeRoute(D,te,he,ye,ve)),Le.set(ye.l2address,{amount:ye.amount,formattedAmount:ye.formattedAmount,l2address:ye.l2address}));const qe=await Promise.all(De.values()),je=Array.from(De.keys()),Je=[];if(qe.forEach(((D,te)=>{const he=je[te];if(void 0===D)return;Je.push(he);const ye=Le.get(he);ye&&Ue.push({amount:ye.amount,formattedAmount:ye.formattedAmount,l2address:ye.l2address})})),0===Je.length)return[];if(0===Ue.length)return[];const et=((D,te,he,ye,be)=>{const ve=new Map;for(const[D,he]of te)ve.set(D,{success:he.success,balances:he.balances});const we=new Map;for(const D of he)D.token.address&&we.set(D.token.address,D);for(const D of ye){const{amount:te,l2address:he}=D;if(""===he)continue;let ye=Li.from(0);const ve=we.get(he);ve&&(ye=ve.balance);const _e=ye.add(te),Pe=be.find((D=>isMatchingAddress(D.address,he)));we.set(he,{balance:_e,formattedBalance:formatUnits(_e,Pe.decimals),token:Pe})}const _e=Array.from(we.values());return ve.set(getL2ChainId(D),{success:!0,balances:_e}),ve})(D,ve,Re,Ue,_e),tt=await swapRoute(D,he,be,ye,et,Je,Pe);if(!tt)return[];const rt=((D,te)=>{const he=[];for(const ye of te){const{chainId:te,fundingItem:be}=ye,{userBalance:ve}=ye.fundingItem,we=D.get(te);if(!we)continue;let _e=Li.from(0),Pe="0";const Ie=we.balances.find((D=>isMatchingAddress(D.token.address,be.token.address)));Ie&&(_e=Ie.balance,Pe=Ie.formattedBalance),ve.balance=_e,ve.formattedBalance=Pe,he.push(ye)}return he})(ve,tt);return((D,te,he)=>{const ye=[];for(const be of D){if(!be)continue;const D=he.find((D=>void 0===be.fundingItem.token.address?isMatchingAddress(D.l1address,QQ)&&D.l2address:isMatchingAddress(D.l1address,be.fundingItem.token.address)&&D.l2address));if(!D)continue;const ve=te.find((te=>isMatchingAddress(te.fundingItem.token.address,D.l2address)));ve&&ye.push({bridgeFundingStep:be,swapFundingStep:ve})}return ye})(qe,rt,Oe)},getOnRampFundingStep=async(D,te,he)=>{if(!te.onRamp)return;if(void 0===he)return;const ye=await(async(D,te,he)=>{if(![LQ.ERC20,LQ.NATIVE].includes(he.type))return;const{required:ye,current:be,delta:ve}=he;let we=!1;return(await allowListCheckForOnRamp(D,te)).forEach((D=>{D.address&&ye.token&&(isNativeToken(ye.token.address)||isMatchingAddress(D.address,ye.token.address))&&(we=!0)})),we?{type:jQ.ONRAMP,chainId:getL2ChainId(D),fundingItem:{type:isNativeToken(ye.token.address)?LQ.NATIVE:LQ.ERC20,fundsRequired:{amount:ve.balance,formattedAmount:formatSmartCheckoutAmount(ve.formattedBalance)},userBalance:{balance:be.balance,formattedBalance:be.formattedBalance},token:ye.token}}:void 0})(D,te,he);return ye},ZQ=1,YQ=2,eZ=3,tZ=4,handleRouteProgress=(D,te,he,ye)=>{if(!D)return;let be;be="bridgeFundingStep"in D&&"swapFundingStep"in D?[D.bridgeFundingStep,D.swapFundingStep]:[D];const ve={priority:te,steps:be};he.push(ve),ye?.(ve)},routingCalculator=async(D,te,he,ye,be)=>{if(!(D=>D.bridge||D.swap||D.onRamp)(ye))return{type:qQ.NO_ROUTE_OPTIONS,message:"No routing options are available"};let ve;try{ve=await createReadOnlyProviders(D)}catch(D){throw new CheckoutError("Error occurred while creating read only providers",oQ.PROVIDER_ERROR,{error:D})}const we=await measureAsyncExecution(D,"Time to get token balances inside router",(async(D,te,he,ye)=>{const be=new Map,ve=new Map;if(0===te.size){const te={success:!1,error:new CheckoutError("No L1 or L2 provider available",oQ.PROVIDER_ERROR),balances:[]};return be.set(getL1ChainId(D),te),be.set(getL2ChainId(D),te),be}if(ye.bridge){const ye=getL1ChainId(D);te.has(ye)?ve.set(ye,getAllBalances(D,te.get(ye),he,ye)):be.set(getL1ChainId(D),{success:!1,error:new CheckoutError(`No L1 provider available for ${ye}`,oQ.PROVIDER_ERROR),balances:[]})}const we=getL2ChainId(D);if(te.has(we)?ve.set(we,getAllBalances(D,te.get(we),he,we)):be.set(getL2ChainId(D),{success:!1,error:new CheckoutError(`No L2 provider available for ${we}`,oQ.PROVIDER_ERROR),balances:[]}),ve.size>0){const D=Array.from(ve.keys());(await Promise.allSettled(ve.values())).forEach(((te,he)=>{const ye=D[he];"fulfilled"===te.status?be.set(ye,{success:!0,balances:te.value.balances}):be.set(ye,{success:!1,error:new CheckoutError(`Error getting ${we} balances`,oQ.GET_BALANCE_ERROR),balances:[]})}))}return be})(D,ve,te,ye)),_e=await measureAsyncExecution(D,"Time to get routing allowlist",allowListCheck(D,we,ye)),Pe=(D=>{let te,he=0;for(const ye of D.balanceRequirements)ye.sufficient||(he++,te=ye);if(1===he)return te})(he),Ie=[],Re=[];return ye.swap&&Ie.push((async(D,te,he,ye,be,ve,we)=>{const _e=[];if(!te.swap)return _e;if(void 0===he)return _e;if(void 0===ve)return _e;const Pe=be.get(getL2ChainId(D));if(!Pe)return _e;if(void 0!==Pe.error||!Pe.success)return _e;if(0===ve.length)return _e;const Ie=ve.filter((D=>D.address)).map((D=>D.address));return 0===Ie.length?_e:await swapRoute(D,te,ye,he,be,Ie,we)})(D,ye,Pe,te,we,_e.swap,he).then((D=>{D.forEach((D=>{handleRouteProgress(D,ZQ,Re,be)}))}))),ye.bridge&&Ie.push((async(D,te,he,ye,be)=>{let ve;if(void 0===ye)return;if(ye.type!==LQ.NATIVE&&ye.type!==LQ.ERC20)return;const we={amount:ye.delta.balance,formattedAmount:ye.delta.formattedBalance,l2address:ye.required.token.address??""};return he.bridge&&ye&&(ve=await bridgeRoute(D,te,he,we,be)),ve})(D,ve,ye,Pe,we).then((D=>{handleRouteProgress(D,YQ,Re,be)}))),ye.onRamp&&Ie.push(getOnRampFundingStep(D,ye,Pe).then((D=>{handleRouteProgress(D,eZ,Re,be)}))),ye.swap&&ye.bridge&&Ie.push((async(D,te,he,ye,be,ve,we,_e)=>{if(!ye)return[];const Pe=ve.get(getL1ChainId(D)),Ie=ve.get(getL2ChainId(D));if(!Pe)return[];if(void 0!==Pe.error||!Pe.success)return[];if(!Ie)return[];if(void 0!==Ie.error||!Ie.success)return[];const Re=(we?.bridge??[]).map((D=>void 0===D.address?QQ:D.address)),ke=we?.swap??[];return ye.type!==LQ.NATIVE&&ye.type!==LQ.ERC20?[]:await bridgeAndSwapRoute(D,te,he,ye,be,ve,Re,ke,_e)})(D,ve,ye,Pe,te,we,_e,he).then((D=>{D.forEach((D=>{handleRouteProgress(D,tZ,Re,be)}))}))),await measureAsyncExecution(D,"Time to resolve all routes",Promise.all(Ie)),0===Re.length?{type:qQ.NO_ROUTES_FOUND,message:"Smart Checkout did not find any funding routes to fulfill the transaction"}:{type:qQ.ROUTES_FOUND,fundingRoutes:Re}},processRoutes=async(D,te,he,ye,be,ve,we,_e,Pe)=>{const Ie=!we||he&&_e?(D=>({sufficient:!1,balanceRequirements:D.balanceRequirements.map((D=>D.type===LQ.ERC20&&D.sufficient?{...D,sufficient:!1,delta:{balance:D.required.balance,formattedBalance:D.required.formattedBalance}}:D))}))(ve):ve,Re=await measureAsyncExecution(D,"Total time to run the routing calculator",routingCalculator(D,te,Ie,ye,Pe));return _e?.({sufficient:he,transactionRequirements:be,router:{availableRoutingOptions:ye,routingOutcome:Re}}),Re},smartCheckout=async(D,te,he,ye,be,ve,we,_e=!1)=>{const Pe=await te.getSigner().getAddress();let Ie=itemAggregator(he);const Re=(async(D,te,he)=>{let ye=!0;const be=[],ve=new Map,we=new Map,_e=new Map,Pe=new Map;for(const ye of he){if(ye.type!==LQ.ERC20)continue;const{tokenAddress:he,spenderAddress:be}=ye,_e=`${he}${be}`;ve.set(_e,ye),we.set(_e,getERC20Allowance(D,te,he,be))}const Ie=await Promise.all(we.values()),Re=Array.from(we.keys());for(let he=0;he<Ie.length;he++){const we=ve.get(Re[he]);if(!we||we.type!==LQ.ERC20)continue;if(Ie[he].gte(we.amount)){be.push({sufficient:!0,itemRequirement:we});continue}ye=!1;const{tokenAddress:ke,spenderAddress:Oe}=we,xe=`${ke}${Oe}`,Be=we.amount.sub(Ie[he]);_e.set(xe,{type:LQ.ERC20,sufficient:!1,delta:Be,itemRequirement:we,approvalTransaction:void 0}),Pe.set(xe,getERC20ApprovalTransaction(D,te,ke,Oe,Be))}const ke=await Promise.all(Pe.values()),Oe=Array.from(Pe.keys());return ke.forEach(((D,te)=>{const he=_e.get(Oe[te]);he&&(he.sufficient||(he.approvalTransaction=D))})),{sufficient:ye,allowances:be.concat(Array.from(_e.values()))}})(te,Pe,Ie),ke=hasERC721Allowances(te,Pe,Ie),Oe=hasERC1155Allowances(te,Pe,Ie),xe=await measureAsyncExecution(D,"Time to calculate token allowances",Promise.all([Re,ke,Oe])),Be=((D,te,he)=>{const ye=[];if(!D.sufficient)for(const te of D.allowances)te.sufficient||ye.push(te);if(!te.sufficient)for(const D of te.allowances)D.sufficient||ye.push(D);if(!he.sufficient)for(const D of he.allowances)D.sufficient||ye.push(D);return ye})(xe[0],xe[1],xe[2]);let Fe=null;ye&&(Fe=await measureAsyncExecution(D,"Time to run gas calculator",gasCalculator(te,Be,ye)),null!==Fe&&(Ie.push(Fe),Ie=itemAggregator(Ie)));const De=await measureAsyncExecution(D,"Time to run balance checks",balanceCheck(D,te,Pe,Ie,!0)),{sufficient:Le}=De,Ue=De.balanceRequirements,qe=await measureAsyncExecution(D,"Time to fetch available routing options",(async(D,te)=>{const he={onRamp:D.isOnRampEnabled,swap:D.isSwapEnabled,bridge:D.isBridgeEnabled},ye=[];if(he.onRamp&&ye.push({id:"onRamp",promise:isOnRampAvailable()}),he.swap&&ye.push({id:"swap",promise:isSwapAvailable(D)}),ye.length>0){const D=ye.map((D=>D.promise));(await Promise.allSettled(D)).forEach(((D,te)=>{const be=ye[te].id;he[be]=he[be]&&"fulfilled"===D.status&&D.value}))}return he.bridge=he.bridge&&!(D=>!0===D.provider?.isPassport)(te),he})(D,te));if(!1===be?.onRamp&&(qe.onRamp=!1),!1===be?.swap&&(qe.swap=!1),!1===be?.bridge&&(qe.bridge=!1),ve)return processRoutes(D,Pe,Le,qe,Ue,De,_e,ve,we),{sufficient:Le,transactionRequirements:Ue};if(Le)return{sufficient:Le,transactionRequirements:Ue};return{sufficient:Le,transactionRequirements:Ue,router:{availableRoutingOptions:qe,routingOutcome:await processRoutes(D,Pe,Le,qe,Ue,De,_e,ve,we)}}};var rZ;!function(D){D.SUCCESS="SUCCESS",D.FAILED="FAILED"}(rZ||(rZ={}));const setTransactionGasLimits=async(D,te)=>{const he=te,{chainId:ye}=await D.getNetwork();return(D=>D===dQ.IMTBL_ZKEVM_DEVNET||D===dQ.IMTBL_ZKEVM_TESTNET||D===dQ.IMTBL_ZKEVM_MAINNET)(ye)?(void 0!==he.gasPrice||(!function isGasFree(D){return function isPassportProvider(D){return!0===D?.provider?.isPassport}(D)}(D)?(he.maxFeePerGas=CQ.maxFeePerGas,he.maxPriorityFeePerGas=CQ.maxPriorityFeePerGas):he.gasPrice=Li.from(0)),he):he},handleProviderError=D=>D.code===li.INSUFFICIENT_FUNDS?new CheckoutError(D.message,oQ.INSUFFICIENT_FUNDS,{error:D}):D.code===li.ACTION_REJECTED?new CheckoutError(D.message,oQ.USER_REJECTED_REQUEST_ERROR,{error:D}):D.code===li.UNPREDICTABLE_GAS_LIMIT?new CheckoutError(D.message,oQ.UNPREDICTABLE_GAS_LIMIT,{error:D}):new CheckoutError(D.message,oQ.TRANSACTION_FAILED,{error:D}),sendTransaction=async(D,te)=>{try{const he=D.getSigner(),ye=await setTransactionGasLimits(D,te);return{transactionResponse:await he.sendTransaction(ye)}}catch(D){throw handleProviderError(D)}},signApprovalTransactions=async(D,te)=>{let he=[];try{const ye=await Promise.all(te.map((te=>sendTransaction(D,te))));he=await Promise.all(ye.map((D=>D.transactionResponse.wait())))}catch(D){throw new CheckoutError("An error occurred while executing the approval transaction",oQ.EXECUTE_APPROVAL_TRANSACTION_ERROR,{error:D})}for(const D of he)if(0===D.status)return{type:rZ.FAILED,transactionHash:D.transactionHash,reason:"Approval transaction failed and was reverted"};return{type:rZ.SUCCESS}},signFulfillmentTransactions=async(D,te)=>{let he=[];try{const ye=await Promise.all(te.map((te=>sendTransaction(D,te))));he=await Promise.all(ye.map((D=>D.transactionResponse.wait())))}catch(D){throw new CheckoutError("An error occurred while executing the fulfillment transaction",oQ.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{error:D})}for(const D of he)if(0===D.status)return{type:rZ.FAILED,transactionHash:D.transactionHash,reason:"Fulfillment transaction failed and was reverted"};return{type:rZ.SUCCESS}},getUnsignedFulfillmentTransactions=async D=>{let te=[];const he=[];for(const te of D)te.type===vG.TRANSACTION&&te.purpose===wG.FULFILL_ORDER&&he.push(te.buildTransaction());return te=await Promise.all(he),te},calculateFeesPercent=(D,te,he=Li.from(1))=>{const ye=D.amount,be=Math.round(ye.percentageDecimal*10**6),ve=te.mul(Li.from(be)).div(10**6);return ve.sub(ve.mod(he))},calculateFeesToken=(D,te)=>parseUnits$1(D.amount.token,te),calculateFees=(D,te,he=18,ye=Li.from(1))=>{let be=Li.from(0);const ve=Li.from(te),we=ve.mul(1e6).div(10**6),_e=[];for(const te of D){let D=Li.from(0);if(Object.hasOwn(te.amount,"percentageDecimal"))D=calculateFeesPercent(te,ve,ye),be=be.add(D);else{if(!Object.hasOwn(te.amount,"token"))throw new CheckoutError("Unknown fee type parsed, must be percentageDecimal or token",oQ.ORDER_FEE_ERROR);D=calculateFeesToken(te,he),be=be.add(D)}if(be.gt(we))throw new CheckoutError("The combined fees are above the allowed maximum of 100%",oQ.ORDER_FEE_ERROR);D.gt(0)&&_e.push({amount:D.toString(),recipientAddress:te.recipient})}return _e},getItemRequirement=(D,te,he,ye,be=!1)=>{switch(D){case LQ.ERC20:return{type:D,amount:he,tokenAddress:te,spenderAddress:ye,isFee:be};case LQ.NATIVE:default:return{type:LQ.NATIVE,amount:he,isFee:be}}},buy=async(D,te,he,ye={waitFulfillmentSettlements:!0})=>{if(Ln("checkout_sdk","buy_initiated"),0===he.length)throw new CheckoutError("No orders were provided to the orders array. Please provide at least one order.",oQ.FULFILL_ORDER_LISTING_ERROR);let be,ve="",we=18;const _e=kG.estimatedFulfillmentGasGwei,Pe=createOrderbookInstance(D),Ie=createBlockchainDataInstance(D),Re=await measureAsyncExecution(D,"Time to get the address from the provider",te.getSigner().getAddress());resetBlockscoutClientMap(),getAllBalances(D,te,Re,getL1ChainId(D)),getAllBalances(D,te,Re,getL2ChainId(D));const{id:ke,takerFees:Oe,fillAmount:xe}=he[0];let Be;try{be=await measureAsyncExecution(D,"Time to fetch the listing from the orderbook",Pe.getListing(ke));const{seaportContractAddress:te,chainName:he}=Pe.config();Be=he,ve=te}catch(D){throw new CheckoutError("An error occurred while getting the order listing",oQ.GET_ORDER_LISTING_ERROR,{error:D,orderId:ke})}if(0===be.result.buy.length)throw new CheckoutError("An error occurred with the get order listing",oQ.GET_ORDER_LISTING_ERROR,{orderId:ke,message:"No buy side tokens found on order"});const Fe=be.result.buy[0];if("ERC20"===Fe.type){const te=await measureAsyncExecution(D,"Time to get decimals of token contract for the buy token",Ie.getToken({contractAddress:Fe.contractAddress,chainName:Be}));te.result.decimals&&(we=te.result.decimals)}let De=[];if(Oe&&Oe.length>0){const D=be.result.sell[0].type===LQ.ERC721?Li.from(1):Li.from(be.result.sell[0].amount);De=calculateFees(Oe,Fe.amount,we,D)}let Le=[],Ue=[],qe=[];const je=performance.now();try{const{actions:te}=await measureAsyncExecution(D,"Time to call fulfillOrder from the orderbook",Pe.fulfillOrder(ke,Re,De,xe));qe=te,Le=await measureAsyncExecution(D,"Time to construct the unsigned approval transactions",(async D=>{let te=[];const he=[];for(const te of D)te.type===vG.TRANSACTION&&te.purpose===wG.APPROVAL&&he.push(te.buildTransaction());return te=await Promise.all(he),te})(te))}catch(te){const he=(performance.now()-je)/1e3;if(debugLogger(D,"Time to call fulfillOrder from the orderbook",he),te.message.includes(mG.EXPIRED))throw new CheckoutError("Order is expired",oQ.ORDER_EXPIRED_ERROR,{orderId:ke});if(!te.message.includes("The fulfiller does not have the balances needed to fulfill"))throw new CheckoutError("Error occurred while trying to fulfill the order",oQ.FULFILL_ORDER_LISTING_ERROR,{orderId:ke,error:te})}try{Ue=await measureAsyncExecution(D,"Time to construct the unsigned fulfillment transactions",getUnsignedFulfillmentTransactions(qe))}catch{}let Je=Li.from("0"),et=LQ.NATIVE,tt="";const rt=be.result.buy;if(rt.length>0)switch(rt[0].type){case"NATIVE":et=LQ.NATIVE;break;case"ERC20":et=LQ.ERC20,tt=rt[0].contractAddress;break;default:throw new CheckoutError("Purchasing token type is unsupported",oQ.UNSUPPORTED_TOKEN_TYPE_ERROR,{orderId:ke})}rt.forEach((D=>{D.type!==LQ.ERC721&&(Je=Je.add(Li.from(D.amount)))}));be.result.fees.forEach((D=>{Je=Je.add(Li.from(D.amount))})),"ERC1155"===be.result.sell[0].type&&xe&&(Je=Je.mul(Li.from(xe)).div(Li.from(be.result.sell[0].amount)));const nt=[getItemRequirement(et,tt,Je,ve)],at=await measureAsyncExecution(D,"Total time running smart checkout",smartCheckout(D,te,nt,((D,te)=>te.length>0?{type:UQ.TRANSACTION,transaction:te[0]}:{type:UQ.GAS,gasToken:{type:$Q.NATIVE,limit:Li.from(D)}})(_e,Ue)));if(at.sufficient){const D=await signApprovalTransactions(te,Le);if(D.type===rZ.FAILED)return{status:DQ.FAILED,transactionHash:D.transactionHash,reason:D.reason,smartCheckoutResult:at};try{0===Ue.length&&(Ue=await getUnsignedFulfillmentTransactions(qe))}catch(D){throw new CheckoutError("Error fetching fulfillment transaction",oQ.FULFILL_ORDER_LISTING_ERROR,{error:D})}if(ye.waitFulfillmentSettlements){const D=await signFulfillmentTransactions(te,Ue);return D.type===rZ.FAILED?{status:DQ.FAILED,transactionHash:D.transactionHash,reason:D.reason,smartCheckoutResult:at}:{status:DQ.SUCCESS,smartCheckoutResult:at}}let he;try{const D=await Promise.all(Ue.map((D=>sendTransaction(te,D))));he=D.map((D=>D.transactionResponse))}catch(D){throw new CheckoutError("An error occurred while executing the fulfillment transaction",oQ.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:D.message})}return{status:DQ.FULFILLMENTS_UNSETTLED,smartCheckoutResult:at,transactions:he}}return{status:DQ.INSUFFICIENT_FUNDS,smartCheckoutResult:at}},cancel=async(D,te,he,ye={waitFulfillmentSettlements:!0,useGaslessCancel:!1})=>{const be=createOrderbookInstance(D);return ye.useGaslessCancel?await(async(D,te,he)=>{try{const ye=te.getSigner(),be=await ye.getAddress(),{signableAction:ve}=await D.prepareOrderCancellations(he),we=await ye._signTypedData(ve.message.domain,ve.message.types,ve.message.value),{result:_e}=await D.cancelOrders(he,be,we),Pe=[],Ie=[],Re=[];for(const D of _e.successful_cancellations)Pe.push({orderId:D});for(const D of _e.failed_cancellations)Ie.push({orderId:D.order,reason:D.reason_code});for(const D of _e.pending_cancellations)Re.push({orderId:D});return{successfulCancellations:Pe,failedCancellations:Ie,pendingCancellations:Re}}catch(D){throw new CheckoutError("An error occurred while cancelling the order listing",oQ.CANCEL_ORDER_LISTING_ERROR,{orderIds:he,error:D})}})(be,te,he):await(async(D,te,he,ye,be)=>{let ve;if(0===ye.length)throw new CheckoutError("No orderIds were provided to the orderIds array. Please provide at least one orderId.",oQ.CANCEL_ORDER_LISTING_ERROR);const we=ye[0];try{const ye=await measureAsyncExecution(D,"Time to get the address from the provider",he.getSigner().getAddress()),be=await measureAsyncExecution(D,"Time to get the cancel order from the orderbook",te.cancelOrdersOnChain([we],ye));ve=await be.cancellationAction.buildTransaction()}catch(D){throw new CheckoutError("An error occurred while cancelling the order listing",oQ.CANCEL_ORDER_LISTING_ERROR,{orderId:we,error:D})}if(be){const D=await signFulfillmentTransactions(he,[ve]);return D.type===rZ.FAILED?{status:DQ.FAILED,transactionHash:D.transactionHash,reason:D.reason}:{status:DQ.SUCCESS}}let _e;try{const D=await Promise.all([ve].map((D=>sendTransaction(he,D))));_e=D.map((D=>D.transactionResponse))}catch(D){throw new CheckoutError("An error occurred while executing the fulfillment transaction",oQ.EXECUTE_FULFILLMENT_TRANSACTION_ERROR,{message:D.message})}return{status:DQ.FULFILLMENTS_UNSETTLED,transactions:_e}})(D,be,te,he,ye.waitFulfillmentSettlements??!0)};async function getItemRequirementsFromRequirements(D,te){const he=[];te.forEach((te=>{if(te.type===LQ.ERC20){const{tokenAddress:ye}=te;he.push(function getTokenContract(D,te,he){return new fu(D,te,he)}(ye,EQ,D).decimals())}}));const ye=await Promise.all(he),be=te.map(((D,te)=>D.type===LQ.NATIVE?{...D,amount:parseUnits$1(D.amount,18)}:D.type===LQ.ERC20?{...D,amount:parseUnits$1(D.amount,ye[te])}:D));return be}const sell=async(D,te,he)=>{let ye,be,ve="";if(Ln("checkout_sdk","sell_initiated"),0===he.length)throw new CheckoutError("No orders were provided to the orders array. Please provide at least one order.",oQ.PREPARE_ORDER_LISTING_ERROR);const{buyToken:we,sellToken:_e,makerFees:Pe,orderExpiry:Ie}=he[0];let Re=18;if(we.type===LQ.ERC20){const he=new fu(we.tokenAddress,JSON.stringify(EQ),te);Re=await measureAsyncExecution(D,"Time to get decimals of token contract for the buy token",he.decimals())}const ke=((D,te=18)=>{const he=parseUnits$1(D.amount,te);return D.type===LQ.NATIVE?{type:LQ.NATIVE,amount:he.toString()}:{type:LQ.ERC20,amount:he.toString(),contractAddress:D.tokenAddress}})(we,Re),Oe="type"in _e;try{const he=await measureAsyncExecution(D,"Time to get the address from the provider",te.getSigner().getAddress());ye=createOrderbookInstance(D);const{seaportContractAddress:we}=ye.config();ve=we;const Pe=Oe&&_e.type===LQ.ERC1155?{type:LQ.ERC1155,contractAddress:_e.collectionAddress,tokenId:_e.id,amount:_e.amount}:{type:LQ.ERC721,contractAddress:_e.collectionAddress,tokenId:_e.id};be=await measureAsyncExecution(D,"Time to prepare the listing from the orderbook",ye.prepareListing({makerAddress:he,buy:ke,sell:Pe,orderExpiry:Ie}))}catch(D){throw new CheckoutError("An error occurred while preparing the listing",oQ.PREPARE_ORDER_LISTING_ERROR,{error:D,id:_e.id,collectionAddress:_e.collectionAddress})}const xe=[];if(Oe&&_e.type===LQ.ERC1155){const D=((D,te,he,ye)=>({type:LQ.ERC1155,id:D,contractAddress:te,spenderAddress:he,amount:Li.from(ye)}))(_e.id,_e.collectionAddress,ve,_e.amount);xe.push(D)}else{const D=((D,te,he)=>({type:LQ.ERC721,id:D,contractAddress:te,spenderAddress:he}))(_e.id,_e.collectionAddress,ve);xe.push(D)}let Be;const Fe=te.provider?.isPassport;if(Be=Fe?{sufficient:!0,transactionRequirements:[]}:await measureAsyncExecution(D,"Total time running smart checkout",smartCheckout(D,te,xe,{type:UQ.GAS,gasToken:{type:$Q.NATIVE,limit:Li.from(kG.estimatedFulfillmentGasGwei)}})),Be.sufficient){const D=await(async D=>{let te=[],he=[];const ye=[],be=[];for(const te of D)te.type===vG.TRANSACTION&&(te.purpose===wG.APPROVAL&&ye.push(te.buildTransaction()),te.purpose===wG.FULFILL_ORDER&&be.push(te.buildTransaction()));return te=await Promise.all(ye),he=await Promise.all(be),{approvalTransactions:te,fulfillmentTransactions:he}})(be.actions),he=await signApprovalTransactions(te,D.approvalTransactions);if(he.type===rZ.FAILED)return{status:DQ.FAILED,transactionHash:he.transactionHash,reason:he.reason,smartCheckoutResult:Be};const ve=((D,te,he)=>{let ye;for(const D of he)D.type===vG.SIGNABLE&&D.purpose===_G.CREATE_LISTING&&(ye={domain:D.message.domain,types:D.message.types,value:D.message.value});if(ye)return{orderHash:D,orderComponents:te,unsignedMessage:ye}})(be.orderHash,be.orderComponents,be.actions);if(!ve)throw new CheckoutError("The unsigned message is missing after preparing the listing",oQ.SIGN_MESSAGE_ERROR,{id:_e.id,collectionAddress:_e.collectionAddress});const we=await(async(D,te)=>{try{const he=await D.getSigner()._signTypedData(te.unsignedMessage.domain,te.unsignedMessage.types,te.unsignedMessage.value);return{orderComponents:te.orderComponents,orderHash:te.orderHash,signedMessage:he}}catch(D){throw new CheckoutError("An error occurred while signing the message",oQ.SIGN_MESSAGE_ERROR,{error:D})}})(te,ve);let Ie="";const xe={orderComponents:we.orderComponents,orderHash:we.orderHash,orderSignature:we.signedMessage,makerFees:[]};if(void 0!==Pe){let D=Li.from(1);Oe&&_e.type===LQ.ERC1155&&(D=Li.from(_e.amount));const te=calculateFees(Pe,ke.amount,Re,D);if(te.length!==Pe.length)throw new CheckoutError("One of the fees is too small, must be greater than 0.000001",oQ.CREATE_ORDER_LISTING_ERROR);xe.makerFees=te}try{Ie=(await ye.createListing(xe)).result.id}catch(D){throw new CheckoutError("An error occurred while creating the listing",oQ.CREATE_ORDER_LISTING_ERROR,{error:D,collectionId:_e.id,collectionAddress:_e.collectionAddress})}return{status:DQ.SUCCESS,orderIds:[Ie],smartCheckoutResult:Be}}return{status:DQ.INSUFFICIENT_FUNDS,smartCheckoutResult:Be}},swapQuote=async(D,te,he,ye,be,ve,we,_e,Pe)=>{if(!he.address||0===he.decimals)throw new CheckoutError("fromToken address or decimals is missing.",oQ.MISSING_PARAMS);if(!ye.address||0===ye.decimals)throw new CheckoutError("toToken address or decimals is missing.",oQ.MISSING_PARAMS);if(be&&ve)throw new CheckoutError("Only one of fromAmount or toAmount can be provided.",oQ.MISSING_PARAMS);if(!be&&!ve)throw new CheckoutError("fromAmount or toAmount must be provided.",oQ.MISSING_PARAMS);const Ie=getL2ChainId(D),Re=await createExchangeInstance(Ie,D),ke=await te.getSigner().getAddress();return be?Re.getUnsignedSwapTxFromAmountIn(ke,he.address,ye.address,Li.from(parseUnits$1(be,he.decimals)),we,_e,Pe):Re.getUnsignedSwapTxFromAmountOut(ke,he.address,ye.address,Li.from(parseUnits$1(ve,ye.decimals)),we,_e,Pe)};async function getLatestVersion(){const D=`https://cdn.jsdelivr.net/npm/@imtbl/sdk@latest/dist/version.json?t=${Date.now()}`,te="latest";try{const he=await fetch(D);if(!he.ok)return te;const ye=await he.json(),be=ye.version?.trim();return be||te}catch(D){return te}}async function determineWidgetsVersion(D,te,he){if(te)return D;if(D.includes("alpha"))return D;if(!he||!Array.isArray(he.compatibleVersionMarkers))return D;const ye=function latestCompatibleVersion(D,te){for(const he of te)if(iQ.valid(he)&&iQ.lte(D,he))return he;return"latest"}(D,he.compatibleVersionMarkers);return"latest"===ye?await getLatestVersion():ye}var nZ;!function(D){D.LOW="Low",D.MEDIUM="Medium",D.HIGH="High",D.SEVERE="Severe"}(nZ||(nZ={}));const fetchRiskAssessment=async(D,te)=>{const he=Object.fromEntries(D.map((D=>[D.toLowerCase(),{sanctioned:!1}]))),ye=await te.remote.getConfig("riskAssessment");if(!ye?.enabled)return he;try{const be=ye?.levels.map((D=>D.toLowerCase()))??[],ve=await Kt.post(`${bQ[te.environment]}/v1/sanctions/check`,{addresses:D});for(const D of ve.data)he[D.address.toLowerCase()].sanctioned=be.includes(D.risk.toLowerCase());return he}catch(D){return console.error("Error fetching risk assessment",D),he}},isAddressSanctioned=(D,te)=>te?D[te.toLowerCase()].sanctioned:Object.values(D).some((D=>D.sanctioned)),aZ={baseConfig:{environment:ra.SANDBOX},passport:void 0};var iZ=Object.freeze({__proto__:null,get AddTokensEventType(){return ZX},BlockExplorerService:class BlockExplorerService{static getTransactionLink(D,te){const he=AQ?.[D]?.url;if(he&&te)return`${he}/tx/${te}`}},get BridgeEventType(){return zX},get ChainId(){return dQ},get ChainName(){return uQ},get ChainSlug(){return fQ},Checkout:class Checkout{readOnlyProviders;httpClient;config;fiatRampService;availability;passport;constructor(D=aZ){this.httpClient=new HttpClient(D),this.config=new CheckoutConfiguration(D,this.httpClient),this.fiatRampService=new FiatRampService(this.config),this.readOnlyProviders=new Map,this.availability=availabilityService(this.config.isDevelopment,this.config.isProduction),this.passport=D.passport,InjectedProvidersManager.getInstance().initialise(),Ln("checkout_sdk","initialised")}async widgets(D){const te=await this.config.remote.getConfig("checkoutWidgetsVersion"),he=function validateAndBuildVersion(D){const te="1.77.7";if(void 0===D||void 0===D.major)return te;if(!Number.isInteger(D.major)||D.major<0)return te;if(void 0!==D.minor&&D.minor<0)return te;if(void 0!==D.patch&&D.patch<0)return te;if(0===D.major&&void 0===D.minor)return te;if(0===D.major&&0===D.minor&&void 0===D.patch)return te;if(0===D.major&&void 0===D.minor&&void 0===D.patch)return te;if(0===D.major&&0===D.minor&&0===D.patch)return te;let he=D.major.toString();return void 0===D.minor||(Number.isInteger(D.minor)&&(he+=`.${D.minor.toString()}`),void 0===D.patch||(Number.isInteger(D.patch)&&(he+=`.${D.patch.toString()}`),void 0===D.prerelease||"alpha"!==D.prerelease||("alpha"===D.prerelease&&(he+=`-${D.prerelease}`),void 0===D.build||Number.isInteger(D.build)&&D.build>=0&&(he+=`.${D.build.toString()}`)))),he}(D.version),ye=void 0!==D.version,be=await determineWidgetsVersion(he,ye,te);Ln("checkout_sdk","widgets",{sdkVersion:"1.77.7",validatedSdkVersion:he,widgetsVersion:be});try{return await this.loadEsModules(D.config,be)}catch(D){throw new CheckoutError("Failed to load widgets script",oQ.WIDGETS_SCRIPT_LOAD_ERROR,{error:D})}}async loadUmdBundle(D,te){const he=this,ye=new Promise(((ye,be)=>{try{const ve="immutable-checkout-widgets-bundle";document.getElementById(ve)&&("undefined"!=typeof ImmutableCheckoutWidgets?ye(new ImmutableCheckoutWidgets.WidgetsFactory(he,D)):be(new CheckoutError("Failed to find ImmutableCheckoutWidgets script",oQ.WIDGETS_SCRIPT_LOAD_ERROR)));const we=document.createElement("script");we.addEventListener("load",(()=>{"undefined"!=typeof ImmutableCheckoutWidgets?ye(new ImmutableCheckoutWidgets.WidgetsFactory(he,D)):be(new CheckoutError("Failed to find ImmutableCheckoutWidgets script",oQ.WIDGETS_SCRIPT_LOAD_ERROR))})),we.addEventListener("error",(D=>{be(new CheckoutError("Failed to load widgets script",oQ.WIDGETS_SCRIPT_LOAD_ERROR,{error:D}))})),function loadUnresolvedBundle(D,te,he){if(void 0===window)throw new Error("missing window object: please run Checkout client side");if(void 0===document)throw new Error("missing document object: please run Checkout client side");let ye=`https://cdn.jsdelivr.net/npm/@imtbl/sdk@${he}/dist/browser/checkout/widgets.js`;D.setAttribute("id",te),D.setAttribute("data-version",he),D.setAttribute("src",ye),document.head.appendChild(D)}(we,ve,te)}catch(D){be(new CheckoutError("Failed to load widgets script",oQ.WIDGETS_SCRIPT_LOAD_ERROR,{error:D}))}}));return ye}async loadEsModules(D,te){const he=this;async function tryLoadEsModule(te){const ye=function getWidgetsEsmUrl(D){return`https://cdn.jsdelivr.net/npm/@imtbl/sdk@${D}/dist/browser/checkout/widgets-esm.js`}(te);try{const be=await import(ye);if(be&&be.WidgetsFactory)return new be.WidgetsFactory(he,D);throw new Error(`WidgetsFactory not found in loaded module for version: ${te}`)}catch(D){throw console.warn(`Failed to load ESM bundle for version ${te}. Error: ${D.message}`),D}}try{return await tryLoadEsModule(te)}catch(D){if(te===await getLatestVersion()&&"latest"!==te)try{return await tryLoadEsModule("latest")}catch(D){console.warn(`Failed to resolve Commerce Widgets module, falling back to UMD bundle. Error: ${D.message}`)}else console.warn(`Failed to resolve Commerce Widgets module for version ${te}, falling back to UMD bundle. \n          Error: ${D.message}`)}return await he.loadUmdBundle(D,te)}async createProvider(D){return await createProvider(D.walletProviderName,this.passport)}getInjectedProviders(){return InjectedProvidersManager.getInstance().getProviders()}findInjectedProvider(D){return InjectedProvidersManager.getInstance().findProvider(D)}onInjectedProvidersChange(D){return InjectedProvidersManager.getInstance().subscribe(D)}clearInjectedProviders(){return InjectedProvidersManager.getInstance().clear()}async checkIsWalletConnected(D){return async function checkIsWalletConnected(D){if(!D?.provider?.request)throw new CheckoutError("Check wallet connection request failed",oQ.PROVIDER_REQUEST_FAILED_ERROR,{rpcMethod:xQ.CHECK_CONNECTION});let te=[];try{te=await D.provider.request({method:xQ.CHECK_CONNECTION,params:[]})}catch(D){throw new CheckoutError("Check wallet connection request failed",oQ.PROVIDER_REQUEST_FAILED_ERROR,{error:D,rpcMethod:xQ.CHECK_CONNECTION})}return{isConnected:te&&te.length>0,walletAddress:te[0]??""}}(await validateProvider(this.config,D.provider,{allowMistmatchedChainId:!0,allowUnsupportedProvider:!0}))}async getRiskAssessment(D){return await fetchRiskAssessment(D,this.config)}checkIsAddressSanctioned(D,te){return isAddressSanctioned(D,te)}async connect(D){const te=await validateProvider(this.config,D.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return D.requestWalletPermissions&&!te.provider?.isPassport?await async function requestPermissions(D){if(!D||!D.provider?.request)throw new CheckoutError("Incompatible provider",oQ.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await withCheckoutError((async()=>{D.provider.request&&await D.provider.request({method:xQ.REQUEST_PERMISSIONS,params:[{eth_accounts:{}}]})}),{type:oQ.USER_REJECTED_REQUEST_ERROR}),D}(te):await async function connectSite(D){if(!D||!D.provider?.request)throw new CheckoutError("Incompatible provider",oQ.PROVIDER_REQUEST_MISSING_ERROR,{details:"Attempting to connect with an incompatible provider"});return await withCheckoutError((async()=>{D.provider.request&&await D.provider.request({method:xQ.CONNECT,params:[]})}),{type:oQ.USER_REJECTED_REQUEST_ERROR}),D}(te),{provider:te}}async addNetwork(D){return await addNetworkToWallet(this.config.networkMap,D.provider,D.chainId)}async switchNetwork(D){const te=await validateProvider(this.config,D.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await switchWalletNetwork(this.config,te,D.chainId)}async getTokenInfo(D){return await getERC20TokenInfo(D.provider,D.tokenAddress)}async getBalance(D){const te=await validateProvider(this.config,D.provider);return D.tokenAddress&&""!==D.tokenAddress?await getERC20Balance(te,D.walletAddress,D.tokenAddress):await getBalance(this.config,te,D.walletAddress)}async getAllBalances(D){return getAllBalances(this.config,D.provider,D.walletAddress,D.chainId)}async getNetworkAllowList(D){return await getNetworkAllowList(this.config,D)}async getTokenAllowList(D){return await getTokenAllowList(this.config,D)}async getWalletAllowList(D){return await async function getWalletAllowList(D){const te=[],he=D.exclude?.map((D=>D.walletProviderName))??[];let ye=Object.values(MQ);0!==he.length&&(ye=ye.filter((D=>!he.includes(D))));for(const D of ye)te.push({walletProviderName:D});return{wallets:te}}(D)}async sendTransaction(D){const te=await validateProvider(this.config,D.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await sendTransaction(te,D.transaction)}async providerCall(D,te){const he=await validateProvider(this.config,D,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});try{return await te(he)}catch(D){throw handleProviderError(D)}}async getNetworkInfo(D){const te=await validateProvider(this.config,D.provider,{allowUnsupportedProvider:!0,allowMistmatchedChainId:!0});return await getNetworkInfo(this.config,te)}async buy(D){D.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const te=await validateProvider(this.config,D.provider);return await buy(this.config,te,D.orders,D.overrides)}async sell(D){D.orders.length>1&&console.warn("This endpoint currently only processes the first order in the array.");const te=await validateProvider(this.config,D.provider);return await sell(this.config,te,D.orders)}async cancel(D){console.warn("This endpoint currently only processes the first order in the array.");const te=await validateProvider(this.config,D.provider);return await cancel(this.config,te,D.orderIds,D.overrides)}async smartCheckout(D){const te=await validateProvider(this.config,D.provider);let he=[];try{he=await getItemRequirementsFromRequirements(te,D.itemRequirements)}catch(D){throw new CheckoutError("Failed to map item requirements",oQ.ITEM_REQUIREMENTS_ERROR,{error:D})}return await smartCheckout(this.config,te,he,D.transactionOrGasAmount,D.routingOptions,D.onComplete,D.onFundingRoute,D.fundingRouteFullAmount)}static isWeb3Provider(D){return isWeb3Provider(D)}async gasEstimate(D){return this.readOnlyProviders=await createReadOnlyProviders(this.config,this.readOnlyProviders),await gasEstimator(D,this.readOnlyProviders,this.config)}async createFiatRampUrl(D){let te,he,ye="IMX";const be=await D.web3Provider.getSigner().getAddress(),ve=D.web3Provider.provider?.isPassport||!1;if(ve&&D.passport){const te=await D.passport.getUserInfo();he=te?.email}const we=await getTokenAllowList(this.config,{type:OQ.ONRAMP}),_e=we.tokens?.find((te=>isMatchingAddress(te.address,D.tokenAddress)));_e&&(te=D.tokenAmount,ye=_e.symbol);const Pe=we?.tokens?.filter((D=>D.symbol)).map((D=>D.symbol));return await this.fiatRampService.createWidgetUrl({exchangeType:D.exchangeType,isPassport:ve,walletAddress:be,tokenAmount:te,tokenSymbol:ye,email:he,allowedTokens:Pe})}async getExchangeFeeEstimate(){return await this.fiatRampService.feeEstimate()}async isSwapAvailable(){return this.availability.checkDexAvailability()}async swap(D){const te=await validateProvider(this.config,D.provider);return(async(D,te,he,ye,be,ve,we,_e,Pe)=>{const Ie=await swapQuote(D,te,he,ye,be,ve,we,_e,Pe);if(Ie.approval){const D=await sendTransaction(te,Ie.approval.transaction);if(0===(await D.transactionResponse.wait()).status)throw new CheckoutError("Approval transaction failed and was reverted",oQ.APPROVAL_TRANSACTION_FAILED)}const Re=await sendTransaction(te,Ie.swap.transaction),ke=await Re.transactionResponse.wait();if(0===ke.status)throw new CheckoutError("Swap transaction failed and was reverted",oQ.TRANSACTION_FAILED);return{swapReceipt:ke,quote:Ie.quote,swap:Ie.swap}})(this.config,te,D.fromToken,D.toToken,D.fromAmount,D.toAmount,D.slippagePercent,D.maxHops,D.deadline)}async swapQuote(D){const te=await validateProvider(this.config,D.provider);return swapQuote(this.config,te,D.fromToken,D.toToken,D.fromAmount,D.toAmount,D.slippagePercent,D.maxHops,D.deadline)}},CheckoutConfiguration:CheckoutConfiguration,CheckoutError:CheckoutError,get CheckoutErrorType(){return oQ},get CheckoutStatus(){return DQ},get CommerceEventType(){return KX},get CommerceFailureEventType(){return XX},get CommerceFlowType(){return nQ},get CommerceSuccessEventType(){return JX},get CommerceUserActionEventType(){return QX},get ConnectEventType(){return $X},get ConnectTargetLayer(){return tQ},get ExchangeType(){return HQ},get FeeType(){return GQ},get FundingStepType(){return jQ},get GasEstimateType(){return RQ},get GasTokenType(){return $Q},IMMUTABLE_API_BASE_URL:bQ,get IMTBLWidgetEvents(){return LX},get ItemType(){return LQ},get NetworkFilterTypes(){return kQ},get OnRampEventType(){return VX},get OrchestrationEventType(){return WX},get ProviderEventType(){return UX},get PurchaseEventType(){return YX},get RoutingOutcomeType(){return qQ},get SaleEventType(){return jX},get SalePaymentTypes(){return HX},get SwapDirection(){return rQ},get SwapEventType(){return GX},get TokenFilterTypes(){return OQ},get TransactionOrGasType(){return UQ},get WalletEventType(){return qX},get WalletFilterTypes(){return NQ},get WalletProviderName(){return MQ},get WalletProviderRdns(){return BQ},get WidgetTheme(){return aQ},get WidgetType(){return eQ},fetchRiskAssessment:fetchRiskAssessment,getMetaMaskProviderDetail:D=>({info:JQ,provider:D}),getPassportProviderDetail:D=>({info:XQ,provider:D}),isAddressSanctioned:isAddressSanctioned,validateProvider:validateProvider});async function validateChain(D,te){if(!function isChainValid(D,te){return D===te.ethConfiguration.chainID}(await D.getChainId(),te))throw new Error("The wallet used for this operation is not connected to the correct network.")}async function isRegisteredOnChain(D,te,he){await validateChain(te,he.immutableXConfig);const ye=he.immutableXConfig,be=qv.RegistrationV4.connect(ye.ethConfiguration.registrationV4ContractAddress||ye.ethConfiguration.registrationContractAddress,te);try{return await be.isRegistered(D)}catch(D){if("USER_UNREGISTERED"===D.reason)return!1;throw D}}const assertIsDefined=D=>{if(void 0!==D)return D;throw new Error("undefined field exception")};async function prepareWithdrawalAction(D,te){const{signers:{ethSigner:he,starkSigner:ye}}=D;await validateChain(he,D.config);const be="ERC721"===D.type?"1":D.amount,ve=await te.getSignableWithdrawalV2({getSignableWithdrawalRequest:{user:await he.getAddress(),token:convertToSignableToken(D),amount:be}}),{signable_message:we,payload_hash:_e}=ve.data,Pe=await ye.signMessage(_e),{ethAddress:Ie,ethSignature:Re}=await async function signMessage$1(D,te){return{message:D,ethAddress:await te.getAddress(),ethSignature:await signRaw(D,te)}}(we,he);return(await te.createWithdrawalV2({createWithdrawalRequestV2:{sender_stark_key:assertIsDefined(ve.data.sender_stark_key),sender_vault_id:assertIsDefined(ve.data.sender_vault_id),receiver_stark_key:assertIsDefined(ve.data.receiver_stark_key),receiver_vault_id:assertIsDefined(ve.data.receiver_vault_id),amount:be,asset_id:assertIsDefined(ve.data.asset_id),expiration_timestamp:assertIsDefined(ve.data.expiration_timestamp),nonce:assertIsDefined(ve.data.nonce),stark_signature:Pe},xImxEthAddress:Ie,xImxEthSignature:Re})).data}async function getEncodeAssetInfo(D,te,he,ye){const be=new Ca.EncodingApi(he.apiConfiguration);return(await be.encodeAsset({assetType:D,encodeAssetRequest:{token:{type:te,...ye&&{data:ye}}}})).data}async function getWithdrawalBalance(D,te,he,ye){return qv.CoreV4.connect(ye.ethConfiguration.coreContractAddress,D).getWithdrawalBalance(te,he)}async function getWithdrawalBalanceWorkflow(D,te,he,ye,be,ve){switch(he.type){case"ETH":return await async function getETHWithdrawalBalance(D,te,he){const ye=await getEncodeAssetInfo("asset","ETH",he);return await getWithdrawalBalance(D,te,ye.asset_id,he)}(D,te,ve);case"ERC20":return await async function getERC20WithdrawalBalance(D,te,he,ye){const be=await getEncodeAssetInfo("asset","ERC20",ye,{token_address:he});return await getWithdrawalBalance(D,te,be.asset_id,ye)}(D,te,he.tokenAddress,ve);case"ERC721":return await async function getERC721WithdrawalBalance(D,te,he,ye,be,ve){try{const ye=await be.getMintableTokenDetailsByClientTokenId({tokenAddress:he.tokenAddress,tokenId:he.tokenId}),we=await getEncodeAssetInfo("mintable-asset","ERC721",ve,{id:he.tokenId,token_address:he.tokenAddress,...ye.data.blueprint&&{blueprint:ye.data.blueprint}});return await getWithdrawalBalance(D,te,we.asset_id,ve)}catch(ye){if(404===ye.response?.status){const ye=await getEncodeAssetInfo("asset","ERC721",ve,{token_id:he.tokenId,token_address:he.tokenAddress});return await getWithdrawalBalance(D,te,ye.asset_id,ve)}throw ye}}(D,te,he,0,be,ve);default:throw new Error("Unsupported token type")}}async function getWithdrawalBalances(D,te,he,ye,be){new EncodingApi(be.apiConfiguration);const ve=new MintsApi(be.apiConfiguration);return{v3Balance:await getWithdrawalBalanceWorkflow(D,te,ye,0,ve,be),v4Balance:await getWithdrawalBalanceWorkflow(D,he,ye,0,ve,be)}}const sZ="ERC20";async function executeRegisterAndWithdrawAllFungible(D,te,he,ye,be){const ve=await D.getAddress(),we=await signRegisterEthAddress(te,ve,he),_e=qv.RegistrationV4.connect(be.ethConfiguration.registrationV4ContractAddress||be.ethConfiguration.registrationContractAddress,D),Pe=await _e.populateTransaction.registerAndWithdrawAll(ve,he,we,ye);return D.sendTransaction(Pe)}async function executeWithdrawAllFungible(D,te,he,ye){const be=qv.RegistrationV4.connect(ye.ethConfiguration.registrationV4ContractAddress||ye.ethConfiguration.registrationContractAddress,D),ve=await be.populateTransaction.withdrawAll(await D.getAddress(),te,he);return D.sendTransaction(ve)}async function executeWithdrawFungible(D,te,he,ye){const be=qv.CoreV4.connect(ye.ethConfiguration.coreContractAddress,D),ve=await be.populateTransaction.withdraw(await D.getAddress(),he);return D.sendTransaction(ve)}const oZ="ERC721";function getMintingBlob(D){const{id:te}=D.data,he=D.data.blueprint||"";return Rs(Ts(`{${te}}:{${he}}`))}async function completeERC721RegisterAndWithdrawal(D,te,he,ye,be){return D.getMintableTokenDetailsByClientTokenId({tokenAddress:ye.tokenAddress,tokenId:ye.tokenId}).then((D=>async function executeMintableERC721RegisterAndWithdraw(D,te,he,ye){const be=await D.getAddress(),ve=await te.getAddress(),we=await getEncodeAssetInfo("mintable-asset",oZ,ye,{id:he.data.id,token_address:he.data.tokenAddress,...he.data.blueprint&&{blueprint:he.data.blueprint}}),_e=getMintingBlob(he),Pe=await signRegisterEthAddress(te,be,ve),Ie=qv.RegistrationV4.connect(ye.ethConfiguration.registrationV4ContractAddress||ye.ethConfiguration.registrationContractAddress,D),Re=await Ie.populateTransaction.registerWithdrawAndMint(be,ve,Pe,we.asset_type,_e);return D.sendTransaction(Re)}(te,he,{type:oZ,data:{id:ye.tokenId,tokenAddress:ye.tokenAddress,blueprint:D.data.blueprint}},be))).catch((D=>{if(404===D.response?.status)return async function executeERC721RegisterAndWithdraw(D,te,he,ye){const be=await D.getAddress(),ve=await te.getAddress(),we=await getEncodeAssetInfo("asset",oZ,ye,{token_id:he.tokenId,token_address:he.tokenAddress}),_e=await signRegisterEthAddress(te,be,ve),Pe=qv.RegistrationV4.connect(ye.ethConfiguration.registrationV4ContractAddress||ye.ethConfiguration.registrationContractAddress,D),Ie=await Pe.populateTransaction.registerAndWithdrawNft(be,ve,_e,we.asset_type,he.tokenId);return D.sendTransaction(Ie)}(te,he,ye,be);throw D}))}async function completeERC721Withdrawal(D,te,he,ye,be){return D.getMintableTokenDetailsByClientTokenId({tokenAddress:ye.tokenAddress,tokenId:ye.tokenId}).then((D=>async function executeMintableERC721Withdrawal(D,te,he,ye){const be=await getEncodeAssetInfo("mintable-asset",oZ,ye,{id:he.data.id,token_address:he.data.tokenAddress,...he.data.blueprint&&{blueprint:he.data.blueprint}}),ve=getMintingBlob(he),we=qv.CoreV4.connect(ye.ethConfiguration.coreContractAddress,D),_e=await we.populateTransaction.withdrawAndMint(te,be.asset_type,ve);return D.sendTransaction(_e)}(te,he,{type:oZ,data:{id:ye.tokenId,tokenAddress:ye.tokenAddress,blueprint:D.data.blueprint}},be))).catch((D=>{if(404===D.response?.status)return async function executeERC721Withdrawal(D,te,he,ye){const be=await getEncodeAssetInfo("asset",oZ,ye,{token_id:he.tokenId,token_address:he.tokenAddress}),ve=qv.CoreV4.connect(ye.ethConfiguration.coreContractAddress,D),we=await ve.populateTransaction.withdrawNft(te,be.asset_type,he.tokenId);return D.sendTransaction(we)}(te,he,ye,be);throw D}))}async function completeERC721WithdrawalAction({ethSigner:D,starkSigner:te,starkPublicKey:he,token:ye,config:be},ve){await validateChain(D,be.immutableXConfig);const we=await D.getAddress(),{v3Balance:_e,v4Balance:Pe}=await async function getWithdrawalBalancesERC721(D,te,he,ye,be,ve){return new EncodingApi(be.apiConfiguration),{v3Balance:await getWithdrawalBalanceWorkflow(D,te,ye,0,ve,be),v4Balance:await getWithdrawalBalanceWorkflow(D,he,ye,0,ve,be)}}(D,he,we,{type:oZ,tokenAddress:ye.tokenAddress,tokenId:ye.tokenId},be.immutableXConfig,ve);if(!_e.isZero()&&!_e.isNegative()){return await isRegisteredOnChain(he,D,be)?completeERC721Withdrawal(ve,D,he,ye,be.immutableXConfig):completeERC721RegisterAndWithdrawal(ve,D,te,ye,be.immutableXConfig)}if(!Pe.isZero()&&!Pe.isNegative())return completeERC721Withdrawal(ve,D,we,ye,be.immutableXConfig);throw new Error("No balance to withdraw")}const cZ="ETH";async function completeWithdrawal({signers:{ethSigner:D,starkSigner:te},starkPublicKey:he,token:ye,config:be}){const ve=new Ca.MintsApi(be.immutableXConfig.apiConfiguration);switch(ye.type){case"ETH":return async function completeEthWithdrawalAction({ethSigner:D,starkSigner:te,starkPublicKey:he,config:ye}){await validateChain(D,ye.immutableXConfig);const{v3Balance:be,v4Balance:ve}=await getWithdrawalBalances(D,he,await D.getAddress(),{type:cZ},ye.immutableXConfig),we=await getEncodeAssetInfo("asset",cZ,ye.immutableXConfig);if(!be.isZero()&&!be.isNegative())return await isRegisteredOnChain(he,D,ye)?executeWithdrawAllFungible(D,he,we.asset_type,ye.immutableXConfig):executeRegisterAndWithdrawAllFungible(D,te,he,we.asset_type,ye.immutableXConfig);if(!ve.isZero()&&!ve.isNegative())return executeWithdrawFungible(D,0,we.asset_type,ye.immutableXConfig);throw new Error("No balance to withdraw")}({ethSigner:D,starkSigner:te,starkPublicKey:he,config:be});case"ERC20":return async function completeERC20WithdrawalAction({ethSigner:D,starkSigner:te,starkPublicKey:he,token:ye,config:be}){await validateChain(D,be.immutableXConfig);const{v3Balance:ve,v4Balance:we}=await getWithdrawalBalances(D,he,await D.getAddress(),{type:sZ,tokenAddress:ye.tokenAddress},be.immutableXConfig),_e=await getEncodeAssetInfo("asset",sZ,be.immutableXConfig,{token_address:ye.tokenAddress});if(!ve.isZero()&&!ve.isNegative())return await isRegisteredOnChain(he,D,be)?executeWithdrawAllFungible(D,he,_e.asset_type,be.immutableXConfig):executeRegisterAndWithdrawAllFungible(D,te,he,_e.asset_type,be.immutableXConfig);if(!we.isZero()&&!we.isNegative())return executeWithdrawFungible(D,0,_e.asset_type,be.immutableXConfig);throw new Error("No balance to withdraw")}({ethSigner:D,starkSigner:te,starkPublicKey:he,token:ye,config:be});case"ERC721":return completeERC721WithdrawalAction({ethSigner:D,starkSigner:te,starkPublicKey:he,token:ye,config:be},ve)}}async function depositEth({signers:{ethSigner:D},deposit:te,config:he}){await validateChain(D,he.immutableXConfig);const ye=await D.getAddress(),be=parseUnits$1(te.amount,"wei"),ve=he.immutableXConfig,we=new Ca.DepositsApi(ve.apiConfiguration),_e=new Ca.EncodingApi(ve.apiConfiguration),Pe={user:ye,token:{type:te.type,data:{decimals:18}},amount:be.toString()},Ie=await we.getSignableDeposit({getSignableDepositRequest:Pe});return async function executeDepositEth(D,te,he,ye,be,ve){const we=qv.CoreV4.connect(ve.ethConfiguration.coreContractAddress,D),_e=await we.populateTransaction["deposit(uint256,uint256,uint256)"](ye,he,be);return D.sendTransaction({..._e,value:te})}(D,be,(await _e.encodeAsset({assetType:"asset",encodeAssetRequest:{token:{type:te.type}}})).data.asset_type,Ie.data.stark_key,Ie.data.vault_id,ve)}async function depositERC20({signers:{ethSigner:D},deposit:te,config:he}){await validateChain(D,he.immutableXConfig);const{apiConfiguration:ye,ethConfiguration:be}=he.immutableXConfig,ve=await D.getAddress(),we=new Ca.TokensApi(ye),_e=new Ca.DepositsApi(ye),Pe=new Ca.EncodingApi(ye),Ie=await we.getToken({address:te.tokenAddress}),Re={decimals:parseInt(Ie.data.decimals),token_address:te.tokenAddress},ke=parseUnits$1(te.amount,0),Oe=qv.IERC20.connect(te.tokenAddress,D),xe=await Oe.populateTransaction.approve(be.coreContractAddress,ke);await D.sendTransaction(xe);const Be={user:ve,token:{type:te.type,data:Re},amount:ke.toString()},Fe=await _e.getSignableDeposit({getSignableDepositRequest:Be}),De=(await Pe.encodeAsset({assetType:"asset",encodeAssetRequest:{token:{type:te.type,data:{token_address:te.tokenAddress}}}})).data.asset_type,Le=Fe.data.stark_key,Ue=Fe.data.vault_id;return async function executeDepositERC20(D,te,he,ye,be,ve){const we=qv.CoreV4.connect(ve.coreContractAddress,D),_e=await we.populateTransaction.depositERC20(ye,he,be,te);return D.sendTransaction(_e)}(D,Li.from(Fe.data.amount),De,Le,Ue,be)}async function depositERC721({signers:{ethSigner:D},deposit:te,config:he}){await validateChain(D,he.immutableXConfig);const ye=await D.getAddress(),{immutableXConfig:be}=he,ve=new Ca.DepositsApi(be.apiConfiguration),we=new Ca.EncodingApi(be.apiConfiguration),_e={token_address:te.tokenAddress,token_id:te.tokenId},Pe={user:ye,token:{type:te.type,data:_e},amount:"1".toString()},Ie=await ve.getSignableDeposit({getSignableDepositRequest:Pe}),Re=(await we.encodeAsset({assetType:"asset",encodeAssetRequest:{token:{type:te.type,data:{token_address:te.tokenAddress,token_id:te.tokenId}}}})).data.asset_type,ke=Ie.data.stark_key,Oe=Ie.data.vault_id,xe=qv.IERC721.connect(te.tokenAddress,D),Be=be.ethConfiguration.coreContractAddress;return await xe.isApprovedForAll(ye,Be)||await xe.setApprovalForAll(Be,!0),async function executeDepositERC721(D,te,he,ye,be,ve){const we=qv.CoreV4.connect(ve.ethConfiguration.coreContractAddress,D),_e=await we.populateTransaction.depositNft(ye,he,be,te);return D.sendTransaction(_e)}(D,te.tokenId,Re,ke,Oe,be)}class GenericIMXProvider{config;signers;constructor(D,te,he){this.config=D,this.signers={ethSigner:te,starkSigner:he}}async getAddress(){return this.signers.ethSigner.getAddress()}async isRegisteredOffchain(){return async function isRegisteredOffchain(D,te){try{const he=new Ca.UsersApi(te.immutableXConfig.apiConfiguration),ye=await he.getUsers({user:D}),{accounts:be}=ye.data;return be?.length>0}catch(D){if(jr(D)&&404===D.response?.status)return!1;throw D}}(await this.getAddress(),this.config)}registerOffchain(){return async function registerOffchain(D,te){await validateChain(D.ethSigner,te.immutableXConfig);const he=new Ca.UsersApi(te.immutableXConfig.apiConfiguration),ye=await D.ethSigner.getAddress(),be=await D.starkSigner.getAddress(),ve=await he.getSignableRegistrationOffchain({getSignableRegistrationRequest:{ether_key:ye,stark_key:be}}),{signable_message:we,payload_hash:_e}=ve.data,Pe=await signRaw(we,D.ethSigner),Ie=await D.starkSigner.signMessage(_e);return(await he.registerUser({registerUserRequest:{eth_signature:Pe,ether_key:ye,stark_signature:Ie,stark_key:be}})).data}(this.signers,this.config)}batchNftTransfer(D){return async function batchTransfer({signers:{ethSigner:D,starkSigner:te},request:he,config:ye}){await validateChain(D,ye.immutableXConfig);const be=await D.getAddress(),ve=new Ca.TransfersApi(ye.immutableXConfig.apiConfiguration),we=he.map((D=>({amount:"1",token:convertToSignableToken({type:"ERC721",tokenId:D.tokenId,tokenAddress:D.tokenAddress}),receiver:D.receiver}))),_e=await ve.getSignableTransfer({getSignableTransferRequestV2:{sender_ether_key:be,signable_requests:we}}),Pe=_e.data.signable_message;if(void 0===Pe)throw new Error("Invalid response from Signable registration offchain");const Ie=await signRaw(Pe,D),Re=[];for(const D of _e.data.signable_responses){const he=await te.signMessage(D.payload_hash),ye={sender_vault_id:D.sender_vault_id,receiver_stark_key:D.receiver_stark_key,receiver_vault_id:D.receiver_vault_id,asset_id:D.asset_id,amount:D.amount,nonce:D.nonce,expiration_timestamp:D.expiration_timestamp,stark_signature:he};Re.push(ye)}const ke={sender_stark_key:_e.data.sender_stark_key,requests:Re},Oe=await ve.createTransfer({createTransferRequestV2:ke,xImxEthAddress:be,xImxEthSignature:Ie});return{transfer_ids:Oe?.data.transfer_ids}}({signers:this.signers,request:D,config:this.config})}cancelOrder(D){return async function cancelOrder({signers:D,request:te,config:he}){const ye=new Ca.OrdersApi(he.immutableXConfig.apiConfiguration),be=await ye.getSignableCancelOrderV3({getSignableCancelOrderRequest:{order_id:te.order_id}}),{signable_message:ve,payload_hash:we}=be.data,_e=await signRaw(ve,D.ethSigner),Pe=await D.starkSigner.signMessage(we),Ie=await D.ethSigner.getAddress(),Re=await ye.cancelOrderV3({id:te.order_id.toString(),cancelOrderRequest:{order_id:te.order_id,stark_signature:Pe},xImxEthAddress:Ie,xImxEthSignature:_e});return{order_id:Re.data.order_id,status:Re.data.status}}({signers:this.signers,request:D,config:this.config})}completeWithdrawal(D,te){return completeWithdrawal({config:this.config,signers:this.signers,token:te,starkPublicKey:D})}createOrder(D){return async function createOrder({signers:D,request:te,config:he}){await validateChain(D.ethSigner,he.immutableXConfig);const ye=await D.ethSigner.getAddress(),be=new Ca.OrdersApi(he.immutableXConfig.apiConfiguration),ve="ERC721"===te.sell.type?"1":te.sell.amount,we={user:ye,amount_buy:"ERC721"===te.buy.type?"1":te.buy.amount,token_buy:convertToSignableToken(te.buy),amount_sell:ve,token_sell:convertToSignableToken(te.sell),fees:te.fees,expiration_timestamp:te.expiration_timestamp},_e=await be.getSignableOrder({getSignableOrderRequestV3:we}),{signable_message:Pe,payload_hash:Ie}=_e.data,Re=await signRaw(Pe,D.ethSigner),ke=await D.starkSigner.signMessage(Ie),Oe=_e.data,xe={createOrderRequest:{amount_buy:Oe.amount_buy,amount_sell:Oe.amount_sell,asset_id_buy:Oe.asset_id_buy,asset_id_sell:Oe.asset_id_sell,expiration_timestamp:Oe.expiration_timestamp,fees:te.fees,nonce:Oe.nonce,stark_key:Oe.stark_key,stark_signature:ke,vault_id_buy:Oe.vault_id_buy,vault_id_sell:Oe.vault_id_sell},xImxEthAddress:ye,xImxEthSignature:Re};return{...(await be.createOrderV3(xe)).data}}({signers:this.signers,request:D,config:this.config})}createTrade(D){return async function createTrade({signers:{ethSigner:D,starkSigner:te},request:he,config:ye}){await validateChain(D,ye.immutableXConfig);const be=await D.getAddress(),ve=new Ca.TradesApi(ye.immutableXConfig.apiConfiguration),we=await ve.getSignableTrade({getSignableTradeRequest:{user:be,order_id:he.order_id,fees:he.fees}}),{signable_message:_e,payload_hash:Pe}=we.data,Ie=await signRaw(_e,D),Re=await te.signMessage(Pe);return(await ve.createTradeV3({createTradeRequest:{amount_buy:we.data.amount_buy,amount_sell:we.data.amount_sell,asset_id_buy:we.data.asset_id_buy,asset_id_sell:we.data.asset_id_sell,expiration_timestamp:we.data.expiration_timestamp,fee_info:we.data.fee_info,fees:he.fees,include_fees:!0,nonce:we.data.nonce,order_id:he.order_id,stark_key:we.data.stark_key,vault_id_buy:we.data.vault_id_buy,vault_id_sell:we.data.vault_id_sell,stark_signature:Re},xImxEthAddress:be,xImxEthSignature:Ie})).data}({signers:this.signers,request:D,config:this.config})}deposit(D){return async function deposit({signers:D,deposit:te,config:he}){switch(te.type){case"ETH":return depositEth({signers:D,deposit:te,config:he});case"ERC20":return depositERC20({signers:D,deposit:te,config:he});case"ERC721":return depositERC721({signers:D,deposit:te,config:he})}}({signers:this.signers,deposit:D,config:this.config})}exchangeTransfer(D){return async function exchangeTransfer({signers:D,request:te,config:he}){await validateChain(D.ethSigner,he.immutableXConfig);const ye=new Ca.ExchangesApi(he.immutableXConfig.apiConfiguration),be=await D.ethSigner.getAddress(),ve=te.amount,we=await ye.getExchangeSignableTransfer({id:te.transactionID,getSignableTransferRequest:{sender:be,token:convertToSignableToken(te),amount:ve,receiver:te.receiver}}),{signable_message:_e,payload_hash:Pe}=we.data,Ie=await signRaw(_e,D.ethSigner),Re=await D.starkSigner.signMessage(Pe),ke={sender_stark_key:we.data.sender_stark_key,sender_vault_id:we.data.sender_vault_id,receiver_stark_key:we.data.receiver_stark_key,receiver_vault_id:we.data.receiver_vault_id,asset_id:we.data.asset_id,amount:we.data.amount,nonce:we.data.nonce,expiration_timestamp:we.data.expiration_timestamp,stark_signature:Re},Oe=await ye.createExchangeTransfer({id:te.transactionID,createTransferRequest:ke,xImxEthAddress:be,xImxEthSignature:Ie});return{sent_signature:Oe?.data.sent_signature,status:Oe?.data.status?.toString(),time:Oe?.data.time,transfer_id:Oe?.data.transfer_id}}({signers:this.signers,request:D,config:this.config})}async isRegisteredOnchain(){return isRegisteredOnChain(await this.signers.starkSigner.getAddress(),this.signers.ethSigner,this.config)}prepareWithdrawal(D){return async function prepareWithdrawal({signers:D,withdrawal:te,config:he}){const ye=new Ca.WithdrawalsApi(he.immutableXConfig.apiConfiguration);return prepareWithdrawalAction({signers:D,config:he.immutableXConfig,...te},ye)}({signers:this.signers,withdrawal:D,config:this.config})}transfer(D){return async function transfer({signers:{ethSigner:D,starkSigner:te},request:he,config:ye}){await validateChain(D,ye.immutableXConfig);const be=await D.getAddress(),ve=new Ca.TransfersApi(ye.immutableXConfig.apiConfiguration),we="ERC721"===he.type?"1":he.amount,_e=await ve.getSignableTransferV1({getSignableTransferRequest:{sender:be,token:convertToSignableToken(he),amount:we,receiver:he.receiver}}),{signable_message:Pe,payload_hash:Ie}=_e.data,Re=await signRaw(Pe,D),ke=await te.signMessage(Ie),Oe={sender_stark_key:_e.data.sender_stark_key,sender_vault_id:_e.data.sender_vault_id,receiver_stark_key:_e.data.receiver_stark_key,receiver_vault_id:_e.data.receiver_vault_id,asset_id:_e.data.asset_id,amount:_e.data.amount,nonce:_e.data.nonce,expiration_timestamp:_e.data.expiration_timestamp,stark_signature:ke},xe=await ve.createTransferV1({createTransferRequest:Oe,xImxEthAddress:be,xImxEthSignature:Re});return{sent_signature:xe?.data.sent_signature,status:xe?.data.status?.toString(),time:xe?.data.time,transfer_id:xe?.data.transfer_id}}({signers:this.signers,request:D,config:this.config})}}const dZ={SWITCH_CHAIN:"wallet_switchEthereumChain",CONNECT:"eth_requestAccounts"};const uZ="The Metamask provider was not found";async function connect$1({chainID:D}){const te=await FX();if(!function isRequestableProvider(D){return!!D?.request}(te))throw new Error(uZ);return await async function connectProvider(D,te){await D.request({method:dZ.CONNECT}),te&&await D.request({method:dZ.SWITCH_CHAIN,params:[{chainId:`0x${te.toString(16)}`}]})}(te,D),new Web3Provider(te)}const fZ="message";var lZ,pZ;function postRequestMessage(D,te){D&&D.contentWindow&&D.contentWindow.postMessage(te,new URL(D.src).origin)}function messageResponseListener(D,te,he,ye){if(D&&te.source!==D.contentWindow)return;const be=te.data;be.type===he&&ye(be.details)}!function(D){D.GET_CONNECTION_REQUEST="GET_CONNECTION_REQUEST",D.CONNECT_WALLET_REQUEST="CONNECT_WALLET_REQUEST",D.SIGN_MESSAGE_REQUEST="SIGN_MESSAGE_REQUEST",D.DISCONNECT_WALLET_REQUEST="DISCONNECT_WALLET_REQUEST",D.GET_Y_COORDINATE_REQUEST="GET_Y_COORDINATE_REQUEST"}(lZ||(lZ={})),function(D){D.CONNECT_WALLET_RESPONSE="CONNECT_WALLET_RESPONSE",D.SIGN_MESSAGE_RESPONSE="SIGN_MESSAGE_RESPONSE",D.GET_CONNECTION_RESPONSE="GET_CONNECTION_RESPONSE",D.DISCONNECT_WALLET_RESPONSE="DISCONNECT_WALLET_RESPONSE",D.GET_Y_COORDINATE_RESPONSE="GET_Y_COORDINATE_RESPONSE"}(pZ||(pZ={}));class ImxSigner{publicAddress;iframe;constructor(D,te){this.publicAddress=D,this.iframe=te}getAddress(){return this.publicAddress}signMessage(D){return new Promise(((te,he)=>{const listener=D=>{messageResponseListener(this.iframe,D,pZ.SIGN_MESSAGE_RESPONSE,(D=>{window.removeEventListener(fZ,listener),D.success||he(new Error(D.error?.message)),te(D.data.signedMessage)}))};window.addEventListener(fZ,listener),postRequestMessage(this.iframe,{type:lZ.SIGN_MESSAGE_REQUEST,details:{starkPublicKey:this.publicAddress,message:D}})}))}getIFrame(){return this.iframe}getYCoordinate(){return new Promise(((D,te)=>{const listener=he=>{messageResponseListener(this.iframe,he,pZ.GET_Y_COORDINATE_RESPONSE,(he=>{window.removeEventListener(fZ,listener),he.success||te(new Error(he.error?.message)),D(he.data.yCoordinate)}))};window.addEventListener(fZ,listener),postRequestMessage(this.iframe,{type:lZ.GET_Y_COORDINATE_REQUEST,details:{starkPublicKey:this.publicAddress}})}))}}const hZ="imx-wallet-app",yZ={[ra.SANDBOX]:"https://wallets.sandbox.immutable.com",[ra.PRODUCTION]:"https://wallets.immutable.com"},mZ="display: none;";async function getOrSetupIFrame(D){const te=function getIFrame(){return document.querySelector(`iframe#${hZ}`)}();return te||await async function setupIFrame(D){return new Promise((te=>{const he=document.createElement("iframe");he.setAttribute("id",hZ),he.setAttribute("src",yZ[D]),he.setAttribute("style",mZ),document.body.appendChild(he),he.onload=()=>te(he)}))}(D)}var bZ;!function(D){D.PROVIDER_CONNECTION_ERROR="PROVIDER_CONNECTION_ERROR",D.WALLET_CONNECTION_ERROR="WALLET_CONNECTION_ERROR"}(bZ||(bZ={}));class ProviderError extends Error{type;constructor(D,te){super(D),this.type=te}}const withProviderError=async(D,te)=>{try{return await D()}catch(D){const he=te.message||`${D.message}`||"UnknownError";throw new ProviderError(he,te.type)}};class MetaMaskIMXProvider extends GenericIMXProvider{static imxSigner;static async connect(D){return await withProviderError((async()=>{const te=await connect$1({chainID:D.immutableXConfig.ethConfiguration.chainID});return this.imxSigner=await async function connect(D,te){const he=D.getSigner(),ye=await he.getAddress(),be=await he.signMessage("Only sign this request if you’ve initiated an action with Immutable X."),ve=await getOrSetupIFrame(te);return new Promise(((D,te)=>{const listener=he=>{messageResponseListener(ve,he,pZ.CONNECT_WALLET_RESPONSE,(he=>{window.removeEventListener(fZ,listener),he.success||te(new Error("The L2 IMX Wallet connection has failed")),D(new ImxSigner(he.data.starkPublicKey,ve))}))};window.addEventListener(fZ,listener),postRequestMessage(ve,{type:lZ.CONNECT_WALLET_REQUEST,details:{ethAddress:ye,signature:be}})}))}(te,D.baseConfig.environment),new MetaMaskIMXProvider(D,te.getSigner(),this.imxSigner)}),{type:bZ.WALLET_CONNECTION_ERROR})}static async disconnect(){if(!this.imxSigner)throw new ProviderError("Attempted to disconnect from the MetaMask IMX provider without an established connection",bZ.PROVIDER_CONNECTION_ERROR);return withProviderError((async()=>{await async function disconnect(D){const te=D.getIFrame();return new Promise(((he,ye)=>{const listener=D=>{messageResponseListener(te,D,pZ.DISCONNECT_WALLET_RESPONSE,(D=>{window.removeEventListener(fZ,listener),!D.success&&D.error&&ye(D.error),te.remove(),he()}))};window.addEventListener(fZ,listener),postRequestMessage(te,{type:lZ.DISCONNECT_WALLET_REQUEST,details:{starkPublicKey:D.getAddress()}})}))}(this.imxSigner)}),{type:bZ.PROVIDER_CONNECTION_ERROR})}static async signMessage(D){if(!this.imxSigner)throw new ProviderError("Attempted to sign a message with the MetaMask IMX provider without an established connection",bZ.PROVIDER_CONNECTION_ERROR);return withProviderError((async()=>await this.imxSigner.signMessage(D)),{type:bZ.PROVIDER_CONNECTION_ERROR})}}var gZ=Object.freeze({__proto__:null,ApiConfiguration:ApiConfiguration,AssetsApi:AssetsApi,BalancesApi:BalancesApi,CollectionsApi:CollectionsApi,Contracts:qv,DepositsApi:DepositsApi,EncodingApi:EncodingApi,get Environment(){return ra},EthSigner:nc,ExchangesApi:ExchangesApi,GenericIMXProvider:GenericIMXProvider,IMXClient:IMXClient,IMXError:IMXError,ImmutableConfiguration:ImmutableConfiguration,ImmutableX:class ImmutableX extends IMXClient{},ImxConfiguration:ImxConfiguration,MetaMaskIMXProvider:MetaMaskIMXProvider,MetadataApi:MetadataApi,MetadataRefreshesApi:MetadataRefreshesApi,MetadataSchemaRequestTypeEnum:Gv,MintsApi:MintsApi,NftCheckoutPrimaryApi:NftCheckoutPrimaryApi,OrdersApi:OrdersApi,ProjectsApi:ProjectsApi,ProviderConfiguration:class ProviderConfiguration{immutableXConfig;baseConfig;constructor({baseConfig:D,overrides:te}){if(this.baseConfig=D,te)this.immutableXConfig=te.immutableXConfig;else{const te=new ImxConfiguration({baseConfig:D});this.immutableXConfig=te.immutableXConfig}}},TokensApi:TokensApi,TradesApi:TradesApi,TransfersApi:TransfersApi,UsersApi:UsersApi,WithdrawalsApi:WithdrawalsApi,createConfig:createConfig,createImmutableXConfiguration:createImmutableXConfiguration,createStarkSigner:createStarkSigner,generateLegacyStarkPrivateKey:generateLegacyStarkPrivateKey,generateStarkPrivateKey:function generateStarkPrivateKey(){return grindKey$1(Sv.genKeyPair().getPrivate("hex"))},imxClientConfig:D=>{if(!D)throw new Error("configOptions is required");if(-1===Object.values(ra).indexOf(D.environment))throw new Error(`Invalid environment: ${D.environment}`);return{baseConfig:new ImmutableConfiguration(D)}},imxClientCreateStarkSigner:createStarkSigner,imxClientGenerateLegacyStarkPrivateKey:generateLegacyStarkPrivateKey,production:production,sandbox:sandbox,serializePackedSignature:serializePackedSignature,signRegisterEthAddress:signRegisterEthAddress,starkEcOrder:xv});D.blockchainData=ri,D.checkout=iZ,D.config=aa,D.orderbook=OG,D.passport=DA,D.x=gZ}));
//# sourceMappingURL=index.browser.js.map
