Googstr/public/vendor/nostr-tools.js
Jason Tudisco fcfaec675a Add NIP-46 signer, optional NIP-07 extension, passkey protection, backups
- NIP-46 remote signer in the page (bunker:// and nostrconnect:// pairing)
- Chrome extension (NIP-07) with per-site permission prompts, unlocked by
  the site via externally_connectable; downloadable from the page
- Passkey (WebAuthn PRF) encryption of the Drive key file
- NIP-49 backups: download or save to Drive; reveal nsec
- Fix: oldest key file wins when two devices sign up at once
- Fix: never overwrite an existing kind-0 because a relay was slow
- Fix: EOSE tracking; relays reconnect with backoff; verify event signatures
- One-click re-sign-in (consent only the first time)
- Vendored, pinned nostr-tools; CSP; no third-party scripts but Google's

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-29 08:33:02 -06:00

3 lines
70 KiB
JavaScript

// nostr-tools@2.25.2 (MIT) — built by scripts/vendor-nostr-tools.sh
var lo=Object.defineProperty;var Ft=(e,t)=>{for(var n in t)lo(e,n,{get:t[n],enumerable:!0})};/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Dt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function X(e,t=""){if(!Number.isSafeInteger(e)||e<0){let n=t&&`"${t}" `;throw new Error(`${n}expected integer >= 0, got ${e}`)}}function V(e,t,n=""){let r=Dt(e),o=e?.length,s=t!==void 0;if(!r||s&&o!==t){let i=n&&`"${n}" `,c=s?` of length ${t}`:"",f=r?`length=${o}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+c+", got "+f)}return e}function xt(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash must wrapped by utils.createHasher");X(e.outputLen),X(e.blockLen)}function kt(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Hn(e,t){V(e,void 0,"digestInto() output");let n=t.outputLen;if(e.length<n)throw new Error('"digestInto() output" expected to be of length >='+n)}function te(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function ft(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Rt(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function dt(e,t){return e<<32-t|e>>>t}function M(e,t){return e<<t|e>>>32-t>>>0}var uo=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ho(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function yo(e){for(let t=0;t<e.length;t++)e[t]=ho(e[t]);return e}var Se=uo?e=>e:yo,Nn=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",go=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function J(e){if(V(e),Nn)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=go[e[n]];return t}var bt={_0:48,_9:57,A:65,F:70,a:97,f:102};function On(e){if(e>=bt._0&&e<=bt._9)return e-bt._0;if(e>=bt.A&&e<=bt.F)return e-(bt.A-10);if(e>=bt.a&&e<=bt.f)return e-(bt.a-10)}function P(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Nn)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(n);for(let o=0,s=0;o<n;o++,s+=2){let i=On(e.charCodeAt(s)),c=On(e.charCodeAt(s+1));if(i===void 0||c===void 0){let f=e[s]+e[s+1];throw new Error('hex string expected, got non-hex character "'+f+'" at index '+s)}r[o]=i*16+c}return r}function po(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Te(e,t=""){return typeof e=="string"?po(e):V(e,void 0,t)}function Q(...e){let t=0;for(let r=0;r<e.length;r++){let o=e[r];V(o),t+=o.length}let n=new Uint8Array(t);for(let r=0,o=0;r<e.length;r++){let s=e[r];n.set(s,o),o+=s.length}return n}function ee(e,t){if(t!==void 0&&{}.toString.call(t)!=="[object Object]")throw new Error("options must be object or undefined");return Object.assign(e,t)}function Cn(e,t={}){let n=(o,s)=>e(s).update(o).digest(),r=e(void 0);return n.outputLen=r.outputLen,n.blockLen=r.blockLen,n.create=o=>e(o),Object.assign(n,t),Object.freeze(n)}function ct(e=32){let t=typeof globalThis=="object"?globalThis.crypto:null;if(typeof t?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return t.getRandomValues(new Uint8Array(e))}var qn=e=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,e])});function Vn(e,t,n){return e&t^~e&n}function Mn(e,t,n){return e&t^e&n^t&n}var ne=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,n,r,o){this.blockLen=t,this.outputLen=n,this.padOffset=r,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Rt(this.buffer)}update(t){kt(this),V(t);let{view:n,buffer:r,blockLen:o}=this,s=t.length;for(let i=0;i<s;){let c=Math.min(o-this.pos,s-i);if(c===o){let f=Rt(t);for(;o<=s-i;i+=o)this.process(f,i);continue}r.set(t.subarray(i,i+c),this.pos),this.pos+=c,i+=c,this.pos===o&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){kt(this),Hn(t,this),this.finished=!0;let{buffer:n,view:r,blockLen:o,isLE:s}=this,{pos:i}=this;n[i++]=128,ft(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(r,0),i=0);for(let u=i;u<o;u++)n[u]=0;r.setBigUint64(o-8,BigInt(this.length*8),s),this.process(r,0);let c=Rt(t),f=this.outputLen;if(f%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let a=f/4,l=this.get();if(a>l.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<a;u++)c.setUint32(4*u,l[u],s)}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let r=t.slice(0,n);return this.destroy(),r}_cloneInto(t){t||=new this.constructor,t.set(...this.get());let{blockLen:n,buffer:r,length:o,finished:s,destroyed:i,pos:c}=this;return t.destroyed=i,t.finished=s,t.length=o,t.pos=c,o%n&&t.buffer.set(r),t}clone(){return this._cloneInto()}},wt=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var bo=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Et=new Uint32Array(64),Ie=class extends ne{constructor(t){super(64,t,8,!1)}get(){let{A:t,B:n,C:r,D:o,E:s,F:i,G:c,H:f}=this;return[t,n,r,o,s,i,c,f]}set(t,n,r,o,s,i,c,f){this.A=t|0,this.B=n|0,this.C=r|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=c|0,this.H=f|0}process(t,n){for(let u=0;u<16;u++,n+=4)Et[u]=t.getUint32(n,!1);for(let u=16;u<64;u++){let y=Et[u-15],d=Et[u-2],g=dt(y,7)^dt(y,18)^y>>>3,p=dt(d,17)^dt(d,19)^d>>>10;Et[u]=p+Et[u-7]+g+Et[u-16]|0}let{A:r,B:o,C:s,D:i,E:c,F:f,G:a,H:l}=this;for(let u=0;u<64;u++){let y=dt(c,6)^dt(c,11)^dt(c,25),d=l+y+Vn(c,f,a)+bo[u]+Et[u]|0,p=(dt(r,2)^dt(r,13)^dt(r,22))+Mn(r,o,s)|0;l=a,a=f,f=c,c=i+d|0,i=s,s=o,o=r,r=d+p|0}r=r+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,c=c+this.E|0,f=f+this.F|0,a=a+this.G|0,l=l+this.H|0,this.set(r,o,s,i,c,f,a,l)}roundClean(){ft(Et)}destroy(){this.set(0,0,0,0,0,0,0,0),ft(this.buffer)}},_e=class extends Ie{A=wt[0]|0;B=wt[1]|0;C=wt[2]|0;D=wt[3]|0;E=wt[4]|0;F=wt[5]|0;G=wt[6]|0;H=wt[7]|0;constructor(){super(32)}};var at=Cn(()=>new _e,qn(1));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Re=BigInt(0),ke=BigInt(1);function Kt(e,t=""){if(typeof e!="boolean"){let n=t&&`"${t}" `;throw new Error(n+"expected boolean, got type="+typeof e)}return e}function Dn(e){if(typeof e=="bigint"){if(!re(e))throw new Error("positive bigint expected, got "+e)}else X(e);return e}function zt(e){let t=Dn(e).toString(16);return t.length&1?"0"+t:t}function Kn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Re:BigInt("0x"+e)}function Bt(e){return Kn(J(e))}function Oe(e){return Kn(J(xo(V(e)).reverse()))}function oe(e,t){X(t),e=Dn(e);let n=P(e.toString(16).padStart(t*2,"0"));if(n.length!==t)throw new Error("number too large");return n}function He(e,t){return oe(e,t).reverse()}function xo(e){return Uint8Array.from(e)}function zn(e){return Uint8Array.from(e,(t,n)=>{let r=t.charCodeAt(0);if(t.length!==1||r>127)throw new Error(`string contains non-ASCII character "${e[n]}" with code ${r} at position ${n}`);return r})}var re=e=>typeof e=="bigint"&&Re<=e;function wo(e,t,n){return re(e)&&re(t)&&re(n)&&t<=e&&e<n}function $n(e,t,n,r){if(!wo(t,n,r))throw new Error("expected valid "+e+": "+n+" <= n < "+r+", got "+t)}function Ne(e){let t;for(t=0;e>Re;e>>=ke,t+=1);return t}var $t=e=>(ke<<BigInt(e))-ke;function Zn(e,t,n){if(X(e,"hashLen"),X(t,"qByteLen"),typeof n!="function")throw new Error("hmacFn must be a function");let r=m=>new Uint8Array(m),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),c=1e3,f=r(e),a=r(e),l=0,u=()=>{f.fill(1),a.fill(0),l=0},y=(...m)=>n(a,Q(f,...m)),d=(m=o)=>{a=y(s,m),f=y(),m.length!==0&&(a=y(i,m),f=y())},g=()=>{if(l++>=c)throw new Error("drbg: tried max amount of iterations");let m=0,E=[];for(;m<t;){f=y();let S=f.slice();E.push(S),m+=f.length}return Q(...E)};return(m,E)=>{u(),d(m);let S;for(;!(S=E(g()));)d();return u(),S}}function Zt(e,t={},n={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function r(s,i,c){let f=e[s];if(c&&f===void 0)return;let a=typeof f;if(a!==i||f===null)throw new Error(`param "${s}" is invalid: expected ${i}, got ${a}`)}let o=(s,i)=>Object.entries(s).forEach(([c,f])=>r(c,f,i));o(t,!1),o(n,!0)}function Ce(e){let t=new WeakMap;return(n,...r)=>{let o=t.get(n);if(o!==void 0)return o;let s=e(n,...r);return t.set(n,s),s}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var it=BigInt(0),st=BigInt(1),Ut=BigInt(2),Gn=BigInt(3),Wn=BigInt(4),Yn=BigInt(5),mo=BigInt(7),Xn=BigInt(8),Eo=BigInt(9),Qn=BigInt(16);function ht(e,t){let n=e%t;return n>=it?n:t+n}function lt(e,t,n){let r=e;for(;t-- >it;)r*=r,r%=n;return r}function jn(e,t){if(e===it)throw new Error("invert: expected non-zero number");if(t<=it)throw new Error("invert: expected positive modulus, got "+t);let n=ht(e,t),r=t,o=it,s=st,i=st,c=it;for(;n!==it;){let a=r/n,l=r%n,u=o-i*a,y=s-c*a;r=n,n=l,o=i,s=c,i=u,c=y}if(r!==st)throw new Error("invert: does not exist");return ht(o,t)}function Ve(e,t,n){if(!e.eql(e.sqr(t),n))throw new Error("Cannot find square root")}function Jn(e,t){let n=(e.ORDER+st)/Wn,r=e.pow(t,n);return Ve(e,r,t),r}function Bo(e,t){let n=(e.ORDER-Yn)/Xn,r=e.mul(t,Ut),o=e.pow(r,n),s=e.mul(t,o),i=e.mul(e.mul(s,Ut),o),c=e.mul(s,e.sub(i,e.ONE));return Ve(e,c,t),c}function vo(e){let t=Ot(e),n=Fn(e),r=n(t,t.neg(t.ONE)),o=n(t,r),s=n(t,t.neg(r)),i=(e+mo)/Qn;return(c,f)=>{let a=c.pow(f,i),l=c.mul(a,r),u=c.mul(a,o),y=c.mul(a,s),d=c.eql(c.sqr(l),f),g=c.eql(c.sqr(u),f);a=c.cmov(a,l,d),l=c.cmov(y,u,g);let p=c.eql(c.sqr(l),f),m=c.cmov(a,l,p);return Ve(c,m,f),m}}function Fn(e){if(e<Gn)throw new Error("sqrt is not defined for small field");let t=e-st,n=0;for(;t%Ut===it;)t/=Ut,n++;let r=Ut,o=Ot(e);for(;Pn(o,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return Jn;let s=o.pow(r,t),i=(t+st)/Ut;return function(f,a){if(f.is0(a))return a;if(Pn(f,a)!==1)throw new Error("Cannot find square root");let l=n,u=f.mul(f.ONE,s),y=f.pow(a,t),d=f.pow(a,i);for(;!f.eql(y,f.ONE);){if(f.is0(y))return f.ZERO;let g=1,p=f.sqr(y);for(;!f.eql(p,f.ONE);)if(g++,p=f.sqr(p),g===l)throw new Error("Cannot find square root");let m=st<<BigInt(l-g-1),E=f.pow(u,m);l=g,u=f.sqr(E),y=f.mul(y,u),d=f.mul(d,E)}return d}}function Ao(e){return e%Wn===Gn?Jn:e%Xn===Yn?Bo:e%Qn===Eo?vo(e):Fn(e)}var Lo=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Me(e){let t={ORDER:"bigint",BYTES:"number",BITS:"number"},n=Lo.reduce((r,o)=>(r[o]="function",r),t);return Zt(e,n),e}function Uo(e,t,n){if(n<it)throw new Error("invalid exponent, negatives unsupported");if(n===it)return e.ONE;if(n===st)return t;let r=e.ONE,o=t;for(;n>it;)n&st&&(r=e.mul(r,o)),o=e.sqr(o),n>>=st;return r}function se(e,t,n=!1){let r=new Array(t.length).fill(n?e.ZERO:void 0),o=t.reduce((i,c,f)=>e.is0(c)?i:(r[f]=i,e.mul(i,c)),e.ONE),s=e.inv(o);return t.reduceRight((i,c,f)=>e.is0(c)?i:(r[f]=e.mul(i,r[f]),e.mul(i,c)),s),r}function Pn(e,t){let n=(e.ORDER-st)/Ut,r=e.pow(t,n),o=e.eql(r,e.ONE),s=e.eql(r,e.ZERO),i=e.eql(r,e.neg(e.ONE));if(!o&&!s&&!i)throw new Error("invalid Legendre symbol result");return o?1:s?0:-1}function So(e,t){t!==void 0&&X(t);let n=t!==void 0?t:e.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}var qe=class{ORDER;BITS;BYTES;isLE;ZERO=it;ONE=st;_lengths;_sqrt;_mod;constructor(t,n={}){if(t<=it)throw new Error("invalid field: expected ORDER > 0, got "+t);let r;this.isLE=!1,n!=null&&typeof n=="object"&&(typeof n.BITS=="number"&&(r=n.BITS),typeof n.sqrt=="function"&&(this.sqrt=n.sqrt),typeof n.isLE=="boolean"&&(this.isLE=n.isLE),n.allowedLengths&&(this._lengths=n.allowedLengths?.slice()),typeof n.modFromBytes=="boolean"&&(this._mod=n.modFromBytes));let{nBitLength:o,nByteLength:s}=So(t,r);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=t,this.BITS=o,this.BYTES=s,this._sqrt=void 0,Object.preventExtensions(this)}create(t){return ht(t,this.ORDER)}isValid(t){if(typeof t!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof t);return it<=t&&t<this.ORDER}is0(t){return t===it}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}isOdd(t){return(t&st)===st}neg(t){return ht(-t,this.ORDER)}eql(t,n){return t===n}sqr(t){return ht(t*t,this.ORDER)}add(t,n){return ht(t+n,this.ORDER)}sub(t,n){return ht(t-n,this.ORDER)}mul(t,n){return ht(t*n,this.ORDER)}pow(t,n){return Uo(this,t,n)}div(t,n){return ht(t*jn(n,this.ORDER),this.ORDER)}sqrN(t){return t*t}addN(t,n){return t+n}subN(t,n){return t-n}mulN(t,n){return t*n}inv(t){return jn(t,this.ORDER)}sqrt(t){return this._sqrt||(this._sqrt=Ao(this.ORDER)),this._sqrt(this,t)}toBytes(t){return this.isLE?He(t,this.BYTES):oe(t,this.BYTES)}fromBytes(t,n=!1){V(t);let{_lengths:r,BYTES:o,isLE:s,ORDER:i,_mod:c}=this;if(r){if(!r.includes(t.length)||t.length>o)throw new Error("Field.fromBytes: expected "+r+" bytes, got "+t.length);let a=new Uint8Array(o);a.set(t,s?0:a.length-t.length),t=a}if(t.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+t.length);let f=s?Oe(t):Bt(t);if(c&&(f=ht(f,i)),!n&&!this.isValid(f))throw new Error("invalid field element: outside of range 0..ORDER");return f}invertBatch(t){return se(this,t)}cmov(t,n,r){return r?n:t}};function Ot(e,t={}){return new qe(e,t)}function tr(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function De(e){let t=tr(e);return t+Math.ceil(t/2)}function ie(e,t,n=!1){V(e);let r=e.length,o=tr(t),s=De(t);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);let i=n?Oe(e):Bt(e),c=ht(i,t-st)+st;return n?He(c,o):oe(c,o)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ht=BigInt(0),St=BigInt(1);function jt(e,t){let n=t.negate();return e?n:t}function Ze(e,t){let n=se(e.Fp,t.map(r=>r.Z));return t.map((r,o)=>e.fromAffine(r.toAffine(n[o])))}function or(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Ke(e,t){or(e,t);let n=Math.ceil(t/e)+1,r=2**(e-1),o=2**e,s=$t(e),i=BigInt(e);return{windows:n,windowSize:r,mask:s,maxNumber:o,shiftBy:i}}function er(e,t,n){let{windowSize:r,mask:o,maxNumber:s,shiftBy:i}=n,c=Number(e&o),f=e>>i;c>r&&(c-=s,f+=St);let a=t*r,l=a+Math.abs(c)-1,u=c===0,y=c<0,d=t%2!==0;return{nextN:f,offset:l,isZero:u,isNeg:y,isNegF:d,offsetF:a}}var ze=new WeakMap,sr=new WeakMap;function $e(e){return sr.get(e)||1}function nr(e){if(e!==Ht)throw new Error("invalid wNAF")}var ce=class{BASE;ZERO;Fn;bits;constructor(t,n){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=n}_unsafeLadder(t,n,r=this.ZERO){let o=t;for(;n>Ht;)n&St&&(r=r.add(o)),o=o.double(),n>>=St;return r}precomputeWindow(t,n){let{windows:r,windowSize:o}=Ke(n,this.bits),s=[],i=t,c=i;for(let f=0;f<r;f++){c=i,s.push(c);for(let a=1;a<o;a++)c=c.add(i),s.push(c);i=c.double()}return s}wNAF(t,n,r){if(!this.Fn.isValid(r))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=Ke(t,this.bits);for(let c=0;c<i.windows;c++){let{nextN:f,offset:a,isZero:l,isNeg:u,isNegF:y,offsetF:d}=er(r,c,i);r=f,l?s=s.add(jt(y,n[d])):o=o.add(jt(u,n[a]))}return nr(r),{p:o,f:s}}wNAFUnsafe(t,n,r,o=this.ZERO){let s=Ke(t,this.bits);for(let i=0;i<s.windows&&r!==Ht;i++){let{nextN:c,offset:f,isZero:a,isNeg:l}=er(r,i,s);if(r=c,!a){let u=n[f];o=o.add(l?u.negate():u)}}return nr(r),o}getPrecomputes(t,n,r){let o=ze.get(n);return o||(o=this.precomputeWindow(n,t),t!==1&&(typeof r=="function"&&(o=r(o)),ze.set(n,o))),o}cached(t,n,r){let o=$e(t);return this.wNAF(o,this.getPrecomputes(o,t,r),n)}unsafe(t,n,r,o){let s=$e(t);return s===1?this._unsafeLadder(t,n,o):this.wNAFUnsafe(s,this.getPrecomputes(s,t,r),n,o)}createCache(t,n){or(n,this.bits),sr.set(t,n),ze.delete(t)}hasCache(t){return $e(t)!==1}};function ir(e,t,n,r){let o=t,s=e.ZERO,i=e.ZERO;for(;n>Ht||r>Ht;)n&St&&(s=s.add(o)),r&St&&(i=i.add(o)),o=o.double(),n>>=St,r>>=St;return{p1:s,p2:i}}function rr(e,t,n){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Me(t),t}else return Ot(e,{isLE:n})}function cr(e,t,n={},r){if(r===void 0&&(r=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);for(let f of["p","n","h"]){let a=t[f];if(!(typeof a=="bigint"&&a>Ht))throw new Error(`CURVE.${f} must be positive bigint`)}let o=rr(t.p,n.Fp,r),s=rr(t.n,n.Fn,r),c=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let f of c)if(!o.isValid(t[f]))throw new Error(`CURVE.${f} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:s}}function fe(e,t){return function(r){let o=e(r);return{secretKey:o,publicKey:t(o)}}}var ae=class{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(t,n){if(xt(t),V(n,void 0,"key"),this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let r=this.blockLen,o=new Uint8Array(r);o.set(n.length>r?t.create().update(n).digest():n);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=t.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),ft(o)}update(t){return kt(this),this.iHash.update(t),this}digestInto(t){kt(this),V(t,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||=Object.create(Object.getPrototypeOf(this),{});let{oHash:n,iHash:r,finished:o,destroyed:s,blockLen:i,outputLen:c}=this;return t=t,t.finished=o,t.destroyed=s,t.blockLen=i,t.outputLen=c,t.oHash=n._cloneInto(t.oHash),t.iHash=r._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},gt=(e,t,n)=>new ae(e,t).update(n).digest();gt.create=(e,t)=>new ae(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var fr=(e,t)=>(e+(e>=0?t:-t)/ar)/t;function To(e,t,n){let[[r,o],[s,i]]=t,c=fr(i*e,n),f=fr(-o*e,n),a=e-c*r-f*s,l=-c*o-f*i,u=a<mt,y=l<mt;u&&(a=-a),y&&(l=-l);let d=$t(Math.ceil(Ne(n)/2))+Nt;if(a<mt||a>=d||l<mt||l>=d)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:u,k1:a,k2neg:y,k2:l}}function Pe(e){if(!["compact","recovered","der"].includes(e))throw new Error('Signature format must be "compact", "recovered", or "der"');return e}function je(e,t){let n={};for(let r of Object.keys(t))n[r]=e[r]===void 0?t[r]:e[r];return Kt(n.lowS,"lowS"),Kt(n.prehash,"prehash"),n.format!==void 0&&Pe(n.format),n}var Ge=class extends Error{constructor(t=""){super(t)}},vt={Err:Ge,_tlv:{encode:(e,t)=>{let{Err:n}=vt;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length&1)throw new n("tlv.encode: unpadded data");let r=t.length/2,o=zt(r);if(o.length/2&128)throw new n("tlv.encode: long form length too big");let s=r>127?zt(o.length/2|128):"";return zt(e)+s+o+t},decode(e,t){let{Err:n}=vt,r=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[r++]!==e)throw new n("tlv.decode: wrong tlv");let o=t[r++],s=!!(o&128),i=0;if(!s)i=o;else{let f=o&127;if(!f)throw new n("tlv.decode(long): indefinite length not supported");if(f>4)throw new n("tlv.decode(long): byte length is too big");let a=t.subarray(r,r+f);if(a.length!==f)throw new n("tlv.decode: length bytes not complete");if(a[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(let l of a)i=i<<8|l;if(r+=f,i<128)throw new n("tlv.decode(long): not minimal encoding")}let c=t.subarray(r,r+i);if(c.length!==i)throw new n("tlv.decode: wrong value length");return{v:c,l:t.subarray(r+i)}}},_int:{encode(e){let{Err:t}=vt;if(e<mt)throw new t("integer: negative integers are not allowed");let n=zt(e);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){let{Err:t}=vt;if(e[0]&128)throw new t("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return Bt(e)}},toSig(e){let{Err:t,_int:n,_tlv:r}=vt,o=V(e,void 0,"signature"),{v:s,l:i}=r.decode(48,o);if(i.length)throw new t("invalid signature: left bytes after parsing");let{v:c,l:f}=r.decode(2,s),{v:a,l}=r.decode(2,f);if(l.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(c),s:n.decode(a)}},hexFromSig(e){let{_tlv:t,_int:n}=vt,r=t.encode(2,n.encode(e.r)),o=t.encode(2,n.encode(e.s)),s=r+o;return t.encode(48,s)}},mt=BigInt(0),Nt=BigInt(1),ar=BigInt(2),le=BigInt(3),Io=BigInt(4);function lr(e,t={}){let n=cr("weierstrass",e,t),{Fp:r,Fn:o}=n,s=n.CURVE,{h:i,n:c}=s;Zt(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:f}=t;if(f&&(!r.is0(s.a)||typeof f.beta!="bigint"||!Array.isArray(f.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let a=dr(r,o);function l(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function u(k,x,b){let{x:h,y:B}=x.toAffine(),A=r.toBytes(h);if(Kt(b,"isCompressed"),b){l();let L=!r.isOdd(B);return Q(ur(L),A)}else return Q(Uint8Array.of(4),A,r.toBytes(B))}function y(k){V(k,void 0,"Point");let{publicKey:x,publicKeyUncompressed:b}=a,h=k.length,B=k[0],A=k.subarray(1);if(h===x&&(B===2||B===3)){let L=r.fromBytes(A);if(!r.isValid(L))throw new Error("bad point: is not on curve, wrong x");let w=p(L),v;try{v=r.sqrt(w)}catch($){let K=$ instanceof Error?": "+$.message:"";throw new Error("bad point: is not on curve, sqrt error"+K)}l();let U=r.isOdd(v);return(B&1)===1!==U&&(v=r.neg(v)),{x:L,y:v}}else if(h===b&&B===4){let L=r.BYTES,w=r.fromBytes(A.subarray(0,L)),v=r.fromBytes(A.subarray(L,L*2));if(!m(w,v))throw new Error("bad point: is not on curve");return{x:w,y:v}}else throw new Error(`bad point: got length ${h}, expected compressed=${x} or uncompressed=${b}`)}let d=t.toBytes||u,g=t.fromBytes||y;function p(k){let x=r.sqr(k),b=r.mul(x,k);return r.add(r.add(b,r.mul(k,s.a)),s.b)}function m(k,x){let b=r.sqr(x),h=p(k);return r.eql(b,h)}if(!m(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let E=r.mul(r.pow(s.a,le),Io),S=r.mul(r.sqr(s.b),BigInt(27));if(r.is0(r.add(E,S)))throw new Error("bad curve params: a or b");function R(k,x,b=!1){if(!r.isValid(x)||b&&r.is0(x))throw new Error(`bad point coordinate ${k}`);return x}function O(k){if(!(k instanceof _))throw new Error("Weierstrass Point expected")}function W(k){if(!f||!f.basises)throw new Error("no endo");return To(k,f.basises,o.ORDER)}let H=Ce((k,x)=>{let{X:b,Y:h,Z:B}=k;if(r.eql(B,r.ONE))return{x:b,y:h};let A=k.is0();x==null&&(x=A?r.ONE:r.inv(B));let L=r.mul(b,x),w=r.mul(h,x),v=r.mul(B,x);if(A)return{x:r.ZERO,y:r.ZERO};if(!r.eql(v,r.ONE))throw new Error("invZ was invalid");return{x:L,y:w}}),z=Ce(k=>{if(k.is0()){if(t.allowInfinityPoint&&!r.is0(k.Y))return;throw new Error("bad point: ZERO")}let{x,y:b}=k.toAffine();if(!r.isValid(x)||!r.isValid(b))throw new Error("bad point: x or y not field elements");if(!m(x,b))throw new Error("bad point: equation left != right");if(!k.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function D(k,x,b,h,B){return b=new _(r.mul(b.X,k),b.Y,b.Z),x=jt(h,x),b=jt(B,b),x.add(b)}class _{static BASE=new _(s.Gx,s.Gy,r.ONE);static ZERO=new _(r.ZERO,r.ONE,r.ZERO);static Fp=r;static Fn=o;X;Y;Z;constructor(x,b,h){this.X=R("x",x),this.Y=R("y",b,!0),this.Z=R("z",h),Object.freeze(this)}static CURVE(){return s}static fromAffine(x){let{x:b,y:h}=x||{};if(!x||!r.isValid(b)||!r.isValid(h))throw new Error("invalid affine point");if(x instanceof _)throw new Error("projective point not allowed");return r.is0(b)&&r.is0(h)?_.ZERO:new _(b,h,r.ONE)}static fromBytes(x){let b=_.fromAffine(g(V(x,void 0,"point")));return b.assertValidity(),b}static fromHex(x){return _.fromBytes(P(x))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(x=8,b=!0){return N.createCache(this,x),b||this.multiply(le),this}assertValidity(){z(this)}hasEvenY(){let{y:x}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(x)}equals(x){O(x);let{X:b,Y:h,Z:B}=this,{X:A,Y:L,Z:w}=x,v=r.eql(r.mul(b,w),r.mul(A,B)),U=r.eql(r.mul(h,w),r.mul(L,B));return v&&U}negate(){return new _(this.X,r.neg(this.Y),this.Z)}double(){let{a:x,b}=s,h=r.mul(b,le),{X:B,Y:A,Z:L}=this,w=r.ZERO,v=r.ZERO,U=r.ZERO,T=r.mul(B,B),$=r.mul(A,A),K=r.mul(L,L),C=r.mul(B,A);return C=r.add(C,C),U=r.mul(B,L),U=r.add(U,U),w=r.mul(x,U),v=r.mul(h,K),v=r.add(w,v),w=r.sub($,v),v=r.add($,v),v=r.mul(w,v),w=r.mul(C,w),U=r.mul(h,U),K=r.mul(x,K),C=r.sub(T,K),C=r.mul(x,C),C=r.add(C,U),U=r.add(T,T),T=r.add(U,T),T=r.add(T,K),T=r.mul(T,C),v=r.add(v,T),K=r.mul(A,L),K=r.add(K,K),T=r.mul(K,C),w=r.sub(w,T),U=r.mul(K,$),U=r.add(U,U),U=r.add(U,U),new _(w,v,U)}add(x){O(x);let{X:b,Y:h,Z:B}=this,{X:A,Y:L,Z:w}=x,v=r.ZERO,U=r.ZERO,T=r.ZERO,$=s.a,K=r.mul(s.b,le),C=r.mul(b,A),Z=r.mul(h,L),Y=r.mul(B,w),et=r.add(b,h),j=r.add(A,L);et=r.mul(et,j),j=r.add(C,Z),et=r.sub(et,j),j=r.add(b,B);let ot=r.add(A,w);return j=r.mul(j,ot),ot=r.add(C,Y),j=r.sub(j,ot),ot=r.add(h,B),v=r.add(L,w),ot=r.mul(ot,v),v=r.add(Z,Y),ot=r.sub(ot,v),T=r.mul($,j),v=r.mul(K,Y),T=r.add(v,T),v=r.sub(Z,T),T=r.add(Z,T),U=r.mul(v,T),Z=r.add(C,C),Z=r.add(Z,C),Y=r.mul($,Y),j=r.mul(K,j),Z=r.add(Z,Y),Y=r.sub(C,Y),Y=r.mul($,Y),j=r.add(j,Y),C=r.mul(Z,j),U=r.add(U,C),C=r.mul(ot,j),v=r.mul(et,v),v=r.sub(v,C),C=r.mul(et,Z),T=r.mul(ot,T),T=r.add(T,C),new _(v,U,T)}subtract(x){return this.add(x.negate())}is0(){return this.equals(_.ZERO)}multiply(x){let{endo:b}=t;if(!o.isValidNot0(x))throw new Error("invalid scalar: out of range");let h,B,A=L=>N.cached(this,L,w=>Ze(_,w));if(b){let{k1neg:L,k1:w,k2neg:v,k2:U}=W(x),{p:T,f:$}=A(w),{p:K,f:C}=A(U);B=$.add(C),h=D(b.beta,T,K,L,v)}else{let{p:L,f:w}=A(x);h=L,B=w}return Ze(_,[h,B])[0]}multiplyUnsafe(x){let{endo:b}=t,h=this;if(!o.isValid(x))throw new Error("invalid scalar: out of range");if(x===mt||h.is0())return _.ZERO;if(x===Nt)return h;if(N.hasCache(this))return this.multiply(x);if(b){let{k1neg:B,k1:A,k2neg:L,k2:w}=W(x),{p1:v,p2:U}=ir(_,h,A,w);return D(b.beta,v,U,B,L)}else return N.unsafe(h,x)}toAffine(x){return H(this,x)}isTorsionFree(){let{isTorsionFree:x}=t;return i===Nt?!0:x?x(_,this):N.unsafe(this,c).is0()}clearCofactor(){let{clearCofactor:x}=t;return i===Nt?this:x?x(_,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(x=!0){return Kt(x,"isCompressed"),this.assertValidity(),d(_,this,x)}toHex(x=!0){return J(this.toBytes(x))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let q=o.BITS,N=new ce(_,t.endo?Math.ceil(q/2):q);return _.BASE.precompute(8),_}function ur(e){return Uint8Array.of(e?2:3)}function dr(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function _o(e,t={}){let{Fn:n}=e,r=t.randomBytes||ct,o=Object.assign(dr(e.Fp,n),{seed:De(n.ORDER)});function s(d){try{let g=n.fromBytes(d);return n.isValidNot0(g)}catch{return!1}}function i(d,g){let{publicKey:p,publicKeyUncompressed:m}=o;try{let E=d.length;return g===!0&&E!==p||g===!1&&E!==m?!1:!!e.fromBytes(d)}catch{return!1}}function c(d=r(o.seed)){return ie(V(d,o.seed,"seed"),n.ORDER)}function f(d,g=!0){return e.BASE.multiply(n.fromBytes(d)).toBytes(g)}function a(d){let{secretKey:g,publicKey:p,publicKeyUncompressed:m}=o;if(!Dt(d)||"_lengths"in n&&n._lengths||g===p)return;let E=V(d,void 0,"key").length;return E===p||E===m}function l(d,g,p=!0){if(a(d)===!0)throw new Error("first arg must be private key");if(a(g)===!1)throw new Error("second arg must be public key");let m=n.fromBytes(d);return e.fromBytes(g).multiply(m).toBytes(p)}let u={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:c},y=fe(c,f);return Object.freeze({getPublicKey:f,getSharedSecret:l,keygen:y,Point:e,utils:u,lengths:o})}function hr(e,t,n={}){xt(t),Zt(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),n=Object.assign({},n);let r=n.randomBytes||ct,o=n.hmac||((b,h)=>gt(t,b,h)),{Fp:s,Fn:i}=e,{ORDER:c,BITS:f}=i,{keygen:a,getPublicKey:l,getSharedSecret:u,utils:y,lengths:d}=_o(e,n),g={prehash:!0,lowS:typeof n.lowS=="boolean"?n.lowS:!0,format:"compact",extraEntropy:!1},p=c*ar<s.ORDER;function m(b){let h=c>>Nt;return b>h}function E(b,h){if(!i.isValidNot0(h))throw new Error(`invalid signature ${b}: out of range 1..Point.Fn.ORDER`);return h}function S(){if(p)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function R(b,h){Pe(h);let B=d.signature,A=h==="compact"?B:h==="recovered"?B+1:void 0;return V(b,A)}class O{r;s;recovery;constructor(h,B,A){if(this.r=E("r",h),this.s=E("s",B),A!=null){if(S(),![0,1,2,3].includes(A))throw new Error("invalid recovery id");this.recovery=A}Object.freeze(this)}static fromBytes(h,B=g.format){R(h,B);let A;if(B==="der"){let{r:U,s:T}=vt.toSig(V(h));return new O(U,T)}B==="recovered"&&(A=h[0],B="compact",h=h.subarray(1));let L=d.signature/2,w=h.subarray(0,L),v=h.subarray(L,L*2);return new O(i.fromBytes(w),i.fromBytes(v),A)}static fromHex(h,B){return this.fromBytes(P(h),B)}assertRecovery(){let{recovery:h}=this;if(h==null)throw new Error("invalid recovery id: must be present");return h}addRecoveryBit(h){return new O(this.r,this.s,h)}recoverPublicKey(h){let{r:B,s:A}=this,L=this.assertRecovery(),w=L===2||L===3?B+c:B;if(!s.isValid(w))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let v=s.toBytes(w),U=e.fromBytes(Q(ur((L&1)===0),v)),T=i.inv(w),$=H(V(h,void 0,"msgHash")),K=i.create(-$*T),C=i.create(A*T),Z=e.BASE.multiplyUnsafe(K).add(U.multiplyUnsafe(C));if(Z.is0())throw new Error("invalid recovery: point at infinify");return Z.assertValidity(),Z}hasHighS(){return m(this.s)}toBytes(h=g.format){if(Pe(h),h==="der")return P(vt.hexFromSig(this));let{r:B,s:A}=this,L=i.toBytes(B),w=i.toBytes(A);return h==="recovered"?(S(),Q(Uint8Array.of(this.assertRecovery()),L,w)):Q(L,w)}toHex(h){return J(this.toBytes(h))}}let W=n.bits2int||function(h){if(h.length>8192)throw new Error("input is too large");let B=Bt(h),A=h.length*8-f;return A>0?B>>BigInt(A):B},H=n.bits2int_modN||function(h){return i.create(W(h))},z=$t(f);function D(b){return $n("num < 2^"+f,b,mt,z),i.toBytes(b)}function _(b,h){return V(b,void 0,"message"),h?V(t(b),void 0,"prehashed message"):b}function q(b,h,B){let{lowS:A,prehash:L,extraEntropy:w}=je(B,g);b=_(b,L);let v=H(b),U=i.fromBytes(h);if(!i.isValidNot0(U))throw new Error("invalid private key");let T=[D(U),D(v)];if(w!=null&&w!==!1){let Z=w===!0?r(d.secretKey):w;T.push(V(Z,void 0,"extraEntropy"))}let $=Q(...T),K=v;function C(Z){let Y=W(Z);if(!i.isValidNot0(Y))return;let et=i.inv(Y),j=e.BASE.multiply(Y).toAffine(),ot=i.create(j.x);if(ot===mt)return;let Jt=i.create(et*i.create(K+ot*U));if(Jt===mt)return;let kn=(j.x===ot?0:2)|Number(j.y&Nt),Rn=Jt;return A&&m(Jt)&&(Rn=i.neg(Jt),kn^=1),new O(ot,Rn,p?void 0:kn)}return{seed:$,k2sig:C}}function N(b,h,B={}){let{seed:A,k2sig:L}=q(b,h,B);return Zn(t.outputLen,i.BYTES,o)(A,L).toBytes(B.format)}function k(b,h,B,A={}){let{lowS:L,prehash:w,format:v}=je(A,g);if(B=V(B,void 0,"publicKey"),h=_(h,w),!Dt(b)){let U=b instanceof O?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+U)}R(b,v);try{let U=O.fromBytes(b,v),T=e.fromBytes(B);if(L&&U.hasHighS())return!1;let{r:$,s:K}=U,C=H(h),Z=i.inv(K),Y=i.create(C*Z),et=i.create($*Z),j=e.BASE.multiplyUnsafe(Y).add(T.multiplyUnsafe(et));return j.is0()?!1:i.create(j.x)===$}catch{return!1}}function x(b,h,B={}){let{prehash:A}=je(B,g);return h=_(h,A),O.fromBytes(b,"recovered").recoverPublicKey(h).toBytes()}return Object.freeze({keygen:a,getPublicKey:l,getSharedSecret:u,utils:y,lengths:d,Point:e,sign:N,verify:k,recoverPublicKey:x,Signature:O,hash:t})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var he={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},ko={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},Ro=BigInt(0),We=BigInt(2);function Oo(e){let t=he.p,n=BigInt(3),r=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),c=BigInt(44),f=BigInt(88),a=e*e*e%t,l=a*a*e%t,u=lt(l,n,t)*l%t,y=lt(u,n,t)*l%t,d=lt(y,We,t)*a%t,g=lt(d,o,t)*d%t,p=lt(g,s,t)*g%t,m=lt(p,c,t)*p%t,E=lt(m,f,t)*m%t,S=lt(E,c,t)*p%t,R=lt(S,n,t)*l%t,O=lt(R,i,t)*g%t,W=lt(O,r,t)*a%t,H=lt(W,We,t);if(!ue.eql(ue.sqr(H),e))throw new Error("Cannot find square root");return H}var ue=Ot(he.p,{sqrt:Oo}),Tt=lr(he,{Fp:ue,endo:ko}),Gt=hr(Tt,at),yr={};function de(e,...t){let n=yr[e];if(n===void 0){let r=at(zn(e));n=Q(r,r),yr[e]=n}return at(Q(n,...t))}var Xe=e=>e.toBytes(!0).slice(1),Qe=e=>e%We===Ro;function Ye(e){let{Fn:t,BASE:n}=Tt,r=t.fromBytes(e),o=n.multiply(r);return{scalar:Qe(o.y)?r:t.neg(r),bytes:Xe(o)}}function pr(e){let t=ue;if(!t.isValidNot0(e))throw new Error("invalid x: Fail if x \u2265 p");let n=t.create(e*e),r=t.create(n*e+BigInt(7)),o=t.sqrt(r);Qe(o)||(o=t.neg(o));let s=Tt.fromAffine({x:e,y:o});return s.assertValidity(),s}var Pt=Bt;function br(...e){return Tt.Fn.create(Pt(de("BIP0340/challenge",...e)))}function gr(e){return Ye(e).bytes}function Ho(e,t,n=ct(32)){let{Fn:r}=Tt,o=V(e,void 0,"message"),{bytes:s,scalar:i}=Ye(t),c=V(n,32,"auxRand"),f=r.toBytes(i^Pt(de("BIP0340/aux",c))),a=de("BIP0340/nonce",f,s,o),{bytes:l,scalar:u}=Ye(a),y=br(l,s,o),d=new Uint8Array(64);if(d.set(l,0),d.set(r.toBytes(r.create(u+y*i)),32),!xr(d,o,s))throw new Error("sign: Invalid signature produced");return d}function xr(e,t,n){let{Fp:r,Fn:o,BASE:s}=Tt,i=V(e,64,"signature"),c=V(t,void 0,"message"),f=V(n,32,"publicKey");try{let a=pr(Pt(f)),l=Pt(i.subarray(0,32));if(!r.isValidNot0(l))return!1;let u=Pt(i.subarray(32,64));if(!o.isValidNot0(u))return!1;let y=br(o.toBytes(l),Xe(a),c),d=s.multiplyUnsafe(u).add(a.multiplyUnsafe(o.neg(y))),{x:g,y:p}=d.toAffine();return!(d.is0()||!Qe(p)||g!==l)}catch{return!1}}var Ct=(()=>{let n=(r=ct(48))=>ie(r,he.n);return{keygen:fe(n,gr),getPublicKey:gr,sign:Ho,verify:xr,Point:Tt,utils:{randomSecretKey:n,taggedHash:de,lift_x:pr,pointToBytes:Xe},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var Oi=new TextDecoder("utf-8"),No=new TextEncoder;function Co(e){if(e.length!==64)return!1;for(let t=0;t<64;t++){let n=e.charCodeAt(t);if(isNaN(n)||n<48||n>102||n>57&&n<97)return!1}return!0}var qt=Symbol("verified"),qo=e=>e instanceof Object;function Vo(e){if(!qo(e)||typeof e.kind!="number"||typeof e.content!="string"||typeof e.created_at!="number"||typeof e.pubkey!="string"||!Co(e.pubkey)||!Array.isArray(e.tags))return!1;for(let t=0;t<e.tags.length;t++){let n=e.tags[t];if(!Array.isArray(n))return!1;for(let r=0;r<n.length;r++)if(typeof n[r]!="string")return!1}return!0}var Mo=class{generateSecretKey(){return Ct.utils.randomSecretKey()}getPublicKey(e){return J(Ct.getPublicKey(e))}finalizeEvent(e,t){let n=e;return n.pubkey=J(Ct.getPublicKey(t)),n.id=Je(n),n.sig=J(Ct.sign(P(Je(n)),t)),n[qt]=!0,n}verifyEvent(e){if(typeof e[qt]=="boolean")return e[qt];try{let t=Je(e);if(t!==e.id)return e[qt]=!1,!1;let n=Ct.verify(P(e.sig),P(t),P(e.pubkey));return e[qt]=n,n}catch{return e[qt]=!1,!1}}};function Do(e){if(!Vo(e))throw new Error("can't serialize event with wrong or missing properties");return JSON.stringify([0,e.pubkey,e.created_at,e.kind,e.tags,e.content])}function Je(e){let t=at(No.encode(Do(e)));return J(t)}var ye=new Mo,Ko=ye.generateSecretKey,zo=ye.getPublicKey,$o=ye.finalizeEvent,Zo=ye.verifyEvent;var _r={};Ft(_r,{BECH32_REGEX:()=>Jo,Bech32MaxSize:()=>sn,NostrTypeGuard:()=>Qo,decode:()=>Ir,decodeNostrURI:()=>ts,encodeBytes:()=>Ee,naddrEncode:()=>is,neventEncode:()=>ss,noteEncode:()=>rs,nprofileEncode:()=>os,npubEncode:()=>ns,nsecEncode:()=>es});/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function nn(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function jo(e){if(!nn(e))throw new Error("Uint8Array expected")}function Br(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(n=>typeof n=="string"):t.every(n=>Number.isSafeInteger(n)):!1}function Po(e){if(typeof e!="function")throw new Error("function expected");return!0}function It(e,t){if(typeof t!="string")throw new Error(`${e}: string expected`);return!0}function rn(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function Fe(e){if(!Array.isArray(e))throw new Error("array expected")}function pe(e,t){if(!Br(!0,t))throw new Error(`${e}: array of strings expected`)}function vr(e,t){if(!Br(!1,t))throw new Error(`${e}: array of numbers expected`)}function Ar(...e){let t=s=>s,n=(s,i)=>c=>s(i(c)),r=e.map(s=>s.encode).reduceRight(n,t),o=e.map(s=>s.decode).reduce(n,t);return{encode:r,decode:o}}function Lr(e){let t=typeof e=="string"?e.split(""):e,n=t.length;pe("alphabet",t);let r=new Map(t.map((o,s)=>[o,s]));return{encode:o=>(Fe(o),o.map(s=>{if(!Number.isSafeInteger(s)||s<0||s>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${s}". Allowed: ${e}`);return t[s]})),decode:o=>(Fe(o),o.map(s=>{It("alphabet.decode",s);let i=r.get(s);if(i===void 0)throw new Error(`Unknown letter: "${s}". Allowed: ${e}`);return i}))}}function Ur(e=""){return It("join",e),{encode:t=>(pe("join.decode",t),t.join(e)),decode:t=>(It("join.decode",t),t.split(e))}}function Go(e,t="="){return rn(e),It("padding",t),{encode(n){for(pe("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){pe("padding.decode",n);let r=n.length;if(r*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===t;r--)if((r-1)*e%8===0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}var Sr=(e,t)=>t===0?e:Sr(t,e%t),be=(e,t)=>e+(t-Sr(e,t)),ge=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function tn(e,t,n,r){if(Fe(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(be(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${be(t,n)}`);let o=0,s=0,i=ge[t],c=ge[n]-1,f=[];for(let a of e){if(rn(a),a>=i)throw new Error(`convertRadix2: invalid data word=${a} from=${t}`);if(o=o<<t|a,s+t>32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${t}`);for(s+=t;s>=n;s-=n)f.push((o>>s-n&c)>>>0);let l=ge[s];if(l===void 0)throw new Error("invalid carry");o&=l-1}if(o=o<<n-s&c,!r&&s>=t)throw new Error("Excess padding");if(!r&&o>0)throw new Error(`Non-zero padding: ${o}`);return r&&s>0&&f.push(o>>>0),f}function Tr(e,t=!1){if(rn(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(be(8,e)>32||be(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!nn(n))throw new Error("radix2.encode input should be Uint8Array");return tn(Array.from(n),8,e,!t)},decode:n=>(vr("radix2.decode",n),Uint8Array.from(tn(n,e,8,t)))}}function wr(e){return Po(e),function(...t){try{return e.apply(null,t)}catch{}}}var Wo=typeof Uint8Array.from([]).toBase64=="function"&&typeof Uint8Array.fromBase64=="function",Yo=(e,t)=>{It("base64",e);let n=t?/^[A-Za-z0-9=_-]+$/:/^[A-Za-z0-9=+/]+$/,r=t?"base64url":"base64";if(e.length>0&&!n.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:r,lastChunkHandling:"strict"})},At=Wo?{encode(e){return jo(e),e.toBase64()},decode(e){return Yo(e,!1)}}:Ar(Tr(6),Lr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),Go(6),Ur(""));var en=Ar(Lr("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Ur("")),mr=[996825010,642813549,513874426,1027748829,705979059];function Wt(e){let t=e>>25,n=(e&33554431)<<5;for(let r=0;r<mr.length;r++)(t>>r&1)===1&&(n^=mr[r]);return n}function Er(e,t,n=1){let r=e.length,o=1;for(let s=0;s<r;s++){let i=e.charCodeAt(s);if(i<33||i>126)throw new Error(`Invalid prefix (${e})`);o=Wt(o)^i>>5}o=Wt(o);for(let s=0;s<r;s++)o=Wt(o)^e.charCodeAt(s)&31;for(let s of t)o=Wt(o)^s;for(let s=0;s<6;s++)o=Wt(o);return o^=n,en.encode(tn([o%ge[30]],30,5,!1))}function Xo(e){let t=e==="bech32"?1:734539939,n=Tr(5),r=n.decode,o=n.encode,s=wr(r);function i(u,y,d=90){It("bech32.encode prefix",u),nn(y)&&(y=Array.from(y)),vr("bech32.encode",y);let g=u.length;if(g===0)throw new TypeError(`Invalid prefix length ${g}`);let p=g+7+y.length;if(d!==!1&&p>d)throw new TypeError(`Length ${p} exceeds limit ${d}`);let m=u.toLowerCase(),E=Er(m,y,t);return`${m}1${en.encode(y)}${E}`}function c(u,y=90){It("bech32.decode input",u);let d=u.length;if(d<8||y!==!1&&d>y)throw new TypeError(`invalid string length: ${d} (${u}). Expected (8..${y})`);let g=u.toLowerCase();if(u!==g&&u!==u.toUpperCase())throw new Error("String must be lowercase or uppercase");let p=g.lastIndexOf("1");if(p===0||p===-1)throw new Error('Letter "1" must be present between prefix and data only');let m=g.slice(0,p),E=g.slice(p+1);if(E.length<6)throw new Error("Data must be at least 6 characters long");let S=en.decode(E).slice(0,-6),R=Er(m,S,t);if(!E.endsWith(R))throw new Error(`Invalid checksum in ${u}: expected "${R}"`);return{prefix:m,words:S}}let f=wr(c);function a(u){let{prefix:y,words:d}=c(u,!1);return{prefix:y,words:d,bytes:r(d)}}function l(u,y){return i(u,o(y))}return{encode:i,decode:c,encodeFromBytes:l,decodeToBytes:a,decodeUnsafe:f,fromWords:r,fromWordsUnsafe:s,toWords:o}}var yt=Xo("bech32");var xe=new TextDecoder("utf-8"),we=new TextEncoder,Qo={isNProfile:e=>/^nprofile1[a-z\d]+$/.test(e||""),isNEvent:e=>/^nevent1[a-z\d]+$/.test(e||""),isNAddr:e=>/^naddr1[a-z\d]+$/.test(e||""),isNSec:e=>/^nsec1[a-z\d]{58}$/.test(e||""),isNPub:e=>/^npub1[a-z\d]{58}$/.test(e||""),isNote:e=>/^note1[a-z\d]+$/.test(e||""),isNcryptsec:e=>/^ncryptsec1[a-z\d]+$/.test(e||"")},sn=5e3,Jo=/[\x21-\x7E]{1,83}1[023456789acdefghjklmnpqrstuvwxyz]{6,}/;function Fo(e){let t=new Uint8Array(4);return t[0]=e>>24&255,t[1]=e>>16&255,t[2]=e>>8&255,t[3]=e&255,t}function ts(e){try{return e.startsWith("nostr:")&&(e=e.substring(6)),Ir(e)}catch{return{type:"invalid",data:null}}}function Ir(e){let{prefix:t,words:n}=yt.decode(e,sn),r=new Uint8Array(yt.fromWords(n));switch(t){case"nprofile":{let o=on(r);if(!o[0]?.[0])throw new Error("missing TLV 0 for nprofile");if(o[0][0].length!==32)throw new Error("TLV 0 should be 32 bytes");return{type:"nprofile",data:{pubkey:J(o[0][0]),relays:o[1]?o[1].map(s=>xe.decode(s)):[]}}}case"nevent":{let o=on(r);if(!o[0]?.[0])throw new Error("missing TLV 0 for nevent");if(o[0][0].length!==32)throw new Error("TLV 0 should be 32 bytes");if(o[2]&&o[2][0].length!==32)throw new Error("TLV 2 should be 32 bytes");if(o[3]&&o[3][0].length!==4)throw new Error("TLV 3 should be 4 bytes");return{type:"nevent",data:{id:J(o[0][0]),relays:o[1]?o[1].map(s=>xe.decode(s)):[],author:o[2]?.[0]?J(o[2][0]):void 0,kind:o[3]?.[0]?parseInt(J(o[3][0]),16):void 0}}}case"naddr":{let o=on(r);if(!o[0]?.[0])throw new Error("missing TLV 0 for naddr");if(!o[2]?.[0])throw new Error("missing TLV 2 for naddr");if(o[2][0].length!==32)throw new Error("TLV 2 should be 32 bytes");if(!o[3]?.[0])throw new Error("missing TLV 3 for naddr");if(o[3][0].length!==4)throw new Error("TLV 3 should be 4 bytes");return{type:"naddr",data:{identifier:xe.decode(o[0][0]),pubkey:J(o[2][0]),kind:parseInt(J(o[3][0]),16),relays:o[1]?o[1].map(s=>xe.decode(s)):[]}}}case"nsec":return{type:t,data:r};case"npub":case"note":return{type:t,data:J(r)};default:throw new Error(`unknown prefix ${t}`)}}function on(e){let t={},n=e;for(;n.length>0;){if(n.length<2)throw new Error("not enough data to read TLV");let r=n[0],o=n[1],s=n.slice(2,2+o);if(n=n.slice(2+o),s.length<o)throw new Error(`not enough data to read on TLV ${r}`);t[r]=t[r]||[],t[r].push(s)}return t}function es(e){return Ee("nsec",e)}function ns(e){return Ee("npub",P(e))}function rs(e){return Ee("note",P(e))}function me(e,t){let n=yt.toWords(t);return yt.encode(e,n,sn)}function Ee(e,t){return me(e,t)}function os(e){let t=cn({0:[P(e.pubkey)],1:(e.relays||[]).map(n=>we.encode(n))});return me("nprofile",t)}function ss(e){let t;e.kind!==void 0&&(t=Fo(e.kind));let n=cn({0:[P(e.id)],1:(e.relays||[]).map(r=>we.encode(r)),2:e.author?[P(e.author)]:[],3:t?[new Uint8Array(t)]:[]});return me("nevent",n)}function is(e){let t=new ArrayBuffer(4);new DataView(t).setUint32(0,e.kind,!1);let n=cn({0:[we.encode(e.identifier)],1:(e.relays||[]).map(r=>we.encode(r)),2:[P(e.pubkey)],3:[new Uint8Array(t)]});return me("naddr",n)}function cn(e){let t=[];return Object.entries(e).reverse().forEach(([n,r])=>{r.forEach(o=>{let s=new Uint8Array(o.length+2);s.set([parseInt(n)],0),s.set([o.length],1),s.set(o,2),t.push(s)})}),Q(...t)}var Dr={};Ft(Dr,{decrypt:()=>Ls,encrypt:()=>As});/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */function cs(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Be(e){if(typeof e!="boolean")throw new Error(`boolean expected, not ${e}`)}function Yt(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function G(e,t,n=""){let r=cs(e),o=e?.length,s=t!==void 0;if(!r||s&&o!==t){let i=n&&`"${n}" `,c=s?` of length ${t}`:"",f=r?`length=${o}`:`type=${typeof e}`;throw new Error(i+"expected Uint8Array"+c+", got "+f)}return e}function fn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function kr(e,t){G(e,void 0,"output");let n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function F(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function nt(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Rr(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}var fs=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Or(e,t){return e.buffer===t.buffer&&e.byteOffset<t.byteOffset+t.byteLength&&t.byteOffset<e.byteOffset+e.byteLength}function an(e,t){if(Or(e,t)&&e.byteOffset<t.byteOffset)throw new Error("complex overlap of input and output is not supported")}function Hr(e,t){if(t==null||typeof t!="object")throw new Error("options must be defined");return Object.assign(e,t)}function Xt(e,t){if(e.length!==t.length)return!1;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return n===0}var Qt=(e,t)=>{function n(r,...o){if(G(r,void 0,"key"),!fs)throw new Error("Non little-endian hardware is not yet supported");if(e.nonceLength!==void 0){let l=o[0];G(l,e.varSizeNonce?void 0:e.nonceLength,"nonce")}let s=e.tagLength;s&&o[1]!==void 0&&G(o[1],void 0,"AAD");let i=t(r,...o),c=(l,u)=>{if(u!==void 0){if(l!==2)throw new Error("cipher output not supported");G(u,void 0,"output")}},f=!1;return{encrypt(l,u){if(f)throw new Error("cannot encrypt() twice with same key + nonce");return f=!0,G(l),c(i.encrypt.length,u),i.encrypt(l,u)},decrypt(l,u){if(G(l),s&&l.length<s)throw new Error('"ciphertext" expected length bigger than tagLength='+s);return c(i.decrypt.length,u),i.decrypt(l,u)}}}return Object.assign(n,e),n};function Vt(e,t,n=!0){if(t===void 0)return new Uint8Array(e);if(t.length!==e)throw new Error('"output" expected Uint8Array of length '+e+", got: "+t.length);if(n&&!_t(t))throw new Error("invalid output, must be aligned");return t}function ln(e,t,n){Be(n);let r=new Uint8Array(16),o=Rr(r);return o.setBigUint64(0,BigInt(t),n),o.setBigUint64(8,BigInt(e),n),r}function _t(e){return e.byteOffset%4===0}function ut(e){return Uint8Array.from(e)}var tt=16;var ls=283;function Cr(e){if(![16,24,32].includes(e.length))throw new Error('"aes key" expected Uint8Array of length 16/24/32, got length='+e.length)}function gn(e){return e<<1^ls&-(e>>7)}function Mt(e,t){let n=0;for(;t>0;t>>=1)n^=e&-(t&1),e=gn(e);return n}var hn=(()=>{let e=new Uint8Array(256);for(let n=0,r=1;n<256;n++,r^=gn(r))e[n]=r;let t=new Uint8Array(256);t[0]=99;for(let n=0;n<255;n++){let r=e[255-n];r|=r<<8,t[e[n]]=(r^r>>4^r>>5^r>>6^r>>7^99)&255}return nt(e),t})(),us=hn.map((e,t)=>hn.indexOf(t)),ds=e=>e<<24|e>>>8,un=e=>e<<8|e>>>24;function qr(e,t){if(e.length!==256)throw new Error("Wrong sbox length");let n=new Uint32Array(256).map((a,l)=>t(e[l])),r=n.map(un),o=r.map(un),s=o.map(un),i=new Uint32Array(256*256),c=new Uint32Array(256*256),f=new Uint16Array(256*256);for(let a=0;a<256;a++)for(let l=0;l<256;l++){let u=a*256+l;i[u]=n[a]^r[l],c[u]=o[a]^s[l],f[u]=e[a]<<8|e[l]}return{sbox:e,sbox2:f,T0:n,T1:r,T2:o,T3:s,T01:i,T23:c}}var pn=qr(hn,e=>Mt(e,3)<<24|e<<16|e<<8|Mt(e,2)),Vr=qr(us,e=>Mt(e,11)<<24|Mt(e,13)<<16|Mt(e,9)<<8|Mt(e,14)),hs=(()=>{let e=new Uint8Array(16);for(let t=0,n=1;t<16;t++,n=gn(n))e[t]=n;return e})();function bn(e){G(e);let t=e.length;Cr(e);let{sbox2:n}=pn,r=[];_t(e)||r.push(e=ut(e));let o=F(e),s=o.length,i=f=>pt(n,f,f,f,f),c=new Uint32Array(t+28);c.set(o);for(let f=s;f<c.length;f++){let a=c[f-1];f%s===0?a=i(ds(a))^hs[f/s-1]:s>6&&f%s===4&&(a=i(a)),c[f]=c[f-s]^a}return nt(...r),c}function ys(e){let t=bn(e),n=t.slice(),r=t.length,{sbox2:o}=pn,{T0:s,T1:i,T2:c,T3:f}=Vr;for(let a=0;a<r;a+=4)for(let l=0;l<4;l++)n[a+l]=t[r-a-4+l];nt(t);for(let a=4;a<r-4;a++){let l=n[a],u=pt(o,l,l,l,l);n[a]=s[u&255]^i[u>>>8&255]^c[u>>>16&255]^f[u>>>24]}return n}function Lt(e,t,n,r,o,s){return e[n<<8&65280|r>>>8&255]^t[o>>>8&65280|s>>>24&255]}function pt(e,t,n,r,o){return e[t&255|n&65280]|e[r>>>16&255|o>>>16&65280]<<16}function yn(e,t,n,r,o){let{sbox2:s,T01:i,T23:c}=pn,f=0;t^=e[f++],n^=e[f++],r^=e[f++],o^=e[f++];let a=e.length/4-2;for(let g=0;g<a;g++){let p=e[f++]^Lt(i,c,t,n,r,o),m=e[f++]^Lt(i,c,n,r,o,t),E=e[f++]^Lt(i,c,r,o,t,n),S=e[f++]^Lt(i,c,o,t,n,r);t=p,n=m,r=E,o=S}let l=e[f++]^pt(s,t,n,r,o),u=e[f++]^pt(s,n,r,o,t),y=e[f++]^pt(s,r,o,t,n),d=e[f++]^pt(s,o,t,n,r);return{s0:l,s1:u,s2:y,s3:d}}function gs(e,t,n,r,o){let{sbox2:s,T01:i,T23:c}=Vr,f=0;t^=e[f++],n^=e[f++],r^=e[f++],o^=e[f++];let a=e.length/4-2;for(let g=0;g<a;g++){let p=e[f++]^Lt(i,c,t,o,r,n),m=e[f++]^Lt(i,c,n,t,o,r),E=e[f++]^Lt(i,c,r,n,t,o),S=e[f++]^Lt(i,c,o,r,n,t);t=p,n=m,r=E,o=S}let l=e[f++]^pt(s,t,o,r,n),u=e[f++]^pt(s,n,t,o,r),y=e[f++]^pt(s,r,n,t,o),d=e[f++]^pt(s,o,r,n,t);return{s0:l,s1:u,s2:y,s3:d}}function ps(e){if(G(e),e.length%tt!==0)throw new Error("aes-(cbc/ecb).decrypt ciphertext should consist of blocks with size "+tt)}function bs(e,t,n){G(e);let r=e.length,o=r%tt;if(!t&&o!==0)throw new Error("aec/(cbc-ecb): unpadded plaintext with disabled padding");_t(e)||(e=ut(e));let s=F(e);if(t){let c=tt-o;c||(c=tt),r=r+c}n=Vt(r,n),an(e,n);let i=F(n);return{b:s,o:i,out:n}}function xs(e,t){if(!t)return e;let n=e.length;if(!n)throw new Error("aes/pcks5: empty ciphertext not allowed");let r=e[n-1];if(r<=0||r>16)throw new Error("aes/pcks5: wrong padding");let o=e.subarray(0,-r);for(let s=0;s<r;s++)if(e[n-s-1]!==r)throw new Error("aes/pcks5: wrong padding");return o}function ws(e){let t=new Uint8Array(16),n=F(t);t.set(e);let r=tt-e.length;for(let o=tt-r;o<tt;o++)t[o]=r;return n}var xn=Qt({blockSize:16,nonceLength:16},function(t,n,r={}){let o=!r.disablePadding;return{encrypt(s,i){let c=bn(t),{b:f,o:a,out:l}=bs(s,o,i),u=n,y=[c];_t(u)||y.push(u=ut(u));let d=F(u),g=d[0],p=d[1],m=d[2],E=d[3],S=0;for(;S+4<=f.length;)g^=f[S+0],p^=f[S+1],m^=f[S+2],E^=f[S+3],{s0:g,s1:p,s2:m,s3:E}=yn(c,g,p,m,E),a[S++]=g,a[S++]=p,a[S++]=m,a[S++]=E;if(o){let R=ws(s.subarray(S*4));g^=R[0],p^=R[1],m^=R[2],E^=R[3],{s0:g,s1:p,s2:m,s3:E}=yn(c,g,p,m,E),a[S++]=g,a[S++]=p,a[S++]=m,a[S++]=E}return nt(...y),l},decrypt(s,i){ps(s);let c=ys(t),f=n,a=[c];_t(f)||a.push(f=ut(f));let l=F(f);i=Vt(s.length,i),_t(s)||a.push(s=ut(s)),an(s,i);let u=F(s),y=F(i),d=l[0],g=l[1],p=l[2],m=l[3];for(let E=0;E+4<=u.length;){let S=d,R=g,O=p,W=m;d=u[E+0],g=u[E+1],p=u[E+2],m=u[E+3];let{s0:H,s1:z,s2:D,s3:_}=gs(c,d,g,p,m);y[E++]=H^S,y[E++]=z^R,y[E++]=D^O,y[E++]=_^W}return nt(...a),xs(i,o)}}});function ms(e){return e instanceof Uint32Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint32Array"}function dn(e,t){if(G(t,16,"block"),!ms(e))throw new Error("_encryptBlock accepts result of expandKeyLE");let n=F(t),{s0:r,s1:o,s2:s,s3:i}=yn(e,n[0],n[1],n[2],n[3]);return n[0]=r,n[1]=o,n[2]=s,n[3]=i,t}function Nr(e){let t=0;for(let n=tt-1;n>=0;n--){let r=(e[n]&128)>>>7;e[n]=e[n]<<1|t,t=r}return t&&(e[tt-1]^=135),e}function ve(e,t){if(e.length!==t.length)throw new Error("xorBlock: blocks must have same length");for(let n=0;n<e.length;n++)e[n]=e[n]^t[n];return e}var Ae=class{buffer;destroyed;k1;k2;xk;constructor(t){G(t),Cr(t),this.xk=bn(t),this.buffer=new Uint8Array(0),this.destroyed=!1;let n=new Uint8Array(tt);dn(this.xk,n),this.k1=Nr(n),this.k2=Nr(new Uint8Array(this.k1))}update(t){let{destroyed:n,buffer:r}=this;if(n)throw new Error("CMAC instance was destroyed");G(t);let o=new Uint8Array(r.length+t.length);return o.set(r),o.set(t,r.length),this.buffer=o,this}digest(){if(this.destroyed)throw new Error("CMAC instance was destroyed");let{buffer:t}=this,n=t.length,r=Math.ceil(n/tt),o;r===0?(r=1,o=!1):o=n%tt===0;let s=(r-1)*tt,i=t.subarray(s),c;if(o)c=ve(new Uint8Array(i),this.k1);else{let a=new Uint8Array(tt);a.set(i),a[i.length]=128,c=ve(a,this.k2)}let f=new Uint8Array(tt);for(let a=0;a<r-1;a++){let l=t.subarray(a*tt,(a+1)*tt);ve(f,l),dn(this.xk,f)}return ve(f,c),dn(this.xk,f),nt(c),f}destroy(){let{buffer:t,destroyed:n,xk:r,k1:o,k2:s}=this;n||(this.destroyed=!0,nt(t,r,o,s))}},Es=(e,t)=>new Ae(e).update(t).digest();Es.create=e=>new Ae(e);var Bs=new TextDecoder("utf-8"),vs=new TextEncoder;function As(e,t,n){let r=e instanceof Uint8Array?e:P(e),o=Gt.getSharedSecret(r,P("02"+t)),s=Mr(o),i=Uint8Array.from(ct(16)),c=vs.encode(n),f=xn(s,i).encrypt(c),a=At.encode(new Uint8Array(f)),l=At.encode(new Uint8Array(i.buffer));return`${a}?iv=${l}`}function Ls(e,t,n){let r=e instanceof Uint8Array?e:P(e),[o,s]=n.split("?iv="),i=Gt.getSharedSecret(r,P("02"+t)),c=Mr(i),f=At.decode(s),a=At.decode(o),l=xn(c,f).decrypt(a);return Bs.decode(l)}function Mr(e){return e.slice(1,33)}var io={};Ft(io,{decrypt:()=>so,encrypt:()=>oo,getConversationKey:()=>Fr,v2:()=>Ks});var zr=e=>Uint8Array.from(e.split(""),t=>t.charCodeAt(0)),Us=zr("expand 16-byte k"),Ss=zr("expand 32-byte k"),Ts=F(Us),Is=F(Ss);function I(e,t){return e<<t|e>>>32-t}function wn(e){return e.byteOffset%4===0}var Le=64,_s=16,$r=2**32-1,Kr=Uint32Array.of();function ks(e,t,n,r,o,s,i,c){let f=o.length,a=new Uint8Array(Le),l=F(a),u=wn(o)&&wn(s),y=u?F(o):Kr,d=u?F(s):Kr;for(let g=0;g<f;i++){if(e(t,n,r,l,i,c),i>=$r)throw new Error("arx: counter overflow");let p=Math.min(Le,f-g);if(u&&p===Le){let m=g/4;if(g%4!==0)throw new Error("arx: invalid block position");for(let E=0,S;E<_s;E++)S=m+E,d[S]=y[S]^l[E];g+=Le;continue}for(let m=0,E;m<p;m++)E=g+m,s[E]=o[E]^a[m];g+=p}}function mn(e,t){let{allowShortKeys:n,extendNonceFn:r,counterLength:o,counterRight:s,rounds:i}=Hr({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},t);if(typeof e!="function")throw new Error("core must be a function");return Yt(o),Yt(i),Be(s),Be(n),(c,f,a,l,u=0)=>{G(c,void 0,"key"),G(f,void 0,"nonce"),G(a,void 0,"data");let y=a.length;if(l===void 0&&(l=new Uint8Array(y)),G(l,void 0,"output"),Yt(u),u<0||u>=$r)throw new Error("arx: counter overflow");if(l.length<y)throw new Error(`arx: output (${l.length}) is shorter than data (${y})`);let d=[],g=c.length,p,m;if(g===32)d.push(p=ut(c)),m=Is;else if(g===16&&n)p=new Uint8Array(32),p.set(c),p.set(c,16),m=Ts,d.push(p);else throw G(c,32,"arx key"),new Error("invalid key size");wn(f)||d.push(f=ut(f));let E=F(p);if(r){if(f.length!==24)throw new Error("arx: extended nonce must be 24 bytes");r(m,E,F(f.subarray(0,16)),E),f=f.subarray(16)}let S=16-o;if(S!==f.length)throw new Error(`arx: nonce must be ${S} or 16 bytes`);if(S!==12){let O=new Uint8Array(12);O.set(f,s?0:12-f.length),f=O,d.push(f)}let R=F(f);return ks(e,m,E,R,a,l,u,i),nt(...d),l}}function rt(e,t){return e[t++]&255|(e[t++]&255)<<8}var En=class{blockLen=16;outputLen=16;buffer=new Uint8Array(16);r=new Uint16Array(10);h=new Uint16Array(10);pad=new Uint16Array(8);pos=0;finished=!1;constructor(t){t=ut(G(t,32,"key"));let n=rt(t,0),r=rt(t,2),o=rt(t,4),s=rt(t,6),i=rt(t,8),c=rt(t,10),f=rt(t,12),a=rt(t,14);this.r[0]=n&8191,this.r[1]=(n>>>13|r<<3)&8191,this.r[2]=(r>>>10|o<<6)&7939,this.r[3]=(o>>>7|s<<9)&8191,this.r[4]=(s>>>4|i<<12)&255,this.r[5]=i>>>1&8190,this.r[6]=(i>>>14|c<<2)&8191,this.r[7]=(c>>>11|f<<5)&8065,this.r[8]=(f>>>8|a<<8)&8191,this.r[9]=a>>>5&127;for(let l=0;l<8;l++)this.pad[l]=rt(t,16+2*l)}process(t,n,r=!1){let o=r?0:2048,{h:s,r:i}=this,c=i[0],f=i[1],a=i[2],l=i[3],u=i[4],y=i[5],d=i[6],g=i[7],p=i[8],m=i[9],E=rt(t,n+0),S=rt(t,n+2),R=rt(t,n+4),O=rt(t,n+6),W=rt(t,n+8),H=rt(t,n+10),z=rt(t,n+12),D=rt(t,n+14),_=s[0]+(E&8191),q=s[1]+((E>>>13|S<<3)&8191),N=s[2]+((S>>>10|R<<6)&8191),k=s[3]+((R>>>7|O<<9)&8191),x=s[4]+((O>>>4|W<<12)&8191),b=s[5]+(W>>>1&8191),h=s[6]+((W>>>14|H<<2)&8191),B=s[7]+((H>>>11|z<<5)&8191),A=s[8]+((z>>>8|D<<8)&8191),L=s[9]+(D>>>5|o),w=0,v=w+_*c+q*(5*m)+N*(5*p)+k*(5*g)+x*(5*d);w=v>>>13,v&=8191,v+=b*(5*y)+h*(5*u)+B*(5*l)+A*(5*a)+L*(5*f),w+=v>>>13,v&=8191;let U=w+_*f+q*c+N*(5*m)+k*(5*p)+x*(5*g);w=U>>>13,U&=8191,U+=b*(5*d)+h*(5*y)+B*(5*u)+A*(5*l)+L*(5*a),w+=U>>>13,U&=8191;let T=w+_*a+q*f+N*c+k*(5*m)+x*(5*p);w=T>>>13,T&=8191,T+=b*(5*g)+h*(5*d)+B*(5*y)+A*(5*u)+L*(5*l),w+=T>>>13,T&=8191;let $=w+_*l+q*a+N*f+k*c+x*(5*m);w=$>>>13,$&=8191,$+=b*(5*p)+h*(5*g)+B*(5*d)+A*(5*y)+L*(5*u),w+=$>>>13,$&=8191;let K=w+_*u+q*l+N*a+k*f+x*c;w=K>>>13,K&=8191,K+=b*(5*m)+h*(5*p)+B*(5*g)+A*(5*d)+L*(5*y),w+=K>>>13,K&=8191;let C=w+_*y+q*u+N*l+k*a+x*f;w=C>>>13,C&=8191,C+=b*c+h*(5*m)+B*(5*p)+A*(5*g)+L*(5*d),w+=C>>>13,C&=8191;let Z=w+_*d+q*y+N*u+k*l+x*a;w=Z>>>13,Z&=8191,Z+=b*f+h*c+B*(5*m)+A*(5*p)+L*(5*g),w+=Z>>>13,Z&=8191;let Y=w+_*g+q*d+N*y+k*u+x*l;w=Y>>>13,Y&=8191,Y+=b*a+h*f+B*c+A*(5*m)+L*(5*p),w+=Y>>>13,Y&=8191;let et=w+_*p+q*g+N*d+k*y+x*u;w=et>>>13,et&=8191,et+=b*l+h*a+B*f+A*c+L*(5*m),w+=et>>>13,et&=8191;let j=w+_*m+q*p+N*g+k*d+x*y;w=j>>>13,j&=8191,j+=b*u+h*l+B*a+A*f+L*c,w+=j>>>13,j&=8191,w=(w<<2)+w|0,w=w+v|0,v=w&8191,w=w>>>13,U+=w,s[0]=v,s[1]=U,s[2]=T,s[3]=$,s[4]=K,s[5]=C,s[6]=Z,s[7]=Y,s[8]=et,s[9]=j}finalize(){let{h:t,pad:n}=this,r=new Uint16Array(10),o=t[1]>>>13;t[1]&=8191;for(let c=2;c<10;c++)t[c]+=o,o=t[c]>>>13,t[c]&=8191;t[0]+=o*5,o=t[0]>>>13,t[0]&=8191,t[1]+=o,o=t[1]>>>13,t[1]&=8191,t[2]+=o,r[0]=t[0]+5,o=r[0]>>>13,r[0]&=8191;for(let c=1;c<10;c++)r[c]=t[c]+o,o=r[c]>>>13,r[c]&=8191;r[9]-=8192;let s=(o^1)-1;for(let c=0;c<10;c++)r[c]&=s;s=~s;for(let c=0;c<10;c++)t[c]=t[c]&s|r[c];t[0]=(t[0]|t[1]<<13)&65535,t[1]=(t[1]>>>3|t[2]<<10)&65535,t[2]=(t[2]>>>6|t[3]<<7)&65535,t[3]=(t[3]>>>9|t[4]<<4)&65535,t[4]=(t[4]>>>12|t[5]<<1|t[6]<<14)&65535,t[5]=(t[6]>>>2|t[7]<<11)&65535,t[6]=(t[7]>>>5|t[8]<<8)&65535,t[7]=(t[8]>>>8|t[9]<<5)&65535;let i=t[0]+n[0];t[0]=i&65535;for(let c=1;c<8;c++)i=(t[c]+n[c]|0)+(i>>>16)|0,t[c]=i&65535;nt(r)}update(t){fn(this),G(t),t=ut(t);let{buffer:n,blockLen:r}=this,o=t.length;for(let s=0;s<o;){let i=Math.min(r-this.pos,o-s);if(i===r){for(;r<=o-s;s+=r)this.process(t,s);continue}n.set(t.subarray(s,s+i),this.pos),this.pos+=i,s+=i,this.pos===r&&(this.process(n,0,!1),this.pos=0)}return this}destroy(){nt(this.h,this.r,this.buffer,this.pad)}digestInto(t){fn(this),kr(t,this),this.finished=!0;let{buffer:n,h:r}=this,{pos:o}=this;if(o){for(n[o++]=1;o<16;o++)n[o]=0;this.process(n,0,!0)}this.finalize();let s=0;for(let i=0;i<8;i++)t[s++]=r[i]>>>0,t[s++]=r[i]>>>8;return t}digest(){let{buffer:t,outputLen:n}=this;this.digestInto(t);let r=t.slice(0,n);return this.destroy(),r}};function Rs(e){let t=(r,o)=>e(o).update(r).digest(),n=e(new Uint8Array(32));return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=r=>e(r),t}var Zr=Rs(e=>new En(e));function Gr(e,t,n,r,o,s=20){let i=e[0],c=e[1],f=e[2],a=e[3],l=t[0],u=t[1],y=t[2],d=t[3],g=t[4],p=t[5],m=t[6],E=t[7],S=o,R=n[0],O=n[1],W=n[2],H=i,z=c,D=f,_=a,q=l,N=u,k=y,x=d,b=g,h=p,B=m,A=E,L=S,w=R,v=O,U=W;for(let $=0;$<s;$+=2)H=H+q|0,L=I(L^H,16),b=b+L|0,q=I(q^b,12),H=H+q|0,L=I(L^H,8),b=b+L|0,q=I(q^b,7),z=z+N|0,w=I(w^z,16),h=h+w|0,N=I(N^h,12),z=z+N|0,w=I(w^z,8),h=h+w|0,N=I(N^h,7),D=D+k|0,v=I(v^D,16),B=B+v|0,k=I(k^B,12),D=D+k|0,v=I(v^D,8),B=B+v|0,k=I(k^B,7),_=_+x|0,U=I(U^_,16),A=A+U|0,x=I(x^A,12),_=_+x|0,U=I(U^_,8),A=A+U|0,x=I(x^A,7),H=H+N|0,U=I(U^H,16),B=B+U|0,N=I(N^B,12),H=H+N|0,U=I(U^H,8),B=B+U|0,N=I(N^B,7),z=z+k|0,L=I(L^z,16),A=A+L|0,k=I(k^A,12),z=z+k|0,L=I(L^z,8),A=A+L|0,k=I(k^A,7),D=D+x|0,w=I(w^D,16),b=b+w|0,x=I(x^b,12),D=D+x|0,w=I(w^D,8),b=b+w|0,x=I(x^b,7),_=_+q|0,v=I(v^_,16),h=h+v|0,q=I(q^h,12),_=_+q|0,v=I(v^_,8),h=h+v|0,q=I(q^h,7);let T=0;r[T++]=i+H|0,r[T++]=c+z|0,r[T++]=f+D|0,r[T++]=a+_|0,r[T++]=l+q|0,r[T++]=u+N|0,r[T++]=y+k|0,r[T++]=d+x|0,r[T++]=g+b|0,r[T++]=p+h|0,r[T++]=m+B|0,r[T++]=E+A|0,r[T++]=S+L|0,r[T++]=R+w|0,r[T++]=O+v|0,r[T++]=W+U|0}function Os(e,t,n,r){let o=e[0],s=e[1],i=e[2],c=e[3],f=t[0],a=t[1],l=t[2],u=t[3],y=t[4],d=t[5],g=t[6],p=t[7],m=n[0],E=n[1],S=n[2],R=n[3];for(let W=0;W<20;W+=2)o=o+f|0,m=I(m^o,16),y=y+m|0,f=I(f^y,12),o=o+f|0,m=I(m^o,8),y=y+m|0,f=I(f^y,7),s=s+a|0,E=I(E^s,16),d=d+E|0,a=I(a^d,12),s=s+a|0,E=I(E^s,8),d=d+E|0,a=I(a^d,7),i=i+l|0,S=I(S^i,16),g=g+S|0,l=I(l^g,12),i=i+l|0,S=I(S^i,8),g=g+S|0,l=I(l^g,7),c=c+u|0,R=I(R^c,16),p=p+R|0,u=I(u^p,12),c=c+u|0,R=I(R^c,8),p=p+R|0,u=I(u^p,7),o=o+a|0,R=I(R^o,16),g=g+R|0,a=I(a^g,12),o=o+a|0,R=I(R^o,8),g=g+R|0,a=I(a^g,7),s=s+l|0,m=I(m^s,16),p=p+m|0,l=I(l^p,12),s=s+l|0,m=I(m^s,8),p=p+m|0,l=I(l^p,7),i=i+u|0,E=I(E^i,16),y=y+E|0,u=I(u^y,12),i=i+u|0,E=I(E^i,8),y=y+E|0,u=I(u^y,7),c=c+f|0,S=I(S^c,16),d=d+S|0,f=I(f^d,12),c=c+f|0,S=I(S^c,8),d=d+S|0,f=I(f^d,7);let O=0;r[O++]=o,r[O++]=s,r[O++]=i,r[O++]=c,r[O++]=m,r[O++]=E,r[O++]=S,r[O++]=R}var Ue=mn(Gr,{counterRight:!1,counterLength:4,allowShortKeys:!1}),Hs=mn(Gr,{counterRight:!1,counterLength:8,extendNonceFn:Os,allowShortKeys:!1});var Ns=new Uint8Array(16),jr=(e,t)=>{e.update(t);let n=t.length%16;n&&e.update(Ns.subarray(n))},Cs=new Uint8Array(32);function Pr(e,t,n,r,o){o!==void 0&&G(o,void 0,"AAD");let s=e(t,n,Cs),i=ln(r.length,o?o.length:0,!0),c=Zr.create(s);o&&jr(c,o),jr(c,r),c.update(i);let f=c.digest();return nt(s,i),f}var Wr=e=>(t,n,r)=>({encrypt(s,i){let c=s.length;i=Vt(c+16,i,!1),i.set(s);let f=i.subarray(0,-16);e(t,n,f,f,1);let a=Pr(e,t,n,f,r);return i.set(a,c),nt(a),i},decrypt(s,i){i=Vt(s.length-16,i,!1);let c=s.subarray(0,-16),f=s.subarray(-16),a=Pr(e,t,n,c,r);if(!Xt(f,a))throw new Error("invalid tag");return i.set(s.subarray(0,-16)),e(t,n,i,i,1),nt(a),i}}),ic=Qt({blockSize:64,nonceLength:12,tagLength:16},Wr(Ue)),Bn=Qt({blockSize:64,nonceLength:24,tagLength:16},Wr(Hs));function Xr(e,t,n){return xt(e),n===void 0&&(n=new Uint8Array(e.outputLen)),gt(e,n,t)}var vn=Uint8Array.of(0),Yr=Uint8Array.of();function Qr(e,t,n,r=32){xt(e),X(r,"length");let o=e.outputLen;if(r>255*o)throw new Error("Length must be <= 255*HashLen");let s=Math.ceil(r/o);n===void 0?n=Yr:V(n,void 0,"info");let i=new Uint8Array(s*o),c=gt.create(e,t),f=c._cloneInto(),a=new Uint8Array(c.outputLen);for(let l=0;l<s;l++)vn[0]=l+1,f.update(l===0?Yr:a).update(n).update(vn).digestInto(a),i.set(a,o*l),c._cloneInto(f);return c.destroy(),f.destroy(),ft(a,vn),i.slice(0,r)}var qs=new TextDecoder("utf-8"),Jr=new TextEncoder,An=1,Ln=4294967295,Un=65536;function Fr(e,t){let n=Gt.getSharedSecret(e,P("02"+t)).subarray(1,33);return Xr(at,n,Jr.encode("nip44-v2"))}function to(e,t){let n=Qr(at,e,t,76);return{chacha_key:n.subarray(0,32),chacha_nonce:n.subarray(32,44),hmac_key:n.subarray(44,76)}}function Sn(e){if(!Number.isSafeInteger(e)||e<1)throw new Error("expected positive integer");if(e<=32)return 32;let t=2**(Math.floor(Math.log2(e-1))+1),n=t<=256?32:t/8;return n*(Math.floor((e-1)/n)+1)}function Vs(e){if(!Number.isSafeInteger(e)||e<An||e>65535)throw new Error("invalid plaintext size: must be between 1 and 65535 bytes");let t=new Uint8Array(2);return new DataView(t.buffer).setUint16(0,e,!1),t}function Ms(e){if(!Number.isSafeInteger(e)||e<Un||e>Ln)throw new Error("invalid plaintext size: must be between 65536 and 4294967295 bytes");let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!1),t}function eo(e){let t=Jr.encode(e),n=t.length;if(n<An||n>Ln)throw new Error("invalid plaintext size: must be between 1 and 4294967295 bytes");let r=n>=Un?Q(new Uint8Array([0,0]),Ms(n)):Vs(n),o=new Uint8Array(Sn(n)-n);return Q(r,t,o)}function no(e){let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=t.getUint16(0),r,o;if(n===0){if(r=t.getUint32(2),r<Un)throw new Error("invalid padding");o=6}else r=n,o=2;let s=e.subarray(o,o+r);if(r<An||r>Ln||s.length!==r||e.length!==o+Sn(r))throw new Error("invalid padding");return qs.decode(s)}function ro(e,t,n){if(n.length!==32)throw new Error("AAD associated data must be 32 bytes");let r=Q(n,t);return gt(at,e,r)}function Ds(e){if(typeof e!="string")throw new Error("payload must be a valid string");let t=e.length;if(t<132)throw new Error("invalid payload length: "+t);if(e[0]==="#")throw new Error("unknown encryption version");let n;try{n=At.decode(e)}catch(s){throw new Error("invalid base64: "+s.message)}let r=n.length;if(r<99)throw new Error("invalid data length: "+r);let o=n[0];if(o!==2)throw new Error("unknown encryption version "+o);return{nonce:n.subarray(1,33),ciphertext:n.subarray(33,-32),mac:n.subarray(-32)}}function oo(e,t,n=ct(32)){let{chacha_key:r,chacha_nonce:o,hmac_key:s}=to(t,n),i=eo(e),c=Ue(r,o,i),f=ro(s,c,n);return At.encode(Q(new Uint8Array([2]),n,c,f))}function so(e,t){let{nonce:n,ciphertext:r,mac:o}=Ds(e),{chacha_key:s,chacha_nonce:i,hmac_key:c}=to(t,n),f=ro(c,r,n);if(!Xt(f,o))throw new Error("invalid MAC");let a=Ue(s,i,r);return no(a)}var Ks={utils:{getConversationKey:Fr,calcPaddedLen:Sn,pad:eo,unpad:no},encrypt:oo,decrypt:so};var ao={};Ft(ao,{decrypt:()=>Xs,encrypt:()=>Ys});function $s(e,t,n,r){xt(e);let o=ee({dkLen:32,asyncTick:10},r),{c:s,dkLen:i,asyncTick:c}=o;if(X(s,"c"),X(i,"dkLen"),X(c,"asyncTick"),s<1)throw new Error("iterations (c) must be >= 1");let f=Te(t,"password"),a=Te(n,"salt"),l=new Uint8Array(i),u=gt.create(e,f),y=u._cloneInto().update(a);return{c:s,dkLen:i,asyncTick:c,DK:l,PRF:u,PRFSalt:y}}function Zs(e,t,n,r,o){return e.destroy(),t.destroy(),r&&r.destroy(),ft(o),n}function Tn(e,t,n,r){let{c:o,dkLen:s,DK:i,PRF:c,PRFSalt:f}=$s(e,t,n,r),a,l=new Uint8Array(4),u=Rt(l),y=new Uint8Array(c.outputLen);for(let d=1,g=0;g<s;d++,g+=c.outputLen){let p=i.subarray(g,g+c.outputLen);u.setInt32(0,d,!1),(a=f._cloneInto(a)).update(l).digestInto(y),p.set(y.subarray(0,p.length));for(let m=1;m<o;m++){c._cloneInto(a).update(y).digestInto(y);for(let E=0;E<p.length;E++)p[E]^=y[E]}}return Zs(c,f,i,a,y)}function co(e,t,n,r,o,s){let i=e[t++]^n[r++],c=e[t++]^n[r++],f=e[t++]^n[r++],a=e[t++]^n[r++],l=e[t++]^n[r++],u=e[t++]^n[r++],y=e[t++]^n[r++],d=e[t++]^n[r++],g=e[t++]^n[r++],p=e[t++]^n[r++],m=e[t++]^n[r++],E=e[t++]^n[r++],S=e[t++]^n[r++],R=e[t++]^n[r++],O=e[t++]^n[r++],W=e[t++]^n[r++],H=i,z=c,D=f,_=a,q=l,N=u,k=y,x=d,b=g,h=p,B=m,A=E,L=S,w=R,v=O,U=W;for(let T=0;T<8;T+=2)q^=M(H+L|0,7),b^=M(q+H|0,9),L^=M(b+q|0,13),H^=M(L+b|0,18),h^=M(N+z|0,7),w^=M(h+N|0,9),z^=M(w+h|0,13),N^=M(z+w|0,18),v^=M(B+k|0,7),D^=M(v+B|0,9),k^=M(D+v|0,13),B^=M(k+D|0,18),_^=M(U+A|0,7),x^=M(_+U|0,9),A^=M(x+_|0,13),U^=M(A+x|0,18),z^=M(H+_|0,7),D^=M(z+H|0,9),_^=M(D+z|0,13),H^=M(_+D|0,18),k^=M(N+q|0,7),x^=M(k+N|0,9),q^=M(x+k|0,13),N^=M(q+x|0,18),A^=M(B+h|0,7),b^=M(A+B|0,9),h^=M(b+A|0,13),B^=M(h+b|0,18),L^=M(U+v|0,7),w^=M(L+U|0,9),v^=M(w+L|0,13),U^=M(v+w|0,18);o[s++]=i+H|0,o[s++]=c+z|0,o[s++]=f+D|0,o[s++]=a+_|0,o[s++]=l+q|0,o[s++]=u+N|0,o[s++]=y+k|0,o[s++]=d+x|0,o[s++]=g+b|0,o[s++]=p+h|0,o[s++]=m+B|0,o[s++]=E+A|0,o[s++]=S+L|0,o[s++]=R+w|0,o[s++]=O+v|0,o[s++]=W+U|0}function In(e,t,n,r,o){let s=r+0,i=r+16*o;for(let c=0;c<16;c++)n[i+c]=e[t+(2*o-1)*16+c];for(let c=0;c<o;c++,s+=16,t+=16)co(n,i,e,t,n,s),c>0&&(i+=16),co(n,s,e,t+=16,n,i)}function js(e,t,n){let r=ee({dkLen:32,asyncTick:10,maxmem:1073742848},n),{N:o,r:s,p:i,dkLen:c,asyncTick:f,maxmem:a,onProgress:l}=r;if(X(o,"N"),X(s,"r"),X(i,"p"),X(c,"dkLen"),X(f,"asyncTick"),X(a,"maxmem"),l!==void 0&&typeof l!="function")throw new Error("progressCb must be a function");let u=128*s,y=u/4,d=Math.pow(2,32);if(o<=1||(o&o-1)!==0||o>d)throw new Error('"N" expected a power of 2, and 2^1 <= N <= 2^32');if(i<1||i>(d-1)*32/u)throw new Error('"p" expected integer 1..((2^32 - 1) * 32) / (128 * r)');if(c<1||c>(d-1)*32)throw new Error('"dkLen" expected integer 1..(2^32 - 1) * 32');if(u*(o+i)>a)throw new Error('"maxmem" limit was hit, expected 128*r*(N+p) <= "maxmem"='+a);let p=Tn(at,e,t,{c:1,dkLen:u*i}),m=te(p),E=te(new Uint8Array(u*o)),S=te(new Uint8Array(u)),R=()=>{};if(l){let O=2*o*i,W=Math.max(Math.floor(O/1e4),1),H=0;R=()=>{H++,l&&(!(H%W)||H===O)&&l(H/O)}}return{N:o,r:s,p:i,dkLen:c,blockSize32:y,V:E,B32:m,B:p,tmp:S,blockMixCb:R,asyncTick:f}}function Ps(e,t,n,r,o){let s=Tn(at,e,n,{c:1,dkLen:t});return ft(n,r,o),s}function _n(e,t,n){let{N:r,r:o,p:s,dkLen:i,blockSize32:c,V:f,B32:a,B:l,tmp:u,blockMixCb:y}=js(e,t,n);Se(a);for(let d=0;d<s;d++){let g=c*d;for(let p=0;p<c;p++)f[p]=a[g+p];for(let p=0,m=0;p<r-1;p++)In(f,m,f,m+=c,o),y();In(f,(r-1)*c,a,g,o),y();for(let p=0;p<r;p++){let m=(a[g+c-16]&r-1)>>>0;for(let E=0;E<c;E++)u[E]=a[g+E]^f[m*c+E];In(u,0,a,g,o),y()}}return Se(a),Ps(e,i,l,f,u)}var fo=5e3;function Gs(e,t){let n=yt.toWords(t);return yt.encode(e,n,fo)}function Ws(e,t){return Gs(e,t)}function Ys(e,t,n=16,r=2){let o=ct(16),s=2**n,i=_n(t.normalize("NFKC"),o,{N:s,r:8,p:1,dkLen:32}),c=ct(24),f=Uint8Array.from([r]),l=Bn(i,c,f).encrypt(e),u=Q(Uint8Array.from([2]),Uint8Array.from([n]),o,c,f,l);return Ws("ncryptsec",u)}function Xs(e,t){let{prefix:n,words:r}=yt.decode(e,fo);if(n!=="ncryptsec")throw new Error(`invalid prefix ${n}, expected 'ncryptsec'`);let o=new Uint8Array(yt.fromWords(r)),s=o[0];if(s!==2)throw new Error(`invalid version ${s}, expected 0x02`);let c=2**o[1],f=o.slice(2,18),a=o.slice(18,42),l=o[42],u=Uint8Array.from([l]),y=o.slice(43),d=_n(t.normalize("NFKC"),f,{N:c,r:8,p:1,dkLen:32});return Bn(d,a,u).decrypt(y)}export{J as bytesToHex,$o as finalizeEvent,Ko as generateSecretKey,zo as getPublicKey,P as hexToBytes,Dr as nip04,_r as nip19,io as nip44,ao as nip49,Zo as verifyEvent};