@splinetool/loader 0.9.144 → 0.9.146
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/SplineLoader.cjs +85 -85
- package/build/SplineLoader.js +85 -85
- package/package.json +2 -1
package/build/SplineLoader.cjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDescriptor;var Nh=Object.getOwnPropertyNames;var Ih=Object.getPrototypeOf,Ph=Object.prototype.hasOwnProperty;var Lc=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Mc=(n,t)=>{for(var e in t)us(n,e,{get:t[e],enumerable:!0})},Ec=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Nh(t))!Ph.call(n,o)&&o!==e&&us(n,o,{get:()=>t[o],enumerable:!(r=Ah(t,o))||r.enumerable});return n};var el=(n,t,e)=>(e=n!=null?Th(Ih(n)):{},Ec(t||!n||!n.__esModule?us(e,"default",{value:n,enumerable:!0}):e,n)),Oh=n=>Ec(us({},"__esModule",{value:!0}),n);var jm=Lc(($a,Um)=>{(function(n,t){typeof $a=="object"&&typeof Um<"u"?t($a):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})($a,function(n){"use strict";n.SVD=function(t,e,r,o,i){if(e=e===void 0||e,r=r===void 0||r,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var s,l,c,p,a,u,d,f,m,h,g,v,x=t[0].length,w=t.length;if(w<x)throw new TypeError("Invalid matrix: m < n");for(var S=[],b=[],I=[],_=e==="f"?w:x,y=h=d=0;y<w;y++)b[y]=new Array(_).fill(0);for(y=0;y<x;y++)I[y]=new Array(x).fill(0);var P,A=new Array(x).fill(0);for(y=0;y<w;y++)for(s=0;s<x;s++)b[y][s]=t[y][s];for(y=0;y<x;y++){for(S[y]=d,m=0,c=y+1,s=y;s<w;s++)m+=Math.pow(b[s][y],2);if(m<i)d=0;else for(f=(u=b[y][y])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y]=u-d,s=c;s<x;s++){for(m=0,l=y;l<w;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<w;l++)b[l][s]=b[l][s]+u*b[l][y]}for(A[y]=d,m=0,s=c;s<x;s++)m+=Math.pow(b[y][s],2);if(m<i)d=0;else{for(f=(u=b[y][y+1])*(d=u<0?Math.sqrt(m):-Math.sqrt(m))-m,b[y][y+1]=u-d,s=c;s<x;s++)S[s]=b[y][s]/f;for(s=c;s<w;s++){for(m=0,l=c;l<x;l++)m+=b[s][l]*b[y][l];for(l=c;l<x;l++)b[s][l]=b[s][l]+m*S[l]}}h<(g=Math.abs(A[y])+Math.abs(S[y]))&&(h=g)}if(r)for(y=x-1;0<=y;y--){if(d!==0){for(f=b[y][y+1]*d,s=c;s<x;s++)I[s][y]=b[y][s]/f;for(s=c;s<x;s++){for(m=0,l=c;l<x;l++)m+=b[y][l]*I[l][s];for(l=c;l<x;l++)I[l][s]=I[l][s]+m*I[l][y]}}for(s=c;s<x;s++)I[y][s]=0,I[s][y]=0;I[y][y]=1,d=S[y],c=y}if(e){if(e==="f")for(y=x;y<w;y++){for(s=x;s<w;s++)b[y][s]=0;b[y][y]=1}for(y=x-1;0<=y;y--){for(c=y+1,d=A[y],s=c;s<_;s++)b[y][s]=0;if(d!==0){for(f=b[y][y]*d,s=c;s<_;s++){for(m=0,l=c;l<w;l++)m+=b[l][y]*b[l][s];for(u=m/f,l=y;l<w;l++)b[l][s]=b[l][s]+u*b[l][y]}for(s=y;s<w;s++)b[s][y]=b[s][y]/d}else for(s=y;s<w;s++)b[s][y]=0;b[y][y]=b[y][y]+1}}for(o*=h,l=x-1;0<=l;l--)for(var O=0;O<50;O++){for(P=!1,c=l;0<=c;c--){if(Math.abs(S[c])<=o){P=!0;break}if(Math.abs(A[c-1])<=o)break}if(!P){for(a=0,p=c-(m=1),y=c;y<l+1&&(u=m*S[y],S[y]=a*S[y],!(Math.abs(u)<=o));y++)if(d=A[y],A[y]=Math.sqrt(u*u+d*d),a=d/(f=A[y]),m=-u/f,e)for(s=0;s<w;s++)g=b[s][p],v=b[s][y],b[s][p]=g*a+v*m,b[s][y]=-g*m+v*a}if(v=A[l],c===l){if(v<0&&(A[l]=-v,r))for(s=0;s<x;s++)I[s][l]=-I[s][l];break}for(h=A[c],u=(((g=A[l-1])-v)*(g+v)+((d=S[l-1])-(f=S[l]))*(d+f))/(2*f*g),d=Math.sqrt(u*u+1),u=((h-v)*(h+v)+f*(g/(u<0?u-d:u+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=S[y],g=A[y],f=m*d,d*=a,v=Math.sqrt(u*u+f*f),u=h*(a=u/(S[y-1]=v))+d*(m=f/v),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<x;s++)h=I[s][y-1],v=I[s][y],I[s][y-1]=h*a+v*m,I[s][y]=-h*m+v*a;if(v=Math.sqrt(u*u+f*f),u=(a=u/(A[y-1]=v))*d+(m=f/v)*g,h=-m*d+a*g,e)for(s=0;s<w;s++)g=b[s][y-1],v=b[s][y],b[s][y-1]=g*a+v*m,b[s][y]=-g*m+v*a}S[c]=0,S[l]=u,A[l]=h}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:b,q:A,v:I}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var rh=Lc(Xa=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||t;return a._counter=1e3,a._html5AudioPool=[],a.html5PoolSize=10,a._codecs={},a._howls=[],a._muted=!1,a._volume=1,a._canPlayEvent="canplaythrough",a._navigator=typeof window<"u"&&window.navigator?window.navigator:null,a.masterGain=null,a.noAudio=!1,a.usingWebAudio=!0,a.autoSuspend=!0,a.ctx=null,a.autoUnlock=!0,a._setup(),a},volume:function(a){var u=this||t;if(a=parseFloat(a),u.ctx||p(),typeof a<"u"&&a>=0&&a<=1){if(u._volume=a,u._muted)return u;u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return u}return u._volume},mute:function(a){var u=this||t;u.ctx||p(),u._muted=a,u.usingWebAudio&&u.masterGain.gain.setValueAtTime(a?0:u._volume,t.ctx.currentTime);for(var d=0;d<u._howls.length;d++)if(!u._howls[d]._webAudio)for(var f=u._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=u._howls[d]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return u},stop:function(){for(var a=this||t,u=0;u<a._howls.length;u++)a._howls[u].stop();return a},unload:function(){for(var a=this||t,u=a._howls.length-1;u>=0;u--)a._howls[u].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,p()),a},codecs:function(a){return(this||t)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||t;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var u=new Audio;typeof u.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var u=new Audio;u.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||t,u=null;try{u=typeof Audio<"u"?new Audio:null}catch{return a}if(!u||typeof u.canPlayType!="function")return a;var d=u.canPlayType("audio/mpeg;").replace(/^no$/,""),f=a._navigator?a._navigator.userAgent:"",m=f.match(/OPR\/([0-6].)/g),h=m&&parseInt(m[0].split("/")[1],10)<33,g=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,v=f.match(/Version\/(.*?) /),x=g&&v&&parseInt(v[1],10)<15;return a._codecs={mp3:!!(!h&&(d||u.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!u.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!u.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(u.canPlayType('audio/wav; codecs="1"')||u.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!u.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!u.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(u.canPlayType("audio/x-m4a;")||u.canPlayType("audio/m4a;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(u.canPlayType("audio/x-m4b;")||u.canPlayType("audio/m4b;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(u.canPlayType("audio/x-mp4;")||u.canPlayType("audio/mp4;")||u.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&u.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!u.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(u.canPlayType("audio/x-flac;")||u.canPlayType("audio/flac;")).replace(/^no$/,"")},a},_unlockAudio:function(){var a=this||t;if(!(a._audioUnlocked||!a.ctx)){a._audioUnlocked=!1,a.autoUnlock=!1,!a._mobileUnloaded&&a.ctx.sampleRate!==44100&&(a._mobileUnloaded=!0,a.unload()),a._scratchBuffer=a.ctx.createBuffer(1,1,22050);var u=function(d){for(;a._html5AudioPool.length<a.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,a._releaseHtml5Audio(f)}catch{a.noAudio=!0;break}for(var m=0;m<a._howls.length;m++)if(!a._howls[m]._webAudio)for(var h=a._howls[m]._getSoundIds(),g=0;g<h.length;g++){var v=a._howls[m]._soundById(h[g]);v&&v._node&&!v._node._unlocked&&(v._node._unlocked=!0,v._node.load())}a._autoResume();var x=a.ctx.createBufferSource();x.buffer=a._scratchBuffer,x.connect(a.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof a.ctx.resume=="function"&&a.ctx.resume(),x.onended=function(){x.disconnect(0),a._audioUnlocked=!0,document.removeEventListener("touchstart",u,!0),document.removeEventListener("touchend",u,!0),document.removeEventListener("click",u,!0),document.removeEventListener("keydown",u,!0);for(var w=0;w<a._howls.length;w++)a._howls[w]._emit("unlock")}};return document.addEventListener("touchstart",u,!0),document.addEventListener("touchend",u,!0),document.addEventListener("click",u,!0),document.addEventListener("keydown",u,!0),a}},_obtainHtml5Audio:function(){var a=this||t;if(a._html5AudioPool.length)return a._html5AudioPool.pop();var u=new Audio().play();return u&&typeof Promise<"u"&&(u instanceof Promise||typeof u.then=="function")&&u.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(a){var u=this||t;return a._unlocked&&u._html5AudioPool.push(a),u},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!t.usingWebAudio)){for(var u=0;u<a._howls.length;u++)if(a._howls[u]._webAudio){for(var d=0;d<a._howls[u]._sounds.length;d++)if(!a._howls[u]._sounds[d]._paused)return a}return a._suspendTimer&&clearTimeout(a._suspendTimer),a._suspendTimer=setTimeout(function(){if(!!a.autoSuspend){a._suspendTimer=null,a.state="suspending";var f=function(){a.state="suspended",a._resumeAfterSuspend&&(delete a._resumeAfterSuspend,a._autoResume())};a.ctx.suspend().then(f,f)}},3e4),a}},_autoResume:function(){var a=this;if(!(!a.ctx||typeof a.ctx.resume>"u"||!t.usingWebAudio))return a.state==="running"&&a.ctx.state!=="interrupted"&&a._suspendTimer?(clearTimeout(a._suspendTimer),a._suspendTimer=null):a.state==="suspended"||a.state==="running"&&a.ctx.state==="interrupted"?(a.ctx.resume().then(function(){a.state="running";for(var u=0;u<a._howls.length;u++)a._howls[u]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var t=new n,e=function(a){var u=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}u.init(a)};e.prototype={init:function(a){var u=this;return t.ctx||p(),u._autoplay=a.autoplay||!1,u._format=typeof a.format!="string"?a.format:[a.format],u._html5=a.html5||!1,u._muted=a.mute||!1,u._loop=a.loop||!1,u._pool=a.pool||5,u._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,u._rate=a.rate||1,u._sprite=a.sprite||{},u._src=typeof a.src!="string"?a.src:[a.src],u._volume=a.volume!==void 0?a.volume:1,u._xhr={method:a.xhr&&a.xhr.method?a.xhr.method:"GET",headers:a.xhr&&a.xhr.headers?a.xhr.headers:null,withCredentials:a.xhr&&a.xhr.withCredentials?a.xhr.withCredentials:!1},u._duration=0,u._state="unloaded",u._sounds=[],u._endTimers={},u._queue=[],u._playLock=!1,u._onend=a.onend?[{fn:a.onend}]:[],u._onfade=a.onfade?[{fn:a.onfade}]:[],u._onload=a.onload?[{fn:a.onload}]:[],u._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],u._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],u._onpause=a.onpause?[{fn:a.onpause}]:[],u._onplay=a.onplay?[{fn:a.onplay}]:[],u._onstop=a.onstop?[{fn:a.onstop}]:[],u._onmute=a.onmute?[{fn:a.onmute}]:[],u._onvolume=a.onvolume?[{fn:a.onvolume}]:[],u._onrate=a.onrate?[{fn:a.onrate}]:[],u._onseek=a.onseek?[{fn:a.onseek}]:[],u._onunlock=a.onunlock?[{fn:a.onunlock}]:[],u._onresume=[],u._webAudio=t.usingWebAudio&&!u._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(u),u._autoplay&&u._queue.push({event:"play",action:function(){u.play()}}),u._preload&&u._preload!=="none"&&u.load(),u},load:function(){var a=this,u=null;if(t.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var d=0;d<a._src.length;d++){var f,m;if(a._format&&a._format[d])f=a._format[d];else{if(m=a._src[d],typeof m!="string"){a._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(m),f||(f=/\.([^.]+)$/.exec(m.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&t.codecs(f)){u=a._src[d];break}}if(!u){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=u,a._state="loading",window.location.protocol==="https:"&&u.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new r(a),a._webAudio&&i(a),a},play:function(a,u){var d=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&d._state==="loaded"&&!d._sprite[a])return null;if(typeof a>"u"&&(a="__default",!d._playLock)){for(var m=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(m++,f=d._sounds[h]._id);m===1?a=null:f=null}}var g=f?d._soundById(f):d._inactiveSound();if(!g)return null;if(f&&!a&&(a=g._sprite||"__default"),d._state!=="loaded"){g._sprite=a,g._ended=!1;var v=g._id;return d._queue.push({event:"play",action:function(){d.play(v)}}),v}if(f&&!g._paused)return u||d._loadQueue("play"),g._id;d._webAudio&&t._autoResume();var x=Math.max(0,g._seek>0?g._seek:d._sprite[a][0]/1e3),w=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-x),S=w*1e3/Math.abs(g._rate),b=d._sprite[a][0]/1e3,I=(d._sprite[a][0]+d._sprite[a][1])/1e3;g._sprite=a,g._ended=!1;var _=function(){g._paused=!1,g._seek=x,g._start=b,g._stop=I,g._loop=!!(g._loop||d._sprite[a][2])};if(x>=I){d._ended(g);return}var y=g._node;if(d._webAudio){var P=function(){d._playLock=!1,_(),d._refreshBuffer(g);var L=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(L,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,w):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,w),S!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S)),u||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?P():(d._playLock=!0,d.once("resume",P),d._clearTimer(g._id))}else{var A=function(){y.currentTime=x,y.muted=g._muted||d._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var L=y.play();if(L&&typeof Promise<"u"&&(L instanceof Promise||typeof L.then=="function")?(d._playLock=!0,_(),L.then(function(){d._playLock=!1,y._unlocked=!0,u?d._loadQueue():d._emit("play",g._id)}).catch(function(){d._playLock=!1,d._emit("playerror",g._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."),g._ended=!0,g._paused=!0})):u||(d._playLock=!1,_(),d._emit("play",g._id)),y.playbackRate=g._rate,y.paused){d._emit("playerror",g._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.");return}a!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),S):(d._endTimers[g._id]=function(){d._ended(g),y.removeEventListener("ended",d._endTimers[g._id],!1)},y.addEventListener("ended",d._endTimers[g._id],!1))}catch(B){d._emit("playerror",g._id,B)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var O=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||O)A();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",A(),y.removeEventListener(t._canPlayEvent,T,!1)};y.addEventListener(t._canPlayEvent,T,!1),d._clearTimer(g._id)}}return g._id},pause:function(a){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"pause",action:function(){u.pause(a)}}),u;for(var d=u._getSoundIds(a),f=0;f<d.length;f++){u._clearTimer(d[f]);var m=u._soundById(d[f]);if(m&&!m._paused&&(m._seek=u.seek(d[f]),m._rateSeek=0,m._paused=!0,u._stopFade(d[f]),m._node))if(u._webAudio){if(!m._node.bufferSource)continue;typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),u._cleanBuffer(m._node)}else(!isNaN(m._node.duration)||m._node.duration===1/0)&&m._node.pause();arguments[1]||u._emit("pause",m?m._id:null)}return u},stop:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(a)}}),d;for(var f=d._getSoundIds(a),m=0;m<f.length;m++){d._clearTimer(f[m]);var h=d._soundById(f[m]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(f[m]),h._node&&(d._webAudio?h._node.bufferSource&&(typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),d._cleanBuffer(h._node)):(!isNaN(h._node.duration)||h._node.duration===1/0)&&(h._node.currentTime=h._start||0,h._node.pause(),h._node.duration===1/0&&d._clearSound(h._node))),u||d._emit("stop",h._id))}return d},mute:function(a,u){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(a,u)}}),d;if(typeof u>"u")if(typeof a=="boolean")d._muted=a;else return d._muted;for(var f=d._getSoundIds(u),m=0;m<f.length;m++){var h=d._soundById(f[m]);h&&(h._muted=a,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(a?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:a),d._emit("mute",h._id))}return d},volume:function(){var a=this,u=arguments,d,f;if(u.length===0)return a._volume;if(u.length===1||u.length===2&&typeof u[1]>"u"){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length>=2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"volume",action:function(){a.volume.apply(a,u)}}),a;typeof f>"u"&&(a._volume=d),f=a._getSoundIds(f);for(var v=0;v<f.length;v++)g=a._soundById(f[v]),g&&(g._volume=d,u[2]||a._stopFade(f[v]),a._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),a._emit("volume",g._id))}else return g=f?a._soundById(f):a._sounds[0],g?g._volume:0;return a},fade:function(a,u,d,f){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"fade",action:function(){m.fade(a,u,d,f)}}),m;a=Math.min(Math.max(0,parseFloat(a)),1),u=Math.min(Math.max(0,parseFloat(u)),1),d=parseFloat(d),m.volume(a,f);for(var h=m._getSoundIds(f),g=0;g<h.length;g++){var v=m._soundById(h[g]);if(v){if(f||m._stopFade(h[g]),m._webAudio&&!v._muted){var x=t.ctx.currentTime,w=x+d/1e3;v._volume=a,v._node.gain.setValueAtTime(a,x),v._node.gain.linearRampToValueAtTime(u,w)}m._startFadeInterval(v,a,u,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,u,d,f,m,h){var g=this,v=u,x=d-u,w=Math.abs(x/.01),S=Math.max(4,w>0?f/w:f),b=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var I=(Date.now()-b)/f;b=Date.now(),v+=x*I,v=Math.round(v*100)/100,x<0?v=Math.max(d,v):v=Math.min(d,v),g._webAudio?a._volume=v:g.volume(v,a._id,!0),h&&(g._volume=v),(d<u&&v<=d||d>u&&v>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},S)},_stopFade:function(a){var u=this,d=u._soundById(a);return d&&d._interval&&(u._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,u.volume(d._fadeTo,a),d._fadeTo=null,u._emit("fade",a)),u},loop:function(){var a=this,u=arguments,d,f,m;if(u.length===0)return a._loop;if(u.length===1)if(typeof u[0]=="boolean")d=u[0],a._loop=d;else return m=a._soundById(parseInt(u[0],10)),m?m._loop:!1;else u.length===2&&(d=u[0],f=parseInt(u[1],10));for(var h=a._getSoundIds(f),g=0;g<h.length;g++)m=a._soundById(h[g]),m&&(m._loop=d,a._webAudio&&m._node&&m._node.bufferSource&&(m._node.bufferSource.loop=d,d&&(m._node.bufferSource.loopStart=m._start||0,m._node.bufferSource.loopEnd=m._stop,a.playing(h[g])&&(a.pause(h[g],!0),a.play(h[g],!0)))));return a},rate:function(){var a=this,u=arguments,d,f;if(u.length===0)f=a._sounds[0]._id;else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):d=parseFloat(u[0])}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));var g;if(typeof d=="number"){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"rate",action:function(){a.rate.apply(a,u)}}),a;typeof f>"u"&&(a._rate=d),f=a._getSoundIds(f);for(var v=0;v<f.length;v++)if(g=a._soundById(f[v]),g){a.playing(f[v])&&(g._rateSeek=a.seek(f[v]),g._playStart=a._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,a._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var x=a.seek(f[v]),w=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-x,S=w*1e3/Math.abs(g._rate);(a._endTimers[f[v]]||!g._paused)&&(a._clearTimer(f[v]),a._endTimers[f[v]]=setTimeout(a._ended.bind(a,g),S)),a._emit("rate",g._id)}}else return g=a._soundById(f),g?g._rate:a._rate;return a},seek:function(){var a=this,u=arguments,d,f;if(u.length===0)a._sounds.length&&(f=a._sounds[0]._id);else if(u.length===1){var m=a._getSoundIds(),h=m.indexOf(u[0]);h>=0?f=parseInt(u[0],10):a._sounds.length&&(f=a._sounds[0]._id,d=parseFloat(u[0]))}else u.length===2&&(d=parseFloat(u[0]),f=parseInt(u[1],10));if(typeof f>"u")return 0;if(typeof d=="number"&&(a._state!=="loaded"||a._playLock))return a._queue.push({event:"seek",action:function(){a.seek.apply(a,u)}}),a;var g=a._soundById(f);if(g)if(typeof d=="number"&&d>=0){var v=a.playing(f);v&&a.pause(f,!0),g._seek=d,g._ended=!1,a._clearTimer(f),!a._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var x=function(){v&&a.play(f,!0),a._emit("seek",f)};if(v&&!a._webAudio){var w=function(){a._playLock?setTimeout(w,0):x()};setTimeout(w,0)}else x()}else if(a._webAudio){var S=a.playing(f)?t.ctx.currentTime-g._playStart:0,b=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(b+S*Math.abs(g._rate))}else return g._node.currentTime;return a},playing:function(a){var u=this;if(typeof a=="number"){var d=u._soundById(a);return d?!d._paused:!1}for(var f=0;f<u._sounds.length;f++)if(!u._sounds[f]._paused)return!0;return!1},duration:function(a){var u=this,d=u._duration,f=u._soundById(a);return f&&(d=u._sprite[f._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var a=this,u=a._sounds,d=0;d<u.length;d++)u[d]._paused||a.stop(u[d]._id),a._webAudio||(a._clearSound(u[d]._node),u[d]._node.removeEventListener("error",u[d]._errorFn,!1),u[d]._node.removeEventListener(t._canPlayEvent,u[d]._loadFn,!1),u[d]._node.removeEventListener("ended",u[d]._endFn,!1),t._releaseHtml5Audio(u[d]._node)),delete u[d]._node,a._clearTimer(u[d]._id);var f=t._howls.indexOf(a);f>=0&&t._howls.splice(f,1);var m=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===a._src||a._src.indexOf(t._howls[d]._src)>=0){m=!1;break}return o&&m&&delete o[a._src],t.noAudio=!1,a._state="unloaded",a._sounds=[],a=null,null},on:function(a,u,d,f){var m=this,h=m["_on"+a];return typeof u=="function"&&h.push(f?{id:d,fn:u,once:f}:{id:d,fn:u}),m},off:function(a,u,d){var f=this,m=f["_on"+a],h=0;if(typeof u=="number"&&(d=u,u=null),u||d)for(h=0;h<m.length;h++){var g=d===m[h].id;if(u===m[h].fn&&g||!u&&g){m.splice(h,1);break}}else if(a)f["_on"+a]=[];else{var v=Object.keys(f);for(h=0;h<v.length;h++)v[h].indexOf("_on")===0&&Array.isArray(f[v[h]])&&(f[v[h]]=[])}return f},once:function(a,u,d){var f=this;return f.on(a,u,d,1),f},_emit:function(a,u,d){for(var f=this,m=f["_on"+a],h=m.length-1;h>=0;h--)(!m[h].id||m[h].id===u||a==="load")&&(setTimeout(function(g){g.call(this,u,d)}.bind(f,m[h].fn),0),m[h].once&&f.off(a,m[h].fn,m[h].id));return f._loadQueue(a),f},_loadQueue:function(a){var u=this;if(u._queue.length>0){var d=u._queue[0];d.event===a&&(u._queue.shift(),u._loadQueue()),a||d.action()}return u},_ended:function(a){var u=this,d=a._sprite;if(!u._webAudio&&a._node&&!a._node.paused&&!a._node.ended&&a._node.currentTime<a._stop)return setTimeout(u._ended.bind(u,a),100),u;var f=!!(a._loop||u._sprite[d][2]);if(u._emit("end",a._id),!u._webAudio&&f&&u.stop(a._id,!0).play(a._id),u._webAudio&&f){u._emit("play",a._id),a._seek=a._start||0,a._rateSeek=0,a._playStart=t.ctx.currentTime;var m=(a._stop-a._start)*1e3/Math.abs(a._rate);u._endTimers[a._id]=setTimeout(u._ended.bind(u,a),m)}return u._webAudio&&!f&&(a._paused=!0,a._ended=!0,a._seek=a._start||0,a._rateSeek=0,u._clearTimer(a._id),u._cleanBuffer(a._node),t._autoSuspend()),!u._webAudio&&!f&&u.stop(a._id,!0),u},_clearTimer:function(a){var u=this;if(u._endTimers[a]){if(typeof u._endTimers[a]!="function")clearTimeout(u._endTimers[a]);else{var d=u._soundById(a);d&&d._node&&d._node.removeEventListener("ended",u._endTimers[a],!1)}delete u._endTimers[a]}return u},_soundById:function(a){for(var u=this,d=0;d<u._sounds.length;d++)if(a===u._sounds[d]._id)return u._sounds[d];return null},_inactiveSound:function(){var a=this;a._drain();for(var u=0;u<a._sounds.length;u++)if(a._sounds[u]._ended)return a._sounds[u].reset();return new r(a)},_drain:function(){var a=this,u=a._pool,d=0,f=0;if(!(a._sounds.length<u)){for(f=0;f<a._sounds.length;f++)a._sounds[f]._ended&&d++;for(f=a._sounds.length-1;f>=0;f--){if(d<=u)return;a._sounds[f]._ended&&(a._webAudio&&a._sounds[f]._node&&a._sounds[f]._node.disconnect(0),a._sounds.splice(f,1),d--)}}},_getSoundIds:function(a){var u=this;if(typeof a>"u"){for(var d=[],f=0;f<u._sounds.length;f++)d.push(u._sounds[f]._id);return d}else return[a]},_refreshBuffer:function(a){var u=this;return a._node.bufferSource=t.ctx.createBufferSource(),a._node.bufferSource.buffer=o[u._src],a._panner?a._node.bufferSource.connect(a._panner):a._node.bufferSource.connect(a._node),a._node.bufferSource.loop=a._loop,a._loop&&(a._node.bufferSource.loopStart=a._start||0,a._node.bufferSource.loopEnd=a._stop||0),a._node.bufferSource.playbackRate.setValueAtTime(a._rate,t.ctx.currentTime),u},_cleanBuffer:function(a){var u=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&a.bufferSource&&(a.bufferSource.onended=null,a.bufferSource.disconnect(0),d))try{a.bufferSource.buffer=t._scratchBuffer}catch{}return a.bufferSource=null,u},_clearSound:function(a){var u=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);u||(a.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(a){this._parent=a,this.init()};r.prototype={init:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,u._sounds.push(a),a.create(),a},create:function(){var a=this,u=a._parent,d=t._muted||a._muted||a._parent._muted?0:a._volume;return u._webAudio?(a._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),a._node.gain.setValueAtTime(d,t.ctx.currentTime),a._node.paused=!0,a._node.connect(t.masterGain)):t.noAudio||(a._node=t._obtainHtml5Audio(),a._errorFn=a._errorListener.bind(a),a._node.addEventListener("error",a._errorFn,!1),a._loadFn=a._loadListener.bind(a),a._node.addEventListener(t._canPlayEvent,a._loadFn,!1),a._endFn=a._endListener.bind(a),a._node.addEventListener("ended",a._endFn,!1),a._node.src=u._src,a._node.preload=u._preload===!0?"auto":u._preload,a._node.volume=d*t.volume(),a._node.load()),a},reset:function(){var a=this,u=a._parent;return a._muted=u._muted,a._loop=u._loop,a._volume=u._volume,a._rate=u._rate,a._seek=0,a._rateSeek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,a},_errorListener:function(){var a=this;a._parent._emit("loaderror",a._id,a._node.error?a._node.error.code:0),a._node.removeEventListener("error",a._errorFn,!1)},_loadListener:function(){var a=this,u=a._parent;u._duration=Math.ceil(a._node.duration*10)/10,Object.keys(u._sprite).length===0&&(u._sprite={__default:[0,u._duration*1e3]}),u._state!=="loaded"&&(u._state="loaded",u._emit("load"),u._loadQueue()),a._node.removeEventListener(t._canPlayEvent,a._loadFn,!1)},_endListener:function(){var a=this,u=a._parent;u._duration===1/0&&(u._duration=Math.ceil(a._node.duration*10)/10,u._sprite.__default[1]===1/0&&(u._sprite.__default[1]=u._duration*1e3),u._ended(a)),a._node.removeEventListener("ended",a._endFn,!1)}};var o={},i=function(a){var u=a._src;if(o[u]){a._duration=o[u].duration,c(a);return}if(/^data:[^;]+;base64,/.test(u)){for(var d=atob(u.split(",")[1]),f=new Uint8Array(d.length),m=0;m<d.length;++m)f[m]=d.charCodeAt(m);l(f.buffer,a)}else{var h=new XMLHttpRequest;h.open(a._xhr.method,u,!0),h.withCredentials=a._xhr.withCredentials,h.responseType="arraybuffer",a._xhr.headers&&Object.keys(a._xhr.headers).forEach(function(g){h.setRequestHeader(g,a._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){a._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}l(h.response,a)},h.onerror=function(){a._webAudio&&(a._html5=!0,a._webAudio=!1,a._sounds=[],delete o[u],a.load())},s(h)}},s=function(a){try{a.send()}catch{a.onerror()}},l=function(a,u){var d=function(){u._emit("loaderror",null,"Decoding audio data failed.")},f=function(m){m&&u._sounds.length>0?(o[u._src]=m,c(u,m)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(a).then(f).catch(d):t.ctx.decodeAudioData(a,f,d)},c=function(a,u){u&&!a._duration&&(a._duration=u.duration),Object.keys(a._sprite).length===0&&(a._sprite={__default:[0,a._duration*1e3]}),a._state!=="loaded"&&(a._state="loaded",a._emit("load"),a._loadQueue())},p=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var a=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),u=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=u?parseInt(u[1],10):null;if(a&&d&&d<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof Xa<"u"&&(Xa.Howler=t,Xa.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=t,window.Howl=e,window.Sound=r)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var r=e._howls.length-1;r>=0;r--)e._howls[r].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,r){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,r=typeof r!="number"?o._pos[2]:r,typeof t=="number")o._pos=[t,e,r],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,r,o,i,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof t=="number")l._orientation=[t,e,r,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(t,e,r,o,i,s);else return c;return l},Howl.prototype.init=function(t){return function(e){var r=this;return r._orientation=e.orientation||[1,0,0],r._stereo=e.stereo||null,r._pos=e.pos||null,r._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},r._onstereo=e.onstereo?[{fn:e.onstereo}]:[],r._onpos=e.onpos?[{fn:e.onpos}]:[],r._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(t,e)}}),r;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")r._stereo=t,r._pos=[t,0,0];else return r._stereo;for(var i=r._getSoundIds(e),s=0;s<i.length;s++){var l=r._soundById(i[s]);if(l)if(typeof t=="number")l._stereo=t,l._pos=[t,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&n(l,o),o==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(t,0,0):l._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",l._id);else return l._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,r,o)}}),i;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")i._pos=[t,e,r];else return i._pos;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setPosition(t,e,r)),i._emit("pos",c._id);else return c._pos}return i},Howl.prototype.orientation=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,r,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,r=typeof r!="number"?i._orientation[2]:r,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,r];else return i._orientation;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=i._pos||[0,0,-.5]),n(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setOrientation(t,e,r)),i._emit("orientation",c._id);else return c._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")r=e[0],typeof o>"u"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),t._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle<"u"?r.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle<"u"?r.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain<"u"?r.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel<"u"?r.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance<"u"?r.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof r.pannerAttr.refDistance<"u"?r.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor<"u"?r.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel<"u"?r.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var s=t._getSoundIds(o),l=0;l<s.length;l++)if(i=t._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:c.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:c.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:c.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:c.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:c.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:c.panningModel};var p=i._panner;p?(p.coneInnerAngle=c.coneInnerAngle,p.coneOuterAngle=c.coneOuterAngle,p.coneOuterGain=c.coneOuterGain,p.distanceModel=c.distanceModel,p.maxDistance=c.maxDistance,p.refDistance=c.refDistance,p.rolloffFactor=c.rolloffFactor,p.panningModel=c.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),n(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,r=e._parent;e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,t.call(this),e._stereo?r.stereo(e._stereo):e._pos&&r.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,r=e._parent;return e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,e._stereo?r.stereo(e._stereo):e._pos?r.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,r._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var n=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var Pw={};Mc(Pw,{default:()=>Qa});module.exports=Oh(Pw);var Za=require("three");var Ge=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let i={...r,[t]:e};return Object.setPrototypeOf(i,Ge.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:i,data:s}=t,l={...e,[i]:s};return Object.setPrototypeOf(l,Ge.prototype),{data:l,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Ge.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}throw new Error("illegal arg")}};function Jn(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let t=Object.getOwnPropertyNames(n);for(let e of t){let r=n[e];r&&typeof r=="object"&&Jn(r)}return Object.freeze(n)}function Bc(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var Fo=class extends Error{};function ar(n,t,e){if(n===void 0?t===void 0?(n=0,t=10):n=t-10:t===void 0&&(t=n+10),n>t){let i=n;n=t,t=i}let r=[],o=1/(e+1);for(let i=0;i<e;i++){let s=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(s)}return r}function yo(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function Dc(){return typeof process<"u"}function Gc(n,t){for(let e of n)t(e.id,e.data),Gc(e.children,t)}function Rc(n,t){t(n.id,n.data);for(let e of n.children)Rc(e,t)}var Fe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Fe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Jn(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&Rc(o,r)}}traverse(e){Gc(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),s=this.childrenArray(i),l=s.findIndex(a=>a.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]={...c,data:r},this.modifyArrayBy(i,s)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let l=i,c=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let p=i.findIndex(a=>a.id===c);if(p<0)throw new Error;i=[...i],i[p]={...i[p],children:l}}Object.setPrototypeOf(i,Fe.prototype);let s=i;return s.fillCaches(),s}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:i,data:s,children:l}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,p=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return p=[...p,a],p.sort((d,f)=>d.fi-f.fi),e.localIndex=p.indexOf(a),{data:this.modifyArrayBy(c,p),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let i=this.childrenArray(o),s=i.findIndex(p=>p.id===r);e.localIndex=s,i=[...i];let l=i.splice(s,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...l,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:i}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:i});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new Fo("cyclic tree");f=this.parent(f)}}let s=this.parent(i);if(s===void 0)return null;let l=s,c=this.childrenArray(s),p=c.findIndex(f=>f.id===i);c=[...c];let a=c.splice(p,1)[0],u=this.modifyArrayBy(s,c);s=r,c=u.childrenArray(s);let d=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),u=u.modifyArrayBy(s,c),{data:u,actual:e,reverse:{type:9,parent:l,fi:d,id:i}}}previous(e,r){if(r===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===r)return o;o=i.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)+1;if(i<o.length)return o[i].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):r}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push({...o,...i})}r.sort((o,i)=>Bc(o.sortKey,i.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],i=this.get(r),s=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...s,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let i=this.childrenArray(e);if(r===null){if(i.length===0)return ar(0,o,o);{let s=i[0].fi;return ar(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let l=i.find(c=>c.fi>s.fi);if(l===void 0){let c=i[i.length-1].fi;return ar(c,c+o,o)}else return ar(s.fi,l.fi,o)}}};var zo;(t=>{function n(e,r){if(Array.isArray(e)){let o=r.props,i={},s=[...e],l=!1;if(o)for(let c of Object.keys(o)){let p=parseInt(c);if(isNaN(p))throw new Error("wrong index");i[c]=s[p],s[p]=o[c],l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},s={...e},l=!1;if(o)for(let c of Object.keys(o)){i[c]=s[c];let p=o[c];p===void 0?delete s[c]:s[c]=p,l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(zo||(zo={}));var ge=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ge.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Jn(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,s=i.findIndex(p=>p.id===e);if(s<0)throw new Error("not expected");let l=i[s];return i=[...i],i[s]={...l,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,ge.prototype);let r=e;return Dc()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}}addOp(e){let{fi:r,id:o,data:i}=e,s=this,l={fi:r,id:o,data:i};return s=[...s,l],s.sort((p,a)=>p.fi-a.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(c=>c.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let s=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let s=i.findIndex(a=>a.id===o);if(s===-1)return null;let l=i[s].fi,c={...i[s],fi:r};return i[s]=c,i.sort((a,u)=>a.fi-u.fi),e.localIndex=i.indexOf(c),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:l,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return ar(0,r,r);{let i=o[0].fi;return ar(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let s=o.find(l=>l.fi>i.fi);if(s===void 0){let l=o[o.length-1].fi;return ar(l,l+r,r)}else return ar(i.fi,s.fi,r)}}};var Dt=class{unusedFun(t){}runOp(t){let e=[],r=this,o=0,i={};for(;o<t.path.length;){if(e.push(r),r=r===void 0?void 0:r[t.path[o]],r instanceof Fe||r instanceof ge)return null;o+=1}r={...r};for(let[c,p]of Object.entries(t.props)){let a=r[c];i[c]=a,p===void 0?delete r[c]:r[c]=p}for(;o>0;)Object.keys(r).length===0?(r={...e[o-1]},delete r[t.path[o-1]]):r={...e[o-1],[t.path[o-1]]:r},o-=1;let s=Object.setPrototypeOf(r,Dt.prototype),l={...t,props:i};return{data:s,actual:t,reverse:l}}},Vc;(e=>{function n(r,o){return ei(r,o)??r}e.apply=n;function t(r,o){if(o.type===0){let i=0,s=o.path,l=r;for(;i<s.length&&l!==void 0;){if(l=lr.zoomOnce(l,s[i]),l instanceof Fe||l instanceof ge)return;i+=1}if(l===void 0)return o;if(typeof l=="string"||typeof l=="number"||yo(l))return;if(l&&typeof l=="object"){let c={...o.props};for(let p of Object.keys(l))delete c[p];return{...o,props:c}}else return}else if(o.type===1||o.type===4||o.type===7){let i=lr.zoom(r,[...o.path,o.id]);if(i===void 0)return o;if(typeof i=="string"||typeof i=="number"||yo(i))return;if(i&&typeof i=="object"){let s={...o.data,...i};return{...o,data:s}}else return}else return o}e.filterOp=t})(Vc||(Vc={}));function Fc(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=ei(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=Fc(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Ch(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=ei(o.data,t[i]);return e=e||s!==void 0,s===void 0&&(s=o.data),{...o,id:i,data:s}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function ei(n,t){if(t!==void 0){if(t instanceof ge||t instanceof Fe||typeof t=="string"||typeof t=="number"||t===null)return t;if(n instanceof Fe){let e=Fc(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof ge)return Ch(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=ei(o,t[i]);return e=e||s!==void 0,s===void 0&&(s=o),s});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(n&&typeof n=="object"){let e={},r=!1;for(let[o,i]of Object.entries(n)){let s=ei(i,t[o]);r=r||s!==void 0,s===void 0&&(s=i),e[o]=s}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}else return t??n}}}function zc(n,t){let e={cur:[],result:[],len:0};return n=ti(n,t,e)??n,[n,e.result]}function ps(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function ds(n){n&&(n.len-=1)}function Lh(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function Uc(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=ti(i.data,t,ps(e,s));ds(e),r=r||c!==void 0,c===void 0&&(c=i.data);let p=Uc(i.children,t,e);return p!==void 0?r=!0:p=i.children,{...i,id:s,data:c,children:p}});if(r)return o}function Mh(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=ti(i.data,t,ps(e,s));return ds(e),r=r||c!==void 0,c===void 0&&(c=i.data),{...i,id:s,data:c}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function ti(n,t,e){if(n instanceof Fe){let r=Uc(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof ge)return Mh(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=ti(i,t,ps(e,s));return ds(e),r=r||l!==void 0,l===void 0&&(l=i),l});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"){let r={},o=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let l=t[i];if(typeof l=="string"){if(e!==null)throw new Error("not supported");o=!0,i=l}let c=ti(s,t,ps(e,i));ds(e),o=o||c!==void 0,c===void 0&&(c=s),r[i]=c}else r[i]=s;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(typeof n=="string"){let r=t[n];if(r!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Lh(e)}return r}else return}}var jc;(t=>{function n(e,r){let o=lr.zoom(r,e.path);if(typeof o=="object"){let i={};for(let s of Object.keys(e.props))i[s]=o[s];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=n})(jc||(jc={}));var Hr;(l=>{function n(c,p){return{...c,path:c.path.slice(p)}}l.drop=n;function t(c,p){return e(c,p)?.data??c}l.applySimple=t;function e(c,p){let a=p.path;for(var u=[];;){let d;if(c instanceof Dt&&p.type===0&&(d=c.runOp({...p,path:a.slice(u.length)}),d===null&&(d=void 0)),u.length===a.length&&(c instanceof Fe||c instanceof ge||c instanceof Ge?d=c.runOp(p):d=zo.runOp(c,p)),d!==void 0)if(d!==null){let h=d.data;for(let g=u.length-1;g>=0;g--){let v=a[g],x=u[g];if(x instanceof Fe){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof ge){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof Ge){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof Dt){let w={...x,[v]:h};h=Object.setPrototypeOf(w,Dt.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof v=="string"&&(v=parseInt(v),isNaN(v)))throw new Error("Invalid path");let w=h;h=[...x],h[v]=w}else h={...x,[v]:h};else return null}return{data:h,actual:{...d.actual,path:a},reverse:{...d.reverse,path:a}}}else return null;let f=a[u.length],m;if(c instanceof Fe){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof ge){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else c!==null&&(m=c[f]);if(m!==void 0)u.push(c),c=m;else return null}}l.apply=e;function r(c,p){for(let a=0;a<c.length&&a<p.length;a++)if(c[a]!==p[a])return!0;return!1}l.pathDisjoint=r;function o(c,p){if(c.length!==p.length)return!1;for(let a=0;a<c.length;a++)if(c[a]!==p[a])return!1;return!0}l.pathEq=o;function i(c,p){return r(c.path,p.path)}l.commutative=i;function s(c,p){return c.type===0&&p.type===0&&o(c.path,p.path)?Object.keys(c.props).every(a=>p.props[a]!==void 0):!1}l.subsumed=s})(Hr||(Hr={}));var kc;(c=>{function n(){return[]}c.empty=n;function t(p,a){let u=[];for(let d of p){let[f,...m]=d.path;f===a&&u.push({...d,path:m})}return u}c.removePrefix=t;function e(p,a){return p.map(u=>({...u,path:[a,...u.path]}))}c.addPrefix=e;function r(p,a){return[...p,...a]}c.concat=r;function o(p,a){return[...p.filter(d=>!a.some(f=>Hr.subsumed(d,f))),...a]}c.compress=o;function i(p,a){return p.every(u=>a.every(d=>Hr.commutative(u,d)))}c.commutative=i;function s(p,a){for(let u of a){let d=l(p,u);d!==null&&(p=d.data)}return p}c.applyAll=s;function l(p,a){var u=p;let d=[],f=[];for(let m of a)try{if(m.type===3){let h=lr.zoom(u,[...m.path,m.id]),g=Hr.apply(u,{...m,type:2});if(g!==null){u=g.data;let[v,x]=zc(u,{[m.id]:h});u=v;for(let w of x){let S=w[w.length-1];w.splice(w.length-1,1),d.push({type:0,path:w,props:{[S]:h}}),f.push({type:0,path:w,props:{[S]:m.id}})}f.push(g.reverse),d.push(g.actual)}}else{let h=Hr.apply(u,m);h!==null&&(d.push(h.actual),u=h.data,f.push(h.reverse))}}catch(h){if(h instanceof Fo)return null;throw h}return{data:u,actual:d,reverse:f.reverse()}}c.apply=l})(kc||(kc={}));var Hc=Symbol(),ri=Symbol(),xo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof ms);){let s=o._path,l=o._current;if(s!==""&&i.splice(0,0,s),o=o._parent,o===null)return;o.update(s,l)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[ri];r&&r(),delete this._children[t]}}}},rl=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,zo.runOp(this._current,t),t.path)}},ol=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,Ge.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Wc={get(n,t){if(t===ri)return()=>{n._parent=null};if(t===Hc)return n._current;let{_current:e,_children:r}=n;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e[t],s=hs(n,t,i);return s!==i?(r===void 0&&(r={},n._children=r),r[t]=s,s):i},has(n,t){return t in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,t){let e=n._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},Eh={...Wc,set(n,t,e){let r={type:0,props:{[t]:Tt(e)??e}};return n.deleteChildren(t),n.runOp(r),!0},deleteProperty(n,t){let e={type:0,props:{[t]:void 0}};return n.deleteChildren(t),n.runOp(e),!0}},Bh={...Wc,set(n,t,e){return e===void 0?this.deleteProperty(n,t):(n.deleteChildren(t),n.runOp({type:1,id:t,data:e})),!0},deleteProperty(n,t){return n.runOp({type:2,id:t}),!0}},Uo=class extends xo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=hs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}add(t,e,r,o,i){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:i})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},fs=class extends xo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,Hr.apply(this._current,t),e)}},jo=class extends xo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ri]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id,i=this._current[r].fi;t(this.data(this._current[r].id),o,i)}}find(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=hs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function tl(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&lr.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var ms=class{constructor(t){this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,r,o){tl(this.ts,e,t),tl(this.actual,r,t),tl(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function hs(n,t,e){return e instanceof Fe?new Uo(n,t,e):e instanceof ge?new jo(n,t,e):e instanceof Dt?new fs(n,t,e):e instanceof Ge?new Proxy(new ol(n,t,e),Bh):e!==null&&typeof e=="object"?yo(e)?e:new Proxy(new rl(n,t,e),Eh):e}function nl(n){let t=new ms(n);return[hs(t,"",n),t]}function il(n,t){let[e,r]=nl(n);return t(e),r.result()}function Tt(n){return n instanceof Uo||n instanceof jo||n instanceof fs?n._current:n!==null&&typeof n=="object"?n[Hc]:n}var lr;(o=>{function n(i,s){if(s.length===i.length)for(var l=0;l<i.length;){if(i[l]!==s[l])return!1;l+=1}else return!1;return!0}o.equal=n;function t(i,s,l){let c=r(l,i);if(c!==void 0&&typeof c=="object"&&c!==null){let p={...s};return Object.keys(c).forEach(a=>{delete p[a]}),p}else return s}o.removeOverridden=t;function e(i,s){if((i instanceof Fe||i instanceof Uo)&&typeof s=="string")return i.data(s);if((i instanceof ge||i instanceof jo)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object")return i[s]}o.zoomOnce=e;function r(i,s,l=0){for(;l<s.length&&i!==void 0;)i=e(i,s[l]),l+=1;return i}o.zoom=r})(lr||(lr={}));var gs=class{},oi=class extends gs{constructor(e){super();this.id=e}},ni=class extends gs{constructor(e){super();this.data=e}};var al;try{al=new TextDecoder}catch{}var oe,qr,N=0;var Jc=[],ll=Jc,cl=0,At={},Te,Wr,jt=0,cr=0,Gt,Br,vt=[],Oe,qc={useRecords:!1,mapsAsObjects:!0},ii=class{},pl=new ii;pl.name="MessagePack 0xC1";var ko=!1,ur=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(oe)return nu(()=>(xs(),this?this.unpack(t,e):ur.prototype.unpack.call(qc,t,e)));qr=e>-1?e:t.length,N=0,cl=0,cr=0,Wr=null,ll=Jc,Gt=null,oe=t;try{Oe=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw oe=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof ur){if(At=this,this.structures)return Te=this.structures,ys();(!Te||Te.length>0)&&(Te=[])}else At=qc,(!Te||Te.length>0)&&(Te=[]);return ys()}unpackMultiple(t,e){let r,o=0;try{ko=!0;let i=t.length,s=this?this.unpack(t,i):Ss.unpack(t,i);if(e){for(e(s);N<i;)if(o=N,e(ys())===!1)return}else{for(r=[s];N<i;)o=N,r.push(ys());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{ko=!1,xs()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let i=t[r];i&&(i.isShared=!0,r>=32&&(i.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],i=e[r];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function ys(){try{if(!At.trusted&&!ko){let t=Te.sharedLength||0;t<Te.length&&(Te.length=t)}let n=Ue();if(N==qr)Te.restoreStructures&&$c(),Te=null,oe=null,Br&&(Br=null);else if(N>qr){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!ko)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Te.restoreStructures&&$c(),xs(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function $c(){for(let n in Te.restoreStructures)Te[n]=Te.restoreStructures[n];Te.restoreStructures=null}function Ue(){let n=oe[N++];if(n<160)if(n<128){if(n<64)return n;{let t=Te[n&63]||At.getStructures&&eu()[n&63];return t?(t.read||(t.read=dl(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[ru()]=Ue();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Ue(),Ue());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=Ue();return t}else if(n<192){let t=n-160;if(cr>=N)return Wr.slice(N-jt,(N+=t)-jt);if(cr==0&&qr<140){let e=t<16?fl(t):tu(t);if(e!=null)return e}return ul(t)}else{let t;switch(n){case 192:return null;case 193:return Gt?(t=Ue(),t>0?Gt[1].slice(Gt.position1,Gt.position1+=t):Gt[0].slice(Gt.position0,Gt.position0-=t)):pl;case 194:return!1;case 195:return!0;case 196:return sl(oe[N++]);case 197:return t=Oe.getUint16(N),N+=2,sl(t);case 198:return t=Oe.getUint32(N),N+=4,sl(t);case 199:return vo(oe[N++]);case 200:return t=Oe.getUint16(N),N+=2,vo(t);case 201:return t=Oe.getUint32(N),N+=4,vo(t);case 202:if(t=Oe.getFloat32(N),At.useFloat32>2){let e=bs[(oe[N]&127)<<1|oe[N+1]>>7];return N+=4,(e*t+(t>0?.5:-.5)>>0)/e}return N+=4,t;case 203:return t=Oe.getFloat64(N),N+=8,t;case 204:return oe[N++];case 205:return t=Oe.getUint16(N),N+=2,t;case 206:return t=Oe.getUint32(N),N+=4,t;case 207:return At.int64AsNumber?(t=Oe.getUint32(N)*4294967296,t+=Oe.getUint32(N+4)):t=Oe.getBigUint64(N),N+=8,t;case 208:return Oe.getInt8(N++);case 209:return t=Oe.getInt16(N),N+=2,t;case 210:return t=Oe.getInt32(N),N+=4,t;case 211:return At.int64AsNumber?(t=Oe.getInt32(N)*4294967296,t+=Oe.getUint32(N+4)):t=Oe.getBigInt64(N),N+=8,t;case 212:if(t=oe[N++],t==114)return Zc(oe[N++]&63);{let e=vt[t];if(e)return e.read?(N++,e.read(Ue())):e.noBuffer?(N++,e()):e(oe.subarray(N,++N));throw new Error("Unknown extension "+t)}case 213:return t=oe[N],t==114?(N++,Zc(oe[N++]&63,oe[N++])):vo(2);case 214:return vo(4);case 215:return vo(8);case 216:return vo(16);case 217:return t=oe[N++],cr>=N?Wr.slice(N-jt,(N+=t)-jt):Gh(t);case 218:return t=Oe.getUint16(N),N+=2,cr>=N?Wr.slice(N-jt,(N+=t)-jt):Rh(t);case 219:return t=Oe.getUint32(N),N+=4,cr>=N?Wr.slice(N-jt,(N+=t)-jt):Vh(t);case 220:return t=Oe.getUint16(N),N+=2,Yc(t);case 221:return t=Oe.getUint32(N),N+=4,Yc(t);case 222:return t=Oe.getUint16(N),N+=2,Kc(t);case 223:return t=Oe.getUint32(N),N+=4,Kc(t);default:if(n>=224)return n-256;if(n===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+n)}}}var Dh=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function dl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Dh.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Ue);return n.highByte===0&&(n.read=Xc(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=Ue()}return r}return e.count=0,n.highByte===0?Xc(t,e):e}var Xc=(n,t)=>function(){let e=oe[N++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Te[r]||eu()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=dl(o,n)),o.read()};function eu(){let n=nu(()=>(oe=null,At.getStructures()));return Te=At._mergeStructures(n,Te)}var ul=vs,Gh=vs,Rh=vs,Vh=vs;function vs(n){let t;if(n<16&&(t=fl(n)))return t;if(n>64&&al)return al.decode(oe.subarray(N,N+=n));let e=N+n,r=[];for(t="";N<e;){let o=oe[N++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=oe[N++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=oe[N++]&63,s=oe[N++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=oe[N++]&63,s=oe[N++]&63,l=oe[N++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|c&1023),r.push(c)}else r.push(o);r.length>=4096&&(t+=it.apply(String,r),r.length=0)}return r.length>0&&(t+=it.apply(String,r)),t}function Yc(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=Ue();return t}function Kc(n){if(At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[ru()]=Ue();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(Ue(),Ue());return t}}var it=String.fromCharCode;function tu(n){let t=N,e=new Array(n);for(let r=0;r<n;r++){let o=oe[N++];if((o&128)>0){N=t;return}e[r]=o}return it.apply(String,e)}function fl(n){if(n<4)if(n<2){if(n===0)return"";{let t=oe[N++];if((t&128)>1){N-=1;return}return it(t)}}else{let t=oe[N++],e=oe[N++];if((t&128)>0||(e&128)>0){N-=2;return}if(n<3)return it(t,e);let r=oe[N++];if((r&128)>0){N-=3;return}return it(t,e,r)}else{let t=oe[N++],e=oe[N++],r=oe[N++],o=oe[N++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){N-=4;return}if(n<6){if(n===4)return it(t,e,r,o);{let i=oe[N++];if((i&128)>0){N-=5;return}return it(t,e,r,o,i)}}else if(n<8){let i=oe[N++],s=oe[N++];if((i&128)>0||(s&128)>0){N-=6;return}if(n<7)return it(t,e,r,o,i,s);let l=oe[N++];if((l&128)>0){N-=7;return}return it(t,e,r,o,i,s,l)}else{let i=oe[N++],s=oe[N++],l=oe[N++],c=oe[N++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){N-=8;return}if(n<10){if(n===8)return it(t,e,r,o,i,s,l,c);{let p=oe[N++];if((p&128)>0){N-=9;return}return it(t,e,r,o,i,s,l,c,p)}}else if(n<12){let p=oe[N++],a=oe[N++];if((p&128)>0||(a&128)>0){N-=10;return}if(n<11)return it(t,e,r,o,i,s,l,c,p,a);let u=oe[N++];if((u&128)>0){N-=11;return}return it(t,e,r,o,i,s,l,c,p,a,u)}else{let p=oe[N++],a=oe[N++],u=oe[N++],d=oe[N++];if((p&128)>0||(a&128)>0||(u&128)>0||(d&128)>0){N-=12;return}if(n<14){if(n===12)return it(t,e,r,o,i,s,l,c,p,a,u,d);{let f=oe[N++];if((f&128)>0){N-=13;return}return it(t,e,r,o,i,s,l,c,p,a,u,d,f)}}else{let f=oe[N++],m=oe[N++];if((f&128)>0||(m&128)>0){N-=14;return}if(n<15)return it(t,e,r,o,i,s,l,c,p,a,u,d,f,m);let h=oe[N++];if((h&128)>0){N-=15;return}return it(t,e,r,o,i,s,l,c,p,a,u,d,f,m,h)}}}}}function sl(n){return At.copyBuffers?Uint8Array.prototype.slice.call(oe,N,N+=n):oe.subarray(N,N+=n)}function vo(n){let t=oe[N++];if(vt[t])return vt[t](oe.subarray(N,N+=n));throw new Error("Unknown extension type "+t)}var Qc=new Array(4096);function ru(){let n=oe[N++];if(n>=160&&n<192){if(n=n-160,cr>=N)return Wr.slice(N-jt,(N+=n)-jt);if(!(cr==0&&qr<180))return ul(n)}else return N--,Ue();let t=(n<<5^(n>1?Oe.getUint16(N):n>0?oe[N]:0))&4095,e=Qc[t],r=N,o=N+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Oe.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=oe[r++],i!=e[s++]){r=1879048192;break}if(r===o)return N=r,e.string;o-=3,r=N}for(e=[],Qc[t]=e,e.bytes=n;r<o;)i=Oe.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=oe[r++],e.push(i);let l=n<16?fl(n):tu(n);return l!=null?e.string=l:e.string=ul(n)}var Zc=(n,t)=>{var e=Ue();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Te[n];return o&&o.isShared&&((Te.restoreStructures||(Te.restoreStructures=[]))[n]=o),Te[n]=e,e.read=dl(e,r),e.read()},ou=typeof self=="object"?self:global;vt[0]=()=>{};vt[0].noBuffer=!0;vt[101]=()=>{let n=Ue();return(ou[n[0]]||Error)(n[1])};vt[105]=n=>{let t=Oe.getUint32(N-4);Br||(Br=new Map);let e=oe[N],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Br.set(t,o);let i=Ue();return o.used?Object.assign(r,i):(o.target=i,i)};vt[112]=n=>{let t=Oe.getUint32(N-4),e=Br.get(t);return e.used=!0,e.target};vt[115]=()=>new Set(Ue());var ml=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");vt[116]=n=>{let t=n[0],e=ml[t];if(!e)throw new Error("Could not find typed array for code "+t);return new ou[e](Uint8Array.prototype.slice.call(n,1).buffer)};vt[120]=()=>{let n=Ue();return new RegExp(n[0],n[1])};vt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=N;N+=t-4,Gt=[Ue(),Ue()],Gt.position0=0,Gt.position1=0;let r=N;N=e;try{return Ue()}finally{N=r}};vt[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function nu(n){let t=qr,e=N,r=cl,o=jt,i=cr,s=Wr,l=ll,c=Br,p=Gt,a=new Uint8Array(oe.slice(0,qr)),u=Te,d=Te.slice(0,Te.length),f=At,m=ko,h=n();return qr=t,N=e,cl=r,jt=o,cr=i,Wr=s,ll=l,Br=c,Gt=p,oe=a,ko=m,Te=u,Te.splice(0,Te.length,...d),At=f,Oe=new DataView(oe.buffer,oe.byteOffset,oe.byteLength),h}function xs(){oe=null,Br=null,Te=null}function iu(n){n.unpack?vt[n.type]=n.unpack:vt[n.type]=n}var bs=new Array(147);for(let n=0;n<256;n++)bs[n]=+("1e"+Math.floor(45.15-n*.30103));var Ss=new ur({useRecords:!1}),Fh=Ss.unpack,zh=Ss.unpackMultiple,Uh=Ss.unpack,ws={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},jh=new Float32Array(1),L1=new Uint8Array(jh.buffer,0,4);var _s;try{_s=new TextEncoder}catch{}var Ts,gl,As=typeof Buffer<"u",hl=As?Buffer.allocUnsafeSlow:Uint8Array,cu=As?Buffer:Uint8Array,su=As?4294967296:2144337920,G,qe,C=0,pr,dr=null,kh=/[\u0080-\uFFFF]/,si=Symbol("record-id"),bo=class extends ur{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=cu.prototype.utf8Write?function(y,P,A){return G.utf8Write(y,P,A)}:_s&&_s.encodeInto?function(y,P){return _s.encodeInto(y,G.subarray(P)).written}:!1,a=this;t||(t={});let u=t&&t.sequential,d=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=d?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=t.maxOwnStructures;m==null&&(m=d?32:64),u&&!t.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,g=f+64,v=f+m+64;if(v>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],w=0,S=0;this.pack=this.encode=function(y,P){if(G||(G=new hl(8192),qe=new DataView(G.buffer,0,8192),C=0),pr=G.length-10,pr-C<2048?(G=new hl(G.length),qe=new DataView(G.buffer,0,G.length),pr=G.length-10,C=0):C=C+7&2147483640,r=C,l=a.structuredClone?new Map:null,a.bundleStrings?(dr=["",""],G[C++]=214,G[C++]=98,dr.position=C-r,C+=4):dr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let A=o.sharedLength||0;if(A>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let O=0;O<A;O++){let T=o[O];if(!T)continue;let L,B=o.transitions;for(let j=0,te=T.length;j<te;j++){let ne=T[j];L=B[ne],L||(L=B[ne]=Object.create(null)),B=L}B[si]=O+64}c=A}u||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(b(y),dr){qe.setUint32(dr.position+r,C-dr.position-r);let A=dr;dr=null,b(A[0]),b(A[1])}if(a.offset=C,l&&l.idsToInsert){C+=l.idsToInsert.length*6,C>pr&&_(C),a.offset=C;let A=Wh(G.subarray(r,C),l.idsToInsert);return l=null,A}return P&pu?(G.start=r,G.end=C,G):G.subarray(r,C)}finally{if(o){if(S<10&&S++,w>1e4)o.transitions=null,S=0,w=0,x.length>0&&(x=[]);else if(x.length>0&&!u){for(let A=0,O=x.length;A<O;A++)x[A][si]=0;x=[]}if(i&&a.saveStructures){let A=o.sharedLength||f;o.length>A&&(o=o.slice(0,A));let O=G.subarray(r,C);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=A,O)}}P&Zh&&(C=r)}};let b=y=>{C>pr&&(G=_(C));var P=typeof y,A;if(P==="string"){let O=y.length;if(dr&&O>=8&&O<4096){let B=kh.test(y);dr[B?0:1]+=y,G[C++]=193,b(B?-O:O);return}let T;O<32?T=1:O<256?T=2:O<65536?T=3:T=5;let L=O*3;if(C+L>pr&&(G=_(C+L)),O<64||!p){let B,j,te,ne=C+T;for(B=0;B<O;B++)j=y.charCodeAt(B),j<128?G[ne++]=j:j<2048?(G[ne++]=j>>6|192,G[ne++]=j&63|128):(j&64512)===55296&&((te=y.charCodeAt(B+1))&64512)===56320?(j=65536+((j&1023)<<10)+(te&1023),B++,G[ne++]=j>>18|240,G[ne++]=j>>12&63|128,G[ne++]=j>>6&63|128,G[ne++]=j&63|128):(G[ne++]=j>>12|224,G[ne++]=j>>6&63|128,G[ne++]=j&63|128);A=ne-C-T}else A=p(y,C+T,L);A<32?G[C++]=160|A:A<256?(T<2&&G.copyWithin(C+2,C+1,C+1+A),G[C++]=217,G[C++]=A):A<65536?(T<3&&G.copyWithin(C+3,C+2,C+2+A),G[C++]=218,G[C++]=A>>8,G[C++]=A&255):(T<5&&G.copyWithin(C+5,C+3,C+3+A),G[C++]=219,qe.setUint32(C,A),C+=4),C+=A}else if(P==="number")if(y>>>0===y)y<64?G[C++]=y:y<256?(G[C++]=204,G[C++]=y):y<65536?(G[C++]=205,G[C++]=y>>8,G[C++]=y&255):(G[C++]=206,qe.setUint32(C,y),C+=4);else if(y>>0===y)y>=-32?G[C++]=256+y:y>=-128?(G[C++]=208,G[C++]=y+256):y>=-32768?(G[C++]=209,qe.setInt16(C,y),C+=2):(G[C++]=210,qe.setInt32(C,y),C+=4);else{let O;if((O=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){G[C++]=202,qe.setFloat32(C,y);let T;if(O<4||(T=y*bs[(G[C]&127)<<1|G[C+1]>>7])>>0===T){C+=4;return}else C--}G[C++]=203,qe.setFloat64(C,y),C+=8}else if(P==="object")if(!y)G[C++]=192;else{if(l){let T=l.get(y);if(T){if(!T.id){let L=l.idsToInsert||(l.idsToInsert=[]);T.id=L.push(T)}G[C++]=214,G[C++]=112,qe.setUint32(C,T.id),C+=4;return}else l.set(y,{offset:C-r})}let O=y.constructor;if(O===Object)I(y,!0);else if(O===Array){A=y.length,A<16?G[C++]=144|A:A<65536?(G[C++]=220,G[C++]=A>>8,G[C++]=A&255):(G[C++]=221,qe.setUint32(C,A),C+=4);for(let T=0;T<A;T++)b(y[T])}else if(O===Map){A=y.size,A<16?G[C++]=128|A:A<65536?(G[C++]=222,G[C++]=A>>8,G[C++]=A&255):(G[C++]=223,qe.setUint32(C,A),C+=4);for(let[T,L]of y)b(T),b(L)}else{for(let T=0,L=Ts.length;T<L;T++){let B=gl[T];if(y instanceof B){let j=Ts[T];if(j.write){j.type&&(G[C++]=212,G[C++]=j.type,G[C++]=0),b(j.write.call(this,y));return}let te=G,ne=qe,ae=C;G=null;let U;try{U=j.pack.call(this,y,W=>(G=te,te=null,C+=W,C>pr&&_(C),{target:G,targetView:qe,position:C-W}),b)}finally{te&&(G=te,qe=ne,C=ae,pr=G.length-10)}U&&(U.length+C>pr&&_(U.length+C),C=Hh(U,G,C,j.type));return}}I(y,!y.hasOwnProperty)}}else if(P==="boolean")G[C++]=y?195:194;else if(P==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))G[C++]=211,qe.setBigInt64(C,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)G[C++]=207,qe.setBigUint64(C,y);else if(this.largeBigIntToFloat)G[C++]=203,qe.setFloat64(C,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");C+=8}else if(P==="undefined")this.encodeUndefinedAsNil?G[C++]=192:(G[C++]=212,G[C++]=0,G[C++]=0);else if(P==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+P)},I=this.useRecords===!1?this.variableMapSize?y=>{let P=Object.keys(y),A=P.length;A<16?G[C++]=128|A:A<65536?(G[C++]=222,G[C++]=A>>8,G[C++]=A&255):(G[C++]=223,qe.setUint32(C,A),C+=4);let O;for(let T=0;T<A;T++)b(O=P[T]),b(y[O])}:(y,P)=>{G[C++]=222;let A=C-r;C+=2;let O=0;for(let T in y)(P||y.hasOwnProperty(T))&&(b(T),b(y[T]),O++);G[A+++r]=O>>8,G[A+r]=O&255}:y=>{let P=Object.keys(y),A,O=s.transitions||(s.transitions=Object.create(null)),T=0;for(let B=0,j=P.length;B<j;B++){let te=P[B];A=O[te],A||(A=O[te]=Object.create(null),T++),O=A}let L=O[si];if(L)L>=96&&h?(G[C++]=((L-=96)&31)+96,G[C++]=L>>5):G[C++]=L;else{L=s.nextId,L||(L=64),L<g&&this.shouldShareStructure&&!this.shouldShareStructure(P)?(L=s.nextOwnId,L<v||(L=g),s.nextOwnId=L+1):(L>=v&&(L=g),s.nextId=L+1);let B=P.highByte=L>=96&&h?L-96>>5:-1;O[si]=L,s[L-64]=P,L<g?(P.isShared=!0,s.sharedLength=L-63,i=!0,B>=0?(G[C++]=(L&31)+96,G[C++]=B):G[C++]=L):(B>=0?(G[C++]=213,G[C++]=114,G[C++]=(L&31)+96,G[C++]=B):(G[C++]=212,G[C++]=114,G[C++]=L),T&&(w+=S*T),x.length>=m&&(x.shift()[si]=0),x.push(O),b(P))}for(let B=0,j=P.length;B<j;B++)b(y[P[B]])},_=y=>{let P;if(y>16777216){if(y-r>su)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(su,Math.round(Math.max((y-r)*(y>67108864?1.25:2),4194304)/4096)*4096)}else P=(Math.max(y-r<<2,G.length-1)>>12)+1<<12;let A=new hl(P);return qe=new DataView(A.buffer,0,P),G.copy?G.copy(A,0,r,y):A.set(G.slice(r,y)),C-=r,r=0,pr=A.length-10,G=A}}useBuffer(t){G=t,qe=new DataView(G.buffer,G.byteOffset,G.byteLength),C=0}};gl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,ii];Ts=[{pack(n,t,e){let r=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:i,position:s}=t(6);o[s++]=214,o[s++]=255,i.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:s}=t(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(n,t,e){let r=Array.from(n),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(r)}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([n.name,n.message])}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([n.source,n.flags])}},{pack(n,t){this.structuredClone?au(n,16,t):lu(As?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==cu&&this.structuredClone?au(n,ml.indexOf(e.name),t):lu(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function au(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:s}=e(4+o);i[s++]=199,i[s++]=o+1}else if(o+1<65536){var{target:i,position:s}=e(5+o);i[s++]=200,i[s++]=o+1>>8,i[s++]=o+1&255}else{var{target:i,position:s,targetView:l}=e(7+o);i[s++]=201,l.setUint32(s,o+1),s+=4}i[s++]=116,i[s++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function lu(n,t){let e=n.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:i}=t(e+5);r[o++]=198,i.setUint32(o,e),o+=4}r.set(n,o)}function Hh(n,t,e,r){let o=n.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(n,e),e+=o,e}function Wh(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,s)=>i.offset>s.offset?1:-1);e=t.pop();){let i=e.offset,s=e.id;n.copyWithin(i+r,i,o),r-=6;let l=i+r;n[l++]=214,n[l++]=105,n[l++]=s>>24,n[l++]=s>>16&255,n[l++]=s>>8&255,n[l++]=s&255,o=i}return n}function $r(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");gl.unshift(n.Class),Ts.unshift(n)}iu(n)}var uu=new bo({useRecords:!1}),qh=uu.pack,$h=uu.pack;var{NEVER:Xh,ALWAYS:Yh,DECIMAL_ROUND:Kh,DECIMAL_FIT:Qh}=ws,pu=512,Zh=1024;var du=new bo({structuredClone:!0});$r({Class:Ge.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ge.prototype),n}});$r({Class:ge.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,ge.prototype),n}});$r({Class:Fe.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Fe.prototype),n}});$r({Class:oi.prototype.constructor,type:4,write(n){return n.id},read(n){return new oi(n)}});$r({Class:ni.prototype.constructor,type:5,write(n){return n.data},read(n){return new ni(n)}});$r({Class:Dt.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Dt.prototype),n}});function Jh(n){var t=0;if(n.length===0)return t;for(let e=0;e<n.length;e++){let r=n[e];t=(t<<5)-t+r,t=t&t}return t}function yl(n){if(yo(n))return n;if(Array.isArray(n))return n.map(yl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=yl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Ns;(r=>{function n(o){return du.pack(o)}r.serialize=n;function t(o){return du.unpack(o)}r.deserialize=t;function e(o){return Jh(n(yl(o))).toString()}r.checksum=e})(Ns||(Ns={}));var fu;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i]}e.lerp=t})(fu||(fu={}));var Ho;(o=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}o.isEqual=n;function t(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}o.add=t;function e(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}o.sub=e;function r(i,s,l){return[i[0]+(s[0]-i[0])*l,i[1]+(s[1]-i[1])*l,i[2]+(s[2]-i[2])*l]}o.lerp=r})(Ho||(Ho={}));var mu;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i,r[2]+(o[2]-r[2])*i,r[3]+(o[3]-r[3])*i]}e.lerp=t})(mu||(mu={}));var Xr;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,s){let l=s.slice(0);for(var c=0,p=s.length;c<p;c+=3){let a=i[3]*s[c]+i[7]*s[c+1]+i[11]*s[c+2]+i[15];l[c]=(i[0]*s[c]+i[4]*s[c+1]+i[8]*s[c+2]+i[12])/a,l[c+1]=(i[1]*s[c]+i[5]*s[c+1]+i[9]*s[c+2]+i[13])/a,l[c+2]=(i[2]*s[c]+i[6]*s[c+1]+i[10]*s[c+2]+i[14])/a}return l}o.applyMatrix4=r})(Xr||(Xr={}));var Nt;(c=>{c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(p){return{r:Math.round(p.r*255),g:Math.round(p.g*255),b:Math.round(p.b*255),a:1}}c.toRgb255a1=r;function o(p){return{r:p.r,g:p.g,b:p.b}}c.clone=o;function i(p){return p=Math.floor(p),{r:(p>>16&255)/255,g:(p>>8&255)/255,b:(p&255)/255}}c.fromHex=i;function s(p,a){return p.r===a.r&&p.g===a.g&&p.b===a.b}c.equals=s;function l(p,a,u){return{r:p.r+(a.r-p.r)*u,g:p.g+(a.g-p.g)*u,b:p.b+(a.b-p.b)*u}}c.lerp=l})(Nt||(Nt={}));var Kt;(l=>{l.white={...Nt.white,a:1},l.transparent={...Nt.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function r(c,p){return{...Nt.fromHex(c),a:p}}l.fromHexAndA=r;function o(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=o;function i(c,p){return Nt.equals(c,p)&&c.a===p.a}l.equals=i;function s(c,p,a){return{r:c.r+(p.r-c.r)*a,g:c.g+(p.g-c.g)*a,b:c.b+(p.b-c.b)*a,a:c.a+(p.a-c.a)*a}}l.lerp=s})(Kt||(Kt={}));var Is;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Is||(Is={}));var hu;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(hu||(hu={}));var gu;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(gu||(gu={}));var Wo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(Wo||(Wo={}));var So;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=r})(So||(So={}));var Ps;(t=>{function n(e,r=.1){return{type:"radial",hideBase:!1,count:3,radial:{radius:Math.max(e[0],e[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},linear:{scale:[1,1,1],rotation:[0,0,0],position:[e[0]+e[0]*r,0,0]},grid:{count:[2,2,2],size:e.map(o=>o*(1+r)),useCenter:!0}}}t.defaultData=n})(Ps||(Ps={}));var Os;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Os||(Os={}));var Cs;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:Kt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:Kt.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:Kt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Cs||(Cs={}));var xl;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(xl||(xl={}));var vl;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,o){return r.flatShading===o.flatShading&&r.side===o.side&&r.wireframe===o.wireframe}e.equals=t})(vl||(vl={}));var Ls;(t=>t.defaultData={...vl.defaultData,...xl.defaultData,cloner:null,booleanExclude:null})(Ls||(Ls={}));var yu=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],xu=["wrapping","image"],fr;(r=>{function n(o,i){return o==="light"&&i?t(i):e(o)}r.defaultData=n;function t(o){switch(o){case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function e(o){switch(o){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Nt.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Nt.fromHex(6710886),a:1},colorB:{...Nt.fromHex(6710886),a:1},colorC:{...Nt.fromHex(16777215),a:1},colorD:{...Nt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:Kt.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:Kt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:Kt.fromHexAndA(0,1),contourColor:Kt.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(fr||(fr={}));var Rt;(l=>{function n(c){return!c.layers.some(a=>a.data.type==="texture"&&a.data.projection!==0||a.data.type==="depth"&&!a.data.isWorldSpace||a.data.type==="noise"||a.data.type==="displace")&&!e(c)}l.isMergable=n;function t(c){let p="";return c.layers.forEach(a=>{Object.entries(a.data).forEach(([u,d])=>{p+=`${u}${d}`,Array.isArray(d)?d.forEach(f=>p+=`${f}`):typeof d=="object"?Object.values(d).forEach(f=>{typeof f=="number"?p+=`${f.toFixed(4)}`:p+=`${f}`}):p+=`${d}`})}),p}l.getHash=t;function e(c){let p=0;for(let a of c.layers)"alpha"in a.data&&a.data.type!=="light"&&a.data.type!=="fresnel"&&(p+=(1-p)*a.data.alpha);return p<1}l.isTransparent=e;function r(){return{layers:new ge}}l.defaultEmptyData=r;function o(c="layer1",p="layer2"){return i("phong",c,p)}l.defaultData=o;function i(c,p="layer1",a="layer2"){let u=new ge;return u.push({fi:0,data:fr.defaultData("light",c),id:p}),u.push({fi:1,data:fr.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="phong",a="layer1",u="layer2"){let d=fr.defaultData("texture");Object.assign(d.texture,{image:c});let f=new ge;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:fr.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(Rt||(Rt={}));var qo;(t=>{function n(){return{points:new ge,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(qo||(qo={}));var $o;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})($o||($o={}));var Yr;(t=>{function n(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:qo.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=n})(Yr||(Yr={}));var eg=typeof global=="object"&&global&&global.Object===Object&&global,Ms=eg;var tg=typeof self=="object"&&self&&self.Object===Object&&self,rg=Ms||tg||Function("return this")(),Ye=rg;var og=Ye.Symbol,bt=og;var vu=Object.prototype,ng=vu.hasOwnProperty,ig=vu.toString,ai=bt?bt.toStringTag:void 0;function sg(n){var t=ng.call(n,ai),e=n[ai];try{n[ai]=void 0;var r=!0}catch{}var o=ig.call(n);return r&&(t?n[ai]=e:delete n[ai]),o}var bu=sg;var ag=Object.prototype,lg=ag.toString;function cg(n){return lg.call(n)}var Su=cg;var ug="[object Null]",pg="[object Undefined]",wu=bt?bt.toStringTag:void 0;function dg(n){return n==null?n===void 0?pg:ug:wu&&wu in Object(n)?bu(n):Su(n)}var Vt=dg;function fg(n){return n!=null&&typeof n=="object"}var ht=fg;var mg="[object Symbol]";function hg(n){return typeof n=="symbol"||ht(n)&&Vt(n)==mg}var Xo=hg;function gg(n,t){for(var e=-1,r=n==null?0:n.length,o=Array(r);++e<r;)o[e]=t(n[e],e,n);return o}var Es=gg;var yg=Array.isArray,je=yg;var xg=1/0,_u=bt?bt.prototype:void 0,Tu=_u?_u.toString:void 0;function Au(n){if(typeof n=="string")return n;if(je(n))return Es(n,Au)+"";if(Xo(n))return Tu?Tu.call(n):"";var t=n+"";return t=="0"&&1/n==-xg?"-0":t}var Nu=Au;function vg(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Qe=vg;function bg(n){return n}var Bs=bg;var Sg="[object AsyncFunction]",wg="[object Function]",_g="[object GeneratorFunction]",Tg="[object Proxy]";function Ag(n){if(!Qe(n))return!1;var t=Vt(n);return t==wg||t==_g||t==Sg||t==Tg}var Yo=Ag;var Ng=Ye["__core-js_shared__"],Ds=Ng;var Iu=function(){var n=/[^.]+$/.exec(Ds&&Ds.keys&&Ds.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Ig(n){return!!Iu&&Iu in n}var Pu=Ig;var Pg=Function.prototype,Og=Pg.toString;function Cg(n){if(n!=null){try{return Og.call(n)}catch{}try{return n+""}catch{}}return""}var Dr=Cg;var Lg=/[\\^$.*+?()[\]{}|]/g,Mg=/^\[object .+?Constructor\]$/,Eg=Function.prototype,Bg=Object.prototype,Dg=Eg.toString,Gg=Bg.hasOwnProperty,Rg=RegExp("^"+Dg.call(Gg).replace(Lg,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Vg(n){if(!Qe(n)||Pu(n))return!1;var t=Yo(n)?Rg:Mg;return t.test(Dr(n))}var Ou=Vg;function Fg(n,t){return n?.[t]}var Cu=Fg;function zg(n,t){var e=Cu(n,t);return Ou(e)?e:void 0}var It=zg;var Ug=It(Ye,"WeakMap"),Gs=Ug;var Lu=Object.create,jg=function(){function n(){}return function(t){if(!Qe(t))return{};if(Lu)return Lu(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),Mu=jg;function kg(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}var Eu=kg;function Hg(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var Rs=Hg;var Wg=800,qg=16,$g=Date.now;function Xg(n){var t=0,e=0;return function(){var r=$g(),o=qg-(r-e);if(e=r,o>0){if(++t>=Wg)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var Bu=Xg;function Yg(n){return function(){return n}}var Du=Yg;var Kg=function(){try{var n=It(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Ko=Kg;var Qg=Ko?function(n,t){return Ko(n,"toString",{configurable:!0,enumerable:!1,value:Du(t),writable:!0})}:Bs,Gu=Qg;var Zg=Bu(Gu),Vs=Zg;function Jg(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var Ru=Jg;var ey=9007199254740991,ty=/^(?:0|[1-9]\d*)$/;function ry(n,t){var e=typeof n;return t=t??ey,!!t&&(e=="number"||e!="symbol"&&ty.test(n))&&n>-1&&n%1==0&&n<t}var Kr=ry;function oy(n,t,e){t=="__proto__"&&Ko?Ko(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var Qo=oy;function ny(n,t){return n===t||n!==n&&t!==t}var Qr=ny;var iy=Object.prototype,sy=iy.hasOwnProperty;function ay(n,t,e){var r=n[t];(!(sy.call(n,t)&&Qr(r,e))||e===void 0&&!(t in n))&&Qo(n,t,e)}var Zo=ay;function ly(n,t,e,r){var o=!e;e||(e={});for(var i=-1,s=t.length;++i<s;){var l=t[i],c=r?r(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?Qo(e,l,c):Zo(e,l,c)}return e}var kt=ly;var Vu=Math.max;function cy(n,t,e){return t=Vu(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=Vu(r.length-t,0),s=Array(i);++o<i;)s[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=e(s),Eu(n,this,l)}}var Fs=cy;function uy(n,t){return Vs(Fs(n,t,Bs),n+"")}var Fu=uy;var py=9007199254740991;function dy(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=py}var Jo=dy;function fy(n){return n!=null&&Jo(n.length)&&!Yo(n)}var Zr=fy;function my(n,t,e){if(!Qe(e))return!1;var r=typeof t;return(r=="number"?Zr(e)&&Kr(t,e.length):r=="string"&&t in e)?Qr(e[t],n):!1}var zu=my;function hy(n){return Fu(function(t,e){var r=-1,o=e.length,i=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(i=n.length>3&&typeof i=="function"?(o--,i):void 0,s&&zu(e[0],e[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var l=e[r];l&&n(t,l,r,i)}return t})}var Uu=hy;var gy=Object.prototype;function yy(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||gy;return n===e}var en=yy;function xy(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var ju=xy;var vy="[object Arguments]";function by(n){return ht(n)&&Vt(n)==vy}var bl=by;var ku=Object.prototype,Sy=ku.hasOwnProperty,wy=ku.propertyIsEnumerable,_y=bl(function(){return arguments}())?bl:function(n){return ht(n)&&Sy.call(n,"callee")&&!wy.call(n,"callee")},Gr=_y;function Ty(){return!1}var Hu=Ty;var $u=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Wu=$u&&typeof module=="object"&&module&&!module.nodeType&&module,Ay=Wu&&Wu.exports===$u,qu=Ay?Ye.Buffer:void 0,Ny=qu?qu.isBuffer:void 0,Iy=Ny||Hu,tn=Iy;var Py="[object Arguments]",Oy="[object Array]",Cy="[object Boolean]",Ly="[object Date]",My="[object Error]",Ey="[object Function]",By="[object Map]",Dy="[object Number]",Gy="[object Object]",Ry="[object RegExp]",Vy="[object Set]",Fy="[object String]",zy="[object WeakMap]",Uy="[object ArrayBuffer]",jy="[object DataView]",ky="[object Float32Array]",Hy="[object Float64Array]",Wy="[object Int8Array]",qy="[object Int16Array]",$y="[object Int32Array]",Xy="[object Uint8Array]",Yy="[object Uint8ClampedArray]",Ky="[object Uint16Array]",Qy="[object Uint32Array]",Re={};Re[ky]=Re[Hy]=Re[Wy]=Re[qy]=Re[$y]=Re[Xy]=Re[Yy]=Re[Ky]=Re[Qy]=!0;Re[Py]=Re[Oy]=Re[Uy]=Re[Cy]=Re[jy]=Re[Ly]=Re[My]=Re[Ey]=Re[By]=Re[Dy]=Re[Gy]=Re[Ry]=Re[Vy]=Re[Fy]=Re[zy]=!1;function Zy(n){return ht(n)&&Jo(n.length)&&!!Re[Vt(n)]}var Xu=Zy;function Jy(n){return function(t){return n(t)}}var rn=Jy;var Yu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,li=Yu&&typeof module=="object"&&module&&!module.nodeType&&module,ex=li&&li.exports===Yu,Sl=ex&&Ms.process,tx=function(){try{var n=li&&li.require&&li.require("util").types;return n||Sl&&Sl.binding&&Sl.binding("util")}catch{}}(),Rr=tx;var Ku=Rr&&Rr.isTypedArray,rx=Ku?rn(Ku):Xu,zs=rx;var ox=Object.prototype,nx=ox.hasOwnProperty;function ix(n,t){var e=je(n),r=!e&&Gr(n),o=!e&&!r&&tn(n),i=!e&&!r&&!o&&zs(n),s=e||r||o||i,l=s?ju(n.length,String):[],c=l.length;for(var p in n)(t||nx.call(n,p))&&!(s&&(p=="length"||o&&(p=="offset"||p=="parent")||i&&(p=="buffer"||p=="byteLength"||p=="byteOffset")||Kr(p,c)))&&l.push(p);return l}var Us=ix;function sx(n,t){return function(e){return n(t(e))}}var js=sx;var ax=js(Object.keys,Object),Qu=ax;var lx=Object.prototype,cx=lx.hasOwnProperty;function ux(n){if(!en(n))return Qu(n);var t=[];for(var e in Object(n))cx.call(n,e)&&e!="constructor"&&t.push(e);return t}var Zu=ux;function px(n){return Zr(n)?Us(n):Zu(n)}var on=px;function dx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var Ju=dx;var fx=Object.prototype,mx=fx.hasOwnProperty;function hx(n){if(!Qe(n))return Ju(n);var t=en(n),e=[];for(var r in n)r=="constructor"&&(t||!mx.call(n,r))||e.push(r);return e}var ep=hx;function gx(n){return Zr(n)?Us(n,!0):ep(n)}var mr=gx;var yx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xx=/^\w*$/;function vx(n,t){if(je(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||Xo(n)?!0:xx.test(n)||!yx.test(n)||t!=null&&n in Object(t)}var tp=vx;var bx=It(Object,"create"),Vr=bx;function Sx(){this.__data__=Vr?Vr(null):{},this.size=0}var rp=Sx;function wx(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var op=wx;var _x="__lodash_hash_undefined__",Tx=Object.prototype,Ax=Tx.hasOwnProperty;function Nx(n){var t=this.__data__;if(Vr){var e=t[n];return e===_x?void 0:e}return Ax.call(t,n)?t[n]:void 0}var np=Nx;var Ix=Object.prototype,Px=Ix.hasOwnProperty;function Ox(n){var t=this.__data__;return Vr?t[n]!==void 0:Px.call(t,n)}var ip=Ox;var Cx="__lodash_hash_undefined__";function Lx(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=Vr&&t===void 0?Cx:t,this}var sp=Lx;function nn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}nn.prototype.clear=rp;nn.prototype.delete=op;nn.prototype.get=np;nn.prototype.has=ip;nn.prototype.set=sp;var wl=nn;function Mx(){this.__data__=[],this.size=0}var ap=Mx;function Ex(n,t){for(var e=n.length;e--;)if(Qr(n[e][0],t))return e;return-1}var Jr=Ex;var Bx=Array.prototype,Dx=Bx.splice;function Gx(n){var t=this.__data__,e=Jr(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Dx.call(t,e,1),--this.size,!0}var lp=Gx;function Rx(n){var t=this.__data__,e=Jr(t,n);return e<0?void 0:t[e][1]}var cp=Rx;function Vx(n){return Jr(this.__data__,n)>-1}var up=Vx;function Fx(n,t){var e=this.__data__,r=Jr(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var pp=Fx;function sn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}sn.prototype.clear=ap;sn.prototype.delete=lp;sn.prototype.get=cp;sn.prototype.has=up;sn.prototype.set=pp;var eo=sn;var zx=It(Ye,"Map"),to=zx;function Ux(){this.size=0,this.__data__={hash:new wl,map:new(to||eo),string:new wl}}var dp=Ux;function jx(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var fp=jx;function kx(n,t){var e=n.__data__;return fp(t)?e[typeof t=="string"?"string":"hash"]:e.map}var ro=kx;function Hx(n){var t=ro(this,n).delete(n);return this.size-=t?1:0,t}var mp=Hx;function Wx(n){return ro(this,n).get(n)}var hp=Wx;function qx(n){return ro(this,n).has(n)}var gp=qx;function $x(n,t){var e=ro(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var yp=$x;function an(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}an.prototype.clear=dp;an.prototype.delete=mp;an.prototype.get=hp;an.prototype.has=gp;an.prototype.set=yp;var ci=an;var Xx="Expected a function";function _l(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(Xx);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=e.cache;if(i.has(o))return i.get(o);var s=n.apply(this,r);return e.cache=i.set(o,s)||i,s};return e.cache=new(_l.Cache||ci),e}_l.Cache=ci;var xp=_l;var Yx=500;function Kx(n){var t=xp(n,function(r){return e.size===Yx&&e.clear(),r}),e=t.cache;return t}var vp=Kx;var Qx=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Zx=/\\(\\)?/g,Jx=vp(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(Qx,function(e,r,o,i){t.push(o?i.replace(Zx,"$1"):r||e)}),t}),bp=Jx;function e0(n){return n==null?"":Nu(n)}var Sp=e0;function t0(n,t){return je(n)?n:tp(n,t)?[n]:bp(Sp(n))}var Ht=t0;var r0=1/0;function o0(n){if(typeof n=="string"||Xo(n))return n;var t=n+"";return t=="0"&&1/n==-r0?"-0":t}var oo=o0;function n0(n,t){t=Ht(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[oo(t[e++])];return e&&e==r?n:void 0}var ks=n0;function i0(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var ln=i0;var wp=bt?bt.isConcatSpreadable:void 0;function s0(n){return je(n)||Gr(n)||!!(wp&&n&&n[wp])}var _p=s0;function Tp(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=_p),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?Tp(l,t-1,e,r,o):ln(o,l):r||(o[o.length]=l)}return o}var Ap=Tp;function a0(n){var t=n==null?0:n.length;return t?Ap(n,1):[]}var Np=a0;function l0(n){return Vs(Fs(n,void 0,Np),n+"")}var Hs=l0;var c0=js(Object.getPrototypeOf,Object),cn=c0;var u0="[object Object]",p0=Function.prototype,d0=Object.prototype,Ip=p0.toString,f0=d0.hasOwnProperty,m0=Ip.call(Object);function h0(n){if(!ht(n)||Vt(n)!=u0)return!1;var t=cn(n);if(t===null)return!0;var e=f0.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Ip.call(e)==m0}var Ws=h0;function g0(n,t,e){var r=-1,o=n.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=n[r+t];return i}var Pp=g0;function y0(){this.__data__=new eo,this.size=0}var Op=y0;function x0(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var Cp=x0;function v0(n){return this.__data__.get(n)}var Lp=v0;function b0(n){return this.__data__.has(n)}var Mp=b0;var S0=200;function w0(n,t){var e=this.__data__;if(e instanceof eo){var r=e.__data__;if(!to||r.length<S0-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new ci(r)}return e.set(n,t),this.size=e.size,this}var Ep=w0;function un(n){var t=this.__data__=new eo(n);this.size=t.size}un.prototype.clear=Op;un.prototype.delete=Cp;un.prototype.get=Lp;un.prototype.has=Mp;un.prototype.set=Ep;var qs=un;function _0(n,t){return n&&kt(t,on(t),n)}var Bp=_0;function T0(n,t){return n&&kt(t,mr(t),n)}var Dp=T0;var Fp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Gp=Fp&&typeof module=="object"&&module&&!module.nodeType&&module,A0=Gp&&Gp.exports===Fp,Rp=A0?Ye.Buffer:void 0,Vp=Rp?Rp.allocUnsafe:void 0;function N0(n,t){if(t)return n.slice();var e=n.length,r=Vp?Vp(e):new n.constructor(e);return n.copy(r),r}var $s=N0;function I0(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var s=n[e];t(s,e,n)&&(i[o++]=s)}return i}var zp=I0;function P0(){return[]}var Xs=P0;var O0=Object.prototype,C0=O0.propertyIsEnumerable,Up=Object.getOwnPropertySymbols,L0=Up?function(n){return n==null?[]:(n=Object(n),zp(Up(n),function(t){return C0.call(n,t)}))}:Xs,pn=L0;function M0(n,t){return kt(n,pn(n),t)}var jp=M0;var E0=Object.getOwnPropertySymbols,B0=E0?function(n){for(var t=[];n;)ln(t,pn(n)),n=cn(n);return t}:Xs,Ys=B0;function D0(n,t){return kt(n,Ys(n),t)}var kp=D0;function G0(n,t,e){var r=t(n);return je(n)?r:ln(r,e(n))}var Ks=G0;function R0(n){return Ks(n,on,pn)}var Hp=R0;function V0(n){return Ks(n,mr,Ys)}var Qs=V0;var F0=It(Ye,"DataView"),Zs=F0;var z0=It(Ye,"Promise"),Js=z0;var U0=It(Ye,"Set"),ea=U0;var Wp="[object Map]",j0="[object Object]",qp="[object Promise]",$p="[object Set]",Xp="[object WeakMap]",Yp="[object DataView]",k0=Dr(Zs),H0=Dr(to),W0=Dr(Js),q0=Dr(ea),$0=Dr(Gs),wo=Vt;(Zs&&wo(new Zs(new ArrayBuffer(1)))!=Yp||to&&wo(new to)!=Wp||Js&&wo(Js.resolve())!=qp||ea&&wo(new ea)!=$p||Gs&&wo(new Gs)!=Xp)&&(wo=function(n){var t=Vt(n),e=t==j0?n.constructor:void 0,r=e?Dr(e):"";if(r)switch(r){case k0:return Yp;case H0:return Wp;case W0:return qp;case q0:return $p;case $0:return Xp}return t});var dn=wo;var X0=Object.prototype,Y0=X0.hasOwnProperty;function K0(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&Y0.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Kp=K0;var Q0=Ye.Uint8Array,Tl=Q0;function Z0(n){var t=new n.constructor(n.byteLength);return new Tl(t).set(new Tl(n)),t}var fn=Z0;function J0(n,t){var e=t?fn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Qp=J0;var ev=/\w*$/;function tv(n){var t=new n.constructor(n.source,ev.exec(n));return t.lastIndex=n.lastIndex,t}var Zp=tv;var Jp=bt?bt.prototype:void 0,ed=Jp?Jp.valueOf:void 0;function rv(n){return ed?Object(ed.call(n)):{}}var td=rv;function ov(n,t){var e=t?fn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var ta=ov;var nv="[object Boolean]",iv="[object Date]",sv="[object Map]",av="[object Number]",lv="[object RegExp]",cv="[object Set]",uv="[object String]",pv="[object Symbol]",dv="[object ArrayBuffer]",fv="[object DataView]",mv="[object Float32Array]",hv="[object Float64Array]",gv="[object Int8Array]",yv="[object Int16Array]",xv="[object Int32Array]",vv="[object Uint8Array]",bv="[object Uint8ClampedArray]",Sv="[object Uint16Array]",wv="[object Uint32Array]";function _v(n,t,e){var r=n.constructor;switch(t){case dv:return fn(n);case nv:case iv:return new r(+n);case fv:return Qp(n,e);case mv:case hv:case gv:case yv:case xv:case vv:case bv:case Sv:case wv:return ta(n,e);case sv:return new r;case av:case uv:return new r(n);case lv:return Zp(n);case cv:return new r;case pv:return td(n)}}var rd=_v;function Tv(n){return typeof n.constructor=="function"&&!en(n)?Mu(cn(n)):{}}var ra=Tv;var Av="[object Map]";function Nv(n){return ht(n)&&dn(n)==Av}var od=Nv;var nd=Rr&&Rr.isMap,Iv=nd?rn(nd):od,id=Iv;var Pv="[object Set]";function Ov(n){return ht(n)&&dn(n)==Pv}var sd=Ov;var ad=Rr&&Rr.isSet,Cv=ad?rn(ad):sd,ld=Cv;var Lv=1,Mv=2,Ev=4,cd="[object Arguments]",Bv="[object Array]",Dv="[object Boolean]",Gv="[object Date]",Rv="[object Error]",ud="[object Function]",Vv="[object GeneratorFunction]",Fv="[object Map]",zv="[object Number]",pd="[object Object]",Uv="[object RegExp]",jv="[object Set]",kv="[object String]",Hv="[object Symbol]",Wv="[object WeakMap]",qv="[object ArrayBuffer]",$v="[object DataView]",Xv="[object Float32Array]",Yv="[object Float64Array]",Kv="[object Int8Array]",Qv="[object Int16Array]",Zv="[object Int32Array]",Jv="[object Uint8Array]",eb="[object Uint8ClampedArray]",tb="[object Uint16Array]",rb="[object Uint32Array]",Be={};Be[cd]=Be[Bv]=Be[qv]=Be[$v]=Be[Dv]=Be[Gv]=Be[Xv]=Be[Yv]=Be[Kv]=Be[Qv]=Be[Zv]=Be[Fv]=Be[zv]=Be[pd]=Be[Uv]=Be[jv]=Be[kv]=Be[Hv]=Be[Jv]=Be[eb]=Be[tb]=Be[rb]=!0;Be[Rv]=Be[ud]=Be[Wv]=!1;function oa(n,t,e,r,o,i){var s,l=t&Lv,c=t&Mv,p=t&Ev;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!Qe(n))return n;var a=je(n);if(a){if(s=Kp(n),!l)return Rs(n,s)}else{var u=dn(n),d=u==ud||u==Vv;if(tn(n))return $s(n,l);if(u==pd||u==cd||d&&!o){if(s=c||d?{}:ra(n),!l)return c?kp(n,Dp(s,n)):jp(n,Bp(s,n))}else{if(!Be[u])return o?n:{};s=rd(n,u,l)}}i||(i=new qs);var f=i.get(n);if(f)return f;i.set(n,s),ld(n)?n.forEach(function(g){s.add(oa(g,t,e,g,n,i))}):id(n)&&n.forEach(function(g,v){s.set(v,oa(g,t,e,v,n,i))});var m=p?c?Qs:Hp:c?mr:on,h=a?void 0:m(n);return Ru(h||n,function(g,v){h&&(v=g,g=n[v]),Zo(s,v,oa(g,t,e,v,n,i))}),s}var na=oa;var ob=1,nb=4;function ib(n){return na(n,ob|nb)}var ui=ib;function sb(n,t){return n!=null&&t in Object(n)}var dd=sb;function ab(n,t,e){t=Ht(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=oo(t[r]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&Jo(o)&&Kr(s,o)&&(je(n)||Gr(n)))}var fd=ab;function lb(n,t){return n!=null&&fd(n,t,dd)}var md=lb;function cb(n){return function(t,e,r){for(var o=-1,i=Object(t),s=r(t),l=s.length;l--;){var c=s[n?l:++o];if(e(i[c],c,i)===!1)break}return t}}var hd=cb;var ub=hd(),gd=ub;function pb(n,t,e){(e!==void 0&&!Qr(n[t],e)||e===void 0&&!(t in n))&&Qo(n,t,e)}var pi=pb;function db(n){return ht(n)&&Zr(n)}var yd=db;function fb(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var di=fb;function mb(n){return kt(n,mr(n))}var xd=mb;function hb(n,t,e,r,o,i,s){var l=di(n,e),c=di(t,e),p=s.get(c);if(p){pi(n,e,p);return}var a=i?i(l,c,e+"",n,t,s):void 0,u=a===void 0;if(u){var d=je(c),f=!d&&tn(c),m=!d&&!f&&zs(c);a=c,d||f||m?je(l)?a=l:yd(l)?a=Rs(l):f?(u=!1,a=$s(c,!0)):m?(u=!1,a=ta(c,!0)):a=[]:Ws(c)||Gr(c)?(a=l,Gr(l)?a=xd(l):(!Qe(l)||Yo(l))&&(a=ra(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),pi(n,e,a)}var vd=hb;function bd(n,t,e,r,o){n!==t&&gd(t,function(i,s){if(o||(o=new qs),Qe(i))vd(n,t,s,e,bd,r,o);else{var l=r?r(di(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),pi(n,s,l)}},mr)}var Sd=bd;function gb(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var wd=gb;function yb(n,t){return t.length<2?n:ks(n,Pp(t,0,-1))}var _d=yb;var xb=Uu(function(n,t,e){Sd(n,t,e)}),_o=xb;function vb(n,t){return t=Ht(t,n),n=_d(n,t),n==null||delete n[oo(wd(t))]}var Td=vb;function bb(n){return Ws(n)?void 0:n}var Ad=bb;var Sb=1,wb=2,_b=4,Tb=Hs(function(n,t){var e={};if(n==null)return e;var r=!1;t=Es(t,function(i){return i=Ht(i,n),r||(r=i.length>1),i}),kt(n,Qs(n),e),r&&(e=na(e,Sb|wb|_b,Ad));for(var o=t.length;o--;)Td(e,t[o]);return e}),mn=Tb;function Ab(n,t,e,r){if(!Qe(n))return n;t=Ht(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=oo(t[o]),p=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];p=r?r(a,c,l):void 0,p===void 0&&(p=Qe(a)?a:Kr(t[o+1])?[]:{})}Zo(l,c,p),l=l[c]}return n}var Nd=Ab;function Nb(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=ks(n,s);e(l,s)&&Nd(i,Ht(s,n),l)}return i}var Id=Nb;function Ib(n,t){return Id(n,t,function(e,r){return md(n,r)})}var Pd=Ib;var Pb=Hs(function(n,t){return n==null?{}:Pd(n,t)}),hn=Pb;var fi;(o=>{o.identity={...Is.identity,hiddenMatrix:Xr.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,s){return{position:Ho.isEqual(i.position,s.position)?null:s.position,rotation:Ho.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:Ho.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:Xr.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(fi||(fi={}));var Al;(t=>t.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Al||(Al={}));var Qt;(t=>t.defaultData={states:new ge,events:new ge,visible:!0,raycastLock:!1,physics:null,...fi.identity})(Qt||(Qt={}));var Od;(t=>t.defaultData={type:"Empty",...Qt.defaultData})(Od||(Od={}));var To;(t=>t.defaultData={type:"Mesh",...Qt.defaultData,...Ls.defaultData})(To||(To={}));var ia;(t=>t.defaultData={...Qt.defaultData,...fi.identity,...So.defaultData})(ia||(ia={}));var Cd;(t=>{function n(e){return{...Qt.defaultData,...Cs.defaultData(e)}}t.defaultData=n})(Cd||(Cd={}));var Ld;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:Xr.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Al.defaultData,states:new ge,events:new ge,...So.defaultData},o.defaultMeshObject={name:"Rectangle",...Qt.defaultData,...To.defaultData,geometry:Yr.defaultData("RectangleGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...Qt.defaultData,...To.defaultData,geometry:Yr.defaultData("BooleanGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...Qt.defaultData,...To.defaultData,geometry:Yr.defaultData("TextGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")}))(Ld||(Ld={}));var Md;(e=>{function n(r,o){if(o===void 0)return r;let i={...r};return"material"in i&&"material"in o&&o.material&&(i.material=il(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&_o(p,c)}}).data),i.materials&&o.materials&&(i.materials=il(i.materials,s=>{for(let l=0;l<i.materials.length;l++){let c=o.materials[l];if(typeof c!="string")for(let[p,a]of Object.entries(c.layers)){let u=s[l]?.layers?.data(p);u&&_o(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,fi.merge(i,o)),Wo.is(r.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=o;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(r.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=n(i,o);else if(Os.is(r.type)){let s=o;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=Nt.clone(s.color))}return i}e.patch=t})(Md||(Md={}));var gn;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(gn||(gn={}));var sa;(t=>t.defaultData={orbitControls:gn.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((e,r)=>{let o=0,i=0;return r<5?i=-30:r<10&&(i=30),r===0||r===10||r===5?o=30:(r===4||r===11||r===9)&&(o=-30),[120,[o,i],"show"]}),gameControlObject:null})(sa||(sa={}));function Ao(n,t){return Object.setPrototypeOf(n,t),n}function Ed(n){return Array.isArray(n)?n:[n]}var aa;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Ao(r,Ge.prototype)}e.defaultColors=n;function t(){return{materials:new Ge,images:new Ge,colors:new Ge,audios:new Ge,fonts:new Ge,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(aa||(aa={}));var mi=require("three");function Bd(n){n.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],i=[0,1];for(let l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...hn(Tt(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,s)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...Tt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function la(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function ca(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in r&&typeof r.material!="string"&&t(r.material)})}function Ob(n){Object.assign(n.scene.publish,{orbitControls:{...gn.defaultData,...Tt(n.scene.publish.orbitControls)}})}function Cb(n){Object.assign(n.scene.publish.settings,{video:{...sa.defaultData.settings.video,...Tt(n.scene.publish.settings.video)}})}function Lb(n){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,i]of Object.entries(r))if((yu.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(xu.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(s=>{t(s)})})})}function Mb(n){n.scene.publish.withBackground=!0}function Eb(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function Bb(n){n.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function Db(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function Gb(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.parent(t);e.type==="Mesh"&&(!r||n.scene.objects.data(r).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function Dd(n){n.layers===void 0&&Object.assign(n,Rt.defaultTwoLayerData("lambert"))}function Nl(n){!n.layers||n.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...Tt(t),colors:e,steps:r};Object.assign(t,o)}})}function Rb(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function Gd(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Nl(r)}):"material"in e&&typeof e.material!="string"&&Nl(e.material)}),Object.values(n.shared.materials).forEach(t=>Nl(t))}function Vb(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function Fb(n){n.shared.audios=Ao({},Ge.prototype)}function zb(n){let t=n.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function Ub(n){Object.entries(Tt(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(Tt(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function jb(n){n.scene.publish.settings.web.preload=!1}function Rd(n){n.layers&&n.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function kb(n){n.shared.fonts=Ao({},Ge.prototype)}function Hb(n){return n.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function Wb(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=Rt.defaultTwoLayerData("phong"),s=typeof o.color=="string"?n.shared.colors[o.color]:o.color;i.layers[1].data.color={r:s.r,g:s.g,b:s.b},i.layers[1].data.alpha=o.alpha;let l=Hb(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...Qt.defaultData,...To.defaultData,flatShading:!1,wireframe:!1,geometry:{...Yr.defaultData("TextGeometry"),width:o.width,height:o.height,font:l,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:Tt(o.states),events:Tt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},p=Tt(n.scene.objects).parent(e);n.scene.objects.insertAfter(p??null,e,[{id:e+"new",data:c,children:[]}]),t.push(e)}}),t.forEach(e=>{n.scene.objects.delete(e)})}function qb(n){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};n.scene.objects.traverse((e,r)=>{r.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new ge,move:new ge,jump:new ge}});else{let i=new ge;Object.assign(o,{actions:i}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&i.push({fi:0,id:mi.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((s,l,c)=>{let p={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},a={easing:s.easing,duration:s.duration};s.easing===6?Object.assign(a,hn(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(a,{control1:{...s.control1},control2:{...s.control2}});let u={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},d={state:s.state,...u,...a},f={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new ge({fi:0,id:mi.MathUtils.generateUUID(),data:p},{fi:1,id:mi.MathUtils.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function $b(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new ge,l=[];if(e.events.forEach((c,p,a)=>{if(c.type==="Audio"&&c.trigger===i){let u;l.push(p),c.interaction==="play"?u={...hn(c,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in c?c.after:void 0,toggle:"after"in c?c.toggle:void 0,type:"Audio"}:(c.interaction==="pause"||c.interaction==="stop")&&(u={...hn(c,"interaction","delay","object","playAudio"),type:"Audio"}),u&&s.push({fi:a,id:p,data:u})}}),l.forEach(c=>e.events.delete(c)),s.length){let c=e.events.find(p=>p.type===o)?.data;c?"actions"in c&&c.actions.insertBefore(null,s):e.events.insertBefore(null,[{id:mi.MathUtils.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function Vd(n){let t=n.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=fr.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function Xb(n){la(n,Vd),ca(n,Vd)}var Fd=22;function zd(n){let t=n.schema??0;t!==Fd&&(console.warn("updating from ",t,"to ",Fd),t<1&&(ca(n,Bd),la(n,Bd),n.schema=1),t<2&&(Ob(n),n.schema=2),t<3&&(Lb(n),n.schema=3),t<4&&(Mb(n),n.schema=4),t<5&&(Eb(n),n.schema=5),t<6&&(Bb(n),n.schema=6),t<7&&(Db(n),n.schema=7),t<8&&(Gb(n),n.schema=8),t<9&&(Gd(n),n.schema=9),t<10&&(Rb(n),n.schema=10),t<11&&(Vb(n),n.schema=11),t<12&&(Gd(n),n.schema=12),t<13&&(Fb(n),n.schema=13),t<14&&(zb(n),n.schema=14),t<15&&(Ub(n),n.schema=15),t<16&&(jb(n),n.schema=16),t<17&&(ca(n,Rd),la(n,Rd),n.schema=17),t<18&&(ca(n,Dd),la(n,Dd),n.schema=18),t<19&&(Cb(n),n.schema=19),t<20&&(kb(n),Wb(n),n.schema=20),t<21&&(qb(n),$b(n),n.schema=21),t<22&&(Xb(n),n.schema=22))}var ua;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(ua||(ua={}));var Ke=require("three");var Ud=require("three"),Il=class extends Ud.Object3D{},pa=class extends Il{constructor(e){super();this.object=e;this.matrixAutoUpdate=!0}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return!0}get isLight(){return!1}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){return this.object.geometry}get material(){return this.object.material}};var No=class extends Ke.Object3D{constructor(e,r={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Ke.Vector3),i=.1;this.parameters=Ps.defaultData(o.toArray(),i),_o(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters)}this.children.forEach(e=>e.updateMatrix())}_updateCount(){let e=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count;if(this.children.length!==e)if(this.children.length<e)for(let r=0,o=e-this.children.length;r<o;++r){let i=new pa(this.object);i.visible=!0,this.add(i),this.parameters.hideBase&&this.setHideBase(!0)}else for(let r=0,o=this.children.length-e;r<o;++r)this.remove(this.children[0])}_updateRadial(e){let r=e.radial,o=r.start*Ke.MathUtils.DEG2RAD,i=r.end*Ke.MathUtils.DEG2RAD,s=o-i,l=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD),c;switch(r.axis){case"z":c=new Ke.Vector3(0,0,1);break;case"y":c=new Ke.Vector3(0,1,0);break;default:case"x":c=new Ke.Vector3(1,0,0);break}for(let[p,a]of this.children.entries()){a.scale.x=r.scale[0],a.scale.y=r.scale[1],a.scale.z=r.scale[2],a.position.setScalar(0);let u=s/e.count*p-o;switch(r.axis){case"x":a.rotation.set(0,u,0);break;case"y":a.rotation.set(0,0,u);break;case"z":a.rotation.set(u,0,0);break}a.translateOnAxis(c,r.radius),a.position.x+=r.position[0],a.position.y+=r.position[1],a.position.z+=r.position[2],r.alignment===!0?(a.rotation.x+=l.x,a.rotation.y+=l.y,a.rotation.z+=l.z):a.rotation.copy(l)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Ke.Euler(r.rotation[0]*Ke.MathUtils.DEG2RAD,r.rotation[1]*Ke.MathUtils.DEG2RAD,r.rotation[2]*Ke.MathUtils.DEG2RAD);for(let[i,s]of this.children.entries())s.scale.x=1+(r.scale[0]-1)*i,s.scale.y=1+(r.scale[1]-1)*i,s.scale.z=1+(r.scale[2]-1)*i,s.rotation.x=o.x*i,s.rotation.y=o.y*i,s.rotation.z=o.z*i,s.position.x=r.position[0]*i,s.position.y=r.position[1]*i,s.position.z=r.position[2]*i}_updateGrid(e){let r=0,o=e.grid;if(o.useCenter===!0){let i={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},s=new Ke.Vector3(o.size[0]*(o.count[0]-i.x)*.5,o.size[1]*(o.count[1]-i.y)*.5,o.size[2]*(o.count[2]-i.z)*.5);for(let l=0;l<o.count[0];l++)for(let c=0;c<o.count[1];c++)for(let p=0;p<o.count[2];p++){let a=this.children[r++];a.scale.setScalar(1),a.rotation.set(0,0,0),a.position.x=o.size[0]*l-s.x,a.position.y=o.size[1]*c-s.y,a.position.z=o.size[2]*p-s.z}}else for(let i=0;i<o.count[0];i++)for(let s=0;s<o.count[1];s++)for(let l=0;l<o.count[2];l++){let c=this.children[r++];c.scale.setScalar(1),c.rotation.set(0,0,0),c.position.x=o.size[0]*i,c.position.y=-o.size[1]*s,c.position.z=-o.size[2]*l}}fromClonerState(e){return e.hideBase!==void 0&&this.setHideBase(e.hideBase),_o(this.parameters,e),this.update(),this}};var Mr=require("three");var ze=require("three");var jd=require("three"),hr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new jd.BoxGeometry(30,30,30),t};var pt=require("three");var gt=require("three"),da=new gt.Ray,Pl=new gt.Sphere,kd=new gt.Matrix4,gr=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Pl.copy(i.boundingSphere),Pl.applyMatrix4(s),e.ray.intersectsSphere(Pl)===!1||(kd.copy(s).invert(),da.copy(e.ray).applyMatrix4(kd),i.boundingBox!==null&&da.intersectsBox(i.boundingBox)===!1))return;let l,c,p,a,u=i.index,d=i.attributes.position,f=i.drawRange,m,h;if(o===!1){let v=Math.max(0,f.start),x=Math.min(u.count,f.start+f.count);for(m=v,h=x;m<h;m+=3)if(c=u.getX(m),p=u.getX(m+1),a=u.getX(m+2),l=g(n,e,da,d,c,p,a),l){l.faceIndex=Math.floor(m/3),r.push(l);return}}else{let x=i.attributes.position,w=new gt.Vector3,S=new gt.Vector3,b=new gt.Vector3,I=new gt.Vector3,_=2,P=1/((n.scale.x+n.scale.y+n.scale.z)/3),A=P*P,O=Math.max(0,f.start),T=Math.min(x.count,f.start+f.count);for(let L=O,B=T-1;L<B;L+=_){if(w.fromBufferAttribute(x,L),S.fromBufferAttribute(x,L+1),da.distanceSqToSegment(w,S,I,b)>A)continue;I.applyMatrix4(n.matrixWorld);let te=e.ray.origin.distanceTo(I);te<e.near||te>e.far||r.push({distance:te,point:b.clone().applyMatrix4(n.matrixWorld),object:n})}}function g(v,x,w,S,b,I,_){let y=new gt.Vector3,P=new gt.Vector3,A=new gt.Vector3,O=new gt.Vector3,T=new gt.Vector3;if(y.fromBufferAttribute(S,b),P.fromBufferAttribute(S,I),A.fromBufferAttribute(S,_),w.intersectTriangle(y,P,A,!1,O)===null)return null;T.copy(O),T.applyMatrix4(v.matrixWorld);let B=x.ray.origin.distanceTo(T);return B<x.near||B>x.far?null:{faceIndex:1,distance:B,point:T.clone(),object:v}}};var fa=new pt.Vector3,Wt=new pt.Camera,Ol=class extends pt.LineSegments{constructor(e){let r=new pt.BufferGeometry,o=new pt.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new pt.Color(15711266),p=new pt.Color(15711266),a=new pt.Color(2857471);u("n1","n2",c),u("n2","n4",c),u("n4","n3",c),u("n3","n1",c),u("f1","f2",c),u("f2","f4",c),u("f4","f3",c),u("f3","f1",c),u("n1","f1",c),u("n2","f2",c),u("n3","f3",c),u("n4","f4",c),u("p","n1",p),u("p","n2",p),u("p","n3",p),u("p","n4",p),u("u1","u2",a),u("u2","u3",a),u("u3","u1",a);function u(f,m,h){d(f,h),d(m,h)}function d(f,m){i.push(0,0,0),s.push(m.r,m.g,m.b),l[f]===void 0&&(l[f]=[]),l[f].push(i.length/3-1)}r.setAttribute("position",new pt.Float32BufferAttribute(i,3)),r.setAttribute("color",new pt.Float32BufferAttribute(s,3));super(r,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=l,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;Wt.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,s=1,l=o?.8:1e-4;Zt("n1",r,e,Wt,-i,-s,l),Zt("n2",r,e,Wt,i,-s,l),Zt("n3",r,e,Wt,-i,s,l),Zt("n4",r,e,Wt,i,s,l);let c=l;Zt("f1",r,e,Wt,-i,-s,c),Zt("f2",r,e,Wt,i,-s,c),Zt("f3",r,e,Wt,-i,s,c),Zt("f4",r,e,Wt,i,s,c);let p=c,a=.5;Zt("u1",r,e,Wt,i*.7*a,s*1.1,p),Zt("u2",r,e,Wt,-i*.7*a,s*1.1,p),Zt("u3",r,e,Wt,0,s*(1.1+.9*a),p),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Zt(n,t,e,r,o,i,s){fa.set(o,i,s).unproject(r);let l=t[n];if(l!==void 0){let c=e.getAttribute("position");for(let p=0,a=l.length;p<a;p++)c.setXYZ(l[p],fa.x,fa.y,fa.z)}}var ma=class extends hr(Ol){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,r){gr(this.object,this.geometry,e,r,!0)}};var Hd=require("three");var yn=class extends hr(Hd.DirectionalLightHelper){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){gr(this.object,yn.geometryHelper,e,r)}};var Wd=require("three");var xn=class extends hr(Wd.AxesHelper){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){gr(this.object,xn.geometryHelper,e,r)}update(){}};var qd=require("three");var vn=class extends hr(qd.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){gr(this.object,vn.geometryHelper,e,r)}};var ga=require("three");var ha=class extends hr(ga.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){gr(this.object,ha.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=ha._vector,r=this.object.distance?this.object.distance:1e3,o=r*Math.tan(this.object.angle);this.cone.scale.set(o,o,r),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,l=this.cone.material.length;s<l;s++)this.cone.material[s].color.set(i);else this.cone.material.color.set(i)}}},gi=ha;gi._vector=new ga.Vector3;var he=require("three"),yi=1e-12,bn=class{constructor(t){this.position=new he.Vector2;this.startPosition=new he.Vector2;this.uuid=he.MathUtils.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new bn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},Sn=class extends bn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new Sn(this.parent).copy(this)}},Jt=class extends bn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new Sn(this),new Sn(this))}static create(e,r){let o=new Jt(e,new he.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,i=this.controls.length;o<i;o++){let s=this.controls[o];this.position.distanceTo(s.position)<=r?s.position.copy(this.position):s.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new Jt(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new he.Vector2,r=new he.Vector2){let[o,i]=this.computeTangents();return o&&i&&($d(o,e),$d(i,r)),[e,r]}computeTangent(e=new he.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new he.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function $d(n,t=new he.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var Ll=n=>n,wn=new he.Vector2,ya=new he.Vector2,Kb=new he.Vector2,Qb=new he.Vector2,Zb=new he.Vector2,Jb=new he.Vector2,Yd=new he.Vector3,Kd=new he.Vector3;function Qd(n){let t=new he.Vector2;t.addVectors(n.v0,wn.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new he.Vector2;return e.addVectors(n.v2,ya.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new he.CubicBezierCurve(n.v0,t,e,n.v2)}function xi(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function eS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function tS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function Ml(n,t,e){let r=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((o*o+r*r-i*i)/(2*o*r))}function Zd(n,t,e){return Xd(n,t)&&Xd(t,e)&&Cl(n.position,t.position,e.position)}function Cl(n,t,e){return wn.copy(t).sub(n).cross(ya.copy(e).sub(n))===0}function Jd(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),s=(n.y+t.y)/2,l=(n.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,p=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(l+c,s+p),o.set(l-c,s-p),[r,o]}function ef(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function tf(n,t,e,r,o,i){let s=t.x-n.x,l=t.y-n.y,c=e.x-n.x,p=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+p)*(l+p)),u;return Ml(t,n,e)>Math.PI&&(a*=-1),xi(p,l)?u=(l+p)*(r/a-.5)*8/3/(s-c):u=(s+c)*(r/a-.5)*8/3/(p-l),o.set(t.x-u*l,t.y+u*s),i.set(e.x+u*p,e.y-u*c),[o,i]}function El(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Xd(n,t){return Cl(n.position,n.controls[1].position,t.position)&&Cl(n.position,t.controls[0].position,t.position)}function rf(n,t,e,r,o=.5){let i=wn.subVectors(t,n).multiplyScalar(o).add(n),s=ya.subVectors(e,t).multiplyScalar(o).add(t),l=Kb.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=Qb.subVectors(s,i).multiplyScalar(o).add(i),a=Zb.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=Jb.subVectors(a,p).multiplyScalar(o).add(p);return[n.x,n.y,c.x,c.y,p.x,p.y,d.x,d.y,a.x,a.y,u.x,u.y,r.x,r.y]}function of(n,t,e=12,r=!0){let o=Kd.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=Ll(t[c]),a=wn,u=no(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof he.CubicBezierCurve||p instanceof he.QuadraticBezierCurve||p instanceof he.LineCurve){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&tS(i,o))continue;i===void 0&&(i=Yd),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function nf(n,t,e,r=12,o=!0){let i=Kd.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=Ll(t[c]),u=wn,d=no(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof he.CubicBezierCurve||a instanceof he.QuadraticBezierCurve||a instanceof he.LineCurve){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=Yd:(n.setXYZ(s,p.x,p.y,p.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),p.copy(i)}}return o&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),l}function Bl(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=no(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=no(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=no(n[0].roundedCurveCorner,t)*.5),r}function no(n,t=12){return n&&n instanceof he.EllipseCurve?t*2:n&&(n instanceof he.LineCurve||n instanceof he.LineCurve3)?1:n&&n instanceof he.SplineCurve?t*n.points.length:t}function sf(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=Ll(t[s]),c=no(l,e),p=wn;for(let a=0;a<=c;a++)if(l instanceof he.CubicBezierCurve||l instanceof he.QuadraticBezierCurve||l instanceof he.LineCurve){if(l.getPoint(a/c,p),o!==void 0&&eS(o,p,yi))continue;o===void 0&&(o=ya),o.copy(p),n.push(p.x,p.y),i++}}return xi(n[0],n[n.length-2],yi)&&xi(n[1],n[n.length-1],yi)&&(n.pop(),n.pop()),r&&i>1&&!(xi(n[i-1],n[1],yi)&&xi(n[i-2],n[0],yi))&&(n.push(n[0],n[1]),i++),n}var fo=require("three");var Se=require("three");var Dl=new Se.Vector2,rS=new Se.Vector2,oS=new Se.Vector2,nS=new Se.Vector2,iS=new Se.Vector2,sS=new Se.Vector2,_e=class extends Se.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new Se.EventDispatcher;this.plane=new Se.Plane(new Se.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=Se.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new _e;return i.isClosed=e.isClosed,i.points=e.points.map(s=>Jt.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>_e.createFromState(s)),r!==void 0&&o!==void 0&&i.applySize(r,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=r;for(let s=0,l=this.shapeHoles.length;s<l;s++){let c=this.shapeHoles[s],p=c.points.length,a=c.getPointIndexById(e);if(a<0)i+=p;else return a+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let r=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=e-r;if(l<=s.points.length-1)return s.points[l];r+=s.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=s.points.indexOf(e);if(l>=0)return r+l;r+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=Dl.set(e,r);for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i];l.position.multiply(o),l.controls[0].position.multiply(o),l.controls[1].position.multiply(o)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=Se.MathUtils.generateUUID()){let i;e instanceof Se.Vector2?i=e:i=new Se.Vector2(e,r);let s=new Jt(o,i);return s.roundness=this.roundness,s}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(i.uuid===e)return i}for(let r=0,o=this.shapeHoles.length;r<o;r++){let s=this.shapeHoles[r].getPointByUuid(e);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(e=!0){for(let r=0,o=this.shapeHoles.length;r<o;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return of(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Bl(this.points,e,!1),this.roundedCurveDivisions=Bl(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return nf(e,this.curves,r,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),sf(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=r?this.roundedCurveDivisions:this.curveDivisions,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=no(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=i.reduce((c,p)=>c+p,0));for(let c=0,p=i.length;c<p;c++){let a=i[c];if(l<o+a)return[c,(l-o+1)/a];o+=a}return[0,1]}getCurveT(e,r,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(El(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(Dl.set(o.x,o.y))/u}let p=0;for(let u=0;u<e;u++)p+=l[u];return(r-p)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){El(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,r.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let l=this.points[o-1];this._applyCurveForPoint(s,l)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i],c=this.points[i-1]??this.points[this.points.length-1],p=this.points[i+1]??this.points[0],a=l.roundness,u=c&&p&&Zd(c,l,p);if(!l.controlsMoved()&&a>0&&!u){let d=l.curveBefore,f=l.curveAfter;if(d===void 0||f===void 0)continue;let m=l.roundedCurveBefore,h=l.roundedCurveAfter,g=d.getLength(),v=f.getLength(),x=Math.min(a,g*.499),w=Math.min(a,v*.499),S=Math.min(x,w),b=1-S/g,I=S/v,_=d.getPointAt(b,Dl),y=f.getPointAt(I,rS);this._subSplitCurve(d,m,b,_,void 0),this._subSplitCurve(f,h,I,void 0,y);let P;if(this.useCubicForRoundedCorners){let A=Ml(_,l.position,y)/2,O=Math.tan(A)*_.distanceTo(l.position),[T,L]=Jd(_,y,O,oS,nS),B=ef(T,L,l.position),[j,te]=tf(B,_,y,O,iS,sS);P=new Se.CubicBezierCurve(_.clone(),j.clone(),te.clone(),y.clone())}else P=new Se.QuadraticBezierCurve(_.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=P,this.roundedCurves.splice(i+o,0,P),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof Se.LineCurve)i!==void 0&&r.v2.copy(i),s!==void 0&&r.v1.copy(s);else{let l=e,c=r,p=l.getUtoTmapping(o,0),a=rf(l.v0,l.v1,l.v2,l.v3,p);return i!==void 0&&(c.v0.set(a[0],a[1]),c.v1.set(a[2],a[3]),c.v2.set(a[4],a[5]),c.v3.set(a[6],a[7])),s!==void 0&&(c.v0.set(a[6],a[7]),c.v1.set(a[8],a[9]),c.v2.set(a[10],a[11]),c.v3.set(a[12],a[13])),c}return r}clone(){let e=new _e(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let i=o*7,s=e.points[i+0],l=e.points[i+1],c=e.points[i+2],p=e.points[i+3],a=e.points[i+4],u=e.points[i+5],d=e.points[i+6],f=new Jt(Se.MathUtils.generateUUID(),new Se.Vector2(s,l));f.controls[0].position.set(c,p),f.controls[1].position.set(a,u),f.roundness=d,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new _e;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof Se.CubicBezierCurve&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},o=i=>{let s=[],l,c;for(l=0,c=i.length;l<c;l++)i[l]instanceof Se.QuadraticBezierCurve&&(i[l]=Qd(i[l]));for(l=0,c=i.length;l<c;l++){let u=i[l],d=l>0?i[l-1]:null,f;u instanceof Se.CubicBezierCurve?(f=this.createPoint(u.v0),f.controls[1].position.copy(u.v1)):u instanceof Se.LineCurve&&(f=this.createPoint(u.v1)),f!==void 0&&(d!==null&&r(f,d),s.push(f))}let p=i[i.length-1],a=!1;return p instanceof Se.CubicBezierCurve?p.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(p.v2),a=!0):p instanceof Se.LineCurve&&p.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof Se.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new _e;return s.fromShape(i),s})),this.update(),this}};var Po=require("three");var Me;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Me||(Me={}));var Ze;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(Ze||(Ze={}));function ue(n,t){if(!n)throw t||"Assertion Failed!"}var le=function(){function n(){}return n.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},n.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},n.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},n.edgeGoesLeft=function(t){return n.vertLeq(t.Dst,t.Org)},n.edgeGoesRight=function(t){return n.vertLeq(t.Org,t.Dst)},n.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},n.edgeEval=function(t,e,r){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-r.t)*(o/(o+i)):e.t-r.t+(r.t-t.t)*(i/(o+i)):0},n.edgeSign=function(t,e,r){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?(e.t-r.t)*o+(e.t-t.t)*i:0},n.transEval=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-r.s)*(o/(o+i)):e.s-r.s+(r.s-t.s)*(i/(o+i)):0},n.transSign=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?(e.s-r.s)*o+(e.s-t.s)*i:0},n.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},n.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},n.intersect=function(t,e,r,o,i){var s,l,c;n.vertLeq(t,e)||(c=t,t=e,e=c),n.vertLeq(r,o)||(c=r,r=o,o=c),n.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.vertLeq(r,e)?n.vertLeq(e,o)?(s=n.edgeEval(t,r,e),l=n.edgeEval(r,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,e.s)):(s=n.edgeSign(t,r,e),l=-n.edgeSign(t,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(c=t,t=e,e=c),n.transLeq(r,o)||(c=r,r=o,o=c),n.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.transLeq(r,e)?n.transLeq(e,o)?(s=n.transEval(t,r,e),l=n.transEval(r,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,e.t)):(s=n.transSign(t,r,e),l=-n.transSign(t,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,o.t)):i.t=(r.t+e.t)/2},n}(),vi=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),xa=function(){function n(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),n}(),_n=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),af=function(){function n(){var t=new _n,e=new vi,r=new xa(0),o=new xa(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return n.prototype.makeEdge_=function(t){var e=new xa(0),r=new xa(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},n.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},n.prototype.makeVertex_=function(t,e,r){var o=t;ue(o,"Vertex can't be null!");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;ue(o,"Face can't be null");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var s=e;do s.Lface=o,s=s.Lnext;while(s!==e)},n.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},n.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var t=new _n,e=new _n,r=new vi,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},n.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new _n;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new vi;this.makeFace_(s,e,t.Lface),t.Lface.anEdge=t}}},n.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new vi;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},n.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new _n;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},n.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},n.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!r){var s=new vi;this.makeFace_(s,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,s,l;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),i=r.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(r));while(r!=e);s=t.prev,l=t.next,l.prev=s,s.next=l},n.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},n.prototype.mergeConvexFaces=function(t){var e,r,o,i,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,s=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=t&&le.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&le.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,s,l,c,p;for(i=t,i=t;(o=i.next)!==t;i=o){ue(o.prev===i),c=o.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(ue(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){ue(s.prev===l),c=s.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(ue(s.prev===l&&s.anEdge===null),p=r,p=r;(c=p.next)!==r;p=c)ue(c.Sym.next===p.Sym),ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Org!==null),ue(c.Dst!==null),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c);ue(c.Sym.next===p.Sym&&c.Sym===this.eHeadSym&&c.Sym.Sym===c&&c.Org===null&&c.Dst===null&&c.Lface===null&&c.Rface===null)},n}(),lf=function(){function n(){this.handle=null}return n}(),cf=function(){function n(){this.key=null,this.node=0}return n}(),aS=function(){function n(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new lf,this.handles[r]=new cf;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t<<1,s<this.size&&this.leq(r[e[s+1].handle].key,r[e[s].handle].key)&&++s,ue(s<=this.max),i=e[s].handle,s>this.size||this.leq(r[o].key,r[i].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t>>1,i=e[s].handle,s===0||this.leq(r[i].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new lf;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new cf}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},n.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;ue(t>=1&&t<=this.max&&r[t].key!==null),o=r[t].node,e[o].handle=e[this.size].handle,r[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(r[e[o>>1].handle].key,r[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},n}(),Gl=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),uf=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),lS=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new uf,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(t){return this.insertBefore(this.head,t)},n.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},n.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new uf;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},n.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},n}(),cS=function(){function n(){}return n.regionBelow=function(t){return t.nodeUp.prev.key},n.regionAbove=function(t){return t.nodeUp.next.key},n.debugEvent=function(t){},n.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.edgeLeq=function(t,e,r){var o=t.event,i=e.eUp,s=r.eUp;if(i.Dst===o)return s.Dst===o?le.vertLeq(i.Org,s.Org)?le.edgeSign(s.Dst,i.Org,s.Org)<=0:le.edgeSign(i.Dst,s.Org,i.Org)>=0:le.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return le.edgeSign(i.Dst,o,i.Org)>=0;var l=le.edgeEval(i.Dst,o,i.Org),c=le.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&ue(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){ue(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},n.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(t,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(t){var e=t.eUp.Dst;do t=n.regionAbove(t);while(t.eUp.Dst===e);return t},n.addRegionBelow=function(t,e,r){var o=new Gl;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},n.isWindingInside=function(t,e){switch(t.windingRule){case Me.ODD:return(e&1)!==0;case Me.NONZERO:return e!==0;case Me.POSITIVE:return e>0;case Me.NEGATIVE:return e<0;case Me.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},n.computeWinding=function(t,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(t,e.windingNumber)},n.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,n.deleteRegion(t,e)},n.finishLeftRegions=function(t,e,r){for(var o,i=null,s=e,l=e.eUp;s!==r;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(t,s);break}o=t.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}l.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(l,o)),n.finishRegion(t,s),l=i.eUp,s=i}return l},n.addRightEdges=function(t,e,r,o,i,s){var l,c,p,a,u=!0;p=r;do ue(le.vertLeq(p.Org,p.Dst)),n.addRegionBelow(t,e,p.Sym),p=p.Onext;while(p!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),c=e,a=i;l=n.regionBelow(c),p=l.eUp.Sym,p.Org===a.Org;)p.Onext!==a&&(t.mesh.splice(p.Oprev,p),t.mesh.splice(a.Oprev,p)),l.windingNumber=c.windingNumber-p.winding,l.inside=n.isWindingInside(t,l.windingNumber),c.dirty=!0,!u&&n.checkForRightSplice(t,c)&&(n.addWinding(p,a),n.deleteRegion(t,c),t.mesh.delete(a)),u=!1,c=l,a=p;c.dirty=!0,ue(c.windingNumber-p.winding===l.windingNumber),s&&n.walkDirtyRegions(t,c)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=le.vertL1dist(e,t),i=le.vertL1dist(r,t),s=.5*i/(o+i),l=.5*o/(o+i);t.coords[0]+=s*e.coords[0]+l*r.coords[0],t.coords[1]+=s*e.coords[1]+l*r.coords[1],t.coords[2]+=s*e.coords[2]+l*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,s)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(le.vertLeq(o.Org,i.Org)){if(le.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;le.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),n.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=r.dirty=!0)}else{if(le.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},n.checkForLeftSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s;if(ue(!le.vertEq(o.Dst,i.Dst)),le.vertLeq(o.Dst,i.Dst)){if(le.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,s),s.Lface.inside=e.inside}else{if(le.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),s.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s=o.Org,l=i.Org,c=o.Dst,p=i.Dst,a,u,d=new _n,f,m;if(ue(!le.vertEq(p,c)),ue(le.edgeSign(c,t.event,s)<=0),ue(le.edgeSign(p,t.event,l)>=0),ue(s!==t.event&&l!==t.event),ue(!e.fixUpperEdge&&!r.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),u=Math.max(l.t,p.t),a>u))return!1;if(le.vertLeq(s,l)){if(le.edgeSign(p,s,l)>0)return!1}else if(le.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),le.intersect(c,s,p,l,d),ue(Math.min(s.t,c.t)<=d.t),ue(d.t<=Math.max(l.t,p.t)),ue(Math.min(p.s,c.s)<=d.s),ue(d.s<=Math.max(l.s,s.s)),le.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=le.vertLeq(s,l)?s:l,le.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),le.vertEq(d,s)||le.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!le.vertEq(c,t.event)&&le.edgeSign(c,t.event,d)>=0||!le.vertEq(p,t.event)&&le.edgeSign(p,t.event,d)<=0?p===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=n.topLeftRegion(t,e),o=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),r),n.addRightEdges(t,e,o.Oprev,o,o,!0),!0):c===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),m=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,m,!0),!0):(le.edgeSign(c,t.event,d)>=0&&(n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),le.edgeSign(p,t.event,d)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,s,c,l,p),n.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},n.walkDirtyRegions=function(t,e){for(var r=n.regionBelow(e),o,i;;){for(;r.dirty;)e=r,r=n.regionBelow(r);if(!e.dirty&&(r=e,e=n.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=r.eUp,o.Dst!==i.Dst&&n.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(n.deleteRegion(t,r),t.mesh.delete(i),r=n.regionBelow(e),i=r.eUp):e.fixUpperEdge&&(n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(n.checkForIntersect(t,e))return}else n.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(n.addWinding(i,o),n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r))}},n.connectRightVertex=function(t,e,r){var o,i=r.Onext,s=n.regionBelow(e),l=e.eUp,c=s.eUp,p=!1;if(l.Dst!==c.Dst&&n.checkForIntersect(t,e),le.vertEq(l.Org,t.event)&&(t.mesh.splice(i.Oprev,l),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),s),p=!0),le.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=n.finishLeftRegions(t,s,null),p=!0),p){n.addRightEdges(t,e,r.Onext,i,i,!0);return}le.vertLeq(c.Org,l.Org)?o=c.Oprev:o=l,o=t.mesh.connect(r.Lprev,o),n.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(t,e)},n.connectLeftDegenerate=function(t,e,r){var o,i,s,l,c;if(o=e.eUp,le.vertEq(o.Org,r)){ue(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!le.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),n.sweepEvent(t,r);return}ue(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(ue(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),le.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,s.Onext,l,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,s,l,c,p=new Gl;if(p.eUp=e.anEdge.Sym,r=t.dict.search(p).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,le.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=le.vertLeq(l.Dst,s.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var a=t.mesh.connect(l.Dnext,e.anEdge);c=a.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,c):n.computeWinding(t,n.addRegionBelow(t,r,c)),n.sweepEvent(t,e)}else n.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},n.sweepEvent=function(t,e){t.event=e,n.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){n.connectLeftVertex(t,e);return}var o=n.topLeftRegion(t,r.activeRegion);ue(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(t,i,null);l.Onext===s?n.connectRightVertex(t,o,l):n.addRightEdges(t,o,l.Onext,s,s,!0)},n.addSentinel=function(t,e,r,o){var i=new Gl,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},n.initEdgeDict=function(t){t.dict=new lS(t,n.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,s=t.bmin[1]-r,l=t.bmax[1]+r;n.addSentinel(t,o,i,s),n.addSentinel(t,o,i,l)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(ue(e.fixUpperEdge),ue(++r===1)),ue(e.windingNumber===0),n.deleteRegion(t,e)},n.removeDegenerateEdges=function(t){var e,r,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=r)r=e.next,o=e.Lnext,le.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(n.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},n.initPriorityQ=function(t){var e,r,o,i=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)i++;for(i+=8,e=t.pq=new aS(i,le.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},n.donePriorityQ=function(t){t.pq=null},n.removeDegenerateFaces=function(t,e){var r,o,i;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,i=r.anEdge,ue(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),t.mesh.delete(i));return!0},n.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(n.removeDegenerateEdges(t),!n.initPriorityQ(t))return!1;for(n.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!le.vertEq(o,r));)o=t.pq.extractMin(),n.spliceMergeVertices(t,r.anEdge,o.anEdge);n.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,n.debugEvent(t),n.doneEdgeDict(t),n.donePriorityQ(t),n.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},n}(),uS=function(){function n(){this.mesh=new af,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=Me.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return n.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},n.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},n.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},n.prototype.computeNormal_=function(t){var e,r,o,i,s,l,c=[0,0,0],p=[0,0,0],a=[0,0,0],u=[0,0,0],d=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)i=e.coords[g],p[g]=i,m[g]=e,c[g]=i,f[g]=e;for(e=h.next;e!==h;e=e.next)for(var v=0;v<3;++v)i=e.coords[v],i<p[v]&&(p[v]=i,m[v]=e),i>c[v]&&(c[v]=i,f[v]=e);var x=0;if(c[1]-p[1]>c[0]-p[0]&&(x=1),c[2]-p[2]>c[x]-p[x]&&(x=2),p[x]>=c[x]){t[0]=0,t[1]=0,t[2]=1;return}for(l=0,r=m[x],o=f[x],a[0]=r.coords[0]-o.coords[0],a[1]=r.coords[1]-o.coords[1],a[2]=r.coords[2]-o.coords[2],e=h.next;e!==h;e=e.next)u[0]=e.coords[0]-o.coords[0],u[1]=e.coords[1]-o.coords[1],u[2]=e.coords[2]-o.coords[2],d[0]=a[1]*u[2]-a[2]*u[1],d[1]=a[2]*u[0]-a[0]*u[2],d[2]=a[0]*u[1]-a[1]*u[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>l&&(l=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);l<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(a)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.anEdge);if(i<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),r=this.sUnit,o=this.tUnit;var s=this.longAxis_(e);r[s]=0,r[(s+1)%3]=1,r[(s+2)%3]=0,o[s]=0,o[(s+1)%3]=0,o[(s+2)%3]=e[s]>0?1:-1;for(var l=t.next;l!==t;l=l.next)l.s=this.dot_(l.coords,r),l.t=this.dot_(l.coords,o);i&&this.checkOrientation_();for(var c=!0,p=t.next;p!==t;p=p.next)c?(this.bmin[0]=this.bmax[0]=p.s,this.bmin[1]=this.bmax[1]=p.t,c=!1):(p.s<this.bmin[0]&&(this.bmin[0]=p.s),p.s>this.bmax[0]&&(this.bmax[0]=p.s),p.t<this.bmin[1]&&(this.bmin[1]=p.t),p.t>this.bmax[1]&&(this.bmax[1]=p.t))},n.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;le.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;le.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(le.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(le.edgeGoesLeft(o.Lnext)||le.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(le.edgeGoesRight(r.Lprev)||le.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)i=t.connect(r,r.Lprev),r=i.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},n.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},n.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},n.prototype.setWindingNumber_=function(t,e,r){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:r?t.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},n.prototype.outputPolymesh_=function(t,e,r,o){var i,s=0,l=0,c;r>3&&t.mergeConvexFaces(r);for(var p=t.vHead.next;p!==t.vHead;p=p.next)p.n=-1;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(a.n=-1,!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;p.n===-1&&(p.n=l,l++),c++,i=i.Lnext}while(i!==a.anEdge);if(c>r)throw"Face vertex greater that support polygon";a.n=s,++s}this.elementCount=s,e===Ze.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var p=t.vHead.next;p!==t.vHead;p=p.next)if(p.n!==-1){var u=p.n*o;this.vertices[u+0]=p.coords[0],this.vertices[u+1]=p.coords[1],o>2&&(this.vertices[u+2]=p.coords[2]),this.vertexIndices[p.n]=p.idx}for(var d=0,a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var p=i.Org;this.elements[d++]=p.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1;if(e===Ze.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){o=r=l.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var c=0,p=0,a=0;i=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){s=0,o=r=l.anEdge;do this.vertices[c++]=r.Org.coords[0],this.vertices[c++]=r.Org.coords[1],e>2&&(this.vertices[c++]=r.Org.coords[2]),this.vertexIndices[p++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,s++,r=r.Lnext;while(r!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new af),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},n.prototype.tesselate=function(t,e,r,o,i,s){if(t===void 0&&(t=Me.ODD),e===void 0&&(e=Ze.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),cS.computeInterior(this,s);var l=this.mesh;return e===Ze.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===Ze.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function Io(n){var t=n.windingRule,e=t===void 0?Me.ODD:t,r=n.elementType,o=r===void 0?Ze.POLYGONS:r,i=n.polySize,s=i===void 0?3:i,l=n.vertexSize,c=l===void 0?2:l,p=n.normal,a=p===void 0?[0,0,1]:p,u=n.contours,d=u===void 0?[]:u,f=n.strict,m=f===void 0?!0:f,h=n.debug,g=h===void 0?!1:h;if(!d&&m)throw new Error("Contours can't be empty");if(!!d){var v=new uS;n.edgeCreateCallback&&(v.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(v.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<d.length;x++)v.addContour(c||2,d[x]);return v.tesselate(e,o,s,c,a,m),{vertices:v.vertices,vertexIndices:v.vertexIndices,vertexCount:v.vertexCount,elements:v.elements,elementCount:v.elementCount,mesh:g?v.mesh:void 0}}}var r3=Me.ODD,o3=Me.NONZERO,n3=Me.POSITIVE,i3=Me.NEGATIVE,s3=Me.ABS_GEQ_TWO,a3=Ze.POLYGONS,l3=Ze.CONNECTED_POLYGONS,c3=Ze.BOUNDARY_CONTOURS;var Tn=class extends Po.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Me.ODD;this.elementType=Ze.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Me.ODD,elementType:Ze.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(m=>m.extractShapePointsToFlatArray([],this._curveSegments)),l,c=!0,p=!0,a,u;for(let m=0,h=i.length/2;m<h;m++){let g=m*2,v=i[g+0],x=i[g+1];if(a!==void 0&&v!==a&&(c=!1),u!==void 0&&x!==u&&(p=!1),a=v,u=x,!c&&!p)break}!c&&!p&&(l=Io({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new Po.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new Po.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new Po.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new Po.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,v=-1/0;for(let S=0,b=d;S<b;S++){let I=S*2,_=l.vertices[I+0],y=l.vertices[I+1];_<m&&(m=_),_>h&&(h=_),y<g&&(g=y),y>v&&(v=y)}let x=h-m,w=v-g;for(let S=0,b=d;S<b;S++){let I=S*2,_=l.vertices[I+0],y=l.vertices[I+1],P=(_-m)/x,A=(y-g)/w;this._positionAttribute.setXYZ(S,_,y,0),this._normalAttribute.setXYZ(S,0,0,1),this._uvAttribute.setXY(S,P,A)}for(let S=0,b=f;S<b;S++){let I=S*3,_=l.elements[I+0],y=l.elements[I+1],P=l.elements[I+2];this._indexAttribute.setX(I+0,_),this._indexAttribute.setX(I+1,y),this._indexAttribute.setX(I+2,P)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(l?.elementCount??1)*3)}clone(){let e=new Tn(this._shape,this._curveSegments);return e.userData=ui(this.userData),e}};var Oo=require("three");var va=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*va.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*va.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*t);s+=3*t;let c=new Float32Array(o,s*i,3*t);s+=3*t;let p=new Float32Array(o,s*i,2*t);l.set(this.positions.slice(0,this.size*3)),c.set(this.normals.slice(0,this.size*3)),p.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=l,this.normals=c,this.uvs=p,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},bi=va;bi.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Rl=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),An=class extends Oo.BufferGeometry{constructor(e,r,o=0,i=12,s=3,l=Me.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,r/2-1e-12),this._bevelSegments=Math.floor(s));let c=this._shape.extractShapePointsToFlatArray([],i),p=this._shape.shapeHoles.map(y=>{let P=y.extractShapePointsToFlatArray([],i),A=[];for(let O=P.length-1;O>=1;O-=2){let T=P[O-1],L=P[O-0];A.push(T,L)}return A}),a=Io({windingRule:l,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),u=Io({windingRule:Me.ODD,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...p]});if(!a)throw new Error("error generating geometry");let d=a.elementCount;if(u){a.elementCount+=u.elementCount;for(let y=0;y<u.elements.length;y++){let P=u.elements[y],A=y%2===0?a.vertexCount:0;a.elements.push(P+A)}for(let y=0;y<u.vertexIndices.length;y++){let P=u.vertexIndices[y],A=a.vertexCount;a.vertexIndices.push(P+A)}for(let y=0;y<u.vertices.length;y++){let P=u.vertices[y];a.vertices.push(P)}}let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let y=0,P=a.vertexCount;y<P;y++){let A=y*2,O=a.vertices[A+0],T=a.vertices[A+1];O<f&&(f=O),O>m&&(m=O),T<h&&(h=T),T>g&&(g=T)}this._minX=f,this._minY=h,this._width=m-f,this._height=g-h;let v=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new bi(v);let x=[],w=[];for(let y=a.elementCount-1;y>=0;y--){let P=y>=d,A=y*2,O=a.elements[A+0],T=a.elements[A+1],L=O+T,B={start:O,count:T,normals:[],continuous:[],concave:[]},j=O,te=L-1,ne=O+1,ae=this._shape.roundedCurves.length;do{let F=j-O,M=a.vertices[te*2+0],D=a.vertices[te*2+1],E=a.vertices[j*2+0],k=a.vertices[j*2+1],Q=a.vertices[ne*2+0],H=a.vertices[ne*2+1],V=E-M,R=k-D,z=Math.sqrt(V*V+R*R);V/=z,R/=z;let Z=E-Q,re=k-H,se=Math.sqrt(Z*Z+re*re);Z/=se,re/=se,B.normals[F*2+0]=-re,B.normals[F*2+1]=Z,B.concave[F]=V*re-R*Z>0;let ee=a.vertexIndices[j];if(Array.isArray(ee))B.continuous[F]=!1;else{let[J,K]=this._shape.getCurveIndexFromVertexId(ee-1,!0);if(K>0&&K<1)B.continuous[F]=!0;else{let X=K===1?J+1:J-1;X=(X+ae)%ae;let me=K===1?0:1,de=this._shape.roundedCurves[J].getTangent(K),xe=this._shape.roundedCurves[X].getTangent(me);B.continuous[F]=de.dot(xe)>.95}}P&&(B.normals[F*2+0]*=-1,B.normals[F*2+1]*=-1),[te,j,ne]=[j,ne,ne+1],ne>=L&&(ne-=T)}while(ne!==O+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(O*2,L*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((F,M)=>[M,M]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(O*2,L*2)});for(let F=1;F<=this._bevelSegments;F++){let M=F/this._bevelSegments*Math.PI/2,D=(1-Math.cos(M))*this._bevelSize,E=[],k=[],Q=[],H=[],V=0;for(let z=0;z<T;z++){let Z=z*2,re=(z-1+T)%T*2,se=a.vertices[B.start*2+Z+0],ee=a.vertices[B.start*2+Z+1],J=-B.normals[re+0]*D,K=-B.normals[re+1]*D,X=-B.normals[Z+0]*D,me=-B.normals[Z+1]*D;if(B.concave[z]||!B.concave[z]&&P){let de=Math.atan2(K,J),xe=Math.atan2(me,X);xe>de&&(xe-=Math.PI*2);let nt=xe-de;if(B.continuous[z]||P){let Ne=de+nt/2,Pe=Math.cos(Ne)*D,Le=Math.sin(Ne)*D;E[2*V+0]=se+Pe*(P?-1:1),E[2*V+1]=ee+Le*(P?-1:1),H[V]=z,V++}else{let Ne=Math.max(1,Math.floor(i/4*Math.abs(nt)/Math.PI));for(let Pe=0;Pe<=Ne;Pe++){let Le=de+nt*(Pe/Ne),Ut=Math.cos(Le)*D,kr=Math.sin(Le)*D;E[2*V+0]=se+Ut,E[2*V+1]=ee+kr,H[V]=z,V++}}}else E[2*V+0]=se+J,E[2*V+1]=ee+K,H[V]=z,k[z]=V,V++,E[2*V+0]=se,E[2*V+1]=ee,H[V]=z,V++,E[2*V+0]=se+X,E[2*V+1]=ee+me,H[V]=z,Q[z]=V,V++}let R=Io({windingRule:Me.POSITIVE,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[E],edgeCreateCallback:z=>{let re=z.Org.idx,se=H[re],ee=H[(re+1)%H.length];z.idx=[se,ee],z.Sym.idx=[ee,se]},vertexIdCallback:z=>{let Z=z.Lprev.idx;return[Z?Z[1]:0,z.idx[0]]}});if(!R)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!R.vertexCount)break;for(let z=0;z<R.vertexIndices.length;z++){let[Z,re]=R.vertexIndices[z];if(Z===re)continue;let se=re;re<Z&&(se+=T);for(let ee=Z;ee<se;ee++){let J=ee%T,K=(ee+1)%T;if(!B.continuous[J]||!B.continuous[K]){R.vertexIndices[z]=[Z,J],R.vertexIndices.splice(z+1,0,[K,re]),R.vertices.splice((z+1)*2,0,R.vertices[z*2],R.vertices[z*2+1]);break}}}U.push({bevelI:F,angle:M,size:D,boundary:R,reverseMap:H,insetPoints:E})}let W=(F,M,D)=>{let E=0,k=F.boundary.vertexIndices.length;for(;E<k&&D(F.boundary.vertexIndices[M]);)M=(M+1)%k,E++;return E},q=x.length;for(let F=1;F<U.length;F++){let M=U[F-1],D=U[F],E=M.boundary.vertexIndices.length,k=D.boundary.vertexIndices.length;if(!E||!k)break;let Q=B.concave.length,H=0,V=Rl(H,T);for(;!M.boundary.vertexIndices.filter(V).length||!D.boundary.vertexIndices.filter(V).length;)H++,V=Rl(H,T);let R=M.boundary.vertexIndices.findIndex(V),z=D.boundary.vertexIndices.findIndex(V);do R=(R+1)%E;while(V(M.boundary.vertexIndices[R]));do z=(z+1)%k;while(V(D.boundary.vertexIndices[z]));H=(H+1)%T;let Z=H,re=this.buildBevelVert(B,M,(R-1+E)%E),se=this.buildBevelVert(B,D,(z-1+k)%k),ee=re,J=se,K,X,me=!1;do{V=Rl(H,T);let de=W(M,R,V),xe=W(D,z,V),nt=me;if(me=!1,de&&!xe){for(let Ne=0;Ne<de;Ne++)K=this.buildBevelVert(B,M,(R+Ne)%E,Ne/(de-1)),x.push(ee.topN,K.topP,J.topN),x.push(K.bottomP,ee.bottomN,J.bottomN),ee=K;me=!0}else if(!de&&xe)for(let Ne=0;Ne<xe;Ne++)X=this.buildBevelVert(B,D,(z+Ne)%k,Ne/(xe-1)),x.push(J.topN,ee.topP,X.topP),x.push(ee.bottomP,J.bottomN,X.bottomP),J=X;else if(de&&xe)if(K=this.buildBevelVert(B,M,R,0),X=this.buildBevelVert(B,D,z,0),nt?(x.push(ee.topN,X.topP,J.topN),x.push(ee.topN,K.topP,X.topP),x.push(X.bottomP,ee.bottomN,J.bottomN),x.push(X.bottomP,K.bottomP,ee.bottomN)):(x.push(J.topN,ee.topN,K.topP),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,ee.bottomN,J.bottomN),x.push(K.bottomP,J.bottomN,X.bottomP)),ee=K,J=X,de===xe)for(let Ne=1;Ne<de;Ne++)K=this.buildBevelVert(B,M,(R+Ne)%E,Ne/(de-1)),X=this.buildBevelVert(B,D,(z+Ne)%k,Ne/(xe-1)),x.push(ee.topN,K.topP,J.topN),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,ee.bottomN,J.bottomN),x.push(K.bottomP,J.bottomN,X.bottomP),ee=K,J=X;else if(de>xe){let Ne=de/xe,Pe=0;for(let Le=1;Le<de;Le++)K=this.buildBevelVert(B,M,(R+Le)%E,Le/(de-1)),x.push(ee.topN,K.topP,J.topN),x.push(K.bottomP,ee.bottomN,J.bottomN),ee=K,Le>(Pe+1)*Ne&&(Pe++,X=this.buildBevelVert(B,D,(z+Pe)%k,Pe/(xe-1)),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,J.bottomN,X.bottomP),J=X)}else{let Ne=xe/de,Pe=0;for(let Le=1;Le<xe;Le++)X=this.buildBevelVert(B,D,(z+Le)%k,Le/(xe-1)),x.push(J.topN,K.topP,X.topP),x.push(K.bottomP,J.bottomN,X.bottomP),J=X,Le>(Pe+1)*Ne&&(Pe++,K=this.buildBevelVert(B,M,(R+Pe)%E,Pe/(de-1)),x.push(ee.topN,K.topP,J.topN),x.push(K.bottomP,ee.bottomN,J.bottomN),ee=K)}R=(R+de)%E,z=(z+xe)%k,H=(H+1)%Q}while(H!==Z)}{let F=U[0];for(let M=0,D=F.boundary.vertexCount;M<D;M++){let E=this.buildBevelVert(B,F,M),k=this.buildBevelVert(B,F,(M+1)%D);x.push(k.topP,E.topN,E.bottomN),x.push(k.topP,E.bottomN,k.bottomP)}}if(P){let F=[];for(let M=x.length-1;M>=q+2;M-=3){let D=x[M-2],E=x[M-1],k=x[M-0];F.push(k,E,D)}x.splice(q,x.length-q,...F)}if(P){let F=[];for(let M=U[U.length-1].boundary.vertices.length-1;M>=1;M-=2){let D=U[U.length-1].boundary.vertices[M-1],E=U[U.length-1].boundary.vertices[M-0];F.push(D,E)}w.push(F)}if(!P){let F=U[U.length-1],M=Io({windingRule:U.length>1?Me.POSITIVE:Me.ODD,elementType:Ze.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...w]});if(!M)throw new Error("Error generating geometry for surface");p.length===0&&Object.assign(this,{capStartIndex:x.length});for(let D=0;D<M.elementCount*3;D+=3){let E=this.buildSurfaceVert(M,M.elements[D+0]),k=this.buildSurfaceVert(M,M.elements[D+1]),Q=this.buildSurfaceVert(M,M.elements[D+2]);x.push(E.top,k.top,Q.top),x.push(Q.bottom,k.bottom,E.bottom)}}this.vertexCache={}}this._buffer.shrink();let S=new Oo.BufferAttribute(Uint32Array.from(x),1),b=new Oo.BufferAttribute(this._buffer.positions,3),I=new Oo.BufferAttribute(this._buffer.normals,3),_=new Oo.BufferAttribute(this._buffer.uvs,2);b.needsUpdate=!0,I.needsUpdate=!0,_.needsUpdate=!0,S.needsUpdate=!0,this.setAttribute("position",b),this.setAttribute("normal",I),this.setAttribute("uv",_),this.setIndex(S)}buildSurfaceVert(e,r){let o=r.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,p=this._buffer.get(2),a=p*3,u=p*2,d={top:p+0,bottom:p+1};return this._buffer.positions[a+0]=i,this._buffer.positions[a+1]=s,this._buffer.positions[a+2]=this._depth,this._buffer.normals[a+0]=0,this._buffer.normals[a+1]=0,this._buffer.normals[a+2]=1,this._buffer.uvs[u+0]=l,this._buffer.uvs[u+1]=c,this._buffer.positions[a+3]=i,this._buffer.positions[a+4]=s,this._buffer.positions[a+5]=0,this._buffer.normals[a+3]=0,this._buffer.normals[a+4]=0,this._buffer.normals[a+5]=-1,this._buffer.uvs[u+2]=l,this._buffer.uvs[u+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,i=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],p,a,u,d;l!==c?(a=l,p=c,d=!1,u=e.continuous[a]&&e.continuous[p]):(p=l,a=(p-1+e.count)%e.count,d=e.concave[p]&&r.bevelI>0,u=e.continuous[p]||d);let f=Math.cos(r.angle),m=Math.sin(r.angle),h=o*2,g=p*2,v=a*2,x=r.boundary.vertices[h+0],w=r.boundary.vertices[h+1],S=(1-m)*this._bevelSize,b=(x-this._minX)/this._width,I=(w-this._minY)/this._height,_=e.normals[g+0],y=e.normals[g+1],P=e.normals[v+0],A=e.normals[v+1];if(d){let j=P-_,te=A-y;_=_+j*(1-i),y=y+te*(1-i);let ne=Math.sqrt(_*_+y*y);_/=ne,y/=ne}let O=this._buffer.get(u?2:4),T=O*3,L=O*2,B={i:o,fi:p,topP:O+0,topN:O+0,bottomP:O+1,bottomN:O+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-S,this._buffer.normals[T+0]=_*f,this._buffer.normals[T+1]=y*f,this._buffer.normals[T+2]=m,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=S,this._buffer.normals[T+3]=_*f,this._buffer.normals[T+4]=y*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=b,u||(O+=2,T+=6,L+=4,B.topP=O+0,B.bottomP=O+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-S,this._buffer.normals[T+0]=P*f,this._buffer.normals[T+1]=A*f,this._buffer.normals[T+2]=m,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=I,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=S,this._buffer.normals[T+3]=P*f,this._buffer.normals[T+4]=A*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[L+2]=I,this._buffer.uvs[L+3]=b),this.vertexCache[s]=B,B}clone(){let e=new An(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=ui(this.userData),e}};var dt=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Me.ODD},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??t?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof _e?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new _e(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new _e(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let l;return t<=0?l=new Tn(n.shape,o,{windingRule:s}):l=new An(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};var ja=require("three");var ff=require("three");var Ve=require("three"),df=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),r=e.width/2,o=e.radiusTop??r,i=e.radiusBottom??r;return o===i?(o=r,i=r):o>i?(o=r,i=i*r/o):(o=o*r/i,i=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,radiusTop:p,radiusBottom:a,cornerRadius:u,cornerSegments:d,hollow:f}=n.parameters,m;return u||f?m=new Si(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new Ve.CylinderGeometry(p,a,r,o,i,s,l,c*Math.PI/180),m.scale(1,1,e/t),Object.assign(m,{userData:{...n,type:"CylinderGeometry"}})}};function io(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function pf(n){return new Ve.Vector2(n.y,-n.x)}var Si=class extends Ve.BufferGeometry{constructor(t,e,r,o,i,s,l,c,p,a,u,d,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,i=Math.floor(i)||1,s=s!==void 0?s:!1,l=l!==void 0?l:0,c=c!==void 0?c:Math.PI*2,s&&(p=0,a=0);let m=[],h=[],g=[],v=[],x=0,w=r/2,S=new Ve.Vector3,b=new Ve.Vector3;f&&t==0&&(t=p),f&&e==0&&(e=a);let I=new Ve.Vector2(t,w),_=new Ve.Vector2(e,-w),y=null,P=null,A=null,O=null,T=I.clone().sub(_),L=0,B=0,j=0;d>0&&(L=Math.min(t,e)*(1-d),B=t-L,j=e-L);let te=I.clone();te.x-=L;let ne=Math.PI-T.angle(),ae=T.angle(),U=Math.tan(ae/2),W=Math.tan(ne/2),q=U+W,F=d?q:W,M=d?q:U;if(p=Math.min(p,(t-B)/F,T.length()/q),a=Math.min(a,(e-j)/M,T.length()/q),p>0){let V=p/U;y=I.clone().sub(new Ve.Vector2(V,p)),d&&(A=y.clone(),A.x-=L-q*p),I.sub(T.clone().setLength(V))}if(a>0){let V=a/W;P=_.clone().sub(new Ve.Vector2(V,-a)),_.add(T.clone().setLength(V)),d&&(O=P.clone(),O.x-=L-q*a,te.sub(T.clone().setLength(V)))}T=I.clone().sub(_);let D=T.length()<.5,E=[];for(let V=0;V<=o;V++){let R=[],z=V/o,Z=z*c+l,re=new Ve.Vector2(Math.sin(Z),Math.cos(Z));O&&P?(k(R,z,re,ne,a,O,-1,!0),k(R,z,re,ae,a,P,-1,!1)):P?(Q(R,re,P.x,0,-1),k(R,z,re,ae,a,P,-1,!1)):s||Q(R,re,e,j,-1);let se=pf(T).normalize();if(io(se,re,S),!D)for(let ee=0;ee<=i;ee++){let J=ee/i,K=T.clone().multiplyScalar(J).add(_);io(K,re,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),v.push(z,.5+b.y/r),R.push(x++)}if(A&&y?(k(R,z,re,ne,p,y,1,!1),k(R,z,re,ae,p,A,1,!0)):y?(k(R,z,re,ne,p,y,1,!1),Q(R,re,y.x,0,1)):s||Q(R,re,t,B,1),d&&!D){let ee=pf(T).multiplyScalar(-1).normalize();io(ee,re,S);for(let J=0;J<=i;J++){let K=J/i,X=T.clone().multiplyScalar(-K).add(te);io(X,re,b),h.push(b.x,b.y,b.z),g.push(S.x,S.y,S.z),v.push(z,.5+b.y/r),R.push(x++)}}d&&!s&&R.push(R[0]),E.push(R)}for(let V=0;V<E.length-1;V++)for(let R=0;R<E[0].length-1;R++){if(s&&d&&R==i)continue;let z=E[V][R],Z=E[V+1][R],re=E[V+1][R+1],se=E[V][R+1],ee=h[re*3+0],J=h[re*3+2];m.push(z,Z,se),(ee!=0||J!=0)&&m.push(Z,re,se)}c<Math.PI*2&&(H(-1,E[0],l),H(1,E[E.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new Ve.Float32BufferAttribute(h,3)),this.setAttribute("normal",new Ve.Float32BufferAttribute(g,3)),this.setAttribute("uv",new Ve.Float32BufferAttribute(v,2));function k(V,R,z,Z,re,se,ee,J){for(let K=0;K<u+1;K++){let X=K/u,me=ee<0?X:1-X;J&&(me-=1),me*=Z;let de=new Ve.Vector2(Math.sin(me),Math.cos(me)*ee),xe=de.clone().multiplyScalar(re).add(se);io(xe,z,b),h.push(b.x,b.y,b.z),io(de,z,S),g.push(S.x,S.y,S.z),v.push(R,.5+b.y/r),V.push(x++)}}function Q(V,R,z,Z,re){let se=new Ve.Vector3,ee=new Ve.Vector2,J=[z,Z];re<0&&J.reverse();for(let K of J)ee.set(K,w*re),io(ee,R,se),h.push(se.x,se.y,se.z),g.push(0,re,0),v.push(.5,.5),V.push(x++)}function H(V,R,z){let Z=new Ve.Vector2(Math.sin(z),Math.cos(z)),re=new Ve.Vector2(-Math.cos(z),Math.sin(z)),se=new Ve.Vector3,ee=V<0?(X,me,de)=>m.push(X,me,de):(X,me,de)=>m.push(X,de,me),J=new Ve.Vector2((t+e+B+j)/4,0);io(J,Z,se),h.push(se.x,se.y,se.z),g.push(re.x,0,re.y),v.push(.5,.5);let K=x++;for(let X of R){let me=h.slice(X*3,X*3+3);h.push(...me),g.push(re.x,0,re.y);let de=v.slice(X*2,X*2+2);v.push(...de),x++}for(let X=K+1;X<x-1;X++)ee(K,X,X+1);ee(K,x-1,K+1)}}};var mf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:p,cornerRadiusBottom:a,cornerSegments:u}=n.parameters,d;return p>0||a>0||c<360?d=new Si(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new ff.ConeGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Pt=require("three"),hf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:i,depthSegments:s,cornerRadius:l,cornerSegments:c}=n.parameters,p;return l==0?p=new Pt.BoxGeometry(t,e,r,o,i,s):p=new Fl(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},Vl=Math.PI/2,Fl=class extends Pt.BufferGeometry{constructor(t=1,e=1,r=1,o=1,i=1,s=1,l=0,c=4){super(),this.type="BoxGeometry";let p=this;o=Math.floor(o),i=Math.floor(i),s=Math.floor(s),c=Math.floor(c),l=Math.min(l,t/2,e/2,r/2);let a=[],u=[],d=[],f=[],m=0,h=0;g("z","y","x",-1,-1,r,e,t,s,i,0),g("z","y","x",1,-1,r,e,-t,s,i,1),g("x","z","y",1,1,t,r,e,o,s,2),g("x","z","y",1,-1,t,r,-e,o,s,3),g("x","y","z",1,-1,t,e,r,o,i,4),g("x","y","z",-1,-1,t,e,-r,o,i,5),l>0&&(v("z","y","x",-1,-1,1,r,e,t,s,0),v("z","y","x",1,-1,-1,r,e,t,s,1),v("z","y","x",-1,1,-1,r,e,t,s,1),v("z","y","x",1,1,1,r,e,t,s,0),v("x","y","z",-1,-1,-1,t,e,r,o,0),v("x","y","z",1,-1,1,t,e,r,o,1),v("x","y","z",-1,1,1,t,e,r,o,0),v("x","y","z",1,1,-1,t,e,r,o,1),v("y","x","z",-1,-1,1,e,t,r,i,0),v("y","x","z",1,-1,-1,e,t,r,i,1),v("y","x","z",1,1,1,e,t,r,i,1),v("y","x","z",-1,1,-1,e,t,r,i,0),x(1,1,1),x(-1,1,1),x(1,-1,1),x(-1,-1,1),x(1,1,-1),x(-1,1,-1),x(1,-1,-1),x(-1,-1,-1)),this.setIndex(a),this.setAttribute("position",new Pt.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Pt.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Pt.Float32BufferAttribute(f,2));function g(w,S,b,I,_,y,P,A,O,T,L){let B=(y-2*l)/O,j=(P-2*l)/T,te=y/2-l,ne=P/2-l,ae=A/2,U=O+1,W=T+1,q=0,F=0,M=new Pt.Vector3;for(let D=0;D<W;D++){let E=D*j-ne;for(let k=0;k<U;k++){let Q=k*B-te;M[w]=Q*I,M[S]=E*_,M[b]=ae,u.push(M.x,M.y,M.z),M[w]=0,M[S]=0,M[b]=A>0?1:-1,d.push(M.x,M.y,M.z),f.push(k/O),f.push(1-D/T),q+=1}}for(let D=0;D<T;D++)for(let E=0;E<O;E++){let k=m+E+U*D,Q=m+E+U*(D+1),H=m+(E+1)+U*(D+1),V=m+(E+1)+U*D;a.push(k,Q,V),a.push(Q,H,V),F+=6}p.addGroup(h,F,L),h+=F,m+=q}function v(w,S,b,I,_,y,P,A,O,T,L){let B=(P-2*l)/T,j=P/2-l,te=A/2-l,ne=O/2,ae=T+1,U=0,W=0,q=new Pt.Vector3,F=new Pt.Vector3;for(let M=0;M<c+1;M++){let D=M/c*Vl,E=Math.sin(D)*l,k=(1-Math.cos(D))*l,Q=Math.sin(D),H=Math.cos(D);q[S]=(te+E)*_,q[b]=(ne-k)*y,F[w]=0,F[S]=Q*Math.sign(q[S]),F[b]=H*Math.sign(q[b]);for(let V=0;V<ae;V++){let R=V*B-j;q[w]=R*I,u.push(q.x,q.y,q.z),d.push(F.x,F.y,F.z),f.push(V/T),f.push(0),U+=1}}for(let M=0;M<c;M++)for(let D=0;D<T;D++){let E=m+D+ae*M,k=m+D+ae*(M+1),Q=m+(D+1)+ae*(M+1),H=m+(D+1)+ae*M;a.push(E,k,H),a.push(k,Q,H),W+=6}p.addGroup(h,W,L),h+=W,m+=U}function x(w,S,b){let I=new Pt.Vector3,_=new Pt.Vector3(t/2,e/2,r/2);_.subScalar(l);let y=[],P=w*S*b>0?(O,T,L)=>a.push(O,T,L):(O,T,L)=>a.push(O,L,T);for(let O=0;O<=c;O++){let T=[],L=Vl*(1-O/c),B=Math.cos(L),j=Math.sin(L),te=0;for(let ne=0;ne<=O;ne++){let ae=Math.cos(te),U=Math.sin(te);I.x=B*ae,I.y=j,I.z=B*U;let W=_.clone().addScaledVector(I,l);u.push(w*W.x,S*W.y,b*W.z),d.push(w*I.x,S*I.y,b*I.z),f.push(0,0),T.push(m++),te+=Vl/O}y.push(T)}let A=y.length-1;for(let O=0;O<A;O++){let T=y[O],L=y[O+1],B=T.length-1;P(T[0],L[1],L[0]);for(let j=1;j<=B;j++)P(T[j-1],T[j],L[j]),P(T[j],L[j+1],L[j])}}}};var ke=require("three"),so=class extends ke.BufferGeometry{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],p=[];a(),u(),this.setAttribute("position",new ke.Float32BufferAttribute(l,3)),this.setAttribute("normal",new ke.Float32BufferAttribute(p,3)),this.setAttribute("uv",new ke.Float32BufferAttribute(c,2));return;function a(){i=Math.min(1-1e-5,i),i==0&&(s=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],m=new ke.Vector3,h=m.clone(),g=new ke.Triangle,v=i*o,x=o-v,w=s+1,S=new ke.Vector3,b=(U,W)=>S.subVectors(U,W).normalize(),I=(U,W)=>Array(U).fill(void 0).map(W),_=I(t.length/3,(U,W)=>new ke.Vector3().fromArray(t,W*3).setLength(o)),y=[],P=1e6;for(let U=0;U<_.length;U++){let W=_[U],q=[],F,M,D,E=1e10,k=-1;for(;(k=e.indexOf(U,k+1))!=-1;){let R=k-k%3;F=e[R+(k+1)%3],M=e[R+(k+2)%3],D=W.distanceToSquared(_[F]),E=Math.min(E,D),q.push([F,M,D])}E+=1e-6;let Q=[],H=0,V=q.length;for(let R=0;R<V;R++){[F,M,D]=q[H];let z=y[F]?.includes(U)==!0;D<=E&&Q.push(F+ +z*P),H=q.findIndex(Z=>Z[0]==M)}y.push(Q)}let A=[];{let U=0,W=0,q,F,M=f==3;for(let D=0;D<=s;D++){q=D*(D+1)/2,F=(D+1)*(D+2)/2;for(let E=0;E<s-D;E++)[U,W]=[q+E+D+2,F+E+D+3],A.push(q,F,...M?[W,q]:[U,F],W,U),[q,F]=[U,W];A.push(q,F,q+s+2)}}let O=m.clone(),T=m.clone(),L=m.clone(),B=m.clone(),j=m.clone(),te=[],ne=I(_.length,()=>I(f,()=>m.clone()));for(let U=0;U<_.length;U++){m.copy(_[U]).normalize(),O.copy(m).multiplyScalar(x);let W=y[U];for(let Q=0;Q<W.length;Q++){let H=W[Q],V=W[(Q+1)%f];g.setFromPointsAndIndices(_,U,H%P,V%P),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(O,ne[U][Q])}let q=[],F=[],M=[],D=new ke.Vector3;s==0&&[...ne[U]].reduce((Q,H)=>Q.add(H),D).multiplyScalar(1/f);for(let Q=0;Q<f;Q++){let H=[],V=(Q-1+f)%f,R=ne[U][V],z=ne[U][Q];m.copy(R).sub(O),h.copy(z).sub(O);let Z=O.angleTo(m),re=m.angleTo(h),se=Math.cos(Z)*v;s==0?T.copy(D):T.copy(O).setLength(x+se),F.push(se);let ee=[T,R,z];for(let J=0;J<2;J++){let K=ee[J],X=ee[J+1];B.subVectors(K,O),j.subVectors(X,O),L.crossVectors(B,j).normalize();for(let me=0;me<w;me++){let de=[Z,re][J]*me/w;m.copy(B).applyAxisAngle(L,de).add(O),q.push(m.clone()),J&&(b(m,O),H.push([me==0?K:m.clone(),S.clone()]))}J&&(b(X,O),H.push([X,S.clone()]))}M.push(H)}te.push(M);let E=2*w,k=2;for(let Q=0;Q<f;Q++){let H=E*Q,V=E*((Q+1)%f),R=[q[H]];for(let Z=1;Z<w;Z++){B=q[H+Z],j=q[V+Z],R.push(B);for(let re=1,se=Z-k+1;re<=se;re++)m.lerpVectors(B,j,re/(se+1)),m.sub(O).setLength(F[Q]).add(O),R.push(m.clone());R.push(j)}for(let Z=0;Z<w;Z++)R.push(q[Z+w+H]);R.push(q[V+w]);let z=A.map(Z=>R[Z]);l.push(...z.map(Z=>[Z.x,Z.y,Z.z]).flat()),p.push(...z.map(Z=>(b(Z,O),[S.x,S.y,S.z])).flat())}}let ae=[];for(let U=0;U<y.length;U++)for(let W=0;W<f;W++){let q=y[U][W];if(q<P){let F=y[q].findIndex(E=>E%P==U),M=te[U][W],D=te[q][F];for(let E=0;E<w;E++){let k=M[E],Q=D[w-E],H=M[E+1],V=D[w-(E+1)];[k,Q,H,H,Q,V].forEach(R=>{l.push(R[0].x,R[0].y,R[0].z),p.push(R[1].x,R[1].y,R[1].z)})}ae.push(M[0][0],D[w][0],M[w][0],D[0][0])}}for(;ae.length;){let U,W,q,F;[U,W]=ae.splice(0,2);let M=[U];for(;U!=W;)M.push(W),q=ae.indexOf(W),F=q%2,W=ae.splice(q-F,2)[1-F];S.subVectors(M[0],M[1]).cross(m.subVectors(M[0],M[2])).normalize();let D=S.dot(M[0])<0;D&&S.negate();for(let E=1;E<=M.length-2;E++)[M[E+ +D],M[E+1-+D],M[0]].forEach(k=>{l.push(k.x,k.y,k.z),p.push(S.x,S.y,S.z)})}}function u(){let d=new ke.Vector3;for(let _=0;_<l.length;_+=3){d.x=l[_+0],d.y=l[_+1],d.z=l[_+2];let y=b(d)/2/Math.PI+.5,P=I(d)/Math.PI+.5;c.push(y,1-P)}let f=new ke.Vector3,m=new ke.Vector3,h=new ke.Vector3,g=new ke.Vector3,v=new ke.Vector2,x=new ke.Vector2,w=new ke.Vector2,S=(_,y,P,A)=>{A<0&&_.x===1&&(c[y]=_.x-1),P.x===0&&P.z===0&&(c[y]=A/2/Math.PI+.5)};for(let _=0,y=0;_<l.length;_+=9,y+=6){f.set(l[_+0],l[_+1],l[_+2]),m.set(l[_+3],l[_+4],l[_+5]),h.set(l[_+6],l[_+7],l[_+8]),v.set(c[y+0],c[y+1]),x.set(c[y+2],c[y+3]),w.set(c[y+4],c[y+5]),g.copy(f).add(m).add(h).divideScalar(3);let P=b(g);S(v,y+0,f,P),S(x,y+2,m,P),S(w,y+4,h,P)}for(let _=0;_<c.length;_+=6){let y=c[_+0],P=c[_+2],A=c[_+4],O=Math.max(y,P,A),T=Math.min(y,P,A);O>.9&&T<.1&&(y<.2&&(c[_+0]+=1),P<.2&&(c[_+2]+=1),A<.2&&(c[_+4]+=1))}function b(_){return Math.atan2(_.z,-_.x)}function I(_){return Math.atan2(-_.y,Math.sqrt(_.x*_.x+_.z*_.z))}}}static fromJSON(t){return new so(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var gf=require("three"),yf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new wi(t*.5,i,s):new gf.DodecahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},wi=class extends so{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,s=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],l=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],c="DodecahedronGeometry";super(s,l,c,t,e,r),this.type=c}static fromJSON(t){return new wi(t.radius,t.corner,t.cornerSides)}};var Ul=Math.PI*2;function zl({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function pS(n,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(n),o=Math.sin(n),i=Math.cos(n+t),s=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function xf(n,t,e,r){let o=n*r-t*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+t*r));return o*Math.acos(i)}function dS(n,t,e,r,o,i,s,l,c,p){let a=Math.pow(o,2),u=Math.pow(i,2),d=Math.pow(s,2),f=Math.pow(l,2),m=a*u-a*f-u*d;m<0&&(m=0),m/=a*f+u*d,m=Math.sqrt(m)*(c===p?-1:1);let h=m*o/i*l,g=m*-i/o*s,v=h+(n+e)/2,x=g+(t+r)/2,w=(s-h)/o,S=(l-g)/i,b=(-s-h)/o,I=(-l-g)/i,_=xf(1,0,w,S),y=xf(w,S,b,I);return!p&&y>0&&(y-=Ul),p&&y<0&&(y+=Ul),{centerx:v,centery:x,ang1:_,ang2:y}}function vf({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let p=(n-e)/2,a=(t-r)/2;if(p===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let u=Math.pow(p,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);u>1&&(o*=Math.sqrt(u),i*=Math.sqrt(u));let d=dS(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,v=Math.abs(m)/(Ul/4);Math.abs(1-v)<1e-7&&(v=1);let x=Math.max(Math.ceil(v),1);m/=x;for(let w=0;w<x;w++)c.push(pS(f,m)),f+=m;return c.map(w=>{let{x:S,y:b}=zl(w[0],o,i,h,g),{x:I,y:_}=zl(w[1],o,i,h,g),{x:y,y:P}=zl(w[2],o,i,h,g);return{x1:S,y1:b,x2:I,y2:_,x:y,y:P}})}var In=require("three"),Sf=Math.PI*2,wf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,angle:o,innerRadius:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p=n.shape,a=t*.5,u=e*.5,d=fS(p,a,u,o*Math.PI/180,r,i);p.isClosed=!0,p.update();let f=dt.create({shape:p,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function fS(n,t,e,r,o,i){if(r>=Sf)return o>30||o%4===0?(hS(n,t,e,i),Math.round(o/4)):bf(n,r,o,t,e,i);let s={x:0,y:e},l=r+Math.PI*.5,c={x:Math.cos(l)*t,y:Math.sin(l)*e},p=vf({px:s.x,py:s.y,cx:c.x,cy:c.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%p.length===0?mS(n,s.x,s.y,p,o,t,e,i):bf(n,r,o,t,e,i)}function mS(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(Nn(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=Nn(u.x,u.y);d.controls[1].position.set(u.x1,u.y1),f.controls[0].position.set(u.x2,u.y2),n.addPoint(f)}return l>0?_f(n,i,s,l):n.addPoint(Nn(0,0)),c}function bf(n,t,e,r,o,i){let s=-t/e;for(let l=0;l<=e;l++){let c=s*l,p=Math.sin(c)*r,a=Math.cos(c)*o;n.addPoint(Nn(p,a))}return t<Sf?i>0?_f(n,r,o,i):n.addPoint(Nn(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Tf(n,r,o,i)),1}function hS(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(ba(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(ba(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(ba(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(ba(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Tf(n,t,e,r)}function Nn(n,t){return new Jt(In.MathUtils.generateUUID(),new In.Vector2(n,t))}function ba(n,t,e,r,o,i){let s=Nn(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function _f(n,t,e,r){Af(n,t,e,r).forEach(i=>n.addPoint(i))}function Tf(n,t,e,r){let o=Af(n,t,e,r),i=new _e;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Af(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new In.Vector2(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=In.MathUtils.generateUUID(),p}).reverse();return l.forEach(c=>{c.position.multiply(s);let p=c.controls[0].position.clone().multiply(s),a=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(a),c.controls[1].position.copy(p)}),l}var Fr=require("three"),Nf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),i=Math.abs(e.depth??r),s=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:s,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(n){let{width:t,height:e,depth:r,radius:o,revolutions:i,segments:s,pathRadius:l,pathType:c,pathSegments:p,cornerRadius:a,cornerSegments:u}=n.parameters,d=new _i(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},_i=class extends Fr.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,i=1,s=1,l=1,c=1,p=1,a=1,u=1,d=1){super();let f=t&&s===1;f&&(d=0),u>100&&(u=100);let m=()=>new Fr.Vector3,h=new Fr.Vector3,g=m(),v=m(),x=m(),w,S,b,I,_,y,P,A,O=m(),T=m(),L=m(),B=m(),j=m(),te=m(),ne=m(),ae=m(),U=r-2*c+.001,W=U/s,q=Math.ceil(l*s),F=q+1,M=U/q,D=-U/2,E=a+1,k=2*Math.PI/a,Q=Math.PI/2/d,H=.01,V=Math.min((1-u/100)*c,c-H),R=c-V,z=0,Z=2,re=d*Z+Z,se=E*re/Z,ee=se+E*F,J=E*(F+re),[K,X,me]=[3,3,2].map(We=>Array(J*We).fill(0)),de=[],xe=i-c;function nt(We,Bt){let sr=Math.PI/2;y=Bt*M,A=2*Math.PI*(y%W)/W+sr,y+=D,P=Math.sin(A)*xe,_=Math.cos(A)*xe,t?We.set(_,P,y):We.set(_,y,P)}nt(h,-1e-10),nt(g,0),O.copy(h),nt(h,1);let Ne=h.distanceTo(g),Pe=R+V,Le=Ne*q+2*Pe,Ut=V,kr=Le-Pe;for(let We=0;We<=q;We++){nt(v,We),ae.subVectors(v,O).normalize(),O.copy(v),te.copy(v).setComponent(+t+1,0).normalize(),ne.crossVectors(ae,te).normalize();let Bt=We===0,sr=We===q,yh=Bt?3*Math.PI/2:Q,xh=Bt?Ut:kr,vh=Bt?E:ee,bh=Bt?0:J-E,Sh=ae.clone().multiplyScalar(Bt?-R:R).add(v),wh=ae.clone().multiplyScalar(Bt?-1:1).normalize();for(let Er=0;Er<E;Er++){let Cc=Er*k;if(T.addVectors(h.copy(te).multiplyScalar(c*Math.cos(Cc)),g.copy(ne).multiplyScalar(c*Math.sin(Cc))),L.copy(T).normalize(),Bt||sr){f||(z=bh+Er,[0,1,2].forEach(_t=>{K[z*3+_t]=Sh.getComponent(_t),X[z*3+_t]=wh.getComponent(_t)}),me[z*2]=+sr,me[z*2+1]=Er/a),g.copy(L).multiplyScalar(V),x.addVectors(v,g);for(let _t=0;_t<d;_t++){let Ja=_t*Q+yh;B.addVectors(h.copy(ae).multiplyScalar(R*Math.sin(Ja)),g.copy(L).multiplyScalar(R*Math.cos(Ja))),j.copy(B).normalize(),g.addVectors(x,B),B.normalize(),z=vh+_t*E+Er,[0,1,2].forEach(cs=>{K[z*3+cs]=g.getComponent(cs),X[z*3+cs]=j.getComponent(cs)});let _h=+Bt+Math.sin(Ja);me[z*2]=(xh+R*_h)/Le,me[z*2+1]=Er/a}}g.addVectors(v,T),z=se+We*E+Er,[0,1,2].forEach(_t=>{K[z*3+_t]=g.getComponent(_t),X[z*3+_t]=L.getComponent(_t)}),me[z*2]=(Pe+We*Ne)/Le,me[z*2+1]=Er/a}}let Et=F+2*d+Z,Vo=1,[as,ls]=f?[Vo,Vo+F-1]:[0,Et-1];for(let We=as;We<=ls-1;We++){let Bt=f&&We===ls-1;for(let sr=0;sr<E-1;sr++)w=We*E+sr,S=w+1,b=(Bt?sr:w)+E,I=(Bt?sr+1:S)+E,We===0?de.push(S,I,b):We===Et-2?de.push(w,S,b):de.push(w,S,b,S,I,b)}this.setIndex(de),this.setAttribute("position",new Fr.Float32BufferAttribute(K,3)),this.setAttribute("normal",new Fr.Float32BufferAttribute(X,3)),this.setAttribute("uv",new Fr.Float32BufferAttribute(me,2))}};var If=require("three");var Pf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new Ti(t*.5,i,s):new If.IcosahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},Ti=class extends so{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],l="IcosahedronGeometry";super(i,s,l,t,e,r),this.type=l}static fromJSON(t){return new Ti(t.radius,t.corner,t.cornerSides)}};var Sa=require("three"),Of=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){(n.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{points:t,segments:e,verticalSegments:r}=n.parameters,o=new Sa.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new Sa.LatheGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var xr=require("three");var zr=require("three");var ie=require("three"),yr=new ie.Matrix4,jl=new ie.Object3D,wa=new ie.Vector3,ao=class extends ie.EventDispatcher{constructor(){super(),this.uuid=ie.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new ie.Matrix3().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];i.normal.applyMatrix3(e).normalize();for(let s=0,l=i.vertexNormals.length;s<l;s++)i.vertexNormals[s].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return yr.makeRotationX(t),this.applyMatrix4(yr),this}rotateY(t){return yr.makeRotationY(t),this.applyMatrix4(yr),this}rotateZ(t){return yr.makeRotationZ(t),this.applyMatrix4(yr),this}translate(t,e,r){return yr.makeTranslation(t,e,r),this.applyMatrix4(yr),this}scale(t,e,r){return yr.makeScale(t,e,r),this.applyMatrix4(yr),this}lookAt(t){return jl.lookAt(t),jl.updateMatrix(),this.applyMatrix4(jl.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,s=o.normal,l=o.color,c=o.uv,p=o.uv2;p!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<i.count;d++)e.vertices.push(new ie.Vector3().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new ie.Color().fromBufferAttribute(l,d));function a(d,f,m,h){let g=l===void 0?[]:[e.colors[d].clone(),e.colors[f].clone(),e.colors[m].clone()],v=s===void 0?[]:[new ie.Vector3().fromBufferAttribute(s,d),new ie.Vector3().fromBufferAttribute(s,f),new ie.Vector3().fromBufferAttribute(s,m)],x=new Pn(d,f,m,v,g,h);e.faces.push(x),c!==void 0&&e.faceVertexUvs[0].push([new ie.Vector2().fromBufferAttribute(c,d),new ie.Vector2().fromBufferAttribute(c,f),new ie.Vector2().fromBufferAttribute(c,m)]),p!==void 0&&e.faceVertexUvs[1].push([new ie.Vector2().fromBufferAttribute(p,d),new ie.Vector2().fromBufferAttribute(p,f),new ie.Vector2().fromBufferAttribute(p,m)])}let u=t.groups;if(u.length>0)for(let d=0;d<u.length;d++){let f=u[d],m=f.start,h=f.count;for(let g=m,v=m+h;g<v;g+=3)r!==void 0?a(r.getX(g),r.getX(g+1),r.getX(g+2),f.materialIndex):a(g,g+1,g+2,f.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)a(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<i.count;d+=3)a(d,d+1,d+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(wa).negate(),this.translate(wa.x,wa.y,wa.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new ie.Matrix4;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new ie.Vector3,e=new ie.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];t.subVectors(c,l),e.subVectors(s,l),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new ie.Vector3;if(t){let r=new ie.Vector3,o=new ie.Vector3;for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=this.vertices[l.a],p=this.vertices[l.b],a=this.vertices[l.c];r.subVectors(a,p),o.subVectors(c,p),r.cross(o),e[l.a].add(r),e[l.b].add(r),e[l.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=i.vertexNormals;s.length===3?(s[0].copy(e[i.a]),s[1].copy(e[i.b]),s[2].copy(e[i.c])):(s[0]=e[i.a].clone(),s[1]=e[i.b].clone(),s[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,s=o.vertexNormals.length;i<s;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new ao;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,s=this.morphNormals[e].vertexNormals;for(let l=0,c=this.faces.length;l<c;l++){let p=new ie.Vector3,a={a:new ie.Vector3,b:new ie.Vector3,c:new ie.Vector3};i.push(p),s.push(a)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=o.faceNormals[i],p=o.vertexNormals[i];c.copy(l.normal),p.a.copy(l.vertexNormals[0]),p.b.copy(l.vertexNormals[1]),p.c.copy(l.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new ie.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new ie.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,i=this.vertices.length,s=this.vertices,l=t.vertices,c=this.faces,p=t.faces,a=this.colors,u=t.colors;e!==void 0&&(o=new ie.Matrix3().getNormalMatrix(e));for(let d=0,f=l.length;d<f;d++){let h=l[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,f=u.length;d<f;d++)a.push(u[d].clone());for(let d=0,f=p.length;d<f;d++){let m=p[d],h,g,v=m.vertexNormals,x=m.vertexColors,w=new Pn(m.a+i,m.b+i,m.c+i);w.normal.copy(m.normal),o!==void 0&&w.normal.applyMatrix3(o).normalize();for(let S=0,b=v.length;S<b;S++)h=v[S].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),w.vertexNormals.push(h);w.color.copy(m.color);for(let S=0,b=x.length;S<b;S++)g=x[S],w.vertexColors.push(g.clone());w.materialIndex=m.materialIndex+r,c.push(w)}for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let v=m[h],x=[];for(let w=0,S=v.length;w<S;w++)x.push(v[w].clone());this.faceVertexUvs[d].push(x)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},r=[],o=[],i=Math.pow(10,t);for(let c=0,p=this.vertices.length;c<p;c++){let a=this.vertices[c],u=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i);e[u]===void 0?(e[u]=c,r.push(this.vertices[c]),o[c]=r.length-1):o[c]=o[e[u]]}let s=[];for(let c=0,p=this.faces.length;c<p;c++){let a=this.faces[c];a.a=o[a.a],a.b=o[a.b],a.c=o[a.c];let u=[a.a,a.b,a.c];for(let d=0;d<3;d++)if(u[d]===u[(d+1)%3]){s.push(c);break}}for(let c=s.length-1;c>=0;c--){let p=s[c];this.faces.splice(p,1);for(let a=0,u=this.faceVertexUvs.length;a<u;a++)this.faceVertexUvs[a].splice(p,1)}let l=this.vertices.length-r.length;return this.vertices=r,l}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new ie.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let c=0;c<e;c++)t[c]._id=c;function r(c,p){return c.materialIndex-p.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],s,l;o&&o.length===e&&(s=[]),i&&i.length===e&&(l=[]);for(let c=0;c<e;c++){let p=t[c]._id;s&&s.push(o[p]),l&&l.push(i[p])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let m=this.parameters;for(let h in m)m[h]!==void 0&&(t[h]=m[h]);return t}let e=[];for(let m=0;m<this.vertices.length;m++){let h=this.vertices[m];e.push(h.x,h.y,h.z)}let r=[],o=[],i={},s=[],l={},c=[],p={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],g=!0,v=!1,x=this.faceVertexUvs[0][m]!==void 0,w=h.normal.length()>0,S=h.vertexNormals.length>0,b=h.color.r!==1||h.color.g!==1||h.color.b!==1,I=h.vertexColors.length>0,_=0;if(_=a(_,0,0),_=a(_,1,g),_=a(_,2,v),_=a(_,3,x),_=a(_,4,w),_=a(_,5,S),_=a(_,6,b),_=a(_,7,I),r.push(_),r.push(h.a,h.b,h.c),r.push(h.materialIndex),x){let y=this.faceVertexUvs[0][m];r.push(f(y[0]),f(y[1]),f(y[2]))}if(w&&r.push(u(h.normal)),S){let y=h.vertexNormals;r.push(u(y[0]),u(y[1]),u(y[2]))}if(b&&r.push(d(h.color)),I){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function a(m,h,g){return g?m|1<<h:m&~(1<<h)}function u(m){let h=m.x.toString()+m.y.toString()+m.z.toString();return i[h]!==void 0||(i[h]=o.length/3,o.push(m.x,m.y,m.z)),i[h]}function d(m){let h=m.r.toString()+m.g.toString()+m.b.toString();return l[h]!==void 0||(l[h]=s.length,s.push(m.getHex())),l[h]}function f(m){let h=m.x.toString()+m.y.toString();return p[h]!==void 0||(p[h]=c.length/2,c.push(m.x,m.y)),p[h]}return t.data={},t.data.vertices=e,t.data.normals=o,s.length>0&&(t.data.colors=s),c.length>0&&(t.data.uvs=[c]),t.data.faces=r,t}clone(){return new ao().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let d=0,f=e.length;d<f;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,f=r.length;d<f;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,f=o.length;d<f;d++)this.faces.push(o[d].clone());for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let v=m[h],x=[];for(let w=0,S=v.length;w<S;w++){let b=v[w];x.push(b.clone())}this.faceVertexUvs[d].push(x)}}let i=t.morphTargets;for(let d=0,f=i.length;d<f;d++){let m={};if(m.name=i[d].name,i[d].vertices!==void 0){m.vertices=[];for(let h=0,g=i[d].vertices.length;h<g;h++)m.vertices.push(i[d].vertices[h].clone())}if(i[d].normals!==void 0){m.normals=[];for(let h=0,g=i[d].normals.length;h<g;h++)m.normals.push(i[d].normals[h].clone())}this.morphTargets.push(m)}let s=t.morphNormals;for(let d=0,f=s.length;d<f;d++){let m={};if(s[d].vertexNormals!==void 0){m.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let v=s[d].vertexNormals[h],x={};x.a=v.a.clone(),x.b=v.b.clone(),x.c=v.c.clone(),m.vertexNormals.push(x)}}if(s[d].faceNormals!==void 0){m.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)m.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(m)}let l=t.skinWeights;for(let d=0,f=l.length;d<f;d++)this.skinWeights.push(l[d].clone());let c=t.skinIndices;for(let d=0,f=c.length;d<f;d++)this.skinIndices.push(c[d].clone());let p=t.lineDistances;for(let d=0,f=p.length;d<f;d++)this.lineDistances.push(p[d]);let a=t.boundingBox;a!==null&&(this.boundingBox=a.clone());let u=t.boundingSphere;return u!==null&&(this.boundingSphere=u.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new kl().fromGeometry(this),e=new ie.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new ie.BufferAttribute(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new ie.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new ie.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new ie.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new ie.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],s=t.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let p=s[l],a=new ie.Float32BufferAttribute(p.data.length*3,3);a.name=p.name,i.push(a.copyVector3sArray(p.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new ie.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new ie.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new ie.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new ie.Float32BufferAttribute(r.vertices.length*3,3),i=new ie.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new ie.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};ao.prototype.isGeometry=!0;var kl=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,i,s=t.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:i})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,l=t.morphTargets,c=l.length,p;if(c>0){p=[];for(let v=0;v<c;v++)p[v]={name:l[v].name,data:[]};this.morphTargets.position=p}let a=t.morphNormals,u=a.length,d;if(u>0){d=[];for(let v=0;v<u;v++)d[v]={name:a[v].name,data:[]};this.morphTargets.normal=d}let f=t.skinIndices,m=t.skinWeights,h=f.length===r.length,g=m.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let v=0;v<e.length;v++){let x=e[v];this.vertices.push(r[x.a],r[x.b],r[x.c]);let w=x.vertexNormals;if(w.length===3)this.normals.push(w[0],w[1],w[2]);else{let b=x.normal;this.normals.push(b,b,b)}let S=x.vertexColors;if(S.length===3)this.colors.push(S[0],S[1],S[2]);else{let b=x.color;this.colors.push(b,b,b)}if(i===!0){let b=o[0][v];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",v),this.uvs.push(new ie.Vector2,new ie.Vector2,new ie.Vector2))}if(s===!0){let b=o[1][v];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",v),this.uvs2.push(new ie.Vector2,new ie.Vector2,new ie.Vector2))}for(let b=0;b<c;b++){let I=l[b].vertices;p[b].data.push(I[x.a],I[x.b],I[x.c])}for(let b=0;b<u;b++){let I=a[b].vertexNormals[v];d[b].data.push(I.a,I.b,I.c)}h&&this.skinIndices.push(f[x.a],f[x.b],f[x.c]),g&&this.skinWeights.push(m[x.a],m[x.b],m[x.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},Pn=class{constructor(t,e,r,o,i,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new ie.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new ie.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var gS=["a","b","c"];function yS(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Hl(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function Wl(n,t,e,r,o,i){let s=Math.min(n,t),l=Math.max(n,t),c=s+"_"+l,p;if(r.has(c))p=r.get(c);else{let a=e[s],u=e[l];p={a,b:u,newEdge:null,faces:[]},r.set(c,p)}p.faces.push(o),i[n].edges.push(p),i[t].edges.push(p)}function xS(n,t,e,r){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)s=t[o],Wl(s.a,s.b,n,r,s,e),Wl(s.b,s.c,n,r,s,e),Wl(s.c,s.a,n,r,s,e)}function _a(n,t,e,r,o){n.push(new Pn(t,e,r,void 0,void 0,o))}function On(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function Ta(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var Aa=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof zr.BufferGeometry?t=new ao().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new zr.Vector3,r,o,i,s,l,c=t.vertices,p=t.faces,a=t.faceVertexUvs[0],u=a!==void 0&&a.length>0,d=[],f=new Map;xS(c,p,d,f);let m=[],h,g,v,x,w,S,b;for(let H of Array.from(f.keys())){for(g=f.get(H),v=new zr.Vector3,w=3/8,S=1/8,b=g.faces.length,b!=2&&(w=.5,S=0,b!=1),v.addVectors(g.a,g.b).multiplyScalar(w),e.set(0,0,0),s=0;s<b;s++){for(x=g.faces[s],l=0;l<3&&(h=c[yS(x,gS[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(S),v.add(e),g.newEdge=m.length,m.push(v)}let I,_,y,P,A,O,T,L=[];for(o=0,i=c.length;o<i;o++){for(O=c[o],A=d[o].edges,r=A.length,r==3?I=3/16:r>3&&(I=3/(8*r)),_=1-r*Number(I),y=I,r<=2&&(r==2?(_=3/4,y=1/8):r==1||r==0),T=O.clone().multiplyScalar(_),e.set(0,0,0),s=0;s<r;s++)P=A[s],h=P.a!==O?P.a:P.b,e.add(h);e.multiplyScalar(Number(y)),T.add(e),L.push(T)}let B=L.concat(m),j=L.length,te,ne,ae,U=[],W=[],q,F,M,D,E=new zr.Vector2,k=new zr.Vector2,Q=new zr.Vector2;for(o=0,i=p.length;o<i;o++)x=p[o],te=Number(Hl(x.a,x.b,f).newEdge)+j,ne=Number(Hl(x.b,x.c,f).newEdge)+j,ae=Number(Hl(x.c,x.a,f).newEdge)+j,_a(U,te,ne,ae,x.materialIndex),_a(U,x.a,te,ae,x.materialIndex),_a(U,x.b,ne,te,x.materialIndex),_a(U,x.c,ae,ne,x.materialIndex),u&&(q=a[o],F=q[0],M=q[1],D=q[2],E.set(On(F.x,M.x),On(F.y,M.y)),k.set(On(M.x,D.x),On(M.y,D.y)),Q.set(On(F.x,D.x),On(F.y,D.y)),Ta(W,E,k,Q),Ta(W,F,E,Q),Ta(W,M,k,E),Ta(W,D,Q,k));t.vertices=B,t.faces=U,u&&(t.faceVertexUvs[0]=W)}};var Je=new xr.Vector3,Cf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new xr.BufferGeometry().copy(new xr.BoxGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(Je),r={width:Je.x,height:Je.y,depth:Je.z,subdivisions:0}):r=t.parameters;let o={...r,...n.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(n){let{width:t,height:e,depth:r,subdivisions:o}=n.parameters,i=n.geometry??new xr.BufferGeometry().copy(new xr.BoxGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(Je)):Je.set(s.width,s.height,s.depth),(t!==Je.x||e!==Je.y||r!==Je.z)&&i.scale(Je.x===0?1:t/Je.x,Je.y===0?1:e/Je.y,Je.z===0?1:r/Je.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new Aa(o).modify(l).toBufferGeometry()):(l!==void 0&&(i=l),l=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),l!==void 0&&Object.assign(i,{originalGeometry:l}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new xr.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(Je);let s=100/Je.x;Object.assign(i.parameters,{width:100,height:Je.y*s,depth:Je.z*s}),t(this.build(i))})}};var Lf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,cornerRadius:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5,u=0,d=0,f=2*Math.PI/r;for(let h=0;h<r;h++){let g=f*h,v=u+Math.sin(g)*p,x=d+Math.cos(g)*a;c.addPoint(c.createPoint(v,x))}c.isClosed=!0;for(let h=0,g=c.points.length;h<g;h++)c.points[h].roundness=o;c.roundness=o,c.update();let m=dt.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var be=require("three"),Mf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:i,openEnded:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=new $l(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function Ai(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function ql(n,t,e,r,o,i){let s=t.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),r===o){let p=s.add(l).normalize();i.copy(n).addScaledVector(p,r/Math.sin(c/2))}else{let p=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(p)),i.addScaledVector(l,r/Math.sin(p))}}function vS(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var $l=class extends be.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,i=!1,s=0,l=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),l=Math.floor(l);let c=[],p=[],a=[],u=[],d=0,f=e/2,m=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,v=(r-2)*Math.PI/r,x=Math.PI-v,w=new be.Vector3(0,-f,0),S=new be.Vector3(0,f,0),b=new be.Vector2(t,-f),I=new be.Vector2(h,-f),_=new be.Vector2(0,S.y).sub(I),y=new be.Vector2(0,S.y).sub(b),P=new be.Vector2(_.y,-_.x).normalize(),A=new be.Vector2(y.y,-y.x).normalize(),T=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-_.angle())/2)-1e-8;s=Math.min(s,T);let L;{let W=new be.Vector3(P.x,P.y,0),q=new be.Vector3(Math.cos(g)*W.x,W.y,Math.sin(g)*W.x);L=W.angleTo(q)}let B=s/Math.tan((Math.PI-_.angle())/2),j=s/Math.tan((Math.PI-L)/2),te=new be.Vector3;if(!i){p.push(w.x,w.y,w.z),a.push(0,-1,0),u.push(0,0);let W=d++,q=[],F=b.clone(),M=B/Math.cos(Math.PI/r);F.x-=M;for(let D=0;D<r;D++){let E=D/r*Math.PI*2+m,k=new be.Vector2(Math.sin(E),Math.cos(E));Ai(F,k,te),p.push(te.x,te.y,te.z),a.push(0,-1,0),u.push(0,0),q.push(d++)}for(let D=0;D<q.length;D++)c.push(q[D],W,q[(D+1)%q.length])}let ne=[];{let W=new be.Vector3,q=new be.Vector3,F=new be.Vector3,M=new be.Vector3,D=new be.Vector3,E=new be.Vector3;for(let k=0;k<r;k++){let Q=k/r*Math.PI*2+m,H=(k+.5)/r*Math.PI*2+m,V=(k+1)/r*Math.PI*2+m,R=new be.Vector2(Math.sin(Q),Math.cos(Q)),z=new be.Vector2(Math.sin(H),Math.cos(H)),Z=new be.Vector2(Math.sin(V),Math.cos(V));Ai(b,R,q),Ai(b,Z,F),Ai(P,z,W),ql(S,q,F,j,j,M),p.push(M.x,M.y,M.z),ql(q,S,F,j,B,D),p.push(D.x,D.y,D.z),ql(F,q,S,B,j,E),p.push(E.x,E.y,E.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),u.push(0,0),u.push(0,0),u.push(0,0);let re=d++,se=d++,ee=d++;if(c.push(re,se,ee),s>0){{let X=q.clone().add(F).multiplyScalar(.5),me=S.clone().sub(X).normalize(),xe=w.clone().sub(X).normalize().add(me).normalize().multiplyScalar(-1),nt=E.clone().sub(D);ae(X,nt,xe,_.angle())}let J,K;{let X=new be.Vector3;Ai(A,Z,X);let me=E.clone().add(M).multiplyScalar(.5);me=vS(me,F,S);let de=E.clone().sub(M);[J,K]=ae(me,de,X,L,M.y)}{let X=J,me=X.clone().setY(0).normalize(),de=new be.Vector3(0,-1,0),xe=me.clone().cross(de);U(X,me,de,xe)}ne.concat(K);{let X=_.angle(),me=Math.PI-X,de=S.clone();de.y-=s/Math.sin(X-Math.PI/2);let xe=new be.Vector3,nt=[];for(let Pe=0;Pe<l;Pe++){let Le=[],Ut=Math.PI/2-me*Pe/l,kr=Math.cos(Ut),Et=Math.sin(Ut),Vo=H;for(let as=0;as<=Pe;as++){let ls=Math.cos(Vo),We=Math.sin(Vo);W.x=kr*We,W.y=Et,W.z=kr*ls,xe.copy(de).addScaledVector(W,s),p.push(xe.x,xe.y,xe.z),a.push(W.x,W.y,W.z),u.push(0,0),Le.push(d++),Vo+=Math.PI*2/Pe/r}nt.push(Le)}K.reverse(),nt.push(K);let Ne=nt.length-1;for(let Pe=0;Pe<Ne;Pe++){let Le=nt[Pe],Ut=nt[Pe+1],kr=Le.length-1;c.push(Ut[1],Le[0],Ut[0]);for(let Et=1;Et<=kr;Et++)c.push(Le[Et],Le[Et-1],Ut[Et]),c.push(Ut[Et+1],Le[Et],Ut[Et])}}}}}this.setIndex(c),this.setAttribute("position",new be.Float32BufferAttribute(p,3)),this.setAttribute("normal",new be.Float32BufferAttribute(a,3)),this.setAttribute("uv",new be.Float32BufferAttribute(u,2));function ae(W,q,F,M,D){let E=-M/2,k=(Math.PI-M)/2,Q=q.clone().normalize().cross(F);W.addScaledVector(F,-s/Math.sin(k));let H=new be.Vector3,V=new be.Vector3,R=1,z=d,Z=[];for(let re=0;re<=l;re++){let se=E+re/l*M;V.set(0,0,0),V.addScaledVector(Q,Math.sin(se)),V.addScaledVector(F,Math.cos(se));for(let ee=0;ee<=R;ee++){let J=ee/R-.5;if(H.copy(W),H.addScaledVector(q,J),H.addScaledVector(V,s),D!=null){let K=Math.max(0,H.y-D);H.addScaledVector(q,-K/q.y)}p.push(H.x,H.y,H.z),a.push(V.x,V.y,V.z),u.push(0,0),ee===0&&Z.push(d),d++}}for(let re=0;re<l;re++)for(let se=0;se<R;se++){let ee=z+se+(R+1)*re,J=ee+(R+1),K=J+1,X=ee+1;c.push(ee,J,X),c.push(J,K,X)}return[W.clone().addScaledVector(q,.5),Z]}function U(W,q,F,M){let D=Math.PI/2,E=y.angle()-D,k=[],Q=new be.Vector3,H=new be.Vector3;for(let R=0;R<=l;R++){let z=[],Z=R/l;for(let re=0;re<=R;re++){let ee=((R?re/R:0)-.5)*x,J=Math.cos(ee),K=Math.sin(ee),X=Math.atan(Math.tan(E)*J),me=(D+X)*Z,de=Math.cos(me),xe=Math.sin(me);Q.set(0,0,0),Q.addScaledVector(q,xe*J),Q.addScaledVector(F,de),Q.addScaledVector(M,xe*K),H.copy(W).addScaledVector(Q,s),p.push(H.x,H.y,H.z),a.push(Q.x,Q.y,Q.z),u.push(0,0),z.push(d++)}k.push(z)}let V=k.length-1;for(let R=0;R<V;R++){let z=k[R],Z=k[R+1],re=z.length-1;c.push(z[0],Z[1],Z[0]);for(let se=1;se<=re;se++)c.push(z[se-1],z[se],Z[se]),c.push(z[se],Z[se+1],Z[se])}}}};var Ef=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(n){let t=n.shape,{width:e,height:r,cornerRadius:o,cornerType:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,p={x:e*.5,y:r*.5},a={x:-p.x,y:-p.y},u={x:p.x,y:p.y};function d(S,b,I){return b>e&&I>r?Math.min(S*e/b,S*r/I):b>e?S*e/b:I>r?S*r/I:S}let f=[];f[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let m=a.x,h=u.x,g=u.y,v=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,v)),t.addPoint(t.createPoint(m,v)),t.isClosed=!0;let x=!0;for(let S=0,b=t.points.length;S<b;S++)t.points[S].roundness=f[S],S>0&&f[S]!==f[S-1]&&(x=!1);x&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let w=dt.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(w,{userData:{...n,type:"RectangleGeometry"}})}};var Bf=require("three"),Df=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:p}=n.parameters,a=new Bf.SphereGeometry(.5*t,o,i,s,l,c,p);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};var Gf=require("three"),Rf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(n){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=n.parameters,i=new Gf.PlaneGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var lo=require("three"),Vf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,angle:o,cornerRadius:i,cornerSegments:s}=n.parameters,l=new Xl(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Xl=class extends lo.BufferGeometry{constructor(t=1,e=1,r=1,o=90,i=10,s=24){super(),this.type="BackdropGeometry";let l=[],c=[],p=[],a=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),o=Math.min(180-a,o),o*=Math.PI/180;let u=[],d=Math.PI/2,f=(H=0,V=0,R=0)=>new lo.Vector3(H,V,R),m=f(),h=f(),[g,v,x]=[e/2,t/2,r/2],w=-v,S=+v,[b,I,_]=[f(w,-g,+x),f(w,-g,-x),f(w,+g,-x)],y=(H,V=!1)=>Math.sin(H-Math.PI/(1+ +V)),P=(H,V=!1)=>Math.cos(H-Math.PI/(1+ +V));_.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,O=b.z-a;o<=d?(_.z=Math.min(A,O),_.z==O&&(_.y-=(A-O)/Math.tan(d-o))):I.z=Math.min(I.z-A-x,b.z-a),m.subVectors(b,I),h.subVectors(_,I);let T=Math.min(m.length(),h.length())*i/100,L=T*Math.tan(o/2),B=T/Math.cos(o/2),j=m.clone().normalize().add(h.normalize()).setLength(B).add(I);m.set(0,y(o,!0),P(o,!0)),u.push([_,m.clone()]);let te=(Math.PI-o)/s;for(let H=0;H<=s;H++){let V=d+o+H*te;m.set(0,Math.sin(V)*L,Math.cos(V)*L),m.add(j),h.set(0,y(V),P(V)),u.push([m.clone(),h.clone()])}u.push([b,f(0,1,0)]);let ne=Math.sin(te/2)*L*2,ae=u.length-1,U=u[0][0].distanceTo(u[1][0]),W=u[ae-1][0].distanceTo(u[ae][0]),q=U+ne*s+W;u[0].push(1);for(let H=0;H<=s;H++)u[H+1].push(1-(U+H*ne)/q);u[ae].push(0);let[F,M,D]=u[0],E,k,Q;for(let H=1;H<u.length;H++)[E,k,Q]=u[H],l.push(w,F.y,F.z,w,E.y,E.z,S,F.y,F.z,S,F.y,F.z,w,E.y,E.z,S,E.y,E.z),c.push(0,M.y,M.z,0,k.y,k.z,0,M.y,M.z,0,M.y,M.z,0,k.y,k.z,0,k.y,k.z),p.push(0,D,0,Q,1,D,1,D,0,Q,1,Q),[F,M,D]=[E,k,Q];this.setAttribute("position",new lo.Float32BufferAttribute(l,3)),this.setAttribute("normal",new lo.Float32BufferAttribute(c,3)),this.setAttribute("uv",new lo.Float32BufferAttribute(p,2))}};var Ff=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:i,angle:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}=n.parameters,a=n.shape,u=t*.5,d=e*.5,f=0,m=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,v=u*r/100,x=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let S=0;S<o;S++){let b=h*S,I=f+Math.sin(b)*u,_=m+Math.cos(b)*d;a.addPoint(a.createPoint(I,_))}}else for(let S=0;S<o;S++){let b=f+Math.cos(g)*u,I=m+Math.sin(g)*d;a.addPoint(a.createPoint(b,I)),g+=h,b=f+Math.cos(g)*v,I=m+Math.sin(g)*x,S<=o,a.addPoint(a.createPoint(b,I)),g+=h}a.isClosed=!0;for(let S=0,b=a.points.length;S<b;S++)a.points[S].roundness=i;a.roundness=i,a.update();let w=dt.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:p}});return Object.assign(w,{userData:{...n,type:"StarGeometry"}})}};var zf=require("three"),Uf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e}=n.parameters,r=new zf.PlaneGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var jf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.round(Math.abs(e.depth??e.width*.25));return{parameters:Object.assign(e,{width:r,height:o,depth:i})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:i,arc:s,cornerRadius:l,cornerSegments:c}=n.parameters,p=bS(t,e,r,t*.5,s,i,0,0,o,l,c);return p.scale(1,e/t,1),Object.assign(p,{userData:{...n,type:"TorusGeometry"}})}};function bS(n,t,e,r,o,i,s,l,c,p,a){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(p=0),new _i(!0,n,t,e,r,o,i,s,l,c,p,a)}var kf=require("three"),Hf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(n){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:i,q:s}=n.parameters,l=t*.5;l!==e&&(l-=e);let c=new kf.TorusKnotGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Wf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof _e?n.shape:new _e,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:l}=n.parameters,c=n.shape,p=t*.5,a=e*.5;l?(c.addPoint(c.createPoint(-p,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))):(c.addPoint(c.createPoint(0,a)),c.addPoint(c.createPoint(p,-a)),c.addPoint(c.createPoint(-p,-a))),c.isClosed=!0;for(let d=0,f=c.points.length;d<f;d++)c.points[d].roundness=r;c.roundness=r,c.update();let u=dt.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(u,{userData:{...n,type:"TriangleGeometry"}})}};var Co=require("three"),$f=require("three/examples/jsm/utils/BufferGeometryUtils.js");function qf(){let n=new Co.BufferGeometry;return n.setAttribute("position",new Co.BufferAttribute(new Float32Array([]),3)),n.setIndex(new Co.BufferAttribute(new Uint16Array([]),1)),n}var SS=12;var Cn=class extends Co.BufferGeometry{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=qf();Object.entries(o.attributes).forEach(([i,s])=>{this.setAttribute(i,s)}),this.setIndex(o.index),this.updateFont(e.font,r),this.update(e)}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}async update(e){let r=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!r||!r.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,text:p,textTransform:a,subdivisions:u}=e;await r.loadingPromise;let d=a===2?p.toUpperCase():a===3?p.toLowerCase():p,f=wS(e,r,d),{shapes:m,charWidths:h,charCoords:g}=await r.generateShapes(f,e),v=o*.5,x=i*.5,w=m.map(I=>new _e().fromShape(I));this.vectorShapes=w;let S=w.map(I=>dt.create({shape:I,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Me.NONZERO:Me.ODD,subdivisions:u??SS}})),b=S.length?(0,$f.mergeBufferGeometries)(S):qf();b.translate(-v,x,0),this.dispose(),this.wrappedText=f,this.charCoords=g,this.charWidths=h,Object.entries(b.attributes).forEach(([I,_])=>{this.setAttribute(I,_)}),this.setIndex(b.index),this.computeBoundingSphere()}clone(){let e=Ao(new Co.BufferGeometry,Cn.prototype);return e.copy(this),e}copy(e){return Object.entries(e.attributes).forEach(([r,o])=>{this.setAttribute(r,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:e})}get text(){return this.userData.parameters.text??""}};function wS(n,t,e){e=e??n.text;let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
|
|
1
|
+
"use strict";var wg=Object.create;var Ls=Object.defineProperty;var _g=Object.getOwnPropertyDescriptor;var Tg=Object.getOwnPropertyNames;var Ag=Object.getPrototypeOf,Ng=Object.prototype.hasOwnProperty;var Nl=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),pu=(n,t)=>{for(var e in t)Ls(n,e,{get:t[e],enumerable:!0})},du=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Tg(t))!Ng.call(n,o)&&o!==e&&Ls(n,o,{get:()=>t[o],enumerable:!(r=_g(t,o))||r.enumerable});return n};var Es=(n,t,e)=>(e=n!=null?wg(Ag(n)):{},du(t||!n||!n.__esModule?Ls(e,"default",{value:n,enumerable:!0}):e,n)),Ig=n=>du(Ls({},"__esModule",{value:!0}),n);var Tf=Nl((tc,_f)=>{(function(n,t){typeof tc=="object"?_f.exports=t():typeof define=="function"&&define.amd?define(t):n.Alea=t()})(tc,function(){"use strict";return n.importState=function(e){var r=new n;return r.importState(e),r},n;function n(){return function(e){var r=0,o=0,i=0,s=1;e.length==0&&(e=[+new Date]);var l=t();r=l(" "),o=l(" "),i=l(" ");for(var c=0;c<e.length;c++)r-=l(e[c]),r<0&&(r+=1),o-=l(e[c]),o<0&&(o+=1),i-=l(e[c]),i<0&&(i+=1);l=null;var u=function(){var a=2091639*r+s*23283064365386963e-26;return r=o,o=i,i=a-(s=a|0)};return u.next=u,u.uint32=function(){return u()*4294967296},u.fract53=function(){return u()+(u()*2097152|0)*11102230246251565e-32},u.version="Alea 0.9",u.args=e,u.exportState=function(){return[r,o,i,s]},u.importState=function(a){r=+a[0]||0,o=+a[1]||0,i=+a[2]||0,s=+a[3]||0},u}(Array.prototype.slice.call(arguments))}function t(){var e=4022871197,r=function(o){o=o.toString();for(var i=0;i<o.length;i++){e+=o.charCodeAt(i);var s=.02519603282416938*e;e=s>>>0,s-=e,s*=e,e=s>>>0,s-=e,e+=s*4294967296}return(e>>>0)*23283064365386963e-26};return r.version="Mash 0.9",r}})});var zh=Nl((bl,Fh)=>{(function(n,t){typeof bl=="object"&&typeof Fh<"u"?t(bl):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(bl,function(n){"use strict";n.SVD=function(t,e,r,o,i){if(e=e===void 0||e,r=r===void 0||r,i=1e-64/(o=o||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var s,l,c,u,a,p,d,f,m,h,g,b,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var w=[],v=[],N=[],_=e==="f"?S:x,y=h=d=0;y<S;y++)v[y]=new Array(_).fill(0);for(y=0;y<x;y++)N[y]=new Array(x).fill(0);var I,A=new Array(x).fill(0);for(y=0;y<S;y++)for(s=0;s<x;s++)v[y][s]=t[y][s];for(y=0;y<x;y++){for(w[y]=d,m=0,c=y+1,s=y;s<S;s++)m+=Math.pow(v[s][y],2);if(m<i)d=0;else for(f=(p=v[y][y])*(d=p<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y]=p-d,s=c;s<x;s++){for(m=0,l=y;l<S;l++)m+=v[l][y]*v[l][s];for(p=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+p*v[l][y]}for(A[y]=d,m=0,s=c;s<x;s++)m+=Math.pow(v[y][s],2);if(m<i)d=0;else{for(f=(p=v[y][y+1])*(d=p<0?Math.sqrt(m):-Math.sqrt(m))-m,v[y][y+1]=p-d,s=c;s<x;s++)w[s]=v[y][s]/f;for(s=c;s<S;s++){for(m=0,l=c;l<x;l++)m+=v[s][l]*v[y][l];for(l=c;l<x;l++)v[s][l]=v[s][l]+m*w[l]}}h<(g=Math.abs(A[y])+Math.abs(w[y]))&&(h=g)}if(r)for(y=x-1;0<=y;y--){if(d!==0){for(f=v[y][y+1]*d,s=c;s<x;s++)N[s][y]=v[y][s]/f;for(s=c;s<x;s++){for(m=0,l=c;l<x;l++)m+=v[y][l]*N[l][s];for(l=c;l<x;l++)N[l][s]=N[l][s]+m*N[l][y]}}for(s=c;s<x;s++)N[y][s]=0,N[s][y]=0;N[y][y]=1,d=w[y],c=y}if(e){if(e==="f")for(y=x;y<S;y++){for(s=x;s<S;s++)v[y][s]=0;v[y][y]=1}for(y=x-1;0<=y;y--){for(c=y+1,d=A[y],s=c;s<_;s++)v[y][s]=0;if(d!==0){for(f=v[y][y]*d,s=c;s<_;s++){for(m=0,l=c;l<S;l++)m+=v[l][y]*v[l][s];for(p=m/f,l=y;l<S;l++)v[l][s]=v[l][s]+p*v[l][y]}for(s=y;s<S;s++)v[s][y]=v[s][y]/d}else for(s=y;s<S;s++)v[s][y]=0;v[y][y]=v[y][y]+1}}for(o*=h,l=x-1;0<=l;l--)for(var P=0;P<50;P++){for(I=!1,c=l;0<=c;c--){if(Math.abs(w[c])<=o){I=!0;break}if(Math.abs(A[c-1])<=o)break}if(!I){for(a=0,u=c-(m=1),y=c;y<l+1&&(p=m*w[y],w[y]=a*w[y],!(Math.abs(p)<=o));y++)if(d=A[y],A[y]=Math.sqrt(p*p+d*d),a=d/(f=A[y]),m=-p/f,e)for(s=0;s<S;s++)g=v[s][u],b=v[s][y],v[s][u]=g*a+b*m,v[s][y]=-g*m+b*a}if(b=A[l],c===l){if(b<0&&(A[l]=-b,r))for(s=0;s<x;s++)N[s][l]=-N[s][l];break}for(h=A[c],p=(((g=A[l-1])-b)*(g+b)+((d=w[l-1])-(f=w[l]))*(d+f))/(2*f*g),d=Math.sqrt(p*p+1),p=((h-b)*(h+b)+f*(g/(p<0?p-d:p+d)-f))/h,y=c+(m=a=1);y<l+1;y++){if(d=w[y],g=A[y],f=m*d,d*=a,b=Math.sqrt(p*p+f*f),p=h*(a=p/(w[y-1]=b))+d*(m=f/b),d=-h*m+d*a,f=g*m,g*=a,r)for(s=0;s<x;s++)h=N[s][y-1],b=N[s][y],N[s][y-1]=h*a+b*m,N[s][y]=-h*m+b*a;if(b=Math.sqrt(p*p+f*f),p=(a=p/(A[y-1]=b))*d+(m=f/b)*g,h=-m*d+a*g,e)for(s=0;s<S;s++)g=v[s][y-1],b=v[s][y],v[s][y-1]=g*a+b*m,v[s][y]=-g*m+b*a}w[c]=0,w[l]=p,A[l]=h}for(y=0;y<x;y++)A[y]<o&&(A[y]=0);return{u:v,q:A,v:N}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var eg=Nl(vl=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||t;return a._counter=1e3,a._html5AudioPool=[],a.html5PoolSize=10,a._codecs={},a._howls=[],a._muted=!1,a._volume=1,a._canPlayEvent="canplaythrough",a._navigator=typeof window<"u"&&window.navigator?window.navigator:null,a.masterGain=null,a.noAudio=!1,a.usingWebAudio=!0,a.autoSuspend=!0,a.ctx=null,a.autoUnlock=!0,a._setup(),a},volume:function(a){var p=this||t;if(a=parseFloat(a),p.ctx||u(),typeof a<"u"&&a>=0&&a<=1){if(p._volume=a,p._muted)return p;p.usingWebAudio&&p.masterGain.gain.setValueAtTime(a,t.ctx.currentTime);for(var d=0;d<p._howls.length;d++)if(!p._howls[d]._webAudio)for(var f=p._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=p._howls[d]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return p}return p._volume},mute:function(a){var p=this||t;p.ctx||u(),p._muted=a,p.usingWebAudio&&p.masterGain.gain.setValueAtTime(a?0:p._volume,t.ctx.currentTime);for(var d=0;d<p._howls.length;d++)if(!p._howls[d]._webAudio)for(var f=p._howls[d]._getSoundIds(),m=0;m<f.length;m++){var h=p._howls[d]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return p},stop:function(){for(var a=this||t,p=0;p<a._howls.length;p++)a._howls[p].stop();return a},unload:function(){for(var a=this||t,p=a._howls.length-1;p>=0;p--)a._howls[p].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,u()),a},codecs:function(a){return(this||t)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||t;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var p=new Audio;typeof p.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var p=new Audio;p.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||t,p=null;try{p=typeof Audio<"u"?new Audio:null}catch{return a}if(!p||typeof p.canPlayType!="function")return a;var d=p.canPlayType("audio/mpeg;").replace(/^no$/,""),f=a._navigator?a._navigator.userAgent:"",m=f.match(/OPR\/([0-6].)/g),h=m&&parseInt(m[0].split("/")[1],10)<33,g=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,b=f.match(/Version\/(.*?) /),x=g&&b&&parseInt(b[1],10)<15;return a._codecs={mp3:!!(!h&&(d||p.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!d,opus:!!p.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!p.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!p.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(p.canPlayType('audio/wav; codecs="1"')||p.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!p.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!p.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(p.canPlayType("audio/x-m4a;")||p.canPlayType("audio/m4a;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(p.canPlayType("audio/x-m4b;")||p.canPlayType("audio/m4b;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(p.canPlayType("audio/x-mp4;")||p.canPlayType("audio/mp4;")||p.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&p.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&p.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!p.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(p.canPlayType("audio/x-flac;")||p.canPlayType("audio/flac;")).replace(/^no$/,"")},a},_unlockAudio:function(){var a=this||t;if(!(a._audioUnlocked||!a.ctx)){a._audioUnlocked=!1,a.autoUnlock=!1,!a._mobileUnloaded&&a.ctx.sampleRate!==44100&&(a._mobileUnloaded=!0,a.unload()),a._scratchBuffer=a.ctx.createBuffer(1,1,22050);var p=function(d){for(;a._html5AudioPool.length<a.html5PoolSize;)try{var f=new Audio;f._unlocked=!0,a._releaseHtml5Audio(f)}catch{a.noAudio=!0;break}for(var m=0;m<a._howls.length;m++)if(!a._howls[m]._webAudio)for(var h=a._howls[m]._getSoundIds(),g=0;g<h.length;g++){var b=a._howls[m]._soundById(h[g]);b&&b._node&&!b._node._unlocked&&(b._node._unlocked=!0,b._node.load())}a._autoResume();var x=a.ctx.createBufferSource();x.buffer=a._scratchBuffer,x.connect(a.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof a.ctx.resume=="function"&&a.ctx.resume(),x.onended=function(){x.disconnect(0),a._audioUnlocked=!0,document.removeEventListener("touchstart",p,!0),document.removeEventListener("touchend",p,!0),document.removeEventListener("click",p,!0),document.removeEventListener("keydown",p,!0);for(var S=0;S<a._howls.length;S++)a._howls[S]._emit("unlock")}};return document.addEventListener("touchstart",p,!0),document.addEventListener("touchend",p,!0),document.addEventListener("click",p,!0),document.addEventListener("keydown",p,!0),a}},_obtainHtml5Audio:function(){var a=this||t;if(a._html5AudioPool.length)return a._html5AudioPool.pop();var p=new Audio().play();return p&&typeof Promise<"u"&&(p instanceof Promise||typeof p.then=="function")&&p.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(a){var p=this||t;return a._unlocked&&p._html5AudioPool.push(a),p},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!t.usingWebAudio)){for(var p=0;p<a._howls.length;p++)if(a._howls[p]._webAudio){for(var d=0;d<a._howls[p]._sounds.length;d++)if(!a._howls[p]._sounds[d]._paused)return a}return a._suspendTimer&&clearTimeout(a._suspendTimer),a._suspendTimer=setTimeout(function(){if(!!a.autoSuspend){a._suspendTimer=null,a.state="suspending";var f=function(){a.state="suspended",a._resumeAfterSuspend&&(delete a._resumeAfterSuspend,a._autoResume())};a.ctx.suspend().then(f,f)}},3e4),a}},_autoResume:function(){var a=this;if(!(!a.ctx||typeof a.ctx.resume>"u"||!t.usingWebAudio))return a.state==="running"&&a.ctx.state!=="interrupted"&&a._suspendTimer?(clearTimeout(a._suspendTimer),a._suspendTimer=null):a.state==="suspended"||a.state==="running"&&a.ctx.state==="interrupted"?(a.ctx.resume().then(function(){a.state="running";for(var p=0;p<a._howls.length;p++)a._howls[p]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var t=new n,e=function(a){var p=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}p.init(a)};e.prototype={init:function(a){var p=this;return t.ctx||u(),p._autoplay=a.autoplay||!1,p._format=typeof a.format!="string"?a.format:[a.format],p._html5=a.html5||!1,p._muted=a.mute||!1,p._loop=a.loop||!1,p._pool=a.pool||5,p._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,p._rate=a.rate||1,p._sprite=a.sprite||{},p._src=typeof a.src!="string"?a.src:[a.src],p._volume=a.volume!==void 0?a.volume:1,p._xhr={method:a.xhr&&a.xhr.method?a.xhr.method:"GET",headers:a.xhr&&a.xhr.headers?a.xhr.headers:null,withCredentials:a.xhr&&a.xhr.withCredentials?a.xhr.withCredentials:!1},p._duration=0,p._state="unloaded",p._sounds=[],p._endTimers={},p._queue=[],p._playLock=!1,p._onend=a.onend?[{fn:a.onend}]:[],p._onfade=a.onfade?[{fn:a.onfade}]:[],p._onload=a.onload?[{fn:a.onload}]:[],p._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],p._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],p._onpause=a.onpause?[{fn:a.onpause}]:[],p._onplay=a.onplay?[{fn:a.onplay}]:[],p._onstop=a.onstop?[{fn:a.onstop}]:[],p._onmute=a.onmute?[{fn:a.onmute}]:[],p._onvolume=a.onvolume?[{fn:a.onvolume}]:[],p._onrate=a.onrate?[{fn:a.onrate}]:[],p._onseek=a.onseek?[{fn:a.onseek}]:[],p._onunlock=a.onunlock?[{fn:a.onunlock}]:[],p._onresume=[],p._webAudio=t.usingWebAudio&&!p._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(p),p._autoplay&&p._queue.push({event:"play",action:function(){p.play()}}),p._preload&&p._preload!=="none"&&p.load(),p},load:function(){var a=this,p=null;if(t.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var d=0;d<a._src.length;d++){var f,m;if(a._format&&a._format[d])f=a._format[d];else{if(m=a._src[d],typeof m!="string"){a._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}f=/^data:audio\/([^;,]+);/i.exec(m),f||(f=/\.([^.]+)$/.exec(m.split("?",1)[0])),f&&(f=f[1].toLowerCase())}if(f||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),f&&t.codecs(f)){p=a._src[d];break}}if(!p){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=p,a._state="loading",window.location.protocol==="https:"&&p.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new r(a),a._webAudio&&i(a),a},play:function(a,p){var d=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&d._state==="loaded"&&!d._sprite[a])return null;if(typeof a>"u"&&(a="__default",!d._playLock)){for(var m=0,h=0;h<d._sounds.length;h++)d._sounds[h]._paused&&!d._sounds[h]._ended&&(m++,f=d._sounds[h]._id);m===1?a=null:f=null}}var g=f?d._soundById(f):d._inactiveSound();if(!g)return null;if(f&&!a&&(a=g._sprite||"__default"),d._state!=="loaded"){g._sprite=a,g._ended=!1;var b=g._id;return d._queue.push({event:"play",action:function(){d.play(b)}}),b}if(f&&!g._paused)return p||d._loadQueue("play"),g._id;d._webAudio&&t._autoResume();var x=Math.max(0,g._seek>0?g._seek:d._sprite[a][0]/1e3),S=Math.max(0,(d._sprite[a][0]+d._sprite[a][1])/1e3-x),w=S*1e3/Math.abs(g._rate),v=d._sprite[a][0]/1e3,N=(d._sprite[a][0]+d._sprite[a][1])/1e3;g._sprite=a,g._ended=!1;var _=function(){g._paused=!1,g._seek=x,g._start=v,g._stop=N,g._loop=!!(g._loop||d._sprite[a][2])};if(x>=N){d._ended(g);return}var y=g._node;if(d._webAudio){var I=function(){d._playLock=!1,_(),d._refreshBuffer(g);var C=g._muted||d._muted?0:g._volume;y.gain.setValueAtTime(C,t.ctx.currentTime),g._playStart=t.ctx.currentTime,typeof y.bufferSource.start>"u"?g._loop?y.bufferSource.noteGrainOn(0,x,86400):y.bufferSource.noteGrainOn(0,x,S):g._loop?y.bufferSource.start(0,x,86400):y.bufferSource.start(0,x,S),w!==1/0&&(d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),w)),p||setTimeout(function(){d._emit("play",g._id),d._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?I():(d._playLock=!0,d.once("resume",I),d._clearTimer(g._id))}else{var A=function(){y.currentTime=x,y.muted=g._muted||d._muted||t._muted||y.muted,y.volume=g._volume*t.volume(),y.playbackRate=g._rate;try{var C=y.play();if(C&&typeof Promise<"u"&&(C instanceof Promise||typeof C.then=="function")?(d._playLock=!0,_(),C.then(function(){d._playLock=!1,y._unlocked=!0,p?d._loadQueue():d._emit("play",g._id)}).catch(function(){d._playLock=!1,d._emit("playerror",g._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."),g._ended=!0,g._paused=!0})):p||(d._playLock=!1,_(),d._emit("play",g._id)),y.playbackRate=g._rate,y.paused){d._emit("playerror",g._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.");return}a!=="__default"||g._loop?d._endTimers[g._id]=setTimeout(d._ended.bind(d,g),w):(d._endTimers[g._id]=function(){d._ended(g),y.removeEventListener("ended",d._endTimers[g._id],!1)},y.addEventListener("ended",d._endTimers[g._id],!1))}catch(L){d._emit("playerror",g._id,L)}};y.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(y.src=d._src,y.load());var P=window&&window.ejecta||!y.readyState&&t._navigator.isCocoonJS;if(y.readyState>=3||P)A();else{d._playLock=!0,d._state="loading";var T=function(){d._state="loaded",A(),y.removeEventListener(t._canPlayEvent,T,!1)};y.addEventListener(t._canPlayEvent,T,!1),d._clearTimer(g._id)}}return g._id},pause:function(a){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"pause",action:function(){p.pause(a)}}),p;for(var d=p._getSoundIds(a),f=0;f<d.length;f++){p._clearTimer(d[f]);var m=p._soundById(d[f]);if(m&&!m._paused&&(m._seek=p.seek(d[f]),m._rateSeek=0,m._paused=!0,p._stopFade(d[f]),m._node))if(p._webAudio){if(!m._node.bufferSource)continue;typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),p._cleanBuffer(m._node)}else(!isNaN(m._node.duration)||m._node.duration===1/0)&&m._node.pause();arguments[1]||p._emit("pause",m?m._id:null)}return p},stop:function(a,p){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"stop",action:function(){d.stop(a)}}),d;for(var f=d._getSoundIds(a),m=0;m<f.length;m++){d._clearTimer(f[m]);var h=d._soundById(f[m]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,d._stopFade(f[m]),h._node&&(d._webAudio?h._node.bufferSource&&(typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),d._cleanBuffer(h._node)):(!isNaN(h._node.duration)||h._node.duration===1/0)&&(h._node.currentTime=h._start||0,h._node.pause(),h._node.duration===1/0&&d._clearSound(h._node))),p||d._emit("stop",h._id))}return d},mute:function(a,p){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"mute",action:function(){d.mute(a,p)}}),d;if(typeof p>"u")if(typeof a=="boolean")d._muted=a;else return d._muted;for(var f=d._getSoundIds(p),m=0;m<f.length;m++){var h=d._soundById(f[m]);h&&(h._muted=a,h._interval&&d._stopFade(h._id),d._webAudio&&h._node?h._node.gain.setValueAtTime(a?0:h._volume,t.ctx.currentTime):h._node&&(h._node.muted=t._muted?!0:a),d._emit("mute",h._id))}return d},volume:function(){var a=this,p=arguments,d,f;if(p.length===0)return a._volume;if(p.length===1||p.length===2&&typeof p[1]>"u"){var m=a._getSoundIds(),h=m.indexOf(p[0]);h>=0?f=parseInt(p[0],10):d=parseFloat(p[0])}else p.length>=2&&(d=parseFloat(p[0]),f=parseInt(p[1],10));var g;if(typeof d<"u"&&d>=0&&d<=1){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"volume",action:function(){a.volume.apply(a,p)}}),a;typeof f>"u"&&(a._volume=d),f=a._getSoundIds(f);for(var b=0;b<f.length;b++)g=a._soundById(f[b]),g&&(g._volume=d,p[2]||a._stopFade(f[b]),a._webAudio&&g._node&&!g._muted?g._node.gain.setValueAtTime(d,t.ctx.currentTime):g._node&&!g._muted&&(g._node.volume=d*t.volume()),a._emit("volume",g._id))}else return g=f?a._soundById(f):a._sounds[0],g?g._volume:0;return a},fade:function(a,p,d,f){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"fade",action:function(){m.fade(a,p,d,f)}}),m;a=Math.min(Math.max(0,parseFloat(a)),1),p=Math.min(Math.max(0,parseFloat(p)),1),d=parseFloat(d),m.volume(a,f);for(var h=m._getSoundIds(f),g=0;g<h.length;g++){var b=m._soundById(h[g]);if(b){if(f||m._stopFade(h[g]),m._webAudio&&!b._muted){var x=t.ctx.currentTime,S=x+d/1e3;b._volume=a,b._node.gain.setValueAtTime(a,x),b._node.gain.linearRampToValueAtTime(p,S)}m._startFadeInterval(b,a,p,d,h[g],typeof f>"u")}}return m},_startFadeInterval:function(a,p,d,f,m,h){var g=this,b=p,x=d-p,S=Math.abs(x/.01),w=Math.max(4,S>0?f/S:f),v=Date.now();a._fadeTo=d,a._interval=setInterval(function(){var N=(Date.now()-v)/f;v=Date.now(),b+=x*N,b=Math.round(b*100)/100,x<0?b=Math.max(d,b):b=Math.min(d,b),g._webAudio?a._volume=b:g.volume(b,a._id,!0),h&&(g._volume=b),(d<p&&b<=d||d>p&&b>=d)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,g.volume(d,a._id),g._emit("fade",a._id))},w)},_stopFade:function(a){var p=this,d=p._soundById(a);return d&&d._interval&&(p._webAudio&&d._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(d._interval),d._interval=null,p.volume(d._fadeTo,a),d._fadeTo=null,p._emit("fade",a)),p},loop:function(){var a=this,p=arguments,d,f,m;if(p.length===0)return a._loop;if(p.length===1)if(typeof p[0]=="boolean")d=p[0],a._loop=d;else return m=a._soundById(parseInt(p[0],10)),m?m._loop:!1;else p.length===2&&(d=p[0],f=parseInt(p[1],10));for(var h=a._getSoundIds(f),g=0;g<h.length;g++)m=a._soundById(h[g]),m&&(m._loop=d,a._webAudio&&m._node&&m._node.bufferSource&&(m._node.bufferSource.loop=d,d&&(m._node.bufferSource.loopStart=m._start||0,m._node.bufferSource.loopEnd=m._stop,a.playing(h[g])&&(a.pause(h[g],!0),a.play(h[g],!0)))));return a},rate:function(){var a=this,p=arguments,d,f;if(p.length===0)f=a._sounds[0]._id;else if(p.length===1){var m=a._getSoundIds(),h=m.indexOf(p[0]);h>=0?f=parseInt(p[0],10):d=parseFloat(p[0])}else p.length===2&&(d=parseFloat(p[0]),f=parseInt(p[1],10));var g;if(typeof d=="number"){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"rate",action:function(){a.rate.apply(a,p)}}),a;typeof f>"u"&&(a._rate=d),f=a._getSoundIds(f);for(var b=0;b<f.length;b++)if(g=a._soundById(f[b]),g){a.playing(f[b])&&(g._rateSeek=a.seek(f[b]),g._playStart=a._webAudio?t.ctx.currentTime:g._playStart),g._rate=d,a._webAudio&&g._node&&g._node.bufferSource?g._node.bufferSource.playbackRate.setValueAtTime(d,t.ctx.currentTime):g._node&&(g._node.playbackRate=d);var x=a.seek(f[b]),S=(a._sprite[g._sprite][0]+a._sprite[g._sprite][1])/1e3-x,w=S*1e3/Math.abs(g._rate);(a._endTimers[f[b]]||!g._paused)&&(a._clearTimer(f[b]),a._endTimers[f[b]]=setTimeout(a._ended.bind(a,g),w)),a._emit("rate",g._id)}}else return g=a._soundById(f),g?g._rate:a._rate;return a},seek:function(){var a=this,p=arguments,d,f;if(p.length===0)a._sounds.length&&(f=a._sounds[0]._id);else if(p.length===1){var m=a._getSoundIds(),h=m.indexOf(p[0]);h>=0?f=parseInt(p[0],10):a._sounds.length&&(f=a._sounds[0]._id,d=parseFloat(p[0]))}else p.length===2&&(d=parseFloat(p[0]),f=parseInt(p[1],10));if(typeof f>"u")return 0;if(typeof d=="number"&&(a._state!=="loaded"||a._playLock))return a._queue.push({event:"seek",action:function(){a.seek.apply(a,p)}}),a;var g=a._soundById(f);if(g)if(typeof d=="number"&&d>=0){var b=a.playing(f);b&&a.pause(f,!0),g._seek=d,g._ended=!1,a._clearTimer(f),!a._webAudio&&g._node&&!isNaN(g._node.duration)&&(g._node.currentTime=d);var x=function(){b&&a.play(f,!0),a._emit("seek",f)};if(b&&!a._webAudio){var S=function(){a._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(a._webAudio){var w=a.playing(f)?t.ctx.currentTime-g._playStart:0,v=g._rateSeek?g._rateSeek-g._seek:0;return g._seek+(v+w*Math.abs(g._rate))}else return g._node.currentTime;return a},playing:function(a){var p=this;if(typeof a=="number"){var d=p._soundById(a);return d?!d._paused:!1}for(var f=0;f<p._sounds.length;f++)if(!p._sounds[f]._paused)return!0;return!1},duration:function(a){var p=this,d=p._duration,f=p._soundById(a);return f&&(d=p._sprite[f._sprite][1]/1e3),d},state:function(){return this._state},unload:function(){for(var a=this,p=a._sounds,d=0;d<p.length;d++)p[d]._paused||a.stop(p[d]._id),a._webAudio||(a._clearSound(p[d]._node),p[d]._node.removeEventListener("error",p[d]._errorFn,!1),p[d]._node.removeEventListener(t._canPlayEvent,p[d]._loadFn,!1),p[d]._node.removeEventListener("ended",p[d]._endFn,!1),t._releaseHtml5Audio(p[d]._node)),delete p[d]._node,a._clearTimer(p[d]._id);var f=t._howls.indexOf(a);f>=0&&t._howls.splice(f,1);var m=!0;for(d=0;d<t._howls.length;d++)if(t._howls[d]._src===a._src||a._src.indexOf(t._howls[d]._src)>=0){m=!1;break}return o&&m&&delete o[a._src],t.noAudio=!1,a._state="unloaded",a._sounds=[],a=null,null},on:function(a,p,d,f){var m=this,h=m["_on"+a];return typeof p=="function"&&h.push(f?{id:d,fn:p,once:f}:{id:d,fn:p}),m},off:function(a,p,d){var f=this,m=f["_on"+a],h=0;if(typeof p=="number"&&(d=p,p=null),p||d)for(h=0;h<m.length;h++){var g=d===m[h].id;if(p===m[h].fn&&g||!p&&g){m.splice(h,1);break}}else if(a)f["_on"+a]=[];else{var b=Object.keys(f);for(h=0;h<b.length;h++)b[h].indexOf("_on")===0&&Array.isArray(f[b[h]])&&(f[b[h]]=[])}return f},once:function(a,p,d){var f=this;return f.on(a,p,d,1),f},_emit:function(a,p,d){for(var f=this,m=f["_on"+a],h=m.length-1;h>=0;h--)(!m[h].id||m[h].id===p||a==="load")&&(setTimeout(function(g){g.call(this,p,d)}.bind(f,m[h].fn),0),m[h].once&&f.off(a,m[h].fn,m[h].id));return f._loadQueue(a),f},_loadQueue:function(a){var p=this;if(p._queue.length>0){var d=p._queue[0];d.event===a&&(p._queue.shift(),p._loadQueue()),a||d.action()}return p},_ended:function(a){var p=this,d=a._sprite;if(!p._webAudio&&a._node&&!a._node.paused&&!a._node.ended&&a._node.currentTime<a._stop)return setTimeout(p._ended.bind(p,a),100),p;var f=!!(a._loop||p._sprite[d][2]);if(p._emit("end",a._id),!p._webAudio&&f&&p.stop(a._id,!0).play(a._id),p._webAudio&&f){p._emit("play",a._id),a._seek=a._start||0,a._rateSeek=0,a._playStart=t.ctx.currentTime;var m=(a._stop-a._start)*1e3/Math.abs(a._rate);p._endTimers[a._id]=setTimeout(p._ended.bind(p,a),m)}return p._webAudio&&!f&&(a._paused=!0,a._ended=!0,a._seek=a._start||0,a._rateSeek=0,p._clearTimer(a._id),p._cleanBuffer(a._node),t._autoSuspend()),!p._webAudio&&!f&&p.stop(a._id,!0),p},_clearTimer:function(a){var p=this;if(p._endTimers[a]){if(typeof p._endTimers[a]!="function")clearTimeout(p._endTimers[a]);else{var d=p._soundById(a);d&&d._node&&d._node.removeEventListener("ended",p._endTimers[a],!1)}delete p._endTimers[a]}return p},_soundById:function(a){for(var p=this,d=0;d<p._sounds.length;d++)if(a===p._sounds[d]._id)return p._sounds[d];return null},_inactiveSound:function(){var a=this;a._drain();for(var p=0;p<a._sounds.length;p++)if(a._sounds[p]._ended)return a._sounds[p].reset();return new r(a)},_drain:function(){var a=this,p=a._pool,d=0,f=0;if(!(a._sounds.length<p)){for(f=0;f<a._sounds.length;f++)a._sounds[f]._ended&&d++;for(f=a._sounds.length-1;f>=0;f--){if(d<=p)return;a._sounds[f]._ended&&(a._webAudio&&a._sounds[f]._node&&a._sounds[f]._node.disconnect(0),a._sounds.splice(f,1),d--)}}},_getSoundIds:function(a){var p=this;if(typeof a>"u"){for(var d=[],f=0;f<p._sounds.length;f++)d.push(p._sounds[f]._id);return d}else return[a]},_refreshBuffer:function(a){var p=this;return a._node.bufferSource=t.ctx.createBufferSource(),a._node.bufferSource.buffer=o[p._src],a._panner?a._node.bufferSource.connect(a._panner):a._node.bufferSource.connect(a._node),a._node.bufferSource.loop=a._loop,a._loop&&(a._node.bufferSource.loopStart=a._start||0,a._node.bufferSource.loopEnd=a._stop||0),a._node.bufferSource.playbackRate.setValueAtTime(a._rate,t.ctx.currentTime),p},_cleanBuffer:function(a){var p=this,d=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&a.bufferSource&&(a.bufferSource.onended=null,a.bufferSource.disconnect(0),d))try{a.bufferSource.buffer=t._scratchBuffer}catch{}return a.bufferSource=null,p},_clearSound:function(a){var p=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);p||(a.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var r=function(a){this._parent=a,this.init()};r.prototype={init:function(){var a=this,p=a._parent;return a._muted=p._muted,a._loop=p._loop,a._volume=p._volume,a._rate=p._rate,a._seek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,p._sounds.push(a),a.create(),a},create:function(){var a=this,p=a._parent,d=t._muted||a._muted||a._parent._muted?0:a._volume;return p._webAudio?(a._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),a._node.gain.setValueAtTime(d,t.ctx.currentTime),a._node.paused=!0,a._node.connect(t.masterGain)):t.noAudio||(a._node=t._obtainHtml5Audio(),a._errorFn=a._errorListener.bind(a),a._node.addEventListener("error",a._errorFn,!1),a._loadFn=a._loadListener.bind(a),a._node.addEventListener(t._canPlayEvent,a._loadFn,!1),a._endFn=a._endListener.bind(a),a._node.addEventListener("ended",a._endFn,!1),a._node.src=p._src,a._node.preload=p._preload===!0?"auto":p._preload,a._node.volume=d*t.volume(),a._node.load()),a},reset:function(){var a=this,p=a._parent;return a._muted=p._muted,a._loop=p._loop,a._volume=p._volume,a._rate=p._rate,a._seek=0,a._rateSeek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++t._counter,a},_errorListener:function(){var a=this;a._parent._emit("loaderror",a._id,a._node.error?a._node.error.code:0),a._node.removeEventListener("error",a._errorFn,!1)},_loadListener:function(){var a=this,p=a._parent;p._duration=Math.ceil(a._node.duration*10)/10,Object.keys(p._sprite).length===0&&(p._sprite={__default:[0,p._duration*1e3]}),p._state!=="loaded"&&(p._state="loaded",p._emit("load"),p._loadQueue()),a._node.removeEventListener(t._canPlayEvent,a._loadFn,!1)},_endListener:function(){var a=this,p=a._parent;p._duration===1/0&&(p._duration=Math.ceil(a._node.duration*10)/10,p._sprite.__default[1]===1/0&&(p._sprite.__default[1]=p._duration*1e3),p._ended(a)),a._node.removeEventListener("ended",a._endFn,!1)}};var o={},i=function(a){var p=a._src;if(o[p]){a._duration=o[p].duration,c(a);return}if(/^data:[^;]+;base64,/.test(p)){for(var d=atob(p.split(",")[1]),f=new Uint8Array(d.length),m=0;m<d.length;++m)f[m]=d.charCodeAt(m);l(f.buffer,a)}else{var h=new XMLHttpRequest;h.open(a._xhr.method,p,!0),h.withCredentials=a._xhr.withCredentials,h.responseType="arraybuffer",a._xhr.headers&&Object.keys(a._xhr.headers).forEach(function(g){h.setRequestHeader(g,a._xhr.headers[g])}),h.onload=function(){var g=(h.status+"")[0];if(g!=="0"&&g!=="2"&&g!=="3"){a._emit("loaderror",null,"Failed loading audio file with status: "+h.status+".");return}l(h.response,a)},h.onerror=function(){a._webAudio&&(a._html5=!0,a._webAudio=!1,a._sounds=[],delete o[p],a.load())},s(h)}},s=function(a){try{a.send()}catch{a.onerror()}},l=function(a,p){var d=function(){p._emit("loaderror",null,"Decoding audio data failed.")},f=function(m){m&&p._sounds.length>0?(o[p._src]=m,c(p,m)):d()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(a).then(f).catch(d):t.ctx.decodeAudioData(a,f,d)},c=function(a,p){p&&!a._duration&&(a._duration=p.duration),Object.keys(a._sprite).length===0&&(a._sprite={__default:[0,a._duration*1e3]}),a._state!=="loaded"&&(a._state="loaded",a._emit("load"),a._loadQueue())},u=function(){if(!!t.usingWebAudio){try{typeof AudioContext<"u"?t.ctx=new AudioContext:typeof webkitAudioContext<"u"?t.ctx=new webkitAudioContext:t.usingWebAudio=!1}catch{t.usingWebAudio=!1}t.ctx||(t.usingWebAudio=!1);var a=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),p=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),d=p?parseInt(p[1],10):null;if(a&&d&&d<9){var f=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!f&&(t.usingWebAudio=!1)}t.usingWebAudio&&(t.masterGain=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),t.masterGain.gain.setValueAtTime(t._muted?0:t._volume,t.ctx.currentTime),t.masterGain.connect(t.ctx.destination)),t._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:t,Howl:e}}),typeof vl<"u"&&(vl.Howler=t,vl.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=t,global.Howl=e,global.Sound=r):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=t,window.Howl=e,window.Sound=r)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var r=e._howls.length-1;r>=0;r--)e._howls[r].stereo(t);return e},HowlerGlobal.prototype.pos=function(t,e,r){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,r=typeof r!="number"?o._pos[2]:r,typeof t=="number")o._pos=[t,e,r],typeof o.ctx.listener.positionX<"u"?(o.ctx.listener.positionX.setTargetAtTime(o._pos[0],Howler.ctx.currentTime,.1),o.ctx.listener.positionY.setTargetAtTime(o._pos[1],Howler.ctx.currentTime,.1),o.ctx.listener.positionZ.setTargetAtTime(o._pos[2],Howler.ctx.currentTime,.1)):o.ctx.listener.setPosition(o._pos[0],o._pos[1],o._pos[2]);else return o._pos;return o},HowlerGlobal.prototype.orientation=function(t,e,r,o,i,s){var l=this;if(!l.ctx||!l.ctx.listener)return l;var c=l._orientation;if(e=typeof e!="number"?c[1]:e,r=typeof r!="number"?c[2]:r,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof t=="number")l._orientation=[t,e,r,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.upX.setTargetAtTime(o,Howler.ctx.currentTime,.1),l.ctx.listener.upY.setTargetAtTime(i,Howler.ctx.currentTime,.1),l.ctx.listener.upZ.setTargetAtTime(s,Howler.ctx.currentTime,.1)):l.ctx.listener.setOrientation(t,e,r,o,i,s);else return c;return l},Howl.prototype.init=function(t){return function(e){var r=this;return r._orientation=e.orientation||[1,0,0],r._stereo=e.stereo||null,r._pos=e.pos||null,r._pannerAttr={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:360,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:360,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:0,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:"inverse",maxDistance:typeof e.maxDistance<"u"?e.maxDistance:1e4,panningModel:typeof e.panningModel<"u"?e.panningModel:"HRTF",refDistance:typeof e.refDistance<"u"?e.refDistance:1,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:1},r._onstereo=e.onstereo?[{fn:e.onstereo}]:[],r._onpos=e.onpos?[{fn:e.onpos}]:[],r._onorientation=e.onorientation?[{fn:e.onorientation}]:[],t.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,e){var r=this;if(!r._webAudio)return r;if(r._state!=="loaded")return r._queue.push({event:"stereo",action:function(){r.stereo(t,e)}}),r;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof t=="number")r._stereo=t,r._pos=[t,0,0];else return r._stereo;for(var i=r._getSoundIds(e),s=0;s<i.length;s++){var l=r._soundById(i[s]);if(l)if(typeof t=="number")l._stereo=t,l._pos=[t,0,0],l._node&&(l._pannerAttr.panningModel="equalpower",(!l._panner||!l._panner.pan)&&n(l,o),o==="spatial"?typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(t,0,0):l._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),r._emit("stereo",l._id);else return l._stereo}return r},Howl.prototype.pos=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(t,e,r,o)}}),i;if(e=typeof e!="number"?0:e,r=typeof r!="number"?-.5:r,typeof o>"u")if(typeof t=="number")i._pos=[t,e,r];else return i._pos;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._pos=[t,e,r],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setPosition(t,e,r)),i._emit("pos",c._id);else return c._pos}return i},Howl.prototype.orientation=function(t,e,r,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(t,e,r,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,r=typeof r!="number"?i._orientation[2]:r,typeof o>"u")if(typeof t=="number")i._orientation=[t,e,r];else return i._orientation;for(var s=i._getSoundIds(o),l=0;l<s.length;l++){var c=i._soundById(s[l]);if(c)if(typeof t=="number")c._orientation=[t,e,r],c._node&&(c._panner||(c._pos||(c._pos=i._pos||[0,0,-.5]),n(c,"spatial")),typeof c._panner.orientationX<"u"?(c._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(r,Howler.ctx.currentTime)):c._panner.setOrientation(t,e,r)),i._emit("orientation",c._id);else return c._orientation}return i},Howl.prototype.pannerAttr=function(){var t=this,e=arguments,r,o,i;if(!t._webAudio)return t;if(e.length===0)return t._pannerAttr;if(e.length===1)if(typeof e[0]=="object")r=e[0],typeof o>"u"&&(r.pannerAttr||(r.pannerAttr={coneInnerAngle:r.coneInnerAngle,coneOuterAngle:r.coneOuterAngle,coneOuterGain:r.coneOuterGain,distanceModel:r.distanceModel,maxDistance:r.maxDistance,refDistance:r.refDistance,rolloffFactor:r.rolloffFactor,panningModel:r.panningModel}),t._pannerAttr={coneInnerAngle:typeof r.pannerAttr.coneInnerAngle<"u"?r.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof r.pannerAttr.coneOuterAngle<"u"?r.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof r.pannerAttr.coneOuterGain<"u"?r.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof r.pannerAttr.distanceModel<"u"?r.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof r.pannerAttr.maxDistance<"u"?r.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof r.pannerAttr.refDistance<"u"?r.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof r.pannerAttr.rolloffFactor<"u"?r.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof r.pannerAttr.panningModel<"u"?r.pannerAttr.panningModel:t._panningModel});else return i=t._soundById(parseInt(e[0],10)),i?i._pannerAttr:t._pannerAttr;else e.length===2&&(r=e[0],o=parseInt(e[1],10));for(var s=t._getSoundIds(o),l=0;l<s.length;l++)if(i=t._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof r.coneInnerAngle<"u"?r.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof r.coneOuterAngle<"u"?r.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof r.coneOuterGain<"u"?r.coneOuterGain:c.coneOuterGain,distanceModel:typeof r.distanceModel<"u"?r.distanceModel:c.distanceModel,maxDistance:typeof r.maxDistance<"u"?r.maxDistance:c.maxDistance,refDistance:typeof r.refDistance<"u"?r.refDistance:c.refDistance,rolloffFactor:typeof r.rolloffFactor<"u"?r.rolloffFactor:c.rolloffFactor,panningModel:typeof r.panningModel<"u"?r.panningModel:c.panningModel};var u=i._panner;u?(u.coneInnerAngle=c.coneInnerAngle,u.coneOuterAngle=c.coneOuterAngle,u.coneOuterGain=c.coneOuterGain,u.distanceModel=c.distanceModel,u.maxDistance=c.maxDistance,u.refDistance=c.refDistance,u.rolloffFactor=c.rolloffFactor,u.panningModel=c.panningModel):(i._pos||(i._pos=t._pos||[0,0,-.5]),n(i,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var e=this,r=e._parent;e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,t.call(this),e._stereo?r.stereo(e._stereo):e._pos&&r.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var e=this,r=e._parent;return e._orientation=r._orientation,e._stereo=r._stereo,e._pos=r._pos,e._pannerAttr=r._pannerAttr,e._stereo?r.stereo(e._stereo):e._pos?r.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,r._refreshBuffer(e)),t.call(this)}}(Sound.prototype.reset);var n=function(t,e){e=e||"spatial",e==="spatial"?(t._panner=Howler.ctx.createPanner(),t._panner.coneInnerAngle=t._pannerAttr.coneInnerAngle,t._panner.coneOuterAngle=t._pannerAttr.coneOuterAngle,t._panner.coneOuterGain=t._pannerAttr.coneOuterGain,t._panner.distanceModel=t._pannerAttr.distanceModel,t._panner.maxDistance=t._pannerAttr.maxDistance,t._panner.refDistance=t._pannerAttr.refDistance,t._panner.rolloffFactor=t._pannerAttr.rolloffFactor,t._panner.panningModel=t._pannerAttr.panningModel,typeof t._panner.positionX<"u"?(t._panner.positionX.setValueAtTime(t._pos[0],Howler.ctx.currentTime),t._panner.positionY.setValueAtTime(t._pos[1],Howler.ctx.currentTime),t._panner.positionZ.setValueAtTime(t._pos[2],Howler.ctx.currentTime)):t._panner.setPosition(t._pos[0],t._pos[1],t._pos[2]),typeof t._panner.orientationX<"u"?(t._panner.orientationX.setValueAtTime(t._orientation[0],Howler.ctx.currentTime),t._panner.orientationY.setValueAtTime(t._orientation[1],Howler.ctx.currentTime),t._panner.orientationZ.setValueAtTime(t._orientation[2],Howler.ctx.currentTime)):t._panner.setOrientation(t._orientation[0],t._orientation[1],t._orientation[2])):(t._panner=Howler.ctx.createStereoPanner(),t._panner.pan.setValueAtTime(t._stereo,Howler.ctx.currentTime)),t._panner.connect(t._node),t._paused||t._parent.pause(t._id,!0).play(t._id,!0)}})()});var $w={};pu($w,{default:()=>_l});module.exports=Ig($w);var Tl=require("three");var Ge=class{modifyById(t,e){let r=this;if(r[t]===void 0)throw new Error("not expected");{let i={...r,[t]:e};return Object.setPrototypeOf(i,Ge.prototype),i}}add(t,e){return this.runOp({type:1,id:t,data:e})?.data??this}runOp(t){let e=this;if(t.type===1){let r=e[t.id],o;r===void 0?o={type:2,id:t.id}:o={type:1,id:t.id,data:r};let{id:i,data:s}=t,l={...e,[i]:s};return Object.setPrototypeOf(l,Ge.prototype),{data:l,actual:t,reverse:o}}else if(t.type===2){let{id:r}=t,o=e[r];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Ge.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function gi(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let t=Object.getOwnPropertyNames(n);for(let e of t){let r=n[e];r&&typeof r=="object"&&gi(r)}return Object.freeze(n)}function fu(n,t){let e=0;for(;e<n.length&&e<t.length;){if(n[e]<t[e])return-1;if(n[e]>t[e])return 1;e+=1}return e!==t.length?-1:e!==n.length?1:0}var Zo=class extends Error{};var ge=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,ge.prototype)}deepFreeze(){let e=0;for(;e<this.length;)gi(this[e]),e++}fillCaches0(e){this.objCaches.set(e.id,e)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let e of this)this.fillCaches0(e)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}data(e){return this.get(e)?.data}get(e){return this.fillCaches(),this.objCaches.get(e)}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this,s=i.findIndex(u=>u.id===e);if(s<0)throw new Error("not expected");let l=i[s];return i=[...i],i[s]={...l,data:r},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,ge.prototype);let r=e;return mu()||r.fillCaches(),r}runOp(e){switch(e.type){case 4:return this.addOp(e);case 5:return this.deleteOp(e);case 6:return this.moveOp(e)}return null}addOp(e){let{fi:r,id:o,data:i}=e,s=this,l={fi:r,id:o,data:i};return s=[...s,l],s.sort((u,a)=>u.fi-a.fi),e.localIndex=s.indexOf(l),{data:this.modifyArrayBy(s),actual:e,reverse:{type:5,id:o}}}deleteOp(e){let{id:r}=e,o=this,i=o.findIndex(c=>c.id===r);if(i===-1)return null;e.localIndex=i,o=[...o];let s=o.splice(i,1)[0];return{data:this.modifyArrayBy(o),actual:e,reverse:{type:4,...s}}}moveOp(e){let{fi:r,id:o}=e,i=this;i=[...i];let s=i.findIndex(a=>a.id===o);if(s===-1)return null;let l=i[s].fi,c={...i[s],fi:r};return i[s]=c,i.sort((a,p)=>a.fi-p.fi),e.localIndex=i.indexOf(c),{data:this.modifyArrayBy(i),actual:e,reverse:{type:6,fi:l,id:o}}}previous(e){if(e===null)return this.length===0?null:this[this.length-1].id;let r=null;for(let o of this){if(o.id===e)return r;r=o.id}return null}insertBeforeHelper(e,r){return this.insertAfterHelper(this.previous(e),r)}insertAfterHelper(e,r){let o=this;if(e===null){if(o.length===0)return dr(0,r,r);{let i=o[0].fi;return dr(i-r,i,r)}}else{let i=this.get(e);if(i===void 0)throw new Error("illegal args");let s=o.find(l=>l.fi>i.fi);if(s===void 0){let l=o[o.length-1].fi;return dr(l,l+r,r)}else return dr(i.fi,s.fi,r)}}};function dr(n,t,e){if(n===void 0?t===void 0?(n=0,t=10):n=t-10:t===void 0&&(t=n+10),n>t){let i=n;n=t,t=i}let r=[],o=1/(e+1);for(let i=0;i<e;i++){let s=n+(t-n)*(i+.75+Math.random()*.5)*o;r.push(s)}return r}function yi(n){return n instanceof Uint8Array||n instanceof Uint16Array||n instanceof Uint32Array||n instanceof Int8Array||n instanceof Int16Array||n instanceof Int32Array||n instanceof Float32Array||n instanceof Float64Array}function mu(){return typeof process<"u"}function Il(n){return typeof n!="object"||yi(n)||Pl(n)}function xi(n){return Il(n)||n instanceof ge||n instanceof Fe||n instanceof Ge}function Pl(n){return Array.isArray(n)&&n.every(t=>typeof t!="object")}function hu(n,t){for(let e of n)t(e.id,e.data)!==!0&&hu(e.children,t)}function gu(n,t){if(t(n.id,n.data)!==!0)for(let e of n.children)gu(e,t)}var Fe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Fe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)gi(this[e]),e++}fillCaches0(e,r){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,r);for(let o of e.children)this.fillCaches0(o,e.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let e of this)this.fillCaches0(e,null)}}randomId(){this.fillCaches();let e=Array.from(this.objCaches.keys());if(e.length!==0)return e[Math.max(0,Math.floor(Math.random()*e.length)-1)]}nonExistOrDescendantOf(e,r){if(!this.has(e))return!0;for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}isDescendantOf(e,r){for(;e;){let o=this.parent(e);if(o===r)return!0;e=o}return!1}data(e){return this.get(e)?.data}has(e){return this.childrenOf(e)!==void 0}get(e){return this.fillCaches(),this.objCaches.get(e)}childrenOf(e){return e===null?this:this.get(e)?.children}traverseFrom(e,r){if(e===null)this.traverse(r);else{let o=this.get(e);o&&gu(o,r)}}traverse(e){hu(this,e)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(e){return this.fillCaches(),this.parentCaches.get(e)}childrenArray(e){return e===null?this:this.get(e).children}modifyById(e,r){if(this.get(e)===void 0)throw new Error("not expected");{let i=this.parent(e),s=this.childrenArray(i),l=s.findIndex(a=>a.id===e);if(l<0)throw new Error("not expected");let c=s[l];return s=[...s],s[l]={...c,data:r},this.modifyArrayBy(i,s)}}modifyArrayBy(e,r){let o=e,i=r;for(;o!==null;){let l=i,c=o;if(o=this.parent(o),o===void 0)throw new Error;i=this.childrenArray(o);let u=i.findIndex(a=>a.id===c);if(u<0)throw new Error;i=[...i],i[u]={...i[u],children:l}}Object.setPrototypeOf(i,Fe.prototype);let s=i;return s.fillCaches(),s}runOp(e){switch(e.type){case 7:return this.addOp(e);case 8:return this.deleteOp(e);case 9:return this.moveOp(e)}return null}checkDuplicatedIdRec({id:e,children:r}){if(this.get(e)!==void 0)return!0;for(let o of r)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:r,fi:o,id:i,data:s,children:l}=e;if(r!==null&&this.get(r)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=r,u=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return u=[...u,a],u.sort((d,f)=>d.fi-f.fi),e.localIndex=u.indexOf(a),{data:this.modifyArrayBy(c,u),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:r}=e;if(this.get(r)===null)return null;{let o=this.parent(r);if(o===void 0)return null;let i=this.childrenArray(o),s=i.findIndex(u=>u.id===r);e.localIndex=s,i=[...i];let l=i.splice(s,1)[0];return{data:this.modifyArrayBy(o,i),actual:e,reverse:{type:7,...l,parent:o}}}}moveOp(e){let{parent:r,fi:o,id:i}=e;if(r!==null&&this.get(r)===void 0)return this.deleteOp({type:8,id:i});if(r!==null){let f=r;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new Zo("cyclic tree");f=this.parent(f)}}let s=this.parent(i);if(s===void 0)return null;let l=s,c=this.childrenArray(s),u=c.findIndex(f=>f.id===i);c=[...c];let a=c.splice(u,1)[0],p=this.modifyArrayBy(s,c);s=r,c=p.childrenArray(s);let d=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),p=p.modifyArrayBy(s,c),{data:p,actual:e,reverse:{type:9,parent:l,fi:d,id:i}}}previous(e,r){if(r===null){let i=this.childrenArray(e);return i.length===0?null:i[i.length-1].id}let o=null;for(let i of this.childrenArray(e)){if(i.id===r)return o;o=i.id}return null}traverseSortNext(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)+1;if(i<o.length)return o[i].id;if(r)return this.traverseSortNext(r)}}sortNext(e){let r=this.childrenArray(e);return r.length>0?r[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let r=this.childrenArray(e);return r.length>0?this.traverseSortPrevious(r[r.length-1].id):e}sortPrevious(e){let r=this.parent(e);if(r!==void 0){let o=this.childrenArray(r),i=o.findIndex(s=>s.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):r}}getAllSorted(e){let r=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&r.push({...o,...i})}r.sort((o,i)=>fu(o.sortKey,i.sortKey));for(let o of r)delete o.sortKey;return r}getWithSortKey(e){var r=e;let o=[],i=this.get(r),s=i;if(i!==void 0){for(;r;)o.splice(0,0,i.fi),r=this.parent(r),r!==null&&(i=this.get(r));return{...s,sortKey:o}}}insertBeforeHelper(e,r,o){return this.insertAfterHelper(e,this.previous(e,r),o)}insertAfterHelper(e,r,o){let i=this.childrenArray(e);if(r===null){if(i.length===0)return dr(0,o,o);{let s=i[0].fi;return dr(s-o,s,o)}}else{let s=this.get(r);if(s===void 0||this.parent(r)!==e)throw new Error("illegal args");let l=i.find(c=>c.fi>s.fi);if(l===void 0){let c=i[i.length-1].fi;return dr(c,c+o,o)}else return dr(s.fi,l.fi,o)}}};var Qo;(t=>{function n(e,r){if(r.type!==0)return null;if(Array.isArray(e)){let o=r.props,i={},s=[...e],l=!1;if(o)for(let c of Object.keys(o)){let u=parseInt(c);if(isNaN(u))throw new Error("wrong index");i[c]=s[u],s[u]=o[c],l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}else{let o=r.props,i={},s={...e},l=!1;if(o)for(let c of Object.keys(o)){i[c]=s[c];let u=o[c];u===void 0?delete s[c]:s[c]=u,l=!0}return l?{data:s,actual:r,reverse:{type:0,props:i}}:null}}t.runOp=n})(Qo||(Qo={}));var Jo=class{unusedFun(t){}},Rt=class{unusedFun(t){}runOp(t){let e=[],r=this,o=0,i={};for(;o<t.path.length;){if(e.push(r),r=r===void 0?void 0:r[t.path[o]],r instanceof Fe||r instanceof ge)return null;o+=1}r={...r};for(let[c,u]of Object.entries(t.props)){let a=r[c];i[c]=a,u===void 0?delete r[c]:r[c]=u}for(;o>0;)Object.keys(r).length===0?(r={...e[o-1]},delete r[t.path[o-1]]):r={...e[o-1],[t.path[o-1]]:r},o-=1;let s=Object.setPrototypeOf(r,Rt.prototype),l={...t,props:i};return{data:s,actual:t,reverse:l}}},yu;(r=>{function n(o,i){return en(o,i)??o}r.apply=n;function t(o,i){return bu(o,i)}r.merge=t;function e(o,i){let s=0,l=i.path,c=o;for(;s<l.length&&c!==void 0;){if(c=jr.zoomOnce(c,l[s]),c instanceof Fe||c instanceof ge)return;s+=1}if(c===void 0)return i;if(xi(c))return;if(i.type===0)if(c&&typeof c=="object"){let u={...i.props};for(let a of Object.keys(c))delete u[a];return{...i,props:u}}else return;else if(i.type===1||i.type===4||i.type===7)if(typeof c=="object"){let u={...i.data,...c};return{...i,data:u}}else return;else return i}r.filterOp=e})(yu||(yu={}));function xu(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=en(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=xu(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Pg(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=en(o.data,t[i]);return e=e||s!==void 0,s===void 0&&(s=o.data),{...o,id:i,data:s}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function en(n,t){if(xi(t))return t;if(n instanceof Fe){let e=xu(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof ge)return Pg(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=en(o,t[i]);return e=e||s!==void 0,s===void 0&&(s=o),s});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(n&&typeof n=="object"){let e={},r=!1;for(let[o,i]of Object.entries(n)){let s=en(i,t[o]);r=r||s!==void 0,s===void 0&&(s=i),e[o]=s}return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}else return n==null&&(xi(t)||t instanceof Jo)?t??n:n}}function bu(n,t){if(n===void 0)return t;if(t===void 0)return n;if(xi(t)||Il(n))return t;if(n instanceof Fe||n instanceof ge)return en(n,t);if(typeof n=="object"&&typeof t=="object"){let e=new Set;if(n)for(let o of Object.keys(n))e.add(o);if(t)for(let o of Object.keys(t))e.add(o);let r={};for(let o of e){let i=bu(n===void 0?void 0:n[o],t===void 0?void 0:t[o]);r[o]=i}return r}else return n}function vu(n,t){let e={cur:[],result:[],len:0};return n=bi(n,t,e)??n,[n,e.result]}function Bs(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function Ds(n){n&&(n.len-=1)}function Og(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function Su(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=bi(i.data,t,Bs(e,s));Ds(e),r=r||c!==void 0,c===void 0&&(c=i.data);let u=Su(i.children,t,e);return u!==void 0?r=!0:u=i.children,{...i,id:s,data:c,children:u}});if(r)return o}function Cg(n,t,e){let r=!1,o=n.map(i=>{let s=i.id,l=t[s];if(l!==void 0&&typeof l=="string"&&(r=!0,s=l,e!==null))throw new Error("not supported");let c=bi(i.data,t,Bs(e,s));return Ds(e),r=r||c!==void 0,c===void 0&&(c=i.data),{...i,id:s,data:c}});if(r)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function bi(n,t,e){if(n instanceof Fe){let r=Su(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof ge)return Cg(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=bi(i,t,Bs(e,s));return Ds(e),r=r||l!==void 0,l===void 0&&(l=i),l});return r?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"){let r={},o=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let l=t[i];if(typeof l=="string"){if(e!==null)throw new Error("not supported");o=!0,i=l}let c=bi(s,t,Bs(e,i));Ds(e),o=o||c!==void 0,c===void 0&&(c=s),r[i]=c}else r[i]=s;return o?(Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r):void 0}else if(typeof n=="string"){let r=t[n];if(r!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");Og(e)}return r}else return}}var wu;(t=>{function n(e,r){let o=jr.zoom(r,e.path);if(typeof o=="object"){let i={};for(let s of Object.keys(e.props))i[s]=o[s];return{...e,props:i}}else return{...e,props:{}}}t.replaceProps=n})(wu||(wu={}));var ro;(l=>{function n(c,u){return{...c,path:c.path.slice(u)}}l.drop=n;function t(c,u){return e(c,u)?.data??c}l.applySimple=t;function e(c,u){let a=u.path;for(var p=[];;){let d;if(c instanceof Rt&&u.type===0&&(d=c.runOp({...u,path:a.slice(p.length)}),d===null&&(d=void 0)),p.length===a.length&&(c instanceof Fe||c instanceof ge||c instanceof Ge?d=c.runOp(u):d=Qo.runOp(c,u)),d!==void 0)if(d!==null){let h=d.data;for(let g=p.length-1;g>=0;g--){let b=a[g],x=p[g];if(x instanceof Fe){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof ge){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof Ge){if(typeof b=="number")throw new Error("illegal arg");h=x.modifyById(b,h)}else if(x instanceof Rt){let S={...x,[b]:h};h=Object.setPrototypeOf(S,Rt.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof b=="string"&&(b=parseInt(b),isNaN(b)))throw new Error("Invalid path");let S=h;h=[...x],h[b]=S}else h={...x,[b]:h};else return null}return{data:h,actual:{...d.actual,path:a},reverse:{...d.reverse,path:a}}}else return null;let f=a[p.length],m;if(c instanceof Fe){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof ge){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else c!==null&&(m=c[f]);if(m!==void 0)p.push(c),c=m;else return null}}l.apply=e;function r(c,u){for(let a=0;a<c.length&&a<u.length;a++)if(c[a]!==u[a])return!0;return!1}l.pathDisjoint=r;function o(c,u){if(c.length!==u.length)return!1;for(let a=0;a<c.length;a++)if(c[a]!==u[a])return!1;return!0}l.pathEq=o;function i(c,u){return r(c.path,u.path)}l.commutative=i;function s(c,u){return c.type===0&&u.type===0&&o(c.path,u.path)?Object.keys(c.props).every(a=>u.props[a]!==void 0):!1}l.subsumed=s})(ro||(ro={}));var _u;(c=>{function n(){return[]}c.empty=n;function t(u,a){let p=[];for(let d of u){let[f,...m]=d.path;f===a&&p.push({...d,path:m})}return p}c.removePrefix=t;function e(u,a){return u.map(p=>({...p,path:[a,...p.path]}))}c.addPrefix=e;function r(u,a){return[...u,...a]}c.concat=r;function o(u,a){return[...u.filter(d=>!a.some(f=>ro.subsumed(d,f))),...a]}c.compress=o;function i(u,a){return u.every(p=>a.every(d=>ro.commutative(p,d)))}c.commutative=i;function s(u,a){for(let p of a){let d=l(u,p);d!==null&&(u=d.data)}return u}c.applyAll=s;function l(u,a){var p=u;let d=[],f=[];for(let m of a)try{if(m.type===3){let h=jr.zoom(p,[...m.path,m.id]),g=ro.apply(p,{...m,type:2});if(g!==null){p=g.data;let[b,x]=vu(p,{[m.id]:h});p=b;for(let S of x){let w=S[S.length-1];S.splice(S.length-1,1),d.push({type:0,path:S,props:{[w]:h}}),f.push({type:0,path:S,props:{[w]:m.id}})}f.push(g.reverse),d.push(g.actual)}}else{let h=ro.apply(p,m);h!==null&&(d.push(h.actual),p=h.data,f.push(h.reverse))}}catch(h){if(h instanceof Zo)return null;throw h}return{data:p,actual:d,reverse:f.reverse()}}c.apply=l})(_u||(_u={}));var Tu=Symbol(),vi=Symbol(),Oo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof Rs);){let s=o._path,l=o._current;if(s!==""&&i.splice(0,0,s),o=o._parent,o===null)return;o.update(s,l)}o.push(i,t,e.actual,e.reverse)}deleteChildren(t){if(this._children){let e=this._children[t];if(e){let r=e[vi];r&&r(),delete this._children[t]}}}},Cl=class extends Oo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){if(Array.isArray(this._current)){if(typeof t=="string"&&(t=parseInt(t),isNaN(t)))throw new Error("Invalid path");this._current=[...this._current],this._current[t]=e}else this._current={...this._current,[t]:e}}runOp(t){this.reportOp(t,Qo.runOp(this._current,t),t.path)}},Ml=class extends Oo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r}update(t,e){this._current={...this._current,[t]:e},Object.setPrototypeOf(this._current,Ge.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Au={get(n,t){if(t===vi)return()=>{n._parent=null};if(t===Tu)return n._current;let{_current:e,_children:r}=n;if(t==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e[t],s=Vs(n,t,i);return s!==i?(r===void 0&&(r={},n._children=r),r[t]=s,s):i},has(n,t){return t in n._current},ownKeys(n){return Reflect.ownKeys(n._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(n){return Object.getPrototypeOf(n._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(n,t){let e=n._current,r=Reflect.getOwnPropertyDescriptor(e,t);return r&&{writable:!0,configurable:!0,enumerable:r.enumerable,value:e[t]}}},Mg={...Au,set(n,t,e){let r={type:0,props:{[t]:Nt(e)??e}};return n.deleteChildren(t),n.runOp(r),!0},deleteProperty(n,t){let e={type:0,props:{[t]:void 0}};return n.deleteChildren(t),n.runOp(e),!0}},Lg={...Au,set(n,t,e){return e===void 0?this.deleteProperty(n,t):(n.deleteChildren(t),n.runOp({type:1,id:t,data:e})),!0},deleteProperty(n,t){return n.runOp({type:2,id:t}),!0}},tn=class extends Oo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[vi]=()=>{this._parent=null}}unproxy(){return this._current}update(t,e){this._current=this._current.modifyById(t,e)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,e){return this._current.isDescendantOf(t,e)}childrenOf(t){return this._current.childrenOf(t)}traverse(t){return this._current.traverse(t)}get(t){return this._current.get(t)}parent(t){return this._current.parent(t)}traverse(t){this._current.traverse((e,r)=>{t(e,this.data(e))})}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=Vs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}add(t,e,r,o,i){this.runOp({type:7,parent:t,fi:e,id:r,data:o,children:i})}move(t,e,r){this.runOp({type:9,parent:t,fi:e,id:r})}insertAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}insertBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.add(t,o[i],s.id,s.data,s.children)}}moveAfter(t,e,r){let o=this._current.insertAfterHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}moveBefore(t,e,r){let o=this._current.insertBeforeHelper(t,e,r.length);for(let i=0;i<r.length;i++){let s=r[i];this.move(t,o[i],s)}}delete(t){this.deleteChildren(t),this.runOp({type:8,id:t})}sortNext(t){return this._current.sortNext(t)}sortPrevious(t){return this._current.sortPrevious(t)}getAllSorted(t){return this._current.getAllSorted(t)}},Gs=class extends Oo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[vi]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,ro.apply(this._current,t),e)}},rn=class extends Oo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[vi]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id,i=this._current[r].fi;t(this.data(this._current[r].id),o,i)}}find(t){let e=this.length;for(let r=0;r<e;r++){let o=this._current[r].id;if(t(this.data(o),o))return this.get(o)}}update(t,e){this._current=this._current.modifyById(t,e)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:e,_children:r}=this,o=r===void 0?void 0:r[t];if(o!==void 0)return o;let i=e.get(t)?.data,s=Vs(this,t,i);return s!==i?(r===void 0&&(r={},this._children=r),r[t]=s,s):i}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,e,r){this.runOp({type:4,fi:t,id:e,data:r})}move(t,e){this.runOp({type:6,fi:t,id:e})}insertAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}insertBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(r[o],i.id,i.data)}}moveAfter(t,e){let r=this._current.insertAfterHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}moveBefore(t,e){let r=this._current.insertBeforeHelper(t,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(r[o],i)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Ol(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&jr.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var Rs=class{constructor(t){this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,e){if(t!=="")throw new Error("");this._current=e}push(t,e,r,o){Ol(this.ts,e,t),Ol(this.actual,r,t),Ol(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Vs(n,t,e){return e instanceof Fe?new tn(n,t,e):e instanceof ge?new rn(n,t,e):e instanceof Rt?new Gs(n,t,e):e instanceof Ge?new Proxy(new Ml(n,t,e),Lg):e!==null&&typeof e=="object"?yi(e)||Pl(e)?e:new Proxy(new Cl(n,t,e),Mg):e}function Ll(n){let t=new Rs(n);return[Vs(t,"",n),t]}function El(n,t){let[e,r]=Ll(n);return t(e),r.result()}function Nt(n){if(n instanceof tn)return n._current;if(n instanceof rn)return n._current;if(n instanceof Gs)return n._current;if(n!==null&&typeof n=="object"){let t=n[Tu];return t!==void 0?t:n}else return n}var jr;(o=>{function n(i,s){if(s.length===i.length)for(var l=0;l<i.length;){if(i[l]!==s[l])return!1;l+=1}else return!1;return!0}o.equal=n;function t(i,s,l){let c=r(l,i);if(c!==void 0&&typeof c=="object"&&c!==null){let u={...s};return Object.keys(c).forEach(a=>{delete u[a]}),u}else return s}o.removeOverridden=t;function e(i,s){if((i instanceof Fe||i instanceof tn)&&typeof s=="string")return i.data(s);if((i instanceof ge||i instanceof rn)&&typeof s=="string")return i.data(s);if(typeof s=="number"&&Array.isArray(i))return i[s];if(typeof s=="string"&&typeof i=="object"&&i!==null)return i[s]}o.zoomOnce=e;function r(i,s,l=0){for(;l<s.length&&i!==void 0;)i=e(i,s[l]),l+=1;return i}o.zoom=r})(jr||(jr={}));var Fs=class{},Si=class extends Fs{constructor(e){super();this.id=e}},wi=class extends Fs{constructor(e){super();this.data=e}};var Dl;try{Dl=new TextDecoder}catch{}var ne,no,O=0;var Eu=[],Gl=Eu,Rl=0,It={},Ae,oo,Ht=0,fr=0,Vt,Ur,vt=[],Ce,Nu={useRecords:!1,mapsAsObjects:!0},_i=class{},Fl=new _i;Fl.name="MessagePack 0xC1";var on=!1,mr=class{constructor(t){t&&(t.useRecords===!1&&t.mapsAsObjects===void 0&&(t.mapsAsObjects=!0),t.structures?t.structures.sharedLength=t.structures.length:t.getStructures&&((t.structures=[]).uninitialized=!0,t.structures.sharedLength=0)),Object.assign(this,t)}unpack(t,e){if(ne)return Vu(()=>(js(),this?this.unpack(t,e):mr.prototype.unpack.call(Nu,t,e)));no=e>-1?e:t.length,O=0,Rl=0,fr=0,oo=null,Gl=Eu,Vt=null,ne=t;try{Ce=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(r){throw ne=null,t instanceof Uint8Array?r:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof mr){if(It=this,this.structures)return Ae=this.structures,zs();(!Ae||Ae.length>0)&&(Ae=[])}else It=Nu,(!Ae||Ae.length>0)&&(Ae=[]);return zs()}unpackMultiple(t,e){let r,o=0;try{on=!0;let i=t.length,s=this?this.unpack(t,i):Hs.unpack(t,i);if(e){for(e(s);O<i;)if(o=O,e(zs())===!1)return}else{for(r=[s];O<i;)o=O,r.push(zs());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{on=!1,js()}}_mergeStructures(t,e){t=t||[];for(let r=0,o=t.length;r<o;r++){let i=t[r];i&&(i.isShared=!0,r>=32&&(i.highByte=r-32>>5))}t.sharedLength=t.length;for(let r in e||[])if(r>=0){let o=t[r],i=e[r];i&&(o&&((t.restoreStructures||(t.restoreStructures=[]))[r]=o),t[r]=i)}return this.structures=t}decode(t,e){return this.unpack(t,e)}};function zs(){try{if(!It.trusted&&!on){let t=Ae.sharedLength||0;t<Ae.length&&(Ae.length=t)}let n=ke();if(O==no)Ae.restoreStructures&&Iu(),Ae=null,ne=null,Ur&&(Ur=null);else if(O>no){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!on)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Ae.restoreStructures&&Iu(),js(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Iu(){for(let n in Ae.restoreStructures)Ae[n]=Ae.restoreStructures[n];Ae.restoreStructures=null}function ke(){let n=ne[O++];if(n<160)if(n<128){if(n<64)return n;{let t=Ae[n&63]||It.getStructures&&Bu()[n&63];return t?(t.read||(t.read=zl(t,n&63)),t.read()):n}}else if(n<144)if(n-=128,It.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Gu()]=ke();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(ke(),ke());return t}else{n-=144;let t=new Array(n);for(let e=0;e<n;e++)t[e]=ke();return t}else if(n<192){let t=n-160;if(fr>=O)return oo.slice(O-Ht,(O+=t)-Ht);if(fr==0&&no<140){let e=t<16?jl(t):Du(t);if(e!=null)return e}return Vl(t)}else{let t;switch(n){case 192:return null;case 193:return Vt?(t=ke(),t>0?Vt[1].slice(Vt.position1,Vt.position1+=t):Vt[0].slice(Vt.position0,Vt.position0-=t)):Fl;case 194:return!1;case 195:return!0;case 196:return Bl(ne[O++]);case 197:return t=Ce.getUint16(O),O+=2,Bl(t);case 198:return t=Ce.getUint32(O),O+=4,Bl(t);case 199:return Co(ne[O++]);case 200:return t=Ce.getUint16(O),O+=2,Co(t);case 201:return t=Ce.getUint32(O),O+=4,Co(t);case 202:if(t=Ce.getFloat32(O),It.useFloat32>2){let e=ks[(ne[O]&127)<<1|ne[O+1]>>7];return O+=4,(e*t+(t>0?.5:-.5)>>0)/e}return O+=4,t;case 203:return t=Ce.getFloat64(O),O+=8,t;case 204:return ne[O++];case 205:return t=Ce.getUint16(O),O+=2,t;case 206:return t=Ce.getUint32(O),O+=4,t;case 207:return It.int64AsNumber?(t=Ce.getUint32(O)*4294967296,t+=Ce.getUint32(O+4)):t=Ce.getBigUint64(O),O+=8,t;case 208:return Ce.getInt8(O++);case 209:return t=Ce.getInt16(O),O+=2,t;case 210:return t=Ce.getInt32(O),O+=4,t;case 211:return It.int64AsNumber?(t=Ce.getInt32(O)*4294967296,t+=Ce.getUint32(O+4)):t=Ce.getBigInt64(O),O+=8,t;case 212:if(t=ne[O++],t==114)return Lu(ne[O++]&63);{let e=vt[t];if(e)return e.read?(O++,e.read(ke())):e.noBuffer?(O++,e()):e(ne.subarray(O,++O));throw new Error("Unknown extension "+t)}case 213:return t=ne[O],t==114?(O++,Lu(ne[O++]&63,ne[O++])):Co(2);case 214:return Co(4);case 215:return Co(8);case 216:return Co(16);case 217:return t=ne[O++],fr>=O?oo.slice(O-Ht,(O+=t)-Ht):Bg(t);case 218:return t=Ce.getUint16(O),O+=2,fr>=O?oo.slice(O-Ht,(O+=t)-Ht):Dg(t);case 219:return t=Ce.getUint32(O),O+=4,fr>=O?oo.slice(O-Ht,(O+=t)-Ht):Gg(t);case 220:return t=Ce.getUint16(O),O+=2,Ou(t);case 221:return t=Ce.getUint32(O),O+=4,Ou(t);case 222:return t=Ce.getUint16(O),O+=2,Cu(t);case 223:return t=Ce.getUint32(O),O+=4,Cu(t);default:if(n>=224)return n-256;if(n===void 0){let e=new Error("Unexpected end of MessagePack data");throw e.incomplete=!0,e}throw new Error("Unknown MessagePack token "+n)}}}var Eg=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function zl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Eg.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(ke);return n.highByte===0&&(n.read=Pu(t,n.read)),o()}let r={};for(let o=0,i=n.length;o<i;o++){let s=n[o];r[s]=ke()}return r}return e.count=0,n.highByte===0?Pu(t,e):e}var Pu=(n,t)=>function(){let e=ne[O++];if(e===0)return t();let r=n<32?-(n+(e<<5)):n+(e<<5),o=Ae[r]||Bu()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=zl(o,n)),o.read()};function Bu(){let n=Vu(()=>(ne=null,It.getStructures()));return Ae=It._mergeStructures(n,Ae)}var Vl=Us,Bg=Us,Dg=Us,Gg=Us;function Us(n){let t;if(n<16&&(t=jl(n)))return t;if(n>64&&Dl)return Dl.decode(ne.subarray(O,O+=n));let e=O+n,r=[];for(t="";O<e;){let o=ne[O++];if((o&128)===0)r.push(o);else if((o&224)===192){let i=ne[O++]&63;r.push((o&31)<<6|i)}else if((o&240)===224){let i=ne[O++]&63,s=ne[O++]&63;r.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=ne[O++]&63,s=ne[O++]&63,l=ne[O++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,r.push(c>>>10&1023|55296),c=56320|c&1023),r.push(c)}else r.push(o);r.length>=4096&&(t+=at.apply(String,r),r.length=0)}return r.length>0&&(t+=at.apply(String,r)),t}function Ou(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=ke();return t}function Cu(n){if(It.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[Gu()]=ke();return t}else{let t=new Map;for(let e=0;e<n;e++)t.set(ke(),ke());return t}}var at=String.fromCharCode;function Du(n){let t=O,e=new Array(n);for(let r=0;r<n;r++){let o=ne[O++];if((o&128)>0){O=t;return}e[r]=o}return at.apply(String,e)}function jl(n){if(n<4)if(n<2){if(n===0)return"";{let t=ne[O++];if((t&128)>1){O-=1;return}return at(t)}}else{let t=ne[O++],e=ne[O++];if((t&128)>0||(e&128)>0){O-=2;return}if(n<3)return at(t,e);let r=ne[O++];if((r&128)>0){O-=3;return}return at(t,e,r)}else{let t=ne[O++],e=ne[O++],r=ne[O++],o=ne[O++];if((t&128)>0||(e&128)>0||(r&128)>0||(o&128)>0){O-=4;return}if(n<6){if(n===4)return at(t,e,r,o);{let i=ne[O++];if((i&128)>0){O-=5;return}return at(t,e,r,o,i)}}else if(n<8){let i=ne[O++],s=ne[O++];if((i&128)>0||(s&128)>0){O-=6;return}if(n<7)return at(t,e,r,o,i,s);let l=ne[O++];if((l&128)>0){O-=7;return}return at(t,e,r,o,i,s,l)}else{let i=ne[O++],s=ne[O++],l=ne[O++],c=ne[O++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){O-=8;return}if(n<10){if(n===8)return at(t,e,r,o,i,s,l,c);{let u=ne[O++];if((u&128)>0){O-=9;return}return at(t,e,r,o,i,s,l,c,u)}}else if(n<12){let u=ne[O++],a=ne[O++];if((u&128)>0||(a&128)>0){O-=10;return}if(n<11)return at(t,e,r,o,i,s,l,c,u,a);let p=ne[O++];if((p&128)>0){O-=11;return}return at(t,e,r,o,i,s,l,c,u,a,p)}else{let u=ne[O++],a=ne[O++],p=ne[O++],d=ne[O++];if((u&128)>0||(a&128)>0||(p&128)>0||(d&128)>0){O-=12;return}if(n<14){if(n===12)return at(t,e,r,o,i,s,l,c,u,a,p,d);{let f=ne[O++];if((f&128)>0){O-=13;return}return at(t,e,r,o,i,s,l,c,u,a,p,d,f)}}else{let f=ne[O++],m=ne[O++];if((f&128)>0||(m&128)>0){O-=14;return}if(n<15)return at(t,e,r,o,i,s,l,c,u,a,p,d,f,m);let h=ne[O++];if((h&128)>0){O-=15;return}return at(t,e,r,o,i,s,l,c,u,a,p,d,f,m,h)}}}}}function Bl(n){return It.copyBuffers?Uint8Array.prototype.slice.call(ne,O,O+=n):ne.subarray(O,O+=n)}function Co(n){let t=ne[O++];if(vt[t])return vt[t](ne.subarray(O,O+=n));throw new Error("Unknown extension type "+t)}var Mu=new Array(4096);function Gu(){let n=ne[O++];if(n>=160&&n<192){if(n=n-160,fr>=O)return oo.slice(O-Ht,(O+=n)-Ht);if(!(fr==0&&no<180))return Vl(n)}else return O--,ke();let t=(n<<5^(n>1?Ce.getUint16(O):n>0?ne[O]:0))&4095,e=Mu[t],r=O,o=O+n-3,i,s=0;if(e&&e.bytes==n){for(;r<o;){if(i=Ce.getUint32(r),i!=e[s++]){r=1879048192;break}r+=4}for(o+=3;r<o;)if(i=ne[r++],i!=e[s++]){r=1879048192;break}if(r===o)return O=r,e.string;o-=3,r=O}for(e=[],Mu[t]=e,e.bytes=n;r<o;)i=Ce.getUint32(r),e.push(i),r+=4;for(o+=3;r<o;)i=ne[r++],e.push(i);let l=n<16?jl(n):Du(n);return l!=null?e.string=l:e.string=Vl(n)}var Lu=(n,t)=>{var e=ke();let r=n;t!==void 0&&(n=n<32?-((t<<5)+n):(t<<5)+n,e.highByte=t);let o=Ae[n];return o&&o.isShared&&((Ae.restoreStructures||(Ae.restoreStructures=[]))[n]=o),Ae[n]=e,e.read=zl(e,r),e.read()},Ru=typeof self=="object"?self:global;vt[0]=()=>{};vt[0].noBuffer=!0;vt[101]=()=>{let n=ke();return(Ru[n[0]]||Error)(n[1])};vt[105]=n=>{let t=Ce.getUint32(O-4);Ur||(Ur=new Map);let e=ne[O],r;e>=144&&e<160||e==220||e==221?r=[]:r={};let o={target:r};Ur.set(t,o);let i=ke();return o.used?Object.assign(r,i):(o.target=i,i)};vt[112]=n=>{let t=Ce.getUint32(O-4),e=Ur.get(t);return e.used=!0,e.target};vt[115]=()=>new Set(ke());var Ul=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");vt[116]=n=>{let t=n[0],e=Ul[t];if(!e)throw new Error("Could not find typed array for code "+t);return new Ru[e](Uint8Array.prototype.slice.call(n,1).buffer)};vt[120]=()=>{let n=ke();return new RegExp(n[0],n[1])};vt[98]=n=>{let t=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=O;O+=t-4,Vt=[ke(),ke()],Vt.position0=0,Vt.position1=0;let r=O;O=e;try{return ke()}finally{O=r}};vt[255]=n=>n.length==4?new Date((n[0]*16777216+(n[1]<<16)+(n[2]<<8)+n[3])*1e3):n.length==8?new Date(((n[0]<<22)+(n[1]<<14)+(n[2]<<6)+(n[3]>>2))/1e6+((n[3]&3)*4294967296+n[4]*16777216+(n[5]<<16)+(n[6]<<8)+n[7])*1e3):n.length==12?new Date(((n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3])/1e6+((n[4]&128?-281474976710656:0)+n[6]*1099511627776+n[7]*4294967296+n[8]*16777216+(n[9]<<16)+(n[10]<<8)+n[11])*1e3):new Date("invalid");function Vu(n){let t=no,e=O,r=Rl,o=Ht,i=fr,s=oo,l=Gl,c=Ur,u=Vt,a=new Uint8Array(ne.slice(0,no)),p=Ae,d=Ae.slice(0,Ae.length),f=It,m=on,h=n();return no=t,O=e,Rl=r,Ht=o,fr=i,oo=s,Gl=l,Ur=c,Vt=u,ne=a,on=m,Ae=p,Ae.splice(0,Ae.length,...d),It=f,Ce=new DataView(ne.buffer,ne.byteOffset,ne.byteLength),h}function js(){ne=null,Ur=null,Ae=null}function Fu(n){n.unpack?vt[n.type]=n.unpack:vt[n.type]=n}var ks=new Array(147);for(let n=0;n<256;n++)ks[n]=+("1e"+Math.floor(45.15-n*.30103));var Hs=new mr({useRecords:!1}),Rg=Hs.unpack,Vg=Hs.unpackMultiple,Fg=Hs.unpack,Ws={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},zg=new Float32Array(1),J_=new Uint8Array(zg.buffer,0,4);var qs;try{qs=new TextEncoder}catch{}var $s,Hl,Ys=typeof Buffer<"u",kl=Ys?Buffer.allocUnsafeSlow:Uint8Array,ku=Ys?Buffer:Uint8Array,zu=Ys?4294967296:2144337920,R,Ye,M=0,hr,gr=null,jg=/[\u0080-\uFFFF]/,Ti=Symbol("record-id"),Mo=class extends mr{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,u=ku.prototype.utf8Write?function(y,I,A){return R.utf8Write(y,I,A)}:qs&&qs.encodeInto?function(y,I){return qs.encodeInto(y,R.subarray(I)).written}:!1,a=this;t||(t={});let p=t&&t.sequential,d=t.structures||t.saveStructures,f=t.maxSharedStructures;if(f==null&&(f=d?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=t.maxOwnStructures;m==null&&(m=d?32:64),p&&!t.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,g=f+64,b=f+m+64;if(b>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,w=0;this.pack=this.encode=function(y,I){if(R||(R=new kl(8192),Ye=new DataView(R.buffer,0,8192),M=0),hr=R.length-10,hr-M<2048?(R=new kl(R.length),Ye=new DataView(R.buffer,0,R.length),hr=R.length-10,M=0):M=M+7&2147483640,r=M,l=a.structuredClone?new Map:null,a.bundleStrings?(gr=["",""],R[M++]=214,R[M++]=98,gr.position=M-r,M+=4):gr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let A=o.sharedLength||0;if(A>f)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+o.sharedLength);if(!o.transitions){o.transitions=Object.create(null);for(let P=0;P<A;P++){let T=o[P];if(!T)continue;let C,L=o.transitions;for(let j=0,Y=T.length;j<Y;j++){let te=T[j];C=L[te],C||(C=L[te]=Object.create(null)),L=C}L[Ti]=P+64}c=A}p||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(v(y),gr){Ye.setUint32(gr.position+r,M-gr.position-r);let A=gr;gr=null,v(A[0]),v(A[1])}if(a.offset=M,l&&l.idsToInsert){M+=l.idsToInsert.length*6,M>hr&&_(M),a.offset=M;let A=kg(R.subarray(r,M),l.idsToInsert);return l=null,A}return I&Wu?(R.start=r,R.end=M,R):R.subarray(r,M)}finally{if(o){if(w<10&&w++,S>1e4)o.transitions=null,w=0,S=0,x.length>0&&(x=[]);else if(x.length>0&&!p){for(let A=0,P=x.length;A<P;A++)x[A][Ti]=0;x=[]}if(i&&a.saveStructures){let A=o.sharedLength||f;o.length>A&&(o=o.slice(0,A));let P=R.subarray(r,M);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(y)):(c=A,P)}}I&Kg&&(M=r)}};let v=y=>{M>hr&&(R=_(M));var I=typeof y,A;if(I==="string"){let P=y.length;if(gr&&P>=8&&P<4096){let L=jg.test(y);gr[L?0:1]+=y,R[M++]=193,v(L?-P:P);return}let T;P<32?T=1:P<256?T=2:P<65536?T=3:T=5;let C=P*3;if(M+C>hr&&(R=_(M+C)),P<64||!u){let L,j,Y,te=M+T;for(L=0;L<P;L++)j=y.charCodeAt(L),j<128?R[te++]=j:j<2048?(R[te++]=j>>6|192,R[te++]=j&63|128):(j&64512)===55296&&((Y=y.charCodeAt(L+1))&64512)===56320?(j=65536+((j&1023)<<10)+(Y&1023),L++,R[te++]=j>>18|240,R[te++]=j>>12&63|128,R[te++]=j>>6&63|128,R[te++]=j&63|128):(R[te++]=j>>12|224,R[te++]=j>>6&63|128,R[te++]=j&63|128);A=te-M-T}else A=u(y,M+T,C);A<32?R[M++]=160|A:A<256?(T<2&&R.copyWithin(M+2,M+1,M+1+A),R[M++]=217,R[M++]=A):A<65536?(T<3&&R.copyWithin(M+3,M+2,M+2+A),R[M++]=218,R[M++]=A>>8,R[M++]=A&255):(T<5&&R.copyWithin(M+5,M+3,M+3+A),R[M++]=219,Ye.setUint32(M,A),M+=4),M+=A}else if(I==="number")if(y>>>0===y)y<64?R[M++]=y:y<256?(R[M++]=204,R[M++]=y):y<65536?(R[M++]=205,R[M++]=y>>8,R[M++]=y&255):(R[M++]=206,Ye.setUint32(M,y),M+=4);else if(y>>0===y)y>=-32?R[M++]=256+y:y>=-128?(R[M++]=208,R[M++]=y+256):y>=-32768?(R[M++]=209,Ye.setInt16(M,y),M+=2):(R[M++]=210,Ye.setInt32(M,y),M+=4);else{let P;if((P=this.useFloat32)>0&&y<4294967296&&y>=-2147483648){R[M++]=202,Ye.setFloat32(M,y);let T;if(P<4||(T=y*ks[(R[M]&127)<<1|R[M+1]>>7])>>0===T){M+=4;return}else M--}R[M++]=203,Ye.setFloat64(M,y),M+=8}else if(I==="object")if(!y)R[M++]=192;else{if(l){let T=l.get(y);if(T){if(!T.id){let C=l.idsToInsert||(l.idsToInsert=[]);T.id=C.push(T)}R[M++]=214,R[M++]=112,Ye.setUint32(M,T.id),M+=4;return}else l.set(y,{offset:M-r})}let P=y.constructor;if(P===Object)N(y,!0);else if(P===Array){A=y.length,A<16?R[M++]=144|A:A<65536?(R[M++]=220,R[M++]=A>>8,R[M++]=A&255):(R[M++]=221,Ye.setUint32(M,A),M+=4);for(let T=0;T<A;T++)v(y[T])}else if(P===Map){A=y.size,A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ye.setUint32(M,A),M+=4);for(let[T,C]of y)v(T),v(C)}else{for(let T=0,C=$s.length;T<C;T++){let L=Hl[T];if(y instanceof L){let j=$s[T];if(j.write){j.type&&(R[M++]=212,R[M++]=j.type,R[M++]=0),v(j.write.call(this,y));return}let Y=R,te=Ye,ie=M;R=null;let U;try{U=j.pack.call(this,y,W=>(R=Y,Y=null,M+=W,M>hr&&_(M),{target:R,targetView:Ye,position:M-W}),v)}finally{Y&&(R=Y,Ye=te,M=ie,hr=R.length-10)}U&&(U.length+M>hr&&_(U.length+M),M=Ug(U,R,M,j.type));return}}N(y,!y.hasOwnProperty)}}else if(I==="boolean")R[M++]=y?195:194;else if(I==="bigint"){if(y<BigInt(1)<<BigInt(63)&&y>=-(BigInt(1)<<BigInt(63)))R[M++]=211,Ye.setBigInt64(M,y);else if(y<BigInt(1)<<BigInt(64)&&y>0)R[M++]=207,Ye.setBigUint64(M,y);else if(this.largeBigIntToFloat)R[M++]=203,Ye.setFloat64(M,Number(y));else throw new RangeError(y+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");M+=8}else if(I==="undefined")this.encodeUndefinedAsNil?R[M++]=192:(R[M++]=212,R[M++]=0,R[M++]=0);else if(I==="function")v(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+I)},N=this.useRecords===!1?this.variableMapSize?y=>{let I=Object.keys(y),A=I.length;A<16?R[M++]=128|A:A<65536?(R[M++]=222,R[M++]=A>>8,R[M++]=A&255):(R[M++]=223,Ye.setUint32(M,A),M+=4);let P;for(let T=0;T<A;T++)v(P=I[T]),v(y[P])}:(y,I)=>{R[M++]=222;let A=M-r;M+=2;let P=0;for(let T in y)(I||y.hasOwnProperty(T))&&(v(T),v(y[T]),P++);R[A+++r]=P>>8,R[A+r]=P&255}:y=>{let I=Object.keys(y),A,P=s.transitions||(s.transitions=Object.create(null)),T=0;for(let L=0,j=I.length;L<j;L++){let Y=I[L];A=P[Y],A||(A=P[Y]=Object.create(null),T++),P=A}let C=P[Ti];if(C)C>=96&&h?(R[M++]=((C-=96)&31)+96,R[M++]=C>>5):R[M++]=C;else{C=s.nextId,C||(C=64),C<g&&this.shouldShareStructure&&!this.shouldShareStructure(I)?(C=s.nextOwnId,C<b||(C=g),s.nextOwnId=C+1):(C>=b&&(C=g),s.nextId=C+1);let L=I.highByte=C>=96&&h?C-96>>5:-1;P[Ti]=C,s[C-64]=I,C<g?(I.isShared=!0,s.sharedLength=C-63,i=!0,L>=0?(R[M++]=(C&31)+96,R[M++]=L):R[M++]=C):(L>=0?(R[M++]=213,R[M++]=114,R[M++]=(C&31)+96,R[M++]=L):(R[M++]=212,R[M++]=114,R[M++]=C),T&&(S+=w*T),x.length>=m&&(x.shift()[Ti]=0),x.push(P),v(I))}for(let L=0,j=I.length;L<j;L++)v(y[I[L]])},_=y=>{let I;if(y>16777216){if(y-r>zu)throw new Error("Packed buffer would be larger than maximum buffer size");I=Math.min(zu,Math.round(Math.max((y-r)*(y>67108864?1.25:2),4194304)/4096)*4096)}else I=(Math.max(y-r<<2,R.length-1)>>12)+1<<12;let A=new kl(I);return Ye=new DataView(A.buffer,0,I),R.copy?R.copy(A,0,r,y):A.set(R.slice(r,y)),M-=r,r=0,hr=A.length-10,R=A}}useBuffer(t){R=t,Ye=new DataView(R.buffer,R.byteOffset,R.byteLength),M=0}};Hl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,_i];$s=[{pack(n,t,e){let r=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&r>=0&&r<4294967296){let{target:o,targetView:i,position:s}=t(6);o[s++]=214,o[s++]=255,i.setUint32(s,r)}else if(r>0&&r<17179869184){let{target:o,targetView:i,position:s}=t(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(r/1e3/4294967296>>0)),i.setUint32(s+4,r)}else if(isNaN(r)){if(this.onInvalidDate)return t(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=t(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=t(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(r)))}}},{pack(n,t,e){let r=Array.from(n),{target:o,position:i}=t(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(r)}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=101,r[o++]=0),e([n.name,n.message])}},{pack(n,t,e){let{target:r,position:o}=t(this.structuredClone?3:0);this.structuredClone&&(r[o++]=212,r[o++]=120,r[o++]=0),e([n.source,n.flags])}},{pack(n,t){this.structuredClone?ju(n,16,t):Uu(Ys?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==ku&&this.structuredClone?ju(n,Ul.indexOf(e.name),t):Uu(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function ju(n,t,e,r){let o=n.byteLength;if(o+1<256){var{target:i,position:s}=e(4+o);i[s++]=199,i[s++]=o+1}else if(o+1<65536){var{target:i,position:s}=e(5+o);i[s++]=200,i[s++]=o+1>>8,i[s++]=o+1&255}else{var{target:i,position:s,targetView:l}=e(7+o);i[s++]=201,l.setUint32(s,o+1),s+=4}i[s++]=116,i[s++]=t,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function Uu(n,t){let e=n.byteLength;var r,o;if(e<256){var{target:r,position:o}=t(e+2);r[o++]=196,r[o++]=e}else if(e<65536){var{target:r,position:o}=t(e+3);r[o++]=197,r[o++]=e>>8,r[o++]=e&255}else{var{target:r,position:o,targetView:i}=t(e+5);r[o++]=198,i.setUint32(o,e),o+=4}r.set(n,o)}function Ug(n,t,e,r){let o=n.length;switch(o){case 1:t[e++]=212;break;case 2:t[e++]=213;break;case 4:t[e++]=214;break;case 8:t[e++]=215;break;case 16:t[e++]=216;break;default:o<256?(t[e++]=199,t[e++]=o):o<65536?(t[e++]=200,t[e++]=o>>8,t[e++]=o&255):(t[e++]=201,t[e++]=o>>24,t[e++]=o>>16&255,t[e++]=o>>8&255,t[e++]=o&255)}return t[e++]=r,t.set(n,e),e+=o,e}function kg(n,t){let e,r=t.length*6,o=n.length-r;for(t.sort((i,s)=>i.offset>s.offset?1:-1);e=t.pop();){let i=e.offset,s=e.id;n.copyWithin(i+r,i,o),r-=6;let l=i+r;n[l++]=214,n[l++]=105,n[l++]=s>>24,n[l++]=s>>16&255,n[l++]=s>>8&255,n[l++]=s&255,o=i}return n}function kr(n){if(n.Class){if(!n.pack&&!n.write)throw new Error("Extension has no pack or write function");if(n.pack&&!n.type)throw new Error("Extension has no type (numeric code to identify the extension)");Hl.unshift(n.Class),$s.unshift(n)}Fu(n)}var Hu=new Mo({useRecords:!1}),Hg=Hu.pack,Wg=Hu.pack;var{NEVER:qg,ALWAYS:$g,DECIMAL_ROUND:Yg,DECIMAL_FIT:Xg}=Ws,Wu=512,Kg=1024;var qu=new Mo({structuredClone:!0});kr({Class:Ge.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Ge.prototype),n}});kr({Class:ge.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,ge.prototype),n}});kr({Class:Fe.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Fe.prototype),n}});kr({Class:Si.prototype.constructor,type:4,write(n){return n.id},read(n){return new Si(n)}});kr({Class:wi.prototype.constructor,type:5,write(n){return n.data},read(n){return new wi(n)}});kr({Class:Rt.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Rt.prototype),n}});kr({Class:Jo.prototype.constructor,type:7,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Jo.prototype),n}});function Zg(n){var t=0;if(n.length===0)return t;for(let e=0;e<n.length;e++){let r=n[e];t=(t<<5)-t+r,t=t&t}return t}function Wl(n){if(yi(n))return n;if(Array.isArray(n))return n.map(Wl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=Wl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Xs;(r=>{function n(o){return qu.pack(o)}r.serialize=n;function t(o){return qu.unpack(o)}r.deserialize=t;function e(o){return Zg(n(Wl(o))).toString()}r.checksum=e})(Xs||(Xs={}));var $u;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i]}e.lerp=t})($u||($u={}));var nn;(o=>{function n(i,s){return i[0]===s[0]&&i[1]===s[1]&&i[2]===s[2]}o.isEqual=n;function t(i,s){return[i[0]+s[0],i[1]+s[1],i[2]+s[2]]}o.add=t;function e(i,s){return[i[0]-s[0],i[1]-s[1],i[2]-s[2]]}o.sub=e;function r(i,s,l){return[i[0]+(s[0]-i[0])*l,i[1]+(s[1]-i[1])*l,i[2]+(s[2]-i[2])*l]}o.lerp=r})(nn||(nn={}));var Yu;(e=>{function n(r,o){return r[0]===o[0]&&r[1]===o[1]&&r[2]===o[2]&&r[3]===o[3]}e.isEqual=n;function t(r,o,i){return[r[0]+(o[0]-r[0])*i,r[1]+(o[1]-r[1])*i,r[2]+(o[2]-r[2])*i,r[3]+(o[3]-r[3])*i]}e.lerp=t})(Yu||(Yu={}));var io;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=t;function e(i){return i??o.identity}o.simplify=e;function r(i,s){let l=s.slice(0);for(var c=0,u=s.length;c<u;c+=3){let a=i[3]*s[c]+i[7]*s[c+1]+i[11]*s[c+2]+i[15];l[c]=(i[0]*s[c]+i[4]*s[c+1]+i[8]*s[c+2]+i[12])/a,l[c+1]=(i[1]*s[c]+i[5]*s[c+1]+i[9]*s[c+2]+i[13])/a,l[c+2]=(i[2]*s[c]+i[6]*s[c+1]+i[10]*s[c+2]+i[14])/a}return l}o.applyMatrix4=r})(io||(io={}));var Pt;(c=>{c.white={r:1,g:1,b:1},c.red={r:1,g:0,b:0},c.black={r:0,g:0,b:0};function r(u){return{r:Math.round(u.r*255),g:Math.round(u.g*255),b:Math.round(u.b*255),a:1}}c.toRgb255a1=r;function o(u){return{r:u.r,g:u.g,b:u.b}}c.clone=o;function i(u){return u=Math.floor(u),{r:(u>>16&255)/255,g:(u>>8&255)/255,b:(u&255)/255}}c.fromHex=i;function s(u,a){return u.r===a.r&&u.g===a.g&&u.b===a.b}c.equals=s;function l(u,a,p){return{r:u.r+(a.r-u.r)*p,g:u.g+(a.g-u.g)*p,b:u.b+(a.b-u.b)*p}}c.lerp=l})(Pt||(Pt={}));var er;(l=>{l.white={...Pt.white,a:1},l.transparent={...Pt.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function r(c,u){return{...Pt.fromHex(c),a:u}}l.fromHexAndA=r;function o(c){return{r:Math.round(c.r*255),g:Math.round(c.g*255),b:Math.round(c.b*255),a:c.a}}l.toRgb255a1=o;function i(c,u){return Pt.equals(c,u)&&c.a===u.a}l.equals=i;function s(c,u,a){return{r:c.r+(u.r-c.r)*a,g:c.g+(u.g-c.g)*a,b:c.b+(u.b-c.b)*a,a:c.a+(u.a-c.a)*a}}l.lerp=s})(er||(er={}));var Ks;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Ks||(Ks={}));var Xu;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Xu||(Xu={}));var Ku;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(Ku||(Ku={}));var sn;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(sn||(sn={}));var Lo;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:5,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function r(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=r})(Lo||(Lo={}));var Eo;(e=>{function n(r,o=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(r[0],r[1])*2,start:0,end:360,alignment:!1,axis:"y",scale:[1,1,1],rotation:[0,0,0],position:[0,0,0]},toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},linear:{scale:[1,1,1],rotation:[0,0,0],position:[r[0]+r[0]*o,0,0]},grid:{count:[2,2,2],size:r.map(i=>i*(1+o)),useCenter:!0},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}}}e.defaultData=n;function t(r,o){let i={...r};if(Qg.forEach(s=>{Object.assign(i,{[s]:o[s]??r[s]})}),i.radial={...r.radial},o.radial){let s=r.radial,l=o.radial;Jg.forEach(c=>{Object.assign(i.radial,{[c]:l[c]??s[c]})})}if(i.linear={...r.linear},o.linear){let s=r.linear,l=o.linear;ey.forEach(c=>{Object.assign(i.linear,{[c]:l[c]??s[c]})})}if(i.grid={...r.grid},o.grid){let s=r.grid,l=o.grid;ty.forEach(c=>{Object.assign(i.grid,{[c]:l[c]??s[c]})})}if(i.toObject={...r.toObject},o.toObject){let s=r.toObject,l=o.toObject;ry.forEach(c=>{Object.assign(i.toObject,{[c]:l[c]??s[c]})})}if(i.randomnessObject={...r.randomnessObject},o.randomnessObject){let s=r.randomnessObject,l=o.randomnessObject;oy.forEach(c=>{Object.assign(i.randomnessObject,{[c]:l[c]??s[c]})})}return i}e.merge=t})(Eo||(Eo={}));var Zu;(t=>t.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}})(Zu||(Zu={}));var Qg=["count"],Jg=["radius","start","end","position","scale","rotation"],ey=["position","scale","rotation"],ty=["count","size"],ry=["count","position","scale","rotation"],oy=["strength","scale","rotation","position","movement","seed","freqScale"];var Zs;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Zs||(Zs={}));var Qs;(e=>{function n(r){return t(r)}e.defaultData=n;function t(r){if(r==="PointLight")return{type:r,color:er.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(r==="SpotLight")return{type:r,color:er.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(r==="DirectionalLight")return{type:r,color:er.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(Qs||(Qs={}));var ql;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(ql||(ql={}));var $l;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function t(r,o){return r.flatShading===o.flatShading&&r.side===o.side&&r.wireframe===o.wireframe}e.equals=t})($l||($l={}));var Js;(t=>t.defaultData={...$l.defaultData,...ql.defaultData,cloner:null,booleanExclude:null})(Js||(Js={}));var Qu=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],Ju=["wrapping","image"],yr;(r=>{function n(o,i){return o==="light"&&i?t(i):e(o)}r.defaultData=n;function t(o){switch(o){case"phong":return{category:"phong",specular:{r:.2,g:.2,b:.2},shininess:5,type:"light",alpha:.6,visible:!0,mode:0};case"toon":return{category:"toon",specular:{r:.2,g:.2,b:.2},shininess:10,type:"light",alpha:1,visible:!0,mode:0};case"lambert":return{category:"lambert",emissive:{r:0,g:0,b:0},type:"light",alpha:1,visible:!0,mode:0};case"physical":return{category:"physical",roughness:.2,metalness:.2,reflectivity:.2,type:"light",alpha:1,visible:!0,mode:0}}}function e(o){switch(o){case"texture":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"texture",projection:0,texture:{image:"image_0",wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Pt.fromHex(4737101)};case"depth":return{type:"depth",alpha:1,visible:!0,mode:0,gradientType:1,smooth:!1,isVector:!0,isWorldSpace:!1,origin:[0,0,0],direction:[1,0,0],colors:[[1,1,1,1],[0,0,0,1]],steps:[0,1],near:50,far:200};case"normal":return{type:"normal",alpha:1,visible:!0,mode:0,cnormal:[1,1,1]};case"gradient":return{type:"gradient",alpha:1,visible:!0,mode:0,gradientType:0,smooth:!1,colors:[[0,0,0,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,1,1,1,1,1,1,1,1,1],num:2,angle:0,offset:[0,0],morph:[0,0]};case"noise":return{type:"noise",alpha:1,visible:!0,mode:0,size:[100,100,100],noiseType:0,scale:1,move:1,colorA:{...Pt.fromHex(6710886),a:1},colorB:{...Pt.fromHex(6710886),a:1},colorC:{...Pt.fromHex(16777215),a:1},colorD:{...Pt.fromHex(16777215),a:1},distortion:[1,1],fA:[1.7,9.2],fB:[8.3,2.8]};case"fresnel":return{type:"fresnel",alpha:1,visible:!0,mode:0,color:er.fromHexAndA(16777215,1),bias:.1,scale:1,intensity:2,factor:1};case"rainbow":return{type:"rainbow",alpha:1,visible:!0,mode:0,filmThickness:30,movement:0,wavelengths:[0,0,0],noiseStrength:0,noiseScale:1,offset:[0,0,0]};case"toon":return{type:"toon",alpha:1,visible:!0,mode:0,positioning:2,colors:[[0,0,0,1],[.5,.5,.5,1],[.5,.5,.5,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]],steps:[0,.475,.525,1,1,1,1,1,1,1],num:4,source:[0,1e3,0],isWorldSpace:!0,noiseStrength:0,noiseScale:1,shadowColor:er.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:er.fromHexAndA(0,1),contourColor:er.fromHexAndA(0,1),outlineWidth:2,contourWidth:5,outlineThreshold:.4,contourThreshold:0,outlineSmoothing:0,contourFrequency:10,contourDirection:[0,1,0],positionalLines:!1,compensation:!0};case"matcap":return{type:"matcap",alpha:1,visible:!0,mode:0,texture:{image:"matcap_0",wrapping:1001,repeat:[1,1],offset:[0,0]}};case"transmission":return{type:"transmission",alpha:1,visible:!0,mode:0,thickness:10,ior:1.5,roughness:1};case"displace":return{type:"displace",displacementType:"noise",noiseType:0,scale:10,movement:1,offset:[0,0,0],intensity:8,visible:!0}}}})(yr||(yr={}));var Ft;(l=>{function n(c){return!c.layers.some(a=>a.data.type==="texture"&&a.data.projection!==0||a.data.type==="depth"&&!a.data.isWorldSpace||a.data.type==="noise"||a.data.type==="displace")&&!e(c)}l.isMergable=n;function t(c){let u="";return c.layers.forEach(a=>{Object.entries(a.data).forEach(([p,d])=>{u+=`${p}${d}`,Array.isArray(d)?d.forEach(f=>u+=`${f}`):typeof d=="object"?Object.values(d).forEach(f=>{typeof f=="number"?u+=`${f.toFixed(4)}`:u+=`${f}`}):u+=`${d}`})}),u}l.getHash=t;function e(c){let u=0;for(let a of c.layers)"alpha"in a.data&&a.data.type!=="light"&&a.data.type!=="fresnel"&&(u+=(1-u)*a.data.alpha);return u<1}l.isTransparent=e;function r(){return{layers:new ge}}l.defaultEmptyData=r;function o(c="layer1",u="layer2"){return i("phong",c,u)}l.defaultData=o;function i(c,u="layer1",a="layer2"){let p=new ge;return p.push({fi:0,data:yr.defaultData("light",c),id:u}),p.push({fi:1,data:yr.defaultData("color"),id:a}),{layers:p}}l.defaultTwoLayerData=i;function s(c,u="phong",a="layer1",p="layer2"){let d=yr.defaultData("texture");Object.assign(d.texture,{image:c});let f=new ge;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:yr.defaultData("light",u),id:p}),{layers:f}}l.defaultTwoLayerTextureData=s})(Ft||(Ft={}));var an;(t=>{function n(){return{points:new ge,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})(an||(an={}));var ln;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(ln||(ln={}));var so;(t=>{function n(e){if(e==="RectangleGeometry")return{width:320,height:320,type:e,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="VectorGeometry")return{width:1,height:1,type:e,subdivisions:12,shape:an.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(e==="BooleanGeometry")return{type:e,operation:2,width:0,height:0,depth:0,phongAngle:35};if(e==="TextGeometry")return{type:e,width:100,height:100,depth:0,horizontalAlign:1,verticalAlign:1,fontSize:16,lineHeight:1.2,letterSpacing:0,text:"",textTransform:1,font:"Roboto_regular",extrudeBevelSize:0,extrudeBevelSegments:1};throw new Error("not implemented")}t.defaultData=n})(so||(so={}));var ny=typeof global=="object"&&global&&global.Object===Object&&global,ea=ny;var iy=typeof self=="object"&&self&&self.Object===Object&&self,sy=ea||iy||Function("return this")(),Qe=sy;var ay=Qe.Symbol,St=ay;var ep=Object.prototype,ly=ep.hasOwnProperty,cy=ep.toString,Ai=St?St.toStringTag:void 0;function uy(n){var t=ly.call(n,Ai),e=n[Ai];try{n[Ai]=void 0;var r=!0}catch{}var o=cy.call(n);return r&&(t?n[Ai]=e:delete n[Ai]),o}var tp=uy;var py=Object.prototype,dy=py.toString;function fy(n){return dy.call(n)}var rp=fy;var my="[object Null]",hy="[object Undefined]",op=St?St.toStringTag:void 0;function gy(n){return n==null?n===void 0?hy:my:op&&op in Object(n)?tp(n):rp(n)}var zt=gy;function yy(n){return n!=null&&typeof n=="object"}var gt=yy;var xy="[object Symbol]";function by(n){return typeof n=="symbol"||gt(n)&&zt(n)==xy}var cn=by;function vy(n,t){for(var e=-1,r=n==null?0:n.length,o=Array(r);++e<r;)o[e]=t(n[e],e,n);return o}var ta=vy;var Sy=Array.isArray,He=Sy;var wy=1/0,np=St?St.prototype:void 0,ip=np?np.toString:void 0;function sp(n){if(typeof n=="string")return n;if(He(n))return ta(n,sp)+"";if(cn(n))return ip?ip.call(n):"";var t=n+"";return t=="0"&&1/n==-wy?"-0":t}var ap=sp;function _y(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Je=_y;function Ty(n){return n}var ra=Ty;var Ay="[object AsyncFunction]",Ny="[object Function]",Iy="[object GeneratorFunction]",Py="[object Proxy]";function Oy(n){if(!Je(n))return!1;var t=zt(n);return t==Ny||t==Iy||t==Ay||t==Py}var un=Oy;var Cy=Qe["__core-js_shared__"],oa=Cy;var lp=function(){var n=/[^.]+$/.exec(oa&&oa.keys&&oa.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function My(n){return!!lp&&lp in n}var cp=My;var Ly=Function.prototype,Ey=Ly.toString;function By(n){if(n!=null){try{return Ey.call(n)}catch{}try{return n+""}catch{}}return""}var Hr=By;var Dy=/[\\^$.*+?()[\]{}|]/g,Gy=/^\[object .+?Constructor\]$/,Ry=Function.prototype,Vy=Object.prototype,Fy=Ry.toString,zy=Vy.hasOwnProperty,jy=RegExp("^"+Fy.call(zy).replace(Dy,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Uy(n){if(!Je(n)||cp(n))return!1;var t=un(n)?jy:Gy;return t.test(Hr(n))}var up=Uy;function ky(n,t){return n?.[t]}var pp=ky;function Hy(n,t){var e=pp(n,t);return up(e)?e:void 0}var Ot=Hy;var Wy=Ot(Qe,"WeakMap"),na=Wy;var dp=Object.create,qy=function(){function n(){}return function(t){if(!Je(t))return{};if(dp)return dp(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),fp=qy;function $y(n,t,e){switch(e.length){case 0:return n.call(t);case 1:return n.call(t,e[0]);case 2:return n.call(t,e[0],e[1]);case 3:return n.call(t,e[0],e[1],e[2])}return n.apply(t,e)}var mp=$y;function Yy(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var ia=Yy;var Xy=800,Ky=16,Zy=Date.now;function Qy(n){var t=0,e=0;return function(){var r=Zy(),o=Ky-(r-e);if(e=r,o>0){if(++t>=Xy)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var hp=Qy;function Jy(n){return function(){return n}}var gp=Jy;var e0=function(){try{var n=Ot(Object,"defineProperty");return n({},"",{}),n}catch{}}(),pn=e0;var t0=pn?function(n,t){return pn(n,"toString",{configurable:!0,enumerable:!1,value:gp(t),writable:!0})}:ra,yp=t0;var r0=hp(yp),sa=r0;function o0(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var xp=o0;var n0=9007199254740991,i0=/^(?:0|[1-9]\d*)$/;function s0(n,t){var e=typeof n;return t=t??n0,!!t&&(e=="number"||e!="symbol"&&i0.test(n))&&n>-1&&n%1==0&&n<t}var ao=s0;function a0(n,t,e){t=="__proto__"&&pn?pn(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var dn=a0;function l0(n,t){return n===t||n!==n&&t!==t}var lo=l0;var c0=Object.prototype,u0=c0.hasOwnProperty;function p0(n,t,e){var r=n[t];(!(u0.call(n,t)&&lo(r,e))||e===void 0&&!(t in n))&&dn(n,t,e)}var fn=p0;function d0(n,t,e,r){var o=!e;e||(e={});for(var i=-1,s=t.length;++i<s;){var l=t[i],c=r?r(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?dn(e,l,c):fn(e,l,c)}return e}var Wt=d0;var bp=Math.max;function f0(n,t,e){return t=bp(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=bp(r.length-t,0),s=Array(i);++o<i;)s[o]=r[t+o];o=-1;for(var l=Array(t+1);++o<t;)l[o]=r[o];return l[t]=e(s),mp(n,this,l)}}var aa=f0;function m0(n,t){return sa(aa(n,t,ra),n+"")}var vp=m0;var h0=9007199254740991;function g0(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=h0}var mn=g0;function y0(n){return n!=null&&mn(n.length)&&!un(n)}var co=y0;function x0(n,t,e){if(!Je(e))return!1;var r=typeof t;return(r=="number"?co(e)&&ao(t,e.length):r=="string"&&t in e)?lo(e[t],n):!1}var Sp=x0;function b0(n){return vp(function(t,e){var r=-1,o=e.length,i=o>1?e[o-1]:void 0,s=o>2?e[2]:void 0;for(i=n.length>3&&typeof i=="function"?(o--,i):void 0,s&&Sp(e[0],e[1],s)&&(i=o<3?void 0:i,o=1),t=Object(t);++r<o;){var l=e[r];l&&n(t,l,r,i)}return t})}var wp=b0;var v0=Object.prototype;function S0(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||v0;return n===e}var hn=S0;function w0(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var _p=w0;var _0="[object Arguments]";function T0(n){return gt(n)&&zt(n)==_0}var Yl=T0;var Tp=Object.prototype,A0=Tp.hasOwnProperty,N0=Tp.propertyIsEnumerable,I0=Yl(function(){return arguments}())?Yl:function(n){return gt(n)&&A0.call(n,"callee")&&!N0.call(n,"callee")},Wr=I0;function P0(){return!1}var Ap=P0;var Pp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Np=Pp&&typeof module=="object"&&module&&!module.nodeType&&module,O0=Np&&Np.exports===Pp,Ip=O0?Qe.Buffer:void 0,C0=Ip?Ip.isBuffer:void 0,M0=C0||Ap,gn=M0;var L0="[object Arguments]",E0="[object Array]",B0="[object Boolean]",D0="[object Date]",G0="[object Error]",R0="[object Function]",V0="[object Map]",F0="[object Number]",z0="[object Object]",j0="[object RegExp]",U0="[object Set]",k0="[object String]",H0="[object WeakMap]",W0="[object ArrayBuffer]",q0="[object DataView]",$0="[object Float32Array]",Y0="[object Float64Array]",X0="[object Int8Array]",K0="[object Int16Array]",Z0="[object Int32Array]",Q0="[object Uint8Array]",J0="[object Uint8ClampedArray]",ex="[object Uint16Array]",tx="[object Uint32Array]",ze={};ze[$0]=ze[Y0]=ze[X0]=ze[K0]=ze[Z0]=ze[Q0]=ze[J0]=ze[ex]=ze[tx]=!0;ze[L0]=ze[E0]=ze[W0]=ze[B0]=ze[q0]=ze[D0]=ze[G0]=ze[R0]=ze[V0]=ze[F0]=ze[z0]=ze[j0]=ze[U0]=ze[k0]=ze[H0]=!1;function rx(n){return gt(n)&&mn(n.length)&&!!ze[zt(n)]}var Op=rx;function ox(n){return function(t){return n(t)}}var yn=ox;var Cp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Ni=Cp&&typeof module=="object"&&module&&!module.nodeType&&module,nx=Ni&&Ni.exports===Cp,Xl=nx&&ea.process,ix=function(){try{var n=Ni&&Ni.require&&Ni.require("util").types;return n||Xl&&Xl.binding&&Xl.binding("util")}catch{}}(),qr=ix;var Mp=qr&&qr.isTypedArray,sx=Mp?yn(Mp):Op,la=sx;var ax=Object.prototype,lx=ax.hasOwnProperty;function cx(n,t){var e=He(n),r=!e&&Wr(n),o=!e&&!r&&gn(n),i=!e&&!r&&!o&&la(n),s=e||r||o||i,l=s?_p(n.length,String):[],c=l.length;for(var u in n)(t||lx.call(n,u))&&!(s&&(u=="length"||o&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||ao(u,c)))&&l.push(u);return l}var ca=cx;function ux(n,t){return function(e){return n(t(e))}}var ua=ux;var px=ua(Object.keys,Object),Lp=px;var dx=Object.prototype,fx=dx.hasOwnProperty;function mx(n){if(!hn(n))return Lp(n);var t=[];for(var e in Object(n))fx.call(n,e)&&e!="constructor"&&t.push(e);return t}var Ep=mx;function hx(n){return co(n)?ca(n):Ep(n)}var xn=hx;function gx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var Bp=gx;var yx=Object.prototype,xx=yx.hasOwnProperty;function bx(n){if(!Je(n))return Bp(n);var t=hn(n),e=[];for(var r in n)r=="constructor"&&(t||!xx.call(n,r))||e.push(r);return e}var Dp=bx;function vx(n){return co(n)?ca(n,!0):Dp(n)}var xr=vx;var Sx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,wx=/^\w*$/;function _x(n,t){if(He(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||cn(n)?!0:wx.test(n)||!Sx.test(n)||t!=null&&n in Object(t)}var Gp=_x;var Tx=Ot(Object,"create"),$r=Tx;function Ax(){this.__data__=$r?$r(null):{},this.size=0}var Rp=Ax;function Nx(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var Vp=Nx;var Ix="__lodash_hash_undefined__",Px=Object.prototype,Ox=Px.hasOwnProperty;function Cx(n){var t=this.__data__;if($r){var e=t[n];return e===Ix?void 0:e}return Ox.call(t,n)?t[n]:void 0}var Fp=Cx;var Mx=Object.prototype,Lx=Mx.hasOwnProperty;function Ex(n){var t=this.__data__;return $r?t[n]!==void 0:Lx.call(t,n)}var zp=Ex;var Bx="__lodash_hash_undefined__";function Dx(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=$r&&t===void 0?Bx:t,this}var jp=Dx;function bn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}bn.prototype.clear=Rp;bn.prototype.delete=Vp;bn.prototype.get=Fp;bn.prototype.has=zp;bn.prototype.set=jp;var Kl=bn;function Gx(){this.__data__=[],this.size=0}var Up=Gx;function Rx(n,t){for(var e=n.length;e--;)if(lo(n[e][0],t))return e;return-1}var uo=Rx;var Vx=Array.prototype,Fx=Vx.splice;function zx(n){var t=this.__data__,e=uo(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Fx.call(t,e,1),--this.size,!0}var kp=zx;function jx(n){var t=this.__data__,e=uo(t,n);return e<0?void 0:t[e][1]}var Hp=jx;function Ux(n){return uo(this.__data__,n)>-1}var Wp=Ux;function kx(n,t){var e=this.__data__,r=uo(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var qp=kx;function vn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}vn.prototype.clear=Up;vn.prototype.delete=kp;vn.prototype.get=Hp;vn.prototype.has=Wp;vn.prototype.set=qp;var po=vn;var Hx=Ot(Qe,"Map"),fo=Hx;function Wx(){this.size=0,this.__data__={hash:new Kl,map:new(fo||po),string:new Kl}}var $p=Wx;function qx(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var Yp=qx;function $x(n,t){var e=n.__data__;return Yp(t)?e[typeof t=="string"?"string":"hash"]:e.map}var mo=$x;function Yx(n){var t=mo(this,n).delete(n);return this.size-=t?1:0,t}var Xp=Yx;function Xx(n){return mo(this,n).get(n)}var Kp=Xx;function Kx(n){return mo(this,n).has(n)}var Zp=Kx;function Zx(n,t){var e=mo(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var Qp=Zx;function Sn(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}Sn.prototype.clear=$p;Sn.prototype.delete=Xp;Sn.prototype.get=Kp;Sn.prototype.has=Zp;Sn.prototype.set=Qp;var Ii=Sn;var Qx="Expected a function";function Zl(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(Qx);var e=function(){var r=arguments,o=t?t.apply(this,r):r[0],i=e.cache;if(i.has(o))return i.get(o);var s=n.apply(this,r);return e.cache=i.set(o,s)||i,s};return e.cache=new(Zl.Cache||Ii),e}Zl.Cache=Ii;var Jp=Zl;var Jx=500;function eb(n){var t=Jp(n,function(r){return e.size===Jx&&e.clear(),r}),e=t.cache;return t}var ed=eb;var tb=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rb=/\\(\\)?/g,ob=ed(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(tb,function(e,r,o,i){t.push(o?i.replace(rb,"$1"):r||e)}),t}),td=ob;function nb(n){return n==null?"":ap(n)}var rd=nb;function ib(n,t){return He(n)?n:Gp(n,t)?[n]:td(rd(n))}var qt=ib;var sb=1/0;function ab(n){if(typeof n=="string"||cn(n))return n;var t=n+"";return t=="0"&&1/n==-sb?"-0":t}var ho=ab;function lb(n,t){t=qt(t,n);for(var e=0,r=t.length;n!=null&&e<r;)n=n[ho(t[e++])];return e&&e==r?n:void 0}var pa=lb;function cb(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var wn=cb;var od=St?St.isConcatSpreadable:void 0;function ub(n){return He(n)||Wr(n)||!!(od&&n&&n[od])}var nd=ub;function id(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=nd),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?id(l,t-1,e,r,o):wn(o,l):r||(o[o.length]=l)}return o}var sd=id;function pb(n){var t=n==null?0:n.length;return t?sd(n,1):[]}var ad=pb;function db(n){return sa(aa(n,void 0,ad),n+"")}var da=db;var fb=ua(Object.getPrototypeOf,Object),_n=fb;var mb="[object Object]",hb=Function.prototype,gb=Object.prototype,ld=hb.toString,yb=gb.hasOwnProperty,xb=ld.call(Object);function bb(n){if(!gt(n)||zt(n)!=mb)return!1;var t=_n(n);if(t===null)return!0;var e=yb.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&ld.call(e)==xb}var fa=bb;function vb(n,t,e){var r=-1,o=n.length;t<0&&(t=-t>o?0:o+t),e=e>o?o:e,e<0&&(e+=o),o=t>e?0:e-t>>>0,t>>>=0;for(var i=Array(o);++r<o;)i[r]=n[r+t];return i}var cd=vb;function Sb(){this.__data__=new po,this.size=0}var ud=Sb;function wb(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var pd=wb;function _b(n){return this.__data__.get(n)}var dd=_b;function Tb(n){return this.__data__.has(n)}var fd=Tb;var Ab=200;function Nb(n,t){var e=this.__data__;if(e instanceof po){var r=e.__data__;if(!fo||r.length<Ab-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new Ii(r)}return e.set(n,t),this.size=e.size,this}var md=Nb;function Tn(n){var t=this.__data__=new po(n);this.size=t.size}Tn.prototype.clear=ud;Tn.prototype.delete=pd;Tn.prototype.get=dd;Tn.prototype.has=fd;Tn.prototype.set=md;var ma=Tn;function Ib(n,t){return n&&Wt(t,xn(t),n)}var hd=Ib;function Pb(n,t){return n&&Wt(t,xr(t),n)}var gd=Pb;var vd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,yd=vd&&typeof module=="object"&&module&&!module.nodeType&&module,Ob=yd&&yd.exports===vd,xd=Ob?Qe.Buffer:void 0,bd=xd?xd.allocUnsafe:void 0;function Cb(n,t){if(t)return n.slice();var e=n.length,r=bd?bd(e):new n.constructor(e);return n.copy(r),r}var ha=Cb;function Mb(n,t){for(var e=-1,r=n==null?0:n.length,o=0,i=[];++e<r;){var s=n[e];t(s,e,n)&&(i[o++]=s)}return i}var Sd=Mb;function Lb(){return[]}var ga=Lb;var Eb=Object.prototype,Bb=Eb.propertyIsEnumerable,wd=Object.getOwnPropertySymbols,Db=wd?function(n){return n==null?[]:(n=Object(n),Sd(wd(n),function(t){return Bb.call(n,t)}))}:ga,An=Db;function Gb(n,t){return Wt(n,An(n),t)}var _d=Gb;var Rb=Object.getOwnPropertySymbols,Vb=Rb?function(n){for(var t=[];n;)wn(t,An(n)),n=_n(n);return t}:ga,ya=Vb;function Fb(n,t){return Wt(n,ya(n),t)}var Td=Fb;function zb(n,t,e){var r=t(n);return He(n)?r:wn(r,e(n))}var xa=zb;function jb(n){return xa(n,xn,An)}var Ad=jb;function Ub(n){return xa(n,xr,ya)}var ba=Ub;var kb=Ot(Qe,"DataView"),va=kb;var Hb=Ot(Qe,"Promise"),Sa=Hb;var Wb=Ot(Qe,"Set"),wa=Wb;var Nd="[object Map]",qb="[object Object]",Id="[object Promise]",Pd="[object Set]",Od="[object WeakMap]",Cd="[object DataView]",$b=Hr(va),Yb=Hr(fo),Xb=Hr(Sa),Kb=Hr(wa),Zb=Hr(na),Bo=zt;(va&&Bo(new va(new ArrayBuffer(1)))!=Cd||fo&&Bo(new fo)!=Nd||Sa&&Bo(Sa.resolve())!=Id||wa&&Bo(new wa)!=Pd||na&&Bo(new na)!=Od)&&(Bo=function(n){var t=zt(n),e=t==qb?n.constructor:void 0,r=e?Hr(e):"";if(r)switch(r){case $b:return Cd;case Yb:return Nd;case Xb:return Id;case Kb:return Pd;case Zb:return Od}return t});var Nn=Bo;var Qb=Object.prototype,Jb=Qb.hasOwnProperty;function ev(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&Jb.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Md=ev;var tv=Qe.Uint8Array,Ql=tv;function rv(n){var t=new n.constructor(n.byteLength);return new Ql(t).set(new Ql(n)),t}var In=rv;function ov(n,t){var e=t?In(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var Ld=ov;var nv=/\w*$/;function iv(n){var t=new n.constructor(n.source,nv.exec(n));return t.lastIndex=n.lastIndex,t}var Ed=iv;var Bd=St?St.prototype:void 0,Dd=Bd?Bd.valueOf:void 0;function sv(n){return Dd?Object(Dd.call(n)):{}}var Gd=sv;function av(n,t){var e=t?In(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var _a=av;var lv="[object Boolean]",cv="[object Date]",uv="[object Map]",pv="[object Number]",dv="[object RegExp]",fv="[object Set]",mv="[object String]",hv="[object Symbol]",gv="[object ArrayBuffer]",yv="[object DataView]",xv="[object Float32Array]",bv="[object Float64Array]",vv="[object Int8Array]",Sv="[object Int16Array]",wv="[object Int32Array]",_v="[object Uint8Array]",Tv="[object Uint8ClampedArray]",Av="[object Uint16Array]",Nv="[object Uint32Array]";function Iv(n,t,e){var r=n.constructor;switch(t){case gv:return In(n);case lv:case cv:return new r(+n);case yv:return Ld(n,e);case xv:case bv:case vv:case Sv:case wv:case _v:case Tv:case Av:case Nv:return _a(n,e);case uv:return new r;case pv:case mv:return new r(n);case dv:return Ed(n);case fv:return new r;case hv:return Gd(n)}}var Rd=Iv;function Pv(n){return typeof n.constructor=="function"&&!hn(n)?fp(_n(n)):{}}var Ta=Pv;var Ov="[object Map]";function Cv(n){return gt(n)&&Nn(n)==Ov}var Vd=Cv;var Fd=qr&&qr.isMap,Mv=Fd?yn(Fd):Vd,zd=Mv;var Lv="[object Set]";function Ev(n){return gt(n)&&Nn(n)==Lv}var jd=Ev;var Ud=qr&&qr.isSet,Bv=Ud?yn(Ud):jd,kd=Bv;var Dv=1,Gv=2,Rv=4,Hd="[object Arguments]",Vv="[object Array]",Fv="[object Boolean]",zv="[object Date]",jv="[object Error]",Wd="[object Function]",Uv="[object GeneratorFunction]",kv="[object Map]",Hv="[object Number]",qd="[object Object]",Wv="[object RegExp]",qv="[object Set]",$v="[object String]",Yv="[object Symbol]",Xv="[object WeakMap]",Kv="[object ArrayBuffer]",Zv="[object DataView]",Qv="[object Float32Array]",Jv="[object Float64Array]",eS="[object Int8Array]",tS="[object Int16Array]",rS="[object Int32Array]",oS="[object Uint8Array]",nS="[object Uint8ClampedArray]",iS="[object Uint16Array]",sS="[object Uint32Array]",Re={};Re[Hd]=Re[Vv]=Re[Kv]=Re[Zv]=Re[Fv]=Re[zv]=Re[Qv]=Re[Jv]=Re[eS]=Re[tS]=Re[rS]=Re[kv]=Re[Hv]=Re[qd]=Re[Wv]=Re[qv]=Re[$v]=Re[Yv]=Re[oS]=Re[nS]=Re[iS]=Re[sS]=!0;Re[jv]=Re[Wd]=Re[Xv]=!1;function Aa(n,t,e,r,o,i){var s,l=t&Dv,c=t&Gv,u=t&Rv;if(e&&(s=o?e(n,r,o,i):e(n)),s!==void 0)return s;if(!Je(n))return n;var a=He(n);if(a){if(s=Md(n),!l)return ia(n,s)}else{var p=Nn(n),d=p==Wd||p==Uv;if(gn(n))return ha(n,l);if(p==qd||p==Hd||d&&!o){if(s=c||d?{}:Ta(n),!l)return c?Td(n,gd(s,n)):_d(n,hd(s,n))}else{if(!Re[p])return o?n:{};s=Rd(n,p,l)}}i||(i=new ma);var f=i.get(n);if(f)return f;i.set(n,s),kd(n)?n.forEach(function(g){s.add(Aa(g,t,e,g,n,i))}):zd(n)&&n.forEach(function(g,b){s.set(b,Aa(g,t,e,b,n,i))});var m=u?c?ba:Ad:c?xr:xn,h=a?void 0:m(n);return xp(h||n,function(g,b){h&&(b=g,g=n[b]),fn(s,b,Aa(g,t,e,b,n,i))}),s}var Na=Aa;var aS=1,lS=4;function cS(n){return Na(n,aS|lS)}var Pi=cS;function uS(n,t){return n!=null&&t in Object(n)}var $d=uS;function pS(n,t,e){t=qt(t,n);for(var r=-1,o=t.length,i=!1;++r<o;){var s=ho(t[r]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++r!=o?i:(o=n==null?0:n.length,!!o&&mn(o)&&ao(s,o)&&(He(n)||Wr(n)))}var Yd=pS;function dS(n,t){return n!=null&&Yd(n,t,$d)}var Xd=dS;function fS(n){return function(t,e,r){for(var o=-1,i=Object(t),s=r(t),l=s.length;l--;){var c=s[n?l:++o];if(e(i[c],c,i)===!1)break}return t}}var Kd=fS;var mS=Kd(),Zd=mS;function hS(n,t,e){(e!==void 0&&!lo(n[t],e)||e===void 0&&!(t in n))&&dn(n,t,e)}var Oi=hS;function gS(n){return gt(n)&&co(n)}var Qd=gS;function yS(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var Ci=yS;function xS(n){return Wt(n,xr(n))}var Jd=xS;function bS(n,t,e,r,o,i,s){var l=Ci(n,e),c=Ci(t,e),u=s.get(c);if(u){Oi(n,e,u);return}var a=i?i(l,c,e+"",n,t,s):void 0,p=a===void 0;if(p){var d=He(c),f=!d&&gn(c),m=!d&&!f&&la(c);a=c,d||f||m?He(l)?a=l:Qd(l)?a=ia(l):f?(p=!1,a=ha(c,!0)):m?(p=!1,a=_a(c,!0)):a=[]:fa(c)||Wr(c)?(a=l,Wr(l)?a=Jd(l):(!Je(l)||un(l))&&(a=Ta(c))):p=!1}p&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),Oi(n,e,a)}var ef=bS;function tf(n,t,e,r,o){n!==t&&Zd(t,function(i,s){if(o||(o=new ma),Je(i))ef(n,t,s,e,tf,r,o);else{var l=r?r(Ci(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),Oi(n,s,l)}},xr)}var rf=tf;function vS(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var of=vS;function SS(n,t){return t.length<2?n:pa(n,cd(t,0,-1))}var nf=SS;var wS=wp(function(n,t,e){rf(n,t,e)}),Do=wS;function _S(n,t){return t=qt(t,n),n=nf(n,t),n==null||delete n[ho(of(t))]}var sf=_S;function TS(n){return fa(n)?void 0:n}var af=TS;var AS=1,NS=2,IS=4,PS=da(function(n,t){var e={};if(n==null)return e;var r=!1;t=ta(t,function(i){return i=qt(i,n),r||(r=i.length>1),i}),Wt(n,ba(n),e),r&&(e=Na(e,AS|NS|IS,af));for(var o=t.length;o--;)sf(e,t[o]);return e}),Pn=PS;function OS(n,t,e,r){if(!Je(n))return n;t=qt(t,n);for(var o=-1,i=t.length,s=i-1,l=n;l!=null&&++o<i;){var c=ho(t[o]),u=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];u=r?r(a,c,l):void 0,u===void 0&&(u=Je(a)?a:ao(t[o+1])?[]:{})}fn(l,c,u),l=l[c]}return n}var lf=OS;function CS(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=pa(n,s);e(l,s)&&lf(i,qt(s,n),l)}return i}var cf=CS;function MS(n,t){return cf(n,t,function(e,r){return Xd(n,r)})}var uf=MS;var LS=da(function(n,t){return n==null?{}:uf(n,t)}),On=LS;var Mi;(o=>{o.identity={...Ks.identity,hiddenMatrix:io.identity};function t(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=t;function e(i,s){return{position:s?.position||i.position,rotation:s?.rotation||i.rotation,scale:s?.scale||i.scale,hiddenMatrix:s?.hiddenMatrix||i.hiddenMatrix}}o.merge=e;function r(i,s){return{position:nn.isEqual(i.position,s.position)?null:s.position,rotation:nn.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:nn.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:io.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(Mi||(Mi={}));var Jl;(t=>t.defaultData={fusedBody:!0,rigidBody:"positioned",density:1,pointMass:0,gravityScale:1,friction:.5,damping:0,restitution:.2,colliderType:"convex",enabledRotation:[!0,!0,!0],enabledTranslation:[!0,!0,!0]})(Jl||(Jl={}));var tr;(t=>t.defaultData={states:new ge,events:new ge,visible:!0,raycastLock:!1,physics:null,...Mi.identity})(tr||(tr={}));var pf;(t=>t.defaultData={type:"Empty",cloner:null,...tr.defaultData})(pf||(pf={}));var Go;(t=>t.defaultData={type:"Mesh",...tr.defaultData,...Js.defaultData})(Go||(Go={}));var Ia;(t=>t.defaultData={...tr.defaultData,...Mi.identity,...Lo.defaultData})(Ia||(Ia={}));var df;(t=>{function n(e){return{...tr.defaultData,...Qs.defaultData(e)}}t.defaultData=n})(df||(df={}));var ff;(o=>(o.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:io.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:Jl.defaultData,states:new ge,events:new ge,...Lo.defaultData},o.defaultMeshObject={name:"Rectangle",...tr.defaultData,...Go.defaultData,geometry:so.defaultData("RectangleGeometry"),material:Ft.defaultTwoLayerData("phong","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...tr.defaultData,...Go.defaultData,geometry:so.defaultData("BooleanGeometry"),material:Ft.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...tr.defaultData,...Go.defaultData,geometry:so.defaultData("TextGeometry"),material:Ft.defaultTwoLayerData("phong","layer1","layer2")}))(ff||(ff={}));var mf;(e=>{function n(r,o){if(o===void 0)return r;let i={...r};return"material"in i&&"material"in o&&o.material&&(i.material=El(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let u=s.layers.data(l);u&&Do(u,c)}}).data),i.materials&&o.materials&&(i.materials=El(i.materials,s=>{for(let l=0;l<i.materials.length;l++){let c=o.materials[l];if(typeof c!="string")for(let[u,a]of Object.entries(c.layers)){let p=s[l]?.layers?.data(u);p&&Do(p,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,Mi.merge(i,o)),sn.is(r.type)){i.orthographic={...i.orthographic},i.perspective={...i.perspective};let s=o;s.orthographic?.zoom!==void 0&&(i.orthographic.zoom=s.orthographic.zoom),s.perspective?.zoom!==void 0&&(i.perspective.zoom=s.perspective.zoom),s.isUpVectorFlipped!==void 0&&(i.isUpVectorFlipped=s.isUpVectorFlipped),s.targetOffset!==void 0&&(i.targetOffset=s.targetOffset)}else if(r.type==="Mesh")i.geometry={...i.geometry},Object.assign(i.geometry,o.geometry),i=n(i,o),i.cloner&&"cloner"in o&&Object.assign(i,{cloner:Eo.merge(i.cloner,o.cloner)});else if(r.type==="Empty")i.cloner&&"cloner"in o&&Object.assign(i,{cloner:Eo.merge(i.cloner,o.cloner)});else if(Zs.is(r.type)){let s=o;s.intensity!==void 0&&(i.intensity=s.intensity),s.color!==void 0&&(typeof s.color=="string"?i.color=s.color:i.color=Pt.clone(s.color))}return i}e.patch=t})(mf||(mf={}));var Cn;(t=>t.defaultData={enablePan:!0,enableZoom:!0,enableRotate:!0,enableDamping:!0,rotationLimitsMode:0,rotationVerticalOffset:{min:Math.PI/4,max:Math.PI/4},rotationHorizontalOffset:{min:Math.PI/4,max:Math.PI/4},rotationSoftLimit:2,panLimitsMode:0,panVerticalOffset:{min:250,max:250},panHorizontalOffset:{min:250,max:250},panSoftLimit:2,zoomLimitsEnabled:!1,zoomLimits:{min:.1,max:2},autoRotate:!1,autoRotateSpeed:2,autoRotateClockwise:!0,hoverRotatePanMode:0,hoverRotatePanStrength:20,isTouchZoom:!0,orbitTouches:2,panTouches:3,resetHoverEffectOnPointerLeave:!0})(Cn||(Cn={}));var Pa;(t=>t.defaultData={orbitControls:Cn.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((e,r)=>{let o=0,i=0;return r<5?i=-30:r<10&&(i=30),r===0||r===10||r===5?o=30:(r===4||r===11||r===9)&&(o=-30),[120,[o,i],"show"]}),gameControlObject:null})(Pa||(Pa={}));function Ro(n,t){return Object.setPrototypeOf(n,t),n}function hf(n){return Array.isArray(n)?n:[n]}var Oa;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},Ro(r,Ge.prototype)}e.defaultColors=n;function t(){return{materials:new Ge,images:new Ge,colors:new Ge,audios:new Ge,fonts:new Ge,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(Oa||(Oa={}));var Li=require("three");function gf(n){n.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let e=t.colorA,r=t.colorB,o=[[e.r,e.g,e.b,e.a],[r.r,r.g,r.b,r.a]],i=[0,1];for(let l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...On(Nt(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,s)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let e={...Nt(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,e)}})}function Ca(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function Ma(n,t){n.scene.objects.traverse((e,r)=>{"materials"in r?r.materials.forEach(o=>{typeof o!="string"&&t(o)}):"material"in r&&typeof r.material!="string"&&t(r.material)})}function ES(n){Object.assign(n.scene.publish,{orbitControls:{...Cn.defaultData,...Nt(n.scene.publish.orbitControls)}})}function BS(n){Object.assign(n.scene.publish.settings,{video:{...Pa.defaultData.settings.video,...Nt(n.scene.publish.settings.video)}})}function DS(n){function t(e){if(e.layers){for(let r of Object.values(e.layers))if(r){for(let[o,i]of Object.entries(r))if((Qu.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(Ju.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,r)=>{r.states.forEach(o=>{let i=o;i.material?t(i.material):i.materials&&i.materials.forEach(s=>{t(s)})})})}function GS(n){n.scene.publish.withBackground=!0}function RS(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function VS(n){n.scene.objects.traverse((t,e)=>{let r=e.cloner;r&&(r.radial.scale=r.radial.scale.map(o=>o+1),r.linear.scale=r.linear.scale.map(o=>o+1))})}function FS(n){n.scene.objects.traverse((t,e)=>{let r=e.geometry;r&&(r.type==="DodecahedronGeometry"||r.type==="IcosahedronGeometry")&&(r.detail=Math.round(r.detail))})}function zS(n){n.scene.objects.traverse((t,e)=>{let r=n.scene.objects.parent(t);e.type==="Mesh"&&(!r||n.scene.objects.data(r).geometry?.type!=="BooleanGeometry")&&(e.booleanExclude=null)})}function yf(n){n.layers===void 0&&Object.assign(n,Ft.defaultTwoLayerData("lambert"))}function ec(n){!n.layers||n.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let e=[...t.colors];e.push(t.colors[9]);let r=[...t.steps];r.push(t.steps[9]);let o={...Nt(t),colors:e,steps:r};Object.assign(t,o)}})}function jS(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function xf(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&ec(r)}):"material"in e&&typeof e.material!="string"&&ec(e.material)}),Object.values(n.shared.materials).forEach(t=>ec(t))}function US(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((t,e)=>{(e.type==="DirectionalLight"||e.type==="SpotLight")&&(e.shadowResolution=1024,e.shadowRadius=1,e.depth=1e5)}),n.shared.penumbraSize=new Array(5).fill(.5)}function kS(n){n.shared.audios=Ro({},Ge.prototype)}function HS(n){let t=n.shared.materials;Object.entries(t).forEach(([e,r])=>{if(!r.layers){let o={name:"Untitled Material",layers:[{fi:0,data:{type:"light",category:"phong",alpha:.6,visible:!0,mode:0,specular:{r:.2,g:.2,b:.2},shininess:5},id:"layer1"},{fi:1,data:{type:"color",alpha:1,visible:!0,mode:0,color:{r:.2823529411764706,g:.2823529411764706,b:.30196078431372547}},id:"layer2"}]};Object.assign(t,{[e]:o})}})}function WS(n){Object.entries(Nt(n.shared.images)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.images[r]}),Object.entries(Nt(n.shared.audios)).filter(r=>r[1].asset===!1).map(r=>r[0]).forEach(r=>{delete n.shared.audios[r]})}function qS(n){n.scene.publish.settings.web.preload=!1}function bf(n){n.layers&&n.layers.forEach(t=>{t.type==="depth"&&t.num!==void 0&&(t.colors=t.colors.slice(0,t.num),t.steps=t.steps.slice(0,t.num),delete t.num)})}function $S(n){n.shared.fonts=Ro({},Ge.prototype)}function YS(n){return n.replace(".typeface","").replace(/optimer/gi,"open sans").replace("space_mono","space mono").replace(/alma_mono/gi,"varela round").replace(/droid_sans_mono/gi,"noto sans mono").replace(/droid_sans|gentilis|gnomon_(simple|foreground)|helvetiker/gi,"roboto").replace(/droid_serif/gi,"roboto slab").replace("_sans"," sans").replace("crimson_text","crimson text").replace("medium_medium","medium").replace("fatface_fatface","fatface").replace("100hairline","thin").replace("200thin","extralight").replace("300light","light").replace("500medium","medium").replace("600semi","semibold").replace("800heavy","extrabold").replace("900black","black").replace(/bodoni_(11|16|24|36|48|72|96)([^_])/gi,"bodoni_$1_$2").replace(/bodoni_(11|16|24|36|48|72|96)/gi,"bodoni moda").replace(/(thin|hairline)(_regular)?/gi,"100").replace(/(extra|ultra)light(_regular)?/gi,"200").replace(/light(_regular)?/gi,"300").replace(/_book|_normal|_roman/gi,"_regular").replace(/medium(_regular)?/gi,"500").replace(/(semi|demi)bold(_regular)?/gi,"600").replace(/(extra|ultra)bold(_regular)?/gi,"800").replace(/bold(_regular)?/gi,"700").replace(/(black|heavy|fatface)(_regular)?/gi,"900").replace(/([1-9]00)_italic/gi,"$1italic").replace(/regularitalic/gi,"italic").replace(/regularitalic/gi,"italic").split(" ").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function XS(n){let t=[];n.scene.objects.traverse((e,r)=>{let o=r;if(o.type==="TextFrame"){let i=Ft.defaultTwoLayerData("phong"),s=typeof o.color=="string"?n.shared.colors[o.color]:o.color;i.layers[1].data.color={r:s.r,g:s.g,b:s.b},i.layers[1].data.alpha=o.alpha;let l=YS(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...tr.defaultData,...Go.defaultData,flatShading:!1,wireframe:!1,geometry:{...so.defaultData("TextGeometry"),width:o.width,height:o.height,font:l,depth:0,horizontalAlign:o.horizontalAlign,verticalAlign:o.verticalAlign,fontSize:o.fontSize*1.40625,lineHeight:o.lineHeight/1.40625,letterSpacing:o.letterSpacing-1,text:o.text,textTransform:o.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:i,states:Nt(o.states),events:Nt(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},u=Nt(n.scene.objects).parent(e);n.scene.objects.insertAfter(u??null,e,[{id:e+"new",data:c,children:[]}]),t.push(e)}}),t.forEach(e=>{n.scene.objects.delete(e)})}function KS(n){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};n.scene.objects.traverse((e,r)=>{r.events.forEach(o=>{if(!!t[Number(o.type)])if(Object.assign(o,{type:t[Number(o.type)]}),o.type==="Audio"&&"audioEvent"in o&&(Object.assign(o,{playAudio:o.audioEvent}),delete o.audioEvent),o.type==="GameControl")Object.assign(o,{gameActions:{idle:new ge,move:new ge,jump:new ge}});else{let i=new ge;Object.assign(o,{actions:i}),(o.type==="MouseDown"||o.type==="MouseUp"||o.type==="KeyDown"||o.type==="KeyUp")&&"url"in o&&i.push({fi:0,id:Li.MathUtils.generateUUID(),data:{type:"Link",url:o.url,delay:0}}),"targets"in o&&(o.targets.forEach((s,l,c)=>{let u={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},a={easing:s.easing,duration:s.duration};s.easing===6?Object.assign(a,On(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(a,{control1:{...s.control1},control2:{...s.control2}});let p={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},d={state:s.state,...p,...a},f={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new ge({fi:0,id:Li.MathUtils.generateUUID(),data:u},{fi:1,id:Li.MathUtils.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function ZS(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new ge,l=[];if(e.events.forEach((c,u,a)=>{if(c.type==="Audio"&&c.trigger===i){let p;l.push(u),c.interaction==="play"?p={...On(c,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in c?c.after:void 0,toggle:"after"in c?c.toggle:void 0,type:"Audio"}:(c.interaction==="pause"||c.interaction==="stop")&&(p={...On(c,"interaction","delay","object","playAudio"),type:"Audio"}),p&&s.push({fi:a,id:u,data:p})}}),l.forEach(c=>e.events.delete(c)),s.length){let c=e.events.find(u=>u.type===o)?.data;c?"actions"in c&&c.actions.insertBefore(null,s):e.events.insertBefore(null,[{id:Li.MathUtils.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function vf(n){let t=n.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=yr.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function QS(n){Ca(n,vf),Ma(n,vf)}function JS(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function e1(n){n.scene.objects.traverse((t,e)=>{(e.type==="Empty"||e.type==="Mesh")&&e.cloner&&!e.cloner.randomnessObject&&!e.cloner.toObject&&!e.cloner.randomness&&(e.cloner={...e.cloner,toObject:{object:"",spreadType:"random",scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],axis:"x",seed:0,count:99,align:"normal"},randomness:!1,randomnessObject:{strength:100,scale:[0,0,0],rotation:[0,0,0],position:[0,0,0],movement:1,seed:0,freqScale:10,noiseType:"perlin"}})})}var Sf=24;function wf(n){let t=n.schema??0;t!==Sf&&(console.warn("updating from ",t,"to ",Sf),t<1&&(Ma(n,gf),Ca(n,gf),n.schema=1),t<2&&(ES(n),n.schema=2),t<3&&(DS(n),n.schema=3),t<4&&(GS(n),n.schema=4),t<5&&(RS(n),n.schema=5),t<6&&(VS(n),n.schema=6),t<7&&(FS(n),n.schema=7),t<8&&(zS(n),n.schema=8),t<9&&(xf(n),n.schema=9),t<10&&(jS(n),n.schema=10),t<11&&(US(n),n.schema=11),t<12&&(xf(n),n.schema=12),t<13&&(kS(n),n.schema=13),t<14&&(HS(n),n.schema=14),t<15&&(WS(n),n.schema=15),t<16&&(qS(n),n.schema=16),t<17&&(Ma(n,bf),Ca(n,bf),n.schema=17),t<18&&(Ma(n,yf),Ca(n,yf),n.schema=18),t<19&&(BS(n),n.schema=19),t<20&&($S(n),XS(n),n.schema=20),t<21&&(KS(n),ZS(n),n.schema=21),t<22&&(QS(n),n.schema=22),t<23&&(JS(n),n.schema=23),t<24&&(e1(n),n.schema=24))}var La;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(La||(La={}));var Me=require("three"),Dn=Es(Tf());var t1=.5*(Math.sqrt(3)-1),Bi=(3-Math.sqrt(3))/6,r1=1/3,br=1/6,b3=(Math.sqrt(5)-1)/4,v3=(5-Math.sqrt(5))/20,Di=n=>Math.floor(n)|0,Af=new Float64Array([1,1,-1,1,1,-1,-1,-1,1,0,-1,0,1,0,-1,0,0,1,0,-1,0,1,0,-1]),rc=new Float64Array([1,1,0,-1,1,0,1,-1,0,-1,-1,0,1,0,1,-1,0,1,1,0,-1,-1,0,-1,0,1,1,0,-1,1,0,1,-1,0,-1,-1]);function Ea(n=Math.random){let t=If(n),e=new Float64Array(t).map(o=>Af[o%12*2]),r=new Float64Array(t).map(o=>Af[o%12*2+1]);return function(i,s){let l=0,c=0,u=0,a=(i+s)*t1,p=Di(i+a),d=Di(s+a),f=(p+d)*Bi,m=p-f,h=d-f,g=i-m,b=s-h,x,S;g>b?(x=1,S=0):(x=0,S=1);let w=g-x+Bi,v=b-S+Bi,N=g-1+2*Bi,_=b-1+2*Bi,y=p&255,I=d&255,A=.5-g*g-b*b;if(A>=0){let C=y+t[I],L=e[C],j=r[C];A*=A,l=A*A*(L*g+j*b)}let P=.5-w*w-v*v;if(P>=0){let C=y+x+t[I+S],L=e[C],j=r[C];P*=P,c=P*P*(L*w+j*v)}let T=.5-N*N-_*_;if(T>=0){let C=y+1+t[I+1],L=e[C],j=r[C];T*=T,u=T*T*(L*N+j*_)}return 70*(l+c+u)}}function Nf(n=Math.random){let t=If(n),e=new Float64Array(t).map(i=>rc[i%12*3]),r=new Float64Array(t).map(i=>rc[i%12*3+1]),o=new Float64Array(t).map(i=>rc[i%12*3+2]);return function(s,l,c){let u,a,p,d,f=(s+l+c)*r1,m=Di(s+f),h=Di(l+f),g=Di(c+f),b=(m+h+g)*br,x=m-b,S=h-b,w=g-b,v=s-x,N=l-S,_=c-w,y,I,A,P,T,C;v>=N?N>=_?(y=1,I=0,A=0,P=1,T=1,C=0):v>=_?(y=1,I=0,A=0,P=1,T=0,C=1):(y=0,I=0,A=1,P=1,T=0,C=1):N<_?(y=0,I=0,A=1,P=0,T=1,C=1):v<_?(y=0,I=1,A=0,P=0,T=1,C=1):(y=0,I=1,A=0,P=1,T=1,C=0);let L=v-y+br,j=N-I+br,Y=_-A+br,te=v-P+2*br,ie=N-T+2*br,U=_-C+2*br,W=v-1+3*br,q=N-1+3*br,F=_-1+3*br,E=m&255,D=h&255,B=g&255,k=.6-v*v-N*N-_*_;if(k<0)u=0;else{let G=E+t[D+t[B]];k*=k,u=k*k*(e[G]*v+r[G]*N+o[G]*_)}let $=.6-L*L-j*j-Y*Y;if($<0)a=0;else{let G=E+y+t[D+I+t[B+A]];$*=$,a=$*$*(e[G]*L+r[G]*j+o[G]*Y)}let H=.6-te*te-ie*ie-U*U;if(H<0)p=0;else{let G=E+P+t[D+T+t[B+C]];H*=H,p=H*H*(e[G]*te+r[G]*ie+o[G]*U)}let V=.6-W*W-q*q-F*F;if(V<0)d=0;else{let G=E+1+t[D+1+t[B+1]];V*=V,d=V*V*(e[G]*W+r[G]*q+o[G]*F)}return 32*(u+a+p+d)}}function If(n){let e=new Uint8Array(512);for(let r=0;r<512/2;r++)e[r]=r;for(let r=0;r<512/2-1;r++){let o=r+~~(n()*(256-r)),i=e[r];e[r]=e[o],e[o]=i}for(let r=256;r<512;r++)e[r]=e[r-256];return e}var Pf=require("three"),rr=new Pf.Triangle,Ba=class{constructor(t){this.weightAttribute=null;let e=t.geometry;if(!e.isBufferGeometry||e.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");e.index&&(e=e.toNonIndexed()),this.geometry=e,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let t=this.positionAttribute,e=new Float32Array(t.count/3);for(let o=0;o<t.count;o+=3){let i=1;rr.a.fromBufferAttribute(t,o),rr.b.fromBufferAttribute(t,o+1),rr.c.fromBufferAttribute(t,o+2),i*=rr.getArea(),e[o/3]=i}this.distribution=new Float32Array(t.count/3);let r=0;for(let o=0;o<e.length;o++)r+=e[o],this.distribution[o]=r;return this}setRandomGenerator(t){return this.randomFunction=t,this}sample(t,e){if(this.distribution){let r=this.distribution[this.distribution.length-1],o=this.binarySearch(this.randomFunction()*r);return this.sampleFace(o,t,e)}}binarySearch(t){if(!this.distribution)return 0;let e=this.distribution,r=0,o=e.length-1,i=-1;for(;r<=o;){let s=Math.ceil((r+o)/2);if(s===0||e[s-1]<=t&&e[s]>t){i=s;break}else t<e[s]?o=s-1:r=s+1}return i}sampleFace(t,e,r){let o=this.randomFunction(),i=this.randomFunction();return o+i>1&&(o=1-o,i=1-i),rr.a.fromBufferAttribute(this.positionAttribute,t*3),rr.b.fromBufferAttribute(this.positionAttribute,t*3+1),rr.c.fromBufferAttribute(this.positionAttribute,t*3+2),e.set(0,0,0).addScaledVector(rr.a,o).addScaledVector(rr.b,i).addScaledVector(rr.c,1-(o+i)),rr.getNormal(r),this}};var Va=require("three");var ic=require("three");var Ga=require("three");var oc=require("three");function lt(n,t){return t.color(n)}var nc=n=>"isEntity"in n,vr=n=>"isAbstractMesh"in n,Sr=n=>n!==null&&n.objectType==="BooleanObject",Of=n=>n.objectType==="CombinedCamera";var Da=n=>"objectHelper"in n;function o1(n,t){let e=!1;t.position&&(n.position.fromArray(t.position),e=!0),t.rotation&&(n.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,n.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(e=!0,n.hiddenMatrix.fromArray(t.hiddenMatrix??io.identity)),e&&(n.updateMatrix(),Sr(n.parent)&&vr(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=t.isUpVectorFlipped),n.updateUp())}function n1(n,t){o1(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function Cf(n,t,e){n1(n,t),t.color!==void 0&&(n.color=lt(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof oc.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof oc.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function Mf(n,t){n.shadow.camera.right=t/2,n.shadow.camera.left=-t/2,n.shadow.camera.top=t/2,n.shadow.camera.bottom=-t/2,n.shadow.needsUpdate=!0}var Ra=n=>class extends n{hasEntityChild(){return this.children.some(e=>nc(e))}isDescendantOf(e){e instanceof Ga.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let o=new Ga.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),nc(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),r===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var We=require("three");var Mn=new We.Box3,$t=new We.Vector3,wr=new We.Vector3,Ln=new We.Matrix4,Ef=[new We.Vector3(-1,1,1),new We.Vector3(-1,-1,1),new We.Vector3(1,-1,1),new We.Vector3(1,1,1),new We.Vector3(-1,1,-1),new We.Vector3(-1,-1,-1),new We.Vector3(1,-1,-1),new We.Vector3(1,1,-1)],i1=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],s1=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function a1(n,t,e=0,r=t.count){let o=1/0,i=1/0,s=1/0,l=-1/0,c=-1/0,u=-1/0;for(let a=e;a<r;a++){let p=t.getX(a),d=t.getY(a),f=t.getZ(a);p<o&&(o=p),d<i&&(i=d),f<s&&(s=f),p>l&&(l=p),d>c&&(c=d),f>u&&(u=f)}return n.min.set(o,i,s),n.max.set(l,c,u),n}var Lf=(n,t,e)=>{if(vr(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position"),i=n.geometry.userData.type;i==="SubdivGeometry"?$t.copy(n.originalGeometry.boundingSphere.center):i==="TextGeometry"||ln.is2DParametricMesh(i)?$t.set(0,0,r.depth*.5):i==="ConeGeometry"||i==="CubeGeometry"||i==="CylinderGeometry"||i==="DodecahedronGeometry"||i==="HelixGeometry"||i==="IcosahedronGeometry"||i==="PyramidGeometry"||i==="SphereGeometry"||i==="PlaneGeometry"||i==="BackdropGeometry"||i==="TorusGeometry"||i==="TorusKnotGeometry"?$t.set(0,0,0):o!==void 0&&(a1(Mn,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),Mn.getCenter($t)),n.forceComputeSize?Mn.getSize(wr).multiplyScalar(.5):wr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(Da(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");Mn.setFromArray(r.array),Mn.getCenter($t),Mn.getSize(wr).multiplyScalar(.5)}else $t.setScalar(0),wr.setScalar(0);Ln.copy(t).multiply(n.matrixWorld),wr.x===0&&wr.y===0&&wr.z===0?e.push(new We.Vector3($t.x,$t.y,$t.z).applyMatrix4(Ln)):Ef.forEach(r=>{e.push(r.clone().multiply(wr).add($t).applyMatrix4(Ln))})},Gi=class extends We.Box3{constructor(){super(...arguments);this.matrix=new We.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new We.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&Lf(s,r,i)}):Lf(e,r,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(Ln.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(wr).multiplyScalar(.5),this.getCenter($t),Ln.copy(this.matrix).setPosition($t),this.vertices=Ef.map(e=>e.clone().multiply(wr).applyMatrix4(Ln))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=i1.map(([e,r])=>new We.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new We.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=s1.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var Yt=n=>"isEntity"in n,Bf=n=>"isAbstractMesh"in n,Xt=n=>class extends Ra(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new ic.Matrix4;this._singleBBox=new Gi;this._recursiveBBox=new Gi;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(r=>{Yt(r)&&(r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(r=>{r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0})}traverseEntity(r){r(this);for(let o of this.children)Yt(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)Yt(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,r=!0);for(let o of this.children)o.updateMatrixWorld(r)}updateWorldMatrix(r,o){let i=this.parent;if(r&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let s of this.children)s.updateWorldMatrix(!1,!0)}clone(r){return new this.constructor().copy(this,r)}copy(r,o=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),o===!0)for(let i of r.children)Yt(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new ic.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)Yt(i)&&i.hiddenMatrix.premultiply(r)}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return Pn(o,r)}fromObjectTransformState(r){return r.position&&this.position.fromArray(r.position),r.rotation&&this.rotation.fromArray(r.rotation),r.scale&&this.scale.fromArray(r.scale),r.hiddenMatrix&&this.hiddenMatrix.fromArray(r.hiddenMatrix),this.updateMatrix(),this}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return Pn(o,r)}fromState(r,o){return r.name&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.type!=="OrthographicCamera"&&r.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),r.visible!==void 0&&(this.visible=r.visible),this.fromObjectTransformState(r),this}};var sc=class extends Va.Object3D{},l1=n=>n.type==="Mesh",_r=class extends sc{constructor(e){super();this.object=e;this.hiddenMatrix=new Va.Matrix4;this.uuidOrigin=e.uuid,this.matrixAutoUpdate=!0;for(let r of this.object.children)if(Yt(r)){let o=new _r(r);o.visible=!0,this.add(o),o.matrixAutoUpdate=!1,o.matrix=r.matrix.clone(),o.matrix.premultiply(r.hiddenMatrix)}}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return l1(this.object)}updateMatrixWorld(e){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||e)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,e=!0);for(let r of this.children)r.updateMatrixWorld(e)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(e){}get isCamera(){return!1}get geometry(){if(this.object.geometry)return this.object.geometry}get material(){if(this.object.material)return this.object.material}};var c1,En=new Promise(n=>{c1=n});var Tr=require("three"),Df=-1,u1=1,Gf={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Rf={polygon_center:0,edge:1,vertex:2},Ri=(n,t)=>(e,r)=>!t||e===0||n===0?0:n*r/100,he=(n,t)=>{let e=Math.abs(t),r=e*-1;return(n-Df)*(e-r)/(u1-Df)+r};function Vf(n){let t=[],e={};for(var r=0,o=n.length;r<o;r++){var i=JSON.stringify(n[r].pos.map(s=>Math.round(s*1e4)/1e4));e[i]||(t.push(n[r]),e[i]=!0)}return t}var p1=new Tr.Vector3,Fa=new Tr.Vector3,d1=new Tr.Vector3,f1=new Tr.Vector3;function Bn(n,t){let e=d1.fromArray(n),r=f1.fromArray(t);Fa.copy(r).sub(e);let o=Fa.length();return Fa.normalize().multiplyScalar(o*.5),p1.copy(e).add(Fa).toArray()}var Kt=new Tr.Triangle,za=new Tr.Vector3,ja=new Tr.Vector3,Vo=new Tr.Vector3;function Ff(n){let t=[];for(let e=0;e<=n.index.count;e++)if(za.fromArray(n.index.array,e*3),Kt.setFromAttributeAndIndices(n.attributes.position,za.x,za.y,za.z),Kt.getNormal(ja),Kt.getMidpoint(Vo),!(isNaN(Vo.x)||isNaN(Vo.y)||isNaN(Vo.z))){let{a:r,b:o,c:i}=Kt,s=r.toArray(),l=o.toArray(),c=i.toArray(),u=r.distanceTo(o),a=o.distanceTo(i),p=i.distanceTo(r),d=Bn(s,l),f=Bn(l,c),m=Bn(c,s),h=[u,a,p],g=Math.max(...h),b=h.filter(w=>Math.round(w)===Math.round(g)).length>1,x=[],S=Kt.getMidpoint(Vo).toArray();g===u&&!b&&(x=[f,m,m],S=d),g===a&&!b&&(x=[d,m,m],S=f),g===p&&!b&&(x=[d,f,f],S=m),b&&(x=[d,f,m]),t.push({vertices:[s,l,c],faceCenters:x,midpoint:S,norm:Kt.getNormal(ja).toArray()})}return t}function zf(n){let t=[],{position:e}=n.attributes;for(let r=0;r<e.count;r++){Kt.setFromAttributeAndIndices(e,r*3,r*3+1,r*3+2),Kt.getNormal(ja),Kt.getMidpoint(Vo);let o=Kt.a.toArray(),i=Kt.b.toArray(),s=Kt.c.toArray();t.push({vertices:[o,i,s],faceCenters:[Bn(o,i),Bn(i,s),Bn(s,o)],midpoint:Vo.toArray(),norm:ja.toArray()})}return t}var m1=4,h1=.5,ac=n=>.5*(1-Math.cos(n*Math.PI)),lc=class{constructor(){this.perlin=new Array(4095+1)}noise(t,e=0,r=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let b=0;b<4095+1;b++)this.perlin[b]=Math.random()}t<0&&(t=-t),e<0&&(e=-e),r<0&&(r=-r);let o=Math.floor(t),i=Math.floor(e),s=Math.floor(r),l=t-o,c=e-i,u=r-s,a,p,d=0,f=.5,m,h,g;for(let b=0;b<m1;b++){let x=o+(i<<4)+(s<<8);a=ac(l),p=ac(c),m=this.perlin[x&4095],m+=a*(this.perlin[x+1&4095]-m),h=this.perlin[x+16&4095],h+=a*(this.perlin[x+16+1&4095]-h),m+=p*(h-m),x+=256,h=this.perlin[x&4095],h+=a*(this.perlin[x+1&4095]-h),g=this.perlin[x+16&4095],g+=a*(this.perlin[x+16+1&4095]-g),h+=p*(g-h),m+=ac(u)*(h-m),d+=m*f,f*=h1,o<<=1,l*=2,i<<=1,c*=2,s<<=1,u*=2,l>=1&&(o++,l--),c>=1&&(i++,c--),u>=1&&(s++,u--)}return d}noiseSeed(t){let e=(()=>{let s,l;return{setSeed(c){l=s=(c??Math.random()*4294967296)>>>0},getSeed(){return s},rand(){return l=(1664525*l+1013904223)%4294967296,l/4294967296}}})();e.setSeed(t),this.perlin=new Array(4095+1);for(let r=0;r<4095+1;r++)this.perlin[r]=e.rand()}},jf=lc;var wt=1e-4,Ar,Hf,Wf,qf,Uf=new Me.Vector3,kf=new Me.Vector3;En.then(n=>{Ar=n,Hf=[Ar.get_face_center,Ar.get_edge_midpoint,Ar.get_vertex_position],Wf=[Ar.get_face_normal,Ar.get_edge_normal,Ar.get_vertex_normal],qf=[Ar.face_count,Ar.edge_count,Ar.vertex_count]});var g1=new Me.Matrix4,y1=new Me.Matrix4,go=new Me.Vector3,Fo=new Me.Vector3,Vi=new Me.Vector3,cc=new Me.Vector3,x1=new Me.Vector3,b1=new Me.Vector3;var Yr=new jf,Xr=class extends Me.Object3D{constructor(e,r={}){super();this.objectForSample=void 0;this.object=e;let o=e.recursiveBBox.getSize(new Me.Vector3),i=.1;this.parameters=Eo.defaultData(o.toArray(),i),Do(this.parameters,r),this.update(),this.setHideBase(this.parameters.hideBase)}setHideBase(e){this.parameters.hideBase=e}update(){switch(this._updateCount(),this.parameters.type){case"radial":this._updateRadial(this.parameters);break;case"linear":this._updateLinear(this.parameters);break;case"grid":this._updateGrid(this.parameters);break;case"toObject":this._updateToObject(this.parameters)}this.parameters.type==="toObject"?this.objectForSample&&this.objectForSample.children.forEach(e=>e.updateMatrix()):this.children.forEach(e=>e.updateMatrix())}_updateCount(e){let r;if(e!==void 0?r=e:r=this.parameters.type==="grid"?this.parameters.grid.count[0]*this.parameters.grid.count[1]*this.parameters.grid.count[2]:this.parameters.count,this.parameters.type==="toObject"&&!this.parameters.toObject.object&&(r=0),this.parameters.type==="toObject"&&this.objectForSample){for(let i=0,s=this.children.length;i<s;++i)this.remove(this.children[0]);let o=[...this.objectForSample.children].filter(i=>i instanceof _r&&i.uuidOrigin===this.object.uuid);if(o.length===r)return;if(o.length<r)for(let i=0,s=r-o.length;i<s;++i){let l=new _r(this.object);l.visible=!0,this.objectForSample.add(l),this.parameters.hideBase&&this.setHideBase(!0)}else for(let i=0,s=o.length-r;i<s;++i)this.objectForSample.remove(o[i])}else{if(this.children.length===r)return;if(this.children.length<r)for(let o=0,i=r-this.children.length;o<i;++o){let s=new _r(this.object);s.visible=!0,this.add(s),this.parameters.hideBase&&this.setHideBase(!0)}else for(let o=0,i=this.children.length-r;o<i;++o)this.remove(this.children[0])}}_updateRadial(e){let r=e.radial,o=r.start*Me.MathUtils.DEG2RAD,i=r.end*Me.MathUtils.DEG2RAD,s=o-i,l=new Me.Euler(r.rotation[0],r.rotation[1],r.rotation[2]),c;switch(r.axis){case"z":c=new Me.Vector3(0,0,1);break;case"y":c=new Me.Vector3(0,1,0);break;default:case"x":c=new Me.Vector3(1,0,0);break}let u=e.randomnessObject,a=u.noiseType==="perlin";Yr.noiseSeed(u.seed);let p=Ea((0,Dn.default)(u.seed)),d=Ri(u.strength,this.parameters.randomness);for(let[f,m]of this.children.entries()){let h=f*(u.freqScale/10)+u.movement,g=a?Yr.noise(h):p(h,h);m.scale.x=r.scale[0]+d(f,he(g,u.scale[0]))||wt,m.scale.y=r.scale[1]+d(f,he(g,u.scale[1]))||wt,m.scale.z=r.scale[2]+d(f,he(g,u.scale[2]))||wt,m.position.setScalar(0);let b=s/e.count*f-o;switch(r.axis){case"x":m.rotation.set(0,b,0);break;case"y":m.rotation.set(0,0,b);break;case"z":m.rotation.set(b,0,0);break}m.translateOnAxis(c,r.radius),m.position.x+=r.position[0]+d(f,he(g,u.position[0])),m.position.y+=r.position[1]+d(f,he(g,u.position[1])),m.position.z+=r.position[2]+d(f,he(g,u.position[2]));let x=d(f,he(g,u.rotation[0])),S=d(f,he(g,u.rotation[1])),w=d(f,he(g,u.rotation[2]));r.alignment===!0?(m.rotation.x+=l.x+x,m.rotation.y+=l.y+S,m.rotation.z+=l.z+w):m.rotation.set(l.x+x,l.y+S,l.z+w)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let r=e.linear,o=new Me.Euler(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Yr.noiseSeed(i.seed);let l=Ea((0,Dn.default)(i.seed)),c=Ri(i.strength,this.parameters.randomness);for(let[u,a]of this.children.entries()){let p=u*(i.freqScale/10)+i.movement,d=s?Yr.noise(p):l(p,p),f=c(u,he(d,i.rotation[0])),m=c(u,he(d,i.rotation[1])),h=c(u,he(d,i.rotation[2]));a.scale.x=1+(r.scale[0]-1)*u+c(u,he(d,i.scale[0]))||wt,a.scale.y=1+(r.scale[1]-1)*u+c(u,he(d,i.scale[1]))||wt,a.scale.z=1+(r.scale[2]-1)*u+c(u,he(d,i.scale[2]))||wt,a.rotation.x=o.x*u+f,a.rotation.y=o.y*u+m,a.rotation.z=o.z*u+h,a.position.x=r.position[0]*u+c(u,he(d,i.position[0])),a.position.y=r.position[1]*u+c(u,he(d,i.position[1])),a.position.z=r.position[2]*u+c(u,he(d,i.position[2]))}}_updateGrid(e){let r=0,o=e.grid,i=e.randomnessObject,s=Ri(i.strength,this.parameters.randomness),l=i.noiseType==="perlin";Yr.noiseSeed(i.seed);let c=Nf((0,Dn.default)(i.seed));if(o.useCenter===!0){let u={x:o.count[0]%2===0?2:1,y:o.count[1]%2===0?2:1,z:o.count[2]%2===0?2:1},a=new Me.Vector3(o.size[0]*(o.count[0]-u.x)*.5,o.size[1]*(o.count[1]-u.y)*.5,o.size[2]*(o.count[2]-u.z)*.5);for(let p=0;p<o.count[0];p++)for(let d=0;d<o.count[1];d++)for(let f=0;f<o.count[2];f++){let m=[(p+1)*(i.freqScale/10)+i.movement,(d+1)*(i.freqScale/10)+i.movement,(f+1)*(i.freqScale/10)+i.movement],h=l?Yr.noise(...m):c(...m),g=this.children[r++];g.scale.x=1+s(r,he(h,i.scale[0]))||wt,g.scale.y=1+s(r,he(h,i.scale[1]))||wt,g.scale.z=1+s(r,he(h,i.scale[2]))||wt;let b=s(r,he(h,i.rotation[0])),x=s(r,he(h,i.rotation[1])),S=s(r,he(h,i.rotation[2]));g.rotation.set(b,x,S),g.position.x=o.size[0]*p-a.x+s(r,he(h,i.position[0])),g.position.y=o.size[1]*d-a.y+s(r,he(h,i.position[1])),g.position.z=o.size[2]*f-a.z+s(r,he(h,i.position[2]))}}else for(let u=0;u<o.count[0];u++)for(let a=0;a<o.count[1];a++)for(let p=0;p<o.count[2];p++){let d=[(u+1)*(i.freqScale/10)+i.movement,(a+1)*(i.freqScale/10)+i.movement,(p+1)*(i.freqScale/10)+i.movement],f=l?Yr.noise(...d):c(...d),m=this.children[r++];m.scale.x=1+s(r,he(f,i.scale[0]))||wt,m.scale.y=1+s(r,he(f,i.scale[1]))||wt,m.scale.z=1+s(r,he(f,i.scale[2]))||wt;let h=s(r,he(f,i.rotation[0])),g=s(r,he(f,i.rotation[1])),b=s(r,he(f,i.rotation[2]));m.rotation.set(h,g,b),m.position.x=o.size[0]*u+s(r,he(f,i.position[0])),m.position.y=-o.size[1]*a+s(r,he(f,i.position[1])),m.position.z=-o.size[2]*p+s(r,he(f,i.position[2]))}}_updateToObject(e){if(e.type!=="toObject")throw new Error;let{toObject:r}=e,o=new Me.Euler(r.rotation[0],r.rotation[1],r.rotation[2]),i=e.randomnessObject,s=i.noiseType==="perlin";Yr.noiseSeed(i.seed);let l=Ea((0,Dn.default)(i.seed)),c=Ri(i.strength,this.parameters.randomness);if(!r.object){for(let[,b]of this.children.entries())b.position.set(0,0,0),b.scale.setScalar(1),b.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;let u=this.getSubdivData(),a=[],p=b=>{let x=b.length,S=b.map(N=>N[0]).reduce((N,_)=>N+_,0),w=b.map(N=>N[1]).reduce((N,_)=>N+_,0),v=b.map(N=>N[2]).reduce((N,_)=>N+_,0);return[S/x,w/x,v/x]},d=b=>Math.round(b*1e6)/1e6;u.forEach(b=>{let x=u.filter(S=>d(b.pos[0])===d(S.pos[0])&&d(b.pos[1])===d(S.pos[1])&&d(b.pos[2])===d(S.pos[2]));x.length>1?a.push({pos:b.pos,norm:p(x.map(S=>S.norm))}):a.push(b)});let f=Vf(a);if(u.length>0){let b=Math.round(f.length*r.count/100);this._updateCount(b)}this.objectForSample.updateMatrixWorld();let m=new Ba(this.objectForSample).build(),h=Gf[r.axis],g=this.objectForSample.children.filter(b=>b instanceof _r&&b.uuidOrigin===this.object.uuid);m.setRandomGenerator((0,Dn.default)(this.object.uuid+r.seed));for(let[b,x]of g.entries()){let S=b*(i.freqScale/10)+i.movement,w=s?Yr.noise(S):l(S,S),v=c(b,he(w,i.rotation[0])),N=c(b,he(w,i.rotation[1])),_=c(b,he(w,i.rotation[2]));r.spreadType==="random"?m.sample(Vi,cc):(f.length&&(Vi.fromArray(f[b].pos),cc.fromArray(f[b].norm)),this.objectForSample.objectType==="SubdivObject"&&Vi.applyMatrix4(g1.copy(this.objectForSample.matrixWorld).invert())),Vi.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(Vi),go.fromArray(h);let y=r.align==="normal"?cc:this.object.getWorldDirection(b1),I=Fo.fromArray(r.position);Fo.x+=Fo.x+c(b,he(w,i.position[0])),Fo.y+=Fo.y+c(b,he(w,i.position[1])),Fo.z+=Fo.z+c(b,he(w,i.position[2]));let A=Math.acos(y.dot(go)),P=x1.crossVectors(go,y).normalize(),T=y1.makeRotationAxis(P,A),C=y.clone().cross(this.object.up).normalize(),L=C.clone().cross(y).normalize(),j=new Me.Matrix4().makeBasis(C,y,L),Y=new Me.Vector3(go.y,go.z,go.x).normalize(),te=Y.clone().cross(go).normalize(),ie=new Me.Matrix4().makeBasis(Y,go,te).invert(),U=new Me.Matrix4().multiplyMatrices(j,ie);x.rotation.setFromRotationMatrix(U),I.applyMatrix4(T),x.position.add(I),x.rotation.x=x.rotation.x+o.x+v,x.rotation.y=x.rotation.y+o.y+N,x.rotation.z=x.rotation.z+o.z+_,x.scale.setScalar(1),x.scale.x=x.scale.x+r.scale[0]+c(b,he(w,i.scale[0]))||wt,x.scale.y=x.scale.y+r.scale[1]+c(b,he(w,i.scale[1]))||wt,x.scale.z=x.scale.z+r.scale[2]+c(b,he(w,i.scale[2]))||wt,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}setObjectForSample(e){this.objectForSample=e}getSubdivData(){if(!this.objectForSample)return[];let e=this.parameters.toObject.spreadType;if(e==="random")return[];if(this.objectForSample.objectType==="SubdivObject"){let r=this.objectForSample,o=Rf[e],i=qf[o],s=Hf[o],l=Wf[o],c=[],u=i(r.subdivPointer);for(let a=0;a<=u-1;a++){let p=s(r.subdivPointer,a),d=l(r.subdivPointer,a);Uf.fromArray(p).applyMatrix4(r.matrixWorld),kf.fromArray(d),c.push({pos:Uf.toArray(),norm:kf.toArray()})}return c}else return(this.objectForSample.geometry.index?Ff(this.objectForSample.geometry):zf(this.objectForSample.geometry)).map((o,i)=>e==="polygon_center"?{pos:o.midpoint,norm:o.norm}:e==="vertex"?[{pos:o.vertices[0],norm:o.norm},{pos:o.vertices[1],norm:o.norm},{pos:o.vertices[2],norm:o.norm}]:e==="edge"?[{pos:o.faceCenters[0],norm:o.norm},{pos:o.faceCenters[1],norm:o.norm},{pos:o.faceCenters[2],norm:o.norm}]:[]).flat()}removeSampleObjectClones(){if(this.objectForSample)for(var e=this.objectForSample.children.length-1;e>=0;e--){let r=this.objectForSample.children[e];r instanceof _r&&r.uuidOrigin===this.object.uuid&&this.objectForSample.remove(r)}}fromClonerState(e){if(!e)return this;e.hideBase!==void 0&&this.setHideBase(e.hideBase);let r=e.hasOwnProperty("type");return e.toObject?.hasOwnProperty("object")&&!!this.parameters.toObject.object&&!e.toObject.object&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),this.parameters.type==="toObject"&&(r?e.type!=="toObject":!1)&&(this.removeSampleObjectClones(),this.setObjectForSample(void 0)),Do(this.parameters,e),this.update(),this}};var Fr=require("three");var Ue=require("three");var $f=require("three"),Nr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new $f.BoxGeometry(30,30,30),t};var dt=require("three");var yt=require("three"),Ua=new yt.Ray,uc=new yt.Sphere,Yf=new yt.Matrix4,Ir=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),uc.copy(i.boundingSphere),uc.applyMatrix4(s),e.ray.intersectsSphere(uc)===!1||(Yf.copy(s).invert(),Ua.copy(e.ray).applyMatrix4(Yf),i.boundingBox!==null&&Ua.intersectsBox(i.boundingBox)===!1))return;let l,c,u,a,p=i.index,d=i.attributes.position,f=i.drawRange,m,h;if(o===!1){let b=Math.max(0,f.start),x=Math.min(p.count,f.start+f.count);for(m=b,h=x;m<h;m+=3)if(c=p.getX(m),u=p.getX(m+1),a=p.getX(m+2),l=g(n,e,Ua,d,c,u,a),l){l.faceIndex=Math.floor(m/3),r.push(l);return}}else{let x=i.attributes.position,S=new yt.Vector3,w=new yt.Vector3,v=new yt.Vector3,N=new yt.Vector3,_=2,I=1/((n.scale.x+n.scale.y+n.scale.z)/3),A=I*I,P=Math.max(0,f.start),T=Math.min(x.count,f.start+f.count);for(let C=P,L=T-1;C<L;C+=_){if(S.fromBufferAttribute(x,C),w.fromBufferAttribute(x,C+1),Ua.distanceSqToSegment(S,w,N,v)>A)continue;N.applyMatrix4(n.matrixWorld);let Y=e.ray.origin.distanceTo(N);Y<e.near||Y>e.far||r.push({distance:Y,point:v.clone().applyMatrix4(n.matrixWorld),object:n})}}function g(b,x,S,w,v,N,_){let y=new yt.Vector3,I=new yt.Vector3,A=new yt.Vector3,P=new yt.Vector3,T=new yt.Vector3;if(y.fromBufferAttribute(w,v),I.fromBufferAttribute(w,N),A.fromBufferAttribute(w,_),S.intersectTriangle(y,I,A,!1,P)===null)return null;T.copy(P),T.applyMatrix4(b.matrixWorld);let L=x.ray.origin.distanceTo(T);return L<x.near||L>x.far?null:{faceIndex:1,distance:L,point:T.clone(),object:b}}};var ka=new dt.Vector3,Zt=new dt.Camera,pc=class extends dt.LineSegments{constructor(e){let r=new dt.BufferGeometry,o=new dt.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new dt.Color(15711266),u=new dt.Color(15711266),a=new dt.Color(2857471);p("n1","n2",c),p("n2","n4",c),p("n4","n3",c),p("n3","n1",c),p("f1","f2",c),p("f2","f4",c),p("f4","f3",c),p("f3","f1",c),p("n1","f1",c),p("n2","f2",c),p("n3","f3",c),p("n4","f4",c),p("p","n1",u),p("p","n2",u),p("p","n3",u),p("p","n4",u),p("u1","u2",a),p("u2","u3",a),p("u3","u1",a);function p(f,m,h){d(f,h),d(m,h)}function d(f,m){i.push(0,0,0),s.push(m.r,m.g,m.b),l[f]===void 0&&(l[f]=[]),l[f].push(i.length/3-1)}r.setAttribute("position",new dt.Float32BufferAttribute(i,3)),r.setAttribute("color",new dt.Float32BufferAttribute(s,3));super(r,o);this.type="CameraHelper",this.camera=e,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=l,this.update()}update(){let e=this.geometry,r=this.pointMap,o=!0;Zt.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let i=1,s=1,l=o?.8:1e-4;or("n1",r,e,Zt,-i,-s,l),or("n2",r,e,Zt,i,-s,l),or("n3",r,e,Zt,-i,s,l),or("n4",r,e,Zt,i,s,l);let c=l;or("f1",r,e,Zt,-i,-s,c),or("f2",r,e,Zt,i,-s,c),or("f3",r,e,Zt,-i,s,c),or("f4",r,e,Zt,i,s,c);let u=c,a=.5;or("u1",r,e,Zt,i*.7*a,s*1.1,u),or("u2",r,e,Zt,-i*.7*a,s*1.1,u),or("u3",r,e,Zt,0,s*(1.1+.9*a),u),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function or(n,t,e,r,o,i,s){ka.set(o,i,s).unproject(r);let l=t[n];if(l!==void 0){let c=e.getAttribute("position");for(let u=0,a=l.length;u<a;u++)c.setXYZ(l[u],ka.x,ka.y,ka.z)}}var Ha=class extends Nr(pc){constructor(e){super(e);this.object=e;this.object=e,this.name=`CombinedCameraHelper: ${e.uuid}`}updateMatrixWorld(e){super.updateMatrixWorld(e),this.updateTarget()}updateTarget(){let e=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(e)}raycast(e,r){Ir(this.object,this.geometry,e,r,!0)}};var Xf=require("three");var Gn=class extends Nr(Xf.DirectionalLightHelper){constructor(e,r=15,o=10066329){super(e,r,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,r){Ir(this.object,Gn.geometryHelper,e,r)}};var Kf=require("three");var Rn=class extends Nr(Kf.AxesHelper){constructor(e,r=15){super(r);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,r){Ir(this.object,Rn.geometryHelper,e,r)}update(){}};var Zf=require("three");var Vn=class extends Nr(Zf.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){Ir(this.object,Vn.geometryHelper,e,r)}};var qa=require("three");var Wa=class extends Nr(qa.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){Ir(this.object,Wa.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=Wa._vector,r=this.object.distance?this.object.distance:1e3,o=r*Math.tan(this.object.angle);this.cone.scale.set(o,o,r),e.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(e);let i=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let s=0,l=this.cone.material.length;s<l;s++)this.cone.material[s].color.set(i);else this.cone.material.color.set(i)}}},Fi=Wa;Fi._vector=new qa.Vector3;var ye=require("three"),zi=1e-12,Fn=class{constructor(t){this.position=new ye.Vector2;this.startPosition=new ye.Vector2;this.uuid=ye.MathUtils.generateUUID();this.position=t.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(t){this.position.copy(this.startPosition).add(t)}copy(t){return this.position.copy(t.position),this.startPosition.copy(t.startPosition),this}clone(){return new Fn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},zn=class extends Fn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new zn(this.parent).copy(this)}},nr=class extends Fn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new zn(this),new zn(this))}static create(e,r){let o=new nr(e,new ye.Vector2(...r.position));return o.controls[0].position.set(...r.controlPrevious.position),o.controls[1].position.set(...r.controlNext.position),o.roundness=r.roundness,o.areControlsDirectionsMirrored=r.areControlsDirectionsMirrored,o}getOppositeControl(e){let r=this.controls.indexOf(e);return r===0?this.controls[1]:r===1?this.controls[0]:null}applyOffsetToControls(e,r=1){for(let o=0,i=this.controls.length;o<i;o++){let s=this.controls[o];this.position.distanceTo(s.position)<=r?s.position.copy(this.position):s.applyOffset(e)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(e){return super.copy(e),this.controls[0].copy(e.controls[0]),this.controls[1].copy(e.controls[1]),this.roundness=e.roundness,this.uuid=e.uuid,this}clone(){return new nr(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let e=this.curveBefore?.getTangentAt(1),r=this.curveAfter?.getTangentAt(0);return[e,r]}computeNormals(e=new ye.Vector2,r=new ye.Vector2){let[o,i]=this.computeTangents();return o&&i&&(Qf(o,e),Qf(i,r)),[e,r]}computeTangent(e=new ye.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new ye.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Qf(n,t=new ye.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var fc=n=>n,jn=new ye.Vector2,$a=new ye.Vector2,S1=new ye.Vector2,w1=new ye.Vector2,_1=new ye.Vector2,T1=new ye.Vector2,em=new ye.Vector3,tm=new ye.Vector3;function rm(n){let t=new ye.Vector2;t.addVectors(n.v0,jn.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new ye.Vector2;return e.addVectors(n.v2,$a.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new ye.CubicBezierCurve(n.v0,t,e,n.v2)}function ji(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function A1(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function N1(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function mc(n,t,e){let r=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),o=Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)),i=Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2));return Math.acos((o*o+r*r-i*i)/(2*o*r))}function om(n,t,e){return Jf(n,t)&&Jf(t,e)&&dc(n.position,t.position,e.position)}function dc(n,t,e){return jn.copy(t).sub(n).cross($a.copy(e).sub(n))===0}function nm(n,t,e,r,o){let i=Math.sqrt(Math.pow(t.x-n.x,2)+Math.pow(t.y-n.y,2)),s=(n.y+t.y)/2,l=(n.x+t.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-t.y)/i,u=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(t.x-n.x)/i;return r.set(l+c,s+u),o.set(l-c,s-u),[r,o]}function im(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function sm(n,t,e,r,o,i){let s=t.x-n.x,l=t.y-n.y,c=e.x-n.x,u=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+u)*(l+u)),p;return mc(t,n,e)>Math.PI&&(a*=-1),ji(u,l)?p=(l+u)*(r/a-.5)*8/3/(s-c):p=(s+c)*(r/a-.5)*8/3/(u-l),o.set(t.x-p*l,t.y+p*s),i.set(e.x+p*u,e.y-p*c),[o,i]}function hc(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function Jf(n,t){return dc(n.position,n.controls[1].position,t.position)&&dc(n.position,t.controls[0].position,t.position)}function am(n,t,e,r,o=.5){let i=jn.subVectors(t,n).multiplyScalar(o).add(n),s=$a.subVectors(e,t).multiplyScalar(o).add(t),l=S1.subVectors(r,e).multiplyScalar(o).add(e),c=i,u=w1.subVectors(s,i).multiplyScalar(o).add(i),a=_1.subVectors(l,s).multiplyScalar(o).add(s),p=l,d=T1.subVectors(a,u).multiplyScalar(o).add(u);return[n.x,n.y,c.x,c.y,u.x,u.y,d.x,d.y,a.x,a.y,p.x,p.y,r.x,r.y]}function lm(n,t,e=12,r=!0){let o=tm.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let u=fc(t[c]),a=jn,p=yo(u,e);l.push(p);for(let d=0;d<=p;d++)if(u instanceof ye.CubicBezierCurve||u instanceof ye.QuadraticBezierCurve||u instanceof ye.LineCurve){if(u.getPoint(d/p,a),o.set(a.x,a.y,0),i!==void 0&&N1(i,o))continue;i===void 0&&(i=em),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return r&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),n}function cm(n,t,e,r=12,o=!0){let i=tm.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let u,a=fc(t[c]),p=jn,d=yo(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof ye.CubicBezierCurve||a instanceof ye.QuadraticBezierCurve||a instanceof ye.LineCurve){if(a.getPoint(f/d,p),i.set(p.x,p.y,0),u?.equals(i))continue;u===void 0?u=em:(n.setXYZ(s,u.x,u.y,u.z),s++,n.setXYZ(s,i.x,i.y,i.z),s++),u.copy(i)}}return o&&s>1&&!(n.getX(s-1)===n.getX(0)&&n.getY(s-1)===n.getY(0)&&n.getZ(s-1)===n.getZ(0))&&(n.setXYZ(s,n.getX(0),n.getY(0),n.getZ(0)),s++),l}function gc(n,t=12,e=!1){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=yo(s.roundedCurveCorner,t)*.5;o>0&&(r[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=yo(s.curveAfter,t)),r.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(r[n.length-1]+=yo(n[0].roundedCurveCorner,t)*.5),r}function yo(n,t=12){return n&&n instanceof ye.EllipseCurve?t*2:n&&(n instanceof ye.LineCurve||n instanceof ye.LineCurve3)?1:n&&n instanceof ye.SplineCurve?t*n.points.length:t}function um(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=fc(t[s]),c=yo(l,e),u=jn;for(let a=0;a<=c;a++)if(l instanceof ye.CubicBezierCurve||l instanceof ye.QuadraticBezierCurve||l instanceof ye.LineCurve){if(l.getPoint(a/c,u),o!==void 0&&A1(o,u,zi))continue;o===void 0&&(o=$a),o.copy(u),n.push(u.x,u.y),i++}}return ji(n[0],n[n.length-2],zi)&&ji(n[1],n[n.length-1],zi)&&(n.pop(),n.pop()),r&&i>1&&!(ji(n[i-1],n[1],zi)&&ji(n[i-2],n[0],zi))&&(n.push(n[0],n[1]),i++),n}var Ao=require("three");var we=require("three");var yc=new we.Vector2,I1=new we.Vector2,P1=new we.Vector2,O1=new we.Vector2,C1=new we.Vector2,M1=new we.Vector2,Te=class extends we.Shape{constructor(e=100,r=100){super();this.points=[];this.shapeHoles=[];this.eventDispatcher=new we.EventDispatcher;this.plane=new we.Plane(new we.Vector3(0,0,-1));this.subdivision=0;this.controlSnapDistance=4;this.pointIDs=0;this.isMesh2D=!1;this._roundness=0;this.isClosed=!1;this.useCubicForRoundedCorners=!0;this.uuid=we.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=r}static createFromState(e,r,o){let i=new Te;return i.isClosed=e.isClosed,i.points=e.points.map(s=>nr.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>Te.createFromState(s)),r!==void 0&&o!==void 0&&i.applySize(r,o),i.update(),i}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(e){if(this._roundness!==e){this._roundness=e;for(let r=0,o=this.points.length;r<o;r++)this.points[r].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(r=>this.getPointIndexById(r)).filter(r=>r>=0)}getPointIndexById(e){let r=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=r;for(let s=0,l=this.shapeHoles.length;s<l;s++){let c=this.shapeHoles[s],u=c.points.length,a=c.getPointIndexById(e);if(a<0)i+=u;else return a+i}}return o}getLineIndexById(e){return this.getPointIndexById(e)}getBezierPoint(e){if(e<=this.points.length-1)return this.points[e];if(this.shapeHoles.length>0){let r=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=e-r;if(l<=s.points.length-1)return s.points[l];r+=s.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let r=this.points.indexOf(e);if(r>=0)return r;if(r=this.points.length,this.shapeHoles.length>0)for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=s.points.indexOf(e);if(l>=0)return r+l;r+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(r=>r.points));return[...this.points,...e]}applySize(e,r){e===0&&(e=.001),r===0&&(r=.001),this._width=e,this._height=r}applyScale(e,r){let o=yc.set(e,r);for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i];l.position.multiply(o),l.controls[0].position.multiply(o),l.controls[1].position.multiply(o)}for(let i=0,s=this.shapeHoles.length;i<s;i++)this.shapeHoles[i].applyScale(e,r);this._update(!1)}createPoint(e,r=0,o=we.MathUtils.generateUUID()){let i;e instanceof we.Vector2?i=e:i=new we.Vector2(e,r);let s=new nr(o,i);return s.roundness=this.roundness,s}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,r){this.points.splice(r,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let r=0,o=this.points.length;r<o;r++){let i=this.points[r];if(i.uuid===e)return i}for(let r=0,o=this.shapeHoles.length;r<o;r++){let s=this.shapeHoles[r].getPointByUuid(e);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let r=this.points.indexOf(e);r>=0&&this.points.splice(r,1),this.needsUpdate=!0}removePointById(e){let r=this.points.find(o=>o.uuid===e);r&&this.removePoint(r)}update(e=!0){for(let r=0,o=this.shapeHoles.length;r<o;r++)this.shapeHoles[r].update(!1);this._update(e)}extractShapePointsToBuffer(e,r=12,o=!1){this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r);let i=o?this.roundedCurveDivisions:this.curveDivisions;return lm(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=gc(this.points,e,!1),this.roundedCurveDivisions=gc(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return cm(e,this.curves,r,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,r=12){return this.subdivision=r,this.curveDivisions===void 0&&this.computeCurveDivisions(r),um(e,this.roundedCurves,r,this.autoClose)}getCurveIndexFromVertexId(e,r=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=r?this.roundedCurveDivisions:this.curveDivisions,s=0;r&&this.points[0].roundedCurveCorner!==void 0&&(s=yo(this.points[0].roundedCurveCorner,this.subdivision)*.5);let l=e-s;l<0&&(l+=i.reduce((c,u)=>c+u,0));for(let c=0,u=i.length;c<u;c++){let a=i[c];if(l<o+a)return[c,(l-o+1)/a];o+=a}return[0,1]}getCurveT(e,r,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(hc(i,s)){let p=i.position.distanceTo(s.position);return i.position.distanceTo(yc.set(o.x,o.y))/p}let u=0;for(let p=0;p<e;p++)u+=l[p];return(r-u)/c}dispose(){this.eventDispatcher=null}_applyCurveForPoint(e,r){hc(r,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(r.controls[1].position.x,r.controls[1].position.y,e.controls[0].position.x,e.controls[0].position.y,e.position.x,e.position.y);let o=this.curves[this.curves.length-1];e.curveBefore=o,r.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,r.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(e=!0){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o];if(o===0)this.moveTo(s.position.x,s.position.y);else{let l=this.points[o-1];this._applyCurveForPoint(s,l)}}let r=this.getLastPoint();if(r?.curveAfter&&(r.curveAfter=void 0),this.isClosed){let o=this.points[0],i=this.points[this.points.length-1];this._applyCurveForPoint(o,i)}if(this.points.length>2){let o=0;for(let i=0,s=this.points.length;i<s;i++){let l=this.points[i],c=this.points[i-1]??this.points[this.points.length-1],u=this.points[i+1]??this.points[0],a=l.roundness,p=c&&u&&om(c,l,u);if(!l.controlsMoved()&&a>0&&!p){let d=l.curveBefore,f=l.curveAfter;if(d===void 0||f===void 0)continue;let m=l.roundedCurveBefore,h=l.roundedCurveAfter,g=d.getLength(),b=f.getLength(),x=Math.min(a,g*.499),S=Math.min(a,b*.499),w=Math.min(x,S),v=1-w/g,N=w/b,_=d.getPointAt(v,yc),y=f.getPointAt(N,I1);this._subSplitCurve(d,m,v,_,void 0),this._subSplitCurve(f,h,N,void 0,y);let I;if(this.useCubicForRoundedCorners){let A=mc(_,l.position,y)/2,P=Math.tan(A)*_.distanceTo(l.position),[T,C]=nm(_,y,P,P1,O1),L=im(T,C,l.position),[j,Y]=sm(L,_,y,P,C1,M1);I=new we.CubicBezierCurve(_.clone(),j.clone(),Y.clone(),y.clone())}else I=new we.QuadraticBezierCurve(_.clone(),l.position.clone(),y.clone());l.roundedCurveCorner=I,this.roundedCurves.splice(i+o,0,I),o++}}}e&&this.eventDispatcher?.dispatchEvent({type:"update"})}_subSplitCurve(e,r,o,i,s){if(e instanceof we.LineCurve)i!==void 0&&r.v2.copy(i),s!==void 0&&r.v1.copy(s);else{let l=e,c=r,u=l.getUtoTmapping(o,0),a=am(l.v0,l.v1,l.v2,l.v3,u);return i!==void 0&&(c.v0.set(a[0],a[1]),c.v1.set(a[2],a[3]),c.v2.set(a[4],a[5]),c.v3.set(a[6],a[7])),s!==void 0&&(c.v0.set(a[6],a[7]),c.v1.set(a[8],a[9]),c.v2.set(a[10],a[11]),c.v3.set(a[12],a[13])),c}return r}clone(){let e=new Te(this._width,this._height);return e.points=this.points.map(r=>r.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(r=>r.clone()),e}toJSON(){return{points:this.points.reduce((e,r)=>e.concat(r.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let r=e.points.length/7;for(let o=0;o<r;o++){let i=o*7,s=e.points[i+0],l=e.points[i+1],c=e.points[i+2],u=e.points[i+3],a=e.points[i+4],p=e.points[i+5],d=e.points[i+6],f=new nr(we.MathUtils.generateUUID(),new we.Vector2(s,l));f.controls[0].position.set(c,u),f.controls[1].position.set(a,p),f.roundness=d,this.points.push(f)}return this.shapeHoles=e.shapeHoles?.length?e.shapeHoles.map(o=>{let i=new Te;return i.fromJSON(o),i}):[],this.isClosed=e.isClosed,this._roundness=e.roundness,this._update(),this}fromShape(e){let r=(i,s)=>{s instanceof we.CubicBezierCurve&&s.v3.equals(i.position)&&i.controls[0].position.copy(s.v2)},o=i=>{let s=[],l,c;for(l=0,c=i.length;l<c;l++)i[l]instanceof we.QuadraticBezierCurve&&(i[l]=rm(i[l]));for(l=0,c=i.length;l<c;l++){let p=i[l],d=l>0?i[l-1]:null,f;p instanceof we.CubicBezierCurve?(f=this.createPoint(p.v0),f.controls[1].position.copy(p.v1)):p instanceof we.LineCurve&&(f=this.createPoint(p.v1)),f!==void 0&&(d!==null&&r(f,d),s.push(f))}let u=i[i.length-1],a=!1;return u instanceof we.CubicBezierCurve?u.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(u.v2),a=!0):u instanceof we.LineCurve&&u.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof we.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new Te;return s.fromShape(i),s})),this.update(),this}};var jo=require("three");var Be;(function(n){n[n.ODD=0]="ODD",n[n.NONZERO=1]="NONZERO",n[n.POSITIVE=2]="POSITIVE",n[n.NEGATIVE=3]="NEGATIVE",n[n.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(Be||(Be={}));var et;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(et||(et={}));function ue(n,t){if(!n)throw t||"Assertion Failed!"}var le=function(){function n(){}return n.vertEq=function(t,e){return t.s===e.s&&t.t===e.t},n.vertLeq=function(t,e){return t.s<e.s||t.s===e.s&&t.t<=e.t},n.transLeq=function(t,e){return t.t<e.t||t.t===e.t&&t.s<=e.s},n.edgeGoesLeft=function(t){return n.vertLeq(t.Dst,t.Org)},n.edgeGoesRight=function(t){return n.vertLeq(t.Org,t.Dst)},n.vertL1dist=function(t,e){return Math.abs(t.s-e.s)+Math.abs(t.t-e.t)},n.edgeEval=function(t,e,r){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?o<i?e.t-t.t+(t.t-r.t)*(o/(o+i)):e.t-r.t+(r.t-t.t)*(i/(o+i)):0},n.edgeSign=function(t,e,r){ue(n.vertLeq(t,e)&&n.vertLeq(e,r));var o=e.s-t.s,i=r.s-e.s;return o+i>0?(e.t-r.t)*o+(e.t-t.t)*i:0},n.transEval=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?o<i?e.s-t.s+(t.s-r.s)*(o/(o+i)):e.s-r.s+(r.s-t.s)*(i/(o+i)):0},n.transSign=function(t,e,r){ue(n.transLeq(t,e)&&n.transLeq(e,r));var o=e.t-t.t,i=r.t-e.t;return o+i>0?(e.s-r.s)*o+(e.s-t.s)*i:0},n.vertCCW=function(t,e,r){return t.s*(e.t-r.t)+e.s*(r.t-t.t)+r.s*(t.t-e.t)>=0},n.interpolate=function(t,e,r,o){return t=t<0?0:t,r=r<0?0:r,t<=r?r===0?(e+o)/2:e+(o-e)*(t/(t+r)):o+(e-o)*(r/(t+r))},n.intersect=function(t,e,r,o,i){var s,l,c;n.vertLeq(t,e)||(c=t,t=e,e=c),n.vertLeq(r,o)||(c=r,r=o,o=c),n.vertLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.vertLeq(r,e)?n.vertLeq(e,o)?(s=n.edgeEval(t,r,e),l=n.edgeEval(r,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,e.s)):(s=n.edgeSign(t,r,e),l=-n.edgeSign(t,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,r.s,l,o.s)):i.s=(r.s+e.s)/2,n.transLeq(t,e)||(c=t,t=e,e=c),n.transLeq(r,o)||(c=r,r=o,o=c),n.transLeq(t,r)||(c=t,t=r,r=c,c=e,e=o,o=c),n.transLeq(r,e)?n.transLeq(e,o)?(s=n.transEval(t,r,e),l=n.transEval(r,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,e.t)):(s=n.transSign(t,r,e),l=-n.transSign(t,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,r.t,l,o.t)):i.t=(r.t+e.t)/2},n}(),Ui=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return n}(),Ya=function(){function n(t){this.side=t,this.next=null,this.Org=null,this.Sym=null,this.Onext=null,this.Lnext=null,this.Lface=null,this.activeRegion=null,this.winding=0}return Object.defineProperty(n.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),n}(),Un=function(){function n(){this.next=null,this.prev=null,this.anEdge=null,this.coords=[0,0,0],this.s=0,this.t=0,this.pqHandle=0,this.n=0,this.idx=0}return n}(),pm=function(){function n(){var t=new Un,e=new Ui,r=new Ya(0),o=new Ya(1);t.next=t.prev=t,t.anEdge=null,e.next=e.prev=e,r.next=r,r.Sym=o,o.next=o,o.Sym=r,this.vHead=t,this.fHead=e,this.eHead=r,this.eHeadSym=o}return n.prototype.makeEdge_=function(t){var e=new Ya(0),r=new Ya(1);t.Sym.side<t.side&&(t=t.Sym);var o=t.Sym.next;return r.next=o,o.Sym.next=e,e.next=t,t.Sym.next=r,e.Sym=r,e.Onext=e,e.Lnext=r,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,r.Sym=e,r.Onext=r,r.Lnext=e,r.Org=null,r.Lface=null,r.winding=0,r.activeRegion=null,e},n.prototype.splice_=function(t,e){var r=t.Onext,o=e.Onext;r.Sym.Lnext=e,o.Sym.Lnext=t,t.Onext=o,e.Onext=r},n.prototype.makeVertex_=function(t,e,r){var o=t;ue(o,"Vertex can't be null!");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(t,e,r){var o=t;ue(o,"Face can't be null");var i=r.prev;o.prev=i,i.next=o,o.next=r,r.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=r.inside;var s=e;do s.Lface=o,s=s.Lnext;while(s!==e)},n.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var e=t.next,r=t.Sym.next;e.Sym.next=r,r.Sym.next=e},n.prototype.killVertex_=function(t,e){var r=t.anEdge,o=r;do o.Org=e,o=o.Onext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.killFace_=function(t,e){var r=t.anEdge,o=r;do o.Lface=e,o=o.Lnext;while(o!==r);var i=t.prev,s=t.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var t=new Un,e=new Un,r=new Ui,o=this.makeEdge_(this.eHead);return this.makeVertex_(t,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(r,o,this.fHead),o},n.prototype.splice=function(t,e){var r=!1,o=!1;if(t!==e){if(e.Org!==t.Org&&(o=!0,this.killVertex_(e.Org,t.Org)),e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(e,t),!o){var i=new Un;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new Ui;this.makeFace_(s,e,t.Lface),t.Lface.anEdge=t}}},n.prototype.delete=function(t){var e=t.Sym,r=!1;if(t.Lface!==t.Rface&&(r=!0,this.killFace_(t.Lface,t.Rface)),t.Onext===t)this.killVertex_(t.Org,null);else if(t.Rface.anEdge=t.Oprev,t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev),!r){var o=new Ui;this.makeFace_(o,t,t.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(t.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(t)},n.prototype.addEdgeVertex=function(t){var e=this.makeEdge_(t),r=e.Sym;this.splice_(e,t.Lnext),e.Org=t.Dst;var o=new Un;return this.makeVertex_(o,r,e.Org),e.Lface=r.Lface=t.Lface,e},n.prototype.splitEdge=function(t){var e=this.addEdgeVertex(t),r=e.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,r),t.Dst=r.Org,r.Dst.anEdge=r.Sym,r.Rface=t.Rface,r.winding=t.winding,r.Sym.winding=t.Sym.winding,r.idx=t.idx,r.Sym.idx=t.Sym.idx,r},n.prototype.connect=function(t,e){var r=!1,o=this.makeEdge_(t),i=o.Sym;if(e.Lface!==t.Lface&&(r=!0,this.killFace_(e.Lface,t.Lface)),this.splice_(o,t.Lnext),this.splice_(i,e),o.Org=t.Dst,i.Org=e.Org,o.Lface=i.Lface=t.Lface,t.Lface.anEdge=i,!r){var s=new Ui;this.makeFace_(s,o,t.Lface)}return o},n.prototype.zapFace=function(t){var e=t.anEdge,r,o,i,s,l;o=e.Lnext;do r=o,o=r.Lnext,r.Lface=null,r.Rface===null&&(r.Onext===r?this.killVertex_(r.Org,null):(r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev)),i=r.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(r));while(r!=e);s=t.prev,l=t.next,l.prev=s,s.next=l},n.prototype.countFaceVerts_=function(t){var e=t.anEdge,r=0;do r++,e=e.Lnext;while(e!==t.anEdge);return r},n.prototype.mergeConvexFaces=function(t){var e,r,o,i,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(r=e.anEdge,s=r.Org;o=r.Lnext,i=r.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=t&&le.vertCCW(r.Lprev.Org,r.Org,i.Lnext.Lnext.Org)&&le.vertCCW(i.Lprev.Org,i.Org,r.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),r=null,i=null)),!(r&&r.Lnext.Org===s);)r=o;return!0},n.prototype.check=function(){var t=this.fHead,e=this.vHead,r=this.eHead,o,i,s,l,c,u;for(i=t,i=t;(o=i.next)!==t;i=o){ue(o.prev===i),c=o.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(ue(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){ue(s.prev===l),c=s.anEdge;do ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c),ue(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(ue(s.prev===l&&s.anEdge===null),u=r,u=r;(c=u.next)!==r;u=c)ue(c.Sym.next===u.Sym),ue(c.Sym!==c),ue(c.Sym.Sym===c),ue(c.Org!==null),ue(c.Dst!==null),ue(c.Lnext.Onext.Sym===c),ue(c.Onext.Sym.Lnext===c);ue(c.Sym.next===u.Sym&&c.Sym===this.eHeadSym&&c.Sym.Sym===c&&c.Org===null&&c.Dst===null&&c.Lface===null&&c.Rface===null)},n}(),dm=function(){function n(){this.handle=null}return n}(),fm=function(){function n(){this.key=null,this.node=0}return n}(),L1=function(){function n(t,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=t,this.nodes=[],this.handles=[];for(var r=0;r<t+1;r++)this.nodes[r]=new dm,this.handles[r]=new fm;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t<<1,s<this.size&&this.leq(r[e[s+1].handle].key,r[e[s].handle].key)&&++s,ue(s<=this.max),i=e[s].handle,s>this.size||this.leq(r[o].key,r[i].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.floatUp_=function(t){var e=this.nodes,r=this.handles,o,i,s;for(o=e[t].handle;;){if(s=t>>1,i=e[s].handle,s===0||this.leq(r[i].key,r[o].key)){e[t].handle=o,r[o].node=t;break}e[t].handle=i,r[i].node=t,t=s}},n.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(t){var e,r;if(e=++this.size,e*2>this.max){this.max*=2;var o,i;for(i=this.nodes.length,this.nodes.length=this.max+1,o=i;o<this.nodes.length;o++)this.nodes[o]=new dm;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new fm}return this.freeList===0?r=e:(r=this.freeList,this.freeList=this.handles[r].node),this.nodes[e].handle=r,this.handles[r].node=e,this.handles[r].key=t,this.initialized&&this.floatUp_(e),r},n.prototype.extractMin=function(){var t=this.nodes,e=this.handles,r=t[1].handle,o=e[r].key;return this.size>0&&(t[1].handle=t[this.size].handle,e[t[1].handle].node=1,e[r].key=null,e[r].node=this.freeList,this.freeList=r,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(t){var e=this.nodes,r=this.handles,o;ue(t>=1&&t<=this.max&&r[t].key!==null),o=r[t].node,e[o].handle=e[this.size].handle,r[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(r[e[o>>1].handle].key,r[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),r[t].key=null,r[t].node=this.freeList,this.freeList=t},n}(),xc=function(){function n(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return n}(),mm=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),E1=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new mm,this.head.next=this.head,this.head.prev=this.head}return n.prototype.min=function(){return this.head.next},n.prototype.max=function(){return this.head.prev},n.prototype.insert=function(t){return this.insertBefore(this.head,t)},n.prototype.search=function(t){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,t,e.key));return e},n.prototype.insertBefore=function(t,e){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,e));var r=new mm;return r.key=e,r.next=t.next,t.next.prev=r,r.prev=t,t.next=r,r},n.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},n}(),B1=function(){function n(){}return n.regionBelow=function(t){return t.nodeUp.prev.key},n.regionAbove=function(t){return t.nodeUp.next.key},n.debugEvent=function(t){},n.addWinding=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.edgeLeq=function(t,e,r){var o=t.event,i=e.eUp,s=r.eUp;if(i.Dst===o)return s.Dst===o?le.vertLeq(i.Org,s.Org)?le.edgeSign(s.Dst,i.Org,s.Org)<=0:le.edgeSign(i.Dst,s.Org,i.Org)>=0:le.edgeSign(s.Dst,o,s.Org)<=0;if(s.Dst===o)return le.edgeSign(i.Dst,o,i.Org)>=0;var l=le.edgeEval(i.Dst,o,i.Org),c=le.edgeEval(s.Dst,o,s.Org);return l>=c},n.deleteRegion=function(t,e){e.fixUpperEdge&&ue(e.eUp.winding===0),e.eUp.activeRegion=null,t.dict.delete(e.nodeUp)},n.fixUpperEdge=function(t,e,r){ue(e.fixUpperEdge),t.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=r,r.activeRegion=e},n.topLeftRegion=function(t,e){var r=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===r);if(e.fixUpperEdge){if(o=t.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(t,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(t){var e=t.eUp.Dst;do t=n.regionAbove(t);while(t.eUp.Dst===e);return t},n.addRegionBelow=function(t,e,r){var o=new xc;return o.eUp=r,o.nodeUp=t.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,r.activeRegion=o,o},n.isWindingInside=function(t,e){switch(t.windingRule){case Be.ODD:return(e&1)!==0;case Be.NONZERO:return e!==0;case Be.POSITIVE:return e>0;case Be.NEGATIVE:return e<0;case Be.ABS_GEQ_TWO:return e>=2||e<=-2}throw new Error("Invalid winding rulle")},n.computeWinding=function(t,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(t,e.windingNumber)},n.finishRegion=function(t,e){var r=e.eUp,o=r.Lface;o.inside=e.inside,o.anEdge=r,n.deleteRegion(t,e)},n.finishLeftRegions=function(t,e,r){for(var o,i=null,s=e,l=e.eUp;s!==r;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(t,s);break}o=t.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(t,i,o)}l.Onext!==o&&(t.mesh.splice(o.Oprev,o),t.mesh.splice(l,o)),n.finishRegion(t,s),l=i.eUp,s=i}return l},n.addRightEdges=function(t,e,r,o,i,s){var l,c,u,a,p=!0;u=r;do ue(le.vertLeq(u.Org,u.Dst)),n.addRegionBelow(t,e,u.Sym),u=u.Onext;while(u!==o);for(i===null&&(i=n.regionBelow(e).eUp.Rprev),c=e,a=i;l=n.regionBelow(c),u=l.eUp.Sym,u.Org===a.Org;)u.Onext!==a&&(t.mesh.splice(u.Oprev,u),t.mesh.splice(a.Oprev,u)),l.windingNumber=c.windingNumber-u.winding,l.inside=n.isWindingInside(t,l.windingNumber),c.dirty=!0,!p&&n.checkForRightSplice(t,c)&&(n.addWinding(u,a),n.deleteRegion(t,c),t.mesh.delete(a)),p=!1,c=l,a=u;c.dirty=!0,ue(c.windingNumber-u.winding===l.windingNumber),s&&n.walkDirtyRegions(t,c)},n.spliceMergeVertices=function(t,e,r){t.mesh.splice(e,r)},n.vertexWeights=function(t,e,r){var o=le.vertL1dist(e,t),i=le.vertL1dist(r,t),s=.5*i/(o+i),l=.5*o/(o+i);t.coords[0]+=s*e.coords[0]+l*r.coords[0],t.coords[1]+=s*e.coords[1]+l*r.coords[1],t.coords[2]+=s*e.coords[2]+l*r.coords[2]},n.getIntersectData=function(t,e,r,o,i,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,r,o),n.vertexWeights(e,i,s)},n.checkForRightSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp;if(le.vertLeq(o.Org,i.Org)){if(le.edgeSign(i.Dst,o.Org,i.Org)>0)return!1;le.vertEq(o.Org,i.Org)?o.Org!==i.Org&&(t.pq.delete(o.Org.pqHandle),n.spliceMergeVertices(t,i.Oprev,o)):(t.mesh.splitEdge(i.Sym),t.mesh.splice(o,i.Oprev),e.dirty=r.dirty=!0)}else{if(le.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Oprev,o)}return!0},n.checkForLeftSplice=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s;if(ue(!le.vertEq(o.Dst,i.Dst)),le.vertLeq(o.Dst,i.Dst)){if(le.edgeSign(o.Dst,i.Dst,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,s=t.mesh.splitEdge(o),t.mesh.splice(i.Sym,s),s.Lface.inside=e.inside}else{if(le.edgeSign(i.Dst,o.Dst,i.Org)>0)return!1;e.dirty=r.dirty=!0,s=t.mesh.splitEdge(i),t.mesh.splice(o.Lnext,i.Sym),s.Rface.inside=e.inside}return!0},n.checkForIntersect=function(t,e){var r=n.regionBelow(e),o=e.eUp,i=r.eUp,s=o.Org,l=i.Org,c=o.Dst,u=i.Dst,a,p,d=new Un,f,m;if(ue(!le.vertEq(u,c)),ue(le.edgeSign(c,t.event,s)<=0),ue(le.edgeSign(u,t.event,l)>=0),ue(s!==t.event&&l!==t.event),ue(!e.fixUpperEdge&&!r.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),p=Math.max(l.t,u.t),a>p))return!1;if(le.vertLeq(s,l)){if(le.edgeSign(u,s,l)>0)return!1}else if(le.edgeSign(c,l,s)<0)return!1;return n.debugEvent(t),le.intersect(c,s,u,l,d),ue(Math.min(s.t,c.t)<=d.t),ue(d.t<=Math.max(l.t,u.t)),ue(Math.min(u.s,c.s)<=d.s),ue(d.s<=Math.max(l.s,s.s)),le.vertLeq(d,t.event)&&(d.s=t.event.s,d.t=t.event.t),f=le.vertLeq(s,l)?s:l,le.vertLeq(f,d)&&(d.s=f.s,d.t=f.t),le.vertEq(d,s)||le.vertEq(d,l)?(n.checkForRightSplice(t,e),!1):!le.vertEq(c,t.event)&&le.edgeSign(c,t.event,d)>=0||!le.vertEq(u,t.event)&&le.edgeSign(u,t.event,d)<=0?u===t.event?(t.mesh.splitEdge(o.Sym),t.mesh.splice(i.Sym,o),e=n.topLeftRegion(t,e),o=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),r),n.addRightEdges(t,e,o.Oprev,o,o,!0),!0):c===t.event?(t.mesh.splitEdge(i.Sym),t.mesh.splice(o.Lnext,i.Oprev),r=e,e=n.topRightRegion(e),m=n.regionBelow(e).eUp.Rprev,r.eUp=i.Oprev,i=n.finishLeftRegions(t,r,null),n.addRightEdges(t,e,i.Onext,o.Rprev,m,!0),!0):(le.edgeSign(c,t.event,d)>=0&&(n.regionAbove(e).dirty=e.dirty=!0,t.mesh.splitEdge(o.Sym),o.Org.s=t.event.s,o.Org.t=t.event.t),le.edgeSign(u,t.event,d)<=0&&(e.dirty=r.dirty=!0,t.mesh.splitEdge(i.Sym),i.Org.s=t.event.s,i.Org.t=t.event.t),!1):(t.mesh.splitEdge(o.Sym),t.mesh.splitEdge(i.Sym),t.mesh.splice(i.Oprev,o),o.Org.s=d.s,o.Org.t=d.t,o.Org.pqHandle=t.pq.insert(o.Org),n.getIntersectData(t,o.Org,s,c,l,u),n.regionAbove(e).dirty=e.dirty=r.dirty=!0,!1)},n.walkDirtyRegions=function(t,e){for(var r=n.regionBelow(e),o,i;;){for(;r.dirty;)e=r,r=n.regionBelow(r);if(!e.dirty&&(r=e,e=n.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=r.eUp,o.Dst!==i.Dst&&n.checkForLeftSplice(t,e)&&(r.fixUpperEdge?(n.deleteRegion(t,r),t.mesh.delete(i),r=n.regionBelow(e),i=r.eUp):e.fixUpperEdge&&(n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!r.fixUpperEdge&&(o.Dst===t.event||i.Dst===t.event)){if(n.checkForIntersect(t,e))return}else n.checkForRightSplice(t,e);o.Org===i.Org&&o.Dst===i.Dst&&(n.addWinding(i,o),n.deleteRegion(t,e),t.mesh.delete(o),e=n.regionAbove(r))}},n.connectRightVertex=function(t,e,r){var o,i=r.Onext,s=n.regionBelow(e),l=e.eUp,c=s.eUp,u=!1;if(l.Dst!==c.Dst&&n.checkForIntersect(t,e),le.vertEq(l.Org,t.event)&&(t.mesh.splice(i.Oprev,l),e=n.topLeftRegion(t,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(t,n.regionBelow(e),s),u=!0),le.vertEq(c.Org,t.event)&&(t.mesh.splice(r,c.Oprev),r=n.finishLeftRegions(t,s,null),u=!0),u){n.addRightEdges(t,e,r.Onext,i,i,!0);return}le.vertLeq(c.Org,l.Org)?o=c.Oprev:o=l,o=t.mesh.connect(r.Lprev,o),n.addRightEdges(t,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(t,e)},n.connectLeftDegenerate=function(t,e,r){var o,i,s,l,c;if(o=e.eUp,le.vertEq(o.Org,r)){ue(!1),n.spliceMergeVertices(t,o,r.anEdge);return}if(!le.vertEq(o.Dst,r)){t.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(t.mesh.delete(o.Onext),e.fixUpperEdge=!1),t.mesh.splice(r.anEdge,o),n.sweepEvent(t,r);return}ue(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(ue(i!==s),n.deleteRegion(t,c),t.mesh.delete(s),s=i.Oprev),t.mesh.splice(r.anEdge,s),le.edgeGoesLeft(i)||(i=null),n.addRightEdges(t,e,s.Onext,l,i,!0)},n.connectLeftVertex=function(t,e){var r,o,i,s,l,c,u=new xc;if(u.eUp=e.anEdge.Sym,r=t.dict.search(u).key,o=n.regionBelow(r),!!o){if(s=r.eUp,l=o.eUp,le.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(t,r,e);return}if(i=le.vertLeq(l.Dst,s.Dst)?r:o,r.inside||i.fixUpperEdge){if(i===r)c=t.mesh.connect(e.anEdge.Sym,s.Lnext);else{var a=t.mesh.connect(l.Dnext,e.anEdge);c=a.Sym}i.fixUpperEdge?n.fixUpperEdge(t,i,c):n.computeWinding(t,n.addRegionBelow(t,r,c)),n.sweepEvent(t,e)}else n.addRightEdges(t,r,e.anEdge,e.anEdge,null,!0)}},n.sweepEvent=function(t,e){t.event=e,n.debugEvent(t);for(var r=e.anEdge;r.activeRegion===null;)if(r=r.Onext,r===e.anEdge){n.connectLeftVertex(t,e);return}var o=n.topLeftRegion(t,r.activeRegion);ue(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(t,i,null);l.Onext===s?n.connectRightVertex(t,o,l):n.addRightEdges(t,o,l.Onext,s,s,!0)},n.addSentinel=function(t,e,r,o){var i=new xc,s=t.mesh.makeEdge();s.Org.s=r,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,t.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=t.dict.insert(i)},n.initEdgeDict=function(t){t.dict=new E1(t,n.edgeLeq);var e=t.bmax[0]-t.bmin[0],r=t.bmax[1]-t.bmin[1],o=t.bmin[0]-e,i=t.bmax[0]+e,s=t.bmin[1]-r,l=t.bmax[1]+r;n.addSentinel(t,o,i,s),n.addSentinel(t,o,i,l)},n.doneEdgeDict=function(t){for(var e,r=0;(e=t.dict.min().key)!==null;)e.sentinel||(ue(e.fixUpperEdge),ue(++r===1)),ue(e.windingNumber===0),n.deleteRegion(t,e)},n.removeDegenerateEdges=function(t){var e,r,o,i=t.mesh.eHead;for(e=i.next;e!==i;e=r)r=e.next,o=e.Lnext,le.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(n.spliceMergeVertices(t,o,e),t.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===r||o===r.Sym)&&(r=r.next),t.mesh.delete(o)),(e===r||e===r.Sym)&&(r=r.next),t.mesh.delete(e))},n.initPriorityQ=function(t){var e,r,o,i=0;for(o=t.mesh.vHead,r=o.next;r!==o;r=r.next)i++;for(i+=8,e=t.pq=new L1(i,le.vertLeq),o=t.mesh.vHead,r=o.next;r!==o;r=r.next)r.pqHandle=e.insert(r);return r!==o?!1:(e.init(),!0)},n.donePriorityQ=function(t){t.pq=null},n.removeDegenerateFaces=function(t,e){var r,o,i;for(r=e.fHead.next;r!==e.fHead;r=o)o=r.next,i=r.anEdge,ue(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),t.mesh.delete(i));return!0},n.computeInterior=function(t,e){e===void 0&&(e=!0);var r,o;if(n.removeDegenerateEdges(t),!n.initPriorityQ(t))return!1;for(n.initEdgeDict(t);(r=t.pq.extractMin())!==null;){for(;o=t.pq.min(),!(o===null||!le.vertEq(o,r));)o=t.pq.extractMin(),n.spliceMergeVertices(t,r.anEdge,o.anEdge);n.sweepEvent(t,r)}return t.event=t.dict.min().key.eUp.Org,n.debugEvent(t),n.doneEdgeDict(t),n.donePriorityQ(t),n.removeDegenerateFaces(t,t.mesh)?(e&&t.mesh.check(),!0):!1},n}(),D1=function(){function n(){this.mesh=new pm,this.normal=[0,0,0],this.sUnit=[0,0,0],this.tUnit=[0,0,0],this.bmin=[0,0],this.bmax=[0,0],this.windingRule=Be.ODD,this.dict=null,this.pq=null,this.event=null,this.vertexIndexCounter=0,this.vertices=[],this.vertexIndices=[],this.vertexCount=0,this.elements=[],this.elementCount=0}return n.prototype.dot_=function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]},n.prototype.normalize_=function(t){var e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),t[0]/=e,t[1]/=e,t[2]/=e},n.prototype.longAxis_=function(t){var e=0;return Math.abs(t[1])>Math.abs(t[0])&&(e=1),Math.abs(t[2])>Math.abs(t[e])&&(e=2),e},n.prototype.computeNormal_=function(t){var e,r,o,i,s,l,c=[0,0,0],u=[0,0,0],a=[0,0,0],p=[0,0,0],d=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var g=0;g<3;++g)i=e.coords[g],u[g]=i,m[g]=e,c[g]=i,f[g]=e;for(e=h.next;e!==h;e=e.next)for(var b=0;b<3;++b)i=e.coords[b],i<u[b]&&(u[b]=i,m[b]=e),i>c[b]&&(c[b]=i,f[b]=e);var x=0;if(c[1]-u[1]>c[0]-u[0]&&(x=1),c[2]-u[2]>c[x]-u[x]&&(x=2),u[x]>=c[x]){t[0]=0,t[1]=0,t[2]=1;return}for(l=0,r=m[x],o=f[x],a[0]=r.coords[0]-o.coords[0],a[1]=r.coords[1]-o.coords[1],a[2]=r.coords[2]-o.coords[2],e=h.next;e!==h;e=e.next)p[0]=e.coords[0]-o.coords[0],p[1]=e.coords[1]-o.coords[1],p[2]=e.coords[2]-o.coords[2],d[0]=a[1]*p[2]-a[2]*p[1],d[1]=a[2]*p[0]-a[0]*p[2],d[2]=a[0]*p[1]-a[1]*p[0],s=d[0]*d[0]+d[1]*d[1]+d[2]*d[2],s>l&&(l=s,t[0]=d[0],t[1]=d[1],t[2]=d[2]);l<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(a)]=1)},n.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,e,r=this.mesh.vHead,o,i=0,s=t.next;s!==t;s=s.next)if(o=s.anEdge,!(o.winding<=0))do i+=(o.Org.s-o.Dst.s)*(o.Org.t+o.Dst.t),o=o.Lnext;while(o!==s.anEdge);if(i<0){for(e=r.next;e!==r;e=e.next)e.t=-e.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},n.prototype.projectPolygon_=function(){var t=this.mesh.vHead,e=[0,0,0],r,o,i=!1;e[0]=this.normal[0],e[1]=this.normal[1],e[2]=this.normal[2],!e[0]&&!e[1]&&!e[2]&&(this.computeNormal_(e),i=!0),r=this.sUnit,o=this.tUnit;var s=this.longAxis_(e);r[s]=0,r[(s+1)%3]=1,r[(s+2)%3]=0,o[s]=0,o[(s+1)%3]=0,o[(s+2)%3]=e[s]>0?1:-1;for(var l=t.next;l!==t;l=l.next)l.s=this.dot_(l.coords,r),l.t=this.dot_(l.coords,o);i&&this.checkOrientation_();for(var c=!0,u=t.next;u!==t;u=u.next)c?(this.bmin[0]=this.bmax[0]=u.s,this.bmin[1]=this.bmax[1]=u.t,c=!1):(u.s<this.bmin[0]&&(this.bmin[0]=u.s),u.s>this.bmax[0]&&(this.bmax[0]=u.s),u.t<this.bmin[1]&&(this.bmin[1]=u.t),u.t>this.bmax[1]&&(this.bmax[1]=u.t))},n.prototype.addWinding_=function(t,e){t.winding+=e.winding,t.Sym.winding+=e.Sym.winding},n.prototype.tessellateMonoRegion_=function(t,e){var r,o;if(r=e.anEdge,!(r.Lnext!==r&&r.Lnext.Lnext!==r))throw"Mono region invalid";for(;le.vertLeq(r.Dst,r.Org);r=r.Lprev);for(;le.vertLeq(r.Org,r.Dst);r=r.Lnext);o=r.Lprev;for(var i=void 0;r.Lnext!==o;)if(le.vertLeq(r.Dst,o.Org)){for(;o.Lnext!==r&&(le.edgeGoesLeft(o.Lnext)||le.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=t.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==r&&(le.edgeGoesRight(r.Lprev)||le.edgeSign(r.Dst,r.Org,r.Lprev.Org)>=0);)i=t.connect(r,r.Lprev),r=i.Sym;r=r.Lnext}if(o.Lnext===r)throw"Mono region invalid";for(;o.Lnext.Lnext!==r;)i=t.connect(o.Lnext,o),o=i.Sym;return!0},n.prototype.tessellateInterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)if(e=r.next,r.inside&&!this.tessellateMonoRegion_(t,r))return!1;return!0},n.prototype.discardExterior_=function(t){for(var e,r=t.fHead.next;r!==t.fHead;r=e)e=r.next,r.inside||t.zapFace(r)},n.prototype.setWindingNumber_=function(t,e,r){for(var o,i=t.eHead.next;i!==t.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:r?t.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},n.prototype.outputPolymesh_=function(t,e,r,o){var i,s=0,l=0,c;r>3&&t.mergeConvexFaces(r);for(var u=t.vHead.next;u!==t.vHead;u=u.next)u.n=-1;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(a.n=-1,!!a.inside){i=a.anEdge,c=0;do{var u=i.Org;u.n===-1&&(u.n=l,l++),c++,i=i.Lnext}while(i!==a.anEdge);if(c>r)throw"Face vertex greater that support polygon";a.n=s,++s}this.elementCount=s,e===et.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*r,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var u=t.vHead.next;u!==t.vHead;u=u.next)if(u.n!==-1){var p=u.n*o;this.vertices[p+0]=u.coords[0],this.vertices[p+1]=u.coords[1],o>2&&(this.vertices[p+2]=u.coords[2]),this.vertexIndices[u.n]=u.idx}for(var d=0,a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var u=i.Org;this.elements[d++]=u.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<r;++f)this.elements[d++]=-1;if(e===et.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[d++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<r;++m)this.elements[d++]=-1}}},n.prototype.outputContours_=function(t,e){var r,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){o=r=l.anEdge;do this.vertexCount++,r=r.Lnext;while(r!==o);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*e,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var c=0,u=0,a=0;i=0;for(var l=t.fHead.next;l!==t.fHead;l=l.next)if(!!l.inside){s=0,o=r=l.anEdge;do this.vertices[c++]=r.Org.coords[0],this.vertices[c++]=r.Org.coords[1],e>2&&(this.vertices[c++]=r.Org.coords[2]),this.vertexIndices[u++]=this.vertexIdCallback?this.vertexIdCallback(r):r.Org.idx,s++,r=r.Lnext;while(r!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(t,e){this.mesh===null&&(this.mesh=new pm),t<2&&(t=2),t>3&&(t=3);for(var r=null,o=0;o<e.length;o+=t)r===null?(r=this.mesh.makeEdge(),this.mesh.splice(r,r.Sym)):(this.mesh.splitEdge(r),r=r.Lnext),r.Org.coords[0]=e[o+0],r.Org.coords[1]=e[o+1],t>2?r.Org.coords[2]=e[o+2]:r.Org.coords[2]=0,r.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(r),r.winding=1,r.Sym.winding=-1},n.prototype.tesselate=function(t,e,r,o,i,s){if(t===void 0&&(t=Be.ODD),e===void 0&&(e=et.POLYGONS),s===void 0&&(s=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,i&&(this.normal[0]=i[0],this.normal[1]=i[1],this.normal[2]=i[2]),this.windingRule=t,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),B1.computeInterior(this,s);var l=this.mesh;return e===et.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===et.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,r,o),!0},n}();function zo(n){var t=n.windingRule,e=t===void 0?Be.ODD:t,r=n.elementType,o=r===void 0?et.POLYGONS:r,i=n.polySize,s=i===void 0?3:i,l=n.vertexSize,c=l===void 0?2:l,u=n.normal,a=u===void 0?[0,0,1]:u,p=n.contours,d=p===void 0?[]:p,f=n.strict,m=f===void 0?!0:f,h=n.debug,g=h===void 0?!1:h;if(!d&&m)throw new Error("Contours can't be empty");if(!!d){var b=new D1;n.edgeCreateCallback&&(b.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(b.vertexIdCallback=n.vertexIdCallback);for(var x=0;x<d.length;x++)b.addContour(c||2,d[x]);return b.tesselate(e,o,s,c,a,m),{vertices:b.vertices,vertexIndices:b.vertexIndices,vertexCount:b.vertexCount,elements:b.elements,elementCount:b.elementCount,mesh:g?b.mesh:void 0}}}var TB=Be.ODD,AB=Be.NONZERO,NB=Be.POSITIVE,IB=Be.NEGATIVE,PB=Be.ABS_GEQ_TWO,OB=et.POLYGONS,CB=et.CONNECTED_POLYGONS,MB=et.BOUNDARY_CONTOURS;var kn=class extends jo.BufferGeometry{constructor(e,r=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Be.ODD;this.elementType=et.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=r,this._triangulationOptions=Object.assign({windingRule:Be.ODD,elementType:et.POLYGONS,polySize:3,vertexSize:2,strict:!0},o);let i=this._shape.extractShapePointsToFlatArray([],this._curveSegments),s=this._shape.shapeHoles.map(m=>m.extractShapePointsToFlatArray([],this._curveSegments)),l,c=!0,u=!0,a,p;for(let m=0,h=i.length/2;m<h;m++){let g=m*2,b=i[g+0],x=i[g+1];if(a!==void 0&&b!==a&&(c=!1),p!==void 0&&x!==p&&(u=!1),a=b,p=x,!c&&!u)break}!c&&!u&&(l=zo({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let d=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new jo.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new jo.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new jo.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new jo.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,g=1/0,b=-1/0;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1];_<m&&(m=_),_>h&&(h=_),y<g&&(g=y),y>b&&(b=y)}let x=h-m,S=b-g;for(let w=0,v=d;w<v;w++){let N=w*2,_=l.vertices[N+0],y=l.vertices[N+1],I=(_-m)/x,A=(y-g)/S;this._positionAttribute.setXYZ(w,_,y,0),this._normalAttribute.setXYZ(w,0,0,1),this._uvAttribute.setXY(w,I,A)}for(let w=0,v=f;w<v;w++){let N=w*3,_=l.elements[N+0],y=l.elements[N+1],I=l.elements[N+2];this._indexAttribute.setX(N+0,_),this._indexAttribute.setX(N+1,y),this._indexAttribute.setX(N+2,I)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(l?.elementCount??1)*3)}clone(){let e=new kn(this._shape,this._curveSegments);return e.userData=Pi(this.userData),e}};var Uo=require("three");var Xa=class{constructor(t=256,e=!1){this.capacity=t,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${t}`);let r=t*Xa.eSize;this.buffer=new ArrayBuffer(r);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.normals=new Float32Array(this.buffer,i*o,3*t),i+=3*t,this.uvs=new Float32Array(this.buffer,i*o,2*t)}realloc(t,e=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let r=t*Xa.eSize,o=new ArrayBuffer(r),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*t);s+=3*t;let c=new Float32Array(o,s*i,3*t);s+=3*t;let u=new Float32Array(o,s*i,2*t);l.set(this.positions.slice(0,this.size*3)),c.set(this.normals.slice(0,this.size*3)),u.set(this.uvs.slice(0,this.size*2)),this.buffer=o,this.positions=l,this.normals=c,this.uvs=u,this.capacity=t}get(t=1){let e=this.size+t;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let r=this.size;return this.size=e,r}reserve(t){let e=this.size+t;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},ki=Xa;ki.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var bc=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),Hn=class extends Uo.BufferGeometry{constructor(e,r,o=0,i=12,s=3,l=Be.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=r,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,r/2-1e-12),this._bevelSegments=Math.floor(s));let c=this._shape.extractShapePointsToFlatArray([],i),u=this._shape.shapeHoles.map(y=>{let I=y.extractShapePointsToFlatArray([],i),A=[];for(let P=I.length-1;P>=1;P-=2){let T=I[P-1],C=I[P-0];A.push(T,C)}return A}),a=zo({windingRule:l,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),p=zo({windingRule:Be.ODD,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...u]});if(!a)throw new Error("error generating geometry");let d=a.elementCount;if(p){a.elementCount+=p.elementCount;for(let y=0;y<p.elements.length;y++){let I=p.elements[y],A=y%2===0?a.vertexCount:0;a.elements.push(I+A)}for(let y=0;y<p.vertexIndices.length;y++){let I=p.vertexIndices[y],A=a.vertexCount;a.vertexIndices.push(I+A)}for(let y=0;y<p.vertices.length;y++){let I=p.vertices[y];a.vertices.push(I)}}let f=1/0,m=-1/0,h=1/0,g=-1/0;for(let y=0,I=a.vertexCount;y<I;y++){let A=y*2,P=a.vertices[A+0],T=a.vertices[A+1];P<f&&(f=P),P>m&&(m=P),T<h&&(h=T),T>g&&(g=T)}this._minX=f,this._minY=h,this._width=m-f,this._height=g-h;let b=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new ki(b);let x=[],S=[];for(let y=a.elementCount-1;y>=0;y--){let I=y>=d,A=y*2,P=a.elements[A+0],T=a.elements[A+1],C=P+T,L={start:P,count:T,normals:[],continuous:[],concave:[]},j=P,Y=C-1,te=P+1,ie=this._shape.roundedCurves.length;do{let F=j-P,E=a.vertices[Y*2+0],D=a.vertices[Y*2+1],B=a.vertices[j*2+0],k=a.vertices[j*2+1],$=a.vertices[te*2+0],H=a.vertices[te*2+1],V=B-E,G=k-D,z=Math.sqrt(V*V+G*G);V/=z,G/=z;let J=B-$,oe=k-H,ae=Math.sqrt(J*J+oe*oe);J/=ae,oe/=ae,L.normals[F*2+0]=-oe,L.normals[F*2+1]=J,L.concave[F]=V*oe-G*J>0;let re=a.vertexIndices[j];if(Array.isArray(re))L.continuous[F]=!1;else{let[ee,Q]=this._shape.getCurveIndexFromVertexId(re-1,!0);if(Q>0&&Q<1)L.continuous[F]=!0;else{let K=Q===1?ee+1:ee-1;K=(K+ie)%ie;let me=Q===1?0:1,de=this._shape.roundedCurves[ee].getTangent(Q),be=this._shape.roundedCurves[K].getTangent(me);L.continuous[F]=de.dot(be)>.95}}I&&(L.normals[F*2+0]*=-1,L.normals[F*2+1]*=-1),[Y,j,te]=[j,te,te+1],te>=C&&(te-=T)}while(te!==P+1);let U=[];U.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(P*2,C*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((F,E)=>[E,E]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(P*2,C*2)});for(let F=1;F<=this._bevelSegments;F++){let E=F/this._bevelSegments*Math.PI/2,D=(1-Math.cos(E))*this._bevelSize,B=[],k=[],$=[],H=[],V=0;for(let z=0;z<T;z++){let J=z*2,oe=(z-1+T)%T*2,ae=a.vertices[L.start*2+J+0],re=a.vertices[L.start*2+J+1],ee=-L.normals[oe+0]*D,Q=-L.normals[oe+1]*D,K=-L.normals[J+0]*D,me=-L.normals[J+1]*D;if(L.concave[z]||!L.concave[z]&&I){let de=Math.atan2(Q,ee),be=Math.atan2(me,K);be>de&&(be-=Math.PI*2);let st=be-de;if(L.continuous[z]||I){let Ie=de+st/2,Oe=Math.cos(Ie)*D,Ee=Math.sin(Ie)*D;B[2*V+0]=ae+Oe*(I?-1:1),B[2*V+1]=re+Ee*(I?-1:1),H[V]=z,V++}else{let Ie=Math.max(1,Math.floor(i/4*Math.abs(st)/Math.PI));for(let Oe=0;Oe<=Ie;Oe++){let Ee=de+st*(Oe/Ie),kt=Math.cos(Ee)*D,to=Math.sin(Ee)*D;B[2*V+0]=ae+kt,B[2*V+1]=re+to,H[V]=z,V++}}}else B[2*V+0]=ae+ee,B[2*V+1]=re+Q,H[V]=z,k[z]=V,V++,B[2*V+0]=ae,B[2*V+1]=re,H[V]=z,V++,B[2*V+0]=ae+K,B[2*V+1]=re+me,H[V]=z,$[z]=V,V++}let G=zo({windingRule:Be.POSITIVE,elementType:et.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[B],edgeCreateCallback:z=>{let oe=z.Org.idx,ae=H[oe],re=H[(oe+1)%H.length];z.idx=[ae,re],z.Sym.idx=[re,ae]},vertexIdCallback:z=>{let J=z.Lprev.idx;return[J?J[1]:0,z.idx[0]]}});if(!G)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!G.vertexCount)break;for(let z=0;z<G.vertexIndices.length;z++){let[J,oe]=G.vertexIndices[z];if(J===oe)continue;let ae=oe;oe<J&&(ae+=T);for(let re=J;re<ae;re++){let ee=re%T,Q=(re+1)%T;if(!L.continuous[ee]||!L.continuous[Q]){G.vertexIndices[z]=[J,ee],G.vertexIndices.splice(z+1,0,[Q,oe]),G.vertices.splice((z+1)*2,0,G.vertices[z*2],G.vertices[z*2+1]);break}}}U.push({bevelI:F,angle:E,size:D,boundary:G,reverseMap:H,insetPoints:B})}let W=(F,E,D)=>{let B=0,k=F.boundary.vertexIndices.length;for(;B<k&&D(F.boundary.vertexIndices[E]);)E=(E+1)%k,B++;return B},q=x.length;for(let F=1;F<U.length;F++){let E=U[F-1],D=U[F],B=E.boundary.vertexIndices.length,k=D.boundary.vertexIndices.length;if(!B||!k)break;let $=L.concave.length,H=0,V=bc(H,T);for(;!E.boundary.vertexIndices.filter(V).length||!D.boundary.vertexIndices.filter(V).length;)H++,V=bc(H,T);let G=E.boundary.vertexIndices.findIndex(V),z=D.boundary.vertexIndices.findIndex(V);do G=(G+1)%B;while(V(E.boundary.vertexIndices[G]));do z=(z+1)%k;while(V(D.boundary.vertexIndices[z]));H=(H+1)%T;let J=H,oe=this.buildBevelVert(L,E,(G-1+B)%B),ae=this.buildBevelVert(L,D,(z-1+k)%k),re=oe,ee=ae,Q,K,me=!1;do{V=bc(H,T);let de=W(E,G,V),be=W(D,z,V),st=me;if(me=!1,de&&!be){for(let Ie=0;Ie<de;Ie++)Q=this.buildBevelVert(L,E,(G+Ie)%B,Ie/(de-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q;me=!0}else if(!de&&be)for(let Ie=0;Ie<be;Ie++)K=this.buildBevelVert(L,D,(z+Ie)%k,Ie/(be-1)),x.push(ee.topN,re.topP,K.topP),x.push(re.bottomP,ee.bottomN,K.bottomP),ee=K;else if(de&&be)if(Q=this.buildBevelVert(L,E,G,0),K=this.buildBevelVert(L,D,z,0),st?(x.push(re.topN,K.topP,ee.topN),x.push(re.topN,Q.topP,K.topP),x.push(K.bottomP,re.bottomN,ee.bottomN),x.push(K.bottomP,Q.bottomP,re.bottomN)):(x.push(ee.topN,re.topN,Q.topP),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP)),re=Q,ee=K,de===be)for(let Ie=1;Ie<de;Ie++)Q=this.buildBevelVert(L,E,(G+Ie)%B,Ie/(de-1)),K=this.buildBevelVert(L,D,(z+Ie)%k,Ie/(be-1)),x.push(re.topN,Q.topP,ee.topN),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,re.bottomN,ee.bottomN),x.push(Q.bottomP,ee.bottomN,K.bottomP),re=Q,ee=K;else if(de>be){let Ie=de/be,Oe=0;for(let Ee=1;Ee<de;Ee++)Q=this.buildBevelVert(L,E,(G+Ee)%B,Ee/(de-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q,Ee>(Oe+1)*Ie&&(Oe++,K=this.buildBevelVert(L,D,(z+Oe)%k,Oe/(be-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K)}else{let Ie=be/de,Oe=0;for(let Ee=1;Ee<be;Ee++)K=this.buildBevelVert(L,D,(z+Ee)%k,Ee/(be-1)),x.push(ee.topN,Q.topP,K.topP),x.push(Q.bottomP,ee.bottomN,K.bottomP),ee=K,Ee>(Oe+1)*Ie&&(Oe++,Q=this.buildBevelVert(L,E,(G+Oe)%B,Oe/(de-1)),x.push(re.topN,Q.topP,ee.topN),x.push(Q.bottomP,re.bottomN,ee.bottomN),re=Q)}G=(G+de)%B,z=(z+be)%k,H=(H+1)%$}while(H!==J)}{let F=U[0];for(let E=0,D=F.boundary.vertexCount;E<D;E++){let B=this.buildBevelVert(L,F,E),k=this.buildBevelVert(L,F,(E+1)%D);x.push(k.topP,B.topN,B.bottomN),x.push(k.topP,B.bottomN,k.bottomP)}}if(I){let F=[];for(let E=x.length-1;E>=q+2;E-=3){let D=x[E-2],B=x[E-1],k=x[E-0];F.push(k,B,D)}x.splice(q,x.length-q,...F)}if(I){let F=[];for(let E=U[U.length-1].boundary.vertices.length-1;E>=1;E-=2){let D=U[U.length-1].boundary.vertices[E-1],B=U[U.length-1].boundary.vertices[E-0];F.push(D,B)}S.push(F)}if(!I){let F=U[U.length-1],E=zo({windingRule:U.length>1?Be.POSITIVE:Be.ODD,elementType:et.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...S]});if(!E)throw new Error("Error generating geometry for surface");u.length===0&&Object.assign(this,{capStartIndex:x.length});for(let D=0;D<E.elementCount*3;D+=3){let B=this.buildSurfaceVert(E,E.elements[D+0]),k=this.buildSurfaceVert(E,E.elements[D+1]),$=this.buildSurfaceVert(E,E.elements[D+2]);x.push(B.top,k.top,$.top),x.push($.bottom,k.bottom,B.bottom)}}this.vertexCache={}}this._buffer.shrink();let w=new Uo.BufferAttribute(Uint32Array.from(x),1),v=new Uo.BufferAttribute(this._buffer.positions,3),N=new Uo.BufferAttribute(this._buffer.normals,3),_=new Uo.BufferAttribute(this._buffer.uvs,2);v.needsUpdate=!0,N.needsUpdate=!0,_.needsUpdate=!0,w.needsUpdate=!0,this.setAttribute("position",v),this.setAttribute("normal",N),this.setAttribute("uv",_),this.setIndex(w)}buildSurfaceVert(e,r){let o=r.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[r*2+0],s=e.vertices[r*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,u=this._buffer.get(2),a=u*3,p=u*2,d={top:u+0,bottom:u+1};return this._buffer.positions[a+0]=i,this._buffer.positions[a+1]=s,this._buffer.positions[a+2]=this._depth,this._buffer.normals[a+0]=0,this._buffer.normals[a+1]=0,this._buffer.normals[a+2]=1,this._buffer.uvs[p+0]=l,this._buffer.uvs[p+1]=c,this._buffer.positions[a+3]=i,this._buffer.positions[a+4]=s,this._buffer.positions[a+5]=0,this._buffer.normals[a+3]=0,this._buffer.normals[a+4]=0,this._buffer.normals[a+5]=-1,this._buffer.uvs[p+2]=l,this._buffer.uvs[p+3]=c,this.vertexCache[o]=d,d}buildBevelVert(e,r,o,i=1){let s=`${r.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=r.boundary.vertexIndices[o],u,a,p,d;l!==c?(a=l,u=c,d=!1,p=e.continuous[a]&&e.continuous[u]):(u=l,a=(u-1+e.count)%e.count,d=e.concave[u]&&r.bevelI>0,p=e.continuous[u]||d);let f=Math.cos(r.angle),m=Math.sin(r.angle),h=o*2,g=u*2,b=a*2,x=r.boundary.vertices[h+0],S=r.boundary.vertices[h+1],w=(1-m)*this._bevelSize,v=(x-this._minX)/this._width,N=(S-this._minY)/this._height,_=e.normals[g+0],y=e.normals[g+1],I=e.normals[b+0],A=e.normals[b+1];if(d){let j=I-_,Y=A-y;_=_+j*(1-i),y=y+Y*(1-i);let te=Math.sqrt(_*_+y*y);_/=te,y/=te}let P=this._buffer.get(p?2:4),T=P*3,C=P*2,L={i:o,fi:u,topP:P+0,topN:P+0,bottomP:P+1,bottomN:P+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=_*f,this._buffer.normals[T+1]=y*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=_*f,this._buffer.normals[T+4]=y*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v,p||(P+=2,T+=6,C+=4,L.topP=P+0,L.bottomP=P+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-w,this._buffer.normals[T+0]=I*f,this._buffer.normals[T+1]=A*f,this._buffer.normals[T+2]=m,this._buffer.uvs[C+0]=v,this._buffer.uvs[C+1]=N,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=w,this._buffer.normals[T+3]=I*f,this._buffer.normals[T+4]=A*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[C+2]=N,this._buffer.uvs[C+3]=v),this.vertexCache[s]=L,L}clone(){let e=new Hn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=Pi(this.userData),e}};var ft=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Be.ODD},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??t?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof Te?(s.width!==r||s.height!==o)&&s.applySize(r,o):s=new Te(r,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update(!1));let c=s??new Te(r,o);return{parameters:Object.assign(e,{width:r,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:t,extrudeBevelSize:e,extrudeBevelSegments:r,subdivisions:o,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let l;return t<=0?l=new kn(n.shape,o,{windingRule:s}):l=new Hn(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};var ml=require("three");var ym=require("three");var je=require("three"),gm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),r=e.width/2,o=e.radiusTop??r,i=e.radiusBottom??r;return o===i?(o=r,i=r):o>i?(o=r,i=i*r/o):(o=o*r/i,i=r),{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),radiusTop:o,radiusBottom:i})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,radiusTop:u,radiusBottom:a,cornerRadius:p,cornerSegments:d,hollow:f}=n.parameters,m;return p||f?m=new Hi(u,a,r,o,i,s,l,c*Math.PI/180,p,p,d,f):m=new je.CylinderGeometry(u,a,r,o,i,s,l,c*Math.PI/180),m.scale(1,1,e/t),Object.assign(m,{userData:{...n,type:"CylinderGeometry"}})}};function xo(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function hm(n){return new je.Vector2(n.y,-n.x)}var Hi=class extends je.BufferGeometry{constructor(t,e,r,o,i,s,l,c,u,a,p,d,f=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,e=e!==void 0?e:1,r=r||1,o=Math.floor(o)||8,i=Math.floor(i)||1,s=s!==void 0?s:!1,l=l!==void 0?l:0,c=c!==void 0?c:Math.PI*2,s&&(u=0,a=0);let m=[],h=[],g=[],b=[],x=0,S=r/2,w=new je.Vector3,v=new je.Vector3;f&&t==0&&(t=u),f&&e==0&&(e=a);let N=new je.Vector2(t,S),_=new je.Vector2(e,-S),y=null,I=null,A=null,P=null,T=N.clone().sub(_),C=0,L=0,j=0;d>0&&(C=Math.min(t,e)*(1-d),L=t-C,j=e-C);let Y=N.clone();Y.x-=C;let te=Math.PI-T.angle(),ie=T.angle(),U=Math.tan(ie/2),W=Math.tan(te/2),q=U+W,F=d?q:W,E=d?q:U;if(u=Math.min(u,(t-L)/F,T.length()/q),a=Math.min(a,(e-j)/E,T.length()/q),u>0){let V=u/U;y=N.clone().sub(new je.Vector2(V,u)),d&&(A=y.clone(),A.x-=C-q*u),N.sub(T.clone().setLength(V))}if(a>0){let V=a/W;I=_.clone().sub(new je.Vector2(V,-a)),_.add(T.clone().setLength(V)),d&&(P=I.clone(),P.x-=C-q*a,Y.sub(T.clone().setLength(V)))}T=N.clone().sub(_);let D=T.length()<.5,B=[];for(let V=0;V<=o;V++){let G=[],z=V/o,J=z*c+l,oe=new je.Vector2(Math.sin(J),Math.cos(J));P&&I?(k(G,z,oe,te,a,P,-1,!0),k(G,z,oe,ie,a,I,-1,!1)):I?($(G,oe,I.x,0,-1),k(G,z,oe,ie,a,I,-1,!1)):s||$(G,oe,e,j,-1);let ae=hm(T).normalize();if(xo(ae,oe,w),!D)for(let re=0;re<=i;re++){let ee=re/i,Q=T.clone().multiplyScalar(ee).add(_);xo(Q,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}if(A&&y?(k(G,z,oe,te,u,y,1,!1),k(G,z,oe,ie,u,A,1,!0)):y?(k(G,z,oe,te,u,y,1,!1),$(G,oe,y.x,0,1)):s||$(G,oe,t,L,1),d&&!D){let re=hm(T).multiplyScalar(-1).normalize();xo(re,oe,w);for(let ee=0;ee<=i;ee++){let Q=ee/i,K=T.clone().multiplyScalar(-Q).add(Y);xo(K,oe,v),h.push(v.x,v.y,v.z),g.push(w.x,w.y,w.z),b.push(z,.5+v.y/r),G.push(x++)}}d&&!s&&G.push(G[0]),B.push(G)}for(let V=0;V<B.length-1;V++)for(let G=0;G<B[0].length-1;G++){if(s&&d&&G==i)continue;let z=B[V][G],J=B[V+1][G],oe=B[V+1][G+1],ae=B[V][G+1],re=h[oe*3+0],ee=h[oe*3+2];m.push(z,J,ae),(re!=0||ee!=0)&&m.push(J,oe,ae)}c<Math.PI*2&&(H(-1,B[0],l),H(1,B[B.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new je.Float32BufferAttribute(h,3)),this.setAttribute("normal",new je.Float32BufferAttribute(g,3)),this.setAttribute("uv",new je.Float32BufferAttribute(b,2));function k(V,G,z,J,oe,ae,re,ee){for(let Q=0;Q<p+1;Q++){let K=Q/p,me=re<0?K:1-K;ee&&(me-=1),me*=J;let de=new je.Vector2(Math.sin(me),Math.cos(me)*re),be=de.clone().multiplyScalar(oe).add(ae);xo(be,z,v),h.push(v.x,v.y,v.z),xo(de,z,w),g.push(w.x,w.y,w.z),b.push(G,.5+v.y/r),V.push(x++)}}function $(V,G,z,J,oe){let ae=new je.Vector3,re=new je.Vector2,ee=[z,J];oe<0&&ee.reverse();for(let Q of ee)re.set(Q,S*oe),xo(re,G,ae),h.push(ae.x,ae.y,ae.z),g.push(0,oe,0),b.push(.5,.5),V.push(x++)}function H(V,G,z){let J=new je.Vector2(Math.sin(z),Math.cos(z)),oe=new je.Vector2(-Math.cos(z),Math.sin(z)),ae=new je.Vector3,re=V<0?(K,me,de)=>m.push(K,me,de):(K,me,de)=>m.push(K,de,me),ee=new je.Vector2((t+e+L+j)/4,0);xo(ee,J,ae),h.push(ae.x,ae.y,ae.z),g.push(oe.x,0,oe.y),b.push(.5,.5);let Q=x++;for(let K of G){let me=h.slice(K*3,K*3+3);h.push(...me),g.push(oe.x,0,oe.y);let de=b.slice(K*2,K*2+2);b.push(...de),x++}for(let K=Q+1;K<x-1;K++)re(Q,K,K+1);re(Q,x-1,Q+1)}}};var xm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,depth:e,height:r,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:u,cornerRadiusBottom:a,cornerSegments:p}=n.parameters,d;return u>0||a>0||c<360?d=new Hi(0,t/2,r,o,i,s,l,c*Math.PI/180,u,a,p,0,!0):d=new ym.ConeGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Ct=require("three"),bm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,widthSegments:o,heightSegments:i,depthSegments:s,cornerRadius:l,cornerSegments:c}=n.parameters,u;return l==0?u=new Ct.BoxGeometry(t,e,r,o,i,s):u=new Sc(t,e,r,o,i,s,l,c),Object.assign(u,{userData:{...n,type:"CubeGeometry"}})}},vc=Math.PI/2,Sc=class extends Ct.BufferGeometry{constructor(t=1,e=1,r=1,o=1,i=1,s=1,l=0,c=4){super(),this.type="BoxGeometry";let u=this;o=Math.floor(o),i=Math.floor(i),s=Math.floor(s),c=Math.floor(c),l=Math.min(l,t/2,e/2,r/2);let a=[],p=[],d=[],f=[],m=0,h=0;g("z","y","x",-1,-1,r,e,t,s,i,0),g("z","y","x",1,-1,r,e,-t,s,i,1),g("x","z","y",1,1,t,r,e,o,s,2),g("x","z","y",1,-1,t,r,-e,o,s,3),g("x","y","z",1,-1,t,e,r,o,i,4),g("x","y","z",-1,-1,t,e,-r,o,i,5),l>0&&(b("z","y","x",-1,-1,1,r,e,t,s,0),b("z","y","x",1,-1,-1,r,e,t,s,1),b("z","y","x",-1,1,-1,r,e,t,s,1),b("z","y","x",1,1,1,r,e,t,s,0),b("x","y","z",-1,-1,-1,t,e,r,o,0),b("x","y","z",1,-1,1,t,e,r,o,1),b("x","y","z",-1,1,1,t,e,r,o,0),b("x","y","z",1,1,-1,t,e,r,o,1),b("y","x","z",-1,-1,1,e,t,r,i,0),b("y","x","z",1,-1,-1,e,t,r,i,1),b("y","x","z",1,1,1,e,t,r,i,1),b("y","x","z",-1,1,-1,e,t,r,i,0),x(1,1,1),x(-1,1,1),x(1,-1,1),x(-1,-1,1),x(1,1,-1),x(-1,1,-1),x(1,-1,-1),x(-1,-1,-1)),this.setIndex(a),this.setAttribute("position",new Ct.Float32BufferAttribute(p,3)),this.setAttribute("normal",new Ct.Float32BufferAttribute(d,3)),this.setAttribute("uv",new Ct.Float32BufferAttribute(f,2));function g(S,w,v,N,_,y,I,A,P,T,C){let L=(y-2*l)/P,j=(I-2*l)/T,Y=y/2-l,te=I/2-l,ie=A/2,U=P+1,W=T+1,q=0,F=0,E=new Ct.Vector3;for(let D=0;D<W;D++){let B=D*j-te;for(let k=0;k<U;k++){let $=k*L-Y;E[S]=$*N,E[w]=B*_,E[v]=ie,p.push(E.x,E.y,E.z),E[S]=0,E[w]=0,E[v]=A>0?1:-1,d.push(E.x,E.y,E.z),f.push(k/P),f.push(1-D/T),q+=1}}for(let D=0;D<T;D++)for(let B=0;B<P;B++){let k=m+B+U*D,$=m+B+U*(D+1),H=m+(B+1)+U*(D+1),V=m+(B+1)+U*D;a.push(k,$,V),a.push($,H,V),F+=6}u.addGroup(h,F,C),h+=F,m+=q}function b(S,w,v,N,_,y,I,A,P,T,C){let L=(I-2*l)/T,j=I/2-l,Y=A/2-l,te=P/2,ie=T+1,U=0,W=0,q=new Ct.Vector3,F=new Ct.Vector3;for(let E=0;E<c+1;E++){let D=E/c*vc,B=Math.sin(D)*l,k=(1-Math.cos(D))*l,$=Math.sin(D),H=Math.cos(D);q[w]=(Y+B)*_,q[v]=(te-k)*y,F[S]=0,F[w]=$*Math.sign(q[w]),F[v]=H*Math.sign(q[v]);for(let V=0;V<ie;V++){let G=V*L-j;q[S]=G*N,p.push(q.x,q.y,q.z),d.push(F.x,F.y,F.z),f.push(V/T),f.push(0),U+=1}}for(let E=0;E<c;E++)for(let D=0;D<T;D++){let B=m+D+ie*E,k=m+D+ie*(E+1),$=m+(D+1)+ie*(E+1),H=m+(D+1)+ie*E;a.push(B,k,H),a.push(k,$,H),W+=6}u.addGroup(h,W,C),h+=W,m+=U}function x(S,w,v){let N=new Ct.Vector3,_=new Ct.Vector3(t/2,e/2,r/2);_.subScalar(l);let y=[],I=S*w*v>0?(P,T,C)=>a.push(P,T,C):(P,T,C)=>a.push(P,C,T);for(let P=0;P<=c;P++){let T=[],C=vc*(1-P/c),L=Math.cos(C),j=Math.sin(C),Y=0;for(let te=0;te<=P;te++){let ie=Math.cos(Y),U=Math.sin(Y);N.x=L*ie,N.y=j,N.z=L*U;let W=_.clone().addScaledVector(N,l);p.push(S*W.x,w*W.y,v*W.z),d.push(S*N.x,w*N.y,v*N.z),f.push(0,0),T.push(m++),Y+=vc/P}y.push(T)}let A=y.length-1;for(let P=0;P<A;P++){let T=y[P],C=y[P+1],L=T.length-1;I(T[0],C[1],C[0]);for(let j=1;j<=L;j++)I(T[j-1],T[j],C[j]),I(T[j],C[j+1],C[j])}}}};var qe=require("three"),bo=class extends qe.BufferGeometry{constructor(t=[],e=[],r="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],u=[];a(),p(),this.setAttribute("position",new qe.Float32BufferAttribute(l,3)),this.setAttribute("normal",new qe.Float32BufferAttribute(u,3)),this.setAttribute("uv",new qe.Float32BufferAttribute(c,2));return;function a(){i=Math.min(1-1e-5,i),i==0&&(s=0);let f={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[r],m=new qe.Vector3,h=m.clone(),g=new qe.Triangle,b=i*o,x=o-b,S=s+1,w=new qe.Vector3,v=(U,W)=>w.subVectors(U,W).normalize(),N=(U,W)=>Array(U).fill(void 0).map(W),_=N(t.length/3,(U,W)=>new qe.Vector3().fromArray(t,W*3).setLength(o)),y=[],I=1e6;for(let U=0;U<_.length;U++){let W=_[U],q=[],F,E,D,B=1e10,k=-1;for(;(k=e.indexOf(U,k+1))!=-1;){let G=k-k%3;F=e[G+(k+1)%3],E=e[G+(k+2)%3],D=W.distanceToSquared(_[F]),B=Math.min(B,D),q.push([F,E,D])}B+=1e-6;let $=[],H=0,V=q.length;for(let G=0;G<V;G++){[F,E,D]=q[H];let z=y[F]?.includes(U)==!0;D<=B&&$.push(F+ +z*I),H=q.findIndex(J=>J[0]==E)}y.push($)}let A=[];{let U=0,W=0,q,F,E=f==3;for(let D=0;D<=s;D++){q=D*(D+1)/2,F=(D+1)*(D+2)/2;for(let B=0;B<s-D;B++)[U,W]=[q+B+D+2,F+B+D+3],A.push(q,F,...E?[W,q]:[U,F],W,U),[q,F]=[U,W];A.push(q,F,q+s+2)}}let P=m.clone(),T=m.clone(),C=m.clone(),L=m.clone(),j=m.clone(),Y=[],te=N(_.length,()=>N(f,()=>m.clone()));for(let U=0;U<_.length;U++){m.copy(_[U]).normalize(),P.copy(m).multiplyScalar(x);let W=y[U];for(let $=0;$<W.length;$++){let H=W[$],V=W[($+1)%f];g.setFromPointsAndIndices(_,U,H%I,V%I),g.b.sub(g.a).setLength(1e10).add(g.a),g.c.sub(g.a).setLength(1e10).add(g.a),g.closestPointToPoint(P,te[U][$])}let q=[],F=[],E=[],D=new qe.Vector3;s==0&&[...te[U]].reduce(($,H)=>$.add(H),D).multiplyScalar(1/f);for(let $=0;$<f;$++){let H=[],V=($-1+f)%f,G=te[U][V],z=te[U][$];m.copy(G).sub(P),h.copy(z).sub(P);let J=P.angleTo(m),oe=m.angleTo(h),ae=Math.cos(J)*b;s==0?T.copy(D):T.copy(P).setLength(x+ae),F.push(ae);let re=[T,G,z];for(let ee=0;ee<2;ee++){let Q=re[ee],K=re[ee+1];L.subVectors(Q,P),j.subVectors(K,P),C.crossVectors(L,j).normalize();for(let me=0;me<S;me++){let de=[J,oe][ee]*me/S;m.copy(L).applyAxisAngle(C,de).add(P),q.push(m.clone()),ee&&(v(m,P),H.push([me==0?Q:m.clone(),w.clone()]))}ee&&(v(K,P),H.push([K,w.clone()]))}E.push(H)}Y.push(E);let B=2*S,k=2;for(let $=0;$<f;$++){let H=B*$,V=B*(($+1)%f),G=[q[H]];for(let J=1;J<S;J++){L=q[H+J],j=q[V+J],G.push(L);for(let oe=1,ae=J-k+1;oe<=ae;oe++)m.lerpVectors(L,j,oe/(ae+1)),m.sub(P).setLength(F[$]).add(P),G.push(m.clone());G.push(j)}for(let J=0;J<S;J++)G.push(q[J+S+H]);G.push(q[V+S]);let z=A.map(J=>G[J]);l.push(...z.map(J=>[J.x,J.y,J.z]).flat()),u.push(...z.map(J=>(v(J,P),[w.x,w.y,w.z])).flat())}}let ie=[];for(let U=0;U<y.length;U++)for(let W=0;W<f;W++){let q=y[U][W];if(q<I){let F=y[q].findIndex(B=>B%I==U),E=Y[U][W],D=Y[q][F];for(let B=0;B<S;B++){let k=E[B],$=D[S-B],H=E[B+1],V=D[S-(B+1)];[k,$,H,H,$,V].forEach(G=>{l.push(G[0].x,G[0].y,G[0].z),u.push(G[1].x,G[1].y,G[1].z)})}ie.push(E[0][0],D[S][0],E[S][0],D[0][0])}}for(;ie.length;){let U,W,q,F;[U,W]=ie.splice(0,2);let E=[U];for(;U!=W;)E.push(W),q=ie.indexOf(W),F=q%2,W=ie.splice(q-F,2)[1-F];w.subVectors(E[0],E[1]).cross(m.subVectors(E[0],E[2])).normalize();let D=w.dot(E[0])<0;D&&w.negate();for(let B=1;B<=E.length-2;B++)[E[B+ +D],E[B+1-+D],E[0]].forEach(k=>{l.push(k.x,k.y,k.z),u.push(w.x,w.y,w.z)})}}function p(){let d=new qe.Vector3;for(let _=0;_<l.length;_+=3){d.x=l[_+0],d.y=l[_+1],d.z=l[_+2];let y=v(d)/2/Math.PI+.5,I=N(d)/Math.PI+.5;c.push(y,1-I)}let f=new qe.Vector3,m=new qe.Vector3,h=new qe.Vector3,g=new qe.Vector3,b=new qe.Vector2,x=new qe.Vector2,S=new qe.Vector2,w=(_,y,I,A)=>{A<0&&_.x===1&&(c[y]=_.x-1),I.x===0&&I.z===0&&(c[y]=A/2/Math.PI+.5)};for(let _=0,y=0;_<l.length;_+=9,y+=6){f.set(l[_+0],l[_+1],l[_+2]),m.set(l[_+3],l[_+4],l[_+5]),h.set(l[_+6],l[_+7],l[_+8]),b.set(c[y+0],c[y+1]),x.set(c[y+2],c[y+3]),S.set(c[y+4],c[y+5]),g.copy(f).add(m).add(h).divideScalar(3);let I=v(g);w(b,y+0,f,I),w(x,y+2,m,I),w(S,y+4,h,I)}for(let _=0;_<c.length;_+=6){let y=c[_+0],I=c[_+2],A=c[_+4],P=Math.max(y,I,A),T=Math.min(y,I,A);P>.9&&T<.1&&(y<.2&&(c[_+0]+=1),I<.2&&(c[_+2]+=1),A<.2&&(c[_+4]+=1))}function v(_){return Math.atan2(_.z,-_.x)}function N(_){return Math.atan2(-_.y,Math.sqrt(_.x*_.x+_.z*_.z))}}}static fromJSON(t){return new bo(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var vm=require("three"),Sm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new Wi(t*.5,i,s):new vm.DodecahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},Wi=class extends bo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=1/o,s=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-i,-o,0,-i,o,0,i,-o,0,i,o,-i,-o,0,-i,o,0,i,-o,0,i,o,0,-o,0,-i,o,0,-i,-o,0,i,o,0,i],l=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9],c="DodecahedronGeometry";super(s,l,c,t,e,r),this.type=c}static fromJSON(t){return new Wi(t.radius,t.corner,t.cornerSides)}};var _c=Math.PI*2;function wc({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function G1(n,t){let e=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),r=Math.cos(n),o=Math.sin(n),i=Math.cos(n+t),s=Math.sin(n+t);return[{x:r-o*e,y:o+r*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function wm(n,t,e,r){let o=n*r-t*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+t*r));return o*Math.acos(i)}function R1(n,t,e,r,o,i,s,l,c,u){let a=Math.pow(o,2),p=Math.pow(i,2),d=Math.pow(s,2),f=Math.pow(l,2),m=a*p-a*f-p*d;m<0&&(m=0),m/=a*f+p*d,m=Math.sqrt(m)*(c===u?-1:1);let h=m*o/i*l,g=m*-i/o*s,b=h+(n+e)/2,x=g+(t+r)/2,S=(s-h)/o,w=(l-g)/i,v=(-s-h)/o,N=(-l-g)/i,_=wm(1,0,S,w),y=wm(S,w,v,N);return!u&&y>0&&(y-=_c),u&&y<0&&(y+=_c),{centerx:b,centery:x,ang1:_,ang2:y}}function _m({px:n,py:t,cx:e,cy:r,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let u=(n-e)/2,a=(t-r)/2;if(u===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let p=Math.pow(u,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);p>1&&(o*=Math.sqrt(p),i*=Math.sqrt(p));let d=R1(n,t,e,r,o,i,u,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,b=Math.abs(m)/(_c/4);Math.abs(1-b)<1e-7&&(b=1);let x=Math.max(Math.ceil(b),1);m/=x;for(let S=0;S<x;S++)c.push(G1(f,m)),f+=m;return c.map(S=>{let{x:w,y:v}=wc(S[0],o,i,h,g),{x:N,y:_}=wc(S[1],o,i,h,g),{x:y,y:I}=wc(S[2],o,i,h,g);return{x1:w,y1:v,x2:N,y2:_,x:y,y:I}})}var qn=require("three"),Am=Math.PI*2,Nm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof Te?n.shape:new Te,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,angle:o,innerRadius:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,u=n.shape,a=t*.5,p=e*.5,d=V1(u,a,p,o*Math.PI/180,r,i);u.isClosed=!0,u.update();let f=ft.create({shape:u,parameters:{subdivisions:d,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function V1(n,t,e,r,o,i){if(r>=Am)return o>30||o%4===0?(z1(n,t,e,i),Math.round(o/4)):Tm(n,r,o,t,e,i);let s={x:0,y:e},l=r+Math.PI*.5,c={x:Math.cos(l)*t,y:Math.sin(l)*e},u=_m({px:s.x,py:s.y,cx:c.x,cy:c.y,rx:t,ry:e,largeArcFlag:r>Math.PI,sweepFlag:!0});return o>30||o%u.length===0?F1(n,s.x,s.y,u,o,t,e,i):Tm(n,r,o,t,e,i)}function F1(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(Wn(t,e));for(let u=0,a=r.length;u<a;u++){let p=r[u],d=n.points[u],f=Wn(p.x,p.y);d.controls[1].position.set(p.x1,p.y1),f.controls[0].position.set(p.x2,p.y2),n.addPoint(f)}return l>0?Im(n,i,s,l):n.addPoint(Wn(0,0)),c}function Tm(n,t,e,r,o,i){let s=-t/e;for(let l=0;l<=e;l++){let c=s*l,u=Math.sin(c)*r,a=Math.cos(c)*o;n.addPoint(Wn(u,a))}return t<Am?i>0?Im(n,r,o,i):n.addPoint(Wn(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Pm(n,r,o,i)),1}function z1(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(Ka(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(Ka(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(Ka(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(Ka(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Pm(n,t,e,r)}function Wn(n,t){return new nr(qn.MathUtils.generateUUID(),new qn.Vector2(n,t))}function Ka(n,t,e,r,o,i){let s=Wn(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function Im(n,t,e,r){Om(n,t,e,r).forEach(i=>n.addPoint(i))}function Pm(n,t,e,r){let o=Om(n,t,e,r),i=new Te;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Om(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new qn.Vector2(o/t,i/e),l=n.points.map(c=>{let u=c.clone();return u.uuid=qn.MathUtils.generateUUID(),u}).reverse();return l.forEach(c=>{c.position.multiply(s);let u=c.controls[0].position.clone().multiply(s),a=c.controls[1].position.clone().multiply(s);c.controls[0].position.copy(a),c.controls[1].position.copy(u)}),l}var Kr=require("three"),Cm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??r),i=Math.abs(e.depth??r),s=Math.abs(Math.min(r,i))/2;return{parameters:Object.assign(e,{width:r,height:o,depth:i,radius:s,segments:Math.round(e.segments),pathSegments:Math.round(e.pathSegments),cornerSegments:Math.round(e.cornerSegments)})}}static build(n){let{width:t,height:e,depth:r,radius:o,revolutions:i,segments:s,pathRadius:l,pathType:c,pathSegments:u,cornerRadius:a,cornerSegments:p}=n.parameters,d=new qi(!1,t,e,r,o,i,s,l,c,u,a,p);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},qi=class extends Kr.BufferGeometry{constructor(t=!0,e=1,r=1,o=1,i=1,s=1,l=1,c=1,u=1,a=1,p=1,d=1){super();let f=t&&s===1;f&&(d=0),p>100&&(p=100);let m=()=>new Kr.Vector3,h=new Kr.Vector3,g=m(),b=m(),x=m(),S,w,v,N,_,y,I,A,P=m(),T=m(),C=m(),L=m(),j=m(),Y=m(),te=m(),ie=m(),U=r-2*c+.001,W=U/s,q=Math.ceil(l*s),F=q+1,E=U/q,D=-U/2,B=a+1,k=2*Math.PI/a,$=Math.PI/2/d,H=.01,V=Math.min((1-p/100)*c,c-H),G=c-V,z=0,J=2,oe=d*J+J,ae=B*oe/J,re=ae+B*F,ee=B*(F+oe),[Q,K,me]=[3,3,2].map($e=>Array(ee*$e).fill(0)),de=[],be=i-c;function st($e,Gt){let pr=Math.PI/2;y=Gt*E,A=2*Math.PI*(y%W)/W+pr,y+=D,I=Math.sin(A)*be,_=Math.cos(A)*be,t?$e.set(_,I,y):$e.set(_,y,I)}st(h,-1e-10),st(g,0),P.copy(h),st(h,1);let Ie=h.distanceTo(g),Oe=G+V,Ee=Ie*q+2*Oe,kt=V,to=Ee-Oe;for(let $e=0;$e<=q;$e++){st(b,$e),ie.subVectors(b,P).normalize(),P.copy(b),Y.copy(b).setComponent(+t+1,0).normalize(),te.crossVectors(ie,Y).normalize();let Gt=$e===0,pr=$e===q,hg=Gt?3*Math.PI/2:$,gg=Gt?kt:to,yg=Gt?B:re,xg=Gt?0:ee-B,bg=ie.clone().multiplyScalar(Gt?-G:G).add(b),vg=ie.clone().multiplyScalar(Gt?-1:1).normalize();for(let zr=0;zr<B;zr++){let uu=zr*k;if(T.addVectors(h.copy(Y).multiplyScalar(c*Math.cos(uu)),g.copy(te).multiplyScalar(c*Math.sin(uu))),C.copy(T).normalize(),Gt||pr){f||(z=xg+zr,[0,1,2].forEach(At=>{Q[z*3+At]=bg.getComponent(At),K[z*3+At]=vg.getComponent(At)}),me[z*2]=+pr,me[z*2+1]=zr/a),g.copy(C).multiplyScalar(V),x.addVectors(b,g);for(let At=0;At<d;At++){let Al=At*$+hg;L.addVectors(h.copy(ie).multiplyScalar(G*Math.sin(Al)),g.copy(C).multiplyScalar(G*Math.cos(Al))),j.copy(L).normalize(),g.addVectors(x,L),L.normalize(),z=yg+At*B+zr,[0,1,2].forEach(Ms=>{Q[z*3+Ms]=g.getComponent(Ms),K[z*3+Ms]=j.getComponent(Ms)});let Sg=+Gt+Math.sin(Al);me[z*2]=(gg+G*Sg)/Ee,me[z*2+1]=zr/a}}g.addVectors(b,T),z=ae+$e*B+zr,[0,1,2].forEach(At=>{Q[z*3+At]=g.getComponent(At),K[z*3+At]=C.getComponent(At)}),me[z*2]=(Oe+$e*Ie)/Ee,me[z*2+1]=zr/a}}let Dt=F+2*d+J,Ko=1,[Os,Cs]=f?[Ko,Ko+F-1]:[0,Dt-1];for(let $e=Os;$e<=Cs-1;$e++){let Gt=f&&$e===Cs-1;for(let pr=0;pr<B-1;pr++)S=$e*B+pr,w=S+1,v=(Gt?pr:S)+B,N=(Gt?pr+1:w)+B,$e===0?de.push(w,N,v):$e===Dt-2?de.push(S,w,v):de.push(S,w,v,w,N,v)}this.setIndex(de),this.setAttribute("position",new Kr.Float32BufferAttribute(Q,3)),this.setAttribute("normal",new Kr.Float32BufferAttribute(K,3)),this.setAttribute("uv",new Kr.Float32BufferAttribute(me,2))}};var Mm=require("three");var Lm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new $i(t*.5,i,s):new Mm.IcosahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},$i=class extends bo{constructor(t=1,e=.2,r=4){let o=(1+Math.sqrt(5))/2,i=[-1,o,0,1,o,0,-1,-o,0,1,-o,0,0,-1,o,0,1,o,0,-1,-o,0,1,-o,o,0,-1,o,0,1,-o,0,-1,-o,0,1],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1],l="IcosahedronGeometry";super(i,s,l,t,e,r),this.type=l}static fromJSON(t){return new $i(t.radius,t.corner,t.cornerSides)}};var Za=require("three"),Em=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){(n.parameters?.points??[]).forEach(r=>{Array.isArray(r)&&(r.x=r[0],r.y=r[1])});let e=Object.assign({},t?.parameters??{width:100,segments:64,verticalSegments:64,points:[{x:0,y:-50,id:0},{x:50,y:-50,id:1},{x:50,y:50,id:2},{x:0,y:50,id:3}]},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{points:t,segments:e,verticalSegments:r}=n.parameters,o=new Za.Shape;o.moveTo(t[0].x,t[0].y),o.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let i=new Za.LatheGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var Or=require("three");var Zr=require("three");var se=require("three"),Pr=new se.Matrix4,Tc=new se.Object3D,Qa=new se.Vector3,vo=class extends se.EventDispatcher{constructor(){super(),this.uuid=se.MathUtils.generateUUID(),this.name="",this.type="Geometry",this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.elementsNeedUpdate=!1,this.verticesNeedUpdate=!1,this.uvsNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.lineDistancesNeedUpdate=!1,this.groupsNeedUpdate=!1}applyMatrix4(t){let e=new se.Matrix3().getNormalMatrix(t);for(let r=0,o=this.vertices.length;r<o;r++)this.vertices[r].applyMatrix4(t);for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];i.normal.applyMatrix3(e).normalize();for(let s=0,l=i.vertexNormals.length;s<l;s++)i.vertexNormals[s].applyMatrix3(e).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return Pr.makeRotationX(t),this.applyMatrix4(Pr),this}rotateY(t){return Pr.makeRotationY(t),this.applyMatrix4(Pr),this}rotateZ(t){return Pr.makeRotationZ(t),this.applyMatrix4(Pr),this}translate(t,e,r){return Pr.makeTranslation(t,e,r),this.applyMatrix4(Pr),this}scale(t,e,r){return Pr.makeScale(t,e,r),this.applyMatrix4(Pr),this}lookAt(t){return Tc.lookAt(t),Tc.updateMatrix(),this.applyMatrix4(Tc.matrix),this}fromBufferGeometry(t){let e=this,r=t.index!==null?t.index:void 0,o=t.attributes;if(o.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let i=o.position,s=o.normal,l=o.color,c=o.uv,u=o.uv2;u!==void 0&&(this.faceVertexUvs[1]=[]);for(let d=0;d<i.count;d++)e.vertices.push(new se.Vector3().fromBufferAttribute(i,d)),l!==void 0&&e.colors.push(new se.Color().fromBufferAttribute(l,d));function a(d,f,m,h){let g=l===void 0?[]:[e.colors[d].clone(),e.colors[f].clone(),e.colors[m].clone()],b=s===void 0?[]:[new se.Vector3().fromBufferAttribute(s,d),new se.Vector3().fromBufferAttribute(s,f),new se.Vector3().fromBufferAttribute(s,m)],x=new $n(d,f,m,b,g,h);e.faces.push(x),c!==void 0&&e.faceVertexUvs[0].push([new se.Vector2().fromBufferAttribute(c,d),new se.Vector2().fromBufferAttribute(c,f),new se.Vector2().fromBufferAttribute(c,m)]),u!==void 0&&e.faceVertexUvs[1].push([new se.Vector2().fromBufferAttribute(u,d),new se.Vector2().fromBufferAttribute(u,f),new se.Vector2().fromBufferAttribute(u,m)])}let p=t.groups;if(p.length>0)for(let d=0;d<p.length;d++){let f=p[d],m=f.start,h=f.count;for(let g=m,b=m+h;g<b;g+=3)r!==void 0?a(r.getX(g),r.getX(g+1),r.getX(g+2),f.materialIndex):a(g,g+1,g+2,f.materialIndex)}else if(r!==void 0)for(let d=0;d<r.count;d+=3)a(r.getX(d),r.getX(d+1),r.getX(d+2));else for(let d=0;d<i.count;d+=3)a(d,d+1,d+2);return this.computeFaceNormals(),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Qa).negate(),this.translate(Qa.x,Qa.y,Qa.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,e=this.boundingSphere.radius,r=e===0?1:1/e,o=new se.Matrix4;return o.set(r,0,0,-r*t.x,0,r,0,-r*t.y,0,0,r,-r*t.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let t=new se.Vector3,e=new se.Vector3;for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];t.subVectors(c,l),e.subVectors(s,l),t.cross(e),t.normalize(),i.normal.copy(t)}}computeVertexNormals(t=!0){let e=new Array(this.vertices.length);for(let r=0,o=this.vertices.length;r<o;r++)e[r]=new se.Vector3;if(t){let r=new se.Vector3,o=new se.Vector3;for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=this.vertices[l.a],u=this.vertices[l.b],a=this.vertices[l.c];r.subVectors(a,u),o.subVectors(c,u),r.cross(o),e[l.a].add(r),e[l.b].add(r),e[l.c].add(r)}}else{this.computeFaceNormals();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let r=0,o=this.vertices.length;r<o;r++)e[r].normalize();for(let r=0,o=this.faces.length;r<o;r++){let i=this.faces[r],s=i.vertexNormals;s.length===3?(s[0].copy(e[i.a]),s[1].copy(e[i.b]),s[2].copy(e[i.c])):(s[0]=e[i.a].clone(),s[1]=e[i.b].clone(),s[2]=e[i.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,e=this.faces.length;t<e;t++){let r=this.faces[t],o=r.vertexNormals;o.length===3?(o[0].copy(r.normal),o[1].copy(r.normal),o[2].copy(r.normal)):(o[0]=r.normal.clone(),o[1]=r.normal.clone(),o[2]=r.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.__originalFaceNormal?o.__originalFaceNormal.copy(o.normal):o.__originalFaceNormal=o.normal.clone(),o.__originalVertexNormals||(o.__originalVertexNormals=[]);for(let i=0,s=o.vertexNormals.length;i<s;i++)o.__originalVertexNormals[i]?o.__originalVertexNormals[i].copy(o.vertexNormals[i]):o.__originalVertexNormals[i]=o.vertexNormals[i].clone()}let t=new vo;t.faces=this.faces;for(let e=0,r=this.morphTargets.length;e<r;e++){if(!this.morphNormals[e]){this.morphNormals[e]={},this.morphNormals[e].faceNormals=[],this.morphNormals[e].vertexNormals=[];let i=this.morphNormals[e].faceNormals,s=this.morphNormals[e].vertexNormals;for(let l=0,c=this.faces.length;l<c;l++){let u=new se.Vector3,a={a:new se.Vector3,b:new se.Vector3,c:new se.Vector3};i.push(u),s.push(a)}}let o=this.morphNormals[e];t.vertices=this.morphTargets[e].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let i=0,s=this.faces.length;i<s;i++){let l=this.faces[i],c=o.faceNormals[i],u=o.vertexNormals[i];c.copy(l.normal),u.a.copy(l.vertexNormals[0]),u.b.copy(l.vertexNormals[1]),u.c.copy(l.vertexNormals[2])}}for(let e=0,r=this.faces.length;e<r;e++){let o=this.faces[e];o.normal=o.__originalFaceNormal,o.vertexNormals=o.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new se.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new se.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,e,r=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let o,i=this.vertices.length,s=this.vertices,l=t.vertices,c=this.faces,u=t.faces,a=this.colors,p=t.colors;e!==void 0&&(o=new se.Matrix3().getNormalMatrix(e));for(let d=0,f=l.length;d<f;d++){let h=l[d].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let d=0,f=p.length;d<f;d++)a.push(p[d].clone());for(let d=0,f=u.length;d<f;d++){let m=u[d],h,g,b=m.vertexNormals,x=m.vertexColors,S=new $n(m.a+i,m.b+i,m.c+i);S.normal.copy(m.normal),o!==void 0&&S.normal.applyMatrix3(o).normalize();for(let w=0,v=b.length;w<v;w++)h=b[w].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),S.vertexNormals.push(h);S.color.copy(m.color);for(let w=0,v=x.length;w<v;w++)g=x[w],S.vertexColors.push(g.clone());S.materialIndex=m.materialIndex+r,c.push(S)}for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let b=m[h],x=[];for(let S=0,w=b.length;S<w;S++)x.push(b[S].clone());this.faceVertexUvs[d].push(x)}}}mergeMesh(t){if(!(t&&t.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",t);return}t.matrixAutoUpdate&&t.updateMatrix(),this.merge(t.geometry,t.matrix)}mergeVertices(t=4){let e={},r=[],o=[],i=Math.pow(10,t);for(let c=0,u=this.vertices.length;c<u;c++){let a=this.vertices[c],p=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i);e[p]===void 0?(e[p]=c,r.push(this.vertices[c]),o[c]=r.length-1):o[c]=o[e[p]]}let s=[];for(let c=0,u=this.faces.length;c<u;c++){let a=this.faces[c];a.a=o[a.a],a.b=o[a.b],a.c=o[a.c];let p=[a.a,a.b,a.c];for(let d=0;d<3;d++)if(p[d]===p[(d+1)%3]){s.push(c);break}}for(let c=s.length-1;c>=0;c--){let u=s[c];this.faces.splice(u,1);for(let a=0,p=this.faceVertexUvs.length;a<p;a++)this.faceVertexUvs[a].splice(u,1)}let l=this.vertices.length-r.length;return this.vertices=r,l}setFromPoints(t){this.vertices=[];for(let e=0,r=t.length;e<r;e++){let o=t[e];this.vertices.push(new se.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,e=t.length;for(let c=0;c<e;c++)t[c]._id=c;function r(c,u){return c.materialIndex-u.materialIndex}t.sort(r);let o=this.faceVertexUvs[0],i=this.faceVertexUvs[1],s,l;o&&o.length===e&&(s=[]),i&&i.length===e&&(l=[]);for(let c=0;c<e;c++){let u=t[c]._id;s&&s.push(o[u]),l&&l.push(i[u])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}toJSON(){let t={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(t.uuid=this.uuid,t.type=this.type,this.name!==""&&(t.name=this.name),this.parameters!==void 0){let m=this.parameters;for(let h in m)m[h]!==void 0&&(t[h]=m[h]);return t}let e=[];for(let m=0;m<this.vertices.length;m++){let h=this.vertices[m];e.push(h.x,h.y,h.z)}let r=[],o=[],i={},s=[],l={},c=[],u={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],g=!0,b=!1,x=this.faceVertexUvs[0][m]!==void 0,S=h.normal.length()>0,w=h.vertexNormals.length>0,v=h.color.r!==1||h.color.g!==1||h.color.b!==1,N=h.vertexColors.length>0,_=0;if(_=a(_,0,0),_=a(_,1,g),_=a(_,2,b),_=a(_,3,x),_=a(_,4,S),_=a(_,5,w),_=a(_,6,v),_=a(_,7,N),r.push(_),r.push(h.a,h.b,h.c),r.push(h.materialIndex),x){let y=this.faceVertexUvs[0][m];r.push(f(y[0]),f(y[1]),f(y[2]))}if(S&&r.push(p(h.normal)),w){let y=h.vertexNormals;r.push(p(y[0]),p(y[1]),p(y[2]))}if(v&&r.push(d(h.color)),N){let y=h.vertexColors;r.push(d(y[0]),d(y[1]),d(y[2]))}}function a(m,h,g){return g?m|1<<h:m&~(1<<h)}function p(m){let h=m.x.toString()+m.y.toString()+m.z.toString();return i[h]!==void 0||(i[h]=o.length/3,o.push(m.x,m.y,m.z)),i[h]}function d(m){let h=m.r.toString()+m.g.toString()+m.b.toString();return l[h]!==void 0||(l[h]=s.length,s.push(m.getHex())),l[h]}function f(m){let h=m.x.toString()+m.y.toString();return u[h]!==void 0||(u[h]=c.length/2,c.push(m.x,m.y)),u[h]}return t.data={},t.data.vertices=e,t.data.normals=o,s.length>0&&(t.data.colors=s),c.length>0&&(t.data.uvs=[c]),t.data.faces=r,t}clone(){return new vo().copy(this)}copy(t){this.vertices=[],this.colors=[],this.faces=[],this.faceVertexUvs=[[]],this.morphTargets=[],this.morphNormals=[],this.skinWeights=[],this.skinIndices=[],this.lineDistances=[],this.boundingBox=null,this.boundingSphere=null,this.name=t.name;let e=t.vertices;for(let d=0,f=e.length;d<f;d++)this.vertices.push(e[d].clone());let r=t.colors;for(let d=0,f=r.length;d<f;d++)this.colors.push(r[d].clone());let o=t.faces;for(let d=0,f=o.length;d<f;d++)this.faces.push(o[d].clone());for(let d=0,f=t.faceVertexUvs.length;d<f;d++){let m=t.faceVertexUvs[d];this.faceVertexUvs[d]===void 0&&(this.faceVertexUvs[d]=[]);for(let h=0,g=m.length;h<g;h++){let b=m[h],x=[];for(let S=0,w=b.length;S<w;S++){let v=b[S];x.push(v.clone())}this.faceVertexUvs[d].push(x)}}let i=t.morphTargets;for(let d=0,f=i.length;d<f;d++){let m={};if(m.name=i[d].name,i[d].vertices!==void 0){m.vertices=[];for(let h=0,g=i[d].vertices.length;h<g;h++)m.vertices.push(i[d].vertices[h].clone())}if(i[d].normals!==void 0){m.normals=[];for(let h=0,g=i[d].normals.length;h<g;h++)m.normals.push(i[d].normals[h].clone())}this.morphTargets.push(m)}let s=t.morphNormals;for(let d=0,f=s.length;d<f;d++){let m={};if(s[d].vertexNormals!==void 0){m.vertexNormals=[];for(let h=0,g=s[d].vertexNormals.length;h<g;h++){let b=s[d].vertexNormals[h],x={};x.a=b.a.clone(),x.b=b.b.clone(),x.c=b.c.clone(),m.vertexNormals.push(x)}}if(s[d].faceNormals!==void 0){m.faceNormals=[];for(let h=0,g=s[d].faceNormals.length;h<g;h++)m.faceNormals.push(s[d].faceNormals[h].clone())}this.morphNormals.push(m)}let l=t.skinWeights;for(let d=0,f=l.length;d<f;d++)this.skinWeights.push(l[d].clone());let c=t.skinIndices;for(let d=0,f=c.length;d<f;d++)this.skinIndices.push(c[d].clone());let u=t.lineDistances;for(let d=0,f=u.length;d<f;d++)this.lineDistances.push(u[d]);let a=t.boundingBox;a!==null&&(this.boundingBox=a.clone());let p=t.boundingSphere;return p!==null&&(this.boundingSphere=p.clone()),this.elementsNeedUpdate=t.elementsNeedUpdate,this.verticesNeedUpdate=t.verticesNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.lineDistancesNeedUpdate=t.lineDistancesNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,this}toBufferGeometry(){let t=new Ac().fromGeometry(this),e=new se.BufferGeometry,r=new Float32Array(t.vertices.length*3);if(e.setAttribute("position",new se.BufferAttribute(r,3).copyVector3sArray(t.vertices)),t.normals.length>0){let o=new Float32Array(t.normals.length*3);e.setAttribute("normal",new se.BufferAttribute(o,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let o=new Float32Array(t.colors.length*3);e.setAttribute("color",new se.BufferAttribute(o,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let o=new Float32Array(t.uvs.length*2);e.setAttribute("uv",new se.BufferAttribute(o,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let o=new Float32Array(t.uvs2.length*2);e.setAttribute("uv2",new se.BufferAttribute(o,2).copyVector2sArray(t.uvs2))}e.groups=t.groups;for(let o in t.morphTargets){let i=[],s=t.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let u=s[l],a=new se.Float32BufferAttribute(u.data.length*3,3);a.name=u.name,i.push(a.copyVector3sArray(u.data))}e.morphAttributes[o]=i}if(t.skinIndices.length>0){let o=new se.Float32BufferAttribute(t.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let o=new se.Float32BufferAttribute(t.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone()),e}computeTangents(){console.error("THREE.Geometry: .computeTangents() has been removed.")}computeLineDistances(){console.error("THREE.Geometry: .computeLineDistances() has been removed. Use THREE.Line.computeLineDistances() instead.")}applyMatrix(t){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(t)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(t){let e=new se.BufferGeometry,r=t.geometry;if(t.isPoints||t.isLine){let o=new se.Float32BufferAttribute(r.vertices.length*3,3),i=new se.Float32BufferAttribute(r.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(r.vertices)),e.setAttribute("color",i.copyColorsArray(r.colors)),r.lineDistances&&r.lineDistances.length===r.vertices.length){let s=new se.Float32BufferAttribute(r.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(r.lineDistances))}r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.boundingBox.clone())}else t.isMesh&&(e=r.toBufferGeometry());return e}};vo.prototype.isGeometry=!0;var Ac=class{constructor(){this.vertices=[],this.normals=[],this.colors=[],this.uvs=[],this.uvs2=[],this.groups=[],this.morphTargets={},this.skinWeights=[],this.skinIndices=[],this.boundingBox=null,this.boundingSphere=null,this.verticesNeedUpdate=!1,this.normalsNeedUpdate=!1,this.colorsNeedUpdate=!1,this.uvsNeedUpdate=!1,this.groupsNeedUpdate=!1}computeGroups(t){let e=[],r,o,i,s=t.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.materialIndex,r!==void 0&&(r.count=o*3-r.start,e.push(r)),r={start:o*3,materialIndex:i})}r!==void 0&&(r.count=o*3-r.start,e.push(r)),this.groups=e}fromGeometry(t){let e=t.faces,r=t.vertices,o=t.faceVertexUvs,i=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,l=t.morphTargets,c=l.length,u;if(c>0){u=[];for(let b=0;b<c;b++)u[b]={name:l[b].name,data:[]};this.morphTargets.position=u}let a=t.morphNormals,p=a.length,d;if(p>0){d=[];for(let b=0;b<p;b++)d[b]={name:a[b].name,data:[]};this.morphTargets.normal=d}let f=t.skinIndices,m=t.skinWeights,h=f.length===r.length,g=m.length===r.length;r.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let b=0;b<e.length;b++){let x=e[b];this.vertices.push(r[x.a],r[x.b],r[x.c]);let S=x.vertexNormals;if(S.length===3)this.normals.push(S[0],S[1],S[2]);else{let v=x.normal;this.normals.push(v,v,v)}let w=x.vertexColors;if(w.length===3)this.colors.push(w[0],w[1],w[2]);else{let v=x.color;this.colors.push(v,v,v)}if(i===!0){let v=o[0][b];v!==void 0?this.uvs.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",b),this.uvs.push(new se.Vector2,new se.Vector2,new se.Vector2))}if(s===!0){let v=o[1][b];v!==void 0?this.uvs2.push(v[0],v[1],v[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",b),this.uvs2.push(new se.Vector2,new se.Vector2,new se.Vector2))}for(let v=0;v<c;v++){let N=l[v].vertices;u[v].data.push(N[x.a],N[x.b],N[x.c])}for(let v=0;v<p;v++){let N=a[v].vertexNormals[b];d[v].data.push(N.a,N.b,N.c)}h&&this.skinIndices.push(f[x.a],f[x.b],f[x.c]),g&&this.skinWeights.push(m[x.a],m[x.b],m[x.c])}return this.computeGroups(t),this.verticesNeedUpdate=t.verticesNeedUpdate,this.normalsNeedUpdate=t.normalsNeedUpdate,this.colorsNeedUpdate=t.colorsNeedUpdate,this.uvsNeedUpdate=t.uvsNeedUpdate,this.groupsNeedUpdate=t.groupsNeedUpdate,t.boundingSphere!==null&&(this.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(this.boundingBox=t.boundingBox.clone()),this}},$n=class{constructor(t,e,r,o,i,s=0){this.a=t,this.b=e,this.c=r,this.normal=o&&o.isVector3?o:new se.Vector3,this.vertexNormals=Array.isArray(o)?o:[],this.color=i&&i.isColor?i:new se.Color,this.vertexColors=Array.isArray(i)?i:[],this.materialIndex=s}clone(){return new this.constructor().copy(this)}copy(t){this.a=t.a,this.b=t.b,this.c=t.c,this.normal.copy(t.normal),this.color.copy(t.color),this.materialIndex=t.materialIndex;for(let e=0,r=t.vertexNormals.length;e<r;e++)this.vertexNormals[e]=t.vertexNormals[e].clone();for(let e=0,r=t.vertexColors.length;e<r;e++)this.vertexColors[e]=t.vertexColors[e].clone();return this}};var j1=["a","b","c"];function U1(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Nc(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function Ic(n,t,e,r,o,i){let s=Math.min(n,t),l=Math.max(n,t),c=s+"_"+l,u;if(r.has(c))u=r.get(c);else{let a=e[s],p=e[l];u={a,b:p,newEdge:null,faces:[]},r.set(c,u)}u.faces.push(o),i[n].edges.push(u),i[t].edges.push(u)}function k1(n,t,e,r){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=t.length;o<i;o++)s=t[o],Ic(s.a,s.b,n,r,s,e),Ic(s.b,s.c,n,r,s,e),Ic(s.c,s.a,n,r,s,e)}function Ja(n,t,e,r,o){n.push(new $n(t,e,r,void 0,void 0,o))}function Yn(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function el(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var tl=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Zr.BufferGeometry?t=new vo().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let e=new Zr.Vector3,r,o,i,s,l,c=t.vertices,u=t.faces,a=t.faceVertexUvs[0],p=a!==void 0&&a.length>0,d=[],f=new Map;k1(c,u,d,f);let m=[],h,g,b,x,S,w,v;for(let H of Array.from(f.keys())){for(g=f.get(H),b=new Zr.Vector3,S=3/8,w=1/8,v=g.faces.length,v!=2&&(S=.5,w=0,v!=1),b.addVectors(g.a,g.b).multiplyScalar(S),e.set(0,0,0),s=0;s<v;s++){for(x=g.faces[s],l=0;l<3&&(h=c[U1(x,j1[l])],!(h!==g.a&&h!==g.b));l++);h&&e.add(h)}e.multiplyScalar(w),b.add(e),g.newEdge=m.length,m.push(b)}let N,_,y,I,A,P,T,C=[];for(o=0,i=c.length;o<i;o++){for(P=c[o],A=d[o].edges,r=A.length,r==3?N=3/16:r>3&&(N=3/(8*r)),_=1-r*Number(N),y=N,r<=2&&(r==2?(_=3/4,y=1/8):r==1||r==0),T=P.clone().multiplyScalar(_),e.set(0,0,0),s=0;s<r;s++)I=A[s],h=I.a!==P?I.a:I.b,e.add(h);e.multiplyScalar(Number(y)),T.add(e),C.push(T)}let L=C.concat(m),j=C.length,Y,te,ie,U=[],W=[],q,F,E,D,B=new Zr.Vector2,k=new Zr.Vector2,$=new Zr.Vector2;for(o=0,i=u.length;o<i;o++)x=u[o],Y=Number(Nc(x.a,x.b,f).newEdge)+j,te=Number(Nc(x.b,x.c,f).newEdge)+j,ie=Number(Nc(x.c,x.a,f).newEdge)+j,Ja(U,Y,te,ie,x.materialIndex),Ja(U,x.a,Y,ie,x.materialIndex),Ja(U,x.b,te,Y,x.materialIndex),Ja(U,x.c,ie,te,x.materialIndex),p&&(q=a[o],F=q[0],E=q[1],D=q[2],B.set(Yn(F.x,E.x),Yn(F.y,E.y)),k.set(Yn(E.x,D.x),Yn(E.y,D.y)),$.set(Yn(F.x,D.x),Yn(F.y,D.y)),el(W,B,k,$),el(W,F,B,$),el(W,E,k,B),el(W,D,$,k));t.vertices=L,t.faces=U,p&&(t.faceVertexUvs[0]=W)}};var tt=new Or.Vector3,Bm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new Or.BufferGeometry().copy(new Or.BoxGeometry(100,100,100)),r;t===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(tt),r={width:tt.x,height:tt.y,depth:tt.z,subdivisions:0}):r=t.parameters;let o={...r,...n.parameters};return{parameters:{width:Math.abs(o.width),height:Math.abs(o.height),depth:Math.abs(o.depth),subdivisions:Math.abs(o.subdivisions)},geometry:e}}static build(n){let{width:t,height:e,depth:r,subdivisions:o}=n.parameters,i=n.geometry??new Or.BufferGeometry().copy(new Or.BoxGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(tt)):tt.set(s.width,s.height,s.depth),(t!==tt.x||e!==tt.y||r!==tt.z)&&i.scale(tt.x===0?1:t/tt.x,tt.y===0?1:e/tt.y,tt.z===0?1:r/tt.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new tl(o).modify(l).toBufferGeometry()):(l!==void 0&&(i=l),l=void 0,i.getAttribute("normal")===void 0&&i.computeVertexNormals()),l!==void 0&&Object.assign(i,{originalGeometry:l}),delete n.geometry,Object.assign(i,{userData:{...n,type:"NonParametricGeometry"}})}static loadFromUrl(n,t,e){new Or.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(tt);let s=100/tt.x;Object.assign(i.parameters,{width:100,height:tt.y*s,depth:tt.z*s}),t(this.build(i))})}};var Dm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},n.parameters);return{shape:n.shape&&n.shape instanceof Te?n.shape:new Te,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,spikes:r,cornerRadius:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,u=t*.5,a=e*.5,p=0,d=0,f=2*Math.PI/r;for(let h=0;h<r;h++){let g=f*h,b=p+Math.sin(g)*u,x=d+Math.cos(g)*a;c.addPoint(c.createPoint(b,x))}c.isClosed=!0;for(let h=0,g=c.points.length;h<g;h++)c.points[h].roundness=o;c.roundness=o,c.update();let m=ft.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var Se=require("three"),Gm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,heightSegments:i,openEnded:s,cornerRadius:l,cornerSegments:c}=n.parameters,u=new Oc(t*.5,e,o,i,s,l,c);return u.scale(1,1,r/t),Object.assign(u,{userData:{...n,type:"PyramidGeometry"}})}};function Yi(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Pc(n,t,e,r,o,i){let s=t.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),r===o){let u=s.add(l).normalize();i.copy(n).addScaledVector(u,r/Math.sin(c/2))}else{let u=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(u)),i.addScaledVector(l,r/Math.sin(u))}}function H1(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Oc=class extends Se.BufferGeometry{constructor(t=.5,e=1,r=4,o=1,i=!1,s=0,l=4){super(),r=Math.floor(Math.max(3,r)),o=Math.floor(o),l=Math.floor(l);let c=[],u=[],a=[],p=[],d=0,f=e/2,m=Math.PI/r,h=t*Math.cos(Math.PI/r),g=2*Math.PI/r,b=(r-2)*Math.PI/r,x=Math.PI-b,S=new Se.Vector3(0,-f,0),w=new Se.Vector3(0,f,0),v=new Se.Vector2(t,-f),N=new Se.Vector2(h,-f),_=new Se.Vector2(0,w.y).sub(N),y=new Se.Vector2(0,w.y).sub(v),I=new Se.Vector2(_.y,-_.x).normalize(),A=new Se.Vector2(y.y,-y.x).normalize(),T=t*Math.cos(Math.PI/r)*Math.tan((Math.PI-_.angle())/2)-1e-8;s=Math.min(s,T);let C;{let W=new Se.Vector3(I.x,I.y,0),q=new Se.Vector3(Math.cos(g)*W.x,W.y,Math.sin(g)*W.x);C=W.angleTo(q)}let L=s/Math.tan((Math.PI-_.angle())/2),j=s/Math.tan((Math.PI-C)/2),Y=new Se.Vector3;if(!i){u.push(S.x,S.y,S.z),a.push(0,-1,0),p.push(0,0);let W=d++,q=[],F=v.clone(),E=L/Math.cos(Math.PI/r);F.x-=E;for(let D=0;D<r;D++){let B=D/r*Math.PI*2+m,k=new Se.Vector2(Math.sin(B),Math.cos(B));Yi(F,k,Y),u.push(Y.x,Y.y,Y.z),a.push(0,-1,0),p.push(0,0),q.push(d++)}for(let D=0;D<q.length;D++)c.push(q[D],W,q[(D+1)%q.length])}let te=[];{let W=new Se.Vector3,q=new Se.Vector3,F=new Se.Vector3,E=new Se.Vector3,D=new Se.Vector3,B=new Se.Vector3;for(let k=0;k<r;k++){let $=k/r*Math.PI*2+m,H=(k+.5)/r*Math.PI*2+m,V=(k+1)/r*Math.PI*2+m,G=new Se.Vector2(Math.sin($),Math.cos($)),z=new Se.Vector2(Math.sin(H),Math.cos(H)),J=new Se.Vector2(Math.sin(V),Math.cos(V));Yi(v,G,q),Yi(v,J,F),Yi(I,z,W),Pc(w,q,F,j,j,E),u.push(E.x,E.y,E.z),Pc(q,w,F,j,L,D),u.push(D.x,D.y,D.z),Pc(F,q,w,L,j,B),u.push(B.x,B.y,B.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),a.push(W.x,W.y,W.z),p.push(0,0),p.push(0,0),p.push(0,0);let oe=d++,ae=d++,re=d++;if(c.push(oe,ae,re),s>0){{let K=q.clone().add(F).multiplyScalar(.5),me=w.clone().sub(K).normalize(),be=S.clone().sub(K).normalize().add(me).normalize().multiplyScalar(-1),st=B.clone().sub(D);ie(K,st,be,_.angle())}let ee,Q;{let K=new Se.Vector3;Yi(A,J,K);let me=B.clone().add(E).multiplyScalar(.5);me=H1(me,F,w);let de=B.clone().sub(E);[ee,Q]=ie(me,de,K,C,E.y)}{let K=ee,me=K.clone().setY(0).normalize(),de=new Se.Vector3(0,-1,0),be=me.clone().cross(de);U(K,me,de,be)}te.concat(Q);{let K=_.angle(),me=Math.PI-K,de=w.clone();de.y-=s/Math.sin(K-Math.PI/2);let be=new Se.Vector3,st=[];for(let Oe=0;Oe<l;Oe++){let Ee=[],kt=Math.PI/2-me*Oe/l,to=Math.cos(kt),Dt=Math.sin(kt),Ko=H;for(let Os=0;Os<=Oe;Os++){let Cs=Math.cos(Ko),$e=Math.sin(Ko);W.x=to*$e,W.y=Dt,W.z=to*Cs,be.copy(de).addScaledVector(W,s),u.push(be.x,be.y,be.z),a.push(W.x,W.y,W.z),p.push(0,0),Ee.push(d++),Ko+=Math.PI*2/Oe/r}st.push(Ee)}Q.reverse(),st.push(Q);let Ie=st.length-1;for(let Oe=0;Oe<Ie;Oe++){let Ee=st[Oe],kt=st[Oe+1],to=Ee.length-1;c.push(kt[1],Ee[0],kt[0]);for(let Dt=1;Dt<=to;Dt++)c.push(Ee[Dt],Ee[Dt-1],kt[Dt]),c.push(kt[Dt+1],Ee[Dt],kt[Dt])}}}}}this.setIndex(c),this.setAttribute("position",new Se.Float32BufferAttribute(u,3)),this.setAttribute("normal",new Se.Float32BufferAttribute(a,3)),this.setAttribute("uv",new Se.Float32BufferAttribute(p,2));function ie(W,q,F,E,D){let B=-E/2,k=(Math.PI-E)/2,$=q.clone().normalize().cross(F);W.addScaledVector(F,-s/Math.sin(k));let H=new Se.Vector3,V=new Se.Vector3,G=1,z=d,J=[];for(let oe=0;oe<=l;oe++){let ae=B+oe/l*E;V.set(0,0,0),V.addScaledVector($,Math.sin(ae)),V.addScaledVector(F,Math.cos(ae));for(let re=0;re<=G;re++){let ee=re/G-.5;if(H.copy(W),H.addScaledVector(q,ee),H.addScaledVector(V,s),D!=null){let Q=Math.max(0,H.y-D);H.addScaledVector(q,-Q/q.y)}u.push(H.x,H.y,H.z),a.push(V.x,V.y,V.z),p.push(0,0),re===0&&J.push(d),d++}}for(let oe=0;oe<l;oe++)for(let ae=0;ae<G;ae++){let re=z+ae+(G+1)*oe,ee=re+(G+1),Q=ee+1,K=re+1;c.push(re,ee,K),c.push(ee,Q,K)}return[W.clone().addScaledVector(q,.5),J]}function U(W,q,F,E){let D=Math.PI/2,B=y.angle()-D,k=[],$=new Se.Vector3,H=new Se.Vector3;for(let G=0;G<=l;G++){let z=[],J=G/l;for(let oe=0;oe<=G;oe++){let re=((G?oe/G:0)-.5)*x,ee=Math.cos(re),Q=Math.sin(re),K=Math.atan(Math.tan(B)*ee),me=(D+K)*J,de=Math.cos(me),be=Math.sin(me);$.set(0,0,0),$.addScaledVector(q,be*ee),$.addScaledVector(F,de),$.addScaledVector(E,be*Q),H.copy(W).addScaledVector($,s),u.push(H.x,H.y,H.z),a.push($.x,$.y,$.z),p.push(0,0),z.push(d++)}k.push(z)}let V=k.length-1;for(let G=0;G<V;G++){let z=k[G],J=k[G+1],oe=z.length-1;c.push(z[0],J[1],J[0]);for(let ae=1;ae<=oe;ae++)c.push(z[ae-1],z[ae],J[ae]),c.push(z[ae],J[ae+1],J[ae])}}}};var Rm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),r=Object.assign(t?.ui??{enabledIndieCorners:!1},n.ui);return{shape:n.shape&&n.shape instanceof Te?n.shape:new Te,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)}),ui:r}}static build(n){let t=n.shape,{width:e,height:r,cornerRadius:o,cornerType:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,u={x:e*.5,y:r*.5},a={x:-u.x,y:-u.y},p={x:u.x,y:u.y};function d(w,v,N){return v>e&&N>r?Math.min(w*e/v,w*r/N):v>e?w*e/v:N>r?w*r/N:w}let f=[];f[0]=o[0]===0?0:d(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:d(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:d(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:d(o[3],o[3]+o[0],o[3]+o[2]);let m=a.x,h=p.x,g=p.y,b=a.y;t.addPoint(t.createPoint(m,g)),t.addPoint(t.createPoint(h,g)),t.addPoint(t.createPoint(h,b)),t.addPoint(t.createPoint(m,b)),t.isClosed=!0;let x=!0;for(let w=0,v=t.points.length;w<v;w++)t.points[w].roundness=f[w],w>0&&f[w]!==f[w-1]&&(x=!1);x&&(t.roundness=f[0]),t.useCubicForRoundedCorners=i!==1,t.update();let S=ft.create({shape:t,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(S,{userData:{...n,type:"RectangleGeometry"}})}};var Vm=require("three"),Fm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t=100,height:e=t,depth:r=t,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:u}=n.parameters,a=new Vm.SphereGeometry(.5*t,o,i,s,l,c,u);return a.scale(1,e/t,r/t),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};var zm=require("three"),jm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:0})}}static build(n){let{width:t=100,height:e=t,widthSegments:r=8,heightSegments:o=8}=n.parameters,i=new zm.PlaneGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var So=require("three"),Um=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width)})}}static build(n){let{width:t,height:e,depth:r,angle:o,cornerRadius:i,cornerSegments:s}=n.parameters,l=new Cc(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Cc=class extends So.BufferGeometry{constructor(t=1,e=1,r=1,o=90,i=10,s=24){super(),this.type="BackdropGeometry";let l=[],c=[],u=[],a=.001;i==0&&(s=1),s=Math.max(1,Math.floor(s)),i=Math.min(i,100),o=Math.min(180-a,o),o*=Math.PI/180;let p=[],d=Math.PI/2,f=(H=0,V=0,G=0)=>new So.Vector3(H,V,G),m=f(),h=f(),[g,b,x]=[e/2,t/2,r/2],S=-b,w=+b,[v,N,_]=[f(S,-g,+x),f(S,-g,-x),f(S,+g,-x)],y=(H,V=!1)=>Math.sin(H-Math.PI/(1+ +V)),I=(H,V=!1)=>Math.cos(H-Math.PI/(1+ +V));_.y=Math.sin(o)*e-g;let A=Math.cos(o)*e-x,P=v.z-a;o<=d?(_.z=Math.min(A,P),_.z==P&&(_.y-=(A-P)/Math.tan(d-o))):N.z=Math.min(N.z-A-x,v.z-a),m.subVectors(v,N),h.subVectors(_,N);let T=Math.min(m.length(),h.length())*i/100,C=T*Math.tan(o/2),L=T/Math.cos(o/2),j=m.clone().normalize().add(h.normalize()).setLength(L).add(N);m.set(0,y(o,!0),I(o,!0)),p.push([_,m.clone()]);let Y=(Math.PI-o)/s;for(let H=0;H<=s;H++){let V=d+o+H*Y;m.set(0,Math.sin(V)*C,Math.cos(V)*C),m.add(j),h.set(0,y(V),I(V)),p.push([m.clone(),h.clone()])}p.push([v,f(0,1,0)]);let te=Math.sin(Y/2)*C*2,ie=p.length-1,U=p[0][0].distanceTo(p[1][0]),W=p[ie-1][0].distanceTo(p[ie][0]),q=U+te*s+W;p[0].push(1);for(let H=0;H<=s;H++)p[H+1].push(1-(U+H*te)/q);p[ie].push(0);let[F,E,D]=p[0],B,k,$;for(let H=1;H<p.length;H++)[B,k,$]=p[H],l.push(S,F.y,F.z,S,B.y,B.z,w,F.y,F.z,w,F.y,F.z,S,B.y,B.z,w,B.y,B.z),c.push(0,E.y,E.z,0,k.y,k.z,0,E.y,E.z,0,E.y,E.z,0,k.y,k.z,0,k.y,k.z),u.push(0,D,0,$,1,D,1,D,0,$,1,$),[F,E,D]=[B,k,$];this.setAttribute("position",new So.Float32BufferAttribute(l,3)),this.setAttribute("normal",new So.Float32BufferAttribute(c,3)),this.setAttribute("uv",new So.Float32BufferAttribute(u,2))}};var km=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters);return{shape:n.shape&&n.shape instanceof Te?n.shape:new Te,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e,innerRadiusPercent:r,spikes:o,cornerRadius:i,angle:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:u}=n.parameters,a=n.shape,p=t*.5,d=e*.5,f=0,m=0,h=s*Math.PI/360/o,g=Math.PI/2*3*-1,b=p*r/100,x=d*r/100;if(o===3&&r===50){h=2*Math.PI/o;for(let w=0;w<o;w++){let v=h*w,N=f+Math.sin(v)*p,_=m+Math.cos(v)*d;a.addPoint(a.createPoint(N,_))}}else for(let w=0;w<o;w++){let v=f+Math.cos(g)*p,N=m+Math.sin(g)*d;a.addPoint(a.createPoint(v,N)),g+=h,v=f+Math.cos(g)*b,N=m+Math.sin(g)*x,w<=o,a.addPoint(a.createPoint(v,N)),g+=h}a.isClosed=!0;for(let w=0,v=a.points.length;w<v;w++)a.points[w].roundness=i;a.roundness=i,a.update();let S=ft.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:u}});return Object.assign(S,{userData:{...n,type:"StarGeometry"}})}};var Hm=require("three"),Wm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t,height:e}=n.parameters,r=new Hm.PlaneGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var qm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),r=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.round(Math.abs(e.depth??e.width*.25));return{parameters:Object.assign(e,{width:r,height:o,depth:i})}}static build(n){let{width:t,height:e,depth:r,radialSegments:o,tubularSegments:i,arc:s,cornerRadius:l,cornerSegments:c}=n.parameters,u=W1(t,e,r,t*.5,s,i,0,0,o,l,c);return u.scale(1,e/t,1),Object.assign(u,{userData:{...n,type:"TorusGeometry"}})}};function W1(n,t,e,r,o,i,s,l,c,u,a){return[t,e]=[e,t],s=t/2,o/=2*Math.PI,o==1&&(u=0),new qi(!0,n,t,e,r,o,i,s,l,c,u,a)}var $m=require("three"),Ym=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},n.parameters);return{parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width),depth:Math.abs(e.depth??e.width),tube:e.tube??e.width*.125})}}static build(n){let{width:t,tube:e,tubularSegments:r,radialSegments:o,p:i,q:s}=n.parameters,l=t*.5;l!==e&&(l-=e);let c=new $m.TorusKnotGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Xm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},n.parameters);return{shape:n.shape&&n.shape instanceof Te?n.shape:new Te,parameters:Object.assign(e,{width:Math.abs(e.width),height:Math.abs(e.height??e.width*(e.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(e.depth??0)})}}static build(n){let{width:t=100,height:e,cornerRadius:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:l}=n.parameters,c=n.shape,u=t*.5,a=e*.5;l?(c.addPoint(c.createPoint(-u,a)),c.addPoint(c.createPoint(u,-a)),c.addPoint(c.createPoint(-u,-a))):(c.addPoint(c.createPoint(0,a)),c.addPoint(c.createPoint(u,-a)),c.addPoint(c.createPoint(-u,-a))),c.isClosed=!0;for(let d=0,f=c.points.length;d<f;d++)c.points[d].roundness=r;c.roundness=r,c.update();let p=ft.create({shape:c,parameters:{roundness:r,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(p,{userData:{...n,type:"TriangleGeometry"}})}};var ko=require("three"),Zm=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Km(){let n=new ko.BufferGeometry;return n.setAttribute("position",new ko.BufferAttribute(new Float32Array([]),3)),n.setIndex(new ko.BufferAttribute(new Uint16Array([]),1)),n}var q1=12;var Xn=class extends ko.BufferGeometry{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=Km();Object.entries(o.attributes).forEach(([i,s])=>{this.setAttribute(i,s)}),this.setIndex(o.index),this.updateFont(e.font,r),this.update(e)}async updateFont(e,r){let o=r.getFont(e);o&&(this.font=o,await o.loadingPromise)}async update(e){let r=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!r||!r.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:o,height:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c,text:u,textTransform:a,subdivisions:p}=e;await r.loadingPromise;let d=a===2?u.toUpperCase():a===3?u.toLowerCase():u,f=$1(e,r,d),{shapes:m,charWidths:h,charCoords:g}=await r.generateShapes(f,e),b=o*.5,x=i*.5,S=m.map(N=>new Te().fromShape(N));this.vectorShapes=S;let w=S.map(N=>ft.create({shape:N,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Be.NONZERO:Be.ODD,subdivisions:p??q1}})),v=w.length?(0,Zm.mergeBufferGeometries)(w):Km();v.translate(-b,x,0),this.dispose(),this.wrappedText=f,this.charCoords=g,this.charWidths=h,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([N,_])=>{this.setAttribute(N,_)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let e=Ro(new ko.BufferGeometry,Xn.prototype);return e.copy(this),e}copy(e){return Object.entries(e.attributes).forEach(([r,o])=>{this.setAttribute(r,o)}),this.setIndex(e.index),this.userData={parameters:{...e.userData.parameters},type:"TextGeometry"},this}async setText(e){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:e})}get text(){return this.userData.parameters.text??""}};function $1(n,t,e){e=e??n.text;let r=[""],o="";for(let i of e)o+=i,i===" "||i===`
|
|
2
2
|
`?(r[r.length-1]+=o,o="",i===`
|
|
3
|
-
`&&r.push("")):t.getTextWidth(r[r.length-1]+o,n)>n.width&&(r[r.length-1].length&&r.push(""),t.getTextWidth(r[r.length-1]+o,n)>n.width&&(o.length===1?(r[r.length-1]+=o,o=""):(r[r.length-1]+=o.slice(0,-1),o=o[o.length-1],r.push(""))));return r[r.length-1]+=o,r}var $e=require("three");var _S,Na=new Promise(n=>{_S=n});var Xf=require("three");function Ia(n,t){return TS(n)}function TS(n){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let r=_e.createFromState(n.shape,n.width,n.height);t.shape=r}else n.type==="NonParametricGeometry"&&(n.data.groups&&n.data.groups.forEach(r=>r.materialIndex=Math.max(r.materialIndex??0,0)),t.geometry=new Xf.BufferGeometryLoader().parse(n));let e;try{e=Ni(t)}catch(r){console.error(r)}if(!e){let r=_e.createFromState(qo.defaultData(),100,100);t.shape=r,e=Ni(t)}return e}var pe;Na.then(n=>{pe=n});var Yf=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),Kf=new Uint32Array([0,1,2,3]),Qf=new Uint8Array([4]),qt=class{static build(n,t,e,r,o){let i,s,l,c=n?.phongAngle??t?.phongAngle??35;if(r===!1&&(c=-1),n.positionWASM!==void 0){e&&e!==0&&(pe.free_bvh(e),pe.free_subdivision_surface(e));try{i=qt.allocate(n,o)}catch(p){console.error(p,n),i=qt.allocate({positionWASM:Yf,indexWASM:Kf,verticesPerFaceWASM:Qf},o)}pe.set_destination_refinement_level(i,0),s=qt.buildLevel(i,!0,c)}else i=e,n.phongAngle!==void 0&&(s=qt.buildLevel(i,!0,c));return n.subdivisions!==void 0&&(pe.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?l=qt.buildLevel(i,!1,c):l=null),{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(n,t){n.widthSegments>16&&(n.widthSegments=16),n.heightSegments>16&&(n.heightSegments=16),n.depthSegments>16&&(n.depthSegments=16),n.radialSegments>16&&(n.radialSegments=16),n.type==="DodecahedronGeometry"&&(n.detail=0);let e=n.shape!==void 0?t.geometry:Ia(n),r,o,i,s;({positions:r,triIndices:s}=Zl(e.getAttribute("position"),e.getIndex()));let l;if(n.type==="CylinderGeometry"&&n.cornerRadius===0&&n.hollow===0&&n.openEnded===!1){let c=n.radialSegments*n.heightSegments*3*2,p=c+n.radialSegments*3;l=[c,p]}return{indices:o,verticesPerFace:i}=Jl(r,s,e,l),{positions:r,indices:o,verticesPerFace:i}}static allocate(n,t){let e,r,o,i=[],s=[];n.positionWASM&&n.positionWASM.length>0?(e=n.positionWASM,r=n.indexWASM,o=n.verticesPerFaceWASM):(e=Yf,r=Kf,o=Qf);let l=e.length,c=r.length,p=o.length,a=e.length+i.length+s.length,u=r.length+o.length,d=a*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,f=a*Float32Array.BYTES_PER_ELEMENT,m=u*Uint32Array.BYTES_PER_ELEMENT,h=pe._malloc(d),g=new Float32Array(pe.HEAPF32.buffer,h,a),v=new Uint32Array(pe.HEAPU32.buffer,h+f,u);g.set(e,0),g.set(i,e.length),g.set(s,e.length+i.length),v.set(r,0),v.set(o,r.length);let x;n?.scaleBaked?.some(S=>S!==1)&&(x=new $e.Matrix4().makeScale(...n.scaleBaked)),t&&(x?x.premultiply(t):x=t);let w=x?pe.alloc_subdivision_surface2(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p,x.elements):pe.alloc_subdivision_surface(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,p);return pe._free(h),w}static buildLevel(n,t,e,r,o){let i=o?pe.get_mesh_data2(n,t?pe.Level.CONTROL:pe.Level.REFINED,e,o.elements):pe.get_mesh_data(n,t?pe.Level.CONTROL:pe.Level.REFINED,e),s=8,l=pe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(4,4+4),p=0,a=pe.HEAPU32[l[p]>>2],u=pe.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=pe.HEAPU32[l[p]>>2],f=pe.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=pe.HEAPU32[l[p]>>2],h=pe.HEAPU32.subarray(m>>2,(m>>2)+c[p]);p++;let g=pe.HEAPU32[l[p]>>2],v=pe.HEAPU32.subarray(g>>2,(g>>2)+c[p]);if(p++,r===void 0){let x=new $e.BufferGeometry;if(x.setIndex(new $e.Uint32BufferAttribute(v,1)),x.setAttribute("position",new $e.Float32BufferAttribute(u,3)),x.setAttribute("normal",new $e.Float32BufferAttribute(f,3)),t){x.setAttribute("faceMap",new $e.Uint32BufferAttribute(h,1));let w=new Float32Array(f.length/3*4).fill(0);x.setAttribute("color",new $e.BufferAttribute(w,4))}return pe.free_mesh_data(i),x.userData.type="SubdivGeometry",x}r.getAttribute("position").copyArray(u),r.getAttribute("normal").copyArray(f),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,pe.free_mesh_data(i)}static buildControlCageWireframe(n,t,e){let r=pe.get_wireframe_data_for_base_level(n),o=4,i=pe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(2,2+2),l=0,c=pe.HEAPU32[i[l]>>2],p=pe.HEAPF32.subarray(c>>2,(c>>2)+s[l]);l++;let a=pe.HEAPU32[i[l]>>2],u=pe.HEAPU32.subarray(a>>2,(a>>2)+s[l]);if(t===void 0){let d=new $e.BufferGeometry;d.setAttribute("position",new $e.Float32BufferAttribute(p,3));let f=new Float32Array(p.length);for(let m=0,h=p.length;m<h;)f[m++]=e.r,f[m++]=e.g,f[m++]=e.b;return d.setAttribute("color",new $e.BufferAttribute(f,3)),d.setIndex(new $e.Uint32BufferAttribute(u,1)),pe.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(p),t.attributes.position.needsUpdate=!0,pe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(n,t,e){let r=t===0;r||pe.set_destination_refinement_level(n,t);let o=e?pe.get_topological_data2(n,r?pe.Level.CONTROL:pe.Level.REFINED,e.elements):pe.get_topological_data(n,r?pe.Level.CONTROL:pe.Level.REFINED),i=6,s=pe.HEAPU32.subarray(o>>2,(o>>2)+i),l=s.subarray(3,3+3),c=0,p=pe.HEAPU32[s[c]>>2],a=new Float32Array(pe.HEAPF32.subarray(p>>2,(p>>2)+l[c]));c++;let u=pe.HEAPU32[s[c]>>2],d=new Uint32Array(pe.HEAPU32.subarray(u>>2,(u>>2)+l[c]));c++;let f=pe.HEAPU32[s[c]>>2],m=new Uint8Array(pe.HEAPU32.subarray(f>>2,(f>>2)+l[c]));return pe.free_topological_data(o),{positions:a,indices:d,verticesPerFace:m}}};var Zf=["getX","getY","getZ"];function Zl(n,t){let e={},r=t?t.count:n.count,o=0,i=[],s=[],l=1e4;for(let p=0;p<r;p++){let a=t?t.getX(p):p,u="";for(let d=0;d<3;d++)u+=`${~~(n[Zf[d]](a)*l)},`;if(u in e)i.push(e[u]);else{for(let d=0;d<3;d++)s.push(n[Zf[d]](a));e[u]=o,i.push(o),o++}}let c=[];for(let p=0;p<i.length;p+=3)i[p]===i[p+1]||i[p]===i[p+2]||i[p+1]===i[p+2]||c.push(i[p],i[p+1],i[p+2]);return{positions:s,triIndices:c}}var Pa=new $e.Vector3,Yl=new $e.Vector3,Kl=new $e.Vector3,Ql=new $e.Vector3;function Jl(n,t,e,r){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let s=e.userData.shape.extractShapePointsToFlatArray([]),l=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&l<=24&&l%4===0&&e.userData.parameters.angle>=360){let a=s.length/2/l;s=s.filter((u,d)=>Math.floor(d/2)%a===0)}let c=0;for(let a=0;a<s.length;a+=2)c+=(s[a]-s[(a===0?s.length:a)-2])*(s[a+1]+s[(a===0?s.length:a)-1]);n.length=0;let p=0;if(c<0)for(let a=0;a<s.length;a+=2)n.push(s[a],s[a+1],0),o.push(p++);else for(let a=s.length-2;a>=0;a-=2)n.push(s[a],s[a+1],0),o.push(p++);return i.push(p),{indices:o,verticesPerFace:i}}for(let s=0,l=e.capStartIndex??t.length;s<l;)if(t[s+1]===t[s+3]&&t[s+2]===t[s+5]||t[s+0]===t[s+3]&&t[s+2]===t[s+4]){Pa.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Yl.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Kl.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Ql.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Yl.sub(Pa).normalize(),Kl.sub(Pa).normalize(),Ql.sub(Pa).normalize();let c=Yl.cross(Kl).dot(Ql);Math.abs(c)>.005||r&&r.some((p,a)=>a%2===1?!1:s>=r[a]&&s<r[a+1])?(o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3):(o.push(t[s],t[s+1],t[s+4],t[s+5]),i.push(4),s+=6)}else o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3;if(e.capStartIndex!==void 0){let s=[],l=[],c=0,p=new Float32Array([e.userData.parameters.depth])[0];for(let a=0,u=0;a<n.length;a+=3,u++)n[a+2]===0&&(s.push(u),c++),n[a+2]===p&&l.push(u);if(e.userData.parameters.extrudeBevelSize===0){let a=l[0];l[0]=l[1],l[1]=a}s.reverse(),o.push(...s,...l),i.push(c,c)}return{indices:o,verticesPerFace:i}}var er={};Mc(er,{calcBoolean:()=>PS,calcBooleanTopological:()=>IS,freeMeshSet:()=>LS,getMeshSet:()=>OS,transformMeshSet:()=>CS});var AS,Jf=new Promise(n=>{AS=n});var Ii=require("three");var ye,Ln;Jf.then(n=>ye=n);function NS(n,t,e){let r,{positions:o,triIndices:i}=Zl(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=Jl(o,i,n);s=c.length,r=[];for(let p=0,a=0;p<s;p++){r.push(c[p]);for(let u=0;u<c[p];u++)r.push(l[a++])}}else{let l=i.length;r=Array(l+l/3),s=0;for(let c=0,p=0;p<r.length;)r[p++]=3,s++,r[p++]=i[c++],r[p++]=i[c++],r[p++]=i[c++]}return{positions:o,faceIndices:r,nFaces:s}}function em(n){let t=n.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(n[0])?e:r,i=ye._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(ye.HEAPU32.buffer,i,t):new Float32Array(ye.HEAPF32.buffer,i,t)).set(n,0),i}function tm(n){switch(n){case 0:return ye.OP.UNION;case 1:return ye.OP.INTERSECTION;case 2:return ye.OP.A_MINUS_B;case 3:return ye.OP.B_MINUS_A;case 4:return ye.OP.SYMMETRIC_DIFFERENCE;case 5:return ye.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function IS(n,t){Ln===void 0&&(Ln=ye.init_csg());let e=em(n),r=ye.csg_calc_topological(Ln,e,n.length,tm(t));ye._free(e);let o=6,i=ye.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(3,3+3),l=0,c=ye.HEAPU32[i[l]>>2],p=new Float32Array(ye.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=ye.HEAPU32[i[l]>>2],u=new Uint32Array(ye.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let d=ye.HEAPU32[i[l]>>2],f=new Uint8Array(ye.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return ye.free_mesh_data(r),{positions:p,indices:u,verticesPerFace:f}}function PS(n,t,e,r){Ln===void 0&&(Ln=ye.init_csg());let o=em(n),i=ye.csg_calc(Ln,o,n.length,r,tm(t));ye._free(o);let s=5,l=ye.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),p=0,a=ye.HEAPU32[l[p]>>2],u=ye.HEAPF32.subarray(a>>2,(a>>2)+c[p]);p++;let d=ye.HEAPU32[l[p]>>2],f=ye.HEAPF32.subarray(d>>2,(d>>2)+c[p]);p++;let m=c[p];e.setAttribute("position",new Ii.Float32BufferAttribute(u,3)),e.setAttribute("normal",new Ii.Float32BufferAttribute(f,3));let h=ye.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Ii.Sphere),e.boundingSphere.center.set(h[0],h[1],h[2]),e.boundingSphere.radius=(h[3]**2+h[4]**2+h[5]**2)**.5,e.userData.parameters={width:h[3]*2,height:h[4]*2,depth:h[5]*2},ye.free_mesh_data(i),m}function OS(n,t,e){if(ye===void 0)return-1;let r,o,i;if(t&&n.userData.positions!==void 0){let g=n.userData;i=g.verticesPerFace.length,r=g.positions,o=Array(g.verticesPerFace.reduce((v,x)=>v+x,0)+i);for(let v=0,x=0,w=0;v<g.verticesPerFace.length;v++){o[w++]=g.verticesPerFace[v];for(let S=0;S<g.verticesPerFace[v];S++)o[w++]=g.indices[x++]}}else({positions:r,faceIndices:o,nFaces:i}=NS(n,t,e));let s=r.length,l=o.length,c=r.length,p=o.length,a=c*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,u=c*Float32Array.BYTES_PER_ELEMENT,d=p*Uint32Array.BYTES_PER_ELEMENT,f=ye._malloc(a),m=new Float32Array(ye.HEAPF32.buffer,f,c),h=new Uint32Array(ye.HEAPU32.buffer,f+u,p);return m.set(r,0),h.set(o,0),ye.get_csg_mesh(f,s,f+u,l,i)}function CS(n,t){ye.transform_csg_mesh(n,t.elements)}function LS(n){ye.free_csg_mesh(n)}var ec={ConeGeometry:mf,CubeGeometry:hf,CylinderGeometry:df,DodecahedronGeometry:yf,EllipseGeometry:wf,HelixGeometry:Nf,IcosahedronGeometry:Pf,LatheGeometry:Of,NonParametricGeometry:Cf,PolygonGeometry:Lf,PyramidGeometry:Mf,RectangleGeometry:Ef,SphereGeometry:Df,PlaneGeometry:Rf,BackdropGeometry:Vf,StarGeometry:Ff,TextFrameGeometry:Uf,TorusGeometry:jf,TorusKnotGeometry:Hf,TriangleGeometry:Wf,VectorGeometry:dt},Ni=n=>ec[n.type].create(n);var oc=require("three");var Ca=require("three");var tc=require("three");function st(n,t){return t.color(n)}var rc=n=>"isEntity"in n,vr=n=>"isAbstractMesh"in n,br=n=>n!==null&&n.objectType==="BooleanObject",rm=n=>n.objectType==="CombinedCamera";var Oa=n=>"objectHelper"in n;function MS(n,t){let e=!1;t.position&&(n.position.fromArray(t.position),e=!0),t.rotation&&(n.rotation.fromArray(t.rotation),e=!0),t.scale&&(e=!0,n.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&"hiddenMatrix"in n&&(e=!0,n.hiddenMatrix.fromArray(t.hiddenMatrix??Xr.identity)),e&&(n.updateMatrix(),br(n.parent)&&vr(n)&&n.invalidateDownstreamBooleanData(!0).recomputeBoolean()),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&n.updateWorldMatrix(!1,!0),n.objectType==="CombinedCamera"&&(t.isUpVectorFlipped!==void 0&&(n.isUpVectorFlipped=t.isUpVectorFlipped),n.updateUp())}function ES(n,t){MS(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function om(n,t,e){ES(n,t),t.color!==void 0&&(n.color=st(t.color,e)),t.intensity!==void 0&&(n.intensity=t.intensity),t.shadows!==void 0&&!(n instanceof tc.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof tc.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function nm(n,t){n.shadow.camera.right=t/2,n.shadow.camera.left=-t/2,n.shadow.camera.top=t/2,n.shadow.camera.bottom=-t/2,n.shadow.needsUpdate=!0}var La=n=>class extends n{hasEntityChild(){return this.children.some(e=>rc(e))}isDescendantOf(e){e instanceof Ca.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}attach(e,r){this.updateWorldMatrix(!0,!1);let o=new Ca.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),rc(e)?e.hiddenMatrix.premultiply(o):e.applyMatrix4(o),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}copy(e,r=!0){if(this.name=e.name,this.up.copy(e.up),this.position.copy(e.position),this.rotation.order=e.rotation.order,this.quaternion.copy(e.quaternion),this.scale.copy(e.scale),this.matrix.copy(e.matrix),this.matrixWorld.copy(e.matrixWorld),this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrixWorldNeedsUpdate=e.matrixWorldNeedsUpdate,this.layers.mask=e.layers.mask,this.visible=e.visible,this.castShadow=e.castShadow,this.receiveShadow=e.receiveShadow,this.frustumCulled=e.frustumCulled,this.renderOrder=e.renderOrder,this.userData=JSON.parse(JSON.stringify(e.userData)),r===!0)for(let o=0;o<e.children.length;o++){let i=e.children[o];this.add(i.clone())}return this}};var He=require("three");var Mn=new He.Box3,$t=new He.Vector3,Sr=new He.Vector3,En=new He.Matrix4,sm=[new He.Vector3(-1,1,1),new He.Vector3(-1,-1,1),new He.Vector3(1,-1,1),new He.Vector3(1,1,1),new He.Vector3(-1,1,-1),new He.Vector3(-1,-1,-1),new He.Vector3(1,-1,-1),new He.Vector3(1,1,-1)],BS=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],DS=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function GS(n,t,e=0,r=t.count){let o=1/0,i=1/0,s=1/0,l=-1/0,c=-1/0,p=-1/0;for(let a=e;a<r;a++){let u=t.getX(a),d=t.getY(a),f=t.getZ(a);u<o&&(o=u),d<i&&(i=d),f<s&&(s=f),u>l&&(l=u),d>c&&(c=d),f>p&&(p=f)}return n.min.set(o,i,s),n.max.set(l,c,p),n}var im=(n,t,e)=>{if(vr(n)){let r=n.geometry.userData.parameters,o=n.geometry.getAttribute("position"),i=n.geometry.userData.type;i==="SubdivGeometry"?$t.copy(n.originalGeometry.boundingSphere.center):i==="TextGeometry"||$o.is2DParametricMesh(i)?$t.set(0,0,r.depth*.5):i==="ConeGeometry"||i==="CubeGeometry"||i==="CylinderGeometry"||i==="DodecahedronGeometry"||i==="HelixGeometry"||i==="IcosahedronGeometry"||i==="PyramidGeometry"||i==="SphereGeometry"||i==="PlaneGeometry"||i==="BackdropGeometry"||i==="TorusGeometry"||i==="TorusKnotGeometry"?$t.set(0,0,0):o!==void 0&&(GS(Mn,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),Mn.getCenter($t)),n.forceComputeSize?Mn.getSize(Sr).multiplyScalar(.5):Sr.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(Oa(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");Mn.setFromArray(r.array),Mn.getCenter($t),Mn.getSize(Sr).multiplyScalar(.5)}else $t.setScalar(0),Sr.setScalar(0);En.copy(t).multiply(n.matrixWorld),Sr.x===0&&Sr.y===0&&Sr.z===0?e.push(new He.Vector3($t.x,$t.y,$t.z).applyMatrix4(En)):sm.forEach(r=>{e.push(r.clone().multiply(Sr).add($t).applyMatrix4(En))})},Pi=class extends He.Box3{constructor(){super(...arguments);this.matrix=new He.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(e){return super.copy(e),this.matrix.copy(e.matrix),this.vertices=e.vertices.map(r=>r.clone()),this.faces=e.faces.map(r=>r.clone()),this.edges=e.edges.map(r=>r.clone()),this.centerEdges=e.centerEdges.map(r=>r.clone()),this}setFromObjectSize(e,r=!1){e.updateWorldMatrix(!1,r),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new He.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,r)}expandByObjectSize(e,r,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&im(s,r,i)}):im(e,r,i),this.setFromPoints(i)}getCenter(e){return e=super.getCenter(e),e.applyMatrix4(this.matrix),e}getPositionToCenter(e){return e=super.getCenter(e),e.applyMatrix4(En.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Sr).multiplyScalar(.5),this.getCenter($t),En.copy(this.matrix).setPosition($t),this.vertices=sm.map(e=>e.clone().multiply(Sr).applyMatrix4(En))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=BS.map(([e,r])=>new He.Line3(this.vertices[e],this.vertices[r])),this.centerEdges=this.edges.map(e=>e.getCenter(new He.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=DS.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var wr=n=>"isEntity"in n,am=n=>"isAbstractMesh"in n,Xt=n=>class extends La(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new oc.Matrix4;this._singleBBox=new Pi;this._recursiveBBox=new Pi;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0;this.forceComputeSize=!1;this.currentState=null;this.currentTransitionAction=null}get singleBBox(){return this.singleBBoxNeedsUpdate&&(this.singleBBoxNeedsUpdate=!1,this._singleBBox.setFromObjectSize(this,!1),this._singleBBox.computeVertices(),this._singleBBox.computeEdges(),this._singleBBox.computeFaces()),this._singleBBox}get recursiveBBox(){return this.recursiveBBoxNeedsUpdate&&(this.recursiveBBoxNeedsUpdate=!1,this._recursiveBBox.setFromObjectSize(this,!0),this._recursiveBBox.computeVertices(),this._recursiveBBox.computeEdges(),this._recursiveBBox.computeFaces()),this._recursiveBBox}resetBBoxNeedsUpdate(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0,this.traverseAncestors(r=>{wr(r)&&(r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0)}),this.traverseEntity(r=>{r.singleBBoxNeedsUpdate=!0,r.recursiveBBoxNeedsUpdate=!0})}traverseEntity(r){r(this);for(let o of this.children)wr(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)wr(o)&&o.visible&&o.traverseVisibleEntity(r)}updateMatrix(){super.updateMatrix(),this.dispatchEvent({type:"updateMatrix"})}updateMatrixWorld(r){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||r)&&(this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,r=!0);for(let o of this.children)o.updateMatrixWorld(r)}updateWorldMatrix(r,o){let i=this.parent;if(r&&i!==null&&i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.multiplyMatrices(this.hiddenMatrix,this.matrix):(this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.hiddenMatrix),this.matrixWorld.multiplyMatrices(this.matrixWorld,this.matrix)),o)for(let s of this.children)s.updateWorldMatrix(!1,!0)}clone(r){return new this.constructor().copy(this,r)}copy(r,o=!0){if(super.copy(r,!1),this.raycastLock=r.raycastLock,this.scaleLock=r.scaleLock,this.hiddenMatrix.copy(r.hiddenMatrix),o===!0)for(let i of r.children)wr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new oc.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)wr(i)&&i.hiddenMatrix.premultiply(r)}toObjectTransformState(r=[]){this.updateWorldMatrix(!0,!1);let o={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return mn(o,r)}fromObjectTransformState(r){return r.position&&this.position.fromArray(r.position),r.rotation&&this.rotation.fromArray(r.rotation),r.scale&&this.scale.fromArray(r.scale),r.hiddenMatrix&&this.hiddenMatrix.fromArray(r.hiddenMatrix),this.updateMatrix(),this}toState(r=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(r)};return mn(o,r)}fromState(r,o){return r.name&&(this.name=r.name),r.raycastLock!==void 0&&(this.raycastLock=r.raycastLock),r.type!=="OrthographicCamera"&&r.type!=="PerspectiveCamera"&&(this.matrixAutoUpdate=!1),r.visible!==void 0&&(this.visible=r.visible),this.fromObjectTransformState(r),this}};var Ua=require("three");var rr=require("three");var Oi=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};var lm=require("three"),at=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=lm.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,i,s){return""}generate(t,e,r,o,i){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof at&&(t+='"'+e+'":'+r.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],r=this[e],t+='"'+e+'":"'+String(r)+'",';return t+='"id":"'+this.uuid+'"}',t}};var nc=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},et=new nc;var ic=require("three");var cm=require("three"),ce=class extends at{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,i){if(r=r??this.getType(e),this.getShared(e,r)){let s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=cm.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let l=e.getNodeData(o),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return l.name=l.name||super.build(e,r,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let p=this.getTemp(e,o);if(p)return e.format(p,c,r);{p=super.generate(e,r,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(p+" = "+a+";"),e.format(p,c,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,i,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var Ee=class extends ce{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}};var lt=class extends Ee{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof ic.Vector2?e:new ic.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,i,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};var sc=require("three");var ft=class extends Ee{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof sc.Vector3?e:new sc.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};var um=require("three"),tt=class extends um.Color{constructor(e,r,o,i){super(e,r,o);this.isColorA=!0;this.a=i}setRGBA(e,r,o,i){super.setRGB(e,r,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Yt=class extends Ee{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof tt?e:new tt(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var RS=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,pm=/[a-z_0-9]+/gi,$=class extends ce{constructor(e,r,o,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(e,r,o,i)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,i,s){let l,c=0,p=this.src;if(this.includes)for(let u=0;u<this.includes.length;u++)e.include(this.includes[u],this);for(let u in this.extensions)e.extensions[u]=!0;let a=[];for(;l=pm.exec(this.src);)a.push(l);for(let u=0;u<a.length;u++){let d=a[u],f=d[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&et.containsKeyword(f)){let g=this.keywords[f];if(!g){let v=et.getKeywordData(f);v.cache&&(g=e.keywords[f]),g=g||et.getKeyword(f,e),v.cache&&(e.keywords[f]=g)}h=g.build(e)}f!==h&&p[d.index+c-1]!=="."&&(p=p.substring(0,d.index+c)+h+p.substring(d.index+f.length+c),c+=h.length-f.length),this.getIncludeByName(h)===void 0&&et.contains(h)&&e.include(et.get(h))}return r==="source"?p:this.isMethod?(this.isInterface||e.include(this,void 0,p),this.name):e.format("( "+p+" )",this.getType(e),r)}parse(e,r,o,i){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let s=RS.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(pm);if(l){let c=0;for(;c<l.length;){let p=l[c++],a;p==="in"||p==="out"||p==="inout"?a=l[c++]:(a=p,p="");let u=l[c++];this.inputs.push({name:u,type:a,qualifier:p})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var VS=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,ac=class extends ce{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||ac.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,i,s){this.src=e||"";let l,c,p="",a=VS.exec(e);this.useDefine=s??this.src.charAt(0)==="#",a&&a.length>1?(c=a[1],l=a[2],p=a[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=p}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,i,s){return e.format(this.name,this.getType(e),r)}},we=ac;we.PI="PI",we.PI2="PI2",we.RECIPROCAL_PI="RECIPROCAL_PI",we.RECIPROCAL_PI2="RECIPROCAL_PI2",we.LOG2="LOG2",we.EPSILON="EPSILON";var FS=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
4
|
-
)*?)}`,"gim"),
|
|
5
|
-
`)),sRGBToLinear:new
|
|
6
|
-
`)),LinearTosRGB:new
|
|
7
|
-
`))},
|
|
3
|
+
`&&r.push("")):t.getTextWidth(r[r.length-1]+o,n)>n.width&&(r[r.length-1].length&&r.push(""),t.getTextWidth(r[r.length-1]+o,n)>n.width&&(o.length===1?(r[r.length-1]+=o,o=""):(r[r.length-1]+=o.slice(0,-1),o=o[o.length-1],r.push(""))));return r[r.length-1]+=o,r}var Xe=require("three");var Qm=require("three");function rl(n,t){return Y1(n)}function Y1(n){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let r=Te.createFromState(n.shape,n.width,n.height);t.shape=r}else n.type==="NonParametricGeometry"&&(n.data.groups&&n.data.groups.forEach(r=>r.materialIndex=Math.max(r.materialIndex??0,0)),t.geometry=new Qm.BufferGeometryLoader().parse(n));let e;try{e=Xi(t)}catch(r){console.error(r)}if(!e){let r=Te.createFromState(an.defaultData(),100,100);t.shape=r,e=Xi(t)}return e}var pe;En.then(n=>{pe=n});var Jm=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),eh=new Uint32Array([0,1,2,3]),th=new Uint8Array([4]),Qt=class{static build(n,t,e,r,o){let i,s,l,c=n?.phongAngle??t?.phongAngle??35;if(r===!1&&(c=-1),n.positionWASM!==void 0){e&&e!==0&&(pe.free_bvh(e),pe.free_subdivision_surface(e));try{i=Qt.allocate(n,o)}catch(u){console.error(u,n),i=Qt.allocate({positionWASM:Jm,indexWASM:eh,verticesPerFaceWASM:th},o)}pe.set_destination_refinement_level(i,0),s=Qt.buildLevel(i,!0,c)}else i=e,n.phongAngle!==void 0&&(s=Qt.buildLevel(i,!0,c));return n.subdivisions!==void 0&&(pe.set_destination_refinement_level(i,n.subdivisions),n.subdivisions>0?l=Qt.buildLevel(i,!1,c):l=null),{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}}static primitiveToQuads(n,t){n.widthSegments>16&&(n.widthSegments=16),n.heightSegments>16&&(n.heightSegments=16),n.depthSegments>16&&(n.depthSegments=16),n.radialSegments>16&&(n.radialSegments=16),n.type==="DodecahedronGeometry"&&(n.detail=0);let e=n.shape!==void 0?t.geometry:rl(n),r,o,i,s;({positions:r,triIndices:s}=Bc(e.getAttribute("position"),e.getIndex()));let l;if(n.type==="CylinderGeometry"&&n.cornerRadius===0&&n.hollow===0&&n.openEnded===!1){let c=n.radialSegments*n.heightSegments*3*2,u=c+n.radialSegments*3;l=[c,u]}return{indices:o,verticesPerFace:i}=Dc(r,s,e,l),{positions:r,indices:o,verticesPerFace:i}}static allocate(n,t){let e,r,o,i=[],s=[];n.positionWASM&&n.positionWASM.length>0?(e=n.positionWASM,r=n.indexWASM,o=n.verticesPerFaceWASM):(e=Jm,r=eh,o=th);let l=e.length,c=r.length,u=o.length,a=e.length+i.length+s.length,p=r.length+o.length,d=a*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,f=a*Float32Array.BYTES_PER_ELEMENT,m=p*Uint32Array.BYTES_PER_ELEMENT,h=pe._malloc(d),g=new Float32Array(pe.HEAPF32.buffer,h,a),b=new Uint32Array(pe.HEAPU32.buffer,h+f,p);g.set(e,0),g.set(i,e.length),g.set(s,e.length+i.length),b.set(r,0),b.set(o,r.length);let x;n?.scaleBaked?.some(w=>w!==1)&&(x=new Xe.Matrix4().makeScale(...n.scaleBaked)),t&&(x?x.premultiply(t):x=t);let S=x?pe.alloc_subdivision_surface2(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,u,x.elements):pe.alloc_subdivision_surface(h,l,h+f,c,h+f+r.length*Uint32Array.BYTES_PER_ELEMENT,u);return pe._free(h),S}static buildLevel(n,t,e,r,o){let i=o?pe.get_mesh_data2(n,t?pe.Level.CONTROL:pe.Level.REFINED,e,o.elements):pe.get_mesh_data(n,t?pe.Level.CONTROL:pe.Level.REFINED,e),s=8,l=pe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(4,4+4),u=0,a=pe.HEAPU32[l[u]>>2],p=pe.HEAPF32.subarray(a>>2,(a>>2)+c[u]);u++;let d=pe.HEAPU32[l[u]>>2],f=pe.HEAPF32.subarray(d>>2,(d>>2)+c[u]);u++;let m=pe.HEAPU32[l[u]>>2],h=pe.HEAPU32.subarray(m>>2,(m>>2)+c[u]);u++;let g=pe.HEAPU32[l[u]>>2],b=pe.HEAPU32.subarray(g>>2,(g>>2)+c[u]);if(u++,r===void 0){let x=new Xe.BufferGeometry;if(x.setIndex(new Xe.Uint32BufferAttribute(b,1)),x.setAttribute("position",new Xe.Float32BufferAttribute(p,3)),x.setAttribute("normal",new Xe.Float32BufferAttribute(f,3)),t){x.setAttribute("faceMap",new Xe.Uint32BufferAttribute(h,1));let S=new Float32Array(f.length/3*4).fill(0);x.setAttribute("color",new Xe.BufferAttribute(S,4))}return pe.free_mesh_data(i),x.userData.type="SubdivGeometry",x}r.getAttribute("position").copyArray(p),r.getAttribute("normal").copyArray(f),r.attributes.position.needsUpdate=!0,r.attributes.normal.needsUpdate=!0,pe.free_mesh_data(i)}static buildControlCageWireframe(n,t,e){let r=pe.get_wireframe_data_for_base_level(n),o=4,i=pe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(2,2+2),l=0,c=pe.HEAPU32[i[l]>>2],u=pe.HEAPF32.subarray(c>>2,(c>>2)+s[l]);l++;let a=pe.HEAPU32[i[l]>>2],p=pe.HEAPU32.subarray(a>>2,(a>>2)+s[l]);if(t===void 0){let d=new Xe.BufferGeometry;d.setAttribute("position",new Xe.Float32BufferAttribute(u,3));let f=new Float32Array(u.length);for(let m=0,h=u.length;m<h;)f[m++]=e.r,f[m++]=e.g,f[m++]=e.b;return d.setAttribute("color",new Xe.BufferAttribute(f,3)),d.setIndex(new Xe.Uint32BufferAttribute(p,1)),pe.free_wireframe_data_for_base_level(r),d}t.getAttribute("position").copyArray(u),t.attributes.position.needsUpdate=!0,pe.free_wireframe_data_for_base_level(r)}static updateCollabMesh(n,t,e){let r=t===0;r||pe.set_destination_refinement_level(n,t);let o=e?pe.get_topological_data2(n,r?pe.Level.CONTROL:pe.Level.REFINED,e.elements):pe.get_topological_data(n,r?pe.Level.CONTROL:pe.Level.REFINED),i=6,s=pe.HEAPU32.subarray(o>>2,(o>>2)+i),l=s.subarray(3,3+3),c=0,u=pe.HEAPU32[s[c]>>2],a=new Float32Array(pe.HEAPF32.subarray(u>>2,(u>>2)+l[c]));c++;let p=pe.HEAPU32[s[c]>>2],d=new Uint32Array(pe.HEAPU32.subarray(p>>2,(p>>2)+l[c]));c++;let f=pe.HEAPU32[s[c]>>2],m=new Uint8Array(pe.HEAPU32.subarray(f>>2,(f>>2)+l[c]));return pe.free_topological_data(o),{positions:a,indices:d,verticesPerFace:m}}};var rh=["getX","getY","getZ"];function Bc(n,t){let e={},r=t?t.count:n.count,o=0,i=[],s=[],l=1e4;for(let u=0;u<r;u++){let a=t?t.getX(u):u,p="";for(let d=0;d<3;d++)p+=`${~~(n[rh[d]](a)*l)},`;if(p in e)i.push(e[p]);else{for(let d=0;d<3;d++)s.push(n[rh[d]](a));e[p]=o,i.push(o),o++}}let c=[];for(let u=0;u<i.length;u+=3)i[u]===i[u+1]||i[u]===i[u+2]||i[u+1]===i[u+2]||c.push(i[u],i[u+1],i[u+2]);return{positions:s,triIndices:c}}var ol=new Xe.Vector3,Mc=new Xe.Vector3,Lc=new Xe.Vector3,Ec=new Xe.Vector3;function Dc(n,t,e,r){let o=[],i=[];if(e.userData.shape!==void 0&&e.userData.parameters.depth===0&&e.userData.shape.shapeHoles.length===0){let s=e.userData.shape.extractShapePointsToFlatArray([]),l=e.userData.parameters.spikes;if(e.userData.type==="EllipseGeometry"&&l<=24&&l%4===0&&e.userData.parameters.angle>=360){let a=s.length/2/l;s=s.filter((p,d)=>Math.floor(d/2)%a===0)}let c=0;for(let a=0;a<s.length;a+=2)c+=(s[a]-s[(a===0?s.length:a)-2])*(s[a+1]+s[(a===0?s.length:a)-1]);n.length=0;let u=0;if(c<0)for(let a=0;a<s.length;a+=2)n.push(s[a],s[a+1],0),o.push(u++);else for(let a=s.length-2;a>=0;a-=2)n.push(s[a],s[a+1],0),o.push(u++);return i.push(u),{indices:o,verticesPerFace:i}}for(let s=0,l=e.capStartIndex??t.length;s<l;)if(t[s+1]===t[s+3]&&t[s+2]===t[s+5]||t[s+0]===t[s+3]&&t[s+2]===t[s+4]){ol.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Mc.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),Lc.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),Ec.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Mc.sub(ol).normalize(),Lc.sub(ol).normalize(),Ec.sub(ol).normalize();let c=Mc.cross(Lc).dot(Ec);Math.abs(c)>.005||r&&r.some((u,a)=>a%2===1?!1:s>=r[a]&&s<r[a+1])?(o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3):(o.push(t[s],t[s+1],t[s+4],t[s+5]),i.push(4),s+=6)}else o.push(t[s],t[s+1],t[s+2]),i.push(3),s+=3;if(e.capStartIndex!==void 0){let s=[],l=[],c=0,u=new Float32Array([e.userData.parameters.depth])[0];for(let a=0,p=0;a<n.length;a+=3,p++)n[a+2]===0&&(s.push(p),c++),n[a+2]===u&&l.push(p);if(e.userData.parameters.extrudeBevelSize===0){let a=l[0];l[0]=l[1],l[1]=a}s.reverse(),o.push(...s,...l),i.push(c,c)}return{indices:o,verticesPerFace:i}}var ir={};pu(ir,{calcBoolean:()=>Q1,calcBooleanTopological:()=>Z1,freeMeshSet:()=>tw,getMeshSet:()=>J1,transformMeshSet:()=>ew});var X1,oh=new Promise(n=>{X1=n});var Ki=require("three");var xe,Kn;oh.then(n=>xe=n);function K1(n,t,e){let r,{positions:o,triIndices:i}=Bc(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=Dc(o,i,n);s=c.length,r=[];for(let u=0,a=0;u<s;u++){r.push(c[u]);for(let p=0;p<c[u];p++)r.push(l[a++])}}else{let l=i.length;r=Array(l+l/3),s=0;for(let c=0,u=0;u<r.length;)r[u++]=3,s++,r[u++]=i[c++],r[u++]=i[c++],r[u++]=i[c++]}return{positions:o,faceIndices:r,nFaces:s}}function nh(n){let t=n.length,e=t*Uint32Array.BYTES_PER_ELEMENT,r=t*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(n[0])?e:r,i=xe._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(xe.HEAPU32.buffer,i,t):new Float32Array(xe.HEAPF32.buffer,i,t)).set(n,0),i}function ih(n){switch(n){case 0:return xe.OP.UNION;case 1:return xe.OP.INTERSECTION;case 2:return xe.OP.A_MINUS_B;case 3:return xe.OP.B_MINUS_A;case 4:return xe.OP.SYMMETRIC_DIFFERENCE;case 5:return xe.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function Z1(n,t){Kn===void 0&&(Kn=xe.init_csg());let e=nh(n),r=xe.csg_calc_topological(Kn,e,n.length,ih(t));xe._free(e);let o=6,i=xe.HEAPU32.subarray(r>>2,(r>>2)+o),s=i.subarray(3,3+3),l=0,c=xe.HEAPU32[i[l]>>2],u=new Float32Array(xe.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=xe.HEAPU32[i[l]>>2],p=new Uint32Array(xe.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let d=xe.HEAPU32[i[l]>>2],f=new Uint8Array(xe.HEAPU32.subarray(d>>2,(d>>2)+s[l]));return xe.free_mesh_data(r),{positions:u,indices:p,verticesPerFace:f}}function Q1(n,t,e,r){Kn===void 0&&(Kn=xe.init_csg());let o=nh(n),i=xe.csg_calc(Kn,o,n.length,r,ih(t));xe._free(o);let s=5,l=xe.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),u=0,a=xe.HEAPU32[l[u]>>2],p=xe.HEAPF32.subarray(a>>2,(a>>2)+c[u]);u++;let d=xe.HEAPU32[l[u]>>2],f=xe.HEAPF32.subarray(d>>2,(d>>2)+c[u]);u++;let m=c[u];e.setAttribute("position",new Ki.Float32BufferAttribute(p,3)),e.setAttribute("normal",new Ki.Float32BufferAttribute(f,3));let h=xe.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Ki.Sphere),e.boundingSphere.center.set(h[0],h[1],h[2]),e.boundingSphere.radius=(h[3]**2+h[4]**2+h[5]**2)**.5,e.userData.parameters={width:h[3]*2,height:h[4]*2,depth:h[5]*2},xe.free_mesh_data(i),m}function J1(n,t,e){if(xe===void 0)return-1;let r,o,i;if(t&&n.userData.positions!==void 0){let g=n.userData;i=g.verticesPerFace.length,r=g.positions,o=Array(g.verticesPerFace.reduce((b,x)=>b+x,0)+i);for(let b=0,x=0,S=0;b<g.verticesPerFace.length;b++){o[S++]=g.verticesPerFace[b];for(let w=0;w<g.verticesPerFace[b];w++)o[S++]=g.indices[x++]}}else({positions:r,faceIndices:o,nFaces:i}=K1(n,t,e));let s=r.length,l=o.length,c=r.length,u=o.length,a=c*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,p=c*Float32Array.BYTES_PER_ELEMENT,d=u*Uint32Array.BYTES_PER_ELEMENT,f=xe._malloc(a),m=new Float32Array(xe.HEAPF32.buffer,f,c),h=new Uint32Array(xe.HEAPU32.buffer,f+p,u);return m.set(r,0),h.set(o,0),xe.get_csg_mesh(f,s,f+p,l,i)}function ew(n,t){xe.transform_csg_mesh(n,t.elements)}function tw(n){xe.free_csg_mesh(n)}var Gc={ConeGeometry:xm,CubeGeometry:bm,CylinderGeometry:gm,DodecahedronGeometry:Sm,EllipseGeometry:Nm,HelixGeometry:Cm,IcosahedronGeometry:Lm,LatheGeometry:Em,NonParametricGeometry:Bm,PolygonGeometry:Dm,PyramidGeometry:Gm,RectangleGeometry:Rm,SphereGeometry:Fm,PlaneGeometry:jm,BackdropGeometry:Um,StarGeometry:km,TextFrameGeometry:Wm,TorusGeometry:qm,TorusKnotGeometry:Ym,TriangleGeometry:Xm,VectorGeometry:ft},Xi=n=>Gc[n.type].create(n);var fl=require("three");var ar=require("three");var Zi=class{constructor(t){t=t??{},this.name=t.name,this.type=t.type,this.node=t.node,this.size=t.size,this.needsUpdate=t.needsUpdate}get value(){return this.node.value}set value(t){this.node.value=t}};var sh=require("three"),ct=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=sh.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,e){e=e??{},t.analyzing=!0,this.build(t.addFlow(e.slot,e.cache,e.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,e,r){return r=r??{},this.analyze(t,r),this.flow(t,e,r)}flow(t,e,r){r=r??{},t.addFlow(r.slot,r.cache,r.context);let o={result:this.build(t,e),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),o}build(t,e,r){e=e??this.getType(t,e);let o=t.getNodeData(r??this);return t.analyzing&&this.appendDepsNode(t,o,e),t.nodes.indexOf(this)===-1&&t.nodes.push(this),this.updateFrame!==void 0&&t.updaters.indexOf(this)===-1&&t.updaters.push(this),this.generate(t,e,r)}updateFrame(t){}generateReadonly(t,e,r,o,i,s){return""}generate(t,e,r,o,i){return""}parse(t,e,r,o){}appendDepsNode(t,e,r){e.deps=(e.deps||0)+1;let o=t.getTypeLength(r);(o>(e.outputMax||0)||this.getType(t,r))&&(e.outputMax=o,e.output=r)}setName(t){this.name=t}getName(){return this.name}getType(t,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let t="{",e,r;for(e in this)r=this[e],r instanceof ct&&(t+='"'+e+'":'+r.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],r=this[e],t+='"'+e+'":"'+String(r)+'",';return t+='"id":"'+this.uuid+'"}',t}};var Rc=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,e,r){r=r!==void 0?r:!0,this.keywords[t]={callback:e,cache:r}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,e){return this.keywords[t].callback(e)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},rt=new Rc;var Vc=require("three");var ah=require("three"),ce=class extends ct{constructor(e,r){super(e);this.scope="";r=r??{},this.shared=r.shared!==void 0?r.shared:!0,this.unique=r.unique!==void 0?r.unique:!1}build(e,r,o,i){if(r=r??this.getType(e),this.getShared(e,r)){let s=this.getUnique(e,r);s&&this.uuid===void 0&&(this.uuid=ah.MathUtils.generateUUID()),o=e.getUUID(o??this.getUUID(),!s);let l=e.getNodeData(o),c=l.output||this.getType(e);if(e.analyzing)return(l.deps||0)>0||this.getLabel()?(this.appendDepsNode(e,l,r),this.generate(e,r,o)):super.build(e,r,o);if(s)return l.name=l.name||super.build(e,r,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,r,o);o=this.getUUID(!1);let u=this.getTemp(e,o);if(u)return e.format(u,c,r);{u=super.generate(e,r,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(u+" = "+a+";"),e.format(u,c,r)}}return super.build(e,r,o)}getShared(e,r){return r!=="sampler2D"&&r!=="samplerCube"&&this.shared}getUnique(e,r){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let r=this.uuid;return typeof this.scope=="string"&&(r=this.scope+"-"+r),r}getTemp(e,r){r=r||this.uuid;let o=e.getVars()[r];return o?o.name:void 0}generate(e,r,o,i,s){return this.getShared(e,r)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var De=class extends ce{constructor(e,r){r=r??{},r.shared=r.shared!==void 0?r.shared:!1;super(e,r);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}};var ut=class extends De{constructor(e=0,r){super("v2");this.nodeType="Vector2";this.value=e instanceof Vc.Vector2?e:new Vc.Vector2(e,r)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}generateReadonly(e,r,o,i,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,r)}};var Fc=require("three");var mt=class extends De{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Fc.Vector3?e:new Fc.Vector3(e,r,o)}get x(){return this.value.x}set x(e){this.value.x=e}get y(){return this.value.y}set y(e){this.value.y=e}get z(){return this.value.z}set z(e){this.value.z=e}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,r)}};var lh=require("three"),ot=class extends lh.Color{constructor(e,r,o,i){super(e,r,o);this.isColorA=!0;this.a=i}setRGBA(e,r,o,i){super.setRGB(e,r,o),this.a=i}copy(e){return super.copy(e),this.a="a"in e?e.a:1,this}clone(){return new this.constructor(this.r,this.g,this.b,this.a)}get x(){return this.r}get y(){return this.g}get z(){return this.b}get w(){return this.a}set x(e){this.r=e}set y(e){this.g=e}set z(e){this.b=e}set w(e){this.a=e}};var Jt=class extends De{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof ot?e:new ot(e.r,e.g,e.b,e.a)}generateReadonly(e,r,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,r)}};var rw=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,ch=/[a-z_0-9]+/gi,X=class extends ce{constructor(e,r,o,i,s){super(s);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=s===void 0,this.isInterface=!1,this.parse(e,r,o,i)}getShared(e,r){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}}getIncludeByName(e){if(this.includes){let r=this.includes.length;for(;r--;)if(this.includes[r].name===e)return this.includes[r]}}generate(e,r,o,i,s){let l,c=0,u=this.src;if(this.includes)for(let p=0;p<this.includes.length;p++)e.include(this.includes[p],this);for(let p in this.extensions)e.extensions[p]=!0;let a=[];for(;l=ch.exec(this.src);)a.push(l);for(let p=0;p<a.length;p++){let d=a[p],f=d[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&rt.containsKeyword(f)){let g=this.keywords[f];if(!g){let b=rt.getKeywordData(f);b.cache&&(g=e.keywords[f]),g=g||rt.getKeyword(f,e),b.cache&&(e.keywords[f]=g)}h=g.build(e)}f!==h&&u[d.index+c-1]!=="."&&(u=u.substring(0,d.index+c)+h+u.substring(d.index+f.length+c),c+=h.length-f.length),this.getIncludeByName(h)===void 0&&rt.contains(h)&&e.include(rt.get(h))}return r==="source"?u:this.isMethod?(this.isInterface||e.include(this,void 0,u),this.name):e.format("( "+u+" )",this.getType(e),r)}parse(e,r,o,i){if(this.src=e||"",this.includes=r??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let s=rw.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(ch);if(l){let c=0;for(;c<l.length;){let u=l[c++],a;u==="in"||u==="out"||u==="inout"?a=l[c++]:(a=u,u="");let p=l[c++];this.inputs.push({name:p,type:a,qualifier:u})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var ow=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,zc=class extends ce{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||zc.PI,void 0,void 0,void 0,r)}getType(e){return e.getTypeByFormat(this.type)}parse(e,r,o,i,s){this.src=e||"";let l,c,u="",a=ow.exec(e);this.useDefine=s??this.src.charAt(0)==="#",a&&a.length>1?(c=a[1],l=a[2],u=a[3]):(l=this.src,c="f"),this.name=l,this.type=c,this.value=u}build(e,r){if(r==="source"){if(this.value)return this.useDefine?"#define "+this.name+" "+this.value:"const "+this.type+" "+this.name+" = "+this.value+";";if(this.useDefine)return this.src}return e.include(this),e.format(this.name,this.getType(e),r)}generate(e,r,o,i,s){return e.format(this.name,this.getType(e),r)}},_e=zc;_e.PI="PI",_e.PI2="PI2",_e.RECIPROCAL_PI="RECIPROCAL_PI",_e.RECIPROCAL_PI2="RECIPROCAL_PI2",_e.LOG2="LOG2",_e.EPSILON="EPSILON";var nw=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
|
|
4
|
+
)*?)}`,"gim"),iw=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Zn=class extends ce{constructor(e=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(e)}getType(e){return e.getTypeByFormat(this.name)}getInputByName(e){let r=this.inputs.length;for(;r--;)if(this.inputs[r].name===e)return this.inputs[r]}generate(e,r,o,i,s){return r==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),r)}parse(e=""){this.src=e,this.inputs=[];let r=nw.exec(e);if(r){let o=r[2],i;for(;i=iw.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Qn=class extends ce{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,r){e.requires.uv[this.index]=!0;let o=this.index>0?this.index+1:"",i=e.isShader("vertex")?"uv"+o:"vUv"+o;return e.format(i,this.getType(e),r)}};rt.addKeyword("uv",function(){return new Qn});rt.addKeyword("uv2",function(){return new Qn(1)});var nl=require("three");var Ho=class extends ce{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??Ho.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case nl.LinearEncoding:return["Linear"];case nl.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=Ho.Nodes[this.method],l=e.include(s);if(l===Ho.LINEAR_TO_LINEAR)return e.format(o,i,r);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(l+"( "+o+", "+c+" )",i,r)}else return e.format(l+"( "+o+" )",i,r)}fromEncoding(e){let r=Ho.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=Ho.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},_t=Ho;_t.Nodes={LinearToLinear:new X(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
|
|
5
|
+
`)),sRGBToLinear:new X(["vec4 sRGBToLinear( in vec4 value ) {"," return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );","}"].join(`
|
|
6
|
+
`)),LinearTosRGB:new X(["vec4 LinearTosRGB( in vec4 value ) {"," return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );","}"].join(`
|
|
7
|
+
`))},_t.LINEAR_TO_LINEAR="LinearToLinear",_t.SRGB_TO_LINEAR="sRGBToLinear",_t.LINEAR_TO_SRGB="LinearTosRGB";var Ne=class extends X{constructor(e="",r,o,i,s){super(e,s,i,o,r);this.nodeType="Expression"}};var uh=require("three"),Mt=class extends De{constructor(e=new uh.Texture,r,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new Qn,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,r){return super.generate(e,r,this.value.uuid,"t")}generate(e,r){if(r==="sampler2D")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv.build(e,this.project?"v4":"v2"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l,c;this.project?l="texture2DProj":l=s?"tex2DBias":"tex2D",s?c=l+"( "+o+", "+i+", "+s+" )":c=l+"( "+o+", "+i+" )";let u={include:e.isShader("vertex"),ignoreCache:!0},a=this.getType(e);return e.addContext(u),this.colorSpace=this.colorSpace??new _t(new Ne("",a)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(c),c=this.colorSpace.build(e,a),e.removeContext(),e.format(c,a,r)}};var Z=class extends De{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,r,o,i,s,l){return e.format(this.value+(this.value%1?"":".0"),i,r)}};var Qi=class extends ce{constructor(e,r){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=r??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,r,o,i,s){i=this.getType(e);let l=this.value,c=l.build(e,r)+"( ",u=[];if(l.inputs){for(let a=0;a<l.inputs.length;a++){let p=l.inputs[a],d=this.inputs[a]||this.inputs[p.name];u.push(d.build(e,e.getTypeByFormat(p.type)))}c+=u.join(", ")+" )"}return e.format(c,i,r)}};var jc=class extends ce{constructor(e,r,o=jc.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=r,this.op=o}getType(e){let r=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(r)?"v4":e.getTypeLength(o)>e.getTypeLength(r)?o:r}generate(e,r){let o=this.getType(e);this.type=o;let i=this.a.build(e,o),s=this.b.build(e,o);return e.format("( "+i+" "+this.op+" "+s+" )",o,r)}},Lt=jc;Lt.ADD="+",Lt.SUB="-",Lt.MUL="*",Lt.DIV="/";var Le=class extends ce{constructor(e,r=Le.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof r!="string"?this.b=r:i=r,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Le.MIX:case Le.CLAMP:case Le.REFRACT:case Le.SMOOTHSTEP:case Le.FACEFORWARD:return 3;case Le.MIN:case Le.MAX:case Le.MOD:case Le.STEP:case Le.REFLECT:case Le.DISTANCE:case Le.DOT:case Le.CROSS:case Le.POW:return 2;default:return 1}}getInputType(e){let r=e.getTypeLength(this.a.getType(e)),o=this.b?e.getTypeLength(this.b.getType(e)):0,i=this.c?e.getTypeLength(this.c.getType(e)):0;return r>o&&r>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Le.LENGTH:case Le.DISTANCE:case Le.DOT:return"f";case Le.CROSS:return"v3"}return this.getInputType(e)}generate(e,r){let o,i,s,l=this.a?e.getTypeLength(this.a.getType(e)):0,c=this.b?e.getTypeLength(this.b.getType(e)):0,u=this.c?e.getTypeLength(this.c.getType(e)):0,a=this.getInputType(e),p=this.getType(e);switch(this.type=p,this.method){case Le.NEGATE:return e.format("( -"+this.a.build(e,a)+" )",a,r);case Le.INVERT:return e.format("( 1.0 - "+this.a.build(e,a)+" )",a,r);case Le.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Le.STEP:o=this.a.build(e,l===1?"f":a),i=this.b.build(e,a);break;case Le.MIN:case Le.MAX:case Le.MOD:o=this.a.build(e,a),i=this.b.build(e,c===1?"f":a);break;case Le.REFRACT:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,"f");break;case Le.MIX:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,u===1?"f":a);break;default:o=this.a.build(e,a),this.b&&(i=this.b.build(e,a)),this.c&&(s=this.c.build(e,a));break}let d=[];d.push(o),i&&d.push(i),s&&d.push(s);let f=this.getNumInputs(e);if(d.length!==f)throw Error(`Arguments not match used in "${this.method}". Require ${f}, currently ${d.length}.`);return e.format(this.method+"( "+d.join(", ")+" )",p,r)}},fe=Le;fe.RAD="radians",fe.DEG="degrees",fe.EXP="exp",fe.EXP2="exp2",fe.LOG="log",fe.LOG2="log2",fe.SQRT="sqrt",fe.INV_SQRT="inversesqrt",fe.FLOOR="floor",fe.CEIL="ceil",fe.NORMALIZE="normalize",fe.FRACT="fract",fe.SATURATE="saturate",fe.SIN="sin",fe.COS="cos",fe.TAN="tan",fe.ASIN="asin",fe.ACOS="acos",fe.ARCTAN="atan",fe.ABS="abs",fe.SIGN="sign",fe.LENGTH="length",fe.NEGATE="negate",fe.INVERT="invert",fe.MIN="min",fe.MAX="max",fe.MOD="mod",fe.STEP="step",fe.REFLECT="reflect",fe.DISTANCE="distance",fe.DOT="dot",fe.CROSS="cross",fe.POW="pow",fe.MIX="mix",fe.CLAMP="clamp",fe.REFRACT="refract",fe.SMOOTHSTEP="smoothstep",fe.FACEFORWARD="faceforward";var Jn=class extends ce{constructor(e,r,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=r,this.bias=o}bilinearCubeUV(e,r,o,i){let s=new Qi(Jn.Nodes.bilinearCubeUV,[r,o,i]);this.colorSpaceTL=this.colorSpaceTL??new _t(new Ne("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new _t(new Ne("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new _t(new Ne("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new _t(new Ne("","v4")),this.colorSpaceBR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(s.build(e)+".br");let l={include:e.isShader("vertex"),ignoreCache:!0};e.addContext(l),this.colorSpaceTLExp=new Ne(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ne(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ne(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ne(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new Ne("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return c.keywords.cubeUV_TL=this.colorSpaceTLExp,c.keywords.cubeUV_TR=this.colorSpaceTRExp,c.keywords.cubeUV_BL=this.colorSpaceBLExp,c.keywords.cubeUV_BR=this.colorSpaceBRExp,c.keywords.cubeUV=s,c}generate(e,r){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,s=new Qi(Jn.Nodes.roughnessToMip,[i]),l=new fe(s,Jn.Nodes.m0,Jn.Nodes.cubeUV_maxMipLevel,fe.CLAMP),c=new fe(l,fe.FLOOR),u=new fe(l,fe.FRACT),a=this.bilinearCubeUV(e,this.value,o,c),p=this.bilinearCubeUV(e,this.value,o,new Lt(c,new Z(1).setReadonly(!0),Lt.ADD)),d=new fe(a,p,u,fe.MIX);return e.format(d.build(e),"v4",r)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r)}},ei=Jn;ei.Nodes=function(){let e=new Zn(`struct TextureCubeUVData {
|
|
8
8
|
vec4 tl;
|
|
9
9
|
vec4 tr;
|
|
10
10
|
vec4 br;
|
|
11
11
|
vec4 bl;
|
|
12
12
|
vec2 f;
|
|
13
|
-
}`),r=new
|
|
13
|
+
}`),r=new _e("float cubeUV_maxMipLevel 8.0",!0),o=new _e("float cubeUV_minMipLevel 4.0",!0),i=new _e("float cubeUV_maxTileSize 256.0",!0),s=new _e("float cubeUV_minTileSize 16.0",!0),l=new X(`float getFace(vec3 direction) {
|
|
14
14
|
vec3 absDirection = abs(direction);
|
|
15
15
|
float face = -1.0;
|
|
16
16
|
if (absDirection.x > absDirection.z) {
|
|
@@ -25,7 +25,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
25
25
|
face = direction.y > 0.0 ? 1.0 : 4.0;
|
|
26
26
|
}
|
|
27
27
|
return face;
|
|
28
|
-
}`);l.useKeywords=!1;let c=new
|
|
28
|
+
}`);l.useKeywords=!1;let c=new X(`vec2 getUV(vec3 direction, float face) {
|
|
29
29
|
vec2 uv;
|
|
30
30
|
if (face == 0.0) {
|
|
31
31
|
uv = vec2(direction.z, direction.y) / abs(direction.x); // pos x
|
|
@@ -41,7 +41,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
41
41
|
uv = vec2(direction.x, direction.y) / abs(direction.z); // neg z
|
|
42
42
|
}
|
|
43
43
|
return 0.5 * (uv + 1.0);
|
|
44
|
-
}`);c.useKeywords=!1;let
|
|
44
|
+
}`);c.useKeywords=!1;let u=new X(`TextureCubeUVData bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {
|
|
45
45
|
float face = getFace(direction);
|
|
46
46
|
float filterInt = max(cubeUV_minMipLevel - mipInt, 0.0);
|
|
47
47
|
mipInt = max(mipInt, cubeUV_minMipLevel);
|
|
@@ -69,7 +69,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
69
69
|
uv.x -= texelSize;
|
|
70
70
|
vec4 bl = texture2D(envMap, uv);
|
|
71
71
|
return TextureCubeUVData( tl, tr, br, bl, f );
|
|
72
|
-
}`,[e,l,c,r,o,i,s]);
|
|
72
|
+
}`,[e,l,c,r,o,i,s]);u.useKeywords=!1;let a=new _e("float r0 1.0",!0),p=new _e("float v0 0.339",!0),d=new _e("float m0 -2.0",!0),f=new _e("float r1 0.8",!0),m=new _e("float v1 0.276",!0),h=new _e("float m1 -1.0",!0),g=new _e("float r4 0.4",!0),b=new _e("float v4 0.046",!0),x=new _e("float m4 2.0",!0),S=new _e("float r5 0.305",!0),w=new _e("float v5 0.016",!0),v=new _e("float m5 3.0",!0),N=new _e("float r6 0.21",!0),_=new _e("float v6 0.0038",!0),y=new _e("float m6 4.0",!0),I=[a,p,d,f,m,h,g,b,x,S,w,v,N,_,y],A=new X(`float roughnessToMip(float roughness) {
|
|
73
73
|
float mip = 0.0;
|
|
74
74
|
if (roughness >= r1) {
|
|
75
75
|
mip = (r0 - roughness) * (m1 - m0) / (r0 - r1) + m0;
|
|
@@ -83,7 +83,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
83
83
|
mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
|
|
84
84
|
}
|
|
85
85
|
return mip;
|
|
86
|
-
}`,
|
|
86
|
+
}`,I);return{bilinearCubeUV:u,roughnessToMip:A,m0:d,cubeUV_maxMipLevel:r}}();var Wo=class extends ce{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Wo.VIEW}getShared(){return this.scope===Wo.WORLD}build(e,r,o,i){let s=e.context[this.scope+"Normal"];return s?s.build(e,r,o,i):super.build(e,r,o)}generate(e,r,o,i,s){let l;switch(this.scope){case Wo.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case Wo.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case Wo.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),r)}},pt=Wo;pt.LOCAL="local",pt.WORLD="world",pt.VIEW="view",pt.NORMAL="normal";rt.addKeyword("viewNormal",function(){return new pt(pt.VIEW)});rt.addKeyword("localNormal",function(){return new pt(pt.NORMAL)});rt.addKeyword("worldNormal",function(){return new pt(pt.WORLD)});var Cr=class extends ce{constructor(e){super("v3");this.nodeType="Position";this.scope=e??Cr.LOCAL}getType(){switch(this.scope){case Cr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Cr.LOCAL:case Cr.WORLD:return!1}return!0}generate(e,r,o,i,s){let l;switch(this.scope){case Cr.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case Cr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case Cr.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Cr.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),r)}},Et=Cr;Et.LOCAL="local",Et.WORLD="world",Et.VIEW="view",Et.PROJECTION="projection";rt.addKeyword("position",function(){return new Et});rt.addKeyword("worldPosition",function(){return new Et(Et.WORLD)});rt.addKeyword("viewPosition",function(){return new Et(Et.VIEW)});var sr=class extends ce{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??sr.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case sr.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case sr.VECTOR:{let s=new pt(pt.VIEW),l=e.context.roughness,c=s.build(e,"v3"),u=new Et(Et.VIEW).build(e,"v3"),a=l?l.build(e,"f"):void 0,p=`reflect( -normalize( ${u} ), ${c} )`;a&&(p=`normalize( mix( ${p}, ${c}, ${a} * ${a} ) )`);let d=`inverseTransformDirection( ${p}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${d};`),i="reflectVec"):i=d;break}case sr.CUBE:{let s=new sr(sr.VECTOR).build(e,"v3"),l="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${l};`),i="reflectCubeVec"):i=l;break}case sr.SPHERE:{let l="normalize( ( viewMatrix * vec4( "+new sr(sr.VECTOR).build(e,"v3")+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";o?(e.addNodeCode(`vec2 reflectSphereVec = ${l};`),i="reflectSphereVec"):i=l;break}}return e.format(i,this.getType(),r)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,r)}},Mr=sr;Mr.CUBE="cube",Mr.SPHERE="sphere",Mr.VECTOR="vector";var il=class extends ce{constructor(e=new Mt,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new ei(this.value,r??new Mr(Mr.VECTOR),o),this.irradianceNode=new ei(this.value,new pt(pt.WORLD),new Z(1).setReadonly(!0))}generate(e,r){return e.isShader("fragment")?(e.require("irradiance"),e.context.bias&&e.context.bias.setTexture(this.value),(e.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(e,r)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),r))}};var ph=require("three");var sl=class extends De{constructor(e=new ph.CubeTexture,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new Mr,this.bias=o}getTexture(e,r){return super.generate(e,r,this.value.uuid,"tc")}generate(e,r){if(r==="samplerCube")return this.getTexture(e,r);let o=this.getTexture(e,r),i=this.uv?.build(e,"v3"),s=this.bias?this.bias.build(e,"f"):void 0;s===void 0&&e.context.bias&&(s=e.context.bias.setTexture(this).build(e,"f"));let l;s?l="texCubeBias( "+o+", "+i+", "+s+" )":l="texCube( "+o+", "+i+" )";let c={include:e.isShader("vertex"),ignoreCache:!0},u=this.getType(e);return e.addContext(c),this.colorSpace=this.colorSpace??new _t(new Ne("",u)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,u),e.removeContext(),e.format(l,u,r)}};var dh=["x","y","z","w"],sw=["float","vec2","vec3","vec4"],aw={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},lw={t:"sampler2D",tc:"samplerCube",b:"bool",i:"int",f:"float",c:"vec3",v2:"vec2",v3:"vec3",v4:"vec4",m3:"mat3",m4:"mat4","f[]":"float[]","v4[]":"vec4[]"},al=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function t(e,r){return e.deps.length-r.deps.length}return function(r,o){let i=this.getIncludes(r,o);if(!i)return"";let s="";i=i.sort(t);for(let l=0;l<i.length;l++)i[l].src&&(s+=i[l].src+`
|
|
87
87
|
`);return s}}();this.slots=[],this.caches=[],this.contexts=[],this.keywords={},this.nodeData={},this.fragmentVariables={},this.fragmentParsVariables={},this.vertexParsVariables={},this.requires={uv:[],color:[],transparent:!1,irradiance:!1,position:!1,worldPosition:!1,normal:!1,worldNormal:!1,vWorldViewDir:!1,modelMatrix:!1,viewMatrix:!1,projectionMatrix:!1},this.includes={consts:[],functions:[],structs:[]},this.attributes={},this.prefixCode=["#ifdef TEXTURE_LOD_EXT"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCubeLodEXT(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2DLodEXT(a, b, c)","#else"," #define texCube(a, b) textureCube(a, b)"," #define texCubeBias(a, b, c) textureCube(a, b, c)"," #define tex2D(a, b) texture2D(a, b)"," #define tex2DBias(a, b, c) texture2D(a, b, c)","#endif",`
|
|
88
88
|
// NOTE: Include Spline's blending modes. This could be part of BlendNode
|
|
89
89
|
#define SPE_BLENDING_NORMAL 0
|
|
@@ -125,10 +125,10 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
125
125
|
`}addVertexNodeCode(t){this.addNodeCode(t,"vertex")}addFragmentNodeCode(t){this.addNodeCode(t,"fragment")}addNodeCode(t,e){this.nodeCode[e??this.shader]+=t+`
|
|
126
126
|
`}clearNodeCode(t){t=t??this.shader;let e=this.nodeCode[t];return this.nodeCode[t]="",e}clearVertexNodeCode(){return this.clearNodeCode("vertex")}clearFragmentNodeCode(){return this.clearNodeCode("fragment")}addVertexFinalCode(t){this.addFinalCode(t,"vertex")}addFragmentFinalCode(t){this.addFinalCode(t,"fragment")}addFinalCode(t,e){this.finalCode[e??this.shader]+=t+`
|
|
127
127
|
`}addVertexParsCode(t){this.addParsCode(t,"vertex")}addFragmentParsCode(t){this.addParsCode(t,"fragment")}addParsCode(t,e){this.parsCode[e??this.shader]+=t+`
|
|
128
|
-
`}addVaryCode(t){this.addVertexParsCode(t),this.addFragmentParsCode(t)}isCache(t){return this.caches.indexOf(t)!==-1}isSlot(t){return this.slots.indexOf(t)!==-1}define(t,e){this.defines[t]=e===void 0?1:e}require(t){this.requires[t]=!0}isDefined(t){return this.defines[t]!==void 0}getVar(t,e,r,o="varying",i="V",s=""){let l=this.getVars(o),c=l[t];if(!c){let
|
|
129
|
-
`)}getVarListCode(t,e){e=e??"";let r="";for(let o=0,i=t.length;o<i;++o){let s=t[o],l=s.type,c=s.name,
|
|
128
|
+
`}addVaryCode(t){this.addVertexParsCode(t),this.addFragmentParsCode(t)}isCache(t){return this.caches.indexOf(t)!==-1}isSlot(t){return this.slots.indexOf(t)!==-1}define(t,e){this.defines[t]=e===void 0?1:e}require(t){this.requires[t]=!0}isDefined(t){return this.defines[t]!==void 0}getVar(t,e,r,o="varying",i="V",s=""){let l=this.getVars(o),c=l[t];if(!c){let u=l.length;c={name:r||"node"+i+u+(s?"_"+s:""),type:e},l.push(c),l[t]=c}return c}getTempVar(t,e,r,o){return this.getVar(t,e,r,this.shader,"T",o)}getAttribute(t,e){if(!this.attributes[t]){let r=this.getVar(t,e);this.addVertexParsCode("attribute "+e+" "+t+";"),this.addVertexFinalCode(r.name+" = "+t+";"),this.attributes[t]={varying:r,name:t,type:e}}return this.attributes[t]}getCode(t){return[this.prefixCode,this.parsCode[t],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[t],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[t],"uniform"),this.getIncludesCode("consts",t),this.getIncludesCode("structs",t),this.getIncludesCode("functions",t),"void main() {",this.getVarListCode(this.getVars(t)),this.code[t],this.resultCode[t],this.finalCode[t],"}"].join(`
|
|
129
|
+
`)}getVarListCode(t,e){e=e??"";let r="";for(let o=0,i=t.length;o<i;++o){let s=t[o],l=s.type,c=s.name,u=s.size,a=this.getFormatByType(l);if(a===void 0)throw new Error("Node pars "+a+" not found.");a.includes("[]")?r+=e+" "+a.substring(0,a.length-2)+" "+c+`[${u}];
|
|
130
130
|
`:r+=e+" "+a+" "+c+`;
|
|
131
|
-
`}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof
|
|
131
|
+
`}return r}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let e=t instanceof ct?t.uuid:t;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(t,e,r,o,i,s){if(e.includes("[]")){let l=this.inputs.arrayUniforms,c=l.list.length,u=new Zi({type:e,size:r.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(u),l[t].push(u),l[t][u.name]=u,this.uniforms[u.name]=u,u}else{let l=this.inputs.uniforms,c=l.list.length,u=new Zi({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(u),l[t].push(u),l[t][u.name]=u,this.uniforms[u.name]=u,u}}createVertexUniform(t,e,r,o,i){return this.createUniform("vertex",t,e,r,o,i)}createFragmentUniform(t,e,r,o,i){return this.createUniform("fragment",t,e,r,o,i)}include(t,e,r){let o;if(t=typeof t=="string"?rt.get(t):t,this.context.include===!1)return t.name;t instanceof X?o=this.includes.functions:t instanceof _e?o=this.includes.consts:t instanceof Zn&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(t){let s=i[t.name];if(s||(s=i[t.name]={node:t,deps:[]},i.push(s),s.src=t.build(this,"source")),t instanceof X&&e&&i[e.name]&&i[e.name].deps.indexOf(t)===-1&&(i[e.name].deps.push(t),t.includes?.length)){let l=0;do this.include(t.includes[l++],e);while(l<t.includes.length)}return r&&(s.src=r),t.name}else throw new Error("Include not found.")}colorToVectorProperties(t){return t.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(t){return t.replace(/c/g,"v3")}getIncludes(t,e){return this.includes[t][e||this.shader]}getConstructorFromLength(t){return sw[t-1]}isTypeMatrix(t){return/^m/.test(t)}getTypeLength(t){return t==="f"?1:parseInt(this.colorToVector(t).substr(1))}getTypeFromLength(t){return t===1?"f":"v"+t}findNode(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r?.isNode)return r}}resolve(...t){for(let e=0;e<arguments.length;e++){let r=t[e];if(r!==void 0){if(r.isNode)return r;if(r.isTexture)switch(r.mapping){case ar.CubeReflectionMapping:case ar.CubeRefractionMapping:return new sl(r);case ar.CubeUVReflectionMapping:return new il(new Mt(r));default:return new Mt(r)}else{if(r.isVector2)return new ut(r);if(r.isVector3)return new mt(r);if(r.isVector4)return new Jt(r)}}}}format(t,e,r){switch(this.colorToVector(r+" <- "+e)){case"f <- v2":return t+".x";case"f <- v3":return t+".x";case"f <- v4":return t+".x";case"f <- i":case"f <- b":return"float( "+t+" )";case"v2 <- f":return"vec2( "+t+" )";case"v2 <- v3":return t+".xy";case"v2 <- v4":return t+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+t+" ) )";case"v3 <- f":return"vec3( "+t+" )";case"v3 <- v2":return"vec3( "+t+", 0.0 )";case"v3 <- v4":return t+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+t+" ) )";case"v4 <- f":return"vec4( "+t+" )";case"v4 <- v2":return"vec4( "+t+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+t+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+t+" ) )";case"i <- f":case"i <- b":return"int( "+t+" )";case"i <- v2":return"int( "+t+".x )";case"i <- v3":return"int( "+t+".x )";case"i <- v4":return"int( "+t+".x )";case"b <- f":return"( "+t+" != 0.0 )";case"b <- v2":return"( "+t+" != vec2( 0.0 ) )";case"b <- v3":return"( "+t+" != vec3( 0.0 ) )";case"b <- v4":return"( "+t+" != vec4( 0.0 ) )";case"b <- i":return"( "+t+" != 0 )"}return t}getTypeByFormat(t){return aw[t]||t}getFormatByType(t){return lw[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return dh[t]}getIndexByElement(t){return dh.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let e in t)this.defines[e]=t[e];return this.defines}mergeUniform(t){for(let e in t)this.uniforms[e]=t[e];return this.uniforms}getTextureEncodingFromMap(t){let e;return t?t.isTexture&&(e=t.encoding):e=ar.LinearEncoding,e===ar.LinearEncoding&&this.context.gamma&&(e=ar.sRGBEncoding),e}};var Ve=require("three");var Pe=class extends De{constructor(e=0,r,o,i){super("c");this.nodeType="Color";this.value=e instanceof ot?e:new ot(e||0,r,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,r,o,i,s,l){o=e.getUUID(o??this.getUUID()),i=i??this.getType(e);let c=e.getNodeData(o),u=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let a=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${a};`)}return u?this.generateReadonly(e,r,o,i,s,l):e.isShader("vertex")?(c.vertex||(c.vertex=e.createVertexUniform(i,this,s,l,this.getLabel())),e.format(c.vertex.name,i,r)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,r))}generateReadonly(e,r,o,i,s,l){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,r)}};var ve=class extends De{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,r,o,i,s,l){return e.format(this.value.toString(),i,r)}};var ll=require("three");var qo=class extends ct{constructor(){super("basic");this.nodeType="Basic";this.color=new Pe(5855577),this.shadingAlpha=new Z(1),this.shadingBlend=new ve(0)}generate(e){let r;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(ll.UniformsUtils.merge([ll.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
|
|
132
132
|
`));let i=["#include <beginnormal_vertex>",`
|
|
133
133
|
#if !defined( USE_LAYER_DISPLACE )
|
|
134
134
|
#include <defaultnormal_vertex>
|
|
@@ -146,9 +146,9 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
146
146
|
#include <begin_vertex>
|
|
147
147
|
#endif /* !USE_LAYER_DISPLACE */
|
|
148
148
|
`];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
|
|
149
|
-
`)}else{this.color===void 0&&(this.color=new
|
|
149
|
+
`)}else{this.color===void 0&&(this.color=new Pe(5855577)),this.color.analyze(e,{slot:"color"}),this.alpha&&this.alpha.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"});let o=this.color.flow(e,"c",{slot:"color"}),i=this.alpha?this.alpha.flow(e,"f"):void 0,s=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0;e.requires.transparent=i!==void 0,e.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
|
|
150
150
|
`));let l=["#include <normal_fragment_begin>",o.code];i&&l.push(i.code,"#ifdef ALPHATEST"," if ( "+i.result+" <= ALPHATEST ) discard;","#endif"),s?l.push(s.code,`vec3 outgoingLight = ${o.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${s.result}, 1.0, SPE_BLENDING_NORMAL);`):l.push(`vec3 finalColor = ${o.result};`),i?l.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${i.result} );`):l.push("gl_FragColor = vec4("+o.result+", 1.0 );"),l.push("#include <fog_fragment>","#include <dithering_fragment>"),r=l.join(`
|
|
151
|
-
`)}return r}};var
|
|
151
|
+
`)}return r}};var fs=require("three");var wo=class extends De{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,r,o,i){return e.format(this.value?"true":"false",i,r)}};var fh=require("three");var ti=class extends De{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new fh.Matrix3}generateReadonly(e,r,o,i,s,l){return e.format("mat3("+this.value.elements.join(", ")+")",i,r)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var lr=class extends De{constructor(e=1,r){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(r)?r:typeof r=="number"?new Array(e).fill(r):new Array(e).fill(0)}};var Uc=require("three");var cr=class extends De{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof Uc.Vector4?new Array(e).fill(r):new Array(e).fill(new Uc.Vector4(0))}};var Ji=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(Ji||{}),xt=function(){let t=new X(`vec3 random3(vec3 c) {
|
|
152
152
|
float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
|
|
153
153
|
vec3 r;
|
|
154
154
|
r.z = fract(512.0*j);
|
|
@@ -157,7 +157,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
157
157
|
j *= .125;
|
|
158
158
|
r.y = fract(512.0*j);
|
|
159
159
|
return r-0.5;
|
|
160
|
-
}`),e=new
|
|
160
|
+
}`),e=new X(`float simplex3d(vec3 p) {
|
|
161
161
|
vec3 s = floor(p + dot(p, vec3(F3)));
|
|
162
162
|
vec3 x = p - s + dot(s, vec3(G3));
|
|
163
163
|
|
|
@@ -188,7 +188,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
188
188
|
d *= w;
|
|
189
189
|
|
|
190
190
|
return dot(d, vec4(52.0));
|
|
191
|
-
}`,[t]);e.keywords.F3=new
|
|
191
|
+
}`,[t]);e.keywords.F3=new _e("float F3 0.3333333"),e.keywords.G3=new _e("float G3 0.1666667");let r=new X(`float simplex3dFractal(vec3 m) {
|
|
192
192
|
mat3 rot1 = mat3(-0.37, 0.36, 0.85,-0.14,-0.93, 0.34,0.92, 0.01,0.4);
|
|
193
193
|
mat3 rot2 = mat3(-0.55,-0.39, 0.74, 0.33,-0.91,-0.24,0.77, 0.12,0.63);
|
|
194
194
|
mat3 rot3 = mat3(-0.71, 0.52,-0.47,-0.08,-0.72,-0.68,-0.7,-0.45,0.56);
|
|
@@ -196,7 +196,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
196
196
|
+ 0.2666667 * simplex3d(2.0 * m * rot2)
|
|
197
197
|
+ 0.1333333 * simplex3d(4.0 * m * rot3)
|
|
198
198
|
+ 0.0666667 * simplex3d(8.0 * m);
|
|
199
|
-
}`,[e]),o=new
|
|
199
|
+
}`,[e]),o=new X("vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}"),i=new X("vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}"),s=new X(`float simplexAshima(vec3 v) {
|
|
200
200
|
const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;
|
|
201
201
|
const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
|
|
202
202
|
vec3 i = floor(v + dot(v, C.yyy) );
|
|
@@ -241,7 +241,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
241
241
|
m = m * m;
|
|
242
242
|
return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),
|
|
243
243
|
dot(p2,x2), dot(p3,x3) ) );
|
|
244
|
-
}`,[o,i]),l=new
|
|
244
|
+
}`,[o,i]),l=new X("vec4 mod289(vec4 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}"),c=new X("vec4 perm(vec4 x){return mod289(((x * 34.0) + 1.0) * x);}",[l]),u=new X(`float noise(vec3 p){
|
|
245
245
|
vec3 a = floor(p);
|
|
246
246
|
vec3 d = p - a;
|
|
247
247
|
d = d * d * (3.0 - 2.0 * d);
|
|
@@ -256,7 +256,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
256
256
|
vec4 o3 = o2 * d.z + o1 * (1.0 - d.z);
|
|
257
257
|
vec2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x);
|
|
258
258
|
return o4.y * d.y + o4.x * (1.0 - d.y);
|
|
259
|
-
}`,[c]),a=new
|
|
259
|
+
}`,[c]),a=new X(`float fbm(vec3 x) {
|
|
260
260
|
float v = 0.0;
|
|
261
261
|
float a = 0.5;
|
|
262
262
|
vec3 shift = vec3(100);
|
|
@@ -266,7 +266,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
266
266
|
a *= 0.5;
|
|
267
267
|
}
|
|
268
268
|
return v;
|
|
269
|
-
}`,[
|
|
269
|
+
}`,[u]);a.keywords.NUM_OCTAVES=new _e(`int NUM_OCTAVES ${5}`);let p=new X("vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}"),d=new X(`float perlin(vec3 P){
|
|
270
270
|
vec3 Pi0 = floor(P);
|
|
271
271
|
vec3 Pi1 = Pi0 + vec3(1.0);
|
|
272
272
|
Pi0 = mod(Pi0, 289.0);
|
|
@@ -325,7 +325,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
325
325
|
vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
|
|
326
326
|
float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
|
|
327
327
|
return 2.2 * n_xyz;
|
|
328
|
-
}`,[o,i,
|
|
328
|
+
}`,[o,i,p]);return{simplex:e,simplexFractal:r,simplexAshima:s,fbm:a,perlin:d}}();var es=class extends ce{constructor(e,r,o,i,s,l,c,u,a,p,d,f){super("v3");this.nodeType="Noise";this.scale=e,this.size=r,this.move=o,this.fA=i,this.fB=s,this.distortion=l,this.colorA=c,this.colorB=u,this.colorC=a,this.colorD=p,this.alpha=d,this.noiseType=f,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r,o,i,s){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let l=Object.values(Ji)[this.noiseType.value],c=new X(`vec3 ${l}customNoise(float scale, vec3 size, float move, vec2 fA, vec2 fB, vec2 distortion, vec4 colorA, vec4 colorB, vec4 colorC, vec4 colorD, float alpha, out float calpha) {
|
|
329
329
|
vec3 st = position / size;
|
|
330
330
|
st /= scale;
|
|
331
331
|
vec3 q = vec3(${l}(st),
|
|
@@ -345,7 +345,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
345
345
|
|
|
346
346
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
347
347
|
return clamp(color, 0.0, 1.0).rgb;
|
|
348
|
-
}`,[
|
|
348
|
+
}`,[xt.simplex,xt.simplexFractal,xt.simplexAshima,xt.fbm,xt.perlin]),u=e.include(c),a=[];return a.push(this.scale.build(e,"f")),a.push(this.size.build(e,"v3")),a.push(this.move.build(e,"f")),a.push(this.fA.build(e,"v2")),a.push(this.fB.build(e,"v2")),a.push(this.distortion.build(e,"v2")),a.push(this.colorA.build(e,"v4")),a.push(this.colorB.build(e,"v4")),a.push(this.colorC.build(e,"v4")),a.push(this.colorD.build(e,"v4")),a.push(this.alpha.build(e,"f")),a.push(this.calpha),e.format(u+"("+a.join(",")+")",this.getType(e),r)}};es.numOctaves=5;var ts=require("three");var cl=class extends ct{constructor(){super("phong");this.nodeType="Phong";this.color=new Pe(5855577),this.specular=new Pe(1118481),this.shininess=new Z(30),this.shadingAlpha=new Z(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("PHONG"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(ts.UniformsUtils.merge([ts.UniformsLib.fog,ts.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
349
349
|
`));let i=["#include <beginnormal_vertex>",`
|
|
350
350
|
#ifndef USE_LAYER_DISPLACE
|
|
351
351
|
#include <defaultnormal_vertex>
|
|
@@ -364,8 +364,8 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
364
364
|
#include <begin_vertex>
|
|
365
365
|
#endif
|
|
366
366
|
`];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
|
|
367
|
-
`)}else{e.mergeUniform({penumbraSize:
|
|
368
|
-
`));let
|
|
367
|
+
`)}else{e.mergeUniform({penumbraSize:ht.penumbraSize}),this.color===void 0&&(this.color=new Pe(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),s=this.shininess.flow(e,"f"),l=this.shadingAlpha.flow(e,"f"),c=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,a=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=a!==void 0,e.addParsCode(["varying vec3 vWPosition;","uniform vec3 emissive;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_phong_pars_fragment>","#include <shadowmap_pars_fragment>","#include <dithering_pars_fragment>"].join(`
|
|
368
|
+
`));let p=["#include <normal_fragment_begin>",`
|
|
369
369
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
370
370
|
vec3 viewdx = dFdx(vViewPosition);
|
|
371
371
|
vec3 viewdy = dFdy(vViewPosition);
|
|
@@ -373,21 +373,21 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
373
373
|
if (dot(normal, faceNormal) < 0.0) {
|
|
374
374
|
normal *= -1.0;
|
|
375
375
|
}
|
|
376
|
-
`," BlinnPhongMaterial material;"];
|
|
376
|
+
`," BlinnPhongMaterial material;"];p.push(o.code," vec3 diffuseColor = "+o.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveRadiance = emissive;",i.code," vec3 specular = "+i.result+";",s.code," float shininess = max( 0.0001, "+s.result+" );"," float specularStrength = 1.0;"),a&&p.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),p.push("material.diffuseColor = diffuseColor;"),p.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),p.push(`
|
|
377
377
|
if (outgoingLight != diffuseColor) {
|
|
378
378
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
379
379
|
accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
|
|
380
380
|
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
|
|
381
381
|
}
|
|
382
|
-
`),p
|
|
383
|
-
`)}return r}};var
|
|
382
|
+
`),u&&p.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),a?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=p.join(`
|
|
383
|
+
`)}return r}};var kc=class extends ce{constructor(e,r,o,i,s,l,c){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=r,this.scale=o,this.intensity=i,this.factor=s,this.alpha=l,this.mode=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(kc.Nodes.fresnel),i=[];return i.push(this.color.build(e,"c")),i.push(this.bias.build(e,"f")),i.push(this.scale.build(e,"f")),i.push(this.intensity.build(e,"f")),i.push(this.factor.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},rs=kc;rs.Nodes=function(){return{fresnel:new X(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
|
|
384
384
|
float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
|
|
385
385
|
|
|
386
386
|
float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha;
|
|
387
387
|
calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0);
|
|
388
388
|
accumAlpha += (1.0 - accumAlpha) * lalpha;
|
|
389
389
|
return color;
|
|
390
|
-
}`)}}();var
|
|
390
|
+
}`)}}();var Hc=class extends ce{constructor(e,r,o,i,s,l,c){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=r,this.wavelengths=o,this.noiseStrength=i,this.noiseScale=s,this.offset=l,this.alpha=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Hc.Nodes.rainbow),i=[];return i.push(this.filmThickness.build(e,"f")),i.push(this.movement.build(e,"f")),i.push(this.wavelengths.build(e,"v3")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},os=Hc;os.Nodes=function(){let e=new X(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
|
|
391
391
|
vec3 st = position / noiseScale;
|
|
392
392
|
vec3 q = vec3(simplex3d(st),
|
|
393
393
|
simplex3d(st + vec3(1.0)),
|
|
@@ -400,7 +400,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
400
400
|
float noise = simplex3d(st + r);
|
|
401
401
|
|
|
402
402
|
return .5 + .5 * cos((((filmThickness + (noise * noiseStrength)) / (vec3(wavelengths.r * 1.0, wavelengths.g * 0.8, wavelengths.b * 0.6) + 1.0)) * dot(normalize(vWorldViewDir + (offset * -0.001)), normalize(vWNormal))) + movement);
|
|
403
|
-
}`,[
|
|
403
|
+
}`,[xt.simplex]);return{rainbow:new X(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) {
|
|
404
404
|
vec3 res = clamp(attenuation(wavelengths, filmThickness, movement, noiseStrength, noiseScale, offset), 0.0, 2.0);
|
|
405
405
|
|
|
406
406
|
float rainbowContribution = clamp(res.r + res.g + res.b, 0.0, 1.0);
|
|
@@ -409,7 +409,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
409
409
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
410
410
|
|
|
411
411
|
return res;
|
|
412
|
-
}`,[e])}}();var
|
|
412
|
+
}`,[e])}}();var Wc=class extends ce{constructor(e,r,o,i,s,l,c,u,a,p,d,f,m,h,g,b){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=e,this.contourColor=r,this.outlineWidth=o,this.contourWidth=i,this.contourThreshold=s,this.outlineThreshold=l,this.contourFrequency=c,this.outlineSmoothing=u,this.contourDirection=a,this.positionalLines=p,this.compensation=d,this.resolution=f,this.normalMap=m,this.depthMap=h,this.pixelRatio=g,this.alpha=b,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.extensions.derivatives=!0,this.firstTime){let o=this.outlineWidth.build(e,"f"),i=this.resolution.build(e,"v2"),s=this.compensation.build(e,"b"),l=this.pixelRatio.build(e,"f");e.addVertexParsVariable("randomColor","attribute vec3"),e.addVertexParsVariable("extrudeNormal","attribute vec3"),e.addVertexParsVariable(o,"uniform float"),e.addVertexParsVariable(i,"uniform vec2"),e.addVertexParsVariable(s,"uniform bool"),e.addVertexParsVariable(l,"uniform float"),e.addVertexParsVariable("vID","flat out float"),e.addFragmentParsVariable("vID","flat in float");let c=`g${this.uuid.toString().replace(/-/g,"")}`;e.addVertexFinalCode(`
|
|
413
413
|
vID = randomColor.r;
|
|
414
414
|
if (${s}) {
|
|
415
415
|
vec4 ${c}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
|
|
@@ -423,7 +423,7 @@ var Th=Object.create;var us=Object.defineProperty;var Ah=Object.getOwnPropertyDe
|
|
|
423
423
|
// if this offset is the biggest of all the potential offsets
|
|
424
424
|
gl_Position = ${c}_clipPosition;
|
|
425
425
|
}
|
|
426
|
-
`)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(
|
|
426
|
+
`)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Wc.Nodes.outline),i=[];return i.push(this.outlineColor.build(e,"c")),i.push(this.contourColor.build(e,"c")),i.push(this.outlineWidth.build(e,"f")),i.push(this.contourWidth.build(e,"f")),i.push(this.contourThreshold.build(e,"f")),i.push(this.outlineThreshold.build(e,"f")),i.push(this.contourFrequency.build(e,"f")),i.push(this.outlineSmoothing.build(e,"f")),i.push(this.contourDirection.build(e,"v3")),i.push(this.positionalLines.build(e,"b")),i.push(this.resolution.build(e,"v2")),i.push(this.normalMap.getTexture(e,"t")),i.push(this.depthMap.getTexture(e,"t")),i.push(this.pixelRatio.build(e,"f")),i.push(this.compensation.build(e,"b")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),this.firstTime=!this.firstTime,e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("OutlineNode is not compatible with "+e.shader+" shader."),""}},ns=Wc;ns.Nodes=function(){let e=new X(`
|
|
427
427
|
float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outlineWidth, float pixelRatio)
|
|
428
428
|
{
|
|
429
429
|
vec2 texelSize = (vec2(1.0) / resolution) * outlineWidth * pixelRatio;
|
|
@@ -524,7 +524,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
|
|
|
524
524
|
float edgeNormal = sqrt(dot(sobel_edge_h, sobel_edge_h) + dot(sobel_edge_v, sobel_edge_v));
|
|
525
525
|
return edgeNormal;
|
|
526
526
|
}
|
|
527
|
-
`);return{outline:new
|
|
527
|
+
`);return{outline:new X(`vec3 outline(vec3 outlineColor, vec3 contourColor, float outlineWidth, float contourWidth, float outlineThreshold, float contourThreshold, float outlineSmoothing, float contourFrequency, vec3 contourDirection, bool positionalLines, vec2 resolution, sampler2D normalMap, sampler2D depthMap, float pixelRatio, bool compensation, float alpha, out float calpha) {
|
|
528
528
|
vec3 result = outlineColor;
|
|
529
529
|
float resultAlpha = 0.0;
|
|
530
530
|
|
|
@@ -563,11 +563,11 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
|
|
|
563
563
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
564
564
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
565
565
|
return result;
|
|
566
|
-
}`,[e])}}();var
|
|
566
|
+
}`,[e])}}();var qc=class extends ce{constructor(e,r,o,i,s,l,c,u){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=r,this.roughness=o,this.transmissionSamplerSize=i,this.transmissionSamplerMap=s,this.transmissionDepthMap=l,this.aspectRatio=c,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0,e.isShader("fragment")){e.define("NUM_SAMPLES",30),e.require("worldPosition"),e.requires.worldNormal=!0,e.requires.modelMatrix=!0,e.requires.projectionMatrix=!0,e.addFragmentVariable(this.calpha,"float");let o=e.include(qc.Nodes.transmission),i=[];return i.push(this.thickness.build(e,"f")),i.push(this.ior.build(e,"f")),i.push(this.roughness.build(e,"f")),i.push(this.transmissionSamplerSize.build(e,"v2")),i.push(this.transmissionSamplerMap.getTexture(e,"t")),i.push(this.transmissionDepthMap.getTexture(e,"t")),i.push(this.aspectRatio.build(e,"v2")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},is=qc;is.Nodes=function(){let e=new X(`
|
|
567
567
|
float gaussian(vec2 i) {
|
|
568
568
|
const float sigma = float(NUM_SAMPLES) * .25;
|
|
569
569
|
return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma );
|
|
570
|
-
}`),r=new
|
|
570
|
+
}`),r=new X(`
|
|
571
571
|
vec3 blur(sampler2D sp, vec2 U, vec2 scale, float lod, sampler2D dm, vec2 unrefractedU, vec2 aspectRatio) {
|
|
572
572
|
// Slightly modified version of this:
|
|
573
573
|
// https://www.shadertoy.com/view/ltScRG
|
|
@@ -597,7 +597,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
|
|
|
597
597
|
a += gaussian;
|
|
598
598
|
}
|
|
599
599
|
return O / a;
|
|
600
|
-
}`,[e]),o=new
|
|
600
|
+
}`,[e]),o=new X(`
|
|
601
601
|
vec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {
|
|
602
602
|
// Direction of refracted light.
|
|
603
603
|
vec3 refractionVector = refract( -v, n, 1.0 / ior );
|
|
@@ -608,18 +608,18 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
|
|
|
608
608
|
modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
|
|
609
609
|
// The thickness is specified in local space.
|
|
610
610
|
return normalize( refractionVector ) * thickness * modelScale;
|
|
611
|
-
}`),i=new
|
|
611
|
+
}`),i=new X(`
|
|
612
612
|
float applyIorToRoughness( float roughness, float ior ) {
|
|
613
613
|
// Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and
|
|
614
614
|
// an IOR of 1.5 results in the default amount of microfacet refraction.
|
|
615
615
|
return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
|
|
616
|
-
} `),s=new
|
|
616
|
+
} `),s=new X(`
|
|
617
617
|
vec3 getTransmissionSample( vec2 fragCoord, float roughness, float ior, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 unrefractedCoords, vec2 aspectRatio) {
|
|
618
618
|
float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
|
|
619
619
|
float lod = applyIorToRoughness(roughness, ior);
|
|
620
620
|
|
|
621
621
|
return blur(transmissionSamplerMap, fragCoord, vec2(lod / (transmissionSamplerSize.x / 2.)), min(framebufferLod / 5.5, 8.5), transmissionDepthMap, unrefractedCoords, aspectRatio);
|
|
622
|
-
}`,[i,r]),l=new
|
|
622
|
+
}`,[i,r]),l=new X(`
|
|
623
623
|
vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat4 modelMatrix, mat4 viewMatrix, mat4 projMatrix, float ior, float thickness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio ) {
|
|
624
624
|
vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
|
|
625
625
|
vec3 refractedRayExit = position + transmissionRay;
|
|
@@ -637,7 +637,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
637
637
|
|
|
638
638
|
// Sample framebuffer to get pixel the refracted ray hits.
|
|
639
639
|
return getTransmissionSample( refractionCoords, roughness, ior, transmissionSamplerSize, transmissionSamplerMap, transmissionDepthMap, unrefractedCoords, aspectRatio );
|
|
640
|
-
}`,[s,o]);return{transmission:new
|
|
640
|
+
}`,[s,o]);return{transmission:new X(`
|
|
641
641
|
vec3 transmission(float thickness, float ior, float roughness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio, vec3 normal, float alpha, out float calpha) {
|
|
642
642
|
vec3 v = vec3(0.);
|
|
643
643
|
if (isOrthographic) {
|
|
@@ -651,7 +651,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
651
651
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
652
652
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
653
653
|
return transmission;
|
|
654
|
-
}`,[l])}}();var
|
|
654
|
+
}`,[l])}}();var ri=class extends ce{constructor(e,r,o,i,s,l,c,u,a,p,d){super("v3");this.nodeType="Depth";this.gradientType=e,this.smooth=r,this.near=o,this.far=i,this.isVector=s,this.isWorldSpace=l,this.origin=c,this.direction=u,this.colors=a,this.steps=p,this.alpha=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){let o=`g${this.uuid.toString().replace(/-/g,"")}`,i=new X(`vec3 ${o}_sdepth(float near, float far, vec3 origin, vec3 direction, vec4 colors[${o}_MAX_COLORS], float steps[${o}_MAX_COLORS], float alpha, out float calpha) {
|
|
655
655
|
vec4 color = colors[0];
|
|
656
656
|
#ifdef ${o}_IS_VECTOR
|
|
657
657
|
#ifdef ${o}_LINEAR
|
|
@@ -691,25 +691,25 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
691
691
|
|
|
692
692
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
693
693
|
return color.rgb;
|
|
694
|
-
}`,[
|
|
694
|
+
}`,[ri.Nodes.vectorLinearWorldSpaceDepth,ri.Nodes.vectorLinearObjectSpaceDepth,ri.Nodes.vectorSphericalObjectSpaceDepth,ri.Nodes.vectorSphericalWorldSpaceDepth]);if(e.isShader("fragment")){e.define(`${o}_MAX_COLORS`,this.colors.value.length),this.smooth.value&&e.define(`${o}_SMOOTH`),this.isVector.value>.5&&e.define(`${o}_IS_VECTOR`),this.gradientType.value===0&&e.define(`${o}_LINEAR`),this.isWorldSpace.value>.5&&e.define(`${o}_WORLDSPACE`),e.require("worldPosition"),e.addFragmentVariable(this.calpha,"float");let s=e.include(i),l=[];return l.push(this.near.build(e,"f")),l.push(this.far.build(e,"f")),l.push(this.origin.build(e,"v3")),l.push(this.direction.build(e,"v3")),l.push(this.colors.build(e,"v4[]")),l.push(this.steps.build(e,"f[]")),l.push(this.alpha.build(e,"f")),l.push(this.calpha),e.format(s+"("+l.join(",")+")",this.getType(e),r)}else return console.warn("DepthNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},ss=ri;ss.Nodes=function(){let e=new X(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
|
|
695
695
|
vec3 n = normalize(direction);
|
|
696
696
|
float dist = (n.x*(vWPosition.x - origin.x) + n.y*(vWPosition.y - origin.y) + n.z*(vWPosition.z - origin.z));
|
|
697
697
|
return ( dist - near ) / ( far - near );
|
|
698
|
-
}`),r=new
|
|
698
|
+
}`),r=new X(`float vectorLinearObjectSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
|
|
699
699
|
vec3 n = normalize(direction);
|
|
700
700
|
float dist = (n.x*(position.x - origin.x) + n.y*(position.y - origin.y) + n.z*(position.z - origin.z));
|
|
701
701
|
return ( dist - near ) / ( far - near );
|
|
702
|
-
}`),o=new
|
|
702
|
+
}`),o=new X(`float vectorSphericalWorldSpaceDepth(vec3 origin, float near, float far) {
|
|
703
703
|
float dist = length(vWPosition - origin);
|
|
704
704
|
return ( dist - near ) / ( far - near );
|
|
705
|
-
}`),i=new
|
|
705
|
+
}`),i=new X(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
|
|
706
706
|
float dist = length(position - origin);
|
|
707
707
|
return ( dist - near ) / ( far - near );
|
|
708
|
-
}`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var
|
|
708
|
+
}`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:r,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var as=class extends ce{constructor(e,r,o,i){super("v3");this.nodeType="Blend";this.a=e,this.b=r,this.alpha=o,this.mode=i}generate(e,r){if(e.isShader("fragment")){let o=[];return o.push(this.a.build(e,"c")),o.push(this.b.build(e,"c")),o.push(this.alpha.build(e,"f")),o.push(this.mode.build(e,"i")),e.format("spe_blend("+o.join(",")+")",this.getType(e),r)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}};var $c=(e=>(e.NOISE="noise",e.MAP="map",e))($c||{}),Yc=class extends ce{constructor(e,r,o,i,s){super("v3");this.displacementTypeIndex=new ve(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=r,Object.values($c)[this.displacementTypeIndex.value]==="map"&&(this.mat=new ti(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=i,this.noiseFunctionIndex=s}generate(e,r){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,i=[];switch(i.push("displaced_position"),i.push("displaced_normal"),Object.values($c)[this.displacementTypeIndex.value]){case"map":{o=e.include(Yc.Nodes.map),i.push(this.movementOrTexture.getTexture(e,"t")),i.push("uv"),i.push(this.cropOrOffset.build(e,"f")),this.mat&&i.push(this.mat.build(e,"mat3"));break}case"noise":{let l=Object.values(Ji)[this.noiseFunctionIndex.value],c=new X(`vec3 orthogonal(vec3 v) {
|
|
709
709
|
return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
|
|
710
|
-
}`),
|
|
710
|
+
}`),u=new X(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
|
|
711
711
|
return p + n * ${l}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
|
|
712
|
-
}`,[
|
|
712
|
+
}`,[xt.simplex,xt.simplexFractal,xt.simplexAshima,xt.fbm,xt.perlin]),a=new X(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) {
|
|
713
713
|
vec3 displaced_position = distorted(position, normal, scale, intensity, offset, neighbor_offset, movement);
|
|
714
714
|
vec3 tangent1 = orthogonal(normal);
|
|
715
715
|
vec3 tangent2 = normalize(cross(normal, tangent1));
|
|
@@ -725,9 +725,9 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
725
725
|
vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement);
|
|
726
726
|
displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
|
|
727
727
|
return displaced_position;
|
|
728
|
-
}`,[
|
|
728
|
+
}`,[u,c]);o=e.include(a),i.push(this.scale.build(e,"f")),i.push(this.cropOrOffset.build(e,"v3")),i.push(this.movementOrTexture.build(e,"f"));break}}return i.push(this.intensity.build(e,"f")),i.push("displaced_normal"),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},ls=Yc;ls.Nodes=function(){let e=new X(`vec3 orthogonal(vec3 v) {
|
|
729
729
|
return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
|
|
730
|
-
}`),r=new
|
|
730
|
+
}`),r=new X(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
|
|
731
731
|
vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset;
|
|
732
732
|
vec4 tmp = texture2D(tex, uvs);
|
|
733
733
|
vec3 col = tmp.rgb;
|
|
@@ -737,7 +737,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
737
737
|
}
|
|
738
738
|
}
|
|
739
739
|
return col.r;
|
|
740
|
-
}`);return{map:new
|
|
740
|
+
}`);return{map:new X(`vec3 vertexDisplacementMap(vec3 position, vec3 normal, sampler2D tex, vec2 uv, float crop, mat3 mat, float intensity, out vec3 displaced_normal) {
|
|
741
741
|
vec3 displaced_position = position + normal * displacementMapTexture(tex, crop, uv, mat, vec2(0.0)) * intensity;
|
|
742
742
|
vec3 tangent1 = normalize(orthogonal(normal));
|
|
743
743
|
vec3 tangent2 = normalize(cross(normal, tangent1));
|
|
@@ -747,7 +747,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
747
747
|
vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
|
|
748
748
|
displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
|
|
749
749
|
return displaced_position;
|
|
750
|
-
}`,[e,r])}}();var
|
|
750
|
+
}`,[e,r])}}();var Xc=class extends ce{constructor(e,r,o,i,s,l,c,u){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=r,this.colors=o,this.steps=i,this.offset=s,this.morph=l,this.angle=c,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.define("GRAD_MAX",10),e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(Xc.Nodes.gradient),i=[];return i.push(this.gradientType.build(e,"i")),i.push(this.smooth.build(e,"b")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.offset.build(e,"v2")),i.push(this.morph.build(e,"v2")),i.push(this.angle.build(e,"f")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},cs=Xc;cs.Nodes=function(){return{gradient:new X(`vec3 gradient(int gradientType, bool smoothed, vec4 colors[GRAD_MAX], float steps[GRAD_MAX], vec2 offset, vec2 morph, float angle, float alpha, out float calpha) {
|
|
751
751
|
vec4 color = colors[0];
|
|
752
752
|
vec2 m = morph / vUv.xy;
|
|
753
753
|
vec2 rot = vec2( 0.5 + m.x, m.y );
|
|
@@ -789,7 +789,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
789
789
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
790
790
|
|
|
791
791
|
return color.xyz;
|
|
792
|
-
}`)}}();var
|
|
792
|
+
}`)}}();var ps=class extends ce{constructor(e,r,o,i,s,l,c,u,a,p){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=e,this.textureSize=r,this.crop=o,this.projection=i,this.axis=s,this.side=l,this.size=c,this.mat=u,this.alpha=a,this.mode=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){e.require("position"),e.require("normal"),e.require("uv"),e.requires.uv=[!0],e.extensions.shaderTextureLOD=!0,e.extensions.derivatives=!0;let o=`g${this.uuid.toString().replace(/-/g,"")}`,i;switch(this.projection.value){case 3:i=e.include(ps.Nodes.cylindrical);break;case 2:i=e.include(ps.Nodes.spherical);break;case 1:let l=["vec3(1.0, 0.0, 0.0)","vec3(0.0, 1.0, 0.0)","vec3(0.0, 0.0, 1.0)"][this.axis.value],c=new X(`
|
|
793
793
|
vec3 ${o}_planarTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
794
794
|
|
|
795
795
|
vec2 uvs = ( mat * vec3( (${o}_vCustomUv * 2. - 1.) / (size * .5), 1. ) / 2. + 0.5 ).xy;
|
|
@@ -808,7 +808,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
|
|
|
808
808
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
809
809
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
810
810
|
return col;
|
|
811
|
-
}`);i=e.include(c);break;default:i=e.include(
|
|
811
|
+
}`);i=e.include(c);break;default:i=e.include(ps.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){e.addVertexParsCode(`varying vec2 ${o}_vCustomUv;`),e.addFragmentParsCode(`varying vec2 ${o}_vCustomUv;`);let l=["zy","xz","xy"][this.axis.value];e.addVertexFinalCode(`${o}_vCustomUv = (1. + (transformed.${l})) / 2.;`)}e.addFragmentVariable(this.calpha,"float");let s=[];return s.push(this.texture.generate(e,"t")),s.push(this.textureSize.build(e,"v2")),s.push(this.crop.build(e,"f")),s.push(this.mat.build(e,"mat3")),s.push(this.size.build(e,"v2")),s.push(this.alpha.build(e,"f")),s.push(this.mode.build(e,"i")),s.push(this.calpha),this.firstTime=!this.firstTime,e.format(i+"("+s.join(",")+")",this.getType(e),r)}},us=ps;us.Nodes=function(){let e=new X(`
|
|
812
812
|
vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
813
813
|
vec3 posN = normalize(position);
|
|
814
814
|
float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
|
|
@@ -838,7 +838,7 @@ vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, v
|
|
|
838
838
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
839
839
|
return col;
|
|
840
840
|
}
|
|
841
|
-
`),r=new
|
|
841
|
+
`),r=new X(`
|
|
842
842
|
vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
843
843
|
vec3 posN = normalize(vPosition);
|
|
844
844
|
float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
|
|
@@ -866,7 +866,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
866
866
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
867
867
|
return col;
|
|
868
868
|
}
|
|
869
|
-
`),o=new
|
|
869
|
+
`),o=new X(`vec3 uvTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
|
|
870
870
|
|
|
871
871
|
vec2 uvs = ( mat * vec3( vUv * 2. - 1., 1. ) / 2. + 0.5 ).xy;
|
|
872
872
|
vec4 tmp = texture2D( tex, uvs );
|
|
@@ -882,14 +882,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
882
882
|
calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
|
|
883
883
|
accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
|
|
884
884
|
return col;
|
|
885
|
-
}`);return{cylindrical:e,spherical:r,uv:o}}();var
|
|
885
|
+
}`);return{cylindrical:e,spherical:r,uv:o}}();var Kc=class extends ce{constructor(e,r){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=r}generate(e,r){if(e.isShader("fragment")){let o=e.include(Kc.Nodes.customNormal),i=[];return i.push(this.cnormal.build(e,"v3")),i.push("normal"),i.push(this.alpha.build(e,"f")),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},ds=Kc;ds.Nodes=function(){return{customNormal:new X(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
|
|
886
886
|
vec3 normal = packNormalToRGB( norm ).rgb;
|
|
887
887
|
normal *= step( vec3(0.5), cnormal );
|
|
888
888
|
|
|
889
889
|
accumAlpha += ( 1.0 - accumAlpha ) * alpha;
|
|
890
890
|
|
|
891
891
|
return normal;
|
|
892
|
-
}`)}}();var
|
|
892
|
+
}`)}}();var ht={normalRenderTarget:new Mt,normalRenderTargetDepth:new Mt,transmissionRenderTarget:new Mt,transmissionSize:new ut(2048,2048),transmissionRenderTargetDepth:new Mt,pixelRatioNode:new Z(1),resolution:new ut,penumbraSize:new lr(5,.5)};for(let n of Object.values(ht))n.isRenderGlobal=!0;var ms=class extends ct{constructor(){super("lambert");this.nodeType="Lambert";this.color=new Pe(5855577),this.emissive=new Pe(0),this.emissiveIntensity=new Z(1),this.shadingAlpha=new Z(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("LAMBERT"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(fs.UniformsUtils.merge([fs.UniformsLib.fog,fs.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <color_pars_vertex>","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
893
893
|
`));let i=["#include <beginnormal_vertex>",`
|
|
894
894
|
#ifndef USE_LAYER_DISPLACE
|
|
895
895
|
#include <defaultnormal_vertex>
|
|
@@ -981,21 +981,21 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
981
981
|
#pragma unroll_loop_end
|
|
982
982
|
#endif
|
|
983
983
|
`," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
|
|
984
|
-
`)}else{e.mergeUniform({penumbraSize:
|
|
985
|
-
`));let
|
|
984
|
+
`)}else{e.mergeUniform({penumbraSize:ht.penumbraSize}),this.color===void 0&&(this.color=new Pe(5855577)),this.color.analyze(e,{slot:"color"}),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.emissive.flow(e,"c",{slot:"emissive"}),s=this.emissiveIntensity.flow(e,"f",{slot:"emissive"}),l=this.shadingAlpha.flow(e,"f"),c=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,a=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=a!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vViewPosition;","varying vec3 vWPosition;","varying vec3 vLightFront;","varying vec3 vIndirectFront;","#ifndef DOUBLE_SIDED"," #define DOUBLE_SIDED","#endif","#include <normal_pars_fragment>","#ifdef DOUBLE_SIDED"," varying vec3 vLightBack;"," varying vec3 vIndirectBack;","#endif","#include <bsdfs>","#include <lights_pars_begin>","#include <fog_pars_fragment>","#include <shadowmap_pars_fragment>","#include <shadowmask_pars_fragment>","#include <clipping_planes_pars_fragment>","#include <dithering_pars_fragment>"].join(`
|
|
985
|
+
`));let p=["#include <normal_fragment_begin>",`
|
|
986
986
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
987
987
|
vec3 viewdx = dFdx(vViewPosition);
|
|
988
988
|
vec3 viewdy = dFdy(vViewPosition);
|
|
989
989
|
vec3 faceNormal = normalize(cross(viewdx, viewdy));
|
|
990
990
|
bool isFrontFacing = (dot(normal, faceNormal) >= 0.0);
|
|
991
|
-
`,"#include <clipping_planes_fragment>"];
|
|
991
|
+
`,"#include <clipping_planes_fragment>"];p.push(o.code,"vec3 diffuseColor = "+o.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),a&&p.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),p.push("#ifdef DOUBLE_SIDED"," reflectedLight.indirectDiffuse += ( isFrontFacing ) ? vIndirectFront : vIndirectBack;","#else"," reflectedLight.indirectDiffuse += vIndirectFront;","#endif","#include <lightmap_fragment>","reflectedLight.indirectDiffuse *= BRDF_Lambert( diffuseColor.rgb );","#ifdef DOUBLE_SIDED"," reflectedLight.directDiffuse = ( isFrontFacing ) ? vLightFront : vLightBack;","#else"," reflectedLight.directDiffuse = vLightFront;","#endif","reflectedLight.directDiffuse *= BRDF_Lambert( diffuseColor.rgb ) * getShadowMask();"),i&&p.push(i.code,"reflectedLight.directDiffuse += "+i.result+" * "+s.result+";"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),p.push(`
|
|
992
992
|
if (outgoingLight != diffuseColor) {
|
|
993
993
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
994
994
|
accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
|
|
995
995
|
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
|
|
996
996
|
}
|
|
997
|
-
`),p
|
|
998
|
-
`)}return r}};var
|
|
997
|
+
`),u&&p.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),a?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=p.join(`
|
|
998
|
+
`)}return r}};var oi=require("three");var hs=class extends ct{constructor(){super("standard");this.nodeType="Standard";this.color=new Pe(5855577),this.roughness=new Z(.3),this.metalness=new Z(0),this.reflectivity=new Z(.5),this.shadingAlpha=new Z(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("STANDARD"),e.requires.lights=!0,e.extensions.derivatives=!0,e.extensions.shaderTextureLOD=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(oi.UniformsUtils.merge([oi.UniformsLib.fog,oi.UniformsLib.lights])),oi.UniformsLib.LTC_1&&(e.uniforms.ltc_1={value:void 0},e.uniforms.ltc_2={value:void 0}),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
999
999
|
`));let i=["#include <beginnormal_vertex>",`
|
|
1000
1000
|
#if !defined( USE_LAYER_DISPLACE )
|
|
1001
1001
|
#include <defaultnormal_vertex>
|
|
@@ -1013,7 +1013,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1013
1013
|
#include <begin_vertex>
|
|
1014
1014
|
#endif /* !USE_LAYER_DISPLACE */
|
|
1015
1015
|
`];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
|
|
1016
|
-
`)}else{e.mergeUniform({penumbraSize:
|
|
1016
|
+
`)}else{e.mergeUniform({penumbraSize:ht.penumbraSize});let o={gamma:!0};this.color===void 0&&(this.color=new Pe(5855577)),this.color.analyze(e,{slot:"color",context:o}),this.roughness.analyze(e),this.metalness.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e),this.reflectivity&&this.reflectivity.analyze(e);let i=this.color.flow(e,"c",{slot:"color",context:o}),s=this.roughness.flow(e,"f"),l=this.metalness.flow(e,"f"),c=this.shadingAlpha.flow(e,"f"),u=this.shadingBlend.flow(e,"i"),a=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,p=this.alpha?this.alpha.flow(e,"f"):void 0,d=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=p!==void 0,e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;",`uniform float penumbraSize[${5}];`,"#include <normal_pars_fragment>","#include <dithering_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <lights_physical_pars_fragment>","#include <shadowmap_pars_fragment>"].join(`
|
|
1017
1017
|
`));let f=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
|
|
1018
1018
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
1019
1019
|
vec3 viewdx = dFdx(vViewPosition);
|
|
@@ -1022,14 +1022,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1022
1022
|
if (dot(normal, faceNormal) < 0.0) {
|
|
1023
1023
|
normal *= -1.0;
|
|
1024
1024
|
}
|
|
1025
|
-
`," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];f.push(i.code," vec3 diffuseColor = "+i.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",s.code," float roughnessFactor = "+s.result+";",l.code," float metalnessFactor = "+l.result+";"),
|
|
1025
|
+
`," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];f.push(i.code," vec3 diffuseColor = "+i.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",s.code," float roughnessFactor = "+s.result+";",l.code," float metalnessFactor = "+l.result+";"),p&&f.push(p.code,"#ifdef ALPHATEST"," if ( "+p.result+" <= ALPHATEST ) discard;","#endif"),f.push("vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );"),f.push("material.diffuseColor = diffuseColor * ( 1.0 - metalnessFactor );","material.roughness = max( roughnessFactor, 0.0525 );","material.roughness += geometryRoughness;","material.roughness = min( material.roughness, 1.0 );","material.roughness = clamp( roughnessFactor, 0.04, 1.0 );"),d?f.push(d.code,"material.specularColor = mix( vec3( 0.16 * pow2( "+d.result+" ) ), diffuseColor, metalnessFactor );"):f.push("material.specularColor = mix( vec3( 0.04 ), diffuseColor, metalnessFactor );"),f.push("#include <lights_fragment_begin>"),f.push("#include <lights_fragment_end>"),f.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;"),f.push(`
|
|
1026
1026
|
if (outgoingLight != diffuseColor) {
|
|
1027
1027
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
1028
1028
|
accumAlpha += ( 1.0 - accumAlpha ) * ${c.result} * lightAccu;
|
|
1029
|
-
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${c.result}, ${
|
|
1029
|
+
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${c.result}, ${u.result} );
|
|
1030
1030
|
}
|
|
1031
|
-
`),a&&f.push(a.code,`outgoingLight = spe_blend(outgoingLight, ${a.result}, 1.0, SPE_BLENDING_NORMAL);`),
|
|
1032
|
-
`)}return r}};var
|
|
1031
|
+
`),a&&f.push(a.code,`outgoingLight = spe_blend(outgoingLight, ${a.result}, 1.0, SPE_BLENDING_NORMAL);`),p?f.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${p.result} );`):f.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),f.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=f.join(`
|
|
1032
|
+
`)}return r}};var gs=require("three");var ys=class extends ct{constructor(){super("toon");this.nodeType="Toon";this.color=new Pe(5855577),this.specular=new Pe(1118481),this.shininess=new Z(30),this.shadingAlpha=new Z(1),this.shadingBlend=new ve(0)}build(e){let r;if(e.define("TOON"),e.requires.lights=!0,e.extensions.derivatives=!0,e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(gs.UniformsUtils.merge([gs.UniformsLib.fog,gs.UniformsLib.lights])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>","#include <shadowmap_pars_vertex>","#include <clipping_planes_pars_vertex>"].join(`
|
|
1033
1033
|
`));let i=["#include <beginnormal_vertex>",`
|
|
1034
1034
|
#ifndef USE_LAYER_DISPLACE
|
|
1035
1035
|
#include <defaultnormal_vertex>
|
|
@@ -1047,7 +1047,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1047
1047
|
#include <begin_vertex>
|
|
1048
1048
|
#endif
|
|
1049
1049
|
`];o&&i.push(o.code,o.result?"displaced_position = "+o.result+";":""),i.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),i.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),r=i.join(`
|
|
1050
|
-
`)}else{e.mergeUniform({penumbraSize:
|
|
1050
|
+
`)}else{e.mergeUniform({penumbraSize:ht.penumbraSize}),this.color===void 0&&(this.color=new Pe(5855577)),this.color.analyze(e,{slot:"color"}),this.specular.analyze(e),this.shininess.analyze(e),this.shadingAlpha.analyze(e),this.shadingBlend.analyze(e),this.afterColor&&this.afterColor.analyze(e,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(e);let o=this.color.flow(e,"c",{slot:"color"}),i=this.specular.flow(e,"c"),s=this.shininess.flow(e,"f"),l=this.shadingAlpha.flow(e,"f"),c=this.shadingBlend.flow(e,"i"),u=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,a=this.alpha?this.alpha.flow(e,"f"):void 0;e.requires.transparent=a!==void 0,e.addParsCode([`uniform float penumbraSize[${5}];`,"varying vec3 vWPosition;","#include <normal_pars_fragment>","#include <gradientmap_pars_fragment>","#include <fog_pars_fragment>","#include <bsdfs>","#include <lights_pars_begin>","#include <dithering_pars_fragment>",`
|
|
1051
1051
|
varying vec3 vViewPosition;
|
|
1052
1052
|
struct ToonMaterial {
|
|
1053
1053
|
vec3 diffuseColor;
|
|
@@ -1068,7 +1068,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1068
1068
|
#define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
|
|
1069
1069
|
#define Material_LightProbeLOD( material ) (0)
|
|
1070
1070
|
`,"#include <shadowmap_pars_fragment>","#include <bumpmap_pars_fragment>","#include <normalmap_pars_fragment>"].join(`
|
|
1071
|
-
`));let
|
|
1071
|
+
`));let p=["#include <normal_fragment_begin>",`
|
|
1072
1072
|
// NOTE: gl_FrontFacing alternative using face normal estimation.
|
|
1073
1073
|
vec3 viewdx = dFdx(vViewPosition);
|
|
1074
1074
|
vec3 viewdy = dFdy(vViewPosition);
|
|
@@ -1076,14 +1076,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1076
1076
|
if (dot(normal, faceNormal) < 0.0) {
|
|
1077
1077
|
normal *= -1.0;
|
|
1078
1078
|
}
|
|
1079
|
-
`," ToonMaterial material;"];
|
|
1079
|
+
`," ToonMaterial material;"];p.push(o.code," vec3 diffuseColor = "+o.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",i.code," vec3 specular = "+i.result+";",s.code," float shininess = max( 0.0001, "+s.result+" );"," float specularStrength = 1.0;"),a&&p.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),p.push("material.diffuseColor = diffuseColor;"),p.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),p.push(`
|
|
1080
1080
|
if (outgoingLight != diffuseColor) {
|
|
1081
1081
|
float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
|
|
1082
1082
|
accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
|
|
1083
1083
|
outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
|
|
1084
1084
|
}
|
|
1085
|
-
`),p
|
|
1086
|
-
`)}return r}};var
|
|
1085
|
+
`),u&&p.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),a?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=p.join(`
|
|
1086
|
+
`)}return r}};var Ke=require("three");function mh(n,t){switch(n.type){case"fresnel":return pw(n,t);case"gradient":return dw(n);case"depth":return fw(n);case"normal":return mw(n);case"noise":return hw(n,t);case"rainbow":return gw(n);case"toon":return yw(n,t);case"outline":return xw(n,t);case"transmission":return bw(n,t);case"color":return uw(n,t)}}function cw(n){return{type:n.type}}function Er(n){let{alpha:t,mode:e}=n;return{...cw(n),alpha:t,mode:e}}function uw(n,t){return{...Er(n),color:lt(n.color,t)}}function pw(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:s}=n;return{...Er(n),color:lt(s,t),bias:e,scale:r,intensity:o,factor:i}}function dw(n){let{gradientType:t,smooth:e,colors:r,steps:o,angle:i,offset:s,morph:l}=n;return{...Er(n),gradientType:t,smooth:e,colors:r.map(c=>new Ke.Vector4(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Ke.Vector2(...s),morph:new Ke.Vector2(...l),angle:i}}function fw(n){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:s,direction:l,colors:c,steps:u,smooth:a}=n;return{...Er(n),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:new Ke.Vector3(...s),direction:l?new Ke.Vector3(...l):new Ke.Vector3(1,0,0),colors:c.map(p=>p!==void 0?new Ke.Vector4(p[0],p[1],p[2],p[3]):new Ke.Vector4(0,0,0,0)),steps:u.slice(0,c.length),smooth:a}}function mw(n){let{cnormal:t}=n;return{...Er(n),cnormal:new Ke.Vector3(t[0],t[1],t[2])}}function hw(n,t){return{...Er(n),scale:n.scale,move:n.move,fA:new Ke.Vector2(...n.fA),fB:new Ke.Vector2(...n.fB),size:new Ke.Vector3(...n.size),distortion:new Ke.Vector2(...n.distortion),colorA:lt(n.colorA,t),colorB:lt(n.colorB,t),colorC:lt(n.colorC,t),colorD:lt(n.colorD,t),noiseType:n.noiseType}}function gw(n){return{...Er(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Ke.Vector3(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Ke.Vector3(...n.offset)}}function yw(n,t){return{...Er(n),positioning:n.positioning,colors:n.colors.map(e=>new Ke.Vector4(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Ke.Vector3(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:lt(n.shadowColor,t),offset:new Ke.Vector3(...n.offset)}}function xw(n,t){return{...Er(n),outlineColor:lt(n.outlineColor,t),contourColor:lt(n.contourColor,t),outlineWidth:n.outlineWidth,contourWidth:n.contourWidth,outlineThreshold:n.outlineThreshold,contourThreshold:n.contourThreshold,outlineSmoothing:n.outlineSmoothing,contourFrequency:n.contourFrequency,contourDirection:n.contourDirection,positionalLines:n.positionalLines,compensation:n.compensation}}function bw(n,t){return{...Er(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var _o=class extends ot{};var yh=require("three");var gh=require("three");var ul=class{constructor(t=1e3*10){this.timeout=t;this.cache=new Map;this.head={data:null,time:0,src:null,next:null,prev:null};this.tail={data:null,time:1/0,src:null,next:null,prev:null};this.hasClean=!1;this.head.next=this.tail,this.tail.prev=this.head}log(...t){}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let t=Date.now(),e=this.head.next;for(;e.time<t-this.timeout;)this.dispose(e.src,e.data),this.cache.delete(e.src),e=e.next,e.prev=this.head,this.head.next=e;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}load(t){let e=Date.now(),r=this.cache.get(t);return r===void 0?(r={data:this.create(t),src:t,time:e,next:null,prev:null},this.cache.set(t,r)):(r.time=e,r.prev.next=r.next,r.next.prev=r.prev),r.prev=this.tail.prev,r.next=this.tail,this.tail.prev.next=r,this.tail.prev=r,this.scheduleCleanup(),r.data}};var Qc=class extends ul{create(t){return URL.createObjectURL(new Blob([t]))}dispose(t,e){URL.revokeObjectURL(e)}},Zc;function hh(n){return typeof n=="string"?n:(Zc||(Zc=new Qc),Zc.load(n))}var ni=class{constructor(t,e){this.data=t;this.onImageLoad=e;this.loaded=!1;this.updateSrc(t.data)}updateSrc(t){typeof document>"u"||(this.dispose(),this.loaded=!1,this.img=new Image,this.img.src=hh(t),this.img.onload=()=>{this.loaded=!0;let e=[1e3,1001,1002];for(let r of e){let o=this[r];o&&(o.image=this.img,o.needsUpdate=!0)}this.onImageLoad&&this.onImageLoad()})}getTexture(t){let e=this[t];if(e)return e;{let r=new gh.Texture(this.img,void 0,t,t);return this.loaded&&(r.needsUpdate=!0),this[t]=r,r}}dispose(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}};1e3,1001,1002;var $o=class extends ni{};var To=class extends De{};var Jc={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},eu={depth:["colors"]};function vw(n,t,e){let r=Jc[n.type],o=eu[n.type];if(o!==void 0){let i=n.color;if(o.includes(t)){let s=i[t]?.value?.length;if(s!==void 0&&s!==e.length)return!0}}return r!==void 0?r.includes(t):!1}function tu(n,t,e){let r=e.uniforms[`f${e.id}_texture`];if(!r)return!1;let o=!1,i=n;if("image"in i){let s=i.image,l=t.image(s),c=r;c instanceof $o||c.image.dispose(),c.image=l}if("wrapping"in i){let s=r;s.wrap=i.wrapping}if("repeat"in i||"offset"in i){let s="mat",l=e.uniforms[`f${e.id}_${s}`];"repeat"in i&&(l.repeat=i.repeat),"offset"in i&&(l.offset=i.offset),l.updateMatrix()}return o}function xh(n,t,e,r){let o=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0)continue;if(ru(i,e,r)){i==="visible"&&e.type==="light"&&(o=!0);continue}e.visible=r.visible;let l=e.uniforms[`f${e.id}_${i}`];if(!!l&&!(l instanceof To))switch(o=o||vw(e,i,s),l.constructor){case Pe:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof _o?l.value=new ot(c.r,c.g,c.b,c.a):l.setRGBA(c);break}case Jt:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof _o?l.value=new ot(c.r,c.g,c.b,c.a):l.value.setRGBA(c.r,c.g,c.b,c.a);break}case ut:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]);break}case mt:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]),l.value.setZ(c[2]);break}case Mt:{tu(s,t,e);break}case cr:{l.value=s.map(c=>new yh.Vector4(...c));break}default:{l.value=s;break}}}return o}var ou=class extends ce{constructor(e,r,o){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=r,this.mode=o,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(ou.Nodes.matcap);e.require("normal"),e.requires.normal=!0;let i=[];return i.push(this.texture.generate(e,"t")),i.push("normal"),i.push(this.alpha.build(e,"f")),i.push(this.mode.build(e,"i")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},xs=ou;xs.Nodes=function(){return{matcap:new X(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
|
|
1087
1087
|
vec3 viewDir = normalize( vViewPosition );
|
|
1088
1088
|
vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
|
|
1089
1089
|
vec3 y = cross( viewDir, x );
|
|
@@ -1095,14 +1095,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1095
1095
|
|
|
1096
1096
|
return matcapColor.rgb;
|
|
1097
1097
|
}
|
|
1098
|
-
`)}}();var
|
|
1098
|
+
`)}}();var bs=class extends To{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};var bh=require("three");var pl=class extends To{constructor(e){super("v3");this.image=e;this._value=new bh.Vector3}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var nu=class extends ce{constructor(e,r,o,i,s,l,c,u,a,p){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=r,this.steps=o,this.source=i,this.isWorldSpace=s,this.noiseStrength=l,this.noiseScale=c,this.shadowColor=u,this.offset=a,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,r){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(nu.Nodes.toon),i=[];return i.push(this.positioning.build(e,"i")),i.push(this.colors.build(e,"v4[]")),i.push(this.steps.build(e,"f[]")),i.push(this.source.build(e,"v3")),i.push(this.isWorldSpace.build(e,"b")),i.push(this.noiseStrength.build(e,"f")),i.push(this.noiseScale.build(e,"f")),i.push(this.shadowColor.build(e,"v4")),i.push(this.offset.build(e,"v3")),i.push(this.alpha.build(e,"f")),i.push(this.calpha),e.format(o+"("+i.join(",")+")",this.getType(e),r)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),r)}},vs=nu;vs.Nodes=function(){let e=new X(`float rand(float n) {
|
|
1099
1099
|
return fract(sin(n) * 43758.5453123);
|
|
1100
|
-
}`),r=new
|
|
1100
|
+
}`),r=new X(`float hash1(float p) {
|
|
1101
1101
|
p = fract(p * 0.011);
|
|
1102
1102
|
p *= p + 7.5;
|
|
1103
1103
|
p *= p + p;
|
|
1104
1104
|
return fract(p);
|
|
1105
|
-
}`),o=new
|
|
1105
|
+
}`),o=new X(`float valueNoise(vec3 x) {
|
|
1106
1106
|
const vec3 step = vec3(110, 241, 171);
|
|
1107
1107
|
|
|
1108
1108
|
vec3 i = floor(x);
|
|
@@ -1117,13 +1117,13 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1117
1117
|
mix( hash1(n + dot(step, vec3(0, 1, 0))), hash1(n + dot(step, vec3(1, 1, 0))), u.x), u.y),
|
|
1118
1118
|
mix(mix( hash1(n + dot(step, vec3(0, 0, 1))), hash1(n + dot(step, vec3(1, 0, 1))), u.x),
|
|
1119
1119
|
mix( hash1(n + dot(step, vec3(0, 1, 1))), hash1(n + dot(step, vec3(1, 1, 1))), u.x), u.y), u.z);
|
|
1120
|
-
}`,[r]),i=new
|
|
1120
|
+
}`,[r]),i=new X(`vec3 hash3(vec3 x) {
|
|
1121
1121
|
x = vec3(dot(x,vec3(127.1, 311.7, 74.7)),
|
|
1122
1122
|
dot(x,vec3(269.5, 183.3, 246.1)),
|
|
1123
1123
|
dot(x,vec3(113.5, 271.9, 124.6)));
|
|
1124
1124
|
|
|
1125
1125
|
return fract(sin(x)*43758.5453123);
|
|
1126
|
-
}`),s=new
|
|
1126
|
+
}`),s=new X(`vec3 voronoiNoise(in vec3 x)
|
|
1127
1127
|
{
|
|
1128
1128
|
vec3 p = floor(x);
|
|
1129
1129
|
vec3 f = fract(x);
|
|
@@ -1154,7 +1154,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1154
1154
|
|
|
1155
1155
|
return vec3(sqrt(res), abs(id));
|
|
1156
1156
|
}
|
|
1157
|
-
`,[i]);return{toon:new
|
|
1157
|
+
`,[i]);return{toon:new X(`vec3 toon(int positioning, vec4 colors[COLORS_MAX], float steps[COLORS_MAX], vec3 source, bool isWorldSpace, float noiseStrength, float noiseScale, vec4 shadowColor, vec3 offset, float alpha, out float calpha) {
|
|
1158
1158
|
float t = 0.0;
|
|
1159
1159
|
float shadow = 1.0;
|
|
1160
1160
|
|
|
@@ -1331,8 +1331,8 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
|
|
|
1331
1331
|
|
|
1332
1332
|
return color.xyz;
|
|
1333
1333
|
|
|
1334
|
-
}`,[yt.simplex,e,o,s])}}();var _m=require("three");function wm(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var za=class extends Vn{constructor(e,r){super(new _m.Matrix3);this.repeat=e;this.offset=r;wm(this.value,e,r)}updateMatrix(){wm(this.value,this.repeat,this.offset)}};var Ir=class{constructor(t,e,r,o){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in r)wc(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return Pr.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new Qi(i,r.texture.wrapping),l=new Fa(i),c=new za(r.texture.repeat,r.texture.offset),p=new Y(r.crop?1:0),a=new ve(r.projection??0),u=new ve(["x","y","z"].indexOf(r.axis)??0),d=new ve(r.side??0),f=new lt(r.size?new De.Vector2(r.size[0],r.size[1]):new De.Vector2(100,100)),m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new ji(s,l,p,a,u,d,f,c,m,h),v=new Ae(g.calpha,"f");return new rt(t,e,r,{texture:s,textureSize:l,crop:p,projection:a,axis:u,side:d,size:f,mat:c,alpha:m,mode:h},g,h,v)}else if(r.type==="matcap"){let i=o.image(r.texture.image),s=new Qi(i,r.texture.wrapping),l=new Y(r.alpha??1),c=new ve(r.mode??0),p=new Ki(s,l,c),a=new Ae(p.calpha,"f");return new rt(t,e,r,{texture:s,alpha:l,mode:c},p,c,a)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new ft(new De.Vector3(...r.offset)),s=new Y(r.scale??10),l=new Y(r.intensity??8),c=new Y(r.movement??1),p=new ve(r.noiseType??0),a=new zi(l,c,i,s,p);return new Ji(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:p},a)}else throw new Error;else return nw(t,e,r,o)}updateByOp(t,e,r){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props?!0:bm(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?Sc(o.props,r,this):!0;return!1}dispose(){}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let r=`f${this.id}_${t}`;this.hasValueByKey(r)&&e!==void 0&&(this.uniforms[r].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let r=/f\d+_(.*)/.exec(t);if(r&&r.length>1)return r[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let r=this.getName(e);r&&t.push(r)}return t}},rt=class extends Ir{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},Ji=class extends Ir{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},Pr=class extends Ir{constructor(e,r,o,i,s){super(e,r,o,s);this.data=o;this.node=i}static createLigherLayer(e,r,o,i){let s,l=new Y(o.alpha),c=new ve(o.mode),p;if(!o.visible)s=new Eo,p={};else if(o.category==="lambert"){s=new qi;let a=new Ie(i.color(o.emissive)??0);p={emissive:a},s.emissive=a}else if(o.category==="toon"){s=new Yi;let a=new Y(o.shininess??30),u=new Ie(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}else if(o.category==="physical"){s=new $i;let a=new Y(o.roughness??.3),u=new Y(o.metalness??0),d=new Y(o.reflectivity??.5);p={roughness:a,metalness:u,reflectivity:d},s.roughness=a,s.metalness=u,s.reflectivity=d}else{s=new Ra;let a=new Y(o.shininess??30),u=new Ie(i.color(o.specular)??1118481);p={shininess:a,specular:u},s.shininess=a,s.specular=u}return s.alpha=new Y(1),s.shadingAlpha=l,s.shadingBlend=c,p.alpha=s.shadingAlpha,p.mode=s.shadingBlend,new Pr(e,r,o,s,p)}};function Tm(n){let t=n instanceof Ir?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function ow(n,t,e,r){switch(n.type){case"color":{let o=new Ie(r.color??5855577),i=new Y(r.alpha??1),s=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(r.mode??0);return o.alpha=i,new rt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Ie(r.color??16777215),i=new Y(r.bias??.1),s=new Y(r.scale??1),l=new Y(r.intensity??2),c=new Y(r.factor??1),p=new Y(r.alpha??1),a=new ve(r.mode??0),u=new Bi(o,i,s,l,c,p,a),d=new Ae(u.calpha,"f");return new rt(t,e,n,{color:o,bias:i,scale:s,intensity:l,factor:c,alpha:p,mode:a},u,a,d)}case"rainbow":{let o=new Y(r.filmThickness??30),i=new Y(r.movement??0),s=new ft(r.wavelengths??new De.Vector3(0,0,0)),l=new Y(r.noiseStrength??0),c=new Y(r.noiseScale??1),p=new ft(r.offset??new De.Vector3(0,0,0)),a=new Y(r.alpha??1),u=new Di(o,i,s,l,c,p,a),d=new Ae(u.calpha,"f"),f=new ve(r.mode??0);return new rt(t,e,n,{filmThickness:o,movement:i,wavelengths:s,noiseStrength:l,noiseScale:c,offset:p,alpha:a,mode:f},u,f,d)}case"transmission":{let o=new Y(r.thickness??10),i=new Y(r.ior??1.5),s=new Y(r.roughness??.5),l=mt.transmissionSize,c=mt.transmissionRenderTarget,p=mt.transmissionRenderTargetDepth,a=window.innerWidth,u=window.innerHeight,d=a>=u?new lt(u/a,1):new lt(1,a/u),f=new Y(r.alpha??1),m=new Ri(o,i,s,l,c,p,d,f),h=new Ae(m.calpha,"f"),g=new ve(r.mode??0);return new rt(t,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:d,alpha:f,mode:g},m,g,h)}case"toon":{let o=new ve(r.positioning??0),i;r.colors?i=new nr(r.colors.length,r.colors):(i=new nr(10,new De.Vector4(0,0,0,1)),i.value[1]=new De.Vector4(1,1,1,1));let s;r.steps?s=new or(r.steps.length,r.steps):(s=new or(10,1),s.value[0]=0);let l=new ft(r.source??new De.Vector3(0,0,0)),c=new co(r.isWorldSpace??!0),p=new Y(r.noiseStrength??0),a=new Y(r.noiseScale??1),u=new Yt(r.shadowColor),d=new ft(r.offset??new De.Vector3(0,0,0)),f=new Y(r.alpha??1),m=new Zi(o,i,s,l,c,p,a,u,d,f),h=new Ae(m.calpha,"f"),g=new ve(r.mode??0);return new rt(t,e,n,{positioning:o,colors:i,steps:s,source:l,isWorldSpace:c,noiseStrength:p,noiseScale:a,shadowColor:u,offset:d,alpha:f,mode:g},m,g,h)}case"outline":{let o=new Ie(r.outlineColor??16777215),i=new Ie(r.contourColor??16777215),s=new Y(r.outlineWidth??.1),l=new Y(r.contourWidth??.1),c=new Y(r.outlineThreshold??.1),p=new Y(r.contourThreshold??.1),a=new Y(r.outlineSmoothing??.1),u=new Y(r.contourFrequency??.1),d=new ft(r.contourDirections??new De.Vector3(0,1,0)),f=new co(r.positionalLines??!1),m=new co(r.compensation??!0),h=mt.normalRenderTarget,g=mt.normalRenderTargetDepth,v=mt.pixelRatioNode,x=mt.resolution,w=new Y(r.alpha??1),S=new Gi(o,i,s,l,c,p,a,u,d,f,m,x,h,g,v,w),b=new Ae(S.calpha,"f"),I=new ve(r.mode??0);return new rt(t,e,n,{outlineColor:o,contourColor:i,outlineWidth:s,contourWidth:l,outlineThreshold:c,contourThreshold:p,outlineSmoothing:a,contourFrequency:u,contourDirection:d,positionalLines:f,compensation:m,alpha:w,mode:I},S,I,b)}case"depth":{let o=new ve(r.gradientType??0),i=new co(r.smooth??!1),s=new Y(r.near??50),l=new Y(r.far??200),c=new Y(r.isVector??1),p=new Y(r.isWorldSpace??0),a=new ft(r.origin??new De.Vector3),u=new ft(r.direction??new De.Vector3),d;r.colors?d=new nr(r.colors.length,r.colors):(d=new nr(2,new De.Vector4(0,0,0,1)),d.value[1]=new De.Vector4(1,1,1,1));let f;r.steps?f=new or(r.steps.length,r.steps):(f=new or(2,1),f.value[0]=0);let m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new Vi(o,i,s,l,c,p,a,u,d,f,m),v=new Ae(g.calpha,"f");return new rt(t,e,n,{gradientType:o,smooth:i,near:s,far:l,isVector:c,isWorldSpace:p,origin:a,direction:u,colors:d,steps:f,alpha:m,mode:h},g,h,v)}case"noise":{let o=new Y(r.scale??1),i=new ft(r.size??new De.Vector3(100,100,100)),s=new Y(r.move??1),l=new lt(r.fA??new De.Vector2(1.7,9.2)),c=new lt(r.fB??new De.Vector2(8.3,2.8)),p=new lt(r.distortion??new De.Vector2(1,1)),a=new Yt(r.colorA),u=new Yt(r.colorB),d=new Yt(r.colorC),f=new Yt(r.colorD),m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new ve(r.noiseType??0),v=new Mi(o,i,s,l,c,p,a,u,d,f,m,g),x=new Ae(v.calpha,"f");return new rt(t,e,n,{scale:o,size:i,move:s,fA:l,fB:c,distortion:p,colorA:a,colorB:u,colorC:d,colorD:f,alpha:m,mode:h,noiseType:g},v,h,x)}case"normal":{let o=new ft(r.cnormal??new De.Vector3(1,1,1)),i=new Y(r.alpha??1),s=new ve(r.mode??0),l=new Hi(o,i),c=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new rt(t,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new ve(r.gradientType??0),i=new co(r.smooth??!1),s;r.colors?s=new nr(r.colors.length,r.colors):(s=new nr(10,new De.Vector4(0,0,0,1)),s.value[1]=new De.Vector4(1,1,1,1));let l;r.steps?l=new or(r.steps.length,r.steps):(l=new or(10,1),l.value[0]=0);let c=new lt(r.offset??new De.Vector2(0,0)),p=new lt(r.morph??new De.Vector2(0,0)),a=new Y(r.angle??0),u=new Y(r.alpha??1),d=new ve(r.mode??0),f=new Ui(o,i,s,l,c,p,a,u),m=new Ae(f.calpha,"f");return new rt(t,e,n,{gradientType:o,smooth:i,colors:s,steps:l,offset:c,morph:p,angle:a,alpha:u,mode:d},f,d,m)}default:{let o=new Ie(1,0,0,1),i=new Y(1),s=new Ae("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(0);return o.alpha=i,new rt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function nw(n,t,e,r){let o=gm(e,r);return ow(e,n,t,o)}function wc(n,t,e){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let r=t.uniforms[`f${t.id}_intensity`];return r?(r.value=e.intensity*(e.visible?1:0),r):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let r=t.uniforms[`f${t.id}_alpha`];if(!r)return;if(r.value=e.alpha*(e.visible?1:0),e.type==="outline"&&n==="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return r}}var Ft=class extends Ua.ShaderMaterial{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.transparent=!0,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??Rt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Ir.create(this.layerIdGen++,i.id,i.data,r)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r)}getLayersOfType(e){return this.layers.filter(r=>r.type===e)}getLayerByUuid(e){return this.layers.find(r=>r.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(r=>r instanceof Pr),this.lightLayer===void 0&&(this.lightLayer=new Pr(0,"",{...fr.defaultData("light","phong"),visible:!1},new Eo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let s=Ir.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,s)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let s=this.layers.findIndex(c=>c.uuid===e.id),l=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,l)}this.layers.reverse(),this.onUpdate(o)}else{let s=this.layers.find(l=>l.uuid===i);if(s){let l=r.layers.data(i);if(s.updateByOp({...e,path:e.path.slice(2)},l,o)){let p=Ir.create(this.layerIdGen++,i,l,o);this.layers.splice(this.layers.findIndex(a=>a.uuid===i),1,p),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof rt),r=this.layers.findIndex(o=>o instanceof Pr);if(e!==-1&&e<r){let o=this.layers[e].color;for(let i=e+1;i<r;++i){let s=this.layers[i];s instanceof rt&&(o=new Fi(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ae("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof Pr);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof rt&&(e=new Fi(e,i.color,i.alpha,i.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(r=>r instanceof Ji);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new Ct(r,e[o].position,Ct.ADD),r=new Ct(r,new Y(.5).setReadonly(!0),Ct.MUL));this.fragment.position=r}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,r){this.build({renderer:r}),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,r){let o=(i,s,l)=>Math.min(Math.max(i,s),l);for(let i of this.layers)if(i.type==="displace"){let s=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=s}}customProgramCacheKey(){let e="[";for(let{data:r}of this.data.layers)if(r.type==="light")e+=`"${r.visible?r.category.toUpperCase():"Basic"}"`;else{let o=(vc[r.type]??[]).map(l=>r[l]),i=(bc[r.type]??[]).map(l=>r[l]?.length??0),s=[...o,...i];s.length?e+=`["${r.type}", "${s.join('","')}"],`:e+=`"${r.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(e){e=e??{};let r=e.builder??new Da;return this.lights=this.lightLayer.data.visible,r.setMaterial(this,e.renderer),r.build(this.fragment,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this.transparent=r.requires.transparent||this.blending>Ua.NormalBlending,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Ft.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(n){n===!0&&this.version++,this.needsCompile=n},get:function(){return this.needsCompile}}});var zt=require("three");function iw(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position||!n.geometry.attributes.normal)return;let t=new Map,e=n.geometry.attributes.position.array,r=n.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=new zt.Vector3(r[i],r[i+1],r[i+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new zt.Vector3})}t.forEach((i,s)=>{for(let l of i.normals)i.result.add(l);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=t.get(s)?.result;l&&(o[i]=l.x,o[i+1]=l.y,o[i+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new zt.Float32BufferAttribute(o,3))}function sw(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=new zt.Vector3;for(let o=0;o<t.length;o+=3)r.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=r.x,e[o+1]=r.y,e[o+2]=r.z;n.geometry.setAttribute("extrudeNormal",new zt.Float32BufferAttribute(e,3))}function Or(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof Ft)||n.material.getLayersOfType("outline").length===0)return;n.objectType==="Mesh2D"||n.objectType==="TextFrame"&&n.data?.geometry?.depth===0?sw(n):iw(n)}function Cr(n){if(!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=parseInt(n.uuid.replace(/\D/g,"")),o=[zt.MathUtils.seededRandom(r),zt.MathUtils.seededRandom(r+1e4),zt.MathUtils.seededRandom(r+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new zt.BufferAttribute(e,3))}var ut=class extends Xt(ja.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new ja.Matrix4;this.booleanExclude=null;Array.isArray(r)&&e.groups.length===0&&e.addGroup(0,Math.max(e.getIndex()?.count??0,e.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&this.remove(this._cloner),e&&this.add(e),this._cloner=e}updateGeometry(e,r){let o=this.geometry,i=ec[o.userData.type],s=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,l=i.build(i.normalizeInputs(e,s)),c=o.uuid;this.geometry.dispose(),this.geometry=l,this.geometry.uuid=c,this.geometry.computeBoundingSphere(),Or(this),o.getAttribute("randomColor")&&Cr(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Ni(r),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new No(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new No(this)),this.cloner.fromClonerState(e))}fromState(e,r){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(er.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),br(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)vr(e)&&(e.freeBooleanPointer(),br(e)&&e.invalidateUpstreamBooleanData())}};var aw=new fo.Vector3(0,0,1),Am=new fo.Vector3,Nm=new fo.Vector3,Im=new fo.Matrix3,jn=class extends ut{constructor(e=dt.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new fo.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,r){if(super.updateGeometry(e,r),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),Im.getNormalMatrix(this.matrixWorld),Am.copy(aw).applyMatrix3(Im).normalize(),Nm.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Am,Nm)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=dt.create(Object.assign({},i,{shape:r})),l=new jn(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){ut.prototype.raycast.call(this,e,r)}};var Lr=(n,t)=>class extends n{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;o.color!==void 0&&(s.color=st(o.color,i)),o.intensity!==void 0&&(s.intensity=o.intensity),o.depth!==void 0&&(s.shadow.camera.far=o.depth,s.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var kn=new ze.Vector3,Ac=new ze.Vector3,Ur=class extends Lr(Xt(ze.Camera),ma){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=So.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new ze.OrthographicCamera(e*-.5,e*.5,r*.5,r*-.5,i??-5e4,s),this.perspCamera=new ze.PerspectiveCamera(o,e/r,i??50,s),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,r){let o=new Ur().fromState(r);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,r){e==="PerspectiveCamera"?this.perspCamera.near=r:this.orthoCamera.near=r}setZoom(e,r){r>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=r:this.orthoCamera.zoom=r)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(kn),this.targetOffset=kn.distanceTo(e)}getTarget(e=new ze.Vector3){return this.getWorldDirection(Ac),this.getWorldPosition(kn),Ac.multiplyScalar(this.targetOffset),e.copy(kn).add(Ac),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(kn),kn.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new ze.Quaternion),r=new ze.Vector3(0,0,1).applyQuaternion(e),o=new ze.Vector3().copy(ze.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new ze.Vector3().copy(ze.Object3D.DefaultUp).projectOnPlane(r),s=new ze.Vector3().crossVectors(i,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new ze.Vector3),i=e.getWorldDirection(new ze.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToObject(e){let r=e.getWorldPosition(new ze.Vector3),i=this.getWorldDirection(new ze.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().sub(i),target:r}}setViewplaneSize(e,r){this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5,this.aspect=e/r,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,r,o,i,s,l){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,i,s,l):this.orthoCamera.setViewOffset(e,r,o,i,s,l)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,r){return super.copy(e,r),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let r={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return mn(r,e)}fromCameraState(e){let{orthographic:r,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),r!==void 0&&(r.near!==void 0&&(this.orthoCamera.near=r.near),r.zoom!==void 0&&(this.orthoCamera.zoom=r.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var es=require("three");var Pm=new es.Matrix4;var ka=class extends ut{constructor(e=new es.BufferGeometry,r){super(e,r);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,r=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let s=this.children[i];br(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(am(s)&&s.booleanExclude===!1&&s.geometry.attributes.position?.count>0&&s.geometry.drawRange.count>0){if(s.booleanMeshSetAddress===-1){if((s.geometry.index??s.geometry.getAttribute("position")).count/3<15e5&&(s.booleanMeshSetAddress=er.getMeshSet(s.geometry,e===!0,r)),s.booleanMeshSetAddress===-1)return;er.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else br(s)&&s.needsTransformForDownstream===!0?(er.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Pm.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),er.transformMeshSet(s.booleanMeshSetAddress,Pm),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1);this.meshSetAddresses.push(s.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return er.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new es.BufferGeometry,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=er.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Or(this),Cr(this)}updateGeometry(e,r){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var Om=require("three");var Do=class extends Lr(Xt(Om.Group),xn){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,r){let o=new Do().fromState(r);return o.uuid=e,o.objectHelper.update(),o}};var Go=require("three");var Hn=class extends Lr(Xt(Go.DirectionalLight),yn){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new Go.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new Hn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Go.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,r){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,r),e.size!==void 0&&nm(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};var xt=require("three");var Wn=class extends Lr(Xt(xt.PointLight),vn){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new xt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new xt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),l=new xt.Box3(i,s),c=new xt.Box3Helper(l,new xt.Color(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,r,o){let i=new Wn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof xt.Box3Helper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof xt.Box3Helper&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof xt.Box3Helper){let o=this.shadow.camera,i=new xt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new xt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);r.box.set(i,s),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromPointLightState(e,r),this}};var Mt=require("three");var Cm=new Mt.Vector3,Lm=new Mt.Vector3,Mm=new Mt.Quaternion,qn=class extends Lr(Xt(Mt.SpotLight),gi){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=Mt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Mt.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new qn().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Mt.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Lm.setFromMatrixPosition(this.matrixWorld),Mm.setFromRotationMatrix(this.matrixWorld),Cm.copy(this.up).applyQuaternion(Mm).negate().multiplyScalar(this.distance),this.target.position.copy(Lm).add(Cm),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromSpotLightState(e,r),this}};var Em=n=>n.tagName==="VIDEO",$n=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Em(s)?i=s.videoWidth/s.videoHeight:i=s.width/s.height,o>i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*i/o):r.repeat.set(1,1*i/o)),o<i&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/i*-1,1):r.repeat.set(1*o/i,1)),o==i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let o=t/e,i=r.image!==void 0?r.image.width/r.image.height:1,s;o>i?s={x:1,y:i/o}:o<i?s={x:o/i,y:1}:s={x:1,y:1},r.repeat.set(s.x,s.y),r.updateMatrix()}static resizeTextureLayers(t,e,r){let o=r.layers;for(let i=0;i<o.length;i++){let s=o[i];Tm(s)&&$n.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Em(l)?s=l.videoWidth/l.videoHeight:s=l.width/l.height,o.geometry.type.includes("Shape")?(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*s/i):r.repeat.set(1/t,1/e*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*i/s*-1,1/e):r.repeat.set(1/t*i/s,1/e)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/i):r.repeat.set(1,1*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*i/s*-1,1):r.repeat.set(1*i/s,1)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var Ha=class extends ut{constructor(e,r){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,r){super.updateGeometry(e,r),this.material.layers&&$n.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Xn=class extends ut{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var Wa=class extends Xn{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Dm,rs=new Promise(n=>{Dm=n}),Bm=!1;async function Gm(){if(Bm)return;let n=await import("./opentype.js");Dm(n),Bm=!0}var os=class{async load(t,e,r=()=>{}){let{load:o}=await rs;o(t,(i,s)=>{i||!s?r(i??"Something went wrong"):e(s)})}async parse(t){let{parse:e}=await rs;try{return e(t)}catch(r){console.error(r)}}};async function lw(n){return await(await fetch(n)).arrayBuffer()}var cw=new os;async function Nc(n){let t,e,r=!1;if(n.url?(t=await lw(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await cw.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}var Yn=require("three");var Rm=new Yn.Vector3,Vm=new Yn.Matrix4,Fm=new Yn.Ray;function zm(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var qa=class extends ut{constructor(e,r,o){super(new Cn(r.geometry,o),o.material(r.material));this.data=r;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=r.castShadow,this.receiveShadow=r.receiveShadow,this.name=r.name,this.uuid=e,this.updateState(r,o)}async updateGeometry(e,r){let o=e.parameters,i={...this.geometry.userData.parameters,...o};this.geometry.userData={parameters:i,type:"TextGeometry"},r&&(o.font||!this.geometry.font&&r.getFont(i.font))&&await this.geometry.updateFont(o.font??i.font,r),await this.geometry.update(i),Or(this),Cr(this);let{wrappedText:s,charCoords:l,charWidths:c}=this.geometry;this.wrappedText=s,this.charWidths=c,this.charCoords=l,this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateState(e,r){this.data=e,this.material=r.material(e.material),this.fromState(e,r),this.updateGeometry({parameters:e.geometry},r)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.geometry.userData.parameters.height,this.fontScale,this.geometry.userData.parameters.verticalAlign)??0}get fontScale(){return this.font?this.geometry.userData.parameters.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){return this.geometry.userData.parameters.fontSize*this.geometry.userData.parameters.lineHeight}raycast(e,r){let{matrixWorld:o}=this;if(Vm.copy(o).invert(),Fm.copy(e.ray).applyMatrix4(Vm),Fm.intersectBox(this.singleBBox,Rm)){let i=Rm.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};var wt=require("three");var Hm=el(jm());var Ic;Na.then(n=>{Ic=n});var Wm=new wt.Matrix4,uw=new wt.Matrix4,pw=new wt.Matrix4,ir=new wt.Box3,mo=new wt.Vector3,dw=new wt.Matrix4,fw=new wt.Matrix4;var Kn=class extends ut{constructor(e,r,o,i){super(o??r,i);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new wt.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new wt.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}=qt.build(r.geometry,void 0,void 0,!r.flatShading),c=o.material(r.material),p=new Kn(i,s,l||void 0,c);return r.geometry.phongAngle!==void 0&&(p.phongAngle=r.geometry.phongAngle),p.calcBoundingBox(),p.freeSubdivPointer(),p.uuid=e,p.fromState(r),p}buildFromStore(e,r){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:s}=qt.build(e,r,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=s,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Or(this),Cr(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,ut.prototype.raycast.call(this,e,r),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,r=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:s}=(0,Hm.SVD)(r),l=Wm.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),c=uw.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),p=pw.copy(c).transpose();this.shearScale=dw.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=fw.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,p),s.every(a=>Math.abs(s[0]-a)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new wt.Sphere);let r=e.attributes.position,o=e.boundingSphere.center;ir.setFromBufferAttribute(r),ir.getCenter(o),e.boundingSphere.radius=o.distanceTo(ir.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ir.getSize(mo);let i={width:mo.x,height:mo.y,depth:mo.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let r=this.originalGeometry;ir.min.set(e[0],e[2],e[4]),ir.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(ir.min.applyMatrix4(this.shearScaleInv),ir.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new wt.Sphere);let o=r.boundingSphere.center;ir.getCenter(o),r.boundingSphere.radius=o.distanceTo(ir.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ir.getSize(mo);let i={width:mo.x,height:mo.y,depth:mo.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(Ic.free_bvh(this.subdivPointer),Ic.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,r){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,km(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(km(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function km(n,t,e,r){let o=n.position.array,i=n.normal.array,s=Wm.makeScale(t,e,r).invert().elements,l,c,p;for(var a=0,u=o.length;a<u;a+=3)o[a]*=t,o[a+1]*=e,o[a+2]*=r,l=i[a],c=i[a+1],p=i[a+2],i[a]=s[0]*l+s[4]*c+s[8]*p,i[a+1]=s[1]*l+s[5]*c+s[9]*p,i[a+2]=s[2]*l+s[6]*c+s[10]*p}var ho=require("three");function qm(n,t){t.flatShading!==void 0&&(n.flatShading=t.flatShading,n.needsUpdate=!0),t.wireframe!==void 0&&(n.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?n.side=ho.FrontSide:t.side===1?n.side=ho.BackSide:n.side=ho.DoubleSide)}function mw(n,t){if(Array.isArray(n.material))for(let e of n.material)qm(e,t);else{let e=n.material;qm(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function $m(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=Kn.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new ho.BufferGeometry:Ia(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);$o.is2DParametricMesh(o.userData.type)?r=new Ha(o,i):o?.userData.type==="VectorGeometry"?r=new jn(o,i):t.geometry.type==="NonParametricGeometry"?r=new Wa(o,i):t.geometry.type==="BooleanGeometry"?(r=new ka(void 0,i),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new Xn(o,i),r.uuid=n,r.fromState(t,e)}return mw(r,t),r}function Xm(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new qa(n,t,e):$m(n,t,e):t.type==="Empty"?Do.createFromState(n,t):t.type==="PointLight"?Wn.createFromState(n,t,e):t.type==="SpotLight"?qn.createFromState(n,t,e):t.type==="DirectionalLight"?Hn.createFromState(n,t,e):Wo.is(t.type)?Ur.createFromState(n,t):(console.error(t),new Do)}var Ro=class extends Ft{};var jr=require("three");function Ym(n,t){let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(n.layers.set(8),r.length>0&&n.layers.enable(3),e=!0,Cr(n),Or(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function Km(n,t){if(!t.layers)return!1;let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return r.length>0&&(n.layers.set(3),o.length>0&&n.layers.enable(8),e=!0),r.length===0&&o.length===0&&n.layers.set(0),e}function Qm(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof jr.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Ym(e,e.material[r])&&(t=!0);else Ym(e,e.material)&&(t=!0)}),t}function Zm(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof jr.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Km(e,e.material[r])&&(t=!0);else Km(e,e.material)&&(t=!0)}),t}function Jm(n){"material"in n&&gw(n.material),"geometry"in n&&n.geometry.dispose()}function gw(n){Ed(n).forEach(t=>{t instanceof Ro||t.dispose()})}var yw=new jr.Raycaster,xw=new jr.Matrix4,vw=new jr.Ray;function eh(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=xw.copy(o.matrixWorld).invert(),s=vw.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=yw;c.set(s.origin,s.direction),c.near=t.near,c.far=t.far,c.intersectObject(n,!1).length>0&&e.push({object:n})}}var th=new Mr.Vector3,Pc=class extends La(Mr.Scene){constructor(e,r){super();this.objectType="Scene";this.backupFog=new Mr.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new tt(1,1,1,1);this.entityByUuid={};this.ambientLight=new Mr.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.init(e,r),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Zm(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Qm(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,r){if(this.createChildrenObjects(e.objects,this,r),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(st(e.backgroundColor,r)),this.updateFog(e.fog,r),this.updateAmbientLight(e.environment.ambientLight,r),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof Ur&&this.switchActiveCamera(o)}this.traverse(o=>{br(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{Jm(e)});for(let e of this.children)wr(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=Ur.createFromState(Pc.PERSONAL_CAMERA_ID,{...ia.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],o=i=>{for(let s of i.children)wr(s)&&!s.raycastLock&&s.visible&&((vr(s)||Oa(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),eh(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)wr(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)wr(r)&&r.visible&&r.traverseVisibleEntity(e)}updateFog(e,r){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=st(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,r){om(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=st(e.groundColor,r)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,r,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,r,o)}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,o,i,s){let l=Xm(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),br(i)&&vr(l)&&(l.prevBooleanObjectParent=i),this.createChildrenObjects(o,l,s)),l}getCenter(e){let r=[];for(let i=0,s=e.length;i<s;++i){let{id:l,recursive:c}=e[i],p=this.find(l),a=c?p.recursiveBBox:p.singleBBox;r.push(...a.vertices)}let o=new Mr.Box3;return o.setFromPoints(r),o.getCenter(th),th}copyMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e);o?r.copy(o.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e)?.parent;o?r.copy(o.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof ut)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof Ft&&e(r.material[o]);else r.material instanceof Ft&&e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let o,i;e>=r?(o=r/e,i=1):(o=1,i=e/r),this.traverseMaterial(s=>{s.getLayersOfType("transmission").forEach(c=>{c.uniforms[`f${c.id}_aspectRatio`].value.x=o,c.uniforms[`f${c.id}_aspectRatio`].value.y=i})})}},ns=Pc;ns.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var ih=el(rh());var oh=new Map;function nh(n){if(typeof n=="string")return n;let t=oh.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},oh.set(n,t)),t.url}var Qn=class{constructor({src:t,volume:e,delay:r,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._status="stopped";this.onEnd=()=>{this.loopsRemaining===1/0?this.replay():this.loopsRemaining>1?(this.replay(),this.loopsRemaining--):(this._status="stopped",this.loopsRemaining=this._loop)};let i;typeof t=="string"?i={src:t}:i={src:nh(t),format:"wav"},this.sound=new ih.Howl(i),this.sound.on("end",this.onEnd),this.src=t,e!==void 0&&(this.volume=e),r!==void 0&&(this.delay=r),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,r){this.sound.on(t,e,r)}off(t,e,r){this.sound.off(t,e,r)}play(){this._status==="playing"||this.sound.playing()||(this._status==="paused"?(this.sound.seek()===0?this.replay():this.sound.play(),this._status="playing"):this._status==="stopped"&&(this.replay(),this._status="playing"))}pause(){this._status==="playing"&&(this.sound.pause(),this.clearFade(),this.clearDelay(),this._status="paused")}stop(){this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay(),this._status="stopped"}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};var ot=require("three"),Ya=class{constructor(){this.type="ShapePath";this.color=new ot.Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new ot.Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,r,o){return this.currentPath?.quadraticCurveTo(t,e,r,o),this}bezierCurveTo(t,e,r,o,i,s){return this.currentPath?.bezierCurveTo(t,e,r,o,i,s),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:e.ORIGIN,t:0};function o(h,g,v,x){let w=h.x,S=g.x,b=v.x,I=x.x,_=h.y,y=g.y,P=v.y,A=x.y,O=(I-b)*(_-P)-(A-P)*(w-b),T=(S-w)*(_-P)-(y-_)*(w-b),L=(A-P)*(S-w)-(I-b)*(y-_),B=O/L,j=T/L;if(L===0&&O!==0||B<=0||B>=1||j<0||j>1)return null;if(O===0&&L===0){for(let te=0;te<2;te++)if(i(te===0?v:x,h,g),r.loc===e.ORIGIN){let ne=te===0?v:x;return{x:ne.x,y:ne.y,t:r.t}}else if(r.loc===e.BETWEEN){let ne=+(w+r.t*(S-w)).toPrecision(10),ae=+(_+r.t*(y-_)).toPrecision(10);return{x:ne,y:ae,t:r.t}}return null}else{for(let ae=0;ae<2;ae++)if(i(ae===0?v:x,h,g),r.loc===e.ORIGIN){let U=ae===0?v:x;return{x:U.x,y:U.y,t:r.t}}let te=+(w+B*(S-w)).toPrecision(10),ne=+(_+B*(y-_)).toPrecision(10);return{x:te,y:ne,t:B}}}function i(h,g,v){let x=v.x-g.x,w=v.y-g.y,S=h.x-g.x,b=h.y-g.y,I=x*b-S*w;if(h.x===g.x&&h.y===g.y){r.loc=e.ORIGIN,r.t=0;return}if(h.x===v.x&&h.y===v.y){r.loc=e.DESTINATION,r.t=1;return}if(I<-Number.EPSILON){r.loc=e.LEFT;return}if(I>Number.EPSILON){r.loc=e.RIGHT;return}if(x*S<0||w*b<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+w*w)<Math.sqrt(S*S+b*b)){r.loc=e.BEYOND;return}let _;x!==0?_=S/x:_=b/w,r.loc=e.BETWEEN,r.t=_}function s(h,g){let v=[],x=[];for(let w=1;w<h.length;w++){let S=h[w-1],b=h[w];for(let I=1;I<g.length;I++){let _=g[I-1],y=g[I],P=o(S,b,_,y);P!==null&&v.find(A=>A.t<=P.t+Number.EPSILON&&A.t>=P.t-Number.EPSILON)===void 0&&(v.push(P),x.push(new ot.Vector2(P.x,P.y)))}}return x}function l(h,g,v){let x=new ot.Vector2;g.getCenter(x);let w=[];return v.forEach(S=>{S.boundingBox.containsPoint(x)&&s(h,S.points).forEach(I=>{w.push({identifier:S.identifier,isCW:S.isCW,point:I})})}),w.sort((S,b)=>S.point.x-b.point.x),w}function c(h,g,v,x,w){(w==null||w==="")&&(w="nonzero");let S=new ot.Vector2;h.boundingBox.getCenter(S);let b=[new ot.Vector2(v,S.y),new ot.Vector2(x,S.y)],I=l(b,h.boundingBox,g);I.sort((T,L)=>T.point.x-L.point.x);let _=[],y=[];I.forEach(T=>{T.identifier===h.identifier?_.push(T):y.push(T)});let P=_[0].point.x,A=[],O=0;for(;O<y.length&&y[O].point.x<P;)A.length>0&&A[A.length-1]===y[O].identifier?A.pop():A.push(y[O].identifier),O++;if(A.push(h.identifier),w==="evenodd"){let T=A.length%2===0,L=A[A.length-2];return{identifier:h.identifier,isHole:T,for:L}}else if(w==="nonzero"){let T=!0,L=null,B=null;for(let j=0;j<A.length;j++){let te=A[j];g[te]&&(T?(B=g[te].isCW,T=!1,L=te):B!==g[te].isCW&&(B=g[te].isCW,T=!0))}return{identifier:h.identifier,isHole:T,for:L}}else console.warn('fill-rule: "'+w+'" is currently not implemented.')}let p=0,a=999999999,u=-999999999,d=[];this.subPaths.forEach(h=>{let g=h.getPoints(),v=-999999999,x=999999999,w=-999999999,S=999999999;for(let b=0;b<g.length;b++){let I=g[b];I.y>v&&(v=I.y),I.y<x&&(x=I.y),I.x>w&&(w=I.x),I.x<S&&(S=I.x)}u<=w&&(u=w+1),a>=S&&(a=S-1),g.length&&d.push({curves:h.curves,points:g,isCW:ot.ShapeUtils.isClockWise(g),identifier:p++,boundingBox:new ot.Box2(new ot.Vector2(S,x),new ot.Vector2(w,v))})});let f=d.map(h=>c(h,d,a,u,this.userData?.style.fillRule)),m=[];return d.forEach(h=>{let g=f[h.identifier];if(g&&!g.isHole){let v=new ot.Shape;v.curves=h.curves,f.filter(w=>w?.isHole&&w.for===h.identifier).forEach(w=>{if(w){let S=d[w.identifier],b=new ot.Path;b.curves=S.curves,v.holes.push(b)}}),m.push(v)}}),m}};var Zn=require("three");var sh=require("three/examples/jsm/loaders/DRACOLoader.js");var go;function bw(){return go||(go=new sh.DRACOLoader,go.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),go.decoderPending}async function Sw(n){if(go){let t={attributeIDs:go.defaultAttributeIDs,attributeTypes:go.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await go.decodeGeometry(new Int8Array(n).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,o])=>({name:r,itemSize:o.itemSize,array:o.array}))}}return null}async function ah(n,t){let[e,r]=nl(Ns.deserialize(new Uint8Array(n)));zd(e);let o=[];e.scene.objects.traverse((i,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&o.push(s)}),o.length&&await bw();for(let i of o){let s=await Sw(Tt(i.geometry.data.draco));if(s){s.index&&(i.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let l={};s.attributes.forEach(({name:c,array:p,itemSize:a})=>{l[c]={array:p,itemSize:a,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=l,i.geometry.data.draco=void 0}}return t&&t(e),r.result().data}function ww(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var Ka=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=Nc(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}update(t,e){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=Nc(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}async reverseLigaturesTable(t,e,r){let{Bidi:o}=await rs,i=new o,s=u=>t.charToGlyphIndex(u.char);i.registerModifier("glyphIndex",null,s),i.applyFeatures(t,t.defaultRenderOptions.features),i.getTextGlyphs(e);let l=i.tokenizer.tokens,c=[],p=0,a=r.length===l.length;for(let u=0;u<r.length;u++){let d=r[u].index,f=String.fromCharCode(r[u].unicode),m=l[p];if(ww(d,m)||a)c.push({char:f,index:d,replacements:[m.state.glyphIndex],replacementChars:[m.char]}),p++;else{let h=m.char,g="",v=[m.state.glyphIndex],x=[],w=!1;for(;!w;)p++,g=e.charAt(p),h+=g,v.push(t.charToGlyphIndex(g)),x=t.stringToGlyphs(h),x.length===1&&x[0].index===d&&(w=!0),p>e.length&&(w=!0);c.push({char:f,index:d,replacements:v,replacementChars:Array.from(h)}),p++}}return c}async generateShapes(t,e){await this._loadingPromise;let r=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,s=t.map(x=>this.getTextWidth(x,e)),l=e.width,c=this.getCharWidth(`
|
|
1335
|
-
`,e),
|
|
1336
|
-
`:y.unicode?String.fromCharCode(y.unicode):void 0,A=
|
|
1337
|
-
`)
|
|
1338
|
-
`)>=0&&(t-=i),r===3?e*.5-t*.5:r===2?e-t:0}getLineInitialOffsetY(t,e,r,o,i){let s=e*t,l=Math.abs(this.ascender-this.descender)*o,c=t-l,
|
|
1334
|
+
}`,[xt.simplex,e,o,s])}}();var Sh=require("three");function vh(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var dl=class extends ti{constructor(e,r){super(new Sh.Matrix3);this.repeat=e;this.offset=r;vh(this.value,e,r)}updateMatrix(){vh(this.value,this.repeat,this.offset)}};var Br=class{constructor(t,e,r,o){this.id=t;this.uuid=e;this.data=r;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in r)ru(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return Dr.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new bs(i,r.texture.wrapping),l=new pl(i),c=new dl(r.texture.repeat,r.texture.offset),u=new Z(r.crop?1:0),a=new ve(r.projection??0),p=new ve(["x","y","z"].indexOf(r.axis)??0),d=new ve(r.side??0),f=new ut(r.size?new Ve.Vector2(r.size[0],r.size[1]):new Ve.Vector2(100,100)),m=new Z(r.alpha??1),h=new ve(r.mode??0),g=new us(s,l,u,a,p,d,f,c,m,h),b=new Ne(g.calpha,"f");return new nt(t,e,r,{texture:s,textureSize:l,crop:u,projection:a,axis:p,side:d,size:f,mat:c,alpha:m,mode:h},g,h,b)}else if(r.type==="matcap"){let i=o.image(r.texture.image),s=new bs(i,r.texture.wrapping),l=new Z(r.alpha??1),c=new ve(r.mode??0),u=new xs(s,l,c),a=new Ne(u.calpha,"f");return new nt(t,e,r,{texture:s,alpha:l,mode:c},u,c,a)}else if(r.type==="displace")if(r.displacementType==="noise"){let i=new mt(new Ve.Vector3(...r.offset)),s=new Z(r.scale??10),l=new Z(r.intensity??8),c=new Z(r.movement??1),u=new ve(r.noiseType??0),a=new ls(l,c,i,s,u);return new Ss(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:u},a)}else throw new Error;else return ww(t,e,r,o)}updateByOp(t,e,r){let o=t;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props?!0:xh(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?tu(o.props,r,this):!0;return!1}dispose(){}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,e){let r=`f${this.id}_${t}`;this.hasValueByKey(r)&&e!==void 0&&(this.uniforms[r].value=e)}getNode(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(t){let e=`f${this.id}_${t}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(t){let r=/f\d+_(.*)/.exec(t);if(r&&r.length>1)return r[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let e in this.uniforms){let r=this.getName(e);r&&t.push(r)}return t}},nt=class extends Br{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},Ss=class extends Br{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},Dr=class extends Br{constructor(e,r,o,i,s){super(e,r,o,s);this.data=o;this.node=i}static createLigherLayer(e,r,o,i){let s,l=new Z(o.alpha),c=new ve(o.mode),u;if(!o.visible)s=new qo,u={};else if(o.category==="lambert"){s=new ms;let a=new Pe(i.color(o.emissive)??0);u={emissive:a},s.emissive=a}else if(o.category==="toon"){s=new ys;let a=new Z(o.shininess??30),p=new Pe(i.color(o.specular)??1118481);u={shininess:a,specular:p},s.shininess=a,s.specular=p}else if(o.category==="physical"){s=new hs;let a=new Z(o.roughness??.3),p=new Z(o.metalness??0),d=new Z(o.reflectivity??.5);u={roughness:a,metalness:p,reflectivity:d},s.roughness=a,s.metalness=p,s.reflectivity=d}else{s=new cl;let a=new Z(o.shininess??30),p=new Pe(i.color(o.specular)??1118481);u={shininess:a,specular:p},s.shininess=a,s.specular=p}return s.alpha=new Z(1),s.shadingAlpha=l,s.shadingBlend=c,u.alpha=s.shadingAlpha,u.mode=s.shadingBlend,new Dr(e,r,o,s,u)}};function wh(n){let t=n instanceof Br?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function Sw(n,t,e,r){switch(n.type){case"color":{let o=new Pe(r.color??5855577),i=new Z(r.alpha??1),s=new Ne("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(r.mode??0);return o.alpha=i,new nt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Pe(r.color??16777215),i=new Z(r.bias??.1),s=new Z(r.scale??1),l=new Z(r.intensity??2),c=new Z(r.factor??1),u=new Z(r.alpha??1),a=new ve(r.mode??0),p=new rs(o,i,s,l,c,u,a),d=new Ne(p.calpha,"f");return new nt(t,e,n,{color:o,bias:i,scale:s,intensity:l,factor:c,alpha:u,mode:a},p,a,d)}case"rainbow":{let o=new Z(r.filmThickness??30),i=new Z(r.movement??0),s=new mt(r.wavelengths??new Ve.Vector3(0,0,0)),l=new Z(r.noiseStrength??0),c=new Z(r.noiseScale??1),u=new mt(r.offset??new Ve.Vector3(0,0,0)),a=new Z(r.alpha??1),p=new os(o,i,s,l,c,u,a),d=new Ne(p.calpha,"f"),f=new ve(r.mode??0);return new nt(t,e,n,{filmThickness:o,movement:i,wavelengths:s,noiseStrength:l,noiseScale:c,offset:u,alpha:a,mode:f},p,f,d)}case"transmission":{let o=new Z(r.thickness??10),i=new Z(r.ior??1.5),s=new Z(r.roughness??.5),l=ht.transmissionSize,c=ht.transmissionRenderTarget,u=ht.transmissionRenderTargetDepth,a=window.innerWidth,p=window.innerHeight,d=a>=p?new ut(p/a,1):new ut(1,a/p),f=new Z(r.alpha??1),m=new is(o,i,s,l,c,u,d,f),h=new Ne(m.calpha,"f"),g=new ve(r.mode??0);return new nt(t,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:d,alpha:f,mode:g},m,g,h)}case"toon":{let o=new ve(r.positioning??0),i;r.colors?i=new cr(r.colors.length,r.colors):(i=new cr(10,new Ve.Vector4(0,0,0,1)),i.value[1]=new Ve.Vector4(1,1,1,1));let s;r.steps?s=new lr(r.steps.length,r.steps):(s=new lr(10,1),s.value[0]=0);let l=new mt(r.source??new Ve.Vector3(0,0,0)),c=new wo(r.isWorldSpace??!0),u=new Z(r.noiseStrength??0),a=new Z(r.noiseScale??1),p=new Jt(r.shadowColor),d=new mt(r.offset??new Ve.Vector3(0,0,0)),f=new Z(r.alpha??1),m=new vs(o,i,s,l,c,u,a,p,d,f),h=new Ne(m.calpha,"f"),g=new ve(r.mode??0);return new nt(t,e,n,{positioning:o,colors:i,steps:s,source:l,isWorldSpace:c,noiseStrength:u,noiseScale:a,shadowColor:p,offset:d,alpha:f,mode:g},m,g,h)}case"outline":{let o=new Pe(r.outlineColor??16777215),i=new Pe(r.contourColor??16777215),s=new Z(r.outlineWidth??.1),l=new Z(r.contourWidth??.1),c=new Z(r.outlineThreshold??.1),u=new Z(r.contourThreshold??.1),a=new Z(r.outlineSmoothing??.1),p=new Z(r.contourFrequency??.1),d=new mt(r.contourDirections??new Ve.Vector3(0,1,0)),f=new wo(r.positionalLines??!1),m=new wo(r.compensation??!0),h=ht.normalRenderTarget,g=ht.normalRenderTargetDepth,b=ht.pixelRatioNode,x=ht.resolution,S=new Z(r.alpha??1),w=new ns(o,i,s,l,c,u,a,p,d,f,m,x,h,g,b,S),v=new Ne(w.calpha,"f"),N=new ve(r.mode??0);return new nt(t,e,n,{outlineColor:o,contourColor:i,outlineWidth:s,contourWidth:l,outlineThreshold:c,contourThreshold:u,outlineSmoothing:a,contourFrequency:p,contourDirection:d,positionalLines:f,compensation:m,alpha:S,mode:N},w,N,v)}case"depth":{let o=new ve(r.gradientType??0),i=new wo(r.smooth??!1),s=new Z(r.near??50),l=new Z(r.far??200),c=new Z(r.isVector??1),u=new Z(r.isWorldSpace??0),a=new mt(r.origin??new Ve.Vector3),p=new mt(r.direction??new Ve.Vector3),d;r.colors?d=new cr(r.colors.length,r.colors):(d=new cr(2,new Ve.Vector4(0,0,0,1)),d.value[1]=new Ve.Vector4(1,1,1,1));let f;r.steps?f=new lr(r.steps.length,r.steps):(f=new lr(2,1),f.value[0]=0);let m=new Z(r.alpha??1),h=new ve(r.mode??0),g=new ss(o,i,s,l,c,u,a,p,d,f,m),b=new Ne(g.calpha,"f");return new nt(t,e,n,{gradientType:o,smooth:i,near:s,far:l,isVector:c,isWorldSpace:u,origin:a,direction:p,colors:d,steps:f,alpha:m,mode:h},g,h,b)}case"noise":{let o=new Z(r.scale??1),i=new mt(r.size??new Ve.Vector3(100,100,100)),s=new Z(r.move??1),l=new ut(r.fA??new Ve.Vector2(1.7,9.2)),c=new ut(r.fB??new Ve.Vector2(8.3,2.8)),u=new ut(r.distortion??new Ve.Vector2(1,1)),a=new Jt(r.colorA),p=new Jt(r.colorB),d=new Jt(r.colorC),f=new Jt(r.colorD),m=new Z(r.alpha??1),h=new ve(r.mode??0),g=new ve(r.noiseType??0),b=new es(o,i,s,l,c,u,a,p,d,f,m,g),x=new Ne(b.calpha,"f");return new nt(t,e,n,{scale:o,size:i,move:s,fA:l,fB:c,distortion:u,colorA:a,colorB:p,colorC:d,colorD:f,alpha:m,mode:h,noiseType:g},b,h,x)}case"normal":{let o=new mt(r.cnormal??new Ve.Vector3(1,1,1)),i=new Z(r.alpha??1),s=new ve(r.mode??0),l=new ds(o,i),c=new Ne("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new nt(t,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new ve(r.gradientType??0),i=new wo(r.smooth??!1),s;r.colors?s=new cr(r.colors.length,r.colors):(s=new cr(10,new Ve.Vector4(0,0,0,1)),s.value[1]=new Ve.Vector4(1,1,1,1));let l;r.steps?l=new lr(r.steps.length,r.steps):(l=new lr(10,1),l.value[0]=0);let c=new ut(r.offset??new Ve.Vector2(0,0)),u=new ut(r.morph??new Ve.Vector2(0,0)),a=new Z(r.angle??0),p=new Z(r.alpha??1),d=new ve(r.mode??0),f=new cs(o,i,s,l,c,u,a,p),m=new Ne(f.calpha,"f");return new nt(t,e,n,{gradientType:o,smooth:i,colors:s,steps:l,offset:c,morph:u,angle:a,alpha:p,mode:d},f,d,m)}default:{let o=new Pe(1,0,0,1),i=new Z(1),s=new Ne("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new ve(0);return o.alpha=i,new nt(t,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function ww(n,t,e,r){let o=mh(e,r);return Sw(e,n,t,o)}function ru(n,t,e){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let r=t.uniforms[`f${t.id}_intensity`];return r?(r.value=e.intensity*(e.visible?1:0),r):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let r=t.uniforms[`f${t.id}_alpha`];if(!r)return;if(r.value=e.alpha*(e.visible?1:0),e.type==="outline"&&n==="visible"){let o=t.uniforms[`f${t.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return r}}var jt=class extends fl.ShaderMaterial{constructor(e,r){super(void 0);this.data=e;this.layerIdGen=0;this.type="NodeMaterial";this.fog=!0,this.updaters=[],this.dithering=!0,this.vertexColors=!0,this.onBeforeCompile=this._onBeforeCompile,this.transparent=!0,this.reset(e,r)}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.data.category}reset(e,r){let o=e.layers??Ft.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Br.create(this.layerIdGen++,i.id,i.data,r)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(r)}getLayersOfType(e){return this.layers.filter(r=>r.type===e)}getLayerByUuid(e){return this.layers.find(r=>r.uuid===e)}onUpdate(e){this.lightLayer=this.layers.find(r=>r instanceof Dr),this.lightLayer===void 0&&(this.lightLayer=new Dr(0,"",{...yr.defaultData("light","phong"),visible:!1},new qo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,r,o){if(this.data=r,e.path[0]==="layers"){let i=e.path[1];if(i===void 0){if(this.layers.reverse(),e.type===4){let s=Br.create(this.layerIdGen++,e.id,e.data,o);this.layers.splice(e.localIndex,0,s)}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose();else if(e.type===6){let s=this.layers.findIndex(c=>c.uuid===e.id),l=this.layers[s];this.layers.splice(s,1),this.layers.splice(e.localIndex,0,l)}this.layers.reverse(),this.onUpdate(o)}else{let s=this.layers.find(l=>l.uuid===i);if(s){let l=r.layers.data(i);if(s.updateByOp({...e,path:e.path.slice(2)},l,o)){let u=Br.create(this.layerIdGen++,i,l,o);this.layers.splice(this.layers.findIndex(a=>a.uuid===i),1,u),this.onUpdate(o)}}}}}blendColors(){let e=this.layers.findIndex(o=>o instanceof nt),r=this.layers.findIndex(o=>o instanceof Dr);if(e!==-1&&e<r){let o=this.layers[e].color;for(let i=e+1;i<r;++i){let s=this.layers[i];s instanceof nt&&(o=new as(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Ne("outgoingLight","f"),r=this.layers.findIndex(o=>o instanceof Dr);if(this.layers.length>r+1){for(let o=r+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof nt&&(e=new as(e,i.color,i.alpha,i.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(r=>r instanceof Ss);if(e.length>0){let r=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(r=new Lt(r,e[o].position,Lt.ADD),r=new Lt(r,new Z(.5).setReadonly(!0),Lt.MUL));this.fragment.position=r}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}_onBeforeCompile(e,r){this.build({renderer:r}),e.defines=this.defines,e.uniforms=this.uniforms,e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.extensionDerivatives=this.extensions.derivatives===!0,e.extensionFragDepth=this.extensions.fragDepth===!0,e.extensionDrawBuffers=this.extensions.drawBuffers===!0,e.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(e,r){let o=(i,s,l)=>Math.min(Math.max(i,s),l);for(let i of this.layers)if(i.type==="displace"){let s=o(i.uniforms[`f${i.id}_intensity`].value,e,r);i.uniforms[`f${i.id}_intensity`].value=s}}customProgramCacheKey(){let e="[";for(let{data:r}of this.data.layers)if(r.type==="light")e+=`"${r.visible?r.category.toUpperCase():"Basic"}"`;else{let o=(Jc[r.type]??[]).map(l=>r[l]),i=(eu[r.type]??[]).map(l=>r[l]?.length??0),s=[...o,...i];s.length?e+=`["${r.type}", "${s.join('","')}"],`:e+=`"${r.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let r=0;r<this.updaters.length;++r)e.updateNode(this.updaters[r])}build(e){e=e??{};let r=e.builder??new al;return this.lights=this.lightLayer.data.visible,r.setMaterial(this,e.renderer),r.build(this.fragment,this.fragment),this.vertexShader=r.getCode("vertex"),this.fragmentShader=r.getCode("fragment"),this.defines=r.defines,this.uniforms=r.uniforms,this.extensions=r.extensions,this.updaters=r.updaters,this.transparent=r.requires.transparent||this.blending>fl.NormalBlending,this}dispose(){this.layers.forEach(e=>e.dispose()),super.dispose()}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(jt.prototype,{properties:{get:function(){return this.fragment.properties}},needsUpdate:{set:function(n){n===!0&&this.version++,this.needsCompile=n},get:function(){return this.needsCompile}}});var Ut=require("three");function _w(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position||!n.geometry.attributes.normal)return;let t=new Map,e=n.geometry.attributes.position.array,r=n.geometry.attributes.normal.array,o=new Float32Array(e.length);for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=new Ut.Vector3(r[i],r[i+1],r[i+2]);t.has(s)?t.get(s)?.normals.push(l):t.set(s,{normals:[l],result:new Ut.Vector3})}t.forEach((i,s)=>{for(let l of i.normals)i.result.add(l);i.result.divideScalar(i.normals.length)});for(let i=0;i<e.length;i+=3){let s=`${e[i]}_${e[i+1]}_${e[i+2]}`,l=t.get(s)?.result;l&&(o[i]=l.x,o[i+1]=l.y,o[i+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new Ut.Float32BufferAttribute(o,3))}function Tw(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=new Ut.Vector3;for(let o=0;o<t.length;o+=3)r.set(t[o],t[o+1],t[o+2]).normalize(),e[o]=r.x,e[o+1]=r.y,e[o+2]=r.z;n.geometry.setAttribute("extrudeNormal",new Ut.Float32BufferAttribute(e,3))}function Gr(n){if(Array.isArray(n.material)){for(let t of n.material)if(t.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof jt)||n.material.getLayersOfType("outline").length===0)return;n.objectType==="Mesh2D"||n.objectType==="TextFrame"&&n.data?.geometry?.depth===0?Tw(n):_w(n)}function Rr(n){if(!n.geometry.attributes.position)return;let t=n.geometry.attributes.position.array,e=new Float32Array(t.length),r=parseInt(n.uuid.replace(/\D/g,"")),o=[Ut.MathUtils.seededRandom(r),Ut.MathUtils.seededRandom(r+1e4),Ut.MathUtils.seededRandom(r+2e4)];for(let i=0;i<t.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new Ut.BufferAttribute(e,3))}var _h=require("three");var Vr=(n,t)=>class extends n{constructor(){super(...arguments);this.objectHelper=new t(this)}get geometryHelper(){return t.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}fromLightState(o,i){if(this.objectType==="LightDirectional"||this.objectType==="LightPoint"||this.objectType==="LightSpot"){let s=this;o.color!==void 0&&(s.color=lt(o.color,i)),o.intensity!==void 0&&(s.intensity=o.intensity),o.depth!==void 0&&(s.shadow.camera.far=o.depth,s.shadow.needsUpdate=!0),o.shadows!==void 0&&(this.castShadow=o.shadows)}return this}};var Qr=class extends Vr(Xt(_h.Group),Rn){constructor(){super(...arguments);this.objectType="EmptyObject"}createFromState(e,r){let o=new Qr().fromState(r);return o.uuid=e,o.objectHelper.update(),o.setFromClonerState(r.cloner||null),o}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Xr(this,e)),this.cloner.fromClonerState(e))}};function Aw(n){let t=n.parent;for(;t;){if(t instanceof Qr&&t.cloner?.parameters.hideBase)return!0;t=t.parent}return!1}var Ze=class extends Xt(ml.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new ml.Matrix4;this.booleanExclude=null;Array.isArray(r)&&e.groups.length===0&&e.addGroup(0,Math.max(e.getIndex()?.count??0,e.getAttribute("position").count),0)}get isGroup(){return this._cloner?.parameters.hideBase===!0||Aw(this)}get isMesh(){return!this.isGroup}set isMesh(e){}get cloner(){return this._cloner}set cloner(e){this._cloner&&(this.remove(this._cloner),this._cloner.removeSampleObjectClones()),e&&this.add(e),this._cloner=e}updateGeometry(e,r){let o=this.geometry,i=Gc[o.userData.type],s=this.objectType==="NonParametric"?Object.assign({},o.userData,{geometry:o}):o.userData,l=i.build(i.normalizeInputs(e,s)),c=o.uuid;this.geometry.dispose(),this.geometry=l,this.geometry.uuid=c,this.geometry.computeBoundingSphere(),Gr(this),o.getAttribute("randomColor")&&Rr(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Xi(r),i=this.material;return new this.constructor(o,i).copy(this,e)}copy(e,r=!0){return super.copy(e,r),e.cloner&&(this.cloner=new Xr(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Xr(this,e)),this.cloner.fromClonerState(e))}fromState(e,r){return super.fromState(e),e.type==="Mesh"&&(this.setFromClonerState(e.cloner),this.castShadow=e.castShadow??!0,this.receiveShadow=e.receiveShadow??!0,this.booleanExclude=e.booleanExclude??null),this}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(ir.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),Sr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)vr(e)&&(e.freeBooleanPointer(),Sr(e)&&e.invalidateUpstreamBooleanData())}};var Nw=new Ao.Vector3(0,0,1),Th=new Ao.Vector3,Ah=new Ao.Vector3,Nh=new Ao.Matrix3,ii=class extends Ze{constructor(e=ft.create({}),r){super(e,r);this.recursiveSelection=!1;this.objectType="VectorObject";this.eventDispatcher=new Ao.EventDispatcher;this._onShapeUpdate=()=>{this.updateGeometry({}),this.geometry.computeBoundingSphere(),this.geometry.computeBoundingBox()};this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!0,this.shape=e.userData.shape,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}fromState(e){return super.fromState(e),this.shape.update(),this}setHelperVisibility(){}updateGeometry(e,r){if(super.updateGeometry(e,r),"userData"in this.geometry){let o=this.geometry.userData.parameters;this.eventDispatcher.dispatchEvent({type:"geometryUpdate",parameters:o})}}setShape(e){this.shape&&this.shape.eventDispatcher?.removeEventListener("update",this._onShapeUpdate),this.shape=e,this.shape.eventDispatcher?.addEventListener("update",this._onShapeUpdate)}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),Nh.getNormalMatrix(this.matrixWorld),Th.copy(Nw).applyMatrix3(Nh).normalize(),Ah.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Th,Ah)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=ft.create(Object.assign({},i,{shape:r})),l=new ii(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){Ze.prototype.raycast.call(this,e,r)}};var si=new Ue.Vector3,iu=new Ue.Vector3,Jr=class extends Vr(Xt(Ue.Camera),Ha){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=Lo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.width=e,this.height=r,this.orthoCamera=new Ue.OrthographicCamera(e*-.5,e*.5,r*.5,r*-.5,i??-5e4,s),this.perspCamera=new Ue.PerspectiveCamera(o,e/r,i??50,s),this.left=this.orthoCamera.left,this.right=this.orthoCamera.right,this.top=this.orthoCamera.top,this.bottom=this.orthoCamera.bottom,this.far=this.orthoCamera.far,this.view=this.orthoCamera.view,this.aspect=this.perspCamera.aspect,this.fov=this.perspCamera.fov,this.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.toOrthographic()}static createFromState(e,r){let o=new Jr().fromState(r);return o.objectHelper.update(),o.uuid=e,o}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}setNear(e,r){e==="PerspectiveCamera"?this.perspCamera.near=r:this.orthoCamera.near=r}setZoom(e,r){r>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=r:this.orthoCamera.zoom=r)}set cameraType(e){e==="PerspectiveCamera"?this.toPerspective():e==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(e){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(e){e>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}lookAt(e){super.lookAt(e),this.getWorldPosition(si),this.targetOffset=si.distanceTo(e)}getTarget(e=new Ue.Vector3){return this.getWorldDirection(iu),this.getWorldPosition(si),iu.multiplyScalar(this.targetOffset),e.copy(si).add(iu),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(si),si.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new Ue.Quaternion),r=new Ue.Vector3(0,0,1).applyQuaternion(e),o=new Ue.Vector3().copy(Ue.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new Ue.Vector3().copy(Ue.Object3D.DefaultUp).projectOnPlane(r),s=new Ue.Vector3().crossVectors(i,o).dot(r)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}getViewFrontToObject(e){let r=e.getWorldPosition(new Ue.Vector3),i=e.getWorldDirection(new Ue.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().add(i),target:r}}getViewToObject(e){let r=e.getWorldPosition(new Ue.Vector3),i=this.getWorldDirection(new Ue.Vector3).multiplyScalar(this.targetOffset);return{position:r.clone().sub(i),target:r}}setViewplaneSize(e,r){this.left=-e*.5,this.right=e*.5,this.top=r*.5,this.bottom=-r*.5,this.aspect=e/r,this.updateProjectionMatrix()}toOrthographic(){this.orthoCamera.left=this.left,this.orthoCamera.right=this.right,this.orthoCamera.top=this.top,this.orthoCamera.bottom=this.bottom,this.orthoCamera.view=this.view,this.orthoCamera.far=this.far,this.orthoCamera.updateProjectionMatrix(),this.projectionMatrix=this.orthoCamera.projectionMatrix,this.projectionMatrixInverse=this.orthoCamera.projectionMatrixInverse,this._cameraType="OrthographicCamera",this.objectHelper&&this.objectHelper.update()}toPerspective(){this.perspCamera.aspect=this.aspect,this.perspCamera.fov=this.fov,this.perspCamera.view=this.view,this.perspCamera.far=this.far,this.perspCamera.updateProjectionMatrix(),this.projectionMatrix=this.perspCamera.projectionMatrix,this.projectionMatrixInverse=this.perspCamera.projectionMatrixInverse,this._cameraType="PerspectiveCamera",this.objectHelper&&this.objectHelper.update()}setFocalLength(e){this.perspCamera.setFocalLength(e),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(e,r,o,i,s,l){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,r,o,i,s,l):this.orthoCamera.setViewOffset(e,r,o,i,s,l)}clearViewOffset(){this._cameraType==="PerspectiveCamera"?(this.perspCamera.clearViewOffset(),this.toPerspective()):(this.orthoCamera.clearViewOffset(),this.toOrthographic())}updateProjectionMatrix(){this._cameraType==="PerspectiveCamera"?this.toPerspective():this._cameraType==="OrthographicCamera"&&this.toOrthographic()}updateMatrixWorld(e){super.updateMatrixWorld(e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(e,r){super.updateWorldMatrix(e,r),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,r){return super.copy(e,r),this.orthoCamera.copy(e.orthoCamera),this.perspCamera.copy(e.perspCamera),this.left=e.left,this.right=e.right,this.top=e.top,this.bottom=e.bottom,this.far=e.far,this.view=e.view===null?null:Object.assign({},e.view),this._cameraType=e._cameraType,this.aspect=e.aspect,this.fov=e.fov,this.focus=e.focus,this.filmGauge=e.filmGauge,this.filmOffset=e.filmOffset,this.targetOffset=e.targetOffset,this.updateProjectionMatrix(),this}toCameraState(e=[]){let r={type:this.cameraType,far:this.far,orthographic:{near:this.orthoCamera.near,zoom:this.orthoCamera.zoom},perspective:{near:this.perspCamera.near,fov:this.perspCamera.fov,zoom:this.perspCamera.zoom},up:this.up.toArray(),targetOffset:this.targetOffset,isUpVectorFlipped:this.isUpVectorFlipped};return Pn(r,e)}fromCameraState(e){let{orthographic:r,perspective:o}=e;return e.type!==void 0&&(this.cameraType=e.type),e.far!==void 0&&(this.far=e.far),r!==void 0&&(r.near!==void 0&&(this.orthoCamera.near=r.near),r.zoom!==void 0&&(this.orthoCamera.zoom=r.zoom)),o!==void 0&&(o.near!==void 0&&(this.perspCamera.near=o.near),o.fov!==void 0&&(this.perspCamera.fov=o.fov),o.zoom!==void 0&&(this.perspCamera.zoom=o.zoom)),e.type==="PerspectiveCamera"?(this.zoom=this.perspCamera.zoom,this.fov=this.perspCamera.fov,this.near=this.perspCamera.near):(this.near=this.orthoCamera.near,this.zoom=this.orthoCamera.zoom),e.up!==void 0&&this.up.fromArray(e.up),e.targetOffset!==void 0&&(this.targetOffset=e.targetOffset),e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateProjectionMatrix(),this}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}fromState(e){return super.fromState(e),this.fromCameraState(e),this}};var ws=require("three");var Ih=new ws.Matrix4;var hl=class extends Ze{constructor(e=new ws.BufferGeometry,r){super(e,r);this.booleanOp=2;this.phongAngle=35;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.objectType="BooleanObject",this.castShadow=!0,this.receiveShadow=!0,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}reInit(){this.objectType="BooleanObject",this.meshSetAddresses=[],this.needsTransformForDownstream=!1,this.geometry.userData.parameters={width:0,height:0,depth:0},this.onAfterRender=this.recomputeBoolean.bind(this)}recomputeBoolean(e,r=!0){if(this.booleanMeshSetAddress!==-1)return;for(let i=0;i<this.children.length;i++){let s=this.children[i];Sr(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(Bf(s)&&s.booleanExclude===!1&&s.geometry.attributes.position?.count>0&&s.geometry.drawRange.count>0){if(s.booleanMeshSetAddress===-1){if((s.geometry.index??s.geometry.getAttribute("position")).count/3<15e5&&(s.booleanMeshSetAddress=ir.getMeshSet(s.geometry,e===!0,r)),s.booleanMeshSetAddress===-1)return;ir.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else Sr(s)&&s.needsTransformForDownstream===!0?(ir.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Ih.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),ir.transformMeshSet(s.booleanMeshSetAddress,Ih),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1);this.meshSetAddresses.push(s.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setDrawRange(0,0);return}if(e===!0)return ir.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new ws.BufferGeometry,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=ir.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(i){this.booleanMeshSetAddress=0,console.error(i)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,Gr(this),Rr(this)}updateGeometry(e,r){let o=e.parameters;o.operation!==void 0&&(this.booleanOp=o.operation),o.phongAngle!==void 0&&(this.phongAngle=o.phongAngle),this.invalidateDownstreamBooleanData().recomputeBoolean()}};var Yo=require("three");var ai=class extends Vr(Xt(Yo.DirectionalLight),Gn){constructor(...e){super(...e);this.objectType="LightDirectional";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.top=1250,o.bottom=-1250,o.right=1250,o.left=-1250,o.near=-1e4,o.far=2500;let i=new Yo.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new ai().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Yo.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Yo.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Yo.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromDirectionalLightState(e,r){let o=e.depth!==void 0&&e.depth!==this.shadow.camera.far||e.size!==void 0&&e.size/2!==this.shadow.camera.right;return super.fromLightState(e,r),e.size!==void 0&&Mf(this,e.size),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),o&&this.update(),this}fromState(e,r){return super.fromState(e),this.fromDirectionalLightState(e,r),this}};var bt=require("three");var li=class extends Vr(Xt(bt.PointLight),Vn){constructor(...e){super(...e);this.objectType="LightPoint";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=90,o.aspect=1,o.near=100,o.far=2500;let i=new bt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new bt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z),l=new bt.Box3(i,s),c=new bt.Box3Helper(l,new bt.Color(16755200));c.visible=!1,this._gizmos.shadowmap=c,this.update()}static createFromState(e,r,o){let i=new li().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof bt.Box3Helper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof bt.Box3Helper&&(r.visible=!1)}}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this._gizmos))for(let e in this._gizmos){let r=this._gizmos[e];if(r instanceof bt.Box3Helper){let o=this.shadow.camera,i=new bt.Vector3(-o.far+this.position.x,-o.far+this.position.y,-o.far+this.position.z),s=new bt.Vector3(o.far+this.position.x,o.far+this.position.y,o.far+this.position.z);r.box.set(i,s),r.updateMatrixWorld(!0)}}}updateMatrixWorld(e){super.updateMatrixWorld(e),this.objectHelper&&this.objectHelper.update()}fromPointLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromPointLightState(e,r),this}};var Bt=require("three");var Ph=new Bt.Vector3,Oh=new Bt.Vector3,Ch=new Bt.Quaternion,ci=class extends Vr(Xt(Bt.SpotLight),Fi){constructor(...e){super(...e);this.objectType="LightSpot";this._gizmos={};this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let o=this.shadow.camera;o.fov=Bt.MathUtils.RAD2DEG*2*this.angle,o.aspect=1,o.near=100,o.far=2500;let i=new Bt.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,this.update()}static createFromState(e,r,o){let i=new ci().fromState(r,o);return i.uuid=e,i}get gizmos(){return this._gizmos}showGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Bt.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Bt.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Bt.CameraHelper&&r.update()}}updateMatrixWorld(e){super.updateMatrixWorld(e),Oh.setFromMatrixPosition(this.matrixWorld),Ch.setFromRotationMatrix(this.matrixWorld),Ph.copy(this.up).applyQuaternion(Ch).negate().multiplyScalar(this.distance),this.target.position.copy(Oh).add(Ph),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}fromSpotLightState(e,r){return super.fromLightState(e,r),e.distance!==void 0&&(this.distance=e.distance),e.decay!==void 0&&(this.decay=e.decay),e.angle!==void 0&&(this.angle=e.angle),e.penumbra!==void 0&&(this.penumbra=e.penumbra),e.shadowRadius!==void 0&&(this.shadow.radius=e.shadowRadius),e.shadowResolution!==void 0&&(this.shadow.mapSize.set(e.shadowResolution,e.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),this}fromState(e,r){return super.fromState(e),this.fromSpotLightState(e,r),this}};var Mh=n=>n.tagName==="VIDEO",ui=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Mh(s)?i=s.videoWidth/s.videoHeight:i=s.width/s.height,o>i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*i/o):r.repeat.set(1,1*i/o)),o<i&&(r.imageType=="WEBCAM"?r.repeat.set(1*o/i*-1,1):r.repeat.set(1*o/i,1)),o==i&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1))}static resizeTextureLayer(t,e,r){let o=t/e,i=r.image!==void 0?r.image.width/r.image.height:1,s;o>i?s={x:1,y:i/o}:o<i?s={x:o/i,y:1}:s={x:1,y:1},r.repeat.set(s.x,s.y),r.updateMatrix()}static resizeTextureLayers(t,e,r){let o=r.layers;for(let i=0;i<o.length;i++){let s=o[i];wh(s)&&ui.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Mh(l)?s=l.videoWidth/l.videoHeight:s=l.width/l.height,o.geometry.type.includes("Shape")?(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e*s/i):r.repeat.set(1/t,1/e*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*i/s*-1,1/e):r.repeat.set(1/t*i/s,1/e)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(1/t*-1,1/e):r.repeat.set(1/t,1/e))):(i>s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1*s/i):r.repeat.set(1,1*s/i)),i<s&&(r.imageType=="WEBCAM"?r.repeat.set(1*i/s*-1,1):r.repeat.set(1*i/s,1)),i==s&&(r.imageType=="WEBCAM"?r.repeat.set(-1,1):r.repeat.set(1,1)))}};var gl=class extends Ze{constructor(e,r){super(e,r);this.objectType="Mesh2D";this.castShadow=!0,this.receiveShadow=!0}updateGeometry(e,r){super.updateGeometry(e,r),this.material.layers&&ui.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var pi=class extends Ze{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var yl=class extends pi{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Eh,Ts=new Promise(n=>{Eh=n}),Lh=!1;async function Bh(){if(Lh)return;let n=await import("./opentype.js");Eh(n),Lh=!0}var As=class{async load(t,e,r=()=>{}){let{load:o}=await Ts;o(t,(i,s)=>{i||!s?r(i??"Something went wrong"):e(s)})}async parse(t){let{parse:e}=await Ts;try{return e(t)}catch(r){console.error(r)}}};async function Iw(n){return await(await fetch(n)).arrayBuffer()}var Pw=new As;async function su(n){let t,e,r=!1;if(n.url?(t=await Iw(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await Pw.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}var di=require("three");var Dh=new di.Vector3,Gh=new di.Matrix4,Rh=new di.Ray;function Vh(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var xl=class extends Ze{constructor(e,r,o){super(new Xn(r.geometry,o),o.material(r.material));this.data=r;this.objectType="TextFrame";this.wrappedText=[""];this.charWidths=[];this.charCoords=[];this.castShadow=r.castShadow,this.receiveShadow=r.receiveShadow,this.name=r.name,this.uuid=e,this.updateState(r,o)}async updateGeometry(e,r){let o=e.parameters,i={...this.geometry.userData.parameters,...o};this.geometry.userData={parameters:i,type:"TextGeometry"},r&&(o.font||!this.geometry.font&&r.getFont(i.font))&&await this.geometry.updateFont(o.font??i.font,r),await this.geometry.update(i),Gr(this),Rr(this);let{wrappedText:s,charCoords:l,charWidths:c}=this.geometry;this.wrappedText=s,this.charWidths=c,this.charCoords=l,this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateState(e,r){this.data=e,this.material=r.material(e.material),this.fromState(e,r),this.updateGeometry({parameters:e.geometry},r)}get font(){return this.geometry.font}get initialOffsetY(){return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,this.geometry.userData.parameters.height,this.fontScale,this.geometry.userData.parameters.verticalAlign)??0}get fontScale(){return this.font?this.geometry.userData.parameters.fontSize/this.font.unitsPerEm:1}get AD(){return Math.abs(this.ascender-this.descender)}get ascender(){return(this.font?.ascender??1)*this.fontScale}get descender(){return(this.font?.descender??1)*this.fontScale}get lineHeight(){return this.geometry.userData.parameters.fontSize*this.geometry.userData.parameters.lineHeight}raycast(e,r){let{matrixWorld:o}=this;if(Gh.copy(o).invert(),Rh.copy(e.ray).applyMatrix4(Gh),Rh.intersectBox(this.singleBBox,Dh)){let i=Dh.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};var Tt=require("three");var Uh=Es(zh());var au;En.then(n=>{au=n});var kh=new Tt.Matrix4,Ow=new Tt.Matrix4,Cw=new Tt.Matrix4,ur=new Tt.Box3,No=new Tt.Vector3,Mw=new Tt.Matrix4,Lw=new Tt.Matrix4;var fi=class extends Ze{constructor(e,r,o,i){super(o??r,i);this.subdivPointer=e;this.originalGeometry=r;this.subdividedGeometry=o;this.objectType="SubdivObject";this.hiddenMatrixOld=new Tt.Matrix4;this.smoothShading=!0;this.phongAngle=35;this.matrixWorldRigid=new Tt.Matrix4;this.castShadow=!0,this.receiveShadow=!0,this.forceComputeSize=!1}static createFromState(e,r,o){let{subdivPointer:i,originalGeometry:s,subdividedGeometry:l}=Qt.build(r.geometry,void 0,void 0,!r.flatShading),c=o.material(r.material),u=new fi(i,s,l||void 0,c);return r.geometry.phongAngle!==void 0&&(u.phongAngle=r.geometry.phongAngle),u.calcBoundingBox(),u.freeSubdivPointer(),u.uuid=e,u.fromState(r),u}buildFromStore(e,r){let{originalGeometry:o,subdividedGeometry:i,subdivPointer:s}=Qt.build(e,r,this.subdivPointer,this.smoothShading,this.shearScale);e.phongAngle!==void 0&&(this.phongAngle=e.phongAngle),this.subdivPointer=s,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.geometry=this.subdividedGeometry??this.originalGeometry,Gr(this),Rr(this),e.width&&(this.geometry.userData.parameters={width:e.width,height:e.height,depth:e.depth})}updateMesh(e=!1){Qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e?this.shearScaleInv:void 0),this.subdividedGeometry&&Qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=Qt.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Qt.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.geometry=this.subdividedGeometry??this.originalGeometry}raycast(e,r){this.geometry=this.originalGeometry,Ze.prototype.raycast.call(this,e,r),this.geometry=this.subdividedGeometry??this.originalGeometry}updateMatrixWorldSVD(){let e=this.matrixWorld.elements,r=[[e[0],e[4],e[8]],[e[1],e[5],e[9]],[e[2],e[6],e[10]]],{u:o,v:i,q:s}=(0,Uh.SVD)(r),l=kh.set(o[0][0],o[0][1],o[0][2],0,o[1][0],o[1][1],o[1][2],0,o[2][0],o[2][1],o[2][2],0,0,0,0,1),c=Ow.set(i[0][0],i[0][1],i[0][2],0,i[1][0],i[1][1],i[1][2],0,i[2][0],i[2][1],i[2][2],0,0,0,0,1),u=Cw.copy(c).transpose();this.shearScale=Mw.makeScale(s[0],s[1],s[2]).multiply(u).premultiply(c),this.shearScaleInv=Lw.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,u),s.every(a=>Math.abs(s[0]-a)<.01)&&(this.shearScale=void 0,this.shearScaleInv=void 0)}activateSVDCompensation(){this.shearScale!==void 0&&(this.matrixAutoUpdate=!1,this.matrix.copy(this.matrixWorldRigid).copyPosition(this.matrixWorld),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){this.shearScale!==void 0&&(this.shearScale=void 0,this.shearScaleInv=void 0,this.matrixAutoUpdate=!0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new Tt.Sphere);let r=e.attributes.position,o=e.boundingSphere.center;ur.setFromBufferAttribute(r),ur.getCenter(o),e.boundingSphere.radius=o.distanceTo(ur.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ur.getSize(No);let i={width:No.x,height:No.y,depth:No.z};return this.geometry.userData.parameters=i,i}updateBoundingBox(e){let r=this.originalGeometry;ur.min.set(e[0],e[2],e[4]),ur.max.set(e[1],e[3],e[5]),this.shearScaleInv&&(ur.min.applyMatrix4(this.shearScaleInv),ur.max.applyMatrix4(this.shearScaleInv)),r.boundingSphere===null&&(r.boundingSphere=new Tt.Sphere);let o=r.boundingSphere.center;ur.getCenter(o),r.boundingSphere.radius=o.distanceTo(ur.max),isNaN(r.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),ur.getSize(No);let i={width:No.x,height:No.y,depth:No.z};return this.geometry.userData.parameters=i,i}freeSubdivPointer(){this.subdivPointer&&(au.free_bvh(this.subdivPointer),au.free_subdivision_surface(this.subdivPointer),this.subdivPointer=0)}updateGeometry(e,r){this.geometry.userData.scale||(this.geometry.userData.scale=Array(3)),this.geometry.userData.scale[0]=this.geometry.userData.parameters.width===0?1:e.parameters.width/this.geometry.userData.parameters.width,this.geometry.userData.scale[1]=this.geometry.userData.parameters.height===0?1:e.parameters.height/this.geometry.userData.parameters.height,this.geometry.userData.scale[2]=this.geometry.userData.parameters.depth===0?1:e.parameters.depth/this.geometry.userData.parameters.depth,jh(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(jh(this.subdividedGeometry.attributes,...this.subdividedGeometry.userData.scale),this.subdividedGeometry.attributes.position.needsUpdate=!0,this.subdividedGeometry.attributes.normal.needsUpdate=!0),this.geometry.userData.parameters={...e.parameters}}};function jh(n,t,e,r){let o=n.position.array,i=n.normal.array,s=kh.makeScale(t,e,r).invert().elements,l,c,u;for(var a=0,p=o.length;a<p;a+=3)o[a]*=t,o[a+1]*=e,o[a+2]*=r,l=i[a],c=i[a+1],u=i[a+2],i[a]=s[0]*l+s[4]*c+s[8]*u,i[a+1]=s[1]*l+s[5]*c+s[9]*u,i[a+2]=s[2]*l+s[6]*c+s[10]*u}var Io=require("three");function Hh(n,t){t.flatShading!==void 0&&(n.flatShading=t.flatShading,n.needsUpdate=!0),t.wireframe!==void 0&&(n.wireframe=t.wireframe),t.side!==void 0&&(t.side===0?n.side=Io.FrontSide:t.side===1?n.side=Io.BackSide:n.side=Io.DoubleSide)}function Ew(n,t){if(Array.isArray(n.material))for(let e of n.material)Hh(e,t);else{let e=n.material;Hh(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function Wh(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=fi.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new Io.BufferGeometry:rl(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);ln.is2DParametricMesh(o.userData.type)?r=new gl(o,i):o?.userData.type==="VectorGeometry"?r=new ii(o,i):t.geometry.type==="NonParametricGeometry"?r=new yl(o,i):t.geometry.type==="BooleanGeometry"?(r=new hl(void 0,i),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new pi(o,i),r.uuid=n,r.fromState(t,e)}return Ew(r,t),r}function qh(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new xl(n,t,e):Wh(n,t,e):t.type==="Empty"?new Qr().createFromState(n,t):t.type==="PointLight"?li.createFromState(n,t,e):t.type==="SpotLight"?ci.createFromState(n,t,e):t.type==="DirectionalLight"?ai.createFromState(n,t,e):sn.is(t.type)?Jr.createFromState(n,t):(console.error(t),new Qr)}var Xo=class extends jt{};var eo=require("three");function $h(n,t){let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return o.length>0&&(n.layers.set(8),r.length>0&&n.layers.enable(3),e=!0,Rr(n),Gr(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function Yh(n,t){if(!t.layers)return!1;let e=!1,r=t.getLayersOfType("transmission"),o=t.getLayersOfType("outline");return r.length>0&&(n.layers.set(3),o.length>0&&n.layers.enable(8),e=!0),r.length===0&&o.length===0&&n.layers.set(0),e}function Xh(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eo.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)$h(e,e.material[r])&&(t=!0);else $h(e,e.material)&&(t=!0)}),t}function Kh(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof eo.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)Yh(e,e.material[r])&&(t=!0);else Yh(e,e.material)&&(t=!0)}),t}function Zh(n){"material"in n&&Dw(n.material),"geometry"in n&&n.geometry.dispose()}function Dw(n){hf(n).forEach(t=>{t instanceof Xo||t.dispose()})}var Gw=new eo.Raycaster,Rw=new eo.Matrix4,Vw=new eo.Ray;function Qh(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=Rw.copy(o.matrixWorld).invert(),s=Vw.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=Gw;c.set(s.origin,s.direction),c.near=t.near,c.far=t.far,c.intersectObject(n,!1).length>0&&e.push({object:n})}}var Jh=new Fr.Vector3,lu=class extends Ra(Fr.Scene){constructor(e,r){super();this.objectType="Scene";this.backupFog=new Fr.Fog(16777215,.1,2e3);this.fogUseBGColor=!1;this.enableHelpers=!1;this.wireframeState=!1;this.needsTransmissionDirty=!0;this.needsNormalDirty=!0;this._needsTransmission=!1;this._needsNormal=!1;this.bgColor=new ot(1,1,1,1);this.entityByUuid={};this.ambientLight=new Fr.HemisphereLight(13882323,8553090,.75),this.ambientLight.name="Default Ambient Light",this.ambientLight.layers.enable(3),this.personalCamera=this.createPersonalCamera(),this.activeCamera=this.personalCamera,this.postprocessing=e.postprocessing,this.objectsData=e.objects.map(({data:o,id:i})=>({data:o,id:i})),this.init(e,r),this.matrixAutoUpdate=!1}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Kh(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Xh(this),this.needsNormalDirty=!1),this._needsNormal}find(e){if(e===""||e===void 0)return;let r=this.entityByUuid[e];return r===void 0?this.getObjectByProperty("uuid",e):r}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,r){if(this.createChildrenObjects(e.objects,this,r),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(lt(e.backgroundColor,r)),this.updateFog(e.fog,r),this.updateAmbientLight(e.environment.ambientLight,r),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof Jr&&this.switchActiveCamera(o)}this.traverse(o=>{Sr(o)&&o.recomputeBoolean()}),setTimeout(()=>this.updateCloner())}clearScene(){this.traverseEntity(e=>{Zh(e)});for(let e of this.children)Yt(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=Jr.createFromState(lu.PERSONAL_CAMERA_ID,{...Ia.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,delete e.isEntity,this.registerObjectCreatedInLegacy(e),e}raycast(e){let r=[],o=i=>{for(let s of i.children)Yt(s)&&!s.raycastLock&&s.visible&&((vr(s)||Da(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),Qh(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)Yt(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)Yt(r)&&r.visible&&r.traverseVisibleEntity(e)}updateFog(e,r){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=lt(e.color,r),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,r){Cf(this.ambientLight,e,r),e.groundColor!==void 0&&(this.ambientLight.groundColor=lt(e.groundColor,r)),e.enabled!==void 0&&(this.ambientLight.visible=e.enabled)}switchActiveCamera(e){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=e,e.objectHelper.visible=!1}setBackgroundColor(e){this.bgColor=e,this.fogUseBGColor===!0&&(this.backupFog.color=e)}createChildrenObjects(e,r,o){for(let i of e)this.createChildObject(i.id,i.data,i.children,r,o)}updateObjectCloner(e){if(e.parameters.type==="toObject"){let r=e.parameters.toObject.object;if(!r)return;let o=this.find(r);if(o){let i,s=this.objectsData.find(l=>l.id===o.uuid);if(s&&(i=s.data),o.objectType==="SubdivObject"){let l=o;i&&!l.subdivPointer&&l.buildFromStore(i.geometry)}e.setObjectForSample(o),e.update()}}}updateCloner(){this.traverse(e=>{let r=e;r.cloner&&this.updateObjectCloner(r.cloner)})}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let r of e.children)this.unregisterObject(r)}createChildObject(e,r,o,i,s){let l=qh(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),Sr(i)&&vr(l)&&(l.prevBooleanObjectParent=i),this.createChildrenObjects(o,l,s)),"cloner"in l&&(l.cloner?._updateCount(0),l.cloner?.update()),l}getCenter(e){let r=[];for(let i=0,s=e.length;i<s;++i){let{id:l,recursive:c}=e[i],u=this.find(l),a=c?u.recursiveBBox:u.singleBBox;r.push(...a.vertices)}let o=new Fr.Box3;return o.setFromPoints(r),o.getCenter(Jh),Jh}copyMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e);o?r.copy(o.matrixWorld):r.identity()}copyParentMatrixWorld(e,r){if(e===null){r.identity();return}let o=this.find(e)?.parent;o?r.copy(o.matrixWorld):r.identity()}traverseMaterial(e){this.traverseEntity(r=>{if(r instanceof Ze)if(Array.isArray(r.material))for(let o=0;o<r.material.length;o++)r.material[o]instanceof jt&&e(r.material[o]);else r.material instanceof jt&&e(r.material)})}updateCanvasSize(e,r){this.activeCamera.setViewplaneSize(e,r);let o,i;e>=r?(o=r/e,i=1):(o=1,i=e/r),this.traverseMaterial(s=>{s.getLayersOfType("transmission").forEach(c=>{c.uniforms[`f${c.id}_aspectRatio`].value.x=o,c.uniforms[`f${c.id}_aspectRatio`].value.y=i})})}},Ns=lu;Ns.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var og=Es(eg());var tg=new Map;function rg(n){if(typeof n=="string")return n;let t=tg.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},tg.set(n,t)),t.url}var mi=class{constructor({src:t,volume:e,delay:r,loop:o}){this._volume=1;this.delay=0;this._loop=1;this.loopsRemaining=0;this._status="stopped";this.onEnd=()=>{this.loopsRemaining===1/0?this.replay():this.loopsRemaining>1?(this.replay(),this.loopsRemaining--):(this._status="stopped",this.loopsRemaining=this._loop)};let i;typeof t=="string"?i={src:t}:i={src:rg(t),format:"wav"},this.sound=new og.Howl(i),this.sound.on("end",this.onEnd),this.src=t,e!==void 0&&(this.volume=e),r!==void 0&&(this.delay=r),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(t){this._volume=t,this.sound.volume(t)}get loop(){return this._loop}set loop(t){this._loop=t,this.loopsRemaining=t}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(t,e=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},t)):this.sound.fade(this._volume,0,e)}on(t,e,r){this.sound.on(t,e,r)}off(t,e,r){this.sound.off(t,e,r)}play(){this._status==="playing"||this.sound.playing()||(this._status==="paused"?(this.sound.seek()===0?this.replay():this.sound.play(),this._status="playing"):this._status==="stopped"&&(this.replay(),this._status="playing"))}pause(){this._status==="playing"&&(this.sound.pause(),this.clearFade(),this.clearDelay(),this._status="paused")}stop(){this.sound.stop(),this.loopsRemaining=this._loop,this.clearFade(),this.clearDelay(),this._status="stopped"}clearFade(){this.fadeTimerId&&(clearTimeout(this.fadeTimerId),delete this.fadeTimerId)}clearDelay(){this.delayTimerId&&(clearTimeout(this.delayTimerId),delete this.delayTimerId)}dispose(t=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};var it=require("three"),Sl=class{constructor(){this.type="ShapePath";this.color=new it.Color;this.subPaths=[];this.currentPath=null}moveTo(t,e){return this.currentPath=new it.Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath?.lineTo(t,e),this}quadraticCurveTo(t,e,r,o){return this.currentPath?.quadraticCurveTo(t,e,r,o),this}bezierCurveTo(t,e,r,o,i,s){return this.currentPath?.bezierCurveTo(t,e,r,o,i,s),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},r={loc:e.ORIGIN,t:0};function o(h,g,b,x){let S=h.x,w=g.x,v=b.x,N=x.x,_=h.y,y=g.y,I=b.y,A=x.y,P=(N-v)*(_-I)-(A-I)*(S-v),T=(w-S)*(_-I)-(y-_)*(S-v),C=(A-I)*(w-S)-(N-v)*(y-_),L=P/C,j=T/C;if(C===0&&P!==0||L<=0||L>=1||j<0||j>1)return null;if(P===0&&C===0){for(let Y=0;Y<2;Y++)if(i(Y===0?b:x,h,g),r.loc===e.ORIGIN){let te=Y===0?b:x;return{x:te.x,y:te.y,t:r.t}}else if(r.loc===e.BETWEEN){let te=+(S+r.t*(w-S)).toPrecision(10),ie=+(_+r.t*(y-_)).toPrecision(10);return{x:te,y:ie,t:r.t}}return null}else{for(let ie=0;ie<2;ie++)if(i(ie===0?b:x,h,g),r.loc===e.ORIGIN){let U=ie===0?b:x;return{x:U.x,y:U.y,t:r.t}}let Y=+(S+L*(w-S)).toPrecision(10),te=+(_+L*(y-_)).toPrecision(10);return{x:Y,y:te,t:L}}}function i(h,g,b){let x=b.x-g.x,S=b.y-g.y,w=h.x-g.x,v=h.y-g.y,N=x*v-w*S;if(h.x===g.x&&h.y===g.y){r.loc=e.ORIGIN,r.t=0;return}if(h.x===b.x&&h.y===b.y){r.loc=e.DESTINATION,r.t=1;return}if(N<-Number.EPSILON){r.loc=e.LEFT;return}if(N>Number.EPSILON){r.loc=e.RIGHT;return}if(x*w<0||S*v<0){r.loc=e.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(w*w+v*v)){r.loc=e.BEYOND;return}let _;x!==0?_=w/x:_=v/S,r.loc=e.BETWEEN,r.t=_}function s(h,g){let b=[],x=[];for(let S=1;S<h.length;S++){let w=h[S-1],v=h[S];for(let N=1;N<g.length;N++){let _=g[N-1],y=g[N],I=o(w,v,_,y);I!==null&&b.find(A=>A.t<=I.t+Number.EPSILON&&A.t>=I.t-Number.EPSILON)===void 0&&(b.push(I),x.push(new it.Vector2(I.x,I.y)))}}return x}function l(h,g,b){let x=new it.Vector2;g.getCenter(x);let S=[];return b.forEach(w=>{w.boundingBox.containsPoint(x)&&s(h,w.points).forEach(N=>{S.push({identifier:w.identifier,isCW:w.isCW,point:N})})}),S.sort((w,v)=>w.point.x-v.point.x),S}function c(h,g,b,x,S){(S==null||S==="")&&(S="nonzero");let w=new it.Vector2;h.boundingBox.getCenter(w);let v=[new it.Vector2(b,w.y),new it.Vector2(x,w.y)],N=l(v,h.boundingBox,g);N.sort((T,C)=>T.point.x-C.point.x);let _=[],y=[];N.forEach(T=>{T.identifier===h.identifier?_.push(T):y.push(T)});let I=_[0].point.x,A=[],P=0;for(;P<y.length&&y[P].point.x<I;)A.length>0&&A[A.length-1]===y[P].identifier?A.pop():A.push(y[P].identifier),P++;if(A.push(h.identifier),S==="evenodd"){let T=A.length%2===0,C=A[A.length-2];return{identifier:h.identifier,isHole:T,for:C}}else if(S==="nonzero"){let T=!0,C=null,L=null;for(let j=0;j<A.length;j++){let Y=A[j];g[Y]&&(T?(L=g[Y].isCW,T=!1,C=Y):L!==g[Y].isCW&&(L=g[Y].isCW,T=!0))}return{identifier:h.identifier,isHole:T,for:C}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let u=0,a=999999999,p=-999999999,d=[];this.subPaths.forEach(h=>{let g=h.getPoints(),b=-999999999,x=999999999,S=-999999999,w=999999999;for(let v=0;v<g.length;v++){let N=g[v];N.y>b&&(b=N.y),N.y<x&&(x=N.y),N.x>S&&(S=N.x),N.x<w&&(w=N.x)}p<=S&&(p=S+1),a>=w&&(a=w-1),g.length&&d.push({curves:h.curves,points:g,isCW:it.ShapeUtils.isClockWise(g),identifier:u++,boundingBox:new it.Box2(new it.Vector2(w,x),new it.Vector2(S,b))})});let f=d.map(h=>c(h,d,a,p,this.userData?.style.fillRule)),m=[];return d.forEach(h=>{let g=f[h.identifier];if(g&&!g.isHole){let b=new it.Shape;b.curves=h.curves,f.filter(S=>S?.isHole&&S.for===h.identifier).forEach(S=>{if(S){let w=d[S.identifier],v=new it.Path;v.curves=w.curves,b.holes.push(v)}}),m.push(b)}}),m}};var hi=require("three");var ng=require("three/examples/jsm/loaders/DRACOLoader.js");var Po;function Fw(){return Po||(Po=new ng.DRACOLoader,Po.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Po.decoderPending}async function zw(n){if(Po){let t={attributeIDs:Po.defaultAttributeIDs,attributeTypes:Po.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await Po.decodeGeometry(new Int8Array(n).buffer,t)}catch(r){console.error(r)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([r,o])=>({name:r,itemSize:o.itemSize,array:o.array}))}}return null}async function ig(n,t){let[e,r]=Ll(Xs.deserialize(new Uint8Array(n)));wf(e);let o=[];e.scene.objects.traverse((i,s)=>{s.type==="Mesh"&&s.geometry.type==="NonParametricGeometry"&&s.geometry.data.draco!==void 0&&o.push(s)}),o.length&&await Fw();for(let i of o){let s=await zw(Nt(i.geometry.data.draco));if(s){s.index&&(i.geometry.data.index={array:s.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let l={};s.attributes.forEach(({name:c,array:u,itemSize:a})=>{l[c]={array:u,itemSize:a,type:"Float32Array",normalized:!1}}),i.geometry.data.attributes=l,i.geometry.data.draco=void 0}}return t&&t(e),r.result().data}function jw(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var wl=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=su(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}update(t,e){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=su(t).then(r=>{r&&(this._arrayBuffer=r.arr,this._url=r.url,this.font=r.font,this._intercepted=r.intercepted,this._isLoaded=!0,e())})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}async reverseLigaturesTable(t,e,r){let{Bidi:o}=await Ts,i=new o,s=p=>t.charToGlyphIndex(p.char);i.registerModifier("glyphIndex",null,s),i.applyFeatures(t,t.defaultRenderOptions.features),i.getTextGlyphs(e);let l=i.tokenizer.tokens,c=[],u=0,a=r.length===l.length;for(let p=0;p<r.length;p++){let d=r[p].index,f=String.fromCharCode(r[p].unicode),m=l[u];if(jw(d,m)||a)c.push({char:f,index:d,replacements:[m.state.glyphIndex],replacementChars:[m.char]}),u++;else{let h=m.char,g="",b=[m.state.glyphIndex],x=[],S=!1;for(;!S;)u++,g=e.charAt(u),h+=g,b.push(t.charToGlyphIndex(g)),x=t.stringToGlyphs(h),x.length===1&&x[0].index===d&&(S=!0),u>e.length&&(S=!0);c.push({char:f,index:d,replacements:b,replacementChars:Array.from(h)}),u++}}return c}async generateShapes(t,e){await this._loadingPromise;let r=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,s=t.map(x=>this.getTextWidth(x,e)),l=e.width,c=this.getCharWidth(`
|
|
1335
|
+
`,e),u=e.horizontalAlign===1?c:0,a=this.computeSpaceWidthForLine(t,0,e),p=this.getLineInitialOffsetX(s[0],l,e.horizontalAlign,t[0],c),d=this.getLineInitialOffsetY(i,t.length,e.height,o,e.verticalAlign),f=[],m=t.map(x=>[]),h=t.map(x=>[]),g;for(let x=0;x<t.length;x++){let S=t[x],w={features:{liga:!0}},v=[];try{v=r.stringToGlyphs(S,w)}catch(_){console.warn(_)}p=this.getLineInitialOffsetX(s[x],l,e.horizontalAlign,S,c);let N=[];try{N=await this.reverseLigaturesTable(r,S,v)}catch(_){console.warn(_)}a=this.computeSpaceWidthForLine(t,x,e);for(let _=0;_<v.length;_++){let y=v[_],I=y.index===0?`
|
|
1336
|
+
`:y.unicode?String.fromCharCode(y.unicode):void 0,A=N[_],P=0,T=0;_===0&&e.horizontalAlign===2&&y.leftSideBearing!==void 0&&(T=-y.leftSideBearing*o),g&&(P=r.getKerningValue(y,g)*o),p+=T+P;let C=0;if(I===`
|
|
1337
|
+
`)C=u;else if(I===" ")C=a;else{let L=this.createPath(y,o,p,d,e);L&&(C=L.offsetX-(P+T),f.push(L.path))}if(A.replacements.length===1)h[x].push([p,d]),m[x].push(C);else{let L=A.replacements.map(ie=>(r.glyphs.get(ie).advanceWidth??0)*o),j=L.reduce((ie,U)=>ie+=U,0),Y=L.map(ie=>ie/j),te=p;for(let ie=0;ie<Y.length;ie++){let U=C*Y[ie];h[x].push([te,d]),m[x].push(U),te+=U}}p+=C,g=y}d-=i}let b=[];for(let x=0,S=f.length;x<S;x++)b.push(...f[x].toShapes());return{shapes:b,charWidths:m,lineWidths:s,charCoords:h}}get isUserFont(){return this._isUserFont}get arrayBuffer(){return this._arrayBuffer}get ascender(){return this.font?.ascender??0}get descender(){return this.font?.descender??0}get familyName(){return this.font?.names.fontFamily??""}get subfamilyName(){return this.font?.names.fontSubfamily??""}get unitsPerEm(){return this.font?.unitsPerEm??1}getLineInitialOffsetX(t,e,r,o,i){return(r===3||r===2)&&o.indexOf(`
|
|
1338
|
+
`)>=0&&(t-=i),r===3?e*.5-t*.5:r===2?e-t:0}getLineInitialOffsetY(t,e,r,o,i){let s=e*t,l=Math.abs(this.ascender-this.descender)*o,c=t-l,u=-this.ascender*o-c/2;return i===3?-(r-s-u):i===2?-(r*.5-s*.5-u):u}createPath(t,e,r,o,i){let s=t.getPath(r,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!s){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let l=new Sl,c=(t.advanceWidth??1)*e;if(t)for(let u of s.commands){let a=l.currentPath?.currentPoint;if(!(a&&u.type!=="Z"&&a.x===u.x&&-a.y===u.y))switch(u.type){case"M":l.moveTo(u.x,-u.y);break;case"L":l.lineTo(u.x,-u.y);break;case"Q":l.quadraticCurveTo(u.x1,-u.y1,u.x,-u.y);break;case"C":l.bezierCurveTo(u.x1,-u.y1,u.x2,-u.y2,u.x,-u.y);break}}return l.subPaths.forEach(u=>{let a=Uw(u.curves);a!==void 0&&u.currentPoint.distanceTo(a)>0&&u.lineTo(a.x,a.y)}),{offsetX:c+i.fontSize*i.letterSpacing,path:l}}getCharWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(t,e){return this.font?.getAdvanceWidth(t,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(t,e,r){let o=this.getCharWidth(" ",r),i=t[e];if(i){let s=this.countSpaces(i.trimEnd());if(r.horizontalAlign===4&&e<t.length-1&&s){let l=r.width,c=this.getTextWidth(i,r);return(l-(c-s*o))/s}}return o}countSpaces(t){return(t.match(/ /g)||[]).length}};function Uw(n){if(n.length){let t=n[0];if(t instanceof hi.LineCurve)return t.v1;if(t instanceof hi.CubicBezierCurve||t instanceof hi.QuadraticBezierCurve)return t.v0}}var Is=class{constructor(t,e={}){this.deletedMaterial=new Xo(Ft.defaultTwoLayerData("phong"),this);this.deletedImage=new $o(La.emptyImage);this.materials={};this.images={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.onImageLoad=()=>{this._onImageLoad&&this._onImageLoad()};this.onFontLoad=()=>{this._onFontLoad&&this._onFontLoad()};if(e.images)for(let[r,o]of Object.entries(e.images))this.addImage(r,o);if(e.audios)for(let[r,o]of Object.entries(e.audios))this.addAudio(r,o.data);this.reset(t)}setOnImageLoad(t){this._onImageLoad=t}setOnFontLoad(t){this._onFontLoad=t}reset(t){for(let[e,r]of Object.entries(t.images))this.addImage(e,r);for(let[e,r]of Object.entries(t.colors))this.addColor(e,r);for(let[e,r]of Object.entries(t.materials))this.addMaterial(e,new Xo(r,this));for(let[e,r]of Object.entries(t.audios))this.addAudio(e,r.data);for(let[e,r]of Object.entries(t.fonts))this.addFont(e,r);this.penumbraSize=t.penumbraSize}addMaterial(t,e){e.uuid=t,this.materials[t]=e}deleteMaterial(t){this.materials[t]&&(this.materials[t].dispose(),delete this.materials[t])}getMaterial(t){let e=this.materials[t];return e}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):new jt(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new $o(e,this.onImageLoad),!1)}deleteImage(t){this.images[t]&&delete this.images[t]}getDefaultImage(){return this.images.image_0}getImage(t){return this.images[t]??this.deletedImage}image(t){return typeof t=="string"?this.getImage(t):new ni(t,this.onImageLoad)}addColor(t,e){return this.colors[t]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(t),"a"in e?this.colors[t].setRGBA(e.r,e.g,e.b,e.a):this.colors[t].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[t]=new _o(e.r,e.g,e.b,e.a):this.colors[t]=new _o(e.r,e.g,e.b,1),!1)}updateColor(t,e){if(this.colors[t]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate(t);let r=this.colors[t];return this.colors[t].r=e.r??r.r,this.colors[t].g=e.g??r.g,this.colors[t].b=e.b??r.b,this.colors[t].a=e.a??r.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let e;if(typeof t=="string"){let r=this.getColor(t);r?e=r:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new ot(0,0,0,0))}else return"a"in t?new ot(t.r,t.g,t.b,t.a):new ot(t.r,t.g,t.b,1);return e}addAudio(t,e){this.audios[t]=e}getAudio(t){let e=this.audios[t];if(e instanceof mi)return e;{let r=new mi({src:e});return this.audios[t]=r,r}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new wl(e,this.onFontLoad)}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._onImageLoad=void 0,this._onFontLoad=void 0,Object.values(this.audios).forEach(e=>{e instanceof mi&&e.dispose()}),this.audios={}}},sW=new Is(Oa.emptyData());var kw=require("three"),Hw=require("three/examples/jsm/utils/BufferGeometryUtils.js");function sg(n){let t;if(!!n.index)for(let e=0;e<n.index.array.length;e+=3)t=n.index.array[e],n.index.array[e]=n.index.array[e+2],n.index.array[e+2]=t}var Ps=require("three");function ag(n){let t=new Set;return n.traverse(e=>{if(vr(e))if(He(e.material))e.material.forEach(r=>{let o=r;t.has(o)||t.add(o)});else{let r=e.material;t.has(r)||t.add(r)}}),t.forEach(e=>{if(e instanceof Array)return;let r=e.onBeforeCompile.bind(e);if(Ww(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new Ps.Color,specularColor:new Ps.Color});let o=0;e.onBeforeCompile=(i,s)=>{r&&r(i,s),i.uniforms=Object.assign({},Ps.ShaderLib.physical.uniforms,i.uniforms),e.getLayersOfType("transmission").forEach(l=>{if(i.uniforms.transmissionSamplerMap.value){let c=l.color;c&&(c.transmissionSamplerMap.value=i.uniforms.transmissionSamplerMap.value,c.transmissionSamplerSize.value=i.uniforms.transmissionSamplerSize.value)}else o++,o<2&&(e.needsUpdate=!0)})}}else qw(e)||(e.onBeforeCompile=(o,i)=>{r&&r(o,i),e.transparent=!1})}),n}function Ww(n){return n.getLayersOfType("transmission").length>0}function qw(n){let t=0;return n.layers.forEach(e=>{if(e.type!=="light"&&e.type!=="fresnel"){let r=e.uniforms["f"+e.id+"_alpha"];r&&(t+=(1-t)*r.value)}}),t<1}function lg(n){return n.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),n}function cg(n){let t=[],e=(r,o=0)=>{let i=o>0?r+o:r;return t.includes(i)?e(r,o+1):i};return n.traverse(r=>{if(t.includes(r.name)){let o=r.name,i=e(r.name);if(r.name=i,r.isMesh){let s=r;s.material instanceof Array?s.material.forEach(l=>{l.name=l.name.replace(o,i)}):s.material.isAsset||(s.material.name=s.material.name.replace(o,i))}}t.push(r.name)}),n}var ug=require("three/examples/jsm/utils/BufferGeometryUtils.js");function pg(n){let t=[];return n.traverse(e=>{e instanceof Xr&&t.push(e)}),t.forEach(e=>{let r=e.object,i=e.children.map(l=>{l.updateMatrix();let c=l.geometry.clone().applyMatrix4(l.matrix);return l.matrix.determinant()<0&&sg(c),c}),s=(0,ug.mergeBufferGeometries)(e.parameters.hideBase?i:[r instanceof Ze?r.geometry:[],...i]);r instanceof Ze&&(r.geometry=s),r.remove(e),r.cloner=void 0}),n}function dg(n){return n.traverse(t=>{t.matrixAutoUpdate=!0}),n}function fg(n){Object.values(n.shared.materials).forEach(t=>{cu(t)}),n.scene.objects.traverse((t,e)=>{"material"in e?cu(e.material):"materials"in e&&e.materials.forEach(r=>{cu(r)})})}function cu(n){if(typeof n=="string")return;let t=[];n.layers.forEach((e,r)=>{e.type==="outline"&&t.push(r)}),t.reverse().forEach(e=>{n.layers.delete(e)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var mg="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",_l=class extends Tl.Loader{load(t,e,r,o=console.error){let i=new Tl.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(mg+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(mg),i.load(t,async s=>{try{if(typeof s=="string")throw new Error("The .spline file is not binary!");let l=await this.parse(s);e(l)}catch(l){o(l)}},r,o)}async parse(t){let e=await ig(t,fg);Vh(e)&&await Bh();let r=new Is(e.shared);Object.values(r.getMaterials()).forEach(s=>Object.assign(s,{isAsset:!0}));let o=new Ns(e.scene,r);o.remove(o.personalCamera),e.scene.environment.ambientLight.enabled||o.remove(o.ambientLight);let i=e.scene.publish.playCamera;if(i){let s=o.find(i);s&&Of(s)&&Object.assign(s,{makeDefault:!0})}return o=pg(o),o=ag(o),o=lg(o),o=cg(o),o=dg(o),o}};
|