numpy-ts 0.10.0 → 0.12.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.
@@ -1,4 +1,4 @@
1
- "use strict";var kt=Object.defineProperty;var tm=Object.getOwnPropertyDescriptor;var em=Object.getOwnPropertyNames;var nm=Object.prototype.hasOwnProperty;var k=(r,t)=>()=>(r&&(t=r(r=0)),t);var Ct=(r,t)=>{for(var e in t)kt(r,e,{get:t[e],enumerable:!0})},om=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of em(t))!nm.call(r,o)&&o!==e&&kt(r,o,{get:()=>t[o],enumerable:!(n=tm(t,o))||n.enumerable});return r};var Ft=r=>om(kt({},"__esModule",{value:!0}),r);function gn(r){if(!r.includes(":")){if(r.includes("."))throw new Error(`Invalid slice index: "${r}" (must be integer)`);let a=parseInt(r,10);if(isNaN(a))throw new Error(`Invalid slice index: "${r}"`);return{start:a,stop:null,step:1,isIndex:!0}}let t=r.split(":");if(t.length>3)throw new Error(`Invalid slice notation: "${r}" (too many colons)`);let e=t[0]===""?null:parseInt(t[0],10),n=t[1]===""||t[1]===void 0?null:parseInt(t[1],10),o=t[2]===""||t[2]===void 0?1:parseInt(t[2],10);if(e!==null&&isNaN(e))throw new Error(`Invalid start index in slice: "${r}"`);if(n!==null&&isNaN(n))throw new Error(`Invalid stop index in slice: "${r}"`);if(isNaN(o))throw new Error(`Invalid step in slice: "${r}"`);if(o===0)throw new Error("Slice step cannot be zero");return{start:e,stop:n,step:o,isIndex:!1}}function bn(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let i=e<0?t+e:e;if(i<0||i>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:i,stop:i+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var An=k(()=>{"use strict"});function T(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function Xr(r){switch(r){case"float64":case"int64":case"uint64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function Sn(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function hn(r){return r==="float64"||r==="float32"}function w(r){return r==="int64"||r==="uint64"}function C(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(hn(r)||hn(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),i=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,u=i(r),s=i(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&u===s){if(u===8)return"int16";if(u===16)return"int32";if(u===32)return"int64"}if(o&&n&&u===s){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(e&&n||o&&a){let c=Math.max(u,s);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?u>s?r:s===8?"int16":s===16?"int32":s===32?"int64":"float64":o&&n?s>u?t:u===8?"int16":u===16?"int32":u===32?"int64":"float64":"float64"}var R,W=k(()=>{"use strict";R="float64"});function H(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var S,L=k(()=>{"use strict";W();S=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length;if(o===0)return this._data[this._offset];let a=t,i=this._offset;for(let u=0;u<o;u++){let s=1;for(let l=u+1;l<o;l++)s*=e[l];let c=Math.floor(a/s);a=a%s,i+=c*n[u]}return this._data[i]}iset(t,e){let n=this._shape,o=this._strides,a=n.length;if(a===0){this._data[this._offset]=e;return}let i=t,u=this._offset;for(let s=0;s<a;s++){let c=1;for(let m=s+1;m<a;m++)c*=n[m];let l=Math.floor(i/c);i=i%c,u+=l*o[s]}this._data[u]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=T(e);if(!o)throw new Error(`Cannot copy array with dtype ${e}`);let a=new o(n);if(this.isCContiguous&&this._offset===0)if(w(e)){let i=this._data,u=a;for(let s=0;s<n;s++)u[s]=i[s]}else a.set(this._data);else if(w(e)){let i=a;for(let u=0;u<n;u++)i[u]=this.iget(u)}else for(let i=0;i<n;i++)a[i]=this.iget(i);return new r(a,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let i=o??r._computeStrides(e),u=a??0;return new r(t,e,i,u,n)}static zeros(t,e=R){let n=t.reduce((i,u)=>i*u,1),o=T(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return new r(a,t,r._computeStrides(t),0,e)}static ones(t,e=R){let n=t.reduce((i,u)=>i*u,1),o=T(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n);return w(e)?a.fill(BigInt(1)):a.fill(1),new r(a,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}}});function or(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let i=a.length-t+n,u=i<0?1:a[i];if(u!==1){if(o===1)o=u;else if(o!==u)return null}}e[n]=o}return e}function am(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let u=o-n+i,s=r[i],c=e[u];if(s===c)a[u]=t[i];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function ar(r,t){let e=am(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function Vt(...r){let t=or(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}var Qr=k(()=>{"use strict";L()});function pr(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let i=0;i<o;i++){let u=i<o-e?1:r[i-(o-e)],s=i<o-n?1:t[i-(o-n)];if(u===s)a[i]=u;else if(u===1)a[i]=s;else if(s===1)a[i]=u;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function sm(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let u=o-n+i,s=r[i],c=e[u];if(s===c)a[u]=t[i];else if(s===1)a[u]=0;else throw new Error("Invalid broadcast")}return a}function Kr(r,t){let e=sm(r.shape,r.strides,t);return S.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function P(r,t,e,n){let o=pr(r.shape,t.shape),a=Kr(r,o),i=Kr(t,o),u=C(r.dtype,t.dtype),s=S.zeros(o,u),c=s.data,l=s.size;if(w(u)){let m=c;for(let f=0;f<l;f++){let p=a.iget(f),y=i.iget(f),d=typeof p=="bigint"?p:BigInt(Math.round(p)),g=typeof y=="bigint"?y:BigInt(Math.round(y));n==="add"?m[f]=d+g:n==="subtract"?m[f]=d-g:n==="multiply"?m[f]=d*g:n==="divide"?m[f]=d/g:m[f]=BigInt(Math.round(e(Number(d),Number(g))))}}else{let m=w(r.dtype)||w(t.dtype);for(let f=0;f<l;f++){let p=a.iget(f),y=i.iget(f),d=Number(p),g=Number(y);c[f]=e(d,g)}}return s}function Q(r,t,e){let n=pr(r.shape,t.shape),o=Kr(r,n),a=Kr(t,n),i=n.reduce((c,l)=>c*l,1),u=new Uint8Array(i),s=w(r.dtype)||w(t.dtype);for(let c=0;c<i;c++){let l=o.iget(c),m=a.iget(c),f=Number(l),p=Number(m);u[c]=e(f,p)?1:0}return S.fromData(u,n,"bool")}function V(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,u=e?n:n!=="float32"&&n!=="float64"?"float64":n,s=S.zeros(o,u),c=s.data,l=r.data;if(w(n))if(w(u)){let m=c;for(let f=0;f<a;f++){let p=Number(l[f]);m[f]=BigInt(Math.round(t(p)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return s}var lr=k(()=>{"use strict";L();W()});function Pt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Nn(r,t){return typeof t=="number"?lm(r,t):Pt(r,t)?im(r,t):P(r,t,(e,n)=>e+n,"add")}function im(r,t){let e=C(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;if(!w(r.dtype)||!w(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m+f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]+m[f]}}else if(w(r.dtype)||w(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l+m}else for(let c=0;c<o;c++)u[c]=a[c]+i[c];return n}function Dn(r,t){return typeof t=="number"?fm(r,t):Pt(r,t)?um(r,t):P(r,t,(e,n)=>e-n,"subtract")}function um(r,t){let e=C(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;if(!w(r.dtype)||!w(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m-f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]-m[f]}}else if(w(r.dtype)||w(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l-m}else for(let c=0;c<o;c++)u[c]=a[c]-i[c];return n}function xn(r,t){return typeof t=="number"?mm(r,t):Pt(r,t)?cm(r,t):P(r,t,(e,n)=>e*n,"multiply")}function cm(r,t){let e=C(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;if(!w(r.dtype)||!w(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m*f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]*m[f]}}else if(w(r.dtype)||w(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];u[c]=l*m}else for(let c=0;c<o;c++)u[c]=a[c]*i[c];return n}function wn(r,t){if(typeof t=="number")return pm(r,t);let e=r.dtype==="float64",n=t.dtype==="float64",o=r.dtype==="float32",a=t.dtype==="float32";if(e||n){let s=e?r:Dr(r,"float64"),c=n?t:Dr(t,"float64");return P(s,c,(l,m)=>l/m,"divide")}if(o||a){let s=o?r:Dr(r,"float32"),c=a?t:Dr(t,"float32");return P(s,c,(l,m)=>l/m,"divide")}let i=Dr(r,"float64"),u=Dr(t,"float64");return P(i,u,(s,c)=>s/c,"divide")}function Dr(r,t){let e=S.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let i=0;i<n;i++)a[i]=Number(o[i]);return e}function lm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]+l}else for(let s=0;s<a;s++)u[s]=Number(o[s])+t;return i}function fm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]-l}else for(let s=0;s<a;s++)u[s]=Number(o[s])-t;return i}function mm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]*l}else for(let s=0;s<a;s++)u[s]=Number(o[s])*t;return i}function pm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,u=e!=="float32"&&e!=="float64"?"float64":e,s=S.zeros(n,u),c=s.data;if(w(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return s}function zn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++){let l=u[c];s[c]=l<0n?-l:l}}else for(let u=0;u<o;u++)i[u]=Math.abs(Number(n[u]));return a}function In(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=-u[c]}else for(let u=0;u<o;u++)i[u]=-Number(n[u]);return a}function _n(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++){let l=u[c];s[c]=l>0n?1n:l<0n?-1n:0n}}else for(let u=0;u<o;u++){let s=Number(n[u]);i[u]=s>0?1:s<0?-1:0}return a}function rt(r,t){return typeof t=="number"?ym(r,t):P(r,t,(e,n)=>(e%n+n)%n,"mod")}function ym(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let f=s[m];c[m]=(f%l+l)%l}}else for(let s=0;s<a;s++){let c=Number(o[s]);u[s]=(c%t+t)%t}return i}function qt(r,t){return typeof t=="number"?dm(r,t):P(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function dm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]/l}else for(let s=0;s<a;s++)u[s]=Math.floor(Number(o[s])/t);return i}function Bn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;for(let u=0;u<o;u++)i[u]=n[u];return a}function vn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,u=S.zeros(e,i),s=u.data;if(w(t))for(let c=0;c<o;c++)s[c]=1/Number(n[c]);else for(let c=0;c<o;c++)s[c]=1/Number(n[c]);return u}function En(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,u=S.zeros(e,i),s=u.data;for(let c=0;c<o;c++)s[c]=Math.cbrt(Number(n[c]));return u}function On(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.abs(Number(n[s]));return i}function Mn(r,t){let e=qt(r,t),n=rt(r,t);return[e,n]}function Tn(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=u[c]*u[c]}else for(let u=0;u<o;u++){let s=Number(n[u]);i[u]=s*s}return a}function Un(r,t){return rt(r,t)}function $n(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=S.zeros(n,a),u=i.data;if(typeof t=="number")for(let s=0;s<o;s++){let c=Number(r.data[s]);c<0?u[s]=0:c===0?u[s]=t:u[s]=1}else{let s=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?u[l]=0:m===0?u[l]=Number(s[l]):u[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),f=l%t.size;m<0?u[l]=0:m===0?u[l]=Number(s[f]):u[l]=1}}return i}function kn(r,t){if(typeof t=="number"){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;for(let i=0;i<a;i++)n[i]=Math.pow(Number(o[i]),t);return e}return P(r,t,(e,n)=>Math.pow(e,n),"float_power")}function Cn(r,t){if(typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let i=Number(n[a]);n[a]=i-Math.trunc(i/t)*t}return e}return P(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function Fn(r){let t=S.zeros(Array.from(r.shape),"float64"),e=S.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.data,i=r.size;for(let u=0;u<i;u++){let s=Number(a[u]);if(s===0||!isFinite(s))n[u]=s,o[u]=0;else{let c=Math.floor(Math.log2(Math.abs(s)))+1,l=s/Math.pow(2,c);n[u]=l,o[u]=c}}return[t,e]}function Vn(r,t){let e=(s,c)=>{for(s=Math.abs(Math.trunc(s)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=s%c,s=l}return s};if(typeof t=="number"){let s=S.zeros(Array.from(r.shape),"int32"),c=s.data,l=r.data,m=r.size,f=Math.abs(Math.trunc(t));for(let p=0;p<m;p++)c[p]=e(Number(l[p]),f);return s}let n=P(r,t,e,"gcd"),o=S.zeros(Array.from(n.shape),"int32"),a=o.data,i=n.data,u=n.size;for(let s=0;s<u;s++)a[s]=Math.round(Number(i[s]));return o}function Pn(r,t){let e=(c,l)=>{for(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l));l!==0;){let m=l;l=c%l,c=m}return c},n=(c,l)=>(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l)),c===0||l===0?0:c*l/e(c,l));if(typeof t=="number"){let c=S.zeros(Array.from(r.shape),"int32"),l=c.data,m=r.data,f=r.size,p=Math.abs(Math.trunc(t));for(let y=0;y<f;y++)l[y]=n(Number(m[y]),p);return c}let o=P(r,t,n,"lcm"),a=S.zeros(Array.from(o.shape),"int32"),i=a.data,u=o.data,s=o.size;for(let c=0;c<s;c++)i[c]=Math.round(Number(u[c]));return a}function qn(r,t){if(typeof t=="number"){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,i=Math.pow(2,t);for(let u=0;u<a;u++)n[u]=Number(o[u])*i;return e}return P(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function jn(r){let t=S.zeros(Array.from(r.shape),"float64"),e=S.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.data,i=r.size;for(let u=0;u<i;u++){let s=Number(a[u]),c=Math.trunc(s);o[u]=c,n[u]=s-c}return[t,e]}var Rn=k(()=>{"use strict";L();W();lr()});function Ln(r,t){return typeof t=="number"?bm(r,t):Q(r,t,(e,n)=>e>n)}function Wn(r,t){return typeof t=="number"?Am(r,t):Q(r,t,(e,n)=>e>=n)}function Gn(r,t){return typeof t=="number"?hm(r,t):Q(r,t,(e,n)=>e<n)}function Zn(r,t){return typeof t=="number"?Sm(r,t):Q(r,t,(e,n)=>e<=n)}function Hn(r,t){return typeof t=="number"?Nm(r,t):Q(r,t,(e,n)=>e===n)}function Yn(r,t){return typeof t=="number"?Dm(r,t):Q(r,t,(e,n)=>e!==n)}function jt(r,t,e=1e-5,n=1e-8){return typeof t=="number"?xm(r,t,e,n):Q(r,t,(o,a)=>{let i=Math.abs(o-a),u=n+e*Math.abs(a);return i<=u})}function Jn(r,t,e=1e-5,n=1e-8){let o=jt(r,t,e,n),a=o.data;for(let i=0;i<o.size;i++)if(a[i]===0)return!1;return!0}function Xn(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=or(e);if(n===null)return!1;let o=ar(r,n),a=ar(t,n),i=n.length,u=n.reduce((l,m)=>l*m,1),s=w(o.dtype),c=w(a.dtype);for(let l=0;l<u;l++){let m=l,f=new Array(i);for(let d=i-1;d>=0;d--)f[d]=m%n[d],m=Math.floor(m/n[d]);let p=o.get(...f),y=a.get(...f);if(s||c){let d=typeof p=="bigint"?p:BigInt(Number(p)),g=typeof y=="bigint"?y:BigInt(Number(y));if(d!==g)return!1}else if(p!==y)return!1}return!0}function bm(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function Am(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function hm(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function Sm(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function Nm(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(w(o)){let a=BigInt(Math.round(t)),i=n;for(let u=0;u<r.size;u++)e[u]=i[u]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function Dm(r,t){let e=new Uint8Array(r.size),n=r.data;for(let o=0;o<r.size;o++)e[o]=n[o]!==t?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function xm(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,i=r.dtype;if(w(i)){let u=a;for(let s=0;s<r.size;s++){let c=Number(u[s]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[s]=l<=m?1:0}}else for(let u=0;u<r.size;u++){let s=Number(a[u]),c=Math.abs(s-t),l=n+e*Math.abs(t);o[u]=c<=l?1:0}return S.fromData(o,Array.from(r.shape),"bool")}var Qn=k(()=>{"use strict";L();W();lr();Qr()});function O(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function M(r,t,e,n){let o=n.length,a=new Array(o),i=Array.from(n).filter((s,c)=>c!==t),u=r;for(let s=i.length-1;s>=0;s--)a[s>=t?s+1:s]=u%i[s],u=Math.floor(u/i[s]);return a[t]=e,a}var Rt=k(()=>{"use strict"});function Or(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0)if(w(n)){let y=u,d=BigInt(0);for(let g=0;g<i;g++)d+=y[g];return Number(d)}else{let y=0;for(let d=0;d<i;d++)y+=Number(u[d]);return y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return Or(r);let l=S.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(w(n)){let y=u,d=m;for(let g=0;g<p;g++){let h=BigInt(0);for(let A=0;A<f;A++){let b=M(g,s,A,o),N=O(b,o);h+=y[N]}d[g]=h}}else for(let y=0;y<p;y++){let d=0;for(let g=0;g<f;g++){let h=M(y,s,g,o),A=O(h,o);d+=Number(u[A])}m[y]=d}if(e){let y=[...o];return y[s]=1,S.fromData(m,y,n)}return l}function tt(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0)return Or(r)/r.size;let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let i=Or(r,t,e);if(typeof i=="number")return i/o[a];let u=o[a],s=n;(w(n)||n.startsWith("int")||n.startsWith("uint"))&&(s="float64");let c=S.zeros(Array.from(i.shape),s),l=c.data,m=i.data;if(w(n)){let f=m;for(let p=0;p<l.length;p++)l[p]=Number(f[p])/u}else for(let f=0;f<l.length;f++)l[f]=Number(m[f])/u;return c}function et(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0){if(i===0)throw new Error("max of empty array");let y=u[0];for(let d=1;d<i;d++)u[d]>y&&(y=u[d]);return Number(y)}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return et(r);let l=S.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(w(n)){let y=u,d=m;for(let g=0;g<p;g++){let h=M(g,s,0,o),A=O(h,o),b=y[A];for(let N=1;N<f;N++){let D=M(g,s,N,o),x=O(D,o),z=y[x];z>b&&(b=z)}d[g]=b}}else for(let y=0;y<p;y++){let d=-1/0;for(let g=0;g<f;g++){let h=M(y,s,g,o),A=O(h,o),b=Number(u[A]);b>d&&(d=b)}m[y]=d}if(e){let y=[...o];return y[s]=1,S.fromData(m,y,n)}return l}function Lt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0)if(w(n)){let y=u,d=BigInt(1);for(let g=0;g<i;g++)d*=y[g];return Number(d)}else{let y=1;for(let d=0;d<i;d++)y*=Number(u[d]);return y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return Lt(r);let l=S.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(w(n)){let y=u,d=m;for(let g=0;g<p;g++){let h=BigInt(1);for(let A=0;A<f;A++){let b=M(g,s,A,o),N=O(b,o);h*=y[N]}d[g]=h}}else for(let y=0;y<p;y++){let d=1;for(let g=0;g<f;g++){let h=M(y,s,g,o),A=O(h,o);d*=Number(u[A])}m[y]=d}if(e){let y=[...o];return y[s]=1,S.fromData(m,y,n)}return l}function nt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,u=r.data;if(t===void 0){if(i===0)throw new Error("min of empty array");let y=u[0];for(let d=1;d<i;d++)u[d]<y&&(y=u[d]);return Number(y)}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((y,d)=>d!==s);if(c.length===0)return nt(r);let l=S.zeros(c,n),m=l.data,f=o[s],p=c.reduce((y,d)=>y*d,1);if(w(n)){let y=u,d=m;for(let g=0;g<p;g++){let h=M(g,s,0,o),A=O(h,o),b=y[A];for(let N=1;N<f;N++){let D=M(g,s,N,o),x=O(D,o),z=y[x];z<b&&(b=z)}d[g]=b}}else for(let y=0;y<p;y++){let d=1/0;for(let g=0;g<f;g++){let h=M(y,s,g,o),A=O(h,o),b=Number(u[A]);b<d&&(d=b)}m[y]=d}if(e){let y=[...o];return y[s]=1,S.fromData(m,y,n)}return l}function Wt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){if(a===0)throw new Error("argmin of empty array");let p=i[0],y=0;for(let d=1;d<a;d++)i[d]<p&&(p=i[d],y=d);return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return Wt(r);let c=S.zeros(s,"int32"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);if(w(e)){let p=i;for(let y=0;y<f;y++){let d=M(y,u,0,n),g=O(d,n),h=p[g],A=0;for(let b=1;b<m;b++){let N=M(y,u,b,n),D=O(N,n),x=p[D];x<h&&(h=x,A=b)}l[y]=A}}else for(let p=0;p<f;p++){let y=1/0,d=0;for(let g=0;g<m;g++){let h=M(p,u,g,n),A=O(h,n),b=Number(i[A]);b<y&&(y=b,d=g)}l[p]=d}return c}function Gt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){if(a===0)throw new Error("argmax of empty array");let p=i[0],y=0;for(let d=1;d<a;d++)i[d]>p&&(p=i[d],y=d);return y}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return Gt(r);let c=S.zeros(s,"int32"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);if(w(e)){let p=i;for(let y=0;y<f;y++){let d=M(y,u,0,n),g=O(d,n),h=p[g],A=0;for(let b=1;b<m;b++){let N=M(y,u,b,n),D=O(N,n),x=p[D];x>h&&(h=x,A=b)}l[y]=A}}else for(let p=0;p<f;p++){let y=-1/0,d=0;for(let g=0;g<m;g++){let h=M(p,u,g,n),A=O(h,n),b=Number(i[A]);b>y&&(y=b,d=g)}l[p]=d}return c}function Zt(r,t,e=0,n=!1){let o=r.shape,a=o.length,i=r.size,u=r.data,s=tt(r,t,n);if(t===void 0){let h=s,A=0;for(let b=0;b<i;b++){let N=Number(u[b])-h;A+=N*N}return A/(i-e)}let c=t;if(c<0&&(c=a+c),c<0||c>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let l=o[c],m=s,f=m.data,p=n?m.shape:Array.from(o).filter((h,A)=>A!==c),y=S.zeros(Array.from(p),"float64"),d=y.data,g=p.reduce((h,A)=>h*A,1);for(let h=0;h<g;h++){let A=0,b=Number(f[h]);for(let N=0;N<l;N++){let D=M(h,c,N,o),x=O(D,o),z=Number(u[x])-b;A+=z*z}d[h]=A/(l-e)}return y}function Kn(r,t,e=0,n=!1){let o=Zt(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=S.zeros(Array.from(o.shape),"float64"),i=o.data,u=a.data;for(let s=0;s<i.length;s++)u[s]=Math.sqrt(Number(i[s]));return a}function Ht(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let p=0;p<a;p++)if(!i[p])return!1;return!0}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return Ht(r);let c=S.zeros(s,"bool"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);for(let p=0;p<f;p++){let y=!0;for(let d=0;d<m;d++){let g=M(p,u,d,n),h=O(g,n);if(!i[h]){y=!1;break}}l[p]=y?1:0}if(e){let p=[...n];return p[u]=1,S.fromData(l,p,"bool")}return c}function Yt(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let p=0;p<a;p++)if(i[p])return!0;return!1}let u=t;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((p,y)=>y!==u);if(s.length===0)return Yt(r);let c=S.zeros(s,"bool"),l=c.data,m=n[u],f=s.reduce((p,y)=>p*y,1);for(let p=0;p<f;p++){let y=!1;for(let d=0;d<m;d++){let g=M(p,u,d,n),h=O(g,n);if(i[h]){y=!0;break}}l[p]=y?1:0}if(e){let p=[...n];return p[u]=1,S.fromData(l,p,"bool")}return c}function Jt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=0;for(let d=0;d<f;d++)y+=Number(o[d]),p[d]=y;return S.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++)Math.floor(f/m)%u===0?i[f]=Number(o[f]):i[f]=i[f-m]+Number(o[f]);return S.fromData(i,[...e],"float64")}function Xt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=1;for(let d=0;d<f;d++)y*=Number(o[d]),p[d]=y;return S.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++)Math.floor(f/m)%u===0?i[f]=Number(o[f]):i[f]=i[f-m]*Number(o[f]);return S.fromData(i,[...e],"float64")}function Qt(r,t,e=!1){let n=et(r,t,e),o=nt(r,t,e);if(typeof n=="number"&&typeof o=="number")return n-o;let a=n,i=o,u=a.data,s=i.data,c=new Float64Array(a.size);for(let l=0;l<a.size;l++)c[l]=Number(u[l])-Number(s[l]);return S.fromData(c,[...a.shape],"float64")}function Kt(r,t,e=!1){return xr(r,.5,t,e)}function re(r,t,e,n=!1){return xr(r,t/100,e,n)}function xr(r,t,e,n=!1){if(t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,i=r.data;if(e===void 0){let p=[];for(let b=0;b<r.size;b++)p.push(Number(i[b]));p.sort((b,N)=>b-N);let y=p.length,d=t*(y-1),g=Math.floor(d),h=Math.ceil(d);if(g===h)return p[g];let A=d-g;return p[g]*(1-A)+p[h]*A}let u=e;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((p,y)=>y!==u);if(s.length===0)return xr(r,t);let c=s.reduce((p,y)=>p*y,1),l=o[u],m=new Float64Array(c);for(let p=0;p<c;p++){let y=[];for(let b=0;b<l;b++){let N=M(p,u,b,o),D=O(N,o);y.push(Number(i[D]))}y.sort((b,N)=>b-N);let d=y.length,g=t*(d-1),h=Math.floor(g),A=Math.ceil(g);if(h===A)m[p]=y[h];else{let b=g-h;m[p]=y[h]*(1-b)+y[A]*b}}let f=S.fromData(m,s,"float64");if(n){let p=[...o];return p[u]=1,S.fromData(m,p,"float64")}return f}function ot(r,t,e,n=!1){let o=r.shape,a=o.length,i=r.data;if(e===void 0)return tt(r,t,n);if(t===void 0){let y=0,d=0,g=e.data;for(let h=0;h<r.size;h++){let A=Number(g[h%e.size]);y+=Number(i[h])*A,d+=A}return d===0?NaN:y/d}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((y,d)=>d!==u);if(s.length===0)return ot(r,void 0,e);let c=s.reduce((y,d)=>y*d,1),l=o[u],m=e.data,f=new Float64Array(c);for(let y=0;y<c;y++){let d=0,g=0;for(let h=0;h<l;h++){let A=M(y,u,h,o),b=O(A,o),N=Number(m[h%e.size]);d+=Number(i[b])*N,g+=N}f[y]=g===0?NaN:d/g}let p=S.fromData(f,s,"float64");if(n){let y=[...o];return y[u]=1,S.fromData(f,y,"float64")}return p}function at(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0;for(let p=0;p<r.size;p++){let y=Number(a[p]);isNaN(y)||(f+=y)}return f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return at(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=0;for(let y=0;y<c;y++){let d=M(f,i,y,n),g=O(d,n),h=Number(a[g]);isNaN(h)||(p+=h)}l[f]=p}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function st(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1;for(let p=0;p<r.size;p++){let y=Number(a[p]);isNaN(y)||(f*=y)}return f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return st(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=1;for(let y=0;y<c;y++){let d=M(f,i,y,n),g=O(d,n),h=Number(a[g]);isNaN(h)||(p*=h)}l[f]=p}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function it(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=0,p=0;for(let y=0;y<r.size;y++){let d=Number(a[y]);isNaN(d)||(f+=d,p++)}return p===0?NaN:f/p}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return it(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=0,y=0;for(let d=0;d<c;d++){let g=M(f,i,d,n),h=O(g,n),A=Number(a[h]);isNaN(A)||(p+=A,y++)}l[f]=y===0?NaN:p/y}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function Mr(r,t,e=0,n=!1){let o=r.shape,a=o.length,i=r.data;if(t===void 0){let p=0,y=0;for(let h=0;h<r.size;h++){let A=Number(i[h]);isNaN(A)||(p+=A,y++)}if(y-e<=0)return NaN;let d=p/y,g=0;for(let h=0;h<r.size;h++){let A=Number(i[h]);isNaN(A)||(g+=(A-d)**2)}return g/(y-e)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let s=Array.from(o).filter((p,y)=>y!==u);if(s.length===0)return Mr(r,void 0,e);let c=s.reduce((p,y)=>p*y,1),l=o[u],m=new Float64Array(c);for(let p=0;p<c;p++){let y=0,d=0;for(let A=0;A<l;A++){let b=M(p,u,A,o),N=O(b,o),D=Number(i[N]);isNaN(D)||(y+=D,d++)}if(d-e<=0){m[p]=NaN;continue}let g=y/d,h=0;for(let A=0;A<l;A++){let b=M(p,u,A,o),N=O(b,o),D=Number(i[N]);isNaN(D)||(h+=(D-g)**2)}m[p]=h/(d-e)}let f=S.fromData(m,s,"float64");if(n){let p=[...o];return p[u]=1,S.fromData(m,p,"float64")}return f}function te(r,t,e=0,n=!1){let o=Mr(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,i=new Float64Array(a.size);for(let u=0;u<a.size;u++)i[u]=Math.sqrt(Number(a.data[u]));return S.fromData(i,[...a.shape],"float64")}function ut(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=1/0;for(let p=0;p<r.size;p++){let y=Number(a[p]);!isNaN(y)&&y<f&&(f=y)}return f===1/0?NaN:f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return ut(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=1/0;for(let y=0;y<c;y++){let d=M(f,i,y,n),g=O(d,n),h=Number(a[g]);!isNaN(h)&&h<p&&(p=h)}l[f]=p===1/0?NaN:p}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function ct(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=-1/0;for(let p=0;p<r.size;p++){let y=Number(a[p]);!isNaN(y)&&y>f&&(f=y)}return f===-1/0?NaN:f}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return ct(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=-1/0;for(let y=0;y<c;y++){let d=M(f,i,y,n),g=O(d,n),h=Number(a[g]);!isNaN(h)&&h>p&&(p=h)}l[f]=p===-1/0?NaN:p}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}function lt(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=1/0,m=-1;for(let f=0;f<r.size;f++){let p=Number(o[f]);!isNaN(p)&&p<l&&(l=p,m=f)}return m}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((l,m)=>m!==a);if(i.length===0)return lt(r);let u=i.reduce((l,m)=>l*m,1),s=e[a],c=new Int32Array(u);for(let l=0;l<u;l++){let m=1/0,f=0;for(let p=0;p<s;p++){let y=M(l,a,p,e),d=O(y,e),g=Number(o[d]);!isNaN(g)&&g<m&&(m=g,f=p)}c[l]=f}return S.fromData(c,i,"int32")}function ft(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let l=-1/0,m=-1;for(let f=0;f<r.size;f++){let p=Number(o[f]);!isNaN(p)&&p>l&&(l=p,m=f)}return m}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=Array.from(e).filter((l,m)=>m!==a);if(i.length===0)return ft(r);let u=i.reduce((l,m)=>l*m,1),s=e[a],c=new Int32Array(u);for(let l=0;l<u;l++){let m=-1/0,f=0;for(let p=0;p<s;p++){let y=M(l,a,p,e),d=O(y,e),g=Number(o[d]);!isNaN(g)&&g>m&&(m=g,f=p)}c[l]=f}return S.fromData(c,i,"int32")}function ee(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=0;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(y+=g),p[d]=y}return S.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++){let p=Number(o[f]);Math.floor(f/m)%u===0?i[f]=isNaN(p)?0:p:i[f]=i[f-m]+(isNaN(p)?0:p)}return S.fromData(i,[...e],"float64")}function ne(r,t){let e=r.shape,n=e.length,o=r.data;if(t===void 0){let f=r.size,p=new Float64Array(f),y=1;for(let d=0;d<f;d++){let g=Number(o[d]);isNaN(g)||(y*=g),p[d]=y}return S.fromData(p,[f],"float64")}let a=t;if(a<0&&(a=n+a),a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let i=new Float64Array(r.size),u=e[a],s=[],c=1;for(let f=n-1;f>=0;f--)s.unshift(c),c*=e[f];let l=r.size,m=s[a];for(let f=0;f<l;f++){let p=Number(o[f]);Math.floor(f/m)%u===0?i[f]=isNaN(p)?1:p:i[f]=i[f-m]*(isNaN(p)?1:p)}return S.fromData(i,[...e],"float64")}function mt(r,t,e=!1){let n=r.shape,o=n.length,a=r.data;if(t===void 0){let f=[];for(let d=0;d<r.size;d++){let g=Number(a[d]);isNaN(g)||f.push(g)}if(f.length===0)return NaN;f.sort((d,g)=>d-g);let p=f.length,y=Math.floor(p/2);return p%2===0?(f[y-1]+f[y])/2:f[y]}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((f,p)=>p!==i);if(u.length===0)return mt(r);let s=u.reduce((f,p)=>f*p,1),c=n[i],l=new Float64Array(s);for(let f=0;f<s;f++){let p=[];for(let g=0;g<c;g++){let h=M(f,i,g,n),A=O(h,n),b=Number(a[A]);isNaN(b)||p.push(b)}if(p.length===0){l[f]=NaN;continue}p.sort((g,h)=>g-h);let y=p.length,d=Math.floor(y/2);y%2===0?l[f]=(p[d-1]+p[d])/2:l[f]=p[d]}let m=S.fromData(l,u,"float64");if(e){let f=[...n];return f[i]=1,S.fromData(l,f,"float64")}return m}var ro=k(()=>{"use strict";L();W();Rt()});function G(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,f,p)=>p===o?m:m*f,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,f)=>f===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return S.fromData(c,a,n,H(a),0)}let s=r.copy().data;return S.fromData(s,a,n,H(a),0)}function pt(r){let t=r.size,e=r.dtype,n=T(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let u=r.data.slice(r.offset,r.offset+t);return S.fromData(u,[t],e,[1],0)}let o=new n(t),a=w(e);for(let i=0;i<t;i++){let u=r.iget(i);o[i]=u}return S.fromData(o,[t],e,[1],0)}function wr(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return S.fromData(n,[t],e,[1],0)}return pt(r)}function Ur(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,u;if(t===void 0)u=Array.from({length:n},(m,f)=>n-1-f);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let f of t){let p=f<0?n+f:f;if(p<0||p>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);if(m.has(p))throw new Error("repeated axis in transpose");m.add(p)}u=t.map(f=>f<0?n+f:f)}let s=u.map(m=>e[m]),c=Array.from(o),l=u.map(m=>c[m]);return S.fromData(a,s,i,l,r.offset)}function to(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype;if(t===void 0){let u=[],s=[];for(let c=0;c<n;c++)e[c]!==1&&(u.push(e[c]),s.push(o[c]));return u.length===0&&(u.push(1),s.push(1)),S.fromData(a,u,i,s,r.offset)}else{let u=t<0?n+t:t;if(u<0||u>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[u]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[u]})`);let s=[],c=[];for(let l=0;l<n;l++)l!==u&&(s.push(e[l]),c.push(o[l]));return S.fromData(a,s,i,c,r.offset)}}function Tr(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,u=t;if(u<0&&(u=n+t+1),u<0||u>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let s=[...Array.from(e)];s.splice(u,0,1);let c=[...Array.from(o)],l=u<n?o[u]*(e[u]||1):1;return c.splice(u,0,l),S.fromData(a,s,i,c,r.offset)}function eo(r,t,e){let n=r.shape,o=n.length,a=r.strides,i=r.data,u=r.dtype,s=t<0?o+t:t,c=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(s===c)return S.fromData(i,Array.from(n),u,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[s],l[c]]=[l[c],l[s]],[m[s],m[c]]=[m[c],m[s]],S.fromData(i,l,u,m,r.offset)}function oe(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let i=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),u=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(i).size!==i.length)throw new Error("repeated axis in source");if(new Set(u).size!==u.length)throw new Error("repeated axis in destination");let s=[];for(let c=0;c<n;c++)i.includes(c)||s.push(c);for(let c=0;c<i.length;c++){let l=u[c];s.splice(l,0,i[c])}return Ur(r,s)}function gr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let p=1;p<r.length;p++){let y=r[p];if(y.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let d=0;d<n;d++)if(d!==a&&y.shape[d]!==e.shape[d])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let i=Array.from(e.shape),u=e.shape[a];for(let p=1;p<r.length;p++)u+=r[p].shape[a];i[a]=u;let s=i.reduce((p,y)=>p*y,1),c=T(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(s),m=H(i),f=0;for(let p of r){let y=p.shape[a];Im(p,l,i,m,a,f,o),f+=y}return S.fromData(l,i,o)}function Im(r,t,e,n,o,a,i){let u=r.shape,s=u.length,c=r.size,l=i==="int64"||i==="uint64";if(o===0&&r.isCContiguous&&s>0){let p=a*n[0],y=r.data,d=r.offset,g=d+c;t.set(y.subarray(d,g),p);return}if(o===1&&s===2&&r.isCContiguous){let p=u[0],y=u[1],d=e[1],g=r.data,h=r.offset;for(let A=0;A<p;A++){let b=h+A*y,N=A*d+a;t.set(g.subarray(b,b+y),N)}return}let m=new Array(s).fill(0),f=a*n[o];for(let p=0;p<c;p++){let y=r.iget(p),d=f;for(let g=0;g<s;g++)d+=m[g]*n[g];t[d]=y;for(let g=s-1;g>=0&&(m[g]++,!(m[g]<u[g]));g--)m[g]=0}}function no(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let u=1;u<r.length;u++){let s=r[u];if(s.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(s.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let i=r.map(u=>Tr(u,a));return gr(i,a)}function oo(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?G(e,[1,e.shape[0]]):e);return gr(t,0)}function ae(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?gr(r,0):gr(r,1)}function ao(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?G(Tr(G(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?Tr(e,2):e);return gr(t,2)}function so(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],u;if(typeof t=="number"){if(i%t!==0)throw new Error("array split does not result in an equal division");let s=i/t;u=[];for(let c=1;c<t;c++)u.push(c*s)}else u=t;return io(r,u,a)}function $r(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],u;if(typeof t=="number"){let s=t,c=Math.floor(i/s),l=i%s;u=[];let m=0;for(let f=0;f<s-1;f++)m+=c+(f<l?1:0),u.push(m)}else u=t;return io(r,u,a)}function io(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],i=[];for(let u=0;u<a.length-1;u++){let s=a[u],c=a[u+1];if(s>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-s;let m=r.offset+s*r.strides[e];i.push(S.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return i}function uo(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return $r(r,t,0)}function co(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let e=r.ndim===1?0:1;return $r(r,t,e)}function lo(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],i=Math.max(n,a.length),u=new Array(i).fill(1),s=new Array(i).fill(1);for(let A=0;A<n;A++)u[i-n+A]=e[A];for(let A=0;A<a.length;A++)s[i-a.length+A]=a[A];let c=u.map((A,b)=>A*s[b]),l=c.reduce((A,b)=>A*b,1),m=T(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let f=new m(l),p=H(c),y=r;n<i&&(y=G(r,u));let d=o==="int64"||o==="uint64",g=y.strides,h=new Array(i).fill(0);for(let A=0;A<l;A++){let b=y.offset;for(let x=0;x<i;x++){let z=h[x]%u[x];b+=z*g[x]}let N=y.data[b],D=0;for(let x=0;x<i;x++)D+=h[x]*p[x];f[D]=N;for(let x=i-1;x>=0&&(h[x]++,!(h[x]<c[x]));x--)h[x]=0}return S.fromData(f,c,o)}function fo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let A=i,b=Array.isArray(t)?t:new Array(A).fill(t);if(b.length!==A)throw new Error(`operands could not be broadcast together with shape (${A},) (${b.length},)`);let N=b.reduce((_,B)=>_+B,0),D=T(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let x=new D(N),z=0;for(let _=0;_<A;_++){let B=r.iget(_),v=b[_];for(let E=0;E<v;E++)x[z++]=B}return S.fromData(x,[N],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],c=Array.isArray(t)?t:new Array(s).fill(t);if(c.length!==s)throw new Error(`operands could not be broadcast together with shape (${s},) (${c.length},)`);let l=Array.from(n);l[u]=c.reduce((A,b)=>A+b,0);let m=l.reduce((A,b)=>A*b,1),f=T(a);if(!f)throw new Error(`Cannot repeat array with dtype ${a}`);let p=new f(m),y=H(l),d=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let A=0;A<s;A++)h.push(h[A]+c[A]);for(let A=0;A<i;A++){let b=r.iget(A),N=d[u],D=c[N],x=0;for(let B=0;B<o;B++)B!==u&&(x+=d[B]*y[B]);let z=y[u],_=h[N];for(let B=0;B<D;B++){let v=x+(_+B)*z;p[v]=b}for(let B=o-1;B>=0&&(d[B]++,!(d[B]<n[B]));B--)d[B]=0}return S.fromData(p,l,a)}function mo(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,i;if(t===void 0)i=new Set(Array.from({length:n},(f,p)=>p));else if(typeof t=="number"){let f=t<0?n+t:t;if(f<0||f>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);i=new Set([f])}else i=new Set(t.map(f=>{let p=f<0?n+f:f;if(p<0||p>=n)throw new Error(`axis ${f} is out of bounds for array of dimension ${n}`);return p}));let u=T(o);if(!u)throw new Error(`Cannot flip array with dtype ${o}`);let s=new u(a),c=w(o);if(n===1&&r.isCContiguous){let f=r.data,p=r.offset;for(let y=0;y<a;y++)s[y]=f[p+a-1-y];return S.fromData(s,[...e],o)}if(n===2&&r.isCContiguous){let f=e[0],p=e[1],y=r.data,d=r.offset;if(i.size===2){for(let g=0;g<a;g++)s[g]=y[d+a-1-g];return S.fromData(s,[...e],o)}if(i.size===1){if(i.has(0)){for(let g=0;g<f;g++){let h=d+(f-1-g)*p,A=g*p;for(let b=0;b<p;b++)s[A+b]=y[h+b]}return S.fromData(s,[...e],o)}else if(i.has(1)){for(let g=0;g<f;g++){let h=d+g*p,A=g*p;for(let b=0;b<p;b++)s[A+b]=y[h+p-1-b]}return S.fromData(s,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let f=0;f<a;f++){for(let d=0;d<n;d++)l[d]=i.has(d)?e[d]-1-m[d]:m[d];let p=r.offset;for(let d=0;d<n;d++)p+=l[d]*r.strides[d];let y=r.data[p];s[f]=y;for(let d=n-1;d>=0&&(m[d]++,!(m[d]<e[d]));d--)m[d]=0}return S.fromData(s,[...e],o)}function po(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let i=e[0]<0?o+e[0]:e[0],u=e[1]<0?o+e[1]:e[1];if(i<0||i>=o||u<0||u>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(i===u)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let s=T(a);if(!s)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[i],c[u]]=[c[u],c[i]]);let l=c.reduce((g,h)=>g*h,1),m=new s(l),f=H(c),p=w(a),y=new Array(o).fill(0),d=new Array(o);for(let g=0;g<r.size;g++){for(let D=0;D<o;D++)d[D]=y[D];let h,A;t===1?(h=n[u]-1-y[u],A=y[i]):t===2?(h=n[i]-1-y[i],A=n[u]-1-y[u],d[i]=h,d[u]=A):(h=y[u],A=n[i]-1-y[i]),t!==2&&(d[i]=h,d[u]=A);let b=0;for(let D=0;D<o;D++)b+=d[D]*f[D];let N=r.iget(g);m[b]=N;for(let D=o-1;D>=0&&(y[D]++,!(y[D]<n[D]));D--)y[D]=0}return S.fromData(m,c,a)}function yo(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let y=Array.isArray(t)?t.reduce((b,N)=>b+N,0):t,d=pt(r),g=T(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(i),A=w(a);for(let b=0;b<i;b++){let N=((b-y)%i+i)%i,D=d.iget(N);h[b]=D}return S.fromData(h,[...n],a)}let u=Array.isArray(t)?t:[t],s=Array.isArray(e)?e:[e];if(u.length!==s.length)throw new Error("shift and axis must have the same length");let c=s.map(y=>{let d=y<0?o+y:y;if(d<0||d>=o)throw new Error(`axis ${y} is out of bounds for array of dimension ${o}`);return d}),l=T(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(i),f=w(a),p=new Array(o).fill(0);for(let y=0;y<i;y++){let d=[...p];for(let A=0;A<c.length;A++){let b=c[A],N=n[b],D=u[A];d[b]=((d[b]-D)%N+N)%N}let g=r.offset;for(let A=0;A<o;A++)g+=d[A]*r.strides[A];let h=r.data[g];m[y]=h;for(let A=o-1;A>=0&&(p[A]++,!(p[A]<n[A]));A--)p[A]=0}return S.fromData(m,[...n],a)}function go(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?S.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):oe(r,o,a)}function bo(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return $r(r,t,2)}function Ao(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?G(e,[e.shape[0],1]):e);return ae(t)}function ho(r,t){let e=r.dtype,n=t.reduce((s,c)=>s*c,1),o=r.size,a=T(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let i=new a(n),u=w(e);for(let s=0;s<n;s++){let c=s%o,l=r.iget(c);i[s]=l}return S.fromData(i,t,e)}function So(r){return r.map(t=>t.ndim===0?G(t,[1]):t)}function No(r){return r.map(t=>t.ndim===0?G(t,[1,1]):t.ndim===1?G(t,[1,t.shape[0]]):t)}function Do(r){return r.map(t=>t.ndim===0?G(t,[1,1,1]):t.ndim===1?G(t,[1,t.shape[0],1]):t.ndim===2?G(t,[t.shape[0],t.shape[1],1]):t)}var se=k(()=>{"use strict";L();W()});function _m(r,t,e,n,o,a,i,u,s,c,l,m,f,p){if(m===0)for(let h=0;h<n*o;h++)f[h]=0;else if(m!==1)for(let h=0;h<n*o;h++)f[h]=(f[h]??0)*m;let y=r==="row-major",d=t==="transpose",g=e==="transpose";if(y&&!d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[h*s+N]??0)*(c[N*l+A]??0);f[h*p+A]=(f[h*p+A]??0)+i*b}else if(y&&d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[N*s+h]??0)*(c[N*l+A]??0);f[h*p+A]=(f[h*p+A]??0)+i*b}else if(y&&!d&&g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[h*s+N]??0)*(c[A*l+N]??0);f[h*p+A]=(f[h*p+A]??0)+i*b}else if(y&&d&&g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[N*s+h]??0)*(c[A*l+N]??0);f[h*p+A]=(f[h*p+A]??0)+i*b}else if(!y&&!d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[N*s+h]??0)*(c[A*l+N]??0);f[A*p+h]=(f[A*p+h]??0)+i*b}else if(!y&&d&&!g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[h*s+N]??0)*(c[A*l+N]??0);f[A*p+h]=(f[A*p+h]??0)+i*b}else if(!y&&!d&&g)for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[N*s+h]??0)*(c[N*l+A]??0);f[A*p+h]=(f[A*p+h]??0)+i*b}else for(let h=0;h<n;h++)for(let A=0;A<o;A++){let b=0;for(let N=0;N<a;N++)b+=(u[h*s+N]??0)*(c[N*l+A]??0);f[A*p+h]=(f[A*p+h]??0)+i*b}}function ue(r,t){let e=r.ndim,n=t.ndim;if(e===0||n===0){let o=e===0?r.get():null,a=n===0?t.get():null;if(e===0&&n===0)return typeof o=="bigint"&&typeof a=="bigint"?o*a:Number(o)*Number(a);if(e===0){let i=C(r.dtype,t.dtype),u=S.zeros([...t.shape],i);for(let s=0;s<t.size;s++){let c=t.data[s+t.offset];typeof o=="bigint"&&typeof c=="bigint"?u.data[s]=o*c:u.data[s]=Number(o)*Number(c)}return u}else{let i=C(r.dtype,t.dtype),u=S.zeros([...r.shape],i);for(let s=0;s<r.size;s++){let c=r.data[s+r.offset];typeof c=="bigint"&&typeof a=="bigint"?u.data[s]=c*a:u.data[s]=Number(c)*Number(a)}return u}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let o=r.shape[0],a=0;for(let i=0;i<o;i++){let u=r.get(i),s=t.get(i);typeof u=="bigint"&&typeof s=="bigint"?a=Number(a)+Number(u*s):a+=Number(u)*Number(s)}return a}if(e===2&&n===2)return rr(r,t);if(e===2&&n===1){let[o,a]=r.shape,i=t.shape[0];if(a!==i)throw new Error(`dot: incompatible shapes (${o},${a}) and (${i},)`);let u=C(r.dtype,t.dtype),s=S.zeros([o],u);for(let c=0;c<o;c++){let l=0;for(let m=0;m<a;m++){let f=r.get(c,m),p=t.get(m);typeof f=="bigint"&&typeof p=="bigint"?l=Number(l)+Number(f*p):l+=Number(f)*Number(p)}s.set([c],l)}return s}if(e===1&&n===2){let o=r.shape[0],[a,i]=t.shape;if(o!==a)throw new Error(`dot: incompatible shapes (${o},) and (${a},${i})`);let u=C(r.dtype,t.dtype),s=S.zeros([i],u);for(let c=0;c<i;c++){let l=0;for(let m=0;m<o;m++){let f=r.get(m),p=t.get(m,c);typeof f=="bigint"&&typeof p=="bigint"?l=Number(l)+Number(f*p):l+=Number(f)*Number(p)}s.set([c],l)}return s}if(e>2&&n===1){let o=r.shape[e-1],a=t.shape[0];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${a},)`);let i=[...r.shape.slice(0,-1)],u=C(r.dtype,t.dtype),s=S.zeros(i,u),c=i.reduce((l,m)=>l*m,1);for(let l=0;l<c;l++){let m=0,f=l,p=[];for(let y=i.length-1;y>=0;y--)p[y]=f%i[y],f=Math.floor(f/i[y]);for(let y=0;y<o;y++){let d=[...p,y],g=r.get(...d),h=t.get(y);typeof g=="bigint"&&typeof h=="bigint"?m=Number(m)+Number(g*h):m+=Number(g)*Number(h)}s.set(p,m)}return s}if(e===1&&n>2){let o=r.shape[0],a=1,i=t.shape[a];if(o!==i)throw new Error(`dot: incompatible shapes (${o},) and ${JSON.stringify(t.shape)}`);let u=[...t.shape.slice(0,a),...t.shape.slice(a+1)],s=C(r.dtype,t.dtype),c=S.zeros(u,s),l=u.reduce((m,f)=>m*f,1);for(let m=0;m<l;m++){let f=m,p=[];for(let h=u.length-1;h>=0;h--)p[h]=f%u[h],f=Math.floor(f/u[h]);let y=p.slice(0,a),d=p.slice(a),g=0;for(let h=0;h<o;h++){let A=r.get(h),b=[...y,h,...d],N=t.get(...b);typeof A=="bigint"&&typeof N=="bigint"?g=Number(g)+Number(A*N):g+=Number(A)*Number(N)}c.set(p,g)}return c}if(e>=2&&n>=2&&!(e===2&&n===2)){let o=r.shape[e-1],a=t.shape[n-2];if(o!==a)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],u=C(r.dtype,t.dtype),s=S.zeros(i,u),c=r.shape.slice(0,-1).reduce((p,y)=>p*y,1),l=t.shape.slice(0,-2).reduce((p,y)=>p*y,1),m=t.shape[n-1],f=o;for(let p=0;p<c;p++)for(let y=0;y<l;y++)for(let d=0;d<m;d++){let g=0;for(let A=0;A<f;A++){let b=p*f+A,N=r.data[b+r.offset],D=y*f*m+A*m+d,x=t.data[D+t.offset];typeof N=="bigint"&&typeof x=="bigint"?g=Number(g)+Number(N*x):g+=Number(N)*Number(x)}let h=p*l*m+y*m+d;s.data[h]=g}return s}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function rr(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let i=C(r.dtype,t.dtype),u=i.startsWith("int")||i.startsWith("uint")||i==="bool"?"float64":i;if(u!=="float64")throw new Error(`matmul currently only supports float64, got ${u}`);let s=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(s=s.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[f=0,p=0]=t.strides,y=m>l,d=p>f,g=y?"transpose":"no-transpose",h=d?"transpose":"no-transpose",A,b;y?A=m:A=l,d?b=p:b=f;let N=S.zeros([e,a],"float64");return _m("row-major",g,h,e,a,n,1,s,A,c,b,0,N.data,a),N}function Io(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e),o=0;for(let a=0;a<n;a++){let i=r.get(a,a);typeof i=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+i:o=(typeof o=="bigint"?Number(o):o)+i}return o}function wo(r,t){return Ur(r,t)}function _o(r,t){let e=r.ndim,n=t.ndim,o=r.shape[e-1],a=t.shape[n-1];if(o!==a)throw new Error(`inner: incompatible shapes - last dimensions ${o} and ${a} don't match`);if(e===1&&n===1)return ue(r,t);let i=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],u=C(r.dtype,t.dtype),s=S.zeros(i,u),c=e===1?1:r.shape.slice(0,-1).reduce((f,p)=>f*p,1),l=n===1?1:t.shape.slice(0,-1).reduce((f,p)=>f*p,1),m=o;for(let f=0;f<c;f++)for(let p=0;p<l;p++){let y=0;for(let g=0;g<m;g++){let h=e===1?g:f*m+g,A=n===1?g:p*m+g,b=r.data[h+r.offset],N=t.data[A+t.offset];typeof b=="bigint"&&typeof N=="bigint"?y=Number(y)+Number(b*N):y+=Number(b)*Number(N)}if(i.length===0)return y;let d=c===1?p:f*l+p;s.data[d]=y}return s}function ce(r,t){let e=r.ndim===1?r:wr(r),n=t.ndim===1?t:wr(t),o=e.size,a=n.size,i=C(r.dtype,t.dtype),u=S.zeros([o,a],i);for(let s=0;s<o;s++)for(let c=0;c<a;c++){let l=e.get(s),m=n.get(c),f;typeof l=="bigint"&&typeof m=="bigint"?f=l*m:f=Number(l)*Number(m),u.set([s,c],f)}return u}function Bo(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(p,y)=>r.ndim-f+y),o=Array.from({length:f},(p,y)=>y)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let p=n[f],y=o[f];if(p<0||p>=r.ndim||y<0||y>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[p]!==t.shape[y])throw new Error(`tensordot: shape mismatch on axes ${p} and ${y}: ${r.shape[p]} != ${t.shape[y]}`)}let a=[],i=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||i.push(f);let u=[...a.map(f=>r.shape[f]),...i.map(f=>t.shape[f])];if(u.length===0){let f=0,p=n.map(y=>r.shape[y]).reduce((y,d)=>y*d,1);for(let y=0;y<p;y++){let d=y,g=new Array(n.length);for(let D=n.length-1;D>=0;D--){let x=n[D];g[D]=d%r.shape[x],d=Math.floor(d/r.shape[x])}let h=new Array(r.ndim),A=new Array(t.ndim);for(let D=0;D<n.length;D++)h[n[D]]=g[D];for(let D=0;D<o.length;D++)A[o[D]]=g[D];let b=r.get(...h),N=t.get(...A);typeof b=="bigint"&&typeof N=="bigint"?f=Number(f)+Number(b*N):f+=Number(b)*Number(N)}return f}let s=C(r.dtype,t.dtype),c=S.zeros(u,s),l=u.reduce((f,p)=>f*p,1),m=n.map(f=>r.shape[f]).reduce((f,p)=>f*p,1);for(let f=0;f<l;f++){let p=f,y=[];for(let A=u.length-1;A>=0;A--)y[A]=p%u[A],p=Math.floor(p/u[A]);let d=y.slice(0,a.length),g=y.slice(a.length),h=0;for(let A=0;A<m;A++){p=A;let b=[];for(let _=n.length-1;_>=0;_--){let B=n[_];b[_]=p%r.shape[B],p=Math.floor(p/r.shape[B])}let N=new Array(r.ndim),D=new Array(t.ndim);for(let _=0;_<a.length;_++)N[a[_]]=d[_];for(let _=0;_<i.length;_++)D[i[_]]=g[_];for(let _=0;_<n.length;_++)N[n[_]]=b[_],D[o[_]]=b[_];let x=r.get(...N),z=t.get(...D);typeof x=="bigint"&&typeof z=="bigint"?h=Number(h)+Number(x*z):h+=Number(x)*Number(z)}c.set(y,h)}return c}function vo(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let i=e<0?a+e:e,u=n<0?a+n:n;if(i<0||i>=a||u<0||u>=a)throw new Error("axis out of bounds");if(i===u)throw new Error("axis1 and axis2 cannot be the same");let s=o[i],c=o[u],l;t>=0?l=Math.max(0,Math.min(s,c-t)):l=Math.max(0,Math.min(s+t,c));let m=[];for(let d=0;d<a;d++)d!==i&&d!==u&&m.push(o[d]);m.push(l);let f=S.zeros(m,r.dtype),p=o.filter((d,g)=>g!==i&&g!==u),y=p.reduce((d,g)=>d*g,1);for(let d=0;d<y;d++){let g=d,h=[];for(let A=p.length-1;A>=0;A--)h.unshift(g%p[A]),g=Math.floor(g/p[A]);for(let A=0;A<l;A++){let b=new Array(a),N=0;for(let z=0;z<a;z++)z===i?b[z]=t>=0?A:A-t:z===u?b[z]=t>=0?A+t:A:b[z]=h[N++];let D=[...h,A],x=r.get(...b);f.set(D,x)}}return f}function Eo(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=Bm(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(d=>d.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let i=new Map;for(let d=0;d<t.length;d++){let g=a[d],h=t[d];if(g.length!==h.ndim)throw new Error(`einsum: operand ${d} has ${h.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let A=0;A<g.length;A++){let b=g[A],N=h.shape[A];if(i.has(b)){if(i.get(b)!==N)throw new Error(`einsum: size mismatch for index '${b}': ${i.get(b)} vs ${N}`)}else i.set(b,N)}}for(let d of o)if(!i.has(d))throw new Error(`einsum: output subscript contains unknown index '${d}'`);let u=new Set(o),s=new Set;for(let d of a)for(let g of d)s.add(g);let c=[];for(let d of s)u.has(d)||c.push(d);if(t.length===2&&a.length===2){let[d,g]=a,[h,A]=t;if(d.length===2&&g.length===2&&o.length===2&&h.ndim===2&&A.ndim===2){let[b,N]=[d[0],d[1]],[D,x]=[g[0],g[1]],[z,_]=[o[0],o[1]];if(b===z&&x===_&&N===D&&c.length===1&&c[0]===N||b===z&&x===_&&N===D&&c.length===1&&c[0]===N)return rr(h,A);if(N===z&&x===_&&b===D&&c.length===1&&c[0]===b){let B=wo(h);return rr(B,A)}if(b===z&&D===_&&N===x&&c.length===1&&c[0]===N){let B=wo(A);return rr(h,B)}}if(d.length===1&&g.length===1&&d===g&&o.length===0&&h.ndim===1&&A.ndim===1)return ie(t,a,c,i);if(d&&g&&d.length===1&&g.length===1&&o.length===2&&o===d+g&&c.length===0&&h.ndim===1&&A.ndim===1)return ce(h,A)}if(t.length===1&&a[0].length===2&&o.length===0){let d=a[0];if(d[0]===d[1]&&t[0].ndim===2)return ie(t,a,c,i)}let l=Array.from(o).map(d=>i.get(d));if(l.length===0)return ie(t,a,c,i);let m=t[0].dtype;for(let d=1;d<t.length;d++)m=C(m,t[d].dtype);let f=S.zeros(l,m),p=l.reduce((d,g)=>d*g,1),y=1;for(let d of c)y*=i.get(d);for(let d=0;d<p;d++){let g=vm(d,l),h=new Map;for(let b=0;b<o.length;b++)h.set(o[b],g[b]);let A=0;for(let b=0;b<y;b++){let N=b;for(let x=c.length-1;x>=0;x--){let z=c[x],_=i.get(z);h.set(z,N%_),N=Math.floor(N/_)}let D=1;for(let x=0;x<t.length;x++){let z=t[x],_=a[x],B=[];for(let E of _)B.push(h.get(E));let v=z.get(...B);D*=Number(v)}A+=D}f.set(g,A)}return f}function Bm(r){let t=new Map,e=r.split(",");for(let o of e)for(let a of o.trim())t.set(a,(t.get(a)||0)+1);let n=[];for(let[o,a]of t)a===1&&n.push(o);return n.sort().join("")}function ie(r,t,e,n){let o=1;for(let i of e)o*=n.get(i);let a=0;for(let i=0;i<o;i++){let u=new Map,s=i;for(let l=e.length-1;l>=0;l--){let m=e[l],f=n.get(m);u.set(m,s%f),s=Math.floor(s/f)}let c=1;for(let l=0;l<r.length;l++){let m=r[l],f=t[l],p=[];for(let d of f)p.push(u.get(d));let y=m.get(...p);c*=Number(y)}a+=c}return a}function vm(r,t){let e=new Array(t.length),n=r;for(let o=t.length-1;o>=0;o--)e[o]=n%t[o],n=Math.floor(n/t[o]);return e}function Oo(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,i=C(r.dtype,t.dtype),u=Math.max(o,a),s=new Array(u),c=new Array(u).fill(1),l=new Array(u).fill(1);for(let y=0;y<o;y++)c[u-o+y]=e[y];for(let y=0;y<a;y++)l[u-a+y]=n[y];for(let y=0;y<u;y++)s[y]=c[y]*l[y];let m=S.zeros(s,i),f=e.reduce((y,d)=>y*d,1),p=n.reduce((y,d)=>y*d,1);for(let y=0;y<f;y++){let d=y,g=new Array(o);for(let b=o-1;b>=0;b--)g[b]=d%e[b],d=Math.floor(d/e[b]);let h=new Array(u).fill(0);for(let b=0;b<o;b++)h[u-o+b]=g[b];let A=r.get(...g);for(let b=0;b<p;b++){let N=b,D=new Array(a);for(let v=a-1;v>=0;v--)D[v]=N%n[v],N=Math.floor(N/n[v]);let x=new Array(u).fill(0);for(let v=0;v<a;v++)x[u-a+v]=D[v];let z=t.get(...D),_=new Array(u);for(let v=0;v<u;v++)_[v]=h[v]*l[v]+x[v];let B=typeof A=="bigint"||typeof z=="bigint"?BigInt(Number(A))*BigInt(Number(z)):Number(A)*Number(z);m.set(_,B)}}return m}function Mo(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let i=(b,N)=>b<0?N+b:b,u=i(e,r.ndim),s=i(n,t.ndim);if(r.ndim===1&&t.ndim===1){let b=r.shape[0],N=t.shape[0];if(b===3&&N===3){let D=Number(r.get(0)),x=Number(r.get(1)),z=Number(r.get(2)),_=Number(t.get(0)),B=Number(t.get(1)),v=Number(t.get(2)),E=S.zeros([3],"float64");return E.set([0],x*v-z*B),E.set([1],z*_-D*v),E.set([2],D*B-x*_),E}else if(b===2&&N===2){let D=Number(r.get(0)),x=Number(r.get(1)),z=Number(t.get(0)),_=Number(t.get(1));return D*_-x*z}else if(b===2&&N===3||b===3&&N===2){let D=Number(r.get(0)),x=Number(r.get(1)),z=b===3?Number(r.get(2)):0,_=Number(t.get(0)),B=Number(t.get(1)),v=N===3?Number(t.get(2)):0,E=S.zeros([3],"float64");return E.set([0],x*v-z*B),E.set([1],z*_-D*v),E.set([2],D*B-x*_),E}else throw new Error(`cross: incompatible dimensions for cross product: ${b} and ${N}`)}let c=r.shape[u],l=t.shape[s];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,f=[...r.shape.slice(0,u),...r.shape.slice(u+1)],p=[...t.shape.slice(0,s),...t.shape.slice(s+1)];if(f.length!==p.length)throw new Error("cross: incompatible shapes for cross product");for(let b=0;b<f.length;b++)if(f[b]!==p[b])throw new Error("cross: incompatible shapes for cross product");let y=f,d=o<0?y.length+1+o:o,g;if(m===0?g=y:g=[...y.slice(0,d),m,...y.slice(d)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=S.zeros(g,"float64"),A=y.reduce((b,N)=>b*N,1);for(let b=0;b<A;b++){let N=b,D=[];for(let Z=y.length-1;Z>=0;Z--)D[Z]=N%y[Z],N=Math.floor(N/y[Z]);let x=[...D.slice(0,u),0,...D.slice(u)],z=[...D.slice(0,s),0,...D.slice(s)],_=Z=>(x[u]=Z,Number(r.get(...x))),B=Z=>(z[s]=Z,Number(t.get(...z))),v=_(0),E=_(1),U=c===3?_(2):0,$=B(0),j=B(1),X=l===3?B(2):0;if(m===0)h.set(D,v*j-E*$);else{let Z=E*X-U*j,Er=U*$-v*X,Xf=v*j-E*$,$t=(Qf,Kf)=>{let rm=[...D.slice(0,d),Qf,...D.slice(d)];h.set(rm,Kf)};$t(0,Z),$t(1,Er),$t(2,Xf)}}return h}function zr(r,t=2,e,n=!1){if(typeof t!="number")throw new Error("vector_norm: ord must be a number");if(e==null){let c=r.ndim===1?r:wr(r),l=c.size,m;if(t===1/0){m=0;for(let f=0;f<l;f++)m=Math.max(m,Math.abs(Number(c.get(f))))}else if(t===-1/0){m=1/0;for(let f=0;f<l;f++)m=Math.min(m,Math.abs(Number(c.get(f))))}else if(t===0){m=0;for(let f=0;f<l;f++)Number(c.get(f))!==0&&m++}else if(t===1){m=0;for(let f=0;f<l;f++)m+=Math.abs(Number(c.get(f)))}else if(t===2){m=0;for(let f=0;f<l;f++){let p=Number(c.get(f));m+=p*p}m=Math.sqrt(m)}else{m=0;for(let f=0;f<l;f++)m+=Math.pow(Math.abs(Number(c.get(f))),t);m=Math.pow(m,1/t)}if(n){let f=new Array(r.ndim).fill(1),p=S.zeros(f,"float64");return p.set(new Array(r.ndim).fill(0),m),p}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return zr(r,t,null,!1);let i=S.zeros(a,"float64"),u=r.shape[o],s=a.reduce((c,l)=>c*l,1);for(let c=0;c<s;c++){let l=c,m=[];for(let y=a.length-1;y>=0;y--)m[y]=l%a[y],l=Math.floor(l/a[y]);let f=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],p;if(t===1/0){p=0;for(let y=0;y<u;y++)f[o]=y,p=Math.max(p,Math.abs(Number(r.get(...f))))}else if(t===-1/0){p=1/0;for(let y=0;y<u;y++)f[o]=y,p=Math.min(p,Math.abs(Number(r.get(...f))))}else if(t===0){p=0;for(let y=0;y<u;y++)f[o]=y,Number(r.get(...f))!==0&&p++}else if(t===1){p=0;for(let y=0;y<u;y++)f[o]=y,p+=Math.abs(Number(r.get(...f)))}else if(t===2){p=0;for(let y=0;y<u;y++){f[o]=y;let d=Number(r.get(...f));p+=d*d}p=Math.sqrt(p)}else{p=0;for(let y=0;y<u;y++)f[o]=y,p+=Math.pow(Math.abs(Number(r.get(...f))),t);p=Math.pow(p,1/t)}i.set(m,p)}return i}function br(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let i=0;i<n;i++)for(let u=0;u<o;u++){let s=Number(r.get(i,u));a+=s*s}a=Math.sqrt(a)}else if(t==="nuc"){let{s:i}=yr(r);a=0;for(let u=0;u<i.size;u++)a+=Number(i.get(u))}else if(t===1){a=0;for(let i=0;i<o;i++){let u=0;for(let s=0;s<n;s++)u+=Math.abs(Number(r.get(s,i)));a=Math.max(a,u)}}else if(t===-1){a=1/0;for(let i=0;i<o;i++){let u=0;for(let s=0;s<n;s++)u+=Math.abs(Number(r.get(s,i)));a=Math.min(a,u)}}else if(t===1/0){a=0;for(let i=0;i<n;i++){let u=0;for(let s=0;s<o;s++)u+=Math.abs(Number(r.get(i,s)));a=Math.max(a,u)}}else if(t===-1/0){a=1/0;for(let i=0;i<n;i++){let u=0;for(let s=0;s<o;s++)u+=Math.abs(Number(r.get(i,s)));a=Math.min(a,u)}}else if(t===2){let{s:i}=yr(r);a=Number(i.get(0))}else if(t===-2){let{s:i}=yr(r);a=Number(i.get(i.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let i=S.zeros([1,1],"float64");return i.set([0,0],a),i}return a}function To(r,t=null,e=null,n=!1){if(t===null)return e===null?zr(r,2,null,n):typeof e=="number"?zr(r,2,e,n):br(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return br(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return br(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return zr(r,t??2,e,n)}function le(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=S.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let y=0;y<n;y++)a.set([p,y],Number(r.get(p,y)));let i=[],u=[];for(let p=0;p<o;p++){let y=e-p,d=[];for(let D=p;D<e;D++)d.push(Number(a.get(D,p)));let g=0;for(let D=0;D<y;D++)g+=d[D]*d[D];if(g=Math.sqrt(g),g<1e-15){i.push(d),u.push(0);continue}let h=d[0]>=0?1:-1,A=d[0]+h*g,b=[1];for(let D=1;D<y;D++)b.push(d[D]/A);let N=h*A/g;u.push(N),i.push(b);for(let D=p;D<n;D++){let x=0;for(let z=0;z<y;z++)x+=b[z]*Number(a.get(p+z,D));for(let z=0;z<y;z++)a.set([p+z,D],Number(a.get(p+z,D))-N*b[z]*x)}}if(t==="raw"){let p=S.zeros([e,n],"float64");for(let d=0;d<e;d++)for(let g=0;g<n;g++)p.set([d,g],Number(a.get(d,g)));let y=S.zeros([o],"float64");for(let d=0;d<o;d++)y.set([d],u[d]);return{h:p,tau:y}}if(t==="r"){let p=S.zeros([o,n],"float64");for(let y=0;y<o;y++)for(let d=y;d<n;d++)p.set([y,d],Number(a.get(y,d)));return p}let s=t==="complete"?e:o,c=S.zeros([e,s],"float64");for(let p=0;p<Math.min(e,s);p++)c.set([p,p],1);for(let p=o-1;p>=0;p--){let y=i[p],d=u[p],g=e-p;for(let h=p;h<s;h++){let A=0;for(let b=0;b<g;b++)A+=y[b]*Number(c.get(p+b,h));for(let b=0;b<g;b++)c.set([p+b,h],Number(c.get(p+b,h))-d*y[b]*A)}}let l=S.zeros([e,s],"float64");for(let p=0;p<e;p++)for(let y=0;y<s;y++)l.set([p,y],Number(c.get(p,y)));let m=t==="complete"?e:o,f=S.zeros([m,n],"float64");for(let p=0;p<m;p++)for(let y=0;y<n;y++)y>=p&&f.set([p,y],Number(a.get(p,y)));return{q:l,r:f}}function Uo(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=S.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let u=0;u<=i;u++){let s=0;if(i===u){for(let l=0;l<u;l++)s+=Number(a.get(u,l))**2;let c=Number(r.get(u,u))-s;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([u,u],Math.sqrt(c))}else{for(let l=0;l<u;l++)s+=Number(a.get(i,l))*Number(a.get(u,l));let c=Number(a.get(u,u));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([i,u],(Number(r.get(i,u))-s)/c)}}if(t){let i=S.zeros([o,o],"float64");for(let u=0;u<o;u++)for(let s=u;s<o;s++)i.set([u,s],Number(a.get(s,u)));return i}return a}function yr(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=S.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let f=0;f<e;f++){let p=0;for(let y=0;y<t;y++)p+=Number(r.get(y,m))*Number(r.get(y,f));o.set([m,f],p)}let{values:a,vectors:i}=fe(o),u=Array.from({length:e},(m,f)=>f);u.sort((m,f)=>a[f]-a[m]);let s=S.zeros([n],"float64");for(let m=0;m<n;m++){let f=a[u[m]];s.set([m],Math.sqrt(Math.max(0,f)))}let c=S.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let f=0;f<e;f++)c.set([m,f],i[f][u[m]]);let l=S.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let f=0;f<n;f++){let p=Number(s.get(f));if(p>1e-10){let y=0;for(let d=0;d<e;d++)y+=Number(r.get(m,d))*Number(c.get(f,d));l.set([m,f],y/p)}}if(t>n)for(let m=n;m<t;m++){let f=new Array(t).fill(0);f[m]=1;for(let y=0;y<m;y++){let d=0;for(let g=0;g<t;g++)d+=f[g]*Number(l.get(g,y));for(let g=0;g<t;g++)f[g]=f[g]-d*Number(l.get(g,y))}let p=0;for(let y=0;y<t;y++)p+=f[y]*f[y];if(p=Math.sqrt(p),p>1e-10)for(let y=0;y<t;y++)l.set([y,m],f[y]/p)}return{u:l,s,vt:c}}function fe(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let u=0;u<t;u++){o.push([]);for(let s=0;s<t;s++)o[u].push(Number(r.get(u,s)))}let a=[];for(let u=0;u<t;u++){a.push([]);for(let s=0;s<t;s++)a[u].push(u===s?1:0)}for(let u=0;u<e;u++){let s=0,c=0,l=1;for(let b=0;b<t;b++)for(let N=b+1;N<t;N++)Math.abs(o[b][N])>s&&(s=Math.abs(o[b][N]),c=b,l=N);if(s<n)break;let m=o[c][c],f=o[l][l],p=o[c][l],y;Math.abs(m-f)<1e-15?y=Math.PI/4:y=.5*Math.atan2(2*p,f-m);let d=Math.cos(y),g=Math.sin(y),h=d*d*m+g*g*f-2*g*d*p,A=g*g*m+d*d*f+2*g*d*p;o[c][c]=h,o[l][l]=A,o[c][l]=0,o[l][c]=0;for(let b=0;b<t;b++)if(b!==c&&b!==l){let N=o[b][c],D=o[b][l];o[b][c]=d*N-g*D,o[c][b]=o[b][c],o[b][l]=g*N+d*D,o[l][b]=o[b][l]}for(let b=0;b<t;b++){let N=a[b][c],D=a[b][l];a[b][c]=d*N-g*D,a[b][l]=g*N+d*D}}let i=[];for(let u=0;u<t;u++)i.push(o[u][u]);return{values:i,vectors:a}}function $o(r,t=!0,e=!0){let n=yr(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,i=Math.min(o,a),u=S.zeros([o,i],"float64");for(let c=0;c<o;c++)for(let l=0;l<i;l++)u.set([c,l],Number(n.u.get(c,l)));let s=S.zeros([i,a],"float64");for(let c=0;c<i;c++)for(let l=0;l<a;l++)s.set([c,l],Number(n.vt.get(c,l)));return{u,s:n.s,vt:s}}return n}function ko(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:i}=me(r),u=a.data,s=i;for(let c=0;c<n;c++)s*=u[c*n+c];return s}function me(r){let[t,e]=r.shape,n=t,o=e,a=S.zeros([n,o],"float64"),i=a.data,u=r.data;for(let l=0;l<n*o;l++)i[l]=Number(u[l]);let s=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(i[l*o+l]),f=l;for(let y=l+1;y<n;y++){let d=Math.abs(i[y*o+l]);d>m&&(m=d,f=y)}if(f!==l){for(let d=0;d<o;d++){let g=i[l*o+d];i[l*o+d]=i[f*o+d],i[f*o+d]=g}let y=s[l];s[l]=s[f],s[f]=y,c=-c}let p=i[l*o+l];if(Math.abs(p)>1e-15)for(let y=l+1;y<n;y++){let d=i[y*o+l]/p;i[y*o+l]=d;for(let g=l+1;g<o;g++)i[y*o+g]=i[y*o+g]-d*i[l*o+g]}}return{lu:a,piv:s,sign:c}}function yt(r){if(r.ndim!==2)throw new Error(`inv: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`inv: matrix must be square, got ${t}x${e}`);let n=t,{lu:o,piv:a}=me(r),i=o.data,u=S.zeros([n,n],"float64"),s=u.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let f=a[m]===c?1:0;for(let p=0;p<m;p++)f-=i[m*n+p]*l[p];l[m]=f}for(let m=n-1;m>=0;m--){let f=l[m];for(let y=m+1;y<n;y++)f-=i[m*n+y]*s[y*n+c];let p=i[m*n+m];if(Math.abs(p)<1e-15)throw new Error("inv: singular matrix");s[m*n+c]=f/p}}return u}function zo(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=me(r),i=o.data,u=t.data,s=new Float64Array(n);for(let f=0;f<n;f++)s[f]=Number(u[a[f]]);let c=new Float64Array(n);for(let f=0;f<n;f++){let p=s[f];for(let y=0;y<f;y++)p-=i[f*n+y]*c[y];c[f]=p}let l=S.zeros([n],"float64"),m=l.data;for(let f=n-1;f>=0;f--){let p=c[f];for(let d=f+1;d<n;d++)p-=i[f*n+d]*m[d];let y=i[f*n+f];if(Math.abs(y)<1e-15)throw new Error("solve: singular matrix");m[f]=p/y}return l}function Co(r,t){if(r.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`solve: coefficient matrix must be square, got ${e}x${n}`);let o=e;if(t.ndim===1){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},)`);return zo(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],i=S.zeros([o,a],"float64");for(let u=0;u<a;u++){let s=S.zeros([o],"float64");for(let l=0;l<o;l++)s.set([l],Number(t.get(l,u)));let c=zo(r,s);for(let l=0;l<o;l++)i.set([l,u],Number(c.get(l)))}return i}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function Fo(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:i,vt:u}=yr(r),s=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(i.get(0))*c,f=0;for(let A=0;A<s;A++)Number(i.get(A))>m&&f++;let p=t.ndim===1?G(t,[t.size,1]):t,y=p.shape[1];if(p.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let d=S.zeros([o,y],"float64");for(let A=0;A<y;A++){let b=new Array(n).fill(0);for(let N=0;N<n;N++)for(let D=0;D<n;D++)b[N]+=Number(a.get(D,N))*Number(p.get(D,A));for(let N=0;N<o;N++){let D=0;for(let x=0;x<s;x++){let z=Number(i.get(x));z>m&&(D+=Number(u.get(x,N))*b[x]/z)}d.set([N,A],D)}}let g;if(n>o){g=S.zeros([y],"float64");for(let A=0;A<y;A++){let b=0;for(let N=0;N<n;N++){let D=0;for(let z=0;z<o;z++)D+=Number(r.get(N,z))*Number(d.get(z,A));let x=D-Number(p.get(N,A));b+=x*x}g.set([A],b)}}else g=S.zeros([0],"float64");return{x:t.ndim===1?G(d,[o]):d,residuals:g,rank:f,s:i}}function Vo(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s:u}=yr(r),s=Math.min(e,n),c=Number(u.get(0)),l=Number(u.get(s-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=br(r,t),a=yt(r),i=br(a,t);return o*i}function Po(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let i=0;i<r.size;i++)if(Number(r.get(i))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=yr(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let i=0;i<e.size;i++)Number(e.get(i))>o&&a++;return a}function qo(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=S.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,i=t;t<0&&(a=yt(r),i=-t);let u=S.zeros([o,o],"float64");for(let c=0;c<o;c++)u.set([c,c],1);let s=S.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)s.set([c,l],Number(a.get(c,l)));for(;i>0;)i&1&&(u=rr(u,s)),s=rr(s,s),i>>=1;return u}function jo(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:i}=yr(r),u=Math.min(e,n),c=Number(a.get(0))*t,l=S.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let f=0;f<e;f++){let p=0;for(let y=0;y<u;y++){let d=Number(a.get(y));d>c&&(p+=Number(i.get(y,m))*Number(o.get(f,y))/d)}l.set([m,f],p)}return l}function pe(r){if(r.ndim!==2)throw new Error(`eig: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`eig: matrix must be square, got ${t}x${e}`);let n=t,o=!0;r:for(let c=0;c<n;c++)for(let l=c+1;l<n;l++)if(Math.abs(Number(r.get(c,l))-Number(r.get(l,c)))>1e-10){o=!1;break r}if(o){let{values:c,vectors:l}=fe(r),m=S.zeros([n],"float64"),f=S.zeros([n,n],"float64");for(let p=0;p<n;p++){m.set([p],c[p]);for(let y=0;y<n;y++)f.set([y,p],l[y][p])}return{w:m,v:f}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:i}=Em(r),u=S.zeros([n],"float64"),s=S.zeros([n,n],"float64");for(let c=0;c<n;c++){u.set([c],a[c]);for(let l=0;l<n;l++)s.set([l,c],i[l][c])}return{w:u,v:s}}function Em(r){let t=r.shape[0],e=1e3,n=1e-10,o=S.zeros([t,t],"float64");for(let s=0;s<t;s++)for(let c=0;c<t;c++)o.set([s,c],Number(r.get(s,c)));let a=S.zeros([t,t],"float64");for(let s=0;s<t;s++)a.set([s,s],1);for(let s=0;s<e;s++){let c=0;for(let p=0;p<t;p++)for(let y=0;y<t;y++)p!==y&&(c+=Number(o.get(p,y))**2);if(Math.sqrt(c)<n*t)break;let l=le(o,"reduced"),m=l.q,f=l.r;o=rr(f,m),a=rr(a,m)}let i=[];for(let s=0;s<t;s++)i.push(Number(o.get(s,s)));let u=[];for(let s=0;s<t;s++){u.push([]);for(let c=0;c<t;c++)u[s].push(Number(a.get(s,c)))}return{values:i,vectors:u}}function ye(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=S.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let f=0;f<o;f++)t==="L"?m>=f&&(a.set([m,f],Number(r.get(m,f))),a.set([f,m],Number(r.get(m,f)))):f>=m&&(a.set([m,f],Number(r.get(m,f))),a.set([f,m],Number(r.get(m,f))));let{values:i,vectors:u}=fe(a),s=Array.from({length:o},(m,f)=>f);s.sort((m,f)=>i[m]-i[f]);let c=S.zeros([o],"float64"),l=S.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],i[s[m]]);for(let f=0;f<o;f++)l.set([f,m],u[f][s[m]])}return{w:c,v:l}}function Ro(r){let{w:t}=pe(r);return t}function Lo(r,t="L"){let{w:e}=ye(r,t);return e}var Wo=k(()=>{"use strict";L();W();se()});function Go(r){return V(r,Math.sqrt,!1)}function Zo(r,t){return typeof t=="number"?Mm(r,t):P(r,t,Math.pow,"power")}function Mm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,s=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=S.zeros(n,s),l=c.data;if(w(e))if(w(s)&&Number.isInteger(t)&&t>=0){let m=o,f=l;for(let p=0;p<a;p++)f[p]=m[p]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function Ho(r){return V(r,Math.exp,!1)}function Yo(r){return V(r,t=>Math.pow(2,t),!1)}function Jo(r){return V(r,Math.expm1,!1)}function Xo(r){return V(r,Math.log,!1)}function Qo(r){return V(r,Math.log2,!1)}function Ko(r){return V(r,Math.log10,!1)}function ra(r){return V(r,Math.log1p,!1)}function ta(r,t){return typeof t=="number"?Um(r,t):Tm(r,t)}function Tm(r,t){let e=pr(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=S.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(w(o),Number(r.iget(c))),m=(w(a),Number(t.iget(c))),f=Math.max(l,m),p=Math.min(l,m);s[c]=f+Math.log1p(Math.exp(p-f))}return u}function Um(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=S.zeros(n,a),u=i.data;for(let s=0;s<o;s++){let c=(w(e),Number(r.data[s])),l=Math.max(c,t),m=Math.min(c,t);u[s]=l+Math.log1p(Math.exp(m-l))}return i}function ea(r,t){return typeof t=="number"?km(r,t):$m(r,t)}function $m(r,t){let e=pr(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=S.zeros(e,i),s=u.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(w(o),Number(r.iget(l))),f=(w(a),Number(t.iget(l))),p=Math.max(m,f),y=Math.min(m,f);s[l]=p+Math.log1p(Math.pow(2,y-p))*c}return u}function km(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=S.zeros(n,a),u=i.data,s=Math.LOG2E;for(let c=0;c<o;c++){let l=(w(e),Number(r.data[c])),m=Math.max(l,t),f=Math.min(l,t);u[c]=m+Math.log1p(Math.pow(2,f-m))*s}return i}var na=k(()=>{"use strict";L();lr();W()});function oa(r){return V(r,Math.sin,!1)}function aa(r){return V(r,Math.cos,!1)}function sa(r){return V(r,Math.tan,!1)}function ia(r){return V(r,Math.asin,!1)}function ua(r){return V(r,Math.acos,!1)}function ca(r){return V(r,Math.atan,!1)}function la(r,t){return typeof t=="number"?Vm(r,t):Fm(r,t)}function Fm(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=S.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(w(o),Number(r.data[c])),m=(w(a),Number(t.data[c]));s[c]=Math.atan2(l,m)}return u}function Vm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=S.zeros(n,i),s=u.data;if(w(e))for(let c=0;c<a;c++)s[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)s[c]=Math.atan2(Number(o[c]),t);return u}function fa(r,t){return typeof t=="number"?qm(r,t):Pm(r,t)}function Pm(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",u=S.zeros(e,i),s=u.data;for(let c=0;c<n;c++){let l=(w(o),Number(r.data[c])),m=(w(a),Number(t.data[c]));s[c]=Math.hypot(l,m)}return u}function qm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=S.zeros(n,i),s=u.data;if(w(e))for(let c=0;c<a;c++)s[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)s[c]=Math.hypot(Number(o[c]),t);return u}function ma(r){let t=180/Math.PI;return V(r,e=>e*t,!1)}function pa(r){let t=Math.PI/180;return V(r,e=>e*t,!1)}var ya=k(()=>{"use strict";L();lr();W()});function da(r){return V(r,Math.sinh,!1)}function ga(r){return V(r,Math.cosh,!1)}function ba(r){return V(r,Math.tanh,!1)}function Aa(r){return V(r,Math.asinh,!1)}function ha(r){return V(r,Math.acosh,!1)}function Sa(r){return V(r,Math.atanh,!1)}var Na=k(()=>{"use strict";lr()});function dt(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=or([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let i=0;i<o;i++)if(a[i]!==t[i])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return ar(r,t)}function Da(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=or(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>ar(n,e))}function xa(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let y=r.size;for(let A of t){let b=A<0?y+A:A;if(b<0||b>=y)throw new Error(`index ${A} is out of bounds for axis 0 with size ${y}`)}let d=t.length,g=T(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let h=new g(d);for(let A=0;A<d;A++){let b=t[A];b<0&&(b=y+b);let N=r.iget(b);w(a),h[A]=N}return S.fromData(h,[d],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i];for(let y of t){let d=y<0?u+y:y;if(d<0||d>=u)throw new Error(`index ${y} is out of bounds for axis ${i} with size ${u}`)}let s=Array.from(n);s[i]=t.length;let c=s.reduce((y,d)=>y*d,1),l=T(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),f=H(s),p=new Array(o).fill(0);for(let y=0;y<c;y++){let d=[...p],g=p[i],h=t[g];h<0&&(h=u+h),d[i]=h;let A=r.get(...d),b=0;for(let N=0;N<o;N++)b+=p[N]*f[N];w(a),m[b]=A;for(let N=o-1;N>=0&&(p[N]++,!(p[N]<s[N]));N--)p[N]=0}return S.fromData(m,s,a)}function wa(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let i=0;i<e.size;i++)a.push(e.iget(i));if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let i=[...a];a=[];for(let u=0;u<t.length;u++)a.push(i[u%i.length])}}for(let i=0;i<t.length;i++){let u=t[i];if(u<0&&(u=n+u),u<0||u>=n)throw new Error(`index ${t[i]} is out of bounds for axis 0 with size ${n}`);let s=a[i];w(o)?typeof s!="bigint"&&(s=BigInt(Math.round(Number(s)))):typeof s=="bigint"&&(s=Number(s)),r.iset(u,s)}}function za(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(f=>Array.from(f.shape));a.unshift(Array.from(e));let i=or(a);if(i===null)throw new Error("operands could not be broadcast together");let u=ar(r,i),s=t.map(f=>ar(f,i)),c=i.reduce((f,p)=>f*p,1),l=T(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let f=0;f<c;f++){let p=Number(u.iget(f));if(p<0||p>=n)throw new Error(`index ${p} is out of bounds for axis 0 with size ${n}`);let y=s[p].iget(f);w(o),m[f]=y}return S.fromData(m,i,o)}function Ia(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),i=t.iget(o);if(e){let u=typeof a=="number"&&Number.isNaN(a),s=typeof i=="number"&&Number.isNaN(i);if(u&&s)continue}if(a!==i)return!1}return!0}function _a(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=t.shape;if(u.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${u.length} vs ${o}`);for(let d=0;d<o;d++)if(d!==i&&u[d]!==n[d]&&u[d]!==1&&n[d]!==1)throw new Error(`index ${u[d]} is out of bounds for size ${n[d]} in dimension ${d}`);let s=Array.from(u),c=s.reduce((d,g)=>d*g,1),l=T(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),f=H(n),p=H(u),y=n[i];for(let d=0;d<c;d++){let g=new Array(o),h=d;for(let z=o-1;z>=0;z--)g[z]=h%s[z],h=Math.floor(h/s[z]);let A=0;for(let z=0;z<o;z++){let _=u[z]===1?0:g[z];A+=_*p[z]}let b=Number(t.iget(A));if(b<0&&(b=y+b),b<0||b>=y)throw new Error(`index ${b} is out of bounds for axis ${i} with size ${y}`);let N=[...g];N[i]=b;let D=0;for(let z=0;z<o;z++){let _=n[z]===1?0:N[z];D+=_*f[z]}let x=r.iget(D);w(a),m[d]=x}return S.fromData(m,s,a)}function Ba(r,t,e,n){let o=r.shape,a=o.length,i=r.dtype,u=n<0?a+n:n;if(u<0||u>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let s=t.shape,c=e.shape;if(s.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[u],m=H(o),f=H(s),p=H(c),y=s.reduce((d,g)=>d*g,1);for(let d=0;d<y;d++){let g=new Array(a),h=d;for(let _=a-1;_>=0;_--)g[_]=h%s[_],h=Math.floor(h/s[_]);let A=0;for(let _=0;_<a;_++)A+=g[_]*f[_];let b=Number(t.iget(A));if(b<0&&(b=l+b),b<0||b>=l)throw new Error(`index ${b} is out of bounds for axis ${u} with size ${l}`);let N=0;for(let _=0;_<a;_++){let B=c[_]===1?0:g[_];N+=B*p[_]}let D=e.iget(N),x=[...g];x[u]=b;let z=0;for(let _=0;_<a;_++)z+=x[_]*m[_];w(i)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(z,D)}}function va(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let u=0;u<e.size;u++)a.push(e.iget(u))}let i=0;for(let u=0;u<n;u++)if(t.iget(u)){let c=a[i%a.length];w(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(u,c),i++}}function Ea(r,t,e){let n=t.shape,o=n.length,a=t.dtype,i=t.data,u=w(a);if(e===void 0){let A=0,b=Math.min(r.size,t.size);for(let z=0;z<b;z++)r.iget(z)&&A++;let N=T(a);if(!N)throw new Error(`Cannot compress with dtype ${a}`);let D=new N(A),x=0;for(let z=0;z<b;z++)r.iget(z)&&(D[x]=i[z],x++);return S.fromData(D,[A],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[s],l=Math.min(r.size,c),m=[];for(let A=0;A<l;A++)r.iget(A)&&m.push(A);let f=m.length,p=[...n];p[s]=f;let y=p.reduce((A,b)=>A*b,1),d=T(a);if(!d)throw new Error(`Cannot compress with dtype ${a}`);let g=new d(y),h=H(n);if(s===0){let A=h[0],b=n.slice(1).reduce((D,x)=>D*x,1),N=0;for(let D=0;D<f;D++){let z=m[D]*A;if(u){let _=i,B=g;for(let v=0;v<b;v++)B[N++]=_[z+v]}else{let _=i,B=g;for(let v=0;v<b;v++)B[N++]=_[z+v]}}}else{let A=n.slice(0,s).reduce((D,x)=>D*x,1),b=n.slice(s+1).reduce((D,x)=>D*x,1),N=0;for(let D=0;D<A;D++)for(let x=0;x<f;x++){let z=m[x],_=0,B=D;for(let v=s-1;v>=0;v--){let E=B%n[v];B=Math.floor(B/n[v]),_+=E*h[v]}if(_+=z*h[s],u){let v=i,E=g;for(let U=0;U<b;U++)E[N++]=v[_+U]}else{let v=i,E=g;for(let U=0;U<b;U++)E[N++]=v[_+U]}}}return S.fromData(g,p,a)}function Oa(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(f=>Array.from(f.shape)),...t.map(f=>Array.from(f.shape))],o=or(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,i=o.reduce((f,p)=>f*p,1),u=T(a);if(!u)throw new Error(`Cannot select with dtype ${a}`);let s=e;w(a)?s=typeof e=="bigint"?e:BigInt(e):s=typeof e=="bigint"?Number(e):e;let c=new u(i);for(let f=0;f<i;f++)w(a),c[f]=s;let l=r.map(f=>ar(f,o)),m=t.map(f=>ar(f,o));for(let f=0;f<i;f++)for(let p=0;p<r.length;p++)if(l[p].iget(f)){let y=m[p].iget(f);w(a),c[f]=y;break}return S.fromData(c,o,a)}function Ma(r,t,e){let n=r.size,o=r.dtype,a=[];for(let u=0;u<e.size;u++)a.push(e.iget(u));if(a.length===0)return;let i=0;for(let u=0;u<n;u++)if(t.iget(u)){let c=a[i%a.length];w(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(u,c),i++}}function de(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(S.fromData(new Int32Array(e),[r],"int32"));return n}function Ta(r){let t=r.shape,e=t.length;if(e<2)throw new Error("array must be at least 2-D");let n=t[0];for(let o=1;o<e;o++)if(t[o]!==n)throw new Error("All dimensions of input must be equal");return de(n,e)}function ge(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let u=0;u<=Math.min(i+t,n-1);u++)u>=0&&(o.push(i),a.push(u));return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function Ua(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return ge(e[0],t,e[1])}function be(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let u=Math.max(i+t,0);u<n;u++)o.push(i),a.push(u);return[S.fromData(new Int32Array(o),[o.length],"int32"),S.fromData(new Int32Array(a),[a.length],"int32")]}function $a(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return be(e[0],t,e[1])}function ka(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],i=[];for(let u=0;u<r;u++)for(let s=0;s<r;s++)n.get(u,s)&&(a.push(u),i.push(s));return[S.fromData(new Int32Array(a),[a.length],"int32"),S.fromData(new Int32Array(i),[i.length],"int32")]}function Ca(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((s,c)=>s*c,1),a=T(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let i=new a(o),u=r.reduce((s,c)=>s*c,1);for(let s=0;s<e;s++){let c=s*u;for(let l=0;l<u;l++){let m=new Array(e),f=l;for(let y=e-1;y>=0;y--)m[y]=f%r[y],f=Math.floor(f/r[y]);let p=m[s];t==="int64"?i[c+l]=BigInt(p):i[c+l]=p}}return S.fromData(i,n,t)}function Fa(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,i=o.dtype,u=new Array(t).fill(1);u[n]=a;let s=T(i);if(!s)throw new Error(`Cannot create ix_ with dtype ${i}`);let c=new s(a);for(let l=0;l<a;l++){let m=o.iget(l);w(i),c[l]=m}e.push(S.fromData(c,u,i))}return e}function Va(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),i=new Array(o),u=1;for(let s=o-1;s>=0;s--)i[s]=u,u*=t[s];for(let s=0;s<n;s++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(s)),f=t[l];if(e==="wrap")m=(m%f+f)%f;else if(e==="clip")m=Math.max(0,Math.min(m,f-1));else if(m<0||m>=f)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${f}`);c+=m*i[l]}a[s]=c}return S.fromData(a,[n],"int32")}function Pa(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let i=o.length,u=t.reduce((l,m)=>l*m,1),s=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)s[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)s[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(i);c.push(S.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<i;l++){let m=o[l];if(m<0||m>=u)throw new Error(`index ${m} is out of bounds for array with size ${u}`);if(e==="C")for(let f=0;f<n;f++){let p=Math.floor(m/s[f]);m=m%s[f],c[f].data[l]=p%t[f]}else for(let f=n-1;f>=0;f--){let p=Math.floor(m/s[f]);m=m%s[f],c[f].data[l]=p%t[f]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return S.fromData(new Int32Array([Number(m)]),[],"int32")}):c}function qa(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let m=c;m<o;m++)l*=n[m];a+=l}}let i=r.data,u=r.size,s=Math.min(...n);if(e&&o===2&&(s=Math.max(n[0],n[1])),typeof t=="number")for(let c=0;c<s&&c*a<u;c++){let l=c*a;if(l<u)i[l]=t;else break}else{let c=t.data,l=t.size;for(let m=0;m<s&&m*a<u;m++){let f=m*a;if(f<u)i[f]=c[m%l];else break}}}var ja=k(()=>{"use strict";L();W();Qr()});function tr(r,t){if(!Sn(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function kr(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Wa(r,t){return tr(r.dtype,"bitwise_and"),typeof t=="number"?Gm(r,t):(tr(t.dtype,"bitwise_and"),kr(r,t)?Wm(r,t):P(r,t,(e,n)=>e&n,"bitwise_and"))}function Wm(r,t){let e=C(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;if(!w(r.dtype)||!w(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m&f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]&m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]&i[s];return n}function Gm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]&l}else for(let s=0;s<a;s++)u[s]=o[s]&t;return i}function Ga(r,t){return tr(r.dtype,"bitwise_or"),typeof t=="number"?Hm(r,t):(tr(t.dtype,"bitwise_or"),kr(r,t)?Zm(r,t):P(r,t,(e,n)=>e|n,"bitwise_or"))}function Zm(r,t){let e=C(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;if(!w(r.dtype)||!w(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m|f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]|m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]|i[s];return n}function Hm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]|l}else for(let s=0;s<a;s++)u[s]=o[s]|t;return i}function Za(r,t){return tr(r.dtype,"bitwise_xor"),typeof t=="number"?Jm(r,t):(tr(t.dtype,"bitwise_xor"),kr(r,t)?Ym(r,t):P(r,t,(e,n)=>e^n,"bitwise_xor"))}function Ym(r,t){let e=C(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;if(!w(r.dtype)||!w(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),f=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));s[l]=m^f}else{let l=a,m=i;for(let f=0;f<o;f++)s[f]=l[f]^m[f]}}else for(let s=0;s<o;s++)u[s]=a[s]^i[s];return n}function Jm(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]^l}else for(let s=0;s<a;s++)u[s]=o[s]^t;return i}function Ae(r){tr(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=S.zeros(e,t),i=a.data;if(w(t)){let u=n,s=i;for(let c=0;c<o;c++)s[c]=~u[c]}else for(let u=0;u<o;u++)i[u]=~n[u];return a}function Ha(r){return Ae(r)}function Ya(r,t){if(tr(r.dtype,"left_shift"),typeof t=="number")return Ra(r,t);if(tr(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=w(t.dtype)?Number(t.data[0]):t.data[0];return Ra(r,e)}return kr(r,t)?Xm(r,t):P(r,t,(e,n)=>e<<n,"left_shift")}function Xm(r,t){let e=C(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));s[c]=l<<m}}else for(let s=0;s<o;s++)u[s]=a[s]<<i[s];return n}function Ra(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]<<l}else for(let s=0;s<a;s++)u[s]=o[s]<<t;return i}function Ja(r,t){if(tr(r.dtype,"right_shift"),typeof t=="number")return La(r,t);if(tr(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=w(t.dtype)?Number(t.data[0]):t.data[0];return La(r,e)}return kr(r,t)?Qm(r,t):P(r,t,(e,n)=>e>>n,"right_shift")}function Qm(r,t){let e=C(r.dtype,t.dtype),n=S.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,u=n.data;if(w(e)){let s=u;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));s[c]=l>>m}}else for(let s=0;s<o;s++)u[s]=a[s]>>i[s];return n}function La(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=S.zeros(n,e),u=i.data;if(w(e)){let s=o,c=u,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=s[m]>>l}else for(let s=0;s<a;s++)u[s]=o[s]>>t;return i}function Xa(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],i=Math.ceil(a/8),u=[...n];u[t]=i;let s=S.zeros(u,"uint8"),c=s.data;if(o===1){for(let g=0;g<i;g++){let h=0;for(let A=0;A<8;A++){let b=g*8+A;if(b<a){let N=Number(r.data[b])!==0?1:0;e==="big"?h|=N<<7-A:h|=N<<A}}c[g]=h}return s}let l=n.slice(0,t),m=n.slice(t+1),f=l.reduce((g,h)=>g*h,1),p=m.reduce((g,h)=>g*h,1),y=gt(n),d=gt(u);for(let g=0;g<f;g++)for(let h=0;h<p;h++)for(let A=0;A<i;A++){let b=0;for(let z=0;z<8;z++){let _=A*8+z;if(_<a){let B=0,v=g;for(let $=0;$<t;$++){let j=$<t-1?l.slice($+1).reduce((Z,Er)=>Z*Er,1):1,X=Math.floor(v/j);v%=j,B+=X*y[$]}B+=_*y[t];let E=h;for(let $=t+1;$<o;$++){let j=$<o-1?m.slice($-t).reduce((Z,Er)=>Z*Er,1):1,X=Math.floor(E/j);E%=j,B+=X*y[$]}let U=Number(r.data[B])!==0?1:0;e==="big"?b|=U<<7-z:b|=U<<z}}let N=0,D=g;for(let z=0;z<t;z++){let _=z<t-1?l.slice(z+1).reduce((v,E)=>v*E,1):1,B=Math.floor(D/_);D%=_,N+=B*d[z]}N+=A*d[t];let x=h;for(let z=t+1;z<o;z++){let _=z<o-1?m.slice(z-t).reduce((v,E)=>v*E,1):1,B=Math.floor(x/_);x%=_,N+=B*d[z]}c[N]=b}return s}function Qa(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=o[t],u=i*8;e>=0&&(u=e);let s=[...o];s[t]=u;let c=S.zeros(s,"uint8"),l=c.data;if(a===1){for(let h=0;h<i;h++){let A=Number(r.data[h]);for(let b=0;b<8;b++){let N=h*8+b;if(N>=u)break;n==="big"?l[N]=A>>7-b&1:l[N]=A>>b&1}}return c}let m=o.slice(0,t),f=o.slice(t+1),p=m.reduce((h,A)=>h*A,1),y=f.reduce((h,A)=>h*A,1),d=gt(o),g=gt(s);for(let h=0;h<p;h++)for(let A=0;A<y;A++)for(let b=0;b<i;b++){let N=0,D=h;for(let _=0;_<t;_++){let B=_<t-1?m.slice(_+1).reduce((E,U)=>E*U,1):1,v=Math.floor(D/B);D%=B,N+=v*d[_]}N+=b*d[t];let x=A;for(let _=t+1;_<a;_++){let B=_<a-1?f.slice(_-t).reduce((E,U)=>E*U,1):1,v=Math.floor(x/B);x%=B,N+=v*d[_]}let z=Number(r.data[N]);for(let _=0;_<8;_++){let B=b*8+_;if(B>=u)break;let v=0;D=h;for(let E=0;E<t;E++){let U=E<t-1?m.slice(E+1).reduce((j,X)=>j*X,1):1,$=Math.floor(D/U);D%=U,v+=$*g[E]}v+=B*g[t],x=A;for(let E=t+1;E<a;E++){let U=E<a-1?f.slice(E-t).reduce((j,X)=>j*X,1):1,$=Math.floor(x/U);x%=U,v+=$*g[E]}n==="big"?l[v]=z>>7-_&1:l[v]=z>>_&1}}return c}function gt(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}var Ka=k(()=>{"use strict";L();W();lr()});function Ir(r){return r!==0&&r!==0n}function Fr(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function ts(r,t){return typeof t=="number"?tp(r,t):Fr(r,t)?rp(r,t):Q(r,t,(e,n)=>Ir(e)&&Ir(n))}function rp(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=w(r.dtype),u=w(t.dtype);if(i||u)for(let s=0;s<a;s++){let c=i?n[s]!==0n:n[s]!==0,l=u?o[s]!==0n:o[s]!==0;e[s]=c&&l?1:0}else for(let s=0;s<a;s++)e[s]=n[s]!==0&&o[s]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function tp(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(w(r.dtype)){let i=n;for(let u=0;u<a;u++)e[u]=i[u]!==0n&&o?1:0}else for(let i=0;i<a;i++)e[i]=n[i]!==0&&o?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function es(r,t){return typeof t=="number"?np(r,t):Fr(r,t)?ep(r,t):Q(r,t,(e,n)=>Ir(e)||Ir(n))}function ep(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=w(r.dtype),u=w(t.dtype);if(i||u)for(let s=0;s<a;s++){let c=i?n[s]!==0n:n[s]!==0,l=u?o[s]!==0n:o[s]!==0;e[s]=c||l?1:0}else for(let s=0;s<a;s++)e[s]=n[s]!==0||o[s]!==0?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function np(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(w(r.dtype)){let i=n;for(let u=0;u<a;u++)e[u]=i[u]!==0n||o?1:0}else for(let i=0;i<a;i++)e[i]=n[i]!==0||o?1:0;return S.fromData(e,Array.from(r.shape),"bool")}function ns(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]===0n?1:0}else for(let o=0;o<n;o++)t[o]=e[o]===0?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function os(r,t){return typeof t=="number"?ap(r,t):Fr(r,t)?op(r,t):Q(r,t,(e,n)=>Ir(e)!==Ir(n))}function op(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=w(r.dtype),u=w(t.dtype);if(i||u)for(let s=0;s<a;s++){let c=i?n[s]!==0n:n[s]!==0,l=u?o[s]!==0n:o[s]!==0;e[s]=c!==l?1:0}else for(let s=0;s<a;s++){let c=n[s]!==0,l=o[s]!==0;e[s]=c!==l?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function ap(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(w(r.dtype)){let i=n;for(let u=0;u<a;u++){let s=i[u]!==0n;e[u]=s!==o?1:0}}else for(let i=0;i<a;i++){let u=n[i]!==0;e[i]=u!==o?1:0}return S.fromData(e,Array.from(r.shape),"bool")}function as(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype))for(let o=0;o<n;o++)t[o]=1;else for(let o=0;o<n;o++){let a=e[o];t[o]=Number.isFinite(a)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function ss(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++){let a=e[o];t[o]=!Number.isFinite(a)&&!Number.isNaN(a)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function is(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++)t[o]=Number.isNaN(e[o])?1:0;return S.fromData(t,Array.from(r.shape),"bool")}function us(r){let t=new Uint8Array(r.size);return S.fromData(t,Array.from(r.shape),"bool")}function cs(r,t){if(typeof t=="number")return ip(r,t);if(Fr(r,t))return sp(r,t);let e=pr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,i=bt(r,e),u=bt(t,e);for(let s=0;s<n;s++){let c=Number(i.iget(s)),l=Number(u.iget(s));a[s]=Math.sign(l)*Math.abs(c)}return o}function sp(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,i=t.data,u=w(r.dtype),s=w(t.dtype);for(let c=0;c<o;c++){let l=u?Number(a[c]):a[c],m=s?Number(i[c]):i[c];n[c]=Math.sign(m)*Math.abs(l)}return e}function ip(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,i=Math.sign(t);if(w(r.dtype)){let u=o;for(let s=0;s<a;s++)n[s]=i*Math.abs(Number(u[s]))}else for(let u=0;u<a;u++)n[u]=i*Math.abs(o[u]);return e}function ls(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(w(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]<0n?1:0}else for(let o=0;o<n;o++){let a=e[o];t[o]=a<0||Object.is(a,-0)?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function fs(r,t){if(typeof t=="number")return cp(r,t);if(Fr(r,t))return up(r,t);let e=pr(r.shape,t.shape),n=e.reduce((s,c)=>s*c,1),o=S.zeros(e,"float64"),a=o.data,i=bt(r,e),u=bt(t,e);for(let s=0;s<n;s++){let c=Number(i.iget(s)),l=Number(u.iget(s));a[s]=Cr(c,l)}return o}function up(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,i=t.data,u=w(r.dtype),s=w(t.dtype);for(let c=0;c<o;c++){let l=u?Number(a[c]):a[c],m=s?Number(i[c]):i[c];n[c]=Cr(l,m)}return e}function cp(r,t){let e=S.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;if(w(r.dtype)){let i=o;for(let u=0;u<a;u++)n[u]=Cr(Number(i[u]),t)}else for(let i=0;i<a;i++)n[i]=Cr(o[i],t);return e}function Cr(r,t){if(Number.isNaN(r)||Number.isNaN(t))return NaN;if(r===t)return t;if(r===0)return t>0?Number.MIN_VALUE:-Number.MIN_VALUE;let e=new ArrayBuffer(8),n=new Float64Array(e),o=new BigInt64Array(e);n[0]=r;let a=o[0];return r>0&&t>r||r<0&&t>r?a=a+1n:a=a-1n,o[0]=a,n[0]}function ms(r){let t=S.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.data,o=r.size;if(w(r.dtype)){let a=n;for(let i=0;i<o;i++)e[i]=rs(Number(a[i]))}else for(let a=0;a<o;a++)e[a]=rs(n[a]);return t}function rs(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=Cr(r,1/0);return Math.abs(e-r)}function bt(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let i=n-e+a,u=r.shape[a],s=t[i];if(u===s)o[i]=r.strides[a];else if(u===1)o[i]=0;else throw new Error("Invalid broadcast")}return S.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function ps(r){let t=new Uint8Array(r.size);return S.fromData(t,Array.from(r.shape),"bool")}function ys(r){return!1}function ds(r){let t=new Uint8Array(r.size).fill(1);return S.fromData(t,Array.from(r.shape),"bool")}function gs(r){return!0}function bs(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!w(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===-1/0?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function As(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!w(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===1/0?1:0}return S.fromData(t,Array.from(r.shape),"bool")}function hs(r){return r.isFContiguous}function Ss(r,t=100){return r.copy()}function Ns(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function Ds(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function xs(r,t){let n={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[t];return n?n.includes(r):!1}function ws(r,t){let e=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],n=e.indexOf(r),o=e.indexOf(t);return n<=o?r:t}var zs=k(()=>{"use strict";L();W();lr();lr()});function he(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=r.copy(),s=u.data,c=e[i],l=Array.from(e).filter((f,p)=>p!==i),m=l.length===0?1:l.reduce((f,p)=>f*p,1);if(w(o)){let f=a,p=s;for(let y=0;y<m;y++){let d=[];for(let g=0;g<c;g++){let h=M(y,i,g,e),A=O(h,e);d.push({value:f[A],idx:g})}d.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<c;g++){let h=M(y,i,g,e),A=O(h,e);p[A]=d[g].value}}}else for(let f=0;f<m;f++){let p=[];for(let y=0;y<c;y++){let d=M(f,i,y,e),g=O(d,e);p.push(Number(a[g]))}p.sort((y,d)=>isNaN(y)&&isNaN(d)?0:isNaN(y)?1:isNaN(d)?-1:y-d);for(let y=0;y<c;y++){let d=M(f,i,y,e),g=O(d,e);s[g]=p[y]}}return u}function Se(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return S.zeros([0],"int32");let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=S.zeros(Array.from(e),"int32"),s=u.data,c=e[i],l=Array.from(e).filter((f,p)=>p!==i),m=l.length===0?1:l.reduce((f,p)=>f*p,1);if(w(o)){let f=a;for(let p=0;p<m;p++){let y=[];for(let d=0;d<c;d++){let g=M(p,i,d,e),h=O(g,e);y.push({value:f[h],idx:d})}y.sort((d,g)=>d.value<g.value?-1:d.value>g.value?1:0);for(let d=0;d<c;d++){let g=M(p,i,d,e),h=O(g,e);s[h]=y[d].idx}}}else for(let f=0;f<m;f++){let p=[];for(let y=0;y<c;y++){let d=M(f,i,y,e),g=O(d,e);p.push({value:Number(a[g]),idx:y})}p.sort((y,d)=>isNaN(y.value)&&isNaN(d.value)?0:isNaN(y.value)?1:isNaN(d.value)?-1:y.value-d.value);for(let y=0;y<c;y++){let d=M(f,i,y,e),g=O(d,e);s[g]=p[y].idx}}return u}function Is(r){if(r.length===0)return S.zeros([0],"int32");let e=r[0].size;for(let i of r){if(i.ndim!==1)throw new Error("keys must be 1D arrays");if(i.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let i=0;i<e;i++)n.push(i);n.sort((i,u)=>{for(let s=r.length-1;s>=0;s--){let l=r[s].data,m=Number(l[i]),f=Number(l[u]);if(!(isNaN(m)&&isNaN(f))){if(isNaN(m))return 1;if(isNaN(f)||m<f)return-1;if(m>f)return 1}}return 0});let o=S.zeros([e],"int32"),a=o.data;for(let i=0;i<e;i++)a[i]=n[i];return o}function fp(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],u=r[n],s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++){let f=r[m],p=isNaN(f),y=isNaN(c);!p&&(y||f<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function mp(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],u=r[n],s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s];[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++)r[m]<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function pp(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,u=r[n].value,s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++){let f=r[m].value,p=isNaN(f),y=isNaN(c);!p&&(y||f<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function yp(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,u=r[n].value,s;a<=i&&i<=u||u<=i&&i<=a?s=o:i<=a&&a<=u||u<=a&&a<=i?s=e:s=n;let c=r[s].value;[r[s],r[n]]=[r[n],r[s]];let l=e;for(let m=e;m<n;m++)r[m].value<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Ne(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let i=e;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[i],s=t;if(s<0&&(s=u+s),s<0||s>=u)throw new Error(`kth(=${t}) out of bounds (${u})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((p,y)=>y!==i),f=m.length===0?1:m.reduce((p,y)=>p*y,1);if(w(a)){let p=l;for(let y=0;y<f;y++){let d=[];for(let g=0;g<u;g++){let h=M(y,i,g,n),A=O(h,n);d.push(p[A])}mp(d,s);for(let g=0;g<u;g++){let h=M(y,i,g,n),A=O(h,n);p[A]=d[g]}}}else for(let p=0;p<f;p++){let y=[];for(let d=0;d<u;d++){let g=M(p,i,d,n),h=O(g,n);y.push(Number(l[h]))}fp(y,s);for(let d=0;d<u;d++){let g=M(p,i,d,n),h=O(g,n);l[h]=y[d]}}return c}function De(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,i=r.data;if(o===0)return S.zeros([0],"int32");let u=e;if(u<0&&(u=o+u),u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[u],c=t;if(c<0&&(c=s+c),c<0||c>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let l=S.zeros(Array.from(n),"int32"),m=l.data,f=Array.from(n).filter((y,d)=>d!==u),p=f.length===0?1:f.reduce((y,d)=>y*d,1);if(w(a)){let y=i;for(let d=0;d<p;d++){let g=[];for(let h=0;h<s;h++){let A=M(d,u,h,n),b=O(A,n);g.push({value:y[b],idx:h})}yp(g,c);for(let h=0;h<s;h++){let A=M(d,u,h,n),b=O(A,n);m[b]=g[h].idx}}}else for(let y=0;y<p;y++){let d=[];for(let g=0;g<s;g++){let h=M(y,u,g,n),A=O(h,n);d.push({value:Number(i[A]),idx:g})}pp(d,c);for(let g=0;g<s;g++){let h=M(y,u,g,n),A=O(h,n);m[A]=d[g].idx}}return l}function _s(r){let t=r.dtype,e=r.size,n=r.data,o=[];for(let u=0;u<e;u++)o.push(Number(n[u]));o.sort((u,s)=>isNaN(u)&&isNaN(s)?0:isNaN(u)?1:isNaN(s)?-1:u-s);let a=S.zeros([e],t),i=a.data;for(let u=0;u<e;u++)i[u]=o[u];return a}function At(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=[];for(let l=0;l<e;l++)a.push([]);let i=[],u=1;for(let l=e-1;l>=0;l--)i.unshift(u),u*=t[l];for(let l=0;l<o;l++)if(n[l]){let m=l;for(let f=0;f<e;f++){let p=Math.floor(m/i[f]);m=m%i[f],a[f].push(p)}}let s=a[0]?.length??0,c=[];for(let l=0;l<e;l++){let m=S.zeros([s],"int32"),f=m.data;for(let p=0;p<s;p++)f[p]=a[l][p];c.push(m)}return c}function xe(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=[],i=[],u=1;for(let f=e-1;f>=0;f--)i.unshift(u),u*=t[f];for(let f=0;f<o;f++)if(n[f]){let p=[],y=f;for(let d=0;d<e;d++){let g=Math.floor(y/i[d]);y=y%i[d],p.push(g)}a.push(p)}let s=a.length,c=e===0?[s,1]:[s,e],l=S.zeros(c,"int32"),m=l.data;for(let f=0;f<s;f++){let p=a[f];for(let y=0;y<(e===0?1:e);y++)m[f*(e===0?1:e)+y]=p[y]??0}return l}function Bs(r){let t=r.data,e=r.size,n=[];for(let i=0;i<e;i++)t[i]&&n.push(i);let o=S.zeros([n.length],"int32"),a=o.data;for(let i=0;i<n.length;i++)a[i]=n[i];return o}function vs(r,t,e){if(t===void 0&&e===void 0)return At(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,i=Math.max(n.length,o.length,a.length),u=B=>{let v=Array(i).fill(1);for(let E=0;E<B.length;E++)v[i-B.length+E]=B[E];return v},s=u(n),c=u(o),l=u(a),m=[];for(let B=0;B<i;B++){let v=[s[B],c[B],l[B]],E=Math.max(...v);for(let U of v)if(U!==1&&U!==E)throw new Error("operands could not be broadcast together");m.push(E)}let f=t.dtype,p=S.zeros(m,f),y=p.data,d=r.data,g=t.data,h=e.data,A=(B,v)=>{let E=[],U=1;for(let $=B.length-1;$>=0;$--)E.unshift(U),U*=B[$];for(;E.length<v.length;)E.unshift(0);for(let $=0;$<v.length;$++)v[$]===1&&m[$]!==1&&(E[$]=0);return E},b=A(n,s),N=A(o,c),D=A(a,l),x=[],z=1;for(let B=m.length-1;B>=0;B--)x.unshift(z),z*=m[B];let _=m.reduce((B,v)=>B*v,1);for(let B=0;B<_;B++){let v=B,E=0,U=0,$=0;for(let j=0;j<i;j++){let X=Math.floor(v/x[j]);v=v%x[j],E+=X*b[j],U+=X*N[j],$+=X*D[j]}d[E]?y[B]=g[U]:y[B]=h[$]}return p}function we(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,i=t.size,u=S.zeros([i],"int32"),s=u.data;for(let c=0;c<i;c++){let l=Number(a[c]),m=0,f=o;if(e==="left")for(;m<f;){let p=Math.floor((m+f)/2);Number(n[p])<l?m=p+1:f=p}else for(;m<f;){let p=Math.floor((m+f)/2);Number(n[p])<=l?m=p+1:f=p}s[c]=m}return u}function Es(r,t){let e=r.data,n=t.data,o=t.dtype,a=Math.min(r.size,t.size),i=0;for(let l=0;l<a;l++)e[l]&&i++;let u=S.zeros([i],o),s=u.data,c=0;if(w(o)){let l=n,m=s;for(let f=0;f<a;f++)e[f]&&(m[c++]=l[f])}else for(let l=0;l<a;l++)e[l]&&(s[c++]=n[l]);return u}function ze(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size;if(t===void 0){let f=0;for(let p=0;p<a;p++)o[p]&&f++;return f}let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=Array.from(e).filter((f,p)=>p!==i);if(u.length===0)return ze(r);let s=S.zeros(u,"int32"),c=s.data,l=e[i],m=u.reduce((f,p)=>f*p,1);for(let f=0;f<m;f++){let p=0;for(let y=0;y<l;y++){let d=M(f,i,y,e),g=O(d,e);o[g]&&p++}c[f]=p}return s}var Os=k(()=>{"use strict";L();W();Rt()});function Ms(r){if(!isFinite(r))return r;let t=Math.floor(r),e=r-t;return Math.abs(e-.5)<1e-10?t%2===0?t:t+1:Math.round(r)}function Ie(r,t=0){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",u=S.zeros(n,i),s=u.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);s[l]=Ms(m*c)/c}return u}function _e(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.ceil(Number(n[s]));return i}function Be(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.trunc(Number(n[s]));return i}function ve(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.floor(Number(n[s]));return i}function Ee(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Ms(Number(n[s]));return i}function Oe(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=S.zeros(e,a),u=i.data;for(let s=0;s<o;s++)u[s]=Math.trunc(Number(n[s]));return i}var Ts=k(()=>{"use strict";L()});function fr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,i=r.data,u=[];for(let b=0;b<a;b++)u.push({value:Number(i[b]),index:b});u.sort((b,N)=>isNaN(b.value)&&isNaN(N.value)?0:isNaN(b.value)?1:isNaN(N.value)?-1:b.value-N.value);let s=[],c=[],l=new Array(a),m=[],f,p=0;for(let b=0;b<u.length;b++){let{value:N,index:D}=u[b];f===void 0||isNaN(N)&&!isNaN(f)||!isNaN(N)&&isNaN(f)||!isNaN(N)&&!isNaN(f)&&N!==f?(f!==void 0&&m.push(p),s.push(N),c.push(D),p=1,f=N):p++}p>0&&m.push(p);let y=new Map,d=-1;for(let b=0;b<s.length;b++){let N=s[b];isNaN(N)?d=b:y.set(N,b)}for(let b=0;b<a;b++){let N=Number(i[b]);isNaN(N)?l[b]=d:l[b]=y.get(N)}let g=S.zeros([s.length],o),h=g.data;for(let b=0;b<s.length;b++)h[b]=s[b];if(!t&&!e&&!n)return g;let A={values:g};if(t){let b=S.zeros([c.length],"int32"),N=b.data;for(let D=0;D<c.length;D++)N[D]=c[D];A.indices=b}if(e){let b=S.zeros([l.length],"int32"),N=b.data;for(let D=0;D<l.length;D++)N[D]=l[D];A.inverse=b}if(n){let b=S.zeros([m.length],"int32"),N=b.data;for(let D=0;D<m.length;D++)N[D]=m[D];A.counts=b}return A}function Us(r,t){return Me(r,t)}function $s(r,t){let e=r.dtype,n=fr(r),o=fr(t),a=new Set;for(let c=0;c<o.size;c++)a.add(Number(o.data[c]));let i=[];for(let c=0;c<n.size;c++){let l=Number(n.data[c]);a.has(l)&&i.push(l)}i.sort((c,l)=>c-l);let u=S.zeros([i.length],e),s=u.data;for(let c=0;c<i.length;c++)s[c]=i[c];return u}function Me(r,t){let e=Array.from(r.shape),n=r.size,o=new Set;for(let s=0;s<t.size;s++)o.add(Number(t.data[s]));let a=S.zeros(e,"bool"),i=a.data,u=r.data;for(let s=0;s<n;s++){let c=Number(u[s]);i[s]=o.has(c)?1:0}return a}function ks(r,t){let e=r.dtype,n=fr(r),o=new Set;for(let s=0;s<t.size;s++)o.add(Number(t.data[s]));let a=[];for(let s=0;s<n.size;s++){let c=Number(n.data[s]);o.has(c)||a.push(c)}let i=S.zeros([a.length],e),u=i.data;for(let s=0;s<a.length;s++)u[s]=a[s];return i}function Cs(r,t){let e=r.dtype,n=fr(r),o=fr(t),a=new Set,i=new Set;for(let l=0;l<n.size;l++)a.add(Number(n.data[l]));for(let l=0;l<o.size;l++)i.add(Number(o.data[l]));let u=[];for(let l of a)i.has(l)||u.push(l);for(let l of i)a.has(l)||u.push(l);u.sort((l,m)=>l-m);let s=S.zeros([u.length],e),c=s.data;for(let l=0;l<u.length;l++)c[l]=u[l];return s}function Fs(r,t){let e=r.dtype,n=fr(r),o=fr(t),a=new Set;for(let c=0;c<n.size;c++)a.add(Number(n.data[c]));for(let c=0;c<o.size;c++)a.add(Number(o.data[c]));let i=Array.from(a);i.sort((c,l)=>c-l);let u=S.zeros([i.length],e),s=u.data;for(let c=0;c<i.length;c++)s[c]=i[c];return u}var Vs=k(()=>{"use strict";L()});function Te(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let i=r;for(let u=0;u<t;u++)i=Ap(i,a);return i}function Ap(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let i=r.dtype,u=w(i)?"float64":i,s=S.zeros(a,u),c=s.data,l=r.strides,m=s.size;for(let f=0;f<m;f++){let p=f,y=new Array(n);for(let D=n-1;D>=0;D--)y[D]=p%a[D],p=Math.floor(p/a[D]);let d=[...y],g=[...y];g[t]=d[t]+1;let h=0,A=0;for(let D=0;D<n;D++)h+=d[D]*l[D],A+=g[D]*l[D];let b=(w(i),Number(r.data[h])),N=(w(i),Number(r.data[A]));c[f]=N-b}return s}function Ps(r,t=null,e=null){let n=r.size,o=r.dtype,a=w(o)?"float64":o,i=Math.max(0,n-1),u=e?e.length:0,s=t?t.length:0,c=u+i+s,l=S.zeros([c],a),m=l.data,f=0;if(e)for(let p of e)m[f++]=p;for(let p=0;p<i;p++){let y=(w(o),Number(r.iget(p))),d=(w(o),Number(r.iget(p+1)));m[f++]=d-y}if(t)for(let p of t)m[f++]=p;return l}function qs(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(s,c)=>c);else if(typeof e=="number"){let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[s]}else a=e.map(s=>{let c=s<0?o+s:s;if(c<0||c>=o)throw new Error(`axis ${s} is out of bounds for array of dimension ${o}`);return c});let i;if(typeof t=="number")i=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");i=t}let u=[];for(let s=0;s<a.length;s++)u.push(hp(r,a[s],i[s]));return u.length===1?u[0]:u}function hp(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let i=r.dtype,u=w(i)?"float64":i==="float32"?"float32":"float64",s=S.zeros(n,u),c=s.data,l=r.strides,m=e,f=2*m,p=r.size;for(let y=0;y<p;y++){let d=y,g=new Array(o);for(let b=o-1;b>=0;b--)g[b]=d%n[b],d=Math.floor(d/n[b]);let h=g[t],A;if(h===0){let b=[...g];b[t]=1;let N=0;for(let z=0;z<o;z++)N+=b[z]*l[z];let D=(w(i),Number(r.data[y]));A=((w(i),Number(r.data[N]))-D)/m}else if(h===a-1){let b=[...g];b[t]=a-2;let N=0;for(let z=0;z<o;z++)N+=b[z]*l[z];let D=(w(i),Number(r.data[y])),x=(w(i),Number(r.data[N]));A=(D-x)/m}else{let b=[...g],N=[...g];b[t]=h+1,N[t]=h-1;let D=0,x=0;for(let B=0;B<o;B++)D+=b[B]*l[B],x+=N[B]*l[B];let z=(w(i),Number(r.data[D])),_=(w(i),Number(r.data[x]));A=(z-_)/f}c[y]=A}return s}function js(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),i=Array.from(t.shape),u=a.length,s=i.length,c=e<0?u+e:e,l=n<0?s+n:n;if(c<0||c>=u)throw new Error(`axisa ${e} is out of bounds for array of dimension ${u}`);if(l<0||l>=s)throw new Error(`axisb ${n} is out of bounds for array of dimension ${s}`);let m=a[c],f=i[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(f!==2&&f!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${f})`);let p=C(r.dtype,t.dtype);if(u===1&&s===1&&m===3&&f===3){let y=S.zeros([3],p),d=y.data,g=Number(r.iget(0)),h=Number(r.iget(1)),A=Number(r.iget(2)),b=Number(t.iget(0)),N=Number(t.iget(1)),D=Number(t.iget(2));return d[0]=h*D-A*N,d[1]=A*b-g*D,d[2]=g*N-h*b,y}if(u===1&&s===1&&m===2&&f===2){let y=S.zeros([],p),d=Number(r.iget(0)),g=Number(r.iget(1)),h=Number(t.iget(0)),A=Number(t.iget(1));return y.data[0]=d*A-g*h,y}if(u===1&&s===1){if(m===2&&f===3){let y=S.zeros([3],p),d=y.data,g=Number(r.iget(0)),h=Number(r.iget(1)),A=Number(t.iget(0)),b=Number(t.iget(1)),N=Number(t.iget(2));return d[0]=h*N,d[1]=-g*N,d[2]=g*b-h*A,y}else if(m===3&&f===2){let y=S.zeros([3],p),d=y.data,g=Number(r.iget(0)),h=Number(r.iget(1)),A=Number(r.iget(2)),b=Number(t.iget(0)),N=Number(t.iget(1));return d[0]=-A*N,d[1]=A*b,d[2]=g*N-h*b,y}}if(u===2&&s===2&&c===1&&l===1){let y=a[0];if(i[0]!==y)throw new Error(`Shape mismatch: a has ${y} vectors, b has ${i[0]} vectors`);if(m===3&&f===3){let d=S.zeros([y,3],p),g=d.data;for(let h=0;h<y;h++){let A=Number(r.iget(h*3)),b=Number(r.iget(h*3+1)),N=Number(r.iget(h*3+2)),D=Number(t.iget(h*3)),x=Number(t.iget(h*3+1)),z=Number(t.iget(h*3+2));g[h*3]=b*z-N*x,g[h*3+1]=N*D-A*z,g[h*3+2]=A*x-b*D}return d}if(m===2&&f===2){let d=S.zeros([y],p),g=d.data;for(let h=0;h<y;h++){let A=Number(r.iget(h*2)),b=Number(r.iget(h*2+1)),N=Number(t.iget(h*2)),D=Number(t.iget(h*2+1));g[h]=A*D-b*N}return d}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(i)}`)}var Rs=k(()=>{"use strict";L();W()});function Ls(r,t,e=0){let n=r.data,o=r.size,a=0;for(let u=0;u<o;u++){let s=Number(n[u]);if(s<0||!Number.isInteger(s))throw new Error("'x' argument must contain non-negative integers");s>a&&(a=s)}let i=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let u=t.data,s=new Float64Array(i);for(let c=0;c<o;c++){let l=Number(n[c]);s[l]+=Number(u[c])}return S.fromData(s,[i],"float64")}else{let u=new Float64Array(i);for(let s=0;s<o;s++){let c=Number(n[s]);u[c]++}return S.fromData(u,[i],"float64")}}function Ws(r,t,e=!1){let n=r.data,o=t.data,a=r.size,i=t.size,u=new Float64Array(a),s=!0;i>1&&(s=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),m;if(s)e?m=Np(o,i,l):m=Vr(o,i,l);else if(e)for(m=0;m<i&&Number(o[m])>=l;)m++;else for(m=0;m<i&&Number(o[m])>l;)m++;u[c]=m}return S.fromData(u,[...r.shape],"float64")}function Np(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<e?n=a+1:o=a}return n}function Vr(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<=e?n=a+1:o=a}return n}function Gs(r,t=10,e,n=!1,o){let a=r.data,i=r.size,u;if(typeof t=="number"){let m,f;if(e)[m,f]=e;else{m=1/0,f=-1/0;for(let y=0;y<i;y++){let d=Number(a[y]);d<m&&(m=d),d>f&&(f=d)}m===f&&(m=m-.5,f=f+.5)}u=[];let p=(f-m)/t;for(let y=0;y<=t;y++)u.push(m+y*p)}else{let m=t.data;u=[];for(let f=0;f<t.size;f++)u.push(Number(m[f]))}let s=u.length-1,c=new Float64Array(s),l=o?.data;for(let m=0;m<i;m++){let f=Number(a[m]),p=l?Number(l[m]):1,y=Vr(u,u.length,f)-1;if(!(y<0)){if(y>=s)if(f===u[s])y=s-1;else continue;c[y]+=p}}if(n){let m=0;for(let f=0;f<s;f++)m+=c[f];for(let f=0;f<s;f++){let p=u[f+1]-u[f];c[f]=c[f]/(m*p)}}return{hist:S.fromData(c,[s],"float64"),bin_edges:S.fromData(new Float64Array(u),[u.length],"float64")}}function Zs(r,t,e=10,n,o=!1,a){let i=r.data,u=t.data,s=r.size;if(t.size!==s)throw new Error("x and y must have the same length");let c,l,m,f;if(typeof e=="number"?(m=e,f=e):Array.isArray(e)&&e.length===2?(e[0],m=e[0],f=e[1]):(m=10,f=10),typeof m=="number"){let h,A;if(n)[h,A]=n[0];else{h=1/0,A=-1/0;for(let N=0;N<s;N++){let D=Number(i[N]);D<h&&(h=D),D>A&&(A=D)}h===A&&(h-=.5,A+=.5)}c=[];let b=(A-h)/m;for(let N=0;N<=m;N++)c.push(h+N*b)}else{let h=m.data;c=[];for(let A=0;A<m.size;A++)c.push(Number(h[A]))}if(typeof f=="number"){let h,A;if(n)[h,A]=n[1];else{h=1/0,A=-1/0;for(let N=0;N<s;N++){let D=Number(u[N]);D<h&&(h=D),D>A&&(A=D)}h===A&&(h-=.5,A+=.5)}l=[];let b=(A-h)/f;for(let N=0;N<=f;N++)l.push(h+N*b)}else{let h=f.data;l=[];for(let A=0;A<f.size;A++)l.push(Number(h[A]))}let p=c.length-1,y=l.length-1,d=new Float64Array(p*y),g=a?.data;for(let h=0;h<s;h++){let A=Number(i[h]),b=Number(u[h]),N=g?Number(g[h]):1,D=Vr(c,c.length,A)-1,x=Vr(l,l.length,b)-1;if(D<0||D>=p)if(A===c[p]&&D===p)D=p-1;else continue;if(x<0||x>=y)if(b===l[y]&&x===y)x=y-1;else continue;d[D*y+x]+=N}if(o){let h=0;for(let A=0;A<d.length;A++)h+=d[A];for(let A=0;A<p;A++)for(let b=0;b<y;b++){let N=c[A+1]-c[A],D=l[b+1]-l[b],x=N*D;d[A*y+b]=d[A*y+b]/(h*x)}}return{hist:S.fromData(d,[p,y],"float64"),x_edges:S.fromData(new Float64Array(c),[c.length],"float64"),y_edges:S.fromData(new Float64Array(l),[l.length],"float64")}}function Hs(r,t=10,e,n=!1,o){let a=r.shape,i=r.data,u,s;if(a.length===1)u=a[0],s=1;else if(a.length===2)u=a[0],s=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(s).fill(t);else if(c=t,c.length!==s)throw new Error("bins array length must match number of dimensions");let l=[];for(let h=0;h<s;h++){let A,b;if(e&&e[h])[A,b]=e[h];else{A=1/0,b=-1/0;for(let z=0;z<u;z++){let _=Number(s===1?i[z]:i[z*s+h]);_<A&&(A=_),_>b&&(b=_)}A===b&&(A-=.5,b+=.5)}let N=c[h],D=[],x=(b-A)/N;for(let z=0;z<=N;z++)D.push(A+z*x);l.push(D)}let m=c.slice(),f=m.reduce((h,A)=>h*A,1),p=new Float64Array(f),y=new Array(s);y[s-1]=1;for(let h=s-2;h>=0;h--)y[h]=y[h+1]*c[h+1];let d=o?.data;for(let h=0;h<u;h++){let A=d?Number(d[h]):1,b=0,N=!1;for(let D=0;D<s;D++){let x=Number(s===1?i[h]:i[h*s+D]),z=l[D],_=c[D],B=Vr(z,z.length,x)-1;if(B<0||B>=_)if(x===z[_]&&B===_)B=_-1;else{N=!0;break}b+=B*y[D]}N||(p[b]+=A)}if(n){let h=0;for(let b=0;b<f;b++)h+=p[b];let A=new Float64Array(f);for(let b=0;b<f;b++){let N=1,D=b;for(let x=0;x<s;x++){let z=Math.floor(D/y[x])%c[x],_=l[x];N*=_[z+1]-_[z]}A[b]=N}for(let b=0;b<f;b++)p[b]=p[b]/(h*A[b])}let g=l.map(h=>S.fromData(new Float64Array(h),[h.length],"float64"));return{hist:S.fromData(p,m,"float64"),edges:g}}function Ue(r,t,e="full"){let n=r.data,o=t.data,a=r.size,i=t.size,u=a+i-1,s=new Float64Array(u);for(let c=0;c<u;c++){let l=0,m=c-i+1;for(let f=0;f<a;f++){let p=f-m;p>=0&&p<i&&(l+=Number(n[f])*Number(o[p]))}s[c]=l}if(e==="full")return S.fromData(s,[u],"float64");if(e==="same"){let c=Math.floor((u-a)/2),l=new Float64Array(a);for(let m=0;m<a;m++)l[m]=s[c+m];return S.fromData(l,[a],"float64")}else{let c=Math.max(a,i)-Math.min(a,i)+1,l=Math.min(a,i)-1,m=new Float64Array(c);for(let f=0;f<c;f++)m[f]=s[l+f];return S.fromData(m,[c],"float64")}}function Ys(r,t,e="full"){let n=t.data,o=t.size,a=new Float64Array(o);for(let u=0;u<o;u++)a[u]=Number(n[o-1-u]);let i=S.fromData(a,[o],"float64");return Ue(r,i,e)}function $e(r,t,e=!0,n=!1,o){let a=r.shape,i=r.data,u;if(o!==void 0?u=o:u=n?0:1,a.length===1)if(t!==void 0){let p=t.data,y=r.size;if(t.size!==y)throw new Error("m and y must have same length");let d=0,g=0;for(let D=0;D<y;D++)d+=Number(i[D]),g+=Number(p[D]);d/=y,g/=y;let h=0,A=0,b=0;for(let D=0;D<y;D++){let x=Number(i[D])-d,z=Number(p[D])-g;h+=x*x,A+=z*z,b+=x*z}let N=y-u;return N<=0?S.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(h/=N,A/=N,b/=N,S.fromData(new Float64Array([h,b,b,A]),[2,2],"float64"))}else{let p=r.size,y=0;for(let h=0;h<p;h++)y+=Number(i[h]);y/=p;let d=0;for(let h=0;h<p;h++){let A=Number(i[h])-y;d+=A*A}let g=p-u;return g<=0?S.fromData(new Float64Array([NaN]),[],"float64"):(d/=g,S.fromData(new Float64Array([d]),[],"float64"))}let s,c;e?(s=a[0],c=a[1]):(s=a[1],c=a[0]);let l=new Float64Array(s);for(let p=0;p<s;p++){let y=0;for(let d=0;d<c;d++){let g=e?p*c+d:d*s+p;y+=Number(i[g])}l[p]=y/c}let m=new Float64Array(s*s),f=c-u;if(f<=0)return m.fill(NaN),S.fromData(m,[s,s],"float64");for(let p=0;p<s;p++)for(let y=p;y<s;y++){let d=0;for(let h=0;h<c;h++){let A=e?p*c+h:h*s+p,b=e?y*c+h:h*s+y,N=Number(i[A])-l[p],D=Number(i[b])-l[y];d+=N*D}let g=d/f;m[p*s+y]=g,m[y*s+p]=g}return S.fromData(m,[s,s],"float64")}function Js(r,t,e=!0){if(r.shape.length===1&&t===void 0)return S.fromData(new Float64Array([1]),[],"float64");let n=$e(r,t,e,!1),o=n.data,i=n.shape[0],u=new Float64Array(i*i);for(let s=0;s<i;s++)for(let c=0;c<i;c++){let l=Number(o[s*i+c]),m=Number(o[s*i+s]),f=Number(o[c*i+c]);m<=0||f<=0?u[s*i+c]=NaN:u[s*i+c]=l/Math.sqrt(m*f)}return S.fromData(u,[i,i],"float64")}var Xs=k(()=>{"use strict";L()});function sr(r,t=R){let e=S.zeros(r,t);return new I(e)}function ke(r,t=R){let e=S.ones(r,t);return new I(e)}function xp(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function Qs(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>Qs(t)):!1}function wp(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function q(r,t){if(r instanceof I)return!t||r.dtype===t?r.copy():r.astype(t);let e=Qs(r),n=xp(r),o=n.reduce((l,m)=>l*m,1),a=t;a||(e?a="int64":a=R);let i=T(a);if(!i)throw new Error(`Cannot create array with dtype ${a}`);let u=new i(o),s=wp(r);if(w(a)){let l=u;for(let m=0;m<o;m++){let f=s[m];l[m]=typeof f=="bigint"?f:BigInt(Math.round(Number(f)))}}else if(a==="bool"){let l=u;for(let m=0;m<o;m++)l[m]=s[m]?1:0}else{let l=u;for(let m=0;m<o;m++){let f=s[m];l[m]=Number(f)}}let c=S.fromData(u,n,a);return new I(c)}function Ks(r,t,e=1,n=R){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let i=Math.max(0,Math.ceil((a-o)/e)),u=T(n);if(!u)throw new Error(`Cannot create arange array with dtype ${n}`);let s=new u(i);if(w(n))for(let l=0;l<i;l++)s[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<i;l++)s[l]=o+l*e!==0?1:0;else for(let l=0;l<i;l++)s[l]=o+l*e;let c=S.fromData(s,[i],n);return new I(c)}function ri(r,t,e=50,n=R){if(e<0)throw new Error("num must be non-negative");if(e===0)return q([],n);if(e===1)return q([r],n);let o=T(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),i=(t-r)/(e-1);if(w(n))for(let s=0;s<e;s++)a[s]=BigInt(Math.round(r+s*i));else if(n==="bool")for(let s=0;s<e;s++)a[s]=r+s*i!==0?1:0;else for(let s=0;s<e;s++)a[s]=r+s*i;let u=S.fromData(a,[e],n);return new I(u)}function ti(r,t,e=50,n=10,o=R){if(e<0)throw new Error("num must be non-negative");if(e===0)return q([],o);if(e===1)return q([Math.pow(n,r)],o);let a=T(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let i=new a(e),u=(t-r)/(e-1);if(w(o))for(let c=0;c<e;c++){let l=r+c*u;i[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*u;i[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*u;i[c]=Math.pow(n,l)}let s=S.fromData(i,[e],o);return new I(s)}function ei(r,t,e=50,n=R){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return q([],n);if(e===1)return q([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let i=T(n);if(!i)throw new Error(`Cannot create geomspace array with dtype ${n}`);let u=new i(e),s=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-s)/(e-1);if(w(n))for(let f=0;f<e;f++){let p=o*Math.exp(s+f*l);u[f]=BigInt(Math.round(p))}else if(n==="bool")for(let f=0;f<e;f++){let p=o*Math.exp(s+f*l);u[f]=p!==0?1:0}else for(let f=0;f<e;f++){let p=o*Math.exp(s+f*l);u[f]=p}let m=S.fromData(u,[e],n);return new I(m)}function Ce(r,t,e=0,n=R){let o=t??r,a=sr([r,o],n),i=a.data;if(w(n)){let u=i;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(u[s*o+c]=BigInt(1))}}else{let u=i;for(let s=0;s<r;s++){let c=s+e;c>=0&&c<o&&(u[s*o+c]=1)}}return a}function Fe(r,t=R){return sr(r,t)}function Ve(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=R);let o=T(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((s,c)=>s*c,1),i=new o(a);if(w(n)){let s=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));i.fill(s)}else n==="bool"?i.fill(t?1:0):i.fill(Number(t));let u=S.fromData(i,r,n);return new I(u)}function ni(r,t=R){return Ce(r,r,0,t)}function Pr(r,t){return r instanceof I?!t||r.dtype===t?r:r.astype(t):q(r,t)}function oi(r){return r.copy()}function ai(r,t){return sr(Array.from(r.shape),t??r.dtype)}function si(r,t){return ke(Array.from(r.shape),t??r.dtype)}function ii(r,t){return Fe(Array.from(r.shape),t??r.dtype)}function ui(r,t,e){return Ve(Array.from(r.shape),t,e??r.dtype)}function ci(r,t){return Pr(r,t)}function li(r,t){let e=Pr(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function fi(r,t){return Pr(r,t).copy()}function Pe(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=sr([n,n],r.dtype);for(let a=0;a<e;a++){let i=t>=0?a:a-t,u=t>=0?a+t:a;o.set([i,u],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,i;if(t>=0?(o=0,a=t,i=Math.min(e,n-t)):(o=-t,a=0,i=Math.min(e+t,n)),i<=0)return sr([0],r.dtype);let u=T(r.dtype),s=new u(i);for(let l=0;l<i;l++){let m=r.get([o+l,a+l]);w(r.dtype)?s[l]=typeof m=="bigint"?m:BigInt(m):s[l]=m}let c=S.fromData(s,[i],r.dtype);return new I(c)}else throw new Error("Input must be 1-D or 2-D")}function mi(r,t=0){let e=r.flatten();return Pe(e,t)}function pi(r,t,e=R){let n=t.reduce((c,l)=>c*l,1),o=T(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),i=t.length,u=new Array(i).fill(0);for(let c=0;c<n;c++){let l=r(...u);w(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=i-1;m>=0&&(u[m]++,!(u[m]<t[m]));m--)u[m]=0}let s=S.fromData(a,t,e);return new I(s)}function yi(...r){let t=[],e="xy";for(let u of r)u instanceof I?t.push(u):typeof u=="object"&&"indexing"in u&&(e=u.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(u=>u.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,i=[];for(let u=0;u<t.length;u++){let s=t[u],c=s.size,l=new Array(a).fill(1);l[u]=c;let m=s.reshape(...l),f=dt(m.storage,o),p=I._fromStorage(f.copy());i.push(p)}return e==="xy"&&i.length>=2&&([i[0],i[1]]=[i[1],i[0]]),i}function di(r,t,e=0,n=R){let o=t??r,a=sr([r,o],n);for(let i=0;i<r;i++)for(let u=0;u<=i+e&&u<o;u++)u>=0&&a.set([i,u],1);return a}function gi(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((u,s)=>u*s,1);for(let u=0;u<i;u++)for(let s=0;s<o;s++)for(let c=0;c<a;c++)if(c>s+t){let l=[],m=u;for(let f=n.length-3;f>=0;f--)l.unshift(m%n[f]),m=Math.floor(m/n[f]);l.push(s,c),e.set(l,0)}return e}function bi(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((u,s)=>u*s,1);for(let u=0;u<i;u++)for(let s=0;s<o;s++)for(let c=0;c<a;c++)if(c<s+t){let l=[],m=u;for(let f=n.length-3;f>=0;f--)l.unshift(m%n[f]),m=Math.floor(m/n[f]);l.push(s,c),e.set(l,0)}return e}function Ai(r,t,e=!1){if(r.ndim!==1)throw new Error("Input must be 1-D");let n=r.size,o=t??n;if(o<0)throw new Error("N must be non-negative");let a=sr([n,o],r.dtype);for(let i=0;i<n;i++){let u=r.get([i]);for(let s=0;s<o;s++){let c=e?s:o-1-s;a.set([i,s],Math.pow(u,c))}}return a}function hi(r,t=R,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let i=zp(t),u=o.byteLength-a,s=Math.floor(u/i),c=e<0?s:Math.min(e,s);if(c<=0)return q([],t);let l=T(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),f=S.fromData(m,[c],t);return new I(f)}function Si(r,t=R,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return q(n,t)}function Ni(r,t=R,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return q(n,t)}function Di(r,t=R,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],i=0;for(let u of o){if(e>=0&&i>=e)break;let s=u.trim();s!==""&&(w(t)?a.push(BigInt(s)):a.push(parseFloat(s)),i++)}return q(a,t)}function zp(r){switch(r){case"int8":case"uint8":case"bool":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;case"int64":case"uint64":case"float64":return 8;default:return 8}}function xi(r){return r.sqrt()}function qe(r,t){return r.power(t)}function wi(r){return r.exp()}function zi(r){return r.exp2()}function Ii(r){return r.expm1()}function _i(r){return r.log()}function Bi(r){return r.log2()}function vi(r){return r.log10()}function Ei(r){return r.log1p()}function Oi(r,t){return r.logaddexp(t)}function Mi(r,t){return r.logaddexp2(t)}function je(r){return r.absolute()}function Ti(r){return r.negative()}function Ui(r){return r.sign()}function $i(r,t){return r.mod(t)}function Re(r,t){return r.divide(t)}function ki(r,t){return r.floor_divide(t)}function Ci(r){return r.positive()}function Fi(r){return r.reciprocal()}function Vi(r,t){return r.dot(t)}function Pi(r){return r.trace()}function qi(r,t=0,e=0,n=1){let o=vo(r.storage,t,e,n);return I._fromStorage(o)}function ji(r,t){let e=Oo(r.storage,t.storage);return I._fromStorage(e)}function Ri(r,t){return r.transpose(t)}function Li(r,t){return r.inner(t)}function Wi(r,t){return r.outer(t)}function Gi(r,t,e=2){return r.tensordot(t,e)}function Zi(r){return r.sin()}function Hi(r){return r.cos()}function Yi(r){return r.tan()}function Le(r){return r.arcsin()}function We(r){return r.arccos()}function Ge(r){return r.arctan()}function Ze(r,t){return r.arctan2(t)}function Ji(r,t){return r.hypot(t)}function Xi(r){return r.degrees()}function Qi(r){return r.radians()}function Ki(r){return r.radians()}function ru(r){return r.degrees()}function tu(r){return r.sinh()}function eu(r){return r.cosh()}function nu(r){return r.tanh()}function He(r){return r.arcsinh()}function Ye(r){return r.arccosh()}function Je(r){return r.arctanh()}function ou(r,t,e){return r.swapaxes(t,e)}function au(r,t,e){return r.moveaxis(t,e)}function Ar(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");let e=r.map(o=>o.storage),n=gr(e,t);return I._fromStorage(n)}function su(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r.map(o=>o.storage),n=no(e,t);return I._fromStorage(n)}function Xe(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=oo(t);return I._fromStorage(e)}function iu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ae(t);return I._fromStorage(e)}function uu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ao(t);return I._fromStorage(e)}function cu(r,t,e=0){return so(r.storage,t,e).map(o=>I._fromStorage(o,r.base??r))}function lu(r,t,e=0){return $r(r.storage,t,e).map(o=>I._fromStorage(o,r.base??r))}function fu(r,t){return uo(r.storage,t).map(n=>I._fromStorage(n,r.base??r))}function mu(r,t){return co(r.storage,t).map(n=>I._fromStorage(n,r.base??r))}function pu(r,t){let e=lo(r.storage,t);return I._fromStorage(e)}function yu(r,t,e){return r.repeat(t,e)}function du(r){return r.ravel()}function gu(r,t){return r.reshape(...t)}function bu(r,t){return r.squeeze(t)}function Au(r,t){return r.expand_dims(t)}function ht(r,t){let e=mo(r.storage,t);return I._fromStorage(e)}function hu(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return ht(r,1)}function Su(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return ht(r,0)}function Nu(r,t=1,e=[0,1]){let n=po(r.storage,t,e);return I._fromStorage(n)}function Du(r,t,e){let n=yo(r.storage,t,e);return I._fromStorage(n)}function xu(r,t,e=0){let n=go(r.storage,t,e);return I._fromStorage(n,r.base??r)}function wu(...r){let t=r.map(o=>o.storage),n=So(t).map((o,a)=>o===t[a]?r[a]:I._fromStorage(o));return n.length===1?n[0]:n}function zu(...r){let t=r.map(o=>o.storage),n=No(t).map((o,a)=>o===t[a]?r[a]:I._fromStorage(o));return n.length===1?n[0]:n}function Iu(...r){let t=r.map(o=>o.storage),n=Do(t).map((o,a)=>o===t[a]?r[a]:I._fromStorage(o));return n.length===1?n[0]:n}function _u(r,t){return bo(r.storage,t).map(n=>I._fromStorage(n,r.base??r))}function Bu(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Ao(t);return I._fromStorage(e)}function vu(r){return Xe(r)}function Eu(r,t){let e=ho(r.storage,t);return I._fromStorage(e)}function Ou(r,t,e){let n=t instanceof I?t:q(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return Ar([o,a])}return Ar([r,n],e)}function Mu(r,t,e){let n=r.dtype;if(e===void 0){let p=r.flatten(),d=(Array.isArray(t)?t:[t]).map(N=>N<0?p.size+N:N),g=[];for(let N=0;N<p.size;N++)d.includes(N)||g.push(N);let h=T(n),A=new h(g.length);for(let N=0;N<g.length;N++){let D=p.get([g[N]]);w(n)?A[N]=typeof D=="bigint"?D:BigInt(D):A[N]=D}let b=S.fromData(A,[g.length],n);return new I(b)}let o=r.shape,a=o.length,i=e<0?a+e:e;if(i<0||i>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let u=o[i],s=Array.isArray(t)?t:[t],c=new Set(s.map(p=>p<0?u+p:p)),l=[],m=0;for(let p=0;p<=u;p++)(c.has(p)||p===u)&&(p>m&&l.push([m,p]),m=p+1);if(l.length===0){let p=[...o];return p[i]=0,sr(p,n)}let f=[];for(let[p,y]of l){let d=o.map(()=>":");d[i]=`${p}:${y}`,f.push(r.slice(...d))}return Ar(f,i)}function Tu(r,t,e,n){let o=e instanceof I?e:q(e,r.dtype);if(n===void 0){let m=r.flatten(),f=o.flatten(),p=t<0?m.size+t:t;if(p<0||p>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let y=p>0?m.slice(`0:${p}`):null,d=p<m.size?m.slice(`${p}:`):null,g=[];return y&&g.push(y),g.push(f),d&&g.push(d),Ar(g)}let a=r.shape,i=a.length,u=n<0?i+n:n;if(u<0||u>=i)throw new Error(`axis ${n} is out of bounds for array of dimension ${i}`);let s=a[u],c=t<0?s+t:t;if(c<0||c>s)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${s}`);let l=[];if(c>0){let m=a.map(()=>":");m[u]=`0:${c}`,l.push(r.slice(...m))}if(l.push(o),c<s){let m=a.map(()=>":");m[u]=`${c}:`,l.push(r.slice(...m))}return Ar(l,u)}function Uu(r,t,e="constant",n=0){let o=r.shape,a=o.length,i=r.dtype,u;if(typeof t=="number"?u=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?u=o.map(()=>t):u=t,u.length!==a)throw new Error(`pad_width must have ${a} elements`);let s=o.map((d,g)=>d+u[g][0]+u[g][1]),c=s.reduce((d,g)=>d*g,1),l=T(i),m=new l(c),f=w(i);e==="constant"&&(f?m.fill(BigInt(n)):m.fill(n));let p=new Array(a).fill(0);for(let d=0;d<c;d++){let g=!0,h=[];for(let b=0;b<a;b++){let[N]=u[b],D=p[b]-N;if(D<0||D>=o[b]){g=!1;break}h.push(D)}let A;if(g)A=r.get(h);else if(e==="constant"){for(let b=a-1;b>=0&&(p[b]++,!(p[b]<s[b]));b--)p[b]=0;continue}else{let b=[];for(let N=0;N<a;N++){let[D]=u[N],x=p[N]-D,z=o[N];x<0?e==="edge"?x=0:e==="reflect"?(x=-x,x>=z&&(x=z-1)):e==="symmetric"?(x=-x-1,x>=z&&(x=z-1),x<0&&(x=0)):e==="wrap"&&(x=(x%z+z)%z):x>=z&&(e==="edge"?x=z-1:e==="reflect"?(x=2*z-x-2,x<0&&(x=0)):e==="symmetric"?(x=2*z-x-1,x<0&&(x=0)):e==="wrap"&&(x=x%z)),b.push(Math.max(0,Math.min(z-1,x)))}A=r.get(b)}f?m[d]=typeof A=="bigint"?A:BigInt(Number(A)):m[d]=Number(A);for(let b=a-1;b>=0&&(p[b]++,!(p[b]<s[b]));b--)p[b]=0}let y=S.fromData(m,s,i);return new I(y)}function $u(r,t){let e=dt(r.storage,t);return I._fromStorage(e,r.base??r)}function ku(...r){let t=r.map(n=>n.storage);return Da(t).map((n,o)=>I._fromStorage(n,r[o].base??r[o]))}function Cu(...r){return Vt(...r)}function Fu(r,t,e){return r.take(t,e)}function Vu(r,t,e){r.put(t,e)}function Pu(r,t,e){if(e!==void 0)throw new Error("copyto with where parameter is not yet implemented");let n=r.storage,o=r.shape,a=r.size,i=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let u=t.storage,s=t.shape,c=or([s,o]);if(!c)throw new Error(`could not broadcast input array from shape (${s.join(",")}) into shape (${o.join(",")})`);if(c.length!==o.length||!c.every((m,f)=>m===o[f]))throw new Error(`could not broadcast input array from shape (${s.join(",")}) into shape (${o.join(",")})`);let l=dt(u,o);if(w(i))for(let m=0;m<a;m++){let f=l.iget(m),p=typeof f=="bigint"?f:BigInt(Math.round(Number(f)));n.iset(m,p)}else if(i==="bool")for(let m=0;m<a;m++){let f=l.iget(m);n.iset(m,f?1:0)}else for(let m=0;m<a;m++){let f=l.iget(m);n.iset(m,Number(f))}}function qu(r,t){let e=t.map(o=>o.storage),n=za(r.storage,e);return I._fromStorage(n)}function ju(r,t,e=!1){return Ia(r.storage,t.storage,e)}function Ru(r,t){return Xn(r.storage,t.storage)}function Qe(r,t){return I._fromStorage(Jt(r.storage,t))}function Ke(r,t){return I._fromStorage(Xt(r.storage,t))}function rn(r,t,e=!1){return r.max(t,e)}function tn(r,t,e=!1){return r.min(t,e)}function Lu(r,t,e=!1){let n=Qt(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Wu(r,t,e=!1){let n=Kt(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Gu(r,t,e,n=!1){let o=re(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function Zu(r,t,e,n=!1){let o=xr(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function Hu(r,t,e,n=!1){let o=e?e.storage:void 0,a=ot(r.storage,t,o,n);return typeof a=="number"?a:I._fromStorage(a)}function Yu(r,t,e=!1){let n=at(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Ju(r,t,e=!1){let n=st(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Xu(r,t,e=!1){let n=it(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function Qu(r,t,e=0,n=!1){let o=Mr(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function Ku(r,t,e=0,n=!1){let o=te(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)}function rc(r,t,e=!1){let n=ut(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function tc(r,t,e=!1){let n=ct(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function ec(r,t){let e=lt(r.storage,t);return typeof e=="number"?e:I._fromStorage(e)}function nc(r,t){let e=ft(r.storage,t);return typeof e=="number"?e:I._fromStorage(e)}function oc(r,t){return I._fromStorage(ee(r.storage,t))}function ac(r,t){return I._fromStorage(ne(r.storage,t))}function sc(r,t,e=!1){let n=mt(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)}function ic(r){return r.cbrt()}function uc(r){return r.fabs()}function cc(r,t){return r.divmod(t)}function lc(r){return r.square()}function fc(r,t){return r.remainder(t)}function mc(r,t){return r.heaviside(t)}function pc(r,t){let e=typeof t=="number"?t:t.storage;return I._fromStorage(kn(r.storage,e))}function yc(r,t){let e=typeof t=="number"?t:t.storage;return I._fromStorage(Cn(r.storage,e))}function dc(r){let[t,e]=Fn(r.storage);return[I._fromStorage(t),I._fromStorage(e)]}function gc(r,t){let e=typeof t=="number"?t:t.storage;return I._fromStorage(Vn(r.storage,e))}function bc(r,t){let e=typeof t=="number"?t:t.storage;return I._fromStorage(Pn(r.storage,e))}function Ac(r,t){let e=typeof t=="number"?t:t.storage;return I._fromStorage(qn(r.storage,e))}function hc(r){let[t,e]=jn(r.storage);return[I._fromStorage(t),I._fromStorage(e)]}function Sc(r,t){return r.bitwise_and(t)}function Nc(r,t){return r.bitwise_or(t)}function Dc(r,t){return r.bitwise_xor(t)}function xc(r){return r.bitwise_not()}function wc(r){return r.invert()}function zc(r,t){return r.left_shift(t)}function Ic(r,t){return r.right_shift(t)}function _c(r,t=-1,e="big"){let n=Xa(r.storage,t,e);return I._fromStorage(n)}function Bc(r,t=-1,e=-1,n="big"){let o=Qa(r.storage,t,e,n);return I._fromStorage(o)}function vc(r,t){return r.logical_and(t)}function Ec(r,t){return r.logical_or(t)}function Oc(r){return r.logical_not()}function Mc(r,t){return r.logical_xor(t)}function Tc(r){return r.isfinite()}function Uc(r){return r.isinf()}function $c(r){return r.isnan()}function kc(r){return r.isnat()}function Cc(r,t){return r.copysign(t)}function Fc(r){return r.signbit()}function Vc(r,t){return r.nextafter(t)}function Pc(r){return r.spacing()}function qc(r){return I._fromStorage(ps(r.storage))}function jc(r){return ys(r.storage)}function Rc(r){return I._fromStorage(ds(r.storage))}function Lc(r){return gs(r.storage)}function Wc(r){return I._fromStorage(bs(r.storage))}function Gc(r){return I._fromStorage(As(r.storage))}function Zc(r){return hs(r.storage)}function Hc(r,t=100){return I._fromStorage(Ss(r.storage,t))}function Yc(r){return Ns(r)}function Jc(r){return Ds(r)}function Xc(r,t){return xs(r,t)}function Qc(r,t){return ws(r,t)}function Kc(r,...t){let e=t.map(o=>o.storage),n=Eo(r,...e);return typeof n=="number"||typeof n=="bigint"?n:I._fromStorage(n)}function tl(r,t,e){return I._fromStorage(_a(r.storage,t.storage,e))}function el(r,t,e,n){Ba(r.storage,t.storage,e.storage,n)}function nl(r,t,e){let n=e instanceof I?e.storage:e;va(r.storage,t.storage,n)}function ol(r,t,e){return I._fromStorage(Ea(r.storage,t.storage,e))}function al(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return I._fromStorage(Oa(n,o,e))}function sl(r,t,e){Ma(r.storage,t.storage,e.storage)}function il(r,t,e=!1){let n=typeof t=="number"?t:t.storage;qa(r.storage,n,e)}function ul(r,t=2){return de(r,t).map(n=>I._fromStorage(n))}function cl(r){return Ta(r.storage).map(e=>I._fromStorage(e))}function ll(r,t=0,e){return ge(r,t,e).map(o=>I._fromStorage(o))}function fl(r,t=0){return Ua(r.storage,t).map(n=>I._fromStorage(n))}function ml(r,t=0,e){return be(r,t,e).map(o=>I._fromStorage(o))}function pl(r,t=0){return $a(r.storage,t).map(n=>I._fromStorage(n))}function yl(r,t,e=0){return ka(r,(a,i)=>t(a,i).storage,e).map(a=>I._fromStorage(a))}function dl(r,t="int32"){return I._fromStorage(Ca(r,t))}function gl(...r){return Fa(...r.map(e=>e.storage)).map(e=>I._fromStorage(e))}function bl(r,t,e="raise"){let n=r.map(o=>o.storage);return I._fromStorage(Va(n,t,e))}function Al(r,t,e="C"){let n=r instanceof I?r.storage:r;return Pa(n,t,e).map(a=>I._fromStorage(a))}function hl(r,t=-1){return I._fromStorage(he(r.storage,t))}function Sl(r,t=-1){return I._fromStorage(Se(r.storage,t))}function Nl(r){let t=r.map(e=>e.storage);return I._fromStorage(Is(t))}function Dl(r,t,e=-1){return I._fromStorage(Ne(r.storage,t,e))}function xl(r,t,e=-1){return I._fromStorage(De(r.storage,t,e))}function wl(r){return I._fromStorage(_s(r.storage))}function zl(r){return At(r.storage).map(e=>I._fromStorage(e))}function Il(r){return I._fromStorage(xe(r.storage))}function _l(r){return I._fromStorage(Bs(r.storage))}function Bl(r,t,e){let n=vs(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>I._fromStorage(o)):I._fromStorage(n)}function vl(r,t,e="left"){return I._fromStorage(we(r.storage,t.storage,e))}function El(r,t){return I._fromStorage(Es(r.storage,t.storage))}function Ol(r,t){let e=ze(r.storage,t);return typeof e=="number"?e:I._fromStorage(e)}function St(r,t=0){return I._fromStorage(Ie(r.storage,t))}function Ml(r){return I._fromStorage(_e(r.storage))}function Tl(r){return I._fromStorage(Be(r.storage))}function Ul(r){return I._fromStorage(ve(r.storage))}function $l(r){return I._fromStorage(Ee(r.storage))}function kl(r){return I._fromStorage(Oe(r.storage))}function Cl(r,t=!1,e=!1,n=!1){let o=fr(r.storage,t,e,n);if(o instanceof S)return I._fromStorage(o);let a={values:I._fromStorage(o.values)};return o.indices&&(a.indices=I._fromStorage(o.indices)),o.inverse&&(a.inverse=I._fromStorage(o.inverse)),o.counts&&(a.counts=I._fromStorage(o.counts)),a}function Fl(r,t){return I._fromStorage(Us(r.storage,t.storage))}function Vl(r,t){return I._fromStorage($s(r.storage,t.storage))}function Pl(r,t){return I._fromStorage(Me(r.storage,t.storage))}function ql(r,t){return I._fromStorage(ks(r.storage,t.storage))}function jl(r,t){return I._fromStorage(Cs(r.storage,t.storage))}function Rl(r,t){return I._fromStorage(Fs(r.storage,t.storage))}function Ll(r,t=1,e=-1){return I._fromStorage(Te(r.storage,t,e))}function Wl(r,t=null,e=null){return I._fromStorage(Ps(r.storage,t,e))}function Gl(r,t=1,e=null){let n=qs(r.storage,t,e);return Array.isArray(n)?n.map(o=>I._fromStorage(o)):I._fromStorage(n)}function Zl(r,t,e=-1,n=-1,o=-1){return I._fromStorage(js(r.storage,t.storage,e,n,o))}function Hl(r,t,e=0){return I._fromStorage(Ls(r.storage,t?.storage,e))}function Yl(r,t,e=!1){return I._fromStorage(Ws(r.storage,t.storage,e))}function Jl(r,t=10,e,n=!1,o){let a=Gs(r.storage,typeof t=="number"?t:t.storage,e,n,o?.storage);return[I._fromStorage(a.hist),I._fromStorage(a.bin_edges)]}function Xl(r,t,e=10,n,o=!1,a){let i;typeof e=="number"?i=e:Array.isArray(e)&&e.length===2?typeof e[0]=="number"?i=e:i=[e[0].storage,e[1].storage]:i=10;let u=Zs(r.storage,t.storage,i,n,o,a?.storage);return[I._fromStorage(u.hist),I._fromStorage(u.x_edges),I._fromStorage(u.y_edges)]}function Ql(r,t=10,e,n=!1,o){let a=Hs(r.storage,t,e,n,o?.storage);return[I._fromStorage(a.hist),a.edges.map(i=>I._fromStorage(i))]}function Kl(r,t,e="full"){return I._fromStorage(Ue(r.storage,t.storage,e))}function rf(r,t,e="full"){return I._fromStorage(Ys(r.storage,t.storage,e))}function tf(r,t,e=!0,n=!1,o){return I._fromStorage($e(r.storage,t?.storage,e,n,o))}function ef(r,t,e=!0){return I._fromStorage(Js(r.storage,t?.storage,e))}var I,rl,qr=k(()=>{"use strict";An();W();L();Qr();Rn();Qn();ro();se();Wo();na();ya();Na();ja();Ka();zs();Os();Ts();Vs();Rs();Xs();I=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static _fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return Xr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(w(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((i,u)=>{let s=i;if(s<0&&(s=this.shape[u]+s),s<0||s>=this.shape[u])throw new Error(`Index ${i} is out of bounds for axis ${u} with size ${this.shape[u]}`);return s}),o=this.dtype,a;w(o)?a=typeof e=="bigint"?e:BigInt(Math.round(e)):o==="bool"?a=e?1:0:a=Number(e),this._storage.set(n,a)}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,i=T(t);if(!i)throw new Error(`Cannot convert to dtype ${t}`);let u=new i(a),s=this.data;if(w(n)&&!w(t)){let l=s;if(t==="bool")for(let m=0;m<a;m++)u[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)u[m]=Number(l[m])}else if(!w(n)&&w(t)){let l=s;for(let m=0;m<a;m++)u[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=s;for(let m=0;m<a;m++)u[m]=l[m]!==0?1:0}else if(n==="bool"&&!w(t)){let l=s;for(let m=0;m<a;m++)u[m]=l[m]}else if(!w(n)&&!w(t)){let l=s;for(let m=0;m<a;m++)u[m]=l[m]}else{let l=s;for(let m=0;m<a;m++)u[m]=l[m]}let c=S.fromData(u,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=Nn(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=Dn(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=xn(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=wn(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=rt(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=qt(this._storage,e);return r._fromStorage(n)}positive(){let t=Bn(this._storage);return r._fromStorage(t)}reciprocal(){let t=vn(this._storage);return r._fromStorage(t)}sqrt(){let t=Go(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=Zo(this._storage,e);return r._fromStorage(n)}exp(){let t=Ho(this._storage);return r._fromStorage(t)}exp2(){let t=Yo(this._storage);return r._fromStorage(t)}expm1(){let t=Jo(this._storage);return r._fromStorage(t)}log(){let t=Xo(this._storage);return r._fromStorage(t)}log2(){let t=Qo(this._storage);return r._fromStorage(t)}log10(){let t=Ko(this._storage);return r._fromStorage(t)}log1p(){let t=ra(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=ta(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=ea(this._storage,e);return r._fromStorage(n)}absolute(){let t=zn(this._storage);return r._fromStorage(t)}negative(){let t=In(this._storage);return r._fromStorage(t)}sign(){let t=_n(this._storage);return r._fromStorage(t)}around(t=0){let e=Ie(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=_e(this._storage);return r._fromStorage(t)}fix(){let t=Be(this._storage);return r._fromStorage(t)}floor(){let t=ve(this._storage);return r._fromStorage(t)}rint(){let t=Ee(this._storage);return r._fromStorage(t)}trunc(){let t=Oe(this._storage);return r._fromStorage(t)}sin(){let t=oa(this._storage);return r._fromStorage(t)}cos(){let t=aa(this._storage);return r._fromStorage(t)}tan(){let t=sa(this._storage);return r._fromStorage(t)}arcsin(){let t=ia(this._storage);return r._fromStorage(t)}arccos(){let t=ua(this._storage);return r._fromStorage(t)}arctan(){let t=ca(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=la(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=fa(this._storage,e);return r._fromStorage(n)}degrees(){let t=ma(this._storage);return r._fromStorage(t)}radians(){let t=pa(this._storage);return r._fromStorage(t)}sinh(){let t=da(this._storage);return r._fromStorage(t)}cosh(){let t=ga(this._storage);return r._fromStorage(t)}tanh(){let t=ba(this._storage);return r._fromStorage(t)}arcsinh(){let t=Aa(this._storage);return r._fromStorage(t)}arccosh(){let t=ha(this._storage);return r._fromStorage(t)}arctanh(){let t=Sa(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=Ln(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=Wn(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=Gn(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=Zn(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=Hn(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=Yn(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=jt(this._storage,o,e,n);return r._fromStorage(a)}allclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage;return Jn(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=Wa(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=Ga(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=Za(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=Ae(this._storage);return r._fromStorage(t)}invert(){let t=Ha(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=Ya(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=Ja(this._storage,e);return r._fromStorage(n)}logical_and(t){let e=typeof t=="number"?t:t._storage,n=ts(this._storage,e);return r._fromStorage(n)}logical_or(t){let e=typeof t=="number"?t:t._storage,n=es(this._storage,e);return r._fromStorage(n)}logical_not(){let t=ns(this._storage);return r._fromStorage(t)}logical_xor(t){let e=typeof t=="number"?t:t._storage,n=os(this._storage,e);return r._fromStorage(n)}isfinite(){let t=as(this._storage);return r._fromStorage(t)}isinf(){let t=ss(this._storage);return r._fromStorage(t)}isnan(){let t=is(this._storage);return r._fromStorage(t)}isnat(){let t=us(this._storage);return r._fromStorage(t)}copysign(t){let e=typeof t=="number"?t:t._storage,n=cs(this._storage,e);return r._fromStorage(n)}signbit(){let t=ls(this._storage);return r._fromStorage(t)}nextafter(t){let e=typeof t=="number"?t:t._storage,n=fs(this._storage,e);return r._fromStorage(n)}spacing(){let t=ms(this._storage);return r._fromStorage(t)}sum(t,e=!1){let n=Or(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}mean(t,e=!1){let n=tt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}max(t,e=!1){let n=et(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}min(t,e=!1){let n=nt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}prod(t,e=!1){let n=Lt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}argmin(t){let e=Wt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=Gt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=Zt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=Kn(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=Ht(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=Yt(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage(Jt(this._storage,t))}cumprod(t){return r._fromStorage(Xt(this._storage,t))}ptp(t,e=!1){let n=Qt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}median(t,e=!1){let n=Kt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=re(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=xr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=ot(this._storage,e,t?.storage);return typeof n=="number"?n:r._fromStorage(n)}nansum(t,e=!1){let n=at(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanprod(t,e=!1){let n=st(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmean(t,e=!1){let n=it(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=Mr(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=te(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=ut(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanmax(t,e=!1){let n=ct(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}nanargmin(t){let e=lt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=ft(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(ee(this._storage,t))}nancumprod(t){return r._fromStorage(ne(this._storage,t))}nanmedian(t,e=!1){let n=mt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(he(this._storage,t))}argsort(t=-1){return r._fromStorage(Se(this._storage,t))}partition(t,e=-1){return r._fromStorage(Ne(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(De(this._storage,t,e))}nonzero(){return At(this._storage).map(e=>r._fromStorage(e))}argwhere(){return r._fromStorage(xe(this._storage))}searchsorted(t,e="left"){return r._fromStorage(we(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(Te(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=G(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=pt(this._storage);return r._fromStorage(t)}ravel(){let t=wr(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=Ur(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=to(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=Tr(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=eo(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=oe(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=fo(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=xa(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;wa(this._storage,t,n)}matmul(t){let e=rr(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=ue(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}trace(){return Io(this._storage)}inner(t){let e=_o(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"?e:r._fromStorage(e)}outer(t){let e=ce(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=Bo(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"?n:r._fromStorage(n)}cbrt(){let t=En(this._storage);return r._fromStorage(t)}fabs(){let t=On(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=Mn(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=Tn(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=Un(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=$n(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((s,c)=>{let l=gn(s);return bn(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let s=0;s<e.length;s++){let c=e[s],l=this._storage.strides[s];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let i=S.fromData(this._storage.data,n,this._storage.dtype,o,a),u=this._base??this;return new r(i,u)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let i=[];for(let u=0;u<t[a];u++)o[a]=u,i.push(n(o,a+1));return i};return n(new Array(e),0)}};rl={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let i=Mo(r.storage,t.storage,e,n,o,a);return typeof i=="number"?i:I._fromStorage(i)},norm:(r,t=null,e=null,n=!1)=>{let o=To(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=zr(r.storage,t,e,n);return typeof o=="number"?o:I._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=br(r.storage,t,e);return typeof n=="number"?n:I._fromStorage(n)},qr:(r,t="reduced")=>{let e=le(r.storage,t);return e instanceof S?I._fromStorage(e):"q"in e&&"r"in e?{q:I._fromStorage(e.q),r:I._fromStorage(e.r)}:{h:I._fromStorage(e.h),tau:I._fromStorage(e.tau)}},cholesky:(r,t=!1)=>I._fromStorage(Uo(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=$o(r.storage,t,e);return"u"in n?{u:I._fromStorage(n.u),s:I._fromStorage(n.s),vt:I._fromStorage(n.vt)}:I._fromStorage(n)},det:r=>ko(r.storage),inv:r=>I._fromStorage(yt(r.storage)),solve:(r,t)=>I._fromStorage(Co(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=Fo(r.storage,t.storage,e);return{x:I._fromStorage(n.x),residuals:I._fromStorage(n.residuals),rank:n.rank,s:I._fromStorage(n.s)}},cond:(r,t=2)=>Vo(r.storage,t),matrix_rank:(r,t)=>Po(r.storage,t),matrix_power:(r,t)=>I._fromStorage(qo(r.storage,t)),pinv:(r,t=1e-15)=>I._fromStorage(jo(r.storage,t)),eig:r=>{let t=pe(r.storage);return{w:I._fromStorage(t.w),v:I._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=ye(r.storage,t);return{w:I._fromStorage(e.w),v:I._fromStorage(e.v)}},eigvals:r=>I._fromStorage(Ro(r.storage)),eigvalsh:(r,t="L")=>I._fromStorage(Lo(r.storage,t))}});function en(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}function of(r){if(r.startsWith("[")||r.startsWith("("))throw new ir(`Structured/compound dtypes are not supported: ${r}`);let t="",e=r;(r[0]==="<"||r[0]===">"||r[0]==="="||r[0]==="|")&&(t=r[0],e=r.slice(1));let n=e[0];if(n&&n in nf)throw new ir(`Unsupported dtype: ${nf[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=Ip[e];if(!o)throw new ir(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${Nt.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=en(),i=t==="<"||t==="|"||t==="="&&a,u=t===">"||t==="="&&!a,s=parseInt(e.slice(1),10),c=s>1&&(u&&a||i&&!a);return{dtype:o,needsByteSwap:c,itemsize:s}}var jr,Nt,Ip,Rr,nf,ir,Y,Lr=k(()=>{"use strict";jr=new Uint8Array([147,78,85,77,80,89]),Nt=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];Ip={f8:"float64",f4:"float32",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},Rr={float64:"<f8",float32:"<f4",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},nf={c:"complex numbers",S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};ir=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},Y=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}}});function dr(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=Dt(t);return xt(t,e)}function Dt(r){if(r.length<10)throw new Y("File too small to be a valid NPY file");for(let c=0;c<jr.length;c++)if(r[c]!==jr[c])throw new Y("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new Y(`Unsupported NPY version: ${t}.${e}`);let n,o;t===1?(n=r[8]|r[9]<<8,o=10):(n=r[8]|r[9]<<8|r[10]<<16|r[11]<<24,o=12);let a=o+n;if(r.length<a)throw new Y("File truncated: header extends beyond file");let i=r.slice(o,a),u=new TextDecoder("utf-8").decode(i).trim(),s=_p(u);return{version:{major:t,minor:e},header:s,dataOffset:a}}function xt(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:i}=of(e.descr),u=e.shape.reduce((d,g)=>d*g,1),s=u*i,c=r.length-n;if(c<s)throw new Y(`File truncated: expected ${s} bytes of data, got ${c}`);let l=new ArrayBuffer(s);new Uint8Array(l).set(r.subarray(n,n+s));let f=Bp(l,o,u,a,i),p=e.shape,y;if(e.fortran_order&&p.length>1){let d=[...p].reverse(),g=S.fromData(f,d,o);y=vp(g,d),p=e.shape}else y=S.fromData(f,[...p],o);return new I(y)}function _p(r){let t=r.match(/'descr'\s*:\s*'([^']+)'/),e=r.match(/'fortran_order'\s*:\s*(True|False)/),n=r.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!t||!e||!n)throw new Y(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",i=n[1].trim(),u;return i===""?u=[]:u=i.split(",").map(s=>s.trim()).filter(s=>s!=="").map(s=>{let c=parseInt(s,10);if(isNaN(c))throw new Y(`Invalid shape value: ${s}`);return c}),{descr:o,fortran_order:a,shape:u}}function Bp(r,t,e,n,o){let a=T(t);if(!a)throw new Y(`Cannot create array for dtype: ${t}`);if(!n)return new a(r,0,e);let i=new Uint8Array(r),u=new Uint8Array(r.byteLength);for(let s=0;s<e;s++){let c=s*o;for(let l=0;l<o;l++)u[c+l]=i[c+o-1-l]}return new a(u.buffer,0,e)}function vp(r,t){let e=t.length,n=r.size,o=r.dtype,a=T(o);if(!a)throw new Y(`Cannot create array for dtype: ${o}`);let i=new a(n),u=[...t].reverse(),s=af(t),c=af(u),l=new Array(e).fill(0);for(let m=0;m<n;m++){let f=m;for(let y=0;y<e;y++){let d=s[y];l[y]=Math.floor(f/d),f=f%d}let p=0;for(let y=0;y<e;y++)p+=l[e-1-y]*c[y];w(o),i[p]=r.iget(m)}return S.fromData(i,u,o)}function af(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var wt=k(()=>{"use strict";qr();L();W();Lr()});function mr(r){let t=r.shape,e=r.dtype,n=Rr[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,i=12,s=(64-(i+a.length+1)%64)%64;a=a+" ".repeat(s)+`
2
- `;let c=new TextEncoder().encode(a),l=c.length,m=r.size,f=Xr(e),p=m*f,y=i+l+p,d=new Uint8Array(y);d.set(jr,0),d[6]=3,d[7]=0,d[8]=l&255,d[9]=l>>8&255,d[10]=l>>16&255,d[11]=l>>24&255,d.set(c,i);let g=i+l;return Ep(r,d.subarray(g),f),d}function Ep(r,t,e){let n=r.dtype,o=r.size,a=en(),i=w(n),u=r._storage;if(u.isCContiguous&&u.offset===0&&a){let c=u.data,l=new Uint8Array(c.buffer,c.byteOffset,o*e);t.set(l)}else{let c=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let l=0;l<o;l++){let m=u.iget(l),f=l*e;i?Op(c,f,m,n==="uint64"):Mp(c,f,m,n)}}}function Op(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Mp(r,t,e,n){switch(n){case"float64":r.setFloat64(t,e,!0);break;case"float32":r.setFloat32(t,e,!0);break;case"int32":r.setInt32(t,e,!0);break;case"int16":r.setInt16(t,e,!0);break;case"int8":r.setInt8(t,e);break;case"uint32":r.setUint32(t,e,!0);break;case"uint16":r.setUint16(t,e,!0);break;case"uint8":case"bool":r.setUint8(t,e);break;default:throw new Error(`Unsupported dtype for serialization: ${n}`)}}var zt=k(()=>{"use strict";W();Lr()});function nn(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Tp[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}var Tp,on=k(()=>{"use strict";Tp=(()=>{let r=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r})()});async function sf(r){let t=cf(r),e=new Map;for(let n of t){let o=await Up(n);e.set(n.name,o)}return e}function uf(r){let t=cf(r),e=new Map;for(let n of t){if(n.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${n.name}. Use readZip() (async) for DEFLATE-compressed files.`);e.set(n.name,n.compressedData)}return e}function cf(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),i=e.getUint16(o+10,!0),u=[],s=a;for(let c=0;c<i&&e.getUint32(s,!0)===33639248;c++){let m=e.getUint16(s+10,!0),f=e.getUint32(s+16,!0),p=e.getUint32(s+20,!0),y=e.getUint32(s+24,!0),d=e.getUint16(s+28,!0),g=e.getUint16(s+30,!0),h=e.getUint16(s+32,!0),A=e.getUint32(s+42,!0),b=t.slice(s+46,s+46+d),N=new TextDecoder("utf-8").decode(b);u.push({name:N,compressionMethod:m,crc32:f,compressedSize:p,uncompressedSize:y,localHeaderOffset:A}),s=s+46+d+g+h}for(let c of u){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let f=e.getUint16(l+26,!0),p=e.getUint16(l+28,!0),y=l+30+f+p,d=t.slice(y,y+c.compressedSize);n.push({name:c.name,compressedData:d,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function Up(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await $p(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function $p(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),u=new Uint8Array(i),s=0;for(let c of a)u.set(c,s),s+=c.length;return u}var lf=k(()=>{"use strict";on()});var mf={};Ct(mf,{loadNpz:()=>It,loadNpzSync:()=>_t,parseNpz:()=>hr,parseNpzSync:()=>Gr});async function hr(r,t={}){let e=t.force??!1,n=await sf(r);return ff(n,e)}function Gr(r,t={}){let e=t.force??!1,n=uf(r);return ff(n,e)}function ff(r,t){let e=new Map,n=[],o=new Map;for(let[a,i]of r){if(!a.endsWith(".npy"))continue;let u=a.slice(0,-4);try{let s=dr(i);e.set(u,s)}catch(s){if(s instanceof ir&&t)n.push(u),o.set(u,s.message);else throw s}}return{arrays:e,skipped:n,errors:o}}async function It(r,t={}){let e=await hr(r,t);return Object.fromEntries(e.arrays)}function _t(r,t={}){let e=Gr(r,t);return Object.fromEntries(e.arrays)}var Bt=k(()=>{"use strict";wt();Lr();lf()});async function pf(r,t={}){let e=t.compress??!1,n=[];for(let[f,p]of r){let y=nn(p),d,g;e?(d=await Cp(p),d.length<p.length?g=8:(d=p,g=0)):(d=p,g=0),n.push({name:f,data:p,compressedData:d,crc:y,compressionMethod:g,offset:0})}let o=0;for(let f of n){let p=new TextEncoder().encode(f.name);o+=30+p.length+f.compressedData.length}let a=0;for(let f of n){let p=new TextEncoder().encode(f.name);a+=46+p.length}let u=o+a+22,s=new Uint8Array(u),c=new DataView(s.buffer),l=0;for(let f of n)f.offset=l,l=df(s,c,l,f);let m=l;for(let f of n)l=gf(s,c,l,f);return bf(c,l,n.length,a,m),s}function yf(r){let t=[];for(let[l,m]of r){let f=nn(m);t.push({name:l,data:m,compressedData:m,crc:f,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,i=new Uint8Array(a),u=new DataView(i.buffer),s=0;for(let l of t)l.offset=s,s=df(i,u,s,l);let c=s;for(let l of t)s=gf(i,u,s,l);return bf(u,s,t.length,n,c),i}function df(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,67324752,!0),e+=4,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,r.set(o,e),e+=o.length,r.set(n.compressedData,e),e+=n.compressedData.length,e}function gf(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,33639248,!0),e+=4,t.setUint16(e,20,!0),e+=2,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint32(e,0,!0),e+=4,t.setUint32(e,n.offset,!0),e+=4,r.set(o,e),e+=o.length,e}function bf(r,t,e,n,o){r.setUint32(t,101010256,!0),t+=4,r.setUint16(t,0,!0),t+=2,r.setUint16(t,0,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint32(t,n,!0),t+=4,r.setUint32(t,o,!0),t+=4,r.setUint16(t,0,!0)}async function Cp(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),u=new Uint8Array(i),s=0;for(let c of a)u.set(c,s),s+=c.length;return u}var Af=k(()=>{"use strict";on()});var Sf={};Ct(Sf,{serializeNpz:()=>Br,serializeNpzSync:()=>vt});async function Br(r,t={}){let e=hf(r);return pf(e,{compress:t.compress??!1})}function vt(r){let t=hf(r);return yf(t)}function hf(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=mr(o);t.set(`arr_${n}.npy`,a)}return t}let e=r instanceof Map?r.entries():Object.entries(r);for(let[n,o]of e){if(typeof n!="string"||n.length===0)throw new Error("Array names must be non-empty strings");let a=mr(o),i=n.endsWith(".npy")?n:`${n}.npy`;t.set(i,a)}return t}var Et=k(()=>{"use strict";zt();Af()});var Ay={};Ct(Ay,{DTYPE_TO_DESCR:()=>Rr,InvalidNpyError:()=>Y,NDArray:()=>I,SUPPORTED_DTYPES:()=>Nt,UnsupportedDTypeError:()=>ir,__version__:()=>ey,abs:()=>je,absolute:()=>je,acos:()=>We,acosh:()=>Ye,amax:()=>rn,amin:()=>tn,append:()=>Ou,arange:()=>Ks,arccos:()=>We,arccosh:()=>Ye,arcsin:()=>Le,arcsinh:()=>He,arctan:()=>Ge,arctan2:()=>Ze,arctanh:()=>Je,argpartition:()=>xl,argsort:()=>Sl,argwhere:()=>Il,around:()=>St,array:()=>q,array_equal:()=>ju,array_equiv:()=>Ru,array_split:()=>lu,asanyarray:()=>ci,asarray:()=>Pr,ascontiguousarray:()=>li,asfortranarray:()=>fi,asin:()=>Le,asinh:()=>He,atan:()=>Ge,atan2:()=>Ze,atanh:()=>Je,atleast_1d:()=>wu,atleast_2d:()=>zu,atleast_3d:()=>Iu,average:()=>Hu,bincount:()=>Hl,bitwise_and:()=>Sc,bitwise_not:()=>xc,bitwise_or:()=>Nc,bitwise_xor:()=>Dc,broadcast_arrays:()=>ku,broadcast_shapes:()=>Cu,broadcast_to:()=>$u,cbrt:()=>ic,ceil:()=>Ml,choose:()=>qu,column_stack:()=>Bu,compress:()=>ol,concatenate:()=>Ar,convolve:()=>rf,copy:()=>oi,copysign:()=>Cc,copyto:()=>Pu,corrcoef:()=>ef,correlate:()=>Kl,cos:()=>Hi,cosh:()=>eu,count_nonzero:()=>Ol,cov:()=>tf,cross:()=>Zl,cumprod:()=>Ke,cumsum:()=>Qe,cumulative_prod:()=>Ke,cumulative_sum:()=>Qe,deg2rad:()=>Ki,degrees:()=>Xi,delete:()=>Mu,diag:()=>Pe,diag_indices:()=>ul,diag_indices_from:()=>cl,diagflat:()=>mi,diagonal:()=>qi,diff:()=>Ll,digitize:()=>Yl,divide:()=>Re,divmod:()=>cc,dot:()=>Vi,dsplit:()=>_u,dstack:()=>uu,ediff1d:()=>Wl,einsum:()=>Kc,empty:()=>Fe,empty_like:()=>ii,exp:()=>wi,exp2:()=>zi,expand_dims:()=>Au,expm1:()=>Ii,extract:()=>El,eye:()=>Ce,fabs:()=>uc,fill_diagonal:()=>il,fix:()=>Tl,flatnonzero:()=>_l,flip:()=>ht,fliplr:()=>hu,flipud:()=>Su,float_power:()=>pc,floor:()=>Ul,floor_divide:()=>ki,fmod:()=>yc,frexp:()=>dc,frombuffer:()=>hi,fromfile:()=>Si,fromfunction:()=>pi,fromiter:()=>Ni,fromregex:()=>gy,fromregexSync:()=>by,fromstring:()=>Di,full:()=>Ve,full_like:()=>ui,gcd:()=>gc,genfromtxt:()=>yy,genfromtxtSync:()=>dy,geomspace:()=>ei,gradient:()=>Gl,heaviside:()=>mc,histogram:()=>Jl,histogram2d:()=>Xl,histogramdd:()=>Ql,hsplit:()=>mu,hstack:()=>iu,hypot:()=>Ji,identity:()=>ni,in1d:()=>Fl,indices:()=>dl,inner:()=>Li,insert:()=>Tu,intersect1d:()=>Vl,invert:()=>wc,iscomplex:()=>qc,iscomplexobj:()=>jc,isdtype:()=>Xc,isfinite:()=>Tc,isfortran:()=>Zc,isin:()=>Pl,isinf:()=>Uc,isnan:()=>$c,isnat:()=>kc,isneginf:()=>Wc,isposinf:()=>Gc,isreal:()=>Rc,isrealobj:()=>Lc,isscalar:()=>Yc,iterable:()=>Jc,ix_:()=>gl,kron:()=>ji,lcm:()=>bc,ldexp:()=>Ac,left_shift:()=>zc,lexsort:()=>Nl,linalg:()=>rl,linspace:()=>ri,load:()=>oy,loadNpy:()=>Wf,loadNpySync:()=>Gf,loadNpz:()=>It,loadNpzFile:()=>Yf,loadNpzFileSync:()=>Jf,loadNpzSync:()=>_t,loadSync:()=>ay,loadtxt:()=>ly,loadtxtSync:()=>fy,log:()=>_i,log10:()=>vi,log1p:()=>Ei,log2:()=>Bi,logaddexp:()=>Oi,logaddexp2:()=>Mi,logical_and:()=>vc,logical_not:()=>Oc,logical_or:()=>Ec,logical_xor:()=>Mc,logspace:()=>ti,mask_indices:()=>yl,max:()=>rn,median:()=>Wu,meshgrid:()=>yi,min:()=>tn,mod:()=>$i,modf:()=>hc,moveaxis:()=>au,nanargmax:()=>nc,nanargmin:()=>ec,nancumprod:()=>ac,nancumsum:()=>oc,nanmax:()=>tc,nanmean:()=>Xu,nanmedian:()=>sc,nanmin:()=>rc,nanprod:()=>Ju,nanstd:()=>Ku,nansum:()=>Yu,nanvar:()=>Qu,negative:()=>Ti,nextafter:()=>Vc,nonzero:()=>zl,ones:()=>ke,ones_like:()=>si,outer:()=>Wi,packbits:()=>_c,pad:()=>Uu,parseNpy:()=>dr,parseNpyData:()=>xt,parseNpyHeader:()=>Dt,parseNpz:()=>hr,parseNpzSync:()=>Gr,parseTxt:()=>Sr,partition:()=>Dl,percentile:()=>Gu,place:()=>sl,positive:()=>Ci,pow:()=>qe,power:()=>qe,promote_types:()=>Qc,ptp:()=>Lu,put:()=>Vu,put_along_axis:()=>el,putmask:()=>nl,quantile:()=>Zu,rad2deg:()=>ru,radians:()=>Qi,random:()=>ty,ravel:()=>du,ravel_multi_index:()=>bl,real_if_close:()=>Hc,reciprocal:()=>Fi,remainder:()=>fc,repeat:()=>yu,reshape:()=>gu,resize:()=>Eu,right_shift:()=>Ic,rint:()=>$l,roll:()=>Du,rollaxis:()=>xu,rot90:()=>Nu,round:()=>St,round_:()=>St,row_stack:()=>vu,save:()=>sy,saveNpy:()=>Zf,saveNpySync:()=>Hf,saveNpz:()=>dn,saveNpzSync:()=>ny,saveSync:()=>iy,savetxt:()=>my,savetxtSync:()=>py,savez:()=>uy,savez_compressed:()=>cy,searchsorted:()=>vl,select:()=>al,serializeNpy:()=>mr,serializeNpz:()=>Br,serializeNpzSync:()=>vt,serializeTxt:()=>vr,setdiff1d:()=>ql,setxor1d:()=>jl,sign:()=>Ui,signbit:()=>Fc,sin:()=>Zi,sinh:()=>tu,sort:()=>hl,sort_complex:()=>wl,spacing:()=>Pc,split:()=>cu,sqrt:()=>xi,square:()=>lc,squeeze:()=>bu,stack:()=>su,swapaxes:()=>ou,take:()=>Fu,take_along_axis:()=>tl,tan:()=>Yi,tanh:()=>nu,tensordot:()=>Gi,tile:()=>pu,trace:()=>Pi,transpose:()=>Ri,tri:()=>di,tril:()=>gi,tril_indices:()=>ll,tril_indices_from:()=>fl,triu:()=>bi,triu_indices:()=>ml,triu_indices_from:()=>pl,true_divide:()=>Re,trunc:()=>kl,union1d:()=>Rl,unique:()=>Cl,unpackbits:()=>Bc,unravel_index:()=>Al,vander:()=>Ai,vsplit:()=>fu,vstack:()=>Xe,where:()=>Bl,zeros:()=>sr,zeros_like:()=>ai});module.exports=Ft(Ay);var ur=require("node:fs"),cr=require("node:fs/promises");wt();zt();Bt();Et();qr();function Sr(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:i,dtype:u="float64",missing_values:s,filling_values:c}=t,l=r.split(/\r?\n/);if(o>0&&(l=l.slice(o)),l=l.filter(d=>{let g=d.trim();return!(g===""||n&&g.startsWith(n))}),i!==void 0&&i>0&&(l=l.slice(0,i)),l.length===0)return q([],u);let m=[],f=new Set(s?Array.isArray(s)?s:[s]:[]),p=c!==void 0?c:u.includes("int")||u==="bool"?0:NaN;for(let d of l){let g;e===void 0?g=d.trim().split(/\s+/):g=d.split(e),a!==void 0&&(g=(Array.isArray(a)?a:[a]).map(b=>(b<0&&(b=g.length+b),g[b]??"")));let h=g.map(A=>{let b=A.trim();if(f.has(b)||b==="")return p;let N=parseFloat(b);return isNaN(N)?p:N});m.push(h)}let y=m[0]?.length??0;for(let d=1;d<m.length;d++)if(m[d].length!==y)throw new Error(`Inconsistent number of columns: row 0 has ${y} columns, row ${d} has ${m[d].length} columns`);return y===1?q(m.map(d=>d[0]),u):q(m,u)}function Zr(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return Sr(r,e)}function Hr(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let i=a.slice(1).map(u=>{let s=parseFloat(u);return isNaN(s)?0:s});o.push(i)}return o.length===0?q([],e):o[0].length===1?q(o.map(i=>i[0]),e):q(o,e)}function Nf(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,i,u]=n,s=i!==void 0?parseInt(i,10):void 0,c;switch(u){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(s??6);break;case"e":c=e.toExponential(s??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(s??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=s??6,m=Math.floor(Math.log10(Math.abs(e)));m>=-4&&m<l?(c=e.toPrecision(l),c.includes(".")&&(c=c.replace(/\.?0+$/,""))):c=e.toExponential(l-1),u==="G"&&(c=c.toUpperCase());break}case"s":c=String(e);break;default:c=String(e)}if(a){let l=parseInt(a,10);if(c.length<l){let m=" ".repeat(l-c.length);o==="-"?c=c+m:c=m+c}}return o==="+"&&e>=0&&!c.startsWith("-")&&(c="+"+c),c}function vr(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
3
- `,header:a,footer:i,comments:u="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let s=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let m of l)m.startsWith(u.trimEnd())?s.push(m):s.push(u+m)}let c=r.toArray();if(r.ndim===1)for(let l of c)s.push(Nf(l,e));else for(let l of c){let m=l.map(f=>Nf(f,e));s.push(m.join(n))}if(i!==void 0){let l=i.split(/\r?\n/);for(let m of l)m.startsWith(u.trimEnd())?s.push(m):s.push(u+m)}return s.join(o)+o}qr();wt();zt();Lr();Bt();Et();L();W();var er=624,Ot=397,Fp=2567483615,un=2147483648,cn=2147483647,nr={mt:new Uint32Array(er),mti:er+1};function wf(r){let t=nr.mt;t[0]=r>>>0;for(let e=1;e<er;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}nr.mti=er}function Df(){let r=nr.mt,t,e=[0,Fp];if(nr.mti>=er){let n;for(nr.mti===er+1&&wf(5489),n=0;n<er-Ot;n++)t=r[n]&un|r[n+1]&cn,r[n]=r[n+Ot]^t>>>1^e[t&1];for(;n<er-1;n++)t=r[n]&un|r[n+1]&cn,r[n]=r[n+(Ot-er)]^t>>>1^e[t&1];t=r[er-1]&un|r[0]&cn,r[er-1]=r[Ot-1]^t>>>1^e[t&1],nr.mti=0}return t=r[nr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function F(){let r=Df()>>>5,t=Df()>>>6;return(r*67108864+t)/9007199254740992}var Vp=2468251765,Pp=1492356589,qp=1135663077,jp=2337405405,Rp=3389127133,Lp=1232336661,yn=16,Mt=4;function J(r){return r>>>0}function ln(r,t){return r=J(J(r)^t.val),t.val=J(Math.imul(t.val,Vp)),r=J(Math.imul(r,t.val)),r=J(r^r>>>yn),r}function Wp(r,t){let e=J(J(Math.imul(Rp,J(r)))-J(Math.imul(Lp,J(t))));return e=J(e^e>>>yn),e}function Gp(r){let t=[0,0,0,0],e=[r>>>0],n={val:qp};for(let o=0;o<Mt;o++)o<e.length?t[o]=ln(e[o],n):t[o]=ln(0,n);for(let o=0;o<Mt;o++)for(let a=0;a<Mt;a++)if(o!==a){let i=ln(t[o],n);t[a]=Wp(t[a],i)}return t}function Zp(r,t){let e=[],n=jp;for(let o=0;o<t;o++){let a=r[o%Mt],i=J(a^n);n=J(Math.imul(n,Pp)),i=J(Math.imul(i,n)),i=J(i^i>>>yn),e.push(i)}return e}var Hp=BigInt("4865540595714422341"),Yp=BigInt("2549297995355413924"),Jp=Yp<<BigInt(64)|Hp,fn=BigInt("0xffffffffffffffff"),mn=(BigInt(1)<<BigInt(128))-BigInt(1);function Xp(r){let t=r>>BigInt(64),e=r&fn,n=(t^e)&fn,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&fn}function pn(r,t){return r*Jp+t&mn}function xf(r){let t=Gp(r),e=Zp(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),i=BigInt(e[6])|BigInt(e[7])<<BigInt(32),u=n<<BigInt(64)|o,s=(a<<BigInt(64)|i)<<BigInt(1);s=(s|BigInt(1))&mn;let c=BigInt(0);return c=pn(c,s),c=c+u&mn,c=pn(c,s),{state:c,inc:s}}function Qp(r){return r.state=pn(r.state,r.inc),Xp(r.state)}function Kp(r){let e=Qp(r)>>BigInt(11);return Number(e)/9007199254740992}var Yr=class{constructor(t){if(t!==void 0)this._pcgState=xf(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=xf(e)}}_randomFloat(){return Kp(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((i,u)=>i*u,1),o=S.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i++)a[i]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),i=S.zeros(o,"int64"),u=i.data,s=e-t;for(let c=0;c<a;c++)u[c]=BigInt(Math.floor(this._randomFloat()*s)+t);return i}standard_normal(t){if(t===void 0)return Nr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((i,u)=>i*u,1),o=S.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i+=2){let[u,s]=Jr(this._randomFloat.bind(this));a[i]=u,i+1<n&&(a[i+1]=s)}return o}normal(t=0,e=1,n){if(n===void 0)return Nr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((s,c)=>s*c,1),i=S.zeros(o,"float64"),u=i.data;for(let s=0;s<a;s+=2){let[c,l]=Jr(this._randomFloat.bind(this));u[s]=c*e+t,s+1<a&&(u[s+1]=l*e+t)}return i}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),i=S.zeros(o,"float64"),u=i.data,s=e-t;for(let c=0;c<a;c++)u[c]=this._randomFloat()*s+t;return i}choice(t,e,n=!0,o){return Vf(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return qf(t,this._randomFloat.bind(this))}shuffle(t){Rf(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((u,s)=>u*s,1),a=S.zeros(n,"float64"),i=a.data;for(let u=0;u<o;u++)i[u]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return Tt(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((u,s)=>u*s,1),a=S.zeros(n,"int64"),i=a.data;for(let u=0;u<o;u++)i[u]=BigInt(Tt(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return Ut(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((s,c)=>s*c,1),i=S.zeros(o,"int64"),u=i.data;for(let s=0;s<a;s++)u[s]=BigInt(Ut(t,e,this._randomFloat.bind(this)));return i}};function zf(r){return new Yr(r)}function If(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),wf(r>>>0)}function _f(){return{mt:Array.from(nr.mt),mti:nr.mti}}function Bf(r){nr.mt=new Uint32Array(r.mt),nr.mti=r.mti}function Nr(r){let t,e;do t=r(),e=r();while(t===0);return Math.sqrt(-2*Math.log(t))*Math.cos(2*Math.PI*e)}function Jr(r){let t,e;do t=r(),e=r();while(t===0);let n=Math.sqrt(-2*Math.log(t)),o=2*Math.PI*e;return[n*Math.cos(o),n*Math.sin(o)]}function Tt(r,t){if(r<30){let e=Math.exp(-r),n=0,o=1;do n++,o*=t();while(o>e);return n-1}else{let e=Nr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function Ut(r,t,e){if(r*t<10&&r*(1-t)<10){let n=0;for(let o=0;o<r;o++)e()<t&&n++;return n}else{let n=r*t,o=Math.sqrt(r*t*(1-t)),a=Nr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function vf(r){if(r===void 0)return F();let t=Array.isArray(r)?r:[r],e=t.reduce((a,i)=>a*i,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=F();return n}function Ef(...r){if(r.length===0)return F();let t=r.reduce((o,a)=>o*a,1),e=S.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=F();return e}function Of(...r){if(r.length===0)return Nr(F);let t=r.reduce((o,a)=>o*a,1),e=S.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,i]=Jr(F);n[o]=a,o+1<t&&(n[o+1]=i)}return e}function Mf(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(F()*o)+r;let a=Array.isArray(e)?e:[e],i=a.reduce((c,l)=>c*l,1),u=S.zeros(a,n),s=u.data;if(w(n)){let c=s;for(let l=0;l<i;l++)c[l]=BigInt(Math.floor(F()*o)+r)}else{let c=s;for(let l=0;l<i;l++)c[l]=Math.floor(F()*o)+r}return u}function Tf(r=0,t=1,e){if(e===void 0)return F()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,c)=>s*c,1),a=S.zeros(n,"float64"),i=a.data,u=t-r;for(let s=0;s<o;s++)i[s]=F()*u+r;return a}function Uf(r=0,t=1,e){if(e===void 0)return Nr(F)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((u,s)=>u*s,1),a=S.zeros(n,"float64"),i=a.data;for(let u=0;u<o;u+=2){let[s,c]=Jr(F);i[u]=s*t+r,u+1<o&&(i[u+1]=c*t+r)}return a}function $f(r){if(r===void 0)return Nr(F);let t=Array.isArray(r)?r:[r],e=t.reduce((a,i)=>a*i,1),n=S.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[i,u]=Jr(F);o[a]=i,a+1<e&&(o[a+1]=u)}return n}function kf(r=1,t){if(t===void 0)return-Math.log(1-F())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((i,u)=>i*u,1),o=S.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i++)a[i]=-Math.log(1-F())*r;return o}function Cf(r=1,t){if(t===void 0)return Tt(r,F);let e=Array.isArray(t)?t:[t],n=e.reduce((i,u)=>i*u,1),o=S.zeros(e,"int64"),a=o.data;for(let i=0;i<n;i++)a[i]=BigInt(Tt(r,F));return o}function Ff(r,t,e){if(e===void 0)return Ut(r,t,F);let n=Array.isArray(e)?e:[e],o=n.reduce((u,s)=>u*s,1),a=S.zeros(n,"int64"),i=a.data;for(let u=0;u<o;u++)i[u]=BigInt(Ut(r,t,F));return a}function Vf(r,t,e=!0,n,o=F){let a;if(typeof r=="number")a=Array.from({length:r},(f,p)=>p);else{let f=r.size;a=[];for(let p=0;p<f;p++)a.push(Number(r.iget(p)))}let i=a.length;if(i===0)throw new Error("cannot take a sample from an empty sequence");let u;if(n!==void 0){if(Array.isArray(n))u=n;else{let p=n.size;u=[];for(let y=0;y<p;y++)u.push(Number(n.iget(y)))}if(u.length!==i)throw new Error("p and a must have the same size");let f=u.reduce((p,y)=>p+y,0);Math.abs(f-1)>1e-10&&(u=u.map(p=>p/f))}if(t===void 0){if(u){let f=o(),p=0;for(let y=0;y<i;y++)if(p+=u[y],f<p)return a[y];return a[i-1]}return a[Math.floor(o()*i)]}let s=Array.isArray(t)?t:[t],c=s.reduce((f,p)=>f*p,1);if(!e&&c>i)throw new Error("cannot take a larger sample than population when replace=false");let l=S.zeros(s,"float64"),m=l.data;if(e)if(u){let f=new Array(i);f[0]=u[0];for(let p=1;p<i;p++)f[p]=f[p-1]+u[p];for(let p=0;p<c;p++){let y=o(),d=0;for(;d<i-1&&y>=f[d];)d++;m[p]=a[d]}}else for(let f=0;f<c;f++)m[f]=a[Math.floor(o()*i)];else{let f=[...a],p=u?[...u]:void 0;for(let y=0;y<c;y++){let d;if(p){let g=p.reduce((b,N)=>b+N,0),h=o()*g,A=0;d=0;for(let b=0;b<f.length;b++)if(A+=p[b],h<A){d=b;break}d===0&&h>=A&&(d=f.length-1)}else d=Math.floor(o()*f.length);m[y]=f[d],f.splice(d,1),p&&p.splice(d,1)}}return l}function Pf(r,t,e=!0,n){return Vf(r,t,e,n,F)}function qf(r,t=F){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=S.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),i=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,i)}return e}function jf(r){return qf(r,F)}function Rf(r,t=F){let e=r.size;for(let n=e-1;n>0;n--){let o=Math.floor(t()*(n+1)),a=r.iget(n);r.iset(n,r.iget(o)),r.iset(o,a)}}function Lf(r){Rf(r,F)}qr();function K(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?I._fromStorage(r):r}var ty={seed:If,random:r=>K(vf(r)),rand:(...r)=>K(Ef(...r)),randn:(...r)=>K(Of(...r)),randint:(r,t,e,n)=>K(Mf(r,t,e,n)),uniform:(r,t,e)=>K(Tf(r,t,e)),normal:(r,t,e)=>K(Uf(r,t,e)),standard_normal:r=>K($f(r)),exponential:(r,t)=>K(kf(r,t)),poisson:(r,t)=>K(Cf(r,t)),binomial:(r,t,e)=>K(Ff(r,t,e)),choice:(r,t,e,n)=>K(Pf(r,t,e,n)),permutation:r=>K(jf(r)),shuffle:Lf,get_state:_f,set_state:Bf,default_rng:zf,Generator:Yr},ey="0.10.0";async function Wf(r){let t=await(0,cr.readFile)(r);return dr(t)}function Gf(r){let t=(0,ur.readFileSync)(r);return dr(t)}async function Zf(r,t){let e=mr(t);await(0,cr.writeFile)(r,e)}function Hf(r,t){let e=mr(t);(0,ur.writeFileSync)(r,e)}async function Yf(r,t={}){let e=await(0,cr.readFile)(r);return hr(e,t)}function Jf(r,t={}){let e=(0,ur.readFileSync)(r),{parseNpzSync:n}=(Bt(),Ft(mf));return n(e,t)}async function dn(r,t,e={}){let n=await Br(t,e);await(0,cr.writeFile)(r,n)}function ny(r,t){let{serializeNpzSync:e}=(Et(),Ft(Sf)),n=e(t);(0,ur.writeFileSync)(r,n)}async function oy(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Wf(r)}else{if(r.endsWith(".npz"))return Yf(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function ay(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Gf(r)}else{if(r.endsWith(".npz"))return Jf(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function sy(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return Zf(r,t)}function iy(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return Hf(r,t)}async function uy(r,t){return r.endsWith(".npz")||(r=r+".npz"),dn(r,t,{compress:!1})}async function cy(r,t){return r.endsWith(".npz")||(r=r+".npz"),dn(r,t,{compress:!0})}async function ly(r,t={}){let e=await(0,cr.readFile)(r,{encoding:t.encoding??"utf-8"});return Sr(e,t)}function fy(r,t={}){let e=(0,ur.readFileSync)(r,{encoding:t.encoding??"utf-8"});return Sr(e,t)}async function my(r,t,e={}){let n=vr(t,e);await(0,cr.writeFile)(r,n,"utf-8")}function py(r,t,e={}){let n=vr(t,e);(0,ur.writeFileSync)(r,n,"utf-8")}async function yy(r,t={}){let e=await(0,cr.readFile)(r,{encoding:t.encoding??"utf-8"});return Zr(e,t)}function dy(r,t={}){let e=(0,ur.readFileSync)(r,{encoding:t.encoding??"utf-8"});return Zr(e,t)}async function gy(r,t,e="float64"){let n=await(0,cr.readFile)(r,{encoding:"utf-8"});return Hr(n,t,e)}function by(r,t,e="float64"){let n=(0,ur.readFileSync)(r,{encoding:"utf-8"});return Hr(n,t,e)}0&&(module.exports={DTYPE_TO_DESCR,InvalidNpyError,NDArray,SUPPORTED_DTYPES,UnsupportedDTypeError,__version__,abs,absolute,acos,acosh,amax,amin,append,arange,arccos,arccosh,arcsin,arcsinh,arctan,arctan2,arctanh,argpartition,argsort,argwhere,around,array,array_equal,array_equiv,array_split,asanyarray,asarray,ascontiguousarray,asfortranarray,asin,asinh,atan,atan2,atanh,atleast_1d,atleast_2d,atleast_3d,average,bincount,bitwise_and,bitwise_not,bitwise_or,bitwise_xor,broadcast_arrays,broadcast_shapes,broadcast_to,cbrt,ceil,choose,column_stack,compress,concatenate,convolve,copy,copysign,copyto,corrcoef,correlate,cos,cosh,count_nonzero,cov,cross,cumprod,cumsum,cumulative_prod,cumulative_sum,deg2rad,degrees,delete:null,diag,diag_indices,diag_indices_from,diagflat,diagonal,diff,digitize,divide,divmod,dot,dsplit,dstack,ediff1d,einsum,empty,empty_like,exp,exp2,expand_dims,expm1,extract,eye,fabs,fill_diagonal,fix,flatnonzero,flip,fliplr,flipud,float_power,floor,floor_divide,fmod,frexp,frombuffer,fromfile,fromfunction,fromiter,fromregex,fromregexSync,fromstring,full,full_like,gcd,genfromtxt,genfromtxtSync,geomspace,gradient,heaviside,histogram,histogram2d,histogramdd,hsplit,hstack,hypot,identity,in1d,indices,inner,insert,intersect1d,invert,iscomplex,iscomplexobj,isdtype,isfinite,isfortran,isin,isinf,isnan,isnat,isneginf,isposinf,isreal,isrealobj,isscalar,iterable,ix_,kron,lcm,ldexp,left_shift,lexsort,linalg,linspace,load,loadNpy,loadNpySync,loadNpz,loadNpzFile,loadNpzFileSync,loadNpzSync,loadSync,loadtxt,loadtxtSync,log,log10,log1p,log2,logaddexp,logaddexp2,logical_and,logical_not,logical_or,logical_xor,logspace,mask_indices,max,median,meshgrid,min,mod,modf,moveaxis,nanargmax,nanargmin,nancumprod,nancumsum,nanmax,nanmean,nanmedian,nanmin,nanprod,nanstd,nansum,nanvar,negative,nextafter,nonzero,ones,ones_like,outer,packbits,pad,parseNpy,parseNpyData,parseNpyHeader,parseNpz,parseNpzSync,parseTxt,partition,percentile,place,positive,pow,power,promote_types,ptp,put,put_along_axis,putmask,quantile,rad2deg,radians,random,ravel,ravel_multi_index,real_if_close,reciprocal,remainder,repeat,reshape,resize,right_shift,rint,roll,rollaxis,rot90,round,round_,row_stack,save,saveNpy,saveNpySync,saveNpz,saveNpzSync,saveSync,savetxt,savetxtSync,savez,savez_compressed,searchsorted,select,serializeNpy,serializeNpz,serializeNpzSync,serializeTxt,setdiff1d,setxor1d,sign,signbit,sin,sinh,sort,sort_complex,spacing,split,sqrt,square,squeeze,stack,swapaxes,take,take_along_axis,tan,tanh,tensordot,tile,trace,transpose,tri,tril,tril_indices,tril_indices_from,triu,triu_indices,triu_indices_from,true_divide,trunc,union1d,unique,unpackbits,unravel_index,vander,vsplit,vstack,where,zeros,zeros_like});
1
+ "use strict";var xe=Object.defineProperty;var Qy=Object.getOwnPropertyDescriptor;var Ky=Object.getOwnPropertyNames;var rd=Object.prototype.hasOwnProperty;var G=(r,t)=>()=>(r&&(t=r(r=0)),t);var we=(r,t)=>{for(var e in t)xe(r,e,{get:t[e],enumerable:!0})},td=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ky(t))!rd.call(r,o)&&o!==e&&xe(r,o,{get:()=>t[o],enumerable:!(n=Qy(t,o))||n.enumerable});return r};var Ie=r=>td(xe({},"__esModule",{value:!0}),r);function ho(r){if(!r.includes(":")){if(r.includes("."))throw new Error(`Invalid slice index: "${r}" (must be integer)`);let a=parseInt(r,10);if(isNaN(a))throw new Error(`Invalid slice index: "${r}"`);return{start:a,stop:null,step:1,isIndex:!0}}let t=r.split(":");if(t.length>3)throw new Error(`Invalid slice notation: "${r}" (too many colons)`);let e=t[0]===""?null:parseInt(t[0],10),n=t[1]===""||t[1]===void 0?null:parseInt(t[1],10),o=t[2]===""||t[2]===void 0?1:parseInt(t[2],10);if(e!==null&&isNaN(e))throw new Error(`Invalid start index in slice: "${r}"`);if(n!==null&&isNaN(n))throw new Error(`Invalid stop index in slice: "${r}"`);if(isNaN(o))throw new Error(`Invalid step in slice: "${r}"`);if(o===0)throw new Error("Slice step cannot be zero");return{start:e,stop:n,step:o,isIndex:!1}}function So(r,t){let{start:e,stop:n}=r,{step:o,isIndex:a}=r;if(a){if(e===null)throw new Error("Index cannot be null");let i=e<0?t+e:e;if(i<0||i>=t)throw new Error(`Index ${e} is out of bounds for size ${t}`);return{start:i,stop:i+1,step:1,isIndex:!0}}return o>0?(e===null&&(e=0),n===null&&(n=t)):(e===null&&(e=t-1),n===null&&(n=-t-1)),e<0&&(e=t+e),n<0&&(n=t+n),e=Math.max(0,Math.min(e,t)),n=Math.max(-1,Math.min(n,t)),{start:e,stop:n,step:o,isIndex:!1}}var Do=G(()=>{"use strict"});function j(r){switch(r){case"float64":return Float64Array;case"float32":return Float32Array;case"complex128":return Float64Array;case"complex64":return Float32Array;case"int64":return BigInt64Array;case"int32":return Int32Array;case"int16":return Int16Array;case"int8":return Int8Array;case"uint64":return BigUint64Array;case"uint32":return Uint32Array;case"uint16":return Uint16Array;case"uint8":return Uint8Array;case"bool":return Uint8Array;default:throw new Error(`Unknown dtype: ${r}`)}}function Hr(r){switch(r){case"complex128":return 16;case"float64":case"int64":case"uint64":case"complex64":return 8;case"float32":case"int32":case"uint32":return 4;case"int16":case"uint16":return 2;case"int8":case"uint8":case"bool":return 1;default:throw new Error(`Unknown dtype: ${r}`)}}function xo(r){return r==="int64"||r==="int32"||r==="int16"||r==="int8"||r==="uint64"||r==="uint32"||r==="uint16"||r==="uint8"}function No(r){return r==="float64"||r==="float32"}function B(r){return r==="int64"||r==="uint64"}function M(r){return r==="complex64"||r==="complex128"}function U(r,t,e){if(M(r)){let n=e?` ${e}`:"";throw new TypeError(`ufunc '${t}' not supported for complex dtype '${r}'.${n}`)}}function lt(r){if(r==="complex128")return"float64";if(r==="complex64")return"float32";throw new Error(`${r} is not a complex dtype`)}function wo(r){return typeof r=="object"&&r!==null&&"re"in r&&"im"in r}function Z(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(M(r)||M(t)){if(M(r)&&M(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let c=M(r)?r:t,l=M(r)?t:r;return c==="complex128"||l==="float64"||l==="int64"||l==="uint64"||l==="int32"||l==="uint32"?"complex128":"complex64"}if(No(r)||No(t)){if(r==="float64"||t==="float64")return"float64";if(r==="float32"){let c=t;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}if(t==="float32"){let c=r;return c==="int32"||c==="int64"||c==="uint32"||c==="uint64"?"float64":"float32"}return"float32"}let e=r.startsWith("int"),n=t.startsWith("int"),o=r.startsWith("uint"),a=t.startsWith("uint"),i=c=>c.includes("64")?64:c.includes("32")?32:c.includes("16")?16:c.includes("8")?8:0,s=i(r),u=i(t);if(r==="int64"&&t==="uint64"||r==="uint64"&&t==="int64")return"float64";if(e&&a&&s===u){if(s===8)return"int16";if(s===16)return"int32";if(s===32)return"int64"}if(o&&n&&s===u){if(u===8)return"int16";if(u===16)return"int32";if(u===32)return"int64"}if(e&&n||o&&a){let c=Math.max(s,u);return e?c===64?"int64":c===32?"int32":c===16?"int16":"int8":c===64?"uint64":c===32?"uint32":c===16?"uint16":"uint8"}return e&&a?s>u?r:u===8?"int16":u===16?"int32":u===32?"int64":"float64":o&&n?u>s?t:s===8?"int16":s===16?"int32":s===32?"int64":"float64":"float64"}var tr,Q=G(()=>{"use strict";tr="float64"});var E,xr=G(()=>{"use strict";E=class r{constructor(t,e=0){this.re=t,this.im=e}abs(){return Math.sqrt(this.re*this.re+this.im*this.im)}angle(){return Math.atan2(this.im,this.re)}conj(){return new r(this.re,-this.im)}add(t){return typeof t=="number"?new r(this.re+t,this.im):new r(this.re+t.re,this.im+t.im)}sub(t){return typeof t=="number"?new r(this.re-t,this.im):new r(this.re-t.re,this.im-t.im)}mul(t){return typeof t=="number"?new r(this.re*t,this.im*t):new r(this.re*t.re-this.im*t.im,this.re*t.im+this.im*t.re)}div(t){if(typeof t=="number")return new r(this.re/t,this.im/t);let e=t.re*t.re+t.im*t.im;return new r((this.re*t.re+this.im*t.im)/e,(this.im*t.re-this.re*t.im)/e)}neg(){return new r(-this.re,-this.im)}equals(t){return this.re===t.re&&this.im===t.im}toString(){return this.im===0?`(${this.re}+0j)`:this.im<0?`(${this.re}${this.im}j)`:`(${this.re}+${this.im}j)`}static from(t){if(t instanceof r)return t;if(typeof t=="number")return new r(t,0);if(Array.isArray(t))return new r(t[0]??0,t[1]??0);if(typeof t=="object"&&t!==null&&"re"in t)return new r(t.re??0,t.im??0);throw new Error(`Cannot convert ${t} to Complex`)}static isComplex(t){return t instanceof r||typeof t=="object"&&t!==null&&"re"in t&&"im"in t}}});function ur(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var N,K=G(()=>{"use strict";Q();xr();N=class r{constructor(t,e,n,o,a){this._data=t,this._shape=e,this._strides=n,this._offset=o,this._dtype=a}get shape(){return this._shape}get ndim(){return this._shape.length}get size(){return this._shape.reduce((t,e)=>t*e,1)}get dtype(){return this._dtype}get data(){return this._data}get strides(){return this._strides}get offset(){return this._offset}get isCContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=n-1;a>=0;a--){if(e[a]!==o)return!1;o*=t[a]}return!0}get isFContiguous(){let t=this._shape,e=this._strides,n=t.length;if(n===0)return!0;if(n===1)return e[0]===1;let o=1;for(let a=0;a<n;a++){if(e[a]!==o)return!1;o*=t[a]}return!0}iget(t){let e=this._shape,n=this._strides,o=e.length,a=M(this._dtype),i;if(o===0)i=this._offset;else{let s=t;i=this._offset;for(let u=0;u<o;u++){let c=1;for(let m=u+1;m<o;m++)c*=e[m];let l=Math.floor(s/c);s=s%c,i+=l*n[u]}}if(a){let s=i*2,u=this._data[s],c=this._data[s+1];return new E(u,c)}return this._data[i]}iset(t,e){let n=this._shape,o=this._strides,a=n.length,i=M(this._dtype),s;if(a===0)s=this._offset;else{let u=t;s=this._offset;for(let c=0;c<a;c++){let l=1;for(let d=c+1;d<a;d++)l*=n[d];let m=Math.floor(u/l);u=u%l,s+=m*o[c]}}if(i){let u=s*2,c,l;e instanceof E?(c=e.re,l=e.im):typeof e=="object"&&e!==null&&"re"in e?(c=e.re,l=e.im??0):(c=Number(e),l=0),this._data[u]=c,this._data[u+1]=l}else this._data[s]=e}get(...t){let e=this._strides,n=this._offset;for(let o=0;o<t.length;o++)n+=t[o]*e[o];if(M(this._dtype)){let o=n*2,a=this._data[o],i=this._data[o+1];return new E(a,i)}return this._data[n]}set(t,e){let n=this._strides,o=this._offset;for(let a=0;a<t.length;a++)o+=t[a]*n[a];if(M(this._dtype)){let a=o*2,i,s;e instanceof E?(i=e.re,s=e.im):typeof e=="object"&&e!==null&&"re"in e?(i=e.re,s=e.im??0):(i=Number(e),s=0),this._data[a]=i,this._data[a+1]=s}else this._data[o]=e}copy(){let t=Array.from(this._shape),e=this._dtype,n=this.size,o=M(e),a=j(e);if(!a)throw new Error(`Cannot copy array with dtype ${e}`);let i=o?n*2:n,s=new a(i);if(this.isCContiguous&&this._offset===0)if(B(e)){let u=this._data,c=s;for(let l=0;l<i;l++)c[l]=u[l]}else s.set(this._data.subarray(0,i));else if(B(e)){let u=s;for(let c=0;c<n;c++)u[c]=this.iget(c)}else if(o){let u=s;for(let c=0;c<n;c++){let l=this.iget(c);u[c*2]=l.re,u[c*2+1]=l.im}}else for(let u=0;u<n;u++)s[u]=this.iget(u);return new r(s,t,r._computeStrides(t),0,e)}static fromData(t,e,n,o,a){let i=o??r._computeStrides(e),s=a??0;return new r(t,e,i,s,n)}static zeros(t,e=tr){let n=t.reduce((u,c)=>u*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let i=o?n*2:n,s=new a(i);return new r(s,t,r._computeStrides(t),0,e)}static ones(t,e=tr){let n=t.reduce((u,c)=>u*c,1),o=M(e),a=j(e);if(!a)throw new Error(`Cannot create array with dtype ${e}`);let i=o?n*2:n,s=new a(i);if(B(e))s.fill(BigInt(1));else if(o){let u=s;for(let c=0;c<n;c++)u[c*2]=1,u[c*2+1]=0}else s.fill(1);return new r(s,t,r._computeStrides(t),0,e)}static _computeStrides(t){let e=new Array(t.length),n=1;for(let o=t.length-1;o>=0;o--)e[o]=n,n*=t[o];return e}}});function Sr(r){if(r.length===0)return[];if(r.length===1)return Array.from(r[0]);let t=Math.max(...r.map(n=>n.length)),e=new Array(t);for(let n=0;n<t;n++){let o=1;for(let a of r){let i=a.length-t+n,s=i<0?1:a[i];if(s!==1){if(o===1)o=s;else if(o!==s)return null}}e[n]=o}return e}function ed(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let s=o-n+i,u=r[i],c=e[s];if(u===c)a[s]=t[i];else if(u===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function gr(r,t){let e=ed(r.shape,r.strides,t);return N.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function ze(...r){let t=Sr(r);if(t===null){let e=r.map(n=>`(${n.join(",")})`).join(" ");throw new Error(`shape mismatch: objects cannot be broadcast to a single shape. Mismatch is between ${e}`)}return t}var Rt=G(()=>{"use strict";K()});function Ur(r,t){let e=r.length,n=t.length,o=Math.max(e,n),a=new Array(o);for(let i=0;i<o;i++){let s=i<o-e?1:r[i-(o-e)],u=i<o-n?1:t[i-(o-n)];if(s===u)a[i]=s;else if(s===1)a[i]=u;else if(u===1)a[i]=s;else throw new Error(`operands could not be broadcast together with shapes ${JSON.stringify(Array.from(r))} ${JSON.stringify(Array.from(t))}`)}return a}function nd(r,t,e){let n=r.length,o=e.length,a=new Array(o).fill(0);for(let i=0;i<n;i++){let s=o-n+i,u=r[i],c=e[s];if(u===c)a[s]=t[i];else if(u===1)a[s]=0;else throw new Error("Invalid broadcast")}return a}function kt(r,t){let e=nd(r.shape,r.strides,t);return N.fromData(r.data,Array.from(t),r.dtype,e,r.offset)}function X(r,t,e,n){let o=Z(r.dtype,t.dtype),a=r.shape,i=t.shape;if(a.length===i.length&&a.every((f,p)=>f===i[p])&&r.isCContiguous&&t.isCContiguous&&!B(r.dtype)&&!B(t.dtype)&&!B(o)){let f=r.size,p=N.zeros(Array.from(a),o),g=p.data,h=r.data,b=t.data;for(let A=0;A<f;A++)g[A]=e(h[A],b[A]);return p}let u=Ur(r.shape,t.shape),c=kt(r,u),l=kt(t,u),m=N.zeros(u,o),d=m.data,y=m.size;if(B(o)){let f=d;for(let p=0;p<y;p++){let g=c.iget(p),h=l.iget(p),b=g instanceof E?g.re:g,A=h instanceof E?h.re:h,S=typeof b=="bigint"?b:BigInt(Math.round(b)),D=typeof A=="bigint"?A:BigInt(Math.round(A));n==="add"?f[p]=S+D:n==="subtract"?f[p]=S-D:n==="multiply"?f[p]=S*D:n==="divide"?f[p]=S/D:f[p]=BigInt(Math.round(e(Number(S),Number(D))))}}else{let f=B(r.dtype)||B(t.dtype);for(let p=0;p<y;p++){let g=c.iget(p),h=l.iget(p),b=Number(g),A=Number(h);d[p]=e(b,A)}}return m}function Ar(r,t,e){let n=Ur(r.shape,t.shape),o=kt(r,n),a=kt(t,n),i=n.reduce((c,l)=>c*l,1),s=new Uint8Array(i),u=B(r.dtype)||B(t.dtype);for(let c=0;c<i;c++){let l=o.iget(c),m=a.iget(c),d=Number(l),y=Number(m);s[c]=e(d,y)?1:0}return N.fromData(s,n,"bool")}function J(r,t,e=!0){let n=r.dtype,o=Array.from(r.shape),a=r.size,s=e?n:n!=="float32"&&n!=="float64"?"float64":n,u=N.zeros(o,s),c=u.data,l=r.data;if(B(n))if(B(s)){let m=c;for(let d=0;d<a;d++){let y=Number(l[d]);m[d]=BigInt(Math.round(t(y)))}}else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));else for(let m=0;m<a;m++)c[m]=t(Number(l[m]));return u}var Er=G(()=>{"use strict";K();Q();xr()});function _e(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function pr(r,t){return[r[t*2],r[t*2+1]]}function Tr(r,t,e,n){r[t*2]=e,r[t*2+1]=n}function Io(r,t){return typeof t=="number"?id(r,t):_e(r,t)?od(r,t):X(r,t,(e,n)=>e+n,"add")}function od(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(M(e)){let u=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,y]=c?pr(a,m):[Number(a[m]),0],[f,p]=l?pr(i,m):[Number(i[m]),0];Tr(u,m,d+f,y+p)}return n}if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m+d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]+m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];s[c]=l+m}else for(let c=0;c<o;c++)s[c]=a[c]+i[c];return n}function zo(r,t){return typeof t=="number"?ud(r,t):_e(r,t)?ad(r,t):X(r,t,(e,n)=>e-n,"subtract")}function ad(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(M(e)){let u=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,y]=c?pr(a,m):[Number(a[m]),0],[f,p]=l?pr(i,m):[Number(i[m]),0];Tr(u,m,d-f,y-p)}return n}if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m-d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]-m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];s[c]=l-m}else for(let c=0;c<o;c++)s[c]=a[c]-i[c];return n}function _o(r,t){return typeof t=="number"?cd(r,t):_e(r,t)?sd(r,t):X(r,t,(e,n)=>e*n,"multiply")}function sd(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(M(e)){let u=s,c=M(r.dtype),l=M(t.dtype);for(let m=0;m<o;m++){let[d,y]=c?pr(a,m):[Number(a[m]),0],[f,p]=l?pr(i,m):[Number(i[m]),0],g=d*f-y*p,h=d*p+y*f;Tr(u,m,g,h)}return n}if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m*d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]*m[d]}}else if(B(r.dtype)||B(t.dtype))for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?Number(a[c]):a[c],m=typeof i[c]=="bigint"?Number(i[c]):i[c];s[c]=l*m}else for(let c=0;c<o;c++)s[c]=a[c]*i[c];return n}function vo(r,t){if(typeof t=="number")return ld(r,t);let e=M(r.dtype),n=M(t.dtype);if(e||n){let l=Z(r.dtype,t.dtype),m=N.zeros(Array.from(r.shape),l),d=m.data,y=r.size,f=r.data,p=t.data;for(let g=0;g<y;g++){let[h,b]=e?pr(f,g):[Number(f[g]),0],[A,S]=n?pr(p,g):[Number(p[g]),0],D=A*A+S*S,w=(h*A+b*S)/D,x=(b*A-h*S)/D;Tr(d,g,w,x)}return m}let o=r.dtype==="float64",a=t.dtype==="float64",i=r.dtype==="float32",s=t.dtype==="float32";if(o||a){let l=o?r:Xr(r,"float64"),m=a?t:Xr(t,"float64");return X(l,m,(d,y)=>d/y,"divide")}if(i||s){let l=i?r:Xr(r,"float32"),m=s?t:Xr(t,"float32");return X(l,m,(d,y)=>d/y,"divide")}let u=Xr(r,"float64"),c=Xr(t,"float64");return X(u,c,(l,m)=>l/m,"divide")}function Xr(r,t){let e=N.zeros(Array.from(r.shape),t),n=r.size,o=r.data,a=e.data;for(let i=0;i<n;i++)a[i]=Number(o[i]);return e}function id(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(M(e)){let u=o,c=s;for(let l=0;l<a;l++){let[m,d]=pr(u,l);Tr(c,l,m+t,d)}}else if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]+l}else for(let u=0;u<a;u++)s[u]=Number(o[u])+t;return i}function ud(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(M(e)){let u=o,c=s;for(let l=0;l<a;l++){let[m,d]=pr(u,l);Tr(c,l,m-t,d)}}else if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]-l}else for(let u=0;u<a;u++)s[u]=Number(o[u])-t;return i}function cd(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(M(e)){let u=o,c=s;for(let l=0;l<a;l++){let[m,d]=pr(u,l);Tr(c,l,m*t,d*t)}}else if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]*l}else for(let u=0;u<a;u++)s[u]=Number(o[u])*t;return i}function ld(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let l=N.zeros(n,e),m=o,d=l.data;for(let y=0;y<a;y++){let[f,p]=pr(m,y);Tr(d,y,f/t,p/t)}return l}let s=e!=="float32"&&e!=="float64"?"float64":e,u=N.zeros(n,s),c=u.data;if(B(e))for(let l=0;l<a;l++)c[l]=Number(o[l])/t;else for(let l=0;l<a;l++)c[l]=Number(o[l])/t;return u}function Fo(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let s=lt(t),u=N.zeros(e,s),c=u.data,l=n;for(let m=0;m<o;m++){let d=l[m*2],y=l[m*2+1];c[m]=Math.sqrt(d*d+y*y)}return u}let a=N.zeros(e,t),i=a.data;if(B(t)){let s=n,u=i;for(let c=0;c<o;c++){let l=s[c];u[c]=l<0n?-l:l}}else for(let s=0;s<o;s++)i[s]=Math.abs(Number(n[s]));return a}function Mo(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(M(t)){let s=n,u=i;for(let c=0;c<o;c++){let[l,m]=pr(s,c);Tr(u,c,-l,-m)}}else if(B(t)){let s=n,u=i;for(let c=0;c<o;c++)u[c]=-s[c]}else for(let s=0;s<o;s++)i[s]=-Number(n[s]);return a}function Bo(r){U(r.dtype,"sign","Sign is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(B(t)){let s=n,u=i;for(let c=0;c<o;c++){let l=s[c];u[c]=l>0n?1n:l<0n?-1n:0n}}else for(let s=0;s<o;s++){let u=Number(n[s]);i[s]=u>0?1:u<0?-1:0}return a}function qt(r,t){return U(r.dtype,"mod","Modulo is not defined for complex numbers."),typeof t!="number"&&U(t.dtype,"mod","Modulo is not defined for complex numbers."),typeof t=="number"?fd(r,t):X(r,t,(e,n)=>(e%n+n)%n,"mod")}function fd(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++){let d=u[m];c[m]=(d%l+l)%l}}else for(let u=0;u<a;u++){let c=Number(o[u]);s[u]=(c%t+t)%t}return i}function ve(r,t){return U(r.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t!="number"&&U(t.dtype,"floor_divide","Floor division is not defined for complex numbers."),typeof t=="number"?md(r,t):X(r,t,(e,n)=>Math.floor(e/n),"floor_divide")}function md(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]/l}else for(let u=0;u<a;u++)s[u]=Math.floor(Number(o[u])/t);return i}function Eo(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(M(t)){let s=n,u=i;for(let c=0;c<o;c++)u[c*2]=s[c*2],u[c*2+1]=s[c*2+1]}else for(let s=0;s<o;s++)i[s]=n[s];return a}function To(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size;if(M(t)){let c=N.zeros(e,t),l=n,m=c.data;for(let d=0;d<o;d++){let y=l[d*2],f=l[d*2+1],p=y*y+f*f;m[d*2]=y/p,m[d*2+1]=-f/p}return c}let i=t!=="float32"&&t!=="float64"?"float64":t,s=N.zeros(e,i),u=s.data;if(B(t))for(let c=0;c<o;c++)u[c]=1/Number(n[c]);else for(let c=0;c<o;c++)u[c]=1/Number(n[c]);return s}function Oo(r){let t=r.dtype;U(t,"cbrt","cbrt is not supported for complex numbers.");let e=Array.from(r.shape),n=r.data,o=r.size,i=t!=="float32"&&t!=="float64"?"float64":t,s=N.zeros(e,i),u=s.data;for(let c=0;c<o;c++)u[c]=Math.cbrt(Number(n[c]));return s}function Co(r){let t=r.dtype;U(t,"fabs","fabs is only for real numbers. Use absolute() for complex.");let e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.abs(Number(n[u]));return i}function Uo(r,t){let e=ve(r,t),n=qt(r,t);return[e,n]}function $o(r){let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(M(t)){let s=n,u=i;for(let c=0;c<o;c++){let l=s[c*2],m=s[c*2+1];u[c*2]=l*l-m*m,u[c*2+1]=2*l*m}}else if(B(t)){let s=n,u=i;for(let c=0;c<o;c++)u[c]=s[c]*s[c]}else for(let s=0;s<o;s++){let u=Number(n[s]);i[s]=u*u}return a}function Ro(r,t){return qt(r,t)}function ko(r,t){U(r.dtype,"heaviside","Heaviside step function is not defined for complex numbers."),typeof t!="number"&&U(t.dtype,"heaviside","Heaviside step function is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),s=i.data;if(typeof t=="number")for(let u=0;u<o;u++){let c=Number(r.data[u]);c<0?s[u]=0:c===0?s[u]=t:s[u]=1}else{let u=t.data,c=t.shape;if(n.every((l,m)=>l===c[m]))for(let l=0;l<o;l++){let m=Number(r.data[l]);m<0?s[l]=0:m===0?s[l]=Number(u[l]):s[l]=1}else for(let l=0;l<o;l++){let m=Number(r.data[l]),d=l%t.size;m<0?s[l]=0:m===0?s[l]=Number(u[d]):s[l]=1}}return i}function qo(r,t){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,a=N.zeros(Array.from(r.shape),e),i=a.data;if(typeof t=="number")for(let s=0;s<o;s++){let u=n[s*2],c=n[s*2+1],l=Math.hypot(u,c),m=Math.atan2(c,u),d=Math.pow(l,t),y=m*t;i[s*2]=d*Math.cos(y),i[s*2+1]=d*Math.sin(y)}else{let s=t.data,u=M(t.dtype);for(let c=0;c<o;c++){let l=n[c*2],m=n[c*2+1],d,y;u?(d=s[c*2],y=s[c*2+1]):(d=Number(s[c]),y=0);let f=Math.hypot(l,m),p=Math.atan2(m,l),g=Math.log(f),h=p,b=d*g-y*h,A=d*h+y*g,S=Math.exp(b);i[c*2]=S*Math.cos(A),i[c*2+1]=S*Math.sin(A)}}return a}if(typeof t=="number"){let n=N.zeros(Array.from(r.shape),"float64"),o=n.data,a=r.data,i=r.size;for(let s=0;s<i;s++)o[s]=Math.pow(Number(a[s]),t);return n}return X(r,t,(n,o)=>Math.pow(n,o),"float_power")}function Vo(r,t){if(U(r.dtype,"fmod","fmod is not defined for complex numbers."),typeof t!="number"&&U(t.dtype,"fmod","fmod is not defined for complex numbers."),typeof t=="number"){let e=r.copy(),n=e.data,o=r.size;for(let a=0;a<o;a++){let i=Number(n[a]);n[a]=i-Math.trunc(i/t)*t}return e}return X(r,t,(e,n)=>e-Math.trunc(e/n)*n,"fmod")}function Po(r){U(r.dtype,"frexp","frexp is not defined for complex numbers.");let t=N.zeros(Array.from(r.shape),"float64"),e=N.zeros(Array.from(r.shape),"int32"),n=t.data,o=e.data,a=r.data,i=r.size;for(let s=0;s<i;s++){let u=Number(a[s]);if(u===0||!isFinite(u))n[s]=u,o[s]=0;else{let c=Math.floor(Math.log2(Math.abs(u)))+1,l=u/Math.pow(2,c);n[s]=l,o[s]=c}}return[t,e]}function jo(r,t){U(r.dtype,"gcd","GCD is only defined for integers."),typeof t!="number"&&U(t.dtype,"gcd","GCD is only defined for integers.");let e=(u,c)=>{for(u=Math.abs(Math.trunc(u)),c=Math.abs(Math.trunc(c));c!==0;){let l=c;c=u%c,u=l}return u};if(typeof t=="number"){let u=N.zeros(Array.from(r.shape),"int32"),c=u.data,l=r.data,m=r.size,d=Math.abs(Math.trunc(t));for(let y=0;y<m;y++)c[y]=e(Number(l[y]),d);return u}let n=X(r,t,e,"gcd"),o=N.zeros(Array.from(n.shape),"int32"),a=o.data,i=n.data,s=n.size;for(let u=0;u<s;u++)a[u]=Math.round(Number(i[u]));return o}function Lo(r,t){U(r.dtype,"lcm","LCM is only defined for integers."),typeof t!="number"&&U(t.dtype,"lcm","LCM is only defined for integers.");let e=(c,l)=>{for(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l));l!==0;){let m=l;l=c%l,c=m}return c},n=(c,l)=>(c=Math.abs(Math.trunc(c)),l=Math.abs(Math.trunc(l)),c===0||l===0?0:c*l/e(c,l));if(typeof t=="number"){let c=N.zeros(Array.from(r.shape),"int32"),l=c.data,m=r.data,d=r.size,y=Math.abs(Math.trunc(t));for(let f=0;f<d;f++)l[f]=n(Number(m[f]),y);return c}let o=X(r,t,n,"lcm"),a=N.zeros(Array.from(o.shape),"int32"),i=a.data,s=o.data,u=o.size;for(let c=0;c<u;c++)i[c]=Math.round(Number(s[c]));return a}function Wo(r,t){if(U(r.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t!="number"&&U(t.dtype,"ldexp","ldexp is not defined for complex numbers."),typeof t=="number"){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,i=Math.pow(2,t);for(let s=0;s<a;s++)n[s]=Number(o[s])*i;return e}return X(r,t,(e,n)=>e*Math.pow(2,n),"ldexp")}function Go(r){U(r.dtype,"modf","modf is not defined for complex numbers.");let t=N.zeros(Array.from(r.shape),"float64"),e=N.zeros(Array.from(r.shape),"float64"),n=t.data,o=e.data,a=r.data,i=r.size;for(let s=0;s<i;s++){let u=Number(a[s]),c=Math.trunc(u);o[s]=c,n[s]=u-c}return[t,e]}function Zo(r,t,e){U(r.dtype,"clip","clip is not supported for complex numbers.");let n=r.dtype,o=Array.from(r.shape),a=r.size,i=N.zeros(o,n),s=i.data,u=r.data,c=t===null||typeof t=="number",l=e===null||typeof e=="number",m=t===null?-1/0:typeof t=="number"?t:null,d=e===null?1/0:typeof e=="number"?e:null;if(B(n)){let y=s,f=u;for(let p=0;p<a;p++){let g=f[p],h=c?m===-1/0?g:BigInt(Math.round(m)):t.data[p%t.size],b=l?d===1/0?g:BigInt(Math.round(d)):e.data[p%e.size];g<h&&(g=h),g>b&&(g=b),y[p]=g}}else for(let y=0;y<a;y++){let f=Number(u[y]),p=c?m:Number(t.data[y%t.size]),g=l?d:Number(e.data[y%e.size]);f<p&&(f=p),f>g&&(f=g),s[y]=f}return i}function Yo(r,t){if(U(r.dtype,"maximum","maximum is not supported for complex numbers."),typeof t!="number"&&U(t.dtype,"maximum","maximum is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=N.zeros(n,e),i=a.data,s=r.data;if(B(e)){let u=i,c=s,l=BigInt(Math.round(t));for(let m=0;m<o;m++)u[m]=c[m]>l?c[m]:l}else for(let u=0;u<o;u++){let c=Number(s[u]);i[u]=isNaN(c)||isNaN(t)?NaN:Math.max(c,t)}return a}return X(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.max(e,n),"maximum")}function Ho(r,t){if(U(r.dtype,"minimum","minimum is not supported for complex numbers."),typeof t!="number"&&U(t.dtype,"minimum","minimum is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=N.zeros(n,e),i=a.data,s=r.data;if(B(e)){let u=i,c=s,l=BigInt(Math.round(t));for(let m=0;m<o;m++)u[m]=c[m]<l?c[m]:l}else for(let u=0;u<o;u++){let c=Number(s[u]);i[u]=isNaN(c)||isNaN(t)?NaN:Math.min(c,t)}return a}return X(r,t,(e,n)=>isNaN(e)||isNaN(n)?NaN:Math.min(e,n),"minimum")}function Xo(r,t){if(U(r.dtype,"fmax","fmax is not supported for complex numbers."),typeof t!="number"&&U(t.dtype,"fmax","fmax is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=N.zeros(n,e),i=a.data,s=r.data;if(B(e)){let u=i,c=s,l=BigInt(Math.round(t));for(let m=0;m<o;m++)u[m]=c[m]>l?c[m]:l}else for(let u=0;u<o;u++){let c=Number(s[u]);isNaN(c)?i[u]=t:isNaN(t)?i[u]=c:i[u]=Math.max(c,t)}return a}return X(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.max(e,n),"fmax")}function Jo(r,t){if(U(r.dtype,"fmin","fmin is not supported for complex numbers."),typeof t!="number"&&U(t.dtype,"fmin","fmin is not supported for complex numbers."),typeof t=="number"){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=N.zeros(n,e),i=a.data,s=r.data;if(B(e)){let u=i,c=s,l=BigInt(Math.round(t));for(let m=0;m<o;m++)u[m]=c[m]<l?c[m]:l}else for(let u=0;u<o;u++){let c=Number(s[u]);isNaN(c)?i[u]=t:isNaN(t)?i[u]=c:i[u]=Math.min(c,t)}return a}return X(r,t,(e,n)=>isNaN(e)?n:isNaN(n)?e:Math.min(e,n),"fmin")}function Qo(r,t=0,e,n){U(r.dtype,"nan_to_num","nan_to_num is not supported for complex numbers.");let o=r.dtype,a=Array.from(r.shape),i=r.size,s=e!==void 0?e:Number.MAX_VALUE,u=n!==void 0?n:-Number.MAX_VALUE,c=N.zeros(a,o),l=c.data,m=r.data;if(B(o)){let d=l,y=m;for(let f=0;f<i;f++)d[f]=y[f]}else for(let d=0;d<i;d++){let y=Number(m[d]);isNaN(y)?l[d]=t:y===1/0?l[d]=s:y===-1/0?l[d]=u:l[d]=y}return c}function Ko(r,t,e,n,o){U(r.dtype,"interp","interp is not supported for complex numbers."),U(t.dtype,"interp","interp is not supported for complex numbers."),U(e.dtype,"interp","interp is not supported for complex numbers.");let a=Array.from(r.shape),i=r.size,s=N.zeros(a,"float64"),u=s.data,c=r.data,l=t.data,m=e.data,d=t.size,y=n!==void 0?n:Number(m[0]),f=o!==void 0?o:Number(m[d-1]);for(let p=0;p<i;p++){let g=Number(c[p]);if(g<=Number(l[0])){u[p]=y;continue}if(g>=Number(l[d-1])){u[p]=f;continue}let h=0,b=d-1;for(;b-h>1;){let I=Math.floor((h+b)/2);Number(l[I])<=g?h=I:b=I}let A=Number(l[h]),S=Number(l[b]),D=Number(m[h]),w=Number(m[b]),x=(g-A)/(S-A);u[p]=D+x*(w-D)}return s}function ra(r,t=Math.PI,e=-1,n=2*Math.PI){U(r.dtype,"unwrap","unwrap is not supported for complex numbers.");let o=Array.from(r.shape),a=o.length;if(e<0&&(e+=a),e<0||e>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);if(a===1){let c=r.size,l=N.zeros(o,"float64"),m=l.data,d=r.data;if(c===0)return l;m[0]=Number(d[0]);let y=0;for(let f=1;f<c;f++){let p=Number(d[f-1]),g=Number(d[f]),h=g-p;h=(h+n/2)%n-n/2,h===-n/2&&g-p>0&&(h=n/2),Math.abs(h)>t&&(y-=Math.round((g-p-h)/n)*n),m[f]=g+y}return l}let i=N.zeros(o,"float64"),s=i.data,u=r.data;for(let c=0;c<r.size;c++)s[c]=Number(u[c]);if(a===2){let[c,l]=o;if(e===0)for(let m=0;m<l;m++){let d=0;for(let y=1;y<c;y++){let f=(y-1)*l+m,p=y*l+m,g=s[f],h=s[p],b=h-g;b=(b+n/2)%n-n/2,b===-n/2&&h-g>0&&(b=n/2),Math.abs(b)>t&&(d-=Math.round((h-g-b)/n)*n),s[p]=h+d}}else for(let m=0;m<c;m++){let d=0;for(let y=1;y<l;y++){let f=m*l+(y-1),p=m*l+y,g=s[f],h=s[p],b=h-g;b=(b+n/2)%n-n/2,b===-n/2&&h-g>0&&(b=n/2),Math.abs(b)>t&&(d-=Math.round((h-g-b)/n)*n),s[p]=h+d}}}return i}function ta(r){U(r.dtype,"sinc","sinc is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=N.zeros(t,"float64"),o=n.data,a=r.data;for(let i=0;i<e;i++){let s=Number(a[i]);if(s===0)o[i]=1;else{let u=Math.PI*s;o[i]=Math.sin(u)/u}}return n}function ea(r){U(r.dtype,"i0","i0 is not supported for complex numbers.");let t=Array.from(r.shape),e=r.size,n=N.zeros(t,"float64"),o=n.data,a=r.data;for(let i=0;i<e;i++){let s=Math.abs(Number(a[i]));o[i]=pd(s)}return n}function pd(r){let t=Math.abs(r);if(t<3.75){let e=r/3.75,n=e*e;return 1+n*(3.5156229+n*(3.0899424+n*(1.2067492+n*(.2659732+n*(.0360768+n*.0045813)))))}else{let e=3.75/t;return Math.exp(t)/Math.sqrt(t)*(.39894228+e*(.01328592+e*(.00225319+e*(-.00157565+e*(.00916281+e*(-.02057706+e*(.02635537+e*(-.01647633+e*.00392377))))))))}}var na=G(()=>{"use strict";K();Q();Er()});function jr(r,t){return[r[t*2],r[t*2+1]]}function oa(r,t){if(M(r.dtype))return jr(r.data,t);let e=r.iget(t);return e instanceof E?[e.re,e.im]:[Number(e),0]}function Jr(r,t,e){let n=Sr([Array.from(r.shape),Array.from(t.shape)]);if(!n)throw new Error("Cannot broadcast arrays together");let o=gr(r,n),a=gr(t,n),i=n.reduce((u,c)=>u*c,1),s=new Uint8Array(i);for(let u=0;u<i;u++){let[c,l]=oa(o,u),[m,d]=oa(a,u);s[u]=e(c,l,m,d)?1:0}return N.fromData(s,n,"bool")}function aa(r,t){return typeof t=="number"?dd(r,t):M(r.dtype)||M(t.dtype)?Jr(r,t,(e,n,o,a)=>e!==o?e>o:n>a):Ar(r,t,(e,n)=>e>n)}function sa(r,t){return typeof t=="number"?gd(r,t):M(r.dtype)||M(t.dtype)?Jr(r,t,(e,n,o,a)=>e!==o?e>=o:n>=a):Ar(r,t,(e,n)=>e>=n)}function ia(r,t){return typeof t=="number"?Ad(r,t):M(r.dtype)||M(t.dtype)?Jr(r,t,(e,n,o,a)=>e!==o?e<o:n<a):Ar(r,t,(e,n)=>e<n)}function ua(r,t){return typeof t=="number"?bd(r,t):M(r.dtype)||M(t.dtype)?Jr(r,t,(e,n,o,a)=>e!==o?e<=o:n<=a):Ar(r,t,(e,n)=>e<=n)}function ca(r,t){return typeof t=="number"?hd(r,t):M(r.dtype)||M(t.dtype)?Jr(r,t,(e,n,o,a)=>e===o&&n===a):Ar(r,t,(e,n)=>e===n)}function la(r,t){return typeof t=="number"?Sd(r,t):M(r.dtype)||M(t.dtype)?Jr(r,t,(e,n,o,a)=>e!==o||n!==a):Ar(r,t,(e,n)=>e!==n)}function Fe(r,t,e=1e-5,n=1e-8){return typeof t=="number"?Dd(r,t,e,n):Ar(r,t,(o,a)=>{let i=Math.abs(o-a),s=n+e*Math.abs(a);return i<=s})}function fa(r,t,e=1e-5,n=1e-8){let o=Fe(r,t,e,n),a=o.data;for(let i=0;i<o.size;i++)if(a[i]===0)return!1;return!0}function ma(r,t){let e=[Array.from(r.shape),Array.from(t.shape)],n=Sr(e);if(n===null)return!1;let o=gr(r,n),a=gr(t,n),i=n.length,s=n.reduce((l,m)=>l*m,1),u=B(o.dtype),c=B(a.dtype);for(let l=0;l<s;l++){let m=l,d=new Array(i);for(let p=i-1;p>=0;p--)d[p]=m%n[p],m=Math.floor(m/n[p]);let y=o.get(...d),f=a.get(...d);if(u||c){let p=typeof y=="bigint"?y:BigInt(Number(y)),g=typeof f=="bigint"?f:BigInt(Number(f));if(p!==g)return!1}else if(y!==f)return!1}return!0}function dd(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[i,s]=jr(o,a);e[a]=(i!==t?i>t:s>0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function gd(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[i,s]=jr(o,a);e[a]=(i!==t?i>=t:s>=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]>=t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Ad(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[i,s]=jr(o,a);e[a]=(i!==t?i<t:s<0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function bd(r,t){let e=new Uint8Array(r.size),n=r.data;if(M(r.dtype)){let o=n;for(let a=0;a<r.size;a++){let[i,s]=jr(o,a);e[a]=(i!==t?i<=t:s<=0)?1:0}}else for(let o=0;o<r.size;o++)e[o]=n[o]<=t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function hd(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let i=0;i<r.size;i++){let[s,u]=jr(a,i);e[i]=s===t&&u===0?1:0}}else if(B(o)){let a=BigInt(Math.round(t)),i=n;for(let s=0;s<r.size;s++)e[s]=i[s]===a?1:0}else for(let a=0;a<r.size;a++)e[a]=n[a]===t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Sd(r,t){let e=new Uint8Array(r.size),n=r.data,o=r.dtype;if(M(o)){let a=n;for(let i=0;i<r.size;i++){let[s,u]=jr(a,i);e[i]=s!==t||u!==0?1:0}}else for(let a=0;a<r.size;a++)e[a]=n[a]!==t?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function Dd(r,t,e,n){let o=new Uint8Array(r.size),a=r.data,i=r.dtype;if(B(i)){let s=a;for(let u=0;u<r.size;u++){let c=Number(s[u]),l=Math.abs(c-t),m=n+e*Math.abs(t);o[u]=l<=m?1:0}}else for(let s=0;s<r.size;s++){let u=Number(a[s]),c=Math.abs(u-t),l=n+e*Math.abs(t);o[s]=c<=l?1:0}return N.fromData(o,Array.from(r.shape),"bool")}var pa=G(()=>{"use strict";K();Q();Er();Rt();xr()});function $(r,t){let e=0,n=1;for(let o=r.length-1;o>=0;o--)e+=r[o]*n,n*=t[o];return e}function R(r,t,e,n){let o=n.length,a=new Array(o),i=Array.from(n).filter((u,c)=>c!==t),s=r;for(let u=i.length-1;u>=0;u--)a[u>=t?u+1:u]=s%i[u],s=Math.floor(s/i[u]);return a[t]=e,a}var Me=G(()=>{"use strict"});function ft(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=0,g=0;for(let h=0;h<i;h++)p+=f[h*2],g+=f[h*2+1];return new E(p,g)}else if(B(n)){let f=s,p=BigInt(0);for(let g=0;g<i;g++)p+=f[g];return Number(p)}else{let f=0;for(let p=0;p<i;p++)f+=Number(s[p]);return f}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return ft(r);let l=N.zeros(c,n),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=0,b=0;for(let A=0;A<d;A++){let S=R(g,u,A,o),D=$(S,o);h+=f[D*2],b+=f[D*2+1]}p[g*2]=h,p[g*2+1]=b}}else if(B(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=BigInt(0);for(let b=0;b<d;b++){let A=R(g,u,b,o),S=$(A,o);h+=f[S]}p[g]=h}}else for(let f=0;f<y;f++){let p=0;for(let g=0;g<d;g++){let h=R(f,u,g,o),b=$(h,o);p+=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[u]=1,N.fromData(m,f,n)}return l}function Vt(r,t,e=!1){let n=r.dtype,o=r.shape;if(t===void 0){let d=ft(r);return d instanceof E?new E(d.re/r.size,d.im/r.size):d/r.size}let a=t;if(a<0&&(a=o.length+a),a<0||a>=o.length)throw new Error(`axis ${t} is out of bounds for array of dimension ${o.length}`);let i=ft(r,t,e);if(typeof i=="number")return i/o[a];if(i instanceof E)return new E(i.re/o[a],i.im/o[a]);let s=o[a],u=n;M(n)?u=n:(B(n)||n.startsWith("int")||n.startsWith("uint"))&&(u="float64");let c=N.zeros(Array.from(i.shape),u),l=c.data,m=i.data;if(M(n)){let d=m,y=l,f=i.size;for(let p=0;p<f;p++)y[p*2]=d[p*2]/s,y[p*2+1]=d[p*2+1]/s}else if(B(n)){let d=m;for(let y=0;y<l.length;y++)l[y]=Number(d[y])/s}else for(let d=0;d<l.length;d++)l[d]=Number(m[d])/s;return c}function Qr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(i===0)throw new Error("max of empty array");let D=f[0],w=f[1];for(let x=1;x<i;x++){let I=f[x*2],z=f[x*2+1];if(isNaN(I)||isNaN(z))return new E(NaN,NaN);(I>D||I===D&&z>w)&&(D=I,w=z)}return isNaN(D)||isNaN(w)?new E(NaN,NaN):new E(D,w)}let p=t;if(p<0&&(p=a+p),p<0||p>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((D,w)=>w!==p);if(g.length===0)return Qr(r);let h=N.zeros(g,n),b=h.data,A=o[p],S=g.reduce((D,w)=>D*w,1);for(let D=0;D<S;D++){let w=R(D,p,0,o),x=$(w,o),I=f[x*2],z=f[x*2+1];for(let F=1;F<A;F++){let v=R(D,p,F,o),T=$(v,o),O=f[T*2],C=f[T*2+1];if(isNaN(O)||isNaN(C)){I=NaN,z=NaN;break}(O>I||O===I&&C>z)&&(I=O,z=C)}b[D*2]=I,b[D*2+1]=z}if(e){let D=[...o];return D[p]=1,N.fromData(b,D,n)}return h}if(t===void 0){if(i===0)throw new Error("max of empty array");let f=s[0];for(let p=1;p<i;p++)s[p]>f&&(f=s[p]);return Number(f)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return Qr(r);let l=N.zeros(c,n),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=R(g,u,0,o),b=$(h,o),A=f[b];for(let S=1;S<d;S++){let D=R(g,u,S,o),w=$(D,o),x=f[w];x>A&&(A=x)}p[g]=A}}else for(let f=0;f<y;f++){let p=-1/0;for(let g=0;g<d;g++){let h=R(f,u,g,o),b=$(h,o),A=Number(s[b]);A>p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[u]=1,N.fromData(m,f,n)}return l}function Be(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,s=r.data;if(t===void 0)if(M(n)){let f=s,p=1,g=0;for(let h=0;h<i;h++){let b=f[h*2],A=f[h*2+1],S=p*b-g*A,D=p*A+g*b;p=S,g=D}return new E(p,g)}else if(B(n)){let f=s,p=BigInt(1);for(let g=0;g<i;g++)p*=f[g];return Number(p)}else{let f=1;for(let p=0;p<i;p++)f*=Number(s[p]);return f}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return Be(r);let l=N.zeros(c,n),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(M(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=1,b=0;for(let A=0;A<d;A++){let S=R(g,u,A,o),D=$(S,o),w=f[D*2],x=f[D*2+1],I=h*w-b*x,z=h*x+b*w;h=I,b=z}p[g*2]=h,p[g*2+1]=b}}else if(B(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=BigInt(1);for(let b=0;b<d;b++){let A=R(g,u,b,o),S=$(A,o);h*=f[S]}p[g]=h}}else for(let f=0;f<y;f++){let p=1;for(let g=0;g<d;g++){let h=R(f,u,g,o),b=$(h,o);p*=Number(s[b])}m[f]=p}if(e){let f=[...o];return f[u]=1,N.fromData(m,f,n)}return l}function Kr(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.size,s=r.data;if(M(n)){let f=s;if(t===void 0){if(i===0)throw new Error("min of empty array");let D=f[0],w=f[1];for(let x=1;x<i;x++){let I=f[x*2],z=f[x*2+1];if(isNaN(I)||isNaN(z))return new E(NaN,NaN);(I<D||I===D&&z<w)&&(D=I,w=z)}return isNaN(D)||isNaN(w)?new E(NaN,NaN):new E(D,w)}let p=t;if(p<0&&(p=a+p),p<0||p>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let g=Array.from(o).filter((D,w)=>w!==p);if(g.length===0)return Kr(r);let h=N.zeros(g,n),b=h.data,A=o[p],S=g.reduce((D,w)=>D*w,1);for(let D=0;D<S;D++){let w=R(D,p,0,o),x=$(w,o),I=f[x*2],z=f[x*2+1];for(let F=1;F<A;F++){let v=R(D,p,F,o),T=$(v,o),O=f[T*2],C=f[T*2+1];if(isNaN(O)||isNaN(C)){I=NaN,z=NaN;break}(O<I||O===I&&C<z)&&(I=O,z=C)}b[D*2]=I,b[D*2+1]=z}if(e){let D=[...o];return D[p]=1,N.fromData(b,D,n)}return h}if(t===void 0){if(i===0)throw new Error("min of empty array");let f=s[0];for(let p=1;p<i;p++)s[p]<f&&(f=s[p]);return Number(f)}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return Kr(r);let l=N.zeros(c,n),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(B(n)){let f=s,p=m;for(let g=0;g<y;g++){let h=R(g,u,0,o),b=$(h,o),A=f[b];for(let S=1;S<d;S++){let D=R(g,u,S,o),w=$(D,o),x=f[w];x<A&&(A=x)}p[g]=A}}else for(let f=0;f<y;f++){let p=1/0;for(let g=0;g<d;g++){let h=R(f,u,g,o),b=$(h,o),A=Number(s[b]);A<p&&(p=A)}m[f]=p}if(e){let f=[...o];return f[u]=1,N.fromData(m,f,n)}return l}function $r(r,t,e,n){return r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Ee(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,i=r.size,s=r.data;if(t===void 0){if(i===0)throw new Error("argmin of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<i;S++){let D=g[S*2],w=g[S*2+1];$r(D,w,h,b)<0&&(h=D,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<i;g++)s[g]<f&&(f=s[g],p=g);return p}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return Ee(r);let l=N.zeros(c,"int32"),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<y;p++){let g=R(p,u,0,o),h=$(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let D=1;D<d;D++){let w=R(p,u,D,o),x=$(w,o),I=f[x*2],z=f[x*2+1];$r(I,z,b,A)<0&&(b=I,A=z,S=D)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<y;p++){let g=R(p,u,0,o),h=$(g,o),b=f[h],A=0;for(let S=1;S<d;S++){let D=R(p,u,S,o),w=$(D,o),x=f[w];x<b&&(b=x,A=S)}m[p]=A}}else for(let f=0;f<y;f++){let p=1/0,g=0;for(let h=0;h<d;h++){let b=R(f,u,h,o),A=$(b,o),S=Number(s[A]);S<p&&(p=S,g=h)}m[f]=g}return l}function Te(r,t){let e=r.dtype,n=M(e),o=r.shape,a=o.length,i=r.size,s=r.data;if(t===void 0){if(i===0)throw new Error("argmax of empty array");if(n){let g=s,h=g[0],b=g[1],A=0;for(let S=1;S<i;S++){let D=g[S*2],w=g[S*2+1];$r(D,w,h,b)>0&&(h=D,b=w,A=S)}return A}let f=s[0],p=0;for(let g=1;g<i;g++)s[g]>f&&(f=s[g],p=g);return p}let u=t;if(u<0&&(u=a+u),u<0||u>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let c=Array.from(o).filter((f,p)=>p!==u);if(c.length===0)return Te(r);let l=N.zeros(c,"int32"),m=l.data,d=o[u],y=c.reduce((f,p)=>f*p,1);if(n){let f=s;for(let p=0;p<y;p++){let g=R(p,u,0,o),h=$(g,o),b=f[h*2],A=f[h*2+1],S=0;for(let D=1;D<d;D++){let w=R(p,u,D,o),x=$(w,o),I=f[x*2],z=f[x*2+1];$r(I,z,b,A)>0&&(b=I,A=z,S=D)}m[p]=S}}else if(B(e)){let f=s;for(let p=0;p<y;p++){let g=R(p,u,0,o),h=$(g,o),b=f[h],A=0;for(let S=1;S<d;S++){let D=R(p,u,S,o),w=$(D,o),x=f[w];x>b&&(b=x,A=S)}m[p]=A}}else for(let f=0;f<y;f++){let p=-1/0,g=0;for(let h=0;h<d;h++){let b=R(f,u,h,o),A=$(b,o),S=Number(s[A]);S>p&&(p=S,g=h)}m[f]=g}return l}function Oe(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,i=a.length,s=r.size,u=r.data,c=Vt(r,t,n);if(t===void 0){if(M(o)){let S=u,D=c,w=0;for(let x=0;x<s;x++){let I=S[x*2],z=S[x*2+1],F=I-D.re,v=z-D.im;w+=F*F+v*v}return w/(s-e)}let b=c,A=0;for(let S=0;S<s;S++){let D=Number(u[S])-b;A+=D*D}return A/(s-e)}let l=t;if(l<0&&(l=i+l),l<0||l>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let m=a[l],d=c,y=d.data,f=n?d.shape:Array.from(a).filter((b,A)=>A!==l),p=N.zeros(Array.from(f),"float64"),g=p.data,h=f.reduce((b,A)=>b*A,1);if(M(o)){let b=u,A=y;for(let S=0;S<h;S++){let D=0,w=A[S*2],x=A[S*2+1];for(let I=0;I<m;I++){let z=R(S,l,I,a),F=$(z,a),v=b[F*2],T=b[F*2+1],O=v-w,C=T-x;D+=O*O+C*C}g[S]=D/(m-e)}}else for(let b=0;b<h;b++){let A=0,S=Number(y[b]);for(let D=0;D<m;D++){let w=R(b,l,D,a),x=$(w,a),I=Number(u[x])-S;A+=I*I}g[b]=A/(m-e)}return p}function ya(r,t,e=0,n=!1){let o=Oe(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=N.zeros(Array.from(o.shape),"float64"),i=o.data,s=a.data;for(let u=0;u<i.length;u++)s[u]=Math.sqrt(Number(i[u]));return a}function Ce(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let y=0;y<a;y++)if(!i[y])return!1;return!0}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((y,f)=>f!==s);if(u.length===0)return Ce(r);let c=N.zeros(u,"bool"),l=c.data,m=n[s],d=u.reduce((y,f)=>y*f,1);for(let y=0;y<d;y++){let f=!0;for(let p=0;p<m;p++){let g=R(y,s,p,n),h=$(g,n);if(!i[h]){f=!1;break}}l[y]=f?1:0}if(e){let y=[...n];return y[s]=1,N.fromData(l,y,"bool")}return c}function Ue(r,t,e=!1){let n=r.shape,o=n.length,a=r.size,i=r.data;if(t===void 0){for(let y=0;y<a;y++)if(i[y])return!0;return!1}let s=t;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let u=Array.from(n).filter((y,f)=>f!==s);if(u.length===0)return Ue(r);let c=N.zeros(u,"bool"),l=c.data,m=n[s],d=u.reduce((y,f)=>y*f,1);for(let y=0;y<d;y++){let f=!1;for(let p=0;p<m;p++){let g=R(y,s,p,n),h=$(g,n);if(i[h]){f=!0;break}}l[y]=f?1:0}if(e){let y=[...n];return y[s]=1,N.fromData(l,y,"bool")}return c}function $e(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let y=a,f=r.size;if(t===void 0){let x=N.zeros([f],e),I=x.data,z=0,F=0;for(let v=0;v<f;v++)z+=y[v*2],F+=y[v*2+1],I[v*2]=z,I[v*2+1]=F;return x}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=N.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let x=o-1;x>=0;x--)A.unshift(S),S*=n[x];let D=r.size,w=A[p];for(let x=0;x<D;x++)Math.floor(x/w)%b===0?(h[x*2]=y[x*2],h[x*2+1]=y[x*2+1]):(h[x*2]=h[(x-w)*2]+y[x*2],h[x*2+1]=h[(x-w)*2+1]+y[x*2+1]);return g}if(t===void 0){let y=r.size,f=new Float64Array(y),p=0;for(let g=0;g<y;g++)p+=Number(a[g]),f[g]=p;return N.fromData(f,[y],"float64")}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),u=n[i],c=[],l=1;for(let y=o-1;y>=0;y--)c.unshift(l),l*=n[y];let m=r.size,d=c[i];for(let y=0;y<m;y++)Math.floor(y/d)%u===0?s[y]=Number(a[y]):s[y]=s[y-d]+Number(a[y]);return N.fromData(s,[...n],"float64")}function Re(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let y=a,f=r.size;if(t===void 0){let x=N.zeros([f],e),I=x.data,z=1,F=0;for(let v=0;v<f;v++){let T=y[v*2],O=y[v*2+1],C=z*T-F*O,q=z*O+F*T;z=C,F=q,I[v*2]=z,I[v*2+1]=F}return x}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=N.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let x=o-1;x>=0;x--)A.unshift(S),S*=n[x];let D=r.size,w=A[p];for(let x=0;x<D;x++)if(Math.floor(x/w)%b===0)h[x*2]=y[x*2],h[x*2+1]=y[x*2+1];else{let z=h[(x-w)*2],F=h[(x-w)*2+1],v=y[x*2],T=y[x*2+1];h[x*2]=z*v-F*T,h[x*2+1]=z*T+F*v}return g}if(t===void 0){let y=r.size,f=new Float64Array(y),p=1;for(let g=0;g<y;g++)p*=Number(a[g]),f[g]=p;return N.fromData(f,[y],"float64")}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),u=n[i],c=[],l=1;for(let y=o-1;y>=0;y--)c.unshift(l),l*=n[y];let m=r.size,d=c[i];for(let y=0;y<m;y++)Math.floor(y/d)%u===0?s[y]=Number(a[y]):s[y]=s[y-d]*Number(a[y]);return N.fromData(s,[...n],"float64")}function ke(r,t,e=!1){let n=r.dtype;if(M(n)){let m=Qr(r,t,e),d=Kr(r,t,e);if(m instanceof E&&d instanceof E)return new E(m.re-d.re,m.im-d.im);let y=m,f=d,p=y.data,g=f.data,h=new Float64Array(y.size*2);for(let b=0;b<y.size;b++)h[b*2]=p[b*2]-g[b*2],h[b*2+1]=p[b*2+1]-g[b*2+1];return N.fromData(h,[...y.shape],n)}let o=Qr(r,t,e),a=Kr(r,t,e);if(typeof o=="number"&&typeof a=="number")return o-a;let i=o,s=a,u=i.data,c=s.data,l=new Float64Array(i.size);for(let m=0;m<i.size;m++)l[m]=Number(u[m])-Number(c[m]);return N.fromData(l,[...i.shape],"float64")}function qe(r,t,e=!1){return tt(r,.5,t,e)}function Ve(r,t,e,n=!1){return tt(r,t/100,e,n)}function tt(r,t,e,n=!1){if(U(r.dtype,"quantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,i=r.data;if(e===void 0){let y=[];for(let A=0;A<r.size;A++)y.push(Number(i[A]));y.sort((A,S)=>A-S);let f=y.length,p=t*(f-1),g=Math.floor(p),h=Math.ceil(p);if(g===h)return y[g];let b=p-g;return y[g]*(1-b)+y[h]*b}let s=e;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let u=Array.from(o).filter((y,f)=>f!==s);if(u.length===0)return tt(r,t);let c=u.reduce((y,f)=>y*f,1),l=o[s],m=new Float64Array(c);for(let y=0;y<c;y++){let f=[];for(let A=0;A<l;A++){let S=R(y,s,A,o),D=$(S,o);f.push(Number(i[D]))}f.sort((A,S)=>A-S);let p=f.length,g=t*(p-1),h=Math.floor(g),b=Math.ceil(g);if(h===b)m[y]=f[h];else{let A=g-h;m[y]=f[h]*(1-A)+f[b]*A}}let d=N.fromData(m,u,"float64");if(n){let y=[...o];return y[s]=1,N.fromData(m,y,"float64")}return d}function mt(r,t,e,n=!1){let o=r.dtype,a=r.shape,i=a.length,s=r.data;if(e===void 0)return Vt(r,t,n);if(M(o)){let p=s,g=e.data;if(t===void 0){let x=0,I=0,z=0;for(let F=0;F<r.size;F++){let v=Number(g[F%e.size]),T=p[F*2],O=p[F*2+1];x+=T*v,I+=O*v,z+=v}return z===0?new E(NaN,NaN):new E(x/z,I/z)}let h=t;if(h<0&&(h=i+h),h<0||h>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let b=Array.from(a).filter((x,I)=>I!==h);if(b.length===0)return mt(r,void 0,e);let A=b.reduce((x,I)=>x*I,1),S=a[h],D=N.zeros(b,o),w=D.data;for(let x=0;x<A;x++){let I=0,z=0,F=0;for(let v=0;v<S;v++){let T=R(x,h,v,a),O=$(T,a),C=Number(g[v%e.size]),q=p[O*2],V=p[O*2+1];I+=q*C,z+=V*C,F+=C}F===0?(w[x*2]=NaN,w[x*2+1]=NaN):(w[x*2]=I/F,w[x*2+1]=z/F)}if(n){let x=[...a];return x[h]=1,N.fromData(w,x,o)}return D}if(t===void 0){let p=0,g=0,h=e.data;for(let b=0;b<r.size;b++){let A=Number(h[b%e.size]);p+=Number(s[b])*A,g+=A}return g===0?NaN:p/g}let u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((p,g)=>g!==u);if(c.length===0)return mt(r,void 0,e);let l=c.reduce((p,g)=>p*g,1),m=a[u],d=e.data,y=new Float64Array(l);for(let p=0;p<l;p++){let g=0,h=0;for(let b=0;b<m;b++){let A=R(p,u,b,a),S=$(A,a),D=Number(d[b%e.size]);g+=Number(s[S])*D,h+=D}y[p]=h===0?NaN:g/h}let f=N.fromData(y,c,"float64");if(n){let p=[...a];return p[u]=1,N.fromData(y,p,"float64")}return f}function or(r,t){return isNaN(r)||isNaN(t)}function Pt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,i=a.length,s=r.data;if(t===void 0){if(o){let p=s,g=0,h=0;for(let b=0;b<r.size;b++){let A=p[b*2],S=p[b*2+1];or(A,S)||(g+=A,h+=S)}return new E(g,h)}let f=0;for(let p=0;p<r.size;p++){let g=Number(s[p]);isNaN(g)||(f+=g)}return f}let u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((f,p)=>p!==u);if(c.length===0)return Pt(r);let l=c.reduce((f,p)=>f*p,1),m=a[u];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0;for(let A=0;A<m;A++){let S=R(g,u,A,a),D=$(S,a),w=f[D*2],x=f[D*2+1];or(w,x)||(h+=w,b+=x)}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[u]=1,N.fromData(p,g,n)}return N.fromData(p,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let p=0;for(let g=0;g<m;g++){let h=R(f,u,g,a),b=$(h,a),A=Number(s[b]);isNaN(A)||(p+=A)}d[f]=p}let y=N.fromData(d,c,"float64");if(e){let f=[...a];return f[u]=1,N.fromData(d,f,"float64")}return y}function jt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,i=a.length,s=r.data;if(t===void 0){if(o){let p=s,g=1,h=0;for(let b=0;b<r.size;b++){let A=p[b*2],S=p[b*2+1];if(!or(A,S)){let D=g*A-h*S,w=g*S+h*A;g=D,h=w}}return new E(g,h)}let f=1;for(let p=0;p<r.size;p++){let g=Number(s[p]);isNaN(g)||(f*=g)}return f}let u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((f,p)=>p!==u);if(c.length===0)return jt(r);let l=c.reduce((f,p)=>f*p,1),m=a[u];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=1,b=0;for(let A=0;A<m;A++){let S=R(g,u,A,a),D=$(S,a),w=f[D*2],x=f[D*2+1];if(!or(w,x)){let I=h*w-b*x,z=h*x+b*w;h=I,b=z}}p[g*2]=h,p[g*2+1]=b}if(e){let g=[...a];return g[u]=1,N.fromData(p,g,n)}return N.fromData(p,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let p=1;for(let g=0;g<m;g++){let h=R(f,u,g,a),b=$(h,a),A=Number(s[b]);isNaN(A)||(p*=A)}d[f]=p}let y=N.fromData(d,c,"float64");if(e){let f=[...a];return f[u]=1,N.fromData(d,f,"float64")}return y}function Lt(r,t,e=!1){let n=r.dtype,o=M(n),a=r.shape,i=a.length,s=r.data;if(t===void 0){if(o){let g=s,h=0,b=0,A=0;for(let S=0;S<r.size;S++){let D=g[S*2],w=g[S*2+1];or(D,w)||(h+=D,b+=w,A++)}return A===0?new E(NaN,NaN):new E(h/A,b/A)}let f=0,p=0;for(let g=0;g<r.size;g++){let h=Number(s[g]);isNaN(h)||(f+=h,p++)}return p===0?NaN:f/p}let u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((f,p)=>p!==u);if(c.length===0)return Lt(r);let l=c.reduce((f,p)=>f*p,1),m=a[u];if(o){let f=s,p=new Float64Array(l*2);for(let g=0;g<l;g++){let h=0,b=0,A=0;for(let S=0;S<m;S++){let D=R(g,u,S,a),w=$(D,a),x=f[w*2],I=f[w*2+1];or(x,I)||(h+=x,b+=I,A++)}A===0?(p[g*2]=NaN,p[g*2+1]=NaN):(p[g*2]=h/A,p[g*2+1]=b/A)}if(e){let g=[...a];return g[u]=1,N.fromData(p,g,n)}return N.fromData(p,c,n)}let d=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let h=0;h<m;h++){let b=R(f,u,h,a),A=$(b,a),S=Number(s[A]);isNaN(S)||(p+=S,g++)}d[f]=g===0?NaN:p/g}let y=N.fromData(d,c,"float64");if(e){let f=[...a];return f[u]=1,N.fromData(d,f,"float64")}return y}function rt(r,t,e=0,n=!1){let o=r.dtype,a=r.shape,i=a.length,s=r.data;if(M(o)){let f=s;if(t===void 0){let D=0,w=0,x=0;for(let v=0;v<r.size;v++){let T=f[v*2],O=f[v*2+1];or(T,O)||(D+=T,w+=O,x++)}if(x-e<=0)return NaN;let I=D/x,z=w/x,F=0;for(let v=0;v<r.size;v++){let T=f[v*2],O=f[v*2+1];if(!or(T,O)){let C=T-I,q=O-z;F+=C*C+q*q}}return F/(x-e)}let p=t;if(p<0&&(p=i+p),p<0||p>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let g=Array.from(a).filter((D,w)=>w!==p);if(g.length===0)return rt(r,void 0,e);let h=g.reduce((D,w)=>D*w,1),b=a[p],A=new Float64Array(h);for(let D=0;D<h;D++){let w=0,x=0,I=0;for(let T=0;T<b;T++){let O=R(D,p,T,a),C=$(O,a),q=f[C*2],V=f[C*2+1];or(q,V)||(w+=q,x+=V,I++)}if(I-e<=0){A[D]=NaN;continue}let z=w/I,F=x/I,v=0;for(let T=0;T<b;T++){let O=R(D,p,T,a),C=$(O,a),q=f[C*2],V=f[C*2+1];if(!or(q,V)){let k=q-z,W=V-F;v+=k*k+W*W}}A[D]=v/(I-e)}let S=N.fromData(A,g,"float64");if(n){let D=[...a];return D[p]=1,N.fromData(A,D,"float64")}return S}if(t===void 0){let f=0,p=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(f+=A,p++)}if(p-e<=0)return NaN;let g=f/p,h=0;for(let b=0;b<r.size;b++){let A=Number(s[b]);isNaN(A)||(h+=(A-g)**2)}return h/(p-e)}let u=t;if(u<0&&(u=i+u),u<0||u>=i)throw new Error(`axis ${t} is out of bounds for array of dimension ${i}`);let c=Array.from(a).filter((f,p)=>p!==u);if(c.length===0)return rt(r,void 0,e);let l=c.reduce((f,p)=>f*p,1),m=a[u],d=new Float64Array(l);for(let f=0;f<l;f++){let p=0,g=0;for(let A=0;A<m;A++){let S=R(f,u,A,a),D=$(S,a),w=Number(s[D]);isNaN(w)||(p+=w,g++)}if(g-e<=0){d[f]=NaN;continue}let h=p/g,b=0;for(let A=0;A<m;A++){let S=R(f,u,A,a),D=$(S,a),w=Number(s[D]);isNaN(w)||(b+=(w-h)**2)}d[f]=b/(g-e)}let y=N.fromData(d,c,"float64");if(n){let f=[...a];return f[u]=1,N.fromData(d,f,"float64")}return y}function Pe(r,t,e=0,n=!1){let o=rt(r,t,e,n);if(typeof o=="number")return Math.sqrt(o);let a=o,i=new Float64Array(a.size);for(let s=0;s<a.size;s++)i[s]=Math.sqrt(Number(a.data[s]));return N.fromData(i,[...a.shape],"float64")}function pt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.data;if(M(n)){let y=i;if(t===void 0){let S=1/0,D=1/0,w=!1;for(let x=0;x<r.size;x++){let I=y[x*2],z=y[x*2+1];isNaN(I)||isNaN(z)||(w?(I<S||I===S&&z<D)&&(S=I,D=z):(S=I,D=z,w=!0))}return w?new E(S,D):new E(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let p=Array.from(o).filter((S,D)=>D!==f);if(p.length===0)return pt(r);let g=p.reduce((S,D)=>S*D,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let D=1/0,w=1/0,x=!1;for(let I=0;I<h;I++){let z=R(S,f,I,o),F=$(z,o),v=y[F*2],T=y[F*2+1];isNaN(v)||isNaN(T)||(x?(v<D||v===D&&T<w)&&(D=v,w=T):(D=v,w=T,x=!0))}b[S*2]=x?D:NaN,b[S*2+1]=x?w:NaN}let A=N.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,N.fromData(b,S,n)}return A}if(t===void 0){let y=1/0;for(let f=0;f<r.size;f++){let p=Number(i[f]);!isNaN(p)&&p<y&&(y=p)}return y===1/0?NaN:y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=Array.from(o).filter((y,f)=>f!==s);if(u.length===0)return pt(r);let c=u.reduce((y,f)=>y*f,1),l=o[s],m=new Float64Array(c);for(let y=0;y<c;y++){let f=1/0;for(let p=0;p<l;p++){let g=R(y,s,p,o),h=$(g,o),b=Number(i[h]);!isNaN(b)&&b<f&&(f=b)}m[y]=f===1/0?NaN:f}let d=N.fromData(m,u,"float64");if(e){let y=[...o];return y[s]=1,N.fromData(m,y,"float64")}return d}function yt(r,t,e=!1){let n=r.dtype,o=r.shape,a=o.length,i=r.data;if(M(n)){let y=i;if(t===void 0){let S=-1/0,D=-1/0,w=!1;for(let x=0;x<r.size;x++){let I=y[x*2],z=y[x*2+1];isNaN(I)||isNaN(z)||(w?(I>S||I===S&&z>D)&&(S=I,D=z):(S=I,D=z,w=!0))}return w?new E(S,D):new E(NaN,NaN)}let f=t;if(f<0&&(f=a+f),f<0||f>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let p=Array.from(o).filter((S,D)=>D!==f);if(p.length===0)return yt(r);let g=p.reduce((S,D)=>S*D,1),h=o[f],b=new Float64Array(g*2);for(let S=0;S<g;S++){let D=-1/0,w=-1/0,x=!1;for(let I=0;I<h;I++){let z=R(S,f,I,o),F=$(z,o),v=y[F*2],T=y[F*2+1];isNaN(v)||isNaN(T)||(x?(v>D||v===D&&T>w)&&(D=v,w=T):(D=v,w=T,x=!0))}b[S*2]=x?D:NaN,b[S*2+1]=x?w:NaN}let A=N.fromData(b,p,n);if(e){let S=[...o];return S[f]=1,N.fromData(b,S,n)}return A}if(t===void 0){let y=-1/0;for(let f=0;f<r.size;f++){let p=Number(i[f]);!isNaN(p)&&p>y&&(y=p)}return y===-1/0?NaN:y}let s=t;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let u=Array.from(o).filter((y,f)=>f!==s);if(u.length===0)return yt(r);let c=u.reduce((y,f)=>y*f,1),l=o[s],m=new Float64Array(c);for(let y=0;y<c;y++){let f=-1/0;for(let p=0;p<l;p++){let g=R(y,s,p,o),h=$(g,o),b=Number(i[h]);!isNaN(b)&&b>f&&(f=b)}m[y]=f===-1/0?NaN:f}let d=N.fromData(m,u,"float64");if(e){let y=[...o];return y[s]=1,N.fromData(m,y,"float64")}return d}function dt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=1/0,b=1/0,A=-1;for(let S=0;S<r.size;S++){let D=m[S*2],w=m[S*2+1];!or(D,w)&&$r(D,w,h,b)<0&&(h=D,b=w,A=S)}return A}let d=t;if(d<0&&(d=o+d),d<0||d>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let y=Array.from(n).filter((h,b)=>b!==d);if(y.length===0)return dt(r);let f=y.reduce((h,b)=>h*b,1),p=n[d],g=new Int32Array(f);for(let h=0;h<f;h++){let b=1/0,A=1/0,S=0;for(let D=0;D<p;D++){let w=R(h,d,D,n),x=$(w,n),I=m[x*2],z=m[x*2+1];!or(I,z)&&$r(I,z,b,A)<0&&(b=I,A=z,S=D)}g[h]=S}return N.fromData(g,y,"int32")}if(t===void 0){let m=1/0,d=-1;for(let y=0;y<r.size;y++){let f=Number(a[y]);!isNaN(f)&&f<m&&(m=f,d=y)}return d}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,d)=>d!==i);if(s.length===0)return dt(r);let u=s.reduce((m,d)=>m*d,1),c=n[i],l=new Int32Array(u);for(let m=0;m<u;m++){let d=1/0,y=0;for(let f=0;f<c;f++){let p=R(m,i,f,n),g=$(p,n),h=Number(a[g]);!isNaN(h)&&h<d&&(d=h,y=f)}l[m]=y}return N.fromData(l,s,"int32")}function gt(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let m=a;if(t===void 0){let h=-1/0,b=-1/0,A=-1;for(let S=0;S<r.size;S++){let D=m[S*2],w=m[S*2+1];!or(D,w)&&$r(D,w,h,b)>0&&(h=D,b=w,A=S)}return A}let d=t;if(d<0&&(d=o+d),d<0||d>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let y=Array.from(n).filter((h,b)=>b!==d);if(y.length===0)return gt(r);let f=y.reduce((h,b)=>h*b,1),p=n[d],g=new Int32Array(f);for(let h=0;h<f;h++){let b=-1/0,A=-1/0,S=0;for(let D=0;D<p;D++){let w=R(h,d,D,n),x=$(w,n),I=m[x*2],z=m[x*2+1];!or(I,z)&&$r(I,z,b,A)>0&&(b=I,A=z,S=D)}g[h]=S}return N.fromData(g,y,"int32")}if(t===void 0){let m=-1/0,d=-1;for(let y=0;y<r.size;y++){let f=Number(a[y]);!isNaN(f)&&f>m&&(m=f,d=y)}return d}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((m,d)=>d!==i);if(s.length===0)return gt(r);let u=s.reduce((m,d)=>m*d,1),c=n[i],l=new Int32Array(u);for(let m=0;m<u;m++){let d=-1/0,y=0;for(let f=0;f<c;f++){let p=R(m,i,f,n),g=$(p,n),h=Number(a[g]);!isNaN(h)&&h>d&&(d=h,y=f)}l[m]=y}return N.fromData(l,s,"int32")}function je(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let y=a,f=r.size;if(t===void 0){let x=N.zeros([f],e),I=x.data,z=0,F=0;for(let v=0;v<f;v++){let T=y[v*2],O=y[v*2+1];or(T,O)||(z+=T,F+=O),I[v*2]=z,I[v*2+1]=F}return x}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=N.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let x=o-1;x>=0;x--)A.unshift(S),S*=n[x];let D=r.size,w=A[p];for(let x=0;x<D;x++){let I=y[x*2],z=y[x*2+1],F=Math.floor(x/w)%b,v=or(I,z);F===0?(h[x*2]=v?0:I,h[x*2+1]=v?0:z):(h[x*2]=h[(x-w)*2]+(v?0:I),h[x*2+1]=h[(x-w)*2+1]+(v?0:z))}return g}if(t===void 0){let y=r.size,f=new Float64Array(y),p=0;for(let g=0;g<y;g++){let h=Number(a[g]);isNaN(h)||(p+=h),f[g]=p}return N.fromData(f,[y],"float64")}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),u=n[i],c=[],l=1;for(let y=o-1;y>=0;y--)c.unshift(l),l*=n[y];let m=r.size,d=c[i];for(let y=0;y<m;y++){let f=Number(a[y]);Math.floor(y/d)%u===0?s[y]=isNaN(f)?0:f:s[y]=s[y-d]+(isNaN(f)?0:f)}return N.fromData(s,[...n],"float64")}function Le(r,t){let e=r.dtype,n=r.shape,o=n.length,a=r.data;if(M(e)){let y=a,f=r.size;if(t===void 0){let x=N.zeros([f],e),I=x.data,z=1,F=0;for(let v=0;v<f;v++){let T=y[v*2],O=y[v*2+1];if(!or(T,O)){let C=z*T-F*O,q=z*O+F*T;z=C,F=q}I[v*2]=z,I[v*2+1]=F}return x}let p=t;if(p<0&&(p=o+p),p<0||p>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let g=N.zeros([...n],e),h=g.data,b=n[p],A=[],S=1;for(let x=o-1;x>=0;x--)A.unshift(S),S*=n[x];let D=r.size,w=A[p];for(let x=0;x<D;x++){let I=y[x*2],z=y[x*2+1],F=Math.floor(x/w)%b,v=or(I,z);if(F===0)h[x*2]=v?1:I,h[x*2+1]=v?0:z;else{let T=h[(x-w)*2],O=h[(x-w)*2+1];v?(h[x*2]=T,h[x*2+1]=O):(h[x*2]=T*I-O*z,h[x*2+1]=T*z+O*I)}}return g}if(t===void 0){let y=r.size,f=new Float64Array(y),p=1;for(let g=0;g<y;g++){let h=Number(a[g]);isNaN(h)||(p*=h),f[g]=p}return N.fromData(f,[y],"float64")}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=new Float64Array(r.size),u=n[i],c=[],l=1;for(let y=o-1;y>=0;y--)c.unshift(l),l*=n[y];let m=r.size,d=c[i];for(let y=0;y<m;y++){let f=Number(a[y]);Math.floor(y/d)%u===0?s[y]=isNaN(f)?1:f:s[y]=s[y-d]*(isNaN(f)?1:f)}return N.fromData(s,[...n],"float64")}function Wt(r,t,e=!1){U(r.dtype,"nanmedian","Complex numbers are not orderable.");let n=r.shape,o=n.length,a=r.data;if(t===void 0){let d=[];for(let p=0;p<r.size;p++){let g=Number(a[p]);isNaN(g)||d.push(g)}if(d.length===0)return NaN;d.sort((p,g)=>p-g);let y=d.length,f=Math.floor(y/2);return y%2===0?(d[f-1]+d[f])/2:d[f]}let i=t;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let s=Array.from(n).filter((d,y)=>y!==i);if(s.length===0)return Wt(r);let u=s.reduce((d,y)=>d*y,1),c=n[i],l=new Float64Array(u);for(let d=0;d<u;d++){let y=[];for(let g=0;g<c;g++){let h=R(d,i,g,n),b=$(h,n),A=Number(a[b]);isNaN(A)||y.push(A)}if(y.length===0){l[d]=NaN;continue}y.sort((g,h)=>g-h);let f=y.length,p=Math.floor(f/2);f%2===0?l[d]=(y[p-1]+y[p])/2:l[d]=y[p]}let m=N.fromData(l,s,"float64");if(e){let d=[...n];return d[i]=1,N.fromData(l,d,"float64")}return m}function At(r,t,e,n=!1){if(U(r.dtype,"nanquantile","Complex numbers are not orderable."),t<0||t>1)throw new Error("Quantile must be between 0 and 1");let o=r.shape,a=o.length,i=r.data;if(e===void 0){let y=[];for(let A=0;A<r.size;A++){let S=Number(i[A]);isNaN(S)||y.push(S)}if(y.length===0)return NaN;y.sort((A,S)=>A-S);let f=y.length,p=t*(f-1),g=Math.floor(p),h=Math.ceil(p);if(g===h)return y[g];let b=p-g;return y[g]*(1-b)+y[h]*b}let s=e;if(s<0&&(s=a+s),s<0||s>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let u=Array.from(o).filter((y,f)=>f!==s);if(u.length===0)return At(r,t);let c=u.reduce((y,f)=>y*f,1),l=o[s],m=new Float64Array(c);for(let y=0;y<c;y++){let f=[];for(let A=0;A<l;A++){let S=R(y,s,A,o),D=$(S,o),w=Number(i[D]);isNaN(w)||f.push(w)}if(f.length===0){m[y]=NaN;continue}f.sort((A,S)=>A-S);let p=f.length,g=t*(p-1),h=Math.floor(g),b=Math.ceil(g);if(h===b)m[y]=f[h];else{let A=g-h;m[y]=f[h]*(1-A)+f[b]*A}}let d=N.fromData(m,u,"float64");if(n){let y=[...o];return y[s]=1,N.fromData(m,y,"float64")}return d}function We(r,t,e,n=!1){return At(r,t/100,e,n)}var da=G(()=>{"use strict";K();Q();Me();xr()});function er(r,t){let e=r.size,n=r.dtype,o=t.indexOf(-1),a;if(o!==-1){let c=t.reduce((m,d,y)=>y===o?m:m*d,1),l=e/c;if(!Number.isInteger(l))throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(t)}`);a=t.map((m,d)=>d===o?l:m)}else a=t;if(a.reduce((c,l)=>c*l,1)!==e)throw new Error(`cannot reshape array of size ${e} into shape ${JSON.stringify(a)}`);if(r.isCContiguous){let c=r.data;return N.fromData(c,a,n,ur(a),0)}let u=r.copy().data;return N.fromData(u,a,n,ur(a),0)}function Lr(r){let t=r.size,e=r.dtype,n=j(e);if(!n)throw new Error(`Cannot flatten array with dtype ${e}`);if(r.isCContiguous){let s=r.data.slice(r.offset,r.offset+t);return N.fromData(s,[t],e,[1],0)}let o=new n(t),a=B(e);for(let i=0;i<t;i++){let s=r.iget(i);o[i]=s}return N.fromData(o,[t],e,[1],0)}function et(r){let t=r.size,e=r.dtype;if(r.isCContiguous){let n=r.data;return N.fromData(n,[t],e,[1],0)}return Lr(r)}function ht(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,s;if(t===void 0)s=Array.from({length:n},(m,d)=>n-1-d);else{if(t.length!==n)throw new Error(`axes must have length ${n}, got ${t.length}`);let m=new Set;for(let d of t){let y=d<0?n+d:d;if(y<0||y>=n)throw new Error(`axis ${d} is out of bounds for array of dimension ${n}`);if(m.has(y))throw new Error("repeated axis in transpose");m.add(y)}s=t.map(d=>d<0?n+d:d)}let u=s.map(m=>e[m]),c=Array.from(o),l=s.map(m=>c[m]);return N.fromData(a,u,i,l,r.offset)}function Ge(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype;if(t===void 0){let s=[],u=[];for(let c=0;c<n;c++)e[c]!==1&&(s.push(e[c]),u.push(o[c]));return s.length===0&&(s.push(1),u.push(1)),N.fromData(a,s,i,u,r.offset)}else{let s=t<0?n+t:t;if(s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);if(e[s]!==1)throw new Error(`cannot select an axis which has size not equal to one (axis ${t} has size ${e[s]})`);let u=[],c=[];for(let l=0;l<n;l++)l!==s&&(u.push(e[l]),c.push(o[l]));return N.fromData(a,u,i,c,r.offset)}}function bt(r,t){let e=r.shape,n=e.length,o=r.strides,a=r.data,i=r.dtype,s=t;if(s<0&&(s=n+t+1),s<0||s>n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n+1}`);let u=[...Array.from(e)];u.splice(s,0,1);let c=[...Array.from(o)],l=s<n?o[s]*(e[s]||1):1;return c.splice(s,0,l),N.fromData(a,u,i,c,r.offset)}function ga(r,t,e){let n=r.shape,o=n.length,a=r.strides,i=r.data,s=r.dtype,u=t<0?o+t:t,c=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis1 ${t} is out of bounds for array of dimension ${o}`);if(c<0||c>=o)throw new Error(`axis2 ${e} is out of bounds for array of dimension ${o}`);if(u===c)return N.fromData(i,Array.from(n),s,Array.from(a),r.offset);let l=Array.from(n),m=Array.from(a);return[l[u],l[c]]=[l[c],l[u]],[m[u],m[c]]=[m[c],m[u]],N.fromData(i,l,s,m,r.offset)}function Ze(r,t,e){let n=r.ndim,o=Array.isArray(t)?t:[t],a=Array.isArray(e)?e:[e];if(o.length!==a.length)throw new Error("source and destination must have the same number of elements");let i=o.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`source axis ${c} is out of bounds for array of dimension ${n}`);return l}),s=a.map(c=>{let l=c<0?n+c:c;if(l<0||l>=n)throw new Error(`destination axis ${c} is out of bounds for array of dimension ${n}`);return l});if(new Set(i).size!==i.length)throw new Error("repeated axis in source");if(new Set(s).size!==s.length)throw new Error("repeated axis in destination");let u=[];for(let c=0;c<n;c++)i.includes(c)||u.push(c);for(let c=0;c<i.length;c++){let l=s[c];u.splice(l,0,i[c])}return ht(r,u)}function Rr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");if(r.length===1)return r[0].copy();let e=r[0],n=e.ndim,o=e.dtype,a=t<0?n+t:t;if(a<0||a>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);for(let y=1;y<r.length;y++){let f=r[y];if(f.ndim!==n)throw new Error("all the input arrays must have same number of dimensions");for(let p=0;p<n;p++)if(p!==a&&f.shape[p]!==e.shape[p])throw new Error("all the input array dimensions except for the concatenation axis must match exactly")}let i=Array.from(e.shape),s=e.shape[a];for(let y=1;y<r.length;y++)s+=r[y].shape[a];i[a]=s;let u=i.reduce((y,f)=>y*f,1),c=j(o);if(!c)throw new Error(`Cannot concatenate arrays with dtype ${o}`);let l=new c(u),m=ur(i),d=0;for(let y of r){let f=y.shape[a];wd(y,l,i,m,a,d,o),d+=f}return N.fromData(l,i,o)}function wd(r,t,e,n,o,a,i){let s=r.shape,u=s.length,c=r.size,l=i==="int64"||i==="uint64";if(o===0&&r.isCContiguous&&u>0){let y=a*n[0],f=r.data,p=r.offset,g=p+c;t.set(f.subarray(p,g),y);return}if(o===1&&u===2&&r.isCContiguous){let y=s[0],f=s[1],p=e[1],g=r.data,h=r.offset;for(let b=0;b<y;b++){let A=h+b*f,S=b*p+a;t.set(g.subarray(A,A+f),S)}return}let m=new Array(u).fill(0),d=a*n[o];for(let y=0;y<c;y++){let f=r.iget(y),p=d;for(let g=0;g<u;g++)p+=m[g]*n[g];t[p]=f;for(let g=u-1;g>=0&&(m[g]++,!(m[g]<s[g]));g--)m[g]=0}}function Aa(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r[0],n=e.shape,o=e.ndim,a=t<0?o+1+t:t;if(a<0||a>o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o+1}`);for(let s=1;s<r.length;s++){let u=r[s];if(u.ndim!==o)throw new Error("all input arrays must have the same shape");for(let c=0;c<o;c++)if(u.shape[c]!==n[c])throw new Error("all input arrays must have the same shape")}let i=r.map(s=>bt(s,a));return Rr(i,a)}function ba(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?er(e,[1,e.shape[0]]):e);return Rr(t,0)}function Ye(r){if(r.length===0)throw new Error("need at least one array to stack");return r.every(e=>e.ndim===1)?Rr(r,0):Rr(r,1)}function ha(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?er(bt(er(e,[1,e.shape[0]]),2),[1,e.shape[0],1]):e.ndim===2?bt(e,2):e);return Rr(t,2)}function Sa(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],s;if(typeof t=="number"){if(i%t!==0)throw new Error("array split does not result in an equal division");let u=i/t;s=[];for(let c=1;c<t;c++)s.push(c*u)}else s=t;return Da(r,s,a)}function St(r,t,e=0){let n=r.shape,o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let i=n[a],s;if(typeof t=="number"){let u=t,c=Math.floor(i/u),l=i%u;s=[];let m=0;for(let d=0;d<u-1;d++)m+=c+(d<l?1:0),s.push(m)}else s=t;return Da(r,s,a)}function Da(r,t,e){let n=r.shape,o=n[e],a=[0,...t,o],i=[];for(let s=0;s<a.length-1;s++){let u=a[s],c=a[s+1];if(u>c)throw new Error("split indices must be in ascending order");let l=Array.from(n);l[e]=c-u;let m=r.offset+u*r.strides[e];i.push(N.fromData(r.data,l,r.dtype,Array.from(r.strides),m))}return i}function Na(r,t){if(r.ndim<2)throw new Error("vsplit only works on arrays of 2 or more dimensions");return St(r,t,0)}function xa(r,t){if(r.ndim<1)throw new Error("hsplit only works on arrays of 1 or more dimensions");let e=r.ndim===1?0:1;return St(r,t,e)}function wa(r,t){let e=r.shape,n=e.length,o=r.dtype,a=Array.isArray(t)?t:[t],i=Math.max(n,a.length),s=new Array(i).fill(1),u=new Array(i).fill(1);for(let b=0;b<n;b++)s[i-n+b]=e[b];for(let b=0;b<a.length;b++)u[i-a.length+b]=a[b];let c=s.map((b,A)=>b*u[A]),l=c.reduce((b,A)=>b*A,1),m=j(o);if(!m)throw new Error(`Cannot tile array with dtype ${o}`);let d=new m(l),y=ur(c),f=r;n<i&&(f=er(r,s));let p=o==="int64"||o==="uint64",g=f.strides,h=new Array(i).fill(0);for(let b=0;b<l;b++){let A=f.offset;for(let w=0;w<i;w++){let x=h[w]%s[w];A+=x*g[w]}let S=f.data[A],D=0;for(let w=0;w<i;w++)D+=h[w]*y[w];d[D]=S;for(let w=i-1;w>=0&&(h[w]++,!(h[w]<c[w]));w--)h[w]=0}return N.fromData(d,c,o)}function Ia(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let b=i,A=Array.isArray(t)?t:new Array(b).fill(t);if(A.length!==b)throw new Error(`operands could not be broadcast together with shape (${b},) (${A.length},)`);let S=A.reduce((I,z)=>I+z,0),D=j(a);if(!D)throw new Error(`Cannot repeat array with dtype ${a}`);let w=new D(S),x=0;for(let I=0;I<b;I++){let z=r.iget(I),F=A[I];for(let v=0;v<F;v++)w[x++]=z}return N.fromData(w,[S],a)}let s=e<0?o+e:e;if(s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[s],c=Array.isArray(t)?t:new Array(u).fill(t);if(c.length!==u)throw new Error(`operands could not be broadcast together with shape (${u},) (${c.length},)`);let l=Array.from(n);l[s]=c.reduce((b,A)=>b+A,0);let m=l.reduce((b,A)=>b*A,1),d=j(a);if(!d)throw new Error(`Cannot repeat array with dtype ${a}`);let y=new d(m),f=ur(l),p=new Array(o).fill(0),g=a==="int64"||a==="uint64",h=[0];for(let b=0;b<u;b++)h.push(h[b]+c[b]);for(let b=0;b<i;b++){let A=r.iget(b),S=p[s],D=c[S],w=0;for(let z=0;z<o;z++)z!==s&&(w+=p[z]*f[z]);let x=f[s],I=h[S];for(let z=0;z<D;z++){let F=w+(I+z)*x;y[F]=A}for(let z=o-1;z>=0&&(p[z]++,!(p[z]<n[z]));z--)p[z]=0}return N.fromData(y,l,a)}function za(r,t){let e=r.shape,n=e.length,o=r.dtype,a=r.size,i;if(t===void 0)i=new Set(Array.from({length:n},(d,y)=>y));else if(typeof t=="number"){let d=t<0?n+t:t;if(d<0||d>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);i=new Set([d])}else i=new Set(t.map(d=>{let y=d<0?n+d:d;if(y<0||y>=n)throw new Error(`axis ${d} is out of bounds for array of dimension ${n}`);return y}));let s=j(o);if(!s)throw new Error(`Cannot flip array with dtype ${o}`);let u=new s(a),c=B(o);if(n===1&&r.isCContiguous){let d=r.data,y=r.offset;for(let f=0;f<a;f++)u[f]=d[y+a-1-f];return N.fromData(u,[...e],o)}if(n===2&&r.isCContiguous){let d=e[0],y=e[1],f=r.data,p=r.offset;if(i.size===2){for(let g=0;g<a;g++)u[g]=f[p+a-1-g];return N.fromData(u,[...e],o)}if(i.size===1){if(i.has(0)){for(let g=0;g<d;g++){let h=p+(d-1-g)*y,b=g*y;for(let A=0;A<y;A++)u[b+A]=f[h+A]}return N.fromData(u,[...e],o)}else if(i.has(1)){for(let g=0;g<d;g++){let h=p+g*y,b=g*y;for(let A=0;A<y;A++)u[b+A]=f[h+y-1-A]}return N.fromData(u,[...e],o)}}}let l=new Array(n),m=new Array(n).fill(0);for(let d=0;d<a;d++){for(let p=0;p<n;p++)l[p]=i.has(p)?e[p]-1-m[p]:m[p];let y=r.offset;for(let p=0;p<n;p++)y+=l[p]*r.strides[p];let f=r.data[y];u[d]=f;for(let p=n-1;p>=0&&(m[p]++,!(m[p]<e[p]));p--)m[p]=0}return N.fromData(u,[...e],o)}function _a(r,t=1,e=[0,1]){let n=r.shape,o=n.length,a=r.dtype;if(o<2)throw new Error("Input must be at least 2-D");let i=e[0]<0?o+e[0]:e[0],s=e[1]<0?o+e[1]:e[1];if(i<0||i>=o||s<0||s>=o)throw new Error(`Axes are out of bounds for array of dimension ${o}`);if(i===s)throw new Error("Axes must be different");if(t=(t%4+4)%4,t===0)return r.copy();let u=j(a);if(!u)throw new Error(`Cannot rotate array with dtype ${a}`);let c=[...n];(t===1||t===3)&&([c[i],c[s]]=[c[s],c[i]]);let l=c.reduce((g,h)=>g*h,1),m=new u(l),d=ur(c),y=B(a),f=new Array(o).fill(0),p=new Array(o);for(let g=0;g<r.size;g++){for(let D=0;D<o;D++)p[D]=f[D];let h,b;t===1?(h=n[s]-1-f[s],b=f[i]):t===2?(h=n[i]-1-f[i],b=n[s]-1-f[s],p[i]=h,p[s]=b):(h=f[s],b=n[i]-1-f[i]),t!==2&&(p[i]=h,p[s]=b);let A=0;for(let D=0;D<o;D++)A+=p[D]*d[D];let S=r.iget(g);m[A]=S;for(let D=o-1;D>=0&&(f[D]++,!(f[D]<n[D]));D--)f[D]=0}return N.fromData(m,c,a)}function va(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=r.size;if(e===void 0){let f=Array.isArray(t)?t.reduce((A,S)=>A+S,0):t,p=Lr(r),g=j(a);if(!g)throw new Error(`Cannot roll array with dtype ${a}`);let h=new g(i),b=B(a);for(let A=0;A<i;A++){let S=((A-f)%i+i)%i,D=p.iget(S);h[A]=D}return N.fromData(h,[...n],a)}let s=Array.isArray(t)?t:[t],u=Array.isArray(e)?e:[e];if(s.length!==u.length)throw new Error("shift and axis must have the same length");let c=u.map(f=>{let p=f<0?o+f:f;if(p<0||p>=o)throw new Error(`axis ${f} is out of bounds for array of dimension ${o}`);return p}),l=j(a);if(!l)throw new Error(`Cannot roll array with dtype ${a}`);let m=new l(i),d=B(a),y=new Array(o).fill(0);for(let f=0;f<i;f++){let p=[...y];for(let b=0;b<c.length;b++){let A=c[b],S=n[A],D=s[b];p[A]=((p[A]-D)%S+S)%S}let g=r.offset;for(let b=0;b<o;b++)g+=p[b]*r.strides[b];let h=r.data[g];m[f]=h;for(let b=o-1;b>=0&&(y[b]++,!(y[b]<n[b]));b--)y[b]=0}return N.fromData(m,[...n],a)}function Fa(r,t,e=0){let n=r.ndim,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e<0?n+e:e;if(a<0||a>n)throw new Error(`start ${e} is out of bounds`);return o<a&&a--,o===a?N.fromData(r.data,Array.from(r.shape),r.dtype,Array.from(r.strides),r.offset):Ze(r,o,a)}function Ma(r,t){if(r.ndim<3)throw new Error("dsplit only works on arrays of 3 or more dimensions");return St(r,t,2)}function Ba(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(e=>e.ndim===1?er(e,[e.shape[0],1]):e);return Ye(t)}function Ea(r,t){let e=r.dtype,n=t.reduce((u,c)=>u*c,1),o=r.size,a=j(e);if(!a)throw new Error(`Cannot resize array with dtype ${e}`);let i=new a(n),s=B(e);for(let u=0;u<n;u++){let c=u%o,l=r.iget(c);i[u]=l}return N.fromData(i,t,e)}function Ta(r){return r.map(t=>t.ndim===0?er(t,[1]):t)}function Oa(r){return r.map(t=>t.ndim===0?er(t,[1,1]):t.ndim===1?er(t,[1,t.shape[0]]):t)}function Ca(r){return r.map(t=>t.ndim===0?er(t,[1,1,1]):t.ndim===1?er(t,[1,t.shape[0],1]):t.ndim===2?er(t,[t.shape[0],t.shape[1],1]):t)}function Ua(r,t=0){let e=r.shape,n=e.length,o=t<0?n+t:t;if(o<0||o>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let a=e[o],i=[];for(let s=0;s<a;s++){let u=[];for(let m=0;m<n;m++)m===o?u.push({start:s,stop:s+1,step:1}):u.push({start:0,stop:e[m],step:1});let c=Id(r,u),l=Ge(c,o);i.push(l)}return i}function $a(r,t=1){if(r.length===0)throw new Error("need at least one array to block");return r.length===1?r[0].copy():Rr(r,-1)}function Id(r,t){let e=r.shape,n=r.strides,o=r.offset,a=r.dtype,i=r.data,s=[],u=[];for(let c=0;c<e.length;c++){let l=t[c],{start:m,stop:d,step:y}=l,f=Math.ceil((d-m)/y);s.push(f),u.push(n[c]*y),o+=m*n[c]}return N.fromData(i,s,a,u,o)}var He=G(()=>{"use strict";K();Q()});function wr(r,t){if(r instanceof E||t instanceof E){let e=r instanceof E?r:new E(Number(r),0),n=t instanceof E?t:new E(Number(t),0);return e.mul(n)}return typeof r=="bigint"&&typeof t=="bigint"?Number(r*t):Number(r)*Number(t)}function zd(r,t,e,n,o,a,i,s,u,c,l,m,d,y){if(m===0)for(let h=0;h<n*o;h++)d[h]=0;else if(m!==1)for(let h=0;h<n*o;h++)d[h]=(d[h]??0)*m;let f=r==="row-major",p=t==="transpose",g=e==="transpose";if(f&&!p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*u+S]??0)*(c[S*l+b]??0);d[h*y+b]=(d[h*y+b]??0)+i*A}else if(f&&p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*u+h]??0)*(c[S*l+b]??0);d[h*y+b]=(d[h*y+b]??0)+i*A}else if(f&&!p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*u+S]??0)*(c[b*l+S]??0);d[h*y+b]=(d[h*y+b]??0)+i*A}else if(f&&p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*u+h]??0)*(c[b*l+S]??0);d[h*y+b]=(d[h*y+b]??0)+i*A}else if(!f&&!p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*u+h]??0)*(c[b*l+S]??0);d[b*y+h]=(d[b*y+h]??0)+i*A}else if(!f&&p&&!g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*u+S]??0)*(c[b*l+S]??0);d[b*y+h]=(d[b*y+h]??0)+i*A}else if(!f&&!p&&g)for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[S*u+h]??0)*(c[S*l+b]??0);d[b*y+h]=(d[b*y+h]??0)+i*A}else for(let h=0;h<n;h++)for(let b=0;b<o;b++){let A=0;for(let S=0;S<a;S++)A+=(s[h*u+S]??0)*(c[S*l+b]??0);d[b*y+h]=(d[b*y+h]??0)+i*A}}function ot(r,t){let e=r.ndim,n=t.ndim,o=M(r.dtype)||M(t.dtype);if(e===0||n===0){let a=e===0?r.get():null,i=n===0?t.get():null;if(e===0&&n===0)return wr(a,i);if(e===0){let s=Z(r.dtype,t.dtype),u=N.zeros([...t.shape],s),c=(l,m)=>{let d=new Array(m.length),y=l;for(let f=m.length-1;f>=0;f--)d[f]=y%m[f],y=Math.floor(y/m[f]);return d};for(let l=0;l<t.size;l++){let m=c(l,t.shape),d=t.get(...m);u.set(m,wr(a,d))}return u}else{let s=Z(r.dtype,t.dtype),u=N.zeros([...r.shape],s),c=(l,m)=>{let d=new Array(m.length),y=l;for(let f=m.length-1;f>=0;f--)d[f]=y%m[f],y=Math.floor(y/m[f]);return d};for(let l=0;l<r.size;l++){let m=c(l,r.shape),d=r.get(...m);u.set(m,wr(d,i))}return u}}if(e===1&&n===1){if(r.shape[0]!==t.shape[0])throw new Error(`dot: incompatible shapes (${r.shape[0]},) and (${t.shape[0]},)`);let a=r.shape[0];if(o){let s=0,u=0;for(let c=0;c<a;c++){let l=r.get(c),m=t.get(c),d=wr(l,m);d instanceof E?(s+=d.re,u+=d.im):s+=d}return new E(s,u)}let i=0;for(let s=0;s<a;s++){let u=r.get(s),c=t.get(s);typeof u=="bigint"&&typeof c=="bigint"?i=Number(i)+Number(u*c):i+=Number(u)*Number(c)}return i}if(e===2&&n===2)return mr(r,t);if(e===2&&n===1){let[a,i]=r.shape,s=t.shape[0];if(i!==s)throw new Error(`dot: incompatible shapes (${a},${i}) and (${s},)`);let u=Z(r.dtype,t.dtype),c=N.zeros([a],u);if(o)for(let l=0;l<a;l++){let m=0,d=0;for(let y=0;y<i;y++){let f=r.get(l,y),p=t.get(y),g=f instanceof E?f:new E(Number(f),0),h=p instanceof E?p:new E(Number(p),0);m+=g.re*h.re-g.im*h.im,d+=g.re*h.im+g.im*h.re}c.set([l],new E(m,d))}else for(let l=0;l<a;l++){let m=0;for(let d=0;d<i;d++){let y=r.get(l,d),f=t.get(d);typeof y=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(y*f):m+=Number(y)*Number(f)}c.set([l],m)}return c}if(e===1&&n===2){let a=r.shape[0],[i,s]=t.shape;if(a!==i)throw new Error(`dot: incompatible shapes (${a},) and (${i},${s})`);let u=Z(r.dtype,t.dtype),c=N.zeros([s],u);if(o)for(let l=0;l<s;l++){let m=0,d=0;for(let y=0;y<a;y++){let f=r.get(y),p=t.get(y,l),g=f instanceof E?f:new E(Number(f),0),h=p instanceof E?p:new E(Number(p),0);m+=g.re*h.re-g.im*h.im,d+=g.re*h.im+g.im*h.re}c.set([l],new E(m,d))}else for(let l=0;l<s;l++){let m=0;for(let d=0;d<a;d++){let y=r.get(d),f=t.get(d,l);typeof y=="bigint"&&typeof f=="bigint"?m=Number(m)+Number(y*f):m+=Number(y)*Number(f)}c.set([l],m)}return c}if(e>2&&n===1){let a=r.shape[e-1],i=t.shape[0];if(a!==i)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and (${i},)`);let s=[...r.shape.slice(0,-1)],u=Z(r.dtype,t.dtype),c=N.zeros(s,u),l=s.reduce((m,d)=>m*d,1);if(o)for(let m=0;m<l;m++){let d=0,y=0,f=m,p=[];for(let g=s.length-1;g>=0;g--)p[g]=f%s[g],f=Math.floor(f/s[g]);for(let g=0;g<a;g++){let h=[...p,g],b=r.get(...h),A=t.get(g),S=b instanceof E?b:new E(Number(b),0),D=A instanceof E?A:new E(Number(A),0);d+=S.re*D.re-S.im*D.im,y+=S.re*D.im+S.im*D.re}c.set(p,new E(d,y))}else for(let m=0;m<l;m++){let d=0,y=m,f=[];for(let p=s.length-1;p>=0;p--)f[p]=y%s[p],y=Math.floor(y/s[p]);for(let p=0;p<a;p++){let g=[...f,p],h=r.get(...g),b=t.get(p);typeof h=="bigint"&&typeof b=="bigint"?d=Number(d)+Number(h*b):d+=Number(h)*Number(b)}c.set(f,d)}return c}if(e===1&&n>2){let a=r.shape[0],i=1,s=t.shape[i];if(a!==s)throw new Error(`dot: incompatible shapes (${a},) and ${JSON.stringify(t.shape)}`);let u=[...t.shape.slice(0,i),...t.shape.slice(i+1)],c=Z(r.dtype,t.dtype),l=N.zeros(u,c),m=u.reduce((d,y)=>d*y,1);if(o)for(let d=0;d<m;d++){let y=d,f=[];for(let A=u.length-1;A>=0;A--)f[A]=y%u[A],y=Math.floor(y/u[A]);let p=f.slice(0,i),g=f.slice(i),h=0,b=0;for(let A=0;A<a;A++){let S=r.get(A),D=[...p,A,...g],w=t.get(...D),x=S instanceof E?S:new E(Number(S),0),I=w instanceof E?w:new E(Number(w),0);h+=x.re*I.re-x.im*I.im,b+=x.re*I.im+x.im*I.re}l.set(f,new E(h,b))}else for(let d=0;d<m;d++){let y=d,f=[];for(let b=u.length-1;b>=0;b--)f[b]=y%u[b],y=Math.floor(y/u[b]);let p=f.slice(0,i),g=f.slice(i),h=0;for(let b=0;b<a;b++){let A=r.get(b),S=[...p,b,...g],D=t.get(...S);typeof A=="bigint"&&typeof D=="bigint"?h=Number(h)+Number(A*D):h+=Number(A)*Number(D)}l.set(f,h)}return l}if(e>=2&&n>=2&&!(e===2&&n===2)){let a=r.shape[e-1],i=t.shape[n-2];if(a!==i)throw new Error(`dot: incompatible shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-2),t.shape[n-1]],u=Z(r.dtype,t.dtype),c=N.zeros(s,u),l=r.shape.slice(0,-1).reduce((f,p)=>f*p,1),m=t.shape.slice(0,-2).reduce((f,p)=>f*p,1),d=t.shape[n-1],y=a;if(o)for(let f=0;f<l;f++)for(let p=0;p<m;p++)for(let g=0;g<d;g++){let h=0,b=0;for(let D=0;D<y;D++){let w=[],x=f;for(let C=r.shape.length-2;C>=0;C--)w.unshift(x%r.shape[C]),x=Math.floor(x/r.shape[C]);w.push(D);let I=r.get(...w),z=[],F=p;for(let C=t.shape.length-3;C>=0;C--)z.unshift(F%t.shape[C]),F=Math.floor(F/t.shape[C]);z.push(D,g);let v=t.get(...z),T=I instanceof E?I:new E(Number(I),0),O=v instanceof E?v:new E(Number(v),0);h+=T.re*O.re-T.im*O.im,b+=T.re*O.im+T.im*O.re}let A=f*m*d+p*d+g,S=c.data;S[A*2]=h,S[A*2+1]=b}else for(let f=0;f<l;f++)for(let p=0;p<m;p++)for(let g=0;g<d;g++){let h=0;for(let A=0;A<y;A++){let S=f*y+A,D=p*y*d+A*d+g,w=r.data[S+r.offset],x=t.data[D+t.offset];typeof w=="bigint"&&typeof x=="bigint"?h=Number(h)+Number(w*x):h+=Number(w)*Number(x)}let b=f*m*d+p*d+g;c.data[b]=h}return c}throw new Error(`dot: unexpected combination of dimensions ${e}D \xB7 ${n}D`)}function mr(r,t){if(r.ndim!==2||t.ndim!==2)throw new Error("matmul requires 2D arrays");let[e=0,n=0]=r.shape,[o=0,a=0]=t.shape;if(n!==o)throw new Error(`matmul shape mismatch: (${e},${n}) @ (${o},${a})`);let i=Z(r.dtype,t.dtype);if(M(i)){let D=N.zeros([e,a],i),w=D.data,x=r.data,I=t.data;for(let z=0;z<e;z++)for(let F=0;F<a;F++){let v=0,T=0;for(let C=0;C<n;C++){let q=(z*n+C)*2,V=(C*a+F)*2,k=x[q],W=x[q+1],P=I[V],rr=I[V+1];v+=k*P-W*rr,T+=k*rr+W*P}let O=z*a+F;w[O*2]=v,w[O*2+1]=T}return D}let s=i.startsWith("int")||i.startsWith("uint")||i==="bool"?"float64":i;if(s!=="float64")throw new Error(`matmul currently only supports float64, got ${s}`);let u=r.dtype==="float64"?r.data:Float64Array.from(Array.from(r.data).map(Number)),c=t.dtype==="float64"?t.data:Float64Array.from(Array.from(t.data).map(Number));r.offset>0&&(u=u.subarray(r.offset)),t.offset>0&&(c=c.subarray(t.offset));let[l=0,m=0]=r.strides,[d=0,y=0]=t.strides,f=m>l,p=y>d,g=f?"transpose":"no-transpose",h=p?"transpose":"no-transpose",b,A;f?b=m:b=l,p?A=y:A=d;let S=N.zeros([e,a],"float64");return zd("row-major",g,h,e,a,n,1,u,b,c,A,0,S.data,a),S}function Je(r){if(r.ndim!==2)throw new Error(`trace requires 2D array, got ${r.ndim}D`);let[t=0,e=0]=r.shape,n=Math.min(t,e);if(M(r.dtype)){let a=0,i=0;for(let s=0;s<n;s++){let u=r.get(s,s);a+=u.re,i+=u.im}return new E(a,i)}let o=0;for(let a=0;a<n;a++){let i=r.get(a,a);typeof i=="bigint"?o=(typeof o=="bigint"?o:BigInt(o))+i:o=(typeof o=="bigint"?Number(o):o)+i}return o}function Dt(r,t){return ht(r,t)}function qa(r,t){let e=r.ndim,n=t.ndim,o=M(r.dtype)||M(t.dtype),a=r.shape[e-1],i=t.shape[n-1];if(a!==i)throw new Error(`inner: incompatible shapes - last dimensions ${a} and ${i} don't match`);if(e===1&&n===1)return ot(r,t);let s=[...r.shape.slice(0,-1),...t.shape.slice(0,-1)],u=Z(r.dtype,t.dtype),c=N.zeros(s,u),l=e===1?1:r.shape.slice(0,-1).reduce((y,f)=>y*f,1),m=n===1?1:t.shape.slice(0,-1).reduce((y,f)=>y*f,1),d=a;if(o)for(let y=0;y<l;y++)for(let f=0;f<m;f++){let p=0,g=0;for(let A=0;A<d;A++){let S,D;if(e===1)S=r.get(A);else{let I=[],z=y,F=r.shape.slice(0,-1);for(let v=F.length-1;v>=0;v--)I.unshift(z%F[v]),z=Math.floor(z/F[v]);I.push(A),S=r.get(...I)}if(n===1)D=t.get(A);else{let I=[],z=f,F=t.shape.slice(0,-1);for(let v=F.length-1;v>=0;v--)I.unshift(z%F[v]),z=Math.floor(z/F[v]);I.push(A),D=t.get(...I)}let w=S instanceof E?S:new E(Number(S),0),x=D instanceof E?D:new E(Number(D),0);p+=w.re*x.re-w.im*x.im,g+=w.re*x.im+w.im*x.re}if(s.length===0)return new E(p,g);let h=l===1?f:y*m+f,b=c.data;b[h*2]=p,b[h*2+1]=g}else for(let y=0;y<l;y++)for(let f=0;f<m;f++){let p=0;for(let h=0;h<d;h++){let b=e===1?h:y*d+h,A=n===1?h:f*d+h,S=r.data[b+r.offset],D=t.data[A+t.offset];typeof S=="bigint"&&typeof D=="bigint"?p=Number(p)+Number(S*D):p+=Number(S)*Number(D)}if(s.length===0)return p;let g=l===1?f:y*m+f;c.data[g]=p}return c}function Gt(r,t){let e=r.ndim===1?r:et(r),n=t.ndim===1?t:et(t),o=e.size,a=n.size,i=Z(r.dtype,t.dtype),s=N.zeros([o,a],i);for(let u=0;u<o;u++)for(let c=0;c<a;c++){let l=e.get(u),m=n.get(c),d=wr(l,m);s.set([u,c],d)}return s}function Qe(r,t,e){let n,o;if(typeof e=="number"){let f=e;if(f<0)throw new Error("tensordot: axes must be non-negative");if(f>r.ndim||f>t.ndim)throw new Error("tensordot: axes exceeds array dimensions");n=Array.from({length:f},(p,g)=>r.ndim-f+g),o=Array.from({length:f},(p,g)=>g)}else if([n,o]=e,n.length!==o.length)throw new Error("tensordot: axes lists must have same length");for(let f=0;f<n.length;f++){let p=n[f],g=o[f];if(p<0||p>=r.ndim||g<0||g>=t.ndim)throw new Error("tensordot: axis out of bounds");if(r.shape[p]!==t.shape[g])throw new Error(`tensordot: shape mismatch on axes ${p} and ${g}: ${r.shape[p]} != ${t.shape[g]}`)}let a=[],i=[];for(let f=0;f<r.ndim;f++)n.includes(f)||a.push(f);for(let f=0;f<t.ndim;f++)o.includes(f)||i.push(f);let s=[...a.map(f=>r.shape[f]),...i.map(f=>t.shape[f])],u=Z(r.dtype,t.dtype),c=M(u),l=f=>f instanceof E?{re:f.re,im:f.im}:{re:Number(f),im:0};if(s.length===0){let f=0,p=0,g=n.map(h=>r.shape[h]).reduce((h,b)=>h*b,1);for(let h=0;h<g;h++){let b=h,A=new Array(n.length);for(let I=n.length-1;I>=0;I--){let z=n[I];A[I]=b%r.shape[z],b=Math.floor(b/r.shape[z])}let S=new Array(r.ndim),D=new Array(t.ndim);for(let I=0;I<n.length;I++)S[n[I]]=A[I];for(let I=0;I<o.length;I++)D[o[I]]=A[I];let w=r.get(...S),x=t.get(...D);if(c){let I=l(w),z=l(x);f+=I.re*z.re-I.im*z.im,p+=I.re*z.im+I.im*z.re}else typeof w=="bigint"&&typeof x=="bigint"?f+=Number(w*x):f+=Number(w)*Number(x)}return c?new E(f,p):f}let m=N.zeros(s,u),d=s.reduce((f,p)=>f*p,1),y=n.map(f=>r.shape[f]).reduce((f,p)=>f*p,1);for(let f=0;f<d;f++){let p=f,g=[];for(let D=s.length-1;D>=0;D--)g[D]=p%s[D],p=Math.floor(p/s[D]);let h=g.slice(0,a.length),b=g.slice(a.length),A=0,S=0;for(let D=0;D<y;D++){p=D;let w=[];for(let v=n.length-1;v>=0;v--){let T=n[v];w[v]=p%r.shape[T],p=Math.floor(p/r.shape[T])}let x=new Array(r.ndim),I=new Array(t.ndim);for(let v=0;v<a.length;v++)x[a[v]]=h[v];for(let v=0;v<i.length;v++)I[i[v]]=b[v];for(let v=0;v<n.length;v++)x[n[v]]=w[v],I[o[v]]=w[v];let z=r.get(...x),F=t.get(...I);if(c){let v=l(z),T=l(F);A+=v.re*T.re-v.im*T.im,S+=v.re*T.im+v.im*T.re}else typeof z=="bigint"&&typeof F=="bigint"?A+=Number(z*F):A+=Number(z)*Number(F)}c?m.set(g,new E(A,S)):m.set(g,A)}return m}function Ke(r,t=0,e=0,n=1){let o=r.shape,a=o.length;if(a<2)throw new Error("diagonal requires an array of at least two dimensions");let i=e<0?a+e:e,s=n<0?a+n:n;if(i<0||i>=a||s<0||s>=a)throw new Error("axis out of bounds");if(i===s)throw new Error("axis1 and axis2 cannot be the same");let u=o[i],c=o[s],l;t>=0?l=Math.max(0,Math.min(u,c-t)):l=Math.max(0,Math.min(u+t,c));let m=[];for(let p=0;p<a;p++)p!==i&&p!==s&&m.push(o[p]);m.push(l);let d=N.zeros(m,r.dtype),y=o.filter((p,g)=>g!==i&&g!==s),f=y.reduce((p,g)=>p*g,1);for(let p=0;p<f;p++){let g=p,h=[];for(let b=y.length-1;b>=0;b--)h.unshift(g%y[b]),g=Math.floor(g/y[b]);for(let b=0;b<l;b++){let A=new Array(a),S=0;for(let x=0;x<a;x++)x===i?A[x]=t>=0?b:b-t:x===s?A[x]=t>=0?b+t:b:A[x]=h[S++];let D=[...h,b],w=r.get(...A);d.set(D,w)}}return d}function Va(r,...t){let e=r.indexOf("->"),n,o;e===-1?(n=r,o=_d(n)):(n=r.slice(0,e),o=r.slice(e+2));let a=n.split(",").map(p=>p.trim());if(a.length!==t.length)throw new Error(`einsum: expected ${a.length} operands, got ${t.length}`);let i=new Map;for(let p=0;p<t.length;p++){let g=a[p],h=t[p];if(g.length!==h.ndim)throw new Error(`einsum: operand ${p} has ${h.ndim} dimensions but subscript '${g}' has ${g.length} indices`);for(let b=0;b<g.length;b++){let A=g[b],S=h.shape[b];if(i.has(A)){if(i.get(A)!==S)throw new Error(`einsum: size mismatch for index '${A}': ${i.get(A)} vs ${S}`)}else i.set(A,S)}}for(let p of o)if(!i.has(p))throw new Error(`einsum: output subscript contains unknown index '${p}'`);let s=new Set(o),u=new Set;for(let p of a)for(let g of p)u.add(g);let c=[];for(let p of u)s.has(p)||c.push(p);if(t.length===2&&a.length===2){let[p,g]=a,[h,b]=t;if(p.length===2&&g.length===2&&o.length===2&&h.ndim===2&&b.ndim===2){let[A,S]=[p[0],p[1]],[D,w]=[g[0],g[1]],[x,I]=[o[0],o[1]];if(A===x&&w===I&&S===D&&c.length===1&&c[0]===S||A===x&&w===I&&S===D&&c.length===1&&c[0]===S)return mr(h,b);if(S===x&&w===I&&A===D&&c.length===1&&c[0]===A){let z=Dt(h);return mr(z,b)}if(A===x&&D===I&&S===w&&c.length===1&&c[0]===S){let z=Dt(b);return mr(h,z)}}if(p.length===1&&g.length===1&&p===g&&o.length===0&&h.ndim===1&&b.ndim===1)return Xe(t,a,c,i);if(p&&g&&p.length===1&&g.length===1&&o.length===2&&o===p+g&&c.length===0&&h.ndim===1&&b.ndim===1)return Gt(h,b)}if(t.length===1&&a[0].length===2&&o.length===0){let p=a[0];if(p[0]===p[1]&&t[0].ndim===2)return Xe(t,a,c,i)}let l=Array.from(o).map(p=>i.get(p));if(l.length===0)return Xe(t,a,c,i);let m=t[0].dtype;for(let p=1;p<t.length;p++)m=Z(m,t[p].dtype);let d=N.zeros(l,m),y=l.reduce((p,g)=>p*g,1),f=1;for(let p of c)f*=i.get(p);for(let p=0;p<y;p++){let g=vd(p,l),h=new Map;for(let A=0;A<o.length;A++)h.set(o[A],g[A]);let b=0;for(let A=0;A<f;A++){let S=A;for(let w=c.length-1;w>=0;w--){let x=c[w],I=i.get(x);h.set(x,S%I),S=Math.floor(S/I)}let D=1;for(let w=0;w<t.length;w++){let x=t[w],I=a[w],z=[];for(let v of I)z.push(h.get(v));let F=x.get(...z);D*=Number(F)}b+=D}d.set(g,b)}return d}function _d(r){let t=new Map,e=r.split(",");for(let o of e)for(let a of o.trim())t.set(a,(t.get(a)||0)+1);let n=[];for(let[o,a]of t)a===1&&n.push(o);return n.sort().join("")}function Xe(r,t,e,n){let o=!1;for(let c of r)if(M(c.dtype)){o=!0;break}let a=c=>c instanceof E?{re:c.re,im:c.im}:{re:Number(c),im:0},i=1;for(let c of e)i*=n.get(c);let s=0,u=0;for(let c=0;c<i;c++){let l=new Map,m=c;for(let f=e.length-1;f>=0;f--){let p=e[f],g=n.get(p);l.set(p,m%g),m=Math.floor(m/g)}let d=1,y=0;for(let f=0;f<r.length;f++){let p=r[f],g=t[f],h=[];for(let A of g)h.push(l.get(A));let b=p.get(...h);if(o){let A=a(b),S=d*A.re-y*A.im,D=d*A.im+y*A.re;d=S,y=D}else d*=Number(b)}s+=d,u+=y}return o?new E(s,u):s}function vd(r,t){let e=new Array(t.length),n=r;for(let o=t.length-1;o>=0;o--)e[o]=n%t[o],n=Math.floor(n/t[o]);return e}function Pa(r,t){let e=r.shape,n=t.shape,o=e.length,a=n.length,i=Z(r.dtype,t.dtype),s=Math.max(o,a),u=new Array(s),c=new Array(s).fill(1),l=new Array(s).fill(1);for(let f=0;f<o;f++)c[s-o+f]=e[f];for(let f=0;f<a;f++)l[s-a+f]=n[f];for(let f=0;f<s;f++)u[f]=c[f]*l[f];let m=N.zeros(u,i),d=e.reduce((f,p)=>f*p,1),y=n.reduce((f,p)=>f*p,1);for(let f=0;f<d;f++){let p=f,g=new Array(o);for(let A=o-1;A>=0;A--)g[A]=p%e[A],p=Math.floor(p/e[A]);let h=new Array(s).fill(0);for(let A=0;A<o;A++)h[s-o+A]=g[A];let b=r.get(...g);for(let A=0;A<y;A++){let S=A,D=new Array(a);for(let F=a-1;F>=0;F--)D[F]=S%n[F],S=Math.floor(S/n[F]);let w=new Array(s).fill(0);for(let F=0;F<a;F++)w[s-a+F]=D[F];let x=t.get(...D),I=new Array(s);for(let F=0;F<s;F++)I[F]=h[F]*l[F]+w[F];let z=wr(b,x);m.set(I,z)}}return m}function ja(r,t,e=-1,n=-1,o=-1,a){a!==void 0&&(e=a,n=a,o=a);let i=(A,S)=>A<0?S+A:A,s=i(e,r.ndim),u=i(n,t.ndim);if(r.ndim===1&&t.ndim===1){let A=r.shape[0],S=t.shape[0];if(A===3&&S===3){let D=Number(r.get(0)),w=Number(r.get(1)),x=Number(r.get(2)),I=Number(t.get(0)),z=Number(t.get(1)),F=Number(t.get(2)),v=N.zeros([3],"float64");return v.set([0],w*F-x*z),v.set([1],x*I-D*F),v.set([2],D*z-w*I),v}else if(A===2&&S===2){let D=Number(r.get(0)),w=Number(r.get(1)),x=Number(t.get(0)),I=Number(t.get(1));return D*I-w*x}else if(A===2&&S===3||A===3&&S===2){let D=Number(r.get(0)),w=Number(r.get(1)),x=A===3?Number(r.get(2)):0,I=Number(t.get(0)),z=Number(t.get(1)),F=S===3?Number(t.get(2)):0,v=N.zeros([3],"float64");return v.set([0],w*F-x*z),v.set([1],x*I-D*F),v.set([2],D*z-w*I),v}else throw new Error(`cross: incompatible dimensions for cross product: ${A} and ${S}`)}let c=r.shape[s],l=t.shape[u];if(c!==2&&c!==3||l!==2&&l!==3)throw new Error(`cross: incompatible dimensions for cross product: ${c} and ${l}`);let m=c===2&&l===2?0:3,d=[...r.shape.slice(0,s),...r.shape.slice(s+1)],y=[...t.shape.slice(0,u),...t.shape.slice(u+1)];if(d.length!==y.length)throw new Error("cross: incompatible shapes for cross product");for(let A=0;A<d.length;A++)if(d[A]!==y[A])throw new Error("cross: incompatible shapes for cross product");let f=d,p=o<0?f.length+1+o:o,g;if(m===0?g=f:g=[...f.slice(0,p),m,...f.slice(p)],g.length===0)throw new Error("cross: unexpected scalar result from higher-dimensional input");let h=N.zeros(g,"float64"),b=f.reduce((A,S)=>A*S,1);for(let A=0;A<b;A++){let S=A,D=[];for(let V=f.length-1;V>=0;V--)D[V]=S%f[V],S=Math.floor(S/f[V]);let w=[...D.slice(0,s),0,...D.slice(s)],x=[...D.slice(0,u),0,...D.slice(u)],I=V=>(w[s]=V,Number(r.get(...w))),z=V=>(x[u]=V,Number(t.get(...x))),F=I(0),v=I(1),T=c===3?I(2):0,O=z(0),C=z(1),q=l===3?z(2):0;if(m===0)h.set(D,F*C-v*O);else{let V=v*q-T*C,k=T*O-F*q,W=F*C-v*O,P=(rr,nr)=>{let Y=[...D.slice(0,p),rr,...D.slice(p)];h.set(Y,nr)};P(0,V),P(1,k),P(2,W)}}return h}function nt(r,t=2,e,n=!1){if(typeof t!="number")throw new Error("vector_norm: ord must be a number");if(e==null){let c=r.ndim===1?r:et(r),l=c.size,m;if(t===1/0){m=0;for(let d=0;d<l;d++)m=Math.max(m,Math.abs(Number(c.get(d))))}else if(t===-1/0){m=1/0;for(let d=0;d<l;d++)m=Math.min(m,Math.abs(Number(c.get(d))))}else if(t===0){m=0;for(let d=0;d<l;d++)Number(c.get(d))!==0&&m++}else if(t===1){m=0;for(let d=0;d<l;d++)m+=Math.abs(Number(c.get(d)))}else if(t===2){m=0;for(let d=0;d<l;d++){let y=Number(c.get(d));m+=y*y}m=Math.sqrt(m)}else{m=0;for(let d=0;d<l;d++)m+=Math.pow(Math.abs(Number(c.get(d))),t);m=Math.pow(m,1/t)}if(n){let d=new Array(r.ndim).fill(1),y=N.zeros(d,"float64");return y.set(new Array(r.ndim).fill(0),m),y}return m}let o=e<0?r.ndim+e:e;if(o<0||o>=r.ndim)throw new Error(`vector_norm: axis ${e} out of bounds for array with ${r.ndim} dimensions`);let a=n?[...r.shape.slice(0,o),1,...r.shape.slice(o+1)]:[...r.shape.slice(0,o),...r.shape.slice(o+1)];if(a.length===0)return nt(r,t,null,!1);let i=N.zeros(a,"float64"),s=r.shape[o],u=a.reduce((c,l)=>c*l,1);for(let c=0;c<u;c++){let l=c,m=[];for(let f=a.length-1;f>=0;f--)m[f]=l%a[f],l=Math.floor(l/a[f]);let d=n?[...m.slice(0,o),0,...m.slice(o+1)]:[...m.slice(0,o),0,...m.slice(o)],y;if(t===1/0){y=0;for(let f=0;f<s;f++)d[o]=f,y=Math.max(y,Math.abs(Number(r.get(...d))))}else if(t===-1/0){y=1/0;for(let f=0;f<s;f++)d[o]=f,y=Math.min(y,Math.abs(Number(r.get(...d))))}else if(t===0){y=0;for(let f=0;f<s;f++)d[o]=f,Number(r.get(...d))!==0&&y++}else if(t===1){y=0;for(let f=0;f<s;f++)d[o]=f,y+=Math.abs(Number(r.get(...d)))}else if(t===2){y=0;for(let f=0;f<s;f++){d[o]=f;let p=Number(r.get(...d));y+=p*p}y=Math.sqrt(y)}else{y=0;for(let f=0;f<s;f++)d[o]=f,y+=Math.pow(Math.abs(Number(r.get(...d))),t);y=Math.pow(y,1/t)}i.set(m,y)}return i}function Wr(r,t="fro",e=!1){if(r.ndim!==2)throw new Error(`matrix_norm: input must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,a;if(t==="fro"){a=0;for(let i=0;i<n;i++)for(let s=0;s<o;s++){let u=Number(r.get(i,s));a+=u*u}a=Math.sqrt(a)}else if(t==="nuc"){let{s:i}=kr(r);a=0;for(let s=0;s<i.size;s++)a+=Number(i.get(s))}else if(t===1){a=0;for(let i=0;i<o;i++){let s=0;for(let u=0;u<n;u++)s+=Math.abs(Number(r.get(u,i)));a=Math.max(a,s)}}else if(t===-1){a=1/0;for(let i=0;i<o;i++){let s=0;for(let u=0;u<n;u++)s+=Math.abs(Number(r.get(u,i)));a=Math.min(a,s)}}else if(t===1/0){a=0;for(let i=0;i<n;i++){let s=0;for(let u=0;u<o;u++)s+=Math.abs(Number(r.get(i,u)));a=Math.max(a,s)}}else if(t===-1/0){a=1/0;for(let i=0;i<n;i++){let s=0;for(let u=0;u<o;u++)s+=Math.abs(Number(r.get(i,u)));a=Math.min(a,s)}}else if(t===2){let{s:i}=kr(r);a=Number(i.get(0))}else if(t===-2){let{s:i}=kr(r);a=Number(i.get(i.size-1))}else throw new Error(`matrix_norm: invalid ord value: ${t}`);if(e){let i=N.zeros([1,1],"float64");return i.set([0,0],a),i}return a}function La(r,t=null,e=null,n=!1){if(t===null)return e===null?nt(r,2,null,n):typeof e=="number"?nt(r,2,e,n):Wr(r,"fro",n);if(Array.isArray(e)){if(e.length!==2)throw new Error("norm: axis must be a 2-tuple for matrix norms");let o=e[0]<0?r.ndim+e[0]:e[0],a=e[1]<0?r.ndim+e[1]:e[1];if(r.ndim!==2||o!==0&&o!==1||a!==0&&a!==1||o===a)throw new Error("norm: complex axis specification not yet supported");return Wr(r,t,n)}if(r.ndim===2&&e===null&&(t==="fro"||t==="nuc"))return Wr(r,t,n);if(typeof t!="number"&&t!==null)throw new Error(`norm: ord '${t}' not valid for vector norm`);return nt(r,t??2,e,n)}function rn(r,t="reduced"){if(r.ndim!==2)throw new Error(`qr: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,o=Math.min(e,n),a=N.zeros([e,n],"float64");for(let y=0;y<e;y++)for(let f=0;f<n;f++)a.set([y,f],Number(r.get(y,f)));let i=[],s=[];for(let y=0;y<o;y++){let f=e-y,p=[];for(let D=y;D<e;D++)p.push(Number(a.get(D,y)));let g=0;for(let D=0;D<f;D++)g+=p[D]*p[D];if(g=Math.sqrt(g),g<1e-15){i.push(p),s.push(0);continue}let h=p[0]>=0?1:-1,b=p[0]+h*g,A=[1];for(let D=1;D<f;D++)A.push(p[D]/b);let S=h*b/g;s.push(S),i.push(A);for(let D=y;D<n;D++){let w=0;for(let x=0;x<f;x++)w+=A[x]*Number(a.get(y+x,D));for(let x=0;x<f;x++)a.set([y+x,D],Number(a.get(y+x,D))-S*A[x]*w)}}if(t==="raw"){let y=N.zeros([e,n],"float64");for(let p=0;p<e;p++)for(let g=0;g<n;g++)y.set([p,g],Number(a.get(p,g)));let f=N.zeros([o],"float64");for(let p=0;p<o;p++)f.set([p],s[p]);return{h:y,tau:f}}if(t==="r"){let y=N.zeros([o,n],"float64");for(let f=0;f<o;f++)for(let p=f;p<n;p++)y.set([f,p],Number(a.get(f,p)));return y}let u=t==="complete"?e:o,c=N.zeros([e,u],"float64");for(let y=0;y<Math.min(e,u);y++)c.set([y,y],1);for(let y=o-1;y>=0;y--){let f=i[y],p=s[y],g=e-y;for(let h=y;h<u;h++){let b=0;for(let A=0;A<g;A++)b+=f[A]*Number(c.get(y+A,h));for(let A=0;A<g;A++)c.set([y+A,h],Number(c.get(y+A,h))-p*f[A]*b)}}let l=N.zeros([e,u],"float64");for(let y=0;y<e;y++)for(let f=0;f<u;f++)l.set([y,f],Number(c.get(y,f)));let m=t==="complete"?e:o,d=N.zeros([m,n],"float64");for(let y=0;y<m;y++)for(let f=0;f<n;f++)f>=y&&d.set([y,f],Number(a.get(y,f)));return{q:l,r:d}}function Wa(r,t=!1){if(r.ndim!==2)throw new Error(`cholesky: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`cholesky: matrix must be square, got ${e}x${n}`);let o=e,a=N.zeros([o,o],"float64");for(let i=0;i<o;i++)for(let s=0;s<=i;s++){let u=0;if(i===s){for(let l=0;l<s;l++)u+=Number(a.get(s,l))**2;let c=Number(r.get(s,s))-u;if(c<0)throw new Error("cholesky: matrix is not positive definite");a.set([s,s],Math.sqrt(c))}else{for(let l=0;l<s;l++)u+=Number(a.get(i,l))*Number(a.get(s,l));let c=Number(a.get(s,s));if(Math.abs(c)<1e-15)throw new Error("cholesky: matrix is not positive definite");a.set([i,s],(Number(r.get(i,s))-u)/c)}}if(t){let i=N.zeros([o,o],"float64");for(let s=0;s<o;s++)for(let u=s;u<o;u++)i.set([s,u],Number(a.get(u,s)));return i}return a}function kr(r){if(r.ndim!==2)throw new Error(`svd: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape,n=Math.min(t,e),o=N.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let d=0;d<e;d++){let y=0;for(let f=0;f<t;f++)y+=Number(r.get(f,m))*Number(r.get(f,d));o.set([m,d],y)}let{values:a,vectors:i}=tn(o),s=Array.from({length:e},(m,d)=>d);s.sort((m,d)=>a[d]-a[m]);let u=N.zeros([n],"float64");for(let m=0;m<n;m++){let d=a[s[m]];u.set([m],Math.sqrt(Math.max(0,d)))}let c=N.zeros([e,e],"float64");for(let m=0;m<e;m++)for(let d=0;d<e;d++)c.set([m,d],i[d][s[m]]);let l=N.zeros([t,t],"float64");for(let m=0;m<t;m++)for(let d=0;d<n;d++){let y=Number(u.get(d));if(y>1e-10){let f=0;for(let p=0;p<e;p++)f+=Number(r.get(m,p))*Number(c.get(d,p));l.set([m,d],f/y)}}if(t>n)for(let m=n;m<t;m++){let d=new Array(t).fill(0);d[m]=1;for(let f=0;f<m;f++){let p=0;for(let g=0;g<t;g++)p+=d[g]*Number(l.get(g,f));for(let g=0;g<t;g++)d[g]=d[g]-p*Number(l.get(g,f))}let y=0;for(let f=0;f<t;f++)y+=d[f]*d[f];if(y=Math.sqrt(y),y>1e-10)for(let f=0;f<t;f++)l.set([f,m],d[f]/y)}return{u:l,s:u,vt:c}}function tn(r){let t=r.shape[0],e=100*t*t,n=1e-10,o=[];for(let s=0;s<t;s++){o.push([]);for(let u=0;u<t;u++)o[s].push(Number(r.get(s,u)))}let a=[];for(let s=0;s<t;s++){a.push([]);for(let u=0;u<t;u++)a[s].push(s===u?1:0)}for(let s=0;s<e;s++){let u=0,c=0,l=1;for(let A=0;A<t;A++)for(let S=A+1;S<t;S++)Math.abs(o[A][S])>u&&(u=Math.abs(o[A][S]),c=A,l=S);if(u<n)break;let m=o[c][c],d=o[l][l],y=o[c][l],f;Math.abs(m-d)<1e-15?f=Math.PI/4:f=.5*Math.atan2(2*y,d-m);let p=Math.cos(f),g=Math.sin(f),h=p*p*m+g*g*d-2*g*p*y,b=g*g*m+p*p*d+2*g*p*y;o[c][c]=h,o[l][l]=b,o[c][l]=0,o[l][c]=0;for(let A=0;A<t;A++)if(A!==c&&A!==l){let S=o[A][c],D=o[A][l];o[A][c]=p*S-g*D,o[c][A]=o[A][c],o[A][l]=g*S+p*D,o[l][A]=o[A][l]}for(let A=0;A<t;A++){let S=a[A][c],D=a[A][l];a[A][c]=p*S-g*D,a[A][l]=g*S+p*D}}let i=[];for(let s=0;s<t;s++)i.push(o[s][s]);return{values:i,vectors:a}}function en(r,t=!0,e=!0){let n=kr(r);if(!e)return n.s;if(!t){let[o,a]=r.shape,i=Math.min(o,a),s=N.zeros([o,i],"float64");for(let c=0;c<o;c++)for(let l=0;l<i;l++)s.set([c,l],Number(n.u.get(c,l)));let u=N.zeros([i,a],"float64");for(let c=0;c<i;c++)for(let l=0;l<a;l++)u.set([c,l],Number(n.vt.get(c,l)));return{u:s,s:n.s,vt:u}}return n}function Ga(r){if(r.ndim!==2)throw new Error(`det: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`det: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return 1;let o=r.data;if(n===1)return Number(o[0]);if(n===2)return Number(o[0])*Number(o[3])-Number(o[1])*Number(o[2]);let{lu:a,sign:i}=Zt(r),s=a.data,u=i;for(let c=0;c<n;c++)u*=s[c*n+c];return u}function Zt(r){let[t,e]=r.shape,n=t,o=e,a=N.zeros([n,o],"float64"),i=a.data,s=r.data;for(let l=0;l<n*o;l++)i[l]=Number(s[l]);let u=Array.from({length:n},(l,m)=>m),c=1;for(let l=0;l<Math.min(n,o);l++){let m=Math.abs(i[l*o+l]),d=l;for(let f=l+1;f<n;f++){let p=Math.abs(i[f*o+l]);p>m&&(m=p,d=f)}if(d!==l){for(let p=0;p<o;p++){let g=i[l*o+p];i[l*o+p]=i[d*o+p],i[d*o+p]=g}let f=u[l];u[l]=u[d],u[d]=f,c=-c}let y=i[l*o+l];if(Math.abs(y)>1e-15)for(let f=l+1;f<n;f++){let p=i[f*o+l]/y;i[f*o+l]=p;for(let g=l+1;g<o;g++)i[f*o+g]=i[f*o+g]-p*i[l*o+g]}}return{lu:a,piv:u,sign:c}}function Nt(r){if(r.ndim!==2)throw new Error(`inv: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`inv: matrix must be square, got ${t}x${e}`);let n=t,{lu:o,piv:a}=Zt(r),i=o.data,s=N.zeros([n,n],"float64"),u=s.data;for(let c=0;c<n;c++){let l=new Float64Array(n);for(let m=0;m<n;m++){let d=a[m]===c?1:0;for(let y=0;y<m;y++)d-=i[m*n+y]*l[y];l[m]=d}for(let m=n-1;m>=0;m--){let d=l[m];for(let f=m+1;f<n;f++)d-=i[m*n+f]*u[f*n+c];let y=i[m*n+m];if(Math.abs(y)<1e-15)throw new Error("inv: singular matrix");u[m*n+c]=d/y}}return s}function ka(r,t){let[e]=r.shape,n=e,{lu:o,piv:a}=Zt(r),i=o.data,s=t.data,u=new Float64Array(n);for(let d=0;d<n;d++)u[d]=Number(s[a[d]]);let c=new Float64Array(n);for(let d=0;d<n;d++){let y=u[d];for(let f=0;f<d;f++)y-=i[d*n+f]*c[f];c[d]=y}let l=N.zeros([n],"float64"),m=l.data;for(let d=n-1;d>=0;d--){let y=c[d];for(let p=d+1;p<n;p++)y-=i[d*n+p]*m[p];let f=i[d*n+d];if(Math.abs(f)<1e-15)throw new Error("solve: singular matrix");m[d]=y/f}return l}function nn(r,t){if(r.ndim!==2)throw new Error(`solve: coefficient matrix must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`solve: coefficient matrix must be square, got ${e}x${n}`);let o=e;if(t.ndim===1){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},)`);return ka(r,t)}if(t.ndim===2){if(t.shape[0]!==o)throw new Error(`solve: incompatible shapes (${e},${n}) and (${t.shape[0]},${t.shape[1]})`);let a=t.shape[1],i=N.zeros([o,a],"float64");for(let s=0;s<a;s++){let u=N.zeros([o],"float64");for(let l=0;l<o;l++)u.set([l],Number(t.get(l,s)));let c=ka(r,u);for(let l=0;l<o;l++)i.set([l,s],Number(c.get(l)))}return i}throw new Error(`solve: b must be 1D or 2D, got ${t.ndim}D`)}function Za(r,t,e=null){if(r.ndim!==2)throw new Error(`lstsq: coefficient matrix must be 2D, got ${r.ndim}D`);let[n,o]=r.shape,{u:a,s:i,vt:s}=kr(r),u=Math.min(n,o),c=e??Math.max(n,o)*Number.EPSILON,m=Number(i.get(0))*c,d=0;for(let b=0;b<u;b++)Number(i.get(b))>m&&d++;let y=t.ndim===1?er(t,[t.size,1]):t,f=y.shape[1];if(y.shape[0]!==n)throw new Error(`lstsq: incompatible shapes (${n},${o}) and (${t.shape.join(",")})`);let p=N.zeros([o,f],"float64");for(let b=0;b<f;b++){let A=new Array(n).fill(0);for(let S=0;S<n;S++)for(let D=0;D<n;D++)A[S]+=Number(a.get(D,S))*Number(y.get(D,b));for(let S=0;S<o;S++){let D=0;for(let w=0;w<u;w++){let x=Number(i.get(w));x>m&&(D+=Number(s.get(w,S))*A[w]/x)}p.set([S,b],D)}}let g;if(n>o){g=N.zeros([f],"float64");for(let b=0;b<f;b++){let A=0;for(let S=0;S<n;S++){let D=0;for(let x=0;x<o;x++)D+=Number(r.get(S,x))*Number(p.get(x,b));let w=D-Number(y.get(S,b));A+=w*w}g.set([b],A)}}else g=N.zeros([0],"float64");return{x:t.ndim===1?er(p,[o]):p,residuals:g,rank:d,s:i}}function Ya(r,t=2){if(r.ndim!==2)throw new Error(`cond: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(t===2||t===-2){let{s}=kr(r),u=Math.min(e,n),c=Number(s.get(0)),l=Number(s.get(u-1));return t===2?l>0?c/l:1/0:c>0?l/c:0}if(e!==n)throw new Error(`cond: matrix must be square for p=${t}`);let o=Wr(r,t),a=Nt(r),i=Wr(a,t);return o*i}function Ha(r,t){if(r.ndim===0)return Number(r.get())!==0?1:0;if(r.ndim===1){for(let i=0;i<r.size;i++)if(Number(r.get(i))!==0)return 1;return 0}if(r.ndim!==2)throw new Error(`matrix_rank: input must be at most 2D, got ${r.ndim}D`);let{s:e}=kr(r),n=Number(e.get(0)),o=t??n*Math.max(r.shape[0],r.shape[1])*Number.EPSILON,a=0;for(let i=0;i<e.size;i++)Number(e.get(i))>o&&a++;return a}function Xa(r,t){if(r.ndim!==2)throw new Error(`matrix_power: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`matrix_power: matrix must be square, got ${e}x${n}`);let o=e;if(!Number.isInteger(t))throw new Error("matrix_power: exponent must be an integer");if(t===0){let c=N.zeros([o,o],"float64");for(let l=0;l<o;l++)c.set([l,l],1);return c}let a=r,i=t;t<0&&(a=Nt(r),i=-t);let s=N.zeros([o,o],"float64");for(let c=0;c<o;c++)s.set([c,c],1);let u=N.zeros([o,o],"float64");for(let c=0;c<o;c++)for(let l=0;l<o;l++)u.set([c,l],Number(a.get(c,l)));for(;i>0;)i&1&&(s=mr(s,u)),u=mr(u,u),i>>=1;return s}function Ja(r,t=1e-15){if(r.ndim!==2)throw new Error(`pinv: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape,{u:o,s:a,vt:i}=kr(r),s=Math.min(e,n),c=Number(a.get(0))*t,l=N.zeros([n,e],"float64");for(let m=0;m<n;m++)for(let d=0;d<e;d++){let y=0;for(let f=0;f<s;f++){let p=Number(a.get(f));p>c&&(y+=Number(i.get(f,m))*Number(o.get(d,f))/p)}l.set([m,d],y)}return l}function on(r){if(r.ndim!==2)throw new Error(`eig: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`eig: matrix must be square, got ${t}x${e}`);let n=t,o=!0;r:for(let c=0;c<n;c++)for(let l=c+1;l<n;l++)if(Math.abs(Number(r.get(c,l))-Number(r.get(l,c)))>1e-10){o=!1;break r}if(o){let{values:c,vectors:l}=tn(r),m=N.zeros([n],"float64"),d=N.zeros([n,n],"float64");for(let y=0;y<n;y++){m.set([y],c[y]);for(let f=0;f<n;f++)d.set([f,y],l[f][y])}return{w:m,v:d}}console.warn("numpy-ts: eig() called on non-symmetric matrix. Complex eigenvalues are not supported; results may be inaccurate. For symmetric matrices, use eigh() instead.");let{values:a,vectors:i}=Fd(r),s=N.zeros([n],"float64"),u=N.zeros([n,n],"float64");for(let c=0;c<n;c++){s.set([c],a[c]);for(let l=0;l<n;l++)u.set([l,c],i[l][c])}return{w:s,v:u}}function Fd(r){let t=r.shape[0],e=1e3,n=1e-10,o=N.zeros([t,t],"float64");for(let u=0;u<t;u++)for(let c=0;c<t;c++)o.set([u,c],Number(r.get(u,c)));let a=N.zeros([t,t],"float64");for(let u=0;u<t;u++)a.set([u,u],1);for(let u=0;u<e;u++){let c=0;for(let y=0;y<t;y++)for(let f=0;f<t;f++)y!==f&&(c+=Number(o.get(y,f))**2);if(Math.sqrt(c)<n*t)break;let l=rn(o,"reduced"),m=l.q,d=l.r;o=mr(d,m),a=mr(a,m)}let i=[];for(let u=0;u<t;u++)i.push(Number(o.get(u,u)));let s=[];for(let u=0;u<t;u++){s.push([]);for(let c=0;c<t;c++)s[u].push(Number(a.get(u,c)))}return{values:i,vectors:s}}function an(r,t="L"){if(r.ndim!==2)throw new Error(`eigh: input must be 2D, got ${r.ndim}D`);let[e,n]=r.shape;if(e!==n)throw new Error(`eigh: matrix must be square, got ${e}x${n}`);let o=e,a=N.zeros([o,o],"float64");for(let m=0;m<o;m++)for(let d=0;d<o;d++)t==="L"?m>=d&&(a.set([m,d],Number(r.get(m,d))),a.set([d,m],Number(r.get(m,d)))):d>=m&&(a.set([m,d],Number(r.get(m,d))),a.set([d,m],Number(r.get(m,d))));let{values:i,vectors:s}=tn(a),u=Array.from({length:o},(m,d)=>d);u.sort((m,d)=>i[m]-i[d]);let c=N.zeros([o],"float64"),l=N.zeros([o,o],"float64");for(let m=0;m<o;m++){c.set([m],i[u[m]]);for(let d=0;d<o;d++)l.set([d,m],s[d][u[m]])}return{w:c,v:l}}function Qa(r){let{w:t}=on(r);return t}function Ka(r,t="L"){let{w:e}=an(r,t);return e}function rs(r,t){let e=Lr(r),n=Lr(t),o=e.shape[0],a=n.shape[0];if(o!==a)throw new Error(`vdot: arrays must have same number of elements, got ${o} and ${a}`);if(M(r.dtype)||M(t.dtype)){let u=0,c=0;for(let l=0;l<o;l++){let m=e.get(l),d=n.get(l),y=m instanceof E?m.re:Number(m),f=m instanceof E?-m.im:0,p=d instanceof E?d.re:Number(d),g=d instanceof E?d.im:0;u+=y*p+f*g,c+=y*g-f*p}return Math.abs(c)<1e-15?u:new E(u,c)}let s=0;for(let u=0;u<o;u++){let c=e.get(u),l=n.get(u);typeof c=="bigint"&&typeof l=="bigint"?s=(typeof s=="bigint"?s:BigInt(s))+c*l:s=(typeof s=="bigint"?Number(s):s)+Number(c)*Number(l)}return s}function sn(r,t,e=-1){let n=r.ndim,o=t.ndim,a=e<0?n+e:e,i=e<0?o+e:e;if(a<0||a>=n)throw new Error(`vecdot: axis ${e} out of bounds for array with ${n} dimensions`);if(i<0||i>=o)throw new Error(`vecdot: axis ${e} out of bounds for array with ${o} dimensions`);let s=r.shape[a],u=t.shape[i];if(s!==u)throw new Error(`vecdot: axis dimensions must match, got ${s} and ${u}`);if(n===1&&o===1)return ot(r,t);let c=[...r.shape.slice(0,a),...r.shape.slice(a+1)],l=[...t.shape.slice(0,i),...t.shape.slice(i+1)],m=s,d=M(r.dtype)||M(t.dtype),y=Z(r.dtype,t.dtype),f=c.length>l.length?c:l;if(f.length===0){let h=d?new E(0,0):0;for(let b=0;b<m;b++){let A=r.get(b),S=t.get(b),D=wr(A,S);if(h instanceof E||D instanceof E){let w=h instanceof E?h:new E(Number(h),0),x=D instanceof E?D:new E(Number(D),0);h=w.add(x)}else typeof h=="bigint"||typeof D=="bigint"?h=BigInt(h)+BigInt(D):h=h+D}return h}let p=N.zeros(f,y),g=f.reduce((h,b)=>h*b,1);for(let h=0;h<g;h++){let b=[],A=h;for(let x=f.length-1;x>=0;x--)b.unshift(A%f[x]),A=Math.floor(A/f[x]);let S=[...b.slice(0,a),0,...b.slice(a)],D=[...b.slice(0,i),0,...b.slice(i)],w=d?new E(0,0):0;for(let x=0;x<m;x++){S[a]=x,D[i]=x;let I=r.get(...S),z=t.get(...D),F=wr(I,z);if(w instanceof E||F instanceof E){let v=w instanceof E?w:new E(Number(w),0),T=F instanceof E?F:new E(Number(F),0);w=v.add(T)}else typeof w=="bigint"||typeof F=="bigint"?w=BigInt(w)+BigInt(F):w=w+F}p.set(b,w)}return p}function un(r){if(r.ndim<2)throw new Error(`matrix_transpose: input must have at least 2 dimensions, got ${r.ndim}D`);let t=Array.from({length:r.ndim},(n,o)=>o),e=t.length-1;return t[e]=e-1,t[e-1]=e,Dt(r,t)}function ts(r,t){return Dt(r,t)}function es(r,t){if(r.ndim<2)throw new Error(`matvec: x1 must have at least 2 dimensions, got ${r.ndim}D`);if(t.ndim<1)throw new Error(`matvec: x2 must have at least 1 dimension, got ${t.ndim}D`);let e=r.shape[r.ndim-2],n=r.shape[r.ndim-1],o=t.shape[t.ndim-1];if(n!==o)throw new Error(`matvec: last axis of x1 (${n}) must match last axis of x2 (${o})`);if(r.ndim===2&&t.ndim===1)return ot(r,t);let a=r.shape.slice(0,-2),i=t.shape.slice(0,-1),s=Math.max(a.length,i.length),u=[...Array(s-a.length).fill(1),...a],c=[...Array(s-i.length).fill(1),...i],l=[];for(let g=0;g<s;g++){let h=u[g],b=c[g];if(h!==1&&b!==1&&h!==b)throw new Error(`matvec: batch dimensions not broadcastable: ${a} vs ${i}`);l.push(Math.max(h,b))}let m=[...l,e],d=Z(r.dtype,t.dtype),y=N.zeros(m,d),f=M(d),p=l.reduce((g,h)=>g*h,1);for(let g=0;g<p;g++){let h=[],b=g;for(let D=l.length-1;D>=0;D--)h.unshift(b%l[D]),b=Math.floor(b/l[D]);let A=h.slice(-(a.length||1)).map((D,w)=>(a[w]??1)===1?0:D),S=h.slice(-(i.length||1)).map((D,w)=>(i[w]??1)===1?0:D);for(let D=0;D<e;D++){let w=f?new E(0,0):0;for(let I=0;I<n;I++){let z=[...A,D,I],F=[...S,I],v=r.get(...z),T=t.get(...F),O=wr(v,T);if(w instanceof E||O instanceof E){let C=w instanceof E?w:new E(Number(w),0),q=O instanceof E?O:new E(Number(O),0);w=C.add(q)}else typeof w=="bigint"||typeof O=="bigint"?w=BigInt(w)+BigInt(O):w=w+O}let x=[...h,D];y.set(x,w)}}return y}function ns(r,t){if(r.ndim<1)throw new Error(`vecmat: x1 must have at least 1 dimension, got ${r.ndim}D`);if(t.ndim<2)throw new Error(`vecmat: x2 must have at least 2 dimensions, got ${t.ndim}D`);let e=r.shape[r.ndim-1],n=t.shape[t.ndim-2],o=t.shape[t.ndim-1];if(e!==n)throw new Error(`vecmat: last axis of x1 (${e}) must match second-to-last axis of x2 (${n})`);if(r.ndim===1&&t.ndim===2)return ot(r,t);let a=r.shape.slice(0,-1),i=t.shape.slice(0,-2),s=Math.max(a.length,i.length),u=[...Array(s-a.length).fill(1),...a],c=[...Array(s-i.length).fill(1),...i],l=[];for(let g=0;g<s;g++){let h=u[g],b=c[g];if(h!==1&&b!==1&&h!==b)throw new Error(`vecmat: batch dimensions not broadcastable: ${a} vs ${i}`);l.push(Math.max(h,b))}let m=[...l,o],d=Z(r.dtype,t.dtype),y=N.zeros(m,d),f=M(d),p=l.reduce((g,h)=>g*h,1);for(let g=0;g<p;g++){let h=[],b=g;for(let D=l.length-1;D>=0;D--)h.unshift(b%l[D]),b=Math.floor(b/l[D]);let A=h.slice(-(a.length||1)).map((D,w)=>(a[w]??1)===1?0:D),S=h.slice(-(i.length||1)).map((D,w)=>(i[w]??1)===1?0:D);for(let D=0;D<o;D++){let w=f?new E(0,0):0;for(let I=0;I<e;I++){let z=[...A,I],F=[...S,I,D],v=r.get(...z),T=t.get(...F),O=wr(v,T);if(w instanceof E||O instanceof E){let C=w instanceof E?w:new E(Number(w),0),q=O instanceof E?O:new E(Number(O),0);w=C.add(q)}else typeof w=="bigint"||typeof O=="bigint"?w=BigInt(w)+BigInt(O):w=w+O}let x=[...h,D];y.set(x,w)}}return y}function os(r){if(r.ndim!==2)throw new Error(`slogdet: input must be 2D, got ${r.ndim}D`);let[t,e]=r.shape;if(t!==e)throw new Error(`slogdet: matrix must be square, got ${t}x${e}`);let n=t;if(n===0)return{sign:1,logabsdet:0};let{lu:o,sign:a}=Zt(r),i=o.data,s=0,u=a;for(let c=0;c<n;c++){let l=i[c*n+c];if(l===0)return{sign:0,logabsdet:-1/0};l<0&&(u=-u),s+=Math.log(Math.abs(l))}return{sign:u,logabsdet:s}}function as(r){return en(r,!0,!1)}function ss(r){if(r.length<2)throw new Error("multi_dot: need at least 2 arrays");if(r.length===2)return mr(r[0],r[1]);let t=r[0];for(let e=1;e<r.length;e++)t=mr(t,r[e]);return t}function is(r,t=2){if(t<=0)throw new Error(`tensorinv: ind must be positive, got ${t}`);let e=r.shape,n=r.ndim;if(n<t)throw new Error(`tensorinv: array has ${n} dimensions, ind=${t} is too large`);let o=1;for(let c=0;c<t;c++)o*=e[c];let a=1;for(let c=t;c<n;c++)a*=e[c];if(o!==a)throw new Error(`tensorinv: product of first ${t} dimensions (${o}) must equal product of remaining dimensions (${a})`);let i=er(r,[o,a]),s=Nt(i),u=[...e.slice(t),...e.slice(0,t)];return er(s,u)}function us(r,t,e){let n=r.shape,o=t.shape,a=r.ndim,i=t.ndim,s;e==null?s=Array.from({length:i},(A,S)=>a-i+S):s=e.map(A=>A<0?a+A:A);let u=[];for(let A=0;A<a;A++)s.includes(A)||u.push(A);let c=[...u,...s],l=Dt(r,c),d=s.map(A=>n[A]).reduce((A,S)=>A*S,1),f=u.map(A=>n[A]).reduce((A,S)=>A*S,1),p=o.reduce((A,S)=>A*S,1);if(d!==p)throw new Error(`tensorsolve: dimensions don't match - sum dimensions product (${d}) != b total elements (${p})`);if(f!==d)throw new Error(`tensorsolve: non-square problem - other dimensions product (${f}) != sum dimensions product (${d})`);let g=er(l,[f,d]),h=er(t,[d]),b=nn(g,h);return er(b,[...o])}var cs=G(()=>{"use strict";K();Q();xr();He()});function ls(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.sqrt(u*u+c*c),m=Math.sqrt((l+u)/2),d=(c>=0?1:-1)*Math.sqrt((l-u)/2);i[s*2]=m,i[s*2+1]=d}return a}return J(r,Math.sqrt,!1)}function fs(r,t){if(typeof t=="number")return Ed(r,t);let e=M(r.dtype),n=M(t.dtype);return e||n?Bd(r,t):X(r,t,Math.pow,"power")}function Bd(r,t){let e=M(r.dtype),n=M(t.dtype),o=r.dtype==="complex128"||t.dtype==="complex128"||t.dtype==="float64"?"complex128":"complex64",a=Array.from(r.shape),i=r.size,s=N.zeros(a,o),u=s.data;for(let c=0;c<i;c++){let l,m;if(e){let S=r.data;l=S[c*2],m=S[c*2+1]}else l=Number(r.iget(c)),m=0;let d,y;if(n){let S=t.data;d=S[c*2],y=S[c*2+1]}else d=Number(t.iget(c)),y=0;let f=Math.sqrt(l*l+m*m),p=Math.atan2(m,l),g=Math.log(f),h=d*g-y*p,b=d*p+y*g,A=Math.exp(h);u[c*2]=A*Math.cos(b),u[c*2+1]=A*Math.sin(b)}return s}function Ed(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size;if(M(e)){let m=N.zeros(n,e),d=o,y=m.data;for(let f=0;f<a;f++){let p=d[f*2],g=d[f*2+1],h=Math.sqrt(p*p+g*g),b=Math.atan2(g,p),A=Math.pow(h,t),S=b*t;y[f*2]=A*Math.cos(S),y[f*2+1]=A*Math.sin(S)}return m}let u=e!=="float32"&&e!=="float64"&&(t<0||!Number.isInteger(t))?"float64":e,c=N.zeros(n,u),l=c.data;if(B(e))if(B(u)&&Number.isInteger(t)&&t>=0){let m=o,d=l;for(let y=0;y<a;y++)d[y]=m[y]**BigInt(t)}else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);else for(let m=0;m<a;m++)l[m]=Math.pow(Number(o[m]),t);return c}function ms(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.exp(u);i[s*2]=l*Math.cos(c),i[s*2+1]=l*Math.sin(c)}return a}return J(r,Math.exp,!1)}function ps(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=Math.LN2,i=N.zeros(e,t),s=i.data;for(let u=0;u<n;u++){let c=o[u*2],l=o[u*2+1],m=Math.exp(c*a),d=l*a;s[u*2]=m*Math.cos(d),s[u*2+1]=m*Math.sin(d)}return i}return J(r,e=>Math.pow(2,e),!1)}function ys(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.exp(u);i[s*2]=l*Math.cos(c)-1,i[s*2+1]=l*Math.sin(c)}return a}return J(r,Math.expm1,!1)}function ds(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.sqrt(u*u+c*c),m=Math.atan2(c,u);i[s*2]=Math.log(l),i[s*2+1]=m}return a}return J(r,Math.log,!1)}function gs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN2,i=N.zeros(e,t),s=i.data;for(let u=0;u<n;u++){let c=o[u*2],l=o[u*2+1],m=Math.sqrt(c*c+l*l),d=Math.atan2(l,c);s[u*2]=Math.log(m)*a,s[u*2+1]=d*a}return i}return J(r,Math.log2,!1)}function As(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=1/Math.LN10,i=N.zeros(e,t),s=i.data;for(let u=0;u<n;u++){let c=o[u*2],l=o[u*2+1],m=Math.sqrt(c*c+l*l),d=Math.atan2(l,c);s[u*2]=Math.log(m)*a,s[u*2+1]=d*a}return i}return J(r,Math.log10,!1)}function bs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=1+u,m=Math.sqrt(l*l+c*c),d=Math.atan2(c,l);i[s*2]=Math.log(m),i[s*2+1]=d}return a}return J(r,Math.log1p,!1)}function hs(r,t){return U(r.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t!="number"&&U(t.dtype,"logaddexp","logaddexp is not supported for complex numbers."),typeof t=="number"?Od(r,t):Td(r,t)}function Td(r,t){let e=Ur(r.shape,t.shape),n=e.reduce((c,l)=>c*l,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",s=N.zeros(e,i),u=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.iget(c))),m=(B(a),Number(t.iget(c))),d=Math.max(l,m),y=Math.min(l,m);u[c]=d+Math.log1p(Math.exp(y-d))}return s}function Od(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),s=i.data;for(let u=0;u<o;u++){let c=(B(e),Number(r.data[u])),l=Math.max(c,t),m=Math.min(c,t);s[u]=l+Math.log1p(Math.exp(m-l))}return i}function Ss(r,t){return U(r.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t!="number"&&U(t.dtype,"logaddexp2","logaddexp2 is not supported for complex numbers."),typeof t=="number"?Ud(r,t):Cd(r,t)}function Cd(r,t){let e=Ur(r.shape,t.shape),n=e.reduce((l,m)=>l*m,1),o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",s=N.zeros(e,i),u=s.data,c=Math.LOG2E;for(let l=0;l<n;l++){let m=(B(o),Number(r.iget(l))),d=(B(a),Number(t.iget(l))),y=Math.max(m,d),f=Math.min(m,d);u[l]=y+Math.log1p(Math.pow(2,f-y))*c}return s}function Ud(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=e==="float32"?"float32":"float64",i=N.zeros(n,a),s=i.data,u=Math.LOG2E;for(let c=0;c<o;c++){let l=(B(e),Number(r.data[c])),m=Math.max(l,t),d=Math.min(l,t);s[c]=m+Math.log1p(Math.pow(2,d-m))*u}return i}var Ds=G(()=>{"use strict";K();Er();Q()});function Ns(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1];i[s*2]=Math.sin(u)*Math.cosh(c),i[s*2+1]=Math.cos(u)*Math.sinh(c)}return a}return J(r,Math.sin,!1)}function xs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1];i[s*2]=Math.cos(u)*Math.cosh(c),i[s*2+1]=-Math.sin(u)*Math.sinh(c)}return a}return J(r,Math.cos,!1)}function ws(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.cos(2*u)+Math.cosh(2*c);i[s*2]=Math.sin(2*u)/l,i[s*2+1]=Math.sinh(2*c)/l}return a}return J(r,Math.tan,!1)}function Is(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=-c,m=u,d=u*u-c*c,y=2*u*c,f=1-d,p=-y,g=Math.sqrt(f*f+p*p),h=Math.sqrt((g+f)/2),b=(p>=0?1:-1)*Math.sqrt((g-f)/2),A=l+h,S=m+b,D=Math.sqrt(A*A+S*S),w=Math.log(D),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&u>1&&(z=-z),i[s*2]=I,i[s*2+1]=z}return a}return J(r,Math.asin,!1)}function zs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=u*u-c*c,m=2*u*c,d=1-l,y=-m,f=Math.sqrt(d*d+y*y),p=Math.sqrt((f+d)/2),h=-((y>=0?1:-1)*Math.sqrt((f-d)/2)),b=p,A=u+h,S=c+b,D=Math.sqrt(A*A+S*S),w=Math.log(D),I=Math.atan2(S,A),z=-w;Math.abs(c)<1e-15&&u>1&&(z=-z),i[s*2]=I,i[s*2+1]=z}return a}return J(r,Math.acos,!1)}function _s(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],l=-o[s*2+1],m=u,d=1-l,y=-m,f=1+l,p=m,g=f*f+p*p,h=(d*f+y*p)/g,b=(y*f-d*p)/g,A=Math.sqrt(h*h+b*b),S=Math.log(A),D=Math.atan2(b,h);i[s*2]=-D/2,i[s*2+1]=S/2}return a}return J(r,Math.atan,!1)}function vs(r,t){return U(r.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t!="number"&&U(t.dtype,"arctan2","arctan2 is only defined for real numbers."),typeof t=="number"?kd(r,t):Rd(r,t)}function Rd(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",s=N.zeros(e,i),u=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));u[c]=Math.atan2(l,m)}return s}function kd(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",s=N.zeros(n,i),u=s.data;if(B(e))for(let c=0;c<a;c++)u[c]=Math.atan2(Number(o[c]),t);else for(let c=0;c<a;c++)u[c]=Math.atan2(Number(o[c]),t);return s}function Fs(r,t){return U(r.dtype,"hypot","hypot is only defined for real numbers."),typeof t!="number"&&U(t.dtype,"hypot","hypot is only defined for real numbers."),typeof t=="number"?Vd(r,t):qd(r,t)}function qd(r,t){let e=Array.from(r.shape),n=r.size,o=r.dtype,a=t.dtype,i=o==="float32"&&a==="float32"?"float32":"float64",s=N.zeros(e,i),u=s.data;for(let c=0;c<n;c++){let l=(B(o),Number(r.data[c])),m=(B(a),Number(t.data[c]));u[c]=Math.hypot(l,m)}return s}function Vd(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",s=N.zeros(n,i),u=s.data;if(B(e))for(let c=0;c<a;c++)u[c]=Math.hypot(Number(o[c]),t);else for(let c=0;c<a;c++)u[c]=Math.hypot(Number(o[c]),t);return s}function Ms(r){U(r.dtype,"degrees","degrees is only defined for real numbers.");let t=180/Math.PI;return J(r,e=>e*t,!1)}function Bs(r){U(r.dtype,"radians","radians is only defined for real numbers.");let t=Math.PI/180;return J(r,e=>e*t,!1)}var Es=G(()=>{"use strict";K();Er();Q()});function Ts(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1];i[s*2]=Math.sinh(u)*Math.cos(c),i[s*2+1]=Math.cosh(u)*Math.sin(c)}return a}return J(r,Math.sinh,!1)}function Os(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1];i[s*2]=Math.cosh(u)*Math.cos(c),i[s*2+1]=Math.sinh(u)*Math.sin(c)}return a}return J(r,Math.cosh,!1)}function Cs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=Math.cosh(2*u)+Math.cos(2*c);i[s*2]=Math.sinh(2*u)/l,i[s*2+1]=Math.sin(2*c)/l}return a}return J(r,Math.tanh,!1)}function Us(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=u*u-c*c,m=2*u*c,d=l+1,y=m,f=Math.sqrt(d*d+y*y),p=Math.sqrt((f+d)/2),g=(y>=0?1:-1)*Math.sqrt((f-d)/2),h=u+p,b=c+g,A=Math.sqrt(h*h+b*b);i[s*2]=Math.log(A),i[s*2+1]=Math.atan2(b,h)}return a}return J(r,Math.asinh,!1)}function $s(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=u*u-c*c,m=2*u*c,d=l-1,y=m,f=Math.sqrt(d*d+y*y),p=Math.sqrt((f+d)/2),g=(y>=0?1:-1)*Math.sqrt((f-d)/2),h=u+p,b=c+g,A=Math.sqrt(h*h+b*b),S=Math.log(A),D=Math.atan2(b,h);Math.abs(c)<1e-15&&u<1&&(D=-D),i[s*2]=S,i[s*2+1]=D}return a}return J(r,Math.acosh,!1)}function Rs(r){let t=r.dtype;if(M(t)){let e=Array.from(r.shape),n=r.size,o=r.data,a=N.zeros(e,t),i=a.data;for(let s=0;s<n;s++){let u=o[s*2],c=o[s*2+1],l=1+u,m=c,d=1-u,y=-c,f=d*d+y*y,p=(l*d+m*y)/f,g=(m*d-l*y)/f,h=Math.sqrt(p*p+g*g),b=Math.log(h),A=Math.atan2(g,p);i[s*2]=b/2,i[s*2+1]=A/2}return a}return J(r,Math.atanh,!1)}var ks=G(()=>{"use strict";K();Er();Q()});function Yt(r,t){let e=r.shape,n=e.length,o=t.length;if(o<n)throw new Error("input operand has more dimensions than allowed by the axis remapping");let a=Sr([Array.from(e),t]);if(a===null)throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);for(let i=0;i<o;i++)if(a[i]!==t[i])throw new Error(`operands could not be broadcast together with shape (${e.join(",")}) (${t.join(",")})`);return gr(r,t)}function qs(r){if(r.length===0)return[];if(r.length===1)return[r[0]];let t=r.map(n=>Array.from(n.shape)),e=Sr(t);if(e===null)throw new Error(`operands could not be broadcast together with shapes ${t.map(n=>`(${n.join(",")})`).join(" ")}`);return r.map(n=>gr(n,e))}function Vs(r,t,e){let n=r.shape,o=n.length,a=r.dtype;if(e===void 0){let f=r.size;for(let b of t){let A=b<0?f+b:b;if(A<0||A>=f)throw new Error(`index ${b} is out of bounds for axis 0 with size ${f}`)}let p=t.length,g=j(a);if(!g)throw new Error(`Cannot take from array with dtype ${a}`);let h=new g(p);for(let b=0;b<p;b++){let A=t[b];A<0&&(A=f+A);let S=r.iget(A);B(a),h[b]=S}return N.fromData(h,[p],a)}let i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[i];for(let f of t){let p=f<0?s+f:f;if(p<0||p>=s)throw new Error(`index ${f} is out of bounds for axis ${i} with size ${s}`)}let u=Array.from(n);u[i]=t.length;let c=u.reduce((f,p)=>f*p,1),l=j(a);if(!l)throw new Error(`Cannot take from array with dtype ${a}`);let m=new l(c),d=ur(u),y=new Array(o).fill(0);for(let f=0;f<c;f++){let p=[...y],g=y[i],h=t[g];h<0&&(h=s+h),p[i]=h;let b=r.get(...p),A=0;for(let S=0;S<o;S++)A+=y[S]*d[S];B(a),m[A]=b;for(let S=o-1;S>=0&&(y[S]++,!(y[S]<u[S]));S--)y[S]=0}return N.fromData(m,u,a)}function Ps(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=new Array(t.length).fill(e);else{a=[];for(let i=0;i<e.size;i++){let s=e.iget(i);a.push(s instanceof E?s.re:s)}if(a.length===1)a=new Array(t.length).fill(a[0]);else if(a.length!==t.length){let i=[...a];a=[];for(let s=0;s<t.length;s++)a.push(i[s%i.length])}}for(let i=0;i<t.length;i++){let s=t[i];if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`index ${t[i]} is out of bounds for axis 0 with size ${n}`);let u=a[i];B(o)?typeof u!="bigint"&&(u=BigInt(Math.round(Number(u)))):typeof u=="bigint"&&(u=Number(u)),r.iset(s,u)}}function js(r,t){if(t.length===0)throw new Error("choices cannot be empty");let e=r.shape,n=t.length,o=t[0].dtype,a=t.map(d=>Array.from(d.shape));a.unshift(Array.from(e));let i=Sr(a);if(i===null)throw new Error("operands could not be broadcast together");let s=gr(r,i),u=t.map(d=>gr(d,i)),c=i.reduce((d,y)=>d*y,1),l=j(o);if(!l)throw new Error(`Cannot choose with dtype ${o}`);let m=new l(c);for(let d=0;d<c;d++){let y=Number(s.iget(d));if(y<0||y>=n)throw new Error(`index ${y} is out of bounds for axis 0 with size ${n}`);let f=u[y].iget(d);B(o),m[d]=f}return N.fromData(m,i,o)}function Ls(r,t,e=!1){if(r.ndim!==t.ndim)return!1;for(let o=0;o<r.ndim;o++)if(r.shape[o]!==t.shape[o])return!1;let n=r.size;for(let o=0;o<n;o++){let a=r.iget(o),i=t.iget(o);if(e){let s=typeof a=="number"&&Number.isNaN(a),u=typeof i=="number"&&Number.isNaN(i);if(s&&u)continue}if(a!==i)return!1}return!0}function Ws(r,t,e){let n=r.shape,o=n.length,a=r.dtype,i=e<0?o+e:e;if(i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=t.shape;if(s.length!==o)throw new Error(`indices and arr must have the same number of dimensions, got ${s.length} vs ${o}`);for(let p=0;p<o;p++)if(p!==i&&s[p]!==n[p]&&s[p]!==1&&n[p]!==1)throw new Error(`index ${s[p]} is out of bounds for size ${n[p]} in dimension ${p}`);let u=Array.from(s),c=u.reduce((p,g)=>p*g,1),l=j(a);if(!l)throw new Error(`Cannot take_along_axis with dtype ${a}`);let m=new l(c),d=ur(n),y=ur(s),f=n[i];for(let p=0;p<c;p++){let g=new Array(o),h=p;for(let x=o-1;x>=0;x--)g[x]=h%u[x],h=Math.floor(h/u[x]);let b=0;for(let x=0;x<o;x++){let I=s[x]===1?0:g[x];b+=I*y[x]}let A=Number(t.iget(b));if(A<0&&(A=f+A),A<0||A>=f)throw new Error(`index ${A} is out of bounds for axis ${i} with size ${f}`);let S=[...g];S[i]=A;let D=0;for(let x=0;x<o;x++){let I=n[x]===1?0:S[x];D+=I*d[x]}let w=r.iget(D);B(a),m[p]=w}return N.fromData(m,u,a)}function Gs(r,t,e,n){let o=r.shape,a=o.length,i=r.dtype,s=n<0?a+n:n;if(s<0||s>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let u=t.shape,c=e.shape;if(u.length!==a||c.length!==a)throw new Error("indices, arr, and values must have same ndim");let l=o[s],m=ur(o),d=ur(u),y=ur(c),f=u.reduce((p,g)=>p*g,1);for(let p=0;p<f;p++){let g=new Array(a),h=p;for(let I=a-1;I>=0;I--)g[I]=h%u[I],h=Math.floor(h/u[I]);let b=0;for(let I=0;I<a;I++)b+=g[I]*d[I];let A=Number(t.iget(b));if(A<0&&(A=l+A),A<0||A>=l)throw new Error(`index ${A} is out of bounds for axis ${s} with size ${l}`);let S=0;for(let I=0;I<a;I++){let z=c[I]===1?0:g[I];S+=z*y[I]}let D=e.iget(S),w=[...g];w[s]=A;let x=0;for(let I=0;I<a;I++)x+=w[I]*m[I];B(i)?typeof D!="bigint"&&(D=BigInt(Math.round(Number(D)))):typeof D=="bigint"&&(D=Number(D)),r.iset(x,D)}}function Zs(r,t,e){let n=r.size,o=r.dtype,a;if(typeof e=="number"||typeof e=="bigint")a=[e];else{a=[];for(let s=0;s<e.size;s++){let u=e.iget(s);a.push(u instanceof E?u.re:u)}}let i=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[i%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),i++}}function cn(r,t,e){let n=t.shape,o=n.length,a=t.dtype,i=t.data,s=B(a);if(e===void 0){let b=0,A=Math.min(r.size,t.size);for(let x=0;x<A;x++)r.iget(x)&&b++;let S=j(a);if(!S)throw new Error(`Cannot compress with dtype ${a}`);let D=new S(b),w=0;for(let x=0;x<A;x++)r.iget(x)&&(D[w]=i[x],w++);return N.fromData(D,[b],a)}let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let c=n[u],l=Math.min(r.size,c),m=[];for(let b=0;b<l;b++)r.iget(b)&&m.push(b);let d=m.length,y=[...n];y[u]=d;let f=y.reduce((b,A)=>b*A,1),p=j(a);if(!p)throw new Error(`Cannot compress with dtype ${a}`);let g=new p(f),h=ur(n);if(u===0){let b=h[0],A=n.slice(1).reduce((D,w)=>D*w,1),S=0;for(let D=0;D<d;D++){let x=m[D]*b;if(s){let I=i,z=g;for(let F=0;F<A;F++)z[S++]=I[x+F]}else{let I=i,z=g;for(let F=0;F<A;F++)z[S++]=I[x+F]}}}else{let b=n.slice(0,u).reduce((D,w)=>D*w,1),A=n.slice(u+1).reduce((D,w)=>D*w,1),S=0;for(let D=0;D<b;D++)for(let w=0;w<d;w++){let x=m[w],I=0,z=D;for(let F=u-1;F>=0;F--){let v=z%n[F];z=Math.floor(z/n[F]),I+=v*h[F]}if(I+=x*h[u],s){let F=i,v=g;for(let T=0;T<A;T++)v[S++]=F[I+T]}else{let F=i,v=g;for(let T=0;T<A;T++)v[S++]=F[I+T]}}}return N.fromData(g,y,a)}function Ys(r,t,e=0){if(r.length!==t.length)throw new Error("condlist and choicelist must have same length");if(r.length===0)throw new Error("condlist and choicelist cannot be empty");let n=[...r.map(d=>Array.from(d.shape)),...t.map(d=>Array.from(d.shape))],o=Sr(n);if(o===null)throw new Error("condlist and choicelist arrays could not be broadcast together");let a=t[0].dtype,i=o.reduce((d,y)=>d*y,1),s=j(a);if(!s)throw new Error(`Cannot select with dtype ${a}`);let u=e;B(a)?u=typeof e=="bigint"?e:BigInt(e):u=typeof e=="bigint"?Number(e):e;let c=new s(i);for(let d=0;d<i;d++)B(a),c[d]=u;let l=r.map(d=>gr(d,o)),m=t.map(d=>gr(d,o));for(let d=0;d<i;d++)for(let y=0;y<r.length;y++)if(l[y].iget(d)){let f=m[y].iget(d);B(a),c[d]=f;break}return N.fromData(c,o,a)}function Hs(r,t,e){let n=r.size,o=r.dtype,a=[];for(let s=0;s<e.size;s++){let u=e.iget(s);a.push(u instanceof E?u.re:u)}if(a.length===0)return;let i=0;for(let s=0;s<n;s++)if(t.iget(s)){let c=a[i%a.length];B(o)?typeof c!="bigint"&&(c=BigInt(Math.round(Number(c)))):typeof c=="bigint"&&(c=Number(c)),r.iset(s,c),i++}}function ln(r,t=2){if(t<1)throw new Error("ndim must be at least 1");let e=new Int32Array(r);for(let o=0;o<r;o++)e[o]=o;let n=[];for(let o=0;o<t;o++)n.push(N.fromData(new Int32Array(e),[r],"int32"));return n}function Xs(r){let t=r.shape,e=t.length;if(e<2)throw new Error("array must be at least 2-D");let n=t[0];for(let o=1;o<e;o++)if(t[o]!==n)throw new Error("All dimensions of input must be equal");return ln(n,e)}function fn(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let s=0;s<=Math.min(i+t,n-1);s++)s>=0&&(o.push(i),a.push(s));return[N.fromData(new Int32Array(o),[o.length],"int32"),N.fromData(new Int32Array(a),[a.length],"int32")]}function Js(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return fn(e[0],t,e[1])}function mn(r,t=0,e){let n=e??r,o=[],a=[];for(let i=0;i<r;i++)for(let s=Math.max(i+t,0);s<n;s++)o.push(i),a.push(s);return[N.fromData(new Int32Array(o),[o.length],"int32"),N.fromData(new Int32Array(a),[a.length],"int32")]}function Qs(r,t=0){let e=r.shape;if(e.length!==2)throw new Error("array must be 2-D");return mn(e[0],t,e[1])}function Ks(r,t,e=0){let n=t(r,e),o=n.shape;if(o.length!==2||o[0]!==r||o[1]!==r)throw new Error("mask_func must return n x n array");let a=[],i=[];for(let s=0;s<r;s++)for(let u=0;u<r;u++)n.get(s,u)&&(a.push(s),i.push(u));return[N.fromData(new Int32Array(a),[a.length],"int32"),N.fromData(new Int32Array(i),[i.length],"int32")]}function ri(r,t="int32"){let e=r.length,n=[e,...r],o=n.reduce((u,c)=>u*c,1),a=j(t);if(!a)throw new Error(`Cannot create indices with dtype ${t}`);let i=new a(o),s=r.reduce((u,c)=>u*c,1);for(let u=0;u<e;u++){let c=u*s;for(let l=0;l<s;l++){let m=new Array(e),d=l;for(let f=e-1;f>=0;f--)m[f]=d%r[f],d=Math.floor(d/r[f]);let y=m[u];t==="int64"?i[c+l]=BigInt(y):i[c+l]=y}}return N.fromData(i,n,t)}function ti(...r){let t=r.length,e=[];for(let n=0;n<t;n++){let o=r[n],a=o.size,i=o.dtype,s=new Array(t).fill(1);s[n]=a;let u=j(i);if(!u)throw new Error(`Cannot create ix_ with dtype ${i}`);let c=new u(a);for(let l=0;l<a;l++){let m=o.iget(l);B(i),c[l]=m}e.push(N.fromData(c,s,i))}return e}function ei(r,t,e="raise"){if(r.length!==t.length)throw new Error("multi_index length must equal dims length");if(r.length===0)throw new Error("multi_index cannot be empty");let n=r[0].size,o=t.length,a=new Int32Array(n),i=new Array(o),s=1;for(let u=o-1;u>=0;u--)i[u]=s,s*=t[u];for(let u=0;u<n;u++){let c=0;for(let l=0;l<o;l++){let m=Number(r[l].iget(u)),d=t[l];if(e==="wrap")m=(m%d+d)%d;else if(e==="clip")m=Math.max(0,Math.min(m,d-1));else if(m<0||m>=d)throw new Error(`index ${m} is out of bounds for axis ${l} with size ${d}`);c+=m*i[l]}a[u]=c}return N.fromData(a,[n],"int32")}function ni(r,t,e="C"){let n=t.length,o,a;if(typeof r=="number")o=[r],a=[];else{o=[];for(let l=0;l<r.size;l++)o.push(Number(r.iget(l)));a=Array.from(r.shape)}let i=o.length,s=t.reduce((l,m)=>l*m,1),u=new Array(n);if(e==="C"){let l=1;for(let m=n-1;m>=0;m--)u[m]=l,l*=t[m]}else{let l=1;for(let m=0;m<n;m++)u[m]=l,l*=t[m]}let c=[];for(let l=0;l<n;l++){let m=new Int32Array(i);c.push(N.fromData(m,a.length?a:[1],"int32"))}for(let l=0;l<i;l++){let m=o[l];if(m<0||m>=s)throw new Error(`index ${m} is out of bounds for array with size ${s}`);if(e==="C")for(let d=0;d<n;d++){let y=Math.floor(m/u[d]);m=m%u[d],c[d].data[l]=y%t[d]}else for(let d=n-1;d>=0;d--){let y=Math.floor(m/u[d]);m=m%u[d],c[d].data[l]=y%t[d]}}return typeof r=="number"?c.map(l=>{let m=l.iget(0);return N.fromData(new Int32Array([Number(m)]),[],"int32")}):c}function oi(r,t,e=!1){let n=r.shape,o=n.length;if(o<2)throw new Error("array must be at least 2-d");let a;if(o===2)a=n[1]+1;else{a=1;for(let c=1;c<o;c++){let l=1;for(let m=c;m<o;m++)l*=n[m];a+=l}}let i=r.data,s=r.size,u=Math.min(...n);if(e&&o===2&&(u=Math.max(n[0],n[1])),typeof t=="number")for(let c=0;c<u&&c*a<s;c++){let l=c*a;if(l<s)i[l]=t;else break}else{let c=t.data,l=t.size;for(let m=0;m<u&&m*a<s;m++){let d=m*a;if(d<s)i[d]=c[m%l];else break}}}function ai(r,t,e){let n=Array.from(r.shape),o=n.length;if(t<0&&(t+=o),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=[];for(let i=0;i<o;i++)i!==t&&a.push(n[i]);if(a.length===0){let i=e(r);if(typeof i=="number"){let s=N.zeros([1],r.dtype);return s.data[0]=i,s}return i}if(o===2){let[i,s]=n;if(t===0){let u=[];for(let l=0;l<s;l++){let m=new Float64Array(i);for(let y=0;y<i;y++)m[y]=Number(r.data[y*s+l]);let d=N.fromData(m,[i],"float64");u.push(e(d))}let c=u[0];if(c===void 0)return N.zeros([0],"float64");if(typeof c=="number"){let l=N.zeros([s],"float64");for(let m=0;m<s;m++)l.data[m]=u[m];return l}else{let l=[c.size,s],m=N.zeros(l,"float64");for(let d=0;d<s;d++){let y=u[d];for(let f=0;f<y.size;f++)m.data[f*s+d]=Number(y.data[f])}return m}}else{let u=[];for(let l=0;l<i;l++){let m=new Float64Array(s);for(let y=0;y<s;y++)m[y]=Number(r.data[l*s+y]);let d=N.fromData(m,[s],"float64");u.push(e(d))}let c=u[0];if(c===void 0)return N.zeros([0],"float64");if(typeof c=="number"){let l=N.zeros([i],"float64");for(let m=0;m<i;m++)l.data[m]=u[m];return l}else{let l=[i,c.size],m=N.zeros(l,"float64");for(let d=0;d<i;d++){let y=u[d];for(let f=0;f<y.size;f++)m.data[d*y.size+f]=Number(y.data[f])}return m}}}if(o===1){let i=e(r);if(typeof i=="number"){let s=N.zeros([1],"float64");return s.data[0]=i,s}return i}throw new Error(`apply_along_axis not fully implemented for ${o}D arrays. Only 1D and 2D arrays are supported.`)}function si(r,t,e){let n=r,o=r.shape.length;for(let a of e){let i=a<0?a+o:a;if(i<0||i>=o)throw new Error(`axis ${a} is out of bounds for array of dimension ${o}`);if(n=t(n,i),n.shape.length<o){let s=Array.from(n.shape);s.splice(i,0,1);let u=ur(s);n=new N(n.data,s,u,0,n.dtype)}}return n}function pn(r,t){return r.data.buffer===t.data.buffer}function ii(r,t){return pn(r,t)}function Ht(){return{...Or}}function yn(r,t,e,n,o){let a=Ht();return r!==void 0&&(Or.divide=r,Or.over=r,Or.under=r,Or.invalid=r),t!==void 0&&(Or.divide=t),e!==void 0&&(Or.over=e),n!==void 0&&(Or.under=n),o!==void 0&&(Or.invalid=o),a}var Or,dn=G(()=>{"use strict";K();Q();Rt();xr();Or={divide:"warn",over:"warn",under:"ignore",invalid:"warn"}});function br(r,t){if(!xo(r)&&r!=="bool")throw new TypeError(`ufunc '${t}' not supported for the input types, and the inputs could not be safely coerced to any supported types`)}function xt(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function li(r,t){return br(r.dtype,"bitwise_and"),typeof t=="number"?Gd(r,t):(br(t.dtype,"bitwise_and"),xt(r,t)?Wd(r,t):X(r,t,(e,n)=>e&n,"bitwise_and"))}function Wd(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m&d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]&m[d]}}else for(let u=0;u<o;u++)s[u]=a[u]&i[u];return n}function Gd(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]&l}else for(let u=0;u<a;u++)s[u]=o[u]&t;return i}function fi(r,t){return br(r.dtype,"bitwise_or"),typeof t=="number"?Yd(r,t):(br(t.dtype,"bitwise_or"),xt(r,t)?Zd(r,t):X(r,t,(e,n)=>e|n,"bitwise_or"))}function Zd(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m|d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]|m[d]}}else for(let u=0;u<o;u++)s[u]=a[u]|i[u];return n}function Yd(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]|l}else for(let u=0;u<a;u++)s[u]=o[u]|t;return i}function mi(r,t){return br(r.dtype,"bitwise_xor"),typeof t=="number"?Xd(r,t):(br(t.dtype,"bitwise_xor"),xt(r,t)?Hd(r,t):X(r,t,(e,n)=>e^n,"bitwise_xor"))}function Hd(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;if(!B(r.dtype)||!B(t.dtype))for(let l=0;l<o;l++){let m=typeof a[l]=="bigint"?a[l]:BigInt(Math.round(Number(a[l]))),d=typeof i[l]=="bigint"?i[l]:BigInt(Math.round(Number(i[l])));u[l]=m^d}else{let l=a,m=i;for(let d=0;d<o;d++)u[d]=l[d]^m[d]}}else for(let u=0;u<o;u++)s[u]=a[u]^i[u];return n}function Xd(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]^l}else for(let u=0;u<a;u++)s[u]=o[u]^t;return i}function Jt(r){br(r.dtype,"bitwise_not");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,t),i=a.data;if(B(t)){let s=n,u=i;for(let c=0;c<o;c++)u[c]=~s[c]}else for(let s=0;s<o;s++)i[s]=~n[s];return a}function pi(r){return Jt(r)}function gn(r,t){if(br(r.dtype,"left_shift"),typeof t=="number")return ui(r,t);if(br(t.dtype,"left_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return ui(r,e)}return xt(r,t)?Jd(r,t):X(r,t,(e,n)=>e<<n,"left_shift")}function Jd(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));u[c]=l<<m}}else for(let u=0;u<o;u++)s[u]=a[u]<<i[u];return n}function ui(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]<<l}else for(let u=0;u<a;u++)s[u]=o[u]<<t;return i}function An(r,t){if(br(r.dtype,"right_shift"),typeof t=="number")return ci(r,t);if(br(t.dtype,"right_shift"),t.size===1||t.ndim===1&&t.shape[0]===1){let e=B(t.dtype)?Number(t.data[0]):t.data[0];return ci(r,e)}return xt(r,t)?Qd(r,t):X(r,t,(e,n)=>e>>n,"right_shift")}function Qd(r,t){let e=Z(r.dtype,t.dtype),n=N.zeros(Array.from(r.shape),e),o=r.size,a=r.data,i=t.data,s=n.data;if(B(e)){let u=s;for(let c=0;c<o;c++){let l=typeof a[c]=="bigint"?a[c]:BigInt(Math.round(Number(a[c]))),m=typeof i[c]=="bigint"?i[c]:BigInt(Math.round(Number(i[c])));u[c]=l>>m}}else for(let u=0;u<o;u++)s[u]=a[u]>>i[u];return n}function ci(r,t){let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=N.zeros(n,e),s=i.data;if(B(e)){let u=o,c=s,l=BigInt(Math.round(t));for(let m=0;m<a;m++)c[m]=u[m]>>l}else for(let u=0;u<a;u++)s[u]=o[u]>>t;return i}function yi(r,t=-1,e="big"){let n=Array.from(r.shape),o=n.length;if(t<0&&(t=o+t),t<0||t>=o)throw new Error(`axis ${t} is out of bounds for array of dimension ${o}`);let a=n[t],i=Math.ceil(a/8),s=[...n];s[t]=i;let u=N.zeros(s,"uint8"),c=u.data;if(o===1){for(let g=0;g<i;g++){let h=0;for(let b=0;b<8;b++){let A=g*8+b;if(A<a){let S=Number(r.data[A])!==0?1:0;e==="big"?h|=S<<7-b:h|=S<<b}}c[g]=h}return u}let l=n.slice(0,t),m=n.slice(t+1),d=l.reduce((g,h)=>g*h,1),y=m.reduce((g,h)=>g*h,1),f=Xt(n),p=Xt(s);for(let g=0;g<d;g++)for(let h=0;h<y;h++)for(let b=0;b<i;b++){let A=0;for(let x=0;x<8;x++){let I=b*8+x;if(I<a){let z=0,F=g;for(let O=0;O<t;O++){let C=O<t-1?l.slice(O+1).reduce((V,k)=>V*k,1):1,q=Math.floor(F/C);F%=C,z+=q*f[O]}z+=I*f[t];let v=h;for(let O=t+1;O<o;O++){let C=O<o-1?m.slice(O-t).reduce((V,k)=>V*k,1):1,q=Math.floor(v/C);v%=C,z+=q*f[O]}let T=Number(r.data[z])!==0?1:0;e==="big"?A|=T<<7-x:A|=T<<x}}let S=0,D=g;for(let x=0;x<t;x++){let I=x<t-1?l.slice(x+1).reduce((F,v)=>F*v,1):1,z=Math.floor(D/I);D%=I,S+=z*p[x]}S+=b*p[t];let w=h;for(let x=t+1;x<o;x++){let I=x<o-1?m.slice(x-t).reduce((F,v)=>F*v,1):1,z=Math.floor(w/I);w%=I,S+=z*p[x]}c[S]=A}return u}function di(r,t=-1,e=-1,n="big"){if(r.dtype!=="uint8")throw new TypeError("Expected an input array of unsigned byte data type");let o=Array.from(r.shape),a=o.length;if(t<0&&(t=a+t),t<0||t>=a)throw new Error(`axis ${t} is out of bounds for array of dimension ${a}`);let i=o[t],s=i*8;e>=0&&(s=e);let u=[...o];u[t]=s;let c=N.zeros(u,"uint8"),l=c.data;if(a===1){for(let h=0;h<i;h++){let b=Number(r.data[h]);for(let A=0;A<8;A++){let S=h*8+A;if(S>=s)break;n==="big"?l[S]=b>>7-A&1:l[S]=b>>A&1}}return c}let m=o.slice(0,t),d=o.slice(t+1),y=m.reduce((h,b)=>h*b,1),f=d.reduce((h,b)=>h*b,1),p=Xt(o),g=Xt(u);for(let h=0;h<y;h++)for(let b=0;b<f;b++)for(let A=0;A<i;A++){let S=0,D=h;for(let I=0;I<t;I++){let z=I<t-1?m.slice(I+1).reduce((v,T)=>v*T,1):1,F=Math.floor(D/z);D%=z,S+=F*p[I]}S+=A*p[t];let w=b;for(let I=t+1;I<a;I++){let z=I<a-1?d.slice(I-t).reduce((v,T)=>v*T,1):1,F=Math.floor(w/z);w%=z,S+=F*p[I]}let x=Number(r.data[S]);for(let I=0;I<8;I++){let z=A*8+I;if(z>=s)break;let F=0;D=h;for(let v=0;v<t;v++){let T=v<t-1?m.slice(v+1).reduce((C,q)=>C*q,1):1,O=Math.floor(D/T);D%=T,F+=O*g[v]}F+=z*g[t],w=b;for(let v=t+1;v<a;v++){let T=v<a-1?d.slice(v-t).reduce((C,q)=>C*q,1):1,O=Math.floor(w/T);w%=T,F+=O*g[v]}n==="big"?l[F]=x>>7-I&1:l[F]=x>>I&1}}return c}function Xt(r){let t=r.length,e=new Array(t),n=1;for(let o=t-1;o>=0;o--)e[o]=n,n*=r[o];return e}function gi(r){let t=r.dtype;br(t,"bitwise_count");let e=Array.from(r.shape),n=r.data,o=r.size,a=N.zeros(e,"uint8"),i=a.data;if(B(t)){let s=n;for(let u=0;u<o;u++)i[u]=rg(s[u])}else for(let s=0;s<o;s++){let u=n[s];i[s]=Kd(u)}return a}function Kd(r){r=r>>>0;let t=0;for(;r!==0;)r=r&r-1,t++;return t}function rg(r){r<0n&&(r=BigInt.asUintN(64,r));let t=0;for(;r!==0n;)r=r&r-1n,t++;return t}function Ai(r){return Jt(r)}function bi(r,t){return gn(r,t)}function hi(r,t){return An(r,t)}var Si=G(()=>{"use strict";K();Q();Er()});function at(r){return r!==0&&r!==0n}function Ir(r,t){let e=r[t*2],n=r[t*2+1];return e!==0||n!==0}function It(r,t){return r.isCContiguous&&t.isCContiguous&&r.shape.length===t.shape.length&&r.shape.every((e,n)=>e===t.shape[n])}function Ni(r,t){return typeof t=="number"?ng(r,t):It(r,t)?eg(r,t):Ar(r,t,(e,n)=>at(e)&&at(n))}function eg(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=B(r.dtype),s=B(t.dtype),u=M(r.dtype),c=M(t.dtype);if(u||c)for(let l=0;l<a;l++){let m=u?Ir(n,l):n[l]!==0,d=c?Ir(o,l):o[l]!==0;e[l]=m&&d?1:0}else if(i||s)for(let l=0;l<a;l++){let m=i?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m&&d?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0&&o[l]!==0?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function ng(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let i=n;for(let s=0;s<a;s++)e[s]=Ir(i,s)&&o?1:0}else if(B(r.dtype)){let i=n;for(let s=0;s<a;s++)e[s]=i[s]!==0n&&o?1:0}else for(let i=0;i<a;i++)e[i]=n[i]!==0&&o?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function xi(r,t){return typeof t=="number"?ag(r,t):It(r,t)?og(r,t):Ar(r,t,(e,n)=>at(e)||at(n))}function og(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=B(r.dtype),s=B(t.dtype),u=M(r.dtype),c=M(t.dtype);if(u||c)for(let l=0;l<a;l++){let m=u?Ir(n,l):n[l]!==0,d=c?Ir(o,l):o[l]!==0;e[l]=m||d?1:0}else if(i||s)for(let l=0;l<a;l++){let m=i?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m||d?1:0}else for(let l=0;l<a;l++)e[l]=n[l]!==0||o[l]!==0?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function ag(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let i=n;for(let s=0;s<a;s++)e[s]=Ir(i,s)||o?1:0}else if(B(r.dtype)){let i=n;for(let s=0;s<a;s++)e[s]=i[s]!==0n||o?1:0}else for(let i=0;i<a;i++)e[i]=n[i]!==0||o?1:0;return N.fromData(e,Array.from(r.shape),"bool")}function wi(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=Ir(o,a)?0:1}else if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]===0n?1:0}else for(let o=0;o<n;o++)t[o]=e[o]===0?1:0;return N.fromData(t,Array.from(r.shape),"bool")}function Ii(r,t){return typeof t=="number"?ig(r,t):It(r,t)?sg(r,t):Ar(r,t,(e,n)=>at(e)!==at(n))}function sg(r,t){let e=new Uint8Array(r.size),n=r.data,o=t.data,a=r.size,i=B(r.dtype),s=B(t.dtype),u=M(r.dtype),c=M(t.dtype);if(u||c)for(let l=0;l<a;l++){let m=u?Ir(n,l):n[l]!==0,d=c?Ir(o,l):o[l]!==0;e[l]=m!==d?1:0}else if(i||s)for(let l=0;l<a;l++){let m=i?n[l]!==0n:n[l]!==0,d=s?o[l]!==0n:o[l]!==0;e[l]=m!==d?1:0}else for(let l=0;l<a;l++){let m=n[l]!==0,d=o[l]!==0;e[l]=m!==d?1:0}return N.fromData(e,Array.from(r.shape),"bool")}function ig(r,t){let e=new Uint8Array(r.size),n=r.data,o=t!==0,a=r.size;if(M(r.dtype)){let i=n;for(let s=0;s<a;s++){let u=Ir(i,s);e[s]=u!==o?1:0}}else if(B(r.dtype)){let i=n;for(let s=0;s<a;s++){let u=i[s]!==0n;e[s]=u!==o?1:0}}else for(let i=0;i<a;i++){let s=n[i]!==0;e[i]=s!==o?1:0}return N.fromData(e,Array.from(r.shape),"bool")}function zi(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let i=o[a*2],s=o[a*2+1];t[a]=Number.isFinite(i)&&Number.isFinite(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=1;else for(let o=0;o<n;o++){let a=e[o];t[o]=Number.isFinite(a)?1:0}return N.fromData(t,Array.from(r.shape),"bool")}function _i(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let i=o[a*2],s=o[a*2+1],u=!Number.isFinite(i)&&!Number.isNaN(i),c=!Number.isFinite(s)&&!Number.isNaN(s);t[a]=u||c?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++){let a=e[o];t[o]=!Number.isFinite(a)&&!Number.isNaN(a)?1:0}return N.fromData(t,Array.from(r.shape),"bool")}function vi(r){let t=new Uint8Array(r.size),e=r.data,n=r.size;if(M(r.dtype)){let o=e;for(let a=0;a<n;a++){let i=o[a*2],s=o[a*2+1];t[a]=Number.isNaN(i)||Number.isNaN(s)?1:0}}else if(B(r.dtype))for(let o=0;o<n;o++)t[o]=0;else for(let o=0;o<n;o++)t[o]=Number.isNaN(e[o])?1:0;return N.fromData(t,Array.from(r.shape),"bool")}function Fi(r){let t=new Uint8Array(r.size);return N.fromData(t,Array.from(r.shape),"bool")}function Mi(r,t){if(U(r.dtype,"copysign","copysign is only defined for real numbers."),typeof t!="number"&&U(t.dtype,"copysign","copysign is only defined for real numbers."),typeof t=="number")return cg(r,t);if(It(r,t))return ug(r,t);let e=Ur(r.shape,t.shape),n=e.reduce((u,c)=>u*c,1),o=N.zeros(e,"float64"),a=o.data,i=Qt(r,e),s=Qt(t,e);for(let u=0;u<n;u++){let c=Number(i.iget(u)),l=Number(s.iget(u));a[u]=Math.sign(l)*Math.abs(c)}return o}function ug(r,t){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,i=t.data,s=B(r.dtype),u=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=u?Number(i[c]):i[c];n[c]=Math.sign(m)*Math.abs(l)}return e}function cg(r,t){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size,i=Math.sign(t);if(B(r.dtype)){let s=o;for(let u=0;u<a;u++)n[u]=i*Math.abs(Number(s[u]))}else for(let s=0;s<a;s++)n[s]=i*Math.abs(o[s]);return e}function Bi(r){U(r.dtype,"signbit","signbit is only defined for real numbers.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(B(r.dtype)){let o=e;for(let a=0;a<n;a++)t[a]=o[a]<0n?1:0}else for(let o=0;o<n;o++){let a=e[o];t[o]=a<0||Object.is(a,-0)?1:0}return N.fromData(t,Array.from(r.shape),"bool")}function Ei(r,t){if(U(r.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t!="number"&&U(t.dtype,"nextafter","nextafter is only defined for real numbers."),typeof t=="number")return fg(r,t);if(It(r,t))return lg(r,t);let e=Ur(r.shape,t.shape),n=e.reduce((u,c)=>u*c,1),o=N.zeros(e,"float64"),a=o.data,i=Qt(r,e),s=Qt(t,e);for(let u=0;u<n;u++){let c=Number(i.iget(u)),l=Number(s.iget(u));a[u]=wt(c,l)}return o}function lg(r,t){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.size,a=r.data,i=t.data,s=B(r.dtype),u=B(t.dtype);for(let c=0;c<o;c++){let l=s?Number(a[c]):a[c],m=u?Number(i[c]):i[c];n[c]=wt(l,m)}return e}function fg(r,t){let e=N.zeros(Array.from(r.shape),"float64"),n=e.data,o=r.data,a=r.size;if(B(r.dtype)){let i=o;for(let s=0;s<a;s++)n[s]=wt(Number(i[s]),t)}else for(let i=0;i<a;i++)n[i]=wt(o[i],t);return e}function wt(r,t){if(Number.isNaN(r)||Number.isNaN(t))return NaN;if(r===t)return t;if(r===0)return t>0?Number.MIN_VALUE:-Number.MIN_VALUE;let e=new ArrayBuffer(8),n=new Float64Array(e),o=new BigInt64Array(e);n[0]=r;let a=o[0];return r>0&&t>r||r<0&&t>r?a=a+1n:a=a-1n,o[0]=a,n[0]}function Ti(r){U(r.dtype,"spacing","spacing is only defined for real numbers.");let t=N.zeros(Array.from(r.shape),"float64"),e=t.data,n=r.data,o=r.size;if(B(r.dtype)){let a=n;for(let i=0;i<o;i++)e[i]=Di(Number(a[i]))}else for(let a=0;a<o;a++)e[a]=Di(n[a]);return t}function Di(r){if(Number.isNaN(r))return NaN;if(!Number.isFinite(r))return NaN;if(Math.abs(r)===0)return Number.MIN_VALUE;let e=wt(r,1/0);return Math.abs(e-r)}function Qt(r,t){let e=r.shape.length,n=t.length,o=new Array(n).fill(0);for(let a=0;a<e;a++){let i=n-e+a,s=r.shape[a],u=t[i];if(s===u)o[i]=r.strides[a];else if(s===1)o[i]=0;else throw new Error("Invalid broadcast")}return N.fromData(r.data,Array.from(t),r.dtype,o,r.offset)}function Oi(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]!==0?1:0}return N.fromData(n,Array.from(r.shape),"bool")}function Ci(r){return M(r.dtype)}function Ui(r){let t=r.dtype,e=r.size,n=new Uint8Array(e);if(M(t)){let o=r.data;for(let a=0;a<e;a++)n[a]=o[a*2+1]===0?1:0}else n.fill(1);return N.fromData(n,Array.from(r.shape),"bool")}function $i(r){return!M(r.dtype)}function Ri(r){U(r.dtype,"isneginf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===-1/0?1:0}return N.fromData(t,Array.from(r.shape),"bool")}function ki(r){U(r.dtype,"isposinf","This operation is not supported for complex values because it would be ambiguous.");let t=new Uint8Array(r.size),e=r.data,n=r.size;if(!B(r.dtype))for(let o=0;o<n;o++){let a=e[o];t[o]=a===1/0?1:0}return N.fromData(t,Array.from(r.shape),"bool")}function qi(r){return r.isFContiguous}function Vi(r,t=100){let e=r.dtype;if(M(e)){let n=r.data,o=r.size,i=t*(e==="complex64"?11920929e-14:2220446049250313e-31),s=!0;for(let u=0;u<o;u++){let c=n[u*2+1];if(Math.abs(c)>i){s=!1;break}}if(s){let u=e==="complex64"?"float32":"float64",c=N.zeros(Array.from(r.shape),u),l=c.data;for(let m=0;m<o;m++)l[m]=n[m*2];return c}return r.copy()}return r.copy()}function Pi(r){return typeof r=="number"||typeof r=="bigint"||typeof r=="boolean"||typeof r=="string"}function ji(r){return r==null?!1:typeof r[Symbol.iterator]=="function"}function Li(r,t){let n={b:["bool"],i:["int8","int16","int32","int64"],u:["uint8","uint16","uint32","uint64"],f:["float32","float64"]}[t];return n?n.includes(r):!1}function Wi(r,t){let e=["float64","float32","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"],n=e.indexOf(r),o=e.indexOf(t);return n<=o?r:t}var Gi=G(()=>{"use strict";K();Q();Er();Er()});function Zi(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=lt(t),a=N.zeros(e,o),i=a.data,s=r.data;for(let u=0;u<n;u++)i[u]=s[u*2];return a}return r.copy()}function Yi(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let a=lt(t),i=N.zeros(e,a),s=i.data,u=r.data;for(let c=0;c<n;c++)s[c]=u[c*2+1];return i}let o=t==="float32"?"float32":"float64";return N.zeros(e,o)}function Hi(r){let t=r.dtype,e=Array.from(r.shape),n=r.size;if(M(t)){let o=j(t),a=n*2,i=new o(a),s=r.data;for(let u=0;u<n;u++)i[u*2]=s[u*2],i[u*2+1]=-s[u*2+1];return N.fromData(i,e,t)}return r.copy()}function Xi(r,t=!1){let e=r.dtype,n=Array.from(r.shape),o=r.size,a=N.zeros(n,"float64"),i=a.data;if(M(e)){let s=r.data;for(let u=0;u<o;u++){let c=s[u*2],l=s[u*2+1],m=Math.atan2(l,c);t&&(m=m*180/Math.PI),i[u]=m}}else for(let s=0;s<o;s++){let u=r.iget(s),l=(u instanceof E?u.re:Number(u))>=0?0:Math.PI;t&&(l=l*180/Math.PI),i[s]=l}return a}var Ji=G(()=>{"use strict";K();Q();xr()});function zr(r,t,e){if(e){let n=r[t*2],o=r[t*2+1];return n!==0||o!==0}return!!r[t]}function zt(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function bn(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return r.copy();let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=r.copy(),u=s.data,c=e[i],l=Array.from(e).filter((d,y)=>y!==i),m=l.length===0?1:l.reduce((d,y)=>d*y,1);if(M(o)){let d=a,y=u;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=R(f,i,g,e),b=$(h,e);p.push({re:d[b*2],im:d[b*2+1],idx:g})}p.sort((g,h)=>zt(g.re,g.im,h.re,h.im));for(let g=0;g<c;g++){let h=R(f,i,g,e),b=$(h,e);y[b*2]=p[g].re,y[b*2+1]=p[g].im}}}else if(B(o)){let d=a,y=u;for(let f=0;f<m;f++){let p=[];for(let g=0;g<c;g++){let h=R(f,i,g,e),b=$(h,e);p.push({value:d[b],idx:g})}p.sort((g,h)=>g.value<h.value?-1:g.value>h.value?1:0);for(let g=0;g<c;g++){let h=R(f,i,g,e),b=$(h,e);y[b]=p[g].value}}}else for(let d=0;d<m;d++){let y=[];for(let f=0;f<c;f++){let p=R(d,i,f,e),g=$(p,e);y.push(Number(a[g]))}y.sort((f,p)=>isNaN(f)&&isNaN(p)?0:isNaN(f)?1:isNaN(p)?-1:f-p);for(let f=0;f<c;f++){let p=R(d,i,f,e),g=$(p,e);u[g]=y[f]}}return s}function hn(r,t=-1){let e=r.shape,n=e.length,o=r.dtype,a=r.data;if(n===0)return N.zeros([0],"int32");let i=t;if(i<0&&(i=n+i),i<0||i>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let s=N.zeros(Array.from(e),"int32"),u=s.data,c=e[i],l=Array.from(e).filter((d,y)=>y!==i),m=l.length===0?1:l.reduce((d,y)=>d*y,1);if(M(o)){let d=a;for(let y=0;y<m;y++){let f=[];for(let p=0;p<c;p++){let g=R(y,i,p,e),h=$(g,e);f.push({re:d[h*2],im:d[h*2+1],idx:p})}f.sort((p,g)=>zt(p.re,p.im,g.re,g.im));for(let p=0;p<c;p++){let g=R(y,i,p,e),h=$(g,e);u[h]=f[p].idx}}}else if(B(o)){let d=a;for(let y=0;y<m;y++){let f=[];for(let p=0;p<c;p++){let g=R(y,i,p,e),h=$(g,e);f.push({value:d[h],idx:p})}f.sort((p,g)=>p.value<g.value?-1:p.value>g.value?1:0);for(let p=0;p<c;p++){let g=R(y,i,p,e),h=$(g,e);u[h]=f[p].idx}}}else for(let d=0;d<m;d++){let y=[];for(let f=0;f<c;f++){let p=R(d,i,f,e),g=$(p,e);y.push({value:Number(a[g]),idx:f})}y.sort((f,p)=>isNaN(f.value)&&isNaN(p.value)?0:isNaN(f.value)?1:isNaN(p.value)?-1:f.value-p.value);for(let f=0;f<c;f++){let p=R(d,i,f,e),g=$(p,e);u[g]=y[f].idx}}return s}function Qi(r){if(r.length===0)return N.zeros([0],"int32");let e=r[0].size;for(let i of r){if(i.ndim!==1)throw new Error("keys must be 1D arrays");if(i.size!==e)throw new Error("all keys must have the same length")}let n=[];for(let i=0;i<e;i++)n.push(i);n.sort((i,s)=>{for(let u=r.length-1;u>=0;u--){let l=r[u].data,m=Number(l[i]),d=Number(l[s]);if(!(isNaN(m)&&isNaN(d))){if(isNaN(m))return 1;if(isNaN(d)||m<d)return-1;if(m>d)return 1}}return 0});let o=N.zeros([e],"int32"),a=o.data;for(let i=0;i<e;i++)a[i]=n[i];return o}function yg(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],s=r[n],u;a<=i&&i<=s||s<=i&&i<=a?u=o:i<=a&&a<=s||s<=a&&a<=i?u=e:u=n;let c=r[u];[r[u],r[n]]=[r[n],r[u]];let l=e;for(let m=e;m<n;m++){let d=r[m],y=isNaN(d),f=isNaN(c);!y&&(f||d<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function dg(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e],i=r[o],s=r[n],u;a<=i&&i<=s||s<=i&&i<=a?u=o:i<=a&&a<=s||s<=a&&a<=i?u=e:u=n;let c=r[u];[r[u],r[n]]=[r[n],r[u]];let l=e;for(let m=e;m<n;m++)r[m]<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function gg(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,s=r[n].value,u;a<=i&&i<=s||s<=i&&i<=a?u=o:i<=a&&a<=s||s<=a&&a<=i?u=e:u=n;let c=r[u].value;[r[u],r[n]]=[r[n],r[u]];let l=e;for(let m=e;m<n;m++){let d=r[m].value,y=isNaN(d),f=isNaN(c);!y&&(f||d<=c)&&([r[l],r[m]]=[r[m],r[l]],l++)}if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Ag(r,t){let e=0,n=r.length-1;for(;e<n;){let o=Math.floor((e+n)/2),a=r[e].value,i=r[o].value,s=r[n].value,u;a<=i&&i<=s||s<=i&&i<=a?u=o:i<=a&&a<=s||s<=a&&a<=i?u=e:u=n;let c=r[u].value;[r[u],r[n]]=[r[n],r[u]];let l=e;for(let m=e;m<n;m++)r[m].value<=c&&([r[l],r[m]]=[r[m],r[l]],l++);if([r[l],r[n]]=[r[n],r[l]],l===t)return;l<t?e=l+1:n=l-1}}function Sn(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype;if(o===0)return r.copy();let i=e;if(i<0&&(i=o+i),i<0||i>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let s=n[i],u=t;if(u<0&&(u=s+u),u<0||u>=s)throw new Error(`kth(=${t}) out of bounds (${s})`);let c=r.copy(),l=c.data,m=Array.from(n).filter((y,f)=>f!==i),d=m.length===0?1:m.reduce((y,f)=>y*f,1);if(B(a)){let y=l;for(let f=0;f<d;f++){let p=[];for(let g=0;g<s;g++){let h=R(f,i,g,n),b=$(h,n);p.push(y[b])}dg(p,u);for(let g=0;g<s;g++){let h=R(f,i,g,n),b=$(h,n);y[b]=p[g]}}}else for(let y=0;y<d;y++){let f=[];for(let p=0;p<s;p++){let g=R(y,i,p,n),h=$(g,n);f.push(Number(l[h]))}yg(f,u);for(let p=0;p<s;p++){let g=R(y,i,p,n),h=$(g,n);l[h]=f[p]}}return c}function Dn(r,t,e=-1){let n=r.shape,o=n.length,a=r.dtype,i=r.data;if(o===0)return N.zeros([0],"int32");let s=e;if(s<0&&(s=o+s),s<0||s>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);let u=n[s],c=t;if(c<0&&(c=u+c),c<0||c>=u)throw new Error(`kth(=${t}) out of bounds (${u})`);let l=N.zeros(Array.from(n),"int32"),m=l.data,d=Array.from(n).filter((f,p)=>p!==s),y=d.length===0?1:d.reduce((f,p)=>f*p,1);if(B(a)){let f=i;for(let p=0;p<y;p++){let g=[];for(let h=0;h<u;h++){let b=R(p,s,h,n),A=$(b,n);g.push({value:f[A],idx:h})}Ag(g,c);for(let h=0;h<u;h++){let b=R(p,s,h,n),A=$(b,n);m[A]=g[h].idx}}}else for(let f=0;f<y;f++){let p=[];for(let g=0;g<u;g++){let h=R(f,s,g,n),b=$(h,n);p.push({value:Number(i[b]),idx:g})}gg(p,c);for(let g=0;g<u;g++){let h=R(f,s,g,n),b=$(h,n);m[b]=p[g].idx}}return l}function Ki(r){let t=r.dtype,e=r.size,n=r.data;if(M(t)){let o=n,a=[];for(let u=0;u<e;u++)a.push({re:o[u*2],im:o[u*2+1]});a.sort((u,c)=>zt(u.re,u.im,c.re,c.im));let i=N.zeros([e],"complex128"),s=i.data;for(let u=0;u<e;u++)s[u*2]=a[u].re,s[u*2+1]=a[u].im;return i}else{let o=[];for(let s=0;s<e;s++)o.push(Number(n[s]));o.sort((s,u)=>isNaN(s)&&isNaN(u)?0:isNaN(s)?1:isNaN(u)?-1:s-u);let a=N.zeros([e],"complex128"),i=a.data;for(let s=0;s<e;s++)i[s*2]=o[s],i[s*2+1]=0;return a}}function Kt(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),i=[];for(let m=0;m<e;m++)i.push([]);let s=[],u=1;for(let m=e-1;m>=0;m--)s.unshift(u),u*=t[m];for(let m=0;m<o;m++)if(zr(n,m,a)){let d=m;for(let y=0;y<e;y++){let f=Math.floor(d/s[y]);d=d%s[y],i[y].push(f)}}let c=i[0]?.length??0,l=[];for(let m=0;m<e;m++){let d=N.zeros([c],"int32"),y=d.data;for(let f=0;f<c;f++)y[f]=i[m][f];l.push(d)}return l}function Nn(r){let t=r.shape,e=t.length,n=r.data,o=r.size,a=M(r.dtype),i=[],s=[],u=1;for(let y=e-1;y>=0;y--)s.unshift(u),u*=t[y];for(let y=0;y<o;y++)if(zr(n,y,a)){let f=[],p=y;for(let g=0;g<e;g++){let h=Math.floor(p/s[g]);p=p%s[g],f.push(h)}i.push(f)}let c=i.length,l=e===0?[c,1]:[c,e],m=N.zeros(l,"int32"),d=m.data;for(let y=0;y<c;y++){let f=i[y];for(let p=0;p<(e===0?1:e);p++)d[y*(e===0?1:e)+p]=f[p]??0}return m}function ru(r){let t=r.data,e=r.size,n=M(r.dtype),o=[];for(let s=0;s<e;s++)zr(t,s,n)&&o.push(s);let a=N.zeros([o.length],"int32"),i=a.data;for(let s=0;s<o.length;s++)i[s]=o[s];return a}function tu(r,t,e){if(t===void 0&&e===void 0)return Kt(r);if(t===void 0||e===void 0)throw new Error("either both or neither of x and y should be given");let n=r.shape,o=t.shape,a=e.shape,i=Math.max(n.length,o.length,a.length),s=v=>{let T=Array(i).fill(1);for(let O=0;O<v.length;O++)T[i-v.length+O]=v[O];return T},u=s(n),c=s(o),l=s(a),m=[];for(let v=0;v<i;v++){let T=[u[v],c[v],l[v]],O=Math.max(...T);for(let C of T)if(C!==1&&C!==O)throw new Error("operands could not be broadcast together");m.push(O)}let d=t.dtype,y=N.zeros(m,d),f=y.data,p=r.data,g=t.data,h=e.data,b=(v,T)=>{let O=[],C=1;for(let q=v.length-1;q>=0;q--)O.unshift(C),C*=v[q];for(;O.length<T.length;)O.unshift(0);for(let q=0;q<T.length;q++)T[q]===1&&m[q]!==1&&(O[q]=0);return O},A=b(n,u),S=b(o,c),D=b(a,l),w=[],x=1;for(let v=m.length-1;v>=0;v--)w.unshift(x),x*=m[v];let I=m.reduce((v,T)=>v*T,1),z=M(r.dtype),F=M(d);for(let v=0;v<I;v++){let T=v,O=0,C=0,q=0;for(let V=0;V<i;V++){let k=Math.floor(T/w[V]);T=T%w[V],O+=k*A[V],C+=k*S[V],q+=k*D[V]}zr(p,O,z)?F?(f[v*2]=g[C*2],f[v*2+1]=g[C*2+1]):f[v]=g[C]:F?(f[v*2]=h[q*2],f[v*2+1]=h[q*2+1]):f[v]=h[q]}return y}function xn(r,t,e="left"){if(r.ndim!==1)throw new Error("storage must be 1D");let n=r.data,o=r.size,a=t.data,i=t.size,s=M(r.dtype),u=N.zeros([i],"int32"),c=u.data;if(s){let l=n,m=a;for(let d=0;d<i;d++){let y=m[d*2],f=m[d*2+1],p=0,g=o;if(e==="left")for(;p<g;){let h=Math.floor((p+g)/2),b=l[h*2],A=l[h*2+1];zt(b,A,y,f)<0?p=h+1:g=h}else for(;p<g;){let h=Math.floor((p+g)/2),b=l[h*2],A=l[h*2+1];zt(b,A,y,f)<=0?p=h+1:g=h}c[d]=p}}else for(let l=0;l<i;l++){let m=Number(a[l]),d=0,y=o;if(e==="left")for(;d<y;){let f=Math.floor((d+y)/2);Number(n[f])<m?d=f+1:y=f}else for(;d<y;){let f=Math.floor((d+y)/2);Number(n[f])<=m?d=f+1:y=f}c[l]=d}return u}function eu(r,t){let e=r.data,n=t.data,o=t.dtype,a=M(r.dtype),i=M(o),s=Math.min(r.size,t.size),u=0;for(let d=0;d<s;d++)zr(e,d,a)&&u++;let c=N.zeros([u],o),l=c.data,m=0;if(B(o)){let d=n,y=l;for(let f=0;f<s;f++)zr(e,f,a)&&(y[m++]=d[f])}else if(i){let d=n,y=l;for(let f=0;f<s;f++)zr(e,f,a)&&(y[m*2]=d[f*2],y[m*2+1]=d[f*2+1],m++)}else for(let d=0;d<s;d++)zr(e,d,a)&&(l[m++]=n[d]);return c}function wn(r,t){let e=r.shape,n=e.length,o=r.data,a=r.size,i=M(r.dtype);if(t===void 0){let y=0;for(let f=0;f<a;f++)zr(o,f,i)&&y++;return y}let s=t;if(s<0&&(s=n+s),s<0||s>=n)throw new Error(`axis ${t} is out of bounds for array of dimension ${n}`);let u=Array.from(e).filter((y,f)=>f!==s);if(u.length===0)return wn(r);let c=N.zeros(u,"int32"),l=c.data,m=e[s],d=u.reduce((y,f)=>y*f,1);for(let y=0;y<d;y++){let f=0;for(let p=0;p<m;p++){let g=R(y,s,p,e),h=$(g,e);zr(o,h,i)&&f++}l[y]=f}return c}var nu=G(()=>{"use strict";K();Q();Me()});function ou(r){if(!isFinite(r))return r;let t=Math.floor(r),e=r-t;return Math.abs(e-.5)<1e-10?t%2===0?t:t+1:Math.round(r)}function In(r,t=0){U(r.dtype,"around","Rounding is not defined for complex numbers.");let e=r.dtype,n=Array.from(r.shape),o=r.data,a=r.size,i=e==="float32"?"float32":"float64",s=N.zeros(n,i),u=s.data,c=Math.pow(10,t);for(let l=0;l<a;l++){let m=Number(o[l]);u[l]=ou(m*c)/c}return s}function zn(r){U(r.dtype,"ceil","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.ceil(Number(n[u]));return i}function _n(r){U(r.dtype,"fix","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.trunc(Number(n[u]));return i}function vn(r){U(r.dtype,"floor","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.floor(Number(n[u]));return i}function Fn(r){U(r.dtype,"rint","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=ou(Number(n[u]));return i}function Mn(r){U(r.dtype,"trunc","Rounding is not defined for complex numbers.");let t=r.dtype,e=Array.from(r.shape),n=r.data,o=r.size,a=t==="float32"?"float32":"float64",i=N.zeros(e,a),s=i.data;for(let u=0;u<o;u++)s[u]=Math.trunc(Number(n[u]));return i}var au=G(()=>{"use strict";K();Q()});function Bn(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?0:o?1:a||r<e?-1:r>e?1:t<n?-1:t>n?1:0}function Sg(r,t,e,n){let o=isNaN(r)||isNaN(t),a=isNaN(e)||isNaN(n);return o&&a?!0:o||a?!1:r===e&&t===n}function yr(r,t=!1,e=!1,n=!1){let o=r.dtype,a=r.size,i=r.data;if(M(o)){let A=i,S=[];for(let k=0;k<a;k++)S.push({re:A[k*2],im:A[k*2+1],index:k});S.sort((k,W)=>Bn(k.re,k.im,W.re,W.im));let D=[],w=[],x=new Array(a),I=[],z,F,v=0;for(let k=0;k<S.length;k++){let{re:W,im:P,index:rr}=S[k];z===void 0||!Sg(W,P,z,F)?(z!==void 0&&I.push(v),D.push({re:W,im:P}),w.push(rr),v=1,z=W,F=P):v++}v>0&&I.push(v);let T=new Map,O=-1;for(let k=0;k<D.length;k++){let{re:W,im:P}=D[k];isNaN(W)||isNaN(P)?O=k:T.set(`${W},${P}`,k)}for(let k=0;k<a;k++){let W=A[k*2],P=A[k*2+1];isNaN(W)||isNaN(P)?x[k]=O:x[k]=T.get(`${W},${P}`)}let C=N.zeros([D.length],o),q=C.data;for(let k=0;k<D.length;k++)q[k*2]=D[k].re,q[k*2+1]=D[k].im;if(!t&&!e&&!n)return C;let V={values:C};if(t){let k=N.zeros([w.length],"int32"),W=k.data;for(let P=0;P<w.length;P++)W[P]=w[P];V.indices=k}if(e){let k=N.zeros([x.length],"int32"),W=k.data;for(let P=0;P<x.length;P++)W[P]=x[P];V.inverse=k}if(n){let k=N.zeros([I.length],"int32"),W=k.data;for(let P=0;P<I.length;P++)W[P]=I[P];V.counts=k}return V}let s=[];for(let A=0;A<a;A++)s.push({value:Number(i[A]),index:A});s.sort((A,S)=>isNaN(A.value)&&isNaN(S.value)?0:isNaN(A.value)?1:isNaN(S.value)?-1:A.value-S.value);let u=[],c=[],l=new Array(a),m=[],d,y=0;for(let A=0;A<s.length;A++){let{value:S,index:D}=s[A];d===void 0||isNaN(S)&&!isNaN(d)||!isNaN(S)&&isNaN(d)||!isNaN(S)&&!isNaN(d)&&S!==d?(d!==void 0&&m.push(y),u.push(S),c.push(D),y=1,d=S):y++}y>0&&m.push(y);let f=new Map,p=-1;for(let A=0;A<u.length;A++){let S=u[A];isNaN(S)?p=A:f.set(S,A)}for(let A=0;A<a;A++){let S=Number(i[A]);isNaN(S)?l[A]=p:l[A]=f.get(S)}let g=N.zeros([u.length],o),h=g.data;for(let A=0;A<u.length;A++)h[A]=u[A];if(!t&&!e&&!n)return g;let b={values:g};if(t){let A=N.zeros([c.length],"int32"),S=A.data;for(let D=0;D<c.length;D++)S[D]=c[D];b.indices=A}if(e){let A=N.zeros([l.length],"int32"),S=A.data;for(let D=0;D<l.length;D++)S[D]=l[D];b.inverse=A}if(n){let A=N.zeros([m.length],"int32"),S=A.data;for(let D=0;D<m.length;D++)S[D]=m[D];b.counts=A}return b}function _r(r,t,e){if(e){let n=Number(r[t*2]),o=Number(r[t*2+1]);return`${n},${o}`}return String(Number(r[t]))}function su(r,t){return En(r,t)}function iu(r,t){let e=r.dtype,n=M(e),o=yr(r),a=yr(t),i=new Set;for(let l=0;l<a.size;l++)i.add(_r(a.data,l,n));let s=[];for(let l=0;l<o.size;l++){let m=_r(o.data,l,n);i.has(m)&&s.push(l)}if(n){let l=N.zeros([s.length],e),m=l.data,d=o.data;for(let y=0;y<s.length;y++){let f=s[y];m[y*2]=d[f*2],m[y*2+1]=d[f*2+1]}return l}let u=N.zeros([s.length],e),c=u.data;for(let l=0;l<s.length;l++)c[l]=o.data[s[l]];return u}function En(r,t){let e=Array.from(r.shape),n=r.size,o=M(r.dtype),a=new Set;for(let u=0;u<t.size;u++)a.add(_r(t.data,u,o));let i=N.zeros(e,"bool"),s=i.data;for(let u=0;u<n;u++){let c=_r(r.data,u,o);s[u]=a.has(c)?1:0}return i}function uu(r,t){let e=r.dtype,n=M(e),o=yr(r),a=new Set;for(let c=0;c<t.size;c++)a.add(_r(t.data,c,n));let i=[];for(let c=0;c<o.size;c++){let l=_r(o.data,c,n);a.has(l)||i.push(c)}if(n){let c=N.zeros([i.length],e),l=c.data,m=o.data;for(let d=0;d<i.length;d++){let y=i[d];l[d*2]=m[y*2],l[d*2+1]=m[y*2+1]}return c}let s=N.zeros([i.length],e),u=s.data;for(let c=0;c<i.length;c++)u[c]=o.data[i[c]];return s}function cu(r,t){let e=r.dtype,n=M(e),o=yr(r),a=yr(t),i=new Set,s=new Set;for(let y=0;y<o.size;y++)i.add(_r(o.data,y,n));for(let y=0;y<a.size;y++)s.add(_r(a.data,y,n));let u=[],c=[];for(let y=0;y<o.size;y++){let f=_r(o.data,y,n);s.has(f)||u.push(y)}for(let y=0;y<a.size;y++){let f=_r(a.data,y,n);i.has(f)||c.push(y)}if(n){let y=[],f=o.data,p=a.data;for(let b of u)y.push({re:f[b*2],im:f[b*2+1]});for(let b of c)y.push({re:p[b*2],im:p[b*2+1]});y.sort((b,A)=>Bn(b.re,b.im,A.re,A.im));let g=N.zeros([y.length],e),h=g.data;for(let b=0;b<y.length;b++)h[b*2]=y[b].re,h[b*2+1]=y[b].im;return g}let l=[];for(let y of u)l.push(Number(o.data[y]));for(let y of c)l.push(Number(a.data[y]));l.sort((y,f)=>isNaN(y)&&isNaN(f)?0:isNaN(y)?1:isNaN(f)?-1:y-f);let m=N.zeros([l.length],e),d=m.data;for(let y=0;y<l.length;y++)d[y]=l[y];return m}function lu(r,t){let e=r.dtype,n=M(e),o=yr(r),a=yr(t),i=new Set,s=[];if(n){let m=o.data,d=a.data;for(let p=0;p<o.size;p++){let g=m[p*2],h=m[p*2+1],b=`${g},${h}`;i.has(b)||(i.add(b),s.push({re:g,im:h}))}for(let p=0;p<a.size;p++){let g=d[p*2],h=d[p*2+1],b=`${g},${h}`;i.has(b)||(i.add(b),s.push({re:g,im:h}))}s.sort((p,g)=>Bn(p.re,p.im,g.re,g.im));let y=N.zeros([s.length],e),f=y.data;for(let p=0;p<s.length;p++)f[p*2]=s[p].re,f[p*2+1]=s[p].im;return y}let u=[];for(let m=0;m<o.size;m++){let d=Number(o.data[m]),y=String(d);i.has(y)||(i.add(y),u.push(d))}for(let m=0;m<a.size;m++){let d=Number(a.data[m]),y=String(d);i.has(y)||(i.add(y),u.push(d))}u.sort((m,d)=>isNaN(m)&&isNaN(d)?0:isNaN(m)?1:isNaN(d)?-1:m-d);let c=N.zeros([u.length],e),l=c.data;for(let m=0;m<u.length;m++)l[m]=u[m];return c}function fu(r,t="fb"){let e=r.dtype,n=r.data,o=r.size,a=M(e);if(o===0)return N.zeros([0],e);let i=d=>{if(a){let y=n[d*2],f=n[d*2+1];return y===0&&f===0}return Number(n[d])===0},s=0;if(t==="f"||t==="fb")for(;s<o&&i(s);)s++;let u=o-1;if(t==="b"||t==="fb")for(;u>=s&&i(u);)u--;if(s>u)return N.zeros([0],e);let c=u-s+1;if(a){let d=N.zeros([c],e),y=d.data;for(let f=0;f<c;f++)y[f*2]=n[(s+f)*2],y[f*2+1]=n[(s+f)*2+1];return d}let l=N.zeros([c],e),m=l.data;for(let d=0;d<c;d++)m[d]=n[s+d];return l}function mu(r){let e=yr(r,!0,!0,!0);return{values:e.values,indices:e.indices,inverse_indices:e.inverse,counts:e.counts}}function pu(r){let e=yr(r,!1,!1,!0);return{values:e.values,counts:e.counts}}function yu(r){let e=yr(r,!1,!0,!1);return{values:e.values,inverse_indices:e.inverse}}function du(r){return yr(r)}var gu=G(()=>{"use strict";K();Q()});function Tn(r,t=1,e=-1){if(t<0)throw new Error(`order must be non-negative but got ${t}`);if(t===0)return r.copy();let n=Array.from(r.shape),o=n.length,a=e<0?o+e:e;if(a<0||a>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);if(n[a]<t+1)throw new Error(`diff requires at least ${t+1} elements along axis ${e}, but got ${n[a]}`);let i=r;for(let s=0;s<t;s++)i=Ng(i,a);return i}function Ng(r,t){let e=Array.from(r.shape),n=e.length,o=e[t],a=[...e];a[t]=o-1;let i=r.dtype,s=M(i),u=B(i)?"float64":i,c=N.zeros(a,u),l=c.data,m=r.strides,d=c.size;for(let y=0;y<d;y++){let f=y,p=new Array(n);for(let S=n-1;S>=0;S--)p[S]=f%a[S],f=Math.floor(f/a[S]);let g=[...p],h=[...p];h[t]=g[t]+1;let b=0,A=0;for(let S=0;S<n;S++)b+=g[S]*m[S],A+=h[S]*m[S];if(s){let S=r.data,D=S[b*2],w=S[b*2+1],x=S[A*2],I=S[A*2+1];l[y*2]=x-D,l[y*2+1]=I-w}else{let S=(B(i),Number(r.data[b])),D=(B(i),Number(r.data[A]));l[y]=D-S}}return c}function Au(r,t=null,e=null){let n=r.size,o=r.dtype,a=M(o),i=B(o)?"float64":o,s=Math.max(0,n-1),u=e?e.length:0,c=t?t.length:0,l=u+s+c,m=N.zeros([l],i),d=m.data,y=0;if(e)if(a)for(let f of e)d[y*2]=f,d[y*2+1]=0,y++;else for(let f of e)d[y++]=f;if(a){let f=r.data;for(let p=0;p<s;p++){let g=f[p*2],h=f[p*2+1],b=f[(p+1)*2],A=f[(p+1)*2+1];d[y*2]=b-g,d[y*2+1]=A-h,y++}}else for(let f=0;f<s;f++){let p=(B(o),Number(r.iget(f))),g=(B(o),Number(r.iget(f+1)));d[y++]=g-p}if(t)if(a)for(let f of t)d[y*2]=f,d[y*2+1]=0,y++;else for(let f of t)d[y++]=f;return m}function bu(r,t=1,e=null){let o=Array.from(r.shape).length,a;if(e===null)a=Array.from({length:o},(u,c)=>c);else if(typeof e=="number"){let u=e<0?o+e:e;if(u<0||u>=o)throw new Error(`axis ${e} is out of bounds for array of dimension ${o}`);a=[u]}else a=e.map(u=>{let c=u<0?o+u:u;if(c<0||c>=o)throw new Error(`axis ${u} is out of bounds for array of dimension ${o}`);return c});let i;if(typeof t=="number")i=a.map(()=>t);else{if(t.length!==a.length)throw new Error("Number of spacings must match number of axes");i=t}let s=[];for(let u=0;u<a.length;u++)s.push(xg(r,a[u],i[u]));return s.length===1?s[0]:s}function xg(r,t,e){let n=Array.from(r.shape),o=n.length,a=n[t];if(a<2)throw new Error(`Shape of array along axis ${t} must be at least 2, but got ${a}`);let i=r.dtype,s=M(i),u=B(i)?"float64":i==="float32"?"float32":s?i:"float64",c=N.zeros(n,u),l=c.data,m=r.strides,d=e,y=2*d,f=r.size;for(let p=0;p<f;p++){let g=p,h=new Array(o);for(let A=o-1;A>=0;A--)h[A]=g%n[A],g=Math.floor(g/n[A]);let b=h[t];if(s){let A=r.data,S=l,D,w;if(b===0){let x=[...h];x[t]=1;let I=0;for(let O=0;O<o;O++)I+=x[O]*m[O];let z=A[p*2],F=A[p*2+1],v=A[I*2],T=A[I*2+1];D=(v-z)/d,w=(T-F)/d}else if(b===a-1){let x=[...h];x[t]=a-2;let I=0;for(let O=0;O<o;O++)I+=x[O]*m[O];let z=A[p*2],F=A[p*2+1],v=A[I*2],T=A[I*2+1];D=(z-v)/d,w=(F-T)/d}else{let x=[...h],I=[...h];x[t]=b+1,I[t]=b-1;let z=0,F=0;for(let q=0;q<o;q++)z+=x[q]*m[q],F+=I[q]*m[q];let v=A[z*2],T=A[z*2+1],O=A[F*2],C=A[F*2+1];D=(v-O)/y,w=(T-C)/y}S[p*2]=D,S[p*2+1]=w}else{let A;if(b===0){let S=[...h];S[t]=1;let D=0;for(let I=0;I<o;I++)D+=S[I]*m[I];let w=(B(i),Number(r.data[p]));A=((B(i),Number(r.data[D]))-w)/d}else if(b===a-1){let S=[...h];S[t]=a-2;let D=0;for(let I=0;I<o;I++)D+=S[I]*m[I];let w=(B(i),Number(r.data[p])),x=(B(i),Number(r.data[D]));A=(w-x)/d}else{let S=[...h],D=[...h];S[t]=b+1,D[t]=b-1;let w=0,x=0;for(let F=0;F<o;F++)w+=S[F]*m[F],x+=D[F]*m[F];let I=(B(i),Number(r.data[w])),z=(B(i),Number(r.data[x]));A=(I-z)/y}l[p]=A}}return c}function hu(r,t,e=-1,n=-1,o=-1){let a=Array.from(r.shape),i=Array.from(t.shape),s=a.length,u=i.length,c=e<0?s+e:e,l=n<0?u+n:n;if(c<0||c>=s)throw new Error(`axisa ${e} is out of bounds for array of dimension ${s}`);if(l<0||l>=u)throw new Error(`axisb ${n} is out of bounds for array of dimension ${u}`);let m=a[c],d=i[l];if(m!==2&&m!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${m})`);if(d!==2&&d!==3)throw new Error(`incompatible dimensions for cross product (dimension must be 2 or 3, got ${d})`);let y=Z(r.dtype,t.dtype),f=M(y),p=(b,A)=>{if(M(b.dtype)){let S=b.data;return[S[A*2],S[A*2+1]]}return[Number(b.iget(A)),0]},g=(b,A,S,D)=>[b*S-A*D,b*D+A*S],h=(b,A,S,D)=>[b-S,A-D];if(s===1&&u===1&&m===3&&d===3){let b=N.zeros([3],y);if(f){let A=b.data,[S,D]=p(r,0),[w,x]=p(r,1),[I,z]=p(r,2),[F,v]=p(t,0),[T,O]=p(t,1),[C,q]=p(t,2),[V,k]=g(w,x,C,q),[W,P]=g(I,z,T,O),[rr,nr]=h(V,k,W,P),[Y,ar]=g(I,z,F,v),[sr,ir]=g(S,D,C,q),[dr,ge]=h(Y,ar,sr,ir),[Ae,be]=g(S,D,T,O),[he,Se]=g(w,x,F,v),[De,Ne]=h(Ae,be,he,Se);A[0]=rr,A[1]=nr,A[2]=dr,A[3]=ge,A[4]=De,A[5]=Ne}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(r.iget(2)),x=Number(t.iget(0)),I=Number(t.iget(1)),z=Number(t.iget(2));A[0]=D*z-w*I,A[1]=w*x-S*z,A[2]=S*I-D*x}return b}if(s===1&&u===1&&m===2&&d===2){let b=N.zeros([],y);if(f){let A=b.data,[S,D]=p(r,0),[w,x]=p(r,1),[I,z]=p(t,0),[F,v]=p(t,1),[T,O]=g(S,D,F,v),[C,q]=g(w,x,I,z),[V,k]=h(T,O,C,q);A[0]=V,A[1]=k}else{let A=Number(r.iget(0)),S=Number(r.iget(1)),D=Number(t.iget(0)),w=Number(t.iget(1));b.data[0]=A*w-S*D}return b}if(s===1&&u===1){if(m===2&&d===3){let b=N.zeros([3],y);if(f){let A=b.data,[S,D]=p(r,0),[w,x]=p(r,1),[I,z]=p(t,0),[F,v]=p(t,1),[T,O]=p(t,2),[C,q]=g(w,x,T,O),[V,k]=g(S,D,T,O),W=-V,P=-k,[rr,nr]=g(S,D,F,v),[Y,ar]=g(w,x,I,z),[sr,ir]=h(rr,nr,Y,ar);A[0]=C,A[1]=q,A[2]=W,A[3]=P,A[4]=sr,A[5]=ir}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(t.iget(0)),x=Number(t.iget(1)),I=Number(t.iget(2));A[0]=D*I,A[1]=-S*I,A[2]=S*x-D*w}return b}else if(m===3&&d===2){let b=N.zeros([3],y);if(f){let A=b.data,[S,D]=p(r,0),[w,x]=p(r,1),[I,z]=p(r,2),[F,v]=p(t,0),[T,O]=p(t,1),[C,q]=g(I,z,T,O),V=-C,k=-q,[W,P]=g(I,z,F,v),[rr,nr]=g(S,D,T,O),[Y,ar]=g(w,x,F,v),[sr,ir]=h(rr,nr,Y,ar);A[0]=V,A[1]=k,A[2]=W,A[3]=P,A[4]=sr,A[5]=ir}else{let A=b.data,S=Number(r.iget(0)),D=Number(r.iget(1)),w=Number(r.iget(2)),x=Number(t.iget(0)),I=Number(t.iget(1));A[0]=-w*I,A[1]=w*x,A[2]=S*I-D*x}return b}}if(s===2&&u===2&&c===1&&l===1){let b=a[0];if(i[0]!==b)throw new Error(`Shape mismatch: a has ${b} vectors, b has ${i[0]} vectors`);if(m===3&&d===3){let A=N.zeros([b,3],y);if(f){let S=A.data;for(let D=0;D<b;D++){let[w,x]=p(r,D*3),[I,z]=p(r,D*3+1),[F,v]=p(r,D*3+2),[T,O]=p(t,D*3),[C,q]=p(t,D*3+1),[V,k]=p(t,D*3+2),[W,P]=g(I,z,V,k),[rr,nr]=g(F,v,C,q),[Y,ar]=h(W,P,rr,nr),[sr,ir]=g(F,v,T,O),[dr,ge]=g(w,x,V,k),[Ae,be]=h(sr,ir,dr,ge),[he,Se]=g(w,x,C,q),[De,Ne]=g(I,z,T,O),[Xy,Jy]=h(he,Se,De,Ne);S[D*3*2]=Y,S[D*3*2+1]=ar,S[(D*3+1)*2]=Ae,S[(D*3+1)*2+1]=be,S[(D*3+2)*2]=Xy,S[(D*3+2)*2+1]=Jy}}else{let S=A.data;for(let D=0;D<b;D++){let w=Number(r.iget(D*3)),x=Number(r.iget(D*3+1)),I=Number(r.iget(D*3+2)),z=Number(t.iget(D*3)),F=Number(t.iget(D*3+1)),v=Number(t.iget(D*3+2));S[D*3]=x*v-I*F,S[D*3+1]=I*z-w*v,S[D*3+2]=w*F-x*z}}return A}if(m===2&&d===2){let A=N.zeros([b],y);if(f){let S=A.data;for(let D=0;D<b;D++){let[w,x]=p(r,D*2),[I,z]=p(r,D*2+1),[F,v]=p(t,D*2),[T,O]=p(t,D*2+1),[C,q]=g(w,x,T,O),[V,k]=g(I,z,F,v),[W,P]=h(C,q,V,k);S[D*2]=W,S[D*2+1]=P}}else{let S=A.data;for(let D=0;D<b;D++){let w=Number(r.iget(D*2)),x=Number(r.iget(D*2+1)),I=Number(t.iget(D*2)),z=Number(t.iget(D*2+1));S[D]=w*z-x*I}}return A}}throw new Error(`cross product not implemented for arrays with shapes ${JSON.stringify(a)} and ${JSON.stringify(i)}`)}var Su=G(()=>{"use strict";K();Q()});function Du(r,t,e=0){U(r.dtype,"bincount","bincount requires integer input.");let n=r.data,o=r.size,a=0;for(let s=0;s<o;s++){let u=Number(n[s]);if(u<0||!Number.isInteger(u))throw new Error("'x' argument must contain non-negative integers");u>a&&(a=u)}let i=Math.max(a+1,e);if(t!==void 0){if(t.size!==o)throw new Error("weights array must have same length as x");let s=t.data,u=new Float64Array(i);for(let c=0;c<o;c++){let l=Number(n[c]);u[l]+=Number(s[c])}return N.fromData(u,[i],"float64")}else{let s=new Float64Array(i);for(let u=0;u<o;u++){let c=Number(n[u]);s[c]++}return N.fromData(s,[i],"float64")}}function Nu(r,t,e=!1){U(r.dtype,"digitize","digitize requires real numbers."),U(t.dtype,"digitize","digitize requires real numbers.");let n=r.data,o=t.data,a=r.size,i=t.size,s=new Float64Array(a),u=!0;i>1&&(u=Number(o[1])>=Number(o[0]));for(let c=0;c<a;c++){let l=Number(n[c]),m;if(u)e?m=Ig(o,i,l):m=_t(o,i,l);else if(e)for(m=0;m<i&&Number(o[m])>=l;)m++;else for(m=0;m<i&&Number(o[m])>l;)m++;s[c]=m}return N.fromData(s,[...r.shape],"float64")}function Ig(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<e?n=a+1:o=a}return n}function _t(r,t,e){let n=0,o=t;for(;n<o;){let a=n+o>>>1;Number(r[a])<=e?n=a+1:o=a}return n}function xu(r,t=10,e,n=!1,o){U(r.dtype,"histogram","histogram requires real numbers."),typeof t!="number"&&U(t.dtype,"histogram","histogram requires real numbers.");let a=r.data,i=r.size,s;if(typeof t=="number"){let m,d;if(e)[m,d]=e;else{m=1/0,d=-1/0;for(let f=0;f<i;f++){let p=Number(a[f]);p<m&&(m=p),p>d&&(d=p)}m===d&&(m=m-.5,d=d+.5)}s=[];let y=(d-m)/t;for(let f=0;f<=t;f++)s.push(m+f*y)}else{let m=t.data;s=[];for(let d=0;d<t.size;d++)s.push(Number(m[d]))}let u=s.length-1,c=new Float64Array(u),l=o?.data;for(let m=0;m<i;m++){let d=Number(a[m]),y=l?Number(l[m]):1,f=_t(s,s.length,d)-1;if(!(f<0)){if(f>=u)if(d===s[u])f=u-1;else continue;c[f]+=y}}if(n){let m=0;for(let d=0;d<u;d++)m+=c[d];for(let d=0;d<u;d++){let y=s[d+1]-s[d];c[d]=c[d]/(m*y)}}return{hist:N.fromData(c,[u],"float64"),bin_edges:N.fromData(new Float64Array(s),[s.length],"float64")}}function wu(r,t,e=10,n,o=!1,a){U(r.dtype,"histogram2d","histogram2d requires real numbers."),U(t.dtype,"histogram2d","histogram2d requires real numbers.");let i=r.data,s=t.data,u=r.size;if(t.size!==u)throw new Error("x and y must have the same length");let c,l,m,d;if(typeof e=="number"?(m=e,d=e):Array.isArray(e)&&e.length===2?(e[0],m=e[0],d=e[1]):(m=10,d=10),typeof m=="number"){let h,b;if(n)[h,b]=n[0];else{h=1/0,b=-1/0;for(let S=0;S<u;S++){let D=Number(i[S]);D<h&&(h=D),D>b&&(b=D)}h===b&&(h-=.5,b+=.5)}c=[];let A=(b-h)/m;for(let S=0;S<=m;S++)c.push(h+S*A)}else{let h=m.data;c=[];for(let b=0;b<m.size;b++)c.push(Number(h[b]))}if(typeof d=="number"){let h,b;if(n)[h,b]=n[1];else{h=1/0,b=-1/0;for(let S=0;S<u;S++){let D=Number(s[S]);D<h&&(h=D),D>b&&(b=D)}h===b&&(h-=.5,b+=.5)}l=[];let A=(b-h)/d;for(let S=0;S<=d;S++)l.push(h+S*A)}else{let h=d.data;l=[];for(let b=0;b<d.size;b++)l.push(Number(h[b]))}let y=c.length-1,f=l.length-1,p=new Float64Array(y*f),g=a?.data;for(let h=0;h<u;h++){let b=Number(i[h]),A=Number(s[h]),S=g?Number(g[h]):1,D=_t(c,c.length,b)-1,w=_t(l,l.length,A)-1;if(D<0||D>=y)if(b===c[y]&&D===y)D=y-1;else continue;if(w<0||w>=f)if(A===l[f]&&w===f)w=f-1;else continue;p[D*f+w]+=S}if(o){let h=0;for(let b=0;b<p.length;b++)h+=p[b];for(let b=0;b<y;b++)for(let A=0;A<f;A++){let S=c[b+1]-c[b],D=l[A+1]-l[A],w=S*D;p[b*f+A]=p[b*f+A]/(h*w)}}return{hist:N.fromData(p,[y,f],"float64"),x_edges:N.fromData(new Float64Array(c),[c.length],"float64"),y_edges:N.fromData(new Float64Array(l),[l.length],"float64")}}function Iu(r,t=10,e,n=!1,o){U(r.dtype,"histogramdd","histogramdd requires real numbers.");let a=r.shape,i=r.data,s,u;if(a.length===1)s=a[0],u=1;else if(a.length===2)s=a[0],u=a[1];else throw new Error("sample must be 1D or 2D array");let c;if(typeof t=="number")c=new Array(u).fill(t);else if(c=t,c.length!==u)throw new Error("bins array length must match number of dimensions");let l=[];for(let h=0;h<u;h++){let b,A;if(e&&e[h])[b,A]=e[h];else{b=1/0,A=-1/0;for(let x=0;x<s;x++){let I=Number(u===1?i[x]:i[x*u+h]);I<b&&(b=I),I>A&&(A=I)}b===A&&(b-=.5,A+=.5)}let S=c[h],D=[],w=(A-b)/S;for(let x=0;x<=S;x++)D.push(b+x*w);l.push(D)}let m=c.slice(),d=m.reduce((h,b)=>h*b,1),y=new Float64Array(d),f=new Array(u);f[u-1]=1;for(let h=u-2;h>=0;h--)f[h]=f[h+1]*c[h+1];let p=o?.data;for(let h=0;h<s;h++){let b=p?Number(p[h]):1,A=0,S=!1;for(let D=0;D<u;D++){let w=Number(u===1?i[h]:i[h*u+D]),x=l[D],I=c[D],z=_t(x,x.length,w)-1;if(z<0||z>=I)if(w===x[I]&&z===I)z=I-1;else{S=!0;break}A+=z*f[D]}S||(y[A]+=b)}if(n){let h=0;for(let A=0;A<d;A++)h+=y[A];let b=new Float64Array(d);for(let A=0;A<d;A++){let S=1,D=A;for(let w=0;w<u;w++){let x=Math.floor(D/f[w])%c[w],I=l[w];S*=I[x+1]-I[x]}b[A]=S}for(let A=0;A<d;A++)y[A]=y[A]/(h*b[A])}let g=l.map(h=>N.fromData(new Float64Array(h),[h.length],"float64"));return{hist:N.fromData(y,m,"float64"),edges:g}}function Cn(r,t,e="full"){let n=r.data,o=t.data,a=r.size,i=t.size,s=M(r.dtype)||M(t.dtype),u=a+i-1;if(s){let l=new Float64Array(u),m=new Float64Array(u),d=M(r.dtype),y=M(t.dtype);for(let p=0;p<u;p++){let g=0,h=0,b=p-i+1;for(let A=0;A<a;A++){let S=A-b;if(S>=0&&S<i){let D,w,x,I;d?(D=n[A*2],w=n[A*2+1]):(D=Number(n[A]),w=0),y?(x=o[S*2],I=o[S*2+1]):(x=Number(o[S]),I=0),g+=D*x+w*I,h+=w*x-D*I}}l[p]=g,m[p]=h}let f=(p,g,h,b=0)=>{let A=new Float64Array(h*2);for(let S=0;S<h;S++)A[S*2]=p[b+S],A[S*2+1]=g[b+S];return N.fromData(A,[h],"complex128")};if(e==="full")return f(l,m,u);if(e==="same"){let p=Math.floor((u-a)/2);return f(l,m,a,p)}else{let p=Math.max(a,i)-Math.min(a,i)+1,g=Math.min(a,i)-1;return f(l,m,p,g)}}let c=new Float64Array(u);for(let l=0;l<u;l++){let m=0,d=l-i+1;for(let y=0;y<a;y++){let f=y-d;f>=0&&f<i&&(m+=Number(n[y])*Number(o[f]))}c[l]=m}if(e==="full")return N.fromData(c,[u],"float64");if(e==="same"){let l=Math.floor((u-a)/2),m=new Float64Array(a);for(let d=0;d<a;d++)m[d]=c[l+d];return N.fromData(m,[a],"float64")}else{let l=Math.max(a,i)-Math.min(a,i)+1,m=Math.min(a,i)-1,d=new Float64Array(l);for(let y=0;y<l;y++)d[y]=c[m+y];return N.fromData(d,[l],"float64")}}function zu(r,t,e="full"){let n=t.data,o=t.size,a=M(t.dtype),i;if(a){let s=new Float64Array(o*2);for(let u=0;u<o;u++){let c=o-1-u;s[u*2]=n[c*2],s[u*2+1]=n[c*2+1]}i=N.fromData(s,[o],t.dtype)}else{let s=new Float64Array(o);for(let u=0;u<o;u++)s[u]=Number(n[o-1-u]);i=N.fromData(s,[o],"float64")}if(a){let s=i.data;for(let u=0;u<o;u++)s[u*2+1]=-s[u*2+1]}return Cn(r,i,e)}function Un(r,t,e=!0,n=!1,o){let a=r.shape,i=r.data,s=M(r.dtype)||t!==void 0&&M(t.dtype),u;if(o!==void 0?u=o:u=n?0:1,a.length===1)if(t!==void 0){let f=t.data,p=r.size,g=M(r.dtype),h=M(t.dtype);if(t.size!==p)throw new Error("m and y must have same length");if(s){let I=0,z=0,F=0,v=0;for(let Y=0;Y<p;Y++)g?(I+=i[Y*2],z+=i[Y*2+1]):I+=Number(i[Y]),h?(F+=f[Y*2],v+=f[Y*2+1]):F+=Number(f[Y]);I/=p,z/=p,F/=p,v/=p;let T=0,O=0,C=0,q=0,V=0,k=0,W=0,P=0;for(let Y=0;Y<p;Y++){let ar,sr,ir,dr;g?(ar=i[Y*2]-I,sr=i[Y*2+1]-z):(ar=Number(i[Y])-I,sr=0),h?(ir=f[Y*2]-F,dr=f[Y*2+1]-v):(ir=Number(f[Y])-F,dr=0),T+=ar*ar+sr*sr,C+=ir*ir+dr*dr,V+=ar*ir+sr*dr,k+=sr*ir-ar*dr,W+=ir*ar+dr*sr,P+=dr*ar-ir*sr}let rr=p-u;if(rr<=0){let Y=new Float64Array(8);return Y.fill(NaN),N.fromData(Y,[2,2],"complex128")}T/=rr,C/=rr,V/=rr,k/=rr,W/=rr,P/=rr;let nr=new Float64Array(8);return nr[0]=T,nr[1]=O,nr[2]=V,nr[3]=k,nr[4]=W,nr[5]=P,nr[6]=C,nr[7]=q,N.fromData(nr,[2,2],"complex128")}let b=0,A=0;for(let I=0;I<p;I++)b+=Number(i[I]),A+=Number(f[I]);b/=p,A/=p;let S=0,D=0,w=0;for(let I=0;I<p;I++){let z=Number(i[I])-b,F=Number(f[I])-A;S+=z*z,D+=F*F,w+=z*F}let x=p-u;return x<=0?N.fromData(new Float64Array([NaN,NaN,NaN,NaN]),[2,2],"float64"):(S/=x,D/=x,w/=x,N.fromData(new Float64Array([S,w,w,D]),[2,2],"float64"))}else{let f=r.size;if(s){let b=0,A=0;for(let w=0;w<f;w++)b+=i[w*2],A+=i[w*2+1];b/=f,A/=f;let S=0;for(let w=0;w<f;w++){let x=i[w*2]-b,I=i[w*2+1]-A;S+=x*x+I*I}let D=f-u;return D<=0?N.fromData(new Float64Array([NaN,0]),[],"complex128"):(S/=D,N.fromData(new Float64Array([S,0]),[],"complex128"))}let p=0;for(let b=0;b<f;b++)p+=Number(i[b]);p/=f;let g=0;for(let b=0;b<f;b++){let A=Number(i[b])-p;g+=A*A}let h=f-u;return h<=0?N.fromData(new Float64Array([NaN]),[],"float64"):(g/=h,N.fromData(new Float64Array([g]),[],"float64"))}let c,l;e?(c=a[0],l=a[1]):(c=a[1],l=a[0]);let m=l-u;if(s){let f=new Float64Array(c),p=new Float64Array(c);for(let h=0;h<c;h++){let b=0,A=0;for(let S=0;S<l;S++){let D=e?h*l+S:S*c+h;b+=i[D*2],A+=i[D*2+1]}f[h]=b/l,p[h]=A/l}let g=new Float64Array(c*c*2);if(m<=0)return g.fill(NaN),N.fromData(g,[c,c],"complex128");for(let h=0;h<c;h++)for(let b=0;b<c;b++){let A=0,S=0;for(let w=0;w<l;w++){let x=e?h*l+w:w*c+h,I=e?b*l+w:w*c+b,z=i[x*2]-f[h],F=i[x*2+1]-p[h],v=i[I*2]-f[b],T=i[I*2+1]-p[b];A+=z*v+F*T,S+=F*v-z*T}let D=(h*c+b)*2;g[D]=A/m,g[D+1]=S/m}return N.fromData(g,[c,c],"complex128")}let d=new Float64Array(c);for(let f=0;f<c;f++){let p=0;for(let g=0;g<l;g++){let h=e?f*l+g:g*c+f;p+=Number(i[h])}d[f]=p/l}let y=new Float64Array(c*c);if(m<=0)return y.fill(NaN),N.fromData(y,[c,c],"float64");for(let f=0;f<c;f++)for(let p=f;p<c;p++){let g=0;for(let b=0;b<l;b++){let A=e?f*l+b:b*c+f,S=e?p*l+b:b*c+p,D=Number(i[A])-d[f],w=Number(i[S])-d[p];g+=D*w}let h=g/m;y[f*c+p]=h,y[p*c+f]=h}return N.fromData(y,[c,c],"float64")}function _u(r,t,e=!0){let n=M(r.dtype)||t!==void 0&&M(t.dtype);if(r.shape.length===1&&t===void 0)return n?N.fromData(new Float64Array([1,0]),[],"complex128"):N.fromData(new Float64Array([1]),[],"float64");let o=Un(r,t,e,!1),a=o.data,s=o.shape[0];if(n){let c=new Float64Array(s*s*2);for(let l=0;l<s;l++)for(let m=0;m<s;m++){let d=a[(l*s+m)*2],y=a[(l*s+m)*2+1],f=a[(l*s+l)*2],p=a[(m*s+m)*2],g=(l*s+m)*2;if(f<=0||p<=0)c[g]=NaN,c[g+1]=NaN;else{let h=Math.sqrt(f*p);c[g]=d/h,c[g+1]=y/h}}return N.fromData(c,[s,s],"complex128")}let u=new Float64Array(s*s);for(let c=0;c<s;c++)for(let l=0;l<s;l++){let m=Number(a[c*s+l]),d=Number(a[c*s+c]),y=Number(a[l*s+l]);d<=0||y<=0?u[c*s+l]=NaN:u[c*s+l]=m/Math.sqrt(d*y)}return N.fromData(u,[s,s],"float64")}function vu(r,t=10,e,n){U(r.dtype,"histogram_bin_edges","histogram_bin_edges requires real numbers.");let o=r.data,a=r.size,i,s;if(e)[i,s]=e;else{i=1/0,s=-1/0;for(let m=0;m<a;m++){let d=Number(o[m]);isNaN(d)||(d<i&&(i=d),d>s&&(s=d))}!isFinite(i)||!isFinite(s)?(i=0,s=1):i===s&&(i=i-.5,s=s+.5)}let u;typeof t=="number"?u=t:u=On(o,a,i,s,t),u=Math.max(1,Math.round(u));let c=new Float64Array(u+1),l=(s-i)/u;for(let m=0;m<=u;m++)c[m]=i+m*l;return N.fromData(c,[u+1],"float64")}function On(r,t,e,n,o){if(t===0)return 1;let a=n-e;if(a===0)return 1;let i=[],s=0;for(let p=0;p<t;p++){let g=Number(r[p]);isNaN(g)||(i.push(g),s+=g)}let u=i.length;if(u===0)return 1;let c=s/u,l=0;for(let p=0;p<u;p++){let g=i[p]-c;l+=g*g}let m=Math.sqrt(l/u);i.sort((p,g)=>p-g);let d=i[Math.floor(u*.25)]??0,f=(i[Math.floor(u*.75)]??0)-d;switch(o){case"sqrt":return Math.ceil(Math.sqrt(u));case"sturges":return Math.ceil(Math.log2(u)+1);case"rice":return Math.ceil(2*Math.pow(u,1/3));case"scott":{if(m===0)return 1;let p=3.5*m/Math.pow(u,1/3);return Math.ceil(a/p)}case"fd":{if(f===0)return On(r,t,e,n,"sturges");let p=2*f/Math.pow(u,1/3);return Math.ceil(a/p)}case"doane":{let p=zg(i,c,m),g=Math.sqrt(6*(u-2)/((u+1)*(u+3)));return Math.ceil(1+Math.log2(u)+Math.log2(1+Math.abs(p)/g))}case"stone":return On(r,t,e,n,"sturges");default:{let p=Math.ceil(Math.log2(u)+1),g=f===0?p:Math.ceil(a/(2*f/Math.pow(u,1/3)));return Math.max(p,g)}}}function zg(r,t,e){if(e===0)return 0;let n=r.length,o=0;for(let a=0;a<n;a++)o+=Math.pow((r[a]-t)/e,3);return o/n}function Fu(r,t,e=1,n=-1){U(r.dtype,"trapezoid","trapezoid requires real numbers."),t!==void 0&&U(t.dtype,"trapezoid","trapezoid requires real numbers.");let o=Array.from(r.shape),a=o.length;if(n<0&&(n=a+n),n<0||n>=a)throw new Error(`axis ${n} is out of bounds for array of dimension ${a}`);let i=o[n];if(i<2)throw new Error("trapezoid requires at least 2 samples along axis");let s;if(t!==void 0){if(t.size!==i)throw new Error(`x array size (${t.size}) must match y axis size (${i})`);let p=t.data;s=new Float64Array(i);for(let g=0;g<i;g++)s[g]=Number(p[g])}else{s=new Float64Array(i);for(let p=0;p<i;p++)s[p]=p*e}let u=[...o];if(u.splice(n,1),a===1){let p=r.data,g=0;for(let h=0;h<i-1;h++){let b=Number(p[h]),A=Number(p[h+1]),S=s[h+1]-s[h];g+=.5*(b+A)*S}return g}let c=u.reduce((p,g)=>p*g,1),l=new Float64Array(c),m=new Array(a),d=1;for(let p=a-1;p>=0;p--)m[p]=d,d*=o[p];let y=new Array(u.length);d=1;for(let p=u.length-1;p>=0;p--)y[p]=d,d*=u[p];let f=r.data;for(let p=0;p<c;p++){let g=[],h=p;for(let D=0;D<u.length;D++){let w=Math.floor(h/y[D]);h%=y[D],g.push(w)}let b=[],A=0;for(let D=0;D<a;D++)D===n?b.push(0):(b.push(g[A]),A++);let S=0;for(let D=0;D<i-1;D++){b[n]=D;let w=0;for(let v=0;v<a;v++)w+=b[v]*m[v];b[n]=D+1;let x=0;for(let v=0;v<a;v++)x+=b[v]*m[v];let I=Number(f[w]),z=Number(f[x]),F=s[D+1]-s[D];S+=.5*(I+z)*F}l[p]=S}return u.length===0?l[0]:N.fromData(l,u,"float64")}var Mu=G(()=>{"use strict";K();Q()});function vr(r,t=tr){let e=N.zeros(r,t);return new _(e)}function $n(r,t=tr){let e=N.ones(r,t);return new _(e)}function vg(r){let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function Bu(r){return typeof r=="bigint"?!0:Array.isArray(r)?r.some(t=>Bu(t)):!1}function Eu(r){return wo(r)?!0:Array.isArray(r)?r.some(t=>Eu(t)):!1}function Fg(r){let t=[];function e(n){Array.isArray(n)?n.forEach(o=>e(o)):t.push(n)}return e(r),t}function L(r,t){if(r instanceof _)return!t||r.dtype===t?r.copy():r.astype(t);let e=Bu(r),n=Eu(r),o=vg(r),a=o.reduce((y,f)=>y*f,1),i=t;i||(n?i="complex128":e?i="int64":i=tr);let s=M(i),u=j(i);if(!u)throw new Error(`Cannot create array with dtype ${i}`);let c=s?a*2:a,l=new u(c),m=Fg(r);if(B(i)){let y=l;for(let f=0;f<a;f++){let p=m[f];y[f]=typeof p=="bigint"?p:BigInt(Math.round(Number(p)))}}else if(i==="bool"){let y=l;for(let f=0;f<a;f++)y[f]=m[f]?1:0}else if(s){let y=l;for(let f=0;f<a;f++){let p=m[f],g,h;p instanceof E?(g=p.re,h=p.im):typeof p=="object"&&p!==null&&"re"in p?(g=p.re,h=p.im??0):(g=Number(p),h=0),y[f*2]=g,y[f*2+1]=h}}else{let y=l;for(let f=0;f<a;f++){let p=m[f];y[f]=Number(p)}}let d=N.fromData(l,o,i);return new _(d)}function Tu(r,t,e=1,n=tr){let o=r,a=t;if(t===void 0&&(o=0,a=r),a===void 0)throw new Error("stop is required");let i=Math.max(0,Math.ceil((a-o)/e)),s=j(n);if(!s)throw new Error(`Cannot create arange array with dtype ${n}`);let u=new s(i);if(B(n))for(let l=0;l<i;l++)u[l]=BigInt(Math.round(o+l*e));else if(n==="bool")for(let l=0;l<i;l++)u[l]=o+l*e!==0?1:0;else for(let l=0;l<i;l++)u[l]=o+l*e;let c=N.fromData(u,[i],n);return new _(c)}function Ou(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return L([],n);if(e===1)return L([r],n);let o=j(n);if(!o)throw new Error(`Cannot create linspace array with dtype ${n}`);let a=new o(e),i=(t-r)/(e-1);if(B(n))for(let u=0;u<e;u++)a[u]=BigInt(Math.round(r+u*i));else if(n==="bool")for(let u=0;u<e;u++)a[u]=r+u*i!==0?1:0;else for(let u=0;u<e;u++)a[u]=r+u*i;let s=N.fromData(a,[e],n);return new _(s)}function Cu(r,t,e=50,n=10,o=tr){if(e<0)throw new Error("num must be non-negative");if(e===0)return L([],o);if(e===1)return L([Math.pow(n,r)],o);let a=j(o);if(!a)throw new Error(`Cannot create logspace array with dtype ${o}`);let i=new a(e),s=(t-r)/(e-1);if(B(o))for(let c=0;c<e;c++){let l=r+c*s;i[c]=BigInt(Math.round(Math.pow(n,l)))}else if(o==="bool")for(let c=0;c<e;c++){let l=r+c*s;i[c]=Math.pow(n,l)!==0?1:0}else for(let c=0;c<e;c++){let l=r+c*s;i[c]=Math.pow(n,l)}let u=N.fromData(i,[e],o);return new _(u)}function Uu(r,t,e=50,n=tr){if(e<0)throw new Error("num must be non-negative");if(r===0||t===0)throw new Error("Geometric sequence cannot include zero");if(e===0)return L([],n);if(e===1)return L([r],n);let o=Math.sign(r),a=Math.sign(t);if(o!==a)throw new Error("Geometric sequence cannot contain both positive and negative values");let i=j(n);if(!i)throw new Error(`Cannot create geomspace array with dtype ${n}`);let s=new i(e),u=Math.log(Math.abs(r)),l=(Math.log(Math.abs(t))-u)/(e-1);if(B(n))for(let d=0;d<e;d++){let y=o*Math.exp(u+d*l);s[d]=BigInt(Math.round(y))}else if(n==="bool")for(let d=0;d<e;d++){let y=o*Math.exp(u+d*l);s[d]=y!==0?1:0}else for(let d=0;d<e;d++){let y=o*Math.exp(u+d*l);s[d]=y}let m=N.fromData(s,[e],n);return new _(m)}function Rn(r,t,e=0,n=tr){let o=t??r,a=vr([r,o],n),i=a.data;if(B(n)){let s=i;for(let u=0;u<r;u++){let c=u+e;c>=0&&c<o&&(s[u*o+c]=BigInt(1))}}else{let s=i;for(let u=0;u<r;u++){let c=u+e;c>=0&&c<o&&(s[u*o+c]=1)}}return a}function kn(r,t=tr){return vr(r,t)}function qn(r,t,e){let n=e;n||(typeof t=="bigint"?n="int64":typeof t=="boolean"?n="bool":Number.isInteger(t)?n="int32":n=tr);let o=j(n);if(!o)throw new Error(`Cannot create full array with dtype ${n}`);let a=r.reduce((u,c)=>u*c,1),i=new o(a);if(B(n)){let u=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));i.fill(u)}else n==="bool"?i.fill(t?1:0):i.fill(Number(t));let s=N.fromData(i,r,n);return new _(s)}function $u(r,t=tr){return Rn(r,r,0,t)}function st(r,t){return r instanceof _?!t||r.dtype===t?r:r.astype(t):L(r,t)}function Ru(r,t){let e=st(r,t);for(let n=0;n<e.size;n++)if(!isFinite(Number(e.data[n])))throw new Error("array must not contain infs or NaNs");return e}function ku(r,t,e){let n=Array.isArray(e)?e:e?[e]:[],o=new Set(n.map(i=>{let s=i.toUpperCase();return s==="C_CONTIGUOUS"||s==="CONTIGUOUS"?"C":s==="F_CONTIGUOUS"||s==="FORTRAN"?"F":s==="WRITEABLE"?"W":s==="ENSUREARRAY"?"E":s==="OWNDATA"?"O":s})),a=r;return t&&r.dtype!==t&&(a=r.astype(t)),(o.has("C")||o.has("W")||o.has("O"))&&a===r&&(a=r.copy()),a}function qu(r){return r.copy()}function Vu(r,t){return vr(Array.from(r.shape),t??r.dtype)}function Pu(r,t){return $n(Array.from(r.shape),t??r.dtype)}function ju(r,t){return kn(Array.from(r.shape),t??r.dtype)}function Lu(r,t,e){return qn(Array.from(r.shape),t,e??r.dtype)}function Wu(r,t){return st(r,t)}function Gu(r,t){let e=st(r,t);return e.flags.C_CONTIGUOUS?e:e.copy()}function Zu(r,t){return st(r,t).copy()}function Vn(r,t=0){if(r.ndim===1){let e=r.size,n=e+Math.abs(t),o=vr([n,n],r.dtype);for(let a=0;a<e;a++){let i=t>=0?a:a-t,s=t>=0?a+t:a;o.set([i,s],r.get([a]))}return o}else if(r.ndim===2){let[e,n]=r.shape,o,a,i;if(t>=0?(o=0,a=t,i=Math.min(e,n-t)):(o=-t,a=0,i=Math.min(e+t,n)),i<=0)return vr([0],r.dtype);let s=j(r.dtype),u=new s(i);for(let l=0;l<i;l++){let m=r.get([o+l,a+l]);B(r.dtype)?u[l]=typeof m=="bigint"?m:BigInt(m):u[l]=m}let c=N.fromData(u,[i],r.dtype);return new _(c)}else throw new Error("Input must be 1-D or 2-D")}function Yu(r,t=0){let e=r.flatten();return Vn(e,t)}function Hu(r,t,e=tr){let n=t.reduce((c,l)=>c*l,1),o=j(e);if(!o)throw new Error(`Cannot create array with dtype ${e}`);let a=new o(n),i=t.length,s=new Array(i).fill(0);for(let c=0;c<n;c++){let l=r(...s);B(e)?a[c]=typeof l=="bigint"?l:BigInt(Number(l)):e==="bool"?a[c]=l?1:0:a[c]=Number(l);for(let m=i-1;m>=0&&(s[m]++,!(s[m]<t[m]));m--)s[m]=0}let u=N.fromData(a,t,e);return new _(u)}function Xu(...r){let t=[],e="xy";for(let s of r)s instanceof _?t.push(s):typeof s=="object"&&"indexing"in s&&(e=s.indexing||"xy");if(t.length===0)return[];if(t.length===1)return[t[0].copy()];let n=t.map(s=>s.size);e==="xy"&&t.length>=2&&(t=[t[1],t[0],...t.slice(2)],[n[0],n[1]]=[n[1],n[0]]);let o=n,a=o.length,i=[];for(let s=0;s<t.length;s++){let u=t[s],c=u.size,l=new Array(a).fill(1);l[s]=c;let m=u.reshape(...l),d=Yt(m.storage,o),y=_._fromStorage(d.copy());i.push(y)}return e==="xy"&&i.length>=2&&([i[0],i[1]]=[i[1],i[0]]),i}function Ju(r,t,e=0,n=tr){let o=t??r,a=vr([r,o],n);for(let i=0;i<r;i++)for(let s=0;s<=i+e&&s<o;s++)s>=0&&a.set([i,s],1);return a}function Qu(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((s,u)=>s*u,1);for(let s=0;s<i;s++)for(let u=0;u<o;u++)for(let c=0;c<a;c++)if(c>u+t){let l=[],m=s;for(let d=n.length-3;d>=0;d--)l.unshift(m%n[d]),m=Math.floor(m/n[d]);l.push(u,c),e.set(l,0)}return e}function Ku(r,t=0){if(r.ndim<2)throw new Error("Input must have at least 2 dimensions");let e=r.copy(),n=e.shape,o=n[n.length-2],a=n[n.length-1],i=n.slice(0,-2).reduce((s,u)=>s*u,1);for(let s=0;s<i;s++)for(let u=0;u<o;u++)for(let c=0;c<a;c++)if(c<u+t){let l=[],m=s;for(let d=n.length-3;d>=0;d--)l.unshift(m%n[d]),m=Math.floor(m/n[d]);l.push(u,c),e.set(l,0)}return e}function rc(r,t,e=!1){if(r.ndim!==1)throw new Error("Input must be 1-D");let n=r.size,o=t??n;if(o<0)throw new Error("N must be non-negative");let a=vr([n,o],r.dtype);for(let i=0;i<n;i++){let s=r.get([i]);for(let u=0;u<o;u++){let c=e?u:o-1-u;a.set([i,u],Math.pow(s,c))}}return a}function tc(r,t=tr,e=-1,n=0){let o,a=n;r instanceof ArrayBuffer?o=r:(o=r.buffer,a+=r.byteOffset);let i=Mg(t),s=o.byteLength-a,u=Math.floor(s/i),c=e<0?u:Math.min(e,u);if(c<=0)return L([],t);let l=j(t);if(!l)throw new Error(`Unsupported dtype: ${t}`);let m=new l(o,a,c),d=N.fromData(m,[c],t);return new _(d)}function ec(r,t=tr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return L(n,t)}function nc(r,t=tr,e=-1){let n=[],o=0;for(let a of r){if(e>=0&&o>=e)break;n.push(a),o++}return L(n,t)}function oc(r,t=tr,e=-1,n=""){let o;n===""?o=r.trim().split(/\s+/):o=r.split(n);let a=[],i=0;for(let s of o){if(e>=0&&i>=e)break;let u=s.trim();u!==""&&(B(t)?a.push(BigInt(u)):a.push(parseFloat(u)),i++)}return L(a,t)}function Mg(r){switch(r){case"int8":case"uint8":case"bool":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;case"int64":case"uint64":case"float64":return 8;default:return 8}}function ac(r){return r.sqrt()}function Pn(r,t){return r.power(t)}function sc(r){return r.exp()}function ic(r){return r.exp2()}function uc(r){return r.expm1()}function cc(r){return r.log()}function lc(r){return r.log2()}function fc(r){return r.log10()}function mc(r){return r.log1p()}function pc(r,t){return r.logaddexp(t)}function yc(r,t){return r.logaddexp2(t)}function jn(r){return r.absolute()}function dc(r){return r.negative()}function gc(r){return r.sign()}function Ac(r,t){return r.mod(t)}function Ln(r,t){return r.divide(t)}function bc(r,t){return r.floor_divide(t)}function hc(r){return r.positive()}function Sc(r){return r.reciprocal()}function Dc(r,t){return r.dot(t)}function Nc(r){return r.trace()}function xc(r,t=0,e=0,n=1){let o=Ke(r.storage,t,e,n);return _._fromStorage(o)}function wc(r,t){let e=Pa(r.storage,t.storage);return _._fromStorage(e)}function Ic(r,t){return r.transpose(t)}function zc(r,t){return r.inner(t)}function _c(r,t){return r.outer(t)}function vc(r,t,e=2){return r.tensordot(t,e)}function Fc(r){return r.sin()}function Mc(r){return r.cos()}function Bc(r){return r.tan()}function Wn(r){return r.arcsin()}function Gn(r){return r.arccos()}function Zn(r){return r.arctan()}function Yn(r,t){return r.arctan2(t)}function Ec(r,t){return r.hypot(t)}function Tc(r){return r.degrees()}function Oc(r){return r.radians()}function Cc(r){return r.radians()}function Uc(r){return r.degrees()}function $c(r){return r.sinh()}function Rc(r){return r.cosh()}function kc(r){return r.tanh()}function Hn(r){return r.arcsinh()}function Xn(r){return r.arccosh()}function Jn(r){return r.arctanh()}function qc(r,t,e){return r.swapaxes(t,e)}function Vc(r,t,e){return r.moveaxis(t,e)}function Vr(r,t=0){if(r.length===0)throw new Error("need at least one array to concatenate");let e=r.map(o=>o.storage),n=Rr(e,t);return _._fromStorage(n)}function Pc(r,t=0){if(r.length===0)throw new Error("need at least one array to stack");let e=r.map(o=>o.storage),n=Aa(e,t);return _._fromStorage(n)}function Qn(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ba(t);return _._fromStorage(e)}function jc(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Ye(t);return _._fromStorage(e)}function Lc(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=ha(t);return _._fromStorage(e)}function Wc(r,t=0){return Vr(r,t)}function Gc(r,t=0){return Ua(r.storage,t).map(n=>_._fromStorage(n))}function Zc(r){let t=r.map(n=>n.storage),e=$a(t);return _._fromStorage(e)}function Yc(r,t,e=0){return Sa(r.storage,t,e).map(o=>_._fromStorage(o,r.base??r))}function Hc(r,t,e=0){return St(r.storage,t,e).map(o=>_._fromStorage(o,r.base??r))}function Xc(r,t){return Na(r.storage,t).map(n=>_._fromStorage(n,r.base??r))}function Jc(r,t){return xa(r.storage,t).map(n=>_._fromStorage(n,r.base??r))}function Qc(r,t){let e=wa(r.storage,t);return _._fromStorage(e)}function Kc(r,t,e){return r.repeat(t,e)}function rl(r){return r.ravel()}function tl(r){return r.flatten()}function el(r,t){r.fill(t)}function nl(r,...t){return r.item(...t)}function ol(r){return r.tolist()}function al(r){return r.tobytes()}function sl(r,t=!1){return r.byteswap(t)}function il(r,t){return r.view(t)}function ul(r,t,e="",n=""){r.tofile(t,e,n)}function cl(r,t){return r.reshape(...t)}function ll(r,t){return r.squeeze(t)}function fl(r,t){return r.expand_dims(t)}function re(r,t){let e=za(r.storage,t);return _._fromStorage(e)}function ml(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return re(r,1)}function pl(r){if(r.ndim<2)throw new Error("Input must be at least 2-D");return re(r,0)}function yl(r,t=1,e=[0,1]){let n=_a(r.storage,t,e);return _._fromStorage(n)}function dl(r,t,e){let n=va(r.storage,t,e);return _._fromStorage(n)}function gl(r,t,e=0){let n=Fa(r.storage,t,e);return _._fromStorage(n,r.base??r)}function Al(...r){let t=r.map(o=>o.storage),n=Ta(t).map((o,a)=>o===t[a]?r[a]:_._fromStorage(o));return n.length===1?n[0]:n}function bl(...r){let t=r.map(o=>o.storage),n=Oa(t).map((o,a)=>o===t[a]?r[a]:_._fromStorage(o));return n.length===1?n[0]:n}function hl(...r){let t=r.map(o=>o.storage),n=Ca(t).map((o,a)=>o===t[a]?r[a]:_._fromStorage(o));return n.length===1?n[0]:n}function Sl(r,t){return Ma(r.storage,t).map(n=>_._fromStorage(n,r.base??r))}function Dl(r){if(r.length===0)throw new Error("need at least one array to stack");let t=r.map(n=>n.storage),e=Ba(t);return _._fromStorage(e)}function Nl(r){return Qn(r)}function xl(r,t){let e=Ea(r.storage,t);return _._fromStorage(e)}function wl(r,t,e){let n=t instanceof _?t:L(t,r.dtype);if(e===void 0){let o=r.flatten(),a=n.flatten();return Vr([o,a])}return Vr([r,n],e)}function Il(r,t,e){let n=r.dtype;if(e===void 0){let y=r.flatten(),p=(Array.isArray(t)?t:[t]).map(S=>S<0?y.size+S:S),g=[];for(let S=0;S<y.size;S++)p.includes(S)||g.push(S);let h=j(n),b=new h(g.length);for(let S=0;S<g.length;S++){let D=y.get([g[S]]);B(n)?b[S]=typeof D=="bigint"?D:BigInt(D):b[S]=D}let A=N.fromData(b,[g.length],n);return new _(A)}let o=r.shape,a=o.length,i=e<0?a+e:e;if(i<0||i>=a)throw new Error(`axis ${e} is out of bounds for array of dimension ${a}`);let s=o[i],u=Array.isArray(t)?t:[t],c=new Set(u.map(y=>y<0?s+y:y)),l=[],m=0;for(let y=0;y<=s;y++)(c.has(y)||y===s)&&(y>m&&l.push([m,y]),m=y+1);if(l.length===0){let y=[...o];return y[i]=0,vr(y,n)}let d=[];for(let[y,f]of l){let p=o.map(()=>":");p[i]=`${y}:${f}`,d.push(r.slice(...p))}return Vr(d,i)}function zl(r,t,e,n){let o=e instanceof _?e:L(e,r.dtype);if(n===void 0){let m=r.flatten(),d=o.flatten(),y=t<0?m.size+t:t;if(y<0||y>m.size)throw new Error(`index ${t} is out of bounds for array of size ${m.size}`);let f=y>0?m.slice(`0:${y}`):null,p=y<m.size?m.slice(`${y}:`):null,g=[];return f&&g.push(f),g.push(d),p&&g.push(p),Vr(g)}let a=r.shape,i=a.length,s=n<0?i+n:n;if(s<0||s>=i)throw new Error(`axis ${n} is out of bounds for array of dimension ${i}`);let u=a[s],c=t<0?u+t:t;if(c<0||c>u)throw new Error(`index ${t} is out of bounds for axis ${n} with size ${u}`);let l=[];if(c>0){let m=a.map(()=>":");m[s]=`0:${c}`,l.push(r.slice(...m))}if(l.push(o),c<u){let m=a.map(()=>":");m[s]=`${c}:`,l.push(r.slice(...m))}return Vr(l,s)}function _l(r,t,e="constant",n=0){let o=r.shape,a=o.length,i=r.dtype,s;if(typeof t=="number"?s=o.map(()=>[t,t]):Array.isArray(t)&&typeof t[0]=="number"?s=o.map(()=>t):s=t,s.length!==a)throw new Error(`pad_width must have ${a} elements`);let u=o.map((p,g)=>p+s[g][0]+s[g][1]),c=u.reduce((p,g)=>p*g,1),l=j(i),m=new l(c),d=B(i);e==="constant"&&(d?m.fill(BigInt(n)):m.fill(n));let y=new Array(a).fill(0);for(let p=0;p<c;p++){let g=!0,h=[];for(let A=0;A<a;A++){let[S]=s[A],D=y[A]-S;if(D<0||D>=o[A]){g=!1;break}h.push(D)}let b;if(g)b=r.get(h);else if(e==="constant"){for(let A=a-1;A>=0&&(y[A]++,!(y[A]<u[A]));A--)y[A]=0;continue}else{let A=[];for(let S=0;S<a;S++){let[D]=s[S],w=y[S]-D,x=o[S];w<0?e==="edge"?w=0:e==="reflect"?(w=-w,w>=x&&(w=x-1)):e==="symmetric"?(w=-w-1,w>=x&&(w=x-1),w<0&&(w=0)):e==="wrap"&&(w=(w%x+x)%x):w>=x&&(e==="edge"?w=x-1:e==="reflect"?(w=2*x-w-2,w<0&&(w=0)):e==="symmetric"?(w=2*x-w-1,w<0&&(w=0)):e==="wrap"&&(w=w%x)),A.push(Math.max(0,Math.min(x-1,w)))}b=r.get(A)}d?m[p]=typeof b=="bigint"?b:BigInt(Number(b)):m[p]=Number(b);for(let A=a-1;A>=0&&(y[A]++,!(y[A]<u[A]));A--)y[A]=0}let f=N.fromData(m,u,i);return new _(f)}function vl(r,t){let e=Yt(r.storage,t);return _._fromStorage(e,r.base??r)}function Fl(...r){let t=r.map(n=>n.storage);return qs(t).map((n,o)=>_._fromStorage(n,r[o].base??r[o]))}function Ml(...r){return ze(...r)}function Bl(r,t,e){return r.take(t,e)}function El(r,t,e){r.put(t,e)}function Tl(r,t,e=0){return r.iindex(t,e)}function Ol(r,t,e){return r.bindex(t,e)}function Cl(r,t,e){if(e!==void 0)throw new Error("copyto with where parameter is not yet implemented");let n=r.storage,o=r.shape,a=r.size,i=r.dtype;if(typeof t=="number"||typeof t=="bigint"){r.fill(t);return}let s=t.storage,u=t.shape,c=Sr([u,o]);if(!c)throw new Error(`could not broadcast input array from shape (${u.join(",")}) into shape (${o.join(",")})`);if(c.length!==o.length||!c.every((m,d)=>m===o[d]))throw new Error(`could not broadcast input array from shape (${u.join(",")}) into shape (${o.join(",")})`);let l=Yt(s,o);if(B(i))for(let m=0;m<a;m++){let d=l.iget(m),y=typeof d=="bigint"?d:BigInt(Math.round(Number(d)));n.iset(m,y)}else if(i==="bool")for(let m=0;m<a;m++){let d=l.iget(m);n.iset(m,d?1:0)}else for(let m=0;m<a;m++){let d=l.iget(m);n.iset(m,Number(d))}}function Ul(r,t){let e=t.map(o=>o.storage),n=js(r.storage,e);return _._fromStorage(n)}function $l(r,t,e=!1){return Ls(r.storage,t.storage,e)}function Rl(r,t){return ma(r.storage,t.storage)}function Kn(r,t){return _._fromStorage($e(r.storage,t))}function ro(r,t){return _._fromStorage(Re(r.storage,t))}function to(r,t,e=!1){return r.max(t,e)}function eo(r,t,e=!1){return r.min(t,e)}function kl(r,t,e=!1){let n=ke(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function ql(r,t,e=!1){let n=qe(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function Vl(r,t,e,n=!1){let o=Ve(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Pl(r,t,e,n=!1){let o=tt(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function jl(r,t,e,n=!1){let o=e?e.storage:void 0,a=mt(r.storage,t,o,n);return typeof a=="number"||a instanceof E?a:_._fromStorage(a)}function Ll(r,t,e=!1){let n=Pt(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function Wl(r,t,e=!1){let n=jt(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function Gl(r,t,e=!1){let n=Lt(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function Zl(r,t,e=0,n=!1){let o=rt(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Yl(r,t,e=0,n=!1){let o=Pe(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Hl(r,t,e=!1){let n=pt(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function Xl(r,t,e=!1){let n=yt(r.storage,t,e);return typeof n=="number"||n instanceof E?n:_._fromStorage(n)}function Jl(r,t){let e=dt(r.storage,t);return typeof e=="number"?e:_._fromStorage(e)}function Ql(r,t){let e=gt(r.storage,t);return typeof e=="number"?e:_._fromStorage(e)}function Kl(r,t){return _._fromStorage(je(r.storage,t))}function rf(r,t){return _._fromStorage(Le(r.storage,t))}function tf(r,t,e=!1){let n=Wt(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)}function ef(r,t,e,n=!1){let o=At(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function nf(r,t,e,n=!1){let o=We(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)}function of(r){return r.cbrt()}function af(r){return r.fabs()}function sf(r,t){return r.divmod(t)}function uf(r){return r.square()}function cf(r,t){return r.remainder(t)}function lf(r,t){return r.heaviside(t)}function ff(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(qo(r.storage,e))}function mf(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(Vo(r.storage,e))}function pf(r){let[t,e]=Po(r.storage);return[_._fromStorage(t),_._fromStorage(e)]}function yf(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(jo(r.storage,e))}function df(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(Lo(r.storage,e))}function gf(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(Wo(r.storage,e))}function Af(r){let[t,e]=Go(r.storage);return[_._fromStorage(t),_._fromStorage(e)]}function bf(r,t,e){let n=t instanceof _?t.storage:t,o=e instanceof _?e.storage:e;return _._fromStorage(Zo(r.storage,n,o))}function hf(r,t){let e=t instanceof _?t.storage:t;return _._fromStorage(Yo(r.storage,e))}function Sf(r,t){let e=t instanceof _?t.storage:t;return _._fromStorage(Ho(r.storage,e))}function Df(r,t){let e=t instanceof _?t.storage:t;return _._fromStorage(Xo(r.storage,e))}function Nf(r,t){let e=t instanceof _?t.storage:t;return _._fromStorage(Jo(r.storage,e))}function xf(r,t=0,e,n){return _._fromStorage(Qo(r.storage,t,e,n))}function wf(r,t,e,n,o){return _._fromStorage(Ko(r.storage,t.storage,e.storage,n,o))}function If(r,t=Math.PI,e=-1,n=2*Math.PI){return _._fromStorage(ra(r.storage,t,e,n))}function zf(r){return _._fromStorage(ta(r.storage))}function _f(r){return _._fromStorage(ea(r.storage))}function vf(r,t){return r.bitwise_and(t)}function Ff(r,t){return r.bitwise_or(t)}function Mf(r,t){return r.bitwise_xor(t)}function Bf(r){return r.bitwise_not()}function Ef(r){return r.invert()}function Tf(r,t){return r.left_shift(t)}function Of(r,t){return r.right_shift(t)}function Cf(r,t=-1,e="big"){let n=yi(r.storage,t,e);return _._fromStorage(n)}function Uf(r,t=-1,e=-1,n="big"){let o=di(r.storage,t,e,n);return _._fromStorage(o)}function $f(r){return _._fromStorage(gi(r.storage))}function Rf(r){return _._fromStorage(Ai(r.storage))}function kf(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(bi(r.storage,e))}function qf(r,t){let e=typeof t=="number"?t:t.storage;return _._fromStorage(hi(r.storage,e))}function Vf(r,t){return r.logical_and(t)}function Pf(r,t){return r.logical_or(t)}function jf(r){return r.logical_not()}function Lf(r,t){return r.logical_xor(t)}function Wf(r){return r.isfinite()}function Gf(r){return r.isinf()}function Zf(r){return r.isnan()}function Yf(r){return r.isnat()}function Hf(r,t){return r.copysign(t)}function Xf(r){return r.signbit()}function Jf(r,t){return r.nextafter(t)}function Qf(r){return r.spacing()}function Kf(r){return _._fromStorage(Oi(r.storage))}function rm(r){return Ci(r.storage)}function tm(r){return _._fromStorage(Ui(r.storage))}function em(r){return $i(r.storage)}function nm(r){return _._fromStorage(Zi(r.storage))}function om(r){return _._fromStorage(Yi(r.storage))}function no(r){return _._fromStorage(Hi(r.storage))}function sm(r,t=!1){return _._fromStorage(Xi(r.storage,t))}function im(r){return _._fromStorage(Ri(r.storage))}function um(r){return _._fromStorage(ki(r.storage))}function cm(r){return qi(r.storage)}function lm(r,t=100){return _._fromStorage(Vi(r.storage,t))}function fm(r){return Pi(r)}function mm(r){return ji(r)}function pm(r,t){return Li(r,t)}function ym(r,t){return Wi(r,t)}function dm(r,...t){let e=t.map(o=>o.storage),n=Va(r,...e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:_._fromStorage(n)}function gm(r,t){return rs(r.storage,t.storage)}function Am(r,t,e=-1){let n=sn(r.storage,t.storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:_._fromStorage(n)}function bm(r){return _._fromStorage(un(r.storage))}function hm(r,t){return _._fromStorage(ts(r.storage,t))}function Sm(r,t){return _._fromStorage(es(r.storage,t.storage))}function Dm(r,t){return _._fromStorage(ns(r.storage,t.storage))}function xm(r,t,e){return _._fromStorage(Ws(r.storage,t.storage,e))}function wm(r,t,e,n){Gs(r.storage,t.storage,e.storage,n)}function Im(r,t,e){let n=e instanceof _?e.storage:e;Zs(r.storage,t.storage,n)}function zm(r,t,e){return _._fromStorage(cn(r.storage,t.storage,e))}function _m(r,t,e=0){let n=r.map(a=>a.storage),o=t.map(a=>a.storage);return _._fromStorage(Ys(n,o,e))}function vm(r,t,e){Hs(r.storage,t.storage,e.storage)}function Fm(r,t,e=!1){let n=typeof t=="number"?t:t.storage;oi(r.storage,n,e)}function Mm(r,t=2){return ln(r,t).map(n=>_._fromStorage(n))}function Bm(r){return Xs(r.storage).map(e=>_._fromStorage(e))}function Em(r,t=0,e){return fn(r,t,e).map(o=>_._fromStorage(o))}function Tm(r,t=0){return Js(r.storage,t).map(n=>_._fromStorage(n))}function Om(r,t=0,e){return mn(r,t,e).map(o=>_._fromStorage(o))}function Cm(r,t=0){return Qs(r.storage,t).map(n=>_._fromStorage(n))}function Um(r,t,e=0){return Ks(r,(a,i)=>t(a,i).storage,e).map(a=>_._fromStorage(a))}function $m(r,t="int32"){return _._fromStorage(ri(r,t))}function Rm(...r){return ti(...r.map(e=>e.storage)).map(e=>_._fromStorage(e))}function km(r,t,e="raise"){let n=r.map(o=>o.storage);return _._fromStorage(ei(n,t,e))}function qm(r,t,e="C"){let n=r instanceof _?r.storage:r;return ni(n,t,e).map(a=>_._fromStorage(a))}function Vm(r,t=-1){return _._fromStorage(bn(r.storage,t))}function Pm(r,t=-1){return _._fromStorage(hn(r.storage,t))}function jm(r){let t=r.map(e=>e.storage);return _._fromStorage(Qi(t))}function Lm(r,t,e=-1){return _._fromStorage(Sn(r.storage,t,e))}function Wm(r,t,e=-1){return _._fromStorage(Dn(r.storage,t,e))}function Gm(r){return _._fromStorage(Ki(r.storage))}function Zm(r){return Kt(r.storage).map(e=>_._fromStorage(e))}function Ym(r){return _._fromStorage(Nn(r.storage))}function Hm(r){return _._fromStorage(ru(r.storage))}function Xm(r,t,e){let n=tu(r.storage,t?.storage,e?.storage);return Array.isArray(n)?n.map(o=>_._fromStorage(o)):_._fromStorage(n)}function Jm(r,t,e="left"){return _._fromStorage(xn(r.storage,t.storage,e))}function Qm(r,t){return _._fromStorage(eu(r.storage,t.storage))}function Km(r,t){let e=wn(r.storage,t);return typeof e=="number"?e:_._fromStorage(e)}function te(r,t=0){return _._fromStorage(In(r.storage,t))}function rp(r){return _._fromStorage(zn(r.storage))}function tp(r){return _._fromStorage(_n(r.storage))}function ep(r){return _._fromStorage(vn(r.storage))}function np(r){return _._fromStorage(Fn(r.storage))}function op(r){return _._fromStorage(Mn(r.storage))}function ap(r,t=!1,e=!1,n=!1){let o=yr(r.storage,t,e,n);if(o instanceof N)return _._fromStorage(o);let a={values:_._fromStorage(o.values)};return o.indices&&(a.indices=_._fromStorage(o.indices)),o.inverse&&(a.inverse=_._fromStorage(o.inverse)),o.counts&&(a.counts=_._fromStorage(o.counts)),a}function sp(r,t){return _._fromStorage(su(r.storage,t.storage))}function ip(r,t){return _._fromStorage(iu(r.storage,t.storage))}function up(r,t){return _._fromStorage(En(r.storage,t.storage))}function cp(r,t){return _._fromStorage(uu(r.storage,t.storage))}function lp(r,t){return _._fromStorage(cu(r.storage,t.storage))}function fp(r,t){return _._fromStorage(lu(r.storage,t.storage))}function mp(r,t="fb"){return _._fromStorage(fu(r.storage,t))}function pp(r){let t=mu(r.storage);return{values:_._fromStorage(t.values),indices:_._fromStorage(t.indices),inverse_indices:_._fromStorage(t.inverse_indices),counts:_._fromStorage(t.counts)}}function yp(r){let t=pu(r.storage);return{values:_._fromStorage(t.values),counts:_._fromStorage(t.counts)}}function dp(r){let t=yu(r.storage);return{values:_._fromStorage(t.values),inverse_indices:_._fromStorage(t.inverse_indices)}}function gp(r){return _._fromStorage(du(r.storage))}function Ap(r,t=1,e=-1){return _._fromStorage(Tn(r.storage,t,e))}function bp(r,t=null,e=null){return _._fromStorage(Au(r.storage,t,e))}function hp(r,t=1,e=null){let n=bu(r.storage,t,e);return Array.isArray(n)?n.map(o=>_._fromStorage(o)):_._fromStorage(n)}function Sp(r,t,e=-1,n=-1,o=-1){return _._fromStorage(hu(r.storage,t.storage,e,n,o))}function Dp(r,t,e=0){return _._fromStorage(Du(r.storage,t?.storage,e))}function Np(r,t,e=!1){return _._fromStorage(Nu(r.storage,t.storage,e))}function xp(r,t=10,e,n=!1,o){let a=xu(r.storage,typeof t=="number"?t:t.storage,e,n,o?.storage);return[_._fromStorage(a.hist),_._fromStorage(a.bin_edges)]}function wp(r,t,e=10,n,o=!1,a){let i;typeof e=="number"?i=e:Array.isArray(e)&&e.length===2?typeof e[0]=="number"?i=e:i=[e[0].storage,e[1].storage]:i=10;let s=wu(r.storage,t.storage,i,n,o,a?.storage);return[_._fromStorage(s.hist),_._fromStorage(s.x_edges),_._fromStorage(s.y_edges)]}function Ip(r,t=10,e,n=!1,o){let a=Iu(r.storage,t,e,n,o?.storage);return[_._fromStorage(a.hist),a.edges.map(i=>_._fromStorage(i))]}function zp(r,t,e="full"){return _._fromStorage(Cn(r.storage,t.storage,e))}function _p(r,t,e="full"){return _._fromStorage(zu(r.storage,t.storage,e))}function vp(r,t,e=!0,n=!1,o){return _._fromStorage(Un(r.storage,t?.storage,e,n,o))}function Fp(r,t,e=!0){return _._fromStorage(_u(r.storage,t?.storage,e))}function Mp(r,t=10,e,n){return _._fromStorage(vu(r.storage,t,e,n?.storage))}function Bp(r,t,e=1,n=-1){let o=Fu(r.storage,t?.storage,e,n);return typeof o=="number"?o:_._fromStorage(o)}function Ep(r,t,e){let n=o=>{let a=r(_._fromStorage(o));return a instanceof _?a.storage:a};return _._fromStorage(ai(e.storage,t,n))}function Tp(r,t,e){let n=(o,a)=>r(_._fromStorage(o),a).storage;return _._fromStorage(si(t.storage,n,e))}function Op(r,t){return pn(r.storage,t.storage)}function Cp(r,t){return ii(r.storage,t.storage)}function Up(r){if(typeof r=="number")return 0;if(r instanceof _)return r.ndim;let t=0,e=r;for(;Array.isArray(e);)t++,e=e[0];return t}function oo(r){if(typeof r=="number")return[];if(r instanceof _)return Array.from(r.shape);let t=[],e=r;for(;Array.isArray(e);)t.push(e.length),e=e[0];return t}function $p(r){return typeof r=="number"?1:r instanceof _?r.size:oo(r).reduce((e,n)=>e*n,1)}function Rp(r,t,e="safe"){let n=r instanceof _?r.dtype:r;if(n===t)return!0;switch(e){case"no":return!1;case"equiv":return n===t;case"safe":return n==="bool"?!0:M(n)?M(t)?qr[n]<=qr[t]:!1:M(t)?!0:(cr[n]==="i"||cr[n]==="u")&&cr[t]==="f"?t==="float32"?["int8","int16","uint8","uint16"].includes(n):t==="float64":cr[n]==="f"&&cr[t]==="f"||(cr[n]==="i"||cr[n]==="u")&&(cr[t]==="i"||cr[t]==="u")?qr[n]<=qr[t]:!1;case"same_kind":{let o=cr[n],a=cr[t];return n==="bool"&&(a==="i"||a==="u"||a==="b")||o===a||(o==="i"||o==="u")&&(a==="i"||a==="u")||o==="f"&&a==="c"}case"unsafe":return!0;default:return!1}}function kp(...r){if(r.length===0)return"float64";let t=!1,e=32;for(let n of r){let o=n.dtype;M(o)?(t=!0,o==="complex128"&&(e=64)):(o==="float64"||o==="int64"||o==="uint64")&&(e=64)}return t?e===64?"complex128":"complex64":e===64?"float64":"float32"}function qp(...r){if(r.length===0)return"float64";let t=r.map(n=>n instanceof _?n.dtype:n),e=t[0];for(let n=1;n<t.length;n++)e=Vp(e,t[n]);return e}function Vp(r,t){if(r===t)return r;if(r==="bool")return t;if(t==="bool")return r;if(M(r)||M(t)){if(M(r)&&M(t))return r==="complex128"||t==="complex128"?"complex128":"complex64";let i=M(r)?r:t,s=M(r)?t:r;return i==="complex128"||s==="float64"||s==="int64"||s==="uint64"?"complex128":"complex64"}let e=cr[r]==="f",n=cr[t]==="f";if(e||n){if(r==="float64"||t==="float64")return"float64";if(r==="float32"||t==="float32"){let i=e?t:r;return["int32","int64","uint32","uint64"].includes(i)?"float64":"float32"}}let o=cr[r],a=cr[t];if(o==="i"&&a==="u"||o==="u"&&a==="i"){let i=o==="u"?r:t;if(i==="uint64")return"float64";if(i==="uint32")return"int64";if(i==="uint16")return"int32";if(i==="uint8")return"int16"}return qr[r]>=qr[t]?r:t}function Pp(r){return typeof r=="boolean"?"bool":typeof r=="bigint"?r>=0n?r<=255n?"uint8":r<=65535n?"uint16":r<=4294967295n?"uint32":"uint64":r>=-128n&&r<=127n?"int8":r>=-32768n&&r<=32767n?"int16":r>=-2147483648n&&r<=2147483647n?"int32":"int64":!Number.isFinite(r)||!Number.isInteger(r)?"float64":r>=0?r<=255?"uint8":r<=65535?"uint16":r<=4294967295?"uint32":"float64":r>=-128&&r<=127?"int8":r>=-32768&&r<=32767?"int16":r>=-2147483648&&r<=2147483647?"int32":"float64"}function jp(r,t){let e=r instanceof _?r.dtype:r;return t==="integer"?["int8","int16","int32","int64","uint8","uint16","uint32","uint64"].includes(e):t==="signedinteger"?["int8","int16","int32","int64"].includes(e):t==="unsignedinteger"?["uint8","uint16","uint32","uint64"].includes(e):t==="floating"?["float32","float64"].includes(e):t==="complexfloating"?["complex64","complex128"].includes(e):t==="number"||t==="numeric"?!["bool"].includes(e):t==="inexact"?["float32","float64","complex64","complex128"].includes(e):e===t}function Lp(r){return{bool:"bool",uint8:"uint8",uint16:"uint16",uint32:"uint32",uint64:"uint64",int8:"int8",int16:"int16",int32:"int32",int64:"int64",float32:"float32",float64:"float64",complex64:"complex64",complex128:"complex128"}[r]||r}function Wp(r,t="GDFgdf",e="d"){let n={b:"int8",B:"uint8",h:"int16",H:"uint16",i:"int32",I:"uint32",l:"int64",L:"uint64",f:"float32",d:"float64",F:"complex64",D:"complex128",g:"float64",G:"complex128","?":"bool"},o={int8:"b",uint8:"B",int16:"h",uint16:"H",int32:"i",uint32:"I",int64:"l",uint64:"L",float32:"f",float64:"d",complex64:"F",complex128:"D",bool:"?"},a=[];for(let l of r)n[l]&&a.push(n[l]);if(a.length===0)return e;let i=a[0];for(let l=1;l<a.length;l++)i=Vp(i,a[l]);let s=new Set(t),u=o[i]||e;if(s.has(u)||s.size===0)return u;let c="gfdGFD";for(let l of c)if(s.has(l))return l;return e}function Gp(r){let t=r instanceof _?r.toArray().flat():r;if(t.length===0)return L([1]);let e=[1];for(let n of t){let o=new Array(e.length+1).fill(0);for(let a=0;a<e.length;a++)o[a]+=e[a],o[a+1]-=e[a]*n;e=o}return L(e)}function Zp(r,t){let e=r instanceof _?r.toArray().flat():r,n=t instanceof _?t.toArray().flat():t,o=Math.max(e.length,n.length),a=new Array(o).fill(0);for(let i=0;i<e.length;i++)a[o-e.length+i]+=e[i];for(let i=0;i<n.length;i++)a[o-n.length+i]+=n[i];return L(a)}function Yp(r,t=1){let e=r instanceof _?r.toArray().flat():[...r];for(let n=0;n<t;n++){if(e.length<=1)return L([0]);let o=new Array(e.length-1),a=e.length-1;for(let i=0;i<a;i++)o[i]=e[i]*(a-i);e=o}return L(e)}function Hp(r,t){let e=r instanceof _?r.toArray().flat():[...r],n=t instanceof _?t.toArray().flat():[...t];if(n.length===0||n.length===1&&n[0]===0)throw new Error("Division by zero polynomial");for(;e.length>1&&e[0]===0;)e.shift();for(;n.length>1&&n[0]===0;)n.shift();if(e.length<n.length)return[L([0]),L(e)];let o=[],a=[...e];for(;a.length>=n.length;){let i=a[0]/n[0];o.push(i);for(let s=0;s<n.length;s++)a[s]=a[s]-i*n[s];a.shift()}return a.length===0||a.every(i=>Math.abs(i)<1e-14)?[L(o.length>0?o:[0]),L([0])]:[L(o.length>0?o:[0]),L(a)]}function Xp(r,t,e){let n=r.toArray().flat(),o=t.toArray().flat(),a=n.length;if(a!==o.length)throw new Error("x and y must have the same length");if(e<0)throw new Error("Degree must be non-negative");if(a<=e)throw new Error("Need more data points than degree");let i=[];for(let m=0;m<a;m++){let d=[];for(let y=e;y>=0;y--)d.push(Math.pow(n[m],y));i.push(d)}let s=Bg(i),u=Jp(s,i),c=Eg(s,o),l=Tg(u,c);return L(l)}function Bg(r){let t=r.length,e=r[0].length,n=[];for(let o=0;o<e;o++){let a=[];for(let i=0;i<t;i++)a.push(r[i][o]);n.push(a)}return n}function Jp(r,t){let e=r.length,n=r[0].length,o=t[0].length,a=[];for(let i=0;i<e;i++){let s=[];for(let u=0;u<o;u++){let c=0;for(let l=0;l<n;l++)c+=r[i][l]*t[l][u];s.push(c)}a.push(s)}return a}function Eg(r,t){let e=[];for(let n=0;n<r.length;n++){let o=0;for(let a=0;a<r[n].length;a++)o+=r[n][a]*t[a];e.push(o)}return e}function Tg(r,t){let e=r.length,n=r.map((a,i)=>[...a,t[i]]);for(let a=0;a<e;a++){let i=a;for(let s=a+1;s<e;s++)Math.abs(n[s][a])>Math.abs(n[i][a])&&(i=s);[n[a],n[i]]=[n[i],n[a]];for(let s=a+1;s<e;s++){let u=n[s][a]/n[a][a];for(let c=a;c<=e;c++)n[s][c]=n[s][c]-u*n[a][c]}}let o=new Array(e).fill(0);for(let a=e-1;a>=0;a--){o[a]=n[a][e];for(let i=a+1;i<e;i++)o[a]-=n[a][i]*o[i];o[a]/=n[a][a]}return o}function Qp(r,t=1,e=0){let n=r instanceof _?r.toArray().flat():[...r],o=Array.isArray(e)?e:[e];for(let a=0;a<t;a++){let i=n.length,s=new Array(i+1);for(let u=0;u<i;u++)s[u]=n[u]/(i-u);s[i]=o[a]!==void 0?o[a]:0,n=s}return L(n)}function Kp(r,t){let e=r instanceof _?r.toArray().flat():r,n=t instanceof _?t.toArray().flat():t,o=e.length+n.length-1,a=new Array(o).fill(0);for(let i=0;i<e.length;i++)for(let s=0;s<n.length;s++)a[i+s]+=e[i]*n[s];return L(a)}function ry(r,t){let e=r instanceof _?r.toArray().flat():r,n=t instanceof _?t.toArray().flat():t,o=Math.max(e.length,n.length),a=new Array(o).fill(0);for(let i=0;i<e.length;i++)a[o-e.length+i]+=e[i];for(let i=0;i<n.length;i++)a[o-n.length+i]-=n[i];return L(a)}function ty(r,t){let e=r instanceof _?r.toArray().flat():r,n=i=>{let s=0;for(let u of e)s=s*i+u;return s};if(typeof t=="number")return n(t);let a=(t instanceof _?t.toArray().flat():t).map(n);return L(a)}function ey(r){let t=r instanceof _?r.toArray().flat():[...r];for(;t.length>1&&t[0]===0;)t.shift();let e=t.length-1;if(e<=0)return L([]);let n=t[0],o=t.map(u=>u/n);if(e===1)return L([-o[1]]);if(e===2){let c=o[1],l=o[2],m=c*c-4*l;if(m>=0){let d=Math.sqrt(m);return L([(-c+d)/2,(-c-d)/2])}else{let d=-c/2;return L([d,d])}}let a=e,i=[];for(let u=0;u<a;u++){let c=new Array(a).fill(0);u<a-1&&(c[u+1]=1),i.push(c)}for(let u=0;u<a;u++)i[a-1][u]=-o[a-u];let s=Og(i);return L(s)}function Og(r){let t=r.length,e=[...r.map(i=>[...i])],n=100,o=1e-10;for(let i=0;i<n;i++){let{Q:s,R:u}=Cg(e);e=Jp(u,s);let c=0;for(let l=1;l<t;l++)c=Math.max(c,Math.abs(e[l][l-1]));if(c<o)break}let a=[];for(let i=0;i<t;i++)a.push(e[i][i]);return a}function Cg(r){let t=r.length,e=r.map(o=>[...o]),n=Array.from({length:t},()=>new Array(t).fill(0));for(let o=0;o<t;o++){for(let i=0;i<o;i++){let s=0;for(let u=0;u<t;u++)s+=e[u][i]*r[u][o];n[i][o]=s;for(let u=0;u<t;u++)e[u][o]=e[u][o]-s*e[u][i]}let a=0;for(let i=0;i<t;i++)a+=e[i][o]*e[i][o];if(a=Math.sqrt(a),n[o][o]=a,a>1e-14)for(let i=0;i<t;i++)e[i][o]=e[i][o]/a}return{Q:e,R:n}}var _,am,Nm,qr,cr,vt=G(()=>{"use strict";Do();Q();xr();K();Rt();na();pa();da();He();cs();Ds();Es();ks();dn();Si();Gi();Ji();nu();au();gu();Su();Mu();dn();_=class r{constructor(t,e){this._storage=t,this._base=e}get storage(){return this._storage}static _fromStorage(t,e){return new r(t,e)}get shape(){return this._storage.shape}get ndim(){return this._storage.ndim}get size(){return this._storage.size}get dtype(){return this._storage.dtype}get data(){return this._storage.data}get strides(){return this._storage.strides}get flags(){return{C_CONTIGUOUS:this._storage.isCContiguous,F_CONTIGUOUS:this._storage.isFContiguous,OWNDATA:this._base===void 0}}get base(){return this._base??null}get T(){return this.transpose()}get itemsize(){return Hr(this._storage.dtype)}get nbytes(){return this.size*this.itemsize}fill(t){let e=this._storage.dtype,n=this.size;if(B(e)){let o=typeof t=="bigint"?t:BigInt(Math.round(Number(t)));for(let a=0;a<n;a++)this._storage.iset(a,o)}else if(e==="bool"){let o=t?1:0;for(let a=0;a<n;a++)this._storage.iset(a,o)}else{let o=Number(t);for(let a=0;a<n;a++)this._storage.iset(a,o)}}*[Symbol.iterator](){if(this.ndim===0)yield this._storage.iget(0);else if(this.ndim===1)for(let t=0;t<this.shape[0];t++)yield this._storage.iget(t);else for(let t=0;t<this.shape[0];t++)yield this.slice(String(t))}get(t){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let e=t.map((n,o)=>{let a=n;if(a<0&&(a=this.shape[o]+a),a<0||a>=this.shape[o])throw new Error(`Index ${n} is out of bounds for axis ${o} with size ${this.shape[o]}`);return a});return this._storage.get(...e)}set(t,e){if(t.length!==this.ndim)throw new Error(`Index has ${t.length} dimensions, but array has ${this.ndim} dimensions`);let n=t.map((a,i)=>{let s=a;if(s<0&&(s=this.shape[i]+s),s<0||s>=this.shape[i])throw new Error(`Index ${a} is out of bounds for axis ${i} with size ${this.shape[i]}`);return s}),o=this.dtype;if(M(o))this._storage.set(n,e);else if(B(o)){let a=e instanceof E?e.re:Number(e),i=typeof e=="bigint"?e:BigInt(Math.round(a));this._storage.set(n,i)}else if(o==="bool"){let i=(e instanceof E?e.re:Number(e))?1:0;this._storage.set(n,i)}else{let a=e instanceof E?e.re:Number(e);this._storage.set(n,a)}}copy(){return new r(this._storage.copy())}astype(t,e=!0){let n=this.dtype;if(n===t&&!e)return this;if(n===t&&e)return this.copy();let o=Array.from(this.shape),a=this.size,i=j(t);if(!i)throw new Error(`Cannot convert to dtype ${t}`);let s=new i(a),u=this.data;if(B(n)&&!B(t)){let l=u;if(t==="bool")for(let m=0;m<a;m++)s[m]=l[m]!==BigInt(0)?1:0;else for(let m=0;m<a;m++)s[m]=Number(l[m])}else if(!B(n)&&B(t)){let l=u;for(let m=0;m<a;m++)s[m]=BigInt(Math.round(Number(l[m])))}else if(t==="bool"){let l=u;for(let m=0;m<a;m++)s[m]=l[m]!==0?1:0}else if(n==="bool"&&!B(t)){let l=u;for(let m=0;m<a;m++)s[m]=l[m]}else if(!B(n)&&!B(t)){let l=u;for(let m=0;m<a;m++)s[m]=l[m]}else{let l=u;for(let m=0;m<a;m++)s[m]=l[m]}let c=N.fromData(s,o,t);return new r(c)}add(t){let e=typeof t=="number"?t:t._storage,n=Io(this._storage,e);return r._fromStorage(n)}subtract(t){let e=typeof t=="number"?t:t._storage,n=zo(this._storage,e);return r._fromStorage(n)}multiply(t){let e=typeof t=="number"?t:t._storage,n=_o(this._storage,e);return r._fromStorage(n)}divide(t){let e=typeof t=="number"?t:t._storage,n=vo(this._storage,e);return r._fromStorage(n)}mod(t){let e=typeof t=="number"?t:t._storage,n=qt(this._storage,e);return r._fromStorage(n)}floor_divide(t){let e=typeof t=="number"?t:t._storage,n=ve(this._storage,e);return r._fromStorage(n)}positive(){let t=Eo(this._storage);return r._fromStorage(t)}reciprocal(){let t=To(this._storage);return r._fromStorage(t)}sqrt(){let t=ls(this._storage);return r._fromStorage(t)}power(t){let e=typeof t=="number"?t:t._storage,n=fs(this._storage,e);return r._fromStorage(n)}exp(){let t=ms(this._storage);return r._fromStorage(t)}exp2(){let t=ps(this._storage);return r._fromStorage(t)}expm1(){let t=ys(this._storage);return r._fromStorage(t)}log(){let t=ds(this._storage);return r._fromStorage(t)}log2(){let t=gs(this._storage);return r._fromStorage(t)}log10(){let t=As(this._storage);return r._fromStorage(t)}log1p(){let t=bs(this._storage);return r._fromStorage(t)}logaddexp(t){let e=typeof t=="number"?t:t._storage,n=hs(this._storage,e);return r._fromStorage(n)}logaddexp2(t){let e=typeof t=="number"?t:t._storage,n=Ss(this._storage,e);return r._fromStorage(n)}absolute(){let t=Fo(this._storage);return r._fromStorage(t)}negative(){let t=Mo(this._storage);return r._fromStorage(t)}sign(){let t=Bo(this._storage);return r._fromStorage(t)}around(t=0){let e=In(this._storage,t);return r._fromStorage(e)}round(t=0){return this.around(t)}ceil(){let t=zn(this._storage);return r._fromStorage(t)}fix(){let t=_n(this._storage);return r._fromStorage(t)}floor(){let t=vn(this._storage);return r._fromStorage(t)}rint(){let t=Fn(this._storage);return r._fromStorage(t)}trunc(){let t=Mn(this._storage);return r._fromStorage(t)}sin(){let t=Ns(this._storage);return r._fromStorage(t)}cos(){let t=xs(this._storage);return r._fromStorage(t)}tan(){let t=ws(this._storage);return r._fromStorage(t)}arcsin(){let t=Is(this._storage);return r._fromStorage(t)}arccos(){let t=zs(this._storage);return r._fromStorage(t)}arctan(){let t=_s(this._storage);return r._fromStorage(t)}arctan2(t){let e=typeof t=="number"?t:t._storage,n=vs(this._storage,e);return r._fromStorage(n)}hypot(t){let e=typeof t=="number"?t:t._storage,n=Fs(this._storage,e);return r._fromStorage(n)}degrees(){let t=Ms(this._storage);return r._fromStorage(t)}radians(){let t=Bs(this._storage);return r._fromStorage(t)}sinh(){let t=Ts(this._storage);return r._fromStorage(t)}cosh(){let t=Os(this._storage);return r._fromStorage(t)}tanh(){let t=Cs(this._storage);return r._fromStorage(t)}arcsinh(){let t=Us(this._storage);return r._fromStorage(t)}arccosh(){let t=$s(this._storage);return r._fromStorage(t)}arctanh(){let t=Rs(this._storage);return r._fromStorage(t)}greater(t){let e=typeof t=="number"?t:t._storage,n=aa(this._storage,e);return r._fromStorage(n)}greater_equal(t){let e=typeof t=="number"?t:t._storage,n=sa(this._storage,e);return r._fromStorage(n)}less(t){let e=typeof t=="number"?t:t._storage,n=ia(this._storage,e);return r._fromStorage(n)}less_equal(t){let e=typeof t=="number"?t:t._storage,n=ua(this._storage,e);return r._fromStorage(n)}equal(t){let e=typeof t=="number"?t:t._storage,n=ca(this._storage,e);return r._fromStorage(n)}not_equal(t){let e=typeof t=="number"?t:t._storage,n=la(this._storage,e);return r._fromStorage(n)}isclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage,a=Fe(this._storage,o,e,n);return r._fromStorage(a)}allclose(t,e=1e-5,n=1e-8){let o=typeof t=="number"?t:t._storage;return fa(this._storage,o,e,n)}bitwise_and(t){let e=typeof t=="number"?t:t._storage,n=li(this._storage,e);return r._fromStorage(n)}bitwise_or(t){let e=typeof t=="number"?t:t._storage,n=fi(this._storage,e);return r._fromStorage(n)}bitwise_xor(t){let e=typeof t=="number"?t:t._storage,n=mi(this._storage,e);return r._fromStorage(n)}bitwise_not(){let t=Jt(this._storage);return r._fromStorage(t)}invert(){let t=pi(this._storage);return r._fromStorage(t)}left_shift(t){let e=typeof t=="number"?t:t._storage,n=gn(this._storage,e);return r._fromStorage(n)}right_shift(t){let e=typeof t=="number"?t:t._storage,n=An(this._storage,e);return r._fromStorage(n)}logical_and(t){let e=typeof t=="number"?t:t._storage,n=Ni(this._storage,e);return r._fromStorage(n)}logical_or(t){let e=typeof t=="number"?t:t._storage,n=xi(this._storage,e);return r._fromStorage(n)}logical_not(){let t=wi(this._storage);return r._fromStorage(t)}logical_xor(t){let e=typeof t=="number"?t:t._storage,n=Ii(this._storage,e);return r._fromStorage(n)}isfinite(){let t=zi(this._storage);return r._fromStorage(t)}isinf(){let t=_i(this._storage);return r._fromStorage(t)}isnan(){let t=vi(this._storage);return r._fromStorage(t)}isnat(){let t=Fi(this._storage);return r._fromStorage(t)}copysign(t){let e=typeof t=="number"?t:t._storage,n=Mi(this._storage,e);return r._fromStorage(n)}signbit(){let t=Bi(this._storage);return r._fromStorage(t)}nextafter(t){let e=typeof t=="number"?t:t._storage,n=Ei(this._storage,e);return r._fromStorage(n)}spacing(){let t=Ti(this._storage);return r._fromStorage(t)}sum(t,e=!1){let n=ft(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}mean(t,e=!1){let n=Vt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}max(t,e=!1){let n=Qr(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}min(t,e=!1){let n=Kr(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}prod(t,e=!1){let n=Be(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}argmin(t){let e=Ee(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}argmax(t){let e=Te(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}var(t,e=0,n=!1){let o=Oe(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}std(t,e=0,n=!1){let o=ya(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}all(t,e=!1){let n=Ce(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}any(t,e=!1){let n=Ue(this._storage,t,e);return typeof n=="boolean"?n:r._fromStorage(n)}cumsum(t){return r._fromStorage($e(this._storage,t))}cumprod(t){return r._fromStorage(Re(this._storage,t))}ptp(t,e=!1){let n=ke(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}median(t,e=!1){let n=qe(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}percentile(t,e,n=!1){let o=Ve(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}quantile(t,e,n=!1){let o=tt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}average(t,e){let n=mt(this._storage,e,t?.storage);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nansum(t,e=!1){let n=Pt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanprod(t,e=!1){let n=jt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanmean(t,e=!1){let n=Lt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanvar(t,e=0,n=!1){let o=rt(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanstd(t,e=0,n=!1){let o=Pe(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanmin(t,e=!1){let n=pt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanmax(t,e=!1){let n=yt(this._storage,t,e);return typeof n=="number"||n instanceof E?n:r._fromStorage(n)}nanquantile(t,e,n=!1){let o=At(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanpercentile(t,e,n=!1){let o=We(this._storage,t,e,n);return typeof o=="number"?o:r._fromStorage(o)}nanargmin(t){let e=dt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nanargmax(t){let e=gt(this._storage,t);return typeof e=="number"?e:r._fromStorage(e)}nancumsum(t){return r._fromStorage(je(this._storage,t))}nancumprod(t){return r._fromStorage(Le(this._storage,t))}nanmedian(t,e=!1){let n=Wt(this._storage,t,e);return typeof n=="number"?n:r._fromStorage(n)}sort(t=-1){return r._fromStorage(bn(this._storage,t))}argsort(t=-1){return r._fromStorage(hn(this._storage,t))}partition(t,e=-1){return r._fromStorage(Sn(this._storage,t,e))}argpartition(t,e=-1){return r._fromStorage(Dn(this._storage,t,e))}nonzero(){return Kt(this._storage).map(e=>r._fromStorage(e))}argwhere(){return r._fromStorage(Nn(this._storage))}searchsorted(t,e="left"){return r._fromStorage(xn(this._storage,t._storage,e))}diff(t=1,e=-1){return r._fromStorage(Tn(this._storage,t,e))}reshape(...t){let e=t.length===1&&Array.isArray(t[0])?t[0]:t,n=er(this._storage,e),a=n.data===this.data?this._base??this:void 0;return r._fromStorage(n,a)}flatten(){let t=Lr(this._storage);return r._fromStorage(t)}ravel(){let t=et(this._storage),n=t.data===this.data?this._base??this:void 0;return r._fromStorage(t,n)}transpose(t){let e=ht(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}squeeze(t){let e=Ge(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}expand_dims(t){let e=bt(this._storage,t),n=this._base??this;return r._fromStorage(e,n)}swapaxes(t,e){let n=ga(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}moveaxis(t,e){let n=Ze(this._storage,t,e),o=this._base??this;return r._fromStorage(n,o)}repeat(t,e){let n=Ia(this._storage,t,e);return r._fromStorage(n)}take(t,e){let n=Vs(this._storage,t,e);return r._fromStorage(n)}put(t,e){let n=e instanceof r?e._storage:e;Ps(this._storage,t,n)}iindex(t,e=0){let n;if(t instanceof r){n=[];for(let o=0;o<t.size;o++){let a=t.storage.iget(o),i=typeof a=="bigint"?Number(a):a instanceof E?a.re:a;n.push(i)}}else Array.isArray(t)&&t.length>0&&Array.isArray(t[0])?n=t.flat():n=t;return this.take(n,e)}bindex(t,e){return r._fromStorage(cn(t._storage,this._storage,e))}matmul(t){let e=mr(this._storage,t._storage);return r._fromStorage(e)}dot(t){let e=ot(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof E?e:r._fromStorage(e)}trace(){return Je(this._storage)}inner(t){let e=qa(this._storage,t._storage);return typeof e=="number"||typeof e=="bigint"||e instanceof E?e:r._fromStorage(e)}outer(t){let e=Gt(this._storage,t._storage);return r._fromStorage(e)}tensordot(t,e=2){let n=Qe(this._storage,t._storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:r._fromStorage(n)}cbrt(){let t=Oo(this._storage);return r._fromStorage(t)}fabs(){let t=Co(this._storage);return r._fromStorage(t)}divmod(t){let e=typeof t=="number"?t:t._storage,[n,o]=Uo(this._storage,e);return[r._fromStorage(n),r._fromStorage(o)]}square(){let t=$o(this._storage);return r._fromStorage(t)}remainder(t){let e=typeof t=="number"?t:t._storage,n=Ro(this._storage,e);return r._fromStorage(n)}heaviside(t){let e=typeof t=="number"?t:t._storage,n=ko(this._storage,e);return r._fromStorage(n)}slice(...t){if(t.length===0)return this;if(t.length>this.ndim)throw new Error(`Too many indices for array: array is ${this.ndim}-dimensional, but ${t.length} were indexed`);let e=t.map((u,c)=>{let l=ho(u);return So(l,this.shape[c])});for(;e.length<this.ndim;)e.push({start:0,stop:this.shape[e.length],step:1,isIndex:!1});let n=[],o=[],a=this._storage.offset;for(let u=0;u<e.length;u++){let c=e[u],l=this._storage.strides[u];if(a+=c.start*l,!c.isIndex){let m;c.step>0?m=Math.max(0,Math.ceil((c.stop-c.start)/c.step)):m=Math.max(0,Math.ceil((c.start-c.stop)/Math.abs(c.step))),n.push(m),o.push(l*c.step)}}let i=N.fromData(this._storage.data,n,this._storage.dtype,o,a),s=this._base??this;return new r(i,s)}row(t){if(this.ndim<2)throw new Error("row() requires at least 2 dimensions");return this.slice(String(t),":")}col(t){if(this.ndim<2)throw new Error("col() requires at least 2 dimensions");return this.slice(":",String(t))}rows(t,e){if(this.ndim<2)throw new Error("rows() requires at least 2 dimensions");return this.slice(`${t}:${e}`,":")}cols(t,e){if(this.ndim<2)throw new Error("cols() requires at least 2 dimensions");return this.slice(":",`${t}:${e}`)}toString(){return`NDArray(shape=${JSON.stringify(this.shape)}, dtype=${this.dtype})`}toArray(){if(this.ndim===0)return this._storage.iget(0);let t=this.shape,e=t.length,n=(o,a)=>{if(a===e)return this._storage.get(...o);let i=[];for(let s=0;s<t[a];s++)o[a]=s,i.push(n(o,a+1));return i};return n(new Array(e),0)}tolist(){return this.toArray()}tobytes(){if(this._storage.isCContiguous){let n=this._storage.data,o=n.BYTES_PER_ELEMENT,a=this._storage.offset*o,i=this.size*o;return n.buffer.slice(a,a+i)}let e=this.copy()._storage.data;return e.buffer.slice(0,this.size*e.BYTES_PER_ELEMENT)}item(...t){if(t.length===0){if(this.size!==1)throw new Error("can only convert an array of size 1 to a Python scalar");return this._storage.iget(0)}if(t.length===1){let e=t[0];if(e<0||e>=this.size)throw new Error(`index ${e} is out of bounds for size ${this.size}`);return this._storage.iget(e)}return this.get(t)}byteswap(t=!1){let e=t?this:this.copy(),n=e._storage.data,o=n.BYTES_PER_ELEMENT;if(o===1)return e;let a=n.buffer,i=new DataView(a);for(let s=0;s<n.length;s++){let u=s*o;if(o===2){let c=i.getUint8(u),l=i.getUint8(u+1);i.setUint8(u,l),i.setUint8(u+1,c)}else if(o===4){let c=i.getUint8(u),l=i.getUint8(u+1),m=i.getUint8(u+2),d=i.getUint8(u+3);i.setUint8(u,d),i.setUint8(u+1,m),i.setUint8(u+2,l),i.setUint8(u+3,c)}else if(o===8){let c=i.getUint8(u),l=i.getUint8(u+1),m=i.getUint8(u+2),d=i.getUint8(u+3),y=i.getUint8(u+4),f=i.getUint8(u+5),p=i.getUint8(u+6),g=i.getUint8(u+7);i.setUint8(u,g),i.setUint8(u+1,p),i.setUint8(u+2,f),i.setUint8(u+3,y),i.setUint8(u+4,d),i.setUint8(u+5,m),i.setUint8(u+6,l),i.setUint8(u+7,c)}}return e}view(t){if(!t||t===this.dtype)return r._fromStorage(this._storage,this._base??this);let e=Hr(this.dtype),n=Hr(t);if(e!==n)throw new Error("When changing to a larger dtype, its size must be a divisor of the total size in bytes of the last axis of the array.");let o=j(t);if(!o)throw new Error(`Unsupported dtype: ${t}`);let a=this._storage.data,i=a.byteOffset+this._storage.offset*e,s=new o(a.buffer,i,this.size),u=N.fromData(s,[...this.shape],t,[...this._storage.strides],0);return r._fromStorage(u,this._base??this)}tofile(t,e="",n=""){throw new Error('tofile() requires file system access. Use the node module: import { save } from "numpy-ts/node"')}};am=no;Nm={cross:(r,t,e=-1,n=-1,o=-1,a)=>{let i=ja(r.storage,t.storage,e,n,o,a);return typeof i=="number"?i:_._fromStorage(i)},norm:(r,t=null,e=null,n=!1)=>{let o=La(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)},vector_norm:(r,t=2,e,n=!1)=>{let o=nt(r.storage,t,e,n);return typeof o=="number"?o:_._fromStorage(o)},matrix_norm:(r,t="fro",e=!1)=>{let n=Wr(r.storage,t,e);return typeof n=="number"?n:_._fromStorage(n)},qr:(r,t="reduced")=>{let e=rn(r.storage,t);return e instanceof N?_._fromStorage(e):"q"in e&&"r"in e?{q:_._fromStorage(e.q),r:_._fromStorage(e.r)}:{h:_._fromStorage(e.h),tau:_._fromStorage(e.tau)}},cholesky:(r,t=!1)=>_._fromStorage(Wa(r.storage,t)),svd:(r,t=!0,e=!0)=>{let n=en(r.storage,t,e);return"u"in n?{u:_._fromStorage(n.u),s:_._fromStorage(n.s),vt:_._fromStorage(n.vt)}:_._fromStorage(n)},det:r=>Ga(r.storage),inv:r=>_._fromStorage(Nt(r.storage)),solve:(r,t)=>_._fromStorage(nn(r.storage,t.storage)),lstsq:(r,t,e=null)=>{let n=Za(r.storage,t.storage,e);return{x:_._fromStorage(n.x),residuals:_._fromStorage(n.residuals),rank:n.rank,s:_._fromStorage(n.s)}},cond:(r,t=2)=>Ya(r.storage,t),matrix_rank:(r,t)=>Ha(r.storage,t),matrix_power:(r,t)=>_._fromStorage(Xa(r.storage,t)),pinv:(r,t=1e-15)=>_._fromStorage(Ja(r.storage,t)),eig:r=>{let t=on(r.storage);return{w:_._fromStorage(t.w),v:_._fromStorage(t.v)}},eigh:(r,t="L")=>{let e=an(r.storage,t);return{w:_._fromStorage(e.w),v:_._fromStorage(e.v)}},eigvals:r=>_._fromStorage(Qa(r.storage)),eigvalsh:(r,t="L")=>_._fromStorage(Ka(r.storage,t)),diagonal:(r,t=0,e=0,n=1)=>_._fromStorage(Ke(r.storage,t,e,n)),matmul:(r,t)=>_._fromStorage(mr(r.storage,t.storage)),matrix_transpose:r=>_._fromStorage(un(r.storage)),multi_dot:r=>{let t=r.map(e=>e.storage);return _._fromStorage(ss(t))},outer:(r,t)=>_._fromStorage(Gt(r.storage,t.storage)),slogdet:r=>os(r.storage),svdvals:r=>_._fromStorage(as(r.storage)),tensordot:(r,t,e=2)=>{let n=Qe(r.storage,t.storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:_._fromStorage(n)},tensorinv:(r,t=2)=>_._fromStorage(is(r.storage,t)),tensorsolve:(r,t,e)=>_._fromStorage(us(r.storage,t.storage,e)),trace:r=>Je(r.storage),vecdot:(r,t,e=-1)=>{let n=sn(r.storage,t.storage,e);return typeof n=="number"||typeof n=="bigint"||n instanceof E?n:_._fromStorage(n)}};qr={bool:0,uint8:1,int8:2,uint16:3,int16:4,uint32:5,int32:6,uint64:7,int64:8,float32:9,float64:10,complex64:11,complex128:12},cr={bool:"b",uint8:"u",uint16:"u",uint32:"u",uint64:"u",int8:"i",int16:"i",int32:"i",int64:"i",float32:"f",float64:"f",complex64:"c",complex128:"c"}});function ao(){let r=new ArrayBuffer(2);return new DataView(r).setInt16(0,256,!0),new Int16Array(r)[0]===256}function oy(r){if(r.startsWith("[")||r.startsWith("("))throw new Fr(`Structured/compound dtypes are not supported: ${r}`);let t="",e=r;(r[0]==="<"||r[0]===">"||r[0]==="="||r[0]==="|")&&(t=r[0],e=r.slice(1));let n=e[0];if(n&&n in ny)throw new Fr(`Unsupported dtype: ${ny[n]} (${r}). Use the 'force' parameter to skip arrays with unsupported dtypes.`);let o=Ug[e];if(!o)throw new Fr(`Unknown or unsupported dtype descriptor: ${r}. Supported types: ${ee.join(", ")}. Use the 'force' parameter to skip arrays with unsupported dtypes.`);let a=ao(),i=t==="<"||t==="|"||t==="="&&a,s=t===">"||t==="="&&!a,u=parseInt(e.slice(1),10),c=u>1&&(s&&a||i&&!a);return{dtype:o,needsByteSwap:c,itemsize:u}}var Ft,ee,Ug,Mt,ny,Fr,lr,Bt=G(()=>{"use strict";Ft=new Uint8Array([147,78,85,77,80,89]),ee=["float64","float32","complex128","complex64","int64","int32","int16","int8","uint64","uint32","uint16","uint8","bool"];Ug={f8:"float64",f4:"float32",c16:"complex128",c8:"complex64",i8:"int64",i4:"int32",i2:"int16",i1:"int8",u8:"uint64",u4:"uint32",u2:"uint16",u1:"uint8",b1:"bool"},Mt={float64:"<f8",float32:"<f4",complex128:"<c16",complex64:"<c8",int64:"<i8",int32:"<i4",int16:"<i2",int8:"|i1",uint64:"<u8",uint32:"<u4",uint16:"<u2",uint8:"|u1",bool:"|b1"},ny={S:"byte strings",U:"Unicode strings",O:"Python objects",V:"structured arrays (void)",M:"datetime64",m:"timedelta64"};Fr=class extends Error{constructor(t){super(t),this.name="UnsupportedDTypeError"}},lr=class extends Error{constructor(t){super(t),this.name="InvalidNpyError"}}});function Pr(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=ne(t);return oe(t,e)}function ne(r){if(r.length<10)throw new lr("File too small to be a valid NPY file");for(let c=0;c<Ft.length;c++)if(r[c]!==Ft[c])throw new lr("Invalid NPY magic number");let t=r[6],e=r[7];if(t!==1&&t!==2&&t!==3)throw new lr(`Unsupported NPY version: ${t}.${e}`);let n,o;t===1?(n=r[8]|r[9]<<8,o=10):(n=r[8]|r[9]<<8|r[10]<<16|r[11]<<24,o=12);let a=o+n;if(r.length<a)throw new lr("File truncated: header extends beyond file");let i=r.slice(o,a),s=new TextDecoder("utf-8").decode(i).trim(),u=$g(s);return{version:{major:t,minor:e},header:u,dataOffset:a}}function oe(r,t){let{header:e,dataOffset:n}=t,{dtype:o,needsByteSwap:a,itemsize:i}=oy(e.descr),s=e.shape.reduce((p,g)=>p*g,1),u=s*i,c=r.length-n;if(c<u)throw new lr(`File truncated: expected ${u} bytes of data, got ${c}`);let l=new ArrayBuffer(u);new Uint8Array(l).set(r.subarray(n,n+u));let d=Rg(l,o,s,a,i),y=e.shape,f;if(e.fortran_order&&y.length>1){let p=[...y].reverse(),g=N.fromData(d,p,o);f=kg(g,p),y=e.shape}else f=N.fromData(d,[...y],o);return new _(f)}function $g(r){let t=r.match(/'descr'\s*:\s*'([^']+)'/),e=r.match(/'fortran_order'\s*:\s*(True|False)/),n=r.match(/'shape'\s*:\s*\(([^)]*)\)/);if(!t||!e||!n)throw new lr(`Failed to parse NPY header: ${r}`);let o=t[1],a=e[1]==="True",i=n[1].trim(),s;return i===""?s=[]:s=i.split(",").map(u=>u.trim()).filter(u=>u!=="").map(u=>{let c=parseInt(u,10);if(isNaN(c))throw new lr(`Invalid shape value: ${u}`);return c}),{descr:o,fortran_order:a,shape:s}}function Rg(r,t,e,n,o){let a=j(t);if(!a)throw new lr(`Cannot create array for dtype: ${t}`);let i=M(t),s=i?e*2:e;if(!n)return new a(r,0,s);let u=new Uint8Array(r),c=new Uint8Array(r.byteLength);if(i){let l=o/2;for(let m=0;m<e*2;m++){let d=m*l;for(let y=0;y<l;y++)c[d+y]=u[d+l-1-y]}}else for(let l=0;l<e;l++){let m=l*o;for(let d=0;d<o;d++)c[m+d]=u[m+o-1-d]}return new a(c.buffer,0,s)}function kg(r,t){let e=t.length,n=r.size,o=r.dtype,a=j(o);if(!a)throw new lr(`Cannot create array for dtype: ${o}`);let i=new a(n),s=[...t].reverse(),u=ay(t),c=ay(s),l=new Array(e).fill(0);for(let m=0;m<n;m++){let d=m;for(let f=0;f<e;f++){let p=u[f];l[f]=Math.floor(d/p),d=d%p}let y=0;for(let f=0;f<e;f++)y+=l[e-1-f]*c[f];B(o),i[y]=r.iget(m)}return N.fromData(i,s,o)}function ay(r){let t=new Array(r.length),e=1;for(let n=r.length-1;n>=0;n--)t[n]=e,e*=r[n];return t}var ae=G(()=>{"use strict";vt();K();Q();Bt()});function Cr(r){let t=r.shape,e=r.dtype,n=Mt[e],o=t.length===0?"()":t.length===1?`(${t[0]},)`:`(${t.join(", ")})`,a=`{'descr': '${n}', 'fortran_order': False, 'shape': ${o}, }`,i=12,u=(64-(i+a.length+1)%64)%64;a=a+" ".repeat(u)+`
2
+ `;let c=new TextEncoder().encode(a),l=c.length,m=r.size,d=Hr(e),y=m*d,f=i+l+y,p=new Uint8Array(f);p.set(Ft,0),p[6]=3,p[7]=0,p[8]=l&255,p[9]=l>>8&255,p[10]=l>>16&255,p[11]=l>>24&255,p.set(c,i);let g=i+l;return qg(r,p.subarray(g),d),p}function qg(r,t,e){let n=r.dtype,o=r.size,a=ao(),i=B(n),s=M(n),u=r._storage;if(u.isCContiguous&&u.offset===0&&a){let l=u.data,m=new Uint8Array(l.buffer,l.byteOffset,o*e);t.set(m)}else{let l=new DataView(t.buffer,t.byteOffset,t.byteLength);for(let m=0;m<o;m++){let d=u.iget(m),y=m*e;i?Vg(l,y,d,n==="uint64"):s?Pg(l,y,d,n):jg(l,y,d,n)}}}function Vg(r,t,e,n){n?r.setBigUint64(t,e,!0):r.setBigInt64(t,e,!0)}function Pg(r,t,e,n){n==="complex128"?(r.setFloat64(t,e.re,!0),r.setFloat64(t+8,e.im,!0)):(r.setFloat32(t,e.re,!0),r.setFloat32(t+4,e.im,!0))}function jg(r,t,e,n){switch(n){case"float64":r.setFloat64(t,e,!0);break;case"float32":r.setFloat32(t,e,!0);break;case"int32":r.setInt32(t,e,!0);break;case"int16":r.setInt16(t,e,!0);break;case"int8":r.setInt8(t,e);break;case"uint32":r.setUint32(t,e,!0);break;case"uint16":r.setUint16(t,e,!0);break;case"uint8":case"bool":r.setUint8(t,e);break;default:throw new Error(`Unsupported dtype for serialization: ${n}`)}}var se=G(()=>{"use strict";Q();Bt()});function so(r){let t=4294967295;for(let e=0;e<r.length;e++)t=Lg[(t^r[e])&255]^t>>>8;return(t^4294967295)>>>0}var Lg,io=G(()=>{"use strict";Lg=(()=>{let r=new Uint32Array(256);for(let t=0;t<256;t++){let e=t;for(let n=0;n<8;n++)e=e&1?3988292384^e>>>1:e>>>1;r[t]=e}return r})()});async function sy(r){let t=uy(r),e=new Map;for(let n of t){let o=await Wg(n);e.set(n.name,o)}return e}function iy(r){let t=uy(r),e=new Map;for(let n of t){if(n.compressionMethod!==0)throw new Error(`Cannot read compressed entry synchronously: ${n.name}. Use readZip() (async) for DEFLATE-compressed files.`);e.set(n.name,n.compressedData)}return e}function uy(r){let t=r instanceof ArrayBuffer?new Uint8Array(r):r,e=new DataView(t.buffer,t.byteOffset,t.byteLength),n=[],o=-1;for(let c=t.length-22;c>=0;c--)if(e.getUint32(c,!0)===101010256){o=c;break}if(o===-1)throw new Error("Invalid ZIP file: end of central directory not found");let a=e.getUint32(o+16,!0),i=e.getUint16(o+10,!0),s=[],u=a;for(let c=0;c<i&&e.getUint32(u,!0)===33639248;c++){let m=e.getUint16(u+10,!0),d=e.getUint32(u+16,!0),y=e.getUint32(u+20,!0),f=e.getUint32(u+24,!0),p=e.getUint16(u+28,!0),g=e.getUint16(u+30,!0),h=e.getUint16(u+32,!0),b=e.getUint32(u+42,!0),A=t.slice(u+46,u+46+p),S=new TextDecoder("utf-8").decode(A);s.push({name:S,compressionMethod:m,crc32:d,compressedSize:y,uncompressedSize:f,localHeaderOffset:b}),u=u+46+p+g+h}for(let c of s){let l=c.localHeaderOffset;if(e.getUint32(l,!0)!==67324752)throw new Error(`Invalid local file header at offset ${l}`);let d=e.getUint16(l+26,!0),y=e.getUint16(l+28,!0),f=l+30+d+y,p=t.slice(f,f+c.compressedSize);n.push({name:c.name,compressedData:p,compressionMethod:c.compressionMethod,crc32:c.crc32,compressedSize:c.compressedSize,uncompressedSize:c.uncompressedSize})}return n}async function Wg(r){if(r.compressionMethod===0)return r.compressedData;if(r.compressionMethod===8)return await Gg(r.compressedData);throw new Error(`Unsupported compression method: ${r.compressionMethod}`)}async function Gg(r){if(typeof DecompressionStream>"u")throw new Error("DecompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new DecompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(i),u=0;for(let c of a)s.set(c,u),u+=c.length;return s}var cy=G(()=>{"use strict";io()});var fy={};we(fy,{loadNpz:()=>ie,loadNpzSync:()=>ue,parseNpz:()=>Gr,parseNpzSync:()=>Tt});async function Gr(r,t={}){let e=t.force??!1,n=await sy(r);return ly(n,e)}function Tt(r,t={}){let e=t.force??!1,n=iy(r);return ly(n,e)}function ly(r,t){let e=new Map,n=[],o=new Map;for(let[a,i]of r){if(!a.endsWith(".npy"))continue;let s=a.slice(0,-4);try{let u=Pr(i);e.set(s,u)}catch(u){if(u instanceof Fr&&t)n.push(s),o.set(s,u.message);else throw u}}return{arrays:e,skipped:n,errors:o}}async function ie(r,t={}){let e=await Gr(r,t);return Object.fromEntries(e.arrays)}function ue(r,t={}){let e=Tt(r,t);return Object.fromEntries(e.arrays)}var ce=G(()=>{"use strict";ae();Bt();cy()});async function my(r,t={}){let e=t.compress??!1,n=[];for(let[d,y]of r){let f=so(y),p,g;e?(p=await Yg(y),p.length<y.length?g=8:(p=y,g=0)):(p=y,g=0),n.push({name:d,data:y,compressedData:p,crc:f,compressionMethod:g,offset:0})}let o=0;for(let d of n){let y=new TextEncoder().encode(d.name);o+=30+y.length+d.compressedData.length}let a=0;for(let d of n){let y=new TextEncoder().encode(d.name);a+=46+y.length}let s=o+a+22,u=new Uint8Array(s),c=new DataView(u.buffer),l=0;for(let d of n)d.offset=l,l=yy(u,c,l,d);let m=l;for(let d of n)l=dy(u,c,l,d);return gy(c,l,n.length,a,m),u}function py(r){let t=[];for(let[l,m]of r){let d=so(m);t.push({name:l,data:m,compressedData:m,crc:d,compressionMethod:0,offset:0})}let e=0;for(let l of t){let m=new TextEncoder().encode(l.name);e+=30+m.length+l.compressedData.length}let n=0;for(let l of t){let m=new TextEncoder().encode(l.name);n+=46+m.length}let a=e+n+22,i=new Uint8Array(a),s=new DataView(i.buffer),u=0;for(let l of t)l.offset=u,u=yy(i,s,u,l);let c=u;for(let l of t)u=dy(i,s,u,l);return gy(s,u,t.length,n,c),i}function yy(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,67324752,!0),e+=4,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,r.set(o,e),e+=o.length,r.set(n.compressedData,e),e+=n.compressedData.length,e}function dy(r,t,e,n){let o=new TextEncoder().encode(n.name);return t.setUint32(e,33639248,!0),e+=4,t.setUint16(e,20,!0),e+=2,t.setUint16(e,n.compressionMethod===8?20:10,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,n.compressionMethod,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,33,!0),e+=2,t.setUint32(e,n.crc,!0),e+=4,t.setUint32(e,n.compressedData.length,!0),e+=4,t.setUint32(e,n.data.length,!0),e+=4,t.setUint16(e,o.length,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint16(e,0,!0),e+=2,t.setUint32(e,0,!0),e+=4,t.setUint32(e,n.offset,!0),e+=4,r.set(o,e),e+=o.length,e}function gy(r,t,e,n,o){r.setUint32(t,101010256,!0),t+=4,r.setUint16(t,0,!0),t+=2,r.setUint16(t,0,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint16(t,e,!0),t+=2,r.setUint32(t,n,!0),t+=4,r.setUint32(t,o,!0),t+=4,r.setUint16(t,0,!0)}async function Yg(r){if(typeof CompressionStream>"u")throw new Error("CompressionStream is not available. This environment does not support the Compression Streams API. Please use a modern browser or Node.js 18+.");let t=new CompressionStream("deflate-raw"),e=new Uint8Array(r.length);e.set(r);let n=t.writable.getWriter();n.write(e),n.close();let o=t.readable.getReader(),a=[];for(;;){let{done:c,value:l}=await o.read();if(c)break;a.push(l)}let i=a.reduce((c,l)=>c+l.length,0),s=new Uint8Array(i),u=0;for(let c of a)s.set(c,u),u+=c.length;return s}var Ay=G(()=>{"use strict";io()});var hy={};we(hy,{serializeNpz:()=>ut,serializeNpzSync:()=>le});async function ut(r,t={}){let e=by(r);return my(e,{compress:t.compress??!1})}function le(r){let t=by(r);return py(t)}function by(r){let t=new Map;if(Array.isArray(r)){for(let n=0;n<r.length;n++){let o=r[n],a=Cr(o);t.set(`arr_${n}.npy`,a)}return t}let e=r instanceof Map?r.entries():Object.entries(r);for(let[n,o]of e){if(typeof n!="string"||n.length===0)throw new Error("Array names must be non-empty strings");let a=Cr(o),i=n.endsWith(".npy")?n:`${n}.npy`;t.set(i,a)}return t}var fe=G(()=>{"use strict";se();Ay()});var FA={};we(FA,{Complex:()=>E,DTYPE_TO_DESCR:()=>Mt,InvalidNpyError:()=>lr,NDArray:()=>_,SUPPORTED_DTYPES:()=>ee,UnsupportedDTypeError:()=>Fr,__version__:()=>pA,abs:()=>jn,absolute:()=>jn,acos:()=>Gn,acosh:()=>Xn,amax:()=>to,amin:()=>eo,angle:()=>sm,append:()=>wl,apply_along_axis:()=>Ep,apply_over_axes:()=>Tp,arange:()=>Tu,arccos:()=>Gn,arccosh:()=>Xn,arcsin:()=>Wn,arcsinh:()=>Hn,arctan:()=>Zn,arctan2:()=>Yn,arctanh:()=>Jn,argpartition:()=>Wm,argsort:()=>Pm,argwhere:()=>Ym,around:()=>te,array:()=>L,array_equal:()=>$l,array_equiv:()=>Rl,array_split:()=>Hc,asanyarray:()=>Wu,asarray:()=>st,asarray_chkfinite:()=>Ru,ascontiguousarray:()=>Gu,asfortranarray:()=>Zu,asin:()=>Wn,asinh:()=>Hn,atan:()=>Zn,atan2:()=>Yn,atanh:()=>Jn,atleast_1d:()=>Al,atleast_2d:()=>bl,atleast_3d:()=>hl,average:()=>jl,bincount:()=>Dp,bindex:()=>Ol,bitwise_and:()=>vf,bitwise_count:()=>$f,bitwise_invert:()=>Rf,bitwise_left_shift:()=>kf,bitwise_not:()=>Bf,bitwise_or:()=>Ff,bitwise_right_shift:()=>qf,bitwise_xor:()=>Mf,block:()=>Zc,broadcast_arrays:()=>Fl,broadcast_shapes:()=>Ml,broadcast_to:()=>vl,byteswap:()=>sl,can_cast:()=>Rp,cbrt:()=>of,ceil:()=>rp,choose:()=>Ul,clip:()=>bf,column_stack:()=>Dl,common_type:()=>kp,compress:()=>zm,concat:()=>Wc,concatenate:()=>Vr,conj:()=>no,conjugate:()=>am,convolve:()=>_p,copy:()=>qu,copysign:()=>Hf,copyto:()=>Cl,corrcoef:()=>Fp,correlate:()=>zp,cos:()=>Mc,cosh:()=>Rc,count_nonzero:()=>Km,cov:()=>vp,cross:()=>Sp,cumprod:()=>ro,cumsum:()=>Kn,cumulative_prod:()=>ro,cumulative_sum:()=>Kn,deg2rad:()=>Cc,degrees:()=>Tc,delete:()=>Il,diag:()=>Vn,diag_indices:()=>Mm,diag_indices_from:()=>Bm,diagflat:()=>Yu,diagonal:()=>xc,diff:()=>Ap,digitize:()=>Np,divide:()=>Ln,divmod:()=>sf,dot:()=>Dc,dsplit:()=>Sl,dstack:()=>Lc,ediff1d:()=>bp,einsum:()=>dm,empty:()=>kn,empty_like:()=>ju,exp:()=>sc,exp2:()=>ic,expand_dims:()=>fl,expm1:()=>uc,extract:()=>Qm,eye:()=>Rn,fabs:()=>af,fill:()=>el,fill_diagonal:()=>Fm,fix:()=>tp,flatnonzero:()=>Hm,flatten:()=>tl,flip:()=>re,fliplr:()=>ml,flipud:()=>pl,float_power:()=>ff,floor:()=>ep,floor_divide:()=>bc,fmax:()=>Df,fmin:()=>Nf,fmod:()=>mf,frexp:()=>pf,frombuffer:()=>tc,fromfile:()=>ec,fromfunction:()=>Hu,fromiter:()=>nc,fromregex:()=>_A,fromregexSync:()=>vA,fromstring:()=>oc,full:()=>qn,full_like:()=>Lu,gcd:()=>yf,genfromtxt:()=>IA,genfromtxtSync:()=>zA,geomspace:()=>Uu,geterr:()=>Ht,gradient:()=>hp,heaviside:()=>lf,histogram:()=>xp,histogram2d:()=>wp,histogram_bin_edges:()=>Mp,histogramdd:()=>Ip,hsplit:()=>Jc,hstack:()=>jc,hypot:()=>Ec,i0:()=>_f,identity:()=>$u,iindex:()=>Tl,imag:()=>om,in1d:()=>sp,indices:()=>$m,inner:()=>zc,insert:()=>zl,interp:()=>wf,intersect1d:()=>ip,invert:()=>Ef,iscomplex:()=>Kf,iscomplexobj:()=>rm,isdtype:()=>pm,isfinite:()=>Wf,isfortran:()=>cm,isin:()=>up,isinf:()=>Gf,isnan:()=>Zf,isnat:()=>Yf,isneginf:()=>im,isposinf:()=>um,isreal:()=>tm,isrealobj:()=>em,isscalar:()=>fm,issubdtype:()=>jp,item:()=>nl,iterable:()=>mm,ix_:()=>Rm,kron:()=>wc,lcm:()=>df,ldexp:()=>gf,left_shift:()=>Tf,lexsort:()=>jm,linalg:()=>Nm,linspace:()=>Ou,load:()=>dA,loadNpy:()=>Ly,loadNpySync:()=>Wy,loadNpz:()=>ie,loadNpzFile:()=>Yy,loadNpzFileSync:()=>Hy,loadNpzSync:()=>ue,loadSync:()=>gA,loadtxt:()=>DA,loadtxtSync:()=>NA,log:()=>cc,log10:()=>fc,log1p:()=>mc,log2:()=>lc,logaddexp:()=>pc,logaddexp2:()=>yc,logical_and:()=>Vf,logical_not:()=>jf,logical_or:()=>Pf,logical_xor:()=>Lf,logspace:()=>Cu,mask_indices:()=>Um,matrix_transpose:()=>bm,matvec:()=>Sm,max:()=>to,maximum:()=>hf,may_share_memory:()=>Op,median:()=>ql,meshgrid:()=>Xu,min:()=>eo,min_scalar_type:()=>Pp,minimum:()=>Sf,mintypecode:()=>Wp,mod:()=>Ac,modf:()=>Af,moveaxis:()=>Vc,nan_to_num:()=>xf,nanargmax:()=>Ql,nanargmin:()=>Jl,nancumprod:()=>rf,nancumsum:()=>Kl,nanmax:()=>Xl,nanmean:()=>Gl,nanmedian:()=>tf,nanmin:()=>Hl,nanpercentile:()=>nf,nanprod:()=>Wl,nanquantile:()=>ef,nanstd:()=>Yl,nansum:()=>Ll,nanvar:()=>Zl,ndim:()=>Up,negative:()=>dc,nextafter:()=>Jf,nonzero:()=>Zm,ones:()=>$n,ones_like:()=>Pu,outer:()=>_c,packbits:()=>Cf,pad:()=>_l,parseNpy:()=>Pr,parseNpyData:()=>oe,parseNpyHeader:()=>ne,parseNpz:()=>Gr,parseNpzSync:()=>Tt,parseTxt:()=>Zr,partition:()=>Lm,percentile:()=>Vl,permute_dims:()=>hm,place:()=>vm,poly:()=>Gp,polyadd:()=>Zp,polyder:()=>Yp,polydiv:()=>Hp,polyfit:()=>Xp,polyint:()=>Qp,polymul:()=>Kp,polysub:()=>ry,polyval:()=>ty,positive:()=>hc,pow:()=>Pn,power:()=>Pn,promote_types:()=>ym,ptp:()=>kl,put:()=>El,put_along_axis:()=>wm,putmask:()=>Im,quantile:()=>Pl,rad2deg:()=>Uc,radians:()=>Oc,random:()=>mA,ravel:()=>rl,ravel_multi_index:()=>km,real:()=>nm,real_if_close:()=>lm,reciprocal:()=>Sc,remainder:()=>cf,repeat:()=>Kc,require:()=>ku,reshape:()=>cl,resize:()=>xl,result_type:()=>qp,right_shift:()=>Of,rint:()=>np,roll:()=>dl,rollaxis:()=>gl,roots:()=>ey,rot90:()=>yl,round:()=>te,round_:()=>te,row_stack:()=>Nl,save:()=>AA,saveNpy:()=>Gy,saveNpySync:()=>Zy,saveNpz:()=>bo,saveNpzSync:()=>yA,saveSync:()=>bA,savetxt:()=>xA,savetxtSync:()=>wA,savez:()=>hA,savez_compressed:()=>SA,searchsorted:()=>Jm,select:()=>_m,serializeNpy:()=>Cr,serializeNpz:()=>ut,serializeNpzSync:()=>le,serializeTxt:()=>ct,setdiff1d:()=>cp,seterr:()=>yn,setxor1d:()=>lp,shape:()=>oo,shares_memory:()=>Cp,sign:()=>gc,signbit:()=>Xf,sin:()=>Fc,sinc:()=>zf,sinh:()=>$c,size:()=>$p,sort:()=>Vm,sort_complex:()=>Gm,spacing:()=>Qf,split:()=>Yc,sqrt:()=>ac,square:()=>uf,squeeze:()=>ll,stack:()=>Pc,swapaxes:()=>qc,take:()=>Bl,take_along_axis:()=>xm,tan:()=>Bc,tanh:()=>kc,tensordot:()=>vc,tile:()=>Qc,tobytes:()=>al,tofile:()=>ul,tolist:()=>ol,trace:()=>Nc,transpose:()=>Ic,trapezoid:()=>Bp,tri:()=>Ju,tril:()=>Qu,tril_indices:()=>Em,tril_indices_from:()=>Tm,trim_zeros:()=>mp,triu:()=>Ku,triu_indices:()=>Om,triu_indices_from:()=>Cm,true_divide:()=>Ln,trunc:()=>op,typename:()=>Lp,union1d:()=>fp,unique:()=>ap,unique_all:()=>pp,unique_counts:()=>yp,unique_inverse:()=>dp,unique_values:()=>gp,unpackbits:()=>Uf,unravel_index:()=>qm,unstack:()=>Gc,unwrap:()=>If,vander:()=>rc,vdot:()=>gm,vecdot:()=>Am,vecmat:()=>Dm,view:()=>il,vsplit:()=>Xc,vstack:()=>Qn,where:()=>Xm,zeros:()=>vr,zeros_like:()=>Vu});module.exports=Ie(FA);var Mr=require("node:fs"),Br=require("node:fs/promises");ae();se();ce();fe();vt();function Zr(r,t={}){let{delimiter:e,comments:n="#",skiprows:o=0,usecols:a,max_rows:i,dtype:s="float64",missing_values:u,filling_values:c}=t,l=r.split(/\r?\n/);if(o>0&&(l=l.slice(o)),l=l.filter(p=>{let g=p.trim();return!(g===""||n&&g.startsWith(n))}),i!==void 0&&i>0&&(l=l.slice(0,i)),l.length===0)return L([],s);let m=[],d=new Set(u?Array.isArray(u)?u:[u]:[]),y=c!==void 0?c:s.includes("int")||s==="bool"?0:NaN;for(let p of l){let g;e===void 0?g=p.trim().split(/\s+/):g=p.split(e),a!==void 0&&(g=(Array.isArray(a)?a:[a]).map(A=>(A<0&&(A=g.length+A),g[A]??"")));let h=g.map(b=>{let A=b.trim();if(d.has(A)||A==="")return y;let S=parseFloat(A);return isNaN(S)?y:S});m.push(h)}let f=m[0]?.length??0;for(let p=1;p<m.length;p++)if(m[p].length!==f)throw new Error(`Inconsistent number of columns: row 0 has ${f} columns, row ${p} has ${m[p].length} columns`);return f===1?L(m.map(p=>p[0]),s):L(m,s)}function Ot(r,t={}){let e={...t,missing_values:t.missing_values??["","nan","NaN","NA","N/A","-"],filling_values:t.filling_values??NaN};return Zr(r,e)}function Ct(r,t,e="float64"){let n=typeof t=="string"?new RegExp(t,"gm"):new RegExp(t.source,"gm"),o=[],a;for(;(a=n.exec(r))!==null;)if(a.length>1){let i=a.slice(1).map(s=>{let u=parseFloat(s);return isNaN(u)?0:u});o.push(i)}return o.length===0?L([],e):o[0].length===1?L(o.map(i=>i[0]),e):L(o,e)}function Sy(r,t){let e=typeof r=="bigint"?Number(r):r,n=t.match(/^%([+-]?)(\d*)(?:\.(\d+))?([dfeEgGs])$/);if(!n)return String(e);let[,o,a,i,s]=n,u=i!==void 0?parseInt(i,10):void 0,c;switch(s){case"d":c=Math.round(e).toString();break;case"f":c=e.toFixed(u??6);break;case"e":c=e.toExponential(u??6).replace(/e([+-])(\d)$/,"e$10$2");break;case"E":c=e.toExponential(u??6).toUpperCase().replace(/E([+-])(\d)$/,"E$10$2");break;case"g":case"G":{let l=u??6,m=Math.floor(Math.log10(Math.abs(e)));m>=-4&&m<l?(c=e.toPrecision(l),c.includes(".")&&(c=c.replace(/\.?0+$/,""))):c=e.toExponential(l-1),s==="G"&&(c=c.toUpperCase());break}case"s":c=String(e);break;default:c=String(e)}if(a){let l=parseInt(a,10);if(c.length<l){let m=" ".repeat(l-c.length);o==="-"?c=c+m:c=m+c}}return o==="+"&&e>=0&&!c.startsWith("-")&&(c="+"+c),c}function ct(r,t={}){let{fmt:e="%.18e",delimiter:n=" ",newline:o=`
3
+ `,header:a,footer:i,comments:s="# "}=t;if(r.ndim>2)throw new Error("savetxt: array must be 1D or 2D");let u=[];if(a!==void 0){let l=a.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?u.push(m):u.push(s+m)}let c=r.toArray();if(r.ndim===1)for(let l of c)u.push(Sy(l,e));else for(let l of c){let m=l.map(d=>Sy(d,e));u.push(m.join(n))}if(i!==void 0){let l=i.split(/\r?\n/);for(let m of l)m.startsWith(s.trimEnd())?u.push(m):u.push(s+m)}return u.join(o)+o}xr();vt();ae();se();Bt();ce();fe();K();Q();var Dr=624,me=397,Hg=2567483615,lo=2147483648,fo=2147483647,Nr={mt:new Uint32Array(Dr),mti:Dr+1};function xy(r){let t=Nr.mt;t[0]=r>>>0;for(let e=1;e<Dr;e++){let n=t[e-1]^t[e-1]>>>30;t[e]=Math.imul(1812433253,n)+e>>>0}Nr.mti=Dr}function Dy(){let r=Nr.mt,t,e=[0,Hg];if(Nr.mti>=Dr){let n;for(Nr.mti===Dr+1&&xy(5489),n=0;n<Dr-me;n++)t=r[n]&lo|r[n+1]&fo,r[n]=r[n+me]^t>>>1^e[t&1];for(;n<Dr-1;n++)t=r[n]&lo|r[n+1]&fo,r[n]=r[n+(me-Dr)]^t>>>1^e[t&1];t=r[Dr-1]&lo|r[0]&fo,r[Dr-1]=r[me-1]^t>>>1^e[t&1],Nr.mti=0}return t=r[Nr.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0}function H(){let r=Dy()>>>5,t=Dy()>>>6;return(r*67108864+t)/9007199254740992}var Xg=2468251765,Jg=1492356589,Qg=1135663077,Kg=2337405405,rA=3389127133,tA=1232336661,Ao=16,pe=4;function fr(r){return r>>>0}function mo(r,t){return r=fr(fr(r)^t.val),t.val=fr(Math.imul(t.val,Xg)),r=fr(Math.imul(r,t.val)),r=fr(r^r>>>Ao),r}function eA(r,t){let e=fr(fr(Math.imul(rA,fr(r)))-fr(Math.imul(tA,fr(t))));return e=fr(e^e>>>Ao),e}function nA(r){let t=[0,0,0,0],e=[r>>>0],n={val:Qg};for(let o=0;o<pe;o++)o<e.length?t[o]=mo(e[o],n):t[o]=mo(0,n);for(let o=0;o<pe;o++)for(let a=0;a<pe;a++)if(o!==a){let i=mo(t[o],n);t[a]=eA(t[a],i)}return t}function oA(r,t){let e=[],n=Kg;for(let o=0;o<t;o++){let a=r[o%pe],i=fr(a^n);n=fr(Math.imul(n,Jg)),i=fr(Math.imul(i,n)),i=fr(i^i>>>Ao),e.push(i)}return e}var aA=BigInt("4865540595714422341"),sA=BigInt("2549297995355413924"),iA=sA<<BigInt(64)|aA,po=BigInt("0xffffffffffffffff"),yo=(BigInt(1)<<BigInt(128))-BigInt(1);function uA(r){let t=r>>BigInt(64),e=r&po,n=(t^e)&po,o=Number(r>>BigInt(122));return(n>>BigInt(o)|n<<BigInt(64-o))&po}function go(r,t){return r*iA+t&yo}function Ny(r){let t=nA(r),e=oA(t,8),n=BigInt(e[0])|BigInt(e[1])<<BigInt(32),o=BigInt(e[2])|BigInt(e[3])<<BigInt(32),a=BigInt(e[4])|BigInt(e[5])<<BigInt(32),i=BigInt(e[6])|BigInt(e[7])<<BigInt(32),s=n<<BigInt(64)|o,u=(a<<BigInt(64)|i)<<BigInt(1);u=(u|BigInt(1))&yo;let c=BigInt(0);return c=go(c,u),c=c+s&yo,c=go(c,u),{state:c,inc:u}}function cA(r){return r.state=go(r.state,r.inc),uA(r.state)}function lA(r){let e=cA(r)>>BigInt(11);return Number(e)/9007199254740992}var Ut=class{constructor(t){if(t!==void 0)this._pcgState=Ny(t);else{let e=Math.floor(Math.random()*4294967296);this._pcgState=Ny(e)}}_randomFloat(){return lA(this._pcgState)}random(t){if(t===void 0)return this._randomFloat();let e=Array.isArray(t)?t:[t],n=e.reduce((i,s)=>i*s,1),o=N.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i++)a[i]=this._randomFloat();return o}integers(t,e,n){if(e===void 0&&(e=t,t=0),n===void 0)return Math.floor(this._randomFloat()*(e-t))+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),i=N.zeros(o,"int64"),s=i.data,u=e-t;for(let c=0;c<a;c++)s[c]=BigInt(Math.floor(this._randomFloat()*u)+t);return i}standard_normal(t){if(t===void 0)return Yr(this._randomFloat.bind(this));let e=Array.isArray(t)?t:[t],n=e.reduce((i,s)=>i*s,1),o=N.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i+=2){let[s,u]=$t(this._randomFloat.bind(this));a[i]=s,i+1<n&&(a[i+1]=u)}return o}normal(t=0,e=1,n){if(n===void 0)return Yr(this._randomFloat.bind(this))*e+t;let o=Array.isArray(n)?n:[n],a=o.reduce((u,c)=>u*c,1),i=N.zeros(o,"float64"),s=i.data;for(let u=0;u<a;u+=2){let[c,l]=$t(this._randomFloat.bind(this));s[u]=c*e+t,u+1<a&&(s[u+1]=l*e+t)}return i}uniform(t=0,e=1,n){if(n===void 0)return this._randomFloat()*(e-t)+t;let o=Array.isArray(n)?n:[n],a=o.reduce((c,l)=>c*l,1),i=N.zeros(o,"float64"),s=i.data,u=e-t;for(let c=0;c<a;c++)s[c]=this._randomFloat()*u+t;return i}choice(t,e,n=!0,o){return Ry(t,e,n,o,this._randomFloat.bind(this))}permutation(t){return qy(t,this._randomFloat.bind(this))}shuffle(t){Py(t,this._randomFloat.bind(this))}exponential(t=1,e){if(e===void 0)return-Math.log(1-this._randomFloat())*t;let n=Array.isArray(e)?e:[e],o=n.reduce((s,u)=>s*u,1),a=N.zeros(n,"float64"),i=a.data;for(let s=0;s<o;s++)i[s]=-Math.log(1-this._randomFloat())*t;return a}poisson(t=1,e){if(e===void 0)return ye(t,this._randomFloat.bind(this));let n=Array.isArray(e)?e:[e],o=n.reduce((s,u)=>s*u,1),a=N.zeros(n,"int64"),i=a.data;for(let s=0;s<o;s++)i[s]=BigInt(ye(t,this._randomFloat.bind(this)));return a}binomial(t,e,n){if(n===void 0)return de(t,e,this._randomFloat.bind(this));let o=Array.isArray(n)?n:[n],a=o.reduce((u,c)=>u*c,1),i=N.zeros(o,"int64"),s=i.data;for(let u=0;u<a;u++)s[u]=BigInt(de(t,e,this._randomFloat.bind(this)));return i}};function wy(r){return new Ut(r)}function Iy(r){r==null&&(r=Math.floor(Date.now()^Math.random()*4294967296)),xy(r>>>0)}function zy(){return{mt:Array.from(Nr.mt),mti:Nr.mti}}function _y(r){Nr.mt=new Uint32Array(r.mt),Nr.mti=r.mti}function Yr(r){let t,e;do t=r(),e=r();while(t===0);return Math.sqrt(-2*Math.log(t))*Math.cos(2*Math.PI*e)}function $t(r){let t,e;do t=r(),e=r();while(t===0);let n=Math.sqrt(-2*Math.log(t)),o=2*Math.PI*e;return[n*Math.cos(o),n*Math.sin(o)]}function ye(r,t){if(r<30){let e=Math.exp(-r),n=0,o=1;do n++,o*=t();while(o>e);return n-1}else{let e=Yr(t);return Math.max(0,Math.round(r+Math.sqrt(r)*e))}}function de(r,t,e){if(r*t<10&&r*(1-t)<10){let n=0;for(let o=0;o<r;o++)e()<t&&n++;return n}else{let n=r*t,o=Math.sqrt(r*t*(1-t)),a=Yr(e);return Math.max(0,Math.min(r,Math.round(n+o*a)))}}function vy(r){if(r===void 0)return H();let t=Array.isArray(r)?r:[r],e=t.reduce((a,i)=>a*i,1),n=N.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a++)o[a]=H();return n}function Fy(...r){if(r.length===0)return H();let t=r.reduce((o,a)=>o*a,1),e=N.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o++)n[o]=H();return e}function My(...r){if(r.length===0)return Yr(H);let t=r.reduce((o,a)=>o*a,1),e=N.zeros(r,"float64"),n=e.data;for(let o=0;o<t;o+=2){let[a,i]=$t(H);n[o]=a,o+1<t&&(n[o+1]=i)}return e}function By(r,t,e,n="int64"){t==null&&(t=r,r=0);let o=t-r;if(e===void 0)return Math.floor(H()*o)+r;let a=Array.isArray(e)?e:[e],i=a.reduce((c,l)=>c*l,1),s=N.zeros(a,n),u=s.data;if(B(n)){let c=u;for(let l=0;l<i;l++)c[l]=BigInt(Math.floor(H()*o)+r)}else{let c=u;for(let l=0;l<i;l++)c[l]=Math.floor(H()*o)+r}return s}function Ey(r=0,t=1,e){if(e===void 0)return H()*(t-r)+r;let n=Array.isArray(e)?e:[e],o=n.reduce((u,c)=>u*c,1),a=N.zeros(n,"float64"),i=a.data,s=t-r;for(let u=0;u<o;u++)i[u]=H()*s+r;return a}function Ty(r=0,t=1,e){if(e===void 0)return Yr(H)*t+r;let n=Array.isArray(e)?e:[e],o=n.reduce((s,u)=>s*u,1),a=N.zeros(n,"float64"),i=a.data;for(let s=0;s<o;s+=2){let[u,c]=$t(H);i[s]=u*t+r,s+1<o&&(i[s+1]=c*t+r)}return a}function Oy(r){if(r===void 0)return Yr(H);let t=Array.isArray(r)?r:[r],e=t.reduce((a,i)=>a*i,1),n=N.zeros(t,"float64"),o=n.data;for(let a=0;a<e;a+=2){let[i,s]=$t(H);o[a]=i,a+1<e&&(o[a+1]=s)}return n}function Cy(r=1,t){if(t===void 0)return-Math.log(1-H())*r;let e=Array.isArray(t)?t:[t],n=e.reduce((i,s)=>i*s,1),o=N.zeros(e,"float64"),a=o.data;for(let i=0;i<n;i++)a[i]=-Math.log(1-H())*r;return o}function Uy(r=1,t){if(t===void 0)return ye(r,H);let e=Array.isArray(t)?t:[t],n=e.reduce((i,s)=>i*s,1),o=N.zeros(e,"int64"),a=o.data;for(let i=0;i<n;i++)a[i]=BigInt(ye(r,H));return o}function $y(r,t,e){if(e===void 0)return de(r,t,H);let n=Array.isArray(e)?e:[e],o=n.reduce((s,u)=>s*u,1),a=N.zeros(n,"int64"),i=a.data;for(let s=0;s<o;s++)i[s]=BigInt(de(r,t,H));return a}function Ry(r,t,e=!0,n,o=H){let a;if(typeof r=="number")a=Array.from({length:r},(d,y)=>y);else{let d=r.size;a=[];for(let y=0;y<d;y++)a.push(Number(r.iget(y)))}let i=a.length;if(i===0)throw new Error("cannot take a sample from an empty sequence");let s;if(n!==void 0){if(Array.isArray(n))s=n;else{let y=n.size;s=[];for(let f=0;f<y;f++)s.push(Number(n.iget(f)))}if(s.length!==i)throw new Error("p and a must have the same size");let d=s.reduce((y,f)=>y+f,0);Math.abs(d-1)>1e-10&&(s=s.map(y=>y/d))}if(t===void 0){if(s){let d=o(),y=0;for(let f=0;f<i;f++)if(y+=s[f],d<y)return a[f];return a[i-1]}return a[Math.floor(o()*i)]}let u=Array.isArray(t)?t:[t],c=u.reduce((d,y)=>d*y,1);if(!e&&c>i)throw new Error("cannot take a larger sample than population when replace=false");let l=N.zeros(u,"float64"),m=l.data;if(e)if(s){let d=new Array(i);d[0]=s[0];for(let y=1;y<i;y++)d[y]=d[y-1]+s[y];for(let y=0;y<c;y++){let f=o(),p=0;for(;p<i-1&&f>=d[p];)p++;m[y]=a[p]}}else for(let d=0;d<c;d++)m[d]=a[Math.floor(o()*i)];else{let d=[...a],y=s?[...s]:void 0;for(let f=0;f<c;f++){let p;if(y){let g=y.reduce((A,S)=>A+S,0),h=o()*g,b=0;p=0;for(let A=0;A<d.length;A++)if(b+=y[A],h<b){p=A;break}p===0&&h>=b&&(p=d.length-1)}else p=Math.floor(o()*d.length);m[f]=d[p],d.splice(p,1),y&&y.splice(p,1)}}return l}function ky(r,t,e=!0,n){return Ry(r,t,e,n,H)}function qy(r,t=H){let e;if(typeof r=="number"){let o=new Float64Array(r);for(let a=0;a<r;a++)o[a]=a;e=N.fromData(o,[r],"float64")}else e=r.copy();let n=e.size;for(let o=n-1;o>0;o--){let a=Math.floor(t()*(o+1)),i=e.iget(o);e.iset(o,e.iget(a)),e.iset(a,i)}return e}function Vy(r){return qy(r,H)}function Py(r,t=H){let e=r.size;for(let n=e-1;n>0;n--){let o=Math.floor(t()*(n+1)),a=r.iget(n);r.iset(n,r.iget(o)),r.iset(o,a)}}function jy(r){Py(r,H)}vt();function hr(r){return r&&typeof r=="object"&&"_data"in r&&"_shape"in r?_._fromStorage(r):r}var mA={seed:Iy,random:r=>hr(vy(r)),rand:(...r)=>hr(Fy(...r)),randn:(...r)=>hr(My(...r)),randint:(r,t,e,n)=>hr(By(r,t,e,n)),uniform:(r,t,e)=>hr(Ey(r,t,e)),normal:(r,t,e)=>hr(Ty(r,t,e)),standard_normal:r=>hr(Oy(r)),exponential:(r,t)=>hr(Cy(r,t)),poisson:(r,t)=>hr(Uy(r,t)),binomial:(r,t,e)=>hr($y(r,t,e)),choice:(r,t,e,n)=>hr(ky(r,t,e,n)),permutation:r=>hr(Vy(r)),shuffle:jy,get_state:zy,set_state:_y,default_rng:wy,Generator:Ut},pA="0.12.0";async function Ly(r){let t=await(0,Br.readFile)(r);return Pr(t)}function Wy(r){let t=(0,Mr.readFileSync)(r);return Pr(t)}async function Gy(r,t){let e=Cr(t);await(0,Br.writeFile)(r,e)}function Zy(r,t){let e=Cr(t);(0,Mr.writeFileSync)(r,e)}async function Yy(r,t={}){let e=await(0,Br.readFile)(r);return Gr(e,t)}function Hy(r,t={}){let e=(0,Mr.readFileSync)(r),{parseNpzSync:n}=(ce(),Ie(fy));return n(e,t)}async function bo(r,t,e={}){let n=await ut(t,e);await(0,Br.writeFile)(r,n)}function yA(r,t){let{serializeNpzSync:e}=(fe(),Ie(hy)),n=e(t);(0,Mr.writeFileSync)(r,n)}async function dA(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Ly(r)}else{if(r.endsWith(".npz"))return Yy(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}function gA(r,t={}){if(r.endsWith(".npy")){if(t.allowNpy===!1)throw new Error("Loading .npy files is disabled (allowNpy: false)");return Wy(r)}else{if(r.endsWith(".npz"))return Hy(r,t);throw new Error(`Unknown file extension. Expected .npy or .npz, got: ${r}`)}}async function AA(r,t){if(!r.endsWith(".npy"))throw new Error(`save() is for .npy files. Use saveNpz() for .npz files. Got: ${r}`);return Gy(r,t)}function bA(r,t){if(!r.endsWith(".npy"))throw new Error(`saveSync() is for .npy files. Use saveNpzSync() for .npz files. Got: ${r}`);return Zy(r,t)}async function hA(r,t){return r.endsWith(".npz")||(r=r+".npz"),bo(r,t,{compress:!1})}async function SA(r,t){return r.endsWith(".npz")||(r=r+".npz"),bo(r,t,{compress:!0})}async function DA(r,t={}){let e=await(0,Br.readFile)(r,{encoding:t.encoding??"utf-8"});return Zr(e,t)}function NA(r,t={}){let e=(0,Mr.readFileSync)(r,{encoding:t.encoding??"utf-8"});return Zr(e,t)}async function xA(r,t,e={}){let n=ct(t,e);await(0,Br.writeFile)(r,n,"utf-8")}function wA(r,t,e={}){let n=ct(t,e);(0,Mr.writeFileSync)(r,n,"utf-8")}async function IA(r,t={}){let e=await(0,Br.readFile)(r,{encoding:t.encoding??"utf-8"});return Ot(e,t)}function zA(r,t={}){let e=(0,Mr.readFileSync)(r,{encoding:t.encoding??"utf-8"});return Ot(e,t)}async function _A(r,t,e="float64"){let n=await(0,Br.readFile)(r,{encoding:"utf-8"});return Ct(n,t,e)}function vA(r,t,e="float64"){let n=(0,Mr.readFileSync)(r,{encoding:"utf-8"});return Ct(n,t,e)}0&&(module.exports={Complex,DTYPE_TO_DESCR,InvalidNpyError,NDArray,SUPPORTED_DTYPES,UnsupportedDTypeError,__version__,abs,absolute,acos,acosh,amax,amin,angle,append,apply_along_axis,apply_over_axes,arange,arccos,arccosh,arcsin,arcsinh,arctan,arctan2,arctanh,argpartition,argsort,argwhere,around,array,array_equal,array_equiv,array_split,asanyarray,asarray,asarray_chkfinite,ascontiguousarray,asfortranarray,asin,asinh,atan,atan2,atanh,atleast_1d,atleast_2d,atleast_3d,average,bincount,bindex,bitwise_and,bitwise_count,bitwise_invert,bitwise_left_shift,bitwise_not,bitwise_or,bitwise_right_shift,bitwise_xor,block,broadcast_arrays,broadcast_shapes,broadcast_to,byteswap,can_cast,cbrt,ceil,choose,clip,column_stack,common_type,compress,concat,concatenate,conj,conjugate,convolve,copy,copysign,copyto,corrcoef,correlate,cos,cosh,count_nonzero,cov,cross,cumprod,cumsum,cumulative_prod,cumulative_sum,deg2rad,degrees,delete:null,diag,diag_indices,diag_indices_from,diagflat,diagonal,diff,digitize,divide,divmod,dot,dsplit,dstack,ediff1d,einsum,empty,empty_like,exp,exp2,expand_dims,expm1,extract,eye,fabs,fill,fill_diagonal,fix,flatnonzero,flatten,flip,fliplr,flipud,float_power,floor,floor_divide,fmax,fmin,fmod,frexp,frombuffer,fromfile,fromfunction,fromiter,fromregex,fromregexSync,fromstring,full,full_like,gcd,genfromtxt,genfromtxtSync,geomspace,geterr,gradient,heaviside,histogram,histogram2d,histogram_bin_edges,histogramdd,hsplit,hstack,hypot,i0,identity,iindex,imag,in1d,indices,inner,insert,interp,intersect1d,invert,iscomplex,iscomplexobj,isdtype,isfinite,isfortran,isin,isinf,isnan,isnat,isneginf,isposinf,isreal,isrealobj,isscalar,issubdtype,item,iterable,ix_,kron,lcm,ldexp,left_shift,lexsort,linalg,linspace,load,loadNpy,loadNpySync,loadNpz,loadNpzFile,loadNpzFileSync,loadNpzSync,loadSync,loadtxt,loadtxtSync,log,log10,log1p,log2,logaddexp,logaddexp2,logical_and,logical_not,logical_or,logical_xor,logspace,mask_indices,matrix_transpose,matvec,max,maximum,may_share_memory,median,meshgrid,min,min_scalar_type,minimum,mintypecode,mod,modf,moveaxis,nan_to_num,nanargmax,nanargmin,nancumprod,nancumsum,nanmax,nanmean,nanmedian,nanmin,nanpercentile,nanprod,nanquantile,nanstd,nansum,nanvar,ndim,negative,nextafter,nonzero,ones,ones_like,outer,packbits,pad,parseNpy,parseNpyData,parseNpyHeader,parseNpz,parseNpzSync,parseTxt,partition,percentile,permute_dims,place,poly,polyadd,polyder,polydiv,polyfit,polyint,polymul,polysub,polyval,positive,pow,power,promote_types,ptp,put,put_along_axis,putmask,quantile,rad2deg,radians,random,ravel,ravel_multi_index,real,real_if_close,reciprocal,remainder,repeat,require,reshape,resize,result_type,right_shift,rint,roll,rollaxis,roots,rot90,round,round_,row_stack,save,saveNpy,saveNpySync,saveNpz,saveNpzSync,saveSync,savetxt,savetxtSync,savez,savez_compressed,searchsorted,select,serializeNpy,serializeNpz,serializeNpzSync,serializeTxt,setdiff1d,seterr,setxor1d,shape,shares_memory,sign,signbit,sin,sinc,sinh,size,sort,sort_complex,spacing,split,sqrt,square,squeeze,stack,swapaxes,take,take_along_axis,tan,tanh,tensordot,tile,tobytes,tofile,tolist,trace,transpose,trapezoid,tri,tril,tril_indices,tril_indices_from,trim_zeros,triu,triu_indices,triu_indices_from,true_divide,trunc,typename,union1d,unique,unique_all,unique_counts,unique_inverse,unique_values,unpackbits,unravel_index,unstack,unwrap,vander,vdot,vecdot,vecmat,view,vsplit,vstack,where,zeros,zeros_like});
4
4
  //# sourceMappingURL=numpy-ts.node-io.cjs.map