@splinetool/viewer 1.0.61 → 1.0.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/gaussian-splat-compression.js +34 -0
- package/build/howler.js +2 -0
- package/build/spline-viewer.cjs +352 -352
- package/build/spline-viewer.js +352 -352
- package/package.json +2 -2
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
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,a)=>e in r?fr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):r[e]=a;var K=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ur=(r,e)=>{for(var a in e)fr(r,a,{get:e[a],enumerable:!0})},$e=(r,e,a,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of Ue(e))!Ge.call(r,t)&&t!==a&&fr(r,t,{get:()=>e[t],enumerable:!(n=Be(e,t))||n.enumerable});return r};var Q=(r,e,a)=>(a=r!=null?Re(Ye(r)):{},$e(e||!r||!r.__esModule?fr(a,"default",{value:r,enumerable:!0}):a,r));var $=(r,e,a)=>(Qe(r,typeof e!="symbol"?e+"":e,a),a);var Lr=K((gt,Cr)=>{"use strict";function He(r){for(var e=new Array(r),a=0;a<r;++a)e[a]=a;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 ra(){var r=this.stride,e=new Array(r.length),a;for(a=0;a<e.length;++a)e[a]=[Math.abs(r[a]),a];e.sort(Je);var n=new Array(e.length);for(a=0;a<n.length;++a)n[a]=e[a][1];return n}function ea(r,e){var a=["View",e,"d",r].join("");e<0&&(a="View_Nil"+r);var n=r==="generic";if(e===-1){var t="function "+a+"(a){this.data=a;};var proto="+a+".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 "+a+"(this.data);};proto.get=proto.set=function(){};proto.pick=function(){return null};return function construct_"+a+"(a){return new "+a+"(a);}",d=new Function(t);return d()}else if(e===0){var t="function "+a+"(a,d) {this.data = a;this.offset = d};var proto="+a+".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 "+a+"_copy() {return new "+a+"(this.data,this.offset)};proto.pick=function "+a+"_pick(){return TrivialArray(this.data);};proto.valueOf=proto.get=function "+a+"_get(){return "+(n?"this.data.get(this.offset)":"this.data[this.offset]")+"};proto.set=function "+a+"_set(v){return "+(n?"this.data.set(this.offset,v)":"this.data[this.offset]=v")+"};return function construct_"+a+"(a,b,c,d){return new "+a+"(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 "+a+"(a,"+o+","+c+",d){this.data=a","this.shape=["+o+"]","this.stride=["+c+"]","this.offset=d|0}","var proto="+a+".prototype","proto.dtype='"+r+"'","proto.dimension="+e),t.push("Object.defineProperty(proto,'size',{get:function "+a+"_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 "+a+"_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 "+a+"_set("+i.join(",")+",v){"),n?t.push("return this.data.set("+h+",v)}"):t.push("return this.data["+h+"]=v}"),t.push("proto.get=function "+a+"_get("+i.join(",")+"){"),n?t.push("return this.data.get("+h+")}"):t.push("return this.data["+h+"]}"),t.push("proto.index=function "+a+"_index(",i.join(),"){return "+h+"}"),t.push("proto.hi=function "+a+"_hi("+i.join(",")+"){return new "+a+"(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+"]"}),p=s.map(function(y){return"c"+y+"=this.stride["+y+"]"});t.push("proto.lo=function "+a+"_lo("+i.join(",")+"){var b=this.offset,d=0,"+l.join(",")+","+p.join(","));for(var f=0;f<e;++f)t.push("if(typeof i"+f+"==='number'&&i"+f+">=0){d=i"+f+"|0;b+=c"+f+"*d;a"+f+"-=d}");t.push("return new "+a+"(this.data,"+s.map(function(y){return"a"+y}).join(",")+","+s.map(function(y){return"c"+y}).join(",")+",b)}"),t.push("proto.step=function "+a+"_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 f=0;f<e;++f)t.push("if(typeof i"+f+"==='number'){d=i"+f+"|0;if(d<0){c+=b"+f+"*(a"+f+"-1);a"+f+"=ceil(-a"+f+"/d)}else{a"+f+"=ceil(a"+f+"/d)}b"+f+"*=d}");t.push("return new "+a+"(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),f=0;f<e;++f)v[f]="a[i"+f+"]",m[f]="b[i"+f+"]";t.push("proto.transpose=function "+a+"_transpose("+i+"){"+i.map(function(y,u){return y+"=("+y+"===undefined?"+u+":"+y+"|0)"}).join(";"),"var a=this.shape,b=this.stride;return new "+a+"(this.data,"+v.join(",")+","+m.join(",")+",this.offset)}"),t.push("proto.pick=function "+a+"_pick("+i+"){var a=[],b=[],c=this.offset");for(var f=0;f<e;++f)t.push("if(typeof i"+f+"==='number'&&i"+f+">=0){c=(c+this.stride["+f+"]*i"+f+")|0}else{a.push(this.shape["+f+"]);b.push(this.stride["+f+"])}");t.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),t.push("return function construct_"+a+"(data,shape,stride,offset){return new "+a+"(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(`
|
|
2
|
+
`));return d(yr[r],ra)}function aa(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 na(r,e,a,n){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(a===void 0){a=new Array(t);for(var s=t-1,i=1;s>=0;--s)a[s]=i,i*=e[s]}if(n===void 0){n=0;for(var s=0;s<t;++s)a[s]<0&&(n-=(e[s]-1)*a[s])}for(var h=aa(r),o=yr[h];o.length<=t+1;)o.push(ea(h,o.length-1));var c=o[t+1];return c(r,e,a,n)}Pr.exports=na});var Or=K((bt,Vr)=>{"use strict";function ta(r,e){for(var a=1,n=r.length,t=r[0],s=r[0],i=1;i<n;++i)if(s=t,t=r[i],e(t,s)){if(i===a){a++;continue}r[a++]=t}return r.length=a,r}function sa(r){for(var e=1,a=r.length,n=r[0],t=r[0],s=1;s<a;++s,t=n)if(t=n,n=r[s],n!==t){if(s===e){e++;continue}r[e++]=n}return r.length=e,r}function ia(r,e,a){return r.length===0?r:e?(a||r.sort(e),ta(r,e)):(a||r.sort(),sa(r))}Vr.exports=ia});var Br=K((At,Rr)=>{"use strict";var oa=Or();function jr(r,e,a){var n=r.length,t=e.arrayArgs.length,s=e.indexArgs.length>0,i=[],h=[],o=0,c=0,l,p;for(l=0;l<n;++l)h.push(["i",l,"=0"].join(""));for(p=0;p<t;++p)for(l=0;l<n;++l)c=o,o=r[l],l===0?h.push(["d",p,"s",l,"=t",p,"p",o].join("")):h.push(["d",p,"s",l,"=(t",p,"p",o,"-s",c,"*t",p,"p",c,")"].join(""));for(h.length>0&&i.push("var "+h.join(",")),l=n-1;l>=0;--l)o=r[l],i.push(["for(i",l,"=0;i",l,"<s",o,";++i",l,"){"].join(""));for(i.push(a),l=0;l<n;++l){for(c=o,o=r[l],p=0;p<t;++p)i.push(["p",p,"+=d",p,"s",l].join(""));s&&(l>0&&i.push(["index[",c,"]-=s",c].join("")),i.push(["++index[",o,"]"].join(""))),i.push("}")}return i.join(`
|
|
3
|
+
`)}function ha(r,e,a,n){for(var t=e.length,s=a.arrayArgs.length,i=a.blockSize,h=a.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],p=r;p<t;++p)l.push(["j",p,"*t",c,"p",e[p]].join(""));o.push(["p",c,"=(",l.join("+"),")"].join(""))}o.push(jr(e,a,n));for(var c=r;c<t;++c)o.push("}");return o.join(`
|
|
4
|
+
`)}function ca(r){for(var e=0,a=r[0].length;e<a;){for(var n=1;n<r.length;++n)if(r[n][e]!==r[0][e])return e;++e}return e}function xr(r,e,a){for(var n=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 p=e.offsetArgIndex.indexOf(i),f=e.offsetArgs[p];l=f.array,c="+q"+p;case"array":c="p"+l+c;var v="l"+i,m="a"+l;if(e.arrayBlockIndices[l]===0)h.count===1?a[l]==="generic"?h.lvalue?(t.push(["var ",v,"=",m,".get(",c,")"].join("")),n=n.replace(o,v),s.push([m,".set(",c,",",v,")"].join(""))):n=n.replace(o,[m,".get(",c,")"].join("")):n=n.replace(o,[m,"[",c,"]"].join("")):a[l]==="generic"?(t.push(["var ",v,"=",m,".get(",c,")"].join("")),n=n.replace(o,v),h.lvalue&&s.push([m,".set(",c,",",v,")"].join(""))):(t.push(["var ",v,"=",m,"[",c,"]"].join("")),n=n.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("+"),a[l]==="generic")throw new Error("cwise: Generic arrays not supported in combination with blocks!");n=n.replace(o,[m,"[",c,"]"].join(""))}break;case"scalar":n=n.replace(o,"Y"+e.scalarArgs.indexOf(i));break;case"index":n=n.replace(o,"index");break;case"shape":n=n.replace(o,"shape");break}}}return[t.join(`
|
|
5
|
+
`),n,s.join(`
|
|
6
|
+
`)].join(`
|
|
7
|
+
`).trim()}function la(r){for(var e=new Array(r.length),a=!0,n=0;n<r.length;++n){var t=r[n],s=t.match(/\d+/);s?s=s[0]:s="",t.charAt(0)===0?e[n]="u"+t.charAt(1)+s:e[n]=t.charAt(0)+s,n>0&&(a=a&&e[n]===e[n-1])}return a?e[0]:e.join("")}function pa(r,e){for(var a=e[1].length-Math.abs(r.arrayBlockIndices[0])|0,n=new Array(r.arrayArgs.length),t=new Array(r.arrayArgs.length),s=0;s<r.arrayArgs.length;++s)t[s]=e[2*s],n[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(a),i.push(a),h.push(a+r.arrayBlockIndices[s])):(o.push(r.arrayBlockIndices[s]),c.push(r.arrayBlockIndices[s]+a),i.push(0),h.push(r.arrayBlockIndices[s]));for(var p=[],f=0;f<n[s].length;f++)o[s]<=n[s][f]&&n[s][f]<c[s]&&p.push(n[s][f]-o[s]);l.push(p)}for(var v=["SS"],m=["'use strict'"],d=[],f=0;f<a;++f)d.push(["s",f,"=SS[",f,"]"].join(""));for(var s=0;s<r.arrayArgs.length;++s){v.push("a"+s),v.push("t"+s),v.push("p"+s);for(var f=0;f<a;++f)d.push(["t",s,"p",f,"=t",s,"[",o[s]+f,"]"].join(""));for(var f=0;f<Math.abs(r.arrayBlockIndices[s]);++f)d.push(["t",s,"b",f,"=t",s,"[",i[s]+f,"]"].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(a),s=0;s<a;++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],M=[],f=0;f<u.offset.length;++f)u.offset[f]!==0&&(u.offset[f]===1?M.push(["t",u.array,"p",f].join("")):M.push([u.offset[f],"*t",u.array,"p",f].join("")));M.length===0?d.push("q"+s+"=0"):d.push(["q",s,"=",M.join("+")].join(""))}var _=oa([].concat(r.pre.thisVars).concat(r.body.thisVars).concat(r.post.thisVars));d=d.concat(_),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),g=ca(l);g<a?m.push(ha(g,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,`:
|
|
8
|
+
`+m.join(`
|
|
9
|
+
`)+`
|
|
10
|
+
----------`);var x=[r.funcName||"unnamed","_cwise_loop_",n[0].join("s"),"m",g,la(t)].join(""),k=new Function(["function ",x,"(",v.join(","),"){",m.join(`
|
|
11
|
+
`),"} return ",x].join(""));return k()}Rr.exports=pa});var Yr=K((wt,Ur)=>{"use strict";var fa=Br();function ya(r){var e=["'use strict'","var CACHED={}"],a=[],n=r.funcName+"_cwise_thunk";e.push(["return function ",n,"(",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];a.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]);a.push(["type=[",s.join(","),"].join()"].join("")),a.push("proc=CACHED[type]"),e.push("var "+a.join(",")),e.push(["if(!proc){","CACHED[type]=proc=compile([",t.join(","),"])}","return proc(",i.join(","),")}"].join("")),r.debug&&console.log(`-----Generated thunk:
|
|
12
|
+
`+e.join(`
|
|
13
|
+
`)+`
|
|
14
|
+
----------`);var p=new Function("compile",e.join(`
|
|
15
|
+
`));return p(fa.bind(void 0,r))}Ur.exports=ya});var Qr=K((kt,Gr)=>{"use strict";var da=Yr();function va(){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 ma(r){var e=new va;e.pre=r.pre,e.body=r.body,e.post=r.post;var a=r.args.slice(0);e.argTypes=a;for(var n=0;n<a.length;++n){var t=a[n];if(t==="array"||typeof t=="object"&&t.blockIndices){if(e.argTypes[n]="array",e.arrayArgs.push(n),e.arrayBlockIndices.push(t.blockIndices?t.blockIndices:0),e.shimArgs.push("array"+n),n<e.pre.args.length&&e.pre.args[n].count>0)throw new Error("cwise: pre() block may not reference array args");if(n<e.post.args.length&&e.post.args[n].count>0)throw new Error("cwise: post() block may not reference array args")}else if(t==="scalar")e.scalarArgs.push(n),e.shimArgs.push("scalar"+n);else if(t==="index"){if(e.indexArgs.push(n),n<e.pre.args.length&&e.pre.args[n].count>0)throw new Error("cwise: pre() block may not reference array index");if(n<e.body.args.length&&e.body.args[n].lvalue)throw new Error("cwise: body() block may not write to array index");if(n<e.post.args.length&&e.post.args[n].count>0)throw new Error("cwise: post() block may not reference array index")}else if(t==="shape"){if(e.shapeArgs.push(n),n<e.pre.args.length&&e.pre.args[n].lvalue)throw new Error("cwise: pre() block may not write to array shape");if(n<e.body.args.length&&e.body.args[n].lvalue)throw new Error("cwise: body() block may not write to array shape");if(n<e.post.args.length&&e.post.args[n].lvalue)throw new Error("cwise: post() block may not write to array shape")}else if(typeof t=="object"&&t.offset)e.argTypes[n]="offset",e.offsetArgs.push({array:t.array,offset:t.offset}),e.offsetArgIndex.push(n);else throw new Error("cwise: Unknown argument type "+a[n])}if(e.arrayArgs.length<=0)throw new Error("cwise: No array arguments specified");if(e.pre.args.length>a.length)throw new Error("cwise: Too many arguments in pre() block");if(e.body.args.length>a.length)throw new Error("cwise: Too many arguments in body() block");if(e.post.args.length>a.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,da(e)}Gr.exports=ma});var sr=K(F=>{"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 a=r.args[e];e===0?r.args[e]={name:a,lvalue:!0,rvalue:!!r.rvalue,count:r.count||1}:r.args[e]={name:a,lvalue:!1,rvalue:!0,count:1}}return r.thisVars||(r.thisVars=[]),r.localVars||(r.localVars=[]),r}function ua(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=[],a=0;a<r.args.length;++a)e.push("a"+a);var n=new Function("P",["return function ",r.funcName,"_ndarrayops(",e.join(","),") {P(",e.join(","),");return a0}"].join(""));return n(ua(r))}var $r={add:"+",sub:"-",mul:"*",div:"/",mod:"%",band:"&",bor:"|",bxor:"^",lshift:"<<",rshift:">>",rrshift:">>>"};(function(){for(var r in $r){var e=$r[r];F[r]=O({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:r}),F[r+"eq"]=O({args:["array","array"],body:{args:["a","b"],body:"a"+e+"=b"},rvalue:!0,funcName:r+"eq"}),F[r+"s"]=O({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:r+"s"}),F[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];F[r]=O({args:["array","array"],body:{args:["a","b"],body:"a="+e+"b"},funcName:r}),F[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];F[r]=O({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+e+"c"},funcName:r}),F[r+"s"]=O({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+e+"s"},funcName:r+"s"}),F[r+"eq"]=O({args:["array","array"],body:{args:["a","b"],body:"a=a"+e+"b"},rvalue:!0,count:2,funcName:r+"eq"}),F[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];F[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}),F[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];F[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}),F[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"}),F[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"}),F[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];F[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"}),F[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"}),F[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"}),F[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"})}})();F.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"});F.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"});F.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"});F.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"});F.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"});F.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"});F.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"});F.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"});F.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:[]}});F.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:[]}});F.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:[]}});F.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:[]}});F.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"});F.assign=O({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"});F.assigns=O({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"});F.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,a,n){this._dataNormalized=e,this._minD=a,this._maxD=n}static createFromUnnormalized(e){let a=A.sup(e),n=A.inf(e),t=(0,j.default)(new Float32Array(e.size),e.shape),s=a-n;return s<1e-4?A.assigns(t,0):(A.subs(t,e,n),A.divs(t,t,s)),new J(t,n,a)}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}},L=class{constructor(e,a){this._quantized=e,this._method=a}get quantized(){return this._quantized}static maxIntBits(e){return 2**e-1}static fromNormalized(e,a){let n=e.data,t;if(a==="norm8x"){let s=L.maxIntBits(8),i=(0,j.default)(new Float32Array(n.size),n.shape);A.muls(i,n,s),A.roundeq(i),t=(0,j.default)(new Uint8Array(i.data),n.shape)}else if(a==="norm565"){let s=(0,j.default)(new Float32Array(n.size),n.shape);A.assign(s,n),A.mulseq(s.pick(null,0),L.maxIntBits(5)),A.mulseq(s.pick(null,1),L.maxIntBits(6)),A.mulseq(s.pick(null,2),L.maxIntBits(5)),A.roundeq(s);let i=(0,j.default)(new Uint16Array(s.data),n.shape),h=(0,j.default)(new Uint16Array(n.shape[0]),[n.shape[0]]),o=(0,j.default)(new Uint16Array(n.shape[0]),[n.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(n.size),n.shape);A.assign(s,n),A.mulseq(s.pick(null,0),L.maxIntBits(11)),A.mulseq(s.pick(null,1),L.maxIntBits(10)),A.mulseq(s.pick(null,2),L.maxIntBits(11)),A.roundeq(s);let i=(0,j.default)(new Uint32Array(s.data),n.shape),h=(0,j.default)(new Uint32Array(n.shape[0]),[n.shape[0]]),o=(0,j.default)(new Uint32Array(n.shape[0]),[n.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 L(t,a)}dequantize(e,a){let n=this._method,t,s=this._quantized;if(n==="norm8x"){let i=L.maxIntBits(8);t=(0,j.default)(new Float32Array(s.size),s.shape),A.muls(t,s,1/i)}else if(n==="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,L.maxIntBits(6)),A.bands(o,s,L.maxIntBits(5)),t=(0,j.default)(new Float32Array(s.shape[0]*3),[s.shape[0],3]),A.muls(t.pick(null,0),i,1/L.maxIntBits(5)),A.muls(t.pick(null,1),h,1/L.maxIntBits(6)),A.muls(t.pick(null,2),o,1/L.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,L.maxIntBits(10)),A.bands(o,s,L.maxIntBits(11)),t=(0,j.default)(new Float32Array(s.shape[0]*3),[s.shape[0],3]),A.muls(t.pick(null,0),i,1/L.maxIntBits(11)),A.muls(t.pick(null,1),h,1/L.maxIntBits(10)),A.muls(t.pick(null,2),o,1/L.maxIntBits(11))}return new J(t,e,a)}};var D=class{constructor(e,a,n,t,s,i=!1){this._quantized=e,this._minMaxMatrix=a,this._chunkSize=n,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 a=e.length,n=this.minmaxMatrix.shape[0]-a,t=(0,G.default)(new Float32Array(n*2),[n,2]),s=0,i=n,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<n&&H.assign(t.lo(s,0),this.minmaxMatrix.lo(h,0)),t}_createPrunedQuantized(e){let a=e.length,n=this.quantized.shape[0]-a,t=this._quantizationMethod,s,i;if(t==="norm8x"){i=this._quantized.shape[1];let p=i?n*i:n;s=(0,G.default)(new Uint8Array(p),i?[n,i]:[n,1])}else t==="norm565"?s=(0,G.default)(new Uint16Array(n),[n]):s=(0,G.default)(new Uint32Array(n),[n]);let h=0,o=n,c=0,l=s.shape[0];for(let p=0;p<e.length;p++)l=e[p],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<n&&(i?H.assign(s.lo(h,0),this._quantized.lo(c,0)):H.assign(s.lo(h),this._quantized.lo(c))),s}pruneFeature(e,a,n){let t=this._createPrunedQuantized(e),s=this._createPrunedMinMax(a);return new D(t,s,this._chunkSize,this._quantizationMethod,n,!0)}static getRequiredNChunks(e,a){return Math.floor(e/a)}static fromArray(e,a,n){let t=e.shape[0],s=Math.floor(t/n),i=(0,G.default)(new Float32Array(s*2),[s,2],[2,1]),h;a==="norm8x"?h=(0,G.default)(new Uint8Array(e.size),e.shape):a==="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*n,l=o+1<s?(o+1)*n:t,p;e.shape.length>1?p=J.createFromUnnormalized(e.hi(l,e.shape[1]).lo(c,0)):p=J.createFromUnnormalized(e.hi(l).lo(c)),i.set(o,0,p.minD),i.set(o,1,p.maxD),h.shape.length>1?H.assign(h.hi(l,h.shape[1]).lo(c,0),L.fromNormalized(p,a).quantized):H.assign(h.hi(l).lo(c),L.fromNormalized(p,a).quantized)}return new D(h,i,n,a)}denormDequant(){let e=this._minMaxMatrix.shape[0],a=this._quantized,n=a.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(a.size),a.shape):h=(0,G.default)(new Float32Array(n*3),[n,3]);let o=0,c=s;for(let l=0;l<e;l++){let[p,f]=[this._minMaxMatrix.get(l,0),this._minMaxMatrix.get(l,1)];this._isDynamicChunks&&(c=i[l]);let v=l+1<e?o+c:n,m;a.shape.length>1?m=new L(a.hi(v,a.shape[1]).lo(o,0),t):m=new L(a.hi(v).lo(o),t),H.assign(h.hi(v,h.shape[1]).lo(o,0),m.dequantize(p,f).denormalize()),o=v}return h}static async fetchArrayBuffer(e){return await(await fetch(e,{mode:"cors"})).arrayBuffer()}};var Z=Q(tr(),1),S=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 ae(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 a=String(r),n=String(e);return a===n?0:a<n?-1:1}function xa(r){let e=0;for(;r>=32;)e|=r&1,r>>=1;return r+e}function ne(r,e,a,n){let t=e+1;if(t===a)return 1;if(n(r[t++],r[e])<0){for(;t<a&&n(r[t],r[t-1])<0;)t++;ga(r,e,t)}else for(;t<a&&n(r[t],r[t-1])>=0;)t++;return t-e}function ga(r,e,a){for(a--;e<a;){let n=r[e];r[e++]=r[a],r[a--]=n}}function te(r,e,a,n,t){for(n===e&&n++;n<a;n++){let s=r[n],i=e,h=n;for(;i<h;){let c=i+h>>>1;t(s,r[c])<0?h=c:i=c+1}let o=n-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,a,n,t,s){let i=0,h=0,o=1;if(s(r,e[a+t])>0){for(h=n-t;o<h&&s(r,e[a+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[a+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[a+c])>0?i=c+1:o=c}return o}function _r(r,e,a,n,t,s){let i=0,h=0,o=1;if(s(r,e[a+t])<0){for(h=t+1;o<h&&s(r,e[a+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=n-t;o<h&&s(r,e[a+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[a+c])<0?o=c:i=c+1}return o}var br=class{constructor(e,a){$(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=a,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,a){this.runStart[this.stackSize]=e,this.runLength[this.stackSize]=a,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 a=this.compare,n=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(n[i],n,t,s,0,a);t+=o,s-=o,s!==0&&(h=Mr(n[t+s-1],n,i,h,h-1,a),h!==0&&(s<=h?this.mergeLow(t,s,i,h):this.mergeHigh(t,s,i,h)))}mergeLow(e,a,n,t){let s=this.compare,i=this.array,h=this.tmp,o=0;for(o=0;o<a;o++)h[o]=i[e+o];let c=0,l=n,p=e;if(i[p++]=i[l++],--t===0){for(o=0;o<a;o++)i[p+o]=h[c+o];return}if(a===1){for(o=0;o<t;o++)i[p+o]=i[l+o];i[p+t]=h[c];return}let f=this.minGallop;for(;;){let v=0,m=0,d=!1;do if(s(i[l],h[c])<0){if(i[p++]=i[l++],m++,v=0,--t===0){d=!0;break}}else if(i[p++]=h[c++],v++,m=0,--a===1){d=!0;break}while((v|m)<f);if(d)break;do{if(v=_r(i[l],h,c,a,0,s),v!==0){for(o=0;o<v;o++)i[p+o]=h[c+o];if(p+=v,c+=v,a-=v,a<=1){d=!0;break}}if(i[p++]=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[p+o]=i[l+o];if(p+=m,l+=m,t-=m,t===0){d=!0;break}}if(i[p++]=h[c++],--a===1){d=!0;break}f--}while(v>=7||m>=7);if(d)break;f<0&&(f=0),f+=2}if(this.minGallop=f,f<1&&(this.minGallop=1),a===1){for(o=0;o<t;o++)i[p+o]=i[l+o];i[p+t]=h[c]}else{if(a===0)throw new Error("mergeLow preconditions were not respected");for(o=0;o<a;o++)i[p+o]=h[c+o]}}mergeHigh(e,a,n,t){let s=this.compare,i=this.array,h=this.tmp,o=0;for(o=0;o<t;o++)h[o]=i[n+o];let c=e+a-1,l=t-1,p=n+t-1,f=0,v=0;if(i[p--]=i[c--],--a===0){for(f=p-(t-1),o=0;o<t;o++)i[f+o]=h[o];return}if(t===1){for(p-=a,c-=a,v=p+1,f=c+1,o=a-1;o>=0;o--)i[v+o]=i[f+o];i[p]=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[p--]=i[c--],d++,y=0,--a===0){u=!0;break}}else if(i[p--]=h[l--],y++,d=0,--t===1){u=!0;break}while((d|y)<m);if(u)break;do{if(d=a-_r(h[l],i,e,a,a-1,s),d!==0){for(p-=d,c-=d,a-=d,v=p+1,f=c+1,o=d-1;o>=0;o--)i[v+o]=i[f+o];if(a===0){u=!0;break}}if(i[p--]=h[l--],--t===1){u=!0;break}if(y=t-Mr(i[c],h,0,t,t-1,s),y!==0){for(p-=y,l-=y,t-=y,v=p+1,f=l+1,o=0;o<y;o++)i[v+o]=h[f+o];if(t<=1){u=!0;break}}if(i[p--]=i[c--],--a===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(p-=a,c-=a,v=p+1,f=c+1,o=a-1;o>=0;o--)i[v+o]=i[f+o];i[p]=h[l]}else{if(t===0)throw new Error("mergeHigh preconditions were not respected");for(f=p-(t-1),o=0;o<t;o++)i[f+o]=h[o]}}};function se(r,e,a,n){if(!Array.isArray(r))throw new TypeError("Can only sort arrays");e?typeof e!="function"&&(n=a,a=e,e=ae):e=ae,a||(a=0),n||(n=r.length);let t=n-a;if(t<2)return;let s=0;if(t<32){s=ne(r,a,n,e),te(r,a,n,a+s,e);return}let i=new br(r,e),h=xa(t);do{if(s=ne(r,a,n,e),s<h){let o=t;o>h&&(o=h),te(r,a,a+o,a+s,e),s=o}i.pushRun(a,s),i.mergeRuns(),t-=s,a+=s}while(t!==0);i.forceMergeRuns()}function Ar(r){let e=(0,er.default)(new Int32Array(r.shape[0]),[r.shape[0]]),a=(0,er.default)(new Int32Array(r.shape[0]),[r.shape[0]]);return C.bands(e,r,1023),C.lshifts(a,e,16),C.bxoreq(e,a),C.bandseq(e,4278190335),C.lshifts(a,e,8),C.bxoreq(e,a),C.bandseq(e,50393103),C.lshifts(a,e,4),C.bxoreq(e,a),C.bandseq(e,51130563),C.lshifts(a,e,2),C.bxoreq(e,a),C.bandseq(e,153391689),e}function Ma(r){let e=Ar(r.pick(null,0)),a=Ar(r.pick(null,1));C.lshiftseq(a,1);let n=Ar(r.pick(null,2));return C.lshiftseq(n,2),C.boreq(e,a),C.boreq(e,n),e}function rr(r,e){if(r.shape[0]!==e.shape[0])throw new Error("wrong length");let a=(0,er.default)(new Float32Array(r.size),r.shape,r.stride,r.offset);for(let n=0;n<e.shape[0];n++){let t=e.get(n);if(r.shape.length>1)for(let s=0;s<r.shape[1];s++)a.set(n,s,r.get(t,s));else a.set(n,r.get(t))}return a}function wr(r){let e=C.sup(r),a=C.inf(r),n=1e3/Math.min(1e3,e-a),t=(0,er.default)(new Float32Array(r.data),r.shape);C.mulseq(t,n);let s=(0,er.default)(new Int32Array(t.data),r.shape),i=Ma(s),o=Array.from(i.data).map((p,f)=>[p,f]);se(o,(p,f)=>p[0]-f[0]);let c=o.map(([p,f])=>f);return(0,er.default)(Uint32Array.from(c))}var U=class{constructor(e,a,n,t,s,i,h,o,c,l){this.propertyDescs=e,this.format=a,this.nsplats=n,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),a=new TextEncoder().encode(e),n=Object.keys(this.propertyDescs).length,t=(0,Z.default)(new Float32Array(this.nsplats*n),[this.nsplats,n]);if(S.assign(t.pick(null,this.propertyDescs.x.index),this.xyz.pick(null,0)),S.assign(t.pick(null,this.propertyDescs.y.index),this.xyz.pick(null,1)),S.assign(t.pick(null,this.propertyDescs.z.index),this.xyz.pick(null,2)),S.assign(t.pick(null,this.propertyDescs.f_dc_0.index),this.colors.pick(null,0)),S.assign(t.pick(null,this.propertyDescs.f_dc_1.index),this.colors.pick(null,1)),S.assign(t.pick(null,this.propertyDescs.f_dc_2.index),this.colors.pick(null,2)),S.assign(t.pick(null,this.propertyDescs.opacity.index),this.opacity.pick(null,0)),S.assign(t.pick(null,this.propertyDescs.scale_0.index),this.scaling.pick(null,0)),S.assign(t.pick(null,this.propertyDescs.scale_1.index),this.scaling.pick(null,1)),S.assign(t.pick(null,this.propertyDescs.scale_2.index),this.scaling.pick(null,2)),S.assign(t.pick(null,this.propertyDescs.rot_0.index),this.rotation.pick(null,0)),S.assign(t.pick(null,this.propertyDescs.rot_1.index),this.rotation.pick(null,1)),S.assign(t.pick(null,this.propertyDescs.rot_2.index),this.rotation.pick(null,2)),S.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;S.assign(t.pick(null,this.propertyDescs[`f_rest_${o}`].index),this.harmonics[h].pick(null,0)),S.assign(t.pick(null,this.propertyDescs[`f_rest_${o+1}`].index),this.harmonics[h].pick(null,1)),S.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+a.length);return i.set(a),i.set(s,a.length),i.buffer}save(e,a){let n=this.getPlyBinary(),t=new Blob([n],{type:"application/octet-stream"}),s=new File([t],e),i=new FormData;i.append("file",s),i.append("filename",e),i.append("basedir",a),fetch(`${Jr}/push_file`,{method:"POST",body:i})}static async loadFile(e){return await(await fetch(e)).arrayBuffer()}mortonPositionSplatsSort(){let e=wr(this.xyz),a=rr(this.xyz,e),n=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,a,n,h,t,s,i,this.maxSHDegree)}static _generateHeaderString(e,a,n){let t=`ply
|
|
16
|
+
format ${a.format} ${a.version}
|
|
17
|
+
element vertex ${n}`,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}
|
|
18
|
+
property ${i[h].dtype} ${i[h].name}`;return`${t}
|
|
19
|
+
end_header
|
|
20
|
+
`}static fromArrayBuffer(e,a=3){let{splatCount:n,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),[n,o]),l=0,p={},f={double:8,int:4,uint:4,float:4,short:2,ushort:2,uchar:1};for(let g in s)if(s.hasOwnProperty(g)){let x=s[g].dtype;p[g]=l,l+=f[x]}let v=(0,Z.default)(new Float32Array(n*3),[n,3]);S.assign(v.pick(null,0),c.pick(null,p.x/4)),S.assign(v.pick(null,1),c.pick(null,p.y/4)),S.assign(v.pick(null,2),c.pick(null,p.z/4));let m=(0,Z.default)(new Float32Array(n*3),[n,3]);S.assign(m.pick(null,0),c.pick(null,p.scale_0/4)),S.assign(m.pick(null,1),c.pick(null,p.scale_1/4)),S.assign(m.pick(null,2),c.pick(null,p.scale_2/4));let d=(0,Z.default)(new Float32Array(n*3),[n,3]);S.assign(d.pick(null,0),c.pick(null,p.f_dc_0/4)),S.assign(d.pick(null,1),c.pick(null,p.f_dc_1/4)),S.assign(d.pick(null,2),c.pick(null,p.f_dc_2/4));let y=(0,Z.default)(new Float32Array(n*4),[n,4]);S.assign(y.pick(null,0),c.pick(null,p.rot_1/4)),S.assign(y.pick(null,1),c.pick(null,p.rot_2/4)),S.assign(y.pick(null,2),c.pick(null,p.rot_3/4)),S.assign(y.pick(null,3),c.pick(null,p.rot_0/4));for(let g=0;g<n;g++){let x=y.pick(g,null),k=Math.sqrt(x.get(0)**2+x.get(1)**2+x.get(2)**2+x.get(3)**2);S.divseq(x,k)}let u=(0,Z.default)(new Float32Array(n*1),[n,1]);S.assign(u.pick(null,0),c.pick(null,p.opacity/4));let _=(Math.min(Math.max(a,0),3)+1)**2-1,b=[];for(let g=0;g<_;g++){let x=(0,Z.default)(new Float32Array(n*3),[n,3]),k=g*3;S.assign(x.pick(null,0),c.pick(null,p[`f_rest_${k}`]/4)),S.assign(x.pick(null,1),c.pick(null,p[`f_rest_${k+1}`]/4)),S.assign(x.pick(null,2),c.pick(null,p[`f_rest_${k+2}`]/4)),b.push(x)}return new U(s,i,n,v,d,b,u,m,y,a)}static async fromPLYFile(e,a=3){let n=await U.loadFile(e);return U.fromArrayBuffer(n,a)}static decodeHeader(e){let a=new TextDecoder,n=0,t="",s=100;for(;;){if(n+s>=e.byteLength)throw new Error("End of file reached while searching for end of header");let m=new Uint8Array(e,n,s);t+=a.decode(m),n+=s;let d=n-s*2,y=new Uint8Array(e,Math.max(0,d),d>0?s*2:s);if(a.decode(y).includes("end_header"))break}let i=t.split(`
|
|
21
|
+
`),h=0,o={},c={},l=0,p;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],M=y[3];o[M]=l,c[M]={dtype:u,index:l},l++}}else if(d.startsWith("format")){let y=d.match(/(\w+)\s+(\w+)\s+(\d+\.?\d*)/);y&&(p={format:y[2],version:y[3]})}else if(d==="end_header")break}let f=t.indexOf("end_header")+10+1,v=new DataView(e,f);return{splatCount:h,vertexData:v,headerOffset:n,propertiesDesc:c,format:p}}};var X=class{constructor(e,a,n,t,s,i,h,o){this.config=e,this.xyz=a,this.scaling=n,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,a){let n=D.fromArray(e.xyz,a.xyz,a.chunkSize),t=D.fromArray(e.scaling,a.scaling,a.chunkSize),s=D.fromArray(e.colors,a.color,a.chunkSize),i=D.fromArray(e.opacity,a.opacity,a.chunkSize),h=D.fromArray(e.rotation,a.quaternion,a.chunkSize),o=e.harmonics,c=[];if(a.harmonics)for(let l=0;l<o.length;l++){let p=D.fromArray(o[l],a.harmonics,a.chunkSize);c.push(p)}return new X(a,n,t,s,i,h,c)}_countIndexesInChunks(e){let a=[],n=this.nchunks,t=this.chunkSize,s=this.nsplats,i=D.getRequiredNChunks(s,t);if(n===i)for(let h=0;h<e.length;h++){let o=e[h],c=Math.floor(o/this.chunkSize);c in a?a[c].push(o):a[c]=[o]}else{let h=this.variableChunkSize,o={},c=0;for(let l=0;l<n;l++)o[l]=c,c+=h[l];for(let l=0;l<e.length;l++){let p=e[l],f=Math.min(Math.floor(p/t),n-1);for(;p>=o[f]+h[f];)f++;f in a?a[f].push(p):a[f]=[p]}}return a}pruneSplats(e){let a=this._countIndexesInChunks(e),n,t=[];return a.length>0&&(n=this.variableChunkSize?[...this.variableChunkSize]:Array(this.nchunks).fill(this.chunkSize),a.forEach((s,i)=>{n[i]-=s.length,n[i]<=0&&t.push(i)}),n=n.filter(s=>s>0)),new X(this.config,this.xyz.pruneFeature(e,t,n),this.scaling.pruneFeature(e,t,n),this.color.pruneFeature(e,t,n),this.opacity.pruneFeature(e,t,n),this.quaternion.pruneFeature(e,t,n),this.harmonics?this.harmonics.map(s=>s.pruneFeature(e,t,this.variableChunkSize)):void 0,n)}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"},a={},n=0;if(a.x={dtype:"float",index:n},n++,a.y={dtype:"float",index:n},n++,a.z={dtype:"float",index:n},n++,a.f_dc_0={dtype:"float",index:n},n++,a.f_dc_1={dtype:"float",index:n},n++,a.f_dc_2={dtype:"float",index:n},n++,this.harmonics&&this.harmonics.length>0)for(let i=0;i<this.harmonics.length;i++)a[`f_rest_${i}`]={dtype:"float",index:n},n++,a[`f_rest_${i+1}`]={dtype:"float",index:n},n++,a[`f_rest_${i+2}`]={dtype:"float",index:n},n++;a.opacity={dtype:"float",index:n},n++,a.scale_0={dtype:"float",index:n},n++,a.scale_1={dtype:"float",index:n},n++,a.scale_2={dtype:"float",index:n},n++,a.rot_0={dtype:"float",index:n},n++,a.rot_1={dtype:"float",index:n},n++,a.rot_2={dtype:"float",index:n},n++,a.rot_3={dtype:"float",index:n},n++;let t=this.harmonics?.map(i=>i.denormDequant());return new U(a,e,this.xyz.length,this.xyz.denormDequant(),this.color.denormDequant(),t||[],this.opacity.denormDequant(),this.scaling.denormDequant(),this.quaternion.denormDequant(),3)}};var ar=Q(tr(),1),R=Q(sr(),1);var q=1e-6,T=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:()=>Ua,adjoint:()=>Fa,clone:()=>ba,copy:()=>Aa,create:()=>kr,determinant:()=>Sa,equals:()=>$a,exactEquals:()=>Qa,frob:()=>Ba,fromMat2d:()=>Pa,fromMat4:()=>_a,fromQuat:()=>Va,fromRotation:()=>Ea,fromScaling:()=>Ta,fromTranslation:()=>Da,fromValues:()=>wa,identity:()=>za,invert:()=>Na,mul:()=>Ha,multiply:()=>ie,multiplyScalar:()=>Ya,multiplyScalarAndAdd:()=>Ga,normalFromMat4:()=>Oa,projection:()=>ja,rotate:()=>Ca,scale:()=>La,set:()=>ka,str:()=>Ra,sub:()=>Wa,subtract:()=>oe,translate:()=>Ia,transpose:()=>qa});function kr(){var r=new T(9);return T!=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 _a(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 ba(r){var e=new T(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 Aa(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 wa(r,e,a,n,t,s,i,h,o){var c=new T(9);return c[0]=r,c[1]=e,c[2]=a,c[3]=n,c[4]=t,c[5]=s,c[6]=i,c[7]=h,c[8]=o,c}function ka(r,e,a,n,t,s,i,h,o,c){return r[0]=e,r[1]=a,r[2]=n,r[3]=t,r[4]=s,r[5]=i,r[6]=h,r[7]=o,r[8]=c,r}function za(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 qa(r,e){if(r===e){var a=e[1],n=e[2],t=e[5];r[1]=e[3],r[2]=e[6],r[3]=a,r[5]=e[7],r[6]=n,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 Na(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=e[4],h=e[5],o=e[6],c=e[7],l=e[8],p=l*i-h*c,f=-l*s+h*o,v=c*s-i*o,m=a*p+n*f+t*v;return m?(m=1/m,r[0]=p*m,r[1]=(-l*n+t*c)*m,r[2]=(h*n-t*i)*m,r[3]=f*m,r[4]=(l*a-t*o)*m,r[5]=(-h*a+t*s)*m,r[6]=v*m,r[7]=(-c*a+n*o)*m,r[8]=(i*a-n*s)*m,r):null}function Fa(r,e){var a=e[0],n=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-n*l,r[2]=n*h-t*i,r[3]=h*o-s*l,r[4]=a*l-t*o,r[5]=t*s-a*h,r[6]=s*c-i*o,r[7]=n*o-a*c,r[8]=a*i-n*s,r}function Sa(r){var e=r[0],a=r[1],n=r[2],t=r[3],s=r[4],i=r[5],h=r[6],o=r[7],c=r[8];return e*(c*s-i*o)+a*(-c*t+i*h)+n*(o*t-s*h)}function ie(r,e,a){var n=e[0],t=e[1],s=e[2],i=e[3],h=e[4],o=e[5],c=e[6],l=e[7],p=e[8],f=a[0],v=a[1],m=a[2],d=a[3],y=a[4],u=a[5],M=a[6],_=a[7],b=a[8];return r[0]=f*n+v*i+m*c,r[1]=f*t+v*h+m*l,r[2]=f*s+v*o+m*p,r[3]=d*n+y*i+u*c,r[4]=d*t+y*h+u*l,r[5]=d*s+y*o+u*p,r[6]=M*n+_*i+b*c,r[7]=M*t+_*h+b*l,r[8]=M*s+_*o+b*p,r}function Ia(r,e,a){var n=e[0],t=e[1],s=e[2],i=e[3],h=e[4],o=e[5],c=e[6],l=e[7],p=e[8],f=a[0],v=a[1];return r[0]=n,r[1]=t,r[2]=s,r[3]=i,r[4]=h,r[5]=o,r[6]=f*n+v*i+c,r[7]=f*t+v*h+l,r[8]=f*s+v*o+p,r}function Ca(r,e,a){var n=e[0],t=e[1],s=e[2],i=e[3],h=e[4],o=e[5],c=e[6],l=e[7],p=e[8],f=Math.sin(a),v=Math.cos(a);return r[0]=v*n+f*i,r[1]=v*t+f*h,r[2]=v*s+f*o,r[3]=v*i-f*n,r[4]=v*h-f*t,r[5]=v*o-f*s,r[6]=c,r[7]=l,r[8]=p,r}function La(r,e,a){var n=a[0],t=a[1];return r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=t*e[3],r[4]=t*e[4],r[5]=t*e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}function Da(r,e){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=e[0],r[7]=e[1],r[8]=1,r}function Ea(r,e){var a=Math.sin(e),n=Math.cos(e);return r[0]=n,r[1]=a,r[2]=0,r[3]=-a,r[4]=n,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function Ta(r,e){return r[0]=e[0],r[1]=0,r[2]=0,r[3]=0,r[4]=e[1],r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function Pa(r,e){return r[0]=e[0],r[1]=e[1],r[2]=0,r[3]=e[2],r[4]=e[3],r[5]=0,r[6]=e[4],r[7]=e[5],r[8]=1,r}function Va(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=a+a,h=n+n,o=t+t,c=a*i,l=n*i,p=n*h,f=t*i,v=t*h,m=t*o,d=s*i,y=s*h,u=s*o;return r[0]=1-p-m,r[3]=l-u,r[6]=f+y,r[1]=l+u,r[4]=1-c-m,r[7]=v-d,r[2]=f-y,r[5]=v+d,r[8]=1-c-p,r}function Oa(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=e[4],h=e[5],o=e[6],c=e[7],l=e[8],p=e[9],f=e[10],v=e[11],m=e[12],d=e[13],y=e[14],u=e[15],M=a*h-n*i,_=a*o-t*i,b=a*c-s*i,g=n*o-t*h,x=n*c-s*h,k=t*c-s*o,w=l*d-p*m,N=l*y-f*m,I=l*u-v*m,P=p*y-f*d,E=p*u-v*d,V=f*u-v*y,z=M*V-_*E+b*P+g*I-x*N+k*w;return z?(z=1/z,r[0]=(h*V-o*E+c*P)*z,r[1]=(o*I-i*V-c*N)*z,r[2]=(i*E-h*I+c*w)*z,r[3]=(t*E-n*V-s*P)*z,r[4]=(a*V-t*I+s*N)*z,r[5]=(n*I-a*E-s*w)*z,r[6]=(d*k-y*x+u*g)*z,r[7]=(y*b-m*k-u*_)*z,r[8]=(m*x-d*b+u*M)*z,r):null}function ja(r,e,a){return r[0]=2/e,r[1]=0,r[2]=0,r[3]=0,r[4]=-2/a,r[5]=0,r[6]=-1,r[7]=1,r[8]=1,r}function Ra(r){return"mat3("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+", "+r[4]+", "+r[5]+", "+r[6]+", "+r[7]+", "+r[8]+")"}function Ba(r){return Math.hypot(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])}function Ua(r,e,a){return r[0]=e[0]+a[0],r[1]=e[1]+a[1],r[2]=e[2]+a[2],r[3]=e[3]+a[3],r[4]=e[4]+a[4],r[5]=e[5]+a[5],r[6]=e[6]+a[6],r[7]=e[7]+a[7],r[8]=e[8]+a[8],r}function oe(r,e,a){return r[0]=e[0]-a[0],r[1]=e[1]-a[1],r[2]=e[2]-a[2],r[3]=e[3]-a[3],r[4]=e[4]-a[4],r[5]=e[5]-a[5],r[6]=e[6]-a[6],r[7]=e[7]-a[7],r[8]=e[8]-a[8],r}function Ya(r,e,a){return r[0]=e[0]*a,r[1]=e[1]*a,r[2]=e[2]*a,r[3]=e[3]*a,r[4]=e[4]*a,r[5]=e[5]*a,r[6]=e[6]*a,r[7]=e[7]*a,r[8]=e[8]*a,r}function Ga(r,e,a,n){return r[0]=e[0]+a[0]*n,r[1]=e[1]+a[1]*n,r[2]=e[2]+a[2]*n,r[3]=e[3]+a[3]*n,r[4]=e[4]+a[4]*n,r[5]=e[5]+a[5]*n,r[6]=e[6]+a[6]*n,r[7]=e[7]+a[7]*n,r[8]=e[8]+a[8]*n,r}function Qa(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]}function $a(r,e){var a=r[0],n=r[1],t=r[2],s=r[3],i=r[4],h=r[5],o=r[6],c=r[7],l=r[8],p=e[0],f=e[1],v=e[2],m=e[3],d=e[4],y=e[5],u=e[6],M=e[7],_=e[8];return Math.abs(a-p)<=q*Math.max(1,Math.abs(a),Math.abs(p))&&Math.abs(n-f)<=q*Math.max(1,Math.abs(n),Math.abs(f))&&Math.abs(t-v)<=q*Math.max(1,Math.abs(t),Math.abs(v))&&Math.abs(s-m)<=q*Math.max(1,Math.abs(s),Math.abs(m))&&Math.abs(i-d)<=q*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(h-y)<=q*Math.max(1,Math.abs(h),Math.abs(y))&&Math.abs(o-u)<=q*Math.max(1,Math.abs(o),Math.abs(u))&&Math.abs(c-M)<=q*Math.max(1,Math.abs(c),Math.abs(M))&&Math.abs(l-_)<=q*Math.max(1,Math.abs(l),Math.abs(_))}var Ha=ie,Wa=oe;var lr={};ur(lr,{add:()=>Dn,adjoint:()=>nn,clone:()=>Xa,copy:()=>Ka,create:()=>Za,determinant:()=>tn,equals:()=>Vn,exactEquals:()=>Pn,frob:()=>Ln,fromQuat:()=>An,fromQuat2:()=>xn,fromRotation:()=>dn,fromRotationTranslation:()=>le,fromRotationTranslationScale:()=>_n,fromRotationTranslationScaleOrigin:()=>bn,fromScaling:()=>yn,fromTranslation:()=>fn,fromValues:()=>Ja,fromXRotation:()=>vn,fromYRotation:()=>mn,fromZRotation:()=>un,frustum:()=>wn,getRotation:()=>Mn,getScaling:()=>pe,getTranslation:()=>gn,identity:()=>he,invert:()=>an,lookAt:()=>Sn,mul:()=>On,multiply:()=>ce,multiplyScalar:()=>En,multiplyScalarAndAdd:()=>Tn,ortho:()=>Nn,orthoNO:()=>ye,orthoZO:()=>Fn,perspective:()=>kn,perspectiveFromFieldOfView:()=>qn,perspectiveNO:()=>fe,perspectiveZO:()=>zn,rotate:()=>hn,rotateX:()=>cn,rotateY:()=>ln,rotateZ:()=>pn,scale:()=>on,set:()=>rn,str:()=>Cn,sub:()=>jn,subtract:()=>de,targetTo:()=>In,translate:()=>sn,transpose:()=>en});function Za(){var r=new T(16);return T!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=0,r[12]=0,r[13]=0,r[14]=0),r[0]=1,r[5]=1,r[10]=1,r[15]=1,r}function Xa(r){var e=new T(16);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[9]=r[9],e[10]=r[10],e[11]=r[11],e[12]=r[12],e[13]=r[13],e[14]=r[14],e[15]=r[15],e}function Ka(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[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function Ja(r,e,a,n,t,s,i,h,o,c,l,p,f,v,m,d){var y=new T(16);return y[0]=r,y[1]=e,y[2]=a,y[3]=n,y[4]=t,y[5]=s,y[6]=i,y[7]=h,y[8]=o,y[9]=c,y[10]=l,y[11]=p,y[12]=f,y[13]=v,y[14]=m,y[15]=d,y}function rn(r,e,a,n,t,s,i,h,o,c,l,p,f,v,m,d,y){return r[0]=e,r[1]=a,r[2]=n,r[3]=t,r[4]=s,r[5]=i,r[6]=h,r[7]=o,r[8]=c,r[9]=l,r[10]=p,r[11]=f,r[12]=v,r[13]=m,r[14]=d,r[15]=y,r}function he(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function en(r,e){if(r===e){var a=e[1],n=e[2],t=e[3],s=e[6],i=e[7],h=e[11];r[1]=e[4],r[2]=e[8],r[3]=e[12],r[4]=a,r[6]=e[9],r[7]=e[13],r[8]=n,r[9]=s,r[11]=e[14],r[12]=t,r[13]=i,r[14]=h}else r[0]=e[0],r[1]=e[4],r[2]=e[8],r[3]=e[12],r[4]=e[1],r[5]=e[5],r[6]=e[9],r[7]=e[13],r[8]=e[2],r[9]=e[6],r[10]=e[10],r[11]=e[14],r[12]=e[3],r[13]=e[7],r[14]=e[11],r[15]=e[15];return r}function an(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=e[4],h=e[5],o=e[6],c=e[7],l=e[8],p=e[9],f=e[10],v=e[11],m=e[12],d=e[13],y=e[14],u=e[15],M=a*h-n*i,_=a*o-t*i,b=a*c-s*i,g=n*o-t*h,x=n*c-s*h,k=t*c-s*o,w=l*d-p*m,N=l*y-f*m,I=l*u-v*m,P=p*y-f*d,E=p*u-v*d,V=f*u-v*y,z=M*V-_*E+b*P+g*I-x*N+k*w;return z?(z=1/z,r[0]=(h*V-o*E+c*P)*z,r[1]=(t*E-n*V-s*P)*z,r[2]=(d*k-y*x+u*g)*z,r[3]=(f*x-p*k-v*g)*z,r[4]=(o*I-i*V-c*N)*z,r[5]=(a*V-t*I+s*N)*z,r[6]=(y*b-m*k-u*_)*z,r[7]=(l*k-f*b+v*_)*z,r[8]=(i*E-h*I+c*w)*z,r[9]=(n*I-a*E-s*w)*z,r[10]=(m*x-d*b+u*M)*z,r[11]=(p*b-l*x-v*M)*z,r[12]=(h*N-i*P-o*w)*z,r[13]=(a*P-n*N+t*w)*z,r[14]=(d*_-m*g-y*M)*z,r[15]=(l*g-p*_+f*M)*z,r):null}function nn(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=e[4],h=e[5],o=e[6],c=e[7],l=e[8],p=e[9],f=e[10],v=e[11],m=e[12],d=e[13],y=e[14],u=e[15];return r[0]=h*(f*u-v*y)-p*(o*u-c*y)+d*(o*v-c*f),r[1]=-(n*(f*u-v*y)-p*(t*u-s*y)+d*(t*v-s*f)),r[2]=n*(o*u-c*y)-h*(t*u-s*y)+d*(t*c-s*o),r[3]=-(n*(o*v-c*f)-h*(t*v-s*f)+p*(t*c-s*o)),r[4]=-(i*(f*u-v*y)-l*(o*u-c*y)+m*(o*v-c*f)),r[5]=a*(f*u-v*y)-l*(t*u-s*y)+m*(t*v-s*f),r[6]=-(a*(o*u-c*y)-i*(t*u-s*y)+m*(t*c-s*o)),r[7]=a*(o*v-c*f)-i*(t*v-s*f)+l*(t*c-s*o),r[8]=i*(p*u-v*d)-l*(h*u-c*d)+m*(h*v-c*p),r[9]=-(a*(p*u-v*d)-l*(n*u-s*d)+m*(n*v-s*p)),r[10]=a*(h*u-c*d)-i*(n*u-s*d)+m*(n*c-s*h),r[11]=-(a*(h*v-c*p)-i*(n*v-s*p)+l*(n*c-s*h)),r[12]=-(i*(p*y-f*d)-l*(h*y-o*d)+m*(h*f-o*p)),r[13]=a*(p*y-f*d)-l*(n*y-t*d)+m*(n*f-t*p),r[14]=-(a*(h*y-o*d)-i*(n*y-t*d)+m*(n*o-t*h)),r[15]=a*(h*f-o*p)-i*(n*f-t*p)+l*(n*o-t*h),r}function tn(r){var e=r[0],a=r[1],n=r[2],t=r[3],s=r[4],i=r[5],h=r[6],o=r[7],c=r[8],l=r[9],p=r[10],f=r[11],v=r[12],m=r[13],d=r[14],y=r[15],u=e*i-a*s,M=e*h-n*s,_=e*o-t*s,b=a*h-n*i,g=a*o-t*i,x=n*o-t*h,k=c*m-l*v,w=c*d-p*v,N=c*y-f*v,I=l*d-p*m,P=l*y-f*m,E=p*y-f*d;return u*E-M*P+_*I+b*N-g*w+x*k}function ce(r,e,a){var n=e[0],t=e[1],s=e[2],i=e[3],h=e[4],o=e[5],c=e[6],l=e[7],p=e[8],f=e[9],v=e[10],m=e[11],d=e[12],y=e[13],u=e[14],M=e[15],_=a[0],b=a[1],g=a[2],x=a[3];return r[0]=_*n+b*h+g*p+x*d,r[1]=_*t+b*o+g*f+x*y,r[2]=_*s+b*c+g*v+x*u,r[3]=_*i+b*l+g*m+x*M,_=a[4],b=a[5],g=a[6],x=a[7],r[4]=_*n+b*h+g*p+x*d,r[5]=_*t+b*o+g*f+x*y,r[6]=_*s+b*c+g*v+x*u,r[7]=_*i+b*l+g*m+x*M,_=a[8],b=a[9],g=a[10],x=a[11],r[8]=_*n+b*h+g*p+x*d,r[9]=_*t+b*o+g*f+x*y,r[10]=_*s+b*c+g*v+x*u,r[11]=_*i+b*l+g*m+x*M,_=a[12],b=a[13],g=a[14],x=a[15],r[12]=_*n+b*h+g*p+x*d,r[13]=_*t+b*o+g*f+x*y,r[14]=_*s+b*c+g*v+x*u,r[15]=_*i+b*l+g*m+x*M,r}function sn(r,e,a){var n=a[0],t=a[1],s=a[2],i,h,o,c,l,p,f,v,m,d,y,u;return e===r?(r[12]=e[0]*n+e[4]*t+e[8]*s+e[12],r[13]=e[1]*n+e[5]*t+e[9]*s+e[13],r[14]=e[2]*n+e[6]*t+e[10]*s+e[14],r[15]=e[3]*n+e[7]*t+e[11]*s+e[15]):(i=e[0],h=e[1],o=e[2],c=e[3],l=e[4],p=e[5],f=e[6],v=e[7],m=e[8],d=e[9],y=e[10],u=e[11],r[0]=i,r[1]=h,r[2]=o,r[3]=c,r[4]=l,r[5]=p,r[6]=f,r[7]=v,r[8]=m,r[9]=d,r[10]=y,r[11]=u,r[12]=i*n+l*t+m*s+e[12],r[13]=h*n+p*t+d*s+e[13],r[14]=o*n+f*t+y*s+e[14],r[15]=c*n+v*t+u*s+e[15]),r}function on(r,e,a){var n=a[0],t=a[1],s=a[2];return r[0]=e[0]*n,r[1]=e[1]*n,r[2]=e[2]*n,r[3]=e[3]*n,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*s,r[9]=e[9]*s,r[10]=e[10]*s,r[11]=e[11]*s,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function hn(r,e,a,n){var t=n[0],s=n[1],i=n[2],h=Math.hypot(t,s,i),o,c,l,p,f,v,m,d,y,u,M,_,b,g,x,k,w,N,I,P,E,V,z,Y;return h<q?null:(h=1/h,t*=h,s*=h,i*=h,o=Math.sin(a),c=Math.cos(a),l=1-c,p=e[0],f=e[1],v=e[2],m=e[3],d=e[4],y=e[5],u=e[6],M=e[7],_=e[8],b=e[9],g=e[10],x=e[11],k=t*t*l+c,w=s*t*l+i*o,N=i*t*l-s*o,I=t*s*l-i*o,P=s*s*l+c,E=i*s*l+t*o,V=t*i*l+s*o,z=s*i*l-t*o,Y=i*i*l+c,r[0]=p*k+d*w+_*N,r[1]=f*k+y*w+b*N,r[2]=v*k+u*w+g*N,r[3]=m*k+M*w+x*N,r[4]=p*I+d*P+_*E,r[5]=f*I+y*P+b*E,r[6]=v*I+u*P+g*E,r[7]=m*I+M*P+x*E,r[8]=p*V+d*z+_*Y,r[9]=f*V+y*z+b*Y,r[10]=v*V+u*z+g*Y,r[11]=m*V+M*z+x*Y,e!==r&&(r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r)}function cn(r,e,a){var n=Math.sin(a),t=Math.cos(a),s=e[4],i=e[5],h=e[6],o=e[7],c=e[8],l=e[9],p=e[10],f=e[11];return e!==r&&(r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[4]=s*t+c*n,r[5]=i*t+l*n,r[6]=h*t+p*n,r[7]=o*t+f*n,r[8]=c*t-s*n,r[9]=l*t-i*n,r[10]=p*t-h*n,r[11]=f*t-o*n,r}function ln(r,e,a){var n=Math.sin(a),t=Math.cos(a),s=e[0],i=e[1],h=e[2],o=e[3],c=e[8],l=e[9],p=e[10],f=e[11];return e!==r&&(r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=s*t-c*n,r[1]=i*t-l*n,r[2]=h*t-p*n,r[3]=o*t-f*n,r[8]=s*n+c*t,r[9]=i*n+l*t,r[10]=h*n+p*t,r[11]=o*n+f*t,r}function pn(r,e,a){var n=Math.sin(a),t=Math.cos(a),s=e[0],i=e[1],h=e[2],o=e[3],c=e[4],l=e[5],p=e[6],f=e[7];return e!==r&&(r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=s*t+c*n,r[1]=i*t+l*n,r[2]=h*t+p*n,r[3]=o*t+f*n,r[4]=c*t-s*n,r[5]=l*t-i*n,r[6]=p*t-h*n,r[7]=f*t-o*n,r}function fn(r,e){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=e[0],r[13]=e[1],r[14]=e[2],r[15]=1,r}function yn(r,e){return r[0]=e[0],r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=e[1],r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=e[2],r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function dn(r,e,a){var n=a[0],t=a[1],s=a[2],i=Math.hypot(n,t,s),h,o,c;return i<q?null:(i=1/i,n*=i,t*=i,s*=i,h=Math.sin(e),o=Math.cos(e),c=1-o,r[0]=n*n*c+o,r[1]=t*n*c+s*h,r[2]=s*n*c-t*h,r[3]=0,r[4]=n*t*c-s*h,r[5]=t*t*c+o,r[6]=s*t*c+n*h,r[7]=0,r[8]=n*s*c+t*h,r[9]=t*s*c-n*h,r[10]=s*s*c+o,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r)}function vn(r,e){var a=Math.sin(e),n=Math.cos(e);return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=n,r[6]=a,r[7]=0,r[8]=0,r[9]=-a,r[10]=n,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function mn(r,e){var a=Math.sin(e),n=Math.cos(e);return r[0]=n,r[1]=0,r[2]=-a,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=a,r[9]=0,r[10]=n,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function un(r,e){var a=Math.sin(e),n=Math.cos(e);return r[0]=n,r[1]=a,r[2]=0,r[3]=0,r[4]=-a,r[5]=n,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function le(r,e,a){var n=e[0],t=e[1],s=e[2],i=e[3],h=n+n,o=t+t,c=s+s,l=n*h,p=n*o,f=n*c,v=t*o,m=t*c,d=s*c,y=i*h,u=i*o,M=i*c;return r[0]=1-(v+d),r[1]=p+M,r[2]=f-u,r[3]=0,r[4]=p-M,r[5]=1-(l+d),r[6]=m+y,r[7]=0,r[8]=f+u,r[9]=m-y,r[10]=1-(l+v),r[11]=0,r[12]=a[0],r[13]=a[1],r[14]=a[2],r[15]=1,r}function xn(r,e){var a=new T(3),n=-e[0],t=-e[1],s=-e[2],i=e[3],h=e[4],o=e[5],c=e[6],l=e[7],p=n*n+t*t+s*s+i*i;return p>0?(a[0]=(h*i+l*n+o*s-c*t)*2/p,a[1]=(o*i+l*t+c*n-h*s)*2/p,a[2]=(c*i+l*s+h*t-o*n)*2/p):(a[0]=(h*i+l*n+o*s-c*t)*2,a[1]=(o*i+l*t+c*n-h*s)*2,a[2]=(c*i+l*s+h*t-o*n)*2),le(r,e,a),r}function gn(r,e){return r[0]=e[12],r[1]=e[13],r[2]=e[14],r}function pe(r,e){var a=e[0],n=e[1],t=e[2],s=e[4],i=e[5],h=e[6],o=e[8],c=e[9],l=e[10];return r[0]=Math.hypot(a,n,t),r[1]=Math.hypot(s,i,h),r[2]=Math.hypot(o,c,l),r}function Mn(r,e){var a=new T(3);pe(a,e);var n=1/a[0],t=1/a[1],s=1/a[2],i=e[0]*n,h=e[1]*t,o=e[2]*s,c=e[4]*n,l=e[5]*t,p=e[6]*s,f=e[8]*n,v=e[9]*t,m=e[10]*s,d=i+l+m,y=0;return d>0?(y=Math.sqrt(d+1)*2,r[3]=.25*y,r[0]=(p-v)/y,r[1]=(f-o)/y,r[2]=(h-c)/y):i>l&&i>m?(y=Math.sqrt(1+i-l-m)*2,r[3]=(p-v)/y,r[0]=.25*y,r[1]=(h+c)/y,r[2]=(f+o)/y):l>m?(y=Math.sqrt(1+l-i-m)*2,r[3]=(f-o)/y,r[0]=(h+c)/y,r[1]=.25*y,r[2]=(p+v)/y):(y=Math.sqrt(1+m-i-l)*2,r[3]=(h-c)/y,r[0]=(f+o)/y,r[1]=(p+v)/y,r[2]=.25*y),r}function _n(r,e,a,n){var t=e[0],s=e[1],i=e[2],h=e[3],o=t+t,c=s+s,l=i+i,p=t*o,f=t*c,v=t*l,m=s*c,d=s*l,y=i*l,u=h*o,M=h*c,_=h*l,b=n[0],g=n[1],x=n[2];return r[0]=(1-(m+y))*b,r[1]=(f+_)*b,r[2]=(v-M)*b,r[3]=0,r[4]=(f-_)*g,r[5]=(1-(p+y))*g,r[6]=(d+u)*g,r[7]=0,r[8]=(v+M)*x,r[9]=(d-u)*x,r[10]=(1-(p+m))*x,r[11]=0,r[12]=a[0],r[13]=a[1],r[14]=a[2],r[15]=1,r}function bn(r,e,a,n,t){var s=e[0],i=e[1],h=e[2],o=e[3],c=s+s,l=i+i,p=h+h,f=s*c,v=s*l,m=s*p,d=i*l,y=i*p,u=h*p,M=o*c,_=o*l,b=o*p,g=n[0],x=n[1],k=n[2],w=t[0],N=t[1],I=t[2],P=(1-(d+u))*g,E=(v+b)*g,V=(m-_)*g,z=(v-b)*x,Y=(1-(f+u))*x,or=(y+M)*x,hr=(m+_)*k,Sr=(y-M)*k,Ir=(1-(f+d))*k;return r[0]=P,r[1]=E,r[2]=V,r[3]=0,r[4]=z,r[5]=Y,r[6]=or,r[7]=0,r[8]=hr,r[9]=Sr,r[10]=Ir,r[11]=0,r[12]=a[0]+w-(P*w+z*N+hr*I),r[13]=a[1]+N-(E*w+Y*N+Sr*I),r[14]=a[2]+I-(V*w+or*N+Ir*I),r[15]=1,r}function An(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=a+a,h=n+n,o=t+t,c=a*i,l=n*i,p=n*h,f=t*i,v=t*h,m=t*o,d=s*i,y=s*h,u=s*o;return r[0]=1-p-m,r[1]=l+u,r[2]=f-y,r[3]=0,r[4]=l-u,r[5]=1-c-m,r[6]=v+d,r[7]=0,r[8]=f+y,r[9]=v-d,r[10]=1-c-p,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function wn(r,e,a,n,t,s,i){var h=1/(a-e),o=1/(t-n),c=1/(s-i);return r[0]=s*2*h,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=s*2*o,r[6]=0,r[7]=0,r[8]=(a+e)*h,r[9]=(t+n)*o,r[10]=(i+s)*c,r[11]=-1,r[12]=0,r[13]=0,r[14]=i*s*2*c,r[15]=0,r}function fe(r,e,a,n,t){var s=1/Math.tan(e/2),i;return r[0]=s/a,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=s,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,t!=null&&t!==1/0?(i=1/(n-t),r[10]=(t+n)*i,r[14]=2*t*n*i):(r[10]=-1,r[14]=-2*n),r}var kn=fe;function zn(r,e,a,n,t){var s=1/Math.tan(e/2),i;return r[0]=s/a,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=s,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,t!=null&&t!==1/0?(i=1/(n-t),r[10]=t*i,r[14]=t*n*i):(r[10]=-1,r[14]=-n),r}function qn(r,e,a,n){var t=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),i=Math.tan(e.leftDegrees*Math.PI/180),h=Math.tan(e.rightDegrees*Math.PI/180),o=2/(i+h),c=2/(t+s);return r[0]=o,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=c,r[6]=0,r[7]=0,r[8]=-((i-h)*o*.5),r[9]=(t-s)*c*.5,r[10]=n/(a-n),r[11]=-1,r[12]=0,r[13]=0,r[14]=n*a/(a-n),r[15]=0,r}function ye(r,e,a,n,t,s,i){var h=1/(e-a),o=1/(n-t),c=1/(s-i);return r[0]=-2*h,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*o,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=2*c,r[11]=0,r[12]=(e+a)*h,r[13]=(t+n)*o,r[14]=(i+s)*c,r[15]=1,r}var Nn=ye;function Fn(r,e,a,n,t,s,i){var h=1/(e-a),o=1/(n-t),c=1/(s-i);return r[0]=-2*h,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*o,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=c,r[11]=0,r[12]=(e+a)*h,r[13]=(t+n)*o,r[14]=s*c,r[15]=1,r}function Sn(r,e,a,n){var t,s,i,h,o,c,l,p,f,v,m=e[0],d=e[1],y=e[2],u=n[0],M=n[1],_=n[2],b=a[0],g=a[1],x=a[2];return Math.abs(m-b)<q&&Math.abs(d-g)<q&&Math.abs(y-x)<q?he(r):(l=m-b,p=d-g,f=y-x,v=1/Math.hypot(l,p,f),l*=v,p*=v,f*=v,t=M*f-_*p,s=_*l-u*f,i=u*p-M*l,v=Math.hypot(t,s,i),v?(v=1/v,t*=v,s*=v,i*=v):(t=0,s=0,i=0),h=p*i-f*s,o=f*t-l*i,c=l*s-p*t,v=Math.hypot(h,o,c),v?(v=1/v,h*=v,o*=v,c*=v):(h=0,o=0,c=0),r[0]=t,r[1]=h,r[2]=l,r[3]=0,r[4]=s,r[5]=o,r[6]=p,r[7]=0,r[8]=i,r[9]=c,r[10]=f,r[11]=0,r[12]=-(t*m+s*d+i*y),r[13]=-(h*m+o*d+c*y),r[14]=-(l*m+p*d+f*y),r[15]=1,r)}function In(r,e,a,n){var t=e[0],s=e[1],i=e[2],h=n[0],o=n[1],c=n[2],l=t-a[0],p=s-a[1],f=i-a[2],v=l*l+p*p+f*f;v>0&&(v=1/Math.sqrt(v),l*=v,p*=v,f*=v);var m=o*f-c*p,d=c*l-h*f,y=h*p-o*l;return v=m*m+d*d+y*y,v>0&&(v=1/Math.sqrt(v),m*=v,d*=v,y*=v),r[0]=m,r[1]=d,r[2]=y,r[3]=0,r[4]=p*y-f*d,r[5]=f*m-l*y,r[6]=l*d-p*m,r[7]=0,r[8]=l,r[9]=p,r[10]=f,r[11]=0,r[12]=t,r[13]=s,r[14]=i,r[15]=1,r}function Cn(r){return"mat4("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+", "+r[4]+", "+r[5]+", "+r[6]+", "+r[7]+", "+r[8]+", "+r[9]+", "+r[10]+", "+r[11]+", "+r[12]+", "+r[13]+", "+r[14]+", "+r[15]+")"}function Ln(r){return Math.hypot(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15])}function Dn(r,e,a){return r[0]=e[0]+a[0],r[1]=e[1]+a[1],r[2]=e[2]+a[2],r[3]=e[3]+a[3],r[4]=e[4]+a[4],r[5]=e[5]+a[5],r[6]=e[6]+a[6],r[7]=e[7]+a[7],r[8]=e[8]+a[8],r[9]=e[9]+a[9],r[10]=e[10]+a[10],r[11]=e[11]+a[11],r[12]=e[12]+a[12],r[13]=e[13]+a[13],r[14]=e[14]+a[14],r[15]=e[15]+a[15],r}function de(r,e,a){return r[0]=e[0]-a[0],r[1]=e[1]-a[1],r[2]=e[2]-a[2],r[3]=e[3]-a[3],r[4]=e[4]-a[4],r[5]=e[5]-a[5],r[6]=e[6]-a[6],r[7]=e[7]-a[7],r[8]=e[8]-a[8],r[9]=e[9]-a[9],r[10]=e[10]-a[10],r[11]=e[11]-a[11],r[12]=e[12]-a[12],r[13]=e[13]-a[13],r[14]=e[14]-a[14],r[15]=e[15]-a[15],r}function En(r,e,a){return r[0]=e[0]*a,r[1]=e[1]*a,r[2]=e[2]*a,r[3]=e[3]*a,r[4]=e[4]*a,r[5]=e[5]*a,r[6]=e[6]*a,r[7]=e[7]*a,r[8]=e[8]*a,r[9]=e[9]*a,r[10]=e[10]*a,r[11]=e[11]*a,r[12]=e[12]*a,r[13]=e[13]*a,r[14]=e[14]*a,r[15]=e[15]*a,r}function Tn(r,e,a,n){return r[0]=e[0]+a[0]*n,r[1]=e[1]+a[1]*n,r[2]=e[2]+a[2]*n,r[3]=e[3]+a[3]*n,r[4]=e[4]+a[4]*n,r[5]=e[5]+a[5]*n,r[6]=e[6]+a[6]*n,r[7]=e[7]+a[7]*n,r[8]=e[8]+a[8]*n,r[9]=e[9]+a[9]*n,r[10]=e[10]+a[10]*n,r[11]=e[11]+a[11]*n,r[12]=e[12]+a[12]*n,r[13]=e[13]+a[13]*n,r[14]=e[14]+a[14]*n,r[15]=e[15]+a[15]*n,r}function Pn(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[9]===e[9]&&r[10]===e[10]&&r[11]===e[11]&&r[12]===e[12]&&r[13]===e[13]&&r[14]===e[14]&&r[15]===e[15]}function Vn(r,e){var a=r[0],n=r[1],t=r[2],s=r[3],i=r[4],h=r[5],o=r[6],c=r[7],l=r[8],p=r[9],f=r[10],v=r[11],m=r[12],d=r[13],y=r[14],u=r[15],M=e[0],_=e[1],b=e[2],g=e[3],x=e[4],k=e[5],w=e[6],N=e[7],I=e[8],P=e[9],E=e[10],V=e[11],z=e[12],Y=e[13],or=e[14],hr=e[15];return Math.abs(a-M)<=q*Math.max(1,Math.abs(a),Math.abs(M))&&Math.abs(n-_)<=q*Math.max(1,Math.abs(n),Math.abs(_))&&Math.abs(t-b)<=q*Math.max(1,Math.abs(t),Math.abs(b))&&Math.abs(s-g)<=q*Math.max(1,Math.abs(s),Math.abs(g))&&Math.abs(i-x)<=q*Math.max(1,Math.abs(i),Math.abs(x))&&Math.abs(h-k)<=q*Math.max(1,Math.abs(h),Math.abs(k))&&Math.abs(o-w)<=q*Math.max(1,Math.abs(o),Math.abs(w))&&Math.abs(c-N)<=q*Math.max(1,Math.abs(c),Math.abs(N))&&Math.abs(l-I)<=q*Math.max(1,Math.abs(l),Math.abs(I))&&Math.abs(p-P)<=q*Math.max(1,Math.abs(p),Math.abs(P))&&Math.abs(f-E)<=q*Math.max(1,Math.abs(f),Math.abs(E))&&Math.abs(v-V)<=q*Math.max(1,Math.abs(v),Math.abs(V))&&Math.abs(m-z)<=q*Math.max(1,Math.abs(m),Math.abs(z))&&Math.abs(d-Y)<=q*Math.max(1,Math.abs(d),Math.abs(Y))&&Math.abs(y-or)<=q*Math.max(1,Math.abs(y),Math.abs(or))&&Math.abs(u-hr)<=q*Math.max(1,Math.abs(u),Math.abs(hr))}var On=ce,jn=de;var pr={};ur(pr,{add:()=>ht,calculateW:()=>Xn,clone:()=>tt,conjugate:()=>et,copy:()=>it,create:()=>Nr,dot:()=>Pe,equals:()=>dt,exactEquals:()=>yt,exp:()=>Le,fromEuler:()=>at,fromMat3:()=>Ee,fromValues:()=>st,getAngle:()=>$n,getAxisAngle:()=>Qn,identity:()=>Gn,invert:()=>rt,len:()=>pt,length:()=>Ve,lerp:()=>lt,ln:()=>De,mul:()=>ct,multiply:()=>Ce,normalize:()=>Fr,pow:()=>Kn,random:()=>Jn,rotateX:()=>Hn,rotateY:()=>Wn,rotateZ:()=>Zn,rotationTo:()=>vt,scale:()=>Te,set:()=>ot,setAxes:()=>ut,setAxisAngle:()=>Ie,slerp:()=>mr,sqlerp:()=>mt,sqrLen:()=>ft,squaredLength:()=>Oe,str:()=>nt});function zr(){var r=new T(3);return T!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function Rn(r){var e=r[0],a=r[1],n=r[2];return Math.hypot(e,a,n)}function qr(r,e,a){var n=new T(3);return n[0]=r,n[1]=e,n[2]=a,n}function ve(r,e){var a=e[0],n=e[1],t=e[2],s=a*a+n*n+t*t;return s>0&&(s=1/Math.sqrt(s)),r[0]=e[0]*s,r[1]=e[1]*s,r[2]=e[2]*s,r}function me(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]}function vr(r,e,a){var n=e[0],t=e[1],s=e[2],i=a[0],h=a[1],o=a[2];return r[0]=t*o-s*h,r[1]=s*i-n*o,r[2]=n*h-t*i,r}var ue=Rn;var Zt=function(){var r=zr();return function(e,a,n,t,s,i){var h,o;for(a||(a=3),n||(n=0),t?o=Math.min(t*a+n,e.length):o=e.length,h=n;h<o;h+=a)r[0]=e[h],r[1]=e[h+1],r[2]=e[h+2],s(r,r,i),e[h]=r[0],e[h+1]=r[1],e[h+2]=r[2];return e}}();function Un(){var r=new T(4);return T!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0,r[3]=0),r}function xe(r){var e=new T(4);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e}function ge(r,e,a,n){var t=new T(4);return t[0]=r,t[1]=e,t[2]=a,t[3]=n,t}function Me(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r}function _e(r,e,a,n,t){return r[0]=e,r[1]=a,r[2]=n,r[3]=t,r}function be(r,e,a){return r[0]=e[0]+a[0],r[1]=e[1]+a[1],r[2]=e[2]+a[2],r[3]=e[3]+a[3],r}function Ae(r,e,a){return r[0]=e[0]*a,r[1]=e[1]*a,r[2]=e[2]*a,r[3]=e[3]*a,r}function we(r){var e=r[0],a=r[1],n=r[2],t=r[3];return Math.hypot(e,a,n,t)}function ke(r){var e=r[0],a=r[1],n=r[2],t=r[3];return e*e+a*a+n*n+t*t}function ze(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=a*a+n*n+t*t+s*s;return i>0&&(i=1/Math.sqrt(i)),r[0]=a*i,r[1]=n*i,r[2]=t*i,r[3]=s*i,r}function qe(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]*e[3]}function Ne(r,e,a,n){var t=e[0],s=e[1],i=e[2],h=e[3];return r[0]=t+n*(a[0]-t),r[1]=s+n*(a[1]-s),r[2]=i+n*(a[2]-i),r[3]=h+n*(a[3]-h),r}function Fe(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]}function Se(r,e){var a=r[0],n=r[1],t=r[2],s=r[3],i=e[0],h=e[1],o=e[2],c=e[3];return Math.abs(a-i)<=q*Math.max(1,Math.abs(a),Math.abs(i))&&Math.abs(n-h)<=q*Math.max(1,Math.abs(n),Math.abs(h))&&Math.abs(t-o)<=q*Math.max(1,Math.abs(t),Math.abs(o))&&Math.abs(s-c)<=q*Math.max(1,Math.abs(s),Math.abs(c))}var Xt=function(){var r=Un();return function(e,a,n,t,s,i){var h,o;for(a||(a=4),n||(n=0),t?o=Math.min(t*a+n,e.length):o=e.length,h=n;h<o;h+=a)r[0]=e[h],r[1]=e[h+1],r[2]=e[h+2],r[3]=e[h+3],s(r,r,i),e[h]=r[0],e[h+1]=r[1],e[h+2]=r[2],e[h+3]=r[3];return e}}();function Nr(){var r=new T(4);return T!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r[3]=1,r}function Gn(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=1,r}function Ie(r,e,a){a=a*.5;var n=Math.sin(a);return r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=Math.cos(a),r}function Qn(r,e){var a=Math.acos(e[3])*2,n=Math.sin(a/2);return n>q?(r[0]=e[0]/n,r[1]=e[1]/n,r[2]=e[2]/n):(r[0]=1,r[1]=0,r[2]=0),a}function $n(r,e){var a=Pe(r,e);return Math.acos(2*a*a-1)}function Ce(r,e,a){var n=e[0],t=e[1],s=e[2],i=e[3],h=a[0],o=a[1],c=a[2],l=a[3];return r[0]=n*l+i*h+t*c-s*o,r[1]=t*l+i*o+s*h-n*c,r[2]=s*l+i*c+n*o-t*h,r[3]=i*l-n*h-t*o-s*c,r}function Hn(r,e,a){a*=.5;var n=e[0],t=e[1],s=e[2],i=e[3],h=Math.sin(a),o=Math.cos(a);return r[0]=n*o+i*h,r[1]=t*o+s*h,r[2]=s*o-t*h,r[3]=i*o-n*h,r}function Wn(r,e,a){a*=.5;var n=e[0],t=e[1],s=e[2],i=e[3],h=Math.sin(a),o=Math.cos(a);return r[0]=n*o-s*h,r[1]=t*o+i*h,r[2]=s*o+n*h,r[3]=i*o-t*h,r}function Zn(r,e,a){a*=.5;var n=e[0],t=e[1],s=e[2],i=e[3],h=Math.sin(a),o=Math.cos(a);return r[0]=n*o+t*h,r[1]=t*o-n*h,r[2]=s*o+i*h,r[3]=i*o-s*h,r}function Xn(r,e){var a=e[0],n=e[1],t=e[2];return r[0]=a,r[1]=n,r[2]=t,r[3]=Math.sqrt(Math.abs(1-a*a-n*n-t*t)),r}function Le(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=Math.sqrt(a*a+n*n+t*t),h=Math.exp(s),o=i>0?h*Math.sin(i)/i:0;return r[0]=a*o,r[1]=n*o,r[2]=t*o,r[3]=h*Math.cos(i),r}function De(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=Math.sqrt(a*a+n*n+t*t),h=i>0?Math.atan2(i,s)/i:0;return r[0]=a*h,r[1]=n*h,r[2]=t*h,r[3]=.5*Math.log(a*a+n*n+t*t+s*s),r}function Kn(r,e,a){return De(r,e),Te(r,r,a),Le(r,r),r}function mr(r,e,a,n){var t=e[0],s=e[1],i=e[2],h=e[3],o=a[0],c=a[1],l=a[2],p=a[3],f,v,m,d,y;return v=t*o+s*c+i*l+h*p,v<0&&(v=-v,o=-o,c=-c,l=-l,p=-p),1-v>q?(f=Math.acos(v),m=Math.sin(f),d=Math.sin((1-n)*f)/m,y=Math.sin(n*f)/m):(d=1-n,y=n),r[0]=d*t+y*o,r[1]=d*s+y*c,r[2]=d*i+y*l,r[3]=d*h+y*p,r}function Jn(r){var e=ir(),a=ir(),n=ir(),t=Math.sqrt(1-e),s=Math.sqrt(e);return r[0]=t*Math.sin(2*Math.PI*a),r[1]=t*Math.cos(2*Math.PI*a),r[2]=s*Math.sin(2*Math.PI*n),r[3]=s*Math.cos(2*Math.PI*n),r}function rt(r,e){var a=e[0],n=e[1],t=e[2],s=e[3],i=a*a+n*n+t*t+s*s,h=i?1/i:0;return r[0]=-a*h,r[1]=-n*h,r[2]=-t*h,r[3]=s*h,r}function et(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r[3]=e[3],r}function Ee(r,e){var a=e[0]+e[4]+e[8],n;if(a>0)n=Math.sqrt(a+1),r[3]=.5*n,n=.5/n,r[0]=(e[5]-e[7])*n,r[1]=(e[6]-e[2])*n,r[2]=(e[1]-e[3])*n;else{var t=0;e[4]>e[0]&&(t=1),e[8]>e[t*3+t]&&(t=2);var s=(t+1)%3,i=(t+2)%3;n=Math.sqrt(e[t*3+t]-e[s*3+s]-e[i*3+i]+1),r[t]=.5*n,n=.5/n,r[3]=(e[s*3+i]-e[i*3+s])*n,r[s]=(e[s*3+t]+e[t*3+s])*n,r[i]=(e[i*3+t]+e[t*3+i])*n}return r}function at(r,e,a,n){var t=.5*Math.PI/180;e*=t,a*=t,n*=t;var s=Math.sin(e),i=Math.cos(e),h=Math.sin(a),o=Math.cos(a),c=Math.sin(n),l=Math.cos(n);return r[0]=s*o*l-i*h*c,r[1]=i*h*l+s*o*c,r[2]=i*o*c-s*h*l,r[3]=i*o*l+s*h*c,r}function nt(r){return"quat("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+")"}var tt=xe,st=ge,it=Me,ot=_e,ht=be,ct=Ce,Te=Ae,Pe=qe,lt=Ne,Ve=we,pt=Ve,Oe=ke,ft=Oe,Fr=ze,yt=Fe,dt=Se,vt=function(){var r=zr(),e=qr(1,0,0),a=qr(0,1,0);return function(n,t,s){var i=me(t,s);return i<-.999999?(vr(r,e,t),ue(r)<1e-6&&vr(r,a,t),ve(r,r),Ie(n,r,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(vr(r,t,s),n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=1+i,Fr(n,n))}}(),mt=function(){var r=Nr(),e=Nr();return function(a,n,t,s,i,h){return mr(r,n,i,h),mr(e,t,s,h),mr(a,r,e,2*h*(1-h)),a}}(),ut=function(){var r=kr();return function(e,a,n,t){return r[0]=n[0],r[3]=n[1],r[6]=n[2],r[1]=t[0],r[4]=t[1],r[7]=t[2],r[2]=-a[0],r[5]=-a[1],r[8]=-a[2],Fr(e,Ee(e,r))}}();var je={xyz:3,color:3,opacity:1,scaling:3,quaternion:4,harmonics:3},nr=class{constructor(e){this._buffer=e}get buffer(){return this._buffer}get decoded(){return this._decoded||(this._decoded=this.decodeBuffer()),this._decoded}get colorsA(){let e=.28209479177387814,a=this.decoded.color.denormDequant(),n=this.decoded.opacity.denormDequant(),t=(0,ar.default)(new Float32Array(a.shape[0]*4),[a.shape[0],4]);return R.mulseq(a,e),R.addseq(a,.5),R.mulseq(a,255),R.maxseq(a,0),R.minseq(a,255),R.negeq(n),R.expeq(n),R.addseq(n,1),R.recipeq(n),R.mulseq(n,255),R.assign(t.hi(a.shape[0],3).lo(0,0),a),R.assign(t.hi(a.shape[0],4).lo(0,3),n),(0,ar.default)(new Uint8Array(t.data),[a.shape[0],4]).data}get nsplats(){return this.decoded.nsplats}getSplatCount(){return this.decoded.nsplats}get precomputedCovarianceBufferData(){return this._precomputedCovarianceBufferData}decodeBuffer(){let{splatCount:e,chunkCount:a,chunkSize:n,typeChunks:t,vertexData:s,propertiesDesc:i}=this.decodeHeader(),h={xyz:i.xyz.compressionMethod,color:i.color.compressionMethod,opacity:i.opacity.compressionMethod,scaling:i.scaling.compressionMethod,quaternion:i.quaternion.compressionMethod,chunkSize:n};i.harmonics_0&&(h.harmonics=i.harmonics_0.compressionMethod);let o=s.byteOffset,c=Array(Object.keys(i).length);for(let u in i)c[i[u].index]={name:u,method:i[u].compressionMethod};let l=a*2*4,p=o,f=t==="dynamic"?a*2:0,v,m=!1;if(f>0){let u=new Uint16Array(s.buffer.slice(p,p+f));p+=f,v=Array.from(u),m=!0}let d={};for(let u of c){let M=0,_=!0;if(u.method==="norm8x")M=e*1*je[u.name];else if(u.method==="norm11")M=e*4;else if(u.method==="norm565")M=e*2;else throw _=!1,new Error(`Not Implemented format: ${u.method}`);let b;if(_){let k=s.buffer.slice(p,p+l);b=(0,ar.default)(new Float32Array(k),[a,2]),p+=l}else throw new Error("loading chunk byt hasnot minmax!");let g=s.buffer.slice(p,p+M);p+=M;let x;if(u.method==="norm8x")x=(0,ar.default)(new Uint8Array(g),[e,je[u.name]]);else if(u.method==="norm11")x=(0,ar.default)(new Uint32Array(g));else if(u.method==="norm565")x=(0,ar.default)(new Uint16Array(g));else throw new Error(`Not Implemented format: ${u.method}`);d[u.name]=new D(x,b,n,u.method,v,m)}let y=[];for(let u=0;u<15;u++){let M=d[`harmonics_${u}`];M&&(y.push(M),delete d[`harmonics_${u}`])}return y.length>0&&(d.harmonics=y),new X(h,d.xyz,d.scaling,d.color,d.opacity,d.quaternion,d.harmonics,v)}buildPreComputedBuffers(){let n=this.decoded,t=n.nsplats,s=new ArrayBuffer(24*t),i=new Float32Array(s),h=n.scaling.denormDequant(),o=n.quaternion.denormDequant(),c=pr.create(),l=W.create(),p=W.create(),f=W.create(),v=lr.create();for(let m=0;m<t;m++){lr.fromScaling(v,[Math.exp(h.get(m,0)),Math.exp(h.get(m,1)),Math.exp(h.get(m,2))]),W.fromMat4(p,v),pr.set(c,o.get(m,0),o.get(m,1),o.get(m,2),o.get(m,3)),W.fromQuat(l,c),W.multiply(f,l,p);let d=f;i[6*m]=d[0]*d[0]+d[3]*d[3]+d[6]*d[6],i[6*m+1]=d[0]*d[1]+d[3]*d[4]+d[6]*d[7],i[6*m+2]=d[0]*d[2]+d[3]*d[5]+d[6]*d[8],i[6*m+3]=d[1]*d[1]+d[4]*d[4]+d[7]*d[7],i[6*m+4]=d[1]*d[2]+d[4]*d[5]+d[7]*d[8],i[6*m+5]=d[2]*d[2]+d[5]*d[5]+d[8]*d[8]}this._precomputedCovarianceBufferData=s}decodeHeader(){let e=this._buffer,a=new TextDecoder,n=0,t="",s=100;for(;;){if(n+s>=e.byteLength)throw new Error("End of file reached while searching for end of header");let d=new Uint8Array(e,n,s);t+=a.decode(d),n+=s;let y=n-s*2,u=new Uint8Array(e,Math.max(0,y),y>=0?s*2:s);if(a.decode(u).includes("end_header"))break}let i=t.split(`
|
|
22
|
+
`),h=0,o=0,c=0,l=0,p="",f={};for(let d=0;d<i.length;d++){let y=i[d].trim();if(y.startsWith("element vertex")){let u=y.match(/\d+/);u&&(h=parseInt(u[0]))}else if(y.startsWith("property")){let u=y.match(/(\w+)\s+(\w+)\s+(\w+)/);if(u){let M=u[2],_=u[3];f[M]={compressionMethod:_,index:l},l++}}else if(y.startsWith("element chunks")){let u=y.match(/\d+/);u&&(o=parseInt(u[0]))}else if(y.startsWith("element chunkSize")){let u=y.match(/\d+/);u&&(c=parseInt(u[0]))}else if(y.startsWith("element typeChunks")){let u=y.match(/(\w+)\s+(\w+)\s+(\w+)/);u&&(p=u[3])}else if(y==="end_header")break}let v=t.indexOf("end_header")+10+1,m=new DataView(e,v);return{splatCount:h,chunkCount:o,chunkSize:c,typeChunks:p,vertexData:m,propertiesDesc:f}}pruneSplats(e){let n=this.decodeBuffer().pruneSplats(e);return nr.fromCompressedGaussianSplats(n)}static fromCompressedGaussianSplats(e){let a=e.xyz.length,n=e.xyz.nchunks,t=`gspline
|
|
23
|
+
element vertex ${a}
|
|
24
|
+
element chunks ${n}
|
|
25
|
+
element chunkSize ${e.chunkSize}
|
|
26
|
+
element typeChunks ${e.isDynamicChunks?"dynamic":"static"}
|
|
27
|
+
property xyz ${e.xyz.method}
|
|
28
|
+
property color ${e.color.method}
|
|
29
|
+
property opacity ${e.opacity.method}
|
|
30
|
+
property scaling ${e.scaling.method}
|
|
31
|
+
property quaternion ${e.quaternion.method}`;if(e.harmonics&&e.harmonics.length>0)for(let N=0;N<e.harmonics.length;N++)t=`${t}
|
|
32
|
+
property harmonics_${N} ${e.harmonics[N].method}`;t=`${t}
|
|
33
|
+
end_header
|
|
34
|
+
`;let i=new TextEncoder().encode(t),h=n*2*4,o=e.xyz.quantized.data.buffer.byteLength,c=e.xyz instanceof D?h:0,l=e.color.quantized.data.buffer.byteLength,p=e.color instanceof D?h:0,f=e.opacity.quantized.data.buffer.byteLength,v=e.opacity instanceof D?h:0,m=e.scaling.quantized.data.buffer.byteLength,d=e.scaling instanceof D?h:0,y=e.quaternion.quantized.data.buffer.byteLength,u=e.quaternion instanceof D?h:0,M=e.variableChunkSize?Uint16Array.from(e.variableChunkSize):void 0,_=M?M.byteLength:0,b=i.byteLength+_+o+c+l+p+f+v+m+d+y+u,g=0,x=0;if(e.harmonics&&e.harmonics.length>0)for(let N=0;N<e.harmonics.length;N++)g+=e.harmonics[N].quantized.data.buffer.byteLength,x+=e.harmonics[N]instanceof D?h:0;g=0,x=0,b+=g+x;let k=new Uint8Array(b),w=0;if(k.set(i,w),w+=i.byteLength,_>0&&(k.set(new Uint8Array(M.buffer),w),w+=_),e.xyz instanceof D&&(k.set(new Uint8Array(e.xyz.minmaxMatrix.data.buffer),w),w+=h),k.set(new Uint8Array(e.xyz.quantized.data.buffer),w),w+=o,e.color instanceof D&&(k.set(new Uint8Array(e.color.minmaxMatrix.data.buffer),w),w+=h),k.set(new Uint8Array(e.color.quantized.data.buffer),w),w+=l,e.opacity instanceof D&&(k.set(new Uint8Array(e.opacity.minmaxMatrix.data.buffer),w),w+=h),k.set(new Uint8Array(e.opacity.quantized.data.buffer),w),w+=f,e.scaling instanceof D&&(k.set(new Uint8Array(e.scaling.minmaxMatrix.data.buffer),w),w+=h),k.set(new Uint8Array(e.scaling.quantized.data.buffer),w),w+=m,e.quaternion instanceof D&&(k.set(new Uint8Array(e.quaternion.minmaxMatrix.data.buffer),w),w+=h),k.set(new Uint8Array(e.quaternion.quantized.data.buffer),w),w+=y,g>0&&e.harmonics&&e.harmonics.length>0)for(let N=0;N<e.harmonics.length;N++){let I=e.harmonics[N];I instanceof D&&(k.set(new Uint8Array(I.minmaxMatrix.data.buffer),w),w+=h),k.set(new Uint8Array(I.quantized.data.buffer),w),w+=I.quantized.data.byteLength}return new nr(k.buffer)}};export{X as CompressedGaussianSplats,nr as GSplineBuffer,U as GaussianPLYData};
|
package/build/howler.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! howler.js v2.2.3 | (c) 2013-2020, James Simpson of GoldFire Studios | MIT License | howlerjs.com */
|
|
2
|
+
!function(){"use strict";var e=function(){this.init()};e.prototype={init:function(){var e=this||n;return e._counter=1e3,e._html5AudioPool=[],e.html5PoolSize=10,e._codecs={},e._howls=[],e._muted=!1,e._volume=1,e._canPlayEvent="canplaythrough",e._navigator="undefined"!=typeof window&&window.navigator?window.navigator:null,e.masterGain=null,e.noAudio=!1,e.usingWebAudio=!0,e.autoSuspend=!0,e.ctx=null,e.autoUnlock=!0,e._setup(),e},volume:function(e){var o=this||n;if(e=parseFloat(e),o.ctx||_(),void 0!==e&&e>=0&&e<=1){if(o._volume=e,o._muted)return o;o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.volume=u._volume*e)}return o}return o._volume},mute:function(e){var o=this||n;o.ctx||_(),o._muted=e,o.usingWebAudio&&o.masterGain.gain.setValueAtTime(e?0:o._volume,n.ctx.currentTime);for(var t=0;t<o._howls.length;t++)if(!o._howls[t]._webAudio)for(var r=o._howls[t]._getSoundIds(),a=0;a<r.length;a++){var u=o._howls[t]._soundById(r[a]);u&&u._node&&(u._node.muted=!!e||u._muted)}return o},stop:function(){for(var e=this||n,o=0;o<e._howls.length;o++)e._howls[o].stop();return e},unload:function(){for(var e=this||n,o=e._howls.length-1;o>=0;o--)e._howls[o].unload();return e.usingWebAudio&&e.ctx&&void 0!==e.ctx.close&&(e.ctx.close(),e.ctx=null,_()),e},codecs:function(e){return(this||n)._codecs[e.replace(/^x-/,"")]},_setup:function(){var e=this||n;if(e.state=e.ctx?e.ctx.state||"suspended":"suspended",e._autoSuspend(),!e.usingWebAudio)if("undefined"!=typeof Audio)try{var o=new Audio;void 0===o.oncanplaythrough&&(e._canPlayEvent="canplay")}catch(n){e.noAudio=!0}else e.noAudio=!0;try{var o=new Audio;o.muted&&(e.noAudio=!0)}catch(e){}return e.noAudio||e._setupCodecs(),e},_setupCodecs:function(){var e=this||n,o=null;try{o="undefined"!=typeof Audio?new Audio:null}catch(n){return e}if(!o||"function"!=typeof o.canPlayType)return e;var t=o.canPlayType("audio/mpeg;").replace(/^no$/,""),r=e._navigator?e._navigator.userAgent:"",a=r.match(/OPR\/([0-6].)/g),u=a&&parseInt(a[0].split("/")[1],10)<33,d=-1!==r.indexOf("Safari")&&-1===r.indexOf("Chrome"),i=r.match(/Version\/(.*?) /),_=d&&i&&parseInt(i[1],10)<15;return e._codecs={mp3:!(u||!t&&!o.canPlayType("audio/mp3;").replace(/^no$/,"")),mpeg:!!t,opus:!!o.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!o.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(o.canPlayType('audio/wav; codecs="1"')||o.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!o.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!o.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(o.canPlayType("audio/x-m4a;")||o.canPlayType("audio/m4a;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(o.canPlayType("audio/x-m4b;")||o.canPlayType("audio/m4b;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(o.canPlayType("audio/x-mp4;")||o.canPlayType("audio/mp4;")||o.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!(_||!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!(_||!o.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!o.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(o.canPlayType("audio/x-flac;")||o.canPlayType("audio/flac;")).replace(/^no$/,"")},e},_unlockAudio:function(){var e=this||n;if(!e._audioUnlocked&&e.ctx){e._audioUnlocked=!1,e.autoUnlock=!1,e._mobileUnloaded||44100===e.ctx.sampleRate||(e._mobileUnloaded=!0,e.unload()),e._scratchBuffer=e.ctx.createBuffer(1,1,22050);var o=function(n){for(;e._html5AudioPool.length<e.html5PoolSize;)try{var t=new Audio;t._unlocked=!0,e._releaseHtml5Audio(t)}catch(n){e.noAudio=!0;break}for(var r=0;r<e._howls.length;r++)if(!e._howls[r]._webAudio)for(var a=e._howls[r]._getSoundIds(),u=0;u<a.length;u++){var d=e._howls[r]._soundById(a[u]);d&&d._node&&!d._node._unlocked&&(d._node._unlocked=!0,d._node.load())}e._autoResume();var i=e.ctx.createBufferSource();i.buffer=e._scratchBuffer,i.connect(e.ctx.destination),void 0===i.start?i.noteOn(0):i.start(0),"function"==typeof e.ctx.resume&&e.ctx.resume(),i.onended=function(){i.disconnect(0),e._audioUnlocked=!0,document.removeEventListener("touchstart",o,!0),document.removeEventListener("touchend",o,!0),document.removeEventListener("click",o,!0),document.removeEventListener("keydown",o,!0);for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("unlock")}};return document.addEventListener("touchstart",o,!0),document.addEventListener("touchend",o,!0),document.addEventListener("click",o,!0),document.addEventListener("keydown",o,!0),e}},_obtainHtml5Audio:function(){var e=this||n;if(e._html5AudioPool.length)return e._html5AudioPool.pop();var o=(new Audio).play();return o&&"undefined"!=typeof Promise&&(o instanceof Promise||"function"==typeof o.then)&&o.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(e){var o=this||n;return e._unlocked&&o._html5AudioPool.push(e),o},_autoSuspend:function(){var e=this;if(e.autoSuspend&&e.ctx&&void 0!==e.ctx.suspend&&n.usingWebAudio){for(var o=0;o<e._howls.length;o++)if(e._howls[o]._webAudio)for(var t=0;t<e._howls[o]._sounds.length;t++)if(!e._howls[o]._sounds[t]._paused)return e;return e._suspendTimer&&clearTimeout(e._suspendTimer),e._suspendTimer=setTimeout(function(){if(e.autoSuspend){e._suspendTimer=null,e.state="suspending";var n=function(){e.state="suspended",e._resumeAfterSuspend&&(delete e._resumeAfterSuspend,e._autoResume())};e.ctx.suspend().then(n,n)}},3e4),e}},_autoResume:function(){var e=this;if(e.ctx&&void 0!==e.ctx.resume&&n.usingWebAudio)return"running"===e.state&&"interrupted"!==e.ctx.state&&e._suspendTimer?(clearTimeout(e._suspendTimer),e._suspendTimer=null):"suspended"===e.state||"running"===e.state&&"interrupted"===e.ctx.state?(e.ctx.resume().then(function(){e.state="running";for(var n=0;n<e._howls.length;n++)e._howls[n]._emit("resume")}),e._suspendTimer&&(clearTimeout(e._suspendTimer),e._suspendTimer=null)):"suspending"===e.state&&(e._resumeAfterSuspend=!0),e}};var n=new e,o=function(e){var n=this;if(!e.src||0===e.src.length)return void console.error("An array of source files must be passed with any new Howl.");n.init(e)};o.prototype={init:function(e){var o=this;return n.ctx||_(),o._autoplay=e.autoplay||!1,o._format="string"!=typeof e.format?e.format:[e.format],o._html5=e.html5||!1,o._muted=e.mute||!1,o._loop=e.loop||!1,o._pool=e.pool||5,o._preload="boolean"!=typeof e.preload&&"metadata"!==e.preload||e.preload,o._rate=e.rate||1,o._sprite=e.sprite||{},o._src="string"!=typeof e.src?e.src:[e.src],o._volume=void 0!==e.volume?e.volume:1,o._xhr={method:e.xhr&&e.xhr.method?e.xhr.method:"GET",headers:e.xhr&&e.xhr.headers?e.xhr.headers:null,withCredentials:!(!e.xhr||!e.xhr.withCredentials)&&e.xhr.withCredentials},o._duration=0,o._state="unloaded",o._sounds=[],o._endTimers={},o._queue=[],o._playLock=!1,o._onend=e.onend?[{fn:e.onend}]:[],o._onfade=e.onfade?[{fn:e.onfade}]:[],o._onload=e.onload?[{fn:e.onload}]:[],o._onloaderror=e.onloaderror?[{fn:e.onloaderror}]:[],o._onplayerror=e.onplayerror?[{fn:e.onplayerror}]:[],o._onpause=e.onpause?[{fn:e.onpause}]:[],o._onplay=e.onplay?[{fn:e.onplay}]:[],o._onstop=e.onstop?[{fn:e.onstop}]:[],o._onmute=e.onmute?[{fn:e.onmute}]:[],o._onvolume=e.onvolume?[{fn:e.onvolume}]:[],o._onrate=e.onrate?[{fn:e.onrate}]:[],o._onseek=e.onseek?[{fn:e.onseek}]:[],o._onunlock=e.onunlock?[{fn:e.onunlock}]:[],o._onresume=[],o._webAudio=n.usingWebAudio&&!o._html5,void 0!==n.ctx&&n.ctx&&n.autoUnlock&&n._unlockAudio(),n._howls.push(o),o._autoplay&&o._queue.push({event:"play",action:function(){o.play()}}),o._preload&&"none"!==o._preload&&o.load(),o},load:function(){var e=this,o=null;if(n.noAudio)return void e._emit("loaderror",null,"No audio support.");"string"==typeof e._src&&(e._src=[e._src]);for(var r=0;r<e._src.length;r++){var u,d;if(e._format&&e._format[r])u=e._format[r];else{if("string"!=typeof(d=e._src[r])){e._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}u=/^data:audio\/([^;,]+);/i.exec(d),u||(u=/\.([^.]+)$/.exec(d.split("?",1)[0])),u&&(u=u[1].toLowerCase())}if(u||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),u&&n.codecs(u)){o=e._src[r];break}}return o?(e._src=o,e._state="loading","https:"===window.location.protocol&&"http:"===o.slice(0,5)&&(e._html5=!0,e._webAudio=!1),new t(e),e._webAudio&&a(e),e):void e._emit("loaderror",null,"No codec support for selected audio sources.")},play:function(e,o){var t=this,r=null;if("number"==typeof e)r=e,e=null;else{if("string"==typeof e&&"loaded"===t._state&&!t._sprite[e])return null;if(void 0===e&&(e="__default",!t._playLock)){for(var a=0,u=0;u<t._sounds.length;u++)t._sounds[u]._paused&&!t._sounds[u]._ended&&(a++,r=t._sounds[u]._id);1===a?e=null:r=null}}var d=r?t._soundById(r):t._inactiveSound();if(!d)return null;if(r&&!e&&(e=d._sprite||"__default"),"loaded"!==t._state){d._sprite=e,d._ended=!1;var i=d._id;return t._queue.push({event:"play",action:function(){t.play(i)}}),i}if(r&&!d._paused)return o||t._loadQueue("play"),d._id;t._webAudio&&n._autoResume();var _=Math.max(0,d._seek>0?d._seek:t._sprite[e][0]/1e3),s=Math.max(0,(t._sprite[e][0]+t._sprite[e][1])/1e3-_),l=1e3*s/Math.abs(d._rate),c=t._sprite[e][0]/1e3,f=(t._sprite[e][0]+t._sprite[e][1])/1e3;d._sprite=e,d._ended=!1;var p=function(){d._paused=!1,d._seek=_,d._start=c,d._stop=f,d._loop=!(!d._loop&&!t._sprite[e][2])};if(_>=f)return void t._ended(d);var m=d._node;if(t._webAudio){var v=function(){t._playLock=!1,p(),t._refreshBuffer(d);var e=d._muted||t._muted?0:d._volume;m.gain.setValueAtTime(e,n.ctx.currentTime),d._playStart=n.ctx.currentTime,void 0===m.bufferSource.start?d._loop?m.bufferSource.noteGrainOn(0,_,86400):m.bufferSource.noteGrainOn(0,_,s):d._loop?m.bufferSource.start(0,_,86400):m.bufferSource.start(0,_,s),l!==1/0&&(t._endTimers[d._id]=setTimeout(t._ended.bind(t,d),l)),o||setTimeout(function(){t._emit("play",d._id),t._loadQueue()},0)};"running"===n.state&&"interrupted"!==n.ctx.state?v():(t._playLock=!0,t.once("resume",v),t._clearTimer(d._id))}else{var h=function(){m.currentTime=_,m.muted=d._muted||t._muted||n._muted||m.muted,m.volume=d._volume*n.volume(),m.playbackRate=d._rate;try{var r=m.play();if(r&&"undefined"!=typeof Promise&&(r instanceof Promise||"function"==typeof r.then)?(t._playLock=!0,p(),r.then(function(){t._playLock=!1,m._unlocked=!0,o?t._loadQueue():t._emit("play",d._id)}).catch(function(){t._playLock=!1,t._emit("playerror",d._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction."),d._ended=!0,d._paused=!0})):o||(t._playLock=!1,p(),t._emit("play",d._id)),m.playbackRate=d._rate,m.paused)return void t._emit("playerror",d._id,"Playback was unable to start. This is most commonly an issue on mobile devices and Chrome where playback was not within a user interaction.");"__default"!==e||d._loop?t._endTimers[d._id]=setTimeout(t._ended.bind(t,d),l):(t._endTimers[d._id]=function(){t._ended(d),m.removeEventListener("ended",t._endTimers[d._id],!1)},m.addEventListener("ended",t._endTimers[d._id],!1))}catch(e){t._emit("playerror",d._id,e)}};"data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"===m.src&&(m.src=t._src,m.load());var y=window&&window.ejecta||!m.readyState&&n._navigator.isCocoonJS;if(m.readyState>=3||y)h();else{t._playLock=!0,t._state="loading";var g=function(){t._state="loaded",h(),m.removeEventListener(n._canPlayEvent,g,!1)};m.addEventListener(n._canPlayEvent,g,!1),t._clearTimer(d._id)}}return d._id},pause:function(e){var n=this;if("loaded"!==n._state||n._playLock)return n._queue.push({event:"pause",action:function(){n.pause(e)}}),n;for(var o=n._getSoundIds(e),t=0;t<o.length;t++){n._clearTimer(o[t]);var r=n._soundById(o[t]);if(r&&!r._paused&&(r._seek=n.seek(o[t]),r._rateSeek=0,r._paused=!0,n._stopFade(o[t]),r._node))if(n._webAudio){if(!r._node.bufferSource)continue;void 0===r._node.bufferSource.stop?r._node.bufferSource.noteOff(0):r._node.bufferSource.stop(0),n._cleanBuffer(r._node)}else isNaN(r._node.duration)&&r._node.duration!==1/0||r._node.pause();arguments[1]||n._emit("pause",r?r._id:null)}return n},stop:function(e,n){var o=this;if("loaded"!==o._state||o._playLock)return o._queue.push({event:"stop",action:function(){o.stop(e)}}),o;for(var t=o._getSoundIds(e),r=0;r<t.length;r++){o._clearTimer(t[r]);var a=o._soundById(t[r]);a&&(a._seek=a._start||0,a._rateSeek=0,a._paused=!0,a._ended=!0,o._stopFade(t[r]),a._node&&(o._webAudio?a._node.bufferSource&&(void 0===a._node.bufferSource.stop?a._node.bufferSource.noteOff(0):a._node.bufferSource.stop(0),o._cleanBuffer(a._node)):isNaN(a._node.duration)&&a._node.duration!==1/0||(a._node.currentTime=a._start||0,a._node.pause(),a._node.duration===1/0&&o._clearSound(a._node))),n||o._emit("stop",a._id))}return o},mute:function(e,o){var t=this;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"mute",action:function(){t.mute(e,o)}}),t;if(void 0===o){if("boolean"!=typeof e)return t._muted;t._muted=e}for(var r=t._getSoundIds(o),a=0;a<r.length;a++){var u=t._soundById(r[a]);u&&(u._muted=e,u._interval&&t._stopFade(u._id),t._webAudio&&u._node?u._node.gain.setValueAtTime(e?0:u._volume,n.ctx.currentTime):u._node&&(u._node.muted=!!n._muted||e),t._emit("mute",u._id))}return t},volume:function(){var e,o,t=this,r=arguments;if(0===r.length)return t._volume;if(1===r.length||2===r.length&&void 0===r[1]){t._getSoundIds().indexOf(r[0])>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else r.length>=2&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var a;if(!(void 0!==e&&e>=0&&e<=1))return a=o?t._soundById(o):t._sounds[0],a?a._volume:0;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"volume",action:function(){t.volume.apply(t,r)}}),t;void 0===o&&(t._volume=e),o=t._getSoundIds(o);for(var u=0;u<o.length;u++)(a=t._soundById(o[u]))&&(a._volume=e,r[2]||t._stopFade(o[u]),t._webAudio&&a._node&&!a._muted?a._node.gain.setValueAtTime(e,n.ctx.currentTime):a._node&&!a._muted&&(a._node.volume=e*n.volume()),t._emit("volume",a._id));return t},fade:function(e,o,t,r){var a=this;if("loaded"!==a._state||a._playLock)return a._queue.push({event:"fade",action:function(){a.fade(e,o,t,r)}}),a;e=Math.min(Math.max(0,parseFloat(e)),1),o=Math.min(Math.max(0,parseFloat(o)),1),t=parseFloat(t),a.volume(e,r);for(var u=a._getSoundIds(r),d=0;d<u.length;d++){var i=a._soundById(u[d]);if(i){if(r||a._stopFade(u[d]),a._webAudio&&!i._muted){var _=n.ctx.currentTime,s=_+t/1e3;i._volume=e,i._node.gain.setValueAtTime(e,_),i._node.gain.linearRampToValueAtTime(o,s)}a._startFadeInterval(i,e,o,t,u[d],void 0===r)}}return a},_startFadeInterval:function(e,n,o,t,r,a){var u=this,d=n,i=o-n,_=Math.abs(i/.01),s=Math.max(4,_>0?t/_:t),l=Date.now();e._fadeTo=o,e._interval=setInterval(function(){var r=(Date.now()-l)/t;l=Date.now(),d+=i*r,d=Math.round(100*d)/100,d=i<0?Math.max(o,d):Math.min(o,d),u._webAudio?e._volume=d:u.volume(d,e._id,!0),a&&(u._volume=d),(o<n&&d<=o||o>n&&d>=o)&&(clearInterval(e._interval),e._interval=null,e._fadeTo=null,u.volume(o,e._id),u._emit("fade",e._id))},s)},_stopFade:function(e){var o=this,t=o._soundById(e);return t&&t._interval&&(o._webAudio&&t._node.gain.cancelScheduledValues(n.ctx.currentTime),clearInterval(t._interval),t._interval=null,o.volume(t._fadeTo,e),t._fadeTo=null,o._emit("fade",e)),o},loop:function(){var e,n,o,t=this,r=arguments;if(0===r.length)return t._loop;if(1===r.length){if("boolean"!=typeof r[0])return!!(o=t._soundById(parseInt(r[0],10)))&&o._loop;e=r[0],t._loop=e}else 2===r.length&&(e=r[0],n=parseInt(r[1],10));for(var a=t._getSoundIds(n),u=0;u<a.length;u++)(o=t._soundById(a[u]))&&(o._loop=e,t._webAudio&&o._node&&o._node.bufferSource&&(o._node.bufferSource.loop=e,e&&(o._node.bufferSource.loopStart=o._start||0,o._node.bufferSource.loopEnd=o._stop,t.playing(a[u])&&(t.pause(a[u],!0),t.play(a[u],!0)))));return t},rate:function(){var e,o,t=this,r=arguments;if(0===r.length)o=t._sounds[0]._id;else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):e=parseFloat(r[0])}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));var d;if("number"!=typeof e)return d=t._soundById(o),d?d._rate:t._rate;if("loaded"!==t._state||t._playLock)return t._queue.push({event:"rate",action:function(){t.rate.apply(t,r)}}),t;void 0===o&&(t._rate=e),o=t._getSoundIds(o);for(var i=0;i<o.length;i++)if(d=t._soundById(o[i])){t.playing(o[i])&&(d._rateSeek=t.seek(o[i]),d._playStart=t._webAudio?n.ctx.currentTime:d._playStart),d._rate=e,t._webAudio&&d._node&&d._node.bufferSource?d._node.bufferSource.playbackRate.setValueAtTime(e,n.ctx.currentTime):d._node&&(d._node.playbackRate=e);var _=t.seek(o[i]),s=(t._sprite[d._sprite][0]+t._sprite[d._sprite][1])/1e3-_,l=1e3*s/Math.abs(d._rate);!t._endTimers[o[i]]&&d._paused||(t._clearTimer(o[i]),t._endTimers[o[i]]=setTimeout(t._ended.bind(t,d),l)),t._emit("rate",d._id)}return t},seek:function(){var e,o,t=this,r=arguments;if(0===r.length)t._sounds.length&&(o=t._sounds[0]._id);else if(1===r.length){var a=t._getSoundIds(),u=a.indexOf(r[0]);u>=0?o=parseInt(r[0],10):t._sounds.length&&(o=t._sounds[0]._id,e=parseFloat(r[0]))}else 2===r.length&&(e=parseFloat(r[0]),o=parseInt(r[1],10));if(void 0===o)return 0;if("number"==typeof e&&("loaded"!==t._state||t._playLock))return t._queue.push({event:"seek",action:function(){t.seek.apply(t,r)}}),t;var d=t._soundById(o);if(d){if(!("number"==typeof e&&e>=0)){if(t._webAudio){var i=t.playing(o)?n.ctx.currentTime-d._playStart:0,_=d._rateSeek?d._rateSeek-d._seek:0;return d._seek+(_+i*Math.abs(d._rate))}return d._node.currentTime}var s=t.playing(o);s&&t.pause(o,!0),d._seek=e,d._ended=!1,t._clearTimer(o),t._webAudio||!d._node||isNaN(d._node.duration)||(d._node.currentTime=e);var l=function(){s&&t.play(o,!0),t._emit("seek",o)};if(s&&!t._webAudio){var c=function(){t._playLock?setTimeout(c,0):l()};setTimeout(c,0)}else l()}return t},playing:function(e){var n=this;if("number"==typeof e){var o=n._soundById(e);return!!o&&!o._paused}for(var t=0;t<n._sounds.length;t++)if(!n._sounds[t]._paused)return!0;return!1},duration:function(e){var n=this,o=n._duration,t=n._soundById(e);return t&&(o=n._sprite[t._sprite][1]/1e3),o},state:function(){return this._state},unload:function(){for(var e=this,o=e._sounds,t=0;t<o.length;t++)o[t]._paused||e.stop(o[t]._id),e._webAudio||(e._clearSound(o[t]._node),o[t]._node.removeEventListener("error",o[t]._errorFn,!1),o[t]._node.removeEventListener(n._canPlayEvent,o[t]._loadFn,!1),o[t]._node.removeEventListener("ended",o[t]._endFn,!1),n._releaseHtml5Audio(o[t]._node)),delete o[t]._node,e._clearTimer(o[t]._id);var a=n._howls.indexOf(e);a>=0&&n._howls.splice(a,1);var u=!0;for(t=0;t<n._howls.length;t++)if(n._howls[t]._src===e._src||e._src.indexOf(n._howls[t]._src)>=0){u=!1;break}return r&&u&&delete r[e._src],n.noAudio=!1,e._state="unloaded",e._sounds=[],e=null,null},on:function(e,n,o,t){var r=this,a=r["_on"+e];return"function"==typeof n&&a.push(t?{id:o,fn:n,once:t}:{id:o,fn:n}),r},off:function(e,n,o){var t=this,r=t["_on"+e],a=0;if("number"==typeof n&&(o=n,n=null),n||o)for(a=0;a<r.length;a++){var u=o===r[a].id;if(n===r[a].fn&&u||!n&&u){r.splice(a,1);break}}else if(e)t["_on"+e]=[];else{var d=Object.keys(t);for(a=0;a<d.length;a++)0===d[a].indexOf("_on")&&Array.isArray(t[d[a]])&&(t[d[a]]=[])}return t},once:function(e,n,o){var t=this;return t.on(e,n,o,1),t},_emit:function(e,n,o){for(var t=this,r=t["_on"+e],a=r.length-1;a>=0;a--)r[a].id&&r[a].id!==n&&"load"!==e||(setTimeout(function(e){e.call(this,n,o)}.bind(t,r[a].fn),0),r[a].once&&t.off(e,r[a].fn,r[a].id));return t._loadQueue(e),t},_loadQueue:function(e){var n=this;if(n._queue.length>0){var o=n._queue[0];o.event===e&&(n._queue.shift(),n._loadQueue()),e||o.action()}return n},_ended:function(e){var o=this,t=e._sprite;if(!o._webAudio&&e._node&&!e._node.paused&&!e._node.ended&&e._node.currentTime<e._stop)return setTimeout(o._ended.bind(o,e),100),o;var r=!(!e._loop&&!o._sprite[t][2]);if(o._emit("end",e._id),!o._webAudio&&r&&o.stop(e._id,!0).play(e._id),o._webAudio&&r){o._emit("play",e._id),e._seek=e._start||0,e._rateSeek=0,e._playStart=n.ctx.currentTime;var a=1e3*(e._stop-e._start)/Math.abs(e._rate);o._endTimers[e._id]=setTimeout(o._ended.bind(o,e),a)}return o._webAudio&&!r&&(e._paused=!0,e._ended=!0,e._seek=e._start||0,e._rateSeek=0,o._clearTimer(e._id),o._cleanBuffer(e._node),n._autoSuspend()),o._webAudio||r||o.stop(e._id,!0),o},_clearTimer:function(e){var n=this;if(n._endTimers[e]){if("function"!=typeof n._endTimers[e])clearTimeout(n._endTimers[e]);else{var o=n._soundById(e);o&&o._node&&o._node.removeEventListener("ended",n._endTimers[e],!1)}delete n._endTimers[e]}return n},_soundById:function(e){for(var n=this,o=0;o<n._sounds.length;o++)if(e===n._sounds[o]._id)return n._sounds[o];return null},_inactiveSound:function(){var e=this;e._drain();for(var n=0;n<e._sounds.length;n++)if(e._sounds[n]._ended)return e._sounds[n].reset();return new t(e)},_drain:function(){var e=this,n=e._pool,o=0,t=0;if(!(e._sounds.length<n)){for(t=0;t<e._sounds.length;t++)e._sounds[t]._ended&&o++;for(t=e._sounds.length-1;t>=0;t--){if(o<=n)return;e._sounds[t]._ended&&(e._webAudio&&e._sounds[t]._node&&e._sounds[t]._node.disconnect(0),e._sounds.splice(t,1),o--)}}},_getSoundIds:function(e){var n=this;if(void 0===e){for(var o=[],t=0;t<n._sounds.length;t++)o.push(n._sounds[t]._id);return o}return[e]},_refreshBuffer:function(e){var o=this;return e._node.bufferSource=n.ctx.createBufferSource(),e._node.bufferSource.buffer=r[o._src],e._panner?e._node.bufferSource.connect(e._panner):e._node.bufferSource.connect(e._node),e._node.bufferSource.loop=e._loop,e._loop&&(e._node.bufferSource.loopStart=e._start||0,e._node.bufferSource.loopEnd=e._stop||0),e._node.bufferSource.playbackRate.setValueAtTime(e._rate,n.ctx.currentTime),o},_cleanBuffer:function(e){var o=this,t=n._navigator&&n._navigator.vendor.indexOf("Apple")>=0;if(n._scratchBuffer&&e.bufferSource&&(e.bufferSource.onended=null,e.bufferSource.disconnect(0),t))try{e.bufferSource.buffer=n._scratchBuffer}catch(e){}return e.bufferSource=null,o},_clearSound:function(e){/MSIE |Trident\//.test(n._navigator&&n._navigator.userAgent)||(e.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(e){this._parent=e,this.init()};t.prototype={init:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,o._sounds.push(e),e.create(),e},create:function(){var e=this,o=e._parent,t=n._muted||e._muted||e._parent._muted?0:e._volume;return o._webAudio?(e._node=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),e._node.gain.setValueAtTime(t,n.ctx.currentTime),e._node.paused=!0,e._node.connect(n.masterGain)):n.noAudio||(e._node=n._obtainHtml5Audio(),e._errorFn=e._errorListener.bind(e),e._node.addEventListener("error",e._errorFn,!1),e._loadFn=e._loadListener.bind(e),e._node.addEventListener(n._canPlayEvent,e._loadFn,!1),e._endFn=e._endListener.bind(e),e._node.addEventListener("ended",e._endFn,!1),e._node.src=o._src,e._node.preload=!0===o._preload?"auto":o._preload,e._node.volume=t*n.volume(),e._node.load()),e},reset:function(){var e=this,o=e._parent;return e._muted=o._muted,e._loop=o._loop,e._volume=o._volume,e._rate=o._rate,e._seek=0,e._rateSeek=0,e._paused=!0,e._ended=!0,e._sprite="__default",e._id=++n._counter,e},_errorListener:function(){var e=this;e._parent._emit("loaderror",e._id,e._node.error?e._node.error.code:0),e._node.removeEventListener("error",e._errorFn,!1)},_loadListener:function(){var e=this,o=e._parent;o._duration=Math.ceil(10*e._node.duration)/10,0===Object.keys(o._sprite).length&&(o._sprite={__default:[0,1e3*o._duration]}),"loaded"!==o._state&&(o._state="loaded",o._emit("load"),o._loadQueue()),e._node.removeEventListener(n._canPlayEvent,e._loadFn,!1)},_endListener:function(){var e=this,n=e._parent;n._duration===1/0&&(n._duration=Math.ceil(10*e._node.duration)/10,n._sprite.__default[1]===1/0&&(n._sprite.__default[1]=1e3*n._duration),n._ended(e)),e._node.removeEventListener("ended",e._endFn,!1)}};var r={},a=function(e){var n=e._src;if(r[n])return e._duration=r[n].duration,void i(e);if(/^data:[^;]+;base64,/.test(n)){for(var o=atob(n.split(",")[1]),t=new Uint8Array(o.length),a=0;a<o.length;++a)t[a]=o.charCodeAt(a);d(t.buffer,e)}else{var _=new XMLHttpRequest;_.open(e._xhr.method,n,!0),_.withCredentials=e._xhr.withCredentials,_.responseType="arraybuffer",e._xhr.headers&&Object.keys(e._xhr.headers).forEach(function(n){_.setRequestHeader(n,e._xhr.headers[n])}),_.onload=function(){var n=(_.status+"")[0];if("0"!==n&&"2"!==n&&"3"!==n)return void e._emit("loaderror",null,"Failed loading audio file with status: "+_.status+".");d(_.response,e)},_.onerror=function(){e._webAudio&&(e._html5=!0,e._webAudio=!1,e._sounds=[],delete r[n],e.load())},u(_)}},u=function(e){try{e.send()}catch(n){e.onerror()}},d=function(e,o){var t=function(){o._emit("loaderror",null,"Decoding audio data failed.")},a=function(e){e&&o._sounds.length>0?(r[o._src]=e,i(o,e)):t()};"undefined"!=typeof Promise&&1===n.ctx.decodeAudioData.length?n.ctx.decodeAudioData(e).then(a).catch(t):n.ctx.decodeAudioData(e,a,t)},i=function(e,n){n&&!e._duration&&(e._duration=n.duration),0===Object.keys(e._sprite).length&&(e._sprite={__default:[0,1e3*e._duration]}),"loaded"!==e._state&&(e._state="loaded",e._emit("load"),e._loadQueue())},_=function(){if(n.usingWebAudio){try{"undefined"!=typeof AudioContext?n.ctx=new AudioContext:"undefined"!=typeof webkitAudioContext?n.ctx=new webkitAudioContext:n.usingWebAudio=!1}catch(e){n.usingWebAudio=!1}n.ctx||(n.usingWebAudio=!1);var e=/iP(hone|od|ad)/.test(n._navigator&&n._navigator.platform),o=n._navigator&&n._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),t=o?parseInt(o[1],10):null;if(e&&t&&t<9){var r=/safari/.test(n._navigator&&n._navigator.userAgent.toLowerCase());n._navigator&&!r&&(n.usingWebAudio=!1)}n.usingWebAudio&&(n.masterGain=void 0===n.ctx.createGain?n.ctx.createGainNode():n.ctx.createGain(),n.masterGain.gain.setValueAtTime(n._muted?0:n._volume,n.ctx.currentTime),n.masterGain.connect(n.ctx.destination)),n._setup()}};"function"==typeof define&&define.amd&&define([],function(){return{Howler:n,Howl:o}}),"undefined"!=typeof exports&&(exports.Howler=n,exports.Howl=o),"undefined"!=typeof global?(global.HowlerGlobal=e,global.Howler=n,global.Howl=o,global.Sound=t):"undefined"!=typeof window&&(window.HowlerGlobal=e,window.Howler=n,window.Howl=o,window.Sound=t)}();
|