@splinetool/loader 0.9.145 → 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.
@@ -1,16 +1,16 @@
1
- "use strict";var Ch=Object.create;var ds=Object.defineProperty;var Lh=Object.getOwnPropertyDescriptor;var Mh=Object.getOwnPropertyNames;var Eh=Object.getPrototypeOf,Bh=Object.prototype.hasOwnProperty;var Gc=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports),Rc=(n,t)=>{for(var e in t)ds(n,e,{get:t[e],enumerable:!0})},Vc=(n,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Mh(t))!Bh.call(n,o)&&o!==e&&ds(n,o,{get:()=>t[o],enumerable:!(r=Lh(t,o))||r.enumerable});return n};var rl=(n,t,e)=>(e=n!=null?Ch(Eh(n)):{},Vc(t||!n||!n.__esModule?ds(e,"default",{value:n,enumerable:!0}):e,n)),Dh=n=>Vc(ds({},"__esModule",{value:!0}),n);var Xm=Gc((Ya,$m)=>{(function(n,t){typeof Ya=="object"&&typeof $m<"u"?t(Ya):typeof define=="function"&&define.amd?define(["exports"],t):t((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(Ya,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 lh=Gc(Ka=>{(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 Ka<"u"&&(Ka.Howler=t,Ka.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 Ew={};Rc(Ew,{default:()=>Ja});module.exports=Dh(Ew);var el=require("three");var Be=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,Be.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,Be.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,Be.prototype),delete i[r],{data:i,actual:t,reverse:{type:1,id:r,data:o}}}}return null}};function ei(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"&&ei(r)}return Object.freeze(n)}function Fc(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 Vo=class extends Error{};var he=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,he.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ei(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,he.prototype);let r=e;return zc()||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((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)}}};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 ti(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 zc(){return typeof process<"u"}function ol(n){return typeof n!="object"||ti(n)||nl(n)}function ri(n){return ol(n)||n instanceof he||n instanceof Re||n instanceof Be}function nl(n){return Array.isArray(n)&&n.every(t=>typeof t!="object")}function Uc(n,t){for(let e of n)t(e.id,e.data)!==!0&&Uc(e.children,t)}function jc(n,t){if(t(n.id,n.data)!==!0)for(let e of n.children)jc(e,t)}var Re=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Re.prototype)}deepFreeze(){let e=0;for(;e<this.length;)ei(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&&jc(o,r)}}traverse(e){Uc(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,Re.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,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 Vo("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)=>Fc(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 Fo;(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 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})(Fo||(Fo={}));var zo=class{unusedFun(t){}},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 Re||r instanceof he)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}}},kc;(r=>{function n(o,i){return Uo(o,i)??o}r.apply=n;function t(o,i){return Wc(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=Er.zoomOnce(c,l[s]),c instanceof Re||c instanceof he)return;s+=1}if(c===void 0)return i;if(ri(c))return;if(i.type===0)if(c&&typeof c=="object"){let p={...i.props};for(let a of Object.keys(c))delete p[a];return{...i,props:p}}else return;else if(i.type===1||i.type===4||i.type===7)if(typeof c=="object"){let p={...i.data,...c};return{...i,data:p}}else return;else return i}r.filterOp=e})(kc||(kc={}));function Hc(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Uo(o.data,t[i]);e=e||s!==void 0,s===void 0&&(s=o.data);let l=Hc(o.children,t);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}});if(e)return r}function Gh(n,t){if(t===void 0)return;let e=!1,r=n.map(o=>{let i=o.id,s=Uo(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 Uo(n,t){if(ri(t))return t;if(n instanceof Re){let e=Hc(n,t);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof he)return Gh(n,t);if(Array.isArray(n)){let e=!1,r=n.map((o,i)=>{let s=Uo(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=Uo(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&&(ri(t)||t instanceof zo)?t??n:n}}function Wc(n,t){if(n===void 0)return t;if(t===void 0)return n;if(ri(t)||ol(n))return t;if(n instanceof Re||n instanceof he)return Uo(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=Wc(n===void 0?void 0:n[o],t===void 0?void 0:t[o]);r[o]=i}return r}else return n}function qc(n,t){let e={cur:[],result:[],len:0};return n=oi(n,t,e)??n,[n,e.result]}function fs(n,t){return n===null?null:(n.cur[n.len]=t,n.len+=1,n)}function ms(n){n&&(n.len-=1)}function Rh(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function $c(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=oi(i.data,t,fs(e,s));ms(e),r=r||c!==void 0,c===void 0&&(c=i.data);let p=$c(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 Vh(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=oi(i.data,t,fs(e,s));return ms(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 oi(n,t,e){if(n instanceof Re){let r=$c(n,t,e);return r!==void 0&&Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else{if(n instanceof he)return Vh(n,t,e);if(Array.isArray(n)){let r=!1,o=n.map((i,s)=>{let l=oi(i,t,fs(e,s));return ms(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=oi(s,t,fs(e,i));ms(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");Rh(e)}return r}else return}}var Xc;(t=>{function n(e,r){let o=Er.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})(Xc||(Xc={}));var Wr;(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 Re||c instanceof he||c instanceof Be?d=c.runOp(p):d=Fo.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 Re){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof he){if(typeof v=="number")throw new Error("illegal arg");h=x.modifyById(v,h)}else if(x instanceof Be){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 Re){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof he){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})(Wr||(Wr={}));var Yc;(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=>Wr.subsumed(d,f))),...a]}c.compress=o;function i(p,a){return p.every(u=>a.every(d=>Wr.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=Er.zoom(u,[...m.path,m.id]),g=Wr.apply(u,{...m,type:2});if(g!==null){u=g.data;let[v,x]=qc(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=Wr.apply(u,m);h!==null&&(d.push(h.actual),u=h.data,f.push(h.reverse))}}catch(h){if(h instanceof Vo)return null;throw h}return{data:u,actual:d,reverse:f.reverse()}}c.apply=l})(Yc||(Yc={}));var Kc=Symbol(),ni=Symbol(),yo=class{reportOp(t,e,r=[]){let o=this;if(e===null)return;o._current=e.data;let i=r;for(;!(o instanceof gs);){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[ni];r&&r(),delete this._children[t]}}}},sl=class extends yo{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,Fo.runOp(this._current,t),t.path)}},al=class extends yo{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,Be.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Qc={get(n,t){if(t===ni)return()=>{n._parent=null};if(t===Kc)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=ys(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]}}},Fh={...Qc,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}},zh={...Qc,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}},jo=class extends yo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ni]=()=>{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=ys(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)}},hs=class extends yo{constructor(t,e,r){super(),this._parent=t,this._path=e,this._current=r,this[ni]=()=>{this._parent=null}}feedOp(t){let{path:e,...r}=t;this.reportOp(r,Wr.apply(this._current,t),e)}},ko=class extends yo{constructor(t,e,r){super(),this._children={},this._parent=t,this._path=e,this._current=r,this[ni]=()=>{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=ys(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 il(n,t,e){if(n.length>0){let r=n[n.length-1];if(r.type===0&&t.type===0&&Er.equal(r.path,e)){Object.assign(r.props,t.props);return}}n.push({...t,path:e})}var gs=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){il(this.ts,e,t),il(this.actual,r,t),il(this.reverse,o,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function ys(n,t,e){return e instanceof Re?new jo(n,t,e):e instanceof he?new ko(n,t,e):e instanceof Dt?new hs(n,t,e):e instanceof Be?new Proxy(new al(n,t,e),zh):e!==null&&typeof e=="object"?ti(e)||nl(e)?e:new Proxy(new sl(n,t,e),Fh):e}function ll(n){let t=new gs(n);return[ys(t,"",n),t]}function cl(n,t){let[e,r]=ll(n);return t(e),r.result()}function Tt(n){return n instanceof jo||n instanceof ko||n instanceof hs?n._current:n!==null&&typeof n=="object"?n[Kc]:n}var Er;(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 Re||i instanceof jo)&&typeof s=="string")return i.data(s);if((i instanceof he||i instanceof ko)&&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})(Er||(Er={}));var xs=class{},ii=class extends xs{constructor(e){super();this.id=e}},si=class extends xs{constructor(e){super();this.data=e}};var pl;try{pl=new TextDecoder}catch{}var oe,$r,N=0;var iu=[],dl=iu,fl=0,At={},Te,qr,jt=0,lr=0,Gt,Br,vt=[],Oe,Zc={useRecords:!1,mapsAsObjects:!0},ai=class{},hl=new ai;hl.name="MessagePack 0xC1";var Ho=!1,cr=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 uu(()=>(bs(),this?this.unpack(t,e):cr.prototype.unpack.call(Zc,t,e)));$r=e>-1?e:t.length,N=0,fl=0,lr=0,qr=null,dl=iu,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 cr){if(At=this,this.structures)return Te=this.structures,vs();(!Te||Te.length>0)&&(Te=[])}else At=Zc,(!Te||Te.length>0)&&(Te=[]);return vs()}unpackMultiple(t,e){let r,o=0;try{Ho=!0;let i=t.length,s=this?this.unpack(t,i):_s.unpack(t,i);if(e){for(e(s);N<i;)if(o=N,e(vs())===!1)return}else{for(r=[s];N<i;)o=N,r.push(vs());return r}}catch(i){throw i.lastPosition=o,i.values=r,i}finally{Ho=!1,bs()}}_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 vs(){try{if(!At.trusted&&!Ho){let t=Te.sharedLength||0;t<Te.length&&(Te.length=t)}let n=Ue();if(N==$r)Te.restoreStructures&&Jc(),Te=null,oe=null,Br&&(Br=null);else if(N>$r){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!Ho)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Te.restoreStructures&&Jc(),bs(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function Jc(){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&&su()[n&63];return t?(t.read||(t.read=gl(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[lu()]=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(lr>=N)return qr.slice(N-jt,(N+=t)-jt);if(lr==0&&$r<140){let e=t<16?yl(t):au(t);if(e!=null)return e}return ml(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)):hl;case 194:return!1;case 195:return!0;case 196:return ul(oe[N++]);case 197:return t=Oe.getUint16(N),N+=2,ul(t);case 198:return t=Oe.getUint32(N),N+=4,ul(t);case 199:return xo(oe[N++]);case 200:return t=Oe.getUint16(N),N+=2,xo(t);case 201:return t=Oe.getUint32(N),N+=4,xo(t);case 202:if(t=Oe.getFloat32(N),At.useFloat32>2){let e=ws[(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 nu(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++,nu(oe[N++]&63,oe[N++])):xo(2);case 214:return xo(4);case 215:return xo(8);case 216:return xo(16);case 217:return t=oe[N++],lr>=N?qr.slice(N-jt,(N+=t)-jt):jh(t);case 218:return t=Oe.getUint16(N),N+=2,lr>=N?qr.slice(N-jt,(N+=t)-jt):kh(t);case 219:return t=Oe.getUint32(N),N+=4,lr>=N?qr.slice(N-jt,(N+=t)-jt):Hh(t);case 220:return t=Oe.getUint16(N),N+=2,tu(t);case 221:return t=Oe.getUint32(N),N+=4,tu(t);case 222:return t=Oe.getUint16(N),N+=2,ru(t);case 223:return t=Oe.getUint32(N),N+=4,ru(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 Uh=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function gl(n,t){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>Uh.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(Ue);return n.highByte===0&&(n.read=eu(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?eu(t,e):e}var eu=(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]||su()[r];if(!o)throw new Error("Record id is not defined for "+r);return o.read||(o.read=gl(o,n)),o.read()};function su(){let n=uu(()=>(oe=null,At.getStructures()));return Te=At._mergeStructures(n,Te)}var ml=Ss,jh=Ss,kh=Ss,Hh=Ss;function Ss(n){let t;if(n<16&&(t=yl(n)))return t;if(n>64&&pl)return pl.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 tu(n){let t=new Array(n);for(let e=0;e<n;e++)t[e]=Ue();return t}function ru(n){if(At.mapsAsObjects){let t={};for(let e=0;e<n;e++)t[lu()]=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 au(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 yl(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 ul(n){return At.copyBuffers?Uint8Array.prototype.slice.call(oe,N,N+=n):oe.subarray(N,N+=n)}function xo(n){let t=oe[N++];if(vt[t])return vt[t](oe.subarray(N,N+=n));throw new Error("Unknown extension type "+t)}var ou=new Array(4096);function lu(){let n=oe[N++];if(n>=160&&n<192){if(n=n-160,lr>=N)return qr.slice(N-jt,(N+=n)-jt);if(!(lr==0&&$r<180))return ml(n)}else return N--,Ue();let t=(n<<5^(n>1?Oe.getUint16(N):n>0?oe[N]:0))&4095,e=ou[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=[],ou[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?yl(n):au(n);return l!=null?e.string=l:e.string=ml(n)}var nu=(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=gl(e,r),e.read()},cu=typeof self=="object"?self:global;vt[0]=()=>{};vt[0].noBuffer=!0;vt[101]=()=>{let n=Ue();return(cu[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 xl=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");vt[116]=n=>{let t=n[0],e=xl[t];if(!e)throw new Error("Could not find typed array for code "+t);return new cu[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 uu(n){let t=$r,e=N,r=fl,o=jt,i=lr,s=qr,l=dl,c=Br,p=Gt,a=new Uint8Array(oe.slice(0,$r)),u=Te,d=Te.slice(0,Te.length),f=At,m=Ho,h=n();return $r=t,N=e,fl=r,jt=o,lr=i,qr=s,dl=l,Br=c,Gt=p,oe=a,Ho=m,Te=u,Te.splice(0,Te.length,...d),At=f,Oe=new DataView(oe.buffer,oe.byteOffset,oe.byteLength),h}function bs(){oe=null,Br=null,Te=null}function pu(n){n.unpack?vt[n.type]=n.unpack:vt[n.type]=n}var ws=new Array(147);for(let n=0;n<256;n++)ws[n]=+("1e"+Math.floor(45.15-n*.30103));var _s=new cr({useRecords:!1}),Wh=_s.unpack,qh=_s.unpackMultiple,$h=_s.unpack,Ts={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},Xh=new Float32Array(1),F1=new Uint8Array(Xh.buffer,0,4);var As;try{As=new TextEncoder}catch{}var Ns,bl,Is=typeof Buffer<"u",vl=Is?Buffer.allocUnsafeSlow:Uint8Array,hu=Is?Buffer:Uint8Array,du=Is?4294967296:2144337920,G,qe,C=0,ur,pr=null,Yh=/[\u0080-\uFFFF]/,li=Symbol("record-id"),vo=class extends cr{constructor(t){super(t),this.offset=0;let e,r,o,i,s,l,c=0,p=hu.prototype.utf8Write?function(y,P,A){return G.utf8Write(y,P,A)}:As&&As.encodeInto?function(y,P){return As.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 vl(8192),qe=new DataView(G.buffer,0,8192),C=0),ur=G.length-10,ur-C<2048?(G=new vl(G.length),qe=new DataView(G.buffer,0,G.length),ur=G.length-10,C=0):C=C+7&2147483640,r=C,l=a.structuredClone?new Map:null,a.bundleStrings?(pr=["",""],G[C++]=214,G[C++]=98,pr.position=C-r,C+=4):pr=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[li]=O+64}c=A}u||(o.nextId=A+64)}i&&(i=!1),s=o||[];try{if(b(y),pr){qe.setUint32(pr.position+r,C-pr.position-r);let A=pr;pr=null,b(A[0]),b(A[1])}if(a.offset=C,l&&l.idsToInsert){C+=l.idsToInsert.length*6,C>ur&&_(C),a.offset=C;let A=Qh(G.subarray(r,C),l.idsToInsert);return l=null,A}return P&yu?(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][li]=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&ng&&(C=r)}};let b=y=>{C>ur&&(G=_(C));var P=typeof y,A;if(P==="string"){let O=y.length;if(pr&&O>=8&&O<4096){let B=Yh.test(y);pr[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>ur&&(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*ws[(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=Ns.length;T<L;T++){let B=bl[T];if(y instanceof B){let j=Ns[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>ur&&_(C),{target:G,targetView:qe,position:C-W}),b)}finally{te&&(G=te,qe=ne,C=ae,ur=G.length-10)}U&&(U.length+C>ur&&_(U.length+C),C=Kh(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[li];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[li]=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()[li]=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>du)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(du,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 vl(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,ur=A.length-10,G=A}}useBuffer(t){G=t,qe=new DataView(G.buffer,G.byteOffset,G.byteLength),C=0}};bl=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,ai];Ns=[{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?fu(n,16,t):mu(Is?Buffer.from(n):new Uint8Array(n),t)}},{pack(n,t){let e=n.constructor;e!==hu&&this.structuredClone?fu(n,xl.indexOf(e.name),t):mu(n,t)}},{pack(n,t){let{target:e,position:r}=t(1);e[r]=193}}];function fu(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 mu(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 Kh(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 Qh(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 Dr(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)");bl.unshift(n.Class),Ns.unshift(n)}pu(n)}var gu=new vo({useRecords:!1}),Zh=gu.pack,Jh=gu.pack;var{NEVER:eg,ALWAYS:tg,DECIMAL_ROUND:rg,DECIMAL_FIT:og}=Ts,yu=512,ng=1024;var xu=new vo({structuredClone:!0});Dr({Class:Be.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Be.prototype),n}});Dr({Class:he.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,he.prototype),n}});Dr({Class:Re.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Re.prototype),n}});Dr({Class:ii.prototype.constructor,type:4,write(n){return n.id},read(n){return new ii(n)}});Dr({Class:si.prototype.constructor,type:5,write(n){return n.data},read(n){return new si(n)}});Dr({Class:Dt.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Dt.prototype),n}});Dr({Class:zo.prototype.constructor,type:7,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,zo.prototype),n}});function ig(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 Sl(n){if(ti(n))return n;if(Array.isArray(n))return n.map(Sl);if(typeof n=="object"&&n!==null){let t={};for(let e of Object.keys(n).sort())t[e]=Sl(n[e]);return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else return n}var Ps;(r=>{function n(o){return xu.pack(o)}r.serialize=n;function t(o){return xu.unpack(o)}r.deserialize=t;function e(o){return ig(n(Sl(o))).toString()}r.checksum=e})(Ps||(Ps={}));var vu;(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})(vu||(vu={}));var Wo;(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})(Wo||(Wo={}));var bu;(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})(bu||(bu={}));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 Os;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(Os||(Os={}));var Su;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(Su||(Su={}));var wu;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(wu||(wu={}));var qo;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function t(r){return e.all.includes(r)}e.is=t})(qo||(qo={}));var bo;(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})(bo||(bo={}));var Cs;(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})(Cs||(Cs={}));var Ls;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(r){return e.all.includes(r)}e.is=t})(Ls||(Ls={}));var Ms;(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")}})(Ms||(Ms={}));var wl;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function t(r,o){return r.castShadow===o.castShadow&&r.receiveShadow===o.receiveShadow}e.equals=t})(wl||(wl={}));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 Es;(t=>t.defaultData={..._l.defaultData,...wl.defaultData,cloner:null,booleanExclude:null})(Es||(Es={}));var _u=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],Tu=["wrapping","image"],dr;(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}}}})(dr||(dr={}));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 he}}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 he;return u.push({fi:0,data:dr.defaultData("light",c),id:p}),u.push({fi:1,data:dr.defaultData("color"),id:a}),{layers:u}}l.defaultTwoLayerData=i;function s(c,p="phong",a="layer1",u="layer2"){let d=dr.defaultData("texture");Object.assign(d.texture,{image:c});let f=new he;return f.push({fi:0,data:d,id:a}),f.push({fi:1,data:dr.defaultData("light",p),id:u}),{layers:f}}l.defaultTwoLayerTextureData=s})(Rt||(Rt={}));var $o;(t=>{function n(){return{points:new he,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=n})($o||($o={}));var Xo;(t=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}t.is2DParametricMesh=n})(Xo||(Xo={}));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:$o.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 sg=typeof global=="object"&&global&&global.Object===Object&&global,Bs=sg;var ag=typeof self=="object"&&self&&self.Object===Object&&self,lg=Bs||ag||Function("return this")(),Ye=lg;var cg=Ye.Symbol,bt=cg;var Au=Object.prototype,ug=Au.hasOwnProperty,pg=Au.toString,ci=bt?bt.toStringTag:void 0;function dg(n){var t=ug.call(n,ci),e=n[ci];try{n[ci]=void 0;var r=!0}catch{}var o=pg.call(n);return r&&(t?n[ci]=e:delete n[ci]),o}var Nu=dg;var fg=Object.prototype,mg=fg.toString;function hg(n){return mg.call(n)}var Iu=hg;var gg="[object Null]",yg="[object Undefined]",Pu=bt?bt.toStringTag:void 0;function xg(n){return n==null?n===void 0?yg:gg:Pu&&Pu in Object(n)?Nu(n):Iu(n)}var Vt=xg;function vg(n){return n!=null&&typeof n=="object"}var ht=vg;var bg="[object Symbol]";function Sg(n){return typeof n=="symbol"||ht(n)&&Vt(n)==bg}var Yo=Sg;function wg(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 Ds=wg;var _g=Array.isArray,je=_g;var Tg=1/0,Ou=bt?bt.prototype:void 0,Cu=Ou?Ou.toString:void 0;function Lu(n){if(typeof n=="string")return n;if(je(n))return Ds(n,Lu)+"";if(Yo(n))return Cu?Cu.call(n):"";var t=n+"";return t=="0"&&1/n==-Tg?"-0":t}var Mu=Lu;function Ag(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var Qe=Ag;function Ng(n){return n}var Gs=Ng;var Ig="[object AsyncFunction]",Pg="[object Function]",Og="[object GeneratorFunction]",Cg="[object Proxy]";function Lg(n){if(!Qe(n))return!1;var t=Vt(n);return t==Pg||t==Og||t==Ig||t==Cg}var Ko=Lg;var Mg=Ye["__core-js_shared__"],Rs=Mg;var Eu=function(){var n=/[^.]+$/.exec(Rs&&Rs.keys&&Rs.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function Eg(n){return!!Eu&&Eu in n}var Bu=Eg;var Bg=Function.prototype,Dg=Bg.toString;function Gg(n){if(n!=null){try{return Dg.call(n)}catch{}try{return n+""}catch{}}return""}var Gr=Gg;var Rg=/[\\^$.*+?()[\]{}|]/g,Vg=/^\[object .+?Constructor\]$/,Fg=Function.prototype,zg=Object.prototype,Ug=Fg.toString,jg=zg.hasOwnProperty,kg=RegExp("^"+Ug.call(jg).replace(Rg,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Hg(n){if(!Qe(n)||Bu(n))return!1;var t=Ko(n)?kg:Vg;return t.test(Gr(n))}var Du=Hg;function Wg(n,t){return n?.[t]}var Gu=Wg;function qg(n,t){var e=Gu(n,t);return Du(e)?e:void 0}var It=qg;var $g=It(Ye,"WeakMap"),Vs=$g;var Ru=Object.create,Xg=function(){function n(){}return function(t){if(!Qe(t))return{};if(Ru)return Ru(t);n.prototype=t;var e=new n;return n.prototype=void 0,e}}(),Vu=Xg;function Yg(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 Fu=Yg;function Kg(n,t){var e=-1,r=n.length;for(t||(t=Array(r));++e<r;)t[e]=n[e];return t}var Fs=Kg;var Qg=800,Zg=16,Jg=Date.now;function ey(n){var t=0,e=0;return function(){var r=Jg(),o=Zg-(r-e);if(e=r,o>0){if(++t>=Qg)return arguments[0]}else t=0;return n.apply(void 0,arguments)}}var zu=ey;function ty(n){return function(){return n}}var Uu=ty;var ry=function(){try{var n=It(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Qo=ry;var oy=Qo?function(n,t){return Qo(n,"toString",{configurable:!0,enumerable:!1,value:Uu(t),writable:!0})}:Gs,ju=oy;var ny=zu(ju),zs=ny;function iy(n,t){for(var e=-1,r=n==null?0:n.length;++e<r&&t(n[e],e,n)!==!1;);return n}var ku=iy;var sy=9007199254740991,ay=/^(?:0|[1-9]\d*)$/;function ly(n,t){var e=typeof n;return t=t??sy,!!t&&(e=="number"||e!="symbol"&&ay.test(n))&&n>-1&&n%1==0&&n<t}var Kr=ly;function cy(n,t,e){t=="__proto__"&&Qo?Qo(n,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[t]=e}var Zo=cy;function uy(n,t){return n===t||n!==n&&t!==t}var Qr=uy;var py=Object.prototype,dy=py.hasOwnProperty;function fy(n,t,e){var r=n[t];(!(dy.call(n,t)&&Qr(r,e))||e===void 0&&!(t in n))&&Zo(n,t,e)}var Jo=fy;function my(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?Zo(e,l,c):Jo(e,l,c)}return e}var kt=my;var Hu=Math.max;function hy(n,t,e){return t=Hu(t===void 0?n.length-1:t,0),function(){for(var r=arguments,o=-1,i=Hu(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),Fu(n,this,l)}}var Us=hy;function gy(n,t){return zs(Us(n,t,Gs),n+"")}var Wu=gy;var yy=9007199254740991;function xy(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=yy}var en=xy;function vy(n){return n!=null&&en(n.length)&&!Ko(n)}var Zr=vy;function by(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 qu=by;function Sy(n){return Wu(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&&qu(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 $u=Sy;var wy=Object.prototype;function _y(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||wy;return n===e}var tn=_y;function Ty(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var Xu=Ty;var Ay="[object Arguments]";function Ny(n){return ht(n)&&Vt(n)==Ay}var Tl=Ny;var Yu=Object.prototype,Iy=Yu.hasOwnProperty,Py=Yu.propertyIsEnumerable,Oy=Tl(function(){return arguments}())?Tl:function(n){return ht(n)&&Iy.call(n,"callee")&&!Py.call(n,"callee")},Rr=Oy;function Cy(){return!1}var Ku=Cy;var Ju=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qu=Ju&&typeof module=="object"&&module&&!module.nodeType&&module,Ly=Qu&&Qu.exports===Ju,Zu=Ly?Ye.Buffer:void 0,My=Zu?Zu.isBuffer:void 0,Ey=My||Ku,rn=Ey;var By="[object Arguments]",Dy="[object Array]",Gy="[object Boolean]",Ry="[object Date]",Vy="[object Error]",Fy="[object Function]",zy="[object Map]",Uy="[object Number]",jy="[object Object]",ky="[object RegExp]",Hy="[object Set]",Wy="[object String]",qy="[object WeakMap]",$y="[object ArrayBuffer]",Xy="[object DataView]",Yy="[object Float32Array]",Ky="[object Float64Array]",Qy="[object Int8Array]",Zy="[object Int16Array]",Jy="[object Int32Array]",ex="[object Uint8Array]",tx="[object Uint8ClampedArray]",rx="[object Uint16Array]",ox="[object Uint32Array]",Ve={};Ve[Yy]=Ve[Ky]=Ve[Qy]=Ve[Zy]=Ve[Jy]=Ve[ex]=Ve[tx]=Ve[rx]=Ve[ox]=!0;Ve[By]=Ve[Dy]=Ve[$y]=Ve[Gy]=Ve[Xy]=Ve[Ry]=Ve[Vy]=Ve[Fy]=Ve[zy]=Ve[Uy]=Ve[jy]=Ve[ky]=Ve[Hy]=Ve[Wy]=Ve[qy]=!1;function nx(n){return ht(n)&&en(n.length)&&!!Ve[Vt(n)]}var ep=nx;function ix(n){return function(t){return n(t)}}var on=ix;var tp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ui=tp&&typeof module=="object"&&module&&!module.nodeType&&module,sx=ui&&ui.exports===tp,Al=sx&&Bs.process,ax=function(){try{var n=ui&&ui.require&&ui.require("util").types;return n||Al&&Al.binding&&Al.binding("util")}catch{}}(),Vr=ax;var rp=Vr&&Vr.isTypedArray,lx=rp?on(rp):ep,js=lx;var cx=Object.prototype,ux=cx.hasOwnProperty;function px(n,t){var e=je(n),r=!e&&Rr(n),o=!e&&!r&&rn(n),i=!e&&!r&&!o&&js(n),s=e||r||o||i,l=s?Xu(n.length,String):[],c=l.length;for(var p in n)(t||ux.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 ks=px;function dx(n,t){return function(e){return n(t(e))}}var Hs=dx;var fx=Hs(Object.keys,Object),op=fx;var mx=Object.prototype,hx=mx.hasOwnProperty;function gx(n){if(!tn(n))return op(n);var t=[];for(var e in Object(n))hx.call(n,e)&&e!="constructor"&&t.push(e);return t}var np=gx;function yx(n){return Zr(n)?ks(n):np(n)}var nn=yx;function xx(n){var t=[];if(n!=null)for(var e in Object(n))t.push(e);return t}var ip=xx;var vx=Object.prototype,bx=vx.hasOwnProperty;function Sx(n){if(!Qe(n))return ip(n);var t=tn(n),e=[];for(var r in n)r=="constructor"&&(t||!bx.call(n,r))||e.push(r);return e}var sp=Sx;function wx(n){return Zr(n)?ks(n,!0):sp(n)}var fr=wx;var _x=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Tx=/^\w*$/;function Ax(n,t){if(je(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||Yo(n)?!0:Tx.test(n)||!_x.test(n)||t!=null&&n in Object(t)}var ap=Ax;var Nx=It(Object,"create"),Fr=Nx;function Ix(){this.__data__=Fr?Fr(null):{},this.size=0}var lp=Ix;function Px(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var cp=Px;var Ox="__lodash_hash_undefined__",Cx=Object.prototype,Lx=Cx.hasOwnProperty;function Mx(n){var t=this.__data__;if(Fr){var e=t[n];return e===Ox?void 0:e}return Lx.call(t,n)?t[n]:void 0}var up=Mx;var Ex=Object.prototype,Bx=Ex.hasOwnProperty;function Dx(n){var t=this.__data__;return Fr?t[n]!==void 0:Bx.call(t,n)}var pp=Dx;var Gx="__lodash_hash_undefined__";function Rx(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=Fr&&t===void 0?Gx:t,this}var dp=Rx;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=lp;sn.prototype.delete=cp;sn.prototype.get=up;sn.prototype.has=pp;sn.prototype.set=dp;var Nl=sn;function Vx(){this.__data__=[],this.size=0}var fp=Vx;function Fx(n,t){for(var e=n.length;e--;)if(Qr(n[e][0],t))return e;return-1}var Jr=Fx;var zx=Array.prototype,Ux=zx.splice;function jx(n){var t=this.__data__,e=Jr(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Ux.call(t,e,1),--this.size,!0}var mp=jx;function kx(n){var t=this.__data__,e=Jr(t,n);return e<0?void 0:t[e][1]}var hp=kx;function Hx(n){return Jr(this.__data__,n)>-1}var gp=Hx;function Wx(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 yp=Wx;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=fp;an.prototype.delete=mp;an.prototype.get=hp;an.prototype.has=gp;an.prototype.set=yp;var eo=an;var qx=It(Ye,"Map"),to=qx;function $x(){this.size=0,this.__data__={hash:new Nl,map:new(to||eo),string:new Nl}}var xp=$x;function Xx(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var vp=Xx;function Yx(n,t){var e=n.__data__;return vp(t)?e[typeof t=="string"?"string":"hash"]:e.map}var ro=Yx;function Kx(n){var t=ro(this,n).delete(n);return this.size-=t?1:0,t}var bp=Kx;function Qx(n){return ro(this,n).get(n)}var Sp=Qx;function Zx(n){return ro(this,n).has(n)}var wp=Zx;function Jx(n,t){var e=ro(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var _p=Jx;function ln(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])}}ln.prototype.clear=xp;ln.prototype.delete=bp;ln.prototype.get=Sp;ln.prototype.has=wp;ln.prototype.set=_p;var pi=ln;var e0="Expected a function";function Il(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError(e0);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(Il.Cache||pi),e}Il.Cache=pi;var Tp=Il;var t0=500;function r0(n){var t=Tp(n,function(r){return e.size===t0&&e.clear(),r}),e=t.cache;return t}var Ap=r0;var o0=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,n0=/\\(\\)?/g,i0=Ap(function(n){var t=[];return n.charCodeAt(0)===46&&t.push(""),n.replace(o0,function(e,r,o,i){t.push(o?i.replace(n0,"$1"):r||e)}),t}),Np=i0;function s0(n){return n==null?"":Mu(n)}var Ip=s0;function a0(n,t){return je(n)?n:ap(n,t)?[n]:Np(Ip(n))}var Ht=a0;var l0=1/0;function c0(n){if(typeof n=="string"||Yo(n))return n;var t=n+"";return t=="0"&&1/n==-l0?"-0":t}var oo=c0;function u0(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 Ws=u0;function p0(n,t){for(var e=-1,r=t.length,o=n.length;++e<r;)n[o+e]=t[e];return n}var cn=p0;var Pp=bt?bt.isConcatSpreadable:void 0;function d0(n){return je(n)||Rr(n)||!!(Pp&&n&&n[Pp])}var Op=d0;function Cp(n,t,e,r,o){var i=-1,s=n.length;for(e||(e=Op),o||(o=[]);++i<s;){var l=n[i];t>0&&e(l)?t>1?Cp(l,t-1,e,r,o):cn(o,l):r||(o[o.length]=l)}return o}var Lp=Cp;function f0(n){var t=n==null?0:n.length;return t?Lp(n,1):[]}var Mp=f0;function m0(n){return zs(Us(n,void 0,Mp),n+"")}var qs=m0;var h0=Hs(Object.getPrototypeOf,Object),un=h0;var g0="[object Object]",y0=Function.prototype,x0=Object.prototype,Ep=y0.toString,v0=x0.hasOwnProperty,b0=Ep.call(Object);function S0(n){if(!ht(n)||Vt(n)!=g0)return!1;var t=un(n);if(t===null)return!0;var e=v0.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Ep.call(e)==b0}var $s=S0;function w0(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 Bp=w0;function _0(){this.__data__=new eo,this.size=0}var Dp=_0;function T0(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var Gp=T0;function A0(n){return this.__data__.get(n)}var Rp=A0;function N0(n){return this.__data__.has(n)}var Vp=N0;var I0=200;function P0(n,t){var e=this.__data__;if(e instanceof eo){var r=e.__data__;if(!to||r.length<I0-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new pi(r)}return e.set(n,t),this.size=e.size,this}var Fp=P0;function pn(n){var t=this.__data__=new eo(n);this.size=t.size}pn.prototype.clear=Dp;pn.prototype.delete=Gp;pn.prototype.get=Rp;pn.prototype.has=Vp;pn.prototype.set=Fp;var Xs=pn;function O0(n,t){return n&&kt(t,nn(t),n)}var zp=O0;function C0(n,t){return n&&kt(t,fr(t),n)}var Up=C0;var Wp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jp=Wp&&typeof module=="object"&&module&&!module.nodeType&&module,L0=jp&&jp.exports===Wp,kp=L0?Ye.Buffer:void 0,Hp=kp?kp.allocUnsafe:void 0;function M0(n,t){if(t)return n.slice();var e=n.length,r=Hp?Hp(e):new n.constructor(e);return n.copy(r),r}var Ys=M0;function E0(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 qp=E0;function B0(){return[]}var Ks=B0;var D0=Object.prototype,G0=D0.propertyIsEnumerable,$p=Object.getOwnPropertySymbols,R0=$p?function(n){return n==null?[]:(n=Object(n),qp($p(n),function(t){return G0.call(n,t)}))}:Ks,dn=R0;function V0(n,t){return kt(n,dn(n),t)}var Xp=V0;var F0=Object.getOwnPropertySymbols,z0=F0?function(n){for(var t=[];n;)cn(t,dn(n)),n=un(n);return t}:Ks,Qs=z0;function U0(n,t){return kt(n,Qs(n),t)}var Yp=U0;function j0(n,t,e){var r=t(n);return je(n)?r:cn(r,e(n))}var Zs=j0;function k0(n){return Zs(n,nn,dn)}var Kp=k0;function H0(n){return Zs(n,fr,Qs)}var Js=H0;var W0=It(Ye,"DataView"),ea=W0;var q0=It(Ye,"Promise"),ta=q0;var $0=It(Ye,"Set"),ra=$0;var Qp="[object Map]",X0="[object Object]",Zp="[object Promise]",Jp="[object Set]",ed="[object WeakMap]",td="[object DataView]",Y0=Gr(ea),K0=Gr(to),Q0=Gr(ta),Z0=Gr(ra),J0=Gr(Vs),So=Vt;(ea&&So(new ea(new ArrayBuffer(1)))!=td||to&&So(new to)!=Qp||ta&&So(ta.resolve())!=Zp||ra&&So(new ra)!=Jp||Vs&&So(new Vs)!=ed)&&(So=function(n){var t=Vt(n),e=t==X0?n.constructor:void 0,r=e?Gr(e):"";if(r)switch(r){case Y0:return td;case K0:return Qp;case Q0:return Zp;case Z0:return Jp;case J0:return ed}return t});var fn=So;var ev=Object.prototype,tv=ev.hasOwnProperty;function rv(n){var t=n.length,e=new n.constructor(t);return t&&typeof n[0]=="string"&&tv.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var rd=rv;var ov=Ye.Uint8Array,Pl=ov;function nv(n){var t=new n.constructor(n.byteLength);return new Pl(t).set(new Pl(n)),t}var mn=nv;function iv(n,t){var e=t?mn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var od=iv;var sv=/\w*$/;function av(n){var t=new n.constructor(n.source,sv.exec(n));return t.lastIndex=n.lastIndex,t}var nd=av;var id=bt?bt.prototype:void 0,sd=id?id.valueOf:void 0;function lv(n){return sd?Object(sd.call(n)):{}}var ad=lv;function cv(n,t){var e=t?mn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var oa=cv;var uv="[object Boolean]",pv="[object Date]",dv="[object Map]",fv="[object Number]",mv="[object RegExp]",hv="[object Set]",gv="[object String]",yv="[object Symbol]",xv="[object ArrayBuffer]",vv="[object DataView]",bv="[object Float32Array]",Sv="[object Float64Array]",wv="[object Int8Array]",_v="[object Int16Array]",Tv="[object Int32Array]",Av="[object Uint8Array]",Nv="[object Uint8ClampedArray]",Iv="[object Uint16Array]",Pv="[object Uint32Array]";function Ov(n,t,e){var r=n.constructor;switch(t){case xv:return mn(n);case uv:case pv:return new r(+n);case vv:return od(n,e);case bv:case Sv:case wv:case _v:case Tv:case Av:case Nv:case Iv:case Pv:return oa(n,e);case dv:return new r;case fv:case gv:return new r(n);case mv:return nd(n);case hv:return new r;case yv:return ad(n)}}var ld=Ov;function Cv(n){return typeof n.constructor=="function"&&!tn(n)?Vu(un(n)):{}}var na=Cv;var Lv="[object Map]";function Mv(n){return ht(n)&&fn(n)==Lv}var cd=Mv;var ud=Vr&&Vr.isMap,Ev=ud?on(ud):cd,pd=Ev;var Bv="[object Set]";function Dv(n){return ht(n)&&fn(n)==Bv}var dd=Dv;var fd=Vr&&Vr.isSet,Gv=fd?on(fd):dd,md=Gv;var Rv=1,Vv=2,Fv=4,hd="[object Arguments]",zv="[object Array]",Uv="[object Boolean]",jv="[object Date]",kv="[object Error]",gd="[object Function]",Hv="[object GeneratorFunction]",Wv="[object Map]",qv="[object Number]",yd="[object Object]",$v="[object RegExp]",Xv="[object Set]",Yv="[object String]",Kv="[object Symbol]",Qv="[object WeakMap]",Zv="[object ArrayBuffer]",Jv="[object DataView]",eb="[object Float32Array]",tb="[object Float64Array]",rb="[object Int8Array]",ob="[object Int16Array]",nb="[object Int32Array]",ib="[object Uint8Array]",sb="[object Uint8ClampedArray]",ab="[object Uint16Array]",lb="[object Uint32Array]",De={};De[hd]=De[zv]=De[Zv]=De[Jv]=De[Uv]=De[jv]=De[eb]=De[tb]=De[rb]=De[ob]=De[nb]=De[Wv]=De[qv]=De[yd]=De[$v]=De[Xv]=De[Yv]=De[Kv]=De[ib]=De[sb]=De[ab]=De[lb]=!0;De[kv]=De[gd]=De[Qv]=!1;function ia(n,t,e,r,o,i){var s,l=t&Rv,c=t&Vv,p=t&Fv;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=rd(n),!l)return Fs(n,s)}else{var u=fn(n),d=u==gd||u==Hv;if(rn(n))return Ys(n,l);if(u==yd||u==hd||d&&!o){if(s=c||d?{}:na(n),!l)return c?Yp(n,Up(s,n)):Xp(n,zp(s,n))}else{if(!De[u])return o?n:{};s=ld(n,u,l)}}i||(i=new Xs);var f=i.get(n);if(f)return f;i.set(n,s),md(n)?n.forEach(function(g){s.add(ia(g,t,e,g,n,i))}):pd(n)&&n.forEach(function(g,v){s.set(v,ia(g,t,e,v,n,i))});var m=p?c?Js:Kp:c?fr:nn,h=a?void 0:m(n);return ku(h||n,function(g,v){h&&(v=g,g=n[v]),Jo(s,v,ia(g,t,e,v,n,i))}),s}var sa=ia;var cb=1,ub=4;function pb(n){return sa(n,cb|ub)}var di=pb;function db(n,t){return n!=null&&t in Object(n)}var xd=db;function fb(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&&en(o)&&Kr(s,o)&&(je(n)||Rr(n)))}var vd=fb;function mb(n,t){return n!=null&&vd(n,t,xd)}var bd=mb;function hb(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 Sd=hb;var gb=Sd(),wd=gb;function yb(n,t,e){(e!==void 0&&!Qr(n[t],e)||e===void 0&&!(t in n))&&Zo(n,t,e)}var fi=yb;function xb(n){return ht(n)&&Zr(n)}var _d=xb;function vb(n,t){if(!(t==="constructor"&&typeof n[t]=="function")&&t!="__proto__")return n[t]}var mi=vb;function bb(n){return kt(n,fr(n))}var Td=bb;function Sb(n,t,e,r,o,i,s){var l=mi(n,e),c=mi(t,e),p=s.get(c);if(p){fi(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&&rn(c),m=!d&&!f&&js(c);a=c,d||f||m?je(l)?a=l:_d(l)?a=Fs(l):f?(u=!1,a=Ys(c,!0)):m?(u=!1,a=oa(c,!0)):a=[]:$s(c)||Rr(c)?(a=l,Rr(l)?a=Td(l):(!Qe(l)||Ko(l))&&(a=na(c))):u=!1}u&&(s.set(c,a),o(a,c,r,i,s),s.delete(c)),fi(n,e,a)}var Ad=Sb;function Nd(n,t,e,r,o){n!==t&&wd(t,function(i,s){if(o||(o=new Xs),Qe(i))Ad(n,t,s,e,Nd,r,o);else{var l=r?r(mi(n,s),i,s+"",n,t,o):void 0;l===void 0&&(l=i),fi(n,s,l)}},fr)}var Id=Nd;function wb(n){var t=n==null?0:n.length;return t?n[t-1]:void 0}var Pd=wb;function _b(n,t){return t.length<2?n:Ws(n,Bp(t,0,-1))}var Od=_b;var Tb=$u(function(n,t,e){Id(n,t,e)}),wo=Tb;function Ab(n,t){return t=Ht(t,n),n=Od(n,t),n==null||delete n[oo(Pd(t))]}var Cd=Ab;function Nb(n){return $s(n)?void 0:n}var Ld=Nb;var Ib=1,Pb=2,Ob=4,Cb=qs(function(n,t){var e={};if(n==null)return e;var r=!1;t=Ds(t,function(i){return i=Ht(i,n),r||(r=i.length>1),i}),kt(n,Js(n),e),r&&(e=sa(e,Ib|Pb|Ob,Ld));for(var o=t.length;o--;)Cd(e,t[o]);return e}),hn=Cb;function Lb(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])?[]:{})}Jo(l,c,p),l=l[c]}return n}var Md=Lb;function Mb(n,t,e){for(var r=-1,o=t.length,i={};++r<o;){var s=t[r],l=Ws(n,s);e(l,s)&&Md(i,Ht(s,n),l)}return i}var Ed=Mb;function Eb(n,t){return Ed(n,t,function(e,r){return bd(n,r)})}var Bd=Eb;var Bb=qs(function(n,t){return n==null?{}:Bd(n,t)}),gn=Bb;var hi;(o=>{o.identity={...Os.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:Wo.isEqual(i.position,s.position)?null:s.position,rotation:Wo.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:Wo.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:Xr.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=r})(hi||(hi={}));var Ol;(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]})(Ol||(Ol={}));var Qt;(t=>t.defaultData={states:new he,events:new he,visible:!0,raycastLock:!1,physics:null,...hi.identity})(Qt||(Qt={}));var Dd;(t=>t.defaultData={type:"Empty",...Qt.defaultData})(Dd||(Dd={}));var _o;(t=>t.defaultData={type:"Mesh",...Qt.defaultData,...Es.defaultData})(_o||(_o={}));var aa;(t=>t.defaultData={...Qt.defaultData,...hi.identity,...bo.defaultData})(aa||(aa={}));var Gd;(t=>{function n(e){return{...Qt.defaultData,...Ms.defaultData(e)}}t.defaultData=n})(Gd||(Gd={}));var Rd;(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:Ol.defaultData,states:new he,events:new he,...bo.defaultData},o.defaultMeshObject={name:"Rectangle",...Qt.defaultData,..._o.defaultData,geometry:Yr.defaultData("RectangleGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultBooleanObject={name:"Boolean",...Qt.defaultData,..._o.defaultData,geometry:Yr.defaultData("BooleanGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")},o.defaultTextObject={name:"Text",...Qt.defaultData,..._o.defaultData,geometry:Yr.defaultData("TextGeometry"),material:Rt.defaultTwoLayerData("phong","layer1","layer2")}))(Rd||(Rd={}));var Vd;(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=cl(i.material,s=>{if(typeof s!="string")for(let[l,c]of Object.entries(o.material.layers)){let p=s.layers.data(l);p&&wo(p,c)}}).data),i.materials&&o.materials&&(i.materials=cl(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&&wo(u,a)}}}).data),i}e.patchMaterialState=n;function t(r,o){if(o===void 0)return r;let i={...r};if(Object.assign(i,hi.merge(i,o)),qo.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(Ls.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})(Vd||(Vd={}));var yn;(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})(yn||(yn={}));var la;(t=>t.defaultData={orbitControls:yn.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})(la||(la={}));function To(n,t){return Object.setPrototypeOf(n,t),n}function Fd(n){return Array.isArray(n)?n:[n]}var ca;(e=>{function n(){let r={};return r["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},To(r,Be.prototype)}e.defaultColors=n;function t(){return{materials:new Be,images:new Be,colors:new Be,audios:new Be,fonts:new Be,penumbraSize:[.5,.5,.5]}}e.emptyData=t})(ca||(ca={}));var gi=require("three");function zd(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={...gn(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 ua(n,t){Object.values(n.shared.materials).forEach(e=>t(e))}function pa(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 Db(n){Object.assign(n.scene.publish,{orbitControls:{...yn.defaultData,...Tt(n.scene.publish.orbitControls)}})}function Gb(n){Object.assign(n.scene.publish.settings,{video:{...la.defaultData.settings.video,...Tt(n.scene.publish.settings.video)}})}function Rb(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((_u.includes(o)||typeof i=="boolean")&&delete r[o],o==="texture")for(let[s,l]of Object.entries(i))(Tu.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 Vb(n){n.scene.publish.withBackground=!0}function Fb(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function zb(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 Ub(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 jb(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 Ud(n){n.layers===void 0&&Object.assign(n,Rt.defaultTwoLayerData("lambert"))}function Cl(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 kb(n){n.scene.objects.traverse((t,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function jd(n){n.scene.objects.traverse((t,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&Cl(r)}):"material"in e&&typeof e.material!="string"&&Cl(e.material)}),Object.values(n.shared.materials).forEach(t=>Cl(t))}function Hb(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 Wb(n){n.shared.audios=To({},Be.prototype)}function qb(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 $b(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 Xb(n){n.scene.publish.settings.web.preload=!1}function kd(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 Yb(n){n.shared.fonts=To({},Be.prototype)}function Kb(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 Qb(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=Kb(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...Qt.defaultData,..._o.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 Zb(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 he,move:new he,jump:new he}});else{let i=new he;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:gi.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,gn(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 he({fi:0,id:gi.MathUtils.generateUUID(),data:p},{fi:1,id:gi.MathUtils.generateUUID(),data:d})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function Jb(n){n.scene.objects.traverse((t,e)=>{function r(o,i){let s=new he,l=[];if(e.events.forEach((c,p,a)=>{if(c.type==="Audio"&&c.trigger===i){let u;l.push(p),c.interaction==="play"?u={...gn(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={...gn(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:gi.MathUtils.generateUUID(),data:{type:o,actions:s}}])}}r("Start","start"),r("MouseDown","mouseDown"),r("MouseUp","mouseUp"),r("KeyDown","keyDown"),r("KeyUp","keyUp")})}function Hd(n){let t=n.layers.find(e=>e.type==="light")?.data;if(t?.category==="basic"){let e=dr.defaultData("light","phong"),r=t;Object.assign(r,e),r.visible=!1}}function eS(n){ua(n,Hd),pa(n,Hd)}var Wd=22;function qd(n){let t=n.schema??0;t!==Wd&&(console.warn("updating from ",t,"to ",Wd),t<1&&(pa(n,zd),ua(n,zd),n.schema=1),t<2&&(Db(n),n.schema=2),t<3&&(Rb(n),n.schema=3),t<4&&(Vb(n),n.schema=4),t<5&&(Fb(n),n.schema=5),t<6&&(zb(n),n.schema=6),t<7&&(Ub(n),n.schema=7),t<8&&(jb(n),n.schema=8),t<9&&(jd(n),n.schema=9),t<10&&(kb(n),n.schema=10),t<11&&(Hb(n),n.schema=11),t<12&&(jd(n),n.schema=12),t<13&&(Wb(n),n.schema=13),t<14&&(qb(n),n.schema=14),t<15&&($b(n),n.schema=15),t<16&&(Xb(n),n.schema=16),t<17&&(pa(n,kd),ua(n,kd),n.schema=17),t<18&&(pa(n,Ud),ua(n,Ud),n.schema=18),t<19&&(Gb(n),n.schema=19),t<20&&(Yb(n),Qb(n),n.schema=20),t<21&&(Zb(n),Jb(n),n.schema=21),t<22&&(eS(n),n.schema=22))}var da;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(da||(da={}));var Ke=require("three");var $d=require("three"),Ll=class extends $d.Object3D{},fa=class extends Ll{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 Ao=class extends Ke.Object3D{constructor(e,r={}){super();this.object=e;let o=e.recursiveBBox.getSize(new Ke.Vector3),i=.1;this.parameters=Cs.defaultData(o.toArray(),i),wo(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 fa(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),wo(this.parameters,e),this.update(),this}};var Lr=require("three");var ze=require("three");var Xd=require("three"),mr=n=>{var t;return t=class extends n{constructor(){super(...arguments);this.isObjectHelper=!0}},t.geometryHelper=new Xd.BoxGeometry(30,30,30),t};var pt=require("three");var gt=require("three"),ma=new gt.Ray,Ml=new gt.Sphere,Yd=new gt.Matrix4,hr=(n,t,e,r,o=!1)=>{let i=t,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Ml.copy(i.boundingSphere),Ml.applyMatrix4(s),e.ray.intersectsSphere(Ml)===!1||(Yd.copy(s).invert(),ma.copy(e.ray).applyMatrix4(Yd),i.boundingBox!==null&&ma.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,ma,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),ma.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 ha=new pt.Vector3,Wt=new pt.Camera,El=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){ha.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],ha.x,ha.y,ha.z)}}var ga=class extends mr(El){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){hr(this.object,this.geometry,e,r,!0)}};var Kd=require("three");var xn=class extends mr(Kd.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){hr(this.object,xn.geometryHelper,e,r)}};var Qd=require("three");var vn=class extends mr(Qd.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){hr(this.object,vn.geometryHelper,e,r)}update(){}};var Zd=require("three");var bn=class extends mr(Zd.PointLightHelper){constructor(e,r=15,o=6710886){super(e,r,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,r){hr(this.object,bn.geometryHelper,e,r)}};var xa=require("three");var ya=class extends mr(xa.SpotLightHelper){constructor(e,r=6710886){super(e,r);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,r){hr(this.object,ya.geometryHelper,e,r)}update(){if(this.object!==void 0){let e=ya._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)}}},xi=ya;xi._vector=new xa.Vector3;var ge=require("three"),vi=1e-12,Sn=class{constructor(t){this.position=new ge.Vector2;this.startPosition=new ge.Vector2;this.uuid=ge.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 Sn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},wn=class extends Sn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new wn(this.parent).copy(this)}},Jt=class extends Sn{constructor(e,r){super(r);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new wn(this),new wn(this))}static create(e,r){let o=new Jt(e,new ge.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 ge.Vector2,r=new ge.Vector2){let[o,i]=this.computeTangents();return o&&i&&(Jd(o,e),Jd(i,r)),[e,r]}computeTangent(e=new ge.Vector2){let[r,o]=this.computeTangents();return r&&o&&e.copy(r).add(o).normalize(),e}computeNormal(e=new ge.Vector2){let[r,o]=this.computeNormals();return e.copy(r).add(o).normalize(),e}};function Jd(n,t=new ge.Vector2){let e=n.length();return t.set(-n.y/e,n.x/e)}var Dl=n=>n,_n=new ge.Vector2,va=new ge.Vector2,rS=new ge.Vector2,oS=new ge.Vector2,nS=new ge.Vector2,iS=new ge.Vector2,tf=new ge.Vector3,rf=new ge.Vector3;function of(n){let t=new ge.Vector2;t.addVectors(n.v0,_n.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new ge.Vector2;return e.addVectors(n.v2,va.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new ge.CubicBezierCurve(n.v0,t,e,n.v2)}function bi(n,t,e=Number.EPSILON){return Math.abs(n-t)<e}function sS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function aS(n,t,e=Number.EPSILON){return n.distanceTo(t)<e}function Gl(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 nf(n,t,e){return ef(n,t)&&ef(t,e)&&Bl(n.position,t.position,e.position)}function Bl(n,t,e){return _n.copy(t).sub(n).cross(va.copy(e).sub(n))===0}function sf(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 af(n,t,e){let r=n.distanceTo(e),o=t.distanceTo(e);return r<o?t:n}function lf(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 Gl(t,n,e)>Math.PI&&(a*=-1),bi(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 Rl(n,t){return n.position.equals(n.controls[1].position)&&t.position.equals(t.controls[0].position)}function ef(n,t){return Bl(n.position,n.controls[1].position,t.position)&&Bl(n.position,t.controls[0].position,t.position)}function cf(n,t,e,r,o=.5){let i=_n.subVectors(t,n).multiplyScalar(o).add(n),s=va.subVectors(e,t).multiplyScalar(o).add(t),l=rS.subVectors(r,e).multiplyScalar(o).add(e),c=i,p=oS.subVectors(s,i).multiplyScalar(o).add(i),a=nS.subVectors(l,s).multiplyScalar(o).add(s),u=l,d=iS.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 uf(n,t,e=12,r=!0){let o=rf.set(0,0,0),i,s=0,l=[];for(let c=0;c<t.length;c++){let p=Dl(t[c]),a=_n,u=no(p,e);l.push(u);for(let d=0;d<=u;d++)if(p instanceof ge.CubicBezierCurve||p instanceof ge.QuadraticBezierCurve||p instanceof ge.LineCurve){if(p.getPoint(d/u,a),o.set(a.x,a.y,0),i!==void 0&&aS(i,o))continue;i===void 0&&(i=tf),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 pf(n,t,e,r=12,o=!0){let i=rf.set(0,0,0),s=0,l=[];for(let c=0;c<t.length;c++){if(e[c]===!1)continue;let p,a=Dl(t[c]),u=_n,d=no(a,r);l.push(d);for(let f=0;f<=d;f++)if(a instanceof ge.CubicBezierCurve||a instanceof ge.QuadraticBezierCurve||a instanceof ge.LineCurve){if(a.getPoint(f/d,u),i.set(u.x,u.y,0),p?.equals(i))continue;p===void 0?p=tf:(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 Vl(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 ge.EllipseCurve?t*2:n&&(n instanceof ge.LineCurve||n instanceof ge.LineCurve3)?1:n&&n instanceof ge.SplineCurve?t*n.points.length:t}function df(n,t,e=12,r=!0){let o,i=0;for(let s=0;s<t.length;s++){let l=Dl(t[s]),c=no(l,e),p=_n;for(let a=0;a<=c;a++)if(l instanceof ge.CubicBezierCurve||l instanceof ge.QuadraticBezierCurve||l instanceof ge.LineCurve){if(l.getPoint(a/c,p),o!==void 0&&sS(o,p,vi))continue;o===void 0&&(o=va),o.copy(p),n.push(p.x,p.y),i++}}return bi(n[0],n[n.length-2],vi)&&bi(n[1],n[n.length-1],vi)&&(n.pop(),n.pop()),r&&i>1&&!(bi(n[i-1],n[1],vi)&&bi(n[i-2],n[0],vi))&&(n.push(n[0],n[1]),i++),n}var fo=require("three");var Se=require("three");var Fl=new Se.Vector2,lS=new Se.Vector2,cS=new Se.Vector2,uS=new Se.Vector2,pS=new Se.Vector2,dS=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=Fl.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 uf(e,o?this.roundedCurves:this.curves,r,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Vl(this.points,e,!1),this.roundedCurveDivisions=Vl(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,r,o=12){return pf(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),df(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(Rl(i,s)){let u=i.position.distanceTo(s.position);return i.position.distanceTo(Fl.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){Rl(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&&nf(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,Fl),y=f.getPointAt(I,lS);this._subSplitCurve(d,m,b,_,void 0),this._subSplitCurve(f,h,I,void 0,y);let P;if(this.useCubicForRoundedCorners){let A=Gl(_,l.position,y)/2,O=Math.tan(A)*_.distanceTo(l.position),[T,L]=sf(_,y,O,cS,uS),B=af(T,L,l.position),[j,te]=lf(B,_,y,O,pS,dS);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=cf(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]=of(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 Io=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}(),Si=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}(),ba=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}(),Tn=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}(),ff=function(){function n(){var t=new Tn,e=new Si,r=new ba(0),o=new ba(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 ba(0),r=new ba(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 Tn,e=new Tn,r=new Si,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 Tn;this.makeVertex_(i,e,t.Org),t.Org.anEdge=t}if(!r){var s=new Si;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 Si;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 Tn;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 Si;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}(),mf=function(){function n(){this.handle=null}return n}(),hf=function(){function n(){this.key=null,this.node=0}return n}(),fS=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 mf,this.handles[r]=new hf;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 mf;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new hf}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}(),zl=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}(),gf=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),mS=function(){function n(t,e){this.frame=t,this.leq=e,this.head=new gf,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 gf;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}(),hS=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 zl;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 Tn,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 zl;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 zl,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 mS(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 fS(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}(),gS=function(){function n(){this.mesh=new ff,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 ff),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_(),hS.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 No(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 gS;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 u3=Me.ODD,p3=Me.NONZERO,d3=Me.POSITIVE,f3=Me.NEGATIVE,m3=Me.ABS_GEQ_TWO,h3=Ze.POLYGONS,g3=Ze.CONNECTED_POLYGONS,y3=Ze.BOUNDARY_CONTOURS;var An=class extends Io.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=No({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 Io.BufferAttribute(new Float32Array(d*3),3),this._normalAttribute=new Io.BufferAttribute(new Float32Array(d*3),3),this._uvAttribute=new Io.BufferAttribute(new Float32Array(d*2),2),this._indexAttribute=new Io.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 An(this._shape,this._curveSegments);return e.userData=di(this.userData),e}};var Po=require("three");var Sa=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*Sa.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*Sa.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)}},wi=Sa;wi.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Ul=(n,t)=>([e,r])=>(r<e&&(r+=t),(n>=e?n:n+t)<=r),Nn=class extends Po.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=No({windingRule:l,elementType:Ze.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),u=No({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 wi(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,Hr=Math.sin(Le)*D;E[2*V+0]=se+Ut,E[2*V+1]=ee+Hr,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=No({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=Ul(H,T);for(;!M.boundary.vertexIndices.filter(V).length||!D.boundary.vertexIndices.filter(V).length;)H++,V=Ul(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=Ul(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=No({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 Po.BufferAttribute(Uint32Array.from(x),1),b=new Po.BufferAttribute(this._buffer.positions,3),I=new Po.BufferAttribute(this._buffer.normals,3),_=new Po.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 Nn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=di(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 An(n.shape,o,{windingRule:s}):l=new Nn(n.shape,t,e,o,r,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};var Ha=require("three");var vf=require("three");var Fe=require("three"),xf=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 _i(p,a,r,o,i,s,l,c*Math.PI/180,u,u,d,f):m=new Fe.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 yf(n){return new Fe.Vector2(n.y,-n.x)}var _i=class extends Fe.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 Fe.Vector3,b=new Fe.Vector3;f&&t==0&&(t=p),f&&e==0&&(e=a);let I=new Fe.Vector2(t,w),_=new Fe.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 Fe.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 Fe.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 Fe.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=yf(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=yf(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 Fe.Float32BufferAttribute(h,3)),this.setAttribute("normal",new Fe.Float32BufferAttribute(g,3)),this.setAttribute("uv",new Fe.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 Fe.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 Fe.Vector3,ee=new Fe.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 Fe.Vector2(Math.sin(z),Math.cos(z)),re=new Fe.Vector2(-Math.cos(z),Math.sin(z)),se=new Fe.Vector3,ee=V<0?(X,me,de)=>m.push(X,me,de):(X,me,de)=>m.push(X,de,me),J=new Fe.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 bf=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 _i(0,t/2,r,o,i,s,l,c*Math.PI/180,p,a,u,0,!0):d=new vf.ConeGeometry(t/2,r,o,i,s),d.scale(1,1,e/t),Object.assign(d,{userData:{...n,type:"ConeGeometry"}})}};var Pt=require("three"),Sf=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 kl(t,e,r,o,i,s,l,c),Object.assign(p,{userData:{...n,type:"CubeGeometry"}})}},jl=Math.PI/2,kl=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*jl,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=jl*(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+=jl/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 wf=require("three"),_f=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 wf.DodecahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},Ti=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 Ti(t.radius,t.corner,t.cornerSides)}};var Wl=Math.PI*2;function Hl({x:n,y:t},e,r,o,i){return{x:n*e+o,y:t*r+i}}function yS(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 Tf(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 xS(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,_=Tf(1,0,w,S),y=Tf(w,S,b,I);return!p&&y>0&&(y-=Wl),p&&y<0&&(y+=Wl),{centerx:v,centery:x,ang1:_,ang2:y}}function Af({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=xS(n,t,e,r,o,i,p,a,s,l),{ang1:f,ang2:m}=d,{centerx:h,centery:g}=d,v=Math.abs(m)/(Wl/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(yS(f,m)),f+=m;return c.map(w=>{let{x:S,y:b}=Hl(w[0],o,i,h,g),{x:I,y:_}=Hl(w[1],o,i,h,g),{x:y,y:P}=Hl(w[2],o,i,h,g);return{x1:S,y1:b,x2:I,y2:_,x:y,y:P}})}var Pn=require("three"),If=Math.PI*2,Pf=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=vS(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 vS(n,t,e,r,o,i){if(r>=If)return o>30||o%4===0?(SS(n,t,e,i),Math.round(o/4)):Nf(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=Af({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?bS(n,s.x,s.y,p,o,t,e,i):Nf(n,r,o,t,e,i)}function bS(n,t,e,r,o,i,s,l){let c=Math.round(o/r.length);n.addPoint(In(t,e));for(let p=0,a=r.length;p<a;p++){let u=r[p],d=n.points[p],f=In(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?Of(n,i,s,l):n.addPoint(In(0,0)),c}function Nf(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(In(p,a))}return t<If?i>0?Of(n,r,o,i):n.addPoint(In(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Cf(n,r,o,i)),1}function SS(n,t,e,r=0,o=0,i=0){let s=.5522847498,l=t*s,c=e*s;n.addPoint(wa(o-t,i,o-t,i-c,o-t,i+c)),n.addPoint(wa(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(wa(o+t,i,o+t,i+c,o+t,i-c)),n.addPoint(wa(o,i-e,o+l,i-e,o-l,i-e)),r>0&&Cf(n,t,e,r)}function In(n,t){return new Jt(Pn.MathUtils.generateUUID(),new Pn.Vector2(n,t))}function wa(n,t,e,r,o,i){let s=In(n,t);return s.controls[0].position.set(e,r),s.controls[1].position.set(o,i),s}function Of(n,t,e,r){Lf(n,t,e,r).forEach(i=>n.addPoint(i))}function Cf(n,t,e,r){let o=Lf(n,t,e,r),i=new _e;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Lf(n,t,e,r){let o=r*t/100,i=o*(Math.abs(e)/Math.abs(t)),s=new Pn.Vector2(o/t,i/e),l=n.points.map(c=>{let p=c.clone();return p.uuid=Pn.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 zr=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,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 Ai(!1,t,e,r,o,i,s,l,c,p,a,u);return Object.assign(d,{userData:{...n,type:"HelixGeometry"}})}},Ai=class extends zr.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 zr.Vector3,h=new zr.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,Hr=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,_h=Bt?3*Math.PI/2:Q,Th=Bt?Ut:Hr,Ah=Bt?E:ee,Nh=Bt?0:J-E,Ih=ae.clone().multiplyScalar(Bt?-R:R).add(v),Ph=ae.clone().multiplyScalar(Bt?-1:1).normalize();for(let Mr=0;Mr<E;Mr++){let Dc=Mr*k;if(T.addVectors(h.copy(te).multiplyScalar(c*Math.cos(Dc)),g.copy(ne).multiplyScalar(c*Math.sin(Dc))),L.copy(T).normalize(),Bt||sr){f||(z=Nh+Mr,[0,1,2].forEach(_t=>{K[z*3+_t]=Ih.getComponent(_t),X[z*3+_t]=Ph.getComponent(_t)}),me[z*2]=+sr,me[z*2+1]=Mr/a),g.copy(L).multiplyScalar(V),x.addVectors(v,g);for(let _t=0;_t<d;_t++){let tl=_t*Q+_h;B.addVectors(h.copy(ae).multiplyScalar(R*Math.sin(tl)),g.copy(L).multiplyScalar(R*Math.cos(tl))),j.copy(B).normalize(),g.addVectors(x,B),B.normalize(),z=Ah+_t*E+Mr,[0,1,2].forEach(ps=>{K[z*3+ps]=g.getComponent(ps),X[z*3+ps]=j.getComponent(ps)});let Oh=+Bt+Math.sin(tl);me[z*2]=(Th+R*Oh)/Le,me[z*2+1]=Mr/a}}g.addVectors(v,T),z=se+We*E+Mr,[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]=Mr/a}}let Et=F+2*d+Z,Ro=1,[cs,us]=f?[Ro,Ro+F-1]:[0,Et-1];for(let We=cs;We<=us-1;We++){let Bt=f&&We===us-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 zr.Float32BufferAttribute(K,3)),this.setAttribute("normal",new zr.Float32BufferAttribute(X,3)),this.setAttribute("uv",new zr.Float32BufferAttribute(me,2))}};var Ef=require("three");var Bf=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 Ni(t*.5,i,s):new Ef.IcosahedronGeometry(t*.5,o);return l.scale(1,e/t,r/t),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},Ni=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 Ni(t.radius,t.corner,t.cornerSides)}};var _a=require("three"),Df=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 _a.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 _a.LatheGeometry(o.extractPoints(r).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var yr=require("three");var Ur=require("three");var ie=require("three"),gr=new ie.Matrix4,ql=new ie.Object3D,Ta=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 gr.makeRotationX(t),this.applyMatrix4(gr),this}rotateY(t){return gr.makeRotationY(t),this.applyMatrix4(gr),this}rotateZ(t){return gr.makeRotationZ(t),this.applyMatrix4(gr),this}translate(t,e,r){return gr.makeTranslation(t,e,r),this.applyMatrix4(gr),this}scale(t,e,r){return gr.makeScale(t,e,r),this.applyMatrix4(gr),this}lookAt(t){return ql.lookAt(t),ql.updateMatrix(),this.applyMatrix4(ql.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 On(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(Ta).negate(),this.translate(Ta.x,Ta.y,Ta.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 On(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 $l().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 $l=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}},On=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 wS=["a","b","c"];function _S(n,t){switch(t){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Xl(n,t,e){let r=Math.min(n,t),o=Math.max(n,t),i=r+"_"+o;return e.get(i)}function Yl(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 TS(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],Yl(s.a,s.b,n,r,s,e),Yl(s.b,s.c,n,r,s,e),Yl(s.c,s.a,n,r,s,e)}function Aa(n,t,e,r,o){n.push(new On(t,e,r,void 0,void 0,o))}function Cn(n,t){return Math.abs(t-n)/2+Math.min(n,t)}function Na(n,t,e,r){n.push([t.clone(),e.clone(),r.clone()])}var Ia=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Ur.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 Ur.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;TS(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 Ur.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[_S(x,wS[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 Ur.Vector2,k=new Ur.Vector2,Q=new Ur.Vector2;for(o=0,i=p.length;o<i;o++)x=p[o],te=Number(Xl(x.a,x.b,f).newEdge)+j,ne=Number(Xl(x.b,x.c,f).newEdge)+j,ae=Number(Xl(x.c,x.a,f).newEdge)+j,Aa(U,te,ne,ae,x.materialIndex),Aa(U,x.a,te,ae,x.materialIndex),Aa(U,x.b,ne,te,x.materialIndex),Aa(U,x.c,ae,ne,x.materialIndex),u&&(q=a[o],F=q[0],M=q[1],D=q[2],E.set(Cn(F.x,M.x),Cn(F.y,M.y)),k.set(Cn(M.x,D.x),Cn(M.y,D.y)),Q.set(Cn(F.x,D.x),Cn(F.y,D.y)),Na(W,E,k,Q),Na(W,F,E,Q),Na(W,M,k,E),Na(W,D,Q,k));t.vertices=B,t.faces=U,u&&(t.faceVertexUvs[0]=W)}};var Je=new yr.Vector3,Gf=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,t){let e=n.geometry??t?.geometry??new yr.BufferGeometry().copy(new yr.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 yr.BufferGeometry().copy(new yr.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 Ia(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 yr.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 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,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"),Vf=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 Ql(t*.5,e,o,i,s,l,c);return p.scale(1,1,r/t),Object.assign(p,{userData:{...n,type:"PyramidGeometry"}})}};function Ii(n,t,e){e.x=n.x*t.x,e.y=n.y,e.z=n.x*t.y}function Kl(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 AS(n,t,e){let r=n.clone().sub(t),o=e.clone().sub(t);return r.projectOnVector(o),r.add(t)}var Ql=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));Ii(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));Ii(b,R,q),Ii(b,Z,F),Ii(P,z,W),Kl(S,q,F,j,j,M),p.push(M.x,M.y,M.z),Kl(q,S,F,j,B,D),p.push(D.x,D.y,D.z),Kl(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;Ii(A,Z,X);let me=E.clone().add(M).multiplyScalar(.5);me=AS(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,Hr=Math.cos(Ut),Et=Math.sin(Ut),Ro=H;for(let cs=0;cs<=Pe;cs++){let us=Math.cos(Ro),We=Math.sin(Ro);W.x=Hr*We,W.y=Et,W.z=Hr*us,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++),Ro+=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],Hr=Le.length-1;c.push(Ut[1],Le[0],Ut[0]);for(let Et=1;Et<=Hr;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 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,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 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,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 zf.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 jf=require("three"),kf=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 jf.PlaneGeometry(t,e,r,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var lo=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,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 Zl(t,e,r,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Zl=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 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,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 qf=require("three"),$f=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 qf.PlaneGeometry(t,e);return Object.assign(r,{userData:{...n,type:"TextFrameGeometry"}})}};var Xf=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=NS(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 NS(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 Ai(!0,n,t,e,r,o,i,s,l,c,p,a)}var Yf=require("three"),Kf=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 Yf.TorusKnotGeometry(l,e,r,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var Qf=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 Oo=require("three"),Jf=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Zf(){let n=new Oo.BufferGeometry;return n.setAttribute("position",new Oo.BufferAttribute(new Float32Array([]),3)),n.setIndex(new Oo.BufferAttribute(new Uint16Array([]),1)),n}var IS=12;var Ln=class extends Oo.BufferGeometry{constructor(e,r){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.vectorShapes=[];let o=Zf();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=PS(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??IS}})),b=S.length?(0,Jf.mergeBufferGeometries)(S):Zf();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=To(new Oo.BufferGeometry,Ln.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 PS(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 OS,Pa=new Promise(n=>{OS=n});var em=require("three");function Oa(n,t){return CS(n)}function CS(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 em.BufferGeometryLoader().parse(n));let e;try{e=Pi(t)}catch(r){console.error(r)}if(!e){let r=_e.createFromState($o.defaultData(),100,100);t.shape=r,e=Pi(t)}return e}var pe;Pa.then(n=>{pe=n});var tm=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),rm=new Uint32Array([0,1,2,3]),om=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:tm,indexWASM:rm,verticesPerFaceWASM:om},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:Oa(n),r,o,i,s;({positions:r,triIndices:s}=rc(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}=oc(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=tm,r=rm,o=om);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 nm=["getX","getY","getZ"];function rc(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[nm[d]](a)*l)},`;if(u in e)i.push(e[u]);else{for(let d=0;d<3;d++)s.push(n[nm[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 Ca=new $e.Vector3,Jl=new $e.Vector3,ec=new $e.Vector3,tc=new $e.Vector3;function oc(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]){Ca.set(n[t[s]*3],n[t[s]*3+1],n[t[s]*3+2]),Jl.set(n[t[s+1]*3],n[t[s+1]*3+1],n[t[s+1]*3+2]),ec.set(n[t[s+4]*3],n[t[s+4]*3+1],n[t[s+4]*3+2]),tc.set(n[t[s+5]*3],n[t[s+5]*3+1],n[t[s+5]*3+2]),Jl.sub(Ca).normalize(),ec.sub(Ca).normalize(),tc.sub(Ca).normalize();let c=Jl.cross(ec).dot(tc);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={};Rc(er,{calcBoolean:()=>BS,calcBooleanTopological:()=>ES,freeMeshSet:()=>RS,getMeshSet:()=>DS,transformMeshSet:()=>GS});var LS,im=new Promise(n=>{LS=n});var Oi=require("three");var ye,Mn;im.then(n=>ye=n);function MS(n,t,e){let r,{positions:o,triIndices:i}=rc(n.getAttribute("position"),n.getIndex()),s;if(t&&e){let{indices:l,verticesPerFace:c}=oc(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 sm(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 am(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 ES(n,t){Mn===void 0&&(Mn=ye.init_csg());let e=sm(n),r=ye.csg_calc_topological(Mn,e,n.length,am(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 BS(n,t,e,r){Mn===void 0&&(Mn=ye.init_csg());let o=sm(n),i=ye.csg_calc(Mn,o,n.length,r,am(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 Oi.Float32BufferAttribute(u,3)),e.setAttribute("normal",new Oi.Float32BufferAttribute(f,3));let h=ye.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new Oi.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 DS(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}=MS(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 GS(n,t){ye.transform_csg_mesh(n,t.elements)}function RS(n){ye.free_csg_mesh(n)}var nc={ConeGeometry:bf,CubeGeometry:Sf,CylinderGeometry:xf,DodecahedronGeometry:_f,EllipseGeometry:Pf,HelixGeometry:Mf,IcosahedronGeometry:Bf,LatheGeometry:Df,NonParametricGeometry:Gf,PolygonGeometry:Rf,PyramidGeometry:Vf,RectangleGeometry:Ff,SphereGeometry:Uf,PlaneGeometry:kf,BackdropGeometry:Hf,StarGeometry:Wf,TextFrameGeometry:$f,TorusGeometry:Xf,TorusKnotGeometry:Kf,TriangleGeometry:Qf,VectorGeometry:dt},Pi=n=>nc[n.type].create(n);var ac=require("three");var Ma=require("three");var ic=require("three");function st(n,t){return t.color(n)}var sc=n=>"isEntity"in n,xr=n=>"isAbstractMesh"in n,vr=n=>n!==null&&n.objectType==="BooleanObject",lm=n=>n.objectType==="CombinedCamera";var La=n=>"objectHelper"in n;function VS(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(),vr(n.parent)&&xr(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 FS(n,t){VS(n,t),t.name!==void 0&&(n.name=t.name),t.visible!==void 0&&(n.visible=t.visible)}function cm(n,t,e){FS(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 ic.HemisphereLight)&&(n.castShadow=t.shadows),n.shadow&&!(n instanceof ic.HemisphereLight)&&t.depth!==void 0&&(n.shadow.camera.far=t.depth,n.shadow.needsUpdate=!0)}function um(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 Ea=n=>class extends n{hasEntityChild(){return this.children.some(e=>sc(e))}isDescendantOf(e){e instanceof Ma.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 Ma.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),o.multiply(e.parent.matrixWorld)),sc(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 En=new He.Box3,$t=new He.Vector3,br=new He.Vector3,Bn=new He.Matrix4,dm=[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)],zS=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],US=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]];function jS(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 pm=(n,t,e)=>{if(xr(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"||Xo.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&&(jS(En,o,n.geometry.drawRange.start,n.geometry.drawRange.count<1/0?n.geometry.drawRange.count:o.count),En.getCenter($t)),n.forceComputeSize?En.getSize(br).multiplyScalar(.5):br.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}else if(La(n)&&n.objectHelper.visible){let r=n.geometryHelper.getAttribute("position");En.setFromArray(r.array),En.getCenter($t),En.getSize(br).multiplyScalar(.5)}else $t.setScalar(0),br.setScalar(0);Bn.copy(t).multiply(n.matrixWorld),br.x===0&&br.y===0&&br.z===0?e.push(new He.Vector3($t.x,$t.y,$t.z).applyMatrix4(Bn)):dm.forEach(r=>{e.push(r.clone().multiply(br).add($t).applyMatrix4(Bn))})},Ci=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&&pm(s,r,i)}):pm(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(Bn.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(br).multiplyScalar(.5),this.getCenter($t),Bn.copy(this.matrix).setPosition($t),this.vertices=dm.map(e=>e.clone().multiply(br).applyMatrix4(Bn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=zS.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=US.map(([e,r])=>this.vertices[e].clone().add(this.vertices[r]).multiplyScalar(.5))}};var Sr=n=>"isEntity"in n,fm=n=>"isAbstractMesh"in n,Xt=n=>class extends Ea(n){constructor(){super(...arguments);this.objectType="";this.isEntity=!0;this.raycastLock=!1;this.scaleLock=!1;this.hiddenMatrix=new ac.Matrix4;this._singleBBox=new Ci;this._recursiveBBox=new Ci;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=>{Sr(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)Sr(o)&&o.traverseEntity(r)}traverseVisibleEntity(r){r(this);for(let o of this.children)Sr(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)Sr(i)&&this.add(i.clone());return this}keepChildrenMatrixWorld(){let r=new ac.Matrix4,o=this.matrixWorld.clone();this.updateWorldMatrix(!1,!1),r.copy(this.matrixWorld).invert(),r.multiply(o);for(let i of this.children)Sr(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 hn(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 hn(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 ka=require("three");var rr=require("three");var Li=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 mm=require("three"),at=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=mm.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 lc=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 lc;var cc=require("three");var hm=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=hm.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 cc.Vector2?e:new cc.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 uc=require("three");var ft=class extends Ee{constructor(e=0,r,o){super("v3");this.nodeType="Vector3";this.value=e instanceof uc.Vector3?e:new uc.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 gm=require("three"),tt=class extends gm.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 kS=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,ym=/[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=ym.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=kS.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(ym);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 HS=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,pc=class extends ce{constructor(e="",r){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||pc.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=HS.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=pc;we.PI="PI",we.PI2="PI2",we.RECIPROCAL_PI="RECIPROCAL_PI",we.RECIPROCAL_PI2="RECIPROCAL_PI2",we.LOG2="LOG2",we.EPSILON="EPSILON";var WS=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
4
- )*?)}`,"gim"),qS=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),Dn=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=WS.exec(e);if(r){let o=r[2],i;for(;i=qS.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=r[1]}else this.name="";this.type=this.name}};var Gn=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)}};et.addKeyword("uv",function(){return new Gn});et.addKeyword("uv2",function(){return new Gn(1)});var Ba=require("three");var Co=class extends ce{constructor(e,r){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=r??Co.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case Ba.LinearEncoding:return["Linear"];case Ba.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,r){let o=this.input.build(e,"v4"),i=this.getType(e),s=Co.Nodes[this.method],l=e.include(s);if(l===Co.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=Co.getEncodingComponents(e);this.method="LinearTo"+r[0],this.factor=r[1]}fromDecoding(e){let r=Co.getEncodingComponents(e);this.method=r[0]+"ToLinear",this.factor=r[1]}},St=Co;St.Nodes={LinearToLinear:new $(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
5
- `)),sRGBToLinear:new $(["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 $(["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
- `))},St.LINEAR_TO_LINEAR="LinearToLinear",St.SRGB_TO_LINEAR="sRGBToLinear",St.LINEAR_TO_SRGB="LinearTosRGB";var Ae=class extends ${constructor(e="",r,o,i,s){super(e,s,i,o,r);this.nodeType="Expression"}};var xm=require("three"),Ot=class extends Ee{constructor(e=new xm.Texture,r,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=r??new Gn,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 p={include:e.isShader("vertex"),ignoreCache:!0},a=this.getType(e);return e.addContext(p),this.colorSpace=this.colorSpace??new St(new Ae("",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 Y=class extends Ee{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 Mi=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)+"( ",p=[];if(l.inputs){for(let a=0;a<l.inputs.length;a++){let u=l.inputs[a],d=this.inputs[a]||this.inputs[u.name];p.push(d.build(e,e.getTypeByFormat(u.type)))}c+=p.join(", ")+" )"}return e.format(c,i,r)}};var dc=class extends ce{constructor(e,r,o=dc.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)}},Ct=dc;Ct.ADD="+",Ct.SUB="-",Ct.MUL="*",Ct.DIV="/";var Ce=class extends ce{constructor(e,r=Ce.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 Ce.MIX:case Ce.CLAMP:case Ce.REFRACT:case Ce.SMOOTHSTEP:case Ce.FACEFORWARD:return 3;case Ce.MIN:case Ce.MAX:case Ce.MOD:case Ce.STEP:case Ce.REFLECT:case Ce.DISTANCE:case Ce.DOT:case Ce.CROSS:case Ce.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 Ce.LENGTH:case Ce.DISTANCE:case Ce.DOT:return"f";case Ce.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,p=this.c?e.getTypeLength(this.c.getType(e)):0,a=this.getInputType(e),u=this.getType(e);switch(this.type=u,this.method){case Ce.NEGATE:return e.format("( -"+this.a.build(e,a)+" )",a,r);case Ce.INVERT:return e.format("( 1.0 - "+this.a.build(e,a)+" )",a,r);case Ce.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Ce.STEP:o=this.a.build(e,l===1?"f":a),i=this.b.build(e,a);break;case Ce.MIN:case Ce.MAX:case Ce.MOD:o=this.a.build(e,a),i=this.b.build(e,c===1?"f":a);break;case Ce.REFRACT:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,"f");break;case Ce.MIX:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,p===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(", ")+" )",u,r)}},fe=Ce;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 Rn=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 Mi(Rn.Nodes.bilinearCubeUV,[r,o,i]);this.colorSpaceTL=this.colorSpaceTL??new St(new Ae("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new St(new Ae("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new St(new Ae("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new St(new Ae("","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 Ae(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Ae(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Ae(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Ae(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new Ae("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 Mi(Rn.Nodes.roughnessToMip,[i]),l=new fe(s,Rn.Nodes.m0,Rn.Nodes.cubeUV_maxMipLevel,fe.CLAMP),c=new fe(l,fe.FLOOR),p=new fe(l,fe.FRACT),a=this.bilinearCubeUV(e,this.value,o,c),u=this.bilinearCubeUV(e,this.value,o,new Ct(c,new Y(1).setReadonly(!0),Ct.ADD)),d=new fe(a,u,p,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)}},Vn=Rn;Vn.Nodes=function(){let e=new Dn(`struct TextureCubeUVData {
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 we("float cubeUV_maxMipLevel 8.0",!0),o=new we("float cubeUV_minMipLevel 4.0",!0),i=new we("float cubeUV_maxTileSize 256.0",!0),s=new we("float cubeUV_minTileSize 16.0",!0),l=new $(`float getFace(vec3 direction) {
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 @@
25
25
  face = direction.y > 0.0 ? 1.0 : 4.0;
26
26
  }
27
27
  return face;
28
- }`);l.useKeywords=!1;let c=new $(`vec2 getUV(vec3 direction, float face) {
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 @@
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 p=new $(`TextureCubeUVData bilinearCubeUV(sampler2D envMap, vec3 direction, float mipInt) {
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 @@
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]);p.useKeywords=!1;let a=new we("float r0 1.0",!0),u=new we("float v0 0.339",!0),d=new we("float m0 -2.0",!0),f=new we("float r1 0.8",!0),m=new we("float v1 0.276",!0),h=new we("float m1 -1.0",!0),g=new we("float r4 0.4",!0),v=new we("float v4 0.046",!0),x=new we("float m4 2.0",!0),w=new we("float r5 0.305",!0),S=new we("float v5 0.016",!0),b=new we("float m5 3.0",!0),I=new we("float r6 0.21",!0),_=new we("float v6 0.0038",!0),y=new we("float m6 4.0",!0),P=[a,u,d,f,m,h,g,v,x,w,S,b,I,_,y],A=new $(`float roughnessToMip(float roughness) {
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 @@
83
83
  mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
84
84
  }
85
85
  return mip;
86
- }`,P);return{bilinearCubeUV:p,roughnessToMip:A,m0:d,cubeUV_maxMipLevel:r}}();var Lo=class extends ce{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Lo.VIEW}getShared(){return this.scope===Lo.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 Lo.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case Lo.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case Lo.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),r)}},ct=Lo;ct.LOCAL="local",ct.WORLD="world",ct.VIEW="view",ct.NORMAL="normal";et.addKeyword("viewNormal",function(){return new ct(ct.VIEW)});et.addKeyword("localNormal",function(){return new ct(ct.NORMAL)});et.addKeyword("worldNormal",function(){return new ct(ct.WORLD)});var wr=class extends ce{constructor(e){super("v3");this.nodeType="Position";this.scope=e??wr.LOCAL}getType(){switch(this.scope){case wr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case wr.LOCAL:case wr.WORLD:return!1}return!0}generate(e,r,o,i,s){let l;switch(this.scope){case wr.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case wr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case wr.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case wr.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),r)}},Lt=wr;Lt.LOCAL="local",Lt.WORLD="world",Lt.VIEW="view",Lt.PROJECTION="projection";et.addKeyword("position",function(){return new Lt});et.addKeyword("worldPosition",function(){return new Lt(Lt.WORLD)});et.addKeyword("viewPosition",function(){return new Lt(Lt.VIEW)});var tr=class extends ce{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??tr.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case tr.SPHERE:return"v2"}return this.type}generate(e,r){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case tr.VECTOR:{let s=new ct(ct.VIEW),l=e.context.roughness,c=s.build(e,"v3"),p=new Lt(Lt.VIEW).build(e,"v3"),a=l?l.build(e,"f"):void 0,u=`reflect( -normalize( ${p} ), ${c} )`;a&&(u=`normalize( mix( ${u}, ${c}, ${a} * ${a} ) )`);let d=`inverseTransformDirection( ${u}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${d};`),i="reflectVec"):i=d;break}case tr.CUBE:{let s=new tr(tr.VECTOR).build(e,"v3"),l="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${l};`),i="reflectCubeVec"):i=l;break}case tr.SPHERE:{let l="normalize( ( viewMatrix * vec4( "+new tr(tr.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)}},_r=tr;_r.CUBE="cube",_r.SPHERE="sphere",_r.VECTOR="vector";var Da=class extends ce{constructor(e=new Ot,r,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new Vn(this.value,r??new _r(_r.VECTOR),o),this.irradianceNode=new Vn(this.value,new ct(ct.WORLD),new Y(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 vm=require("three");var Ga=class extends Ee{constructor(e=new vm.CubeTexture,r,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=r??new _r,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},p=this.getType(e);return e.addContext(c),this.colorSpace=this.colorSpace??new St(new Ae("",p)),this.colorSpace.fromDecoding(e.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(e,p),e.removeContext(),e.format(l,p,r)}};var bm=["x","y","z","w"],$S=["float","vec2","vec3","vec4"],XS={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},YS={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[]"},Ra=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+`
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 @@
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 p=l.length;c={name:r||"node"+i+p+(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,p=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+`[${p}];
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 at?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,p=new Li({type:e,size:r.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}else{let l=this.inputs.uniforms,c=l.list.length,p=new Li({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:r,needsUpdate:i});return l.list.push(p),l[t].push(p),l[t][p.name]=p,this.uniforms[p.name]=p,p}}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"?et.get(t):t,this.context.include===!1)return t.name;t instanceof $?o=this.includes.functions:t instanceof we?o=this.includes.consts:t instanceof Dn&&(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 $&&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 $S[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 rr.CubeReflectionMapping:case rr.CubeRefractionMapping:return new Ga(r);case rr.CubeUVReflectionMapping:return new Da(new Ot(r));default:return new Ot(r)}else{if(r.isVector2)return new lt(r);if(r.isVector3)return new ft(r);if(r.isVector4)return new Yt(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 XS[t]||t}getFormatByType(t){return YS[t]||t}getUUID(t,e){return e=e!==void 0?e:!0,e&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return bm[t]}getIndexByElement(t){return bm.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=rr.LinearEncoding,e===rr.LinearEncoding&&this.context.gamma&&(e=rr.sRGBEncoding),e}};var Ge=require("three");var Ie=class extends Ee{constructor(e=0,r,o,i){super("c");this.nodeType="Color";this.value=e instanceof tt?e:new tt(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),p=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let a=this.alpha.build(e,"f");e.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${a};`)}return p?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 Ee{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 Va=require("three");var Mo=class extends at{constructor(){super("basic");this.nodeType="Basic";this.color=new Ie(5855577),this.shadingAlpha=new Y(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(Va.UniformsUtils.merge([Va.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
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 @@
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 Ie(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(`
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 $i=require("three");var co=class extends Ee{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 Sm=require("three");var Fn=class extends Ee{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new Sm.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 or=class extends Ee{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 fc=require("three");var nr=class extends Ee{constructor(e=1,r){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(r)?r:r instanceof fc.Vector4?new Array(e).fill(r):new Array(e).fill(new fc.Vector4(0))}};var Ei=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(Ei||{}),yt=function(){let t=new $(`vec3 random3(vec3 c) {
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 @@
157
157
  j *= .125;
158
158
  r.y = fract(512.0*j);
159
159
  return r-0.5;
160
- }`),e=new $(`float simplex3d(vec3 p) {
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 @@
188
188
  d *= w;
189
189
 
190
190
  return dot(d, vec4(52.0));
191
- }`,[t]);e.keywords.F3=new we("float F3 0.3333333"),e.keywords.G3=new we("float G3 0.1666667");let r=new $(`float simplex3dFractal(vec3 m) {
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 @@
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 $("vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}"),i=new $("vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}"),s=new $(`float simplexAshima(vec3 v) {
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 @@
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 $("vec4 mod289(vec4 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}"),c=new $("vec4 perm(vec4 x){return mod289(((x * 34.0) + 1.0) * x);}",[l]),p=new $(`float noise(vec3 p){
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 @@
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 $(`float fbm(vec3 x) {
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 @@
266
266
  a *= 0.5;
267
267
  }
268
268
  return v;
269
- }`,[p]);a.keywords.NUM_OCTAVES=new we(`int NUM_OCTAVES ${5}`);let u=new $("vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}"),d=new $(`float perlin(vec3 P){
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 @@
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,u]);return{simplex:e,simplexFractal:r,simplexAshima:s,fbm:a,perlin:d}}();var Bi=class extends ce{constructor(e,r,o,i,s,l,c,p,a,u,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=p,this.colorC=a,this.colorD=u,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(Ei)[this.noiseType.value],c=new $(`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) {
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 @@
345
345
 
346
346
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
347
347
  return clamp(color, 0.0, 1.0).rgb;
348
- }`,[yt.simplex,yt.simplexFractal,yt.simplexAshima,yt.fbm,yt.perlin]),p=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(p+"("+a.join(",")+")",this.getType(e),r)}};Bi.numOctaves=5;var Di=require("three");var Fa=class extends at{constructor(){super("phong");this.nodeType="Phong";this.color=new Ie(5855577),this.specular=new Ie(1118481),this.shininess=new Y(30),this.shadingAlpha=new Y(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(Di.UniformsUtils.merge([Di.UniformsLib.fog,Di.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(`
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 @@
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:mt.penumbraSize}),this.color===void 0&&(this.color=new Ie(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"),p=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 u=["#include <normal_fragment_begin>",`
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 @@
373
373
  if (dot(normal, faceNormal) < 0.0) {
374
374
  normal *= -1.0;
375
375
  }
376
- `," BlinnPhongMaterial material;"];u.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&&u.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),u.push("material.diffuseColor = diffuseColor;"),u.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),u.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),u.push(`
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&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),a?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
383
- `)}return r}};var mc=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(mc.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)}},Gi=mc;Gi.Nodes=function(){return{fresnel:new $(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
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 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)}},Ri=hc;Ri.Nodes=function(){let e=new $(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
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 @@
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
- }`,[yt.simplex]);return{rainbow:new $(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) {
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 @@
409
409
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
410
410
 
411
411
  return res;
412
- }`,[e])}}();var gc=class extends ce{constructor(e,r,o,i,s,l,c,p,a,u,d,f,m,h,g,v){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=p,this.contourDirection=a,this.positionalLines=u,this.compensation=d,this.resolution=f,this.normalMap=m,this.depthMap=h,this.pixelRatio=g,this.alpha=v,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(`
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 @@
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(gc.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."),""}},Vi=gc;Vi.Nodes=function(){let e=new $(`
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 $(`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) {
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 yc=class extends ce{constructor(e,r,o,i,s,l,c,p){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=p,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(yc.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)}},Fi=yc;Fi.Nodes=function(){let e=new $(`
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 zn=class extends ce{constructor(e,r,o,i,s,l,c,p,a,u,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=p,this.colors=a,this.steps=u,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 $(`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) {
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
- }`,[zn.Nodes.vectorLinearWorldSpaceDepth,zn.Nodes.vectorLinearObjectSpaceDepth,zn.Nodes.vectorSphericalObjectSpaceDepth,zn.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)}},zi=zn;zi.Nodes=function(){let e=new $(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
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 $(`float vectorLinearObjectSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
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 $(`float vectorSphericalWorldSpaceDepth(vec3 origin, float near, float far) {
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 $(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
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 Ui=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 xc=(e=>(e.NOISE="noise",e.MAP="map",e))(xc||{}),vc=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(xc)[this.displacementTypeIndex.value]==="map"&&(this.mat=new Fn(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(xc)[this.displacementTypeIndex.value]){case"map":{o=e.include(vc.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(Ei)[this.noiseFunctionIndex.value],c=new $(`vec3 orthogonal(vec3 v) {
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
- }`),p=new $(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
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
- }`,[yt.simplex,yt.simplexFractal,yt.simplexAshima,yt.fbm,yt.perlin]),a=new $(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) {
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
- }`,[p,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)}},ji=vc;ji.Nodes=function(){let e=new $(`vec3 orthogonal(vec3 v) {
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 $(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
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 $(`vec3 vertexDisplacementMap(vec3 position, vec3 normal, sampler2D tex, vec2 uv, float crop, mat3 mat, float intensity, out vec3 displaced_normal) {
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 bc=class extends ce{constructor(e,r,o,i,s,l,c,p){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=p,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(bc.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)}},ki=bc;ki.Nodes=function(){return{gradient:new $(`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) {
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 Wi=class extends ce{constructor(e,r,o,i,s,l,c,p,a,u){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=p,this.alpha=a,this.mode=u,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(Wi.Nodes.cylindrical);break;case 2:i=e.include(Wi.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 $(`
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(Wi.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)}},Hi=Wi;Hi.Nodes=function(){let e=new $(`
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 $(`vec3 uvTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
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 Sc=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(Sc.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)}},qi=Sc;qi.Nodes=function(){return{customNormal:new $(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
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 mt={normalRenderTarget:new Ot,normalRenderTargetDepth:new Ot,transmissionRenderTarget:new Ot,transmissionSize:new lt(2048,2048),transmissionRenderTargetDepth:new Ot,pixelRatioNode:new Y(1),resolution:new lt,penumbraSize:new or(5,.5)};for(let n of Object.values(mt))n.isRenderGlobal=!0;var Xi=class extends at{constructor(){super("lambert");this.nodeType="Lambert";this.color=new Ie(5855577),this.emissive=new Ie(0),this.emissiveIntensity=new Y(1),this.shadingAlpha=new Y(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($i.UniformsUtils.merge([$i.UniformsLib.fog,$i.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(`
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:mt.penumbraSize}),this.color===void 0&&(this.color=new Ie(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"),p=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 u=["#include <normal_fragment_begin>",`
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>"];u.push(o.code,"vec3 diffuseColor = "+o.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),a&&u.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),u.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&&u.push(i.code,"reflectedLight.directDiffuse += "+i.result+" * "+s.result+";"),u.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),u.push(`
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&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),a?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
998
- `)}return r}};var Un=require("three");var Yi=class extends at{constructor(){super("standard");this.nodeType="Standard";this.color=new Ie(5855577),this.roughness=new Y(.3),this.metalness=new Y(0),this.reflectivity=new Y(.5),this.shadingAlpha=new Y(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(Un.UniformsUtils.merge([Un.UniformsLib.fog,Un.UniformsLib.lights])),Un.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(`
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:mt.penumbraSize});let o={gamma:!0};this.color===void 0&&(this.color=new Ie(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"),p=this.shadingBlend.flow(e,"i"),a=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,u=this.alpha?this.alpha.flow(e,"f"):void 0,d=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=u!==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(`
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+";"),u&&f.push(u.code,"#ifdef ALPHATEST"," if ( "+u.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(`
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}, ${p.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);`),u?f.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${u.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 Ki=require("three");var Qi=class extends at{constructor(){super("toon");this.nodeType="Toon";this.color=new Ie(5855577),this.specular=new Ie(1118481),this.shininess=new Y(30),this.shadingAlpha=new Y(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(Ki.UniformsUtils.merge([Ki.UniformsLib.fog,Ki.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(`
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:mt.penumbraSize}),this.color===void 0&&(this.color=new Ie(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"),p=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>",`
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 u=["#include <normal_fragment_begin>",`
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;"];u.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&&u.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),u.push("material.diffuseColor = diffuseColor;"),u.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),u.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),u.push(`
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&&u.push(p.code,`outgoingLight = spe_blend(outgoingLight, ${p.result}, 1.0, SPE_BLENDING_NORMAL);`),a?u.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):u.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),u.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),r=u.join(`
1086
- `)}return r}};var Xe=require("three");function wm(n,t){switch(n.type){case"fresnel":return ZS(n,t);case"gradient":return JS(n);case"depth":return ew(n);case"normal":return tw(n);case"noise":return rw(n,t);case"rainbow":return ow(n);case"toon":return nw(n,t);case"outline":return iw(n,t);case"transmission":return sw(n,t);case"color":return QS(n,t)}}function KS(n){return{type:n.type}}function Ar(n){let{alpha:t,mode:e}=n;return{...KS(n),alpha:t,mode:e}}function QS(n,t){return{...Ar(n),color:st(n.color,t)}}function ZS(n,t){let{bias:e,scale:r,intensity:o,factor:i,color:s}=n;return{...Ar(n),color:st(s,t),bias:e,scale:r,intensity:o,factor:i}}function JS(n){let{gradientType:t,smooth:e,colors:r,steps:o,angle:i,offset:s,morph:l}=n;return{...Ar(n),gradientType:t,smooth:e,colors:r.map(c=>new Xe.Vector4(c[0],c[1],c[2],c[3])),num:r.length,steps:o,offset:new Xe.Vector2(...s),morph:new Xe.Vector2(...l),angle:i}}function ew(n){let{gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:s,direction:l,colors:c,steps:p,smooth:a}=n;return{...Ar(n),gradientType:t,near:e,far:r,isVector:o,isWorldSpace:i,origin:new Xe.Vector3(...s),direction:l?new Xe.Vector3(...l):new Xe.Vector3(1,0,0),colors:c.map(u=>u!==void 0?new Xe.Vector4(u[0],u[1],u[2],u[3]):new Xe.Vector4(0,0,0,0)),steps:p.slice(0,c.length),smooth:a}}function tw(n){let{cnormal:t}=n;return{...Ar(n),cnormal:new Xe.Vector3(t[0],t[1],t[2])}}function rw(n,t){return{...Ar(n),scale:n.scale,move:n.move,fA:new Xe.Vector2(...n.fA),fB:new Xe.Vector2(...n.fB),size:new Xe.Vector3(...n.size),distortion:new Xe.Vector2(...n.distortion),colorA:st(n.colorA,t),colorB:st(n.colorB,t),colorC:st(n.colorC,t),colorD:st(n.colorD,t),noiseType:n.noiseType}}function ow(n){return{...Ar(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Xe.Vector3(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Xe.Vector3(...n.offset)}}function nw(n,t){return{...Ar(n),positioning:n.positioning,colors:n.colors.map(e=>new Xe.Vector4(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Xe.Vector3(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:st(n.shadowColor,t),offset:new Xe.Vector3(...n.offset)}}function iw(n,t){return{...Ar(n),outlineColor:st(n.outlineColor,t),contourColor:st(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 sw(n,t){return{...Ar(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var uo=class extends tt{};var Am=require("three");var Tm=require("three");var za=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 _c=class extends za{create(t){return URL.createObjectURL(new Blob([t]))}dispose(t,e){URL.revokeObjectURL(e)}},wc;function _m(n){return typeof n=="string"?n:(wc||(wc=new _c),wc.load(n))}var jn=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=_m(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 Tm.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 Eo=class extends jn{};var po=class extends Ee{};var Tc={noise:["noiseType"],texture:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},Ac={depth:["colors"]};function aw(n,t,e){let r=Tc[n.type],o=Ac[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 Nc(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 Eo||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 Nm(n,t,e,r){let o=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0)continue;if(Ic(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 po))switch(o=o||aw(e,i,s),l.constructor){case Ie:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof uo?l.value=new tt(c.r,c.g,c.b,c.a):l.setRGBA(c);break}case Yt:if(typeof s=="string"){let c=t.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof uo?l.value=new tt(c.r,c.g,c.b,c.a):l.value.setRGBA(c.r,c.g,c.b,c.a);break}case lt:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]);break}case ft:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]),l.value.setZ(c[2]);break}case Ot:{Nc(s,t,e);break}case nr:{l.value=s.map(c=>new Am.Vector4(...c));break}default:{l.value=s;break}}}return o}var Pc=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(Pc.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)}},Zi=Pc;Zi.Nodes=function(){return{matcap:new $(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
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 Ji=class extends po{constructor(e,r){super("t");this.image=e;this.wrap=r}get value(){return this.image.getTexture(this.wrap)}};var Im=require("three");var Ua=class extends po{constructor(e){super("v3");this.image=e;this._value=new Im.Vector3}get value(){return this._value.x=this.image.img.width,this._value.y=this.image.img.height,this._value}};var Oc=class extends ce{constructor(e,r,o,i,s,l,c,p,a,u){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=p,this.offset=a,this.alpha=u,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(Oc.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)}},es=Oc;es.Nodes=function(){let e=new $(`float rand(float n) {
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 $(`float hash1(float p) {
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 $(`float valueNoise(vec3 x) {
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 $(`vec3 hash3(vec3 x) {
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 $(`vec3 voronoiNoise(in vec3 x)
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 $(`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) {
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 Om=require("three");function Pm(n,t,e){n.setUvTransform(e[0],e[1],t[0],t[1],0,0,0)}var ja=class extends Fn{constructor(e,r){super(new Om.Matrix3);this.repeat=e;this.offset=r;Pm(this.value,e,r)}updateMatrix(){Pm(this.value,this.repeat,this.offset)}};var Nr=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)Ic(i,this,r)}get type(){return this.data.type}static create(t,e,r,o){if(r.type==="light")return Ir.createLigherLayer(t,e,r,o);if(r.type==="texture"){let i=o.image(r.texture.image),s=new Ji(i,r.texture.wrapping),l=new Ua(i),c=new ja(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 Ge.Vector2(r.size[0],r.size[1]):new Ge.Vector2(100,100)),m=new Y(r.alpha??1),h=new ve(r.mode??0),g=new Hi(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 Ji(i,r.texture.wrapping),l=new Y(r.alpha??1),c=new ve(r.mode??0),p=new Zi(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 Ge.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 ji(l,c,i,s,p);return new ts(t,e,r,{offset:i,scale:s,intensity:l,movement:c,noiseType:p},a)}else throw new Error;else return cw(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:Nm(o.props,r,this,e)}else if(o.path[0]==="texture")return"texture"in e?Nc(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 Nr{constructor(e,r,o,i,s,l,c){super(e,r,o,i);this.color=s;this.mode=l;this.alpha=c}},ts=class extends Nr{constructor(e,r,o,i,s){super(e,r,o,i);this.position=s}},Ir=class extends Nr{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 Mo,p={};else if(o.category==="lambert"){s=new Xi;let a=new Ie(i.color(o.emissive)??0);p={emissive:a},s.emissive=a}else if(o.category==="toon"){s=new Qi;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 Yi;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 Fa;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 Ir(e,r,o,s,p)}};function Cm(n){let t=n instanceof Nr?n.type:n;return t==="texture"||t==="displace_map"||t==="matcap"}function lw(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 Gi(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 Ge.Vector3(0,0,0)),l=new Y(r.noiseStrength??0),c=new Y(r.noiseScale??1),p=new ft(r.offset??new Ge.Vector3(0,0,0)),a=new Y(r.alpha??1),u=new Ri(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 Fi(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 Ge.Vector4(0,0,0,1)),i.value[1]=new Ge.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 Ge.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 Ge.Vector3(0,0,0)),f=new Y(r.alpha??1),m=new es(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 Ge.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 Vi(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 Ge.Vector3),u=new ft(r.direction??new Ge.Vector3),d;r.colors?d=new nr(r.colors.length,r.colors):(d=new nr(2,new Ge.Vector4(0,0,0,1)),d.value[1]=new Ge.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 zi(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 Ge.Vector3(100,100,100)),s=new Y(r.move??1),l=new lt(r.fA??new Ge.Vector2(1.7,9.2)),c=new lt(r.fB??new Ge.Vector2(8.3,2.8)),p=new lt(r.distortion??new Ge.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 Bi(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 Ge.Vector3(1,1,1)),i=new Y(r.alpha??1),s=new ve(r.mode??0),l=new qi(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 Ge.Vector4(0,0,0,1)),s.value[1]=new Ge.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 Ge.Vector2(0,0)),p=new lt(r.morph??new Ge.Vector2(0,0)),a=new Y(r.angle??0),u=new Y(r.alpha??1),d=new ve(r.mode??0),f=new ki(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 cw(n,t,e,r){let o=wm(e,r);return lw(e,n,t,o)}function Ic(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 ka.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=>Nr.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 Ir),this.lightLayer===void 0&&(this.lightLayer=new Ir(0,"",{...dr.defaultData("light","phong"),visible:!1},new Mo,{})),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=Nr.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=Nr.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 Ir);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 Ui(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 Ir);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 Ui(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 ts);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=(Tc[r.type]??[]).map(l=>r[l]),i=(Ac[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 Ra;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>ka.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 uw(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 pw(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 Pr(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?pw(n):uw(n)}function Or(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(Ha.Mesh){constructor(e,r){super(e,r);this.isAbstractMesh=!0;this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new Ha.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=nc[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(),Pr(this),o.getAttribute("randomColor")&&Or(this)}clone(e){let r=this.objectType==="NonParametric"?Object.assign({},this.geometry.userData,{geometry:this.geometry.clone()}):this.geometry.userData,o=Pi(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 Ao(e,e.cloner.parameters),this.add(this.cloner)),this}setFromClonerState(e){e===null?this.cloner=void 0:(this.cloner===void 0&&(this.cloner=new Ao(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(),vr(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)xr(e)&&(e.freeBooleanPointer(),vr(e)&&e.invalidateUpstreamBooleanData())}};var dw=new fo.Vector3(0,0,1),Lm=new fo.Vector3,Mm=new fo.Vector3,Em=new fo.Matrix3,kn=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),Em.getNormalMatrix(this.matrixWorld),Lm.copy(dw).applyMatrix3(Em).normalize(),Mm.setFromMatrixPosition(this.matrixWorld),this.shape.plane.setFromNormalAndCoplanarPoint(Lm,Mm)}clone(e){let r=this.shape.clone(),o=this.material,i=this.geometry.userData,s=dt.create(Object.assign({},i,{shape:r})),l=new kn(s,o).copy(this,e);return l.shape=r,r.update(),l}raycast(e,r){ut.prototype.raycast.call(this,e,r)}};var Cr=(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 Hn=new ze.Vector3,Cc=new ze.Vector3,jr=class extends Cr(Xt(ze.Camera),ga){constructor(e=window.innerWidth,r=window.innerHeight,o=45,i,s=1e5){super();this.objectType="CombinedCamera";this._cameraType="OrthographicCamera";this.targetOffset=bo.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 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(Hn),this.targetOffset=Hn.distanceTo(e)}getTarget(e=new ze.Vector3){return this.getWorldDirection(Cc),this.getWorldPosition(Hn),Cc.multiplyScalar(this.targetOffset),e.copy(Hn).add(Cc),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Hn),Hn.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 hn(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 rs=require("three");var Bm=new rs.Matrix4;var Wa=class extends ut{constructor(e=new rs.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];vr(s)&&s.recomputeBoolean(e===!0,r)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(fm(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 vr(s)&&s.needsTransformForDownstream===!0?(er.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(Bm.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),er.transformMeshSet(s.booleanMeshSetAddress,Bm),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 rs.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,Pr(this),Or(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 Dm=require("three");var Bo=class extends Cr(Xt(Dm.Group),vn){constructor(){super(...arguments);this.objectType="EmptyObject"}static createFromState(e,r){let o=new Bo().fromState(r);return o.uuid=e,o.objectHelper.update(),o}};var Do=require("three");var Wn=class extends Cr(Xt(Do.DirectionalLight),xn){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 Do.CameraHelper(this.shadow.camera);i.visible=!1,this._gizmos.shadowmap=i,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 Do.CameraHelper&&(r.visible=!0)}}hideGizmos(){for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Do.CameraHelper&&(r.visible=!1)}}update(){this.shadow.camera.updateProjectionMatrix();for(let e in this._gizmos){let r=this._gizmos[e];r instanceof Do.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&&um(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 qn=class extends Cr(Xt(xt.PointLight),bn){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 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 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 Gm=new Mt.Vector3,Rm=new Mt.Vector3,Vm=new Mt.Quaternion,$n=class extends Cr(Xt(Mt.SpotLight),xi){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 $n().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),Rm.setFromMatrixPosition(this.matrixWorld),Vm.setFromRotationMatrix(this.matrixWorld),Gm.copy(this.up).applyQuaternion(Vm).negate().multiplyScalar(this.distance),this.target.position.copy(Rm).add(Gm),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 Fm=n=>n.tagName==="VIDEO",Xn=class{static resize(t,e,r){let o=t/e,i;if(!r.image)return;let s=r.image;Fm(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];Cm(s)&&Xn.resizeTextureLayer(t,e,s.uniforms[`f${s.id}_texture`].value)}}static resizeComplex(t,e,r,o){let i=t/e,s,l=r.image;Fm(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 qa=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&&Xn.resizeTextureLayers(this.geometry.userData.parameters.width,this.geometry.userData.parameters.height,this.material)}};var Yn=class extends ut{constructor(e,r){super(e,r);this.objectType="Mesh3D";this.castShadow=!0,this.receiveShadow=!0}};var $a=class extends Yn{constructor(e,r){super(e,r);this.objectType="NonParametric"}};var Um,ns=new Promise(n=>{Um=n}),zm=!1;async function jm(){if(zm)return;let n=await import("./opentype.js");Um(n),zm=!0}var is=class{async load(t,e,r=()=>{}){let{load:o}=await ns;o(t,(i,s)=>{i||!s?r(i??"Something went wrong"):e(s)})}async parse(t){let{parse:e}=await ns;try{return e(t)}catch(r){console.error(r)}}};async function fw(n){return await(await fetch(n)).arrayBuffer()}var mw=new is;async function Lc(n){let t,e,r=!1;if(n.url?(t=await fw(n.url),e=n.url,r=n.url.startsWith("/")):n.data&&(t=n.data.buffer),t){let o=await mw.parse(t);if(o)return{font:o,url:e,intercepted:r,arr:t}}}var Kn=require("three");var km=new Kn.Vector3,Hm=new Kn.Matrix4,Wm=new Kn.Ray;function qm(n){let t=!1;return n.scene.objects.traverse((e,r)=>{r.type==="Mesh"&&r.geometry.type==="TextGeometry"&&(t=!0)}),t}var Xa=class extends ut{constructor(e,r,o){super(new Ln(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),Pr(this),Or(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(Hm.copy(o).invert(),Wm.copy(e.ray).applyMatrix4(Hm),Wm.intersectBox(this.singleBBox,km)){let i=km.applyMatrix4(o),s=e.ray.origin.distanceTo(i);r.push({distance:s,point:i.clone(),object:this})}}};var wt=require("three");var Km=rl(Xm());var Mc;Pa.then(n=>{Mc=n});var Qm=new wt.Matrix4,hw=new wt.Matrix4,gw=new wt.Matrix4,ir=new wt.Box3,mo=new wt.Vector3,yw=new wt.Matrix4,xw=new wt.Matrix4;var Qn=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 Qn(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,Pr(this),Or(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,Km.SVD)(r),l=Qm.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=hw.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=gw.copy(c).transpose();this.shearScale=yw.makeScale(s[0],s[1],s[2]).multiply(p).premultiply(c),this.shearScaleInv=xw.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&&(Mc.free_bvh(this.subdivPointer),Mc.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,Ym(this.originalGeometry.attributes,...this.geometry.userData.scale),this.originalGeometry.attributes.position.needsUpdate=!0,this.originalGeometry.attributes.normal.needsUpdate=!0,this.subdividedGeometry&&(Ym(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 Ym(n,t,e,r){let o=n.position.array,i=n.normal.array,s=Qm.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 Zm(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 vw(n,t){if(Array.isArray(n.material))for(let e of n.material)Zm(e,t);else{let e=n.material;Zm(e,t)}n.objectType==="SubdivObject"&&t.flatShading!==void 0&&(n.material.flatShading=!1,n.smoothShading=!t.flatShading,n.updateMesh())}function Jm(n,t,e){let r;if(t.geometry.type==="SubdivGeometry")r=Qn.createFromState(n,t,e);else{let o=t.geometry.type==="BooleanGeometry"?new ho.BufferGeometry:Oa(t.geometry,e),i="materials"in t?t.materials.map(s=>e.material(s)):e.material(t.material);Xo.is2DParametricMesh(o.userData.type)?r=new qa(o,i):o?.userData.type==="VectorGeometry"?r=new kn(o,i):t.geometry.type==="NonParametricGeometry"?r=new $a(o,i):t.geometry.type==="BooleanGeometry"?(r=new Wa(void 0,i),r.booleanOp=t.geometry.operation,t.geometry.phongAngle!==void 0&&(r.phongAngle=t.geometry.phongAngle)):r=new Yn(o,i),r.uuid=n,r.fromState(t,e)}return vw(r,t),r}function eh(n,t,e){return t.type==="Mesh"?t.geometry.type==="TextGeometry"?new Xa(n,t,e):Jm(n,t,e):t.type==="Empty"?Bo.createFromState(n,t):t.type==="PointLight"?qn.createFromState(n,t,e):t.type==="SpotLight"?$n.createFromState(n,t,e):t.type==="DirectionalLight"?Wn.createFromState(n,t,e):qo.is(t.type)?jr.createFromState(n,t):(console.error(t),new Bo)}var Go=class extends Ft{};var kr=require("three");function th(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,Or(n),Pr(n)),r.length===0&&o.length===0&&n.layers.set(0),e}function rh(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 oh(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof kr.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)th(e,e.material[r])&&(t=!0);else th(e,e.material)&&(t=!0)}),t}function nh(n){let t=!1;return n.traverseEntity(e=>{if(e instanceof kr.Mesh)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)rh(e,e.material[r])&&(t=!0);else rh(e,e.material)&&(t=!0)}),t}function ih(n){"material"in n&&Sw(n.material),"geometry"in n&&n.geometry.dispose()}function Sw(n){Fd(n).forEach(t=>{t instanceof Go||t.dispose()})}var ww=new kr.Raycaster,_w=new kr.Matrix4,Tw=new kr.Ray;function sh(n,t,e){let r=n.cloner;if(r)for(let o of r.children){let i=_w.copy(o.matrixWorld).invert(),s=Tw.copy(t.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=ww;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 ah=new Lr.Vector3,Ec=class extends Ea(Lr.Scene){constructor(e,r){super();this.objectType="Scene";this.backupFog=new Lr.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 Lr.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=nh(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=oh(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 jr&&this.switchActiveCamera(o)}this.traverse(o=>{vr(o)&&o.recomputeBoolean()})}clearScene(){this.traverseEntity(e=>{ih(e)});for(let e of this.children)Sr(e)&&e.removeFromParent()}resetAfterClear(e,r){this.init(e,r)}createPersonalCamera(){let e=jr.createFromState(Ec.PERSONAL_CAMERA_ID,{...aa.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)Sr(s)&&!s.raycastLock&&s.visible&&((xr(s)||La(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,r),sh(s,e,r)),o(s))};return o(this),r}traverseEntity(e){for(let r of this.children)Sr(r)&&r.traverseEntity(e)}traverseVisibleEntity(e){for(let r of this.children)Sr(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){cm(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=eh(e,r,s);return l&&(this.entityByUuid[e]=l,i.add(l),vr(i)&&xr(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 Lr.Box3;return o.setFromPoints(r),o.getCenter(ah),ah}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})})}},ss=Ec;ss.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var ph=rl(lh());var ch=new Map;function uh(n){if(typeof n=="string")return n;let t=ch.get(n);return t||(t={url:URL.createObjectURL(new Blob([n]))},ch.set(n,t)),t.url}var Zn=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:uh(t),format:"wav"},this.sound=new ph.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"),Qa=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 Jn=require("three");var dh=require("three/examples/jsm/loaders/DRACOLoader.js");var go;function Aw(){return go||(go=new dh.DRACOLoader,go.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),go.decoderPending}async function Nw(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 fh(n,t){let[e,r]=ll(Ps.deserialize(new Uint8Array(n)));qd(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 Aw();for(let i of o){let s=await Nw(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 Iw(n,t){return t.state.glyphIndex===n||t.state.fina===n||t.state.medi===n||t.state.init===n}var Za=class{constructor(t,e){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=Lc(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=Lc(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 ns,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(Iw(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),p=e.horizontalAlign===1?c:0,a=this.computeSpaceWidthForLine(t,0,e),u=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 w=t[x],S={features:{liga:!0}},b=[];try{b=r.stringToGlyphs(w,S)}catch(_){console.warn(_)}u=this.getLineInitialOffsetX(s[x],l,e.horizontalAlign,w,c);let I=[];try{I=await this.reverseLigaturesTable(r,w,b)}catch(_){console.warn(_)}a=this.computeSpaceWidthForLine(t,x,e);for(let _=0;_<b.length;_++){let y=b[_],P=y.index===0?`
1336
- `:y.unicode?String.fromCharCode(y.unicode):void 0,A=I[_],O=0,T=0;_===0&&e.horizontalAlign===2&&y.leftSideBearing!==void 0&&(T=-y.leftSideBearing*o),g&&(O=r.getKerningValue(y,g)*o),u+=T+O;let L=0;if(P===`
1337
- `)L=p;else if(P===" ")L=a;else{let B=this.createPath(y,o,u,d,e);B&&(L=B.offsetX-(O+T),f.push(B.path))}if(A.replacements.length===1)h[x].push([u,d]),m[x].push(L);else{let B=A.replacements.map(ae=>(r.glyphs.get(ae).advanceWidth??0)*o),j=B.reduce((ae,U)=>ae+=U,0),te=B.map(ae=>ae/j),ne=u;for(let ae=0;ae<te.length;ae++){let U=L*te[ae];h[x].push([ne,d]),m[x].push(U),ne+=U}}u+=L,g=y}d-=i}let v=[];for(let x=0,w=f.length;x<w;x++)v.push(...f[x].toShapes());return{shapes:v,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,p=-this.ascender*o-c/2;return i===3?-(r-s-p):i===2?-(r*.5-s*.5-p):p}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 Qa,c=(t.advanceWidth??1)*e;if(t)for(let p of s.commands){let a=l.currentPath?.currentPoint;if(!(a&&p.type!=="Z"&&a.x===p.x&&-a.y===p.y))switch(p.type){case"M":l.moveTo(p.x,-p.y);break;case"L":l.lineTo(p.x,-p.y);break;case"Q":l.quadraticCurveTo(p.x1,-p.y1,p.x,-p.y);break;case"C":l.bezierCurveTo(p.x1,-p.y1,p.x2,-p.y2,p.x,-p.y);break}}return l.subPaths.forEach(p=>{let a=Pw(p.curves);a!==void 0&&p.currentPoint.distanceTo(a)>0&&p.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 Pw(n){if(n.length){let t=n[0];if(t instanceof Jn.LineCurve)return t.v1;if(t instanceof Jn.CubicBezierCurve||t instanceof Jn.QuadraticBezierCurve)return t.v0}}var as=class{constructor(t,e={}){this.deletedMaterial=new Go(Rt.defaultTwoLayerData("phong"),this);this.deletedImage=new Eo(da.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 Go(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 Ft(t,this)}getMaterials(){return this.materials}addImage(t,e){return this.images[t]?(this.images[t].updateSrc(e.data),!0):(this.images[t]=new Eo(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 jn(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 uo(e.r,e.g,e.b,e.a):this.colors[t]=new uo(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 tt(0,0,0,0))}else return"a"in t?new tt(t.r,t.g,t.b,t.a):new tt(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 Zn)return e;{let r=new Zn({src:e});return this.audios[t]=r,r}}deleteAudio(t){this.audios[t]&&delete this.audios[t]}addFont(t,e){this.fonts[t]=new Za(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 Zn&&e.dispose()}),this.audios={}}},S4=new as(ca.emptyData());var Ow=require("three"),Cw=require("three/examples/jsm/utils/BufferGeometryUtils.js");function mh(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 ls=require("three");function hh(n){let t=new Set;return n.traverse(e=>{if(xr(e))if(je(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(Lw(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new ls.Color,specularColor:new ls.Color});let o=0;e.onBeforeCompile=(i,s)=>{r&&r(i,s),i.uniforms=Object.assign({},ls.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 Mw(e)||(e.onBeforeCompile=(o,i)=>{r&&r(o,i),e.transparent=!1})}),n}function Lw(n){return n.getLayersOfType("transmission").length>0}function Mw(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 gh(n){return n.traverse(t=>{if(t.type==="Camera"){let e=t;e.type=e.cameraType}}),n}function yh(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 xh=require("three/examples/jsm/utils/BufferGeometryUtils.js");function vh(n){let t=[];return n.traverse(e=>{e instanceof Ao&&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&&mh(c),c}),s=(0,xh.mergeBufferGeometries)(e.parameters.hideBase?i:[r.geometry,...i]);r.geometry=s,r.remove(e),r.cloner=void 0}),n}function bh(n){return n.traverse(t=>{t.matrixAutoUpdate=!0}),n}function Sh(n){Object.values(n.shared.materials).forEach(t=>{Bc(t)}),n.scene.objects.traverse((t,e)=>{"material"in e?Bc(e.material):"materials"in e&&e.materials.forEach(r=>{Bc(r)})})}function Bc(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 wh="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Ja=class extends el.Loader{load(t,e,r,o=console.error){let i=new el.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(wh+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(wh),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 fh(t,Sh);qm(e)&&await jm();let r=new as(e.shared);Object.values(r.getMaterials()).forEach(s=>Object.assign(s,{isAsset:!0}));let o=new ss(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&&lm(s)&&Object.assign(s,{makeDefault:!0})}return o=vh(o),o=hh(o),o=gh(o),o=yh(o),o=bh(o),o}};
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}};