UNPKG

@splinetool/viewer

Version:

Spline is a collaborative design platform for creating production-ready interactive experiences in multiple dimensions. © 2024 Spline, Inc.

21 lines 83.1 kB
var Re=Object.create;var fr=Object.defineProperty;var Be=Object.getOwnPropertyDescriptor;var Ue=Object.getOwnPropertyNames;var Ye=Object.getPrototypeOf,Ge=Object.prototype.hasOwnProperty;var Qe=(r,e,n)=>e in r?fr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):r[e]=n;var K=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ur=(r,e)=>{for(var n in e)fr(r,n,{get:e[n],enumerable:!0})},$e=(r,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of Ue(e))!Ge.call(r,t)&&t!==n&&fr(r,t,{get:()=>e[t],enumerable:!(a=Be(e,t))||a.enumerable});return r};var Q=(r,e,n)=>(n=r!=null?Re(Ye(r)):{},$e(e||!r||!r.__esModule?fr(n,"default",{value:r,enumerable:!0}):n,r));var $=(r,e,n)=>(Qe(r,typeof e!="symbol"?e+"":e,n),n);var Lr=K((gt,Cr)=>{"use strict";function He(r){for(var e=new Array(r),n=0;n<r;++n)e[n]=n;return e}Cr.exports=He});var Tr=K((Mt,Er)=>{Er.exports=function(r){return r!=null&&(Dr(r)||We(r)||!!r._isBuffer)};function Dr(r){return!!r.constructor&&typeof r.constructor.isBuffer=="function"&&r.constructor.isBuffer(r)}function We(r){return typeof r.readFloatLE=="function"&&typeof r.slice=="function"&&Dr(r.slice(0,0))}});var tr=K((_t,Pr)=>{var Ze=Lr(),Xe=Tr(),Ke=typeof Float64Array<"u";function Je(r,e){return r[0]-e[0]}function rn(){var r=this.stride,e=new Array(r.length),n;for(n=0;n<e.length;++n)e[n]=[Math.abs(r[n]),n];e.sort(Je);var a=new Array(e.length);for(n=0;n<a.length;++n)a[n]=e[n][1];return a}function en(r,e){var n=["View",e,"d",r].join("");e<0&&(n="View_Nil"+r);var a=r==="generic";if(e===-1){var t="function "+n+"(a){this.data=a;};var proto="+n+".prototype;proto.dtype='"+r+"';proto.index=function(){return -1};proto.size=0;proto.dimension=-1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function(){return new "+n+"(this.data);};proto.get=proto.set=function(){};proto.pick=function(){return null};return function construct_"+n+"(a){return new "+n+"(a);}",d=new Function(t);return d()}else if(e===0){var t="function "+n+"(a,d) {this.data = a;this.offset = d};var proto="+n+".prototype;proto.dtype='"+r+"';proto.index=function(){return this.offset};proto.dimension=0;proto.size=1;proto.shape=proto.stride=proto.order=[];proto.lo=proto.hi=proto.transpose=proto.step=function "+n+"_copy() {return new "+n+"(this.data,this.offset)};proto.pick=function "+n+"_pick(){return TrivialArray(this.data);};proto.valueOf=proto.get=function "+n+"_get(){return "+(a?"this.data.get(this.offset)":"this.data[this.offset]")+"};proto.set=function "+n+"_set(v){return "+(a?"this.data.set(this.offset,v)":"this.data[this.offset]=v")+"};return function construct_"+n+"(a,b,c,d){return new "+n+"(a,d)}",d=new Function("TrivialArray",t);return d(yr[r][0])}var t=["'use strict'"],s=Ze(e),i=s.map(function(y){return"i"+y}),h="this.offset+"+s.map(function(y){return"this.stride["+y+"]*i"+y}).join("+"),o=s.map(function(y){return"b"+y}).join(","),c=s.map(function(y){return"c"+y}).join(",");t.push("function "+n+"(a,"+o+","+c+",d){this.data=a","this.shape=["+o+"]","this.stride=["+c+"]","this.offset=d|0}","var proto="+n+".prototype","proto.dtype='"+r+"'","proto.dimension="+e),t.push("Object.defineProperty(proto,'size',{get:function "+n+"_size(){return "+s.map(function(y){return"this.shape["+y+"]"}).join("*"),"}})"),e===1?t.push("proto.order=[0]"):(t.push("Object.defineProperty(proto,'order',{get:"),e<4?(t.push("function "+n+"_order(){"),e===2?t.push("return (Math.abs(this.stride[0])>Math.abs(this.stride[1]))?[1,0]:[0,1]}})"):e===3&&t.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):t.push("ORDER})")),t.push("proto.set=function "+n+"_set("+i.join(",")+",v){"),a?t.push("return this.data.set("+h+",v)}"):t.push("return this.data["+h+"]=v}"),t.push("proto.get=function "+n+"_get("+i.join(",")+"){"),a?t.push("return this.data.get("+h+")}"):t.push("return this.data["+h+"]}"),t.push("proto.index=function "+n+"_index(",i.join(),"){return "+h+"}"),t.push("proto.hi=function "+n+"_hi("+i.join(",")+"){return new "+n+"(this.data,"+s.map(function(y){return["(typeof i",y,"!=='number'||i",y,"<0)?this.shape[",y,"]:i",y,"|0"].join("")}).join(",")+","+s.map(function(y){return"this.stride["+y+"]"}).join(",")+",this.offset)}");var l=s.map(function(y){return"a"+y+"=this.shape["+y+"]"}),f=s.map(function(y){return"c"+y+"=this.stride["+y+"]"});t.push("proto.lo=function "+n+"_lo("+i.join(",")+"){var b=this.offset,d=0,"+l.join(",")+","+f.join(","));for(var p=0;p<e;++p)t.push("if(typeof i"+p+"==='number'&&i"+p+">=0){d=i"+p+"|0;b+=c"+p+"*d;a"+p+"-=d}");t.push("return new "+n+"(this.data,"+s.map(function(y){return"a"+y}).join(",")+","+s.map(function(y){return"c"+y}).join(",")+",b)}"),t.push("proto.step=function "+n+"_step("+i.join(",")+"){var "+s.map(function(y){return"a"+y+"=this.shape["+y+"]"}).join(",")+","+s.map(function(y){return"b"+y+"=this.stride["+y+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(var p=0;p<e;++p)t.push("if(typeof i"+p+"==='number'){d=i"+p+"|0;if(d<0){c+=b"+p+"*(a"+p+"-1);a"+p+"=ceil(-a"+p+"/d)}else{a"+p+"=ceil(a"+p+"/d)}b"+p+"*=d}");t.push("return new "+n+"(this.data,"+s.map(function(y){return"a"+y}).join(",")+","+s.map(function(y){return"b"+y}).join(",")+",c)}");for(var v=new Array(e),m=new Array(e),p=0;p<e;++p)v[p]="a[i"+p+"]",m[p]="b[i"+p+"]";t.push("proto.transpose=function "+n+"_transpose("+i+"){"+i.map(function(y,u){return y+"=("+y+"===undefined?"+u+":"+y+"|0)"}).join(";"),"var a=this.shape,b=this.stride;return new "+n+"(this.data,"+v.join(",")+","+m.join(",")+",this.offset)}"),t.push("proto.pick=function "+n+"_pick("+i+"){var a=[],b=[],c=this.offset");for(var p=0;p<e;++p)t.push("if(typeof i"+p+"==='number'&&i"+p+">=0){c=(c+this.stride["+p+"]*i"+p+")|0}else{a.push(this.shape["+p+"]);b.push(this.stride["+p+"])}");t.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),t.push("return function construct_"+n+"(data,shape,stride,offset){return new "+n+"(data,"+s.map(function(y){return"shape["+y+"]"}).join(",")+","+s.map(function(y){return"stride["+y+"]"}).join(",")+",offset)}");var d=new Function("CTOR_LIST","ORDER",t.join(` `));return d(yr[r],rn)}function nn(r){if(Xe(r))return"buffer";if(Ke)switch(Object.prototype.toString.call(r)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped";case"[object BigInt64Array]":return"bigint64";case"[object BigUint64Array]":return"biguint64"}return Array.isArray(r)?"array":"generic"}var yr={float32:[],float64:[],int8:[],int16:[],int32:[],uint8:[],uint16:[],uint32:[],array:[],uint8_clamped:[],bigint64:[],biguint64:[],buffer:[],generic:[]};function an(r,e,n,a){if(r===void 0){var c=yr.array[0];return c([])}else typeof r=="number"&&(r=[r]);e===void 0&&(e=[r.length]);var t=e.length;if(n===void 0){n=new Array(t);for(var s=t-1,i=1;s>=0;--s)n[s]=i,i*=e[s]}if(a===void 0){a=0;for(var s=0;s<t;++s)n[s]<0&&(a-=(e[s]-1)*n[s])}for(var h=nn(r),o=yr[h];o.length<=t+1;)o.push(en(h,o.length-1));var c=o[t+1];return c(r,e,n,a)}Pr.exports=an});var Or=K((bt,Vr)=>{"use strict";function tn(r,e){for(var n=1,a=r.length,t=r[0],s=r[0],i=1;i<a;++i)if(s=t,t=r[i],e(t,s)){if(i===n){n++;continue}r[n++]=t}return r.length=n,r}function sn(r){for(var e=1,n=r.length,a=r[0],t=r[0],s=1;s<n;++s,t=a)if(t=a,a=r[s],a!==t){if(s===e){e++;continue}r[e++]=a}return r.length=e,r}function on(r,e,n){return r.length===0?r:e?(n||r.sort(e),tn(r,e)):(n||r.sort(),sn(r))}Vr.exports=on});var Br=K((At,Rr)=>{"use strict";var hn=Or();function jr(r,e,n){var a=r.length,t=e.arrayArgs.length,s=e.indexArgs.length>0,i=[],h=[],o=0,c=0,l,f;for(l=0;l<a;++l)h.push(["i",l,"=0"].join(""));for(f=0;f<t;++f)for(l=0;l<a;++l)c=o,o=r[l],l===0?h.push(["d",f,"s",l,"=t",f,"p",o].join("")):h.push(["d",f,"s",l,"=(t",f,"p",o,"-s",c,"*t",f,"p",c,")"].join(""));for(h.length>0&&i.push("var "+h.join(",")),l=a-1;l>=0;--l)o=r[l],i.push(["for(i",l,"=0;i",l,"<s",o,";++i",l,"){"].join(""));for(i.push(n),l=0;l<a;++l){for(c=o,o=r[l],f=0;f<t;++f)i.push(["p",f,"+=d",f,"s",l].join(""));s&&(l>0&&i.push(["index[",c,"]-=s",c].join("")),i.push(["++index[",o,"]"].join(""))),i.push("}")}return i.join(` `)}function cn(r,e,n,a){for(var t=e.length,s=n.arrayArgs.length,i=n.blockSize,h=n.indexArgs.length>0,o=[],c=0;c<s;++c)o.push(["var offset",c,"=p",c].join(""));for(var c=r;c<t;++c)o.push(["for(var j"+c+"=SS[",e[c],"]|0;j",c,">0;){"].join("")),o.push(["if(j",c,"<",i,"){"].join("")),o.push(["s",e[c],"=j",c].join("")),o.push(["j",c,"=0"].join("")),o.push(["}else{s",e[c],"=",i].join("")),o.push(["j",c,"-=",i,"}"].join("")),h&&o.push(["index[",e[c],"]=j",c].join(""));for(var c=0;c<s;++c){for(var l=["offset"+c],f=r;f<t;++f)l.push(["j",f,"*t",c,"p",e[f]].join(""));o.push(["p",c,"=(",l.join("+"),")"].join(""))}o.push(jr(e,n,a));for(var c=r;c<t;++c)o.push("}");return o.join(` `)}function ln(r){for(var e=0,n=r[0].length;e<n;){for(var a=1;a<r.length;++a)if(r[a][e]!==r[0][e])return e;++e}return e}function xr(r,e,n){for(var a=r.body,t=[],s=[],i=0;i<r.args.length;++i){var h=r.args[i];if(!(h.count<=0)){var o=new RegExp(h.name,"g"),c="",l=e.arrayArgs.indexOf(i);switch(e.argTypes[i]){case"offset":var f=e.offsetArgIndex.indexOf(i),p=e.offsetArgs[f];l=p.array,c="+q"+f;case"array":c="p"+l+c;var v="l"+i,m="a"+l;if(e.arrayBlockIndices[l]===0)h.count===1?n[l]==="generic"?h.lvalue?(t.push(["var ",v,"=",m,".get(",c,")"].join("")),a=a.replace(o,v),s.push([m,".set(",c,",",v,")"].join(""))):a=a.replace(o,[m,".get(",c,")"].join("")):a=a.replace(o,[m,"[",c,"]"].join("")):n[l]==="generic"?(t.push(["var ",v,"=",m,".get(",c,")"].join("")),a=a.replace(o,v),h.lvalue&&s.push([m,".set(",c,",",v,")"].join(""))):(t.push(["var ",v,"=",m,"[",c,"]"].join("")),a=a.replace(o,v),h.lvalue&&s.push([m,"[",c,"]=",v].join("")));else{for(var d=[h.name],y=[c],u=0;u<Math.abs(e.arrayBlockIndices[l]);u++)d.push("\\s*\\[([^\\]]+)\\]"),y.push("$"+(u+1)+"*t"+l+"b"+u);if(o=new RegExp(d.join(""),"g"),c=y.join("+"),n[l]==="generic")throw new Error("cwise: Generic arrays not supported in combination with blocks!");a=a.replace(o,[m,"[",c,"]"].join(""))}break;case"scalar":a=a.replace(o,"Y"+e.scalarArgs.indexOf(i));break;case"index":a=a.replace(o,"index");break;case"shape":a=a.replace(o,"shape");break}}}return[t.join(` `),a,s.join(` `)].join(` `).trim()}function pn(r){for(var e=new Array(r.length),n=!0,a=0;a<r.length;++a){var t=r[a],s=t.match(/\d+/);s?s=s[0]:s="",t.charAt(0)===0?e[a]="u"+t.charAt(1)+s:e[a]=t.charAt(0)+s,a>0&&(n=n&&e[a]===e[a-1])}return n?e[0]:e.join("")}function fn(r,e){for(var n=e[1].length-Math.abs(r.arrayBlockIndices[0])|0,a=new Array(r.arrayArgs.length),t=new Array(r.arrayArgs.length),s=0;s<r.arrayArgs.length;++s)t[s]=e[2*s],a[s]=e[2*s+1];for(var i=[],h=[],o=[],c=[],l=[],s=0;s<r.arrayArgs.length;++s){r.arrayBlockIndices[s]<0?(o.push(0),c.push(n),i.push(n),h.push(n+r.arrayBlockIndices[s])):(o.push(r.arrayBlockIndices[s]),c.push(r.arrayBlockIndices[s]+n),i.push(0),h.push(r.arrayBlockIndices[s]));for(var f=[],p=0;p<a[s].length;p++)o[s]<=a[s][p]&&a[s][p]<c[s]&&f.push(a[s][p]-o[s]);l.push(f)}for(var v=["SS"],m=["'use strict'"],d=[],p=0;p<n;++p)d.push(["s",p,"=SS[",p,"]"].join(""));for(var s=0;s<r.arrayArgs.length;++s){v.push("a"+s),v.push("t"+s),v.push("p"+s);for(var p=0;p<n;++p)d.push(["t",s,"p",p,"=t",s,"[",o[s]+p,"]"].join(""));for(var p=0;p<Math.abs(r.arrayBlockIndices[s]);++p)d.push(["t",s,"b",p,"=t",s,"[",i[s]+p,"]"].join(""))}for(var s=0;s<r.scalarArgs.length;++s)v.push("Y"+s);if(r.shapeArgs.length>0&&d.push("shape=SS.slice(0)"),r.indexArgs.length>0){for(var y=new Array(n),s=0;s<n;++s)y[s]="0";d.push(["index=[",y.join(","),"]"].join(""))}for(var s=0;s<r.offsetArgs.length;++s){for(var u=r.offsetArgs[s],x=[],p=0;p<u.offset.length;++p)u.offset[p]!==0&&(u.offset[p]===1?x.push(["t",u.array,"p",p].join("")):x.push([u.offset[p],"*t",u.array,"p",p].join("")));x.length===0?d.push("q"+s+"=0"):d.push(["q",s,"=",x.join("+")].join(""))}var M=hn([].concat(r.pre.thisVars).concat(r.body.thisVars).concat(r.post.thisVars));d=d.concat(M),d.length>0&&m.push("var "+d.join(","));for(var s=0;s<r.arrayArgs.length;++s)m.push("p"+s+"|=0");r.pre.body.length>3&&m.push(xr(r.pre,r,t));var b=xr(r.body,r,t),_=ln(l);_<n?m.push(cn(_,l[0],r,b)):m.push(jr(l[0],r,b)),r.post.body.length>3&&m.push(xr(r.post,r,t)),r.debug&&console.log("-----Generated cwise routine for ",e,`: `+m.join(` `)+` ----------`);var g=[r.funcName||"unnamed","_cwise_loop_",a[0].join("s"),"m",_,pn(t)].join(""),N=new Function(["function ",g,"(",v.join(","),"){",m.join(` `),"} return ",g].join(""));return N()}Rr.exports=fn});var Yr=K((wt,Ur)=>{"use strict";var yn=Br();function dn(r){var e=["'use strict'","var CACHED={}"],n=[],a=r.funcName+"_cwise_thunk";e.push(["return function ",a,"(",r.shimArgs.join(","),"){"].join(""));for(var t=[],s=[],i=[["array",r.arrayArgs[0],".shape.slice(",Math.max(0,r.arrayBlockIndices[0]),r.arrayBlockIndices[0]<0?","+r.arrayBlockIndices[0]+")":")"].join("")],h=[],o=[],c=0;c<r.arrayArgs.length;++c){var l=r.arrayArgs[c];n.push(["t",l,"=array",l,".dtype,","r",l,"=array",l,".order"].join("")),t.push("t"+l),t.push("r"+l),s.push("t"+l),s.push("r"+l+".join()"),i.push("array"+l+".data"),i.push("array"+l+".stride"),i.push("array"+l+".offset|0"),c>0&&(h.push("array"+r.arrayArgs[0]+".shape.length===array"+l+".shape.length+"+(Math.abs(r.arrayBlockIndices[0])-Math.abs(r.arrayBlockIndices[c]))),o.push("array"+r.arrayArgs[0]+".shape[shapeIndex+"+Math.max(0,r.arrayBlockIndices[0])+"]===array"+l+".shape[shapeIndex+"+Math.max(0,r.arrayBlockIndices[c])+"]"))}r.arrayArgs.length>1&&(e.push("if (!("+h.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same dimensionality!')"),e.push("for(var shapeIndex=array"+r.arrayArgs[0]+".shape.length-"+Math.abs(r.arrayBlockIndices[0])+"; shapeIndex-->0;) {"),e.push("if (!("+o.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same shape!')"),e.push("}"));for(var c=0;c<r.scalarArgs.length;++c)i.push("scalar"+r.scalarArgs[c]);n.push(["type=[",s.join(","),"].join()"].join("")),n.push("proc=CACHED[type]"),e.push("var "+n.join(",")),e.push(["if(!proc){","CACHED[type]=proc=compile([",t.join(","),"])}","return proc(",i.join(","),")}"].join("")),r.debug&&console.log(`-----Generated thunk: `+e.join(` `)+` ----------`);var f=new Function("compile",e.join(` `));return f(yn.bind(void 0,r))}Ur.exports=dn});var Qr=K((kt,Gr)=>{"use strict";var vn=Yr();function mn(){this.argTypes=[],this.shimArgs=[],this.arrayArgs=[],this.arrayBlockIndices=[],this.scalarArgs=[],this.offsetArgs=[],this.offsetArgIndex=[],this.indexArgs=[],this.shapeArgs=[],this.funcName="",this.pre=null,this.body=null,this.post=null,this.debug=!1}function un(r){var e=new mn;e.pre=r.pre,e.body=r.body,e.post=r.post;var n=r.args.slice(0);e.argTypes=n;for(var a=0;a<n.length;++a){var t=n[a];if(t==="array"||typeof t=="object"&&t.blockIndices){if(e.argTypes[a]="array",e.arrayArgs.push(a),e.arrayBlockIndices.push(t.blockIndices?t.blockIndices:0),e.shimArgs.push("array"+a),a<e.pre.args.length&&e.pre.args[a].count>0)throw new Error("cwise: pre() block may not reference array args");if(a<e.post.args.length&&e.post.args[a].count>0)throw new Error("cwise: post() block may not reference array args")}else if(t==="scalar")e.scalarArgs.push(a),e.shimArgs.push("scalar"+a);else if(t==="index"){if(e.indexArgs.push(a),a<e.pre.args.length&&e.pre.args[a].count>0)throw new Error("cwise: pre() block may not reference array index");if(a<e.body.args.length&&e.body.args[a].lvalue)throw new Error("cwise: body() block may not write to array index");if(a<e.post.args.length&&e.post.args[a].count>0)throw new Error("cwise: post() block may not reference array index")}else if(t==="shape"){if(e.shapeArgs.push(a),a<e.pre.args.length&&e.pre.args[a].lvalue)throw new Error("cwise: pre() block may not write to array shape");if(a<e.body.args.length&&e.body.args[a].lvalue)throw new Error("cwise: body() block may not write to array shape");if(a<e.post.args.length&&e.post.args[a].lvalue)throw new Error("cwise: post() block may not write to array shape")}else if(typeof t=="object"&&t.offset)e.argTypes[a]="offset",e.offsetArgs.push({array:t.array,offset:t.offset}),e.offsetArgIndex.push(a);else throw new Error("cwise: Unknown argument type "+n[a])}if(e.arrayArgs.length<=0)throw new Error("cwise: No array arguments specified");if(e.pre.args.length>n.length)throw new Error("cwise: Too many arguments in pre() block");if(e.body.args.length>n.length)throw new Error("cwise: Too many arguments in body() block");if(e.post.args.length>n.length)throw new Error("cwise: Too many arguments in post() block");return e.debug=!!r.printCode||!!r.debug,e.funcName=r.funcName||"cwise",e.blockSize=r.blockSize||64,vn(e)}Gr.exports=un});var sr=K(I=>{"use strict";var B=Qr(),dr={body:"",args:[],thisVars:[],localVars:[]};function gr(r){if(!r)return dr;for(var e=0;e<r.args.length;++e){var n=r.args[e];e===0?r.args[e]={name:n,lvalue:!0,rvalue:!!r.rvalue,count:r.count||1}:r.args[e]={name:n,lvalue:!1,rvalue:!0,count:1}}return r.thisVars||(r.thisVars=[]),r.localVars||(r.localVars=[]),r}function xn(r){return B({args:r.args,pre:gr(r.pre),body:gr(r.body),post:gr(r.proc),funcName:r.funcName})}function O(r){for(var e=[],n=0;n<r.args.length;++n)e.push("a"+n);var a=new Function("P",["return function ",r.funcName,"_ndarrayops(",e.join(","),") {P(",e.join(","),");return a0}"].join(""));return a(xn(r))}var $r={add:"+",sub:"-",mul:"*",div:"/",mod:"%",band:"&",bor:"|",bxor:"^",lshift:"<<",rshift:">>",rrshift:">>>"};(function(){for(var r in $r){var e=$r[r];I[r]=O({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:r}),I[r+"eq"]=O({args:["array","array"],body:{args:["a","b"],body:"a"+e+"=b"},rvalue:!0,funcName:r+"eq"}),I[r+"s"]=O({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:r+"s"}),I[r+"seq"]=O({args:["array","scalar"],body:{args:["a","s"],body:"a"+e+"=s"},rvalue:!0,funcName:r+"seq"})}})();var Hr={not:"!",bnot:"~",neg:"-",recip:"1.0/"};(function(){for(var r in Hr){var e=Hr[r];I[r]=O({args:["array","array"],body:{args:["a","b"],body:"a="+e+"b"},funcName:r}),I[r+"eq"]=O({args:["array"],body:{args:["a"],body:"a="+e+"a"},rvalue:!0,count:2,funcName:r+"eq"})}})();var Wr={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};(function(){for(var r in Wr){var e=Wr[r];I[r]=O({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:r}),I[r+"s"]=O({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:r+"s"}),I[r+"eq"]=O({args:["array","array"],body:{args:["a","b"],body:"a=a"+e+"b"},rvalue:!0,count:2,funcName:r+"eq"}),I[r+"seq"]=O({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+e+"s"},rvalue:!0,count:2,funcName:r+"seq"})}})();var Zr=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];(function(){for(var r=0;r<Zr.length;++r){var e=Zr[r];I[e]=O({args:["array","array"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b)",thisVars:["this_f"]},funcName:e}),I[e+"eq"]=O({args:["array"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a"],body:"a=this_f(a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:e+"eq"})}})();var Xr=["max","min","atan2","pow"];(function(){for(var r=0;r<Xr.length;++r){var e=Xr[r];I[e]=O({args:["array","array","array"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(b,c)",thisVars:["this_f"]},funcName:e}),I[e+"s"]=O({args:["array","array","scalar"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(b,c)",thisVars:["this_f"]},funcName:e+"s"}),I[e+"eq"]=O({args:["array","array"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(a,b)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:e+"eq"}),I[e+"seq"]=O({args:["array","scalar"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(a,b)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:e+"seq"})}})();var Kr=["atan2","pow"];(function(){for(var r=0;r<Kr.length;++r){var e=Kr[r];I[e+"op"]=O({args:["array","array","array"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(c,b)",thisVars:["this_f"]},funcName:e+"op"}),I[e+"ops"]=O({args:["array","array","scalar"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a","b","c"],body:"a=this_f(c,b)",thisVars:["this_f"]},funcName:e+"ops"}),I[e+"opeq"]=O({args:["array","array"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b,a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:e+"opeq"}),I[e+"opseq"]=O({args:["array","scalar"],pre:{args:[],body:"this_f=Math."+e,thisVars:["this_f"]},body:{args:["a","b"],body:"a=this_f(b,a)",thisVars:["this_f"]},rvalue:!0,count:2,funcName:e+"opseq"})}})();I.any=B({args:["array"],pre:dr,body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"if(a){return true}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return false"},funcName:"any"});I.all=B({args:["array"],pre:dr,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1}],body:"if(!x){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"all"});I.sum=B({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"this_s+=a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"sum"});I.prod=B({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=1"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:1}],body:"this_s*=a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"prod"});I.norm2squared=B({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:2}],body:"this_s+=a*a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm2squared"});I.norm2=B({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:2}],body:"this_s+=a*a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return Math.sqrt(this_s)"},funcName:"norm2"});I.norminf=B({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:4}],body:"if(-a>this_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"});I.norm1=B({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"});I.sup=B({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}});I.inf=B({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_<this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}});I.argmin=B({args:["index","array","shape"],pre:{body:"{this_v=Infinity;this_i=_inline_0_arg2_.slice(0)}",args:[{name:"_inline_0_arg0_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg1_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg2_",lvalue:!1,rvalue:!0,count:1}],thisVars:["this_i","this_v"],localVars:[]},body:{body:"{if(_inline_1_arg1_<this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}});I.argmax=B({args:["index","array","shape"],pre:{body:"{this_v=-Infinity;this_i=_inline_0_arg2_.slice(0)}",args:[{name:"_inline_0_arg0_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg1_",lvalue:!1,rvalue:!1,count:0},{name:"_inline_0_arg2_",lvalue:!1,rvalue:!0,count:1}],thisVars:["this_i","this_v"],localVars:[]},body:{body:"{if(_inline_1_arg1_>this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}});I.random=O({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"});I.assign=O({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"});I.assigns=O({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"});I.equals=B({args:["array","array"],pre:dr,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})});var G=Q(tr(),1),H=Q(sr(),1);var j=Q(tr(),1),A=Q(sr(),1),J=class{constructor(e,n,a){this._dataNormalized=e,this._minD=n,this._maxD=a}static createFromUnnormalized(e){let n=A.sup(e),a=A.inf(e),t=(0,j.default)(new Float32Array(e.size),e.shape),s=n-a;return s<1e-4?A.assigns(t,0):(A.subs(t,e,a),A.divs(t,t,s)),new J(t,a,n)}get data(){return this._dataNormalized}get minD(){return this._minD}get maxD(){return this._maxD}denormalize(){let e=(0,j.default)(new Float32Array(this._dataNormalized.size),this._dataNormalized.shape);return A.muls(e,this._dataNormalized,this._maxD-this._minD),A.adds(e,e,this._minD),e}},D=class{constructor(e,n){this._quantized=e,this._method=n}get quantized(){return this._quantized}static maxIntBits(e){return 2**e-1}static fromNormalized(e,n){let a=e.data,t;if(n==="norm8x"){let s=D.maxIntBits(8),i=(0,j.default)(new Float32Array(a.size),a.shape);A.muls(i,a,s),A.roundeq(i),t=(0,j.default)(new Uint8Array(i.data),a.shape)}else if(n==="norm565"){let s=(0,j.default)(new Float32Array(a.size),a.shape);A.assign(s,a),A.mulseq(s.pick(null,0),D.maxIntBits(5)),A.mulseq(s.pick(null,1),D.maxIntBits(6)),A.mulseq(s.pick(null,2),D.maxIntBits(5)),A.roundeq(s);let i=(0,j.default)(new Uint16Array(s.data),a.shape),h=(0,j.default)(new Uint16Array(a.shape[0]),[a.shape[0]]),o=(0,j.default)(new Uint16Array(a.shape[0]),[a.shape[0]]);A.lshifts(h,i.pick(null,0),11),A.lshifts(o,i.pick(null,1),5),A.boreq(h,o),A.boreq(h,i.pick(null,2)),t=h}else{let s=(0,j.default)(new Float32Array(a.size),a.shape);A.assign(s,a),A.mulseq(s.pick(null,0),D.maxIntBits(11)),A.mulseq(s.pick(null,1),D.maxIntBits(10)),A.mulseq(s.pick(null,2),D.maxIntBits(11)),A.roundeq(s);let i=(0,j.default)(new Uint32Array(s.data),a.shape),h=(0,j.default)(new Uint32Array(a.shape[0]),[a.shape[0]]),o=(0,j.default)(new Uint32Array(a.shape[0]),[a.shape[0]]);A.lshifts(h,i.pick(null,0),21),A.lshifts(o,i.pick(null,1),11),A.boreq(h,o),A.boreq(h,i.pick(null,2)),t=h}return new D(t,n)}dequantize(e,n){let a=this._method,t,s=this._quantized;if(a==="norm8x"){let i=D.maxIntBits(8);t=(0,j.default)(new Float32Array(s.size),s.shape),A.muls(t,s,1/i)}else if(a==="norm565"){let i=(0,j.default)(new Uint8Array(s.shape[0]),[s.shape[0]]),h=(0,j.default)(new Uint8Array(s.shape[0]),[s.shape[0]]),o=(0,j.default)(new Uint8Array(s.shape[0]),[s.shape[0]]);A.rrshifts(i,s,11),A.rrshifts(h,s,5),A.bandseq(h,D.maxIntBits(6)),A.bands(o,s,D.maxIntBits(5)),t=(0,j.default)(new Float32Array(s.shape[0]*3),[s.shape[0],3]),A.muls(t.pick(null,0),i,1/D.maxIntBits(5)),A.muls(t.pick(null,1),h,1/D.maxIntBits(6)),A.muls(t.pick(null,2),o,1/D.maxIntBits(5))}else{let i=(0,j.default)(new Uint16Array(s.shape[0]),[s.shape[0]]),h=(0,j.default)(new Uint16Array(s.shape[0]),[s.shape[0]]),o=(0,j.default)(new Uint16Array(s.shape[0]),[s.shape[0]]);A.rrshifts(i,s,21),A.rrshifts(h,s,11),A.bandseq(h,D.maxIntBits(10)),A.bands(o,s,D.maxIntBits(11)),t=(0,j.default)(new Float32Array(s.shape[0]*3),[s.shape[0],3]),A.muls(t.pick(null,0),i,1/D.maxIntBits(11)),A.muls(t.pick(null,1),h,1/D.maxIntBits(10)),A.muls(t.pick(null,2),o,1/D.maxIntBits(11))}return new J(t,e,n)}};var E=class{constructor(e,n,a,t,s,i=!1){this._quantized=e,this._minMaxMatrix=n,this._chunkSize=a,this._quantizationMethod=t,this._variableChunkSize=s,this._isDynamicChunks=i}get length(){return this._quantized.shape[0]}get nchunks(){return this._minMaxMatrix.shape[0]}get quantized(){return this._quantized}get method(){return this._quantizationMethod}get minmaxMatrix(){return this._minMaxMatrix}_createPrunedMinMax(e){let n=e.length,a=this.minmaxMatrix.shape[0]-n,t=(0,G.default)(new Float32Array(a*2),[a,2]),s=0,i=a,h=0,o=this.minmaxMatrix.shape[0];for(let c=0;c<e.length;c++)o=e[c],i=o-h+s,i>s&&H.assign(t.hi(i,2).lo(s,0),this.minmaxMatrix.hi(o,2).lo(h,0)),s=i,h=o+1;return s<a&&H.assign(t.lo(s,0),this.minmaxMatrix.lo(h,0)),t}_createPrunedQuantized(e){let n=e.length,a=this.quantized.shape[0]-n,t=this._quantizationMethod,s,i;if(t==="norm8x"){i=this._quantized.shape[1];let f=i?a*i:a;s=(0,G.default)(new Uint8Array(f),i?[a,i]:[a,1])}else t==="norm565"?s=(0,G.default)(new Uint16Array(a),[a]):s=(0,G.default)(new Uint32Array(a),[a]);let h=0,o=a,c=0,l=s.shape[0];for(let f=0;f<e.length;f++)l=e[f],o=l-c+h,o>h&&(i?H.assign(s.hi(o,i).lo(h,0),this._quantized.hi(l,i).lo(c,0)):H.assign(s.hi(o).lo(h),this._quantized.hi(l).lo(c))),h=o,c=l+1;return h<a&&(i?H.assign(s.lo(h,0),this._quantized.lo(c,0)):H.assign(s.lo(h),this._quantized.lo(c))),s}pruneFeature(e,n,a){let t=this._createPrunedQuantized(e),s=this._createPrunedMinMax(n);return new E(t,s,this._chunkSize,this._quantizationMethod,a,!0)}static getRequiredNChunks(e,n){return Math.floor(e/n)}static fromArray(e,n,a){let t=e.shape[0],s=Math.floor(t/a),i=(0,G.default)(new Float32Array(s*2),[s,2],[2,1]),h;n==="norm8x"?h=(0,G.default)(new Uint8Array(e.size),e.shape):n==="norm565"?h=(0,G.default)(new Uint16Array(e.shape[0]),[e.shape[0]]):h=(0,G.default)(new Uint32Array(e.shape[0]),[e.shape[0]]);for(let o=0;o<s;o++){let c=o*a,l=o+1<s?(o+1)*a:t,f;e.shape.length>1?f=J.createFromUnnormalized(e.hi(l,e.shape[1]).lo(c,0)):f=J.createFromUnnormalized(e.hi(l).lo(c)),i.set(o,0,f.minD),i.set(o,1,f.maxD),h.shape.length>1?H.assign(h.hi(l,h.shape[1]).lo(c,0),D.fromNormalized(f,n).quantized):H.assign(h.hi(l).lo(c),D.fromNormalized(f,n).quantized)}return new E(h,i,a,n)}denormDequant(){let e=this._minMaxMatrix.shape[0],n=this._quantized,a=n.shape[0],t=this._quantizationMethod,s=this._chunkSize,i;if(this._isDynamicChunks){if(!this._variableChunkSize)throw new Error("variable chunk must exists if chunkSize isDynamic");i=this._variableChunkSize}let h;t==="norm8x"?h=(0,G.default)(new Float32Array(n.size),n.shape):h=(0,G.default)(new Float32Array(a*3),[a,3]);let o=0,c=s;for(let l=0;l<e;l++){let[f,p]=[this._minMaxMatrix.get(l,0),this._minMaxMatrix.get(l,1)];this._isDynamicChunks&&(c=i[l]);let v=l+1<e?o+c:a,m;n.shape.length>1?m=new D(n.hi(v,n.shape[1]).lo(o,0),t):m=new D(n.hi(v).lo(o),t),H.assign(h.hi(v,h.shape[1]).lo(o,0),m.dequantize(f,p).denormalize()),o=v}return h}static async fetchArrayBuffer(e){return await(await fetch(e,{mode:"cors"})).arrayBuffer()}};var Z=Q(tr(),1),k=Q(sr(),1);var Jr="http://127.0.0.1:8000";var er=Q(tr(),1),C=Q(sr(),1);var re=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9];function ee(r){return r<1e5?r<100?r<10?0:1:r<1e4?r<1e3?2:3:4:r<1e7?r<1e6?5:6:r<1e9?r<1e8?7:8:9}function ne(r,e){if(r===e)return 0;if(~~r===r&&~~e===e){if(r===0||e===0)return r<e?-1:1;if(r<0||e<0){if(e>=0)return-1;if(r>=0)return 1;r=-r,e=-e}let t=ee(r),s=ee(e),i=0;return t<s?(r*=re[s-t-1],e/=10,i=-1):t>s&&(e*=re[t-s-1],r/=10,i=1),r===e?i:r<e?-1:1}let n=String(r),a=String(e);return n===a?0:n<a?-1:1}function gn(r){let e=0;for(;r>=32;)e|=r&1,r>>=1;return r+e}function ae(r,e,n,a){let t=e+1;if(t===n)return 1;if(a(r[t++],r[e])<0){for(;t<n&&a(r[t],r[t-1])<0;)t++;Mn(r,e,t)}else for(;t<n&&a(r[t],r[t-1])>=0;)t++;return t-e}function Mn(r,e,n){for(n--;e<n;){let a=r[e];r[e++]=r[n],r[n--]=a}}function te(r,e,n,a,t){for(a===e&&a++;a<n;a++){let s=r[a],i=e,h=a;for(;i<h;){let c=i+h>>>1;t(s,r[c])<0?h=c:i=c+1}let o=a-i;switch(o){case 3:r[i+3]=r[i+2];case 2:r[i+2]=r[i+1];case 1:r[i+1]=r[i];break;default:for(;o>0;)r[i+o]=r[i+o-1],o--}r[i]=s}}function Mr(r,e,n,a,t,s){let i=0,h=0,o=1;if(s(r,e[n+t])>0){for(h=a-t;o<h&&s(r,e[n+t+o])>0;)i=o,o=(o<<1)+1,o<=0&&(o=h);o>h&&(o=h),i+=t,o+=t}else{for(h=t+1;o<h&&s(r,e[n+t-o])<=0;)i=o,o=(o<<1)+1,o<=0&&(o=h);o>h&&(o=h);let c=i;i=t-o,o=t-c}for(i++;i<o;){let c=i+(o-i>>>1);s(r,e[n+c])>0?i=c+1:o=c}return o}function _r(r,e,n,a,t,s){let i=0,h=0,o=1;if(s(r,e[n+t])<0){for(h=t+1;o<h&&s(r,e[n+t-o])<0;)i=o,o=(o<<1)+1,o<=0&&(o=h);o>h&&(o=h);let c=i;i=t-o,o=t-c}else{for(h=a-t;o<h&&s(r,e[n+t+o])>=0;)i=o,o=(o<<1)+1,o<=0&&(o=h);o>h&&(o=h),i+=t,o+=t}for(i++;i<o;){let c=i+(o-i>>>1);s(r,e[n+c])<0?o=c:i=c+1}return o}var br=class{constructor(e,n){$(this,"array",null);$(this,"compare",null);$(this,"minGallop",7);$(this,"length",0);$(this,"tmpStorageLength",256);$(this,"stackLength",0);$(this,"runStart",null);$(this,"runLength",null);$(this,"stackSize",0);this.array=e,this.compare=n,this.length=e.length,this.length<2*256&&(this.tmpStorageLength=this.length>>>1),this.tmp=new Array(this.tmpStorageLength),this.stackLength=this.length<120?5:this.length<1542?10:this.length<119151?19:40,this.runStart=new Array(this.stackLength),this.runLength=new Array(this.stackLength)}pushRun(e,n){this.runStart[this.stackSize]=e,this.runLength[this.stackSize]=n,this.stackSize+=1}mergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;if(e>=1&&this.runLength[e-1]<=this.runLength[e]+this.runLength[e+1]||e>=2&&this.runLength[e-2]<=this.runLength[e]+this.runLength[e-1])this.runLength[e-1]<this.runLength[e+1]&&e--;else if(this.runLength[e]>this.runLength[e+1])break;this.mergeAt(e)}}forceMergeRuns(){for(;this.stackSize>1;){let e=this.stackSize-2;e>0&&this.runLength[e-1]<this.runLength[e+1]&&e--,this.mergeAt(e)}}mergeAt(e){let n=this.compare,a=this.array,t=this.runStart[e],s=this.runLength[e],i=this.runStart[e+1],h=this.runLength[e+1];this.runLength[e]=s+h,e===this.stackSize-3&&(this.runStart[e+1]=this.runStart[e+2],this.runLength[e+1]=this.runLength[e+2]),this.stackSize--;let o=_r(a[i],a,t,s,0,n);t+=o,s-=o,s!==0&&(h=Mr(a[t+s-1],a,i,h,h-1,n),h!==0&&(s<=h?this.mergeLow(t,s,i,h):this.mergeHigh(t,s,i,h)))}mergeLow(e,n,a,t){let s=this.compare,i=this.array,h=this.tmp,o=0;for(o=0;o<n;o++)h[o]=i[e+o];let c=0,l=a,f=e;if(i[f++]=i[l++],--t===0){for(o=0;o<n;o++)i[f+o]=h[c+o];return}if(n===1){for(o=0;o<t;o++)i[f+o]=i[l+o];i[f+t]=h[c];return}let p=this.minGallop;for(;;){let v=0,m=0,d=!1;do if(s(i[l],h[c])<0){if(i[f++]=i[l++],m++,v=0,--t===0){d=!0;break}}else if(i[f++]=h[c++],v++,m=0,--n===1){d=!0;break}while((v|m)<p);if(d)break;do{if(v=_r(i[l],h,c,n,0,s),v!==0){for(o=0;o<v;o++)i[f+o]=h[c+o];if(f+=v,c+=v,n-=v,n<=1){d=!0;break}}if(i[f++]=i[l++],--t===0){d=!0;break}if(m=Mr(h[c],i,l,t,0,s),m!==0){for(o=0;o<m;o++)i[f+o]=i[l+o];if(f+=m,l+=m,t-=m,t===0){d=!0;break}}if(i[f++]=h[c++],--n===1){d=!0;break}p--}while(v>=7||m>=7);if(d)break;p<0&&(p=0),p+=2}if(this.minGallop=p,p<1&&(this.minGallop=1),n===1){for(o=0;o<t;o++)i[f+o]=i[l+o];i[f+t]=h[c]}else{if(n===0)throw new Error("mergeLow preconditions were not respected");for(o=0;o<n;o++)i[f+o]=h[c+o]}}mergeHigh(e,n,a,t){let s=this.compare,i=this.array,h=this.tmp,o=0;for(o=0;o<t;o++)h[o]=i[a+o];let c=e+n-1,l=t-1,f=a+t-1,p=0,v=0;if(i[f--]=i[c--],--n===0){for(p=f-(t-1),o=0;o<t;o++)i[p+o]=h[o];return}if(t===1){for(f-=n,c-=n,v=f+1,p=c+1,o=n-1;o>=0;o--)i[v+o]=i[p+o];i[f]=h[l];return}let m=this.minGallop;for(;;){let d=0,y=0,u=!1;do if(s(h[l],i[c])<0){if(i[f--]=i[c--],d++,y=0,--n===0){u=!0;break}}else if(i[f--]=h[l--],y++,d=0,--t===1){u=!0;break}while((d|y)<m);if(u)break;do{if(d=n-_r(h[l],i,e,n,n-1,s),d!==0){for(f-=d,c-=d,n-=d,v=f+1,p=c+1,o=d-1;o>=0;o--)i[v+o]=i[p+o];if(n===0){u=!0;break}}if(i[f--]=h[l--],--t===1){u=!0;break}if(y=t-Mr(i[c],h,0,t,t-1,s),y!==0){for(f-=y,l-=y,t-=y,v=f+1,p=l+1,o=0;o<y;o++)i[v+o]=h[p+o];if(t<=1){u=!0;break}}if(i[f--]=i[c--],--n===0){u=!0;break}m--}while(d>=7||y>=7);if(u)break;m<0&&(m=0),m+=2}if(this.minGallop=m,m<1&&(this.minGallop=1),t===1){for(f-=n,c-=n,v=f+1,p=c+1,o=n-1;o>=0;o--)i[v+o]=i[p+o];i[f]=h[l]}else{if(t===0)throw new Error("mergeHigh preconditions were not respected");for(p=f-(t-1),o=0;o<t;o++)i[p+o]=h[o]}}};function se(r,e,n,a){if(!Array.isArray(r))throw new TypeError("Can only sort arrays");e?typeof e!="function"&&(a=n,n=e,e=ne):e=ne,n||(n=0),a||(a=r.length);let t=a-n;if(t<2)return;let s=0;if(t<32){s=ae(r,n,a,e),te(r,n,a,n+s,e);return}let i=new br(r,e),h=gn(t);do{if(s=ae(r,n,a,e),s<h){let o=t;o>h&&(o=h),te(r,n,n+o,n+s,e),s=o}i.pushRun(n,s),i.mergeRuns(),t-=s,n+=s}while(t!==0);i.forceMergeRuns()}function Ar(r){let e=(0,er.default)(new Int32Array(r.shape[0]),[r.shape[0]]),n=(0,er.default)(new Int32Array(r.shape[0]),[r.shape[0]]);return C.bands(e,r,1023),C.lshifts(n,e,16),C.bxoreq(e,n),C.bandseq(e,4278190335),C.lshifts(n,e,8),C.bxoreq(e,n),C.bandseq(e,50393103),C.lshifts(n,e,4),C.bxoreq(e,n),C.bandseq(e,51130563),C.lshifts(n,e,2),C.bxoreq(e,n),C.bandseq(e,153391689),e}function _n(r){let e=Ar(r.pick(null,0)),n=Ar(r.pick(null,1));C.lshiftseq(n,1);let a=Ar(r.pick(null,2));return C.lshiftseq(a,2),C.boreq(e,n),C.boreq(e,a),e}function rr(r,e){if(r.shape[0]!==e.shape[0])throw new Error("wrong length");let n=(0,er.default)(new Float32Array(r.size),r.shape,r.stride,r.offset);for(let a=0;a<e.shape[0];a++){let t=e.get(a);if(r.shape.length>1)for(let s=0;s<r.shape[1];s++)n.set(a,s,r.get(t,s));else n.set(a,r.get(t))}return n}function wr(r){let e=C.sup(r),n=C.inf(r),a=1e3/Math.min(1e3,e-n),t=(0,er.default)(new Float32Array(r.data),r.shape);C.mulseq(t,a);let s=(0,er.default)(new Int32Array(t.data),r.shape),i=_n(s),o=Array.from(i.data).map((f,p)=>[f,p]);se(o,(f,p)=>f[0]-p[0]);let c=o.map(([f,p])=>p);return(0,er.default)(Uint32Array.from(c))}var U=class{constructor(e,n,a,t,s,i,h,o,c,l){this.propertyDescs=e,this.format=n,this.nsplats=a,this.xyz=t,this.colors=s,this.harmonics=i,this.opacity=h,this.scaling=o,this.rotation=c,this.maxSHDegree=l}getPlyBinary(){let e=U._generateHeaderString(this.propertyDescs,this.format,this.nsplats),n=new TextEncoder().encode(e),a=Object.keys(this.propertyDescs).length,t=(0,Z.default)(new Float32Array(this.nsplats*a),[this.nsplats,a]);if(k.assign(t.pick(null,this.propertyDescs.x.index),this.xyz.pick(null,0)),k.assign(t.pick(null,this.propertyDescs.y.index),this.xyz.pick(null,1)),k.assign(t.pick(null,this.propertyDescs.z.index),this.xyz.pick(null,2)),k.assign(t.pick(null,this.propertyDescs.f_dc_0.index),this.colors.pick(null,0)),k.assign(t.pick(null,this.propertyDescs.f_dc_1.index),this.colors.pick(null,1)),k.assign(t.pick(null,this.propertyDescs.f_dc_2.index),this.colors.pick(null,2)),k.assign(t.pick(null,this.propertyDescs.opacity.index),this.opacity.pick(null,0)),k.assign(t.pick(null,this.propertyDescs.scale_0.index),this.scaling.pick(null,0)),k.assign(t.pick(null,this.propertyDescs.scale_1.index),this.scaling.pick(null,1)),k.assign(t.pick(null,this.propertyDescs.scale_2.index),this.scaling.pick(null,2)),k.assign(t.pick(null,this.propertyDescs.rot_0.index),this.rotation.pick(null,0)),k.assign(t.pick(null,this.propertyDescs.rot_1.index),this.rotation.pick(null,1)),k.assign(t.pick(null,this.propertyDescs.rot_2.index),this.rotation.pick(null,2)),k.assign(t.pick(null,this.propertyDescs.rot_3.index),this.rotation.pick(null,3)),this.harmonics&&this.harmonics.length>0)for(let h=0;h<this.harmonics.length;h++){let o=h*3;k.assign(t.pick(null,this.propertyDescs[`f_rest_${o}`].index),this.harmonics[h].pick(null,0)),k.assign(t.pick(null,this.propertyDescs[`f_rest_${o+1}`].index),this.harmonics[h].pick(null,1)),k.assign(t.pick(null,this.propertyDescs[`f_rest_${o+2}`].index),this.harmonics[h].pick(null,2))}let s=new Uint8Array(t.data.buffer),i=new Uint8Array(s.length+n.length);return i.set(n),i.set(s,n.length),i.buffer}save(e,n){let a=this.getPlyBinary(),t=new Blob([a],{type:"application/octet-stream"}),s=new File([t],e),i=new FormData;i.append("file",s),i.append("filename",e),i.append("basedir",n),fetch(`${Jr}/push_file`,{method:"POST",body:i})}static async loadFile(e){return await(await fetch(e)).arrayBuffer()}mortonPositionSplatsSort(){let e=wr(this.xyz),n=rr(this.xyz,e),a=rr(this.colors,e),t=rr(this.opacity,e),s=rr(this.scaling,e),i=rr(this.rotation,e),h=[];for(let o=0;o<this.harmonics.length;o++)h.push(rr(this.harmonics[o],e));return new U(this.propertyDescs,this.format,this.nsplats,n,a,h,t,s,i,this.maxSHDegree)}static _generateHeaderString(e,n,a){let t=`ply format ${n.format} ${n.version} element vertex ${a}`,s=Object.keys(e).length,i=Array(s);for(let h in e){let o=e[h];i[o.index]={name:h,dtype:o.dtype}}for(let h=0;h<i.length;h++)t=`${t} property ${i[h].dtype} ${i[h].name}`;return`${t} end_header `}static fromArrayBuffer(e,n=3){let{splatCount:a,vertexData:t,propertiesDesc:s,format:i}=U.decodeHeader(e),h=t.buffer.slice(t.byteOffset),o=Object.keys(s).length,c=(0,Z.default)(new Float32Array(h),[a,o]),l=0,f={},p={double:8,int:4,uint:4,float:4,short:2,ushort:2,uchar:1,char:1};for(let _ in s)if(s.hasOwnProperty(_)){let g=s[_].dtype;f[_]=l,l+=p[g]}let v=(0,Z.default)(new Float32Array(a*3),[a,3]);k.assign(v.pick(null,0),c.pick(null,f.x/4)),k.assign(v.pick(null,1),c.pick(null,f.y/4)),k.assign(v.pick(null,2),c.pick(null,f.z/4));let m=(0,Z.default)(new Float32Array(a*3),[a,3]);k.assign(m.pick(null,0),c.pick(null,f.scale_0/4)),k.assign(m.pick(null,1),c.pick(null,f.scale_1/4)),k.assign(m.pick(null,2),c.pick(null,f.scale_2/4));let d=(0,Z.default)(new Float32Array(a*3),[a,3]);k.assign(d.pick(null,0),c.pick(null,f.f_dc_0/4)),k.assign(d.pick(null,1),c.pick(null,f.f_dc_1/4)),k.assign(d.pick(null,2),c.pick(null,f.f_dc_2/4));let y=(0,Z.default)(new Float32Array(a*4),[a,4]);k.assign(y.pick(null,0),c.pick(null,f.rot_1/4)),k.assign(y.pick(null,1),c.pick(null,f.rot_2/4)),k.assign(y.pick(null,2),c.pick(null,f.rot_3/4)),k.assign(y.pick(null,3),c.pick(null,f.rot_0/4));for(let _=0;_<a;_++){let g=y.pick(_,null),N=Math.sqrt(g.get(0)**2+g.get(1)**2+g.get(2)**2+g.get(3)**2);k.divseq(g,N)}let u=(0,Z.default)(new Float32Array(a*1),[a,1]);k.assign(u.pick(null,0),c.pick(null,f.opacity/4)),k.negeq(u),k.expeq(u),k.addseq(u,1),k.recipeq(u),k.mulseq(u,255);let M=(Math.min(Math.max(n,0),3)+1)**2-1,b=[];for(let _=0;_<M;_++){let g=(0,Z.default)(new Float32Array(a*3),[a,3]),N=_*3;k.assign(g.pick(null,0),c.pick(null,f[`f_rest_${N}`]/4)),k.assign(g.pick(null,1),c.pick(null,f[`f_rest_${N+1}`]/4)),k.assign(g.pick(null,2),c.pick(null,f[`f_rest_${N+2}`]/4)),b.push(g)}return new U(s,i,a,v,d,b,u,m,y,n)}static async fromPLYFile(e,n=3){let a=await U.loadFile(e);return U.fromArrayBuffer(a,n)}static decodeHeader(e){let n=new TextDecoder,a=0,t="",s=100;for(;;){if(a+s>=e.byteLength)throw new Error("End of file reached while searching for end of header");let m=new Uint8Array(e,a,s);t+=n.decode(m),a+=s;let d=a-s*2,y=new Uint8Array(e,Math.max(0,d),d>0?s*2:s);if(n.decode(y).includes("end_header"))break}let i=t.split(` `),h=0,o={},c={},l=0,f;for(let m=0;m<i.length;m++){let d=i[m].trim();if(d.startsWith("element vertex")){let y=d.match(/\d+/);y&&(h=parseInt(y[0]))}else if(d.startsWith("property")){let y=d.match(/(\w+)\s+(\w+)\s+(\w+)/);if(y){let u=y[2],x=y[3];o[x]=l,c[x]={dtype:u,index:l},l++}}else if(d.startsWith("format")){let y=d.match(/(\w+)\s+(\w+)\s+(\d+\.?\d*)/);y&&(f={format:y[2],version:y[3]})}else if(d==="end_header")break}let p=t.indexOf("end_header")+10+1,v=new DataView(e,p);return{splatCount:h,vertexData:v,headerOffset:a,propertiesDesc:c,format:f}}};var X=class{constructor(e,n,a,t,s,i,h,o){this.config=e,this.xyz=n,this.scaling=a,this.color=t,this.opacity=s,this.harmonics=h,this.quaternion=i,this.variableChunkSize=o}get isDynamicChunks(){return this.variableChunkSize&&this.variableChunkSize.length>0}get nchunks(){return this.xyz.nchunks}get nsplats(){return this.xyz.length}get chunkSize(){return this.config.chunkSize}static compressFromGaussianData(e,n){let a=E.fromArray(e.xyz,n.xyz,n.chunkSize),t=E.fromArray(e.scaling,n.scaling,n.chunkSize),s=E.fromArray(e.colors,n.color,n.chunkSize),i=E.fromArray(e.opacity,n.opacity,n.chunkSize),h=E.fromArray(e.rotation,n.quaternion,n.chunkSize),o=e.harmonics,c=[];if(n.harmonics)for(let l=0;l<o.length;l++){let f=E.fromArray(o[l],n.harmonics,n.chunkSize);c.push(f)}return new X(n,a,t,s,i,h,c)}_countIndexesInChunks(e){let n=[],a=this.nchunks,t=this.chunkSize,s=this.nsplats,i=E.getRequiredNChunks(s,t);if(a===i)for(let h=0;h<e.length;h++){let o=e[h],c=Math.floor(o/this.chunkSize);c in n?n[c].push(o):n[c]=[o]}else{let h=this.variableChunkSize,o={},c=0;for(let l=0;l<a;l++)o[l]=c,c+=h[l];for(let l=0;l<e.length;l++){let f=e[l],p=Math.min(Math.floor(f/t),a-1);for(;f>=o[p]+h[p];)p++;p in n?n[p].push(f):n[p]=[f]}}return n}pruneSplats(e){let n=this._countIndexesInChunks(e),a,t=[];return n.length>0&&(a=this.variableChunkSize?[...this.variableChunkSize]:Array(this.nchunks).fill(this.chunkSize),n.forEach((s,i)=>{a[i]-=s.length,a[i]<=0&&t.push(i)}),a=a.filter(s=>s>0)),new X(this.config,this.xyz.pruneFeature(e,t,a),this.scaling.pruneFeature(e,t,a),this.color.pruneFeature(e,t,a),this.opacity.pruneFeature(e,t,a),this.quaternion.pruneFeature(e,t,a),this.harmonics?this.harmonics.map(s=>s.pruneFeature(e,t,this.variableChunkSize)):void 0,a)}static async loadConfig(e){return await(await fetch(e,{method:"GET",mode:"cors",headers:{Accept:"application/json"}})).json()}toGaussians(){let e={format:"binary_little_endian",version:"1.0"},n={},a=0;if(n.x={dtype:"float",index:a},a++,n.y={dtype:"float",index:a},a++,n.z={dtype:"float",index:a},a++,n.f_dc_0={dtype:"float",index:a},a++,n.f_dc_1={dtype:"float",index:a},a++,n.f_dc_2={dtype:"float",index:a},a++,this.harmonics&&this.harmonics.length>0)for(let i=0;i<this.harmonics.length;i++)n[`f_rest_${i}`]={dtype:"float",index:a},a++,n[`f_rest_${i+1}`]={dtype:"float",index:a},a++,n[`f_rest_${i+2}`]={dtype:"float",index:a},a++;n.opacity={dtype:"float",index:a},a++,n.scale_0={dtype:"float",index:a},a++,n.scale_1={dtype:"float",index:a},a++,n.scale_2={dtype:"float",index:a},a++,n.rot_0={dtype:"float",index:a},a++,n.rot_1={dtype:"float",index:a},a++,n.rot_2={dtype:"float",index:a},a++,n.rot_3={dtype:"float",index:a},a++;let t=this.harmonics?.map(i=>i.denormDequant());return new U(n,e,this.xyz.length,this.xyz.denormDequant(),this.color.denormDequant(),t||[],this.opacity.denormDequant(),this.scaling.denormDequant(),this.quaternion.denormDequant(),3)}};var nr=Q(tr(),1),R=Q(sr(),1);var S=1e-6,P=typeof Float32Array<"u"?Float32Array:Array,ir=Math.random;var Wt=Math.PI/180;Math.hypot||(Math.hypot=function(){for(var r=0,e=arguments.length;e--;)r+=arguments[e]*arguments[e];return Math.sqrt(r)});var W={};ur(W,{add:()=>Yn,adjoint:()=>Sn,clone:()=>An,copy:()=>wn,create:()=>kr,determinant:()=>In,equals:()=>Hn,exactEquals:()=>$n,frob:()=>Un,fromMat2d:()=>Vn,fromMat4:()=>bn,fromQuat:()=>On,fromRotation:()=>Tn,fromScaling:()=>Pn,fromTranslation:()=>En,fromValues:()=>kn,identity:()=>qn,invert:()=>Fn,mul:()=>Wn,multiply:()=>ie,multiplyScalar:()=>Gn,multiplyScalarAndAdd:()=>Qn,normalFromMat4:()=>jn,projection:()=>Rn,rotate:()=>Ln,scale:()=>Dn,set:()=>zn,str:()=>Bn,sub:()=>Zn,subtract:()=>oe,translate:()=>Cn,transpose:()=>Nn});function kr(){var r=new P(9);return P!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0),r[0]=1,r[4]=1,r[8]=1,r}function bn(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[4],r[4]=e[5],r[5]=e[6],r[6]=e[8],r[7]=e[9],r[8]=e[10],r}function An(r){var e=new P(9);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e}function wn(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}function kn(r,e,n,a,t,s,i,h,o){var c=new P(9);return c[0]=r,c[1]=e,c[2]=n,c[3]=a,c[4]=t,c[5]=s,c[6]=i,c[7]=h,c[8]=o,c}function zn(r,e,n,a,t,s,i,h,o,c){return r[0]=e,r[1]=n,r[2]=a,r[3]=t,r[4]=s,r[5]=i,r[6]=h,r[7]=o,r[8]=c,r}function qn(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function Nn(r,e){if(r===e){var n=e[1],a=e[2],t=e[5];r[1]=e[3],r[2]=e[6],r[3]=n,r[5]=e[7],r[6]=a,r[7]=t}else r[0]=e[0],r[1]=e[3],r[2]=e[6],r[3]=e[1],r[4]=e[4],r[5]=e[7],r[6]=e[2],r[7]=e[5],r[8]=e[8];return r}function Fn(r,e){var n=e[0],a=e[1],t=e[2],s=e[3],i=e[4],h=e[5],o=e[6],c=e[7],l=e[8],f=l*i-h*c,p=-l*s+h*o,v=c*s-i*o,m=n*f+a*p+t*v;return m?(m=1/m,r[0]=f*m,r[1]=(-l*a+t*c)*m,r[2]=(h*a-t*i)*m,r[3]=p*m,r[4]=(l*n-t*o)*m,r[5]=(-h*n+t*s)*m,r[6]=v*m,r[7]=(-c*n+a*o)*m,r[8]=(i*n-a*s)*m,r):null}function Sn(r,e){var n=e[0],a=e[1],t=e[2],s=e[3],i=e[4],h=e[5],o=e[6],c=e[7],l=e[8];return r[0]=i*l-h*c,r[1]=t*c-a*l,r[2]=a*h-t*i,r[3]=h*o-s*l,r[4]=n*l-t*o,r[5]=t*s-n*h,r[6]=s*c-i*o,r[7]=a*o-n*c,r[8]=n*i-a*s,r}function In(r){var e=r[0],n=r[1],a=r[2],t=r[3],s=r[4],i=r[5],h=r[6],o=r[7],c=r[8];return e*