gun-eth 1.4.32 → 1.4.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/gun-eth.min.js +13 -0
- package/dist/browser/gun-eth.min.js.map +1 -0
- package/dist/gun-eth.cjs.js +148 -110
- package/dist/gun-eth.mjs +148 -111
- package/package.json +9 -8
- package/src/index.js +164 -116
- package/dist/gun-eth.cjs.js.map +0 -1
- package/dist/gun-eth.esm.js +0 -1369
- package/dist/gun-eth.esm.js.map +0 -1
- package/dist/gun-eth.min.js +0 -2
- package/dist/gun-eth.min.js.map +0 -1
- package/dist/gun-eth.mjs.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
function t(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function e(t){if(t.__esModule)return t;var e=t.default;if("function"==typeof e){var n=function t(){return this instanceof t?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach((function(e){var r=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(n,e,r.get?r:{enumerable:!0,get:function(){return t[e]}})})),n}function n(t){throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var r={exports:{}};!function(t){!function(){function e(t,r){return r?n(t):t.slice?e[s(t)]:function(n,r){t(n={exports:{}}),e[s(r)]=n.exports};function s(t){return t.split("/").slice(-1).toString().replace(".js","")}}var r=t;e((function(t){String.random=function(t,e){var n="";for(t=t||24,e=e||"0123456789ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxyz";t-- >0;)n+=e.charAt(Math.floor(Math.random()*e.length));return n},String.match=function(t,e){var n,r;return"string"==typeof t&&("string"==typeof e&&(e={"=":e}),t===(n=(e=e||{})["="]||e["*"]||e[">"]||e["<"])||r===e["="]&&(n=e["*"]||e[">"],t.slice(0,(n||"").length)===n||r===e["*"]&&(r!==e[">"]&&r!==e["<"]?t>=e[">"]&&t<=e["<"]:r!==e[">"]&&t>=e[">"]||r!==e["<"]&&t<=e["<"])))},String.hash=function(t,e){if("string"==typeof t){if(e=e||0,!t.length)return e;for(var n=0,r=t.length;n<r;++n)e=(e<<5)-e+t.charCodeAt(n),e|=0;return e}};var e,n,r,s,i,o,a=Object.prototype.hasOwnProperty;Object.plain=function(t){return!!t&&(t instanceof Object&&t.constructor===Object||"Object"===Object.prototype.toString.call(t).match(/^\[object (\w+)\]$/)[1])},Object.empty=function(t,e){for(var n in t)if(a.call(t,n)&&(!e||-1==e.indexOf(n)))return!1;return!0},Object.keys=Object.keys||function(t){var e=[];for(var n in t)a.call(t,n)&&e.push(n);return e},n=setTimeout,r=0,s=0,i=typeof setImmediate!=""+e&&setImmediate||function(t,r){return typeof MessageChannel==""+e?n:((t=new MessageChannel).port1.onmessage=function(t){""==t.data&&r()},function(e){r=e,t.port2.postMessage("")})}(),o=n.check=n.check||typeof performance!=""+e&&performance||{now:function(){return+new Date}},n.hold=n.hold||9,n.poll=n.poll||function(t){n.hold>=o.now()-r&&s++<3333?t():i((function(){r=o.now(),t()}),s=0)},function(){var t,e=setTimeout,n=e.turn=e.turn||function(t){1==r.push(t)&&s(o)},r=n.s=[],s=e.poll,i=0,o=function(){(t=r[i++])&&t(),i!=r.length&&99!=i||(r=n.s=r.slice(i),i=0),r.length&&s(o)}}(),function(){var t,e=setTimeout,n=e.turn;(e.each=e.each||function(e,r,s,i){i=i||9,function o(a,c,u){if(c=(a=(e||[]).splice(0,i)).length){for(var l=0;l<c&&t===(u=r(a[l]));l++);if(t===u)return void n(o)}s&&s(u)}()})()}()}))(e,"./shim"),e((function(t){t.exports=function t(e,n,r){if(!e)return{to:t};var s="function"==typeof n;e=(this.tag||(this.tag={}))[e]||s&&(this.tag[e]={tag:e,to:t._={next:function(t){var e;(e=this.to)&&e.next(t)}}});if(s){var i={off:t.off||(t.off=function(){if(this.next===t._.next)return!0;this===this.the.last&&(this.the.last=this.back),this.to.back=this.back,this.next=t._.next,this.back.to=this.to,this.the.last===this.the&&delete this.on.tag[this.the.tag]}),to:t._,next:n,the:e,on:this,as:r};return(i.back=e.last||e).to=i,e.last=i}return(e=e.to)&&undefined!==n&&e.next(n),e}}))(e,"./onto"),e((function(t){t.exports=function(t){return null===t||"string"==typeof t||"boolean"==typeof t||"number"==typeof t&&t!=1/0&&t!=-1/0&&t==t||!!t&&"string"==typeof t["#"]&&1===Object.keys(t).length&&t["#"]}}))(e,"./valid"),e((function(t){function n(){var t=+new Date;return a<t?(i=0,a=t+n.drift):a=t+(i+=1)/o+n.drift}e("./shim"),n.drift=0;var r,s=-1/0,i=0,o=999,a=s;n.is=function(t,e,n){var r=e&&t&&t._&&t._[">"]||n;if(r)return"number"==typeof(r=r[e])?r:s},n.ify=function(t,e,n,s,i){(t=t||{})._=t._||{},i&&(t._["#"]=i);var o=t._[">"]||(t._[">"]={});return r!==e&&"_"!==e&&("number"==typeof n&&(o[e]=n),r!==s&&(t[e]=s)),t},t.exports=n}))(e,"./state"),e((function(t){e("./shim"),t.exports=function(t){var e={s:{}},n=e.s;t=t||{max:999,age:9e3},e.check=function(t){return!!n[t]&&r(t)};var r=e.track=function(s){var i=n[s]||(n[s]={});return i.was=e.now=+new Date,e.to||(e.to=setTimeout(e.drop,t.age+9)),r.ed&&r.ed(s),i};return e.drop=function(r){e.to=null,e.now=+new Date;var s=Object.keys(n);console.STAT&&console.STAT(e.now,+new Date-e.now,"dup drop keys"),setTimeout.each(s,(function(s){var i=n[s];i&&(r||t.age)>e.now-i.was||delete n[s]}),0,99)},e}}))(e,"./dup"),e((function(t){e("./onto"),t.exports=function(t,e){if(this.on){var r=(this.opt||{}).lack||9e3;if("function"!=typeof t){if(!t)return;var s=t["#"]||t,i=(this.tag||"")[s];if(!i)return;return e&&(i=this.on(s,e),clearTimeout(i.err),i.err=setTimeout((function(){i.off()}),r)),!0}s=e&&e["#"]||n(9);if(!t)return s;var o=this.on(s,t,e);return o.err=o.err||setTimeout((function(){o.off(),o.next({err:"Error: No ACK yet.",lack:!0})}),r),s}};var n=String.random||function(){return Math.random().toString(36).slice(2)}}))(e,"./ask"),e((function(t){function n(t){return t instanceof n?(this._={$:this}).$:this instanceof n?n.create(this._={$:this,opt:t}):new n(t)}n.is=function(t){return t instanceof n||t&&t._&&t===t._.$||!1},n.version=.202,n.chain=n.prototype,n.chain.toJSON=function(){},e("./shim"),n.valid=e("./valid"),n.state=e("./state"),n.on=e("./onto"),n.dup=e("./dup"),n.ask=e("./ask"),function(){function t(r){if(r)if(r.out!==t){var s,i=this.as,c=i.at||i,u=c.$,l=c.dup,h=r.DBG;if((s=r["#"])||(s=r["#"]=a(9)),!l.check(s)){if(l.track(s),s=r._,r._="function"==typeof s?s:function(){},r.$&&r.$===(r.$._||"").$||(r.$=u),r["@"]&&!r.put&&function(t){var e,n=t["@"]||"";if(!(e=n._)){var r=(r=t.$)&&(r=r._)&&(r=r.root)&&(r=r.dup);if(!(r=r.check(n)))return;return void(t["@"]=r["#"]||t["@"])}e.acks=(e.acks||0)+1,(e.err=t.err)&&(t["@"]=e["#"],o(e));e.ok=t.ok||e.ok,e.stop||e.crack||(e.crack=e.match&&e.match.push((function(){p(e)})));p(e)}(r),!c.ask(r["@"],r)){if(h&&(h.u=+new Date),r.put)return void e(r);r.get&&n.on.get(r,u)}h&&(h.uc=+new Date),this.to.next(r),h&&(h.ua=+new Date),r.nts||r.NTS||(r.out=t,c.on("out",r),h&&(h.ue=+new Date))}}else this.to.next(r)}function e(e){if(e){var n=e._||"",i=n.root=((n.$=e.$||"")._||"").root;if(e["@"]&&n.faith&&!n.miss)return e.out=t,void i.on("out",e);n.latch=i.hatch,n.match=i.hatch=[];var a=e.put,l=n.DBG=e.DBG,h=+new Date;if(d=d||h,!a["#"]||!a["."]){l&&(l.p=h),n["#"]=e["#"],n.msg=e,n.all=0,n.stun=1;var f=Object.keys(a);console.STAT&&console.STAT(h,((l||n).pk=+new Date)-h,"put sort");var p,m,w,b,v,E,k,T=0;!function t(i){if(p!=T){if(p=T,!(w=f[T]))return console.STAT&&console.STAT(h,((l||n).pd=+new Date)-h,"put"),void o(n);(b=a[w])?(k=b._)?w!==k["#"]?E=g+y(w)+"soul not same.":(v=k[">"])||(E=g+y(w)+"no state."):E=g+y(w)+"no meta.":E=g+y(w)+"no node.",m=Object.keys(b||{})}if(E)return e.err=n.err=E,void o(n);var d,N=0;for(i=i||0;i++<9&&(d=m[N++]);)if("_"!==d){var x=b[d],S=v[d];if(s===S){E=g+y(d)+"on"+y(w)+"no state.";break}if(!u(x)){E=g+y(d)+"on"+y(w)+"bad "+typeof x+y(x);break}r(x,d,w,S,e),++A}(m=m.slice(N)).length?c(t):(++T,m=null,t(i))}()}}}function r(t,e,n,s,i){var o,a=i._||"",c=a.root,u=c.graph,h=u[n]||f,p=l(h,e,1),d=h[e],g=a.DBG;(o=console.STAT)&&(u[n]&&d||(o.has=(o.has||0)+1));var y=b();if(s>y)return setTimeout((function(){r(t,e,n,s,i)}),(o=s-y)>w?w:o),void(console.STAT&&console.STAT((g||a).Hf=+new Date,o,"future"));if(!(s<p)&&(a.faith||s!==p||!(t===d||m(t)<=m(d))||a.miss)){a.stun++;var A=i["#"]+a.all++,v={toString:function(){return A},_:a};v.toJSON=v.toString,c.dup.track(v)["#"]=i["#"],g&&(g.ph=g.ph||+new Date),c.on("put",{"#":v,"@":i["@"],put:{"#":n,".":e,":":t,">":s},ok:i.ok,_:a})}}function i(t){var e;(e=(t._||"").DBG)&&(e.pa=+new Date,e.pm=e.pm||+new Date);var n,r=this.as,s=r.graph,i=t._,a=t.put,c=a["#"],u=a["."],l=a[":"],f=a[">"];t["#"],(n=i.msg)&&(n=n.put)&&(n=n[c])&&h(n,u,f,l,c),s[c]=h(s[c],u,f,l,c),(n=(r.next||"")[c])&&n.on("in",t),o(i),this.to.next(t)}function o(e,n){var r;if(!e.stop&&(e.err||!(0<--e.stun))&&(e.stop=1,r=e.root)){var s=e.match;s.end=1,s===r.hatch&&(!(s=e.latch)||s.end?delete r.hatch:r.hatch=s),e.hatch&&e.hatch(),setTimeout.each(e.match,(function(t){t&&t()})),!(n=e.msg)||e.err||n.err||(n.out=t,e.root.on("out",n),v())}}function p(t){t&&t.root&&(t.stun||t.acks!==t.all||t.root.on("in",{"@":t["#"],err:t.err,ok:t.err?s:t.ok||{"":1}}))}n.create=function(e){e.root=e.root||e,e.graph=e.graph||{},e.on=e.on||n.on,e.ask=e.ask||n.ask,e.dup=e.dup||n.dup();var r=e.$.opt(e.opt);return e.once||(e.on("in",t,e),e.on("out",t,e),e.on("put",i,e),n.on("create",e),e.on("create",e)),e.once=1,r},n.on.put=e;var d,g="Error: Invalid graph!",y=function(t){return" '"+(""+t).slice(0,9)+"...' "},m=JSON.stringify,w=2147483647,b=n.state,A=0,v=function(){A>999&&A/-(d-(d=+new Date))>1&&(n.window&&console.log("Warning: You're syncing 1K+ records a second, faster than DOM can update - consider limiting query."),v=function(){A=0})}}(),function(){function t(t,e){var n=+new Date,r=t._||{},i=r.DBG=t.DBG,o=t["#"],c=a(9),u=Object.keys(e||"").sort(),f=((e||"")._||"")["#"];u.length;var p=t.$._.root,d=e===p.graph[f];console.STAT&&console.STAT(n,((i||r).gk=+new Date)-n,"got keys"),e&&function t(){n=+new Date;for(var r,g,y,m=0,w={};m<9&&(r=u[m++]);)h(w,r,l(e,r),e[r],f);u=u.slice(m),(g={})[f]=w,w=g,d&&((y=function(){}).ram=y.faith=!0),g=u.length,console.STAT&&console.STAT(n,-(n-(n=+new Date)),"got copied some"),i&&(i.ga=+new Date),p.on("in",{"@":o,"#":c,put:w,"%":g?c=a(9):s,$:p.$,_:y,DBG:i,FOO:1}),console.STAT&&console.STAT(n,+new Date-n,"got in"),g&&setTimeout.turn(t)}(),e||p.on("in",{"@":t["#"]})}n.on.get=function(e,n){var r=n._,i=e.get,o=i["#"],a=r.graph[o],c=i["."],u=(r.next||(r.next={}))[o],f=(e._||{}).DBG=e.DBG;if(f&&(f.g=+new Date),!a)return r.on("get",e);if(c){if(("string"!=typeof c||s===a[c])&&!((u||"").next||"")[c])return void r.on("get",e);a=h({},c,l(a,c),a[c],o)}a&&t(e,a),r.on("get",e)},n.on.get.ack=t}(),n.chain.opt=function(t){t=t||{};var e=this._,r=t.peers||t;return Object.plain(t)||(t={}),Object.plain(e.opt)||(e.opt=t),"string"==typeof r&&(r=[r]),Object.plain(e.opt.peers)||(e.opt.peers={}),r instanceof Array&&(t.peers={},r.forEach((function(n){var r={};r.id=r.url=n,t.peers[n]=e.opt.peers[n]=e.opt.peers[n]||r}))),o(t,(function t(e){var n=this[e];this&&this.hasOwnProperty(e)||"string"==typeof n||Object.empty(n)?this[e]=n:(!n||n.constructor===Object||n instanceof Array)&&o(n,t)})),e.opt.from=t,n.on("opt",e),e.opt.uuid=e.opt.uuid||function(t){return n.state().toString(36).replace(".","")+String.random(t||12)},this};var s,i,o=function(t,e){Object.keys(t).forEach(e,t)},a=String.random,c=setTimeout.turn,u=n.valid,l=n.state.is,h=n.state.ify,f={};n.log=function(){return!n.log.off&&i.log.apply(i,arguments),[].slice.call(arguments).join(" ")},n.log.once=function(t,e,r){return(r=n.log.once)[t]=r[t]||0,r[t]++||n.log(e)},"undefined"!=typeof window&&((window.GUN=window.Gun=n).window=window);try{void 0!==r&&(r.exports=n)}catch(t){}t.exports=n,(n.window||{}).console=(n.window||{}).console||{log:function(){}},(i=console).only=function(t,e){return i.only.i&&t===i.only.i&&i.only.i++&&(i.log.apply(i,arguments)||e)},n.log.once("welcome","Hello wonderful person! :) Thanks for using GUN, please ask for help on http://chat.gun.eco if anything takes you longer than 5min to figure out!")}))(e,"./root"),e((function(t){e("./root").chain.back=function(t,e){if(-1===(t=t||1)||1/0===t)return this._.root.$;if(1===t)return(this._.back||this._).$;var s=this._;if("string"==typeof t&&(t=t.split(".")),t instanceof Array){for(var i=0,o=t.length,a=s;i<o;i++)a=(a||r)[t[i]];return n!==a?e?this:a:(a=s.back)?a.$.back(t,e):void 0}if("function"==typeof t){var c;for(a={back:s};(a=a.back)&&n===(c=t(a,e)););return c}return"number"==typeof t?(s.back||s).$.back(t-1):this};var n,r={}}))(e,"./back"),e((function(t){var n=e("./root");function r(t,e){if(e=e||this.as||t.$._,(!t.$$||this===n.on)&&t.put&&!e.soul){var r=t.put||"",s=r["="]||r[":"],i=e.root,o=i.$.get(r["#"]).get(r["."])._;if("string"==typeof(s=u(s))){if(!(o.echo||(o.echo={}))[e.id]||(i.pass||"")[e.id]){if(a=i.pass){if(a[s+e.id])return;a[s+e.id]=1}(o.echo||(o.echo={}))[e.id]=e,e.has&&(e.link=s);var a,c=i.$.get(o.link=s)._;(c.echo||(c.echo={}))[o.id]=o,((a=e.ask||"")[""]||e.lex)&&c.on("out",{get:{"#":s}}),setTimeout.each(Object.keys(a),(function(t,e){t&&(e=a[t])&&e.on("out",{get:{"#":s,".":t}})}),0,99)}}else this===n.on&&((o.echo||(o.echo={}))[e.id]=e)}}function s(t,e){var n,r,i=t.put||"",a=o!==i["="]?i["="]:i[":"],c=e.root;if(o===a){if(e.soul&&o!==e.put)return;if(r=(t.$$||t.$||"")._||"",t["@"]&&(o!==r.put||o!==e.put))return;return(n=e.link||t.linked)&&delete(c.$.get(n)._.echo||"")[e.id],e.has&&(e.link=null),e.put=o,void setTimeout.each(Object.keys(e.next||""),(function(t,r){(r=e.next[t])&&(n&&delete(c.$.get(n).get(t)._.echo||"")[r.id],r.on("in",{get:t,put:o,$:r.$}))}),0,99)}e.soul||t.$$||(n=u(a),r=t.$._||"",(n!==r.link&&(!e.has||r.link)||(c.pass||"")[e.id]&&"string"!=typeof n)&&(delete(r.echo||"")[e.id],s({get:e.get,put:o,$:t.$,linked:t.linked=t.linked||r.link},e)))}function i(t,e){var r=this.as,s=r.$._;s.root;var i=r.get||"",a=(t.put||"")[i["#"]]||"";if(!t.put||"string"==typeof i["."]&&o===a[i["."]]){if(o!==s.put)return;if(!s.soul&&!s.has)return;return s.ack=(s.ack||0)+1,void s.on("in",{get:s.get,put:s.put=o,$:s.$,"@":t["@"]})}(t._||{}).miss=1,n.on.put(t)}n.chain.chain=function(t){var e,r=this,s=r._,i=new(t||r).constructor(r),o=i._;return o.root=e=s.root,o.id=++e.once,o.back=r._,o.on=n.on,o.on("in",n.on.in,o),o.on("out",n.on.out,o),i},n.on.out=function(t){var e,n,r=this.as,s=r.back,a=r.root;if(t.$||(t.$=r.$),this.to.next(t),!r.err){if(e=t.get){if(a.pass&&(a.pass[r.id]=r),r.lex&&Object.keys(r.lex).forEach((function(t){n[t]=r.lex[t]}),n=t.get=t.get||{}),e["#"]||r.soul){if(e["#"]=e["#"]||r.soul,t["#"]||(t["#"]=c(9)),s=a.$.get(e["#"])._,e=e["."]){if(l(s.put,e)&&(n=s.ask&&s.ask[e],(s.ask||(s.ask={}))[e]=s.$.get(e)._,s.on("in",{get:e,put:{"#":s.soul,".":e,":":s.put[e],">":f(a.graph[s.soul],e)}}),n))return}else{if(n=s.ask&&s.ask[""],(s.ask||(s.ask={}))[""]=s,o!==s.put&&(s.on("in",s),n))return;t.$=s.$}return a.ask(i,t),a.on("in",t)}if(e["."])return r.get?(t={get:{".":r.get},$:r.$},(s.ask||(s.ask={}))[r.get]=t.$._,s.on("out",t)):(t={get:r.lex?t.get:{},$:r.$},s.on("out",t));if((r.ask||(r.ask={}))[""]=r,r.get)return e["."]=r.get,(s.ask||(s.ask={}))[r.get]=t.$._,s.on("out",t)}return s.on("out",t)}r.on("in",{put:r.put=o,$:r.$})},n.on.in=function(t,e){var n,i=(e=e||this.as).root,c=t.$||(t.$=e.$),l=(c||"")._||a,h=t.put||"",d=h["#"],g=h["."],y=o!==h["="]?h["="]:h[":"],m=h[">"]||-1/0;if(o!==t.put&&(o===h["#"]||o===h["."]||o===h[":"]&&o===h["="]||o===h[">"]))return u(h)?void e.on("in",{$:l.back.$,put:{"#":d=l.back.soul,".":g=l.has||l.get,"=":h,">":f(l.back.put,g)},via:t}):(d=((h||"")._||"")["#"])?(c=e.root.$.get(d),setTimeout.each(Object.keys(h).sort(),(function(n){"_"!=n&&o!==(m=f(h,n))&&e.on("in",{$:c,put:{"#":d,".":n,"=":h[n],">":m},VIA:t})}))):void console.log("chain not yet supported for",h,"...",t,e);(t.seen||"")[e.id]||((t.seen||(t.seen=function(){}))[e.id]=e,e!==l&&(Object.keys(t).forEach((function(e){h[e]=t[e]}),h={}),h.get=e.get||h.get,e.soul||e.has?l.soul&&(h.$=e.$,h.$$=h.$$||l.$):h.$$$=h.$$$||e.$,t=h),s(t,e),(e.soul||t.$$)&&m>=f(i.graph[d],g)&&((h=i.$.get(d)._).put=p(h.put,g,m,y,d)),!l.soul&&m>=f(i.graph[d],g)&&(n=(i.$.get(d)._.next||"")[g])&&(n.put=y,"string"==typeof(h=u(y))&&(n.put=i.$.get(h)._.put||y)),this.to&&this.to.next(t),e.any&&setTimeout.each(Object.keys(e.any),(function(n){(n=e.any[n])&&n(t)}),0,99),e.echo&&setTimeout.each(Object.keys(e.echo),(function(n){(n=e.echo[n])&&n.on("in",t)}),0,99),((t.$$||"")._||l).soul&&(n=e.next)&&(n=n[g])&&(h={},Object.keys(t).forEach((function(e){h[e]=t[e]})),h.$=(t.$$||t.$).get(h.get=g),delete h.$$,delete h.$$$,n.on("in",h)),r(t,e))},n.on.link=r,n.on.unlink=s;var o,a={},c=String.random,u=n.valid,l=function(t,e){return t&&Object.prototype.hasOwnProperty.call(t,e)},h=n.state,f=h.is,p=h.ify}))(e,"./chain"),e((function(t){var n=e("./root");function r(t){var e=this.at||this.on;if(!t||e.soul||e.has)return this.off();if(t=(t=(t=t.$||t)._||t).id){var n;if(e.map,(n=this.seen||(this.seen={}))[t])return!0;n[t]=!0}}n.chain.get=function(t,e,a){var c,u;if("string"==typeof t){if(0==t.length)return(c=this.chain())._.err={err:n.log("0 length key!",t)},e&&e.call(c,c._.err),c;(c=((h=this._).next||i)[t])||(c=t&&function(t,e){var n=e._,r=n.next,s=e.chain(),i=s._;r||(r=n.next={});r[i.get=t]=i,e===n.root.$?i.soul=t:(n.soul||n.has)&&(i.has=t);return i}(t,this)),c=c&&c.$}else{if("function"==typeof t){if(!0===e)return function(t,e,r,i){var o,a=t._,c=0;if(o=a.soul||a.link)return e(o,i,a);if(a.jam)return a.jam.push([e,i]);a.jam=[[e,i]],t.get((function(t,e){if(!(s===t.put&&!a.root.opt.super&&(o=Object.keys(a.root.opt.peers).length)&&++c<=o)){e.rid(t);var r,i=(i=t.$)&&i._||{},u=0;for(o=a.jam,delete a.jam;r=o[u++];){var l=r[0];r=r[1],l&&l(i.link||i.soul||n.valid(t.put)||((t.put||{})._||{})["#"],r,t,e)}}}),{out:{get:{".":!0}}})}(this,t,0,a),this;var l,h=(c=this)._,f=e||{},p=h.root;f.at=h,f.ok=t;var d={};function g(t,e,r){if(!g.stun&&(!(i=p.pass)||i[l])){var i,o=t.$._,a=(t.$$||"")._,c=(a||o).put,u=!o.has&&!o.soul,y={};if((u||s===c)&&(c=s===((i=t.put)||"")["="]?s===(i||"")[":"]?i:i[":"]:i["="]),"string"==typeof(i=n.valid(c))&&(c=s===(i=p.$.get(i)._.put)?f.not?s:c:i),!f.not||s!==c){if(s===f.stun){if((i=p.stun)&&i.on&&(h.$.back((function(t){if(i.on(""+t.id,y={}),(y.run||0)<g.id)return y})),!y.run&&i.on(""+o.id,y={}),!y.run&&a&&i.on(""+a.id,y={}),g.id>y.run&&(y.stun&&!y.stun.end||(y.stun=i.on("stun"),y.stun=y.stun&&y.stun.last),y.stun&&!y.stun.end)))return void((y.stun.add||(y.stun.add={}))[l]=function(){g(t,e,1)});if(s===c&&(r=0),(i=p.hatch)&&!i.end&&s===f.hatch&&!r){if(d[o.$._.id])return;return d[o.$._.id]=1,void i.push((function(){g(t,e,1)}))}d={}}if(p.pass){if(p.pass[l+o.id])return;p.pass[l+o.id]=1}f.on?f.ok.call(o.$,c,o.get,t,e||g):f.v2020?f.ok(t,e||g):(Object.keys(t).forEach((function(e){i[e]=t[e]}),i={}),(t=i).put=c,f.ok.call(f.as,t,e||g))}}}return g.at=h,(h.any||(h.any={}))[l=String.random(7)]=g,g.off=function(){g.stun=1,h.any&&delete h.any[l]},g.rid=r,g.id=f.run||++p.once,u=p.pass,(p.pass={})[l]=1,f.out=f.out||{get:{}},h.on("out",f.out),p.pass=u,c}if("number"==typeof t)return this.get(""+t,e,a);if("string"==typeof(u=o(t)))return this.get(u,e,a);(u=this.get.next)&&(c=u(this,t))}return c?(e&&"function"==typeof e&&c.get(e,a),c):((c=this.chain())._.err={err:n.log("Invalid get request!",t)},e&&e.call(c,c._.err),c)};var s,i={},o=n.valid}))(e,"./get"),e((function(t){var n=e("./root");function r(t,e){if(e){e=(e._||"").id||e;var r,s=t.root.stun||(t.root.stun={on:n.on}),i={};t.stun||(t.stun=s.on("stun",(function(){}))),(r=s.on(""+e))&&r.the.last.next(i),i.run>=t.run||s.on(""+e,(function(e){if(t.stun.end)return this.off(),void this.to.next(e);e.run=e.run||t.run,e.stun=e.stun||t.stun}))}}function s(t){if(t.err)s.end(t.stun,t.root);else if(!t.todo.length&&!t.end&&Object.empty(t.wait)){t.end=1;var e,r=t.$.back(-1)._,i=r.root,o=r.ask((function(e){i.on("ack",e),e.err&&!e.lack&&n.log(e),++a>(t.acks||0)&&this.off(),t.ack&&t.ack(e,this)}),t.opt),a=0,c=t.stun;(e=function(){c&&(s.end(c,i),setTimeout.each(Object.keys(c=c.add||""),(function(t){(t=c[t])&&t()})))}).hatch=e,t.ack&&!t.ok&&(t.ok=t.acks||9),t.via._.on("out",{put:t.out=t.graph,ok:t.ok&&{"@":t.ok+1},opt:t.opt,"#":o,_:e})}}n.chain.put=function(t,e,o){var l=this,h=l._,f=h.root;(o=o||{}).root=h.root,o.run||(o.run=f.once),r(o,h.id),o.ack=o.ack||e,o.via=o.via||l,o.data=o.data||t,o.soul||(o.soul=h.soul||"string"==typeof e&&e);var p=o.state=o.state||n.state();return"function"==typeof t?(t((function(t){o.data=t,l.put(i,i,o)})),l):o.soul?(o.$=f.$.get(o.soul),o.todo=[{it:o.data,ref:o.$}],o.turn=o.turn||a,o.ran=o.ran||s,function t(){var e,i,a,l,h,f=o.todo,d=f.pop(),g=d.it;if(d.ref&&d.ref._.id,r(o,d.ref),(l=d.todo)&&(g=g[i=l.pop()],l.length&&f.push(d)),i&&(f.path||(f.path=[])).push(i),!(e=c(g))&&!(h=n.is(g))){if(!Object.plain(g))return void s.err(o,"Invalid data: "+function(t,e){return t&&(e=t.constructor)&&e.name||typeof t}(g)+" at "+(o.via.back((function(t){t.get&&l.push(t.get)}),l=[])||l.join("."))+"."+(f.path||[]).join("."));for(var y=o.seen||(o.seen=[]),m=y.length;m--;)if(g===(l=y[m]).it){e=g=l.link;break}}if(i&&e)d.node=u(d.node,i,p,g);else{if(!o.seen)return void s.err(o,"Data at root of graph must be a node (an object).");o.seen.push(a={it:g,link:{},todo:h?[]:Object.keys(g).sort().reverse(),path:(f.path||[]).slice(),up:d}),d.node=u(d.node,i,p,a.link),!h&&a.todo.length&&f.push(a);var w=o.seen.length;function b(t,e){var n=a.link["#"];e&&(e.off(),e.rid(t));var s=n||t.soul||(l=(t.$$||t.$)._||"").soul||l.link||((l=l.put||"")._||"")["#"]||l["#"]||((l=t.put||"")&&t.$$?l["#"]:(l["="]||l[":"]||"")["#"]);!n&&r(o,t.$),s||d.link["#"]?(s||(s=[],(t.$$||t.$).back((function(t){if(l=t.soul||t.link)return s.push(l);s.push(t.get)})),s=s.reverse().join("/")),a.link["#"]=s,!h&&(((o.graph||(o.graph={}))[s]=a.node||(a.node={_:{}}))._["#"]=s),delete o.wait[w],a.wait&&setTimeout.each(a.wait,(function(t){t&&t()})),o.ran(o)):(d.wait||(d.wait=[])).push((function(){b(t,e)}))}(o.wait||(o.wait={}))[w]="",l=(a.ref=h?g:i?d.ref.get(i):d.ref)._,(l=g&&(g._||"")["#"]||l.soul||l.link)?b({soul:l}):a.ref.get(b,{run:o.run,v2020:1,out:{get:{".":" "}}})}if(!f.length)return o.ran(o);o.turn(t)}(),l):(function(t){var e,n=t.via._;t.via=t.via.back((function(n){if(n.soul||!n.get)return n.$;e=t.data,(t.data={})[n.get]=e})),t.via&&t.via._.soul||(t.via=n.root.$.get(((t.data||"")._||"")["#"]||n.$.back("opt.uuid")()));t.via.put(t.data,t.ack,t)}(o),l)},s.end=function(t,e){t.end=o,t.the.to===t&&t===t.the.last&&delete e.stun,t.off()},s.err=function(t,e){(t.ack||o).call(t,t.out={err:t.err=n.log(e)}),t.ran(t)};var i,o=function(){},a=setTimeout.turn,c=n.valid,u=n.state.ify}))(e,"./put"),e((function(t){var n=e("./root");e("./chain"),e("./back"),e("./put"),e("./get"),t.exports=n}))(e,"./index"),e((function(t){var n,r=e("./index");r.chain.on=function(t,e,n,r){var s,i=this,o=i._;if(o.root,"string"==typeof t)return e?(s=o.on(t,e,n||o,r),n&&n.$&&(n.subs||(n.subs=[])).push(s),i):o.on(t);var a=e;return(a=!0===a?{change:!0}:a||{}).not=1,a.on=1,i.get(t,a),i},r.chain.once=function(t,e){if(e=e||{},!t)return function(t,e,n){return r.log.once("valonce","Chainable val is experimental, its behavior and API may change moving forward. Please play with it and report bugs and ideas on how to improve it."),(n=t.chain())._.nix=t.once((function(t,e){n._.on("in",this._)})),n._.lex=t._.lex,n}(this);var s=this,i=s._,o=i.root;i.put;var a,c=String.random(7);return s.get((function(s,u,l,h){var f=this,p=f._,d=p.one||(p.one={});function g(y){p.has||p.soul||(p={put:s,get:u}),n===(a=p.put)&&(a=((l.$$||"")._||"").put),"string"!=typeof r.valid(a)||(a=o.$.get(a)._.put)!==n||y?h.stun||""!==d[c]&&(d[c]="",(i.soul||i.has)&&h.off(),t.call(f,a,p.get),clearTimeout(d[c])):d[c]=setTimeout((function(){g(1)}),e.wait||99)}h.stun||""!==d[c]&&(!0!==(a=r.valid(s))?"string"!=typeof a&&(clearTimeout((i.one||"")[c]),clearTimeout(d[c]),d[c]=setTimeout(g,e.wait||99)):g())}),{on:1}),s},r.chain.off=function(){var t,e=this._,n=e.back;if(n)return e.ack=0,(t=n.next)&&t[e.get]&&delete t[e.get],(t=n.any)&&(delete n.any,n.any={}),(t=n.ask)&&delete t[e.get],(t=n.put)&&delete t[e.get],(t=e.soul)&&delete n.root.graph[t],(t=e.map)&&Object.keys(t).forEach((function(e,r){(r=t[e]).link&&n.root.$.get(r.link).off()})),(t=e.next)&&Object.keys(t).forEach((function(e,n){t[e].$.off()})),e.on("off",{}),this}}))(e,"./on"),e((function(t){var n=e("./index"),r=n.chain.get.next;function s(t){this.to.next(t);var e,r=this.as,s=t.$._,i=t.put;(s.soul||t.$$)&&((e=r.lex)&&!String.match(t.get||(i||"")["."],e["."]||e["#"]||e)||n.on.link(t,r))}n.chain.get.next=function(t,e){var n;return Object.plain(e)?(n=((n=e["#"])||"")["="]||n)?t.get(n):((n=t.chain()._).lex=e,t.on("in",(function(t){String.match(t.get||(t.put||"")["."],e["."]||e["#"]||e)&&n.on("in",t),this.to.next(t)})),n.$):(r||o)(t,e)},n.chain.map=function(t,e,r){var a,c,u=this,l=u._;return Object.plain(t)&&(a=t["."]?t:{".":t},t=i),t?(n.log.once("mapfn","Map functions are experimental, their behavior and API may change moving forward. Please play with it and report bugs and ideas on how to improve it."),c=u.chain(),u.map().on((function(e,r,s,a){var u=(t||o).call(this,e,r,s,a);if(i!==u){if(e===u)return c._.on("in",s);if(n.is(u))return c._.on("in",u._);var l={};Object.keys(s.put).forEach((function(t){l[t]=s.put[t]}),l),l["="]=u,c._.on("in",{get:r,put:l})}})),c):((c=l.each)||((l.each=c=u.chain())._.lex=a||c._.lex||l.lex,c._.nix=u.back("nix"),u.on("in",s,c._)),c)};var i,o=function(){}}))(e,"./map"),e((function(t){var n=e("./index");n.chain.set=function(t,e,r){var s,i,o=this,a=o.back(-1);return e=e||function(){},(r=r||{}).item=r.item||t,(s=((t||"")._||"")["#"])&&((t={})["#"]=s),"string"==typeof(i=n.valid(t))?o.get(s=i).put(t,e,r):n.is(t)?(o.put((function(r){t.get((function(t,s,a){if(!t)return e.call(o,{err:n.log('Only a node can be linked! Not "'+a.put+'"!')});(i={})[t]={"#":t},r(i)}),!0)})),t):(Object.plain(t)&&(t=a.get(s=o.back("opt.uuid")()).put(t)),o.get(s||a.back("opt.uuid")(7)).put(t,e,r))}}))(e,"./set"),e((function(t){e("./shim");var n,r=function(){},s=JSON.parseAsync||function(t,e,n){var r=+new Date;try{e(undefined,JSON.parse(t,n),i.sucks(+new Date-r))}catch(t){e(t)}},i=JSON.stringifyAsync||function(t,e,n,r){var s=+new Date;try{e(undefined,JSON.stringify(t,n,r),i.sucks(+new Date-s))}catch(t){e(t)}};i.sucks=function(t){t>99&&(console.log("Warning: JSON blocking CPU detected. Add `gun/lib/yson.js` to fix."),i.sucks=r)};try{t.exports=function(t){var e=function(){},r=t.opt||{};r.log=r.log||console.log,r.gap=r.gap||r.wait||0,r.max=r.max||.3*(r.memory?999*r.memory*999:3e8),r.pack=r.pack||.01*r.max*.01,r.puff=r.puff||9;var o=setTimeout.turn||setTimeout,a=t.dup,c=a.check,u=a.track,l=e.hear=function(t,n){if(t){if(r.max<=t.length)return e.say({dam:"!",err:"Message too big!"},n);e===this&&(l.d+=t.length||0,++l.c);var i,a=n.SH=+new Date,c=t[0];return"["===c?(s(t,(function(t,s){if(t||!s)return e.say({dam:"!",err:"DAM JSON parse error."},n);console.STAT&&console.STAT(+new Date,s.length,"# on hear batch");var i=r.puff;!function t(){for(var r,a=+new Date,c=0;c<i&&(r=s[c++]);)e.hear(r,n);s=s.slice(c),console.STAT&&console.STAT(a,+new Date-a,"hear loop"),h(n),s.length&&o(t,0)}()})),void(t="")):"{"===c||(t["#"]||Object.plain(t))&&(i=t)?i?l.one(i,n,a):void s(t,(function(t,r){if(t||!r)return e.say({dam:"!",err:"DAM JSON parse error."},n);l.one(r,n,a)})):void 0}};function h(t){var e=t.batch,n="string"==typeof e;if(n&&(e+="]"),t.batch=t.tail=null,e&&!(n?3>e.length:!e.length)){if(!n)try{e=1===e.length?e[0]:JSON.stringify(e)}catch(t){return r.log("DAM JSON stringify error",t)}e&&f(e,t)}}function f(t,n){try{var r=n.wire;n.say?n.say(t):r.send&&r.send(t),e.say.d+=t.length||0,++e.say.c}catch(e){(n.queue=n.queue||[]).push(t)}}return l.one=function(n,r,s){var i,o,l,h,f;if(n.DBG&&(n.DBG=f={DBG:n.DBG}),f&&(f.h=s),f&&(f.hp=+new Date),(i=n["#"])||(i=n["#"]=String.random(9)),!((l=c(i))||(o=n["##"])&&(l=n["@"]||n.get&&i)&&a.check(h=l+o))){if((n._=function(){}).via=e.leap=r,(l=n["><"])&&"string"==typeof l&&l.slice(0,99).split(",").forEach((function(t){this[t]=1}),n._.yo={}),l=n.dam)return(l=e.hear[l])&&l(n,r,t),void u(i);(l=n.ok)&&(n._.near=l["/"]),s=+new Date,f&&(f.is=s),r.SI=i,u.ed=function(t){i===t&&(u.ed=0,(t=a.s[i])&&(t.via=r,n.get&&(t.it=n)))},t.on("in",e.last=n),f&&(f.hd=+new Date),console.STAT&&console.STAT(s,+new Date-s,n.get?"msg get":n.put?"msg put":"msg"),u(i),h&&u(h),e.leap=e.last=null}},l.c=l.d=0,function(){var t,s=0;function l(t,e){var n;return e instanceof Object?(Object.keys(e).sort().forEach(p,{to:n={},on:e}),n):e}function p(t){this.to[t]=this.on[t]}e.hash=function(t,n){var r,s,a,c=+new Date;i(t.put,(function i(u,l){var h=(s||(s=a=l||"")).slice(0,32768);r=String.hash(h,r),(s=s.slice(32768))?o(i,0):(console.STAT&&console.STAT(c,+new Date-c,"say json+hash"),t._.$put=a,t["##"]=r,e.say(t,n),delete t._.$put)}),l)},e.say=function(i,c){var l;if((l=this)&&(l=l.to)&&l.next&&l.next(i),!i)return!1;var p,d,g,y=i["@"],m=i._||(i._=function(){}),w=i.DBG,b=+new Date;if(m.y=m.y||b,c||w&&(w.y=b),(p=i["#"])||(p=i["#"]=String.random(9)),!t&&u(p),(d=i["##"])||n===i.put||m.via||!y){if(!c&&y&&(c=(l=a.s[y])&&(l.via||(l=l.it)&&(l=l._)&&l.via)||(l=e.last)&&y===l["#"]&&e.leap),!c&&y){if(a.s[y])return;return console.STAT&&console.STAT(+new Date,++s,"total no peer to ack to"),!1}if(y&&!i.put&&!d&&((a.s[y]||"").it||"")["##"])return!1;if(!c&&e.way)return e.way(i);if(w&&(w.yh=+new Date),g=m.raw){if(w&&(w.yr=+new Date),!c||!c.id){if(!Object.plain(c||r.peers))return!1;b=+new Date,r.puff;var A=r.peers,v=Object.keys(c||r.peers||{});return console.STAT&&console.STAT(b,+new Date-b,"peer keys"),void function n(){var r=+new Date;t=1;var s=m.raw;m.raw=g;for(var a,l=0;l<9&&(a=(v||"")[l++]);)(a=A[a]||(c||"")[a])&&e.say(i,a);m.raw=s,t=0,v=v.slice(l),console.STAT&&console.STAT(r,+new Date-r,"say loop"),v.length&&(o(n,0),y&&u(y))}()}if(!c.wire&&e.wire&&e.wire(c),p!==c.last){if(c.last=p,c===m.via)return!1;if((l=m.yo)&&(l[c.url]||l[c.pid]||l[c.id]))return!1;if(console.STAT&&console.STAT(b,((w||m).yp=+new Date)-(m.y||b),"say prep"),!t&&y&&u(y),c.batch){if(c.tail=(l=c.tail||0)+g.length,c.tail<=r.pack)return void(c.batch+=(l?",":"")+g);h(c)}c.batch="[";var E=+new Date;setTimeout((function(){console.STAT&&console.STAT(E,+new Date-E,"0ms TO"),h(c)}),r.gap),f(g,c),console.STAT&&y===c.SI&&console.STAT(b,+new Date-c.SH,"say ack")}}else e.raw(i,c)}else e.hash(i,c)},e.say.c=e.say.d=0,e.raw=function(t,s){if(!t)return"";var o,u,l=t._||{};if(u=l.raw)return u;if("string"==typeof t)return t;var h=t["##"],f=t["@"];if(h&&f){if(!l.via&&c(f+h))return!1;if(u=(a.s[f]||"").it){if(h===u["##"])return!1;u["##"]||(u["##"]=h)}}if(!t.dam&&!t["@"]){var p=0,d=[];for(var g in u=r.peers){var y=u[g];if(d.push(y.url||y.pid||y.id),++p>6)break}p>1&&(t["><"]=d.join())}if(t.put&&(u=t.ok)&&(t.ok={"@":(u["@"]||1)-1,"/":u["/"]==t._.near?e.near:u["/"]}),o=l.$put)return u={},Object.keys(t).forEach((function(e){u[e]=t[e]})),u.put=":])([:",void i(u,(function(t,e){if(!t){var r=+new Date;u=e.indexOf('"put":":])([:"'),m(n,e=e.slice(0,u+6)+o+e.slice(u+14)),console.STAT&&console.STAT(r,+new Date-r,"say slice")}}));function m(n,r){n||(l.raw=r,e.say(t,s))}i(t,m)}}(),e.near=0,e.hi=function(n){var s;n.wire?(n.id?r.peers[n.url||n.id]=n:(s=n.id=n.id||n.url||String.random(9),e.say({dam:"?",pid:t.opt.pid},r.peers[s]=n),delete a.s[n.last]),n.met||(e.near++,n.met=+new Date,t.on("hi",n)),s=n.queue,n.queue=[],setTimeout.each(s||[],(function(t){f(t,n)}),0,9)):e.wire(n.length&&{url:n,id:n}||n)},e.bye=function(n){n.met&&--e.near,delete n.met,t.on("bye",n);var r=+new Date;r-=n.met||r,e.bye.time=((e.bye.time||r)+r)/2},e.hear["!"]=function(t,e){r.log("Error:",t.err)},e.hear["?"]=function(t,n){t.pid&&(n.pid||(n.pid=t.pid),t["@"])||(e.say({dam:"?",pid:r.pid,"@":t["#"]},n),delete a.s[n.last])},e.hear.mob=function(t,n){if(t.peers){var r=Object.keys(t.peers),s=r[Math.random()*r.length|0];s&&(e.bye(n),e.hi(s))}},t.on("create",(function(t){t.opt.pid=t.opt.pid||String.random(9),this.to.next(t),t.on("out",e.say)})),t.on("bye",(function(t,e){t=r.peers[t.id||t]||t,this.to.next(t),t.bye?t.bye():(e=t.wire)&&e.close&&e.close(),delete r.peers[t.id],t.wire=null})),t.on("bye",(function(t,n){this.to.next(t),(n=console.STAT)&&(n.peers=e.near),(n=t.url)&&setTimeout((function(){}),r.lack||9e3)})),t.on("hi",(function(n,s){if(this.to.next(n),(s=console.STAT)&&(s.peers=e.near),!r.super){var i=Object.keys(t.next||"");i.length>9999&&!console.SUBS&&console.log(console.SUBS="Warning: You have more than 10K live GETs, which might use more bandwidth than your screen can show - consider `.off()`."),setTimeout.each(i,(function(s){var i=t.next[s];r.super||(i.ask||"")[""]?e.say({get:{"#":s}},n):setTimeout.each(Object.keys(i.ask||""),(function(r){r&&e.say({"##":String.hash((t.graph[s]||"")[r]),get:{"#":s,".":r}},n)}))}))}})),e}}catch(t){}}))(e,"./mesh"),e((function(t){var n=e("./index");n.Mesh=e("./mesh"),n.on("opt",(function(t){if(this.to.next(t),!t.once){var e=t.opt;if(!1!==e.WebSocket){var r=n.window||{},s=e.WebSocket||r.WebSocket||r.webkitWebSocket||r.mozWebSocket;if(s){e.WebSocket=s;var i=e.mesh=e.mesh||n.Mesh(t);i.wire||e.wire,i.wire=e.wire=c,setTimeout((function(){!e.super&&t.on("out",{dam:"hi"})}),1);var o=1998,a=""+undefined!=typeof document&&document}}}function c(t){try{if(!t||!t.url)return r&&r(t);var n=t.url.replace(/^http/,"ws"),r=t.wire=new e.WebSocket(n);return r.onclose=function(){u(t),e.mesh.bye(t)},r.onerror=function(e){u(t)},r.onopen=function(){e.mesh.hi(t)},r.onmessage=function(n){n&&e.mesh.hear(n.data||n,t)},r}catch(n){e.mesh.bye(t)}}function u(t){clearTimeout(t.defer),e.peers[t.url]&&(a&&t.retry<=0||(t.retry=(t.retry||e.retry+1||60)-(-t.tried+(t.tried=+new Date)<4*o?1:0),t.defer=setTimeout((function e(){if(a&&a.hidden)return setTimeout(e,o);c(t)}),o)))}}))}))(e,"./websocket"),e((function(t){if("undefined"!=typeof Gun){var e;try{e=(Gun.window||function(){}).localStorage}catch(t){}e||(Gun.log("Warning: No localStorage exists to persist data to!"),e={setItem:function(t,e){this[t]=e},removeItem:function(t){delete this[t]},getItem:function(t){return this[t]}});var n=JSON.stringifyAsync||function(t,e,n,r){try{e(undefined,JSON.stringify(t,n,r))}catch(t){e(t)}};Gun.on("create",(function t(r){this.to.next(r);var s=r.opt;r.graph;var i,o,a,c,u=[];if(!1!==s.localStorage){s.prefix=s.file||"gun/";try{i=t[s.prefix]=t[s.prefix]||JSON.parse(a=e.getItem(s.prefix))||{}}catch(e){i=t[s.prefix]={}}a=(a||"").length,r.on("get",(function(t){this.to.next(t);var e,n,r,s=t.get;s&&(e=s["#"])&&((n=i[e]||undefined)&&(r=s["."])&&!Object.plain(r)&&(n=Gun.state.ify({},r,Gun.state.is(n,r),n[r],e)),Gun.on.get.ack(t,n))})),r.on("put",(function(t){this.to.next(t);var e=t.put,n=e["#"],s=e["."],h=t["#"],f=t.ok||"";i[n]=Gun.state.ify(i[n],s,e[">"],e[":"],n),c&&a>4999880?r.on("in",{"@":h,err:"localStorage max!"}):(t["@"]||t._.via&&!(Math.random()<f["@"]/f["/"])||u.push(h),o||(o=setTimeout(l,9+a/333)))}))}function l(){if(u.length||!((setTimeout.turn||"").s||"").length){var t=u;clearTimeout(o),o=!1,u=[],n(i,(function(n,o){try{!n&&e.setItem(s.prefix,o)}catch(t){n=c=t||"localStorage failure"}n&&(Gun.log(n+" Consider using GUN's IndexedDB plugin for RAD for more storage space, https://gun.eco/docs/RAD#install"),r.on("localStorage:error",{err:n,get:s.prefix,put:i})),a=o.length,setTimeout.each(t,(function(t){r.on("in",{"@":t,err:n,ok:0})}),0,99)}))}else setTimeout(l,99)}}))}}))(e,"./localStorage")}(),function(){if(""+E!=typeof Gun){var t=function(t){console.warn("Warning! Deprecated internal utility will break in next version:",t)},e=Gun;e.fn=e.fn||{is:function(e){return t("fn"),!!e&&"function"==typeof e}},e.bi=e.bi||{is:function(e){return t("bi"),e instanceof Boolean||"boolean"==typeof e}},e.num=e.num||{is:function(e){return t("num"),!r(e)&&(e-parseFloat(e)+1>=0||1/0===e||-1/0===e)}},e.text=e.text||{is:function(e){return t("text"),"string"==typeof e}},e.text.ify=e.text.ify||function(n){return t("text.ify"),e.text.is(n)?n:"undefined"!=typeof JSON?JSON.stringify(n):n&&n.toString?n.toString():n},e.text.random=e.text.random||function(e,n){t("text.random");var r="";for(e=e||24,n=n||"0123456789ABCDEFGHIJKLMNOPQRSTUVWXZabcdefghijklmnopqrstuvwxyz";e>0;)r+=n.charAt(Math.floor(Math.random()*n.length)),e--;return r},e.text.match=e.text.match||function(e,n){var r,s;return t("text.match"),"string"==typeof e&&("string"==typeof n&&(n={"=":n}),e===(r=(n=n||{})["="]||n["*"]||n[">"]||n["<"])||s===n["="]&&(r=n["*"]||n[">"]||n["<"],e.slice(0,(r||"").length)===r||s===n["*"]&&(s!==n[">"]&&s!==n["<"]?e>=n[">"]&&e<=n["<"]:s!==n[">"]&&e>=n[">"]||s!==n["<"]&&e<=n["<"])))},e.text.hash=e.text.hash||function(e,n){if(t("text.hash"),"string"==typeof e){if(n=n||0,!e.length)return n;for(var r=0,s=e.length;r<s;++r)n=(n<<5)-n+e.charCodeAt(r),n|=0;return n}},e.list=e.list||{is:function(e){return t("list"),e instanceof Array}},e.list.slit=e.list.slit||Array.prototype.slice,e.list.sort=e.list.sort||function(e){return t("list.sort"),function(t,n){return t&&n?(t=t[e])<(n=n[e])?-1:t>n?1:0:0}},e.list.map=e.list.map||function(e,n,r){return t("list.map"),o(e,n,r)},e.list.index=1,e.obj=e.boj||{is:function(e){return t("obj"),!!e&&(e instanceof Object&&e.constructor===Object||"Object"===Object.prototype.toString.call(e).match(/^\[object (\w+)\]$/)[1])}},e.obj.put=e.obj.put||function(e,n,r){return t("obj.put"),(e||{})[n]=r,e},e.obj.has=e.obj.has||function(e,n){return t("obj.has"),e&&Object.prototype.hasOwnProperty.call(e,n)},e.obj.del=e.obj.del||function(e,n){if(t("obj.del"),e)return e[n]=null,delete e[n],e},e.obj.as=e.obj.as||function(e,n,r,s){return t("obj.as"),e[n]=e[n]||(s===r?{}:r)},e.obj.ify=e.obj.ify||function(e){if(t("obj.ify"),s(e))return e;try{e=JSON.parse(e)}catch(t){e={}}return e},function(){function n(t,e){i(this,e)&&undefined!==this[e]||(this[e]=t)}e.obj.to=e.obj.to||function(e,r){return t("obj.to"),o(e,n,r=r||{}),r}}(),e.obj.copy=e.obj.copy||function(e){return t("obj.copy"),e?JSON.parse(JSON.stringify(e)):e},function(){function n(t,e){var n=this.n;if(!n||!(e===n||s(n)&&i(n,e)))return undefined!==e||void 0}e.obj.empty=e.obj.empty||function(e,r){return t("obj.empty"),!e||!o(e,n,{n:r})}}(),function(){function n(t,e){if(2===arguments.length)return n.r=n.r||{},void(n.r[t]=e);n.r=n.r||[],n.r.push(t)}var o,a=Object.keys;Object.keys=Object.keys||function(t){return o(t,(function(t,e,n){n(e)}))},e.obj.map=o=e.obj.map||function(o,c,u){t("obj.map");var l,h,f,p,d,g=0,y="function"==typeof c;if(n.r=l,a&&s(o)&&(p=a(o),d=!0),u=u||{},r(o)||p)for(h=(p||o).length;g<h;g++){var m=g+e.list.index;if(y){if((f=d?c.call(u,o[p[g]],p[g],n):c.call(u,o[g],m,n))!==l)return f}else if(c===o[d?p[g]:g])return p?p[g]:m}else for(g in o)if(y){if(i(o,g)&&(f=u?c.call(u,o[g],g,n):c(o[g],g,n))!==l)return f}else if(c===o[g])return g;return y?n.r:e.list.index?0:-1}}(),e.time=e.time||{},e.time.is=e.time.is||function(e){return t("time"),e?e instanceof Date:+(new Date).getTime()};var n=e.fn.is,r=e.list.is,s=(v=e.obj).is,i=v.has,o=v.map,a={is:function(e){return t("val.is"),e!==E&&(null===e||e!==1/0&&(!!(h(e)||u(e)||l(e))||(a.link.is(e)||!1)))}};a.link=a.rel={_:"#"},function(){function e(t,e){var n=this;return n.id?n.id=!1:e==c&&h(t)?void(n.id=t):n.id=!1}a.link.is=function(n){if(t("val.link.is"),n&&n[c]&&!n._&&s(n)){var r={};if(o(n,e,r),r.id)return r.id}return!1}}(),a.link.ify=function(e){return t("val.link.ify"),f({},c,e)},e.obj.has._=".";var c=a.link._,u=e.bi.is,l=e.num.is,h=e.text.is,f=(s=(v=e.obj).is,v.put);o=v.map;e.val=e.val||a;var p={_:"_",soul:function(e,n){return t("node.soul"),e&&e._&&e._[n||y]}};p.soul.ify=function(e,n){return t("node.soul.ify"),n="string"==typeof n?{soul:n}:n||{},(e=e||{})._=e._||{},e._[y]=n.soul||e._[y]||g(),e},p.soul._=a.link._,function(){function e(t,e){if(e!==p._)return!a.is(t)||void(this.cb&&this.cb.call(this.as,t,e,this.n,this.s))}p.is=function(n,r,i){var a;return t("node.is"),!!s(n)&&(!!(a=p.soul(n))&&!o(n,e,{as:i,cb:r,s:a,n:n}))}}(),function(){function e(t,e){var n,r=this.o;r.map?undefined===(n=r.map.call(this.as,t,""+e,r.node))?d(r.node,e):r.node&&(r.node[e]=n):a.is(t)&&(r.node[e]=t)}p.ify=function(n,r,s){return t("node.ify"),r?"string"==typeof r?r={soul:r}:"function"==typeof r&&(r={map:r}):r={},r.map&&(r.node=r.map.call(s,n,E,r.node||{})),(r.node=p.soul.ify(r.node||{},r))&&o(n,e,{o:r,as:s}),r.node}}();s=(v=e.obj).is;var d=v.del,g=(o=v.map,e.text.random),y=p.soul._;e.node=e.node||p;var m=e.state;m.lex=function(){return t("state.lex"),m().toString(36).replace(".","")},m.to=function(e,n,r){t("state.to");var i=(e||{})[n];return s(i)&&(i=w(i)),m.ify(r,n,m.is(e,n),i,p.soul(e))},function(){function e(t,e){b!==e&&m.ify(this.o,e,this.s)}m.map=function(r,a,c){var u;t("state.map");var h=s(h=r||a)?h:null;return r=n(r=r||a)?r:null,h&&!r?(a=l(a)?a:m(),h[b]=h[b]||{},o(h,e,{o:h,s:a}),h):(c=c||s(a)?a:u,a=l(a)?a:m(),function(t,n,s,o){if(!r)return e.call({o:s,s:a},t,n),t;r.call(c||this||{},t,n,s,o),i(s,n)&&u===s[n]||e.call({o:s,s:a},t,n)})}}(),(v=e.obj).as;i=v.has,s=v.is,o=v.map;var w=v.copy,b=(l=e.num.is,n=e.fn.is,p._),A={};!function(){function e(t,e){if(!t||e!==p.soul(t)||!p.is(t,this.fn,this.as))return!0;this.cb&&(n.n=t,n.as=this.as,this.cb.call(n.as,t,e,n))}function n(t){t&&p.is(n.n,t,n.as)}A.is=function(n,r,i,a){return t("graph.is"),!(!n||!s(n)||k(n))&&!o(n,e,{cb:r,fn:i,as:a})}}(),function(){function n(t,e){var n;return(n=function(t,e){var n,r=t.seen,s=r.length;for(;s--;)if(n=r[s],e.obj===n.obj)return n;r.push(e)}(t,e))?n:(e.env=t,e.soul=o,p.ify(e.obj,r,e)&&(e.link=e.link||a.link.ify(p.soul(e.node)),e.obj!==t.shell&&(t.graph[a.link.is(e.link)]=e.node)),e)}function r(t,e,r){var s,o,u=this,l=u.env;if(p._===e&&i(t,a.link._))return r._;if(s=c(t,e,r,u,l)){if(e||(u.node=u.node||r||{},i(t,p._)&&p.soul(t)&&(u.node._=w(t._)),u.node=p.soul.ify(u.node,a.link.is(u.link)),u.link=u.link||a.link.ify(p.soul(u.node))),(o=l.map)&&(o.call(l.as||{},t,e,r,u),i(r,e))){if(t=r[e],E===t)return void d(r,e);if(!(s=c(t,e,r,u,l)))return}if(!e)return u.node;if(!0===s)return t;if((o=n(l,{obj:t,path:u.path.concat(e)})).node)return o.link}}function o(t){var e=this,n=a.link.is(e.link),r=e.env.graph;e.link=e.link||a.link.ify(t),e.link[a.link._]=t,e.node&&e.node[p._]&&(e.node[p._][a.link._]=t),i(r,n)&&(r[t]=r[n],d(r,n))}function c(t,n,r,i,o){var u;return!!a.is(t)||(s(t)?1:(u=o.invalid)?c(t=u.call(o.as||{},t,n,r),n,r,i,o):(o.err="Invalid value at '"+i.path.concat(n).join(".")+"'!",void(e.list.is(t)&&(o.err+=" Use `.set(item)` instead of an Array."))))}A.ify=function(e,r,s){t("graph.ify");var i={path:[],obj:e};return r?"string"==typeof r?r={soul:r}:"function"==typeof r&&(r.map=r):r={},"string"==typeof s&&(r.soul=r.soul||s,s=E),r.soul&&(i.link=a.link.ify(r.soul)),r.shell=(s||{}).shell,r.graph=r.graph||{},r.seen=r.seen||[],r.as=r.as||s,n(r,i),r.root=i.node,r.graph}}(),A.node=function(e){t("graph.node");var n=p.soul(e);if(n)return f({},n,e)},function(){function e(t,e){var n,r;if(p._!==e)(n=a.link.is(t))?(r=this.opt.seen[n])?this.obj[e]=r:this.obj[e]=this.opt.seen[n]=A.to(this.graph,n,this.opt):this.obj[e]=t;else{if(k(t,a.link._))return;this.obj[e]=w(t)}}A.to=function(n,r,s){if(t("graph.to"),n){var i={};return s=s||{seen:{}},o(n[r],e,{obj:i,graph:n,opt:s}),i}}}();n=e.fn.is,s=(v=e.obj).is,d=v.del,i=v.has;var v,E,k=v.empty;f=v.put,o=v.map,w=v.copy;e.graph=e.graph||A}}()}(r);var s=t(r.exports);const i="6.13.4";function o(t,e,n){const r=e.split("|").map((t=>t.trim()));for(let n=0;n<r.length;n++)switch(e){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof t===e)return}const s=new Error(`invalid value for type ${e}`);throw s.code="INVALID_ARGUMENT",s.argument=`value.${n}`,s.value=t,s}async function a(t){const e=Object.keys(t);return(await Promise.all(e.map((e=>Promise.resolve(t[e]))))).reduce(((t,n,r)=>(t[e[r]]=n,t)),{})}function c(t,e,n){for(let r in e){let s=e[r];const i=n?n[r]:null;i&&o(s,i,r),Object.defineProperty(t,r,{enumerable:!0,value:s,writable:!1})}}function u(t){if(null==t)return"null";if(Array.isArray(t))return"[ "+t.map(u).join(", ")+" ]";if(t instanceof Uint8Array){const e="0123456789abcdef";let n="0x";for(let r=0;r<t.length;r++)n+=e[t[r]>>4],n+=e[15&t[r]];return n}if("object"==typeof t&&"function"==typeof t.toJSON)return u(t.toJSON());switch(typeof t){case"boolean":case"symbol":case"number":return t.toString();case"bigint":return BigInt(t).toString();case"string":return JSON.stringify(t);case"object":{const e=Object.keys(t);return e.sort(),"{ "+e.map((e=>`${u(e)}: ${u(t[e])}`)).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function l(t,e){return t&&t.code===e}function h(t){return l(t,"CALL_EXCEPTION")}function f(t,e,n){let r,s=t;{const r=[];if(n){if("message"in n||"code"in n||"name"in n)throw new Error(`value will overwrite populated values: ${u(n)}`);for(const t in n){if("shortMessage"===t)continue;const e=n[t];r.push(t+"="+u(e))}}r.push(`code=${e}`),r.push(`version=${i}`),r.length&&(t+=" ("+r.join(", ")+")")}switch(e){case"INVALID_ARGUMENT":r=new TypeError(t);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":r=new RangeError(t);break;default:r=new Error(t)}return c(r,{code:e}),n&&Object.assign(r,n),null==r.shortMessage&&c(r,{shortMessage:s}),r}function p(t,e,n,r){if(!t)throw f(e,n,r)}function d(t,e,n,r){p(t,e,"INVALID_ARGUMENT",{argument:n,value:r})}function g(t,e,n){null==n&&(n=""),n&&(n=": "+n),p(t>=e,"missing arguemnt"+n,"MISSING_ARGUMENT",{count:t,expectedCount:e}),p(t<=e,"too many arguments"+n,"UNEXPECTED_ARGUMENT",{count:t,expectedCount:e})}const y=["NFD","NFC","NFKD","NFKC"].reduce(((t,e)=>{try{if("test"!=="test".normalize(e))throw new Error("bad");if("NFD"===e){const t=String.fromCharCode(233).normalize("NFD");if(t!==String.fromCharCode(101,769))throw new Error("broken")}t.push(e)}catch(t){}return t}),[]);function m(t){p(y.indexOf(t)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:t}})}function w(t,e,n){if(null==n&&(n=""),t!==e){let t=n,e="new";n&&(t+=".",e+=" "+n),p(!1,`private constructor; use ${t}from* methods`,"UNSUPPORTED_OPERATION",{operation:e})}}function b(t,e,n){if(t instanceof Uint8Array)return n?new Uint8Array(t):t;if("string"==typeof t&&t.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){const e=new Uint8Array((t.length-2)/2);let n=2;for(let r=0;r<e.length;r++)e[r]=parseInt(t.substring(n,n+2),16),n+=2;return e}d(!1,"invalid BytesLike value",e||"value",t)}function A(t,e){return b(t,e,!1)}function v(t,e){return b(t,e,!0)}function E(t,e){return!("string"!=typeof t||!t.match(/^0x[0-9A-Fa-f]*$/))&&(("number"!=typeof e||t.length===2+2*e)&&(!0!==e||t.length%2==0))}function k(t){return E(t,!0)||t instanceof Uint8Array}const T="0123456789abcdef";function N(t){const e=A(t);let n="0x";for(let t=0;t<e.length;t++){const r=e[t];n+=T[(240&r)>>4]+T[15&r]}return n}function x(t){return"0x"+t.map((t=>N(t).substring(2))).join("")}function S(t){return E(t,!0)?(t.length-2)/2:A(t).length}function O(t,e,n){const r=A(t);return null!=n&&n>r.length&&p(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:n}),N(r.slice(null==e?0:e,null==n?r.length:n))}function P(t,e,n){const r=A(t);p(e>=r.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(r),length:e,offset:e+1});const s=new Uint8Array(e);return s.fill(0),n?s.set(r,e-r.length):s.set(r,0),N(s)}function R(t,e){return P(t,e,!0)}const I=BigInt(0),C=BigInt(1),B=9007199254740991;function D(t,e){let n=L(t,"value");const r=BigInt(G(e,"width")),s=C<<r-C;if(n<I){n=-n,p(n<=s,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:t});return(~n&(C<<r)-C)+C}return p(n<s,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:t}),n}function U(t,e){const n=F(t,"value"),r=BigInt(G(e,"bits"));return n&(C<<r)-C}function L(t,e){switch(typeof t){case"bigint":return t;case"number":return d(Number.isInteger(t),"underflow",e||"value",t),d(t>=-B&&t<=B,"overflow",e||"value",t),BigInt(t);case"string":try{if(""===t)throw new Error("empty string");return"-"===t[0]&&"-"!==t[1]?-BigInt(t.substring(1)):BigInt(t)}catch(n){d(!1,`invalid BigNumberish string: ${n.message}`,e||"value",t)}}d(!1,"invalid BigNumberish value",e||"value",t)}function F(t,e){const n=L(t,e);return p(n>=I,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:t}),n}const M="0123456789abcdef";function _(t){if(t instanceof Uint8Array){let e="0x0";for(const n of t)e+=M[n>>4],e+=M[15&n];return BigInt(e)}return L(t)}function G(t,e){switch(typeof t){case"bigint":return d(t>=-B&&t<=B,"overflow",e||"value",t),Number(t);case"number":return d(Number.isInteger(t),"underflow",e||"value",t),d(t>=-B&&t<=B,"overflow",e||"value",t),t;case"string":try{if(""===t)throw new Error("empty string");return G(BigInt(t),e)}catch(n){d(!1,`invalid numeric string: ${n.message}`,e||"value",t)}}d(!1,"invalid numeric value",e||"value",t)}function j(t,e){let n=F(t,"value").toString(16);if(null==e)n.length%2&&(n="0"+n);else{const r=G(e,"width");for(p(2*r>=n.length,`value exceeds width (${r} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:t});n.length<2*r;)n="0"+n}return"0x"+n}function H(t){const e=F(t,"value");if(e===I)return new Uint8Array([]);let n=e.toString(16);n.length%2&&(n="0"+n);const r=new Uint8Array(n.length/2);for(let t=0;t<r.length;t++){const e=2*t;r[t]=parseInt(n.substring(e,e+2),16)}return r}function K(t){let e=N(k(t)?t:H(t)).substring(2);for(;e.startsWith("0");)e=e.substring(1);return""===e&&(e="0"),"0x"+e}const V="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";let Q=null;function J(t){if(null==Q){Q={};for(let t=0;t<58;t++)Q[V[t]]=BigInt(t)}const e=Q[t];return d(null!=e,"invalid base58 value","letter",t),e}const z=BigInt(0),Y=BigInt(58);function q(t){const e=A(t);let n=_(e),r="";for(;n;)r=V[Number(n%Y)]+r,n/=Y;for(let t=0;t<e.length&&!e[t];t++)r=V[0]+r;return r}class ${filter;emitter;#t;constructor(t,e,n){this.#t=e,c(this,{emitter:t,filter:n})}async removeListener(){null!=this.#t&&await this.emitter.off(this.filter,this.#t)}}function W(t,e,n,r,s){if("BAD_PREFIX"===t||"UNEXPECTED_CONTINUE"===t){let t=0;for(let r=e+1;r<n.length&&n[r]>>6==2;r++)t++;return t}return"OVERRUN"===t?n.length-e-1:0}const Z=Object.freeze({error:function(t,e,n,r,s){d(!1,`invalid codepoint at offset ${e}; ${t}`,"bytes",n)},ignore:W,replace:function(t,e,n,r,s){return"OVERLONG"===t?(d("number"==typeof s,"invalid bad code point for replacement","badCodepoint",s),r.push(s),0):(r.push(65533),W(t,e,n))}});function X(t,e){d("string"==typeof t,"invalid string value","str",t),null!=e&&(m(e),t=t.normalize(e));let n=[];for(let e=0;e<t.length;e++){const r=t.charCodeAt(e);if(r<128)n.push(r);else if(r<2048)n.push(r>>6|192),n.push(63&r|128);else if(55296==(64512&r)){e++;const s=t.charCodeAt(e);d(e<t.length&&56320==(64512&s),"invalid surrogate pair","str",t);const i=65536+((1023&r)<<10)+(1023&s);n.push(i>>18|240),n.push(i>>12&63|128),n.push(i>>6&63|128),n.push(63&i|128)}else n.push(r>>12|224),n.push(r>>6&63|128),n.push(63&r|128)}return new Uint8Array(n)}function tt(t,e){return n=function(t,e){null==e&&(e=Z.error);const n=A(t,"bytes"),r=[];let s=0;for(;s<n.length;){const t=n[s++];if(!(t>>7)){r.push(t);continue}let i=null,o=null;if(192==(224&t))i=1,o=127;else if(224==(240&t))i=2,o=2047;else{if(240!=(248&t)){s+=e(128==(192&t)?"UNEXPECTED_CONTINUE":"BAD_PREFIX",s-1,n,r);continue}i=3,o=65535}if(s-1+i>=n.length){s+=e("OVERRUN",s-1,n,r);continue}let a=t&(1<<8-i-1)-1;for(let t=0;t<i;t++){let t=n[s];if(128!=(192&t)){s+=e("MISSING_CONTINUE",s,n,r),a=null;break}a=a<<6|63&t,s++}null!==a&&(a>1114111?s+=e("OUT_OF_RANGE",s-1-i,n,r,a):a>=55296&&a<=57343?s+=e("UTF16_SURROGATE",s-1-i,n,r,a):a<=o?s+=e("OVERLONG",s-1-i,n,r,a):r.push(a))}return r}(t,e),n.map((t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode(55296+(t>>10&1023),56320+(1023&t))))).join("");var n}function et(t){return async function(t,e){p(null==e||!e.cancelled,"request cancelled before sending","CANCELLED");const n=t.url.split(":")[0].toLowerCase();p("http"===n||"https"===n,`unsupported protocol ${n}`,"UNSUPPORTED_OPERATION",{info:{protocol:n},operation:"request"}),p("https"===n||!t.credentials||t.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let r=null;const s=new AbortController,i=setTimeout((()=>{r=f("request timeout","TIMEOUT"),s.abort()}),t.timeout);e&&e.addListener((()=>{r=f("request cancelled","CANCELLED"),s.abort()}));const o={method:t.method,headers:new Headers(Array.from(t)),body:t.body||void 0,signal:s.signal};let a;try{a=await fetch(t.url,o)}catch(t){if(clearTimeout(i),r)throw r;throw t}clearTimeout(i);const c={};a.headers.forEach(((t,e)=>{c[e.toLowerCase()]=t}));const u=await a.arrayBuffer(),l=null==u?null:new Uint8Array(u);return{statusCode:a.status,statusMessage:a.statusText,headers:c,body:l}}}let nt=et();const rt=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),st=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let it=!1;async function ot(t,e){try{const e=t.match(rt);if(!e)throw new Error("invalid data");return new pt(200,"OK",{"content-type":e[1]||"text/plain"},e[2]?function(t){t=atob(t);const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return A(e)}(e[3]):X(e[3].replace(/%([0-9a-f][0-9a-f])/gi,((t,e)=>String.fromCharCode(parseInt(e,16))))))}catch(e){return new pt(599,"BAD REQUEST (invalid data: URI)",{},null,new ft(t))}}function at(t){return async function(e,n){try{const n=e.match(st);if(!n)throw new Error("invalid link");return new ft(`${t}${n[2]}`)}catch(t){return new pt(599,"BAD REQUEST (invalid IPFS URI)",{},null,new ft(e))}}}const ct={data:ot,ipfs:at("https://gateway.ipfs.io/ipfs/")},ut=new WeakMap;class lt{#e;#n;constructor(t){this.#e=[],this.#n=!1,ut.set(t,(()=>{if(!this.#n){this.#n=!0;for(const t of this.#e)setTimeout((()=>{t()}),0);this.#e=[]}}))}addListener(t){p(!this.#n,"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),this.#e.push(t)}get cancelled(){return this.#n}checkSignal(){p(!this.cancelled,"cancelled","CANCELLED",{})}}function ht(t){if(null==t)throw new Error("missing signal; should not happen");return t.checkSignal(),t}class ft{#r;#s;#i;#o;#a;#c;#u;#l;#h;#f;#p;#d;#g;#y;#m;get url(){return this.#c}set url(t){this.#c=String(t)}get body(){return null==this.#u?null:new Uint8Array(this.#u)}set body(t){if(null==t)this.#u=void 0,this.#l=void 0;else if("string"==typeof t)this.#u=X(t),this.#l="text/plain";else if(t instanceof Uint8Array)this.#u=t,this.#l="application/octet-stream";else{if("object"!=typeof t)throw new Error("invalid body");this.#u=X(JSON.stringify(t)),this.#l="application/json"}}hasBody(){return null!=this.#u}get method(){return this.#o?this.#o:this.hasBody()?"POST":"GET"}set method(t){null==t&&(t=""),this.#o=String(t).toUpperCase()}get headers(){const t=Object.assign({},this.#i);return this.#h&&(t.authorization=`Basic ${function(t){const e=A(t);let n="";for(let t=0;t<e.length;t++)n+=String.fromCharCode(e[t]);return btoa(n)}(X(this.#h))}`),this.allowGzip&&(t["accept-encoding"]="gzip"),null==t["content-type"]&&this.#l&&(t["content-type"]=this.#l),this.body&&(t["content-length"]=String(this.body.length)),t}getHeader(t){return this.headers[t.toLowerCase()]}setHeader(t,e){this.#i[String(t).toLowerCase()]=String(e)}clearHeaders(){this.#i={}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let n=0;return{next:()=>{if(n<e.length){const r=e[n++];return{value:[r,t[r]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return this.#h||null}setCredentials(t,e){d(!t.match(/:/),"invalid basic authentication username","username","[REDACTED]"),this.#h=`${t}:${e}`}get allowGzip(){return this.#s}set allowGzip(t){this.#s=!!t}get allowInsecureAuthentication(){return!!this.#r}set allowInsecureAuthentication(t){this.#r=!!t}get timeout(){return this.#a}set timeout(t){d(t>=0,"timeout must be non-zero","timeout",t),this.#a=t}get preflightFunc(){return this.#f||null}set preflightFunc(t){this.#f=t}get processFunc(){return this.#p||null}set processFunc(t){this.#p=t}get retryFunc(){return this.#d||null}set retryFunc(t){this.#d=t}get getUrlFunc(){return this.#m||nt}set getUrlFunc(t){this.#m=t}constructor(t){this.#c=String(t),this.#r=!1,this.#s=!0,this.#i={},this.#o="",this.#a=3e5,this.#y={slotInterval:250,maxAttempts:12},this.#m=null}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${this.#u?N(this.#u):"null"}>`}setThrottleParams(t){null!=t.slotInterval&&(this.#y.slotInterval=t.slotInterval),null!=t.maxAttempts&&(this.#y.maxAttempts=t.maxAttempts)}async#w(t,e,n,r,s){if(t>=this.#y.maxAttempts)return s.makeServerError("exceeded maximum retry limit");p(dt()<=e,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:r}),n>0&&await function(t){return new Promise((e=>setTimeout(e,t)))}(n);let i=this.clone();const o=(i.url.split(":")[0]||"").toLowerCase();if(o in ct){const t=await ct[o](i.url,ht(r.#g));if(t instanceof pt){let e=t;if(this.processFunc){ht(r.#g);try{e=await this.processFunc(i,e)}catch(t){null!=t.throttle&&"number"==typeof t.stall||e.makeServerError("error in post-processing function",t).assertOk()}}return e}i=t}this.preflightFunc&&(i=await this.preflightFunc(i));const a=await this.getUrlFunc(i,ht(r.#g));let c=new pt(a.statusCode,a.statusMessage,a.headers,a.body,r);if(301===c.statusCode||302===c.statusCode){try{const n=c.headers.location||"";return i.redirect(n).#w(t+1,e,0,r,c)}catch(t){}return c}if(429===c.statusCode&&(null==this.retryFunc||await this.retryFunc(i,c,t))){const n=c.headers["retry-after"];let s=this.#y.slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return"string"==typeof n&&n.match(/^[1-9][0-9]*$/)&&(s=parseInt(n)),i.clone().#w(t+1,e,s,r,c)}if(this.processFunc){ht(r.#g);try{c=await this.processFunc(i,c)}catch(n){null!=n.throttle&&"number"==typeof n.stall||c.makeServerError("error in post-processing function",n).assertOk();let s=this.#y.slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return n.stall>=0&&(s=n.stall),i.clone().#w(t+1,e,s,r,c)}}return c}send(){return p(null==this.#g,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),this.#g=new lt(this),this.#w(0,dt()+this.timeout,0,this,new pt(0,"",{},null,this))}cancel(){p(null!=this.#g,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const t=ut.get(this);if(!t)throw new Error("missing signal; should not happen");t()}redirect(t){const e=this.url.split(":")[0].toLowerCase(),n=t.split(":")[0].toLowerCase();p("GET"===this.method&&("https"!==e||"http"!==n)&&t.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(t)})`});const r=new ft(t);return r.method="GET",r.allowGzip=this.allowGzip,r.timeout=this.timeout,r.#i=Object.assign({},this.#i),this.#u&&(r.#u=new Uint8Array(this.#u)),r.#l=this.#l,r}clone(){const t=new ft(this.url);return t.#o=this.#o,this.#u&&(t.#u=this.#u),t.#l=this.#l,t.#i=Object.assign({},this.#i),t.#h=this.#h,this.allowGzip&&(t.allowGzip=!0),t.timeout=this.timeout,this.allowInsecureAuthentication&&(t.allowInsecureAuthentication=!0),t.#f=this.#f,t.#p=this.#p,t.#d=this.#d,t.#y=Object.assign({},this.#y),t.#m=this.#m,t}static lockConfig(){it=!0}static getGateway(t){return ct[t.toLowerCase()]||null}static registerGateway(t,e){if("http"===(t=t.toLowerCase())||"https"===t)throw new Error(`cannot intercept ${t}; use registerGetUrl`);if(it)throw new Error("gateways locked");ct[t]=e}static registerGetUrl(t){if(it)throw new Error("gateways locked");nt=t}static createGetUrlFunc(t){return et()}static createDataGateway(){return ot}static createIpfsGatewayFunc(t){return at(t)}}class pt{#b;#A;#i;#u;#v;#E;toString(){return`<FetchResponse status=${this.statusCode} body=${this.#u?N(this.#u):"null"}>`}get statusCode(){return this.#b}get statusMessage(){return this.#A}get headers(){return Object.assign({},this.#i)}get body(){return null==this.#u?null:new Uint8Array(this.#u)}get bodyText(){try{return null==this.#u?"":tt(this.#u)}catch(t){p(!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(t){p(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let n=0;return{next:()=>{if(n<e.length){const r=e[n++];return{value:[r,t[r]],done:!1}}return{value:void 0,done:!0}}}}constructor(t,e,n,r,s){this.#b=t,this.#A=e,this.#i=Object.keys(n).reduce(((t,e)=>(t[e.toLowerCase()]=String(n[e]),t)),{}),this.#u=null==r?null:new Uint8Array(r),this.#v=s||null,this.#E={message:""}}makeServerError(t,e){let n;n=t?`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${t})`:`CLIENT ESCALATED SERVER ERROR (${t=`${this.statusCode} ${this.statusMessage}`})`;const r=new pt(599,n,this.headers,this.body,this.#v||void 0);return r.#E={message:t,error:e},r}throwThrottleError(t,e){null==e?e=-1:d(Number.isInteger(e)&&e>=0,"invalid stall timeout","stall",e);const n=new Error(t||"throttling requests");throw c(n,{stall:e,throttle:!0}),n}getHeader(t){return this.headers[t.toLowerCase()]}hasBody(){return null!=this.#u}get request(){return this.#v}ok(){return""===this.#E.message&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:t,error:e}=this.#E;""===t&&(t=`server response ${this.statusCode} ${this.statusMessage}`);let n=null;this.request&&(n=this.request.url);let r=null;try{this.#u&&(r=tt(this.#u))}catch(t){}p(!1,t,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:e,info:{requestUrl:n,responseBody:r,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function dt(){return(new Date).getTime()}function gt(t){let e=t.toString(16);for(;e.length<2;)e="0"+e;return"0x"+e}function yt(t,e,n){let r=0;for(let s=0;s<n;s++)r=256*r+t[e+s];return r}function mt(t,e,n,r){const s=[];for(;n<e+1+r;){const i=wt(t,n);s.push(i.result),p((n+=i.consumed)<=e+1+r,"child data too short","BUFFER_OVERRUN",{buffer:t,length:r,offset:e})}return{consumed:1+r,result:s}}function wt(t,e){p(0!==t.length,"data too short","BUFFER_OVERRUN",{buffer:t,length:0,offset:1});const n=e=>{p(e<=t.length,"data short segment too short","BUFFER_OVERRUN",{buffer:t,length:t.length,offset:e})};if(t[e]>=248){const r=t[e]-247;n(e+1+r);const s=yt(t,e+1,r);return n(e+1+r+s),mt(t,e,e+1+r,r+s)}if(t[e]>=192){const r=t[e]-192;return n(e+1+r),mt(t,e,e+1,r)}if(t[e]>=184){const r=t[e]-183;n(e+1+r);const s=yt(t,e+1,r);n(e+1+r+s);return{consumed:1+r+s,result:N(t.slice(e+1+r,e+1+r+s))}}if(t[e]>=128){const r=t[e]-128;n(e+1+r);return{consumed:1+r,result:N(t.slice(e+1,e+1+r))}}return{consumed:1,result:gt(t[e])}}function bt(t){const e=A(t,"data"),n=wt(e,0);return d(n.consumed===e.length,"unexpected junk after rlp payload","data",t),n.result}function At(t){const e=[];for(;t;)e.unshift(255&t),t>>=8;return e}function vt(t){if(Array.isArray(t)){let e=[];if(t.forEach((function(t){e=e.concat(vt(t))})),e.length<=55)return e.unshift(192+e.length),e;const n=At(e.length);return n.unshift(247+n.length),n.concat(e)}const e=Array.prototype.slice.call(A(t,"object"));if(1===e.length&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const n=At(e.length);return n.unshift(183+n.length),n.concat(e)}const Et="0123456789abcdef";function kt(t){let e="0x";for(const n of vt(t))e+=Et[n>>4],e+=Et[15&n];return e}function Tt(t){const e=A(t,"randomBytes");e[6]=15&e[6]|64,e[8]=63&e[8]|128;const n=N(e);return[n.substring(2,10),n.substring(10,14),n.substring(14,18),n.substring(18,22),n.substring(22,34)].join("-")}const Nt=32,xt=new Uint8Array(Nt),St=["then"],Ot={},Pt=new WeakMap;function Rt(t){return Pt.get(t)}function It(t,e){Pt.set(t,e)}function Ct(t,e){const n=new Error(`deferred error during ABI decoding triggered accessing ${t}`);throw n.error=e,n}function Bt(t,e,n){return t.indexOf(null)>=0?e.map(((t,e)=>t instanceof Dt?Bt(Rt(t),t,n):t)):t.reduce(((t,r,s)=>{let i=e.getValue(r);return r in t||(n&&i instanceof Dt&&(i=Bt(Rt(i),i,n)),t[r]=i),t}),{})}class Dt extends Array{#k;constructor(...t){const e=t[0];let n=t[1],r=(t[2]||[]).slice(),s=!0;e!==Ot&&(n=t,r=[],s=!1),super(n.length),n.forEach(((t,e)=>{this[e]=t}));const i=r.reduce(((t,e)=>("string"==typeof e&&t.set(e,(t.get(e)||0)+1),t)),new Map);if(It(this,Object.freeze(n.map(((t,e)=>{const n=r[e];return null!=n&&1===i.get(n)?n:null})))),this.#k=[],null==this.#k&&this.#k,!s)return;Object.freeze(this);const o=new Proxy(this,{get:(t,e,n)=>{if("string"==typeof e){if(e.match(/^[0-9]+$/)){const n=G(e,"%index");if(n<0||n>=this.length)throw new RangeError("out of result range");const r=t[n];return r instanceof Error&&Ct(`index ${n}`,r),r}if(St.indexOf(e)>=0)return Reflect.get(t,e,n);const r=t[e];if(r instanceof Function)return function(...e){return r.apply(this===n?t:this,e)};if(!(e in t))return t.getValue.apply(this===n?t:this,[e])}return Reflect.get(t,e,n)}});return It(o,Rt(this)),o}toArray(t){const e=[];return this.forEach(((n,r)=>{n instanceof Error&&Ct(`index ${r}`,n),t&&n instanceof Dt&&(n=n.toArray(t)),e.push(n)})),e}toObject(t){const e=Rt(this);return e.reduce(((n,r,s)=>(p(null!=r,`value at index ${s} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),Bt(e,this,t))),{})}slice(t,e){null==t&&(t=0),t<0&&(t+=this.length)<0&&(t=0),null==e&&(e=this.length),e<0&&(e+=this.length)<0&&(e=0),e>this.length&&(e=this.length);const n=Rt(this),r=[],s=[];for(let i=t;i<e;i++)r.push(this[i]),s.push(n[i]);return new Dt(Ot,r,s)}filter(t,e){const n=Rt(this),r=[],s=[];for(let i=0;i<this.length;i++){const o=this[i];o instanceof Error&&Ct(`index ${i}`,o),t.call(e,o,i,this)&&(r.push(o),s.push(n[i]))}return new Dt(Ot,r,s)}map(t,e){const n=[];for(let r=0;r<this.length;r++){const s=this[r];s instanceof Error&&Ct(`index ${r}`,s),n.push(t.call(e,s,r,this))}return n}getValue(t){const e=Rt(this).indexOf(t);if(-1===e)return;const n=this[e];return n instanceof Error&&Ct(`property ${JSON.stringify(t)}`,n.error),n}static fromItems(t,e){return new Dt(Ot,t,e)}}function Ut(t){let e=H(t);return p(e.length<=Nt,"value out-of-bounds","BUFFER_OVERRUN",{buffer:e,length:Nt,offset:e.length}),e.length!==Nt&&(e=v(x([xt.slice(e.length%Nt),e]))),e}class Lt{name;type;localName;dynamic;constructor(t,e,n,r){c(this,{name:t,type:e,localName:n,dynamic:r},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(t,e){d(!1,t,this.localName,e)}}class Ft{#T;#N;constructor(){this.#T=[],this.#N=0}get data(){return x(this.#T)}get length(){return this.#N}#x(t){return this.#T.push(t),this.#N+=t.length,t.length}appendWriter(t){return this.#x(v(t.data))}writeBytes(t){let e=v(t);const n=e.length%Nt;return n&&(e=v(x([e,xt.slice(n)]))),this.#x(e)}writeValue(t){return this.#x(Ut(t))}writeUpdatableValue(){const t=this.#T.length;return this.#T.push(xt),this.#N+=Nt,e=>{this.#T[t]=Ut(e)}}}class Mt{allowLoose;#T;#S;#O;#P;#R;constructor(t,e,n){c(this,{allowLoose:!!e}),this.#T=v(t),this.#O=0,this.#P=null,this.#R=null!=n?n:1024,this.#S=0}get data(){return N(this.#T)}get dataLength(){return this.#T.length}get consumed(){return this.#S}get bytes(){return new Uint8Array(this.#T)}#I(t){if(this.#P)return this.#P.#I(t);this.#O+=t,p(this.#R<1||this.#O<=this.#R*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#R} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:v(this.#T),offset:this.#S,length:t,info:{bytesRead:this.#O,dataLength:this.dataLength}})}#C(t,e,n){let r=Math.ceil(e/Nt)*Nt;return this.#S+r>this.#T.length&&(this.allowLoose&&n&&this.#S+e<=this.#T.length?r=e:p(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:v(this.#T),length:this.#T.length,offset:this.#S+r})),this.#T.slice(this.#S,this.#S+r)}subReader(t){const e=new Mt(this.#T.slice(this.#S+t),this.allowLoose,this.#R);return e.#P=this,e}readBytes(t,e){let n=this.#C(0,t,!!e);return this.#I(t),this.#S+=n.length,n.slice(0,t)}readValue(){return _(this.readBytes(Nt))}readIndex(){return G(_(this.readBytes(Nt)))}}var _t="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function Gt(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function jt(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function Ht(t){if("function"!=typeof t||"function"!=typeof t.create)throw new Error("Hash should be wrapped by utils.wrapConstructor");Gt(t.outputLen),Gt(t.blockLen)}function Kt(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Vt(t,e){jt(t);const n=e.outputLen;if(t.length<n)throw new Error(`digestInto() expects output buffer of length at least ${n}`)}const Qt="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,Jt=t=>t instanceof Uint8Array,zt=t=>new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4)),Yt=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),qt=(t,e)=>t<<32-e|t>>>e;
|
|
2
|
+
/*! 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");const $t=async()=>{};async function Wt(t,e,n){let r=Date.now();for(let s=0;s<t;s++){n(s);const t=Date.now()-r;t>=0&&t<e||(await $t(),r+=t)}}function Zt(t){if("string"==typeof t&&(t=function(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))}(t)),!Jt(t))throw new Error("expected Uint8Array, got "+typeof t);return t}class Xt{clone(){return this._cloneInto()}}const te={}.toString;function ee(t,e){if(void 0!==e&&"[object Object]"!==te.call(e))throw new Error("Options should be object or undefined");return Object.assign(t,e)}function ne(t){const e=e=>t().update(Zt(e)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function re(t=32){if(Qt&&"function"==typeof Qt.getRandomValues)return Qt.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}class se extends Xt{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,Ht(t);const n=Zt(e);if(this.iHash=t.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 r=this.blockLen,s=new Uint8Array(r);s.set(n.length>r?t.create().update(n).digest():n);for(let t=0;t<s.length;t++)s[t]^=54;this.iHash.update(s),this.oHash=t.create();for(let t=0;t<s.length;t++)s[t]^=106;this.oHash.update(s),s.fill(0)}update(t){return Kt(this),this.iHash.update(t),this}digestInto(t){Kt(this),jt(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));const{oHash:e,iHash:n,finished:r,destroyed:s,blockLen:i,outputLen:o}=this;return t.finished=r,t.destroyed=s,t.blockLen=i,t.outputLen=o,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ie=(t,e,n)=>new se(t,e).update(n).digest();function oe(t,e,n,r){Ht(t);const s=ee({dkLen:32,asyncTick:10},r),{c:i,dkLen:o,asyncTick:a}=s;if(Gt(i),Gt(o),Gt(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");const c=Zt(e),u=Zt(n),l=new Uint8Array(o),h=ie.create(t,c),f=h._cloneInto().update(u);return{c:i,dkLen:o,asyncTick:a,DK:l,PRF:h,PRFSalt:f}}function ae(t,e,n,r){const{c:s,dkLen:i,DK:o,PRF:a,PRFSalt:c}=oe(t,e,n,r);let u;const l=new Uint8Array(4),h=Yt(l),f=new Uint8Array(a.outputLen);for(let t=1,e=0;e<i;t++,e+=a.outputLen){const n=o.subarray(e,e+a.outputLen);h.setInt32(0,t,!1),(u=c._cloneInto(u)).update(l).digestInto(f),n.set(f.subarray(0,n.length));for(let t=1;t<s;t++){a._cloneInto(u).update(f).digestInto(f);for(let t=0;t<n.length;t++)n[t]^=f[t]}}return function(t,e,n,r,s){return t.destroy(),e.destroy(),r&&r.destroy(),s.fill(0),n}(a,c,o,u,f)}ie.create=(t,e)=>new se(t,e);class ce extends Xt{constructor(t,e,n,r){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=r,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Yt(this.buffer)}update(t){Kt(this);const{view:e,buffer:n,blockLen:r}=this,s=(t=Zt(t)).length;for(let i=0;i<s;){const o=Math.min(r-this.pos,s-i);if(o!==r)n.set(t.subarray(i,i+o),this.pos),this.pos+=o,i+=o,this.pos===r&&(this.process(e,0),this.pos=0);else{const e=Yt(t);for(;r<=s-i;i+=r)this.process(e,i)}}return this.length+=t.length,this.roundClean(),this}digestInto(t){Kt(this),Vt(t,this),this.finished=!0;const{buffer:e,view:n,blockLen:r,isLE:s}=this;let{pos:i}=this;e[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>r-i&&(this.process(n,0),i=0);for(let t=i;t<r;t++)e[t]=0;!function(t,e,n,r){if("function"==typeof t.setBigUint64)return t.setBigUint64(e,n,r);const s=BigInt(32),i=BigInt(4294967295),o=Number(n>>s&i),a=Number(n&i),c=r?4:0,u=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+u,a,r)}(n,r-8,BigInt(8*this.length),s),this.process(n,0);const o=Yt(t),a=this.outputLen;if(a%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const c=a/4,u=this.get();if(c>u.length)throw new Error("_sha2: outputLen bigger than state");for(let t=0;t<c;t++)o.setUint32(4*t,u[t],s)}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:e,buffer:n,length:r,finished:s,destroyed:i,pos:o}=this;return t.length=r,t.pos=o,t.finished=s,t.destroyed=i,r%e&&t.buffer.set(n),t}}const ue=(t,e,n)=>t&e^~t&n,le=(t,e,n)=>t&e^t&n^e&n,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]),fe=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),pe=new Uint32Array(64);class de extends ce{constructor(){super(64,32,8,!1),this.A=0|fe[0],this.B=0|fe[1],this.C=0|fe[2],this.D=0|fe[3],this.E=0|fe[4],this.F=0|fe[5],this.G=0|fe[6],this.H=0|fe[7]}get(){const{A:t,B:e,C:n,D:r,E:s,F:i,G:o,H:a}=this;return[t,e,n,r,s,i,o,a]}set(t,e,n,r,s,i,o,a){this.A=0|t,this.B=0|e,this.C=0|n,this.D=0|r,this.E=0|s,this.F=0|i,this.G=0|o,this.H=0|a}process(t,e){for(let n=0;n<16;n++,e+=4)pe[n]=t.getUint32(e,!1);for(let t=16;t<64;t++){const e=pe[t-15],n=pe[t-2],r=qt(e,7)^qt(e,18)^e>>>3,s=qt(n,17)^qt(n,19)^n>>>10;pe[t]=s+pe[t-7]+r+pe[t-16]|0}let{A:n,B:r,C:s,D:i,E:o,F:a,G:c,H:u}=this;for(let t=0;t<64;t++){const e=u+(qt(o,6)^qt(o,11)^qt(o,25))+ue(o,a,c)+he[t]+pe[t]|0,l=(qt(n,2)^qt(n,13)^qt(n,22))+le(n,r,s)|0;u=c,c=a,a=o,o=i+e|0,i=s,s=r,r=n,n=e+l|0}n=n+this.A|0,r=r+this.B|0,s=s+this.C|0,i=i+this.D|0,o=o+this.E|0,a=a+this.F|0,c=c+this.G|0,u=u+this.H|0,this.set(n,r,s,i,o,a,c,u)}roundClean(){pe.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const ge=ne((()=>new de)),ye=BigInt(2**32-1),me=BigInt(32);function we(t,e=!1){return e?{h:Number(t&ye),l:Number(t>>me&ye)}:{h:0|Number(t>>me&ye),l:0|Number(t&ye)}}function be(t,e=!1){let n=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let s=0;s<t.length;s++){const{h:i,l:o}=we(t[s],e);[n[s],r[s]]=[i,o]}return[n,r]}const Ae=(t,e,n)=>t<<n|e>>>32-n,ve=(t,e,n)=>e<<n|t>>>32-n,Ee=(t,e,n)=>e<<n-32|t>>>64-n,ke=(t,e,n)=>t<<n-32|e>>>64-n;var Te={fromBig:we,split:be,toBig:(t,e)=>BigInt(t>>>0)<<me|BigInt(e>>>0),shrSH:(t,e,n)=>t>>>n,shrSL:(t,e,n)=>t<<32-n|e>>>n,rotrSH:(t,e,n)=>t>>>n|e<<32-n,rotrSL:(t,e,n)=>t<<32-n|e>>>n,rotrBH:(t,e,n)=>t<<64-n|e>>>n-32,rotrBL:(t,e,n)=>t>>>n-32|e<<64-n,rotr32H:(t,e)=>e,rotr32L:(t,e)=>t,rotlSH:Ae,rotlSL:ve,rotlBH:Ee,rotlBL:ke,add:function(t,e,n,r){const s=(e>>>0)+(r>>>0);return{h:t+n+(s/2**32|0)|0,l:0|s}},add3L:(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),add3H:(t,e,n,r)=>e+n+r+(t/2**32|0)|0,add4L:(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),add4H:(t,e,n,r,s)=>e+n+r+s+(t/2**32|0)|0,add5H:(t,e,n,r,s,i)=>e+n+r+s+i+(t/2**32|0)|0,add5L:(t,e,n,r,s)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(s>>>0)};const[Ne,xe]=(()=>Te.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map((t=>BigInt(t)))))(),Se=new Uint32Array(80),Oe=new Uint32Array(80);class Pe extends ce{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:t,Al:e,Bh:n,Bl:r,Ch:s,Cl:i,Dh:o,Dl:a,Eh:c,El:u,Fh:l,Fl:h,Gh:f,Gl:p,Hh:d,Hl:g}=this;return[t,e,n,r,s,i,o,a,c,u,l,h,f,p,d,g]}set(t,e,n,r,s,i,o,a,c,u,l,h,f,p,d,g){this.Ah=0|t,this.Al=0|e,this.Bh=0|n,this.Bl=0|r,this.Ch=0|s,this.Cl=0|i,this.Dh=0|o,this.Dl=0|a,this.Eh=0|c,this.El=0|u,this.Fh=0|l,this.Fl=0|h,this.Gh=0|f,this.Gl=0|p,this.Hh=0|d,this.Hl=0|g}process(t,e){for(let n=0;n<16;n++,e+=4)Se[n]=t.getUint32(e),Oe[n]=t.getUint32(e+=4);for(let t=16;t<80;t++){const e=0|Se[t-15],n=0|Oe[t-15],r=Te.rotrSH(e,n,1)^Te.rotrSH(e,n,8)^Te.shrSH(e,n,7),s=Te.rotrSL(e,n,1)^Te.rotrSL(e,n,8)^Te.shrSL(e,n,7),i=0|Se[t-2],o=0|Oe[t-2],a=Te.rotrSH(i,o,19)^Te.rotrBH(i,o,61)^Te.shrSH(i,o,6),c=Te.rotrSL(i,o,19)^Te.rotrBL(i,o,61)^Te.shrSL(i,o,6),u=Te.add4L(s,c,Oe[t-7],Oe[t-16]),l=Te.add4H(u,r,a,Se[t-7],Se[t-16]);Se[t]=0|l,Oe[t]=0|u}let{Ah:n,Al:r,Bh:s,Bl:i,Ch:o,Cl:a,Dh:c,Dl:u,Eh:l,El:h,Fh:f,Fl:p,Gh:d,Gl:g,Hh:y,Hl:m}=this;for(let t=0;t<80;t++){const e=Te.rotrSH(l,h,14)^Te.rotrSH(l,h,18)^Te.rotrBH(l,h,41),w=Te.rotrSL(l,h,14)^Te.rotrSL(l,h,18)^Te.rotrBL(l,h,41),b=l&f^~l&d,A=h&p^~h&g,v=Te.add5L(m,w,A,xe[t],Oe[t]),E=Te.add5H(v,y,e,b,Ne[t],Se[t]),k=0|v,T=Te.rotrSH(n,r,28)^Te.rotrBH(n,r,34)^Te.rotrBH(n,r,39),N=Te.rotrSL(n,r,28)^Te.rotrBL(n,r,34)^Te.rotrBL(n,r,39),x=n&s^n&o^s&o,S=r&i^r&a^i&a;y=0|d,m=0|g,d=0|f,g=0|p,f=0|l,p=0|h,({h:l,l:h}=Te.add(0|c,0|u,0|E,0|k)),c=0|o,u=0|a,o=0|s,a=0|i,s=0|n,i=0|r;const O=Te.add3L(k,N,S);n=Te.add3H(O,E,T,x),r=0|O}({h:n,l:r}=Te.add(0|this.Ah,0|this.Al,0|n,0|r)),({h:s,l:i}=Te.add(0|this.Bh,0|this.Bl,0|s,0|i)),({h:o,l:a}=Te.add(0|this.Ch,0|this.Cl,0|o,0|a)),({h:c,l:u}=Te.add(0|this.Dh,0|this.Dl,0|c,0|u)),({h:l,l:h}=Te.add(0|this.Eh,0|this.El,0|l,0|h)),({h:f,l:p}=Te.add(0|this.Fh,0|this.Fl,0|f,0|p)),({h:d,l:g}=Te.add(0|this.Gh,0|this.Gl,0|d,0|g)),({h:y,l:m}=Te.add(0|this.Hh,0|this.Hl,0|y,0|m)),this.set(n,r,s,i,o,a,c,u,l,h,f,p,d,g,y,m)}roundClean(){Se.fill(0),Oe.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const Re=ne((()=>new Pe));const Ie=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==_t)return _t;throw new Error("unable to locate global object")}(),Ce=Ie.crypto||Ie.msCrypto;let Be=!1;const De=function(t,e,n){return function(t,e){const n={sha256:ge,sha512:Re}[t];return d(null!=n,"invalid hmac algorithm","algorithm",t),ie.create(n,e)}(t,e).update(n).digest()};let Ue=De;function Le(t,e,n){const r=A(e,"key"),s=A(n,"data");return N(Ue(t,r,s))}Le._=De,Le.lock=function(){Be=!0},Le.register=function(t){if(Be)throw new Error("computeHmac is locked");Ue=t},Object.freeze(Le);const[Fe,Me,_e]=[[],[],[]],Ge=BigInt(0),je=BigInt(1),He=BigInt(2),Ke=BigInt(7),Ve=BigInt(256),Qe=BigInt(113);for(let t=0,e=je,n=1,r=0;t<24;t++){[n,r]=[r,(2*n+3*r)%5],Fe.push(2*(5*r+n)),Me.push((t+1)*(t+2)/2%64);let s=Ge;for(let t=0;t<7;t++)e=(e<<je^(e>>Ke)*Qe)%Ve,e&He&&(s^=je<<(je<<BigInt(t))-je);_e.push(s)}const[Je,ze]=be(_e,!0),Ye=(t,e,n)=>n>32?Ee(t,e,n):Ae(t,e,n),qe=(t,e,n)=>n>32?ke(t,e,n):ve(t,e,n);class $e extends Xt{constructor(t,e,n,r=!1,s=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=n,this.enableXOF=r,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Gt(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=zt(this.state)}keccak(){!function(t,e=24){const n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let e=0;e<10;e++)n[e]=t[e]^t[e+10]^t[e+20]^t[e+30]^t[e+40];for(let e=0;e<10;e+=2){const r=(e+8)%10,s=(e+2)%10,i=n[s],o=n[s+1],a=Ye(i,o,1)^n[r],c=qe(i,o,1)^n[r+1];for(let n=0;n<50;n+=10)t[e+n]^=a,t[e+n+1]^=c}let e=t[2],s=t[3];for(let n=0;n<24;n++){const r=Me[n],i=Ye(e,s,r),o=qe(e,s,r),a=Fe[n];e=t[a],s=t[a+1],t[a]=i,t[a+1]=o}for(let e=0;e<50;e+=10){for(let r=0;r<10;r++)n[r]=t[e+r];for(let r=0;r<10;r++)t[e+r]^=~n[(r+2)%10]&n[(r+4)%10]}t[0]^=Je[r],t[1]^=ze[r]}n.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){Kt(this);const{blockLen:e,state:n}=this,r=(t=Zt(t)).length;for(let s=0;s<r;){const i=Math.min(e-this.pos,r-s);for(let e=0;e<i;e++)n[this.pos++]^=t[s++];this.pos===e&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:e,pos:n,blockLen:r}=this;t[n]^=e,128&e&&n===r-1&&this.keccak(),t[r-1]^=128,this.keccak()}writeInto(t){Kt(this,!1),jt(t),this.finish();const e=this.state,{blockLen:n}=this;for(let r=0,s=t.length;r<s;){this.posOut>=n&&this.keccak();const i=Math.min(n-this.posOut,s-r);t.set(e.subarray(this.posOut,this.posOut+i),r),this.posOut+=i,r+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Gt(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(Vt(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:e,suffix:n,outputLen:r,rounds:s,enableXOF:i}=this;return t||(t=new $e(e,n,r,i,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=n,t.outputLen=r,t.enableXOF=i,t.destroyed=this.destroyed,t}}const We=((t,e,n)=>ne((()=>new $e(e,t,n))))(1,136,32);let Ze=!1;const Xe=function(t){return We(t)};let tn=Xe;function en(t){const e=A(t,"data");return N(tn(e))}en._=Xe,en.lock=function(){Ze=!0},en.register=function(t){if(Ze)throw new TypeError("keccak256 is locked");tn=t},Object.freeze(en);const nn=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),rn=Uint8Array.from({length:16},((t,e)=>e));let sn=[rn],on=[rn.map((t=>(9*t+5)%16))];for(let t=0;t<4;t++)for(let e of[sn,on])e.push(e[t].map((t=>nn[t])));const an=[[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((t=>new Uint8Array(t))),cn=sn.map(((t,e)=>t.map((t=>an[e][t])))),un=on.map(((t,e)=>t.map((t=>an[e][t])))),ln=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),hn=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),fn=(t,e)=>t<<e|t>>>32-e;function pn(t,e,n,r){return 0===t?e^n^r:1===t?e&n|~e&r:2===t?(e|~n)^r:3===t?e&r|n&~r:e^(n|~r)}const dn=new Uint32Array(16);class gn extends ce{constructor(){super(64,20,8,!0),this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){const{h0:t,h1:e,h2:n,h3:r,h4:s}=this;return[t,e,n,r,s]}set(t,e,n,r,s){this.h0=0|t,this.h1=0|e,this.h2=0|n,this.h3=0|r,this.h4=0|s}process(t,e){for(let n=0;n<16;n++,e+=4)dn[n]=t.getUint32(e,!0);let n=0|this.h0,r=n,s=0|this.h1,i=s,o=0|this.h2,a=o,c=0|this.h3,u=c,l=0|this.h4,h=l;for(let t=0;t<5;t++){const e=4-t,f=ln[t],p=hn[t],d=sn[t],g=on[t],y=cn[t],m=un[t];for(let e=0;e<16;e++){const r=fn(n+pn(t,s,o,c)+dn[d[e]]+f,y[e])+l|0;n=l,l=c,c=0|fn(o,10),o=s,s=r}for(let t=0;t<16;t++){const n=fn(r+pn(e,i,a,u)+dn[g[t]]+p,m[t])+h|0;r=h,h=u,u=0|fn(a,10),a=i,i=n}}this.set(this.h1+o+u|0,this.h2+c+h|0,this.h3+l+r|0,this.h4+n+i|0,this.h0+s+a|0)}roundClean(){dn.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}const yn=ne((()=>new gn));let mn=!1;const wn=function(t){return yn(t)};let bn=wn;function An(t){const e=A(t,"data");return N(bn(e))}An._=wn,An.lock=function(){mn=!0},An.register=function(t){if(mn)throw new TypeError("ripemd160 is locked");bn=t},Object.freeze(An);let vn=!1;const En=function(t,e,n,r,s){return function(t,e,n,r,s){const i={sha256:ge,sha512:Re}[s];return d(null!=i,"invalid pbkdf2 algorithm","algorithm",s),ae(i,t,e,{c:n,dkLen:r})}(t,e,n,r,s)};let kn=En;function Tn(t,e,n,r,s){const i=A(t,"password"),o=A(e,"salt");return N(kn(i,o,n,r,s))}Tn._=En,Tn.lock=function(){vn=!0},Tn.register=function(t){if(vn)throw new Error("pbkdf2 is locked");kn=t},Object.freeze(Tn);let Nn=!1;const xn=function(t){return new Uint8Array(function(t){p(null!=Ce,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),d(Number.isInteger(t)&&t>0&&t<=1024,"invalid length","length",t);const e=new Uint8Array(t);return Ce.getRandomValues(e),e}(t))};let Sn=xn;function On(t){return Sn(t)}On._=xn,On.lock=function(){Nn=!0},On.register=function(t){if(Nn)throw new Error("randomBytes is locked");Sn=t},Object.freeze(On);const Pn=(t,e)=>t<<e|t>>>32-e;function Rn(t,e,n,r,s,i){let o=t[e++]^n[r++],a=t[e++]^n[r++],c=t[e++]^n[r++],u=t[e++]^n[r++],l=t[e++]^n[r++],h=t[e++]^n[r++],f=t[e++]^n[r++],p=t[e++]^n[r++],d=t[e++]^n[r++],g=t[e++]^n[r++],y=t[e++]^n[r++],m=t[e++]^n[r++],w=t[e++]^n[r++],b=t[e++]^n[r++],A=t[e++]^n[r++],v=t[e++]^n[r++],E=o,k=a,T=c,N=u,x=l,S=h,O=f,P=p,R=d,I=g,C=y,B=m,D=w,U=b,L=A,F=v;for(let t=0;t<8;t+=2)x^=Pn(E+D|0,7),R^=Pn(x+E|0,9),D^=Pn(R+x|0,13),E^=Pn(D+R|0,18),I^=Pn(S+k|0,7),U^=Pn(I+S|0,9),k^=Pn(U+I|0,13),S^=Pn(k+U|0,18),L^=Pn(C+O|0,7),T^=Pn(L+C|0,9),O^=Pn(T+L|0,13),C^=Pn(O+T|0,18),N^=Pn(F+B|0,7),P^=Pn(N+F|0,9),B^=Pn(P+N|0,13),F^=Pn(B+P|0,18),k^=Pn(E+N|0,7),T^=Pn(k+E|0,9),N^=Pn(T+k|0,13),E^=Pn(N+T|0,18),O^=Pn(S+x|0,7),P^=Pn(O+S|0,9),x^=Pn(P+O|0,13),S^=Pn(x+P|0,18),B^=Pn(C+I|0,7),R^=Pn(B+C|0,9),I^=Pn(R+B|0,13),C^=Pn(I+R|0,18),D^=Pn(F+L|0,7),U^=Pn(D+F|0,9),L^=Pn(U+D|0,13),F^=Pn(L+U|0,18);s[i++]=o+E|0,s[i++]=a+k|0,s[i++]=c+T|0,s[i++]=u+N|0,s[i++]=l+x|0,s[i++]=h+S|0,s[i++]=f+O|0,s[i++]=p+P|0,s[i++]=d+R|0,s[i++]=g+I|0,s[i++]=y+C|0,s[i++]=m+B|0,s[i++]=w+D|0,s[i++]=b+U|0,s[i++]=A+L|0,s[i++]=v+F|0}function In(t,e,n,r,s){let i=r+0,o=r+16*s;for(let r=0;r<16;r++)n[o+r]=t[e+16*(2*s-1)+r];for(let r=0;r<s;r++,i+=16,e+=16)Rn(n,o,t,e,n,i),r>0&&(o+=16),Rn(n,i,t,e+=16,n,o)}function Cn(t,e,n){const r=ee({dkLen:32,asyncTick:10,maxmem:1073742848},n),{N:s,r:i,p:o,dkLen:a,asyncTick:c,maxmem:u,onProgress:l}=r;if(Gt(s),Gt(i),Gt(o),Gt(a),Gt(c),Gt(u),void 0!==l&&"function"!=typeof l)throw new Error("progressCb should be function");const h=128*i,f=h/4;if(s<=1||s&s-1||s>=2**(h/8)||s>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(o<0||o>137438953440/h)throw new Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(a<0||a>137438953440)throw new Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");const p=h*(s+o);if(p>u)throw new Error(`Scrypt: parameters too large, ${p} (128 * r * (N + p)) > ${u} (maxmem)`);const d=ae(ge,t,e,{c:1,dkLen:h*o}),g=zt(d),y=zt(new Uint8Array(h*s)),m=zt(new Uint8Array(h));let w=()=>{};if(l){const t=2*s*o,e=Math.max(Math.floor(t/1e4),1);let n=0;w=()=>{n++,!l||n%e&&n!==t||l(n/t)}}return{N:s,r:i,p:o,dkLen:a,blockSize32:f,V:y,B32:g,B:d,tmp:m,blockMixCb:w,asyncTick:c}}function Bn(t,e,n,r,s){const i=ae(ge,t,n,{c:1,dkLen:e});return n.fill(0),r.fill(0),s.fill(0),i}let Dn=!1,Un=!1;const Ln=async function(t,e,n,r,s,i,o){return await async function(t,e,n){const{N:r,r:s,p:i,dkLen:o,blockSize32:a,V:c,B32:u,B:l,tmp:h,blockMixCb:f,asyncTick:p}=Cn(t,e,n);for(let t=0;t<i;t++){const e=a*t;for(let t=0;t<a;t++)c[t]=u[e+t];let n=0;await Wt(r-1,p,(()=>{In(c,n,c,n+=a,s),f()})),In(c,(r-1)*a,u,e,s),f(),await Wt(r,p,(()=>{const t=u[e+a-16]%r;for(let n=0;n<a;n++)h[n]=u[e+n]^c[t*a+n];In(h,0,u,e,s),f()}))}return Bn(t,o,l,c,h)}(t,e,{N:n,r:r,p:s,dkLen:i,onProgress:o})},Fn=function(t,e,n,r,s,i){return function(t,e,n){const{N:r,r:s,p:i,dkLen:o,blockSize32:a,V:c,B32:u,B:l,tmp:h,blockMixCb:f}=Cn(t,e,n);for(let t=0;t<i;t++){const e=a*t;for(let t=0;t<a;t++)c[t]=u[e+t];for(let t=0,e=0;t<r-1;t++)In(c,e,c,e+=a,s),f();In(c,(r-1)*a,u,e,s),f();for(let t=0;t<r;t++){const t=u[e+a-16]%r;for(let n=0;n<a;n++)h[n]=u[e+n]^c[t*a+n];In(h,0,u,e,s),f()}}return Bn(t,o,l,c,h)}(t,e,{N:n,r:r,p:s,dkLen:i})};let Mn=Ln,_n=Fn;async function Gn(t,e,n,r,s,i,o){const a=A(t,"passwd"),c=A(e,"salt");return N(await Mn(a,c,n,r,s,i,o))}function jn(t,e,n,r,s,i){const o=A(t,"passwd"),a=A(e,"salt");return N(_n(o,a,n,r,s,i))}Gn._=Ln,Gn.lock=function(){Un=!0},Gn.register=function(t){if(Un)throw new Error("scrypt is locked");Mn=t},Object.freeze(Gn),jn._=Fn,jn.lock=function(){Dn=!0},jn.register=function(t){if(Dn)throw new Error("scryptSync is locked");_n=t},Object.freeze(jn);const Hn=function(t){return function(t){switch(t){case"sha256":return ge.create();case"sha512":return Re.create()}d(!1,"invalid hashing algorithm name","algorithm",t)}("sha256").update(t).digest()};let Kn=Hn,Vn=!1;function Qn(t){const e=A(t,"data");return N(Kn(e))}Qn._=Hn,Qn.lock=function(){Vn=!0},Qn.register=function(t){if(Vn)throw new Error("sha256 is locked");Kn=t},Object.freeze(Qn),Object.freeze(Qn);
|
|
3
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
4
|
+
const Jn=BigInt(0),zn=BigInt(1),Yn=BigInt(2),qn=t=>t instanceof Uint8Array,$n=Array.from({length:256},((t,e)=>e.toString(16).padStart(2,"0")));function Wn(t){if(!qn(t))throw new Error("Uint8Array expected");let e="";for(let n=0;n<t.length;n++)e+=$n[t[n]];return e}function Zn(t){const e=t.toString(16);return 1&e.length?`0${e}`:e}function Xn(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);return BigInt(""===t?"0":`0x${t}`)}function tr(t){if("string"!=typeof t)throw new Error("hex string expected, got "+typeof t);const e=t.length;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);const n=new Uint8Array(e/2);for(let e=0;e<n.length;e++){const r=2*e,s=t.slice(r,r+2),i=Number.parseInt(s,16);if(Number.isNaN(i)||i<0)throw new Error("Invalid byte sequence");n[e]=i}return n}function er(t){return Xn(Wn(t))}function nr(t){if(!qn(t))throw new Error("Uint8Array expected");return Xn(Wn(Uint8Array.from(t).reverse()))}function rr(t,e){return tr(t.toString(16).padStart(2*e,"0"))}function sr(t,e){return rr(t,e).reverse()}function ir(t,e,n){let r;if("string"==typeof e)try{r=tr(e)}catch(n){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${n}`)}else{if(!qn(e))throw new Error(`${t} must be hex string or Uint8Array`);r=Uint8Array.from(e)}const s=r.length;if("number"==typeof n&&s!==n)throw new Error(`${t} expected ${n} bytes, got ${s}`);return r}function or(...t){const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));let n=0;return t.forEach((t=>{if(!qn(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length})),e}const ar=t=>(Yn<<BigInt(t-1))-zn,cr=t=>new Uint8Array(t),ur=t=>Uint8Array.from(t);function lr(t,e,n){if("number"!=typeof t||t<2)throw new Error("hashLen must be a number");if("number"!=typeof e||e<2)throw new Error("qByteLen must be a number");if("function"!=typeof n)throw new Error("hmacFn must be a function");let r=cr(t),s=cr(t),i=0;const o=()=>{r.fill(1),s.fill(0),i=0},a=(...t)=>n(s,r,...t),c=(t=cr())=>{s=a(ur([0]),t),r=a(),0!==t.length&&(s=a(ur([1]),t),r=a())},u=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let t=0;const n=[];for(;t<e;){r=a();const e=r.slice();n.push(e),t+=r.length}return or(...n)};return(t,e)=>{let n;for(o(),c(t);!(n=e(u()));)c();return o(),n}}const hr={bigint:t=>"bigint"==typeof t,function:t=>"function"==typeof t,boolean:t=>"boolean"==typeof t,string:t=>"string"==typeof t,stringOrUint8Array:t=>"string"==typeof t||t instanceof Uint8Array,isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>"function"==typeof t&&Number.isSafeInteger(t.outputLen)};function fr(t,e,n={}){const r=(e,n,r)=>{const s=hr[n];if("function"!=typeof s)throw new Error(`Invalid validator "${n}", expected function`);const i=t[e];if(!(r&&void 0===i||s(i,t)))throw new Error(`Invalid param ${String(e)}=${i} (${typeof i}), expected ${n}`)};for(const[t,n]of Object.entries(e))r(t,n,!1);for(const[t,e]of Object.entries(n))r(t,e,!0);return t}var pr=Object.freeze({__proto__:null,bitGet:function(t,e){return t>>BigInt(e)&zn},bitLen:function(t){let e;for(e=0;t>Jn;t>>=zn,e+=1);return e},bitMask:ar,bitSet:(t,e,n)=>t|(n?zn:Jn)<<BigInt(e),bytesToHex:Wn,bytesToNumberBE:er,bytesToNumberLE:nr,concatBytes:or,createHmacDrbg:lr,ensureBytes:ir,equalBytes:function(t,e){if(t.length!==e.length)return!1;for(let n=0;n<t.length;n++)if(t[n]!==e[n])return!1;return!0},hexToBytes:tr,hexToNumber:Xn,numberToBytesBE:rr,numberToBytesLE:sr,numberToHexUnpadded:Zn,numberToVarBytesBE:function(t){return tr(Zn(t))},utf8ToBytes:function(t){if("string"!=typeof t)throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array((new TextEncoder).encode(t))},validateObject:fr});
|
|
5
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const dr=BigInt(0),gr=BigInt(1),yr=BigInt(2),mr=BigInt(3),wr=BigInt(4),br=BigInt(5),Ar=BigInt(8);function vr(t,e){const n=t%e;return n>=dr?n:e+n}function Er(t,e,n){if(n<=dr||e<dr)throw new Error("Expected power/modulo > 0");if(n===gr)return dr;let r=gr;for(;e>dr;)e&gr&&(r=r*t%n),t=t*t%n,e>>=gr;return r}function kr(t,e,n){let r=t;for(;e-- >dr;)r*=r,r%=n;return r}function Tr(t,e){if(t===dr||e<=dr)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let n=vr(t,e),r=e,s=dr,i=gr;for(;n!==dr;){const t=r%n,e=s-i*(r/n);r=n,n=t,s=i,i=e}if(r!==gr)throw new Error("invert: does not exist");return vr(s,e)}function Nr(t){if(t%wr===mr){const e=(t+gr)/wr;return function(t,n){const r=t.pow(n,e);if(!t.eql(t.sqr(r),n))throw new Error("Cannot find square root");return r}}if(t%Ar===br){const e=(t-br)/Ar;return function(t,n){const r=t.mul(n,yr),s=t.pow(r,e),i=t.mul(n,s),o=t.mul(t.mul(i,yr),s),a=t.mul(i,t.sub(o,t.ONE));if(!t.eql(t.sqr(a),n))throw new Error("Cannot find square root");return a}}return function(t){const e=(t-gr)/yr;let n,r,s;for(n=t-gr,r=0;n%yr===dr;n/=yr,r++);for(s=yr;s<t&&Er(s,e,t)!==t-gr;s++);if(1===r){const e=(t+gr)/wr;return function(t,n){const r=t.pow(n,e);if(!t.eql(t.sqr(r),n))throw new Error("Cannot find square root");return r}}const i=(n+gr)/yr;return function(t,o){if(t.pow(o,e)===t.neg(t.ONE))throw new Error("Cannot find square root");let a=r,c=t.pow(t.mul(t.ONE,s),n),u=t.pow(o,i),l=t.pow(o,n);for(;!t.eql(l,t.ONE);){if(t.eql(l,t.ZERO))return t.ZERO;let e=1;for(let n=t.sqr(l);e<a&&!t.eql(n,t.ONE);e++)n=t.sqr(n);const n=t.pow(c,gr<<BigInt(a-e-1));c=t.sqr(n),u=t.mul(u,n),l=t.mul(l,c),a=e}return u}}(t)}BigInt(9),BigInt(16);const xr=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Sr(t,e){const n=void 0!==e?e:t.toString(2).length;return{nBitLength:n,nByteLength:Math.ceil(n/8)}}function Or(t){if("bigint"!=typeof t)throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function Pr(t){const e=Or(t);return e+Math.ceil(e/2)}
|
|
6
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
7
|
+
const Rr=BigInt(0),Ir=BigInt(1);function Cr(t){return function(t){const e=xr.reduce(((t,e)=>(t[e]="function",t)),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"});fr(t,e)}(t.Fp),fr(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Sr(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}
|
|
8
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const{bytesToNumberBE:Br,hexToBytes:Dr}=pr,Ur={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(t){const{Err:e}=Ur;if(t.length<2||2!==t[0])throw new e("Invalid signature integer tag");const n=t[1],r=t.subarray(2,n+2);if(!n||r.length!==n)throw new e("Invalid signature integer: wrong length");if(128&r[0])throw new e("Invalid signature integer: negative");if(0===r[0]&&!(128&r[1]))throw new e("Invalid signature integer: unnecessary leading zero");return{d:Br(r),l:t.subarray(n+2)}},toSig(t){const{Err:e}=Ur,n="string"==typeof t?Dr(t):t;if(!(n instanceof Uint8Array))throw new Error("ui8a expected");let r=n.length;if(r<2||48!=n[0])throw new e("Invalid signature tag");if(n[1]!==r-2)throw new e("Invalid signature: incorrect length");const{d:s,l:i}=Ur._parseInt(n.subarray(2)),{d:o,l:a}=Ur._parseInt(i);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:s,s:o}},hexFromSig(t){const e=t=>8&Number.parseInt(t[0],16)?"00"+t:t,n=t=>{const e=t.toString(16);return 1&e.length?`0${e}`:e},r=e(n(t.s)),s=e(n(t.r)),i=r.length/2,o=s.length/2,a=n(i),c=n(o);return`30${n(o+i+4)}02${c}${s}02${a}${r}`}},Lr=BigInt(0),Fr=BigInt(1);BigInt(2);const Mr=BigInt(3);function _r(t){const e=function(t){const e=Cr(t);fr(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:n,Fp:r,a:s}=e;if(n){if(!r.eql(s,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof n||"bigint"!=typeof n.beta||"function"!=typeof n.splitScalar)throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}(t),{Fp:n}=e,r=e.toBytes||((t,e,r)=>{const s=e.toAffine();return or(Uint8Array.from([4]),n.toBytes(s.x),n.toBytes(s.y))}),s=e.fromBytes||(t=>{const e=t.subarray(1);return{x:n.fromBytes(e.subarray(0,n.BYTES)),y:n.fromBytes(e.subarray(n.BYTES,2*n.BYTES))}});function i(t){const{a:r,b:s}=e,i=n.sqr(t),o=n.mul(i,t);return n.add(n.add(o,n.mul(t,r)),s)}if(!n.eql(n.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function o(t){return"bigint"==typeof t&&Lr<t&&t<e.n}function a(t){if(!o(t))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(t){const{allowedPrivateKeyLengths:n,nByteLength:r,wrapPrivateKey:s,n:i}=e;if(n&&"bigint"!=typeof t){if(t instanceof Uint8Array&&(t=Wn(t)),"string"!=typeof t||!n.includes(t.length))throw new Error("Invalid key");t=t.padStart(2*r,"0")}let o;try{o="bigint"==typeof t?t:er(ir("private key",t,r))}catch(e){throw new Error(`private key must be ${r} bytes, hex or bigint, not ${typeof t}`)}return s&&(o=vr(o,i)),a(o),o}const u=new Map;function l(t){if(!(t instanceof h))throw new Error("ProjectivePoint expected")}class h{constructor(t,e,r){if(this.px=t,this.py=e,this.pz=r,null==t||!n.isValid(t))throw new Error("x required");if(null==e||!n.isValid(e))throw new Error("y required");if(null==r||!n.isValid(r))throw new Error("z required")}static fromAffine(t){const{x:e,y:r}=t||{};if(!t||!n.isValid(e)||!n.isValid(r))throw new Error("invalid affine point");if(t instanceof h)throw new Error("projective point not allowed");const s=t=>n.eql(t,n.ZERO);return s(e)&&s(r)?h.ZERO:new h(e,r,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(t){const e=n.invertBatch(t.map((t=>t.pz)));return t.map(((t,n)=>t.toAffine(e[n]))).map(h.fromAffine)}static fromHex(t){const e=h.fromAffine(s(ir("pointHex",t)));return e.assertValidity(),e}static fromPrivateKey(t){return h.BASE.multiply(c(t))}_setWindowSize(t){this._WINDOW_SIZE=t,u.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!n.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:t,y:r}=this.toAffine();if(!n.isValid(t)||!n.isValid(r))throw new Error("bad point: x or y not FE");const s=n.sqr(r),o=i(t);if(!n.eql(s,o))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:t}=this.toAffine();if(n.isOdd)return!n.isOdd(t);throw new Error("Field doesn't support isOdd")}equals(t){l(t);const{px:e,py:r,pz:s}=this,{px:i,py:o,pz:a}=t,c=n.eql(n.mul(e,a),n.mul(i,s)),u=n.eql(n.mul(r,a),n.mul(o,s));return c&&u}negate(){return new h(this.px,n.neg(this.py),this.pz)}double(){const{a:t,b:r}=e,s=n.mul(r,Mr),{px:i,py:o,pz:a}=this;let c=n.ZERO,u=n.ZERO,l=n.ZERO,f=n.mul(i,i),p=n.mul(o,o),d=n.mul(a,a),g=n.mul(i,o);return g=n.add(g,g),l=n.mul(i,a),l=n.add(l,l),c=n.mul(t,l),u=n.mul(s,d),u=n.add(c,u),c=n.sub(p,u),u=n.add(p,u),u=n.mul(c,u),c=n.mul(g,c),l=n.mul(s,l),d=n.mul(t,d),g=n.sub(f,d),g=n.mul(t,g),g=n.add(g,l),l=n.add(f,f),f=n.add(l,f),f=n.add(f,d),f=n.mul(f,g),u=n.add(u,f),d=n.mul(o,a),d=n.add(d,d),f=n.mul(d,g),c=n.sub(c,f),l=n.mul(d,p),l=n.add(l,l),l=n.add(l,l),new h(c,u,l)}add(t){l(t);const{px:r,py:s,pz:i}=this,{px:o,py:a,pz:c}=t;let u=n.ZERO,f=n.ZERO,p=n.ZERO;const d=e.a,g=n.mul(e.b,Mr);let y=n.mul(r,o),m=n.mul(s,a),w=n.mul(i,c),b=n.add(r,s),A=n.add(o,a);b=n.mul(b,A),A=n.add(y,m),b=n.sub(b,A),A=n.add(r,i);let v=n.add(o,c);return A=n.mul(A,v),v=n.add(y,w),A=n.sub(A,v),v=n.add(s,i),u=n.add(a,c),v=n.mul(v,u),u=n.add(m,w),v=n.sub(v,u),p=n.mul(d,A),u=n.mul(g,w),p=n.add(u,p),u=n.sub(m,p),p=n.add(m,p),f=n.mul(u,p),m=n.add(y,y),m=n.add(m,y),w=n.mul(d,w),A=n.mul(g,A),m=n.add(m,w),w=n.sub(y,w),w=n.mul(d,w),A=n.add(A,w),y=n.mul(m,A),f=n.add(f,y),y=n.mul(v,A),u=n.mul(b,u),u=n.sub(u,y),y=n.mul(b,m),p=n.mul(v,p),p=n.add(p,y),new h(u,f,p)}subtract(t){return this.add(t.negate())}is0(){return this.equals(h.ZERO)}wNAF(t){return p.wNAFCached(this,u,t,(t=>{const e=n.invertBatch(t.map((t=>t.pz)));return t.map(((t,n)=>t.toAffine(e[n]))).map(h.fromAffine)}))}multiplyUnsafe(t){const r=h.ZERO;if(t===Lr)return r;if(a(t),t===Fr)return this;const{endo:s}=e;if(!s)return p.unsafeLadder(this,t);let{k1neg:i,k1:o,k2neg:c,k2:u}=s.splitScalar(t),l=r,f=r,d=this;for(;o>Lr||u>Lr;)o&Fr&&(l=l.add(d)),u&Fr&&(f=f.add(d)),d=d.double(),o>>=Fr,u>>=Fr;return i&&(l=l.negate()),c&&(f=f.negate()),f=new h(n.mul(f.px,s.beta),f.py,f.pz),l.add(f)}multiply(t){a(t);let r,s,i=t;const{endo:o}=e;if(o){const{k1neg:t,k1:e,k2neg:a,k2:c}=o.splitScalar(i);let{p:u,f:l}=this.wNAF(e),{p:f,f:d}=this.wNAF(c);u=p.constTimeNegate(t,u),f=p.constTimeNegate(a,f),f=new h(n.mul(f.px,o.beta),f.py,f.pz),r=u.add(f),s=l.add(d)}else{const{p:t,f:e}=this.wNAF(i);r=t,s=e}return h.normalizeZ([r,s])[0]}multiplyAndAddUnsafe(t,e,n){const r=h.BASE,s=(t,e)=>e!==Lr&&e!==Fr&&t.equals(r)?t.multiply(e):t.multiplyUnsafe(e),i=s(this,e).add(s(t,n));return i.is0()?void 0:i}toAffine(t){const{px:e,py:r,pz:s}=this,i=this.is0();null==t&&(t=i?n.ONE:n.inv(s));const o=n.mul(e,t),a=n.mul(r,t),c=n.mul(s,t);if(i)return{x:n.ZERO,y:n.ZERO};if(!n.eql(c,n.ONE))throw new Error("invZ was invalid");return{x:o,y:a}}isTorsionFree(){const{h:t,isTorsionFree:n}=e;if(t===Fr)return!0;if(n)return n(h,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:t,clearCofactor:n}=e;return t===Fr?this:n?n(h,this):this.multiplyUnsafe(e.h)}toRawBytes(t=!0){return this.assertValidity(),r(h,this,t)}toHex(t=!0){return Wn(this.toRawBytes(t))}}h.BASE=new h(e.Gx,e.Gy,n.ONE),h.ZERO=new h(n.ZERO,n.ONE,n.ZERO);const f=e.nBitLength,p=function(t,e){const n=(t,e)=>{const n=e.negate();return t?n:e},r=t=>({windows:Math.ceil(e/t)+1,windowSize:2**(t-1)});return{constTimeNegate:n,unsafeLadder(e,n){let r=t.ZERO,s=e;for(;n>Rr;)n&Ir&&(r=r.add(s)),s=s.double(),n>>=Ir;return r},precomputeWindow(t,e){const{windows:n,windowSize:s}=r(e),i=[];let o=t,a=o;for(let t=0;t<n;t++){a=o,i.push(a);for(let t=1;t<s;t++)a=a.add(o),i.push(a);o=a.double()}return i},wNAF(e,s,i){const{windows:o,windowSize:a}=r(e);let c=t.ZERO,u=t.BASE;const l=BigInt(2**e-1),h=2**e,f=BigInt(e);for(let t=0;t<o;t++){const e=t*a;let r=Number(i&l);i>>=f,r>a&&(r-=h,i+=Ir);const o=e,p=e+Math.abs(r)-1,d=t%2!=0,g=r<0;0===r?u=u.add(n(d,s[o])):c=c.add(n(g,s[p]))}return{p:c,f:u}},wNAFCached(t,e,n,r){const s=t._WINDOW_SIZE||1;let i=e.get(t);return i||(i=this.precomputeWindow(t,s),1!==s&&e.set(t,r(i))),this.wNAF(s,i,n)}}}(h,e.endo?Math.ceil(f/2):f);return{CURVE:e,ProjectivePoint:h,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:o}}function Gr(t){const e=function(t){const e=Cr(t);return fr(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}(t),{Fp:n,n:r}=e,s=n.BYTES+1,i=2*n.BYTES+1;function o(t){return vr(t,r)}function a(t){return Tr(t,r)}const{ProjectivePoint:c,normPrivateKeyToScalar:u,weierstrassEquation:l,isWithinCurveOrder:h}=_r({...e,toBytes(t,e,r){const s=e.toAffine(),i=n.toBytes(s.x),o=or;return r?o(Uint8Array.from([e.hasEvenY()?2:3]),i):o(Uint8Array.from([4]),i,n.toBytes(s.y))},fromBytes(t){const e=t.length,r=t[0],o=t.subarray(1);if(e!==s||2!==r&&3!==r){if(e===i&&4===r){return{x:n.fromBytes(o.subarray(0,n.BYTES)),y:n.fromBytes(o.subarray(n.BYTES,2*n.BYTES))}}throw new Error(`Point of length ${e} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}{const t=er(o);if(!(Lr<(a=t)&&a<n.ORDER))throw new Error("Point is not on curve");const e=l(t);let s=n.sqrt(e);return!(1&~r)!==((s&Fr)===Fr)&&(s=n.neg(s)),{x:t,y:s}}var a}}),f=t=>Wn(rr(t,e.nByteLength));function p(t){return t>r>>Fr}const d=(t,e,n)=>er(t.slice(e,n));class g{constructor(t,e,n){this.r=t,this.s=e,this.recovery=n,this.assertValidity()}static fromCompact(t){const n=e.nByteLength;return t=ir("compactSignature",t,2*n),new g(d(t,0,n),d(t,n,2*n))}static fromDER(t){const{r:e,s:n}=Ur.toSig(ir("DER",t));return new g(e,n)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(t){return new g(this.r,this.s,t)}recoverPublicKey(t){const{r:r,s:s,recovery:i}=this,u=b(ir("msgHash",t));if(null==i||![0,1,2,3].includes(i))throw new Error("recovery id invalid");const l=2===i||3===i?r+e.n:r;if(l>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const h=1&i?"03":"02",p=c.fromHex(h+f(l)),d=a(l),g=o(-u*d),y=o(s*d),m=c.BASE.multiplyAndAddUnsafe(p,g,y);if(!m)throw new Error("point at infinify");return m.assertValidity(),m}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return tr(this.toDERHex())}toDERHex(){return Ur.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return tr(this.toCompactHex())}toCompactHex(){return f(this.r)+f(this.s)}}const y={isValidPrivateKey(t){try{return u(t),!0}catch(t){return!1}},normPrivateKeyToScalar:u,randomPrivateKey:()=>{const t=Pr(e.n);return function(t,e,n=!1){const r=t.length,s=Or(e),i=Pr(e);if(r<16||r<i||r>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${r}`);const o=vr(n?er(t):nr(t),e-gr)+gr;return n?sr(o,s):rr(o,s)}(e.randomBytes(t),e.n)},precompute:(t=8,e=c.BASE)=>(e._setWindowSize(t),e.multiply(BigInt(3)),e)};function m(t){const e=t instanceof Uint8Array,n="string"==typeof t,r=(e||n)&&t.length;return e?r===s||r===i:n?r===2*s||r===2*i:t instanceof c}const w=e.bits2int||function(t){const n=er(t),r=8*t.length-e.nBitLength;return r>0?n>>BigInt(r):n},b=e.bits2int_modN||function(t){return o(w(t))},A=ar(e.nBitLength);function v(t){if("bigint"!=typeof t)throw new Error("bigint expected");if(!(Lr<=t&&t<A))throw new Error(`bigint expected < 2^${e.nBitLength}`);return rr(t,e.nByteLength)}function E(t,r,s=k){if(["recovered","canonical"].some((t=>t in s)))throw new Error("sign() legacy options not supported");const{hash:i,randomBytes:l}=e;let{lowS:f,prehash:d,extraEntropy:y}=s;null==f&&(f=!0),t=ir("msgHash",t),d&&(t=ir("prehashed msgHash",i(t)));const m=b(t),A=u(r),E=[v(A),v(m)];if(null!=y){const t=!0===y?l(n.BYTES):y;E.push(ir("extraEntropy",t))}const T=or(...E),N=m;return{seed:T,k2sig:function(t){const e=w(t);if(!h(e))return;const n=a(e),r=c.BASE.multiply(e).toAffine(),s=o(r.x);if(s===Lr)return;const i=o(n*o(N+s*A));if(i===Lr)return;let u=(r.x===s?0:2)|Number(r.y&Fr),l=i;return f&&p(i)&&(l=function(t){return p(t)?o(-t):t}(i),u^=1),new g(s,l,u)}}}const k={lowS:e.lowS,prehash:!1},T={lowS:e.lowS,prehash:!1};return c.BASE._setWindowSize(8),{CURVE:e,getPublicKey:function(t,e=!0){return c.fromPrivateKey(t).toRawBytes(e)},getSharedSecret:function(t,e,n=!0){if(m(t))throw new Error("first arg must be private key");if(!m(e))throw new Error("second arg must be public key");return c.fromHex(e).multiply(u(t)).toRawBytes(n)},sign:function(t,n,r=k){const{seed:s,k2sig:i}=E(t,n,r),o=e;return lr(o.hash.outputLen,o.nByteLength,o.hmac)(s,i)},verify:function(t,n,r,s=T){const i=t;if(n=ir("msgHash",n),r=ir("publicKey",r),"strict"in s)throw new Error("options.strict was renamed to lowS");const{lowS:u,prehash:l}=s;let h,f;try{if("string"==typeof i||i instanceof Uint8Array)try{h=g.fromDER(i)}catch(t){if(!(t instanceof Ur.Err))throw t;h=g.fromCompact(i)}else{if("object"!=typeof i||"bigint"!=typeof i.r||"bigint"!=typeof i.s)throw new Error("PARSE");{const{r:t,s:e}=i;h=new g(t,e)}}f=c.fromHex(r)}catch(t){if("PARSE"===t.message)throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(u&&h.hasHighS())return!1;l&&(n=e.hash(n));const{r:p,s:d}=h,y=b(n),m=a(d),w=o(y*m),A=o(p*m),v=c.BASE.multiplyAndAddUnsafe(f,w,A)?.toAffine();return!!v&&o(v.x)===p},ProjectivePoint:c,Signature:g,utils:y}}
|
|
9
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function jr(t){return{hash:t,hmac:(e,...n)=>ie(t,e,function(...t){const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));let n=0;return t.forEach((t=>{if(!Jt(t))throw new Error("Uint8Array expected");e.set(t,n),n+=t.length})),e}(...n)),randomBytes:re}}BigInt(4);
|
|
10
|
+
/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
|
|
11
|
+
const Hr=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Kr=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Vr=BigInt(1),Qr=BigInt(2),Jr=(t,e)=>(t+e/Qr)/e;const zr=function(t,e,n=!1,r={}){if(t<=dr)throw new Error(`Expected Field ORDER > 0, got ${t}`);const{nBitLength:s,nByteLength:i}=Sr(t,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=Nr(t),a=Object.freeze({ORDER:t,BITS:s,BYTES:i,MASK:ar(s),ZERO:dr,ONE:gr,create:e=>vr(e,t),isValid:e=>{if("bigint"!=typeof e)throw new Error("Invalid field element: expected bigint, got "+typeof e);return dr<=e&&e<t},is0:t=>t===dr,isOdd:t=>(t&gr)===gr,neg:e=>vr(-e,t),eql:(t,e)=>t===e,sqr:e=>vr(e*e,t),add:(e,n)=>vr(e+n,t),sub:(e,n)=>vr(e-n,t),mul:(e,n)=>vr(e*n,t),pow:(t,e)=>function(t,e,n){if(n<dr)throw new Error("Expected power > 0");if(n===dr)return t.ONE;if(n===gr)return e;let r=t.ONE,s=e;for(;n>dr;)n&gr&&(r=t.mul(r,s)),s=t.sqr(s),n>>=gr;return r}(a,t,e),div:(e,n)=>vr(e*Tr(n,t),t),sqrN:t=>t*t,addN:(t,e)=>t+e,subN:(t,e)=>t-e,mulN:(t,e)=>t*e,inv:e=>Tr(e,t),sqrt:r.sqrt||(t=>o(a,t)),invertBatch:t=>function(t,e){const n=new Array(e.length),r=e.reduce(((e,r,s)=>t.is0(r)?e:(n[s]=e,t.mul(e,r))),t.ONE),s=t.inv(r);return e.reduceRight(((e,r,s)=>t.is0(r)?e:(n[s]=t.mul(e,n[s]),t.mul(e,r))),s),n}(a,t),cmov:(t,e,n)=>n?e:t,toBytes:t=>n?sr(t,i):rr(t,i),fromBytes:t=>{if(t.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${t.length}`);return n?nr(t):er(t)}});return Object.freeze(a)}(Hr,void 0,void 0,{sqrt:function(t){const e=Hr,n=BigInt(3),r=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,l=u*u*t%e,h=kr(l,n,e)*l%e,f=kr(h,n,e)*l%e,p=kr(f,Qr,e)*u%e,d=kr(p,s,e)*p%e,g=kr(d,i,e)*d%e,y=kr(g,a,e)*g%e,m=kr(y,c,e)*y%e,w=kr(m,a,e)*g%e,b=kr(w,n,e)*l%e,A=kr(b,o,e)*d%e,v=kr(A,r,e)*u%e,E=kr(v,Qr,e);if(!zr.eql(zr.sqr(E),t))throw new Error("Cannot find square root");return E}}),Yr=function(t,e){const n=e=>Gr({...t,...jr(e)});return Object.freeze({...n(e),create:n})}({a:BigInt(0),b:BigInt(7),Fp:zr,n:Kr,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=Kr,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-Vr*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,o=BigInt("0x100000000000000000000000000000000"),a=Jr(i*t,e),c=Jr(-r*t,e);let u=vr(t-a*n-c*s,e),l=vr(-a*r-c*i,e);const h=u>o,f=l>o;if(h&&(u=e-u),f&&(l=e-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:h,k1:u,k2neg:f,k2:l}}}},ge);BigInt(0),Yr.ProjectivePoint;const qr="0x0000000000000000000000000000000000000000",$r="0x0000000000000000000000000000000000000000000000000000000000000000",Wr=BigInt(0),Zr=BigInt(1),Xr=BigInt(2),ts=BigInt(27),es=BigInt(28),ns=BigInt(35),rs={};function ss(t){return R(H(t),32)}class is{#B;#D;#U;#L;get r(){return this.#B}set r(t){d(32===S(t),"invalid r","value",t),this.#B=N(t)}get s(){return this.#D}set s(t){d(32===S(t),"invalid s","value",t);const e=N(t);d(parseInt(e.substring(0,3))<8,"non-canonical s","value",e),this.#D=e}get v(){return this.#U}set v(t){const e=G(t,"value");d(27===e||28===e,"invalid v","v",t),this.#U=e}get networkV(){return this.#L}get legacyChainId(){const t=this.networkV;return null==t?null:is.getChainId(t)}get yParity(){return 27===this.v?0:1}get yParityAndS(){const t=A(this.s);return this.yParity&&(t[0]|=128),N(t)}get compactSerialized(){return x([this.r,this.yParityAndS])}get serialized(){return x([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(t,e,n,r){w(t,rs,"Signature"),this.#B=e,this.#D=n,this.#U=r,this.#L=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const t=new is(rs,this.r,this.s,this.v);return this.networkV&&(t.#L=this.networkV),t}toJSON(){const t=this.networkV;return{_type:"signature",networkV:null!=t?t.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(t){const e=L(t,"v");return e==ts||e==es?Wr:(d(e>=ns,"invalid EIP-155 v","v",t),(e-ns)/Xr)}static getChainIdV(t,e){return L(t)*Xr+BigInt(35+e-27)}static getNormalizedV(t){const e=L(t);return e===Wr||e===ts?27:e===Zr||e===es?28:(d(e>=ns,"invalid v","v",t),e&Zr?27:28)}static from(t){function e(e,n){d(e,n,"signature",t)}if(null==t)return new is(rs,$r,$r,27);if("string"==typeof t){const n=A(t,"signature");if(64===n.length){const t=N(n.slice(0,32)),e=n.slice(32,64),r=128&e[0]?28:27;return e[0]&=127,new is(rs,t,N(e),r)}if(65===n.length){const t=N(n.slice(0,32)),r=n.slice(32,64);e(!(128&r[0]),"non-canonical s");const s=is.getNormalizedV(n[64]);return new is(rs,t,N(r),s)}e(!1,"invalid raw signature length")}if(t instanceof is)return t.clone();const n=t.r;e(null!=n,"missing r");const r=ss(n),s=function(t,n){if(null!=t)return ss(t);if(null!=n){e(E(n,32),"invalid yParityAndS");const t=A(n);return t[0]&=127,N(t)}e(!1,"missing s")}(t.s,t.yParityAndS);e(!(128&A(s)[0]),"non-canonical s");const{networkV:i,v:o}=function(t,n,r){if(null!=t){const e=L(t);return{networkV:e>=ns?e:void 0,v:is.getNormalizedV(e)}}if(null!=n)return e(E(n,32),"invalid yParityAndS"),{v:128&A(n)[0]?28:27};if(null!=r){switch(G(r,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}e(!1,"invalid yParity")}e(!1,"missing v")}(t.v,t.yParityAndS,t.yParity),a=new is(rs,r,s,o);return i&&(a.#L=i),e(null==t.yParity||G(t.yParity,"sig.yParity")===a.yParity,"yParity mismatch"),e(null==t.yParityAndS||t.yParityAndS===a.yParityAndS,"yParityAndS mismatch"),a}}class os{#F;constructor(t){d(32===S(t),"invalid private key","privateKey","[REDACTED]"),this.#F=N(t)}get privateKey(){return this.#F}get publicKey(){return os.computePublicKey(this.#F)}get compressedPublicKey(){return os.computePublicKey(this.#F,!0)}sign(t){d(32===S(t),"invalid digest length","digest",t);const e=Yr.sign(v(t),v(this.#F),{lowS:!0});return is.from({r:j(e.r,32),s:j(e.s,32),v:e.recovery?28:27})}computeSharedSecret(t){const e=os.computePublicKey(t);return N(Yr.getSharedSecret(v(this.#F),A(e),!1))}static computePublicKey(t,e){let n=A(t,"key");if(32===n.length){return N(Yr.getPublicKey(n,!!e))}if(64===n.length){const t=new Uint8Array(65);t[0]=4,t.set(n,1),n=t}return N(Yr.ProjectivePoint.fromHex(n).toRawBytes(e))}static recoverPublicKey(t,e){d(32===S(t),"invalid digest length","digest",t);const n=is.from(e);let r=Yr.Signature.fromCompact(v(x([n.r,n.s])));r=r.addRecoveryBit(n.yParity);const s=r.recoverPublicKey(v(t));return d(null!=s,"invalid signautre for digest","signature",e),"0x"+s.toHex(!1)}static addPoints(t,e,n){const r=Yr.ProjectivePoint.fromHex(os.computePublicKey(t).substring(2)),s=Yr.ProjectivePoint.fromHex(os.computePublicKey(e).substring(2));return"0x"+r.add(s).toHex(!!n)}}const as=BigInt(0),cs=BigInt(36);function us(t){const e=(t=t.toLowerCase()).substring(2).split(""),n=new Uint8Array(40);for(let t=0;t<40;t++)n[t]=e[t].charCodeAt(0);const r=A(en(n));for(let t=0;t<40;t+=2)r[t>>1]>>4>=8&&(e[t]=e[t].toUpperCase()),(15&r[t>>1])>=8&&(e[t+1]=e[t+1].toUpperCase());return"0x"+e.join("")}const ls={};for(let t=0;t<10;t++)ls[String(t)]=String(t);for(let t=0;t<26;t++)ls[String.fromCharCode(65+t)]=String(10+t);const hs=function(){const t={};for(let e=0;e<36;e++){t["0123456789abcdefghijklmnopqrstuvwxyz"[e]]=BigInt(e)}return t}();function fs(t){if(d("string"==typeof t,"invalid address","address",t),t.match(/^(0x)?[0-9a-fA-F]{40}$/)){t.startsWith("0x")||(t="0x"+t);const e=us(t);return d(!t.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||e===t,"bad address checksum","address",t),e}if(t.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){d(t.substring(2,4)===function(t){let e=(t=(t=t.toUpperCase()).substring(4)+t.substring(0,2)+"00").split("").map((t=>ls[t])).join("");for(;e.length>=15;){let t=e.substring(0,15);e=parseInt(t,10)%97+e.substring(t.length)}let n=String(98-parseInt(e,10)%97);for(;n.length<2;)n="0"+n;return n}(t),"bad icap checksum","address",t);let e=function(t){t=t.toLowerCase();let e=as;for(let n=0;n<t.length;n++)e=e*cs+hs[t[n]];return e}(t.substring(4)).toString(16);for(;e.length<40;)e="0"+e;return us("0x"+e)}d(!1,"invalid address","address",t)}function ps(t){return t&&"function"==typeof t.getAddress}async function ds(t,e){const n=await e;return null!=n&&"0x0000000000000000000000000000000000000000"!==n||(p("string"!=typeof t,"unconfigured name","UNCONFIGURED_NAME",{value:t}),d(!1,"invalid AddressLike value; did not resolve to a value address","target",t)),fs(n)}function gs(t,e){return"string"==typeof t?t.match(/^0x[0-9a-f]{40}$/i)?fs(t):(p(null!=e,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),ds(t,e.resolveName(t))):ps(t)?ds(t,t.getAddress()):t&&"function"==typeof t.then?ds(t,t):void d(!1,"unsupported addressable value","target",t)}const ys={};function ms(t,e){let n=!1;return e<0&&(n=!0,e*=-1),new As(ys,`${n?"":"u"}int${e}`,t,{signed:n,width:e})}function ws(t,e){return new As(ys,`bytes${e||""}`,t,{size:e})}const bs=Symbol.for("_ethers_typed");class As{type;value;#M;_typedSymbol;constructor(t,e,n,r){null==r&&(r=null),w(ys,t,"Typed"),c(this,{_typedSymbol:bs,type:e,value:n}),this.#M=r,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((t=>t.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 this.#M}get arrayLength(){if("array"!==this.type)throw TypeError("not an array");return!0===this.#M?-1:!1===this.#M?this.value.length:null}static from(t,e){return new As(ys,t,e)}static uint8(t){return ms(t,8)}static uint16(t){return ms(t,16)}static uint24(t){return ms(t,24)}static uint32(t){return ms(t,32)}static uint40(t){return ms(t,40)}static uint48(t){return ms(t,48)}static uint56(t){return ms(t,56)}static uint64(t){return ms(t,64)}static uint72(t){return ms(t,72)}static uint80(t){return ms(t,80)}static uint88(t){return ms(t,88)}static uint96(t){return ms(t,96)}static uint104(t){return ms(t,104)}static uint112(t){return ms(t,112)}static uint120(t){return ms(t,120)}static uint128(t){return ms(t,128)}static uint136(t){return ms(t,136)}static uint144(t){return ms(t,144)}static uint152(t){return ms(t,152)}static uint160(t){return ms(t,160)}static uint168(t){return ms(t,168)}static uint176(t){return ms(t,176)}static uint184(t){return ms(t,184)}static uint192(t){return ms(t,192)}static uint200(t){return ms(t,200)}static uint208(t){return ms(t,208)}static uint216(t){return ms(t,216)}static uint224(t){return ms(t,224)}static uint232(t){return ms(t,232)}static uint240(t){return ms(t,240)}static uint248(t){return ms(t,248)}static uint256(t){return ms(t,256)}static uint(t){return ms(t,256)}static int8(t){return ms(t,-8)}static int16(t){return ms(t,-16)}static int24(t){return ms(t,-24)}static int32(t){return ms(t,-32)}static int40(t){return ms(t,-40)}static int48(t){return ms(t,-48)}static int56(t){return ms(t,-56)}static int64(t){return ms(t,-64)}static int72(t){return ms(t,-72)}static int80(t){return ms(t,-80)}static int88(t){return ms(t,-88)}static int96(t){return ms(t,-96)}static int104(t){return ms(t,-104)}static int112(t){return ms(t,-112)}static int120(t){return ms(t,-120)}static int128(t){return ms(t,-128)}static int136(t){return ms(t,-136)}static int144(t){return ms(t,-144)}static int152(t){return ms(t,-152)}static int160(t){return ms(t,-160)}static int168(t){return ms(t,-168)}static int176(t){return ms(t,-176)}static int184(t){return ms(t,-184)}static int192(t){return ms(t,-192)}static int200(t){return ms(t,-200)}static int208(t){return ms(t,-208)}static int216(t){return ms(t,-216)}static int224(t){return ms(t,-224)}static int232(t){return ms(t,-232)}static int240(t){return ms(t,-240)}static int248(t){return ms(t,-248)}static int256(t){return ms(t,-256)}static int(t){return ms(t,-256)}static bytes1(t){return ws(t,1)}static bytes2(t){return ws(t,2)}static bytes3(t){return ws(t,3)}static bytes4(t){return ws(t,4)}static bytes5(t){return ws(t,5)}static bytes6(t){return ws(t,6)}static bytes7(t){return ws(t,7)}static bytes8(t){return ws(t,8)}static bytes9(t){return ws(t,9)}static bytes10(t){return ws(t,10)}static bytes11(t){return ws(t,11)}static bytes12(t){return ws(t,12)}static bytes13(t){return ws(t,13)}static bytes14(t){return ws(t,14)}static bytes15(t){return ws(t,15)}static bytes16(t){return ws(t,16)}static bytes17(t){return ws(t,17)}static bytes18(t){return ws(t,18)}static bytes19(t){return ws(t,19)}static bytes20(t){return ws(t,20)}static bytes21(t){return ws(t,21)}static bytes22(t){return ws(t,22)}static bytes23(t){return ws(t,23)}static bytes24(t){return ws(t,24)}static bytes25(t){return ws(t,25)}static bytes26(t){return ws(t,26)}static bytes27(t){return ws(t,27)}static bytes28(t){return ws(t,28)}static bytes29(t){return ws(t,29)}static bytes30(t){return ws(t,30)}static bytes31(t){return ws(t,31)}static bytes32(t){return ws(t,32)}static address(t){return new As(ys,"address",t)}static bool(t){return new As(ys,"bool",!!t)}static bytes(t){return new As(ys,"bytes",t)}static string(t){return new As(ys,"string",t)}static array(t,e){throw new Error("not implemented yet")}static tuple(t,e){throw new Error("not implemented yet")}static overrides(t){return new As(ys,"overrides",Object.assign({},t))}static isTyped(t){return t&&"object"==typeof t&&"_typedSymbol"in t&&t._typedSymbol===bs}static dereference(t,e){if(As.isTyped(t)){if(t.type!==e)throw new Error(`invalid type: expecetd ${e}, got ${t.type}`);return t.value}return t}}class vs extends Lt{constructor(t){super("address","address",t,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(t,e){let n=As.dereference(e,"string");try{n=fs(n)}catch(t){return this._throwError(t.message,e)}return t.writeValue(n)}decode(t){return fs(j(t.readValue(),20))}}class Es extends Lt{coder;constructor(t){super(t.name,t.type,"_",t.dynamic),this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,e){return this.coder.encode(t,e)}decode(t){return this.coder.decode(t)}}function ks(t,e,n){let r=[];if(Array.isArray(n))r=n;else if(n&&"object"==typeof n){let t={};r=e.map((e=>{const r=e.localName;return p(r,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:e},value:n}),p(!t[r],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:e},value:n}),t[r]=!0,n[r]}))}else d(!1,"invalid tuple value","tuple",n);d(e.length===r.length,"types/value length mismatch","tuple",n);let s=new Ft,i=new Ft,o=[];e.forEach(((t,e)=>{let n=r[e];if(t.dynamic){let e=i.length;t.encode(i,n);let r=s.writeUpdatableValue();o.push((t=>{r(t+e)}))}else t.encode(s,n)})),o.forEach((t=>{t(s.length)}));let a=t.appendWriter(s);return a+=t.appendWriter(i),a}function Ts(t,e){let n=[],r=[],s=t.subReader(0);return e.forEach((e=>{let i=null;if(e.dynamic){let n=t.readIndex(),r=s.subReader(n);try{i=e.decode(r)}catch(t){if(l(t,"BUFFER_OVERRUN"))throw t;i=t,i.baseType=e.name,i.name=e.localName,i.type=e.type}}else try{i=e.decode(t)}catch(t){if(l(t,"BUFFER_OVERRUN"))throw t;i=t,i.baseType=e.name,i.name=e.localName,i.type=e.type}if(null==i)throw new Error("investigate");n.push(i),r.push(e.localName||null)})),Dt.fromItems(n,r)}class Ns extends Lt{coder;length;constructor(t,e,n){super("array",t.type+"["+(e>=0?e:"")+"]",n,-1===e||t.dynamic),c(this,{coder:t,length:e})}defaultValue(){const t=this.coder.defaultValue(),e=[];for(let n=0;n<this.length;n++)e.push(t);return e}encode(t,e){const n=As.dereference(e,"array");Array.isArray(n)||this._throwError("expected array value",n);let r=this.length;-1===r&&(r=n.length,t.writeValue(n.length)),g(n.length,r,"coder array"+(this.localName?" "+this.localName:""));let s=[];for(let t=0;t<n.length;t++)s.push(this.coder);return ks(t,s,n)}decode(t){let e=this.length;-1===e&&(e=t.readIndex(),p(e*Nt<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:e*Nt,length:t.dataLength}));let n=[];for(let t=0;t<e;t++)n.push(new Es(this.coder));return Ts(t,n)}}class xs extends Lt{constructor(t){super("bool","bool",t,!1)}defaultValue(){return!1}encode(t,e){const n=As.dereference(e,"bool");return t.writeValue(n?1:0)}decode(t){return!!t.readValue()}}class Ss extends Lt{constructor(t,e){super(t,t,e,!0)}defaultValue(){return"0x"}encode(t,e){e=v(e);let n=t.writeValue(e.length);return n+=t.writeBytes(e),n}decode(t){return t.readBytes(t.readIndex(),!0)}}class Os extends Ss{constructor(t){super("bytes",t)}decode(t){return N(super.decode(t))}}class Ps extends Lt{size;constructor(t,e){let n="bytes"+String(t);super(n,n,e,!1),c(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(t,e){let n=v(As.dereference(e,this.type));return n.length!==this.size&&this._throwError("incorrect data length",e),t.writeBytes(n)}decode(t){return N(t.readBytes(this.size))}}const Rs=new Uint8Array([]);class Is extends Lt{constructor(t){super("null","",t,!1)}defaultValue(){return null}encode(t,e){return null!=e&&this._throwError("not null",e),t.writeBytes(Rs)}decode(t){return t.readBytes(0),null}}const Cs=BigInt(0),Bs=BigInt(1),Ds=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Us extends Lt{size;signed;constructor(t,e,n){const r=(e?"int":"uint")+8*t;super(r,r,n,!1),c(this,{size:t,signed:e},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,e){let n=L(As.dereference(e,this.type)),r=U(Ds,256);if(this.signed){let t=U(r,8*this.size-1);(n>t||n<-(t+Bs))&&this._throwError("value out-of-bounds",e),n=D(n,256)}else(n<Cs||n>U(r,8*this.size))&&this._throwError("value out-of-bounds",e);return t.writeValue(n)}decode(t){let e=U(t.readValue(),8*this.size);return this.signed&&(e=function(t,e){const n=F(t,"value"),r=BigInt(G(e,"width"));if(p(n>>r===I,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:t}),n>>r-C)return-((~n&(C<<r)-C)+C);return n}(e,8*this.size)),e}}class Ls extends Ss{constructor(t){super("string",t)}defaultValue(){return""}encode(t,e){return super.encode(t,X(As.dereference(e,"string")))}decode(t){return tt(super.decode(t))}}class Fs extends Lt{coders;constructor(t,e){let n=!1;const r=[];t.forEach((t=>{t.dynamic&&(n=!0),r.push(t.type)}));super("tuple","tuple("+r.join(",")+")",e,n),c(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach((e=>{t.push(e.defaultValue())}));const e=this.coders.reduce(((t,e)=>{const n=e.localName;return n&&(t[n]||(t[n]=0),t[n]++),t}),{});return this.coders.forEach(((n,r)=>{let s=n.localName;s&&1===e[s]&&("length"===s&&(s="_length"),null==t[s]&&(t[s]=t[r]))})),Object.freeze(t)}encode(t,e){const n=As.dereference(e,"tuple");return ks(t,this.coders,n)}decode(t){return Ts(t,this.coders)}}function Ms(t){return en(X(t))}const _s=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]);function Gs(t){return function(t){let e=0;return()=>t[e++]}(function(t){let e=0;function n(){return t[e++]<<8|t[e++]}let r=n(),s=1,i=[0,1];for(let t=1;t<r;t++)i.push(s+=n());let o=n(),a=e;e+=o;let c=0,u=0;function l(){return 0==c&&(u=u<<8|t[e++],c=8),u>>--c&1}const h=2**31,f=h>>>1,p=f>>1,d=h-1;let g=0;for(let t=0;t<31;t++)g=g<<1|l();let y=[],m=0,w=h;for(;;){let t=Math.floor(((g-m+1)*s-1)/w),e=0,n=r;for(;n-e>1;){let r=e+n>>>1;t<i[r]?n=r:e=r}if(0==e)break;y.push(e);let o=m+Math.floor(w*i[e]/s),a=m+Math.floor(w*i[e+1]/s)-1;for(;!((o^a)&f);)g=g<<1&d|l(),o=o<<1&d,a=a<<1&d|1;for(;o&~a&p;)g=g&f|g<<1&d>>>1|l(),o=o<<1^f,a=(a^f)<<1|f|1;m=o,w=1+a-o}let b=r-4;return y.map((e=>{switch(e-b){case 3:return b+65792+(t[a++]<<16|t[a++]<<8|t[a++]);case 2:return b+256+(t[a++]<<8|t[a++]);case 1:return b+t[a++];default:return e-1}}))}(function(t){let e=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach(((t,n)=>e[t.charCodeAt(0)]=n));let n=t.length,r=new Uint8Array(6*n>>3);for(let s=0,i=0,o=0,a=0;s<n;s++)a=a<<6|e[t.charCodeAt(s)],o+=6,o>=8&&(r[i++]=a>>(o-=8));return r}(t)))}function js(t){return 1&t?~t>>1:t>>1}function Hs(t,e){let n=Array(t);for(let r=0,s=0;r<t;r++)n[r]=s+=js(e());return n}function Ks(t,e=0){let n=[];for(;;){let r=t(),s=t();if(!s)break;e+=r;for(let t=0;t<s;t++)n.push(e+t);e+=s+1}return n}function Vs(t){return Js((()=>{let e=Ks(t);if(e.length)return e}))}function Qs(t){let e=[];for(;;){let n=t();if(0==n)break;e.push(Ys(n,t))}for(;;){let n=t()-1;if(n<0)break;e.push(qs(n,t))}return e.flat()}function Js(t){let e=[];for(;;){let n=t(e.length);if(!n)break;e.push(n)}return e}function zs(t,e,n){let r=Array(t).fill().map((()=>[]));for(let s=0;s<e;s++)Hs(t,n).forEach(((t,e)=>r[e].push(t)));return r}function Ys(t,e){let n=1+e(),r=e(),s=Js(e);return zs(s.length,1+t,e).flatMap(((t,e)=>{let[i,...o]=t;return Array(s[e]).fill().map(((t,e)=>{let s=e*r;return[i+e*n,o.map((t=>t+s))]}))}))}function qs(t,e){return zs(1+e(),1+t,e).map((t=>[t[0],t.slice(1)]))}function $s(t){return`{${function(t){return t.toString(16).toUpperCase().padStart(2,"0")}(t)}}`}function Ws(t){let e=t.length;if(e<4096)return String.fromCodePoint(...t);let n=[];for(let r=0;r<e;)n.push(String.fromCodePoint(...t.slice(r,r+=4096)));return n.join("")}function Zs(t,e){let n=t.length,r=n-e.length;for(let s=0;0==r&&s<n;s++)r=t[s]-e[s];return r}const Xs=44032,ti=4352,ei=4449,ni=4519,ri=28,si=588;function ii(t){return t>>24&255}function oi(t){return 16777215&t}let ai,ci,ui,li;function hi(t){return t>=Xs&&t<55204}function fi(t,e){if(t>=ti&&t<4371&&e>=ei&&e<4470)return Xs+(t-ti)*si+(e-ei)*ri;if(hi(t)&&e>ni&&e<4547&&(t-Xs)%ri==0)return t+(e-ni);{let n=li.get(t);return n&&(n=n.get(e),n)?n:-1}}function pi(t){ai||function(){let t=Gs("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");ai=new Map(Vs(t).flatMap(((t,e)=>t.map((t=>[t,e+1<<24]))))),ci=new Set(Ks(t)),ui=new Map,li=new Map;for(let[e,n]of Qs(t)){if(!ci.has(e)&&2==n.length){let[t,r]=n,s=li.get(t);s||(s=new Map,li.set(t,s)),s.set(r,e)}ui.set(e,n.reverse())}}();let e=[],n=[],r=!1;function s(t){let n=ai.get(t);n&&(r=!0,t|=n),e.push(t)}for(let r of t)for(;;){if(r<128)e.push(r);else if(hi(r)){let t=r-Xs,e=t%si/ri|0,n=t%ri;s(ti+(t/si|0)),s(ei+e),n>0&&s(ni+n)}else{let t=ui.get(r);t?n.push(...t):s(r)}if(!n.length)break;r=n.pop()}if(r&&e.length>1){let t=ii(e[0]);for(let n=1;n<e.length;n++){let r=ii(e[n]);if(0==r||t<=r){t=r;continue}let s=n-1;for(;;){let n=e[s+1];if(e[s+1]=e[s],e[s]=n,!s)break;if(t=ii(e[--s]),t<=r)break}t=ii(e[n])}}return e}function di(t){return pi(t).map(oi)}function gi(t){return function(t){let e=[],n=[],r=-1,s=0;for(let i of t){let t=ii(i),o=oi(i);if(-1==r)0==t?r=o:e.push(o);else if(s>0&&s>=t)0==t?(e.push(r,...n),n.length=0,r=o):n.push(o),s=t;else{let i=fi(r,o);i>=0?r=i:0==s&&0==t?(e.push(r),r=o):(n.push(o),s=t)}}return r>=0&&e.push(r,...n),e}(pi(t))}const yi=".",mi=t=>Array.from(t);function wi(t,e){return t.P.has(e)||t.Q.has(e)}class bi extends Array{get is_emoji(){return!0}}let Ai,vi,Ei,ki,Ti,Ni,xi,Si,Oi,Pi,Ri;function Ii(){if(Ai)return;let t=Gs("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 e=()=>Ks(t),n=()=>new Set(e()),r=(t,e)=>e.forEach((e=>t.add(e)));Ai=new Map(Qs(t)),vi=n(),Ei=e(),ki=new Set(e().map((t=>Ei[t]))),Ei=new Set(Ei),Ti=n(),n();let s=Vs(t),i=t();const o=()=>{let t=new Set;return e().forEach((e=>r(t,s[e]))),r(t,e()),t};Ni=Js((e=>{let n=Js(t).map((t=>t+96));if(n.length){let r=e>=i;return n[0]-=32,n=Ws(n),r&&(n=`Restricted[${n}]`),{N:n,P:o(),Q:o(),M:!t(),R:r}}})),xi=n(),Si=new Map;let a=e().concat(mi(xi)).sort(((t,e)=>t-e));a.forEach(((e,n)=>{let r=t(),s=a[n]=r?a[n-r]:{V:[],M:new Map};s.V.push(e),xi.has(e)||Si.set(e,s)}));for(let{V:t,M:e}of new Set(Si.values())){let n=[];for(let e of t){let t=Ni.filter((t=>wi(t,e))),s=n.find((({G:e})=>t.some((t=>e.has(t)))));s||(s={G:new Set,V:[]},n.push(s)),s.V.push(e),r(s.G,t)}let s=n.flatMap((t=>mi(t.G)));for(let{G:t,V:r}of n){let n=new Set(s.filter((e=>!t.has(e))));for(let t of r)e.set(t,n)}}Oi=new Set;let c=new Set;const u=t=>Oi.has(t)?c.add(t):Oi.add(t);for(let t of Ni){for(let e of t.P)u(e);for(let e of t.Q)u(e)}for(let t of Oi)Si.has(t)||c.has(t)||Si.set(t,1);r(Oi,di(Oi)),Pi=function(t){let e=[],n=Ks(t);return function t({S:n,B:r},s,i){if(!(4&n&&i===s[s.length-1])){2&n&&(i=s[s.length-1]),1&n&&e.push(s);for(let e of r)for(let n of e.Q)t(e,[...s,n],i)}}(function e(r){return{S:t(),B:Js((()=>{let r=Ks(t).map((t=>n[t]));if(r.length)return e(r)})),Q:r}}([]),[]),e}(t).map((t=>bi.from(t))).sort(Zs),Ri=new Map;for(let t of Pi){let e=[Ri];for(let n of t){let t=e.map((t=>{let e=t.get(n);return e||(e=new Map,t.set(n,e)),e}));65039===n?e.push(...t):e=t}for(let n of e)n.V=t}}function Ci(t){return(Ui(t)?"":`${Bi(Di([t]))} `)+$s(t)}function Bi(t){return`"${t}"`}function Di(t,e=1/0,n=$s){let r=[];var s;s=t[0],Ii(),Ei.has(s)&&r.push("◌"),t.length>e&&(e>>=1,t=[...t.slice(0,e),8230,...t.slice(-e)]);let i=0,o=t.length;for(let e=0;e<o;e++){let s=t[e];Ui(s)&&(r.push(Ws(t.slice(i,e))),r.push(n(s)),i=e+1)}return r.push(Ws(t.slice(i,o))),r.join("")}function Ui(t){return Ii(),Ti.has(t)}function Li(t){return function(t){return t.map((({input:e,error:n,output:r})=>{if(n){let r=n.message;throw new Error(1==t.length?r:`Invalid label ${Bi(Di(e,63))}: ${r}`)}return Ws(r)})).join(yi)}(function(t,e,n){if(!t)return[];Ii();let r=0;return t.split(yi).map((t=>{let s=function(t){let e=[];for(let n=0,r=t.length;n<r;){let r=t.codePointAt(n);n+=r<65536?1:2,e.push(r)}return e}(t),i={input:s,offset:r};r+=s.length+1;try{let t,r=i.tokens=function(t,e,n){let r=[],s=[];t=t.slice().reverse();for(;t.length;){let i=ji(t);if(i)s.length&&(r.push(e(s)),s=[]),r.push(n(i));else{let e=t.pop();if(Oi.has(e))s.push(e);else{let t=Ai.get(e);if(t)s.push(...t);else if(!vi.has(e))throw Fi(e)}}}s.length&&r.push(e(s));return r}(s,e,n),o=r.length;if(!o)throw new Error("empty label");let a=i.output=r.flat();if(function(t){for(let e=t.lastIndexOf(95);e>0;)if(95!==t[--e])throw new Error("underscore allowed only at start")}(a),!(i.emoji=o>1||r[0].is_emoji)&&a.every((t=>t<128)))!function(t){if(t.length>=4&&45==t[2]&&45==t[3])throw new Error(`invalid label extension: "${Ws(t.slice(0,4))}"`)}(a),t="ASCII";else{let e=r.flatMap((t=>t.is_emoji?[]:t));if(e.length){if(Ei.has(a[0]))throw _i("leading combining mark");for(let t=1;t<o;t++){let e=r[t];if(!e.is_emoji&&Ei.has(e[0]))throw _i(`emoji + combining mark: "${Ws(r[t-1])} + ${Di([e[0]])}"`)}!function(t){let e=t[0],n=_s.get(e);if(n)throw _i(`leading ${n}`);let r=t.length,s=-1;for(let i=1;i<r;i++){e=t[i];let r=_s.get(e);if(r){if(s==i)throw _i(`${n} + ${r}`);s=i+1,n=r}}if(s==r)throw _i(`trailing ${n}`)}(a);let n=mi(new Set(e)),[s]=function(t){let e=Ni;for(let n of t){let t=e.filter((t=>wi(t,n)));if(!t.length)throw Ni.some((t=>wi(t,n)))?Mi(e[0],n):Fi(n);if(e=t,1==t.length)break}return e}(n);!function(t,e){for(let n of e)if(!wi(t,n))throw Mi(t,n);if(t.M){let t=di(e);for(let e=1,n=t.length;e<n;e++)if(ki.has(t[e])){let r=e+1;for(let s;r<n&&ki.has(s=t[r]);r++)for(let n=e;n<r;n++)if(t[n]==s)throw new Error(`duplicate non-spacing marks: ${Ci(s)}`);if(r-e>4)throw new Error(`excessive non-spacing marks: ${Bi(Di(t.slice(e-1,r)))} (${r-e}/4)`);e=r}}}(s,e),function(t,e){let n,r=[];for(let t of e){let e=Si.get(t);if(1===e)return;if(e){let r=e.M.get(t);if(n=n?n.filter((t=>r.has(t))):mi(r),!n.length)return}else r.push(t)}if(n)for(let e of n)if(r.every((t=>wi(e,t))))throw new Error(`whole-script confusable: ${t.N}/${e.N}`)}(s,n),t=s.N}else t="Emoji"}i.type=t}catch(t){i.error=t}return i}))}(t,gi,Gi))}function Fi(t){return new Error(`disallowed character: ${Ci(t)}`)}function Mi(t,e){let n=Ci(e),r=Ni.find((t=>t.P.has(e)));return r&&(n=`${r.N} ${n}`),new Error(`illegal mixture: ${t.N} + ${n}`)}function _i(t){return new Error(`illegal placement: ${t}`)}function Gi(t){return t.filter((t=>65039!=t))}function ji(t,e){let n,r=Ri,s=t.length;for(;s&&(r=r.get(t[--s]),r);){let{V:i}=r;i&&(n=i,e&&e.push(...t.slice(s).reverse()),t.length=s)}return n}const Hi=new Uint8Array(32);function Ki(t){return d(0!==t.length,"invalid ENS name; empty component","comp",t),t}function Vi(t){const e=X(function(t){try{if(0===t.length)throw new Error("empty label");return Li(t)}catch(e){d(!1,`invalid ENS name (${e.message})`,"name",t)}}(t)),n=[];if(0===t.length)return n;let r=0;for(let t=0;t<e.length;t++){46===e[t]&&(n.push(Ki(e.slice(r,t))),r=t+1)}return d(r<e.length,"invalid ENS name; empty component","name",t),n.push(Ki(e.slice(r))),n}function Qi(t){d("string"==typeof t,"invalid ENS name; not a string","name",t),d(t.length,"invalid ENS name (empty label)","name",t);let e=Hi;const n=Vi(t);for(;n.length;)e=en(x([e,en(n.pop())]));return N(e)}function Ji(t,e){const n=null!=e?e:63;return d(n<=255,"DNS encoded label cannot exceed 255","length",n),N(x(Vi(t).map((e=>{d(e.length<=n,`label ${JSON.stringify(t)} exceeds ${n} bytes`,"name",t);const r=new Uint8Array(e.length+1);return r.set(e,1),r[0]=r.length-1,r}))))+"00"}function zi(t,e){return{address:fs(t),storageKeys:e.map(((t,e)=>(d(E(t,32),"invalid slot",`storageKeys[${e}]`,t),t.toLowerCase())))}}function Yi(t){if(Array.isArray(t))return t.map(((e,n)=>Array.isArray(e)?(d(2===e.length,"invalid slot set",`value[${n}]`,e),zi(e[0],e[1])):(d(null!=e&&"object"==typeof e,"invalid address-slot set","value",t),zi(e.address,e.storageKeys))));d(null!=t&&"object"==typeof t,"invalid access list","value",t);const e=Object.keys(t).map((e=>{const n=t[e].reduce(((t,e)=>(t[e]=!0,t)),{});return zi(e,Object.keys(n).sort())}));return e.sort(((t,e)=>t.address.localeCompare(e.address))),e}function qi(t){let e;return e="string"==typeof t?os.computePublicKey(t,!1):t.publicKey,fs(en("0x"+e.substring(4)).substring(26))}function $i(t,e){return qi(os.recoverPublicKey(t,e))}Hi.fill(0);const Wi=BigInt(0),Zi=BigInt(2),Xi=BigInt(27),to=BigInt(28),eo=BigInt(35),no=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ro=131072;function so(t,e){let n=t.toString(16);for(;n.length<2;)n="0"+n;return n+=Qn(e).substring(4),"0x"+n}function io(t){return"0x"===t?null:fs(t)}function oo(t,e){try{return Yi(t)}catch(n){d(!1,n.message,e,t)}}function ao(t,e){return"0x"===t?0:G(t,e)}function co(t,e){if("0x"===t)return Wi;const n=L(t,e);return d(n<=no,"value exceeds uint size",e,n),n}function uo(t,e){const n=L(t,"value"),r=H(n);return d(r.length<=32,"value too large",`tx.${e}`,n),r}function lo(t){return Yi(t).map((t=>[t.address,t.storageKeys]))}function ho(t,e){d(Array.isArray(t),`invalid ${e}`,"value",t);for(let e=0;e<t.length;e++)d(E(t[e],32),"invalid ${ param } hash",`value[${e}]`,t[e]);return t}function fo(t,e){let n;try{if(n=ao(e[0],"yParity"),0!==n&&1!==n)throw new Error("bad yParity")}catch(t){d(!1,"invalid yParity","yParity",e[0])}const r=R(e[1],32),s=R(e[2],32),i=is.from({r:r,s:s,yParity:n});t.signature=i}class po{#_;#G;#T;#j;#H;#K;#V;#Q;#J;#z;#Y;#q;#$;#W;#Z;#X;get type(){return this.#_}set type(t){switch(t){case null:this.#_=null;break;case 0:case"legacy":this.#_=0;break;case 1:case"berlin":case"eip-2930":this.#_=1;break;case 2:case"london":case"eip-1559":this.#_=2;break;case 3:case"cancun":case"eip-4844":this.#_=3;break;default:d(!1,"unsupported transaction type","type",t)}}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 t=this.#G;return null==t&&3===this.type?qr:t}set to(t){this.#G=null==t?null:fs(t)}get nonce(){return this.#j}set nonce(t){this.#j=G(t,"value")}get gasLimit(){return this.#H}set gasLimit(t){this.#H=L(t)}get gasPrice(){const t=this.#K;return null!=t||0!==this.type&&1!==this.type?t:Wi}set gasPrice(t){this.#K=null==t?null:L(t,"gasPrice")}get maxPriorityFeePerGas(){const t=this.#V;return null==t?2===this.type||3===this.type?Wi:null:t}set maxPriorityFeePerGas(t){this.#V=null==t?null:L(t,"maxPriorityFeePerGas")}get maxFeePerGas(){const t=this.#Q;return null==t?2===this.type||3===this.type?Wi:null:t}set maxFeePerGas(t){this.#Q=null==t?null:L(t,"maxFeePerGas")}get data(){return this.#T}set data(t){this.#T=N(t)}get value(){return this.#J}set value(t){this.#J=L(t,"value")}get chainId(){return this.#z}set chainId(t){this.#z=L(t)}get signature(){return this.#Y||null}set signature(t){this.#Y=null==t?null:is.from(t)}get accessList(){const t=this.#q||null;return null==t?1===this.type||2===this.type||3===this.type?[]:null:t}set accessList(t){this.#q=null==t?null:Yi(t)}get maxFeePerBlobGas(){const t=this.#$;return null==t&&3===this.type?Wi:t}set maxFeePerBlobGas(t){this.#$=null==t?null:L(t,"maxFeePerBlobGas")}get blobVersionedHashes(){let t=this.#W;return null==t&&3===this.type?[]:t}set blobVersionedHashes(t){if(null!=t){d(Array.isArray(t),"blobVersionedHashes must be an Array","value",t),t=t.slice();for(let e=0;e<t.length;e++)d(E(t[e],32),"invalid blobVersionedHash",`value[${e}]`,t[e])}this.#W=t}get blobs(){return null==this.#X?null:this.#X.map((t=>Object.assign({},t)))}set blobs(t){if(null==t)return void(this.#X=null);const e=[],n=[];for(let r=0;r<t.length;r++){const s=t[r];if(k(s)){p(this.#Z,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let t=A(s);if(d(t.length<=ro,"blob is too large",`blobs[${r}]`,s),t.length!==ro){const e=new Uint8Array(ro);e.set(t),t=e}const i=this.#Z.blobToKzgCommitment(t),o=N(this.#Z.computeBlobKzgProof(t,i));e.push({data:N(t),commitment:N(i),proof:o}),n.push(so(1,i))}else{const t=N(s.commitment);e.push({data:N(s.data),commitment:t,proof:N(s.proof)}),n.push(so(1,t))}}this.#X=e,this.#W=n}get kzg(){return this.#Z}set kzg(t){this.#Z=t}constructor(){this.#_=null,this.#G=null,this.#j=0,this.#H=Wi,this.#K=null,this.#V=null,this.#Q=null,this.#T="0x",this.#J=Wi,this.#z=Wi,this.#Y=null,this.#q=null,this.#$=null,this.#W=null,this.#X=null,this.#Z=null}get hash(){return null==this.signature?null:en(this.#tt(!0,!1))}get unsignedHash(){return en(this.unsignedSerialized)}get from(){return null==this.signature?null:$i(this.unsignedHash,this.signature)}get fromPublicKey(){return null==this.signature?null:os.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return null!=this.signature}#tt(t,e){p(!t||null!=this.signature,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});const n=t?this.signature:null;switch(this.inferType()){case 0:return function(t,e){const n=[uo(t.nonce,"nonce"),uo(t.gasPrice||0,"gasPrice"),uo(t.gasLimit,"gasLimit"),t.to||"0x",uo(t.value,"value"),t.data];let r=Wi;if(t.chainId!=Wi)r=L(t.chainId,"tx.chainId"),d(!e||null==e.networkV||e.legacyChainId===r,"tx.chainId/sig.v mismatch","sig",e);else if(t.signature){const e=t.signature.legacyChainId;null!=e&&(r=e)}if(!e)return r!==Wi&&(n.push(H(r)),n.push("0x"),n.push("0x")),kt(n);let s=BigInt(27+e.yParity);return r!==Wi?s=is.getChainIdV(r,e.v):BigInt(e.v)!==s&&d(!1,"tx.chainId/sig.v mismatch","sig",e),n.push(H(s)),n.push(H(e.r)),n.push(H(e.s)),kt(n)}(this,n);case 1:return function(t,e){const n=[uo(t.chainId,"chainId"),uo(t.nonce,"nonce"),uo(t.gasPrice||0,"gasPrice"),uo(t.gasLimit,"gasLimit"),t.to||"0x",uo(t.value,"value"),t.data,lo(t.accessList||[])];return e&&(n.push(uo(e.yParity,"recoveryParam")),n.push(H(e.r)),n.push(H(e.s))),x(["0x01",kt(n)])}(this,n);case 2:return function(t,e){const n=[uo(t.chainId,"chainId"),uo(t.nonce,"nonce"),uo(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),uo(t.maxFeePerGas||0,"maxFeePerGas"),uo(t.gasLimit,"gasLimit"),t.to||"0x",uo(t.value,"value"),t.data,lo(t.accessList||[])];return e&&(n.push(uo(e.yParity,"yParity")),n.push(H(e.r)),n.push(H(e.s))),x(["0x02",kt(n)])}(this,n);case 3:return function(t,e,n){const r=[uo(t.chainId,"chainId"),uo(t.nonce,"nonce"),uo(t.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),uo(t.maxFeePerGas||0,"maxFeePerGas"),uo(t.gasLimit,"gasLimit"),t.to||qr,uo(t.value,"value"),t.data,lo(t.accessList||[]),uo(t.maxFeePerBlobGas||0,"maxFeePerBlobGas"),ho(t.blobVersionedHashes||[],"blobVersionedHashes")];return e&&(r.push(uo(e.yParity,"yParity")),r.push(H(e.r)),r.push(H(e.s)),n)?x(["0x03",kt([r,n.map((t=>t.data)),n.map((t=>t.commitment)),n.map((t=>t.proof))])]):x(["0x03",kt(r)])}(this,n,e?this.blobs:null)}p(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#tt(!0,!0)}get unsignedSerialized(){return this.#tt(!1,!1)}inferType(){const t=this.inferTypes();return t.indexOf(2)>=0?2:t.pop()}inferTypes(){const t=null!=this.gasPrice,e=null!=this.maxFeePerGas||null!=this.maxPriorityFeePerGas,n=null!=this.accessList,r=null!=this.#$||this.#W;null!=this.maxFeePerGas&&null!=this.maxPriorityFeePerGas&&p(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),p(!e||0!==this.type&&1!==this.type,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),p(0!==this.type||!n,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const s=[];return null!=this.type?s.push(this.type):e?s.push(2):t?(s.push(1),n||s.push(0)):n?(s.push(1),s.push(2)):(r&&this.to||(s.push(0),s.push(1),s.push(2)),s.push(3)),s.sort(),s}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}clone(){return po.from(this)}toJSON(){const t=t=>null==t?null:t.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:t(this.gasLimit),gasPrice:t(this.gasPrice),maxPriorityFeePerGas:t(this.maxPriorityFeePerGas),maxFeePerGas:t(this.maxFeePerGas),value:t(this.value),chainId:t(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(t){if(null==t)return new po;if("string"==typeof t){const e=A(t);if(e[0]>=127)return po.from(function(t){const e=bt(t);d(Array.isArray(e)&&(9===e.length||6===e.length),"invalid field count for legacy transaction","data",t);const n={type:0,nonce:ao(e[0],"nonce"),gasPrice:co(e[1],"gasPrice"),gasLimit:co(e[2],"gasLimit"),to:io(e[3]),value:co(e[4],"value"),data:N(e[5]),chainId:Wi};if(6===e.length)return n;const r=co(e[6],"v"),s=co(e[7],"r"),i=co(e[8],"s");if(s===Wi&&i===Wi)n.chainId=r;else{let t=(r-eo)/Zi;t<Wi&&(t=Wi),n.chainId=t,d(t!==Wi||r===Xi||r===to,"non-canonical legacy v","v",e[6]),n.signature=is.from({r:R(e[7],32),s:R(e[8],32),v:r})}return n}(e));switch(e[0]){case 1:return po.from(function(t){const e=bt(A(t).slice(1));d(Array.isArray(e)&&(8===e.length||11===e.length),"invalid field count for transaction type: 1","data",N(t));const n={type:1,chainId:co(e[0],"chainId"),nonce:ao(e[1],"nonce"),gasPrice:co(e[2],"gasPrice"),gasLimit:co(e[3],"gasLimit"),to:io(e[4]),value:co(e[5],"value"),data:N(e[6]),accessList:oo(e[7],"accessList")};return 8===e.length||fo(n,e.slice(8)),n}(e));case 2:return po.from(function(t){const e=bt(A(t).slice(1));d(Array.isArray(e)&&(9===e.length||12===e.length),"invalid field count for transaction type: 2","data",N(t));const n={type:2,chainId:co(e[0],"chainId"),nonce:ao(e[1],"nonce"),maxPriorityFeePerGas:co(e[2],"maxPriorityFeePerGas"),maxFeePerGas:co(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:co(e[4],"gasLimit"),to:io(e[5]),value:co(e[6],"value"),data:N(e[7]),accessList:oo(e[8],"accessList")};return 9===e.length||fo(n,e.slice(9)),n}(e));case 3:return po.from(function(t){let e=bt(A(t).slice(1)),n="3",r=null;if(4===e.length&&Array.isArray(e[0])){n="3 (network format)";const t=e[1],s=e[2],i=e[3];d(Array.isArray(t),"invalid network format: blobs not an array","fields[1]",t),d(Array.isArray(s),"invalid network format: commitments not an array","fields[2]",s),d(Array.isArray(i),"invalid network format: proofs not an array","fields[3]",i),d(t.length===s.length,"invalid network format: blobs/commitments length mismatch","fields",e),d(t.length===i.length,"invalid network format: blobs/proofs length mismatch","fields",e),r=[];for(let n=0;n<e[1].length;n++)r.push({data:t[n],commitment:s[n],proof:i[n]});e=e[0]}d(Array.isArray(e)&&(11===e.length||14===e.length),`invalid field count for transaction type: ${n}`,"data",N(t));const s={type:3,chainId:co(e[0],"chainId"),nonce:ao(e[1],"nonce"),maxPriorityFeePerGas:co(e[2],"maxPriorityFeePerGas"),maxFeePerGas:co(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:co(e[4],"gasLimit"),to:io(e[5]),value:co(e[6],"value"),data:N(e[7]),accessList:oo(e[8],"accessList"),maxFeePerBlobGas:co(e[9],"maxFeePerBlobGas"),blobVersionedHashes:e[10]};r&&(s.blobs=r),d(null!=s.to,`invalid address for transaction type: ${n}`,"data",t),d(Array.isArray(s.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",t);for(let e=0;e<s.blobVersionedHashes.length;e++)d(E(s.blobVersionedHashes[e],32),`invalid blobVersionedHash at index ${e}: must be length 32`,"data",t);return 11===e.length||fo(s,e.slice(11)),s}(e))}p(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const e=new po;return null!=t.type&&(e.type=t.type),null!=t.to&&(e.to=t.to),null!=t.nonce&&(e.nonce=t.nonce),null!=t.gasLimit&&(e.gasLimit=t.gasLimit),null!=t.gasPrice&&(e.gasPrice=t.gasPrice),null!=t.maxPriorityFeePerGas&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas),null!=t.maxFeePerGas&&(e.maxFeePerGas=t.maxFeePerGas),null!=t.maxFeePerBlobGas&&(e.maxFeePerBlobGas=t.maxFeePerBlobGas),null!=t.data&&(e.data=t.data),null!=t.value&&(e.value=t.value),null!=t.chainId&&(e.chainId=t.chainId),null!=t.signature&&(e.signature=is.from(t.signature)),null!=t.accessList&&(e.accessList=t.accessList),null!=t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes),null!=t.kzg&&(e.kzg=t.kzg),null!=t.blobs&&(e.blobs=t.blobs),null!=t.hash&&(d(e.isSigned(),"unsigned transaction cannot define '.hash'","tx",t),d(e.hash===t.hash,"hash mismatch","tx",t)),null!=t.from&&(d(e.isSigned(),"unsigned transaction cannot define '.from'","tx",t),d(e.from.toLowerCase()===(t.from||"").toLowerCase(),"from mismatch","tx",t)),e}}function go(t){return"string"==typeof t&&(t=X(t)),en(x([X("Ethereum Signed Message:\n"),X(String(t.length)),t]))}const yo=new Uint8Array(32);yo.fill(0);const mo=BigInt(-1),wo=BigInt(0),bo=BigInt(1),Ao=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const vo=j(bo,32),Eo=j(wo,32),ko={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},To=["name","version","chainId","verifyingContract","salt"];function No(t){return function(e){return d("string"==typeof e,`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,e),e}}const xo={name:No("name"),version:No("version"),chainId:function(t){const e=L(t,"domain.chainId");return d(e>=0,"invalid chain ID","domain.chainId",t),Number.isSafeInteger(e)?Number(e):K(e)},verifyingContract:function(t){try{return fs(t).toLowerCase()}catch(t){}d(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){const e=A(t,"domain.salt");return d(32===e.length,'invalid domain value "salt"',"domain.salt",t),N(e)}};function So(t){{const e=t.match(/^(u?)int(\d+)$/);if(e){const n=""===e[1],r=parseInt(e[2]);d(r%8==0&&0!==r&&r<=256&&e[2]===String(r),"invalid numeric width","type",t);const s=U(Ao,n?r-1:r),i=n?(s+bo)*mo:wo;return function(e){const r=L(e,"value");return d(r>=i&&r<=s,`value out-of-bounds for ${t}`,"value",r),j(n?D(r,256):r,32)}}}{const e=t.match(/^bytes(\d+)$/);if(e){const n=parseInt(e[1]);return d(0!==n&&n<=32&&e[1]===String(n),"invalid bytes width","type",t),function(e){return d(A(e).length===n,`invalid length for ${t}`,"value",e),function(t){const e=A(t),n=e.length%32;return n?x([e,yo.slice(n)]):N(e)}(e)}}}switch(t){case"address":return function(t){return R(fs(t),32)};case"bool":return function(t){return t?vo:Eo};case"bytes":return function(t){return en(t)};case"string":return function(t){return Ms(t)}}return null}function Oo(t,e){return`${t}(${e.map((({name:t,type:e})=>e+" "+t)).join(",")})`}function Po(t){const e=t.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return e?{base:e[1],index:e[2]+e[4],array:{base:e[1],prefix:e[1]+e[2],count:e[5]?parseInt(e[5]):-1}}:{base:t}}class Ro{primaryType;#et;get types(){return JSON.parse(this.#et)}#nt;#rt;constructor(t){this.#nt=new Map,this.#rt=new Map;const e=new Map,n=new Map,r=new Map,s={};Object.keys(t).forEach((i=>{s[i]=t[i].map((({name:e,type:n})=>{let{base:r,index:s}=Po(n);return"int"!==r||t.int||(r="int256"),"uint"!==r||t.uint||(r="uint256"),{name:e,type:r+(s||"")}})),e.set(i,new Set),n.set(i,[]),r.set(i,new Set)})),this.#et=JSON.stringify(s);for(const r in s){const i=new Set;for(const o of s[r]){d(!i.has(o.name),`duplicate variable name ${JSON.stringify(o.name)} in ${JSON.stringify(r)}`,"types",t),i.add(o.name);const s=Po(o.type).base;d(s!==r,`circular type reference to ${JSON.stringify(s)}`,"types",t);So(s)||(d(n.has(s),`unknown type ${JSON.stringify(s)}`,"types",t),n.get(s).push(r),e.get(r).add(s))}}const i=Array.from(n.keys()).filter((t=>0===n.get(t).length));d(0!==i.length,"missing primary type","types",t),d(1===i.length,`ambiguous primary types or unused types: ${i.map((t=>JSON.stringify(t))).join(", ")}`,"types",t),c(this,{primaryType:i[0]}),function s(i,o){d(!o.has(i),`circular type reference to ${JSON.stringify(i)}`,"types",t),o.add(i);for(const t of e.get(i))if(n.has(t)){s(t,o);for(const e of o)r.get(e).add(t)}o.delete(i)}(this.primaryType,new Set);for(const[t,e]of r){const n=Array.from(e);n.sort(),this.#nt.set(t,Oo(t,s[t])+n.map((t=>Oo(t,s[t]))).join(""))}}getEncoder(t){let e=this.#rt.get(t);return e||(e=this.#st(t),this.#rt.set(t,e)),e}#st(t){{const e=So(t);if(e)return e}const e=Po(t).array;if(e){const t=e.prefix,n=this.getEncoder(t);return r=>{d(-1===e.count||e.count===r.length,`array length mismatch; expected length ${e.count}`,"value",r);let s=r.map(n);return this.#nt.has(t)&&(s=s.map(en)),en(x(s))}}const n=this.types[t];if(n){const e=Ms(this.#nt.get(t));return t=>{const r=n.map((({name:e,type:n})=>{const r=this.getEncoder(n)(t[e]);return this.#nt.has(n)?en(r):r}));return r.unshift(e),x(r)}}d(!1,`unknown type: ${t}`,"type",t)}encodeType(t){const e=this.#nt.get(t);return d(e,`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return en(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,n){if(So(t))return n(t,e);const r=Po(t).array;if(r)return d(-1===r.count||r.count===e.length,`array length mismatch; expected length ${r.count}`,"value",e),e.map((t=>this._visit(r.prefix,t,n)));const s=this.types[t];if(s)return s.reduce(((t,{name:r,type:s})=>(t[r]=this._visit(s,e[r],n),t)),{});d(!1,`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new Ro(t)}static getPrimaryType(t){return Ro.from(t).primaryType}static hashStruct(t,e,n){return Ro.from(e).hashStruct(t,n)}static hashDomain(t){const e=[];for(const n in t){if(null==t[n])continue;const r=ko[n];d(r,`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",t),e.push({name:n,type:r})}return e.sort(((t,e)=>To.indexOf(t.name)-To.indexOf(e.name))),Ro.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,n){return x(["0x1901",Ro.hashDomain(t),Ro.from(e).hash(n)])}static hash(t,e,n){return en(Ro.encode(t,e,n))}static async resolveNames(t,e,n,r){t=Object.assign({},t);for(const e in t)null==t[e]&&delete t[e];const s={};t.verifyingContract&&!E(t.verifyingContract,20)&&(s[t.verifyingContract]="0x");const i=Ro.from(e);i.visit(n,((t,e)=>("address"!==t||E(e,20)||(s[e]="0x"),e)));for(const t in s)s[t]=await r(t);return t.verifyingContract&&s[t.verifyingContract]&&(t.verifyingContract=s[t.verifyingContract]),{domain:t,value:n=i.visit(n,((t,e)=>"address"===t&&s[e]?s[e]:e))}}static getPayload(t,e,n){Ro.hashDomain(t);const r={},s=[];To.forEach((e=>{const n=t[e];null!=n&&(r[e]=xo[e](n),s.push({name:e,type:ko[e]}))}));const i=Ro.from(e);e=i.types;const o=Object.assign({},e);return d(null==o.EIP712Domain,"types must not contain EIP712Domain type","types.EIP712Domain",e),o.EIP712Domain=s,i.encode(n),{types:o,domain:r,primaryType:i.primaryType,message:i.visit(n,((t,e)=>{if(t.match(/^bytes(\d*)/))return N(A(e));if(t.match(/^u?int/))return L(e).toString();switch(t){case"address":return e.toLowerCase();case"bool":return!!e;case"string":return d("string"==typeof e,"invalid string","value",e),e}d(!1,"unsupported type","type",t)}))}}}function Io(t){const e=new Set;return t.forEach((t=>e.add(t))),Object.freeze(e)}const Co=Io("external public payable override".split(" ")),Bo="constant external internal payable private public pure view override",Do=Io(Bo.split(" ")),Uo="constructor error event fallback function receive struct",Lo=Io(Uo.split(" ")),Fo="calldata memory storage payable indexed",Mo=Io(Fo.split(" ")),_o=Io([Uo,Fo,"tuple returns",Bo].join(" ").split(" ")),Go={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},jo=new RegExp("^(\\s*)"),Ho=new RegExp("^([0-9]+)"),Ko=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),Vo=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),Qo=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");class Jo{#S;#it;get offset(){return this.#S}get length(){return this.#it.length-this.#S}constructor(t){this.#S=0,this.#it=t.slice()}clone(){return new Jo(this.#it)}reset(){this.#S=0}#ot(t=0,e=0){return new Jo(this.#it.slice(t,e).map((e=>Object.freeze(Object.assign({},e,{match:e.match-t,linkBack:e.linkBack-t,linkNext:e.linkNext-t})))))}popKeyword(t){const e=this.peek();if("KEYWORD"!==e.type||!t.has(e.text))throw new Error(`expected keyword ${e.text}`);return this.pop().text}popType(t){if(this.peek().type!==t){const e=this.peek();throw new Error(`expected ${t}; got ${e.type} ${JSON.stringify(e.text)}`)}return this.pop().text}popParen(){const t=this.peek();if("OPEN_PAREN"!==t.type)throw new Error("bad start");const e=this.#ot(this.#S+1,t.match+1);return this.#S=t.match+1,e}popParams(){const t=this.peek();if("OPEN_PAREN"!==t.type)throw new Error("bad start");const e=[];for(;this.#S<t.match-1;){const t=this.peek().linkNext;e.push(this.#ot(this.#S+1,t)),this.#S=t}return this.#S=t.match+1,e}peek(){if(this.#S>=this.#it.length)throw new Error("out-of-bounds");return this.#it[this.#S]}peekKeyword(t){const e=this.peekType("KEYWORD");return null!=e&&t.has(e)?e:null}peekType(t){if(0===this.length)return null;const e=this.peek();return e.type===t?e.text:null}pop(){const t=this.peek();return this.#S++,t}toString(){const t=[];for(let e=this.#S;e<this.#it.length;e++){const n=this.#it[e];t.push(`${n.type}:${n.text}`)}return`<TokenString ${t.join(" ")}>`}}function zo(t){const e=[],n=e=>{const n=i<t.length?JSON.stringify(t[i]):"$EOI";throw new Error(`invalid token ${n} at ${i}: ${e}`)};let r=[],s=[],i=0;for(;i<t.length;){let o=t.substring(i),a=o.match(jo);a&&(i+=a[1].length,o=t.substring(i));const c={depth:r.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:i,value:-1};e.push(c);let u=Go[o[0]]||"";if(u){if(c.type=u,c.text=o[0],i++,"OPEN_PAREN"===u)r.push(e.length-1),s.push(e.length-1);else if("CLOSE_PAREN"==u)0===r.length&&n("no matching open bracket"),c.match=r.pop(),e[c.match].match=e.length-1,c.depth--,c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1;else if("COMMA"===u)c.linkBack=s.pop(),e[c.linkBack].linkNext=e.length-1,s.push(e.length-1);else if("OPEN_BRACKET"===u)c.type="BRACKET";else if("CLOSE_BRACKET"===u){let t=e.pop().text;if(e.length>0&&"NUMBER"===e[e.length-1].type){const n=e.pop().text;t=n+t,e[e.length-1].value=G(n)}if(0===e.length||"BRACKET"!==e[e.length-1].type)throw new Error("missing opening bracket");e[e.length-1].text+=t}}else if(a=o.match(Ko),a){if(c.text=a[1],i+=c.text.length,_o.has(c.text)){c.type="KEYWORD";continue}if(c.text.match(Qo)){c.type="TYPE";continue}c.type="ID"}else{if(a=o.match(Ho),!a)throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${i}`);c.text=a[1],c.type="NUMBER",i+=c.text.length}}return new Jo(e.map((t=>Object.freeze(t))))}function Yo(t,e){let n=[];for(const r in e.keys())t.has(r)&&n.push(r);if(n.length>1)throw new Error(`conflicting types: ${n.join(", ")}`)}function qo(t,e){if(e.peekKeyword(Lo)){const n=e.pop().text;if(n!==t)throw new Error(`expected ${t}, got ${n}`)}return e.popType("ID")}function $o(t,e){const n=new Set;for(;;){const r=t.peekType("KEYWORD");if(null==r||e&&!e.has(r))break;if(t.pop(),n.has(r))throw new Error(`duplicate keywords: ${JSON.stringify(r)}`);n.add(r)}return Object.freeze(n)}function Wo(t){let e=$o(t,Do);return Yo(e,Io("constant payable nonpayable".split(" "))),Yo(e,Io("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function Zo(t,e){return t.popParams().map((t=>fa.from(t,e)))}function Xo(t){if(t.peekType("AT")){if(t.pop(),t.peekType("NUMBER"))return L(t.pop().text);throw new Error("invalid gas")}return null}function ta(t){if(t.length)throw new Error(`unexpected tokens at offset ${t.offset}: ${t.toString()}`)}const ea=new RegExp(/^(.*)\[([0-9]*)\]$/);function na(t){const e=t.match(Qo);if(d(e,"invalid type","type",t),"uint"===t)return"uint256";if("int"===t)return"int256";if(e[2]){const n=parseInt(e[2]);d(0!==n&&n<=32,"invalid bytes length","type",t)}else if(e[3]){const n=parseInt(e[3]);d(0!==n&&n<=256&&n%8==0,"invalid numeric width","type",t)}return t}const ra={},sa=Symbol.for("_ethers_internal"),ia="_ParamTypeInternal",oa="_ErrorInternal",aa="_EventInternal",ca="_ConstructorInternal",ua="_FallbackInternal",la="_FunctionInternal",ha="_StructInternal";class fa{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(t,e,n,r,s,i,o,a){if(w(t,ra,"ParamType"),Object.defineProperty(this,sa,{value:ia}),i&&(i=Object.freeze(i.slice())),"array"===r){if(null==o||null==a)throw new Error("")}else if(null!=o||null!=a)throw new Error("");if("tuple"===r){if(null==i)throw new Error("")}else if(null!=i)throw new Error("");c(this,{name:e,type:n,baseType:r,indexed:s,components:i,arrayLength:o,arrayChildren:a})}format(t){if(null==t&&(t="sighash"),"json"===t){const e=this.name||"";if(this.isArray()){const t=JSON.parse(this.arrayChildren.format("json"));return t.name=e,t.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(t)}const n={type:"tuple"===this.baseType?"tuple":this.type,name:e};return"boolean"==typeof this.indexed&&(n.indexed=this.indexed),this.isTuple()&&(n.components=this.components.map((e=>JSON.parse(e.format(t))))),JSON.stringify(n)}let e="";return this.isArray()?(e+=this.arrayChildren.format(t),e+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?e+="("+this.components.map((e=>e.format(t))).join("full"===t?", ":",")+")":e+=this.type,"sighash"!==t&&(!0===this.indexed&&(e+=" indexed"),"full"===t&&this.name&&(e+=" "+this.name)),e}isArray(){return"array"===this.baseType}isTuple(){return"tuple"===this.baseType}isIndexable(){return null!=this.indexed}walk(t,e){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(-1!==this.arrayLength&&t.length!==this.arrayLength)throw new Error("array is wrong length");const n=this;return t.map((t=>n.arrayChildren.walk(t,e)))}if(this.isTuple()){if(!Array.isArray(t))throw new Error("invalid tuple value");if(t.length!==this.components.length)throw new Error("array is wrong length");const n=this;return t.map(((t,r)=>n.components[r].walk(t,e)))}return e(this.type,t)}#at(t,e,n,r){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(-1!==this.arrayLength&&e.length!==this.arrayLength)throw new Error("array is wrong length");const s=this.arrayChildren,i=e.slice();return i.forEach(((e,r)=>{s.#at(t,e,n,(t=>{i[r]=t}))})),void r(i)}if(this.isTuple()){const s=this.components;let i;if(Array.isArray(e))i=e.slice();else{if(null==e||"object"!=typeof e)throw new Error("invalid tuple value");i=s.map((t=>{if(!t.name)throw new Error("cannot use object value with unnamed components");if(!(t.name in e))throw new Error(`missing value for component ${t.name}`);return e[t.name]}))}if(i.length!==this.components.length)throw new Error("array is wrong length");return i.forEach(((e,r)=>{s[r].#at(t,e,n,(t=>{i[r]=t}))})),void r(i)}const s=n(this.type,e);s.then?t.push(async function(){r(await s)}()):r(s)}async walkAsync(t,e){const n=[],r=[t];return this.#at(n,t,e,(t=>{r[0]=t})),n.length&&await Promise.all(n),r[0]}static from(t,e){if(fa.isParamType(t))return t;if("string"==typeof t)try{return fa.from(zo(t),e)}catch(e){d(!1,"invalid param type","obj",t)}else if(t instanceof Jo){let n="",r="",s=null;$o(t,Io(["tuple"])).has("tuple")||t.peekType("OPEN_PAREN")?(r="tuple",s=t.popParams().map((t=>fa.from(t))),n=`tuple(${s.map((t=>t.format())).join(",")})`):(n=na(t.popType("TYPE")),r=n);let i=null,o=null;for(;t.length&&t.peekType("BRACKET");){const e=t.pop();i=new fa(ra,"",n,r,null,s,o,i),o=e.value,n+=e.text,r="array",s=null}let a=null;if($o(t,Mo).has("indexed")){if(!e)throw new Error("");a=!0}const c=t.peekType("ID")?t.pop().text:"";if(t.length)throw new Error("leftover tokens");return new fa(ra,c,n,r,a,s,o,i)}const n=t.name;d(!n||"string"==typeof n&&n.match(Vo),"invalid name","obj.name",n);let r=t.indexed;null!=r&&(d(e,"parameter cannot be indexed","obj.indexed",t.indexed),r=!!r);let s=t.type,i=s.match(ea);if(i){const e=parseInt(i[2]||"-1"),o=fa.from({type:i[1],components:t.components});return new fa(ra,n||"",s,"array",r,null,e,o)}if("tuple"===s||s.startsWith("tuple(")||s.startsWith("(")){const e=null!=t.components?t.components.map((t=>fa.from(t))):null;return new fa(ra,n||"",s,"tuple",r,e,null,null)}return s=na(t.type),new fa(ra,n||"",s,s,r,null,null,null)}static isParamType(t){return t&&t[sa]===ia}}class pa{type;inputs;constructor(t,e,n){w(t,ra,"Fragment"),c(this,{type:e,inputs:n=Object.freeze(n.slice())})}static from(t){if("string"==typeof t){try{pa.from(JSON.parse(t))}catch(t){}return pa.from(zo(t))}if(t instanceof Jo){switch(t.peekKeyword(Lo)){case"constructor":return wa.from(t);case"error":return ya.from(t);case"event":return ma.from(t);case"fallback":case"receive":return ba.from(t);case"function":return Aa.from(t);case"struct":return va.from(t)}}else if("object"==typeof t){switch(t.type){case"constructor":return wa.from(t);case"error":return ya.from(t);case"event":return ma.from(t);case"fallback":case"receive":return ba.from(t);case"function":return Aa.from(t);case"struct":return va.from(t)}p(!1,`unsupported type: ${t.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}d(!1,"unsupported frgament object","obj",t)}static isConstructor(t){return wa.isFragment(t)}static isError(t){return ya.isFragment(t)}static isEvent(t){return ma.isFragment(t)}static isFunction(t){return Aa.isFragment(t)}static isStruct(t){return va.isFragment(t)}}class da extends pa{name;constructor(t,e,n,r){super(t,e,r),d("string"==typeof n&&n.match(Vo),"invalid identifier","name",n),r=Object.freeze(r.slice()),c(this,{name:n})}}function ga(t,e){return"("+e.map((e=>e.format(t))).join("full"===t?", ":",")+")"}class ya extends da{constructor(t,e,n){super(t,"error",e,n),Object.defineProperty(this,sa,{value:oa})}get selector(){return Ms(this.format("sighash")).substring(0,10)}format(t){if(null==t&&(t="sighash"),"json"===t)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});const e=[];return"sighash"!==t&&e.push("error"),e.push(this.name+ga(t,this.inputs)),e.join(" ")}static from(t){if(ya.isFragment(t))return t;if("string"==typeof t)return ya.from(zo(t));if(t instanceof Jo){const e=qo("error",t),n=Zo(t);return ta(t),new ya(ra,e,n)}return new ya(ra,t.name,t.inputs?t.inputs.map(fa.from):[])}static isFragment(t){return t&&t[sa]===oa}}class ma extends da{anonymous;constructor(t,e,n,r){super(t,"event",e,n),Object.defineProperty(this,sa,{value:aa}),c(this,{anonymous:r})}get topicHash(){return Ms(this.format("sighash"))}format(t){if(null==t&&(t="sighash"),"json"===t)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map((e=>JSON.parse(e.format(t))))});const e=[];return"sighash"!==t&&e.push("event"),e.push(this.name+ga(t,this.inputs)),"sighash"!==t&&this.anonymous&&e.push("anonymous"),e.join(" ")}static getTopicHash(t,e){e=(e||[]).map((t=>fa.from(t)));return new ma(ra,t,e,!1).topicHash}static from(t){if(ma.isFragment(t))return t;if("string"==typeof t)try{return ma.from(zo(t))}catch(e){d(!1,"invalid event fragment","obj",t)}else if(t instanceof Jo){const e=qo("event",t),n=Zo(t,!0),r=!!$o(t,Io(["anonymous"])).has("anonymous");return ta(t),new ma(ra,e,n,r)}return new ma(ra,t.name,t.inputs?t.inputs.map((t=>fa.from(t,!0))):[],!!t.anonymous)}static isFragment(t){return t&&t[sa]===aa}}class wa extends pa{payable;gas;constructor(t,e,n,r,s){super(t,e,n),Object.defineProperty(this,sa,{value:ca}),c(this,{payable:r,gas:s})}format(t){if(p(null!=t&&"sighash"!==t,"cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),"json"===t)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((e=>JSON.parse(e.format(t))))});const e=[`constructor${ga(t,this.inputs)}`];return this.payable&&e.push("payable"),null!=this.gas&&e.push(`@${this.gas.toString()}`),e.join(" ")}static from(t){if(wa.isFragment(t))return t;if("string"==typeof t)try{return wa.from(zo(t))}catch(e){d(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof Jo){$o(t,Io(["constructor"]));const e=Zo(t),n=!!$o(t,Co).has("payable"),r=Xo(t);return ta(t),new wa(ra,"constructor",e,n,r)}return new wa(ra,"constructor",t.inputs?t.inputs.map(fa.from):[],!!t.payable,null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[sa]===ca}}class ba extends pa{payable;constructor(t,e,n){super(t,"fallback",e),Object.defineProperty(this,sa,{value:ua}),c(this,{payable:n})}format(t){const e=0===this.inputs.length?"receive":"fallback";if("json"===t){const t=this.payable?"payable":"nonpayable";return JSON.stringify({type:e,stateMutability:t})}return`${e}()${this.payable?" payable":""}`}static from(t){if(ba.isFragment(t))return t;if("string"==typeof t)try{return ba.from(zo(t))}catch(e){d(!1,"invalid fallback fragment","obj",t)}else if(t instanceof Jo){const e=t.toString();d(t.peekKeyword(Io(["fallback","receive"])),"type must be fallback or receive","obj",e);if("receive"===t.popKeyword(Io(["fallback","receive"]))){const e=Zo(t);return d(0===e.length,"receive cannot have arguments","obj.inputs",e),$o(t,Io(["payable"])),ta(t),new ba(ra,[],!0)}let n=Zo(t);n.length?d(1===n.length&&"bytes"===n[0].type,"invalid fallback inputs","obj.inputs",n.map((t=>t.format("minimal"))).join(", ")):n=[fa.from("bytes")];const r=Wo(t);if(d("nonpayable"===r||"payable"===r,"fallback cannot be constants","obj.stateMutability",r),$o(t,Io(["returns"])).has("returns")){const e=Zo(t);d(1===e.length&&"bytes"===e[0].type,"invalid fallback outputs","obj.outputs",e.map((t=>t.format("minimal"))).join(", "))}return ta(t),new ba(ra,n,"payable"===r)}if("receive"===t.type)return new ba(ra,[],!0);if("fallback"===t.type){const e=[fa.from("bytes")],n="payable"===t.stateMutability;return new ba(ra,e,n)}d(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[sa]===ua}}class Aa extends da{constant;outputs;stateMutability;payable;gas;constructor(t,e,n,r,s,i){super(t,"function",e,r),Object.defineProperty(this,sa,{value:la});c(this,{constant:"view"===n||"pure"===n,gas:i,outputs:s=Object.freeze(s.slice()),payable:"payable"===n,stateMutability:n})}get selector(){return Ms(this.format("sighash")).substring(0,10)}format(t){if(null==t&&(t="sighash"),"json"===t)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((e=>JSON.parse(e.format(t)))),outputs:this.outputs.map((e=>JSON.parse(e.format(t))))});const e=[];return"sighash"!==t&&e.push("function"),e.push(this.name+ga(t,this.inputs)),"sighash"!==t&&("nonpayable"!==this.stateMutability&&e.push(this.stateMutability),this.outputs&&this.outputs.length&&(e.push("returns"),e.push(ga(t,this.outputs))),null!=this.gas&&e.push(`@${this.gas.toString()}`)),e.join(" ")}static getSelector(t,e){e=(e||[]).map((t=>fa.from(t)));return new Aa(ra,t,"view",e,[],null).selector}static from(t){if(Aa.isFragment(t))return t;if("string"==typeof t)try{return Aa.from(zo(t))}catch(e){d(!1,"invalid function fragment","obj",t)}else if(t instanceof Jo){const e=qo("function",t),n=Zo(t),r=Wo(t);let s=[];$o(t,Io(["returns"])).has("returns")&&(s=Zo(t));const i=Xo(t);return ta(t),new Aa(ra,e,r,n,s,i)}let e=t.stateMutability;return null==e&&(e="payable","boolean"==typeof t.constant?(e="view",t.constant||(e="payable","boolean"!=typeof t.payable||t.payable||(e="nonpayable"))):"boolean"!=typeof t.payable||t.payable||(e="nonpayable")),new Aa(ra,t.name,e,t.inputs?t.inputs.map(fa.from):[],t.outputs?t.outputs.map(fa.from):[],null!=t.gas?t.gas:null)}static isFragment(t){return t&&t[sa]===la}}class va extends da{constructor(t,e,n){super(t,"struct",e,n),Object.defineProperty(this,sa,{value:ha})}format(){throw new Error("@TODO")}static from(t){if("string"==typeof t)try{return va.from(zo(t))}catch(e){d(!1,"invalid struct fragment","obj",t)}else if(t instanceof Jo){const e=qo("struct",t),n=Zo(t);return ta(t),new va(ra,e,n)}return new va(ra,t.name,t.inputs?t.inputs.map(fa.from):[])}static isFragment(t){return t&&t[sa]===ha}}const Ea=new Map;Ea.set(0,"GENERIC_PANIC"),Ea.set(1,"ASSERT_FALSE"),Ea.set(17,"OVERFLOW"),Ea.set(18,"DIVIDE_BY_ZERO"),Ea.set(33,"ENUM_RANGE_ERROR"),Ea.set(34,"BAD_STORAGE_DATA"),Ea.set(49,"STACK_UNDERFLOW"),Ea.set(50,"ARRAY_RANGE_ERROR"),Ea.set(65,"OUT_OF_MEMORY"),Ea.set(81,"UNINITIALIZED_FUNCTION_CALL");const ka=new RegExp(/^bytes([0-9]*)$/),Ta=new RegExp(/^(u?int)([0-9]*)$/);let Na=null,xa=1024;class Sa{#ct(t){if(t.isArray())return new Ns(this.#ct(t.arrayChildren),t.arrayLength,t.name);if(t.isTuple())return new Fs(t.components.map((t=>this.#ct(t))),t.name);switch(t.baseType){case"address":return new vs(t.name);case"bool":return new xs(t.name);case"string":return new Ls(t.name);case"bytes":return new Os(t.name);case"":return new Is(t.name)}let e=t.type.match(Ta);if(e){let n=parseInt(e[2]||"256");return d(0!==n&&n<=256&&n%8==0,"invalid "+e[1]+" bit length","param",t),new Us(n/8,"int"===e[1],t.name)}if(e=t.type.match(ka),e){let n=parseInt(e[1]);return d(0!==n&&n<=32,"invalid bytes length","param",t),new Ps(n,t.name)}d(!1,"invalid type","type",t.type)}getDefaultValue(t){const e=t.map((t=>this.#ct(fa.from(t))));return new Fs(e,"_").defaultValue()}encode(t,e){g(e.length,t.length,"types/values length mismatch");const n=t.map((t=>this.#ct(fa.from(t)))),r=new Fs(n,"_"),s=new Ft;return r.encode(s,e),s.data}decode(t,e,n){const r=t.map((t=>this.#ct(fa.from(t))));return new Fs(r,"_").decode(new Mt(e,n,xa))}static _setDefaultMaxInflation(t){d("number"==typeof t&&Number.isInteger(t),"invalid defaultMaxInflation factor","value",t),xa=t}static defaultAbiCoder(){return null==Na&&(Na=new Sa),Na}static getBuiltinCallException(t,e,n){return function(t,e,n,r){let s="missing revert data",i=null,o=null;if(n){s="execution reverted";const t=A(n);if(n=N(n),0===t.length)s+=" (no data present; likely require(false) occurred",i="require(false)";else if(t.length%32!=4)s+=" (could not decode reason; invalid data length)";else if("0x08c379a0"===N(t.slice(0,4)))try{i=r.decode(["string"],t.slice(4))[0],o={signature:"Error(string)",name:"Error",args:[i]},s+=`: ${JSON.stringify(i)}`}catch(t){s+=" (could not decode reason; invalid string data)"}else if("0x4e487b71"===N(t.slice(0,4)))try{const e=Number(r.decode(["uint256"],t.slice(4))[0]);o={signature:"Panic(uint256)",name:"Panic",args:[e]},i=`Panic due to ${Ea.get(e)||"UNKNOWN"}(${e})`,s+=`: ${i}`}catch(t){s+=" (could not decode panic code)"}else s+=" (unknown custom error)"}const a={to:e.to?fs(e.to):null,data:e.data||"0x"};return e.from&&(a.from=fs(e.from)),f(s,"CALL_EXCEPTION",{action:t,data:n,reason:i,transaction:a,invocation:null,revert:o})}(t,e,n,Sa.defaultAbiCoder())}}class Oa{fragment;name;signature;topic;args;constructor(t,e,n){const r=t.name,s=t.format();c(this,{fragment:t,name:r,signature:s,topic:e,args:n})}}class Pa{fragment;name;args;signature;selector;value;constructor(t,e,n,r){const s=t.name,i=t.format();c(this,{fragment:t,name:s,args:n,signature:i,selector:e,value:r})}}class Ra{fragment;name;args;signature;selector;constructor(t,e,n){const r=t.name,s=t.format();c(this,{fragment:t,name:r,args:n,signature:s,selector:e})}}class Ia{hash;_isIndexed;static isIndexed(t){return!(!t||!t._isIndexed)}constructor(t){c(this,{hash:t,_isIndexed:!0})}}const Ca={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"},Ba={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:t=>`reverted with reason string ${JSON.stringify(t)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:t=>{let e="unknown panic code";return t>=0&&t<=255&&Ca[t.toString()]&&(e=Ca[t.toString()]),`reverted with panic code 0x${t.toString(16)} (${e})`}}};class Da{fragments;deploy;fallback;receive;#ut;#lt;#ht;#ft;constructor(t){let e=[];e="string"==typeof t?JSON.parse(t):t,this.#ht=new Map,this.#ut=new Map,this.#lt=new Map;const n=[];for(const t of e)try{n.push(pa.from(t))}catch(e){console.log(`[Warning] Invalid Fragment ${JSON.stringify(t)}:`,e.message)}c(this,{fragments:Object.freeze(n)});let r=null,s=!1;this.#ft=this.getAbiCoder(),this.fragments.forEach(((t,e)=>{let n;switch(t.type){case"constructor":return this.deploy?void console.log("duplicate definition - constructor"):void c(this,{deploy:t});case"fallback":return void(0===t.inputs.length?s=!0:(d(!r||t.payable!==r.payable,"conflicting fallback fragments",`fragments[${e}]`,t),r=t,s=r.payable));case"function":n=this.#ht;break;case"event":n=this.#lt;break;case"error":n=this.#ut;break;default:return}const i=t.format();n.has(i)||n.set(i,t)})),this.deploy||c(this,{deploy:wa.from("constructor()")}),c(this,{fallback:r,receive:s})}format(t){const e=t?"minimal":"full",n=this.fragments.map((t=>t.format(e)));return n}formatJson(){const t=this.fragments.map((t=>t.format("json")));return JSON.stringify(t.map((t=>JSON.parse(t))))}getAbiCoder(){return Sa.defaultAbiCoder()}#pt(t,e,n){if(E(t)){const e=t.toLowerCase();for(const t of this.#ht.values())if(e===t.selector)return t;return null}if(-1===t.indexOf("(")){const r=[];for(const[e,n]of this.#ht)e.split("(")[0]===t&&r.push(n);if(e){const t=e.length>0?e[e.length-1]:null;let n=e.length,s=!0;As.isTyped(t)&&"overrides"===t.type&&(s=!1,n--);for(let t=r.length-1;t>=0;t--){const e=r[t].inputs.length;e===n||s&&e===n-1||r.splice(t,1)}for(let t=r.length-1;t>=0;t--){const n=r[t].inputs;for(let s=0;s<e.length;s++)if(As.isTyped(e[s])){if(s>=n.length){if("overrides"===e[s].type)continue;r.splice(t,1);break}if(e[s].type!==n[s].baseType){r.splice(t,1);break}}}}if(1===r.length&&e&&e.length!==r[0].inputs.length){const t=e[e.length-1];(null==t||Array.isArray(t)||"object"!=typeof t)&&r.splice(0,1)}if(0===r.length)return null;if(r.length>1&&n){d(!1,`ambiguous function description (i.e. matches ${r.map((t=>JSON.stringify(t.format()))).join(", ")})`,"key",t)}return r[0]}const r=this.#ht.get(Aa.from(t).format());return r||null}getFunctionName(t){const e=this.#pt(t,null,!1);return d(e,"no matching function","key",t),e.name}hasFunction(t){return!!this.#pt(t,null,!1)}getFunction(t,e){return this.#pt(t,e||null,!0)}forEachFunction(t){const e=Array.from(this.#ht.keys());e.sort(((t,e)=>t.localeCompare(e)));for(let n=0;n<e.length;n++){const r=e[n];t(this.#ht.get(r),n)}}#dt(t,e,n){if(E(t)){const e=t.toLowerCase();for(const t of this.#lt.values())if(e===t.topicHash)return t;return null}if(-1===t.indexOf("(")){const r=[];for(const[e,n]of this.#lt)e.split("(")[0]===t&&r.push(n);if(e){for(let t=r.length-1;t>=0;t--)r[t].inputs.length<e.length&&r.splice(t,1);for(let t=r.length-1;t>=0;t--){const n=r[t].inputs;for(let s=0;s<e.length;s++)if(As.isTyped(e[s])&&e[s].type!==n[s].baseType){r.splice(t,1);break}}}if(0===r.length)return null;if(r.length>1&&n){d(!1,`ambiguous event description (i.e. matches ${r.map((t=>JSON.stringify(t.format()))).join(", ")})`,"key",t)}return r[0]}const r=this.#lt.get(ma.from(t).format());return r||null}getEventName(t){const e=this.#dt(t,null,!1);return d(e,"no matching event","key",t),e.name}hasEvent(t){return!!this.#dt(t,null,!1)}getEvent(t,e){return this.#dt(t,e||null,!0)}forEachEvent(t){const e=Array.from(this.#lt.keys());e.sort(((t,e)=>t.localeCompare(e)));for(let n=0;n<e.length;n++){const r=e[n];t(this.#lt.get(r),n)}}getError(t,e){if(E(t)){const e=t.toLowerCase();if(Ba[e])return ya.from(Ba[e].signature);for(const t of this.#ut.values())if(e===t.selector)return t;return null}if(-1===t.indexOf("(")){const e=[];for(const[n,r]of this.#ut)n.split("(")[0]===t&&e.push(r);if(0===e.length)return"Error"===t?ya.from("error Error(string)"):"Panic"===t?ya.from("error Panic(uint256)"):null;if(e.length>1){d(!1,`ambiguous error description (i.e. ${e.map((t=>JSON.stringify(t.format()))).join(", ")})`,"name",t)}return e[0]}if("Error(string)"===(t=ya.from(t).format()))return ya.from("error Error(string)");if("Panic(uint256)"===t)return ya.from("error Panic(uint256)");const n=this.#ut.get(t);return n||null}forEachError(t){const e=Array.from(this.#ut.keys());e.sort(((t,e)=>t.localeCompare(e)));for(let n=0;n<e.length;n++){const r=e[n];t(this.#ut.get(r),n)}}_decodeParams(t,e){return this.#ft.decode(t,e)}_encodeParams(t,e){return this.#ft.encode(t,e)}encodeDeploy(t){return this._encodeParams(this.deploy.inputs,t||[])}decodeErrorResult(t,e){if("string"==typeof t){const e=this.getError(t);d(e,"unknown error","fragment",t),t=e}return d(O(e,0,4)===t.selector,`data signature does not match error ${t.name}.`,"data",e),this._decodeParams(t.inputs,O(e,4))}encodeErrorResult(t,e){if("string"==typeof t){const e=this.getError(t);d(e,"unknown error","fragment",t),t=e}return x([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionData(t,e){if("string"==typeof t){const e=this.getFunction(t);d(e,"unknown function","fragment",t),t=e}return d(O(e,0,4)===t.selector,`data signature does not match function ${t.name}.`,"data",e),this._decodeParams(t.inputs,O(e,4))}encodeFunctionData(t,e){if("string"==typeof t){const e=this.getFunction(t);d(e,"unknown function","fragment",t),t=e}return x([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionResult(t,e){if("string"==typeof t){const e=this.getFunction(t);d(e,"unknown function","fragment",t),t=e}let n="invalid length for result data";const r=v(e);if(r.length%32==0)try{return this.#ft.decode(t.outputs,r)}catch(t){n="could not decode result data"}p(!1,n,"BAD_DATA",{value:N(r),info:{method:t.name,signature:t.format()}})}makeError(t,e){const n=A(t,"data"),r=Sa.getBuiltinCallException("call",e,n);if(r.message.startsWith("execution reverted (unknown custom error)")){const t=N(n.slice(0,4)),e=this.getError(t);if(e)try{const t=this.#ft.decode(e.inputs,n.slice(4));r.revert={name:e.name,signature:e.format(),args:t},r.reason=r.revert.signature,r.message=`execution reverted: ${r.reason}`}catch(t){r.message="execution reverted (coult not decode custom error)"}}const s=this.parseTransaction(e);return s&&(r.invocation={method:s.name,signature:s.signature,args:s.args}),r}encodeFunctionResult(t,e){if("string"==typeof t){const e=this.getFunction(t);d(e,"unknown function","fragment",t),t=e}return N(this.#ft.encode(t.outputs,e||[]))}encodeFilterTopics(t,e){if("string"==typeof t){const e=this.getEvent(t);d(e,"unknown event","eventFragment",t),t=e}p(e.length<=t.inputs.length,`too many arguments for ${t.format()}`,"UNEXPECTED_ARGUMENT",{count:e.length,expectedCount:t.inputs.length});const n=[];t.anonymous||n.push(t.topicHash);const r=(t,e)=>"string"===t.type?Ms(e):"bytes"===t.type?en(N(e)):("bool"===t.type&&"boolean"==typeof e?e=e?"0x01":"0x00":t.type.match(/^u?int/)?e=j(e):t.type.match(/^bytes/)?e=P(e,32,!1):"address"===t.type&&this.#ft.encode(["address"],[e]),R(N(e),32));for(e.forEach(((e,s)=>{const i=t.inputs[s];i.indexed?null==e?n.push(null):"array"===i.baseType||"tuple"===i.baseType?d(!1,"filtering with tuples or arrays not supported","contract."+i.name,e):Array.isArray(e)?n.push(e.map((t=>r(i,t)))):n.push(r(i,e)):d(null==e,"cannot filter non-indexed parameters; must be null","contract."+i.name,e)}));n.length&&null===n[n.length-1];)n.pop();return n}encodeEventLog(t,e){if("string"==typeof t){const e=this.getEvent(t);d(e,"unknown event","eventFragment",t),t=e}const n=[],r=[],s=[];return t.anonymous||n.push(t.topicHash),d(e.length===t.inputs.length,"event arguments/values mismatch","values",e),t.inputs.forEach(((t,i)=>{const o=e[i];if(t.indexed)if("string"===t.type)n.push(Ms(o));else if("bytes"===t.type)n.push(en(o));else{if("tuple"===t.baseType||"array"===t.baseType)throw new Error("not implemented");n.push(this.#ft.encode([t.type],[o]))}else r.push(t),s.push(o)})),{data:this.#ft.encode(r,s),topics:n}}decodeEventLog(t,e,n){if("string"==typeof t){const e=this.getEvent(t);d(e,"unknown event","eventFragment",t),t=e}if(null!=n&&!t.anonymous){const e=t.topicHash;d(E(n[0],32)&&n[0].toLowerCase()===e,"fragment/topic mismatch","topics[0]",n[0]),n=n.slice(1)}const r=[],s=[],i=[];t.inputs.forEach(((t,e)=>{t.indexed?"string"===t.type||"bytes"===t.type||"tuple"===t.baseType||"array"===t.baseType?(r.push(fa.from({type:"bytes32",name:t.name})),i.push(!0)):(r.push(t),i.push(!1)):(s.push(t),i.push(!1))}));const o=null!=n?this.#ft.decode(r,x(n)):null,a=this.#ft.decode(s,e,!0),c=[],u=[];let l=0,h=0;return t.inputs.forEach(((t,e)=>{let n=null;if(t.indexed)if(null==o)n=new Ia(null);else if(i[e])n=new Ia(o[h++]);else try{n=o[h++]}catch(t){n=t}else try{n=a[l++]}catch(t){n=t}c.push(n),u.push(t.name||null)})),Dt.fromItems(c,u)}parseTransaction(t){const e=A(t.data,"tx.data"),n=L(null!=t.value?t.value:0,"tx.value"),r=this.getFunction(N(e.slice(0,4)));if(!r)return null;const s=this.#ft.decode(r.inputs,e.slice(4));return new Pa(r,r.selector,s,n)}parseCallResult(t){throw new Error("@TODO")}parseLog(t){const e=this.getEvent(t.topics[0]);return!e||e.anonymous?null:new Oa(e,e.topicHash,this.decodeEventLog(e,t.data,t.topics))}parseError(t){const e=N(t),n=this.getError(O(e,0,4));if(!n)return null;const r=this.#ft.decode(n.inputs,O(e,4));return new Ra(n,n.selector,r)}static from(t){return t instanceof Da?t:"string"==typeof t?new Da(JSON.parse(t)):"function"==typeof t.formatJson?new Da(t.formatJson()):"function"==typeof t.format?new Da(t.format("json")):new Da(t)}}const Ua=BigInt(0);function La(t){return null==t?null:t}function Fa(t){return null==t?null:t.toString()}class Ma{gasPrice;maxFeePerGas;maxPriorityFeePerGas;constructor(t,e,n){c(this,{gasPrice:La(t),maxFeePerGas:La(e),maxPriorityFeePerGas:La(n)})}toJSON(){const{gasPrice:t,maxFeePerGas:e,maxPriorityFeePerGas:n}=this;return{_type:"FeeData",gasPrice:Fa(t),maxFeePerGas:Fa(e),maxPriorityFeePerGas:Fa(n)}}}function _a(t){const e={};t.to&&(e.to=t.to),t.from&&(e.from=t.from),t.data&&(e.data=N(t.data));const n="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const r of n)r in t&&null!=t[r]&&(e[r]=L(t[r],`request.${r}`));const r="type,nonce".split(/,/);for(const n of r)n in t&&null!=t[n]&&(e[n]=G(t[n],`request.${n}`));return t.accessList&&(e.accessList=Yi(t.accessList)),"blockTag"in t&&(e.blockTag=t.blockTag),"enableCcipRead"in t&&(e.enableCcipRead=!!t.enableCcipRead),"customData"in t&&(e.customData=t.customData),"blobVersionedHashes"in t&&t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes.slice()),"kzg"in t&&(e.kzg=t.kzg),"blobs"in t&&t.blobs&&(e.blobs=t.blobs.map((t=>k(t)?N(t):Object.assign({},t)))),e}class Ga{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#gt;constructor(t,e){this.#gt=t.transactions.map((t=>"string"!=typeof t?new Ka(t,e):t)),c(this,{provider:e,hash:La(t.hash),number:t.number,timestamp:t.timestamp,parentHash:t.parentHash,parentBeaconBlockRoot:t.parentBeaconBlockRoot,nonce:t.nonce,difficulty:t.difficulty,gasLimit:t.gasLimit,gasUsed:t.gasUsed,blobGasUsed:t.blobGasUsed,excessBlobGas:t.excessBlobGas,miner:t.miner,prevRandao:La(t.prevRandao),extraData:t.extraData,baseFeePerGas:La(t.baseFeePerGas),stateRoot:t.stateRoot,receiptsRoot:t.receiptsRoot})}get transactions(){return this.#gt.map((t=>"string"==typeof t?t:t.hash))}get prefetchedTransactions(){const t=this.#gt.slice();return 0===t.length?[]:(p("object"==typeof t[0],"transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),t)}toJSON(){const{baseFeePerGas:t,difficulty:e,extraData:n,gasLimit:r,gasUsed:s,hash:i,miner:o,prevRandao:a,nonce:c,number:u,parentHash:l,parentBeaconBlockRoot:h,stateRoot:f,receiptsRoot:p,timestamp:d,transactions:g}=this;return{_type:"Block",baseFeePerGas:Fa(t),difficulty:Fa(e),extraData:n,gasLimit:Fa(r),gasUsed:Fa(s),blobGasUsed:Fa(this.blobGasUsed),excessBlobGas:Fa(this.excessBlobGas),hash:i,miner:o,prevRandao:a,nonce:c,number:u,parentHash:l,timestamp:d,parentBeaconBlockRoot:h,stateRoot:f,receiptsRoot:p,transactions:g}}[Symbol.iterator](){let t=0;const e=this.transactions;return{next:()=>t<this.length?{value:e[t++],done:!1}:{value:void 0,done:!0}}}get length(){return this.#gt.length}get date(){return null==this.timestamp?null:new Date(1e3*this.timestamp)}async getTransaction(t){let e;if("number"==typeof t)e=this.#gt[t];else{const n=t.toLowerCase();for(const t of this.#gt){if("string"==typeof t){if(t!==n)continue;e=t;break}if(t.hash!==n){e=t;break}}}if(null==e)throw new Error("no such tx");return"string"==typeof e?await this.provider.getTransaction(e):e}getPrefetchedTransaction(t){const e=this.prefetchedTransactions;if("number"==typeof t)return e[t];t=t.toLowerCase();for(const n of e)if(n.hash===t)return n;d(!1,"no matching transaction","indexOrHash",t)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return{orphan:"drop-block",hash:(t=this).hash,number:t.number};var t}}class ja{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(t,e){this.provider=e;const n=Object.freeze(t.topics.slice());c(this,{transactionHash:t.transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,removed:t.removed,address:t.address,data:t.data,topics:n,index:t.index,transactionIndex:t.transactionIndex})}toJSON(){const{address:t,blockHash:e,blockNumber:n,data:r,index:s,removed:i,topics:o,transactionHash:a,transactionIndex:c}=this;return{_type:"log",address:t,blockHash:e,blockNumber:n,data:r,index:s,removed:i,topics:o,transactionHash:a,transactionIndex:c}}async getBlock(){const t=await this.provider.getBlock(this.blockHash);return p(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransaction(){const t=await this.provider.getTransaction(this.transactionHash);return p(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransactionReceipt(){const t=await this.provider.getTransactionReceipt(this.transactionHash);return p(!!t,"failed to find transaction receipt","UNKNOWN_ERROR",{}),t}removedEvent(){return{orphan:"drop-log",log:{transactionHash:(t=this).transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,address:t.address,data:t.data,topics:Object.freeze(t.topics.slice()),index:t.index}};var t}}class Ha{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#yt;constructor(t,e){this.#yt=Object.freeze(t.logs.map((t=>new ja(t,e))));let n=Ua;null!=t.effectiveGasPrice?n=t.effectiveGasPrice:null!=t.gasPrice&&(n=t.gasPrice),c(this,{provider:e,to:t.to,from:t.from,contractAddress:t.contractAddress,hash:t.hash,index:t.index,blockHash:t.blockHash,blockNumber:t.blockNumber,logsBloom:t.logsBloom,gasUsed:t.gasUsed,cumulativeGasUsed:t.cumulativeGasUsed,blobGasUsed:t.blobGasUsed,gasPrice:n,blobGasPrice:t.blobGasPrice,type:t.type,status:t.status,root:t.root})}get logs(){return this.#yt}toJSON(){const{to:t,from:e,contractAddress:n,hash:r,index:s,blockHash:i,blockNumber:o,logsBloom:a,logs:c,status:u,root:l}=this;return{_type:"TransactionReceipt",blockHash:i,blockNumber:o,contractAddress:n,cumulativeGasUsed:Fa(this.cumulativeGasUsed),from:e,gasPrice:Fa(this.gasPrice),blobGasUsed:Fa(this.blobGasUsed),blobGasPrice:Fa(this.blobGasPrice),gasUsed:Fa(this.gasUsed),hash:r,index:s,logs:c,logsBloom:a,root:l,status:u,to:t}}get length(){return this.logs.length}[Symbol.iterator](){let t=0;return{next:()=>t<this.length?{value:this.logs[t++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const t=await this.provider.getBlock(this.blockHash);if(null==t)throw new Error("TODO");return t}async getTransaction(){const t=await this.provider.getTransaction(this.hash);if(null==t)throw new Error("TODO");return t}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return Qa(this)}reorderedEvent(t){return p(!t||t.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),Va(this,t)}}class Ka{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;#mt;constructor(t,e){this.provider=e,this.blockNumber=null!=t.blockNumber?t.blockNumber:null,this.blockHash=null!=t.blockHash?t.blockHash:null,this.hash=t.hash,this.index=t.index,this.type=t.type,this.from=t.from,this.to=t.to||null,this.gasLimit=t.gasLimit,this.nonce=t.nonce,this.data=t.data,this.value=t.value,this.gasPrice=t.gasPrice,this.maxPriorityFeePerGas=null!=t.maxPriorityFeePerGas?t.maxPriorityFeePerGas:null,this.maxFeePerGas=null!=t.maxFeePerGas?t.maxFeePerGas:null,this.maxFeePerBlobGas=null!=t.maxFeePerBlobGas?t.maxFeePerBlobGas:null,this.chainId=t.chainId,this.signature=t.signature,this.accessList=null!=t.accessList?t.accessList:null,this.blobVersionedHashes=null!=t.blobVersionedHashes?t.blobVersionedHashes:null,this.#mt=-1}toJSON(){const{blockNumber:t,blockHash:e,index:n,hash:r,type:s,to:i,from:o,nonce:a,data:c,signature:u,accessList:l,blobVersionedHashes:h}=this;return{_type:"TransactionResponse",accessList:l,blockNumber:t,blockHash:e,blobVersionedHashes:h,chainId:Fa(this.chainId),data:c,from:o,gasLimit:Fa(this.gasLimit),gasPrice:Fa(this.gasPrice),hash:r,maxFeePerGas:Fa(this.maxFeePerGas),maxPriorityFeePerGas:Fa(this.maxPriorityFeePerGas),maxFeePerBlobGas:Fa(this.maxFeePerBlobGas),nonce:a,signature:u,to:i,index:n,type:s,value:Fa(this.value)}}async getBlock(){let t=this.blockNumber;if(null==t){const e=await this.getTransaction();e&&(t=e.blockNumber)}if(null==t)return null;const e=this.provider.getBlock(t);if(null==e)throw new Error("TODO");return e}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(null==this.blockNumber){const{tx:t,blockNumber:e}=await a({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return null==t||null==t.blockNumber?0:e-t.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(t,e){const n=null==t?1:t,r=null==e?0:e;let s=this.#mt,i=-1,o=-1===s;const c=async()=>{if(o)return null;const{blockNumber:t,nonce:e}=await a({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(e<this.nonce)return void(s=t);if(o)return null;const r=await this.getTransaction();if(!r||null==r.blockNumber)for(-1===i&&(i=s-3,i<this.#mt&&(i=this.#mt));i<=t;){if(o)return null;const e=await this.provider.getBlock(i,!0);if(null==e)return;for(const t of e)if(t===this.hash)return;for(let r=0;r<e.length;r++){const i=await e.getTransaction(r);if(i.from===this.from&&i.nonce===this.nonce){if(o)return null;const e=await this.provider.getTransactionReceipt(i.hash);if(null==e)return;if(t-e.blockNumber+1<n)return;let r="replaced";i.data===this.data&&i.to===this.to&&i.value===this.value?r="repriced":"0x"===i.data&&i.from===i.to&&i.value===Ua&&(r="cancelled"),p(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:"replaced"===r||"cancelled"===r,reason:r,replacement:i.replaceableTransaction(s),hash:i.hash,receipt:e})}}i++}},u=t=>{if(null==t||0!==t.status)return t;p(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:t.to,from:t.from,data:""},receipt:t})},h=await this.provider.getTransactionReceipt(this.hash);if(0===n)return u(h);if(h){if(await h.confirmations()>=n)return u(h)}else if(await c(),0===n)return null;const d=new Promise(((t,e)=>{const i=[],a=()=>{i.forEach((t=>t()))};if(i.push((()=>{o=!0})),r>0){const t=setTimeout((()=>{a(),e(f("wait for transaction timeout","TIMEOUT"))}),r);i.push((()=>{clearTimeout(t)}))}const h=async r=>{if(await r.confirmations()>=n){a();try{t(u(r))}catch(t){e(t)}}};if(i.push((()=>{this.provider.off(this.hash,h)})),this.provider.on(this.hash,h),s>=0){const t=async()=>{try{await c()}catch(t){if(l(t,"TRANSACTION_REPLACED"))return a(),void e(t)}o||this.provider.once("block",t)};i.push((()=>{this.provider.off("block",t)})),this.provider.once("block",t)}}));return await d}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 p(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Qa(this)}reorderedEvent(t){return p(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),p(!t||t.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),Va(this,t)}replaceableTransaction(t){d(Number.isInteger(t)&&t>=0,"invalid startBlock","startBlock",t);const e=new Ka(this,this.provider);return e.#mt=t,e}}function Va(t,e){return{orphan:"reorder-transaction",tx:t,other:e}}function Qa(t){return{orphan:"drop-transaction",tx:t}}class Ja extends ja{interface;fragment;args;constructor(t,e,n){super(t,t.provider);c(this,{args:e.decodeEventLog(n,t.data,t.topics),fragment:n,interface:e})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class za extends ja{error;constructor(t,e){super(t,t.provider),c(this,{error:e})}}class Ya extends Ha{#wt;constructor(t,e,n){super(n,e),this.#wt=t}get logs(){return super.logs.map((t=>{const e=t.topics.length?this.#wt.getEvent(t.topics[0]):null;if(e)try{return new Ja(t,this.#wt,e)}catch(e){return new za(t,e)}return t}))}}class qa extends Ka{#wt;constructor(t,e,n){super(n,e),this.#wt=t}async wait(t,e){const n=await super.wait(t,e);return null==n?null:new Ya(this.#wt,this.provider,n)}}class $a extends ${log;constructor(t,e,n,r){super(t,e,n),c(this,{log:r})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class Wa extends $a{constructor(t,e,n,r,s){super(t,e,n,new Ja(s,t.interface,r));c(this,{args:t.interface.decodeEventLog(r,this.log.data,this.log.topics),fragment:r})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const Za=BigInt(0);function Xa(t){return t&&"function"==typeof t.call}function tc(t){return t&&"function"==typeof t.estimateGas}function ec(t){return t&&"function"==typeof t.resolveName}function nc(t){return t&&"function"==typeof t.sendTransaction}function rc(t){if(null!=t){if(ec(t))return t;if(t.provider)return t.provider}}class sc{#bt;fragment;constructor(t,e,n){if(c(this,{fragment:e}),e.inputs.length<n.length)throw new Error("too many arguments");const r=ic(t.runner,"resolveName"),s=ec(r)?r:null;this.#bt=async function(){const r=await Promise.all(e.inputs.map(((t,e)=>null==n[e]?null:t.walkAsync(n[e],((t,e)=>"address"===t?Array.isArray(e)?Promise.all(e.map((t=>gs(t,s)))):gs(e,s):e)))));return t.interface.encodeFilterTopics(e,r)}()}getTopicFilter(){return this.#bt}}function ic(t,e){return null==t?null:"function"==typeof t[e]?t:t.provider&&"function"==typeof t.provider[e]?t.provider:null}function oc(t){return null==t?null:t.provider||null}async function ac(t,e){const n=As.dereference(t,"overrides");d("object"==typeof n,"invalid overrides parameter","overrides",t);const r=_a(n);return d(null==r.to||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",r.to),d(null==r.data||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",r.data),r.from&&(r.from=r.from),r}function cc(t){const e=async function(e){const n=await ac(e,["data"]);n.to=await t.getAddress(),n.from&&(n.from=await gs(n.from,rc(t.runner)));const r=t.interface,s=L(n.value||Za,"overrides.value")===Za,i="0x"===(n.data||"0x");!r.fallback||r.fallback.payable||!r.receive||i||s||d(!1,"cannot send data to receive or send value to non-payable fallback","overrides",e),d(r.fallback||i,"cannot send data to receive-only contract","overrides.data",n.data);return d(r.receive||r.fallback&&r.fallback.payable||s,"cannot send value to non-payable fallback","overrides.value",n.value),d(r.fallback||i,"cannot send data to receive-only contract","overrides.data",n.data),n},n=async function(n){const r=t.runner;p(nc(r),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await r.sendTransaction(await e(n)),i=oc(t.runner);return new qa(t.interface,i,s)},r=async t=>await n(t);return c(r,{_contract:t,estimateGas:async function(n){const r=ic(t.runner,"estimateGas");return p(tc(r),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await r.estimateGas(await e(n))},populateTransaction:e,send:n,staticCall:async function(n){const r=ic(t.runner,"call");p(Xa(r),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const s=await e(n);try{return await r.call(s)}catch(e){if(h(e)&&e.data)throw t.interface.makeError(e.data,s);throw e}}}),r}function uc(t,e){const n=function(...n){const r=t.interface.getFunction(e,n);return p(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:n}}),r},r=async function(...e){const r=n(...e);let s={};if(r.inputs.length+1===e.length&&(s=await ac(e.pop()),s.from&&(s.from=await gs(s.from,rc(t.runner)))),r.inputs.length!==e.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const i=await async function(t,e,n){const r=ic(t,"resolveName"),s=ec(r)?r:null;return await Promise.all(e.map(((t,e)=>t.walkAsync(n[e],((t,e)=>(e=As.dereference(e,t),"address"===t?gs(e,s):e))))))}(t.runner,r.inputs,e);return Object.assign({},s,await a({to:t.getAddress(),data:t.interface.encodeFunctionData(r,i)}))},s=async function(...t){const e=await o(...t);return 1===e.length?e[0]:e},i=async function(...e){const n=t.runner;p(nc(n),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const s=await n.sendTransaction(await r(...e)),i=oc(t.runner);return new qa(t.interface,i,s)},o=async function(...e){const s=ic(t.runner,"call");p(Xa(s),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const i=await r(...e);let o="0x";try{o=await s.call(i)}catch(e){if(h(e)&&e.data)throw t.interface.makeError(e.data,i);throw e}const a=n(...e);return t.interface.decodeFunctionResult(a,o)},u=async(...t)=>n(...t).constant?await s(...t):await i(...t);return c(u,{name:t.interface.getFunctionName(e),_contract:t,_key:e,getFragment:n,estimateGas:async function(...e){const n=ic(t.runner,"estimateGas");return p(tc(n),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await n.estimateGas(await r(...e))},populateTransaction:r,send:i,staticCall:s,staticCallResult:o}),Object.defineProperty(u,"fragment",{configurable:!1,enumerable:!0,get:()=>{const n=t.interface.getFunction(e);return p(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),n}}),u}const lc=Symbol.for("_ethersInternal_contract"),hc=new WeakMap;function fc(t){return hc.get(t[lc])}async function pc(t,e){let n,r=null;if(Array.isArray(e)){const r=function(e){if(E(e,32))return e;const n=t.interface.getEvent(e);return d(n,"unknown fragment","name",e),n.topicHash};n=e.map((t=>null==t?null:Array.isArray(t)?t.map(r):r(t)))}else"*"===e?n=[null]:"string"==typeof e?E(e,32)?n=[e]:(r=t.interface.getEvent(e),d(r,"unknown fragment","event",e),n=[r.topicHash]):(s=e)&&"object"==typeof s&&"getTopicFilter"in s&&"function"==typeof s.getTopicFilter&&s.fragment?n=await e.getTopicFilter():"fragment"in e?(r=e.fragment,n=[r.topicHash]):d(!1,"unknown event name","event",e);var s;n=n.map((t=>{if(null==t)return null;if(Array.isArray(t)){const e=Array.from(new Set(t.map((t=>t.toLowerCase()))).values());return 1===e.length?e[0]:(e.sort(),e)}return t.toLowerCase()}));return{fragment:r,tag:n.map((t=>null==t?"null":Array.isArray(t)?t.join("|"):t)).join("&"),topics:n}}async function dc(t,e){const{subs:n}=fc(t);return n.get((await pc(t,e)).tag)||null}async function gc(t,e,n){const r=oc(t.runner);p(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:s,tag:i,topics:o}=await pc(t,n),{addr:a,subs:c}=fc(t);let u=c.get(i);if(!u){const e={address:a||t,topics:o},l=e=>{let r=s;if(null==r)try{r=t.interface.getEvent(e.topics[0])}catch(t){}if(r){const i=r,o=s?t.interface.decodeEventLog(s,e.data,e.topics):[];mc(t,n,o,(r=>new Wa(t,r,n,i,e)))}else mc(t,n,[],(r=>new $a(t,r,n,e)))};let h=[];u={tag:i,listeners:[],start:()=>{h.length||h.push(r.on(e,l))},stop:async()=>{if(0==h.length)return;let t=h;h=[],await Promise.all(t),r.off(e,l)}},c.set(i,u)}return u}let yc=Promise.resolve();async function mc(t,e,n,r){try{await yc}catch(t){}const s=async function(t,e,n,r){await yc;const s=await dc(t,e);if(!s)return!1;const i=s.listeners.length;return s.listeners=s.listeners.filter((({listener:e,once:s})=>{const i=Array.from(n);r&&i.push(r(s?null:e));try{e.call(t,...i)}catch(t){}return!s})),0===s.listeners.length&&(s.stop(),fc(t).subs.delete(s.tag)),i>0}(t,e,n,r);return yc=s,await s}const wc=["then"];class bc{target;interface;runner;filters;[lc];fallback;constructor(t,e,n,r){d("string"==typeof t||ps(t),"invalid value for Contract target","target",t),null==n&&(n=null);const s=Da.from(e);let i;c(this,{target:t,runner:n,interface:s}),Object.defineProperty(this,lc,{value:{}});let o=null,a=null;if(r){const t=oc(n);a=new qa(this.interface,t,r)}let u=new Map;if("string"==typeof t)if(E(t))o=t,i=Promise.resolve(t);else{const e=ic(n,"resolveName");if(!ec(e))throw f("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});i=e.resolveName(t).then((e=>{if(null==e)throw f("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:t});return fc(this).addr=e,e}))}else i=t.getAddress().then((t=>{if(null==t)throw new Error("TODO");return fc(this).addr=t,t}));var h,p;h=this,p={addrPromise:i,addr:o,deployTx:a,subs:u},hc.set(h[lc],p);const g=new Proxy({},{get:(t,e,n)=>{if("symbol"==typeof e||wc.indexOf(e)>=0)return Reflect.get(t,e,n);try{return this.getEvent(e)}catch(t){if(!l(t,"INVALID_ARGUMENT")||"key"!==t.argument)throw t}},has:(t,e)=>wc.indexOf(e)>=0?Reflect.has(t,e):Reflect.has(t,e)||this.interface.hasEvent(String(e))});return c(this,{filters:g}),c(this,{fallback:s.receive||s.fallback?cc(this):null}),new Proxy(this,{get:(t,e,n)=>{if("symbol"==typeof e||e in t||wc.indexOf(e)>=0)return Reflect.get(t,e,n);try{return t.getFunction(e)}catch(t){if(!l(t,"INVALID_ARGUMENT")||"key"!==t.argument)throw t}},has:(t,e)=>"symbol"==typeof e||e in t||wc.indexOf(e)>=0?Reflect.has(t,e):t.interface.hasFunction(e)})}connect(t){return new bc(this.target,this.interface,t)}attach(t){return new bc(t,this.interface,this.runner)}async getAddress(){return await fc(this).addrPromise}async getDeployedCode(){const t=oc(this.runner);p(t,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const e=await t.getCode(await this.getAddress());return"0x"===e?null:e}async waitForDeployment(){const t=this.deploymentTransaction();if(t)return await t.wait(),this;if(null!=await this.getDeployedCode())return this;const e=oc(this.runner);return p(null!=e,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise(((t,n)=>{const r=async()=>{try{if(null!=await this.getDeployedCode())return t(this);e.once("block",r)}catch(t){n(t)}};r()}))}deploymentTransaction(){return fc(this).deployTx}getFunction(t){"string"!=typeof t&&(t=t.format());return uc(this,t)}getEvent(t){return"string"!=typeof t&&(t=t.format()),function(t,e){const n=function(...n){const r=t.interface.getEvent(e,n);return p(r,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:n}}),r},r=function(...e){return new sc(t,n(...e),e)};return c(r,{name:t.interface.getEventName(e),_contract:t,_key:e,getFragment:n}),Object.defineProperty(r,"fragment",{configurable:!1,enumerable:!0,get:()=>{const n=t.interface.getEvent(e);return p(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),n}}),r}(this,t)}async queryTransaction(t){throw new Error("@TODO")}async queryFilter(t,e,n){null==e&&(e=0),null==n&&(n="latest");const{addr:r,addrPromise:s}=fc(this),i=r||await s,{fragment:o,topics:a}=await pc(this,t),c={address:i,topics:a,fromBlock:e,toBlock:n},u=oc(this.runner);return p(u,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await u.getLogs(c)).map((t=>{let e=o;if(null==e)try{e=this.interface.getEvent(t.topics[0])}catch(t){}if(e)try{return new Ja(t,this.interface,e)}catch(e){return new za(t,e)}return new ja(t,u)}))}async on(t,e){const n=await gc(this,"on",t);return n.listeners.push({listener:e,once:!1}),n.start(),this}async once(t,e){const n=await gc(this,"once",t);return n.listeners.push({listener:e,once:!0}),n.start(),this}async emit(t,...e){return await mc(this,t,e,null)}async listenerCount(t){if(t){const e=await dc(this,t);return e?e.listeners.length:0}const{subs:e}=fc(this);let n=0;for(const{listeners:t}of e.values())n+=t.length;return n}async listeners(t){if(t){const e=await dc(this,t);return e?e.listeners.map((({listener:t})=>t)):[]}const{subs:e}=fc(this);let n=[];for(const{listeners:t}of e.values())n=n.concat(t.map((({listener:t})=>t)));return n}async off(t,e){const n=await dc(this,t);if(!n)return this;if(e){const t=n.listeners.map((({listener:t})=>t)).indexOf(e);t>=0&&n.listeners.splice(t,1)}return null!=e&&0!==n.listeners.length||(n.stop(),fc(this).subs.delete(n.tag)),this}async removeAllListeners(t){if(t){const e=await dc(this,t);if(!e)return this;e.stop(),fc(this).subs.delete(e.tag)}else{const{subs:t}=fc(this);for(const{tag:e,stop:n}of t.values())n(),t.delete(e)}return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return await this.off(t,e)}static buildClass(t){return class extends bc{constructor(e,n=null){super(e,t,n)}}}static from(t,e,n){null==n&&(n=null);return new this(t,e,n)}}let Ac=class extends(function(){return bc}()){};function vc(t){return t.match(/^ipfs:\/\/ipfs\//i)?t=t.substring(12):t.match(/^ipfs:\/\//i)?t=t.substring(7):d(!1,"unsupported IPFS format","link",t),`https://gateway.ipfs.io/ipfs/${t}`}class Ec{name;constructor(t){c(this,{name:t})}connect(t){return this}supportsCoinType(t){return!1}async encodeAddress(t,e){throw new Error("unsupported coin")}async decodeAddress(t,e){throw new Error("unsupported coin")}}const kc=new RegExp("^(ipfs)://(.*)$","i"),Tc=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),kc,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];class Nc{provider;address;name;#At;#vt;constructor(t,e,n){c(this,{provider:t,address:e,name:n}),this.#At=null,this.#vt=new Ac(e,["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)"],t)}async supportsWildcard(){return null==this.#At&&(this.#At=(async()=>{try{return await this.#vt.supportsInterface("0x9061b923")}catch(t){if(l(t,"CALL_EXCEPTION"))return!1;throw this.#At=null,t}})()),await this.#At}async#Et(t,e){e=(e||[]).slice();const n=this.#vt.interface;e.unshift(Qi(this.name));let r=null;await this.supportsWildcard()&&(r=n.getFunction(t),p(r,"missing fragment","UNKNOWN_ERROR",{info:{funcName:t}}),e=[Ji(this.name,255),n.encodeFunctionData(r,e)],t="resolve(bytes,bytes)"),e.push({enableCcipRead:!0});try{const s=await this.#vt[t](...e);return r?n.decodeFunctionResult(r,s)[0]:s}catch(t){if(!l(t,"CALL_EXCEPTION"))throw t}return null}async getAddress(t){if(null==t&&(t=60),60===t)try{const t=await this.#Et("addr(bytes32)");return null==t||t===qr?null:t}catch(t){if(l(t,"CALL_EXCEPTION"))return null;throw t}if(t>=0&&t<2147483648){let e=t+2147483648;const n=await this.#Et("addr(bytes32,uint)",[e]);if(E(n,20))return fs(n)}let e=null;for(const n of this.provider.plugins)if(n instanceof Ec&&n.supportsCoinType(t)){e=n;break}if(null==e)return null;const n=await this.#Et("addr(bytes32,uint)",[t]);if(null==n||"0x"===n)return null;const r=await e.decodeAddress(t,n);if(null!=r)return r;p(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${t})`,info:{coinType:t,data:n}})}async getText(t){const e=await this.#Et("text(bytes32,string)",[t]);return null==e||"0x"===e?null:e}async getContentHash(){const t=await this.#Et("contenthash(bytes32)");if(null==t||"0x"===t)return null;const e=t.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const t="e3010170"===e[1]?"ipfs":"ipns",n=parseInt(e[4],16);if(e[5].length===2*n)return`${t}://${q("0x"+e[2])}`}const n=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&64===n[1].length)return`bzz://${n[1]}`;p(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:t}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const t=[{type:"name",value:this.name}];try{const e=await this.getText("avatar");if(null==e)return t.push({type:"!avatar",value:""}),{url:null,linkage:t};t.push({type:"avatar",value:e});for(let n=0;n<Tc.length;n++){const r=e.match(Tc[n]);if(null==r)continue;const s=r[1].toLowerCase();switch(s){case"https":case"data":return t.push({type:"url",value:e}),{linkage:t,url:e};case"ipfs":{const n=vc(e);return t.push({type:"ipfs",value:e}),t.push({type:"url",value:n}),{linkage:t,url:n}}case"erc721":case"erc1155":{const n="erc721"===s?"tokenURI(uint256)":"uri(uint256)";t.push({type:s,value:e});const i=await this.getAddress();if(null==i)return t.push({type:"!owner",value:""}),{url:null,linkage:t};const o=(r[2]||"").split("/");if(2!==o.length)return t.push({type:`!${s}caip`,value:r[2]||""}),{url:null,linkage:t};const a=o[1],c=new Ac(o[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"===s){const e=await c.ownerOf(a);if(i!==e)return t.push({type:"!owner",value:e}),{url:null,linkage:t};t.push({type:"owner",value:e})}else if("erc1155"===s){const e=await c.balanceOf(i,a);if(!e)return t.push({type:"!balance",value:"0"}),{url:null,linkage:t};t.push({type:"balance",value:e.toString()})}let u=await c[n](a);if(null==u||"0x"===u)return t.push({type:"!metadata-url",value:""}),{url:null,linkage:t};t.push({type:"metadata-url-base",value:u}),"erc1155"===s&&(u=u.replace("{id}",j(a,32).substring(2)),t.push({type:"metadata-url-expanded",value:u})),u.match(/^ipfs:/i)&&(u=vc(u)),t.push({type:"metadata-url",value:u});let l={};const h=await new ft(u).send();h.assertOk();try{l=h.bodyJson}catch(e){try{t.push({type:"!metadata",value:h.bodyText})}catch(e){const n=h.body;return n&&t.push({type:"!metadata",value:N(n)}),{url:null,linkage:t}}return{url:null,linkage:t}}if(!l)return t.push({type:"!metadata",value:""}),{url:null,linkage:t};t.push({type:"metadata",value:JSON.stringify(l)});let f=l.image;if("string"!=typeof f)return t.push({type:"!imageUrl",value:""}),{url:null,linkage:t};if(f.match(/^(https:\/\/|data:)/i));else{if(null==f.match(kc))return t.push({type:"!imageUrl-ipfs",value:f}),{url:null,linkage:t};t.push({type:"imageUrl-ipfs",value:f}),f=vc(f)}return t.push({type:"url",value:f}),{linkage:t,url:f}}}}}catch(t){}return{linkage:t,url:null}}static async getEnsAddress(t){const e=await t.getNetwork(),n=e.getPlugin("org.ethers.plugins.network.Ens");return p(n,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:e}}),n.address}static async#kt(t,e){const n=await Nc.getEnsAddress(t);try{const r=new Ac(n,["function resolver(bytes32) view returns (address)"],t),s=await r.resolver(Qi(e),{enableCcipRead:!0});return s===qr?null:s}catch(t){throw t}return null}static async fromName(t,e){let n=e;for(;;){if(""===n||"."===n)return null;if("eth"!==e&&"eth"===n)return null;const r=await Nc.#kt(t,n);if(null!=r){const s=new Nc(t,r,e);return n===e||await s.supportsWildcard()?s:null}n=n.split(".").slice(1).join(".")}}}const xc=BigInt(0);function Sc(t,e){return function(n){return null==n?e:t(n)}}function Oc(t,e){return n=>{if(e&&null==n)return null;if(!Array.isArray(n))throw new Error("not an array");return n.map((e=>t(e)))}}function Pc(t,e){return n=>{const r={};for(const s in t){let i=s;if(e&&s in e&&!(i in n))for(const t of e[s])if(t in n){i=t;break}try{const e=t[s](n[i]);void 0!==e&&(r[s]=e)}catch(t){p(!1,`invalid value for value.${s} (${t instanceof Error?t.message:"not-an-error"})`,"BAD_DATA",{value:n})}}return r}}function Rc(t){return d(E(t,!0),"invalid data","value",t),t}function Ic(t){return d(E(t,32),"invalid hash","value",t),t}const Cc=Pc({address:fs,blockHash:Ic,blockNumber:G,data:Rc,index:G,removed:Sc((function(t){switch(t){case!0:case"true":return!0;case!1:case"false":return!1}d(!1,`invalid boolean; ${JSON.stringify(t)}`,"value",t)}),!1),topics:Oc(Ic),transactionHash:Ic,transactionIndex:G},{index:["logIndex"]});const Bc=Pc({hash:Sc(Ic),parentHash:Ic,parentBeaconBlockRoot:Sc(Ic,null),number:G,timestamp:G,nonce:Sc(Rc),difficulty:L,gasLimit:L,gasUsed:L,stateRoot:Sc(Ic,null),receiptsRoot:Sc(Ic,null),blobGasUsed:Sc(L,null),excessBlobGas:Sc(L,null),miner:Sc(fs),prevRandao:Sc(Ic,null),extraData:Rc,baseFeePerGas:Sc(L)},{prevRandao:["mixHash"]});const Dc=Pc({transactionIndex:G,blockNumber:G,transactionHash:Ic,address:fs,topics:Oc(Ic),data:Rc,index:G,blockHash:Ic},{index:["logIndex"]});const Uc=Pc({to:Sc(fs,null),from:Sc(fs,null),contractAddress:Sc(fs,null),index:G,root:Sc(N),gasUsed:L,blobGasUsed:Sc(L,null),logsBloom:Sc(Rc),blockHash:Ic,hash:Ic,logs:Oc((function(t){return Dc(t)})),blockNumber:G,cumulativeGasUsed:L,effectiveGasPrice:Sc(L),blobGasPrice:Sc(L,null),status:Sc(G),type:Sc(G,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function Lc(t){t.to&&L(t.to)===xc&&(t.to="0x0000000000000000000000000000000000000000");const e=Pc({hash:Ic,index:Sc(G,void 0),type:t=>"0x"===t||null==t?0:G(t),accessList:Sc(Yi,null),blobVersionedHashes:Sc(Oc(Ic,!0),null),blockHash:Sc(Ic,null),blockNumber:Sc(G,null),transactionIndex:Sc(G,null),from:fs,gasPrice:Sc(L),maxPriorityFeePerGas:Sc(L),maxFeePerGas:Sc(L),maxFeePerBlobGas:Sc(L,null),gasLimit:L,to:Sc(fs,null),value:L,nonce:G,data:Rc,creates:Sc(fs,null),chainId:Sc(L,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(t);if(null==e.to&&null==e.creates&&(e.creates=function(t){const e=fs(t.from);let n=L(t.nonce,"tx.nonce").toString(16);return n="0"===n?"0x":n.length%2?"0x0"+n:"0x"+n,fs(O(en(kt([e,n])),12))}(e)),1!==t.type&&2!==t.type||null!=t.accessList||(e.accessList=[]),t.signature?e.signature=is.from(t.signature):e.signature=is.from(t),null==e.chainId){const t=e.signature.legacyChainId;null!=t&&(e.chainId=t)}return e.blockHash&&L(e.blockHash)===xc&&(e.blockHash=null),e}class Fc{name;constructor(t){c(this,{name:t})}clone(){return new Fc(this.name)}}class Mc extends Fc{effectiveBlock;txBase;txCreate;txDataZero;txDataNonzero;txAccessListStorageKey;txAccessListAddress;constructor(t,e){null==t&&(t=0),super(`org.ethers.network.plugins.GasCost#${t||0}`);const n={effectiveBlock:t};function r(t,r){let s=(e||{})[t];null==s&&(s=r),d("number"==typeof s,`invalud value for ${t}`,"costs",e),n[t]=s}r("txBase",21e3),r("txCreate",32e3),r("txDataZero",4),r("txDataNonzero",16),r("txAccessListStorageKey",1900),r("txAccessListAddress",2400),c(this,n)}clone(){return new Mc(this.effectiveBlock,this)}}class _c extends Fc{address;targetNetwork;constructor(t,e){super("org.ethers.plugins.network.Ens"),c(this,{address:t||"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",targetNetwork:null==e?1:e})}clone(){return new _c(this.address,this.targetNetwork)}}class Gc extends Fc{#c;#Tt;get url(){return this.#c}get processFunc(){return this.#Tt}constructor(t,e){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),this.#c=t,this.#Tt=e}clone(){return this}}const jc=new Map;class Hc{#Nt;#z;#xt;constructor(t,e){this.#Nt=t,this.#z=L(e),this.#xt=new Map}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return this.#Nt}set name(t){this.#Nt=t}get chainId(){return this.#z}set chainId(t){this.#z=L(t,"chainId")}matches(t){if(null==t)return!1;if("string"==typeof t){try{return this.chainId===L(t)}catch(t){}return this.name===t}if("number"==typeof t||"bigint"==typeof t){try{return this.chainId===L(t)}catch(t){}return!1}if("object"==typeof t){if(null!=t.chainId){try{return this.chainId===L(t.chainId)}catch(t){}return!1}return null!=t.name&&this.name===t.name}return!1}get plugins(){return Array.from(this.#xt.values())}attachPlugin(t){if(this.#xt.get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return this.#xt.set(t.name,t.clone()),this}getPlugin(t){return this.#xt.get(t)||null}getPlugins(t){return this.plugins.filter((e=>e.name.split("#")[0]===t))}clone(){const t=new Hc(this.name,this.chainId);return this.plugins.forEach((e=>{t.attachPlugin(e.clone())})),t}computeIntrinsicGas(t){const e=this.getPlugin("org.ethers.plugins.network.GasCost")||new Mc;let n=e.txBase;if(null==t.to&&(n+=e.txCreate),t.data)for(let r=2;r<t.data.length;r+=2)"00"===t.data.substring(r,r+2)?n+=e.txDataZero:n+=e.txDataNonzero;if(t.accessList){const r=Yi(t.accessList);for(const t in r)n+=e.txAccessListAddress+e.txAccessListStorageKey*r[t].storageKeys.length}return n}static from(t){if(function(){if(Qc)return;function t(t,e,n){const r=function(){const r=new Hc(t,e);return null!=n.ensNetwork&&r.attachPlugin(new _c(null,n.ensNetwork)),r.attachPlugin(new Mc),(n.plugins||[]).forEach((t=>{r.attachPlugin(t)})),r};Hc.register(t,r),Hc.register(e,r),n.altNames&&n.altNames.forEach((t=>{Hc.register(t,r)}))}Qc=!0,t("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),t("ropsten",3,{ensNetwork:3}),t("rinkeby",4,{ensNetwork:4}),t("goerli",5,{ensNetwork:5}),t("kovan",42,{ensNetwork:42}),t("sepolia",11155111,{ensNetwork:11155111}),t("holesky",17e3,{ensNetwork:17e3}),t("classic",61,{}),t("classicKotti",6,{}),t("arbitrum",42161,{ensNetwork:1}),t("arbitrum-goerli",421613,{}),t("arbitrum-sepolia",421614,{}),t("base",8453,{ensNetwork:1}),t("base-goerli",84531,{}),t("base-sepolia",84532,{}),t("bnb",56,{ensNetwork:1}),t("bnbt",97,{}),t("linea",59144,{ensNetwork:1}),t("linea-goerli",59140,{}),t("linea-sepolia",59141,{}),t("matic",137,{ensNetwork:1,plugins:[Vc("https://gasstation.polygon.technology/v2")]}),t("matic-amoy",80002,{}),t("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[Vc("https://gasstation-testnet.polygon.technology/v2")]}),t("optimism",10,{ensNetwork:1,plugins:[]}),t("optimism-goerli",420,{}),t("optimism-sepolia",11155420,{}),t("xdai",100,{ensNetwork:1})}(),null==t)return Hc.from("mainnet");if("number"==typeof t&&(t=BigInt(t)),"string"==typeof t||"bigint"==typeof t){const e=jc.get(t);if(e)return e();if("bigint"==typeof t)return new Hc("unknown",t);d(!1,"unknown network","network",t)}if("function"==typeof t.clone){return t.clone()}if("object"==typeof t){d("string"==typeof t.name&&"number"==typeof t.chainId,"invalid network object name or chainId","network",t);const e=new Hc(t.name,t.chainId);return(t.ensAddress||null!=t.ensNetwork)&&e.attachPlugin(new _c(t.ensAddress,t.ensNetwork)),e}d(!1,"invalid network","network",t)}static register(t,e){"number"==typeof t&&(t=BigInt(t));const n=jc.get(t);n&&d(!1,`conflicting network for ${JSON.stringify(n.name)}`,"nameOrChainId",t),jc.set(t,e)}}function Kc(t,e){const n=String(t);if(!n.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${t}`);const r=n.split(".");if(1===r.length&&r.push(""),2!==r.length)throw new Error(`invalid gwei value: ${t}`);for(;r[1].length<e;)r[1]+="0";if(r[1].length>9){let t=BigInt(r[1].substring(0,9));r[1].substring(9).match(/^0+$/)||t++,r[1]=t.toString()}return BigInt(r[0]+r[1])}function Vc(t){return new Gc(t,(async(t,e,n)=>{let r;n.setHeader("User-Agent","ethers");try{const[e,s]=await Promise.all([n.send(),t()]);r=e;const i=r.bodyJson.standard;return{gasPrice:s.gasPrice,maxFeePerGas:Kc(i.maxFee,9),maxPriorityFeePerGas:Kc(i.maxPriorityFee,9)}}catch(t){p(!1,`error encountered with polygon gas station (${JSON.stringify(n.url)})`,"SERVER_ERROR",{request:n,response:r,error:t})}}))}let Qc=!1;function Jc(t){return JSON.parse(JSON.stringify(t))}class zc{#St;#Ot;#Pt;#Rt;constructor(t){this.#St=t,this.#Ot=null,this.#Pt=4e3,this.#Rt=-2}get pollingInterval(){return this.#Pt}set pollingInterval(t){this.#Pt=t}async#It(){try{const t=await this.#St.getBlockNumber();if(-2===this.#Rt)return void(this.#Rt=t);if(t!==this.#Rt){for(let e=this.#Rt+1;e<=t;e++){if(null==this.#Ot)return;await this.#St.emit("block",e)}this.#Rt=t}}catch(t){}null!=this.#Ot&&(this.#Ot=this.#St._setTimeout(this.#It.bind(this),this.#Pt))}start(){this.#Ot||(this.#Ot=this.#St._setTimeout(this.#It.bind(this),this.#Pt),this.#It())}stop(){this.#Ot&&(this.#St._clearTimeout(this.#Ot),this.#Ot=null)}pause(t){this.stop(),t&&(this.#Rt=-2)}resume(){this.start()}}class Yc{#St;#It;#Ct;constructor(t){this.#St=t,this.#Ct=!1,this.#It=t=>{this._poll(t,this.#St)}}async _poll(t,e){throw new Error("sub-classes must override this")}start(){this.#Ct||(this.#Ct=!0,this.#It(-2),this.#St.on("block",this.#It))}stop(){this.#Ct&&(this.#Ct=!1,this.#St.off("block",this.#It))}pause(t){this.stop()}resume(){this.start()}}class qc extends Yc{#Bt;#Dt;constructor(t,e){super(t),this.#Bt=e,this.#Dt=-2}pause(t){t&&(this.#Dt=-2),super.pause(t)}async _poll(t,e){const n=await e.getBlock(this.#Bt);null!=n&&(-2===this.#Dt?this.#Dt=n.number:n.number>this.#Dt&&(e.emit(this.#Bt,n.number),this.#Dt=n.number))}}class $c extends Yc{#bt;constructor(t,e){super(t),this.#bt=Jc(e)}async _poll(t,e){throw new Error("@TODO")}}class Wc extends Yc{#Ut;constructor(t,e){super(t),this.#Ut=e}async _poll(t,e){const n=await e.getTransactionReceipt(this.#Ut);n&&e.emit(this.#Ut,n)}}class Zc{#St;#bt;#Ot;#Ct;#Rt;constructor(t,e){this.#St=t,this.#bt=Jc(e),this.#Ot=this.#It.bind(this),this.#Ct=!1,this.#Rt=-2}async#It(t){if(-2===this.#Rt)return;const e=Jc(this.#bt);e.fromBlock=this.#Rt+1,e.toBlock=t;const n=await this.#St.getLogs(e);if(0!==n.length)for(const t of n)this.#St.emit(this.#bt,t),this.#Rt=t.blockNumber;else this.#Rt<t-60&&(this.#Rt=t-60)}start(){this.#Ct||(this.#Ct=!0,-2===this.#Rt&&this.#St.getBlockNumber().then((t=>{this.#Rt=t})),this.#St.on("block",this.#Ot))}stop(){this.#Ct&&(this.#Ct=!1,this.#St.off("block",this.#Ot))}pause(t){this.stop(),t&&(this.#Rt=-2)}resume(){this.start()}}const Xc=BigInt(2);function tu(t){return t&&"function"==typeof t.then}function eu(t,e){return t+":"+JSON.stringify(e,((t,e)=>{if(null==e)return"null";if("bigint"==typeof e)return`bigint:${e.toString()}`;if("string"==typeof e)return e.toLowerCase();if("object"==typeof e&&!Array.isArray(e)){const t=Object.keys(e);return t.sort(),t.reduce(((t,n)=>(t[n]=e[n],t)),{})}return e}))}class nu{name;constructor(t){c(this,{name:t})}start(){}stop(){}pause(t){}resume(){}}function ru(t){return(t=Array.from(new Set(t).values())).sort(),t}async function su(t,e){if(null==t)throw new Error("invalid event");if(Array.isArray(t)&&(t={topics:t}),"string"==typeof t)switch(t){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:t,tag:t}}if(E(t,32)){const e=t.toLowerCase();return{type:"transaction",tag:eu("tx",{hash:e}),hash:e}}if(t.orphan){const e=t;return{type:"orphan",tag:eu("orphan",e),filter:(n=e,JSON.parse(JSON.stringify(n)))}}var n;if(t.address||t.topics){const n=t,r={topics:(n.topics||[]).map((t=>null==t?null:Array.isArray(t)?ru(t.map((t=>t.toLowerCase()))):t.toLowerCase()))};if(n.address){const t=[],s=[],i=n=>{E(n)?t.push(n):s.push((async()=>{t.push(await gs(n,e))})())};Array.isArray(n.address)?n.address.forEach(i):i(n.address),s.length&&await Promise.all(s),r.address=ru(t.map((t=>t.toLowerCase())))}return{filter:r,tag:eu("event",r),type:"event"}}d(!1,"unknown ProviderEvent","event",t)}function iu(){return(new Date).getTime()}const ou={cacheTimeout:250,pollingInterval:4e3};class au{#Lt;#xt;#Ft;#Mt;#_t;#Gt;#jt;#Ht;#Kt;#Vt;#Qt;#M;constructor(t,e){if(this.#M=Object.assign({},ou,e||{}),"any"===t)this.#Gt=!0,this.#_t=null;else if(t){const e=Hc.from(t);this.#Gt=!1,this.#_t=Promise.resolve(e),setTimeout((()=>{this.emit("network",e,null)}),0)}else this.#Gt=!1,this.#_t=null;this.#Ht=-1,this.#jt=new Map,this.#Lt=new Map,this.#xt=new Map,this.#Ft=null,this.#Mt=!1,this.#Kt=1,this.#Vt=new Map,this.#Qt=!1}get pollingInterval(){return this.#M.pollingInterval}get provider(){return this}get plugins(){return Array.from(this.#xt.values())}attachPlugin(t){if(this.#xt.get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return this.#xt.set(t.name,t.connect(this)),this}getPlugin(t){return this.#xt.get(t)||null}get disableCcipRead(){return this.#Qt}set disableCcipRead(t){this.#Qt=!!t}async#Jt(t){const e=this.#M.cacheTimeout;if(e<0)return await this._perform(t);const n=eu(t.method,t);let r=this.#jt.get(n);return r||(r=this._perform(t),this.#jt.set(n,r),setTimeout((()=>{this.#jt.get(n)===r&&this.#jt.delete(n)}),e)),await r}async ccipReadFetch(t,e,n){if(this.disableCcipRead||0===n.length||null==t.to)return null;const r=t.to.toLowerCase(),s=e.toLowerCase(),i=[];for(let e=0;e<n.length;e++){const o=n[e],a=o.replace("{sender}",r).replace("{data}",s),c=new ft(a);-1===o.indexOf("{data}")&&(c.body={data:s,sender:r}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:c,index:e,urls:n});let u,l="unknown error";try{u=await c.send()}catch(t){i.push(t.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:c,result:{error:t}});continue}try{const t=u.bodyJson;if(t.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:c,result:t}),t.data;t.message&&(l=t.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:c,result:t})}catch(t){}p(u.statusCode<400||u.statusCode>=500,`response not found during CCIP fetch: ${l}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:t,info:{url:o,errorMessage:l}}),i.push(l)}p(!1,`error encountered during CCIP fetch: ${i.map((t=>JSON.stringify(t))).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:t,info:{urls:n,errorMessages:i}})}_wrapBlock(t,e){return new Ga(function(t){const e=Bc(t);return e.transactions=t.transactions.map((t=>"string"==typeof t?t:Lc(t))),e}(t),this)}_wrapLog(t,e){return new ja(function(t){return Cc(t)}(t),this)}_wrapTransactionReceipt(t,e){return new Ha(function(t){return Uc(t)}(t),this)}_wrapTransactionResponse(t,e){return new Ka(Lc(t),this)}_detectNetwork(){p(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(t){p(!1,`unsupported method: ${t.method}`,"UNSUPPORTED_OPERATION",{operation:t.method,info:t})}async getBlockNumber(){const t=G(await this.#Jt({method:"getBlockNumber"}),"%response");return this.#Ht>=0&&(this.#Ht=t),t}_getAddress(t){return gs(t,this)}_getBlockTag(t){if(null==t)return"latest";switch(t){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return t}return E(t)?E(t,32)?t:K(t):("bigint"==typeof t&&(t=G(t,"blockTag")),"number"==typeof t?t>=0?K(t):this.#Ht>=0?K(this.#Ht+t):this.getBlockNumber().then((e=>K(e+t))):void d(!1,"invalid blockTag","blockTag",t))}_getFilter(t){const e=(t.topics||[]).map((t=>null==t?null:Array.isArray(t)?ru(t.map((t=>t.toLowerCase()))):t.toLowerCase())),n="blockHash"in t?t.blockHash:void 0,r=(t,r,s)=>{let i;switch(t.length){case 0:break;case 1:i=t[0];break;default:t.sort(),i=t}if(n&&(null!=r||null!=s))throw new Error("invalid filter");const o={};return i&&(o.address=i),e.length&&(o.topics=e),r&&(o.fromBlock=r),s&&(o.toBlock=s),n&&(o.blockHash=n),o};let s,i,o=[];if(t.address)if(Array.isArray(t.address))for(const e of t.address)o.push(this._getAddress(e));else o.push(this._getAddress(t.address));return"fromBlock"in t&&(s=this._getBlockTag(t.fromBlock)),"toBlock"in t&&(i=this._getBlockTag(t.toBlock)),o.filter((t=>"string"!=typeof t)).length||null!=s&&"string"!=typeof s||null!=i&&"string"!=typeof i?Promise.all([Promise.all(o),s,i]).then((t=>r(t[0],t[1],t[2]))):r(o,s,i)}_getTransactionRequest(t){const e=_a(t),n=[];if(["to","from"].forEach((t=>{if(null==e[t])return;const r=gs(e[t],this);tu(r)?n.push(async function(){e[t]=await r}()):e[t]=r})),null!=e.blockTag){const t=this._getBlockTag(e.blockTag);tu(t)?n.push(async function(){e.blockTag=await t}()):e.blockTag=t}return n.length?async function(){return await Promise.all(n),e}():e}async getNetwork(){if(null==this.#_t){const t=(async()=>{try{const t=await this._detectNetwork();return this.emit("network",t,null),t}catch(e){throw this.#_t===t&&(this.#_t=null),e}})();return this.#_t=t,(await t).clone()}const t=this.#_t,[e,n]=await Promise.all([t,this._detectNetwork()]);return e.chainId!==n.chainId&&(this.#Gt?(this.emit("network",n,e),this.#_t===t&&(this.#_t=Promise.resolve(n))):p(!1,`network changed: ${e.chainId} => ${n.chainId} `,"NETWORK_ERROR",{event:"changed"})),e.clone()}async getFeeData(){const t=await this.getNetwork(),e=async()=>{const{_block:e,gasPrice:n,priorityFee:r}=await a({_block:this.#zt("latest",!1),gasPrice:(async()=>{try{return L(await this.#Jt({method:"getGasPrice"}),"%response")}catch(t){}return null})(),priorityFee:(async()=>{try{return L(await this.#Jt({method:"getPriorityFee"}),"%response")}catch(t){}return null})()});let s=null,i=null;const o=this._wrapBlock(e,t);return o&&o.baseFeePerGas&&(i=null!=r?r:BigInt("1000000000"),s=o.baseFeePerGas*Xc+i),new Ma(n,s,i)},n=t.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(n){const t=new ft(n.url),r=await n.processFunc(e,this,t);return new Ma(r.gasPrice,r.maxFeePerGas,r.maxPriorityFeePerGas)}return await e()}async estimateGas(t){let e=this._getTransactionRequest(t);return tu(e)&&(e=await e),L(await this.#Jt({method:"estimateGas",transaction:e}),"%response")}async#Yt(t,e,n){p(n<10,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},t,{blockTag:e,enableCcipRead:!0})});const r=_a(t);try{return N(await this._perform({method:"call",transaction:r,blockTag:e}))}catch(t){if(!this.disableCcipRead&&h(t)&&t.data&&n>=0&&"latest"===e&&null!=r.to&&"0x556f1830"===O(t.data,0,4)){const s=t.data,i=await gs(r.to,this);let o;try{o=function(t){const e={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};p(S(t)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const n=O(t,0,32);p(O(n,0,12)===O(du,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),e.sender=O(n,12);try{const n=[],r=G(O(t,32,64)),s=G(O(t,r,r+32)),i=O(t,r+32);for(let t=0;t<s;t++){const e=cu(i,32*t);if(null==e)throw new Error("abort");n.push(e)}e.urls=n}catch(t){p(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const n=uu(t,64);if(null==n)throw new Error("abort");e.calldata=n}catch(t){p(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}p(O(t,100,128)===O(du,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),e.selector=O(t,96,100);try{const n=uu(t,128);if(null==n)throw new Error("abort");e.extraData=n}catch(t){p(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return e.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map((t=>e[t])),e}(O(t.data,4))}catch(t){p(!1,t.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:r,info:{data:s}})}p(o.sender.toLowerCase()===i.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:s,reason:"OffchainLookup",transaction:r,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:o.errorArgs}});const a=await this.ccipReadFetch(r,o.calldata,o.urls);p(null!=a,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:r,info:{data:t.data,errorArgs:o.errorArgs}});const c={to:i,data:x([o.selector,pu([a,o.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:c});try{const t=await this.#Yt(c,e,n+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},c),result:t}),t}catch(t){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},c),error:t}),t}}throw t}}async#qt(t){const{value:e}=await a({network:this.getNetwork(),value:t});return e}async call(t){const{tx:e,blockTag:n}=await a({tx:this._getTransactionRequest(t),blockTag:this._getBlockTag(t.blockTag)});return await this.#qt(this.#Yt(e,n,t.enableCcipRead?0:-1))}async#$t(t,e,n){let r=this._getAddress(e),s=this._getBlockTag(n);return"string"==typeof r&&"string"==typeof s||([r,s]=await Promise.all([r,s])),await this.#qt(this.#Jt(Object.assign(t,{address:r,blockTag:s})))}async getBalance(t,e){return L(await this.#$t({method:"getBalance"},t,e),"%response")}async getTransactionCount(t,e){return G(await this.#$t({method:"getTransactionCount"},t,e),"%response")}async getCode(t,e){return N(await this.#$t({method:"getCode"},t,e))}async getStorage(t,e,n){const r=L(e,"position");return N(await this.#$t({method:"getStorage",position:r},t,n))}async broadcastTransaction(t){const{blockNumber:e,hash:n,network:r}=await a({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:t}),network:this.getNetwork()}),s=po.from(t);if(s.hash!==n)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(s,r).replaceableTransaction(e)}async#zt(t,e){if(E(t,32))return await this.#Jt({method:"getBlock",blockHash:t,includeTransactions:e});let n=this._getBlockTag(t);return"string"!=typeof n&&(n=await n),await this.#Jt({method:"getBlock",blockTag:n,includeTransactions:e})}async getBlock(t,e){const{network:n,params:r}=await a({network:this.getNetwork(),params:this.#zt(t,!!e)});return null==r?null:this._wrapBlock(r,n)}async getTransaction(t){const{network:e,params:n}=await a({network:this.getNetwork(),params:this.#Jt({method:"getTransaction",hash:t})});return null==n?null:this._wrapTransactionResponse(n,e)}async getTransactionReceipt(t){const{network:e,params:n}=await a({network:this.getNetwork(),params:this.#Jt({method:"getTransactionReceipt",hash:t})});if(null==n)return null;if(null==n.gasPrice&&null==n.effectiveGasPrice){const e=await this.#Jt({method:"getTransaction",hash:t});if(null==e)throw new Error("report this; could not find tx or effectiveGasPrice");n.effectiveGasPrice=e.gasPrice}return this._wrapTransactionReceipt(n,e)}async getTransactionResult(t){const{result:e}=await a({network:this.getNetwork(),result:this.#Jt({method:"getTransactionResult",hash:t})});return null==e?null:N(e)}async getLogs(t){let e=this._getFilter(t);tu(e)&&(e=await e);const{network:n,params:r}=await a({network:this.getNetwork(),params:this.#Jt({method:"getLogs",filter:e})});return r.map((t=>this._wrapLog(t,n)))}_getProvider(t){p(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(t){return await Nc.fromName(this,t)}async getAvatar(t){const e=await this.getResolver(t);return e?await e.getAvatar():null}async resolveName(t){const e=await this.getResolver(t);return e?await e.getAddress():null}async lookupAddress(t){const e=Qi((t=fs(t)).substring(2).toLowerCase()+".addr.reverse");try{const n=await Nc.getEnsAddress(this),r=new Ac(n,["function resolver(bytes32) view returns (address)"],this),s=await r.resolver(e);if(null==s||s===qr)return null;const i=new Ac(s,["function name(bytes32) view returns (string)"],this),o=await i.name(e);return await this.resolveName(o)!==t?null:o}catch(t){if(l(t,"BAD_DATA")&&"0x"===t.value)return null;if(l(t,"CALL_EXCEPTION"))return null;throw t}return null}async waitForTransaction(t,e,n){const r=null!=e?e:1;return 0===r?this.getTransactionReceipt(t):new Promise((async(e,s)=>{let i=null;const o=async n=>{try{const s=await this.getTransactionReceipt(t);if(null!=s&&n-s.blockNumber+1>=r)return e(s),void(i&&(clearTimeout(i),i=null))}catch(t){console.log("EEE",t)}this.once("block",o)};null!=n&&(i=setTimeout((()=>{null!=i&&(i=null,this.off("block",o),s(f("timeout","TIMEOUT",{reason:"timeout"})))}),n)),o(await this.getBlockNumber())}))}async waitForBlock(t){p(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(t){const e=this.#Vt.get(t);e&&(e.timer&&clearTimeout(e.timer),this.#Vt.delete(t))}_setTimeout(t,e){null==e&&(e=0);const n=this.#Kt++,r=()=>{this.#Vt.delete(n),t()};if(this.paused)this.#Vt.set(n,{timer:null,func:r,time:e});else{const t=setTimeout(r,e);this.#Vt.set(n,{timer:t,func:r,time:iu()})}return n}_forEachSubscriber(t){for(const e of this.#Lt.values())t(e.subscriber)}_getSubscriber(t){switch(t.type){case"debug":case"error":case"network":return new nu(t.type);case"block":{const t=new zc(this);return t.pollingInterval=this.pollingInterval,t}case"safe":case"finalized":return new qc(this,t.type);case"event":return new Zc(this,t.filter);case"transaction":return new Wc(this,t.hash);case"orphan":return new $c(this,t.filter)}throw new Error(`unsupported event: ${t.type}`)}_recoverSubscriber(t,e){for(const n of this.#Lt.values())if(n.subscriber===t){n.started&&n.subscriber.stop(),n.subscriber=e,n.started&&e.start(),null!=this.#Ft&&e.pause(this.#Ft);break}}async#Wt(t,e){let n=await su(t,this);return"event"===n.type&&e&&e.length>0&&!0===e[0].removed&&(n=await su({orphan:"drop-log",log:e[0]},this)),this.#Lt.get(n.tag)||null}async#Zt(t){const e=await su(t,this),n=e.tag;let r=this.#Lt.get(n);if(!r){r={subscriber:this._getSubscriber(e),tag:n,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},this.#Lt.set(n,r)}return r}async on(t,e){const n=await this.#Zt(t);return n.listeners.push({listener:e,once:!1}),n.started||(n.subscriber.start(),n.started=!0,null!=this.#Ft&&n.subscriber.pause(this.#Ft)),this}async once(t,e){const n=await this.#Zt(t);return n.listeners.push({listener:e,once:!0}),n.started||(n.subscriber.start(),n.started=!0,null!=this.#Ft&&n.subscriber.pause(this.#Ft)),this}async emit(t,...e){const n=await this.#Wt(t,e);if(!n||0===n.listeners.length)return!1;const r=n.listeners.length;return n.listeners=n.listeners.filter((({listener:n,once:r})=>{const s=new $(this,r?null:n,t);try{n.call(this,...e,s)}catch(t){}return!r})),0===n.listeners.length&&(n.started&&n.subscriber.stop(),this.#Lt.delete(n.tag)),r>0}async listenerCount(t){if(t){const e=await this.#Wt(t);return e?e.listeners.length:0}let e=0;for(const{listeners:t}of this.#Lt.values())e+=t.length;return e}async listeners(t){if(t){const e=await this.#Wt(t);return e?e.listeners.map((({listener:t})=>t)):[]}let e=[];for(const{listeners:t}of this.#Lt.values())e=e.concat(t.map((({listener:t})=>t)));return e}async off(t,e){const n=await this.#Wt(t);if(!n)return this;if(e){const t=n.listeners.map((({listener:t})=>t)).indexOf(e);t>=0&&n.listeners.splice(t,1)}return e&&0!==n.listeners.length||(n.started&&n.subscriber.stop(),this.#Lt.delete(n.tag)),this}async removeAllListeners(t){if(t){const{tag:e,started:n,subscriber:r}=await this.#Zt(t);n&&r.stop(),this.#Lt.delete(e)}else for(const[t,{started:e,subscriber:n}]of this.#Lt)e&&n.stop(),this.#Lt.delete(t);return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return this.off(t,e)}get destroyed(){return this.#Mt}destroy(){this.removeAllListeners();for(const t of this.#Vt.keys())this._clearTimeout(t);this.#Mt=!0}get paused(){return null!=this.#Ft}set paused(t){!!t!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(t){if(this.#Ht=-1,null!=this.#Ft){if(this.#Ft==!!t)return;p(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber((e=>e.pause(t))),this.#Ft=!!t;for(const t of this.#Vt.values())t.timer&&clearTimeout(t.timer),t.time=iu()-t.time}resume(){if(null!=this.#Ft){this._forEachSubscriber((t=>t.resume())),this.#Ft=null;for(const t of this.#Vt.values()){let e=t.time;e<0&&(e=0),t.time=iu(),setTimeout(t.func,e)}}}}function cu(t,e){try{const n=uu(t,e);if(n)return tt(n)}catch(t){}return null}function uu(t,e){if("0x"===t)return null;try{const n=G(O(t,e,e+32)),r=G(O(t,n,n+32));return O(t,n+32,n+32+r)}catch(t){}return null}function lu(t){const e=H(t);if(e.length>32)throw new Error("internal; should not happen");const n=new Uint8Array(32);return n.set(e,32-e.length),n}function hu(t){if(t.length%32==0)return t;const e=new Uint8Array(32*Math.ceil(t.length/32));return e.set(t),e}const fu=new Uint8Array([]);function pu(t){const e=[];let n=0;for(let r=0;r<t.length;r++)e.push(fu),n+=32;for(let r=0;r<t.length;r++){const s=A(t[r]);e[r]=lu(n),e.push(lu(s.length)),e.push(hu(s)),n+=32+32*Math.ceil(s.length/32)}return x(e)}const du="0x0000000000000000000000000000000000000000000000000000000000000000";function gu(t,e){if(t.provider)return t.provider;p(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:e})}async function yu(t,e){let n=_a(e);if(null!=n.to&&(n.to=gs(n.to,t)),null!=n.from){const e=n.from;n.from=Promise.all([t.getAddress(),gs(e,t)]).then((([t,e])=>(d(t.toLowerCase()===e.toLowerCase(),"transaction from mismatch","tx.from",e),t)))}else n.from=t.getAddress();return await a(n)}class mu{provider;constructor(t){c(this,{provider:t||null})}async getNonce(t){return gu(this,"getTransactionCount").getTransactionCount(await this.getAddress(),t)}async populateCall(t){return await yu(this,t)}async populateTransaction(t){const e=gu(this,"populateTransaction"),n=await yu(this,t);null==n.nonce&&(n.nonce=await this.getNonce("pending")),null==n.gasLimit&&(n.gasLimit=await this.estimateGas(n));const r=await this.provider.getNetwork();if(null!=n.chainId){d(L(n.chainId)===r.chainId,"transaction chainId mismatch","tx.chainId",t.chainId)}else n.chainId=r.chainId;const s=null!=n.maxFeePerGas||null!=n.maxPriorityFeePerGas;if(null==n.gasPrice||2!==n.type&&!s?0!==n.type&&1!==n.type||!s||d(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",t):d(!1,"eip-1559 transaction do not support gasPrice","tx",t),2!==n.type&&null!=n.type||null==n.maxFeePerGas||null==n.maxPriorityFeePerGas)if(0===n.type||1===n.type){const t=await e.getFeeData();p(null!=t.gasPrice,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),null==n.gasPrice&&(n.gasPrice=t.gasPrice)}else{const t=await e.getFeeData();if(null==n.type)if(null!=t.maxFeePerGas&&null!=t.maxPriorityFeePerGas)if(n.type=2,null!=n.gasPrice){const t=n.gasPrice;delete n.gasPrice,n.maxFeePerGas=t,n.maxPriorityFeePerGas=t}else null==n.maxFeePerGas&&(n.maxFeePerGas=t.maxFeePerGas),null==n.maxPriorityFeePerGas&&(n.maxPriorityFeePerGas=t.maxPriorityFeePerGas);else null!=t.gasPrice?(p(!s,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),null==n.gasPrice&&(n.gasPrice=t.gasPrice),n.type=0):p(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else 2!==n.type&&3!==n.type||(null==n.maxFeePerGas&&(n.maxFeePerGas=t.maxFeePerGas),null==n.maxPriorityFeePerGas&&(n.maxPriorityFeePerGas=t.maxPriorityFeePerGas))}else n.type=2;return await a(n)}async estimateGas(t){return gu(this,"estimateGas").estimateGas(await this.populateCall(t))}async call(t){return gu(this,"call").call(await this.populateCall(t))}async resolveName(t){const e=gu(this,"resolveName");return await e.resolveName(t)}async sendTransaction(t){const e=gu(this,"sendTransaction"),n=await this.populateTransaction(t);delete n.from;const r=po.from(n);return await e.broadcastTransaction(await this.signTransaction(r))}}class wu extends mu{address;constructor(t,e){super(e),c(this,{address:t})}async getAddress(){return this.address}connect(t){return new wu(this.address,t)}#Xt(t,e){p(!1,`VoidSigner cannot sign ${t}`,"UNSUPPORTED_OPERATION",{operation:e})}async signTransaction(t){this.#Xt("transactions","signTransaction")}async signMessage(t){this.#Xt("messages","signMessage")}async signTypedData(t,e,n){this.#Xt("typed-data","signTypedData")}}class bu{#St;#te;#Ot;#Ct;#ee;#ne;constructor(t){this.#St=t,this.#te=null,this.#Ot=this.#It.bind(this),this.#Ct=!1,this.#ee=null,this.#ne=!1}_subscribe(t){throw new Error("subclasses must override this")}_emitResults(t,e){throw new Error("subclasses must override this")}_recover(t){throw new Error("subclasses must override this")}async#It(t){try{null==this.#te&&(this.#te=this._subscribe(this.#St));let t=null;try{t=await this.#te}catch(t){if(!l(t,"UNSUPPORTED_OPERATION")||"eth_newFilter"!==t.operation)throw t}if(null==t)return this.#te=null,void this.#St._recoverSubscriber(this,this._recover(this.#St));const e=await this.#St.getNetwork();if(this.#ee||(this.#ee=e),this.#ee.chainId!==e.chainId)throw new Error("chaid changed");if(this.#ne)return;const n=await this.#St.send("eth_getFilterChanges",[t]);await this._emitResults(this.#St,n)}catch(t){console.log("@TODO",t)}this.#St.once("block",this.#Ot)}#re(){const t=this.#te;t&&(this.#te=null,t.then((t=>{this.#St.destroyed||this.#St.send("eth_uninstallFilter",[t])})))}start(){this.#Ct||(this.#Ct=!0,this.#It(-2))}stop(){this.#Ct&&(this.#Ct=!1,this.#ne=!0,this.#re(),this.#St.off("block",this.#Ot))}pause(t){t&&this.#re(),this.#St.off("block",this.#Ot)}resume(){this.start()}}class Au extends bu{#se;constructor(t,e){var n;super(t),this.#se=(n=e,JSON.parse(JSON.stringify(n)))}_recover(t){return new Zc(t,this.#se)}async _subscribe(t){return await t.send("eth_newFilter",[this.#se])}async _emitResults(t,e){for(const n of e)t.emit(this.#se,t._wrapLog(n,t._network))}}class vu extends bu{async _subscribe(t){return await t.send("eth_newPendingTransactionFilter",[])}async _emitResults(t,e){for(const n of e)t.emit("pending",n)}}const Eu="bigint,boolean,function,number,string,symbol".split(/,/g);function ku(t){if(null==t||Eu.indexOf(typeof t)>=0)return t;if("function"==typeof t.getAddress)return t;if(Array.isArray(t))return t.map(ku);if("object"==typeof t)return Object.keys(t).reduce(((e,n)=>(e[n]=t[n],e)),{});throw new Error(`should not happen: ${t} (${typeof t})`)}function Tu(t){return new Promise((e=>{setTimeout(e,t)}))}function Nu(t){return t?t.toLowerCase():t}function xu(t){return t&&"number"==typeof t.pollingInterval}const Su={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class Ou extends mu{address;constructor(t,e){super(t),c(this,{address:e=fs(e)})}connect(t){p(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(t){return await this.populateCall(t)}async sendUncheckedTransaction(t){const e=ku(t),n=[];if(e.from){const r=e.from;n.push((async()=>{const n=await gs(r,this.provider);d(null!=n&&n.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=n})())}else e.from=this.address;if(null==e.gasLimit&&n.push((async()=>{e.gasLimit=await this.provider.estimateGas({...e,from:this.address})})()),null!=e.to){const t=e.to;n.push((async()=>{e.to=await gs(t,this.provider)})())}n.length&&await Promise.all(n);const r=this.provider.getRpcTransaction(e);return this.provider.send("eth_sendTransaction",[r])}async sendTransaction(t){const e=await this.provider.getBlockNumber(),n=await this.sendUncheckedTransaction(t);return await new Promise(((t,r)=>{const s=[1e3,100];let i=0;const o=async()=>{try{const r=await this.provider.getTransaction(n);if(null!=r)return void t(r.replaceableTransaction(e))}catch(t){if(l(t,"CANCELLED")||l(t,"BAD_DATA")||l(t,"NETWORK_ERROR")||l(t,"UNSUPPORTED_OPERATION"))return null==t.info&&(t.info={}),t.info.sendTransactionHash=n,void r(t);if(l(t,"INVALID_ARGUMENT")&&(i++,null==t.info&&(t.info={}),t.info.sendTransactionHash=n,i>10))return void r(t);this.provider.emit("error",f("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:t}))}this.provider._setTimeout((()=>{o()}),s.pop()||4e3)};o()}))}async signTransaction(t){const e=ku(t);if(e.from){const n=await gs(e.from,this.provider);d(null!=n&&n.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),e.from=n}else e.from=this.address;const n=this.provider.getRpcTransaction(e);return await this.provider.send("eth_signTransaction",[n])}async signMessage(t){const e="string"==typeof t?X(t):t;return await this.provider.send("personal_sign",[N(e),this.address.toLowerCase()])}async signTypedData(t,e,n){const r=ku(n),s=await Ro.resolveNames(t,e,r,(async t=>{const e=await gs(t);return d(null!=e,"TypedData does not support null address","value",t),e}));return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(Ro.getPayload(s.domain,e,s.value))])}async unlock(t){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),t,null])}async _legacySignMessage(t){const e="string"==typeof t?X(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),N(e)])}}class Pu extends au{#M;#ie;#oe;#ae;#ce;#ee;#ue;#le(){if(this.#ae)return;const t=1===this._getOption("batchMaxCount")?0:this._getOption("batchStallTime");this.#ae=setTimeout((()=>{this.#ae=null;const t=this.#oe;for(this.#oe=[];t.length;){const e=[t.shift()];for(;t.length&&e.length!==this.#M.batchMaxCount;){e.push(t.shift());if(JSON.stringify(e.map((t=>t.payload))).length>this.#M.batchMaxSize){t.unshift(e.pop());break}}(async()=>{const t=1===e.length?e[0].payload:e.map((t=>t.payload));this.emit("debug",{action:"sendRpcPayload",payload:t});try{const n=await this._send(t);this.emit("debug",{action:"receiveRpcResult",result:n});for(const{resolve:t,reject:r,payload:s}of e){if(this.destroyed){r(f("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:s.method}));continue}const e=n.filter((t=>t.id===s.id))[0];if(null!=e)"error"in e?r(this.getRpcError(s,e)):t(e.result);else{const t=f("missing response for request","BAD_DATA",{value:n,info:{payload:s}});this.emit("error",t),r(t)}}}catch(t){this.emit("debug",{action:"receiveRpcError",error:t});for(const{reject:n}of e)n(t)}})()}}),t)}constructor(t,e){super(t,e),this.#ie=1,this.#M=Object.assign({},Su,e||{}),this.#oe=[],this.#ae=null,this.#ee=null,this.#ue=null;{let t=null;const e=new Promise((e=>{t=e}));this.#ce={promise:e,resolve:t}}const n=this._getOption("staticNetwork");"boolean"==typeof n?(d(!n||"any"!==t,"staticNetwork cannot be used on special network 'any'","options",e),n&&null!=t&&(this.#ee=Hc.from(t))):n&&(d(null==t||n.matches(t),"staticNetwork MUST match network object","options",e),this.#ee=n)}_getOption(t){return this.#M[t]}get _network(){return p(this.#ee,"network is not available yet","NETWORK_ERROR"),this.#ee}async _perform(t){if("call"===t.method||"estimateGas"===t.method){let e=t.transaction;if(e&&null!=e.type&&L(e.type)&&null==e.maxFeePerGas&&null==e.maxPriorityFeePerGas){const n=await this.getFeeData();null==n.maxFeePerGas&&null==n.maxPriorityFeePerGas&&(t=Object.assign({},t,{transaction:Object.assign({},e,{type:void 0})}))}}const e=this.getRpcRequest(t);return null!=e?await this.send(e.method,e.args):super._perform(t)}async _detectNetwork(){const t=this._getOption("staticNetwork");if(t){if(!0!==t)return t;if(this.#ee)return this.#ee}return this.#ue?await this.#ue:this.ready?(this.#ue=(async()=>{try{const t=Hc.from(L(await this.send("eth_chainId",[])));return this.#ue=null,t}catch(t){throw this.#ue=null,t}})(),await this.#ue):(this.#ue=(async()=>{const t={id:this.#ie++,method:"eth_chainId",params:[],jsonrpc:"2.0"};let e;this.emit("debug",{action:"sendRpcPayload",payload:t});try{e=(await this._send(t))[0],this.#ue=null}catch(t){throw this.#ue=null,this.emit("debug",{action:"receiveRpcError",error:t}),t}if(this.emit("debug",{action:"receiveRpcResult",result:e}),"result"in e)return Hc.from(L(e.result));throw this.getRpcError(t,e)})(),await this.#ue)}_start(){null!=this.#ce&&null!=this.#ce.resolve&&(this.#ce.resolve(),this.#ce=null,(async()=>{for(;null==this.#ee&&!this.destroyed;)try{this.#ee=await this._detectNetwork()}catch(t){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",f("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await Tu(1e3)}this.#le()})())}async _waitUntilReady(){if(null!=this.#ce)return await this.#ce.promise}_getSubscriber(t){return"pending"===t.type?new vu(this):"event"===t.type?this._getOption("polling")?new Zc(this,t.filter):new Au(this,t.filter):"orphan"===t.type&&"drop-log"===t.filter.orphan?new nu("orphan"):super._getSubscriber(t)}get ready(){return null==this.#ce}getRpcTransaction(t){const e={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach((n=>{if(null==t[n])return;let r=n;"gasLimit"===n&&(r="gas"),e[r]=K(L(t[n],`tx.${n}`))})),["from","to","data"].forEach((n=>{null!=t[n]&&(e[n]=N(t[n]))})),t.accessList&&(e.accessList=Yi(t.accessList)),t.blobVersionedHashes&&(e.blobVersionedHashes=t.blobVersionedHashes.map((t=>t.toLowerCase()))),e}getRpcRequest(t){switch(t.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:[Nu(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[Nu(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[Nu(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[Nu(t.address),"0x"+t.position.toString(16),t.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[t.signedTransaction]};case"getBlock":if("blockTag"in t)return{method:"eth_getBlockByNumber",args:[t.blockTag,!!t.includeTransactions]};if("blockHash"in t)return{method:"eth_getBlockByHash",args:[t.blockHash,!!t.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[t.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[t.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(t.transaction),t.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(t.transaction)]};case"getLogs":return t.filter&&null!=t.filter.address&&(Array.isArray(t.filter.address)?t.filter.address=t.filter.address.map(Nu):t.filter.address=Nu(t.filter.address)),{method:"eth_getLogs",args:[t.filter]}}return null}getRpcError(t,e){const{method:n}=t,{error:r}=e;if("eth_estimateGas"===n&&r.message){const e=r.message;if(!e.match(/revert/i)&&e.match(/insufficient funds/i))return f("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:r}})}if("eth_call"===n||"eth_estimateGas"===n){const e=Cu(r),s=Sa.getBuiltinCallException("eth_call"===n?"call":"estimateGas",t.params[0],e?e.data:null);return s.info={error:r,payload:t},s}const s=JSON.stringify(function(t){const e=[];return Bu(t,e),e}(r));if("string"==typeof r.message&&r.message.match(/user denied|ethers-user-denied/i)){return f("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[n]||"unknown",reason:"rejected",info:{payload:t,error:r}})}if("eth_sendRawTransaction"===n||"eth_sendTransaction"===n){const e=t.params[0];if(s.match(/insufficient funds|base fee exceeds gas limit/i))return f("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:e,info:{error:r}});if(s.match(/nonce/i)&&s.match(/too low/i))return f("nonce has already been used","NONCE_EXPIRED",{transaction:e,info:{error:r}});if(s.match(/replacement transaction/i)&&s.match(/underpriced/i))return f("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:e,info:{error:r}});if(s.match(/only replay-protected/i))return f("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:n,info:{transaction:e,info:{error:r}}})}let i=!!s.match(/the method .* does not exist/i);return i||r&&r.details&&r.details.startsWith("Unauthorized method:")&&(i=!0),i?f("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:r,payload:t}}):f("could not coalesce error","UNKNOWN_ERROR",{error:r,payload:t})}send(t,e){if(this.destroyed)return Promise.reject(f("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t}));const n=this.#ie++,r=new Promise(((r,s)=>{this.#oe.push({resolve:r,reject:s,payload:{method:t,params:e,id:n,jsonrpc:"2.0"}})}));return this.#le(),r}async getSigner(t){null==t&&(t=0);const e=this.send("eth_accounts",[]);if("number"==typeof t){const n=await e;if(t>=n.length)throw new Error("no such account");return new Ou(this,n[t])}const{accounts:n}=await a({network:this.getNetwork(),accounts:e});t=fs(t);for(const e of n)if(fs(e)===t)return new Ou(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map((t=>new Ou(this,t)))}destroy(){this.#ae&&(clearTimeout(this.#ae),this.#ae=null);for(const{payload:t,reject:e}of this.#oe)e(f("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));this.#oe=[],super.destroy()}}class Ru extends Pu{#he;constructor(t,e){super(t,e);let n=this._getOption("pollingInterval");null==n&&(n=Su.pollingInterval),this.#he=n}_getSubscriber(t){const e=super._getSubscriber(t);return xu(e)&&(e.pollingInterval=this.#he),e}get pollingInterval(){return this.#he}set pollingInterval(t){if(!Number.isInteger(t)||t<0)throw new Error("invalid interval");this.#he=t,this._forEachSubscriber((t=>{xu(t)&&(t.pollingInterval=this.#he)}))}}class Iu extends Ru{#fe;constructor(t,e,n){null==t&&(t="http://localhost:8545"),super(e,n),this.#fe="string"==typeof t?new ft(t):t.clone()}_getConnection(){return this.#fe.clone()}async send(t,e){return await this._start(),await super.send(t,e)}async _send(t){const e=this._getConnection();e.body=JSON.stringify(t),e.setHeader("content-type","application/json");const n=await e.send();n.assertOk();let r=n.bodyJson;return Array.isArray(r)||(r=[r]),r}}function Cu(t){if(null==t)return null;if("string"==typeof t.message&&t.message.match(/revert/i)&&E(t.data))return{message:t.message,data:t.data};if("object"==typeof t){for(const e in t){const n=Cu(t[e]);if(n)return n}return null}if("string"==typeof t)try{return Cu(JSON.parse(t))}catch(t){}return null}function Bu(t,e){if(null!=t){if("string"==typeof t.message&&e.push(t.message),"object"==typeof t)for(const n in t)Bu(t[n],e);if("string"==typeof t)try{return Bu(JSON.parse(t),e)}catch(t){}}}class Du extends Ru{#v;constructor(t,e,n){const r=Object.assign({},null!=n?n:{},{batchMaxCount:1});d(t&&t.request,"invalid EIP-1193 provider","ethereum",t),super(e,r),this.#v=async(e,n)=>{const r={method:e,params:n};this.emit("debug",{action:"sendEip1193Request",payload:r});try{const e=await t.request(r);return this.emit("debug",{action:"receiveEip1193Result",result:e}),e}catch(t){const e=new Error(t.message);throw e.code=t.code,e.data=t.data,e.payload=r,this.emit("debug",{action:"receiveEip1193Error",error:e}),e}}}async send(t,e){return await this._start(),await super.send(t,e)}async _send(t){d(!Array.isArray(t),"EIP-1193 does not support batch request","payload",t);try{const e=await this.#v(t.method,t.params||[]);return[{id:t.id,result:e}]}catch(e){return[{id:t.id,error:{code:e.code,data:e.data,message:e.message}}]}}getRpcError(t,e){switch((e=JSON.parse(JSON.stringify(e))).error.code||-1){case 4001:e.error.message=`ethers-user-denied: ${e.error.message}`;break;case 4200:e.error.message=`ethers-unsupported: ${e.error.message}`}return super.getRpcError(t,e)}async hasSigner(t){null==t&&(t=0);const e=await this.send("eth_accounts",[]);return"number"==typeof t?e.length>t:(t=t.toLowerCase(),0!==e.filter((e=>e.toLowerCase()===t)).length)}async getSigner(t){if(null==t&&(t=0),!await this.hasSigner(t))try{await this.#v("eth_requestAccounts",[])}catch(t){const e=t.payload;throw this.getRpcError(e,{id:e.id,error:t})}return await super.getSigner(t)}}class Uu extends mu{address;#pe;constructor(t,e){super(e),d(t&&"function"==typeof t.sign,"invalid private key","privateKey","[ REDACTED ]"),this.#pe=t;c(this,{address:qi(this.signingKey.publicKey)})}get signingKey(){return this.#pe}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(t){return new Uu(this.#pe,t)}async signTransaction(t){t=_a(t);const{to:e,from:n}=await a({to:t.to?gs(t.to,this.provider):void 0,from:t.from?gs(t.from,this.provider):void 0});null!=e&&(t.to=e),null!=n&&(t.from=n),null!=t.from&&(d(fs(t.from)===this.address,"transaction from address mismatch","tx.from",t.from),delete t.from);const r=po.from(t);return r.signature=this.signingKey.sign(r.unsignedHash),r.serialized}async signMessage(t){return this.signMessageSync(t)}signMessageSync(t){return this.signingKey.sign(go(t)).serialized}async signTypedData(t,e,n){const r=await Ro.resolveNames(t,e,n,(async t=>{p(null!=this.provider,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:t}});const e=await this.provider.resolveName(t);return p(null!=e,"unconfigured ENS name","UNCONFIGURED_NAME",{value:t}),e}));return this.signingKey.sign(Ro.hash(r.domain,e,r.value)).serialized}}const Lu=" !#$%&'()*+,-./<=>?@[]^_`{|}~",Fu=/^[a-z]*$/i;function Mu(t,e){let n=97;return t.reduce(((t,r)=>(r===e?n++:r.match(Fu)?t.push(String.fromCharCode(n)+r):(n=97,t.push(r)),t)),[])}function _u(t){return d("0"===t[0],"unsupported auwl data","data",t),function(t,e){for(let n=28;n>=0;n--)t=t.split(Lu[n]).join(e.substring(2*n,2*n+2));const n=[],r=t.replace(/(:|([0-9])|([A-Z][a-z]*))/g,((t,e,r,s)=>{if(r)for(let t=parseInt(r);t>=0;t--)n.push(";");else n.push(e.toLowerCase());return""}));if(r)throw new Error(`leftovers: ${JSON.stringify(r)}`);return Mu(Mu(n,";"),":")}(t.substring(59),t.substring(1,59))}class Gu{locale;constructor(t){c(this,{locale:t})}split(t){return t.toLowerCase().split(/\s+/g)}join(t){return t.join(" ")}}class ju extends Gu{#T;#de;constructor(t,e,n){super(t),this.#T=e,this.#de=n,this.#ge=null}get _data(){return this.#T}_decodeWords(){return _u(this.#T)}#ge;#ye(){if(null==this.#ge){const t=this._decodeWords();if(Ms(t.join("\n")+"\n")!==this.#de)throw new Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#ge=t}return this.#ge}getWord(t){const e=this.#ye();return d(t>=0&&t<e.length,`invalid word index: ${t}`,"index",t),e[t]}getWordIndex(t){return this.#ye().indexOf(t)}}let Hu=null;class Ku extends ju{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==Hu&&(Hu=new Ku),Hu}}function Vu(t){return(1<<t)-1<<8-t&255}function Qu(t,e){m("NFKD"),null==e&&(e=Ku.wordlist());const n=e.split(t);d(n.length%3==0&&n.length>=12&&n.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");const r=new Uint8Array(Math.ceil(11*n.length/8));let s=0;for(let t=0;t<n.length;t++){let i=e.getWordIndex(n[t].normalize("NFKD"));d(i>=0,`invalid mnemonic word at index ${t}`,"mnemonic","[ REDACTED ]");for(let t=0;t<11;t++)i&1<<10-t&&(r[s>>3]|=1<<7-s%8),s++}const i=32*n.length/3,o=Vu(n.length/3);return d((A(Qn(r.slice(0,i/8)))[0]&o)===(r[r.length-1]&o),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),N(r.slice(0,i/8))}function Ju(t,e){d(t.length%4==0&&t.length>=16&&t.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),null==e&&(e=Ku.wordlist());const n=[0];let r=11;for(let e=0;e<t.length;e++)r>8?(n[n.length-1]<<=8,n[n.length-1]|=t[e],r-=8):(n[n.length-1]<<=r,n[n.length-1]|=t[e]>>8-r,n.push(t[e]&((1<<8-r)-1&255)),r+=3);const s=t.length/4,i=parseInt(Qn(t).substring(2,4),16)&Vu(s);return n[n.length-1]<<=s,n[n.length-1]|=i>>8-s,e.join(n.map((t=>e.getWord(t))))}const zu={};class Yu{phrase;password;wordlist;entropy;constructor(t,e,n,r,s){null==r&&(r=""),null==s&&(s=Ku.wordlist()),w(t,zu,"Mnemonic"),c(this,{phrase:n,password:r,wordlist:s,entropy:e})}computeSeed(){const t=X("mnemonic"+this.password,"NFKD");return Tn(X(this.phrase,"NFKD"),t,2048,64,"sha512")}static fromPhrase(t,e,n){const r=Qu(t,n);return t=Ju(A(r),n),new Yu(zu,r,t,e,n)}static fromEntropy(t,e,n){const r=A(t,"entropy"),s=Ju(r,n);return new Yu(zu,N(r),s,e,n)}static entropyToPhrase(t,e){return Ju(A(t,"entropy"),e)}static phraseToEntropy(t,e){return Qu(t,e)}static isValidMnemonic(t,e){try{return Qu(t,e),!0}catch(t){}return!1}}
|
|
12
|
+
/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var qu,$u,Wu,Zu=function(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)},Xu=function(t,e,n,r,s){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?s.call(t,n):s?s.value=n:e.set(t,n),n};const tl={16:10,24:12,32:14},el=[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],nl=[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],rl=[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],sl=[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],il=[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],ol=[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],al=[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],cl=[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],ul=[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],ll=[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],hl=[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],fl=[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],pl=[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],dl=[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],gl=[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 yl(t){const e=[];for(let n=0;n<t.length;n+=4)e.push(t[n]<<24|t[n+1]<<16|t[n+2]<<8|t[n+3]);return e}class ml{get key(){return Zu(this,qu,"f").slice()}constructor(t){if(qu.set(this,void 0),$u.set(this,void 0),Wu.set(this,void 0),!(this instanceof ml))throw Error("AES must be instanitated with `new`");Xu(this,qu,new Uint8Array(t),"f");const e=tl[this.key.length];if(null==e)throw new TypeError("invalid key size (must be 16, 24 or 32 bytes)");Xu(this,Wu,[],"f"),Xu(this,$u,[],"f");for(let t=0;t<=e;t++)Zu(this,Wu,"f").push([0,0,0,0]),Zu(this,$u,"f").push([0,0,0,0]);const n=4*(e+1),r=this.key.length/4,s=yl(this.key);let i;for(let t=0;t<r;t++)i=t>>2,Zu(this,Wu,"f")[i][t%4]=s[t],Zu(this,$u,"f")[e-i][t%4]=s[t];let o,a=0,c=r;for(;c<n;){if(o=s[r-1],s[0]^=nl[o>>16&255]<<24^nl[o>>8&255]<<16^nl[255&o]<<8^nl[o>>24&255]^el[a]<<24,a+=1,8!=r)for(let t=1;t<r;t++)s[t]^=s[t-1];else{for(let t=1;t<r/2;t++)s[t]^=s[t-1];o=s[r/2-1],s[r/2]^=nl[255&o]^nl[o>>8&255]<<8^nl[o>>16&255]<<16^nl[o>>24&255]<<24;for(let t=r/2+1;t<r;t++)s[t]^=s[t-1]}let t,i,u=0;for(;u<r&&c<n;)t=c>>2,i=c%4,Zu(this,Wu,"f")[t][i]=s[u],Zu(this,$u,"f")[e-t][i]=s[u++],c++}for(let t=1;t<e;t++)for(let e=0;e<4;e++)o=Zu(this,$u,"f")[t][e],Zu(this,$u,"f")[t][e]=fl[o>>24&255]^pl[o>>16&255]^dl[o>>8&255]^gl[255&o]}encrypt(t){if(16!=t.length)throw new TypeError("invalid plaintext size (must be 16 bytes)");const e=Zu(this,Wu,"f").length-1,n=[0,0,0,0];let r=yl(t);for(let t=0;t<4;t++)r[t]^=Zu(this,Wu,"f")[0][t];for(let t=1;t<e;t++){for(let e=0;e<4;e++)n[e]=sl[r[e]>>24&255]^il[r[(e+1)%4]>>16&255]^ol[r[(e+2)%4]>>8&255]^al[255&r[(e+3)%4]]^Zu(this,Wu,"f")[t][e];r=n.slice()}const s=new Uint8Array(16);let i=0;for(let t=0;t<4;t++)i=Zu(this,Wu,"f")[e][t],s[4*t]=255&(nl[r[t]>>24&255]^i>>24),s[4*t+1]=255&(nl[r[(t+1)%4]>>16&255]^i>>16),s[4*t+2]=255&(nl[r[(t+2)%4]>>8&255]^i>>8),s[4*t+3]=255&(nl[255&r[(t+3)%4]]^i);return s}decrypt(t){if(16!=t.length)throw new TypeError("invalid ciphertext size (must be 16 bytes)");const e=Zu(this,$u,"f").length-1,n=[0,0,0,0];let r=yl(t);for(let t=0;t<4;t++)r[t]^=Zu(this,$u,"f")[0][t];for(let t=1;t<e;t++){for(let e=0;e<4;e++)n[e]=cl[r[e]>>24&255]^ul[r[(e+3)%4]>>16&255]^ll[r[(e+2)%4]>>8&255]^hl[255&r[(e+1)%4]]^Zu(this,$u,"f")[t][e];r=n.slice()}const s=new Uint8Array(16);let i=0;for(let t=0;t<4;t++)i=Zu(this,$u,"f")[e][t],s[4*t]=255&(rl[r[t]>>24&255]^i>>24),s[4*t+1]=255&(rl[r[(t+3)%4]>>16&255]^i>>16),s[4*t+2]=255&(rl[r[(t+2)%4]>>8&255]^i>>8),s[4*t+3]=255&(rl[255&r[(t+1)%4]]^i);return s}}qu=new WeakMap,$u=new WeakMap,Wu=new WeakMap;class wl{constructor(t,e,n){if(n&&!(this instanceof n))throw new Error(`${t} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new ml(e)},name:{enumerable:!0,value:t}})}}var bl,Al,vl=function(t,e,n,r,s){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?s.call(t,n):s?s.value=n:e.set(t,n),n},El=function(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)};class kl extends wl{constructor(t,e){if(super("ECC",t,kl),bl.set(this,void 0),Al.set(this,void 0),e){if(e.length%16)throw new TypeError("invalid iv size (must be 16 bytes)");vl(this,bl,new Uint8Array(e),"f")}else vl(this,bl,new Uint8Array(16),"f");vl(this,Al,this.iv,"f")}get iv(){return new Uint8Array(El(this,bl,"f"))}encrypt(t){if(t.length%16)throw new TypeError("invalid plaintext size (must be multiple of 16 bytes)");const e=new Uint8Array(t.length);for(let n=0;n<t.length;n+=16){for(let e=0;e<16;e++)El(this,Al,"f")[e]^=t[n+e];vl(this,Al,this.aes.encrypt(El(this,Al,"f")),"f"),e.set(El(this,Al,"f"),n)}return e}decrypt(t){if(t.length%16)throw new TypeError("invalid ciphertext size (must be multiple of 16 bytes)");const e=new Uint8Array(t.length);for(let n=0;n<t.length;n+=16){const r=this.aes.decrypt(t.subarray(n,n+16));for(let s=0;s<16;s++)e[n+s]=r[s]^El(this,Al,"f")[s],El(this,Al,"f")[s]=t[n+s]}return e}}bl=new WeakMap,Al=new WeakMap;var Tl,Nl,xl,Sl=function(t,e,n,r,s){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!s)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!s:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?s.call(t,n):s?s.value=n:e.set(t,n),n},Ol=function(t,e,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!r:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(t):r?r.value:e.get(t)};class Pl extends wl{constructor(t,e){super("CTR",t,Pl),Tl.set(this,void 0),Nl.set(this,void 0),xl.set(this,void 0),Sl(this,xl,new Uint8Array(16),"f"),Ol(this,xl,"f").fill(0),Sl(this,Tl,Ol(this,xl,"f"),"f"),Sl(this,Nl,16,"f"),null==e&&(e=1),"number"==typeof e?this.setCounterValue(e):this.setCounterBytes(e)}get counter(){return new Uint8Array(Ol(this,xl,"f"))}setCounterValue(t){if(!Number.isInteger(t)||t<0||t>Number.MAX_SAFE_INTEGER)throw new TypeError("invalid counter initial integer value");for(let e=15;e>=0;--e)Ol(this,xl,"f")[e]=t%256,t=Math.floor(t/256)}setCounterBytes(t){if(16!==t.length)throw new TypeError("invalid counter initial Uint8Array value length");Ol(this,xl,"f").set(t)}increment(){for(let t=15;t>=0;t--){if(255!==Ol(this,xl,"f")[t]){Ol(this,xl,"f")[t]++;break}Ol(this,xl,"f")[t]=0}}encrypt(t){var e,n;const r=new Uint8Array(t);for(let t=0;t<r.length;t++)16===Ol(this,Nl,"f")&&(Sl(this,Tl,this.aes.encrypt(Ol(this,xl,"f")),"f"),Sl(this,Nl,0,"f"),this.increment()),r[t]^=Ol(this,Tl,"f")[(Sl(this,Nl,(n=Ol(this,Nl,"f"),e=n++,n),"f"),e)];return r}decrypt(t){return this.encrypt(t)}}function Rl(t){return"string"!=typeof t||t.startsWith("0x")||(t="0x"+t),v(t)}function Il(t,e){for(t=String(t);t.length<e;)t="0"+t;return t}function Cl(t){return"string"==typeof t?X(t,"NFKC"):v(t)}function Bl(t,e){const n=e.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);d(null!=n,"invalid path","path",e);const r=n[1],s=n[3],i="!"===n[4];let o=t;for(const t of r.toLowerCase().split(".")){if(Array.isArray(o)){if(!t.match(/^[0-9]+$/))break;o=o[parseInt(t)]}else if("object"==typeof o){let e=null;for(const n in o)if(n.toLowerCase()===t){e=o[n];break}o=e}else o=null;if(null==o)break}if(d(!i||null!=o,"missing required value","path",r),s&&null!=o){if("int"===s){if("string"==typeof o&&o.match(/^-?[0-9]+$/))return parseInt(o);if(Number.isSafeInteger(o))return o}if("number"===s&&"string"==typeof o&&o.match(/^-?[0-9.]*$/))return parseFloat(o);if("data"===s&&"string"==typeof o)return Rl(o);if("array"===s&&Array.isArray(o))return o;if(s===typeof o)return o;d(!1,`wrong type found for ${s} `,"path",r)}return o}Tl=new WeakMap,Nl=new WeakMap,xl=new WeakMap;const Dl="m/44'/60'/0'/0/0";function Ul(t){try{const e=JSON.parse(t);if(3===(null!=e.version?parseInt(e.version):0))return!0}catch(t){}return!1}function Ll(t,e){const n=A(e),r=Bl(t,"crypto.ciphertext:data!");d(N(en(x([n.slice(16,32),r]))).substring(2)===Bl(t,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");const s=function(t,e,n){if("aes-128-ctr"===Bl(t,"crypto.cipher:string")){const r=Bl(t,"crypto.cipherparams.iv:data!");return N(new Pl(e,r).decrypt(n))}p(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}(t,n.slice(0,16),r),i=qi(s);if(t.address){let e=t.address.toLowerCase();e.startsWith("0x")||(e="0x"+e),d(fs(e)===i,"keystore address/privateKey mismatch","address",t.address)}const o={address:i,privateKey:s};if("0.1"===Bl(t,"x-ethers.version:string")){const e=n.slice(32,64),r=Bl(t,"x-ethers.mnemonicCiphertext:data!"),s=Bl(t,"x-ethers.mnemonicCounter:data!"),i=new Pl(e,s);o.mnemonic={path:Bl(t,"x-ethers.path:string")||Dl,locale:Bl(t,"x-ethers.locale:string")||"en",entropy:N(A(i.decrypt(r)))}}return o}function Fl(t){const e=Bl(t,"crypto.kdf:string");if(e&&"string"==typeof e){if("scrypt"===e.toLowerCase()){const n=Bl(t,"crypto.kdfparams.salt:data!"),r=Bl(t,"crypto.kdfparams.n:int!"),s=Bl(t,"crypto.kdfparams.r:int!"),i=Bl(t,"crypto.kdfparams.p:int!");d(r>0&&!(r&r-1),"invalid kdf.N","kdf.N",r),d(s>0&&i>0,"invalid kdf","kdf",e);const o=Bl(t,"crypto.kdfparams.dklen:int!");return d(32===o,"invalid kdf.dklen","kdf.dflen",o),{name:"scrypt",salt:n,N:r,r:s,p:i,dkLen:64}}if("pbkdf2"===e.toLowerCase()){const e=Bl(t,"crypto.kdfparams.salt:data!"),n=Bl(t,"crypto.kdfparams.prf:string!"),r=n.split("-").pop();d("sha256"===r||"sha512"===r,"invalid kdf.pdf","kdf.pdf",n);const s=Bl(t,"crypto.kdfparams.c:int!"),i=Bl(t,"crypto.kdfparams.dklen:int!");return d(32===i,"invalid kdf.dklen","kdf.dklen",i),{name:"pbkdf2",salt:e,count:s,dkLen:i,algorithm:r}}}d(!1,"unsupported key-derivation function","kdf",e)}function Ml(t){return new Promise((e=>{setTimeout((()=>{e()}),t)}))}function _l(t){const e=null!=t.salt?A(t.salt,"options.salt"):On(32);let n=1<<17,r=8,s=1;return t.scrypt&&(t.scrypt.N&&(n=t.scrypt.N),t.scrypt.r&&(r=t.scrypt.r),t.scrypt.p&&(s=t.scrypt.p)),d("number"==typeof n&&n>0&&Number.isSafeInteger(n)&&(BigInt(n)&BigInt(n-1))===BigInt(0),"invalid scrypt N parameter","options.N",n),d("number"==typeof r&&r>0&&Number.isSafeInteger(r),"invalid scrypt r parameter","options.r",r),d("number"==typeof s&&s>0&&Number.isSafeInteger(s),"invalid scrypt p parameter","options.p",s),{name:"scrypt",dkLen:32,salt:e,N:n,r:r,p:s}}function Gl(t,e,n,r){const s=A(n.privateKey,"privateKey"),o=null!=r.iv?A(r.iv,"options.iv"):On(16);d(16===o.length,"invalid options.iv length","options.iv",r.iv);const a=null!=r.uuid?A(r.uuid,"options.uuid"):On(16);d(16===a.length,"invalid options.uuid length","options.uuid",r.iv);const c=t.slice(0,16),u=t.slice(16,32),l=A(new Pl(c,o).encrypt(s)),h=en(x([u,l])),f={address:n.address.substring(2).toLowerCase(),id:Tt(a),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:N(o).substring(2)},ciphertext:N(l).substring(2),kdf:"scrypt",kdfparams:{salt:N(e.salt).substring(2),n:e.N,dklen:32,p:e.p,r:e.r},mac:h.substring(2)}};if(n.mnemonic){const e=null!=r.client?r.client:`ethers/${i}`,s=n.mnemonic.path||Dl,o=n.mnemonic.locale||"en",a=t.slice(32,64),c=A(n.mnemonic.entropy,"account.mnemonic.entropy"),u=On(16),l=A(new Pl(a,u).encrypt(c)),h=new Date,p="UTC--"+(h.getUTCFullYear()+"-"+Il(h.getUTCMonth()+1,2)+"-"+Il(h.getUTCDate(),2)+"T"+Il(h.getUTCHours(),2)+"-"+Il(h.getUTCMinutes(),2)+"-"+Il(h.getUTCSeconds(),2)+".0Z")+"--"+f.address;f["x-ethers"]={client:e,gethFilename:p,path:s,locale:o,mnemonicCounter:N(u).substring(2),mnemonicCiphertext:N(l).substring(2),version:"0.1"}}return JSON.stringify(f)}function jl(t,e,n){null==n&&(n={});const r=Cl(e),s=_l(n);return Gl(A(jn(r,s.salt,s.N,s.r,s.p,64)),s,t,n)}async function Hl(t,e,n){null==n&&(n={});const r=Cl(e),s=_l(n);return Gl(A(await Gn(r,s.salt,s.N,s.r,s.p,64,n.progressCallback)),s,t,n)}const Kl="m/44'/60'/0'/0/0",Vl=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),Ql=2147483648,Jl=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");function zl(t,e){let n="";for(;t;)n="0123456789abcdef"[t%16]+n,t=Math.trunc(t/16);for(;n.length<2*e;)n="0"+n;return"0x"+n}function Yl(t){const e=A(t);return q(x([e,O(Qn(Qn(e)),0,4)]))}const ql={};function $l(t,e,n,r){const s=new Uint8Array(37);t&Ql?(p(null!=r,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),s.set(A(r),1)):s.set(A(n));for(let e=24;e>=0;e-=8)s[33+(e>>3)]=t>>24-e&255;const i=A(Le("sha512",e,s));return{IL:i.slice(0,32),IR:i.slice(32)}}function Wl(t,e){const n=e.split("/");d(n.length>0,"invalid path","path",e),"m"===n[0]&&(d(0===t.depth,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${t.depth}`,"path",e),n.shift());let r=t;for(let t=0;t<n.length;t++){const e=n[t];if(e.match(/^[0-9]+'$/)){const n=parseInt(e.substring(0,e.length-1));d(n<Ql,"invalid path index",`path[${t}]`,e),r=r.deriveChild(Ql+n)}else if(e.match(/^[0-9]+$/)){const n=parseInt(e);d(n<Ql,"invalid path index",`path[${t}]`,e),r=r.deriveChild(n)}else d(!1,"invalid path component",`path[${t}]`,e)}return r}class Zl extends Uu{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(t,e,n,r,s,i,o,a,u){super(e,u),w(t,ql,"HDNodeWallet"),c(this,{publicKey:e.compressedPublicKey});c(this,{parentFingerprint:n,fingerprint:O(An(Qn(this.publicKey)),0,4),chainCode:r,path:s,index:i,depth:o}),c(this,{mnemonic:a})}connect(t){return new Zl(ql,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,t)}#me(){const t={address:this.address,privateKey:this.privateKey},e=this.mnemonic;return this.path&&e&&"en"===e.wordlist.locale&&""===e.password&&(t.mnemonic={path:this.path,locale:"en",entropy:e.entropy}),t}async encrypt(t,e){return await Hl(this.#me(),t,{progressCallback:e})}encryptSync(t){return jl(this.#me(),t)}get extendedKey(){return p(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),Yl(x(["0x0488ADE4",zl(this.depth,1),this.parentFingerprint,zl(this.index,4),this.chainCode,x(["0x00",this.privateKey])]))}hasPath(){return null!=this.path}neuter(){return new Xl(ql,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(t){const e=G(t,"index");d(e<=4294967295,"invalid index","index",e);let n=this.path;n&&(n+="/"+(2147483647&e),e&Ql&&(n+="'"));const{IR:r,IL:s}=$l(e,this.chainCode,this.publicKey,this.privateKey),i=new os(j((_(s)+BigInt(this.privateKey))%Jl,32));return new Zl(ql,i,this.fingerprint,N(r),n,e,this.depth+1,this.mnemonic,this.provider)}derivePath(t){return Wl(this,t)}static#we(t,e){d(k(t),"invalid seed","seed","[REDACTED]");const n=A(t,"seed");d(n.length>=16&&n.length<=64,"invalid seed","seed","[REDACTED]");const r=A(Le("sha512",Vl,n)),s=new os(N(r.slice(0,32)));return new Zl(ql,s,"0x00000000",N(r.slice(32)),"m",0,0,e,null)}static fromExtendedKey(t){const e=H(function(t){let e=z;for(let n=0;n<t.length;n++)e*=Y,e+=J(t[n]);return e}(t));d(82===e.length||Yl(e.slice(0,78))===t,"invalid extended key","extendedKey","[ REDACTED ]");const n=e[4],r=N(e.slice(5,9)),s=parseInt(N(e.slice(9,13)).substring(2),16),i=N(e.slice(13,45)),o=e.slice(45,78);switch(N(e.slice(0,4))){case"0x0488b21e":case"0x043587cf":{const t=N(o);return new Xl(ql,qi(t),t,r,i,null,s,n,null)}case"0x0488ade4":case"0x04358394 ":if(0!==o[0])break;return new Zl(ql,new os(o.slice(1)),r,i,null,s,n,null,null)}d(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(t,e,n){null==t&&(t=""),null==e&&(e=Kl),null==n&&(n=Ku.wordlist());const r=Yu.fromEntropy(On(16),t,n);return Zl.#we(r.computeSeed(),r).derivePath(e)}static fromMnemonic(t,e){return e||(e=Kl),Zl.#we(t.computeSeed(),t).derivePath(e)}static fromPhrase(t,e,n,r){null==e&&(e=""),null==n&&(n=Kl),null==r&&(r=Ku.wordlist());const s=Yu.fromPhrase(t,e,r);return Zl.#we(s.computeSeed(),s).derivePath(n)}static fromSeed(t){return Zl.#we(t,null)}}class Xl extends wu{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(t,e,n,r,s,i,o,a,u){super(e,u),w(t,ql,"HDNodeVoidWallet"),c(this,{publicKey:n});c(this,{publicKey:n,fingerprint:O(An(Qn(n)),0,4),parentFingerprint:r,chainCode:s,path:i,index:o,depth:a})}connect(t){return new Xl(ql,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,t)}get extendedKey(){return p(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),Yl(x(["0x0488B21E",zl(this.depth,1),this.parentFingerprint,zl(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return null!=this.path}deriveChild(t){const e=G(t,"index");d(e<=4294967295,"invalid index","index",e);let n=this.path;n&&(n+="/"+(2147483647&e),e&Ql&&(n+="'"));const{IR:r,IL:s}=$l(e,this.chainCode,this.publicKey,null),i=os.addPoints(s,this.publicKey,!0),o=qi(i);return new Xl(ql,o,i,this.fingerprint,N(r),n,e,this.depth+1,this.provider)}derivePath(t){return Wl(this,t)}}function th(t){try{if(JSON.parse(t).encseed)return!0}catch(t){}return!1}function eh(t,e){const n=JSON.parse(t),r=Cl(e),s=fs(Bl(n,"ethaddr:string!")),i=Rl(Bl(n,"encseed:string!"));d(i&&i.length%16==0,"invalid encseed","json",t);const o=A(Tn(r,r,2e3,32,"sha256")).slice(0,16),a=i.slice(0,16),c=i.slice(16),u=function(t){if(t.length<16)throw new TypeError("PKCS#7 invalid length");const e=t[t.length-1];if(e>16)throw new TypeError("PKCS#7 padding byte out of range");const n=t.length-e;for(let r=0;r<e;r++)if(t[n+r]!==e)throw new TypeError("PKCS#7 invalid padding byte");return new Uint8Array(t.subarray(0,n))}(A(new kl(o,a).decrypt(c)));let l="";for(let t=0;t<u.length;t++)l+=String.fromCharCode(u[t]);return{address:s,privateKey:Ms(l)}}function nh(t){return new Promise((e=>{setTimeout((()=>{e()}),t)}))}let rh=class t extends Uu{constructor(t,e){"string"!=typeof t||t.startsWith("0x")||(t="0x"+t),super("string"==typeof t?new os(t):t,e)}connect(e){return new t(this.signingKey,e)}async encrypt(t,e){const n={address:this.address,privateKey:this.privateKey};return await Hl(n,t,{progressCallback:e})}encryptSync(t){return jl({address:this.address,privateKey:this.privateKey},t)}static#be(e){if(d(e,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in e&&e.mnemonic&&"en"===e.mnemonic.locale){const t=Yu.fromEntropy(e.mnemonic.entropy),n=Zl.fromMnemonic(t,e.mnemonic.path);if(n.address===e.address&&n.privateKey===e.privateKey)return n;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}const n=new t(e.privateKey);return d(n.address===e.address,"address/privateKey mismatch","json","[ REDACTED ]"),n}static async fromEncryptedJson(e,n,r){let s=null;return Ul(e)?s=await async function(t,e,n){const r=JSON.parse(t),s=Cl(e),i=Fl(r);if("pbkdf2"===i.name){n&&(n(0),await Ml(0));const{salt:t,count:e,dkLen:o,algorithm:a}=i,c=Tn(s,t,e,o,a);return n&&(n(1),await Ml(0)),Ll(r,c)}p("scrypt"===i.name,"cannot be reached","UNKNOWN_ERROR",{params:i});const{salt:o,N:a,r:c,p:u,dkLen:l}=i;return Ll(r,await Gn(s,o,a,c,u,l,n))}(e,n,r):th(e)&&(r&&(r(0),await nh(0)),s=eh(e,n),r&&(r(1),await nh(0))),t.#be(s)}static fromEncryptedJsonSync(e,n){let r=null;return Ul(e)?r=function(t,e){const n=JSON.parse(t),r=Cl(e),s=Fl(n);if("pbkdf2"===s.name){const{salt:t,count:e,dkLen:i,algorithm:o}=s;return Ll(n,Tn(r,t,e,i,o))}p("scrypt"===s.name,"cannot be reached","UNKNOWN_ERROR",{params:s});const{salt:i,N:o,r:a,p:c,dkLen:u}=s;return Ll(n,jn(r,i,o,a,c,u))}(e,n):th(e)?r=eh(e,n):d(!1,"invalid JSON wallet","json","[ REDACTED ]"),t.#be(r)}static createRandom(t){const e=Zl.createRandom();return t?e.connect(t):e}static fromPhrase(t,e){const n=Zl.fromPhrase(t);return e?n.connect(e):n}};var sh={STEALTH_ANNOUNCER_ADDRESS:"",PROOF_OF_INTEGRITY_ADDRESS:""},ih=2147483647,oh=/[^\x20-\x7E]/,ah=/[\x2E\u3002\uFF0E\uFF61]/g,ch={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},uh=Math.floor,lh=String.fromCharCode;function hh(t){throw new RangeError(ch[t])}function fh(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function ph(t,e,n){var r=0;for(t=n?uh(t/700):t>>1,t+=uh(t/e);t>455;r+=36)t=uh(t/35);return uh(r+36*t/(t+38))}function dh(t){return function(t,e){var n=t.split("@"),r="";n.length>1&&(r=n[0]+"@",t=n[1]);var s=function(t,e){for(var n=t.length,r=[];n--;)r[n]=e(t[n]);return r}((t=t.replace(ah,".")).split("."),e).join(".");return r+s}(t,(function(t){return oh.test(t)?"xn--"+function(t){var e,n,r,s,i,o,a,c,u,l,h,f,p,d,g,y=[];for(t=function(t){for(var e,n,r=[],s=0,i=t.length;s<i;)(e=t.charCodeAt(s++))>=55296&&e<=56319&&s<i?56320==(64512&(n=t.charCodeAt(s++)))?r.push(((1023&e)<<10)+(1023&n)+65536):(r.push(e),s--):r.push(e);return r}(t),f=t.length,e=128,n=0,i=72,o=0;o<f;++o)(h=t[o])<128&&y.push(lh(h));for(r=s=y.length,s&&y.push("-");r<f;){for(a=ih,o=0;o<f;++o)(h=t[o])>=e&&h<a&&(a=h);for(a-e>uh((ih-n)/(p=r+1))&&hh("overflow"),n+=(a-e)*p,e=a,o=0;o<f;++o)if((h=t[o])<e&&++n>ih&&hh("overflow"),h==e){for(c=n,u=36;!(c<(l=u<=i?1:u>=i+26?26:u-i));u+=36)g=c-l,d=36-l,y.push(lh(fh(l+g%d,0))),c=uh(g/d);y.push(lh(fh(c,0))),i=ph(n,p,r==s),n=0,++r}++n,++e}return y.join("")}(t):t}))}var gh=[],yh=[],mh="undefined"!=typeof Uint8Array?Uint8Array:Array,wh=!1;function bh(){wh=!0;for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",e=0;e<64;++e)gh[e]=t[e],yh[t.charCodeAt(e)]=e;yh["-".charCodeAt(0)]=62,yh["_".charCodeAt(0)]=63}function Ah(t,e,n){for(var r,s,i=[],o=e;o<n;o+=3)r=(t[o]<<16)+(t[o+1]<<8)+t[o+2],i.push(gh[(s=r)>>18&63]+gh[s>>12&63]+gh[s>>6&63]+gh[63&s]);return i.join("")}function vh(t){var e;wh||bh();for(var n=t.length,r=n%3,s="",i=[],o=16383,a=0,c=n-r;a<c;a+=o)i.push(Ah(t,a,a+o>c?c:a+o));return 1===r?(e=t[n-1],s+=gh[e>>2],s+=gh[e<<4&63],s+="=="):2===r&&(e=(t[n-2]<<8)+t[n-1],s+=gh[e>>10],s+=gh[e>>4&63],s+=gh[e<<2&63],s+="="),i.push(s),i.join("")}function Eh(t,e,n,r,s){var i,o,a=8*s-r-1,c=(1<<a)-1,u=c>>1,l=-7,h=n?s-1:0,f=n?-1:1,p=t[e+h];for(h+=f,i=p&(1<<-l)-1,p>>=-l,l+=a;l>0;i=256*i+t[e+h],h+=f,l-=8);for(o=i&(1<<-l)-1,i>>=-l,l+=r;l>0;o=256*o+t[e+h],h+=f,l-=8);if(0===i)i=1-u;else{if(i===c)return o?NaN:1/0*(p?-1:1);o+=Math.pow(2,r),i-=u}return(p?-1:1)*o*Math.pow(2,i-r)}function kh(t,e,n,r,s,i){var o,a,c,u=8*i-s-1,l=(1<<u)-1,h=l>>1,f=23===s?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,d=r?1:-1,g=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=l):(o=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-o))<1&&(o--,c*=2),(e+=o+h>=1?f/c:f*Math.pow(2,1-h))*c>=2&&(o++,c/=2),o+h>=l?(a=0,o=l):o+h>=1?(a=(e*c-1)*Math.pow(2,s),o+=h):(a=e*Math.pow(2,h-1)*Math.pow(2,s),o=0));s>=8;t[n+p]=255&a,p+=d,a/=256,s-=8);for(o=o<<s|a,u+=s;u>0;t[n+p]=255&o,p+=d,o/=256,u-=8);t[n+p-d]|=128*g}var Th={}.toString,Nh=Array.isArray||function(t){return"[object Array]"==Th.call(t)};function xh(){return Oh.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function Sh(t,e){if(xh()<e)throw new RangeError("Invalid typed array length");return Oh.TYPED_ARRAY_SUPPORT?(t=new Uint8Array(e)).__proto__=Oh.prototype:(null===t&&(t=new Oh(e)),t.length=e),t}function Oh(t,e,n){if(!(Oh.TYPED_ARRAY_SUPPORT||this instanceof Oh))return new Oh(t,e,n);if("number"==typeof t){if("string"==typeof e)throw new Error("If encoding is specified then the first argument must be a string");return Ih(this,t)}return Ph(this,t,e,n)}function Ph(t,e,n,r){if("number"==typeof e)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer?function(t,e,n,r){if(e.byteLength,n<0||e.byteLength<n)throw new RangeError("'offset' is out of bounds");if(e.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");e=void 0===n&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,n):new Uint8Array(e,n,r);Oh.TYPED_ARRAY_SUPPORT?(t=e).__proto__=Oh.prototype:t=Ch(t,e);return t}(t,e,n,r):"string"==typeof e?function(t,e,n){"string"==typeof n&&""!==n||(n="utf8");if(!Oh.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|Uh(e,n);t=Sh(t,r);var s=t.write(e,n);s!==r&&(t=t.slice(0,s));return t}(t,e,n):function(t,e){if(Dh(e)){var n=0|Bh(e.length);return 0===(t=Sh(t,n)).length||e.copy(t,0,0,n),t}if(e){if("undefined"!=typeof ArrayBuffer&&e.buffer instanceof ArrayBuffer||"length"in e)return"number"!=typeof e.length||(r=e.length)!=r?Sh(t,0):Ch(t,e);if("Buffer"===e.type&&Nh(e.data))return Ch(t,e.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(t,e)}function Rh(t){if("number"!=typeof t)throw new TypeError('"size" argument must be a number');if(t<0)throw new RangeError('"size" argument must not be negative')}function Ih(t,e){if(Rh(e),t=Sh(t,e<0?0:0|Bh(e)),!Oh.TYPED_ARRAY_SUPPORT)for(var n=0;n<e;++n)t[n]=0;return t}function Ch(t,e){var n=e.length<0?0:0|Bh(e.length);t=Sh(t,n);for(var r=0;r<n;r+=1)t[r]=255&e[r];return t}function Bh(t){if(t>=xh())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+xh().toString(16)+" bytes");return 0|t}function Dh(t){return!(null==t||!t._isBuffer)}function Uh(t,e){if(Dh(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var n=t.length;if(0===n)return 0;for(var r=!1;;)switch(e){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return uf(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return lf(t).length;default:if(r)return uf(t).length;e=(""+e).toLowerCase(),r=!0}}function Lh(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return Wh(this,e,n);case"utf8":case"utf-8":return zh(this,e,n);case"ascii":return qh(this,e,n);case"latin1":case"binary":return $h(this,e,n);case"base64":return Jh(this,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Zh(this,e,n);default:if(r)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),r=!0}}function Fh(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}function Mh(t,e,n,r,s){if(0===t.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=s?0:t.length-1),n<0&&(n=t.length+n),n>=t.length){if(s)return-1;n=t.length-1}else if(n<0){if(!s)return-1;n=0}if("string"==typeof e&&(e=Oh.from(e,r)),Dh(e))return 0===e.length?-1:_h(t,e,n,r,s);if("number"==typeof e)return e&=255,Oh.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?s?Uint8Array.prototype.indexOf.call(t,e,n):Uint8Array.prototype.lastIndexOf.call(t,e,n):_h(t,[e],n,r,s);throw new TypeError("val must be string, number or Buffer")}function _h(t,e,n,r,s){var i,o=1,a=t.length,c=e.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(t.length<2||e.length<2)return-1;o=2,a/=2,c/=2,n/=2}function u(t,e){return 1===o?t[e]:t.readUInt16BE(e*o)}if(s){var l=-1;for(i=n;i<a;i++)if(u(t,i)===u(e,-1===l?0:i-l)){if(-1===l&&(l=i),i-l+1===c)return l*o}else-1!==l&&(i-=i-l),l=-1}else for(n+c>a&&(n=a-c),i=n;i>=0;i--){for(var h=!0,f=0;f<c;f++)if(u(t,i+f)!==u(e,f)){h=!1;break}if(h)return i}return-1}function Gh(t,e,n,r){n=Number(n)||0;var s=t.length-n;r?(r=Number(r))>s&&(r=s):r=s;var i=e.length;if(i%2!=0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var o=0;o<r;++o){var a=parseInt(e.substr(2*o,2),16);if(isNaN(a))return o;t[n+o]=a}return o}function jh(t,e,n,r){return hf(uf(e,t.length-n),t,n,r)}function Hh(t,e,n,r){return hf(function(t){for(var e=[],n=0;n<t.length;++n)e.push(255&t.charCodeAt(n));return e}(e),t,n,r)}function Kh(t,e,n,r){return Hh(t,e,n,r)}function Vh(t,e,n,r){return hf(lf(e),t,n,r)}function Qh(t,e,n,r){return hf(function(t,e){for(var n,r,s,i=[],o=0;o<t.length&&!((e-=2)<0);++o)r=(n=t.charCodeAt(o))>>8,s=n%256,i.push(s),i.push(r);return i}(e,t.length-n),t,n,r)}function Jh(t,e,n){return 0===e&&n===t.length?vh(t):vh(t.slice(e,n))}function zh(t,e,n){n=Math.min(t.length,n);for(var r=[],s=e;s<n;){var i,o,a,c,u=t[s],l=null,h=u>239?4:u>223?3:u>191?2:1;if(s+h<=n)switch(h){case 1:u<128&&(l=u);break;case 2:128==(192&(i=t[s+1]))&&(c=(31&u)<<6|63&i)>127&&(l=c);break;case 3:i=t[s+1],o=t[s+2],128==(192&i)&&128==(192&o)&&(c=(15&u)<<12|(63&i)<<6|63&o)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=t[s+1],o=t[s+2],a=t[s+3],128==(192&i)&&128==(192&o)&&128==(192&a)&&(c=(15&u)<<18|(63&i)<<12|(63&o)<<6|63&a)>65535&&c<1114112&&(l=c)}null===l?(l=65533,h=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),s+=h}return function(t){var e=t.length;if(e<=Yh)return String.fromCharCode.apply(String,t);var n="",r=0;for(;r<e;)n+=String.fromCharCode.apply(String,t.slice(r,r+=Yh));return n}(r)}Oh.TYPED_ARRAY_SUPPORT=void 0===_t.TYPED_ARRAY_SUPPORT||_t.TYPED_ARRAY_SUPPORT,xh(),Oh.poolSize=8192,Oh._augment=function(t){return t.__proto__=Oh.prototype,t},Oh.from=function(t,e,n){return Ph(null,t,e,n)},Oh.TYPED_ARRAY_SUPPORT&&(Oh.prototype.__proto__=Uint8Array.prototype,Oh.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&Oh[Symbol.species]),Oh.alloc=function(t,e,n){return function(t,e,n,r){return Rh(e),e<=0?Sh(t,e):void 0!==n?"string"==typeof r?Sh(t,e).fill(n,r):Sh(t,e).fill(n):Sh(t,e)}(null,t,e,n)},Oh.allocUnsafe=function(t){return Ih(null,t)},Oh.allocUnsafeSlow=function(t){return Ih(null,t)},Oh.isBuffer=function(t){return null!=t&&(!!t._isBuffer||ff(t)||function(t){return"function"==typeof t.readFloatLE&&"function"==typeof t.slice&&ff(t.slice(0,0))}(t))},Oh.compare=function(t,e){if(!Dh(t)||!Dh(e))throw new TypeError("Arguments must be Buffers");if(t===e)return 0;for(var n=t.length,r=e.length,s=0,i=Math.min(n,r);s<i;++s)if(t[s]!==e[s]){n=t[s],r=e[s];break}return n<r?-1:r<n?1:0},Oh.isEncoding=function(t){switch(String(t).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}},Oh.concat=function(t,e){if(!Nh(t))throw new TypeError('"list" argument must be an Array of Buffers');if(0===t.length)return Oh.alloc(0);var n;if(void 0===e)for(e=0,n=0;n<t.length;++n)e+=t[n].length;var r=Oh.allocUnsafe(e),s=0;for(n=0;n<t.length;++n){var i=t[n];if(!Dh(i))throw new TypeError('"list" argument must be an Array of Buffers');i.copy(r,s),s+=i.length}return r},Oh.byteLength=Uh,Oh.prototype._isBuffer=!0,Oh.prototype.swap16=function(){var t=this.length;if(t%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var e=0;e<t;e+=2)Fh(this,e,e+1);return this},Oh.prototype.swap32=function(){var t=this.length;if(t%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var e=0;e<t;e+=4)Fh(this,e,e+3),Fh(this,e+1,e+2);return this},Oh.prototype.swap64=function(){var t=this.length;if(t%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var e=0;e<t;e+=8)Fh(this,e,e+7),Fh(this,e+1,e+6),Fh(this,e+2,e+5),Fh(this,e+3,e+4);return this},Oh.prototype.toString=function(){var t=0|this.length;return 0===t?"":0===arguments.length?zh(this,0,t):Lh.apply(this,arguments)},Oh.prototype.equals=function(t){if(!Dh(t))throw new TypeError("Argument must be a Buffer");return this===t||0===Oh.compare(this,t)},Oh.prototype.inspect=function(){var t="";return this.length>0&&(t=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(t+=" ... ")),"<Buffer "+t+">"},Oh.prototype.compare=function(t,e,n,r,s){if(!Dh(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===n&&(n=t?t.length:0),void 0===r&&(r=0),void 0===s&&(s=this.length),e<0||n>t.length||r<0||s>this.length)throw new RangeError("out of range index");if(r>=s&&e>=n)return 0;if(r>=s)return-1;if(e>=n)return 1;if(this===t)return 0;for(var i=(s>>>=0)-(r>>>=0),o=(n>>>=0)-(e>>>=0),a=Math.min(i,o),c=this.slice(r,s),u=t.slice(e,n),l=0;l<a;++l)if(c[l]!==u[l]){i=c[l],o=u[l];break}return i<o?-1:o<i?1:0},Oh.prototype.includes=function(t,e,n){return-1!==this.indexOf(t,e,n)},Oh.prototype.indexOf=function(t,e,n){return Mh(this,t,e,n,!0)},Oh.prototype.lastIndexOf=function(t,e,n){return Mh(this,t,e,n,!1)},Oh.prototype.write=function(t,e,n,r){if(void 0===e)r="utf8",n=this.length,e=0;else if(void 0===n&&"string"==typeof e)r=e,n=this.length,e=0;else{if(!isFinite(e))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");e|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var s=this.length-e;if((void 0===n||n>s)&&(n=s),t.length>0&&(n<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return Gh(this,t,e,n);case"utf8":case"utf-8":return jh(this,t,e,n);case"ascii":return Hh(this,t,e,n);case"latin1":case"binary":return Kh(this,t,e,n);case"base64":return Vh(this,t,e,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Qh(this,t,e,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},Oh.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var Yh=4096;function qh(t,e,n){var r="";n=Math.min(t.length,n);for(var s=e;s<n;++s)r+=String.fromCharCode(127&t[s]);return r}function $h(t,e,n){var r="";n=Math.min(t.length,n);for(var s=e;s<n;++s)r+=String.fromCharCode(t[s]);return r}function Wh(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);for(var s="",i=e;i<n;++i)s+=cf(t[i]);return s}function Zh(t,e,n){for(var r=t.slice(e,n),s="",i=0;i<r.length;i+=2)s+=String.fromCharCode(r[i]+256*r[i+1]);return s}function Xh(t,e,n){if(t%1!=0||t<0)throw new RangeError("offset is not uint");if(t+e>n)throw new RangeError("Trying to access beyond buffer length")}function tf(t,e,n,r,s,i){if(!Dh(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>s||e<i)throw new RangeError('"value" argument is out of bounds');if(n+r>t.length)throw new RangeError("Index out of range")}function ef(t,e,n,r){e<0&&(e=65535+e+1);for(var s=0,i=Math.min(t.length-n,2);s<i;++s)t[n+s]=(e&255<<8*(r?s:1-s))>>>8*(r?s:1-s)}function nf(t,e,n,r){e<0&&(e=4294967295+e+1);for(var s=0,i=Math.min(t.length-n,4);s<i;++s)t[n+s]=e>>>8*(r?s:3-s)&255}function rf(t,e,n,r,s,i){if(n+r>t.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function sf(t,e,n,r,s){return s||rf(t,0,n,4),kh(t,e,n,r,23,4),n+4}function of(t,e,n,r,s){return s||rf(t,0,n,8),kh(t,e,n,r,52,8),n+8}Oh.prototype.slice=function(t,e){var n,r=this.length;if((t=~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),(e=void 0===e?r:~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),e<t&&(e=t),Oh.TYPED_ARRAY_SUPPORT)(n=this.subarray(t,e)).__proto__=Oh.prototype;else{var s=e-t;n=new Oh(s,void 0);for(var i=0;i<s;++i)n[i]=this[i+t]}return n},Oh.prototype.readUIntLE=function(t,e,n){t|=0,e|=0,n||Xh(t,e,this.length);for(var r=this[t],s=1,i=0;++i<e&&(s*=256);)r+=this[t+i]*s;return r},Oh.prototype.readUIntBE=function(t,e,n){t|=0,e|=0,n||Xh(t,e,this.length);for(var r=this[t+--e],s=1;e>0&&(s*=256);)r+=this[t+--e]*s;return r},Oh.prototype.readUInt8=function(t,e){return e||Xh(t,1,this.length),this[t]},Oh.prototype.readUInt16LE=function(t,e){return e||Xh(t,2,this.length),this[t]|this[t+1]<<8},Oh.prototype.readUInt16BE=function(t,e){return e||Xh(t,2,this.length),this[t]<<8|this[t+1]},Oh.prototype.readUInt32LE=function(t,e){return e||Xh(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},Oh.prototype.readUInt32BE=function(t,e){return e||Xh(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},Oh.prototype.readIntLE=function(t,e,n){t|=0,e|=0,n||Xh(t,e,this.length);for(var r=this[t],s=1,i=0;++i<e&&(s*=256);)r+=this[t+i]*s;return r>=(s*=128)&&(r-=Math.pow(2,8*e)),r},Oh.prototype.readIntBE=function(t,e,n){t|=0,e|=0,n||Xh(t,e,this.length);for(var r=e,s=1,i=this[t+--r];r>0&&(s*=256);)i+=this[t+--r]*s;return i>=(s*=128)&&(i-=Math.pow(2,8*e)),i},Oh.prototype.readInt8=function(t,e){return e||Xh(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},Oh.prototype.readInt16LE=function(t,e){e||Xh(t,2,this.length);var n=this[t]|this[t+1]<<8;return 32768&n?4294901760|n:n},Oh.prototype.readInt16BE=function(t,e){e||Xh(t,2,this.length);var n=this[t+1]|this[t]<<8;return 32768&n?4294901760|n:n},Oh.prototype.readInt32LE=function(t,e){return e||Xh(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},Oh.prototype.readInt32BE=function(t,e){return e||Xh(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},Oh.prototype.readFloatLE=function(t,e){return e||Xh(t,4,this.length),Eh(this,t,!0,23,4)},Oh.prototype.readFloatBE=function(t,e){return e||Xh(t,4,this.length),Eh(this,t,!1,23,4)},Oh.prototype.readDoubleLE=function(t,e){return e||Xh(t,8,this.length),Eh(this,t,!0,52,8)},Oh.prototype.readDoubleBE=function(t,e){return e||Xh(t,8,this.length),Eh(this,t,!1,52,8)},Oh.prototype.writeUIntLE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||tf(this,t,e,n,Math.pow(2,8*n)-1,0);var s=1,i=0;for(this[e]=255&t;++i<n&&(s*=256);)this[e+i]=t/s&255;return e+n},Oh.prototype.writeUIntBE=function(t,e,n,r){(t=+t,e|=0,n|=0,r)||tf(this,t,e,n,Math.pow(2,8*n)-1,0);var s=n-1,i=1;for(this[e+s]=255&t;--s>=0&&(i*=256);)this[e+s]=t/i&255;return e+n},Oh.prototype.writeUInt8=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,1,255,0),Oh.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},Oh.prototype.writeUInt16LE=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,2,65535,0),Oh.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):ef(this,t,e,!0),e+2},Oh.prototype.writeUInt16BE=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,2,65535,0),Oh.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):ef(this,t,e,!1),e+2},Oh.prototype.writeUInt32LE=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,4,4294967295,0),Oh.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):nf(this,t,e,!0),e+4},Oh.prototype.writeUInt32BE=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,4,4294967295,0),Oh.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):nf(this,t,e,!1),e+4},Oh.prototype.writeIntLE=function(t,e,n,r){if(t=+t,e|=0,!r){var s=Math.pow(2,8*n-1);tf(this,t,e,n,s-1,-s)}var i=0,o=1,a=0;for(this[e]=255&t;++i<n&&(o*=256);)t<0&&0===a&&0!==this[e+i-1]&&(a=1),this[e+i]=(t/o|0)-a&255;return e+n},Oh.prototype.writeIntBE=function(t,e,n,r){if(t=+t,e|=0,!r){var s=Math.pow(2,8*n-1);tf(this,t,e,n,s-1,-s)}var i=n-1,o=1,a=0;for(this[e+i]=255&t;--i>=0&&(o*=256);)t<0&&0===a&&0!==this[e+i+1]&&(a=1),this[e+i]=(t/o|0)-a&255;return e+n},Oh.prototype.writeInt8=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,1,127,-128),Oh.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},Oh.prototype.writeInt16LE=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,2,32767,-32768),Oh.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):ef(this,t,e,!0),e+2},Oh.prototype.writeInt16BE=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,2,32767,-32768),Oh.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):ef(this,t,e,!1),e+2},Oh.prototype.writeInt32LE=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,4,2147483647,-2147483648),Oh.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):nf(this,t,e,!0),e+4},Oh.prototype.writeInt32BE=function(t,e,n){return t=+t,e|=0,n||tf(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),Oh.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):nf(this,t,e,!1),e+4},Oh.prototype.writeFloatLE=function(t,e,n){return sf(this,t,e,!0,n)},Oh.prototype.writeFloatBE=function(t,e,n){return sf(this,t,e,!1,n)},Oh.prototype.writeDoubleLE=function(t,e,n){return of(this,t,e,!0,n)},Oh.prototype.writeDoubleBE=function(t,e,n){return of(this,t,e,!1,n)},Oh.prototype.copy=function(t,e,n,r){if(n||(n=0),r||0===r||(r=this.length),e>=t.length&&(e=t.length),e||(e=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===t.length||0===this.length)return 0;if(e<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),t.length-e<r-n&&(r=t.length-e+n);var s,i=r-n;if(this===t&&n<e&&e<r)for(s=i-1;s>=0;--s)t[s+e]=this[s+n];else if(i<1e3||!Oh.TYPED_ARRAY_SUPPORT)for(s=0;s<i;++s)t[s+e]=this[s+n];else Uint8Array.prototype.set.call(t,this.subarray(n,n+i),e);return i},Oh.prototype.fill=function(t,e,n,r){if("string"==typeof t){if("string"==typeof e?(r=e,e=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===t.length){var s=t.charCodeAt(0);s<256&&(t=s)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!Oh.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof t&&(t&=255);if(e<0||this.length<e||this.length<n)throw new RangeError("Out of range index");if(n<=e)return this;var i;if(e>>>=0,n=void 0===n?this.length:n>>>0,t||(t=0),"number"==typeof t)for(i=e;i<n;++i)this[i]=t;else{var o=Dh(t)?t:uf(new Oh(t,r).toString()),a=o.length;for(i=0;i<n-e;++i)this[i+e]=o[i%a]}return this};var af=/[^+\/0-9A-Za-z-_]/g;function cf(t){return t<16?"0"+t.toString(16):t.toString(16)}function uf(t,e){var n;e=e||1/0;for(var r=t.length,s=null,i=[],o=0;o<r;++o){if((n=t.charCodeAt(o))>55295&&n<57344){if(!s){if(n>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(o+1===r){(e-=3)>-1&&i.push(239,191,189);continue}s=n;continue}if(n<56320){(e-=3)>-1&&i.push(239,191,189),s=n;continue}n=65536+(s-55296<<10|n-56320)}else s&&(e-=3)>-1&&i.push(239,191,189);if(s=null,n<128){if((e-=1)<0)break;i.push(n)}else if(n<2048){if((e-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((e-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function lf(t){return function(t){var e,n,r,s,i,o;wh||bh();var a=t.length;if(a%4>0)throw new Error("Invalid string. Length must be a multiple of 4");i="="===t[a-2]?2:"="===t[a-1]?1:0,o=new mh(3*a/4-i),r=i>0?a-4:a;var c=0;for(e=0,n=0;e<r;e+=4,n+=3)s=yh[t.charCodeAt(e)]<<18|yh[t.charCodeAt(e+1)]<<12|yh[t.charCodeAt(e+2)]<<6|yh[t.charCodeAt(e+3)],o[c++]=s>>16&255,o[c++]=s>>8&255,o[c++]=255&s;return 2===i?(s=yh[t.charCodeAt(e)]<<2|yh[t.charCodeAt(e+1)]>>4,o[c++]=255&s):1===i&&(s=yh[t.charCodeAt(e)]<<10|yh[t.charCodeAt(e+1)]<<4|yh[t.charCodeAt(e+2)]>>2,o[c++]=s>>8&255,o[c++]=255&s),o}(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(af,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function hf(t,e,n,r){for(var s=0;s<r&&!(s+n>=e.length||s>=t.length);++s)e[s+n]=t[s];return s}function ff(t){return!!t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}function pf(t){return null===t}function df(t){return"string"==typeof t}function gf(t){return"object"==typeof t&&null!==t}function yf(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var mf=Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)};function wf(t){switch(typeof t){case"string":return t;case"boolean":return t?"true":"false";case"number":return isFinite(t)?t:"";default:return""}}function bf(t,e){if(t.map)return t.map(e);for(var n=[],r=0;r<t.length;r++)n.push(e(t[r],r));return n}var Af=Object.keys||function(t){var e=[];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.push(n);return e};function vf(t,e,n,r){e=e||"&",n=n||"=";var s={};if("string"!=typeof t||0===t.length)return s;var i=/\+/g;t=t.split(e);var o=1e3;r&&"number"==typeof r.maxKeys&&(o=r.maxKeys);var a=t.length;o>0&&a>o&&(a=o);for(var c=0;c<a;++c){var u,l,h,f,p=t[c].replace(i,"%20"),d=p.indexOf(n);d>=0?(u=p.substr(0,d),l=p.substr(d+1)):(u=p,l=""),h=decodeURIComponent(u),f=decodeURIComponent(l),yf(s,h)?mf(s[h])?s[h].push(f):s[h]=[s[h],f]:s[h]=f}return s}const Ef=_t.URL,kf=_t.URLSearchParams;var Tf={parse:_f,resolve:Vf,resolveObject:Qf,fileURLToPath:jf,format:Hf,Url:Nf,URL:Ef,URLSearchParams:kf};function Nf(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var xf=/^([a-z0-9.+-]+:)/i,Sf=/:[0-9]*$/,Of=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,Pf=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),Rf=["'"].concat(Pf),If=["%","/","?",";","#"].concat(Rf),Cf=["/","?","#"],Bf=255,Df=/^[+a-z0-9A-Z_-]{0,63}$/,Uf=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,Lf={javascript:!0,"javascript:":!0},Ff={javascript:!0,"javascript:":!0},Mf={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0};function _f(t,e,n){if(t&&gf(t)&&t instanceof Nf)return t;var r=new Nf;return r.parse(t,e,n),r}function Gf(t,e,n,r){if(!df(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var s=e.indexOf("?"),i=-1!==s&&s<e.indexOf("#")?"?":"#",o=e.split(i);o[0]=o[0].replace(/\\/g,"/");var a=e=o.join(i);if(a=a.trim(),!r&&1===e.split("#").length){var c=Of.exec(a);if(c)return t.path=a,t.href=a,t.pathname=c[1],c[2]?(t.search=c[2],t.query=n?vf(t.search.substr(1)):t.search.substr(1)):n&&(t.search="",t.query={}),t}var u,l,h,f,p=xf.exec(a);if(p){var d=(p=p[0]).toLowerCase();t.protocol=d,a=a.substr(p.length)}if(r||p||a.match(/^\/\/[^@\/]+@[^@\/]+/)){var g="//"===a.substr(0,2);!g||p&&Ff[p]||(a=a.substr(2),t.slashes=!0)}if(!Ff[p]&&(g||p&&!Mf[p])){var y,m,w=-1;for(u=0;u<Cf.length;u++)-1!==(l=a.indexOf(Cf[u]))&&(-1===w||l<w)&&(w=l);for(-1!==(m=-1===w?a.lastIndexOf("@"):a.lastIndexOf("@",w))&&(y=a.slice(0,m),a=a.slice(m+1),t.auth=decodeURIComponent(y)),w=-1,u=0;u<If.length;u++)-1!==(l=a.indexOf(If[u]))&&(-1===w||l<w)&&(w=l);-1===w&&(w=a.length),t.host=a.slice(0,w),a=a.slice(w),Jf(t),t.hostname=t.hostname||"";var b="["===t.hostname[0]&&"]"===t.hostname[t.hostname.length-1];if(!b){var A=t.hostname.split(/\./);for(u=0,h=A.length;u<h;u++){var v=A[u];if(v&&!v.match(Df)){for(var E="",k=0,T=v.length;k<T;k++)v.charCodeAt(k)>127?E+="x":E+=v[k];if(!E.match(Df)){var N=A.slice(0,u),x=A.slice(u+1),S=v.match(Uf);S&&(N.push(S[1]),x.unshift(S[2])),x.length&&(a="/"+x.join(".")+a),t.hostname=N.join(".");break}}}}t.hostname.length>Bf?t.hostname="":t.hostname=t.hostname.toLowerCase(),b||(t.hostname=dh(t.hostname)),f=t.port?":"+t.port:"";var O=t.hostname||"";t.host=O+f,t.href+=t.host,b&&(t.hostname=t.hostname.substr(1,t.hostname.length-2),"/"!==a[0]&&(a="/"+a))}if(!Lf[d])for(u=0,h=Rf.length;u<h;u++){var P=Rf[u];if(-1!==a.indexOf(P)){var R=encodeURIComponent(P);R===P&&(R=escape(P)),a=a.split(P).join(R)}}var I=a.indexOf("#");-1!==I&&(t.hash=a.substr(I),a=a.slice(0,I));var C=a.indexOf("?");if(-1!==C?(t.search=a.substr(C),t.query=a.substr(C+1),n&&(t.query=vf(t.query)),a=a.slice(0,C)):n&&(t.search="",t.query={}),a&&(t.pathname=a),Mf[d]&&t.hostname&&!t.pathname&&(t.pathname="/"),t.pathname||t.search){f=t.pathname||"";var B=t.search||"";t.path=f+B}return t.href=Kf(t),t}function jf(t){if("string"==typeof t)t=(new Nf).parse(t);else if(!(t instanceof Nf))throw new TypeError('The "path" argument must be of type string or an instance of URL. Received type '+typeof t+String(t));if("file:"!==t.protocol)throw new TypeError("The URL must be of scheme file");return function(t){const e=t.pathname;for(let t=0;t<e.length;t++)if("%"===e[t]){const n=32|e.codePointAt(t+2);if("2"===e[t+1]&&102===n)throw new TypeError("must not include encoded / characters")}return decodeURIComponent(e)}(t)}function Hf(t){return df(t)&&(t=Gf({},t)),Kf(t)}function Kf(t){var e=t.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var n=t.protocol||"",r=t.pathname||"",s=t.hash||"",i=!1,o="";t.host?i=e+t.host:t.hostname&&(i=e+(-1===t.hostname.indexOf(":")?t.hostname:"["+this.hostname+"]"),t.port&&(i+=":"+t.port)),t.query&&gf(t.query)&&Object.keys(t.query).length&&(o=function(t,e,n,r){return e=e||"&",n=n||"=",null===t&&(t=void 0),"object"==typeof t?bf(Af(t),(function(r){var s=encodeURIComponent(wf(r))+n;return mf(t[r])?bf(t[r],(function(t){return s+encodeURIComponent(wf(t))})).join(e):s+encodeURIComponent(wf(t[r]))})).join(e):r?encodeURIComponent(wf(r))+n+encodeURIComponent(wf(t)):""}(t.query));var a=t.search||o&&"?"+o||"";return n&&":"!==n.substr(-1)&&(n+=":"),t.slashes||(!n||Mf[n])&&!1!==i?(i="//"+(i||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):i||(i=""),s&&"#"!==s.charAt(0)&&(s="#"+s),a&&"?"!==a.charAt(0)&&(a="?"+a),n+i+(r=r.replace(/[?#]/g,(function(t){return encodeURIComponent(t)})))+(a=a.replace("#","%23"))+s}function Vf(t,e){return _f(t,!1,!0).resolve(e)}function Qf(t,e){return t?_f(t,!1,!0).resolveObject(e):e}function Jf(t){var e=t.host,n=Sf.exec(e);n&&(":"!==(n=n[0])&&(t.port=n.substr(1)),e=e.substr(0,e.length-n.length)),e&&(t.hostname=e)}Nf.prototype.parse=function(t,e,n){return Gf(this,t,e,n)},Nf.prototype.format=function(){return Kf(this)},Nf.prototype.resolve=function(t){return this.resolveObject(_f(t,!1,!0)).format()},Nf.prototype.resolveObject=function(t){if(df(t)){var e=new Nf;e.parse(t,!1,!0),t=e}for(var n,r=new Nf,s=Object.keys(this),i=0;i<s.length;i++){var o=s[i];r[o]=this[o]}if(r.hash=t.hash,""===t.href)return r.href=r.format(),r;if(t.slashes&&!t.protocol){for(var a=Object.keys(t),c=0;c<a.length;c++){var u=a[c];"protocol"!==u&&(r[u]=t[u])}return Mf[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(t.protocol&&t.protocol!==r.protocol){if(!Mf[t.protocol]){for(var l=Object.keys(t),h=0;h<l.length;h++){var f=l[h];r[f]=t[f]}return r.href=r.format(),r}if(r.protocol=t.protocol,t.host||Ff[t.protocol])r.pathname=t.pathname;else{for(n=(t.pathname||"").split("/");n.length&&!(t.host=n.shift()););t.host||(t.host=""),t.hostname||(t.hostname=""),""!==n[0]&&n.unshift(""),n.length<2&&n.unshift(""),r.pathname=n.join("/")}if(r.search=t.search,r.query=t.query,r.host=t.host||"",r.auth=t.auth,r.hostname=t.hostname||t.host,r.port=t.port,r.pathname||r.search){var p=r.pathname||"",d=r.search||"";r.path=p+d}return r.slashes=r.slashes||t.slashes,r.href=r.format(),r}var g,y=r.pathname&&"/"===r.pathname.charAt(0),m=t.host||t.pathname&&"/"===t.pathname.charAt(0),w=m||y||r.host&&t.pathname,b=w,A=r.pathname&&r.pathname.split("/")||[],v=r.protocol&&!Mf[r.protocol];if(n=t.pathname&&t.pathname.split("/")||[],v&&(r.hostname="",r.port=null,r.host&&(""===A[0]?A[0]=r.host:A.unshift(r.host)),r.host="",t.protocol&&(t.hostname=null,t.port=null,t.host&&(""===n[0]?n[0]=t.host:n.unshift(t.host)),t.host=null),w=w&&(""===n[0]||""===A[0])),m)r.host=t.host||""===t.host?t.host:r.host,r.hostname=t.hostname||""===t.hostname?t.hostname:r.hostname,r.search=t.search,r.query=t.query,A=n;else if(n.length)A||(A=[]),A.pop(),A=A.concat(n),r.search=t.search,r.query=t.query;else if(null!=t.search)return v&&(r.hostname=r.host=A.shift(),(g=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=g.shift(),r.host=r.hostname=g.shift())),r.search=t.search,r.query=t.query,pf(r.pathname)&&pf(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!A.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var E=A.slice(-1)[0],k=(r.host||t.host||A.length>1)&&("."===E||".."===E)||""===E,T=0,N=A.length;N>=0;N--)"."===(E=A[N])?A.splice(N,1):".."===E?(A.splice(N,1),T++):T&&(A.splice(N,1),T--);if(!w&&!b)for(;T--;T)A.unshift("..");!w||""===A[0]||A[0]&&"/"===A[0].charAt(0)||A.unshift(""),k&&"/"!==A.join("/").substr(-1)&&A.push("");var x=""===A[0]||A[0]&&"/"===A[0].charAt(0);return v&&(r.hostname=r.host=x?"":A.length?A.shift():"",(g=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=g.shift(),r.host=r.hostname=g.shift())),(w=w||r.host&&A.length)&&!x&&A.unshift(""),A.length?r.pathname=A.join("/"):(r.pathname=null,r.path=null),pf(r.pathname)&&pf(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},Nf.prototype.parseHost=function(){return Jf(this)};var zf=Object.freeze({__proto__:null,URL:Ef,URLSearchParams:kf,Url:Nf,default:Tf,fileURLToPath:jf,format:Hf,parse:_f,resolve:Vf,resolveObject:Qf}),Yf=e(zf);function qf(t,e){for(var n=0,r=t.length-1;r>=0;r--){var s=t[r];"."===s?t.splice(r,1):".."===s?(t.splice(r,1),n++):n&&(t.splice(r,1),n--)}if(e)for(;n--;n)t.unshift("..");return t}var $f=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,Wf=function(t){return $f.exec(t).slice(1)};function Zf(){for(var t="",e=!1,n=arguments.length-1;n>=-1&&!e;n--){var r=n>=0?arguments[n]:"/";if("string"!=typeof r)throw new TypeError("Arguments to path.resolve must be strings");r&&(t=r+"/"+t,e="/"===r.charAt(0))}return(e?"/":"")+(t=qf(ap(t.split("/"),(function(t){return!!t})),!e).join("/"))||"."}function Xf(t){var e=tp(t),n="/"===cp(t,-1);return(t=qf(ap(t.split("/"),(function(t){return!!t})),!e).join("/"))||e||(t="."),t&&n&&(t+="/"),(e?"/":"")+t}function tp(t){return"/"===t.charAt(0)}function ep(){return Xf(ap(Array.prototype.slice.call(arguments,0),(function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t})).join("/"))}function np(t,e){function n(t){for(var e=0;e<t.length&&""===t[e];e++);for(var n=t.length-1;n>=0&&""===t[n];n--);return e>n?[]:t.slice(e,n-e+1)}t=Zf(t).substr(1),e=Zf(e).substr(1);for(var r=n(t.split("/")),s=n(e.split("/")),i=Math.min(r.length,s.length),o=i,a=0;a<i;a++)if(r[a]!==s[a]){o=a;break}var c=[];for(a=o;a<r.length;a++)c.push("..");return(c=c.concat(s.slice(o))).join("/")}function rp(t){var e=Wf(t),n=e[0],r=e[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."}function sp(t,e){var n=Wf(t)[2];return e&&n.substr(-1*e.length)===e&&(n=n.substr(0,n.length-e.length)),n}function ip(t){return Wf(t)[3]}var op={extname:ip,basename:sp,dirname:rp,sep:"/",delimiter:":",relative:np,join:ep,isAbsolute:tp,normalize:Xf,resolve:Zf};function ap(t,e){if(t.filter)return t.filter(e);for(var n=[],r=0;r<t.length;r++)e(t[r],r,t)&&n.push(t[r]);return n}var cp="b"==="ab".substr(-1)?function(t,e,n){return t.substr(e,n)}:function(t,e,n){return e<0&&(e=t.length+e),t.substr(e,n)},up=Object.freeze({__proto__:null,basename:sp,default:op,delimiter:":",dirname:rp,extname:ip,isAbsolute:tp,join:ep,normalize:Xf,relative:np,resolve:Zf,sep:"/"}),lp=e(up),hp=e(Object.freeze({__proto__:null,default:{}}));let fp={PROOF_OF_INTEGRITY_ADDRESS:"0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512",STEALTH_ANNOUNCER_ADDRESS:"0x5FbDB2315678afecb367f032d93F642f64180aa3"};if("undefined"==typeof window){const{fileURLToPath:t}=Yf,{dirname:e}=lp,{readFileSync:n}=hp,{join:r}=lp;try{const s=t(import.meta.url),i=n(r(e(s),"contract-address.json"),"utf8");fp=JSON.parse(i),console.log("Loaded contract addresses:",fp)}catch(hh){console.warn("Warning: contract-address.json not found or invalid")}}const pp={CHAIN_ID:1337,PROOF_OF_INTEGRITY_ADDRESS:fp.PROOF_OF_INTEGRITY_ADDRESS,STEALTH_ANNOUNCER_ADDRESS:fp.STEALTH_ANNOUNCER_ADDRESS,RPC_URL:"http://127.0.0.1:8545",GUN_PEER:"http://localhost:8765/gun"},dp={optimismSepolia:{STEALTH_ANNOUNCER_ADDRESS:"0xD0F2e9DA59d2DFECFdE67CcF17300BB6093A72f8",PROOF_OF_INTEGRITY_ADDRESS:"0x...",RPC_URL:"https://sepolia.optimism.io",CHAIN_ID:11155420},arbitrumSepolia:{STEALTH_ANNOUNCER_ADDRESS:"0x...",PROOF_OF_INTEGRITY_ADDRESS:"0x...",RPC_URL:"https://sepolia-rollup.arbitrum.io/rpc",CHAIN_ID:421614},localhost:{RPC_URL:"http://127.0.0.1:8545",CHAIN_ID:1337}};function gp(t){let e;if("localhost"===t)try{return e={...dp.localhost,...sh},console.log("Using local addresses:",e),e}catch(t){throw console.warn("No local addresses found"),new Error("No local addresses found. Did you run local deployment?")}if(e=dp[t],!e)throw new Error(`Chain ${t} not supported. Supported chains: ${Object.keys(dp).join(", ")}`);return e}dp.optimismSepolia.STEALTH_ANNOUNCER_ADDRESS,dp.optimismSepolia.PROOF_OF_INTEGRITY_ADDRESS;const yp=[{inputs:[{internalType:"address",name:"_devAddress",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{internalType:"string",name:"senderPublicKey",type:"string"},{internalType:"string",name:"spendingPublicKey",type:"string"},{internalType:"address",name:"stealthAddress",type:"address"},{internalType:"uint256",name:"timestamp",type:"uint256"}],name:"StealthPaymentAnnounced",type:"event"},{anonymous:!1,inputs:[{internalType:"address",name:"newAddress",type:"address"}],name:"DevAddressUpdated",type:"event"},{anonymous:!1,inputs:[{internalType:"uint256",name:"newFee",type:"uint256"}],name:"DevFeeUpdated",type:"event"},{inputs:[{internalType:"string",name:"senderPublicKey",type:"string"},{internalType:"string",name:"spendingPublicKey",type:"string"},{internalType:"address",name:"stealthAddress",type:"address"}],name:"announcePayment",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"devAddress",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"devFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getAnnouncementsCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"fromIndex",type:"uint256"},{internalType:"uint256",name:"toIndex",type:"uint256"}],name:"getAnnouncementsInRange",outputs:[{components:[{internalType:"string",name:"senderPublicKey",type:"string"},{internalType:"string",name:"spendingPublicKey",type:"string"},{internalType:"address",name:"stealthAddress",type:"address"},{internalType:"uint256",name:"timestamp",type:"uint256"}],internalType:"struct StealthAnnouncer.StealthAnnouncement[]",name:"",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_newFee",type:"uint256"}],name:"updateDevFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_newAddress",type:"address"}],name:"updateDevAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawStuckETH",outputs:[],stateMutability:"nonpayable",type:"function"}],mp=[{inputs:[{internalType:"bytes[]",name:"nodeIds",type:"bytes[]"},{internalType:"bytes32[]",name:"contentHashes",type:"bytes32[]"}],name:"batchUpdateData",outputs:[],stateMutability:"nonpayable",type:"function"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes",name:"nodeId",type:"bytes"},{indexed:!1,internalType:"bytes32",name:"contentHash",type:"bytes32"},{indexed:!1,internalType:"address",name:"updater",type:"address"}],name:"DataUpdated",type:"event"},{inputs:[{internalType:"bytes",name:"nodeId",type:"bytes"}],name:"getLatestRecord",outputs:[{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"nodeId",type:"bytes"},{internalType:"bytes32",name:"contentHash",type:"bytes32"}],name:"updateData",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"nodeId",type:"bytes"},{internalType:"bytes32",name:"contentHash",type:"bytes32"}],name:"verifyData",outputs:[{internalType:"bool",name:"",type:"bool"},{internalType:"uint256",name:"",type:"uint256"},{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"}];!function(){function t(e,r){return r?n(e):e.slice?t[s(e)]:function(n,r){e(n={exports:{}}),t[s(r)]=n.exports};function s(t){return t.split("/").slice(-1).toString().replace(".js","")}}if("undefined"!=typeof module)var e=module;t((function(t){"undefined"!=typeof self&&(t.window=self),"undefined"!=typeof window&&(t.window=window);var n=(t.window||t).SEA||{};(n.window=t.window)&&(n.window.SEA=n);try{undefined+""!=typeof e&&(e.exports=n)}catch(t){}t.exports=n}))(t,"./root"),t((function(e){var n=t("./root");try{n.window&&location.protocol.indexOf("s")<0&&location.host.indexOf("localhost")<0&&!/^127\.\d+\.\d+\.\d+$/.test(location.hostname)&&location.protocol.indexOf("file:")<0&&(console.warn("HTTPS needed for WebCrypto in SEA, redirecting..."),location.protocol="https:")}catch(t){}}))(t,"./https"),t((function(t){var e;e+""==typeof btoa&&(_t.btoa=function(t){return Oh.from(t,"binary").toString("base64")},_t.atob=function(t){return Oh.from(t,"base64").toString("binary")})}))(t,"./base64"),t((function(e){function n(){}t("./base64"),Object.assign(n,{from:Array.from}),n.prototype=Object.create(Array.prototype),n.prototype.toString=function(t,e,n){t=t||"utf8",e=e||0;const r=this.length;if("hex"===t){const t=new Uint8Array(this);return[...Array((n&&n+1||r)-e).keys()].map((n=>t[n+e].toString(16).padStart(2,"0"))).join("")}return"utf8"===t?Array.from({length:(n||r)-e},((t,n)=>String.fromCharCode(this[n+e]))).join(""):"base64"===t?btoa(this):void 0},e.exports=n}))(t,"./array"),t((function(e){t("./base64");var n=t("./array");function r(...t){return console.warn("new SafeBuffer() is depreciated, please use SafeBuffer.from()"),r.from(...t)}r.prototype=Object.create(Array.prototype),Object.assign(r,{from(){if(!Object.keys(arguments).length||null==arguments[0])throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.");const t=arguments[0];let e;if("string"==typeof t){const r=arguments[1]||"utf8";if("hex"===r){const r=t.match(/([\da-fA-F]{2})/g).map((t=>parseInt(t,16)));if(!r||!r.length)throw new TypeError("Invalid first argument for type 'hex'.");e=n.from(r)}else if("utf8"===r||"binary"===r){const r=t.length,s=new Uint16Array(r);Array.from({length:r},((e,n)=>s[n]=t.charCodeAt(n))),e=n.from(s)}else if("base64"===r){const r=atob(t),s=r.length,i=new Uint8Array(s);Array.from({length:s},((t,e)=>i[e]=r.charCodeAt(e))),e=n.from(i)}else"binary"===r?e=n.from(t):console.info("SafeBuffer.from unknown encoding: "+r);return e}t.byteLength;if(t.byteLength?t.byteLength:t.length){let e;return t instanceof ArrayBuffer&&(e=new Uint8Array(t)),n.from(e||t)}},alloc:(t,e=0)=>n.from(new Uint8Array(Array.from({length:t},(()=>e)))),allocUnsafe:t=>n.from(new Uint8Array(Array.from({length:t}))),concat(t){if(!Array.isArray(t))throw new TypeError("First argument must be Array containing ArrayBuffer or Uint8Array instances.");return n.from(t.reduce(((t,e)=>t.concat(Array.from(e))),[]))}}),r.prototype.from=r.from,r.prototype.toString=n.prototype.toString,e.exports=r}))(t,"./buffer"),t((function(n){const r=t("./root"),s={Buffer:t("./buffer")};var i={};if(JSON.parseAsync=JSON.parseAsync||function(t,e,n){try{e(undefined,JSON.parse(t,n))}catch(t){e(t)}},JSON.stringifyAsync=JSON.stringifyAsync||function(t,e,n,r){try{e(undefined,JSON.stringify(t,n,r))}catch(t){e(t)}},s.parse=function(t,e){return new Promise((function(n,r){JSON.parseAsync(t,(function(t,e){t?r(t):n(e)}),e)}))},s.stringify=function(t,e,n){return new Promise((function(r,s){JSON.stringifyAsync(t,(function(t,e){t?s(t):r(e)}),e,n)}))},r.window&&(s.crypto=r.window.crypto||r.window.msCrypto,s.subtle=(s.crypto||i).subtle||(s.crypto||i).webkitSubtle,s.TextEncoder=r.window.TextEncoder,s.TextDecoder=r.window.TextDecoder,s.random=t=>s.Buffer.from(s.crypto.getRandomValues(new Uint8Array(s.Buffer.alloc(t))))),!s.TextDecoder){const{TextEncoder:n,TextDecoder:r}=t((undefined+""==typeof e?".":"")+"./lib/text-encoding",1);s.TextDecoder=r,s.TextEncoder=n}if(!s.crypto)try{var o=t("crypto",1);Object.assign(s,{crypto:o,random:t=>s.Buffer.from(o.randomBytes(t))});const{Crypto:e}=t("@peculiar/webcrypto",1);s.ossl=s.subtle=new e({directory:"ossl"}).subtle}catch(t){console.log("Please `npm install @peculiar/webcrypto` or add it to your package.json !")}n.exports=s}))(t,"./shim"),t((function(e){var n=t("./root"),r=t("./shim"),s={pbkdf2:{hash:{name:"SHA-256"},iter:1e5,ks:64},ecdsa:{pair:{name:"ECDSA",namedCurve:"P-256"},sign:{name:"ECDSA",hash:{name:"SHA-256"}}},ecdh:{name:"ECDH",namedCurve:"P-256"},jwk:function(t,e){var n={kty:"EC",crv:"P-256",x:(t=t.split("."))[0],y:t[1],ext:!0};return n.key_ops=e?["sign"]:["verify"],e&&(n.d=e),n},keyToJwk:function(t){return{kty:"oct",k:t.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,""),ext:!1,alg:"A256GCM"}},recall:{validity:43200,hook:function(t){return t}},check:function(t){return"string"==typeof t&&"SEA{"===t.slice(0,4)},parse:async function(t){try{var e="string"==typeof t;return e&&"SEA{"===t.slice(0,4)&&(t=t.slice(3)),e?await r.parse(t):t}catch(t){}return t}};n.opt=s,e.exports=s}))(t,"./settings"),t((function(e){var n=t("./shim");e.exports=async function(t,e){var r="string"==typeof t?t:await n.stringify(t),s=await n.subtle.digest({name:e||"SHA-256"},(new n.TextEncoder).encode(r));return n.Buffer.from(s)}}))(t,"./sha256"),t((function(e){const n=t("./shim"),r=n.subtle,s=n.ossl?n.ossl:r;e.exports=t=>s.digest({name:"SHA-1"},new ArrayBuffer(t))}))(t,"./sha1"),t((function(e){var n=t("./root"),r=t("./shim"),s=t("./settings"),i=t("./sha256");n.work=n.work||(async(t,e,o,a)=>{try{var c=(e||{}).epub||e;if(a=a||{},c instanceof Function&&(o=c,c=undefined),t="string"==typeof t?t:await r.stringify(t),"sha"===(a.name||"").toLowerCase().slice(0,3)){var u=r.Buffer.from(await i(t,a.name),"binary").toString(a.encode||"base64");if(o)try{o(u)}catch(t){console.log(t)}return u}c=c||r.random(9);var l=await(r.ossl||r.subtle).importKey("raw",(new r.TextEncoder).encode(t),{name:a.name||"PBKDF2"},!1,["deriveBits"]),h=await(r.ossl||r.subtle).deriveBits({name:a.name||"PBKDF2",iterations:a.iterations||s.pbkdf2.iter,salt:(new r.TextEncoder).encode(a.salt||c),hash:a.hash||s.pbkdf2.hash},l,a.length||8*s.pbkdf2.ks);t=r.random(t.length);var f=r.Buffer.from(h,"binary").toString(a.encode||"base64");if(o)try{o(f)}catch(t){console.log(t)}return f}catch(t){if(console.log(t),n.err=t,n.throw)throw t;return void(o&&o())}}),e.exports=n.work}))(t,"./work"),t((function(e){var n=t("./root"),r=t("./shim");t("./settings"),n.name=n.name||(async(t,e)=>{try{if(t)try{t()}catch(t){console.log(t)}return}catch(e){if(console.log(e),n.err=e,n.throw)throw e;return void(t&&t())}}),n.pair=n.pair||(async(t,e)=>{try{var s=r.ossl||r.subtle,i=await r.subtle.generateKey({name:"ECDSA",namedCurve:"P-256"},!0,["sign","verify"]).then((async t=>{var e={};e.priv=(await r.subtle.exportKey("jwk",t.privateKey)).d;var n=await r.subtle.exportKey("jwk",t.publicKey);return e.pub=n.x+"."+n.y,e}));try{var o=await s.generateKey({name:"ECDH",namedCurve:"P-256"},!0,["deriveKey"]).then((async t=>{var e={};e.epriv=(await s.exportKey("jwk",t.privateKey)).d;var n=await s.exportKey("jwk",t.publicKey);return e.epub=n.x+"."+n.y,e}))}catch(t){if(n.window)throw t;if("Error: ECDH is not a supported algorithm"!=t)throw t;console.log("Ignoring ECDH...")}o=o||{};var a={pub:i.pub,priv:i.priv,epub:o.epub,epriv:o.epriv};if(t)try{t(a)}catch(t){console.log(t)}return a}catch(e){if(console.log(e),n.err=e,n.throw)throw e;return void(t&&t())}}),e.exports=n.pair}))(t,"./pair"),t((function(e){var n,r=t("./root"),s=t("./shim"),i=t("./settings"),o=t("./sha256");r.sign=r.sign||(async(t,e,a,c)=>{try{if(c=c||{},!(e||c).priv){if(!r.I)throw"No signing key.";e=await r.I(null,{what:t,how:"sign",why:c.why})}if(n===t)throw"`undefined` not allowed.";var u=await i.parse(t),l=c.check=c.check||u;if(r.verify&&(r.opt.check(l)||l&&l.s&&l.m)&&n!==await r.verify(l,e)){var h=await i.parse(l);if(c.raw||(h="SEA"+await s.stringify(h)),a)try{a(h)}catch(t){console.log(t)}return h}var f=e.pub,p=e.priv,d=i.jwk(f,p),g=await o(u),y=await(s.ossl||s.subtle).importKey("jwk",d,{name:"ECDSA",namedCurve:"P-256"},!1,["sign"]).then((t=>(s.ossl||s.subtle).sign({name:"ECDSA",hash:{name:"SHA-256"}},t,new Uint8Array(g))));h={m:u,s:s.Buffer.from(y,"binary").toString(c.encode||"base64")};if(c.raw||(h="SEA"+await s.stringify(h)),a)try{a(h)}catch(t){console.log(t)}return h}catch(t){if(console.log(t),r.err=t,r.throw)throw t;return void(a&&a())}}),e.exports=r.sign}))(t,"./sign"),t((function(e){var n,r=t("./root"),s=t("./shim"),i=t("./settings"),o=t("./sha256");r.verify=r.verify||(async(t,e,a,c)=>{try{var u=await i.parse(t);if(!1===e){var l=await i.parse(u.m);if(a)try{a(l)}catch(t){console.log(t)}return l}c=c||{};var h,f,p,d=e.pub||e,g=r.opt.slow_leak?await r.opt.slow_leak(d):await(s.ossl||s.subtle).importKey("jwk",i.jwk(d),{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]),y=await o(u.m);try{if(h=s.Buffer.from(u.s,c.encode||"base64"),f=new Uint8Array(h),!(p=await(s.ossl||s.subtle).verify({name:"ECDSA",hash:{name:"SHA-256"}},g,f,new Uint8Array(y))))throw"Signature did not match."}catch(n){if(r.opt.fallback)return await r.opt.fall_verify(t,e,a,c)}var m=p?await i.parse(u.m):n;if(a)try{a(m)}catch(t){console.log(t)}return m}catch(t){if(console.log(t),r.err=t,r.throw)throw t;return void(a&&a())}}),e.exports=r.verify;var a={};r.opt.slow_leak=t=>{if(a[t])return a[t];var e=i.jwk(t);return a[t]=(s.ossl||s.subtle).importKey("jwk",e,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]),a[t]};var c=r.opt;r.opt.fall_verify=async function(t,e,a,u,l){if(l===r.opt.fallback)throw"Signature did not match";l=l||1;var h=t||"";t=r.opt.unpack(t)||t;var f,p,d,g=await i.parse(t),y=e.pub||e,m=await r.opt.slow_leak(y),w=l<=r.opt.fallback?s.Buffer.from(await s.subtle.digest({name:"SHA-256"},(new s.TextEncoder).encode(await i.parse(g.m)))):await o(g.m);try{if(f=s.Buffer.from(g.s,u.encode||"base64"),p=new Uint8Array(f),!(d=await(s.ossl||s.subtle).verify({name:"ECDSA",hash:{name:"SHA-256"}},m,p,new Uint8Array(w))))throw"Signature did not match."}catch(t){try{f=s.Buffer.from(g.s,"utf8"),p=new Uint8Array(f),d=await(s.ossl||s.subtle).verify({name:"ECDSA",hash:{name:"SHA-256"}},m,p,new Uint8Array(w))}catch(t){if(!d)throw"Signature did not match."}}var b=d?await i.parse(g.m):n;if(c.fall_soul=h["#"],c.fall_key=h["."],c.fall_val=t,c.fall_state=h[">"],a)try{a(b)}catch(t){console.log(t)}return b},r.opt.fallback=2}))(t,"./verify"),t((function(e){var n=t("./shim"),r=t("./settings"),s=t("./sha256");e.exports=async(t,e,i)=>{const o=t+(e||n.random(8)).toString("utf8"),a=n.Buffer.from(await s(o),"binary"),c=r.keyToJwk(a);return await n.subtle.importKey("jwk",c,{name:"AES-GCM"},!1,["encrypt","decrypt"])}}))(t,"./aeskey"),t((function(e){var n=t("./root"),r=t("./shim");t("./settings");var s=t("./aeskey");n.encrypt=n.encrypt||(async(t,e,i,o)=>{try{o=o||{};var a=(e||o).epriv||e;if(undefined===t)throw"`undefined` not allowed.";if(!a){if(!n.I)throw"No encryption key.";a=(e=await n.I(null,{what:t,how:"encrypt",why:o.why})).epriv||e}var c="string"==typeof t?t:await r.stringify(t),u={s:r.random(9),iv:r.random(15)},l=await s(a,u.s,o).then((t=>r.subtle.encrypt({name:o.name||"AES-GCM",iv:new Uint8Array(u.iv)},t,(new r.TextEncoder).encode(c)))),h={ct:r.Buffer.from(l,"binary").toString(o.encode||"base64"),iv:u.iv.toString(o.encode||"base64"),s:u.s.toString(o.encode||"base64")};if(o.raw||(h="SEA"+await r.stringify(h)),i)try{i(h)}catch(t){console.log(t)}return h}catch(t){if(console.log(t),n.err=t,n.throw)throw t;return void(i&&i())}}),e.exports=n.encrypt}))(t,"./encrypt"),t((function(e){var n=t("./root"),r=t("./shim"),s=t("./settings"),i=t("./aeskey");n.decrypt=n.decrypt||(async(t,e,o,a)=>{try{a=a||{};var c=(e||a).epriv||e;if(!c){if(!n.I)throw"No decryption key.";c=(e=await n.I(null,{what:t,how:"decrypt",why:a.why})).epriv||e}var u,l,h,f=await s.parse(t);try{u=r.Buffer.from(f.s,a.encode||"base64"),l=r.Buffer.from(f.iv,a.encode||"base64"),h=r.Buffer.from(f.ct,a.encode||"base64");var p=await i(c,u,a).then((t=>r.subtle.decrypt({name:a.name||"AES-GCM",iv:new Uint8Array(l),tagLength:128},t,new Uint8Array(h))))}catch(r){if("utf8"===a.encode)throw"Could not decrypt";if(n.opt.fallback)return a.encode="utf8",await n.decrypt(t,e,o,a)}var d=await s.parse(new r.TextDecoder("utf8").decode(p));if(o)try{o(d)}catch(t){console.log(t)}return d}catch(t){if(console.log(t),n.err=t,n.throw)throw t;return void(o&&o())}}),e.exports=n.decrypt}))(t,"./decrypt"),t((function(e){var n=t("./root"),r=t("./shim");t("./settings"),n.secret=n.secret||(async(t,e,i,o)=>{try{if(o=o||{},!e||!e.epriv||!e.epub){if(!n.I)throw"No secret mix.";e=await n.I(null,{what:t,how:"secret",why:o.why})}var a=t.epub||t,c=e.epub,u=e.epriv,l=r.ossl||r.subtle,h=s(a),f=Object.assign({public:await l.importKey(...h,!0,[])},{name:"ECDH",namedCurve:"P-256"}),p=s(c,u),d=await l.importKey(...p,!1,["deriveBits"]).then((async t=>{var e=await l.deriveBits(f,t,256),n=new Uint8Array(e),r=await l.importKey("raw",n,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"]);return l.exportKey("jwk",r).then((({k:t})=>t))}));if(i)try{i(d)}catch(t){console.log(t)}return d}catch(t){if(console.log(t),n.err=t,n.throw)throw t;return void(i&&i())}});var s=(t,e)=>{var[n,r]=t.split("."),s=e?{d:e}:{};return["jwk",Object.assign(s,{x:n,y:r,kty:"EC",crv:"P-256",ext:!0}),{name:"ECDH",namedCurve:"P-256"}]};e.exports=n.secret}))(t,"./secret"),t((function(e){var n=t("./root");n.certify=n.certify||(async(t,e={},r,s,i={})=>{try{if(console.log("SEA.certify() is an early experimental community supported method that may change API behavior without warning in any future version."),t=(()=>{var e=[];if(t){if(("string"==typeof t||Array.isArray(t))&&t.indexOf("*")>-1)return"*";if("string"==typeof t)return t;if(Array.isArray(t)){if(1===t.length&&t[0])return"object"==typeof t[0]&&t[0].pub?t[0].pub:"string"==typeof t[0]?t[0]:null;t.map((t=>{"string"==typeof t?e.push(t):"object"==typeof t&&t.pub&&e.push(t.pub)}))}return"object"==typeof t&&t.pub?t.pub:e.length>0?e:null}})(),!t)return console.log("No certificant found.");const a=!i.expiry||"number"!=typeof i.expiry&&"string"!=typeof i.expiry?null:parseFloat(i.expiry),c=(e||{}).read?e.read:null,u=(e||{}).write?e.write:"string"==typeof e||Array.isArray(e)||e["+"]||e["#"]||e["."]||e["="]||e["*"]||e[">"]||e["<"]?e:null,l=(i||{}).block||(i||{}).blacklist||(i||{}).ban||{},h=l.read&&("string"==typeof l.read||(l.read||{})["#"])?l.read:null,f="string"==typeof l?l:l.write&&("string"==typeof l.write||l.write["#"])?l.write:null;if(!c&&!u)return console.log("No policy found.");const p=JSON.stringify({c:t,...a?{e:a}:{},...c?{r:c}:{},...u?{w:u}:{},...h?{rb:h}:{},...f?{wb:f}:{}});var o=await n.sign(p,r,null,{raw:1});if(i.raw||(o="SEA"+JSON.stringify(o)),s)try{s(o)}catch(t){console.log(t)}return o}catch(t){if(n.err=t,n.throw)throw t;return void(s&&s())}}),e.exports=n.certify}))(t,"./certify"),t((function(e){var n=t("./shim"),r=t("./root");r.work=t("./work"),r.sign=t("./sign"),r.verify=t("./verify"),r.encrypt=t("./encrypt"),r.decrypt=t("./decrypt"),r.certify=t("./certify"),r.random=r.random||n.random,r.Buffer=r.Buffer||t("./buffer"),r.keyid=r.keyid||(async t=>{try{const e=n.Buffer.concat(t.replace(/-/g,"+").replace(/_/g,"/").split(".").map((t=>n.Buffer.from(t,"base64")))),r=n.Buffer.concat([n.Buffer.from([153,e.length/256,e.length%256]),e]),s=await sha1hash(r),i=n.Buffer.from(s,"binary");return i.toString("hex",i.length-8)}catch(t){throw console.log(t),t}}),((r.window||{}).GUN||{}).SEA=r,e.exports=r}))(t,"./sea"),t((function(n){var r,s=t("./sea");function i(t){this._={$:this}}function o(){return r.state().toString(36).replace(".","")}r=s.window?s.window.GUN||{chain:{}}:t((undefined+""==typeof e?".":"")+"./gun",1),s.GUN=r,i.prototype=function(){function t(){}return t.prototype=r.chain,new t}(),i.prototype.constructor=i,r.chain.user=function(t){var e,n=this.back(-1);if(t)return t=s.opt.pub((t._||"")["#"])||t,n.get("~"+t);if(e=n.back("user"))return e;var r=n=n._,a=r.opt.uuid||o;return(r=(e=r.user=this.chain(new i))._).opt={},r.opt.uuid=function(t){var e=a(),r=n.user;return r&&(r=r.is)&&(r=r.pub)?(e="~"+r+"/"+e,t&&t.call&&t(null,e),e):e},e},r.User=i,i.GUN=r,i.SEA=r.SEA=s,n.exports=i}))(t,"./user"),t((function(n){var r;(""+r!=typeof GUN?GUN||{chain:{}}:t((""+r==typeof e?".":"")+"./gun",1)).chain.then=function(t,e){var n=this,r=new Promise((function(t,r){n.once(t,e)}));return t?r.then(t):r}}))(t,"./then"),t((function(e){var n=t("./user"),r=n.SEA,s=n.GUN,i=function(){};n.prototype.create=function(...t){var e,n="object"==typeof t[0]&&(t[0].pub||t[0].epub)?t[0]:"object"==typeof t[1]&&(t[1].pub||t[1].epub)?t[1]:null,o=n&&(n.pub||n.epub)?n.pub:"string"==typeof t[0]?t[0]:null,a=n&&(n.pub||n.epub)?n:o&&"string"==typeof t[1]?t[1]:null,c=t.filter((t=>"function"==typeof t))[0]||null,u=t&&t.length>1&&"object"==typeof t[t.length-1]?t[t.length-1]:{},l=this,h=l._,f=l.back(-1);if((c=c||i,!1!==(u=u||{}).check)&&(o||(e="No user."),(a||"").length<8&&(e="Password too short!"),e))return c({err:s.log(e)}),l;if(h.ing)return(c||i)({err:s.log("User is already being created or authenticated!"),wait:!0}),l;h.ing=!0;var p={a:function(t){if(p.pubs=t,t&&!u.already){var e={err:s.log("User already created!")};return h.ing=!1,(c||i)(e),void l.leave()}p.salt=String.random(64),r.work(a,p.salt,p.b)},b:function(t){p.proof=t,n?p.c(n):r.pair(p.c)},c:function(t){var e;p.pair=t||{},(e=h.root.user)&&(e._.sea=t,e.is={pub:t.pub,epub:t.epub,alias:o}),p.data={pub:t.pub},p.d()},d:function(){p.data.alias=o,p.e()},e:function(){p.data.epub=p.pair.epub,r.encrypt({priv:p.pair.priv,epriv:p.pair.epriv},p.proof,p.f,{raw:1})},f:function(t){p.data.auth=JSON.stringify({ek:t,s:p.salt}),p.g(p.data.auth)},g:function(t){var e;p.data.auth=p.data.auth||t,f.get(e="~"+p.pair.pub).put(p.data).on(p.h);var n={};n[e]={"#":e},f.get("~@"+o).put(n).get(e).on(p.i)},h:function(t,e,n,r){r.off(),p.h.ok=1,p.i()},i:function(t,e,r,s){s&&(p.i.ok=1,s.off()),p.h.ok&&p.i.ok&&(h.ing=!1,c({ok:0,pub:p.pair.pub}),i===c&&(n?l.auth(n):l.auth(o,a)))}};return f.get("~@"+o).once(p.a),l},n.prototype.leave=function(t,e){var n=this.back(-1)._.user;if(n&&(delete n.is,delete n._.is,delete n._.sea),r.window)try{var s={};delete(s=r.window.sessionStorage).recall,delete s.pair}catch(t){}return this}}))(t,"./create"),t((function(e){var n=t("./user"),r=n.SEA,s=n.GUN,i=function(){};function o(t){if("string"!=typeof t)return t;try{t=JSON.parse(t)}catch(e){t={}}return t}n.prototype.auth=function(...t){var e="object"==typeof t[0]&&(t[0].pub||t[0].epub)?t[0]:"object"==typeof t[1]&&(t[1].pub||t[1].epub)?t[1]:null,n=e||"string"!=typeof t[0]?null:t[0],a=!n&&(!e||e.priv&&e.epriv)||"string"!=typeof t[1]?null:t[1],c=t.filter((t=>"function"==typeof t))[0]||null,u=t&&t.length>1&&"object"==typeof t[t.length-1]?t[t.length-1]:{},l=this,h=l._,f=l.back(-1);if(h.ing)return(c||i)({err:s.log("User is already being created or authenticated!"),wait:!0}),l;h.ing=!0;var p,d={},g=9;return d.a=function(t){if(!t)return d.b();if(!t.pub){var e=[];return Object.keys(t).forEach((function(n){"_"!=n&&e.push(t[n])})),d.b(e)}if(d.name)return d.f(t);d.c((d.data=t).auth)},d.b=function(t){var e=(d.list=(d.list||[]).concat(t||[])).shift();if(p===e)return d.name?d.err("Your user account is not published for dApps to access, please consider syncing it online, or allowing local access by adding your device as a peer."):n&&g--?void f.get("~@"+n).once(d.a):d.err("Wrong user or password.");f.get(e).once(d.a)},d.c=function(t){return p===t?d.b():"string"==typeof t?d.c(o(t)):void r.work(a,(d.auth=t).s,d.d,d.enc)},d.d=function(t){r.decrypt(d.auth.ek,t,d.e,d.enc)},d.e=function(t){if(p===t)return d.enc?(d.enc=null,d.b()):(d.enc={encode:"utf8"},d.c(d.auth));d.half=t,d.f(d.data)},d.f=function(t){var e=d.half||{},n=d.data||{};d.g(d.lol={pub:t.pub||n.pub,epub:t.epub||n.epub,priv:t.priv||e.priv,epriv:t.epriv||e.epriv})},d.g=function(t){if(!t||!t.pub||!t.epub)return d.b();d.pair=t;var e=f._.user,g=e._;g.tag;var y=g.opt;(g=e._=f.get("~"+t.pub)._).opt=y,e.is={pub:t.pub,epub:t.epub,alias:n||t.pub},g.sea=d.pair,h.ing=!1;try{a&&p==(o(h.root.graph["~"+t.pub].auth)||"")[":"]&&(u.shuffle=u.change=a)}catch(t){}if(u.change?d.z():(c||i)(g),r.window&&(l.back("user")._.opt||u).remember)try{var m={};(m=r.window.sessionStorage).recall=!0,m.pair=JSON.stringify(t)}catch(t){}try{f._.tag.auth?f._.on("auth",g):setTimeout((function(){f._.on("auth",g)}),1)}catch(t){s.log("Your 'auth' callback crashed with:",t)}},d.h=function(t){return t?((n=t.alias)||(n=t.alias="~"+e.pub),t.auth?(e=null,void d.c((d.data=t).auth)):d.g(e)):d.b()},d.z=function(){d.salt=String.random(64),r.work(u.change,d.salt,d.y)},d.y=function(t){r.encrypt({priv:d.pair.priv,epriv:d.pair.epriv},t,d.x,{raw:1})},d.x=function(t){d.w(JSON.stringify({ek:t,s:d.salt}))},d.w=function(t){if(u.shuffle){console.log("migrate core account from UTF8 & shuffle");var e={};Object.keys(d.data).forEach((function(t){e[t]=d.data[t]})),delete e._,e.auth=t,f.get("~"+d.pair.pub).put(e)}f.get("~"+d.pair.pub).get("auth").put(t,c||i)},d.err=function(t){var e={err:s.log(t||"User cannot be found!")};h.ing=!1,(c||i)(e)},d.plugin=function(t){if(!(d.name=t))return d.err();var e=[t];"~"!==t[0]&&(e[1]="~"+t,e[2]="~@"+t),d.b(e)},e?e.priv&&e.epriv?d.g(e):f.get("~"+e.pub).once(d.h):n?f.get("~@"+n).once(d.a):n||a||r.name(d.plugin),l}}))(t,"./auth"),t((function(e){var n=t("./user"),r=n.SEA;n.GUN,n.prototype.recall=function(t,e){var n=this,s=n.back(-1);if((t=t||{})&&t.sessionStorage){if(r.window)try{var i;(i=r.window.sessionStorage)&&(s._.opt.remember=!0,(n.back("user")._.opt||t).remember=!0,(i.recall||i.pair)&&s.user().auth(JSON.parse(i.pair),e))}catch(t){}return n}return n}}))(t,"./recall"),t((function(e){var n=t("./user"),r=n.SEA,s=n.GUN,i=function(){};n.prototype.pair=function(){var t,e=this;try{t=new Proxy({DANGER:"☠"},{get:function(t,n,r){if(e.is&&(e._||"").sea)return e._.sea[n]}})}catch(t){}return t},n.prototype.delete=async function(t,e,n){console.log("user.delete() IS DEPRECATED AND WILL BE MOVED TO A MODULE!!!");var r=this;r.back(-1);var o=r.back("user");try{o.auth(t,e,(function(t){(o.is||{}).pub;o.map().once((function(){this.put(null)})),o.leave(),(n||i)({ok:0})}))}catch(t){s.log("User.delete failed! Error:",t)}return r},n.prototype.alive=async function(){console.log("user.alive() IS DEPRECATED!!!");const t=this.back(-1);try{return await authRecall(t),t._.user._}catch(t){const e="No session!";throw s.log(e),{err:e}}},n.prototype.trust=async function(t){console.log("`.trust` API MAY BE DELETED OR CHANGED OR RENAMED, DO NOT USE!"),s.is(t)&&t.get("pub").get(((t,e)=>{console.log(t,e)})),t.get("trust").get(path).put(theirPubkey)},n.prototype.grant=function(t,e){console.log("`.grant` API MAY BE DELETED OR CHANGED OR RENAMED, DO NOT USE!");var n=this,s=n.back(-1).user(),i=s._.sea,o="";return n.back((function(t){t.is||(o+=t.get||"")})),async function(){var n,a=await s.get("grant").get(i.pub).get(o).then();(a=await r.decrypt(a,i))||(a=r.random(16).toString(),n=await r.encrypt(a,i),s.get("grant").get(i.pub).get(o).put(n));var c=t.get("pub").then(),u=t.get("epub").then();c=await c,u=await u;var l=await r.secret(u,i);n=await r.encrypt(a,l),s.get("grant").get(c).get(o).put(n,e)}(),n},n.prototype.secret=function(t,e){console.log("`.secret` API MAY BE DELETED OR CHANGED OR RENAMED, DO NOT USE!");var n=this,s=n.back(-1).user(),i=s.pair(),o="";return n.back((function(t){t.is||(o+=t.get||"")})),async function(){var a,c=await s.get("trust").get(i.pub).get(o).then();(c=await r.decrypt(c,i))||(c=r.random(16).toString(),a=await r.encrypt(c,i),s.get("trust").get(i.pub).get(o).put(a)),a=await r.encrypt(t,c),n.put(a,e)}(),n},e.exports=n}))(t,"./share"),t((function(n){var r,s=t("./sea"),i=t("./settings"),o=(s.window||"").GUN||t((""+r==typeof e?".":"")+"./gun",1);function a(t){var e,n=this,r=n.as,i=t.put,c=i["#"],u=i["."],l=i[":"],h=i[">"],f=t["#"];if(c&&u)if((t._||"").faith&&(r.opt||"").faith&&"function"==typeof t._)s.opt.pack(i,(function(e){s.verify(e,!1,(function(e){i["="]=s.opt.unpack(e),n.to.next(t)}))}));else{var p=function(e){r.on("in",{"@":f,err:t.err=e})};(t._||"").DBG&&((t._||"").DBG.c=+new Date),0<=c.indexOf("<?")&&(e=parseFloat(c.split("<?")[1]||""))&&h<o.state()-1e3*e?(e=t._)&&e.stun&&e.stun--:"~@"!==c?"~@"!==c.slice(0,2)?(e=s.opt.pub(c))?a.pub(n,t,l,u,c,r,p,r.user||"",e):0<=c.indexOf("#")?a.hash(n,t,l,u,c,r,p):a.any(n,t,l,u,c,r,p,r.user||""):a.pubs(n,t,l,u,c,r,p):a.alias(n,t,l,u,c,r,p)}}o.on("opt",(function(t){t.sea||(t.sea={own:{}},t.on("put",a,t)),this.to.next(t)})),a.hash=function(t,e,n,r,i,o,a){s.work(n,null,(function(n){return n&&n===r.split("#").slice(-1)[0]||n&&n===function(t){let e="";for(let n=0;n<t.length;n++)e+=n-1&1?"":String.fromCharCode(parseInt(t.substring(n-1,n+1),16));return btoa(e)}(r.split("#").slice(-1)[0])?t.to.next(e):void a("Data hash not same as hash!")}),{name:"SHA-256"})},a.alias=function(t,e,n,r,s,i,o){return n?"~@"+r===u(n)?t.to.next(e):void o("Alias not same!"):o("Data must exist!")},a.pubs=function(t,e,n,r,s,i,o){return n?r===u(n)?t.to.next(e):void o("Alias not same!"):o("Alias must exist!")},a.pub=async function(t,e,n,a,c,l,h,f,p){var d;const g=await i.parse(n)||{},y=(n,i,u)=>{if(n.m&&n.s&&i&&p)return s.verify(n,p,(n=>{if(r!==n&&r!==n.e&&e.put[">"]&&e.put[">"]>parseFloat(n.e))return h("Certificate expired.");if(r!==n&&n.c&&n.w&&(n.c===i||n.c.indexOf("*")>-1)){let e=c.indexOf("/")>-1?c.replace(c.substring(0,c.indexOf("/")+1),""):"";String.match=String.match||o.text.match;const r=Array.isArray(n.w)?n.w:"object"==typeof n.w||"string"==typeof n.w?[n.w]:[];for(const o of r)if(String.match(e,o["#"])&&String.match(a,o["."])||!o["."]&&String.match(e,o["#"])||!o["#"]&&String.match(a,o["."])||String.match(e?e+"/"+a:a,o["#"]||o)){if(o["+"]&&o["+"].indexOf("*")>-1&&e&&-1==e.indexOf(i)&&-1==a.indexOf(i))return h(`Path "${e}" or key "${a}" must contain string "${i}".`);if(n.wb&&("string"==typeof n.wb||(n.wb||{})["#"])){var s=t.as.root.$.back(-1);return"string"==typeof n.wb&&"~"!==n.wb.slice(0,1)&&(s=s.get("~"+p)),s.get(n.wb).get(i).once((t=>!t||1!==t&&!0!==t?u(n):h(`Certificant ${i} blocked.`)))}return u(n)}return h("Certificate verification fail.")}}))};if("pub"===a&&"~"+p===c)return n===p?t.to.next(e):h("Account not same!");(d=f.is)&&d.pub&&!g["*"]&&!g["+"]&&(p===d.pub||p!==d.pub&&((e._.msg||{}).opt||{}).cert)?s.opt.pack(e.put,(o=>{s.sign(o,f._.sea,(async function(o){if(r===o)return h(s.err||"Signature fail.");if(e.put[":"]={":":d=s.opt.unpack(o.m),"~":o.s},e.put["="]=d,p===f.is.pub)return(d=u(n))&&((l.sea.own[d]=l.sea.own[d]||{})[p]=1),void JSON.stringifyAsync(e.put[":"],(function(n,r){return n?h(n||"Stringify error."):(e.put[":"]=r,t.to.next(e))}));if(p!==f.is.pub&&((e._.msg||{}).opt||{}).cert){const n=await i.parse(e._.msg.opt.cert);n&&n.m&&n.s&&y(n,f.is.pub,(r=>{e.put[":"]["+"]=n,e.put[":"]["*"]=f.is.pub,JSON.stringifyAsync(e.put[":"],(function(n,r){return n?h(n||"Stringify error."):(e.put[":"]=r,t.to.next(e))}))}))}}),{raw:1})})):s.opt.pack(e.put,(n=>{s.verify(n,g["*"]||p,(function(n){var i;return n=s.opt.unpack(n),r===n?h("Unverified data."):((i=u(n))&&p===s.opt.pub(i)&&((l.sea.own[i]=l.sea.own[i]||{})[p]=1),g["+"]&&g["+"].m&&g["+"].s&&g["*"]?void y(g["+"],g["*"],(r=>(e.put["="]=n,t.to.next(e)))):(e.put["="]=n,t.to.next(e)))}))}))},a.any=function(t,e,n,r,s,i,o,a){if(i.opt.secure)return o("Soul missing public key at '"+r+"'.");i.on("secure",(function(e){if(this.off(),!i.opt.secure)return t.to.next(e);o("Data cannot be changed.")})).on.on("secure",e)};var c=o.valid,u=function(t,e){return"string"==typeof(e=c(t))&&e};(o.state||"").ify;var l=/[^\w_-]/;s.opt.pub=function(t){if(t&&(t=t.split("~"))&&(t=t[1])&&(t=t.split(l).slice(0,2))&&2==t.length&&"@"!==(t[0]||"")[0])return t=t.slice(0,2).join(".")},s.opt.stringy=function(t){},s.opt.pack=function(t,e,n,i,a){var c,u;if(s.opt.check(t))return e(t);t&&t["#"]&&t["."]&&t[">"]&&(c=t[":"],u=1),JSON.parseAsync(u?c:t,(function(s,c){var u=r!==(c||"")[":"]&&(c||"")["~"];e(u?{m:{"#":a||t["#"],".":n||t["."],":":(c||"")[":"],">":t[">"]||o.state.is(i,n)},s:u}:t)}))};var h=s.opt;s.opt.unpack=function(t,e,n){var i;if(r!==t){if(t&&r!==(i=t[":"]))return i;if(e=e||h.fall_key,!n&&h.fall_val&&((n={})[e]=h.fall_val),e&&n){if(t===n[e])return t;if(!s.opt.check(n[e]))return t;var a=n&&n._&&n._["#"]||h.fall_soul,c=o.state.is(n,e)||h.fall_state;return t&&4===t.length&&a===t[0]&&e===t[1]&&f(c)===f(t[3])?t[2]:c<s.opt.shuffle_attack?t:void 0}}},s.opt.shuffle_attack=15463296e5;var f=Math.floor}))(t,"./index")}();const wp=s.SEA;let bp,Ap={PROOF_OF_INTEGRITY_ADDRESS:dp.optimismSepolia.PROOF_OF_INTEGRITY_ADDRESS,STEALTH_ANNOUNCER_ADDRESS:dp.optimismSepolia.STEALTH_ANNOUNCER_ADDRESS};const vp=async()=>{if("undefined"==typeof window)try{const{fileURLToPath:t}=await Promise.resolve().then((function(){return zf})),{dirname:e}=await Promise.resolve().then((function(){return up})),{readFile:n}=await import("fs/promises"),{join:r}=await Promise.resolve().then((function(){return up})),s=e(t(import.meta.url));try{const t=await n(r(s,"contract-address.json"),"utf8");Ap=JSON.parse(t),console.log("Loaded contract addresses:",Ap)}catch(t){console.warn("Warning: contract-address.json not found or invalid")}}catch(t){console.error("Error loading Node.js modules:",t)}};function Ep(){return N(On(32)).slice(2)}function kp(t){try{const e=en(X(t));return console.log("Generated password:",e),e}catch(t){return console.error("Error generating password:",t),null}}function Tp(t){const e="0x"+(t=>{const e="=".repeat((4-t.length%4)%4),n=t.replace(/-/g,"+").replace(/_/g,"/")+e,r=atob(n);return Array.from(r,(t=>t.charCodeAt(0).toString(16).padStart(2,"0"))).join("")})(t),n=new rh(e);return{account:n,publicKey:n.address,privateKey:e}}"undefined"==typeof window&&vp();const Np=async()=>{if(rpcUrl&&privateKey){const t=new Iu(rpcUrl,{chainId:pp.CHAIN_ID,name:"localhost"});return new Wallet(privateKey,t)}if("undefined"!=typeof window&&void 0!==window.ethereum){await window.ethereum.request({method:"eth_requestAccounts"});return new Du(window.ethereum).getSigner()}throw new Error("No valid Ethereum provider found")};function xp(t,e){try{const n=X(t),r=en(x([n,X(e)])),s=new Wallet(r);return console.log("Debug deriveStealthAddress:",{sharedSecretHex:r,spendingPublicKey:e,stealthPrivateKey:r,stealthAddress:s.address}),{stealthPrivateKey:r,stealthAddress:s.address,wallet:s}}catch(t){throw console.error("Error in deriveStealthAddress:",t),t}}s.chain.MESSAGE_TO_SIGN=MESSAGE_TO_SIGN,s.chain.setSigner=function(t,e){return rpcUrl=t,privateKey=e,console.log("Standalone configuration set"),this},s.chain.getSigner=Np(),s.chain.verifySignature=async function(t,e){try{const n=function(t,e){return $i(go(t),e)}(t,e);return n}catch(t){return console.error("Error verifying signature:",t),null}},s.chain.generatePassword=function(t){return kp(t)},s.chain.createSignature=async function(t){try{if(t!==MESSAGE_TO_SIGN)throw new Error("Invalid message, valid message is: "+MESSAGE_TO_SIGN);const e=await Np(),n=await e.signMessage(t);return console.log("Signature created:",n),n}catch(t){return console.error("Error creating signature:",t),null}},s.chain.createAndStoreEncryptedPair=async function(t,e){try{const n=this,r=await wp.pair(),s=await wp.pair(),i=await wp.pair(),o=kp(e),a=await wp.encrypt(JSON.stringify(r),o),c=await wp.encrypt(JSON.stringify(s),o),u=await wp.encrypt(JSON.stringify(i),o),l=Tp(s.priv),h=Tp(i.priv);n.get("gun-eth").get("users").get(t).put({pair:a,v_pair:c,s_pair:u,publicKeys:{viewingPublicKey:s.epub,viewingPublicKey:s.epub,spendingPublicKey:h.publicKey,ethViewingAddress:l.publicKey}}),console.log("Encrypted pairs and public keys stored for:",t)}catch(t){throw console.error("Error creating and storing encrypted pair:",t),t}},s.chain.getAndDecryptPair=async function(t,e){try{const n=this,r=await n.get("gun-eth").get("users").get(t).get("pair").then();if(!r)throw new Error("No encrypted data found for this address");const s=kp(e),i=await wp.decrypt(r,s);return console.log(i),i}catch(t){return console.error("Error retrieving and decrypting pair:",t),null}},s.chain.proof=function(t,e,n,r){if(console.log("Proof plugin called with:",{chain:t,nodeId:e,data:n}),"function"!=typeof r)return console.error("Callback must be a function"),this;try{const s="development"===process.env.NODE_ENV&&"undefined"!=typeof window&&"localhost"===window.location.hostname?"localhost":t,i=gp(s);console.log(`Using ${s} configuration:`,i);new Ac(i.PROOF_OF_INTEGRITY_ADDRESS,mp,signer);const o=async(t,e)=>{console.log("Verifying on chain:",{nodeId:t,contentHash:e});const n=await Np(),r=new Contract(bp,mp,n),[s,i,o]=await r.verifyData(X(t),e);return console.log("Verification result:",{isValid:s,timestamp:i,updater:o}),{isValid:s,timestamp:i,updater:o}},a=async(t,e)=>{console.log("Writing on chain:",{nodeId:t,contentHash:e});const n=await Np(),r=new Contract(bp,mp,n),s=await r.updateData(toUtf8Bytes(t),e);console.log("Transaction sent:",s.hash);const i=await s.wait();return console.log("Transaction confirmed:",i),s},c=async t=>{const e=await Np(),n=new Contract(bp,mp,e),[r,s,i]=await n.getLatestRecord(toUtf8Bytes(t));return console.log("Latest record from blockchain:",{nodeId:t,contentHash:r,timestamp:s,updater:i}),{contentHash:r,timestamp:s,updater:i}};if(e&&!n)gun.get(e).once((async t=>{if(!t)return void(r&&r({err:"Node not found in GunDB"}));console.log("existingData",t);const n=t._contentHash;if(console.log("contentHash",n),n)try{const{isValid:t,timestamp:s,updater:i}=await o(e,n),a=await c(e);t?r&&r({ok:!0,message:"Data verified on blockchain",timestamp:s,updater:i,latestRecord:a}):r&&r({ok:!1,message:"Data not verified on blockchain",latestRecord:a})}catch(t){r&&r({err:t.message})}else r&&r({err:"No content hash found for this node"})}));else if(n&&!e){const t=Ep(),e=en(X(JSON.stringify(n)));gun.get(t).put({...n,_contentHash:e},(async n=>{if(console.log("ack",n),n.err)r&&r({err:"Error saving data to GunDB"});else try{const n=await a(t,e);r&&r({ok:!0,message:"Data written to GunDB and blockchain",nodeId:t,txHash:n.hash})}catch(t){r&&r({err:t.message})}}))}else r&&r({err:"Invalid input. Provide either nodeId or data, not both."});return gun}catch(t){return r({err:t.message}),this}},s.chain.gunToEthAccount=function(t){return Tp(t)},s.chain.generateStealthAddress=async function(t,e){try{const n=this,r=await n.get("gun-eth").get("users").get(t).get("publicKeys").then();if(!r||!r.viewingPublicKey||!r.spendingPublicKey)throw new Error("Recipient's public keys not found");const s=await this.verifySignature(MESSAGE_TO_SIGN,e),i=kp(e),o=await n.get("gun-eth").get("users").get(s).then();if(!o||!o.s_pair)throw new Error("Sender's keys not found");let a;try{const t=await wp.decrypt(o.s_pair,i);a="string"==typeof t?JSON.parse(t):t}catch(t){throw console.error("Error decrypting spending pair:",t),new Error("Unable to decrypt spending pair")}const c=await wp.secret(r.viewingPublicKey,a);if(!c)throw new Error("Unable to generate shared secret");console.log("Generate shared secret:",c);const{stealthAddress:u}=xp(c,r.spendingPublicKey);return{stealthAddress:u,senderPublicKey:a.epub,spendingPublicKey:r.spendingPublicKey}}catch(t){throw console.error("Error generating stealth address:",t),t}},s.chain.publishStealthKeys=async function(t){try{const e=this,n=await this.verifySignature(MESSAGE_TO_SIGN,t),r=kp(t),s=await e.get("gun-eth").get("users").get(n).then();if(!s||!s.v_pair||!s.s_pair)throw new Error("Keys not found");const i=JSON.parse(await wp.decrypt(s.v_pair,r)),o=JSON.parse(await wp.decrypt(s.s_pair,r)),a=Tp(i.priv),c=Tp(o.priv);e.get("gun-eth").get("users").get(n).get("publicKeys").put({viewingPublicKey:a.publicKey,spendingPublicKey:c.publicKey}),console.log("Stealth public keys published successfully")}catch(t){throw console.error("Error publishing stealth keys:",t),t}},s.chain.recoverStealthFunds=async function(t,e,n,r){try{const s=this,i=kp(n),o=await this.verifySignature(MESSAGE_TO_SIGN,n),a=await s.get("gun-eth").get("users").get(o).then();if(!a||!a.v_pair||!a.s_pair)throw new Error("Keys not found");let c;try{const t=await wp.decrypt(a.v_pair,i);c="string"==typeof t?JSON.parse(t):t}catch(t){throw console.error("Error decrypting keys:",t),new Error("Unable to decrypt keys")}const u=await wp.secret(e,c);if(!u)throw new Error("Unable to generate shared secret");console.log("Recover shared secret:",u);const{wallet:l,stealthAddress:h}=xp(u,r);if(h.toLowerCase()!==t.toLowerCase())throw console.error("Mismatch:",{recovered:h,expected:t,sharedSecret:u}),new Error("Recovered stealth address does not match");return{wallet:l,address:h}}catch(t){throw console.error("Error recovering stealth funds:",t),t}},s.chain.announceStealthPayment=async function(t,e,n,r,s={onChain:!1,chain:"optimismSepolia"}){try{const i=this,o=await this.verifySignature(MESSAGE_TO_SIGN,r);if(s.onChain){const r=await Np(),i=gp(s.chain).STEALTH_ANNOUNCER_ADDRESS;console.log("Using contract address:",i);const o=new Contract(i,yp,r),a=await o.devFee();console.log("Dev fee:",a.toString());const c=await o.announcePayment(e,n,t,{value:a});console.log("Transaction sent:",c.hash);const u=await c.wait();console.log("Transaction confirmed:",u.hash),console.log("Stealth payment announced on-chain (dev fee paid)")}else i.get("gun-eth").get("stealth-payments").set({stealthAddress:t,senderAddress:o,senderPublicKey:e,spendingPublicKey:n,timestamp:Date.now()}),console.log("Stealth payment announced off-chain")}catch(t){throw console.error("Error announcing stealth payment:",t),console.error("Error details:",t.stack),t}},s.chain.getStealthPayments=async function(t,e={source:"both"}){try{const n=[];if("onChain"===e.source||"both"===e.source){const r=await Np(),s=gp(e.chain||"optimismSepolia").STEALTH_ANNOUNCER_ADDRESS,i=new Contract(s,yp,r);try{const e=await i.getAnnouncementsCount(),r=Number(e.toString());if(console.log("Total on-chain announcements:",r),r>0){const e=100,s=r-1;for(let r=0;r<=s;r+=e){const o=Math.min(r+e-1,s),a=await i.getAnnouncementsInRange(r,o);for(const e of a)try{if(!(e&&e.stealthAddress&&e.senderPublicKey&&e.spendingPublicKey)){console.log("Invalid announcement:",e);continue}const r=await this.recoverStealthFunds(e.stealthAddress,e.senderPublicKey,t,e.spendingPublicKey);n.push({stealthAddress:e.stealthAddress,senderPublicKey:e.senderPublicKey,spendingPublicKey:e.spendingPublicKey,timestamp:Number(e.timestamp),source:"onChain",wallet:r})}catch(t){console.log(`Announcement not for us: ${e.stealthAddress}`);continue}}}}catch(t){console.error("Error retrieving on-chain announcements:",t)}}if("offChain"===e.source||"both"===e.source){const t=this,e=await new Promise((e=>{const n=[];t.get("gun-eth").get("stealth-payments").get(recipientAddress).map().once(((t,e)=>{t?.stealthAddress&&n.push({...t,id:e,source:"offChain"})})),setTimeout((()=>e(n)),2e3)}));n.push(...e)}return console.log(`Found ${n.length} stealth payments`),n}catch(t){throw console.error("Error retrieving stealth payments:",t),t}},s.chain.cleanStealthPayments=async function(t){try{const e=this,n=await e.get("gun-eth").get("stealth-payments").get(t).map().once().then();n&&Object.keys(n).forEach((async r=>{const s=n[r];s&&s.stealthAddress&&s.senderPublicKey&&s.spendingPublicKey||await e.get("gun-eth").get("stealth-payments").get(t).get(r).put(null)}))}catch(t){console.error("Error cleaning stealth payments:",t)}};class Sp{static generateRandomId=Ep;static generatePassword=kp;static gunToEthAccount=Tp;static getSigner=Np;static deriveStealthAddress=xp;static chainMethods={setSigner:s.chain.setSigner,getSigner:s.chain.getSigner,verifySignature:s.chain.verifySignature,generatePassword:s.chain.generatePassword,createSignature:s.chain.createSignature,createAndStoreEncryptedPair:s.chain.createAndStoreEncryptedPair,getAndDecryptPair:s.chain.getAndDecryptPair,proof:s.chain.proof,gunToEthAccount:s.chain.gunToEthAccount,generateStealthAddress:s.chain.generateStealthAddress,publishStealthKeys:s.chain.publishStealthKeys,recoverStealthFunds:s.chain.recoverStealthFunds,announceStealthPayment:s.chain.announceStealthPayment,getStealthPayments:s.chain.getStealthPayments,cleanStealthPayments:s.chain.cleanStealthPayments};static MESSAGE_TO_SIGN=MESSAGE_TO_SIGN;static PROOF_CONTRACT_ADDRESS=bp;static LOCAL_CONFIG=pp}export{s as Gun,Sp as GunEth,s as default,xp as deriveStealthAddress,kp as generatePassword,Ep as generateRandomId,Np as getSigner,Tp as gunToEthAccount,vp as initNodeEnvironment};
|
|
13
|
+
//# sourceMappingURL=gun-eth.min.js.map
|