@junobuild/core-standalone 5.0.0 → 5.1.0-next-2026-02-10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +19 -19
- package/dist/browser/index.js.map +4 -4
- package/dist/node/index.mjs +19 -19
- package/dist/node/index.mjs.map +4 -4
- package/dist/types/auth/providers/dev-identity.providers.d.ts +41 -0
- package/dist/types/auth/types/auth.d.ts +6 -0
- package/dist/types/auth/types/dev-identity.d.ts +6 -0
- package/dist/types/index.d.ts +2 -1
- package/package.json +3 -3
package/dist/node/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire as topLevelCreateRequire } from 'module';
|
|
2
2
|
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
-
var ff=Object.defineProperty;var hf=(e,t)=>{for(var r in t)ff(e,r,{get:t[r],enumerable:!0})};var ml;(function(e){e[e.SysFatal=1]="SysFatal",e[e.SysTransient=2]="SysTransient",e[e.DestinationInvalid=3]="DestinationInvalid",e[e.CanisterReject=4]="CanisterReject",e[e.CanisterError=5]="CanisterError"})(ml||(ml={}));var vr;(function(e){e.Replied="replied",e.Rejected="rejected"})(vr||(vr={}));function _l(e){return e!=null&&"reject_code"in e}function yl(e){return e!=null&&"certificate"in e}var yi="abcdefghijklmnopqrstuvwxyz234567",Kn=Object.create(null);for(let e=0;e<yi.length;e++)Kn[yi[e]]=e;Kn[0]=Kn.o;Kn[1]=Kn.i;function gl(e){let t=0,r=0,n="";function o(i){return t<0?r|=i>>-t:r=i<<t&248,t>3?(t-=8,1):(t<4&&(n+=yi[r>>3],t+=5),0)}for(let i=0;i<e.length;)i+=o(e[i]);return n+(t<0?yi[r>>3]:"")}function xl(e){let t=0,r=0,n=new Uint8Array(e.length*4/3|0),o=0;function i(s){let a=Kn[s.toLowerCase()];if(a===void 0)throw new Error(`Invalid character: ${JSON.stringify(s)}`);a<<=3,r|=a>>>t,t+=5,t>=8&&(n[o++]=r,t-=8,t>0?r=a<<5-t&255:r=0)}for(let s of e)i(s);return n.slice(0,o)}var mf=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function bl(e){let t=-1;for(let r=0;r<e.length;r++){let o=(e[r]^t)&255;t=mf[o]^t>>>8}return(t^-1)>>>0}import*as er from"node:crypto";var wn=er&&typeof er=="object"&&"webcrypto"in er?er.webcrypto:er&&typeof er=="object"&&"randomBytes"in er?er:void 0;function St(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function pa(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function me(e,...t){if(!St(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function fa(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 Tl(e,t){me(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function Tn(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function xi(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function gt(e,t){return e<<32-t|e>>>t}var Nl=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",_f=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function j(e){if(me(e),Nl)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=_f[e[r]];return t}var tr={_0:48,_9:57,A:65,F:70,a:97,f:102};function wl(e){if(e>=tr._0&&e<=tr._9)return e-tr._0;if(e>=tr.A&&e<=tr.F)return e-(tr.A-10);if(e>=tr.a&&e<=tr.f)return e-(tr.a-10)}function Ee(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Nl)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let o=0,i=0;o<r;o++,i+=2){let s=wl(e.charCodeAt(i)),a=wl(e.charCodeAt(i+1));if(s===void 0||a===void 0){let c=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}n[o]=s*16+a}return n}function $(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function ha(e){return typeof e=="string"&&(e=$(e)),me(e),e}function K(...e){let t=0;for(let n=0;n<e.length;n++){let o=e[n];me(o),t+=o.length}let r=new Uint8Array(t);for(let n=0,o=0;n<e.length;n++){let i=e[n];r.set(i,o),o+=i.length}return r}var gi=class{};function bi(e){let t=n=>e().update(ha(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function Hn(e=32){if(wn&&typeof wn.getRandomValues=="function")return wn.getRandomValues(new Uint8Array(e));if(wn&&typeof wn.randomBytes=="function")return Uint8Array.from(wn.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function yf(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let o=BigInt(32),i=BigInt(4294967295),s=Number(r>>o&i),a=Number(r&i),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}function Ol(e,t,r){return e&t^~e&r}function El(e,t,r){return e&t^e&r^t&r}var To=class extends gi{constructor(t,r,n,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=xi(this.buffer)}update(t){fa(this),t=ha(t),me(t);let{view:r,buffer:n,blockLen:o}=this,i=t.length;for(let s=0;s<i;){let a=Math.min(o-this.pos,i-s);if(a===o){let c=xi(t);for(;o<=i-s;s+=o)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){fa(this),Tl(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:i}=this,{pos:s}=this;r[s++]=128,Tn(this.buffer.subarray(s)),this.padOffset>o-s&&(this.process(n,0),s=0);for(let d=s;d<o;d++)r[d]=0;yf(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=xi(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,p=this.get();if(u>p.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<u;d++)a.setUint32(4*d,p[d],i)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:i,destroyed:s,pos:a}=this;return t.destroyed=s,t.finished=i,t.length=o,t.pos=a,o%r&&t.buffer.set(n),t}clone(){return this._cloneInto()}},rr=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),nr=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]);var Ce=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var wi=BigInt(4294967295),Rl=BigInt(32);function gf(e,t=!1){return t?{h:Number(e&wi),l:Number(e>>Rl&wi)}:{h:Number(e>>Rl&wi)|0,l:Number(e&wi)|0}}function Il(e,t=!1){let r=e.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let i=0;i<r;i++){let{h:s,l:a}=gf(e[i],t);[n[i],o[i]]=[s,a]}return[n,o]}var ma=(e,t,r)=>e>>>r,_a=(e,t,r)=>e<<32-r|t>>>r,Nn=(e,t,r)=>e>>>r|t<<32-r,On=(e,t,r)=>e<<32-r|t>>>r,No=(e,t,r)=>e<<64-r|t>>>r-32,Oo=(e,t,r)=>e>>>r-32|t<<64-r;function Ct(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var vl=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Al=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Sl=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Cl=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0,Fl=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0),Pl=(e,t,r,n,o,i)=>t+r+n+o+i+(e/2**32|0)|0;var bf=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]),Ar=new Uint32Array(64),Ti=class extends To{constructor(t=32){super(64,t,8,!1),this.A=rr[0]|0,this.B=rr[1]|0,this.C=rr[2]|0,this.D=rr[3]|0,this.E=rr[4]|0,this.F=rr[5]|0,this.G=rr[6]|0,this.H=rr[7]|0}get(){let{A:t,B:r,C:n,D:o,E:i,F:s,G:a,H:c}=this;return[t,r,n,o,i,s,a,c]}set(t,r,n,o,i,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let d=0;d<16;d++,r+=4)Ar[d]=t.getUint32(r,!1);for(let d=16;d<64;d++){let l=Ar[d-15],f=Ar[d-2],h=gt(l,7)^gt(l,18)^l>>>3,_=gt(f,17)^gt(f,19)^f>>>10;Ar[d]=_+Ar[d-7]+h+Ar[d-16]|0}let{A:n,B:o,C:i,D:s,E:a,F:c,G:u,H:p}=this;for(let d=0;d<64;d++){let l=gt(a,6)^gt(a,11)^gt(a,25),f=p+l+Ol(a,c,u)+bf[d]+Ar[d]|0,_=(gt(n,2)^gt(n,13)^gt(n,22))+El(n,o,i)|0;p=u,u=c,c=a,a=s+f|0,s=i,i=o,o=n,n=f+_|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,p=p+this.H|0,this.set(n,o,i,s,a,c,u,p)}roundClean(){Tn(Ar)}destroy(){this.set(0,0,0,0,0,0,0,0),Tn(this.buffer)}},ya=class extends Ti{constructor(){super(28),this.A=nr[0]|0,this.B=nr[1]|0,this.C=nr[2]|0,this.D=nr[3]|0,this.E=nr[4]|0,this.F=nr[5]|0,this.G=nr[6]|0,this.H=nr[7]|0}},Vl=Il(["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(e=>BigInt(e))),wf=Vl[0],Tf=Vl[1],Sr=new Uint32Array(80),Cr=new Uint32Array(80),ga=class extends To{constructor(t=64){super(128,t,16,!1),this.Ah=Ce[0]|0,this.Al=Ce[1]|0,this.Bh=Ce[2]|0,this.Bl=Ce[3]|0,this.Ch=Ce[4]|0,this.Cl=Ce[5]|0,this.Dh=Ce[6]|0,this.Dl=Ce[7]|0,this.Eh=Ce[8]|0,this.El=Ce[9]|0,this.Fh=Ce[10]|0,this.Fl=Ce[11]|0,this.Gh=Ce[12]|0,this.Gl=Ce[13]|0,this.Hh=Ce[14]|0,this.Hl=Ce[15]|0}get(){let{Ah:t,Al:r,Bh:n,Bl:o,Ch:i,Cl:s,Dh:a,Dl:c,Eh:u,El:p,Fh:d,Fl:l,Gh:f,Gl:h,Hh:_,Hl:g}=this;return[t,r,n,o,i,s,a,c,u,p,d,l,f,h,_,g]}set(t,r,n,o,i,s,a,c,u,p,d,l,f,h,_,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=o|0,this.Ch=i|0,this.Cl=s|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=p|0,this.Fh=d|0,this.Fl=l|0,this.Gh=f|0,this.Gl=h|0,this.Hh=_|0,this.Hl=g|0}process(t,r){for(let y=0;y<16;y++,r+=4)Sr[y]=t.getUint32(r),Cr[y]=t.getUint32(r+=4);for(let y=16;y<80;y++){let T=Sr[y-15]|0,E=Cr[y-15]|0,O=Nn(T,E,1)^Nn(T,E,8)^ma(T,E,7),R=On(T,E,1)^On(T,E,8)^_a(T,E,7),v=Sr[y-2]|0,w=Cr[y-2]|0,I=Nn(v,w,19)^No(v,w,61)^ma(v,w,6),F=On(v,w,19)^Oo(v,w,61)^_a(v,w,6),S=Sl(R,F,Cr[y-7],Cr[y-16]),b=Cl(S,O,I,Sr[y-7],Sr[y-16]);Sr[y]=b|0,Cr[y]=S|0}let{Ah:n,Al:o,Bh:i,Bl:s,Ch:a,Cl:c,Dh:u,Dl:p,Eh:d,El:l,Fh:f,Fl:h,Gh:_,Gl:g,Hh:m,Hl:x}=this;for(let y=0;y<80;y++){let T=Nn(d,l,14)^Nn(d,l,18)^No(d,l,41),E=On(d,l,14)^On(d,l,18)^Oo(d,l,41),O=d&f^~d&_,R=l&h^~l&g,v=Fl(x,E,R,Tf[y],Cr[y]),w=Pl(v,m,T,O,wf[y],Sr[y]),I=v|0,F=Nn(n,o,28)^No(n,o,34)^No(n,o,39),S=On(n,o,28)^Oo(n,o,34)^Oo(n,o,39),b=n&i^n&a^i&a,N=o&s^o&c^s&c;m=_|0,x=g|0,_=f|0,g=h|0,f=d|0,h=l|0,{h:d,l}=Ct(u|0,p|0,w|0,I|0),u=a|0,p=c|0,a=i|0,c=s|0,i=n|0,s=o|0;let C=vl(I,S,N);n=Al(C,w,F,b),o=C|0}({h:n,l:o}=Ct(this.Ah|0,this.Al|0,n|0,o|0)),{h:i,l:s}=Ct(this.Bh|0,this.Bl|0,i|0,s|0),{h:a,l:c}=Ct(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:p}=Ct(this.Dh|0,this.Dl|0,u|0,p|0),{h:d,l}=Ct(this.Eh|0,this.El|0,d|0,l|0),{h:f,l:h}=Ct(this.Fh|0,this.Fl|0,f|0,h|0),{h:_,l:g}=Ct(this.Gh|0,this.Gl|0,_|0,g|0),{h:m,l:x}=Ct(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,o,i,s,a,c,u,p,d,l,f,h,_,g,m,x)}roundClean(){Tn(Sr,Cr)}destroy(){Tn(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var Pe=bi(()=>new Ti),Bl=bi(()=>new ya),Dl=bi(()=>new ga);var Ni="__principal__",Nf=2,Ul=4,Of="aaaaa-aa",k=class e{static anonymous(){return new this(new Uint8Array([Ul]))}static managementCanister(){return this.fromText(Of)}static selfAuthenticating(t){let r=Bl(t);return new this(new Uint8Array([...r,Nf]))}static from(t){if(typeof t=="string")return e.fromText(t);if(Object.getPrototypeOf(t)===Uint8Array.prototype)return new e(t);if(e.isPrincipal(t))return new e(t._arr);throw new Error(`Impossible to convert ${JSON.stringify(t)} to Principal.`)}static fromHex(t){return new this(Ee(t))}static fromText(t){let r=t;if(t.includes(Ni)){let s=JSON.parse(t);Ni in s&&(r=s[Ni])}let n=r.toLowerCase().replace(/-/g,""),o=xl(n);o=o.slice(4,o.length);let i=new this(o);if(i.toText()!==r)throw new Error(`Principal "${i.toText()}" does not have a valid checksum (original value "${r}" may not be a valid Principal ID).`);return i}static fromUint8Array(t){return new this(t)}static isPrincipal(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isPrincipal"in t&&t._isPrincipal===!0&&"_arr"in t&&t._arr instanceof Uint8Array}constructor(t){this._arr=t,this._isPrincipal=!0}isAnonymous(){return this._arr.byteLength===1&&this._arr[0]===Ul}toUint8Array(){return this._arr}toHex(){return j(this._arr).toUpperCase()}toText(){let t=new ArrayBuffer(4);new DataView(t).setUint32(0,bl(this._arr));let n=new Uint8Array(t),o=new Uint8Array([...n,...this._arr]),s=gl(o).match(/.{1,5}/g);if(!s)throw new Error;return s.join("-")}toString(){return this.toText()}toJSON(){return{[Ni]:this.toText()}}compareTo(t){for(let r=0;r<Math.min(this._arr.length,t._arr.length);r++){if(this._arr[r]<t._arr[r])return"lt";if(this._arr[r]>t._arr[r])return"gt"}return this._arr.length<t._arr.length?"lt":this._arr.length>t._arr.length?"gt":"eq"}ltEq(t){let r=this.compareTo(t);return r=="lt"||r=="eq"}gtEq(t){let r=this.compareTo(t);return r=="gt"||r=="eq"}};var or;(function(e){e.Trust="Trust",e.Protocol="Protocol",e.Reject="Reject",e.Transport="Transport",e.External="External",e.Limit="Limit",e.Input="Input",e.Unknown="Unknown"})(or||(or={}));var G=class{constructor(t=!1){this.isCertified=t}toString(){let t=this.toErrorMessage();return this.requestContext&&(t+=`
|
|
3
|
+
var vf=Object.defineProperty;var If=(e,t)=>{for(var r in t)vf(e,r,{get:t[r],enumerable:!0})};var Nl;(function(e){e[e.SysFatal=1]="SysFatal",e[e.SysTransient=2]="SysTransient",e[e.DestinationInvalid=3]="DestinationInvalid",e[e.CanisterReject=4]="CanisterReject",e[e.CanisterError=5]="CanisterError"})(Nl||(Nl={}));var Pr;(function(e){e.Replied="replied",e.Rejected="rejected"})(Pr||(Pr={}));function Ol(e){return e!=null&&"reject_code"in e}function El(e){return e!=null&&"certificate"in e}var Ci="abcdefghijklmnopqrstuvwxyz234567",eo=Object.create(null);for(let e=0;e<Ci.length;e++)eo[Ci[e]]=e;eo[0]=eo.o;eo[1]=eo.i;function Rl(e){let t=0,r=0,n="";function o(i){return t<0?r|=i>>-t:r=i<<t&248,t>3?(t-=8,1):(t<4&&(n+=Ci[r>>3],t+=5),0)}for(let i=0;i<e.length;)i+=o(e[i]);return n+(t<0?Ci[r>>3]:"")}function vl(e){let t=0,r=0,n=new Uint8Array(e.length*4/3|0),o=0;function i(s){let a=eo[s.toLowerCase()];if(a===void 0)throw new Error(`Invalid character: ${JSON.stringify(s)}`);a<<=3,r|=a>>>t,t+=5,t>=8&&(n[o++]=r,t-=8,t>0?r=a<<5-t&255:r=0)}for(let s of e)i(s);return n.slice(0,o)}var Af=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);function Il(e){let t=-1;for(let r=0;r<e.length;r++){let o=(e[r]^t)&255;t=Af[o]^t>>>8}return(t^-1)>>>0}import*as cr from"node:crypto";var Vn=cr&&typeof cr=="object"&&"webcrypto"in cr?cr.webcrypto:cr&&typeof cr=="object"&&"randomBytes"in cr?cr:void 0;function kt(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function ga(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function he(e,...t){if(!kt(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function xa(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 Sl(e,t){he(e);let r=t.outputLen;if(e.length<r)throw new Error("digestInto() expects output buffer of length at least "+r)}function Fn(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Fi(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Et(e,t){return e<<32-t|e>>>t}var Cl=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Sf=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function j(e){if(he(e),Cl)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=Sf[e[r]];return t}var lr={_0:48,_9:57,A:65,F:70,a:97,f:102};function Al(e){if(e>=lr._0&&e<=lr._9)return e-lr._0;if(e>=lr.A&&e<=lr.F)return e-(lr.A-10);if(e>=lr.a&&e<=lr.f)return e-(lr.a-10)}function Ee(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Cl)return Uint8Array.fromHex(e);let t=e.length,r=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(r);for(let o=0,i=0;o<r;o++,i+=2){let s=Al(e.charCodeAt(i)),a=Al(e.charCodeAt(i+1));if(s===void 0||a===void 0){let c=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}n[o]=s*16+a}return n}function G(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function ba(e){return typeof e=="string"&&(e=G(e)),he(e),e}function K(...e){let t=0;for(let n=0;n<e.length;n++){let o=e[n];he(o),t+=o.length}let r=new Uint8Array(t);for(let n=0,o=0;n<e.length;n++){let i=e[n];r.set(i,o),o+=i.length}return r}var Vi=class{};function Pi(e){let t=n=>e().update(ba(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function to(e=32){if(Vn&&typeof Vn.getRandomValues=="function")return Vn.getRandomValues(new Uint8Array(e));if(Vn&&typeof Vn.randomBytes=="function")return Uint8Array.from(Vn.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}function Cf(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,r,n);let o=BigInt(32),i=BigInt(4294967295),s=Number(r>>o&i),a=Number(r&i),c=n?4:0,u=n?0:4;e.setUint32(t+c,s,n),e.setUint32(t+u,a,n)}function Vl(e,t,r){return e&t^~e&r}function Fl(e,t,r){return e&t^e&r^t&r}var Bo=class extends Vi{constructor(t,r,n,o){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=r,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(t),this.view=Fi(this.buffer)}update(t){xa(this),t=ba(t),he(t);let{view:r,buffer:n,blockLen:o}=this,i=t.length;for(let s=0;s<i;){let a=Math.min(o-this.pos,i-s);if(a===o){let c=Fi(t);for(;o<=i-s;s+=o)this.process(c,s);continue}n.set(t.subarray(s,s+a),this.pos),this.pos+=a,s+=a,this.pos===o&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){xa(this),Sl(t,this),this.finished=!0;let{buffer:r,view:n,blockLen:o,isLE:i}=this,{pos:s}=this;r[s++]=128,Fn(this.buffer.subarray(s)),this.padOffset>o-s&&(this.process(n,0),s=0);for(let d=s;d<o;d++)r[d]=0;Cf(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=Fi(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,p=this.get();if(u>p.length)throw new Error("_sha2: outputLen bigger than state");for(let d=0;d<u;d++)a.setUint32(4*d,p[d],i)}digest(){let{buffer:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:o,finished:i,destroyed:s,pos:a}=this;return t.destroyed=s,t.finished=i,t.length=o,t.pos=a,o%r&&t.buffer.set(n),t}clone(){return this._cloneInto()}},ur=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),dr=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]);var Ce=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var Bi=BigInt(4294967295),Pl=BigInt(32);function Vf(e,t=!1){return t?{h:Number(e&Bi),l:Number(e>>Pl&Bi)}:{h:Number(e>>Pl&Bi)|0,l:Number(e&Bi)|0}}function Bl(e,t=!1){let r=e.length,n=new Uint32Array(r),o=new Uint32Array(r);for(let i=0;i<r;i++){let{h:s,l:a}=Vf(e[i],t);[n[i],o[i]]=[s,a]}return[n,o]}var wa=(e,t,r)=>e>>>r,Ta=(e,t,r)=>e<<32-r|t>>>r,Pn=(e,t,r)=>e>>>r|t<<32-r,Bn=(e,t,r)=>e<<32-r|t>>>r,Do=(e,t,r)=>e<<64-r|t>>>r-32,Uo=(e,t,r)=>e>>>r-32|t<<64-r;function Lt(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var Dl=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Ul=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,kl=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Ll=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0,ql=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0),Ml=(e,t,r,n,o,i)=>t+r+n+o+i+(e/2**32|0)|0;var Pf=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]),Br=new Uint32Array(64),Di=class extends Bo{constructor(t=32){super(64,t,8,!1),this.A=ur[0]|0,this.B=ur[1]|0,this.C=ur[2]|0,this.D=ur[3]|0,this.E=ur[4]|0,this.F=ur[5]|0,this.G=ur[6]|0,this.H=ur[7]|0}get(){let{A:t,B:r,C:n,D:o,E:i,F:s,G:a,H:c}=this;return[t,r,n,o,i,s,a,c]}set(t,r,n,o,i,s,a,c){this.A=t|0,this.B=r|0,this.C=n|0,this.D=o|0,this.E=i|0,this.F=s|0,this.G=a|0,this.H=c|0}process(t,r){for(let d=0;d<16;d++,r+=4)Br[d]=t.getUint32(r,!1);for(let d=16;d<64;d++){let l=Br[d-15],f=Br[d-2],h=Et(l,7)^Et(l,18)^l>>>3,_=Et(f,17)^Et(f,19)^f>>>10;Br[d]=_+Br[d-7]+h+Br[d-16]|0}let{A:n,B:o,C:i,D:s,E:a,F:c,G:u,H:p}=this;for(let d=0;d<64;d++){let l=Et(a,6)^Et(a,11)^Et(a,25),f=p+l+Vl(a,c,u)+Pf[d]+Br[d]|0,_=(Et(n,2)^Et(n,13)^Et(n,22))+Fl(n,o,i)|0;p=u,u=c,c=a,a=s+f|0,s=i,i=o,o=n,n=f+_|0}n=n+this.A|0,o=o+this.B|0,i=i+this.C|0,s=s+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,p=p+this.H|0,this.set(n,o,i,s,a,c,u,p)}roundClean(){Fn(Br)}destroy(){this.set(0,0,0,0,0,0,0,0),Fn(this.buffer)}},Na=class extends Di{constructor(){super(28),this.A=dr[0]|0,this.B=dr[1]|0,this.C=dr[2]|0,this.D=dr[3]|0,this.E=dr[4]|0,this.F=dr[5]|0,this.G=dr[6]|0,this.H=dr[7]|0}},jl=Bl(["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(e=>BigInt(e))),Bf=jl[0],Df=jl[1],Dr=new Uint32Array(80),Ur=new Uint32Array(80),Oa=class extends Bo{constructor(t=64){super(128,t,16,!1),this.Ah=Ce[0]|0,this.Al=Ce[1]|0,this.Bh=Ce[2]|0,this.Bl=Ce[3]|0,this.Ch=Ce[4]|0,this.Cl=Ce[5]|0,this.Dh=Ce[6]|0,this.Dl=Ce[7]|0,this.Eh=Ce[8]|0,this.El=Ce[9]|0,this.Fh=Ce[10]|0,this.Fl=Ce[11]|0,this.Gh=Ce[12]|0,this.Gl=Ce[13]|0,this.Hh=Ce[14]|0,this.Hl=Ce[15]|0}get(){let{Ah:t,Al:r,Bh:n,Bl:o,Ch:i,Cl:s,Dh:a,Dl:c,Eh:u,El:p,Fh:d,Fl:l,Gh:f,Gl:h,Hh:_,Hl:g}=this;return[t,r,n,o,i,s,a,c,u,p,d,l,f,h,_,g]}set(t,r,n,o,i,s,a,c,u,p,d,l,f,h,_,g){this.Ah=t|0,this.Al=r|0,this.Bh=n|0,this.Bl=o|0,this.Ch=i|0,this.Cl=s|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=p|0,this.Fh=d|0,this.Fl=l|0,this.Gh=f|0,this.Gl=h|0,this.Hh=_|0,this.Hl=g|0}process(t,r){for(let y=0;y<16;y++,r+=4)Dr[y]=t.getUint32(r),Ur[y]=t.getUint32(r+=4);for(let y=16;y<80;y++){let T=Dr[y-15]|0,O=Ur[y-15]|0,R=Pn(T,O,1)^Pn(T,O,8)^wa(T,O,7),E=Bn(T,O,1)^Bn(T,O,8)^Ta(T,O,7),v=Dr[y-2]|0,w=Ur[y-2]|0,I=Pn(v,w,19)^Do(v,w,61)^wa(v,w,6),V=Bn(v,w,19)^Uo(v,w,61)^Ta(v,w,6),C=kl(E,V,Ur[y-7],Ur[y-16]),b=Ll(C,R,I,Dr[y-7],Dr[y-16]);Dr[y]=b|0,Ur[y]=C|0}let{Ah:n,Al:o,Bh:i,Bl:s,Ch:a,Cl:c,Dh:u,Dl:p,Eh:d,El:l,Fh:f,Fl:h,Gh:_,Gl:g,Hh:m,Hl:x}=this;for(let y=0;y<80;y++){let T=Pn(d,l,14)^Pn(d,l,18)^Do(d,l,41),O=Bn(d,l,14)^Bn(d,l,18)^Uo(d,l,41),R=d&f^~d&_,E=l&h^~l&g,v=ql(x,O,E,Df[y],Ur[y]),w=Ml(v,m,T,R,Bf[y],Dr[y]),I=v|0,V=Pn(n,o,28)^Do(n,o,34)^Do(n,o,39),C=Bn(n,o,28)^Uo(n,o,34)^Uo(n,o,39),b=n&i^n&a^i&a,N=o&s^o&c^s&c;m=_|0,x=g|0,_=f|0,g=h|0,f=d|0,h=l|0,{h:d,l}=Lt(u|0,p|0,w|0,I|0),u=a|0,p=c|0,a=i|0,c=s|0,i=n|0,s=o|0;let S=Dl(I,C,N);n=Ul(S,w,V,b),o=S|0}({h:n,l:o}=Lt(this.Ah|0,this.Al|0,n|0,o|0)),{h:i,l:s}=Lt(this.Bh|0,this.Bl|0,i|0,s|0),{h:a,l:c}=Lt(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:p}=Lt(this.Dh|0,this.Dl|0,u|0,p|0),{h:d,l}=Lt(this.Eh|0,this.El|0,d|0,l|0),{h:f,l:h}=Lt(this.Fh|0,this.Fl|0,f|0,h|0),{h:_,l:g}=Lt(this.Gh|0,this.Gl|0,_|0,g|0),{h:m,l:x}=Lt(this.Hh|0,this.Hl|0,m|0,x|0),this.set(n,o,i,s,a,c,u,p,d,l,f,h,_,g,m,x)}roundClean(){Fn(Dr,Ur)}destroy(){Fn(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var Pe=Pi(()=>new Di),Kl=Pi(()=>new Na),Hl=Pi(()=>new Oa);var Ui="__principal__",Uf=2,Gl=4,kf="aaaaa-aa",L=class e{static anonymous(){return new this(new Uint8Array([Gl]))}static managementCanister(){return this.fromText(kf)}static selfAuthenticating(t){let r=Kl(t);return new this(new Uint8Array([...r,Uf]))}static from(t){if(typeof t=="string")return e.fromText(t);if(Object.getPrototypeOf(t)===Uint8Array.prototype)return new e(t);if(e.isPrincipal(t))return new e(t._arr);throw new Error(`Impossible to convert ${JSON.stringify(t)} to Principal.`)}static fromHex(t){return new this(Ee(t))}static fromText(t){let r=t;if(t.includes(Ui)){let s=JSON.parse(t);Ui in s&&(r=s[Ui])}let n=r.toLowerCase().replace(/-/g,""),o=vl(n);o=o.slice(4,o.length);let i=new this(o);if(i.toText()!==r)throw new Error(`Principal "${i.toText()}" does not have a valid checksum (original value "${r}" may not be a valid Principal ID).`);return i}static fromUint8Array(t){return new this(t)}static isPrincipal(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isPrincipal"in t&&t._isPrincipal===!0&&"_arr"in t&&t._arr instanceof Uint8Array}constructor(t){this._arr=t,this._isPrincipal=!0}isAnonymous(){return this._arr.byteLength===1&&this._arr[0]===Gl}toUint8Array(){return this._arr}toHex(){return j(this._arr).toUpperCase()}toText(){let t=new ArrayBuffer(4);new DataView(t).setUint32(0,Il(this._arr));let n=new Uint8Array(t),o=new Uint8Array([...n,...this._arr]),s=Rl(o).match(/.{1,5}/g);if(!s)throw new Error;return s.join("-")}toString(){return this.toText()}toJSON(){return{[Ui]:this.toText()}}compareTo(t){for(let r=0;r<Math.min(this._arr.length,t._arr.length);r++){if(this._arr[r]<t._arr[r])return"lt";if(this._arr[r]>t._arr[r])return"gt"}return this._arr.length<t._arr.length?"lt":this._arr.length>t._arr.length?"gt":"eq"}ltEq(t){let r=this.compareTo(t);return r=="lt"||r=="eq"}gtEq(t){let r=this.compareTo(t);return r=="gt"||r=="eq"}};var pr;(function(e){e.Trust="Trust",e.Protocol="Protocol",e.Reject="Reject",e.Transport="Transport",e.External="External",e.Limit="Limit",e.Input="Input",e.Unknown="Unknown"})(pr||(pr={}));var $=class{constructor(t=!1){this.isCertified=t}toString(){let t=this.toErrorMessage();return this.requestContext&&(t+=`
|
|
4
4
|
Request context:
|
|
5
5
|
Request ID (hex): ${this.requestContext.requestId?j(this.requestContext.requestId):"undefined"}
|
|
6
6
|
Sender pubkey (hex): ${j(this.requestContext.senderPubKey)}
|
|
@@ -9,51 +9,51 @@ Request context:
|
|
|
9
9
|
Call context:
|
|
10
10
|
Canister ID: ${this.callContext.canisterId.toText()}
|
|
11
11
|
Method name: ${this.callContext.methodName}
|
|
12
|
-
HTTP details: ${JSON.stringify(this.callContext.httpDetails,null,2)}`),t}},
|
|
12
|
+
HTTP details: ${JSON.stringify(this.callContext.httpDetails,null,2)}`),t}},ot=class e extends Error{get code(){return this.cause.code}set code(t){this.cause.code=t}get kind(){return this.cause.kind}set kind(t){this.cause.kind=t}get isCertified(){return this.code.isCertified}constructor(t,r){super(t.toString()),this.name="AgentError",this.cause={code:t,kind:r},Object.setPrototypeOf(this,e.prototype)}hasCode(t){return this.code instanceof t}toString(){return`${this.name} (${this.kind}): ${this.message}`}},fr=class extends ot{static fromCode(t){return new this(t)}},Me=class e extends fr{constructor(t){super(t,pr.Trust),this.name="TrustError",Object.setPrototypeOf(this,e.prototype)}},re=class e extends fr{constructor(t){super(t,pr.Protocol),this.name="ProtocolError",Object.setPrototypeOf(this,e.prototype)}},kr=class e extends fr{constructor(t){super(t,pr.Reject),this.name="RejectError",Object.setPrototypeOf(this,e.prototype)}},ko=class e extends fr{constructor(t){super(t,pr.Transport),this.name="TransportError",Object.setPrototypeOf(this,e.prototype)}},_e=class e extends fr{constructor(t){super(t,pr.External),this.name="ExternalError",Object.setPrototypeOf(this,e.prototype)}};var z=class e extends fr{constructor(t){super(t,pr.Input),this.name="InputError",Object.setPrototypeOf(this,e.prototype)}},ae=class e extends fr{constructor(t){super(t,pr.Unknown),this.name="UnknownError",Object.setPrototypeOf(this,e.prototype)}},Rt=class e extends ${constructor(t,r){super(),this.reason=t,this.error=r,this.name="CertificateVerificationErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=this.reason;return this.error&&(t+=`: ${Go(this.error)}`),`Certificate verification error: "${t}"`}},hr=class e extends ${constructor(t,r,n,o,i){super(),this.maxAgeInMinutes=t,this.certificateTime=r,this.currentTime=n,this.timeDiffMsecs=o,this.ageType=i,this.name="CertificateTimeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Certificate is signed more than ${this.maxAgeInMinutes} minutes in the ${this.ageType}. Certificate time: ${this.certificateTime.toISOString()} Current time: ${this.currentTime.toISOString()} Clock drift: ${this.timeDiffMsecs}ms`}},ki=class e extends ${constructor(){super(),this.name="CertificateHasTooManyDelegationsErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Certificate has too many delegations"}},Dn=class e extends ${constructor(t,r){super(),this.canisterId=t,this.subnetId=r,this.name="CertificateNotAuthorizedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The certificate contains a delegation that does not include the canister ${this.canisterId.toText()} in the canister_ranges field. Subnet ID: ${this.subnetId.toText()}`}},Li=class e extends ${constructor(t){super(),this.subnetId=t,this.name="CertificateNotAuthorizedForSubnetErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The certificate is not authorized for subnet ${this.subnetId.toText()}`}},vt=class e extends ${constructor(t,r){super(),this.message=t,this.lookupStatus=r,this.name="LookupErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`${this.message}. Lookup status: ${this.lookupStatus}`}},qi=class e extends ${constructor(t){super(),this.message=t,this.name="MalformedLookupFoundValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},Mi=class e extends ${constructor(t){super(),this.message=t,this.name="MissingLookupValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},ro=class e extends ${constructor(t,r){super(),this.expectedLength=t,this.actualLength=r,this.name="DerKeyLengthMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`BLS DER-encoded public key must be ${this.expectedLength} bytes long, but is ${this.actualLength} bytes long`}},ji=class e extends ${constructor(t,r){super(),this.expectedPrefix=t,this.actualPrefix=r,this.name="DerPrefixMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`BLS DER-encoded public key is invalid. Expected the following prefix: ${j(this.expectedPrefix)}, but got ${j(this.actualPrefix)}`}},Ki=class e extends ${constructor(t,r){super(),this.expectedLength=t,this.actualLength=r,this.name="DerDecodeLengthMismatchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`DER payload mismatch: Expected length ${this.expectedLength}, actual length: ${this.actualLength}`}},It=class e extends ${constructor(t){super(),this.error=t,this.name="DerDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode DER: ${this.error}`}},Lo=class e extends ${constructor(t){super(),this.error=t,this.name="DerEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode DER: ${this.error}`}},Hi=class e extends ${constructor(t,r){super(),this.error=t,this.input=r,this.name="CborDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode CBOR: ${Go(this.error)}, input: ${j(this.input)}`}},Gi=class e extends ${constructor(t,r){super(),this.error=t,this.value=r,this.name="CborEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode CBOR: ${Go(this.error)}, input: ${this.value}`}};var Un=class e extends ${constructor(t,r,n){super(),this.message=t,this.requestId=r,this.status=n,this.name="TimeoutWaitingForResponseErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=`${this.message}
|
|
13
13
|
`;return this.requestId&&(t+=` Request ID: ${j(this.requestId)}
|
|
14
14
|
`),this.status&&(t+=` Request status: ${this.status}
|
|
15
|
-
`),t}}
|
|
15
|
+
`),t}},$i=class e extends ${constructor(t,r,n){super(),this.maxIngressExpiryInMinutes=t,this.requestId=r,this.retryTimes=n,this.name="CertificateOutdatedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=`Certificate is stale (over ${this.maxIngressExpiryInMinutes} minutes). Is the computer's clock synchronized?
|
|
16
16
|
Request ID: ${j(this.requestId)}
|
|
17
|
-
`;return this.retryTimes!==void 0&&(t+=` Retried ${this.retryTimes} times.`),t}},
|
|
17
|
+
`;return this.retryTimes!==void 0&&(t+=` Retried ${this.retryTimes} times.`),t}},no=class e extends ${constructor(t,r,n,o){super(!0),this.requestId=t,this.rejectCode=r,this.rejectMessage=n,this.rejectErrorCode=o,this.name="CertifiedRejectErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The replica returned a rejection error:
|
|
18
18
|
Request ID: ${j(this.requestId)}
|
|
19
19
|
Reject code: ${this.rejectCode}
|
|
20
20
|
Reject text: ${this.rejectMessage}
|
|
21
21
|
Error code: ${this.rejectErrorCode}
|
|
22
|
-
`}},
|
|
22
|
+
`}},Ji=class e extends ${constructor(t,r,n,o,i){super(),this.requestId=t,this.rejectCode=r,this.rejectMessage=n,this.rejectErrorCode=o,this.signatures=i,this.name="UncertifiedRejectErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The replica returned a rejection error:
|
|
23
23
|
Request ID: ${j(this.requestId)}
|
|
24
24
|
Reject code: ${this.rejectCode}
|
|
25
25
|
Reject text: ${this.rejectMessage}
|
|
26
26
|
Error code: ${this.rejectErrorCode}
|
|
27
|
-
`}},
|
|
27
|
+
`}},Wi=class e extends ${constructor(t,r,n,o){super(),this.requestId=t,this.rejectCode=r,this.rejectMessage=n,this.rejectErrorCode=o,this.name="UncertifiedRejectUpdateErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`The replica returned a rejection error:
|
|
28
28
|
Request ID: ${j(this.requestId)}
|
|
29
29
|
Reject code: ${this.rejectCode}
|
|
30
30
|
Reject text: ${this.rejectMessage}
|
|
31
31
|
Error code: ${this.rejectErrorCode}
|
|
32
|
-
`}},
|
|
32
|
+
`}},zi=class e extends ${constructor(t){super(),this.requestId=t,this.name="RequestStatusDoneNoReplyErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Call was marked as done but we never saw the reply:
|
|
33
33
|
Request ID: ${j(this.requestId)}
|
|
34
|
-
`}},
|
|
34
|
+
`}},lt=class e extends ${constructor(t){super(),this.shouldFetchRootKey=t,this.name="MissingRootKeyErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.shouldFetchRootKey===void 0?"Agent is missing root key":`Agent is missing root key and the shouldFetchRootKey value is set to ${this.shouldFetchRootKey}. The root key should only be unknown if you are in local development. Otherwise you should avoid fetching and use the default IC Root Key or the known root key of your environment.`}},Yi=class e extends ${constructor(t){super(),this.value=t,this.name="HashValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Attempt to hash a value of unsupported type: ${this.value}`}},oo=class e extends ${constructor(t){super(),this.error=t,this.name="HttpDefaultFetchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.error}},Lr=class e extends ${constructor(){super(),this.name="IdentityInvalidErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"This identity has expired due this application's security policy. Please refresh your authentication."}},qt=class e extends ${constructor(t,r){super(),this.message=t,this.providedIngressExpiryInMinutes=r,this.name="IngressExpiryInvalidErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`${this.message}. Provided ingress expiry time is ${this.providedIngressExpiryInMinutes} minutes.`}},Zi=class e extends ${constructor(){super(),this.name="CreateHttpAgentErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Failed to create agent from provided agent"}},Xi=class e extends ${constructor(t){super(),this.error=t,this.name="MalformedSignatureErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Query response contained a malformed signature: ${this.error}`}},Qi=class e extends ${constructor(){super(),this.name="MissingSignatureErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Query response did not contain any node signatures"}},es=class e extends ${constructor(){super(),this.name="MalformedPublicKeyErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Read state response contained a malformed public key"}},ts=class e extends ${constructor(t){super(),this.nodeId=t,this.name="QuerySignatureVerificationFailedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Query signature verification failed. Node ID: ${this.nodeId}`}},Re=class e extends ${constructor(t){super(),this.error=t,this.name="UnexpectedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Unexpected error: ${Go(this.error)}`}},qr=class e extends ${constructor(t){super(),this.error=t,this.name="HashTreeDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode certificate: ${this.error}`}},qo=class e extends ${constructor(t,r,n,o){super(),this.status=t,this.statusText=r,this.headers=n,this.bodyText=o,this.name="HttpErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){let t=`HTTP request failed:
|
|
35
35
|
Status: ${this.status} (${this.statusText})
|
|
36
36
|
Headers: ${JSON.stringify(this.headers)}
|
|
37
37
|
`;return this.bodyText&&(t+=` Body: ${this.bodyText}
|
|
38
|
-
`),t}},vo=class e extends G{constructor(){super(),this.name="HttpV4ApiNotSupportedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"HTTP request failed: v4 API is not supported"}},Ao=class e extends G{constructor(t){super(),this.error=t,this.name="HttpFetchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to fetch HTTP request: ${Fo(this.error)}`}},So=class e extends G{constructor(t){super(),this.receivedCanisterId=t,this.name="MissingCanisterIdErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Canister ID is required, but received ${typeof this.receivedCanisterId} instead. If you are using automatically generated declarations, this may be because your application is not setting the canister ID in process.env correctly.`}},ji=class e extends G{constructor(t){super(),this.request=t,this.name="InvalidReadStateRequestErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Invalid read state request: ${this.request}`}},Co=class e extends G{constructor(t){super(),this.error=t,this.name="ExpiryJsonDeserializeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to deserialize expiry: ${this.error}`}};function Fo(e){if(e instanceof Error)return e.stack??e.message;try{return JSON.stringify(e)}catch{return String(e)}}var ct=new Error("unreachable");var Sn={};hf(Sn,{Bool:()=>Gl,BoolClass:()=>Ji,ConstructType:()=>Bt,Empty:()=>Hl,EmptyClass:()=>Vo,FixedIntClass:()=>lr,FixedNatClass:()=>Vt,Float32:()=>Zl,Float64:()=>Xl,FloatClass:()=>Uo,Func:()=>hu,FuncClass:()=>An,Int:()=>zl,Int16:()=>eu,Int32:()=>tu,Int64:()=>ru,Int8:()=>Ql,IntClass:()=>Bo,Nat:()=>Yl,Nat16:()=>ou,Nat32:()=>iu,Nat64:()=>su,Nat8:()=>nu,NatClass:()=>Do,Null:()=>Jl,NullClass:()=>In,Opt:()=>uu,OptClass:()=>Ur,PrimitiveType:()=>ze,Principal:()=>au,PrincipalClass:()=>Yi,Rec:()=>fu,RecClass:()=>lt,Record:()=>du,RecordClass:()=>vn,Reserved:()=>$l,ReservedClass:()=>Dt,Service:()=>mu,ServiceClass:()=>Xn,Text:()=>Wl,TextClass:()=>Wi,Tuple:()=>cu,TupleClass:()=>zi,Type:()=>zn,Unknown:()=>Af,UnknownClass:()=>Gi,Variant:()=>pu,VariantClass:()=>Zn,Vec:()=>lu,VecClass:()=>Yn,Visitor:()=>Oa,decode:()=>vf,encode:()=>If,resetSubtypeCache:()=>Ea,subtype:()=>Ia});function Z(...e){let t=new Uint8Array(e.reduce((n,o)=>n+o.byteLength,0)),r=0;for(let n of e)t.set(n,r),r+=n.byteLength;return t}var Tt=class{save(){return this._view}restore(t){if(!(t instanceof Uint8Array))throw new Error("Checkpoint must be a Uint8Array");this._view=t}constructor(t,r=t?.byteLength||0){if(t&&!(t instanceof Uint8Array))try{t=Pt(t)}catch{throw new Error("Buffer must be a Uint8Array")}if(r<0||!Number.isInteger(r))throw new Error("Length must be a non-negative integer");if(t&&r>t.byteLength)throw new Error("Length cannot exceed buffer length");this._buffer=t||new Uint8Array(0),this._view=new Uint8Array(this._buffer.buffer,0,r)}get buffer(){return this._view.slice()}get byteLength(){return this._view.byteLength}read(t){let r=this._view.subarray(0,t);return this._view=this._view.subarray(t),r.slice()}readUint8(){if(this._view.byteLength===0)return;let t=this._view[0];return this._view=this._view.subarray(1),t}write(t){if(!(t instanceof Uint8Array))throw new Error("Buffer must be a Uint8Array");let r=this._view.byteLength;this._view.byteOffset+this._view.byteLength+t.byteLength>=this._buffer.byteLength?this.alloc(t.byteLength):this._view=new Uint8Array(this._buffer.buffer,this._view.byteOffset,this._view.byteLength+t.byteLength),this._view.set(t,r)}get end(){return this._view.byteLength===0}alloc(t){if(t<=0||!Number.isInteger(t))throw new Error("Amount must be a positive integer");let r=new Uint8Array((this._buffer.byteLength+t)*1.2|0),n=new Uint8Array(r.buffer,0,this._view.byteLength+t);n.set(this._view),this._buffer=r,this._view=n}};function Pt(e){if(!e)throw new Error("Input cannot be null or undefined");return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):Array.isArray(e)?new Uint8Array(e):"buffer"in e?Pt(e.buffer):new Uint8Array(e)}function Wn(e,t){if(e.byteLength!==t.byteLength)return e.byteLength-t.byteLength;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return e[r]-t[r];return 0}function kl(e,t){return Wn(e,t)===0}function Ll(e){if(!(e instanceof Uint8Array))throw new Error("Input must be a Uint8Array");return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Ef(e){let r=new TextEncoder().encode(e),n=0;for(let o of r)n=(n*223+o)%2**32;return n}function qe(e){if(/^_\d+_$/.test(e)||/^_0x[0-9a-fA-F]+_$/.test(e)){let t=+e.slice(1,-1);if(Number.isSafeInteger(t)&&t>=0&&t<2**32)return t}return Ef(e)}function xa(e){let t=BigInt(e);if(e<=0)throw new RangeError("Input must be positive");return t.toString(2).length-1}function Ki(e){let t=BigInt(e);if(e<0)throw new RangeError("Input must be non-negative");return BigInt(1)<<t}function ql(){throw new Error("unexpected end of buffer")}function Dr(e,t){return e.byteLength<t&&ql(),e.read(t)}function Br(e){let t=e.readUint8();return t===void 0&&ql(),t}function ie(e){if(typeof e=="number"&&(e=BigInt(e)),e<BigInt(0))throw new Error("Cannot leb encode negative values.");let t=(e===BigInt(0)?0:xa(e))+1,r=new Tt(new Uint8Array(t),0);for(;;){let n=Number(e&BigInt(127));if(e/=BigInt(128),e===BigInt(0)){r.write(new Uint8Array([n]));break}else r.write(new Uint8Array([n|128]))}return r.buffer}function ge(e){let t=BigInt(1),r=BigInt(0),n;do n=Br(e),r+=BigInt(n&127).valueOf()*t,t*=BigInt(128);while(n>=128);return r}function xe(e){typeof e=="number"&&(e=BigInt(e));let t=e<BigInt(0);t&&(e=-e-BigInt(1));let r=(e===BigInt(0)?0:xa(e))+1,n=new Tt(new Uint8Array(r),0);for(;;){let i=o(e);if(e/=BigInt(128),t&&e===BigInt(0)&&(i&64)!==0||!t&&e===BigInt(0)&&(i&64)===0){n.write(new Uint8Array([i]));break}else n.write(new Uint8Array([i|128]))}function o(i){let s=i%BigInt(128);return Number(t?BigInt(128)-s-BigInt(1):s)}return n.buffer}function ar(e){let t=new Uint8Array(e.buffer),r=0;for(;r<t.byteLength;r++)if(t[r]<128){if((t[r]&64)===0)return ge(e);break}let n=new Uint8Array(Dr(e,r+1)),o=BigInt(0);for(let i=n.byteLength-1;i>=0;i--)o=o*BigInt(128)+BigInt(128-(n[i]&127)-1);return-o-BigInt(1)}function Ml(e,t){if(BigInt(e)<BigInt(0))throw new Error("Cannot write negative values.");return ba(e,t)}function ba(e,t){e=BigInt(e);let r=new Tt(new Uint8Array(Math.min(1,t)),0),n=0,o=BigInt(256),i=BigInt(0),s=Number(e%o);for(r.write(new Uint8Array([s]));++n<t;)e<0&&i===BigInt(0)&&s!==0&&(i=BigInt(1)),s=Number((e/o-i)%BigInt(256)),r.write(new Uint8Array([s])),o*=BigInt(256);return r.buffer}function wa(e,t){if(t<=0||!Number.isInteger(t))throw new Error("Byte length must be a positive integer");let r=BigInt(Br(e)),n=BigInt(1),o=0;for(;++o<t;){n*=BigInt(256);let i=BigInt(Br(e));r=r+n*i}return r}function jl(e,t){if(t<=0||!Number.isInteger(t))throw new Error("Byte length must be a positive integer");let r=wa(e,t),n=BigInt(2)**(BigInt(8)*BigInt(t-1)+BigInt(7));return r>=n&&(r-=n*BigInt(2)),r}var Q;(function(e){e[e.Null=-1]="Null",e[e.Bool=-2]="Bool",e[e.Nat=-3]="Nat",e[e.Int=-4]="Int",e[e.Float32=-13]="Float32",e[e.Float64=-14]="Float64",e[e.Text=-15]="Text",e[e.Reserved=-16]="Reserved",e[e.Empty=-17]="Empty",e[e.Opt=-18]="Opt",e[e.Vector=-19]="Vector",e[e.Record=-20]="Record",e[e.Variant=-21]="Variant",e[e.Func=-22]="Func",e[e.Service=-23]="Service",e[e.Principal=-24]="Principal"})(Q||(Q={}));var Hi="DIDL",Rf=new TextEncoder().encode(Hi),Kl=400;function Po(e,t,r){return e.map((n,o)=>r(n,t[o]))}var Na=class{constructor(){this._typs=[],this._idx=new Map,this._idxRefCount=new Map}has(t){return this._idx.has(t.name)}add(t,r){let n=this._typs.length;this._idx.set(t.name,n),this._idxRefCount.set(n,1),this._typs.push(r)}merge(t,r){let n=this._idx.get(t.name),o=this._idx.get(r);if(n===void 0)throw new Error("Missing type index for "+t);if(o===void 0)throw new Error("Missing type index for "+r);this._typs[n]=this._typs[o];let i=this._getIdxRefCount(n),s=this._getIdxRefCount(o);this._idxRefCount.set(n,i+s),this._idx.set(r,n),this._idxRefCount.set(o,0),this._compactFromEnd()}_getIdxRefCount(t){return this._idxRefCount.get(t)||0}_compactFromEnd(){for(;this._typs.length>0;){let t=this._typs.length-1;if(this._getIdxRefCount(t)>0)break;this._typs.pop(),this._idxRefCount.delete(t)}}encode(){let t=ie(this._typs.length),r=Z(...this._typs);return Z(t,r)}indexOf(t){if(!this._idx.has(t))throw new Error("Missing type index for "+t);return xe(this._idx.get(t)||0)}},Oa=class{visitType(t,r){throw new Error("Not implemented")}visitPrimitive(t,r){return this.visitType(t,r)}visitEmpty(t,r){return this.visitPrimitive(t,r)}visitBool(t,r){return this.visitPrimitive(t,r)}visitNull(t,r){return this.visitPrimitive(t,r)}visitReserved(t,r){return this.visitPrimitive(t,r)}visitText(t,r){return this.visitPrimitive(t,r)}visitNumber(t,r){return this.visitPrimitive(t,r)}visitInt(t,r){return this.visitNumber(t,r)}visitNat(t,r){return this.visitNumber(t,r)}visitFloat(t,r){return this.visitPrimitive(t,r)}visitFixedInt(t,r){return this.visitNumber(t,r)}visitFixedNat(t,r){return this.visitNumber(t,r)}visitPrincipal(t,r){return this.visitPrimitive(t,r)}visitConstruct(t,r){return this.visitType(t,r)}visitVec(t,r,n){return this.visitConstruct(t,n)}visitOpt(t,r,n){return this.visitConstruct(t,n)}visitRecord(t,r,n){return this.visitConstruct(t,n)}visitTuple(t,r,n){let o=r.map((i,s)=>[`_${s}_`,i]);return this.visitRecord(t,o,n)}visitVariant(t,r,n){return this.visitConstruct(t,n)}visitRec(t,r,n){return this.visitConstruct(r,n)}visitFunc(t,r){return this.visitConstruct(t,r)}visitService(t,r){return this.visitConstruct(t,r)}},H;(function(e){e.EmptyClass="__IDL_EmptyClass__",e.UnknownClass="__IDL_UnknownClass__",e.BoolClass="__IDL_BoolClass__",e.NullClass="__IDL_NullClass__",e.ReservedClass="__IDL_ReservedClass__",e.TextClass="__IDL_TextClass__",e.IntClass="__IDL_IntClass__",e.NatClass="__IDL_NatClass__",e.FloatClass="__IDL_FloatClass__",e.FixedIntClass="__IDL_FixedIntClass__",e.FixedNatClass="__IDL_FixedNatClass__",e.VecClass="__IDL_VecClass__",e.OptClass="__IDL_OptClass__",e.RecordClass="__IDL_RecordClass__",e.TupleClass="__IDL_TupleClass__",e.VariantClass="__IDL_VariantClass__",e.RecClass="__IDL_RecClass__",e.PrincipalClass="__IDL_PrincipalClass__",e.FuncClass="__IDL_FuncClass__",e.ServiceClass="__IDL_ServiceClass__"})(H||(H={}));var zn=class{display(){return this.name}valueToString(t){return _e(t)}buildTypeTable(t){t.has(this)||this._buildTypeTableImpl(t)}},ze=class extends zn{checkType(t){if(this.name!==t.name)throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);return t}_buildTypeTableImpl(t){}},Bt=class extends zn{checkType(t){if(t instanceof lt){let r=t.getType();if(typeof r>"u")throw new Error("type mismatch with uninitialized type");return r}throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`)}encodeType(t){return t.indexOf(this.name)}},Vo=class extends ze{get typeName(){return H.EmptyClass}static[Symbol.hasInstance](t){return t.typeName===H.EmptyClass}accept(t,r){return t.visitEmpty(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(){throw new Error("Empty cannot appear as a function argument")}valueToString(){throw new Error("Empty cannot appear as a value")}encodeType(){return xe(Q.Empty)}decodeValue(){throw new Error("Empty cannot appear as an output")}get name(){return"empty"}},Gi=class extends zn{get typeName(){return H.UnknownClass}static[Symbol.hasInstance](t){return t.typeName===H.UnknownClass}checkType(t){throw new Error("Method not implemented for unknown.")}accept(t,r){throw t.visitType(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(){throw new Error("Unknown cannot appear as a function argument")}valueToString(){throw new Error("Unknown cannot appear as a value")}encodeType(){throw new Error("Unknown cannot be serialized")}decodeValue(t,r){let n=r.decodeValue(t,r);Object(n)!==n&&(n=Object(n));let o;return r instanceof lt?o=()=>r.getType():o=()=>r,Object.defineProperty(n,"type",{value:o,writable:!0,enumerable:!1,configurable:!0}),n}_buildTypeTableImpl(){throw new Error("Unknown cannot be serialized")}get name(){return"Unknown"}},Ji=class extends ze{get typeName(){return H.BoolClass}static[Symbol.hasInstance](t){return t.typeName===H.BoolClass}accept(t,r){return t.visitBool(this,r)}covariant(t){if(typeof t=="boolean")return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(t){return new Uint8Array([t?1:0])}encodeType(){return xe(Q.Bool)}decodeValue(t,r){switch(this.checkType(r),Br(t)){case 0:return!1;case 1:return!0;default:throw new Error("Boolean value out of range")}}get name(){return"bool"}},In=class extends ze{get typeName(){return H.NullClass}static[Symbol.hasInstance](t){return t.typeName===H.NullClass}accept(t,r){return t.visitNull(this,r)}covariant(t){if(t===null)return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(){return new Uint8Array(0)}encodeType(){return xe(Q.Null)}decodeValue(t,r){return this.checkType(r),null}get name(){return"null"}},Dt=class extends ze{get typeName(){return H.ReservedClass}static[Symbol.hasInstance](t){return t.typeName===H.ReservedClass}accept(t,r){return t.visitReserved(this,r)}covariant(t){return!0}encodeValue(){return new Uint8Array(0)}encodeType(){return xe(Q.Reserved)}decodeValue(t,r){return r.name!==this.name&&r.decodeValue(t,r),null}get name(){return"reserved"}},Wi=class extends ze{get typeName(){return H.TextClass}static[Symbol.hasInstance](t){return t.typeName===H.TextClass}accept(t,r){return t.visitText(this,r)}covariant(t){if(typeof t=="string")return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(t){let r=new TextEncoder().encode(t),n=ie(r.byteLength);return Z(n,r)}encodeType(){return xe(Q.Text)}decodeValue(t,r){this.checkType(r);let n=ge(t),o=Dr(t,Number(n));return new TextDecoder("utf8",{fatal:!0}).decode(o)}get name(){return"text"}valueToString(t){return'"'+t+'"'}},Bo=class extends ze{get typeName(){return H.IntClass}static[Symbol.hasInstance](t){return t.typeName===H.IntClass}accept(t,r){return t.visitInt(this,r)}covariant(t){if(typeof t=="bigint"||Number.isInteger(t))return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(t){return xe(t)}encodeType(){return xe(Q.Int)}decodeValue(t,r){return this.checkType(r),ar(t)}get name(){return"int"}valueToString(t){return t.toString()}},Do=class extends ze{get typeName(){return H.NatClass}static[Symbol.hasInstance](t){return t.typeName===H.NatClass}accept(t,r){return t.visitNat(this,r)}covariant(t){if(typeof t=="bigint"&&t>=BigInt(0)||Number.isInteger(t)&&t>=0)return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(t){return ie(t)}encodeType(){return xe(Q.Nat)}decodeValue(t,r){return this.checkType(r),ge(t)}get name(){return"nat"}valueToString(t){return t.toString()}},Uo=class extends ze{get typeName(){return H.FloatClass}static[Symbol.hasInstance](t){return t.typeName===H.FloatClass}constructor(t){if(super(),this._bits=t,t!==32&&t!==64)throw new Error("not a valid float type")}accept(t,r){return t.visitFloat(this,r)}covariant(t){if(typeof t=="number"||t instanceof Number)return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(t){let r=new ArrayBuffer(this._bits/8),n=new DataView(r);return this._bits===32?n.setFloat32(0,t,!0):n.setFloat64(0,t,!0),new Uint8Array(r)}encodeType(){let t=this._bits===32?Q.Float32:Q.Float64;return xe(t)}decodeValue(t,r){this.checkType(r);let n=Dr(t,this._bits/8),o=Ll(n);return this._bits===32?o.getFloat32(0,!0):o.getFloat64(0,!0)}get name(){return"float"+this._bits}valueToString(t){return t.toString()}},lr=class extends ze{get typeName(){return H.FixedIntClass}static[Symbol.hasInstance](t){return t.typeName===H.FixedIntClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedInt(this,r)}covariant(t){let r=Ki(this._bits-1)*BigInt(-1),n=Ki(this._bits-1)-BigInt(1),o=!1;if(typeof t=="bigint")o=t>=r&&t<=n;else if(Number.isInteger(t)){let i=BigInt(t);o=i>=r&&i<=n}else o=!1;if(o)return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(t){return ba(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return xe(-9-t)}decodeValue(t,r){this.checkType(r);let n=jl(t,this._bits/8);return this._bits<=32?Number(n):n}get name(){return`int${this._bits}`}valueToString(t){return t.toString()}},Vt=class extends ze{get typeName(){return H.FixedNatClass}static[Symbol.hasInstance](t){return t.typeName===H.FixedNatClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedNat(this,r)}covariant(t){let r=Ki(this._bits),n=!1;if(typeof t=="bigint"&&t>=BigInt(0)?n=t<r:Number.isInteger(t)&&t>=0?n=BigInt(t)<r:n=!1,n)return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(t){return Ml(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return xe(-5-t)}decodeValue(t,r){this.checkType(r);let n=wa(t,this._bits/8);return this._bits<=32?Number(n):n}get name(){return`nat${this._bits}`}valueToString(t){return t.toString()}},Yn=class e extends Bt{get typeName(){return H.VecClass}static[Symbol.hasInstance](t){return t.typeName===H.VecClass}constructor(t){super(),this._type=t,this._blobOptimization=!1,t instanceof Vt&&t._bits===8&&(this._blobOptimization=!0)}accept(t,r){return t.visitVec(this,this._type,r)}covariant(t){let r=this._type instanceof Vt?this._type._bits:this._type instanceof lr?this._type._bits:0;if(ArrayBuffer.isView(t)&&r==t.BYTES_PER_ELEMENT*8||Array.isArray(t)&&t.every((n,o)=>{try{return this._type.covariant(n)}catch(i){throw new Error(`Invalid ${this.display()} argument:
|
|
38
|
+
`),t}},Mo=class e extends ${constructor(){super(),this.name="HttpV4ApiNotSupportedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"HTTP request failed: v4 API is not supported"}},jo=class e extends ${constructor(t){super(),this.error=t,this.name="HttpFetchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to fetch HTTP request: ${Go(this.error)}`}},Ko=class e extends ${constructor(t){super(),this.receivedCanisterId=t,this.name="MissingCanisterIdErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Canister ID is required, but received ${typeof this.receivedCanisterId} instead. If you are using automatically generated declarations, this may be because your application is not setting the canister ID in process.env correctly.`}},rs=class e extends ${constructor(t){super(),this.request=t,this.name="InvalidReadStateRequestErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Invalid read state request: ${this.request}`}},Ho=class e extends ${constructor(t){super(),this.error=t,this.name="ExpiryJsonDeserializeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to deserialize expiry: ${this.error}`}};function Go(e){if(e instanceof Error)return e.stack??e.message;try{return JSON.stringify(e)}catch{return String(e)}}var ut=new Error("unreachable");var Mn={};If(Mn,{Bool:()=>eu,BoolClass:()=>as,ConstructType:()=>Kt,Empty:()=>Xl,EmptyClass:()=>Jo,FixedIntClass:()=>yr,FixedNatClass:()=>jt,Float32:()=>iu,Float64:()=>su,FloatClass:()=>Yo,Func:()=>Tu,FuncClass:()=>qn,Int:()=>nu,Int16:()=>cu,Int32:()=>lu,Int64:()=>uu,Int8:()=>au,IntClass:()=>Wo,Nat:()=>ou,Nat16:()=>pu,Nat32:()=>fu,Nat64:()=>hu,Nat8:()=>du,NatClass:()=>zo,Null:()=>tu,NullClass:()=>kn,Opt:()=>gu,OptClass:()=>Kr,PrimitiveType:()=>Ze,Principal:()=>mu,PrincipalClass:()=>us,Rec:()=>wu,RecClass:()=>dt,Record:()=>xu,RecordClass:()=>Ln,Reserved:()=>Ql,ReservedClass:()=>Ht,Service:()=>Nu,ServiceClass:()=>lo,Text:()=>ru,TextClass:()=>cs,Tuple:()=>_u,TupleClass:()=>ls,Type:()=>so,Unknown:()=>Kf,UnknownClass:()=>ss,Variant:()=>bu,VariantClass:()=>co,Vec:()=>yu,VecClass:()=>ao,Visitor:()=>Sa,decode:()=>jf,encode:()=>Mf,resetSubtypeCache:()=>Ca,subtype:()=>Fa});function Z(...e){let t=new Uint8Array(e.reduce((n,o)=>n+o.byteLength,0)),r=0;for(let n of e)t.set(n,r),r+=n.byteLength;return t}var At=class{save(){return this._view}restore(t){if(!(t instanceof Uint8Array))throw new Error("Checkpoint must be a Uint8Array");this._view=t}constructor(t,r=t?.byteLength||0){if(t&&!(t instanceof Uint8Array))try{t=Mt(t)}catch{throw new Error("Buffer must be a Uint8Array")}if(r<0||!Number.isInteger(r))throw new Error("Length must be a non-negative integer");if(t&&r>t.byteLength)throw new Error("Length cannot exceed buffer length");this._buffer=t||new Uint8Array(0),this._view=new Uint8Array(this._buffer.buffer,0,r)}get buffer(){return this._view.slice()}get byteLength(){return this._view.byteLength}read(t){let r=this._view.subarray(0,t);return this._view=this._view.subarray(t),r.slice()}readUint8(){if(this._view.byteLength===0)return;let t=this._view[0];return this._view=this._view.subarray(1),t}write(t){if(!(t instanceof Uint8Array))throw new Error("Buffer must be a Uint8Array");let r=this._view.byteLength;this._view.byteOffset+this._view.byteLength+t.byteLength>=this._buffer.byteLength?this.alloc(t.byteLength):this._view=new Uint8Array(this._buffer.buffer,this._view.byteOffset,this._view.byteLength+t.byteLength),this._view.set(t,r)}get end(){return this._view.byteLength===0}alloc(t){if(t<=0||!Number.isInteger(t))throw new Error("Amount must be a positive integer");let r=new Uint8Array((this._buffer.byteLength+t)*1.2|0),n=new Uint8Array(r.buffer,0,this._view.byteLength+t);n.set(this._view),this._buffer=r,this._view=n}};function Mt(e){if(!e)throw new Error("Input cannot be null or undefined");return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):Array.isArray(e)?new Uint8Array(e):"buffer"in e?Mt(e.buffer):new Uint8Array(e)}function io(e,t){if(e.byteLength!==t.byteLength)return e.byteLength-t.byteLength;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return e[r]-t[r];return 0}function $l(e,t){return io(e,t)===0}function Jl(e){if(!(e instanceof Uint8Array))throw new Error("Input must be a Uint8Array");return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Lf(e){let r=new TextEncoder().encode(e),n=0;for(let o of r)n=(n*223+o)%2**32;return n}function je(e){if(/^_\d+_$/.test(e)||/^_0x[0-9a-fA-F]+_$/.test(e)){let t=+e.slice(1,-1);if(Number.isSafeInteger(t)&&t>=0&&t<2**32)return t}return Lf(e)}function Ea(e){let t=BigInt(e);if(e<=0)throw new RangeError("Input must be positive");return t.toString(2).length-1}function ns(e){let t=BigInt(e);if(e<0)throw new RangeError("Input must be non-negative");return BigInt(1)<<t}function Wl(){throw new Error("unexpected end of buffer")}function jr(e,t){return e.byteLength<t&&Wl(),e.read(t)}function Mr(e){let t=e.readUint8();return t===void 0&&Wl(),t}function ie(e){if(typeof e=="number"&&(e=BigInt(e)),e<BigInt(0))throw new Error("Cannot leb encode negative values.");let t=(e===BigInt(0)?0:Ea(e))+1,r=new At(new Uint8Array(t),0);for(;;){let n=Number(e&BigInt(127));if(e/=BigInt(128),e===BigInt(0)){r.write(new Uint8Array([n]));break}else r.write(new Uint8Array([n|128]))}return r.buffer}function ye(e){let t=BigInt(1),r=BigInt(0),n;do n=Mr(e),r+=BigInt(n&127).valueOf()*t,t*=BigInt(128);while(n>=128);return r}function ge(e){typeof e=="number"&&(e=BigInt(e));let t=e<BigInt(0);t&&(e=-e-BigInt(1));let r=(e===BigInt(0)?0:Ea(e))+1,n=new At(new Uint8Array(r),0);for(;;){let i=o(e);if(e/=BigInt(128),t&&e===BigInt(0)&&(i&64)!==0||!t&&e===BigInt(0)&&(i&64)===0){n.write(new Uint8Array([i]));break}else n.write(new Uint8Array([i|128]))}function o(i){let s=i%BigInt(128);return Number(t?BigInt(128)-s-BigInt(1):s)}return n.buffer}function mr(e){let t=new Uint8Array(e.buffer),r=0;for(;r<t.byteLength;r++)if(t[r]<128){if((t[r]&64)===0)return ye(e);break}let n=new Uint8Array(jr(e,r+1)),o=BigInt(0);for(let i=n.byteLength-1;i>=0;i--)o=o*BigInt(128)+BigInt(128-(n[i]&127)-1);return-o-BigInt(1)}function zl(e,t){if(BigInt(e)<BigInt(0))throw new Error("Cannot write negative values.");return Ra(e,t)}function Ra(e,t){e=BigInt(e);let r=new At(new Uint8Array(Math.min(1,t)),0),n=0,o=BigInt(256),i=BigInt(0),s=Number(e%o);for(r.write(new Uint8Array([s]));++n<t;)e<0&&i===BigInt(0)&&s!==0&&(i=BigInt(1)),s=Number((e/o-i)%BigInt(256)),r.write(new Uint8Array([s])),o*=BigInt(256);return r.buffer}function va(e,t){if(t<=0||!Number.isInteger(t))throw new Error("Byte length must be a positive integer");let r=BigInt(Mr(e)),n=BigInt(1),o=0;for(;++o<t;){n*=BigInt(256);let i=BigInt(Mr(e));r=r+n*i}return r}function Yl(e,t){if(t<=0||!Number.isInteger(t))throw new Error("Byte length must be a positive integer");let r=va(e,t),n=BigInt(2)**(BigInt(8)*BigInt(t-1)+BigInt(7));return r>=n&&(r-=n*BigInt(2)),r}var Q;(function(e){e[e.Null=-1]="Null",e[e.Bool=-2]="Bool",e[e.Nat=-3]="Nat",e[e.Int=-4]="Int",e[e.Float32=-13]="Float32",e[e.Float64=-14]="Float64",e[e.Text=-15]="Text",e[e.Reserved=-16]="Reserved",e[e.Empty=-17]="Empty",e[e.Opt=-18]="Opt",e[e.Vector=-19]="Vector",e[e.Record=-20]="Record",e[e.Variant=-21]="Variant",e[e.Func=-22]="Func",e[e.Service=-23]="Service",e[e.Principal=-24]="Principal"})(Q||(Q={}));var os="DIDL",qf=new TextEncoder().encode(os),Zl=400;function $o(e,t,r){return e.map((n,o)=>r(n,t[o]))}var Aa=class{constructor(){this._typs=[],this._idx=new Map,this._idxRefCount=new Map}has(t){return this._idx.has(t.name)}add(t,r){let n=this._typs.length;this._idx.set(t.name,n),this._idxRefCount.set(n,1),this._typs.push(r)}merge(t,r){let n=this._idx.get(t.name),o=this._idx.get(r);if(n===void 0)throw new Error("Missing type index for "+t);if(o===void 0)throw new Error("Missing type index for "+r);this._typs[n]=this._typs[o];let i=this._getIdxRefCount(n),s=this._getIdxRefCount(o);this._idxRefCount.set(n,i+s),this._idx.set(r,n),this._idxRefCount.set(o,0),this._compactFromEnd()}_getIdxRefCount(t){return this._idxRefCount.get(t)||0}_compactFromEnd(){for(;this._typs.length>0;){let t=this._typs.length-1;if(this._getIdxRefCount(t)>0)break;this._typs.pop(),this._idxRefCount.delete(t)}}encode(){let t=ie(this._typs.length),r=Z(...this._typs);return Z(t,r)}indexOf(t){if(!this._idx.has(t))throw new Error("Missing type index for "+t);return ge(this._idx.get(t)||0)}},Sa=class{visitType(t,r){throw new Error("Not implemented")}visitPrimitive(t,r){return this.visitType(t,r)}visitEmpty(t,r){return this.visitPrimitive(t,r)}visitBool(t,r){return this.visitPrimitive(t,r)}visitNull(t,r){return this.visitPrimitive(t,r)}visitReserved(t,r){return this.visitPrimitive(t,r)}visitText(t,r){return this.visitPrimitive(t,r)}visitNumber(t,r){return this.visitPrimitive(t,r)}visitInt(t,r){return this.visitNumber(t,r)}visitNat(t,r){return this.visitNumber(t,r)}visitFloat(t,r){return this.visitPrimitive(t,r)}visitFixedInt(t,r){return this.visitNumber(t,r)}visitFixedNat(t,r){return this.visitNumber(t,r)}visitPrincipal(t,r){return this.visitPrimitive(t,r)}visitConstruct(t,r){return this.visitType(t,r)}visitVec(t,r,n){return this.visitConstruct(t,n)}visitOpt(t,r,n){return this.visitConstruct(t,n)}visitRecord(t,r,n){return this.visitConstruct(t,n)}visitTuple(t,r,n){let o=r.map((i,s)=>[`_${s}_`,i]);return this.visitRecord(t,o,n)}visitVariant(t,r,n){return this.visitConstruct(t,n)}visitRec(t,r,n){return this.visitConstruct(r,n)}visitFunc(t,r){return this.visitConstruct(t,r)}visitService(t,r){return this.visitConstruct(t,r)}},H;(function(e){e.EmptyClass="__IDL_EmptyClass__",e.UnknownClass="__IDL_UnknownClass__",e.BoolClass="__IDL_BoolClass__",e.NullClass="__IDL_NullClass__",e.ReservedClass="__IDL_ReservedClass__",e.TextClass="__IDL_TextClass__",e.IntClass="__IDL_IntClass__",e.NatClass="__IDL_NatClass__",e.FloatClass="__IDL_FloatClass__",e.FixedIntClass="__IDL_FixedIntClass__",e.FixedNatClass="__IDL_FixedNatClass__",e.VecClass="__IDL_VecClass__",e.OptClass="__IDL_OptClass__",e.RecordClass="__IDL_RecordClass__",e.TupleClass="__IDL_TupleClass__",e.VariantClass="__IDL_VariantClass__",e.RecClass="__IDL_RecClass__",e.PrincipalClass="__IDL_PrincipalClass__",e.FuncClass="__IDL_FuncClass__",e.ServiceClass="__IDL_ServiceClass__"})(H||(H={}));var so=class{display(){return this.name}valueToString(t){return me(t)}buildTypeTable(t){t.has(this)||this._buildTypeTableImpl(t)}},Ze=class extends so{checkType(t){if(this.name!==t.name)throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`);return t}_buildTypeTableImpl(t){}},Kt=class extends so{checkType(t){if(t instanceof dt){let r=t.getType();if(typeof r>"u")throw new Error("type mismatch with uninitialized type");return r}throw new Error(`type mismatch: type on the wire ${t.name}, expect type ${this.name}`)}encodeType(t){return t.indexOf(this.name)}},Jo=class extends Ze{get typeName(){return H.EmptyClass}static[Symbol.hasInstance](t){return t.typeName===H.EmptyClass}accept(t,r){return t.visitEmpty(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(){throw new Error("Empty cannot appear as a function argument")}valueToString(){throw new Error("Empty cannot appear as a value")}encodeType(){return ge(Q.Empty)}decodeValue(){throw new Error("Empty cannot appear as an output")}get name(){return"empty"}},ss=class extends so{get typeName(){return H.UnknownClass}static[Symbol.hasInstance](t){return t.typeName===H.UnknownClass}checkType(t){throw new Error("Method not implemented for unknown.")}accept(t,r){throw t.visitType(this,r)}covariant(t){throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(){throw new Error("Unknown cannot appear as a function argument")}valueToString(){throw new Error("Unknown cannot appear as a value")}encodeType(){throw new Error("Unknown cannot be serialized")}decodeValue(t,r){let n=r.decodeValue(t,r);Object(n)!==n&&(n=Object(n));let o;return r instanceof dt?o=()=>r.getType():o=()=>r,Object.defineProperty(n,"type",{value:o,writable:!0,enumerable:!1,configurable:!0}),n}_buildTypeTableImpl(){throw new Error("Unknown cannot be serialized")}get name(){return"Unknown"}},as=class extends Ze{get typeName(){return H.BoolClass}static[Symbol.hasInstance](t){return t.typeName===H.BoolClass}accept(t,r){return t.visitBool(this,r)}covariant(t){if(typeof t=="boolean")return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){return new Uint8Array([t?1:0])}encodeType(){return ge(Q.Bool)}decodeValue(t,r){switch(this.checkType(r),Mr(t)){case 0:return!1;case 1:return!0;default:throw new Error("Boolean value out of range")}}get name(){return"bool"}},kn=class extends Ze{get typeName(){return H.NullClass}static[Symbol.hasInstance](t){return t.typeName===H.NullClass}accept(t,r){return t.visitNull(this,r)}covariant(t){if(t===null)return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(){return new Uint8Array(0)}encodeType(){return ge(Q.Null)}decodeValue(t,r){return this.checkType(r),null}get name(){return"null"}},Ht=class extends Ze{get typeName(){return H.ReservedClass}static[Symbol.hasInstance](t){return t.typeName===H.ReservedClass}accept(t,r){return t.visitReserved(this,r)}covariant(t){return!0}encodeValue(){return new Uint8Array(0)}encodeType(){return ge(Q.Reserved)}decodeValue(t,r){return r.name!==this.name&&r.decodeValue(t,r),null}get name(){return"reserved"}},cs=class extends Ze{get typeName(){return H.TextClass}static[Symbol.hasInstance](t){return t.typeName===H.TextClass}accept(t,r){return t.visitText(this,r)}covariant(t){if(typeof t=="string")return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){let r=new TextEncoder().encode(t),n=ie(r.byteLength);return Z(n,r)}encodeType(){return ge(Q.Text)}decodeValue(t,r){this.checkType(r);let n=ye(t),o=jr(t,Number(n));return new TextDecoder("utf8",{fatal:!0}).decode(o)}get name(){return"text"}valueToString(t){return'"'+t+'"'}},Wo=class extends Ze{get typeName(){return H.IntClass}static[Symbol.hasInstance](t){return t.typeName===H.IntClass}accept(t,r){return t.visitInt(this,r)}covariant(t){if(typeof t=="bigint"||Number.isInteger(t))return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){return ge(t)}encodeType(){return ge(Q.Int)}decodeValue(t,r){return this.checkType(r),mr(t)}get name(){return"int"}valueToString(t){return t.toString()}},zo=class extends Ze{get typeName(){return H.NatClass}static[Symbol.hasInstance](t){return t.typeName===H.NatClass}accept(t,r){return t.visitNat(this,r)}covariant(t){if(typeof t=="bigint"&&t>=BigInt(0)||Number.isInteger(t)&&t>=0)return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){return ie(t)}encodeType(){return ge(Q.Nat)}decodeValue(t,r){return this.checkType(r),ye(t)}get name(){return"nat"}valueToString(t){return t.toString()}},Yo=class extends Ze{get typeName(){return H.FloatClass}static[Symbol.hasInstance](t){return t.typeName===H.FloatClass}constructor(t){if(super(),this._bits=t,t!==32&&t!==64)throw new Error("not a valid float type")}accept(t,r){return t.visitFloat(this,r)}covariant(t){if(typeof t=="number"||t instanceof Number)return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){let r=new ArrayBuffer(this._bits/8),n=new DataView(r);return this._bits===32?n.setFloat32(0,t,!0):n.setFloat64(0,t,!0),new Uint8Array(r)}encodeType(){let t=this._bits===32?Q.Float32:Q.Float64;return ge(t)}decodeValue(t,r){this.checkType(r);let n=jr(t,this._bits/8),o=Jl(n);return this._bits===32?o.getFloat32(0,!0):o.getFloat64(0,!0)}get name(){return"float"+this._bits}valueToString(t){return t.toString()}},yr=class extends Ze{get typeName(){return H.FixedIntClass}static[Symbol.hasInstance](t){return t.typeName===H.FixedIntClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedInt(this,r)}covariant(t){let r=ns(this._bits-1)*BigInt(-1),n=ns(this._bits-1)-BigInt(1),o=!1;if(typeof t=="bigint")o=t>=r&&t<=n;else if(Number.isInteger(t)){let i=BigInt(t);o=i>=r&&i<=n}else o=!1;if(o)return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){return Ra(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return ge(-9-t)}decodeValue(t,r){this.checkType(r);let n=Yl(t,this._bits/8);return this._bits<=32?Number(n):n}get name(){return`int${this._bits}`}valueToString(t){return t.toString()}},jt=class extends Ze{get typeName(){return H.FixedNatClass}static[Symbol.hasInstance](t){return t.typeName===H.FixedNatClass}constructor(t){super(),this._bits=t}accept(t,r){return t.visitFixedNat(this,r)}covariant(t){let r=ns(this._bits),n=!1;if(typeof t=="bigint"&&t>=BigInt(0)?n=t<r:Number.isInteger(t)&&t>=0?n=BigInt(t)<r:n=!1,n)return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){return zl(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return ge(-5-t)}decodeValue(t,r){this.checkType(r);let n=va(t,this._bits/8);return this._bits<=32?Number(n):n}get name(){return`nat${this._bits}`}valueToString(t){return t.toString()}},ao=class e extends Kt{get typeName(){return H.VecClass}static[Symbol.hasInstance](t){return t.typeName===H.VecClass}constructor(t){super(),this._type=t,this._blobOptimization=!1,t instanceof jt&&t._bits===8&&(this._blobOptimization=!0)}accept(t,r){return t.visitVec(this,this._type,r)}covariant(t){let r=this._type instanceof jt?this._type._bits:this._type instanceof yr?this._type._bits:0;if(ArrayBuffer.isView(t)&&r==t.BYTES_PER_ELEMENT*8||Array.isArray(t)&&t.every((n,o)=>{try{return this._type.covariant(n)}catch(i){throw new Error(`Invalid ${this.display()} argument:
|
|
39
39
|
|
|
40
|
-
index ${o} -> ${i.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${
|
|
40
|
+
index ${o} -> ${i.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){let r=ie(t.length);if(this._blobOptimization)return Z(r,new Uint8Array(t));if(ArrayBuffer.isView(t))if(t instanceof Int16Array||t instanceof Uint16Array){let o=new DataView(new ArrayBuffer(t.length*2));for(let i=0;i<t.length;i++)t instanceof Int16Array?o.setInt16(i*2,t[i],!0):o.setUint16(i*2,t[i],!0);return Z(r,new Uint8Array(o.buffer))}else if(t instanceof Int32Array||t instanceof Uint32Array){let o=new DataView(new ArrayBuffer(t.length*4));for(let i=0;i<t.length;i++)t instanceof Int32Array?o.setInt32(i*4,t[i],!0):o.setUint32(i*4,t[i],!0);return Z(r,new Uint8Array(o.buffer))}else if(t instanceof BigInt64Array||t instanceof BigUint64Array){let o=new DataView(new ArrayBuffer(t.length*8));for(let i=0;i<t.length;i++)t instanceof BigInt64Array?o.setBigInt64(i*8,t[i],!0):o.setBigUint64(i*8,t[i],!0);return Z(r,new Uint8Array(o.buffer))}else return Z(r,new Uint8Array(t.buffer,t.byteOffset,t.byteLength));let n=new At(new Uint8Array(r.byteLength+t.length),0);n.write(r);for(let o of t){let i=this._type.encodeValue(o);n.write(new Uint8Array(i))}return n.buffer}_buildTypeTableImpl(t){this._type.buildTypeTable(t);let r=ge(Q.Vector),n=this._type.encodeType(t);t.add(this,Z(r,n))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Error("Not a vector type");let o=Number(ye(t));if(this._type instanceof jt){if(this._type._bits==8)return new Uint8Array(t.read(o));if(this._type._bits==16){let s=t.read(o*2);return new Uint16Array(s.buffer,s.byteOffset,o)}if(this._type._bits==32){let s=t.read(o*4);return new Uint32Array(s.buffer,s.byteOffset,o)}if(this._type._bits==64)return new BigUint64Array(t.read(o*8).buffer)}if(this._type instanceof yr){if(this._type._bits==8)return new Int8Array(t.read(o));if(this._type._bits==16){let s=t.read(o*2),a=new DataView(s.buffer,s.byteOffset,s.byteLength),c=new Int16Array(o);for(let u=0;u<o;u++)c[u]=a.getInt16(u*2,!0);return c}if(this._type._bits==32){let s=t.read(o*4),a=new DataView(s.buffer,s.byteOffset,s.byteLength),c=new Int32Array(o);for(let u=0;u<o;u++)c[u]=a.getInt32(u*4,!0);return c}if(this._type._bits==64){let s=t.read(o*8),a=new DataView(s.buffer,s.byteOffset,s.byteLength),c=new BigInt64Array(o);for(let u=0;u<o;u++)c[u]=a.getBigInt64(u*8,!0);return c}}let i=[];for(let s=0;s<o;s++)i.push(this._type.decodeValue(t,n._type));return i}get name(){return`vec ${this._type.name}`}display(){return`vec ${this._type.display()}`}valueToString(t){return"vec {"+t.map(n=>this._type.valueToString(n)).join("; ")+"}"}},Kr=class e extends Kt{get typeName(){return H.OptClass}static[Symbol.hasInstance](t){return t.typeName===H.OptClass}constructor(t){super(),this._type=t}accept(t,r){return t.visitOpt(this,this._type,r)}covariant(t){try{if(Array.isArray(t)&&(t.length===0||t.length===1&&this._type.covariant(t[0])))return!0}catch(r){throw new Error(`Invalid ${this.display()} argument: ${me(t)}
|
|
41
41
|
|
|
42
|
-
-> ${r.message}`)}throw new Error(`Invalid ${this.display()} argument: ${
|
|
42
|
+
-> ${r.message}`)}throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){return t.length===0?new Uint8Array([0]):Z(new Uint8Array([1]),this._type.encodeValue(t[0]))}_buildTypeTableImpl(t){this._type.buildTypeTable(t);let r=ge(Q.Opt),n=this._type.encodeType(t);t.add(this,Z(r,n))}decodeValue(t,r){if(r instanceof kn)return[];if(r instanceof Ht)return[];let n=r;if(r instanceof dt){let o=r.getType();if(typeof o>"u")throw new Error("type mismatch with uninitialized type");n=o}if(n instanceof e)switch(Mr(t)){case 0:return[];case 1:{let o=t.save();try{return[this._type.decodeValue(t,n._type)]}catch{return t.restore(o),n._type.decodeValue(t,n._type),[]}}default:throw new Error("Not an option value")}else{if(this._type instanceof kn||this._type instanceof e||this._type instanceof Ht)return n.decodeValue(t,n),[];{let o=t.save();try{return[this._type.decodeValue(t,r)]}catch{return t.restore(o),n.decodeValue(t,r),[]}}}}get name(){return`opt ${this._type.name}`}display(){return`opt ${this._type.display()}`}valueToString(t){return t.length===0?"null":`opt ${this._type.valueToString(t[0])}`}},Ln=class e extends Kt{get typeName(){return H.RecordClass}static[Symbol.hasInstance](t){return t.typeName===H.RecordClass||t.typeName===H.TupleClass}constructor(t={}){super(),this._fields=Object.entries(t).sort((r,n)=>je(r[0])-je(n[0]))}accept(t,r){return t.visitRecord(this,this._fields,r)}tryAsTuple(){let t=[];for(let r=0;r<this._fields.length;r++){let[n,o]=this._fields[r];if(n!==`_${r}_`)return null;t.push(o)}return t}covariant(t){if(typeof t=="object"&&this._fields.every(([r,n])=>{if(!t.hasOwnProperty(r))throw new Error(`Record is missing key "${r}".`);try{return n.covariant(t[r])}catch(o){throw new Error(`Invalid ${this.display()} argument:
|
|
43
43
|
|
|
44
|
-
field ${r} -> ${o.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${
|
|
44
|
+
field ${r} -> ${o.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){let r=this._fields.map(([o])=>t[o]),n=$o(this._fields,r,([,o],i)=>o.encodeValue(i));return Z(...n)}_buildTypeTableImpl(t){this._fields.forEach(([i,s])=>s.buildTypeTable(t));let r=ge(Q.Record),n=ie(this._fields.length),o=this._fields.map(([i,s])=>Z(ie(je(i)),s.encodeType(t)));t.add(this,Z(r,n,Z(...o)))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Error("Not a record type");let o={},i=0,s=0;for(;s<n._fields.length;){let[a,c]=n._fields[s];if(i>=this._fields.length){c.decodeValue(t,c),s++;continue}let[u,p]=this._fields[i],d=je(this._fields[i][0]),l=je(a);if(d===l)o[u]=p.decodeValue(t,c),i++,s++;else if(l>d)if(p instanceof Kr||p instanceof Ht)o[u]=[],i++;else throw new Error("Cannot find required field "+u);else c.decodeValue(t,c),s++}for(let[a,c]of this._fields.slice(i))if(c instanceof Kr||c instanceof Ht)o[a]=[];else throw new Error("Cannot find required field "+a);return o}get fieldsAsObject(){let t={};for(let[r,n]of this._fields)t[je(r)]=n;return t}get name(){return`record {${this._fields.map(([r,n])=>r+":"+n.name).join("; ")}}`}display(){return`record {${this._fields.map(([r,n])=>r+":"+n.display()).join("; ")}}`}valueToString(t){let r=this._fields.map(([o])=>t[o]);return`record {${$o(this._fields,r,([o,i],s)=>o+"="+i.valueToString(s)).join("; ")}}`}},ls=class e extends Ln{get typeName(){return H.TupleClass}static[Symbol.hasInstance](t){return t.typeName===H.TupleClass}constructor(t){let r={};t.forEach((n,o)=>r["_"+o+"_"]=n),super(r),this._components=t}accept(t,r){return t.visitTuple(this,this._components,r)}covariant(t){if(Array.isArray(t)&&t.length>=this._fields.length&&this._components.every((r,n)=>{try{return r.covariant(t[n])}catch(o){throw new Error(`Invalid ${this.display()} argument:
|
|
45
45
|
|
|
46
|
-
index ${n} -> ${o.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${
|
|
46
|
+
index ${n} -> ${o.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){let r=$o(this._components,t,(n,o)=>n.encodeValue(o));return Z(...r)}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Error("not a tuple type");if(n._components.length<this._components.length)throw new Error("tuple mismatch");let o=[];for(let[i,s]of n._components.entries())i>=this._components.length?s.decodeValue(t,s):o.push(this._components[i].decodeValue(t,s));return o}display(){return`record {${this._components.map(r=>r.display()).join("; ")}}`}valueToString(t){return`record {${$o(this._components,t,(n,o)=>n.valueToString(o)).join("; ")}}`}},co=class e extends Kt{get typeName(){return H.VariantClass}static[Symbol.hasInstance](t){return t.typeName===H.VariantClass}constructor(t={}){super(),this._fields=Object.entries(t).sort((r,n)=>je(r[0])-je(n[0]))}accept(t,r){return t.visitVariant(this,this._fields,r)}covariant(t){if(typeof t=="object"&&Object.entries(t).length===1&&this._fields.every(([r,n])=>{try{return!t.hasOwnProperty(r)||n.covariant(t[r])}catch(o){throw new Error(`Invalid ${this.display()} argument:
|
|
47
47
|
|
|
48
|
-
variant ${r} -> ${o.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${
|
|
48
|
+
variant ${r} -> ${o.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){for(let r=0;r<this._fields.length;r++){let[n,o]=this._fields[r];if(t.hasOwnProperty(n)){let i=ie(r),s=o.encodeValue(t[n]);return Z(i,s)}}throw Error("Variant has no data: "+t)}_buildTypeTableImpl(t){this._fields.forEach(([,i])=>{i.buildTypeTable(t)});let r=ge(Q.Variant),n=ie(this._fields.length),o=this._fields.map(([i,s])=>Z(ie(je(i)),s.encodeType(t)));t.add(this,Z(r,n,...o))}decodeValue(t,r){let n=this.checkType(r);if(!(n instanceof e))throw new Error("Not a variant type");let o=Number(ye(t));if(o>=n._fields.length)throw Error("Invalid variant index: "+o);let[i,s]=n._fields[o];for(let[a,c]of this._fields)if(je(i)===je(a)){let u=c.decodeValue(t,s);return{[a]:u}}throw new Error("Cannot find field hash "+i)}get name(){return`variant {${this._fields.map(([r,n])=>r+":"+n.name).join("; ")}}`}display(){return`variant {${this._fields.map(([r,n])=>r+(n.name==="null"?"":`:${n.display()}`)).join("; ")}}`}valueToString(t){for(let[r,n]of this._fields)if(t.hasOwnProperty(r)){let o=n.valueToString(t[r]);return o==="null"?`variant {${r}}`:`variant {${r}=${o}}`}throw new Error("Variant has no data: "+t)}get alternativesAsObject(){let t={};for(let[r,n]of this._fields)t[je(r)]=n;return t}},dt=class e extends Kt{constructor(){super(...arguments),this._id=e._counter++}get typeName(){return H.RecClass}static{this._counter=0}static[Symbol.hasInstance](t){return t.typeName===H.RecClass}accept(t,r){if(!this._type)throw Error("Recursive type uninitialized.");return t.visitRec(this,this._type,r)}fill(t){this._type=t}getType(){return this._type}covariant(t){if(this._type&&this._type.covariant(t))return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.encodeValue(t)}_buildTypeTableImpl(t){if(!this._type)throw Error("Recursive type uninitialized.");t.add(this,new Uint8Array([])),this._type.buildTypeTable(t),t.merge(this,this._type.name)}decodeValue(t,r){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.decodeValue(t,r)}get name(){return`rec_${this._id}`}display(){if(!this._type)throw Error("Recursive type uninitialized.");return`\u03BC${this.name}.${this._type.name}`}valueToString(t){if(!this._type)throw Error("Recursive type uninitialized.");return this._type.valueToString(t)}};function Va(e){if(Mr(e)!==1)throw new Error("Cannot decode principal");let r=Number(ye(e));return L.fromUint8Array(new Uint8Array(jr(e,r)))}var us=class extends Ze{get typeName(){return H.PrincipalClass}static[Symbol.hasInstance](t){return t.typeName===H.PrincipalClass}accept(t,r){return t.visitPrincipal(this,r)}covariant(t){if(t&&t._isPrincipal)return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){let r=t.toUint8Array(),n=ie(r.byteLength);return Z(new Uint8Array([1]),n,r)}encodeType(){return ge(Q.Principal)}decodeValue(t,r){return this.checkType(r),Va(t)}get name(){return"principal"}valueToString(t){return`${this.name} "${t.toText()}"`}},qn=class extends Kt{get typeName(){return H.FuncClass}static[Symbol.hasInstance](t){return t.typeName===H.FuncClass}static argsToString(t,r){if(t.length!==r.length)throw new Error("arity mismatch");return"("+t.map((n,o)=>n.valueToString(r[o])).join(", ")+")"}constructor(t,r,n=[]){super(),this.argTypes=t,this.retTypes=r,this.annotations=n}accept(t,r){return t.visitFunc(this,r)}covariant(t){if(Array.isArray(t)&&t.length===2&&t[0]&&t[0]._isPrincipal&&typeof t[1]=="string")return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue([t,r]){let n=t.toUint8Array(),o=ie(n.byteLength),i=Z(new Uint8Array([1]),o,n),s=new TextEncoder().encode(r),a=ie(s.byteLength);return Z(new Uint8Array([1]),i,a,s)}_buildTypeTableImpl(t){this.argTypes.forEach(u=>u.buildTypeTable(t)),this.retTypes.forEach(u=>u.buildTypeTable(t));let r=ge(Q.Func),n=ie(this.argTypes.length),o=Z(...this.argTypes.map(u=>u.encodeType(t))),i=ie(this.retTypes.length),s=Z(...this.retTypes.map(u=>u.encodeType(t))),a=ie(this.annotations.length),c=Z(...this.annotations.map(u=>this.encodeAnnotation(u)));t.add(this,Z(r,n,o,i,s,a,c))}decodeValue(t,r){let n=r instanceof dt?r.getType()??r:r;if(!Fa(n,this))throw new Error(`Cannot decode function reference at type ${this.display()} from wire type ${n.display()}`);if(Mr(t)!==1)throw new Error("Cannot decode function reference");let i=Va(t),s=Number(ye(t)),a=jr(t,s),u=new TextDecoder("utf8",{fatal:!0}).decode(a);return[i,u]}get name(){let t=this.argTypes.map(o=>o.name).join(", "),r=this.retTypes.map(o=>o.name).join(", "),n=" "+this.annotations.join(" ");return`(${t}) -> (${r})${n}`}valueToString([t,r]){return`func "${t.toText()}".${r}`}display(){let t=this.argTypes.map(o=>o.display()).join(", "),r=this.retTypes.map(o=>o.display()).join(", "),n=" "+this.annotations.join(" ");return`(${t}) \u2192 (${r})${n}`}encodeAnnotation(t){if(t==="query")return new Uint8Array([1]);if(t==="oneway")return new Uint8Array([2]);if(t==="composite_query")return new Uint8Array([3]);throw new Error("Illegal function annotation")}},lo=class extends Kt{get typeName(){return H.ServiceClass}static[Symbol.hasInstance](t){return t.typeName===H.ServiceClass}constructor(t){super(),this._fields=Object.entries(t).sort((r,n)=>r[0]<n[0]?-1:r[0]>n[0]?1:0)}accept(t,r){return t.visitService(this,r)}covariant(t){if(t&&t._isPrincipal)return!0;throw new Error(`Invalid ${this.display()} argument: ${me(t)}`)}encodeValue(t){let r=t.toUint8Array(),n=ie(r.length);return Z(new Uint8Array([1]),n,r)}_buildTypeTableImpl(t){this._fields.forEach(([i,s])=>s.buildTypeTable(t));let r=ge(Q.Service),n=ie(this._fields.length),o=this._fields.map(([i,s])=>{let a=new TextEncoder().encode(i),c=ie(a.length);return Z(c,a,s.encodeType(t))});t.add(this,Z(r,n,...o))}decodeValue(t,r){let n=r instanceof dt?r.getType()??r:r;if(!Fa(n,this))throw new Error(`Cannot decode service reference at type ${this.display()} from wire type ${n.display()}`);return Va(t)}get name(){return`service {${this._fields.map(([r,n])=>r+":"+n.name).join("; ")}}`}valueToString(t){return`service "${t.toText()}"`}fieldsAsObject(){let t={};for(let[r,n]of this._fields)t[r]=n;return t}};function me(e){let t=JSON.stringify(e,(r,n)=>typeof n=="bigint"?`BigInt(${n})`:n);return t&&t.length>Zl?t.substring(0,Zl-3)+"...":t}function Mf(e,t){if(t.length<e.length)throw Error("Wrong number of message arguments");let r=new Aa;e.forEach(a=>a.buildTypeTable(r));let n=r.encode(),o=ie(t.length),i=Z(...e.map(a=>a.encodeType(r))),s=Z(...$o(e,t,(a,c)=>{try{a.covariant(c)}catch(u){throw new Error(u.message+`
|
|
49
49
|
|
|
50
|
-
`)}return a.encodeValue(c)}));return Z(
|
|
51
|
-
`;return t}addNames(t,r,n){let o=this.rels.get(t);if(o==null){let i=new Map;i.set(r,n),this.rels.set(t,i)}else o.set(r,n)}}
|
|
52
|
-
ic-request`),Sa=new TextEncoder().encode("\vic-response"),Ca=new TextEncoder().encode("ic-request-auth-delegation");var Ut=class{getPrincipal(){return this._principal||(this._principal=k.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()))),this._principal}async transformRequest(t){let{body:r,...n}=t,o=ur(r);return{...n,body:{content:r,sender_pubkey:this.getPublicKey().toDer(),sender_sig:await this.sign(K(Lo,o))}}}},ot=class{getPrincipal(){return k.anonymous()}async transformRequest(t){return{...t,body:{content:t.body}}}};var dr=class extends Error{constructor(t){super(t),this.name="DecodingError"}},gu=55799,xu=Symbol("CBOR_STOP_CODE"),Et=(e=>(e[e.False=20]="False",e[e.True=21]="True",e[e.Null=22]="Null",e[e.Undefined=23]="Undefined",e[e.Break=31]="Break",e))(Et||{}),Ne=(e=>(e[e.UnsignedInteger=0]="UnsignedInteger",e[e.NegativeInteger=1]="NegativeInteger",e[e.ByteString=2]="ByteString",e[e.TextString=3]="TextString",e[e.Array=4]="Array",e[e.Map=5]="Map",e[e.Tag=6]="Tag",e[e.Simple=7]="Simple",e))(Ne||{}),Cf=23,Ff=255,Pf=65535,Vf=4294967295,Bf=BigInt("0xffffffffffffffff"),Ot=(e=>(e[e.Value=23]="Value",e[e.OneByte=24]="OneByte",e[e.TwoBytes=25]="TwoBytes",e[e.FourBytes=26]="FourBytes",e[e.EightBytes=27]="EightBytes",e[e.Indefinite=31]="Indefinite",e))(Ot||{}),eo=!1;function Df(e){return e==null}function bu(e,t){let r=new Uint8Array(t);return r.set(e),r}var Uf=new TextDecoder;function kf(e){return(e&224)>>5}function Lf(e){return e&31}var jo=new Uint8Array,qo,Rt=0;function wu(e,t){jo=e,Rt=0;let r=Fn(t);return t?.(r)??r}function Fn(e){let[t,r]=Xi();switch(t){case Ne.UnsignedInteger:return to(r);case Ne.NegativeInteger:return Kf(r);case Ne.ByteString:return Tu(r);case Ne.TextString:return Pa(r);case Ne.Array:return qf(r,e);case Ne.Map:return jf(r,e);case Ne.Tag:return Hf(r,e);case Ne.Simple:return Mf(r)}throw new dr(`Unsupported major type: ${t}`)}function Xi(){let e=jo.at(Rt);if(Df(e))throw new dr("Provided CBOR data is empty");let t=kf(e),r=Lf(e);return Rt++,[t,r]}function qf(e,t){let r=to(e);if(r===1/0){let o=[],i=Fn(t);for(;i!==xu;)o.push(t?.(i)??i),i=Fn(t);return o}let n=new Array(r);for(let o=0;o<r;o++){let i=Fn(t);n[o]=t?.(i)??i}return n}function Mf(e){switch(e){case Et.False:return!1;case Et.True:return!0;case Et.Null:return null;case Et.Undefined:return;case Et.Break:return xu}throw new dr(`Unrecognized simple type: ${e.toString(2)}`)}function jf(e,t){let r=to(e),n={};if(r===1/0){let[o,i]=Xi();for(;o!==Ne.Simple&&i!==Et.Break;){let s=Pa(i),a=Fn(t);n[s]=t?.(a,s)??a,[o,i]=Xi()}return n}for(let o=0;o<r;o++){let[i,s]=Xi();if(i!==Ne.TextString)throw new dr("Map keys must be text strings");let a=Pa(s),c=Fn(t);n[a]=t?.(c,a)??c}return n}function to(e){if(e<=Ot.Value)return e;switch(qo=new DataView(jo.buffer,jo.byteOffset+Rt),e){case Ot.OneByte:return Rt++,qo.getUint8(0);case Ot.TwoBytes:return Rt+=2,qo.getUint16(0,eo);case Ot.FourBytes:return Rt+=4,qo.getUint32(0,eo);case Ot.EightBytes:return Rt+=8,qo.getBigUint64(0,eo);case Ot.Indefinite:return 1/0;default:throw new dr(`Unsupported integer info: ${e.toString(2)}`)}}function Kf(e){let t=to(e);return typeof t=="number"?-1-t:-1n-t}function Tu(e){let t=to(e);if(t>Number.MAX_SAFE_INTEGER)throw new dr("Byte length is too large");let r=Number(t);return Rt+=r,jo.slice(Rt-r,Rt)}function Pa(e){let t=Tu(e);return Uf.decode(t)}function Hf(e,t){let r=to(e);if(r===gu)return Fn(t);throw new dr(`Unsupported tag: ${r}.`)}var Ko=class extends Error{constructor(t){super(t),this.name="SerializationError"}},$f=2*1024,Gf=100,Jf=new TextEncoder;function Mo(e){return e<<5}var it=new Uint8Array($f),Nt=new DataView(it.buffer),Te=0,Fa=[];function Nu(e,t){Te=0;let r=t?.(e)??e;return th(gu,r,t),it.slice(0,Te)}function Va(e,t){if(Te>it.length-Gf&&(it=bu(it,it.length*2),Nt=new DataView(it.buffer)),e===!1||e===!0||e===null||e===void 0){Yf(e);return}if(typeof e=="number"||typeof e=="bigint"){eh(e);return}if(typeof e=="string"){Ru(e);return}if(e instanceof Uint8Array){yu(e);return}if(e instanceof ArrayBuffer){yu(new Uint8Array(e));return}if(Array.isArray(e)){Wf(e,t);return}if(typeof e=="object"){zf(e,t);return}throw new Ko(`Unsupported type: ${typeof e}`)}function Wf(e,t){ro(Ne.Array,e.length),e.forEach((r,n)=>{Va(t?.(r,n.toString())??r,t)})}function zf(e,t){Fa=Object.entries(e),ro(Ne.Map,Fa.length),Fa.forEach(([r,n])=>{Ru(r),Va(t?.(n,r)??n,t)})}function ro(e,t){if(t<=Cf){Nt.setUint8(Te++,Mo(e)|Number(t));return}if(t<=Ff){Nt.setUint8(Te++,Mo(e)|Ot.OneByte),Nt.setUint8(Te,Number(t)),Te+=1;return}if(t<=Pf){Nt.setUint8(Te++,Mo(e)|Ot.TwoBytes),Nt.setUint16(Te,Number(t),eo),Te+=2;return}if(t<=Vf){Nt.setUint8(Te++,Mo(e)|Ot.FourBytes),Nt.setUint32(Te,Number(t),eo),Te+=4;return}if(t<=Bf){Nt.setUint8(Te++,Mo(e)|Ot.EightBytes),Nt.setBigUint64(Te,BigInt(t),eo),Te+=8;return}throw new Ko(`Value too large to encode: ${t}`)}function Yf(e){ro(Ne.Simple,Zf(e))}function Zf(e){if(e===!1)return Et.False;if(e===!0)return Et.True;if(e===null)return Et.Null;if(e===void 0)return Et.Undefined;throw new Ko(`Unrecognized simple value: ${e.toString()}`)}function Ou(e,t){ro(e,t.length),Te>it.length-t.length&&(it=bu(it,it.length+t.length),Nt=new DataView(it.buffer)),it.set(t,Te),Te+=t.length}function Eu(e,t){ro(e,t)}function Xf(e){Eu(Ne.UnsignedInteger,e)}function Qf(e){Eu(Ne.NegativeInteger,typeof e=="bigint"?-1n-e:-1-e)}function eh(e){e>=0?Xf(e):Qf(e)}function Ru(e){Ou(Ne.TextString,Jf.encode(e))}function yu(e){Ou(Ne.ByteString,e)}function th(e,t,r){ro(Ne.Tag,e),Va(t,r)}function nh(e){return typeof e=="object"&&e!==null&&"toCborValue"in e}function Ho(e){try{return Nu(e,t=>k.isPrincipal(t)?t.toUint8Array():no.isExpiry(t)?t.toBigInt():nh(t)?t.toCborValue():t)}catch(t){throw Y.fromCode(new Ci(t,e))}}function Me(e){try{return wu(e)}catch(t){throw Y.fromCode(new Si(t,e))}}var Qi={encode:Ho,decode:Me};var $o=()=>{if(typeof window<"u"&&window.crypto&&window.crypto.getRandomValues){let e=new Uint32Array(1);return window.crypto.getRandomValues(e),e[0]}if(typeof crypto<"u"&&crypto.getRandomValues){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}return typeof crypto<"u"&&crypto.randomInt?crypto.randomInt(0,4294967295):Math.floor(Math.random()*4294967295)};var pr;(function(e){e.Query="read",e.ReadState="read_state",e.Call="call"})(pr||(pr={}));var ts;(function(e){e.Call="call"})(ts||(ts={}));var Pn;(function(e){e.Query="query",e.ReadState="read_state"})(Pn||(Pn={}));function Go(){let e=new ArrayBuffer(16),t=new DataView(e),r=$o(),n=$o(),o=$o(),i=$o();return t.setUint32(0,r),t.setUint32(4,n),t.setUint32(8,o),t.setUint32(12,i),Object.assign(new Uint8Array(e),{__nonce__:void 0})}var rs="__expiry__",Ba=BigInt(1e3),oh=BigInt(1e6),ih=BigInt(60),Da=ih*Ba,sh=BigInt(1)*Da;function ah(e){return e/Ba*Ba}function ch(e){return e/Da*Da}var no=class e{constructor(t){this.__expiry__=t,this._isExpiry=!0}static fromDeltaInMilliseconds(t,r=0){let n=BigInt(Date.now())+BigInt(r),o=n+BigInt(t),i=ch(o),s;return i>=n+sh?s=i:s=ah(o),new e(s*oh)}toBigInt(){return this.__expiry__}toHash(){return ie(this.__expiry__)}toString(){return this.__expiry__.toString()}toJSON(){return{[rs]:this.toString()}}static fromJSON(t){let r=JSON.parse(t);if(r[rs])try{let n=BigInt(r[rs]);return new e(n)}catch(n){throw new Y(new Co(`Not a valid BigInt: ${n}`))}throw new Y(new Co(`The input does not contain the key ${rs}`))}static isExpiry(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isExpiry"in t&&t._isExpiry===!0&&"__expiry__"in t&&typeof t.__expiry__=="bigint"}};function Ua(e=Go){return async t=>{let r=t.request.headers;t.request.headers=r,t.endpoint===pr.Call&&(t.body.nonce=e())}}function ka(e){let t=[];return e.forEach((r,n)=>{t.push([n,r])}),t}var qa=BigInt(0),ns=BigInt(1);function Vn(e,t=""){if(typeof e!="boolean"){let r=t&&`"${t}"`;throw new Error(r+"expected boolean, got type="+typeof e)}return e}function kr(e,t,r=""){let n=St(e),o=e?.length,i=t!==void 0;if(!n||i&&o!==t){let s=r&&`"${r}" `,a=i?` of length ${t}`:"",c=n?`length=${o}`:`type=${typeof e}`;throw new Error(s+"expected Uint8Array"+a+", got "+c)}return e}function Iu(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?qa:BigInt("0x"+e)}function Ye(e){return Iu(j(e))}function fr(e){return me(e),Iu(j(Uint8Array.from(e).reverse()))}function Oe(e,t){return Ee(e.toString(16).padStart(t*2,"0"))}function Ma(e,t){return Oe(e,t).reverse()}function pe(e,t,r){let n;if(typeof t=="string")try{n=Ee(t)}catch(i){throw new Error(e+" must be hex string or Uint8Array, cause: "+i)}else if(St(t))n=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");let o=n.length;if(typeof r=="number"&&o!==r)throw new Error(e+" of length "+r+" expected, got "+o);return n}function vu(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function ja(e){return Uint8Array.from(e)}var La=e=>typeof e=="bigint"&&qa<=e;function Ka(e,t,r){return La(e)&&La(t)&&La(r)&&t<=e&&e<r}function os(e,t,r,n){if(!Ka(t,r,n))throw new Error("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function hr(e){let t;for(t=0;e>qa;e>>=ns,t+=1);return t}function Au(e,t){return e>>BigInt(t)&ns}var It=e=>(ns<<BigInt(e))-ns;function Su(e){return typeof e=="function"&&Number.isSafeInteger(e.outputLen)}function mr(e,t,r={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function n(o,i,s){let a=e[o];if(s&&a===void 0)return;let c=typeof a;if(c!==i||a===null)throw new Error(`param "${o}" is invalid: expected ${i}, got ${c}`)}Object.entries(t).forEach(([o,i])=>n(o,i,!1)),Object.entries(r).forEach(([o,i])=>n(o,i,!0))}var oo=()=>{throw new Error("not implemented")};function Lr(e){let t=new WeakMap;return(r,...n)=>{let o=t.get(r);if(o!==void 0)return o;let i=e(r,...n);return t.set(r,i),i}}var je=BigInt(0),Ie=BigInt(1),Bn=BigInt(2),Fu=BigInt(3),Pu=BigInt(4),Vu=BigInt(5),lh=BigInt(7),Bu=BigInt(8),uh=BigInt(9),Du=BigInt(16);function le(e,t){let r=e%t;return r>=je?r:t+r}function vt(e,t,r){let n=e;for(;t-- >je;)n*=n,n%=r;return n}function Cu(e,t){if(e===je)throw new Error("invert: expected non-zero number");if(t<=je)throw new Error("invert: expected positive modulus, got "+t);let r=le(e,t),n=t,o=je,i=Ie,s=Ie,a=je;for(;r!==je;){let u=n/r,p=n%r,d=o-s*u,l=i-a*u;n=r,r=p,o=s,i=a,s=d,a=l}if(n!==Ie)throw new Error("invert: does not exist");return le(o,t)}function Ha(e,t,r){if(!e.eql(e.sqr(t),r))throw new Error("Cannot find square root")}function Uu(e,t){let r=(e.ORDER+Ie)/Pu,n=e.pow(t,r);return Ha(e,n,t),n}function dh(e,t){let r=(e.ORDER-Vu)/Bu,n=e.mul(t,Bn),o=e.pow(n,r),i=e.mul(t,o),s=e.mul(e.mul(i,Bn),o),a=e.mul(i,e.sub(s,e.ONE));return Ha(e,a,t),a}function ph(e){let t=Ke(e),r=ku(e),n=r(t,t.neg(t.ONE)),o=r(t,n),i=r(t,t.neg(n)),s=(e+lh)/Du;return(a,c)=>{let u=a.pow(c,s),p=a.mul(u,n),d=a.mul(u,o),l=a.mul(u,i),f=a.eql(a.sqr(p),c),h=a.eql(a.sqr(d),c);u=a.cmov(u,p,f),p=a.cmov(l,d,h);let _=a.eql(a.sqr(p),c),g=a.cmov(u,p,_);return Ha(a,g,c),g}}function ku(e){if(e<Fu)throw new Error("sqrt is not defined for small field");let t=e-Ie,r=0;for(;t%Bn===je;)t/=Bn,r++;let n=Bn,o=Ke(e);for(;Jo(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return Uu;let i=o.pow(n,t),s=(t+Ie)/Bn;return function(c,u){if(c.is0(u))return u;if(Jo(c,u)!==1)throw new Error("Cannot find square root");let p=r,d=c.mul(c.ONE,i),l=c.pow(u,t),f=c.pow(u,s);for(;!c.eql(l,c.ONE);){if(c.is0(l))return c.ZERO;let h=1,_=c.sqr(l);for(;!c.eql(_,c.ONE);)if(h++,_=c.sqr(_),h===p)throw new Error("Cannot find square root");let g=Ie<<BigInt(p-h-1),m=c.pow(d,g);p=h,d=c.sqr(m),l=c.mul(l,d),f=c.mul(f,m)}return f}}function fh(e){return e%Pu===Fu?Uu:e%Bu===Vu?dh:e%Du===uh?ph(e):ku(e)}var _r=(e,t)=>(le(e,t)&Ie)===Ie,hh=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function is(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},r=hh.reduce((n,o)=>(n[o]="function",n),t);return mr(e,r),e}function Wo(e,t,r){if(r<je)throw new Error("invalid exponent, negatives unsupported");if(r===je)return e.ONE;if(r===Ie)return t;let n=e.ONE,o=t;for(;r>je;)r&Ie&&(n=e.mul(n,o)),o=e.sqr(o),r>>=Ie;return n}function ut(e,t,r=!1){let n=new Array(t.length).fill(r?e.ZERO:void 0),o=t.reduce((s,a,c)=>e.is0(a)?s:(n[c]=s,e.mul(s,a)),e.ONE),i=e.inv(o);return t.reduceRight((s,a,c)=>e.is0(a)?s:(n[c]=e.mul(s,n[c]),e.mul(s,a)),i),n}function Jo(e,t){let r=(e.ORDER-Ie)/Bn,n=e.pow(t,r),o=e.eql(n,e.ONE),i=e.eql(n,e.ZERO),s=e.eql(n,e.neg(e.ONE));if(!o&&!i&&!s)throw new Error("invalid Legendre symbol result");return o?1:i?0:-1}function $a(e,t){t!==void 0&&pa(t);let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Ke(e,t,r=!1,n={}){if(e<=je)throw new Error("invalid field: expected ORDER > 0, got "+e);let o,i,s=!1,a;if(typeof t=="object"&&t!=null){if(n.sqrt||r)throw new Error("cannot specify opts in two arguments");let l=t;l.BITS&&(o=l.BITS),l.sqrt&&(i=l.sqrt),typeof l.isLE=="boolean"&&(r=l.isLE),typeof l.modFromBytes=="boolean"&&(s=l.modFromBytes),a=l.allowedLengths}else typeof t=="number"&&(o=t),n.sqrt&&(i=n.sqrt);let{nBitLength:c,nByteLength:u}=$a(e,o);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let p,d=Object.freeze({ORDER:e,isLE:r,BITS:c,BYTES:u,MASK:It(c),ZERO:je,ONE:Ie,allowedLengths:a,create:l=>le(l,e),isValid:l=>{if(typeof l!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof l);return je<=l&&l<e},is0:l=>l===je,isValidNot0:l=>!d.is0(l)&&d.isValid(l),isOdd:l=>(l&Ie)===Ie,neg:l=>le(-l,e),eql:(l,f)=>l===f,sqr:l=>le(l*l,e),add:(l,f)=>le(l+f,e),sub:(l,f)=>le(l-f,e),mul:(l,f)=>le(l*f,e),pow:(l,f)=>Wo(d,l,f),div:(l,f)=>le(l*Cu(f,e),e),sqrN:l=>l*l,addN:(l,f)=>l+f,subN:(l,f)=>l-f,mulN:(l,f)=>l*f,inv:l=>Cu(l,e),sqrt:i||(l=>(p||(p=fh(e)),p(d,l))),toBytes:l=>r?Ma(l,u):Oe(l,u),fromBytes:(l,f=!0)=>{if(a){if(!a.includes(l.length)||l.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+l.length);let _=new Uint8Array(u);_.set(l,r?0:_.length-l.length),l=_}if(l.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+l.length);let h=r?fr(l):Ye(l);if(s&&(h=le(h,e)),!f&&!d.isValid(h))throw new Error("invalid field element: outside of range 0..ORDER");return h},invertBatch:l=>ut(d,l),cmov:(l,f,h)=>h?f:l});return Object.freeze(d)}function Lu(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 ss(e){let t=Lu(e);return t+Math.ceil(t/2)}function Ga(e,t,r=!1){let n=e.length,o=Lu(t),i=ss(t);if(n<16||n<i||n>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+n);let s=r?fr(e):Ye(e),a=le(s,t-Ie)+Ie;return r?Ma(a,o):Oe(a,o)}var io=BigInt(0),Dn=BigInt(1);function zo(e,t){let r=t.negate();return e?r:t}function dt(e,t){let r=ut(e.Fp,t.map(n=>n.Z));return t.map((n,o)=>e.fromAffine(n.toAffine(r[o])))}function Ku(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Ja(e,t){Ku(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),o=2**e,i=It(e),s=BigInt(e);return{windows:r,windowSize:n,mask:i,maxNumber:o,shiftBy:s}}function qu(e,t,r){let{windowSize:n,mask:o,maxNumber:i,shiftBy:s}=r,a=Number(e&o),c=e>>s;a>n&&(a-=i,c+=Dn);let u=t*n,p=u+Math.abs(a)-1,d=a===0,l=a<0,f=t%2!==0;return{nextN:c,offset:p,isZero:d,isNeg:l,isNegF:f,offsetF:u}}function _h(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((r,n)=>{if(!(r instanceof t))throw new Error("invalid point at index "+n)})}function yh(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((r,n)=>{if(!t.isValid(r))throw new Error("invalid scalar at index "+n)})}var Wa=new WeakMap,Hu=new WeakMap;function za(e){return Hu.get(e)||1}function Mu(e){if(e!==io)throw new Error("invalid wNAF")}var so=class{constructor(t,r){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=r}_unsafeLadder(t,r,n=this.ZERO){let o=t;for(;r>io;)r&Dn&&(n=n.add(o)),o=o.double(),r>>=Dn;return n}precomputeWindow(t,r){let{windows:n,windowSize:o}=Ja(r,this.bits),i=[],s=t,a=s;for(let c=0;c<n;c++){a=s,i.push(a);for(let u=1;u<o;u++)a=a.add(s),i.push(a);s=a.double()}return i}wNAF(t,r,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,i=this.BASE,s=Ja(t,this.bits);for(let a=0;a<s.windows;a++){let{nextN:c,offset:u,isZero:p,isNeg:d,isNegF:l,offsetF:f}=qu(n,a,s);n=c,p?i=i.add(zo(l,r[f])):o=o.add(zo(d,r[u]))}return Mu(n),{p:o,f:i}}wNAFUnsafe(t,r,n,o=this.ZERO){let i=Ja(t,this.bits);for(let s=0;s<i.windows&&n!==io;s++){let{nextN:a,offset:c,isZero:u,isNeg:p}=qu(n,s,i);if(n=a,!u){let d=r[c];o=o.add(p?d.negate():d)}}return Mu(n),o}getPrecomputes(t,r,n){let o=Wa.get(r);return o||(o=this.precomputeWindow(r,t),t!==1&&(typeof n=="function"&&(o=n(o)),Wa.set(r,o))),o}cached(t,r,n){let o=za(t);return this.wNAF(o,this.getPrecomputes(o,t,n),r)}unsafe(t,r,n,o){let i=za(t);return i===1?this._unsafeLadder(t,r,o):this.wNAFUnsafe(i,this.getPrecomputes(i,t,n),r,o)}createCache(t,r){Ku(r,this.bits),Hu.set(t,r),Wa.delete(t)}hasCache(t){return za(t)!==1}};function $u(e,t,r,n){let o=t,i=e.ZERO,s=e.ZERO;for(;r>io||n>io;)r&Dn&&(i=i.add(o)),n&Dn&&(s=s.add(o)),o=o.double(),r>>=Dn,n>>=Dn;return{p1:i,p2:s}}function ao(e,t,r,n){_h(r,e),yh(n,t);let o=r.length,i=n.length;if(o!==i)throw new Error("arrays of points and scalars must have equal length");let s=e.ZERO,a=hr(BigInt(o)),c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);let u=It(c),p=new Array(Number(u)+1).fill(s),d=Math.floor((t.BITS-1)/c)*c,l=s;for(let f=d;f>=0;f-=c){p.fill(s);for(let _=0;_<i;_++){let g=n[_],m=Number(g>>BigInt(f)&u);p[m]=p[m].add(r[_])}let h=s;for(let _=p.length-1,g=s;_>0;_--)g=g.add(p[_]),h=h.add(g);if(l=l.add(h),f!==0)for(let _=0;_<c;_++)l=l.double()}return l}function ju(e,t,r){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return is(t),t}else return Ke(e,{isLE:r})}function as(e,t,r={},n){if(n===void 0&&(n=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);for(let c of["p","n","h"]){let u=t[c];if(!(typeof u=="bigint"&&u>io))throw new Error(`CURVE.${c} must be positive bigint`)}let o=ju(t.p,r.Fp,n),i=ju(t.n,r.Fn,n),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:i}}var gh=Ye;function qr(e,t){if(Yo(e),Yo(t),e<0||e>=1<<8*t)throw new Error("invalid I2OSP input: "+e);let r=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)r[n]=e&255,e>>>=8;return new Uint8Array(r)}function xh(e,t){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return r}function Yo(e){if(!Number.isSafeInteger(e))throw new Error("number expected")}function Gu(e){if(!St(e)&&typeof e!="string")throw new Error("DST must be Uint8Array or string");return typeof e=="string"?$(e):e}function bh(e,t,r,n){me(e),Yo(r),t=Gu(t),t.length>255&&(t=n(K($("H2C-OVERSIZE-DST-"),t)));let{outputLen:o,blockLen:i}=n,s=Math.ceil(r/o);if(r>65535||s>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=K(t,qr(t.length,1)),c=qr(0,i),u=qr(r,2),p=new Array(s),d=n(K(c,e,u,qr(0,1),a));p[0]=n(K(d,qr(1,1),a));for(let f=1;f<=s;f++){let h=[xh(d,p[f-1]),qr(f+1,1),a];p[f]=n(K(...h))}return K(...p).slice(0,r)}function wh(e,t,r,n,o){if(me(e),Yo(r),t=Gu(t),t.length>255){let i=Math.ceil(2*n/8);t=o.create({dkLen:i}).update($("H2C-OVERSIZE-DST-")).update(t).digest()}if(r>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return o.create({dkLen:r}).update(e).update(qr(r,2)).update(t).update(qr(t.length,1)).digest()}function Ya(e,t,r){mr(r,{p:"bigint",m:"number",k:"number",hash:"function"});let{p:n,k:o,m:i,hash:s,expand:a,DST:c}=r;if(!Su(r.hash))throw new Error("expected valid hash");me(e),Yo(t);let u=n.toString(2).length,p=Math.ceil((u+o)/8),d=t*i*p,l;if(a==="xmd")l=bh(e,c,d,s);else if(a==="xof")l=wh(e,c,d,o,s);else if(a==="_internal_pass")l=e;else throw new Error('expand must be "xmd" or "xof"');let f=new Array(t);for(let h=0;h<t;h++){let _=new Array(i);for(let g=0;g<i;g++){let m=p*(g+h*i),x=l.subarray(m,m+p);_[g]=le(gh(x),n)}f[h]=_}return f}function Za(e,t){let r=t.map(n=>Array.from(n).reverse());return(n,o)=>{let[i,s,a,c]=r.map(d=>d.reduce((l,f)=>e.add(e.mul(l,n),f))),[u,p]=ut(e,[s,c],!0);return n=e.mul(i,u),o=e.mul(o,e.mul(a,p)),{x:n,y:o}}}var Th=$("HashToScalar-");function Xa(e,t,r){if(typeof t!="function")throw new Error("mapToCurve() must be defined");function n(i){return e.fromAffine(t(i))}function o(i){let s=i.clearCofactor();return s.equals(e.ZERO)?e.ZERO:(s.assertValidity(),s)}return{defaults:r,hashToCurve(i,s){let a=Object.assign({},r,s),c=Ya(i,2,a),u=n(c[0]),p=n(c[1]);return o(u.add(p))},encodeToCurve(i,s){let a=r.encodeDST?{DST:r.encodeDST}:{},c=Object.assign({},r,a,s),u=Ya(i,1,c),p=n(u[0]);return o(p)},mapToCurve(i){if(!Array.isArray(i))throw new Error("expected array of bigints");for(let s of i)if(typeof s!="bigint")throw new Error("expected array of bigints");return o(n(i))},hashToScalar(i,s){let a=e.Fn.ORDER,c=Object.assign({},r,{p:a,m:1,DST:Th},s);return Ya(i,1,c)[0][0]}}}var Ju=(e,t)=>(e+(e>=0?t:-t)/yr)/t;function Nh(e,t,r){let[[n,o],[i,s]]=t,a=Ju(s*e,r),c=Ju(-o*e,r),u=e-a*n-c*i,p=-a*o-c*s,d=u<Un,l=p<Un;d&&(u=-u),l&&(p=-p);let f=It(Math.ceil(hr(r)/2))+He;if(u<Un||u>=f||p<Un||p>=f)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:d,k1:u,k2neg:l,k2:p}}var Un=BigInt(0),He=BigInt(1),yr=BigInt(2),co=BigInt(3),Qa=BigInt(4);function Zo(e,t){let{BYTES:r}=e,n;if(typeof t=="bigint")n=t;else{let o=pe("private key",t);try{n=e.fromBytes(o)}catch{throw new Error(`invalid private key: expected ui8a of size ${r}, got ${typeof t}`)}}if(!e.isValidNot0(n))throw new Error("invalid private key: out of range [1..N-1]");return n}function Oh(e,t={}){let r=as("weierstrass",e,t),{Fp:n,Fn:o}=r,i=r.CURVE,{h:s,n:a}=i;mr(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:c}=t;if(c&&(!n.is0(i.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let u=Ih(n,o);function p(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function d(S,b,N){let{x:C,y:B}=b.toAffine(),L=n.toBytes(C);if(Vn(N,"isCompressed"),N){p();let A=!n.isOdd(B);return K(Eh(A),L)}else return K(Uint8Array.of(4),L,n.toBytes(B))}function l(S){kr(S,void 0,"Point");let{publicKey:b,publicKeyUncompressed:N}=u,C=S.length,B=S[0],L=S.subarray(1);if(C===b&&(B===2||B===3)){let A=n.fromBytes(L);if(!n.isValid(A))throw new Error("bad point: is not on curve, wrong x");let P=_(A),V;try{V=n.sqrt(P)}catch(te){let ee=te instanceof Error?": "+te.message:"";throw new Error("bad point: is not on curve, sqrt error"+ee)}p();let D=n.isOdd(V);return(B&1)===1!==D&&(V=n.neg(V)),{x:A,y:V}}else if(C===N&&B===4){let A=n.BYTES,P=n.fromBytes(L.subarray(0,A)),V=n.fromBytes(L.subarray(A,A*2));if(!g(P,V))throw new Error("bad point: is not on curve");return{x:P,y:V}}else throw new Error(`bad point: got length ${C}, expected compressed=${b} or uncompressed=${N}`)}let f=t.toBytes||d,h=t.fromBytes||l;function _(S){let b=n.sqr(S),N=n.mul(b,S);return n.add(n.add(N,n.mul(S,i.a)),i.b)}function g(S,b){let N=n.sqr(b),C=_(S);return n.eql(N,C)}if(!g(i.Gx,i.Gy))throw new Error("bad curve params: generator point");let m=n.mul(n.pow(i.a,co),Qa),x=n.mul(n.sqr(i.b),BigInt(27));if(n.is0(n.add(m,x)))throw new Error("bad curve params: a or b");function y(S,b,N=!1){if(!n.isValid(b)||N&&n.is0(b))throw new Error(`bad point coordinate ${S}`);return b}function T(S){if(!(S instanceof w))throw new Error("ProjectivePoint expected")}function E(S){if(!c||!c.basises)throw new Error("no endo");return Nh(S,c.basises,o.ORDER)}let O=Lr((S,b)=>{let{X:N,Y:C,Z:B}=S;if(n.eql(B,n.ONE))return{x:N,y:C};let L=S.is0();b==null&&(b=L?n.ONE:n.inv(B));let A=n.mul(N,b),P=n.mul(C,b),V=n.mul(B,b);if(L)return{x:n.ZERO,y:n.ZERO};if(!n.eql(V,n.ONE))throw new Error("invZ was invalid");return{x:A,y:P}}),R=Lr(S=>{if(S.is0()){if(t.allowInfinityPoint&&!n.is0(S.Y))return;throw new Error("bad point: ZERO")}let{x:b,y:N}=S.toAffine();if(!n.isValid(b)||!n.isValid(N))throw new Error("bad point: x or y not field elements");if(!g(b,N))throw new Error("bad point: equation left != right");if(!S.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function v(S,b,N,C,B){return N=new w(n.mul(N.X,S),N.Y,N.Z),b=zo(C,b),N=zo(B,N),b.add(N)}class w{constructor(b,N,C){this.X=y("x",b),this.Y=y("y",N,!0),this.Z=y("z",C),Object.freeze(this)}static CURVE(){return i}static fromAffine(b){let{x:N,y:C}=b||{};if(!b||!n.isValid(N)||!n.isValid(C))throw new Error("invalid affine point");if(b instanceof w)throw new Error("projective point not allowed");return n.is0(N)&&n.is0(C)?w.ZERO:new w(N,C,n.ONE)}static fromBytes(b){let N=w.fromAffine(h(kr(b,void 0,"point")));return N.assertValidity(),N}static fromHex(b){return w.fromBytes(pe("pointHex",b))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(b=8,N=!0){return F.createCache(this,b),N||this.multiply(co),this}assertValidity(){R(this)}hasEvenY(){let{y:b}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(b)}equals(b){T(b);let{X:N,Y:C,Z:B}=this,{X:L,Y:A,Z:P}=b,V=n.eql(n.mul(N,P),n.mul(L,B)),D=n.eql(n.mul(C,P),n.mul(A,B));return V&&D}negate(){return new w(this.X,n.neg(this.Y),this.Z)}double(){let{a:b,b:N}=i,C=n.mul(N,co),{X:B,Y:L,Z:A}=this,P=n.ZERO,V=n.ZERO,D=n.ZERO,q=n.mul(B,B),te=n.mul(L,L),ee=n.mul(A,A),J=n.mul(B,L);return J=n.add(J,J),D=n.mul(B,A),D=n.add(D,D),P=n.mul(b,D),V=n.mul(C,ee),V=n.add(P,V),P=n.sub(te,V),V=n.add(te,V),V=n.mul(P,V),P=n.mul(J,P),D=n.mul(C,D),ee=n.mul(b,ee),J=n.sub(q,ee),J=n.mul(b,J),J=n.add(J,D),D=n.add(q,q),q=n.add(D,q),q=n.add(q,ee),q=n.mul(q,J),V=n.add(V,q),ee=n.mul(L,A),ee=n.add(ee,ee),q=n.mul(ee,J),P=n.sub(P,q),D=n.mul(ee,te),D=n.add(D,D),D=n.add(D,D),new w(P,V,D)}add(b){T(b);let{X:N,Y:C,Z:B}=this,{X:L,Y:A,Z:P}=b,V=n.ZERO,D=n.ZERO,q=n.ZERO,te=i.a,ee=n.mul(i.b,co),J=n.mul(N,L),ae=n.mul(C,A),he=n.mul(B,P),Fe=n.add(N,C),oe=n.add(L,A);Fe=n.mul(Fe,oe),oe=n.add(J,ae),Fe=n.sub(Fe,oe),oe=n.add(N,B);let re=n.add(L,P);return oe=n.mul(oe,re),re=n.add(J,he),oe=n.sub(oe,re),re=n.add(C,B),V=n.add(A,P),re=n.mul(re,V),V=n.add(ae,he),re=n.sub(re,V),q=n.mul(te,oe),V=n.mul(ee,he),q=n.add(V,q),V=n.sub(ae,q),q=n.add(ae,q),D=n.mul(V,q),ae=n.add(J,J),ae=n.add(ae,J),he=n.mul(te,he),oe=n.mul(ee,oe),ae=n.add(ae,he),he=n.sub(J,he),he=n.mul(te,he),oe=n.add(oe,he),J=n.mul(ae,oe),D=n.add(D,J),J=n.mul(re,oe),V=n.mul(Fe,V),V=n.sub(V,J),J=n.mul(Fe,ae),q=n.mul(re,q),q=n.add(q,J),new w(V,D,q)}subtract(b){return this.add(b.negate())}is0(){return this.equals(w.ZERO)}multiply(b){let{endo:N}=t;if(!o.isValidNot0(b))throw new Error("invalid scalar: out of range");let C,B,L=A=>F.cached(this,A,P=>dt(w,P));if(N){let{k1neg:A,k1:P,k2neg:V,k2:D}=E(b),{p:q,f:te}=L(P),{p:ee,f:J}=L(D);B=te.add(J),C=v(N.beta,q,ee,A,V)}else{let{p:A,f:P}=L(b);C=A,B=P}return dt(w,[C,B])[0]}multiplyUnsafe(b){let{endo:N}=t,C=this;if(!o.isValid(b))throw new Error("invalid scalar: out of range");if(b===Un||C.is0())return w.ZERO;if(b===He)return C;if(F.hasCache(this))return this.multiply(b);if(N){let{k1neg:B,k1:L,k2neg:A,k2:P}=E(b),{p1:V,p2:D}=$u(w,C,L,P);return v(N.beta,V,D,B,A)}else return F.unsafe(C,b)}multiplyAndAddUnsafe(b,N,C){let B=this.multiplyUnsafe(N).add(b.multiplyUnsafe(C));return B.is0()?void 0:B}toAffine(b){return O(this,b)}isTorsionFree(){let{isTorsionFree:b}=t;return s===He?!0:b?b(w,this):F.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:b}=t;return s===He?this:b?b(w,this):this.multiplyUnsafe(s)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}toBytes(b=!0){return Vn(b,"isCompressed"),this.assertValidity(),f(w,this,b)}toHex(b=!0){return j(this.toBytes(b))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(b=!0){return this.toBytes(b)}_setWindowSize(b){this.precompute(b)}static normalizeZ(b){return dt(w,b)}static msm(b,N){return ao(w,o,b,N)}static fromPrivateKey(b){return w.BASE.multiply(Zo(o,b))}}w.BASE=new w(i.Gx,i.Gy,n.ONE),w.ZERO=new w(n.ZERO,n.ONE,n.ZERO),w.Fp=n,w.Fn=o;let I=o.BITS,F=new so(w,t.endo?Math.ceil(I/2):I);return w.BASE.precompute(8),w}function Eh(e){return Uint8Array.of(e?2:3)}function Rh(e,t){let r=e.ORDER,n=Un;for(let h=r-He;h%yr===Un;h/=yr)n+=He;let o=n,i=yr<<o-He-He,s=i*yr,a=(r-He)/s,c=(a-He)/yr,u=s-He,p=i,d=e.pow(t,a),l=e.pow(t,(a+He)/yr),f=(h,_)=>{let g=d,m=e.pow(_,u),x=e.sqr(m);x=e.mul(x,_);let y=e.mul(h,x);y=e.pow(y,c),y=e.mul(y,m),m=e.mul(y,_),x=e.mul(y,h);let T=e.mul(x,m);y=e.pow(T,p);let E=e.eql(y,e.ONE);m=e.mul(x,l),y=e.mul(T,g),x=e.cmov(m,x,E),T=e.cmov(y,T,E);for(let O=o;O>He;O--){let R=O-yr;R=yr<<R-He;let v=e.pow(T,R),w=e.eql(v,e.ONE);m=e.mul(x,g),g=e.mul(g,g),v=e.mul(T,g),x=e.cmov(m,x,w),T=e.cmov(v,T,w)}return{isValid:E,value:x}};if(e.ORDER%Qa===co){let h=(e.ORDER-co)/Qa,_=e.sqrt(e.neg(t));f=(g,m)=>{let x=e.sqr(m),y=e.mul(g,m);x=e.mul(x,y);let T=e.pow(x,h);T=e.mul(T,y);let E=e.mul(T,_),O=e.mul(e.sqr(T),m),R=e.eql(O,g),v=e.cmov(E,T,R);return{isValid:R,value:v}}}return f}function ec(e,t){is(e);let{A:r,B:n,Z:o}=t;if(!e.isValid(r)||!e.isValid(n)||!e.isValid(o))throw new Error("mapToCurveSimpleSWU: invalid opts");let i=Rh(e,o);if(!e.isOdd)throw new Error("Field does not have .isOdd()");return s=>{let a,c,u,p,d,l,f,h;a=e.sqr(s),a=e.mul(a,o),c=e.sqr(a),c=e.add(c,a),u=e.add(c,e.ONE),u=e.mul(u,n),p=e.cmov(o,e.neg(c),!e.eql(c,e.ZERO)),p=e.mul(p,r),c=e.sqr(u),l=e.sqr(p),d=e.mul(l,r),c=e.add(c,d),c=e.mul(c,u),l=e.mul(l,p),d=e.mul(l,n),c=e.add(c,d),f=e.mul(a,u);let{isValid:_,value:g}=i(c,l);h=e.mul(a,s),h=e.mul(h,g),f=e.cmov(f,u,_),h=e.cmov(h,g,_);let m=e.isOdd(s)===e.isOdd(h);h=e.cmov(e.neg(h),h,m);let x=ut(e,[p],!0)[0];return f=e.mul(f,x),{x:f,y:h}}}function Ih(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function tc(e){let{CURVE:t,curveOpts:r}=vh(e),n=Oh(t,r);return Sh(e,n)}function vh(e){let t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(s=>Math.ceil(s/2)))):void 0,o=Ke(t.n,{BITS:e.nBitLength,allowedLengths:n,modFromBytes:e.wrapPrivateKey}),i={Fp:r,Fn:o,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:i}}function Ah(e,t,r){function n(o){let i=e.sqr(o),s=e.mul(i,o);return e.add(e.add(s,e.mul(o,t)),r)}return n}function Sh(e,t){let{Fp:r,Fn:n}=t;function o(s){return Ka(s,He,n.ORDER)}let i=Ah(r,e.a,e.b);return Object.assign({},{CURVE:e,Point:t,ProjectivePoint:t,normPrivateKeyToScalar:s=>Zo(n,s),weierstrassEquation:i,isWithinCurveOrder:o})}var Ch=BigInt(0),cs=BigInt(1),Wu=BigInt(2),lo=BigInt(3);function Fh(e){let t=[];for(;e>cs;e>>=cs)(e&cs)===Ch?t.unshift(0):(e&lo)===lo?(t.unshift(-1),e+=cs):t.unshift(1);return t}function rc(e){if(!Array.isArray(e)||e.length===0)throw new Error("expected non-empty array")}function Ph(e,t,r,n){let{Fp2:o,Fp12:i}=e,{twistType:s,ateLoopSize:a,xNegative:c,postPrecompute:u}=n,p;if(s==="multiplicative")p=(y,T,E,O,R,v)=>i.mul014(O,y,o.mul(T,R),o.mul(E,v));else if(s==="divisive")p=(y,T,E,O,R,v)=>i.mul034(O,o.mul(E,v),o.mul(T,R),y);else throw new Error("bls: unknown twist type");let d=o.div(o.ONE,o.mul(o.ONE,Wu));function l(y,T,E,O){let R=o.sqr(E),v=o.sqr(O),w=o.mulByB(o.mul(v,lo)),I=o.mul(w,lo),F=o.sub(o.sub(o.sqr(o.add(E,O)),v),R),S=o.sub(w,R),b=o.mul(o.sqr(T),lo),N=o.neg(F);return y.push([S,b,N]),T=o.mul(o.mul(o.mul(o.sub(R,I),T),E),d),E=o.sub(o.sqr(o.mul(o.add(R,I),d)),o.mul(o.sqr(w),lo)),O=o.mul(R,F),{Rx:T,Ry:E,Rz:O}}function f(y,T,E,O,R,v){let w=o.sub(E,o.mul(v,O)),I=o.sub(T,o.mul(R,O)),F=o.sub(o.mul(w,R),o.mul(I,v)),S=o.neg(w),b=I;y.push([F,S,b]);let N=o.sqr(I),C=o.mul(N,I),B=o.mul(N,T),L=o.add(o.sub(C,o.mul(B,Wu)),o.mul(o.sqr(w),O));return T=o.mul(I,L),E=o.sub(o.mul(o.sub(B,L),w),o.mul(C,E)),O=o.mul(O,C),{Rx:T,Ry:E,Rz:O}}let h=Fh(a),_=Lr(y=>{let T=y,{x:E,y:O}=T.toAffine(),R=E,v=O,w=o.neg(O),I=R,F=v,S=o.ONE,b=[];for(let N of h){let C=[];({Rx:I,Ry:F,Rz:S}=l(C,I,F,S)),N&&({Rx:I,Ry:F,Rz:S}=f(C,I,F,S,R,N===-1?w:v)),b.push(C)}if(u){let N=b[b.length-1];u(I,F,S,R,v,f.bind(null,N))}return b});function g(y,T=!1){let E=i.ONE;if(y.length){let O=y[0][0].length;for(let R=0;R<O;R++){E=i.sqr(E);for(let[v,w,I]of y)for(let[F,S,b]of v[R])E=p(F,S,b,E,w,I)}}return c&&(E=i.conjugate(E)),T?i.finalExponentiate(E):E}function m(y,T=!0){let E=[];dt(t,y.map(({g1:O})=>O)),dt(r,y.map(({g2:O})=>O));for(let{g1:O,g2:R}of y){if(O.is0()||R.is0())throw new Error("pairing is not available for ZERO point");O.assertValidity(),R.assertValidity();let v=O.toAffine();E.push([_(R),v.x,v.y])}return g(E,T)}function x(y,T,E=!0){return m([{g1:y,g2:T}],E)}return{Fp12:i,millerLoopBatch:g,pairing:x,pairingBatch:m,calcPairingPrecomputes:_}}function zu(e,t,r,n,o){let{Fp12:i,pairingBatch:s}=e;function a(d){return d instanceof t.Point?d:t.Point.fromHex(d)}function c(d){return d instanceof r.Point?d:r.Point.fromHex(d)}function u(d){if(!(d instanceof r.Point))throw new Error(`expected valid message hashed to ${o?"G1":"G2"} curve`);return d}let p=o?(d,l)=>({g1:l,g2:d}):(d,l)=>({g1:d,g2:l});return{getPublicKey(d){let l=Zo(t.Point.Fn,d);return t.Point.BASE.multiply(l)},sign(d,l,f){if(f!=null)throw new Error("sign() expects 2 arguments");let h=Zo(t.Point.Fn,l);return u(d).assertValidity(),d.multiply(h)},verify(d,l,f,h){if(h!=null)throw new Error("verify() expects 3 arguments");d=c(d),f=a(f);let _=f.negate(),g=t.Point.BASE,m=u(l),x=d,y=s([p(_,m),p(g,x)]);return i.eql(y,i.ONE)},verifyBatch(d,l,f){if(rc(l),f.length!==l.length)throw new Error("amount of public keys and messages should be equal");let h=c(d),_=l,g=f.map(a),m=new Map;for(let T=0;T<g.length;T++){let E=g[T],O=_[T],R=m.get(O);R===void 0&&(R=[],m.set(O,R)),R.push(E)}let x=[],y=t.Point.BASE;try{for(let[T,E]of m){let O=E.reduce((R,v)=>R.add(v));x.push(p(O,T))}return x.push(p(y.negate(),h)),i.eql(s(x),i.ONE)}catch{return!1}},aggregatePublicKeys(d){rc(d),d=d.map(f=>a(f));let l=d.reduce((f,h)=>f.add(h),t.Point.ZERO);return l.assertValidity(),l},aggregateSignatures(d){rc(d),d=d.map(f=>c(f));let l=d.reduce((f,h)=>f.add(h),r.Point.ZERO);return l.assertValidity(),l},hash(d,l){me(d);let f=l?{DST:l}:void 0;return r.hashToCurve(d,f)},Signature:n}}function Yu(e){let{Fp:t,Fr:r,Fp2:n,Fp6:o,Fp12:i}=e.fields,s=tc(e.G1),a=Object.assign(s,Xa(s.Point,e.G1.mapToCurve,{...e.htfDefaults,...e.G1.htfDefaults})),c=tc(e.G2),u=Object.assign(c,Xa(c.Point,e.G2.mapToCurve,{...e.htfDefaults,...e.G2.htfDefaults})),p=Ph(e.fields,a.Point,u.Point,{...e.params,postPrecompute:e.postPrecompute}),{millerLoopBatch:d,pairing:l,pairingBatch:f,calcPairingPrecomputes:h}=p,_=zu(p,a,u,e.G2.Signature,!1),g=zu(p,u,a,e.G1.ShortSignature,!0),m=e.randomBytes||Hn,x=()=>{let A=ss(r.ORDER);return Ga(m(A),r.ORDER)},y={randomSecretKey:x,randomPrivateKey:x,calcPairingPrecomputes:h},{ShortSignature:T}=e.G1,{Signature:E}=e.G2;function O(A,P){return A instanceof a.Point?A:g.hash(pe("point",A),P?.DST)}function R(A,P){return A instanceof u.Point?A:_.hash(pe("point",A),P?.DST)}function v(A){return _.getPublicKey(A).toBytes(!0)}function w(A){return g.getPublicKey(A).toBytes(!0)}function I(A,P,V){let D=R(A,V),q=_.sign(D,P);return A instanceof u.Point?q:E.toBytes(q)}function F(A,P,V){let D=O(A,V),q=g.sign(D,P);return A instanceof a.Point?q:T.toBytes(q)}function S(A,P,V,D){let q=R(P,D);return _.verify(A,q,V)}function b(A,P,V,D){let q=O(P,D);return g.verify(A,q,V)}function N(A){let P=_.aggregatePublicKeys(A);return A[0]instanceof a.Point?P:P.toBytes(!0)}function C(A){let P=_.aggregateSignatures(A);return A[0]instanceof u.Point?P:E.toBytes(P)}function B(A){let P=g.aggregateSignatures(A);return A[0]instanceof a.Point?P:T.toBytes(P)}function L(A,P,V,D){let q=P.map(te=>R(te,D));return _.verifyBatch(A,q,V)}return a.Point.BASE.precompute(4),{longSignatures:_,shortSignatures:g,millerLoopBatch:d,pairing:l,pairingBatch:f,verifyBatch:L,fields:{Fr:r,Fp:t,Fp2:n,Fp6:o,Fp12:i},params:{ateLoopSize:e.params.ateLoopSize,twistType:e.params.twistType,r:e.params.r,G1b:e.G1.b,G2b:e.G2.b},utils:y,getPublicKey:v,getPublicKeyForShortSignatures:w,sign:I,signShortSignature:F,verify:S,verifyShortSignature:b,aggregatePublicKeys:N,aggregateSignatures:C,aggregateShortSignatures:B,G1:a,G2:u,Signature:E,ShortSignature:T}}var Zu=BigInt(0),gr=BigInt(1),$e=BigInt(2),Xu=BigInt(3);function sc(e,t,r,n,o=1,i){let s=BigInt(i===void 0?n:i),a=r**BigInt(n),c=[];for(let u=0;u<o;u++){let p=BigInt(u+1),d=[];for(let l=0,f=gr;l<n;l++){let h=(p*f-p)/s%a;d.push(e.pow(t,h)),f*=r}c.push(d)}return c}function ed(e,t,r){let n=t.pow(r,(e.ORDER-gr)/Xu),o=t.pow(r,(e.ORDER-gr)/$e);function i(l,f){let h=t.mul(t.frobeniusMap(l,1),n),_=t.mul(t.frobeniusMap(f,1),o);return[h,_]}let s=t.pow(r,(e.ORDER**$e-gr)/Xu),a=t.pow(r,(e.ORDER**$e-gr)/$e);if(!t.eql(a,t.neg(t.ONE)))throw new Error("psiFrobenius: PSI2_Y!==-1");function c(l,f){return[t.mul(l,s),t.neg(f)]}let u=l=>(f,h)=>{let _=h.toAffine(),g=l(_.x,_.y);return f.fromAffine({x:g[0],y:g[1]})},p=u(i),d=u(c);return{psi:i,psi2:c,G2psi:p,G2psi2:d,PSI_X:n,PSI_Y:o,PSI2_X:s,PSI2_Y:a}}var Qu=(e,t)=>{if(t.length!==2)throw new Error("invalid tuple");let r=t.map(n=>e.create(n));return{c0:r[0],c1:r[1]}},nc=class{constructor(t,r={}){this.MASK=gr;let n=t.ORDER,o=n*n;this.Fp=t,this.ORDER=o,this.BITS=hr(o),this.BYTES=Math.ceil(hr(o)/8),this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.Fp_NONRESIDUE=t.create(r.NONRESIDUE||BigInt(-1)),this.Fp_div2=t.div(t.ONE,$e),this.NONRESIDUE=Qu(t,r.FP2_NONRESIDUE),this.FROBENIUS_COEFFICIENTS=sc(t,this.Fp_NONRESIDUE,t.ORDER,2)[0],this.mulByB=r.Fp2mulByB,Object.seal(this)}fromBigTuple(t){return Qu(this.Fp,t)}create(t){return t}isValid({c0:t,c1:r}){function n(o,i){return typeof o=="bigint"&&Zu<=o&&o<i}return n(t,this.ORDER)&&n(r,this.ORDER)}is0({c0:t,c1:r}){return this.Fp.is0(t)&&this.Fp.is0(r)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}eql({c0:t,c1:r},{c0:n,c1:o}){return this.Fp.eql(t,n)&&this.Fp.eql(r,o)}neg({c0:t,c1:r}){return{c0:this.Fp.neg(t),c1:this.Fp.neg(r)}}pow(t,r){return Wo(this,t,r)}invertBatch(t){return ut(this,t)}add(t,r){let{c0:n,c1:o}=t,{c0:i,c1:s}=r;return{c0:this.Fp.add(n,i),c1:this.Fp.add(o,s)}}sub({c0:t,c1:r},{c0:n,c1:o}){return{c0:this.Fp.sub(t,n),c1:this.Fp.sub(r,o)}}mul({c0:t,c1:r},n){let{Fp:o}=this;if(typeof n=="bigint")return{c0:o.mul(t,n),c1:o.mul(r,n)};let{c0:i,c1:s}=n,a=o.mul(t,i),c=o.mul(r,s),u=o.sub(a,c),p=o.sub(o.mul(o.add(t,r),o.add(i,s)),o.add(a,c));return{c0:u,c1:p}}sqr({c0:t,c1:r}){let{Fp:n}=this,o=n.add(t,r),i=n.sub(t,r),s=n.add(t,t);return{c0:n.mul(o,i),c1:n.mul(s,r)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}div(t,r){let{Fp:n}=this;return this.mul(t,typeof r=="bigint"?n.inv(n.create(r)):this.inv(r))}inv({c0:t,c1:r}){let{Fp:n}=this,o=n.inv(n.create(t*t+r*r));return{c0:n.mul(o,n.create(t)),c1:n.mul(o,n.create(-r))}}sqrt(t){let{Fp:r}=this,n=this,{c0:o,c1:i}=t;if(r.is0(i))return Jo(r,o)===1?n.create({c0:r.sqrt(o),c1:r.ZERO}):n.create({c0:r.ZERO,c1:r.sqrt(r.div(o,this.Fp_NONRESIDUE))});let s=r.sqrt(r.sub(r.sqr(o),r.mul(r.sqr(i),this.Fp_NONRESIDUE))),a=r.mul(r.add(s,o),this.Fp_div2);Jo(r,a)===-1&&(a=r.sub(a,s));let u=r.sqrt(a),p=n.create({c0:u,c1:r.div(r.mul(i,this.Fp_div2),u)});if(!n.eql(n.sqr(p),t))throw new Error("Cannot find square root");let d=p,l=n.neg(d),{re:f,im:h}=n.reim(d),{re:_,im:g}=n.reim(l);return h>g||h===g&&f>_?d:l}isOdd(t){let{re:r,im:n}=this.reim(t),o=r%$e,i=r===Zu,s=n%$e;return BigInt(o||i&&s)==gr}fromBytes(t){let{Fp:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){return K(this.Fp.toBytes(t),this.Fp.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:o},i){return{c0:this.Fp.cmov(t,n,i),c1:this.Fp.cmov(r,o,i)}}reim({c0:t,c1:r}){return{re:t,im:r}}Fp4Square(t,r){let n=this,o=n.sqr(t),i=n.sqr(r);return{first:n.add(n.mulByNonresidue(i),o),second:n.sub(n.sub(n.sqr(n.add(t,r)),o),i)}}mulByNonresidue({c0:t,c1:r}){return this.mul({c0:t,c1:r},this.NONRESIDUE)}frobeniusMap({c0:t,c1:r},n){return{c0:t,c1:this.Fp.mul(r,this.FROBENIUS_COEFFICIENTS[n%2])}}},oc=class{constructor(t){this.MASK=gr,this.Fp2=t,this.ORDER=t.ORDER,this.BITS=3*t.BITS,this.BYTES=3*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO,c2:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO,c2:t.ZERO};let{Fp:r}=t,n=sc(t,t.NONRESIDUE,r.ORDER,6,2,3);this.FROBENIUS_COEFFICIENTS_1=n[0],this.FROBENIUS_COEFFICIENTS_2=n[1],Object.seal(this)}add({c0:t,c1:r,c2:n},{c0:o,c1:i,c2:s}){let{Fp2:a}=this;return{c0:a.add(t,o),c1:a.add(r,i),c2:a.add(n,s)}}sub({c0:t,c1:r,c2:n},{c0:o,c1:i,c2:s}){let{Fp2:a}=this;return{c0:a.sub(t,o),c1:a.sub(r,i),c2:a.sub(n,s)}}mul({c0:t,c1:r,c2:n},o){let{Fp2:i}=this;if(typeof o=="bigint")return{c0:i.mul(t,o),c1:i.mul(r,o),c2:i.mul(n,o)};let{c0:s,c1:a,c2:c}=o,u=i.mul(t,s),p=i.mul(r,a),d=i.mul(n,c);return{c0:i.add(u,i.mulByNonresidue(i.sub(i.mul(i.add(r,n),i.add(a,c)),i.add(p,d)))),c1:i.add(i.sub(i.mul(i.add(t,r),i.add(s,a)),i.add(u,p)),i.mulByNonresidue(d)),c2:i.sub(i.add(p,i.mul(i.add(t,n),i.add(s,c))),i.add(u,d))}}sqr({c0:t,c1:r,c2:n}){let{Fp2:o}=this,i=o.sqr(t),s=o.mul(o.mul(t,r),$e),a=o.mul(o.mul(r,n),$e),c=o.sqr(n);return{c0:o.add(o.mulByNonresidue(a),i),c1:o.add(o.mulByNonresidue(c),s),c2:o.sub(o.sub(o.add(o.add(s,o.sqr(o.add(o.sub(t,r),n))),a),i),c)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}create(t){return t}isValid({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return o.isValid(t)&&o.isValid(r)&&o.isValid(n)}is0({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return o.is0(t)&&o.is0(r)&&o.is0(n)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return{c0:o.neg(t),c1:o.neg(r),c2:o.neg(n)}}eql({c0:t,c1:r,c2:n},{c0:o,c1:i,c2:s}){let{Fp2:a}=this;return a.eql(t,o)&&a.eql(r,i)&&a.eql(n,s)}sqrt(t){return oo()}div(t,r){let{Fp2:n}=this,{Fp:o}=n;return this.mul(t,typeof r=="bigint"?o.inv(o.create(r)):this.inv(r))}pow(t,r){return Wo(this,t,r)}invertBatch(t){return ut(this,t)}inv({c0:t,c1:r,c2:n}){let{Fp2:o}=this,i=o.sub(o.sqr(t),o.mulByNonresidue(o.mul(n,r))),s=o.sub(o.mulByNonresidue(o.sqr(n)),o.mul(t,r)),a=o.sub(o.sqr(r),o.mul(t,n)),c=o.inv(o.add(o.mulByNonresidue(o.add(o.mul(n,s),o.mul(r,a))),o.mul(t,i)));return{c0:o.mul(c,i),c1:o.mul(c,s),c2:o.mul(c,a)}}fromBytes(t){let{Fp2:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);let n=r.BYTES;return{c0:r.fromBytes(t.subarray(0,n)),c1:r.fromBytes(t.subarray(n,n*2)),c2:r.fromBytes(t.subarray(2*n))}}toBytes({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return K(o.toBytes(t),o.toBytes(r),o.toBytes(n))}cmov({c0:t,c1:r,c2:n},{c0:o,c1:i,c2:s},a){let{Fp2:c}=this;return{c0:c.cmov(t,o,a),c1:c.cmov(r,i,a),c2:c.cmov(n,s,a)}}fromBigSix(t){let{Fp2:r}=this;if(!Array.isArray(t)||t.length!==6)throw new Error("invalid Fp6 usage");return{c0:r.fromBigTuple(t.slice(0,2)),c1:r.fromBigTuple(t.slice(2,4)),c2:r.fromBigTuple(t.slice(4,6))}}frobeniusMap({c0:t,c1:r,c2:n},o){let{Fp2:i}=this;return{c0:i.frobeniusMap(t,o),c1:i.mul(i.frobeniusMap(r,o),this.FROBENIUS_COEFFICIENTS_1[o%6]),c2:i.mul(i.frobeniusMap(n,o),this.FROBENIUS_COEFFICIENTS_2[o%6])}}mulByFp2({c0:t,c1:r,c2:n},o){let{Fp2:i}=this;return{c0:i.mul(t,o),c1:i.mul(r,o),c2:i.mul(n,o)}}mulByNonresidue({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return{c0:o.mulByNonresidue(n),c1:t,c2:r}}mul1({c0:t,c1:r,c2:n},o){let{Fp2:i}=this;return{c0:i.mulByNonresidue(i.mul(n,o)),c1:i.mul(t,o),c2:i.mul(r,o)}}mul01({c0:t,c1:r,c2:n},o,i){let{Fp2:s}=this,a=s.mul(t,o),c=s.mul(r,i);return{c0:s.add(s.mulByNonresidue(s.sub(s.mul(s.add(r,n),i),c)),a),c1:s.sub(s.sub(s.mul(s.add(o,i),s.add(t,r)),a),c),c2:s.add(s.sub(s.mul(s.add(t,n),o),a),c)}}},ic=class{constructor(t,r){this.MASK=gr;let{Fp2:n}=t,{Fp:o}=n;this.Fp6=t,this.ORDER=n.ORDER,this.BITS=2*t.BITS,this.BYTES=2*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.FROBENIUS_COEFFICIENTS=sc(n,n.NONRESIDUE,o.ORDER,12,1,6)[0],this.X_LEN=r.X_LEN,this.finalExponentiate=r.Fp12finalExponentiate}create(t){return t}isValid({c0:t,c1:r}){let{Fp6:n}=this;return n.isValid(t)&&n.isValid(r)}is0({c0:t,c1:r}){let{Fp6:n}=this;return n.is0(t)&&n.is0(r)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r}){let{Fp6:n}=this;return{c0:n.neg(t),c1:n.neg(r)}}eql({c0:t,c1:r},{c0:n,c1:o}){let{Fp6:i}=this;return i.eql(t,n)&&i.eql(r,o)}sqrt(t){oo()}inv({c0:t,c1:r}){let{Fp6:n}=this,o=n.inv(n.sub(n.sqr(t),n.mulByNonresidue(n.sqr(r))));return{c0:n.mul(t,o),c1:n.neg(n.mul(r,o))}}div(t,r){let{Fp6:n}=this,{Fp2:o}=n,{Fp:i}=o;return this.mul(t,typeof r=="bigint"?i.inv(i.create(r)):this.inv(r))}pow(t,r){return Wo(this,t,r)}invertBatch(t){return ut(this,t)}add({c0:t,c1:r},{c0:n,c1:o}){let{Fp6:i}=this;return{c0:i.add(t,n),c1:i.add(r,o)}}sub({c0:t,c1:r},{c0:n,c1:o}){let{Fp6:i}=this;return{c0:i.sub(t,n),c1:i.sub(r,o)}}mul({c0:t,c1:r},n){let{Fp6:o}=this;if(typeof n=="bigint")return{c0:o.mul(t,n),c1:o.mul(r,n)};let{c0:i,c1:s}=n,a=o.mul(t,i),c=o.mul(r,s);return{c0:o.add(a,o.mulByNonresidue(c)),c1:o.sub(o.mul(o.add(t,r),o.add(i,s)),o.add(a,c))}}sqr({c0:t,c1:r}){let{Fp6:n}=this,o=n.mul(t,r);return{c0:n.sub(n.sub(n.mul(n.add(n.mulByNonresidue(r),t),n.add(t,r)),o),n.mulByNonresidue(o)),c1:n.add(o,o)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}fromBytes(t){let{Fp6:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){let{Fp6:n}=this;return K(n.toBytes(t),n.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:o},i){let{Fp6:s}=this;return{c0:s.cmov(t,n,i),c1:s.cmov(r,o,i)}}fromBigTwelve(t){let{Fp6:r}=this;return{c0:r.fromBigSix(t.slice(0,6)),c1:r.fromBigSix(t.slice(6,12))}}frobeniusMap(t,r){let{Fp6:n}=this,{Fp2:o}=n,{c0:i,c1:s,c2:a}=n.frobeniusMap(t.c1,r),c=this.FROBENIUS_COEFFICIENTS[r%12];return{c0:n.frobeniusMap(t.c0,r),c1:n.create({c0:o.mul(i,c),c1:o.mul(s,c),c2:o.mul(a,c)})}}mulByFp2({c0:t,c1:r},n){let{Fp6:o}=this;return{c0:o.mulByFp2(t,n),c1:o.mulByFp2(r,n)}}conjugate({c0:t,c1:r}){return{c0:t,c1:this.Fp6.neg(r)}}mul014({c0:t,c1:r},n,o,i){let{Fp6:s}=this,{Fp2:a}=s,c=s.mul01(t,n,o),u=s.mul1(r,i);return{c0:s.add(s.mulByNonresidue(u),c),c1:s.sub(s.sub(s.mul01(s.add(r,t),n,a.add(o,i)),c),u)}}mul034({c0:t,c1:r},n,o,i){let{Fp6:s}=this,{Fp2:a}=s,c=s.create({c0:a.mul(t.c0,n),c1:a.mul(t.c1,n),c2:a.mul(t.c2,n)}),u=s.mul01(r,o,i),p=s.mul01(s.add(t,r),a.add(n,o),i);return{c0:s.add(s.mulByNonresidue(u),c),c1:s.sub(p,s.add(c,u))}}_cyclotomicSquare({c0:t,c1:r}){let{Fp6:n}=this,{Fp2:o}=n,{c0:i,c1:s,c2:a}=t,{c0:c,c1:u,c2:p}=r,{first:d,second:l}=o.Fp4Square(i,u),{first:f,second:h}=o.Fp4Square(c,a),{first:_,second:g}=o.Fp4Square(s,p),m=o.mulByNonresidue(g);return{c0:n.create({c0:o.add(o.mul(o.sub(d,i),$e),d),c1:o.add(o.mul(o.sub(f,s),$e),f),c2:o.add(o.mul(o.sub(_,a),$e),_)}),c1:n.create({c0:o.add(o.mul(o.add(m,c),$e),m),c1:o.add(o.mul(o.add(l,u),$e),l),c2:o.add(o.mul(o.add(h,p),$e),h)})}}_cyclotomicExp(t,r){let n=this.ONE;for(let o=this.X_LEN-1;o>=0;o--)n=this._cyclotomicSquare(n),Au(r,o)&&(n=this.mul(n,t));return n}};function td(e){let t=Ke(e.ORDER),r=new nc(t,e),n=new oc(r),o=new ic(n,e);return{Fp:t,Fp2:r,Fp6:n,Fp12:o}}var Ve=BigInt(0),ls=BigInt(1),pt=BigInt(2),us=BigInt(3),Xo=BigInt(4),Mr=BigInt("0xd201000000010000"),Vh=hr(Mr),kn={p:BigInt("0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab"),n:BigInt("0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"),h:BigInt("0x396c8c005555e1568c00aaab0000aaab"),a:Ve,b:Xo,Gx:BigInt("0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb"),Gy:BigInt("0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1")},Bh=Ke(kn.n,{modFromBytes:!0,isLE:!0}),{Fp:M,Fp2:z,Fp6:Dh,Fp12:X}=td({ORDER:kn.p,X_LEN:Vh,FP2_NONRESIDUE:[ls,ls],Fp2mulByB:({c0:e,c1:t})=>{let r=M.mul(e,Xo),n=M.mul(t,Xo);return{c0:M.sub(r,n),c1:M.add(r,n)}},Fp12finalExponentiate:e=>{let t=Mr,r=X.div(X.frobeniusMap(e,6),e),n=X.mul(X.frobeniusMap(r,2),r),o=X.conjugate(X._cyclotomicExp(n,t)),i=X.mul(X.conjugate(X._cyclotomicSquare(n)),o),s=X.conjugate(X._cyclotomicExp(i,t)),a=X.conjugate(X._cyclotomicExp(s,t)),c=X.mul(X.conjugate(X._cyclotomicExp(a,t)),X._cyclotomicSquare(o)),u=X.conjugate(X._cyclotomicExp(c,t)),p=X.frobeniusMap(X.mul(o,a),2),d=X.frobeniusMap(X.mul(s,n),3),l=X.frobeniusMap(X.mul(c,X.conjugate(n)),1),f=X.mul(X.mul(u,X.conjugate(i)),n);return X.mul(X.mul(X.mul(p,d),l),f)}}),{G2psi:rd,G2psi2:Uh}=ed(M,z,z.div(z.ONE,z.NONRESIDUE)),ac=Object.freeze({DST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",encodeDST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",p:M.ORDER,m:2,k:128,expand:"xmd",hash:Pe}),uc={p:z.ORDER,n:kn.n,h:BigInt("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5"),a:z.ZERO,b:z.fromBigTuple([Xo,Xo]),Gx:z.fromBigTuple([BigInt("0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8"),BigInt("0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e")]),Gy:z.fromBigTuple([BigInt("0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801"),BigInt("0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be")])},ds=Qo(M.toBytes(Ve),{infinity:!0,compressed:!0});function ps(e){e=e.slice();let t=e[0]&224,r=!!(t>>7&1),n=!!(t>>6&1),o=!!(t>>5&1);return e[0]&=31,{compressed:r,infinity:n,sort:o,value:e}}function Qo(e,t){if(e[0]&224)throw new Error("setMask: non-empty mask");return t.compressed&&(e[0]|=128),t.infinity&&(e[0]|=64),t.sort&&(e[0]|=32),e}function kh(e,t,r){let{BYTES:n,ORDER:o}=M,i=t.is0(),{x:s,y:a}=t.toAffine();if(r){if(i)return ds.slice();let c=!!(a*pt/o);return Qo(Oe(s,n),{compressed:!0,sort:c})}else return i?K(Uint8Array.of(64),new Uint8Array(2*n-1)):K(Oe(s,n),Oe(a,n))}function cc(e){e.assertValidity();let{BYTES:t,ORDER:r}=M,{x:n,y:o}=e.toAffine();if(e.is0())return ds.slice();let i=!!(o*pt/r);return Qo(Oe(n,t),{compressed:!0,sort:i})}function Lh(e){let{compressed:t,infinity:r,sort:n,value:o}=ps(e),{BYTES:i,ORDER:s}=M;if(o.length===48&&t){let a=Ye(o),c=M.create(a&It(M.BITS));if(r){if(c!==Ve)throw new Error("invalid G1 point: non-empty, at infinity, with compression");return{x:Ve,y:Ve}}let u=M.add(M.pow(c,us),M.create(kn.b)),p=M.sqrt(u);if(!p)throw new Error("invalid G1 point: compressed point");return p*pt/s!==BigInt(n)&&(p=M.neg(p)),{x:M.create(c),y:M.create(p)}}else if(o.length===96&&!t){let a=Ye(o.subarray(0,i)),c=Ye(o.subarray(i));if(r){if(a!==Ve||c!==Ve)throw new Error("G1: non-empty point at infinity");return ei.G1.Point.ZERO.toAffine()}return{x:M.create(a),y:M.create(c)}}else throw new Error("invalid G1 point: expected 48/96 bytes")}function nd(e){let{infinity:t,sort:r,value:n}=ps(pe("signatureHex",e,48)),o=M.ORDER,i=ei.G1.Point,s=Ye(n);if(t)return i.ZERO;let a=M.create(s&It(M.BITS)),c=M.add(M.pow(a,us),M.create(kn.b)),u=M.sqrt(c);if(!u)throw new Error("invalid G1 point: compressed");let p=BigInt(r);u*pt/o!==p&&(u=M.neg(u));let d=i.fromAffine({x:a,y:u});return d.assertValidity(),d}function qh(e,t,r){let{BYTES:n,ORDER:o}=M,i=t.is0(),{x:s,y:a}=t.toAffine();if(r){if(i)return K(ds,Oe(Ve,n));let c=!!(a.c1===Ve?a.c0*pt/o:a.c1*pt/o);return K(Qo(Oe(s.c1,n),{compressed:!0,sort:c}),Oe(s.c0,n))}else{if(i)return K(Uint8Array.of(64),new Uint8Array(4*n-1));let{re:c,im:u}=z.reim(s),{re:p,im:d}=z.reim(a);return K(Oe(u,n),Oe(c,n),Oe(d,n),Oe(p,n))}}function lc(e){e.assertValidity();let{BYTES:t}=M;if(e.is0())return K(ds,Oe(Ve,t));let{x:r,y:n}=e.toAffine(),{re:o,im:i}=z.reim(r),{re:s,im:a}=z.reim(n),u=!!((a>Ve?a*pt:s*pt)/M.ORDER&ls),p=o;return K(Qo(Oe(i,t),{sort:u,compressed:!0}),Oe(p,t))}function Mh(e){let{BYTES:t,ORDER:r}=M,{compressed:n,infinity:o,sort:i,value:s}=ps(e);if(!n&&!o&&i||!n&&o&&i||i&&o&&n)throw new Error("invalid encoding flag: "+(e[0]&224));let a=(c,u,p)=>Ye(c.slice(u,p));if(s.length===96&&n){if(o){if(s.reduce((h,_)=>h!==0?_+1:_,0)>0)throw new Error("invalid G2 point: compressed");return{x:z.ZERO,y:z.ZERO}}let c=a(s,0,t),u=a(s,t,2*t),p=z.create({c0:M.create(u),c1:M.create(c)}),d=z.add(z.pow(p,us),uc.b),l=z.sqrt(d),f=l.c1===Ve?l.c0*pt/r:l.c1*pt/r?ls:Ve;return l=i&&f>0?l:z.neg(l),{x:p,y:l}}else if(s.length===192&&!n){if(o){if(s.reduce((l,f)=>l!==0?f+1:f,0)>0)throw new Error("invalid G2 point: uncompressed");return{x:z.ZERO,y:z.ZERO}}let c=a(s,0*t,1*t),u=a(s,1*t,2*t),p=a(s,2*t,3*t),d=a(s,3*t,4*t);return{x:z.fromBigTuple([u,c]),y:z.fromBigTuple([d,p])}}else throw new Error("invalid G2 point: expected 96/192 bytes")}function od(e){let{ORDER:t}=M,{infinity:r,sort:n,value:o}=ps(pe("signatureHex",e)),i=ei.G2.Point,s=o.length/2;if(s!==48&&s!==96)throw new Error("invalid compressed signature length, expected 96/192 bytes");let a=Ye(o.slice(0,s)),c=Ye(o.slice(s));if(r)return i.ZERO;let u=M.create(a&It(M.BITS)),p=M.create(c),d=z.create({c0:p,c1:u}),l=z.add(z.pow(d,us),uc.b),f=z.sqrt(l);if(!f)throw new Error("Failed to find a square root");let{re:h,im:_}=z.reim(f),g=BigInt(n),m=_>Ve&&_*pt/t!==g,x=_===Ve&&h*pt/t!==g;(m||x)&&(f=z.neg(f));let y=i.fromAffine({x:d,y:f});return y.assertValidity(),y}var ei=Yu({fields:{Fp:M,Fp2:z,Fp6:Dh,Fp12:X,Fr:Bh},G1:{...kn,Fp:M,htfDefaults:{...ac,m:1,DST:"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_"},wrapPrivateKey:!0,allowInfinityPoint:!0,isTorsionFree:(e,t)=>{let r=BigInt("0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe"),n=new e(M.mul(t.X,r),t.Y,t.Z);return t.multiplyUnsafe(Mr).negate().multiplyUnsafe(Mr).equals(n)},clearCofactor:(e,t)=>t.multiplyUnsafe(Mr).add(t),mapToCurve:Gh,fromBytes:Lh,toBytes:kh,ShortSignature:{fromBytes(e){return me(e),nd(e)},fromHex(e){return nd(e)},toBytes(e){return cc(e)},toRawBytes(e){return cc(e)},toHex(e){return j(cc(e))}}},G2:{...uc,Fp:z,hEff:BigInt("0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551"),htfDefaults:{...ac},wrapPrivateKey:!0,allowInfinityPoint:!0,mapToCurve:Jh,isTorsionFree:(e,t)=>t.multiplyUnsafe(Mr).negate().equals(rd(e,t)),clearCofactor:(e,t)=>{let r=Mr,n=t.multiplyUnsafe(r).negate(),o=rd(e,t),i=t.double();return i=Uh(e,i),i=i.subtract(o),o=n.add(o),o=o.multiplyUnsafe(r).negate(),i=i.add(o),i=i.subtract(n),i.subtract(t)},fromBytes:Mh,toBytes:qh,Signature:{fromBytes(e){return me(e),od(e)},fromHex(e){return od(e)},toBytes(e){return lc(e)},toRawBytes(e){return lc(e)},toHex(e){return j(lc(e))}}},params:{ateLoopSize:Mr,r:kn.n,xNegative:!0,twistType:"multiplicative"},htfDefaults:ac,hash:Pe}),jh=Za(z,[[["0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6"],["0x0","0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d"],["0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1","0x0"]],[["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63"],["0xc","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f"],["0x1","0x0"]],[["0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706","0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706"],["0x0","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f"],["0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10","0x0"]],[["0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb"],["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3"],["0x12","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99"],["0x1","0x0"]]].map(e=>e.map(t=>z.fromBigTuple(t.map(BigInt))))),Kh=Za(M,[["0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7","0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb","0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0","0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861","0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9","0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983","0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84","0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e","0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317","0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e","0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b","0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229"],["0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c","0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff","0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19","0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8","0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e","0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5","0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a","0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e","0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641","0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"],["0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33","0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696","0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6","0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb","0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb","0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0","0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2","0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29","0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587","0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30","0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132","0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e","0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8","0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133","0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b","0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604"],["0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1","0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d","0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2","0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416","0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d","0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac","0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c","0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9","0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a","0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55","0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8","0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092","0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc","0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7","0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),Hh=ec(M,{A:M.create(BigInt("0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d")),B:M.create(BigInt("0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0")),Z:M.create(BigInt(11))}),$h=ec(z,{A:z.create({c0:M.create(Ve),c1:M.create(BigInt(240))}),B:z.create({c0:M.create(BigInt(1012)),c1:M.create(BigInt(1012))}),Z:z.create({c0:M.create(BigInt(-2)),c1:M.create(BigInt(-1))})});function Gh(e){let{x:t,y:r}=Hh(M.create(e[0]));return Kh(t,r)}function Jh(e){let{x:t,y:r}=$h(z.fromBigTuple(e));return jh(t,r)}function id(e,t,r){let n=typeof e=="string"?e:j(e),o=typeof t=="string"?t:j(t),i=typeof r=="string"?r:j(r);return ei.verifyShortSignature(o,i,n)}var zh=BigInt(1e6),dc=e=>ge(new Tt(e)),jr=e=>{let r=dc(e)/zh;return new Date(Number(r))};var sd=60*1e3,Yh=60,Zh=24,Xh=Zh*Yh,Qh=5,em=5,tm=30*Xh,fe;(function(e){e[e.Empty=0]="Empty",e[e.Fork=1]="Fork",e[e.Labeled=2]="Labeled",e[e.Leaf=3]="Leaf",e[e.Pruned=4]="Pruned"})(fe||(fe={}));function rm(e,t){for(let r=0;r<e.length;r++)if(e[r]>t[r])return!0;return!1}var st=class e{#e=!1;#t=void 0;static async create(t){let r=e.createUnverified(t);return await r.verify(),r}static createUnverified(t){return new e(t.certificate,t.rootKey,t.principal,t.blsVerify??id,t.maxAgeInMinutes,t.disableTimeVerification,t.agent)}constructor(t,r,n,o,i=Qh,s=!1,a){this._rootKey=r,this._principal=n,this._blsVerify=o,this._maxAgeInMinutes=i,this.#e=s,this.cert=Me(t),a&&"getTimeDiffMsecs"in a&&"hasSyncedTime"in a&&"syncTime"in a&&"syncTimeWithSubnet"in a&&(this.#t=a)}lookup_path(t){return xr(t,this.cert.tree)}lookup_subtree(t){return ni(t,this.cert.tree)}async verify(){let t=await hs(this.cert.tree),r=await this._checkDelegationAndGetKey(this.cert.delegation),n=this.cert.signature,o=om(r),i=K(Aa,t),s=ve(this.lookup_path(["time"]));if(!s)throw ne.fromCode(new xt("Certificate does not contain a time"));if(!this.#e){let a=this.#t?.getTimeDiffMsecs()??0,c=this._maxAgeInMinutes*sd,u=new Date,p=u.getTime()+a,d=p-c,l=p+em*sd,f=jr(s),h=f.getTime()<d,_=f.getTime()>l;if((h||_)&&this.#t&&!this.#t.hasSyncedTime())return await this._syncTime(),await this.verify();if(h)throw Le.fromCode(new sr(this._maxAgeInMinutes,f,u,a,"past"));if(_)throw this.#t?.hasSyncedTime()?ce.fromCode(new Re("System time has been synced with the IC network, but certificate is still too far in the future.")):Le.fromCode(new sr(5,f,u,a,"future"))}try{if(!await this._blsVerify(o,n,i))throw Le.fromCode(new xt("Invalid signature"))}catch(a){throw Le.fromCode(new xt("Signature verification failed",a))}}async _checkDelegationAndGetKey(t){if(!t)return this._rootKey;let r=e.createUnverified({certificate:t.certificate,rootKey:this._rootKey,principal:this._principal,blsVerify:this._blsVerify,disableTimeVerification:this.#e,maxAgeInMinutes:tm,agent:this.#t});if(r.cert.delegation)throw ne.fromCode(new Oi);await r.verify();let n;if(cd(this._principal)){let i=this._principal.canisterId;if(n=k.fromUint8Array(t.subnet_id),!pc({canisterId:i,subnetId:n,tree:r.cert.tree}))throw Le.fromCode(new En(i,n))}else if(ad(this._principal))n=this._principal.subnetId;else throw ct;let o=ve(r.lookup_path(["subnet",n.toUint8Array(),"public_key"]));if(!o)throw ad(this._principal)?Le.fromCode(new Ei(n)):Le.fromCode(new Ii(`Could not find subnet key for subnet ID ${n.toText()}`));return o}async _syncTime(){this.#t&&(cd(this._principal)?await this.#t.syncTime(this._principal.canisterId):await this.#t.syncTimeWithSubnet(this._principal.subnetId))}};function ad(e){return"subnetId"in e}function cd(e){return"canisterId"in e}var ti=Ee("308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100"),nm=96;function om(e){let t=ti.byteLength+nm;if(e.byteLength!==t)throw ne.fromCode(new $n(t,e.byteLength));let r=e.slice(0,ti.byteLength);if(!Cn(r,ti))throw ne.fromCode(new vi(ti,r));return e.slice(ti.byteLength)}function ve(e){if(e.status===Be.Found&&e.value instanceof Uint8Array)return e.value}async function hs(e){switch(e[0]){case fe.Empty:return Pe(fs("ic-hashtree-empty"));case fe.Pruned:return e[1];case fe.Leaf:return Pe(K(fs("ic-hashtree-leaf"),e[1]));case fe.Labeled:return Pe(K(fs("ic-hashtree-labeled"),e[1],await hs(e[2])));case fe.Fork:return Pe(K(fs("ic-hashtree-fork"),await hs(e[1]),await hs(e[2])));default:throw ct}}function fs(e){let t=new Uint8Array([e.length]),r=new TextEncoder().encode(e);return K(t,r)}function ld(e){return typeof e[0]=="string"?$(e[0]):e[0]}var Be;(function(e){e.Unknown="Unknown",e.Absent="Absent",e.Found="Found",e.Error="Error"})(Be||(Be={}));var Kr;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found"})(Kr||(Kr={}));var ue;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found",e.Less="Less",e.Greater="Greater"})(ue||(ue={}));function xr(e,t){if(e.length===0)switch(t[0]){case fe.Empty:return{status:Be.Absent};case fe.Leaf:{if(!t[1])throw ce.fromCode(new Vr("Invalid tree structure for leaf"));if(t[1]instanceof Uint8Array)return{status:Be.Found,value:t[1].slice(t[1].byteOffset,t[1].byteLength+t[1].byteOffset)};throw ct}case fe.Pruned:return{status:Be.Unknown};case fe.Labeled:case fe.Fork:return{status:Be.Error};default:throw ct}let r=ld(e),n=ri(r,t);switch(n.status){case ue.Found:return xr(e.slice(1),n.value);case ue.Absent:case ue.Greater:case ue.Less:return{status:Be.Absent};case ue.Unknown:return{status:Be.Unknown};default:throw ct}}function ni(e,t){if(e.length===0)return{status:Kr.Found,value:t};let r=ld(e),n=ri(r,t);switch(n.status){case ue.Found:return ni(e.slice(1),n.value);case ue.Unknown:return{status:Kr.Unknown};case ue.Absent:case ue.Greater:case ue.Less:return{status:Kr.Absent};default:throw ct}}function _s(e){switch(e[0]){case fe.Empty:return[];case fe.Fork:return _s(e[1]).concat(_s(e[2]));default:return[e]}}function ri(e,t){switch(t[0]){case fe.Labeled:return rm(e,t[1])?{status:ue.Greater}:Cn(e,t[1])?{status:ue.Found,value:t[2]}:{status:ue.Less};case fe.Fork:{let r=ri(e,t[1]);switch(r.status){case ue.Greater:{let n=ri(e,t[2]);return n.status===ue.Less?{status:ue.Absent}:n}case ue.Unknown:{let n=ri(e,t[2]);return n.status===ue.Less?{status:ue.Unknown}:n}default:return r}}case fe.Pruned:return{status:ue.Unknown};default:return{status:ue.Absent}}}function ms(e,t){switch(t[0]){case fe.Empty|fe.Pruned:return[];case fe.Leaf:return[e];case fe.Fork:return ms(e,t[1]).concat(ms(e,t[2]));case fe.Labeled:{let r=t[1],n=t[2],o=[...e,r];return ms(o,n)}default:throw ct}}function pc(e){let t=im(e),r=fc(t),{canisterId:n}=e;return r.some(i=>i[0].ltEq(n)&&i[1].gtEq(n))}function im(e){let{subnetId:t,tree:r,canisterId:n}=e,o=ni(["canister_ranges",t.toUint8Array()],r);if(o.status!==Kr.Found)return sm(t,r);let i=o.value,s=am(i);if(s.length===0)throw ne.fromCode(new En(n,t));s.sort(Wn);let a=cm(s,n),c=s[a];return lm(c,i)}function sm(e,t){let r=xr(["subnet",e.toUint8Array(),"canister_ranges"],t);if(r.status!==Be.Found)throw ne.fromCode(new bt(`Could not find canister ranges for subnet ${e.toText()}`,r.status));return r.value}function fc(e){return Me(e).map(n=>[k.fromUint8Array(n[0]),k.fromUint8Array(n[1])])}function am(e){let t=[];for(let r of ms([],e)){let n=r[0];if(!n)throw ne.fromCode(new xt("Path is invalid"));t.push(n)}return t}function cm(e,t){let r=t.toUint8Array(),n=0,o=e.length-1;for(;n<o;){let i=Math.floor((n+o)/2);Wn(e[i],r)<=0?o=i:n=i+1}return n}function lm(e,t){let r=xr([e],t);if(r.status!==Be.Found)throw ne.fromCode(new bt(`Could not find canister range for shard ${e.toString()}`,r.status));return r.value}function hc(e,t){return e.delegation?k.fromUint8Array(e.delegation.subnet_id):k.selfAuthenticating(t)}var ud=k.fromText("tdb26-jop6k-aogll-7ltgs-eruif-6kk7m-qpktf-gdiqx-mxtrf-vb5e6-eqe");function ys(e,t){switch(t){case"raw":return e;case"leb128":return dc(e);case"cbor":return Me(e);case"hex":return j(e);case"utf-8":return new TextDecoder().decode(e)}}function dd(e){return Me(e).map(r=>k.fromUint8Array(r))}function pd(e,t){let r=typeof e=="string"?$(e):e;return[$("canister"),t,$("metadata"),r]}function Hr(e){return typeof e=="object"&&e!==null&&"key"in e&&"path"in e}function uo(e,t){let r=ni(["subnet",t.toUint8Array(),"node"],e.tree);if(r.status!==Kr.Found)throw ne.fromCode(new bt("Node not found",r.status));if(r.value instanceof Uint8Array)throw ce.fromCode(new Vr("Invalid node tree"));let n=_s(r.value),o=new Map;return n.forEach(i=>{let s=k.from(i[1]).toText(),a=xr(["public_key"],i[2]);if(a.status!==Be.Found)throw ne.fromCode(new bt("Public key not found",a.status));let c=a.value;if(c.byteLength!==44)throw ne.fromCode(new $n(44,c.byteLength));o.set(s,c)}),o}var fd=async e=>{let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,o=k.from(e.canisterId),i=[...new Set(r)],s=new Map,a=i.map((c,u)=>{let p=dm(c,o);return(async()=>{try{if(t.rootKey===null)throw ye.fromCode(new at);let d=t.rootKey,l=await t.readState(o,{paths:[p]}),f=await st.create({certificate:l.certificate,rootKey:d,principal:{canisterId:o},disableTimeVerification:n,agent:t}),h=(m,x)=>{if(x==="subnet"){let y=um(l.certificate,o,d);return{path:x,data:y}}else return{path:x,data:ve(m.lookup_path(p))}},{path:_,data:g}=h(f,i[u]);if(!g)typeof _=="string"?s.set(_,null):s.set(_.key,null);else switch(_){case"time":{s.set(_,jr(g));break}case"controllers":{s.set(_,dd(g));break}case"module_hash":{s.set(_,j(g));break}case"subnet":{s.set(_,g);break}case"candid":{s.set(_,new TextDecoder().decode(g));break}default:Hr(_)&&s.set(_.key,ys(g,_.decodeStrategy))}}catch(d){if(d instanceof nt&&(d.hasCode(xt)||d.hasCode(sr)))throw d;Hr(c)?s.set(c.key,null):s.set(c,null)}})()});return await Promise.all(a),s},um=(e,t,r)=>{if(!t._isPrincipal)throw Y.fromCode(new Re("Invalid canisterId"));let n=Me(e),{delegation:o}=n,i;o&&o.subnet_id?i=k.fromUint8Array(new Uint8Array(o.subnet_id)):!o&&typeof r<"u"?i=k.selfAuthenticating(new Uint8Array(r)):i=ud;let s=uo(n,i);return{subnetId:i.toText(),nodeKeys:s}},dm=(e,t)=>{let r=t.toUint8Array();switch(e){case"time":return[$("time")];case"controllers":return[$("canister"),r,$("controllers")];case"module_hash":return[$("canister"),r,$("module_hash")];case"subnet":return[$("subnet")];case"candid":return[$("canister"),r,$("metadata"),$("candid:service")];default:if(Hr(e))return typeof e.path=="string"||e.path instanceof Uint8Array?pd(e.path,r):e.path}throw ce.fromCode(new Re(`Error while encoding your path for canister status. Please ensure that your path ${e} was formatted correctly.`))};async function hd(e){let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,o=k.from(e.subnetId),i=[...new Set(r)],s=new Map,a=i.map((c,u)=>{let p=pm(c,o);return(async()=>{try{if(t.rootKey===null)throw ye.fromCode(new at);let d=t.rootKey,l=await t.readSubnetState(o,{paths:[p]}),f=await st.create({certificate:l.certificate,rootKey:d,principal:{subnetId:o},disableTimeVerification:n,agent:t}),h=(m,x)=>{if(x==="nodeKeys"){let y=uo(m.cert,o);return{path:x,data:y}}else return{path:x,data:ve(m.lookup_path(p))}},{path:_,data:g}=h(f,i[u]);if(!g)typeof _=="string"?s.set(_,null):s.set(_.key,null);else switch(_){case"time":{s.set(_,jr(g));break}case"canisterRanges":{s.set(_,fc(g));break}case"publicKey":{s.set(_,g);break}case"nodeKeys":{s.set(_,g);break}default:Hr(_)&&s.set(_.key,ys(g,_.decodeStrategy))}}catch(d){if(d instanceof nt&&(d.hasCode(xt)||d.hasCode(sr)))throw d;Hr(c)?s.set(c.key,null):s.set(c,null)}})()});return await Promise.all(a),s}function pm(e,t){let r=t.toUint8Array();switch(e){case"time":return[$("time")];case"canisterRanges":return[$("canister_ranges"),r];case"publicKey":return[$("subnet"),r,$("public_key")];case"nodeKeys":return[$("subnet"),r,$("node")];default:if(Hr(e))if(typeof e.path=="string"||e.path instanceof Uint8Array){let n=typeof e.path=="string"?$(e.path):e.path;return[$("subnet"),r,n]}else return e.path}throw ce.fromCode(new Re(`Error while encoding your path for subnet status. Please ensure that your path ${e} was formatted correctly.`))}var $r=BigInt(0),Ae=BigInt(1),mc=BigInt(2),fm=BigInt(8);function hm(e,t,r,n){let o=e.sqr(r),i=e.sqr(n),s=e.add(e.mul(t.a,o),i),a=e.add(e.ONE,e.mul(t.d,e.mul(o,i)));return e.eql(s,a)}function mm(e,t={}){let r=as("edwards",e,t,t.FpFnLE),{Fp:n,Fn:o}=r,i=r.CURVE,{h:s}=i;mr(t,{},{uvRatio:"function"});let a=mc<<BigInt(o.BYTES*8)-Ae,c=g=>n.create(g),u=t.uvRatio||((g,m)=>{try{return{isValid:!0,value:n.sqrt(n.div(g,m))}}catch{return{isValid:!1,value:$r}}});if(!hm(n,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");function p(g,m,x=!1){let y=x?Ae:$r;return os("coordinate "+g,m,y,a),m}function d(g){if(!(g instanceof h))throw new Error("ExtendedPoint expected")}let l=Lr((g,m)=>{let{X:x,Y:y,Z:T}=g,E=g.is0();m==null&&(m=E?fm:n.inv(T));let O=c(x*m),R=c(y*m),v=n.mul(T,m);if(E)return{x:$r,y:Ae};if(v!==Ae)throw new Error("invZ was invalid");return{x:O,y:R}}),f=Lr(g=>{let{a:m,d:x}=i;if(g.is0())throw new Error("bad point: ZERO");let{X:y,Y:T,Z:E,T:O}=g,R=c(y*y),v=c(T*T),w=c(E*E),I=c(w*w),F=c(R*m),S=c(w*c(F+v)),b=c(I+c(x*c(R*v)));if(S!==b)throw new Error("bad point: equation left != right (1)");let N=c(y*T),C=c(E*O);if(N!==C)throw new Error("bad point: equation left != right (2)");return!0});class h{constructor(m,x,y,T){this.X=p("x",m),this.Y=p("y",x),this.Z=p("z",y,!0),this.T=p("t",T),Object.freeze(this)}static CURVE(){return i}static fromAffine(m){if(m instanceof h)throw new Error("extended point not allowed");let{x,y}=m||{};return p("x",x),p("y",y),new h(x,y,Ae,c(x*y))}static fromBytes(m,x=!1){let y=n.BYTES,{a:T,d:E}=i;m=ja(kr(m,y,"point")),Vn(x,"zip215");let O=ja(m),R=m[y-1];O[y-1]=R&-129;let v=fr(O),w=x?a:n.ORDER;os("point.y",v,$r,w);let I=c(v*v),F=c(I-Ae),S=c(E*I-T),{isValid:b,value:N}=u(F,S);if(!b)throw new Error("bad point: invalid y coordinate");let C=(N&Ae)===Ae,B=(R&128)!==0;if(!x&&N===$r&&B)throw new Error("bad point: x=0 and x_0=1");return B!==C&&(N=c(-N)),h.fromAffine({x:N,y:v})}static fromHex(m,x=!1){return h.fromBytes(pe("point",m),x)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(m=8,x=!0){return _.createCache(this,m),x||this.multiply(mc),this}assertValidity(){f(this)}equals(m){d(m);let{X:x,Y:y,Z:T}=this,{X:E,Y:O,Z:R}=m,v=c(x*R),w=c(E*T),I=c(y*R),F=c(O*T);return v===w&&I===F}is0(){return this.equals(h.ZERO)}negate(){return new h(c(-this.X),this.Y,this.Z,c(-this.T))}double(){let{a:m}=i,{X:x,Y:y,Z:T}=this,E=c(x*x),O=c(y*y),R=c(mc*c(T*T)),v=c(m*E),w=x+y,I=c(c(w*w)-E-O),F=v+O,S=F-R,b=v-O,N=c(I*S),C=c(F*b),B=c(I*b),L=c(S*F);return new h(N,C,L,B)}add(m){d(m);let{a:x,d:y}=i,{X:T,Y:E,Z:O,T:R}=this,{X:v,Y:w,Z:I,T:F}=m,S=c(T*v),b=c(E*w),N=c(R*y*F),C=c(O*I),B=c((T+E)*(v+w)-S-b),L=C-N,A=C+N,P=c(b-x*S),V=c(B*L),D=c(A*P),q=c(B*P),te=c(L*A);return new h(V,D,te,q)}subtract(m){return this.add(m.negate())}multiply(m){if(!o.isValidNot0(m))throw new Error("invalid scalar: expected 1 <= sc < curve.n");let{p:x,f:y}=_.cached(this,m,T=>dt(h,T));return dt(h,[x,y])[0]}multiplyUnsafe(m,x=h.ZERO){if(!o.isValid(m))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return m===$r?h.ZERO:this.is0()||m===Ae?this:_.unsafe(this,m,y=>dt(h,y),x)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}isTorsionFree(){return _.unsafe(this,i.n).is0()}toAffine(m){return l(this,m)}clearCofactor(){return s===Ae?this:this.multiplyUnsafe(s)}toBytes(){let{x:m,y:x}=this.toAffine(),y=n.toBytes(x);return y[y.length-1]|=m&Ae?128:0,y}toHex(){return j(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(m){return dt(h,m)}static msm(m,x){return ao(h,o,m,x)}_setWindowSize(m){this.precompute(m)}toRawBytes(){return this.toBytes()}}h.BASE=new h(i.Gx,i.Gy,Ae,c(i.Gx*i.Gy)),h.ZERO=new h($r,Ae,Ae,$r),h.Fp=n,h.Fn=o;let _=new so(h,o.BITS);return h.BASE.precompute(8),h}var gs=class{constructor(t){this.ep=t}static fromBytes(t){oo()}static fromHex(t){oo()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(t){return this.ep.toAffine(t)}toHex(){return j(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(t){return this.assertSame(t),this.init(this.ep.add(t.ep))}subtract(t){return this.assertSame(t),this.init(this.ep.subtract(t.ep))}multiply(t){return this.init(this.ep.multiply(t))}multiplyUnsafe(t){return this.init(this.ep.multiplyUnsafe(t))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(t,r){return this.init(this.ep.precompute(t,r))}toRawBytes(){return this.toBytes()}};function _m(e,t,r={}){if(typeof t!="function")throw new Error('"hash" function param is required');mr(r,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});let{prehash:n}=r,{BASE:o,Fp:i,Fn:s}=e,a=r.randomBytes||Hn,c=r.adjustScalarBytes||(w=>w),u=r.domain||((w,I,F)=>{if(Vn(F,"phflag"),I.length||F)throw new Error("Contexts/pre-hash are not supported");return w});function p(w){return s.create(fr(w))}function d(w){let I=y.secretKey;w=pe("private key",w,I);let F=pe("hashed private key",t(w),2*I),S=c(F.slice(0,I)),b=F.slice(I,2*I),N=p(S);return{head:S,prefix:b,scalar:N}}function l(w){let{head:I,prefix:F,scalar:S}=d(w),b=o.multiply(S),N=b.toBytes();return{head:I,prefix:F,scalar:S,point:b,pointBytes:N}}function f(w){return l(w).pointBytes}function h(w=Uint8Array.of(),...I){let F=K(...I);return p(t(u(F,pe("context",w),!!n)))}function _(w,I,F={}){w=pe("message",w),n&&(w=n(w));let{prefix:S,scalar:b,pointBytes:N}=l(I),C=h(F.context,S,w),B=o.multiply(C).toBytes(),L=h(F.context,B,N,w),A=s.create(C+L*b);if(!s.isValid(A))throw new Error("sign failed: invalid s");let P=K(B,s.toBytes(A));return kr(P,y.signature,"result")}let g={zip215:!0};function m(w,I,F,S=g){let{context:b,zip215:N}=S,C=y.signature;w=pe("signature",w,C),I=pe("message",I),F=pe("publicKey",F,y.publicKey),N!==void 0&&Vn(N,"zip215"),n&&(I=n(I));let B=C/2,L=w.subarray(0,B),A=fr(w.subarray(B,C)),P,V,D;try{P=e.fromBytes(F,N),V=e.fromBytes(L,N),D=o.multiplyUnsafe(A)}catch{return!1}if(!N&&P.isSmallOrder())return!1;let q=h(b,V.toBytes(),P.toBytes(),I);return V.add(P.multiplyUnsafe(q)).subtract(D).clearCofactor().is0()}let x=i.BYTES,y={secretKey:x,publicKey:x,signature:2*x,seed:x};function T(w=a(y.seed)){return kr(w,y.seed,"seed")}function E(w){let I=v.randomSecretKey(w);return{secretKey:I,publicKey:f(I)}}function O(w){return St(w)&&w.length===s.BYTES}function R(w,I){try{return!!e.fromBytes(w,I)}catch{return!1}}let v={getExtendedPublicKey:l,randomSecretKey:T,isValidSecretKey:O,isValidPublicKey:R,toMontgomery(w){let{y:I}=e.fromBytes(w),F=y.publicKey,S=F===32;if(!S&&F!==57)throw new Error("only defined for 25519 and 448");let b=S?i.div(Ae+I,Ae-I):i.div(I-Ae,I+Ae);return i.toBytes(b)},toMontgomerySecret(w){let I=y.secretKey;kr(w,I);let F=t(w.subarray(0,I));return c(F).subarray(0,I)},randomPrivateKey:T,precompute(w=8,I=e.BASE){return I.precompute(w,!1)}};return Object.freeze({keygen:E,getPublicKey:f,sign:_,verify:m,utils:v,Point:e,lengths:y})}function ym(e){let t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=Ke(t.n,e.nBitLength,!0),o={Fp:r,Fn:n,uvRatio:e.uvRatio},i={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:o,hash:e.hash,eddsaOpts:i}}function gm(e,t){let r=t.Point;return Object.assign({},t,{ExtendedPoint:r,CURVE:e,nBitLength:r.Fn.BITS,nByteLength:r.Fn.BYTES})}function md(e){let{CURVE:t,curveOpts:r,hash:n,eddsaOpts:o}=ym(e),i=mm(t,r),s=_m(i,n,o);return gm(e,s)}var xm=BigInt(0),br=BigInt(1),_d=BigInt(2),wx=BigInt(3),bm=BigInt(5),wm=BigInt(8),po=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),oi={p:po,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:wm,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Tm(e){let t=BigInt(10),r=BigInt(20),n=BigInt(40),o=BigInt(80),i=po,a=e*e%i*e%i,c=vt(a,_d,i)*a%i,u=vt(c,br,i)*e%i,p=vt(u,bm,i)*u%i,d=vt(p,t,i)*p%i,l=vt(d,r,i)*d%i,f=vt(l,n,i)*l%i,h=vt(f,o,i)*f%i,_=vt(h,o,i)*f%i,g=vt(_,t,i)*p%i;return{pow_p_5_8:vt(g,_d,i)*e%i,b2:a}}function Nm(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var _c=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function xc(e,t){let r=po,n=le(t*t*t,r),o=le(n*n*t,r),i=Tm(e*o).pow_p_5_8,s=le(e*n*i,r),a=le(t*s*s,r),c=s,u=le(s*_c,r),p=a===e,d=a===le(-e,r),l=a===le(-e*_c,r);return p&&(s=c),(d||l)&&(s=u),_r(s,r)&&(s=le(-s,r)),{isValid:p||d,value:s}}var Gr=Ke(oi.p,{isLE:!0}),Om=Ke(oi.n,{isLE:!0}),Em={...oi,Fp:Gr,hash:Dl,adjustScalarBytes:Nm,uvRatio:xc},Ge=md(Em);var yc=_c,Rm=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Im=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),vm=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Am=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),yd=e=>xc(br,e),Sm=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),gc=e=>Ge.Point.Fp.create(fr(e)&Sm);function gd(e){let{d:t}=oi,r=po,n=m=>Gr.create(m),o=n(yc*e*e),i=n((o+br)*vm),s=BigInt(-1),a=n((s-t*o)*n(o+t)),{isValid:c,value:u}=xc(i,a),p=n(u*e);_r(p,r)||(p=n(-p)),c||(u=p),c||(s=o);let d=n(s*(o-br)*Am-a),l=u*u,f=n((u+u)*a),h=n(d*Rm),_=n(br-l),g=n(br+l);return new Ge.Point(n(f*g),n(_*h),n(h*g),n(f*_))}function Cm(e){me(e,64);let t=gc(e.subarray(0,32)),r=gd(t),n=gc(e.subarray(32,64)),o=gd(n);return new wr(r.add(o))}var wr=class e extends gs{constructor(t){super(t)}static fromAffine(t){return new e(Ge.Point.fromAffine(t))}assertSame(t){if(!(t instanceof e))throw new Error("RistrettoPoint expected")}init(t){return new e(t)}static hashToCurve(t){return Cm(pe("ristrettoHash",t,64))}static fromBytes(t){me(t,32);let{a:r,d:n}=oi,o=po,i=T=>Gr.create(T),s=gc(t);if(!vu(Gr.toBytes(s),t)||_r(s,o))throw new Error("invalid ristretto255 encoding 1");let a=i(s*s),c=i(br+r*a),u=i(br-r*a),p=i(c*c),d=i(u*u),l=i(r*n*p-d),{isValid:f,value:h}=yd(i(l*d)),_=i(h*u),g=i(h*_*l),m=i((s+s)*_);_r(m,o)&&(m=i(-m));let x=i(c*g),y=i(m*x);if(!f||_r(y,o)||x===xm)throw new Error("invalid ristretto255 encoding 2");return new e(new Ge.Point(m,x,br,y))}static fromHex(t){return e.fromBytes(pe("ristrettoHex",t,32))}static msm(t,r){return ao(e,Ge.Point.Fn,t,r)}toBytes(){let{X:t,Y:r,Z:n,T:o}=this.ep,i=po,s=g=>Gr.create(g),a=s(s(n+r)*s(n-r)),c=s(t*r),u=s(c*c),{value:p}=yd(s(a*u)),d=s(p*a),l=s(p*c),f=s(d*l*o),h;if(_r(o*f,i)){let g=s(r*yc),m=s(t*yc);t=g,r=m,h=s(d*Im)}else h=l;_r(t*f,i)&&(r=s(-r));let _=s((n-r)*h);return _r(_,i)&&(_=s(-_)),Gr.toBytes(_)}equals(t){this.assertSame(t);let{X:r,Y:n}=this.ep,{X:o,Y:i}=t.ep,s=u=>Gr.create(u),a=s(r*i)===s(n*o),c=s(n*i)===s(r*o);return a||c}is0(){return this.equals(e.ZERO)}};wr.BASE=new wr(Ge.Point.BASE);wr.ZERO=new wr(Ge.Point.ZERO);wr.Fp=Gr;wr.Fn=Om;var xd,bd,xs=class{static{xd=Symbol.iterator,bd=Symbol.toStringTag}#e;#t;constructor(t={}){this[xd]=this.entries.bind(this),this[bd]="ExpirableMap";let{source:r=[],expirationTime:n=600*1e3}=t,o=Date.now();this.#e=new Map([...r].map(([i,s])=>[i,{value:s,timestamp:o}])),this.#t=n}prune(){let t=Date.now();for(let[r,n]of this.#e.entries())t-n.timestamp>this.#t&&this.#e.delete(r);return this}set(t,r){this.prune();let n={value:r,timestamp:Date.now()};return this.#e.set(t,n),this}get(t){let r=this.#e.get(t);if(r!==void 0){if(Date.now()-r.timestamp>this.#t){this.#e.delete(t);return}return r.value}}clear(){this.#e.clear()}entries(){let t=this.#e.entries();return function*(){for(let[n,o]of t)yield[n,o.value]}()}values(){let t=this.#e.values();return function*(){for(let n of t)yield n.value}()}keys(){return this.#e.keys()}forEach(t,r){for(let[n,o]of this.#e.entries())t.call(r,o.value,n,this)}has(t){return this.#e.has(t)}delete(t){return this.#e.delete(t)}get size(){return this.#e.size}};var wd=e=>{if(e<=127)return 1;if(e<=255)return 2;if(e<=65535)return 3;if(e<=16777215)return 4;throw Y.fromCode(new Ro("Length too long (> 4 bytes)"))},Td=(e,t,r)=>{if(r<=127)return e[t]=r,1;if(r<=255)return e[t]=129,e[t+1]=r,2;if(r<=65535)return e[t]=130,e[t+1]=r>>8,e[t+2]=r,3;if(r<=16777215)return e[t]=131,e[t+1]=r>>16,e[t+2]=r>>8,e[t+3]=r,4;throw Y.fromCode(new Ro("Length too long (> 4 bytes)"))},bc=(e,t)=>{if(e[t]<128)return 1;if(e[t]===128)throw Y.fromCode(new wt("Invalid length 0"));if(e[t]===129)return 2;if(e[t]===130)return 3;if(e[t]===131)return 4;throw Y.fromCode(new wt("Length too long (> 4 bytes)"))},Fm=(e,t)=>{let r=bc(e,t);if(r===1)return e[t];if(r===2)return e[t+1];if(r===3)return(e[t+1]<<8)+e[t+2];if(r===4)return(e[t+1]<<16)+(e[t+2]<<8)+e[t+3];throw Y.fromCode(new wt("Length too long (> 4 bytes)"))},ii=Uint8Array.from([48,12,6,10,43,6,1,4,1,131,184,67,1,1]),Ln=Uint8Array.from([48,5,6,3,43,101,112]),Rx=Uint8Array.from([48,16,6,7,42,134,72,206,61,2,1,6,5,43,129,4,0,10]),Ix=Uint8Array.from([48,29,6,13,43,6,1,4,1,130,220,124,5,3,1,2,1,6,12,43,6,1,4,1,130,220,124,5,3,2,1]);function qn(e,t){let r=2+wd(e.byteLength+1),n=t.byteLength+r+e.byteLength,o=0,i=new Uint8Array(1+wd(n)+n);return i[o++]=48,o+=Td(i,o,n),i.set(t,o),o+=t.byteLength,i[o++]=3,o+=Td(i,o,e.byteLength+1),i[o++]=0,i.set(new Uint8Array(e),o),i}var Mn=(e,t)=>{let r=0,n=(a,c)=>{if(o[r++]!==a)throw Y.fromCode(new wt(`Expected ${c} at offset ${r}`))},o=new Uint8Array(e);if(n(48,"sequence"),r+=bc(o,r),!Cn(o.slice(r,r+t.byteLength),t))throw Y.fromCode(new wt("Not the expected OID."));r+=t.byteLength,n(3,"bit string");let i=Fm(o,r)-1;r+=bc(o,r),n(0,"0 padding");let s=o.slice(r);if(i!==s.length)throw Y.fromCode(new Ai(i,s.length));return s};var bs=class e{static from(t){return this.fromDer(t.toDer())}static fromRaw(t){return new e(t)}static fromDer(t){return new e(this.derDecode(t))}static{this.RAW_KEY_LENGTH=32}static derEncode(t){return qn(t,Ln)}static derDecode(t){let r=Mn(t,Ln);if(r.length!==this.RAW_KEY_LENGTH)throw Y.fromCode(new wt("An Ed25519 public key must be exactly 32 bytes long"));return r}#e;get rawKey(){return this.#e}#t;get derKey(){return this.#t}constructor(t){if(t.byteLength!==e.RAW_KEY_LENGTH)throw Y.fromCode(new wt("An Ed25519 public key must be exactly 32 bytes long"));this.#e=t,this.#t=e.derEncode(t)}toDer(){return this.derKey}toRaw(){return this.rawKey}};var wc=class{constructor(){this.observers=[]}subscribe(t){this.observers.push(t)}unsubscribe(t){this.observers=this.observers.filter(r=>r!==t)}notify(t,...r){this.observers.forEach(n=>n(t,...r))}},ws=class extends wc{constructor(){super()}print(t,...r){this.notify({message:t,level:"info"},...r)}warn(t,...r){this.notify({message:t,level:"warn"},...r)}error(t,r,...n){this.notify({message:t,level:"error",error:r},...n)}};var Ts=class e{#e;#t;#r;#i;#a;#d;#n;#o;#c=0;static{this.default={initialInterval:500,randomizationFactor:.5,multiplier:1.5,maxInterval:6e4,maxElapsedTime:9e5,maxIterations:10,date:Date}}constructor(t=e.default){let{initialInterval:r=500,randomizationFactor:n=.5,multiplier:o=1.5,maxInterval:i=6e4,maxElapsedTime:s=9e5,maxIterations:a=10,date:c=Date}=t;this.#e=r,this.#t=n,this.#r=o,this.#i=i,this.#o=c,this.#a=c.now(),this.#d=s,this.#n=a}get ellapsedTimeInMsec(){return this.#o.now()-this.#a}get currentInterval(){return this.#e}get count(){return this.#c}get randomValueFromInterval(){let t=this.#t*this.#e,r=this.#e-t,n=this.#e+t;return Math.random()*(n-r)+r}incrementCurrentInterval(){return this.#e=Math.min(this.#e*this.#r,this.#i),this.#c++,this.#e}next(){return this.ellapsedTimeInMsec>=this.#d||this.#c>=this.#n?null:(this.incrementCurrentInterval(),this.randomValueFromInterval)}};var kt;(function(e){e.Received="received",e.Processing="processing",e.Replied="replied",e.Rejected="rejected",e.Unknown="unknown",e.Done="done"})(kt||(kt={}));var Oc=60*1e3,Pm=1e6,Vm=0,Bm="308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d9685f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484b01291091c5f87b98883463f98091a0baaae";var Dm="ic0.app",Um=".ic0.app",km="icp0.io",Lm=".icp0.io",qm="icp-api.io",Mm=".icp-api.io",Tc=200,jm=202,Km=404;function Hm(){let e;if(typeof window<"u")if(window.fetch)e=window.fetch.bind(window);else throw ye.fromCode(new Jn("Fetch implementation was not available. You appear to be in a browser context, but window.fetch was not present."));else if(typeof global<"u")if(global.fetch)e=global.fetch.bind(global);else throw ye.fromCode(new Jn("Fetch implementation was not available. You appear to be in a Node.js context, but global.fetch was not available."));else typeof self<"u"&&self.fetch&&(e=self.fetch.bind(self));if(e)return e;throw ye.fromCode(new Jn("Fetch implementation was not available. Please provide fetch to the HttpAgent constructor, or ensure it is available in the window or global context."))}function $m(e){let t;if(e!==void 0)!e.match(/^[a-z]+:/)&&typeof window<"u"?t=new URL(window.location.protocol+"//"+e):t=new URL(e);else{let r=["ic0.app","icp0.io","127.0.0.1","localhost"],n=[".github.dev",".gitpod.io"],o=typeof window<"u"?window.location:void 0,i=o?.hostname,s;i&&typeof i=="string"&&(n.some(a=>i.endsWith(a))?s=i:s=r.find(a=>i.endsWith(a))),o&&s?t=new URL(`${o.protocol}//${s}${o.port?":"+o.port:""}`):t=new URL("https://icp-api.io")}return t.toString()}var Tr=class e{#e;#t;#r;#i;#a;#d;#n;#o;#c;#w;#s;#u;#f;#l;get#E(){return this.#l*Oc}#h;#m;#_;#y;constructor(t={}){this.#e=null,this.#t=!1,this.#r=Vm,this.#i=!1,this.#a=null,this.#d=!1,this._isAgent=!0,this.config={},this.log=new ws,this.#h=[],this.#m=[],this.#_=new xs({expirationTime:5*Oc}),this.#y=!0,this.#T=(o,i)=>{if(this.#y===!1)return o;let{status:s,signatures:a=[],requestId:c}=o;for(let u of a){let{timestamp:p,identity:d}=u,l=k.fromUint8Array(d).toText(),f;if(s===vr.Replied){let{reply:x}=o;f=ko({status:s,reply:x,timestamp:BigInt(p),request_id:c})}else if(s===vr.Rejected){let{reject_code:x,reject_message:y,error_code:T}=o;f=ko({status:s,reject_code:x,reject_message:y,error_code:T,timestamp:BigInt(p),request_id:c})}else throw ce.fromCode(new Re(`Unknown status: ${s}`));let h=K(Sa,f),_=i.get(l);if(!_)throw ne.fromCode(new qi);let g=bs.fromDer(_).rawKey;if(!Ge.verify(u.signature,h,g))throw Le.fromCode(new Mi(l))}return o},this.config=t,this.#o=t.fetch||Hm()||fetch.bind(global),this.#c=t.fetchOptions,this.#w=t.callOptions,this.#t=t.shouldFetchRootKey??!1,this.#d=t.shouldSyncTime??!1,t.rootKey?this.rootKey=t.rootKey:this.#t?this.rootKey=null:this.rootKey=Ee(Bm);let r=$m(t.host);this.host=new URL(r),t.verifyQuerySignatures!==void 0&&(this.#y=t.verifyQuerySignatures),this.#u=t.retryTimes??3;let n=()=>new Ts({maxIterations:this.#u});if(this.#f=t.backoffStrategy||n,this.host.hostname.endsWith(Um)?this.host.hostname=Dm:this.host.hostname.endsWith(Lm)?this.host.hostname=km:this.host.hostname.endsWith(Mm)&&(this.host.hostname=qm),t.credentials){let{name:o,password:i}=t.credentials;this.#s=`${o}${i?":"+i:""}`}if(this.#n=Promise.resolve(t.identity||new ot),t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes>5)throw Y.fromCode(new Ft("The maximum ingress expiry time is 5 minutes.",t.ingressExpiryInMinutes));if(t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes<=0)throw Y.fromCode(new Ft("Ingress expiry time must be greater than 0.",t.ingressExpiryInMinutes));this.#l=t.ingressExpiryInMinutes||5,this.addTransform("update",Ua(Go)),t.useQueryNonces&&this.addTransform("query",Ua(Go)),t.logToConsole&&this.log.subscribe(o=>{o.level==="error"?console.error(o.message):o.level==="warn"?console.warn(o.message):console.log(o.message)})}static createSync(t={}){return new this({...t})}static async create(t={}){let r=e.createSync(t);return await r.#p(),r}static async from(t){try{return"config"in t?await e.create(t.config):await e.create({fetch:t._fetch,fetchOptions:t._fetchOptions,callOptions:t._callOptions,host:t._host.toString(),identity:t._identity??void 0})}catch{throw Y.fromCode(new Ui)}}isLocal(){let t=this.host.hostname;return t==="127.0.0.1"||t.endsWith("127.0.0.1")}addTransform(t,r,n=r.priority||0){if(t==="update"){let o=this.#m.findIndex(i=>(i.priority||0)<n);this.#m.splice(o>=0?o:this.#m.length,0,Object.assign(r,{priority:n}))}else if(t==="query"){let o=this.#h.findIndex(i=>(i.priority||0)<n);this.#h.splice(o>=0?o:this.#h.length,0,Object.assign(r,{priority:n}))}}async getPrincipal(){if(!this.#n)throw ye.fromCode(new Pr);return(await this.#n).getPrincipal()}async call(t,r,n){let o=r.callSync??!0,i=await(n??this.#n);if(!i)throw ye.fromCode(new Pr);let s=k.from(t),a=r.effectiveCanisterId?k.from(r.effectiveCanisterId):s;await this.#p(a);let c=i.getPrincipal(),u=Nc(this.#l,this.#r),p={request_type:ts.Call,canister_id:s,method_name:r.methodName,arg:r.arg,sender:c,ingress_expiry:u},d=await this._transform({request:{body:null,method:"POST",headers:{"Content-Type":"application/cbor",...this.#s?{Authorization:"Basic "+btoa(this.#s)}:{}}},endpoint:pr.Call,body:p}),l;r?.nonce?l=f(r.nonce):d.body.nonce?l=f(d.body.nonce):l=void 0,p.nonce=l;function f(m){return Object.assign(m,{__nonce__:void 0})}d=await i.transformRequest(d);let h=Ho(d.body),_=this.#f(),g=ur(p);try{let y=o?()=>{let R=new URL(`/api/v4/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${R.pathname}" with request:`,d),this.#o(R,{...this.#w,...d.request,body:h})}:()=>{let R=new URL(`/api/v2/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${R.pathname}" with request:`,d),this.#o(R,{...this.#w,...d.request,body:h})},{responseBodyBytes:T,...E}=await this.#g({requestFn:y,backoff:_,tries:0}),O=T.byteLength>0?Me(T):null;return{requestId:g,response:{...E,body:O},requestDetails:p}}catch(m){let x;if(m instanceof nt){if(m.hasCode(vo))return this.log.warn("v4 api not supported. Fall back to v2"),this.call(t,{...r,callSync:!1},n);if(m.hasCode(Ft)&&!this.#i)return await this.syncTime(s),this.call(s,r,n);m.code.requestContext={requestId:g,senderPubKey:d.body.sender_pubkey,senderSignature:d.body.sender_sig,ingressExpiry:d.body.content.ingress_expiry},x=m}else x=ce.fromCode(new Re(m));throw this.log.error(`Error while making call: ${x.message}`,x),x}}async#b(t){let{ecid:r,transformedRequest:n,body:o,requestId:i,backoff:s,tries:a}=t,c=a===0?0:s.next(),u=new URL(`/api/v3/canister/${r.toString()}/query`,this.host);if(this.log.print(`fetching "${u.pathname}" with tries:`,{tries:a,backoff:s,delay:c}),c===null)throw ce.fromCode(new Rn(`Backoff strategy exhausted after ${a} attempts.`,i));c>0&&await new Promise(m=>setTimeout(m,c));let p;try{this.log.print(`fetching "${u.pathname}" with request:`,n),p=await this.#o(u,{...this.#c,...n.request,body:o})}catch(m){if(a<this.#u)return this.log.warn(`Caught exception while attempting to make query:
|
|
50
|
+
`)}return a.encodeValue(c)}));return Z(qf,n,o,i,s)}function jf(e,t){let r=new At(t);if(t.byteLength<os.length)throw new Error("Message length smaller than magic number");let n=jr(r,os.length),o=new TextDecoder().decode(n);if(o!==os)throw new Error("Wrong magic number: "+JSON.stringify(o));function i(l){let f=[],h=Number(ye(l));for(let m=0;m<h;m++){let x=Number(mr(l));switch(x){case Q.Opt:case Q.Vector:{let y=Number(mr(l));f.push([x,y]);break}case Q.Record:case Q.Variant:{let y=[],T=Number(ye(l)),O;for(;T--;){let R=Number(ye(l));if(R>=Math.pow(2,32))throw new Error("field id out of 32-bit range");if(typeof O=="number"&&O>=R)throw new Error("field id collision or not sorted");O=R;let E=Number(mr(l));y.push([R,E])}f.push([x,y]);break}case Q.Func:{let y=[],T=Number(ye(l));for(;T--;)y.push(Number(mr(l)));let O=[],R=Number(ye(l));for(;R--;)O.push(Number(mr(l)));let E=[],v=Number(ye(l));for(;v--;)switch(Number(ye(l))){case 1:{E.push("query");break}case 2:{E.push("oneway");break}case 3:{E.push("composite_query");break}default:throw new Error("unknown annotation")}f.push([x,[y,O,E]]);break}case Q.Service:{let y=Number(ye(l)),T=[];for(;y--;){let O=Number(ye(l)),R=new TextDecoder().decode(jr(l,O)),E=mr(l);T.push([R,E])}f.push([x,T]);break}default:throw new Error("Illegal op_code: "+x)}}let _=[],g=Number(ye(l));for(let m=0;m<g;m++)_.push(Number(mr(l)));return[f,_]}let[s,a]=i(r);if(a.length<e.length)throw new Error("Wrong number of return values");let c=s.map(l=>wu());function u(l){if(l<-24)throw new Error("future value not supported");if(l<0)switch(l){case-1:return tu;case-2:return eu;case-3:return ou;case-4:return nu;case-5:return du;case-6:return pu;case-7:return fu;case-8:return hu;case-9:return au;case-10:return cu;case-11:return lu;case-12:return uu;case-13:return iu;case-14:return su;case-15:return ru;case-16:return Ql;case-17:return Xl;case-24:return mu;default:throw new Error("Illegal op_code: "+l)}if(l>=s.length)throw new Error("type index out of range");return c[l]}function p(l){switch(l[0]){case Q.Vector:{let f=u(l[1]);return yu(f)}case Q.Opt:{let f=u(l[1]);return gu(f)}case Q.Record:{let f={};for(let[g,m]of l[1]){let x=`_${g}_`;f[x]=u(m)}let h=xu(f),_=h.tryAsTuple();return Array.isArray(_)?_u(..._):h}case Q.Variant:{let f={};for(let[h,_]of l[1]){let g=`_${h}_`;f[g]=u(_)}return bu(f)}case Q.Func:{let[f,h,_]=l[1];return Tu(f.map(g=>u(g)),h.map(g=>u(g)),_)}case Q.Service:{let f={},h=l[1];for(let[_,g]of h){let m=u(g);if(m instanceof dt&&(m=m.getType()),!(m instanceof qn))throw new Error("Illegal service definition: services can only contain functions");f[_]=m}return Nu(f)}default:throw new Error("Illegal op_code: "+l[0])}}s.forEach((l,f)=>{if(l[0]===Q.Func){let h=p(l);c[f].fill(h)}}),s.forEach((l,f)=>{if(l[0]!==Q.Func){let h=p(l);c[f].fill(h)}}),Ca();let d=a.map(l=>u(l));try{let l=e.map((f,h)=>f.decodeValue(r,d[h]));for(let f=e.length;f<d.length;f++)d[f].decodeValue(r,d[f]);if(r.byteLength>0)throw new Error("decode: Left-over bytes");return l}finally{Ca()}}var Xl=new Jo,Ql=new Ht,Kf=new ss,eu=new as,tu=new kn,ru=new cs,nu=new Wo,ou=new zo,iu=new Yo(32),su=new Yo(64),au=new yr(8),cu=new yr(16),lu=new yr(32),uu=new yr(64),du=new jt(8),pu=new jt(16),fu=new jt(32),hu=new jt(64),mu=new us;function _u(...e){return new ls(e)}function yu(e){return new ao(e)}function gu(e){return new Kr(e)}function xu(e){return new Ln(e)}function bu(e){return new co(e)}function wu(){return new dt}function Tu(e,t,r=[]){return new qn(e,t,r)}function Nu(e){return new lo(e)}var ds=class e{constructor(t=new Map){this.rels=t}copy(){let t=new Map;for(let[r,n]of this.rels.entries()){let o=new Map(n);t.set(r,o)}return new e(t)}known(t,r){return this.rels.get(t.name)?.get(r.name)}addNegative(t,r){this.addNames(t.name,r.name,!1)}add(t,r){this.addNames(t.name,r.name,!0)}display(){let t="";for(let[r,n]of this.rels)for(let[o,i]of n)t+=`${r} ${i?":<":"!<:"} ${o}
|
|
51
|
+
`;return t}addNames(t,r,n){let o=this.rels.get(t);if(o==null){let i=new Map;i.set(r,n),this.rels.set(t,i)}else o.set(r,n)}},is=new ds;function Ca(){is=new ds}function Hf(e,t){let r=new Set(e.annotations),n=new Set(t.annotations);if(r.size!==n.size)return!1;for(let o of r)if(!n.has(o))return!1;return!0}function Ia(e){return e instanceof Kr||e instanceof kn||e instanceof Ht}function Fa(e,t){let r=is.copy(),n=_r(r,e,t);return n?is.add(e,t):is.addNegative(e,t),n}function _r(e,t,r){if(t.name===r.name)return!0;let n=e.known(t,r);if(n!==void 0)return n;if(e.add(t,r),r instanceof Ht||t instanceof Jo||t instanceof zo&&r instanceof Wo)return!0;if(t instanceof ao&&r instanceof ao)return _r(e,t._type,r._type);if(r instanceof Kr)return!0;if(t instanceof Ln&&r instanceof Ln){let o=t.fieldsAsObject;for(let[i,s]of r._fields){let a=o[je(i)];if(a){if(!_r(e,a,s))return!1}else if(!Ia(s))return!1}return!0}if(t instanceof qn&&r instanceof qn){if(!Hf(t,r))return!1;for(let o=0;o<t.argTypes.length;o++){let i=t.argTypes[o];if(o<r.argTypes.length){if(!_r(e,r.argTypes[o],i))return!1}else if(!Ia(i))return!1}for(let o=0;o<r.retTypes.length;o++){let i=r.retTypes[o];if(o<t.retTypes.length){if(!_r(e,t.retTypes[o],i))return!1}else if(!Ia(i))return!1}return!0}if(t instanceof co&&r instanceof co){let o=r.alternativesAsObject;for(let[i,s]of t._fields){let a=o[je(i)];if(!a||!_r(e,s,a))return!1}return!0}if(t instanceof lo&&r instanceof lo){let o=t.fieldsAsObject();for(let[i,s]of r._fields){let a=o[i];if(!a||!_r(e,a,s))return!1}return!0}return t instanceof dt?_r(e,t.getType(),r):r instanceof dt?_r(e,t,r.getType()):!1}function uo(e){if(!e)throw new Error("Input cannot be null or undefined");return e instanceof Uint8Array?e:e instanceof ArrayBuffer?new Uint8Array(e):Array.isArray(e)?new Uint8Array(e):"buffer"in e?uo(e.buffer):new Uint8Array(e)}function jn(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function Pa(e){if(typeof e=="string")return Ou(e);if(typeof e=="number")return Pe(ie(e));if(e instanceof Uint8Array||ArrayBuffer.isView(e))return Pe(uo(e));if(Array.isArray(e)){let t=e.map(Pa);return Pe(K(...t))}else{if(e&&typeof e=="object"&&e._isPrincipal)return Pe(e.toUint8Array());if(typeof e=="object"&&e!==null&&typeof e.toHash=="function")return Pa(e.toHash());if(typeof e=="object")return Zo(e);if(typeof e=="bigint")return Pe(ie(e))}throw z.fromCode(new Yi(e))}var Ou=e=>{let t=new TextEncoder().encode(e);return Pe(t)};function gr(e){return Zo(e)}function Zo(e){let n=Object.entries(e).filter(([,s])=>s!==void 0).map(([s,a])=>{let c=Ou(s),u=Pa(a);return[c,u]}).sort(([s],[a])=>io(s,a)),o=K(...n.map(s=>K(...s)));return Pe(o)}var Ba=new TextEncoder().encode("\ric-state-root"),Xo=new TextEncoder().encode(`
|
|
52
|
+
ic-request`),Da=new TextEncoder().encode("\vic-response"),Ua=new TextEncoder().encode("ic-request-auth-delegation");var Gt=class{getPrincipal(){return this._principal||(this._principal=L.selfAuthenticating(new Uint8Array(this.getPublicKey().toDer()))),this._principal}async transformRequest(t){let{body:r,...n}=t,o=gr(r);return{...n,body:{content:r,sender_pubkey:this.getPublicKey().toDer(),sender_sig:await this.sign(K(Xo,o))}}}},it=class{getPrincipal(){return L.anonymous()}async transformRequest(t){return{...t,body:{content:t.body}}}};var xr=class extends Error{constructor(t){super(t),this.name="DecodingError"}},Ru=55799,vu=Symbol("CBOR_STOP_CODE"),Vt=(e=>(e[e.False=20]="False",e[e.True=21]="True",e[e.Null=22]="Null",e[e.Undefined=23]="Undefined",e[e.Break=31]="Break",e))(Vt||{}),Ne=(e=>(e[e.UnsignedInteger=0]="UnsignedInteger",e[e.NegativeInteger=1]="NegativeInteger",e[e.ByteString=2]="ByteString",e[e.TextString=3]="TextString",e[e.Array=4]="Array",e[e.Map=5]="Map",e[e.Tag=6]="Tag",e[e.Simple=7]="Simple",e))(Ne||{}),Gf=23,$f=255,Jf=65535,Wf=4294967295,zf=BigInt("0xffffffffffffffff"),Ct=(e=>(e[e.Value=23]="Value",e[e.OneByte=24]="OneByte",e[e.TwoBytes=25]="TwoBytes",e[e.FourBytes=26]="FourBytes",e[e.EightBytes=27]="EightBytes",e[e.Indefinite=31]="Indefinite",e))(Ct||{}),po=!1;function Yf(e){return e==null}function Iu(e,t){let r=new Uint8Array(t);return r.set(e),r}var Zf=new TextDecoder;function Xf(e){return(e&224)>>5}function Qf(e){return e&31}var ti=new Uint8Array,Qo,Ft=0;function Au(e,t){ti=e,Ft=0;let r=Kn(t);return t?.(r)??r}function Kn(e){let[t,r]=ps();switch(t){case Ne.UnsignedInteger:return fo(r);case Ne.NegativeInteger:return nh(r);case Ne.ByteString:return Su(r);case Ne.TextString:return La(r);case Ne.Array:return eh(r,e);case Ne.Map:return rh(r,e);case Ne.Tag:return oh(r,e);case Ne.Simple:return th(r)}throw new xr(`Unsupported major type: ${t}`)}function ps(){let e=ti.at(Ft);if(Yf(e))throw new xr("Provided CBOR data is empty");let t=Xf(e),r=Qf(e);return Ft++,[t,r]}function eh(e,t){let r=fo(e);if(r===1/0){let o=[],i=Kn(t);for(;i!==vu;)o.push(t?.(i)??i),i=Kn(t);return o}let n=new Array(r);for(let o=0;o<r;o++){let i=Kn(t);n[o]=t?.(i)??i}return n}function th(e){switch(e){case Vt.False:return!1;case Vt.True:return!0;case Vt.Null:return null;case Vt.Undefined:return;case Vt.Break:return vu}throw new xr(`Unrecognized simple type: ${e.toString(2)}`)}function rh(e,t){let r=fo(e),n={};if(r===1/0){let[o,i]=ps();for(;o!==Ne.Simple&&i!==Vt.Break;){let s=La(i),a=Kn(t);n[s]=t?.(a,s)??a,[o,i]=ps()}return n}for(let o=0;o<r;o++){let[i,s]=ps();if(i!==Ne.TextString)throw new xr("Map keys must be text strings");let a=La(s),c=Kn(t);n[a]=t?.(c,a)??c}return n}function fo(e){if(e<=Ct.Value)return e;switch(Qo=new DataView(ti.buffer,ti.byteOffset+Ft),e){case Ct.OneByte:return Ft++,Qo.getUint8(0);case Ct.TwoBytes:return Ft+=2,Qo.getUint16(0,po);case Ct.FourBytes:return Ft+=4,Qo.getUint32(0,po);case Ct.EightBytes:return Ft+=8,Qo.getBigUint64(0,po);case Ct.Indefinite:return 1/0;default:throw new xr(`Unsupported integer info: ${e.toString(2)}`)}}function nh(e){let t=fo(e);return typeof t=="number"?-1-t:-1n-t}function Su(e){let t=fo(e);if(t>Number.MAX_SAFE_INTEGER)throw new xr("Byte length is too large");let r=Number(t);return Ft+=r,ti.slice(Ft-r,Ft)}function La(e){let t=Su(e);return Zf.decode(t)}function oh(e,t){let r=fo(e);if(r===Ru)return Kn(t);throw new xr(`Unsupported tag: ${r}.`)}var ri=class extends Error{constructor(t){super(t),this.name="SerializationError"}},ih=2*1024,sh=100,ah=new TextEncoder;function ei(e){return e<<5}var st=new Uint8Array(ih),St=new DataView(st.buffer),Te=0,ka=[];function Cu(e,t){Te=0;let r=t?.(e)??e;return mh(Ru,r,t),st.slice(0,Te)}function qa(e,t){if(Te>st.length-sh&&(st=Iu(st,st.length*2),St=new DataView(st.buffer)),e===!1||e===!0||e===null||e===void 0){uh(e);return}if(typeof e=="number"||typeof e=="bigint"){hh(e);return}if(typeof e=="string"){Pu(e);return}if(e instanceof Uint8Array){Eu(e);return}if(e instanceof ArrayBuffer){Eu(new Uint8Array(e));return}if(Array.isArray(e)){ch(e,t);return}if(typeof e=="object"){lh(e,t);return}throw new ri(`Unsupported type: ${typeof e}`)}function ch(e,t){ho(Ne.Array,e.length),e.forEach((r,n)=>{qa(t?.(r,n.toString())??r,t)})}function lh(e,t){ka=Object.entries(e),ho(Ne.Map,ka.length),ka.forEach(([r,n])=>{Pu(r),qa(t?.(n,r)??n,t)})}function ho(e,t){if(t<=Gf){St.setUint8(Te++,ei(e)|Number(t));return}if(t<=$f){St.setUint8(Te++,ei(e)|Ct.OneByte),St.setUint8(Te,Number(t)),Te+=1;return}if(t<=Jf){St.setUint8(Te++,ei(e)|Ct.TwoBytes),St.setUint16(Te,Number(t),po),Te+=2;return}if(t<=Wf){St.setUint8(Te++,ei(e)|Ct.FourBytes),St.setUint32(Te,Number(t),po),Te+=4;return}if(t<=zf){St.setUint8(Te++,ei(e)|Ct.EightBytes),St.setBigUint64(Te,BigInt(t),po),Te+=8;return}throw new ri(`Value too large to encode: ${t}`)}function uh(e){ho(Ne.Simple,dh(e))}function dh(e){if(e===!1)return Vt.False;if(e===!0)return Vt.True;if(e===null)return Vt.Null;if(e===void 0)return Vt.Undefined;throw new ri(`Unrecognized simple value: ${e.toString()}`)}function Vu(e,t){ho(e,t.length),Te>st.length-t.length&&(st=Iu(st,st.length+t.length),St=new DataView(st.buffer)),st.set(t,Te),Te+=t.length}function Fu(e,t){ho(e,t)}function ph(e){Fu(Ne.UnsignedInteger,e)}function fh(e){Fu(Ne.NegativeInteger,typeof e=="bigint"?-1n-e:-1-e)}function hh(e){e>=0?ph(e):fh(e)}function Pu(e){Vu(Ne.TextString,ah.encode(e))}function Eu(e){Vu(Ne.ByteString,e)}function mh(e,t,r){ho(Ne.Tag,e),qa(t,r)}function yh(e){return typeof e=="object"&&e!==null&&"toCborValue"in e}function ni(e){try{return Cu(e,t=>L.isPrincipal(t)?t.toUint8Array():mo.isExpiry(t)?t.toBigInt():yh(t)?t.toCborValue():t)}catch(t){throw z.fromCode(new Gi(t,e))}}function Ke(e){try{return Au(e)}catch(t){throw z.fromCode(new Hi(t,e))}}var fs={encode:ni,decode:Ke};var oi=()=>{if(typeof window<"u"&&window.crypto&&window.crypto.getRandomValues){let e=new Uint32Array(1);return window.crypto.getRandomValues(e),e[0]}if(typeof crypto<"u"&&crypto.getRandomValues){let e=new Uint32Array(1);return crypto.getRandomValues(e),e[0]}return typeof crypto<"u"&&crypto.randomInt?crypto.randomInt(0,4294967295):Math.floor(Math.random()*4294967295)};var br;(function(e){e.Query="read",e.ReadState="read_state",e.Call="call"})(br||(br={}));var ms;(function(e){e.Call="call"})(ms||(ms={}));var Hn;(function(e){e.Query="query",e.ReadState="read_state"})(Hn||(Hn={}));function ii(){let e=new ArrayBuffer(16),t=new DataView(e),r=oi(),n=oi(),o=oi(),i=oi();return t.setUint32(0,r),t.setUint32(4,n),t.setUint32(8,o),t.setUint32(12,i),Object.assign(new Uint8Array(e),{__nonce__:void 0})}var _s="__expiry__",Ma=BigInt(1e3),gh=BigInt(1e6),xh=BigInt(60),ja=xh*Ma,bh=BigInt(1)*ja;function wh(e){return e/Ma*Ma}function Th(e){return e/ja*ja}var mo=class e{constructor(t){this.__expiry__=t,this._isExpiry=!0}static fromDeltaInMilliseconds(t,r=0){let n=BigInt(Date.now())+BigInt(r),o=n+BigInt(t),i=Th(o),s;return i>=n+bh?s=i:s=wh(o),new e(s*gh)}toBigInt(){return this.__expiry__}toHash(){return ie(this.__expiry__)}toString(){return this.__expiry__.toString()}toJSON(){return{[_s]:this.toString()}}static fromJSON(t){let r=JSON.parse(t);if(r[_s])try{let n=BigInt(r[_s]);return new e(n)}catch(n){throw new z(new Ho(`Not a valid BigInt: ${n}`))}throw new z(new Ho(`The input does not contain the key ${_s}`))}static isExpiry(t){return t instanceof e||typeof t=="object"&&t!==null&&"_isExpiry"in t&&t._isExpiry===!0&&"__expiry__"in t&&typeof t.__expiry__=="bigint"}};function Ka(e=ii){return async t=>{let r=t.request.headers;t.request.headers=r,t.endpoint===br.Call&&(t.body.nonce=e())}}function Ha(e){let t=[];return e.forEach((r,n)=>{t.push([n,r])}),t}var $a=BigInt(0),ys=BigInt(1);function Gn(e,t=""){if(typeof e!="boolean"){let r=t&&`"${t}"`;throw new Error(r+"expected boolean, got type="+typeof e)}return e}function Hr(e,t,r=""){let n=kt(e),o=e?.length,i=t!==void 0;if(!n||i&&o!==t){let s=r&&`"${r}" `,a=i?` of length ${t}`:"",c=n?`length=${o}`:`type=${typeof e}`;throw new Error(s+"expected Uint8Array"+a+", got "+c)}return e}function Bu(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?$a:BigInt("0x"+e)}function Xe(e){return Bu(j(e))}function wr(e){return he(e),Bu(j(Uint8Array.from(e).reverse()))}function Oe(e,t){return Ee(e.toString(16).padStart(t*2,"0"))}function Ja(e,t){return Oe(e,t).reverse()}function de(e,t,r){let n;if(typeof t=="string")try{n=Ee(t)}catch(i){throw new Error(e+" must be hex string or Uint8Array, cause: "+i)}else if(kt(t))n=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");let o=n.length;if(typeof r=="number"&&o!==r)throw new Error(e+" of length "+r+" expected, got "+o);return n}function Du(e,t){if(e.length!==t.length)return!1;let r=0;for(let n=0;n<e.length;n++)r|=e[n]^t[n];return r===0}function Wa(e){return Uint8Array.from(e)}var Ga=e=>typeof e=="bigint"&&$a<=e;function za(e,t,r){return Ga(e)&&Ga(t)&&Ga(r)&&t<=e&&e<r}function gs(e,t,r,n){if(!za(t,r,n))throw new Error("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function Tr(e){let t;for(t=0;e>$a;e>>=ys,t+=1);return t}function Uu(e,t){return e>>BigInt(t)&ys}var Pt=e=>(ys<<BigInt(e))-ys;function ku(e){return typeof e=="function"&&Number.isSafeInteger(e.outputLen)}function Nr(e,t,r={}){if(!e||typeof e!="object")throw new Error("expected valid options object");function n(o,i,s){let a=e[o];if(s&&a===void 0)return;let c=typeof a;if(c!==i||a===null)throw new Error(`param "${o}" is invalid: expected ${i}, got ${c}`)}Object.entries(t).forEach(([o,i])=>n(o,i,!1)),Object.entries(r).forEach(([o,i])=>n(o,i,!0))}var _o=()=>{throw new Error("not implemented")};function Gr(e){let t=new WeakMap;return(r,...n)=>{let o=t.get(r);if(o!==void 0)return o;let i=e(r,...n);return t.set(r,i),i}}var He=BigInt(0),ve=BigInt(1),$n=BigInt(2),qu=BigInt(3),Mu=BigInt(4),ju=BigInt(5),Nh=BigInt(7),Ku=BigInt(8),Oh=BigInt(9),Hu=BigInt(16);function ce(e,t){let r=e%t;return r>=He?r:t+r}function Bt(e,t,r){let n=e;for(;t-- >He;)n*=n,n%=r;return n}function Lu(e,t){if(e===He)throw new Error("invert: expected non-zero number");if(t<=He)throw new Error("invert: expected positive modulus, got "+t);let r=ce(e,t),n=t,o=He,i=ve,s=ve,a=He;for(;r!==He;){let u=n/r,p=n%r,d=o-s*u,l=i-a*u;n=r,r=p,o=s,i=a,s=d,a=l}if(n!==ve)throw new Error("invert: does not exist");return ce(o,t)}function Ya(e,t,r){if(!e.eql(e.sqr(t),r))throw new Error("Cannot find square root")}function Gu(e,t){let r=(e.ORDER+ve)/Mu,n=e.pow(t,r);return Ya(e,n,t),n}function Eh(e,t){let r=(e.ORDER-ju)/Ku,n=e.mul(t,$n),o=e.pow(n,r),i=e.mul(t,o),s=e.mul(e.mul(i,$n),o),a=e.mul(i,e.sub(s,e.ONE));return Ya(e,a,t),a}function Rh(e){let t=Ge(e),r=$u(e),n=r(t,t.neg(t.ONE)),o=r(t,n),i=r(t,t.neg(n)),s=(e+Nh)/Hu;return(a,c)=>{let u=a.pow(c,s),p=a.mul(u,n),d=a.mul(u,o),l=a.mul(u,i),f=a.eql(a.sqr(p),c),h=a.eql(a.sqr(d),c);u=a.cmov(u,p,f),p=a.cmov(l,d,h);let _=a.eql(a.sqr(p),c),g=a.cmov(u,p,_);return Ya(a,g,c),g}}function $u(e){if(e<qu)throw new Error("sqrt is not defined for small field");let t=e-ve,r=0;for(;t%$n===He;)t/=$n,r++;let n=$n,o=Ge(e);for(;si(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(r===1)return Gu;let i=o.pow(n,t),s=(t+ve)/$n;return function(c,u){if(c.is0(u))return u;if(si(c,u)!==1)throw new Error("Cannot find square root");let p=r,d=c.mul(c.ONE,i),l=c.pow(u,t),f=c.pow(u,s);for(;!c.eql(l,c.ONE);){if(c.is0(l))return c.ZERO;let h=1,_=c.sqr(l);for(;!c.eql(_,c.ONE);)if(h++,_=c.sqr(_),h===p)throw new Error("Cannot find square root");let g=ve<<BigInt(p-h-1),m=c.pow(d,g);p=h,d=c.sqr(m),l=c.mul(l,d),f=c.mul(f,m)}return f}}function vh(e){return e%Mu===qu?Gu:e%Ku===ju?Eh:e%Hu===Oh?Rh(e):$u(e)}var Or=(e,t)=>(ce(e,t)&ve)===ve,Ih=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function xs(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},r=Ih.reduce((n,o)=>(n[o]="function",n),t);return Nr(e,r),e}function ai(e,t,r){if(r<He)throw new Error("invalid exponent, negatives unsupported");if(r===He)return e.ONE;if(r===ve)return t;let n=e.ONE,o=t;for(;r>He;)r&ve&&(n=e.mul(n,o)),o=e.sqr(o),r>>=ve;return n}function pt(e,t,r=!1){let n=new Array(t.length).fill(r?e.ZERO:void 0),o=t.reduce((s,a,c)=>e.is0(a)?s:(n[c]=s,e.mul(s,a)),e.ONE),i=e.inv(o);return t.reduceRight((s,a,c)=>e.is0(a)?s:(n[c]=e.mul(s,n[c]),e.mul(s,a)),i),n}function si(e,t){let r=(e.ORDER-ve)/$n,n=e.pow(t,r),o=e.eql(n,e.ONE),i=e.eql(n,e.ZERO),s=e.eql(n,e.neg(e.ONE));if(!o&&!i&&!s)throw new Error("invalid Legendre symbol result");return o?1:i?0:-1}function Za(e,t){t!==void 0&&ga(t);let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Ge(e,t,r=!1,n={}){if(e<=He)throw new Error("invalid field: expected ORDER > 0, got "+e);let o,i,s=!1,a;if(typeof t=="object"&&t!=null){if(n.sqrt||r)throw new Error("cannot specify opts in two arguments");let l=t;l.BITS&&(o=l.BITS),l.sqrt&&(i=l.sqrt),typeof l.isLE=="boolean"&&(r=l.isLE),typeof l.modFromBytes=="boolean"&&(s=l.modFromBytes),a=l.allowedLengths}else typeof t=="number"&&(o=t),n.sqrt&&(i=n.sqrt);let{nBitLength:c,nByteLength:u}=Za(e,o);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let p,d=Object.freeze({ORDER:e,isLE:r,BITS:c,BYTES:u,MASK:Pt(c),ZERO:He,ONE:ve,allowedLengths:a,create:l=>ce(l,e),isValid:l=>{if(typeof l!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof l);return He<=l&&l<e},is0:l=>l===He,isValidNot0:l=>!d.is0(l)&&d.isValid(l),isOdd:l=>(l&ve)===ve,neg:l=>ce(-l,e),eql:(l,f)=>l===f,sqr:l=>ce(l*l,e),add:(l,f)=>ce(l+f,e),sub:(l,f)=>ce(l-f,e),mul:(l,f)=>ce(l*f,e),pow:(l,f)=>ai(d,l,f),div:(l,f)=>ce(l*Lu(f,e),e),sqrN:l=>l*l,addN:(l,f)=>l+f,subN:(l,f)=>l-f,mulN:(l,f)=>l*f,inv:l=>Lu(l,e),sqrt:i||(l=>(p||(p=vh(e)),p(d,l))),toBytes:l=>r?Ja(l,u):Oe(l,u),fromBytes:(l,f=!0)=>{if(a){if(!a.includes(l.length)||l.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+l.length);let _=new Uint8Array(u);_.set(l,r?0:_.length-l.length),l=_}if(l.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+l.length);let h=r?wr(l):Xe(l);if(s&&(h=ce(h,e)),!f&&!d.isValid(h))throw new Error("invalid field element: outside of range 0..ORDER");return h},invertBatch:l=>pt(d,l),cmov:(l,f,h)=>h?f:l});return Object.freeze(d)}function Ju(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 bs(e){let t=Ju(e);return t+Math.ceil(t/2)}function Xa(e,t,r=!1){let n=e.length,o=Ju(t),i=bs(t);if(n<16||n<i||n>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+n);let s=r?wr(e):Xe(e),a=ce(s,t-ve)+ve;return r?Ja(a,o):Oe(a,o)}var yo=BigInt(0),Jn=BigInt(1);function ci(e,t){let r=t.negate();return e?r:t}function ft(e,t){let r=pt(e.Fp,t.map(n=>n.Z));return t.map((n,o)=>e.fromAffine(n.toAffine(r[o])))}function Zu(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Qa(e,t){Zu(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),o=2**e,i=Pt(e),s=BigInt(e);return{windows:r,windowSize:n,mask:i,maxNumber:o,shiftBy:s}}function Wu(e,t,r){let{windowSize:n,mask:o,maxNumber:i,shiftBy:s}=r,a=Number(e&o),c=e>>s;a>n&&(a-=i,c+=Jn);let u=t*n,p=u+Math.abs(a)-1,d=a===0,l=a<0,f=t%2!==0;return{nextN:c,offset:p,isZero:d,isNeg:l,isNegF:f,offsetF:u}}function Sh(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((r,n)=>{if(!(r instanceof t))throw new Error("invalid point at index "+n)})}function Ch(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((r,n)=>{if(!t.isValid(r))throw new Error("invalid scalar at index "+n)})}var ec=new WeakMap,Xu=new WeakMap;function tc(e){return Xu.get(e)||1}function zu(e){if(e!==yo)throw new Error("invalid wNAF")}var go=class{constructor(t,r){this.BASE=t.BASE,this.ZERO=t.ZERO,this.Fn=t.Fn,this.bits=r}_unsafeLadder(t,r,n=this.ZERO){let o=t;for(;r>yo;)r&Jn&&(n=n.add(o)),o=o.double(),r>>=Jn;return n}precomputeWindow(t,r){let{windows:n,windowSize:o}=Qa(r,this.bits),i=[],s=t,a=s;for(let c=0;c<n;c++){a=s,i.push(a);for(let u=1;u<o;u++)a=a.add(s),i.push(a);s=a.double()}return i}wNAF(t,r,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,i=this.BASE,s=Qa(t,this.bits);for(let a=0;a<s.windows;a++){let{nextN:c,offset:u,isZero:p,isNeg:d,isNegF:l,offsetF:f}=Wu(n,a,s);n=c,p?i=i.add(ci(l,r[f])):o=o.add(ci(d,r[u]))}return zu(n),{p:o,f:i}}wNAFUnsafe(t,r,n,o=this.ZERO){let i=Qa(t,this.bits);for(let s=0;s<i.windows&&n!==yo;s++){let{nextN:a,offset:c,isZero:u,isNeg:p}=Wu(n,s,i);if(n=a,!u){let d=r[c];o=o.add(p?d.negate():d)}}return zu(n),o}getPrecomputes(t,r,n){let o=ec.get(r);return o||(o=this.precomputeWindow(r,t),t!==1&&(typeof n=="function"&&(o=n(o)),ec.set(r,o))),o}cached(t,r,n){let o=tc(t);return this.wNAF(o,this.getPrecomputes(o,t,n),r)}unsafe(t,r,n,o){let i=tc(t);return i===1?this._unsafeLadder(t,r,o):this.wNAFUnsafe(i,this.getPrecomputes(i,t,n),r,o)}createCache(t,r){Zu(r,this.bits),Xu.set(t,r),ec.delete(t)}hasCache(t){return tc(t)!==1}};function Qu(e,t,r,n){let o=t,i=e.ZERO,s=e.ZERO;for(;r>yo||n>yo;)r&Jn&&(i=i.add(o)),n&Jn&&(s=s.add(o)),o=o.double(),r>>=Jn,n>>=Jn;return{p1:i,p2:s}}function xo(e,t,r,n){Sh(r,e),Ch(n,t);let o=r.length,i=n.length;if(o!==i)throw new Error("arrays of points and scalars must have equal length");let s=e.ZERO,a=Tr(BigInt(o)),c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);let u=Pt(c),p=new Array(Number(u)+1).fill(s),d=Math.floor((t.BITS-1)/c)*c,l=s;for(let f=d;f>=0;f-=c){p.fill(s);for(let _=0;_<i;_++){let g=n[_],m=Number(g>>BigInt(f)&u);p[m]=p[m].add(r[_])}let h=s;for(let _=p.length-1,g=s;_>0;_--)g=g.add(p[_]),h=h.add(g);if(l=l.add(h),f!==0)for(let _=0;_<c;_++)l=l.double()}return l}function Yu(e,t,r){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return xs(t),t}else return Ge(e,{isLE:r})}function ws(e,t,r={},n){if(n===void 0&&(n=e==="edwards"),!t||typeof t!="object")throw new Error(`expected valid ${e} CURVE object`);for(let c of["p","n","h"]){let u=t[c];if(!(typeof u=="bigint"&&u>yo))throw new Error(`CURVE.${c} must be positive bigint`)}let o=Yu(t.p,r.Fp,n),i=Yu(t.n,r.Fn,n),a=["Gx","Gy","a",e==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(t[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return t=Object.freeze(Object.assign({},t)),{CURVE:t,Fp:o,Fn:i}}var Vh=Xe;function $r(e,t){if(li(e),li(t),e<0||e>=1<<8*t)throw new Error("invalid I2OSP input: "+e);let r=Array.from({length:t}).fill(0);for(let n=t-1;n>=0;n--)r[n]=e&255,e>>>=8;return new Uint8Array(r)}function Fh(e,t){let r=new Uint8Array(e.length);for(let n=0;n<e.length;n++)r[n]=e[n]^t[n];return r}function li(e){if(!Number.isSafeInteger(e))throw new Error("number expected")}function ed(e){if(!kt(e)&&typeof e!="string")throw new Error("DST must be Uint8Array or string");return typeof e=="string"?G(e):e}function Ph(e,t,r,n){he(e),li(r),t=ed(t),t.length>255&&(t=n(K(G("H2C-OVERSIZE-DST-"),t)));let{outputLen:o,blockLen:i}=n,s=Math.ceil(r/o);if(r>65535||s>255)throw new Error("expand_message_xmd: invalid lenInBytes");let a=K(t,$r(t.length,1)),c=$r(0,i),u=$r(r,2),p=new Array(s),d=n(K(c,e,u,$r(0,1),a));p[0]=n(K(d,$r(1,1),a));for(let f=1;f<=s;f++){let h=[Fh(d,p[f-1]),$r(f+1,1),a];p[f]=n(K(...h))}return K(...p).slice(0,r)}function Bh(e,t,r,n,o){if(he(e),li(r),t=ed(t),t.length>255){let i=Math.ceil(2*n/8);t=o.create({dkLen:i}).update(G("H2C-OVERSIZE-DST-")).update(t).digest()}if(r>65535||t.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return o.create({dkLen:r}).update(e).update($r(r,2)).update(t).update($r(t.length,1)).digest()}function rc(e,t,r){Nr(r,{p:"bigint",m:"number",k:"number",hash:"function"});let{p:n,k:o,m:i,hash:s,expand:a,DST:c}=r;if(!ku(r.hash))throw new Error("expected valid hash");he(e),li(t);let u=n.toString(2).length,p=Math.ceil((u+o)/8),d=t*i*p,l;if(a==="xmd")l=Ph(e,c,d,s);else if(a==="xof")l=Bh(e,c,d,o,s);else if(a==="_internal_pass")l=e;else throw new Error('expand must be "xmd" or "xof"');let f=new Array(t);for(let h=0;h<t;h++){let _=new Array(i);for(let g=0;g<i;g++){let m=p*(g+h*i),x=l.subarray(m,m+p);_[g]=ce(Vh(x),n)}f[h]=_}return f}function nc(e,t){let r=t.map(n=>Array.from(n).reverse());return(n,o)=>{let[i,s,a,c]=r.map(d=>d.reduce((l,f)=>e.add(e.mul(l,n),f))),[u,p]=pt(e,[s,c],!0);return n=e.mul(i,u),o=e.mul(o,e.mul(a,p)),{x:n,y:o}}}var Dh=G("HashToScalar-");function oc(e,t,r){if(typeof t!="function")throw new Error("mapToCurve() must be defined");function n(i){return e.fromAffine(t(i))}function o(i){let s=i.clearCofactor();return s.equals(e.ZERO)?e.ZERO:(s.assertValidity(),s)}return{defaults:r,hashToCurve(i,s){let a=Object.assign({},r,s),c=rc(i,2,a),u=n(c[0]),p=n(c[1]);return o(u.add(p))},encodeToCurve(i,s){let a=r.encodeDST?{DST:r.encodeDST}:{},c=Object.assign({},r,a,s),u=rc(i,1,c),p=n(u[0]);return o(p)},mapToCurve(i){if(!Array.isArray(i))throw new Error("expected array of bigints");for(let s of i)if(typeof s!="bigint")throw new Error("expected array of bigints");return o(n(i))},hashToScalar(i,s){let a=e.Fn.ORDER,c=Object.assign({},r,{p:a,m:1,DST:Dh},s);return rc(i,1,c)[0][0]}}}var td=(e,t)=>(e+(e>=0?t:-t)/Er)/t;function Uh(e,t,r){let[[n,o],[i,s]]=t,a=td(s*e,r),c=td(-o*e,r),u=e-a*n-c*i,p=-a*o-c*s,d=u<Wn,l=p<Wn;d&&(u=-u),l&&(p=-p);let f=Pt(Math.ceil(Tr(r)/2))+$e;if(u<Wn||u>=f||p<Wn||p>=f)throw new Error("splitScalar (endomorphism): failed, k="+e);return{k1neg:d,k1:u,k2neg:l,k2:p}}var Wn=BigInt(0),$e=BigInt(1),Er=BigInt(2),bo=BigInt(3),ic=BigInt(4);function ui(e,t){let{BYTES:r}=e,n;if(typeof t=="bigint")n=t;else{let o=de("private key",t);try{n=e.fromBytes(o)}catch{throw new Error(`invalid private key: expected ui8a of size ${r}, got ${typeof t}`)}}if(!e.isValidNot0(n))throw new Error("invalid private key: out of range [1..N-1]");return n}function kh(e,t={}){let r=ws("weierstrass",e,t),{Fp:n,Fn:o}=r,i=r.CURVE,{h:s,n:a}=i;Nr(t,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:c}=t;if(c&&(!n.is0(i.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let u=Mh(n,o);function p(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function d(C,b,N){let{x:S,y:B}=b.toAffine(),k=n.toBytes(S);if(Gn(N,"isCompressed"),N){p();let A=!n.isOdd(B);return K(Lh(A),k)}else return K(Uint8Array.of(4),k,n.toBytes(B))}function l(C){Hr(C,void 0,"Point");let{publicKey:b,publicKeyUncompressed:N}=u,S=C.length,B=C[0],k=C.subarray(1);if(S===b&&(B===2||B===3)){let A=n.fromBytes(k);if(!n.isValid(A))throw new Error("bad point: is not on curve, wrong x");let F=_(A),P;try{P=n.sqrt(F)}catch(ee){let ne=ee instanceof Error?": "+ee.message:"";throw new Error("bad point: is not on curve, sqrt error"+ne)}p();let D=n.isOdd(P);return(B&1)===1!==D&&(P=n.neg(P)),{x:A,y:P}}else if(S===N&&B===4){let A=n.BYTES,F=n.fromBytes(k.subarray(0,A)),P=n.fromBytes(k.subarray(A,A*2));if(!g(F,P))throw new Error("bad point: is not on curve");return{x:F,y:P}}else throw new Error(`bad point: got length ${S}, expected compressed=${b} or uncompressed=${N}`)}let f=t.toBytes||d,h=t.fromBytes||l;function _(C){let b=n.sqr(C),N=n.mul(b,C);return n.add(n.add(N,n.mul(C,i.a)),i.b)}function g(C,b){let N=n.sqr(b),S=_(C);return n.eql(N,S)}if(!g(i.Gx,i.Gy))throw new Error("bad curve params: generator point");let m=n.mul(n.pow(i.a,bo),ic),x=n.mul(n.sqr(i.b),BigInt(27));if(n.is0(n.add(m,x)))throw new Error("bad curve params: a or b");function y(C,b,N=!1){if(!n.isValid(b)||N&&n.is0(b))throw new Error(`bad point coordinate ${C}`);return b}function T(C){if(!(C instanceof w))throw new Error("ProjectivePoint expected")}function O(C){if(!c||!c.basises)throw new Error("no endo");return Uh(C,c.basises,o.ORDER)}let R=Gr((C,b)=>{let{X:N,Y:S,Z:B}=C;if(n.eql(B,n.ONE))return{x:N,y:S};let k=C.is0();b==null&&(b=k?n.ONE:n.inv(B));let A=n.mul(N,b),F=n.mul(S,b),P=n.mul(B,b);if(k)return{x:n.ZERO,y:n.ZERO};if(!n.eql(P,n.ONE))throw new Error("invZ was invalid");return{x:A,y:F}}),E=Gr(C=>{if(C.is0()){if(t.allowInfinityPoint&&!n.is0(C.Y))return;throw new Error("bad point: ZERO")}let{x:b,y:N}=C.toAffine();if(!n.isValid(b)||!n.isValid(N))throw new Error("bad point: x or y not field elements");if(!g(b,N))throw new Error("bad point: equation left != right");if(!C.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function v(C,b,N,S,B){return N=new w(n.mul(N.X,C),N.Y,N.Z),b=ci(S,b),N=ci(B,N),b.add(N)}class w{constructor(b,N,S){this.X=y("x",b),this.Y=y("y",N,!0),this.Z=y("z",S),Object.freeze(this)}static CURVE(){return i}static fromAffine(b){let{x:N,y:S}=b||{};if(!b||!n.isValid(N)||!n.isValid(S))throw new Error("invalid affine point");if(b instanceof w)throw new Error("projective point not allowed");return n.is0(N)&&n.is0(S)?w.ZERO:new w(N,S,n.ONE)}static fromBytes(b){let N=w.fromAffine(h(Hr(b,void 0,"point")));return N.assertValidity(),N}static fromHex(b){return w.fromBytes(de("pointHex",b))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(b=8,N=!0){return V.createCache(this,b),N||this.multiply(bo),this}assertValidity(){E(this)}hasEvenY(){let{y:b}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(b)}equals(b){T(b);let{X:N,Y:S,Z:B}=this,{X:k,Y:A,Z:F}=b,P=n.eql(n.mul(N,F),n.mul(k,B)),D=n.eql(n.mul(S,F),n.mul(A,B));return P&&D}negate(){return new w(this.X,n.neg(this.Y),this.Z)}double(){let{a:b,b:N}=i,S=n.mul(N,bo),{X:B,Y:k,Z:A}=this,F=n.ZERO,P=n.ZERO,D=n.ZERO,M=n.mul(B,B),ee=n.mul(k,k),ne=n.mul(A,A),Y=n.mul(B,k);return Y=n.add(Y,Y),D=n.mul(B,A),D=n.add(D,D),F=n.mul(b,D),P=n.mul(S,ne),P=n.add(F,P),F=n.sub(ee,P),P=n.add(ee,P),P=n.mul(F,P),F=n.mul(Y,F),D=n.mul(S,D),ne=n.mul(b,ne),Y=n.sub(M,ne),Y=n.mul(b,Y),Y=n.add(Y,D),D=n.add(M,M),M=n.add(D,M),M=n.add(M,ne),M=n.mul(M,Y),P=n.add(P,M),ne=n.mul(k,A),ne=n.add(ne,ne),M=n.mul(ne,Y),F=n.sub(F,M),D=n.mul(ne,ee),D=n.add(D,D),D=n.add(D,D),new w(F,P,D)}add(b){T(b);let{X:N,Y:S,Z:B}=this,{X:k,Y:A,Z:F}=b,P=n.ZERO,D=n.ZERO,M=n.ZERO,ee=i.a,ne=n.mul(i.b,bo),Y=n.mul(N,k),we=n.mul(S,A),fe=n.mul(B,F),Fe=n.add(N,S),oe=n.add(k,A);Fe=n.mul(Fe,oe),oe=n.add(Y,we),Fe=n.sub(Fe,oe),oe=n.add(N,B);let te=n.add(k,F);return oe=n.mul(oe,te),te=n.add(Y,fe),oe=n.sub(oe,te),te=n.add(S,B),P=n.add(A,F),te=n.mul(te,P),P=n.add(we,fe),te=n.sub(te,P),M=n.mul(ee,oe),P=n.mul(ne,fe),M=n.add(P,M),P=n.sub(we,M),M=n.add(we,M),D=n.mul(P,M),we=n.add(Y,Y),we=n.add(we,Y),fe=n.mul(ee,fe),oe=n.mul(ne,oe),we=n.add(we,fe),fe=n.sub(Y,fe),fe=n.mul(ee,fe),oe=n.add(oe,fe),Y=n.mul(we,oe),D=n.add(D,Y),Y=n.mul(te,oe),P=n.mul(Fe,P),P=n.sub(P,Y),Y=n.mul(Fe,we),M=n.mul(te,M),M=n.add(M,Y),new w(P,D,M)}subtract(b){return this.add(b.negate())}is0(){return this.equals(w.ZERO)}multiply(b){let{endo:N}=t;if(!o.isValidNot0(b))throw new Error("invalid scalar: out of range");let S,B,k=A=>V.cached(this,A,F=>ft(w,F));if(N){let{k1neg:A,k1:F,k2neg:P,k2:D}=O(b),{p:M,f:ee}=k(F),{p:ne,f:Y}=k(D);B=ee.add(Y),S=v(N.beta,M,ne,A,P)}else{let{p:A,f:F}=k(b);S=A,B=F}return ft(w,[S,B])[0]}multiplyUnsafe(b){let{endo:N}=t,S=this;if(!o.isValid(b))throw new Error("invalid scalar: out of range");if(b===Wn||S.is0())return w.ZERO;if(b===$e)return S;if(V.hasCache(this))return this.multiply(b);if(N){let{k1neg:B,k1:k,k2neg:A,k2:F}=O(b),{p1:P,p2:D}=Qu(w,S,k,F);return v(N.beta,P,D,B,A)}else return V.unsafe(S,b)}multiplyAndAddUnsafe(b,N,S){let B=this.multiplyUnsafe(N).add(b.multiplyUnsafe(S));return B.is0()?void 0:B}toAffine(b){return R(this,b)}isTorsionFree(){let{isTorsionFree:b}=t;return s===$e?!0:b?b(w,this):V.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:b}=t;return s===$e?this:b?b(w,this):this.multiplyUnsafe(s)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}toBytes(b=!0){return Gn(b,"isCompressed"),this.assertValidity(),f(w,this,b)}toHex(b=!0){return j(this.toBytes(b))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(b=!0){return this.toBytes(b)}_setWindowSize(b){this.precompute(b)}static normalizeZ(b){return ft(w,b)}static msm(b,N){return xo(w,o,b,N)}static fromPrivateKey(b){return w.BASE.multiply(ui(o,b))}}w.BASE=new w(i.Gx,i.Gy,n.ONE),w.ZERO=new w(n.ZERO,n.ONE,n.ZERO),w.Fp=n,w.Fn=o;let I=o.BITS,V=new go(w,t.endo?Math.ceil(I/2):I);return w.BASE.precompute(8),w}function Lh(e){return Uint8Array.of(e?2:3)}function qh(e,t){let r=e.ORDER,n=Wn;for(let h=r-$e;h%Er===Wn;h/=Er)n+=$e;let o=n,i=Er<<o-$e-$e,s=i*Er,a=(r-$e)/s,c=(a-$e)/Er,u=s-$e,p=i,d=e.pow(t,a),l=e.pow(t,(a+$e)/Er),f=(h,_)=>{let g=d,m=e.pow(_,u),x=e.sqr(m);x=e.mul(x,_);let y=e.mul(h,x);y=e.pow(y,c),y=e.mul(y,m),m=e.mul(y,_),x=e.mul(y,h);let T=e.mul(x,m);y=e.pow(T,p);let O=e.eql(y,e.ONE);m=e.mul(x,l),y=e.mul(T,g),x=e.cmov(m,x,O),T=e.cmov(y,T,O);for(let R=o;R>$e;R--){let E=R-Er;E=Er<<E-$e;let v=e.pow(T,E),w=e.eql(v,e.ONE);m=e.mul(x,g),g=e.mul(g,g),v=e.mul(T,g),x=e.cmov(m,x,w),T=e.cmov(v,T,w)}return{isValid:O,value:x}};if(e.ORDER%ic===bo){let h=(e.ORDER-bo)/ic,_=e.sqrt(e.neg(t));f=(g,m)=>{let x=e.sqr(m),y=e.mul(g,m);x=e.mul(x,y);let T=e.pow(x,h);T=e.mul(T,y);let O=e.mul(T,_),R=e.mul(e.sqr(T),m),E=e.eql(R,g),v=e.cmov(O,T,E);return{isValid:E,value:v}}}return f}function sc(e,t){xs(e);let{A:r,B:n,Z:o}=t;if(!e.isValid(r)||!e.isValid(n)||!e.isValid(o))throw new Error("mapToCurveSimpleSWU: invalid opts");let i=qh(e,o);if(!e.isOdd)throw new Error("Field does not have .isOdd()");return s=>{let a,c,u,p,d,l,f,h;a=e.sqr(s),a=e.mul(a,o),c=e.sqr(a),c=e.add(c,a),u=e.add(c,e.ONE),u=e.mul(u,n),p=e.cmov(o,e.neg(c),!e.eql(c,e.ZERO)),p=e.mul(p,r),c=e.sqr(u),l=e.sqr(p),d=e.mul(l,r),c=e.add(c,d),c=e.mul(c,u),l=e.mul(l,p),d=e.mul(l,n),c=e.add(c,d),f=e.mul(a,u);let{isValid:_,value:g}=i(c,l);h=e.mul(a,s),h=e.mul(h,g),f=e.cmov(f,u,_),h=e.cmov(h,g,_);let m=e.isOdd(s)===e.isOdd(h);h=e.cmov(e.neg(h),h,m);let x=pt(e,[p],!0)[0];return f=e.mul(f,x),{x:f,y:h}}}function Mh(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function ac(e){let{CURVE:t,curveOpts:r}=jh(e),n=kh(t,r);return Hh(e,n)}function jh(e){let t={a:e.a,b:e.b,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=e.allowedPrivateKeyLengths?Array.from(new Set(e.allowedPrivateKeyLengths.map(s=>Math.ceil(s/2)))):void 0,o=Ge(t.n,{BITS:e.nBitLength,allowedLengths:n,modFromBytes:e.wrapPrivateKey}),i={Fp:r,Fn:o,allowInfinityPoint:e.allowInfinityPoint,endo:e.endo,isTorsionFree:e.isTorsionFree,clearCofactor:e.clearCofactor,fromBytes:e.fromBytes,toBytes:e.toBytes};return{CURVE:t,curveOpts:i}}function Kh(e,t,r){function n(o){let i=e.sqr(o),s=e.mul(i,o);return e.add(e.add(s,e.mul(o,t)),r)}return n}function Hh(e,t){let{Fp:r,Fn:n}=t;function o(s){return za(s,$e,n.ORDER)}let i=Kh(r,e.a,e.b);return Object.assign({},{CURVE:e,Point:t,ProjectivePoint:t,normPrivateKeyToScalar:s=>ui(n,s),weierstrassEquation:i,isWithinCurveOrder:o})}var Gh=BigInt(0),Ts=BigInt(1),rd=BigInt(2),wo=BigInt(3);function $h(e){let t=[];for(;e>Ts;e>>=Ts)(e&Ts)===Gh?t.unshift(0):(e&wo)===wo?(t.unshift(-1),e+=Ts):t.unshift(1);return t}function cc(e){if(!Array.isArray(e)||e.length===0)throw new Error("expected non-empty array")}function Jh(e,t,r,n){let{Fp2:o,Fp12:i}=e,{twistType:s,ateLoopSize:a,xNegative:c,postPrecompute:u}=n,p;if(s==="multiplicative")p=(y,T,O,R,E,v)=>i.mul014(R,y,o.mul(T,E),o.mul(O,v));else if(s==="divisive")p=(y,T,O,R,E,v)=>i.mul034(R,o.mul(O,v),o.mul(T,E),y);else throw new Error("bls: unknown twist type");let d=o.div(o.ONE,o.mul(o.ONE,rd));function l(y,T,O,R){let E=o.sqr(O),v=o.sqr(R),w=o.mulByB(o.mul(v,wo)),I=o.mul(w,wo),V=o.sub(o.sub(o.sqr(o.add(O,R)),v),E),C=o.sub(w,E),b=o.mul(o.sqr(T),wo),N=o.neg(V);return y.push([C,b,N]),T=o.mul(o.mul(o.mul(o.sub(E,I),T),O),d),O=o.sub(o.sqr(o.mul(o.add(E,I),d)),o.mul(o.sqr(w),wo)),R=o.mul(E,V),{Rx:T,Ry:O,Rz:R}}function f(y,T,O,R,E,v){let w=o.sub(O,o.mul(v,R)),I=o.sub(T,o.mul(E,R)),V=o.sub(o.mul(w,E),o.mul(I,v)),C=o.neg(w),b=I;y.push([V,C,b]);let N=o.sqr(I),S=o.mul(N,I),B=o.mul(N,T),k=o.add(o.sub(S,o.mul(B,rd)),o.mul(o.sqr(w),R));return T=o.mul(I,k),O=o.sub(o.mul(o.sub(B,k),w),o.mul(S,O)),R=o.mul(R,S),{Rx:T,Ry:O,Rz:R}}let h=$h(a),_=Gr(y=>{let T=y,{x:O,y:R}=T.toAffine(),E=O,v=R,w=o.neg(R),I=E,V=v,C=o.ONE,b=[];for(let N of h){let S=[];({Rx:I,Ry:V,Rz:C}=l(S,I,V,C)),N&&({Rx:I,Ry:V,Rz:C}=f(S,I,V,C,E,N===-1?w:v)),b.push(S)}if(u){let N=b[b.length-1];u(I,V,C,E,v,f.bind(null,N))}return b});function g(y,T=!1){let O=i.ONE;if(y.length){let R=y[0][0].length;for(let E=0;E<R;E++){O=i.sqr(O);for(let[v,w,I]of y)for(let[V,C,b]of v[E])O=p(V,C,b,O,w,I)}}return c&&(O=i.conjugate(O)),T?i.finalExponentiate(O):O}function m(y,T=!0){let O=[];ft(t,y.map(({g1:R})=>R)),ft(r,y.map(({g2:R})=>R));for(let{g1:R,g2:E}of y){if(R.is0()||E.is0())throw new Error("pairing is not available for ZERO point");R.assertValidity(),E.assertValidity();let v=R.toAffine();O.push([_(E),v.x,v.y])}return g(O,T)}function x(y,T,O=!0){return m([{g1:y,g2:T}],O)}return{Fp12:i,millerLoopBatch:g,pairing:x,pairingBatch:m,calcPairingPrecomputes:_}}function nd(e,t,r,n,o){let{Fp12:i,pairingBatch:s}=e;function a(d){return d instanceof t.Point?d:t.Point.fromHex(d)}function c(d){return d instanceof r.Point?d:r.Point.fromHex(d)}function u(d){if(!(d instanceof r.Point))throw new Error(`expected valid message hashed to ${o?"G1":"G2"} curve`);return d}let p=o?(d,l)=>({g1:l,g2:d}):(d,l)=>({g1:d,g2:l});return{getPublicKey(d){let l=ui(t.Point.Fn,d);return t.Point.BASE.multiply(l)},sign(d,l,f){if(f!=null)throw new Error("sign() expects 2 arguments");let h=ui(t.Point.Fn,l);return u(d).assertValidity(),d.multiply(h)},verify(d,l,f,h){if(h!=null)throw new Error("verify() expects 3 arguments");d=c(d),f=a(f);let _=f.negate(),g=t.Point.BASE,m=u(l),x=d,y=s([p(_,m),p(g,x)]);return i.eql(y,i.ONE)},verifyBatch(d,l,f){if(cc(l),f.length!==l.length)throw new Error("amount of public keys and messages should be equal");let h=c(d),_=l,g=f.map(a),m=new Map;for(let T=0;T<g.length;T++){let O=g[T],R=_[T],E=m.get(R);E===void 0&&(E=[],m.set(R,E)),E.push(O)}let x=[],y=t.Point.BASE;try{for(let[T,O]of m){let R=O.reduce((E,v)=>E.add(v));x.push(p(R,T))}return x.push(p(y.negate(),h)),i.eql(s(x),i.ONE)}catch{return!1}},aggregatePublicKeys(d){cc(d),d=d.map(f=>a(f));let l=d.reduce((f,h)=>f.add(h),t.Point.ZERO);return l.assertValidity(),l},aggregateSignatures(d){cc(d),d=d.map(f=>c(f));let l=d.reduce((f,h)=>f.add(h),r.Point.ZERO);return l.assertValidity(),l},hash(d,l){he(d);let f=l?{DST:l}:void 0;return r.hashToCurve(d,f)},Signature:n}}function od(e){let{Fp:t,Fr:r,Fp2:n,Fp6:o,Fp12:i}=e.fields,s=ac(e.G1),a=Object.assign(s,oc(s.Point,e.G1.mapToCurve,{...e.htfDefaults,...e.G1.htfDefaults})),c=ac(e.G2),u=Object.assign(c,oc(c.Point,e.G2.mapToCurve,{...e.htfDefaults,...e.G2.htfDefaults})),p=Jh(e.fields,a.Point,u.Point,{...e.params,postPrecompute:e.postPrecompute}),{millerLoopBatch:d,pairing:l,pairingBatch:f,calcPairingPrecomputes:h}=p,_=nd(p,a,u,e.G2.Signature,!1),g=nd(p,u,a,e.G1.ShortSignature,!0),m=e.randomBytes||to,x=()=>{let A=bs(r.ORDER);return Xa(m(A),r.ORDER)},y={randomSecretKey:x,randomPrivateKey:x,calcPairingPrecomputes:h},{ShortSignature:T}=e.G1,{Signature:O}=e.G2;function R(A,F){return A instanceof a.Point?A:g.hash(de("point",A),F?.DST)}function E(A,F){return A instanceof u.Point?A:_.hash(de("point",A),F?.DST)}function v(A){return _.getPublicKey(A).toBytes(!0)}function w(A){return g.getPublicKey(A).toBytes(!0)}function I(A,F,P){let D=E(A,P),M=_.sign(D,F);return A instanceof u.Point?M:O.toBytes(M)}function V(A,F,P){let D=R(A,P),M=g.sign(D,F);return A instanceof a.Point?M:T.toBytes(M)}function C(A,F,P,D){let M=E(F,D);return _.verify(A,M,P)}function b(A,F,P,D){let M=R(F,D);return g.verify(A,M,P)}function N(A){let F=_.aggregatePublicKeys(A);return A[0]instanceof a.Point?F:F.toBytes(!0)}function S(A){let F=_.aggregateSignatures(A);return A[0]instanceof u.Point?F:O.toBytes(F)}function B(A){let F=g.aggregateSignatures(A);return A[0]instanceof a.Point?F:T.toBytes(F)}function k(A,F,P,D){let M=F.map(ee=>E(ee,D));return _.verifyBatch(A,M,P)}return a.Point.BASE.precompute(4),{longSignatures:_,shortSignatures:g,millerLoopBatch:d,pairing:l,pairingBatch:f,verifyBatch:k,fields:{Fr:r,Fp:t,Fp2:n,Fp6:o,Fp12:i},params:{ateLoopSize:e.params.ateLoopSize,twistType:e.params.twistType,r:e.params.r,G1b:e.G1.b,G2b:e.G2.b},utils:y,getPublicKey:v,getPublicKeyForShortSignatures:w,sign:I,signShortSignature:V,verify:C,verifyShortSignature:b,aggregatePublicKeys:N,aggregateSignatures:S,aggregateShortSignatures:B,G1:a,G2:u,Signature:O,ShortSignature:T}}var id=BigInt(0),Rr=BigInt(1),Je=BigInt(2),sd=BigInt(3);function pc(e,t,r,n,o=1,i){let s=BigInt(i===void 0?n:i),a=r**BigInt(n),c=[];for(let u=0;u<o;u++){let p=BigInt(u+1),d=[];for(let l=0,f=Rr;l<n;l++){let h=(p*f-p)/s%a;d.push(e.pow(t,h)),f*=r}c.push(d)}return c}function cd(e,t,r){let n=t.pow(r,(e.ORDER-Rr)/sd),o=t.pow(r,(e.ORDER-Rr)/Je);function i(l,f){let h=t.mul(t.frobeniusMap(l,1),n),_=t.mul(t.frobeniusMap(f,1),o);return[h,_]}let s=t.pow(r,(e.ORDER**Je-Rr)/sd),a=t.pow(r,(e.ORDER**Je-Rr)/Je);if(!t.eql(a,t.neg(t.ONE)))throw new Error("psiFrobenius: PSI2_Y!==-1");function c(l,f){return[t.mul(l,s),t.neg(f)]}let u=l=>(f,h)=>{let _=h.toAffine(),g=l(_.x,_.y);return f.fromAffine({x:g[0],y:g[1]})},p=u(i),d=u(c);return{psi:i,psi2:c,G2psi:p,G2psi2:d,PSI_X:n,PSI_Y:o,PSI2_X:s,PSI2_Y:a}}var ad=(e,t)=>{if(t.length!==2)throw new Error("invalid tuple");let r=t.map(n=>e.create(n));return{c0:r[0],c1:r[1]}},lc=class{constructor(t,r={}){this.MASK=Rr;let n=t.ORDER,o=n*n;this.Fp=t,this.ORDER=o,this.BITS=Tr(o),this.BYTES=Math.ceil(Tr(o)/8),this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.Fp_NONRESIDUE=t.create(r.NONRESIDUE||BigInt(-1)),this.Fp_div2=t.div(t.ONE,Je),this.NONRESIDUE=ad(t,r.FP2_NONRESIDUE),this.FROBENIUS_COEFFICIENTS=pc(t,this.Fp_NONRESIDUE,t.ORDER,2)[0],this.mulByB=r.Fp2mulByB,Object.seal(this)}fromBigTuple(t){return ad(this.Fp,t)}create(t){return t}isValid({c0:t,c1:r}){function n(o,i){return typeof o=="bigint"&&id<=o&&o<i}return n(t,this.ORDER)&&n(r,this.ORDER)}is0({c0:t,c1:r}){return this.Fp.is0(t)&&this.Fp.is0(r)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}eql({c0:t,c1:r},{c0:n,c1:o}){return this.Fp.eql(t,n)&&this.Fp.eql(r,o)}neg({c0:t,c1:r}){return{c0:this.Fp.neg(t),c1:this.Fp.neg(r)}}pow(t,r){return ai(this,t,r)}invertBatch(t){return pt(this,t)}add(t,r){let{c0:n,c1:o}=t,{c0:i,c1:s}=r;return{c0:this.Fp.add(n,i),c1:this.Fp.add(o,s)}}sub({c0:t,c1:r},{c0:n,c1:o}){return{c0:this.Fp.sub(t,n),c1:this.Fp.sub(r,o)}}mul({c0:t,c1:r},n){let{Fp:o}=this;if(typeof n=="bigint")return{c0:o.mul(t,n),c1:o.mul(r,n)};let{c0:i,c1:s}=n,a=o.mul(t,i),c=o.mul(r,s),u=o.sub(a,c),p=o.sub(o.mul(o.add(t,r),o.add(i,s)),o.add(a,c));return{c0:u,c1:p}}sqr({c0:t,c1:r}){let{Fp:n}=this,o=n.add(t,r),i=n.sub(t,r),s=n.add(t,t);return{c0:n.mul(o,i),c1:n.mul(s,r)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}div(t,r){let{Fp:n}=this;return this.mul(t,typeof r=="bigint"?n.inv(n.create(r)):this.inv(r))}inv({c0:t,c1:r}){let{Fp:n}=this,o=n.inv(n.create(t*t+r*r));return{c0:n.mul(o,n.create(t)),c1:n.mul(o,n.create(-r))}}sqrt(t){let{Fp:r}=this,n=this,{c0:o,c1:i}=t;if(r.is0(i))return si(r,o)===1?n.create({c0:r.sqrt(o),c1:r.ZERO}):n.create({c0:r.ZERO,c1:r.sqrt(r.div(o,this.Fp_NONRESIDUE))});let s=r.sqrt(r.sub(r.sqr(o),r.mul(r.sqr(i),this.Fp_NONRESIDUE))),a=r.mul(r.add(s,o),this.Fp_div2);si(r,a)===-1&&(a=r.sub(a,s));let u=r.sqrt(a),p=n.create({c0:u,c1:r.div(r.mul(i,this.Fp_div2),u)});if(!n.eql(n.sqr(p),t))throw new Error("Cannot find square root");let d=p,l=n.neg(d),{re:f,im:h}=n.reim(d),{re:_,im:g}=n.reim(l);return h>g||h===g&&f>_?d:l}isOdd(t){let{re:r,im:n}=this.reim(t),o=r%Je,i=r===id,s=n%Je;return BigInt(o||i&&s)==Rr}fromBytes(t){let{Fp:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){return K(this.Fp.toBytes(t),this.Fp.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:o},i){return{c0:this.Fp.cmov(t,n,i),c1:this.Fp.cmov(r,o,i)}}reim({c0:t,c1:r}){return{re:t,im:r}}Fp4Square(t,r){let n=this,o=n.sqr(t),i=n.sqr(r);return{first:n.add(n.mulByNonresidue(i),o),second:n.sub(n.sub(n.sqr(n.add(t,r)),o),i)}}mulByNonresidue({c0:t,c1:r}){return this.mul({c0:t,c1:r},this.NONRESIDUE)}frobeniusMap({c0:t,c1:r},n){return{c0:t,c1:this.Fp.mul(r,this.FROBENIUS_COEFFICIENTS[n%2])}}},uc=class{constructor(t){this.MASK=Rr,this.Fp2=t,this.ORDER=t.ORDER,this.BITS=3*t.BITS,this.BYTES=3*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO,c2:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO,c2:t.ZERO};let{Fp:r}=t,n=pc(t,t.NONRESIDUE,r.ORDER,6,2,3);this.FROBENIUS_COEFFICIENTS_1=n[0],this.FROBENIUS_COEFFICIENTS_2=n[1],Object.seal(this)}add({c0:t,c1:r,c2:n},{c0:o,c1:i,c2:s}){let{Fp2:a}=this;return{c0:a.add(t,o),c1:a.add(r,i),c2:a.add(n,s)}}sub({c0:t,c1:r,c2:n},{c0:o,c1:i,c2:s}){let{Fp2:a}=this;return{c0:a.sub(t,o),c1:a.sub(r,i),c2:a.sub(n,s)}}mul({c0:t,c1:r,c2:n},o){let{Fp2:i}=this;if(typeof o=="bigint")return{c0:i.mul(t,o),c1:i.mul(r,o),c2:i.mul(n,o)};let{c0:s,c1:a,c2:c}=o,u=i.mul(t,s),p=i.mul(r,a),d=i.mul(n,c);return{c0:i.add(u,i.mulByNonresidue(i.sub(i.mul(i.add(r,n),i.add(a,c)),i.add(p,d)))),c1:i.add(i.sub(i.mul(i.add(t,r),i.add(s,a)),i.add(u,p)),i.mulByNonresidue(d)),c2:i.sub(i.add(p,i.mul(i.add(t,n),i.add(s,c))),i.add(u,d))}}sqr({c0:t,c1:r,c2:n}){let{Fp2:o}=this,i=o.sqr(t),s=o.mul(o.mul(t,r),Je),a=o.mul(o.mul(r,n),Je),c=o.sqr(n);return{c0:o.add(o.mulByNonresidue(a),i),c1:o.add(o.mulByNonresidue(c),s),c2:o.sub(o.sub(o.add(o.add(s,o.sqr(o.add(o.sub(t,r),n))),a),i),c)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}create(t){return t}isValid({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return o.isValid(t)&&o.isValid(r)&&o.isValid(n)}is0({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return o.is0(t)&&o.is0(r)&&o.is0(n)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return{c0:o.neg(t),c1:o.neg(r),c2:o.neg(n)}}eql({c0:t,c1:r,c2:n},{c0:o,c1:i,c2:s}){let{Fp2:a}=this;return a.eql(t,o)&&a.eql(r,i)&&a.eql(n,s)}sqrt(t){return _o()}div(t,r){let{Fp2:n}=this,{Fp:o}=n;return this.mul(t,typeof r=="bigint"?o.inv(o.create(r)):this.inv(r))}pow(t,r){return ai(this,t,r)}invertBatch(t){return pt(this,t)}inv({c0:t,c1:r,c2:n}){let{Fp2:o}=this,i=o.sub(o.sqr(t),o.mulByNonresidue(o.mul(n,r))),s=o.sub(o.mulByNonresidue(o.sqr(n)),o.mul(t,r)),a=o.sub(o.sqr(r),o.mul(t,n)),c=o.inv(o.add(o.mulByNonresidue(o.add(o.mul(n,s),o.mul(r,a))),o.mul(t,i)));return{c0:o.mul(c,i),c1:o.mul(c,s),c2:o.mul(c,a)}}fromBytes(t){let{Fp2:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);let n=r.BYTES;return{c0:r.fromBytes(t.subarray(0,n)),c1:r.fromBytes(t.subarray(n,n*2)),c2:r.fromBytes(t.subarray(2*n))}}toBytes({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return K(o.toBytes(t),o.toBytes(r),o.toBytes(n))}cmov({c0:t,c1:r,c2:n},{c0:o,c1:i,c2:s},a){let{Fp2:c}=this;return{c0:c.cmov(t,o,a),c1:c.cmov(r,i,a),c2:c.cmov(n,s,a)}}fromBigSix(t){let{Fp2:r}=this;if(!Array.isArray(t)||t.length!==6)throw new Error("invalid Fp6 usage");return{c0:r.fromBigTuple(t.slice(0,2)),c1:r.fromBigTuple(t.slice(2,4)),c2:r.fromBigTuple(t.slice(4,6))}}frobeniusMap({c0:t,c1:r,c2:n},o){let{Fp2:i}=this;return{c0:i.frobeniusMap(t,o),c1:i.mul(i.frobeniusMap(r,o),this.FROBENIUS_COEFFICIENTS_1[o%6]),c2:i.mul(i.frobeniusMap(n,o),this.FROBENIUS_COEFFICIENTS_2[o%6])}}mulByFp2({c0:t,c1:r,c2:n},o){let{Fp2:i}=this;return{c0:i.mul(t,o),c1:i.mul(r,o),c2:i.mul(n,o)}}mulByNonresidue({c0:t,c1:r,c2:n}){let{Fp2:o}=this;return{c0:o.mulByNonresidue(n),c1:t,c2:r}}mul1({c0:t,c1:r,c2:n},o){let{Fp2:i}=this;return{c0:i.mulByNonresidue(i.mul(n,o)),c1:i.mul(t,o),c2:i.mul(r,o)}}mul01({c0:t,c1:r,c2:n},o,i){let{Fp2:s}=this,a=s.mul(t,o),c=s.mul(r,i);return{c0:s.add(s.mulByNonresidue(s.sub(s.mul(s.add(r,n),i),c)),a),c1:s.sub(s.sub(s.mul(s.add(o,i),s.add(t,r)),a),c),c2:s.add(s.sub(s.mul(s.add(t,n),o),a),c)}}},dc=class{constructor(t,r){this.MASK=Rr;let{Fp2:n}=t,{Fp:o}=n;this.Fp6=t,this.ORDER=n.ORDER,this.BITS=2*t.BITS,this.BYTES=2*t.BYTES,this.isLE=t.isLE,this.ZERO={c0:t.ZERO,c1:t.ZERO},this.ONE={c0:t.ONE,c1:t.ZERO},this.FROBENIUS_COEFFICIENTS=pc(n,n.NONRESIDUE,o.ORDER,12,1,6)[0],this.X_LEN=r.X_LEN,this.finalExponentiate=r.Fp12finalExponentiate}create(t){return t}isValid({c0:t,c1:r}){let{Fp6:n}=this;return n.isValid(t)&&n.isValid(r)}is0({c0:t,c1:r}){let{Fp6:n}=this;return n.is0(t)&&n.is0(r)}isValidNot0(t){return!this.is0(t)&&this.isValid(t)}neg({c0:t,c1:r}){let{Fp6:n}=this;return{c0:n.neg(t),c1:n.neg(r)}}eql({c0:t,c1:r},{c0:n,c1:o}){let{Fp6:i}=this;return i.eql(t,n)&&i.eql(r,o)}sqrt(t){_o()}inv({c0:t,c1:r}){let{Fp6:n}=this,o=n.inv(n.sub(n.sqr(t),n.mulByNonresidue(n.sqr(r))));return{c0:n.mul(t,o),c1:n.neg(n.mul(r,o))}}div(t,r){let{Fp6:n}=this,{Fp2:o}=n,{Fp:i}=o;return this.mul(t,typeof r=="bigint"?i.inv(i.create(r)):this.inv(r))}pow(t,r){return ai(this,t,r)}invertBatch(t){return pt(this,t)}add({c0:t,c1:r},{c0:n,c1:o}){let{Fp6:i}=this;return{c0:i.add(t,n),c1:i.add(r,o)}}sub({c0:t,c1:r},{c0:n,c1:o}){let{Fp6:i}=this;return{c0:i.sub(t,n),c1:i.sub(r,o)}}mul({c0:t,c1:r},n){let{Fp6:o}=this;if(typeof n=="bigint")return{c0:o.mul(t,n),c1:o.mul(r,n)};let{c0:i,c1:s}=n,a=o.mul(t,i),c=o.mul(r,s);return{c0:o.add(a,o.mulByNonresidue(c)),c1:o.sub(o.mul(o.add(t,r),o.add(i,s)),o.add(a,c))}}sqr({c0:t,c1:r}){let{Fp6:n}=this,o=n.mul(t,r);return{c0:n.sub(n.sub(n.mul(n.add(n.mulByNonresidue(r),t),n.add(t,r)),o),n.mulByNonresidue(o)),c1:n.add(o,o)}}addN(t,r){return this.add(t,r)}subN(t,r){return this.sub(t,r)}mulN(t,r){return this.mul(t,r)}sqrN(t){return this.sqr(t)}fromBytes(t){let{Fp6:r}=this;if(t.length!==this.BYTES)throw new Error("fromBytes invalid length="+t.length);return{c0:r.fromBytes(t.subarray(0,r.BYTES)),c1:r.fromBytes(t.subarray(r.BYTES))}}toBytes({c0:t,c1:r}){let{Fp6:n}=this;return K(n.toBytes(t),n.toBytes(r))}cmov({c0:t,c1:r},{c0:n,c1:o},i){let{Fp6:s}=this;return{c0:s.cmov(t,n,i),c1:s.cmov(r,o,i)}}fromBigTwelve(t){let{Fp6:r}=this;return{c0:r.fromBigSix(t.slice(0,6)),c1:r.fromBigSix(t.slice(6,12))}}frobeniusMap(t,r){let{Fp6:n}=this,{Fp2:o}=n,{c0:i,c1:s,c2:a}=n.frobeniusMap(t.c1,r),c=this.FROBENIUS_COEFFICIENTS[r%12];return{c0:n.frobeniusMap(t.c0,r),c1:n.create({c0:o.mul(i,c),c1:o.mul(s,c),c2:o.mul(a,c)})}}mulByFp2({c0:t,c1:r},n){let{Fp6:o}=this;return{c0:o.mulByFp2(t,n),c1:o.mulByFp2(r,n)}}conjugate({c0:t,c1:r}){return{c0:t,c1:this.Fp6.neg(r)}}mul014({c0:t,c1:r},n,o,i){let{Fp6:s}=this,{Fp2:a}=s,c=s.mul01(t,n,o),u=s.mul1(r,i);return{c0:s.add(s.mulByNonresidue(u),c),c1:s.sub(s.sub(s.mul01(s.add(r,t),n,a.add(o,i)),c),u)}}mul034({c0:t,c1:r},n,o,i){let{Fp6:s}=this,{Fp2:a}=s,c=s.create({c0:a.mul(t.c0,n),c1:a.mul(t.c1,n),c2:a.mul(t.c2,n)}),u=s.mul01(r,o,i),p=s.mul01(s.add(t,r),a.add(n,o),i);return{c0:s.add(s.mulByNonresidue(u),c),c1:s.sub(p,s.add(c,u))}}_cyclotomicSquare({c0:t,c1:r}){let{Fp6:n}=this,{Fp2:o}=n,{c0:i,c1:s,c2:a}=t,{c0:c,c1:u,c2:p}=r,{first:d,second:l}=o.Fp4Square(i,u),{first:f,second:h}=o.Fp4Square(c,a),{first:_,second:g}=o.Fp4Square(s,p),m=o.mulByNonresidue(g);return{c0:n.create({c0:o.add(o.mul(o.sub(d,i),Je),d),c1:o.add(o.mul(o.sub(f,s),Je),f),c2:o.add(o.mul(o.sub(_,a),Je),_)}),c1:n.create({c0:o.add(o.mul(o.add(m,c),Je),m),c1:o.add(o.mul(o.add(l,u),Je),l),c2:o.add(o.mul(o.add(h,p),Je),h)})}}_cyclotomicExp(t,r){let n=this.ONE;for(let o=this.X_LEN-1;o>=0;o--)n=this._cyclotomicSquare(n),Uu(r,o)&&(n=this.mul(n,t));return n}};function ld(e){let t=Ge(e.ORDER),r=new lc(t,e),n=new uc(r),o=new dc(n,e);return{Fp:t,Fp2:r,Fp6:n,Fp12:o}}var Be=BigInt(0),Ns=BigInt(1),ht=BigInt(2),Os=BigInt(3),di=BigInt(4),Jr=BigInt("0xd201000000010000"),Wh=Tr(Jr),zn={p:BigInt("0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab"),n:BigInt("0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"),h:BigInt("0x396c8c005555e1568c00aaab0000aaab"),a:Be,b:di,Gx:BigInt("0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb"),Gy:BigInt("0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1")},zh=Ge(zn.n,{modFromBytes:!0,isLE:!0}),{Fp:q,Fp2:W,Fp6:Yh,Fp12:X}=ld({ORDER:zn.p,X_LEN:Wh,FP2_NONRESIDUE:[Ns,Ns],Fp2mulByB:({c0:e,c1:t})=>{let r=q.mul(e,di),n=q.mul(t,di);return{c0:q.sub(r,n),c1:q.add(r,n)}},Fp12finalExponentiate:e=>{let t=Jr,r=X.div(X.frobeniusMap(e,6),e),n=X.mul(X.frobeniusMap(r,2),r),o=X.conjugate(X._cyclotomicExp(n,t)),i=X.mul(X.conjugate(X._cyclotomicSquare(n)),o),s=X.conjugate(X._cyclotomicExp(i,t)),a=X.conjugate(X._cyclotomicExp(s,t)),c=X.mul(X.conjugate(X._cyclotomicExp(a,t)),X._cyclotomicSquare(o)),u=X.conjugate(X._cyclotomicExp(c,t)),p=X.frobeniusMap(X.mul(o,a),2),d=X.frobeniusMap(X.mul(s,n),3),l=X.frobeniusMap(X.mul(c,X.conjugate(n)),1),f=X.mul(X.mul(u,X.conjugate(i)),n);return X.mul(X.mul(X.mul(p,d),l),f)}}),{G2psi:ud,G2psi2:Zh}=cd(q,W,W.div(W.ONE,W.NONRESIDUE)),fc=Object.freeze({DST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",encodeDST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",p:q.ORDER,m:2,k:128,expand:"xmd",hash:Pe}),_c={p:W.ORDER,n:zn.n,h:BigInt("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5"),a:W.ZERO,b:W.fromBigTuple([di,di]),Gx:W.fromBigTuple([BigInt("0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8"),BigInt("0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e")]),Gy:W.fromBigTuple([BigInt("0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801"),BigInt("0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be")])},Es=pi(q.toBytes(Be),{infinity:!0,compressed:!0});function Rs(e){e=e.slice();let t=e[0]&224,r=!!(t>>7&1),n=!!(t>>6&1),o=!!(t>>5&1);return e[0]&=31,{compressed:r,infinity:n,sort:o,value:e}}function pi(e,t){if(e[0]&224)throw new Error("setMask: non-empty mask");return t.compressed&&(e[0]|=128),t.infinity&&(e[0]|=64),t.sort&&(e[0]|=32),e}function Xh(e,t,r){let{BYTES:n,ORDER:o}=q,i=t.is0(),{x:s,y:a}=t.toAffine();if(r){if(i)return Es.slice();let c=!!(a*ht/o);return pi(Oe(s,n),{compressed:!0,sort:c})}else return i?K(Uint8Array.of(64),new Uint8Array(2*n-1)):K(Oe(s,n),Oe(a,n))}function hc(e){e.assertValidity();let{BYTES:t,ORDER:r}=q,{x:n,y:o}=e.toAffine();if(e.is0())return Es.slice();let i=!!(o*ht/r);return pi(Oe(n,t),{compressed:!0,sort:i})}function Qh(e){let{compressed:t,infinity:r,sort:n,value:o}=Rs(e),{BYTES:i,ORDER:s}=q;if(o.length===48&&t){let a=Xe(o),c=q.create(a&Pt(q.BITS));if(r){if(c!==Be)throw new Error("invalid G1 point: non-empty, at infinity, with compression");return{x:Be,y:Be}}let u=q.add(q.pow(c,Os),q.create(zn.b)),p=q.sqrt(u);if(!p)throw new Error("invalid G1 point: compressed point");return p*ht/s!==BigInt(n)&&(p=q.neg(p)),{x:q.create(c),y:q.create(p)}}else if(o.length===96&&!t){let a=Xe(o.subarray(0,i)),c=Xe(o.subarray(i));if(r){if(a!==Be||c!==Be)throw new Error("G1: non-empty point at infinity");return fi.G1.Point.ZERO.toAffine()}return{x:q.create(a),y:q.create(c)}}else throw new Error("invalid G1 point: expected 48/96 bytes")}function dd(e){let{infinity:t,sort:r,value:n}=Rs(de("signatureHex",e,48)),o=q.ORDER,i=fi.G1.Point,s=Xe(n);if(t)return i.ZERO;let a=q.create(s&Pt(q.BITS)),c=q.add(q.pow(a,Os),q.create(zn.b)),u=q.sqrt(c);if(!u)throw new Error("invalid G1 point: compressed");let p=BigInt(r);u*ht/o!==p&&(u=q.neg(u));let d=i.fromAffine({x:a,y:u});return d.assertValidity(),d}function em(e,t,r){let{BYTES:n,ORDER:o}=q,i=t.is0(),{x:s,y:a}=t.toAffine();if(r){if(i)return K(Es,Oe(Be,n));let c=!!(a.c1===Be?a.c0*ht/o:a.c1*ht/o);return K(pi(Oe(s.c1,n),{compressed:!0,sort:c}),Oe(s.c0,n))}else{if(i)return K(Uint8Array.of(64),new Uint8Array(4*n-1));let{re:c,im:u}=W.reim(s),{re:p,im:d}=W.reim(a);return K(Oe(u,n),Oe(c,n),Oe(d,n),Oe(p,n))}}function mc(e){e.assertValidity();let{BYTES:t}=q;if(e.is0())return K(Es,Oe(Be,t));let{x:r,y:n}=e.toAffine(),{re:o,im:i}=W.reim(r),{re:s,im:a}=W.reim(n),u=!!((a>Be?a*ht:s*ht)/q.ORDER&Ns),p=o;return K(pi(Oe(i,t),{sort:u,compressed:!0}),Oe(p,t))}function tm(e){let{BYTES:t,ORDER:r}=q,{compressed:n,infinity:o,sort:i,value:s}=Rs(e);if(!n&&!o&&i||!n&&o&&i||i&&o&&n)throw new Error("invalid encoding flag: "+(e[0]&224));let a=(c,u,p)=>Xe(c.slice(u,p));if(s.length===96&&n){if(o){if(s.reduce((h,_)=>h!==0?_+1:_,0)>0)throw new Error("invalid G2 point: compressed");return{x:W.ZERO,y:W.ZERO}}let c=a(s,0,t),u=a(s,t,2*t),p=W.create({c0:q.create(u),c1:q.create(c)}),d=W.add(W.pow(p,Os),_c.b),l=W.sqrt(d),f=l.c1===Be?l.c0*ht/r:l.c1*ht/r?Ns:Be;return l=i&&f>0?l:W.neg(l),{x:p,y:l}}else if(s.length===192&&!n){if(o){if(s.reduce((l,f)=>l!==0?f+1:f,0)>0)throw new Error("invalid G2 point: uncompressed");return{x:W.ZERO,y:W.ZERO}}let c=a(s,0*t,1*t),u=a(s,1*t,2*t),p=a(s,2*t,3*t),d=a(s,3*t,4*t);return{x:W.fromBigTuple([u,c]),y:W.fromBigTuple([d,p])}}else throw new Error("invalid G2 point: expected 96/192 bytes")}function pd(e){let{ORDER:t}=q,{infinity:r,sort:n,value:o}=Rs(de("signatureHex",e)),i=fi.G2.Point,s=o.length/2;if(s!==48&&s!==96)throw new Error("invalid compressed signature length, expected 96/192 bytes");let a=Xe(o.slice(0,s)),c=Xe(o.slice(s));if(r)return i.ZERO;let u=q.create(a&Pt(q.BITS)),p=q.create(c),d=W.create({c0:p,c1:u}),l=W.add(W.pow(d,Os),_c.b),f=W.sqrt(l);if(!f)throw new Error("Failed to find a square root");let{re:h,im:_}=W.reim(f),g=BigInt(n),m=_>Be&&_*ht/t!==g,x=_===Be&&h*ht/t!==g;(m||x)&&(f=W.neg(f));let y=i.fromAffine({x:d,y:f});return y.assertValidity(),y}var fi=od({fields:{Fp:q,Fp2:W,Fp6:Yh,Fp12:X,Fr:zh},G1:{...zn,Fp:q,htfDefaults:{...fc,m:1,DST:"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_"},wrapPrivateKey:!0,allowInfinityPoint:!0,isTorsionFree:(e,t)=>{let r=BigInt("0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe"),n=new e(q.mul(t.X,r),t.Y,t.Z);return t.multiplyUnsafe(Jr).negate().multiplyUnsafe(Jr).equals(n)},clearCofactor:(e,t)=>t.multiplyUnsafe(Jr).add(t),mapToCurve:sm,fromBytes:Qh,toBytes:Xh,ShortSignature:{fromBytes(e){return he(e),dd(e)},fromHex(e){return dd(e)},toBytes(e){return hc(e)},toRawBytes(e){return hc(e)},toHex(e){return j(hc(e))}}},G2:{..._c,Fp:W,hEff:BigInt("0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551"),htfDefaults:{...fc},wrapPrivateKey:!0,allowInfinityPoint:!0,mapToCurve:am,isTorsionFree:(e,t)=>t.multiplyUnsafe(Jr).negate().equals(ud(e,t)),clearCofactor:(e,t)=>{let r=Jr,n=t.multiplyUnsafe(r).negate(),o=ud(e,t),i=t.double();return i=Zh(e,i),i=i.subtract(o),o=n.add(o),o=o.multiplyUnsafe(r).negate(),i=i.add(o),i=i.subtract(n),i.subtract(t)},fromBytes:tm,toBytes:em,Signature:{fromBytes(e){return he(e),pd(e)},fromHex(e){return pd(e)},toBytes(e){return mc(e)},toRawBytes(e){return mc(e)},toHex(e){return j(mc(e))}}},params:{ateLoopSize:Jr,r:zn.n,xNegative:!0,twistType:"multiplicative"},htfDefaults:fc,hash:Pe}),rm=nc(W,[[["0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6"],["0x0","0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d"],["0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1","0x0"]],[["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63"],["0xc","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f"],["0x1","0x0"]],[["0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706","0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706"],["0x0","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f"],["0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10","0x0"]],[["0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb"],["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3"],["0x12","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99"],["0x1","0x0"]]].map(e=>e.map(t=>W.fromBigTuple(t.map(BigInt))))),nm=nc(q,[["0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7","0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb","0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0","0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861","0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9","0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983","0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84","0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e","0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317","0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e","0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b","0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229"],["0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c","0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff","0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19","0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8","0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e","0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5","0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a","0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e","0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641","0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"],["0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33","0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696","0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6","0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb","0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb","0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0","0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2","0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29","0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587","0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30","0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132","0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e","0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8","0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133","0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b","0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604"],["0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1","0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d","0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2","0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416","0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d","0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac","0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c","0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9","0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a","0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55","0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8","0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092","0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc","0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7","0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(t=>BigInt(t)))),om=sc(q,{A:q.create(BigInt("0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d")),B:q.create(BigInt("0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0")),Z:q.create(BigInt(11))}),im=sc(W,{A:W.create({c0:q.create(Be),c1:q.create(BigInt(240))}),B:W.create({c0:q.create(BigInt(1012)),c1:q.create(BigInt(1012))}),Z:W.create({c0:q.create(BigInt(-2)),c1:q.create(BigInt(-1))})});function sm(e){let{x:t,y:r}=om(q.create(e[0]));return nm(t,r)}function am(e){let{x:t,y:r}=im(W.fromBigTuple(e));return rm(t,r)}function fd(e,t,r){let n=typeof e=="string"?e:j(e),o=typeof t=="string"?t:j(t),i=typeof r=="string"?r:j(r);return fi.verifyShortSignature(o,i,n)}var lm=BigInt(1e6),yc=e=>ye(new At(e)),Wr=e=>{let r=yc(e)/lm;return new Date(Number(r))};var hd=60*1e3,um=60,dm=24,pm=dm*um,fm=5,hm=5,mm=30*pm,pe;(function(e){e[e.Empty=0]="Empty",e[e.Fork=1]="Fork",e[e.Labeled=2]="Labeled",e[e.Leaf=3]="Leaf",e[e.Pruned=4]="Pruned"})(pe||(pe={}));function _m(e,t){for(let r=0;r<e.length;r++)if(e[r]>t[r])return!0;return!1}var at=class e{#e=!1;#t=void 0;static async create(t){let r=e.createUnverified(t);return await r.verify(),r}static createUnverified(t){return new e(t.certificate,t.rootKey,t.principal,t.blsVerify??fd,t.maxAgeInMinutes,t.disableTimeVerification,t.agent)}constructor(t,r,n,o,i=fm,s=!1,a){this._rootKey=r,this._principal=n,this._blsVerify=o,this._maxAgeInMinutes=i,this.#e=s,this.cert=Ke(t),a&&"getTimeDiffMsecs"in a&&"hasSyncedTime"in a&&"syncTime"in a&&"syncTimeWithSubnet"in a&&(this.#t=a)}lookup_path(t){return vr(t,this.cert.tree)}lookup_subtree(t){return _i(t,this.cert.tree)}async verify(){let t=await Is(this.cert.tree),r=await this._checkDelegationAndGetKey(this.cert.delegation),n=this.cert.signature,o=gm(r),i=K(Ba,t),s=Ie(this.lookup_path(["time"]));if(!s)throw re.fromCode(new Rt("Certificate does not contain a time"));if(!this.#e){let a=this.#t?.getTimeDiffMsecs()??0,c=this._maxAgeInMinutes*hd,u=new Date,p=u.getTime()+a,d=p-c,l=p+hm*hd,f=Wr(s),h=f.getTime()<d,_=f.getTime()>l;if((h||_)&&this.#t&&!this.#t.hasSyncedTime())return await this._syncTime(),await this.verify();if(h)throw Me.fromCode(new hr(this._maxAgeInMinutes,f,u,a,"past"));if(_)throw this.#t?.hasSyncedTime()?ae.fromCode(new Re("System time has been synced with the IC network, but certificate is still too far in the future.")):Me.fromCode(new hr(5,f,u,a,"future"))}try{if(!await this._blsVerify(o,n,i))throw Me.fromCode(new Rt("Invalid signature"))}catch(a){throw Me.fromCode(new Rt("Signature verification failed",a))}}async _checkDelegationAndGetKey(t){if(!t)return this._rootKey;let r=e.createUnverified({certificate:t.certificate,rootKey:this._rootKey,principal:this._principal,blsVerify:this._blsVerify,disableTimeVerification:this.#e,maxAgeInMinutes:mm,agent:this.#t});if(r.cert.delegation)throw re.fromCode(new ki);await r.verify();let n;if(_d(this._principal)){let i=this._principal.canisterId;if(n=L.fromUint8Array(t.subnet_id),!gc({canisterId:i,subnetId:n,tree:r.cert.tree}))throw Me.fromCode(new Dn(i,n))}else if(md(this._principal))n=this._principal.subnetId;else throw ut;let o=Ie(r.lookup_path(["subnet",n.toUint8Array(),"public_key"]));if(!o)throw md(this._principal)?Me.fromCode(new Li(n)):Me.fromCode(new Mi(`Could not find subnet key for subnet ID ${n.toText()}`));return o}async _syncTime(){this.#t&&(_d(this._principal)?await this.#t.syncTime(this._principal.canisterId):await this.#t.syncTimeWithSubnet(this._principal.subnetId))}};function md(e){return"subnetId"in e}function _d(e){return"canisterId"in e}var hi=Ee("308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100"),ym=96;function gm(e){let t=hi.byteLength+ym;if(e.byteLength!==t)throw re.fromCode(new ro(t,e.byteLength));let r=e.slice(0,hi.byteLength);if(!jn(r,hi))throw re.fromCode(new ji(hi,r));return e.slice(hi.byteLength)}function Ie(e){if(e.status===De.Found&&e.value instanceof Uint8Array)return e.value}async function Is(e){switch(e[0]){case pe.Empty:return Pe(vs("ic-hashtree-empty"));case pe.Pruned:return e[1];case pe.Leaf:return Pe(K(vs("ic-hashtree-leaf"),e[1]));case pe.Labeled:return Pe(K(vs("ic-hashtree-labeled"),e[1],await Is(e[2])));case pe.Fork:return Pe(K(vs("ic-hashtree-fork"),await Is(e[1]),await Is(e[2])));default:throw ut}}function vs(e){let t=new Uint8Array([e.length]),r=new TextEncoder().encode(e);return K(t,r)}function yd(e){return typeof e[0]=="string"?G(e[0]):e[0]}var De;(function(e){e.Unknown="Unknown",e.Absent="Absent",e.Found="Found",e.Error="Error"})(De||(De={}));var zr;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found"})(zr||(zr={}));var le;(function(e){e.Absent="Absent",e.Unknown="Unknown",e.Found="Found",e.Less="Less",e.Greater="Greater"})(le||(le={}));function vr(e,t){if(e.length===0)switch(t[0]){case pe.Empty:return{status:De.Absent};case pe.Leaf:{if(!t[1])throw ae.fromCode(new qr("Invalid tree structure for leaf"));if(t[1]instanceof Uint8Array)return{status:De.Found,value:t[1].slice(t[1].byteOffset,t[1].byteLength+t[1].byteOffset)};throw ut}case pe.Pruned:return{status:De.Unknown};case pe.Labeled:case pe.Fork:return{status:De.Error};default:throw ut}let r=yd(e),n=mi(r,t);switch(n.status){case le.Found:return vr(e.slice(1),n.value);case le.Absent:case le.Greater:case le.Less:return{status:De.Absent};case le.Unknown:return{status:De.Unknown};default:throw ut}}function _i(e,t){if(e.length===0)return{status:zr.Found,value:t};let r=yd(e),n=mi(r,t);switch(n.status){case le.Found:return _i(e.slice(1),n.value);case le.Unknown:return{status:zr.Unknown};case le.Absent:case le.Greater:case le.Less:return{status:zr.Absent};default:throw ut}}function Ss(e){switch(e[0]){case pe.Empty:return[];case pe.Fork:return Ss(e[1]).concat(Ss(e[2]));default:return[e]}}function mi(e,t){switch(t[0]){case pe.Labeled:return _m(e,t[1])?{status:le.Greater}:jn(e,t[1])?{status:le.Found,value:t[2]}:{status:le.Less};case pe.Fork:{let r=mi(e,t[1]);switch(r.status){case le.Greater:{let n=mi(e,t[2]);return n.status===le.Less?{status:le.Absent}:n}case le.Unknown:{let n=mi(e,t[2]);return n.status===le.Less?{status:le.Unknown}:n}default:return r}}case pe.Pruned:return{status:le.Unknown};default:return{status:le.Absent}}}function As(e,t){switch(t[0]){case pe.Empty|pe.Pruned:return[];case pe.Leaf:return[e];case pe.Fork:return As(e,t[1]).concat(As(e,t[2]));case pe.Labeled:{let r=t[1],n=t[2],o=[...e,r];return As(o,n)}default:throw ut}}function gc(e){let t=xm(e),r=xc(t),{canisterId:n}=e;return r.some(i=>i[0].ltEq(n)&&i[1].gtEq(n))}function xm(e){let{subnetId:t,tree:r,canisterId:n}=e,o=_i(["canister_ranges",t.toUint8Array()],r);if(o.status!==zr.Found)return bm(t,r);let i=o.value,s=wm(i);if(s.length===0)throw re.fromCode(new Dn(n,t));s.sort(io);let a=Tm(s,n),c=s[a];return Nm(c,i)}function bm(e,t){let r=vr(["subnet",e.toUint8Array(),"canister_ranges"],t);if(r.status!==De.Found)throw re.fromCode(new vt(`Could not find canister ranges for subnet ${e.toText()}`,r.status));return r.value}function xc(e){return Ke(e).map(n=>[L.fromUint8Array(n[0]),L.fromUint8Array(n[1])])}function wm(e){let t=[];for(let r of As([],e)){let n=r[0];if(!n)throw re.fromCode(new Rt("Path is invalid"));t.push(n)}return t}function Tm(e,t){let r=t.toUint8Array(),n=0,o=e.length-1;for(;n<o;){let i=Math.floor((n+o)/2);io(e[i],r)<=0?o=i:n=i+1}return n}function Nm(e,t){let r=vr([e],t);if(r.status!==De.Found)throw re.fromCode(new vt(`Could not find canister range for shard ${e.toString()}`,r.status));return r.value}function bc(e,t){return e.delegation?L.fromUint8Array(e.delegation.subnet_id):L.selfAuthenticating(t)}var gd=L.fromText("tdb26-jop6k-aogll-7ltgs-eruif-6kk7m-qpktf-gdiqx-mxtrf-vb5e6-eqe");function Cs(e,t){switch(t){case"raw":return e;case"leb128":return yc(e);case"cbor":return Ke(e);case"hex":return j(e);case"utf-8":return new TextDecoder().decode(e)}}function xd(e){return Ke(e).map(r=>L.fromUint8Array(r))}function bd(e,t){let r=typeof e=="string"?G(e):e;return[G("canister"),t,G("metadata"),r]}function Yr(e){return typeof e=="object"&&e!==null&&"key"in e&&"path"in e}function To(e,t){let r=_i(["subnet",t.toUint8Array(),"node"],e.tree);if(r.status!==zr.Found)throw re.fromCode(new vt("Node not found",r.status));if(r.value instanceof Uint8Array)throw ae.fromCode(new qr("Invalid node tree"));let n=Ss(r.value),o=new Map;return n.forEach(i=>{let s=L.from(i[1]).toText(),a=vr(["public_key"],i[2]);if(a.status!==De.Found)throw re.fromCode(new vt("Public key not found",a.status));let c=a.value;if(c.byteLength!==44)throw re.fromCode(new ro(44,c.byteLength));o.set(s,c)}),o}var wd=async e=>{let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,o=L.from(e.canisterId),i=[...new Set(r)],s=new Map,a=i.map((c,u)=>{let p=Em(c,o);return(async()=>{try{if(t.rootKey===null)throw _e.fromCode(new lt);let d=t.rootKey,l=await t.readState(o,{paths:[p]}),f=await at.create({certificate:l.certificate,rootKey:d,principal:{canisterId:o},disableTimeVerification:n,agent:t}),h=(m,x)=>{if(x==="subnet"){let y=Om(l.certificate,o,d);return{path:x,data:y}}else return{path:x,data:Ie(m.lookup_path(p))}},{path:_,data:g}=h(f,i[u]);if(!g)typeof _=="string"?s.set(_,null):s.set(_.key,null);else switch(_){case"time":{s.set(_,Wr(g));break}case"controllers":{s.set(_,xd(g));break}case"module_hash":{s.set(_,j(g));break}case"subnet":{s.set(_,g);break}case"candid":{s.set(_,new TextDecoder().decode(g));break}default:Yr(_)&&s.set(_.key,Cs(g,_.decodeStrategy))}}catch(d){if(d instanceof ot&&(d.hasCode(Rt)||d.hasCode(hr)))throw d;Yr(c)?s.set(c.key,null):s.set(c,null)}})()});return await Promise.all(a),s},Om=(e,t,r)=>{if(!t._isPrincipal)throw z.fromCode(new Re("Invalid canisterId"));let n=Ke(e),{delegation:o}=n,i;o&&o.subnet_id?i=L.fromUint8Array(new Uint8Array(o.subnet_id)):!o&&typeof r<"u"?i=L.selfAuthenticating(new Uint8Array(r)):i=gd;let s=To(n,i);return{subnetId:i.toText(),nodeKeys:s}},Em=(e,t)=>{let r=t.toUint8Array();switch(e){case"time":return[G("time")];case"controllers":return[G("canister"),r,G("controllers")];case"module_hash":return[G("canister"),r,G("module_hash")];case"subnet":return[G("subnet")];case"candid":return[G("canister"),r,G("metadata"),G("candid:service")];default:if(Yr(e))return typeof e.path=="string"||e.path instanceof Uint8Array?bd(e.path,r):e.path}throw ae.fromCode(new Re(`Error while encoding your path for canister status. Please ensure that your path ${e} was formatted correctly.`))};async function Td(e){let{agent:t,paths:r,disableCertificateTimeVerification:n=!1}=e,o=L.from(e.subnetId),i=[...new Set(r)],s=new Map,a=i.map((c,u)=>{let p=Rm(c,o);return(async()=>{try{if(t.rootKey===null)throw _e.fromCode(new lt);let d=t.rootKey,l=await t.readSubnetState(o,{paths:[p]}),f=await at.create({certificate:l.certificate,rootKey:d,principal:{subnetId:o},disableTimeVerification:n,agent:t}),h=(m,x)=>{if(x==="nodeKeys"){let y=To(m.cert,o);return{path:x,data:y}}else return{path:x,data:Ie(m.lookup_path(p))}},{path:_,data:g}=h(f,i[u]);if(!g)typeof _=="string"?s.set(_,null):s.set(_.key,null);else switch(_){case"time":{s.set(_,Wr(g));break}case"canisterRanges":{s.set(_,xc(g));break}case"publicKey":{s.set(_,g);break}case"nodeKeys":{s.set(_,g);break}default:Yr(_)&&s.set(_.key,Cs(g,_.decodeStrategy))}}catch(d){if(d instanceof ot&&(d.hasCode(Rt)||d.hasCode(hr)))throw d;Yr(c)?s.set(c.key,null):s.set(c,null)}})()});return await Promise.all(a),s}function Rm(e,t){let r=t.toUint8Array();switch(e){case"time":return[G("time")];case"canisterRanges":return[G("canister_ranges"),r];case"publicKey":return[G("subnet"),r,G("public_key")];case"nodeKeys":return[G("subnet"),r,G("node")];default:if(Yr(e))if(typeof e.path=="string"||e.path instanceof Uint8Array){let n=typeof e.path=="string"?G(e.path):e.path;return[G("subnet"),r,n]}else return e.path}throw ae.fromCode(new Re(`Error while encoding your path for subnet status. Please ensure that your path ${e} was formatted correctly.`))}var Zr=BigInt(0),Ae=BigInt(1),wc=BigInt(2),vm=BigInt(8);function Im(e,t,r,n){let o=e.sqr(r),i=e.sqr(n),s=e.add(e.mul(t.a,o),i),a=e.add(e.ONE,e.mul(t.d,e.mul(o,i)));return e.eql(s,a)}function Am(e,t={}){let r=ws("edwards",e,t,t.FpFnLE),{Fp:n,Fn:o}=r,i=r.CURVE,{h:s}=i;Nr(t,{},{uvRatio:"function"});let a=wc<<BigInt(o.BYTES*8)-Ae,c=g=>n.create(g),u=t.uvRatio||((g,m)=>{try{return{isValid:!0,value:n.sqrt(n.div(g,m))}}catch{return{isValid:!1,value:Zr}}});if(!Im(n,i,i.Gx,i.Gy))throw new Error("bad curve params: generator point");function p(g,m,x=!1){let y=x?Ae:Zr;return gs("coordinate "+g,m,y,a),m}function d(g){if(!(g instanceof h))throw new Error("ExtendedPoint expected")}let l=Gr((g,m)=>{let{X:x,Y:y,Z:T}=g,O=g.is0();m==null&&(m=O?vm:n.inv(T));let R=c(x*m),E=c(y*m),v=n.mul(T,m);if(O)return{x:Zr,y:Ae};if(v!==Ae)throw new Error("invZ was invalid");return{x:R,y:E}}),f=Gr(g=>{let{a:m,d:x}=i;if(g.is0())throw new Error("bad point: ZERO");let{X:y,Y:T,Z:O,T:R}=g,E=c(y*y),v=c(T*T),w=c(O*O),I=c(w*w),V=c(E*m),C=c(w*c(V+v)),b=c(I+c(x*c(E*v)));if(C!==b)throw new Error("bad point: equation left != right (1)");let N=c(y*T),S=c(O*R);if(N!==S)throw new Error("bad point: equation left != right (2)");return!0});class h{constructor(m,x,y,T){this.X=p("x",m),this.Y=p("y",x),this.Z=p("z",y,!0),this.T=p("t",T),Object.freeze(this)}static CURVE(){return i}static fromAffine(m){if(m instanceof h)throw new Error("extended point not allowed");let{x,y}=m||{};return p("x",x),p("y",y),new h(x,y,Ae,c(x*y))}static fromBytes(m,x=!1){let y=n.BYTES,{a:T,d:O}=i;m=Wa(Hr(m,y,"point")),Gn(x,"zip215");let R=Wa(m),E=m[y-1];R[y-1]=E&-129;let v=wr(R),w=x?a:n.ORDER;gs("point.y",v,Zr,w);let I=c(v*v),V=c(I-Ae),C=c(O*I-T),{isValid:b,value:N}=u(V,C);if(!b)throw new Error("bad point: invalid y coordinate");let S=(N&Ae)===Ae,B=(E&128)!==0;if(!x&&N===Zr&&B)throw new Error("bad point: x=0 and x_0=1");return B!==S&&(N=c(-N)),h.fromAffine({x:N,y:v})}static fromHex(m,x=!1){return h.fromBytes(de("point",m),x)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(m=8,x=!0){return _.createCache(this,m),x||this.multiply(wc),this}assertValidity(){f(this)}equals(m){d(m);let{X:x,Y:y,Z:T}=this,{X:O,Y:R,Z:E}=m,v=c(x*E),w=c(O*T),I=c(y*E),V=c(R*T);return v===w&&I===V}is0(){return this.equals(h.ZERO)}negate(){return new h(c(-this.X),this.Y,this.Z,c(-this.T))}double(){let{a:m}=i,{X:x,Y:y,Z:T}=this,O=c(x*x),R=c(y*y),E=c(wc*c(T*T)),v=c(m*O),w=x+y,I=c(c(w*w)-O-R),V=v+R,C=V-E,b=v-R,N=c(I*C),S=c(V*b),B=c(I*b),k=c(C*V);return new h(N,S,k,B)}add(m){d(m);let{a:x,d:y}=i,{X:T,Y:O,Z:R,T:E}=this,{X:v,Y:w,Z:I,T:V}=m,C=c(T*v),b=c(O*w),N=c(E*y*V),S=c(R*I),B=c((T+O)*(v+w)-C-b),k=S-N,A=S+N,F=c(b-x*C),P=c(B*k),D=c(A*F),M=c(B*F),ee=c(k*A);return new h(P,D,ee,M)}subtract(m){return this.add(m.negate())}multiply(m){if(!o.isValidNot0(m))throw new Error("invalid scalar: expected 1 <= sc < curve.n");let{p:x,f:y}=_.cached(this,m,T=>ft(h,T));return ft(h,[x,y])[0]}multiplyUnsafe(m,x=h.ZERO){if(!o.isValid(m))throw new Error("invalid scalar: expected 0 <= sc < curve.n");return m===Zr?h.ZERO:this.is0()||m===Ae?this:_.unsafe(this,m,y=>ft(h,y),x)}isSmallOrder(){return this.multiplyUnsafe(s).is0()}isTorsionFree(){return _.unsafe(this,i.n).is0()}toAffine(m){return l(this,m)}clearCofactor(){return s===Ae?this:this.multiplyUnsafe(s)}toBytes(){let{x:m,y:x}=this.toAffine(),y=n.toBytes(x);return y[y.length-1]|=m&Ae?128:0,y}toHex(){return j(this.toBytes())}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get ex(){return this.X}get ey(){return this.Y}get ez(){return this.Z}get et(){return this.T}static normalizeZ(m){return ft(h,m)}static msm(m,x){return xo(h,o,m,x)}_setWindowSize(m){this.precompute(m)}toRawBytes(){return this.toBytes()}}h.BASE=new h(i.Gx,i.Gy,Ae,c(i.Gx*i.Gy)),h.ZERO=new h(Zr,Ae,Ae,Zr),h.Fp=n,h.Fn=o;let _=new go(h,o.BITS);return h.BASE.precompute(8),h}var Vs=class{constructor(t){this.ep=t}static fromBytes(t){_o()}static fromHex(t){_o()}get x(){return this.toAffine().x}get y(){return this.toAffine().y}clearCofactor(){return this}assertValidity(){this.ep.assertValidity()}toAffine(t){return this.ep.toAffine(t)}toHex(){return j(this.toBytes())}toString(){return this.toHex()}isTorsionFree(){return!0}isSmallOrder(){return!1}add(t){return this.assertSame(t),this.init(this.ep.add(t.ep))}subtract(t){return this.assertSame(t),this.init(this.ep.subtract(t.ep))}multiply(t){return this.init(this.ep.multiply(t))}multiplyUnsafe(t){return this.init(this.ep.multiplyUnsafe(t))}double(){return this.init(this.ep.double())}negate(){return this.init(this.ep.negate())}precompute(t,r){return this.init(this.ep.precompute(t,r))}toRawBytes(){return this.toBytes()}};function Sm(e,t,r={}){if(typeof t!="function")throw new Error('"hash" function param is required');Nr(r,{},{adjustScalarBytes:"function",randomBytes:"function",domain:"function",prehash:"function",mapToCurve:"function"});let{prehash:n}=r,{BASE:o,Fp:i,Fn:s}=e,a=r.randomBytes||to,c=r.adjustScalarBytes||(w=>w),u=r.domain||((w,I,V)=>{if(Gn(V,"phflag"),I.length||V)throw new Error("Contexts/pre-hash are not supported");return w});function p(w){return s.create(wr(w))}function d(w){let I=y.secretKey;w=de("private key",w,I);let V=de("hashed private key",t(w),2*I),C=c(V.slice(0,I)),b=V.slice(I,2*I),N=p(C);return{head:C,prefix:b,scalar:N}}function l(w){let{head:I,prefix:V,scalar:C}=d(w),b=o.multiply(C),N=b.toBytes();return{head:I,prefix:V,scalar:C,point:b,pointBytes:N}}function f(w){return l(w).pointBytes}function h(w=Uint8Array.of(),...I){let V=K(...I);return p(t(u(V,de("context",w),!!n)))}function _(w,I,V={}){w=de("message",w),n&&(w=n(w));let{prefix:C,scalar:b,pointBytes:N}=l(I),S=h(V.context,C,w),B=o.multiply(S).toBytes(),k=h(V.context,B,N,w),A=s.create(S+k*b);if(!s.isValid(A))throw new Error("sign failed: invalid s");let F=K(B,s.toBytes(A));return Hr(F,y.signature,"result")}let g={zip215:!0};function m(w,I,V,C=g){let{context:b,zip215:N}=C,S=y.signature;w=de("signature",w,S),I=de("message",I),V=de("publicKey",V,y.publicKey),N!==void 0&&Gn(N,"zip215"),n&&(I=n(I));let B=S/2,k=w.subarray(0,B),A=wr(w.subarray(B,S)),F,P,D;try{F=e.fromBytes(V,N),P=e.fromBytes(k,N),D=o.multiplyUnsafe(A)}catch{return!1}if(!N&&F.isSmallOrder())return!1;let M=h(b,P.toBytes(),F.toBytes(),I);return P.add(F.multiplyUnsafe(M)).subtract(D).clearCofactor().is0()}let x=i.BYTES,y={secretKey:x,publicKey:x,signature:2*x,seed:x};function T(w=a(y.seed)){return Hr(w,y.seed,"seed")}function O(w){let I=v.randomSecretKey(w);return{secretKey:I,publicKey:f(I)}}function R(w){return kt(w)&&w.length===s.BYTES}function E(w,I){try{return!!e.fromBytes(w,I)}catch{return!1}}let v={getExtendedPublicKey:l,randomSecretKey:T,isValidSecretKey:R,isValidPublicKey:E,toMontgomery(w){let{y:I}=e.fromBytes(w),V=y.publicKey,C=V===32;if(!C&&V!==57)throw new Error("only defined for 25519 and 448");let b=C?i.div(Ae+I,Ae-I):i.div(I-Ae,I+Ae);return i.toBytes(b)},toMontgomerySecret(w){let I=y.secretKey;Hr(w,I);let V=t(w.subarray(0,I));return c(V).subarray(0,I)},randomPrivateKey:T,precompute(w=8,I=e.BASE){return I.precompute(w,!1)}};return Object.freeze({keygen:O,getPublicKey:f,sign:_,verify:m,utils:v,Point:e,lengths:y})}function Cm(e){let t={a:e.a,d:e.d,p:e.Fp.ORDER,n:e.n,h:e.h,Gx:e.Gx,Gy:e.Gy},r=e.Fp,n=Ge(t.n,e.nBitLength,!0),o={Fp:r,Fn:n,uvRatio:e.uvRatio},i={randomBytes:e.randomBytes,adjustScalarBytes:e.adjustScalarBytes,domain:e.domain,prehash:e.prehash,mapToCurve:e.mapToCurve};return{CURVE:t,curveOpts:o,hash:e.hash,eddsaOpts:i}}function Vm(e,t){let r=t.Point;return Object.assign({},t,{ExtendedPoint:r,CURVE:e,nBitLength:r.Fn.BITS,nByteLength:r.Fn.BYTES})}function Nd(e){let{CURVE:t,curveOpts:r,hash:n,eddsaOpts:o}=Cm(e),i=Am(t,r),s=Sm(i,n,o);return Vm(e,s)}var Fm=BigInt(0),Ir=BigInt(1),Od=BigInt(2),Lx=BigInt(3),Pm=BigInt(5),Bm=BigInt(8),No=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),yi={p:No,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Bm,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Dm(e){let t=BigInt(10),r=BigInt(20),n=BigInt(40),o=BigInt(80),i=No,a=e*e%i*e%i,c=Bt(a,Od,i)*a%i,u=Bt(c,Ir,i)*e%i,p=Bt(u,Pm,i)*u%i,d=Bt(p,t,i)*p%i,l=Bt(d,r,i)*d%i,f=Bt(l,n,i)*l%i,h=Bt(f,o,i)*f%i,_=Bt(h,o,i)*f%i,g=Bt(_,t,i)*p%i;return{pow_p_5_8:Bt(g,Od,i)*e%i,b2:a}}function Um(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var Tc=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function Ec(e,t){let r=No,n=ce(t*t*t,r),o=ce(n*n*t,r),i=Dm(e*o).pow_p_5_8,s=ce(e*n*i,r),a=ce(t*s*s,r),c=s,u=ce(s*Tc,r),p=a===e,d=a===ce(-e,r),l=a===ce(-e*Tc,r);return p&&(s=c),(d||l)&&(s=u),Or(s,r)&&(s=ce(-s,r)),{isValid:p||d,value:s}}var Xr=Ge(yi.p,{isLE:!0}),km=Ge(yi.n,{isLE:!0}),Lm={...yi,Fp:Xr,hash:Hl,adjustScalarBytes:Um,uvRatio:Ec},We=Nd(Lm);var Nc=Tc,qm=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Mm=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),jm=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Km=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Ed=e=>Ec(Ir,e),Hm=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Oc=e=>We.Point.Fp.create(wr(e)&Hm);function Rd(e){let{d:t}=yi,r=No,n=m=>Xr.create(m),o=n(Nc*e*e),i=n((o+Ir)*jm),s=BigInt(-1),a=n((s-t*o)*n(o+t)),{isValid:c,value:u}=Ec(i,a),p=n(u*e);Or(p,r)||(p=n(-p)),c||(u=p),c||(s=o);let d=n(s*(o-Ir)*Km-a),l=u*u,f=n((u+u)*a),h=n(d*qm),_=n(Ir-l),g=n(Ir+l);return new We.Point(n(f*g),n(_*h),n(h*g),n(f*_))}function Gm(e){he(e,64);let t=Oc(e.subarray(0,32)),r=Rd(t),n=Oc(e.subarray(32,64)),o=Rd(n);return new Ar(r.add(o))}var Ar=class e extends Vs{constructor(t){super(t)}static fromAffine(t){return new e(We.Point.fromAffine(t))}assertSame(t){if(!(t instanceof e))throw new Error("RistrettoPoint expected")}init(t){return new e(t)}static hashToCurve(t){return Gm(de("ristrettoHash",t,64))}static fromBytes(t){he(t,32);let{a:r,d:n}=yi,o=No,i=T=>Xr.create(T),s=Oc(t);if(!Du(Xr.toBytes(s),t)||Or(s,o))throw new Error("invalid ristretto255 encoding 1");let a=i(s*s),c=i(Ir+r*a),u=i(Ir-r*a),p=i(c*c),d=i(u*u),l=i(r*n*p-d),{isValid:f,value:h}=Ed(i(l*d)),_=i(h*u),g=i(h*_*l),m=i((s+s)*_);Or(m,o)&&(m=i(-m));let x=i(c*g),y=i(m*x);if(!f||Or(y,o)||x===Fm)throw new Error("invalid ristretto255 encoding 2");return new e(new We.Point(m,x,Ir,y))}static fromHex(t){return e.fromBytes(de("ristrettoHex",t,32))}static msm(t,r){return xo(e,We.Point.Fn,t,r)}toBytes(){let{X:t,Y:r,Z:n,T:o}=this.ep,i=No,s=g=>Xr.create(g),a=s(s(n+r)*s(n-r)),c=s(t*r),u=s(c*c),{value:p}=Ed(s(a*u)),d=s(p*a),l=s(p*c),f=s(d*l*o),h;if(Or(o*f,i)){let g=s(r*Nc),m=s(t*Nc);t=g,r=m,h=s(d*Mm)}else h=l;Or(t*f,i)&&(r=s(-r));let _=s((n-r)*h);return Or(_,i)&&(_=s(-_)),Xr.toBytes(_)}equals(t){this.assertSame(t);let{X:r,Y:n}=this.ep,{X:o,Y:i}=t.ep,s=u=>Xr.create(u),a=s(r*i)===s(n*o),c=s(n*i)===s(r*o);return a||c}is0(){return this.equals(e.ZERO)}};Ar.BASE=new Ar(We.Point.BASE);Ar.ZERO=new Ar(We.Point.ZERO);Ar.Fp=Xr;Ar.Fn=km;var vd,Id,Fs=class{static{vd=Symbol.iterator,Id=Symbol.toStringTag}#e;#t;constructor(t={}){this[vd]=this.entries.bind(this),this[Id]="ExpirableMap";let{source:r=[],expirationTime:n=600*1e3}=t,o=Date.now();this.#e=new Map([...r].map(([i,s])=>[i,{value:s,timestamp:o}])),this.#t=n}prune(){let t=Date.now();for(let[r,n]of this.#e.entries())t-n.timestamp>this.#t&&this.#e.delete(r);return this}set(t,r){this.prune();let n={value:r,timestamp:Date.now()};return this.#e.set(t,n),this}get(t){let r=this.#e.get(t);if(r!==void 0){if(Date.now()-r.timestamp>this.#t){this.#e.delete(t);return}return r.value}}clear(){this.#e.clear()}entries(){let t=this.#e.entries();return function*(){for(let[n,o]of t)yield[n,o.value]}()}values(){let t=this.#e.values();return function*(){for(let n of t)yield n.value}()}keys(){return this.#e.keys()}forEach(t,r){for(let[n,o]of this.#e.entries())t.call(r,o.value,n,this)}has(t){return this.#e.has(t)}delete(t){return this.#e.delete(t)}get size(){return this.#e.size}};var Ad=e=>{if(e<=127)return 1;if(e<=255)return 2;if(e<=65535)return 3;if(e<=16777215)return 4;throw z.fromCode(new Lo("Length too long (> 4 bytes)"))},Sd=(e,t,r)=>{if(r<=127)return e[t]=r,1;if(r<=255)return e[t]=129,e[t+1]=r,2;if(r<=65535)return e[t]=130,e[t+1]=r>>8,e[t+2]=r,3;if(r<=16777215)return e[t]=131,e[t+1]=r>>16,e[t+2]=r>>8,e[t+3]=r,4;throw z.fromCode(new Lo("Length too long (> 4 bytes)"))},Rc=(e,t)=>{if(e[t]<128)return 1;if(e[t]===128)throw z.fromCode(new It("Invalid length 0"));if(e[t]===129)return 2;if(e[t]===130)return 3;if(e[t]===131)return 4;throw z.fromCode(new It("Length too long (> 4 bytes)"))},$m=(e,t)=>{let r=Rc(e,t);if(r===1)return e[t];if(r===2)return e[t+1];if(r===3)return(e[t+1]<<8)+e[t+2];if(r===4)return(e[t+1]<<16)+(e[t+2]<<8)+e[t+3];throw z.fromCode(new It("Length too long (> 4 bytes)"))},gi=Uint8Array.from([48,12,6,10,43,6,1,4,1,131,184,67,1,1]),Yn=Uint8Array.from([48,5,6,3,43,101,112]),Hx=Uint8Array.from([48,16,6,7,42,134,72,206,61,2,1,6,5,43,129,4,0,10]),Gx=Uint8Array.from([48,29,6,13,43,6,1,4,1,130,220,124,5,3,1,2,1,6,12,43,6,1,4,1,130,220,124,5,3,2,1]);function Zn(e,t){let r=2+Ad(e.byteLength+1),n=t.byteLength+r+e.byteLength,o=0,i=new Uint8Array(1+Ad(n)+n);return i[o++]=48,o+=Sd(i,o,n),i.set(t,o),o+=t.byteLength,i[o++]=3,o+=Sd(i,o,e.byteLength+1),i[o++]=0,i.set(new Uint8Array(e),o),i}var Xn=(e,t)=>{let r=0,n=(a,c)=>{if(o[r++]!==a)throw z.fromCode(new It(`Expected ${c} at offset ${r}`))},o=new Uint8Array(e);if(n(48,"sequence"),r+=Rc(o,r),!jn(o.slice(r,r+t.byteLength),t))throw z.fromCode(new It("Not the expected OID."));r+=t.byteLength,n(3,"bit string");let i=$m(o,r)-1;r+=Rc(o,r),n(0,"0 padding");let s=o.slice(r);if(i!==s.length)throw z.fromCode(new Ki(i,s.length));return s};var Ps=class e{static from(t){return this.fromDer(t.toDer())}static fromRaw(t){return new e(t)}static fromDer(t){return new e(this.derDecode(t))}static{this.RAW_KEY_LENGTH=32}static derEncode(t){return Zn(t,Yn)}static derDecode(t){let r=Xn(t,Yn);if(r.length!==this.RAW_KEY_LENGTH)throw z.fromCode(new It("An Ed25519 public key must be exactly 32 bytes long"));return r}#e;get rawKey(){return this.#e}#t;get derKey(){return this.#t}constructor(t){if(t.byteLength!==e.RAW_KEY_LENGTH)throw z.fromCode(new It("An Ed25519 public key must be exactly 32 bytes long"));this.#e=t,this.#t=e.derEncode(t)}toDer(){return this.derKey}toRaw(){return this.rawKey}};var vc=class{constructor(){this.observers=[]}subscribe(t){this.observers.push(t)}unsubscribe(t){this.observers=this.observers.filter(r=>r!==t)}notify(t,...r){this.observers.forEach(n=>n(t,...r))}},Bs=class extends vc{constructor(){super()}print(t,...r){this.notify({message:t,level:"info"},...r)}warn(t,...r){this.notify({message:t,level:"warn"},...r)}error(t,r,...n){this.notify({message:t,level:"error",error:r},...n)}};var Ds=class e{#e;#t;#r;#i;#a;#d;#n;#o;#c=0;static{this.default={initialInterval:500,randomizationFactor:.5,multiplier:1.5,maxInterval:6e4,maxElapsedTime:9e5,maxIterations:10,date:Date}}constructor(t=e.default){let{initialInterval:r=500,randomizationFactor:n=.5,multiplier:o=1.5,maxInterval:i=6e4,maxElapsedTime:s=9e5,maxIterations:a=10,date:c=Date}=t;this.#e=r,this.#t=n,this.#r=o,this.#i=i,this.#o=c,this.#a=c.now(),this.#d=s,this.#n=a}get ellapsedTimeInMsec(){return this.#o.now()-this.#a}get currentInterval(){return this.#e}get count(){return this.#c}get randomValueFromInterval(){let t=this.#t*this.#e,r=this.#e-t,n=this.#e+t;return Math.random()*(n-r)+r}incrementCurrentInterval(){return this.#e=Math.min(this.#e*this.#r,this.#i),this.#c++,this.#e}next(){return this.ellapsedTimeInMsec>=this.#d||this.#c>=this.#n?null:(this.incrementCurrentInterval(),this.randomValueFromInterval)}};var $t;(function(e){e.Received="received",e.Processing="processing",e.Replied="replied",e.Rejected="rejected",e.Unknown="unknown",e.Done="done"})($t||($t={}));var Sc=60*1e3,Jm=1e6,Wm=0,zm="308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d9685f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484b01291091c5f87b98883463f98091a0baaae";var Ym="ic0.app",Zm=".ic0.app",Xm="icp0.io",Qm=".icp0.io",e_="icp-api.io",t_=".icp-api.io",Ic=200,r_=202,n_=404;function o_(){let e;if(typeof window<"u")if(window.fetch)e=window.fetch.bind(window);else throw _e.fromCode(new oo("Fetch implementation was not available. You appear to be in a browser context, but window.fetch was not present."));else if(typeof global<"u")if(global.fetch)e=global.fetch.bind(global);else throw _e.fromCode(new oo("Fetch implementation was not available. You appear to be in a Node.js context, but global.fetch was not available."));else typeof self<"u"&&self.fetch&&(e=self.fetch.bind(self));if(e)return e;throw _e.fromCode(new oo("Fetch implementation was not available. Please provide fetch to the HttpAgent constructor, or ensure it is available in the window or global context."))}function i_(e){let t;if(e!==void 0)!e.match(/^[a-z]+:/)&&typeof window<"u"?t=new URL(window.location.protocol+"//"+e):t=new URL(e);else{let r=["ic0.app","icp0.io","127.0.0.1","localhost"],n=[".github.dev",".gitpod.io"],o=typeof window<"u"?window.location:void 0,i=o?.hostname,s;i&&typeof i=="string"&&(n.some(a=>i.endsWith(a))?s=i:s=r.find(a=>i.endsWith(a))),o&&s?t=new URL(`${o.protocol}//${s}${o.port?":"+o.port:""}`):t=new URL("https://icp-api.io")}return t.toString()}var Sr=class e{#e;#t;#r;#i;#a;#d;#n;#o;#c;#w;#s;#u;#f;#l;get#E(){return this.#l*Sc}#h;#m;#_;#y;constructor(t={}){this.#e=null,this.#t=!1,this.#r=Wm,this.#i=!1,this.#a=null,this.#d=!1,this._isAgent=!0,this.config={},this.log=new Bs,this.#h=[],this.#m=[],this.#_=new Fs({expirationTime:5*Sc}),this.#y=!0,this.#T=(o,i)=>{if(this.#y===!1)return o;let{status:s,signatures:a=[],requestId:c}=o;for(let u of a){let{timestamp:p,identity:d}=u,l=L.fromUint8Array(d).toText(),f;if(s===Pr.Replied){let{reply:x}=o;f=Zo({status:s,reply:x,timestamp:BigInt(p),request_id:c})}else if(s===Pr.Rejected){let{reject_code:x,reject_message:y,error_code:T}=o;f=Zo({status:s,reject_code:x,reject_message:y,error_code:T,timestamp:BigInt(p),request_id:c})}else throw ae.fromCode(new Re(`Unknown status: ${s}`));let h=K(Da,f),_=i.get(l);if(!_)throw re.fromCode(new es);let g=Ps.fromDer(_).rawKey;if(!We.verify(u.signature,h,g))throw Me.fromCode(new ts(l))}return o},this.config=t,this.#o=t.fetch||o_()||fetch.bind(global),this.#c=t.fetchOptions,this.#w=t.callOptions,this.#t=t.shouldFetchRootKey??!1,this.#d=t.shouldSyncTime??!1,t.rootKey?this.rootKey=t.rootKey:this.#t?this.rootKey=null:this.rootKey=Ee(zm);let r=i_(t.host);this.host=new URL(r),t.verifyQuerySignatures!==void 0&&(this.#y=t.verifyQuerySignatures),this.#u=t.retryTimes??3;let n=()=>new Ds({maxIterations:this.#u});if(this.#f=t.backoffStrategy||n,this.host.hostname.endsWith(Zm)?this.host.hostname=Ym:this.host.hostname.endsWith(Qm)?this.host.hostname=Xm:this.host.hostname.endsWith(t_)&&(this.host.hostname=e_),t.credentials){let{name:o,password:i}=t.credentials;this.#s=`${o}${i?":"+i:""}`}if(this.#n=Promise.resolve(t.identity||new it),t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes>5)throw z.fromCode(new qt("The maximum ingress expiry time is 5 minutes.",t.ingressExpiryInMinutes));if(t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes<=0)throw z.fromCode(new qt("Ingress expiry time must be greater than 0.",t.ingressExpiryInMinutes));this.#l=t.ingressExpiryInMinutes||5,this.addTransform("update",Ka(ii)),t.useQueryNonces&&this.addTransform("query",Ka(ii)),t.logToConsole&&this.log.subscribe(o=>{o.level==="error"?console.error(o.message):o.level==="warn"?console.warn(o.message):console.log(o.message)})}static createSync(t={}){return new this({...t})}static async create(t={}){let r=e.createSync(t);return await r.#p(),r}static async from(t){try{return"config"in t?await e.create(t.config):await e.create({fetch:t._fetch,fetchOptions:t._fetchOptions,callOptions:t._callOptions,host:t._host.toString(),identity:t._identity??void 0})}catch{throw z.fromCode(new Zi)}}isLocal(){let t=this.host.hostname;return t==="127.0.0.1"||t.endsWith("127.0.0.1")}addTransform(t,r,n=r.priority||0){if(t==="update"){let o=this.#m.findIndex(i=>(i.priority||0)<n);this.#m.splice(o>=0?o:this.#m.length,0,Object.assign(r,{priority:n}))}else if(t==="query"){let o=this.#h.findIndex(i=>(i.priority||0)<n);this.#h.splice(o>=0?o:this.#h.length,0,Object.assign(r,{priority:n}))}}async getPrincipal(){if(!this.#n)throw _e.fromCode(new Lr);return(await this.#n).getPrincipal()}async call(t,r,n){let o=r.callSync??!0,i=await(n??this.#n);if(!i)throw _e.fromCode(new Lr);let s=L.from(t),a=r.effectiveCanisterId?L.from(r.effectiveCanisterId):s;await this.#p(a);let c=i.getPrincipal(),u=Ac(this.#l,this.#r),p={request_type:ms.Call,canister_id:s,method_name:r.methodName,arg:r.arg,sender:c,ingress_expiry:u},d=await this._transform({request:{body:null,method:"POST",headers:{"Content-Type":"application/cbor",...this.#s?{Authorization:"Basic "+btoa(this.#s)}:{}}},endpoint:br.Call,body:p}),l;r?.nonce?l=f(r.nonce):d.body.nonce?l=f(d.body.nonce):l=void 0,p.nonce=l;function f(m){return Object.assign(m,{__nonce__:void 0})}d=await i.transformRequest(d);let h=ni(d.body),_=this.#f(),g=gr(p);try{let y=o?()=>{let E=new URL(`/api/v4/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${E.pathname}" with request:`,d),this.#o(E,{...this.#w,...d.request,body:h})}:()=>{let E=new URL(`/api/v2/canister/${a.toText()}/call`,this.host);return this.log.print(`fetching "${E.pathname}" with request:`,d),this.#o(E,{...this.#w,...d.request,body:h})},{responseBodyBytes:T,...O}=await this.#g({requestFn:y,backoff:_,tries:0}),R=T.byteLength>0?Ke(T):null;return{requestId:g,response:{...O,body:R},requestDetails:p}}catch(m){let x;if(m instanceof ot){if(m.hasCode(Mo))return this.log.warn("v4 api not supported. Fall back to v2"),this.call(t,{...r,callSync:!1},n);if(m.hasCode(qt)&&!this.#i)return await this.syncTime(s),this.call(s,r,n);m.code.requestContext={requestId:g,senderPubKey:d.body.sender_pubkey,senderSignature:d.body.sender_sig,ingressExpiry:d.body.content.ingress_expiry},x=m}else x=ae.fromCode(new Re(m));throw this.log.error(`Error while making call: ${x.message}`,x),x}}async#b(t){let{ecid:r,transformedRequest:n,body:o,requestId:i,backoff:s,tries:a}=t,c=a===0?0:s.next(),u=new URL(`/api/v3/canister/${r.toString()}/query`,this.host);if(this.log.print(`fetching "${u.pathname}" with tries:`,{tries:a,backoff:s,delay:c}),c===null)throw ae.fromCode(new Un(`Backoff strategy exhausted after ${a} attempts.`,i));c>0&&await new Promise(m=>setTimeout(m,c));let p;try{this.log.print(`fetching "${u.pathname}" with request:`,n),p=await this.#o(u,{...this.#c,...n.request,body:o})}catch(m){if(a<this.#u)return this.log.warn(`Caught exception while attempting to make query:
|
|
53
53
|
${m}
|
|
54
|
-
Retrying query.`),await this.#b({...t,tries:a+1});throw
|
|
54
|
+
Retrying query.`),await this.#b({...t,tries:a+1});throw ko.fromCode(new jo(m))}let d=Ha(p.headers);if(p.status!==Ic){let m=await p.text();if(Cd(m))throw z.fromCode(new qt(m,this.#l));if(a<this.#u)return await this.#b({...t,tries:a+1});throw re.fromCode(new qo(p.status,p.statusText,d,m))}let f={...Ke(uo(await p.arrayBuffer())),httpDetails:{ok:p.ok,status:p.status,statusText:p.statusText,headers:d},requestId:i};if(!this.#y)return f;let h=f.signatures?.[0]?.timestamp;if(!h)throw re.fromCode(new Xi("Timestamp not found in query response. This suggests a malformed or malicious response."));let _=Number(BigInt(h)/BigInt(Jm));if(Date.now()+this.#r-_>this.#E){if(a<this.#u)return this.log.warn("Timestamp is older than the max ingress expiry. Retrying query.",{requestId:i,signatureTimestampMs:_}),await this.syncTime(r),await this.#b({...t,tries:a+1});throw Me.fromCode(new $i(this.#l,i,a))}return f}async#g(t){let{requestFn:r,backoff:n,tries:o}=t,i=o===0?0:n.next();if(i===null)throw re.fromCode(new Un(`Retry strategy exhausted after ${o} attempts.`));i>0&&await new Promise(p=>setTimeout(p,i));let s,a=new Uint8Array;try{s=await r(),s.status===Ic&&(a=uo(await s.clone().arrayBuffer()))}catch(p){if(o<this.#u)return this.log.warn(`Caught exception while attempting to make request:
|
|
55
55
|
${p}
|
|
56
|
-
Retrying request.`),await this.#g({requestFn:r,backoff:n,tries:o+1});throw Eo.fromCode(new Ao(p))}let c=ka(s.headers);if(s.status===Tc||s.status===jm)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let u=await s.text();if(s.status===Km&&s.url.includes("api/v4"))throw ne.fromCode(new vo);if(Nd(u))throw Y.fromCode(new Ft(u,this.#l));if(o<this.#u)return await this.#g({requestFn:r,backoff:n,tries:o+1});throw ne.fromCode(new Io(s.status,s.statusText,c,u))}async query(t,r,n){let o=this.#f(),i=r.effectiveCanisterId?k.from(r.effectiveCanisterId):k.from(t);await this.#p(i),this.log.print(`ecid ${i.toString()}`),this.log.print(`canisterId ${t.toString()}`);let s,a=await(n??this.#n);if(!a)throw ye.fromCode(new Pr);let c=k.from(t),u=a.getPrincipal(),p=Nc(this.#l,this.#r),d={request_type:Pn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:u,ingress_expiry:p},l=ur(d);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#s?{Authorization:"Basic "+btoa(this.#s)}:{}}},endpoint:pr.Query,body:d}),s=await a.transformRequest(s);let f=Ho(s.body),h={canister:c.toText(),ecid:i,transformedRequest:s,body:f,requestId:l,backoff:o,tries:0},_=async()=>{let m=await this.#b(h);return{requestDetails:d,...m}},g=async()=>{let m=this.#_.get(i.toString());if(m)return m;await this.fetchSubnetKeys(i.toString());let x=this.#_.get(i.toString());if(!x)throw Le.fromCode(new Li);return x};try{if(!this.#y)return await _();let[m,x]=await Promise.all([_(),g()]);try{return this.#T(m,x)}catch{this.log.warn("Query response verification failed. Retrying with fresh subnet keys."),this.#_.delete(i.toString());let y=await g();return this.#T(m,y)}}catch(m){let x;if(m instanceof nt){if(m.hasCode(Ft)&&!this.#i)return await this.syncTime(i),this.query(t,r,n);m.code.requestContext={requestId:l,senderPubKey:s.body.sender_pubkey,senderSignature:s.body.sender_sig,ingressExpiry:s.body.content.ingress_expiry},x=m}else x=ce.fromCode(new Re(m));throw this.log.error(`Error while making query: ${x.message}`,x),x}}#T;async createReadStateRequest(t,r){await this.#p();let n=await(r??this.#n);if(!n)throw ye.fromCode(new Pr);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#s?{Authorization:"Basic "+btoa(this.#s)}:{}}},endpoint:pr.ReadState,body:{request_type:Pn.ReadState,paths:t.paths,sender:o,ingress_expiry:Nc(this.#l,this.#r)}});return n.transformRequest(i)}async readState(t,r,n,o){await this.#x();let i=k.from(t);function s(p){for(let d of p.paths){let[l,f]=d,h=new TextEncoder().encode("request_status");if(Cn(l,h))return f}}let a,c;if(o)a=o;else{c=s(r);let p=await this.#n;if(!p)throw ye.fromCode(new Pr);a=await this.createReadStateRequest(r,p)}let u=new URL(`/api/v3/canister/${i.toString()}/read_state`,this.host);return await this.#N(u,{canisterId:i},a,c)}async readSubnetState(t,r){await this.#x();let n=k.from(t),o=new URL(`/api/v3/subnet/${n.toString()}/read_state`,this.host),i=await this.createReadStateRequest(r,this.#n??void 0);return await this.#N(o,{subnetId:n},i)}async#N(t,r,n,o){let i=this.#f();try{let{responseBodyBytes:s}=await this.#g({requestFn:()=>this.#o(t,{...this.#c,...n.request,body:Ho(n.body)}),backoff:i,tries:0});return Me(s)}catch(s){let a;if(s instanceof nt){if(s.hasCode(Ft)&&!this.#i){if("canisterId"in r)await this.syncTime(r.canisterId);else if("subnetId"in r)await this.syncTimeWithSubnet(r.subnetId);else throw ct;return await this.#N(t,r,n,o)}s.code.requestContext={requestId:o??ur(n),senderPubKey:n.body.sender_pubkey,senderSignature:n.body.sender_sig,ingressExpiry:n.body.content.ingress_expiry},a=s}else a=ce.fromCode(new Re(s));throw this.log.error(`Error while making read state: ${a.message}`,a),a}}parseTimeFromResponse(t){let r;if(t.certificate){let n=Me(t.certificate);if(n&&"tree"in n)r=n.tree;else throw ne.fromCode(new Vr("Could not decode time from response"));let o=xr(["time"],r);if(o.status!==Be.Found)throw ne.fromCode(new bt("Time was not found in the response or was not in its expected format.",o.status));if(!(o.value instanceof Uint8Array)&&!ArrayBuffer.isView(o))throw ne.fromCode(new Ri("Time was not in its expected format."));let i=jr(o.value);return this.log.print("Time from response:",i),this.log.print("Time from response in milliseconds:",i.getTime()),i.getTime()}else this.log.warn("No certificate found in response");return 0}async syncTime(t){this.#a=this.#a??(async()=>{await this.#x();let r=Date.now();try{t||this.log.print("Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai");let n=t??k.from("ryjl3-tyaaa-aaaaa-aaaba-cai"),o=e.createSync({identity:new ot,host:this.host.toString(),fetch:this.#o,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),i=await Promise.all(Array(3).fill(null).map(async()=>{let a=(await fd({canisterId:n,agent:o,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(a instanceof Date)return a.getTime()},[]));this.#O(r,i)}catch(n){let o=n instanceof nt?n:ce.fromCode(new Re(n));throw this.log.error("Caught exception while attempting to sync time",o),o}})(),await this.#a.finally(()=>{this.#a=null})}async syncTimeWithSubnet(t){await this.#x();let r=Date.now();try{let n=e.createSync({identity:new ot,host:this.host.toString(),fetch:this.#o,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),o=await Promise.all(Array(3).fill(null).map(async()=>{let s=(await hd({subnetId:t,agent:n,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(s instanceof Date)return s.getTime()},[]));this.#O(r,o)}catch(n){let o=n instanceof nt?n:ce.fromCode(new Re(n));throw this.log.error("Caught exception while attempting to sync time with subnet",o),o}}#O(t,r){let n=r.reduce((o,i)=>typeof i=="number"&&i>o?i:o,0);n>0&&(this.#r=n-t,this.#i=!0,this.log.notify({message:`Syncing time: offset of ${this.#r}`,level:"info"}))}async status(){let t=this.#s?{Authorization:"Basic "+btoa(this.#s)}:{},r=new URL("/api/v2/status",this.host);this.log.print(`fetching "${r.pathname}"`);let n=this.#f(),{responseBodyBytes:o}=await this.#g({backoff:n,requestFn:()=>this.#o(r,{headers:t,...this.#c}),tries:0});return Me(o)}async fetchRootKey(){return this.#e=this.#e??(async()=>{let t=await this.status();return this.rootKey=t.root_key,this.rootKey})(),await this.#e.finally(()=>{this.#e=null})}async#p(t){await Promise.all([this.#x(),this.#R(t)])}async#x(){if(!this.rootKey)if(this.rootKey===null&&this.host.toString()!=="https://icp-api.io"&&this.#t)await this.fetchRootKey();else throw ye.fromCode(new at(this.#t))}async#R(t){this.#d&&!this.hasSyncedTime()&&await this.syncTime(t)}invalidateIdentity(){this.#n=null}replaceIdentity(t){this.#n=Promise.resolve(t)}async fetchSubnetKeys(t){let r=k.from(t);await this.#p(r);let n=this.rootKey,o=await this.readState(r,{paths:[[$("subnet")]]}),i=await st.create({certificate:o.certificate,rootKey:n,principal:{canisterId:r},agent:this});if(!i.cert.delegation){let c=k.selfAuthenticating(n);if(!pc({canisterId:r,subnetId:c,tree:i.cert.tree}))throw Le.fromCode(new En(r,c))}let s=hc(i.cert,n),a=uo(i.cert,s);return this.#_.set(r.toText(),a),a}async getSubnetIdFromCanister(t){let r=k.from(t);await this.#p(r);let n=await this.readState(r,{paths:[[$("time")]]}),o=await st.create({certificate:n.certificate,rootKey:this.rootKey,principal:{canisterId:r},agent:this});return hc(o.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===pr.Call)for(let n of this.#m)r=r.then(o=>n(o).then(i=>i||o));else for(let n of this.#h)r=r.then(o=>n(o).then(i=>i||o));return r}getTimeDiffMsecs(){return this.#r}hasSyncedTime(){return this.#i}};function Nc(e,t){let r=e*Oc;return no.fromDeltaInMilliseconds(r,t)}function Nd(e){return e.includes("Invalid request expiry: ")}var Gm=300*1e3;function Od(){return Zm(Wm(Jm(),1e3),Ym(1e3,1.2),zm(Gm))}function Jm(){let e=!0;return async()=>e?(e=!1,!0):!1}function Wm(e,t){return async(r,n,o)=>{if(await e(r,n,o))return new Promise(i=>setTimeout(i,t))}}function zm(e){let t=Date.now()+e;return async(r,n,o)=>{if(Date.now()>t)throw ne.fromCode(new Rn(`Request timed out after ${e} msec`,n,o))}}function Ym(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function Zm(...e){return async(t,r,n)=>{for(let o of e)await o(t,r,n)}}var Rd={preSignReadStateRequest:!1};function Id(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ec(e,t){return e!==null&&typeof e=="object"&&Id(e,t)}function Qm(e,t){return Id(e,t)&&typeof e[t]=="function"}function Ed(e){return Ec(e,"body")&&Ec(e.body,"content")&&e.body.content.request_type===Pn.ReadState&&Ec(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&Qm(e.body.content.ingress_expiry,"toHash")}async function Rc(e,t,r,n={}){let o=[$("request_status"),r],i,s;if(n.preSignReadStateRequest??!1?(s=await e_({paths:[o],agent:e,pollingOptions:n}),i=await e.readState(t,{paths:[o]},void 0,s)):i=await e.readState(t,{paths:[o]}),e.rootKey==null)throw ye.fromCode(new at);let c=await st.create({certificate:i.certificate,rootKey:e.rootKey,principal:{canisterId:t},blsVerify:n.blsVerify,agent:e}),u=ve(c.lookup_path([...o,$("status")])),p;switch(typeof u>"u"?p=kt.Unknown:p=new TextDecoder().decode(u),p){case kt.Replied:return{reply:ve(c.lookup_path([...o,"reply"])),certificate:c};case kt.Received:case kt.Unknown:case kt.Processing:{let d=n.strategy??Od();return await d(t,r,p),Rc(e,t,r,{...n,strategy:d,request:s})}case kt.Rejected:{let d=new Uint8Array(ve(c.lookup_path([...o,"reject_code"])))[0],l=new TextDecoder().decode(ve(c.lookup_path([...o,"reject_message"]))),f=ve(c.lookup_path([...o,"error_code"])),h=f?new TextDecoder().decode(f):void 0;throw Fr.fromCode(new Gn(r,d,l,h))}case kt.Done:throw ce.fromCode(new Bi(r))}throw ct}async function e_(e){let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Ed(n.request))return n.request;let o=await r.createReadStateRequest?.({paths:t},void 0);if(!Ed(o))throw Y.fromCode(new ji(o));return o}var ft=Symbol.for("ic-agent-metadata"),ho=class e{static agentOf(t){return t[ft].config.agent}static interfaceOf(t){return t[ft].service}static canisterIdOf(t){return k.from(t[ft].config.canisterId)}static createActorClass(t,r){let n=t({IDL:Sn});class o extends e{constructor(s){if(!s.canisterId)throw Y.fromCode(new So(s.canisterId));let a=typeof s.canisterId=="string"?k.fromText(s.canisterId):s.canisterId;super({config:{...vd,...s,canisterId:a},service:n});for(let[c,u]of n._fields)r?.httpDetails&&u.annotations.push(Ic),r?.certificate&&u.annotations.push(Ad),this[c]=r_(this,c,u,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw Y.fromCode(new So(r.canisterId));return new(this.createActorClass(t))(r)}static createActorWithHttpDetails(t,r){return new(this.createActorClass(t,{httpDetails:!0}))(r)}static createActorWithExtendedDetails(t,r,n={httpDetails:!0,certificate:!0}){return new(this.createActorClass(t,n))(r)}constructor(t){this[ft]=Object.freeze(t)}};function fo(e,t){let r=Sn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var vd={pollingOptions:Rd},Ic="http-details",Ad="certificate";function r_(e,t,r,n){let o;r.annotations.includes("query")||r.annotations.includes("composite_query")?o=async(s,...a)=>{s={...s,...e[ft].config.queryTransform?.(t,a,{...e[ft].config,...s})};let c=s.agent||e[ft].config.agent||new Tr,u=k.from(s.canisterId||e[ft].config.canisterId),p=Sn.encode(r.argTypes,a),d=await c.query(u,{methodName:t,arg:p,effectiveCanisterId:s.effectiveCanisterId}),l={...d.httpDetails,requestDetails:d.requestDetails};switch(d.status){case vr.Rejected:{let f=new Pi(d.requestId,d.reject_code,d.reject_message,d.error_code,d.signatures);throw f.callContext={canisterId:u,methodName:t,httpDetails:l},Fr.fromCode(f)}case vr.Replied:return r.annotations.includes(Ic)?{httpDetails:l,result:fo(r.retTypes,d.reply.arg)}:fo(r.retTypes,d.reply.arg)}}:o=async(s,...a)=>{s={...s,...e[ft].config.callTransform?.(t,a,{...e[ft].config,...s})};let c=s.agent||e[ft].config.agent||Tr.createSync(),{canisterId:u,effectiveCanisterId:p,pollingOptions:d}={...vd,...e[ft].config,...s},l=k.from(u),f=p!==void 0?k.from(p):l,h=Sn.encode(r.argTypes,a),{requestId:_,response:g,requestDetails:m}=await c.call(l,{methodName:t,arg:h,effectiveCanisterId:f,nonce:s.nonce}),x,y;if(yl(g.body)){if(c.rootKey==null)throw ye.fromCode(new at);let R=g.body.certificate;y=await st.create({certificate:R,rootKey:c.rootKey,principal:{canisterId:f},blsVerify:n,agent:c});let v=[$("request_status"),_];switch(new TextDecoder().decode(ve(y.lookup_path([...v,"status"])))){case"replied":x=ve(y.lookup_path([...v,"reply"]));break;case"rejected":{let I=new Uint8Array(ve(y.lookup_path([...v,"reject_code"])))[0],F=new TextDecoder().decode(ve(y.lookup_path([...v,"reject_message"]))),S=ve(y.lookup_path([...v,"error_code"])),b=S?new TextDecoder().decode(S):void 0,N=new Gn(_,I,F,b);throw N.callContext={canisterId:l,methodName:t,httpDetails:g},Fr.fromCode(N)}}}else if(_l(g.body)){let{reject_code:R,reject_message:v,error_code:w}=g.body,I=new Vi(_,R,v,w);throw I.callContext={canisterId:l,methodName:t,httpDetails:g},Fr.fromCode(I)}if(g.status===202){let R={...d,blsVerify:n},v=await Rc(c,f,_,R);y=v.certificate,x=v.reply}let T=r.annotations.includes(Ic),E=r.annotations.includes(Ad),O={...g,requestDetails:m};if(x!==void 0)return T&&E?{httpDetails:O,certificate:y,result:fo(r.retTypes,x)}:E?{certificate:y,result:fo(r.retTypes,x)}:T?{httpDetails:O,result:fo(r.retTypes,x)}:fo(r.retTypes,x);{let R=new Re(`Call was returned undefined. We cannot determine if the call was successful or not. Return types: [${r.retTypes.map(v=>v.display()).join(",")}].`);throw R.callContext={canisterId:l,methodName:t,httpDetails:O},ce.fromCode(R)}};let i=(...s)=>o({},...s);return i.withOptions=s=>(...a)=>o(s,...a),i}var n_=(e=>(e[e.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",e[e.InvalidFormat=1]="InvalidFormat",e[e.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",e))(n_||{}),Bb=BigInt(1e8);var U=e=>e==null,W=e=>!U(e),Nr=e=>W(e)&&e!=="",ht=e=>!Nr(e);var o_=class extends Error{},ai=(e,t)=>{if(e==null)throw new o_(t)};var Or=e=>new Uint8Array(e),Ns=e=>Array.from(e);var Cd=({a:e,b:t})=>e.length===t.length&&e.every((r,n)=>r===t[n]);var Sd="abcdefghijklmnopqrstuvwxyz234567",si=Object.create(null);for(let e=0;e<Sd.length;e++)si[Sd[e]]=e;si[0]=si.o;si[1]=si.i;var Jr=e=>btoa(String.fromCharCode(...new Uint8Array(e))),Fd=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),Db=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);var vc="__bigint__",Ac="__principal__",Sc="__uint8array__",Pd=(e,t)=>typeof t=="bigint"?{[vc]:`${t}`}:W(t)&&k.isPrincipal(t)?{[Ac]:k.from(t).toText()}:W(t)&&t instanceof Uint8Array?{[Sc]:Array.from(t)}:t,Vd=(e,t)=>{let r=n=>t[n];return W(t)&&typeof t=="object"&&vc in t?BigInt(r(vc)):W(t)&&typeof t=="object"&&Ac in t?k.fromText(r(Ac)):W(t)&&typeof t=="object"&&Sc in t?Uint8Array.from(r(Sc)):t};var se=e=>W(e)?[e]:[],be=e=>e?.[0];var i_=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=s_({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},s_=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?Ns(e):e).map(r=>r.toString(16).padStart(2,"0")).join("").replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5");return t==="00000000-0000-0000-0000-000000000000"?{unknownProvider:null}:{aaguid:t}};function a_(e){let t=new DataView(new ArrayBuffer(2)),r=e.slice(53,55);[...new Uint8Array(r)].forEach((o,i)=>t.setUint8(i,o));let n=t.getUint16(0);return e.slice(55+n)}function c_(e){return qn(e,ii)}var l_=class{constructor(e){this._cose=e,this.#e=c_(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},Ld=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new l_(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Jr(this.#e)}},u_=class extends Ld{#e;#t;constructor({authData:e,...t}){super(t);let r=i_({authData:e});this.#e="aaguidText"in r?r.aaguidText:void 0,this.#t="aaguidBytes"in r?r.aaguidBytes:void 0}getAAGUID(){return this.#t}getAAGUIDText(){return this.#e}},d_=class extends Ld{},p_=class extends Error{},f_=class extends Error{},h_=class extends Error{},m_=class extends Error{},__=class extends Error{},y_=class extends Error{},g_=class extends Error{},Bd=class extends Error{};var x_={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},b_=6e4,qd=()=>window.crypto.getRandomValues(new Uint8Array(16)),w_=()=>qd(),T_=()=>qd(),N_=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new p_}},Md=({appId:e})=>e?.id??N_(),O_=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:Md({appId:e})}}),o=()=>({user:{id:T_(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:w_(),...n(),...o(),pubKeyCredParams:Object.values(x_).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},E_=(e={})=>({rpId:Md(e),allowCredentials:[],userVerification:"required"}),Cc=async({fn:e,step:t,onProgress:r})=>{r?.({step:t,state:"in_progress"});try{let n=await e();return r?.({step:t,state:"success"}),n}catch(n){throw r?.({step:t,state:"error"}),n}},Wr=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(Wr||{}),jd=({timeout:e})=>AbortSignal.timeout(e??b_),R_=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...E_(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:jd({timeout:n})}),Dd=e=>{if(e.status!=="initialized")throw new f_},Ud=e=>{if(U(e))throw new h_},kd=({type:e})=>{if(e!=="public-key")throw new m_},Fc=class ci extends Ut{#e;#t;constructor({onProgress:t,...r}){if(super(),this.#e=t,"retrievePublicKey"in r){let{retrievePublicKey:n}=r;this.#t={status:"pending",retrievePublicKey:n};return}this.#t=ci.#r({credential:new u_(r)})}static#r({credential:t}){return{status:"initialized",credential:t}}static async createWithNewCredential({passkeyOptions:t,timeout:r,...n}={}){let o=await navigator.credentials.create({publicKey:O_(t),signal:jd({timeout:r})});Ud(o),kd(o);let{response:{attestationObject:i},rawId:s}=o;if(U(i))throw new __;let{authData:a}=Qi.decode(Or(i)),c=a_(a);return new ci({...n,rawId:Or(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new ci(t)}getPublicKey(){Dd(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){Dd(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await Cc({fn:async()=>{let n=await R_({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return Ud(n),kd(n),n},step:0,onProgress:this.#e});return await Cc({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Cd({a:this.#t.credential.getCredentialId(),b:Or(n)}))throw new y_;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:Or(n)});this.#t=ci.#r({credential:new d_({rawId:Or(n),cose:i})})},step:1,onProgress:this.#e}),await Cc({fn:async()=>{let{response:n}=r,{clientDataJSON:o}=n,{authenticatorData:i,signature:s}="authenticatorData"in n&&"signature"in n?n:{};if(U(i))throw new Bd;if(U(s))throw new Bd;let a=Qi.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:Or(s)});if(U(a))throw new g_;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},I_=async()=>W(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var mo=class{callbacks=[];populate(t){this.callbacks.forEach(({callback:r})=>r(t))}subscribe(t){let r=Symbol();return this.callbacks.push({id:r,callback:t}),()=>this.callbacks=this.callbacks.filter(({id:n})=>n!==r)}};var De=class e extends mo{static instance;authUser=null;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(t){this.authUser=t,this.populate(t)}get(){return this.authUser}subscribe(t){let r=super.subscribe(t);return t(this.authUser),r}reset(){this.authUser=null,this.populate(this.authUser)}};var li=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var _o="http://127.0.0.1:5987",Kd="rdmx6-jaaaa-aaaaa-aaadq-cai";var Hd=async({identity:e,container:t})=>{let n=W(t)&&t!==!1?t===!0?_o:t:"https://icp-api.io",o=W(t);return await Tr.create({identity:e,shouldFetchRootKey:o,host:n})};var yo=class e{static instance;#e=void 0;constructor(){}static getInstance(){return U(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:t,...r}){let n=t.getPrincipal().toText();if(U(this.#e)||U(this.#e[n])){let o=await Hd({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var go=class e{static instance;#e=void 0;constructor(){}static getInstance(){return U(e.instance)&&(e.instance=new e),e.instance}async getActor({satelliteId:t,identity:r,actorKey:n,...o}){let i=`${n}#${r.getPrincipal().toText()}#${t};`;if(U(this.#e)||U(this.#e[i])){let s=await this.createActor({satelliteId:t,identity:r,...o});return this.#e={...this.#e??{},[i]:s},s}return this.#e[i]}reset(){this.#e=null}async createActor({idlFactory:t,satelliteId:r,...n}){let o=await yo.getInstance().getAgent(n);return ho.createActor(t,{agent:o,canisterId:r})}};function $d(e){return e!==null&&typeof e=="object"}var ui=class e{static from(t){if(typeof t=="string"){let r=Ee(t);return this.fromRaw(r)}else if($d(t)){let r=t;if($d(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(Pt(n.buffer))}else{if(r instanceof ArrayBuffer)return this.fromRaw(Pt(r));if("rawKey"in r&&r.rawKey instanceof Uint8Array)return this.fromRaw(r.rawKey);if("derKey"in r)return this.fromDer(r.derKey);if("toDer"in r)return this.fromDer(r.toDer())}}throw new Error("Cannot construct Ed25519PublicKey from the provided key.")}static fromRaw(t){return new e(t)}static fromDer(t){return new e(this.derDecode(t))}static{this.RAW_KEY_LENGTH=32}static derEncode(t){let r=qn(t,Ln);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=Mn(t,Ln);if(r.length!==this.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");return r}#e;get rawKey(){return this.#e}#t;get derKey(){return this.#t}constructor(t){if(t.byteLength!==e.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");this.#e=t,this.#t=e.derEncode(t)}toDer(){return this.derKey}toRaw(){return this.rawKey}},At=class e extends Ut{static generate(t){if(t&&t.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");t||(t=Ge.utils.randomPrivateKey()),kl(t,new Uint8Array(new Array(32).fill(0)))&&console.warn("Seed is all zeros. This is not a secure seed. Please provide a seed with sufficient entropy if this is a production environment.");let r=new Uint8Array(32);for(let o=0;o<32;o++)r[o]=t[o];let n=Ge.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(ui.fromDer(Ee(r)),Ee(n))}static fromJSON(t){let r=JSON.parse(t);if(Array.isArray(r)){if(typeof r[0]=="string"&&typeof r[1]=="string")return this.fromParsedJson([r[0],r[1]]);throw new Error("Deserialization error: JSON must have at least 2 items.")}throw new Error(`Deserialization error: Invalid JSON type for string: ${JSON.stringify(t)}`)}static fromKeyPair(t,r){return new e(ui.fromRaw(t),r)}static fromSecretKey(t){let r=Ge.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=ui.from(t),this.#t=r}toJSON(){return[j(this.#e.toDer()),j(this.#t)]}getKeyPair(){return{secretKey:this.#t,publicKey:this.#e}}getPublicKey(){return this.#e}async sign(t){let r=Ge.sign(t,this.#t.slice(0,32));return Object.defineProperty(r,"__signature__",{enumerable:!1,value:void 0}),r}static verify(t,r,n){let[o,i,s]=[t,r,n].map(a=>(typeof a=="string"&&(a=Ee(a)),Pt(a)));return Ge.verify(o,i,s)}};var Pc=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function Gd(e){if(typeof global<"u"&&global.crypto&&global.crypto.subtle)return global.crypto.subtle;if(e)return e;if(typeof crypto<"u"&&crypto.subtle)return crypto.subtle;throw new Pc("Global crypto was not available and none was provided. Please inlcude a SubtleCrypto implementation. See https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto")}var Lt=class e extends Ut{static async generate(t){let{extractable:r=!1,keyUsages:n=["sign","verify"],subtleCrypto:o}=t??{},i=Gd(o),s=await i.generateKey({name:"ECDSA",namedCurve:"P-256"},r,n),a=Pt(await i.exportKey("spki",s.publicKey));return Object.assign(a,{__derEncodedPublicKey__:void 0}),new this(s,a,i)}static async fromKeyPair(t,r){let n=Gd(r),o=Pt(await n.exportKey("spki",t.publicKey));return Object.assign(o,{__derEncodedPublicKey__:void 0}),new e(t,o,n)}constructor(t,r,n){super(),this._keyPair=t,this._derKey=r,this._subtleCrypto=n}getKeyPair(){return this._keyPair}getPublicKey(){let t=this._derKey,r=Object.create(this._keyPair.publicKey);return r.toDer=function(){return t},r}async sign(t){let r={name:"ECDSA",hash:{name:"SHA-256"}},n=Pt(await this._subtleCrypto.sign(r,this._keyPair.privateKey,t));return Object.assign(n,{__signature__:void 0}),n}};var Os=class{#e;get rawKey(){return this.#e.rawKey}get derKey(){return this.#e.derKey}toDer(){return this.#e.toDer()}getPublicKey(){return this.#e}getPrincipal(){if(!this.#e.rawKey)throw new Error("Cannot get principal from a public key without a raw key.");return k.fromUint8Array(new Uint8Array(this.#e.rawKey))}transformRequest(){return Promise.reject("Not implemented. You are attempting to use a partial identity to sign calls, but this identity only has access to the public key.To sign calls, use a DelegationIdentity instead.")}constructor(t){this.#e=t}};function Es(e){return e instanceof Uint8Array?j(e):j(new Uint8Array(e))}function Vc(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ee(e)}var zr=class{constructor(t,r,n){this.pubkey=t,this.expiration=r,this.targets=n}toCborValue(){return{pubkey:this.pubkey,expiration:this.expiration,...this.targets&&{targets:this.targets}}}toJSON(){return{expiration:this.expiration.toString(16),pubkey:Es(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function v_(e,t,r,n){let o=new zr(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...Ca,...new Uint8Array(ur({...o}))]),s=await e.sign(i);return{delegation:o,signature:s}}var Er=class e{static async create(t,r,n=new Date(Date.now()+900*1e3),o={}){let i=await v_(t,r,n,o.targets);return new e([...o.previous?.delegations||[],i],o.previous?.publicKey||t.getPublicKey().toDer())}static fromJSON(t){let{publicKey:r,delegations:n}=typeof t=="string"?JSON.parse(t):t;if(!Array.isArray(n))throw new Error("Invalid delegations.");let o=n.map(i=>{let{delegation:s,signature:a}=i,{pubkey:c,expiration:u,targets:p}=s;if(p!==void 0&&!Array.isArray(p))throw new Error("Invalid targets.");return{delegation:new zr(Vc(c),BigInt("0x"+u),p&&p.map(d=>{if(typeof d!="string")throw new Error("Invalid target.");return k.fromHex(d)})),signature:Vc(a)}});return new this(o,Vc(r))}static fromDelegations(t,r){return new this(t,r)}constructor(t,r){this.delegations=t,this.publicKey=r}toJSON(){return{delegations:this.delegations.map(t=>{let{delegation:r,signature:n}=t,{targets:o}=r;return{delegation:{expiration:r.expiration.toString(16),pubkey:Es(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:Es(n)}}),publicKey:Es(this.publicKey)}}},Rr=class extends Ut{static fromDelegation(t,r){return new this(t,r)}constructor(t,r){super(),this._inner=t,this._delegation=r}getDelegation(){return this._delegation}getPublicKey(){return{derKey:this._delegation.publicKey,toDer:()=>this._delegation.publicKey}}sign(t){return this._inner.sign(t)}async transformRequest(t){let{body:r,...n}=t,o=await ur(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...Lo,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},di=class e extends Os{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function Bc(e,t){for(let{delegation:o}of e.delegations)if(+new Date(Number(o.expiration/BigInt(1e6)))<=+Date.now())return!1;let r=[],n=t?.scope;n&&(Array.isArray(n)?r.push(...n.map(o=>typeof o=="string"?k.fromText(o):o)):r.push(typeof n=="string"?k.fromText(n):n));for(let o of r){let i=o.toText();for(let{delegation:s}of e.delegations){if(s.targets===void 0)continue;let a=!0;for(let c of s.targets)if(c.toText()===i){a=!1;break}if(a)return!1}}return!0}var Jd=["mousedown","mousemove","keydown","touchstart","wheel"],pi=class e{callbacks=[];idleTimeout=600*1e3;timeoutID=void 0;static create(t={}){return new e(t)}constructor(t={}){let{onIdle:r,idleTimeout:n=600*1e3}=t||{};this.callbacks=r?[r]:[],this.idleTimeout=n;let o=this._resetTimer.bind(this);window.addEventListener("load",o,!0),Jd.forEach(s=>{document.addEventListener(s,o,!0)});let i=(s,a)=>{let c;return(...u)=>{let p=this,d=()=>{c=void 0,s.apply(p,u)};clearTimeout(c),c=window.setTimeout(d,a)}};if(t?.captureScroll){let s=i(o,t?.scrollDebounce??100);window.addEventListener("scroll",s,!0)}o()}registerCallback(t){this.callbacks.push(t)}exit(){clearTimeout(this.timeoutID),window.removeEventListener("load",this._resetTimer,!0);let t=this._resetTimer.bind(this);Jd.forEach(r=>{document.removeEventListener(r,t,!0)}),this.callbacks.forEach(r=>{r()})}_resetTimer(){let t=this.exit.bind(this);window.clearTimeout(this.timeoutID),this.timeoutID=window.setTimeout(t,this.idleTimeout)}};var A_=(e,t)=>t.some(r=>e instanceof r),Wd,zd;function S_(){return Wd||(Wd=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function C_(){return zd||(zd=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Yd=new WeakMap,Uc=new WeakMap,Zd=new WeakMap,Dc=new WeakMap,Lc=new WeakMap;function F_(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{r(qt(e.result)),o()},s=()=>{n(e.error),o()};e.addEventListener("success",i),e.addEventListener("error",s)});return t.then(r=>{r instanceof IDBCursor&&Yd.set(r,e)}).catch(()=>{}),Lc.set(t,e),t}function P_(e){if(Uc.has(e))return;let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{r(),o()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),o()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)});Uc.set(e,t)}var kc={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return Uc.get(e);if(t==="objectStoreNames")return e.objectStoreNames||Zd.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return qt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function Xd(e){kc=e(kc)}function V_(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(Rs(this),t,...r);return Zd.set(n,t.sort?t.sort():[t]),qt(n)}:C_().includes(e)?function(...t){return e.apply(Rs(this),t),qt(Yd.get(this))}:function(...t){return qt(e.apply(Rs(this),t))}}function B_(e){return typeof e=="function"?V_(e):(e instanceof IDBTransaction&&P_(e),A_(e,S_())?new Proxy(e,kc):e)}function qt(e){if(e instanceof IDBRequest)return F_(e);if(Dc.has(e))return Dc.get(e);let t=B_(e);return t!==e&&(Dc.set(e,t),Lc.set(t,e)),t}var Rs=e=>Lc.get(e);function ep(e,t,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(e,t),a=qt(s);return n&&s.addEventListener("upgradeneeded",c=>{n(qt(s.result),c.oldVersion,c.newVersion,qt(s.transaction),c)}),r&&s.addEventListener("blocked",c=>r(c.oldVersion,c.newVersion,c)),a.then(c=>{i&&c.addEventListener("close",()=>i()),o&&c.addEventListener("versionchange",u=>o(u.oldVersion,u.newVersion,u))}).catch(()=>{}),a}var D_=["get","getKey","getAll","getAllKeys","count"],U_=["put","add","delete","clear"],qc=new Map;function Qd(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(qc.get(t))return qc.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=U_.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||D_.includes(r)))return;let i=async function(s,...a){let c=this.transaction(s,o?"readwrite":"readonly"),u=c.store;return n&&(u=u.index(a.shift())),(await Promise.all([u[r](...a),o&&c.done]))[0]};return qc.set(t,i),i}Xd(e=>({...e,get:(t,r,n)=>Qd(t,r)||e.get(t,r,n),has:(t,r)=>!!Qd(t,r)||e.has(t,r)}));var tp="auth-client-db",rp="ic-keyval",k_=async(e=tp,t=rp,r)=>(globalThis.localStorage?.getItem(Je)&&(globalThis.localStorage.removeItem(Je),globalThis.localStorage.removeItem(We)),await ep(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function L_(e,t,r){return await e.get(t,r)}async function q_(e,t,r,n){return await e.put(t,n,r)}async function M_(e,t,r){return await e.delete(t,r)}var Is=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=tp,storeName:n=rp,version:o=np}=t??{},i=await k_(r,n,o);return new e(i,n)}async set(t,r){return await q_(this._db,this._storeName,t,r)}async get(t){return await L_(this._db,this._storeName,t)??null}async remove(t){return await M_(this._db,this._storeName,t)}};var We="identity",Je="delegation",op="iv",np=1,fi=class{constructor(t="ic-",r){this.prefix=t,this._localStorage=r}get(t){return Promise.resolve(this._getLocalStorage().getItem(this.prefix+t))}set(t,r){return this._getLocalStorage().setItem(this.prefix+t,r),Promise.resolve()}remove(t){return this._getLocalStorage().removeItem(this.prefix+t),Promise.resolve()}_getLocalStorage(){if(this._localStorage)return this._localStorage;let t=globalThis.localStorage;if(!t)throw new Error("Could not find local storage.");return t}},Mt=class{#e;constructor(t){this.#e=t??{}}initializedDb;get _db(){return new Promise((t,r)=>{if(this.initializedDb){t(this.initializedDb);return}Is.create(this.#e).then(n=>{this.initializedDb=n,t(n)}).catch(r)})}async get(t){return await(await this._db).get(t)}async set(t,r){await(await this._db).set(t,r)}async remove(t){await(await this._db).remove(t)}};var j_=BigInt(1e9),K_=BigInt(3600),H_=j_*K_,$_="https://identity.internetcomputer.org",G_="#authorize",J_=BigInt(8)*H_,Mc="ECDSA",jc="Ed25519",W_=500,vs="UserInterrupt",hi=class e{constructor(t,r,n,o,i,s,a,c){this._identity=t,this._key=r,this._chain=n,this._storage=o,this.idleManager=i,this._createOptions=s,this._idpWindow=a,this._eventHandler=c,this._registerDefaultIdleCallback()}static async create(t={}){let r=t.storage??new Mt,n=t.keyType??Mc,o=null;if(t.identity)o=t.identity;else{let c=await r.get(We);if(!c)try{let u=new fi,p=await u.get(Je),d=await u.get(We);p&&d&&n===Mc&&(console.log("Discovered an identity stored in localstorage. Migrating to IndexedDB"),await r.set(Je,p),await r.set(We,d),c=p,await u.remove(Je),await u.remove(We))}catch(u){console.error(`error while attempting to recover localstorage: ${u}`)}if(c)try{typeof c=="object"?n===jc&&typeof c=="string"?o=At.fromJSON(c):o=await Lt.fromKeyPair(c):typeof c=="string"&&(o=At.fromJSON(c))}catch{}}let i=new ot,s=null;if(o)try{let c=await r.get(Je);if(typeof c=="object"&&c!==null)throw new Error("Delegation chain is incorrectly stored. A delegation chain should be stored as a string.");t.identity?i=t.identity:c&&(s=Er.fromJSON(c),Bc(s)?"toDer"in o?i=di.fromDelegation(o,s):i=Rr.fromDelegation(o,s):(await Kc(r),o=null))}catch(c){console.error(c),await Kc(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=pi.create(t.idleOptions)),o||(n===jc?o=At.generate():(t.storage&&n===Mc&&console.warn(`You are using a custom storage provider that may not support CryptoKey storage. If you are using a custom storage provider that does not support CryptoKey storage, you should use '${jc}' as the key type, as it can serialize to a string`),o=await Lt.generate()),await ip(r,o)),new e(i,o,s,r,a,t)}_registerDefaultIdleCallback(){let t=this._createOptions?.idleOptions;!t?.onIdle&&!t?.disableDefaultIdleCallback&&this.idleManager?.registerCallback(()=>{this.logout(),location.reload()})}async _handleSuccess(t,r){let n=t.delegations.map(a=>({delegation:new zr(a.delegation.pubkey,a.delegation.expiration,a.delegation.targets),signature:a.signature})),o=Er.fromDelegations(n,t.userPublicKey),i=this._key;if(!i)return;this._chain=o,"toDer"in i?this._identity=di.fromDelegation(i,this._chain):this._identity=Rr.fromDelegation(i,this._chain),this._idpWindow?.close();let s=this._createOptions?.idleOptions;!this.idleManager&&!s?.disableIdle&&(this.idleManager=pi.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(Je,JSON.stringify(this._chain.toJSON())),await ip(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&Bc(this._chain)}async login(t){let r=z_(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??J_,o=new URL(r?.identityProvider?.toString()||$_);o.hash=G_,this._idpWindow?.close(),this._removeEventListener(),this._eventHandler=this._getEventHandler(o,{maxTimeToLive:n,...r}),window.addEventListener("message",this._eventHandler),this._idpWindow=window.open(o.toString(),"idpWindow",r?.windowOpenerFeatures)??void 0;let i=()=>{this._idpWindow&&(this._idpWindow.closed?this._handleFailure(vs,r?.onError):setTimeout(i,W_))};i()}_getEventHandler(t,r){return async n=>{if(n.origin!==t.origin)return;let o=n.data;switch(o.kind){case"authorize-ready":{let i={kind:"authorize-client",sessionPublicKey:new Uint8Array(this._key?.getPublicKey().toDer()),maxTimeToLive:r?.maxTimeToLive,allowPinAuthentication:r?.allowPinAuthentication,derivationOrigin:r?.derivationOrigin?.toString(),...r?.customValues};this._idpWindow?.postMessage(i,t.origin);break}case"authorize-client-success":try{await this._handleSuccess(o,r?.onSuccess)}catch(i){this._handleFailure(i.message,r?.onError)}break;case"authorize-client-failure":this._handleFailure(o.text,r?.onError);break}}}_handleFailure(t,r){this._idpWindow?.close(),r?.(t),this._removeEventListener(),delete this._idpWindow}_removeEventListener(){this._eventHandler&&window.removeEventListener("message",this._eventHandler),this._eventHandler=void 0}async logout(t={}){if(await Kc(this._storage),this._identity=new ot,this._chain=null,t.returnTo)try{window.history.pushState({},"",t.returnTo)}catch{window.location.href=t.returnTo}}};async function Kc(e){await e.remove(We),await e.remove(Je),await e.remove(op)}function z_(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function Y_(e){if(e instanceof Lt)return e.getKeyPair();if(e instanceof At)return JSON.stringify(e.toJSON());throw new Error("Unsupported key type")}async function ip(e,t){let r=Y_(t);await e.set(We,r)}var Ue=class e{static#e;#t;constructor(){}static getInstance(){return U(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#t=await hi.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#t);safeCreateAuthClient=async()=>(await new Mt().remove(We),await this.createAuthClient());getAuthClient=()=>this.#t;logout=async()=>{await this.#t?.logout(),this.#t=null};setAuthClientStorage=async({delegationChain:t,sessionKey:r})=>{let n=new Mt;await Promise.all([n.set(We,r.getKeyPair()),n.set(Je,JSON.stringify(t.toJSON()))])}};var Hc=async e=>{await Z_(),await Ue.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},Z_=async()=>{await Ue.getInstance().logout(),De.getInstance().reset(),go.getInstance().reset(),yo.getInstance().reset()};var sp=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{li({message:"junoSignOutAuthTimer"}),await Hc()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":li({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime})}},De.getInstance().subscribe(o=>{if(U(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var xo=class e{static#e;#t;#r;static CHANNEL_NAME="juno_core_auth_channel";static MESSAGE_LOGIN_SUCCESS="authClientLoginSuccess";constructor(){this.#t=new BroadcastChannel(e.CHANNEL_NAME),this.#r=window.crypto.randomUUID()}static getInstance(){return U(this.#e)&&(this.#e=new e),this.#e}onLoginSuccess=t=>{let{location:{origin:r}}=window;this.#t.onmessage=async({origin:n,data:o})=>{n===r&&W(o)&&o.msg==="authClientLoginSuccess"&&Nr(o.emitterId)&&o.emitterId!==this.#r&&await t()}};destroy=()=>{this.#t.close(),e.#e=null};postLoginSuccess=()=>{let t={emitterId:this.#r,msg:e.MESSAGE_LOGIN_SUCCESS};this.#t.postMessage(t)};get __test__only__emitter_id__(){return this.#r}};var Se=class e extends mo{static instance;env;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(t){this.env=t,this.populate(t)}get(){return this.env}reset(){this.env=null}subscribe(t){let r=super.subscribe(t);return t(this.env),r}};var mi=async({fn:e,syncTabsOnSuccess:t})=>{let{authenticated:r}=await X_({fn:e});!r||!t||Se.getInstance().get()?.syncTabs===!1||Q_()},ap=async({fn:e})=>{let{createAuthClient:t}=Ue.getInstance(),n=await(await t()).isAuthenticated();await e({authenticated:n})},X_=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=Ue.getInstance();return await(await t()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},Q_=()=>{try{xo.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var $c=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var cp="juno.datastore.error.user.cannot_update";var jt={certified:!1};var As=()=>Ue.getInstance().getAuthClient()?.getIdentity(),ey=async()=>{let{getAuthClient:e,createAuthClient:t}=Ue.getInstance();return(e()??await t()).getIdentity()},ty=async()=>{let e=De.getInstance().get();if(U(e))return null;let t=Ue.getInstance().getAuthClient();return await t?.isAuthenticated()??!1?t?.getIdentity()??null:null};var de=e=>W(e)?e:As()??new ot;var Gc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),_=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),g=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),m=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),x=e.Record({field:m,desc:e.Bool}),y=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),T=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(y),description:e.Opt(e.Text),created_at:e.Opt(y)}),E=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),O=e.Record({order:e.Opt(x),owner:e.Opt(e.Principal),matcher:e.Opt(T),paginate:e.Opt(E)}),R=e.Record({controllers:e.Vec(e.Principal)}),v=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),w=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:v,expires_at:e.Opt(e.Nat64)}),I=e.Record({version:e.Opt(e.Nat64)}),F=e.Variant({Db:e.Null,Storage:e.Null}),S=e.Record({version:e.Opt(e.Nat64)}),b=e.Record({proposal_ids:e.Vec(e.Nat)}),N=e.Record({cycles:e.Nat,destination_id:e.Principal}),C=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),B=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),L=e.Record({key:C,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,B)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),A=e.Variant({Google:e.Null}),P=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),V=e.Record({delegation:e.Opt(P),client_id:e.Text}),D=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(A,V))}),q=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),te=e.Record({allowed_callers:e.Vec(e.Principal)}),ee=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(D),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(q),rules:e.Opt(te)}),J=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),ae=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(J)}),he=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),Fe=e.Variant({Deny:e.Null,Allow:e.Null}),oe=e.Record({status_code:e.Nat16,location:e.Text}),re=e.Record({iframe:e.Opt(he),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(J),raw_access:e.Opt(Fe),redirects:e.Opt(e.Vec(e.Tuple(e.Text,oe)))}),Ht=e.Record({db:e.Opt(ae),authentication:e.Opt(ee),storage:re}),Zr=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Xr=e.Variant({OpenId:Zr}),Qr=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),en=e.Record({signature:e.Vec(e.Nat8),delegation:Qr}),$t=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),Ze=e.Variant({Ok:en,Err:$t}),Gt=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),tn=e.Record({clear_existing_assets:e.Opt(e.Bool)}),rn=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),Xe=e.Variant({AssetsUpgrade:tn,SegmentsDeployment:rn}),Qe=e.Record({status:Gt,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:Xe}),et=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),Jt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),tt=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:et,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(Jt),write:et,max_changes_per_user:e.Opt(e.Nat32)}),Wt=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),mt=e.Record({memory:t,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),nn=e.Variant({Callback:e.Record({token:mt,callback:e.Func([],[],["query"])})}),zt=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(nn),status_code:e.Nat16}),on=e.Record({token:e.Opt(mt),body:e.Vec(e.Nat8)}),_t=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),yt=e.Record({batch_id:e.Nat}),sn=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,L)),items_length:e.Nat64}),an=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),cn=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,s)),items_length:e.Nat64}),ln=e.Record({desc:e.Bool}),Yt=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),un=e.Record({order:e.Opt(ln),paginate:e.Opt(Yt)}),dn=e.Record({proposal_id:e.Nat}),Zt=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(dn,Qe)),items_length:e.Nat64}),pn=e.Record({include_system:e.Bool}),fn=e.Record({matcher:e.Opt(pn)}),hn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,tt)),items_length:e.Nat64}),mn=e.Record({stable:e.Nat64,heap:e.Nat64}),_n=e.Record({openid:e.Opt(D),version:e.Opt(e.Nat64),internet_identity:e.Opt(q),rules:e.Opt(te)}),yn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:v,expires_at:e.Opt(e.Nat64)}),gn=e.Record({controller:yn,controllers:e.Vec(e.Principal)}),xn=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(J)}),Xt=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),ke=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:et,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(Jt),write:et,max_changes_per_user:e.Opt(e.Nat32)}),bn=e.Record({iframe:e.Opt(he),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(J),raw_access:e.Opt(Fe),redirects:e.Opt(e.Vec(e.Tuple(e.Text,oe)))}),Qt=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),rt=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([_],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([_],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(_)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],["query"]),count_collection_assets:e.Func([e.Text],[e.Nat64],["query"]),count_collection_docs:e.Func([e.Text],[e.Nat64],["query"]),count_docs:e.Func([e.Text,O],[e.Nat64],["query"]),count_proposals:e.Func([],[e.Nat64],["query"]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,I],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,I))],[],[]),del_rule:e.Func([F,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(L)],["query"]),get_auth_config:e.Func([],[e.Opt(ee)],["query"]),get_config:e.Func([],[Ht],[]),get_db_config:e.Func([],[e.Opt(ae)],["query"]),get_delegation:e.Func([Xr],[Ze],["query"]),get_doc:e.Func([e.Text,e.Text],[e.Opt(s)],["query"]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(L)))],["query"]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(s)))],["query"]),get_proposal:e.Func([e.Nat],[e.Opt(Qe)],["query"]),get_rule:e.Func([F,e.Text],[e.Opt(tt)],["query"]),get_storage_config:e.Func([],[re],["query"]),http_request:e.Func([Wt],[zt],["query"]),http_request_streaming_callback:e.Func([mt],[on],["query"]),init_asset_upload:e.Func([_t],[yt],[]),init_proposal:e.Func([Xe],[e.Nat,Qe],[]),init_proposal_asset_upload:e.Func([_t,e.Nat],[yt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(_t),e.Nat],[e.Vec(e.Tuple(e.Text,yt))],[]),list_assets:e.Func([e.Text,O],[sn],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,an))],["query"]),list_docs:e.Func([e.Text,O],[cn],["query"]),list_proposals:e.Func([un],[Zt],["query"]),list_rules:e.Func([F,fn],[hn],["query"]),memory_size:e.Func([],[mn],["query"]),reject_proposal:e.Func([g],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([_n],[ee],[]),set_controllers:e.Func([gn],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([xn],[ae],[]),set_doc:e.Func([e.Text,e.Text,Xt],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Xt))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([F,e.Text,ke],[tt],[]),set_storage_config:e.Func([bn],[re],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Qt],[rt],[]),upload_proposal_asset_chunk:e.Func([Qt],[rt],[])})},Jc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),_=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),g=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),m=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),x=e.Record({field:m,desc:e.Bool}),y=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),T=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(y),description:e.Opt(e.Text),created_at:e.Opt(y)}),E=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),O=e.Record({order:e.Opt(x),owner:e.Opt(e.Principal),matcher:e.Opt(T),paginate:e.Opt(E)}),R=e.Record({controllers:e.Vec(e.Principal)}),v=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),w=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:v,expires_at:e.Opt(e.Nat64)}),I=e.Record({version:e.Opt(e.Nat64)}),F=e.Variant({Db:e.Null,Storage:e.Null}),S=e.Record({version:e.Opt(e.Nat64)}),b=e.Record({proposal_ids:e.Vec(e.Nat)}),N=e.Record({cycles:e.Nat,destination_id:e.Principal}),C=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),B=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),L=e.Record({key:C,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,B)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),A=e.Variant({Google:e.Null}),P=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),V=e.Record({delegation:e.Opt(P),client_id:e.Text}),D=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(A,V))}),q=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),te=e.Record({allowed_callers:e.Vec(e.Principal)}),ee=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(D),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(q),rules:e.Opt(te)}),J=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),ae=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(J)}),he=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),Fe=e.Variant({Deny:e.Null,Allow:e.Null}),oe=e.Record({status_code:e.Nat16,location:e.Text}),re=e.Record({iframe:e.Opt(he),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(J),raw_access:e.Opt(Fe),redirects:e.Opt(e.Vec(e.Tuple(e.Text,oe)))}),Ht=e.Record({db:e.Opt(ae),authentication:e.Opt(ee),storage:re}),Zr=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Xr=e.Variant({OpenId:Zr}),Qr=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),en=e.Record({signature:e.Vec(e.Nat8),delegation:Qr}),$t=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),Ze=e.Variant({Ok:en,Err:$t}),Gt=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),tn=e.Record({clear_existing_assets:e.Opt(e.Bool)}),rn=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),Xe=e.Variant({AssetsUpgrade:tn,SegmentsDeployment:rn}),Qe=e.Record({status:Gt,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:Xe}),et=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),Jt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),tt=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:et,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(Jt),write:et,max_changes_per_user:e.Opt(e.Nat32)}),Wt=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),mt=e.Record({memory:t,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),nn=e.Variant({Callback:e.Record({token:mt,callback:e.Func([],[],[])})}),zt=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(nn),status_code:e.Nat16}),on=e.Record({token:e.Opt(mt),body:e.Vec(e.Nat8)}),_t=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),yt=e.Record({batch_id:e.Nat}),sn=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,L)),items_length:e.Nat64}),an=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),cn=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,s)),items_length:e.Nat64}),ln=e.Record({desc:e.Bool}),Yt=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),un=e.Record({order:e.Opt(ln),paginate:e.Opt(Yt)}),dn=e.Record({proposal_id:e.Nat}),Zt=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(dn,Qe)),items_length:e.Nat64}),pn=e.Record({include_system:e.Bool}),fn=e.Record({matcher:e.Opt(pn)}),hn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,tt)),items_length:e.Nat64}),mn=e.Record({stable:e.Nat64,heap:e.Nat64}),_n=e.Record({openid:e.Opt(D),version:e.Opt(e.Nat64),internet_identity:e.Opt(q),rules:e.Opt(te)}),yn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:v,expires_at:e.Opt(e.Nat64)}),gn=e.Record({controller:yn,controllers:e.Vec(e.Principal)}),xn=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(J)}),Xt=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),ke=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:et,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(Jt),write:et,max_changes_per_user:e.Opt(e.Nat32)}),bn=e.Record({iframe:e.Opt(he),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(J),raw_access:e.Opt(Fe),redirects:e.Opt(e.Vec(e.Tuple(e.Text,oe)))}),Qt=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),rt=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),commit_asset_upload:e.Func([_],[],[]),commit_proposal:e.Func([g],[e.Null],[]),commit_proposal_asset_upload:e.Func([_],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(_)],[],[]),count_assets:e.Func([e.Text,O],[e.Nat64],[]),count_collection_assets:e.Func([e.Text],[e.Nat64],[]),count_collection_docs:e.Func([e.Text],[e.Nat64],[]),count_docs:e.Func([e.Text,O],[e.Nat64],[]),count_proposals:e.Func([],[e.Nat64],[]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([R],[e.Vec(e.Tuple(e.Principal,w))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,I],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,O],[],[]),del_filtered_docs:e.Func([e.Text,O],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,I))],[],[]),del_rule:e.Func([F,e.Text,S],[],[]),delete_proposal_assets:e.Func([b],[],[]),deposit_cycles:e.Func([N],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(L)],[]),get_auth_config:e.Func([],[e.Opt(ee)],[]),get_config:e.Func([],[Ht],[]),get_db_config:e.Func([],[e.Opt(ae)],[]),get_delegation:e.Func([Xr],[Ze],[]),get_doc:e.Func([e.Text,e.Text],[e.Opt(s)],[]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(L)))],[]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(s)))],[]),get_proposal:e.Func([e.Nat],[e.Opt(Qe)],[]),get_rule:e.Func([F,e.Text],[e.Opt(tt)],[]),get_storage_config:e.Func([],[re],[]),http_request:e.Func([Wt],[zt],[]),http_request_streaming_callback:e.Func([mt],[on],[]),init_asset_upload:e.Func([_t],[yt],[]),init_proposal:e.Func([Xe],[e.Nat,Qe],[]),init_proposal_asset_upload:e.Func([_t,e.Nat],[yt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(_t),e.Nat],[e.Vec(e.Tuple(e.Text,yt))],[]),list_assets:e.Func([e.Text,O],[sn],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,w))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,an))],[]),list_docs:e.Func([e.Text,O],[cn],[]),list_proposals:e.Func([un],[Zt],[]),list_rules:e.Func([F,fn],[hn],[]),memory_size:e.Func([],[mn],[]),reject_proposal:e.Func([g],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([_n],[ee],[]),set_controllers:e.Func([gn],[e.Vec(e.Tuple(e.Principal,w))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([xn],[ae],[]),set_doc:e.Func([e.Text,e.Text,Xt],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,Xt))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([F,e.Text,ke],[tt],[]),set_storage_config:e.Func([bn],[re],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Qe],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Qt],[rt],[]),upload_proposal_asset_chunk:e.Func([Qt],[rt],[])})},ry=({IDL:e})=>{let t=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),o=e.Variant({OpenId:n}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),s=e.Variant({Google:e.Null}),a=e.Record({name:e.Opt(e.Text),locale:e.Opt(e.Text),family_name:e.Opt(e.Text),email:e.Opt(e.Text),picture:e.Opt(e.Text),given_name:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),u=e.Variant({InternetIdentity:e.Null,OpenId:c}),p=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(u),owner:e.Principal,created_at:e.Nat64}),d=e.Record({delegation:i,account:p}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),f=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),h=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),_=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),g=e.Variant({PrepareDelegation:_,RegisterUser:e.Text}),m=e.Variant({Ok:d,Err:g}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),y=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({subnet_id:e.Opt(e.Principal)}),E=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),O=e.Variant({Heap:e.Null,Stable:e.Null}),R=e.Record({system_memory:e.Opt(O)}),v=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(R),name:e.Opt(e.Text),user:e.Principal}),w=e.Record({controllers:e.Vec(e.Principal)}),I=e.Record({proposal_ids:e.Vec(e.Nat)}),F=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),S=e.Record({delegation:e.Opt(F),client_id:e.Text}),b=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,S))}),N=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),C=e.Record({allowed_callers:e.Vec(e.Principal)}),B=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(b),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(C)}),L=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),A=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),P=e.Variant({Deny:e.Null,Allow:e.Null}),V=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(L),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(A),raw_access:e.Opt(P),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),q=e.Record({authentication:e.Opt(B),storage:D}),te=e.Record({user:e.Principal}),ee=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),J=e.Variant({OpenId:ee}),ae=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),he=e.Record({signature:e.Vec(e.Nat8),delegation:ae}),Fe=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),oe=e.Variant({Ok:he,Err:Fe}),re=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),Ht=e.Record({e12s:e.Nat64}),Zr=e.Record({updated_at:e.Nat64,fee_cycles:Ht,fee_icp:e.Opt(t)}),Xr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Qr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),en=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),$t=e.Variant({AssetsUpgrade:Qr,SegmentsDeployment:en}),Ze=e.Record({status:Xr,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:$t}),Gt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),tn=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),rn=e.Variant({Heap:e.Null,Stable:e.Null}),Xe=e.Record({memory:rn,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Qe=e.Variant({Callback:e.Record({token:Xe,callback:e.Func([],[],["query"])})}),et=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Qe),status_code:e.Nat16}),Jt=e.Record({token:e.Opt(Xe),body:e.Vec(e.Nat8)}),tt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),Wt=e.Record({batch_id:e.Nat}),mt=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),nn=e.Record({field:mt,desc:e.Bool}),zt=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),on=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(zt),description:e.Opt(e.Text),created_at:e.Opt(zt)}),_t=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),yt=e.Record({order:e.Opt(nn),owner:e.Opt(e.Principal),matcher:e.Opt(on),paginate:e.Opt(_t)}),sn=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),an=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),cn=e.Record({key:sn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,an)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ln=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,cn)),items_length:e.Nat64}),Yt=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),un=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:Yt,expires_at:e.Opt(e.Nat64)}),dn=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Zt=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),pn=e.Record({status:Zt,updated_at:e.Nat64,block_index_payment:e.Nat64,mission_control_id:e.Opt(e.Principal),created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64)}),fn=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),hn=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),mn=e.Record({status:Zt,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:hn}),_n=e.Record({desc:e.Bool}),yn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),gn=e.Record({order:e.Opt(_n),paginate:e.Opt(yn)}),xn=e.Record({proposal_id:e.Nat}),Xt=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(xn,Ze)),items_length:e.Nat64}),ke=e.Variant({Orbiter:e.Null,Satellite:e.Null}),bn=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(ke)}),Qt=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:ke}),rt=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),ra=e.Record({openid:e.Opt(b),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(C)}),na=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Yt,expires_at:e.Opt(e.Nat64)}),oa=e.Record({controller:na,controllers:e.Vec(e.Principal)}),ia=e.Record({fee_cycles:Ht,fee_icp:e.Opt(t)}),sa=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:ke}),aa=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:ke}),ca=e.Record({iframe:e.Opt(L),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(A),raw_access:e.Opt(P),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),la=e.Record({segment_id:e.Principal,segment_kind:ke}),ua=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),da=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,t],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],["query"]),authenticate:e.Func([o],[m],[]),commit_proposal:e.Func([x],[e.Null],[]),commit_proposal_asset_upload:e.Func([y],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(y)],[],[]),count_proposals:e.Func([],[e.Nat64],["query"]),create_mission_control:e.Func([T],[e.Principal],[]),create_orbiter:e.Func([E],[e.Principal],[]),create_satellite:e.Func([v],[e.Principal],[]),del_controllers:e.Func([w],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([I],[],[]),get_account:e.Func([],[e.Opt(p)],["query"]),get_auth_config:e.Func([],[e.Opt(B)],["query"]),get_config:e.Func([],[q],["query"]),get_create_orbiter_fee:e.Func([te],[e.Opt(t)],["query"]),get_create_satellite_fee:e.Func([te],[e.Opt(t)],["query"]),get_credits:e.Func([],[t],["query"]),get_delegation:e.Func([J],[oe],["query"]),get_fee:e.Func([re],[Zr],["query"]),get_or_init_account:e.Func([],[p],[]),get_proposal:e.Func([e.Nat],[e.Opt(Ze)],["query"]),get_rate_config:e.Func([re],[Gt],["query"]),get_storage_config:e.Func([],[D],["query"]),http_request:e.Func([tn],[et],["query"]),http_request_streaming_callback:e.Func([Xe],[Jt],["query"]),init_proposal:e.Func([$t],[e.Nat,Ze],[]),init_proposal_asset_upload:e.Func([tt,e.Nat],[Wt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(tt),e.Nat],[e.Vec(e.Tuple(e.Text,Wt))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],["query"]),list_assets:e.Func([e.Text,yt],[ln],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,un))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,dn))],["query"]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,pn))],["query"]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(fn,mn))],["query"]),list_proposals:e.Func([gn],[Xt],["query"]),list_segments:e.Func([bn],[e.Vec(e.Tuple(Qt,rt))],["query"]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([ra],[B],[]),set_controllers:e.Func([oa],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([re,ia],[],[]),set_rate_config:e.Func([re,Gt],[],[]),set_segment:e.Func([sa],[rt],[]),set_segment_metadata:e.Func([aa],[rt],[]),set_storage_config:e.Func([ca],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),unset_segment:e.Func([la],[],[]),upload_proposal_asset_chunk:e.Func([ua],[da],[])})},ny=({IDL:e})=>{let t=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),o=e.Variant({OpenId:n}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),s=e.Variant({Google:e.Null}),a=e.Record({name:e.Opt(e.Text),locale:e.Opt(e.Text),family_name:e.Opt(e.Text),email:e.Opt(e.Text),picture:e.Opt(e.Text),given_name:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),u=e.Variant({InternetIdentity:e.Null,OpenId:c}),p=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(u),owner:e.Principal,created_at:e.Nat64}),d=e.Record({delegation:i,account:p}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),f=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),h=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),_=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),g=e.Variant({PrepareDelegation:_,RegisterUser:e.Text}),m=e.Variant({Ok:d,Err:g}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),y=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({subnet_id:e.Opt(e.Principal)}),E=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),O=e.Variant({Heap:e.Null,Stable:e.Null}),R=e.Record({system_memory:e.Opt(O)}),v=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(R),name:e.Opt(e.Text),user:e.Principal}),w=e.Record({controllers:e.Vec(e.Principal)}),I=e.Record({proposal_ids:e.Vec(e.Nat)}),F=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),S=e.Record({delegation:e.Opt(F),client_id:e.Text}),b=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,S))}),N=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),C=e.Record({allowed_callers:e.Vec(e.Principal)}),B=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(b),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(C)}),L=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),A=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),P=e.Variant({Deny:e.Null,Allow:e.Null}),V=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(L),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(A),raw_access:e.Opt(P),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),q=e.Record({authentication:e.Opt(B),storage:D}),te=e.Record({user:e.Principal}),ee=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),J=e.Variant({OpenId:ee}),ae=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),he=e.Record({signature:e.Vec(e.Nat8),delegation:ae}),Fe=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),oe=e.Variant({Ok:he,Err:Fe}),re=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),Ht=e.Record({e12s:e.Nat64}),Zr=e.Record({updated_at:e.Nat64,fee_cycles:Ht,fee_icp:e.Opt(t)}),Xr=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),Qr=e.Record({clear_existing_assets:e.Opt(e.Bool)}),en=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),$t=e.Variant({AssetsUpgrade:Qr,SegmentsDeployment:en}),Ze=e.Record({status:Xr,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:$t}),Gt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),tn=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),rn=e.Variant({Heap:e.Null,Stable:e.Null}),Xe=e.Record({memory:rn,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Qe=e.Variant({Callback:e.Record({token:Xe,callback:e.Func([],[],[])})}),et=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Qe),status_code:e.Nat16}),Jt=e.Record({token:e.Opt(Xe),body:e.Vec(e.Nat8)}),tt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),Wt=e.Record({batch_id:e.Nat}),mt=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),nn=e.Record({field:mt,desc:e.Bool}),zt=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),on=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(zt),description:e.Opt(e.Text),created_at:e.Opt(zt)}),_t=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),yt=e.Record({order:e.Opt(nn),owner:e.Opt(e.Principal),matcher:e.Opt(on),paginate:e.Opt(_t)}),sn=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),an=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),cn=e.Record({key:sn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,an)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ln=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,cn)),items_length:e.Nat64}),Yt=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),un=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,scope:Yt,expires_at:e.Opt(e.Nat64)}),dn=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),Zt=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),pn=e.Record({status:Zt,updated_at:e.Nat64,block_index_payment:e.Nat64,mission_control_id:e.Opt(e.Principal),created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64)}),fn=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),hn=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),mn=e.Record({status:Zt,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:hn}),_n=e.Record({desc:e.Bool}),yn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),gn=e.Record({order:e.Opt(_n),paginate:e.Opt(yn)}),xn=e.Record({proposal_id:e.Nat}),Xt=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(xn,Ze)),items_length:e.Nat64}),ke=e.Variant({Orbiter:e.Null,Satellite:e.Null}),bn=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(ke)}),Qt=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:ke}),rt=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),ra=e.Record({openid:e.Opt(b),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(C)}),na=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Yt,expires_at:e.Opt(e.Nat64)}),oa=e.Record({controller:na,controllers:e.Vec(e.Principal)}),ia=e.Record({fee_cycles:Ht,fee_icp:e.Opt(t)}),sa=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:ke}),aa=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:ke}),ca=e.Record({iframe:e.Opt(L),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(A),raw_access:e.Opt(P),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),la=e.Record({segment_id:e.Principal,segment_kind:ke}),ua=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),da=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,t],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],[]),authenticate:e.Func([o],[m],[]),commit_proposal:e.Func([x],[e.Null],[]),commit_proposal_asset_upload:e.Func([y],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(y)],[],[]),count_proposals:e.Func([],[e.Nat64],[]),create_mission_control:e.Func([T],[e.Principal],[]),create_orbiter:e.Func([E],[e.Principal],[]),create_satellite:e.Func([v],[e.Principal],[]),del_controllers:e.Func([w],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([I],[],[]),get_account:e.Func([],[e.Opt(p)],[]),get_auth_config:e.Func([],[e.Opt(B)],[]),get_config:e.Func([],[q],[]),get_create_orbiter_fee:e.Func([te],[e.Opt(t)],[]),get_create_satellite_fee:e.Func([te],[e.Opt(t)],[]),get_credits:e.Func([],[t],[]),get_delegation:e.Func([J],[oe],[]),get_fee:e.Func([re],[Zr],[]),get_or_init_account:e.Func([],[p],[]),get_proposal:e.Func([e.Nat],[e.Opt(Ze)],[]),get_rate_config:e.Func([re],[Gt],[]),get_storage_config:e.Func([],[D],[]),http_request:e.Func([tn],[et],[]),http_request_streaming_callback:e.Func([Xe],[Jt],[]),init_proposal:e.Func([$t],[e.Nat,Ze],[]),init_proposal_asset_upload:e.Func([tt,e.Nat],[Wt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(tt),e.Nat],[e.Vec(e.Tuple(e.Text,Wt))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],[]),list_assets:e.Func([e.Text,yt],[ln],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,un))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,dn))],[]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,pn))],[]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(fn,mn))],[]),list_proposals:e.Func([gn],[Xt],[]),list_segments:e.Func([bn],[e.Vec(e.Tuple(Qt,rt))],[]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([ra],[B],[]),set_controllers:e.Func([oa],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([re,ia],[],[]),set_rate_config:e.Func([re,Gt],[],[]),set_segment:e.Func([sa],[rt],[]),set_segment_metadata:e.Func([aa],[rt],[]),set_storage_config:e.Func([ca],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),unset_segment:e.Func([la],[],[]),upload_proposal_asset_chunk:e.Func([ua],[da],[])})};var oy=async({identity:e,host:t,localActor:r})=>await Tr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),iy=async({agent:e,...t})=>e??await sy(t),sy=async({identity:e,container:t})=>{let r=W(t)&&t!==!1;return await oy({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var lp=({satelliteId:e,certified:t=!1,...r})=>dp({canisterId:e,...r,idlFactory:t?Jc:Gc});var up=({consoleId:e,certified:t=!1,...r})=>dp({canisterId:e,...r,idlFactory:t?ny:ry}),dp=({canisterId:e,idlFactory:t,...r})=>{if(U(e))throw new Error("No canister ID provided.");return ay({canisterId:e,idlFactory:t,...r})},ay=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await iy(n);return ho.createActor(t,{agent:o,canisterId:e,...r??{}})};var pp=({satelliteId:e,container:t})=>{let{satelliteId:r}=Wc({satelliteId:e}),{container:n}=zc({container:t});if(W(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?_o:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},Wc=({satelliteId:e})=>W(e)?{satelliteId:e}:Se.getInstance().get()??{satelliteId:void 0},zc=({container:e})=>W(e)?{container:e}:Se.getInstance().get()??{container:void 0};var we=({satellite:e,options:{certified:t}})=>hp({idlFactory:t?Jc:Gc,actorKey:`stock#${t?"update":"query"}`,...e}),fp=({idlFactory:e,...t})=>hp({idlFactory:e,actorKey:"extended#query",...t}),hp=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=Wc({satelliteId:e});ai(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=zc({container:t});return await go.getInstance().getActor({satelliteId:n,container:o,...r})};var Ss=class extends Error{},Ir=class extends Error{},Cs=class extends Error{},Fs=class extends Error{},bo=class extends Error{},Ps=class extends Error{},Vs=class extends Error{},Bs=class extends Error{},Ds=class extends Error{};var mp=e=>{if(U(e))return se();switch(e.matcher){case"equal":return se({Equal:e.timestamp});case"greaterThan":return se({GreaterThan:e.timestamp});case"lessThan":return se({LessThan:e.timestamp});case"between":return se({Between:[e.timestamps.start,e.timestamps.end]});default:throw new Ds("Invalid list matcher for timestamp",e)}},Yr=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:U(e)?[]:[{key:se(e.key),description:se(e.description),created_at:mp(e.createdAt),updated_at:mp(e.updatedAt)}],paginate:se(U(t)?void 0:{start_after:se(t.startAfter),limit:se(U(t.limit)?void 0:BigInt(t.limit))}),order:se(U(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:se(U(n)?void 0:typeof n=="string"?k.fromText(n):n)});var _p=async e=>{let t=new Blob([JSON.stringify(e,Pd)],{type:"application/json; charset=utf-8"});return new Uint8Array(await t.arrayBuffer())},Us=async e=>{let t=new Blob([e instanceof Uint8Array?e:new Uint8Array(e)],{type:"application/json; charset=utf-8"});return JSON.parse(await t.text(),Vd)},ks=()=>typeof window<"u";var yp=async({data:e})=>{try{return await Us(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var Yc=async e=>{let{data:t,version:r,description:n}=e;return{description:se(n),data:await _p(t),version:se(r)}},Zc=e=>{let{version:t}=e;return{version:se(t)}},jn=async({doc:e,key:t})=>{let{owner:r,version:n,description:o,data:i,...s}=e;return{key:t,description:be(o),owner:r.toText(),data:await Us(i),version:be(n),...s}};var gp=async({collection:e,key:t,...r})=>{let{get_doc:n}=await we(r),o=be(await n(e,t));if(!U(o))return jn({doc:o,key:t})},xp=async({docs:e,...t})=>{let{get_many_docs:r}=await we(t),n=e.map(({collection:s,key:a})=>[s,a]),o=await r(n),i=[];for(let[s,a]of o){let c=be(a);i.push(W(c)?await jn({key:s,doc:c}):void 0)}return i},bp=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await we(r),{key:o}=t,i=await Yc(t),s=await n(e,o,i);return await jn({key:o,doc:s})},wp=async({docs:e,...t})=>{let{set_many_docs:r}=await we(t),n=[];for(let{collection:s,doc:a}of e){let{key:c}=a;n.push([s,c,await Yc(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await jn({key:s,doc:a}));return i},Tp=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await we(r),{key:o}=t;return n(e,o,Zc(t))},Np=async({docs:e,...t})=>{let{del_many_docs:r}=await we(t),n=e.map(({collection:o,doc:i})=>[o,i.key,Zc(i)]);await r(n)},Op=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await we(r);return n(e,Yr(t))},Ep=async({collection:e,filter:t,...r})=>{let{list_docs:n}=await we(r),{items:o,items_page:i,items_length:s,matches_length:a,matches_pages:c}=await n(e,Yr(t)),u=[];for(let[p,d]of o){let{data:l,owner:f,description:h,version:_,...g}=d;u.push({key:p,description:be(h),owner:f.toText(),data:await yp({data:l}),version:be(_),...g})}return{items:u,items_length:s,items_page:be(i),matches_length:a,matches_pages:be(c)}},Rp=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await we(r);return n(e,Yr(t))};var Ls=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await gp({...r,satellite:{...e,identity:n},options:t??jt})},bN=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await xp({...r,satellite:{...e,identity:n},options:t??jt})},Ip=async({satellite:e,...t})=>{let r=de(e?.identity);return await bp({...t,satellite:{...e,identity:r},options:{certified:!0}})},vp=async({satellite:e,...t})=>{let r=de(e?.identity);return await wp({...t,satellite:{...e,identity:r},options:{certified:!0}})},wN=async({satellite:e,...t})=>{let r=de(e?.identity);return await Tp({...t,satellite:{...e,identity:r},options:{certified:!0}})},TN=async({satellite:e,...t})=>{let r=de(e?.identity);return await Np({...t,satellite:{...e,identity:r},options:{certified:!0}})},NN=async({satellite:e,filter:t,...r})=>{let n=de(e?.identity);return await Op({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},ON=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await Ep({...n,filter:r??{},satellite:{...e,identity:o},options:t??jt})},EN=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await Rp({...n,filter:r??{},satellite:{...e,identity:o},options:t??jt})};var Ap=async({provider:e})=>{let{user:t,userId:r}=await qs();if(W(t))return t;try{return await cy({userId:r,provider:e})}catch(n){if($c({error:n,type:cp})){let o=await Sp({userId:r});if(W(o))return o}throw n}},qs=async()=>{let e=As();if(U(e))throw new Bs("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await Sp({userId:t});return{userId:t,user:r}},Sp=({userId:e})=>Ls({collection:"#user",key:e}),cy=({userId:e,...t})=>Ip({collection:"#user",doc:{key:e,data:t}});var Ms=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await mi({fn:async()=>{let{user:r}=await qs();De.getInstance().set(r??null)},syncTabsOnSuccess:e})},Cp=async()=>{await ap({fn:async({authenticated:t})=>{let n=t?qs:()=>Promise.resolve({user:null}),{user:o}=await n();De.getInstance().set(o??null)}})},js=async({user:e})=>{await mi({fn:async()=>{De.getInstance().set(e)},syncTabsOnSuccess:!0})};var Fp=()=>{try{let e=xo.getInstance(),t=async()=>{await Cp(),li({message:"junoSignInReload"})};return e.onLoginSuccess(t),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var Pp=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_SATELLITE_ID??import.meta.env?.PUBLIC_SATELLITE_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_SATELLITE_ID??e():e()},Vp=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_CONTAINER??import.meta.env?.PUBLIC_CONTAINER:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_CONTAINER??e():e()},Bp=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_GOOGLE_CLIENT_ID??import.meta.env?.PUBLIC_GOOGLE_CLIENT_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID??e():e()},Dp=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_GITHUB_CLIENT_ID??import.meta.env?.PUBLIC_GITHUB_CLIENT_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_GITHUB_CLIENT_ID??e():e()},Ks=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_JUNO_API_URL??import.meta.env?.PUBLIC_JUNO_API_URL:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_JUNO_API_URL??e():e()};var Up=BigInt(144e11),kp=!1,Lp={width:576,height:576},qp={width:424,height:576},Xc="internetcomputer.org",Mp="ic0.app",Hs="id.ai";var jp=({width:e,height:t})=>{if(!ks()||U(window)||U(window.top))return;let{top:{innerWidth:r,innerHeight:n}}=window,o=n/2+screenY-t/2,i=r/2+screenX-e/2;return`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${e}, height=${t}, top=${o}, left=${i}`};var Kt=async({fn:e,step:t,onProgress:r})=>{r?.({step:t,state:"in_progress"});try{let n=await e();return r?.({step:t,state:"success"}),n}catch(n){throw r?.({step:t,state:"error"}),n}};var Kp=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(Kp||{});var $s=class{async signIn({options:t,authClient:r,initAuth:n}){await Kt({fn:async()=>await this.#e({options:t,authClient:r}),step:0,onProgress:t?.onProgress}),await Kt({fn:async()=>await n({provider:this.id}),step:1,onProgress:t?.onProgress})}#e({options:t,authClient:r}){return new Promise(async(n,o)=>{if(U(r)){o(new Ir("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===vs){o(new Cs(i));return}o(new Ss(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??Up,allowPinAuthentication:t?.allowPin??kp,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Gs=class extends $s{#e;constructor({domain:t}){super(),this.#e=t}get id(){return"internet_identity"}signInOptions({windowed:t}){let n=(()=>{let i=Se.getInstance().get()?.container;if(U(i)||i===!1){let p=[Xc,Mp].includes(this.#e??Hs);return ht(this.#e)?`https://${Hs}`:p?`https://identity.${this.#e??Xc}`:`https://${this.#e}`}let s=Se.getInstance().get(),a=W(s)&&W(s?.internetIdentityId)?s.internetIdentityId:Kd,{host:c,protocol:u}=new URL(i===!0?_o:i);return/apple/i.test(navigator?.vendor)?`${u}//${c}?canisterId=${a}`:`${u}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:jp((()=>{try{let{hostname:i}=new URL(n);return i.includes(Hs)}catch{return!1}})()?qp:Lp)},identityProvider:n}}};var Qc=class extends Error{},el=class extends Error{},tl=class extends Error{},rl=class extends Error{},nl=class extends Error{},ol=class extends Error{},il=class extends Error{},Js=class extends Error{},sl=class extends Error{},al=class extends Error{},cl=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},ll=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}};var Hp=({auth:e,identity:t})=>"satellite"in e?lp({...e.satellite,identity:t}):up({...e.console,identity:t}),ly=async({actorParams:e,args:t})=>{let{authenticate:r}=await Hp(e);return await r(t)},uy=async({actorParams:e,args:t})=>{let{get_delegation:r}=await Hp(e);return await r(t)},dy=({delegations:e,sessionKey:t})=>{let[r,n]=e,o=Er.fromDelegations(n,Uint8Array.from(r));return{identity:Rr.fromDelegation(t,o),delegationChain:o,sessionKey:t}},Ws=async({jwt:e,context:t,auth:r})=>{let n=await Lt.generate({extractable:!1}),o=new Uint8Array(n.getPublicKey().toDer()),{delegations:i,data:s}=await py({jwt:e,publicKey:o,context:t,auth:r});return{identity:dy({sessionKey:n,delegations:i}),data:s}},py=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await ly({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new nl("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,u=await fy({jwt:e,context:{caller:r,salt:n},auth:o,publicKey:t,expiration:a}),{delegation:p,signature:d}=u,{pubkey:l,expiration:f,targets:h}=p;return{delegations:[s,[{delegation:new zr(Uint8Array.from(l),f,be(h)),signature:Uint8Array.from(d)}]],data:c}},fy=async({jwt:e,publicKey:t,context:{salt:r,caller:n},auth:o,expiration:i,maxRetries:s=5})=>{for(let a=0;a<s;a++){await new Promise(u=>{setInterval(u,1e3*a)});let c=await uy({args:{OpenId:{jwt:e,session_key:t,salt:r,expiration:i}},actorParams:{auth:o,identity:n}});if("Err"in c){let{Err:u}=c;if("NoSuchDelegation"in u||"GetCachedJwks"in u)continue;throw new sl("Getting delegation failed",{cause:c})}return c.Ok}throw new al};var $p=async({url:e})=>{try{let t=await fetch(e,{credentials:"include"});return t.ok?{success:await t.json()}:{error:new Error(`Failed to fetch ${e} (${t.status})`)}}catch(t){return{error:new cl({cause:t})}}},Gp=async({url:e,body:t})=>{try{let r=await fetch(e,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return r.ok?{success:await r.json()}:{error:new Error(`Failed to fetch ${e} (${r.status})`)}}catch(r){return{error:new ll({cause:r})}}};var ul="juno:auth:openid",dl={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},zs={authUrl:"https://github.com/login/oauth/authorize",authScopes:["read:user","user:email"],initUrl:"https://api.juno.build/v1/auth/init/github",finalizeUrl:"https://api.juno.build/v1/auth/finalize/github"};var pl=e=>Jr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),Ys=({url:e})=>{try{return new URL(e)}catch{throw new Qc("Cannot parse authURL",{cause:e})}},hy=()=>window.crypto.getRandomValues(new Uint8Array(32)),my=async({salt:e,caller:t})=>{let r=t.getPrincipal().toUint8Array(),n=new Uint8Array(e.length+r.byteLength);n.set(e),n.set(r,e.length);let o=await window.crypto.subtle.digest("SHA-256",n);return pl(Or(o))},_y=async({caller:e})=>{let t=hy();return{nonce:await my({salt:t,caller:e}),salt:t}},Jp="__caller__",Wp="__salt__",zp="__state__",yy=({caller:e,state:t,salt:r})=>{let n={[Jp]:e.toJSON(),[Wp]:Jr(r),[zp]:t};return JSON.stringify(n)},gy=e=>{let{[Jp]:t,[Wp]:r,[zp]:n}=JSON.parse(e);return{caller:At.fromParsedJson(t),salt:Fd(r),state:n}},fl=async({generateState:e})=>{let t=At.generate(),{nonce:r,salt:n}=await _y({caller:t}),o=await e({nonce:r}),i=yy({caller:t,salt:n,state:o});return sessionStorage.setItem(ul,i),{nonce:r,state:o}},Yp=()=>{let e=sessionStorage.getItem(ul);if(U(e))throw new el;return gy(e)};var xy=async({auth:e,context:t,redirect:{finalizeUrl:r}})=>{let{location:{search:n}}=window,o=new URLSearchParams(n),i=o.get("code"),s=o.get("state"),a=await Gp({url:r,body:{code:i,state:s}});if("error"in a)throw a.error;let{success:{token:c}}=a;if(ht(c))throw new Js;return await Ws({jwt:c,auth:e,context:t})},by=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(ht(r)||!r.startsWith("#"))throw new ol("No hash found in the current location URL");let n=new URLSearchParams(r.slice(1)),o=n.get("state"),i=n.get("id_token"),{state:s}=t;if(ht(s)||o!==s)throw new il("The provided state is invalid",{cause:o});if(ht(i))throw new Js;return await Ws({jwt:i,auth:e,context:t})},hl=async e=>{let t=Yp();if("github"in e){let{github:{redirect:n,auth:o}}=e,{finalizeUrl:i}=zs;return await xy({redirect:n??{finalizeUrl:i},auth:o,context:t})}let{google:r}=e;if("credentials"in r){let{credentials:{jwt:n},auth:o}=r;return await Ws({jwt:n,context:t,auth:o})}return await by({...r,context:t})};var wy=({initUrl:e})=>async({nonce:t})=>{let r=Ys({url:e});r.searchParams.set("nonce",t);let n=await $p({url:r.toString()});if("error"in n)throw n.error;let{success:{state:o}}=n;return o},Ty=({authUrl:e,clientId:t,authScopes:r,state:n,redirectUrl:o})=>{let i=Ys({url:e});i.searchParams.set("client_id",t);let{location:{origin:s}}=window;i.searchParams.set("redirect_uri",o??s),i.searchParams.set("scope",r.join(" ")),i.searchParams.set("state",n),window.location.href=i.toString()},Ny=()=>pl(window.crypto.getRandomValues(new Uint8Array(12))),Oy=async e=>Ny(),Ey=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=Ys({url:e});a.searchParams.set("client_id",t);let{location:{origin:c}}=window;a.searchParams.set("redirect_uri",s??c),a.searchParams.set("response_type","code id_token"),a.searchParams.set("scope",o.join(" ")),a.searchParams.set("state",i),a.searchParams.set("nonce",r),Nr(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},Ry=async({configUrl:e,clientId:t,nonce:r,loginHint:n,domainHint:o})=>{let i=await navigator.credentials.get({identity:{context:"use",providers:[{configURL:e,clientId:t,nonce:r,loginHint:n,domainHint:o}],mode:"active"},mediation:"required"});if(U(i))throw new tl;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new rl("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function _i(e){if("github"in e){let{github:s}=e,{redirect:a}=s,{initUrl:c,...u}=a,{authUrl:p,authScopes:d,initUrl:l}=zs,f=await fl({generateState:wy({initUrl:c??l})});Ty({...u,...f,authUrl:p,authScopes:d});return}let t=await fl({generateState:Oy}),{google:r}=e;if("credentials"in r){let{credentials:s}=r,{configUrl:a}=dl;return await Ry({...s,...t,configUrl:a})}let{redirect:n}=r,{authUrl:o,authScopes:i}=dl;Ey({...n,...t,authUrl:o,authScopes:i})}var Zs=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var Iy=async e=>{let{satelliteId:t}=Se.getInstance().get()??{satelliteId:void 0};if(U(t))throw new Ir("Satellite ID not set. Have you initialized the Satellite?");let r=Se.getInstance().get()?.container,n={auth:{satellite:{satelliteId:t,container:r}}},i=(()=>{let d="github"in e?e?.github?.options?.finalizeUrl:void 0;if(Nr(d))return d;let l=Ks();return ht(l)?null:Zs({url:`${l}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:s,sessionKey:a,identity:c},data:{doc:u}}=await hl("github"in e?{github:{redirect:W(i)?{finalizeUrl:i}:null,...n}}:{google:{redirect:null,...n}});await Ue.getInstance().setAuthClientStorage({delegationChain:s,sessionKey:a});let p=await jn({doc:u,key:c.getPrincipal().toText()});await js({user:p})};var Zp=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),vy=()=>{window.addEventListener("beforeunload",Zp,{capture:!0})},Ay=()=>{window.removeEventListener("beforeunload",Zp,{capture:!0})},Xs=async({fn:e})=>{try{return vy(),await e()}finally{Ay()}};var Qs=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Dp();if(U(r))throw new bo;let{redirect:n}=t;await _i({github:{redirect:{...n??{},clientId:r,initUrl:(()=>{let i=t?.redirect?.initUrl;if(Nr(i))return i;let s=Ks();if(!ht(s))return Zs({url:`${s}/v1/auth/init/github`})?.toString()})()}}})}};var ea=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Bp();if(U(r))throw new bo;let{redirect:n}=t;await _i({google:{redirect:{...n??{},clientId:r}}})}};var Xp=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await vp({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...W(n)&&{aaguid:Ns(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var wo=class{async signUp({options:{onProgress:t,maxTimeToLiveInMilliseconds:r,passkey:n}={},loadAuthWithUser:o}){let{satelliteId:i}=Se.getInstance().get()??{satelliteId:void 0};if(U(i))throw new Ir("Satellite ID not set. Have you initialized the Satellite?");let s=({step:_,state:g})=>{switch(_){case Wr.RequestingUserCredential:t?.({step:1,state:g});break;case Wr.FinalizingCredential:t?.({step:2,state:g});break;case Wr.Signing:t?.({step:3,state:g});break}},c=await Kt({fn:async()=>await Fc.createWithNewCredential({onProgress:s,passkeyOptions:n}),step:0,onProgress:t}),{delegationIdentity:u,sessionKey:p}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),l=await Kt({fn:async()=>await Xp({delegationIdentity:u,passkeyIdentity:c,satelliteId:i}),step:5,onProgress:t});await Kt({fn:async()=>await this.#t({delegationIdentity:u,sessionKey:p}),step:4,onProgress:t}),await Kt({fn:async()=>await o({user:l}),step:5,onProgress:t})}async signIn({options:{onProgress:t,maxTimeToLiveInMilliseconds:r}={},loadAuth:n}){let{satelliteId:o}=Se.getInstance().get()??{satelliteId:void 0};if(U(o))throw new Ir("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:d})=>{let l=await Ls({collection:"#user-webauthn",key:Jr(d),options:{certified:!0},satellite:{identity:new ot,satelliteId:o}});if(U(l))throw new Ps("No public key found for the selected passkey.");let{data:f}=l,{publicKey:h}=f;return Mn(h,ii)},s=({step:d,state:l})=>{switch(d){case Wr.RequestingUserCredential:t?.({step:0,state:l});break;case Wr.FinalizingCredential:t?.({step:1,state:l});break;case Wr.Signing:t?.({step:2,state:l});break}},a=await Fc.createWithExistingCredential({retrievePublicKey:i,onProgress:s}),{delegationIdentity:c,sessionKey:u}=await this.#e({identity:a,maxTimeToLiveInMilliseconds:r});await Kt({fn:async()=>await this.#t({delegationIdentity:c,sessionKey:u}),step:3,onProgress:t}),await Kt({fn:n,step:4,onProgress:t})}async#e({identity:t,maxTimeToLiveInMilliseconds:r}){let n=await Lt.generate({extractable:!1}),o=r??144e5,i=await Er.create(t,n.getPublicKey(),new Date(Date.now()+o));return{delegationIdentity:Rr.fromDelegation(n,i),sessionKey:n}}async#t({sessionKey:t,delegationIdentity:r}){let n=new Mt;await Promise.all([n.set(We,t.getKeyPair()),n.set(Je,JSON.stringify(r.getDelegation().toJSON()))])}};var Cy=async({provider:e})=>{await mi({fn:async()=>{let r=await Ap({provider:e});De.getInstance().set(r)},syncTabsOnSuccess:!0})},Fy=async e=>{if("google"in e){let{google:{options:t}}=e;await ta({fn:()=>new ea().signIn({options:t}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:t}}=e;await ta({fn:()=>new Qs().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await ta({fn:()=>new wo().signIn({options:t,loadAuth:()=>Ms({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await ta({fn:()=>new Gs({domain:n}).signIn({options:o,authClient:Ue.getInstance().getAuthClient(),initAuth:Cy}),context:r});return}throw new Fs("An unknown or unsupported provider was provided for sign-in.")},ta=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Xs({fn:e})};var Py=async e=>{let t=async()=>await Vy(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Xs({fn:t})},Vy=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new wo().signUp({options:t,loadAuthWithUser:js});return}throw new Vs("An unknown or unsupported provider was provided for sign-up.")};var p1=e=>e?.data?.provider==="webauthn",f1=e=>e?.data?.provider==="google";var y1=async({idlFactory:e,satellite:t})=>{let r=de(t?.identity);return await fp({idlFactory:e,...t,identity:r})};var Qp=async({asset:{data:e,headers:t,...r},actor:n,progress:o})=>{let{init_asset_upload:i,upload_asset_chunk:s,commit_asset_upload:a}=n,{batch_id:c}=await i(By(r));o?.onInitiatedBatch();let{chunkIds:u}=await ky({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await Uy({commitFn:a,batchId:c,data:e,headers:t,chunkIds:u}),o?.onCommittedBatch()};var By=({filename:e,collection:t,token:r,fullPath:n,encoding:o,description:i})=>({collection:t,full_path:n,name:e,token:se(r),encoding_type:se(o),description:se(i)}),Dy=({batchId:e,chunkIds:t,headers:r,data:n})=>{let o=r.find(([i,s])=>i.toLowerCase()==="content-type")===void 0&&n.type!==void 0&&n.type!==""?[["Content-Type",n.type]]:void 0;return{batch_id:e,chunk_ids:t.map(({chunk_id:i})=>i),headers:[...r,...o??[]]}},Uy=async({commitFn:e,...t})=>{let r=Dy(t);await e(r)},ky=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=ks()?new Blob([await e.arrayBuffer()]):e,i=0n;for(let a=0;a<o.size;a+=19e5){let c=o.slice(a,a+19e5);n.push({batchId:r,chunk:c,uploadFn:t,orderId:i}),i++}let s=[];for await(let a of Ly({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*Ly({uploadChunks:e,limit:t=12}){for(let r=0;r<e.length;r=r+t){let n=e.slice(r,r+t);yield await Promise.all(n.map(o=>qy(o)))}}var qy=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:se(n)});var ef=async({asset:e,...t})=>{let r=await we(t);await Qp({actor:r,asset:e})},tf=async({collection:e,filter:t,...r})=>{let{list_assets:n}=await we(r),{items:o,items_length:i,items_page:s,matches_length:a,matches_pages:c}=await n(e,Yr(t));return{items:o.map(([u,p])=>p),items_length:i,items_page:be(s),matches_length:a,matches_pages:be(c)}},rf=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await we(r);return n(e,Yr(t))},nf=async({collection:e,fullPath:t,...r})=>(await we(r)).del_asset(e,t),of=async({assets:e,satellite:t})=>{let{del_many_assets:r}=await we({satellite:t,options:{certified:!0}}),n=e.map(({collection:o,fullPath:i})=>[o,i]);await r(n)},sf=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await we(r);return n(e,Yr(t))},af=async({collection:e,fullPath:t,token:r,...n})=>{let{set_asset_token:o}=await we(n);return o(e,t,se(r))},cf=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await we(r);return be(await n(e,t))},lf=async({assets:e,...t})=>{let{get_many_assets:r}=await we(t),n=e.map(({collection:i,fullPath:s})=>[i,s]);return(await r(n)).map(([i,s])=>be(s))};var uf=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var V1=e=>df(e),B1=e=>df({filename:e.data.name,...e}),df=async({filename:e,data:t,collection:r,headers:n=[],fullPath:o,token:i,satellite:s,encoding:a,description:c})=>{let u=de(s?.identity),p=decodeURI(e),d=o??`/${r}/${p}`,l={...s,identity:u};return await ef({asset:{data:t,filename:p,collection:r,token:i,headers:n,fullPath:d,encoding:a,description:c},satellite:l,options:{certified:!0}}),{downloadUrl:pf({satellite:l,assetKey:{fullPath:d,token:i}}),fullPath:d,...W(i)&&{token:i},name:p}},D1=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)},{items:i,...s}=await tf({collection:e,filter:t??{},satellite:o,options:n??jt}),a=i.map(({key:{full_path:c,token:u,name:p,owner:d,description:l},headers:f,encodings:h,created_at:_,updated_at:g})=>{let m=be(u);return{fullPath:c,description:be(l),name:p,downloadUrl:pf({satellite:o,assetKey:{fullPath:c,token:m}}),token:m,headers:f,encodings:h.reduce((x,[y,{modified:T,sha256:E,total_length:O}])=>({...x,[y]:{modified:T,sha256:uf(E),total_length:O}}),{}),owner:d.toText(),created_at:_,updated_at:g}});return{items:a,assets:a,...s}},U1=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)};return await rf({collection:e,satellite:o,filter:t??{},options:n??jt})},k1=({collection:e,fullPath:t,satellite:r})=>nf({collection:e,fullPath:t,satellite:{...r,identity:de(r?.identity)},options:{certified:!0}}),L1=({collection:e,fullPath:t,token:r,satellite:n})=>af({collection:e,fullPath:t,token:r,satellite:{...n,identity:de(n?.identity)},options:{certified:!0}}),q1=({assets:e,satellite:t})=>of({assets:e,satellite:{...t,identity:de(t?.identity)},options:{certified:!0}}),M1=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:de(t?.identity)};return await sf({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},j1=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await cf({...r,satellite:{...e,identity:n},options:t??jt})},K1=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await lf({...r,satellite:{...e,identity:n},options:t??jt})},pf=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:de(r?.identity)};return`${pp(n)}${e}${W(t)?`?token=${t}`:""}`};var My=e=>{let t=e?.satelliteId??Pp();ai(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Vp();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},Q1=e=>jy(e),jy=async e=>{let t=My(e);Se.getInstance().set(t),await Ms();let r=t.workers?.auth!==void 0?sp(t.workers.auth):void 0,n=t.syncTabs===!1?void 0:Fp();return[...W(r)?[r]:[],...W(n)?[n]:[]]},Ky=e=>De.getInstance().subscribe(e),eE=Ky;export{Kp as AuthClientSignInProgressStep,Bs as InitError,Gs as InternetIdentityProvider,Ds as ListError,Ss as SignInError,Ir as SignInInitError,bo as SignInMissingClientIdError,Fs as SignInProviderNotSupportedError,Cs as SignInUserInterruptError,Vs as SignUpProviderNotSupportedError,Ps as WebAuthnSignInRetrievePublicKeyError,eE as authSubscribe,U1 as countAssets,EN as countDocs,k1 as deleteAsset,wN as deleteDoc,M1 as deleteFilteredAssets,NN as deleteFilteredDocs,q1 as deleteManyAssets,TN as deleteManyDocs,pf as downloadUrl,j1 as getAsset,Ls as getDoc,ty as getIdentityOnce,K1 as getManyAssets,bN as getManyDocs,y1 as getSatelliteExtendedActor,Iy as handleRedirectCallback,Q1 as initJuno,jy as initSatellite,f1 as isGoogleUser,I_ as isWebAuthnAvailable,p1 as isWebAuthnUser,D1 as listAssets,ON as listDocs,Ky as onAuthStateChange,L1 as setAssetToken,Ip as setDoc,vp as setManyDocs,Fy as signIn,Hc as signOut,Py as signUp,ey as unsafeIdentity,V1 as uploadBlob,B1 as uploadFile};
|
|
56
|
+
Retrying request.`),await this.#g({requestFn:r,backoff:n,tries:o+1});throw ko.fromCode(new jo(p))}let c=Ha(s.headers);if(s.status===Ic||s.status===r_)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let u=await s.text();if(s.status===n_&&s.url.includes("api/v4"))throw re.fromCode(new Mo);if(Cd(u))throw z.fromCode(new qt(u,this.#l));if(o<this.#u)return await this.#g({requestFn:r,backoff:n,tries:o+1});throw re.fromCode(new qo(s.status,s.statusText,c,u))}async query(t,r,n){let o=this.#f(),i=r.effectiveCanisterId?L.from(r.effectiveCanisterId):L.from(t);await this.#p(i),this.log.print(`ecid ${i.toString()}`),this.log.print(`canisterId ${t.toString()}`);let s,a=await(n??this.#n);if(!a)throw _e.fromCode(new Lr);let c=L.from(t),u=a.getPrincipal(),p=Ac(this.#l,this.#r),d={request_type:Hn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:u,ingress_expiry:p},l=gr(d);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#s?{Authorization:"Basic "+btoa(this.#s)}:{}}},endpoint:br.Query,body:d}),s=await a.transformRequest(s);let f=ni(s.body),h={canister:c.toText(),ecid:i,transformedRequest:s,body:f,requestId:l,backoff:o,tries:0},_=async()=>{let m=await this.#b(h);return{requestDetails:d,...m}},g=async()=>{let m=this.#_.get(i.toString());if(m)return m;await this.fetchSubnetKeys(i.toString());let x=this.#_.get(i.toString());if(!x)throw Me.fromCode(new Qi);return x};try{if(!this.#y)return await _();let[m,x]=await Promise.all([_(),g()]);try{return this.#T(m,x)}catch{this.log.warn("Query response verification failed. Retrying with fresh subnet keys."),this.#_.delete(i.toString());let y=await g();return this.#T(m,y)}}catch(m){let x;if(m instanceof ot){if(m.hasCode(qt)&&!this.#i)return await this.syncTime(i),this.query(t,r,n);m.code.requestContext={requestId:l,senderPubKey:s.body.sender_pubkey,senderSignature:s.body.sender_sig,ingressExpiry:s.body.content.ingress_expiry},x=m}else x=ae.fromCode(new Re(m));throw this.log.error(`Error while making query: ${x.message}`,x),x}}#T;async createReadStateRequest(t,r){await this.#p();let n=await(r??this.#n);if(!n)throw _e.fromCode(new Lr);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#s?{Authorization:"Basic "+btoa(this.#s)}:{}}},endpoint:br.ReadState,body:{request_type:Hn.ReadState,paths:t.paths,sender:o,ingress_expiry:Ac(this.#l,this.#r)}});return n.transformRequest(i)}async readState(t,r,n,o){await this.#x();let i=L.from(t);function s(p){for(let d of p.paths){let[l,f]=d,h=new TextEncoder().encode("request_status");if(jn(l,h))return f}}let a,c;if(o)a=o;else{c=s(r);let p=await this.#n;if(!p)throw _e.fromCode(new Lr);a=await this.createReadStateRequest(r,p)}let u=new URL(`/api/v3/canister/${i.toString()}/read_state`,this.host);return await this.#N(u,{canisterId:i},a,c)}async readSubnetState(t,r){await this.#x();let n=L.from(t),o=new URL(`/api/v3/subnet/${n.toString()}/read_state`,this.host),i=await this.createReadStateRequest(r,this.#n??void 0);return await this.#N(o,{subnetId:n},i)}async#N(t,r,n,o){let i=this.#f();try{let{responseBodyBytes:s}=await this.#g({requestFn:()=>this.#o(t,{...this.#c,...n.request,body:ni(n.body)}),backoff:i,tries:0});return Ke(s)}catch(s){let a;if(s instanceof ot){if(s.hasCode(qt)&&!this.#i){if("canisterId"in r)await this.syncTime(r.canisterId);else if("subnetId"in r)await this.syncTimeWithSubnet(r.subnetId);else throw ut;return await this.#N(t,r,n,o)}s.code.requestContext={requestId:o??gr(n),senderPubKey:n.body.sender_pubkey,senderSignature:n.body.sender_sig,ingressExpiry:n.body.content.ingress_expiry},a=s}else a=ae.fromCode(new Re(s));throw this.log.error(`Error while making read state: ${a.message}`,a),a}}parseTimeFromResponse(t){let r;if(t.certificate){let n=Ke(t.certificate);if(n&&"tree"in n)r=n.tree;else throw re.fromCode(new qr("Could not decode time from response"));let o=vr(["time"],r);if(o.status!==De.Found)throw re.fromCode(new vt("Time was not found in the response or was not in its expected format.",o.status));if(!(o.value instanceof Uint8Array)&&!ArrayBuffer.isView(o))throw re.fromCode(new qi("Time was not in its expected format."));let i=Wr(o.value);return this.log.print("Time from response:",i),this.log.print("Time from response in milliseconds:",i.getTime()),i.getTime()}else this.log.warn("No certificate found in response");return 0}async syncTime(t){this.#a=this.#a??(async()=>{await this.#x();let r=Date.now();try{t||this.log.print("Syncing time with the IC. No canisterId provided, so falling back to ryjl3-tyaaa-aaaaa-aaaba-cai");let n=t??L.from("ryjl3-tyaaa-aaaaa-aaaba-cai"),o=e.createSync({identity:new it,host:this.host.toString(),fetch:this.#o,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),i=await Promise.all(Array(3).fill(null).map(async()=>{let a=(await wd({canisterId:n,agent:o,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(a instanceof Date)return a.getTime()},[]));this.#O(r,i)}catch(n){let o=n instanceof ot?n:ae.fromCode(new Re(n));throw this.log.error("Caught exception while attempting to sync time",o),o}})(),await this.#a.finally(()=>{this.#a=null})}async syncTimeWithSubnet(t){await this.#x();let r=Date.now();try{let n=e.createSync({identity:new it,host:this.host.toString(),fetch:this.#o,retryTimes:0,rootKey:this.rootKey??void 0,shouldSyncTime:!1}),o=await Promise.all(Array(3).fill(null).map(async()=>{let s=(await Td({subnetId:t,agent:n,paths:["time"],disableCertificateTimeVerification:!0})).get("time");if(s instanceof Date)return s.getTime()},[]));this.#O(r,o)}catch(n){let o=n instanceof ot?n:ae.fromCode(new Re(n));throw this.log.error("Caught exception while attempting to sync time with subnet",o),o}}#O(t,r){let n=r.reduce((o,i)=>typeof i=="number"&&i>o?i:o,0);n>0&&(this.#r=n-t,this.#i=!0,this.log.notify({message:`Syncing time: offset of ${this.#r}`,level:"info"}))}async status(){let t=this.#s?{Authorization:"Basic "+btoa(this.#s)}:{},r=new URL("/api/v2/status",this.host);this.log.print(`fetching "${r.pathname}"`);let n=this.#f(),{responseBodyBytes:o}=await this.#g({backoff:n,requestFn:()=>this.#o(r,{headers:t,...this.#c}),tries:0});return Ke(o)}async fetchRootKey(){return this.#e=this.#e??(async()=>{let t=await this.status();return this.rootKey=t.root_key,this.rootKey})(),await this.#e.finally(()=>{this.#e=null})}async#p(t){await Promise.all([this.#x(),this.#R(t)])}async#x(){if(!this.rootKey)if(this.rootKey===null&&this.host.toString()!=="https://icp-api.io"&&this.#t)await this.fetchRootKey();else throw _e.fromCode(new lt(this.#t))}async#R(t){this.#d&&!this.hasSyncedTime()&&await this.syncTime(t)}invalidateIdentity(){this.#n=null}replaceIdentity(t){this.#n=Promise.resolve(t)}async fetchSubnetKeys(t){let r=L.from(t);await this.#p(r);let n=this.rootKey,o=await this.readState(r,{paths:[[G("subnet")]]}),i=await at.create({certificate:o.certificate,rootKey:n,principal:{canisterId:r},agent:this});if(!i.cert.delegation){let c=L.selfAuthenticating(n);if(!gc({canisterId:r,subnetId:c,tree:i.cert.tree}))throw Me.fromCode(new Dn(r,c))}let s=bc(i.cert,n),a=To(i.cert,s);return this.#_.set(r.toText(),a),a}async getSubnetIdFromCanister(t){let r=L.from(t);await this.#p(r);let n=await this.readState(r,{paths:[[G("time")]]}),o=await at.create({certificate:n.certificate,rootKey:this.rootKey,principal:{canisterId:r},agent:this});return bc(o.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===br.Call)for(let n of this.#m)r=r.then(o=>n(o).then(i=>i||o));else for(let n of this.#h)r=r.then(o=>n(o).then(i=>i||o));return r}getTimeDiffMsecs(){return this.#r}hasSyncedTime(){return this.#i}};function Ac(e,t){let r=e*Sc;return mo.fromDeltaInMilliseconds(r,t)}function Cd(e){return e.includes("Invalid request expiry: ")}var s_=300*1e3;function Vd(){return d_(c_(a_(),1e3),u_(1e3,1.2),l_(s_))}function a_(){let e=!0;return async()=>e?(e=!1,!0):!1}function c_(e,t){return async(r,n,o)=>{if(await e(r,n,o))return new Promise(i=>setTimeout(i,t))}}function l_(e){let t=Date.now()+e;return async(r,n,o)=>{if(Date.now()>t)throw re.fromCode(new Un(`Request timed out after ${e} msec`,n,o))}}function u_(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function d_(...e){return async(t,r,n)=>{for(let o of e)await o(t,r,n)}}var Pd={preSignReadStateRequest:!1};function Bd(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Cc(e,t){return e!==null&&typeof e=="object"&&Bd(e,t)}function f_(e,t){return Bd(e,t)&&typeof e[t]=="function"}function Fd(e){return Cc(e,"body")&&Cc(e.body,"content")&&e.body.content.request_type===Hn.ReadState&&Cc(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&f_(e.body.content.ingress_expiry,"toHash")}async function Vc(e,t,r,n={}){let o=[G("request_status"),r],i,s;if(n.preSignReadStateRequest??!1?(s=await h_({paths:[o],agent:e,pollingOptions:n}),i=await e.readState(t,{paths:[o]},void 0,s)):i=await e.readState(t,{paths:[o]}),e.rootKey==null)throw _e.fromCode(new lt);let c=await at.create({certificate:i.certificate,rootKey:e.rootKey,principal:{canisterId:t},blsVerify:n.blsVerify,agent:e}),u=Ie(c.lookup_path([...o,G("status")])),p;switch(typeof u>"u"?p=$t.Unknown:p=new TextDecoder().decode(u),p){case $t.Replied:return{reply:Ie(c.lookup_path([...o,"reply"])),certificate:c};case $t.Received:case $t.Unknown:case $t.Processing:{let d=n.strategy??Vd();return await d(t,r,p),Vc(e,t,r,{...n,strategy:d,request:s})}case $t.Rejected:{let d=new Uint8Array(Ie(c.lookup_path([...o,"reject_code"])))[0],l=new TextDecoder().decode(Ie(c.lookup_path([...o,"reject_message"]))),f=Ie(c.lookup_path([...o,"error_code"])),h=f?new TextDecoder().decode(f):void 0;throw kr.fromCode(new no(r,d,l,h))}case $t.Done:throw ae.fromCode(new zi(r))}throw ut}async function h_(e){let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&Fd(n.request))return n.request;let o=await r.createReadStateRequest?.({paths:t},void 0);if(!Fd(o))throw z.fromCode(new rs(o));return o}var mt=Symbol.for("ic-agent-metadata"),Eo=class e{static agentOf(t){return t[mt].config.agent}static interfaceOf(t){return t[mt].service}static canisterIdOf(t){return L.from(t[mt].config.canisterId)}static createActorClass(t,r){let n=t({IDL:Mn});class o extends e{constructor(s){if(!s.canisterId)throw z.fromCode(new Ko(s.canisterId));let a=typeof s.canisterId=="string"?L.fromText(s.canisterId):s.canisterId;super({config:{...Dd,...s,canisterId:a},service:n});for(let[c,u]of n._fields)r?.httpDetails&&u.annotations.push(Fc),r?.certificate&&u.annotations.push(Ud),this[c]=__(this,c,u,s.blsVerify)}}return o}static createActor(t,r){if(!r.canisterId)throw z.fromCode(new Ko(r.canisterId));return new(this.createActorClass(t))(r)}static createActorWithHttpDetails(t,r){return new(this.createActorClass(t,{httpDetails:!0}))(r)}static createActorWithExtendedDetails(t,r,n={httpDetails:!0,certificate:!0}){return new(this.createActorClass(t,n))(r)}constructor(t){this[mt]=Object.freeze(t)}};function Oo(e,t){let r=Mn.decode(e,t);switch(r.length){case 0:return;case 1:return r[0];default:return r}}var Dd={pollingOptions:Pd},Fc="http-details",Ud="certificate";function __(e,t,r,n){let o;r.annotations.includes("query")||r.annotations.includes("composite_query")?o=async(s,...a)=>{s={...s,...e[mt].config.queryTransform?.(t,a,{...e[mt].config,...s})};let c=s.agent||e[mt].config.agent||new Sr,u=L.from(s.canisterId||e[mt].config.canisterId),p=Mn.encode(r.argTypes,a),d=await c.query(u,{methodName:t,arg:p,effectiveCanisterId:s.effectiveCanisterId}),l={...d.httpDetails,requestDetails:d.requestDetails};switch(d.status){case Pr.Rejected:{let f=new Ji(d.requestId,d.reject_code,d.reject_message,d.error_code,d.signatures);throw f.callContext={canisterId:u,methodName:t,httpDetails:l},kr.fromCode(f)}case Pr.Replied:return r.annotations.includes(Fc)?{httpDetails:l,result:Oo(r.retTypes,d.reply.arg)}:Oo(r.retTypes,d.reply.arg)}}:o=async(s,...a)=>{s={...s,...e[mt].config.callTransform?.(t,a,{...e[mt].config,...s})};let c=s.agent||e[mt].config.agent||Sr.createSync(),{canisterId:u,effectiveCanisterId:p,pollingOptions:d}={...Dd,...e[mt].config,...s},l=L.from(u),f=p!==void 0?L.from(p):l,h=Mn.encode(r.argTypes,a),{requestId:_,response:g,requestDetails:m}=await c.call(l,{methodName:t,arg:h,effectiveCanisterId:f,nonce:s.nonce}),x,y;if(El(g.body)){if(c.rootKey==null)throw _e.fromCode(new lt);let E=g.body.certificate;y=await at.create({certificate:E,rootKey:c.rootKey,principal:{canisterId:f},blsVerify:n,agent:c});let v=[G("request_status"),_];switch(new TextDecoder().decode(Ie(y.lookup_path([...v,"status"])))){case"replied":x=Ie(y.lookup_path([...v,"reply"]));break;case"rejected":{let I=new Uint8Array(Ie(y.lookup_path([...v,"reject_code"])))[0],V=new TextDecoder().decode(Ie(y.lookup_path([...v,"reject_message"]))),C=Ie(y.lookup_path([...v,"error_code"])),b=C?new TextDecoder().decode(C):void 0,N=new no(_,I,V,b);throw N.callContext={canisterId:l,methodName:t,httpDetails:g},kr.fromCode(N)}}}else if(Ol(g.body)){let{reject_code:E,reject_message:v,error_code:w}=g.body,I=new Wi(_,E,v,w);throw I.callContext={canisterId:l,methodName:t,httpDetails:g},kr.fromCode(I)}if(g.status===202){let E={...d,blsVerify:n},v=await Vc(c,f,_,E);y=v.certificate,x=v.reply}let T=r.annotations.includes(Fc),O=r.annotations.includes(Ud),R={...g,requestDetails:m};if(x!==void 0)return T&&O?{httpDetails:R,certificate:y,result:Oo(r.retTypes,x)}:O?{certificate:y,result:Oo(r.retTypes,x)}:T?{httpDetails:R,result:Oo(r.retTypes,x)}:Oo(r.retTypes,x);{let E=new Re(`Call was returned undefined. We cannot determine if the call was successful or not. Return types: [${r.retTypes.map(v=>v.display()).join(",")}].`);throw E.callContext={canisterId:l,methodName:t,httpDetails:R},ae.fromCode(E)}};let i=(...s)=>o({},...s);return i.withOptions=s=>(...a)=>o(s,...a),i}var y_=(e=>(e[e.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",e[e.InvalidFormat=1]="InvalidFormat",e[e.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",e))(y_||{}),Qb=BigInt(1e8);var U=e=>e==null,J=e=>!U(e),Cr=e=>J(e)&&e!=="",_t=e=>!Cr(e);var g_=class extends Error{},bi=(e,t)=>{if(e==null)throw new g_(t)};var Vr=e=>new Uint8Array(e),Us=e=>Array.from(e);var Ld=({a:e,b:t})=>e.length===t.length&&e.every((r,n)=>r===t[n]);var kd="abcdefghijklmnopqrstuvwxyz234567",xi=Object.create(null);for(let e=0;e<kd.length;e++)xi[kd[e]]=e;xi[0]=xi.o;xi[1]=xi.i;var Qr=e=>btoa(String.fromCharCode(...new Uint8Array(e))),qd=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),ew=new Uint32Array([0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117]);var Pc="__bigint__",Bc="__principal__",Dc="__uint8array__",Md=(e,t)=>typeof t=="bigint"?{[Pc]:`${t}`}:J(t)&&L.isPrincipal(t)?{[Bc]:L.from(t).toText()}:J(t)&&t instanceof Uint8Array?{[Dc]:Array.from(t)}:t,jd=(e,t)=>{let r=n=>t[n];return J(t)&&typeof t=="object"&&Pc in t?BigInt(r(Pc)):J(t)&&typeof t=="object"&&Bc in t?L.fromText(r(Bc)):J(t)&&typeof t=="object"&&Dc in t?Uint8Array.from(r(Dc)):t};var se=e=>J(e)?[e]:[],xe=e=>e?.[0];var x_=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=b_({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},b_=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?Us(e):e).map(r=>r.toString(16).padStart(2,"0")).join("").replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5");return t==="00000000-0000-0000-0000-000000000000"?{unknownProvider:null}:{aaguid:t}};function w_(e){let t=new DataView(new ArrayBuffer(2)),r=e.slice(53,55);[...new Uint8Array(r)].forEach((o,i)=>t.setUint8(i,o));let n=t.getUint16(0);return e.slice(55+n)}function T_(e){return Zn(e,gi)}var N_=class{constructor(e){this._cose=e,this.#e=T_(e)}#e;toDer(){return this.#e}toRaw(){return new Uint8Array(this.#e)}},Jd=class{#e;#t;constructor({rawId:e,cose:t}){this.#e=e,this.#t=new N_(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Qr(this.#e)}},O_=class extends Jd{#e;#t;constructor({authData:e,...t}){super(t);let r=x_({authData:e});this.#e="aaguidText"in r?r.aaguidText:void 0,this.#t="aaguidBytes"in r?r.aaguidBytes:void 0}getAAGUID(){return this.#t}getAAGUIDText(){return this.#e}},E_=class extends Jd{},R_=class extends Error{},v_=class extends Error{},I_=class extends Error{},A_=class extends Error{},S_=class extends Error{},C_=class extends Error{},V_=class extends Error{},Kd=class extends Error{};var F_={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},P_=6e4,Wd=()=>window.crypto.getRandomValues(new Uint8Array(16)),B_=()=>Wd(),D_=()=>Wd(),U_=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new R_}},zd=({appId:e})=>e?.id??U_(),k_=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:zd({appId:e})}}),o=()=>({user:{id:D_(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:B_(),...n(),...o(),pubKeyCredParams:Object.values(F_).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},L_=(e={})=>({rpId:zd(e),allowCredentials:[],userVerification:"required"}),Uc=async({fn:e,step:t,onProgress:r})=>{r?.({step:t,state:"in_progress"});try{let n=await e();return r?.({step:t,state:"success"}),n}catch(n){throw r?.({step:t,state:"error"}),n}},en=(e=>(e[e.RequestingUserCredential=0]="RequestingUserCredential",e[e.FinalizingCredential=1]="FinalizingCredential",e[e.Signing=2]="Signing",e))(en||{}),Yd=({timeout:e})=>AbortSignal.timeout(e??P_),q_=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...L_(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:Yd({timeout:n})}),Hd=e=>{if(e.status!=="initialized")throw new v_},Gd=e=>{if(U(e))throw new I_},$d=({type:e})=>{if(e!=="public-key")throw new A_},kc=class wi extends Gt{#e;#t;constructor({onProgress:t,...r}){if(super(),this.#e=t,"retrievePublicKey"in r){let{retrievePublicKey:n}=r;this.#t={status:"pending",retrievePublicKey:n};return}this.#t=wi.#r({credential:new O_(r)})}static#r({credential:t}){return{status:"initialized",credential:t}}static async createWithNewCredential({passkeyOptions:t,timeout:r,...n}={}){let o=await navigator.credentials.create({publicKey:k_(t),signal:Yd({timeout:r})});Gd(o),$d(o);let{response:{attestationObject:i},rawId:s}=o;if(U(i))throw new S_;let{authData:a}=fs.decode(Vr(i)),c=w_(a);return new wi({...n,rawId:Vr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new wi(t)}getPublicKey(){Hd(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){Hd(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await Uc({fn:async()=>{let n=await q_({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return Gd(n),$d(n),n},step:0,onProgress:this.#e});return await Uc({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Ld({a:this.#t.credential.getCredentialId(),b:Vr(n)}))throw new C_;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:Vr(n)});this.#t=wi.#r({credential:new E_({rawId:Vr(n),cose:i})})},step:1,onProgress:this.#e}),await Uc({fn:async()=>{let{response:n}=r,{clientDataJSON:o}=n,{authenticatorData:i,signature:s}="authenticatorData"in n&&"signature"in n?n:{};if(U(i))throw new Kd;if(U(s))throw new Kd;let a=fs.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:Vr(s)});if(U(a))throw new V_;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},M_=async()=>J(window.PublicKeyCredential)&&"isUserVerifyingPlatformAuthenticatorAvailable"in PublicKeyCredential?await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable():!1;var Ro=class{callbacks=[];populate(t){this.callbacks.forEach(({callback:r})=>r(t))}subscribe(t){let r=Symbol();return this.callbacks.push({id:r,callback:t}),()=>this.callbacks=this.callbacks.filter(({id:n})=>n!==r)}};var Ue=class e extends Ro{static instance;authUser=null;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(t){this.authUser=t,this.populate(t)}get(){return this.authUser}subscribe(t){let r=super.subscribe(t);return t(this.authUser),r}reset(){this.authUser=null,this.populate(this.authUser)}};var Ti=({message:e,detail:t})=>{let r=new CustomEvent(e,{detail:t,bubbles:!0});document.dispatchEvent(r)};var vo="http://127.0.0.1:5987",Zd="rdmx6-jaaaa-aaaaa-aaadq-cai";var Xd=async({identity:e,container:t})=>{let n=J(t)&&t!==!1?t===!0?vo:t:"https://icp-api.io",o=J(t);return await Sr.create({identity:e,shouldFetchRootKey:o,host:n})};var Io=class e{static instance;#e=void 0;constructor(){}static getInstance(){return U(e.instance)&&(e.instance=new e),e.instance}async getAgent({identity:t,...r}){let n=t.getPrincipal().toText();if(U(this.#e)||U(this.#e[n])){let o=await Xd({identity:t,...r});return this.#e={...this.#e??{},[n]:o},o}return this.#e[n]}reset(){this.#e=null}};var Ao=class e{static instance;#e=void 0;constructor(){}static getInstance(){return U(e.instance)&&(e.instance=new e),e.instance}async getActor({satelliteId:t,identity:r,actorKey:n,...o}){let i=`${n}#${r.getPrincipal().toText()}#${t};`;if(U(this.#e)||U(this.#e[i])){let s=await this.createActor({satelliteId:t,identity:r,...o});return this.#e={...this.#e??{},[i]:s},s}return this.#e[i]}reset(){this.#e=null}async createActor({idlFactory:t,satelliteId:r,...n}){let o=await Io.getInstance().getAgent(n);return Eo.createActor(t,{agent:o,canisterId:r})}};function Qd(e){return e!==null&&typeof e=="object"}var Ni=class e{static from(t){if(typeof t=="string"){let r=Ee(t);return this.fromRaw(r)}else if(Qd(t)){let r=t;if(Qd(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(Mt(n.buffer))}else{if(r instanceof ArrayBuffer)return this.fromRaw(Mt(r));if("rawKey"in r&&r.rawKey instanceof Uint8Array)return this.fromRaw(r.rawKey);if("derKey"in r)return this.fromDer(r.derKey);if("toDer"in r)return this.fromDer(r.toDer())}}throw new Error("Cannot construct Ed25519PublicKey from the provided key.")}static fromRaw(t){return new e(t)}static fromDer(t){return new e(this.derDecode(t))}static{this.RAW_KEY_LENGTH=32}static derEncode(t){let r=Zn(t,Yn);return r.__derEncodedPublicKey__=void 0,r}static derDecode(t){let r=Xn(t,Yn);if(r.length!==this.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");return r}#e;get rawKey(){return this.#e}#t;get derKey(){return this.#t}constructor(t){if(t.byteLength!==e.RAW_KEY_LENGTH)throw new Error("An Ed25519 public key must be exactly 32bytes long");this.#e=t,this.#t=e.derEncode(t)}toDer(){return this.derKey}toRaw(){return this.rawKey}},ct=class e extends Gt{static generate(t){if(t&&t.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");t||(t=We.utils.randomPrivateKey()),$l(t,new Uint8Array(new Array(32).fill(0)))&&console.warn("Seed is all zeros. This is not a secure seed. Please provide a seed with sufficient entropy if this is a production environment.");let r=new Uint8Array(32);for(let o=0;o<32;o++)r[o]=t[o];let n=We.getPublicKey(r);return e.fromKeyPair(n,r)}static fromParsedJson(t){let[r,n]=t;return new e(Ni.fromDer(Ee(r)),Ee(n))}static fromJSON(t){let r=JSON.parse(t);if(Array.isArray(r)){if(typeof r[0]=="string"&&typeof r[1]=="string")return this.fromParsedJson([r[0],r[1]]);throw new Error("Deserialization error: JSON must have at least 2 items.")}throw new Error(`Deserialization error: Invalid JSON type for string: ${JSON.stringify(t)}`)}static fromKeyPair(t,r){return new e(Ni.fromRaw(t),r)}static fromSecretKey(t){let r=We.getPublicKey(t);return e.fromKeyPair(r,t)}#e;#t;constructor(t,r){super(),this.#e=Ni.from(t),this.#t=r}toJSON(){return[j(this.#e.toDer()),j(this.#t)]}getKeyPair(){return{secretKey:this.#t,publicKey:this.#e}}getPublicKey(){return this.#e}async sign(t){let r=We.sign(t,this.#t.slice(0,32));return Object.defineProperty(r,"__signature__",{enumerable:!1,value:void 0}),r}static verify(t,r,n){let[o,i,s]=[t,r,n].map(a=>(typeof a=="string"&&(a=Ee(a)),Mt(a)));return We.verify(o,i,s)}};var Lc=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function ep(e){if(typeof global<"u"&&global.crypto&&global.crypto.subtle)return global.crypto.subtle;if(e)return e;if(typeof crypto<"u"&&crypto.subtle)return crypto.subtle;throw new Lc("Global crypto was not available and none was provided. Please inlcude a SubtleCrypto implementation. See https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto")}var yt=class e extends Gt{static async generate(t){let{extractable:r=!1,keyUsages:n=["sign","verify"],subtleCrypto:o}=t??{},i=ep(o),s=await i.generateKey({name:"ECDSA",namedCurve:"P-256"},r,n),a=Mt(await i.exportKey("spki",s.publicKey));return Object.assign(a,{__derEncodedPublicKey__:void 0}),new this(s,a,i)}static async fromKeyPair(t,r){let n=ep(r),o=Mt(await n.exportKey("spki",t.publicKey));return Object.assign(o,{__derEncodedPublicKey__:void 0}),new e(t,o,n)}constructor(t,r,n){super(),this._keyPair=t,this._derKey=r,this._subtleCrypto=n}getKeyPair(){return this._keyPair}getPublicKey(){let t=this._derKey,r=Object.create(this._keyPair.publicKey);return r.toDer=function(){return t},r}async sign(t){let r={name:"ECDSA",hash:{name:"SHA-256"}},n=Mt(await this._subtleCrypto.sign(r,this._keyPair.privateKey,t));return Object.assign(n,{__signature__:void 0}),n}};var ks=class{#e;get rawKey(){return this.#e.rawKey}get derKey(){return this.#e.derKey}toDer(){return this.#e.toDer()}getPublicKey(){return this.#e}getPrincipal(){if(!this.#e.rawKey)throw new Error("Cannot get principal from a public key without a raw key.");return L.fromUint8Array(new Uint8Array(this.#e.rawKey))}transformRequest(){return Promise.reject("Not implemented. You are attempting to use a partial identity to sign calls, but this identity only has access to the public key.To sign calls, use a DelegationIdentity instead.")}constructor(t){this.#e=t}};function Ls(e){return e instanceof Uint8Array?j(e):j(new Uint8Array(e))}function qc(e){if(typeof e!="string"||e.length<64)throw new Error("Invalid public key.");return Ee(e)}var tn=class{constructor(t,r,n){this.pubkey=t,this.expiration=r,this.targets=n}toCborValue(){return{pubkey:this.pubkey,expiration:this.expiration,...this.targets&&{targets:this.targets}}}toJSON(){return{expiration:this.expiration.toString(16),pubkey:Ls(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function j_(e,t,r,n){let o=new tn(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...Ua,...new Uint8Array(gr({...o}))]),s=await e.sign(i);return{delegation:o,signature:s}}var Dt=class e{static async create(t,r,n=new Date(Date.now()+900*1e3),o={}){let i=await j_(t,r,n,o.targets);return new e([...o.previous?.delegations||[],i],o.previous?.publicKey||t.getPublicKey().toDer())}static fromJSON(t){let{publicKey:r,delegations:n}=typeof t=="string"?JSON.parse(t):t;if(!Array.isArray(n))throw new Error("Invalid delegations.");let o=n.map(i=>{let{delegation:s,signature:a}=i,{pubkey:c,expiration:u,targets:p}=s;if(p!==void 0&&!Array.isArray(p))throw new Error("Invalid targets.");return{delegation:new tn(qc(c),BigInt("0x"+u),p&&p.map(d=>{if(typeof d!="string")throw new Error("Invalid target.");return L.fromHex(d)})),signature:qc(a)}});return new this(o,qc(r))}static fromDelegations(t,r){return new this(t,r)}constructor(t,r){this.delegations=t,this.publicKey=r}toJSON(){return{delegations:this.delegations.map(t=>{let{delegation:r,signature:n}=t,{targets:o}=r;return{delegation:{expiration:r.expiration.toString(16),pubkey:Ls(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:Ls(n)}}),publicKey:Ls(this.publicKey)}}},Ut=class extends Gt{static fromDelegation(t,r){return new this(t,r)}constructor(t,r){super(),this._inner=t,this._delegation=r}getDelegation(){return this._delegation}getPublicKey(){return{derKey:this._delegation.publicKey,toDer:()=>this._delegation.publicKey}}sign(t){return this._inner.sign(t)}async transformRequest(t){let{body:r,...n}=t,o=await gr(r);return{...n,body:{content:r,sender_sig:await this.sign(new Uint8Array([...Xo,...new Uint8Array(o)])),sender_delegation:this._delegation.delegations,sender_pubkey:this._delegation.publicKey}}}},Oi=class e extends ks{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function Mc(e,t){for(let{delegation:o}of e.delegations)if(+new Date(Number(o.expiration/BigInt(1e6)))<=+Date.now())return!1;let r=[],n=t?.scope;n&&(Array.isArray(n)?r.push(...n.map(o=>typeof o=="string"?L.fromText(o):o)):r.push(typeof n=="string"?L.fromText(n):n));for(let o of r){let i=o.toText();for(let{delegation:s}of e.delegations){if(s.targets===void 0)continue;let a=!0;for(let c of s.targets)if(c.toText()===i){a=!1;break}if(a)return!1}}return!0}var tp=["mousedown","mousemove","keydown","touchstart","wheel"],Ei=class e{callbacks=[];idleTimeout=600*1e3;timeoutID=void 0;static create(t={}){return new e(t)}constructor(t={}){let{onIdle:r,idleTimeout:n=600*1e3}=t||{};this.callbacks=r?[r]:[],this.idleTimeout=n;let o=this._resetTimer.bind(this);window.addEventListener("load",o,!0),tp.forEach(s=>{document.addEventListener(s,o,!0)});let i=(s,a)=>{let c;return(...u)=>{let p=this,d=()=>{c=void 0,s.apply(p,u)};clearTimeout(c),c=window.setTimeout(d,a)}};if(t?.captureScroll){let s=i(o,t?.scrollDebounce??100);window.addEventListener("scroll",s,!0)}o()}registerCallback(t){this.callbacks.push(t)}exit(){clearTimeout(this.timeoutID),window.removeEventListener("load",this._resetTimer,!0);let t=this._resetTimer.bind(this);tp.forEach(r=>{document.removeEventListener(r,t,!0)}),this.callbacks.forEach(r=>{r()})}_resetTimer(){let t=this.exit.bind(this);window.clearTimeout(this.timeoutID),this.timeoutID=window.setTimeout(t,this.idleTimeout)}};var K_=(e,t)=>t.some(r=>e instanceof r),rp,np;function H_(){return rp||(rp=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function G_(){return np||(np=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var op=new WeakMap,Kc=new WeakMap,ip=new WeakMap,jc=new WeakMap,Gc=new WeakMap;function $_(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",i),e.removeEventListener("error",s)},i=()=>{r(Jt(e.result)),o()},s=()=>{n(e.error),o()};e.addEventListener("success",i),e.addEventListener("error",s)});return t.then(r=>{r instanceof IDBCursor&&op.set(r,e)}).catch(()=>{}),Gc.set(t,e),t}function J_(e){if(Kc.has(e))return;let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("complete",i),e.removeEventListener("error",s),e.removeEventListener("abort",s)},i=()=>{r(),o()},s=()=>{n(e.error||new DOMException("AbortError","AbortError")),o()};e.addEventListener("complete",i),e.addEventListener("error",s),e.addEventListener("abort",s)});Kc.set(e,t)}var Hc={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return Kc.get(e);if(t==="objectStoreNames")return e.objectStoreNames||ip.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Jt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function sp(e){Hc=e(Hc)}function W_(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(qs(this),t,...r);return ip.set(n,t.sort?t.sort():[t]),Jt(n)}:G_().includes(e)?function(...t){return e.apply(qs(this),t),Jt(op.get(this))}:function(...t){return Jt(e.apply(qs(this),t))}}function z_(e){return typeof e=="function"?W_(e):(e instanceof IDBTransaction&&J_(e),K_(e,H_())?new Proxy(e,Hc):e)}function Jt(e){if(e instanceof IDBRequest)return $_(e);if(jc.has(e))return jc.get(e);let t=z_(e);return t!==e&&(jc.set(e,t),Gc.set(t,e)),t}var qs=e=>Gc.get(e);function cp(e,t,{blocked:r,upgrade:n,blocking:o,terminated:i}={}){let s=indexedDB.open(e,t),a=Jt(s);return n&&s.addEventListener("upgradeneeded",c=>{n(Jt(s.result),c.oldVersion,c.newVersion,Jt(s.transaction),c)}),r&&s.addEventListener("blocked",c=>r(c.oldVersion,c.newVersion,c)),a.then(c=>{i&&c.addEventListener("close",()=>i()),o&&c.addEventListener("versionchange",u=>o(u.oldVersion,u.newVersion,u))}).catch(()=>{}),a}var Y_=["get","getKey","getAll","getAllKeys","count"],Z_=["put","add","delete","clear"],$c=new Map;function ap(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if($c.get(t))return $c.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=Z_.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||Y_.includes(r)))return;let i=async function(s,...a){let c=this.transaction(s,o?"readwrite":"readonly"),u=c.store;return n&&(u=u.index(a.shift())),(await Promise.all([u[r](...a),o&&c.done]))[0]};return $c.set(t,i),i}sp(e=>({...e,get:(t,r,n)=>ap(t,r)||e.get(t,r,n),has:(t,r)=>!!ap(t,r)||e.has(t,r)}));var lp="auth-client-db",up="ic-keyval",X_=async(e=lp,t=up,r)=>(globalThis.localStorage?.getItem(ze)&&(globalThis.localStorage.removeItem(ze),globalThis.localStorage.removeItem(Ye)),await cp(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function Q_(e,t,r){return await e.get(t,r)}async function ey(e,t,r,n){return await e.put(t,n,r)}async function ty(e,t,r){return await e.delete(t,r)}var Ms=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=lp,storeName:n=up,version:o=dp}=t??{},i=await X_(r,n,o);return new e(i,n)}async set(t,r){return await ey(this._db,this._storeName,t,r)}async get(t){return await Q_(this._db,this._storeName,t)??null}async remove(t){return await ty(this._db,this._storeName,t)}};var Ye="identity",ze="delegation",pp="iv",dp=1,Ri=class{constructor(t="ic-",r){this.prefix=t,this._localStorage=r}get(t){return Promise.resolve(this._getLocalStorage().getItem(this.prefix+t))}set(t,r){return this._getLocalStorage().setItem(this.prefix+t,r),Promise.resolve()}remove(t){return this._getLocalStorage().removeItem(this.prefix+t),Promise.resolve()}_getLocalStorage(){if(this._localStorage)return this._localStorage;let t=globalThis.localStorage;if(!t)throw new Error("Could not find local storage.");return t}},Wt=class{#e;constructor(t){this.#e=t??{}}initializedDb;get _db(){return new Promise((t,r)=>{if(this.initializedDb){t(this.initializedDb);return}Ms.create(this.#e).then(n=>{this.initializedDb=n,t(n)}).catch(r)})}async get(t){return await(await this._db).get(t)}async set(t,r){await(await this._db).set(t,r)}async remove(t){await(await this._db).remove(t)}};var ry=BigInt(1e9),ny=BigInt(3600),oy=ry*ny,iy="https://identity.internetcomputer.org",sy="#authorize",ay=BigInt(8)*oy,Jc="ECDSA",Wc="Ed25519",cy=500,js="UserInterrupt",vi=class e{constructor(t,r,n,o,i,s,a,c){this._identity=t,this._key=r,this._chain=n,this._storage=o,this.idleManager=i,this._createOptions=s,this._idpWindow=a,this._eventHandler=c,this._registerDefaultIdleCallback()}static async create(t={}){let r=t.storage??new Wt,n=t.keyType??Jc,o=null;if(t.identity)o=t.identity;else{let c=await r.get(Ye);if(!c)try{let u=new Ri,p=await u.get(ze),d=await u.get(Ye);p&&d&&n===Jc&&(console.log("Discovered an identity stored in localstorage. Migrating to IndexedDB"),await r.set(ze,p),await r.set(Ye,d),c=p,await u.remove(ze),await u.remove(Ye))}catch(u){console.error(`error while attempting to recover localstorage: ${u}`)}if(c)try{typeof c=="object"?n===Wc&&typeof c=="string"?o=ct.fromJSON(c):o=await yt.fromKeyPair(c):typeof c=="string"&&(o=ct.fromJSON(c))}catch{}}let i=new it,s=null;if(o)try{let c=await r.get(ze);if(typeof c=="object"&&c!==null)throw new Error("Delegation chain is incorrectly stored. A delegation chain should be stored as a string.");t.identity?i=t.identity:c&&(s=Dt.fromJSON(c),Mc(s)?"toDer"in o?i=Oi.fromDelegation(o,s):i=Ut.fromDelegation(o,s):(await zc(r),o=null))}catch(c){console.error(c),await zc(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=Ei.create(t.idleOptions)),o||(n===Wc?o=ct.generate():(t.storage&&n===Jc&&console.warn(`You are using a custom storage provider that may not support CryptoKey storage. If you are using a custom storage provider that does not support CryptoKey storage, you should use '${Wc}' as the key type, as it can serialize to a string`),o=await yt.generate()),await fp(r,o)),new e(i,o,s,r,a,t)}_registerDefaultIdleCallback(){let t=this._createOptions?.idleOptions;!t?.onIdle&&!t?.disableDefaultIdleCallback&&this.idleManager?.registerCallback(()=>{this.logout(),location.reload()})}async _handleSuccess(t,r){let n=t.delegations.map(a=>({delegation:new tn(a.delegation.pubkey,a.delegation.expiration,a.delegation.targets),signature:a.signature})),o=Dt.fromDelegations(n,t.userPublicKey),i=this._key;if(!i)return;this._chain=o,"toDer"in i?this._identity=Oi.fromDelegation(i,this._chain):this._identity=Ut.fromDelegation(i,this._chain),this._idpWindow?.close();let s=this._createOptions?.idleOptions;!this.idleManager&&!s?.disableIdle&&(this.idleManager=Ei.create(s),this._registerDefaultIdleCallback()),this._removeEventListener(),delete this._idpWindow,this._chain&&await this._storage.set(ze,JSON.stringify(this._chain.toJSON())),await fp(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&Mc(this._chain)}async login(t){let r=ly(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??ay,o=new URL(r?.identityProvider?.toString()||iy);o.hash=sy,this._idpWindow?.close(),this._removeEventListener(),this._eventHandler=this._getEventHandler(o,{maxTimeToLive:n,...r}),window.addEventListener("message",this._eventHandler),this._idpWindow=window.open(o.toString(),"idpWindow",r?.windowOpenerFeatures)??void 0;let i=()=>{this._idpWindow&&(this._idpWindow.closed?this._handleFailure(js,r?.onError):setTimeout(i,cy))};i()}_getEventHandler(t,r){return async n=>{if(n.origin!==t.origin)return;let o=n.data;switch(o.kind){case"authorize-ready":{let i={kind:"authorize-client",sessionPublicKey:new Uint8Array(this._key?.getPublicKey().toDer()),maxTimeToLive:r?.maxTimeToLive,allowPinAuthentication:r?.allowPinAuthentication,derivationOrigin:r?.derivationOrigin?.toString(),...r?.customValues};this._idpWindow?.postMessage(i,t.origin);break}case"authorize-client-success":try{await this._handleSuccess(o,r?.onSuccess)}catch(i){this._handleFailure(i.message,r?.onError)}break;case"authorize-client-failure":this._handleFailure(o.text,r?.onError);break}}}_handleFailure(t,r){this._idpWindow?.close(),r?.(t),this._removeEventListener(),delete this._idpWindow}_removeEventListener(){this._eventHandler&&window.removeEventListener("message",this._eventHandler),this._eventHandler=void 0}async logout(t={}){if(await zc(this._storage),this._identity=new it,this._chain=null,t.returnTo)try{window.history.pushState({},"",t.returnTo)}catch{window.location.href=t.returnTo}}};async function zc(e){await e.remove(Ye),await e.remove(ze),await e.remove(pp)}function ly(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function uy(e){if(e instanceof yt)return e.getKeyPair();if(e instanceof ct)return JSON.stringify(e.toJSON());throw new Error("Unsupported key type")}async function fp(e,t){let r=uy(t);await e.set(Ye,r)}var Ve=class e{static#e;#t;constructor(){}static getInstance(){return U(this.#e)&&(this.#e=new e),this.#e}createAuthClient=async()=>(this.#t=await vi.create({idleOptions:{disableIdle:!0,disableDefaultIdleCallback:!0}}),this.#t);safeCreateAuthClient=async()=>(await new Wt().remove(Ye),await this.createAuthClient());getAuthClient=()=>this.#t;logout=async()=>{await this.#t?.logout(),this.#t=null};setAuthClientStorage=async({delegationChain:t,sessionKey:r})=>{let n=new Wt;await Promise.all([n.set(Ye,r.getKeyPair()),n.set(ze,JSON.stringify(t.toJSON()))])}};var Yc=async e=>{await dy(),await Ve.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},dy=async()=>{await Ve.getInstance().logout(),Ue.getInstance().reset(),Ao.getInstance().reset(),Io.getInstance().reset()};var hp=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{Ti({message:"junoSignOutAuthTimer"}),await Yc()};return r.onmessage=async({data:o})=>{let{msg:i,data:s}=o;switch(i){case"junoSignOutAuthTimer":await n();return;case"junoDelegationRemainingTime":Ti({message:"junoDelegationRemainingTime",detail:s?.authRemainingTime})}},Ue.getInstance().subscribe(o=>{if(U(o)){r.postMessage({msg:"junoStopAuthTimer"});return}r.postMessage({msg:"junoStartAuthTimer"})})};var So=class e{static#e;#t;#r;static CHANNEL_NAME="juno_core_auth_channel";static MESSAGE_LOGIN_SUCCESS="authClientLoginSuccess";constructor(){this.#t=new BroadcastChannel(e.CHANNEL_NAME),this.#r=window.crypto.randomUUID()}static getInstance(){return U(this.#e)&&(this.#e=new e),this.#e}onLoginSuccess=t=>{let{location:{origin:r}}=window;this.#t.onmessage=async({origin:n,data:o})=>{n===r&&J(o)&&o.msg==="authClientLoginSuccess"&&Cr(o.emitterId)&&o.emitterId!==this.#r&&await t()}};destroy=()=>{this.#t.close(),e.#e=null};postLoginSuccess=()=>{let t={emitterId:this.#r,msg:e.MESSAGE_LOGIN_SUCCESS};this.#t.postMessage(t)};get __test__only__emitter_id__(){return this.#r}};var Se=class e extends Ro{static instance;env;constructor(){super()}static getInstance(){return e.instance||(e.instance=new e),e.instance}set(t){this.env=t,this.populate(t)}get(){return this.env}reset(){this.env=null}subscribe(t){let r=super.subscribe(t);return t(this.env),r}};var Ii=async({fn:e,syncTabsOnSuccess:t})=>{let{authenticated:r}=await py({fn:e});!r||!t||Se.getInstance().get()?.syncTabs===!1||fy()},mp=async({fn:e})=>{let{createAuthClient:t}=Ve.getInstance(),n=await(await t()).isAuthenticated();await e({authenticated:n})},py=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=Ve.getInstance();return await(await t()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},fy=()=>{try{So.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var Zc=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var _p="juno.datastore.error.user.cannot_update";var zt={certified:!1};var Ks=()=>Ve.getInstance().getAuthClient()?.getIdentity(),hy=async()=>{let{getAuthClient:e,createAuthClient:t}=Ve.getInstance();return(e()??await t()).getIdentity()},my=async()=>{let e=Ue.getInstance().get();if(U(e))return null;let t=Ve.getInstance().getAuthClient();return await t?.isAuthenticated()??!1?t?.getIdentity()??null:null};var ue=e=>J(e)?e:Ks()??new it;var Xc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),_=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),g=e.Variant({OpenId:_}),m=e.Variant({JwtFindProvider:u,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,ControllerAlreadyExists:e.Null,TooManyControllers:e.Text}),x=e.Variant({PrepareAutomation:m,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),y=e.Variant({Ok:e.Null,Err:x}),T=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),O=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),R=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),E=e.Record({field:R,desc:e.Bool}),v=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),w=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(v),description:e.Opt(e.Text),created_at:e.Opt(v)}),I=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),V=e.Record({order:e.Opt(E),owner:e.Opt(e.Principal),matcher:e.Opt(w),paginate:e.Opt(I)}),C=e.Record({controllers:e.Vec(e.Principal)}),b=e.Variant({Emulator:e.Null,Automation:e.Null}),N=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),S=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(b),created_at:e.Nat64,scope:N,expires_at:e.Opt(e.Nat64)}),B=e.Record({version:e.Opt(e.Nat64)}),k=e.Variant({Db:e.Null,Storage:e.Null}),A=e.Record({version:e.Opt(e.Nat64)}),F=e.Record({proposal_ids:e.Vec(e.Nat)}),P=e.Record({cycles:e.Nat,destination_id:e.Principal}),D=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),M=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),ee=e.Record({key:D,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,M)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ne=e.Variant({GitHub:e.Null,Google:e.Null}),Y=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),we=e.Record({delegation:e.Opt(Y),client_id:e.Text}),fe=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(ne,we))}),Fe=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),oe=e.Record({allowed_callers:e.Vec(e.Principal)}),te=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(fe),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(Fe),rules:e.Opt(oe)}),Zt=e.Variant({GitHub:e.Null}),nn=e.Variant({Write:e.Null,Submit:e.Null}),on=e.Record({scope:e.Opt(nn),max_time_to_live:e.Opt(e.Nat64)}),sn=e.Record({owner:e.Text,name:e.Text}),an=e.Record({branches:e.Opt(e.Vec(e.Text))}),Xt=e.Record({controller:e.Opt(on),repositories:e.Vec(e.Tuple(sn,an))}),ke=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(Zt,Xt))}),gt=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(ke),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),Qe=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),xt=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(Qe)}),et=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),Qt=e.Variant({Deny:e.Null,Allow:e.Null}),er=e.Record({status_code:e.Nat16,location:e.Text}),bt=e.Record({iframe:e.Opt(et),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(Qe),raw_access:e.Opt(Qt),redirects:e.Opt(e.Vec(e.Tuple(e.Text,er)))}),tr=e.Record({db:e.Opt(xt),authentication:e.Opt(te),storage:bt}),rr=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),cn=e.Variant({OpenId:rr}),ln=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),nr=e.Record({signature:e.Vec(e.Nat8),delegation:ln}),un=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),dn=e.Variant({Ok:nr,Err:un}),pn=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),fn=e.Record({clear_existing_assets:e.Opt(e.Bool)}),hn=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),or=e.Variant({AssetsUpgrade:fn,SegmentsDeployment:hn}),tt=e.Record({status:pn,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:or}),Le=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),wt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Tt=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:Le,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(wt),write:Le,max_changes_per_user:e.Opt(e.Nat32)}),mn=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),rt=e.Record({memory:t,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),_n=e.Variant({Callback:e.Record({token:rt,callback:e.Func([],[],["query"])})}),yn=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(_n),status_code:e.Nat16}),gn=e.Record({token:e.Opt(rt),body:e.Vec(e.Nat8)}),Nt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),Ot=e.Record({batch_id:e.Nat}),xn=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,ee)),items_length:e.Nat64}),bn=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),wn=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,s)),items_length:e.Nat64}),Tn=e.Record({desc:e.Bool}),qe=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Nn=e.Record({order:e.Opt(Tn),paginate:e.Opt(qe)}),On=e.Record({proposal_id:e.Nat}),nt=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(On,tt)),items_length:e.Nat64}),En=e.Record({include_system:e.Bool}),Rn=e.Record({matcher:e.Opt(En)}),vn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Tt)),items_length:e.Nat64}),In=e.Record({stable:e.Nat64,heap:e.Nat64}),ir=e.Record({openid:e.Opt(fe),version:e.Opt(e.Nat64),internet_identity:e.Opt(Fe),rules:e.Opt(oe)}),An=e.Record({openid:e.Opt(ke),version:e.Opt(e.Nat64)}),Sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(b),scope:N,expires_at:e.Opt(e.Nat64)}),sr=e.Record({controller:Sn,controllers:e.Vec(e.Principal)}),Cn=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(Qe)}),ar=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),_a=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:Le,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(wt),write:Le,max_changes_per_user:e.Opt(e.Nat32)}),ya=e.Record({iframe:e.Opt(et),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(Qe),raw_access:e.Opt(Qt),redirects:e.Opt(e.Vec(e.Tuple(e.Text,er)))}),Fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Po=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),authenticate_automation:e.Func([g],[y],[]),commit_asset_upload:e.Func([T],[],[]),commit_proposal:e.Func([O],[e.Null],[]),commit_proposal_asset_upload:e.Func([T],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(T)],[],[]),count_assets:e.Func([e.Text,V],[e.Nat64],["query"]),count_collection_assets:e.Func([e.Text],[e.Nat64],["query"]),count_collection_docs:e.Func([e.Text],[e.Nat64],["query"]),count_docs:e.Func([e.Text,V],[e.Nat64],["query"]),count_proposals:e.Func([],[e.Nat64],["query"]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([C],[e.Vec(e.Tuple(e.Principal,S))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,B],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,V],[],[]),del_filtered_docs:e.Func([e.Text,V],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,B))],[],[]),del_rule:e.Func([k,e.Text,A],[],[]),delete_proposal_assets:e.Func([F],[],[]),deposit_cycles:e.Func([P],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(ee)],["query"]),get_auth_config:e.Func([],[e.Opt(te)],["query"]),get_automation_config:e.Func([],[e.Opt(gt)],["query"]),get_config:e.Func([],[tr],[]),get_db_config:e.Func([],[e.Opt(xt)],["query"]),get_delegation:e.Func([cn],[dn],["query"]),get_doc:e.Func([e.Text,e.Text],[e.Opt(s)],["query"]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(ee)))],["query"]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(s)))],["query"]),get_proposal:e.Func([e.Nat],[e.Opt(tt)],["query"]),get_rule:e.Func([k,e.Text],[e.Opt(Tt)],["query"]),get_storage_config:e.Func([],[bt],["query"]),http_request:e.Func([mn],[yn],["query"]),http_request_streaming_callback:e.Func([rt],[gn],["query"]),init_asset_upload:e.Func([Nt],[Ot],[]),init_proposal:e.Func([or],[e.Nat,tt],[]),init_proposal_asset_upload:e.Func([Nt,e.Nat],[Ot],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Nt),e.Nat],[e.Vec(e.Tuple(e.Text,Ot))],[]),list_assets:e.Func([e.Text,V],[xn],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,S))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,bn))],["query"]),list_docs:e.Func([e.Text,V],[wn],["query"]),list_proposals:e.Func([Nn],[nt],["query"]),list_rules:e.Func([k,Rn],[vn],["query"]),memory_size:e.Func([],[In],["query"]),reject_proposal:e.Func([O],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([ir],[te],[]),set_automation_config:e.Func([An],[gt],[]),set_controllers:e.Func([sr],[e.Vec(e.Tuple(e.Principal,S))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Cn],[xt],[]),set_doc:e.Func([e.Text,e.Text,ar],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,ar))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([k,e.Text,_a],[Tt],[]),set_storage_config:e.Func([ya],[bt],[]),submit_proposal:e.Func([e.Nat],[e.Nat,tt],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Fo],[Po],[]),upload_proposal_asset_chunk:e.Func([Fo],[Po],[])})},Qc=({IDL:e})=>{let t=e.Variant({Heap:e.Null,Stable:e.Null}),r=e.Record({system_memory:e.Opt(t)}),n=e.Record({controllers:e.Vec(e.Principal),storage:e.Opt(r)}),o=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),i=e.Variant({OpenId:o}),s=e.Record({updated_at:e.Nat64,owner:e.Principal,data:e.Vec(e.Nat8),description:e.Opt(e.Text),created_at:e.Nat64,version:e.Opt(e.Nat64)}),a=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),c=e.Record({doc:s,delegation:a}),u=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),p=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),d=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),l=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),f=e.Variant({PrepareDelegation:l,RegisterUser:e.Text}),h=e.Variant({Ok:c,Err:f}),_=e.Record({jwt:e.Text,salt:e.Vec(e.Nat8)}),g=e.Variant({OpenId:_}),m=e.Variant({JwtFindProvider:u,InvalidController:e.Text,GetCachedJwks:e.Null,JwtVerify:p,GetOrFetchJwks:d,ControllerAlreadyExists:e.Null,TooManyControllers:e.Text}),x=e.Variant({PrepareAutomation:m,RegisterController:e.Text,SaveWorkflowMetadata:e.Text,SaveUniqueJtiToken:e.Text}),y=e.Variant({Ok:e.Null,Err:x}),T=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),O=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),R=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),E=e.Record({field:R,desc:e.Bool}),v=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),w=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(v),description:e.Opt(e.Text),created_at:e.Opt(v)}),I=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),V=e.Record({order:e.Opt(E),owner:e.Opt(e.Principal),matcher:e.Opt(w),paginate:e.Opt(I)}),C=e.Record({controllers:e.Vec(e.Principal)}),b=e.Variant({Emulator:e.Null,Automation:e.Null}),N=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),S=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(b),created_at:e.Nat64,scope:N,expires_at:e.Opt(e.Nat64)}),B=e.Record({version:e.Opt(e.Nat64)}),k=e.Variant({Db:e.Null,Storage:e.Null}),A=e.Record({version:e.Opt(e.Nat64)}),F=e.Record({proposal_ids:e.Vec(e.Nat)}),P=e.Record({cycles:e.Nat,destination_id:e.Principal}),D=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),M=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),ee=e.Record({key:D,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,M)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),ne=e.Variant({GitHub:e.Null,Google:e.Null}),Y=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),we=e.Record({delegation:e.Opt(Y),client_id:e.Text}),fe=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(ne,we))}),Fe=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),oe=e.Record({allowed_callers:e.Vec(e.Principal)}),te=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(fe),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(Fe),rules:e.Opt(oe)}),Zt=e.Variant({GitHub:e.Null}),nn=e.Variant({Write:e.Null,Submit:e.Null}),on=e.Record({scope:e.Opt(nn),max_time_to_live:e.Opt(e.Nat64)}),sn=e.Record({owner:e.Text,name:e.Text}),an=e.Record({branches:e.Opt(e.Vec(e.Text))}),Xt=e.Record({controller:e.Opt(on),repositories:e.Vec(e.Tuple(sn,an))}),ke=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(Zt,Xt))}),gt=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(ke),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64)}),Qe=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),xt=e.Record({updated_at:e.Opt(e.Nat64),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(Qe)}),et=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),Qt=e.Variant({Deny:e.Null,Allow:e.Null}),er=e.Record({status_code:e.Nat16,location:e.Text}),bt=e.Record({iframe:e.Opt(et),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(Qe),raw_access:e.Opt(Qt),redirects:e.Opt(e.Vec(e.Tuple(e.Text,er)))}),tr=e.Record({db:e.Opt(xt),authentication:e.Opt(te),storage:bt}),rr=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),cn=e.Variant({OpenId:rr}),ln=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),nr=e.Record({signature:e.Vec(e.Nat8),delegation:ln}),un=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),dn=e.Variant({Ok:nr,Err:un}),pn=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),fn=e.Record({clear_existing_assets:e.Opt(e.Bool)}),hn=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),or=e.Variant({AssetsUpgrade:fn,SegmentsDeployment:hn}),tt=e.Record({status:pn,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:or}),Le=e.Variant({Controllers:e.Null,Private:e.Null,Public:e.Null,Managed:e.Null}),wt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Tt=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),updated_at:e.Nat64,max_size:e.Opt(e.Nat),read:Le,created_at:e.Nat64,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(wt),write:Le,max_changes_per_user:e.Opt(e.Nat32)}),mn=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),rt=e.Record({memory:t,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),_n=e.Variant({Callback:e.Record({token:rt,callback:e.Func([],[],[])})}),yn=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(_n),status_code:e.Nat16}),gn=e.Record({token:e.Opt(rt),body:e.Vec(e.Nat8)}),Nt=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),Ot=e.Record({batch_id:e.Nat}),xn=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,ee)),items_length:e.Nat64}),bn=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),wn=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,s)),items_length:e.Nat64}),Tn=e.Record({desc:e.Bool}),qe=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),Nn=e.Record({order:e.Opt(Tn),paginate:e.Opt(qe)}),On=e.Record({proposal_id:e.Nat}),nt=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(On,tt)),items_length:e.Nat64}),En=e.Record({include_system:e.Bool}),Rn=e.Record({matcher:e.Opt(En)}),vn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(e.Text,Tt)),items_length:e.Nat64}),In=e.Record({stable:e.Nat64,heap:e.Nat64}),ir=e.Record({openid:e.Opt(fe),version:e.Opt(e.Nat64),internet_identity:e.Opt(Fe),rules:e.Opt(oe)}),An=e.Record({openid:e.Opt(ke),version:e.Opt(e.Nat64)}),Sn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(b),scope:N,expires_at:e.Opt(e.Nat64)}),sr=e.Record({controller:Sn,controllers:e.Vec(e.Principal)}),Cn=e.Record({version:e.Opt(e.Nat64),max_memory_size:e.Opt(Qe)}),ar=e.Record({data:e.Vec(e.Nat8),description:e.Opt(e.Text),version:e.Opt(e.Nat64)}),_a=e.Record({max_capacity:e.Opt(e.Nat32),memory:e.Opt(t),max_size:e.Opt(e.Nat),read:Le,version:e.Opt(e.Nat64),mutable_permissions:e.Opt(e.Bool),rate_config:e.Opt(wt),write:Le,max_changes_per_user:e.Opt(e.Nat32)}),ya=e.Record({iframe:e.Opt(et),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(Qe),raw_access:e.Opt(Qt),redirects:e.Opt(e.Vec(e.Tuple(e.Text,er)))}),Fo=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),Po=e.Record({chunk_id:e.Nat});return e.Service({authenticate:e.Func([i],[h],[]),authenticate_automation:e.Func([g],[y],[]),commit_asset_upload:e.Func([T],[],[]),commit_proposal:e.Func([O],[e.Null],[]),commit_proposal_asset_upload:e.Func([T],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(T)],[],[]),count_assets:e.Func([e.Text,V],[e.Nat64],[]),count_collection_assets:e.Func([e.Text],[e.Nat64],[]),count_collection_docs:e.Func([e.Text],[e.Nat64],[]),count_docs:e.Func([e.Text,V],[e.Nat64],[]),count_proposals:e.Func([],[e.Nat64],[]),del_asset:e.Func([e.Text,e.Text],[],[]),del_assets:e.Func([e.Text],[],[]),del_controllers:e.Func([C],[e.Vec(e.Tuple(e.Principal,S))],[]),del_custom_domain:e.Func([e.Text],[],[]),del_doc:e.Func([e.Text,e.Text,B],[],[]),del_docs:e.Func([e.Text],[],[]),del_filtered_assets:e.Func([e.Text,V],[],[]),del_filtered_docs:e.Func([e.Text,V],[],[]),del_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[],[]),del_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,B))],[],[]),del_rule:e.Func([k,e.Text,A],[],[]),delete_proposal_assets:e.Func([F],[],[]),deposit_cycles:e.Func([P],[],[]),get_asset:e.Func([e.Text,e.Text],[e.Opt(ee)],[]),get_auth_config:e.Func([],[e.Opt(te)],[]),get_automation_config:e.Func([],[e.Opt(gt)],[]),get_config:e.Func([],[tr],[]),get_db_config:e.Func([],[e.Opt(xt)],[]),get_delegation:e.Func([cn],[dn],[]),get_doc:e.Func([e.Text,e.Text],[e.Opt(s)],[]),get_many_assets:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(ee)))],[]),get_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text))],[e.Vec(e.Tuple(e.Text,e.Opt(s)))],[]),get_proposal:e.Func([e.Nat],[e.Opt(tt)],[]),get_rule:e.Func([k,e.Text],[e.Opt(Tt)],[]),get_storage_config:e.Func([],[bt],[]),http_request:e.Func([mn],[yn],[]),http_request_streaming_callback:e.Func([rt],[gn],[]),init_asset_upload:e.Func([Nt],[Ot],[]),init_proposal:e.Func([or],[e.Nat,tt],[]),init_proposal_asset_upload:e.Func([Nt,e.Nat],[Ot],[]),init_proposal_many_assets_upload:e.Func([e.Vec(Nt),e.Nat],[e.Vec(e.Tuple(e.Text,Ot))],[]),list_assets:e.Func([e.Text,V],[xn],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,S))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,bn))],[]),list_docs:e.Func([e.Text,V],[wn],[]),list_proposals:e.Func([Nn],[nt],[]),list_rules:e.Func([k,Rn],[vn],[]),memory_size:e.Func([],[In],[]),reject_proposal:e.Func([O],[e.Null],[]),set_asset_token:e.Func([e.Text,e.Text,e.Opt(e.Text)],[],[]),set_auth_config:e.Func([ir],[te],[]),set_automation_config:e.Func([An],[gt],[]),set_controllers:e.Func([sr],[e.Vec(e.Tuple(e.Principal,S))],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_db_config:e.Func([Cn],[xt],[]),set_doc:e.Func([e.Text,e.Text,ar],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,ar))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([k,e.Text,_a],[Tt],[]),set_storage_config:e.Func([ya],[bt],[]),submit_proposal:e.Func([e.Nat],[e.Nat,tt],[]),switch_storage_system_memory:e.Func([],[],[]),upload_asset_chunk:e.Func([Fo],[Po],[]),upload_proposal_asset_chunk:e.Func([Fo],[Po],[])})},_y=({IDL:e})=>{let t=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),o=e.Variant({OpenId:n}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),s=e.Variant({GitHub:e.Null,Google:e.Null}),a=e.Record({name:e.Opt(e.Text),locale:e.Opt(e.Text),family_name:e.Opt(e.Text),email:e.Opt(e.Text),picture:e.Opt(e.Text),given_name:e.Opt(e.Text),preferred_username:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),u=e.Variant({InternetIdentity:e.Null,OpenId:c}),p=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(u),owner:e.Principal,created_at:e.Nat64}),d=e.Record({delegation:i,account:p}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),f=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),h=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),_=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),g=e.Variant({PrepareDelegation:_,RegisterUser:e.Text}),m=e.Variant({Ok:d,Err:g}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),y=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({subnet_id:e.Opt(e.Principal)}),O=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),R=e.Variant({Heap:e.Null,Stable:e.Null}),E=e.Record({system_memory:e.Opt(R)}),v=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(E),name:e.Opt(e.Text),user:e.Principal}),w=e.Record({controllers:e.Vec(e.Principal)}),I=e.Record({proposal_ids:e.Vec(e.Nat)}),V=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),C=e.Record({delegation:e.Opt(V),client_id:e.Text}),b=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,C))}),N=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),S=e.Record({allowed_callers:e.Vec(e.Principal)}),B=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(b),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),k=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),A=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),F=e.Variant({Deny:e.Null,Allow:e.Null}),P=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(k),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(A),raw_access:e.Opt(F),redirects:e.Opt(e.Vec(e.Tuple(e.Text,P)))}),M=e.Record({authentication:e.Opt(B),storage:D}),ee=e.Record({user:e.Principal}),ne=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Y=e.Variant({OpenId:ne}),we=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),fe=e.Record({signature:e.Vec(e.Nat8),delegation:we}),Fe=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),oe=e.Variant({Ok:fe,Err:Fe}),te=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),Zt=e.Record({e12s:e.Nat64}),nn=e.Record({updated_at:e.Nat64,fee_cycles:Zt,fee_icp:e.Opt(t)}),on=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),sn=e.Record({clear_existing_assets:e.Opt(e.Bool)}),an=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),Xt=e.Variant({AssetsUpgrade:sn,SegmentsDeployment:an}),ke=e.Record({status:on,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:Xt}),gt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Qe=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),xt=e.Variant({Heap:e.Null,Stable:e.Null}),et=e.Record({memory:xt,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Qt=e.Variant({Callback:e.Record({token:et,callback:e.Func([],[],["query"])})}),er=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Qt),status_code:e.Nat16}),bt=e.Record({token:e.Opt(et),body:e.Vec(e.Nat8)}),tr=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),rr=e.Record({batch_id:e.Nat}),cn=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),ln=e.Record({field:cn,desc:e.Bool}),nr=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),un=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(nr),description:e.Opt(e.Text),created_at:e.Opt(nr)}),dn=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),pn=e.Record({order:e.Opt(ln),owner:e.Opt(e.Principal),matcher:e.Opt(un),paginate:e.Opt(dn)}),fn=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),hn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),or=e.Record({key:fn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,hn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),tt=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,or)),items_length:e.Nat64}),Le=e.Variant({Emulator:e.Null,Automation:e.Null}),wt=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Tt=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(Le),created_at:e.Nat64,scope:wt,expires_at:e.Opt(e.Nat64)}),mn=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),rt=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),_n=e.Record({status:rt,updated_at:e.Nat64,block_index_payment:e.Nat64,mission_control_id:e.Opt(e.Principal),created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64)}),yn=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),gn=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),Nt=e.Record({status:rt,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:gn}),Ot=e.Record({desc:e.Bool}),xn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),bn=e.Record({order:e.Opt(Ot),paginate:e.Opt(xn)}),wn=e.Record({proposal_id:e.Nat}),Tn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(wn,ke)),items_length:e.Nat64}),qe=e.Variant({Orbiter:e.Null,Satellite:e.Null}),Nn=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(qe)}),On=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:qe}),nt=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),En=e.Record({openid:e.Opt(b),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Rn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(Le),scope:wt,expires_at:e.Opt(e.Nat64)}),vn=e.Record({controller:Rn,controllers:e.Vec(e.Principal)}),In=e.Record({fee_cycles:Zt,fee_icp:e.Opt(t)}),ir=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:qe}),An=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:qe}),Sn=e.Record({iframe:e.Opt(k),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(A),raw_access:e.Opt(F),redirects:e.Opt(e.Vec(e.Tuple(e.Text,P)))}),sr=e.Record({segment_id:e.Principal,segment_kind:qe}),Cn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ar=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,t],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],["query"]),authenticate:e.Func([o],[m],[]),commit_proposal:e.Func([x],[e.Null],[]),commit_proposal_asset_upload:e.Func([y],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(y)],[],[]),count_proposals:e.Func([],[e.Nat64],["query"]),create_mission_control:e.Func([T],[e.Principal],[]),create_orbiter:e.Func([O],[e.Principal],[]),create_satellite:e.Func([v],[e.Principal],[]),del_controllers:e.Func([w],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([I],[],[]),get_account:e.Func([],[e.Opt(p)],["query"]),get_auth_config:e.Func([],[e.Opt(B)],["query"]),get_config:e.Func([],[M],["query"]),get_create_orbiter_fee:e.Func([ee],[e.Opt(t)],["query"]),get_create_satellite_fee:e.Func([ee],[e.Opt(t)],["query"]),get_credits:e.Func([],[t],["query"]),get_delegation:e.Func([Y],[oe],["query"]),get_fee:e.Func([te],[nn],["query"]),get_or_init_account:e.Func([],[p],[]),get_proposal:e.Func([e.Nat],[e.Opt(ke)],["query"]),get_rate_config:e.Func([te],[gt],["query"]),get_storage_config:e.Func([],[D],["query"]),http_request:e.Func([Qe],[er],["query"]),http_request_streaming_callback:e.Func([et],[bt],["query"]),init_proposal:e.Func([Xt],[e.Nat,ke],[]),init_proposal_asset_upload:e.Func([tr,e.Nat],[rr],[]),init_proposal_many_assets_upload:e.Func([e.Vec(tr),e.Nat],[e.Vec(e.Tuple(e.Text,rr))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],["query"]),list_assets:e.Func([e.Text,pn],[tt],["query"]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Tt))],["query"]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,mn))],["query"]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,_n))],["query"]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(yn,Nt))],["query"]),list_proposals:e.Func([bn],[Tn],["query"]),list_segments:e.Func([Nn],[e.Vec(e.Tuple(On,nt))],["query"]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([En],[B],[]),set_controllers:e.Func([vn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([te,In],[],[]),set_many_segments:e.Func([e.Vec(ir)],[e.Vec(nt)],[]),set_rate_config:e.Func([te,gt],[],[]),set_segment:e.Func([ir],[nt],[]),set_segment_metadata:e.Func([An],[nt],[]),set_storage_config:e.Func([Sn],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,ke],[]),unset_many_segments:e.Func([e.Vec(sr)],[],[]),unset_segment:e.Func([sr],[],[]),upload_proposal_asset_chunk:e.Func([Cn],[ar],[])})},yy=({IDL:e})=>{let t=e.Record({e8s:e.Nat64}),r=e.Record({mission_control_id:e.Principal,user:e.Principal}),n=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8)}),o=e.Variant({OpenId:n}),i=e.Record({user_key:e.Vec(e.Nat8),expiration:e.Nat64}),s=e.Variant({GitHub:e.Null,Google:e.Null}),a=e.Record({name:e.Opt(e.Text),locale:e.Opt(e.Text),family_name:e.Opt(e.Text),email:e.Opt(e.Text),picture:e.Opt(e.Text),given_name:e.Opt(e.Text),preferred_username:e.Opt(e.Text)}),c=e.Record({provider:s,data:a}),u=e.Variant({InternetIdentity:e.Null,OpenId:c}),p=e.Record({updated_at:e.Nat64,credits:t,mission_control_id:e.Opt(e.Principal),provider:e.Opt(u),owner:e.Principal,created_at:e.Nat64}),d=e.Record({delegation:i,account:p}),l=e.Variant({BadClaim:e.Text,BadSig:e.Text,NoMatchingProvider:e.Null}),f=e.Variant({WrongKeyType:e.Null,MissingKid:e.Null,BadClaim:e.Text,BadSig:e.Text,NoKeyForKid:e.Null}),h=e.Variant({InvalidConfig:e.Text,MissingKid:e.Null,BadClaim:e.Text,KeyNotFoundCooldown:e.Null,CertificateNotFound:e.Null,BadSig:e.Text,MissingLastAttempt:e.Text,KeyNotFound:e.Null,FetchFailed:e.Text}),_=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),g=e.Variant({PrepareDelegation:_,RegisterUser:e.Text}),m=e.Variant({Ok:d,Err:g}),x=e.Record({sha256:e.Vec(e.Nat8),proposal_id:e.Nat}),y=e.Record({batch_id:e.Nat,headers:e.Vec(e.Tuple(e.Text,e.Text)),chunk_ids:e.Vec(e.Nat)}),T=e.Record({subnet_id:e.Opt(e.Principal)}),O=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),name:e.Opt(e.Text),user:e.Principal}),R=e.Variant({Heap:e.Null,Stable:e.Null}),E=e.Record({system_memory:e.Opt(R)}),v=e.Record({block_index:e.Opt(e.Nat64),subnet_id:e.Opt(e.Principal),storage:e.Opt(E),name:e.Opt(e.Text),user:e.Principal}),w=e.Record({controllers:e.Vec(e.Principal)}),I=e.Record({proposal_ids:e.Vec(e.Nat)}),V=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),C=e.Record({delegation:e.Opt(V),client_id:e.Text}),b=e.Record({observatory_id:e.Opt(e.Principal),providers:e.Vec(e.Tuple(s,C))}),N=e.Record({derivation_origin:e.Opt(e.Text),external_alternative_origins:e.Opt(e.Vec(e.Text))}),S=e.Record({allowed_callers:e.Vec(e.Principal)}),B=e.Record({updated_at:e.Opt(e.Nat64),openid:e.Opt(b),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),k=e.Variant({Deny:e.Null,AllowAny:e.Null,SameOrigin:e.Null}),A=e.Record({stable:e.Opt(e.Nat64),heap:e.Opt(e.Nat64)}),F=e.Variant({Deny:e.Null,Allow:e.Null}),P=e.Record({status_code:e.Nat16,location:e.Text}),D=e.Record({iframe:e.Opt(k),updated_at:e.Opt(e.Nat64),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),created_at:e.Opt(e.Nat64),version:e.Opt(e.Nat64),max_memory_size:e.Opt(A),raw_access:e.Opt(F),redirects:e.Opt(e.Vec(e.Tuple(e.Text,P)))}),M=e.Record({authentication:e.Opt(B),storage:D}),ee=e.Record({user:e.Principal}),ne=e.Record({jwt:e.Text,session_key:e.Vec(e.Nat8),salt:e.Vec(e.Nat8),expiration:e.Nat64}),Y=e.Variant({OpenId:ne}),we=e.Record({pubkey:e.Vec(e.Nat8),targets:e.Opt(e.Vec(e.Principal)),expiration:e.Nat64}),fe=e.Record({signature:e.Vec(e.Nat8),delegation:we}),Fe=e.Variant({JwtFindProvider:l,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:f,GetOrFetchJwks:h,DeriveSeedFailed:e.Text}),oe=e.Variant({Ok:fe,Err:Fe}),te=e.Variant({Orbiter:e.Null,MissionControl:e.Null,Satellite:e.Null}),Zt=e.Record({e12s:e.Nat64}),nn=e.Record({updated_at:e.Nat64,fee_cycles:Zt,fee_icp:e.Opt(t)}),on=e.Variant({Initialized:e.Null,Failed:e.Null,Open:e.Null,Rejected:e.Null,Executed:e.Null,Accepted:e.Null}),sn=e.Record({clear_existing_assets:e.Opt(e.Bool)}),an=e.Record({orbiter:e.Opt(e.Text),mission_control_version:e.Opt(e.Text),satellite_version:e.Opt(e.Text)}),Xt=e.Variant({AssetsUpgrade:sn,SegmentsDeployment:an}),ke=e.Record({status:on,updated_at:e.Nat64,sha256:e.Opt(e.Vec(e.Nat8)),executed_at:e.Opt(e.Nat64),owner:e.Principal,created_at:e.Nat64,version:e.Opt(e.Nat64),proposal_type:Xt}),gt=e.Record({max_tokens:e.Nat64,time_per_token_ns:e.Nat64}),Qe=e.Record({url:e.Text,method:e.Text,body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),certificate_version:e.Opt(e.Nat16)}),xt=e.Variant({Heap:e.Null,Stable:e.Null}),et=e.Record({memory:xt,token:e.Opt(e.Text),sha256:e.Opt(e.Vec(e.Nat8)),headers:e.Vec(e.Tuple(e.Text,e.Text)),index:e.Nat64,encoding_type:e.Text,full_path:e.Text}),Qt=e.Variant({Callback:e.Record({token:et,callback:e.Func([],[],[])})}),er=e.Record({body:e.Vec(e.Nat8),headers:e.Vec(e.Tuple(e.Text,e.Text)),streaming_strategy:e.Opt(Qt),status_code:e.Nat16}),bt=e.Record({token:e.Opt(et),body:e.Vec(e.Nat8)}),tr=e.Record({token:e.Opt(e.Text),collection:e.Text,name:e.Text,description:e.Opt(e.Text),encoding_type:e.Opt(e.Text),full_path:e.Text}),rr=e.Record({batch_id:e.Nat}),cn=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),ln=e.Record({field:cn,desc:e.Bool}),nr=e.Variant({Equal:e.Nat64,Between:e.Tuple(e.Nat64,e.Nat64),GreaterThan:e.Nat64,LessThan:e.Nat64}),un=e.Record({key:e.Opt(e.Text),updated_at:e.Opt(nr),description:e.Opt(e.Text),created_at:e.Opt(nr)}),dn=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),pn=e.Record({order:e.Opt(ln),owner:e.Opt(e.Principal),matcher:e.Opt(un),paginate:e.Opt(dn)}),fn=e.Record({token:e.Opt(e.Text),collection:e.Text,owner:e.Principal,name:e.Text,description:e.Opt(e.Text),full_path:e.Text}),hn=e.Record({modified:e.Nat64,sha256:e.Vec(e.Nat8),total_length:e.Nat}),or=e.Record({key:fn,updated_at:e.Nat64,encodings:e.Vec(e.Tuple(e.Text,hn)),headers:e.Vec(e.Tuple(e.Text,e.Text)),created_at:e.Nat64,version:e.Opt(e.Nat64)}),tt=e.Record({matches_pages:e.Opt(e.Nat64),matches_length:e.Nat64,items_page:e.Opt(e.Nat64),items:e.Vec(e.Tuple(e.Text,or)),items_length:e.Nat64}),Le=e.Variant({Emulator:e.Null,Automation:e.Null}),wt=e.Variant({Write:e.Null,Admin:e.Null,Submit:e.Null}),Tt=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(Le),created_at:e.Nat64,scope:wt,expires_at:e.Opt(e.Nat64)}),mn=e.Record({updated_at:e.Nat64,created_at:e.Nat64,version:e.Opt(e.Nat64),bn_id:e.Opt(e.Text)}),rt=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),_n=e.Record({status:rt,updated_at:e.Nat64,block_index_payment:e.Nat64,mission_control_id:e.Opt(e.Principal),created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64)}),yn=e.Record({block_index:e.Nat64,ledger_id:e.Principal}),gn=e.Record({owner:e.Principal,subaccount:e.Opt(e.Vec(e.Nat8))}),Nt=e.Record({status:rt,updated_at:e.Nat64,created_at:e.Nat64,block_index_refunded:e.Opt(e.Nat64),purchaser:gn}),Ot=e.Record({desc:e.Bool}),xn=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),bn=e.Record({order:e.Opt(Ot),paginate:e.Opt(xn)}),wn=e.Record({proposal_id:e.Nat}),Tn=e.Record({matches_length:e.Nat64,items:e.Vec(e.Tuple(wn,ke)),items_length:e.Nat64}),qe=e.Variant({Orbiter:e.Null,Satellite:e.Null}),Nn=e.Record({segment_id:e.Opt(e.Principal),segment_kind:e.Opt(qe)}),On=e.Record({user:e.Principal,segment_id:e.Principal,segment_kind:qe}),nt=e.Record({updated_at:e.Nat64,metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,created_at:e.Nat64}),En=e.Record({openid:e.Opt(b),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(S)}),Rn=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),kind:e.Opt(Le),scope:wt,expires_at:e.Opt(e.Nat64)}),vn=e.Record({controller:Rn,controllers:e.Vec(e.Principal)}),In=e.Record({fee_cycles:Zt,fee_icp:e.Opt(t)}),ir=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:qe}),An=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:qe}),Sn=e.Record({iframe:e.Opt(k),rewrites:e.Vec(e.Tuple(e.Text,e.Text)),headers:e.Vec(e.Tuple(e.Text,e.Vec(e.Tuple(e.Text,e.Text)))),version:e.Opt(e.Nat64),max_memory_size:e.Opt(A),raw_access:e.Opt(F),redirects:e.Opt(e.Vec(e.Tuple(e.Text,P)))}),sr=e.Record({segment_id:e.Principal,segment_kind:qe}),Cn=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),ar=e.Record({chunk_id:e.Nat});return e.Service({add_credits:e.Func([e.Principal,t],[],[]),add_invitation_code:e.Func([e.Text],[],[]),assert_mission_control_center:e.Func([r],[],[]),authenticate:e.Func([o],[m],[]),commit_proposal:e.Func([x],[e.Null],[]),commit_proposal_asset_upload:e.Func([y],[],[]),commit_proposal_many_assets_upload:e.Func([e.Vec(y)],[],[]),count_proposals:e.Func([],[e.Nat64],[]),create_mission_control:e.Func([T],[e.Principal],[]),create_orbiter:e.Func([O],[e.Principal],[]),create_satellite:e.Func([v],[e.Principal],[]),del_controllers:e.Func([w],[],[]),del_custom_domain:e.Func([e.Text],[],[]),delete_proposal_assets:e.Func([I],[],[]),get_account:e.Func([],[e.Opt(p)],[]),get_auth_config:e.Func([],[e.Opt(B)],[]),get_config:e.Func([],[M],[]),get_create_orbiter_fee:e.Func([ee],[e.Opt(t)],[]),get_create_satellite_fee:e.Func([ee],[e.Opt(t)],[]),get_credits:e.Func([],[t],[]),get_delegation:e.Func([Y],[oe],[]),get_fee:e.Func([te],[nn],[]),get_or_init_account:e.Func([],[p],[]),get_proposal:e.Func([e.Nat],[e.Opt(ke)],[]),get_rate_config:e.Func([te],[gt],[]),get_storage_config:e.Func([],[D],[]),http_request:e.Func([Qe],[er],[]),http_request_streaming_callback:e.Func([et],[bt],[]),init_proposal:e.Func([Xt],[e.Nat,ke],[]),init_proposal_asset_upload:e.Func([tr,e.Nat],[rr],[]),init_proposal_many_assets_upload:e.Func([e.Vec(tr),e.Nat],[e.Vec(e.Tuple(e.Text,rr))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],[]),list_assets:e.Func([e.Text,pn],[tt],[]),list_controllers:e.Func([],[e.Vec(e.Tuple(e.Principal,Tt))],[]),list_custom_domains:e.Func([],[e.Vec(e.Tuple(e.Text,mn))],[]),list_icp_payments:e.Func([],[e.Vec(e.Tuple(e.Nat64,_n))],[]),list_icrc_payments:e.Func([],[e.Vec(e.Tuple(yn,Nt))],[]),list_proposals:e.Func([bn],[Tn],[]),list_segments:e.Func([Nn],[e.Vec(e.Tuple(On,nt))],[]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([En],[B],[]),set_controllers:e.Func([vn],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([te,In],[],[]),set_many_segments:e.Func([e.Vec(ir)],[e.Vec(nt)],[]),set_rate_config:e.Func([te,gt],[],[]),set_segment:e.Func([ir],[nt],[]),set_segment_metadata:e.Func([An],[nt],[]),set_storage_config:e.Func([Sn],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,ke],[]),unset_many_segments:e.Func([e.Vec(sr)],[],[]),unset_segment:e.Func([sr],[],[]),upload_proposal_asset_chunk:e.Func([Cn],[ar],[])})};var gy=async({identity:e,host:t,localActor:r})=>await Sr.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),xy=async({agent:e,...t})=>e??await by(t),by=async({identity:e,container:t})=>{let r=J(t)&&t!==!1;return await gy({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var yp=({satelliteId:e,certified:t=!1,...r})=>xp({canisterId:e,...r,idlFactory:t?Qc:Xc});var gp=({consoleId:e,certified:t=!1,...r})=>xp({canisterId:e,...r,idlFactory:t?yy:_y}),xp=({canisterId:e,idlFactory:t,...r})=>{if(U(e))throw new Error("No canister ID provided.");return wy({canisterId:e,idlFactory:t,...r})},wy=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await xy(n);return Eo.createActor(t,{agent:o,canisterId:e,...r??{}})};var bp=({satelliteId:e,container:t})=>{let{satelliteId:r}=el({satelliteId:e}),{container:n}=tl({container:t});if(J(n)&&n!==!1){let{host:o,protocol:i}=new URL(n===!0?vo:n);return`${i}//${r??"unknown"}.${o.replace("127.0.0.1","localhost")}`}return`https://${r??"unknown"}.icp0.io`},el=({satelliteId:e})=>J(e)?{satelliteId:e}:Se.getInstance().get()??{satelliteId:void 0},tl=({container:e})=>J(e)?{container:e}:Se.getInstance().get()??{container:void 0};var be=({satellite:e,options:{certified:t}})=>Tp({idlFactory:t?Qc:Xc,actorKey:`stock#${t?"update":"query"}`,...e}),wp=({idlFactory:e,...t})=>Tp({idlFactory:e,actorKey:"extended#query",...t}),Tp=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=el({satelliteId:e});bi(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=tl({container:t});return await Ao.getInstance().getActor({satelliteId:n,container:o,...r})};var Hs=class extends Error{},Fr=class extends Error{},Gs=class extends Error{},$s=class extends Error{},Co=class extends Error{},Js=class extends Error{},Ws=class extends Error{},zs=class extends Error{},Ys=class extends Error{};var Np=e=>{if(U(e))return se();switch(e.matcher){case"equal":return se({Equal:e.timestamp});case"greaterThan":return se({GreaterThan:e.timestamp});case"lessThan":return se({LessThan:e.timestamp});case"between":return se({Between:[e.timestamps.start,e.timestamps.end]});default:throw new Ys("Invalid list matcher for timestamp",e)}},rn=({matcher:e,paginate:t,order:r,owner:n})=>({matcher:U(e)?[]:[{key:se(e.key),description:se(e.description),created_at:Np(e.createdAt),updated_at:Np(e.updatedAt)}],paginate:se(U(t)?void 0:{start_after:se(t.startAfter),limit:se(U(t.limit)?void 0:BigInt(t.limit))}),order:se(U(r)?void 0:{desc:r.desc,field:r.field==="created_at"?{CreatedAt:null}:r.field==="updated_at"?{UpdatedAt:null}:{Keys:null}}),owner:se(U(n)?void 0:typeof n=="string"?L.fromText(n):n)});var Op=async e=>{let t=new Blob([JSON.stringify(e,Md)],{type:"application/json; charset=utf-8"});return new Uint8Array(await t.arrayBuffer())},Zs=async e=>{let t=new Blob([e instanceof Uint8Array?e:new Uint8Array(e)],{type:"application/json; charset=utf-8"});return JSON.parse(await t.text(),jd)},Xs=()=>typeof window<"u";var Ep=async({data:e})=>{try{return await Zs(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var rl=async e=>{let{data:t,version:r,description:n}=e;return{description:se(n),data:await Op(t),version:se(r)}},nl=e=>{let{version:t}=e;return{version:se(t)}},Qn=async({doc:e,key:t})=>{let{owner:r,version:n,description:o,data:i,...s}=e;return{key:t,description:xe(o),owner:r.toText(),data:await Zs(i),version:xe(n),...s}};var Rp=async({collection:e,key:t,...r})=>{let{get_doc:n}=await be(r),o=xe(await n(e,t));if(!U(o))return Qn({doc:o,key:t})},vp=async({docs:e,...t})=>{let{get_many_docs:r}=await be(t),n=e.map(({collection:s,key:a})=>[s,a]),o=await r(n),i=[];for(let[s,a]of o){let c=xe(a);i.push(J(c)?await Qn({key:s,doc:c}):void 0)}return i},Ip=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await be(r),{key:o}=t,i=await rl(t),s=await n(e,o,i);return await Qn({key:o,doc:s})},Ap=async({docs:e,...t})=>{let{set_many_docs:r}=await be(t),n=[];for(let{collection:s,doc:a}of e){let{key:c}=a;n.push([s,c,await rl(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await Qn({key:s,doc:a}));return i},Sp=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await be(r),{key:o}=t;return n(e,o,nl(t))},Cp=async({docs:e,...t})=>{let{del_many_docs:r}=await be(t),n=e.map(({collection:o,doc:i})=>[o,i.key,nl(i)]);await r(n)},Vp=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await be(r);return n(e,rn(t))},Fp=async({collection:e,filter:t,...r})=>{let{list_docs:n}=await be(r),{items:o,items_page:i,items_length:s,matches_length:a,matches_pages:c}=await n(e,rn(t)),u=[];for(let[p,d]of o){let{data:l,owner:f,description:h,version:_,...g}=d;u.push({key:p,description:xe(h),owner:f.toText(),data:await Ep({data:l}),version:xe(_),...g})}return{items:u,items_length:s,items_page:xe(i),matches_length:a,matches_pages:xe(c)}},Pp=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await be(r);return n(e,rn(t))};var Qs=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Rp({...r,satellite:{...e,identity:n},options:t??zt})},kN=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await vp({...r,satellite:{...e,identity:n},options:t??zt})},Bp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Ip({...t,satellite:{...e,identity:r},options:{certified:!0}})},Dp=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Ap({...t,satellite:{...e,identity:r},options:{certified:!0}})},LN=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Sp({...t,satellite:{...e,identity:r},options:{certified:!0}})},qN=async({satellite:e,...t})=>{let r=ue(e?.identity);return await Cp({...t,satellite:{...e,identity:r},options:{certified:!0}})},MN=async({satellite:e,filter:t,...r})=>{let n=ue(e?.identity);return await Vp({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},jN=async({satellite:e,options:t,filter:r,...n})=>{let o=ue(e?.identity);return await Fp({...n,filter:r??{},satellite:{...e,identity:o},options:t??zt})},KN=async({satellite:e,options:t,filter:r,...n})=>{let o=ue(e?.identity);return await Pp({...n,filter:r??{},satellite:{...e,identity:o},options:t??zt})};var Up=async({provider:e})=>{let{user:t,userId:r}=await ea();if(J(t))return t;try{return await Ty({userId:r,provider:e})}catch(n){if(Zc({error:n,type:_p})){let o=await kp({userId:r});if(J(o))return o}throw n}},ea=async()=>{let e=Ks();if(U(e))throw new zs("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await kp({userId:t});return{userId:t,user:r}},kp=({userId:e})=>Qs({collection:"#user",key:e}),Ty=({userId:e,...t})=>Bp({collection:"#user",doc:{key:e,data:t}});var ta=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await Ii({fn:async()=>{let{user:r}=await ea();Ue.getInstance().set(r??null)},syncTabsOnSuccess:e})},Lp=async()=>{await mp({fn:async({authenticated:t})=>{let n=t?ea:()=>Promise.resolve({user:null}),{user:o}=await n();Ue.getInstance().set(o??null)}})},ra=async({user:e})=>{await Ii({fn:async()=>{Ue.getInstance().set(e)},syncTabsOnSuccess:!0})};var qp=()=>{try{let e=So.getInstance(),t=async()=>{await Lp(),Ti({message:"junoSignInReload"})};return e.onLoginSuccess(t),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var Mp=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_SATELLITE_ID??import.meta.env?.PUBLIC_SATELLITE_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_SATELLITE_ID??e():e()},jp=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_CONTAINER??import.meta.env?.PUBLIC_CONTAINER:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_CONTAINER??e():e()},Kp=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_GOOGLE_CLIENT_ID??import.meta.env?.PUBLIC_GOOGLE_CLIENT_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID??e():e()},Hp=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_GITHUB_CLIENT_ID??import.meta.env?.PUBLIC_GITHUB_CLIENT_ID:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_GITHUB_CLIENT_ID??e():e()},na=()=>{let e=()=>typeof import.meta<"u"&&typeof import.meta.env<"u"?import.meta.env?.VITE_JUNO_API_URL??import.meta.env?.PUBLIC_JUNO_API_URL:void 0;return typeof process<"u"&&typeof process.env<"u"?process.env.NEXT_PUBLIC_JUNO_API_URL??e():e()};var Gp=BigInt(144e11),$p=!1,Jp={width:576,height:576},Wp={width:424,height:576},ol="internetcomputer.org",zp="ic0.app",oa="id.ai";var Yp=({width:e,height:t})=>{if(!Xs()||U(window)||U(window.top))return;let{top:{innerWidth:r,innerHeight:n}}=window,o=n/2+screenY-t/2,i=r/2+screenX-e/2;return`toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=${e}, height=${t}, top=${o}, left=${i}`};var Yt=async({fn:e,step:t,onProgress:r})=>{r?.({step:t,state:"in_progress"});try{let n=await e();return r?.({step:t,state:"success"}),n}catch(n){throw r?.({step:t,state:"error"}),n}};var Zp=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(Zp||{});var ia=class{async signIn({options:t,authClient:r,initAuth:n}){await Yt({fn:async()=>await this.#e({options:t,authClient:r}),step:0,onProgress:t?.onProgress}),await Yt({fn:async()=>await n({provider:this.id}),step:1,onProgress:t?.onProgress})}#e({options:t,authClient:r}){return new Promise(async(n,o)=>{if(U(r)){o(new Fr("No client is ready to perform a sign-in. Have you initialized the Satellite?"));return}await r.login({onSuccess:n,onError:i=>{if(i===js){o(new Gs(i));return}o(new Hs(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??Gp,allowPinAuthentication:t?.allowPin??$p,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var sa=class extends ia{#e;constructor({domain:t}){super(),this.#e=t}get id(){return"internet_identity"}signInOptions({windowed:t}){let n=(()=>{let i=Se.getInstance().get()?.container;if(U(i)||i===!1){let p=[ol,zp].includes(this.#e??oa);return _t(this.#e)?`https://${oa}`:p?`https://identity.${this.#e??ol}`:`https://${this.#e}`}let s=Se.getInstance().get(),a=J(s)&&J(s?.internetIdentityId)?s.internetIdentityId:Zd,{host:c,protocol:u}=new URL(i===!0?vo:i);return/apple/i.test(navigator?.vendor)?`${u}//${c}?canisterId=${a}`:`${u}//${a}.${c.replace("127.0.0.1","localhost")}`})();return{...t!==!1&&{windowOpenerFeatures:Yp((()=>{try{let{hostname:i}=new URL(n);return i.includes(oa)}catch{return!1}})()?Wp:Jp)},identityProvider:n}}};var il=class extends Error{},sl=class extends Error{},al=class extends Error{},cl=class extends Error{},ll=class extends Error{},ul=class extends Error{},dl=class extends Error{},aa=class extends Error{},pl=class extends Error{},fl=class extends Error{},hl=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},ml=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}};var Xp=({auth:e,identity:t})=>"satellite"in e?yp({...e.satellite,identity:t}):gp({...e.console,identity:t}),Ny=async({actorParams:e,args:t})=>{let{authenticate:r}=await Xp(e);return await r(t)},Oy=async({actorParams:e,args:t})=>{let{get_delegation:r}=await Xp(e);return await r(t)},Ey=({delegations:e,sessionKey:t})=>{let[r,n]=e,o=Dt.fromDelegations(n,Uint8Array.from(r));return{identity:Ut.fromDelegation(t,o),delegationChain:o,sessionKey:t}},ca=async({jwt:e,context:t,auth:r})=>{let n=await yt.generate({extractable:!1}),o=new Uint8Array(n.getPublicKey().toDer()),{delegations:i,data:s}=await Ry({jwt:e,publicKey:o,context:t,auth:r});return{identity:Ey({sessionKey:n,delegations:i}),data:s}},Ry=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await Ny({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new ll("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,u=await vy({jwt:e,context:{caller:r,salt:n},auth:o,publicKey:t,expiration:a}),{delegation:p,signature:d}=u,{pubkey:l,expiration:f,targets:h}=p;return{delegations:[s,[{delegation:new tn(Uint8Array.from(l),f,xe(h)),signature:Uint8Array.from(d)}]],data:c}},vy=async({jwt:e,publicKey:t,context:{salt:r,caller:n},auth:o,expiration:i,maxRetries:s=5})=>{for(let a=0;a<s;a++){await new Promise(u=>{setInterval(u,1e3*a)});let c=await Oy({args:{OpenId:{jwt:e,session_key:t,salt:r,expiration:i}},actorParams:{auth:o,identity:n}});if("Err"in c){let{Err:u}=c;if("NoSuchDelegation"in u||"GetCachedJwks"in u)continue;throw new pl("Getting delegation failed",{cause:c})}return c.Ok}throw new fl};var Qp=async({url:e})=>{try{let t=await fetch(e,{credentials:"include"});return t.ok?{success:await t.json()}:{error:new Error(`Failed to fetch ${e} (${t.status})`)}}catch(t){return{error:new hl({cause:t})}}},ef=async({url:e,body:t})=>{try{let r=await fetch(e,{method:"POST",credentials:"include",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});return r.ok?{success:await r.json()}:{error:new Error(`Failed to fetch ${e} (${r.status})`)}}catch(r){return{error:new ml({cause:r})}}};var _l="juno:auth:openid",yl={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},la={authUrl:"https://github.com/login/oauth/authorize",authScopes:["read:user","user:email"],initUrl:"https://api.juno.build/v1/auth/init/github",finalizeUrl:"https://api.juno.build/v1/auth/finalize/github"};var gl=e=>Qr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),ua=({url:e})=>{try{return new URL(e)}catch{throw new il("Cannot parse authURL",{cause:e})}},Iy=()=>window.crypto.getRandomValues(new Uint8Array(32)),Ay=async({salt:e,caller:t})=>{let r=t.getPrincipal().toUint8Array(),n=new Uint8Array(e.length+r.byteLength);n.set(e),n.set(r,e.length);let o=await window.crypto.subtle.digest("SHA-256",n);return gl(Vr(o))},Sy=async({caller:e})=>{let t=Iy();return{nonce:await Ay({salt:t,caller:e}),salt:t}},tf="__caller__",rf="__salt__",nf="__state__",Cy=({caller:e,state:t,salt:r})=>{let n={[tf]:e.toJSON(),[rf]:Qr(r),[nf]:t};return JSON.stringify(n)},Vy=e=>{let{[tf]:t,[rf]:r,[nf]:n}=JSON.parse(e);return{caller:ct.fromParsedJson(t),salt:qd(r),state:n}},xl=async({generateState:e})=>{let t=ct.generate(),{nonce:r,salt:n}=await Sy({caller:t}),o=await e({nonce:r}),i=Cy({caller:t,salt:n,state:o});return sessionStorage.setItem(_l,i),{nonce:r,state:o}},of=()=>{let e=sessionStorage.getItem(_l);if(U(e))throw new sl;return Vy(e)};var Fy=async({auth:e,context:t,redirect:{finalizeUrl:r}})=>{let{location:{search:n}}=window,o=new URLSearchParams(n),i=o.get("code"),s=o.get("state"),a=await ef({url:r,body:{code:i,state:s}});if("error"in a)throw a.error;let{success:{token:c}}=a;if(_t(c))throw new aa;return await ca({jwt:c,auth:e,context:t})},Py=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(_t(r)||!r.startsWith("#"))throw new ul("No hash found in the current location URL");let n=new URLSearchParams(r.slice(1)),o=n.get("state"),i=n.get("id_token"),{state:s}=t;if(_t(s)||o!==s)throw new dl("The provided state is invalid",{cause:o});if(_t(i))throw new aa;return await ca({jwt:i,auth:e,context:t})},bl=async e=>{let t=of();if("github"in e){let{github:{redirect:n,auth:o}}=e,{finalizeUrl:i}=la;return await Fy({redirect:n??{finalizeUrl:i},auth:o,context:t})}let{google:r}=e;if("credentials"in r){let{credentials:{jwt:n},auth:o}=r;return await ca({jwt:n,context:t,auth:o})}return await Py({...r,context:t})};var By=({initUrl:e})=>async({nonce:t})=>{let r=ua({url:e});r.searchParams.set("nonce",t);let n=await Qp({url:r.toString()});if("error"in n)throw n.error;let{success:{state:o}}=n;return o},Dy=({authUrl:e,clientId:t,authScopes:r,state:n,redirectUrl:o})=>{let i=ua({url:e});i.searchParams.set("client_id",t);let{location:{origin:s}}=window;i.searchParams.set("redirect_uri",o??s),i.searchParams.set("scope",r.join(" ")),i.searchParams.set("state",n),window.location.href=i.toString()},Uy=()=>gl(window.crypto.getRandomValues(new Uint8Array(12))),ky=async e=>Uy(),Ly=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=ua({url:e});a.searchParams.set("client_id",t);let{location:{origin:c}}=window;a.searchParams.set("redirect_uri",s??c),a.searchParams.set("response_type","code id_token"),a.searchParams.set("scope",o.join(" ")),a.searchParams.set("state",i),a.searchParams.set("nonce",r),Cr(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},qy=async({configUrl:e,clientId:t,nonce:r,loginHint:n,domainHint:o})=>{let i=await navigator.credentials.get({identity:{context:"use",providers:[{configURL:e,clientId:t,nonce:r,loginHint:n,domainHint:o}],mode:"active"},mediation:"required"});if(U(i))throw new al;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new cl("Invalid credential received from FedCM API",{cause:i});let{token:a}=i;return{jwt:a}};async function Ai(e){if("github"in e){let{github:s}=e,{redirect:a}=s,{initUrl:c,...u}=a,{authUrl:p,authScopes:d,initUrl:l}=la,f=await xl({generateState:By({initUrl:c??l})});Dy({...u,...f,authUrl:p,authScopes:d});return}let t=await xl({generateState:ky}),{google:r}=e;if("credentials"in r){let{credentials:s}=r,{configUrl:a}=yl;return await qy({...s,...t,configUrl:a})}let{redirect:n}=r,{authUrl:o,authScopes:i}=yl;Ly({...n,...t,authUrl:o,authScopes:i})}var da=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var My=async e=>{let{satelliteId:t}=Se.getInstance().get()??{satelliteId:void 0};if(U(t))throw new Fr("Satellite ID not set. Have you initialized the Satellite?");let r=Se.getInstance().get()?.container,n={auth:{satellite:{satelliteId:t,container:r}}},i=(()=>{let d="github"in e?e?.github?.options?.finalizeUrl:void 0;if(Cr(d))return d;let l=na();return _t(l)?null:da({url:`${l}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:s,sessionKey:a,identity:c},data:{doc:u}}=await bl("github"in e?{github:{redirect:J(i)?{finalizeUrl:i}:null,...n}}:{google:{redirect:null,...n}});await Ve.getInstance().setAuthClientStorage({delegationChain:s,sessionKey:a});let p=await Qn({doc:u,key:c.getPrincipal().toText()});await ra({user:p})};var sf=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),jy=()=>{window.addEventListener("beforeunload",sf,{capture:!0})},Ky=()=>{window.removeEventListener("beforeunload",sf,{capture:!0})},pa=async({fn:e})=>{try{return jy(),await e()}finally{Ky()}};function af(e){return new Promise((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)})}function Tl(e,t){let r,n=()=>{if(r)return r;let o=indexedDB.open(e);return o.onupgradeneeded=()=>o.result.createObjectStore(t),r=af(o),r.then(i=>{i.onclose=()=>r=void 0},()=>{}),r};return(o,i)=>n().then(s=>i(s.transaction(t,o).objectStore(t)))}var wl;function Hy(){return wl||(wl=Tl("keyval-store","keyval")),wl}function cf(e,t,r=Hy()){return r("readwrite",n=>new Promise((o,i)=>{n.get(e).onsuccess=function(){try{n.put(t(this.result),e),o(af(n.transaction))}catch(s){i(s)}}}))}var Gy=class extends Error{constructor(){super("A dev identity can only be used in browser environments")}},$y=class extends Error{constructor(){super("A dev identity must only be used on localhost (127.0.0.1 or localhost)")}},Jy=class extends Error{constructor(e){super(`Identifier must be 32 characters or less, got ${e}`)}},Wy=Tl("juno-dev-identifiers","juno-dev-identifiers-store");var lf=async({identifier:e="dev",maxTimeToLiveInMilliseconds:t}={})=>{if(!(typeof window<"u"))throw new Gy;let{location:{hostname:r}}=window;if(!["127.0.0.1","localhost"].includes(r))throw new $y;let n=()=>{if(e.length>32)throw new Jy(e.length);return new TextEncoder().encode(e.padEnd(32,"0"))},o=async()=>{let a=n(),c=ct.generate(a),u=await yt.generate({extractable:!1}),p=t??6048e5,d=await Dt.create(c,u.getPublicKey(),new Date(Date.now()+p));return{identity:Ut.fromDelegation(u,d),sessionKey:u,delegationChain:d}},i=async()=>{await cf(e,a=>{let c=Date.now();return{createdAt:a?.createdAt??c,updatedAt:c}},Wy)},s=await o();return await i(),s};var fa=class{async signIn({options:t,initAuth:r,setStorage:n}){let{sessionKey:o,delegationChain:i}=await lf(t);await n({sessionKey:o,delegationChain:i}),await r({provider:void 0})}};var ha=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Hp();if(U(r))throw new Co;let{redirect:n}=t;await Ai({github:{redirect:{...n??{},clientId:r,initUrl:(()=>{let i=t?.redirect?.initUrl;if(Cr(i))return i;let s=na();if(!_t(s))return da({url:`${s}/v1/auth/init/github`})?.toString()})()}}})}};var ma=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Kp();if(U(r))throw new Co;let{redirect:n}=t;await Ai({google:{redirect:{...n??{},clientId:r}}})}};var uf=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Dp({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...J(n)&&{aaguid:Us(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var df=(i=>(i[i.RequestingUserCredential=0]="RequestingUserCredential",i[i.FinalizingCredential=1]="FinalizingCredential",i[i.Signing=2]="Signing",i[i.FinalizingSession=3]="FinalizingSession",i[i.RetrievingUser=4]="RetrievingUser",i))(df||{}),pf=(s=>(s[s.CreatingUserCredential=0]="CreatingUserCredential",s[s.ValidatingUserCredential=1]="ValidatingUserCredential",s[s.FinalizingCredential=2]="FinalizingCredential",s[s.Signing=3]="Signing",s[s.FinalizingSession=4]="FinalizingSession",s[s.RegisteringUser=5]="RegisteringUser",s))(pf||{});var Vo=class{async signUp({options:{onProgress:t,maxTimeToLiveInMilliseconds:r,passkey:n}={},loadAuthWithUser:o}){let{satelliteId:i}=Se.getInstance().get()??{satelliteId:void 0};if(U(i))throw new Fr("Satellite ID not set. Have you initialized the Satellite?");let s=({step:_,state:g})=>{switch(_){case en.RequestingUserCredential:t?.({step:1,state:g});break;case en.FinalizingCredential:t?.({step:2,state:g});break;case en.Signing:t?.({step:3,state:g});break}},c=await Yt({fn:async()=>await kc.createWithNewCredential({onProgress:s,passkeyOptions:n}),step:0,onProgress:t}),{delegationIdentity:u,sessionKey:p}=await this.#e({identity:c,maxTimeToLiveInMilliseconds:r}),l=await Yt({fn:async()=>await uf({delegationIdentity:u,passkeyIdentity:c,satelliteId:i}),step:5,onProgress:t});await Yt({fn:async()=>await this.#t({delegationIdentity:u,sessionKey:p}),step:4,onProgress:t}),await Yt({fn:async()=>await o({user:l}),step:5,onProgress:t})}async signIn({options:{onProgress:t,maxTimeToLiveInMilliseconds:r}={},loadAuth:n}){let{satelliteId:o}=Se.getInstance().get()??{satelliteId:void 0};if(U(o))throw new Fr("Satellite ID not set. Have you initialized the Satellite?");let i=async({credentialId:d})=>{let l=await Qs({collection:"#user-webauthn",key:Qr(d),options:{certified:!0},satellite:{identity:new it,satelliteId:o}});if(U(l))throw new Js("No public key found for the selected passkey.");let{data:f}=l,{publicKey:h}=f;return Xn(h,gi)},s=({step:d,state:l})=>{switch(d){case en.RequestingUserCredential:t?.({step:0,state:l});break;case en.FinalizingCredential:t?.({step:1,state:l});break;case en.Signing:t?.({step:2,state:l});break}},a=await kc.createWithExistingCredential({retrievePublicKey:i,onProgress:s}),{delegationIdentity:c,sessionKey:u}=await this.#e({identity:a,maxTimeToLiveInMilliseconds:r});await Yt({fn:async()=>await this.#t({delegationIdentity:c,sessionKey:u}),step:3,onProgress:t}),await Yt({fn:n,step:4,onProgress:t})}async#e({identity:t,maxTimeToLiveInMilliseconds:r}){let n=await yt.generate({extractable:!1}),o=r??144e5,i=await Dt.create(t,n.getPublicKey(),new Date(Date.now()+o));return{delegationIdentity:Ut.fromDelegation(n,i),sessionKey:n}}async#t({sessionKey:t,delegationIdentity:r}){let n=new Wt;await Promise.all([n.set(Ye,t.getKeyPair()),n.set(ze,JSON.stringify(r.getDelegation().toJSON()))])}};var ff=async({provider:e})=>{await Ii({fn:async()=>{let r=await Up({provider:e});Ue.getInstance().set(r)},syncTabsOnSuccess:!0})},Yy=async e=>{if("google"in e){let{google:{options:t}}=e;await Si({fn:()=>new ma().signIn({options:t}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:t}}=e;await Si({fn:()=>new ha().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await Si({fn:()=>new Vo().signIn({options:t,loadAuth:()=>ta({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await Si({fn:()=>new sa({domain:n}).signIn({options:o,authClient:Ve.getInstance().getAuthClient(),initAuth:ff}),context:r});return}if("dev"in e){let{dev:{options:t}}=e,{setAuthClientStorage:r}=Ve.getInstance();await Si({fn:()=>new fa().signIn({options:t,initAuth:ff,setStorage:r}),context:{windowGuard:!1}});return}throw new $s("An unknown or unsupported provider was provided for sign-in.")},Si=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await pa({fn:e})};var Zy=async e=>{let t=async()=>await Xy(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await pa({fn:t})},Xy=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new Vo().signUp({options:t,loadAuthWithUser:ra});return}throw new Ws("An unknown or unsupported provider was provided for sign-up.")};var q1=e=>e?.data?.provider==="webauthn",M1=e=>e?.data?.provider==="google";var G1=async({idlFactory:e,satellite:t})=>{let r=ue(t?.identity);return await wp({idlFactory:e,...t,identity:r})};var hf=async({asset:{data:e,headers:t,...r},actor:n,progress:o})=>{let{init_asset_upload:i,upload_asset_chunk:s,commit_asset_upload:a}=n,{batch_id:c}=await i(Qy(r));o?.onInitiatedBatch();let{chunkIds:u}=await rg({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await tg({commitFn:a,batchId:c,data:e,headers:t,chunkIds:u}),o?.onCommittedBatch()};var Qy=({filename:e,collection:t,token:r,fullPath:n,encoding:o,description:i})=>({collection:t,full_path:n,name:e,token:se(r),encoding_type:se(o),description:se(i)}),eg=({batchId:e,chunkIds:t,headers:r,data:n})=>{let o=r.find(([i,s])=>i.toLowerCase()==="content-type")===void 0&&n.type!==void 0&&n.type!==""?[["Content-Type",n.type]]:void 0;return{batch_id:e,chunk_ids:t.map(({chunk_id:i})=>i),headers:[...r,...o??[]]}},tg=async({commitFn:e,...t})=>{let r=eg(t);await e(r)},rg=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=Xs()?new Blob([await e.arrayBuffer()]):e,i=0n;for(let a=0;a<o.size;a+=19e5){let c=o.slice(a,a+19e5);n.push({batchId:r,chunk:c,uploadFn:t,orderId:i}),i++}let s=[];for await(let a of ng({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*ng({uploadChunks:e,limit:t=12}){for(let r=0;r<e.length;r=r+t){let n=e.slice(r,r+t);yield await Promise.all(n.map(o=>og(o)))}}var og=async({batchId:e,chunk:t,uploadFn:r,orderId:n})=>r({batch_id:e,content:new Uint8Array(await t.arrayBuffer()),order_id:se(n)});var mf=async({asset:e,...t})=>{let r=await be(t);await hf({actor:r,asset:e})},_f=async({collection:e,filter:t,...r})=>{let{list_assets:n}=await be(r),{items:o,items_length:i,items_page:s,matches_length:a,matches_pages:c}=await n(e,rn(t));return{items:o.map(([u,p])=>p),items_length:i,items_page:xe(s),matches_length:a,matches_pages:xe(c)}},yf=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await be(r);return n(e,rn(t))},gf=async({collection:e,fullPath:t,...r})=>(await be(r)).del_asset(e,t),xf=async({assets:e,satellite:t})=>{let{del_many_assets:r}=await be({satellite:t,options:{certified:!0}}),n=e.map(({collection:o,fullPath:i})=>[o,i]);await r(n)},bf=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await be(r);return n(e,rn(t))},wf=async({collection:e,fullPath:t,token:r,...n})=>{let{set_asset_token:o}=await be(n);return o(e,t,se(r))},Tf=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await be(r);return xe(await n(e,t))},Nf=async({assets:e,...t})=>{let{get_many_assets:r}=await be(t),n=e.map(({collection:i,fullPath:s})=>[i,s]);return(await r(n)).map(([i,s])=>xe(s))};var Of=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var cE=e=>Ef(e),lE=e=>Ef({filename:e.data.name,...e}),Ef=async({filename:e,data:t,collection:r,headers:n=[],fullPath:o,token:i,satellite:s,encoding:a,description:c})=>{let u=ue(s?.identity),p=decodeURI(e),d=o??`/${r}/${p}`,l={...s,identity:u};return await mf({asset:{data:t,filename:p,collection:r,token:i,headers:n,fullPath:d,encoding:a,description:c},satellite:l,options:{certified:!0}}),{downloadUrl:Rf({satellite:l,assetKey:{fullPath:d,token:i}}),fullPath:d,...J(i)&&{token:i},name:p}},uE=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)},{items:i,...s}=await _f({collection:e,filter:t??{},satellite:o,options:n??zt}),a=i.map(({key:{full_path:c,token:u,name:p,owner:d,description:l},headers:f,encodings:h,created_at:_,updated_at:g})=>{let m=xe(u);return{fullPath:c,description:xe(l),name:p,downloadUrl:Rf({satellite:o,assetKey:{fullPath:c,token:m}}),token:m,headers:f,encodings:h.reduce((x,[y,{modified:T,sha256:O,total_length:R}])=>({...x,[y]:{modified:T,sha256:Of(O),total_length:R}}),{}),owner:d.toText(),created_at:_,updated_at:g}});return{items:a,assets:a,...s}},dE=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:ue(r?.identity)};return await yf({collection:e,satellite:o,filter:t??{},options:n??zt})},pE=({collection:e,fullPath:t,satellite:r})=>gf({collection:e,fullPath:t,satellite:{...r,identity:ue(r?.identity)},options:{certified:!0}}),fE=({collection:e,fullPath:t,token:r,satellite:n})=>wf({collection:e,fullPath:t,token:r,satellite:{...n,identity:ue(n?.identity)},options:{certified:!0}}),hE=({assets:e,satellite:t})=>xf({assets:e,satellite:{...t,identity:ue(t?.identity)},options:{certified:!0}}),mE=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:ue(t?.identity)};return await bf({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},_E=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Tf({...r,satellite:{...e,identity:n},options:t??zt})},yE=async({satellite:e,options:t,...r})=>{let n=ue(e?.identity);return await Nf({...r,satellite:{...e,identity:n},options:t??zt})},Rf=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:ue(r?.identity)};return`${bp(n)}${e}${J(t)?`?token=${t}`:""}`};var ig=e=>{let t=e?.satelliteId??Mp();bi(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??jp();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},vE=e=>sg(e),sg=async e=>{let t=ig(e);Se.getInstance().set(t),await ta();let r=t.workers?.auth!==void 0?hp(t.workers.auth):void 0,n=t.syncTabs===!1?void 0:qp();return[...J(r)?[r]:[],...J(n)?[n]:[]]},ag=e=>Ue.getInstance().subscribe(e),IE=ag;export{Zp as AuthClientSignInProgressStep,zs as InitError,sa as InternetIdentityProvider,Ys as ListError,Hs as SignInError,Fr as SignInInitError,Co as SignInMissingClientIdError,$s as SignInProviderNotSupportedError,Gs as SignInUserInterruptError,Ws as SignUpProviderNotSupportedError,df as WebAuthnSignInProgressStep,Js as WebAuthnSignInRetrievePublicKeyError,pf as WebAuthnSignUpProgressStep,IE as authSubscribe,dE as countAssets,KN as countDocs,pE as deleteAsset,LN as deleteDoc,mE as deleteFilteredAssets,MN as deleteFilteredDocs,hE as deleteManyAssets,qN as deleteManyDocs,Rf as downloadUrl,_E as getAsset,Qs as getDoc,my as getIdentityOnce,yE as getManyAssets,kN as getManyDocs,G1 as getSatelliteExtendedActor,My as handleRedirectCallback,vE as initJuno,sg as initSatellite,M1 as isGoogleUser,M_ as isWebAuthnAvailable,q1 as isWebAuthnUser,uE as listAssets,jN as listDocs,ag as onAuthStateChange,fE as setAssetToken,Bp as setDoc,Dp as setManyDocs,Yy as signIn,Yc as signOut,Zy as signUp,hy as unsafeIdentity,cE as uploadBlob,lE as uploadFile};
|
|
57
57
|
/*! Bundled license information:
|
|
58
58
|
|
|
59
59
|
@noble/hashes/esm/utils.js:
|