UNPKG

node-seal

Version:

Homomorphic Encryption for TypeScript or JavaScript using Microsoft SEAL

1 lines 55.7 kB
var e=async function(e={}){var t,r,n,a,o=e,i=new Promise(((e,n)=>{t=e,r=n})),c="./this.program",s=import.meta.url,u="";try{u=new URL(".",s).href}catch{}a=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)},n=async e=>{if((e=await fetch(e,{credentials:"same-origin"})).ok)return e.arrayBuffer();throw Error(e.status+" : "+e.url)};var l,d,y,f,h,p,m,v,w,g,T,b,C,A=console.error.bind(console),P=!1;function x(){var e=d.buffer;f=new Int8Array(e),p=new Int16Array(e),h=new Uint8Array(e),m=new Uint16Array(e),v=new Int32Array(e),w=new Uint32Array(e),g=new Float32Array(e),C=new Float64Array(e),T=new BigInt64Array(e),b=new BigUint64Array(e)}var I,S=0,E=null;function V(e){throw o.onAbort?.(e),A(e="Aborted("+e+")"),P=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),r(e),e}async function M(e,t){try{var r=await async function(e){if(!l)try{var t=await n(e);return new Uint8Array(t)}catch{}if(e==I&&l)e=new Uint8Array(l);else{if(!a)throw"both async and sync fetching of the wasm failed";e=a(e)}return e}(e);return await WebAssembly.instantiate(r,t)}catch(e){A(`failed to asynchronously prepare wasm: ${e}`),V(e)}}class j{name="ExitStatus";constructor(e){this.message=`Program terminated with exit(${e})`,this.status=e}}var $=e=>{for(;0<e.length;)e.shift()(o)},W=[],z=[],F=()=>{var e=o.preRun.shift();z.push(e)},U=!0;class B{constructor(e){this.X=e-24}}var K,R=e=>{for(var t="";h[e>>>0];)t+=K[h[e++>>>0]];return t},k={},N={},D={},O=class extends Error{constructor(e){super(e),this.name="BindingError"}};function _(e,t,r={}){return function(e,t,r={}){var n=t.name;if(!e)throw new O(`type "${n}" must have a positive integer typeid pointer`);if(N.hasOwnProperty(e)){if(r.va)return;throw new O(`Cannot register type '${n}' twice`)}N[e]=t,delete D[e],k.hasOwnProperty(e)&&(t=k[e],delete k[e],t.forEach((e=>e())))}(e,t,r)}var Z=(e,t,r)=>{switch(t){case 1:return r?e=>f[e>>>0]:e=>h[e>>>0];case 2:return r?e=>p[e>>>1>>>0]:e=>m[e>>>1>>>0];case 4:return r?e=>v[e>>>2>>>0]:e=>w[e>>>2>>>0];case 8:return r?e=>T[e>>>3>>>0]:e=>b[e>>>3>>>0];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},X=e=>{throw new O(e.V.Y.W.name+" instance already deleted")},H=!1,L=()=>{},Y=e=>"undefined"==typeof FinalizationRegistry?(Y=e=>e,e):(H=new FinalizationRegistry((e=>{--(e=e.V).count.value,0===e.count.value&&(e.$?e.ba.fa(e.$):e.Y.W.fa(e.X))})),L=e=>{H.unregister(e)},(Y=e=>{var t=e.V;return t.$&&H.register(e,{V:t},e),e})(e));function G(){}var q=(e,t)=>Object.defineProperty(t,"name",{value:e}),Q={},J=(e,t,r)=>{if(void 0===e[t].Z){var n=e[t];e[t]=function(...n){if(!e[t].Z.hasOwnProperty(n.length))throw new O(`Function '${r}' called with an invalid number of arguments (${n.length}) - expects one of (${e[t].Z})!`);return e[t].Z[n.length].apply(this,n)},e[t].Z=[],e[t].Z[n.ga]=n}},ee=(e,t,r)=>{if(o.hasOwnProperty(e)){if(void 0===r||void 0!==o[e].Z&&void 0!==o[e].Z[r])throw new O(`Cannot register public name '${e}' twice`);if(J(o,e,e),o[e].Z.hasOwnProperty(r))throw new O(`Cannot register multiple overloads of a function with the same number of arguments (${r})!`);o[e].Z[r]=t}else o[e]=t,o[e].ga=r};function te(e,t,r,n,a,o,i,c){this.name=e,this.constructor=t,this.ea=r,this.fa=n,this.aa=a,this.ta=o,this.ka=i,this.sa=c,this.xa=[]}var re=(e,t,r)=>{for(;t!==r;){if(!t.ka)throw new O(`Expected null or instance of ${r.name}, got an instance of ${t.name}`);e=t.ka(e),t=t.aa}return e},ne=e=>{if(null===e)return"null";var t=typeof e;return"object"===t||"array"===t||"function"===t?e.toString():""+e};function ae(e,t){if(null===t){if(this.oa)throw new O(`null is not a valid ${this.name}`);return 0}if(!t.V)throw new O(`Cannot pass "${ne(t)}" as a ${this.name}`);if(!t.V.X)throw new O(`Cannot pass deleted object as a pointer of type ${this.name}`);return re(t.V.X,t.V.Y.W,this.W)}function oe(e,t){if(null===t){if(this.oa)throw new O(`null is not a valid ${this.name}`);if(this.na){var r=this.ya();return null!==e&&e.push(this.fa,r),r}return 0}if(!t||!t.V)throw new O(`Cannot pass "${ne(t)}" as a ${this.name}`);if(!t.V.X)throw new O(`Cannot pass deleted object as a pointer of type ${this.name}`);if(!this.ma&&t.V.Y.ma)throw new O(`Cannot convert argument of type ${t.V.ba?t.V.ba.name:t.V.Y.name} to parameter type ${this.name}`);if(r=re(t.V.X,t.V.Y.W,this.W),this.na){if(void 0===t.V.$)throw new O("Passing raw pointer to smart pointer is illegal");switch(this.Aa){case 0:if(t.V.ba!==this)throw new O(`Cannot convert argument of type ${t.V.ba?t.V.ba.name:t.V.Y.name} to parameter type ${this.name}`);r=t.V.$;break;case 1:r=t.V.$;break;case 2:if(t.V.ba===this)r=t.V.$;else{var n=t.clone();r=this.za(r,We((()=>n.delete()))),null!==e&&e.push(this.fa,r)}break;default:throw new O("Unsupporting sharing policy")}}return r}function ie(e,t){if(null===t){if(this.oa)throw new O(`null is not a valid ${this.name}`);return 0}if(!t.V)throw new O(`Cannot pass "${ne(t)}" as a ${this.name}`);if(!t.V.X)throw new O(`Cannot pass deleted object as a pointer of type ${this.name}`);if(t.V.Y.ma)throw new O(`Cannot convert argument of type ${t.V.Y.name} to parameter type ${this.name}`);return re(t.V.X,t.V.Y.W,this.W)}function ce(e){return this.fromWireType(w[e>>>2>>>0])}var se=(e,t,r)=>t===r?e:void 0===r.aa||null===(e=se(e,t,r.aa))?null:r.sa(e),ue={},le=class extends Error{constructor(e){super(e),this.name="InternalError"}},de=(e,t)=>{if(!t.Y||!t.X)throw new le("makeClassHandle requires ptr and ptrType");if(!!t.ba!=!!t.$)throw new le("Both smartPtrType and smartPtr must be specified");return t.count={value:1},Y(Object.create(e,{V:{value:t,writable:!0}}))};function ye(e,t,r,n,a,o,i,c,s,u,l){this.name=e,this.W=t,this.oa=r,this.ma=n,this.na=a,this.wa=o,this.Aa=i,this.qa=c,this.ya=s,this.za=u,this.fa=l,a||void 0!==t.aa?this.toWireType=oe:(this.toWireType=n?ae:ie,this.da=null)}var fe,he=(e,t,r)=>{if(!o.hasOwnProperty(e))throw new le("Replacing nonexistent public symbol");void 0!==o[e].Z&&void 0!==r?o[e].Z[r]=t:(o[e]=t,o[e].ga=r)},pe=[],me=e=>{var t=pe[e];return t||(pe[e]=t=fe.get(e)),t},ve=(e,t)=>(...r)=>((e,t,r=[])=>(t=me(t)(...r),"p"==e[0]?t>>>0:t))(e,t,r),we=(e,t)=>{var r=(e=R(e)).includes("p")?ve(e,t):me(t);if("function"!=typeof r)throw new O(`unknown function pointer with signature ${e}: ${t}`);return r};class ge extends Error{}var Te=e=>{e=ft(e);var t=R(e);return mt(e),t},be=(e,t)=>{var r=[],n={};throw t.forEach((function e(t){n[t]||N[t]||(D[t]?D[t].forEach(e):(r.push(t),n[t]=!0))})),new ge(`${e}: `+r.map(Te).join([", "]))},Ce=(e,t,r)=>{function n(t){if((t=r(t)).length!==e.length)throw new le("Mismatched type converter count");for(var n=0;n<e.length;++n)_(e[n],t[n])}e.forEach((e=>D[e]=t));var a=Array(t.length),o=[],i=0;t.forEach(((e,t)=>{N.hasOwnProperty(e)?a[t]=N[e]:(o.push(e),k.hasOwnProperty(e)||(k[e]=[]),k[e].push((()=>{a[t]=N[e],++i===o.length&&n(a)})))})),0===o.length&&n(a)},Ae=e=>{for(;e.length;){var t=e.pop();e.pop()(t)}};function Pe(e,t,r,n,a){var o=t.length;if(2>o)throw new O("argTypes array size mismatch! Must at least get return value and 'this' types!");var i=null!==t[1]&&null!==r,c=function(e){for(var t=1;t<e.length;++t)if(null!==e[t]&&void 0===e[t].da)return!0;return!1}(t),s="void"!==t[0].name,u=o-2,l=Array(u),d=[],y=[];return q(e,(function(...e){if(y.length=0,d.length=i?2:1,d[0]=a,i){var r=t[1].toWireType(y,this);d[1]=r}for(var o=0;o<u;++o)l[o]=t[o+2].toWireType(y,e[o]),d.push(l[o]);if(e=n(...d),c)Ae(y);else for(o=i?1:2;o<t.length;o++){var f=1===o?r:l[o-2];null!==t[o].da&&t[o].da(f)}return r=s?t[0].fromWireType(e):void 0}))}var xe=(e,t)=>{for(var r=[],n=0;n<e;n++)r.push(w[t+4*n>>>2>>>0]);return r},Ie=e=>{const t=(e=e.trim()).indexOf("(");return-1===t?e:e.slice(0,t)},Se=(e,t,r)=>{if(!(e instanceof Object))throw new O(`${r} with invalid "this": ${e}`);if(!(e instanceof t.W.constructor))throw new O(`${r} incompatible with "this" of type ${e.constructor.name}`);if(!e.V.X)throw new O(`cannot call emscripten binding method ${r} on deleted object`);return re(e.V.X,e.V.Y.W,t.W)},Ee=[],Ve=[0,1,,1,null,1,!0,1,!1,1];function Me(e){9<(e>>>=0)&&0==--Ve[e+1]&&(Ve[e]=void 0,Ee.push(e))}for(var je,$e=e=>{if(!e)throw new O(`Cannot use deleted val. handle = ${e}`);return Ve[e]},We=e=>{switch(e){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:const t=Ee.pop()||Ve.length;return Ve[t]=e,Ve[t+1]=1,t}},ze={name:"emscripten::val",fromWireType:e=>{var t=$e(e);return Me(e),t},toWireType:(e,t)=>We(t),ca:8,readValueFromPointer:ce,da:null},Fe=(e,t,r)=>{switch(t){case 1:return r?function(e){return this.fromWireType(f[e>>>0])}:function(e){return this.fromWireType(h[e>>>0])};case 2:return r?function(e){return this.fromWireType(p[e>>>1>>>0])}:function(e){return this.fromWireType(m[e>>>1>>>0])};case 4:return r?function(e){return this.fromWireType(v[e>>>2>>>0])}:function(e){return this.fromWireType(w[e>>>2>>>0])};default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},Ue=(e,t)=>{var r=N[e];if(void 0===r)throw e=`${t} has unknown type ${Te(e)}`,new O(e);return r},Be=(e,t)=>{switch(t){case 4:return function(e){return this.fromWireType(g[e>>>2>>>0])};case 8:return function(e){return this.fromWireType(C[e>>>3>>>0])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}},Ke=Object.assign({optional:!0},ze),Re=(e,t,r)=>{var n=h;if(!(0<r))return 0;var a=t>>>=0;r=t+r-1;for(var o=0;o<e.length;++o){var i=e.charCodeAt(o);if(55296<=i&&57343>=i&&(i=65536+((1023&i)<<10)|1023&e.charCodeAt(++o)),127>=i){if(t>=r)break;n[t++>>>0]=i}else{if(2047>=i){if(t+1>=r)break;n[t++>>>0]=192|i>>6}else{if(65535>=i){if(t+2>=r)break;n[t++>>>0]=224|i>>12}else{if(t+3>=r)break;n[t++>>>0]=240|i>>18,n[t++>>>0]=128|i>>12&63}n[t++>>>0]=128|i>>6&63}n[t++>>>0]=128|63&i}}return n[t>>>0]=0,t-a},ke=e=>{for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);127>=n?t++:2047>=n?t+=2:55296<=n&&57343>=n?(t+=4,++r):t+=3}return t},Ne="undefined"!=typeof TextDecoder?new TextDecoder:void 0,De=(e=0,t=NaN)=>{var r=h,n=(e>>>=0)+t;for(t=e;r[t]&&!(t>=n);)++t;if(16<t-e&&r.buffer&&Ne)return Ne.decode(r.subarray(e,t));for(n="";e<t;){var a=r[e++];if(128&a){var o=63&r[e++];if(192==(224&a))n+=String.fromCharCode((31&a)<<6|o);else{var i=63&r[e++];65536>(a=224==(240&a)?(15&a)<<12|o<<6|i:(7&a)<<18|o<<12|i<<6|63&r[e++])?n+=String.fromCharCode(a):(a-=65536,n+=String.fromCharCode(55296|a>>10,56320|1023&a))}}else n+=String.fromCharCode(a)}return n},Oe="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0,_e=(e,t)=>{t=(e>>>=1)+t/2;for(var r=e;!(r>=t)&&m[r>>>0];)++r;if(16<r-e&&Oe)return Oe.decode(m.subarray(e>>>0,r>>>0));for(r="";!(e>=t);++e){var n=m[e>>>0];if(0==n)break;r+=String.fromCharCode(n)}return r},Ze=(e,t,r)=>{if(r??=2147483647,2>r)return 0;var n=t;r=(r-=2)<2*e.length?r/2:e.length;for(var a=0;a<r;++a)p[t>>>1>>>0]=e.charCodeAt(a),t+=2;return p[t>>>1>>>0]=0,t-n},Xe=e=>2*e.length,He=(e,t)=>{for(var r=0,n="";!(r>=t/4);){var a=v[e+4*r>>>2>>>0];if(0==a)break;++r,65536<=a?(a-=65536,n+=String.fromCharCode(55296|a>>10,56320|1023&a)):n+=String.fromCharCode(a)}return n},Le=(e,t,r)=>{if(t>>>=0,r??=2147483647,4>r)return 0;var n=t;r=n+r-4;for(var a=0;a<e.length;++a){var o=e.charCodeAt(a);if(55296<=o&&57343>=o&&(o=65536+((1023&o)<<10)|1023&e.charCodeAt(++a)),v[t>>>2>>>0]=o,(t+=4)+4>r)break}return v[t>>>2>>>0]=0,t-n},Ye=e=>{for(var t=0,r=0;r<e.length;++r){var n=e.charCodeAt(r);55296<=n&&57343>=n&&++r,t+=4}return t},Ge=0,qe=(e,t,r)=>{var n=[];return e=e.toWireType(n,r),n.length&&(w[t>>>2>>>0]=We(n)),e},Qe={},Je=e=>{var t=Qe[e];return void 0===t?R(e):t},et=[],tt=Reflect.construct,rt={},nt=e=>{if(!(e instanceof j||"unwind"==e))throw e},at=e=>{throw y=e,U||0<Ge||(o.onExit?.(e),P=!0),new j(e)},ot={},it=()=>{if(!je){var e,t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:c||"./this.program"};for(e in ot)void 0===ot[e]?delete t[e]:t[e]=ot[e];var r=[];for(e in t)r.push(`${e}=${t[e]}`);je=r}return je},ct=e=>{(ct=e=>crypto.getRandomValues(e))(e)},st=Array(256),ut=0;256>ut;++ut)st[ut]=String.fromCharCode(ut);K=st,(()=>{let e=G.prototype;Object.assign(e,{isAliasOf:function(e){if(!(this instanceof G&&e instanceof G))return!1;var t=this.V.Y.W,r=this.V.X;e.V=e.V;var n=e.V.Y.W;for(e=e.V.X;t.aa;)r=t.ka(r),t=t.aa;for(;n.aa;)e=n.ka(e),n=n.aa;return t===n&&r===e},clone:function(){if(this.V.X||X(this),this.V.ja)return this.V.count.value+=1,this;var e=Y,t=Object,r=t.create,n=Object.getPrototypeOf(this),a=this.V;return(e=e(r.call(t,n,{V:{value:{count:a.count,ia:a.ia,ja:a.ja,X:a.X,Y:a.Y,$:a.$,ba:a.ba}}}))).V.count.value+=1,e.V.ia=!1,e},delete(){if(this.V.X||X(this),this.V.ia&&!this.V.ja)throw new O("Object already scheduled for deletion");L(this);var e=this.V;--e.count.value,0===e.count.value&&(e.$?e.ba.fa(e.$):e.Y.W.fa(e.X)),this.V.ja||(this.V.$=void 0,this.V.X=void 0)},isDeleted:function(){return!this.V.X},deleteLater:function(){if(this.V.X||X(this),this.V.ia&&!this.V.ja)throw new O("Object already scheduled for deletion");return this.V.ia=!0,this}});const t=Symbol.dispose;t&&(e[t]=e.delete)})(),Object.assign(ye.prototype,{ua(e){return this.qa&&(e=this.qa(e)),e},pa(e){this.fa?.(e)},ca:8,readValueFromPointer:ce,fromWireType:function(e){function t(){return this.na?de(this.W.ea,{Y:this.wa,X:r,ba:this,$:e}):de(this.W.ea,{Y:this,X:e})}var r=this.ua(e);if(!r)return this.pa(e),null;var n=((e,t)=>{if(void 0===t)throw new O("ptr should not be undefined");for(;e.aa;)t=e.ka(t),e=e.aa;return ue[t]})(this.W,r);if(void 0!==n)return 0===n.V.count.value?(n.V.X=r,n.V.$=e,n.clone()):(n=n.clone(),this.pa(e),n);if(n=this.W.ta(r),!(n=Q[n]))return t.call(this);n=this.ma?n.ra:n.pointerType;var a=se(r,this.W,n.W);return null===a?t.call(this):this.na?de(n.W.ea,{Y:n,X:a,ba:this,$:e}):de(n.W.ea,{Y:n,X:a})}}),o.noExitRuntime&&(U=o.noExitRuntime),o.printErr&&(A=o.printErr),o.wasmBinary&&(l=o.wasmBinary),o.thisProgram&&(c=o.thisProgram);var lt={a:function(e,t,r){var n=new B(e>>>=0);throw w[n.X+16>>>2>>>0]=0,w[n.X+4>>>2>>>0]=t>>>0,w[n.X+8>>>2>>>0]=r>>>0,e},M:()=>V(""),x:function(e,t,r,n,a){e>>>=0,r>>>=0,t=R(t>>>0);let o=e=>e;if(n=0n===n){const e=8*r;o=t=>BigInt.asUintN(e,t),a=o(a)}_(e,{name:t,fromWireType:o,toWireType:(e,t)=>("number"==typeof t&&(t=BigInt(t)),t),ca:8,readValueFromPointer:Z(t,r,!n),da:null})},J:function(e,t,r,n){_(e>>>0,{name:t=R(t>>>0),fromWireType:function(e){return!!e},toWireType:function(e,t){return t?r:n},ca:8,readValueFromPointer:function(e){return this.fromWireType(h[e>>>0])},da:null})},e:function(e,t,r,n,a,o,i,c,s,u,l,d,y){e>>>=0,t>>>=0,r>>>=0,n>>>=0,o>>>=0,i>>>=0,c>>>=0,s>>>=0,u>>>=0,d>>>=0,y>>>=0,l=R(l>>>=0),o=we(a>>>0,o),c&&=we(i,c),u&&=we(s,u),y=we(d,y);var f=(e=>{var t=(e=e.replace(/[^a-zA-Z0-9_]/g,"$")).charCodeAt(0);return 48<=t&&57>=t?`_${e}`:e})(l);ee(f,(function(){be(`Cannot construct ${l} due to unbound types`,[n])})),Ce([e,t,r],n?[n]:[],(t=>{if(t=t[0],n)var r=t.W,a=r.ea;else a=G.prototype;t=q(l,(function(...e){if(Object.getPrototypeOf(this)!==i)throw new O(`Use 'new' to construct ${l}`);if(void 0===d.ha)throw new O(`${l} has no accessible constructor`);var t=d.ha[e.length];if(void 0===t)throw new O(`Tried to invoke ctor of ${l} with invalid number of parameters (${e.length}) - expected (${Object.keys(d.ha).toString()}) parameters instead!`);return t.apply(this,e)}));var i=Object.create(a,{constructor:{value:t}});t.prototype=i;var s,d=new te(l,t,i,y,r,o,c,u);return d.aa&&((s=d.aa).la??(s.la=[]),d.aa.la.push(d)),r=new ye(l,d,!0,!1,!1),s=new ye(l+"*",d,!1,!1,!1),a=new ye(l+" const*",d,!1,!0,!1),Q[e]={pointerType:s,ra:a},he(f,t),[r,s,a]}))},s:function(e,t,r,n,a,o,i){e>>>=0,t>>>=0,a>>>=0,o>>>=0,i>>>=0;var c=xe(r,n>>>0);t=R(t),t=Ie(t),o=we(a,o),Ce([],[e],(e=>{function n(){be(`Cannot call ${a} due to unbound types`,c)}var a=`${(e=e[0]).name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]);var s=e.W.constructor;return void 0===s[t]?(n.ga=r-1,s[t]=n):(J(s,t,a),s[t].Z[r-1]=n),Ce([],c,(n=>{if(n=Pe(a,[n[0],null].concat(n.slice(1)),null,o,i),void 0===s[t].Z?(n.ga=r-1,s[t]=n):s[t].Z[r-1]=n,e.W.la)for(const r of e.W.la)r.constructor.hasOwnProperty(t)||(r.constructor[t]=n);return[]})),[]}))},y:function(e,t,r,n,a,o,i,c){e>>>=0,r>>>=0,n>>>=0,o>>>=0,i>>>=0,c>>>=0,t=R(t>>>=0),o=we(a>>>0,o),Ce([],[e],(e=>{var a=`${(e=e[0]).name}.${t}`,s={get(){be(`Cannot access ${a} due to unbound types`,[r])},enumerable:!0,configurable:!0};return s.set=c?()=>{be(`Cannot access ${a} due to unbound types`,[r])}:()=>{throw new O(`${a} is a read-only property`)},Object.defineProperty(e.W.constructor,t,s),Ce([],[r],(r=>{r=r[0];var a={get:()=>r.fromWireType(o(n)),enumerable:!0};return c&&(c=we(i,c),a.set=e=>{var t=[];c(n,r.toWireType(t,e)),Ae(t)}),Object.defineProperty(e.W.constructor,t,a),[]})),[]}))},f:function(e,t,r,n,a,o){e>>>=0,n>>>=0,a>>>=0,o>>>=0;var i=xe(t,r>>>0);a=we(n,a),Ce([],[e],(e=>{var r=`constructor ${(e=e[0]).name}`;if(void 0===e.W.ha&&(e.W.ha=[]),void 0!==e.W.ha[t-1])throw new O(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${e.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return e.W.ha[t-1]=()=>{be(`Cannot construct ${e.name} due to unbound types`,i)},Ce([],i,(n=>(n.splice(1,0,null),e.W.ha[t-1]=Pe(r,n,null,a,o),[]))),[]}))},b:function(e,t,r,n,a,o,i,c){e>>>=0,t>>>=0,a>>>=0,o>>>=0,i>>>=0;var s=xe(r,n>>>0);t=R(t),t=Ie(t),o=we(a,o),Ce([],[e],(e=>{function n(){be(`Cannot call ${a} due to unbound types`,s)}var a=`${(e=e[0]).name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),c&&e.W.xa.push(t);var u=e.W.ea,l=u[t];return void 0===l||void 0===l.Z&&l.className!==e.name&&l.ga===r-2?(n.ga=r-2,n.className=e.name,u[t]=n):(J(u,t,a),u[t].Z[r-2]=n),Ce([],s,(n=>(n=Pe(a,n,e,o,i),void 0===u[t].Z?(n.ga=r-2,u[t]=n):u[t].Z[r-2]=n,[]))),[]}))},t:function(e,t,r,n,a,o,i,c,s,u){e>>>=0,r>>>=0,a>>>=0,o>>>=0,i>>>=0,c>>>=0,s>>>=0,u>>>=0,t=R(t>>>=0),a=we(n>>>0,a),Ce([],[e],(e=>{var n=`${(e=e[0]).name}.${t}`,l={get(){be(`Cannot access ${n} due to unbound types`,[r,i])},enumerable:!0,configurable:!0};return l.set=s?()=>be(`Cannot access ${n} due to unbound types`,[r,i]):()=>{throw new O(n+" is a read-only property")},Object.defineProperty(e.W.ea,t,l),Ce([],s?[r,i]:[r],(r=>{var i=r[0],l={get(){var t=Se(this,e,n+" getter");return i.fromWireType(a(o,t))},enumerable:!0};if(s){s=we(c,s);var d=r[1];l.set=function(t){var r=Se(this,e,n+" setter"),a=[];s(u,r,d.toWireType(a,t)),Ae(a)}}return Object.defineProperty(e.W.ea,t,l),[]})),[]}))},H:function(e){return _(e>>>0,ze)},v:function(e,t,r,n){function a(){}t=R(t>>>0),a.values={},_(e>>>0,{name:t,constructor:a,fromWireType:function(e){return this.constructor.values[e]},toWireType:(e,t)=>t.value,ca:8,readValueFromPointer:Fe(t,r>>>0,n),da:null}),ee(t,a)},p:function(e,t,r){t>>>=0;var n=Ue(e>>>0,"enum");t=R(t),e=n.constructor,n=Object.create(n.constructor.prototype,{value:{value:r},constructor:{value:q(`${n.name}_${t}`,(function(){}))}}),e.values[r]=n,e[t]=n},w:function(e,t,r){_(e>>>0,{name:t=R(t>>>0),fromWireType:e=>e,toWireType:(e,t)=>t,ca:8,readValueFromPointer:Be(t,r>>>0),da:null})},o:function(e,t,r,n,a,o){e>>>=0,n>>>=0,a>>>=0,o>>>=0;var i=xe(t,r>>>0);e=R(e),e=Ie(e),a=we(n,a),ee(e,(function(){be(`Cannot call ${e} due to unbound types`,i)}),t-1),Ce([],i,(r=>(he(e,Pe(e,[r[0],null].concat(r.slice(1)),null,a,o),t-1),[])))},r:function(e,t,r,n,a){e>>>=0,r>>>=0,t=R(t>>>0);let o=e=>e;if(0===n){var i=32-8*r;o=e=>e<<i>>>i,a=o(a)}_(e,{name:t,fromWireType:o,toWireType:(e,t)=>t,ca:8,readValueFromPointer:Z(t,r,0!==n),da:null})},k:function(e,t,r){function n(e){return new a(f.buffer,w[e+4>>>2>>>0],w[e>>>2>>>0])}var a=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][t];_(e>>>0,{name:r=R(r>>>0),fromWireType:n,ca:8,readValueFromPointer:n},{va:!0})},q:function(e){_(e>>>0,Ke)},I:function(e,t){_(e>>>0,{name:t=R(t>>>0),fromWireType:function(e){for(var t,r=w[e>>>2>>>0],n=e+4,a=n,o=0;o<=r;++o){var i=n+o;if(o==r||0==h[i>>>0]){var c=a;a=(c>>>=0)?De(c,i-a):"",void 0===t?t=a:(t+=String.fromCharCode(0),t+=a),a=i+1}}return mt(e),t},toWireType:function(e,t){t instanceof ArrayBuffer&&(t=new Uint8Array(t));var r="string"==typeof t;if(!(r||ArrayBuffer.isView(t)&&1==t.BYTES_PER_ELEMENT))throw new O("Cannot pass non-string to std::string");var n=r?ke(t):t.length,a=pt(4+n+1),o=a+4;return w[a>>>2>>>0]=n,r?Re(t,o,n+1):h.set(t,o>>>0),null!==e&&e.push(mt,a),a},ca:8,readValueFromPointer:ce,da(e){mt(e)}})},u:function(e,t,r){if(t>>>=0,r=R(r>>>=0),2===t)var n=_e,a=Ze,o=Xe,i=e=>m[e>>>1>>>0];else 4===t&&(n=He,a=Le,o=Ye,i=e=>w[e>>>2>>>0]);_(e>>>0,{name:r,fromWireType:e=>{for(var r,a=w[e>>>2>>>0],o=e+4,c=0;c<=a;++c){var s=e+4+c*t;c!=a&&0!=i(s)||(o=n(o,s-o),void 0===r?r=o:(r+=String.fromCharCode(0),r+=o),o=s+t)}return mt(e),r},toWireType:(e,n)=>{if("string"!=typeof n)throw new O(`Cannot pass non-string to C++ string type ${r}`);var i=o(n),c=pt(4+i+t);return w[c>>>2>>>0]=i/t,a(n,c+4,i+t),null!==e&&e.push(mt,c),c},ca:8,readValueFromPointer:ce,da(e){mt(e)}})},K:function(e,t){_(e>>>0,{Ba:!0,name:t=R(t>>>0),ca:0,fromWireType:()=>{},toWireType:()=>{}})},D:()=>{U=!1,Ge=0},h:function(e,t,r){return t>>>=0,r>>>=0,e=$e(e>>>0),t=Ue(t,"emval::as"),qe(t,r,e)},m:function(e,t,r,n,a){return r>>>=0,n>>>=0,a>>>=0,(e=et[e>>>0])(t=$e(t>>>0),t[r=Je(r)],n,a)},c:Me,l:function(e,t,r){var n=((e,t)=>{for(var r=Array(e),n=0;n<e;++n)r[n]=Ue(w[t+4*n>>>2>>>0],`parameter ${n}`);return r})(e,t>>>0),a=n.shift();e--;var o=Array(e);return t=`methodCaller<(${n.map((e=>e.name)).join(", ")}) => ${a.name}>`,(e=>{var t=et.length;return et.push(e),t})(q(t,((t,i,c,s)=>{for(var u=0,l=0;l<e;++l)o[l]=n[l].readValueFromPointer(s+u),u+=n[l].ca;return t=1===r?tt(i,o):i.apply(t,o),qe(a,c,t)})))},i:function(e,t){return t>>>=0,e=$e(e>>>0),t=$e(t),We(e[t])},n:function(e){9<(e>>>=0)&&(Ve[e+1]+=1)},F:function(){return We([])},j:function(e){return We(Je(e>>>0))},d:function(e){var t=$e(e>>>=0);Ae(t),Me(e)},g:function(e,t){return t>>>=0,e=(e=Ue(e>>>0,"_emval_take_value")).readValueFromPointer(t),We(e)},E:(e,t)=>{if(rt[e]&&(clearTimeout(rt[e].id),delete rt[e]),!t)return 0;var r=setTimeout((()=>{delete rt[e],(e=>{if(!P)try{if(e(),!(U||0<Ge))try{y=e=y,at(e)}catch(e){nt(e)}}catch(e){nt(e)}})((()=>ht(e,performance.now())))}),t);return rt[e]={id:r,Ca:t},0},A:function(e,t,r,n){r>>>=0,n>>>=0;var a=(new Date).getFullYear(),o=new Date(a,0,1).getTimezoneOffset();a=new Date(a,6,1).getTimezoneOffset(),w[e>>>0>>>2>>>0]=60*Math.max(o,a),v[t>>>0>>>2>>>0]=Number(o!=a),e=(t=e=>{var t=Math.abs(e);return`UTC${0<=e?"-":"+"}${String(Math.floor(t/60)).padStart(2,"0")}${String(t%60).padStart(2,"0")}`})(o),t=t(a),a<o?(Re(e,r,17),Re(t,n,17)):(Re(e,n,17),Re(t,r,17))},L:function(e){e>>>=0;var t=h.length;if(4294901760<e)return!1;for(var r=1;4>=r;r*=2){var n=t*(1+.2/r);n=Math.min(n,e+100663296);e:{n=(Math.min(4294901760,65536*Math.ceil(Math.max(e,n)/65536))-d.buffer.byteLength+65535)/65536|0;try{d.grow(n),x();var a=1;break e}catch(e){}a=void 0}if(a)return!0}return!1},B:function(e,t){e>>>=0,t>>>=0;var r,n=0,a=0;for(r of it()){var o=t+n;w[e+a>>>2>>>0]=o,n+=Re(r,o,1/0)+1,a+=4}return 0},G:function(e,t){e>>>=0,t>>>=0;var r=it();for(var n of(w[e>>>2>>>0]=r.length,e=0,r))e+=ke(n)+1;return w[t>>>2>>>0]=e,0},C:at,z:function(e,t){return e>>>=0,ct(h.subarray(e>>>0,e+(t>>>0)>>>0)),0}},dt=await async function(){function e(e){return dt=e.exports,dt=function(){var e=dt;e=Object.assign({},e);var t=e=>t=>e(t)>>>0;return e.Q=t(e.Q),e.S=t(e.S),e._emscripten_stack_alloc=t(e._emscripten_stack_alloc),e.emscripten_stack_get_current=(e=>()=>e()>>>0)(e.emscripten_stack_get_current),e}(),d=dt.N,x(),fe=dt.U,S--,o.monitorRunDependencies?.(S),0==S&&E&&(e=E,E=null,e()),dt}S++,o.monitorRunDependencies?.(S);var t={a:lt};if(o.instantiateWasm)return new Promise((r=>{o.instantiateWasm(t,((t,n)=>{r(e(t))}))}));I??=o.locateFile?o.locateFile?o.locateFile("seal_throws_wasm_cf_worker.wasm",u):u+"seal_throws_wasm_cf_worker.wasm":new URL("seal_throws_wasm_cf_worker.wasm",import.meta.url).href;try{var n=await async function(e){var t=I;if(!l&&"function"==typeof WebAssembly.instantiateStreaming)try{var r=fetch(t,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(r,e)}catch(e){A(`wasm streaming compile failed: ${e}`),A("falling back to ArrayBuffer instantiation")}return M(t,e)}(t);return e(n.instance)}catch(e){return r(e),Promise.reject(e)}}(),yt=o._main=dt.P,ft=dt.Q,ht=dt.R,pt=dt.S,mt=dt.T;if(o.preInit)for("function"==typeof o.preInit&&(o.preInit=[o.preInit]);0<o.preInit.length;)o.preInit.shift()();return function e(){function r(){if(o.calledRun=!0,!P){if(dt.O(),t(o),o.onRuntimeInitialized?.(),!o.noInitialRun)try{var e=yt(0,0);y=e,at(e)}catch(e){nt(e)}if(o.postRun)for("function"==typeof o.postRun&&(o.postRun=[o.postRun]);o.postRun.length;)e=o.postRun.shift(),W.push(e);$(W)}}if(0<S)E=e;else{if(o.preRun)for("function"==typeof o.preRun&&(o.preRun=[o.preRun]);o.preRun.length;)F();$(z),0<S?E=e:o.setStatus?(o.setStatus("Running..."),setTimeout((()=>{setTimeout((()=>o.setStatus("")),1),r()}),1)):r()}}(),i};const t="Unsupported vector type",r=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,PlainText:n,Vector:a})=>o=>{const i=e.BatchEncoder;let c;try{c=new i(o.instance)}catch(e){throw t.safe(e)}return{get instance(){return c},unsafeInject(e){c&&(c.delete(),c=void 0),c=e},delete(){c&&(c.delete(),c=void 0)},encode(e,r){try{if(e.constructor===Int32Array){if(r)return void c.encode(e,r.instance,"INT32");const t=n();return c.encode(e,t.instance,"INT32"),t}if(e.constructor===Uint32Array){if(r)return void c.encode(e,r.instance,"UINT32");const t=n();return c.encode(e,t.instance,"UINT32"),t}if(e.constructor===BigInt64Array){const t=e.toString().split(",");if(r)return void c.encode(t,r.instance,"INT64");const a=n();return c.encode(t,a.instance,"INT64"),a}if(e.constructor===BigUint64Array){const t=e.toString().split(",");if(r)return void c.encode(t,r.instance,"UINT64");const a=n();return c.encode(t,a.instance,"UINT64"),a}throw new Error("Unsupported array type! `array` must be of type Int32Array, Uint32Array, BigInt64Array, or BigUint64Array.")}catch(e){throw t.safe(e)}},decode(e,n=!0,o=r.global){try{if(n){const t=a(),r=c.decodeInt32(e.instance,o);t.unsafeInject(r),t.setType("Int32Array");const n=t.toArray();return t.delete(),n}const t=a(),r=c.decodeUint32(e.instance,o);t.unsafeInject(r),t.setType("Uint32Array");const i=t.toArray();return t.delete(),i}catch(e){throw t.safe(e)}},decodeBigInt(e,n=!0,a=r.global){try{if(n){const t=c.decodeBigInt(e.instance,!0,a);return BigInt64Array.from(t)}const t=c.decodeBigInt(e.instance,!1,a);return BigUint64Array.from(t)}catch(e){throw t.safe(e)}},get slotCount(){return c.slotCount()}}})(e.library),n=e=>({Exception:t,ComprModeType:r,ParmsIdType:a,MemoryPoolHandle:o,Vector:i})=>({context:c,parmsId:s,sizeCapacity:u,pool:l=o.global}={})=>{const d=e.Ciphertext;let y=function({context:e,parmsId:r,sizeCapacity:n,pool:a=o.global}={}){try{if(e||r||void 0!==n){if(e&&!r&&void 0===n)return new d(e.instance,a);if(e&&r&&void 0===n)return new d(e.instance,r.instance,a);if(e&&r&&void 0!==n)return new d(e.instance,r.instance,n,a);throw new Error("Must specify a (context), (context, parmsId), or (context, parmsId, sizeCapacity)")}return new d(a)}catch(e){throw t.safe(e)}}({context:c,parmsId:s,sizeCapacity:u,pool:l});return{get instance(){return y},unsafeInject(e){y&&(y.delete(),y=void 0),y=e},delete(){y&&(y.delete(),y=void 0)},reserve(e,r){try{return y.reserve(e.instance,r)}catch(e){throw t.safe(e)}},resize(e){try{return y.resize(e)}catch(e){throw t.safe(e)}},release(){y.release()},get coeffModulusSize(){return y.coeffModulusSize()},get polyModulusDegree(){return y.polyModulusDegree()},get size(){return y.size()},get sizeCapacity(){return y.sizeCapacity()},get isTransparent(){return y.isTransparent()},get isNttForm(){return y.isNttForm()},get parmsId(){const e=a();return e.inject(y.parmsId()),e},get scale(){return y.scale()},setScale(e){y.setScale(e)},get pool(){return y.pool()},save:(e=r.zstd)=>y.saveToString(e),saveArray(e=r.zstd){const t=i(),n=y.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const a=t.toArray();return t.delete(),a},load(e,r){try{y.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{y.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{y.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const c=y.clone(),s=n(e)({Exception:t,ComprModeType:r,ParmsIdType:a,MemoryPoolHandle:o,Vector:i})();return s.unsafeInject(c),s}catch(e){throw t.safe(e)}},move(e){try{y.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}}},a=({loader:e})=>{const t=e.library;return n(t)},o=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,PlainText:n,Vector:a})=>o=>{const i=e.CKKSEncoder;let c;try{c=new i(o.instance)}catch(e){throw t.safe(e)}return{get instance(){return c},unsafeInject(e){c&&(c.delete(),c=void 0),c=e},delete(){c&&(c.delete(),c=void 0)},encode(e,a,o,i=r.global){try{if(e.constructor===Float64Array){if(o)return void c.encode(e,a,o.instance,i);const t=n();return c.encode(e,a,t.instance,i),t}throw new Error("Unsupported array type! `array` must be of type Float64Array.")}catch(e){throw t.safe(e)}},decode(e,n=r.global){try{const t=a(),r=c.decodeDouble(e.instance,n);t.unsafeInject(r),t.setType("Float64Array");const o=t.toArray();return t.delete(),o}catch(e){throw t.safe(e)}},get slotCount(){return c.slotCount()}}})(e.library),i=({loader:e})=>(e=>({Exception:t,SecurityLevel:r,Vector:n})=>()=>{const a=e.CoeffModulus.MaxBitCount,o=e.CoeffModulus.BFVDefault,i=e.CoeffModulus.CreateFromArray;return{MaxBitCount:(e,t=r.tc128)=>a(e,t),BFVDefault(e,a=r.tc128){try{const t=n(),r=o(e,a);return t.unsafeInject(r),t.setType("Modulus"),t}catch(e){throw t.safe(e)}},Create(e,r){try{if(r.constructor!==Int32Array)throw new Error("Unsupported argument type! `bitSizes` must be an Int32Array");const t=n(),a=i(e,r);return t.unsafeInject(a),t.setType("Modulus"),t}catch(e){throw t.safe(e)}}}})(e.library),c=({loader:e})=>(e=>()=>()=>{const t=e.ComprModeType.none,r=e.ComprModeType.zlib,n=e.ComprModeType.zstd;return{get none(){return t},get zlib(){return r},get zstd(){return n}}})(e.library),s=({loader:e})=>(e=>({ParmsIdType:t,ContextData:r,SecurityLevel:n})=>(a,o=!0,i=n.tc128)=>{let c=new(0,e.SEALContext)(a.instance,o,i);return{get instance(){return c},unsafeInject(e){c&&(c.delete(),c=void 0),c=e},delete(){c&&(c.delete(),c=void 0)},toHuman:()=>c.toHuman(),getContextData(e){const t=c.getContextData(e.instance),n=r();return n.unsafeInject(t),n},get keyContextData(){const e=c.keyContextData(),t=r();return t.unsafeInject(e),t},get firstContextData(){const e=c.firstContextData(),t=r();return t.unsafeInject(e),t},get lastContextData(){const e=c.lastContextData(),t=r();return t.unsafeInject(e),t},parametersSet:()=>c.parametersSet(),get keyParmsId(){const e=c.keyParmsId(),r=t();return r.inject(e),r},get firstParmsId(){const e=c.firstParmsId(),r=t();return r.inject(e),r},get lastParmsId(){const e=c.lastParmsId(),r=t();return r.inject(e),r},get usingKeyswitching(){return c.usingKeyswitching()}}})(e.library),u=e=>({Exception:e,EncryptionParameters:t,ParmsIdType:r,EncryptionParameterQualifiers:n})=>()=>{let a;return{get instance(){return a},unsafeInject(e){a&&(a.delete(),a=void 0),a=e},delete(){a&&(a.delete(),a=void 0)},get parms(){const e=a.parms(),r=t();return r.unsafeInject(e),r},get parmsId(){const e=r();return e.inject(a.parmsId()),e},get qualifiers(){const e=n();return e.unsafeInject(a.qualifiers()),e},get totalCoeffModulusBitCount(){return a.totalCoeffModulusBitCount()},get prevContextData(){const o=u()({Exception:e,EncryptionParameters:t,ParmsIdType:r,EncryptionParameterQualifiers:n})();return o.unsafeInject(a.prevContextData()),o},get nextContextData(){const o=u()({Exception:e,EncryptionParameters:t,ParmsIdType:r,EncryptionParameterQualifiers:n})();return o.unsafeInject(a.nextContextData()),o},get chainIndex(){return a.chainIndex()}}},l=({loader:e})=>(e.library,u()),d=({loader:e})=>(e=>({Exception:t,PlainText:r})=>(n,a)=>{const o=e.Decryptor;let i;try{i=new o(n.instance,a.instance)}catch(e){throw t.safe(e)}return{get instance(){return i},unsafeInject(e){i&&(i.delete(),i=void 0),i=e},delete(){i&&(i.delete(),i=void 0)},decrypt(e,n){try{if(n)return void i.decrypt(e.instance,n.instance);const t=r();return i.decrypt(e.instance,t.instance),t}catch(e){throw t.safe(e)}},invariantNoiseBudget(e){try{return i.invariantNoiseBudget(e.instance)}catch(e){throw t.safe(e)}}}})(e.library),y=({loader:e})=>(e=>({Exception:t,ComprModeType:r,Modulus:n,SchemeType:a,ParmsIdType:o,Vector:i})=>(c=a.none)=>{let s=new(0,e.EncryptionParameters)(c);return{get instance(){return s},unsafeInject(e){s&&(s.delete(),s=void 0),s=e},delete(){s&&(s.delete(),s=void 0)},setPolyModulusDegree(e){try{s.setPolyModulusDegree(e)}catch(e){throw t.safe(e)}},setCoeffModulus(e){try{s.setCoeffModulus(e.instance)}catch(e){throw t.safe(e)}},setPlainModulus(e){try{s.setPlainModulus(e.instance)}catch(e){throw t.safe(e)}},get scheme(){return s.scheme()},get polyModulusDegree(){return s.polyModulusDegree()},get coeffModulus(){const e=i(),t=s.coeffModulus();e.unsafeInject(t),e.setType("Modulus");const r=e.toArray();return e.delete(),r},get plainModulus(){const e=s.plainModulus(),t=n(BigInt(0));return t.inject(e),t},get parmsId(){const e=o();return e.inject(s.parmsId()),e},save:(e=r.zstd)=>s.saveToString(e),saveArray(e=r.zstd){const t=i(),n=s.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const a=t.toArray();return t.delete(),a},load(e){try{s.loadFromString(e)}catch(e){throw t.safe(e)}},loadArray(e){try{s.loadFromArray(e)}catch(e){throw t.safe(e)}}}})(e.library),f=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,CipherText:n,Serializable:a})=>(o,i,c)=>{const s=e.Encryptor;let u=function(e,r,n){try{return n?new s(e.instance,r.instance,n.instance):new s(e.instance,r.instance)}catch(e){throw t.safe(e)}}(o,i,c);return{get instance(){return u},unsafeInject(e){u&&(u.delete(),u=void 0),u=e},delete(){u&&(u.delete(),u=void 0)},encrypt(e,a,o=r.global){try{if(a)return void u.encrypt(e.instance,a.instance,o);const t=n();return u.encrypt(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},encryptSerializable(e,n=r.global){try{const t=a(),r=u.encryptSerializable(e.instance,n);return t.unsafeInject(r),t}catch(e){throw t.safe(e)}},encryptSymmetric(e,a,o=r.global){try{if(a)return void u.encryptSymmetric(e.instance,a.instance,o);const t=n();return u.encryptSymmetric(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},encryptSymmetricSerializable(e,n=r.global){try{const t=a(),r=u.encryptSymmetricSerializable(e.instance,n);return t.unsafeInject(r),t}catch(e){throw t.safe(e)}},encryptZero(e,a=r.global){try{if(e)return void u.encryptZero(e.instance,a);const t=n();return u.encryptZero(t.instance,a),t}catch(e){throw t.safe(e)}},encryptZeroSerializable(e=r.global){try{const t=a(),r=u.encryptZeroSerializable(e);return t.unsafeInject(r),t}catch(e){throw t.safe(e)}}}})(e.library),h=({loader:e})=>(e=>({Exception:t,MemoryPoolHandle:r,CipherText:n,PlainText:a})=>o=>{const i=e.Evaluator;let c;try{c=new i(o.instance)}catch(e){throw t.safe(e)}return{get instance(){return c},unsafeInject(e){c&&(c.delete(),c=void 0),c=e},delete(){c&&(c.delete(),c=void 0)},negate(e,r){try{if(r)return void c.negate(e.instance,r.instance);const t=n();return c.negate(e.instance,t.instance),t}catch(e){throw t.safe(e)}},add(e,r,a){try{if(a)return void c.add(e.instance,r.instance,a.instance);const t=n();return c.add(e.instance,r.instance,t.instance),t}catch(e){throw t.safe(e)}},sub(e,r,a){try{if(a)return void c.sub(e.instance,r.instance,a.instance);const t=n();return c.sub(e.instance,r.instance,t.instance),t}catch(e){throw t.safe(e)}},multiply(e,a,o,i=r.global){try{if(o)return void c.multiply(e.instance,a.instance,o.instance,i);const t=n();return c.multiply(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},square(e,a,o=r.global){try{if(a)return void c.square(e.instance,a.instance,o);const t=n();return c.square(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},relinearize(e,a,o,i=r.global){try{if(o)return void c.relinearize(e.instance,a.instance,o.instance,i);const t=n();return c.relinearize(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},cipherModSwitchToNext(e,a,o=r.global){try{if(a)return void c.cipherModSwitchToNext(e.instance,a.instance,o);const t=n();return c.cipherModSwitchToNext(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},cipherModSwitchTo(e,a,o,i=r.global){try{if(o)return void c.cipherModSwitchTo(e.instance,a.instance,o.instance,i);const t=n();return c.cipherModSwitchTo(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},plainModSwitchToNext(e,r){try{if(r)return void c.plainModSwitchToNext(e.instance,r.instance);const t=a();return c.plainModSwitchToNext(e.instance,t.instance),t}catch(e){throw t.safe(e)}},plainModSwitchTo(e,r,n){try{if(n)return void c.plainModSwitchTo(e.instance,r.instance,n.instance);const t=a();return c.plainModSwitchTo(e.instance,r.instance,t.instance),t}catch(e){throw t.safe(e)}},rescaleToNext(e,a,o=r.global){try{if(a)return void c.rescaleToNext(e.instance,a.instance,o);const t=n();return c.rescaleToNext(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},rescaleTo(e,a,o,i=r.global){try{if(o)return void c.rescaleTo(e.instance,a.instance,o.instance,i);const t=n();return c.rescaleTo(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},modReduceToNext(e,a,o=r.global){try{if(a)return void c.modReduceToNext(e.instance,a.instance,o);const t=n();return c.modReduceToNext(e.instance,t.instance,o),t}catch(e){throw t.safe(e)}},modReduceTo(e,a,o,i=r.global){try{if(o)return void c.modReduceTo(e.instance,a.instance,o.instance,i);const t=n();return c.modReduceTo(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},exponentiate(e,a,o,i,s=r.global){try{if(i)return void c.exponentiate(e.instance,a,o.instance,i.instance,s);const t=n();return c.exponentiate(e.instance,a,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},addPlain(e,a,o,i=r.global){try{if(o)return void c.addPlain(e.instance,a.instance,o.instance,i);const t=n();return c.addPlain(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},subPlain(e,a,o,i=r.global){try{if(o)return void c.subPlain(e.instance,a.instance,o.instance,i);const t=n();return c.subPlain(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},multiplyPlain(e,a,o,i=r.global){try{if(o)return void c.multiplyPlain(e.instance,a.instance,o.instance,i);const t=n();return c.multiplyPlain(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},plainTransformToNtt(e,n,o,i=r.global){try{if(o)return void c.plainTransformToNtt(e.instance,n.instance,o.instance,i);const t=a();return c.plainTransformToNtt(e.instance,n.instance,t.instance,i),t}catch(e){throw t.safe(e)}},cipherTransformToNtt(e,r){try{if(r)return void c.cipherTransformToNtt(e.instance,r.instance);const t=n();return c.cipherTransformToNtt(e.instance,t.instance),t}catch(e){throw t.safe(e)}},cipherTransformFromNtt(e,r){try{if(r)return void c.cipherTransformFromNtt(e.instance,r.instance);const t=n();return c.cipherTransformFromNtt(e.instance,t.instance),t}catch(e){throw t.safe(e)}},applyGalois(e,a,o,i,s=r.global){try{if(i)return void c.applyGalois(e.instance,a,o.instance,i.instance,s);const t=n();return c.applyGalois(e.instance,a,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},rotateRows(e,a,o,i,s=r.global){try{if(i)return void c.rotateRows(e.instance,a,o.instance,i.instance,s);const t=n();return c.rotateRows(e.instance,a,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},rotateColumns(e,a,o,i=r.global){try{if(o)return void c.rotateColumns(e.instance,a.instance,o.instance,i);const t=n();return c.rotateColumns(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},rotateVector(e,a,o,i,s=r.global){try{if(i)return void c.rotateVector(e.instance,a,o.instance,i.instance,s);const t=n();return c.rotateVector(e.instance,a,o.instance,t.instance,s),t}catch(e){throw t.safe(e)}},complexConjugate(e,a,o,i=r.global){try{if(o)return void c.complexConjugate(e.instance,a.instance,o.instance,i);const t=n();return c.complexConjugate(e.instance,a.instance,t.instance,i),t}catch(e){throw t.safe(e)}},sumElements(e,a,o,i,s=r.global){try{if(i)return void c.sumElements(e.instance,a.instance,o,i.instance,s);const t=n();return c.sumElements(e.instance,a.instance,o,t.instance,s),t}catch(e){throw t.safe(e)}},dotProduct(e,a,o,i,s,u,l=r.global){try{if(u)return c.multiply(e.instance,a.instance,u.instance,l),c.relinearize(u.instance,o.instance,u.instance,l),void c.sumElements(u.instance,i.instance,s,u.instance,l);const t=n();return c.multiply(e.instance,a.instance,t.instance,l),c.relinearize(t.instance,o.instance,t.instance,l),c.sumElements(t.instance,i.instance,s,t.instance,l),t}catch(e){throw t.safe(e)}},dotProductPlain(e,a,o,i,s,u=r.global){try{if(s)return c.multiplyPlain(e.instance,a.instance,s.instance,u),void c.sumElements(s.instance,o.instance,i,s.instance,u);const t=n();return c.multiplyPlain(e.instance,a.instance,t.instance,u),c.sumElements(t.instance,o.instance,i,t.instance,u),t}catch(e){throw t.safe(e)}}}})(e.library),p=({loader:e})=>(e=>()=>()=>{const t=e.getException;return{safe:e=>"number"==typeof e?new Error(t(e)):e instanceof Error?e:new Error(e||"Unknown Error!")}})(e.library),m=e=>({Exception:t,ComprModeType:r,Vector:n})=>()=>{const a=e.GaloisKeys;let o=new a;return{get instance(){return o},inject(e){o&&(o.delete(),o=void 0),o=new a(e),e.delete()},delete(){o&&(o.delete(),o=void 0)},get size(){return o.size()},getIndex(e){try{return o.getIndex(e)}catch(e){throw t.safe(e)}},hasKey(e){try{return o.hasKey(e)}catch(e){throw t.safe(e)}},save(e=r.zstd){try{return o.saveToString(e)}catch(e){throw t.safe(e)}},saveArray(e=r.zstd){const t=n(),a=o.saveToArray(e);t.unsafeInject(a),t.setType("Uint8Array");const i=t.toArray();return t.delete(),i},load(e,r){try{o.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{o.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{o.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const a=o.clone(),i=m(e)({Exception:t,ComprModeType:r,Vector:n})();return i.inject(a),i}catch(e){throw t.safe(e)}},move(e){try{o.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}}},v=({loader:e})=>{const t=e.library;return m(t)},w=({loader:e})=>(e=>({Exception:t,PublicKey:r,SecretKey:n,RelinKeys:a,GaloisKeys:o,Serializable:i})=>(c,s)=>{const u=e.KeyGenerator;let l=function(e,r){try{return r?new u(e.instance,r.instance):new u(e.instance)}catch(e){throw t.safe(e)}}(c,s);return{get instance(){return l},unsafeInject(e){l&&(l.delete(),l=void 0),l=e},delete(){l&&(l.delete(),l=void 0)},secretKey(){try{const e=n(),t=l.secretKey();return e.inject(t),e}catch(e){throw t.safe(e)}},createPublicKey(){try{const e=r();return l.createPublicKey(e.instance),e}catch(e){throw t.safe(e)}},createPublicKeySerializable(){try{const e=i(),t=l.createPublicKeySerializable();return e.unsafeInject(t),e}catch(e){throw t.safe(e)}},createRelinKeys(){try{const e=a();return l.createRelinKeys(e.instance),e}catch(e){throw t.safe(e)}},createRelinKeysSerializable(){try{const e=i(),t=l.createRelinKeysSerializable();return e.unsafeInject(t),e}catch(e){throw t.safe(e)}},createGaloisKeys(e=Int32Array.from([])){try{const t=o();return l.createGaloisKeys(e,t.instance),t}catch(e){throw t.safe(e)}},createGaloisKeysSerializable(e=Int32Array.from([])){try{const t=i(),r=l.createGaloisKeysSerializable(e);return t.unsafeInject(r),t}catch(e){throw t.safe(e)}}}})(e.library),g=({loader:e})=>(e=>()=>()=>{const t=e.MemoryPoolHandle.MemoryPoolHandleGlobal,r=e.MemoryPoolHandle.MemoryPoolHandleThreadLocal;return{get global(){return t()},get threadLocal(){return r()}}})(e.library),T=({loader:e})=>(e=>({Exception:t,ComprModeType:r,Vector:n})=>a=>{const o=e.Modulus;let i=function(e){try{const t=new o;return t.setValue(e.toString()),t}catch(e){throw t.safe(e)}}(a);return{get instance(){return i},inject(e){i&&(i.delete(),i=void 0),i=new o(e),e.delete()},delete(){i&&(i.delete(),i=void 0)},setValue(e){try{i.setValue(e.toString())}catch(e){throw t.safe(e)}},get value(){return BigInt(i.value())},get bitCount(){return i.bitCount()},get isZero(){return i.isZero()},get isPrime(){return i.isPrime()},save:(e=r.zstd)=>i.saveToString(e),saveArray(e=r.zstd){const t=n(),a=i.saveToArray(e);t.unsafeInject(a),t.setType("Uint8Array");const o=t.toArray();return t.delete(),o},load(e){try{i.loadFromString(e)}catch(e){throw t.safe(e)}},loadArray(e){try{i.loadFromArray(e)}catch(e){throw t.safe(e)}}}})(e.library),b=({loader:e})=>(e=>({Exception:t})=>()=>{const r=e.ParmsIdType;let n;return{get instance(){return n},inject(e){n&&(n.delete(),n=void 0),n=new r(e),e.delete()},delete(){n&&(n.delete(),n=void 0)},get values(){try{const e=n.values();return BigUint64Array.from(e)}catch(e){throw t.safe(e)}}}})(e.library),C=({loader:e})=>(e=>({Exception:t,Modulus:r,Vector:n})=>()=>{const a=e.PlainModulus.Batching,o=e.PlainModulus.BatchingVector;return{Batching(e,n){try{const t=r(BigInt(0));return t.inject(a(e,n)),t}catch(e){throw t.safe(e)}},BatchingVector(e,r){try{const t=n();t.from(r);const a=o(e,t.instance);return t.delete(),a}catch(e){throw t.safe(e)}}}})(e.library),A=e=>({Exception:t,ComprModeType:r,ParmsIdType:n,MemoryPoolHandle:a,Vector:o})=>({capacity:i,coeffCount:c,pool:s=a.global}={})=>{const u=e.Plaintext;let l=function({capacity:e,coeffCount:r,pool:n=a.global}={}){try{if(void 0===e&&void 0===r)return new u(n);if(void 0===e&&void 0!==r)return new u(r,n);if(void 0!==e&&void 0!==r)return new u(e,r,n);throw new Error("Must specify a (coeffCount), (coeffCount, capacity)")}catch(e){throw t.safe(e)}}({capacity:i,coeffCount:c,pool:s});return{get instance(){return l},unsafeInject(e){l&&(l.delete(),l=void 0),l=e},delete(){l&&(l.delete(),l=void 0)},reserve(e){try{return l.reserve(e)}catch(e){throw t.safe(e)}},shrinkToFit(){l.shrinkToFit()},release(){l.release()},resize(e){try{l.resize(e)}catch(e){throw t.safe(e)}},setZero(){l.setZero()},get isZero(){return l.isZero()},get capacity(){return l.capacity()},get coeffCount(){return l.coeffCount()},get significantCoeffCount(){return l.significantCoeffCount()},get nonzeroCoeffCount(){return l.nonzeroCoeffCount()},toPolynomial(){try{return l.toPolynomial()}catch(e){throw t.safe(e)}},get isNttForm(){return l.isNttForm()},get parmsId(){const e=n();return e.inject(l.parmsId()),e},get scale(){return l.scale()},setScale(e){l.setScale(e)},get pool(){return l.pool()},save:(e=r.zstd)=>l.saveToString(e),saveArray(e=r.zstd){const t=o(),n=l.saveToArray(e);t.unsafeInject(n),t.setType("Uint8Array");const a=t.toArray();return t.delete(),a},load(e,r){try{l.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{l.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{l.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const i=l.clone(),c=A(e)({Exception:t,ComprModeType:r,ParmsIdType:n,MemoryPoolHandle:a,Vector:o})();return c.unsafeInject(i),c}catch(e){throw t.safe(e)}},move(e){try{l.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}}},P=({loader:e})=>{const t=e.library;return A(t)},x=e=>({Exception:t,ComprModeType:r,Vector:n})=>()=>{const a=e.PublicKey;let o=new a;return{get instance(){return o},inject(e){o&&(o.delete(),o=void 0),o=new a(e),e.delete()},delete(){o&&(o.delete(),o=void 0)},save(e=r.zstd){try{return o.saveToString(e)}catch(e){throw t.safe(e)}},saveArray(e=r.zstd){const t=n(),a=o.saveToArray(e);t.unsafeInject(a),t.setType("Uint8Array");const i=t.toArray();return t.delete(),i},load(e,r){try{o.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{o.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{o.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const a=o.clone(),i=x(e)({Exception:t,ComprModeType:r,Vector:n})();return i.inject(a),i}catch(e){throw t.safe(e)}},move(e){try{o.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}}},I=({loader:e})=>{const t=e.library;return x(t)},S=e=>({Exception:t,ComprModeType:r,Vector:n})=>()=>{const a=e.RelinKeys;let o=new a;return{get instance(){return o},inject(e){o&&(o.delete(),o=void 0),o=new a(e),e.delete()},delete(){o&&(o.delete(),o=void 0)},get size(){return o.size()},getIndex(e){try{return o.getIndex(e)}catch(e){throw t.safe(e)}},hasKey(e){try{return o.hasKey(e)}catch(e){throw t.safe(e)}},save(e=r.zstd){try{return o.saveToString(e)}catch(e){throw t.safe(e)}},saveArray(e=r.zstd){const t=n(),a=o.saveToArray(e);t.unsafeInject(a),t.setType("Uint8Array");const i=t.toArray();return t.delete(),i},load(e,r){try{o.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{o.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{o.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const a=o.clone(),i=S(e)({Exception:t,ComprModeType:r,Vector:n})();return i.inject(a),i}catch(e){throw t.safe(e)}},move(e){try{o.move(e.instance),e.delete()}catch(e){throw t.safe(e)}}}},E=({loader:e})=>{const t=e.library;return S(t)},V=({loader:e})=>(e=>()=>()=>{const t=e.SchemeType.none,r=e.SchemeType.bfv,n=e.SchemeType.ckks,a=e.SchemeType.bgv;return{get none(){return t},get bfv(){return r},get ckks(){return n},get bgv(){return a}}})(e.library);const M=e=>({Exception:t,ComprModeType:r,Vector:n})=>()=>{const a=e.SecretKey;let o=new a;return{get instance(){return o},inject(e){o&&(o.delete(),o=void 0),o=new a(e),e.delete()},delete(){o&&(o.delete(),o=void 0)},save(e=r.zstd){try{return o.saveToString(e)}catch(e){throw t.safe(e)}},saveArray(e=r.zstd){const t=n(),a=o.saveToArray(e);t.unsafeInject(a),t.setType("Uint8Array");const i=t.toArray();return t.delete(),i},load(e,r){try{o.loadFromString(e.instance,r)}catch(e){throw t.safe(e)}},loadArray(e,r){try{o.loadFromArray(e.instance,r)}catch(e){throw t.safe(e)}},copy(e){try{o.copy(e.instance)}catch(e){throw t.safe(e)}},clone(){try{const a=o.clone(),i=M(e)({Exception:t,ComprModeType:r,V