genosdb 0.27.1 → 0.28.0
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/README.md +1 -1
- package/dist/sm-acls.min.js +1 -1
- package/dist/sm-acls.min.js.gz +0 -0
- package/dist/sm.min.js +3 -3
- package/dist/sm.min.js.gz +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -88,7 +88,7 @@ Browser + GenosDB
|
|
|
88
88
|
- Performance optimization.
|
|
89
89
|
- **Intelligent Hybrid Synchronization:**
|
|
90
90
|
GenosDB overcomes the limitations of naive P2P sync with an intelligent, dual-mode engine. It automatically exchanges tiny, compressed Deltas between active peers using a sliding-window Oplog for blazing-fast, low-latency updates. For peers that are too far out of sync, it seamlessly switches to a robust Full-State Fallback, guaranteeing absolute data consistency for everyone, no matter how long they've been offline.
|
|
91
|
-
- **Access Control Lists (ACLs):** Optional submodule for fine-grained, node-level permissions, allowing owners to grant/revoke specific permissions ('read', 'write', 'delete') to other users per node, complementing the existing RBAC system.
|
|
91
|
+
- **Access Control Lists (ACLs):** Optional submodule for fine-grained, node-level permissions, allowing owners to grant/revoke specific permissions ('read', 'write', 'delete') to other users per node, complementing the existing RBAC system. On encrypted (`db.sm.put`) records these are cryptographic: `grant` shares a per-record key envelope and `revoke` rotates the key, so revoked readers cannot decrypt anything written afterwards.
|
|
92
92
|
- **Governance (Role Promotion & Demotion):** Optional engine that resolves each user's role from declarative rules (native GenosDB queries) using **last-match-wins** — a merit ladder where climbing overrides lower tiers and losing the condition auto-demotes. Every change is signed by a superadmin — from a browser session, or by the always-on Fallback Server. ([Governance](https://github.com/estebanrfp/gdb/blob/main/docs/governance.md))
|
|
93
93
|
- **Fallback Server (GenosSRV):** Optional always-on superpeer shipped with the dist as a single zero-dependency file — durable memory, availability anchor for peers that reconnect, both transports (full mesh and Cellular Mesh), **24/7 governance**, and optionally the room's **signaling**, so discovery itself runs on your infrastructure. The entire stack in one deployable file: one command anywhere Bun runs, or a one-click deploy on any container platform. ([Fallback Server](https://github.com/estebanrfp/gdb/blob/main/docs/genosdb-fallback-server.md))
|
|
94
94
|
|
package/dist/sm-acls.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
2
|
-
var
|
|
2
|
+
var N=async(H,X,Z)=>{if(!X)return null;let Q="owner",K="collaborators",U="SM_ID_PREFIX_",F=async(h)=>{let x=(await H.get(h)).result;if(x)return{node:x,gid:h};let z=(await H.get(U+h)).result;return z?{node:z,gid:U+h}:{node:null,gid:h}},j=(h)=>h?.[Q]??h?._meta?.owner,P=()=>{let h=H.sm.getActiveEthAddress();if(!h)throw Error("❌ [SM-ACLs] Active user session required.");return h},_=(h)=>Error(`❌ [SM-ACLs] Only the owner can ${h}.`),f=async(h,x)=>{let z=[];for(let D of h){let{signer:G,type:Y,id:T}=D;if(!G||!T){z.push(D);continue}let J=x.get(T),{[Q]:V,[K]:$={}}=J?.value||{};if(Y==="upsert"||Y==="put"){if(!J||V===void 0||G===V||$[G]==="write"||$[G]==="delete")z.push(D);else log.warn(`⚠️ [SM-ACLs] DENIED (put): ${G} → ${T}`);continue}if(Y==="remove"){if(!J||V===void 0||G===V||$[G]==="delete")z.push(D);else log.warn(`⚠️ [SM-ACLs] DENIED (remove): ${G} → ${T}`);continue}z.push(D)}return z};return H.use(f),{async set(h,x){let z=P(),{result:D}=await H.get(x);if(D){let{[Q]:G,[K]:Y={}}=D.value;if(z!==G&&Y[z]!=="write")throw Error(`\uD83D\uDEE1️ [SM-ACLs] Write denied for node ${x}.`);let{[Q]:T,[K]:J,...V}=h;return H.put({...D.value,...V},x)}return H.put({...h,[Q]:z,[K]:{}},x)},async grant(h,x,z){let D=P();if(!["read","write","delete"].includes(z))throw Error("\uD83D\uDEE1️ [SM-ACLs] Permission must be 'read', 'write' or 'delete'.");let{node:G,gid:Y}=await F(h);if(!G)throw Error(`❌ [SM-ACLs] Node ${h} not found.`);if(j(G.value)!==D)throw _("grant permissions");let T={...G.value[K]??{},[x]:z},J=G.value._meta;if(J?.keys){let V=(await H.get(`user:${x}`)).result?.value?.pub;if(!V)throw Error(`❌ [SM-ACLs] ${x} has no published key yet (requires one login).`);let $=await Z.unwrapKey(J.keys[D]),q={...J.keys,[x]:await Z.wrapKeyFor(V,$,x)};return H.put({...G.value,[K]:T,_meta:{...J,keys:q}},Y)}await H.put({...G.value,[K]:T},Y)},async revoke(h,x){let z=P(),{node:D,gid:G}=await F(h);if(!D)throw Error(`❌ [SM-ACLs] Node ${h} not found.`);if(j(D.value)!==z)throw _("revoke permissions");let{[x]:Y,...T}=D.value[K]??{},J=D.value._meta;if(J?.keys){let V=await Z.openWithKey(D.value._payload,J.iv,await Z.unwrapKey(J.keys[z])),$=crypto.getRandomValues(new Uint8Array(32)),{iv:q,encrypted:k}=await Z.sealWithKey(V,$),W={};for(let[M,R]of Object.entries(J.keys))if(M!==x)W[M]=await Z.wrapKeyFor(R.r,$,M);return H.put({...D.value,_payload:k,[K]:T,_meta:{...J,iv:q,keys:W}},G)}await H.put({...D.value,[K]:T},G)},async delete(h){let x=P(),{node:z,gid:D}=await F(h);if(!z)return;if(j(z.value)!==x&&z.value[K]?.[x]!=="delete")throw _("delete this node");await H.remove(D)},async getPermissions(h){let{node:x}=await F(h);if(!x||j(x.value)===void 0)return null;return{owner:j(x.value),collaborators:x.value[K]??{}}}}};async function y(H,X,Z){log.info("\uD83D\uDEE1️ [SM-ACLs] Starting ACL module...");try{let Q=await N(H,X,Z);if(Q)try{Object.defineProperty(H.sm,"acls",{value:Q,writable:!0,enumerable:!1,configurable:!0}),log.info("\uD83D\uDEE1️ [SM-ACLs] Module initialized and attached to gdb.sm.acls.")}catch(K){throw log.error("❌ [SM-ACLs] Failed to attach: gdb.sm not extensible.",K.message),Error("❌ [SM-ACLs] Cannot attach ACL module to gdb.sm. Ensure gdb.sm is extensible.")}else log.warn("⚠️ [SM-ACLs] Module not activated (options missing).")}catch(Q){throw log.error("❌ [SM-ACLs] Failed to start ACL module.",Q),Q}}export{y as start,N as createAclModule};
|
package/dist/sm-acls.min.js.gz
CHANGED
|
Binary file
|
package/dist/sm.min.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
2
|
-
var hX=Object.defineProperty;var gX=($)=>$;function mX($,Q){this[$]=gX.bind(null,Q)}var cX=($,Q)=>{for(var J in Q)hX($,J,{get:Q[J],enumerable:!0,configurable:!0,set:mX.bind(Q,J)})};var w8="6.15.0";function uX($,Q,J){let Y=Q.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(Q){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof $===Q)return}let X=Error(`invalid value for type ${Q}`);throw X.code="INVALID_ARGUMENT",X.argument=`value.${J}`,X.value=$,X}async function g$($){let Q=Object.keys($);return(await Promise.all(Q.map((Y)=>Promise.resolve($[Y])))).reduce((Y,X,Z)=>{return Y[Q[Z]]=X,Y},{})}function r($,Q,J){for(let Y in Q){let X=Q[Y],Z=J?J[Y]:null;if(Z)uX(X,Z,Y);Object.defineProperty($,Y,{enumerable:!0,value:X,writable:!1})}}function m0($,Q){if($==null)return"null";if(Q==null)Q=new Set;if(typeof $==="object"){if(Q.has($))return"[Circular]";Q.add($)}if(Array.isArray($))return"[ "+$.map((J)=>m0(J,Q)).join(", ")+" ]";if($ instanceof Uint8Array){let Y="0x";for(let X=0;X<$.length;X++)Y+="0123456789abcdef"[$[X]>>4],Y+="0123456789abcdef"[$[X]&15];return Y}if(typeof $==="object"&&typeof $.toJSON==="function")return m0($.toJSON(),Q);switch(typeof $){case"boolean":case"number":case"symbol":return $.toString();case"bigint":return BigInt($).toString();case"string":return JSON.stringify($);case"object":{let J=Object.keys($);return J.sort(),"{ "+J.map((Y)=>`${m0(Y,Q)}: ${m0($[Y],Q)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function B8($,Q){return $&&$.code===Q}function Y8($,Q,J){let Y=$;{let Z=[];if(J){if("message"in J||"code"in J||"name"in J)throw Error(`value will overwrite populated values: ${m0(J)}`);for(let q in J){if(q==="shortMessage")continue;let G=J[q];Z.push(q+"="+m0(G))}}if(Z.push(`code=${Q}`),Z.push(`version=${w8}`),Z.length)$+=" ("+Z.join(", ")+")"}let X;switch(Q){case"INVALID_ARGUMENT":X=TypeError($);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":X=RangeError($);break;default:X=Error($)}if(r(X,{code:Q}),J)Object.assign(X,J);if(X.shortMessage==null)r(X,{shortMessage:Y});return X}function _($,Q,J,Y){if(!$)throw Y8(Q,J,Y)}function D($,Q,J,Y){_($,Q,"INVALID_ARGUMENT",{argument:J,value:Y})}var pX=["NFD","NFC","NFKD","NFKC"].reduce(($,Q)=>{try{if("test".normalize(Q)!=="test")throw Error("bad");if(Q==="NFD"){let J=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(J!==Y)throw Error("broken")}$.push(Q)}catch(J){}return $},[]);function c0($){_(pX.indexOf($)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:$}})}function n$($,Q,J){if(J==null)J="";if($!==Q){let Y=J,X="new";if(J)Y+=".",X+=" "+J;_(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:X})}}function AJ($,Q,J){if($ instanceof Uint8Array){if(J)return new Uint8Array($);return $}if(typeof $==="string"&&$.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array(($.length-2)/2),X=2;for(let Z=0;Z<Y.length;Z++)Y[Z]=parseInt($.substring(X,X+2),16),X+=2;return Y}D(!1,"invalid BytesLike value",Q||"value",$)}function E($,Q){return AJ($,Q,!1)}function b$($,Q){return AJ($,Q,!0)}function K$($,Q){if(typeof $!=="string"||!$.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof Q==="number"&&$.length!==2+2*Q)return!1;if(Q===!0&&$.length%2!==0)return!1;return!0}function m$($){return K$($,!0)||$ instanceof Uint8Array}var BJ="0123456789abcdef";function N($){let Q=E($),J="0x";for(let Y=0;Y<Q.length;Y++){let X=Q[Y];J+=BJ[(X&240)>>4]+BJ[X&15]}return J}function n($){return"0x"+$.map((Q)=>N(Q).substring(2)).join("")}function o$($){if(K$($,!0))return($.length-2)/2;return E($).length}function u0($,Q,J){let Y=E($);if(J!=null&&J>Y.length)_(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:J});return N(Y.slice(Q==null?0:Q,J==null?Y.length:J))}function lX($,Q,J){let Y=E($);_(Q>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:Q,offset:Q+1});let X=new Uint8Array(Q);if(X.fill(0),J)X.set(Y,Q-Y.length);else X.set(Y,0);return N(X)}function E$($,Q){return lX($,Q,!0)}var SQ=BigInt(0),E0=BigInt(1),p0=9007199254740991;function A8($,Q){let J=m($,"value"),Y=BigInt(q$(Q,"width")),X=E0<<Y-E0;if(J<SQ){J=-J,_(J<=X,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:$});let Z=(E0<<Y)-E0;return(~J&Z)+E0}else _(J<X,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:$});return J}function F8($,Q){let J=X8($,"value"),Y=BigInt(q$(Q,"bits"));return J&(E0<<Y)-E0}function m($,Q){switch(typeof $){case"bigint":return $;case"number":return D(Number.isInteger($),"underflow",Q||"value",$),D($>=-p0&&$<=p0,"overflow",Q||"value",$),BigInt($);case"string":try{if($==="")throw Error("empty string");if($[0]==="-"&&$[1]!=="-")return-BigInt($.substring(1));return BigInt($)}catch(J){D(!1,`invalid BigNumberish string: ${J.message}`,Q||"value",$)}}D(!1,"invalid BigNumberish value",Q||"value",$)}function X8($,Q){let J=m($,Q);return _(J>=SQ,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:$}),J}var FJ="0123456789abcdef";function l0($){if($ instanceof Uint8Array){let Q="0x0";for(let J of $)Q+=FJ[J>>4],Q+=FJ[J&15];return BigInt(Q)}return m($)}function q$($,Q){switch(typeof $){case"bigint":return D($>=-p0&&$<=p0,"overflow",Q||"value",$),Number($);case"number":return D(Number.isInteger($),"underflow",Q||"value",$),D($>=-p0&&$<=p0,"overflow",Q||"value",$),$;case"string":try{if($==="")throw Error("empty string");return q$(BigInt($),Q)}catch(J){D(!1,`invalid numeric string: ${J.message}`,Q||"value",$)}}D(!1,"invalid numeric value",Q||"value",$)}function x$($,Q){let Y=X8($,"value").toString(16);if(Q==null){if(Y.length%2)Y="0"+Y}else{let X=q$(Q,"width");_(X*2>=Y.length,`value exceeds width (${X} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:$});while(Y.length<X*2)Y="0"+Y}return"0x"+Y}function a($){let Q=X8($,"value");if(Q===SQ)return new Uint8Array([]);let J=Q.toString(16);if(J.length%2)J="0"+J;let Y=new Uint8Array(J.length/2);for(let X=0;X<Y.length;X++){let Z=X*2;Y[X]=parseInt(J.substring(Z,Z+2),16)}return Y}function k8($){let Q=N(m$($)?$:a($)).substring(2);while(Q.startsWith("0"))Q=Q.substring(1);if(Q==="")Q="0";return"0x"+Q}var f8="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",_8=null;function dX($){if(_8==null){_8={};for(let J=0;J<f8.length;J++)_8[f8[J]]=BigInt(J)}let Q=_8[$];return D(Q!=null,"invalid base58 value","letter",$),Q}var nX=BigInt(0),wQ=BigInt(58);function b8($){let Q=E($),J=l0(Q),Y="";while(J)Y=f8[Number(J%wQ)]+Y,J/=wQ;for(let X=0;X<Q.length;X++){if(Q[X])break;Y=f8[0]+Y}return Y}function x8($){let Q=nX;for(let J=0;J<$.length;J++)Q*=wQ,Q+=dX($[J]);return Q}function oX($,Q,J,Y,X){D(!1,`invalid codepoint at offset ${Q}; ${$}`,"bytes",J)}function kJ($,Q,J,Y,X){if($==="BAD_PREFIX"||$==="UNEXPECTED_CONTINUE"){let Z=0;for(let q=Q+1;q<J.length;q++){if(J[q]>>6!==2)break;Z++}return Z}if($==="OVERRUN")return J.length-Q-1;return 0}function iX($,Q,J,Y,X){if($==="OVERLONG")return D(typeof X==="number","invalid bad code point for replacement","badCodepoint",X),Y.push(X),0;return Y.push(65533),kJ($,Q,J,Y,X)}var _J=Object.freeze({error:oX,ignore:kJ,replace:iX});function G$($,Q){if(D(typeof $==="string","invalid string value","str",$),Q!=null)c0(Q),$=$.normalize(Q);let J=[];for(let Y=0;Y<$.length;Y++){let X=$.charCodeAt(Y);if(X<128)J.push(X);else if(X<2048)J.push(X>>6|192),J.push(X&63|128);else if((X&64512)==55296){Y++;let Z=$.charCodeAt(Y);D(Y<$.length&&(Z&64512)===56320,"invalid surrogate pair","str",$);let q=65536+((X&1023)<<10)+(Z&1023);J.push(q>>18|240),J.push(q>>12&63|128),J.push(q>>6&63|128),J.push(q&63|128)}else J.push(X>>12|224),J.push(X>>6&63|128),J.push(X&63|128)}return new Uint8Array(J)}function rX($){let Q=$.toString(16);while(Q.length<2)Q="0"+Q;return"0x"+Q}function fJ($,Q,J){let Y=0;for(let X=0;X<J;X++)Y=Y*256+$[Q+X];return Y}function bJ($,Q,J,Y){let X=[];while(J<Q+1+Y){let Z=xJ($,J);X.push(Z.result),J+=Z.consumed,_(J<=Q+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:$,length:Y,offset:Q})}return{consumed:1+Y,result:X}}function xJ($,Q){_($.length!==0,"data too short","BUFFER_OVERRUN",{buffer:$,length:0,offset:1});let J=(Y)=>{_(Y<=$.length,"data short segment too short","BUFFER_OVERRUN",{buffer:$,length:$.length,offset:Y})};if($[Q]>=248){let Y=$[Q]-247;J(Q+1+Y);let X=fJ($,Q+1,Y);return J(Q+1+Y+X),bJ($,Q,Q+1+Y,Y+X)}else if($[Q]>=192){let Y=$[Q]-192;return J(Q+1+Y),bJ($,Q,Q+1,Y)}else if($[Q]>=184){let Y=$[Q]-183;J(Q+1+Y);let X=fJ($,Q+1,Y);J(Q+1+Y+X);let Z=N($.slice(Q+1+Y,Q+1+Y+X));return{consumed:1+Y+X,result:Z}}else if($[Q]>=128){let Y=$[Q]-128;J(Q+1+Y);let X=N($.slice(Q+1,Q+1+Y));return{consumed:1+Y,result:X}}return{consumed:1,result:rX($[Q])}}function M0($){let Q=E($,"data"),J=xJ(Q,0);return D(J.consumed===Q.length,"unexpected junk after rlp payload","data",$),J.result}function vJ($){let Q=[];while($)Q.unshift($&255),$>>=8;return Q}function hJ($){if(Array.isArray($)){let Y=[];if($.forEach(function(Z){Y=Y.concat(hJ(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let X=vJ(Y.length);return X.unshift(247+X.length),X.concat(Y)}let Q=Array.prototype.slice.call(E($,"object"));if(Q.length===1&&Q[0]<=127)return Q;else if(Q.length<=55)return Q.unshift(128+Q.length),Q;let J=vJ(Q.length);return J.unshift(183+J.length),J.concat(Q)}var yJ="0123456789abcdef";function w$($){let Q="0x";for(let J of hJ($))Q+=yJ[J>>4],Q+=yJ[J&15];return Q}function v8($){let Q=E($,"randomBytes");Q[6]=Q[6]&15|64,Q[8]=Q[8]&63|128;let J=N(Q);return[J.substring(2,10),J.substring(10,14),J.substring(14,18),J.substring(18,22),J.substring(22,34)].join("-")}function O$($){if(!Number.isSafeInteger($)||$<0)throw Error(`Wrong positive integer: ${$}`)}function Z8($,...Q){if(!($ instanceof Uint8Array))throw Error("Expected Uint8Array");if(Q.length>0&&!Q.includes($.length))throw Error(`Expected Uint8Array of length ${Q}, not of length=${$.length}`)}function y8($){if(typeof $!=="function"||typeof $.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");O$($.outputLen),O$($.blockLen)}function i$($,Q=!0){if($.destroyed)throw Error("Hash instance has been destroyed");if(Q&&$.finished)throw Error("Hash#digest() has already been called")}function h8($,Q){Z8($);let J=Q.outputLen;if($.length<J)throw Error(`digestInto() expects output buffer of length at least ${J}`)}var g8=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var gJ=($)=>$ instanceof Uint8Array;var d0=($)=>new Uint32Array($.buffer,$.byteOffset,Math.floor($.byteLength/4)),n0=($)=>new DataView($.buffer,$.byteOffset,$.byteLength),v$=($,Q)=>$<<32-Q|$>>>Q,XZ=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!XZ)throw Error("Non little-endian hardware is not supported");var ZZ=async()=>{};async function m8($,Q,J){let Y=Date.now();for(let X=0;X<$;X++){J(X);let Z=Date.now()-Y;if(Z>=0&&Z<Q)continue;await ZZ(),Y+=Z}}function qZ($){if(typeof $!=="string")throw Error(`utf8ToBytes expected string, got ${typeof $}`);return new Uint8Array(new TextEncoder().encode($))}function c$($){if(typeof $==="string")$=qZ($);if(!gJ($))throw Error(`expected Uint8Array, got ${typeof $}`);return $}function mJ(...$){let Q=new Uint8Array($.reduce((Y,X)=>Y+X.length,0)),J=0;return $.forEach((Y)=>{if(!gJ(Y))throw Error("Uint8Array expected");Q.set(Y,J),J+=Y.length}),Q}class j0{clone(){return this._cloneInto()}}var GZ={}.toString;function c8($,Q){if(Q!==void 0&&GZ.call(Q)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign($,Q)}function V0($){let Q=(Y)=>$().update(c$(Y)).digest(),J=$();return Q.outputLen=J.outputLen,Q.blockLen=J.blockLen,Q.create=()=>$(),Q}function cJ($=32){if(g8&&typeof g8.getRandomValues==="function")return g8.getRandomValues(new Uint8Array($));throw Error("crypto.getRandomValues must be defined")}class BQ extends j0{constructor($,Q){super();this.finished=!1,this.destroyed=!1,y8($);let J=c$(Q);if(this.iHash=$.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,X=new Uint8Array(Y);X.set(J.length>Y?$.create().update(J).digest():J);for(let Z=0;Z<X.length;Z++)X[Z]^=54;this.iHash.update(X),this.oHash=$.create();for(let Z=0;Z<X.length;Z++)X[Z]^=106;this.oHash.update(X),X.fill(0)}update($){return i$(this),this.iHash.update($),this}digestInto($){i$(this),Z8($,this.outputLen),this.finished=!0,this.iHash.digestInto($),this.oHash.update($),this.oHash.digestInto($),this.destroy()}digest(){let $=new Uint8Array(this.oHash.outputLen);return this.digestInto($),$}_cloneInto($){$||($=Object.create(Object.getPrototypeOf(this),{}));let{oHash:Q,iHash:J,finished:Y,destroyed:X,blockLen:Z,outputLen:q}=this;return $=$,$.finished=Y,$.destroyed=X,$.blockLen=Z,$.outputLen=q,$.oHash=Q._cloneInto($.oHash),$.iHash=J._cloneInto($.iHash),$}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var P0=($,Q,J)=>new BQ($,Q).update(J).digest();P0.create=($,Q)=>new BQ($,Q);function WZ($,Q,J,Y){y8($);let X=c8({dkLen:32,asyncTick:10},Y),{c:Z,dkLen:q,asyncTick:G}=X;if(O$(Z),O$(q),O$(G),Z<1)throw Error("PBKDF2: iterations (c) should be >= 1");let W=c$(Q),M=c$(J),V=new Uint8Array(q),z=P0.create($,W),K=z._cloneInto().update(M);return{c:Z,dkLen:q,asyncTick:G,DK:V,PRF:z,PRFSalt:K}}function MZ($,Q,J,Y,X){if($.destroy(),Q.destroy(),Y)Y.destroy();return X.fill(0),J}function q8($,Q,J,Y){let{c:X,dkLen:Z,DK:q,PRF:G,PRFSalt:W}=WZ($,Q,J,Y),M,V=new Uint8Array(4),z=n0(V),K=new Uint8Array(G.outputLen);for(let w=1,I=0;I<Z;w++,I+=G.outputLen){let O=q.subarray(I,I+G.outputLen);z.setInt32(0,w,!1),(M=W._cloneInto(M)).update(V).digestInto(K),O.set(K.subarray(0,O.length));for(let U=1;U<X;U++){G._cloneInto(M).update(K).digestInto(K);for(let R=0;R<O.length;R++)O[R]^=K[R]}}return MZ(G,W,q,M,K)}function VZ($,Q,J,Y){if(typeof $.setBigUint64==="function")return $.setBigUint64(Q,J,Y);let X=BigInt(32),Z=BigInt(4294967295),q=Number(J>>X&Z),G=Number(J&Z),W=Y?4:0,M=Y?0:4;$.setUint32(Q+W,q,Y),$.setUint32(Q+M,G,Y)}class S0 extends j0{constructor($,Q,J,Y){super();this.blockLen=$,this.outputLen=Q,this.padOffset=J,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array($),this.view=n0(this.buffer)}update($){i$(this);let{view:Q,buffer:J,blockLen:Y}=this;$=c$($);let X=$.length;for(let Z=0;Z<X;){let q=Math.min(Y-this.pos,X-Z);if(q===Y){let G=n0($);for(;Y<=X-Z;Z+=Y)this.process(G,Z);continue}if(J.set($.subarray(Z,Z+q),this.pos),this.pos+=q,Z+=q,this.pos===Y)this.process(Q,0),this.pos=0}return this.length+=$.length,this.roundClean(),this}digestInto($){i$(this),h8($,this),this.finished=!0;let{buffer:Q,view:J,blockLen:Y,isLE:X}=this,{pos:Z}=this;if(Q[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(J,0),Z=0;for(let V=Z;V<Y;V++)Q[V]=0;VZ(J,Y-8,BigInt(this.length*8),X),this.process(J,0);let q=n0($),G=this.outputLen;if(G%4)throw Error("_sha2: outputLen should be aligned to 32bit");let W=G/4,M=this.get();if(W>M.length)throw Error("_sha2: outputLen bigger than state");for(let V=0;V<W;V++)q.setUint32(4*V,M[V],X)}digest(){let{buffer:$,outputLen:Q}=this;this.digestInto($);let J=$.slice(0,Q);return this.destroy(),J}_cloneInto($){$||($=new this.constructor),$.set(...this.get());let{blockLen:Q,buffer:J,length:Y,finished:X,destroyed:Z,pos:q}=this;if($.length=Y,$.pos=q,$.finished=X,$.destroyed=Z,Y%Q)$.buffer.set(J);return $}}var zZ=($,Q,J)=>$&Q^~$&J,DZ=($,Q,J)=>$&Q^$&J^Q&J,IZ=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]),z0=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),D0=new Uint32Array(64);class uJ extends S0{constructor(){super(64,32,8,!1);this.A=z0[0]|0,this.B=z0[1]|0,this.C=z0[2]|0,this.D=z0[3]|0,this.E=z0[4]|0,this.F=z0[5]|0,this.G=z0[6]|0,this.H=z0[7]|0}get(){let{A:$,B:Q,C:J,D:Y,E:X,F:Z,G:q,H:G}=this;return[$,Q,J,Y,X,Z,q,G]}set($,Q,J,Y,X,Z,q,G){this.A=$|0,this.B=Q|0,this.C=J|0,this.D=Y|0,this.E=X|0,this.F=Z|0,this.G=q|0,this.H=G|0}process($,Q){for(let V=0;V<16;V++,Q+=4)D0[V]=$.getUint32(Q,!1);for(let V=16;V<64;V++){let z=D0[V-15],K=D0[V-2],w=v$(z,7)^v$(z,18)^z>>>3,I=v$(K,17)^v$(K,19)^K>>>10;D0[V]=I+D0[V-7]+w+D0[V-16]|0}let{A:J,B:Y,C:X,D:Z,E:q,F:G,G:W,H:M}=this;for(let V=0;V<64;V++){let z=v$(q,6)^v$(q,11)^v$(q,25),K=M+z+zZ(q,G,W)+IZ[V]+D0[V]|0,I=(v$(J,2)^v$(J,13)^v$(J,22))+DZ(J,Y,X)|0;M=W,W=G,G=q,q=Z+K|0,Z=X,X=Y,Y=J,J=K+I|0}J=J+this.A|0,Y=Y+this.B|0,X=X+this.C|0,Z=Z+this.D|0,q=q+this.E|0,G=G+this.F|0,W=W+this.G|0,M=M+this.H|0,this.set(J,Y,X,Z,q,G,W,M)}roundClean(){D0.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var r$=V0(()=>new uJ);var u8=BigInt(4294967295),AQ=BigInt(32);function pJ($,Q=!1){if(Q)return{h:Number($&u8),l:Number($>>AQ&u8)};return{h:Number($>>AQ&u8)|0,l:Number($&u8)|0}}function FQ($,Q=!1){let J=new Uint32Array($.length),Y=new Uint32Array($.length);for(let X=0;X<$.length;X++){let{h:Z,l:q}=pJ($[X],Q);[J[X],Y[X]]=[Z,q]}return[J,Y]}var KZ=($,Q)=>BigInt($>>>0)<<AQ|BigInt(Q>>>0),OZ=($,Q,J)=>$>>>J,TZ=($,Q,J)=>$<<32-J|Q>>>J,UZ=($,Q,J)=>$>>>J|Q<<32-J,HZ=($,Q,J)=>$<<32-J|Q>>>J,RZ=($,Q,J)=>$<<64-J|Q>>>J-32,LZ=($,Q,J)=>$>>>J-32|Q<<64-J,NZ=($,Q)=>Q,CZ=($,Q)=>$,kQ=($,Q,J)=>$<<J|Q>>>32-J,_Q=($,Q,J)=>Q<<J|$>>>32-J,fQ=($,Q,J)=>Q<<J-32|$>>>64-J,bQ=($,Q,J)=>$<<J-32|Q>>>64-J;function EZ($,Q,J,Y){let X=(Q>>>0)+(Y>>>0);return{h:$+J+(X/4294967296|0)|0,l:X|0}}var jZ=($,Q,J)=>($>>>0)+(Q>>>0)+(J>>>0),PZ=($,Q,J,Y)=>Q+J+Y+($/4294967296|0)|0,SZ=($,Q,J,Y)=>($>>>0)+(Q>>>0)+(J>>>0)+(Y>>>0),wZ=($,Q,J,Y,X)=>Q+J+Y+X+($/4294967296|0)|0,BZ=($,Q,J,Y,X)=>($>>>0)+(Q>>>0)+(J>>>0)+(Y>>>0)+(X>>>0),AZ=($,Q,J,Y,X,Z)=>Q+J+Y+X+Z+($/4294967296|0)|0;var FZ={fromBig:pJ,split:FQ,toBig:KZ,shrSH:OZ,shrSL:TZ,rotrSH:UZ,rotrSL:HZ,rotrBH:RZ,rotrBL:LZ,rotr32H:NZ,rotr32L:CZ,rotlSH:kQ,rotlSL:_Q,rotlBH:fQ,rotlBL:bQ,add:EZ,add3L:jZ,add3H:PZ,add4L:SZ,add4H:wZ,add5H:AZ,add5L:BZ},v=FZ;var[kZ,_Z]=(()=>v.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(($)=>BigInt($))))(),I0=new Uint32Array(80),K0=new Uint32Array(80);class lJ extends S0{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(){let{Ah:$,Al:Q,Bh:J,Bl:Y,Ch:X,Cl:Z,Dh:q,Dl:G,Eh:W,El:M,Fh:V,Fl:z,Gh:K,Gl:w,Hh:I,Hl:O}=this;return[$,Q,J,Y,X,Z,q,G,W,M,V,z,K,w,I,O]}set($,Q,J,Y,X,Z,q,G,W,M,V,z,K,w,I,O){this.Ah=$|0,this.Al=Q|0,this.Bh=J|0,this.Bl=Y|0,this.Ch=X|0,this.Cl=Z|0,this.Dh=q|0,this.Dl=G|0,this.Eh=W|0,this.El=M|0,this.Fh=V|0,this.Fl=z|0,this.Gh=K|0,this.Gl=w|0,this.Hh=I|0,this.Hl=O|0}process($,Q){for(let P=0;P<16;P++,Q+=4)I0[P]=$.getUint32(Q),K0[P]=$.getUint32(Q+=4);for(let P=16;P<80;P++){let f=I0[P-15]|0,j=K0[P-15]|0,L=v.rotrSH(f,j,1)^v.rotrSH(f,j,8)^v.shrSH(f,j,7),H=v.rotrSL(f,j,1)^v.rotrSL(f,j,8)^v.shrSL(f,j,7),T=I0[P-2]|0,A=K0[P-2]|0,S=v.rotrSH(T,A,19)^v.rotrBH(T,A,61)^v.shrSH(T,A,6),B=v.rotrSL(T,A,19)^v.rotrBL(T,A,61)^v.shrSL(T,A,6),k=v.add4L(H,B,K0[P-7],K0[P-16]),x=v.add4H(k,L,S,I0[P-7],I0[P-16]);I0[P]=x|0,K0[P]=k|0}let{Ah:J,Al:Y,Bh:X,Bl:Z,Ch:q,Cl:G,Dh:W,Dl:M,Eh:V,El:z,Fh:K,Fl:w,Gh:I,Gl:O,Hh:U,Hl:R}=this;for(let P=0;P<80;P++){let f=v.rotrSH(V,z,14)^v.rotrSH(V,z,18)^v.rotrBH(V,z,41),j=v.rotrSL(V,z,14)^v.rotrSL(V,z,18)^v.rotrBL(V,z,41),L=V&K^~V&I,H=z&w^~z&O,T=v.add5L(R,j,H,_Z[P],K0[P]),A=v.add5H(T,U,f,L,kZ[P],I0[P]),S=T|0,B=v.rotrSH(J,Y,28)^v.rotrBH(J,Y,34)^v.rotrBH(J,Y,39),k=v.rotrSL(J,Y,28)^v.rotrBL(J,Y,34)^v.rotrBL(J,Y,39),x=J&X^J&q^X&q,i=Y&Z^Y&G^Z&G;U=I|0,R=O|0,I=K|0,O=w|0,K=V|0,w=z|0,{h:V,l:z}=v.add(W|0,M|0,A|0,S|0),W=q|0,M=G|0,q=X|0,G=Z|0,X=J|0,Z=Y|0;let g=v.add3L(S,k,i);J=v.add3H(g,A,B,x),Y=g|0}({h:J,l:Y}=v.add(this.Ah|0,this.Al|0,J|0,Y|0)),{h:X,l:Z}=v.add(this.Bh|0,this.Bl|0,X|0,Z|0),{h:q,l:G}=v.add(this.Ch|0,this.Cl|0,q|0,G|0),{h:W,l:M}=v.add(this.Dh|0,this.Dl|0,W|0,M|0),{h:V,l:z}=v.add(this.Eh|0,this.El|0,V|0,z|0),{h:K,l:w}=v.add(this.Fh|0,this.Fl|0,K|0,w|0),{h:I,l:O}=v.add(this.Gh|0,this.Gl|0,I|0,O|0),{h:U,l:R}=v.add(this.Hh|0,this.Hl|0,U|0,R|0),this.set(J,Y,X,Z,q,G,W,M,V,z,K,w,I,O,U,R)}roundClean(){I0.fill(0),K0.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)}}var p8=V0(()=>new lJ);function fZ(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof window<"u")return window;throw Error("unable to locate global object")}var dJ=fZ(),nJ=dJ.crypto||dJ.msCrypto;function xQ($){switch($){case"sha256":return r$.create();case"sha512":return p8.create()}D(!1,"invalid hashing algorithm name","algorithm",$)}function oJ($,Q){let J={sha256:r$,sha512:p8}[$];return D(J!=null,"invalid hmac algorithm","algorithm",$),P0.create(J,Q)}function iJ($,Q,J,Y,X){let Z={sha256:r$,sha512:p8}[X];return D(Z!=null,"invalid pbkdf2 algorithm","algorithm",X),q8(Z,$,Q,{c:J,dkLen:Y})}function rJ($){_(nJ!=null,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),D(Number.isInteger($)&&$>0&&$<=1024,"invalid length","length",$);let Q=new Uint8Array($);return nJ.getRandomValues(Q),Q}var aJ=!1,sJ=function($,Q,J){return oJ($,Q).update(J).digest()},tJ=sJ;function a$($,Q,J){let Y=E(Q,"key"),X=E(J,"data");return N(tJ($,Y,X))}a$._=sJ;a$.lock=function(){aJ=!0};a$.register=function($){if(aJ)throw Error("computeHmac is locked");tJ=$};Object.freeze(a$);var[QY,JY,YY]=[[],[],[]],bZ=BigInt(0),G8=BigInt(1),xZ=BigInt(2),vZ=BigInt(7),yZ=BigInt(256),hZ=BigInt(113);for(let $=0,Q=G8,J=1,Y=0;$<24;$++){[J,Y]=[Y,(2*J+3*Y)%5],QY.push(2*(5*Y+J)),JY.push(($+1)*($+2)/2%64);let X=bZ;for(let Z=0;Z<7;Z++)if(Q=(Q<<G8^(Q>>vZ)*hZ)%yZ,Q&xZ)X^=G8<<(G8<<BigInt(Z))-G8;YY.push(X)}var[gZ,mZ]=FQ(YY,!0),eJ=($,Q,J)=>J>32?fQ($,Q,J):kQ($,Q,J),$Y=($,Q,J)=>J>32?bQ($,Q,J):_Q($,Q,J);function cZ($,Q=24){let J=new Uint32Array(10);for(let Y=24-Q;Y<24;Y++){for(let q=0;q<10;q++)J[q]=$[q]^$[q+10]^$[q+20]^$[q+30]^$[q+40];for(let q=0;q<10;q+=2){let G=(q+8)%10,W=(q+2)%10,M=J[W],V=J[W+1],z=eJ(M,V,1)^J[G],K=$Y(M,V,1)^J[G+1];for(let w=0;w<50;w+=10)$[q+w]^=z,$[q+w+1]^=K}let X=$[2],Z=$[3];for(let q=0;q<24;q++){let G=JY[q],W=eJ(X,Z,G),M=$Y(X,Z,G),V=QY[q];X=$[V],Z=$[V+1],$[V]=W,$[V+1]=M}for(let q=0;q<50;q+=10){for(let G=0;G<10;G++)J[G]=$[q+G];for(let G=0;G<10;G++)$[q+G]^=~J[(G+2)%10]&J[(G+4)%10]}$[0]^=gZ[Y],$[1]^=mZ[Y]}J.fill(0)}class vQ extends j0{constructor($,Q,J,Y=!1,X=24){super();if(this.blockLen=$,this.suffix=Q,this.outputLen=J,this.enableXOF=Y,this.rounds=X,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,O$(J),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=d0(this.state)}keccak(){cZ(this.state32,this.rounds),this.posOut=0,this.pos=0}update($){i$(this);let{blockLen:Q,state:J}=this;$=c$($);let Y=$.length;for(let X=0;X<Y;){let Z=Math.min(Q-this.pos,Y-X);for(let q=0;q<Z;q++)J[this.pos++]^=$[X++];if(this.pos===Q)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:$,suffix:Q,pos:J,blockLen:Y}=this;if($[J]^=Q,(Q&128)!==0&&J===Y-1)this.keccak();$[Y-1]^=128,this.keccak()}writeInto($){i$(this,!1),Z8($),this.finish();let Q=this.state,{blockLen:J}=this;for(let Y=0,X=$.length;Y<X;){if(this.posOut>=J)this.keccak();let Z=Math.min(J-this.posOut,X-Y);$.set(Q.subarray(this.posOut,this.posOut+Z),Y),this.posOut+=Z,Y+=Z}return $}xofInto($){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto($)}xof($){return O$($),this.xofInto(new Uint8Array($))}digestInto($){if(h8($,this),this.finished)throw Error("digest() was already called");return this.writeInto($),this.destroy(),$}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto($){let{blockLen:Q,suffix:J,outputLen:Y,rounds:X,enableXOF:Z}=this;return $||($=new vQ(Q,J,Y,Z,X)),$.state32.set(this.state32),$.pos=this.pos,$.posOut=this.posOut,$.finished=this.finished,$.rounds=X,$.suffix=J,$.outputLen=Y,$.enableXOF=Z,$.destroyed=this.destroyed,$}}var uZ=($,Q,J)=>V0(()=>new vQ(Q,$,J));var XY=uZ(1,136,32);var ZY=!1,qY=function($){return XY($)},GY=qY;function l($){let Q=E($,"data");return N(GY(Q))}l._=qY;l.lock=function(){ZY=!0};l.register=function($){if(ZY)throw TypeError("keccak256 is locked");GY=$};Object.freeze(l);var pZ=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),MY=Uint8Array.from({length:16},($,Q)=>Q),lZ=MY.map(($)=>(9*$+5)%16),yQ=[MY],hQ=[lZ];for(let $=0;$<4;$++)for(let Q of[yQ,hQ])Q.push(Q[$].map((J)=>pZ[J]));var VY=[[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(($)=>new Uint8Array($)),dZ=yQ.map(($,Q)=>$.map((J)=>VY[Q][J])),nZ=hQ.map(($,Q)=>$.map((J)=>VY[Q][J])),oZ=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),iZ=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),l8=($,Q)=>$<<Q|$>>>32-Q;function WY($,Q,J,Y){if($===0)return Q^J^Y;else if($===1)return Q&J|~Q&Y;else if($===2)return(Q|~J)^Y;else if($===3)return Q&Y|J&~Y;else return Q^(J|~Y)}var d8=new Uint32Array(16);class zY extends S0{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:$,h1:Q,h2:J,h3:Y,h4:X}=this;return[$,Q,J,Y,X]}set($,Q,J,Y,X){this.h0=$|0,this.h1=Q|0,this.h2=J|0,this.h3=Y|0,this.h4=X|0}process($,Q){for(let K=0;K<16;K++,Q+=4)d8[K]=$.getUint32(Q,!0);let J=this.h0|0,Y=J,X=this.h1|0,Z=X,q=this.h2|0,G=q,W=this.h3|0,M=W,V=this.h4|0,z=V;for(let K=0;K<5;K++){let w=4-K,I=oZ[K],O=iZ[K],U=yQ[K],R=hQ[K],P=dZ[K],f=nZ[K];for(let j=0;j<16;j++){let L=l8(J+WY(K,X,q,W)+d8[U[j]]+I,P[j])+V|0;J=V,V=W,W=l8(q,10)|0,q=X,X=L}for(let j=0;j<16;j++){let L=l8(Y+WY(w,Z,G,M)+d8[R[j]]+O,f[j])+z|0;Y=z,z=M,M=l8(G,10)|0,G=Z,Z=L}}this.set(this.h1+q+M|0,this.h2+W+z|0,this.h3+V+Y|0,this.h4+J+Z|0,this.h0+X+G|0)}roundClean(){d8.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var DY=V0(()=>new zY);var IY=!1,KY=function($){return DY($)},OY=KY;function s$($){let Q=E($,"data");return N(OY(Q))}s$._=KY;s$.lock=function(){IY=!0};s$.register=function($){if(IY)throw TypeError("ripemd160 is locked");OY=$};Object.freeze(s$);var TY=!1,UY=function($,Q,J,Y,X){return iJ($,Q,J,Y,X)},HY=UY;function j$($,Q,J,Y,X){let Z=E($,"password"),q=E(Q,"salt");return N(HY(Z,q,J,Y,X))}j$._=UY;j$.lock=function(){TY=!0};j$.register=function($){if(TY)throw Error("pbkdf2 is locked");HY=$};Object.freeze(j$);var RY=!1,LY=function($){return new Uint8Array(rJ($))},NY=LY;function X$($){return NY($)}X$._=LY;X$.lock=function(){RY=!0};X$.register=function($){if(RY)throw Error("randomBytes is locked");NY=$};Object.freeze(X$);var p=($,Q)=>$<<Q|$>>>32-Q;function CY($,Q,J,Y,X,Z){let q=$[Q++]^J[Y++],G=$[Q++]^J[Y++],W=$[Q++]^J[Y++],M=$[Q++]^J[Y++],V=$[Q++]^J[Y++],z=$[Q++]^J[Y++],K=$[Q++]^J[Y++],w=$[Q++]^J[Y++],I=$[Q++]^J[Y++],O=$[Q++]^J[Y++],U=$[Q++]^J[Y++],R=$[Q++]^J[Y++],P=$[Q++]^J[Y++],f=$[Q++]^J[Y++],j=$[Q++]^J[Y++],L=$[Q++]^J[Y++],H=q,T=G,A=W,S=M,B=V,k=z,x=K,i=w,g=I,C=O,F=U,b=R,y=P,u=f,d=j,Y$=L;for(let I$=0;I$<8;I$+=2)B^=p(H+y|0,7),g^=p(B+H|0,9),y^=p(g+B|0,13),H^=p(y+g|0,18),C^=p(k+T|0,7),u^=p(C+k|0,9),T^=p(u+C|0,13),k^=p(T+u|0,18),d^=p(F+x|0,7),A^=p(d+F|0,9),x^=p(A+d|0,13),F^=p(x+A|0,18),S^=p(Y$+b|0,7),i^=p(S+Y$|0,9),b^=p(i+S|0,13),Y$^=p(b+i|0,18),T^=p(H+S|0,7),A^=p(T+H|0,9),S^=p(A+T|0,13),H^=p(S+A|0,18),x^=p(k+B|0,7),i^=p(x+k|0,9),B^=p(i+x|0,13),k^=p(B+i|0,18),b^=p(F+C|0,7),g^=p(b+F|0,9),C^=p(g+b|0,13),F^=p(C+g|0,18),y^=p(Y$+d|0,7),u^=p(y+Y$|0,9),d^=p(u+y|0,13),Y$^=p(d+u|0,18);X[Z++]=q+H|0,X[Z++]=G+T|0,X[Z++]=W+A|0,X[Z++]=M+S|0,X[Z++]=V+B|0,X[Z++]=z+k|0,X[Z++]=K+x|0,X[Z++]=w+i|0,X[Z++]=I+g|0,X[Z++]=O+C|0,X[Z++]=U+F|0,X[Z++]=R+b|0,X[Z++]=P+y|0,X[Z++]=f+u|0,X[Z++]=j+d|0,X[Z++]=L+Y$|0}function o0($,Q,J,Y,X){let Z=Y+0,q=Y+16*X;for(let G=0;G<16;G++)J[q+G]=$[Q+(2*X-1)*16+G];for(let G=0;G<X;G++,Z+=16,Q+=16){if(CY(J,q,$,Q,J,Z),G>0)q+=16;CY(J,Z,$,Q+=16,J,q)}}function EY($,Q,J){let Y=c8({dkLen:32,asyncTick:10,maxmem:1073742848},J),{N:X,r:Z,p:q,dkLen:G,asyncTick:W,maxmem:M,onProgress:V}=Y;if(O$(X),O$(Z),O$(q),O$(G),O$(W),O$(M),V!==void 0&&typeof V!=="function")throw Error("progressCb should be function");let z=128*Z,K=z/4;if(X<=1||(X&X-1)!==0||X>=2**(z/8)||X>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(q<0||q>137438953440/z)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(G<0||G>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let w=z*(X+q);if(w>M)throw Error(`Scrypt: parameters too large, ${w} (128 * r * (N + p)) > ${M} (maxmem)`);let I=q8(r$,$,Q,{c:1,dkLen:z*q}),O=d0(I),U=d0(new Uint8Array(z*X)),R=d0(new Uint8Array(z)),P=()=>{};if(V){let f=2*X*q,j=Math.max(Math.floor(f/1e4),1),L=0;P=()=>{if(L++,V&&(!(L%j)||L===f))V(L/f)}}return{N:X,r:Z,p:q,dkLen:G,blockSize32:K,V:U,B32:O,B:I,tmp:R,blockMixCb:P,asyncTick:W}}function jY($,Q,J,Y,X){let Z=q8(r$,$,J,{c:1,dkLen:Q});return J.fill(0),Y.fill(0),X.fill(0),Z}function PY($,Q,J){let{N:Y,r:X,p:Z,dkLen:q,blockSize32:G,V:W,B32:M,B:V,tmp:z,blockMixCb:K}=EY($,Q,J);for(let w=0;w<Z;w++){let I=G*w;for(let O=0;O<G;O++)W[O]=M[I+O];for(let O=0,U=0;O<Y-1;O++)o0(W,U,W,U+=G,X),K();o0(W,(Y-1)*G,M,I,X),K();for(let O=0;O<Y;O++){let U=M[I+G-16]%Y;for(let R=0;R<G;R++)z[R]=M[I+R]^W[U*G+R];o0(z,0,M,I,X),K()}}return jY($,q,V,W,z)}async function SY($,Q,J){let{N:Y,r:X,p:Z,dkLen:q,blockSize32:G,V:W,B32:M,B:V,tmp:z,blockMixCb:K,asyncTick:w}=EY($,Q,J);for(let I=0;I<Z;I++){let O=G*I;for(let R=0;R<G;R++)W[R]=M[O+R];let U=0;await m8(Y-1,w,()=>{o0(W,U,W,U+=G,X),K()}),o0(W,(Y-1)*G,M,O,X),K(),await m8(Y,w,()=>{let R=M[O+G-16]%Y;for(let P=0;P<G;P++)z[P]=M[O+P]^W[R*G+P];o0(z,0,M,O,X),K()})}return jY($,q,V,W,z)}var wY=!1,BY=!1,AY=async function($,Q,J,Y,X,Z,q){return await SY($,Q,{N:J,r:Y,p:X,dkLen:Z,onProgress:q})},FY=function($,Q,J,Y,X,Z){return PY($,Q,{N:J,r:Y,p:X,dkLen:Z})},kY=AY,_Y=FY;async function t$($,Q,J,Y,X,Z,q){let G=E($,"passwd"),W=E(Q,"salt");return N(await kY(G,W,J,Y,X,Z,q))}t$._=AY;t$.lock=function(){BY=!0};t$.register=function($){if(BY)throw Error("scrypt is locked");kY=$};Object.freeze(t$);function e$($,Q,J,Y,X,Z){let q=E($,"passwd"),G=E(Q,"salt");return N(_Y(q,G,J,Y,X,Z))}e$._=FY;e$.lock=function(){wY=!0};e$.register=function($){if(wY)throw Error("scryptSync is locked");_Y=$};Object.freeze(e$);var fY=function($){return xQ("sha256").update($).digest()},bY=function($){return xQ("sha512").update($).digest()},xY=fY,vY=bY,yY=!1,hY=!1;function V$($){let Q=E($,"data");return N(xY(Q))}V$._=fY;V$.lock=function(){yY=!0};V$.register=function($){if(yY)throw Error("sha256 is locked");xY=$};Object.freeze(V$);function W8($){let Q=E($,"data");return N(vY(Q))}W8._=bY;W8.lock=function(){hY=!0};W8.register=function($){if(hY)throw Error("sha512 is locked");vY=$};Object.freeze(V$);var uQ={};cX(uQ,{validateObject:()=>T0,utf8ToBytes:()=>eZ,numberToVarBytesBE:()=>sZ,numberToHexUnpadded:()=>cY,numberToBytesLE:()=>r8,numberToBytesBE:()=>O0,hexToNumber:()=>mQ,hexToBytes:()=>B0,equalBytes:()=>tZ,ensureBytes:()=>P$,createHmacDrbg:()=>cQ,concatBytes:()=>i0,bytesToNumberLE:()=>i8,bytesToNumberBE:()=>$0,bytesToHex:()=>w0,bitSet:()=>J9,bitMask:()=>M8,bitLen:()=>$9,bitGet:()=>Q9});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var mY=BigInt(0),n8=BigInt(1),rZ=BigInt(2),o8=($)=>$ instanceof Uint8Array,aZ=Array.from({length:256},($,Q)=>Q.toString(16).padStart(2,"0"));function w0($){if(!o8($))throw Error("Uint8Array expected");let Q="";for(let J=0;J<$.length;J++)Q+=aZ[$[J]];return Q}function cY($){let Q=$.toString(16);return Q.length&1?`0${Q}`:Q}function mQ($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);return BigInt($===""?"0":`0x${$}`)}function B0($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);let Q=$.length;if(Q%2)throw Error("padded hex string expected, got unpadded hex of length "+Q);let J=new Uint8Array(Q/2);for(let Y=0;Y<J.length;Y++){let X=Y*2,Z=$.slice(X,X+2),q=Number.parseInt(Z,16);if(Number.isNaN(q)||q<0)throw Error("Invalid byte sequence");J[Y]=q}return J}function $0($){return mQ(w0($))}function i8($){if(!o8($))throw Error("Uint8Array expected");return mQ(w0(Uint8Array.from($).reverse()))}function O0($,Q){return B0($.toString(16).padStart(Q*2,"0"))}function r8($,Q){return O0($,Q).reverse()}function sZ($){return B0(cY($))}function P$($,Q,J){let Y;if(typeof Q==="string")try{Y=B0(Q)}catch(Z){throw Error(`${$} must be valid hex string, got "${Q}". Cause: ${Z}`)}else if(o8(Q))Y=Uint8Array.from(Q);else throw Error(`${$} must be hex string or Uint8Array`);let X=Y.length;if(typeof J==="number"&&X!==J)throw Error(`${$} expected ${J} bytes, got ${X}`);return Y}function i0(...$){let Q=new Uint8Array($.reduce((Y,X)=>Y+X.length,0)),J=0;return $.forEach((Y)=>{if(!o8(Y))throw Error("Uint8Array expected");Q.set(Y,J),J+=Y.length}),Q}function tZ($,Q){if($.length!==Q.length)return!1;for(let J=0;J<$.length;J++)if($[J]!==Q[J])return!1;return!0}function eZ($){if(typeof $!=="string")throw Error(`utf8ToBytes expected string, got ${typeof $}`);return new Uint8Array(new TextEncoder().encode($))}function $9($){let Q;for(Q=0;$>mY;$>>=n8,Q+=1);return Q}function Q9($,Q){return $>>BigInt(Q)&n8}var J9=($,Q,J)=>{return $|(J?n8:mY)<<BigInt(Q)},M8=($)=>(rZ<<BigInt($-1))-n8,gQ=($)=>new Uint8Array($),gY=($)=>Uint8Array.from($);function cQ($,Q,J){if(typeof $!=="number"||$<2)throw Error("hashLen must be a number");if(typeof Q!=="number"||Q<2)throw Error("qByteLen must be a number");if(typeof J!=="function")throw Error("hmacFn must be a function");let Y=gQ($),X=gQ($),Z=0,q=()=>{Y.fill(1),X.fill(0),Z=0},G=(...z)=>J(X,Y,...z),W=(z=gQ())=>{if(X=G(gY([0]),z),Y=G(),z.length===0)return;X=G(gY([1]),z),Y=G()},M=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let z=0,K=[];while(z<Q){Y=G();let w=Y.slice();K.push(w),z+=Y.length}return i0(...K)};return(z,K)=>{q(),W(z);let w=void 0;while(!(w=K(M())))W();return q(),w}}var Y9={bigint:($)=>typeof $==="bigint",function:($)=>typeof $==="function",boolean:($)=>typeof $==="boolean",string:($)=>typeof $==="string",stringOrUint8Array:($)=>typeof $==="string"||$ instanceof Uint8Array,isSafeInteger:($)=>Number.isSafeInteger($),array:($)=>Array.isArray($),field:($,Q)=>Q.Fp.isValid($),hash:($)=>typeof $==="function"&&Number.isSafeInteger($.outputLen)};function T0($,Q,J={}){let Y=(X,Z,q)=>{let G=Y9[Z];if(typeof G!=="function")throw Error(`Invalid validator "${Z}", expected function`);let W=$[X];if(q&&W===void 0)return;if(!G(W,$))throw Error(`Invalid param ${String(X)}=${W} (${typeof W}), expected ${Z}`)};for(let[X,Z]of Object.entries(Q))Y(X,Z,!1);for(let[X,Z]of Object.entries(J))Y(X,Z,!0);return $}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Z$=BigInt(0),$$=BigInt(1),A0=BigInt(2),X9=BigInt(3),pQ=BigInt(4),uY=BigInt(5),pY=BigInt(8),Z9=BigInt(9),q9=BigInt(16);function T$($,Q){let J=$%Q;return J>=Z$?J:Q+J}function G9($,Q,J){if(J<=Z$||Q<Z$)throw Error("Expected power/modulo > 0");if(J===$$)return Z$;let Y=$$;while(Q>Z$){if(Q&$$)Y=Y*$%J;$=$*$%J,Q>>=$$}return Y}function S$($,Q,J){let Y=$;while(Q-- >Z$)Y*=Y,Y%=J;return Y}function a8($,Q){if($===Z$||Q<=Z$)throw Error(`invert: expected positive integers, got n=${$} mod=${Q}`);let J=T$($,Q),Y=Q,X=Z$,Z=$$,q=$$,G=Z$;while(J!==Z$){let M=Y/J,V=Y%J,z=X-q*M,K=Z-G*M;Y=J,J=V,X=q,Z=G,q=z,G=K}if(Y!==$$)throw Error("invert: does not exist");return T$(X,Q)}function W9($){let Q=($-$$)/A0,J,Y,X;for(J=$-$$,Y=0;J%A0===Z$;J/=A0,Y++);for(X=A0;X<$&&G9(X,Q,$)!==$-$$;X++);if(Y===1){let q=($+$$)/pQ;return function(W,M){let V=W.pow(M,q);if(!W.eql(W.sqr(V),M))throw Error("Cannot find square root");return V}}let Z=(J+$$)/A0;return function(G,W){if(G.pow(W,Q)===G.neg(G.ONE))throw Error("Cannot find square root");let M=Y,V=G.pow(G.mul(G.ONE,X),J),z=G.pow(W,Z),K=G.pow(W,J);while(!G.eql(K,G.ONE)){if(G.eql(K,G.ZERO))return G.ZERO;let w=1;for(let O=G.sqr(K);w<M;w++){if(G.eql(O,G.ONE))break;O=G.sqr(O)}let I=G.pow(V,$$<<BigInt(M-w-1));V=G.sqr(I),z=G.mul(z,I),K=G.mul(K,V),M=w}return z}}function M9($){if($%pQ===X9){let Q=($+$$)/pQ;return function(Y,X){let Z=Y.pow(X,Q);if(!Y.eql(Y.sqr(Z),X))throw Error("Cannot find square root");return Z}}if($%pY===uY){let Q=($-uY)/pY;return function(Y,X){let Z=Y.mul(X,A0),q=Y.pow(Z,Q),G=Y.mul(X,q),W=Y.mul(Y.mul(G,A0),q),M=Y.mul(G,Y.sub(W,Y.ONE));if(!Y.eql(Y.sqr(M),X))throw Error("Cannot find square root");return M}}if($%q9===Z9);return W9($)}var V9=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function lQ($){let Q={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},J=V9.reduce((Y,X)=>{return Y[X]="function",Y},Q);return T0($,J)}function z9($,Q,J){if(J<Z$)throw Error("Expected power > 0");if(J===Z$)return $.ONE;if(J===$$)return Q;let Y=$.ONE,X=Q;while(J>Z$){if(J&$$)Y=$.mul(Y,X);X=$.sqr(X),J>>=$$}return Y}function D9($,Q){let J=Array(Q.length),Y=Q.reduce((Z,q,G)=>{if($.is0(q))return Z;return J[G]=Z,$.mul(Z,q)},$.ONE),X=$.inv(Y);return Q.reduceRight((Z,q,G)=>{if($.is0(q))return Z;return J[G]=$.mul(Z,J[G]),$.mul(Z,q)},X),J}function dQ($,Q){let J=Q!==void 0?Q:$.toString(2).length,Y=Math.ceil(J/8);return{nBitLength:J,nByteLength:Y}}function lY($,Q,J=!1,Y={}){if($<=Z$)throw Error(`Expected Field ORDER > 0, got ${$}`);let{nBitLength:X,nByteLength:Z}=dQ($,Q);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let q=M9($),G=Object.freeze({ORDER:$,BITS:X,BYTES:Z,MASK:M8(X),ZERO:Z$,ONE:$$,create:(W)=>T$(W,$),isValid:(W)=>{if(typeof W!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof W}`);return Z$<=W&&W<$},is0:(W)=>W===Z$,isOdd:(W)=>(W&$$)===$$,neg:(W)=>T$(-W,$),eql:(W,M)=>W===M,sqr:(W)=>T$(W*W,$),add:(W,M)=>T$(W+M,$),sub:(W,M)=>T$(W-M,$),mul:(W,M)=>T$(W*M,$),pow:(W,M)=>z9(G,W,M),div:(W,M)=>T$(W*a8(M,$),$),sqrN:(W)=>W*W,addN:(W,M)=>W+M,subN:(W,M)=>W-M,mulN:(W,M)=>W*M,inv:(W)=>a8(W,$),sqrt:Y.sqrt||((W)=>q(G,W)),invertBatch:(W)=>D9(G,W),cmov:(W,M,V)=>V?M:W,toBytes:(W)=>J?r8(W,Z):O0(W,Z),fromBytes:(W)=>{if(W.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${W.length}`);return J?i8(W):$0(W)}});return Object.freeze(G)}function dY($){if(typeof $!=="bigint")throw Error("field order must be bigint");let Q=$.toString(2).length;return Math.ceil(Q/8)}function nQ($){let Q=dY($);return Q+Math.ceil(Q/2)}function nY($,Q,J=!1){let Y=$.length,X=dY(Q),Z=nQ(Q);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let q=J?$0($):i8($),G=T$(q,Q-$$)+$$;return J?r8(G,X):O0(G,X)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var K9=BigInt(0),oQ=BigInt(1);function oY($,Q){let J=(X,Z)=>{let q=Z.negate();return X?q:Z},Y=(X)=>{let Z=Math.ceil(Q/X)+1,q=2**(X-1);return{windows:Z,windowSize:q}};return{constTimeNegate:J,unsafeLadder(X,Z){let q=$.ZERO,G=X;while(Z>K9){if(Z&oQ)q=q.add(G);G=G.double(),Z>>=oQ}return q},precomputeWindow(X,Z){let{windows:q,windowSize:G}=Y(Z),W=[],M=X,V=M;for(let z=0;z<q;z++){V=M,W.push(V);for(let K=1;K<G;K++)V=V.add(M),W.push(V);M=V.double()}return W},wNAF(X,Z,q){let{windows:G,windowSize:W}=Y(X),M=$.ZERO,V=$.BASE,z=BigInt(2**X-1),K=2**X,w=BigInt(X);for(let I=0;I<G;I++){let O=I*W,U=Number(q&z);if(q>>=w,U>W)U-=K,q+=oQ;let R=O,P=O+Math.abs(U)-1,f=I%2!==0,j=U<0;if(U===0)V=V.add(J(f,Z[R]));else M=M.add(J(j,Z[P]))}return{p:M,f:V}},wNAFCached(X,Z,q,G){let W=X._WINDOW_SIZE||1,M=Z.get(X);if(!M){if(M=this.precomputeWindow(X,W),W!==1)Z.set(X,G(M))}return this.wNAF(W,M,q)}}}function iQ($){return lQ($.Fp),T0($,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...dQ($.n,$.nBitLength),...$,...{p:$.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function O9($){let Q=iQ($);T0(Q,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:J,Fp:Y,a:X}=Q;if(J){if(!Y.eql(X,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof J!=="object"||typeof J.beta!=="bigint"||typeof J.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...Q})}var{bytesToNumberBE:T9,hexToBytes:U9}=uQ,F0={Err:class extends Error{constructor(Q=""){super(Q)}},_parseInt($){let{Err:Q}=F0;if($.length<2||$[0]!==2)throw new Q("Invalid signature integer tag");let J=$[1],Y=$.subarray(2,J+2);if(!J||Y.length!==J)throw new Q("Invalid signature integer: wrong length");if(Y[0]&128)throw new Q("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new Q("Invalid signature integer: unnecessary leading zero");return{d:T9(Y),l:$.subarray(J+2)}},toSig($){let{Err:Q}=F0,J=typeof $==="string"?U9($):$;if(!(J instanceof Uint8Array))throw Error("ui8a expected");let Y=J.length;if(Y<2||J[0]!=48)throw new Q("Invalid signature tag");if(J[1]!==Y-2)throw new Q("Invalid signature: incorrect length");let{d:X,l:Z}=F0._parseInt(J.subarray(2)),{d:q,l:G}=F0._parseInt(Z);if(G.length)throw new Q("Invalid signature: left bytes after parsing");return{r:X,s:q}},hexFromSig($){let Q=(M)=>Number.parseInt(M[0],16)&8?"00"+M:M,J=(M)=>{let V=M.toString(16);return V.length&1?`0${V}`:V},Y=Q(J($.s)),X=Q(J($.r)),Z=Y.length/2,q=X.length/2,G=J(Z),W=J(q);return`30${J(q+Z+4)}02${W}${X}02${G}${Y}`}},Q0=BigInt(0),B$=BigInt(1),b5=BigInt(2),iY=BigInt(3),x5=BigInt(4);function H9($){let Q=O9($),{Fp:J}=Q,Y=Q.toBytes||((I,O,U)=>{let R=O.toAffine();return i0(Uint8Array.from([4]),J.toBytes(R.x),J.toBytes(R.y))}),X=Q.fromBytes||((I)=>{let O=I.subarray(1),U=J.fromBytes(O.subarray(0,J.BYTES)),R=J.fromBytes(O.subarray(J.BYTES,2*J.BYTES));return{x:U,y:R}});function Z(I){let{a:O,b:U}=Q,R=J.sqr(I),P=J.mul(R,I);return J.add(J.add(P,J.mul(I,O)),U)}if(!J.eql(J.sqr(Q.Gy),Z(Q.Gx)))throw Error("bad generator point: equation left != right");function q(I){return typeof I==="bigint"&&Q0<I&&I<Q.n}function G(I){if(!q(I))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function W(I){let{allowedPrivateKeyLengths:O,nByteLength:U,wrapPrivateKey:R,n:P}=Q;if(O&&typeof I!=="bigint"){if(I instanceof Uint8Array)I=w0(I);if(typeof I!=="string"||!O.includes(I.length))throw Error("Invalid key");I=I.padStart(U*2,"0")}let f;try{f=typeof I==="bigint"?I:$0(P$("private key",I,U))}catch(j){throw Error(`private key must be ${U} bytes, hex or bigint, not ${typeof I}`)}if(R)f=T$(f,P);return G(f),f}let M=new Map;function V(I){if(!(I instanceof z))throw Error("ProjectivePoint expected")}class z{constructor(I,O,U){if(this.px=I,this.py=O,this.pz=U,I==null||!J.isValid(I))throw Error("x required");if(O==null||!J.isValid(O))throw Error("y required");if(U==null||!J.isValid(U))throw Error("z required")}static fromAffine(I){let{x:O,y:U}=I||{};if(!I||!J.isValid(O)||!J.isValid(U))throw Error("invalid affine point");if(I instanceof z)throw Error("projective point not allowed");let R=(P)=>J.eql(P,J.ZERO);if(R(O)&&R(U))return z.ZERO;return new z(O,U,J.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(I){let O=J.invertBatch(I.map((U)=>U.pz));return I.map((U,R)=>U.toAffine(O[R])).map(z.fromAffine)}static fromHex(I){let O=z.fromAffine(X(P$("pointHex",I)));return O.assertValidity(),O}static fromPrivateKey(I){return z.BASE.multiply(W(I))}_setWindowSize(I){this._WINDOW_SIZE=I,M.delete(this)}assertValidity(){if(this.is0()){if(Q.allowInfinityPoint&&!J.is0(this.py))return;throw Error("bad point: ZERO")}let{x:I,y:O}=this.toAffine();if(!J.isValid(I)||!J.isValid(O))throw Error("bad point: x or y not FE");let U=J.sqr(O),R=Z(I);if(!J.eql(U,R))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:I}=this.toAffine();if(J.isOdd)return!J.isOdd(I);throw Error("Field doesn't support isOdd")}equals(I){V(I);let{px:O,py:U,pz:R}=this,{px:P,py:f,pz:j}=I,L=J.eql(J.mul(O,j),J.mul(P,R)),H=J.eql(J.mul(U,j),J.mul(f,R));return L&&H}negate(){return new z(this.px,J.neg(this.py),this.pz)}double(){let{a:I,b:O}=Q,U=J.mul(O,iY),{px:R,py:P,pz:f}=this,j=J.ZERO,L=J.ZERO,H=J.ZERO,T=J.mul(R,R),A=J.mul(P,P),S=J.mul(f,f),B=J.mul(R,P);return B=J.add(B,B),H=J.mul(R,f),H=J.add(H,H),j=J.mul(I,H),L=J.mul(U,S),L=J.add(j,L),j=J.sub(A,L),L=J.add(A,L),L=J.mul(j,L),j=J.mul(B,j),H=J.mul(U,H),S=J.mul(I,S),B=J.sub(T,S),B=J.mul(I,B),B=J.add(B,H),H=J.add(T,T),T=J.add(H,T),T=J.add(T,S),T=J.mul(T,B),L=J.add(L,T),S=J.mul(P,f),S=J.add(S,S),T=J.mul(S,B),j=J.sub(j,T),H=J.mul(S,A),H=J.add(H,H),H=J.add(H,H),new z(j,L,H)}add(I){V(I);let{px:O,py:U,pz:R}=this,{px:P,py:f,pz:j}=I,L=J.ZERO,H=J.ZERO,T=J.ZERO,A=Q.a,S=J.mul(Q.b,iY),B=J.mul(O,P),k=J.mul(U,f),x=J.mul(R,j),i=J.add(O,U),g=J.add(P,f);i=J.mul(i,g),g=J.add(B,k),i=J.sub(i,g),g=J.add(O,R);let C=J.add(P,j);return g=J.mul(g,C),C=J.add(B,x),g=J.sub(g,C),C=J.add(U,R),L=J.add(f,j),C=J.mul(C,L),L=J.add(k,x),C=J.sub(C,L),T=J.mul(A,g),L=J.mul(S,x),T=J.add(L,T),L=J.sub(k,T),T=J.add(k,T),H=J.mul(L,T),k=J.add(B,B),k=J.add(k,B),x=J.mul(A,x),g=J.mul(S,g),k=J.add(k,x),x=J.sub(B,x),x=J.mul(A,x),g=J.add(g,x),B=J.mul(k,g),H=J.add(H,B),B=J.mul(C,g),L=J.mul(i,L),L=J.sub(L,B),B=J.mul(i,k),T=J.mul(C,T),T=J.add(T,B),new z(L,H,T)}subtract(I){return this.add(I.negate())}is0(){return this.equals(z.ZERO)}wNAF(I){return w.wNAFCached(this,M,I,(O)=>{let U=J.invertBatch(O.map((R)=>R.pz));return O.map((R,P)=>R.toAffine(U[P])).map(z.fromAffine)})}multiplyUnsafe(I){let O=z.ZERO;if(I===Q0)return O;if(G(I),I===B$)return this;let{endo:U}=Q;if(!U)return w.unsafeLadder(this,I);let{k1neg:R,k1:P,k2neg:f,k2:j}=U.splitScalar(I),L=O,H=O,T=this;while(P>Q0||j>Q0){if(P&B$)L=L.add(T);if(j&B$)H=H.add(T);T=T.double(),P>>=B$,j>>=B$}if(R)L=L.negate();if(f)H=H.negate();return H=new z(J.mul(H.px,U.beta),H.py,H.pz),L.add(H)}multiply(I){G(I);let O=I,U,R,{endo:P}=Q;if(P){let{k1neg:f,k1:j,k2neg:L,k2:H}=P.splitScalar(O),{p:T,f:A}=this.wNAF(j),{p:S,f:B}=this.wNAF(H);T=w.constTimeNegate(f,T),S=w.constTimeNegate(L,S),S=new z(J.mul(S.px,P.beta),S.py,S.pz),U=T.add(S),R=A.add(B)}else{let{p:f,f:j}=this.wNAF(O);U=f,R=j}return z.normalizeZ([U,R])[0]}multiplyAndAddUnsafe(I,O,U){let R=z.BASE,P=(j,L)=>L===Q0||L===B$||!j.equals(R)?j.multiplyUnsafe(L):j.multiply(L),f=P(this,O).add(P(I,U));return f.is0()?void 0:f}toAffine(I){let{px:O,py:U,pz:R}=this,P=this.is0();if(I==null)I=P?J.ONE:J.inv(R);let f=J.mul(O,I),j=J.mul(U,I),L=J.mul(R,I);if(P)return{x:J.ZERO,y:J.ZERO};if(!J.eql(L,J.ONE))throw Error("invZ was invalid");return{x:f,y:j}}isTorsionFree(){let{h:I,isTorsionFree:O}=Q;if(I===B$)return!0;if(O)return O(z,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:I,clearCofactor:O}=Q;if(I===B$)return this;if(O)return O(z,this);return this.multiplyUnsafe(Q.h)}toRawBytes(I=!0){return this.assertValidity(),Y(z,this,I)}toHex(I=!0){return w0(this.toRawBytes(I))}}z.BASE=new z(Q.Gx,Q.Gy,J.ONE),z.ZERO=new z(J.ZERO,J.ONE,J.ZERO);let K=Q.nBitLength,w=oY(z,Q.endo?Math.ceil(K/2):K);return{CURVE:Q,ProjectivePoint:z,normPrivateKeyToScalar:W,weierstrassEquation:Z,isWithinCurveOrder:q}}function R9($){let Q=iQ($);return T0(Q,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...Q})}function rY($){let Q=R9($),{Fp:J,n:Y}=Q,X=J.BYTES+1,Z=2*J.BYTES+1;function q(C){return Q0<C&&C<J.ORDER}function G(C){return T$(C,Y)}function W(C){return a8(C,Y)}let{ProjectivePoint:M,normPrivateKeyToScalar:V,weierstrassEquation:z,isWithinCurveOrder:K}=H9({...Q,toBytes(C,F,b){let y=F.toAffine(),u=J.toBytes(y.x),d=i0;if(b)return d(Uint8Array.from([F.hasEvenY()?2:3]),u);else return d(Uint8Array.from([4]),u,J.toBytes(y.y))},fromBytes(C){let F=C.length,b=C[0],y=C.subarray(1);if(F===X&&(b===2||b===3)){let u=$0(y);if(!q(u))throw Error("Point is not on curve");let d=z(u),Y$=J.sqrt(d),I$=(Y$&B$)===B$;if((b&1)===1!==I$)Y$=J.neg(Y$);return{x:u,y:Y$}}else if(F===Z&&b===4){let u=J.fromBytes(y.subarray(0,J.BYTES)),d=J.fromBytes(y.subarray(J.BYTES,2*J.BYTES));return{x:u,y:d}}else throw Error(`Point of length ${F} was invalid. Expected ${X} compressed bytes or ${Z} uncompressed bytes`)}}),w=(C)=>w0(O0(C,Q.nByteLength));function I(C){let F=Y>>B$;return C>F}function O(C){return I(C)?G(-C):C}let U=(C,F,b)=>$0(C.slice(F,b));class R{constructor(C,F,b){this.r=C,this.s=F,this.recovery=b,this.assertValidity()}static fromCompact(C){let F=Q.nByteLength;return C=P$("compactSignature",C,F*2),new R(U(C,0,F),U(C,F,2*F))}static fromDER(C){let{r:F,s:b}=F0.toSig(P$("DER",C));return new R(F,b)}assertValidity(){if(!K(this.r))throw Error("r must be 0 < r < CURVE.n");if(!K(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(C){return new R(this.r,this.s,C)}recoverPublicKey(C){let{r:F,s:b,recovery:y}=this,u=T(P$("msgHash",C));if(y==null||![0,1,2,3].includes(y))throw Error("recovery id invalid");let d=y===2||y===3?F+Q.n:F;if(d>=J.ORDER)throw Error("recovery id 2 or 3 invalid");let Y$=(y&1)===0?"02":"03",I$=M.fromHex(Y$+w(d)),d$=W(d),L0=G(-u*d$),y0=G(b*d$),N0=M.BASE.multiplyAndAddUnsafe(I$,L0,y0);if(!N0)throw Error("point at infinify");return N0.assertValidity(),N0}hasHighS(){return I(this.s)}normalizeS(){return this.hasHighS()?new R(this.r,G(-this.s),this.recovery):this}toDERRawBytes(){return B0(this.toDERHex())}toDERHex(){return F0.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return B0(this.toCompactHex())}toCompactHex(){return w(this.r)+w(this.s)}}let P={isValidPrivateKey(C){try{return V(C),!0}catch(F){return!1}},normPrivateKeyToScalar:V,randomPrivateKey:()=>{let C=nQ(Q.n);return nY(Q.randomBytes(C),Q.n)},precompute(C=8,F=M.BASE){return F._setWindowSize(C),F.multiply(BigInt(3)),F}};function f(C,F=!0){return M.fromPrivateKey(C).toRawBytes(F)}function j(C){let F=C instanceof Uint8Array,b=typeof C==="string",y=(F||b)&&C.length;if(F)return y===X||y===Z;if(b)return y===2*X||y===2*Z;if(C instanceof M)return!0;return!1}function L(C,F,b=!0){if(j(C))throw Error("first arg must be private key");if(!j(F))throw Error("second arg must be public key");return M.fromHex(F).multiply(V(C)).toRawBytes(b)}let H=Q.bits2int||function(C){let F=$0(C),b=C.length*8-Q.nBitLength;return b>0?F>>BigInt(b):F},T=Q.bits2int_modN||function(C){return G(H(C))},A=M8(Q.nBitLength);function S(C){if(typeof C!=="bigint")throw Error("bigint expected");if(!(Q0<=C&&C<A))throw Error(`bigint expected < 2^${Q.nBitLength}`);return O0(C,Q.nByteLength)}function B(C,F,b=k){if(["recovered","canonical"].some((C0)=>(C0 in b)))throw Error("sign() legacy options not supported");let{hash:y,randomBytes:u}=Q,{lowS:d,prehash:Y$,extraEntropy:I$}=b;if(d==null)d=!0;if(C=P$("msgHash",C),Y$)C=P$("prehashed msgHash",y(C));let d$=T(C),L0=V(F),y0=[S(L0),S(d$)];if(I$!=null){let C0=I$===!0?u(J.BYTES):I$;y0.push(P$("extraEntropy",C0))}let N0=i0(...y0),P8=d$;function PQ(C0){let h0=H(C0);if(!K(h0))return;let PJ=W(h0),h$=M.BASE.multiply(h0).toAffine(),g0=G(h$.x);if(g0===Q0)return;let S8=G(PJ*G(P8+g0*L0));if(S8===Q0)return;let SJ=(h$.x===g0?0:2)|Number(h$.y&B$),wJ=S8;if(d&&I(S8))wJ=O(S8),SJ^=1;return new R(g0,wJ,SJ)}return{seed:N0,k2sig:PQ}}let k={lowS:Q.lowS,prehash:!1},x={lowS:Q.lowS,prehash:!1};function i(C,F,b=k){let{seed:y,k2sig:u}=B(C,F,b),d=Q;return cQ(d.hash.outputLen,d.nByteLength,d.hmac)(y,u)}M.BASE._setWindowSize(8);function g(C,F,b,y=x){let u=C;if(F=P$("msgHash",F),b=P$("publicKey",b),"strict"in y)throw Error("options.strict was renamed to lowS");let{lowS:d,prehash:Y$}=y,I$=void 0,d$;try{if(typeof u==="string"||u instanceof Uint8Array)try{I$=R.fromDER(u)}catch(h$){if(!(h$ instanceof F0.Err))throw h$;I$=R.fromCompact(u)}else if(typeof u==="object"&&typeof u.r==="bigint"&&typeof u.s==="bigint"){let{r:h$,s:g0}=u;I$=new R(h$,g0)}else throw Error("PARSE");d$=M.fromHex(b)}catch(h$){if(h$.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(d&&I$.hasHighS())return!1;if(Y$)F=Q.hash(F);let{r:L0,s:y0}=I$,N0=T(F),P8=W(y0),PQ=G(N0*P8),C0=G(L0*P8),h0=M.BASE.multiplyAndAddUnsafe(d$,PQ,C0)?.toAffine();if(!h0)return!1;return G(h0.x)===L0}return{CURVE:Q,getPublicKey:f,getSharedSecret:L,sign:i,verify:g,ProjectivePoint:M,Signature:R,utils:P}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function L9($){return{hash:$,hmac:(Q,...J)=>P0($,Q,mJ(...J)),randomBytes:cJ}}function aY($,Q){let J=(Y)=>rY({...$,...L9(Y)});return Object.freeze({...J(Q),create:J})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var eY=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),sY=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),N9=BigInt(1),rQ=BigInt(2),tY=($,Q)=>($+Q/rQ)/Q;function C9($){let Q=eY,J=BigInt(3),Y=BigInt(6),X=BigInt(11),Z=BigInt(22),q=BigInt(23),G=BigInt(44),W=BigInt(88),M=$*$*$%Q,V=M*M*$%Q,z=S$(V,J,Q)*V%Q,K=S$(z,J,Q)*V%Q,w=S$(K,rQ,Q)*M%Q,I=S$(w,X,Q)*w%Q,O=S$(I,Z,Q)*I%Q,U=S$(O,G,Q)*O%Q,R=S$(U,W,Q)*U%Q,P=S$(R,G,Q)*O%Q,f=S$(P,J,Q)*V%Q,j=S$(f,q,Q)*I%Q,L=S$(j,Y,Q)*M%Q,H=S$(L,rQ,Q);if(!aQ.eql(aQ.sqr(H),$))throw Error("Cannot find square root");return H}var aQ=lY(eY,void 0,void 0,{sqrt:C9}),J0=aY({a:BigInt(0),b:BigInt(7),Fp:aQ,n:sY,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:($)=>{let Q=sY,J=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-N9*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),X=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=J,q=BigInt("0x100000000000000000000000000000000"),G=tY(Z*$,Q),W=tY(-Y*$,Q),M=T$($-G*J-W*X,Q),V=T$(-G*Y-W*Z,Q),z=M>q,K=V>q;if(z)M=Q-M;if(K)V=Q-V;if(M>q||V>q)throw Error("splitScalar: Endomorphism failed, k="+$);return{k1neg:z,k1:M,k2neg:K,k2:V}}}},r$),l5=BigInt(0);var d5=J0.ProjectivePoint;var sQ="0x0000000000000000000000000000000000000000";var s8="0x0000000000000000000000000000000000000000000000000000000000000000";var tQ=`\x19Ethereum Signed Message:
|
|
3
|
-
`;var $X=BigInt(0),QX=BigInt(1),JX=BigInt(2),YX=BigInt(27),XX=BigInt(28),t8=BigInt(35),r0={};function ZX($){return E$(a($),32)}class t{#$;#Q;#J;#Y;get r(){return this.#$}set r($){D(o$($)===32,"invalid r","value",$),this.#$=N($)}get s(){return D(parseInt(this.#Q.substring(0,3))<8,"non-canonical s; use ._s","s",this.#Q),this.#Q}set s($){D(o$($)===32,"invalid s","value",$),this.#Q=N($)}get _s(){return this.#Q}isValid(){return parseInt(this.#Q.substring(0,3))<8}get v(){return this.#J}set v($){let Q=q$($,"value");D(Q===27||Q===28,"invalid v","v",$),this.#J=Q}get networkV(){return this.#Y}get legacyChainId(){let $=this.networkV;if($==null)return null;return t.getChainId($)}get yParity(){return this.v===27?0:1}get yParityAndS(){let $=E(this.s);if(this.yParity)$[0]|=128;return N($)}get compactSerialized(){return n([this.r,this.yParityAndS])}get serialized(){return n([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor($,Q,J,Y){n$($,r0,"Signature"),this.#$=Q,this.#Q=J,this.#J=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let $=new t(r0,this.r,this._s,this.v);if(this.networkV)$.#Y=this.networkV;return $}toJSON(){let $=this.networkV;return{_type:"signature",networkV:$!=null?$.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId($){let Q=m($,"v");if(Q==YX||Q==XX)return $X;return D(Q>=t8,"invalid EIP-155 v","v",$),(Q-t8)/JX}static getChainIdV($,Q){return m($)*JX+BigInt(35+Q-27)}static getNormalizedV($){let Q=m($);if(Q===$X||Q===YX)return 27;if(Q===QX||Q===XX)return 28;return D(Q>=t8,"invalid v","v",$),Q&QX?27:28}static from($){function Q(W,M){D(W,M,"signature",$)}if($==null)return new t(r0,s8,s8,27);if(typeof $==="string"){let W=E($,"signature");if(W.length===64){let M=N(W.slice(0,32)),V=W.slice(32,64),z=V[0]&128?28:27;return V[0]&=127,new t(r0,M,N(V),z)}if(W.length===65){let M=N(W.slice(0,32)),V=N(W.slice(32,64)),z=t.getNormalizedV(W[64]);return new t(r0,M,V,z)}Q(!1,"invalid raw signature length")}if($ instanceof t)return $.clone();let J=$.r;Q(J!=null,"missing r");let Y=ZX(J),X=function(W,M){if(W!=null)return ZX(W);if(M!=null){Q(K$(M,32),"invalid yParityAndS");let V=E(M);return V[0]&=127,N(V)}Q(!1,"missing s")}($.s,$.yParityAndS),{networkV:Z,v:q}=function(W,M,V){if(W!=null){let z=m(W);return{networkV:z>=t8?z:void 0,v:t.getNormalizedV(z)}}if(M!=null)return Q(K$(M,32),"invalid yParityAndS"),{v:E(M)[0]&128?28:27};if(V!=null){switch(q$(V,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}Q(!1,"invalid yParity")}Q(!1,"missing v")}($.v,$.yParityAndS,$.yParity),G=new t(r0,Y,X,q);if(Z)G.#Y=Z;return Q($.yParity==null||q$($.yParity,"sig.yParity")===G.yParity,"yParity mismatch"),Q($.yParityAndS==null||$.yParityAndS===G.yParityAndS,"yParityAndS mismatch"),G}}class Q${#$;constructor($){D(o$($)===32,"invalid private key","privateKey","[REDACTED]"),this.#$=N($)}get privateKey(){return this.#$}get publicKey(){return Q$.computePublicKey(this.#$)}get compressedPublicKey(){return Q$.computePublicKey(this.#$,!0)}sign($){D(o$($)===32,"invalid digest length","digest",$);let Q=J0.sign(b$($),b$(this.#$),{lowS:!0});return t.from({r:x$(Q.r,32),s:x$(Q.s,32),v:Q.recovery?28:27})}computeSharedSecret($){let Q=Q$.computePublicKey($);return N(J0.getSharedSecret(b$(this.#$),E(Q),!1))}static computePublicKey($,Q){let J=E($,"key");if(J.length===32){let X=J0.getPublicKey(J,!!Q);return N(X)}if(J.length===64){let X=new Uint8Array(65);X[0]=4,X.set(J,1),J=X}let Y=J0.ProjectivePoint.fromHex(J);return N(Y.toRawBytes(Q))}static recoverPublicKey($,Q){D(o$($)===32,"invalid digest length","digest",$);let J=t.from(Q),Y=J0.Signature.fromCompact(b$(n([J.r,J.s])));Y=Y.addRecoveryBit(J.yParity);let X=Y.recoverPublicKey(b$($));return D(X!=null,"invalid signature for digest","signature",Q),"0x"+X.toHex(!1)}static addPoints($,Q,J){let Y=J0.ProjectivePoint.fromHex(Q$.computePublicKey($).substring(2)),X=J0.ProjectivePoint.fromHex(Q$.computePublicKey(Q).substring(2));return"0x"+Y.add(X).toHex(!!J)}}var E9=BigInt(0),j9=BigInt(36);function qX($){$=$.toLowerCase();let Q=$.substring(2).split(""),J=new Uint8Array(40);for(let X=0;X<40;X++)J[X]=Q[X].charCodeAt(0);let Y=E(l(J));for(let X=0;X<40;X+=2){if(Y[X>>1]>>4>=8)Q[X]=Q[X].toUpperCase();if((Y[X>>1]&15)>=8)Q[X+1]=Q[X+1].toUpperCase()}return"0x"+Q.join("")}var eQ={};for(let $=0;$<10;$++)eQ[String($)]=String($);for(let $=0;$<26;$++)eQ[String.fromCharCode(65+$)]=String(10+$);var GX=15;function P9($){$=$.toUpperCase(),$=$.substring(4)+$.substring(0,2)+"00";let Q=$.split("").map((Y)=>{return eQ[Y]}).join("");while(Q.length>=GX){let Y=Q.substring(0,GX);Q=parseInt(Y,10)%97+Q.substring(Y.length)}let J=String(98-parseInt(Q,10)%97);while(J.length<2)J="0"+J;return J}var S9=function(){let $={};for(let Q=0;Q<36;Q++){let J="0123456789abcdefghijklmnopqrstuvwxyz"[Q];$[J]=BigInt(Q)}return $}();function w9($){$=$.toLowerCase();let Q=E9;for(let J=0;J<$.length;J++)Q=Q*j9+S9[$[J]];return Q}function h($){if(D(typeof $==="string","invalid address","address",$),$.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!$.startsWith("0x"))$="0x"+$;let Q=qX($);return D(!$.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||Q===$,"bad address checksum","address",$),Q}if($.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){D($.substring(2,4)===P9($),"bad icap checksum","address",$);let Q=w9($.substring(4)).toString(16);while(Q.length<40)Q="0"+Q;return qX("0x"+Q)}D(!1,"invalid address","address",$)}function QJ($){return $&&typeof $.getAddress==="function"}async function $J($,Q){let J=await Q;if(J==null||J==="0x0000000000000000000000000000000000000000")_(typeof $!=="string","unconfigured name","UNCONFIGURED_NAME",{value:$}),D(!1,"invalid AddressLike value; did not resolve to a value address","target",$);return h(J)}function Y0($,Q){if(typeof $==="string"){if($.match(/^0x[0-9a-f]{40}$/i))return h($);return _(Q!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),$J($,Q.resolveName($))}else if(QJ($))return $J($,$.getAddress());else if($&&typeof $.then==="function")return $J($,$);D(!1,"unsupported addressable value","target",$)}function JJ($,Q){return{address:h($),storageKeys:Q.map((J,Y)=>{return D(K$(J,32),"invalid slot",`storageKeys[${Y}]`,J),J.toLowerCase()})}}function k0($){if(Array.isArray($))return $.map((J,Y)=>{if(Array.isArray(J))return D(J.length===2,"invalid slot set",`value[${Y}]`,J),JJ(J[0],J[1]);return D(J!=null&&typeof J==="object","invalid address-slot set","value",$),JJ(J.address,J.storageKeys)});D($!=null&&typeof $==="object","invalid access list","value",$);let Q=Object.keys($).map((J)=>{let Y=$[J].reduce((X,Z)=>{return X[Z]=!0,X},{});return JJ(J,Object.keys(Y).sort())});return Q.sort((J,Y)=>J.address.localeCompare(Y.address)),Q}function WX($){return{address:h($.address),nonce:m($.nonce!=null?$.nonce:0),chainId:m($.chainId!=null?$.chainId:0),signature:t.from($.signature)}}function X0($){let Q;if(typeof $==="string")Q=Q$.computePublicKey($,!1);else Q=$.publicKey;return h(l("0x"+Q.substring(4)).substring(26))}function V8($,Q){return X0(Q$.recoverPublicKey($,Q))}var W$=BigInt(0),F9=BigInt(2),k9=BigInt(27),_9=BigInt(28),f9=BigInt(35),b9=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),YJ=131072;function x9($){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in $){if("blobToKzgCommitment"in $&&typeof $.blobToKzgCommitment==="function")return E($.blobToKzgCommitment(N(Y)))}else if("blobToKzgCommitment"in $&&typeof $.blobToKzgCommitment==="function")return E($.blobToKzgCommitment(Y));if("blobToKZGCommitment"in $&&typeof $.blobToKZGCommitment==="function")return E($.blobToKZGCommitment(N(Y)));D(!1,"unsupported KZG library","kzg",$)},computeBlobKzgProof:(Y,X)=>{if("computeBlobProof"in $&&typeof $.computeBlobProof==="function")return E($.computeBlobProof(N(Y),N(X)));if("computeBlobKzgProof"in $&&typeof $.computeBlobKzgProof==="function")return $.computeBlobKzgProof(Y,X);if("computeBlobKZGProof"in $&&typeof $.computeBlobKZGProof==="function")return E($.computeBlobKZGProof(N(Y),N(X)));D(!1,"unsupported KZG library","kzg",$)}}}function MX($,Q){let J=$.toString(16);while(J.length<2)J="0"+J;return J+=V$(Q).substring(4),"0x"+J}function a0($){if($==="0x")return null;return h($)}function e8($,Q){try{return k0($)}catch(J){D(!1,J.message,Q,$)}}function v9($,Q){try{if(!Array.isArray($))throw Error("authorizationList: invalid array");let J=[];for(let Y=0;Y<$.length;Y++){let X=$[Y];if(!Array.isArray(X))throw Error(`authorization[${Y}]: invalid array`);if(X.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!X[1])throw Error(`authorization[${Y}]: null address`);J.push({address:a0(X[1]),nonce:o(X[2],"nonce"),chainId:o(X[0],"chainId"),signature:t.from({yParity:_0(X[3],"yParity"),r:E$(X[4],32),s:E$(X[5],32)})})}return J}catch(J){D(!1,J.message,Q,$)}}function _0($,Q){if($==="0x")return 0;return q$($,Q)}function o($,Q){if($==="0x")return W$;let J=m($,Q);return D(J<=b9,"value exceeds uint size",Q,J),J}function c($,Q){let J=m($,"value"),Y=a(J);return D(Y.length<=32,"value too large",`tx.${Q}`,J),Y}function $Q($){return k0($).map((Q)=>[Q.address,Q.storageKeys])}function y9($){return $.map((Q)=>{return[c(Q.chainId,"chainId"),Q.address,c(Q.nonce,"nonce"),c(Q.signature.yParity,"yParity"),a(Q.signature.r),a(Q.signature.s)]})}function h9($,Q){D(Array.isArray($),`invalid ${Q}`,"value",$);for(let J=0;J<$.length;J++)D(K$($[J],32),"invalid ${ param } hash",`value[${J}]`,$[J]);return $}function g9($){let Q=M0($);D(Array.isArray(Q)&&(Q.length===9||Q.length===6),"invalid field count for legacy transaction","data",$);let J={type:0,nonce:_0(Q[0],"nonce"),gasPrice:o(Q[1],"gasPrice"),gasLimit:o(Q[2],"gasLimit"),to:a0(Q[3]),value:o(Q[4],"value"),data:N(Q[5]),chainId:W$};if(Q.length===6)return J;let Y=o(Q[6],"v"),X=o(Q[7],"r"),Z=o(Q[8],"s");if(X===W$&&Z===W$)J.chainId=Y;else{let q=(Y-f9)/F9;if(q<W$)q=W$;J.chainId=q,D(q!==W$||(Y===k9||Y===_9),"non-canonical legacy v","v",Q[6]),J.signature=t.from({r:E$(Q[7],32),s:E$(Q[8],32),v:Y})}return J}function m9($,Q){let J=[c($.nonce,"nonce"),c($.gasPrice||0,"gasPrice"),c($.gasLimit,"gasLimit"),$.to||"0x",c($.value,"value"),$.data],Y=W$;if($.chainId!=W$)Y=m($.chainId,"tx.chainId"),D(!Q||Q.networkV==null||Q.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",Q);else if($.signature){let Z=$.signature.legacyChainId;if(Z!=null)Y=Z}if(!Q){if(Y!==W$)J.push(a(Y)),J.push("0x"),J.push("0x");return w$(J)}let X=BigInt(27+Q.yParity);if(Y!==W$)X=t.getChainIdV(Y,Q.v);else if(BigInt(Q.v)!==X)D(!1,"tx.chainId/sig.v mismatch","sig",Q);return J.push(a(X)),J.push(a(Q.r)),J.push(a(Q.s)),w$(J)}function QQ($,Q){let J;try{if(J=_0(Q[0],"yParity"),J!==0&&J!==1)throw Error("bad yParity")}catch(q){D(!1,"invalid yParity","yParity",Q[0])}let Y=E$(Q[1],32),X=E$(Q[2],32),Z=t.from({r:Y,s:X,yParity:J});$.signature=Z}function c9($){let Q=M0(E($).slice(1));D(Array.isArray(Q)&&(Q.length===9||Q.length===12),"invalid field count for transaction type: 2","data",N($));let J={type:2,chainId:o(Q[0],"chainId"),nonce:_0(Q[1],"nonce"),maxPriorityFeePerGas:o(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:o(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:o(Q[4],"gasLimit"),to:a0(Q[5]),value:o(Q[6],"value"),data:N(Q[7]),accessList:e8(Q[8],"accessList")};if(Q.length===9)return J;return QQ(J,Q.slice(9)),J}function u9($,Q){let J=[c($.chainId,"chainId"),c($.nonce,"nonce"),c($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),c($.maxFeePerGas||0,"maxFeePerGas"),c($.gasLimit,"gasLimit"),$.to||"0x",c($.value,"value"),$.data,$Q($.accessList||[])];if(Q)J.push(c(Q.yParity,"yParity")),J.push(a(Q.r)),J.push(a(Q.s));return n(["0x02",w$(J)])}function p9($){let Q=M0(E($).slice(1));D(Array.isArray(Q)&&(Q.length===8||Q.length===11),"invalid field count for transaction type: 1","data",N($));let J={type:1,chainId:o(Q[0],"chainId"),nonce:_0(Q[1],"nonce"),gasPrice:o(Q[2],"gasPrice"),gasLimit:o(Q[3],"gasLimit"),to:a0(Q[4]),value:o(Q[5],"value"),data:N(Q[6]),accessList:e8(Q[7],"accessList")};if(Q.length===8)return J;return QQ(J,Q.slice(8)),J}function l9($,Q){let J=[c($.chainId,"chainId"),c($.nonce,"nonce"),c($.gasPrice||0,"gasPrice"),c($.gasLimit,"gasLimit"),$.to||"0x",c($.value,"value"),$.data,$Q($.accessList||[])];if(Q)J.push(c(Q.yParity,"recoveryParam")),J.push(a(Q.r)),J.push(a(Q.s));return n(["0x01",w$(J)])}function d9($){let Q=M0(E($).slice(1)),J="3",Y=null;if(Q.length===4&&Array.isArray(Q[0])){J="3 (network format)";let Z=Q[1],q=Q[2],G=Q[3];D(Array.isArray(Z),"invalid network format: blobs not an array","fields[1]",Z),D(Array.isArray(q),"invalid network format: commitments not an array","fields[2]",q),D(Array.isArray(G),"invalid network format: proofs not an array","fields[3]",G),D(Z.length===q.length,"invalid network format: blobs/commitments length mismatch","fields",Q),D(Z.length===G.length,"invalid network format: blobs/proofs length mismatch","fields",Q),Y=[];for(let W=0;W<Q[1].length;W++)Y.push({data:Z[W],commitment:q[W],proof:G[W]});Q=Q[0]}D(Array.isArray(Q)&&(Q.length===11||Q.length===14),`invalid field count for transaction type: ${J}`,"data",N($));let X={type:3,chainId:o(Q[0],"chainId"),nonce:_0(Q[1],"nonce"),maxPriorityFeePerGas:o(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:o(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:o(Q[4],"gasLimit"),to:a0(Q[5]),value:o(Q[6],"value"),data:N(Q[7]),accessList:e8(Q[8],"accessList"),maxFeePerBlobGas:o(Q[9],"maxFeePerBlobGas"),blobVersionedHashes:Q[10]};if(Y)X.blobs=Y;D(X.to!=null,`invalid address for transaction type: ${J}`,"data",$),D(Array.isArray(X.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",$);for(let Z=0;Z<X.blobVersionedHashes.length;Z++)D(K$(X.blobVersionedHashes[Z],32),`invalid blobVersionedHash at index ${Z}: must be length 32`,"data",$);if(Q.length===11)return X;return QQ(X,Q.slice(11)),X}function n9($,Q,J){let Y=[c($.chainId,"chainId"),c($.nonce,"nonce"),c($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),c($.maxFeePerGas||0,"maxFeePerGas"),c($.gasLimit,"gasLimit"),$.to||sQ,c($.value,"value"),$.data,$Q($.accessList||[]),c($.maxFeePerBlobGas||0,"maxFeePerBlobGas"),h9($.blobVersionedHashes||[],"blobVersionedHashes")];if(Q){if(Y.push(c(Q.yParity,"yParity")),Y.push(a(Q.r)),Y.push(a(Q.s)),J)return n(["0x03",w$([Y,J.map((X)=>X.data),J.map((X)=>X.commitment),J.map((X)=>X.proof)])])}return n(["0x03",w$(Y)])}function o9($){let Q=M0(E($).slice(1));D(Array.isArray(Q)&&(Q.length===10||Q.length===13),"invalid field count for transaction type: 4","data",N($));let J={type:4,chainId:o(Q[0],"chainId"),nonce:_0(Q[1],"nonce"),maxPriorityFeePerGas:o(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:o(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:o(Q[4],"gasLimit"),to:a0(Q[5]),value:o(Q[6],"value"),data:N(Q[7]),accessList:e8(Q[8],"accessList"),authorizationList:v9(Q[9],"authorizationList")};if(Q.length===10)return J;return QQ(J,Q.slice(10)),J}function i9($,Q){let J=[c($.chainId,"chainId"),c($.nonce,"nonce"),c($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),c($.maxFeePerGas||0,"maxFeePerGas"),c($.gasLimit,"gasLimit"),$.to||"0x",c($.value,"value"),$.data,$Q($.accessList||[]),y9($.authorizationList||[])];if(Q)J.push(c(Q.yParity,"yParity")),J.push(a(Q.r)),J.push(a(Q.s));return n(["0x04",w$(J)])}class R${#$;#Q;#J;#Y;#W;#M;#V;#z;#D;#I;#K;#O;#G;#Z;#X;#q;#T;get type(){return this.#$}set type($){switch($){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;case 4:case"pectra":case"eip-7702":this.#$=4;break;default:D(!1,"unsupported transaction type","type",$)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let $=this.#Q;if($==null&&this.type===3)return sQ;return $}set to($){this.#Q=$==null?null:h($)}get nonce(){return this.#Y}set nonce($){this.#Y=q$($,"value")}get gasLimit(){return this.#W}set gasLimit($){this.#W=m($)}get gasPrice(){let $=this.#M;if($==null&&(this.type===0||this.type===1))return W$;return $}set gasPrice($){this.#M=$==null?null:m($,"gasPrice")}get maxPriorityFeePerGas(){let $=this.#V;if($==null){if(this.type===2||this.type===3)return W$;return null}return $}set maxPriorityFeePerGas($){this.#V=$==null?null:m($,"maxPriorityFeePerGas")}get maxFeePerGas(){let $=this.#z;if($==null){if(this.type===2||this.type===3)return W$;return null}return $}set maxFeePerGas($){this.#z=$==null?null:m($,"maxFeePerGas")}get data(){return this.#J}set data($){this.#J=N($)}get value(){return this.#D}set value($){this.#D=m($,"value")}get chainId(){return this.#I}set chainId($){this.#I=m($)}get signature(){return this.#K||null}set signature($){this.#K=$==null?null:t.from($)}get accessList(){let $=this.#O||null;if($==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return $}set accessList($){this.#O=$==null?null:k0($)}get authorizationList(){let $=this.#T||null;if($==null){if(this.type===4)return[]}return $}set authorizationList($){this.#T=$==null?null:$.map((Q)=>WX(Q))}get maxFeePerBlobGas(){let $=this.#G;if($==null&&this.type===3)return W$;return $}set maxFeePerBlobGas($){this.#G=$==null?null:m($,"maxFeePerBlobGas")}get blobVersionedHashes(){let $=this.#Z;if($==null&&this.type===3)return[];return $}set blobVersionedHashes($){if($!=null){D(Array.isArray($),"blobVersionedHashes must be an Array","value",$),$=$.slice();for(let Q=0;Q<$.length;Q++)D(K$($[Q],32),"invalid blobVersionedHash",`value[${Q}]`,$[Q])}this.#Z=$}get blobs(){if(this.#q==null)return null;return this.#q.map(($)=>Object.assign({},$))}set blobs($){if($==null){this.#q=null;return}let Q=[],J=[];for(let Y=0;Y<$.length;Y++){let X=$[Y];if(m$(X)){_(this.#X,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=E(X);if(D(Z.length<=YJ,"blob is too large",`blobs[${Y}]`,X),Z.length!==YJ){let W=new Uint8Array(YJ);W.set(Z),Z=W}let q=this.#X.blobToKzgCommitment(Z),G=N(this.#X.computeBlobKzgProof(Z,q));Q.push({data:N(Z),commitment:N(q),proof:G}),J.push(MX(1,q))}else{let Z=N(X.commitment);Q.push({data:N(X.data),commitment:Z,proof:N(X.proof)}),J.push(MX(1,Z))}}this.#q=Q,this.#Z=J}get kzg(){return this.#X}set kzg($){if($==null)this.#X=null;else this.#X=x9($)}constructor(){this.#$=null,this.#Q=null,this.#Y=0,this.#W=W$,this.#M=null,this.#V=null,this.#z=null,this.#J="0x",this.#D=W$,this.#I=W$,this.#K=null,this.#O=null,this.#G=null,this.#Z=null,this.#X=null,this.#q=null,this.#T=null}get hash(){if(this.signature==null)return null;return l(this.#U(!0,!1))}get unsignedHash(){return l(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return V8(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return Q$.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#U($,Q){_(!$||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let J=$?this.signature:null;switch(this.inferType()){case 0:return m9(this,J);case 1:return l9(this,J);case 2:return u9(this,J);case 3:return n9(this,J,Q?this.blobs:null);case 4:return i9(this,J)}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#U(!0,!0)}get unsignedSerialized(){return this.#U(!1,!1)}inferType(){let $=this.inferTypes();if($.indexOf(2)>=0)return 2;return $.pop()}inferTypes(){let $=this.gasPrice!=null,Q=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,J=this.accessList!=null,Y=this.#G!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)_(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});_(!Q||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),_(this.type!==0||!J,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let X=[];if(this.type!=null)X.push(this.type);else if(this.authorizationList&&this.authorizationList.length)X.push(4);else if(Q)X.push(2);else if($){if(X.push(1),!J)X.push(0)}else if(J)X.push(1),X.push(2);else if(Y&&this.to)X.push(3);else X.push(0),X.push(1),X.push(2),X.push(3);return X.sort(),X}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return R$.from(this)}toJSON(){let $=(Q)=>{if(Q==null)return null;return Q.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:$(this.gasLimit),gasPrice:$(this.gasPrice),maxPriorityFeePerGas:$(this.maxPriorityFeePerGas),maxFeePerGas:$(this.maxFeePerGas),value:$(this.value),chainId:$(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from($){if($==null)return new R$;if(typeof $==="string"){let J=E($);if(J[0]>=127)return R$.from(g9(J));switch(J[0]){case 1:return R$.from(p9(J));case 2:return R$.from(c9(J));case 3:return R$.from(d9(J));case 4:return R$.from(o9(J))}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let Q=new R$;if($.type!=null)Q.type=$.type;if($.to!=null)Q.to=$.to;if($.nonce!=null)Q.nonce=$.nonce;if($.gasLimit!=null)Q.gasLimit=$.gasLimit;if($.gasPrice!=null)Q.gasPrice=$.gasPrice;if($.maxPriorityFeePerGas!=null)Q.maxPriorityFeePerGas=$.maxPriorityFeePerGas;if($.maxFeePerGas!=null)Q.maxFeePerGas=$.maxFeePerGas;if($.maxFeePerBlobGas!=null)Q.maxFeePerBlobGas=$.maxFeePerBlobGas;if($.data!=null)Q.data=$.data;if($.value!=null)Q.value=$.value;if($.chainId!=null)Q.chainId=$.chainId;if($.signature!=null)Q.signature=t.from($.signature);if($.accessList!=null)Q.accessList=$.accessList;if($.authorizationList!=null)Q.authorizationList=$.authorizationList;if($.blobVersionedHashes!=null)Q.blobVersionedHashes=$.blobVersionedHashes;if($.kzg!=null)Q.kzg=$.kzg;if($.blobs!=null)Q.blobs=$.blobs;if($.hash!=null)D(Q.isSigned(),"unsigned transaction cannot define '.hash'","tx",$),D(Q.hash===$.hash,"hash mismatch","tx",$);if($.from!=null)D(Q.isSigned(),"unsigned transaction cannot define '.from'","tx",$),D(Q.from.toLowerCase()===($.from||"").toLowerCase(),"from mismatch","tx",$);return Q}}function JQ($){return D(typeof $.address==="string","invalid address for hashAuthorization","auth.address",$),l(n(["0x05",w$([$.chainId!=null?a($.chainId):"0x",h($.address),$.nonce!=null?a($.nonce):"0x"])]))}function Z0($){return l(G$($))}function z8($){if(typeof $==="string")$=G$($);return l(n([G$(tQ),G$(String($.length)),$]))}function D8($,Q){let J=z8($);return V8(J,Q)}var IX=new Uint8Array(32);IX.fill(0);var r9=BigInt(-1),KX=BigInt(0),OX=BigInt(1),a9=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function s9($){let Q=E($),J=Q.length%32;if(J)return n([Q,IX.slice(J)]);return N(Q)}var t9=x$(OX,32),e9=x$(KX,32),VX={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},XJ=["name","version","chainId","verifyingContract","salt"];function zX($){return function(Q){return D(typeof Q==="string",`invalid domain value for ${JSON.stringify($)}`,`domain.${$}`,Q),Q}}var $q={name:zX("name"),version:zX("version"),chainId:function($){let Q=m($,"domain.chainId");if(D(Q>=0,"invalid chain ID","domain.chainId",$),Number.isSafeInteger(Q))return Number(Q);return k8(Q)},verifyingContract:function($){try{return h($).toLowerCase()}catch(Q){}D(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",$)},salt:function($){let Q=E($,"domain.salt");return D(Q.length===32,'invalid domain value "salt"',"domain.salt",$),N(Q)}};function ZJ($){{let Q=$.match(/^(u?)int(\d+)$/);if(Q){let J=Q[1]==="",Y=parseInt(Q[2]);D(Y%8===0&&Y!==0&&Y<=256&&Q[2]===String(Y),"invalid numeric width","type",$);let X=F8(a9,J?Y-1:Y),Z=J?(X+OX)*r9:KX;return function(q){let G=m(q,"value");return D(G>=Z&&G<=X,`value out-of-bounds for ${$}`,"value",G),x$(J?A8(G,256):G,32)}}}{let Q=$.match(/^bytes(\d+)$/);if(Q){let J=parseInt(Q[1]);return D(J!==0&&J<=32&&Q[1]===String(J),"invalid bytes width","type",$),function(Y){let X=E(Y);return D(X.length===J,`invalid length for ${$}`,"value",Y),s9(Y)}}}switch($){case"address":return function(Q){return E$(h(Q),32)};case"bool":return function(Q){return!Q?e9:t9};case"bytes":return function(Q){return l(Q)};case"string":return function(Q){return Z0(Q)}}return null}function DX($,Q){return`${$}(${Q.map(({name:J,type:Y})=>Y+" "+J).join(",")})`}function YQ($){let Q=$.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(Q)return{base:Q[1],index:Q[2]+Q[4],array:{base:Q[1],prefix:Q[1]+Q[2],count:Q[5]?parseInt(Q[5]):-1}};return{base:$}}class U${primaryType;#$;get types(){return JSON.parse(this.#$)}#Q;#J;constructor($){this.#Q=new Map,this.#J=new Map;let Q=new Map,J=new Map,Y=new Map,X={};Object.keys($).forEach((G)=>{X[G]=$[G].map(({name:W,type:M})=>{let{base:V,index:z}=YQ(M);if(V==="int"&&!$.int)V="int256";if(V==="uint"&&!$.uint)V="uint256";return{name:W,type:V+(z||"")}}),Q.set(G,new Set),J.set(G,[]),Y.set(G,new Set)}),this.#$=JSON.stringify(X);for(let G in X){let W=new Set;for(let M of X[G]){D(!W.has(M.name),`duplicate variable name ${JSON.stringify(M.name)} in ${JSON.stringify(G)}`,"types",$),W.add(M.name);let V=YQ(M.type).base;if(D(V!==G,`circular type reference to ${JSON.stringify(V)}`,"types",$),ZJ(V))continue;D(J.has(V),`unknown type ${JSON.stringify(V)}`,"types",$),J.get(V).push(G),Q.get(G).add(V)}}let Z=Array.from(J.keys()).filter((G)=>J.get(G).length===0);D(Z.length!==0,"missing primary type","types",$),D(Z.length===1,`ambiguous primary types or unused types: ${Z.map((G)=>JSON.stringify(G)).join(", ")}`,"types",$),r(this,{primaryType:Z[0]});function q(G,W){D(!W.has(G),`circular type reference to ${JSON.stringify(G)}`,"types",$),W.add(G);for(let M of Q.get(G)){if(!J.has(M))continue;q(M,W);for(let V of W)Y.get(V).add(M)}W.delete(G)}q(this.primaryType,new Set);for(let[G,W]of Y){let M=Array.from(W);M.sort(),this.#Q.set(G,DX(G,X[G])+M.map((V)=>DX(V,X[V])).join(""))}}getEncoder($){let Q=this.#J.get($);if(!Q)Q=this.#Y($),this.#J.set($,Q);return Q}#Y($){{let Y=ZJ($);if(Y)return Y}let Q=YQ($).array;if(Q){let Y=Q.prefix,X=this.getEncoder(Y);return(Z)=>{D(Q.count===-1||Q.count===Z.length,`array length mismatch; expected length ${Q.count}`,"value",Z);let q=Z.map(X);if(this.#Q.has(Y))q=q.map(l);return l(n(q))}}let J=this.types[$];if(J){let Y=Z0(this.#Q.get($));return(X)=>{let Z=J.map(({name:q,type:G})=>{let W=this.getEncoder(G)(X[q]);if(this.#Q.has(G))return l(W);return W});return Z.unshift(Y),n(Z)}}D(!1,`unknown type: ${$}`,"type",$)}encodeType($){let Q=this.#Q.get($);return D(Q,`unknown type: ${JSON.stringify($)}`,"name",$),Q}encodeData($,Q){return this.getEncoder($)(Q)}hashStruct($,Q){return l(this.encodeData($,Q))}encode($){return this.encodeData(this.primaryType,$)}hash($){return this.hashStruct(this.primaryType,$)}_visit($,Q,J){if(ZJ($))return J($,Q);let Y=YQ($).array;if(Y)return D(Y.count===-1||Y.count===Q.length,`array length mismatch; expected length ${Y.count}`,"value",Q),Q.map((Z)=>this._visit(Y.prefix,Z,J));let X=this.types[$];if(X)return X.reduce((Z,{name:q,type:G})=>{return Z[q]=this._visit(G,Q[q],J),Z},{});D(!1,`unknown type: ${$}`,"type",$)}visit($,Q){return this._visit(this.primaryType,$,Q)}static from($){return new U$($)}static getPrimaryType($){return U$.from($).primaryType}static hashStruct($,Q,J){return U$.from(Q).hashStruct($,J)}static hashDomain($){let Q=[];for(let J in $){if($[J]==null)continue;let Y=VX[J];D(Y,`invalid typed-data domain key: ${JSON.stringify(J)}`,"domain",$),Q.push({name:J,type:Y})}return Q.sort((J,Y)=>{return XJ.indexOf(J.name)-XJ.indexOf(Y.name)}),U$.hashStruct("EIP712Domain",{EIP712Domain:Q},$)}static encode($,Q,J){return n(["0x1901",U$.hashDomain($),U$.from(Q).hash(J)])}static hash($,Q,J){return l(U$.encode($,Q,J))}static async resolveNames($,Q,J,Y){$=Object.assign({},$);for(let q in $)if($[q]==null)delete $[q];let X={};if($.verifyingContract&&!K$($.verifyingContract,20))X[$.verifyingContract]="0x";let Z=U$.from(Q);Z.visit(J,(q,G)=>{if(q==="address"&&!K$(G,20))X[G]="0x";return G});for(let q in X)X[q]=await Y(q);if($.verifyingContract&&X[$.verifyingContract])$.verifyingContract=X[$.verifyingContract];return J=Z.visit(J,(q,G)=>{if(q==="address"&&X[G])return X[G];return G}),{domain:$,value:J}}static getPayload($,Q,J){U$.hashDomain($);let Y={},X=[];XJ.forEach((G)=>{let W=$[G];if(W==null)return;Y[G]=$q[G](W),X.push({name:G,type:VX[G]})});let Z=U$.from(Q);Q=Z.types;let q=Object.assign({},Q);return D(q.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",Q),q.EIP712Domain=X,Z.encode(J),{types:q,domain:Y,primaryType:Z.primaryType,message:Z.visit(J,(G,W)=>{if(G.match(/^bytes(\d*)/))return N(E(W));if(G.match(/^u?int/))return m(W).toString();switch(G){case"address":return W.toLowerCase();case"bool":return!!W;case"string":return D(typeof W==="string","invalid string","value",W),W}D(!1,"unsupported type","type",G)})}}}var TX=BigInt(0);function qJ($){if($==null)return null;return $}function M$($){if($==null)return null;return $.toString()}function I8($){let Q={};if($.to)Q.to=$.to;if($.from)Q.from=$.from;if($.data)Q.data=N($.data);let J="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let X of J){if(!(X in $)||$[X]==null)continue;Q[X]=m($[X],`request.${X}`)}let Y="type,nonce".split(/,/);for(let X of Y){if(!(X in $)||$[X]==null)continue;Q[X]=q$($[X],`request.${X}`)}if($.accessList)Q.accessList=k0($.accessList);if($.authorizationList)Q.authorizationList=$.authorizationList.slice();if("blockTag"in $)Q.blockTag=$.blockTag;if("enableCcipRead"in $)Q.enableCcipRead=!!$.enableCcipRead;if("customData"in $)Q.customData=$.customData;if("blobVersionedHashes"in $&&$.blobVersionedHashes)Q.blobVersionedHashes=$.blobVersionedHashes.slice();if("kzg"in $)Q.kzg=$.kzg;if("blobs"in $&&$.blobs)Q.blobs=$.blobs.map((X)=>{if(m$(X))return N(X);return Object.assign({},X)});return Q}class UX{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#$;constructor($,Q){this.#$=$.transactions.map((J)=>{if(typeof J!=="string")return new XQ(J,Q);return J}),r(this,{provider:Q,hash:qJ($.hash),number:$.number,timestamp:$.timestamp,parentHash:$.parentHash,parentBeaconBlockRoot:$.parentBeaconBlockRoot,nonce:$.nonce,difficulty:$.difficulty,gasLimit:$.gasLimit,gasUsed:$.gasUsed,blobGasUsed:$.blobGasUsed,excessBlobGas:$.excessBlobGas,miner:$.miner,prevRandao:qJ($.prevRandao),extraData:$.extraData,baseFeePerGas:qJ($.baseFeePerGas),stateRoot:$.stateRoot,receiptsRoot:$.receiptsRoot})}get transactions(){return this.#$.map(($)=>{if(typeof $==="string")return $;return $.hash})}get prefetchedTransactions(){let $=this.#$.slice();if($.length===0)return[];return _(typeof $[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),$}toJSON(){let{baseFeePerGas:$,difficulty:Q,extraData:J,gasLimit:Y,gasUsed:X,hash:Z,miner:q,prevRandao:G,nonce:W,number:M,parentHash:V,parentBeaconBlockRoot:z,stateRoot:K,receiptsRoot:w,timestamp:I,transactions:O}=this;return{_type:"Block",baseFeePerGas:M$($),difficulty:M$(Q),extraData:J,gasLimit:M$(Y),gasUsed:M$(X),blobGasUsed:M$(this.blobGasUsed),excessBlobGas:M$(this.excessBlobGas),hash:Z,miner:q,prevRandao:G,nonce:W,number:M,parentHash:V,timestamp:I,parentBeaconBlockRoot:z,stateRoot:K,receiptsRoot:w,transactions:O}}[Symbol.iterator](){let $=0,Q=this.transactions;return{next:()=>{if($<this.length)return{value:Q[$++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#$.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction($){let Q=void 0;if(typeof $==="number")Q=this.#$[$];else{let J=$.toLowerCase();for(let Y of this.#$)if(typeof Y==="string"){if(Y!==J)continue;Q=Y;break}else{if(Y.hash!==J)continue;Q=Y;break}}if(Q==null)throw Error("no such tx");if(typeof Q==="string")return await this.provider.getTransaction(Q);else return Q}getPrefetchedTransaction($){let Q=this.prefetchedTransactions;if(typeof $==="number")return Q[$];$=$.toLowerCase();for(let J of Q)if(J.hash===$)return J;D(!1,"no matching transaction","indexOrHash",$)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return Yq(this)}}class GJ{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor($,Q){this.provider=Q;let J=Object.freeze($.topics.slice());r(this,{transactionHash:$.transactionHash,blockHash:$.blockHash,blockNumber:$.blockNumber,removed:$.removed,address:$.address,data:$.data,topics:J,index:$.index,transactionIndex:$.transactionIndex})}toJSON(){let{address:$,blockHash:Q,blockNumber:J,data:Y,index:X,removed:Z,topics:q,transactionHash:G,transactionIndex:W}=this;return{_type:"log",address:$,blockHash:Q,blockNumber:J,data:Y,index:X,removed:Z,topics:q,transactionHash:G,transactionIndex:W}}async getBlock(){let $=await this.provider.getBlock(this.blockHash);return _(!!$,"failed to find transaction","UNKNOWN_ERROR",{}),$}async getTransaction(){let $=await this.provider.getTransaction(this.transactionHash);return _(!!$,"failed to find transaction","UNKNOWN_ERROR",{}),$}async getTransactionReceipt(){let $=await this.provider.getTransactionReceipt(this.transactionHash);return _(!!$,"failed to find transaction receipt","UNKNOWN_ERROR",{}),$}removedEvent(){return Xq(this)}}class HX{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#$;constructor($,Q){this.#$=Object.freeze($.logs.map((Y)=>{return new GJ(Y,Q)}));let J=TX;if($.effectiveGasPrice!=null)J=$.effectiveGasPrice;else if($.gasPrice!=null)J=$.gasPrice;r(this,{provider:Q,to:$.to,from:$.from,contractAddress:$.contractAddress,hash:$.hash,index:$.index,blockHash:$.blockHash,blockNumber:$.blockNumber,logsBloom:$.logsBloom,gasUsed:$.gasUsed,cumulativeGasUsed:$.cumulativeGasUsed,blobGasUsed:$.blobGasUsed,gasPrice:J,blobGasPrice:$.blobGasPrice,type:$.type,status:$.status,root:$.root})}get logs(){return this.#$}toJSON(){let{to:$,from:Q,contractAddress:J,hash:Y,index:X,blockHash:Z,blockNumber:q,logsBloom:G,logs:W,status:M,root:V}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:q,contractAddress:J,cumulativeGasUsed:M$(this.cumulativeGasUsed),from:Q,gasPrice:M$(this.gasPrice),blobGasUsed:M$(this.blobGasUsed),blobGasPrice:M$(this.blobGasPrice),gasUsed:M$(this.gasUsed),hash:Y,index:X,logs:W,logsBloom:G,root:V,status:M,to:$}}get length(){return this.logs.length}[Symbol.iterator](){let $=0;return{next:()=>{if($<this.length)return{value:this.logs[$++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let $=await this.provider.getBlock(this.blockHash);if($==null)throw Error("TODO");return $}async getTransaction(){let $=await this.provider.getTransaction(this.hash);if($==null)throw Error("TODO");return $}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return LX(this)}reorderedEvent($){return _(!$||$.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),RX(this,$)}}class XQ{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#$;constructor($,Q){this.provider=Q,this.blockNumber=$.blockNumber!=null?$.blockNumber:null,this.blockHash=$.blockHash!=null?$.blockHash:null,this.hash=$.hash,this.index=$.index,this.type=$.type,this.from=$.from,this.to=$.to||null,this.gasLimit=$.gasLimit,this.nonce=$.nonce,this.data=$.data,this.value=$.value,this.gasPrice=$.gasPrice,this.maxPriorityFeePerGas=$.maxPriorityFeePerGas!=null?$.maxPriorityFeePerGas:null,this.maxFeePerGas=$.maxFeePerGas!=null?$.maxFeePerGas:null,this.maxFeePerBlobGas=$.maxFeePerBlobGas!=null?$.maxFeePerBlobGas:null,this.chainId=$.chainId,this.signature=$.signature,this.accessList=$.accessList!=null?$.accessList:null,this.blobVersionedHashes=$.blobVersionedHashes!=null?$.blobVersionedHashes:null,this.authorizationList=$.authorizationList!=null?$.authorizationList:null,this.#$=-1}toJSON(){let{blockNumber:$,blockHash:Q,index:J,hash:Y,type:X,to:Z,from:q,nonce:G,data:W,signature:M,accessList:V,blobVersionedHashes:z}=this;return{_type:"TransactionResponse",accessList:V,blockNumber:$,blockHash:Q,blobVersionedHashes:z,chainId:M$(this.chainId),data:W,from:q,gasLimit:M$(this.gasLimit),gasPrice:M$(this.gasPrice),hash:Y,maxFeePerGas:M$(this.maxFeePerGas),maxPriorityFeePerGas:M$(this.maxPriorityFeePerGas),maxFeePerBlobGas:M$(this.maxFeePerBlobGas),nonce:G,signature:M,to:Z,index:J,type:X,value:M$(this.value)}}async getBlock(){let $=this.blockNumber;if($==null){let J=await this.getTransaction();if(J)$=J.blockNumber}if($==null)return null;let Q=this.provider.getBlock($);if(Q==null)throw Error("TODO");return Q}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:Q,blockNumber:J}=await g$({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(Q==null||Q.blockNumber==null)return 0;return J-Q.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait($,Q){let J=$==null?1:$,Y=Q==null?0:Q,X=this.#$,Z=-1,q=X===-1?!0:!1,G=async()=>{if(q)return null;let{blockNumber:z,nonce:K}=await g$({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(K<this.nonce){X=z;return}if(q)return null;let w=await this.getTransaction();if(w&&w.blockNumber!=null)return;if(Z===-1){if(Z=X-3,Z<this.#$)Z=this.#$}while(Z<=z){if(q)return null;let I=await this.provider.getBlock(Z,!0);if(I==null)return;for(let O of I)if(O===this.hash)return;for(let O=0;O<I.length;O++){let U=await I.getTransaction(O);if(U.from===this.from&&U.nonce===this.nonce){if(q)return null;let R=await this.provider.getTransactionReceipt(U.hash);if(R==null)return;if(z-R.blockNumber+1<J)return;let P="replaced";if(U.data===this.data&&U.to===this.to&&U.value===this.value)P="repriced";else if(U.data==="0x"&&U.from===U.to&&U.value===TX)P="cancelled";_(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:P==="replaced"||P==="cancelled",reason:P,replacement:U.replaceableTransaction(X),hash:U.hash,receipt:R})}}Z++}return},W=(z)=>{if(z==null||z.status!==0)return z;_(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:z.to,from:z.from,data:""},receipt:z})},M=await this.provider.getTransactionReceipt(this.hash);if(J===0)return W(M);if(M){if(J===1||await M.confirmations()>=J)return W(M)}else if(await G(),J===0)return null;return await new Promise((z,K)=>{let w=[],I=()=>{w.forEach((U)=>U())};if(w.push(()=>{q=!0}),Y>0){let U=setTimeout(()=>{I(),K(Y8("wait for transaction timeout","TIMEOUT"))},Y);w.push(()=>{clearTimeout(U)})}let O=async(U)=>{if(await U.confirmations()>=J){I();try{z(W(U))}catch(R){K(R)}}};if(w.push(()=>{this.provider.off(this.hash,O)}),this.provider.on(this.hash,O),X>=0){let U=async()=>{try{await G()}catch(R){if(B8(R,"TRANSACTION_REPLACED")){I(),K(R);return}}if(!q)this.provider.once("block",U)};w.push(()=>{this.provider.off("block",U)}),this.provider.once("block",U)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),LX(this)}reorderedEvent($){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),_(!$||$.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),RX(this,$)}replaceableTransaction($){D(Number.isInteger($)&&$>=0,"invalid startBlock","startBlock",$);let Q=new XQ(this,this.provider);return Q.#$=$,Q}}function Yq($){return{orphan:"drop-block",hash:$.hash,number:$.number}}function RX($,Q){return{orphan:"reorder-transaction",tx:$,other:Q}}function LX($){return{orphan:"drop-transaction",tx:$}}function Xq($){return{orphan:"drop-log",log:{transactionHash:$.transactionHash,blockHash:$.blockHash,blockNumber:$.blockNumber,address:$.address,data:$.data,topics:Object.freeze($.topics.slice()),index:$.index}}}function f0($,Q){if($.provider)return $.provider;_(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:Q})}async function NX($,Q){let J=I8(Q);if(J.to!=null)J.to=Y0(J.to,$);if(J.from!=null){let Y=J.from;J.from=Promise.all([$.getAddress(),Y0(Y,$)]).then(([X,Z])=>{return D(X.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),X})}else J.from=$.getAddress();return await g$(J)}class K8{provider;constructor($){r(this,{provider:$||null})}async getNonce($){return f0(this,"getTransactionCount").getTransactionCount(await this.getAddress(),$)}async populateCall($){return await NX(this,$)}async populateTransaction($){let Q=f0(this,"populateTransaction"),J=await NX(this,$);if(J.nonce==null)J.nonce=await this.getNonce("pending");if(J.gasLimit==null)J.gasLimit=await this.estimateGas(J);let Y=await this.provider.getNetwork();if(J.chainId!=null){let Z=m(J.chainId);D(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",$.chainId)}else J.chainId=Y.chainId;let X=J.maxFeePerGas!=null||J.maxPriorityFeePerGas!=null;if(J.gasPrice!=null&&(J.type===2||X))D(!1,"eip-1559 transaction do not support gasPrice","tx",$);else if((J.type===0||J.type===1)&&X)D(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",$);if((J.type===2||J.type==null)&&(J.maxFeePerGas!=null&&J.maxPriorityFeePerGas!=null))J.type=2;else if(J.type===0||J.type===1){let Z=await Q.getFeeData();if(_(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),J.gasPrice==null)J.gasPrice=Z.gasPrice}else{let Z=await Q.getFeeData();if(J.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(J.authorizationList&&J.authorizationList.length)J.type=4;else J.type=2;if(J.gasPrice!=null){let q=J.gasPrice;delete J.gasPrice,J.maxFeePerGas=q,J.maxPriorityFeePerGas=q}else{if(J.maxFeePerGas==null)J.maxFeePerGas=Z.maxFeePerGas;if(J.maxPriorityFeePerGas==null)J.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(_(!X,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),J.gasPrice==null)J.gasPrice=Z.gasPrice;J.type=0}else _(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(J.type===2||J.type===3||J.type===4){if(J.maxFeePerGas==null)J.maxFeePerGas=Z.maxFeePerGas;if(J.maxPriorityFeePerGas==null)J.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await g$(J)}async populateAuthorization($){let Q=Object.assign({},$);if(Q.chainId==null)Q.chainId=(await f0(this,"getNetwork").getNetwork()).chainId;if(Q.nonce==null)Q.nonce=await this.getNonce();return Q}async estimateGas($){return f0(this,"estimateGas").estimateGas(await this.populateCall($))}async call($){return f0(this,"call").call(await this.populateCall($))}async resolveName($){return await f0(this,"resolveName").resolveName($)}async sendTransaction($){let Q=f0(this,"sendTransaction"),J=await this.populateTransaction($);delete J.from;let Y=R$.from(J);return await Q.broadcastTransaction(await this.signTransaction(Y))}authorize($){_(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class O8 extends K8{address;constructor($,Q){super(Q);r(this,{address:$})}async getAddress(){return this.address}connect($){return new O8(this.address,$)}#$($,Q){_(!1,`VoidSigner cannot sign ${$}`,"UNSUPPORTED_OPERATION",{operation:Q})}async signTransaction($){this.#$("transactions","signTransaction")}async signMessage($){this.#$("messages","signMessage")}async signTypedData($,Q,J){this.#$("typed-data","signTypedData")}}class b0 extends K8{address;#$;constructor($,Q){super(Q);D($&&typeof $.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#$=$;let J=X0(this.signingKey.publicKey);r(this,{address:J})}get signingKey(){return this.#$}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect($){return new b0(this.#$,$)}async signTransaction($){$=I8($);let{to:Q,from:J}=await g$({to:$.to?Y0($.to,this):void 0,from:$.from?Y0($.from,this):void 0});if(Q!=null)$.to=Q;if(J!=null)$.from=J;if($.from!=null)D(h($.from)===this.address,"transaction from address mismatch","tx.from",$.from),delete $.from;let Y=R$.from($);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage($){return this.signMessageSync($)}signMessageSync($){return this.signingKey.sign(z8($)).serialized}authorizeSync($){D(typeof $.address==="string","invalid address for authorizeSync","auth.address",$);let Q=this.signingKey.sign(JQ($));return Object.assign({},{address:h($.address),nonce:m($.nonce||0),chainId:m($.chainId||0)},{signature:Q})}async authorize($){return $=Object.assign({},$,{address:await Y0($.address,this)}),this.authorizeSync(await this.populateAuthorization($))}async signTypedData($,Q,J){let Y=await U$.resolveNames($,Q,J,async(X)=>{_(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:X}});let Z=await this.provider.resolveName(X);return _(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:X}),Z});return this.signingKey.sign(U$.hash(Y.domain,Q,Y.value)).serialized}}var ZQ=" !#$%&'()*+,-./<=>?@[]^_`{|}~",Zq=/^[a-z]*$/i;function CX($,Q){let J=97;return $.reduce((Y,X)=>{if(X===Q)J++;else if(X.match(Zq))Y.push(String.fromCharCode(J)+X);else J=97,Y.push(X);return Y},[])}function qq($,Q){for(let X=ZQ.length-1;X>=0;X--)$=$.split(ZQ[X]).join(Q.substring(2*X,2*X+2));let J=[],Y=$.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(X,Z,q,G)=>{if(q)for(let W=parseInt(q);W>=0;W--)J.push(";");else J.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return CX(CX(J,";"),":")}function EX($){return D($[0]==="0","unsupported auwl data","data",$),qq($.substring(1+2*ZQ.length),$.substring(1,1+2*ZQ.length))}class WJ{locale;constructor($){r(this,{locale:$})}split($){return $.toLowerCase().split(/\s+/g)}join($){return $.join(" ")}}class MJ extends WJ{#$;#Q;constructor($,Q,J){super($);this.#$=Q,this.#Q=J,this.#J=null}get _data(){return this.#$}_decodeWords(){return EX(this.#$)}#J;#Y(){if(this.#J==null){let $=this._decodeWords();if(Z0($.join(`
|
|
2
|
+
var gX=Object.defineProperty;var hX=($)=>$;function mX($,Q){this[$]=hX.bind(null,Q)}var cX=($,Q)=>{for(var J in Q)gX($,J,{get:Q[J],enumerable:!0,configurable:!0,set:mX.bind(Q,J)})};var w8="6.15.0";function uX($,Q,J){let Y=Q.split("|").map((Z)=>Z.trim());for(let Z=0;Z<Y.length;Z++)switch(Q){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof $===Q)return}let X=Error(`invalid value for type ${Q}`);throw X.code="INVALID_ARGUMENT",X.argument=`value.${J}`,X.value=$,X}async function p$($){let Q=Object.keys($);return(await Promise.all(Q.map((Y)=>Promise.resolve($[Y])))).reduce((Y,X,Z)=>{return Y[Q[Z]]=X,Y},{})}function a($,Q,J){for(let Y in Q){let X=Q[Y],Z=J?J[Y]:null;if(Z)uX(X,Z,Y);Object.defineProperty($,Y,{enumerable:!0,value:X,writable:!1})}}function m0($,Q){if($==null)return"null";if(Q==null)Q=new Set;if(typeof $==="object"){if(Q.has($))return"[Circular]";Q.add($)}if(Array.isArray($))return"[ "+$.map((J)=>m0(J,Q)).join(", ")+" ]";if($ instanceof Uint8Array){let Y="0x";for(let X=0;X<$.length;X++)Y+="0123456789abcdef"[$[X]>>4],Y+="0123456789abcdef"[$[X]&15];return Y}if(typeof $==="object"&&typeof $.toJSON==="function")return m0($.toJSON(),Q);switch(typeof $){case"boolean":case"number":case"symbol":return $.toString();case"bigint":return BigInt($).toString();case"string":return JSON.stringify($);case"object":{let J=Object.keys($);return J.sort(),"{ "+J.map((Y)=>`${m0(Y,Q)}: ${m0($[Y],Q)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function B8($,Q){return $&&$.code===Q}function X8($,Q,J){let Y=$;{let Z=[];if(J){if("message"in J||"code"in J||"name"in J)throw Error(`value will overwrite populated values: ${m0(J)}`);for(let q in J){if(q==="shortMessage")continue;let G=J[q];Z.push(q+"="+m0(G))}}if(Z.push(`code=${Q}`),Z.push(`version=${w8}`),Z.length)$+=" ("+Z.join(", ")+")"}let X;switch(Q){case"INVALID_ARGUMENT":X=TypeError($);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":X=RangeError($);break;default:X=Error($)}if(a(X,{code:Q}),J)Object.assign(X,J);if(X.shortMessage==null)a(X,{shortMessage:Y});return X}function _($,Q,J,Y){if(!$)throw X8(Q,J,Y)}function D($,Q,J,Y){_($,Q,"INVALID_ARGUMENT",{argument:J,value:Y})}var pX=["NFD","NFC","NFKD","NFKC"].reduce(($,Q)=>{try{if("test".normalize(Q)!=="test")throw Error("bad");if(Q==="NFD"){let J=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(J!==Y)throw Error("broken")}$.push(Q)}catch(J){}return $},[]);function c0($){_(pX.indexOf($)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:$}})}function a$($,Q,J){if(J==null)J="";if($!==Q){let Y=J,X="new";if(J)Y+=".",X+=" "+J;_(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:X})}}function kJ($,Q,J){if($ instanceof Uint8Array){if(J)return new Uint8Array($);return $}if(typeof $==="string"&&$.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array(($.length-2)/2),X=2;for(let Z=0;Z<Y.length;Z++)Y[Z]=parseInt($.substring(X,X+2),16),X+=2;return Y}D(!1,"invalid BytesLike value",Q||"value",$)}function N($,Q){return kJ($,Q,!1)}function v$($,Q){return kJ($,Q,!0)}function K$($,Q){if(typeof $!=="string"||!$.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof Q==="number"&&$.length!==2+2*Q)return!1;if(Q===!0&&$.length%2!==0)return!1;return!0}function l$($){return K$($,!0)||$ instanceof Uint8Array}var FJ="0123456789abcdef";function L($){let Q=N($),J="0x";for(let Y=0;Y<Q.length;Y++){let X=Q[Y];J+=FJ[(X&240)>>4]+FJ[X&15]}return J}function i($){return"0x"+$.map((Q)=>L(Q).substring(2)).join("")}function s$($){if(K$($,!0))return($.length-2)/2;return N($).length}function u0($,Q,J){let Y=N($);if(J!=null&&J>Y.length)_(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:J});return L(Y.slice(Q==null?0:Q,J==null?Y.length:J))}function lX($,Q,J){let Y=N($);_(Q>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:Q,offset:Q+1});let X=new Uint8Array(Q);if(X.fill(0),J)X.set(Y,Q-Y.length);else X.set(Y,0);return L(X)}function j$($,Q){return lX($,Q,!0)}var SQ=BigInt(0),P0=BigInt(1),p0=9007199254740991;function A8($,Q){let J=u($,"value"),Y=BigInt(M$(Q,"width")),X=P0<<Y-P0;if(J<SQ){J=-J,_(J<=X,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:$});let Z=(P0<<Y)-P0;return(~J&Z)+P0}else _(J<X,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:$});return J}function F8($,Q){let J=Z8($,"value"),Y=BigInt(M$(Q,"bits"));return J&(P0<<Y)-P0}function u($,Q){switch(typeof $){case"bigint":return $;case"number":return D(Number.isInteger($),"underflow",Q||"value",$),D($>=-p0&&$<=p0,"overflow",Q||"value",$),BigInt($);case"string":try{if($==="")throw Error("empty string");if($[0]==="-"&&$[1]!=="-")return-BigInt($.substring(1));return BigInt($)}catch(J){D(!1,`invalid BigNumberish string: ${J.message}`,Q||"value",$)}}D(!1,"invalid BigNumberish value",Q||"value",$)}function Z8($,Q){let J=u($,Q);return _(J>=SQ,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:$}),J}var _J="0123456789abcdef";function l0($){if($ instanceof Uint8Array){let Q="0x0";for(let J of $)Q+=_J[J>>4],Q+=_J[J&15];return BigInt(Q)}return u($)}function M$($,Q){switch(typeof $){case"bigint":return D($>=-p0&&$<=p0,"overflow",Q||"value",$),Number($);case"number":return D(Number.isInteger($),"underflow",Q||"value",$),D($>=-p0&&$<=p0,"overflow",Q||"value",$),$;case"string":try{if($==="")throw Error("empty string");return M$(BigInt($),Q)}catch(J){D(!1,`invalid numeric string: ${J.message}`,Q||"value",$)}}D(!1,"invalid numeric value",Q||"value",$)}function y$($,Q){let Y=Z8($,"value").toString(16);if(Q==null){if(Y.length%2)Y="0"+Y}else{let X=M$(Q,"width");_(X*2>=Y.length,`value exceeds width (${X} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:$});while(Y.length<X*2)Y="0"+Y}return"0x"+Y}function s($){let Q=Z8($,"value");if(Q===SQ)return new Uint8Array([]);let J=Q.toString(16);if(J.length%2)J="0"+J;let Y=new Uint8Array(J.length/2);for(let X=0;X<Y.length;X++){let Z=X*2;Y[X]=parseInt(J.substring(Z,Z+2),16)}return Y}function k8($){let Q=L(l$($)?$:s($)).substring(2);while(Q.startsWith("0"))Q=Q.substring(1);if(Q==="")Q="0";return"0x"+Q}var f8="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",_8=null;function dX($){if(_8==null){_8={};for(let J=0;J<f8.length;J++)_8[f8[J]]=BigInt(J)}let Q=_8[$];return D(Q!=null,"invalid base58 value","letter",$),Q}var nX=BigInt(0),wQ=BigInt(58);function b8($){let Q=N($),J=l0(Q),Y="";while(J)Y=f8[Number(J%wQ)]+Y,J/=wQ;for(let X=0;X<Q.length;X++){if(Q[X])break;Y=f8[0]+Y}return Y}function x8($){let Q=nX;for(let J=0;J<$.length;J++)Q*=wQ,Q+=dX($[J]);return Q}function oX($,Q,J,Y,X){D(!1,`invalid codepoint at offset ${Q}; ${$}`,"bytes",J)}function fJ($,Q,J,Y,X){if($==="BAD_PREFIX"||$==="UNEXPECTED_CONTINUE"){let Z=0;for(let q=Q+1;q<J.length;q++){if(J[q]>>6!==2)break;Z++}return Z}if($==="OVERRUN")return J.length-Q-1;return 0}function iX($,Q,J,Y,X){if($==="OVERLONG")return D(typeof X==="number","invalid bad code point for replacement","badCodepoint",X),Y.push(X),0;return Y.push(65533),fJ($,Q,J,Y,X)}var bJ=Object.freeze({error:oX,ignore:fJ,replace:iX});function W$($,Q){if(D(typeof $==="string","invalid string value","str",$),Q!=null)c0(Q),$=$.normalize(Q);let J=[];for(let Y=0;Y<$.length;Y++){let X=$.charCodeAt(Y);if(X<128)J.push(X);else if(X<2048)J.push(X>>6|192),J.push(X&63|128);else if((X&64512)==55296){Y++;let Z=$.charCodeAt(Y);D(Y<$.length&&(Z&64512)===56320,"invalid surrogate pair","str",$);let q=65536+((X&1023)<<10)+(Z&1023);J.push(q>>18|240),J.push(q>>12&63|128),J.push(q>>6&63|128),J.push(q&63|128)}else J.push(X>>12|224),J.push(X>>6&63|128),J.push(X&63|128)}return new Uint8Array(J)}function rX($){let Q=$.toString(16);while(Q.length<2)Q="0"+Q;return"0x"+Q}function xJ($,Q,J){let Y=0;for(let X=0;X<J;X++)Y=Y*256+$[Q+X];return Y}function vJ($,Q,J,Y){let X=[];while(J<Q+1+Y){let Z=yJ($,J);X.push(Z.result),J+=Z.consumed,_(J<=Q+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:$,length:Y,offset:Q})}return{consumed:1+Y,result:X}}function yJ($,Q){_($.length!==0,"data too short","BUFFER_OVERRUN",{buffer:$,length:0,offset:1});let J=(Y)=>{_(Y<=$.length,"data short segment too short","BUFFER_OVERRUN",{buffer:$,length:$.length,offset:Y})};if($[Q]>=248){let Y=$[Q]-247;J(Q+1+Y);let X=xJ($,Q+1,Y);return J(Q+1+Y+X),vJ($,Q,Q+1+Y,Y+X)}else if($[Q]>=192){let Y=$[Q]-192;return J(Q+1+Y),vJ($,Q,Q+1,Y)}else if($[Q]>=184){let Y=$[Q]-183;J(Q+1+Y);let X=xJ($,Q+1,Y);J(Q+1+Y+X);let Z=L($.slice(Q+1+Y,Q+1+Y+X));return{consumed:1+Y+X,result:Z}}else if($[Q]>=128){let Y=$[Q]-128;J(Q+1+Y);let X=L($.slice(Q+1,Q+1+Y));return{consumed:1+Y,result:X}}return{consumed:1,result:rX($[Q])}}function D0($){let Q=N($,"data"),J=yJ(Q,0);return D(J.consumed===Q.length,"unexpected junk after rlp payload","data",$),J.result}function gJ($){let Q=[];while($)Q.unshift($&255),$>>=8;return Q}function mJ($){if(Array.isArray($)){let Y=[];if($.forEach(function(Z){Y=Y.concat(mJ(Z))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let X=gJ(Y.length);return X.unshift(247+X.length),X.concat(Y)}let Q=Array.prototype.slice.call(N($,"object"));if(Q.length===1&&Q[0]<=127)return Q;else if(Q.length<=55)return Q.unshift(128+Q.length),Q;let J=gJ(Q.length);return J.unshift(183+J.length),J.concat(Q)}var hJ="0123456789abcdef";function B$($){let Q="0x";for(let J of mJ($))Q+=hJ[J>>4],Q+=hJ[J&15];return Q}function v8($){let Q=N($,"randomBytes");Q[6]=Q[6]&15|64,Q[8]=Q[8]&63|128;let J=L(Q);return[J.substring(2,10),J.substring(10,14),J.substring(14,18),J.substring(18,22),J.substring(22,34)].join("-")}function O$($){if(!Number.isSafeInteger($)||$<0)throw Error(`Wrong positive integer: ${$}`)}function q8($,...Q){if(!($ instanceof Uint8Array))throw Error("Expected Uint8Array");if(Q.length>0&&!Q.includes($.length))throw Error(`Expected Uint8Array of length ${Q}, not of length=${$.length}`)}function y8($){if(typeof $!=="function"||typeof $.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");O$($.outputLen),O$($.blockLen)}function t$($,Q=!0){if($.destroyed)throw Error("Hash instance has been destroyed");if(Q&&$.finished)throw Error("Hash#digest() has already been called")}function g8($,Q){q8($);let J=Q.outputLen;if($.length<J)throw Error(`digestInto() expects output buffer of length at least ${J}`)}var h8=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var cJ=($)=>$ instanceof Uint8Array;var d0=($)=>new Uint32Array($.buffer,$.byteOffset,Math.floor($.byteLength/4)),n0=($)=>new DataView($.buffer,$.byteOffset,$.byteLength),g$=($,Q)=>$<<32-Q|$>>>Q,XZ=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!XZ)throw Error("Non little-endian hardware is not supported");var ZZ=async()=>{};async function m8($,Q,J){let Y=Date.now();for(let X=0;X<$;X++){J(X);let Z=Date.now()-Y;if(Z>=0&&Z<Q)continue;await ZZ(),Y+=Z}}function qZ($){if(typeof $!=="string")throw Error(`utf8ToBytes expected string, got ${typeof $}`);return new Uint8Array(new TextEncoder().encode($))}function d$($){if(typeof $==="string")$=qZ($);if(!cJ($))throw Error(`expected Uint8Array, got ${typeof $}`);return $}function uJ(...$){let Q=new Uint8Array($.reduce((Y,X)=>Y+X.length,0)),J=0;return $.forEach((Y)=>{if(!cJ(Y))throw Error("Uint8Array expected");Q.set(Y,J),J+=Y.length}),Q}class S0{clone(){return this._cloneInto()}}var GZ={}.toString;function c8($,Q){if(Q!==void 0&&GZ.call(Q)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign($,Q)}function I0($){let Q=(Y)=>$().update(d$(Y)).digest(),J=$();return Q.outputLen=J.outputLen,Q.blockLen=J.blockLen,Q.create=()=>$(),Q}function pJ($=32){if(h8&&typeof h8.getRandomValues==="function")return h8.getRandomValues(new Uint8Array($));throw Error("crypto.getRandomValues must be defined")}class BQ extends S0{constructor($,Q){super();this.finished=!1,this.destroyed=!1,y8($);let J=d$(Q);if(this.iHash=$.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,X=new Uint8Array(Y);X.set(J.length>Y?$.create().update(J).digest():J);for(let Z=0;Z<X.length;Z++)X[Z]^=54;this.iHash.update(X),this.oHash=$.create();for(let Z=0;Z<X.length;Z++)X[Z]^=106;this.oHash.update(X),X.fill(0)}update($){return t$(this),this.iHash.update($),this}digestInto($){t$(this),q8($,this.outputLen),this.finished=!0,this.iHash.digestInto($),this.oHash.update($),this.oHash.digestInto($),this.destroy()}digest(){let $=new Uint8Array(this.oHash.outputLen);return this.digestInto($),$}_cloneInto($){$||($=Object.create(Object.getPrototypeOf(this),{}));let{oHash:Q,iHash:J,finished:Y,destroyed:X,blockLen:Z,outputLen:q}=this;return $=$,$.finished=Y,$.destroyed=X,$.blockLen=Z,$.outputLen=q,$.oHash=Q._cloneInto($.oHash),$.iHash=J._cloneInto($.iHash),$}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var w0=($,Q,J)=>new BQ($,Q).update(J).digest();w0.create=($,Q)=>new BQ($,Q);function MZ($,Q,J,Y){y8($);let X=c8({dkLen:32,asyncTick:10},Y),{c:Z,dkLen:q,asyncTick:G}=X;if(O$(Z),O$(q),O$(G),Z<1)throw Error("PBKDF2: iterations (c) should be >= 1");let M=d$(Q),W=d$(J),V=new Uint8Array(q),z=w0.create($,M),K=z._cloneInto().update(W);return{c:Z,dkLen:q,asyncTick:G,DK:V,PRF:z,PRFSalt:K}}function WZ($,Q,J,Y,X){if($.destroy(),Q.destroy(),Y)Y.destroy();return X.fill(0),J}function G8($,Q,J,Y){let{c:X,dkLen:Z,DK:q,PRF:G,PRFSalt:M}=MZ($,Q,J,Y),W,V=new Uint8Array(4),z=n0(V),K=new Uint8Array(G.outputLen);for(let j=1,I=0;I<Z;j++,I+=G.outputLen){let O=q.subarray(I,I+G.outputLen);z.setInt32(0,j,!1),(W=M._cloneInto(W)).update(V).digestInto(K),O.set(K.subarray(0,O.length));for(let U=1;U<X;U++){G._cloneInto(W).update(K).digestInto(K);for(let R=0;R<O.length;R++)O[R]^=K[R]}}return WZ(G,M,q,W,K)}function VZ($,Q,J,Y){if(typeof $.setBigUint64==="function")return $.setBigUint64(Q,J,Y);let X=BigInt(32),Z=BigInt(4294967295),q=Number(J>>X&Z),G=Number(J&Z),M=Y?4:0,W=Y?0:4;$.setUint32(Q+M,q,Y),$.setUint32(Q+W,G,Y)}class B0 extends S0{constructor($,Q,J,Y){super();this.blockLen=$,this.outputLen=Q,this.padOffset=J,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array($),this.view=n0(this.buffer)}update($){t$(this);let{view:Q,buffer:J,blockLen:Y}=this;$=d$($);let X=$.length;for(let Z=0;Z<X;){let q=Math.min(Y-this.pos,X-Z);if(q===Y){let G=n0($);for(;Y<=X-Z;Z+=Y)this.process(G,Z);continue}if(J.set($.subarray(Z,Z+q),this.pos),this.pos+=q,Z+=q,this.pos===Y)this.process(Q,0),this.pos=0}return this.length+=$.length,this.roundClean(),this}digestInto($){t$(this),g8($,this),this.finished=!0;let{buffer:Q,view:J,blockLen:Y,isLE:X}=this,{pos:Z}=this;if(Q[Z++]=128,this.buffer.subarray(Z).fill(0),this.padOffset>Y-Z)this.process(J,0),Z=0;for(let V=Z;V<Y;V++)Q[V]=0;VZ(J,Y-8,BigInt(this.length*8),X),this.process(J,0);let q=n0($),G=this.outputLen;if(G%4)throw Error("_sha2: outputLen should be aligned to 32bit");let M=G/4,W=this.get();if(M>W.length)throw Error("_sha2: outputLen bigger than state");for(let V=0;V<M;V++)q.setUint32(4*V,W[V],X)}digest(){let{buffer:$,outputLen:Q}=this;this.digestInto($);let J=$.slice(0,Q);return this.destroy(),J}_cloneInto($){$||($=new this.constructor),$.set(...this.get());let{blockLen:Q,buffer:J,length:Y,finished:X,destroyed:Z,pos:q}=this;if($.length=Y,$.pos=q,$.finished=X,$.destroyed=Z,Y%Q)$.buffer.set(J);return $}}var zZ=($,Q,J)=>$&Q^~$&J,DZ=($,Q,J)=>$&Q^$&J^Q&J,IZ=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]),K0=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),O0=new Uint32Array(64);class lJ extends B0{constructor(){super(64,32,8,!1);this.A=K0[0]|0,this.B=K0[1]|0,this.C=K0[2]|0,this.D=K0[3]|0,this.E=K0[4]|0,this.F=K0[5]|0,this.G=K0[6]|0,this.H=K0[7]|0}get(){let{A:$,B:Q,C:J,D:Y,E:X,F:Z,G:q,H:G}=this;return[$,Q,J,Y,X,Z,q,G]}set($,Q,J,Y,X,Z,q,G){this.A=$|0,this.B=Q|0,this.C=J|0,this.D=Y|0,this.E=X|0,this.F=Z|0,this.G=q|0,this.H=G|0}process($,Q){for(let V=0;V<16;V++,Q+=4)O0[V]=$.getUint32(Q,!1);for(let V=16;V<64;V++){let z=O0[V-15],K=O0[V-2],j=g$(z,7)^g$(z,18)^z>>>3,I=g$(K,17)^g$(K,19)^K>>>10;O0[V]=I+O0[V-7]+j+O0[V-16]|0}let{A:J,B:Y,C:X,D:Z,E:q,F:G,G:M,H:W}=this;for(let V=0;V<64;V++){let z=g$(q,6)^g$(q,11)^g$(q,25),K=W+z+zZ(q,G,M)+IZ[V]+O0[V]|0,I=(g$(J,2)^g$(J,13)^g$(J,22))+DZ(J,Y,X)|0;W=M,M=G,G=q,q=Z+K|0,Z=X,X=Y,Y=J,J=K+I|0}J=J+this.A|0,Y=Y+this.B|0,X=X+this.C|0,Z=Z+this.D|0,q=q+this.E|0,G=G+this.F|0,M=M+this.G|0,W=W+this.H|0,this.set(J,Y,X,Z,q,G,M,W)}roundClean(){O0.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var e$=I0(()=>new lJ);var u8=BigInt(4294967295),AQ=BigInt(32);function dJ($,Q=!1){if(Q)return{h:Number($&u8),l:Number($>>AQ&u8)};return{h:Number($>>AQ&u8)|0,l:Number($&u8)|0}}function FQ($,Q=!1){let J=new Uint32Array($.length),Y=new Uint32Array($.length);for(let X=0;X<$.length;X++){let{h:Z,l:q}=dJ($[X],Q);[J[X],Y[X]]=[Z,q]}return[J,Y]}var KZ=($,Q)=>BigInt($>>>0)<<AQ|BigInt(Q>>>0),OZ=($,Q,J)=>$>>>J,TZ=($,Q,J)=>$<<32-J|Q>>>J,UZ=($,Q,J)=>$>>>J|Q<<32-J,HZ=($,Q,J)=>$<<32-J|Q>>>J,RZ=($,Q,J)=>$<<64-J|Q>>>J-32,LZ=($,Q,J)=>$>>>J-32|Q<<64-J,NZ=($,Q)=>Q,CZ=($,Q)=>$,kQ=($,Q,J)=>$<<J|Q>>>32-J,_Q=($,Q,J)=>Q<<J|$>>>32-J,fQ=($,Q,J)=>Q<<J-32|$>>>64-J,bQ=($,Q,J)=>$<<J-32|Q>>>64-J;function EZ($,Q,J,Y){let X=(Q>>>0)+(Y>>>0);return{h:$+J+(X/4294967296|0)|0,l:X|0}}var jZ=($,Q,J)=>($>>>0)+(Q>>>0)+(J>>>0),PZ=($,Q,J,Y)=>Q+J+Y+($/4294967296|0)|0,SZ=($,Q,J,Y)=>($>>>0)+(Q>>>0)+(J>>>0)+(Y>>>0),wZ=($,Q,J,Y,X)=>Q+J+Y+X+($/4294967296|0)|0,BZ=($,Q,J,Y,X)=>($>>>0)+(Q>>>0)+(J>>>0)+(Y>>>0)+(X>>>0),AZ=($,Q,J,Y,X,Z)=>Q+J+Y+X+Z+($/4294967296|0)|0;var FZ={fromBig:dJ,split:FQ,toBig:KZ,shrSH:OZ,shrSL:TZ,rotrSH:UZ,rotrSL:HZ,rotrBH:RZ,rotrBL:LZ,rotr32H:NZ,rotr32L:CZ,rotlSH:kQ,rotlSL:_Q,rotlBH:fQ,rotlBL:bQ,add:EZ,add3L:jZ,add3H:PZ,add4L:SZ,add4H:wZ,add5H:AZ,add5L:BZ},g=FZ;var[kZ,_Z]=(()=>g.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(($)=>BigInt($))))(),T0=new Uint32Array(80),U0=new Uint32Array(80);class nJ extends B0{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(){let{Ah:$,Al:Q,Bh:J,Bl:Y,Ch:X,Cl:Z,Dh:q,Dl:G,Eh:M,El:W,Fh:V,Fl:z,Gh:K,Gl:j,Hh:I,Hl:O}=this;return[$,Q,J,Y,X,Z,q,G,M,W,V,z,K,j,I,O]}set($,Q,J,Y,X,Z,q,G,M,W,V,z,K,j,I,O){this.Ah=$|0,this.Al=Q|0,this.Bh=J|0,this.Bl=Y|0,this.Ch=X|0,this.Cl=Z|0,this.Dh=q|0,this.Dl=G|0,this.Eh=M|0,this.El=W|0,this.Fh=V|0,this.Fl=z|0,this.Gh=K|0,this.Gl=j|0,this.Hh=I|0,this.Hl=O|0}process($,Q){for(let E=0;E<16;E++,Q+=4)T0[E]=$.getUint32(Q),U0[E]=$.getUint32(Q+=4);for(let E=16;E<80;E++){let f=T0[E-15]|0,C=U0[E-15]|0,H=g.rotrSH(f,C,1)^g.rotrSH(f,C,8)^g.shrSH(f,C,7),S=g.rotrSL(f,C,1)^g.rotrSL(f,C,8)^g.shrSL(f,C,7),A=T0[E-2]|0,y=U0[E-2]|0,x=g.rotrSH(A,y,19)^g.rotrBH(A,y,61)^g.shrSH(A,y,6),v=g.rotrSL(A,y,19)^g.rotrBL(A,y,61)^g.shrSL(A,y,6),w=g.add4L(S,v,U0[E-7],U0[E-16]),B=g.add4H(w,H,x,T0[E-7],T0[E-16]);T0[E]=B|0,U0[E]=w|0}let{Ah:J,Al:Y,Bh:X,Bl:Z,Ch:q,Cl:G,Dh:M,Dl:W,Eh:V,El:z,Fh:K,Fl:j,Gh:I,Gl:O,Hh:U,Hl:R}=this;for(let E=0;E<80;E++){let f=g.rotrSH(V,z,14)^g.rotrSH(V,z,18)^g.rotrBH(V,z,41),C=g.rotrSL(V,z,14)^g.rotrSL(V,z,18)^g.rotrBL(V,z,41),H=V&K^~V&I,S=z&j^~z&O,A=g.add5L(R,C,S,_Z[E],U0[E]),y=g.add5H(A,U,f,H,kZ[E],T0[E]),x=A|0,v=g.rotrSH(J,Y,28)^g.rotrBH(J,Y,34)^g.rotrBH(J,Y,39),w=g.rotrSL(J,Y,28)^g.rotrBL(J,Y,34)^g.rotrBL(J,Y,39),B=J&X^J&q^X&q,b=Y&Z^Y&G^Z&G;U=I|0,R=O|0,I=K|0,O=j|0,K=V|0,j=z|0,{h:V,l:z}=g.add(M|0,W|0,y|0,x|0),M=q|0,W=G|0,q=X|0,G=Z|0,X=J|0,Z=Y|0;let F=g.add3L(x,w,b);J=g.add3H(F,y,v,B),Y=F|0}({h:J,l:Y}=g.add(this.Ah|0,this.Al|0,J|0,Y|0)),{h:X,l:Z}=g.add(this.Bh|0,this.Bl|0,X|0,Z|0),{h:q,l:G}=g.add(this.Ch|0,this.Cl|0,q|0,G|0),{h:M,l:W}=g.add(this.Dh|0,this.Dl|0,M|0,W|0),{h:V,l:z}=g.add(this.Eh|0,this.El|0,V|0,z|0),{h:K,l:j}=g.add(this.Fh|0,this.Fl|0,K|0,j|0),{h:I,l:O}=g.add(this.Gh|0,this.Gl|0,I|0,O|0),{h:U,l:R}=g.add(this.Hh|0,this.Hl|0,U|0,R|0),this.set(J,Y,X,Z,q,G,M,W,V,z,K,j,I,O,U,R)}roundClean(){T0.fill(0),U0.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)}}var p8=I0(()=>new nJ);function fZ(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof window<"u")return window;throw Error("unable to locate global object")}var oJ=fZ(),iJ=oJ.crypto||oJ.msCrypto;function xQ($){switch($){case"sha256":return e$.create();case"sha512":return p8.create()}D(!1,"invalid hashing algorithm name","algorithm",$)}function rJ($,Q){let J={sha256:e$,sha512:p8}[$];return D(J!=null,"invalid hmac algorithm","algorithm",$),w0.create(J,Q)}function aJ($,Q,J,Y,X){let Z={sha256:e$,sha512:p8}[X];return D(Z!=null,"invalid pbkdf2 algorithm","algorithm",X),G8(Z,$,Q,{c:J,dkLen:Y})}function sJ($){_(iJ!=null,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),D(Number.isInteger($)&&$>0&&$<=1024,"invalid length","length",$);let Q=new Uint8Array($);return iJ.getRandomValues(Q),Q}var tJ=!1,eJ=function($,Q,J){return rJ($,Q).update(J).digest()},$Y=eJ;function $0($,Q,J){let Y=N(Q,"key"),X=N(J,"data");return L($Y($,Y,X))}$0._=eJ;$0.lock=function(){tJ=!0};$0.register=function($){if(tJ)throw Error("computeHmac is locked");$Y=$};Object.freeze($0);var[YY,XY,ZY]=[[],[],[]],bZ=BigInt(0),M8=BigInt(1),xZ=BigInt(2),vZ=BigInt(7),yZ=BigInt(256),gZ=BigInt(113);for(let $=0,Q=M8,J=1,Y=0;$<24;$++){[J,Y]=[Y,(2*J+3*Y)%5],YY.push(2*(5*Y+J)),XY.push(($+1)*($+2)/2%64);let X=bZ;for(let Z=0;Z<7;Z++)if(Q=(Q<<M8^(Q>>vZ)*gZ)%yZ,Q&xZ)X^=M8<<(M8<<BigInt(Z))-M8;ZY.push(X)}var[hZ,mZ]=FQ(ZY,!0),QY=($,Q,J)=>J>32?fQ($,Q,J):kQ($,Q,J),JY=($,Q,J)=>J>32?bQ($,Q,J):_Q($,Q,J);function cZ($,Q=24){let J=new Uint32Array(10);for(let Y=24-Q;Y<24;Y++){for(let q=0;q<10;q++)J[q]=$[q]^$[q+10]^$[q+20]^$[q+30]^$[q+40];for(let q=0;q<10;q+=2){let G=(q+8)%10,M=(q+2)%10,W=J[M],V=J[M+1],z=QY(W,V,1)^J[G],K=JY(W,V,1)^J[G+1];for(let j=0;j<50;j+=10)$[q+j]^=z,$[q+j+1]^=K}let X=$[2],Z=$[3];for(let q=0;q<24;q++){let G=XY[q],M=QY(X,Z,G),W=JY(X,Z,G),V=YY[q];X=$[V],Z=$[V+1],$[V]=M,$[V+1]=W}for(let q=0;q<50;q+=10){for(let G=0;G<10;G++)J[G]=$[q+G];for(let G=0;G<10;G++)$[q+G]^=~J[(G+2)%10]&J[(G+4)%10]}$[0]^=hZ[Y],$[1]^=mZ[Y]}J.fill(0)}class vQ extends S0{constructor($,Q,J,Y=!1,X=24){super();if(this.blockLen=$,this.suffix=Q,this.outputLen=J,this.enableXOF=Y,this.rounds=X,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,O$(J),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=d0(this.state)}keccak(){cZ(this.state32,this.rounds),this.posOut=0,this.pos=0}update($){t$(this);let{blockLen:Q,state:J}=this;$=d$($);let Y=$.length;for(let X=0;X<Y;){let Z=Math.min(Q-this.pos,Y-X);for(let q=0;q<Z;q++)J[this.pos++]^=$[X++];if(this.pos===Q)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:$,suffix:Q,pos:J,blockLen:Y}=this;if($[J]^=Q,(Q&128)!==0&&J===Y-1)this.keccak();$[Y-1]^=128,this.keccak()}writeInto($){t$(this,!1),q8($),this.finish();let Q=this.state,{blockLen:J}=this;for(let Y=0,X=$.length;Y<X;){if(this.posOut>=J)this.keccak();let Z=Math.min(J-this.posOut,X-Y);$.set(Q.subarray(this.posOut,this.posOut+Z),Y),this.posOut+=Z,Y+=Z}return $}xofInto($){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto($)}xof($){return O$($),this.xofInto(new Uint8Array($))}digestInto($){if(g8($,this),this.finished)throw Error("digest() was already called");return this.writeInto($),this.destroy(),$}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto($){let{blockLen:Q,suffix:J,outputLen:Y,rounds:X,enableXOF:Z}=this;return $||($=new vQ(Q,J,Y,Z,X)),$.state32.set(this.state32),$.pos=this.pos,$.posOut=this.posOut,$.finished=this.finished,$.rounds=X,$.suffix=J,$.outputLen=Y,$.enableXOF=Z,$.destroyed=this.destroyed,$}}var uZ=($,Q,J)=>I0(()=>new vQ(Q,$,J));var qY=uZ(1,136,32);var GY=!1,MY=function($){return qY($)},WY=MY;function n($){let Q=N($,"data");return L(WY(Q))}n._=MY;n.lock=function(){GY=!0};n.register=function($){if(GY)throw TypeError("keccak256 is locked");WY=$};Object.freeze(n);var pZ=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),zY=Uint8Array.from({length:16},($,Q)=>Q),lZ=zY.map(($)=>(9*$+5)%16),yQ=[zY],gQ=[lZ];for(let $=0;$<4;$++)for(let Q of[yQ,gQ])Q.push(Q[$].map((J)=>pZ[J]));var DY=[[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(($)=>new Uint8Array($)),dZ=yQ.map(($,Q)=>$.map((J)=>DY[Q][J])),nZ=gQ.map(($,Q)=>$.map((J)=>DY[Q][J])),oZ=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),iZ=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),l8=($,Q)=>$<<Q|$>>>32-Q;function VY($,Q,J,Y){if($===0)return Q^J^Y;else if($===1)return Q&J|~Q&Y;else if($===2)return(Q|~J)^Y;else if($===3)return Q&Y|J&~Y;else return Q^(J|~Y)}var d8=new Uint32Array(16);class IY extends B0{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:$,h1:Q,h2:J,h3:Y,h4:X}=this;return[$,Q,J,Y,X]}set($,Q,J,Y,X){this.h0=$|0,this.h1=Q|0,this.h2=J|0,this.h3=Y|0,this.h4=X|0}process($,Q){for(let K=0;K<16;K++,Q+=4)d8[K]=$.getUint32(Q,!0);let J=this.h0|0,Y=J,X=this.h1|0,Z=X,q=this.h2|0,G=q,M=this.h3|0,W=M,V=this.h4|0,z=V;for(let K=0;K<5;K++){let j=4-K,I=oZ[K],O=iZ[K],U=yQ[K],R=gQ[K],E=dZ[K],f=nZ[K];for(let C=0;C<16;C++){let H=l8(J+VY(K,X,q,M)+d8[U[C]]+I,E[C])+V|0;J=V,V=M,M=l8(q,10)|0,q=X,X=H}for(let C=0;C<16;C++){let H=l8(Y+VY(j,Z,G,W)+d8[R[C]]+O,f[C])+z|0;Y=z,z=W,W=l8(G,10)|0,G=Z,Z=H}}this.set(this.h1+q+W|0,this.h2+M+z|0,this.h3+V+Y|0,this.h4+J+Z|0,this.h0+X+G|0)}roundClean(){d8.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var KY=I0(()=>new IY);var OY=!1,TY=function($){return KY($)},UY=TY;function Q0($){let Q=N($,"data");return L(UY(Q))}Q0._=TY;Q0.lock=function(){OY=!0};Q0.register=function($){if(OY)throw TypeError("ripemd160 is locked");UY=$};Object.freeze(Q0);var HY=!1,RY=function($,Q,J,Y,X){return aJ($,Q,J,Y,X)},LY=RY;function P$($,Q,J,Y,X){let Z=N($,"password"),q=N(Q,"salt");return L(LY(Z,q,J,Y,X))}P$._=RY;P$.lock=function(){HY=!0};P$.register=function($){if(HY)throw Error("pbkdf2 is locked");LY=$};Object.freeze(P$);var NY=!1,CY=function($){return new Uint8Array(sJ($))},EY=CY;function Y$($){return EY($)}Y$._=CY;Y$.lock=function(){NY=!0};Y$.register=function($){if(NY)throw Error("randomBytes is locked");EY=$};Object.freeze(Y$);var l=($,Q)=>$<<Q|$>>>32-Q;function jY($,Q,J,Y,X,Z){let q=$[Q++]^J[Y++],G=$[Q++]^J[Y++],M=$[Q++]^J[Y++],W=$[Q++]^J[Y++],V=$[Q++]^J[Y++],z=$[Q++]^J[Y++],K=$[Q++]^J[Y++],j=$[Q++]^J[Y++],I=$[Q++]^J[Y++],O=$[Q++]^J[Y++],U=$[Q++]^J[Y++],R=$[Q++]^J[Y++],E=$[Q++]^J[Y++],f=$[Q++]^J[Y++],C=$[Q++]^J[Y++],H=$[Q++]^J[Y++],S=q,A=G,y=M,x=W,v=V,w=z,B=K,b=j,F=I,T=O,P=U,k=R,h=E,c=f,o=C,J$=H;for(let d=0;d<8;d+=2)v^=l(S+h|0,7),F^=l(v+S|0,9),h^=l(F+v|0,13),S^=l(h+F|0,18),T^=l(w+A|0,7),c^=l(T+w|0,9),A^=l(c+T|0,13),w^=l(A+c|0,18),o^=l(P+B|0,7),y^=l(o+P|0,9),B^=l(y+o|0,13),P^=l(B+y|0,18),x^=l(J$+k|0,7),b^=l(x+J$|0,9),k^=l(b+x|0,13),J$^=l(k+b|0,18),A^=l(S+x|0,7),y^=l(A+S|0,9),x^=l(y+A|0,13),S^=l(x+y|0,18),B^=l(w+v|0,7),b^=l(B+w|0,9),v^=l(b+B|0,13),w^=l(v+b|0,18),k^=l(P+T|0,7),F^=l(k+P|0,9),T^=l(F+k|0,13),P^=l(T+F|0,18),h^=l(J$+o|0,7),c^=l(h+J$|0,9),o^=l(c+h|0,13),J$^=l(o+c|0,18);X[Z++]=q+S|0,X[Z++]=G+A|0,X[Z++]=M+y|0,X[Z++]=W+x|0,X[Z++]=V+v|0,X[Z++]=z+w|0,X[Z++]=K+B|0,X[Z++]=j+b|0,X[Z++]=I+F|0,X[Z++]=O+T|0,X[Z++]=U+P|0,X[Z++]=R+k|0,X[Z++]=E+h|0,X[Z++]=f+c|0,X[Z++]=C+o|0,X[Z++]=H+J$|0}function o0($,Q,J,Y,X){let Z=Y+0,q=Y+16*X;for(let G=0;G<16;G++)J[q+G]=$[Q+(2*X-1)*16+G];for(let G=0;G<X;G++,Z+=16,Q+=16){if(jY(J,q,$,Q,J,Z),G>0)q+=16;jY(J,Z,$,Q+=16,J,q)}}function PY($,Q,J){let Y=c8({dkLen:32,asyncTick:10,maxmem:1073742848},J),{N:X,r:Z,p:q,dkLen:G,asyncTick:M,maxmem:W,onProgress:V}=Y;if(O$(X),O$(Z),O$(q),O$(G),O$(M),O$(W),V!==void 0&&typeof V!=="function")throw Error("progressCb should be function");let z=128*Z,K=z/4;if(X<=1||(X&X-1)!==0||X>=2**(z/8)||X>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(q<0||q>137438953440/z)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(G<0||G>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let j=z*(X+q);if(j>W)throw Error(`Scrypt: parameters too large, ${j} (128 * r * (N + p)) > ${W} (maxmem)`);let I=G8(e$,$,Q,{c:1,dkLen:z*q}),O=d0(I),U=d0(new Uint8Array(z*X)),R=d0(new Uint8Array(z)),E=()=>{};if(V){let f=2*X*q,C=Math.max(Math.floor(f/1e4),1),H=0;E=()=>{if(H++,V&&(!(H%C)||H===f))V(H/f)}}return{N:X,r:Z,p:q,dkLen:G,blockSize32:K,V:U,B32:O,B:I,tmp:R,blockMixCb:E,asyncTick:M}}function SY($,Q,J,Y,X){let Z=G8(e$,$,J,{c:1,dkLen:Q});return J.fill(0),Y.fill(0),X.fill(0),Z}function wY($,Q,J){let{N:Y,r:X,p:Z,dkLen:q,blockSize32:G,V:M,B32:W,B:V,tmp:z,blockMixCb:K}=PY($,Q,J);for(let j=0;j<Z;j++){let I=G*j;for(let O=0;O<G;O++)M[O]=W[I+O];for(let O=0,U=0;O<Y-1;O++)o0(M,U,M,U+=G,X),K();o0(M,(Y-1)*G,W,I,X),K();for(let O=0;O<Y;O++){let U=W[I+G-16]%Y;for(let R=0;R<G;R++)z[R]=W[I+R]^M[U*G+R];o0(z,0,W,I,X),K()}}return SY($,q,V,M,z)}async function BY($,Q,J){let{N:Y,r:X,p:Z,dkLen:q,blockSize32:G,V:M,B32:W,B:V,tmp:z,blockMixCb:K,asyncTick:j}=PY($,Q,J);for(let I=0;I<Z;I++){let O=G*I;for(let R=0;R<G;R++)M[R]=W[O+R];let U=0;await m8(Y-1,j,()=>{o0(M,U,M,U+=G,X),K()}),o0(M,(Y-1)*G,W,O,X),K(),await m8(Y,j,()=>{let R=W[O+G-16]%Y;for(let E=0;E<G;E++)z[E]=W[O+E]^M[R*G+E];o0(z,0,W,O,X),K()})}return SY($,q,V,M,z)}var AY=!1,FY=!1,kY=async function($,Q,J,Y,X,Z,q){return await BY($,Q,{N:J,r:Y,p:X,dkLen:Z,onProgress:q})},_Y=function($,Q,J,Y,X,Z){return wY($,Q,{N:J,r:Y,p:X,dkLen:Z})},fY=kY,bY=_Y;async function J0($,Q,J,Y,X,Z,q){let G=N($,"passwd"),M=N(Q,"salt");return L(await fY(G,M,J,Y,X,Z,q))}J0._=kY;J0.lock=function(){FY=!0};J0.register=function($){if(FY)throw Error("scrypt is locked");fY=$};Object.freeze(J0);function Y0($,Q,J,Y,X,Z){let q=N($,"passwd"),G=N(Q,"salt");return L(bY(q,G,J,Y,X,Z))}Y0._=_Y;Y0.lock=function(){AY=!0};Y0.register=function($){if(AY)throw Error("scryptSync is locked");bY=$};Object.freeze(Y0);var xY=function($){return xQ("sha256").update($).digest()},vY=function($){return xQ("sha512").update($).digest()},yY=xY,gY=vY,hY=!1,mY=!1;function q$($){let Q=N($,"data");return L(yY(Q))}q$._=xY;q$.lock=function(){hY=!0};q$.register=function($){if(hY)throw Error("sha256 is locked");yY=$};Object.freeze(q$);function W8($){let Q=N($,"data");return L(gY(Q))}W8._=vY;W8.lock=function(){mY=!0};W8.register=function($){if(mY)throw Error("sha512 is locked");gY=$};Object.freeze(q$);var uQ={};cX(uQ,{validateObject:()=>R0,utf8ToBytes:()=>eZ,numberToVarBytesBE:()=>sZ,numberToHexUnpadded:()=>pY,numberToBytesLE:()=>r8,numberToBytesBE:()=>H0,hexToNumber:()=>mQ,hexToBytes:()=>F0,equalBytes:()=>tZ,ensureBytes:()=>S$,createHmacDrbg:()=>cQ,concatBytes:()=>i0,bytesToNumberLE:()=>i8,bytesToNumberBE:()=>X0,bytesToHex:()=>A0,bitSet:()=>J9,bitMask:()=>V8,bitLen:()=>$9,bitGet:()=>Q9});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var uY=BigInt(0),n8=BigInt(1),rZ=BigInt(2),o8=($)=>$ instanceof Uint8Array,aZ=Array.from({length:256},($,Q)=>Q.toString(16).padStart(2,"0"));function A0($){if(!o8($))throw Error("Uint8Array expected");let Q="";for(let J=0;J<$.length;J++)Q+=aZ[$[J]];return Q}function pY($){let Q=$.toString(16);return Q.length&1?`0${Q}`:Q}function mQ($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);return BigInt($===""?"0":`0x${$}`)}function F0($){if(typeof $!=="string")throw Error("hex string expected, got "+typeof $);let Q=$.length;if(Q%2)throw Error("padded hex string expected, got unpadded hex of length "+Q);let J=new Uint8Array(Q/2);for(let Y=0;Y<J.length;Y++){let X=Y*2,Z=$.slice(X,X+2),q=Number.parseInt(Z,16);if(Number.isNaN(q)||q<0)throw Error("Invalid byte sequence");J[Y]=q}return J}function X0($){return mQ(A0($))}function i8($){if(!o8($))throw Error("Uint8Array expected");return mQ(A0(Uint8Array.from($).reverse()))}function H0($,Q){return F0($.toString(16).padStart(Q*2,"0"))}function r8($,Q){return H0($,Q).reverse()}function sZ($){return F0(pY($))}function S$($,Q,J){let Y;if(typeof Q==="string")try{Y=F0(Q)}catch(Z){throw Error(`${$} must be valid hex string, got "${Q}". Cause: ${Z}`)}else if(o8(Q))Y=Uint8Array.from(Q);else throw Error(`${$} must be hex string or Uint8Array`);let X=Y.length;if(typeof J==="number"&&X!==J)throw Error(`${$} expected ${J} bytes, got ${X}`);return Y}function i0(...$){let Q=new Uint8Array($.reduce((Y,X)=>Y+X.length,0)),J=0;return $.forEach((Y)=>{if(!o8(Y))throw Error("Uint8Array expected");Q.set(Y,J),J+=Y.length}),Q}function tZ($,Q){if($.length!==Q.length)return!1;for(let J=0;J<$.length;J++)if($[J]!==Q[J])return!1;return!0}function eZ($){if(typeof $!=="string")throw Error(`utf8ToBytes expected string, got ${typeof $}`);return new Uint8Array(new TextEncoder().encode($))}function $9($){let Q;for(Q=0;$>uY;$>>=n8,Q+=1);return Q}function Q9($,Q){return $>>BigInt(Q)&n8}var J9=($,Q,J)=>{return $|(J?n8:uY)<<BigInt(Q)},V8=($)=>(rZ<<BigInt($-1))-n8,hQ=($)=>new Uint8Array($),cY=($)=>Uint8Array.from($);function cQ($,Q,J){if(typeof $!=="number"||$<2)throw Error("hashLen must be a number");if(typeof Q!=="number"||Q<2)throw Error("qByteLen must be a number");if(typeof J!=="function")throw Error("hmacFn must be a function");let Y=hQ($),X=hQ($),Z=0,q=()=>{Y.fill(1),X.fill(0),Z=0},G=(...z)=>J(X,Y,...z),M=(z=hQ())=>{if(X=G(cY([0]),z),Y=G(),z.length===0)return;X=G(cY([1]),z),Y=G()},W=()=>{if(Z++>=1000)throw Error("drbg: tried 1000 values");let z=0,K=[];while(z<Q){Y=G();let j=Y.slice();K.push(j),z+=Y.length}return i0(...K)};return(z,K)=>{q(),M(z);let j=void 0;while(!(j=K(W())))M();return q(),j}}var Y9={bigint:($)=>typeof $==="bigint",function:($)=>typeof $==="function",boolean:($)=>typeof $==="boolean",string:($)=>typeof $==="string",stringOrUint8Array:($)=>typeof $==="string"||$ instanceof Uint8Array,isSafeInteger:($)=>Number.isSafeInteger($),array:($)=>Array.isArray($),field:($,Q)=>Q.Fp.isValid($),hash:($)=>typeof $==="function"&&Number.isSafeInteger($.outputLen)};function R0($,Q,J={}){let Y=(X,Z,q)=>{let G=Y9[Z];if(typeof G!=="function")throw Error(`Invalid validator "${Z}", expected function`);let M=$[X];if(q&&M===void 0)return;if(!G(M,$))throw Error(`Invalid param ${String(X)}=${M} (${typeof M}), expected ${Z}`)};for(let[X,Z]of Object.entries(Q))Y(X,Z,!1);for(let[X,Z]of Object.entries(J))Y(X,Z,!0);return $}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var G$=BigInt(0),X$=BigInt(1),k0=BigInt(2),X9=BigInt(3),pQ=BigInt(4),lY=BigInt(5),dY=BigInt(8),Z9=BigInt(9),q9=BigInt(16);function T$($,Q){let J=$%Q;return J>=G$?J:Q+J}function G9($,Q,J){if(J<=G$||Q<G$)throw Error("Expected power/modulo > 0");if(J===X$)return G$;let Y=X$;while(Q>G$){if(Q&X$)Y=Y*$%J;$=$*$%J,Q>>=X$}return Y}function w$($,Q,J){let Y=$;while(Q-- >G$)Y*=Y,Y%=J;return Y}function a8($,Q){if($===G$||Q<=G$)throw Error(`invert: expected positive integers, got n=${$} mod=${Q}`);let J=T$($,Q),Y=Q,X=G$,Z=X$,q=X$,G=G$;while(J!==G$){let W=Y/J,V=Y%J,z=X-q*W,K=Z-G*W;Y=J,J=V,X=q,Z=G,q=z,G=K}if(Y!==X$)throw Error("invert: does not exist");return T$(X,Q)}function M9($){let Q=($-X$)/k0,J,Y,X;for(J=$-X$,Y=0;J%k0===G$;J/=k0,Y++);for(X=k0;X<$&&G9(X,Q,$)!==$-X$;X++);if(Y===1){let q=($+X$)/pQ;return function(M,W){let V=M.pow(W,q);if(!M.eql(M.sqr(V),W))throw Error("Cannot find square root");return V}}let Z=(J+X$)/k0;return function(G,M){if(G.pow(M,Q)===G.neg(G.ONE))throw Error("Cannot find square root");let W=Y,V=G.pow(G.mul(G.ONE,X),J),z=G.pow(M,Z),K=G.pow(M,J);while(!G.eql(K,G.ONE)){if(G.eql(K,G.ZERO))return G.ZERO;let j=1;for(let O=G.sqr(K);j<W;j++){if(G.eql(O,G.ONE))break;O=G.sqr(O)}let I=G.pow(V,X$<<BigInt(W-j-1));V=G.sqr(I),z=G.mul(z,I),K=G.mul(K,V),W=j}return z}}function W9($){if($%pQ===X9){let Q=($+X$)/pQ;return function(Y,X){let Z=Y.pow(X,Q);if(!Y.eql(Y.sqr(Z),X))throw Error("Cannot find square root");return Z}}if($%dY===lY){let Q=($-lY)/dY;return function(Y,X){let Z=Y.mul(X,k0),q=Y.pow(Z,Q),G=Y.mul(X,q),M=Y.mul(Y.mul(G,k0),q),W=Y.mul(G,Y.sub(M,Y.ONE));if(!Y.eql(Y.sqr(W),X))throw Error("Cannot find square root");return W}}if($%q9===Z9);return M9($)}var V9=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function lQ($){let Q={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},J=V9.reduce((Y,X)=>{return Y[X]="function",Y},Q);return R0($,J)}function z9($,Q,J){if(J<G$)throw Error("Expected power > 0");if(J===G$)return $.ONE;if(J===X$)return Q;let Y=$.ONE,X=Q;while(J>G$){if(J&X$)Y=$.mul(Y,X);X=$.sqr(X),J>>=X$}return Y}function D9($,Q){let J=Array(Q.length),Y=Q.reduce((Z,q,G)=>{if($.is0(q))return Z;return J[G]=Z,$.mul(Z,q)},$.ONE),X=$.inv(Y);return Q.reduceRight((Z,q,G)=>{if($.is0(q))return Z;return J[G]=$.mul(Z,J[G]),$.mul(Z,q)},X),J}function dQ($,Q){let J=Q!==void 0?Q:$.toString(2).length,Y=Math.ceil(J/8);return{nBitLength:J,nByteLength:Y}}function nY($,Q,J=!1,Y={}){if($<=G$)throw Error(`Expected Field ORDER > 0, got ${$}`);let{nBitLength:X,nByteLength:Z}=dQ($,Q);if(Z>2048)throw Error("Field lengths over 2048 bytes are not supported");let q=W9($),G=Object.freeze({ORDER:$,BITS:X,BYTES:Z,MASK:V8(X),ZERO:G$,ONE:X$,create:(M)=>T$(M,$),isValid:(M)=>{if(typeof M!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof M}`);return G$<=M&&M<$},is0:(M)=>M===G$,isOdd:(M)=>(M&X$)===X$,neg:(M)=>T$(-M,$),eql:(M,W)=>M===W,sqr:(M)=>T$(M*M,$),add:(M,W)=>T$(M+W,$),sub:(M,W)=>T$(M-W,$),mul:(M,W)=>T$(M*W,$),pow:(M,W)=>z9(G,M,W),div:(M,W)=>T$(M*a8(W,$),$),sqrN:(M)=>M*M,addN:(M,W)=>M+W,subN:(M,W)=>M-W,mulN:(M,W)=>M*W,inv:(M)=>a8(M,$),sqrt:Y.sqrt||((M)=>q(G,M)),invertBatch:(M)=>D9(G,M),cmov:(M,W,V)=>V?W:M,toBytes:(M)=>J?r8(M,Z):H0(M,Z),fromBytes:(M)=>{if(M.length!==Z)throw Error(`Fp.fromBytes: expected ${Z}, got ${M.length}`);return J?i8(M):X0(M)}});return Object.freeze(G)}function oY($){if(typeof $!=="bigint")throw Error("field order must be bigint");let Q=$.toString(2).length;return Math.ceil(Q/8)}function nQ($){let Q=oY($);return Q+Math.ceil(Q/2)}function iY($,Q,J=!1){let Y=$.length,X=oY(Q),Z=nQ(Q);if(Y<16||Y<Z||Y>1024)throw Error(`expected ${Z}-1024 bytes of input, got ${Y}`);let q=J?X0($):i8($),G=T$(q,Q-X$)+X$;return J?r8(G,X):H0(G,X)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var K9=BigInt(0),oQ=BigInt(1);function rY($,Q){let J=(X,Z)=>{let q=Z.negate();return X?q:Z},Y=(X)=>{let Z=Math.ceil(Q/X)+1,q=2**(X-1);return{windows:Z,windowSize:q}};return{constTimeNegate:J,unsafeLadder(X,Z){let q=$.ZERO,G=X;while(Z>K9){if(Z&oQ)q=q.add(G);G=G.double(),Z>>=oQ}return q},precomputeWindow(X,Z){let{windows:q,windowSize:G}=Y(Z),M=[],W=X,V=W;for(let z=0;z<q;z++){V=W,M.push(V);for(let K=1;K<G;K++)V=V.add(W),M.push(V);W=V.double()}return M},wNAF(X,Z,q){let{windows:G,windowSize:M}=Y(X),W=$.ZERO,V=$.BASE,z=BigInt(2**X-1),K=2**X,j=BigInt(X);for(let I=0;I<G;I++){let O=I*M,U=Number(q&z);if(q>>=j,U>M)U-=K,q+=oQ;let R=O,E=O+Math.abs(U)-1,f=I%2!==0,C=U<0;if(U===0)V=V.add(J(f,Z[R]));else W=W.add(J(C,Z[E]))}return{p:W,f:V}},wNAFCached(X,Z,q,G){let M=X._WINDOW_SIZE||1,W=Z.get(X);if(!W){if(W=this.precomputeWindow(X,M),M!==1)Z.set(X,G(W))}return this.wNAF(M,W,q)}}}function iQ($){return lQ($.Fp),R0($,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...dQ($.n,$.nBitLength),...$,...{p:$.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function O9($){let Q=iQ($);R0(Q,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:J,Fp:Y,a:X}=Q;if(J){if(!Y.eql(X,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof J!=="object"||typeof J.beta!=="bigint"||typeof J.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...Q})}var{bytesToNumberBE:T9,hexToBytes:U9}=uQ,_0={Err:class extends Error{constructor(Q=""){super(Q)}},_parseInt($){let{Err:Q}=_0;if($.length<2||$[0]!==2)throw new Q("Invalid signature integer tag");let J=$[1],Y=$.subarray(2,J+2);if(!J||Y.length!==J)throw new Q("Invalid signature integer: wrong length");if(Y[0]&128)throw new Q("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new Q("Invalid signature integer: unnecessary leading zero");return{d:T9(Y),l:$.subarray(J+2)}},toSig($){let{Err:Q}=_0,J=typeof $==="string"?U9($):$;if(!(J instanceof Uint8Array))throw Error("ui8a expected");let Y=J.length;if(Y<2||J[0]!=48)throw new Q("Invalid signature tag");if(J[1]!==Y-2)throw new Q("Invalid signature: incorrect length");let{d:X,l:Z}=_0._parseInt(J.subarray(2)),{d:q,l:G}=_0._parseInt(Z);if(G.length)throw new Q("Invalid signature: left bytes after parsing");return{r:X,s:q}},hexFromSig($){let Q=(W)=>Number.parseInt(W[0],16)&8?"00"+W:W,J=(W)=>{let V=W.toString(16);return V.length&1?`0${V}`:V},Y=Q(J($.s)),X=Q(J($.r)),Z=Y.length/2,q=X.length/2,G=J(Z),M=J(q);return`30${J(q+Z+4)}02${M}${X}02${G}${Y}`}},Z0=BigInt(0),A$=BigInt(1),f5=BigInt(2),aY=BigInt(3),b5=BigInt(4);function H9($){let Q=O9($),{Fp:J}=Q,Y=Q.toBytes||((I,O,U)=>{let R=O.toAffine();return i0(Uint8Array.from([4]),J.toBytes(R.x),J.toBytes(R.y))}),X=Q.fromBytes||((I)=>{let O=I.subarray(1),U=J.fromBytes(O.subarray(0,J.BYTES)),R=J.fromBytes(O.subarray(J.BYTES,2*J.BYTES));return{x:U,y:R}});function Z(I){let{a:O,b:U}=Q,R=J.sqr(I),E=J.mul(R,I);return J.add(J.add(E,J.mul(I,O)),U)}if(!J.eql(J.sqr(Q.Gy),Z(Q.Gx)))throw Error("bad generator point: equation left != right");function q(I){return typeof I==="bigint"&&Z0<I&&I<Q.n}function G(I){if(!q(I))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function M(I){let{allowedPrivateKeyLengths:O,nByteLength:U,wrapPrivateKey:R,n:E}=Q;if(O&&typeof I!=="bigint"){if(I instanceof Uint8Array)I=A0(I);if(typeof I!=="string"||!O.includes(I.length))throw Error("Invalid key");I=I.padStart(U*2,"0")}let f;try{f=typeof I==="bigint"?I:X0(S$("private key",I,U))}catch(C){throw Error(`private key must be ${U} bytes, hex or bigint, not ${typeof I}`)}if(R)f=T$(f,E);return G(f),f}let W=new Map;function V(I){if(!(I instanceof z))throw Error("ProjectivePoint expected")}class z{constructor(I,O,U){if(this.px=I,this.py=O,this.pz=U,I==null||!J.isValid(I))throw Error("x required");if(O==null||!J.isValid(O))throw Error("y required");if(U==null||!J.isValid(U))throw Error("z required")}static fromAffine(I){let{x:O,y:U}=I||{};if(!I||!J.isValid(O)||!J.isValid(U))throw Error("invalid affine point");if(I instanceof z)throw Error("projective point not allowed");let R=(E)=>J.eql(E,J.ZERO);if(R(O)&&R(U))return z.ZERO;return new z(O,U,J.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(I){let O=J.invertBatch(I.map((U)=>U.pz));return I.map((U,R)=>U.toAffine(O[R])).map(z.fromAffine)}static fromHex(I){let O=z.fromAffine(X(S$("pointHex",I)));return O.assertValidity(),O}static fromPrivateKey(I){return z.BASE.multiply(M(I))}_setWindowSize(I){this._WINDOW_SIZE=I,W.delete(this)}assertValidity(){if(this.is0()){if(Q.allowInfinityPoint&&!J.is0(this.py))return;throw Error("bad point: ZERO")}let{x:I,y:O}=this.toAffine();if(!J.isValid(I)||!J.isValid(O))throw Error("bad point: x or y not FE");let U=J.sqr(O),R=Z(I);if(!J.eql(U,R))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:I}=this.toAffine();if(J.isOdd)return!J.isOdd(I);throw Error("Field doesn't support isOdd")}equals(I){V(I);let{px:O,py:U,pz:R}=this,{px:E,py:f,pz:C}=I,H=J.eql(J.mul(O,C),J.mul(E,R)),S=J.eql(J.mul(U,C),J.mul(f,R));return H&&S}negate(){return new z(this.px,J.neg(this.py),this.pz)}double(){let{a:I,b:O}=Q,U=J.mul(O,aY),{px:R,py:E,pz:f}=this,C=J.ZERO,H=J.ZERO,S=J.ZERO,A=J.mul(R,R),y=J.mul(E,E),x=J.mul(f,f),v=J.mul(R,E);return v=J.add(v,v),S=J.mul(R,f),S=J.add(S,S),C=J.mul(I,S),H=J.mul(U,x),H=J.add(C,H),C=J.sub(y,H),H=J.add(y,H),H=J.mul(C,H),C=J.mul(v,C),S=J.mul(U,S),x=J.mul(I,x),v=J.sub(A,x),v=J.mul(I,v),v=J.add(v,S),S=J.add(A,A),A=J.add(S,A),A=J.add(A,x),A=J.mul(A,v),H=J.add(H,A),x=J.mul(E,f),x=J.add(x,x),A=J.mul(x,v),C=J.sub(C,A),S=J.mul(x,y),S=J.add(S,S),S=J.add(S,S),new z(C,H,S)}add(I){V(I);let{px:O,py:U,pz:R}=this,{px:E,py:f,pz:C}=I,H=J.ZERO,S=J.ZERO,A=J.ZERO,y=Q.a,x=J.mul(Q.b,aY),v=J.mul(O,E),w=J.mul(U,f),B=J.mul(R,C),b=J.add(O,U),F=J.add(E,f);b=J.mul(b,F),F=J.add(v,w),b=J.sub(b,F),F=J.add(O,R);let T=J.add(E,C);return F=J.mul(F,T),T=J.add(v,B),F=J.sub(F,T),T=J.add(U,R),H=J.add(f,C),T=J.mul(T,H),H=J.add(w,B),T=J.sub(T,H),A=J.mul(y,F),H=J.mul(x,B),A=J.add(H,A),H=J.sub(w,A),A=J.add(w,A),S=J.mul(H,A),w=J.add(v,v),w=J.add(w,v),B=J.mul(y,B),F=J.mul(x,F),w=J.add(w,B),B=J.sub(v,B),B=J.mul(y,B),F=J.add(F,B),v=J.mul(w,F),S=J.add(S,v),v=J.mul(T,F),H=J.mul(b,H),H=J.sub(H,v),v=J.mul(b,w),A=J.mul(T,A),A=J.add(A,v),new z(H,S,A)}subtract(I){return this.add(I.negate())}is0(){return this.equals(z.ZERO)}wNAF(I){return j.wNAFCached(this,W,I,(O)=>{let U=J.invertBatch(O.map((R)=>R.pz));return O.map((R,E)=>R.toAffine(U[E])).map(z.fromAffine)})}multiplyUnsafe(I){let O=z.ZERO;if(I===Z0)return O;if(G(I),I===A$)return this;let{endo:U}=Q;if(!U)return j.unsafeLadder(this,I);let{k1neg:R,k1:E,k2neg:f,k2:C}=U.splitScalar(I),H=O,S=O,A=this;while(E>Z0||C>Z0){if(E&A$)H=H.add(A);if(C&A$)S=S.add(A);A=A.double(),E>>=A$,C>>=A$}if(R)H=H.negate();if(f)S=S.negate();return S=new z(J.mul(S.px,U.beta),S.py,S.pz),H.add(S)}multiply(I){G(I);let O=I,U,R,{endo:E}=Q;if(E){let{k1neg:f,k1:C,k2neg:H,k2:S}=E.splitScalar(O),{p:A,f:y}=this.wNAF(C),{p:x,f:v}=this.wNAF(S);A=j.constTimeNegate(f,A),x=j.constTimeNegate(H,x),x=new z(J.mul(x.px,E.beta),x.py,x.pz),U=A.add(x),R=y.add(v)}else{let{p:f,f:C}=this.wNAF(O);U=f,R=C}return z.normalizeZ([U,R])[0]}multiplyAndAddUnsafe(I,O,U){let R=z.BASE,E=(C,H)=>H===Z0||H===A$||!C.equals(R)?C.multiplyUnsafe(H):C.multiply(H),f=E(this,O).add(E(I,U));return f.is0()?void 0:f}toAffine(I){let{px:O,py:U,pz:R}=this,E=this.is0();if(I==null)I=E?J.ONE:J.inv(R);let f=J.mul(O,I),C=J.mul(U,I),H=J.mul(R,I);if(E)return{x:J.ZERO,y:J.ZERO};if(!J.eql(H,J.ONE))throw Error("invZ was invalid");return{x:f,y:C}}isTorsionFree(){let{h:I,isTorsionFree:O}=Q;if(I===A$)return!0;if(O)return O(z,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:I,clearCofactor:O}=Q;if(I===A$)return this;if(O)return O(z,this);return this.multiplyUnsafe(Q.h)}toRawBytes(I=!0){return this.assertValidity(),Y(z,this,I)}toHex(I=!0){return A0(this.toRawBytes(I))}}z.BASE=new z(Q.Gx,Q.Gy,J.ONE),z.ZERO=new z(J.ZERO,J.ONE,J.ZERO);let K=Q.nBitLength,j=rY(z,Q.endo?Math.ceil(K/2):K);return{CURVE:Q,ProjectivePoint:z,normPrivateKeyToScalar:M,weierstrassEquation:Z,isWithinCurveOrder:q}}function R9($){let Q=iQ($);return R0(Q,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...Q})}function sY($){let Q=R9($),{Fp:J,n:Y}=Q,X=J.BYTES+1,Z=2*J.BYTES+1;function q(T){return Z0<T&&T<J.ORDER}function G(T){return T$(T,Y)}function M(T){return a8(T,Y)}let{ProjectivePoint:W,normPrivateKeyToScalar:V,weierstrassEquation:z,isWithinCurveOrder:K}=H9({...Q,toBytes(T,P,k){let h=P.toAffine(),c=J.toBytes(h.x),o=i0;if(k)return o(Uint8Array.from([P.hasEvenY()?2:3]),c);else return o(Uint8Array.from([4]),c,J.toBytes(h.y))},fromBytes(T){let P=T.length,k=T[0],h=T.subarray(1);if(P===X&&(k===2||k===3)){let c=X0(h);if(!q(c))throw Error("Point is not on curve");let o=z(c),J$=J.sqrt(o),d=(J$&A$)===A$;if((k&1)===1!==d)J$=J.neg(J$);return{x:c,y:J$}}else if(P===Z&&k===4){let c=J.fromBytes(h.subarray(0,J.BYTES)),o=J.fromBytes(h.subarray(J.BYTES,2*J.BYTES));return{x:c,y:o}}else throw Error(`Point of length ${P} was invalid. Expected ${X} compressed bytes or ${Z} uncompressed bytes`)}}),j=(T)=>A0(H0(T,Q.nByteLength));function I(T){let P=Y>>A$;return T>P}function O(T){return I(T)?G(-T):T}let U=(T,P,k)=>X0(T.slice(P,k));class R{constructor(T,P,k){this.r=T,this.s=P,this.recovery=k,this.assertValidity()}static fromCompact(T){let P=Q.nByteLength;return T=S$("compactSignature",T,P*2),new R(U(T,0,P),U(T,P,2*P))}static fromDER(T){let{r:P,s:k}=_0.toSig(S$("DER",T));return new R(P,k)}assertValidity(){if(!K(this.r))throw Error("r must be 0 < r < CURVE.n");if(!K(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(T){return new R(this.r,this.s,T)}recoverPublicKey(T){let{r:P,s:k,recovery:h}=this,c=A(S$("msgHash",T));if(h==null||![0,1,2,3].includes(h))throw Error("recovery id invalid");let o=h===2||h===3?P+Q.n:P;if(o>=J.ORDER)throw Error("recovery id 2 or 3 invalid");let J$=(h&1)===0?"02":"03",d=W.fromHex(J$+j(o)),L$=M(o),m$=G(-c*L$),c$=G(k*L$),r$=W.BASE.multiplyAndAddUnsafe(d,m$,c$);if(!r$)throw Error("point at infinify");return r$.assertValidity(),r$}hasHighS(){return I(this.s)}normalizeS(){return this.hasHighS()?new R(this.r,G(-this.s),this.recovery):this}toDERRawBytes(){return F0(this.toDERHex())}toDERHex(){return _0.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return F0(this.toCompactHex())}toCompactHex(){return j(this.r)+j(this.s)}}let E={isValidPrivateKey(T){try{return V(T),!0}catch(P){return!1}},normPrivateKeyToScalar:V,randomPrivateKey:()=>{let T=nQ(Q.n);return iY(Q.randomBytes(T),Q.n)},precompute(T=8,P=W.BASE){return P._setWindowSize(T),P.multiply(BigInt(3)),P}};function f(T,P=!0){return W.fromPrivateKey(T).toRawBytes(P)}function C(T){let P=T instanceof Uint8Array,k=typeof T==="string",h=(P||k)&&T.length;if(P)return h===X||h===Z;if(k)return h===2*X||h===2*Z;if(T instanceof W)return!0;return!1}function H(T,P,k=!0){if(C(T))throw Error("first arg must be private key");if(!C(P))throw Error("second arg must be public key");return W.fromHex(P).multiply(V(T)).toRawBytes(k)}let S=Q.bits2int||function(T){let P=X0(T),k=T.length*8-Q.nBitLength;return k>0?P>>BigInt(k):P},A=Q.bits2int_modN||function(T){return G(S(T))},y=V8(Q.nBitLength);function x(T){if(typeof T!=="bigint")throw Error("bigint expected");if(!(Z0<=T&&T<y))throw Error(`bigint expected < 2^${Q.nBitLength}`);return H0(T,Q.nByteLength)}function v(T,P,k=w){if(["recovered","canonical"].some((j0)=>(j0 in k)))throw Error("sign() legacy options not supported");let{hash:h,randomBytes:c}=Q,{lowS:o,prehash:J$,extraEntropy:d}=k;if(o==null)o=!0;if(T=S$("msgHash",T),J$)T=S$("prehashed msgHash",h(T));let L$=A(T),m$=V(P),c$=[x(m$),x(L$)];if(d!=null){let j0=d===!0?c(J.BYTES):d;c$.push(S$("extraEntropy",j0))}let r$=i0(...c$),P8=L$;function PQ(j0){let g0=S(j0);if(!K(g0))return;let wJ=M(g0),u$=W.BASE.multiply(g0).toAffine(),h0=G(u$.x);if(h0===Z0)return;let S8=G(wJ*G(P8+h0*m$));if(S8===Z0)return;let BJ=(u$.x===h0?0:2)|Number(u$.y&A$),AJ=S8;if(o&&I(S8))AJ=O(S8),BJ^=1;return new R(h0,AJ,BJ)}return{seed:r$,k2sig:PQ}}let w={lowS:Q.lowS,prehash:!1},B={lowS:Q.lowS,prehash:!1};function b(T,P,k=w){let{seed:h,k2sig:c}=v(T,P,k),o=Q;return cQ(o.hash.outputLen,o.nByteLength,o.hmac)(h,c)}W.BASE._setWindowSize(8);function F(T,P,k,h=B){let c=T;if(P=S$("msgHash",P),k=S$("publicKey",k),"strict"in h)throw Error("options.strict was renamed to lowS");let{lowS:o,prehash:J$}=h,d=void 0,L$;try{if(typeof c==="string"||c instanceof Uint8Array)try{d=R.fromDER(c)}catch(u$){if(!(u$ instanceof _0.Err))throw u$;d=R.fromCompact(c)}else if(typeof c==="object"&&typeof c.r==="bigint"&&typeof c.s==="bigint"){let{r:u$,s:h0}=c;d=new R(u$,h0)}else throw Error("PARSE");L$=W.fromHex(k)}catch(u$){if(u$.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(o&&d.hasHighS())return!1;if(J$)P=Q.hash(P);let{r:m$,s:c$}=d,r$=A(P),P8=M(c$),PQ=G(r$*P8),j0=G(m$*P8),g0=W.BASE.multiplyAndAddUnsafe(L$,PQ,j0)?.toAffine();if(!g0)return!1;return G(g0.x)===m$}return{CURVE:Q,getPublicKey:f,getSharedSecret:H,sign:b,verify:F,ProjectivePoint:W,Signature:R,utils:E}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function L9($){return{hash:$,hmac:(Q,...J)=>w0($,Q,uJ(...J)),randomBytes:pJ}}function tY($,Q){let J=(Y)=>sY({...$,...L9(Y)});return Object.freeze({...J(Q),create:J})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QX=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),eY=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),N9=BigInt(1),rQ=BigInt(2),$X=($,Q)=>($+Q/rQ)/Q;function C9($){let Q=QX,J=BigInt(3),Y=BigInt(6),X=BigInt(11),Z=BigInt(22),q=BigInt(23),G=BigInt(44),M=BigInt(88),W=$*$*$%Q,V=W*W*$%Q,z=w$(V,J,Q)*V%Q,K=w$(z,J,Q)*V%Q,j=w$(K,rQ,Q)*W%Q,I=w$(j,X,Q)*j%Q,O=w$(I,Z,Q)*I%Q,U=w$(O,G,Q)*O%Q,R=w$(U,M,Q)*U%Q,E=w$(R,G,Q)*O%Q,f=w$(E,J,Q)*V%Q,C=w$(f,q,Q)*I%Q,H=w$(C,Y,Q)*W%Q,S=w$(H,rQ,Q);if(!aQ.eql(aQ.sqr(S),$))throw Error("Cannot find square root");return S}var aQ=nY(QX,void 0,void 0,{sqrt:C9}),q0=tY({a:BigInt(0),b:BigInt(7),Fp:aQ,n:eY,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:($)=>{let Q=eY,J=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-N9*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),X=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),Z=J,q=BigInt("0x100000000000000000000000000000000"),G=$X(Z*$,Q),M=$X(-Y*$,Q),W=T$($-G*J-M*X,Q),V=T$(-G*Y-M*Z,Q),z=W>q,K=V>q;if(z)W=Q-W;if(K)V=Q-V;if(W>q||V>q)throw Error("splitScalar: Endomorphism failed, k="+$);return{k1neg:z,k1:W,k2neg:K,k2:V}}}},e$),p5=BigInt(0);var l5=q0.ProjectivePoint;var sQ="0x0000000000000000000000000000000000000000";var s8="0x0000000000000000000000000000000000000000000000000000000000000000";var tQ=`\x19Ethereum Signed Message:
|
|
3
|
+
`;var JX=BigInt(0),YX=BigInt(1),XX=BigInt(2),ZX=BigInt(27),qX=BigInt(28),t8=BigInt(35),r0={};function GX($){return j$(s($),32)}class $${#$;#Q;#J;#Y;get r(){return this.#$}set r($){D(s$($)===32,"invalid r","value",$),this.#$=L($)}get s(){return D(parseInt(this.#Q.substring(0,3))<8,"non-canonical s; use ._s","s",this.#Q),this.#Q}set s($){D(s$($)===32,"invalid s","value",$),this.#Q=L($)}get _s(){return this.#Q}isValid(){return parseInt(this.#Q.substring(0,3))<8}get v(){return this.#J}set v($){let Q=M$($,"value");D(Q===27||Q===28,"invalid v","v",$),this.#J=Q}get networkV(){return this.#Y}get legacyChainId(){let $=this.networkV;if($==null)return null;return $$.getChainId($)}get yParity(){return this.v===27?0:1}get yParityAndS(){let $=N(this.s);if(this.yParity)$[0]|=128;return L($)}get compactSerialized(){return i([this.r,this.yParityAndS])}get serialized(){return i([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor($,Q,J,Y){a$($,r0,"Signature"),this.#$=Q,this.#Q=J,this.#J=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let $=new $$(r0,this.r,this._s,this.v);if(this.networkV)$.#Y=this.networkV;return $}toJSON(){let $=this.networkV;return{_type:"signature",networkV:$!=null?$.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId($){let Q=u($,"v");if(Q==ZX||Q==qX)return JX;return D(Q>=t8,"invalid EIP-155 v","v",$),(Q-t8)/XX}static getChainIdV($,Q){return u($)*XX+BigInt(35+Q-27)}static getNormalizedV($){let Q=u($);if(Q===JX||Q===ZX)return 27;if(Q===YX||Q===qX)return 28;return D(Q>=t8,"invalid v","v",$),Q&YX?27:28}static from($){function Q(M,W){D(M,W,"signature",$)}if($==null)return new $$(r0,s8,s8,27);if(typeof $==="string"){let M=N($,"signature");if(M.length===64){let W=L(M.slice(0,32)),V=M.slice(32,64),z=V[0]&128?28:27;return V[0]&=127,new $$(r0,W,L(V),z)}if(M.length===65){let W=L(M.slice(0,32)),V=L(M.slice(32,64)),z=$$.getNormalizedV(M[64]);return new $$(r0,W,V,z)}Q(!1,"invalid raw signature length")}if($ instanceof $$)return $.clone();let J=$.r;Q(J!=null,"missing r");let Y=GX(J),X=function(M,W){if(M!=null)return GX(M);if(W!=null){Q(K$(W,32),"invalid yParityAndS");let V=N(W);return V[0]&=127,L(V)}Q(!1,"missing s")}($.s,$.yParityAndS),{networkV:Z,v:q}=function(M,W,V){if(M!=null){let z=u(M);return{networkV:z>=t8?z:void 0,v:$$.getNormalizedV(z)}}if(W!=null)return Q(K$(W,32),"invalid yParityAndS"),{v:N(W)[0]&128?28:27};if(V!=null){switch(M$(V,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}Q(!1,"invalid yParity")}Q(!1,"missing v")}($.v,$.yParityAndS,$.yParity),G=new $$(r0,Y,X,q);if(Z)G.#Y=Z;return Q($.yParity==null||M$($.yParity,"sig.yParity")===G.yParity,"yParity mismatch"),Q($.yParityAndS==null||$.yParityAndS===G.yParityAndS,"yParityAndS mismatch"),G}}class e{#$;constructor($){D(s$($)===32,"invalid private key","privateKey","[REDACTED]"),this.#$=L($)}get privateKey(){return this.#$}get publicKey(){return e.computePublicKey(this.#$)}get compressedPublicKey(){return e.computePublicKey(this.#$,!0)}sign($){D(s$($)===32,"invalid digest length","digest",$);let Q=q0.sign(v$($),v$(this.#$),{lowS:!0});return $$.from({r:y$(Q.r,32),s:y$(Q.s,32),v:Q.recovery?28:27})}computeSharedSecret($){let Q=e.computePublicKey($);return L(q0.getSharedSecret(v$(this.#$),N(Q),!1))}static computePublicKey($,Q){let J=N($,"key");if(J.length===32){let X=q0.getPublicKey(J,!!Q);return L(X)}if(J.length===64){let X=new Uint8Array(65);X[0]=4,X.set(J,1),J=X}let Y=q0.ProjectivePoint.fromHex(J);return L(Y.toRawBytes(Q))}static recoverPublicKey($,Q){D(s$($)===32,"invalid digest length","digest",$);let J=$$.from(Q),Y=q0.Signature.fromCompact(v$(i([J.r,J.s])));Y=Y.addRecoveryBit(J.yParity);let X=Y.recoverPublicKey(v$($));return D(X!=null,"invalid signature for digest","signature",Q),"0x"+X.toHex(!1)}static addPoints($,Q,J){let Y=q0.ProjectivePoint.fromHex(e.computePublicKey($).substring(2)),X=q0.ProjectivePoint.fromHex(e.computePublicKey(Q).substring(2));return"0x"+Y.add(X).toHex(!!J)}}var E9=BigInt(0),j9=BigInt(36);function MX($){$=$.toLowerCase();let Q=$.substring(2).split(""),J=new Uint8Array(40);for(let X=0;X<40;X++)J[X]=Q[X].charCodeAt(0);let Y=N(n(J));for(let X=0;X<40;X+=2){if(Y[X>>1]>>4>=8)Q[X]=Q[X].toUpperCase();if((Y[X>>1]&15)>=8)Q[X+1]=Q[X+1].toUpperCase()}return"0x"+Q.join("")}var eQ={};for(let $=0;$<10;$++)eQ[String($)]=String($);for(let $=0;$<26;$++)eQ[String.fromCharCode(65+$)]=String(10+$);var WX=15;function P9($){$=$.toUpperCase(),$=$.substring(4)+$.substring(0,2)+"00";let Q=$.split("").map((Y)=>{return eQ[Y]}).join("");while(Q.length>=WX){let Y=Q.substring(0,WX);Q=parseInt(Y,10)%97+Q.substring(Y.length)}let J=String(98-parseInt(Q,10)%97);while(J.length<2)J="0"+J;return J}var S9=function(){let $={};for(let Q=0;Q<36;Q++){let J="0123456789abcdefghijklmnopqrstuvwxyz"[Q];$[J]=BigInt(Q)}return $}();function w9($){$=$.toLowerCase();let Q=E9;for(let J=0;J<$.length;J++)Q=Q*j9+S9[$[J]];return Q}function m($){if(D(typeof $==="string","invalid address","address",$),$.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!$.startsWith("0x"))$="0x"+$;let Q=MX($);return D(!$.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||Q===$,"bad address checksum","address",$),Q}if($.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){D($.substring(2,4)===P9($),"bad icap checksum","address",$);let Q=w9($.substring(4)).toString(16);while(Q.length<40)Q="0"+Q;return MX("0x"+Q)}D(!1,"invalid address","address",$)}function QJ($){return $&&typeof $.getAddress==="function"}async function $J($,Q){let J=await Q;if(J==null||J==="0x0000000000000000000000000000000000000000")_(typeof $!=="string","unconfigured name","UNCONFIGURED_NAME",{value:$}),D(!1,"invalid AddressLike value; did not resolve to a value address","target",$);return m(J)}function G0($,Q){if(typeof $==="string"){if($.match(/^0x[0-9a-f]{40}$/i))return m($);return _(Q!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),$J($,Q.resolveName($))}else if(QJ($))return $J($,$.getAddress());else if($&&typeof $.then==="function")return $J($,$);D(!1,"unsupported addressable value","target",$)}function JJ($,Q){return{address:m($),storageKeys:Q.map((J,Y)=>{return D(K$(J,32),"invalid slot",`storageKeys[${Y}]`,J),J.toLowerCase()})}}function L0($){if(Array.isArray($))return $.map((J,Y)=>{if(Array.isArray(J))return D(J.length===2,"invalid slot set",`value[${Y}]`,J),JJ(J[0],J[1]);return D(J!=null&&typeof J==="object","invalid address-slot set","value",$),JJ(J.address,J.storageKeys)});D($!=null&&typeof $==="object","invalid access list","value",$);let Q=Object.keys($).map((J)=>{let Y=$[J].reduce((X,Z)=>{return X[Z]=!0,X},{});return JJ(J,Object.keys(Y).sort())});return Q.sort((J,Y)=>J.address.localeCompare(Y.address)),Q}function YJ($){return{address:m($.address),nonce:u($.nonce!=null?$.nonce:0),chainId:u($.chainId!=null?$.chainId:0),signature:$$.from($.signature)}}function F$($){let Q;if(typeof $==="string")Q=e.computePublicKey($,!1);else Q=$.publicKey;return m(n("0x"+Q.substring(4)).substring(26))}function a0($,Q){return F$(e.recoverPublicKey($,Q))}var V$=BigInt(0),F9=BigInt(2),k9=BigInt(27),_9=BigInt(28),f9=BigInt(35),b9=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),XJ=131072;function x9($){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in $){if("blobToKzgCommitment"in $&&typeof $.blobToKzgCommitment==="function")return N($.blobToKzgCommitment(L(Y)))}else if("blobToKzgCommitment"in $&&typeof $.blobToKzgCommitment==="function")return N($.blobToKzgCommitment(Y));if("blobToKZGCommitment"in $&&typeof $.blobToKZGCommitment==="function")return N($.blobToKZGCommitment(L(Y)));D(!1,"unsupported KZG library","kzg",$)},computeBlobKzgProof:(Y,X)=>{if("computeBlobProof"in $&&typeof $.computeBlobProof==="function")return N($.computeBlobProof(L(Y),L(X)));if("computeBlobKzgProof"in $&&typeof $.computeBlobKzgProof==="function")return $.computeBlobKzgProof(Y,X);if("computeBlobKZGProof"in $&&typeof $.computeBlobKZGProof==="function")return N($.computeBlobKZGProof(L(Y),L(X)));D(!1,"unsupported KZG library","kzg",$)}}}function VX($,Q){let J=$.toString(16);while(J.length<2)J="0"+J;return J+=q$(Q).substring(4),"0x"+J}function s0($){if($==="0x")return null;return m($)}function e8($,Q){try{return L0($)}catch(J){D(!1,J.message,Q,$)}}function v9($,Q){try{if(!Array.isArray($))throw Error("authorizationList: invalid array");let J=[];for(let Y=0;Y<$.length;Y++){let X=$[Y];if(!Array.isArray(X))throw Error(`authorization[${Y}]: invalid array`);if(X.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!X[1])throw Error(`authorization[${Y}]: null address`);J.push({address:s0(X[1]),nonce:r(X[2],"nonce"),chainId:r(X[0],"chainId"),signature:$$.from({yParity:f0(X[3],"yParity"),r:j$(X[4],32),s:j$(X[5],32)})})}return J}catch(J){D(!1,J.message,Q,$)}}function f0($,Q){if($==="0x")return 0;return M$($,Q)}function r($,Q){if($==="0x")return V$;let J=u($,Q);return D(J<=b9,"value exceeds uint size",Q,J),J}function p($,Q){let J=u($,"value"),Y=s(J);return D(Y.length<=32,"value too large",`tx.${Q}`,J),Y}function $Q($){return L0($).map((Q)=>[Q.address,Q.storageKeys])}function y9($){return $.map((Q)=>{return[p(Q.chainId,"chainId"),Q.address,p(Q.nonce,"nonce"),p(Q.signature.yParity,"yParity"),s(Q.signature.r),s(Q.signature.s)]})}function g9($,Q){D(Array.isArray($),`invalid ${Q}`,"value",$);for(let J=0;J<$.length;J++)D(K$($[J],32),"invalid ${ param } hash",`value[${J}]`,$[J]);return $}function h9($){let Q=D0($);D(Array.isArray(Q)&&(Q.length===9||Q.length===6),"invalid field count for legacy transaction","data",$);let J={type:0,nonce:f0(Q[0],"nonce"),gasPrice:r(Q[1],"gasPrice"),gasLimit:r(Q[2],"gasLimit"),to:s0(Q[3]),value:r(Q[4],"value"),data:L(Q[5]),chainId:V$};if(Q.length===6)return J;let Y=r(Q[6],"v"),X=r(Q[7],"r"),Z=r(Q[8],"s");if(X===V$&&Z===V$)J.chainId=Y;else{let q=(Y-f9)/F9;if(q<V$)q=V$;J.chainId=q,D(q!==V$||(Y===k9||Y===_9),"non-canonical legacy v","v",Q[6]),J.signature=$$.from({r:j$(Q[7],32),s:j$(Q[8],32),v:Y})}return J}function m9($,Q){let J=[p($.nonce,"nonce"),p($.gasPrice||0,"gasPrice"),p($.gasLimit,"gasLimit"),$.to||"0x",p($.value,"value"),$.data],Y=V$;if($.chainId!=V$)Y=u($.chainId,"tx.chainId"),D(!Q||Q.networkV==null||Q.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",Q);else if($.signature){let Z=$.signature.legacyChainId;if(Z!=null)Y=Z}if(!Q){if(Y!==V$)J.push(s(Y)),J.push("0x"),J.push("0x");return B$(J)}let X=BigInt(27+Q.yParity);if(Y!==V$)X=$$.getChainIdV(Y,Q.v);else if(BigInt(Q.v)!==X)D(!1,"tx.chainId/sig.v mismatch","sig",Q);return J.push(s(X)),J.push(s(Q.r)),J.push(s(Q.s)),B$(J)}function QQ($,Q){let J;try{if(J=f0(Q[0],"yParity"),J!==0&&J!==1)throw Error("bad yParity")}catch(q){D(!1,"invalid yParity","yParity",Q[0])}let Y=j$(Q[1],32),X=j$(Q[2],32),Z=$$.from({r:Y,s:X,yParity:J});$.signature=Z}function c9($){let Q=D0(N($).slice(1));D(Array.isArray(Q)&&(Q.length===9||Q.length===12),"invalid field count for transaction type: 2","data",L($));let J={type:2,chainId:r(Q[0],"chainId"),nonce:f0(Q[1],"nonce"),maxPriorityFeePerGas:r(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:r(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:r(Q[4],"gasLimit"),to:s0(Q[5]),value:r(Q[6],"value"),data:L(Q[7]),accessList:e8(Q[8],"accessList")};if(Q.length===9)return J;return QQ(J,Q.slice(9)),J}function u9($,Q){let J=[p($.chainId,"chainId"),p($.nonce,"nonce"),p($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),p($.maxFeePerGas||0,"maxFeePerGas"),p($.gasLimit,"gasLimit"),$.to||"0x",p($.value,"value"),$.data,$Q($.accessList||[])];if(Q)J.push(p(Q.yParity,"yParity")),J.push(s(Q.r)),J.push(s(Q.s));return i(["0x02",B$(J)])}function p9($){let Q=D0(N($).slice(1));D(Array.isArray(Q)&&(Q.length===8||Q.length===11),"invalid field count for transaction type: 1","data",L($));let J={type:1,chainId:r(Q[0],"chainId"),nonce:f0(Q[1],"nonce"),gasPrice:r(Q[2],"gasPrice"),gasLimit:r(Q[3],"gasLimit"),to:s0(Q[4]),value:r(Q[5],"value"),data:L(Q[6]),accessList:e8(Q[7],"accessList")};if(Q.length===8)return J;return QQ(J,Q.slice(8)),J}function l9($,Q){let J=[p($.chainId,"chainId"),p($.nonce,"nonce"),p($.gasPrice||0,"gasPrice"),p($.gasLimit,"gasLimit"),$.to||"0x",p($.value,"value"),$.data,$Q($.accessList||[])];if(Q)J.push(p(Q.yParity,"recoveryParam")),J.push(s(Q.r)),J.push(s(Q.s));return i(["0x01",B$(J)])}function d9($){let Q=D0(N($).slice(1)),J="3",Y=null;if(Q.length===4&&Array.isArray(Q[0])){J="3 (network format)";let Z=Q[1],q=Q[2],G=Q[3];D(Array.isArray(Z),"invalid network format: blobs not an array","fields[1]",Z),D(Array.isArray(q),"invalid network format: commitments not an array","fields[2]",q),D(Array.isArray(G),"invalid network format: proofs not an array","fields[3]",G),D(Z.length===q.length,"invalid network format: blobs/commitments length mismatch","fields",Q),D(Z.length===G.length,"invalid network format: blobs/proofs length mismatch","fields",Q),Y=[];for(let M=0;M<Q[1].length;M++)Y.push({data:Z[M],commitment:q[M],proof:G[M]});Q=Q[0]}D(Array.isArray(Q)&&(Q.length===11||Q.length===14),`invalid field count for transaction type: ${J}`,"data",L($));let X={type:3,chainId:r(Q[0],"chainId"),nonce:f0(Q[1],"nonce"),maxPriorityFeePerGas:r(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:r(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:r(Q[4],"gasLimit"),to:s0(Q[5]),value:r(Q[6],"value"),data:L(Q[7]),accessList:e8(Q[8],"accessList"),maxFeePerBlobGas:r(Q[9],"maxFeePerBlobGas"),blobVersionedHashes:Q[10]};if(Y)X.blobs=Y;D(X.to!=null,`invalid address for transaction type: ${J}`,"data",$),D(Array.isArray(X.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",$);for(let Z=0;Z<X.blobVersionedHashes.length;Z++)D(K$(X.blobVersionedHashes[Z],32),`invalid blobVersionedHash at index ${Z}: must be length 32`,"data",$);if(Q.length===11)return X;return QQ(X,Q.slice(11)),X}function n9($,Q,J){let Y=[p($.chainId,"chainId"),p($.nonce,"nonce"),p($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),p($.maxFeePerGas||0,"maxFeePerGas"),p($.gasLimit,"gasLimit"),$.to||sQ,p($.value,"value"),$.data,$Q($.accessList||[]),p($.maxFeePerBlobGas||0,"maxFeePerBlobGas"),g9($.blobVersionedHashes||[],"blobVersionedHashes")];if(Q){if(Y.push(p(Q.yParity,"yParity")),Y.push(s(Q.r)),Y.push(s(Q.s)),J)return i(["0x03",B$([Y,J.map((X)=>X.data),J.map((X)=>X.commitment),J.map((X)=>X.proof)])])}return i(["0x03",B$(Y)])}function o9($){let Q=D0(N($).slice(1));D(Array.isArray(Q)&&(Q.length===10||Q.length===13),"invalid field count for transaction type: 4","data",L($));let J={type:4,chainId:r(Q[0],"chainId"),nonce:f0(Q[1],"nonce"),maxPriorityFeePerGas:r(Q[2],"maxPriorityFeePerGas"),maxFeePerGas:r(Q[3],"maxFeePerGas"),gasPrice:null,gasLimit:r(Q[4],"gasLimit"),to:s0(Q[5]),value:r(Q[6],"value"),data:L(Q[7]),accessList:e8(Q[8],"accessList"),authorizationList:v9(Q[9],"authorizationList")};if(Q.length===10)return J;return QQ(J,Q.slice(10)),J}function i9($,Q){let J=[p($.chainId,"chainId"),p($.nonce,"nonce"),p($.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),p($.maxFeePerGas||0,"maxFeePerGas"),p($.gasLimit,"gasLimit"),$.to||"0x",p($.value,"value"),$.data,$Q($.accessList||[]),y9($.authorizationList||[])];if(Q)J.push(p(Q.yParity,"yParity")),J.push(s(Q.r)),J.push(s(Q.s));return i(["0x04",B$(J)])}class R${#$;#Q;#J;#Y;#M;#W;#V;#z;#D;#I;#K;#O;#G;#Z;#X;#q;#T;get type(){return this.#$}set type($){switch($){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;case 4:case"pectra":case"eip-7702":this.#$=4;break;default:D(!1,"unsupported transaction type","type",$)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let $=this.#Q;if($==null&&this.type===3)return sQ;return $}set to($){this.#Q=$==null?null:m($)}get nonce(){return this.#Y}set nonce($){this.#Y=M$($,"value")}get gasLimit(){return this.#M}set gasLimit($){this.#M=u($)}get gasPrice(){let $=this.#W;if($==null&&(this.type===0||this.type===1))return V$;return $}set gasPrice($){this.#W=$==null?null:u($,"gasPrice")}get maxPriorityFeePerGas(){let $=this.#V;if($==null){if(this.type===2||this.type===3)return V$;return null}return $}set maxPriorityFeePerGas($){this.#V=$==null?null:u($,"maxPriorityFeePerGas")}get maxFeePerGas(){let $=this.#z;if($==null){if(this.type===2||this.type===3)return V$;return null}return $}set maxFeePerGas($){this.#z=$==null?null:u($,"maxFeePerGas")}get data(){return this.#J}set data($){this.#J=L($)}get value(){return this.#D}set value($){this.#D=u($,"value")}get chainId(){return this.#I}set chainId($){this.#I=u($)}get signature(){return this.#K||null}set signature($){this.#K=$==null?null:$$.from($)}get accessList(){let $=this.#O||null;if($==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return $}set accessList($){this.#O=$==null?null:L0($)}get authorizationList(){let $=this.#T||null;if($==null){if(this.type===4)return[]}return $}set authorizationList($){this.#T=$==null?null:$.map((Q)=>YJ(Q))}get maxFeePerBlobGas(){let $=this.#G;if($==null&&this.type===3)return V$;return $}set maxFeePerBlobGas($){this.#G=$==null?null:u($,"maxFeePerBlobGas")}get blobVersionedHashes(){let $=this.#Z;if($==null&&this.type===3)return[];return $}set blobVersionedHashes($){if($!=null){D(Array.isArray($),"blobVersionedHashes must be an Array","value",$),$=$.slice();for(let Q=0;Q<$.length;Q++)D(K$($[Q],32),"invalid blobVersionedHash",`value[${Q}]`,$[Q])}this.#Z=$}get blobs(){if(this.#q==null)return null;return this.#q.map(($)=>Object.assign({},$))}set blobs($){if($==null){this.#q=null;return}let Q=[],J=[];for(let Y=0;Y<$.length;Y++){let X=$[Y];if(l$(X)){_(this.#X,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let Z=N(X);if(D(Z.length<=XJ,"blob is too large",`blobs[${Y}]`,X),Z.length!==XJ){let M=new Uint8Array(XJ);M.set(Z),Z=M}let q=this.#X.blobToKzgCommitment(Z),G=L(this.#X.computeBlobKzgProof(Z,q));Q.push({data:L(Z),commitment:L(q),proof:G}),J.push(VX(1,q))}else{let Z=L(X.commitment);Q.push({data:L(X.data),commitment:Z,proof:L(X.proof)}),J.push(VX(1,Z))}}this.#q=Q,this.#Z=J}get kzg(){return this.#X}set kzg($){if($==null)this.#X=null;else this.#X=x9($)}constructor(){this.#$=null,this.#Q=null,this.#Y=0,this.#M=V$,this.#W=null,this.#V=null,this.#z=null,this.#J="0x",this.#D=V$,this.#I=V$,this.#K=null,this.#O=null,this.#G=null,this.#Z=null,this.#X=null,this.#q=null,this.#T=null}get hash(){if(this.signature==null)return null;return n(this.#U(!0,!1))}get unsignedHash(){return n(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return a0(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return e.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#U($,Q){_(!$||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let J=$?this.signature:null;switch(this.inferType()){case 0:return m9(this,J);case 1:return l9(this,J);case 2:return u9(this,J);case 3:return n9(this,J,Q?this.blobs:null);case 4:return i9(this,J)}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#U(!0,!0)}get unsignedSerialized(){return this.#U(!1,!1)}inferType(){let $=this.inferTypes();if($.indexOf(2)>=0)return 2;return $.pop()}inferTypes(){let $=this.gasPrice!=null,Q=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,J=this.accessList!=null,Y=this.#G!=null||this.#Z;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)_(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});_(!Q||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),_(this.type!==0||!J,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let X=[];if(this.type!=null)X.push(this.type);else if(this.authorizationList&&this.authorizationList.length)X.push(4);else if(Q)X.push(2);else if($){if(X.push(1),!J)X.push(0)}else if(J)X.push(1),X.push(2);else if(Y&&this.to)X.push(3);else X.push(0),X.push(1),X.push(2),X.push(3);return X.sort(),X}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return R$.from(this)}toJSON(){let $=(Q)=>{if(Q==null)return null;return Q.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:$(this.gasLimit),gasPrice:$(this.gasPrice),maxPriorityFeePerGas:$(this.maxPriorityFeePerGas),maxFeePerGas:$(this.maxFeePerGas),value:$(this.value),chainId:$(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from($){if($==null)return new R$;if(typeof $==="string"){let J=N($);if(J[0]>=127)return R$.from(h9(J));switch(J[0]){case 1:return R$.from(p9(J));case 2:return R$.from(c9(J));case 3:return R$.from(d9(J));case 4:return R$.from(o9(J))}_(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let Q=new R$;if($.type!=null)Q.type=$.type;if($.to!=null)Q.to=$.to;if($.nonce!=null)Q.nonce=$.nonce;if($.gasLimit!=null)Q.gasLimit=$.gasLimit;if($.gasPrice!=null)Q.gasPrice=$.gasPrice;if($.maxPriorityFeePerGas!=null)Q.maxPriorityFeePerGas=$.maxPriorityFeePerGas;if($.maxFeePerGas!=null)Q.maxFeePerGas=$.maxFeePerGas;if($.maxFeePerBlobGas!=null)Q.maxFeePerBlobGas=$.maxFeePerBlobGas;if($.data!=null)Q.data=$.data;if($.value!=null)Q.value=$.value;if($.chainId!=null)Q.chainId=$.chainId;if($.signature!=null)Q.signature=$$.from($.signature);if($.accessList!=null)Q.accessList=$.accessList;if($.authorizationList!=null)Q.authorizationList=$.authorizationList;if($.blobVersionedHashes!=null)Q.blobVersionedHashes=$.blobVersionedHashes;if($.kzg!=null)Q.kzg=$.kzg;if($.blobs!=null)Q.blobs=$.blobs;if($.hash!=null)D(Q.isSigned(),"unsigned transaction cannot define '.hash'","tx",$),D(Q.hash===$.hash,"hash mismatch","tx",$);if($.from!=null)D(Q.isSigned(),"unsigned transaction cannot define '.from'","tx",$),D(Q.from.toLowerCase()===($.from||"").toLowerCase(),"from mismatch","tx",$);return Q}}function JQ($){return D(typeof $.address==="string","invalid address for hashAuthorization","auth.address",$),n(i(["0x05",B$([$.chainId!=null?s($.chainId):"0x",m($.address),$.nonce!=null?s($.nonce):"0x"])]))}function M0($){return n(W$($))}function z8($){if(typeof $==="string")$=W$($);return n(i([W$(tQ),W$(String($.length)),$]))}function D8($,Q){let J=z8($);return a0(J,Q)}var KX=new Uint8Array(32);KX.fill(0);var r9=BigInt(-1),OX=BigInt(0),TX=BigInt(1),a9=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function s9($){let Q=N($),J=Q.length%32;if(J)return i([Q,KX.slice(J)]);return L(Q)}var t9=y$(TX,32),e9=y$(OX,32),zX={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},ZJ=["name","version","chainId","verifyingContract","salt"];function DX($){return function(Q){return D(typeof Q==="string",`invalid domain value for ${JSON.stringify($)}`,`domain.${$}`,Q),Q}}var $q={name:DX("name"),version:DX("version"),chainId:function($){let Q=u($,"domain.chainId");if(D(Q>=0,"invalid chain ID","domain.chainId",$),Number.isSafeInteger(Q))return Number(Q);return k8(Q)},verifyingContract:function($){try{return m($).toLowerCase()}catch(Q){}D(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",$)},salt:function($){let Q=N($,"domain.salt");return D(Q.length===32,'invalid domain value "salt"',"domain.salt",$),L(Q)}};function qJ($){{let Q=$.match(/^(u?)int(\d+)$/);if(Q){let J=Q[1]==="",Y=parseInt(Q[2]);D(Y%8===0&&Y!==0&&Y<=256&&Q[2]===String(Y),"invalid numeric width","type",$);let X=F8(a9,J?Y-1:Y),Z=J?(X+TX)*r9:OX;return function(q){let G=u(q,"value");return D(G>=Z&&G<=X,`value out-of-bounds for ${$}`,"value",G),y$(J?A8(G,256):G,32)}}}{let Q=$.match(/^bytes(\d+)$/);if(Q){let J=parseInt(Q[1]);return D(J!==0&&J<=32&&Q[1]===String(J),"invalid bytes width","type",$),function(Y){let X=N(Y);return D(X.length===J,`invalid length for ${$}`,"value",Y),s9(Y)}}}switch($){case"address":return function(Q){return j$(m(Q),32)};case"bool":return function(Q){return!Q?e9:t9};case"bytes":return function(Q){return n(Q)};case"string":return function(Q){return M0(Q)}}return null}function IX($,Q){return`${$}(${Q.map(({name:J,type:Y})=>Y+" "+J).join(",")})`}function YQ($){let Q=$.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(Q)return{base:Q[1],index:Q[2]+Q[4],array:{base:Q[1],prefix:Q[1]+Q[2],count:Q[5]?parseInt(Q[5]):-1}};return{base:$}}class U${primaryType;#$;get types(){return JSON.parse(this.#$)}#Q;#J;constructor($){this.#Q=new Map,this.#J=new Map;let Q=new Map,J=new Map,Y=new Map,X={};Object.keys($).forEach((G)=>{X[G]=$[G].map(({name:M,type:W})=>{let{base:V,index:z}=YQ(W);if(V==="int"&&!$.int)V="int256";if(V==="uint"&&!$.uint)V="uint256";return{name:M,type:V+(z||"")}}),Q.set(G,new Set),J.set(G,[]),Y.set(G,new Set)}),this.#$=JSON.stringify(X);for(let G in X){let M=new Set;for(let W of X[G]){D(!M.has(W.name),`duplicate variable name ${JSON.stringify(W.name)} in ${JSON.stringify(G)}`,"types",$),M.add(W.name);let V=YQ(W.type).base;if(D(V!==G,`circular type reference to ${JSON.stringify(V)}`,"types",$),qJ(V))continue;D(J.has(V),`unknown type ${JSON.stringify(V)}`,"types",$),J.get(V).push(G),Q.get(G).add(V)}}let Z=Array.from(J.keys()).filter((G)=>J.get(G).length===0);D(Z.length!==0,"missing primary type","types",$),D(Z.length===1,`ambiguous primary types or unused types: ${Z.map((G)=>JSON.stringify(G)).join(", ")}`,"types",$),a(this,{primaryType:Z[0]});function q(G,M){D(!M.has(G),`circular type reference to ${JSON.stringify(G)}`,"types",$),M.add(G);for(let W of Q.get(G)){if(!J.has(W))continue;q(W,M);for(let V of M)Y.get(V).add(W)}M.delete(G)}q(this.primaryType,new Set);for(let[G,M]of Y){let W=Array.from(M);W.sort(),this.#Q.set(G,IX(G,X[G])+W.map((V)=>IX(V,X[V])).join(""))}}getEncoder($){let Q=this.#J.get($);if(!Q)Q=this.#Y($),this.#J.set($,Q);return Q}#Y($){{let Y=qJ($);if(Y)return Y}let Q=YQ($).array;if(Q){let Y=Q.prefix,X=this.getEncoder(Y);return(Z)=>{D(Q.count===-1||Q.count===Z.length,`array length mismatch; expected length ${Q.count}`,"value",Z);let q=Z.map(X);if(this.#Q.has(Y))q=q.map(n);return n(i(q))}}let J=this.types[$];if(J){let Y=M0(this.#Q.get($));return(X)=>{let Z=J.map(({name:q,type:G})=>{let M=this.getEncoder(G)(X[q]);if(this.#Q.has(G))return n(M);return M});return Z.unshift(Y),i(Z)}}D(!1,`unknown type: ${$}`,"type",$)}encodeType($){let Q=this.#Q.get($);return D(Q,`unknown type: ${JSON.stringify($)}`,"name",$),Q}encodeData($,Q){return this.getEncoder($)(Q)}hashStruct($,Q){return n(this.encodeData($,Q))}encode($){return this.encodeData(this.primaryType,$)}hash($){return this.hashStruct(this.primaryType,$)}_visit($,Q,J){if(qJ($))return J($,Q);let Y=YQ($).array;if(Y)return D(Y.count===-1||Y.count===Q.length,`array length mismatch; expected length ${Y.count}`,"value",Q),Q.map((Z)=>this._visit(Y.prefix,Z,J));let X=this.types[$];if(X)return X.reduce((Z,{name:q,type:G})=>{return Z[q]=this._visit(G,Q[q],J),Z},{});D(!1,`unknown type: ${$}`,"type",$)}visit($,Q){return this._visit(this.primaryType,$,Q)}static from($){return new U$($)}static getPrimaryType($){return U$.from($).primaryType}static hashStruct($,Q,J){return U$.from(Q).hashStruct($,J)}static hashDomain($){let Q=[];for(let J in $){if($[J]==null)continue;let Y=zX[J];D(Y,`invalid typed-data domain key: ${JSON.stringify(J)}`,"domain",$),Q.push({name:J,type:Y})}return Q.sort((J,Y)=>{return ZJ.indexOf(J.name)-ZJ.indexOf(Y.name)}),U$.hashStruct("EIP712Domain",{EIP712Domain:Q},$)}static encode($,Q,J){return i(["0x1901",U$.hashDomain($),U$.from(Q).hash(J)])}static hash($,Q,J){return n(U$.encode($,Q,J))}static async resolveNames($,Q,J,Y){$=Object.assign({},$);for(let q in $)if($[q]==null)delete $[q];let X={};if($.verifyingContract&&!K$($.verifyingContract,20))X[$.verifyingContract]="0x";let Z=U$.from(Q);Z.visit(J,(q,G)=>{if(q==="address"&&!K$(G,20))X[G]="0x";return G});for(let q in X)X[q]=await Y(q);if($.verifyingContract&&X[$.verifyingContract])$.verifyingContract=X[$.verifyingContract];return J=Z.visit(J,(q,G)=>{if(q==="address"&&X[G])return X[G];return G}),{domain:$,value:J}}static getPayload($,Q,J){U$.hashDomain($);let Y={},X=[];ZJ.forEach((G)=>{let M=$[G];if(M==null)return;Y[G]=$q[G](M),X.push({name:G,type:zX[G]})});let Z=U$.from(Q);Q=Z.types;let q=Object.assign({},Q);return D(q.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",Q),q.EIP712Domain=X,Z.encode(J),{types:q,domain:Y,primaryType:Z.primaryType,message:Z.visit(J,(G,M)=>{if(G.match(/^bytes(\d*)/))return L(N(M));if(G.match(/^u?int/))return u(M).toString();switch(G){case"address":return M.toLowerCase();case"bool":return!!M;case"string":return D(typeof M==="string","invalid string","value",M),M}D(!1,"unsupported type","type",G)})}}}var UX=BigInt(0);function GJ($){if($==null)return null;return $}function z$($){if($==null)return null;return $.toString()}function I8($){let Q={};if($.to)Q.to=$.to;if($.from)Q.from=$.from;if($.data)Q.data=L($.data);let J="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let X of J){if(!(X in $)||$[X]==null)continue;Q[X]=u($[X],`request.${X}`)}let Y="type,nonce".split(/,/);for(let X of Y){if(!(X in $)||$[X]==null)continue;Q[X]=M$($[X],`request.${X}`)}if($.accessList)Q.accessList=L0($.accessList);if($.authorizationList)Q.authorizationList=$.authorizationList.slice();if("blockTag"in $)Q.blockTag=$.blockTag;if("enableCcipRead"in $)Q.enableCcipRead=!!$.enableCcipRead;if("customData"in $)Q.customData=$.customData;if("blobVersionedHashes"in $&&$.blobVersionedHashes)Q.blobVersionedHashes=$.blobVersionedHashes.slice();if("kzg"in $)Q.kzg=$.kzg;if("blobs"in $&&$.blobs)Q.blobs=$.blobs.map((X)=>{if(l$(X))return L(X);return Object.assign({},X)});return Q}class HX{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#$;constructor($,Q){this.#$=$.transactions.map((J)=>{if(typeof J!=="string")return new XQ(J,Q);return J}),a(this,{provider:Q,hash:GJ($.hash),number:$.number,timestamp:$.timestamp,parentHash:$.parentHash,parentBeaconBlockRoot:$.parentBeaconBlockRoot,nonce:$.nonce,difficulty:$.difficulty,gasLimit:$.gasLimit,gasUsed:$.gasUsed,blobGasUsed:$.blobGasUsed,excessBlobGas:$.excessBlobGas,miner:$.miner,prevRandao:GJ($.prevRandao),extraData:$.extraData,baseFeePerGas:GJ($.baseFeePerGas),stateRoot:$.stateRoot,receiptsRoot:$.receiptsRoot})}get transactions(){return this.#$.map(($)=>{if(typeof $==="string")return $;return $.hash})}get prefetchedTransactions(){let $=this.#$.slice();if($.length===0)return[];return _(typeof $[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),$}toJSON(){let{baseFeePerGas:$,difficulty:Q,extraData:J,gasLimit:Y,gasUsed:X,hash:Z,miner:q,prevRandao:G,nonce:M,number:W,parentHash:V,parentBeaconBlockRoot:z,stateRoot:K,receiptsRoot:j,timestamp:I,transactions:O}=this;return{_type:"Block",baseFeePerGas:z$($),difficulty:z$(Q),extraData:J,gasLimit:z$(Y),gasUsed:z$(X),blobGasUsed:z$(this.blobGasUsed),excessBlobGas:z$(this.excessBlobGas),hash:Z,miner:q,prevRandao:G,nonce:M,number:W,parentHash:V,timestamp:I,parentBeaconBlockRoot:z,stateRoot:K,receiptsRoot:j,transactions:O}}[Symbol.iterator](){let $=0,Q=this.transactions;return{next:()=>{if($<this.length)return{value:Q[$++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#$.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction($){let Q=void 0;if(typeof $==="number")Q=this.#$[$];else{let J=$.toLowerCase();for(let Y of this.#$)if(typeof Y==="string"){if(Y!==J)continue;Q=Y;break}else{if(Y.hash!==J)continue;Q=Y;break}}if(Q==null)throw Error("no such tx");if(typeof Q==="string")return await this.provider.getTransaction(Q);else return Q}getPrefetchedTransaction($){let Q=this.prefetchedTransactions;if(typeof $==="number")return Q[$];$=$.toLowerCase();for(let J of Q)if(J.hash===$)return J;D(!1,"no matching transaction","indexOrHash",$)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return Yq(this)}}class MJ{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor($,Q){this.provider=Q;let J=Object.freeze($.topics.slice());a(this,{transactionHash:$.transactionHash,blockHash:$.blockHash,blockNumber:$.blockNumber,removed:$.removed,address:$.address,data:$.data,topics:J,index:$.index,transactionIndex:$.transactionIndex})}toJSON(){let{address:$,blockHash:Q,blockNumber:J,data:Y,index:X,removed:Z,topics:q,transactionHash:G,transactionIndex:M}=this;return{_type:"log",address:$,blockHash:Q,blockNumber:J,data:Y,index:X,removed:Z,topics:q,transactionHash:G,transactionIndex:M}}async getBlock(){let $=await this.provider.getBlock(this.blockHash);return _(!!$,"failed to find transaction","UNKNOWN_ERROR",{}),$}async getTransaction(){let $=await this.provider.getTransaction(this.transactionHash);return _(!!$,"failed to find transaction","UNKNOWN_ERROR",{}),$}async getTransactionReceipt(){let $=await this.provider.getTransactionReceipt(this.transactionHash);return _(!!$,"failed to find transaction receipt","UNKNOWN_ERROR",{}),$}removedEvent(){return Xq(this)}}class RX{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#$;constructor($,Q){this.#$=Object.freeze($.logs.map((Y)=>{return new MJ(Y,Q)}));let J=UX;if($.effectiveGasPrice!=null)J=$.effectiveGasPrice;else if($.gasPrice!=null)J=$.gasPrice;a(this,{provider:Q,to:$.to,from:$.from,contractAddress:$.contractAddress,hash:$.hash,index:$.index,blockHash:$.blockHash,blockNumber:$.blockNumber,logsBloom:$.logsBloom,gasUsed:$.gasUsed,cumulativeGasUsed:$.cumulativeGasUsed,blobGasUsed:$.blobGasUsed,gasPrice:J,blobGasPrice:$.blobGasPrice,type:$.type,status:$.status,root:$.root})}get logs(){return this.#$}toJSON(){let{to:$,from:Q,contractAddress:J,hash:Y,index:X,blockHash:Z,blockNumber:q,logsBloom:G,logs:M,status:W,root:V}=this;return{_type:"TransactionReceipt",blockHash:Z,blockNumber:q,contractAddress:J,cumulativeGasUsed:z$(this.cumulativeGasUsed),from:Q,gasPrice:z$(this.gasPrice),blobGasUsed:z$(this.blobGasUsed),blobGasPrice:z$(this.blobGasPrice),gasUsed:z$(this.gasUsed),hash:Y,index:X,logs:M,logsBloom:G,root:V,status:W,to:$}}get length(){return this.logs.length}[Symbol.iterator](){let $=0;return{next:()=>{if($<this.length)return{value:this.logs[$++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let $=await this.provider.getBlock(this.blockHash);if($==null)throw Error("TODO");return $}async getTransaction(){let $=await this.provider.getTransaction(this.hash);if($==null)throw Error("TODO");return $}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return NX(this)}reorderedEvent($){return _(!$||$.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),LX(this,$)}}class XQ{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#$;constructor($,Q){this.provider=Q,this.blockNumber=$.blockNumber!=null?$.blockNumber:null,this.blockHash=$.blockHash!=null?$.blockHash:null,this.hash=$.hash,this.index=$.index,this.type=$.type,this.from=$.from,this.to=$.to||null,this.gasLimit=$.gasLimit,this.nonce=$.nonce,this.data=$.data,this.value=$.value,this.gasPrice=$.gasPrice,this.maxPriorityFeePerGas=$.maxPriorityFeePerGas!=null?$.maxPriorityFeePerGas:null,this.maxFeePerGas=$.maxFeePerGas!=null?$.maxFeePerGas:null,this.maxFeePerBlobGas=$.maxFeePerBlobGas!=null?$.maxFeePerBlobGas:null,this.chainId=$.chainId,this.signature=$.signature,this.accessList=$.accessList!=null?$.accessList:null,this.blobVersionedHashes=$.blobVersionedHashes!=null?$.blobVersionedHashes:null,this.authorizationList=$.authorizationList!=null?$.authorizationList:null,this.#$=-1}toJSON(){let{blockNumber:$,blockHash:Q,index:J,hash:Y,type:X,to:Z,from:q,nonce:G,data:M,signature:W,accessList:V,blobVersionedHashes:z}=this;return{_type:"TransactionResponse",accessList:V,blockNumber:$,blockHash:Q,blobVersionedHashes:z,chainId:z$(this.chainId),data:M,from:q,gasLimit:z$(this.gasLimit),gasPrice:z$(this.gasPrice),hash:Y,maxFeePerGas:z$(this.maxFeePerGas),maxPriorityFeePerGas:z$(this.maxPriorityFeePerGas),maxFeePerBlobGas:z$(this.maxFeePerBlobGas),nonce:G,signature:W,to:Z,index:J,type:X,value:z$(this.value)}}async getBlock(){let $=this.blockNumber;if($==null){let J=await this.getTransaction();if(J)$=J.blockNumber}if($==null)return null;let Q=this.provider.getBlock($);if(Q==null)throw Error("TODO");return Q}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:Q,blockNumber:J}=await p$({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(Q==null||Q.blockNumber==null)return 0;return J-Q.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait($,Q){let J=$==null?1:$,Y=Q==null?0:Q,X=this.#$,Z=-1,q=X===-1?!0:!1,G=async()=>{if(q)return null;let{blockNumber:z,nonce:K}=await p$({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(K<this.nonce){X=z;return}if(q)return null;let j=await this.getTransaction();if(j&&j.blockNumber!=null)return;if(Z===-1){if(Z=X-3,Z<this.#$)Z=this.#$}while(Z<=z){if(q)return null;let I=await this.provider.getBlock(Z,!0);if(I==null)return;for(let O of I)if(O===this.hash)return;for(let O=0;O<I.length;O++){let U=await I.getTransaction(O);if(U.from===this.from&&U.nonce===this.nonce){if(q)return null;let R=await this.provider.getTransactionReceipt(U.hash);if(R==null)return;if(z-R.blockNumber+1<J)return;let E="replaced";if(U.data===this.data&&U.to===this.to&&U.value===this.value)E="repriced";else if(U.data==="0x"&&U.from===U.to&&U.value===UX)E="cancelled";_(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:E==="replaced"||E==="cancelled",reason:E,replacement:U.replaceableTransaction(X),hash:U.hash,receipt:R})}}Z++}return},M=(z)=>{if(z==null||z.status!==0)return z;_(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:z.to,from:z.from,data:""},receipt:z})},W=await this.provider.getTransactionReceipt(this.hash);if(J===0)return M(W);if(W){if(J===1||await W.confirmations()>=J)return M(W)}else if(await G(),J===0)return null;return await new Promise((z,K)=>{let j=[],I=()=>{j.forEach((U)=>U())};if(j.push(()=>{q=!0}),Y>0){let U=setTimeout(()=>{I(),K(X8("wait for transaction timeout","TIMEOUT"))},Y);j.push(()=>{clearTimeout(U)})}let O=async(U)=>{if(await U.confirmations()>=J){I();try{z(M(U))}catch(R){K(R)}}};if(j.push(()=>{this.provider.off(this.hash,O)}),this.provider.on(this.hash,O),X>=0){let U=async()=>{try{await G()}catch(R){if(B8(R,"TRANSACTION_REPLACED")){I(),K(R);return}}if(!q)this.provider.once("block",U)};j.push(()=>{this.provider.off("block",U)}),this.provider.once("block",U)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),NX(this)}reorderedEvent($){return _(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),_(!$||$.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),LX(this,$)}replaceableTransaction($){D(Number.isInteger($)&&$>=0,"invalid startBlock","startBlock",$);let Q=new XQ(this,this.provider);return Q.#$=$,Q}}function Yq($){return{orphan:"drop-block",hash:$.hash,number:$.number}}function LX($,Q){return{orphan:"reorder-transaction",tx:$,other:Q}}function NX($){return{orphan:"drop-transaction",tx:$}}function Xq($){return{orphan:"drop-log",log:{transactionHash:$.transactionHash,blockHash:$.blockHash,blockNumber:$.blockNumber,address:$.address,data:$.data,topics:Object.freeze($.topics.slice()),index:$.index}}}function b0($,Q){if($.provider)return $.provider;_(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:Q})}async function CX($,Q){let J=I8(Q);if(J.to!=null)J.to=G0(J.to,$);if(J.from!=null){let Y=J.from;J.from=Promise.all([$.getAddress(),G0(Y,$)]).then(([X,Z])=>{return D(X.toLowerCase()===Z.toLowerCase(),"transaction from mismatch","tx.from",Z),X})}else J.from=$.getAddress();return await p$(J)}class K8{provider;constructor($){a(this,{provider:$||null})}async getNonce($){return b0(this,"getTransactionCount").getTransactionCount(await this.getAddress(),$)}async populateCall($){return await CX(this,$)}async populateTransaction($){let Q=b0(this,"populateTransaction"),J=await CX(this,$);if(J.nonce==null)J.nonce=await this.getNonce("pending");if(J.gasLimit==null)J.gasLimit=await this.estimateGas(J);let Y=await this.provider.getNetwork();if(J.chainId!=null){let Z=u(J.chainId);D(Z===Y.chainId,"transaction chainId mismatch","tx.chainId",$.chainId)}else J.chainId=Y.chainId;let X=J.maxFeePerGas!=null||J.maxPriorityFeePerGas!=null;if(J.gasPrice!=null&&(J.type===2||X))D(!1,"eip-1559 transaction do not support gasPrice","tx",$);else if((J.type===0||J.type===1)&&X)D(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",$);if((J.type===2||J.type==null)&&(J.maxFeePerGas!=null&&J.maxPriorityFeePerGas!=null))J.type=2;else if(J.type===0||J.type===1){let Z=await Q.getFeeData();if(_(Z.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),J.gasPrice==null)J.gasPrice=Z.gasPrice}else{let Z=await Q.getFeeData();if(J.type==null)if(Z.maxFeePerGas!=null&&Z.maxPriorityFeePerGas!=null){if(J.authorizationList&&J.authorizationList.length)J.type=4;else J.type=2;if(J.gasPrice!=null){let q=J.gasPrice;delete J.gasPrice,J.maxFeePerGas=q,J.maxPriorityFeePerGas=q}else{if(J.maxFeePerGas==null)J.maxFeePerGas=Z.maxFeePerGas;if(J.maxPriorityFeePerGas==null)J.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}else if(Z.gasPrice!=null){if(_(!X,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),J.gasPrice==null)J.gasPrice=Z.gasPrice;J.type=0}else _(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(J.type===2||J.type===3||J.type===4){if(J.maxFeePerGas==null)J.maxFeePerGas=Z.maxFeePerGas;if(J.maxPriorityFeePerGas==null)J.maxPriorityFeePerGas=Z.maxPriorityFeePerGas}}return await p$(J)}async populateAuthorization($){let Q=Object.assign({},$);if(Q.chainId==null)Q.chainId=(await b0(this,"getNetwork").getNetwork()).chainId;if(Q.nonce==null)Q.nonce=await this.getNonce();return Q}async estimateGas($){return b0(this,"estimateGas").estimateGas(await this.populateCall($))}async call($){return b0(this,"call").call(await this.populateCall($))}async resolveName($){return await b0(this,"resolveName").resolveName($)}async sendTransaction($){let Q=b0(this,"sendTransaction"),J=await this.populateTransaction($);delete J.from;let Y=R$.from(J);return await Q.broadcastTransaction(await this.signTransaction(Y))}authorize($){_(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class O8 extends K8{address;constructor($,Q){super(Q);a(this,{address:$})}async getAddress(){return this.address}connect($){return new O8(this.address,$)}#$($,Q){_(!1,`VoidSigner cannot sign ${$}`,"UNSUPPORTED_OPERATION",{operation:Q})}async signTransaction($){this.#$("transactions","signTransaction")}async signMessage($){this.#$("messages","signMessage")}async signTypedData($,Q,J){this.#$("typed-data","signTypedData")}}class x0 extends K8{address;#$;constructor($,Q){super(Q);D($&&typeof $.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#$=$;let J=F$(this.signingKey.publicKey);a(this,{address:J})}get signingKey(){return this.#$}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect($){return new x0(this.#$,$)}async signTransaction($){$=I8($);let{to:Q,from:J}=await p$({to:$.to?G0($.to,this):void 0,from:$.from?G0($.from,this):void 0});if(Q!=null)$.to=Q;if(J!=null)$.from=J;if($.from!=null)D(m($.from)===this.address,"transaction from address mismatch","tx.from",$.from),delete $.from;let Y=R$.from($);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage($){return this.signMessageSync($)}signMessageSync($){return this.signingKey.sign(z8($)).serialized}authorizeSync($){D(typeof $.address==="string","invalid address for authorizeSync","auth.address",$);let Q=this.signingKey.sign(JQ($));return Object.assign({},{address:m($.address),nonce:u($.nonce||0),chainId:u($.chainId||0)},{signature:Q})}async authorize($){return $=Object.assign({},$,{address:await G0($.address,this)}),this.authorizeSync(await this.populateAuthorization($))}async signTypedData($,Q,J){let Y=await U$.resolveNames($,Q,J,async(X)=>{_(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:X}});let Z=await this.provider.resolveName(X);return _(Z!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:X}),Z});return this.signingKey.sign(U$.hash(Y.domain,Q,Y.value)).serialized}}var ZQ=" !#$%&'()*+,-./<=>?@[]^_`{|}~",Zq=/^[a-z]*$/i;function EX($,Q){let J=97;return $.reduce((Y,X)=>{if(X===Q)J++;else if(X.match(Zq))Y.push(String.fromCharCode(J)+X);else J=97,Y.push(X);return Y},[])}function qq($,Q){for(let X=ZQ.length-1;X>=0;X--)$=$.split(ZQ[X]).join(Q.substring(2*X,2*X+2));let J=[],Y=$.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(X,Z,q,G)=>{if(q)for(let M=parseInt(q);M>=0;M--)J.push(";");else J.push(Z.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return EX(EX(J,";"),":")}function jX($){return D($[0]==="0","unsupported auwl data","data",$),qq($.substring(1+2*ZQ.length),$.substring(1,1+2*ZQ.length))}class WJ{locale;constructor($){a(this,{locale:$})}split($){return $.toLowerCase().split(/\s+/g)}join($){return $.join(" ")}}class VJ extends WJ{#$;#Q;constructor($,Q,J){super($);this.#$=Q,this.#Q=J,this.#J=null}get _data(){return this.#$}_decodeWords(){return jX(this.#$)}#J;#Y(){if(this.#J==null){let $=this._decodeWords();if(M0($.join(`
|
|
4
4
|
`)+`
|
|
5
|
-
`)!==this.#Q)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#J=$}return this.#J}getWord($){let Q=this.#Y();return D($>=0&&$<Q.length,`invalid word index: ${$}`,"index",$),Q[$]}getWordIndex($){return this.#Y().indexOf($)}}var Gq="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",Wq="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",VJ=null;class q0 extends MJ{constructor(){super("en",Gq,Wq)}static wordlist(){if(VJ==null)VJ=new q0;return VJ}}function jX($){return(1<<$)-1<<8-$&255}function Mq($){return(1<<$)-1&255}function zJ($,Q){if(c0("NFKD"),Q==null)Q=q0.wordlist();let J=Q.split($);D(J.length%3===0&&J.length>=12&&J.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*J.length/8)),X=0;for(let M=0;M<J.length;M++){let V=Q.getWordIndex(J[M].normalize("NFKD"));D(V>=0,`invalid mnemonic word at index ${M}`,"mnemonic","[ REDACTED ]");for(let z=0;z<11;z++){if(V&1<<10-z)Y[X>>3]|=1<<7-X%8;X++}}let Z=32*J.length/3,q=J.length/3,G=jX(q),W=E(V$(Y.slice(0,Z/8)))[0]&G;return D(W===(Y[Y.length-1]&G),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),N(Y.slice(0,Z/8))}function DJ($,Q){if(D($.length%4===0&&$.length>=16&&$.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),Q==null)Q=q0.wordlist();let J=[0],Y=11;for(let q=0;q<$.length;q++)if(Y>8)J[J.length-1]<<=8,J[J.length-1]|=$[q],Y-=8;else J[J.length-1]<<=Y,J[J.length-1]|=$[q]>>8-Y,J.push($[q]&Mq(8-Y)),Y+=3;let X=$.length/4,Z=parseInt(V$($).substring(2,4),16)&jX(X);return J[J.length-1]<<=X,J[J.length-1]|=Z>>8-X,Q.join(J.map((q)=>Q.getWord(q)))}var IJ={};class G0{phrase;password;wordlist;entropy;constructor($,Q,J,Y,X){if(Y==null)Y="";if(X==null)X=q0.wordlist();n$($,IJ,"Mnemonic"),r(this,{phrase:J,password:Y,wordlist:X,entropy:Q})}computeSeed(){let $=G$("mnemonic"+this.password,"NFKD");return j$(G$(this.phrase,"NFKD"),$,2048,64,"sha512")}static fromPhrase($,Q,J){let Y=zJ($,J);return $=DJ(E(Y),J),new G0(IJ,Y,$,Q,J)}static fromEntropy($,Q,J){let Y=E($,"entropy"),X=DJ(Y,J);return new G0(IJ,N(Y),X,Q,J)}static entropyToPhrase($,Q){let J=E($,"entropy");return DJ(J,Q)}static phraseToEntropy($,Q){return zJ($,Q)}static isValidMnemonic($,Q){try{return zJ($,Q),!0}catch(J){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var z$=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},KJ=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},GQ,F$,u$,Vq={16:10,24:12,32:14},zq=[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],A$=[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],qQ=[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],Dq=[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],Iq=[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],Kq=[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],Oq=[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],Tq=[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],Uq=[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],Hq=[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,1047239000,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],Rq=[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,679998000,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],Lq=[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],Nq=[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],Cq=[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,1047239000,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],Eq=[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,679998000,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 OJ($){let Q=[];for(let J=0;J<$.length;J+=4)Q.push($[J]<<24|$[J+1]<<16|$[J+2]<<8|$[J+3]);return Q}class WQ{get key(){return z$(this,GQ,"f").slice()}constructor($){if(GQ.set(this,void 0),F$.set(this,void 0),u$.set(this,void 0),!(this instanceof WQ))throw Error("AES must be instanitated with `new`");KJ(this,GQ,new Uint8Array($),"f");let Q=Vq[this.key.length];if(Q==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");KJ(this,u$,[],"f"),KJ(this,F$,[],"f");for(let M=0;M<=Q;M++)z$(this,u$,"f").push([0,0,0,0]),z$(this,F$,"f").push([0,0,0,0]);let J=(Q+1)*4,Y=this.key.length/4,X=OJ(this.key),Z;for(let M=0;M<Y;M++)Z=M>>2,z$(this,u$,"f")[Z][M%4]=X[M],z$(this,F$,"f")[Q-Z][M%4]=X[M];let q=0,G=Y,W;while(G<J){if(W=X[Y-1],X[0]^=A$[W>>16&255]<<24^A$[W>>8&255]<<16^A$[W&255]<<8^A$[W>>24&255]^zq[q]<<24,q+=1,Y!=8)for(let K=1;K<Y;K++)X[K]^=X[K-1];else{for(let K=1;K<Y/2;K++)X[K]^=X[K-1];W=X[Y/2-1],X[Y/2]^=A$[W&255]^A$[W>>8&255]<<8^A$[W>>16&255]<<16^A$[W>>24&255]<<24;for(let K=Y/2+1;K<Y;K++)X[K]^=X[K-1]}let M=0,V,z;while(M<Y&&G<J)V=G>>2,z=G%4,z$(this,u$,"f")[V][z]=X[M],z$(this,F$,"f")[Q-V][z]=X[M++],G++}for(let M=1;M<Q;M++)for(let V=0;V<4;V++)W=z$(this,F$,"f")[M][V],z$(this,F$,"f")[M][V]=Lq[W>>24&255]^Nq[W>>16&255]^Cq[W>>8&255]^Eq[W&255]}encrypt($){if($.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let Q=z$(this,u$,"f").length-1,J=[0,0,0,0],Y=OJ($);for(let q=0;q<4;q++)Y[q]^=z$(this,u$,"f")[0][q];for(let q=1;q<Q;q++){for(let G=0;G<4;G++)J[G]=Dq[Y[G]>>24&255]^Iq[Y[(G+1)%4]>>16&255]^Kq[Y[(G+2)%4]>>8&255]^Oq[Y[(G+3)%4]&255]^z$(this,u$,"f")[q][G];Y=J.slice()}let X=new Uint8Array(16),Z=0;for(let q=0;q<4;q++)Z=z$(this,u$,"f")[Q][q],X[4*q]=(A$[Y[q]>>24&255]^Z>>24)&255,X[4*q+1]=(A$[Y[(q+1)%4]>>16&255]^Z>>16)&255,X[4*q+2]=(A$[Y[(q+2)%4]>>8&255]^Z>>8)&255,X[4*q+3]=(A$[Y[(q+3)%4]&255]^Z)&255;return X}decrypt($){if($.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let Q=z$(this,F$,"f").length-1,J=[0,0,0,0],Y=OJ($);for(let q=0;q<4;q++)Y[q]^=z$(this,F$,"f")[0][q];for(let q=1;q<Q;q++){for(let G=0;G<4;G++)J[G]=Tq[Y[G]>>24&255]^Uq[Y[(G+3)%4]>>16&255]^Hq[Y[(G+2)%4]>>8&255]^Rq[Y[(G+1)%4]&255]^z$(this,F$,"f")[q][G];Y=J.slice()}let X=new Uint8Array(16),Z=0;for(let q=0;q<4;q++)Z=z$(this,F$,"f")[Q][q],X[4*q]=(qQ[Y[q]>>24&255]^Z>>24)&255,X[4*q+1]=(qQ[Y[(q+3)%4]>>16&255]^Z>>16)&255,X[4*q+2]=(qQ[Y[(q+2)%4]>>8&255]^Z>>8)&255,X[4*q+3]=(qQ[Y[(q+1)%4]&255]^Z)&255;return X}}GQ=new WeakMap,F$=new WeakMap,u$=new WeakMap;class T8{constructor($,Q,J){if(J&&!(this instanceof J))throw Error(`${$} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new WQ(Q)},name:{enumerable:!0,value:$}})}}var MQ=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},s0=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},U8,W0;class H8 extends T8{constructor($,Q){super("ECC",$,H8);if(U8.set(this,void 0),W0.set(this,void 0),Q){if(Q.length%16)throw TypeError("invalid iv size (must be 16 bytes)");MQ(this,U8,new Uint8Array(Q),"f")}else MQ(this,U8,new Uint8Array(16),"f");MQ(this,W0,this.iv,"f")}get iv(){return new Uint8Array(s0(this,U8,"f"))}encrypt($){if($.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let Q=new Uint8Array($.length);for(let J=0;J<$.length;J+=16){for(let Y=0;Y<16;Y++)s0(this,W0,"f")[Y]^=$[J+Y];MQ(this,W0,this.aes.encrypt(s0(this,W0,"f")),"f"),Q.set(s0(this,W0,"f"),J)}return Q}decrypt($){if($.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let Q=new Uint8Array($.length);for(let J=0;J<$.length;J+=16){let Y=this.aes.decrypt($.subarray(J,J+16));for(let X=0;X<16;X++)Q[J+X]=Y[X]^s0(this,W0,"f")[X],s0(this,W0,"f")[X]=$[J+X]}return Q}}U8=new WeakMap,W0=new WeakMap;var t0=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},k$=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},R8,x0,_$;class U0 extends T8{constructor($,Q){super("CTR",$,U0);if(R8.set(this,void 0),x0.set(this,void 0),_$.set(this,void 0),t0(this,_$,new Uint8Array(16),"f"),k$(this,_$,"f").fill(0),t0(this,R8,k$(this,_$,"f"),"f"),t0(this,x0,16,"f"),Q==null)Q=1;if(typeof Q==="number")this.setCounterValue(Q);else this.setCounterBytes(Q)}get counter(){return new Uint8Array(k$(this,_$,"f"))}setCounterValue($){if(!Number.isInteger($)||$<0||$>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let Q=15;Q>=0;--Q)k$(this,_$,"f")[Q]=$%256,$=Math.floor($/256)}setCounterBytes($){if($.length!==16)throw TypeError("invalid counter initial Uint8Array value length");k$(this,_$,"f").set($)}increment(){for(let $=15;$>=0;$--)if(k$(this,_$,"f")[$]===255)k$(this,_$,"f")[$]=0;else{k$(this,_$,"f")[$]++;break}}encrypt($){var Q,J;let Y=new Uint8Array($);for(let X=0;X<Y.length;X++){if(k$(this,x0,"f")===16)t0(this,R8,this.aes.encrypt(k$(this,_$,"f")),"f"),t0(this,x0,0,"f"),this.increment();Y[X]^=k$(this,R8,"f")[t0(this,x0,(J=k$(this,x0,"f"),Q=J++,J),"f"),Q]}return Y}decrypt($){return this.encrypt($)}}R8=new WeakMap,x0=new WeakMap,_$=new WeakMap;function TJ($){if($.length<16)throw TypeError("PKCS#7 invalid length");let Q=$[$.length-1];if(Q>16)throw TypeError("PKCS#7 padding byte out of range");let J=$.length-Q;for(let Y=0;Y<Q;Y++)if($[J+Y]!==Q)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array($.subarray(0,J))}function UJ($){if(typeof $==="string"&&!$.startsWith("0x"))$="0x"+$;return b$($)}function e0($,Q){$=String($);while($.length<Q)$="0"+$;return $}function v0($){if(typeof $==="string")return G$($,"NFKC");return b$($)}function e($,Q){let J=Q.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);D(J!=null,"invalid path","path",Q);let Y=J[1],X=J[3],Z=J[4]==="!",q=$;for(let G of Y.toLowerCase().split(".")){if(Array.isArray(q)){if(!G.match(/^[0-9]+$/))break;q=q[parseInt(G)]}else if(typeof q==="object"){let W=null;for(let M in q)if(M.toLowerCase()===G){W=q[M];break}q=W}else q=null;if(q==null)break}if(D(!Z||q!=null,"missing required value","path",Y),X&&q!=null){if(X==="int"){if(typeof q==="string"&&q.match(/^-?[0-9]+$/))return parseInt(q);else if(Number.isSafeInteger(q))return q}if(X==="number"){if(typeof q==="string"&&q.match(/^-?[0-9.]*$/))return parseFloat(q)}if(X==="data"){if(typeof q==="string")return UJ(q)}if(X==="array"&&Array.isArray(q))return q;if(X===typeof q)return q;D(!1,`wrong type found for ${X} `,"path",Y)}return q}var SX="m/44'/60'/0'/0/0";function zQ($){try{let Q=JSON.parse($);if((Q.version!=null?parseInt(Q.version):0)===3)return!0}catch(Q){}return!1}function jq($,Q,J){if(e($,"crypto.cipher:string")==="aes-128-ctr"){let X=e($,"crypto.cipherparams.iv:data!"),Z=new U0(Q,X);return N(Z.decrypt(J))}_(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function VQ($,Q){let J=E(Q),Y=e($,"crypto.ciphertext:data!"),X=N(l(n([J.slice(16,32),Y]))).substring(2);D(X===e($,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=jq($,J.slice(0,16),Y),q=X0(Z);if($.address){let M=$.address.toLowerCase();if(!M.startsWith("0x"))M="0x"+M;D(h(M)===q,"keystore address/privateKey mismatch","address",$.address)}let G={address:q,privateKey:Z};if(e($,"x-ethers.version:string")==="0.1"){let M=J.slice(32,64),V=e($,"x-ethers.mnemonicCiphertext:data!"),z=e($,"x-ethers.mnemonicCounter:data!"),K=new U0(M,z);G.mnemonic={path:e($,"x-ethers.path:string")||SX,locale:e($,"x-ethers.locale:string")||"en",entropy:N(E(K.decrypt(V)))}}return G}function wX($){let Q=e($,"crypto.kdf:string");if(Q&&typeof Q==="string"){if(Q.toLowerCase()==="scrypt"){let J=e($,"crypto.kdfparams.salt:data!"),Y=e($,"crypto.kdfparams.n:int!"),X=e($,"crypto.kdfparams.r:int!"),Z=e($,"crypto.kdfparams.p:int!");D(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),D(X>0&&Z>0,"invalid kdf","kdf",Q);let q=e($,"crypto.kdfparams.dklen:int!");return D(q===32,"invalid kdf.dklen","kdf.dflen",q),{name:"scrypt",salt:J,N:Y,r:X,p:Z,dkLen:64}}else if(Q.toLowerCase()==="pbkdf2"){let J=e($,"crypto.kdfparams.salt:data!"),Y=e($,"crypto.kdfparams.prf:string!"),X=Y.split("-").pop();D(X==="sha256"||X==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=e($,"crypto.kdfparams.c:int!"),q=e($,"crypto.kdfparams.dklen:int!");return D(q===32,"invalid kdf.dklen","kdf.dklen",q),{name:"pbkdf2",salt:J,count:Z,dkLen:q,algorithm:X}}}D(!1,"unsupported key-derivation function","kdf",Q)}function HJ($,Q){let J=JSON.parse($),Y=v0(Q),X=wX(J);if(X.name==="pbkdf2"){let{salt:z,count:K,dkLen:w,algorithm:I}=X,O=j$(Y,z,K,w,I);return VQ(J,O)}_(X.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:X});let{salt:Z,N:q,r:G,p:W,dkLen:M}=X,V=e$(Y,Z,q,G,W,M);return VQ(J,V)}function PX($){return new Promise((Q)=>{setTimeout(()=>{Q()},$)})}async function RJ($,Q,J){let Y=JSON.parse($),X=v0(Q),Z=wX(Y);if(Z.name==="pbkdf2"){if(J)J(0),await PX(0);let{salt:K,count:w,dkLen:I,algorithm:O}=Z,U=j$(X,K,w,I,O);if(J)J(1),await PX(0);return VQ(Y,U)}_(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:q,N:G,r:W,p:M,dkLen:V}=Z,z=await t$(X,q,G,W,M,V,J);return VQ(Y,z)}function BX($){let Q=$.salt!=null?E($.salt,"options.salt"):X$(32),J=131072,Y=8,X=1;if($.scrypt){if($.scrypt.N)J=$.scrypt.N;if($.scrypt.r)Y=$.scrypt.r;if($.scrypt.p)X=$.scrypt.p}return D(typeof J==="number"&&J>0&&Number.isSafeInteger(J)&&(BigInt(J)&BigInt(J-1))===BigInt(0),"invalid scrypt N parameter","options.N",J),D(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),D(typeof X==="number"&&X>0&&Number.isSafeInteger(X),"invalid scrypt p parameter","options.p",X),{name:"scrypt",dkLen:32,salt:Q,N:J,r:Y,p:X}}function AX($,Q,J,Y){let X=E(J.privateKey,"privateKey"),Z=Y.iv!=null?E(Y.iv,"options.iv"):X$(16);D(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let q=Y.uuid!=null?E(Y.uuid,"options.uuid"):X$(16);D(q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let G=$.slice(0,16),W=$.slice(16,32),M=new U0(G,Z),V=E(M.encrypt(X)),z=l(n([W,V])),K={address:J.address.substring(2).toLowerCase(),id:v8(q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:N(Z).substring(2)},ciphertext:N(V).substring(2),kdf:"scrypt",kdfparams:{salt:N(Q.salt).substring(2),n:Q.N,dklen:32,p:Q.p,r:Q.r},mac:z.substring(2)}};if(J.mnemonic){let w=Y.client!=null?Y.client:`ethers/${w8}`,I=J.mnemonic.path||SX,O=J.mnemonic.locale||"en",U=$.slice(32,64),R=E(J.mnemonic.entropy,"account.mnemonic.entropy"),P=X$(16),f=new U0(U,P),j=E(f.encrypt(R)),L=new Date,T="UTC--"+(L.getUTCFullYear()+"-"+e0(L.getUTCMonth()+1,2)+"-"+e0(L.getUTCDate(),2)+"T"+e0(L.getUTCHours(),2)+"-"+e0(L.getUTCMinutes(),2)+"-"+e0(L.getUTCSeconds(),2)+".0Z")+"--"+K.address;K["x-ethers"]={client:w,gethFilename:T,path:I,locale:O,mnemonicCounter:N(P).substring(2),mnemonicCiphertext:N(j).substring(2),version:"0.1"}}return JSON.stringify(K)}function L8($,Q,J){if(J==null)J={};let Y=v0(Q),X=BX(J),Z=e$(Y,X.salt,X.N,X.r,X.p,64);return AX(E(Z),X,$,J)}async function N8($,Q,J){if(J==null)J={};let Y=v0(Q),X=BX(J),Z=await t$(Y,X.salt,X.N,X.r,X.p,64,J.progressCallback);return AX(E(Z),X,$,J)}var DQ="m/44'/60'/0'/0/0",Pq=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),H0=2147483648,Sq=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),wq="0123456789abcdef";function IQ($,Q){let J="";while($)J=wq[$%16]+J,$=Math.trunc($/16);while(J.length<Q*2)J="0"+J;return"0x"+J}function LJ($){let Q=E($),J=u0(V$(V$(Q)),0,4),Y=n([Q,J]);return b8(Y)}var p$={};function FX($,Q,J,Y){let X=new Uint8Array(37);if($&H0)_(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),X.set(E(Y),1);else X.set(E(J));for(let q=24;q>=0;q-=8)X[33+(q>>3)]=$>>24-q&255;let Z=E(a$("sha512",Q,X));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function kX($,Q){let J=Q.split("/");if(D(J.length>0,"invalid path","path",Q),J[0]==="m")D($.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${$.depth}`,"path",Q),J.shift();let Y=$;for(let X=0;X<J.length;X++){let Z=J[X];if(Z.match(/^[0-9]+'$/)){let q=parseInt(Z.substring(0,Z.length-1));D(q<H0,"invalid path index",`path[${X}]`,Z),Y=Y.deriveChild(H0+q)}else if(Z.match(/^[0-9]+$/)){let q=parseInt(Z);D(q<H0,"invalid path index",`path[${X}]`,Z),Y=Y.deriveChild(q)}else D(!1,"invalid path component",`path[${X}]`,Z)}return Y}class L$ extends b0{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor($,Q,J,Y,X,Z,q,G,W){super(Q,W);n$($,p$,"HDNodeWallet"),r(this,{publicKey:Q.compressedPublicKey});let M=u0(s$(V$(this.publicKey)),0,4);r(this,{parentFingerprint:J,fingerprint:M,chainCode:Y,path:X,index:Z,depth:q}),r(this,{mnemonic:G})}connect($){return new L$(p$,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,$)}#$(){let $={address:this.address,privateKey:this.privateKey},Q=this.mnemonic;if(this.path&&Q&&Q.wordlist.locale==="en"&&Q.password==="")$.mnemonic={path:this.path,locale:"en",entropy:Q.entropy};return $}async encrypt($,Q){return await N8(this.#$(),$,{progressCallback:Q})}encryptSync($){return L8(this.#$(),$)}get extendedKey(){return _(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),LJ(n(["0x0488ADE4",IQ(this.depth,1),this.parentFingerprint,IQ(this.index,4),this.chainCode,n(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new $8(p$,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild($){let Q=q$($,"index");D(Q<=4294967295,"invalid index","index",Q);let J=this.path;if(J){if(J+="/"+(Q&~H0),Q&H0)J+="'"}let{IR:Y,IL:X}=FX(Q,this.chainCode,this.publicKey,this.privateKey),Z=new Q$(x$((l0(X)+BigInt(this.privateKey))%Sq,32));return new L$(p$,Z,this.fingerprint,N(Y),J,Q,this.depth+1,this.mnemonic,this.provider)}derivePath($){return kX(this,$)}static#Q($,Q){D(m$($),"invalid seed","seed","[REDACTED]");let J=E($,"seed");D(J.length>=16&&J.length<=64,"invalid seed","seed","[REDACTED]");let Y=E(a$("sha512",Pq,J)),X=new Q$(N(Y.slice(0,32)));return new L$(p$,X,"0x00000000",N(Y.slice(32)),"m",0,0,Q,null)}static fromExtendedKey($){let Q=a(x8($));D(Q.length===82||LJ(Q.slice(0,78))===$,"invalid extended key","extendedKey","[ REDACTED ]");let J=Q[4],Y=N(Q.slice(5,9)),X=parseInt(N(Q.slice(9,13)).substring(2),16),Z=N(Q.slice(13,45)),q=Q.slice(45,78);switch(N(Q.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let G=N(q);return new $8(p$,X0(G),G,Y,Z,null,X,J,null)}case"0x0488ade4":case"0x04358394 ":if(q[0]!==0)break;return new L$(p$,new Q$(q.slice(1)),Y,Z,null,X,J,null,null)}D(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom($,Q,J){if($==null)$="";if(Q==null)Q=DQ;if(J==null)J=q0.wordlist();let Y=G0.fromEntropy(X$(16),$,J);return L$.#Q(Y.computeSeed(),Y).derivePath(Q)}static fromMnemonic($,Q){if(!Q)Q=DQ;return L$.#Q($.computeSeed(),$).derivePath(Q)}static fromPhrase($,Q,J,Y){if(Q==null)Q="";if(J==null)J=DQ;if(Y==null)Y=q0.wordlist();let X=G0.fromPhrase($,Q,Y);return L$.#Q(X.computeSeed(),X).derivePath(J)}static fromSeed($){return L$.#Q($,null)}}class $8 extends O8{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor($,Q,J,Y,X,Z,q,G,W){super(Q,W);n$($,p$,"HDNodeVoidWallet"),r(this,{publicKey:J});let M=u0(s$(V$(J)),0,4);r(this,{publicKey:J,fingerprint:M,parentFingerprint:Y,chainCode:X,path:Z,index:q,depth:G})}connect($){return new $8(p$,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,$)}get extendedKey(){return _(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),LJ(n(["0x0488B21E",IQ(this.depth,1),this.parentFingerprint,IQ(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild($){let Q=q$($,"index");D(Q<=4294967295,"invalid index","index",Q);let J=this.path;if(J){if(J+="/"+(Q&~H0),Q&H0)J+="'"}let{IR:Y,IL:X}=FX(Q,this.chainCode,this.publicKey,null),Z=Q$.addPoints(X,this.publicKey,!0),q=X0(Z);return new $8(p$,q,Z,this.fingerprint,N(Y),J,Q,this.depth+1,this.provider)}derivePath($){return kX(this,$)}}function KQ($){try{if(JSON.parse($).encseed)return!0}catch(Q){}return!1}function OQ($,Q){let J=JSON.parse($),Y=v0(Q),X=h(e(J,"ethaddr:string!")),Z=UJ(e(J,"encseed:string!"));D(Z&&Z.length%16===0,"invalid encseed","json",$);let q=E(j$(Y,Y,2000,32,"sha256")).slice(0,16),G=Z.slice(0,16),W=Z.slice(16),M=new H8(q,G),V=TJ(E(M.decrypt(W))),z="";for(let K=0;K<V.length;K++)z+=String.fromCharCode(V[K]);return{address:X,privateKey:Z0(z)}}function _X($){return new Promise((Q)=>{setTimeout(()=>{Q()},$)})}class f$ extends b0{constructor($,Q){if(typeof $==="string"&&!$.startsWith("0x"))$="0x"+$;let J=typeof $==="string"?new Q$($):$;super(J,Q)}connect($){return new f$(this.signingKey,$)}async encrypt($,Q){let J={address:this.address,privateKey:this.privateKey};return await N8(J,$,{progressCallback:Q})}encryptSync($){let Q={address:this.address,privateKey:this.privateKey};return L8(Q,$)}static#$($){if(D($,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in $&&$.mnemonic&&$.mnemonic.locale==="en"){let J=G0.fromEntropy($.mnemonic.entropy),Y=L$.fromMnemonic(J,$.mnemonic.path);if(Y.address===$.address&&Y.privateKey===$.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let Q=new f$($.privateKey);return D(Q.address===$.address,"address/privateKey mismatch","json","[ REDACTED ]"),Q}static async fromEncryptedJson($,Q,J){let Y=null;if(zQ($))Y=await RJ($,Q,J);else if(KQ($)){if(J)J(0),await _X(0);if(Y=OQ($,Q),J)J(1),await _X(0)}return f$.#$(Y)}static fromEncryptedJsonSync($,Q){let J=null;if(zQ($))J=HJ($,Q);else if(KQ($))J=OQ($,Q);else D(!1,"invalid JSON wallet","json","[ REDACTED ]");return f$.#$(J)}static createRandom($){let Q=L$.createRandom();if($)return Q.connect($);return Q}static fromPhrase($,Q){let J=L$.fromPhrase($);if(Q)return J.connect(Q);return J}}var C8=($)=>`${$.slice(0,6)}...${$.slice(-4)}`;function fX($,Q,J,Y=[]){let X=$,Z=Q,q=J,G=(Y||[]).map((H)=>{try{return h(H)}catch(T){return log.warn(`⚠️ SM: Invalid superadmin address skipped: ${C8(H)}`),null}}).filter(Boolean),W=null,M=X&&typeof X.getAddress==="function"?V():Promise.resolve();async function V(){if(X)W=h(await X.getAddress())}async function z(H){X=H,W=null,M=H&&typeof H.getAddress==="function"?V():Promise.resolve(),await M}async function K(){return M}function w(H){let T=(A)=>A&&typeof A==="object"&&!Array.isArray(A)?Object.keys(A).sort().reduce((S,B)=>(S[B]=T(A[B]),S),{}):Array.isArray(A)?A.map(T):A;return JSON.stringify(T(H))}function I(H){if(!H?.signature||!H?.originEthAddress||!H?.originUser)return{ok:!1,reason:"missing-fields"};let T;try{if(T=h(H.originEthAddress),h(H.originUser)!==T)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:A,originEthAddress:S,...B}=H,k=w(B);try{let x=D8(G$(k),A);if(h(x)!==T)return{ok:!1,reason:"invalid-signature"};let{originUser:i,...g}=B;return{ok:!0,normalizedOriginEthAddress:T,payload:g}}catch(x){return{ok:!1,reason:"verify-error",error:x}}}function O(H,T){try{return h(D8(G$(w(H)),T))}catch{return null}}async function U(H){if(await K(),!X||!W)return log.warn("⚠️ SM: Cannot sign outgoing operations; no active signer session."),[];let T=W,A=[];for(let S of H){if(S?.signature&&S?.originEthAddress&&S?.originUser){A.push(S);continue}let B={...S,originUser:T},k=w(B);try{let x=await X.signMessage(G$(k));A.push({...S,originUser:T,originEthAddress:T,signature:x})}catch(x){log.error(`❌ SM: Failed to sign operation for ${C8(T)}:`,x.message)}}return A}async function R(H){let T=[],A="guest";for(let S of H){let B,k;if(S.type==="sync"){T.push(S);continue}if(S.type==="fullStateSync"){if(S.signature&&S.originEthAddress&&S.originUser){let b=I(S);if(!b.ok){log.warn("⚠️ SM: fullStateSync inválido:",b.reason);continue}T.push(b.payload)}else T.push(S);continue}if(S.type==="deltaSync"){if(S.signature&&S.originEthAddress&&S.originUser){let b=I(S);if(!b.ok){log.warn("⚠️ SM: deltaSync inválido:",b.reason);continue}T.push(b.payload)}else T.push(S);continue}{let b=I(S);if(!b.ok){log.warn("⚠️ SM: Operación firmada inválida:",b.reason);continue}B=b.normalizedOriginEthAddress,k=b.payload}let x;if(G.includes(B))x="superadmin";else{let y=(await Z.get(`user:${B}`)).result?.value;if(x=y?.role||"guest",y?.expiresAt&&new Date(y.expiresAt).getTime()<Date.now())x="guest"}let i=k.type,g=q.mapChangeTypeToAction(i,k);if(i==="upsert"&&k.id===`user:${B}`){if(!(await Z.get(k.id)).result){let y=W&&W===B,d={...k,value:{ethAddress:B,role:"guest"},timestamp:k.timestamp||Z.hybridClock.now()};T.push(d);continue}else if(x!=="superadmin"&&k.value?.role&&k.value.role!==x)k.value.role=x}let{role:C,ethAddress:F}=k.value??{};if(C==="superadmin"&&!G.includes(h(F??""))){log.warn(`⚠️ SM: [POLICY] ${C8(B)} tried to assign superadmin to ${C8(F)}. Blocked.`);continue}if(q.can(x,g))T.push({...k,signer:B,originUser:S.originUser,originEthAddress:S.originEthAddress,signature:S.signature});else log.warn(`⚠️ SM: ${C8(B)} (role: ${x}) DENIED ${g}`,k)}return{validatedOperations:T}}async function P(H){if(await K(),!X)throw Error("\uD83D\uDEE1️ SM Encrypt: User session (signer) required for encryption.");try{let T=await j("ssm-encrypt-for-current-user-v1"),A=Z.encode(H),S=Z.pako.deflate(A),B=X$(12),k=await crypto.subtle.encrypt({name:"AES-GCM",iv:B},T,S);return JSON.stringify({iv:N(B),encrypted:N(new Uint8Array(k)),type:"aes-gcm-self-ssm-v2"})}catch(T){throw log.error("\uD83D\uDEE1️ SM: Error in encryptDataForCurrentUser:",T),Error("\uD83D\uDEE1️ SM: Failed to encrypt personal data.")}}async function f(H){if(await K(),!X)throw Error("\uD83D\uDEE1️ SM Decrypt: User session (signer) required for decryption.");let T;try{T=JSON.parse(H)}catch{throw Error("\uD83D\uDEE1️ SM Decrypt: encryptedString is not valid JSON.")}if(T.type!=="aes-gcm-self-ssm-v2")throw Error("\uD83D\uDEE1️ SM Decrypt: Unsupported encryption type or incorrect version.");if(!T.iv||!T.encrypted)throw Error("\uD83D\uDEE1️ SM Decrypt: Invalid encrypted data format.");try{let A=E(T.iv),S=E(T.encrypted),B=await j("ssm-encrypt-for-current-user-v1"),k=await crypto.subtle.decrypt({name:"AES-GCM",iv:A},B,S),x=Z.pako.inflate(new Uint8Array(k));return Z.decode(x)}catch(A){throw log.error("\uD83D\uDEE1️ SM: Error in decryptDataForCurrentUser:",A),Error("\uD83D\uDEE1️ SM: Failed to decrypt personal data.")}}async function j(H="ssm-default-aes-salt"){let T=E(X.privateKey),A=G$(H),S=await crypto.subtle.importKey("raw",T,{name:"PBKDF2"},!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:A,iterations:1e5,hash:"SHA-256"},S,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}return{get localUserEthAddress(){return W},updateSigner:z,signOutgoingOperations:U,verifyIncomingOperations:R,recoverAuthor:O,encryptDataForCurrentUser:P,decryptDataForCurrentUser:f}}var TQ="gdb_ethereum_material_encrypted_webauthn_v2",E8="gdb_webauthn_registration_details_v2",Aq=($)=>`${$.slice(0,6)}...${$.slice(-4)}`;function Q8($){if(!($ instanceof ArrayBuffer))if($.buffer&&$.buffer instanceof ArrayBuffer)$=$.buffer.slice($.byteOffset,$.byteOffset+$.byteLength);else throw log.error("❌ SM: arrayBufferToBase64Url input is not ArrayBuffer nor TypedArray with .buffer",$),Error("arrayBufferToBase64Url: ArrayBuffer or TypedArray required.");return btoa(String.fromCharCode(...new Uint8Array($))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function J8($){let Q=$.replace(/-/g,"+").replace(/_/g,"/"),J=atob(Q),Y=new ArrayBuffer(J.length),X=new Uint8Array(Y);for(let Z=0;Z<J.length;Z++)X[Z]=J.charCodeAt(Z);return Y}function bX(){let $=null,Q=null,J=null,Y=null,X=null;async function Z(){let j=f$.createRandom();return J=j.mnemonic.phrase,log.info("\uD83D\uDEE1️ SM: New Ethereum identity generated (mnemonic and private key in memory)."),{address:await j.getAddress(),mnemonic:J,privateKey:j.privateKey}}async function q(j,L){let H=X$(12),T=E(j),A=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:H},L,T);return JSON.stringify({iv:Q8(H.buffer.slice(H.byteOffset,H.byteOffset+H.byteLength)),ciphertext:Q8(A)})}async function G(j,L){let{iv:H,ciphertext:T}=JSON.parse(j),A=J8(H),S=J8(T),B=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(A)},L,S);return N(new Uint8Array(B))}async function W(j,L){let H=await window.crypto.subtle.importKey("raw",L,{name:"PBKDF2"},!1,["deriveKey"]);return window.crypto.subtle.deriveKey({name:"PBKDF2",salt:j,iterations:200000,hash:"SHA-256"},H,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}async function M(j,L){let H=localStorage.getItem(TQ);if(!H)return log.warn("⚠️ SM (_loadAndDecrypt): No encrypted Ethereum material found."),O(),null;try{let T=await W(j,L),A=await G(H,T),S=new f$(A);return $=S,Q=await S.getAddress(),J=null,Y=j,X=L,log.info(`✅ SM (_loadAndDecrypt): Session established for ${Aq(Q)}`),Q}catch(T){return log.error("❌ SM (_loadAndDecrypt): Error (decryption/wallet loading):",T),O(),null}}async function V(j){if(!window.navigator.credentials||!window.navigator.credentials.create)return log.error("❌ SM: WebAuthn is not supported by this browser."),alert("WebAuthn is not supported by this browser."),!1;let L=X$(32),H=L.buffer.slice(L.byteOffset,L.byteOffset+L.byteLength);try{let T=Q$.computePublicKey(j,!1),A=E(T),S=E(l(A)),B=64,k=S.buffer.slice(S.byteOffset,S.byteOffset+Math.min(S.length,64)),i=new f$(j).address.slice(0,10),g={challenge:H,rp:{name:"GDB WebAuthn App",id:window.location.hostname},user:{id:k,name:`user-${i}`,displayName:"GDB User"},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"preferred",requireResidentKey:!1},timeout:60000,attestation:"none"},C=await window.navigator.credentials.create({publicKey:g});if(!C||!C.rawId||!C.id)throw Error("❌ WebAuthn registration failed or was canceled (no credential).");let F=C.rawId,b=await W(F,H),y=await q(j,b);return localStorage.setItem(TQ,y),localStorage.setItem(E8,JSON.stringify({credentialIdBase64Url:Q8(F),originalChallengeBase64Url:Q8(H)})),log.info("\uD83D\uDEE1️ SM: WebAuthn registered and Ethereum key encrypted and saved."),await M(F,H)}catch(T){return log.error("❌ SM: Error during WebAuthn registration:",T),O(),localStorage.removeItem(TQ),localStorage.removeItem(E8),alert(`❌ WebAuthn registration error: ${T.message||"Unknown. Check console."}`),!1}}async function z(){if(!window.navigator.credentials||!window.navigator.credentials.get)return log.error("❌ SM: WebAuthn is not supported."),alert("WebAuthn is not supported by this browser."),null;let j=localStorage.getItem(E8);if(!j)return log.warn("⚠️ SM: No WebAuthn registration details saved."),null;let L;try{L=JSON.parse(j)}catch(B){return log.error("❌ SM: Error parsing WebAuthn registration details from localStorage:",B),null}if(!L.credentialIdBase64Url||!L.originalChallengeBase64Url)return log.error("❌ SM: WebAuthn registration details in localStorage are incomplete."),null;let H=J8(L.credentialIdBase64Url),T=J8(L.originalChallengeBase64Url),A=X$(32),S=A.buffer.slice(A.byteOffset,A.byteOffset+A.byteLength);try{let B={challenge:S,allowCredentials:[{type:"public-key",id:H}],userVerification:"preferred",timeout:60000},k=await window.navigator.credentials.get({publicKey:B});if(!k||!k.rawId||!k.response||!k.response.authenticatorData||!k.response.signature||!k.response.clientDataJSON)throw Error("❌ WebAuthn authentication failed or was canceled (incomplete assertion).");if(Q8(k.rawId)!==L.credentialIdBase64Url)throw Error("❌ WebAuthn credential ID in assertion does not match stored ID.");let x=JSON.parse(new TextDecoder().decode(k.response.clientDataJSON));if(x.challenge!==Q8(S))throw Error("❌ WebAuthn assertion challenge mismatch.");if(x.origin!==`https://${window.location.hostname}`&&x.origin!==`http://${window.location.hostname}`){let i=window.location.protocol+"//";if(x.origin.startsWith(i+window.location.hostname));else if(window.location.hostname==="localhost"&&x.origin.startsWith(i+"localhost"));else log.warn("⚠️ SM: WebAuthn assertion origin mismatch. Expected based on hostname:",window.location.hostname,"Got:",x.origin)}return log.info("\uD83D\uDEE1️ SM: Interactive WebAuthn assertion received and validated."),await M(k.rawId,T)}catch(B){return log.error("❌ SM: Error during interactive WebAuthn login:",B),O(),null}}async function K(){log.info("\uD83D\uDEE1️ SM: Attempting silent WebAuthn login...");let j=localStorage.getItem(E8);if(!j)return log.warn("⚠️ SM Silent Login: No WebAuthn registration details."),null;let L;try{L=JSON.parse(j)}catch(H){return log.error("❌ SM Silent Login: Error parsing registration details:",H),null}if(!L.credentialIdBase64Url||!L.originalChallengeBase64Url)return log.error("❌ SM Silent Login: Incomplete WebAuthn registration details."),null;try{let H=J8(L.credentialIdBase64Url),T=J8(L.originalChallengeBase64Url),A=await M(H,T);if(A)return log.info(`✅ SM Silent Login: Success for ${A}.`),A;else return log.warn("⚠️ SM Silent Login: _loadAndDecryptWalletFromWebAuthnMaterial failed."),null}catch(H){return log.error("❌ SM Silent Login: Error during silent login attempt:",H),O(),null}}async function w(j){try{let L=f$.fromPhrase(j);return $=L,Q=await L.getAddress(),J=j,Y=null,X=null,{address:Q,privateKey:L.privateKey,mnemonic:J}}catch(L){return log.error("❌ SM: Error loading wallet from mnemonic:",L),O(),null}}function I(){return localStorage.getItem(E8)!==null&&localStorage.getItem(TQ)!==null}function O(){$=null,Q=null,J=null,Y=null,X=null}function U(){return $}function R(){return Q}function P(){if(J&&(!Y||!X))return J;return null}function f(){return!!($&&Y&&X)}return{createNewEthereumIdentity:Z,registerAndProtectWithWebAuthn:V,loginWithWebAuthn:z,trySilentWebAuthnLogin:K,loadWalletFromMnemonic:w,hasWebAuthnRegistration:I,logout:O,getSigner:U,getAddress:R,getMnemonicForDisplay:P,isSessionWebAuthnProtected:f}}var j8={$eq:($,Q)=>$===Q,$ne:($,Q)=>$!==Q,$gt:($,Q)=>$>Q,$gte:($,Q)=>$>=Q,$lt:($,Q)=>$<Q,$lte:($,Q)=>$<=Q,$in:($,Q)=>Array.isArray(Q)&&(Array.isArray($)?$.some((J)=>Q.includes(J)):Q.includes($)),$between:($,[Q,J])=>$>=Q&&$<=J,$exists:($,Q)=>Q?$!==void 0:$===void 0,$startsWith:($,Q)=>typeof $==="string"&&$.startsWith(Q),$endsWith:($,Q)=>typeof $==="string"&&$.endsWith(Q),$contains:($,Q)=>typeof $==="string"&&$.includes(Q),$text:{global:($,Q)=>{let J=(X)=>String(X).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=J(Q);return Object.values($).some((X)=>typeof X==="object"?null.fieldSearch(X,Y):J(X).includes(Y))},field:($,Q)=>{let J=(X)=>String(X).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=J(Q);return Array.isArray($)?$.some((X)=>J(X).includes(Y)):J($).includes(Y)}},$like:($,Q)=>typeof $==="string"&&typeof Q==="string"&&new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test($),$regex:($,Q)=>typeof $==="string"&&new RegExp(Q.$regex||Q,"i").test($),$and:($,Q,J)=>Q.every((Y)=>J.createFilter(Y,J.allNodes)($)),$or:($,Q,J)=>Q.some((Y)=>J.createFilter(Y,J.allNodes)($)),$not:($,Q,J)=>!J.createFilter(Q,J.allNodes)($),$edge:($,Q,J)=>{if(!$.edges?.length||typeof Q!=="object"||Q===null)return!1;let Y=J.createFilter(Q,J.allNodes),X=[...$.edges],Z=new Set(X).add($.id),q=[];while(X.length){let G=X.shift(),W=J.allNodes[G];if(!W)continue;if(Y(W))q.push(W);W.edges?.forEach((M)=>!Z.has(M)&&Z.add(M)&&X.push(M))}if(q.length)$._edgeResult=q;return q.length>0}},UQ=($,Q)=>Q.split(".").reduce((J,Y)=>J&&typeof J==="object"&&(Y in J)?J[Y]:void 0,$),HQ=($,Q)=>{if(Object.keys($).length===0)return()=>!0;return(J)=>Object.entries($).every(([Y,X])=>{if(Y.startsWith("$"))return j8[Y](J,X,{createFilter:HQ,allNodes:Q});let Z=UQ(J.value,Y);if(Z===void 0)Z=UQ(J,Y);if(X instanceof RegExp)return X.test(String(Z));if(typeof X!=="object"||X===null)return j8.$eq(Z,X);return Object.entries(X).every(([q,G])=>{if(q==="$text")return j8.$text.field(Z,G);if(q==="$between"&&G.every((W)=>W instanceof Date))return j8.$between(new Date(Z),G);return j8[q]?.(Z,G,{createFilter:HQ,allNodes:Q})??!1})})},xX=($,Q)=>{let{$edge:J,...Y}=Q.query||{},X=HQ(Y,$),Z=Object.values($).filter(X),G=[...J?(()=>{let W=HQ({$edge:J},$);Z.forEach((V)=>W(V));let M=new Map;return Z.forEach((V)=>{if(V._edgeResult)V._edgeResult.forEach((z)=>M.set(z.id,z)),delete V._edgeResult}),Array.from(M.values())})():Z];if(Q.field){let W=Q.order==="asc"?1:-1;G.sort((M,V)=>{let z=UQ(M.value,Q.field),K=UQ(V.value,Q.field);if(typeof z==="string"&&typeof K==="string")return z.localeCompare(K)*W;return((z??0)-(K??0))*W})}if(Q.$after){let W=G.findIndex((M)=>M.id===Q.$after);G=W>=0?G.slice(W+1):[]}if(Q.$before){let W=G.findIndex((M)=>M.id===Q.$before);G=W>=0?G.slice(0,W):[]}if(Q.$limit)G=G.slice(0,Q.$limit);return G};var R0=($)=>`${$.slice(0,6)}...${$.slice(-4)}`,CJ={superadmin:{can:["assignRole","deleteAny"],inherits:["admin"]},admin:{can:["delete"],inherits:["manager"]},manager:{can:["publish"],inherits:["user"]},user:{can:["write","link","sync"],inherits:["guest"]},guest:{can:["read","sync"]}},l$="gdb_sm_last_session_was_webauthn";function Fq($){if(typeof $!=="object"||$===null||Array.isArray($))throw Error("\uD83D\uDEE1️ SM: Custom roles must be a valid object.");CJ=$,log.info("\uD83D\uDEE1️ SM: Custom roles set.")}function EJ($,Q,J=new Set){let Y=CJ;if(!$||!Y[$])return!1;if(J.has($))return log.warn(`⚠️ SM: Inheritance loop detected involving role '${$}'.`),!1;if(J.add($),Y[$].can&&Y[$].can.includes(Q))return J.delete($),!0;if(Y[$].inherits&&Array.isArray(Y[$].inherits)){if(Y[$].inherits.some((X)=>EJ(X,Q,new Set(J))))return J.delete($),!0}return J.delete($),!1}function kq($,Q={}){if($==="upsert")return"write";if($==="remove")return"delete";if($==="link")return"link";if($==="unlink")return"link";if($==="sync"||$==="syncReceive"||$==="deltaSync")return"sync";return log.warn(`⚠️ SM mapChangeTypeToAction: Unknown change type '${$}'.`),"unknown"}var J$=null,D$=null,s=bX(),NJ=[],H$=!1,LQ=new Set,N$=null,y$=!1,NQ=null,CQ=null;function y7($){if(typeof $==="function")NQ=$,C$();else if($===null)NQ=null;else log.warn("⚠️ SM: Attempted to set invalid state change callback.")}function h7($){if(typeof $==="function")CQ=$,C$();else if($===null)CQ=null;else log.warn("⚠️ SM: Attempted to set invalid governance state change callback.")}function C$(){if(NQ)NQ({isActive:H$,activeAddress:D$?.localUserEthAddress||s.getAddress(),abbrAddr:R0(D$?.localUserEthAddress||s.getAddress()||"N/A"),isWebAuthnProtected:y$,hasVolatileIdentity:!!N$,hasWebAuthnHardwareRegistration:s.hasWebAuthnRegistration()});if(CQ)CQ({isActive:H$,activeAddress:D$?.localUserEthAddress||s.getAddress()})}async function g7(){if(H$)await jQ();s.logout(),N$=null,y$=!1,localStorage.removeItem(l$);try{let $=await s.createNewEthereumIdentity();if($)N$=$;return C$(),$}catch($){throw N$=null,C$(),$}}async function m7($){let Q=$||N$?.privateKey;if(!Q)return alert("\uD83D\uDEE1️ SM Error: No volatile ETH identity to protect."),null;if(H$&&y$&&D$?.signer)return D$.localUserEthAddress;if(H$)await jQ();s.logout();let J=await s.registerAndProtectWithWebAuthn(Q);if(J&&s.getSigner()){if(N$=null,y$=!0,localStorage.setItem(l$,"true"),J$)await EQ(s.getSigner(),{method:"WebAuthn"});else log.warn("⚠️ SM: Identity protected, but GDB not configured. Global SM signing not active.");return J}else return y$=!1,localStorage.removeItem(l$),C$(),null}async function c7(){if(H$)await jQ();s.logout(),N$=null;let $=await s.loginWithWebAuthn();if($&&s.getSigner()){if(y$=!0,localStorage.setItem(l$,"true"),J$)await EQ(s.getSigner(),{method:"silent WebAuthn"});else log.warn("⚠️ SM: WebAuthn login OK, but GDB not configured for full security activation.");return $}else return y$=!1,localStorage.removeItem(l$),C$(),null}async function u7($){if(H$)await jQ();s.logout(),N$=null;let Q=await s.loadWalletFromMnemonic($);if(Q&&Q.address&&s.getSigner()){if(N$=Q,y$=!1,localStorage.removeItem(l$),J$)await EQ(s.getSigner(),{method:"mnemonic"});else log.warn("⚠️ SM: Mnemonic loaded, but GDB not configured for full security activation.");return N$}else return C$(),null}var _q=($)=>{let Q=new Map,J=(G,W)=>{if(Q.size>4096)Q.clear();if(!Q.has(W))Q.set(W,$.recoverAuthor(G,W));return Q.get(W)},Y=(G)=>G?.owner??G?._meta?.owner,X=(G,W,M)=>G===W||["write","delete"].includes(M?.[G]),Z=(G,W,M)=>G===W||M?.[G]==="delete",q=(G,W,M,V)=>{let z=W?J(G,W):null;if(!z)return!Y(G?.value)&&!Y(M?.value);if(z!==G.originUser)return!1;let K=V==="remove"?Z:X,w=Y(M?.value);if(w)return K(z,w,M.value.collaborators);let I=Y(G.value);if(I)return z===I;return!0};return{op(G,W){if(!Y(W?.value)&&!Y(G.value))return!0;let M={type:G.type,id:G.id,value:G.value,timestamp:G.timestamp,originUser:G.originUser};return q(M,G.signature,W,G.type==="remove"?"remove":"write")},node(G,W){if(!Y(G?.value)&&!Y(W?.value))return!0;let M=G?.meta;if(!M?.sig||!M?.signedPayload)return!1;return q(M.signedPayload,M.sig,W,"write")},removal(G){return!Y(G?.value)},isOwned:(G)=>!!Y(G)}};async function fq($,Q={}){if(!$){log.error("❌ SM: GDB instance is required.");return}J$=$,NJ=((Q.superAdmins??[])||[]).map((Z)=>{try{return h(Z)}catch(q){return log.warn(`⚠️ SM: Invalid superadmin address skipped: ${R0(Z)}`),null}}).filter(Boolean);let Y=NJ,X=fX(null,$,{can:EJ,mapChangeTypeToAction:kq},Y);if(D$=X,$.use(async function(q){let{validatedOperations:G}=await X.verifyIncomingOperations(q);return G||[]}),$.setSyncAuthGate?.(_q(X)),LQ.add({db:$,ssm:X,superAdmins:Y}),log.info("\uD83D\uDEE1️ SM: Security context established and middleware registered."),localStorage.getItem(l$)==="true"&&s.hasWebAuthnRegistration()){log.info("\uD83D\uDEE1️ SM: Previous WebAuthn session detected. Attempting silent login...");try{let Z=await s.trySilentWebAuthnLogin();if(Z&&s.getSigner())y$=!0,await EQ(s.getSigner()),log.info(`\uD83D\uDEE1️ SM: Silent WebAuthn login successful for ${R0(Z)}.`);else log.warn("⚠️ SM: Silent WebAuthn login failed or no signer obtained. Manual login required."),localStorage.removeItem(l$),C$()}catch(Z){log.error("❌ SM: Error during silent WebAuthn login attempt:",Z),localStorage.removeItem(l$),C$()}}else C$();if(Q.customRoles)Fq(Q.customRoles);if(Q.acls){log.info("\uD83D\uDEE1️ SM: ACLS options activated.");try{(await import(new URL("./sm-acls.min.js",import.meta.url).href)).start(J$,Q)}catch(Z){log.error("❌ SM: Failed to load or start the ACLS module.",Z)}}if(Q.governanceRules)try{(await import(new URL("./sm-gov.min.js",import.meta.url).href)).start(J$,Q)}catch(Z){log.error("❌ SM: Failed to load or start the governance module.",Z)}}var bq=async($,Q)=>{let{results:J}=await $.map({realtime:!1}),Y=J.filter((X)=>!X.meta&&(X.value?.owner??X.value?._meta?.owner)===Q).map(({id:X,value:Z,timestamp:q})=>({type:"upsert",id:X,value:Z,timestamp:q}));if(!Y.length)return;log.info(`\uD83D\uDD0F SM: re-signing ${Y.length} node(s) whose receipt was lost.`),await $.syncChannel.send(Y)},xq=async({db:$,ssm:Q,superAdmins:J},Y,X)=>{await Q.updateSigner(Y);let Z=Q.localUserEthAddress,{syncChannel:q}=$??{};if(q?.send&&!q._originalSendBySM)q._originalSendBySM=q.send.bind(q),q.send=async(G)=>{let W=await Q.signOutgoingOperations(G);return $.captureProvenance?.(W),q._originalSendBySM(W)};bq($,Z).catch((G)=>log.warn("⚠️ SM: could not re-sign own nodes:",G.message));try{let{result:G}=await $.get(`user:${Z}`);if(!G)X.role=J.includes(Z)?"superadmin":"guest",X.status="New user.",await $.put({ethAddress:Z,role:X.role},`user:${Z}`);else X.role=G.value.role||"unknown";q?.send?.([{type:"sync",timestamp:null}])}catch(G){log.error(`❌ SM: User node check failed for ${Z}: ${G}`)}return Z},EQ=async($,Q={})=>{if(!LQ.size||!$)return log.error("❌ SM: GDB, SSM, or signer missing."),H$=!1,C$(),!1;let J={role:"unknown",status:"Existing user."},Y=null;for(let Z of LQ)try{Y=await xq(Z,$,J)}catch(q){return log.error("❌ SM: updateSigner failed:",q),H$=!1,C$(),!1}H$=!0,C$();let X=Q.method?` via ${Q.method}`:"";return log.info(`\uD83D\uDEE1️\uD83D\uDD12 SM: ACTIVE for \x1B[32m${R0(Y)} (${J.role})\x1B[0m${X}. ${J.status}`),!0};async function jQ(){for(let{db:$,ssm:Q}of LQ){let J=$?.syncChannel;if(J?._originalSendBySM)J.send=J._originalSendBySM,delete J._originalSendBySM;try{await Q.updateSigner(null)}catch(Y){log.error("❌ SM: Error during signer deactivation in clearSecurity:",Y)}}s.logout(),N$=null,y$=!1,localStorage.removeItem(l$),H$=!1,C$(),log.info("\uD83D\uDEE1️ SM: Session closed. Now in anonymous verification mode.")}var vX="_gdbSecurePayloadV1",RQ=async($,Q)=>{if(!$)return null;let J=D$,Y=$.value,X=!1;if(Y&&Y._gdbWrapperType===vX){let Z=Y,q=Z._payload,G=Z._meta;if(Y=typeof q==="string"?q:Z,G&&G.owner&&J&&J.localUserEthAddress&&G.owner===J.localUserEthAddress)try{let W=JSON.stringify({iv:G.iv,encrypted:q,type:G.encType});Y=await J.decryptDataForCurrentUser(W),X=!0}catch(W){log.error(`❌ SM: Decryption failed for node ${$.id}. User: ${J.localUserEthAddress}, Owner: ${G.owner}. Error: ${W.message}`)}else if(G&&G.owner)log.warn(`⚠️ SM: Decryption not attempted for node ${$.id}. Owner: ${G.owner}. Session active: ${!!(J&&J.signer)}`);else log.warn(`⚠️ SM: Secure payload wrapper for node ${$.id} lacks sufficient metadata for decryption.`)}return{id:Q??$.id,value:Y,edges:($.edges||[]).map((Z)=>Z.replace(/^SM_ID_PREFIX_/,"")),timestamp:$.timestamp,decrypted:X}};async function p7($,Q){let J=Q??(typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`),Y=`SM_ID_PREFIX_${J}`;if(!J$)throw Error("❌ SM.put: Not initialized");if(!jJ())throw Error("❌ SM.put: Session not active");let{result:X}=await vq(J);if(X&&X.decrypted===!1)throw Error(`❌ SM.put: Cannot overwrite encrypted data on node ID '${Q}' owned by another user. DENIED.`);let Z=D$,q,G;try{let M=await Z.encryptDataForCurrentUser($),V=JSON.parse(M);q=V.encrypted,G={owner:Z.localUserEthAddress,encType:V.type,iv:V.iv}}catch(M){throw log.error(`❌ SM.put: Encryption failed for ID ${Q||"(new)"}: ${M.message}`),M}let W={_gdbWrapperType:vX,_payload:q,_meta:G};return log.info(`\uD83D\uDEE1️ SM (put): Storing wrapped secure payload for ID: ${Q||"(new)"}`),await J$.put(W,Y),J}async function vq($,Q=null){if(!$)throw Error("❌ SM.get: id is required");let J=`SM_ID_PREFIX_${$}`;if(!J$)throw Error("❌ SM.get: Not initialized");if(!Q){let q=await J$.get(J,null);return{result:await RQ(q?q.result:null,$)}}let Y=null,X=await J$.get(J,null);if(Y=await RQ(X?X.result:null,$),typeof Q==="function")Q(Y);let{unsubscribe:Z}=await J$.get(J,async(q)=>{let G=await RQ(q,$),W=G&&Y&&J$.hybridClock?.compare(G.timestamp,Y.timestamp)>0,M=JSON.stringify(G?G.value:null)!==JSON.stringify(Y?Y.value:null);if(!G&&Y){if(Y=null,typeof Q==="function")Q(null)}else if(G&&(!Y||W||M)){if(Y=G,typeof Q==="function")Q(G)}});return{result:Y,unsubscribe:()=>{if(Z)Z()}}}async function l7($){if(!$)throw Error("❌ SM.remove: id is required");if(!J$)throw Error("❌ SM.remove: Not initialized");return J$.remove(`SM_ID_PREFIX_${$}`)}async function d7($={}){if(!J$)throw Error("❌ SM.map: Not initialized");let{query:Q,field:J,order:Y="asc",$limit:X,...Z}=$,{results:q}=await J$.map({...Z,query:{id:/^SM_ID_PREFIX_/},realtime:!1}),G=(await Promise.all(q.map((V)=>RQ(V,V.id.replace("SM_ID_PREFIX_",""))))).filter(Boolean),W=Object.fromEntries(G.map((V)=>[V.id,V]));return{results:xX(W,{query:Q,field:J,order:Y,$limit:X})}}function yX(){if(!H$||!D$?.localUserEthAddress)throw Error("❌ SM Operation: Security not active or no local user ETH identified in SecurityManager.");return D$.localUserEthAddress}async function n7($,Q,J=null){if(!$||!Q)throw Error("❌ SM assignRole: targetUserEthAddress, and role are required.");let Y;try{Y=h($)}catch(M){throw Error(`❌ SM assignRole: targetUserEthAddress '${R0($)}' is invalid.`)}if(!CJ[Q])throw Error(`❌ SM assignRole: Role '${Q}' is not a defined role.`);let X=yX(),Z=`user:${Y}`,G=(await J$.get(Z)).result?.value||{},W={...G,ethAddress:Y,role:Q,assignedByEthAddress:X,expiresAt:J?new Date(J).toISOString():null,priority:!0};await J$.put(W,Z),log.info(`\uD83D\uDEE1️ SM: PROMOTING \x1B[32m ${R0(Y)} \x1B[0m from \x1B[32m '${G.role}' \x1B[0m to \x1B[32m ${Q} \x1B[0m by \x1B[32m ${R0(X)} \x1B[0m written.`)}async function yq(){if(!H$||!D$?.localUserEthAddress)return!1;return NJ.includes(D$.localUserEthAddress)}async function hq($,Q="unknown"){let J;try{J=h($)}catch(Z){throw Error(`❌ SM: Invalid ETH address '${R0($)}' when verifying role for op '${Q}'.`)}let Y=await J$.get(`user:${J}`);if(!Y.result?.value?.role)throw log.warn(`⚠️ SM verifyUserRoleLocal: Node/role not found for ETH ${J}. Op: ${Q}. Data:`,Y.result?.value),Error(`❌ SM: Role not found for ETH ${J} (operation: ${Q}).`);let X=Y.result.value;if(X.expiresAt&&new Date(X.expiresAt)<new Date)throw Error(`❌ SM: Role for ETH ${J} has expired.`);return X.role}async function gq($,Q){let J=await hq($,Q);if(!EJ(J,Q))throw Error(`❌ SM: ETH User ${$} (role ${J}) does not have permission for '${Q}'.`)}async function o7($){if(!$)throw Error("❌ SM executeWithPermission: operationName is required.");let Q=yX();if(!($==="assignRole"&&await yq()))await gq(Q,$);return Q}function i7(){return H$?D$?.localUserEthAddress:null}function jJ(){return H$}function r7(){return H$&&y$}function a7(){return s.hasWebAuthnRegistration()}function s7(){if(N$&&N$.mnemonic&&!s.isSessionWebAuthnProtected())return N$.mnemonic;return s.getMnemonicForDisplay()}async function t7($){if(!jJ()||!D$)throw Error("❌ SM Encryption: Local signing security not active or SecurityManager not available.");return await D$.encryptDataForCurrentUser($)}async function e7($){if(!jJ()||!D$)throw Error("❌ SM Decryption: Local signing security not active or SecurityManager not available.");return await D$.decryptDataForCurrentUser($)}async function $z($,Q,J={}){J$=$;let Y=async(Z)=>{if((await $.get(Z,null))?.result)return Z;let q=`SM_ID_PREFIX_${Z}`;return(await $.get(q,null))?.result?q:Z};for(let Z of["link","unlink"]){let q=$[Z].bind($);$[Z]=async(G,W)=>q(await Y(G),await Y(W))}let X={...Q};return $.sm=X,Object.hasOwn(J,"superAdmins")&&await fq($,J),Object.freeze(X),{sm:X}}export{g7 as startNewUserRegistration,y7 as setSecurityStateChangeCallback,h7 as setGovernanceStateChangeCallback,l7 as remove,p7 as put,m7 as protectCurrentIdentityWithWebAuthn,d7 as map,u7 as loginOrRecoverUserWithMnemonic,c7 as loginCurrentUserWithWebAuthn,jJ as isSecurityActive,r7 as isCurrentSessionProtectedByWebAuthn,$z as init,a7 as hasExistingWebAuthnRegistration,s7 as getMnemonicForDisplayAfterRegistrationOrRecovery,i7 as getActiveEthAddress,vq as get,o7 as executeWithPermission,t7 as encryptDataForCurrentUser,e7 as decryptDataForCurrentUser,jQ as clearSecurity,n7 as assignRole,R0 as abbrAddr};
|
|
5
|
+
`)!==this.#Q)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#J=$}return this.#J}getWord($){let Q=this.#Y();return D($>=0&&$<Q.length,`invalid word index: ${$}`,"index",$),Q[$]}getWordIndex($){return this.#Y().indexOf($)}}var Gq="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",Mq="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",zJ=null;class W0 extends VJ{constructor(){super("en",Gq,Mq)}static wordlist(){if(zJ==null)zJ=new W0;return zJ}}function PX($){return(1<<$)-1<<8-$&255}function Wq($){return(1<<$)-1&255}function DJ($,Q){if(c0("NFKD"),Q==null)Q=W0.wordlist();let J=Q.split($);D(J.length%3===0&&J.length>=12&&J.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*J.length/8)),X=0;for(let W=0;W<J.length;W++){let V=Q.getWordIndex(J[W].normalize("NFKD"));D(V>=0,`invalid mnemonic word at index ${W}`,"mnemonic","[ REDACTED ]");for(let z=0;z<11;z++){if(V&1<<10-z)Y[X>>3]|=1<<7-X%8;X++}}let Z=32*J.length/3,q=J.length/3,G=PX(q),M=N(q$(Y.slice(0,Z/8)))[0]&G;return D(M===(Y[Y.length-1]&G),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),L(Y.slice(0,Z/8))}function IJ($,Q){if(D($.length%4===0&&$.length>=16&&$.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),Q==null)Q=W0.wordlist();let J=[0],Y=11;for(let q=0;q<$.length;q++)if(Y>8)J[J.length-1]<<=8,J[J.length-1]|=$[q],Y-=8;else J[J.length-1]<<=Y,J[J.length-1]|=$[q]>>8-Y,J.push($[q]&Wq(8-Y)),Y+=3;let X=$.length/4,Z=parseInt(q$($).substring(2,4),16)&PX(X);return J[J.length-1]<<=X,J[J.length-1]|=Z>>8-X,Q.join(J.map((q)=>Q.getWord(q)))}var KJ={};class V0{phrase;password;wordlist;entropy;constructor($,Q,J,Y,X){if(Y==null)Y="";if(X==null)X=W0.wordlist();a$($,KJ,"Mnemonic"),a(this,{phrase:J,password:Y,wordlist:X,entropy:Q})}computeSeed(){let $=W$("mnemonic"+this.password,"NFKD");return P$(W$(this.phrase,"NFKD"),$,2048,64,"sha512")}static fromPhrase($,Q,J){let Y=DJ($,J);return $=IJ(N(Y),J),new V0(KJ,Y,$,Q,J)}static fromEntropy($,Q,J){let Y=N($,"entropy"),X=IJ(Y,J);return new V0(KJ,L(Y),X,Q,J)}static entropyToPhrase($,Q){let J=N($,"entropy");return IJ(J,Q)}static phraseToEntropy($,Q){return DJ($,Q)}static isValidMnemonic($,Q){try{return DJ($,Q),!0}catch(J){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var I$=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},OJ=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},GQ,_$,n$,Vq={16:10,24:12,32:14},zq=[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],k$=[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],qQ=[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],Dq=[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],Iq=[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],Kq=[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],Oq=[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],Tq=[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],Uq=[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],Hq=[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,1047239000,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],Rq=[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,679998000,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],Lq=[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],Nq=[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],Cq=[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,1047239000,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],Eq=[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,679998000,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 TJ($){let Q=[];for(let J=0;J<$.length;J+=4)Q.push($[J]<<24|$[J+1]<<16|$[J+2]<<8|$[J+3]);return Q}class MQ{get key(){return I$(this,GQ,"f").slice()}constructor($){if(GQ.set(this,void 0),_$.set(this,void 0),n$.set(this,void 0),!(this instanceof MQ))throw Error("AES must be instanitated with `new`");OJ(this,GQ,new Uint8Array($),"f");let Q=Vq[this.key.length];if(Q==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");OJ(this,n$,[],"f"),OJ(this,_$,[],"f");for(let W=0;W<=Q;W++)I$(this,n$,"f").push([0,0,0,0]),I$(this,_$,"f").push([0,0,0,0]);let J=(Q+1)*4,Y=this.key.length/4,X=TJ(this.key),Z;for(let W=0;W<Y;W++)Z=W>>2,I$(this,n$,"f")[Z][W%4]=X[W],I$(this,_$,"f")[Q-Z][W%4]=X[W];let q=0,G=Y,M;while(G<J){if(M=X[Y-1],X[0]^=k$[M>>16&255]<<24^k$[M>>8&255]<<16^k$[M&255]<<8^k$[M>>24&255]^zq[q]<<24,q+=1,Y!=8)for(let K=1;K<Y;K++)X[K]^=X[K-1];else{for(let K=1;K<Y/2;K++)X[K]^=X[K-1];M=X[Y/2-1],X[Y/2]^=k$[M&255]^k$[M>>8&255]<<8^k$[M>>16&255]<<16^k$[M>>24&255]<<24;for(let K=Y/2+1;K<Y;K++)X[K]^=X[K-1]}let W=0,V,z;while(W<Y&&G<J)V=G>>2,z=G%4,I$(this,n$,"f")[V][z]=X[W],I$(this,_$,"f")[Q-V][z]=X[W++],G++}for(let W=1;W<Q;W++)for(let V=0;V<4;V++)M=I$(this,_$,"f")[W][V],I$(this,_$,"f")[W][V]=Lq[M>>24&255]^Nq[M>>16&255]^Cq[M>>8&255]^Eq[M&255]}encrypt($){if($.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let Q=I$(this,n$,"f").length-1,J=[0,0,0,0],Y=TJ($);for(let q=0;q<4;q++)Y[q]^=I$(this,n$,"f")[0][q];for(let q=1;q<Q;q++){for(let G=0;G<4;G++)J[G]=Dq[Y[G]>>24&255]^Iq[Y[(G+1)%4]>>16&255]^Kq[Y[(G+2)%4]>>8&255]^Oq[Y[(G+3)%4]&255]^I$(this,n$,"f")[q][G];Y=J.slice()}let X=new Uint8Array(16),Z=0;for(let q=0;q<4;q++)Z=I$(this,n$,"f")[Q][q],X[4*q]=(k$[Y[q]>>24&255]^Z>>24)&255,X[4*q+1]=(k$[Y[(q+1)%4]>>16&255]^Z>>16)&255,X[4*q+2]=(k$[Y[(q+2)%4]>>8&255]^Z>>8)&255,X[4*q+3]=(k$[Y[(q+3)%4]&255]^Z)&255;return X}decrypt($){if($.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let Q=I$(this,_$,"f").length-1,J=[0,0,0,0],Y=TJ($);for(let q=0;q<4;q++)Y[q]^=I$(this,_$,"f")[0][q];for(let q=1;q<Q;q++){for(let G=0;G<4;G++)J[G]=Tq[Y[G]>>24&255]^Uq[Y[(G+3)%4]>>16&255]^Hq[Y[(G+2)%4]>>8&255]^Rq[Y[(G+1)%4]&255]^I$(this,_$,"f")[q][G];Y=J.slice()}let X=new Uint8Array(16),Z=0;for(let q=0;q<4;q++)Z=I$(this,_$,"f")[Q][q],X[4*q]=(qQ[Y[q]>>24&255]^Z>>24)&255,X[4*q+1]=(qQ[Y[(q+3)%4]>>16&255]^Z>>16)&255,X[4*q+2]=(qQ[Y[(q+2)%4]>>8&255]^Z>>8)&255,X[4*q+3]=(qQ[Y[(q+1)%4]&255]^Z)&255;return X}}GQ=new WeakMap,_$=new WeakMap,n$=new WeakMap;class T8{constructor($,Q,J){if(J&&!(this instanceof J))throw Error(`${$} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new MQ(Q)},name:{enumerable:!0,value:$}})}}var WQ=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},t0=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},U8,z0;class H8 extends T8{constructor($,Q){super("ECC",$,H8);if(U8.set(this,void 0),z0.set(this,void 0),Q){if(Q.length%16)throw TypeError("invalid iv size (must be 16 bytes)");WQ(this,U8,new Uint8Array(Q),"f")}else WQ(this,U8,new Uint8Array(16),"f");WQ(this,z0,this.iv,"f")}get iv(){return new Uint8Array(t0(this,U8,"f"))}encrypt($){if($.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let Q=new Uint8Array($.length);for(let J=0;J<$.length;J+=16){for(let Y=0;Y<16;Y++)t0(this,z0,"f")[Y]^=$[J+Y];WQ(this,z0,this.aes.encrypt(t0(this,z0,"f")),"f"),Q.set(t0(this,z0,"f"),J)}return Q}decrypt($){if($.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let Q=new Uint8Array($.length);for(let J=0;J<$.length;J+=16){let Y=this.aes.decrypt($.subarray(J,J+16));for(let X=0;X<16;X++)Q[J+X]=Y[X]^t0(this,z0,"f")[X],t0(this,z0,"f")[X]=$[J+X]}return Q}}U8=new WeakMap,z0=new WeakMap;var e0=function($,Q,J,Y,X){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!X)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?$!==Q||!X:!Q.has($))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?X.call($,J):X?X.value=J:Q.set($,J),J},f$=function($,Q,J,Y){if(J==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?$!==Q||!Y:!Q.has($))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?Y:J==="a"?Y.call($):Y?Y.value:Q.get($)},R8,v0,b$;class N0 extends T8{constructor($,Q){super("CTR",$,N0);if(R8.set(this,void 0),v0.set(this,void 0),b$.set(this,void 0),e0(this,b$,new Uint8Array(16),"f"),f$(this,b$,"f").fill(0),e0(this,R8,f$(this,b$,"f"),"f"),e0(this,v0,16,"f"),Q==null)Q=1;if(typeof Q==="number")this.setCounterValue(Q);else this.setCounterBytes(Q)}get counter(){return new Uint8Array(f$(this,b$,"f"))}setCounterValue($){if(!Number.isInteger($)||$<0||$>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let Q=15;Q>=0;--Q)f$(this,b$,"f")[Q]=$%256,$=Math.floor($/256)}setCounterBytes($){if($.length!==16)throw TypeError("invalid counter initial Uint8Array value length");f$(this,b$,"f").set($)}increment(){for(let $=15;$>=0;$--)if(f$(this,b$,"f")[$]===255)f$(this,b$,"f")[$]=0;else{f$(this,b$,"f")[$]++;break}}encrypt($){var Q,J;let Y=new Uint8Array($);for(let X=0;X<Y.length;X++){if(f$(this,v0,"f")===16)e0(this,R8,this.aes.encrypt(f$(this,b$,"f")),"f"),e0(this,v0,0,"f"),this.increment();Y[X]^=f$(this,R8,"f")[e0(this,v0,(J=f$(this,v0,"f"),Q=J++,J),"f"),Q]}return Y}decrypt($){return this.encrypt($)}}R8=new WeakMap,v0=new WeakMap,b$=new WeakMap;function UJ($){if($.length<16)throw TypeError("PKCS#7 invalid length");let Q=$[$.length-1];if(Q>16)throw TypeError("PKCS#7 padding byte out of range");let J=$.length-Q;for(let Y=0;Y<Q;Y++)if($[J+Y]!==Q)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array($.subarray(0,J))}function HJ($){if(typeof $==="string"&&!$.startsWith("0x"))$="0x"+$;return v$($)}function $8($,Q){$=String($);while($.length<Q)$="0"+$;return $}function y0($){if(typeof $==="string")return W$($,"NFKC");return v$($)}function Q$($,Q){let J=Q.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);D(J!=null,"invalid path","path",Q);let Y=J[1],X=J[3],Z=J[4]==="!",q=$;for(let G of Y.toLowerCase().split(".")){if(Array.isArray(q)){if(!G.match(/^[0-9]+$/))break;q=q[parseInt(G)]}else if(typeof q==="object"){let M=null;for(let W in q)if(W.toLowerCase()===G){M=q[W];break}q=M}else q=null;if(q==null)break}if(D(!Z||q!=null,"missing required value","path",Y),X&&q!=null){if(X==="int"){if(typeof q==="string"&&q.match(/^-?[0-9]+$/))return parseInt(q);else if(Number.isSafeInteger(q))return q}if(X==="number"){if(typeof q==="string"&&q.match(/^-?[0-9.]*$/))return parseFloat(q)}if(X==="data"){if(typeof q==="string")return HJ(q)}if(X==="array"&&Array.isArray(q))return q;if(X===typeof q)return q;D(!1,`wrong type found for ${X} `,"path",Y)}return q}var wX="m/44'/60'/0'/0/0";function zQ($){try{let Q=JSON.parse($);if((Q.version!=null?parseInt(Q.version):0)===3)return!0}catch(Q){}return!1}function jq($,Q,J){if(Q$($,"crypto.cipher:string")==="aes-128-ctr"){let X=Q$($,"crypto.cipherparams.iv:data!"),Z=new N0(Q,X);return L(Z.decrypt(J))}_(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function VQ($,Q){let J=N(Q),Y=Q$($,"crypto.ciphertext:data!"),X=L(n(i([J.slice(16,32),Y]))).substring(2);D(X===Q$($,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let Z=jq($,J.slice(0,16),Y),q=F$(Z);if($.address){let W=$.address.toLowerCase();if(!W.startsWith("0x"))W="0x"+W;D(m(W)===q,"keystore address/privateKey mismatch","address",$.address)}let G={address:q,privateKey:Z};if(Q$($,"x-ethers.version:string")==="0.1"){let W=J.slice(32,64),V=Q$($,"x-ethers.mnemonicCiphertext:data!"),z=Q$($,"x-ethers.mnemonicCounter:data!"),K=new N0(W,z);G.mnemonic={path:Q$($,"x-ethers.path:string")||wX,locale:Q$($,"x-ethers.locale:string")||"en",entropy:L(N(K.decrypt(V)))}}return G}function BX($){let Q=Q$($,"crypto.kdf:string");if(Q&&typeof Q==="string"){if(Q.toLowerCase()==="scrypt"){let J=Q$($,"crypto.kdfparams.salt:data!"),Y=Q$($,"crypto.kdfparams.n:int!"),X=Q$($,"crypto.kdfparams.r:int!"),Z=Q$($,"crypto.kdfparams.p:int!");D(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),D(X>0&&Z>0,"invalid kdf","kdf",Q);let q=Q$($,"crypto.kdfparams.dklen:int!");return D(q===32,"invalid kdf.dklen","kdf.dflen",q),{name:"scrypt",salt:J,N:Y,r:X,p:Z,dkLen:64}}else if(Q.toLowerCase()==="pbkdf2"){let J=Q$($,"crypto.kdfparams.salt:data!"),Y=Q$($,"crypto.kdfparams.prf:string!"),X=Y.split("-").pop();D(X==="sha256"||X==="sha512","invalid kdf.pdf","kdf.pdf",Y);let Z=Q$($,"crypto.kdfparams.c:int!"),q=Q$($,"crypto.kdfparams.dklen:int!");return D(q===32,"invalid kdf.dklen","kdf.dklen",q),{name:"pbkdf2",salt:J,count:Z,dkLen:q,algorithm:X}}}D(!1,"unsupported key-derivation function","kdf",Q)}function RJ($,Q){let J=JSON.parse($),Y=y0(Q),X=BX(J);if(X.name==="pbkdf2"){let{salt:z,count:K,dkLen:j,algorithm:I}=X,O=P$(Y,z,K,j,I);return VQ(J,O)}_(X.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:X});let{salt:Z,N:q,r:G,p:M,dkLen:W}=X,V=Y0(Y,Z,q,G,M,W);return VQ(J,V)}function SX($){return new Promise((Q)=>{setTimeout(()=>{Q()},$)})}async function LJ($,Q,J){let Y=JSON.parse($),X=y0(Q),Z=BX(Y);if(Z.name==="pbkdf2"){if(J)J(0),await SX(0);let{salt:K,count:j,dkLen:I,algorithm:O}=Z,U=P$(X,K,j,I,O);if(J)J(1),await SX(0);return VQ(Y,U)}_(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:q,N:G,r:M,p:W,dkLen:V}=Z,z=await J0(X,q,G,M,W,V,J);return VQ(Y,z)}function AX($){let Q=$.salt!=null?N($.salt,"options.salt"):Y$(32),J=131072,Y=8,X=1;if($.scrypt){if($.scrypt.N)J=$.scrypt.N;if($.scrypt.r)Y=$.scrypt.r;if($.scrypt.p)X=$.scrypt.p}return D(typeof J==="number"&&J>0&&Number.isSafeInteger(J)&&(BigInt(J)&BigInt(J-1))===BigInt(0),"invalid scrypt N parameter","options.N",J),D(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),D(typeof X==="number"&&X>0&&Number.isSafeInteger(X),"invalid scrypt p parameter","options.p",X),{name:"scrypt",dkLen:32,salt:Q,N:J,r:Y,p:X}}function FX($,Q,J,Y){let X=N(J.privateKey,"privateKey"),Z=Y.iv!=null?N(Y.iv,"options.iv"):Y$(16);D(Z.length===16,"invalid options.iv length","options.iv",Y.iv);let q=Y.uuid!=null?N(Y.uuid,"options.uuid"):Y$(16);D(q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let G=$.slice(0,16),M=$.slice(16,32),W=new N0(G,Z),V=N(W.encrypt(X)),z=n(i([M,V])),K={address:J.address.substring(2).toLowerCase(),id:v8(q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:L(Z).substring(2)},ciphertext:L(V).substring(2),kdf:"scrypt",kdfparams:{salt:L(Q.salt).substring(2),n:Q.N,dklen:32,p:Q.p,r:Q.r},mac:z.substring(2)}};if(J.mnemonic){let j=Y.client!=null?Y.client:`ethers/${w8}`,I=J.mnemonic.path||wX,O=J.mnemonic.locale||"en",U=$.slice(32,64),R=N(J.mnemonic.entropy,"account.mnemonic.entropy"),E=Y$(16),f=new N0(U,E),C=N(f.encrypt(R)),H=new Date,A="UTC--"+(H.getUTCFullYear()+"-"+$8(H.getUTCMonth()+1,2)+"-"+$8(H.getUTCDate(),2)+"T"+$8(H.getUTCHours(),2)+"-"+$8(H.getUTCMinutes(),2)+"-"+$8(H.getUTCSeconds(),2)+".0Z")+"--"+K.address;K["x-ethers"]={client:j,gethFilename:A,path:I,locale:O,mnemonicCounter:L(E).substring(2),mnemonicCiphertext:L(C).substring(2),version:"0.1"}}return JSON.stringify(K)}function L8($,Q,J){if(J==null)J={};let Y=y0(Q),X=AX(J),Z=Y0(Y,X.salt,X.N,X.r,X.p,64);return FX(N(Z),X,$,J)}async function N8($,Q,J){if(J==null)J={};let Y=y0(Q),X=AX(J),Z=await J0(Y,X.salt,X.N,X.r,X.p,64,J.progressCallback);return FX(N(Z),X,$,J)}var DQ="m/44'/60'/0'/0/0",Pq=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),C0=2147483648,Sq=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),wq="0123456789abcdef";function IQ($,Q){let J="";while($)J=wq[$%16]+J,$=Math.trunc($/16);while(J.length<Q*2)J="0"+J;return"0x"+J}function NJ($){let Q=N($),J=u0(q$(q$(Q)),0,4),Y=i([Q,J]);return b8(Y)}var o$={};function kX($,Q,J,Y){let X=new Uint8Array(37);if($&C0)_(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),X.set(N(Y),1);else X.set(N(J));for(let q=24;q>=0;q-=8)X[33+(q>>3)]=$>>24-q&255;let Z=N($0("sha512",Q,X));return{IL:Z.slice(0,32),IR:Z.slice(32)}}function _X($,Q){let J=Q.split("/");if(D(J.length>0,"invalid path","path",Q),J[0]==="m")D($.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${$.depth}`,"path",Q),J.shift();let Y=$;for(let X=0;X<J.length;X++){let Z=J[X];if(Z.match(/^[0-9]+'$/)){let q=parseInt(Z.substring(0,Z.length-1));D(q<C0,"invalid path index",`path[${X}]`,Z),Y=Y.deriveChild(C0+q)}else if(Z.match(/^[0-9]+$/)){let q=parseInt(Z);D(q<C0,"invalid path index",`path[${X}]`,Z),Y=Y.deriveChild(q)}else D(!1,"invalid path component",`path[${X}]`,Z)}return Y}class N$ extends x0{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor($,Q,J,Y,X,Z,q,G,M){super(Q,M);a$($,o$,"HDNodeWallet"),a(this,{publicKey:Q.compressedPublicKey});let W=u0(Q0(q$(this.publicKey)),0,4);a(this,{parentFingerprint:J,fingerprint:W,chainCode:Y,path:X,index:Z,depth:q}),a(this,{mnemonic:G})}connect($){return new N$(o$,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,$)}#$(){let $={address:this.address,privateKey:this.privateKey},Q=this.mnemonic;if(this.path&&Q&&Q.wordlist.locale==="en"&&Q.password==="")$.mnemonic={path:this.path,locale:"en",entropy:Q.entropy};return $}async encrypt($,Q){return await N8(this.#$(),$,{progressCallback:Q})}encryptSync($){return L8(this.#$(),$)}get extendedKey(){return _(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),NJ(i(["0x0488ADE4",IQ(this.depth,1),this.parentFingerprint,IQ(this.index,4),this.chainCode,i(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new Q8(o$,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild($){let Q=M$($,"index");D(Q<=4294967295,"invalid index","index",Q);let J=this.path;if(J){if(J+="/"+(Q&~C0),Q&C0)J+="'"}let{IR:Y,IL:X}=kX(Q,this.chainCode,this.publicKey,this.privateKey),Z=new e(y$((l0(X)+BigInt(this.privateKey))%Sq,32));return new N$(o$,Z,this.fingerprint,L(Y),J,Q,this.depth+1,this.mnemonic,this.provider)}derivePath($){return _X(this,$)}static#Q($,Q){D(l$($),"invalid seed","seed","[REDACTED]");let J=N($,"seed");D(J.length>=16&&J.length<=64,"invalid seed","seed","[REDACTED]");let Y=N($0("sha512",Pq,J)),X=new e(L(Y.slice(0,32)));return new N$(o$,X,"0x00000000",L(Y.slice(32)),"m",0,0,Q,null)}static fromExtendedKey($){let Q=s(x8($));D(Q.length===82||NJ(Q.slice(0,78))===$,"invalid extended key","extendedKey","[ REDACTED ]");let J=Q[4],Y=L(Q.slice(5,9)),X=parseInt(L(Q.slice(9,13)).substring(2),16),Z=L(Q.slice(13,45)),q=Q.slice(45,78);switch(L(Q.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let G=L(q);return new Q8(o$,F$(G),G,Y,Z,null,X,J,null)}case"0x0488ade4":case"0x04358394 ":if(q[0]!==0)break;return new N$(o$,new e(q.slice(1)),Y,Z,null,X,J,null,null)}D(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom($,Q,J){if($==null)$="";if(Q==null)Q=DQ;if(J==null)J=W0.wordlist();let Y=V0.fromEntropy(Y$(16),$,J);return N$.#Q(Y.computeSeed(),Y).derivePath(Q)}static fromMnemonic($,Q){if(!Q)Q=DQ;return N$.#Q($.computeSeed(),$).derivePath(Q)}static fromPhrase($,Q,J,Y){if(Q==null)Q="";if(J==null)J=DQ;if(Y==null)Y=W0.wordlist();let X=V0.fromPhrase($,Q,Y);return N$.#Q(X.computeSeed(),X).derivePath(J)}static fromSeed($){return N$.#Q($,null)}}class Q8 extends O8{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor($,Q,J,Y,X,Z,q,G,M){super(Q,M);a$($,o$,"HDNodeVoidWallet"),a(this,{publicKey:J});let W=u0(Q0(q$(J)),0,4);a(this,{publicKey:J,fingerprint:W,parentFingerprint:Y,chainCode:X,path:Z,index:q,depth:G})}connect($){return new Q8(o$,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,$)}get extendedKey(){return _(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),NJ(i(["0x0488B21E",IQ(this.depth,1),this.parentFingerprint,IQ(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild($){let Q=M$($,"index");D(Q<=4294967295,"invalid index","index",Q);let J=this.path;if(J){if(J+="/"+(Q&~C0),Q&C0)J+="'"}let{IR:Y,IL:X}=kX(Q,this.chainCode,this.publicKey,null),Z=e.addPoints(X,this.publicKey,!0),q=F$(Z);return new Q8(o$,q,Z,this.fingerprint,L(Y),J,Q,this.depth+1,this.provider)}derivePath($){return _X(this,$)}}function KQ($){try{if(JSON.parse($).encseed)return!0}catch(Q){}return!1}function OQ($,Q){let J=JSON.parse($),Y=y0(Q),X=m(Q$(J,"ethaddr:string!")),Z=HJ(Q$(J,"encseed:string!"));D(Z&&Z.length%16===0,"invalid encseed","json",$);let q=N(P$(Y,Y,2000,32,"sha256")).slice(0,16),G=Z.slice(0,16),M=Z.slice(16),W=new H8(q,G),V=UJ(N(W.decrypt(M))),z="";for(let K=0;K<V.length;K++)z+=String.fromCharCode(V[K]);return{address:X,privateKey:M0(z)}}function fX($){return new Promise((Q)=>{setTimeout(()=>{Q()},$)})}class x$ extends x0{constructor($,Q){if(typeof $==="string"&&!$.startsWith("0x"))$="0x"+$;let J=typeof $==="string"?new e($):$;super(J,Q)}connect($){return new x$(this.signingKey,$)}async encrypt($,Q){let J={address:this.address,privateKey:this.privateKey};return await N8(J,$,{progressCallback:Q})}encryptSync($){let Q={address:this.address,privateKey:this.privateKey};return L8(Q,$)}static#$($){if(D($,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in $&&$.mnemonic&&$.mnemonic.locale==="en"){let J=V0.fromEntropy($.mnemonic.entropy),Y=N$.fromMnemonic(J,$.mnemonic.path);if(Y.address===$.address&&Y.privateKey===$.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let Q=new x$($.privateKey);return D(Q.address===$.address,"address/privateKey mismatch","json","[ REDACTED ]"),Q}static async fromEncryptedJson($,Q,J){let Y=null;if(zQ($))Y=await LJ($,Q,J);else if(KQ($)){if(J)J(0),await fX(0);if(Y=OQ($,Q),J)J(1),await fX(0)}return x$.#$(Y)}static fromEncryptedJsonSync($,Q){let J=null;if(zQ($))J=RJ($,Q);else if(KQ($))J=OQ($,Q);else D(!1,"invalid JSON wallet","json","[ REDACTED ]");return x$.#$(J)}static createRandom($){let Q=N$.createRandom();if($)return Q.connect($);return Q}static fromPhrase($,Q){let J=N$.fromPhrase($);if(Q)return J.connect(Q);return J}}var C8=($)=>`${$.slice(0,6)}...${$.slice(-4)}`;function bX($,Q,J,Y=[]){let X=$,Z=Q,q=J,G=(Y||[]).map((w)=>{try{return m(w)}catch(B){return log.warn(`⚠️ SM: Invalid superadmin address skipped: ${C8(w)}`),null}}).filter(Boolean),M=null,W=X&&typeof X.getAddress==="function"?V():Promise.resolve();async function V(){if(X)M=m(await X.getAddress())}async function z(w){X=w,M=null,W=w&&typeof w.getAddress==="function"?V():Promise.resolve(),await W}async function K(){return W}function j(w){let B=(b)=>b&&typeof b==="object"&&!Array.isArray(b)?Object.keys(b).sort().reduce((F,T)=>(F[T]=B(b[T]),F),{}):Array.isArray(b)?b.map(B):b;return JSON.stringify(B(w))}function I(w){if(!w?.signature||!w?.originEthAddress||!w?.originUser)return{ok:!1,reason:"missing-fields"};let B;try{if(B=m(w.originEthAddress),m(w.originUser)!==B)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:b,originEthAddress:F,...T}=w,P=j(T);try{let k=D8(W$(P),b);if(m(k)!==B)return{ok:!1,reason:"invalid-signature"};let{originUser:h,...c}=T;return{ok:!0,normalizedOriginEthAddress:B,payload:c}}catch(k){return{ok:!1,reason:"verify-error",error:k}}}function O(w,B){try{return m(D8(W$(j(w)),B))}catch{return null}}async function U(w){if(await K(),!X||!M)return log.warn("⚠️ SM: Cannot sign outgoing operations; no active signer session."),[];let B=M,b=[];for(let F of w){if(F?.signature&&F?.originEthAddress&&F?.originUser){b.push(F);continue}let T={...F,originUser:B},P=j(T);try{let k=await X.signMessage(W$(P));b.push({...F,originUser:B,originEthAddress:B,signature:k})}catch(k){log.error(`❌ SM: Failed to sign operation for ${C8(B)}:`,k.message)}}return b}async function R(w){let B=[],b="guest";for(let F of w){let T,P;if(F.type==="sync"){B.push(F);continue}if(F.type==="fullStateSync"){if(F.signature&&F.originEthAddress&&F.originUser){let d=I(F);if(!d.ok){log.warn("⚠️ SM: fullStateSync inválido:",d.reason);continue}B.push(d.payload)}else B.push(F);continue}if(F.type==="deltaSync"){if(F.signature&&F.originEthAddress&&F.originUser){let d=I(F);if(!d.ok){log.warn("⚠️ SM: deltaSync inválido:",d.reason);continue}B.push(d.payload)}else B.push(F);continue}{let d=I(F);if(!d.ok){log.warn("⚠️ SM: Operación firmada inválida:",d.reason);continue}T=d.normalizedOriginEthAddress,P=d.payload}let k;if(G.includes(T))k="superadmin";else{let L$=(await Z.get(`user:${T}`)).result?.value;if(k=L$?.role||"guest",L$?.expiresAt&&new Date(L$.expiresAt).getTime()<Date.now())k="guest"}let h=P.type,c=q.mapChangeTypeToAction(h,P);if(h==="upsert"&&P.id===`user:${T}`){if(!(await Z.get(P.id)).result){let L$=M&&M===T,m$={ethAddress:T,role:"guest"},c$=P.value?.pub;if(typeof c$==="string"&&c$.length===68)m$.pub=c$;let r$={...P,value:m$,timestamp:P.timestamp||Z.hybridClock.now()};B.push(r$);continue}else if(k!=="superadmin"&&P.value?.role&&P.value.role!==k)P.value.role=k}let{role:o,ethAddress:J$}=P.value??{};if(o==="superadmin"&&!G.includes(m(J$??""))){log.warn(`⚠️ SM: [POLICY] ${C8(T)} tried to assign superadmin to ${C8(J$)}. Blocked.`);continue}if(q.can(k,c))B.push({...P,signer:T,originUser:F.originUser,originEthAddress:F.originEthAddress,signature:F.signature});else log.warn(`⚠️ SM: ${C8(T)} (role: ${k}) DENIED ${c}`,P)}return{validatedOperations:B}}async function E(w){if(await K(),!X)throw Error("\uD83D\uDEE1️ SM Encrypt: User session (signer) required for encryption.");try{let B=await C("ssm-encrypt-for-current-user-v1"),b=Z.encode(w),F=Z.pako.deflate(b),T=Y$(12),P=await crypto.subtle.encrypt({name:"AES-GCM",iv:T},B,F);return JSON.stringify({iv:L(T),encrypted:L(new Uint8Array(P)),type:"aes-gcm-self-ssm-v2"})}catch(B){throw log.error("\uD83D\uDEE1️ SM: Error in encryptDataForCurrentUser:",B),Error("\uD83D\uDEE1️ SM: Failed to encrypt personal data.")}}async function f(w){if(await K(),!X)throw Error("\uD83D\uDEE1️ SM Decrypt: User session (signer) required for decryption.");let B;try{B=JSON.parse(w)}catch{throw Error("\uD83D\uDEE1️ SM Decrypt: encryptedString is not valid JSON.")}if(B.type!=="aes-gcm-self-ssm-v2")throw Error("\uD83D\uDEE1️ SM Decrypt: Unsupported encryption type or incorrect version.");if(!B.iv||!B.encrypted)throw Error("\uD83D\uDEE1️ SM Decrypt: Invalid encrypted data format.");try{let b=N(B.iv),F=N(B.encrypted),T=await C("ssm-encrypt-for-current-user-v1"),P=await crypto.subtle.decrypt({name:"AES-GCM",iv:b},T,F),k=Z.pako.inflate(new Uint8Array(P));return Z.decode(k)}catch(b){throw log.error("\uD83D\uDEE1️ SM: Error in decryptDataForCurrentUser:",b),Error("\uD83D\uDEE1️ SM: Failed to decrypt personal data.")}}async function C(w="ssm-default-aes-salt"){let B=N(X.privateKey),b=W$(w),F=await crypto.subtle.importKey("raw",B,{name:"PBKDF2"},!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:b,iterations:1e5,hash:"SHA-256"},F,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}let H=(w)=>crypto.subtle.importKey("raw",N(q$(N(w))),{name:"AES-GCM"},!1,["encrypt","decrypt"]);async function S(w,B,b){if(F$(w)!==b)throw Error("\uD83D\uDEE1️ SM Envelope: public key does not match the address.");let F=new e(L(Y$(32))),T=await H(F.computeSharedSecret(w)),P=Y$(12),k=await crypto.subtle.encrypt({name:"AES-GCM",iv:P},T,B);return{p:F.compressedPublicKey,i:L(P),c:L(new Uint8Array(k)),r:e.computePublicKey(w,!0)}}async function A(w){if(await K(),!X)throw Error("\uD83D\uDEE1️ SM Envelope: user session required.");if(!w)throw Error("\uD83D\uDEE1️ SM Envelope: no envelope for this user.");let B=await H(X.signingKey.computeSharedSecret(w.p)),b=await crypto.subtle.decrypt({name:"AES-GCM",iv:N(w.i)},B,N(w.c));return new Uint8Array(b)}async function y(w,B){let b=await crypto.subtle.importKey("raw",B,{name:"AES-GCM"},!1,["encrypt"]),F=Y$(12),T=await crypto.subtle.encrypt({name:"AES-GCM",iv:F},b,Z.pako.deflate(Z.encode(w)));return{iv:L(F),encrypted:L(new Uint8Array(T))}}async function x(w,B,b){let F=await crypto.subtle.importKey("raw",b,{name:"AES-GCM"},!1,["decrypt"]),T=await crypto.subtle.decrypt({name:"AES-GCM",iv:N(B)},F,N(w));return Z.decode(Z.pako.inflate(new Uint8Array(T)))}return{get localUserEthAddress(){return M},updateSigner:z,get publicKey(){return X?.signingKey?.compressedPublicKey??null},wrapKeyFor:S,unwrapKey:A,sealWithKey:y,openWithKey:x,signOutgoingOperations:U,verifyIncomingOperations:R,recoverAuthor:O,encryptDataForCurrentUser:E,decryptDataForCurrentUser:f}}var TQ="gdb_ethereum_material_encrypted_webauthn_v2",E8="gdb_webauthn_registration_details_v2",Aq=($)=>`${$.slice(0,6)}...${$.slice(-4)}`;function J8($){if(!($ instanceof ArrayBuffer))if($.buffer&&$.buffer instanceof ArrayBuffer)$=$.buffer.slice($.byteOffset,$.byteOffset+$.byteLength);else throw log.error("❌ SM: arrayBufferToBase64Url input is not ArrayBuffer nor TypedArray with .buffer",$),Error("arrayBufferToBase64Url: ArrayBuffer or TypedArray required.");return btoa(String.fromCharCode(...new Uint8Array($))).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function Y8($){let Q=$.replace(/-/g,"+").replace(/_/g,"/"),J=atob(Q),Y=new ArrayBuffer(J.length),X=new Uint8Array(Y);for(let Z=0;Z<J.length;Z++)X[Z]=J.charCodeAt(Z);return Y}function xX(){let $=null,Q=null,J=null,Y=null,X=null;async function Z(){let C=x$.createRandom();return J=C.mnemonic.phrase,log.info("\uD83D\uDEE1️ SM: New Ethereum identity generated (mnemonic and private key in memory)."),{address:await C.getAddress(),mnemonic:J,privateKey:C.privateKey}}async function q(C,H){let S=Y$(12),A=N(C),y=await window.crypto.subtle.encrypt({name:"AES-GCM",iv:S},H,A);return JSON.stringify({iv:J8(S.buffer.slice(S.byteOffset,S.byteOffset+S.byteLength)),ciphertext:J8(y)})}async function G(C,H){let{iv:S,ciphertext:A}=JSON.parse(C),y=Y8(S),x=Y8(A),v=await window.crypto.subtle.decrypt({name:"AES-GCM",iv:new Uint8Array(y)},H,x);return L(new Uint8Array(v))}async function M(C,H){let S=await window.crypto.subtle.importKey("raw",H,{name:"PBKDF2"},!1,["deriveKey"]);return window.crypto.subtle.deriveKey({name:"PBKDF2",salt:C,iterations:200000,hash:"SHA-256"},S,{name:"AES-GCM",length:256},!0,["encrypt","decrypt"])}async function W(C,H){let S=localStorage.getItem(TQ);if(!S)return log.warn("⚠️ SM (_loadAndDecrypt): No encrypted Ethereum material found."),O(),null;try{let A=await M(C,H),y=await G(S,A),x=new x$(y);return $=x,Q=await x.getAddress(),J=null,Y=C,X=H,log.info(`✅ SM (_loadAndDecrypt): Session established for ${Aq(Q)}`),Q}catch(A){return log.error("❌ SM (_loadAndDecrypt): Error (decryption/wallet loading):",A),O(),null}}async function V(C){if(!window.navigator.credentials||!window.navigator.credentials.create)return log.error("❌ SM: WebAuthn is not supported by this browser."),alert("WebAuthn is not supported by this browser."),!1;let H=Y$(32),S=H.buffer.slice(H.byteOffset,H.byteOffset+H.byteLength);try{let A=e.computePublicKey(C,!1),y=N(A),x=N(n(y)),v=64,w=x.buffer.slice(x.byteOffset,x.byteOffset+Math.min(x.length,64)),b=new x$(C).address.slice(0,10),F={challenge:S,rp:{name:"GDB WebAuthn App",id:window.location.hostname},user:{id:w,name:`user-${b}`,displayName:"GDB User"},pubKeyCredParams:[{type:"public-key",alg:-7},{type:"public-key",alg:-257}],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"preferred",requireResidentKey:!1},timeout:60000,attestation:"none"},T=await window.navigator.credentials.create({publicKey:F});if(!T||!T.rawId||!T.id)throw Error("❌ WebAuthn registration failed or was canceled (no credential).");let P=T.rawId,k=await M(P,S),h=await q(C,k);return localStorage.setItem(TQ,h),localStorage.setItem(E8,JSON.stringify({credentialIdBase64Url:J8(P),originalChallengeBase64Url:J8(S)})),log.info("\uD83D\uDEE1️ SM: WebAuthn registered and Ethereum key encrypted and saved."),await W(P,S)}catch(A){return log.error("❌ SM: Error during WebAuthn registration:",A),O(),localStorage.removeItem(TQ),localStorage.removeItem(E8),alert(`❌ WebAuthn registration error: ${A.message||"Unknown. Check console."}`),!1}}async function z(){if(!window.navigator.credentials||!window.navigator.credentials.get)return log.error("❌ SM: WebAuthn is not supported."),alert("WebAuthn is not supported by this browser."),null;let C=localStorage.getItem(E8);if(!C)return log.warn("⚠️ SM: No WebAuthn registration details saved."),null;let H;try{H=JSON.parse(C)}catch(v){return log.error("❌ SM: Error parsing WebAuthn registration details from localStorage:",v),null}if(!H.credentialIdBase64Url||!H.originalChallengeBase64Url)return log.error("❌ SM: WebAuthn registration details in localStorage are incomplete."),null;let S=Y8(H.credentialIdBase64Url),A=Y8(H.originalChallengeBase64Url),y=Y$(32),x=y.buffer.slice(y.byteOffset,y.byteOffset+y.byteLength);try{let v={challenge:x,allowCredentials:[{type:"public-key",id:S}],userVerification:"preferred",timeout:60000},w=await window.navigator.credentials.get({publicKey:v});if(!w||!w.rawId||!w.response||!w.response.authenticatorData||!w.response.signature||!w.response.clientDataJSON)throw Error("❌ WebAuthn authentication failed or was canceled (incomplete assertion).");if(J8(w.rawId)!==H.credentialIdBase64Url)throw Error("❌ WebAuthn credential ID in assertion does not match stored ID.");let B=JSON.parse(new TextDecoder().decode(w.response.clientDataJSON));if(B.challenge!==J8(x))throw Error("❌ WebAuthn assertion challenge mismatch.");if(B.origin!==`https://${window.location.hostname}`&&B.origin!==`http://${window.location.hostname}`){let b=window.location.protocol+"//";if(B.origin.startsWith(b+window.location.hostname));else if(window.location.hostname==="localhost"&&B.origin.startsWith(b+"localhost"));else log.warn("⚠️ SM: WebAuthn assertion origin mismatch. Expected based on hostname:",window.location.hostname,"Got:",B.origin)}return log.info("\uD83D\uDEE1️ SM: Interactive WebAuthn assertion received and validated."),await W(w.rawId,A)}catch(v){return log.error("❌ SM: Error during interactive WebAuthn login:",v),O(),null}}async function K(){log.info("\uD83D\uDEE1️ SM: Attempting silent WebAuthn login...");let C=localStorage.getItem(E8);if(!C)return log.warn("⚠️ SM Silent Login: No WebAuthn registration details."),null;let H;try{H=JSON.parse(C)}catch(S){return log.error("❌ SM Silent Login: Error parsing registration details:",S),null}if(!H.credentialIdBase64Url||!H.originalChallengeBase64Url)return log.error("❌ SM Silent Login: Incomplete WebAuthn registration details."),null;try{let S=Y8(H.credentialIdBase64Url),A=Y8(H.originalChallengeBase64Url),y=await W(S,A);if(y)return log.info(`✅ SM Silent Login: Success for ${y}.`),y;else return log.warn("⚠️ SM Silent Login: _loadAndDecryptWalletFromWebAuthnMaterial failed."),null}catch(S){return log.error("❌ SM Silent Login: Error during silent login attempt:",S),O(),null}}async function j(C){try{let H=x$.fromPhrase(C);return $=H,Q=await H.getAddress(),J=C,Y=null,X=null,{address:Q,privateKey:H.privateKey,mnemonic:J}}catch(H){return log.error("❌ SM: Error loading wallet from mnemonic:",H),O(),null}}function I(){return localStorage.getItem(E8)!==null&&localStorage.getItem(TQ)!==null}function O(){$=null,Q=null,J=null,Y=null,X=null}function U(){return $}function R(){return Q}function E(){if(J&&(!Y||!X))return J;return null}function f(){return!!($&&Y&&X)}return{createNewEthereumIdentity:Z,registerAndProtectWithWebAuthn:V,loginWithWebAuthn:z,trySilentWebAuthnLogin:K,loadWalletFromMnemonic:j,hasWebAuthnRegistration:I,logout:O,getSigner:U,getAddress:R,getMnemonicForDisplay:E,isSessionWebAuthnProtected:f}}var j8={$eq:($,Q)=>$===Q,$ne:($,Q)=>$!==Q,$gt:($,Q)=>$>Q,$gte:($,Q)=>$>=Q,$lt:($,Q)=>$<Q,$lte:($,Q)=>$<=Q,$in:($,Q)=>Array.isArray(Q)&&(Array.isArray($)?$.some((J)=>Q.includes(J)):Q.includes($)),$between:($,[Q,J])=>$>=Q&&$<=J,$exists:($,Q)=>Q?$!==void 0:$===void 0,$startsWith:($,Q)=>typeof $==="string"&&$.startsWith(Q),$endsWith:($,Q)=>typeof $==="string"&&$.endsWith(Q),$contains:($,Q)=>typeof $==="string"&&$.includes(Q),$text:{global:($,Q)=>{let J=(X)=>String(X).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=J(Q);return Object.values($).some((X)=>typeof X==="object"?null.fieldSearch(X,Y):J(X).includes(Y))},field:($,Q)=>{let J=(X)=>String(X).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=J(Q);return Array.isArray($)?$.some((X)=>J(X).includes(Y)):J($).includes(Y)}},$like:($,Q)=>typeof $==="string"&&typeof Q==="string"&&new RegExp(`^${Q.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test($),$regex:($,Q)=>typeof $==="string"&&new RegExp(Q.$regex||Q,"i").test($),$and:($,Q,J)=>Q.every((Y)=>J.createFilter(Y,J.allNodes)($)),$or:($,Q,J)=>Q.some((Y)=>J.createFilter(Y,J.allNodes)($)),$not:($,Q,J)=>!J.createFilter(Q,J.allNodes)($),$edge:($,Q,J)=>{if(!$.edges?.length||typeof Q!=="object"||Q===null)return!1;let Y=J.createFilter(Q,J.allNodes),X=[...$.edges],Z=new Set(X).add($.id),q=[];while(X.length){let G=X.shift(),M=J.allNodes[G];if(!M)continue;if(Y(M))q.push(M);M.edges?.forEach((W)=>!Z.has(W)&&Z.add(W)&&X.push(W))}if(q.length)$._edgeResult=q;return q.length>0}},UQ=($,Q)=>Q.split(".").reduce((J,Y)=>J&&typeof J==="object"&&(Y in J)?J[Y]:void 0,$),HQ=($,Q)=>{if(Object.keys($).length===0)return()=>!0;return(J)=>Object.entries($).every(([Y,X])=>{if(Y.startsWith("$"))return j8[Y](J,X,{createFilter:HQ,allNodes:Q});let Z=UQ(J.value,Y);if(Z===void 0)Z=UQ(J,Y);if(X instanceof RegExp)return X.test(String(Z));if(typeof X!=="object"||X===null)return j8.$eq(Z,X);return Object.entries(X).every(([q,G])=>{if(q==="$text")return j8.$text.field(Z,G);if(q==="$between"&&G.every((M)=>M instanceof Date))return j8.$between(new Date(Z),G);return j8[q]?.(Z,G,{createFilter:HQ,allNodes:Q})??!1})})},vX=($,Q)=>{let{$edge:J,...Y}=Q.query||{},X=HQ(Y,$),Z=Object.values($).filter(X),G=[...J?(()=>{let M=HQ({$edge:J},$);Z.forEach((V)=>M(V));let W=new Map;return Z.forEach((V)=>{if(V._edgeResult)V._edgeResult.forEach((z)=>W.set(z.id,z)),delete V._edgeResult}),Array.from(W.values())})():Z];if(Q.field){let M=Q.order==="asc"?1:-1;G.sort((W,V)=>{let z=UQ(W.value,Q.field),K=UQ(V.value,Q.field);if(typeof z==="string"&&typeof K==="string")return z.localeCompare(K)*M;return((z??0)-(K??0))*M})}if(Q.$after){let M=G.findIndex((W)=>W.id===Q.$after);G=M>=0?G.slice(M+1):[]}if(Q.$before){let M=G.findIndex((W)=>W.id===Q.$before);G=M>=0?G.slice(0,M):[]}if(Q.$limit)G=G.slice(0,Q.$limit);return G};var E0=($)=>`${$.slice(0,6)}...${$.slice(-4)}`,jJ={superadmin:{can:["assignRole","deleteAny"],inherits:["admin"]},admin:{can:["delete"],inherits:["manager"]},manager:{can:["publish"],inherits:["user"]},user:{can:["write","link","sync"],inherits:["guest"]},guest:{can:["read","sync"]}},i$="gdb_sm_last_session_was_webauthn";function Fq($){if(typeof $!=="object"||$===null||Array.isArray($))throw Error("\uD83D\uDEE1️ SM: Custom roles must be a valid object.");jJ=$,log.info("\uD83D\uDEE1️ SM: Custom roles set.")}function PJ($,Q,J=new Set){let Y=jJ;if(!$||!Y[$])return!1;if(J.has($))return log.warn(`⚠️ SM: Inheritance loop detected involving role '${$}'.`),!1;if(J.add($),Y[$].can&&Y[$].can.includes(Q))return J.delete($),!0;if(Y[$].inherits&&Array.isArray(Y[$].inherits)){if(Y[$].inherits.some((X)=>PJ(X,Q,new Set(J))))return J.delete($),!0}return J.delete($),!1}function kq($,Q={}){if($==="upsert")return"write";if($==="remove")return"delete";if($==="link")return"link";if($==="unlink")return"link";if($==="sync"||$==="syncReceive"||$==="deltaSync")return"sync";return log.warn(`⚠️ SM mapChangeTypeToAction: Unknown change type '${$}'.`),"unknown"}var Z$=null,D$=null,t=xX(),CJ=[],H$=!1,LQ=new Set,C$=null,h$=!1,NQ=null,CQ=null;function yV($){if(typeof $==="function")NQ=$,E$();else if($===null)NQ=null;else log.warn("⚠️ SM: Attempted to set invalid state change callback.")}function gV($){if(typeof $==="function")CQ=$,E$();else if($===null)CQ=null;else log.warn("⚠️ SM: Attempted to set invalid governance state change callback.")}function E$(){if(NQ)NQ({isActive:H$,activeAddress:D$?.localUserEthAddress||t.getAddress(),abbrAddr:E0(D$?.localUserEthAddress||t.getAddress()||"N/A"),isWebAuthnProtected:h$,hasVolatileIdentity:!!C$,hasWebAuthnHardwareRegistration:t.hasWebAuthnRegistration()});if(CQ)CQ({isActive:H$,activeAddress:D$?.localUserEthAddress||t.getAddress()})}async function hV(){if(H$)await jQ();t.logout(),C$=null,h$=!1,localStorage.removeItem(i$);try{let $=await t.createNewEthereumIdentity();if($)C$=$;return E$(),$}catch($){throw C$=null,E$(),$}}async function mV($){let Q=$||C$?.privateKey;if(!Q)return alert("\uD83D\uDEE1️ SM Error: No volatile ETH identity to protect."),null;if(H$&&h$&&D$?.signer)return D$.localUserEthAddress;if(H$)await jQ();t.logout();let J=await t.registerAndProtectWithWebAuthn(Q);if(J&&t.getSigner()){if(C$=null,h$=!0,localStorage.setItem(i$,"true"),Z$)await EQ(t.getSigner(),{method:"WebAuthn"});else log.warn("⚠️ SM: Identity protected, but GDB not configured. Global SM signing not active.");return J}else return h$=!1,localStorage.removeItem(i$),E$(),null}async function cV(){if(H$)await jQ();t.logout(),C$=null;let $=await t.loginWithWebAuthn();if($&&t.getSigner()){if(h$=!0,localStorage.setItem(i$,"true"),Z$)await EQ(t.getSigner(),{method:"silent WebAuthn"});else log.warn("⚠️ SM: WebAuthn login OK, but GDB not configured for full security activation.");return $}else return h$=!1,localStorage.removeItem(i$),E$(),null}async function uV($){if(H$)await jQ();t.logout(),C$=null;let Q=await t.loadWalletFromMnemonic($);if(Q&&Q.address&&t.getSigner()){if(C$=Q,h$=!1,localStorage.removeItem(i$),Z$)await EQ(t.getSigner(),{method:"mnemonic"});else log.warn("⚠️ SM: Mnemonic loaded, but GDB not configured for full security activation.");return C$}else return E$(),null}var _q=($)=>{let Q=new Map,J=(G,M)=>{if(Q.size>4096)Q.clear();if(!Q.has(M))Q.set(M,$.recoverAuthor(G,M));return Q.get(M)},Y=(G)=>G?.owner??G?._meta?.owner,X=(G,M,W)=>G===M||["write","delete"].includes(W?.[G]),Z=(G,M,W)=>G===M||W?.[G]==="delete",q=(G,M,W,V)=>{let z=M?J(G,M):null;if(!z)return!Y(G?.value)&&!Y(W?.value);if(z!==G.originUser)return!1;let K=V==="remove"?Z:X,j=Y(W?.value);if(j)return K(z,j,W.value.collaborators);let I=Y(G.value);if(I)return z===I;return!0};return{op(G,M){if(!Y(M?.value)&&!Y(G.value))return!0;let W={type:G.type,id:G.id,value:G.value,timestamp:G.timestamp,originUser:G.originUser};return q(W,G.signature,M,G.type==="remove"?"remove":"write")},node(G,M){if(!Y(G?.value)&&!Y(M?.value))return!0;let W=G?.meta;if(!W?.sig||!W?.signedPayload)return!1;return q(W.signedPayload,W.sig,M,"write")},removal(G){return!Y(G?.value)},isOwned:(G)=>!!Y(G)}};async function fq($,Q={}){if(!$){log.error("❌ SM: GDB instance is required.");return}Z$=$,CJ=((Q.superAdmins??[])||[]).map((Z)=>{try{return m(Z)}catch(q){return log.warn(`⚠️ SM: Invalid superadmin address skipped: ${E0(Z)}`),null}}).filter(Boolean);let Y=CJ,X=bX(null,$,{can:PJ,mapChangeTypeToAction:kq},Y);if(D$=X,$.use(async function(q){let{validatedOperations:G}=await X.verifyIncomingOperations(q);return G||[]}),$.setSyncAuthGate?.(_q(X)),LQ.add({db:$,ssm:X,superAdmins:Y}),log.info("\uD83D\uDEE1️ SM: Security context established and middleware registered."),localStorage.getItem(i$)==="true"&&t.hasWebAuthnRegistration()){log.info("\uD83D\uDEE1️ SM: Previous WebAuthn session detected. Attempting silent login...");try{let Z=await t.trySilentWebAuthnLogin();if(Z&&t.getSigner())h$=!0,await EQ(t.getSigner()),log.info(`\uD83D\uDEE1️ SM: Silent WebAuthn login successful for ${E0(Z)}.`);else log.warn("⚠️ SM: Silent WebAuthn login failed or no signer obtained. Manual login required."),localStorage.removeItem(i$),E$()}catch(Z){log.error("❌ SM: Error during silent WebAuthn login attempt:",Z),localStorage.removeItem(i$),E$()}}else E$();if(Q.customRoles)Fq(Q.customRoles);if(Q.acls){log.info("\uD83D\uDEE1️ SM: ACLS options activated.");try{(await import(new URL("./sm-acls.min.js",import.meta.url).href)).start(Z$,Q,D$)}catch(Z){log.error("❌ SM: Failed to load or start the ACLS module.",Z)}}if(Q.governanceRules)try{(await import(new URL("./sm-gov.min.js",import.meta.url).href)).start(Z$,Q)}catch(Z){log.error("❌ SM: Failed to load or start the governance module.",Z)}}var bq=async($,Q)=>{let{results:J}=await $.map({realtime:!1}),Y=J.filter((X)=>!X.meta&&(X.value?.owner??X.value?._meta?.owner)===Q).map(({id:X,value:Z,timestamp:q})=>({type:"upsert",id:X,value:Z,timestamp:q}));if(!Y.length)return;log.info(`\uD83D\uDD0F SM: re-signing ${Y.length} node(s) whose receipt was lost.`),await $.syncChannel.send(Y)},xq=async({db:$,ssm:Q,superAdmins:J},Y,X)=>{await Q.updateSigner(Y);let Z=Q.localUserEthAddress,{syncChannel:q}=$??{};if(q?.send&&!q._originalSendBySM)q._originalSendBySM=q.send.bind(q),q.send=async(G)=>{let M=await Q.signOutgoingOperations(G);return $.captureProvenance?.(M),q._originalSendBySM(M)};bq($,Z).catch((G)=>log.warn("⚠️ SM: could not re-sign own nodes:",G.message));try{let G=Y.signingKey?.compressedPublicKey,{result:M}=await $.get(`user:${Z}`);if(!M)X.role=J.includes(Z)?"superadmin":"guest",X.status="New user.",await $.put({ethAddress:Z,role:X.role,...G&&{pub:G}},`user:${Z}`);else if(X.role=M.value.role||"unknown",G&&!M.value.pub)await $.put({...M.value,pub:G},`user:${Z}`);q?.send?.([{type:"sync",timestamp:null}])}catch(G){log.error(`❌ SM: User node check failed for ${Z}: ${G}`)}return Z},EQ=async($,Q={})=>{if(!LQ.size||!$)return log.error("❌ SM: GDB, SSM, or signer missing."),H$=!1,E$(),!1;let J={role:"unknown",status:"Existing user."},Y=null;for(let Z of LQ)try{Y=await xq(Z,$,J)}catch(q){return log.error("❌ SM: updateSigner failed:",q),H$=!1,E$(),!1}H$=!0,E$();let X=Q.method?` via ${Q.method}`:"";return log.info(`\uD83D\uDEE1️\uD83D\uDD12 SM: ACTIVE for \x1B[32m${E0(Y)} (${J.role})\x1B[0m${X}. ${J.status}`),!0};async function jQ(){for(let{db:$,ssm:Q}of LQ){let J=$?.syncChannel;if(J?._originalSendBySM)J.send=J._originalSendBySM,delete J._originalSendBySM;try{await Q.updateSigner(null)}catch(Y){log.error("❌ SM: Error during signer deactivation in clearSecurity:",Y)}}t.logout(),C$=null,h$=!1,localStorage.removeItem(i$),H$=!1,E$(),log.info("\uD83D\uDEE1️ SM: Session closed. Now in anonymous verification mode.")}var EJ="_gdbSecurePayloadV1",RQ=async($,Q)=>{if(!$)return null;let J=D$,Y=$.value,X=!1;if(Y&&Y._gdbWrapperType===EJ){let{_payload:Z,_meta:q}=Y;Y=typeof Z==="string"?Z:Y;let G=J?.localUserEthAddress&&q?.keys?.[J.localUserEthAddress];if(G)try{Y=await J.openWithKey(Z,q.iv,await J.unwrapKey(G)),X=!0}catch(M){log.error(`❌ SM: Decryption failed for node ${$.id}: ${M.message}`)}else log.warn(`⚠️ SM: No read envelope for node ${$.id}. Owner: ${q?.owner}.`)}return{id:Q??$.id,value:Y,edges:($.edges||[]).map((Z)=>Z.replace(/^SM_ID_PREFIX_/,"")),timestamp:$.timestamp,decrypted:X}};async function pV($,Q){let J=Q??(typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`),Y=`SM_ID_PREFIX_${J}`;if(!Z$)throw Error("❌ SM.put: Not initialized");if(!SJ())throw Error("❌ SM.put: Session not active");let X=D$,Z=X.localUserEthAddress,q=(await Z$.get(Y,null))?.result?.value,G=q?._gdbWrapperType===EJ?q:null;if(q&&!G)throw Error(`❌ SM.put: Node '${J}' exists but is not an SM node. DENIED.`);if(G&&G._meta.owner!==Z&&!["write","delete"].includes(G.collaborators?.[Z]))throw Error(`❌ SM.put: No write permission on node '${J}'. DENIED.`);let M;try{let W=G?await X.unwrapKey(G._meta.keys[Z]):crypto.getRandomValues(new Uint8Array(32)),{iv:V,encrypted:z}=await X.sealWithKey($,W);M={_gdbWrapperType:EJ,_payload:z,collaborators:G?.collaborators??{},_meta:{owner:G?._meta.owner??Z,iv:V,keys:G?._meta.keys??{[Z]:await X.wrapKeyFor(X.publicKey,W,Z)}}}}catch(W){throw log.error(`❌ SM.put: Encryption failed for ID ${Q||"(new)"}: ${W.message}`),W}return log.info(`\uD83D\uDEE1️ SM (put): Storing wrapped secure payload for ID: ${Q||"(new)"}`),await Z$.put(M,Y),J}async function lV($,Q=null){if(!$)throw Error("❌ SM.get: id is required");let J=`SM_ID_PREFIX_${$}`;if(!Z$)throw Error("❌ SM.get: Not initialized");if(!Q){let q=await Z$.get(J,null);return{result:await RQ(q?q.result:null,$)}}let Y=null,X=await Z$.get(J,null);if(Y=await RQ(X?X.result:null,$),typeof Q==="function")Q(Y);let{unsubscribe:Z}=await Z$.get(J,async(q)=>{let G=await RQ(q,$),M=G&&Y&&Z$.hybridClock?.compare(G.timestamp,Y.timestamp)>0,W=JSON.stringify(G?G.value:null)!==JSON.stringify(Y?Y.value:null);if(!G&&Y){if(Y=null,typeof Q==="function")Q(null)}else if(G&&(!Y||M||W)){if(Y=G,typeof Q==="function")Q(G)}});return{result:Y,unsubscribe:()=>{if(Z)Z()}}}async function dV($){if(!$)throw Error("❌ SM.remove: id is required");if(!Z$)throw Error("❌ SM.remove: Not initialized");return Z$.remove(`SM_ID_PREFIX_${$}`)}async function nV($={}){if(!Z$)throw Error("❌ SM.map: Not initialized");let{query:Q,field:J,order:Y="asc",$limit:X,...Z}=$,{results:q}=await Z$.map({...Z,query:{id:/^SM_ID_PREFIX_/},realtime:!1}),G=(await Promise.all(q.map((V)=>RQ(V,V.id.replace("SM_ID_PREFIX_",""))))).filter(Boolean),M=Object.fromEntries(G.map((V)=>[V.id,V]));return{results:vX(M,{query:Q,field:J,order:Y,$limit:X})}}function yX(){if(!H$||!D$?.localUserEthAddress)throw Error("❌ SM Operation: Security not active or no local user ETH identified in SecurityManager.");return D$.localUserEthAddress}async function oV($,Q,J=null){if(!$||!Q)throw Error("❌ SM assignRole: targetUserEthAddress, and role are required.");let Y;try{Y=m($)}catch(W){throw Error(`❌ SM assignRole: targetUserEthAddress '${E0($)}' is invalid.`)}if(!jJ[Q])throw Error(`❌ SM assignRole: Role '${Q}' is not a defined role.`);let X=yX(),Z=`user:${Y}`,G=(await Z$.get(Z)).result?.value||{},M={...G,ethAddress:Y,role:Q,assignedByEthAddress:X,expiresAt:J?new Date(J).toISOString():null,priority:!0};await Z$.put(M,Z),log.info(`\uD83D\uDEE1️ SM: PROMOTING \x1B[32m ${E0(Y)} \x1B[0m from \x1B[32m '${G.role}' \x1B[0m to \x1B[32m ${Q} \x1B[0m by \x1B[32m ${E0(X)} \x1B[0m written.`)}async function vq(){if(!H$||!D$?.localUserEthAddress)return!1;return CJ.includes(D$.localUserEthAddress)}async function yq($,Q="unknown"){let J;try{J=m($)}catch(Z){throw Error(`❌ SM: Invalid ETH address '${E0($)}' when verifying role for op '${Q}'.`)}let Y=await Z$.get(`user:${J}`);if(!Y.result?.value?.role)throw log.warn(`⚠️ SM verifyUserRoleLocal: Node/role not found for ETH ${J}. Op: ${Q}. Data:`,Y.result?.value),Error(`❌ SM: Role not found for ETH ${J} (operation: ${Q}).`);let X=Y.result.value;if(X.expiresAt&&new Date(X.expiresAt)<new Date)throw Error(`❌ SM: Role for ETH ${J} has expired.`);return X.role}async function gq($,Q){let J=await yq($,Q);if(!PJ(J,Q))throw Error(`❌ SM: ETH User ${$} (role ${J}) does not have permission for '${Q}'.`)}async function iV($){if(!$)throw Error("❌ SM executeWithPermission: operationName is required.");let Q=yX();if(!($==="assignRole"&&await vq()))await gq(Q,$);return Q}function rV(){return H$?D$?.localUserEthAddress:null}function SJ(){return H$}function aV(){return H$&&h$}function sV(){return t.hasWebAuthnRegistration()}function tV(){if(C$&&C$.mnemonic&&!t.isSessionWebAuthnProtected())return C$.mnemonic;return t.getMnemonicForDisplay()}async function eV($){if(!SJ()||!D$)throw Error("❌ SM Encryption: Local signing security not active or SecurityManager not available.");return await D$.encryptDataForCurrentUser($)}async function $z($){if(!SJ()||!D$)throw Error("❌ SM Decryption: Local signing security not active or SecurityManager not available.");return await D$.decryptDataForCurrentUser($)}async function Qz($,Q,J={}){Z$=$;let Y=async(Z)=>{if((await $.get(Z,null))?.result)return Z;let q=`SM_ID_PREFIX_${Z}`;return(await $.get(q,null))?.result?q:Z};for(let Z of["link","unlink"]){let q=$[Z].bind($);$[Z]=async(G,M)=>q(await Y(G),await Y(M))}let X={...Q};return $.sm=X,Object.hasOwn(J,"superAdmins")&&await fq($,J),Object.freeze(X),{sm:X}}export{hV as startNewUserRegistration,yV as setSecurityStateChangeCallback,gV as setGovernanceStateChangeCallback,dV as remove,pV as put,mV as protectCurrentIdentityWithWebAuthn,nV as map,uV as loginOrRecoverUserWithMnemonic,cV as loginCurrentUserWithWebAuthn,SJ as isSecurityActive,aV as isCurrentSessionProtectedByWebAuthn,Qz as init,sV as hasExistingWebAuthnRegistration,tV as getMnemonicForDisplayAfterRegistrationOrRecovery,rV as getActiveEthAddress,lV as get,iV as executeWithPermission,eV as encryptDataForCurrentUser,$z as decryptDataForCurrentUser,jQ as clearSecurity,oV as assignRole,E0 as abbrAddr};
|
package/dist/sm.min.js.gz
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genosdb",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.0",
|
|
4
4
|
"description": "GenosDB (GDB): distributed graph database in real-time, peer-to-peer, scalable storage - efficient querying of complex relationships.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|