@junobuild/core-standalone 5.0.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +17 -17
- package/dist/browser/index.js.map +4 -4
- package/dist/node/index.mjs +17 -17
- 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 +2 -2
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 Tf=Object.defineProperty;var Nf=(e,t)=>{for(var r in t)Tf(e,r,{get:t[r],enumerable:!0})};var gl;(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"})(gl||(gl={}));var vr;(function(e){e.Replied="replied",e.Rejected="rejected"})(vr||(vr={}));function xl(e){return e!=null&&"reject_code"in e}function bl(e){return e!=null&&"certificate"in e}var gi="abcdefghijklmnopqrstuvwxyz234567",Kn=Object.create(null);for(let e=0;e<gi.length;e++)Kn[gi[e]]=e;Kn[0]=Kn.o;Kn[1]=Kn.i;function wl(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+=gi[r>>3],t+=5),0)}for(let i=0;i<e.length;)i+=o(e[i]);return n+(t<0?gi[r>>3]:"")}function Tl(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 Of=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 Nl(e){let t=-1;for(let r=0;r<e.length;r++){let o=(e[r]^t)&255;t=Of[o]^t>>>8}return(t^-1)>>>0}import*as rr from"node:crypto";var wn=rr&&typeof rr=="object"&&"webcrypto"in rr?rr.webcrypto:rr&&typeof rr=="object"&&"randomBytes"in rr?rr:void 0;function Ft(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function fa(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function me(e,...t){if(!Ft(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 ha(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 El(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 bi(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function bt(e,t){return e<<32-t|e>>>t}var Rl=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Ef=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function j(e){if(me(e),Rl)return e.toHex();let t="";for(let r=0;r<e.length;r++)t+=Ef[e[r]];return t}var nr={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ol(e){if(e>=nr._0&&e<=nr._9)return e-nr._0;if(e>=nr.A&&e<=nr.F)return e-(nr.A-10);if(e>=nr.a&&e<=nr.f)return e-(nr.a-10)}function Ee(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Rl)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=Ol(e.charCodeAt(i)),a=Ol(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 ma(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 xi=class{};function wi(e){let t=n=>e().update(ma(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 Rf(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 Il(e,t,r){return e&t^~e&r}function vl(e,t,r){return e&t^e&r^t&r}var To=class extends xi{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=bi(this.buffer)}update(t){ha(this),t=ma(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=bi(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){ha(this),El(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;Rf(n,o-8,BigInt(this.length*8),i),this.process(n,0);let a=bi(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()}},or=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),ir=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 Ti=BigInt(4294967295),Al=BigInt(32);function If(e,t=!1){return t?{h:Number(e&Ti),l:Number(e>>Al&Ti)}:{h:Number(e>>Al&Ti)|0,l:Number(e&Ti)|0}}function Sl(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}=If(e[i],t);[n[i],o[i]]=[s,a]}return[n,o]}var _a=(e,t,r)=>e>>>r,ya=(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 Vt(e,t,r,n){let o=(t>>>0)+(n>>>0);return{h:e+r+(o/2**32|0)|0,l:o|0}}var Cl=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),Pl=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,Fl=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),Vl=(e,t,r,n,o)=>t+r+n+o+(e/2**32|0)|0,Bl=(e,t,r,n,o)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(o>>>0),Dl=(e,t,r,n,o,i)=>t+r+n+o+i+(e/2**32|0)|0;var Af=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),Ni=class extends To{constructor(t=32){super(64,t,8,!1),this.A=or[0]|0,this.B=or[1]|0,this.C=or[2]|0,this.D=or[3]|0,this.E=or[4]|0,this.F=or[5]|0,this.G=or[6]|0,this.H=or[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=bt(l,7)^bt(l,18)^l>>>3,_=bt(f,17)^bt(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=bt(a,6)^bt(a,11)^bt(a,25),f=p+l+Il(a,c,u)+Af[d]+Ar[d]|0,_=(bt(n,2)^bt(n,13)^bt(n,22))+vl(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)}},ga=class extends Ni{constructor(){super(28),this.A=ir[0]|0,this.B=ir[1]|0,this.C=ir[2]|0,this.D=ir[3]|0,this.E=ir[4]|0,this.F=ir[5]|0,this.G=ir[6]|0,this.H=ir[7]|0}},Ul=Sl(["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))),Sf=Ul[0],Cf=Ul[1],Sr=new Uint32Array(80),Cr=new Uint32Array(80),xa=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)^_a(T,E,7),R=On(T,E,1)^On(T,E,8)^ya(T,E,7),v=Sr[y-2]|0,w=Cr[y-2]|0,I=Nn(v,w,19)^No(v,w,61)^_a(v,w,6),P=On(v,w,19)^Oo(v,w,61)^ya(v,w,6),S=Fl(R,P,Cr[y-7],Cr[y-16]),b=Vl(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=Bl(x,E,R,Cf[y],Cr[y]),w=Dl(v,m,T,O,Sf[y],Sr[y]),I=v|0,P=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}=Vt(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=Cl(I,S,N);n=Pl(C,w,P,b),o=C|0}({h:n,l:o}=Vt(this.Ah|0,this.Al|0,n|0,o|0)),{h:i,l:s}=Vt(this.Bh|0,this.Bl|0,i|0,s|0),{h:a,l:c}=Vt(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:p}=Vt(this.Dh|0,this.Dl|0,u|0,p|0),{h:d,l}=Vt(this.Eh|0,this.El|0,d|0,l|0),{h:f,l:h}=Vt(this.Fh|0,this.Fl|0,f|0,h|0),{h:_,l:g}=Vt(this.Gh|0,this.Gl|0,_|0,g|0),{h:m,l:x}=Vt(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 Ve=wi(()=>new Ni),kl=wi(()=>new ga),Ll=wi(()=>new xa);var Oi="__principal__",Pf=2,ql=4,Ff="aaaaa-aa",k=class e{static anonymous(){return new this(new Uint8Array([ql]))}static managementCanister(){return this.fromText(Ff)}static selfAuthenticating(t){let r=kl(t);return new this(new Uint8Array([...r,Pf]))}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(Oi)){let s=JSON.parse(t);Oi in s&&(r=s[Oi])}let n=r.toLowerCase().replace(/-/g,""),o=Tl(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]===ql}toUint8Array(){return this._arr}toHex(){return j(this._arr).toUpperCase()}toText(){let t=new ArrayBuffer(4);new DataView(t).setUint32(0,Nl(this._arr));let n=new Uint8Array(t),o=new Uint8Array([...n,...this._arr]),s=wl(o).match(/.{1,5}/g);if(!s)throw new Error;return s.join("-")}toString(){return this.toText()}toJSON(){return{[Oi]: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 sr;(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"})(sr||(sr={}));var G=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,7 +9,7 @@ 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}},nt=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}`}},
|
|
12
|
+
HTTP details: ${JSON.stringify(this.callContext.httpDetails,null,2)}`),t}},nt=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}`}},ar=class extends nt{static fromCode(t){return new this(t)}},Le=class e extends ar{constructor(t){super(t,sr.Trust),this.name="TrustError",Object.setPrototypeOf(this,e.prototype)}},ne=class e extends ar{constructor(t){super(t,sr.Protocol),this.name="ProtocolError",Object.setPrototypeOf(this,e.prototype)}},Pr=class e extends ar{constructor(t){super(t,sr.Reject),this.name="RejectError",Object.setPrototypeOf(this,e.prototype)}},Eo=class e extends ar{constructor(t){super(t,sr.Transport),this.name="TransportError",Object.setPrototypeOf(this,e.prototype)}},ye=class e extends ar{constructor(t){super(t,sr.External),this.name="ExternalError",Object.setPrototypeOf(this,e.prototype)}};var Y=class e extends ar{constructor(t){super(t,sr.Input),this.name="InputError",Object.setPrototypeOf(this,e.prototype)}},ce=class e extends ar{constructor(t){super(t,sr.Unknown),this.name="UnknownError",Object.setPrototypeOf(this,e.prototype)}},wt=class e extends G{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+=`: ${Po(this.error)}`),`Certificate verification error: "${t}"`}},cr=class e extends G{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`}},Ei=class e extends G{constructor(){super(),this.name="CertificateHasTooManyDelegationsErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Certificate has too many delegations"}},En=class e extends G{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()}`}},Ri=class e extends G{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()}`}},Tt=class e extends G{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}`}},Ii=class e extends G{constructor(t){super(),this.message=t,this.name="MalformedLookupFoundValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},vi=class e extends G{constructor(t){super(),this.message=t,this.name="MissingLookupValueErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.message}},$n=class e extends G{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`}},Ai=class e extends G{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)}`}},Si=class e extends G{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}`}},Nt=class e extends G{constructor(t){super(),this.error=t,this.name="DerDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode DER: ${this.error}`}},Ro=class e extends G{constructor(t){super(),this.error=t,this.name="DerEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode DER: ${this.error}`}},Ci=class e extends G{constructor(t,r){super(),this.error=t,this.input=r,this.name="CborDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode CBOR: ${Po(this.error)}, input: ${j(this.input)}`}},Pi=class e extends G{constructor(t,r){super(),this.error=t,this.value=r,this.name="CborEncodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to encode CBOR: ${Po(this.error)}, input: ${this.value}`}};var Rn=class e extends G{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
15
|
`),t}},Fi=class e extends G{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?
|
|
@@ -19,41 +19,41 @@ Call context:
|
|
|
19
19
|
Reject code: ${this.rejectCode}
|
|
20
20
|
Reject text: ${this.rejectMessage}
|
|
21
21
|
Error code: ${this.rejectErrorCode}
|
|
22
|
-
`}},
|
|
22
|
+
`}},Vi=class e extends G{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
|
+
`}},Bi=class e extends G{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
|
+
`}},Di=class e extends G{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
|
+
`}},ct=class e extends G{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.`}},Ui=class e extends G{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}`}},Jn=class e extends G{constructor(t){super(),this.error=t,this.name="HttpDefaultFetchErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return this.error}},Fr=class e extends G{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."}},Bt=class e extends G{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.`}},ki=class e extends G{constructor(){super(),this.name="CreateHttpAgentErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Failed to create agent from provided agent"}},Li=class e extends G{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 G{constructor(){super(),this.name="MissingSignatureErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Query response did not contain any node signatures"}},Mi=class e extends G{constructor(){super(),this.name="MalformedPublicKeyErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return"Read state response contained a malformed public key"}},ji=class e extends G{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 G{constructor(t){super(),this.error=t,this.name="UnexpectedErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Unexpected error: ${Po(this.error)}`}},Vr=class e extends G{constructor(t){super(),this.error=t,this.name="HashTreeDecodeErrorCode",Object.setPrototypeOf(this,e.prototype)}toErrorMessage(){return`Failed to decode certificate: ${this.error}`}},Io=class e extends G{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}},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: ${Po(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.`}},Ki=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 Po(e){if(e instanceof Error)return e.stack??e.message;try{return JSON.stringify(e)}catch{return String(e)}}var lt=new Error("unreachable");var Sn={};Nf(Sn,{Bool:()=>zl,BoolClass:()=>Wi,ConstructType:()=>kt,Empty:()=>Jl,EmptyClass:()=>Vo,FixedIntClass:()=>dr,FixedNatClass:()=>Ut,Float32:()=>eu,Float64:()=>tu,FloatClass:()=>Uo,Func:()=>yu,FuncClass:()=>An,Int:()=>Xl,Int16:()=>nu,Int32:()=>ou,Int64:()=>iu,Int8:()=>ru,IntClass:()=>Bo,Nat:()=>Ql,Nat16:()=>au,Nat32:()=>cu,Nat64:()=>lu,Nat8:()=>su,NatClass:()=>Do,Null:()=>Yl,NullClass:()=>In,Opt:()=>fu,OptClass:()=>Ur,PrimitiveType:()=>ze,Principal:()=>uu,PrincipalClass:()=>Zi,Rec:()=>_u,RecClass:()=>ut,Record:()=>hu,RecordClass:()=>vn,Reserved:()=>Wl,ReservedClass:()=>Lt,Service:()=>gu,ServiceClass:()=>Xn,Text:()=>Zl,TextClass:()=>zi,Tuple:()=>du,TupleClass:()=>Yi,Type:()=>zn,Unknown:()=>kf,UnknownClass:()=>Ji,Variant:()=>mu,VariantClass:()=>Zn,Vec:()=>pu,VecClass:()=>Yn,Visitor:()=>Ea,decode:()=>Uf,encode:()=>Df,resetSubtypeCache:()=>Ra,subtype:()=>va});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 Ot=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=Dt(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 Dt(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?Dt(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 Ml(e,t){return Wn(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 Vf(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 Vf(e)}function ba(e){let t=BigInt(e);if(e<=0)throw new RangeError("Input must be positive");return t.toString(2).length-1}function Hi(e){let t=BigInt(e);if(e<0)throw new RangeError("Input must be non-negative");return BigInt(1)<<t}function Kl(){throw new Error("unexpected end of buffer")}function Dr(e,t){return e.byteLength<t&&Kl(),e.read(t)}function Br(e){let t=e.readUint8();return t===void 0&&Kl(),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:ba(e))+1,r=new Ot(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:ba(e))+1,n=new Ot(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 lr(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 Hl(e,t){if(BigInt(e)<BigInt(0))throw new Error("Cannot write negative values.");return wa(e,t)}function wa(e,t){e=BigInt(e);let r=new Ot(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 Ta(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 $l(e,t){if(t<=0||!Number.isInteger(t))throw new Error("Byte length must be a positive integer");let r=Ta(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 $i="DIDL",Bf=new TextEncoder().encode($i),Gl=400;function Fo(e,t,r){return e.map((n,o)=>r(n,t[o]))}var Oa=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)}},Ea=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){}},kt=class extends zn{checkType(t){if(t instanceof ut){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"}},Ji=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 ut?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"}},Wi=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"}},Lt=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"}},zi=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),lr(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=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()}},dr=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=Hi(this._bits-1)*BigInt(-1),n=Hi(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 wa(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return xe(-9-t)}decodeValue(t,r){this.checkType(r);let n=$l(t,this._bits/8);return this._bits<=32?Number(n):n}get name(){return`int${this._bits}`}valueToString(t){return t.toString()}},Ut=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=Hi(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 Hl(t,this._bits/8)}encodeType(){let t=Math.log2(this._bits)-3;return xe(-5-t)}decodeValue(t,r){this.checkType(r);let n=Ta(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 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 Ut&&t._bits===8&&(this._blobOptimization=!0)}accept(t,r){return t.visitVec(this,this._type,r)}covariant(t){let r=this._type instanceof Ut?this._type._bits:this._type instanceof dr?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: ${_e(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
|
|
40
|
+
index ${o} -> ${i.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(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 Ot(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=xe(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(ge(t));if(this._type instanceof Ut){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 dr){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("; ")+"}"}},Ur=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: ${_e(t)}
|
|
41
41
|
|
|
42
|
-
-> ${r.message}`)}throw new Error(`Invalid ${this.display()} argument: ${_e(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=xe(Q.Opt),n=this._type.encodeType(t);t.add(this,Z(r,n))}decodeValue(t,r){if(r instanceof In)return[];if(r instanceof
|
|
42
|
+
-> ${r.message}`)}throw new Error(`Invalid ${this.display()} argument: ${_e(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=xe(Q.Opt),n=this._type.encodeType(t);t.add(this,Z(r,n))}decodeValue(t,r){if(r instanceof In)return[];if(r instanceof Lt)return[];let n=r;if(r instanceof ut){let o=r.getType();if(typeof o>"u")throw new Error("type mismatch with uninitialized type");n=o}if(n instanceof e)switch(Br(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 In||this._type instanceof e||this._type instanceof Lt)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])}`}},vn=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)=>qe(r[0])-qe(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: ${_e(t)}`)}encodeValue(t){let r=this._fields.map(([o])=>t[o]),n=
|
|
44
|
+
field ${r} -> ${o.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(t){let r=this._fields.map(([o])=>t[o]),n=Fo(this._fields,r,([,o],i)=>o.encodeValue(i));return Z(...n)}_buildTypeTableImpl(t){this._fields.forEach(([i,s])=>s.buildTypeTable(t));let r=xe(Q.Record),n=ie(this._fields.length),o=this._fields.map(([i,s])=>Z(ie(qe(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=qe(this._fields[i][0]),l=qe(a);if(d===l)o[u]=p.decodeValue(t,c),i++,s++;else if(l>d)if(p instanceof Ur||p instanceof Lt)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 Ur||c instanceof Lt)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[qe(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 {${Fo(this._fields,r,([o,i],s)=>o+"="+i.valueToString(s)).join("; ")}}`}},Yi=class e extends vn{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: ${_e(t)}`)}encodeValue(t){let r=
|
|
46
|
+
index ${n} -> ${o.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(t)}`)}encodeValue(t){let r=Fo(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 {${Fo(this._components,t,(n,o)=>n.valueToString(o)).join("; ")}}`}},Zn=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)=>qe(r[0])-qe(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: ${_e(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=xe(Q.Variant),n=ie(this._fields.length),o=this._fields.map(([i,s])=>Z(ie(qe(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(ge(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(qe(i)===qe(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[qe(r)]=n;return t}},
|
|
48
|
+
variant ${r} -> ${o.message}`)}}))return!0;throw new Error(`Invalid ${this.display()} argument: ${_e(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=xe(Q.Variant),n=ie(this._fields.length),o=this._fields.map(([i,s])=>Z(ie(qe(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(ge(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(qe(i)===qe(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[qe(r)]=n;return t}},ut=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: ${_e(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 Ia(e){if(Br(e)!==1)throw new Error("Cannot decode principal");let r=Number(ge(e));return k.fromUint8Array(new Uint8Array(Dr(e,r)))}var Zi=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: ${_e(t)}`)}encodeValue(t){let r=t.toUint8Array(),n=ie(r.byteLength);return Z(new Uint8Array([1]),n,r)}encodeType(){return xe(Q.Principal)}decodeValue(t,r){return this.checkType(r),Ia(t)}get name(){return"principal"}valueToString(t){return`${this.name} "${t.toText()}"`}},An=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: ${_e(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=xe(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 ut?r.getType()??r:r;if(!va(n,this))throw new Error(`Cannot decode function reference at type ${this.display()} from wire type ${n.display()}`);if(Br(t)!==1)throw new Error("Cannot decode function reference");let i=Ia(t),s=Number(ge(t)),a=Dr(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")}},Xn=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: ${_e(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=xe(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 ut?r.getType()??r:r;if(!va(n,this))throw new Error(`Cannot decode service reference at type ${this.display()} from wire type ${n.display()}`);return Ia(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 _e(e){let t=JSON.stringify(e,(r,n)=>typeof n=="bigint"?`BigInt(${n})`:n);return t&&t.length>Gl?t.substring(0,Gl-3)+"...":t}function Df(e,t){if(t.length<e.length)throw Error("Wrong number of message arguments");let r=new Oa;e.forEach(a=>a.buildTypeTable(r));let n=r.encode(),o=ie(t.length),i=Z(...e.map(a=>a.encodeType(r))),s=Z(...Fo(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(Bf,n,o,i,s)}function Uf(e,t){let r=new Ot(t);if(t.byteLength<$i.length)throw new Error("Message length smaller than magic number");let n=Dr(r,$i.length),o=new TextDecoder().decode(n);if(o!==$i)throw new Error("Wrong magic number: "+JSON.stringify(o));function i(l){let f=[],h=Number(ge(l));for(let m=0;m<h;m++){let x=Number(lr(l));switch(x){case Q.Opt:case Q.Vector:{let y=Number(lr(l));f.push([x,y]);break}case Q.Record:case Q.Variant:{let y=[],T=Number(ge(l)),E;for(;T--;){let O=Number(ge(l));if(O>=Math.pow(2,32))throw new Error("field id out of 32-bit range");if(typeof E=="number"&&E>=O)throw new Error("field id collision or not sorted");E=O;let R=Number(lr(l));y.push([O,R])}f.push([x,y]);break}case Q.Func:{let y=[],T=Number(ge(l));for(;T--;)y.push(Number(lr(l)));let E=[],O=Number(ge(l));for(;O--;)E.push(Number(lr(l)));let R=[],v=Number(ge(l));for(;v--;)switch(Number(ge(l))){case 1:{R.push("query");break}case 2:{R.push("oneway");break}case 3:{R.push("composite_query");break}default:throw new Error("unknown annotation")}f.push([x,[y,E,R]]);break}case Q.Service:{let y=Number(ge(l)),T=[];for(;y--;){let E=Number(ge(l)),O=new TextDecoder().decode(Dr(l,E)),R=lr(l);T.push([O,R])}f.push([x,T]);break}default:throw new Error("Illegal op_code: "+x)}}let _=[],g=Number(ge(l));for(let m=0;m<g;m++)_.push(Number(lr(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=>_u());function u(l){if(l<-24)throw new Error("future value not supported");if(l<0)switch(l){case-1:return Yl;case-2:return zl;case-3:return Ql;case-4:return Xl;case-5:return su;case-6:return au;case-7:return cu;case-8:return lu;case-9:return ru;case-10:return nu;case-11:return ou;case-12:return iu;case-13:return eu;case-14:return tu;case-15:return Zl;case-16:return Wl;case-17:return Jl;case-24:return uu;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 pu(f)}case Q.Opt:{let f=u(l[1]);return fu(f)}case Q.Record:{let f={};for(let[g,m]of l[1]){let x=`_${g}_`;f[x]=u(m)}let h=hu(f),_=h.tryAsTuple();return Array.isArray(_)?du(..._):h}case Q.Variant:{let f={};for(let[h,_]of l[1]){let g=`_${h}_`;f[g]=u(_)}return mu(f)}case Q.Func:{let[f,h,_]=l[1];return yu(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 ut&&(m=m.getType()),!(m instanceof An))throw new Error("Illegal service definition: services can only contain functions");f[_]=m}return gu(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)}}),Ra();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{Ra()}}var Jl=new Vo,Wl=new Lt,kf=new Ji,zl=new Wi,Yl=new In,Zl=new zi,Xl=new Bo,Ql=new Do,eu=new Uo(32),tu=new Uo(64),ru=new dr(8),nu=new dr(16),ou=new dr(32),iu=new dr(64),su=new Ut(8),au=new Ut(16),cu=new Ut(32),lu=new Ut(64),uu=new Zi;function du(...e){return new Yi(e)}function pu(e){return new Yn(e)}function fu(e){return new Ur(e)}function hu(e){return new vn(e)}function mu(e){return new Zn(e)}function _u(){return new ut}function yu(e,t,r=[]){return new An(e,t,r)}function gu(e){return new Xn(e)}var Xi=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)}},Gi=new Xi;function Ra(){Gi=new Xi}function Lf(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 Na(e){return e instanceof Ur||e instanceof In||e instanceof Lt}function va(e,t){let r=Gi.copy(),n=ur(r,e,t);return n?Gi.add(e,t):Gi.addNegative(e,t),n}function ur(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 Lt||t instanceof Vo||t instanceof Do&&r instanceof Bo)return!0;if(t instanceof Yn&&r instanceof Yn)return ur(e,t._type,r._type);if(r instanceof Ur)return!0;if(t instanceof vn&&r instanceof vn){let o=t.fieldsAsObject;for(let[i,s]of r._fields){let a=o[qe(i)];if(a){if(!ur(e,a,s))return!1}else if(!Na(s))return!1}return!0}if(t instanceof An&&r instanceof An){if(!Lf(t,r))return!1;for(let o=0;o<t.argTypes.length;o++){let i=t.argTypes[o];if(o<r.argTypes.length){if(!ur(e,r.argTypes[o],i))return!1}else if(!Na(i))return!1}for(let o=0;o<r.retTypes.length;o++){let i=r.retTypes[o];if(o<t.retTypes.length){if(!ur(e,t.retTypes[o],i))return!1}else if(!Na(i))return!1}return!0}if(t instanceof Zn&&r instanceof Zn){let o=r.alternativesAsObject;for(let[i,s]of t._fields){let a=o[qe(i)];if(!a||!ur(e,s,a))return!1}return!0}if(t instanceof Xn&&r instanceof Xn){let o=t.fieldsAsObject();for(let[i,s]of r._fields){let a=o[i];if(!a||!ur(e,a,s))return!1}return!0}return t instanceof ut?ur(e,t.getType(),r):r instanceof ut?ur(e,t,r.getType()):!1}function Qn(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?Qn(e.buffer):new Uint8Array(e)}function Cn(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 Aa(e){if(typeof e=="string")return xu(e);if(typeof e=="number")return Ve(ie(e));if(e instanceof Uint8Array||ArrayBuffer.isView(e))return Ve(Qn(e));if(Array.isArray(e)){let t=e.map(Aa);return Ve(K(...t))}else{if(e&&typeof e=="object"&&e._isPrincipal)return Ve(e.toUint8Array());if(typeof e=="object"&&e!==null&&typeof e.toHash=="function")return Aa(e.toHash());if(typeof e=="object")return ko(e);if(typeof e=="bigint")return Ve(ie(e))}throw Y.fromCode(new Ui(e))}var xu=e=>{let t=new TextEncoder().encode(e);return Ve(t)};function pr(e){return ko(e)}function ko(e){let n=Object.entries(e).filter(([,s])=>s!==void 0).map(([s,a])=>{let c=xu(s),u=Aa(a);return[c,u]}).sort(([s],[a])=>Wn(s,a)),o=K(...n.map(s=>K(...s)));return Ve(o)}var Sa=new TextEncoder().encode("\ric-state-root"),Lo=new TextEncoder().encode(`
|
|
52
|
+
ic-request`),Ca=new TextEncoder().encode("\vic-response"),Pa=new TextEncoder().encode("ic-request-auth-delegation");var qt=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=pr(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 fr=class extends Error{constructor(t){super(t),this.name="DecodingError"}},wu=55799,Tu=Symbol("CBOR_STOP_CODE"),It=(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))(It||{}),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||{}),qf=23,Mf=255,jf=65535,Kf=4294967295,Hf=BigInt("0xffffffffffffffff"),Rt=(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))(Rt||{}),eo=!1;function $f(e){return e==null}function Nu(e,t){let r=new Uint8Array(t);return r.set(e),r}var Gf=new TextDecoder;function Jf(e){return(e&224)>>5}function Wf(e){return e&31}var jo=new Uint8Array,qo,vt=0;function Ou(e,t){jo=e,vt=0;let r=Pn(t);return t?.(r)??r}function Pn(e){let[t,r]=Qi();switch(t){case Ne.UnsignedInteger:return to(r);case Ne.NegativeInteger:return Xf(r);case Ne.ByteString:return Eu(r);case Ne.TextString:return Va(r);case Ne.Array:return zf(r,e);case Ne.Map:return Zf(r,e);case Ne.Tag:return Qf(r,e);case Ne.Simple:return Yf(r)}throw new fr(`Unsupported major type: ${t}`)}function Qi(){let e=jo.at(vt);if($f(e))throw new fr("Provided CBOR data is empty");let t=Jf(e),r=Wf(e);return vt++,[t,r]}function zf(e,t){let r=to(e);if(r===1/0){let o=[],i=Pn(t);for(;i!==Tu;)o.push(t?.(i)??i),i=Pn(t);return o}let n=new Array(r);for(let o=0;o<r;o++){let i=Pn(t);n[o]=t?.(i)??i}return n}function Yf(e){switch(e){case It.False:return!1;case It.True:return!0;case It.Null:return null;case It.Undefined:return;case It.Break:return Tu}throw new fr(`Unrecognized simple type: ${e.toString(2)}`)}function Zf(e,t){let r=to(e),n={};if(r===1/0){let[o,i]=Qi();for(;o!==Ne.Simple&&i!==It.Break;){let s=Va(i),a=Pn(t);n[s]=t?.(a,s)??a,[o,i]=Qi()}return n}for(let o=0;o<r;o++){let[i,s]=Qi();if(i!==Ne.TextString)throw new fr("Map keys must be text strings");let a=Va(s),c=Pn(t);n[a]=t?.(c,a)??c}return n}function to(e){if(e<=Rt.Value)return e;switch(qo=new DataView(jo.buffer,jo.byteOffset+vt),e){case Rt.OneByte:return vt++,qo.getUint8(0);case Rt.TwoBytes:return vt+=2,qo.getUint16(0,eo);case Rt.FourBytes:return vt+=4,qo.getUint32(0,eo);case Rt.EightBytes:return vt+=8,qo.getBigUint64(0,eo);case Rt.Indefinite:return 1/0;default:throw new fr(`Unsupported integer info: ${e.toString(2)}`)}}function Xf(e){let t=to(e);return typeof t=="number"?-1-t:-1n-t}function Eu(e){let t=to(e);if(t>Number.MAX_SAFE_INTEGER)throw new fr("Byte length is too large");let r=Number(t);return vt+=r,jo.slice(vt-r,vt)}function Va(e){let t=Eu(e);return Gf.decode(t)}function Qf(e,t){let r=to(e);if(r===wu)return Pn(t);throw new fr(`Unsupported tag: ${r}.`)}var Ko=class extends Error{constructor(t){super(t),this.name="SerializationError"}},eh=2*1024,th=100,rh=new TextEncoder;function Mo(e){return e<<5}var it=new Uint8Array(eh),Et=new DataView(it.buffer),Te=0,Fa=[];function Ru(e,t){Te=0;let r=t?.(e)??e;return uh(wu,r,t),it.slice(0,Te)}function Ba(e,t){if(Te>it.length-th&&(it=Nu(it,it.length*2),Et=new DataView(it.buffer)),e===!1||e===!0||e===null||e===void 0){ih(e);return}if(typeof e=="number"||typeof e=="bigint"){lh(e);return}if(typeof e=="string"){Au(e);return}if(e instanceof Uint8Array){bu(e);return}if(e instanceof ArrayBuffer){bu(new Uint8Array(e));return}if(Array.isArray(e)){nh(e,t);return}if(typeof e=="object"){oh(e,t);return}throw new Ko(`Unsupported type: ${typeof e}`)}function nh(e,t){ro(Ne.Array,e.length),e.forEach((r,n)=>{Ba(t?.(r,n.toString())??r,t)})}function oh(e,t){Fa=Object.entries(e),ro(Ne.Map,Fa.length),Fa.forEach(([r,n])=>{Au(r),Ba(t?.(n,r)??n,t)})}function ro(e,t){if(t<=qf){Et.setUint8(Te++,Mo(e)|Number(t));return}if(t<=Mf){Et.setUint8(Te++,Mo(e)|Rt.OneByte),Et.setUint8(Te,Number(t)),Te+=1;return}if(t<=jf){Et.setUint8(Te++,Mo(e)|Rt.TwoBytes),Et.setUint16(Te,Number(t),eo),Te+=2;return}if(t<=Kf){Et.setUint8(Te++,Mo(e)|Rt.FourBytes),Et.setUint32(Te,Number(t),eo),Te+=4;return}if(t<=Hf){Et.setUint8(Te++,Mo(e)|Rt.EightBytes),Et.setBigUint64(Te,BigInt(t),eo),Te+=8;return}throw new Ko(`Value too large to encode: ${t}`)}function ih(e){ro(Ne.Simple,sh(e))}function sh(e){if(e===!1)return It.False;if(e===!0)return It.True;if(e===null)return It.Null;if(e===void 0)return It.Undefined;throw new Ko(`Unrecognized simple value: ${e.toString()}`)}function Iu(e,t){ro(e,t.length),Te>it.length-t.length&&(it=Nu(it,it.length+t.length),Et=new DataView(it.buffer)),it.set(t,Te),Te+=t.length}function vu(e,t){ro(e,t)}function ah(e){vu(Ne.UnsignedInteger,e)}function ch(e){vu(Ne.NegativeInteger,typeof e=="bigint"?-1n-e:-1-e)}function lh(e){e>=0?ah(e):ch(e)}function Au(e){Iu(Ne.TextString,rh.encode(e))}function bu(e){Iu(Ne.ByteString,e)}function uh(e,t,r){ro(Ne.Tag,e),Ba(t,r)}function ph(e){return typeof e=="object"&&e!==null&&"toCborValue"in e}function Ho(e){try{return Ru(e,t=>k.isPrincipal(t)?t.toUint8Array():no.isExpiry(t)?t.toBigInt():ph(t)?t.toCborValue():t)}catch(t){throw Y.fromCode(new Pi(t,e))}}function Me(e){try{return Ou(e)}catch(t){throw Y.fromCode(new Ci(t,e))}}var es={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 hr;(function(e){e.Query="read",e.ReadState="read_state",e.Call="call"})(hr||(hr={}));var rs;(function(e){e.Call="call"})(rs||(rs={}));var Fn;(function(e){e.Query="query",e.ReadState="read_state"})(Fn||(Fn={}));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 ns="__expiry__",Da=BigInt(1e3),fh=BigInt(1e6),hh=BigInt(60),Ua=hh*Da,mh=BigInt(1)*Ua;function _h(e){return e/Da*Da}function yh(e){return e/Ua*Ua}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=yh(o),s;return i>=n+mh?s=i:s=_h(o),new e(s*fh)}toBigInt(){return this.__expiry__}toHash(){return ie(this.__expiry__)}toString(){return this.__expiry__.toString()}toJSON(){return{[ns]:this.toString()}}static fromJSON(t){let r=JSON.parse(t);if(r[ns])try{let n=BigInt(r[ns]);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 ${ns}`))}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=Go){return async t=>{let r=t.request.headers;t.request.headers=r,t.endpoint===hr.Call&&(t.body.nonce=e())}}function La(e){let t=[];return e.forEach((r,n)=>{t.push([n,r])}),t}var Ma=BigInt(0),os=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=Ft(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 Su(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Ma:BigInt("0x"+e)}function Ye(e){return Su(j(e))}function mr(e){return me(e),Su(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 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(Ft(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 Cu(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 Ka(e){return Uint8Array.from(e)}var qa=e=>typeof e=="bigint"&&Ma<=e;function Ha(e,t,r){return qa(e)&&qa(t)&&qa(r)&&t<=e&&e<r}function is(e,t,r,n){if(!Ha(t,r,n))throw new Error("expected valid "+e+": "+r+" <= n < "+n+", got "+t)}function _r(e){let t;for(t=0;e>Ma;e>>=os,t+=1);return t}function Pu(e,t){return e>>BigInt(t)&os}var At=e=>(os<<BigInt(e))-os;function Fu(e){return typeof e=="function"&&Number.isSafeInteger(e.outputLen)}function yr(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),Bu=BigInt(3),Du=BigInt(4),Uu=BigInt(5),gh=BigInt(7),ku=BigInt(8),xh=BigInt(9),Lu=BigInt(16);function le(e,t){let r=e%t;return r>=je?r:t+r}function St(e,t,r){let n=e;for(;t-- >je;)n*=n,n%=r;return n}function Vu(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 $a(e,t,r){if(!e.eql(e.sqr(t),r))throw new Error("Cannot find square root")}function qu(e,t){let r=(e.ORDER+Ie)/Du,n=e.pow(t,r);return $a(e,n,t),n}function bh(e,t){let r=(e.ORDER-Uu)/ku,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 $a(e,a,t),a}function wh(e){let t=Ke(e),r=Mu(e),n=r(t,t.neg(t.ONE)),o=r(t,n),i=r(t,t.neg(n)),s=(e+gh)/Lu;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 $a(a,g,c),g}}function Mu(e){if(e<Bu)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 qu;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 Th(e){return e%Du===Bu?qu:e%ku===Uu?bh:e%Lu===xh?wh(e):Mu(e)}var gr=(e,t)=>(le(e,t)&Ie)===Ie,Nh=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ss(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},r=Nh.reduce((n,o)=>(n[o]="function",n),t);return yr(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 dt(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 Ga(e,t){t!==void 0&&fa(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}=Ga(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:At(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*Vu(f,e),e),sqrN:l=>l*l,addN:(l,f)=>l+f,subN:(l,f)=>l-f,mulN:(l,f)=>l*f,inv:l=>Vu(l,e),sqrt:i||(l=>(p||(p=Th(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?mr(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=>dt(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 as(e){let t=ju(e);return t+Math.ceil(t/2)}function Ja(e,t,r=!1){let n=e.length,o=ju(t),i=as(t);if(n<16||n<i||n>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+n);let s=r?mr(e):Ye(e),a=le(s,t-Ie)+Ie;return r?ja(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 pt(e,t){let r=dt(e.Fp,t.map(n=>n.Z));return t.map((n,o)=>e.fromAffine(n.toAffine(r[o])))}function Gu(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function Wa(e,t){Gu(e,t);let r=Math.ceil(t/e)+1,n=2**(e-1),o=2**e,i=At(e),s=BigInt(e);return{windows:r,windowSize:n,mask:i,maxNumber:o,shiftBy:s}}function Ku(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 Eh(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 Rh(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 za=new WeakMap,Ju=new WeakMap;function Ya(e){return Ju.get(e)||1}function Hu(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}=Wa(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=Wa(t,this.bits);for(let a=0;a<s.windows;a++){let{nextN:c,offset:u,isZero:p,isNeg:d,isNegF:l,offsetF:f}=Ku(n,a,s);n=c,p?i=i.add(zo(l,r[f])):o=o.add(zo(d,r[u]))}return Hu(n),{p:o,f:i}}wNAFUnsafe(t,r,n,o=this.ZERO){let i=Wa(t,this.bits);for(let s=0;s<i.windows&&n!==io;s++){let{nextN:a,offset:c,isZero:u,isNeg:p}=Ku(n,s,i);if(n=a,!u){let d=r[c];o=o.add(p?d.negate():d)}}return Hu(n),o}getPrecomputes(t,r,n){let o=za.get(r);return o||(o=this.precomputeWindow(r,t),t!==1&&(typeof n=="function"&&(o=n(o)),za.set(r,o))),o}cached(t,r,n){let o=Ya(t);return this.wNAF(o,this.getPrecomputes(o,t,n),r)}unsafe(t,r,n,o){let i=Ya(t);return i===1?this._unsafeLadder(t,r,o):this.wNAFUnsafe(i,this.getPrecomputes(i,t,n),r,o)}createCache(t,r){Gu(r,this.bits),Ju.set(t,r),za.delete(t)}hasCache(t){return Ya(t)!==1}};function Wu(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){Eh(r,e),Rh(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=_r(BigInt(o)),c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);let u=At(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 $u(e,t,r){if(t){if(t.ORDER!==e)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return ss(t),t}else return Ke(e,{isLE:r})}function cs(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=$u(t.p,r.Fp,n),i=$u(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 Ih=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 vh(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 zu(e){if(!Ft(e)&&typeof e!="string")throw new Error("DST must be Uint8Array or string");return typeof e=="string"?$(e):e}function Ah(e,t,r,n){me(e),Yo(r),t=zu(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=[vh(d,p[f-1]),qr(f+1,1),a];p[f]=n(K(...h))}return K(...p).slice(0,r)}function Sh(e,t,r,n,o){if(me(e),Yo(r),t=zu(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 Za(e,t,r){yr(r,{p:"bigint",m:"number",k:"number",hash:"function"});let{p:n,k:o,m:i,hash:s,expand:a,DST:c}=r;if(!Fu(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=Ah(e,c,d,s);else if(a==="xof")l=Sh(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(Ih(x),n)}f[h]=_}return f}function Xa(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]=dt(e,[s,c],!0);return n=e.mul(i,u),o=e.mul(o,e.mul(a,p)),{x:n,y:o}}}var Ch=$("HashToScalar-");function Qa(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=Za(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=Za(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:Ch},s);return Za(i,1,c)[0][0]}}}var Yu=(e,t)=>(e+(e>=0?t:-t)/xr)/t;function Ph(e,t,r){let[[n,o],[i,s]]=t,a=Yu(s*e,r),c=Yu(-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=At(Math.ceil(_r(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),xr=BigInt(2),co=BigInt(3),ec=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 Fh(e,t={}){let r=cs("weierstrass",e,t),{Fp:n,Fn:o}=r,i=r.CURVE,{h:s,n:a}=i;yr(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=Dh(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(Vh(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 F=_(A),V;try{V=n.sqrt(F)}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,F=n.fromBytes(L.subarray(0,A)),V=n.fromBytes(L.subarray(A,A*2));if(!g(F,V))throw new Error("bad point: is not on curve");return{x:F,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),ec),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 Ph(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),F=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:F}}),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 P.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:F}=b,V=n.eql(n.mul(N,F),n.mul(L,B)),D=n.eql(n.mul(C,F),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,F=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),F=n.mul(b,D),V=n.mul(C,ee),V=n.add(F,V),F=n.sub(te,V),V=n.add(te,V),V=n.mul(F,V),F=n.mul(J,F),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),F=n.sub(F,q),D=n.mul(ee,te),D=n.add(D,D),D=n.add(D,D),new w(F,V,D)}add(b){T(b);let{X:N,Y:C,Z:B}=this,{X:L,Y:A,Z:F}=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,F),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,F);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,F),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=>P.cached(this,A,F=>pt(w,F));if(N){let{k1neg:A,k1:F,k2neg:V,k2:D}=E(b),{p:q,f:te}=L(F),{p:ee,f:J}=L(D);B=te.add(J),C=v(N.beta,q,ee,A,V)}else{let{p:A,f:F}=L(b);C=A,B=F}return pt(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(P.hasCache(this))return this.multiply(b);if(N){let{k1neg:B,k1:L,k2neg:A,k2:F}=E(b),{p1:V,p2:D}=Wu(w,C,L,F);return v(N.beta,V,D,B,A)}else return P.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):P.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 pt(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,P=new so(w,t.endo?Math.ceil(I/2):I);return w.BASE.precompute(8),w}function Vh(e){return Uint8Array.of(e?2:3)}function Bh(e,t){let r=e.ORDER,n=Un;for(let h=r-He;h%xr===Un;h/=xr)n+=He;let o=n,i=xr<<o-He-He,s=i*xr,a=(r-He)/s,c=(a-He)/xr,u=s-He,p=i,d=e.pow(t,a),l=e.pow(t,(a+He)/xr),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-xr;R=xr<<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%ec===co){let h=(e.ORDER-co)/ec,_=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 tc(e,t){ss(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=Bh(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=dt(e,[p],!0)[0];return f=e.mul(f,x),{x:f,y:h}}}function Dh(e,t){return{secretKey:t.BYTES,publicKey:1+e.BYTES,publicKeyUncompressed:1+2*e.BYTES,publicKeyHasPrefix:!0,signature:2*t.BYTES}}function rc(e){let{CURVE:t,curveOpts:r}=Uh(e),n=Fh(t,r);return Lh(e,n)}function Uh(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 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 Lh(e,t){let{Fp:r,Fn:n}=t;function o(s){return Ha(s,He,n.ORDER)}let i=kh(r,e.a,e.b);return Object.assign({},{CURVE:e,Point:t,ProjectivePoint:t,normPrivateKeyToScalar:s=>Zo(n,s),weierstrassEquation:i,isWithinCurveOrder:o})}var qh=BigInt(0),ls=BigInt(1),Zu=BigInt(2),lo=BigInt(3);function Mh(e){let t=[];for(;e>ls;e>>=ls)(e&ls)===qh?t.unshift(0):(e&lo)===lo?(t.unshift(-1),e+=ls):t.unshift(1);return t}function nc(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,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,Zu));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),P=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(P);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,P),{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)),P=o.sub(o.mul(w,R),o.mul(I,v)),S=o.neg(w),b=I;y.push([P,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,Zu)),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=Mh(a),_=Lr(y=>{let T=y,{x:E,y:O}=T.toAffine(),R=E,v=O,w=o.neg(O),I=R,P=v,S=o.ONE,b=[];for(let N of h){let C=[];({Rx:I,Ry:P,Rz:S}=l(C,I,P,S)),N&&({Rx:I,Ry:P,Rz:S}=f(C,I,P,S,R,N===-1?w:v)),b.push(C)}if(u){let N=b[b.length-1];u(I,P,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[P,S,b]of v[R])E=p(P,S,b,E,w,I)}}return c&&(E=i.conjugate(E)),T?i.finalExponentiate(E):E}function m(y,T=!0){let E=[];pt(t,y.map(({g1:O})=>O)),pt(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 Xu(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(nc(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){nc(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){nc(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 Qu(e){let{Fp:t,Fr:r,Fp2:n,Fp6:o,Fp12:i}=e.fields,s=rc(e.G1),a=Object.assign(s,Qa(s.Point,e.G1.mapToCurve,{...e.htfDefaults,...e.G1.htfDefaults})),c=rc(e.G2),u=Object.assign(c,Qa(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,_=Xu(p,a,u,e.G2.Signature,!1),g=Xu(p,u,a,e.G1.ShortSignature,!0),m=e.randomBytes||Hn,x=()=>{let A=as(r.ORDER);return Ja(m(A),r.ORDER)},y={randomSecretKey:x,randomPrivateKey:x,calcPairingPrecomputes:h},{ShortSignature:T}=e.G1,{Signature:E}=e.G2;function O(A,F){return A instanceof a.Point?A:g.hash(pe("point",A),F?.DST)}function R(A,F){return A instanceof u.Point?A:_.hash(pe("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,V){let D=R(A,V),q=_.sign(D,F);return A instanceof u.Point?q:E.toBytes(q)}function P(A,F,V){let D=O(A,V),q=g.sign(D,F);return A instanceof a.Point?q:T.toBytes(q)}function S(A,F,V,D){let q=R(F,D);return _.verify(A,q,V)}function b(A,F,V,D){let q=O(F,D);return g.verify(A,q,V)}function N(A){let F=_.aggregatePublicKeys(A);return A[0]instanceof a.Point?F:F.toBytes(!0)}function C(A){let F=_.aggregateSignatures(A);return A[0]instanceof u.Point?F:E.toBytes(F)}function B(A){let F=g.aggregateSignatures(A);return A[0]instanceof a.Point?F:T.toBytes(F)}function L(A,F,V,D){let q=F.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:P,verify:S,verifyShortSignature:b,aggregatePublicKeys:N,aggregateSignatures:C,aggregateShortSignatures:B,G1:a,G2:u,Signature:E,ShortSignature:T}}var ed=BigInt(0),br=BigInt(1),$e=BigInt(2),td=BigInt(3);function ac(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=br;l<n;l++){let h=(p*f-p)/s%a;d.push(e.pow(t,h)),f*=r}c.push(d)}return c}function nd(e,t,r){let n=t.pow(r,(e.ORDER-br)/td),o=t.pow(r,(e.ORDER-br)/$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-br)/td),a=t.pow(r,(e.ORDER**$e-br)/$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 rd=(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]}},oc=class{constructor(t,r={}){this.MASK=br;let n=t.ORDER,o=n*n;this.Fp=t,this.ORDER=o,this.BITS=_r(o),this.BYTES=Math.ceil(_r(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=rd(t,r.FP2_NONRESIDUE),this.FROBENIUS_COEFFICIENTS=ac(t,this.Fp_NONRESIDUE,t.ORDER,2)[0],this.mulByB=r.Fp2mulByB,Object.seal(this)}fromBigTuple(t){return rd(this.Fp,t)}create(t){return t}isValid({c0:t,c1:r}){function n(o,i){return typeof o=="bigint"&&ed<=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 dt(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===ed,s=n%$e;return BigInt(o||i&&s)==br}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])}}},ic=class{constructor(t){this.MASK=br,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=ac(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 dt(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)}}},sc=class{constructor(t,r){this.MASK=br;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=ac(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 dt(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),Pu(r,o)&&(n=this.mul(n,t));return n}};function od(e){let t=Ke(e.ORDER),r=new oc(t,e),n=new ic(r),o=new sc(n,e);return{Fp:t,Fp2:r,Fp6:n,Fp12:o}}var Be=BigInt(0),us=BigInt(1),ft=BigInt(2),ds=BigInt(3),Xo=BigInt(4),Mr=BigInt("0xd201000000010000"),Kh=_r(Mr),kn={p:BigInt("0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab"),n:BigInt("0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001"),h:BigInt("0x396c8c005555e1568c00aaab0000aaab"),a:Be,b:Xo,Gx:BigInt("0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb"),Gy:BigInt("0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1")},Hh=Ke(kn.n,{modFromBytes:!0,isLE:!0}),{Fp:M,Fp2:z,Fp6:$h,Fp12:X}=od({ORDER:kn.p,X_LEN:Kh,FP2_NONRESIDUE:[us,us],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:id,G2psi2:Gh}=nd(M,z,z.div(z.ONE,z.NONRESIDUE)),cc=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:Ve}),dc={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")])},ps=Qo(M.toBytes(Be),{infinity:!0,compressed:!0});function fs(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 Jh(e,t,r){let{BYTES:n,ORDER:o}=M,i=t.is0(),{x:s,y:a}=t.toAffine();if(r){if(i)return ps.slice();let c=!!(a*ft/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 lc(e){e.assertValidity();let{BYTES:t,ORDER:r}=M,{x:n,y:o}=e.toAffine();if(e.is0())return ps.slice();let i=!!(o*ft/r);return Qo(Oe(n,t),{compressed:!0,sort:i})}function Wh(e){let{compressed:t,infinity:r,sort:n,value:o}=fs(e),{BYTES:i,ORDER:s}=M;if(o.length===48&&t){let a=Ye(o),c=M.create(a&At(M.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=M.add(M.pow(c,ds),M.create(kn.b)),p=M.sqrt(u);if(!p)throw new Error("invalid G1 point: compressed point");return p*ft/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!==Be||c!==Be)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 sd(e){let{infinity:t,sort:r,value:n}=fs(pe("signatureHex",e,48)),o=M.ORDER,i=ei.G1.Point,s=Ye(n);if(t)return i.ZERO;let a=M.create(s&At(M.BITS)),c=M.add(M.pow(a,ds),M.create(kn.b)),u=M.sqrt(c);if(!u)throw new Error("invalid G1 point: compressed");let p=BigInt(r);u*ft/o!==p&&(u=M.neg(u));let d=i.fromAffine({x:a,y:u});return d.assertValidity(),d}function zh(e,t,r){let{BYTES:n,ORDER:o}=M,i=t.is0(),{x:s,y:a}=t.toAffine();if(r){if(i)return K(ps,Oe(Be,n));let c=!!(a.c1===Be?a.c0*ft/o:a.c1*ft/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 uc(e){e.assertValidity();let{BYTES:t}=M;if(e.is0())return K(ps,Oe(Be,t));let{x:r,y:n}=e.toAffine(),{re:o,im:i}=z.reim(r),{re:s,im:a}=z.reim(n),u=!!((a>Be?a*ft:s*ft)/M.ORDER&us),p=o;return K(Qo(Oe(i,t),{sort:u,compressed:!0}),Oe(p,t))}function Yh(e){let{BYTES:t,ORDER:r}=M,{compressed:n,infinity:o,sort:i,value:s}=fs(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,ds),dc.b),l=z.sqrt(d),f=l.c1===Be?l.c0*ft/r:l.c1*ft/r?us:Be;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 ad(e){let{ORDER:t}=M,{infinity:r,sort:n,value:o}=fs(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&At(M.BITS)),p=M.create(c),d=z.create({c0:p,c1:u}),l=z.add(z.pow(d,ds),dc.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=_>Be&&_*ft/t!==g,x=_===Be&&h*ft/t!==g;(m||x)&&(f=z.neg(f));let y=i.fromAffine({x:d,y:f});return y.assertValidity(),y}var ei=Qu({fields:{Fp:M,Fp2:z,Fp6:$h,Fp12:X,Fr:Hh},G1:{...kn,Fp:M,htfDefaults:{...cc,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:tm,fromBytes:Wh,toBytes:Jh,ShortSignature:{fromBytes(e){return me(e),sd(e)},fromHex(e){return sd(e)},toBytes(e){return lc(e)},toRawBytes(e){return lc(e)},toHex(e){return j(lc(e))}}},G2:{...dc,Fp:z,hEff:BigInt("0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551"),htfDefaults:{...cc},wrapPrivateKey:!0,allowInfinityPoint:!0,mapToCurve:rm,isTorsionFree:(e,t)=>t.multiplyUnsafe(Mr).negate().equals(id(e,t)),clearCofactor:(e,t)=>{let r=Mr,n=t.multiplyUnsafe(r).negate(),o=id(e,t),i=t.double();return i=Gh(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:Yh,toBytes:zh,Signature:{fromBytes(e){return me(e),ad(e)},fromHex(e){return ad(e)},toBytes(e){return uc(e)},toRawBytes(e){return uc(e)},toHex(e){return j(uc(e))}}},params:{ateLoopSize:Mr,r:kn.n,xNegative:!0,twistType:"multiplicative"},htfDefaults:cc,hash:Ve}),Zh=Xa(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))))),Xh=Xa(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)))),Qh=tc(M,{A:M.create(BigInt("0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d")),B:M.create(BigInt("0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0")),Z:M.create(BigInt(11))}),em=tc(z,{A:z.create({c0:M.create(Be),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 tm(e){let{x:t,y:r}=Qh(M.create(e[0]));return Xh(t,r)}function rm(e){let{x:t,y:r}=em(z.fromBigTuple(e));return Zh(t,r)}function cd(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 om=BigInt(1e6),pc=e=>ge(new Ot(e)),jr=e=>{let r=pc(e)/om;return new Date(Number(r))};var ld=60*1e3,im=60,sm=24,am=sm*im,cm=5,lm=5,um=30*am,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 dm(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??cd,t.maxAgeInMinutes,t.disableTimeVerification,t.agent)}constructor(t,r,n,o,i=cm,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 wr(t,this.cert.tree)}lookup_subtree(t){return ni(t,this.cert.tree)}async verify(){let t=await ms(this.cert.tree),r=await this._checkDelegationAndGetKey(this.cert.delegation),n=this.cert.signature,o=fm(r),i=K(Sa,t),s=ve(this.lookup_path(["time"]));if(!s)throw ne.fromCode(new wt("Certificate does not contain a time"));if(!this.#e){let a=this.#t?.getTimeDiffMsecs()??0,c=this._maxAgeInMinutes*ld,u=new Date,p=u.getTime()+a,d=p-c,l=p+lm*ld,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 cr(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 cr(5,f,u,a,"future"))}try{if(!await this._blsVerify(o,n,i))throw Le.fromCode(new wt("Invalid signature"))}catch(a){throw Le.fromCode(new wt("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:um,agent:this.#t});if(r.cert.delegation)throw ne.fromCode(new Ei);await r.verify();let n;if(dd(this._principal)){let i=this._principal.canisterId;if(n=k.fromUint8Array(t.subnet_id),!fc({canisterId:i,subnetId:n,tree:r.cert.tree}))throw Le.fromCode(new En(i,n))}else if(ud(this._principal))n=this._principal.subnetId;else throw lt;let o=ve(r.lookup_path(["subnet",n.toUint8Array(),"public_key"]));if(!o)throw ud(this._principal)?Le.fromCode(new Ri(n)):Le.fromCode(new vi(`Could not find subnet key for subnet ID ${n.toText()}`));return o}async _syncTime(){this.#t&&(dd(this._principal)?await this.#t.syncTime(this._principal.canisterId):await this.#t.syncTimeWithSubnet(this._principal.subnetId))}};function ud(e){return"subnetId"in e}function dd(e){return"canisterId"in e}var ti=Ee("308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100"),pm=96;function fm(e){let t=ti.byteLength+pm;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 Ai(ti,r));return e.slice(ti.byteLength)}function ve(e){if(e.status===De.Found&&e.value instanceof Uint8Array)return e.value}async function ms(e){switch(e[0]){case fe.Empty:return Ve(hs("ic-hashtree-empty"));case fe.Pruned:return e[1];case fe.Leaf:return Ve(K(hs("ic-hashtree-leaf"),e[1]));case fe.Labeled:return Ve(K(hs("ic-hashtree-labeled"),e[1],await ms(e[2])));case fe.Fork:return Ve(K(hs("ic-hashtree-fork"),await ms(e[1]),await ms(e[2])));default:throw lt}}function hs(e){let t=new Uint8Array([e.length]),r=new TextEncoder().encode(e);return K(t,r)}function pd(e){return typeof e[0]=="string"?$(e[0]):e[0]}var De;(function(e){e.Unknown="Unknown",e.Absent="Absent",e.Found="Found",e.Error="Error"})(De||(De={}));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 wr(e,t){if(e.length===0)switch(t[0]){case fe.Empty:return{status:De.Absent};case fe.Leaf:{if(!t[1])throw ce.fromCode(new Vr("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 lt}case fe.Pruned:return{status:De.Unknown};case fe.Labeled:case fe.Fork:return{status:De.Error};default:throw lt}let r=pd(e),n=ri(r,t);switch(n.status){case ue.Found:return wr(e.slice(1),n.value);case ue.Absent:case ue.Greater:case ue.Less:return{status:De.Absent};case ue.Unknown:return{status:De.Unknown};default:throw lt}}function ni(e,t){if(e.length===0)return{status:Kr.Found,value:t};let r=pd(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 lt}}function ys(e){switch(e[0]){case fe.Empty:return[];case fe.Fork:return ys(e[1]).concat(ys(e[2]));default:return[e]}}function ri(e,t){switch(t[0]){case fe.Labeled:return dm(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 _s(e,t){switch(t[0]){case fe.Empty|fe.Pruned:return[];case fe.Leaf:return[e];case fe.Fork:return _s(e,t[1]).concat(_s(e,t[2]));case fe.Labeled:{let r=t[1],n=t[2],o=[...e,r];return _s(o,n)}default:throw lt}}function fc(e){let t=hm(e),r=hc(t),{canisterId:n}=e;return r.some(i=>i[0].ltEq(n)&&i[1].gtEq(n))}function hm(e){let{subnetId:t,tree:r,canisterId:n}=e,o=ni(["canister_ranges",t.toUint8Array()],r);if(o.status!==Kr.Found)return mm(t,r);let i=o.value,s=_m(i);if(s.length===0)throw ne.fromCode(new En(n,t));s.sort(Wn);let a=ym(s,n),c=s[a];return gm(c,i)}function mm(e,t){let r=wr(["subnet",e.toUint8Array(),"canister_ranges"],t);if(r.status!==De.Found)throw ne.fromCode(new Tt(`Could not find canister ranges for subnet ${e.toText()}`,r.status));return r.value}function hc(e){return Me(e).map(n=>[k.fromUint8Array(n[0]),k.fromUint8Array(n[1])])}function _m(e){let t=[];for(let r of _s([],e)){let n=r[0];if(!n)throw ne.fromCode(new wt("Path is invalid"));t.push(n)}return t}function ym(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 gm(e,t){let r=wr([e],t);if(r.status!==De.Found)throw ne.fromCode(new Tt(`Could not find canister range for shard ${e.toString()}`,r.status));return r.value}function mc(e,t){return e.delegation?k.fromUint8Array(e.delegation.subnet_id):k.selfAuthenticating(t)}var fd=k.fromText("tdb26-jop6k-aogll-7ltgs-eruif-6kk7m-qpktf-gdiqx-mxtrf-vb5e6-eqe");function gs(e,t){switch(t){case"raw":return e;case"leb128":return pc(e);case"cbor":return Me(e);case"hex":return j(e);case"utf-8":return new TextDecoder().decode(e)}}function hd(e){return Me(e).map(r=>k.fromUint8Array(r))}function md(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 Tt("Node not found",r.status));if(r.value instanceof Uint8Array)throw ce.fromCode(new Vr("Invalid node tree"));let n=ys(r.value),o=new Map;return n.forEach(i=>{let s=k.from(i[1]).toText(),a=wr(["public_key"],i[2]);if(a.status!==De.Found)throw ne.fromCode(new Tt("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 _d=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=bm(c,o);return(async()=>{try{if(t.rootKey===null)throw ye.fromCode(new ct);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=xm(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(_,hd(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,gs(g,_.decodeStrategy))}}catch(d){if(d instanceof nt&&(d.hasCode(wt)||d.hasCode(cr)))throw d;Hr(c)?s.set(c.key,null):s.set(c,null)}})()});return await Promise.all(a),s},xm=(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=fd;let s=uo(n,i);return{subnetId:i.toText(),nodeKeys:s}},bm=(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?md(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 yd(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=wm(c,o);return(async()=>{try{if(t.rootKey===null)throw ye.fromCode(new ct);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(_,hc(g));break}case"publicKey":{s.set(_,g);break}case"nodeKeys":{s.set(_,g);break}default:Hr(_)&&s.set(_.key,gs(g,_.decodeStrategy))}}catch(d){if(d instanceof nt&&(d.hasCode(wt)||d.hasCode(cr)))throw d;Hr(c)?s.set(c.key,null):s.set(c,null)}})()});return await Promise.all(a),s}function wm(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),_c=BigInt(2),Tm=BigInt(8);function Nm(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 Om(e,t={}){let r=cs("edwards",e,t,t.FpFnLE),{Fp:n,Fn:o}=r,i=r.CURVE,{h:s}=i;yr(t,{},{uvRatio:"function"});let a=_c<<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(!Nm(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 is("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?Tm: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),P=c(R*m),S=c(w*c(P+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=Ka(kr(m,y,"point")),Vn(x,"zip215");let O=Ka(m),R=m[y-1];O[y-1]=R&-129;let v=mr(O),w=x?a:n.ORDER;is("point.y",v,$r,w);let I=c(v*v),P=c(I-Ae),S=c(E*I-T),{isValid:b,value:N}=u(P,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(_c),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),P=c(O*T);return v===w&&I===P}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(_c*c(T*T)),v=c(m*E),w=x+y,I=c(c(w*w)-E-O),P=v+O,S=P-R,b=v-O,N=c(I*S),C=c(P*b),B=c(I*b),L=c(S*P);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:P}=m,S=c(T*v),b=c(E*w),N=c(R*y*P),C=c(O*I),B=c((T+E)*(v+w)-S-b),L=C-N,A=C+N,F=c(b-x*S),V=c(B*L),D=c(A*F),q=c(B*F),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=>pt(h,T));return pt(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=>pt(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 pt(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 xs=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 Em(e,t,r={}){if(typeof t!="function")throw new Error('"hash" function param is required');yr(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,P)=>{if(Vn(P,"phflag"),I.length||P)throw new Error("Contexts/pre-hash are not supported");return w});function p(w){return s.create(mr(w))}function d(w){let I=y.secretKey;w=pe("private key",w,I);let P=pe("hashed private key",t(w),2*I),S=c(P.slice(0,I)),b=P.slice(I,2*I),N=p(S);return{head:S,prefix:b,scalar:N}}function l(w){let{head:I,prefix:P,scalar:S}=d(w),b=o.multiply(S),N=b.toBytes();return{head:I,prefix:P,scalar:S,point:b,pointBytes:N}}function f(w){return l(w).pointBytes}function h(w=Uint8Array.of(),...I){let P=K(...I);return p(t(u(P,pe("context",w),!!n)))}function _(w,I,P={}){w=pe("message",w),n&&(w=n(w));let{prefix:S,scalar:b,pointBytes:N}=l(I),C=h(P.context,S,w),B=o.multiply(C).toBytes(),L=h(P.context,B,N,w),A=s.create(C+L*b);if(!s.isValid(A))throw new Error("sign failed: invalid s");let F=K(B,s.toBytes(A));return kr(F,y.signature,"result")}let g={zip215:!0};function m(w,I,P,S=g){let{context:b,zip215:N}=S,C=y.signature;w=pe("signature",w,C),I=pe("message",I),P=pe("publicKey",P,y.publicKey),N!==void 0&&Vn(N,"zip215"),n&&(I=n(I));let B=C/2,L=w.subarray(0,B),A=mr(w.subarray(B,C)),F,V,D;try{F=e.fromBytes(P,N),V=e.fromBytes(L,N),D=o.multiplyUnsafe(A)}catch{return!1}if(!N&&F.isSmallOrder())return!1;let q=h(b,V.toBytes(),F.toBytes(),I);return V.add(F.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 Ft(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),P=y.publicKey,S=P===32;if(!S&&P!==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 P=t(w.subarray(0,I));return c(P).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 Rm(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 Im(e,t){let r=t.Point;return Object.assign({},t,{ExtendedPoint:r,CURVE:e,nBitLength:r.Fn.BITS,nByteLength:r.Fn.BYTES})}function gd(e){let{CURVE:t,curveOpts:r,hash:n,eddsaOpts:o}=Rm(e),i=Om(t,r),s=Em(i,n,o);return Im(e,s)}var vm=BigInt(0),Tr=BigInt(1),xd=BigInt(2),Vx=BigInt(3),Am=BigInt(5),Sm=BigInt(8),po=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),oi={p:po,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:Sm,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function Cm(e){let t=BigInt(10),r=BigInt(20),n=BigInt(40),o=BigInt(80),i=po,a=e*e%i*e%i,c=St(a,xd,i)*a%i,u=St(c,Tr,i)*e%i,p=St(u,Am,i)*u%i,d=St(p,t,i)*p%i,l=St(d,r,i)*d%i,f=St(l,n,i)*l%i,h=St(f,o,i)*f%i,_=St(h,o,i)*f%i,g=St(_,t,i)*p%i;return{pow_p_5_8:St(g,xd,i)*e%i,b2:a}}function Pm(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}var yc=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");function bc(e,t){let r=po,n=le(t*t*t,r),o=le(n*n*t,r),i=Cm(e*o).pow_p_5_8,s=le(e*n*i,r),a=le(t*s*s,r),c=s,u=le(s*yc,r),p=a===e,d=a===le(-e,r),l=a===le(-e*yc,r);return p&&(s=c),(d||l)&&(s=u),gr(s,r)&&(s=le(-s,r)),{isValid:p||d,value:s}}var Gr=Ke(oi.p,{isLE:!0}),Fm=Ke(oi.n,{isLE:!0}),Vm={...oi,Fp:Gr,hash:Ll,adjustScalarBytes:Pm,uvRatio:bc},Ge=gd(Vm);var gc=yc,Bm=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),Dm=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),Um=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),km=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),bd=e=>bc(Tr,e),Lm=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),xc=e=>Ge.Point.Fp.create(mr(e)&Lm);function wd(e){let{d:t}=oi,r=po,n=m=>Gr.create(m),o=n(gc*e*e),i=n((o+Tr)*Um),s=BigInt(-1),a=n((s-t*o)*n(o+t)),{isValid:c,value:u}=bc(i,a),p=n(u*e);gr(p,r)||(p=n(-p)),c||(u=p),c||(s=o);let d=n(s*(o-Tr)*km-a),l=u*u,f=n((u+u)*a),h=n(d*Bm),_=n(Tr-l),g=n(Tr+l);return new Ge.Point(n(f*g),n(_*h),n(h*g),n(f*_))}function qm(e){me(e,64);let t=xc(e.subarray(0,32)),r=wd(t),n=xc(e.subarray(32,64)),o=wd(n);return new Nr(r.add(o))}var Nr=class e extends xs{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 qm(pe("ristrettoHash",t,64))}static fromBytes(t){me(t,32);let{a:r,d:n}=oi,o=po,i=T=>Gr.create(T),s=xc(t);if(!Cu(Gr.toBytes(s),t)||gr(s,o))throw new Error("invalid ristretto255 encoding 1");let a=i(s*s),c=i(Tr+r*a),u=i(Tr-r*a),p=i(c*c),d=i(u*u),l=i(r*n*p-d),{isValid:f,value:h}=bd(i(l*d)),_=i(h*u),g=i(h*_*l),m=i((s+s)*_);gr(m,o)&&(m=i(-m));let x=i(c*g),y=i(m*x);if(!f||gr(y,o)||x===vm)throw new Error("invalid ristretto255 encoding 2");return new e(new Ge.Point(m,x,Tr,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}=bd(s(a*u)),d=s(p*a),l=s(p*c),f=s(d*l*o),h;if(gr(o*f,i)){let g=s(r*gc),m=s(t*gc);t=g,r=m,h=s(d*Dm)}else h=l;gr(t*f,i)&&(r=s(-r));let _=s((n-r)*h);return gr(_,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)}};Nr.BASE=new Nr(Ge.Point.BASE);Nr.ZERO=new Nr(Ge.Point.ZERO);Nr.Fp=Gr;Nr.Fn=Fm;var Td,Nd,bs=class{static{Td=Symbol.iterator,Nd=Symbol.toStringTag}#e;#t;constructor(t={}){this[Td]=this.entries.bind(this),this[Nd]="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 Od=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)"))},Ed=(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)"))},wc=(e,t)=>{if(e[t]<128)return 1;if(e[t]===128)throw Y.fromCode(new Nt("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 Nt("Length too long (> 4 bytes)"))},Mm=(e,t)=>{let r=wc(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 Nt("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]),Lx=Uint8Array.from([48,16,6,7,42,134,72,206,61,2,1,6,5,43,129,4,0,10]),qx=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+Od(e.byteLength+1),n=t.byteLength+r+e.byteLength,o=0,i=new Uint8Array(1+Od(n)+n);return i[o++]=48,o+=Ed(i,o,n),i.set(t,o),o+=t.byteLength,i[o++]=3,o+=Ed(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 Nt(`Expected ${c} at offset ${r}`))},o=new Uint8Array(e);if(n(48,"sequence"),r+=wc(o,r),!Cn(o.slice(r,r+t.byteLength),t))throw Y.fromCode(new Nt("Not the expected OID."));r+=t.byteLength,n(3,"bit string");let i=Mm(o,r)-1;r+=wc(o,r),n(0,"0 padding");let s=o.slice(r);if(i!==s.length)throw Y.fromCode(new Si(i,s.length));return s};var ws=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 Nt("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 Nt("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 Tc=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))}},Ts=class extends Tc{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 Ns=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 Mt;(function(e){e.Received="received",e.Processing="processing",e.Replied="replied",e.Rejected="rejected",e.Unknown="unknown",e.Done="done"})(Mt||(Mt={}));var Ec=60*1e3,jm=1e6,Km=0,Hm="308182301d060d2b0601040182dc7c0503010201060c2b0601040182dc7c05030201036100814c0e6ec71fab583b08bd81373c255c3c371b2e84863c98a4f1e08b74235d14fb5d9c0cd546d9685f913a0c0b2cc5341583bf4b4392e467db96d65b9bb4cb717112f8472e0d5a4d14505ffd7484b01291091c5f87b98883463f98091a0baaae";var $m="ic0.app",Gm=".ic0.app",Jm="icp0.io",Wm=".icp0.io",zm="icp-api.io",Ym=".icp-api.io",Nc=200,Zm=202,Xm=404;function Qm(){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 e_(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 Or=class e{#e;#t;#r;#i;#a;#d;#n;#o;#c;#w;#s;#u;#f;#l;get#E(){return this.#l*Ec}#h;#m;#_;#y;constructor(t={}){this.#e=null,this.#t=!1,this.#r=Km,this.#i=!1,this.#a=null,this.#d=!1,this._isAgent=!0,this.config={},this.log=new Ts,this.#h=[],this.#m=[],this.#_=new bs({expirationTime:5*Ec}),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(Ca,f),_=i.get(l);if(!_)throw ne.fromCode(new Mi);let g=ws.fromDer(_).rawKey;if(!Ge.verify(u.signature,h,g))throw Le.fromCode(new ji(l))}return o},this.config=t,this.#o=t.fetch||Qm()||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(Hm);let r=e_(t.host);this.host=new URL(r),t.verifyQuerySignatures!==void 0&&(this.#y=t.verifyQuerySignatures),this.#u=t.retryTimes??3;let n=()=>new Ns({maxIterations:this.#u});if(this.#f=t.backoffStrategy||n,this.host.hostname.endsWith(Gm)?this.host.hostname=$m:this.host.hostname.endsWith(Wm)?this.host.hostname=Jm:this.host.hostname.endsWith(Ym)&&(this.host.hostname=zm),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 Bt("The maximum ingress expiry time is 5 minutes.",t.ingressExpiryInMinutes));if(t.ingressExpiryInMinutes&&t.ingressExpiryInMinutes<=0)throw Y.fromCode(new Bt("Ingress expiry time must be greater than 0.",t.ingressExpiryInMinutes));this.#l=t.ingressExpiryInMinutes||5,this.addTransform("update",ka(Go)),t.useQueryNonces&&this.addTransform("query",ka(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 ki)}}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 Fr);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 Fr);let s=k.from(t),a=r.effectiveCanisterId?k.from(r.effectiveCanisterId):s;await this.#p(a);let c=i.getPrincipal(),u=Oc(this.#l,this.#r),p={request_type:rs.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:hr.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=pr(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(Bt)&&!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:
|
|
53
53
|
${m}
|
|
54
|
-
Retrying query.`),await this.#b({...t,tries:a+1});throw Eo.fromCode(new Ao(m))}let d=
|
|
54
|
+
Retrying query.`),await this.#b({...t,tries:a+1});throw Eo.fromCode(new Ao(m))}let d=La(p.headers);if(p.status!==Nc){let m=await p.text();if(Rd(m))throw Y.fromCode(new Bt(m,this.#l));if(a<this.#u)return await this.#b({...t,tries:a+1});throw ne.fromCode(new Io(p.status,p.statusText,d,m))}let f={...Me(Qn(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 ne.fromCode(new Li("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 Le.fromCode(new Fi(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 ne.fromCode(new Rn(`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===Nc&&(a=Qn(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 Eo.fromCode(new Ao(p))}let c=La(s.headers);if(s.status===Nc||s.status===Zm)return{ok:s.ok,status:s.status,statusText:s.statusText,responseBodyBytes:a,headers:c};let u=await s.text();if(s.status===Xm&&s.url.includes("api/v4"))throw ne.fromCode(new vo);if(Rd(u))throw Y.fromCode(new Bt(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 Fr);let c=k.from(t),u=a.getPrincipal(),p=Oc(this.#l,this.#r),d={request_type:Fn.Query,canister_id:c,method_name:r.methodName,arg:r.arg,sender:u,ingress_expiry:p},l=pr(d);s=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#s?{Authorization:"Basic "+btoa(this.#s)}:{}}},endpoint:hr.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 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 nt){if(m.hasCode(Bt)&&!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 Fr);let o=n.getPrincipal(),i=await this._transform({request:{method:"POST",headers:{"Content-Type":"application/cbor",...this.#s?{Authorization:"Basic "+btoa(this.#s)}:{}}},endpoint:hr.ReadState,body:{request_type:Fn.ReadState,paths:t.paths,sender:o,ingress_expiry:Oc(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 Fr);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(Bt)&&!this.#i){if("canisterId"in r)await this.syncTime(r.canisterId);else if("subnetId"in r)await this.syncTimeWithSubnet(r.subnetId);else throw lt;return await this.#N(t,r,n,o)}s.code.requestContext={requestId:o??pr(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=wr(["time"],r);if(o.status!==De.Found)throw ne.fromCode(new Tt("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 Ii("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 _d({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 yd({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 ct(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(!fc({canisterId:r,subnetId:c,tree:i.cert.tree}))throw Le.fromCode(new En(r,c))}let s=mc(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 mc(o.cert,this.rootKey)}_transform(t){let r=Promise.resolve(t);if(t.endpoint===hr.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 Oc(e,t){let r=e*Ec;return no.fromDeltaInMilliseconds(r,t)}function Rd(e){return e.includes("Invalid request expiry: ")}var t_=300*1e3;function Id(){return s_(n_(r_(),1e3),i_(1e3,1.2),o_(t_))}function r_(){let e=!0;return async()=>e?(e=!1,!0):!1}function n_(e,t){return async(r,n,o)=>{if(await e(r,n,o))return new Promise(i=>setTimeout(i,t))}}function o_(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 i_(e,t){let r=e;return()=>new Promise(n=>setTimeout(()=>{r*=t,n()},r))}function s_(...e){return async(t,r,n)=>{for(let o of e)await o(t,r,n)}}var Ad={preSignReadStateRequest:!1};function Sd(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Rc(e,t){return e!==null&&typeof e=="object"&&Sd(e,t)}function c_(e,t){return Sd(e,t)&&typeof e[t]=="function"}function vd(e){return Rc(e,"body")&&Rc(e.body,"content")&&e.body.content.request_type===Fn.ReadState&&Rc(e.body.content,"ingress_expiry")&&typeof e.body.content.ingress_expiry=="object"&&e.body.content.ingress_expiry!==null&&c_(e.body.content.ingress_expiry,"toHash")}async function Ic(e,t,r,n={}){let o=[$("request_status"),r],i,s;if(n.preSignReadStateRequest??!1?(s=await l_({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 ct);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=Mt.Unknown:p=new TextDecoder().decode(u),p){case Mt.Replied:return{reply:ve(c.lookup_path([...o,"reply"])),certificate:c};case Mt.Received:case Mt.Unknown:case Mt.Processing:{let d=n.strategy??Id();return await d(t,r,p),Ic(e,t,r,{...n,strategy:d,request:s})}case Mt.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 Pr.fromCode(new Gn(r,d,l,h))}case Mt.Done:throw ce.fromCode(new Di(r))}throw lt}async function l_(e){let{paths:t,agent:r,pollingOptions:n}=e;if(n.request&&vd(n.request))return n.request;let o=await r.createReadStateRequest?.({paths:t},void 0);if(!vd(o))throw Y.fromCode(new Ki(o));return o}var ht=Symbol.for("ic-agent-metadata"),ho=class e{static agentOf(t){return t[ht].config.agent}static interfaceOf(t){return t[ht].service}static canisterIdOf(t){return k.from(t[ht].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:{...Cd,...s,canisterId:a},service:n});for(let[c,u]of n._fields)r?.httpDetails&&u.annotations.push(vc),r?.certificate&&u.annotations.push(Pd),this[c]=d_(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[ht]=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 Cd={pollingOptions:Ad},vc="http-details",Pd="certificate";function d_(e,t,r,n){let o;r.annotations.includes("query")||r.annotations.includes("composite_query")?o=async(s,...a)=>{s={...s,...e[ht].config.queryTransform?.(t,a,{...e[ht].config,...s})};let c=s.agent||e[ht].config.agent||new Or,u=k.from(s.canisterId||e[ht].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 Vi(d.requestId,d.reject_code,d.reject_message,d.error_code,d.signatures);throw f.callContext={canisterId:u,methodName:t,httpDetails:l},Pr.fromCode(f)}case vr.Replied:return r.annotations.includes(vc)?{httpDetails:l,result:fo(r.retTypes,d.reply.arg)}:fo(r.retTypes,d.reply.arg)}}:o=async(s,...a)=>{s={...s,...e[ht].config.callTransform?.(t,a,{...e[ht].config,...s})};let c=s.agent||e[ht].config.agent||Or.createSync(),{canisterId:u,effectiveCanisterId:p,pollingOptions:d}={...Cd,...e[ht].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(bl(g.body)){if(c.rootKey==null)throw ye.fromCode(new ct);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],P=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,P,b);throw N.callContext={canisterId:l,methodName:t,httpDetails:g},Pr.fromCode(N)}}}else if(xl(g.body)){let{reject_code:R,reject_message:v,error_code:w}=g.body,I=new Bi(_,R,v,w);throw I.callContext={canisterId:l,methodName:t,httpDetails:g},Pr.fromCode(I)}if(g.status===202){let R={...d,blsVerify:n},v=await Ic(c,f,_,R);y=v.certificate,x=v.reply}let T=r.annotations.includes(vc),E=r.annotations.includes(Pd),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 p_=(e=>(e[e.FractionalMoreThan8Decimals=0]="FractionalMoreThan8Decimals",e[e.InvalidFormat=1]="InvalidFormat",e[e.FractionalTooManyDecimals=2]="FractionalTooManyDecimals",e))(p_||{}),Wb=BigInt(1e8);var U=e=>e==null,W=e=>!U(e),Er=e=>W(e)&&e!=="",mt=e=>!Er(e);var f_=class extends Error{},ai=(e,t)=>{if(e==null)throw new f_(t)};var Rr=e=>new Uint8Array(e),Os=e=>Array.from(e);var Vd=({a:e,b:t})=>e.length===t.length&&e.every((r,n)=>r===t[n]);var Fd="abcdefghijklmnopqrstuvwxyz234567",si=Object.create(null);for(let e=0;e<Fd.length;e++)si[Fd[e]]=e;si[0]=si.o;si[1]=si.i;var Jr=e=>btoa(String.fromCharCode(...new Uint8Array(e))),Bd=e=>Uint8Array.from(atob(e),t=>t.charCodeAt(0)),zb=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 Ac="__bigint__",Sc="__principal__",Cc="__uint8array__",Dd=(e,t)=>typeof t=="bigint"?{[Ac]:`${t}`}:W(t)&&k.isPrincipal(t)?{[Sc]:k.from(t).toText()}:W(t)&&t instanceof Uint8Array?{[Cc]:Array.from(t)}:t,Ud=(e,t)=>{let r=n=>t[n];return W(t)&&typeof t=="object"&&Ac in t?BigInt(r(Ac)):W(t)&&typeof t=="object"&&Sc in t?k.fromText(r(Sc)):W(t)&&typeof t=="object"&&Cc in t?Uint8Array.from(r(Cc)):t};var se=e=>W(e)?[e]:[],be=e=>e?.[0];var h_=({authData:e})=>{if(e.byteLength<37)return{invalidAuthData:null};if(e.byteLength<53)return{invalidAuthData:null};let t=e.slice(37,53),r=m_({bytes:t});return"aaguid"in r?{aaguidBytes:t,aaguidText:r.aaguid}:{unknownProvider:null}},m_=({bytes:e})=>{if(e.length!==16)return{invalidBytes:null};let t=(e instanceof Uint8Array?Os(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 __(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 y_(e){return qn(e,ii)}var g_=class{constructor(e){this._cose=e,this.#e=y_(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 g_(t)}getPublicKey(){return this.#t}getCredentialId(){return this.#e}getCredentialIdText(){return Jr(this.#e)}},x_=class extends jd{#e;#t;constructor({authData:e,...t}){super(t);let r=h_({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}},b_=class extends jd{},w_=class extends Error{},T_=class extends Error{},N_=class extends Error{},O_=class extends Error{},E_=class extends Error{},R_=class extends Error{},I_=class extends Error{},kd=class extends Error{};var v_={ECDSA_WITH_SHA256:-7,RSA_WITH_SHA256:-257},A_=6e4,Kd=()=>window.crypto.getRandomValues(new Uint8Array(16)),S_=()=>Kd(),C_=()=>Kd(),P_=()=>{let{location:{href:e}}=window;try{let{hostname:t}=new URL(e);return t}catch{throw new w_}},Hd=({appId:e})=>e?.id??P_(),F_=({appId:e,user:t}={})=>{let{document:{title:r}}=window,n=()=>({rp:{name:e?.name??r,id:Hd({appId:e})}}),o=()=>({user:{id:C_(),name:t?.name??t?.displayName??r,displayName:t?.displayName??r}});return{attestation:"direct",challenge:S_(),...n(),...o(),pubKeyCredParams:Object.values(v_).map(i=>({type:"public-key",alg:i})),excludeCredentials:[],authenticatorSelection:{authenticatorAttachment:"platform",userVerification:"preferred",residentKey:"required",requireResidentKey:!0}}},V_=(e={})=>({rpId:Hd(e),allowCredentials:[],userVerification:"required"}),Pc=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||{}),$d=({timeout:e})=>AbortSignal.timeout(e??A_),B_=async({challenge:e,credentialIds:t,passkeyOptions:r,timeout:n})=>await navigator.credentials.get({publicKey:{...V_(r),challenge:e.buffer,allowCredentials:(t??[]).map(o=>({id:o.buffer,type:"public-key"}))},signal:$d({timeout:n})}),Ld=e=>{if(e.status!=="initialized")throw new T_},qd=e=>{if(U(e))throw new N_},Md=({type:e})=>{if(e!=="public-key")throw new O_},Fc=class ci extends qt{#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 x_(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:F_(t),signal:$d({timeout:r})});qd(o),Md(o);let{response:{attestationObject:i},rawId:s}=o;if(U(i))throw new E_;let{authData:a}=es.decode(Rr(i)),c=__(a);return new ci({...n,rawId:Rr(s),cose:c,authData:a})}static async createWithExistingCredential(t){return new ci(t)}getPublicKey(){Ld(this.#t);let{credential:t}=this.#t;return t.getPublicKey()}getCredential(){Ld(this.#t);let{credential:t}=this.#t;return t}async sign(t){let r=await Pc({fn:async()=>{let n=await B_({challenge:t,...this.#t.status==="initialized"&&{credentialIds:[this.#t.credential.getCredentialId()]}});return qd(n),Md(n),n},step:0,onProgress:this.#e});return await Pc({fn:async()=>{let{rawId:n}=r;if(this.#t.status==="initialized"){if(!Vd({a:this.#t.credential.getCredentialId(),b:Rr(n)}))throw new R_;return}let{retrievePublicKey:o}=this.#t,i=await o({credentialId:Rr(n)});this.#t=ci.#r({credential:new b_({rawId:Rr(n),cose:i})})},step:1,onProgress:this.#e}),await Pc({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=es.encode({authenticator_data:i,client_data_json:new TextDecoder().decode(o),signature:Rr(s)});if(U(a))throw new I_;return Object.assign(a,{__signature__:void 0}),a},step:2,onProgress:this.#e})}},D_=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 Ue=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",Gd="rdmx6-jaaaa-aaaaa-aaadq-cai";var Jd=async({identity:e,container:t})=>{let n=W(t)&&t!==!1?t===!0?_o:t:"https://icp-api.io",o=W(t);return await Or.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 Jd({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 Wd(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(Wd(t)){let r=t;if(Wd(r)&&Object.hasOwnProperty.call(r,"__derEncodedPublicKey__"))return this.fromDer(r);if(ArrayBuffer.isView(r)){let n=r;return this.fromRaw(Dt(n.buffer))}else{if(r instanceof ArrayBuffer)return this.fromRaw(Dt(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 qt{static generate(t){if(t&&t.length!==32)throw new Error("Ed25519 Seed needs to be 32 bytes long.");t||(t=Ge.utils.randomPrivateKey()),Ml(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)),Dt(a)));return Ge.verify(o,i,s)}};var Vc=class e extends Error{constructor(t){super(t),this.message=t,Object.setPrototypeOf(this,e.prototype)}};function zd(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 Vc("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 _t=class e extends qt{static async generate(t){let{extractable:r=!1,keyUsages:n=["sign","verify"],subtleCrypto:o}=t??{},i=zd(o),s=await i.generateKey({name:"ECDSA",namedCurve:"P-256"},r,n),a=Dt(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=zd(r),o=Dt(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=Dt(await this._subtleCrypto.sign(r,this._keyPair.privateKey,t));return Object.assign(n,{__signature__:void 0}),n}};var Es=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 Rs(e){return e instanceof Uint8Array?j(e):j(new Uint8Array(e))}function Bc(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:Rs(this.pubkey),...this.targets&&{targets:this.targets.map(t=>t.toHex())}}}};async function U_(e,t,r,n){let o=new zr(t.toDer(),BigInt(+r)*BigInt(1e6),n),i=new Uint8Array([...Pa,...new Uint8Array(pr({...o}))]),s=await e.sign(i);return{delegation:o,signature:s}}var Ct=class e{static async create(t,r,n=new Date(Date.now()+900*1e3),o={}){let i=await U_(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(Bc(c),BigInt("0x"+u),p&&p.map(d=>{if(typeof d!="string")throw new Error("Invalid target.");return k.fromHex(d)})),signature:Bc(a)}});return new this(o,Bc(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:Rs(r.pubkey),...o&&{targets:o.map(i=>i.toHex())}},signature:Rs(n)}}),publicKey:Rs(this.publicKey)}}},Pt=class extends qt{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 pr(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 Es{#e;get delegation(){return this.#e}constructor(t,r){super(t),this.#e=r}static fromDelegation(t,r){return new e(t,r)}};function Dc(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 Yd=["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),Yd.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);Yd.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),Zd,Xd;function L_(){return Zd||(Zd=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function q_(){return Xd||(Xd=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Qd=new WeakMap,kc=new WeakMap,ep=new WeakMap,Uc=new WeakMap,qc=new WeakMap;function M_(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&&Qd.set(r,e)}).catch(()=>{}),qc.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 Lc={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return kc.get(e);if(t==="objectStoreNames")return e.objectStoreNames||ep.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 tp(e){Lc=e(Lc)}function K_(e){return e===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(t,...r){let n=e.call(Is(this),t,...r);return ep.set(n,t.sort?t.sort():[t]),jt(n)}:q_().includes(e)?function(...t){return e.apply(Is(this),t),jt(Qd.get(this))}:function(...t){return jt(e.apply(Is(this),t))}}function H_(e){return typeof e=="function"?K_(e):(e instanceof IDBTransaction&&j_(e),k_(e,L_())?new Proxy(e,Lc):e)}function jt(e){if(e instanceof IDBRequest)return M_(e);if(Uc.has(e))return Uc.get(e);let t=H_(e);return t!==e&&(Uc.set(e,t),qc.set(t,e)),t}var Is=e=>qc.get(e);function np(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 $_=["get","getKey","getAll","getAllKeys","count"],G_=["put","add","delete","clear"],Mc=new Map;function rp(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(Mc.get(t))return Mc.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=G_.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||$_.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 Mc.set(t,i),i}tp(e=>({...e,get:(t,r,n)=>rp(t,r)||e.get(t,r,n),has:(t,r)=>!!rp(t,r)||e.has(t,r)}));var op="auth-client-db",ip="ic-keyval",J_=async(e=op,t=ip,r)=>(globalThis.localStorage?.getItem(Je)&&(globalThis.localStorage.removeItem(Je),globalThis.localStorage.removeItem(We)),await np(e,r,{upgrade:n=>{n.objectStoreNames.contains(t)&&n.clear(t),n.createObjectStore(t)}}));async function W_(e,t,r){return await e.get(t,r)}async function z_(e,t,r,n){return await e.put(t,n,r)}async function Y_(e,t,r){return await e.delete(t,r)}var vs=class e{constructor(t,r){this._db=t,this._storeName=r}static async create(t){let{dbName:r=op,storeName:n=ip,version:o=sp}=t??{},i=await J_(r,n,o);return new e(i,n)}async set(t,r){return await z_(this._db,this._storeName,t,r)}async get(t){return await W_(this._db,this._storeName,t)??null}async remove(t){return await Y_(this._db,this._storeName,t)}};var We="identity",Je="delegation",ap="iv",sp=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}},Kt=class{#e;constructor(t){this.#e=t??{}}initializedDb;get _db(){return new Promise((t,r)=>{if(this.initializedDb){t(this.initializedDb);return}vs.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 Z_=BigInt(1e9),X_=BigInt(3600),Q_=Z_*X_,ey="https://identity.internetcomputer.org",ty="#authorize",ry=BigInt(8)*Q_,jc="ECDSA",Kc="Ed25519",ny=500,As="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 Kt,n=t.keyType??jc,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===jc&&(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===Kc&&typeof c=="string"?o=at.fromJSON(c):o=await _t.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=Ct.fromJSON(c),Dc(s)?"toDer"in o?i=di.fromDelegation(o,s):i=Pt.fromDelegation(o,s):(await Hc(r),o=null))}catch(c){console.error(c),await Hc(r),o=null}let a;return t.idleOptions?.disableIdle?a=void 0:(s||t.identity)&&(a=pi.create(t.idleOptions)),o||(n===Kc?o=at.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 '${Kc}' as the key type, as it can serialize to a string`),o=await _t.generate()),await cp(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=Ct.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=Pt.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 cp(this._storage,this._key),r?.(t)}getIdentity(){return this._identity}async isAuthenticated(){return!this.getIdentity().getPrincipal().isAnonymous()&&this._chain!==null&&Dc(this._chain)}async login(t){let r=oy(this._createOptions?.loginOptions,t),n=r?.maxTimeToLive??ry,o=new URL(r?.identityProvider?.toString()||ey);o.hash=ty,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(As,r?.onError):setTimeout(i,ny))};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 Hc(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 Hc(e){await e.remove(We),await e.remove(Je),await e.remove(ap)}function oy(e,t){if(!e&&!t)return;let r=e?.customValues||t?.customValues?{...e?.customValues,...t?.customValues}:void 0;return{...e,...t,customValues:r}}function iy(e){if(e instanceof _t)return e.getKeyPair();if(e instanceof at)return JSON.stringify(e.toJSON());throw new Error("Unsupported key type")}async function cp(e,t){let r=iy(t);await e.set(We,r)}var Pe=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 Kt().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 Kt;await Promise.all([n.set(We,r.getKeyPair()),n.set(Je,JSON.stringify(t.toJSON()))])}};var $c=async e=>{await sy(),await Pe.getInstance().createAuthClient(),e?.windowReload!==!1&&window.location.reload()},sy=async()=>{await Pe.getInstance().logout(),Ue.getInstance().reset(),go.getInstance().reset(),yo.getInstance().reset()};var lp=e=>{let t=e===!0?"./workers/auth.worker.js":e,r=new Worker(t),n=async()=>{li({message:"junoSignOutAuthTimer"}),await $c()};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})}},Ue.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"&&Er(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 ay({fn:e});!r||!t||Se.getInstance().get()?.syncTabs===!1||cy()},up=async({fn:e})=>{let{createAuthClient:t}=Pe.getInstance(),n=await(await t()).isAuthenticated();await e({authenticated:n})},ay=async({fn:e})=>{let{createAuthClient:t,safeCreateAuthClient:r}=Pe.getInstance();return await(await t()).isAuthenticated()?(await e(),{authenticated:!0}):(await r(),{authenticated:!1})},cy=()=>{try{xo.getInstance().postLoginSuccess()}catch(e){console.warn("Auth BroadcastChannel posting failed",e)}};var Gc=({error:e,type:t})=>typeof e=="string"?e.includes(t):e instanceof Error?e.message.includes(t):!1;var dp="juno.datastore.error.user.cannot_update";var Ht={certified:!1};var Ss=()=>Pe.getInstance().getAuthClient()?.getIdentity(),ly=async()=>{let{getAuthClient:e,createAuthClient:t}=Pe.getInstance();return(e()??await t()).getIdentity()},uy=async()=>{let e=Ue.getInstance().get();if(U(e))return null;let t=Pe.getInstance().getAuthClient();return await t?.isAuthenticated()??!1?t?.getIdentity()??null:null};var de=e=>W(e)?e:Ss()??new ot;var 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)}),P=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}),F=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),V=e.Record({delegation:e.Opt(F),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)))}),Gt=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}),Jt=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),Ze=e.Variant({Ok:en,Err:Jt}),Wt=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:Wt,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}),zt=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(zt),write:et,max_changes_per_user:e.Opt(e.Nat32)}),Yt=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)}),yt=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:yt,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(yt),body:e.Vec(e.Nat8)}),gt=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}),xt=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}),Xt=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),un=e.Record({order:e.Opt(ln),paginate:e.Opt(Xt)}),dn=e.Record({proposal_id:e.Nat}),Qt=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)}),er=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(zt),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)))}),tr=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([P,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([],[Gt],[]),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([P,e.Text],[e.Opt(tt)],["query"]),get_storage_config:e.Func([],[re],["query"]),http_request:e.Func([Yt],[Zt],["query"]),http_request_streaming_callback:e.Func([yt],[on],["query"]),init_asset_upload:e.Func([gt],[xt],[]),init_proposal:e.Func([Xe],[e.Nat,Qe],[]),init_proposal_asset_upload:e.Func([gt,e.Nat],[xt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(gt),e.Nat],[e.Vec(e.Tuple(e.Text,xt))],[]),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],[Qt],["query"]),list_rules:e.Func([P,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,er],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,er))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([P,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([tr],[rt],[]),upload_proposal_asset_chunk:e.Func([tr],[rt],[])})},Wc=({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)}),P=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}),F=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),V=e.Record({delegation:e.Opt(F),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)))}),Gt=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}),Jt=e.Variant({JwtFindProvider:u,GetCachedJwks:e.Null,NoSuchDelegation:e.Null,JwtVerify:p,GetOrFetchJwks:d,DeriveSeedFailed:e.Text}),Ze=e.Variant({Ok:en,Err:Jt}),Wt=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:Wt,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}),zt=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(zt),write:et,max_changes_per_user:e.Opt(e.Nat32)}),Yt=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)}),yt=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:yt,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(yt),body:e.Vec(e.Nat8)}),gt=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}),xt=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}),Xt=e.Record({start_after:e.Opt(e.Nat),limit:e.Opt(e.Nat)}),un=e.Record({order:e.Opt(ln),paginate:e.Opt(Xt)}),dn=e.Record({proposal_id:e.Nat}),Qt=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)}),er=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(zt),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)))}),tr=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([P,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([],[Gt],[]),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([P,e.Text],[e.Opt(tt)],[]),get_storage_config:e.Func([],[re],[]),http_request:e.Func([Yt],[Zt],[]),http_request_streaming_callback:e.Func([yt],[on],[]),init_asset_upload:e.Func([gt],[xt],[]),init_proposal:e.Func([Xe],[e.Nat,Qe],[]),init_proposal_asset_upload:e.Func([gt,e.Nat],[xt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(gt),e.Nat],[e.Vec(e.Tuple(e.Text,xt))],[]),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],[Qt],[]),list_rules:e.Func([P,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,er],[s],[]),set_many_docs:e.Func([e.Vec(e.Tuple(e.Text,e.Text,er))],[e.Vec(e.Tuple(e.Text,s))],[]),set_rule:e.Func([P,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([tr],[rt],[]),upload_proposal_asset_chunk:e.Func([tr],[rt],[])})},dy=({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)}),P=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),S=e.Record({delegation:e.Opt(P),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)}),F=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(F),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}),Gt=e.Record({e12s:e.Nat64}),Zr=e.Record({updated_at:e.Nat64,fee_cycles:Gt,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)}),Jt=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:Jt}),Wt=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}),zt=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}),Yt=e.Record({batch_id:e.Nat}),yt=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),nn=e.Record({field:yt,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)}),gt=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),xt=e.Record({order:e.Opt(nn),owner:e.Opt(e.Principal),matcher:e.Opt(on),paginate:e.Opt(gt)}),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}),Xt=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:Xt,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)}),Qt=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),pn=e.Record({status:Qt,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:Qt,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}),er=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)}),tr=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}),na=e.Record({openid:e.Opt(b),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(C)}),oa=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Xt,expires_at:e.Opt(e.Nat64)}),ia=e.Record({controller:oa,controllers:e.Vec(e.Principal)}),sa=e.Record({fee_cycles:Gt,fee_icp:e.Opt(t)}),aa=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:ke}),ca=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:ke}),la=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(F),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),ua=e.Record({segment_id:e.Principal,segment_kind:ke}),da=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),pa=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],[Wt],["query"]),get_storage_config:e.Func([],[D],["query"]),http_request:e.Func([tn],[et],["query"]),http_request_streaming_callback:e.Func([Xe],[zt],["query"]),init_proposal:e.Func([Jt],[e.Nat,Ze],[]),init_proposal_asset_upload:e.Func([tt,e.Nat],[Yt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(tt),e.Nat],[e.Vec(e.Tuple(e.Text,Yt))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],["query"]),list_assets:e.Func([e.Text,xt],[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],[er],["query"]),list_segments:e.Func([bn],[e.Vec(e.Tuple(tr,rt))],["query"]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([na],[B],[]),set_controllers:e.Func([ia],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([re,sa],[],[]),set_rate_config:e.Func([re,Wt],[],[]),set_segment:e.Func([aa],[rt],[]),set_segment_metadata:e.Func([ca],[rt],[]),set_storage_config:e.Func([la],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),unset_segment:e.Func([ua],[],[]),upload_proposal_asset_chunk:e.Func([da],[pa],[])})},py=({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)}),P=e.Record({targets:e.Opt(e.Vec(e.Principal)),max_time_to_live:e.Opt(e.Nat64)}),S=e.Record({delegation:e.Opt(P),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)}),F=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(F),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}),Gt=e.Record({e12s:e.Nat64}),Zr=e.Record({updated_at:e.Nat64,fee_cycles:Gt,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)}),Jt=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:Jt}),Wt=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}),zt=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}),Yt=e.Record({batch_id:e.Nat}),yt=e.Variant({UpdatedAt:e.Null,Keys:e.Null,CreatedAt:e.Null}),nn=e.Record({field:yt,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)}),gt=e.Record({start_after:e.Opt(e.Text),limit:e.Opt(e.Nat64)}),xt=e.Record({order:e.Opt(nn),owner:e.Opt(e.Principal),matcher:e.Opt(on),paginate:e.Opt(gt)}),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}),Xt=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:Xt,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)}),Qt=e.Variant({Refunded:e.Null,Acknowledged:e.Null,Completed:e.Null}),pn=e.Record({status:Qt,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:Qt,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}),er=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)}),tr=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}),na=e.Record({openid:e.Opt(b),version:e.Opt(e.Nat64),internet_identity:e.Opt(N),rules:e.Opt(C)}),oa=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),scope:Xt,expires_at:e.Opt(e.Nat64)}),ia=e.Record({controller:oa,controllers:e.Vec(e.Principal)}),sa=e.Record({fee_cycles:Gt,fee_icp:e.Opt(t)}),aa=e.Record({metadata:e.Opt(e.Vec(e.Tuple(e.Text,e.Text))),segment_id:e.Principal,segment_kind:ke}),ca=e.Record({metadata:e.Vec(e.Tuple(e.Text,e.Text)),segment_id:e.Principal,segment_kind:ke}),la=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(F),redirects:e.Opt(e.Vec(e.Tuple(e.Text,V)))}),ua=e.Record({segment_id:e.Principal,segment_kind:ke}),da=e.Record({content:e.Vec(e.Nat8),batch_id:e.Nat,order_id:e.Opt(e.Nat)}),pa=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],[Wt],[]),get_storage_config:e.Func([],[D],[]),http_request:e.Func([tn],[et],[]),http_request_streaming_callback:e.Func([Xe],[zt],[]),init_proposal:e.Func([Jt],[e.Nat,Ze],[]),init_proposal_asset_upload:e.Func([tt,e.Nat],[Yt],[]),init_proposal_many_assets_upload:e.Func([e.Vec(tt),e.Nat],[e.Vec(e.Tuple(e.Text,Yt))],[]),list_accounts:e.Func([],[e.Vec(e.Tuple(e.Principal,p))],[]),list_assets:e.Func([e.Text,xt],[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],[er],[]),list_segments:e.Func([bn],[e.Vec(e.Tuple(tr,rt))],[]),reject_proposal:e.Func([x],[e.Null],[]),set_auth_config:e.Func([na],[B],[]),set_controllers:e.Func([ia],[],[]),set_custom_domain:e.Func([e.Text,e.Opt(e.Text)],[],[]),set_fee:e.Func([re,sa],[],[]),set_rate_config:e.Func([re,Wt],[],[]),set_segment:e.Func([aa],[rt],[]),set_segment_metadata:e.Func([ca],[rt],[]),set_storage_config:e.Func([la],[D],[]),submit_proposal:e.Func([e.Nat],[e.Nat,Ze],[]),unset_segment:e.Func([ua],[],[]),upload_proposal_asset_chunk:e.Func([da],[pa],[])})};var fy=async({identity:e,host:t,localActor:r})=>await Or.create({identity:e,host:t,retryTimes:10,shouldFetchRootKey:r}),hy=async({agent:e,...t})=>e??await my(t),my=async({identity:e,container:t})=>{let r=W(t)&&t!==!1;return await fy({identity:e,host:r?t===!0?"http://127.0.0.1:5987":t:"https://icp-api.io",localActor:r})};var pp=({satelliteId:e,certified:t=!1,...r})=>hp({canisterId:e,...r,idlFactory:t?Wc:Jc});var fp=({consoleId:e,certified:t=!1,...r})=>hp({canisterId:e,...r,idlFactory:t?py:dy}),hp=({canisterId:e,idlFactory:t,...r})=>{if(U(e))throw new Error("No canister ID provided.");return _y({canisterId:e,idlFactory:t,...r})},_y=async({canisterId:e,idlFactory:t,config:r,...n})=>{let o=await hy(n);return ho.createActor(t,{agent:o,canisterId:e,...r??{}})};var mp=({satelliteId:e,container:t})=>{let{satelliteId:r}=zc({satelliteId:e}),{container:n}=Yc({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`},zc=({satelliteId:e})=>W(e)?{satelliteId:e}:Se.getInstance().get()??{satelliteId:void 0},Yc=({container:e})=>W(e)?{container:e}:Se.getInstance().get()??{container:void 0};var we=({satellite:e,options:{certified:t}})=>yp({idlFactory:t?Wc:Jc,actorKey:`stock#${t?"update":"query"}`,...e}),_p=({idlFactory:e,...t})=>yp({idlFactory:e,actorKey:"extended#query",...t}),yp=async({satelliteId:e,container:t,...r})=>{let{satelliteId:n}=zc({satelliteId:e});ai(n,"No satellite ID defined. Did you initialize Juno?");let{container:o}=Yc({container:t});return await go.getInstance().getActor({satelliteId:n,container:o,...r})};var Cs=class extends Error{},Ir=class extends Error{},Ps=class extends Error{},Fs=class extends Error{},bo=class extends Error{},Vs=class extends Error{},Bs=class extends Error{},Ds=class extends Error{},Us=class extends Error{};var gp=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 Us("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:gp(e.createdAt),updated_at:gp(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 xp=async e=>{let t=new Blob([JSON.stringify(e,Dd)],{type:"application/json; charset=utf-8"});return new Uint8Array(await t.arrayBuffer())},ks=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(),Ud)},Ls=()=>typeof window<"u";var bp=async({data:e})=>{try{return await ks(e)}catch(t){console.error("The data parsing has failed, mapping to undefined as a fallback.",t);return}};var Zc=async e=>{let{data:t,version:r,description:n}=e;return{description:se(n),data:await xp(t),version:se(r)}},Xc=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 ks(i),version:be(n),...s}};var wp=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})},Tp=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},Np=async({collection:e,doc:t,...r})=>{let{set_doc:n}=await we(r),{key:o}=t,i=await Zc(t),s=await n(e,o,i);return await jn({key:o,doc:s})},Op=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 Zc(a)])}let o=await r(n),i=[];for(let[s,a]of o)i.push(await jn({key:s,doc:a}));return i},Ep=async({collection:e,doc:t,...r})=>{let{del_doc:n}=await we(r),{key:o}=t;return n(e,o,Xc(t))},Rp=async({docs:e,...t})=>{let{del_many_docs:r}=await we(t),n=e.map(({collection:o,doc:i})=>[o,i.key,Xc(i)]);await r(n)},Ip=async({collection:e,filter:t,...r})=>{let{del_filtered_docs:n}=await we(r);return n(e,Yr(t))},vp=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 bp({data:l}),version:be(_),...g})}return{items:u,items_length:s,items_page:be(i),matches_length:a,matches_pages:be(c)}},Ap=async({collection:e,filter:t,...r})=>{let{count_docs:n}=await we(r);return n(e,Yr(t))};var qs=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await wp({...r,satellite:{...e,identity:n},options:t??Ht})},FN=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await Tp({...r,satellite:{...e,identity:n},options:t??Ht})},Sp=async({satellite:e,...t})=>{let r=de(e?.identity);return await Np({...t,satellite:{...e,identity:r},options:{certified:!0}})},Cp=async({satellite:e,...t})=>{let r=de(e?.identity);return await Op({...t,satellite:{...e,identity:r},options:{certified:!0}})},VN=async({satellite:e,...t})=>{let r=de(e?.identity);return await Ep({...t,satellite:{...e,identity:r},options:{certified:!0}})},BN=async({satellite:e,...t})=>{let r=de(e?.identity);return await Rp({...t,satellite:{...e,identity:r},options:{certified:!0}})},DN=async({satellite:e,filter:t,...r})=>{let n=de(e?.identity);return await Ip({...r,filter:t??{},satellite:{...e,identity:n},options:{certified:!0}})},UN=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await vp({...n,filter:r??{},satellite:{...e,identity:o},options:t??Ht})},kN=async({satellite:e,options:t,filter:r,...n})=>{let o=de(e?.identity);return await Ap({...n,filter:r??{},satellite:{...e,identity:o},options:t??Ht})};var Pp=async({provider:e})=>{let{user:t,userId:r}=await Ms();if(W(t))return t;try{return await yy({userId:r,provider:e})}catch(n){if(Gc({error:n,type:dp})){let o=await Fp({userId:r});if(W(o))return o}throw n}},Ms=async()=>{let e=Ss();if(U(e))throw new Ds("No identity to initialize the user. Have you initialized Juno?");let t=e.getPrincipal().toText(),r=await Fp({userId:t});return{userId:t,user:r}},Fp=({userId:e})=>qs({collection:"#user",key:e}),yy=({userId:e,...t})=>Sp({collection:"#user",doc:{key:e,data:t}});var js=async({syncTabsOnSuccess:e}={syncTabsOnSuccess:!1})=>{await mi({fn:async()=>{let{user:r}=await Ms();Ue.getInstance().set(r??null)},syncTabsOnSuccess:e})},Vp=async()=>{await up({fn:async({authenticated:t})=>{let n=t?Ms:()=>Promise.resolve({user:null}),{user:o}=await n();Ue.getInstance().set(o??null)}})},Ks=async({user:e})=>{await mi({fn:async()=>{Ue.getInstance().set(e)},syncTabsOnSuccess:!0})};var Bp=()=>{try{let e=xo.getInstance(),t=async()=>{await Vp(),li({message:"junoSignInReload"})};return e.onLoginSuccess(t),()=>{e?.destroy()}}catch(e){console.warn("Auth BroadcastChannel initialization failed",e);return}};var Dp=()=>{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()},Up=()=>{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()},Lp=()=>{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()},Hs=()=>{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 qp=BigInt(144e11),Mp=!1,jp={width:576,height:576},Kp={width:424,height:576},Qc="internetcomputer.org",Hp="ic0.app",$s="id.ai";var $p=({width:e,height:t})=>{if(!Ls()||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 $t=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 Gp=(r=>(r[r.AuthorizingWithProvider=0]="AuthorizingWithProvider",r[r.CreatingOrRetrievingUser=1]="CreatingOrRetrievingUser",r))(Gp||{});var Gs=class{async signIn({options:t,authClient:r,initAuth:n}){await $t({fn:async()=>await this.#e({options:t,authClient:r}),step:0,onProgress:t?.onProgress}),await $t({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===As){o(new Ps(i));return}o(new Cs(i))},maxTimeToLive:t?.maxTimeToLiveInNanoseconds??qp,allowPinAuthentication:t?.allowPin??Mp,...t?.derivationOrigin!==void 0&&{derivationOrigin:t.derivationOrigin},...this.signInOptions({windowed:t?.windowed})})})}};var Js=class extends Gs{#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=[Qc,Hp].includes(this.#e??$s);return mt(this.#e)?`https://${$s}`:p?`https://identity.${this.#e??Qc}`:`https://${this.#e}`}let s=Se.getInstance().get(),a=W(s)&&W(s?.internetIdentityId)?s.internetIdentityId:Gd,{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:$p((()=>{try{let{hostname:i}=new URL(n);return i.includes($s)}catch{return!1}})()?Kp:jp)},identityProvider:n}}};var el=class extends Error{},tl=class extends Error{},rl=class extends Error{},nl=class extends Error{},ol=class extends Error{},il=class extends Error{},sl=class extends Error{},Ws=class extends Error{},al=class extends Error{},cl=class extends Error{},ll=class extends Error{constructor(e){super("GitHub OAuth initialization failed",e)}},ul=class extends Error{constructor(e){super("GitHub OAuth finalization failed",e)}};var Jp=({auth:e,identity:t})=>"satellite"in e?pp({...e.satellite,identity:t}):fp({...e.console,identity:t}),gy=async({actorParams:e,args:t})=>{let{authenticate:r}=await Jp(e);return await r(t)},xy=async({actorParams:e,args:t})=>{let{get_delegation:r}=await Jp(e);return await r(t)},by=({delegations:e,sessionKey:t})=>{let[r,n]=e,o=Ct.fromDelegations(n,Uint8Array.from(r));return{identity:Pt.fromDelegation(t,o),delegationChain:o,sessionKey:t}},zs=async({jwt:e,context:t,auth:r})=>{let n=await _t.generate({extractable:!1}),o=new Uint8Array(n.getPublicKey().toDer()),{delegations:i,data:s}=await wy({jwt:e,publicKey:o,context:t,auth:r});return{identity:by({sessionKey:n,delegations:i}),data:s}},wy=async({jwt:e,publicKey:t,context:{caller:r,salt:n},auth:o})=>{let i=await gy({args:{OpenId:{jwt:e,session_key:t,salt:n}},actorParams:{auth:o,identity:r}});if("Err"in i)throw new ol("Authentication failed",{cause:i});let{delegation:{user_key:s,expiration:a},...c}=i.Ok,u=await Ty({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}},Ty=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 xy({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 al("Getting delegation failed",{cause:c})}return c.Ok}throw new cl};var Wp=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 ll({cause:t})}}},zp=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 ul({cause:r})}}};var dl="juno:auth:openid",pl={authUrl:"https://accounts.google.com/o/oauth2/v2/auth",authScopes:["openid","profile","email"],configUrl:"https://accounts.google.com/gsi/fedcm.json"},Ys={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 fl=e=>Jr(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),Zs=({url:e})=>{try{return new URL(e)}catch{throw new el("Cannot parse authURL",{cause:e})}},Ny=()=>window.crypto.getRandomValues(new Uint8Array(32)),Oy=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 fl(Rr(o))},Ey=async({caller:e})=>{let t=Ny();return{nonce:await Oy({salt:t,caller:e}),salt:t}},Yp="__caller__",Zp="__salt__",Xp="__state__",Ry=({caller:e,state:t,salt:r})=>{let n={[Yp]:e.toJSON(),[Zp]:Jr(r),[Xp]:t};return JSON.stringify(n)},Iy=e=>{let{[Yp]:t,[Zp]:r,[Xp]:n}=JSON.parse(e);return{caller:at.fromParsedJson(t),salt:Bd(r),state:n}},hl=async({generateState:e})=>{let t=at.generate(),{nonce:r,salt:n}=await Ey({caller:t}),o=await e({nonce:r}),i=Ry({caller:t,salt:n,state:o});return sessionStorage.setItem(dl,i),{nonce:r,state:o}},Qp=()=>{let e=sessionStorage.getItem(dl);if(U(e))throw new tl;return Iy(e)};var vy=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 zp({url:r,body:{code:i,state:s}});if("error"in a)throw a.error;let{success:{token:c}}=a;if(mt(c))throw new Ws;return await zs({jwt:c,auth:e,context:t})},Ay=async({auth:e,context:t})=>{let{location:{hash:r}}=window;if(mt(r)||!r.startsWith("#"))throw new il("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(mt(s)||o!==s)throw new sl("The provided state is invalid",{cause:o});if(mt(i))throw new Ws;return await zs({jwt:i,auth:e,context:t})},ml=async e=>{let t=Qp();if("github"in e){let{github:{redirect:n,auth:o}}=e,{finalizeUrl:i}=Ys;return await vy({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 zs({jwt:n,context:t,auth:o})}return await Ay({...r,context:t})};var Sy=({initUrl:e})=>async({nonce:t})=>{let r=Zs({url:e});r.searchParams.set("nonce",t);let n=await Wp({url:r.toString()});if("error"in n)throw n.error;let{success:{state:o}}=n;return o},Cy=({authUrl:e,clientId:t,authScopes:r,state:n,redirectUrl:o})=>{let i=Zs({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()},Py=()=>fl(window.crypto.getRandomValues(new Uint8Array(12))),Fy=async e=>Py(),Vy=({authUrl:e,clientId:t,nonce:r,loginHint:n,authScopes:o,state:i,redirectUrl:s})=>{let a=Zs({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),Er(n)?a.searchParams.set("login_hint",n):a.searchParams.set("prompt","select_account"),window.location.href=a.toString()},By=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 rl;let{type:s}=i;if(s!=="identity"||!("token"in i)||typeof i.token!="string")throw new nl("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}=Ys,f=await hl({generateState:Sy({initUrl:c??l})});Cy({...u,...f,authUrl:p,authScopes:d});return}let t=await hl({generateState:Fy}),{google:r}=e;if("credentials"in r){let{credentials:s}=r,{configUrl:a}=pl;return await By({...s,...t,configUrl:a})}let{redirect:n}=r,{authUrl:o,authScopes:i}=pl;Vy({...n,...t,authUrl:o,authScopes:i})}var Xs=({url:e})=>{try{return new URL(e)}catch{return console.warn(`Cannot parse URL ${e}. Skipping option.`),null}};var Dy=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(Er(d))return d;let l=Hs();return mt(l)?null:Xs({url:`${l}/v1/auth/finalize/github`})?.toString()??null})(),{identity:{delegationChain:s,sessionKey:a,identity:c},data:{doc:u}}=await ml("github"in e?{github:{redirect:W(i)?{finalizeUrl:i}:null,...n}}:{google:{redirect:null,...n}});await Pe.getInstance().setAuthClientStorage({delegationChain:s,sessionKey:a});let p=await jn({doc:u,key:c.getPrincipal().toText()});await Ks({user:p})};var ef=e=>(e.preventDefault(),e.returnValue="Are you sure you want to exit?"),Uy=()=>{window.addEventListener("beforeunload",ef,{capture:!0})},ky=()=>{window.removeEventListener("beforeunload",ef,{capture:!0})},Qs=async({fn:e})=>{try{return Uy(),await e()}finally{ky()}};function tf(e){return new Promise((t,r)=>{e.oncomplete=e.onsuccess=()=>t(e.result),e.onabort=e.onerror=()=>r(e.error)})}function yl(e,t){let r,n=()=>{if(r)return r;let o=indexedDB.open(e);return o.onupgradeneeded=()=>o.result.createObjectStore(t),r=tf(o),r.then(i=>{i.onclose=()=>r=void 0},()=>{}),r};return(o,i)=>n().then(s=>i(s.transaction(t,o).objectStore(t)))}var _l;function Ly(){return _l||(_l=yl("keyval-store","keyval")),_l}function rf(e,t,r=Ly()){return r("readwrite",n=>new Promise((o,i)=>{n.get(e).onsuccess=function(){try{n.put(t(this.result),e),o(tf(n.transaction))}catch(s){i(s)}}}))}var qy=class extends Error{constructor(){super("A dev identity can only be used in browser environments")}},My=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}`)}},Ky=yl("juno-dev-identifiers","juno-dev-identifiers-store");var nf=async({identifier:e="dev",maxTimeToLiveInMilliseconds:t}={})=>{if(!(typeof window<"u"))throw new qy;let{location:{hostname:r}}=window;if(!["127.0.0.1","localhost"].includes(r))throw new My;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=at.generate(a),u=await _t.generate({extractable:!1}),p=t??6048e5,d=await Ct.create(c,u.getPublicKey(),new Date(Date.now()+p));return{identity:Pt.fromDelegation(u,d),sessionKey:u,delegationChain:d}},i=async()=>{await rf(e,a=>{let c=Date.now();return{createdAt:a?.createdAt??c,updatedAt:c}},Ky)},s=await o();return await i(),s};var ea=class{async signIn({options:t,initAuth:r,setStorage:n}){let{sessionKey:o,delegationChain:i}=await nf(t);await n({sessionKey:o,delegationChain:i}),await r({provider:void 0})}};var ta=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??Lp();if(U(r))throw new bo;let{redirect:n}=t;await _i({github:{redirect:{...n??{},clientId:r,initUrl:(()=>{let i=t?.redirect?.initUrl;if(Er(i))return i;let s=Hs();if(!mt(s))return Xs({url:`${s}/v1/auth/init/github`})?.toString()})()}}})}};var ra=class{async signIn({options:t={}}){let r=t?.redirect?.clientId??kp();if(U(r))throw new bo;let{redirect:n}=t;await _i({google:{redirect:{...n??{},clientId:r}}})}};var of=async({delegationIdentity:e,passkeyIdentity:t,satelliteId:r})=>{let n=t.getCredential().getAAGUID(),[o,i]=await Cp({docs:[{collection:"#user",doc:{key:e.getPrincipal().toText(),data:{provider:"webauthn",providerData:{webauthn:{...W(n)&&{aaguid:Os(n)}}}}}},{collection:"#user-webauthn",doc:{key:t.getCredential().getCredentialIdText(),data:{publicKey:t.getPublicKey().toRaw()}}}],satellite:{identity:e,satelliteId:r}});return o};var sf=(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))(sf||{}),af=(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))(af||{});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 $t({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 $t({fn:async()=>await of({delegationIdentity:u,passkeyIdentity:c,satelliteId:i}),step:5,onProgress:t});await $t({fn:async()=>await this.#t({delegationIdentity:u,sessionKey:p}),step:4,onProgress:t}),await $t({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 qs({collection:"#user-webauthn",key:Jr(d),options:{certified:!0},satellite:{identity:new ot,satelliteId:o}});if(U(l))throw new Vs("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 $t({fn:async()=>await this.#t({delegationIdentity:c,sessionKey:u}),step:3,onProgress:t}),await $t({fn:n,step:4,onProgress:t})}async#e({identity:t,maxTimeToLiveInMilliseconds:r}){let n=await _t.generate({extractable:!1}),o=r??144e5,i=await Ct.create(t,n.getPublicKey(),new Date(Date.now()+o));return{delegationIdentity:Pt.fromDelegation(n,i),sessionKey:n}}async#t({sessionKey:t,delegationIdentity:r}){let n=new Kt;await Promise.all([n.set(We,t.getKeyPair()),n.set(Je,JSON.stringify(r.getDelegation().toJSON()))])}};var cf=async({provider:e})=>{await mi({fn:async()=>{let r=await Pp({provider:e});Ue.getInstance().set(r)},syncTabsOnSuccess:!0})},$y=async e=>{if("google"in e){let{google:{options:t}}=e;await yi({fn:()=>new ra().signIn({options:t}),context:{windowGuard:!1}});return}if("github"in e){let{github:{options:t}}=e;await yi({fn:()=>new ta().signIn({options:t}),context:{windowGuard:!1}});return}if("webauthn"in e){let{webauthn:{options:t,context:r}}=e;await yi({fn:()=>new wo().signIn({options:t,loadAuth:()=>js({syncTabsOnSuccess:!0})}),context:r});return}if("internet_identity"in e){let{internet_identity:{options:t,context:r}}=e,{domain:n,...o}=t??{};await yi({fn:()=>new Js({domain:n}).signIn({options:o,authClient:Pe.getInstance().getAuthClient(),initAuth:cf}),context:r});return}if("dev"in e){let{dev:{options:t}}=e,{setAuthClientStorage:r}=Pe.getInstance();await yi({fn:()=>new ea().signIn({options:t,initAuth:cf,setStorage:r}),context:{windowGuard:!1}});return}throw new Fs("An unknown or unsupported provider was provided for sign-in.")},yi=async({fn:e,context:t})=>{if(t?.windowGuard===!1){await e();return}await Qs({fn:e})};var Gy=async e=>{let t=async()=>await Jy(e);if(Object.values(e)?.[0].context?.windowGuard===!1){await t();return}await Qs({fn:t})},Jy=async e=>{if("webauthn"in e){let{webauthn:{options:t}}=e;await new wo().signUp({options:t,loadAuthWithUser:Ks});return}throw new Bs("An unknown or unsupported provider was provided for sign-up.")};var B1=e=>e?.data?.provider==="webauthn",D1=e=>e?.data?.provider==="google";var q1=async({idlFactory:e,satellite:t})=>{let r=de(t?.identity);return await _p({idlFactory:e,...t,identity:r})};var lf=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(Wy(r));o?.onInitiatedBatch();let{chunkIds:u}=await Zy({data:e,uploadFn:s,batchId:c});o?.onUploadedFileChunks(r.fullPath),await Yy({commitFn:a,batchId:c,data:e,headers:t,chunkIds:u}),o?.onCommittedBatch()};var Wy=({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)}),zy=({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??[]]}},Yy=async({commitFn:e,...t})=>{let r=zy(t);await e(r)},Zy=async({data:e,uploadFn:t,batchId:r})=>{let n=[],o=Ls()?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 Xy({uploadChunks:n}))s=[...s,...a];return{chunkIds:s}};async function*Xy({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 uf=async({asset:e,...t})=>{let r=await we(t);await lf({actor:r,asset:e})},df=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)}},pf=async({collection:e,filter:t,...r})=>{let{count_assets:n}=await we(r);return n(e,Yr(t))},ff=async({collection:e,fullPath:t,...r})=>(await we(r)).del_asset(e,t),hf=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)},mf=async({collection:e,filter:t,...r})=>{let{del_filtered_assets:n}=await we(r);return n(e,Yr(t))},_f=async({collection:e,fullPath:t,token:r,...n})=>{let{set_asset_token:o}=await we(n);return o(e,t,se(r))},yf=async({collection:e,fullPath:t,...r})=>{let{get_asset:n}=await we(r);return be(await n(e,t))},gf=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 xf=e=>btoa([...e].map(t=>String.fromCharCode(t)).join(""));var nE=e=>bf(e),oE=e=>bf({filename:e.data.name,...e}),bf=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 uf({asset:{data:t,filename:p,collection:r,token:i,headers:n,fullPath:d,encoding:a,description:c},satellite:l,options:{certified:!0}}),{downloadUrl:wf({satellite:l,assetKey:{fullPath:d,token:i}}),fullPath:d,...W(i)&&{token:i},name:p}},iE=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)},{items:i,...s}=await df({collection:e,filter:t??{},satellite:o,options:n??Ht}),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:wf({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:xf(E),total_length:O}}),{}),owner:d.toText(),created_at:_,updated_at:g}});return{items:a,assets:a,...s}},sE=async({collection:e,filter:t,satellite:r,options:n})=>{let o={...r,identity:de(r?.identity)};return await pf({collection:e,satellite:o,filter:t??{},options:n??Ht})},aE=({collection:e,fullPath:t,satellite:r})=>ff({collection:e,fullPath:t,satellite:{...r,identity:de(r?.identity)},options:{certified:!0}}),cE=({collection:e,fullPath:t,token:r,satellite:n})=>_f({collection:e,fullPath:t,token:r,satellite:{...n,identity:de(n?.identity)},options:{certified:!0}}),lE=({assets:e,satellite:t})=>hf({assets:e,satellite:{...t,identity:de(t?.identity)},options:{certified:!0}}),uE=async({collection:e,satellite:t,filter:r})=>{let n={...t,identity:de(t?.identity)};return await mf({collection:e,satellite:n,filter:r??{},options:{certified:!0}})},dE=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await yf({...r,satellite:{...e,identity:n},options:t??Ht})},pE=async({satellite:e,options:t,...r})=>{let n=de(e?.identity);return await gf({...r,satellite:{...e,identity:n},options:t??Ht})},wf=({assetKey:{fullPath:e,token:t},satellite:r})=>{let n={...r,identity:de(r?.identity)};return`${mp(n)}${e}${W(t)?`?token=${t}`:""}`};var eg=e=>{let t=e?.satelliteId??Dp();ai(t,"Satellite ID is not configured. Juno cannot be initialized.");let r=e?.container??Up();return{satelliteId:t,internetIdentityId:e?.internetIdentityId,workers:e?.workers,syncTabs:e?.syncTabs,container:r}},TE=e=>tg(e),tg=async e=>{let t=eg(e);Se.getInstance().set(t),await js();let r=t.workers?.auth!==void 0?lp(t.workers.auth):void 0,n=t.syncTabs===!1?void 0:Bp();return[...W(r)?[r]:[],...W(n)?[n]:[]]},rg=e=>Ue.getInstance().subscribe(e),NE=rg;export{Gp as AuthClientSignInProgressStep,Ds as InitError,Js as InternetIdentityProvider,Us as ListError,Cs as SignInError,Ir as SignInInitError,bo as SignInMissingClientIdError,Fs as SignInProviderNotSupportedError,Ps as SignInUserInterruptError,Bs as SignUpProviderNotSupportedError,sf as WebAuthnSignInProgressStep,Vs as WebAuthnSignInRetrievePublicKeyError,af as WebAuthnSignUpProgressStep,NE as authSubscribe,sE as countAssets,kN as countDocs,aE as deleteAsset,VN as deleteDoc,uE as deleteFilteredAssets,DN as deleteFilteredDocs,lE as deleteManyAssets,BN as deleteManyDocs,wf as downloadUrl,dE as getAsset,qs as getDoc,uy as getIdentityOnce,pE as getManyAssets,FN as getManyDocs,q1 as getSatelliteExtendedActor,Dy as handleRedirectCallback,TE as initJuno,tg as initSatellite,D1 as isGoogleUser,D_ as isWebAuthnAvailable,B1 as isWebAuthnUser,iE as listAssets,UN as listDocs,rg as onAuthStateChange,cE as setAssetToken,Sp as setDoc,Cp as setManyDocs,$y as signIn,$c as signOut,Gy as signUp,ly as unsafeIdentity,nE as uploadBlob,oE as uploadFile};
|
|
57
57
|
/*! Bundled license information:
|
|
58
58
|
|
|
59
59
|
@noble/hashes/esm/utils.js:
|