@splinetool/loader 0.9.198 → 0.9.199

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 Zh=Object.create;var qi=Object.defineProperty;var Jh=Object.getOwnPropertyDescriptor;var _h=Object.getOwnPropertyNames;var $h=Object.getPrototypeOf,Ay=Object.prototype.hasOwnProperty;var Wa=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Lc=(o,t)=>{for(var A in t)qi(o,A,{get:t[A],enumerable:!0})},Ec=(o,t,A,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of _h(t))!Ay.call(o,r)&&r!==A&&qi(o,r,{get:()=>t[r],enumerable:!(e=Jh(t,r))||e.enumerable});return o};var Qi=(o,t,A)=>(A=o!=null?Zh($h(o)):{},Ec(t||!o||!o.__esModule?qi(A,"default",{value:o,enumerable:!0}):A,o)),ey=o=>Ec(qi({},"__esModule",{value:!0}),o);var $p=Wa((xl,_p)=>{(function(o,t){typeof xl=="object"?_p.exports=t():typeof define=="function"&&define.amd?define(t):o.Alea=t()})(xl,function(){"use strict";return o.importState=function(A){var e=new o;return e.importState(A),e},o;function o(){return function(A){var e=0,r=0,n=0,i=1;A.length==0&&(A=[+new Date]);var a=t();e=a(" "),r=a(" "),n=a(" ");for(var l=0;l<A.length;l++)e-=a(A[l]),e<0&&(e+=1),r-=a(A[l]),r<0&&(r+=1),n-=a(A[l]),n<0&&(n+=1);a=null;var d=function(){var s=2091639*e+i*23283064365386963e-26;return e=r,r=n,n=s-(i=s|0)};return d.next=d,d.uint32=function(){return d()*4294967296},d.fract53=function(){return d()+(d()*2097152|0)*11102230246251565e-32},d.version="Alea 0.9",d.args=A,d.exportState=function(){return[e,r,n,i]},d.importState=function(s){e=+s[0]||0,r=+s[1]||0,n=+s[2]||0,i=+s[3]||0},d}(Array.prototype.slice.call(arguments))}function t(){var A=4022871197,e=function(r){r=r.toString();for(var n=0;n<r.length;n++){A+=r.charCodeAt(n);var i=.02519603282416938*A;A=i>>>0,i-=A,i*=A,A=i>>>0,i-=A,A+=i*4294967296}return(A>>>0)*23283064365386963e-26};return e.version="Mash 0.9",e}})});var nf=Wa((Xs,of)=>{(function(o,t){typeof Xs=="object"&&typeof of<"u"?t(Xs):typeof define=="function"&&define.amd?define(["exports"],t):t((o=typeof globalThis<"u"?globalThis:o||self).SVDJS={})})(Xs,function(o){"use strict";o.SVD=function(t,A,e,r,n){if(A=A===void 0||A,e=e===void 0||e,n=1e-64/(r=r||Math.pow(2,-52)),!t)throw new TypeError("Matrix a is not defined");var i,a,l,d,s,c,u,p,f,m,h,y,x=t[0].length,S=t.length;if(S<x)throw new TypeError("Invalid matrix: m < n");for(var v=[],b=[],P=[],w=A==="f"?S:x,g=m=u=0;g<S;g++)b[g]=new Array(w).fill(0);for(g=0;g<x;g++)P[g]=new Array(x).fill(0);var N,O=new Array(x).fill(0);for(g=0;g<S;g++)for(i=0;i<x;i++)b[g][i]=t[g][i];for(g=0;g<x;g++){for(v[g]=u,f=0,l=g+1,i=g;i<S;i++)f+=Math.pow(b[i][g],2);if(f<n)u=0;else for(p=(c=b[g][g])*(u=c<0?Math.sqrt(f):-Math.sqrt(f))-f,b[g][g]=c-u,i=l;i<x;i++){for(f=0,a=g;a<S;a++)f+=b[a][g]*b[a][i];for(c=f/p,a=g;a<S;a++)b[a][i]=b[a][i]+c*b[a][g]}for(O[g]=u,f=0,i=l;i<x;i++)f+=Math.pow(b[g][i],2);if(f<n)u=0;else{for(p=(c=b[g][g+1])*(u=c<0?Math.sqrt(f):-Math.sqrt(f))-f,b[g][g+1]=c-u,i=l;i<x;i++)v[i]=b[g][i]/p;for(i=l;i<S;i++){for(f=0,a=l;a<x;a++)f+=b[i][a]*b[g][a];for(a=l;a<x;a++)b[i][a]=b[i][a]+f*v[a]}}m<(h=Math.abs(O[g])+Math.abs(v[g]))&&(m=h)}if(e)for(g=x-1;0<=g;g--){if(u!==0){for(p=b[g][g+1]*u,i=l;i<x;i++)P[i][g]=b[g][i]/p;for(i=l;i<x;i++){for(f=0,a=l;a<x;a++)f+=b[g][a]*P[a][i];for(a=l;a<x;a++)P[a][i]=P[a][i]+f*P[a][g]}}for(i=l;i<x;i++)P[g][i]=0,P[i][g]=0;P[g][g]=1,u=v[g],l=g}if(A){if(A==="f")for(g=x;g<S;g++){for(i=x;i<S;i++)b[g][i]=0;b[g][g]=1}for(g=x-1;0<=g;g--){for(l=g+1,u=O[g],i=l;i<w;i++)b[g][i]=0;if(u!==0){for(p=b[g][g]*u,i=l;i<w;i++){for(f=0,a=l;a<S;a++)f+=b[a][g]*b[a][i];for(c=f/p,a=g;a<S;a++)b[a][i]=b[a][i]+c*b[a][g]}for(i=g;i<S;i++)b[i][g]=b[i][g]/u}else for(i=g;i<S;i++)b[i][g]=0;b[g][g]=b[g][g]+1}}for(r*=m,a=x-1;0<=a;a--)for(var C=0;C<50;C++){for(N=!1,l=a;0<=l;l--){if(Math.abs(v[l])<=r){N=!0;break}if(Math.abs(O[l-1])<=r)break}if(!N){for(s=0,d=l-(f=1),g=l;g<a+1&&(c=f*v[g],v[g]=s*v[g],!(Math.abs(c)<=r));g++)if(u=O[g],O[g]=Math.sqrt(c*c+u*u),s=u/(p=O[g]),f=-c/p,A)for(i=0;i<S;i++)h=b[i][d],y=b[i][g],b[i][d]=h*s+y*f,b[i][g]=-h*f+y*s}if(y=O[a],l===a){if(y<0&&(O[a]=-y,e))for(i=0;i<x;i++)P[i][a]=-P[i][a];break}for(m=O[l],c=(((h=O[a-1])-y)*(h+y)+((u=v[a-1])-(p=v[a]))*(u+p))/(2*p*h),u=Math.sqrt(c*c+1),c=((m-y)*(m+y)+p*(h/(c<0?c-u:c+u)-p))/m,g=l+(f=s=1);g<a+1;g++){if(u=v[g],h=O[g],p=f*u,u*=s,y=Math.sqrt(c*c+p*p),c=m*(s=c/(v[g-1]=y))+u*(f=p/y),u=-m*f+u*s,p=h*f,h*=s,e)for(i=0;i<x;i++)m=P[i][g-1],y=P[i][g],P[i][g-1]=m*s+y*f,P[i][g]=-m*f+y*s;if(y=Math.sqrt(c*c+p*p),c=(s=c/(O[g-1]=y))*u+(f=p/y)*h,m=-f*u+s*h,A)for(i=0;i<S;i++)h=b[i][g-1],y=b[i][g],b[i][g-1]=h*s+y*f,b[i][g]=-h*f+y*s}v[l]=0,v[a]=c,O[a]=m}for(g=0;g<x;g++)O[g]<r&&(O[g]=0);return{u:b,q:O,v:P}},o.VERSION="1.1.1",Object.defineProperty(o,"__esModule",{value:!0})})});var Rm=Wa(ba=>{(function(){"use strict";var o=function(){this.init()};o.prototype={init:function(){var s=this||t;return s._counter=1e3,s._html5AudioPool=[],s.html5PoolSize=10,s._codecs={},s._howls=[],s._muted=!1,s._volume=1,s._canPlayEvent="canplaythrough",s._navigator=typeof window<"u"&&window.navigator?window.navigator:null,s.masterGain=null,s.noAudio=!1,s.usingWebAudio=!0,s.autoSuspend=!0,s.ctx=null,s.autoUnlock=!0,s._setup(),s},volume:function(s){var c=this||t;if(s=parseFloat(s),c.ctx||d(),typeof s<"u"&&s>=0&&s<=1){if(c._volume=s,c._muted)return c;c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s,t.ctx.currentTime);for(var u=0;u<c._howls.length;u++)if(!c._howls[u]._webAudio)for(var p=c._howls[u]._getSoundIds(),f=0;f<p.length;f++){var m=c._howls[u]._soundById(p[f]);m&&m._node&&(m._node.volume=m._volume*s)}return c}return c._volume},mute:function(s){var c=this||t;c.ctx||d(),c._muted=s,c.usingWebAudio&&c.masterGain.gain.setValueAtTime(s?0:c._volume,t.ctx.currentTime);for(var u=0;u<c._howls.length;u++)if(!c._howls[u]._webAudio)for(var p=c._howls[u]._getSoundIds(),f=0;f<p.length;f++){var m=c._howls[u]._soundById(p[f]);m&&m._node&&(m._node.muted=s?!0:m._muted)}return c},stop:function(){for(var s=this||t,c=0;c<s._howls.length;c++)s._howls[c].stop();return s},unload:function(){for(var s=this||t,c=s._howls.length-1;c>=0;c--)s._howls[c].unload();return s.usingWebAudio&&s.ctx&&typeof s.ctx.close<"u"&&(s.ctx.close(),s.ctx=null,d()),s},codecs:function(s){return(this||t)._codecs[s.replace(/^x-/,"")]},_setup:function(){var s=this||t;if(s.state=s.ctx&&s.ctx.state||"suspended",s._autoSuspend(),!s.usingWebAudio)if(typeof Audio<"u")try{var c=new Audio;typeof c.oncanplaythrough>"u"&&(s._canPlayEvent="canplay")}catch{s.noAudio=!0}else s.noAudio=!0;try{var c=new Audio;c.muted&&(s.noAudio=!0)}catch{}return s.noAudio||s._setupCodecs(),s},_setupCodecs:function(){var s=this||t,c=null;try{c=typeof Audio<"u"?new Audio:null}catch{return s}if(!c||typeof c.canPlayType!="function")return s;var u=c.canPlayType("audio/mpeg;").replace(/^no$/,""),p=s._navigator?s._navigator.userAgent:"",f=p.match(/OPR\/([0-6].)/g),m=f&&parseInt(f[0].split("/")[1],10)<33,h=p.indexOf("Safari")!==-1&&p.indexOf("Chrome")===-1,y=p.match(/Version\/(.*?) /),x=h&&y&&parseInt(y[1],10)<15;return s._codecs={mp3:!!(!m&&(u||c.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!u,opus:!!c.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!c.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(c.canPlayType('audio/wav; codecs="1"')||c.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!c.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!c.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(c.canPlayType("audio/x-m4a;")||c.canPlayType("audio/m4a;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(c.canPlayType("audio/x-m4b;")||c.canPlayType("audio/m4b;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(c.canPlayType("audio/x-mp4;")||c.canPlayType("audio/mp4;")||c.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!x&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!x&&c.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!c.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(c.canPlayType("audio/x-flac;")||c.canPlayType("audio/flac;")).replace(/^no$/,"")},s},_unlockAudio:function(){var s=this||t;if(!(s._audioUnlocked||!s.ctx)){s._audioUnlocked=!1,s.autoUnlock=!1,!s._mobileUnloaded&&s.ctx.sampleRate!==44100&&(s._mobileUnloaded=!0,s.unload()),s._scratchBuffer=s.ctx.createBuffer(1,1,22050);var c=function(u){for(;s._html5AudioPool.length<s.html5PoolSize;)try{var p=new Audio;p._unlocked=!0,s._releaseHtml5Audio(p)}catch{s.noAudio=!0;break}for(var f=0;f<s._howls.length;f++)if(!s._howls[f]._webAudio)for(var m=s._howls[f]._getSoundIds(),h=0;h<m.length;h++){var y=s._howls[f]._soundById(m[h]);y&&y._node&&!y._node._unlocked&&(y._node._unlocked=!0,y._node.load())}s._autoResume();var x=s.ctx.createBufferSource();x.buffer=s._scratchBuffer,x.connect(s.ctx.destination),typeof x.start>"u"?x.noteOn(0):x.start(0),typeof s.ctx.resume=="function"&&s.ctx.resume(),x.onended=function(){x.disconnect(0),s._audioUnlocked=!0,document.removeEventListener("touchstart",c,!0),document.removeEventListener("touchend",c,!0),document.removeEventListener("click",c,!0),document.removeEventListener("keydown",c,!0);for(var S=0;S<s._howls.length;S++)s._howls[S]._emit("unlock")}};return document.addEventListener("touchstart",c,!0),document.addEventListener("touchend",c,!0),document.addEventListener("click",c,!0),document.addEventListener("keydown",c,!0),s}},_obtainHtml5Audio:function(){var s=this||t;if(s._html5AudioPool.length)return s._html5AudioPool.pop();var c=new Audio().play();return c&&typeof Promise<"u"&&(c instanceof Promise||typeof c.then=="function")&&c.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(s){var c=this||t;return s._unlocked&&c._html5AudioPool.push(s),c},_autoSuspend:function(){var s=this;if(!(!s.autoSuspend||!s.ctx||typeof s.ctx.suspend>"u"||!t.usingWebAudio)){for(var c=0;c<s._howls.length;c++)if(s._howls[c]._webAudio){for(var u=0;u<s._howls[c]._sounds.length;u++)if(!s._howls[c]._sounds[u]._paused)return s}return s._suspendTimer&&clearTimeout(s._suspendTimer),s._suspendTimer=setTimeout(function(){if(!!s.autoSuspend){s._suspendTimer=null,s.state="suspending";var p=function(){s.state="suspended",s._resumeAfterSuspend&&(delete s._resumeAfterSuspend,s._autoResume())};s.ctx.suspend().then(p,p)}},3e4),s}},_autoResume:function(){var s=this;if(!(!s.ctx||typeof s.ctx.resume>"u"||!t.usingWebAudio))return s.state==="running"&&s.ctx.state!=="interrupted"&&s._suspendTimer?(clearTimeout(s._suspendTimer),s._suspendTimer=null):s.state==="suspended"||s.state==="running"&&s.ctx.state==="interrupted"?(s.ctx.resume().then(function(){s.state="running";for(var c=0;c<s._howls.length;c++)s._howls[c]._emit("resume")}),s._suspendTimer&&(clearTimeout(s._suspendTimer),s._suspendTimer=null)):s.state==="suspending"&&(s._resumeAfterSuspend=!0),s}};var t=new o,A=function(s){var c=this;if(!s.src||s.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}c.init(s)};A.prototype={init:function(s){var c=this;return t.ctx||d(),c._autoplay=s.autoplay||!1,c._format=typeof s.format!="string"?s.format:[s.format],c._html5=s.html5||!1,c._muted=s.mute||!1,c._loop=s.loop||!1,c._pool=s.pool||5,c._preload=typeof s.preload=="boolean"||s.preload==="metadata"?s.preload:!0,c._rate=s.rate||1,c._sprite=s.sprite||{},c._src=typeof s.src!="string"?s.src:[s.src],c._volume=s.volume!==void 0?s.volume:1,c._xhr={method:s.xhr&&s.xhr.method?s.xhr.method:"GET",headers:s.xhr&&s.xhr.headers?s.xhr.headers:null,withCredentials:s.xhr&&s.xhr.withCredentials?s.xhr.withCredentials:!1},c._duration=0,c._state="unloaded",c._sounds=[],c._endTimers={},c._queue=[],c._playLock=!1,c._onend=s.onend?[{fn:s.onend}]:[],c._onfade=s.onfade?[{fn:s.onfade}]:[],c._onload=s.onload?[{fn:s.onload}]:[],c._onloaderror=s.onloaderror?[{fn:s.onloaderror}]:[],c._onplayerror=s.onplayerror?[{fn:s.onplayerror}]:[],c._onpause=s.onpause?[{fn:s.onpause}]:[],c._onplay=s.onplay?[{fn:s.onplay}]:[],c._onstop=s.onstop?[{fn:s.onstop}]:[],c._onmute=s.onmute?[{fn:s.onmute}]:[],c._onvolume=s.onvolume?[{fn:s.onvolume}]:[],c._onrate=s.onrate?[{fn:s.onrate}]:[],c._onseek=s.onseek?[{fn:s.onseek}]:[],c._onunlock=s.onunlock?[{fn:s.onunlock}]:[],c._onresume=[],c._webAudio=t.usingWebAudio&&!c._html5,typeof t.ctx<"u"&&t.ctx&&t.autoUnlock&&t._unlockAudio(),t._howls.push(c),c._autoplay&&c._queue.push({event:"play",action:function(){c.play()}}),c._preload&&c._preload!=="none"&&c.load(),c},load:function(){var s=this,c=null;if(t.noAudio){s._emit("loaderror",null,"No audio support.");return}typeof s._src=="string"&&(s._src=[s._src]);for(var u=0;u<s._src.length;u++){var p,f;if(s._format&&s._format[u])p=s._format[u];else{if(f=s._src[u],typeof f!="string"){s._emit("loaderror",null,"Non-string found in selected audio sources - ignoring.");continue}p=/^data:audio\/([^;,]+);/i.exec(f),p||(p=/\.([^.]+)$/.exec(f.split("?",1)[0])),p&&(p=p[1].toLowerCase())}if(p||console.warn('No file extension was found. Consider using the "format" property or specify an extension.'),p&&t.codecs(p)){c=s._src[u];break}}if(!c){s._emit("loaderror",null,"No codec support for selected audio sources.");return}return s._src=c,s._state="loading",window.location.protocol==="https:"&&c.slice(0,5)==="http:"&&(s._html5=!0,s._webAudio=!1),new e(s),s._webAudio&&n(s),s},play:function(s,c){var u=this,p=null;if(typeof s=="number")p=s,s=null;else{if(typeof s=="string"&&u._state==="loaded"&&!u._sprite[s])return null;if(typeof s>"u"&&(s="__default",!u._playLock)){for(var f=0,m=0;m<u._sounds.length;m++)u._sounds[m]._paused&&!u._sounds[m]._ended&&(f++,p=u._sounds[m]._id);f===1?s=null:p=null}}var h=p?u._soundById(p):u._inactiveSound();if(!h)return null;if(p&&!s&&(s=h._sprite||"__default"),u._state!=="loaded"){h._sprite=s,h._ended=!1;var y=h._id;return u._queue.push({event:"play",action:function(){u.play(y)}}),y}if(p&&!h._paused)return c||u._loadQueue("play"),h._id;u._webAudio&&t._autoResume();var x=Math.max(0,h._seek>0?h._seek:u._sprite[s][0]/1e3),S=Math.max(0,(u._sprite[s][0]+u._sprite[s][1])/1e3-x),v=S*1e3/Math.abs(h._rate),b=u._sprite[s][0]/1e3,P=(u._sprite[s][0]+u._sprite[s][1])/1e3;h._sprite=s,h._ended=!1;var w=function(){h._paused=!1,h._seek=x,h._start=b,h._stop=P,h._loop=!!(h._loop||u._sprite[s][2])};if(x>=P){u._ended(h);return}var g=h._node;if(u._webAudio){var N=function(){u._playLock=!1,w(),u._refreshBuffer(h);var L=h._muted||u._muted?0:h._volume;g.gain.setValueAtTime(L,t.ctx.currentTime),h._playStart=t.ctx.currentTime,typeof g.bufferSource.start>"u"?h._loop?g.bufferSource.noteGrainOn(0,x,86400):g.bufferSource.noteGrainOn(0,x,S):h._loop?g.bufferSource.start(0,x,86400):g.bufferSource.start(0,x,S),v!==1/0&&(u._endTimers[h._id]=setTimeout(u._ended.bind(u,h),v)),c||setTimeout(function(){u._emit("play",h._id),u._loadQueue()},0)};t.state==="running"&&t.ctx.state!=="interrupted"?N():(u._playLock=!0,u.once("resume",N),u._clearTimer(h._id))}else{var O=function(){g.currentTime=x,g.muted=h._muted||u._muted||t._muted||g.muted,g.volume=h._volume*t.volume(),g.playbackRate=h._rate;try{var L=g.play();if(L&&typeof Promise<"u"&&(L instanceof Promise||typeof L.then=="function")?(u._playLock=!0,w(),L.then(function(){u._playLock=!1,g._unlocked=!0,c?u._loadQueue():u._emit("play",h._id)}).catch(function(){u._playLock=!1,u._emit("playerror",h._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."),h._ended=!0,h._paused=!0})):c||(u._playLock=!1,w(),u._emit("play",h._id)),g.playbackRate=h._rate,g.paused){u._emit("playerror",h._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}s!=="__default"||h._loop?u._endTimers[h._id]=setTimeout(u._ended.bind(u,h),v):(u._endTimers[h._id]=function(){u._ended(h),g.removeEventListener("ended",u._endTimers[h._id],!1)},g.addEventListener("ended",u._endTimers[h._id],!1))}catch(M){u._emit("playerror",h._id,M)}};g.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(g.src=u._src,g.load());var C=window&&window.ejecta||!g.readyState&&t._navigator.isCocoonJS;if(g.readyState>=3||C)O();else{u._playLock=!0,u._state="loading";var T=function(){u._state="loaded",O(),g.removeEventListener(t._canPlayEvent,T,!1)};g.addEventListener(t._canPlayEvent,T,!1),u._clearTimer(h._id)}}return h._id},pause:function(s){var c=this;if(c._state!=="loaded"||c._playLock)return c._queue.push({event:"pause",action:function(){c.pause(s)}}),c;for(var u=c._getSoundIds(s),p=0;p<u.length;p++){c._clearTimer(u[p]);var f=c._soundById(u[p]);if(f&&!f._paused&&(f._seek=c.seek(u[p]),f._rateSeek=0,f._paused=!0,c._stopFade(u[p]),f._node))if(c._webAudio){if(!f._node.bufferSource)continue;typeof f._node.bufferSource.stop>"u"?f._node.bufferSource.noteOff(0):f._node.bufferSource.stop(0),c._cleanBuffer(f._node)}else(!isNaN(f._node.duration)||f._node.duration===1/0)&&f._node.pause();arguments[1]||c._emit("pause",f?f._id:null)}return c},stop:function(s,c){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"stop",action:function(){u.stop(s)}}),u;for(var p=u._getSoundIds(s),f=0;f<p.length;f++){u._clearTimer(p[f]);var m=u._soundById(p[f]);m&&(m._seek=m._start||0,m._rateSeek=0,m._paused=!0,m._ended=!0,u._stopFade(p[f]),m._node&&(u._webAudio?m._node.bufferSource&&(typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),u._cleanBuffer(m._node)):(!isNaN(m._node.duration)||m._node.duration===1/0)&&(m._node.currentTime=m._start||0,m._node.pause(),m._node.duration===1/0&&u._clearSound(m._node))),c||u._emit("stop",m._id))}return u},mute:function(s,c){var u=this;if(u._state!=="loaded"||u._playLock)return u._queue.push({event:"mute",action:function(){u.mute(s,c)}}),u;if(typeof c>"u")if(typeof s=="boolean")u._muted=s;else return u._muted;for(var p=u._getSoundIds(c),f=0;f<p.length;f++){var m=u._soundById(p[f]);m&&(m._muted=s,m._interval&&u._stopFade(m._id),u._webAudio&&m._node?m._node.gain.setValueAtTime(s?0:m._volume,t.ctx.currentTime):m._node&&(m._node.muted=t._muted?!0:s),u._emit("mute",m._id))}return u},volume:function(){var s=this,c=arguments,u,p;if(c.length===0)return s._volume;if(c.length===1||c.length===2&&typeof c[1]>"u"){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):u=parseFloat(c[0])}else c.length>=2&&(u=parseFloat(c[0]),p=parseInt(c[1],10));var h;if(typeof u<"u"&&u>=0&&u<=1){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"volume",action:function(){s.volume.apply(s,c)}}),s;typeof p>"u"&&(s._volume=u),p=s._getSoundIds(p);for(var y=0;y<p.length;y++)h=s._soundById(p[y]),h&&(h._volume=u,c[2]||s._stopFade(p[y]),s._webAudio&&h._node&&!h._muted?h._node.gain.setValueAtTime(u,t.ctx.currentTime):h._node&&!h._muted&&(h._node.volume=u*t.volume()),s._emit("volume",h._id))}else return h=p?s._soundById(p):s._sounds[0],h?h._volume:0;return s},fade:function(s,c,u,p){var f=this;if(f._state!=="loaded"||f._playLock)return f._queue.push({event:"fade",action:function(){f.fade(s,c,u,p)}}),f;s=Math.min(Math.max(0,parseFloat(s)),1),c=Math.min(Math.max(0,parseFloat(c)),1),u=parseFloat(u),f.volume(s,p);for(var m=f._getSoundIds(p),h=0;h<m.length;h++){var y=f._soundById(m[h]);if(y){if(p||f._stopFade(m[h]),f._webAudio&&!y._muted){var x=t.ctx.currentTime,S=x+u/1e3;y._volume=s,y._node.gain.setValueAtTime(s,x),y._node.gain.linearRampToValueAtTime(c,S)}f._startFadeInterval(y,s,c,u,m[h],typeof p>"u")}}return f},_startFadeInterval:function(s,c,u,p,f,m){var h=this,y=c,x=u-c,S=Math.abs(x/.01),v=Math.max(4,S>0?p/S:p),b=Date.now();s._fadeTo=u,s._interval=setInterval(function(){var P=(Date.now()-b)/p;b=Date.now(),y+=x*P,y=Math.round(y*100)/100,x<0?y=Math.max(u,y):y=Math.min(u,y),h._webAudio?s._volume=y:h.volume(y,s._id,!0),m&&(h._volume=y),(u<c&&y<=u||u>c&&y>=u)&&(clearInterval(s._interval),s._interval=null,s._fadeTo=null,h.volume(u,s._id),h._emit("fade",s._id))},v)},_stopFade:function(s){var c=this,u=c._soundById(s);return u&&u._interval&&(c._webAudio&&u._node.gain.cancelScheduledValues(t.ctx.currentTime),clearInterval(u._interval),u._interval=null,c.volume(u._fadeTo,s),u._fadeTo=null,c._emit("fade",s)),c},loop:function(){var s=this,c=arguments,u,p,f;if(c.length===0)return s._loop;if(c.length===1)if(typeof c[0]=="boolean")u=c[0],s._loop=u;else return f=s._soundById(parseInt(c[0],10)),f?f._loop:!1;else c.length===2&&(u=c[0],p=parseInt(c[1],10));for(var m=s._getSoundIds(p),h=0;h<m.length;h++)f=s._soundById(m[h]),f&&(f._loop=u,s._webAudio&&f._node&&f._node.bufferSource&&(f._node.bufferSource.loop=u,u&&(f._node.bufferSource.loopStart=f._start||0,f._node.bufferSource.loopEnd=f._stop,s.playing(m[h])&&(s.pause(m[h],!0),s.play(m[h],!0)))));return s},rate:function(){var s=this,c=arguments,u,p;if(c.length===0)p=s._sounds[0]._id;else if(c.length===1){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):u=parseFloat(c[0])}else c.length===2&&(u=parseFloat(c[0]),p=parseInt(c[1],10));var h;if(typeof u=="number"){if(s._state!=="loaded"||s._playLock)return s._queue.push({event:"rate",action:function(){s.rate.apply(s,c)}}),s;typeof p>"u"&&(s._rate=u),p=s._getSoundIds(p);for(var y=0;y<p.length;y++)if(h=s._soundById(p[y]),h){s.playing(p[y])&&(h._rateSeek=s.seek(p[y]),h._playStart=s._webAudio?t.ctx.currentTime:h._playStart),h._rate=u,s._webAudio&&h._node&&h._node.bufferSource?h._node.bufferSource.playbackRate.setValueAtTime(u,t.ctx.currentTime):h._node&&(h._node.playbackRate=u);var x=s.seek(p[y]),S=(s._sprite[h._sprite][0]+s._sprite[h._sprite][1])/1e3-x,v=S*1e3/Math.abs(h._rate);(s._endTimers[p[y]]||!h._paused)&&(s._clearTimer(p[y]),s._endTimers[p[y]]=setTimeout(s._ended.bind(s,h),v)),s._emit("rate",h._id)}}else return h=s._soundById(p),h?h._rate:s._rate;return s},seek:function(){var s=this,c=arguments,u,p;if(c.length===0)s._sounds.length&&(p=s._sounds[0]._id);else if(c.length===1){var f=s._getSoundIds(),m=f.indexOf(c[0]);m>=0?p=parseInt(c[0],10):s._sounds.length&&(p=s._sounds[0]._id,u=parseFloat(c[0]))}else c.length===2&&(u=parseFloat(c[0]),p=parseInt(c[1],10));if(typeof p>"u")return 0;if(typeof u=="number"&&(s._state!=="loaded"||s._playLock))return s._queue.push({event:"seek",action:function(){s.seek.apply(s,c)}}),s;var h=s._soundById(p);if(h)if(typeof u=="number"&&u>=0){var y=s.playing(p);y&&s.pause(p,!0),h._seek=u,h._ended=!1,s._clearTimer(p),!s._webAudio&&h._node&&!isNaN(h._node.duration)&&(h._node.currentTime=u);var x=function(){y&&s.play(p,!0),s._emit("seek",p)};if(y&&!s._webAudio){var S=function(){s._playLock?setTimeout(S,0):x()};setTimeout(S,0)}else x()}else if(s._webAudio){var v=s.playing(p)?t.ctx.currentTime-h._playStart:0,b=h._rateSeek?h._rateSeek-h._seek:0;return h._seek+(b+v*Math.abs(h._rate))}else return h._node.currentTime;return s},playing:function(s){var c=this;if(typeof s=="number"){var u=c._soundById(s);return u?!u._paused:!1}for(var p=0;p<c._sounds.length;p++)if(!c._sounds[p]._paused)return!0;return!1},duration:function(s){var c=this,u=c._duration,p=c._soundById(s);return p&&(u=c._sprite[p._sprite][1]/1e3),u},state:function(){return this._state},unload:function(){for(var s=this,c=s._sounds,u=0;u<c.length;u++)c[u]._paused||s.stop(c[u]._id),s._webAudio||(s._clearSound(c[u]._node),c[u]._node.removeEventListener("error",c[u]._errorFn,!1),c[u]._node.removeEventListener(t._canPlayEvent,c[u]._loadFn,!1),c[u]._node.removeEventListener("ended",c[u]._endFn,!1),t._releaseHtml5Audio(c[u]._node)),delete c[u]._node,s._clearTimer(c[u]._id);var p=t._howls.indexOf(s);p>=0&&t._howls.splice(p,1);var f=!0;for(u=0;u<t._howls.length;u++)if(t._howls[u]._src===s._src||s._src.indexOf(t._howls[u]._src)>=0){f=!1;break}return r&&f&&delete r[s._src],t.noAudio=!1,s._state="unloaded",s._sounds=[],s=null,null},on:function(s,c,u,p){var f=this,m=f["_on"+s];return typeof c=="function"&&m.push(p?{id:u,fn:c,once:p}:{id:u,fn:c}),f},off:function(s,c,u){var p=this,f=p["_on"+s],m=0;if(typeof c=="number"&&(u=c,c=null),c||u)for(m=0;m<f.length;m++){var h=u===f[m].id;if(c===f[m].fn&&h||!c&&h){f.splice(m,1);break}}else if(s)p["_on"+s]=[];else{var y=Object.keys(p);for(m=0;m<y.length;m++)y[m].indexOf("_on")===0&&Array.isArray(p[y[m]])&&(p[y[m]]=[])}return p},once:function(s,c,u){var p=this;return p.on(s,c,u,1),p},_emit:function(s,c,u){for(var p=this,f=p["_on"+s],m=f.length-1;m>=0;m--)(!f[m].id||f[m].id===c||s==="load")&&(setTimeout(function(h){h.call(this,c,u)}.bind(p,f[m].fn),0),f[m].once&&p.off(s,f[m].fn,f[m].id));return p._loadQueue(s),p},_loadQueue:function(s){var c=this;if(c._queue.length>0){var u=c._queue[0];u.event===s&&(c._queue.shift(),c._loadQueue()),s||u.action()}return c},_ended:function(s){var c=this,u=s._sprite;if(!c._webAudio&&s._node&&!s._node.paused&&!s._node.ended&&s._node.currentTime<s._stop)return setTimeout(c._ended.bind(c,s),100),c;var p=!!(s._loop||c._sprite[u][2]);if(c._emit("end",s._id),!c._webAudio&&p&&c.stop(s._id,!0).play(s._id),c._webAudio&&p){c._emit("play",s._id),s._seek=s._start||0,s._rateSeek=0,s._playStart=t.ctx.currentTime;var f=(s._stop-s._start)*1e3/Math.abs(s._rate);c._endTimers[s._id]=setTimeout(c._ended.bind(c,s),f)}return c._webAudio&&!p&&(s._paused=!0,s._ended=!0,s._seek=s._start||0,s._rateSeek=0,c._clearTimer(s._id),c._cleanBuffer(s._node),t._autoSuspend()),!c._webAudio&&!p&&c.stop(s._id,!0),c},_clearTimer:function(s){var c=this;if(c._endTimers[s]){if(typeof c._endTimers[s]!="function")clearTimeout(c._endTimers[s]);else{var u=c._soundById(s);u&&u._node&&u._node.removeEventListener("ended",c._endTimers[s],!1)}delete c._endTimers[s]}return c},_soundById:function(s){for(var c=this,u=0;u<c._sounds.length;u++)if(s===c._sounds[u]._id)return c._sounds[u];return null},_inactiveSound:function(){var s=this;s._drain();for(var c=0;c<s._sounds.length;c++)if(s._sounds[c]._ended)return s._sounds[c].reset();return new e(s)},_drain:function(){var s=this,c=s._pool,u=0,p=0;if(!(s._sounds.length<c)){for(p=0;p<s._sounds.length;p++)s._sounds[p]._ended&&u++;for(p=s._sounds.length-1;p>=0;p--){if(u<=c)return;s._sounds[p]._ended&&(s._webAudio&&s._sounds[p]._node&&s._sounds[p]._node.disconnect(0),s._sounds.splice(p,1),u--)}}},_getSoundIds:function(s){var c=this;if(typeof s>"u"){for(var u=[],p=0;p<c._sounds.length;p++)u.push(c._sounds[p]._id);return u}else return[s]},_refreshBuffer:function(s){var c=this;return s._node.bufferSource=t.ctx.createBufferSource(),s._node.bufferSource.buffer=r[c._src],s._panner?s._node.bufferSource.connect(s._panner):s._node.bufferSource.connect(s._node),s._node.bufferSource.loop=s._loop,s._loop&&(s._node.bufferSource.loopStart=s._start||0,s._node.bufferSource.loopEnd=s._stop||0),s._node.bufferSource.playbackRate.setValueAtTime(s._rate,t.ctx.currentTime),c},_cleanBuffer:function(s){var c=this,u=t._navigator&&t._navigator.vendor.indexOf("Apple")>=0;if(t._scratchBuffer&&s.bufferSource&&(s.bufferSource.onended=null,s.bufferSource.disconnect(0),u))try{s.bufferSource.buffer=t._scratchBuffer}catch{}return s.bufferSource=null,c},_clearSound:function(s){var c=/MSIE |Trident\//.test(t._navigator&&t._navigator.userAgent);c||(s.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var e=function(s){this._parent=s,this.init()};e.prototype={init:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++t._counter,c._sounds.push(s),s.create(),s},create:function(){var s=this,c=s._parent,u=t._muted||s._muted||s._parent._muted?0:s._volume;return c._webAudio?(s._node=typeof t.ctx.createGain>"u"?t.ctx.createGainNode():t.ctx.createGain(),s._node.gain.setValueAtTime(u,t.ctx.currentTime),s._node.paused=!0,s._node.connect(t.masterGain)):t.noAudio||(s._node=t._obtainHtml5Audio(),s._errorFn=s._errorListener.bind(s),s._node.addEventListener("error",s._errorFn,!1),s._loadFn=s._loadListener.bind(s),s._node.addEventListener(t._canPlayEvent,s._loadFn,!1),s._endFn=s._endListener.bind(s),s._node.addEventListener("ended",s._endFn,!1),s._node.src=c._src,s._node.preload=c._preload===!0?"auto":c._preload,s._node.volume=u*t.volume(),s._node.load()),s},reset:function(){var s=this,c=s._parent;return s._muted=c._muted,s._loop=c._loop,s._volume=c._volume,s._rate=c._rate,s._seek=0,s._rateSeek=0,s._paused=!0,s._ended=!0,s._sprite="__default",s._id=++t._counter,s},_errorListener:function(){var s=this;s._parent._emit("loaderror",s._id,s._node.error?s._node.error.code:0),s._node.removeEventListener("error",s._errorFn,!1)},_loadListener:function(){var s=this,c=s._parent;c._duration=Math.ceil(s._node.duration*10)/10,Object.keys(c._sprite).length===0&&(c._sprite={__default:[0,c._duration*1e3]}),c._state!=="loaded"&&(c._state="loaded",c._emit("load"),c._loadQueue()),s._node.removeEventListener(t._canPlayEvent,s._loadFn,!1)},_endListener:function(){var s=this,c=s._parent;c._duration===1/0&&(c._duration=Math.ceil(s._node.duration*10)/10,c._sprite.__default[1]===1/0&&(c._sprite.__default[1]=c._duration*1e3),c._ended(s)),s._node.removeEventListener("ended",s._endFn,!1)}};var r={},n=function(s){var c=s._src;if(r[c]){s._duration=r[c].duration,l(s);return}if(/^data:[^;]+;base64,/.test(c)){for(var u=atob(c.split(",")[1]),p=new Uint8Array(u.length),f=0;f<u.length;++f)p[f]=u.charCodeAt(f);a(p.buffer,s)}else{var m=new XMLHttpRequest;m.open(s._xhr.method,c,!0),m.withCredentials=s._xhr.withCredentials,m.responseType="arraybuffer",s._xhr.headers&&Object.keys(s._xhr.headers).forEach(function(h){m.setRequestHeader(h,s._xhr.headers[h])}),m.onload=function(){var h=(m.status+"")[0];if(h!=="0"&&h!=="2"&&h!=="3"){s._emit("loaderror",null,"Failed loading audio file with status: "+m.status+".");return}a(m.response,s)},m.onerror=function(){s._webAudio&&(s._html5=!0,s._webAudio=!1,s._sounds=[],delete r[c],s.load())},i(m)}},i=function(s){try{s.send()}catch{s.onerror()}},a=function(s,c){var u=function(){c._emit("loaderror",null,"Decoding audio data failed.")},p=function(f){f&&c._sounds.length>0?(r[c._src]=f,l(c,f)):u()};typeof Promise<"u"&&t.ctx.decodeAudioData.length===1?t.ctx.decodeAudioData(s).then(p).catch(u):t.ctx.decodeAudioData(s,p,u)},l=function(s,c){c&&!s._duration&&(s._duration=c.duration),Object.keys(s._sprite).length===0&&(s._sprite={__default:[0,s._duration*1e3]}),s._state!=="loaded"&&(s._state="loaded",s._emit("load"),s._loadQueue())},d=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 s=/iP(hone|od|ad)/.test(t._navigator&&t._navigator.platform),c=t._navigator&&t._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),u=c?parseInt(c[1],10):null;if(s&&u&&u<9){var p=/safari/.test(t._navigator&&t._navigator.userAgent.toLowerCase());t._navigator&&!p&&(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:A}}),typeof ba<"u"&&(ba.Howler=t,ba.Howl=A),typeof global<"u"?(global.HowlerGlobal=o,global.Howler=t,global.Howl=A,global.Sound=e):typeof window<"u"&&(window.HowlerGlobal=o,window.Howler=t,window.Howl=A,window.Sound=e)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(t){var A=this;if(!A.ctx||!A.ctx.listener)return A;for(var e=A._howls.length-1;e>=0;e--)A._howls[e].stereo(t);return A},HowlerGlobal.prototype.pos=function(t,A,e){var r=this;if(!r.ctx||!r.ctx.listener)return r;if(A=typeof A!="number"?r._pos[1]:A,e=typeof e!="number"?r._pos[2]:e,typeof t=="number")r._pos=[t,A,e],typeof r.ctx.listener.positionX<"u"?(r.ctx.listener.positionX.setTargetAtTime(r._pos[0],Howler.ctx.currentTime,.1),r.ctx.listener.positionY.setTargetAtTime(r._pos[1],Howler.ctx.currentTime,.1),r.ctx.listener.positionZ.setTargetAtTime(r._pos[2],Howler.ctx.currentTime,.1)):r.ctx.listener.setPosition(r._pos[0],r._pos[1],r._pos[2]);else return r._pos;return r},HowlerGlobal.prototype.orientation=function(t,A,e,r,n,i){var a=this;if(!a.ctx||!a.ctx.listener)return a;var l=a._orientation;if(A=typeof A!="number"?l[1]:A,e=typeof e!="number"?l[2]:e,r=typeof r!="number"?l[3]:r,n=typeof n!="number"?l[4]:n,i=typeof i!="number"?l[5]:i,typeof t=="number")a._orientation=[t,A,e,r,n,i],typeof a.ctx.listener.forwardX<"u"?(a.ctx.listener.forwardX.setTargetAtTime(t,Howler.ctx.currentTime,.1),a.ctx.listener.forwardY.setTargetAtTime(A,Howler.ctx.currentTime,.1),a.ctx.listener.forwardZ.setTargetAtTime(e,Howler.ctx.currentTime,.1),a.ctx.listener.upX.setTargetAtTime(r,Howler.ctx.currentTime,.1),a.ctx.listener.upY.setTargetAtTime(n,Howler.ctx.currentTime,.1),a.ctx.listener.upZ.setTargetAtTime(i,Howler.ctx.currentTime,.1)):a.ctx.listener.setOrientation(t,A,e,r,n,i);else return l;return a},Howl.prototype.init=function(t){return function(A){var e=this;return e._orientation=A.orientation||[1,0,0],e._stereo=A.stereo||null,e._pos=A.pos||null,e._pannerAttr={coneInnerAngle:typeof A.coneInnerAngle<"u"?A.coneInnerAngle:360,coneOuterAngle:typeof A.coneOuterAngle<"u"?A.coneOuterAngle:360,coneOuterGain:typeof A.coneOuterGain<"u"?A.coneOuterGain:0,distanceModel:typeof A.distanceModel<"u"?A.distanceModel:"inverse",maxDistance:typeof A.maxDistance<"u"?A.maxDistance:1e4,panningModel:typeof A.panningModel<"u"?A.panningModel:"HRTF",refDistance:typeof A.refDistance<"u"?A.refDistance:1,rolloffFactor:typeof A.rolloffFactor<"u"?A.rolloffFactor:1},e._onstereo=A.onstereo?[{fn:A.onstereo}]:[],e._onpos=A.onpos?[{fn:A.onpos}]:[],e._onorientation=A.onorientation?[{fn:A.onorientation}]:[],t.call(this,A)}}(Howl.prototype.init),Howl.prototype.stereo=function(t,A){var e=this;if(!e._webAudio)return e;if(e._state!=="loaded")return e._queue.push({event:"stereo",action:function(){e.stereo(t,A)}}),e;var r=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof A>"u")if(typeof t=="number")e._stereo=t,e._pos=[t,0,0];else return e._stereo;for(var n=e._getSoundIds(A),i=0;i<n.length;i++){var a=e._soundById(n[i]);if(a)if(typeof t=="number")a._stereo=t,a._pos=[t,0,0],a._node&&(a._pannerAttr.panningModel="equalpower",(!a._panner||!a._panner.pan)&&o(a,r),r==="spatial"?typeof a._panner.positionX<"u"?(a._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),a._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),a._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):a._panner.setPosition(t,0,0):a._panner.pan.setValueAtTime(t,Howler.ctx.currentTime)),e._emit("stereo",a._id);else return a._stereo}return e},Howl.prototype.pos=function(t,A,e,r){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"pos",action:function(){n.pos(t,A,e,r)}}),n;if(A=typeof A!="number"?0:A,e=typeof e!="number"?-.5:e,typeof r>"u")if(typeof t=="number")n._pos=[t,A,e];else return n._pos;for(var i=n._getSoundIds(r),a=0;a<i.length;a++){var l=n._soundById(i[a]);if(l)if(typeof t=="number")l._pos=[t,A,e],l._node&&((!l._panner||l._panner.pan)&&o(l,"spatial"),typeof l._panner.positionX<"u"?(l._panner.positionX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(A,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(e,Howler.ctx.currentTime)):l._panner.setPosition(t,A,e)),n._emit("pos",l._id);else return l._pos}return n},Howl.prototype.orientation=function(t,A,e,r){var n=this;if(!n._webAudio)return n;if(n._state!=="loaded")return n._queue.push({event:"orientation",action:function(){n.orientation(t,A,e,r)}}),n;if(A=typeof A!="number"?n._orientation[1]:A,e=typeof e!="number"?n._orientation[2]:e,typeof r>"u")if(typeof t=="number")n._orientation=[t,A,e];else return n._orientation;for(var i=n._getSoundIds(r),a=0;a<i.length;a++){var l=n._soundById(i[a]);if(l)if(typeof t=="number")l._orientation=[t,A,e],l._node&&(l._panner||(l._pos||(l._pos=n._pos||[0,0,-.5]),o(l,"spatial")),typeof l._panner.orientationX<"u"?(l._panner.orientationX.setValueAtTime(t,Howler.ctx.currentTime),l._panner.orientationY.setValueAtTime(A,Howler.ctx.currentTime),l._panner.orientationZ.setValueAtTime(e,Howler.ctx.currentTime)):l._panner.setOrientation(t,A,e)),n._emit("orientation",l._id);else return l._orientation}return n},Howl.prototype.pannerAttr=function(){var t=this,A=arguments,e,r,n;if(!t._webAudio)return t;if(A.length===0)return t._pannerAttr;if(A.length===1)if(typeof A[0]=="object")e=A[0],typeof r>"u"&&(e.pannerAttr||(e.pannerAttr={coneInnerAngle:e.coneInnerAngle,coneOuterAngle:e.coneOuterAngle,coneOuterGain:e.coneOuterGain,distanceModel:e.distanceModel,maxDistance:e.maxDistance,refDistance:e.refDistance,rolloffFactor:e.rolloffFactor,panningModel:e.panningModel}),t._pannerAttr={coneInnerAngle:typeof e.pannerAttr.coneInnerAngle<"u"?e.pannerAttr.coneInnerAngle:t._coneInnerAngle,coneOuterAngle:typeof e.pannerAttr.coneOuterAngle<"u"?e.pannerAttr.coneOuterAngle:t._coneOuterAngle,coneOuterGain:typeof e.pannerAttr.coneOuterGain<"u"?e.pannerAttr.coneOuterGain:t._coneOuterGain,distanceModel:typeof e.pannerAttr.distanceModel<"u"?e.pannerAttr.distanceModel:t._distanceModel,maxDistance:typeof e.pannerAttr.maxDistance<"u"?e.pannerAttr.maxDistance:t._maxDistance,refDistance:typeof e.pannerAttr.refDistance<"u"?e.pannerAttr.refDistance:t._refDistance,rolloffFactor:typeof e.pannerAttr.rolloffFactor<"u"?e.pannerAttr.rolloffFactor:t._rolloffFactor,panningModel:typeof e.pannerAttr.panningModel<"u"?e.pannerAttr.panningModel:t._panningModel});else return n=t._soundById(parseInt(A[0],10)),n?n._pannerAttr:t._pannerAttr;else A.length===2&&(e=A[0],r=parseInt(A[1],10));for(var i=t._getSoundIds(r),a=0;a<i.length;a++)if(n=t._soundById(i[a]),n){var l=n._pannerAttr;l={coneInnerAngle:typeof e.coneInnerAngle<"u"?e.coneInnerAngle:l.coneInnerAngle,coneOuterAngle:typeof e.coneOuterAngle<"u"?e.coneOuterAngle:l.coneOuterAngle,coneOuterGain:typeof e.coneOuterGain<"u"?e.coneOuterGain:l.coneOuterGain,distanceModel:typeof e.distanceModel<"u"?e.distanceModel:l.distanceModel,maxDistance:typeof e.maxDistance<"u"?e.maxDistance:l.maxDistance,refDistance:typeof e.refDistance<"u"?e.refDistance:l.refDistance,rolloffFactor:typeof e.rolloffFactor<"u"?e.rolloffFactor:l.rolloffFactor,panningModel:typeof e.panningModel<"u"?e.panningModel:l.panningModel};var d=n._panner;d?(d.coneInnerAngle=l.coneInnerAngle,d.coneOuterAngle=l.coneOuterAngle,d.coneOuterGain=l.coneOuterGain,d.distanceModel=l.distanceModel,d.maxDistance=l.maxDistance,d.refDistance=l.refDistance,d.rolloffFactor=l.rolloffFactor,d.panningModel=l.panningModel):(n._pos||(n._pos=t._pos||[0,0,-.5]),o(n,"spatial"))}return t},Sound.prototype.init=function(t){return function(){var A=this,e=A._parent;A._orientation=e._orientation,A._stereo=e._stereo,A._pos=e._pos,A._pannerAttr=e._pannerAttr,t.call(this),A._stereo?e.stereo(A._stereo):A._pos&&e.pos(A._pos[0],A._pos[1],A._pos[2],A._id)}}(Sound.prototype.init),Sound.prototype.reset=function(t){return function(){var A=this,e=A._parent;return A._orientation=e._orientation,A._stereo=e._stereo,A._pos=e._pos,A._pannerAttr=e._pannerAttr,A._stereo?e.stereo(A._stereo):A._pos?e.pos(A._pos[0],A._pos[1],A._pos[2],A._id):A._panner&&(A._panner.disconnect(0),A._panner=void 0,e._refreshBuffer(A)),t.call(this)}}(Sound.prototype.reset);var o=function(t,A){A=A||"spatial",A==="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 K1={};Lc(K1,{default:()=>Fa});module.exports=ey(K1);var za=require("three");var VA=class{modifyById(t,A){let e=this;if(e[t]===void 0)throw new Error("not expected");{let n={...e,[t]:A};return Object.setPrototypeOf(n,VA.prototype),n}}add(t,A){return this.runOp({type:1,id:t,data:A})?.data??this}runOp(t){let A=this;if(t.type===1){let e=A[t.id],r;e===void 0?r={type:2,id:t.id}:r={type:1,id:t.id,data:e};let{id:n,data:i}=t,a={...A,[n]:i};return Object.setPrototypeOf(a,VA.prototype),{data:a,actual:t,reverse:r}}else if(t.type===2){let{id:e}=t,r=A[e];if(r===void 0)return null;{let n={...A};return Object.setPrototypeOf(n,VA.prototype),delete n[e],{data:n,actual:t,reverse:{type:1,id:e,data:r}}}}return null}};function Ln(o){if(o.deepFreeze!==void 0){o.deepFreeze(o);return}let t=Object.getOwnPropertyNames(o);for(let A of t){let e=o[A];e&&typeof e=="object"&&Ln(e)}return Object.freeze(o)}function Mc(o,t){let A=0;for(;A<o.length&&A<t.length;){if(o[A]<t[A])return-1;if(o[A]>t[A])return 1;A+=1}return A!==t.length?-1:A!==o.length?1:0}var oo=class extends Error{};function Yi(o){let t={...o};return Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t}function xt(o,t,A){if(o===void 0?t===void 0?(o=0,t=10):o=t-10:t===void 0&&(t=o+10),o>t){let n=o;o=t,t=n}let e=[],r=1/(A+1);for(let n=0;n<A;n++){let i=o+(t-o)*(n+.75+Math.random()*.5)*r;e.push(i)}return e}function no(o){return o instanceof Uint8Array||o instanceof Uint16Array||o instanceof Uint32Array||o instanceof Int8Array||o instanceof Int16Array||o instanceof Int32Array||o instanceof Float32Array||o instanceof Float64Array}function Bc(){return typeof process<"u"}function Dc(o,t){for(let A of o)t(A.id,A.data)!==!0&&Dc(A.children,t)}function Gc(o,t){if(t(o.id,o.data)!==!0)for(let A of o.children)Gc(A,t)}var _A=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,_A.prototype)}deepFreeze(){let A=0;for(;A<this.length;)Ln(this[A]),A++}fillCaches0(A,e){this.objCaches.set(A.id,A),this.parentCaches.set(A.id,e);for(let r of A.children)this.fillCaches0(r,A.id)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,this.parentCaches=new Map;for(let A of this)this.fillCaches0(A,null)}}randomId(){this.fillCaches();let A=Array.from(this.objCaches.keys());if(A.length!==0)return A[Math.max(0,Math.floor(Math.random()*A.length)-1)]}nonExistOrDescendantOf(A,e){if(!this.has(A))return!0;for(;A;){let r=this.parent(A);if(r===e)return!0;A=r}return!1}isDescendantOf(A,e){for(;A;){let r=this.parent(A);if(r===e)return!0;A=r}return!1}data(A){return this.get(A)?.data}has(A){return this.childrenOf(A)!==void 0}get(A){return this.fillCaches(),this.objCaches.get(A)}childrenOf(A){return A===null?this:this.get(A)?.children}traverseFrom(A,e){if(A===null)this.traverse(e);else{let r=this.get(A);r&&Gc(r,e)}}traverse(A){Dc(this,A)}totalSize(){return this.fillCaches(),this.objCaches.size}parent(A){return this.fillCaches(),this.parentCaches.get(A)}childrenArray(A){return A===null?this:this.get(A).children}modifyById(A,e){if(this.get(A)===void 0)throw new Error("not expected");{let n=this.parent(A),i=this.childrenArray(n),a=i.findIndex(s=>s.id===A);if(a<0)throw new Error("not expected");let l=i[a];return i=[...i],i[a]={...l,data:e},this.modifyArrayBy(n,i)}}modifyArrayBy(A,e){let r=A,n=e;for(;r!==null;){let a=n,l=r;if(r=this.parent(r),r===void 0)throw new Error;n=this.childrenArray(r);let d=n.findIndex(s=>s.id===l);if(d<0)throw new Error;n=[...n],n[d]={...n[d],children:a}}Object.setPrototypeOf(n,_A.prototype);let i=n;return i.fillCaches(),i}runOp(A){switch(A.type){case 7:return this.addOp(A);case 8:return this.deleteOp(A);case 9:return this.moveOp(A)}return null}checkDuplicatedIdRec({id:A,children:e}){if(this.get(A)!==void 0)return!0;for(let r of e)if(this.checkDuplicatedIdRec(r))return!0;return!1}addOp(A){let{parent:e,fi:r,id:n,data:i,children:a}=A;if(e!==null&&this.get(e)===void 0)return null;if(this.checkDuplicatedIdRec(A))return null;{let l=e,d=this.childrenArray(l),s={fi:r,id:n,data:i,children:a};return d=[...d,s],d.sort((u,p)=>u.fi-p.fi),A.localIndex=d.indexOf(s),{data:this.modifyArrayBy(l,d),actual:A,reverse:{type:8,id:n}}}}deleteOp(A){let{id:e}=A;if(this.get(e)===null)return null;{let r=this.parent(e);if(r===void 0)return null;let n=this.childrenArray(r),i=n.findIndex(d=>d.id===e);A.localIndex=i,n=[...n];let a=n.splice(i,1)[0];return{data:this.modifyArrayBy(r,n),actual:A,reverse:{type:7,...a,parent:r}}}}moveOp(A){let{parent:e,fi:r,id:n}=A;if(e!==null&&this.get(e)===void 0)return this.deleteOp({type:8,id:n});if(e!==null){let p=e;for(;p!==null;){if(p===void 0)throw new Error;if(p===n)throw new oo("cyclic tree");p=this.parent(p)}}let i=this.parent(n);if(i===void 0)return null;let a=i,l=this.childrenArray(i),d=l.findIndex(p=>p.id===n);l=[...l];let s=l.splice(d,1)[0],c=this.modifyArrayBy(i,l);i=e,l=c.childrenArray(i);let u=s.fi;return s={...s,fi:r},l=[...l,s],l.sort((p,f)=>p.fi-f.fi),A.localIndex=l.indexOf(s),c=c.modifyArrayBy(i,l),{data:c,actual:A,reverse:{type:9,parent:a,fi:u,id:n}}}previous(A,e){if(e===null){let n=this.childrenArray(A);return n.length===0?null:n[n.length-1].id}let r=null;for(let n of this.childrenArray(A)){if(n.id===e)return r;r=n.id}return null}traverseSortNext(A){let e=this.parent(A);if(e!==void 0){let r=this.childrenArray(e),n=r.findIndex(i=>i.id===A)+1;if(n<r.length)return r[n].id;if(e)return this.traverseSortNext(e)}}sortNext(A){let e=this.childrenArray(A);return e.length>0?e[0].id:this.traverseSortNext(A)}traverseSortPrevious(A){let e=this.childrenArray(A);return e.length>0?this.traverseSortPrevious(e[e.length-1].id):A}sortPrevious(A){let e=this.parent(A);if(e!==void 0){let r=this.childrenArray(e),n=r.findIndex(i=>i.id===A)-1;return n>=0?this.traverseSortPrevious(r[n].id):e}}getAllSorted(A){let e=[];for(let r of A){let n=this.getWithSortKey(r.id);n!==void 0&&e.push({...r,...n})}e.sort((r,n)=>Mc(r.sortKey,n.sortKey));for(let r of e)delete r.sortKey;return e}getWithSortKey(A){var e=A;let r=[],n=this.get(e),i=n;if(n!==void 0){for(;e;)r.splice(0,0,n.fi),e=this.parent(e),e!==null&&(n=this.get(e));return{...i,sortKey:r}}}insertBeforeHelper(A,e,r){return this.insertAfterHelper(A,this.previous(A,e),r)}insertAfterHelper(A,e,r){let n=this.childrenArray(A);if(e===null){if(n.length===0)return xt(0,r,r);{let i=n[0].fi;return xt(i-r,i,r)}}else{let i=this.get(e);if(i===void 0||this.parent(e)!==A)throw new Error("illegal args");let a=n.find(l=>l.fi>i.fi);if(a===void 0){let l=n[n.length-1].fi;return xt(l,l+r,r)}else return xt(i.fi,a.fi,r)}}};var io;(t=>{function o(A,e){if(e.type!==0)return null;if(Array.isArray(A)){let r=e.props,n={},i=[...A],a=!1;if(r)for(let l of Object.keys(r)){let d=parseInt(l);if(isNaN(d))throw new Error("wrong index");n[l]=i[d],i[d]=r[l],a=!0}return a?{data:i,actual:e,reverse:{type:0,props:n}}:null}else{let r=e.props,n={},i={...A},a=!1;if(r)for(let l of Object.keys(r)){n[l]=i[l];let d=r[l];d===void 0?delete i[l]:i[l]=d,a=!0}return a?{data:i,actual:e,reverse:{type:0,props:n}}:null}}t.runOp=o})(io||(io={}));var gA=class extends Array{constructor(...A){super(...A);Object.setPrototypeOf(this,gA.prototype)}deepFreeze(){let A=0;for(;A<this.length;)Ln(this[A]),A++}fillCaches0(A){this.objCaches.set(A.id,A)}fillCaches(){if(this.objCaches===void 0){this.objCaches=new Map,Object.getOwnPropertyDescriptor(this,"objCaches").enumerable=!1;for(let A of this)this.fillCaches0(A)}}randomId(){this.fillCaches();let A=Array.from(this.objCaches.keys());if(A.length!==0)return A[Math.max(0,Math.floor(Math.random()*A.length)-1)]}data(A){return this.get(A)?.data}get(A){return this.fillCaches(),this.objCaches.get(A)}modifyById(A,e){if(this.get(A)===void 0)throw new Error("not expected");{let n=this,i=n.findIndex(d=>d.id===A);if(i<0)throw new Error("not expected");let a=n[i];return n=[...n],n[i]={...a,data:e},this.modifyArrayBy(n)}}modifyArrayBy(A){Object.setPrototypeOf(A,gA.prototype);let e=A;return Bc()||e.fillCaches(),e}runOp(A){switch(A.type){case 4:return this.addOp(A);case 5:return this.deleteOp(A);case 6:return this.moveOp(A)}return null}addOp(A){let{fi:e,id:r,data:n}=A,i=this,a={fi:e,id:r,data:n};return i=[...i,a],i.sort((d,s)=>d.fi-s.fi),A.localIndex=i.indexOf(a),{data:this.modifyArrayBy(i),actual:A,reverse:{type:5,id:r}}}deleteOp(A){let{id:e}=A,r=this,n=r.findIndex(l=>l.id===e);if(n===-1)return null;A.localIndex=n,r=[...r];let i=r.splice(n,1)[0];return{data:this.modifyArrayBy(r),actual:A,reverse:{type:4,...i}}}moveOp(A){let{fi:e,id:r}=A,n=this;n=[...n];let i=n.findIndex(s=>s.id===r);if(i===-1)return null;let a=n[i].fi,l={...n[i],fi:e};return n[i]=l,n.sort((s,c)=>s.fi-c.fi),A.localIndex=n.indexOf(l),{data:this.modifyArrayBy(n),actual:A,reverse:{type:6,fi:a,id:r}}}previous(A){if(A===null)return this.length===0?null:this[this.length-1].id;let e=null;for(let r of this){if(r.id===A)return e;e=r.id}return null}insertBeforeHelper(A,e){return this.insertAfterHelper(this.previous(A),e)}insertAfterHelper(A,e){let r=this;if(A===null){if(r.length===0)return xt(0,e,e);{let n=r[0].fi;return xt(n-e,n,e)}}else{let n=this.get(A);if(n===void 0)throw new Error("illegal args");let i=r.find(a=>a.fi>n.fi);if(i===void 0){let a=r[r.length-1].fi;return xt(a,a+e,e)}else return xt(n.fi,i.fi,e)}}};function so(o){return o&&typeof o=="object"&&o instanceof kA}var kA=class{unusedFunOverridesTable(t){}runOp(t){let A=[],e=this,r=0,n={};for(;r<t.path.length;){if(A.push(e),e=e===void 0?void 0:e[t.path[r]],e!==void 0&&!so(e))return null;r+=1}e=e?Yi(e):new kA;for(let[l,d]of Object.entries(t.props)){let s=e[l];n[l]=s,d===void 0?delete e[l]:e[l]=d}for(;r>0;){if(Object.keys(e).length===0){let l=A[r-1];l&&(e=Yi(l),delete e[t.path[r-1]])}else{let l=A[r-1];if(l){let d=Yi(l);d[t.path[r-1]]=e,e=d}else{let d=new kA;d[t.path[r-1]]=e,e=d}}r-=1}let i=Object.setPrototypeOf(e,kA.prototype),a={...t,props:n};return{data:i,actual:t,reverse:a}}},kt;(e=>{function o(r,n){return En(r,n)??r}e.apply=o;function t(r,n){return Qa(r,n)}e.merge=t;function A(r,n){let i=0,a=n.path,l=r;for(;i<a.length&&l!==void 0;){if(l=Se.zoomOnce(l,a[i]),l===void 0)return n;if(!so(l))return;i+=1}if(l===void 0)return n;if(!!so(l))if(n.type===0){let d={...n.props};for(let s of Object.keys(l))delete d[s];return{...n,props:d}}else if(n.type===1||n.type===4||n.type===7){let d=qa([n],l);return d?(console.log(d),d):n}else return n}e.filterOp=A})(kt||(kt={}));function qa(o,t){if(t===void 0)return;let A=!1,e=o.map(r=>{let n=r.id,i=En(r.data,t[n]);if(A=A||i!==void 0,i===void 0&&(i=r.data),r.children){let a=qa(r.children,t);return a!==void 0?A=!0:a=r.children,{...r,id:n,data:i,children:a}}else return{...r,id:n,data:i}});if(A)return e}function ty(o,t){if(t===void 0)return;let A=!1,e=o.map(r=>{let n=r.id,i=En(r.data,t[n]);return A=A||i!==void 0,i===void 0&&(i=r.data),{...r,id:n,data:i}});if(A)return Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}function En(o,t){if(!so(t))return t;if(o instanceof _A){let A=qa(o,t);return A!==void 0&&Object.setPrototypeOf(A,Object.getPrototypeOf(o)),A}else{if(o instanceof gA)return ty(o,t);if(Array.isArray(o)){let A=!1,e=o.map((r,n)=>{let i=En(r,t[n]);return A=A||i!==void 0,i===void 0&&(i=r),i});return A?(Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e):void 0}else{if(o instanceof kA)return Qa(o,t);if(o&&typeof o=="object"){let A={},e=!1;for(let[r,n]of Object.entries(o)){let i=En(n,t[r]);e=e||i!==void 0,i===void 0&&(i=n),A[r]=i}return e?(Object.setPrototypeOf(A,Object.getPrototypeOf(o)),A):void 0}}}}function Qa(o,t){if(o===void 0)return t;if(t===void 0)return o;if(!so(t))return t;if(!so(o))return kt.apply(o,t);let A=new Set;for(let r of Object.keys(o))A.add(r);for(let r of Object.keys(t))A.add(r);let e=new kA;for(let r of A){let n=Qa(o===void 0?void 0:o[r],t===void 0?void 0:t[r]);e[r]=n}return e}function Rc(o,t){let A={cur:[],result:[],len:0};return o=Mn(o,t,A)??o,[o,A.result]}function Xi(o,t){return o===null?null:(o.cur[o.len]=t,o.len+=1,o)}function Ki(o){o&&(o.len-=1)}function ry(o){if(o===null)return null;o.result.push(o.cur.slice(0,o.len))}function Vc(o,t,A){let e=!1,r=o.map(n=>{let i=n.id,a=t[i];if(a!==void 0&&typeof a=="string"&&(e=!0,i=a,A!==null))throw new Error("not supported");let l=Mn(n.data,t,Xi(A,i));Ki(A),e=e||l!==void 0,l===void 0&&(l=n.data);let d=Vc(n.children,t,A);return d!==void 0?e=!0:d=n.children,{...n,id:i,data:l,children:d}});if(e)return r}function oy(o,t,A){let e=!1,r=o.map(n=>{let i=n.id,a=t[i];if(a!==void 0&&typeof a=="string"&&(e=!0,i=a,A!==null))throw new Error("not supported");let l=Mn(n.data,t,Xi(A,i));return Ki(A),e=e||l!==void 0,l===void 0&&(l=n.data),{...n,id:i,data:l}});if(e)return Object.setPrototypeOf(r,Object.getPrototypeOf(o)),r}function Mn(o,t,A){if(o instanceof _A){let e=Vc(o,t,A);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e}else{if(o instanceof gA)return oy(o,t,A);if(Array.isArray(o)){let e=!1,r=o.map((n,i)=>{let a=Mn(n,t,Xi(A,i));return Ki(A),e=e||a!==void 0,a===void 0&&(a=n),a});return e?(Object.setPrototypeOf(r,Object.getPrototypeOf(o)),r):void 0}else if(o&&typeof o=="object"&&!no(o)){let e={},r=!1;for(let[n,i]of Object.entries(o))if(n!=="name"&&n!=="text"){let a=t[n];if(typeof a=="string"){if(A!==null)throw new Error("not supported");r=!0,n=a}let l=Mn(i,t,Xi(A,n));Ki(A),r=r||l!==void 0,l===void 0&&(l=i),e[n]=l}else e[n]=i;return r?(Object.setPrototypeOf(e,Object.getPrototypeOf(o)),e):void 0}else if(typeof o=="string"){let e=t[o];if(e!==void 0){if(o.length!==36)throw new Error("for now you should only call this method when the key is a uuid");ry(A)}return e}else return}}var Zi;(t=>{function o(A,e){let r=Se.zoom(e,A.path);if(typeof r=="object"){let n={};for(let i of Object.keys(A.props))n[i]=r[i];return{...A,props:n}}else return{...A,props:{}}}t.replaceProps=o})(Zi||(Zi={}));var pe;(a=>{function o(l,d){return{...l,path:l.path.slice(d)}}a.drop=o;function t(l,d){return A(l,d)?.data??l}a.applySimple=t;function A(l,d){let s=d.path;for(var c=[];;){let u;if(l instanceof kA&&d.type===0&&(u=l.runOp({...d,path:s.slice(c.length)}),u===null&&(u=void 0)),c.length===s.length&&(l instanceof _A||l instanceof gA||l instanceof VA?u=l.runOp(d):u=io.runOp(l,d)),u!==void 0)if(u!==null){let m=u.data;for(let h=c.length-1;h>=0;h--){let y=s[h],x=c[h];if(x instanceof _A){if(typeof y=="number")throw new Error("illegal arg");m=x.modifyById(y,m)}else if(x instanceof gA){if(typeof y=="number")throw new Error("illegal arg");m=x.modifyById(y,m)}else if(x instanceof VA){if(typeof y=="number")throw new Error("illegal arg");m=x.modifyById(y,m)}else if(x instanceof kA){let S={...x,[y]:m};m=Object.setPrototypeOf(S,kA.prototype)}else if(typeof x=="object")if(Array.isArray(x)){if(typeof y=="string"&&(y=parseInt(y),isNaN(y)))throw new Error("Invalid path");let S=m;m=[...x],m[y]=S}else m={...x,[y]:m};else return null}return{data:m,actual:{...u.actual,path:s},reverse:{...u.reverse,path:s}}}else return null;let p=s[c.length],f;if(l instanceof _A){if(typeof p=="number")throw new Error("");f=l.get(p)?.data}else if(l instanceof gA){if(typeof p=="number")throw new Error("");f=l.get(p)?.data}else l!==null&&(f=l[p]);if(f!==void 0)c.push(l),l=f;else return null}}a.apply=A;function e(l,d){for(let s=0;s<l.length&&s<d.length;s++)if(l[s]!==d[s])return!0;return!1}a.pathDisjoint=e;function r(l,d){if(l.length!==d.length)return!1;for(let s=0;s<l.length;s++)if(l[s]!==d[s])return!1;return!0}a.pathEq=r;function n(l,d){return e(l.path,d.path)}a.commutative=n;function i(l,d){return l.type===0&&d.type===0&&r(l.path,d.path)?Object.keys(l.props).every(s=>d.props[s]!==void 0):!1}a.subsumed=i})(pe||(pe={}));var Ya;(l=>{function o(){return[]}l.empty=o;function t(d,s){let c=[];for(let u of d){let[p,...f]=u.path;p===s&&c.push({...u,path:f})}return c}l.removePrefix=t;function A(d,s){return d.map(c=>({...c,path:[s,...c.path]}))}l.addPrefix=A;function e(d,s){return[...d,...s]}l.concat=e;function r(d,s){return[...d.filter(u=>!s.some(p=>pe.subsumed(u,p))),...s]}l.compress=r;function n(d,s){return d.every(c=>s.every(u=>pe.commutative(c,u)))}l.commutative=n;function i(d,s){for(let c of s){let u=a(d,c);u!==null&&(d=u.data)}return d}l.applyAll=i;function a(d,s){var c=d;let u=[],p=[];for(let f of s)try{if(f.type===3){let m=Se.zoom(c,[...f.path,f.id]),h=pe.apply(c,{...f,type:2});if(h!==null){c=h.data;let[y,x]=Rc(c,{[f.id]:m});c=y;for(let S of x){let v=S[S.length-1];S.splice(S.length-1,1),u.push({type:0,path:S,props:{[v]:m}}),p.push({type:0,path:S,props:{[v]:f.id}})}p.push(h.reverse),u.push(h.actual)}}else{let m=pe.apply(c,f);m!==null&&(u.push(m.actual),c=m.data,p.push(m.reverse))}}catch(m){if(m instanceof oo)return null;throw m}return{data:c,actual:u,reverse:p.reverse()}}l.apply=a})(Ya||(Ya={}));var jc=Symbol(),ny=Symbol(),_i=Symbol(),Cr=class{reportOp(t,A,e=[]){let r=this;if(A===null)return;r._current=A.data;let n=e;for(;!(r instanceof Ji);){let i=r._path,a=r._current;if(i!==""&&n.splice(0,0,i),r=r._parent,r===null)return;r.update(i,a)}r.push(n,t,A.actual,A.reverse)}deleteChildren(t){if(this._children){let A=this._children[t];if(A){let e=A[_i];e&&e(),delete this._children[t]}}}},Ka=class extends Cr{constructor(t,A,e){super(),this._parent=t,this._path=A,this._current=e}update(t,A){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]=A}else this._current={...this._current,[t]:A}}runOp(t){this.reportOp(t,io.runOp(this._current,t),t.path)}},Za=class extends Cr{constructor(t,A,e){super(),this._parent=t,this._path=A,this._current=e}update(t,A){this._current={...this._current,[t]:A},Object.setPrototypeOf(this._current,VA.prototype)}runOp(t){this.reportOp(t,this._current.runOp(t))}},Fc={get(o,t){if(t===_i)return()=>{o._parent=null};if(t===jc)return o._current;if(t===ny)return o;let{_current:A,_children:e}=o;if(t==="push"&&Array.isArray(A))throw new Error("not supported to expand array");let r=e===void 0?void 0:e[t];if(r!==void 0)return r;let n=A[t],i=$i(o,t,n);return i!==n?(e===void 0&&(e={},o._children=e),e[t]=i,i):n},has(o,t){return t in o._current},ownKeys(o){return Reflect.ownKeys(o._current)},defineProperty(){throw Error("not supported")},getPrototypeOf(o){return Object.getPrototypeOf(o._current)},setPrototypeOf(){throw Error("not supported")},getOwnPropertyDescriptor(o,t){let A=o._current,e=Reflect.getOwnPropertyDescriptor(A,t);return e&&{writable:!0,configurable:!0,enumerable:e.enumerable,value:A[t]}}},iy={...Fc,set(o,t,A){let e={type:0,props:{[t]:se(A)??A}};return o.deleteChildren(t),o.runOp(e),!0},deleteProperty(o,t){let A={type:0,props:{[t]:void 0}};return o.deleteChildren(t),o.runOp(A),!0}},sy={...Fc,set(o,t,A){return A===void 0?this.deleteProperty(o,t):(o.deleteChildren(t),o.runOp({type:1,id:t,data:A})),!0},deleteProperty(o,t){return o.runOp({type:2,id:t}),!0}},ao=class extends Cr{constructor(t,A,e){super(),this._children={},this._parent=t,this._path=A,this._current=e,this[_i]=()=>{this._parent=null}}unproxy(){return this._current}update(t,A){this._current=this._current.modifyById(t,A)}runOp(t){this.reportOp(t,this._current.runOp(t))}randomId(){return this._current.randomId()}isDescendantOf(t,A){return this._current.isDescendantOf(t,A)}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((A,e)=>{t(A,this.data(A))})}data(t){let{_current:A,_children:e}=this,r=e===void 0?void 0:e[t];if(r!==void 0)return r;let n=A.get(t)?.data,i=$i(this,t,n);return i!==n?(e===void 0&&(e={},this._children=e),e[t]=i,i):n}add(t,A,e,r,n){this.runOp({type:7,parent:t,fi:A,id:e,data:r,children:n})}move(t,A,e){this.runOp({type:9,parent:t,fi:A,id:e})}insertAfter(t,A,e){let r=this._current.insertAfterHelper(t,A,e.length);for(let n=0;n<e.length;n++){let i=e[n];this.add(t,r[n],i.id,i.data,i.children)}}insertBefore(t,A,e){let r=this._current.insertBeforeHelper(t,A,e.length);for(let n=0;n<e.length;n++){let i=e[n];this.add(t,r[n],i.id,i.data,i.children)}}moveAfter(t,A,e){let r=this._current.insertAfterHelper(t,A,e.length);for(let n=0;n<e.length;n++){let i=e[n];this.move(t,r[n],i)}}moveBefore(t,A,e){let r=this._current.insertBeforeHelper(t,A,e.length);for(let n=0;n<e.length;n++){let i=e[n];this.move(t,r[n],i)}}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)}},lo=class extends Cr{constructor(t,A,e){super(),this._children={},this._parent=t,this._path=A,this._current=e,this[_i]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(t){let A=this.length;for(let e=0;e<A;e++){let r=this._current[e].id,n=this._current[e].fi;t(this.data(this._current[e].id),r,n)}}find(t){let A=this.length;for(let e=0;e<A;e++){let r=this._current[e].id;if(t(this.data(r),r))return this.get(r)}}update(t,A){this._current=this._current.modifyById(t,A)}randomId(){return this._current.randomId()}get(t){return{...this._current.get(t),data:this.data(t)}}data(t){let{_current:A,_children:e}=this,r=e===void 0?void 0:e[t];if(r!==void 0)return r;let n=A.get(t)?.data,i=$i(this,t,n);return i!==n?(e===void 0&&(e={},this._children=e),e[t]=i,i):n}runOp(t){this.reportOp(t,this._current.runOp(t))}add(t,A,e){this.runOp({type:4,fi:t,id:A,data:e})}move(t,A){this.runOp({type:6,fi:t,id:A})}insertAfter(t,A){let e=this._current.insertAfterHelper(t,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.add(e[r],n.id,n.data)}}insertBefore(t,A){let e=this._current.insertBeforeHelper(t,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.add(e[r],n.id,n.data)}}moveAfter(t,A){let e=this._current.insertAfterHelper(t,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.move(e[r],n)}}moveBefore(t,A){let e=this._current.insertBeforeHelper(t,A.length);for(let r=0;r<A.length;r++){let n=A[r];this.move(e[r],n)}}delete(t){this.deleteChildren(t),this.runOp({type:5,id:t})}};function Xa(o,t,A){if(o.length>0){let e=o[o.length-1];if(e.type===0&&t.type===0&&Se.equal(e.path,A)){Object.assign(e.props,t.props);return}}o.push({...t,path:A})}var Ji=class extends Cr{constructor(t){super(),this.ts=[],this.actual=[],this.reverse=[],this._current=t}update(t,A){if(t!=="")throw new Error("");this._current=A}push(t,A,e,r){Xa(this.ts,A,t),Xa(this.actual,e,t),Xa(this.reverse,r,t)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function $i(o,t,A){return A instanceof _A?new ao(o,t,A):A instanceof gA?new lo(o,t,A):A instanceof VA?new Proxy(new Za(o,t,A),sy):A!==null&&typeof A=="object"?no(A)?A:new Proxy(new Ka(o,t,A),iy):A}function Ja(o){let t=new Ji(o);return[$i(t,"",o),t]}function co(o,t){let[A,e]=Ja(o);return t(A),e.result()}function se(o){return o instanceof ao||o instanceof lo?o._current:o!==null&&typeof o=="object"?o[jc]:o}var Se;(r=>{function o(n,i){if(i.length===n.length)for(var a=0;a<n.length;){if(n[a]!==i[a])return!1;a+=1}else return!1;return!0}r.equal=o;function t(n,i,a){let l=e(a,n);if(l!==void 0&&typeof l=="object"&&l!==null){let d={...i};return Object.keys(l).forEach(s=>{delete d[s]}),d}else return i}r.removeOverridden=t;function A(n,i){if((n instanceof _A||n instanceof ao)&&typeof i=="string")return n.data(i);if((n instanceof gA||n instanceof lo)&&typeof i=="string")return n.data(i);if(typeof i=="number"&&Array.isArray(n))return n[i];if(typeof i=="string"&&typeof n=="object"&&n!==null)return n[i]}r.zoomOnce=A;function e(n,i,a=0){for(;a<i.length&&n!==void 0;)n=A(n,i[a]),a+=1;return n}r.zoom=e})(Se||(Se={}));function zc(o,t){let A=[];if(t.length===o.length)for(var e=0;e<o.length;){if(t[e]==="*")A.push(o[e]);else if(o[e]!==t[e])return null;e+=1}else return null;return A}function vt(o,t){let A=[];if(t.length<=o.length)for(var e=0;e<t.length;){if(t[e]==="*")A.push(o[e]);else if(o[e]!==t[e])return null;e+=1}else return null;return A}var As=class{},Bn=class extends As{constructor(A){super();this.id=A}},Dn=class extends As{constructor(A){super();this.data=A}};var $a;try{$a=new TextDecoder}catch{}var oA,rr,I=0;var Xc=[],Al=Xc,el=0,Ee={},PA,tr,Ke=0,bt=0,He,Ht,we=[],LA,Uc={useRecords:!1,mapsAsObjects:!0},Gn=class{},rl=new Gn;rl.name="MessagePack 0xC1";var uo=!1,St=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,A){if(oA)return $c(()=>(ts(),this?this.unpack(t,A):St.prototype.unpack.call(Uc,t,A)));rr=A>-1?A:t.length,I=0,el=0,bt=0,tr=null,Al=Xc,He=null,oA=t;try{LA=t.dataView||(t.dataView=new DataView(t.buffer,t.byteOffset,t.byteLength))}catch(e){throw oA=null,t instanceof Uint8Array?e:new Error("Source must be a Uint8Array or Buffer but was a "+(t&&typeof t=="object"?t.constructor.name:typeof t))}if(this instanceof St){if(Ee=this,this.structures)return PA=this.structures,es();(!PA||PA.length>0)&&(PA=[])}else Ee=Uc,(!PA||PA.length>0)&&(PA=[]);return es()}unpackMultiple(t,A){let e,r=0;try{uo=!0;let n=t.length,i=this?this.unpack(t,n):ns.unpack(t,n);if(A){for(A(i);I<n;)if(r=I,A(es())===!1)return}else{for(e=[i];I<n;)r=I,e.push(es());return e}}catch(n){throw n.lastPosition=r,n.values=e,n}finally{uo=!1,ts()}}_mergeStructures(t,A){t=t||[];for(let e=0,r=t.length;e<r;e++){let n=t[e];n&&(n.isShared=!0,e>=32&&(n.highByte=e-32>>5))}t.sharedLength=t.length;for(let e in A||[])if(e>=0){let r=t[e],n=A[e];n&&(r&&((t.restoreStructures||(t.restoreStructures=[]))[e]=r),t[e]=n)}return this.structures=t}decode(t,A){return this.unpack(t,A)}};function es(){try{if(!Ee.trusted&&!uo){let t=PA.sharedLength||0;t<PA.length&&(PA.length=t)}let o=qA();if(I==rr)PA.restoreStructures&&kc(),PA=null,oA=null,Ht&&(Ht=null);else if(I>rr){let t=new Error("Unexpected end of MessagePack data");throw t.incomplete=!0,t}else if(!uo)throw new Error("Data read, but end of buffer not reached");return o}catch(o){throw PA.restoreStructures&&kc(),ts(),(o instanceof RangeError||o.message.startsWith("Unexpected end of buffer"))&&(o.incomplete=!0),o}}function kc(){for(let o in PA.restoreStructures)PA[o]=PA.restoreStructures[o];PA.restoreStructures=null}function qA(){let o=oA[I++];if(o<160)if(o<128){if(o<64)return o;{let t=PA[o&63]||Ee.getStructures&&Kc()[o&63];return t?(t.read||(t.read=ol(t,o&63)),t.read()):o}}else if(o<144)if(o-=128,Ee.mapsAsObjects){let t={};for(let A=0;A<o;A++)t[Jc()]=qA();return t}else{let t=new Map;for(let A=0;A<o;A++)t.set(qA(),qA());return t}else{o-=144;let t=new Array(o);for(let A=0;A<o;A++)t[A]=qA();return t}else if(o<192){let t=o-160;if(bt>=I)return tr.slice(I-Ke,(I+=t)-Ke);if(bt==0&&rr<140){let A=t<16?nl(t):Zc(t);if(A!=null)return A}return tl(t)}else{let t;switch(o){case 192:return null;case 193:return He?(t=qA(),t>0?He[1].slice(He.position1,He.position1+=t):He[0].slice(He.position0,He.position0-=t)):rl;case 194:return!1;case 195:return!0;case 196:return _a(oA[I++]);case 197:return t=LA.getUint16(I),I+=2,_a(t);case 198:return t=LA.getUint32(I),I+=4,_a(t);case 199:return Ir(oA[I++]);case 200:return t=LA.getUint16(I),I+=2,Ir(t);case 201:return t=LA.getUint32(I),I+=4,Ir(t);case 202:if(t=LA.getFloat32(I),Ee.useFloat32>2){let A=os[(oA[I]&127)<<1|oA[I+1]>>7];return I+=4,(A*t+(t>0?.5:-.5)>>0)/A}return I+=4,t;case 203:return t=LA.getFloat64(I),I+=8,t;case 204:return oA[I++];case 205:return t=LA.getUint16(I),I+=2,t;case 206:return t=LA.getUint32(I),I+=4,t;case 207:return Ee.int64AsNumber?(t=LA.getUint32(I)*4294967296,t+=LA.getUint32(I+4)):t=LA.getBigUint64(I),I+=8,t;case 208:return LA.getInt8(I++);case 209:return t=LA.getInt16(I),I+=2,t;case 210:return t=LA.getInt32(I),I+=4,t;case 211:return Ee.int64AsNumber?(t=LA.getInt32(I)*4294967296,t+=LA.getUint32(I+4)):t=LA.getBigInt64(I),I+=8,t;case 212:if(t=oA[I++],t==114)return Yc(oA[I++]&63);{let A=we[t];if(A)return A.read?(I++,A.read(qA())):A.noBuffer?(I++,A()):A(oA.subarray(I,++I));throw new Error("Unknown extension "+t)}case 213:return t=oA[I],t==114?(I++,Yc(oA[I++]&63,oA[I++])):Ir(2);case 214:return Ir(4);case 215:return Ir(8);case 216:return Ir(16);case 217:return t=oA[I++],bt>=I?tr.slice(I-Ke,(I+=t)-Ke):ly(t);case 218:return t=LA.getUint16(I),I+=2,bt>=I?tr.slice(I-Ke,(I+=t)-Ke):cy(t);case 219:return t=LA.getUint32(I),I+=4,bt>=I?tr.slice(I-Ke,(I+=t)-Ke):dy(t);case 220:return t=LA.getUint16(I),I+=2,Wc(t);case 221:return t=LA.getUint32(I),I+=4,Wc(t);case 222:return t=LA.getUint16(I),I+=2,qc(t);case 223:return t=LA.getUint32(I),I+=4,qc(t);default:if(o>=224)return o-256;if(o===void 0){let A=new Error("Unexpected end of MessagePack data");throw A.incomplete=!0,A}throw new Error("Unknown MessagePack token "+o)}}}var ay=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function ol(o,t){function A(){if(A.count++>2){let r=o.read=new Function("r","return function(){return {"+o.map(n=>ay.test(n)?n+":r()":"["+JSON.stringify(n)+"]:r()").join(",")+"}}")(qA);return o.highByte===0&&(o.read=Hc(t,o.read)),r()}let e={};for(let r=0,n=o.length;r<n;r++){let i=o[r];e[i]=qA()}return e}return A.count=0,o.highByte===0?Hc(t,A):A}var Hc=(o,t)=>function(){let A=oA[I++];if(A===0)return t();let e=o<32?-(o+(A<<5)):o+(A<<5),r=PA[e]||Kc()[e];if(!r)throw new Error("Record id is not defined for "+e);return r.read||(r.read=ol(r,o)),r.read()};function Kc(){let o=$c(()=>(oA=null,Ee.getStructures()));return PA=Ee._mergeStructures(o,PA)}var tl=rs,ly=rs,cy=rs,dy=rs;function rs(o){let t;if(o<16&&(t=nl(o)))return t;if(o>64&&$a)return $a.decode(oA.subarray(I,I+=o));let A=I+o,e=[];for(t="";I<A;){let r=oA[I++];if((r&128)===0)e.push(r);else if((r&224)===192){let n=oA[I++]&63;e.push((r&31)<<6|n)}else if((r&240)===224){let n=oA[I++]&63,i=oA[I++]&63;e.push((r&31)<<12|n<<6|i)}else if((r&248)===240){let n=oA[I++]&63,i=oA[I++]&63,a=oA[I++]&63,l=(r&7)<<18|n<<12|i<<6|a;l>65535&&(l-=65536,e.push(l>>>10&1023|55296),l=56320|l&1023),e.push(l)}else e.push(r);e.length>=4096&&(t+=ae.apply(String,e),e.length=0)}return e.length>0&&(t+=ae.apply(String,e)),t}function Wc(o){let t=new Array(o);for(let A=0;A<o;A++)t[A]=qA();return t}function qc(o){if(Ee.mapsAsObjects){let t={};for(let A=0;A<o;A++)t[Jc()]=qA();return t}else{let t=new Map;for(let A=0;A<o;A++)t.set(qA(),qA());return t}}var ae=String.fromCharCode;function Zc(o){let t=I,A=new Array(o);for(let e=0;e<o;e++){let r=oA[I++];if((r&128)>0){I=t;return}A[e]=r}return ae.apply(String,A)}function nl(o){if(o<4)if(o<2){if(o===0)return"";{let t=oA[I++];if((t&128)>1){I-=1;return}return ae(t)}}else{let t=oA[I++],A=oA[I++];if((t&128)>0||(A&128)>0){I-=2;return}if(o<3)return ae(t,A);let e=oA[I++];if((e&128)>0){I-=3;return}return ae(t,A,e)}else{let t=oA[I++],A=oA[I++],e=oA[I++],r=oA[I++];if((t&128)>0||(A&128)>0||(e&128)>0||(r&128)>0){I-=4;return}if(o<6){if(o===4)return ae(t,A,e,r);{let n=oA[I++];if((n&128)>0){I-=5;return}return ae(t,A,e,r,n)}}else if(o<8){let n=oA[I++],i=oA[I++];if((n&128)>0||(i&128)>0){I-=6;return}if(o<7)return ae(t,A,e,r,n,i);let a=oA[I++];if((a&128)>0){I-=7;return}return ae(t,A,e,r,n,i,a)}else{let n=oA[I++],i=oA[I++],a=oA[I++],l=oA[I++];if((n&128)>0||(i&128)>0||(a&128)>0||(l&128)>0){I-=8;return}if(o<10){if(o===8)return ae(t,A,e,r,n,i,a,l);{let d=oA[I++];if((d&128)>0){I-=9;return}return ae(t,A,e,r,n,i,a,l,d)}}else if(o<12){let d=oA[I++],s=oA[I++];if((d&128)>0||(s&128)>0){I-=10;return}if(o<11)return ae(t,A,e,r,n,i,a,l,d,s);let c=oA[I++];if((c&128)>0){I-=11;return}return ae(t,A,e,r,n,i,a,l,d,s,c)}else{let d=oA[I++],s=oA[I++],c=oA[I++],u=oA[I++];if((d&128)>0||(s&128)>0||(c&128)>0||(u&128)>0){I-=12;return}if(o<14){if(o===12)return ae(t,A,e,r,n,i,a,l,d,s,c,u);{let p=oA[I++];if((p&128)>0){I-=13;return}return ae(t,A,e,r,n,i,a,l,d,s,c,u,p)}}else{let p=oA[I++],f=oA[I++];if((p&128)>0||(f&128)>0){I-=14;return}if(o<15)return ae(t,A,e,r,n,i,a,l,d,s,c,u,p,f);let m=oA[I++];if((m&128)>0){I-=15;return}return ae(t,A,e,r,n,i,a,l,d,s,c,u,p,f,m)}}}}}function _a(o){return Ee.copyBuffers?Uint8Array.prototype.slice.call(oA,I,I+=o):oA.subarray(I,I+=o)}function Ir(o){let t=oA[I++];if(we[t])return we[t](oA.subarray(I,I+=o));throw new Error("Unknown extension type "+t)}var Qc=new Array(4096);function Jc(){let o=oA[I++];if(o>=160&&o<192){if(o=o-160,bt>=I)return tr.slice(I-Ke,(I+=o)-Ke);if(!(bt==0&&rr<180))return tl(o)}else return I--,qA();let t=(o<<5^(o>1?LA.getUint16(I):o>0?oA[I]:0))&4095,A=Qc[t],e=I,r=I+o-3,n,i=0;if(A&&A.bytes==o){for(;e<r;){if(n=LA.getUint32(e),n!=A[i++]){e=1879048192;break}e+=4}for(r+=3;e<r;)if(n=oA[e++],n!=A[i++]){e=1879048192;break}if(e===r)return I=e,A.string;r-=3,e=I}for(A=[],Qc[t]=A,A.bytes=o;e<r;)n=LA.getUint32(e),A.push(n),e+=4;for(r+=3;e<r;)n=oA[e++],A.push(n);let a=o<16?nl(o):Zc(o);return a!=null?A.string=a:A.string=tl(o)}var Yc=(o,t)=>{var A=qA();let e=o;t!==void 0&&(o=o<32?-((t<<5)+o):(t<<5)+o,A.highByte=t);let r=PA[o];return r&&r.isShared&&((PA.restoreStructures||(PA.restoreStructures=[]))[o]=r),PA[o]=A,A.read=ol(A,e),A.read()},_c=typeof self=="object"?self:global;we[0]=()=>{};we[0].noBuffer=!0;we[101]=()=>{let o=qA();return(_c[o[0]]||Error)(o[1])};we[105]=o=>{let t=LA.getUint32(I-4);Ht||(Ht=new Map);let A=oA[I],e;A>=144&&A<160||A==220||A==221?e=[]:e={};let r={target:e};Ht.set(t,r);let n=qA();return r.used?Object.assign(e,n):(r.target=n,n)};we[112]=o=>{let t=LA.getUint32(I-4),A=Ht.get(t);return A.used=!0,A.target};we[115]=()=>new Set(qA());var il=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(o=>o+"Array");we[116]=o=>{let t=o[0],A=il[t];if(!A)throw new Error("Could not find typed array for code "+t);return new _c[A](Uint8Array.prototype.slice.call(o,1).buffer)};we[120]=()=>{let o=qA();return new RegExp(o[0],o[1])};we[98]=o=>{let t=(o[0]<<24)+(o[1]<<16)+(o[2]<<8)+o[3],A=I;I+=t-4,He=[qA(),qA()],He.position0=0,He.position1=0;let e=I;I=A;try{return qA()}finally{I=e}};we[255]=o=>o.length==4?new Date((o[0]*16777216+(o[1]<<16)+(o[2]<<8)+o[3])*1e3):o.length==8?new Date(((o[0]<<22)+(o[1]<<14)+(o[2]<<6)+(o[3]>>2))/1e6+((o[3]&3)*4294967296+o[4]*16777216+(o[5]<<16)+(o[6]<<8)+o[7])*1e3):o.length==12?new Date(((o[0]<<24)+(o[1]<<16)+(o[2]<<8)+o[3])/1e6+((o[4]&128?-281474976710656:0)+o[6]*1099511627776+o[7]*4294967296+o[8]*16777216+(o[9]<<16)+(o[10]<<8)+o[11])*1e3):new Date("invalid");function $c(o){let t=rr,A=I,e=el,r=Ke,n=bt,i=tr,a=Al,l=Ht,d=He,s=new Uint8Array(oA.slice(0,rr)),c=PA,u=PA.slice(0,PA.length),p=Ee,f=uo,m=o();return rr=t,I=A,el=e,Ke=r,bt=n,tr=i,Al=a,Ht=l,He=d,oA=s,uo=f,PA=c,PA.splice(0,PA.length,...u),Ee=p,LA=new DataView(oA.buffer,oA.byteOffset,oA.byteLength),m}function ts(){oA=null,Ht=null,PA=null}function Ad(o){o.unpack?we[o.type]=o.unpack:we[o.type]=o}var os=new Array(147);for(let o=0;o<256;o++)os[o]=+("1e"+Math.floor(45.15-o*.30103));var ns=new St({useRecords:!1}),uy=ns.unpack,py=ns.unpackMultiple,fy=ns.unpack,is={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},my=new Float32Array(1),$T=new Uint8Array(my.buffer,0,4);var ss;try{ss=new TextEncoder}catch{}var as,al,ls=typeof Buffer<"u",sl=ls?Buffer.allocUnsafeSlow:Uint8Array,od=ls?Buffer:Uint8Array,ed=ls?4294967296:2144337920,V,XA,E=0,wt,Tt=null,hy=/[\u0080-\uFFFF]/,Rn=Symbol("record-id"),Lr=class extends St{constructor(t){super(t),this.offset=0;let A,e,r,n,i,a,l=0,d=od.prototype.utf8Write?function(g,N,O){return V.utf8Write(g,N,O)}:ss&&ss.encodeInto?function(g,N){return ss.encodeInto(g,V.subarray(N)).written}:!1,s=this;t||(t={});let c=t&&t.sequential,u=t.structures||t.saveStructures,p=t.maxSharedStructures;if(p==null&&(p=u?32:0),p>8160)throw new Error("Maximum maxSharedStructure is 8160");let f=t.maxOwnStructures;f==null&&(f=u?32:64),c&&!t.saveStructures&&(this.structures=[]);let m=p>32||f+p>64,h=p+64,y=p+f+64;if(y>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let x=[],S=0,v=0;this.pack=this.encode=function(g,N){if(V||(V=new sl(8192),XA=new DataView(V.buffer,0,8192),E=0),wt=V.length-10,wt-E<2048?(V=new sl(V.length),XA=new DataView(V.buffer,0,V.length),wt=V.length-10,E=0):E=E+7&2147483640,e=E,a=s.structuredClone?new Map:null,s.bundleStrings?(Tt=["",""],V[E++]=214,V[E++]=98,Tt.position=E-e,E+=4):Tt=null,r=s.structures,r){r.uninitialized&&(r=s._mergeStructures(s.getStructures()));let O=r.sharedLength||0;if(O>p)throw new Error("Shared structures is larger than maximum shared structures, try increasing maxSharedStructures to "+r.sharedLength);if(!r.transitions){r.transitions=Object.create(null);for(let C=0;C<O;C++){let T=r[C];if(!T)continue;let L,M=r.transitions;for(let U=0,Z=T.length;U<Z;U++){let $=T[U];L=M[$],L||(L=M[$]=Object.create(null)),M=L}M[Rn]=C+64}l=O}c||(r.nextId=O+64)}n&&(n=!1),i=r||[];try{if(b(g),Tt){XA.setUint32(Tt.position+e,E-Tt.position-e);let O=Tt;Tt=null,b(O[0]),b(O[1])}if(s.offset=E,a&&a.idsToInsert){E+=a.idsToInsert.length*6,E>wt&&w(E),s.offset=E;let O=gy(V.subarray(e,E),a.idsToInsert);return a=null,O}return N&id?(V.start=e,V.end=E,V):V.subarray(e,E)}finally{if(r){if(v<10&&v++,S>1e4)r.transitions=null,v=0,S=0,x.length>0&&(x=[]);else if(x.length>0&&!c){for(let O=0,C=x.length;O<C;O++)x[O][Rn]=0;x=[]}if(n&&s.saveStructures){let O=r.sharedLength||p;r.length>O&&(r=r.slice(0,O));let C=V.subarray(e,E);return s.saveStructures(r,l)===!1?(s._mergeStructures(s.getStructures()),s.pack(g)):(l=O,C)}}N&Oy&&(E=e)}};let b=g=>{E>wt&&(V=w(E));var N=typeof g,O;if(N==="string"){let C=g.length;if(Tt&&C>=8&&C<4096){let M=hy.test(g);Tt[M?0:1]+=g,V[E++]=193,b(M?-C:C);return}let T;C<32?T=1:C<256?T=2:C<65536?T=3:T=5;let L=C*3;if(E+L>wt&&(V=w(E+L)),C<64||!d){let M,U,Z,$=E+T;for(M=0;M<C;M++)U=g.charCodeAt(M),U<128?V[$++]=U:U<2048?(V[$++]=U>>6|192,V[$++]=U&63|128):(U&64512)===55296&&((Z=g.charCodeAt(M+1))&64512)===56320?(U=65536+((U&1023)<<10)+(Z&1023),M++,V[$++]=U>>18|240,V[$++]=U>>12&63|128,V[$++]=U>>6&63|128,V[$++]=U&63|128):(V[$++]=U>>12|224,V[$++]=U>>6&63|128,V[$++]=U&63|128);O=$-E-T}else O=d(g,E+T,L);O<32?V[E++]=160|O:O<256?(T<2&&V.copyWithin(E+2,E+1,E+1+O),V[E++]=217,V[E++]=O):O<65536?(T<3&&V.copyWithin(E+3,E+2,E+2+O),V[E++]=218,V[E++]=O>>8,V[E++]=O&255):(T<5&&V.copyWithin(E+5,E+3,E+3+O),V[E++]=219,XA.setUint32(E,O),E+=4),E+=O}else if(N==="number")if(g>>>0===g)g<64?V[E++]=g:g<256?(V[E++]=204,V[E++]=g):g<65536?(V[E++]=205,V[E++]=g>>8,V[E++]=g&255):(V[E++]=206,XA.setUint32(E,g),E+=4);else if(g>>0===g)g>=-32?V[E++]=256+g:g>=-128?(V[E++]=208,V[E++]=g+256):g>=-32768?(V[E++]=209,XA.setInt16(E,g),E+=2):(V[E++]=210,XA.setInt32(E,g),E+=4);else{let C;if((C=this.useFloat32)>0&&g<4294967296&&g>=-2147483648){V[E++]=202,XA.setFloat32(E,g);let T;if(C<4||(T=g*os[(V[E]&127)<<1|V[E+1]>>7])>>0===T){E+=4;return}else E--}V[E++]=203,XA.setFloat64(E,g),E+=8}else if(N==="object")if(!g)V[E++]=192;else{if(a){let T=a.get(g);if(T){if(!T.id){let L=a.idsToInsert||(a.idsToInsert=[]);T.id=L.push(T)}V[E++]=214,V[E++]=112,XA.setUint32(E,T.id),E+=4;return}else a.set(g,{offset:E-e})}let C=g.constructor;if(C===Object)P(g,!0);else if(C===Array){O=g.length,O<16?V[E++]=144|O:O<65536?(V[E++]=220,V[E++]=O>>8,V[E++]=O&255):(V[E++]=221,XA.setUint32(E,O),E+=4);for(let T=0;T<O;T++)b(g[T])}else if(C===Map){O=g.size,O<16?V[E++]=128|O:O<65536?(V[E++]=222,V[E++]=O>>8,V[E++]=O&255):(V[E++]=223,XA.setUint32(E,O),E+=4);for(let[T,L]of g)b(T),b(L)}else{for(let T=0,L=as.length;T<L;T++){let M=al[T];if(g instanceof M){let U=as[T];if(U.write){U.type&&(V[E++]=212,V[E++]=U.type,V[E++]=0),b(U.write.call(this,g));return}let Z=V,$=XA,iA=E;V=null;let k;try{k=U.pack.call(this,g,q=>(V=Z,Z=null,E+=q,E>wt&&w(E),{target:V,targetView:XA,position:E-q}),b)}finally{Z&&(V=Z,XA=$,E=iA,wt=V.length-10)}k&&(k.length+E>wt&&w(k.length+E),E=yy(k,V,E,U.type));return}}P(g,!g.hasOwnProperty)}}else if(N==="boolean")V[E++]=g?195:194;else if(N==="bigint"){if(g<BigInt(1)<<BigInt(63)&&g>=-(BigInt(1)<<BigInt(63)))V[E++]=211,XA.setBigInt64(E,g);else if(g<BigInt(1)<<BigInt(64)&&g>0)V[E++]=207,XA.setBigUint64(E,g);else if(this.largeBigIntToFloat)V[E++]=203,XA.setFloat64(E,Number(g));else throw new RangeError(g+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");E+=8}else if(N==="undefined")this.encodeUndefinedAsNil?V[E++]=192:(V[E++]=212,V[E++]=0,V[E++]=0);else if(N==="function")b(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+N)},P=this.useRecords===!1?this.variableMapSize?g=>{let N=Object.keys(g),O=N.length;O<16?V[E++]=128|O:O<65536?(V[E++]=222,V[E++]=O>>8,V[E++]=O&255):(V[E++]=223,XA.setUint32(E,O),E+=4);let C;for(let T=0;T<O;T++)b(C=N[T]),b(g[C])}:(g,N)=>{V[E++]=222;let O=E-e;E+=2;let C=0;for(let T in g)(N||g.hasOwnProperty(T))&&(b(T),b(g[T]),C++);V[O+++e]=C>>8,V[O+e]=C&255}:g=>{let N=Object.keys(g),O,C=i.transitions||(i.transitions=Object.create(null)),T=0;for(let M=0,U=N.length;M<U;M++){let Z=N[M];O=C[Z],O||(O=C[Z]=Object.create(null),T++),C=O}let L=C[Rn];if(L)L>=96&&m?(V[E++]=((L-=96)&31)+96,V[E++]=L>>5):V[E++]=L;else{L=i.nextId,L||(L=64),L<h&&this.shouldShareStructure&&!this.shouldShareStructure(N)?(L=i.nextOwnId,L<y||(L=h),i.nextOwnId=L+1):(L>=y&&(L=h),i.nextId=L+1);let M=N.highByte=L>=96&&m?L-96>>5:-1;C[Rn]=L,i[L-64]=N,L<h?(N.isShared=!0,i.sharedLength=L-63,n=!0,M>=0?(V[E++]=(L&31)+96,V[E++]=M):V[E++]=L):(M>=0?(V[E++]=213,V[E++]=114,V[E++]=(L&31)+96,V[E++]=M):(V[E++]=212,V[E++]=114,V[E++]=L),T&&(S+=v*T),x.length>=f&&(x.shift()[Rn]=0),x.push(C),b(N))}for(let M=0,U=N.length;M<U;M++)b(g[N[M]])},w=g=>{let N;if(g>16777216){if(g-e>ed)throw new Error("Packed buffer would be larger than maximum buffer size");N=Math.min(ed,Math.round(Math.max((g-e)*(g>67108864?1.25:2),4194304)/4096)*4096)}else N=(Math.max(g-e<<2,V.length-1)>>12)+1<<12;let O=new sl(N);return XA=new DataView(O.buffer,0,N),V.copy?V.copy(O,0,e,g):O.set(V.slice(e,g)),E-=e,e=0,wt=O.length-10,V=O}}useBuffer(t){V=t,XA=new DataView(V.buffer,V.byteOffset,V.byteLength),E=0}};al=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Gn];as=[{pack(o,t,A){let e=o.getTime()/1e3;if((this.useTimestamp32||o.getMilliseconds()===0)&&e>=0&&e<4294967296){let{target:r,targetView:n,position:i}=t(6);r[i++]=214,r[i++]=255,n.setUint32(i,e)}else if(e>0&&e<17179869184){let{target:r,targetView:n,position:i}=t(10);r[i++]=215,r[i++]=255,n.setUint32(i,o.getMilliseconds()*4e6+(e/1e3/4294967296>>0)),n.setUint32(i+4,e)}else if(isNaN(e)){if(this.onInvalidDate)return t(0),A(this.onInvalidDate());let{target:r,targetView:n,position:i}=t(3);r[i++]=212,r[i++]=255,r[i++]=255}else{let{target:r,targetView:n,position:i}=t(15);r[i++]=199,r[i++]=12,r[i++]=255,n.setUint32(i,o.getMilliseconds()*1e6),n.setBigInt64(i+4,BigInt(Math.floor(e)))}}},{pack(o,t,A){let e=Array.from(o),{target:r,position:n}=t(this.structuredClone?3:0);this.structuredClone&&(r[n++]=212,r[n++]=115,r[n++]=0),A(e)}},{pack(o,t,A){let{target:e,position:r}=t(this.structuredClone?3:0);this.structuredClone&&(e[r++]=212,e[r++]=101,e[r++]=0),A([o.name,o.message])}},{pack(o,t,A){let{target:e,position:r}=t(this.structuredClone?3:0);this.structuredClone&&(e[r++]=212,e[r++]=120,e[r++]=0),A([o.source,o.flags])}},{pack(o,t){this.structuredClone?td(o,16,t):rd(ls?Buffer.from(o):new Uint8Array(o),t)}},{pack(o,t){let A=o.constructor;A!==od&&this.structuredClone?td(o,il.indexOf(A.name),t):rd(o,t)}},{pack(o,t){let{target:A,position:e}=t(1);A[e]=193}}];function td(o,t,A,e){let r=o.byteLength;if(r+1<256){var{target:n,position:i}=A(4+r);n[i++]=199,n[i++]=r+1}else if(r+1<65536){var{target:n,position:i}=A(5+r);n[i++]=200,n[i++]=r+1>>8,n[i++]=r+1&255}else{var{target:n,position:i,targetView:a}=A(7+r);n[i++]=201,a.setUint32(i,r+1),i+=4}n[i++]=116,n[i++]=t,n.set(new Uint8Array(o.buffer,o.byteOffset,o.byteLength),i)}function rd(o,t){let A=o.byteLength;var e,r;if(A<256){var{target:e,position:r}=t(A+2);e[r++]=196,e[r++]=A}else if(A<65536){var{target:e,position:r}=t(A+3);e[r++]=197,e[r++]=A>>8,e[r++]=A&255}else{var{target:e,position:r,targetView:n}=t(A+5);e[r++]=198,n.setUint32(r,A),r+=4}e.set(o,r)}function yy(o,t,A,e){let r=o.length;switch(r){case 1:t[A++]=212;break;case 2:t[A++]=213;break;case 4:t[A++]=214;break;case 8:t[A++]=215;break;case 16:t[A++]=216;break;default:r<256?(t[A++]=199,t[A++]=r):r<65536?(t[A++]=200,t[A++]=r>>8,t[A++]=r&255):(t[A++]=201,t[A++]=r>>24,t[A++]=r>>16&255,t[A++]=r>>8&255,t[A++]=r&255)}return t[A++]=e,t.set(o,A),A+=r,A}function gy(o,t){let A,e=t.length*6,r=o.length-e;for(t.sort((n,i)=>n.offset>i.offset?1:-1);A=t.pop();){let n=A.offset,i=A.id;o.copyWithin(n+e,n,r),e-=6;let a=n+e;o[a++]=214,o[a++]=105,o[a++]=i>>24,o[a++]=i>>16&255,o[a++]=i>>8&255,o[a++]=i&255,r=n}return o}function or(o){if(o.Class){if(!o.pack&&!o.write)throw new Error("Extension has no pack or write function");if(o.pack&&!o.type)throw new Error("Extension has no type (numeric code to identify the extension)");al.unshift(o.Class),as.unshift(o)}Ad(o)}var nd=new Lr({useRecords:!1}),xy=nd.pack,vy=nd.pack;var{NEVER:by,ALWAYS:Sy,DECIMAL_ROUND:wy,DECIMAL_FIT:Ty}=is,id=512,Oy=1024;var sd=new Lr({structuredClone:!0});or({Class:VA.prototype.constructor,type:1,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,VA.prototype),o}});or({Class:gA.prototype.constructor,type:2,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,gA.prototype),o}});or({Class:_A.prototype.constructor,type:3,write(o){return[...o]},read(o){return Object.setPrototypeOf(o,_A.prototype),o}});or({Class:Bn.prototype.constructor,type:4,write(o){return o.id},read(o){return new Bn(o)}});or({Class:Dn.prototype.constructor,type:5,write(o){return o.data},read(o){return new Dn(o)}});or({Class:kA.prototype.constructor,type:6,write(o){return{...o}},read(o){return Object.setPrototypeOf(o,kA.prototype),o}});function Py(o){var t=0;if(o.length===0)return t;for(let A=0;A<o.length;A++){let e=o[A];t=(t<<5)-t+e,t=t&t}return t}function ll(o){if(no(o))return o;if(Array.isArray(o))return o.map(ll);if(typeof o=="object"&&o!==null){let t={};for(let A of Object.keys(o).sort())t[A]=ll(o[A]);return Object.setPrototypeOf(t,Object.getPrototypeOf(o)),t}else return o}var cs;(e=>{function o(r){return sd.pack(r)}e.serialize=o;function t(r){return sd.unpack(r)}e.deserialize=t;function A(r){return Py(o(ll(r))).toString()}e.checksum=A})(cs||(cs={}));var ad;(A=>{function o(e,r){return e[0]===r[0]&&e[1]===r[1]}A.isEqual=o;function t(e,r,n){return[e[0]+(r[0]-e[0])*n,e[1]+(r[1]-e[1])*n]}A.lerp=t})(ad||(ad={}));var nr;(i=>{function o(a,l){return a[0]===l[0]&&a[1]===l[1]&&a[2]===l[2]}i.isEqual=o;function t(a,l){return[a[0]+l[0],a[1]+l[1],a[2]+l[2]]}i.add=t;function A(a,l){return[a[0]-l[0],a[1]-l[1],a[2]-l[2]]}i.sub=A;function e(a,l){return[a[0]/l[0],a[1]/l[1],a[2]/l[2]]}i.div=e;function r(a,l){return[a[0]*l[0],a[1]*l[1],a[2]*l[2]]}i.mul=r;function n(a,l,d){return[a[0]+(l[0]-a[0])*d,a[1]+(l[1]-a[1])*d,a[2]+(l[2]-a[2])*d]}i.lerp=n})(nr||(nr={}));var ld;(A=>{function o(e,r){return e[0]===r[0]&&e[1]===r[1]&&e[2]===r[2]&&e[3]===r[3]}A.isEqual=o;function t(e,r,n){return[e[0]+(r[0]-e[0])*n,e[1]+(r[1]-e[1])*n,e[2]+(r[2]-e[2])*n,e[3]+(r[3]-e[3])*n]}A.lerp=t})(ld||(ld={}));var ir;(r=>{r.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function t(n,i){for(let a=0;a<16;a++)if(n[a]!==i[a])return!1;return!0}r.isEqual=t;function A(n){return n??r.identity}r.simplify=A;function e(n,i){let a=i.slice(0);for(var l=0,d=i.length;l<d;l+=3){let s=n[3]*i[l]+n[7]*i[l+1]+n[11]*i[l+2]+n[15];a[l]=(n[0]*i[l]+n[4]*i[l+1]+n[8]*i[l+2]+n[12])/s,a[l+1]=(n[1]*i[l]+n[5]*i[l+1]+n[9]*i[l+2]+n[13])/s,a[l+2]=(n[2]*i[l]+n[6]*i[l+1]+n[10]*i[l+2]+n[14])/s}return a}r.applyMatrix4=e})(ir||(ir={}));var Me;(d=>{function o(s){return typeof s=="object"&&typeof s.r=="number"&&typeof s.g=="number"&&typeof s.b=="number"}d.isRGB=o,d.white={r:1,g:1,b:1},d.red={r:1,g:0,b:0},d.black={r:0,g:0,b:0};function r(s){return{r:Math.round(s.r*255),g:Math.round(s.g*255),b:Math.round(s.b*255),a:1}}d.toRgb255a1=r;function n(s){return{r:s.r,g:s.g,b:s.b}}d.clone=n;function i(s){return s=Math.floor(s),{r:(s>>16&255)/255,g:(s>>8&255)/255,b:(s&255)/255}}d.fromHex=i;function a(s,c){return s.r===c.r&&s.g===c.g&&s.b===c.b}d.equals=a;function l(s,c,u){return{r:s.r+(c.r-s.r)*u,g:s.g+(c.g-s.g)*u,b:s.b+(c.b-s.b)*u}}d.lerp=l})(Me||(Me={}));var nt;(a=>{a.white={...Me.white,a:1},a.transparent={...Me.white,a:0};function A(l){return{r:l[0],g:l[1],b:l[2],a:l[3]}}a.from0to1=A;function e(l,d){return{...Me.fromHex(l),a:d}}a.fromHexAndA=e;function r(l){return{r:Math.round(l.r*255),g:Math.round(l.g*255),b:Math.round(l.b*255),a:l.a}}a.toRgb255a1=r;function n(l,d){return Me.equals(l,d)&&l.a===d.a}a.equals=n;function i(l,d,s){return{r:l.r+(d.r-l.r)*s,g:l.g+(d.g-l.g)*s,b:l.b+(d.b-l.b)*s,a:l.a+(d.a-l.a)*s}}a.lerp=i})(nt||(nt={}));var ds;(t=>t.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(ds||(ds={}));var cd;(t=>t.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(cd||(cd={}));var dd;(t=>t.defaultData={control1:[.5,.05],control2:[.1,.3]})(dd||(dd={}));var it;(A=>{A.all=["PerspectiveCamera","OrthographicCamera"];function t(e){return A.all.includes(e)}A.is=t})(it||(it={}));var Er;(r=>{r.DefaultUp=[0,1,0],r.DefaultTargetOffset=1e3,r.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:70,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:r.DefaultUp,isUpVectorFlipped:!1,targetOffset:r.DefaultTargetOffset};function e(n){return n.type==="PerspectiveCamera"?n.perspective.zoom:n.orthographic.zoom}r.getZoom=e})(Er||(Er={}));var Ot;(A=>{function o(e,r=.1){return{disabled:!1,type:"linear",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]},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:[e[0]+e[0]*r,0,0]},grid:{count:[2,2,2],size:e.map(n=>n*(1+r)),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"}}}A.defaultData=o;function t(e,r){let n={...e};if(Ny.forEach(i=>{Object.assign(n,{[i]:r[i]??e[i]})}),n.radial={...e.radial},r.radial){let i=e.radial,a=r.radial;Cy.forEach(l=>{Object.assign(n.radial,{[l]:a[l]??i[l]})})}if(n.linear={...e.linear},r.linear){let i=e.linear,a=r.linear;Iy.forEach(l=>{Object.assign(n.linear,{[l]:a[l]??i[l]})})}if(n.grid={...e.grid},r.grid){let i=e.grid,a=r.grid;Ly.forEach(l=>{Object.assign(n.grid,{[l]:a[l]??i[l]})})}if(n.toObject={...e.toObject},r.toObject){let i=e.toObject,a=r.toObject;Ey.forEach(l=>{Object.assign(n.toObject,{[l]:a[l]??i[l]})})}if(n.randomnessObject={...e.randomnessObject},r.randomnessObject){let i=e.randomnessObject,a=r.randomnessObject;My.forEach(l=>{Object.assign(n.randomnessObject,{[l]:a[l]??i[l]})})}return n}A.merge=t})(Ot||(Ot={}));var us;(e=>{e.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}};let t=["radial","linear","grid","toObject","randomnessObject"];function A(r,n){let i=[];r.count!==void 0&&i.push({type:0,path:n,props:{count:r.count}});for(let a of t){let l=r[a];l&&Object.keys(l).length>0&&i.push({type:0,path:[...n,a],props:l})}return i}e.toOps=A})(us||(us={}));var Ny=["count"],Cy=["radius","start","end","position","scale","rotation"],Iy=["position","scale","rotation"],Ly=["count","size"],Ey=["count","position","scale","rotation"],My=["strength","scale","rotation","position","movement","seed","freqScale"];var ps;(A=>{A.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function t(e){return A.all.includes(e)}A.is=t})(ps||(ps={}));var fs;(A=>{function o(e){return t(e)}A.defaultData=o;function t(e){if(e==="PointLight")return{type:e,color:nt.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(e==="SpotLight")return{type:e,color:nt.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(e==="DirectionalLight")return{type:e,color:nt.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(fs||(fs={}));var cl;(A=>{A.defaultData={castShadow:!0,receiveShadow:!0};function t(e,r){return e.castShadow===r.castShadow&&e.receiveShadow===r.receiveShadow}A.equals=t})(cl||(cl={}));var dl;(A=>{A.defaultData={flatShading:!1,wireframe:!1,side:0};function t(e,r){return e.flatShading===r.flatShading&&e.side===r.side&&e.wireframe===r.wireframe}A.equals=t})(dl||(dl={}));var ms;(t=>t.defaultData={...dl.defaultData,...cl.defaultData})(ms||(ms={}));var ud="data:video/mp4;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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Lb/mqRv1RGizssN0zl5LaFhWN+cgTuNPIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwCEAA0BoG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADf/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3iQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAIQADQGgb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAhAANAaBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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";var po;(A=>(A.defaultVideo={data:ud,thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},A.maxSize=3e7))(po||(po={}));var pd=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],fd=["wrapping","image","video"],Te;(r=>{function o(n,i){let{texture:a,...l}=i;if(Object.assign(n,l),a){let d=n.texture;d&&Object.assign(d,a)}}r.patch=o;function t(n,i){return n==="light"&&i?A(i):e(n)}r.defaultData=t;function A(n){switch(n){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(n){switch(n){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:1e3,repeat:[1,1],offset:[0,0]},crop:!1};case"video":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"video",projection:0,texture:{video:po.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Me.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:{...Me.fromHex(6710886),a:1},colorB:{...Me.fromHex(6710886),a:1},colorC:{...Me.fromHex(16777215),a:1},colorD:{...Me.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:nt.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:nt.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:nt.fromHexAndA(0,1),contourColor:nt.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}}}})(Te||(Te={}));var Be;(l=>{function o(d){return!d.layers.some(c=>c.data.type==="texture"&&c.data.projection!==0||c.data.type==="depth"&&!c.data.isWorldSpace||c.data.type==="noise"||c.data.type==="displace")}l.isMergable=o;function t(d){let s="";return d.layers.forEach(c=>{Object.entries(c.data).forEach(([u,p])=>{s+=`${u}${p}`,Array.isArray(p)?p.forEach(f=>s+=`${f}`):typeof p=="object"?Object.values(p).forEach(f=>{typeof f=="number"?s+=`${f.toFixed(4)}`:s+=`${f}`}):s+=`${p}`})}),s}l.getHash=t;function A(){return{layers:new gA}}l.defaultEmptyData=A;function e(d="layer1",s="layer2"){return n("phong",d,s)}l.defaultData=e;function r(d,s){return{...d,name:s}}l.withName=r;function n(d,s="layer1",c="layer2"){let u=new gA;return u.push({fi:0,data:Te.defaultData("light",d),id:s}),u.push({fi:1,data:Te.defaultData("color"),id:c}),{layers:u}}l.defaultTwoLayerData=n;function i(d,s="phong",c="layer1",u="layer2"){let p=Te.defaultData("texture");Object.assign(p.texture,{image:d});let f=new gA;return f.push({fi:0,data:p,id:c}),f.push({fi:1,data:Te.defaultData("light",s),id:u}),{layers:f}}l.defaultTwoLayerTextureData=i;function a(d,s="phong",c="layer1",u="layer2"){let p=Te.defaultData("video");Object.assign(p.texture,{video:d});let f=new gA;return f.push({fi:0,data:p,id:c}),f.push({fi:1,data:Te.defaultData("light",s),id:u}),{layers:f}}l.defaultTwoLayerVideoTextureData=a})(Be||(Be={}));var fo;(t=>{function o(){return{points:new gA,roundness:0,shapeHoles:[],isClosed:!1}}t.defaultData=o})(fo||(fo={}));var Vn;(t=>{function o(A){return A==="PolygonGeometry"||A==="RectangleGeometry"||A==="StarGeometry"||A==="TriangleGeometry"||A==="EllipseGeometry"}t.is2DParametricMesh=o})(Vn||(Vn={}));var sr;(t=>{function o(A){if(A==="RectangleGeometry")return{width:320,height:320,type:A,cornerRadius:[0,0,0,0],cornerType:0,depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(A==="VectorGeometry")return{width:1,height:1,type:A,subdivisions:12,shape:fo.defaultData(),depth:0,extrudeBevelSize:0,extrudeBevelSegments:1};if(A==="BooleanGeometry")return{type:A,operation:2,width:0,height:0,depth:0,phongAngle:35};if(A==="TextGeometry")return{type:A,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=o})(sr||(sr={}));var md;(A=>{function o(e){return e==="Component"||e==="Instance"}A.isComponentRelated=o;function t(e){return e==="Empty"||e==="Instance"}A.isEmptyOrComponent=t})(md||(md={}));var mo;(r=>{r.identity={...ds.identity,hiddenMatrix:ir.identity};function t(n){return{position:n.position,rotation:n.rotation,scale:n.scale,hiddenMatrix:n.hiddenMatrix}}r.fromObject=t;function A(n,i){return{position:i?.position||n.position,rotation:i?.rotation||n.rotation,scale:i?.scale||n.scale,hiddenMatrix:i?.hiddenMatrix||n.hiddenMatrix}}r.merge=A;function e(n,i){return{position:nr.isEqual(n.position,i.position)?null:i.position,rotation:nr.isEqual(n.rotation,i.rotation)?null:i.rotation,scale:nr.isEqual(n.scale,i.scale)?null:i.scale,hiddenMatrix:ir.isEqual(n.hiddenMatrix,i.hiddenMatrix)?null:i.hiddenMatrix}}r.diff=e})(mo||(mo={}));var ul;(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]})(ul||(ul={}));var We;(t=>t.defaultData={states:new gA,events:new gA,visible:!0,raycastLock:!1,physics:null,...mo.identity,cloner:null})(We||(We={}));var hd;(t=>t.defaultData={type:"Empty",...We.defaultData})(hd||(hd={}));var yd;(t=>t.defaultData={type:"Component",...We.defaultData})(yd||(yd={}));var Mr;(t=>t.defaultData={type:"Mesh",...We.defaultData,...ms.defaultData})(Mr||(Mr={}));var ho;(t=>t.defaultData={...We.defaultData,...mo.identity,...Er.defaultData})(ho||(ho={}));var gd;(t=>{function o(A){return{...We.defaultData,...fs.defaultData(A)}}t.defaultData=o})(gd||(gd={}));var yo;(A=>{function o(e,r,n=0){for(;n<r.length;){let i=e?e[r[n]]:void 0;if(r.length===n+1)return i;if(i)e=i.descendants,n+=1;else return}}A.resolveWithDes=o;function t(e,r,n=0){let i=o(e,r,n);if(i){let a=Object.keys(i);if(a.length===1&&a[0]==="descendants")return}return i}A.resolve=t})(yo||(yo={}));var ar;(n=>{n.rootOverrideProps=["physics"],n.compositeNonOptionalOverrideProps=["geometry"],n.compositeEntireOverrideOverrideProps=["material"];function e(i,a){return{...We.defaultData,...a,component:i,overrides:new kA,physics:void 0,type:"Instance"}}n.ofComponent=e;function r(i){let a=mo.fromObject(i.data);return e(i.id,a)}n.fromComponentData=r})(ar||(ar={}));var xd;(n=>(n.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:ir.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:ul.defaultData,states:new gA,events:new gA,cloner:null,...Er.defaultData},n.KeysByResetCategory={States:["states"],Events:["events"],Material:["material","materials"],Geometry:["geometry"],Position:["position"],Rotation:["rotation"],Scale:["scale"],Transform:["position","scale","rotation","hiddenMatrix"],Name:["name"],Visibility:["visible","raycastLock","flatShading","wireframe","side"],Shadows:["castShadow","receiveShadow"],Cloner:["cloner"],Physics:["physics"]},n.defaultMeshObject={name:"Rectangle",...We.defaultData,...Mr.defaultData,geometry:sr.defaultData("RectangleGeometry"),material:Be.defaultTwoLayerData("phong","layer1","layer2")},n.defaultBooleanObject={name:"Boolean",...We.defaultData,...Mr.defaultData,geometry:sr.defaultData("BooleanGeometry"),material:Be.defaultTwoLayerData("phong","layer1","layer2")},n.defaultTextObject={name:"Text",...We.defaultData,...Mr.defaultData,geometry:sr.defaultData("TextGeometry"),material:Be.defaultTwoLayerData("phong","layer1","layer2")}))(xd||(xd={}));var Br;(r=>{function o(n,i){let a={name:i};return n.type==="Mesh"?(a.geometry={},"material"in n&&(a.material={layers:new kA}),"materials"in n&&(a.materials=n.materials.map(l=>({layers:new kA})))):it.is(n.type)&&(a.perspective={},a.orthographic={}),a}r.newEmpty=o;function t(n,i){if(i===void 0)return n;let a={...n};return"material"in a&&"material"in i&&i.material&&(a.material=co(a.material,l=>{if(typeof l!="string")for(let[d,s]of Object.entries(i.material.layers)){let c=l.layers.data(d);c&&Te.patch(c,s)}}).data),a.materials&&i.materials&&(a.materials=co(a.materials,l=>{for(let d=0;d<a.materials.length;d++){let s=i.materials[d];if(typeof s!="string")for(let[c,u]of Object.entries(s.layers)){let p=l[d]?.layers?.data(c);p&&Te.patch(p,u)}}}).data),a}function A(n,i){let a,l=[],d={orthographic:0,perspective:0,geometry:0};function s(c,u){for(let[p,f]of Object.entries(u.layers)){let{texture:m,...h}=f;if(m!==void 0&&Object.keys(m).length>0){let y={path:[...c,"layers",p,"texture"],props:m,type:0};l.push(y)}if(Object.keys(h).length>0){let y={path:[...c,"layers",p],props:h,type:0};l.push(y)}}}for(let[c,u]of Object.entries(i))if(c!=="name")if(c==="cloner")l.push(...us.toOps(u,["cloner"]));else if(c==="material")s(["material"],u);else if(c==="materials")for(let[p,f]of Object.entries(u))s(["materials",p],f);else if(d[c]===0){if(Object.keys(u).length>0){let p={path:[c],props:u,type:0};l.push(p)}}else a===void 0&&(a={path:[],props:{},type:0},l.push(a)),a.props[c]=u;return l}r.toOps=A;function e(n,i){if(i===void 0)return n;let a={...n};if(Object.assign(a,mo.merge(a,i)),it.is(n.type)){a.orthographic={...a.orthographic},a.perspective={...a.perspective};let l=i;l.orthographic?.zoom!==void 0&&(a.orthographic.zoom=l.orthographic.zoom),l.perspective?.zoom!==void 0&&(a.perspective.zoom=l.perspective.zoom),l.isUpVectorFlipped!==void 0&&(a.isUpVectorFlipped=l.isUpVectorFlipped),l.targetOffset!==void 0&&(a.targetOffset=l.targetOffset)}else if(n.type==="Mesh")i.geometry&&(a.geometry={...a.geometry},Object.assign(a.geometry,i.geometry)),(i.material||i.materials)&&(a=t(a,i)),a.cloner&&"cloner"in i&&Object.assign(a,{cloner:Ot.merge(a.cloner,i.cloner)});else if(n.type==="Empty")a.cloner&&"cloner"in i&&Object.assign(a,{cloner:Ot.merge(a.cloner,i.cloner)});else if(ps.is(n.type)){let l=i;l.intensity!==void 0&&(a.intensity=l.intensity),l.color!==void 0&&(typeof l.color=="string"?a.color=l.color:a.color=Me.clone(l.color))}return a}r.patch=e})(Br||(Br={}));var go;(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})(go||(go={}));var hs;(t=>t.defaultData={orbitControls:go.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,hideCursor:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:typeof window<"u"?Math.floor(window.devicePixelRatio):1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((A,e)=>{let r=0,n=0;return e<5?n=-30:e<10&&(n=30),e===0||e===10||e===5?r=30:(e===4||e===11||e===9)&&(r=-30),[120,[r,n],"show"]}),gameControlObject:null})(hs||(hs={}));function lr(o,t){return Object.setPrototypeOf(o,t),o}var cr=void 0!=="true";function ys(o){return Array.isArray(o)?o:[o]}function vd(o,t){let A=0;for(;A<o.length&&A<t.length;){if(o[A]<t[A])return-1;if(o[A]>t[A])return 1;A+=1}return A!==t.length?-1:A!==o.length?1:0}var gs;(A=>{function o(){let e={};return e["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},lr(e,VA.prototype)}A.defaultColors=o;function t(){return{materials:new VA,images:new VA,videos:new VA,colors:new VA,audios:new VA,fonts:new VA,penumbraSize:[.5,.5,.5]}}A.emptyData=t})(gs||(gs={}));var By=typeof global=="object"&&global&&global.Object===Object&&global,xs=By;var Dy=typeof self=="object"&&self&&self.Object===Object&&self,Gy=xs||Dy||Function("return this")(),$A=Gy;var Ry=$A.Symbol,le=Ry;var bd=Object.prototype,Vy=bd.hasOwnProperty,jy=bd.toString,Fn=le?le.toStringTag:void 0;function Fy(o){var t=Vy.call(o,Fn),A=o[Fn];try{o[Fn]=void 0;var e=!0}catch{}var r=jy.call(o);return e&&(t?o[Fn]=A:delete o[Fn]),r}var Sd=Fy;var zy=Object.prototype,Uy=zy.toString;function ky(o){return Uy.call(o)}var wd=ky;var Hy="[object Null]",Wy="[object Undefined]",Td=le?le.toStringTag:void 0;function qy(o){return o==null?o===void 0?Wy:Hy:Td&&Td in Object(o)?Sd(o):wd(o)}var qe=qy;function Qy(o){return o!=null&&typeof o=="object"}var fe=Qy;var Yy="[object Symbol]";function Xy(o){return typeof o=="symbol"||fe(o)&&qe(o)==Yy}var xo=Xy;function Ky(o,t){for(var A=-1,e=o==null?0:o.length,r=Array(e);++A<e;)r[A]=t(o[A],A,o);return r}var vs=Ky;var Zy=Array.isArray,QA=Zy;var Jy=1/0,Od=le?le.prototype:void 0,Pd=Od?Od.toString:void 0;function Nd(o){if(typeof o=="string")return o;if(QA(o))return vs(o,Nd)+"";if(xo(o))return Pd?Pd.call(o):"";var t=o+"";return t=="0"&&1/o==-Jy?"-0":t}var Cd=Nd;function _y(o){var t=typeof o;return o!=null&&(t=="object"||t=="function")}var Qe=_y;function $y(o){return o}var Id=$y;var Ag="[object AsyncFunction]",eg="[object Function]",tg="[object GeneratorFunction]",rg="[object Proxy]";function og(o){if(!Qe(o))return!1;var t=qe(o);return t==eg||t==tg||t==Ag||t==rg}var bs=og;var ng=$A["__core-js_shared__"],Ss=ng;var Ld=function(){var o=/[^.]+$/.exec(Ss&&Ss.keys&&Ss.keys.IE_PROTO||"");return o?"Symbol(src)_1."+o:""}();function ig(o){return!!Ld&&Ld in o}var Ed=ig;var sg=Function.prototype,ag=sg.toString;function lg(o){if(o!=null){try{return ag.call(o)}catch{}try{return o+""}catch{}}return""}var Wt=lg;var cg=/[\\^$.*+?()[\]{}|]/g,dg=/^\[object .+?Constructor\]$/,ug=Function.prototype,pg=Object.prototype,fg=ug.toString,mg=pg.hasOwnProperty,hg=RegExp("^"+fg.call(mg).replace(cg,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yg(o){if(!Qe(o)||Ed(o))return!1;var t=bs(o)?hg:dg;return t.test(Wt(o))}var Md=yg;function gg(o,t){return o?.[t]}var Bd=gg;function xg(o,t){var A=Bd(o,t);return Md(A)?A:void 0}var De=xg;var vg=De($A,"WeakMap"),ws=vg;var Dd=Object.create,bg=function(){function o(){}return function(t){if(!Qe(t))return{};if(Dd)return Dd(t);o.prototype=t;var A=new o;return o.prototype=void 0,A}}(),Gd=bg;function Sg(o,t,A){switch(A.length){case 0:return o.call(t);case 1:return o.call(t,A[0]);case 2:return o.call(t,A[0],A[1]);case 3:return o.call(t,A[0],A[1],A[2])}return o.apply(t,A)}var Rd=Sg;function wg(o,t){var A=-1,e=o.length;for(t||(t=Array(e));++A<e;)t[A]=o[A];return t}var Vd=wg;var Tg=800,Og=16,Pg=Date.now;function Ng(o){var t=0,A=0;return function(){var e=Pg(),r=Og-(e-A);if(A=e,r>0){if(++t>=Tg)return arguments[0]}else t=0;return o.apply(void 0,arguments)}}var jd=Ng;function Cg(o){return function(){return o}}var Fd=Cg;var Ig=function(){try{var o=De(Object,"defineProperty");return o({},"",{}),o}catch{}}(),vo=Ig;var Lg=vo?function(o,t){return vo(o,"toString",{configurable:!0,enumerable:!1,value:Fd(t),writable:!0})}:Id,zd=Lg;var Eg=jd(zd),Ud=Eg;function Mg(o,t){for(var A=-1,e=o==null?0:o.length;++A<e&&t(o[A],A,o)!==!1;);return o}var kd=Mg;var Bg=9007199254740991,Dg=/^(?:0|[1-9]\d*)$/;function Gg(o,t){var A=typeof o;return t=t??Bg,!!t&&(A=="number"||A!="symbol"&&Dg.test(o))&&o>-1&&o%1==0&&o<t}var bo=Gg;function Rg(o,t,A){t=="__proto__"&&vo?vo(o,t,{configurable:!0,enumerable:!0,value:A,writable:!0}):o[t]=A}var Ts=Rg;function Vg(o,t){return o===t||o!==o&&t!==t}var So=Vg;var jg=Object.prototype,Fg=jg.hasOwnProperty;function zg(o,t,A){var e=o[t];(!(Fg.call(o,t)&&So(e,A))||A===void 0&&!(t in o))&&Ts(o,t,A)}var wo=zg;function Ug(o,t,A,e){var r=!A;A||(A={});for(var n=-1,i=t.length;++n<i;){var a=t[n],l=e?e(A[a],o[a],a,A,o):void 0;l===void 0&&(l=o[a]),r?Ts(A,a,l):wo(A,a,l)}return A}var Pt=Ug;var Hd=Math.max;function kg(o,t,A){return t=Hd(t===void 0?o.length-1:t,0),function(){for(var e=arguments,r=-1,n=Hd(e.length-t,0),i=Array(n);++r<n;)i[r]=e[t+r];r=-1;for(var a=Array(t+1);++r<t;)a[r]=e[r];return a[t]=A(i),Rd(o,this,a)}}var Wd=kg;var Hg=9007199254740991;function Wg(o){return typeof o=="number"&&o>-1&&o%1==0&&o<=Hg}var To=Wg;function qg(o){return o!=null&&To(o.length)&&!bs(o)}var Os=qg;var Qg=Object.prototype;function Yg(o){var t=o&&o.constructor,A=typeof t=="function"&&t.prototype||Qg;return o===A}var Oo=Yg;function Xg(o,t){for(var A=-1,e=Array(o);++A<o;)e[A]=t(A);return e}var qd=Xg;var Kg="[object Arguments]";function Zg(o){return fe(o)&&qe(o)==Kg}var pl=Zg;var Qd=Object.prototype,Jg=Qd.hasOwnProperty,_g=Qd.propertyIsEnumerable,$g=pl(function(){return arguments}())?pl:function(o){return fe(o)&&Jg.call(o,"callee")&&!_g.call(o,"callee")},Po=$g;function Ax(){return!1}var Yd=Ax;var Zd=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Xd=Zd&&typeof module=="object"&&module&&!module.nodeType&&module,ex=Xd&&Xd.exports===Zd,Kd=ex?$A.Buffer:void 0,tx=Kd?Kd.isBuffer:void 0,rx=tx||Yd,Dr=rx;var ox="[object Arguments]",nx="[object Array]",ix="[object Boolean]",sx="[object Date]",ax="[object Error]",lx="[object Function]",cx="[object Map]",dx="[object Number]",ux="[object Object]",px="[object RegExp]",fx="[object Set]",mx="[object String]",hx="[object WeakMap]",yx="[object ArrayBuffer]",gx="[object DataView]",xx="[object Float32Array]",vx="[object Float64Array]",bx="[object Int8Array]",Sx="[object Int16Array]",wx="[object Int32Array]",Tx="[object Uint8Array]",Ox="[object Uint8ClampedArray]",Px="[object Uint16Array]",Nx="[object Uint32Array]",zA={};zA[xx]=zA[vx]=zA[bx]=zA[Sx]=zA[wx]=zA[Tx]=zA[Ox]=zA[Px]=zA[Nx]=!0;zA[ox]=zA[nx]=zA[yx]=zA[ix]=zA[gx]=zA[sx]=zA[ax]=zA[lx]=zA[cx]=zA[dx]=zA[ux]=zA[px]=zA[fx]=zA[mx]=zA[hx]=!1;function Cx(o){return fe(o)&&To(o.length)&&!!zA[qe(o)]}var Jd=Cx;function Ix(o){return function(t){return o(t)}}var No=Ix;var _d=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zn=_d&&typeof module=="object"&&module&&!module.nodeType&&module,Lx=zn&&zn.exports===_d,fl=Lx&&xs.process,Ex=function(){try{var o=zn&&zn.require&&zn.require("util").types;return o||fl&&fl.binding&&fl.binding("util")}catch{}}(),qt=Ex;var $d=qt&&qt.isTypedArray,Mx=$d?No($d):Jd,Ps=Mx;var Bx=Object.prototype,Dx=Bx.hasOwnProperty;function Gx(o,t){var A=QA(o),e=!A&&Po(o),r=!A&&!e&&Dr(o),n=!A&&!e&&!r&&Ps(o),i=A||e||r||n,a=i?qd(o.length,String):[],l=a.length;for(var d in o)(t||Dx.call(o,d))&&!(i&&(d=="length"||r&&(d=="offset"||d=="parent")||n&&(d=="buffer"||d=="byteLength"||d=="byteOffset")||bo(d,l)))&&a.push(d);return a}var Ns=Gx;function Rx(o,t){return function(A){return o(t(A))}}var Cs=Rx;var Vx=Cs(Object.keys,Object),Au=Vx;var jx=Object.prototype,Fx=jx.hasOwnProperty;function zx(o){if(!Oo(o))return Au(o);var t=[];for(var A in Object(o))Fx.call(o,A)&&A!="constructor"&&t.push(A);return t}var eu=zx;function Ux(o){return Os(o)?Ns(o):eu(o)}var Co=Ux;function kx(o){var t=[];if(o!=null)for(var A in Object(o))t.push(A);return t}var tu=kx;var Hx=Object.prototype,Wx=Hx.hasOwnProperty;function qx(o){if(!Qe(o))return tu(o);var t=Oo(o),A=[];for(var e in o)e=="constructor"&&(t||!Wx.call(o,e))||A.push(e);return A}var ru=qx;function Qx(o){return Os(o)?Ns(o,!0):ru(o)}var Io=Qx;var Yx=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Xx=/^\w*$/;function Kx(o,t){if(QA(o))return!1;var A=typeof o;return A=="number"||A=="symbol"||A=="boolean"||o==null||xo(o)?!0:Xx.test(o)||!Yx.test(o)||t!=null&&o in Object(t)}var ou=Kx;var Zx=De(Object,"create"),Qt=Zx;function Jx(){this.__data__=Qt?Qt(null):{},this.size=0}var nu=Jx;function _x(o){var t=this.has(o)&&delete this.__data__[o];return this.size-=t?1:0,t}var iu=_x;var $x="__lodash_hash_undefined__",A0=Object.prototype,e0=A0.hasOwnProperty;function t0(o){var t=this.__data__;if(Qt){var A=t[o];return A===$x?void 0:A}return e0.call(t,o)?t[o]:void 0}var su=t0;var r0=Object.prototype,o0=r0.hasOwnProperty;function n0(o){var t=this.__data__;return Qt?t[o]!==void 0:o0.call(t,o)}var au=n0;var i0="__lodash_hash_undefined__";function s0(o,t){var A=this.__data__;return this.size+=this.has(o)?0:1,A[o]=Qt&&t===void 0?i0:t,this}var lu=s0;function Lo(o){var t=-1,A=o==null?0:o.length;for(this.clear();++t<A;){var e=o[t];this.set(e[0],e[1])}}Lo.prototype.clear=nu;Lo.prototype.delete=iu;Lo.prototype.get=su;Lo.prototype.has=au;Lo.prototype.set=lu;var ml=Lo;function a0(){this.__data__=[],this.size=0}var cu=a0;function l0(o,t){for(var A=o.length;A--;)if(So(o[A][0],t))return A;return-1}var dr=l0;var c0=Array.prototype,d0=c0.splice;function u0(o){var t=this.__data__,A=dr(t,o);if(A<0)return!1;var e=t.length-1;return A==e?t.pop():d0.call(t,A,1),--this.size,!0}var du=u0;function p0(o){var t=this.__data__,A=dr(t,o);return A<0?void 0:t[A][1]}var uu=p0;function f0(o){return dr(this.__data__,o)>-1}var pu=f0;function m0(o,t){var A=this.__data__,e=dr(A,o);return e<0?(++this.size,A.push([o,t])):A[e][1]=t,this}var fu=m0;function Eo(o){var t=-1,A=o==null?0:o.length;for(this.clear();++t<A;){var e=o[t];this.set(e[0],e[1])}}Eo.prototype.clear=cu;Eo.prototype.delete=du;Eo.prototype.get=uu;Eo.prototype.has=pu;Eo.prototype.set=fu;var ur=Eo;var h0=De($A,"Map"),pr=h0;function y0(){this.size=0,this.__data__={hash:new ml,map:new(pr||ur),string:new ml}}var mu=y0;function g0(o){var t=typeof o;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?o!=="__proto__":o===null}var hu=g0;function x0(o,t){var A=o.__data__;return hu(t)?A[typeof t=="string"?"string":"hash"]:A.map}var fr=x0;function v0(o){var t=fr(this,o).delete(o);return this.size-=t?1:0,t}var yu=v0;function b0(o){return fr(this,o).get(o)}var gu=b0;function S0(o){return fr(this,o).has(o)}var xu=S0;function w0(o,t){var A=fr(this,o),e=A.size;return A.set(o,t),this.size+=A.size==e?0:1,this}var vu=w0;function Mo(o){var t=-1,A=o==null?0:o.length;for(this.clear();++t<A;){var e=o[t];this.set(e[0],e[1])}}Mo.prototype.clear=mu;Mo.prototype.delete=yu;Mo.prototype.get=gu;Mo.prototype.has=xu;Mo.prototype.set=vu;var Gr=Mo;var T0="Expected a function";function hl(o,t){if(typeof o!="function"||t!=null&&typeof t!="function")throw new TypeError(T0);var A=function(){var e=arguments,r=t?t.apply(this,e):e[0],n=A.cache;if(n.has(r))return n.get(r);var i=o.apply(this,e);return A.cache=n.set(r,i)||n,i};return A.cache=new(hl.Cache||Gr),A}hl.Cache=Gr;var bu=hl;var O0=500;function P0(o){var t=bu(o,function(e){return A.size===O0&&A.clear(),e}),A=t.cache;return t}var Su=P0;var N0=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,C0=/\\(\\)?/g,I0=Su(function(o){var t=[];return o.charCodeAt(0)===46&&t.push(""),o.replace(N0,function(A,e,r,n){t.push(r?n.replace(C0,"$1"):e||A)}),t}),wu=I0;function L0(o){return o==null?"":Cd(o)}var Tu=L0;function E0(o,t){return QA(o)?o:ou(o,t)?[o]:wu(Tu(o))}var Ze=E0;var M0=1/0;function B0(o){if(typeof o=="string"||xo(o))return o;var t=o+"";return t=="0"&&1/o==-M0?"-0":t}var mr=B0;function D0(o,t){t=Ze(t,o);for(var A=0,e=t.length;o!=null&&A<e;)o=o[mr(t[A++])];return A&&A==e?o:void 0}var Is=D0;function G0(o,t){for(var A=-1,e=t.length,r=o.length;++A<e;)o[r+A]=t[A];return o}var Bo=G0;var Ou=le?le.isConcatSpreadable:void 0;function R0(o){return QA(o)||Po(o)||!!(Ou&&o&&o[Ou])}var Pu=R0;function Nu(o,t,A,e,r){var n=-1,i=o.length;for(A||(A=Pu),r||(r=[]);++n<i;){var a=o[n];t>0&&A(a)?t>1?Nu(a,t-1,A,e,r):Bo(r,a):e||(r[r.length]=a)}return r}var Cu=Nu;function V0(o){var t=o==null?0:o.length;return t?Cu(o,1):[]}var Iu=V0;function j0(o){return Ud(Wd(o,void 0,Iu),o+"")}var Ls=j0;var F0=Cs(Object.getPrototypeOf,Object),Do=F0;var z0="[object Object]",U0=Function.prototype,k0=Object.prototype,Lu=U0.toString,H0=k0.hasOwnProperty,W0=Lu.call(Object);function q0(o){if(!fe(o)||qe(o)!=z0)return!1;var t=Do(o);if(t===null)return!0;var A=H0.call(t,"constructor")&&t.constructor;return typeof A=="function"&&A instanceof A&&Lu.call(A)==W0}var Eu=q0;function Q0(o,t,A){var e=-1,r=o.length;t<0&&(t=-t>r?0:r+t),A=A>r?r:A,A<0&&(A+=r),r=t>A?0:A-t>>>0,t>>>=0;for(var n=Array(r);++e<r;)n[e]=o[e+t];return n}var Mu=Q0;function Y0(){this.__data__=new ur,this.size=0}var Bu=Y0;function X0(o){var t=this.__data__,A=t.delete(o);return this.size=t.size,A}var Du=X0;function K0(o){return this.__data__.get(o)}var Gu=K0;function Z0(o){return this.__data__.has(o)}var Ru=Z0;var J0=200;function _0(o,t){var A=this.__data__;if(A instanceof ur){var e=A.__data__;if(!pr||e.length<J0-1)return e.push([o,t]),this.size=++A.size,this;A=this.__data__=new Gr(e)}return A.set(o,t),this.size=A.size,this}var Vu=_0;function Go(o){var t=this.__data__=new ur(o);this.size=t.size}Go.prototype.clear=Bu;Go.prototype.delete=Du;Go.prototype.get=Gu;Go.prototype.has=Ru;Go.prototype.set=Vu;var Ro=Go;function $0(o,t){return o&&Pt(t,Co(t),o)}var ju=$0;function Av(o,t){return o&&Pt(t,Io(t),o)}var Fu=Av;var Hu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,zu=Hu&&typeof module=="object"&&module&&!module.nodeType&&module,ev=zu&&zu.exports===Hu,Uu=ev?$A.Buffer:void 0,ku=Uu?Uu.allocUnsafe:void 0;function tv(o,t){if(t)return o.slice();var A=o.length,e=ku?ku(A):new o.constructor(A);return o.copy(e),e}var Wu=tv;function rv(o,t){for(var A=-1,e=o==null?0:o.length,r=0,n=[];++A<e;){var i=o[A];t(i,A,o)&&(n[r++]=i)}return n}var qu=rv;function ov(){return[]}var Es=ov;var nv=Object.prototype,iv=nv.propertyIsEnumerable,Qu=Object.getOwnPropertySymbols,sv=Qu?function(o){return o==null?[]:(o=Object(o),qu(Qu(o),function(t){return iv.call(o,t)}))}:Es,Vo=sv;function av(o,t){return Pt(o,Vo(o),t)}var Yu=av;var lv=Object.getOwnPropertySymbols,cv=lv?function(o){for(var t=[];o;)Bo(t,Vo(o)),o=Do(o);return t}:Es,Ms=cv;function dv(o,t){return Pt(o,Ms(o),t)}var Xu=dv;function uv(o,t,A){var e=t(o);return QA(o)?e:Bo(e,A(o))}var Bs=uv;function pv(o){return Bs(o,Co,Vo)}var Un=pv;function fv(o){return Bs(o,Io,Ms)}var Ds=fv;var mv=De($A,"DataView"),Gs=mv;var hv=De($A,"Promise"),Rs=hv;var yv=De($A,"Set"),Vs=yv;var Ku="[object Map]",gv="[object Object]",Zu="[object Promise]",Ju="[object Set]",_u="[object WeakMap]",$u="[object DataView]",xv=Wt(Gs),vv=Wt(pr),bv=Wt(Rs),Sv=Wt(Vs),wv=Wt(ws),Rr=qe;(Gs&&Rr(new Gs(new ArrayBuffer(1)))!=$u||pr&&Rr(new pr)!=Ku||Rs&&Rr(Rs.resolve())!=Zu||Vs&&Rr(new Vs)!=Ju||ws&&Rr(new ws)!=_u)&&(Rr=function(o){var t=qe(o),A=t==gv?o.constructor:void 0,e=A?Wt(A):"";if(e)switch(e){case xv:return $u;case vv:return Ku;case bv:return Zu;case Sv:return Ju;case wv:return _u}return t});var Yt=Rr;var Tv=Object.prototype,Ov=Tv.hasOwnProperty;function Pv(o){var t=o.length,A=new o.constructor(t);return t&&typeof o[0]=="string"&&Ov.call(o,"index")&&(A.index=o.index,A.input=o.input),A}var Ap=Pv;var Nv=$A.Uint8Array,jo=Nv;function Cv(o){var t=new o.constructor(o.byteLength);return new jo(t).set(new jo(o)),t}var Fo=Cv;function Iv(o,t){var A=t?Fo(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.byteLength)}var ep=Iv;var Lv=/\w*$/;function Ev(o){var t=new o.constructor(o.source,Lv.exec(o));return t.lastIndex=o.lastIndex,t}var tp=Ev;var rp=le?le.prototype:void 0,op=rp?rp.valueOf:void 0;function Mv(o){return op?Object(op.call(o)):{}}var np=Mv;function Bv(o,t){var A=t?Fo(o.buffer):o.buffer;return new o.constructor(A,o.byteOffset,o.length)}var ip=Bv;var Dv="[object Boolean]",Gv="[object Date]",Rv="[object Map]",Vv="[object Number]",jv="[object RegExp]",Fv="[object Set]",zv="[object String]",Uv="[object Symbol]",kv="[object ArrayBuffer]",Hv="[object DataView]",Wv="[object Float32Array]",qv="[object Float64Array]",Qv="[object Int8Array]",Yv="[object Int16Array]",Xv="[object Int32Array]",Kv="[object Uint8Array]",Zv="[object Uint8ClampedArray]",Jv="[object Uint16Array]",_v="[object Uint32Array]";function $v(o,t,A){var e=o.constructor;switch(t){case kv:return Fo(o);case Dv:case Gv:return new e(+o);case Hv:return ep(o,A);case Wv:case qv:case Qv:case Yv:case Xv:case Kv:case Zv:case Jv:case _v:return ip(o,A);case Rv:return new e;case Vv:case zv:return new e(o);case jv:return tp(o);case Fv:return new e;case Uv:return np(o)}}var sp=$v;function Ab(o){return typeof o.constructor=="function"&&!Oo(o)?Gd(Do(o)):{}}var ap=Ab;var eb="[object Map]";function tb(o){return fe(o)&&Yt(o)==eb}var lp=tb;var cp=qt&&qt.isMap,rb=cp?No(cp):lp,dp=rb;var ob="[object Set]";function nb(o){return fe(o)&&Yt(o)==ob}var up=nb;var pp=qt&&qt.isSet,ib=pp?No(pp):up,fp=ib;var sb=1,ab=2,lb=4,mp="[object Arguments]",cb="[object Array]",db="[object Boolean]",ub="[object Date]",pb="[object Error]",hp="[object Function]",fb="[object GeneratorFunction]",mb="[object Map]",hb="[object Number]",yp="[object Object]",yb="[object RegExp]",gb="[object Set]",xb="[object String]",vb="[object Symbol]",bb="[object WeakMap]",Sb="[object ArrayBuffer]",wb="[object DataView]",Tb="[object Float32Array]",Ob="[object Float64Array]",Pb="[object Int8Array]",Nb="[object Int16Array]",Cb="[object Int32Array]",Ib="[object Uint8Array]",Lb="[object Uint8ClampedArray]",Eb="[object Uint16Array]",Mb="[object Uint32Array]",jA={};jA[mp]=jA[cb]=jA[Sb]=jA[wb]=jA[db]=jA[ub]=jA[Tb]=jA[Ob]=jA[Pb]=jA[Nb]=jA[Cb]=jA[mb]=jA[hb]=jA[yp]=jA[yb]=jA[gb]=jA[xb]=jA[vb]=jA[Ib]=jA[Lb]=jA[Eb]=jA[Mb]=!0;jA[pb]=jA[hp]=jA[bb]=!1;function js(o,t,A,e,r,n){var i,a=t&sb,l=t&ab,d=t&lb;if(A&&(i=r?A(o,e,r,n):A(o)),i!==void 0)return i;if(!Qe(o))return o;var s=QA(o);if(s){if(i=Ap(o),!a)return Vd(o,i)}else{var c=Yt(o),u=c==hp||c==fb;if(Dr(o))return Wu(o,a);if(c==yp||c==mp||u&&!r){if(i=l||u?{}:ap(o),!a)return l?Xu(o,Fu(i,o)):Yu(o,ju(i,o))}else{if(!jA[c])return r?o:{};i=sp(o,c,a)}}n||(n=new Ro);var p=n.get(o);if(p)return p;n.set(o,i),fp(o)?o.forEach(function(h){i.add(js(h,t,A,h,o,n))}):dp(o)&&o.forEach(function(h,y){i.set(y,js(h,t,A,y,o,n))});var f=d?l?Ds:Un:l?Io:Co,m=s?void 0:f(o);return kd(m||o,function(h,y){m&&(y=h,h=o[y]),wo(i,y,js(h,t,A,y,o,n))}),i}var Fs=js;var Bb=1,Db=4;function Gb(o){return Fs(o,Bb|Db)}var Vr=Gb;var Rb="__lodash_hash_undefined__";function Vb(o){return this.__data__.set(o,Rb),this}var gp=Vb;function jb(o){return this.__data__.has(o)}var xp=jb;function zs(o){var t=-1,A=o==null?0:o.length;for(this.__data__=new Gr;++t<A;)this.add(o[t])}zs.prototype.add=zs.prototype.push=gp;zs.prototype.has=xp;var vp=zs;function Fb(o,t){for(var A=-1,e=o==null?0:o.length;++A<e;)if(t(o[A],A,o))return!0;return!1}var bp=Fb;function zb(o,t){return o.has(t)}var Sp=zb;var Ub=1,kb=2;function Hb(o,t,A,e,r,n){var i=A&Ub,a=o.length,l=t.length;if(a!=l&&!(i&&l>a))return!1;var d=n.get(o),s=n.get(t);if(d&&s)return d==t&&s==o;var c=-1,u=!0,p=A&kb?new vp:void 0;for(n.set(o,t),n.set(t,o);++c<a;){var f=o[c],m=t[c];if(e)var h=i?e(m,f,c,t,o,n):e(f,m,c,o,t,n);if(h!==void 0){if(h)continue;u=!1;break}if(p){if(!bp(t,function(y,x){if(!Sp(p,x)&&(f===y||r(f,y,A,e,n)))return p.push(x)})){u=!1;break}}else if(!(f===m||r(f,m,A,e,n))){u=!1;break}}return n.delete(o),n.delete(t),u}var Us=Hb;function Wb(o){var t=-1,A=Array(o.size);return o.forEach(function(e,r){A[++t]=[r,e]}),A}var wp=Wb;function qb(o){var t=-1,A=Array(o.size);return o.forEach(function(e){A[++t]=e}),A}var Tp=qb;var Qb=1,Yb=2,Xb="[object Boolean]",Kb="[object Date]",Zb="[object Error]",Jb="[object Map]",_b="[object Number]",$b="[object RegExp]",AS="[object Set]",eS="[object String]",tS="[object Symbol]",rS="[object ArrayBuffer]",oS="[object DataView]",Op=le?le.prototype:void 0,yl=Op?Op.valueOf:void 0;function nS(o,t,A,e,r,n,i){switch(A){case oS:if(o.byteLength!=t.byteLength||o.byteOffset!=t.byteOffset)return!1;o=o.buffer,t=t.buffer;case rS:return!(o.byteLength!=t.byteLength||!n(new jo(o),new jo(t)));case Xb:case Kb:case _b:return So(+o,+t);case Zb:return o.name==t.name&&o.message==t.message;case $b:case eS:return o==t+"";case Jb:var a=wp;case AS:var l=e&Qb;if(a||(a=Tp),o.size!=t.size&&!l)return!1;var d=i.get(o);if(d)return d==t;e|=Yb,i.set(o,t);var s=Us(a(o),a(t),e,r,n,i);return i.delete(o),s;case tS:if(yl)return yl.call(o)==yl.call(t)}return!1}var Pp=nS;var iS=1,sS=Object.prototype,aS=sS.hasOwnProperty;function lS(o,t,A,e,r,n){var i=A&iS,a=Un(o),l=a.length,d=Un(t),s=d.length;if(l!=s&&!i)return!1;for(var c=l;c--;){var u=a[c];if(!(i?u in t:aS.call(t,u)))return!1}var p=n.get(o),f=n.get(t);if(p&&f)return p==t&&f==o;var m=!0;n.set(o,t),n.set(t,o);for(var h=i;++c<l;){u=a[c];var y=o[u],x=t[u];if(e)var S=i?e(x,y,u,t,o,n):e(y,x,u,o,t,n);if(!(S===void 0?y===x||r(y,x,A,e,n):S)){m=!1;break}h||(h=u=="constructor")}if(m&&!h){var v=o.constructor,b=t.constructor;v!=b&&"constructor"in o&&"constructor"in t&&!(typeof v=="function"&&v instanceof v&&typeof b=="function"&&b instanceof b)&&(m=!1)}return n.delete(o),n.delete(t),m}var Np=lS;var cS=1,Cp="[object Arguments]",Ip="[object Array]",ks="[object Object]",dS=Object.prototype,Lp=dS.hasOwnProperty;function uS(o,t,A,e,r,n){var i=QA(o),a=QA(t),l=i?Ip:Yt(o),d=a?Ip:Yt(t);l=l==Cp?ks:l,d=d==Cp?ks:d;var s=l==ks,c=d==ks,u=l==d;if(u&&Dr(o)){if(!Dr(t))return!1;i=!0,s=!1}if(u&&!s)return n||(n=new Ro),i||Ps(o)?Us(o,t,A,e,r,n):Pp(o,t,l,A,e,r,n);if(!(A&cS)){var p=s&&Lp.call(o,"__wrapped__"),f=c&&Lp.call(t,"__wrapped__");if(p||f){var m=p?o.value():o,h=f?t.value():t;return n||(n=new Ro),r(m,h,A,e,n)}}return u?(n||(n=new Ro),Np(o,t,A,e,r,n)):!1}var Ep=uS;function Mp(o,t,A,e,r){return o===t?!0:o==null||t==null||!fe(o)&&!fe(t)?o!==o&&t!==t:Ep(o,t,A,e,Mp,r)}var Bp=Mp;function pS(o,t){return o!=null&&t in Object(o)}var Dp=pS;function fS(o,t,A){t=Ze(t,o);for(var e=-1,r=t.length,n=!1;++e<r;){var i=mr(t[e]);if(!(n=o!=null&&A(o,i)))break;o=o[i]}return n||++e!=r?n:(r=o==null?0:o.length,!!r&&To(r)&&bo(i,r)&&(QA(o)||Po(o)))}var Gp=fS;function mS(o,t){return o!=null&&Gp(o,t,Dp)}var Rp=mS;function hS(o){var t=o==null?0:o.length;return t?o[t-1]:void 0}var Vp=hS;function yS(o,t){return t.length<2?o:Is(o,Mu(t,0,-1))}var jp=yS;function gS(o,t){return Bp(o,t)}var kn=gS;function xS(o,t){return t=Ze(t,o),o=jp(o,t),o==null||delete o[mr(Vp(t))]}var Fp=xS;function vS(o){return Eu(o)?void 0:o}var zp=vS;var bS=1,SS=2,wS=4,TS=Ls(function(o,t){var A={};if(o==null)return A;var e=!1;t=vs(t,function(n){return n=Ze(n,o),e||(e=n.length>1),n}),Pt(o,Ds(o),A),e&&(A=Fs(A,bS|SS|wS,zp));for(var r=t.length;r--;)Fp(A,t[r]);return A}),zo=TS;function OS(o,t,A,e){if(!Qe(o))return o;t=Ze(t,o);for(var r=-1,n=t.length,i=n-1,a=o;a!=null&&++r<n;){var l=mr(t[r]),d=A;if(l==="__proto__"||l==="constructor"||l==="prototype")return o;if(r!=i){var s=a[l];d=e?e(s,l,a):void 0,d===void 0&&(d=Qe(s)?s:bo(t[r+1])?[]:{})}wo(a,l,d),a=a[l]}return o}var Up=OS;function PS(o,t,A){for(var e=-1,r=t.length,n={};++e<r;){var i=t[e],a=Is(o,i);A(a,i)&&Up(n,Ze(i,o),a)}return n}var kp=PS;function NS(o,t){return kp(o,t,function(A,e){return Rp(o,e)})}var Hp=NS;var CS=Ls(function(o,t){return o==null?{}:Hp(o,t)}),Uo=CS;var Hn=require("three");function Wp(o){o.layers.forEach(t=>{if(t.type==="depth"&&t.colorA!==void 0){let A=t.colorA,e=t.colorB,r=[[A.r,A.g,A.b,A.a],[e.r,e.g,e.b,e.a]],n=[0,1];for(let a=2;a<10;a++)r.push(r[1]),n.push(1);let i={...Uo(se(t),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,t.near),far:Math.max(0,t.far),colors:r,steps:n,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(t,i)}else if(t.type==="depth"&&t.gradientType===1&&(t.near<0||t.far<0)){let A={...se(t),near:Math.max(t.near,0),far:Math.max(t.far,0)};Object.assign(t,A)}})}function Hs(o,t){Object.values(o.shared.materials).forEach(A=>t(A))}function Ws(o,t){o.scene.objects.traverse((A,e)=>{"materials"in e?e.materials.forEach(r=>{typeof r!="string"&&t(r)}):"material"in e&&typeof e.material!="string"&&t(e.material)})}function IS(o){Object.assign(o.scene.publish,{orbitControls:{...go.defaultData,...se(o.scene.publish.orbitControls)}})}function LS(o){Object.assign(o.scene.publish.settings,{video:{...hs.defaultData.settings.video,...se(o.scene.publish.settings.video)}})}function ES(o){function t(A){if(A.layers){for(let e of Object.values(A.layers))if(e){for(let[r,n]of Object.entries(e))if((pd.includes(r)||typeof n=="boolean")&&delete e[r],r==="texture")for(let[i,a]of Object.entries(n))(fd.includes(i)||typeof a=="boolean")&&delete n[i]}}}o.scene.objects.traverse((A,e)=>{e.states.forEach(r=>{let n=r;n.material?t(n.material):n.materials&&n.materials.forEach(i=>{t(i)})})})}function MS(o){o.scene.publish.withBackground=!0}function BS(o){o.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function DS(o){o.scene.objects.traverse((t,A)=>{let e=A.cloner;e&&(e.radial.scale=e.radial.scale.map(r=>r+1),e.linear.scale=e.linear.scale.map(r=>r+1))})}function GS(o){o.scene.objects.traverse((t,A)=>{let e=A.geometry;e&&(e.type==="DodecahedronGeometry"||e.type==="IcosahedronGeometry")&&(e.detail=Math.round(e.detail))})}function RS(o){o.scene.objects.traverse((t,A)=>{let e=o.scene.objects.unproxy().parent(t);if(e){let r=se(o.scene.objects.data(e));r&&r.type==="Mesh"&&r.geometry.type==="BooleanGeometry"&&A.type==="Mesh"&&(A.visible=se(A).booleanExclude!==!0)}})}function VS(o){o.scene.objects.traverse((t,A)=>{if(A.type==="Mesh"){let e=A;A.geometry.type==="NonParametricGeometry"?e.material!==void 0&&delete e.material:e.materials!==void 0&&delete e.materials}})}function jS(o){function t(e){Object.setPrototypeOf(e,kA.prototype),e.texture&&Object.setPrototypeOf(e.texture,kA.prototype)}function A(e){Object.setPrototypeOf(e,kA.prototype);for(let r in e)t(e[r])}o.scene.objects.traverse((e,r)=>{r.states.forEach(n=>{let i=n;if(i.material){let a=se(i.material).layers;A(a),i.material.layers=a}if(i.materials)for(let a=0;a<i.materials.length;a++){let l=i.materials[a],d=se(l).layers;A(d),l.layers=d}})})}function qp(o){o.layers===void 0&&Object.assign(o,Be.defaultTwoLayerData("lambert"))}function gl(o){!o.layers||o.layers.forEach(t=>{if(t.type==="depth"&&t.colors.length===10){let A=[...t.colors];A.push(t.colors[9]);let e=[...t.steps];e.push(t.steps[9]);let r={...se(t),colors:A,steps:e};Object.assign(t,r)}})}function FS(o){o.scene.objects.traverse((t,A)=>{A.type==="Mesh"&&(A.geometry.type==="BooleanGeometry"||A.geometry.type==="SubdivGeometry")&&(A.geometry.phongAngle=35)})}function Qp(o){o.scene.objects.traverse((t,A)=>{"materials"in A?A.materials.forEach(e=>{typeof e!="string"&&gl(e)}):"material"in A&&typeof A.material!="string"&&gl(A.material)}),Object.values(o.shared.materials).forEach(t=>gl(t))}function zS(o){o.scene.environment.ambientLight.softShadows=!1,o.scene.environment.ambientLight.softShadowQuality="low",o.scene.objects.traverse((t,A)=>{(A.type==="DirectionalLight"||A.type==="SpotLight")&&(A.shadowResolution=1024,A.shadowRadius=1,A.depth=1e5)}),o.shared.penumbraSize=new Array(5).fill(.5)}function US(o){o.shared.audios=lr({},VA.prototype)}function kS(o){o.shared.videos=lr({},VA.prototype)}function HS(o){let t=o.shared.materials;Object.entries(t).forEach(([A,e])=>{if(!e.layers){let r={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,{[A]:r})}})}function WS(o){Object.entries(se(o.shared.images)).filter(e=>e[1].asset===!1).map(e=>e[0]).forEach(e=>{delete o.shared.images[e]}),Object.entries(se(o.shared.audios)).filter(e=>e[1].asset===!1).map(e=>e[0]).forEach(e=>{delete o.shared.audios[e]})}function qS(o){o.scene.publish.settings.web.preload=!1}function Yp(o){o.layers&&o.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 QS(o){o.shared.fonts=lr({},VA.prototype)}function YS(o){return o.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(A=>A.charAt(0).toUpperCase()+A.slice(1)).join(" ")}function XS(o){let t=[];o.scene.objects.traverse((A,e)=>{let r=e;if(r.type==="TextFrame"){let n=Be.defaultTwoLayerData("phong"),i=typeof r.color=="string"?o.shared.colors[r.color]:r.color;n.layers[1].data.color={r:i.r,g:i.g,b:i.b},n.layers[1].data.alpha=r.alpha;let a=YS(r.font);o.shared.fonts[a]===void 0&&(o.shared.fonts[a]={name:a});let l={name:r.name,...We.defaultData,...Mr.defaultData,flatShading:!1,wireframe:!1,geometry:{...sr.defaultData("TextGeometry"),width:r.width,height:r.height,font:a,depth:0,horizontalAlign:r.horizontalAlign,verticalAlign:r.verticalAlign,fontSize:r.fontSize*1.40625,lineHeight:r.lineHeight/1.40625,letterSpacing:r.letterSpacing-1,text:r.text,textTransform:r.textTransform,extrudeBevelSize:0,extrudeBevelSegments:1},material:n,states:se(r.states),events:se(r.events),visible:r.visible,raycastLock:r.raycastLock,position:r.position,rotation:r.rotation,scale:r.scale,hiddenMatrix:r.hiddenMatrix},d=se(o.scene.objects).parent(A);o.scene.objects.insertAfter(d??null,A,[{id:A+"new",data:l,children:[]}]),t.push(A)}}),t.forEach(A=>{o.scene.objects.delete(A)})}function KS(o){let t={0:"MouseDown",1:"MouseUp",2:"MouseHover",5:"KeyDown",6:"KeyUp",7:"Start",9:"LookAt",10:"Follow",11:"Scroll",12:"Audio",13:"GameControl"};o.scene.objects.traverse((A,e)=>{e.events.forEach(r=>{if(!!t[Number(r.type)])if(Object.assign(r,{type:t[Number(r.type)]}),r.type==="Audio"&&"audioEvent"in r&&(Object.assign(r,{playAudio:r.audioEvent}),delete r.audioEvent),r.type==="GameControl")Object.assign(r,{gameActions:{idle:new gA,move:new gA,jump:new gA}});else{let n=new gA;Object.assign(r,{actions:n}),(r.type==="MouseDown"||r.type==="MouseUp"||r.type==="KeyDown"||r.type==="KeyUp")&&"url"in r&&n.push({fi:0,id:Hn.MathUtils.generateUUID(),data:{type:"Link",url:r.url,delay:0}}),"targets"in r&&(r.targets.forEach((i,a,l)=>{let d={state:void 0,repeat:0,delay:0,delayDirection:void 0,direction:"normal",duration:0,easing:4},s={easing:i.easing,duration:i.duration};i.easing===6?Object.assign(s,Uo(i,"mass","stiffness","damping","velocity")):i.easing===5&&Object.assign(s,{control1:{...i.control1},control2:{...i.control2}});let c={repeat:i.repeat?-1:0,delay:i.delay,delayDirection:i.delayDirection,direction:i.cycle&&i.rewind?"pingpong-rewind":i.cycle?"pingpong":"normal"},u={state:i.state,...c,...s},p={allowSlerp:!0,type:"Transition",object:i.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new gA({fi:0,id:Hn.MathUtils.generateUUID(),data:d},{fi:1,id:Hn.MathUtils.generateUUID(),data:u})};n.push({fi:l,id:a,data:p})}),delete r.targets)}})})}function ZS(o){o.scene.objects.traverse((t,A)=>{function e(r,n){let i=new gA,a=[];if(A.events.forEach((l,d,s)=>{if(l.type==="Audio"&&l.trigger===n){let c;a.push(d),l.interaction==="play"?c={...Uo(l,"interaction","audio","delay","volume","loop"),triggerAfter:"after"in l?l.after:void 0,toggle:"after"in l?l.toggle:void 0,type:"Audio"}:(l.interaction==="pause"||l.interaction==="stop")&&(c={...Uo(l,"interaction","delay","object","playAudio"),type:"Audio"}),c&&i.push({fi:s,id:d,data:c})}}),a.forEach(l=>A.events.delete(l)),i.length){let l=A.events.find(d=>d.type===r)?.data;l?"actions"in l&&l.actions.insertBefore(null,i):A.events.insertBefore(null,[{id:Hn.MathUtils.generateUUID(),data:{type:r,actions:i}}])}}e("Start","start"),e("MouseDown","mouseDown"),e("MouseUp","mouseUp"),e("KeyDown","keyDown"),e("KeyUp","keyUp")})}function Xp(o){let t=o.layers.find(A=>A.type==="light")?.data;if(t?.category==="basic"){let A=Te.defaultData("light","phong"),e=t;Object.assign(e,A),e.visible=!1}}function Kp(o){Hs(o,Xp),Ws(o,Xp)}function JS(o){o.scene.objects.traverse((t,A)=>{A.type==="Mesh"&&A.geometry.type==="SubdivGeometry"&&(A.geometry.scaleBaked||(A.geometry.scaleBaked=[1,1,1]))})}function _S(o){o.scene.objects.traverse((t,A)=>{(A.type==="Empty"||A.type==="Mesh")&&A.cloner&&!A.cloner.randomnessObject&&!A.cloner.toObject&&!A.cloner.randomness&&(A.cloner={...A.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"}})})}function $S(o){o.scene.objects.traverse((t,A)=>{A.type==="Mesh"&&A.geometry.type==="NonParametricGeometry"&&!("material"in A)&&!("materials"in A)&&(A.material=Be.defaultTwoLayerData("phong"))})}var Zp=30;function Jp(o){let t=o.schema??0;t!==Zp&&(console.warn("updating from ",t,"to ",Zp),t<1&&(Ws(o,Wp),Hs(o,Wp),o.schema=1),t<2&&(IS(o),o.schema=2),t<3&&(ES(o),o.schema=3),t<4&&(MS(o),o.schema=4),t<5&&(BS(o),o.schema=5),t<6&&(DS(o),o.schema=6),t<7&&(GS(o),o.schema=7),t<8&&(o.schema=8),t<9&&(Qp(o),o.schema=9),t<10&&(FS(o),o.schema=10),t<11&&(zS(o),o.schema=11),t<12&&(Qp(o),o.schema=12),t<13&&(US(o),o.schema=13),t<14&&(HS(o),o.schema=14),t<15&&(WS(o),o.schema=15),t<16&&(qS(o),o.schema=16),t<17&&(Ws(o,Yp),Hs(o,Yp),o.schema=17),t<18&&(Ws(o,qp),Hs(o,qp),o.schema=18),t<19&&(LS(o),o.schema=19),t<20&&(QS(o),XS(o),o.schema=20),t<21&&(KS(o),ZS(o),o.schema=21),t<22&&(Kp(o),o.schema=22),t<23&&(JS(o),o.schema=23),t<24&&(_S(o),o.schema=24),(t<25||o.shared.videos===void 0)&&(kS(o),t<25&&(o.schema=25)),t<26&&(RS(o),o.schema=26),t<27&&(VS(o),o.schema=27),t<28&&(Kp(o),o.schema=28),t<29&&(jS(o),o.schema=29),t<30&&($S(o),o.schema=30))}var qs;(t=>t.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(qs||(qs={}));var IA=require("three"),Sn=Qi($p());var Aw=.5*(Math.sqrt(3)-1),qn=(3-Math.sqrt(3))/6,ew=1/3,Nt=1/6,T3=(Math.sqrt(5)-1)/4,O3=(5-Math.sqrt(5))/20,Qn=o=>Math.floor(o)|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]),vl=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 Qs(o=Math.random){let t=tf(o),A=new Float64Array(t).map(r=>Af[r%12*2]),e=new Float64Array(t).map(r=>Af[r%12*2+1]);return function(n,i){let a=0,l=0,d=0,s=(n+i)*Aw,c=Qn(n+s),u=Qn(i+s),p=(c+u)*qn,f=c-p,m=u-p,h=n-f,y=i-m,x,S;h>y?(x=1,S=0):(x=0,S=1);let v=h-x+qn,b=y-S+qn,P=h-1+2*qn,w=y-1+2*qn,g=c&255,N=u&255,O=.5-h*h-y*y;if(O>=0){let L=g+t[N],M=A[L],U=e[L];O*=O,a=O*O*(M*h+U*y)}let C=.5-v*v-b*b;if(C>=0){let L=g+x+t[N+S],M=A[L],U=e[L];C*=C,l=C*C*(M*v+U*b)}let T=.5-P*P-w*w;if(T>=0){let L=g+1+t[N+1],M=A[L],U=e[L];T*=T,d=T*T*(M*P+U*w)}return 70*(a+l+d)}}function ef(o=Math.random){let t=tf(o),A=new Float64Array(t).map(n=>vl[n%12*3]),e=new Float64Array(t).map(n=>vl[n%12*3+1]),r=new Float64Array(t).map(n=>vl[n%12*3+2]);return function(i,a,l){let d,s,c,u,p=(i+a+l)*ew,f=Qn(i+p),m=Qn(a+p),h=Qn(l+p),y=(f+m+h)*Nt,x=f-y,S=m-y,v=h-y,b=i-x,P=a-S,w=l-v,g,N,O,C,T,L;b>=P?P>=w?(g=1,N=0,O=0,C=1,T=1,L=0):b>=w?(g=1,N=0,O=0,C=1,T=0,L=1):(g=0,N=0,O=1,C=1,T=0,L=1):P<w?(g=0,N=0,O=1,C=0,T=1,L=1):b<w?(g=0,N=1,O=0,C=0,T=1,L=1):(g=0,N=1,O=0,C=1,T=1,L=0);let M=b-g+Nt,U=P-N+Nt,Z=w-O+Nt,$=b-C+2*Nt,iA=P-T+2*Nt,k=w-L+2*Nt,q=b-1+3*Nt,Q=P-1+3*Nt,F=w-1+3*Nt,B=f&255,D=m&255,G=h&255,z=.6-b*b-P*P-w*w;if(z<0)d=0;else{let R=B+t[D+t[G]];z*=z,d=z*z*(A[R]*b+e[R]*P+r[R]*w)}let X=.6-M*M-U*U-Z*Z;if(X<0)s=0;else{let R=B+g+t[D+N+t[G+O]];X*=X,s=X*X*(A[R]*M+e[R]*U+r[R]*Z)}let H=.6-$*$-iA*iA-k*k;if(H<0)c=0;else{let R=B+C+t[D+T+t[G+L]];H*=H,c=H*H*(A[R]*$+e[R]*iA+r[R]*k)}let j=.6-q*q-Q*Q-F*F;if(j<0)u=0;else{let R=B+1+t[D+1+t[G+1]];j*=j,u=j*j*(A[R]*q+e[R]*Q+r[R]*F)}return 32*(d+s+c+u)}}function tf(o){let A=new Uint8Array(512);for(let e=0;e<512/2;e++)A[e]=e;for(let e=0;e<512/2-1;e++){let r=e+~~(o()*(256-e)),n=A[e];A[e]=A[r],A[r]=n}for(let e=256;e<512;e++)A[e]=A[e-256];return A}var rf=require("three"),st=new rf.Triangle,Ys=class{constructor(t){this.weightAttribute=null;let A=t.geometry;if(!A.isBufferGeometry||A.attributes.position.itemSize!==3)throw new Error("THREE.MeshSurfaceSampler: Requires BufferGeometry triangle mesh.");A.index&&(A=A.toNonIndexed()),this.geometry=A,this.randomFunction=Math.random,this.positionAttribute=this.geometry.getAttribute("position"),this.distribution=null}build(){let t=this.positionAttribute,A=new Float32Array(t.count/3);for(let r=0;r<t.count;r+=3){let n=1;st.a.fromBufferAttribute(t,r),st.b.fromBufferAttribute(t,r+1),st.c.fromBufferAttribute(t,r+2),n*=st.getArea(),A[r/3]=n}this.distribution=new Float32Array(t.count/3);let e=0;for(let r=0;r<A.length;r++)e+=A[r],this.distribution[r]=e;return this}setRandomGenerator(t){return this.randomFunction=t,this}sample(t,A){if(this.distribution){let e=this.distribution[this.distribution.length-1],r=this.binarySearch(this.randomFunction()*e);return this.sampleFace(r,t,A)}}binarySearch(t){if(!this.distribution)return 0;let A=this.distribution,e=0,r=A.length-1,n=-1;for(;e<=r;){let i=Math.ceil((e+r)/2);if(i===0||A[i-1]<=t&&A[i]>t){n=i;break}else t<A[i]?r=i-1:e=i+1}return n}sampleFace(t,A,e){let r=this.randomFunction(),n=this.randomFunction();return r+n>1&&(r=1-r,n=1-n),st.a.fromBufferAttribute(this.positionAttribute,t*3),st.b.fromBufferAttribute(this.positionAttribute,t*3+1),st.c.fromBufferAttribute(this.positionAttribute,t*3+2),A.set(0,0,0).addScaledVector(st.a,r).addScaledVector(st.b,n).addScaledVector(st.c,1-(r+n)),st.getNormal(e),this}};var af=require("three");var Je=require("three"),sf=Qi(nf()),tw=new Je.Matrix4,rw=new Je.Matrix4,ow=new Je.Matrix4,Yn;(t=>{function o(A){return A&&A.__isSPEObject}t.is=o})(Yn||(Yn={}));var ko=o=>class extends o{constructor(){super(...arguments);this.hiddenMatrix=new Je.Matrix4;this.matrixWorldRigid=new Je.Matrix4;this.shearScale=new Je.Matrix4;this.shearScaleInv=new Je.Matrix4}get __isSPEObject(){return!0}isDescendantOf(e){e instanceof Je.Object3D&&(e=e.uuid);let r=this;for(;r.parent;){if(r.parent.uuid===e)return!0;r=r.parent}return!1}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)}updateWorldMatrix(e,r){let n=this.parent;if(e&&n!==null&&n.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)),r)for(let i of this.children)i.updateWorldMatrix(!1,!0)}traverseObject(e,r=0){if(e(this,r)!==!0)for(let i of this.children)Yn.is(i)&&i.traverseObject(e,r+1)}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:n,v:i,q:a}=(0,sf.SVD)(r),l=tw.set(n[0][0],n[0][1],n[0][2],0,n[1][0],n[1][1],n[1][2],0,n[2][0],n[2][1],n[2][2],0,0,0,0,1),d=rw.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),s=ow.copy(d).transpose();this.shearScale.makeScale(a[0],a[1],a[2]).multiply(s).premultiply(d),this.shearScaleInv.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(l,s).copyPosition(this.matrixWorld),a.every(c=>Math.abs(a[0]-c)<.01)?this.hasNonUniformScale=!1:this.hasNonUniformScale=!0}attach(e,r){this.updateWorldMatrix(!0,!1);let n=new Je.Matrix4().copy(this.matrixWorld).invert();return e.parent!==null&&(e.parent.updateWorldMatrix(!0,!1),n.multiply(e.parent.matrixWorld)),"hiddenMatrix"in e&&e.hiddenMatrix instanceof Je.Matrix4?e.hiddenMatrix.premultiply(n):e.applyMatrix4(n),e.updateWorldMatrix(!1,!1),this.add(e),r!==void 0&&(this.children.pop(),this.children.splice(r,0,e)),this}};var bl=class extends ko(af.Object3D){},nw=o=>o.type==="Mesh",Xt=class extends bl{constructor(A){super();this.object=A;this.matrixAutoUpdate=!1}expand(){let A=0,e=this.object.entityChildren(A);for(;e;){let r=this.children[A];r?.object!==e&&(r&&this.remove(r),r=new Xt(e),this.add(r),r.matrixAutoUpdate=!1,r.matrix=e.matrix,r.hiddenMatrix=e.hiddenMatrix),r.expand(),A+=1,e=this.object.entityChildren(A)}for(;this.children.length>A;)this.remove(this.children[A])}get visible(){return this.object.visible||this.object.dataPatched.visible&&this.object.dataPatched.cloner?.hideBase===!0}set visible(A){}get castShadow(){return this.object.castShadow}set castShadow(A){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(A){}get isMesh(){return nw(this.object)}get isLight(){return this.object.isLight}get layers(){return this.object.layers}set layers(A){}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 nn=require("three");var sa=require("three");var KA=require("three"),jr=new KA.Vector3,Fr=new KA.Vector3,Ho=new KA.Matrix4,cf=[new KA.Vector3(-1,1,1),new KA.Vector3(-1,-1,1),new KA.Vector3(1,-1,1),new KA.Vector3(1,1,1),new KA.Vector3(-1,1,-1),new KA.Vector3(-1,-1,-1),new KA.Vector3(1,-1,-1),new KA.Vector3(1,1,-1)],iw=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],sw=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]],lf=(o,t,A)=>{o.updateEntityBoxSize(jr,Fr),Ho.copy(t).multiply(o.matrixWorld),Fr.x===0&&Fr.y===0&&Fr.z===0?A.push(new KA.Vector3(jr.x,jr.y,jr.z).applyMatrix4(Ho)):cf.forEach(e=>{A.push(e.clone().multiply(Fr).add(jr).applyMatrix4(Ho))})},Xn=class extends KA.Box3{constructor(){super(...arguments);this.matrix=new KA.Matrix4;this.vertices=[];this.faces=[];this.edges=[];this.centerEdges=[]}copy(A){return super.copy(A),this.matrix.copy(A.matrix),this.vertices=A.vertices.map(e=>e.clone()),this.faces=A.faces.map(e=>e.clone()),this.edges=A.edges.map(e=>e.clone()),this.centerEdges=A.centerEdges.map(e=>e.clone()),this}setFromObjectSize(A,e=!1){A.updateWorldMatrix(!1,e),this.makeEmpty(),this.matrix.copy(A.matrixWorld);let r=new KA.Matrix4().copy(A.matrixWorld).invert();return this.expandByObjectSize(A,r,e)}expandByObjectSize(A,e,r=!1){let n=[];return r===!0?A.traverseEntity(i=>{i.visible&&lf(i,e,n)}):lf(A,e,n),this.setFromPoints(n)}getCenter(A){return A=super.getCenter(A),A.applyMatrix4(this.matrix),A}getPositionToCenter(A){return A=super.getCenter(A),A.applyMatrix4(Ho.copy(this.matrix).setPosition(0,0,0)),A}computeVertices(){this.getSize(Fr).multiplyScalar(.5),this.getCenter(jr),Ho.copy(this.matrix).setPosition(jr),this.vertices=cf.map(A=>A.clone().multiply(Fr).applyMatrix4(Ho))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=iw.map(([A,e])=>new KA.Line3(this.vertices[A],this.vertices[e])),this.centerEdges=this.edges.map(A=>A.getCenter(new KA.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=sw.map(([A,e])=>this.vertices[A].clone().add(this.vertices[e]).multiplyScalar(.5))}};var at={Cloner:()=>{},changeEntityProptotype:()=>{},createEntity:()=>{}};var HA;(t=>{function o(A){return A&&A.__isEntity}t.is=o})(HA||(HA={}));var lt=o=>HA.is(o),Ks=o=>class extends ko(o){constructor(){super(...arguments);this.raycastLock=!1;this.scaleLock=!1;this.disposed=!1;this.stateSelection=null;this.instances=[];this.prevState=null;this.currentState=null;this.reversibleToState=null;this.currentTransitionEvent=null;this._singleBBox=new Xn;this._recursiveBBox=new Xn;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0}get __isEntity(){return!0}entityChildren(e){let r=this.children[e];if(HA.is(r))return r}get isConcreteEntity(){return typeof this.identity=="string"}get isVirtualEntity(){return typeof this.identity!="string"}get isInstanceRoot(){return this.isConcreteEntity&&this.data.type==="Instance"}nearestInstanceSelfOrParent(){let e=this;for(;e.data.type!=="Instance";){let r=e.parent;if(HA.is(r))e=r;else return}return e}forInstancesRec(e){this.instances.forEach(r=>{r.disposed||e(r),r.forInstancesRec(e)})}super_Entity(e,r){typeof e=="string"&&(this.uuid=e),this.identity=e,this.data=r,this.matrixAutoUpdate=!1,this.dataPatched=this.data}changeSelectedState(e,r,n=!1){if(!(this.data.states.length===0&&!n)){for(let i of this.data.states)Br.toOps(this.data,i.data).forEach(l=>{let d=Zi.replaceProps(l,this.data);this.updateByPatchedOp(d,this.data,r)});if(e!==null){let i=this.data.states.data(e);i&&(this.dataPatched=Br.patch(this.data,i),Br.toOps(this.data,i).forEach(l=>{this.updateByPatchedOp(l,this.dataPatched,r)}))}else this.dataPatched=this.data;n&&this.updateTransformState(this.dataPatched),this.stateSelection=e}}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}updateEntityBoxSize(e,r){e.setScalar(0),r.setScalar(0)}resetBBoxNeedsUpdateSelf(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0}resetBBoxNeedsUpdate(){this.resetBBoxNeedsUpdateSelf(),this.traverseAncestors(e=>{lt(e)&&e.resetBBoxNeedsUpdateSelf()}),this.traverseEntity(e=>{e.resetBBoxNeedsUpdateSelf()})}find(e){let r;return this.traverseEntity(n=>{n.uuid===e&&(r=n)}),r}traverseSortNextHelper(){let e=this.parent;if(e){let r=e.children,n=r.indexOf(this)+1;if(HA.is(r[n]))return r[n];if(HA.is(e))return e.traverseSortNextHelper()}}sortNext(){let e=this.children;return this.children.length>0&&HA.is(this.children[0])?e[0]:this.traverseSortNextHelper()}goUp(e){let r=this;for(;e>0&&r!==null;)r=r.parent,e-=1;return r}hasAnccestorOrSelf(e){return this===e||this.hasAnccestor(e)}hasAnccestor(e){let r=this.parent;for(;r;){if(e===r)return!0;r=r.parent}return!1}countToAccestor(e){let r=0,n=this;for(;n!==e;){if(n===null)return-1;n=n.parent,r+=1}return r}forEachEntity(e){for(let r of this.children)lt(r)&&e(r)}traverseEntityAncestors(e){this.traverseAncestors(r=>{HA.is(r)&&e(r)})}traverseEntity(e,r=0){if(e(this,r)!==!0)for(let i of this.children)lt(i)&&i.traverseEntity(e,r+1)}traverseVisibleEntity(e){e(this);for(let r of this.children)lt(r)&&r.visible&&r.traverseVisibleEntity(e)}updateMatrix(){super.updateMatrix(),this.cloner&&this.cloner.onObjUpdateMatrix(),this.dispatchEvent({type:"updateMatrix"})}copy(e,r=!0){return super.copy(e,!1),this.raycastLock=e.raycastLock,this.scaleLock=e.scaleLock,this.hiddenMatrix.copy(e.hiddenMatrix),this}hasEntityChild(){return this.children.some(e=>lt(e))}isAncestorOf(e){if(this.uuid===e)return!1;let r=!1;return this.traverseEntity(n=>{n.uuid===e&&(r=!0)}),r}toObjectTransformState(e=[]){this.updateWorldMatrix(!0,!1);let r={position:this.position.toArray(),rotation:[this.rotation.x,this.rotation.y,this.rotation.z],scale:this.scale.toArray(),hiddenMatrix:this.hiddenMatrix.toArray()};return zo(r,e)}updateTransformState(e){let r=!1;return e.position&&(this.position.fromArray(e.position),r=!0),e.rotation&&(this.rotation.fromArray(e.rotation),r=!0),e.scale&&(r=!0,this.scale.fromArray(e.scale)),e.hiddenMatrix!==void 0&&(r=!0,this.hiddenMatrix.fromArray(e.hiddenMatrix??ir.identity)),r&&(this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(n=>{n.invalidateClonerTransform(this)})),e.position&&e.rotation&&e.scale&&e.hiddenMatrix!==void 0&&this.updateWorldMatrix(!1,!0),r}dispose(){this.disposed=!0,this.cloner&&(this.cloner.removeFromParent(),this.cloner=void 0)}disposeChildrenRecursively(){for(let e of this.children)HA.is(e)&&e.disposeRecursively()}disposeRecursively(){this.dispose(),this.children.forEach(e=>{HA.is(e)&&e.disposeRecursively()})}toState(e=[]){let r={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(e)};return zo(r,e)}updateByOp(e,r,n,i){let a=this.data;this.data=r;let l=e,d=vt(e.path,["states","*"]);if(d!==null){if(e.type===0){let[s]=d;if(this?.stateSelection===s){let c={...e.props};if(Object.values(e.props).some(u=>u===void 0)){let u=this.data;if(u!==void 0){let p=Se.zoom(u,e.path.slice(2));if(p)for(let f in e.props)e.props[f]===void 0&&f in p&&(c[f]=p[f])}}l={...e,props:c,path:e.path.slice(2)}}}}else if(e.type===0){let s=this.stateSelection?this.data.states.data(this.stateSelection):void 0;if(s!==void 0){if(e.props.name!==void 0&&s.name){let{name:u,...p}=s;s=p}if(e.props.material!==void 0&&"material"in s){let{material:u,...p}=s;s=p}let c=Se.removeOverridden(e.path,e.props,s);l={...e,props:c}}}if(this.updateByPatchedOpBase(l,Br.patch(this.data,this.stateSelection?this.data.states.data(this.stateSelection):void 0),n),vt(e.path,["overrides"])){let s=[],c=[...e.path];for(s.push(c[1]),c.splice(0,2);c.length>0&&c[0]==="descendants";)s.push(c[1]),c.splice(0,2);if(s[s.length-1]===void 0){if(e.type===0)for(let u of Object.keys(e.props)){s[s.length-1]=u;let p=n.scene.findInstance([this.uuid,...s]);p&&(p.overrideData=e.props[u],p.updateState(kt.apply(p.component.data,p.overrideData),n))}}else{let u=n.scene.findInstance([this.uuid,...s]);if(u){let p=Se.zoom(u.component.data,c);if(e={...e,path:c},e.type===0){let f=e.props;if(p)for(let[m,h]of Object.entries(e.props))h===void 0&&(f===e.props&&(f={...e.props}),f[m]=p[m]);e={...e,props:f}}u.overrideData=yo.resolve(r.overrides,s),u.updateByOp(e,pe.applySimple(u.data,e),n,!1)}}}else if(this.instances.length>0){let s;if(e.path.length===0&&e.type===0){let c;for(let u of ar.rootOverrideProps)u in e.props&&(c===void 0&&(c={}),c[u]=e.props[u]);c&&(s={...e,props:c})}else for(let c of ar.rootOverrideProps)if(vt(e.path,[c])){s=e;break}s!==void 0&&this.instances.forEach(c=>{if(c.isInstanceRoot){let u=kt.filterOp(c.overrideData,s);u&&c.updateByOp(u,pe.applySimple(c.data,u),n,!0)}}),this.instances.forEach(c=>{if(!c.isInstanceRoot){let u=kt.filterOp(c.overrideData,e);if(u){let p;a===c.data&&e===u?p=r:p=pe.applySimple(c.data,u),c.updateByOp(u,p,n,!0)}}})}}updateByPatchedOpBase(e,r,n){if(this.dataPatched=r,e.path.length===0&&e.type===0)e.props.type!==void 0&&!it.is(e.props.type)&&at.changeEntityProptotype(this,r,n);else if(e.path.length===1&&e.path[0]==="geometry"&&e.type===0&&"type"in e.props){at.changeEntityProptotype(this,r,n);for(let i of this.children)HA.is(i)&&i.updateVisible()}this.updateByPatchedOp(e,r,n)}updateByPatchedOp(e,r,n){if(e.path.length===0&&e.type===0&&this.updateState(e.props,n),vt(e.path,["cloner"])!==null){let i=pe.drop(e,1);i.path.length===0&&i.type===0&&i.props.disabled===!0?this.setFromClonerState(null,n):this.cloner?this.cloner.updateState(r.cloner,n.scene):(this.setFromClonerState(r.cloner,n),this.expandCloner(n.scene)),this.updateVisible()}}updateVisible(){this.visible=this.dataPatched.visible&&((this.dataPatched.cloner?.disabled??!0)||this.dataPatched.cloner?.hideBase!==!0)}updateState_Entity(e,r){e.name!==void 0&&(this.name=e.name),e.raycastLock!==void 0&&(this.raycastLock=e.raycastLock),e.visible!==void 0&&(this.updateVisible(),this.resetBBoxNeedsUpdate()),"cloner"in e&&e.cloner!==void 0&&(this.setFromClonerState(e.cloner,r),this.updateVisible()),this.updateTransformState(e)}get attachedSurfaceCloners(){return this.children.filter(e=>e instanceof at.Cloner&&e.parameters.type==="toObject")}setFromClonerState(e,r){this.disposed||(e===null||e.disabled?(this.cloner&&this.cloner.removeFromParent(),this.cloner=void 0):(this.cloner===void 0&&(this.cloner=new at.Cloner(this,e),r.scene.addPendingExpandCloner(this)),this.cloner.updateState(e,r.scene)))}expandCloner(e){!this.disposed&&this.cloner&&this.cloner.expandClones(e)}invalidateClonerTransform(e){this.cloner&&this.cloner.invalidateTransform(e)}};var pf=require("three");var UA=require("three"),uf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},o.parameters),e=A.width/2,r=A.radiusTop??e,n=A.radiusBottom??e;return r===n?(r=e,n=e):r>n?(r=e,n=n*e/r):(r=r*e/n,n=e),{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width),radiusTop:r,radiusBottom:n})}}static build(o){let{width:t,depth:A,height:e,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:l,radiusTop:d,radiusBottom:s,cornerRadius:c,cornerSegments:u,hollow:p}=o.parameters,f;return c||p?f=new Kn(d,s,e,r,n,i,a,l*Math.PI/180,c,c,u,p):f=new UA.CylinderGeometry(d,s,e,r,n,i,a,l*Math.PI/180),f.scale(1,1,A/t),Object.assign(f,{userData:{...o,type:"CylinderGeometry"}})}};function hr(o,t,A){A.x=o.x*t.x,A.y=o.y,A.z=o.x*t.y}function df(o){return new UA.Vector2(o.y,-o.x)}var Kn=class extends UA.BufferGeometry{constructor(t,A,e,r,n,i,a,l,d,s,c,u,p=!1){super(),this.type="RoundedCylinderBufferGeometry",t=t!==void 0?t:1,A=A!==void 0?A:1,e=e||1,r=Math.floor(r)||8,n=Math.floor(n)||1,i=i!==void 0?i:!1,a=a!==void 0?a:0,l=l!==void 0?l:Math.PI*2,i&&(d=0,s=0);let f=[],m=[],h=[],y=[],x=0,S=e/2,v=new UA.Vector3,b=new UA.Vector3;p&&t==0&&(t=d),p&&A==0&&(A=s);let P=new UA.Vector2(t,S),w=new UA.Vector2(A,-S),g=null,N=null,O=null,C=null,T=P.clone().sub(w),L=0,M=0,U=0;u>0&&(L=Math.min(t,A)*(1-u),M=t-L,U=A-L);let Z=P.clone();Z.x-=L;let $=Math.PI-T.angle(),iA=T.angle(),k=Math.tan(iA/2),q=Math.tan($/2),Q=k+q,F=u?Q:q,B=u?Q:k;if(d=Math.min(d,(t-M)/F,T.length()/Q),s=Math.min(s,(A-U)/B,T.length()/Q),d>0){let j=d/k;g=P.clone().sub(new UA.Vector2(j,d)),u&&(O=g.clone(),O.x-=L-Q*d),P.sub(T.clone().setLength(j))}if(s>0){let j=s/q;N=w.clone().sub(new UA.Vector2(j,-s)),w.add(T.clone().setLength(j)),u&&(C=N.clone(),C.x-=L-Q*s,Z.sub(T.clone().setLength(j)))}T=P.clone().sub(w);let D=T.length()<.5,G=[];for(let j=0;j<=r;j++){let R=[],W=j/r,Y=W*l+a,AA=new UA.Vector2(Math.sin(Y),Math.cos(Y));C&&N?(z(R,W,AA,$,s,C,-1,!0),z(R,W,AA,iA,s,N,-1,!1)):N?(X(R,AA,N.x,0,-1),z(R,W,AA,iA,s,N,-1,!1)):i||X(R,AA,A,U,-1);let sA=df(T).normalize();if(hr(sA,AA,v),!D)for(let eA=0;eA<=n;eA++){let tA=eA/n,rA=T.clone().multiplyScalar(tA).add(w);hr(rA,AA,b),m.push(b.x,b.y,b.z),h.push(v.x,v.y,v.z),y.push(W,.5+b.y/e),R.push(x++)}if(O&&g?(z(R,W,AA,$,d,g,1,!1),z(R,W,AA,iA,d,O,1,!0)):g?(z(R,W,AA,$,d,g,1,!1),X(R,AA,g.x,0,1)):i||X(R,AA,t,M,1),u&&!D){let eA=df(T).multiplyScalar(-1).normalize();hr(eA,AA,v);for(let tA=0;tA<=n;tA++){let rA=tA/n,J=T.clone().multiplyScalar(-rA).add(Z);hr(J,AA,b),m.push(b.x,b.y,b.z),h.push(v.x,v.y,v.z),y.push(W,.5+b.y/e),R.push(x++)}}u&&!i&&R.push(R[0]),G.push(R)}for(let j=0;j<G.length-1;j++)for(let R=0;R<G[0].length-1;R++){if(i&&u&&R==n)continue;let W=G[j][R],Y=G[j+1][R],AA=G[j+1][R+1],sA=G[j][R+1],eA=m[AA*3+0],tA=m[AA*3+2];f.push(W,Y,sA),(eA!=0||tA!=0)&&f.push(Y,AA,sA)}l<Math.PI*2&&(H(-1,G[0],a),H(1,G[G.length-1],a+l)),this.setIndex(f),this.setAttribute("position",new UA.Float32BufferAttribute(m,3)),this.setAttribute("normal",new UA.Float32BufferAttribute(h,3)),this.setAttribute("uv",new UA.Float32BufferAttribute(y,2));function z(j,R,W,Y,AA,sA,eA,tA){for(let rA=0;rA<c+1;rA++){let J=rA/c,mA=eA<0?J:1-J;tA&&(mA-=1),mA*=Y;let dA=new UA.Vector2(Math.sin(mA),Math.cos(mA)*eA),yA=dA.clone().multiplyScalar(AA).add(sA);hr(yA,W,b),m.push(b.x,b.y,b.z),hr(dA,W,v),h.push(v.x,v.y,v.z),y.push(R,.5+b.y/e),j.push(x++)}}function X(j,R,W,Y,AA){let sA=new UA.Vector3,eA=new UA.Vector2,tA=[W,Y];AA<0&&tA.reverse();for(let rA of tA)eA.set(rA,S*AA),hr(eA,R,sA),m.push(sA.x,sA.y,sA.z),h.push(0,AA,0),y.push(.5,.5),j.push(x++)}function H(j,R,W){let Y=new UA.Vector2(Math.sin(W),Math.cos(W)),AA=new UA.Vector2(-Math.cos(W),Math.sin(W)),sA=new UA.Vector3,eA=j<0?(J,mA,dA)=>f.push(J,mA,dA):(J,mA,dA)=>f.push(J,dA,mA),tA=new UA.Vector2((t+A+M+U)/4,0);hr(tA,Y,sA),m.push(sA.x,sA.y,sA.z),h.push(AA.x,0,AA.y),y.push(.5,.5);let rA=x++;for(let J of R){let mA=m.slice(J*3,J*3+3);m.push(...mA),h.push(AA.x,0,AA.y);let dA=y.slice(J*2,J*2+2);y.push(...dA),x++}for(let J=rA+1;J<x-1;J++)eA(rA,J,J+1);eA(rA,x-1,rA+1)}}};var ff=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,radialSegments:32,heightSegments:8,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadiusTop:0,cornerRadiusBottom:0,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:t,depth:A,height:e,radialSegments:r,heightSegments:n,openEnded:i,thetaStart:a,thetaLength:l,cornerRadiusTop:d,cornerRadiusBottom:s,cornerSegments:c}=o.parameters,u;return d>0||s>0||l<360?u=new Kn(0,t/2,e,r,n,i,a,l*Math.PI/180,d,s,c,0,!0):u=new pf.ConeGeometry(t/2,e,r,n,i),u.scale(1,1,A/t),Object.assign(u,{userData:{...o,type:"ConeGeometry"}})}};var Ge=require("three"),mf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,widthSegments:1,heightSegments:1,depthSegments:1,cornerRadius:0,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:t,height:A,depth:e,widthSegments:r,heightSegments:n,depthSegments:i,cornerRadius:a,cornerSegments:l}=o.parameters,d;return a==0?d=new Ge.BoxGeometry(t,A,e,r,n,i):d=new wl(t,A,e,r,n,i,a,l),Object.assign(d,{userData:{...o,type:"CubeGeometry"}})}},Sl=Math.PI/2,wl=class extends Ge.BufferGeometry{constructor(t=1,A=1,e=1,r=1,n=1,i=1,a=0,l=4){super(),this.type="BoxGeometry";let d=this;r=Math.floor(r),n=Math.floor(n),i=Math.floor(i),l=Math.floor(l),a=Math.min(a,t/2,A/2,e/2);let s=[],c=[],u=[],p=[],f=0,m=0;h("z","y","x",-1,-1,e,A,t,i,n,0),h("z","y","x",1,-1,e,A,-t,i,n,1),h("x","z","y",1,1,t,e,A,r,i,2),h("x","z","y",1,-1,t,e,-A,r,i,3),h("x","y","z",1,-1,t,A,e,r,n,4),h("x","y","z",-1,-1,t,A,-e,r,n,5),a>0&&(y("z","y","x",-1,-1,1,e,A,t,i,0),y("z","y","x",1,-1,-1,e,A,t,i,1),y("z","y","x",-1,1,-1,e,A,t,i,1),y("z","y","x",1,1,1,e,A,t,i,0),y("x","y","z",-1,-1,-1,t,A,e,r,0),y("x","y","z",1,-1,1,t,A,e,r,1),y("x","y","z",-1,1,1,t,A,e,r,0),y("x","y","z",1,1,-1,t,A,e,r,1),y("y","x","z",-1,-1,1,A,t,e,n,0),y("y","x","z",1,-1,-1,A,t,e,n,1),y("y","x","z",1,1,1,A,t,e,n,1),y("y","x","z",-1,1,-1,A,t,e,n,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(s),this.setAttribute("position",new Ge.Float32BufferAttribute(c,3)),this.setAttribute("normal",new Ge.Float32BufferAttribute(u,3)),this.setAttribute("uv",new Ge.Float32BufferAttribute(p,2));function h(S,v,b,P,w,g,N,O,C,T,L){let M=(g-2*a)/C,U=(N-2*a)/T,Z=g/2-a,$=N/2-a,iA=O/2,k=C+1,q=T+1,Q=0,F=0,B=new Ge.Vector3;for(let D=0;D<q;D++){let G=D*U-$;for(let z=0;z<k;z++){let X=z*M-Z;B[S]=X*P,B[v]=G*w,B[b]=iA,c.push(B.x,B.y,B.z),B[S]=0,B[v]=0,B[b]=O>0?1:-1,u.push(B.x,B.y,B.z),p.push(z/C),p.push(1-D/T),Q+=1}}for(let D=0;D<T;D++)for(let G=0;G<C;G++){let z=f+G+k*D,X=f+G+k*(D+1),H=f+(G+1)+k*(D+1),j=f+(G+1)+k*D;s.push(z,X,j),s.push(X,H,j),F+=6}d.addGroup(m,F,L),m+=F,f+=Q}function y(S,v,b,P,w,g,N,O,C,T,L){let M=(N-2*a)/T,U=N/2-a,Z=O/2-a,$=C/2,iA=T+1,k=0,q=0,Q=new Ge.Vector3,F=new Ge.Vector3;for(let B=0;B<l+1;B++){let D=B/l*Sl,G=Math.sin(D)*a,z=(1-Math.cos(D))*a,X=Math.sin(D),H=Math.cos(D);Q[v]=(Z+G)*w,Q[b]=($-z)*g,F[S]=0,F[v]=X*Math.sign(Q[v]),F[b]=H*Math.sign(Q[b]);for(let j=0;j<iA;j++){let R=j*M-U;Q[S]=R*P,c.push(Q.x,Q.y,Q.z),u.push(F.x,F.y,F.z),p.push(j/T),p.push(0),k+=1}}for(let B=0;B<l;B++)for(let D=0;D<T;D++){let G=f+D+iA*B,z=f+D+iA*(B+1),X=f+(D+1)+iA*(B+1),H=f+(D+1)+iA*B;s.push(G,z,H),s.push(z,X,H),q+=6}d.addGroup(m,q,L),m+=q,f+=k}function x(S,v,b){let P=new Ge.Vector3,w=new Ge.Vector3(t/2,A/2,e/2);w.subScalar(a);let g=[],N=S*v*b>0?(C,T,L)=>s.push(C,T,L):(C,T,L)=>s.push(C,L,T);for(let C=0;C<=l;C++){let T=[],L=Sl*(1-C/l),M=Math.cos(L),U=Math.sin(L),Z=0;for(let $=0;$<=C;$++){let iA=Math.cos(Z),k=Math.sin(Z);P.x=M*iA,P.y=U,P.z=M*k;let q=w.clone().addScaledVector(P,a);c.push(S*q.x,v*q.y,b*q.z),u.push(S*P.x,v*P.y,b*P.z),p.push(0,0),T.push(f++),Z+=Sl/C}g.push(T)}let O=g.length-1;for(let C=0;C<O;C++){let T=g[C],L=g[C+1],M=T.length-1;N(T[0],L[1],L[0]);for(let U=1;U<=M;U++)N(T[U-1],T[U],L[U]),N(T[U],L[U+1],L[U])}}}};var YA=require("three"),yr=class extends YA.BufferGeometry{constructor(t=[],A=[],e="",r=1,n=.2,i=4){super(),this.type="PolyhedronGeometryRound";let a=[],l=[],d=[];s(),c(),this.setAttribute("position",new YA.Float32BufferAttribute(a,3)),this.setAttribute("normal",new YA.Float32BufferAttribute(d,3)),this.setAttribute("uv",new YA.Float32BufferAttribute(l,2));return;function s(){n=Math.min(1-1e-5,n),n==0&&(i=0);let p={IcosahedronGeometry:5,DodecahedronGeometry:3,HexahedronGeometry:3,OctahedronGeometry:4,TetrahedronGeometry:3}[e],f=new YA.Vector3,m=f.clone(),h=new YA.Triangle,y=n*r,x=r-y,S=i+1,v=new YA.Vector3,b=(k,q)=>v.subVectors(k,q).normalize(),P=(k,q)=>Array(k).fill(void 0).map(q),w=P(t.length/3,(k,q)=>new YA.Vector3().fromArray(t,q*3).setLength(r)),g=[],N=1e6;for(let k=0;k<w.length;k++){let q=w[k],Q=[],F,B,D,G=1e10,z=-1;for(;(z=A.indexOf(k,z+1))!=-1;){let R=z-z%3;F=A[R+(z+1)%3],B=A[R+(z+2)%3],D=q.distanceToSquared(w[F]),G=Math.min(G,D),Q.push([F,B,D])}G+=1e-6;let X=[],H=0,j=Q.length;for(let R=0;R<j;R++){[F,B,D]=Q[H];let W=g[F]?.includes(k)==!0;D<=G&&X.push(F+ +W*N),H=Q.findIndex(Y=>Y[0]==B)}g.push(X)}let O=[];{let k=0,q=0,Q,F,B=p==3;for(let D=0;D<=i;D++){Q=D*(D+1)/2,F=(D+1)*(D+2)/2;for(let G=0;G<i-D;G++)[k,q]=[Q+G+D+2,F+G+D+3],O.push(Q,F,...B?[q,Q]:[k,F],q,k),[Q,F]=[k,q];O.push(Q,F,Q+i+2)}}let C=f.clone(),T=f.clone(),L=f.clone(),M=f.clone(),U=f.clone(),Z=[],$=P(w.length,()=>P(p,()=>f.clone()));for(let k=0;k<w.length;k++){f.copy(w[k]).normalize(),C.copy(f).multiplyScalar(x);let q=g[k];for(let X=0;X<q.length;X++){let H=q[X],j=q[(X+1)%p];h.setFromPointsAndIndices(w,k,H%N,j%N),h.b.sub(h.a).setLength(1e10).add(h.a),h.c.sub(h.a).setLength(1e10).add(h.a),h.closestPointToPoint(C,$[k][X])}let Q=[],F=[],B=[],D=new YA.Vector3;i==0&&[...$[k]].reduce((X,H)=>X.add(H),D).multiplyScalar(1/p);for(let X=0;X<p;X++){let H=[],j=(X-1+p)%p,R=$[k][j],W=$[k][X];f.copy(R).sub(C),m.copy(W).sub(C);let Y=C.angleTo(f),AA=f.angleTo(m),sA=Math.cos(Y)*y;i==0?T.copy(D):T.copy(C).setLength(x+sA),F.push(sA);let eA=[T,R,W];for(let tA=0;tA<2;tA++){let rA=eA[tA],J=eA[tA+1];M.subVectors(rA,C),U.subVectors(J,C),L.crossVectors(M,U).normalize();for(let mA=0;mA<S;mA++){let dA=[Y,AA][tA]*mA/S;f.copy(M).applyAxisAngle(L,dA).add(C),Q.push(f.clone()),tA&&(b(f,C),H.push([mA==0?rA:f.clone(),v.clone()]))}tA&&(b(J,C),H.push([J,v.clone()]))}B.push(H)}Z.push(B);let G=2*S,z=2;for(let X=0;X<p;X++){let H=G*X,j=G*((X+1)%p),R=[Q[H]];for(let Y=1;Y<S;Y++){M=Q[H+Y],U=Q[j+Y],R.push(M);for(let AA=1,sA=Y-z+1;AA<=sA;AA++)f.lerpVectors(M,U,AA/(sA+1)),f.sub(C).setLength(F[X]).add(C),R.push(f.clone());R.push(U)}for(let Y=0;Y<S;Y++)R.push(Q[Y+S+H]);R.push(Q[j+S]);let W=O.map(Y=>R[Y]);a.push(...W.map(Y=>[Y.x,Y.y,Y.z]).flat()),d.push(...W.map(Y=>(b(Y,C),[v.x,v.y,v.z])).flat())}}let iA=[];for(let k=0;k<g.length;k++)for(let q=0;q<p;q++){let Q=g[k][q];if(Q<N){let F=g[Q].findIndex(G=>G%N==k),B=Z[k][q],D=Z[Q][F];for(let G=0;G<S;G++){let z=B[G],X=D[S-G],H=B[G+1],j=D[S-(G+1)];[z,X,H,H,X,j].forEach(R=>{a.push(R[0].x,R[0].y,R[0].z),d.push(R[1].x,R[1].y,R[1].z)})}iA.push(B[0][0],D[S][0],B[S][0],D[0][0])}}for(;iA.length;){let k,q,Q,F;[k,q]=iA.splice(0,2);let B=[k];for(;k!=q;)B.push(q),Q=iA.indexOf(q),F=Q%2,q=iA.splice(Q-F,2)[1-F];v.subVectors(B[0],B[1]).cross(f.subVectors(B[0],B[2])).normalize();let D=v.dot(B[0])<0;D&&v.negate();for(let G=1;G<=B.length-2;G++)[B[G+ +D],B[G+1-+D],B[0]].forEach(z=>{a.push(z.x,z.y,z.z),d.push(v.x,v.y,v.z)})}}function c(){let u=new YA.Vector3;for(let w=0;w<a.length;w+=3){u.x=a[w+0],u.y=a[w+1],u.z=a[w+2];let g=b(u)/2/Math.PI+.5,N=P(u)/Math.PI+.5;l.push(g,1-N)}let p=new YA.Vector3,f=new YA.Vector3,m=new YA.Vector3,h=new YA.Vector3,y=new YA.Vector2,x=new YA.Vector2,S=new YA.Vector2,v=(w,g,N,O)=>{O<0&&w.x===1&&(l[g]=w.x-1),N.x===0&&N.z===0&&(l[g]=O/2/Math.PI+.5)};for(let w=0,g=0;w<a.length;w+=9,g+=6){p.set(a[w+0],a[w+1],a[w+2]),f.set(a[w+3],a[w+4],a[w+5]),m.set(a[w+6],a[w+7],a[w+8]),y.set(l[g+0],l[g+1]),x.set(l[g+2],l[g+3]),S.set(l[g+4],l[g+5]),h.copy(p).add(f).add(m).divideScalar(3);let N=b(h);v(y,g+0,p,N),v(x,g+2,f,N),v(S,g+4,m,N)}for(let w=0;w<l.length;w+=6){let g=l[w+0],N=l[w+2],O=l[w+4],C=Math.max(g,N,O),T=Math.min(g,N,O);C>.9&&T<.1&&(g<.2&&(l[w+0]+=1),N<.2&&(l[w+2]+=1),O<.2&&(l[w+4]+=1))}function b(w){return Math.atan2(w.z,-w.x)}function P(w){return Math.atan2(-w.y,Math.sqrt(w.x*w.x+w.z*w.z))}}}static fromJSON(t){return new yr(t.vertices,t.indices,t.radius,t.corner,t.cornerSides)}};var hf=require("three"),yf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:t,height:A,depth:e,detail:r,corner:n,cornerSides:i}=o.parameters,a=r===0&&n!==0?new Zn(t*.5,n,i):new hf.DodecahedronGeometry(t*.5,r);return a.scale(1,A/t,e/t),Object.assign(a,{userData:{...o,type:"DodecahedronGeometry"}})}},Zn=class extends yr{constructor(t=1,A=.2,e=4){let r=(1+Math.sqrt(5))/2,n=1/r,i=[-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,-n,-r,0,-n,r,0,n,-r,0,n,r,-n,-r,0,-n,r,0,n,-r,0,n,r,0,-r,0,-n,r,0,-n,-r,0,n,r,0,n],a=[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],l="DodecahedronGeometry";super(i,a,l,t,A,e),this.type=l}static fromJSON(t){return new Zn(t.radius,t.corner,t.cornerSides)}};var OA=require("three");var hA=require("three"),Jn=1e-12,Wo=class{constructor(t){this.position=new hA.Vector2;this.startPosition=new hA.Vector2;this.uuid=hA.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 Wo(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},qo=class extends Wo{constructor(A){super(A.position);this.parent=A}copy(A){return super.copy(A),this}clone(){return new qo(this.parent).copy(this)}},ct=class extends Wo{constructor(A,e){super(e);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=A,this.controls.push(new qo(this),new qo(this))}static create(A,e){let r=new ct(A,new hA.Vector2(...e.position));return r.controls[0].position.set(...e.controlPrevious.position),r.controls[1].position.set(...e.controlNext.position),r.roundness=e.roundness,r.areControlsDirectionsMirrored=e.areControlsDirectionsMirrored,r}getOppositeControl(A){let e=this.controls.indexOf(A);return e===0?this.controls[1]:e===1?this.controls[0]:null}applyOffsetToControls(A,e=1){for(let r=0,n=this.controls.length;r<n;r++){let i=this.controls[r];this.position.distanceTo(i.position)<=e?i.position.copy(this.position):i.applyOffset(A)}}controlsMoved(){return!(this.position.equals(this.controls[0].position)&&this.position.equals(this.controls[1].position))}copy(A){return super.copy(A),this.controls[0].copy(A.controls[0]),this.controls[1].copy(A.controls[1]),this.roundness=A.roundness,this.uuid=A.uuid,this}clone(){return new ct(this.uuid,this.position).copy(this)}toJSON(){return super.toJSON().concat(this.controls[0].toJSON(),this.controls[1].toJSON(),[this.roundness])}computeTangents(){let A=this.curveBefore?.getTangentAt(1),e=this.curveAfter?.getTangentAt(0);return[A,e]}computeNormals(A=new hA.Vector2,e=new hA.Vector2){let[r,n]=this.computeTangents();return r&&n&&(gf(r,A),gf(n,e)),[A,e]}computeTangent(A=new hA.Vector2){let[e,r]=this.computeTangents();return e&&r&&A.copy(e).add(r).normalize(),A}computeNormal(A=new hA.Vector2){let[e,r]=this.computeNormals();return A.copy(e).add(r).normalize(),A}};function gf(o,t=new hA.Vector2){let A=o.length();return t.set(-o.y/A,o.x/A)}var Ol=o=>o,Qo=new hA.Vector2,Zs=new hA.Vector2,aw=new hA.Vector2,lw=new hA.Vector2,cw=new hA.Vector2,dw=new hA.Vector2,vf=new hA.Vector3,bf=new hA.Vector3;function Sf(o){let t=new hA.Vector2;t.addVectors(o.v0,Qo.subVectors(o.v1,o.v0).multiplyScalar(2/3));let A=new hA.Vector2;return A.addVectors(o.v2,Zs.subVectors(o.v1,o.v2).multiplyScalar(2/3)),new hA.CubicBezierCurve(o.v0,t,A,o.v2)}function _n(o,t,A=Number.EPSILON){return Math.abs(o-t)<A}function uw(o,t,A=Number.EPSILON){return o.distanceTo(t)<A}function pw(o,t,A=Number.EPSILON){return o.distanceTo(t)<A}function Pl(o,t,A){let e=Math.sqrt(Math.pow(t.x-o.x,2)+Math.pow(t.y-o.y,2)),r=Math.sqrt(Math.pow(t.x-A.x,2)+Math.pow(t.y-A.y,2)),n=Math.sqrt(Math.pow(A.x-o.x,2)+Math.pow(A.y-o.y,2));return Math.acos((r*r+e*e-n*n)/(2*r*e))}function wf(o,t,A){return xf(o,t)&&xf(t,A)&&Tl(o.position,t.position,A.position)}function Tl(o,t,A){return Qo.copy(t).sub(o).cross(Zs.copy(A).sub(o))===0}function Tf(o,t,A,e,r){let n=Math.sqrt(Math.pow(t.x-o.x,2)+Math.pow(t.y-o.y,2)),i=(o.y+t.y)/2,a=(o.x+t.x)/2,l=Math.sqrt(Math.pow(A,2)-Math.pow(n/2,2))*(o.y-t.y)/n,d=Math.sqrt(Math.pow(A,2)-Math.pow(n/2,2))*(t.x-o.x)/n;return e.set(a+l,i+d),r.set(a-l,i-d),[e,r]}function Of(o,t,A){let e=o.distanceTo(A),r=t.distanceTo(A);return e<r?t:o}function Pf(o,t,A,e,r,n){let i=t.x-o.x,a=t.y-o.y,l=A.x-o.x,d=A.y-o.y,s=Math.sqrt((i+l)*(i+l)+(a+d)*(a+d)),c;return Pl(t,o,A)>Math.PI&&(s*=-1),_n(d,a)?c=(a+d)*(e/s-.5)*8/3/(i-l):c=(i+l)*(e/s-.5)*8/3/(d-a),r.set(t.x-c*a,t.y+c*i),n.set(A.x+c*d,A.y-c*l),[r,n]}function Nl(o,t){return o.position.equals(o.controls[1].position)&&t.position.equals(t.controls[0].position)}function xf(o,t){return Tl(o.position,o.controls[1].position,t.position)&&Tl(o.position,t.controls[0].position,t.position)}function Nf(o,t,A,e,r=.5){let n=Qo.subVectors(t,o).multiplyScalar(r).add(o),i=Zs.subVectors(A,t).multiplyScalar(r).add(t),a=aw.subVectors(e,A).multiplyScalar(r).add(A),l=n,d=lw.subVectors(i,n).multiplyScalar(r).add(n),s=cw.subVectors(a,i).multiplyScalar(r).add(i),c=a,u=dw.subVectors(s,d).multiplyScalar(r).add(d);return[o.x,o.y,l.x,l.y,d.x,d.y,u.x,u.y,s.x,s.y,c.x,c.y,e.x,e.y]}function Cf(o,t,A=12,e=!0){let r=bf.set(0,0,0),n,i=0,a=[];for(let l=0;l<t.length;l++){let d=Ol(t[l]),s=Qo,c=gr(d,A);a.push(c);for(let u=0;u<=c;u++)if(d instanceof hA.CubicBezierCurve||d instanceof hA.QuadraticBezierCurve||d instanceof hA.LineCurve){if(d.getPoint(u/c,s),r.set(s.x,s.y,0),n!==void 0&&pw(n,r))continue;n===void 0&&(n=vf),n.copy(r),o.setXYZ(i,r.x,r.y,r.z),i++}}return e&&i>1&&!(o.getX(i-1)===o.getX(0)&&o.getY(i-1)===o.getY(0)&&o.getZ(i-1)===o.getZ(0))&&(o.setXYZ(i,o.getX(0),o.getY(0),o.getZ(0)),i++),o}function If(o,t,A,e=12,r=!0){let n=bf.set(0,0,0),i=0,a=[];for(let l=0;l<t.length;l++){if(A[l]===!1)continue;let d,s=Ol(t[l]),c=Qo,u=gr(s,e);a.push(u);for(let p=0;p<=u;p++)if(s instanceof hA.CubicBezierCurve||s instanceof hA.QuadraticBezierCurve||s instanceof hA.LineCurve){if(s.getPoint(p/u,c),n.set(c.x,c.y,0),d?.equals(n))continue;d===void 0?d=vf:(o.setXYZ(i,d.x,d.y,d.z),i++,o.setXYZ(i,n.x,n.y,n.z),i++),d.copy(n)}}return r&&i>1&&!(o.getX(i-1)===o.getX(0)&&o.getY(i-1)===o.getY(0)&&o.getZ(i-1)===o.getZ(0))&&(o.setXYZ(i,o.getX(0),o.getY(0),o.getZ(0)),i++),a}function Cl(o,t=12,A=!1){let e=[];for(let r=0,n=o.length;r<n;r++){let i=o[r],a=0;if(A&&i.roundedCurveCorner!==void 0){let l=gr(i.roundedCurveCorner,t)*.5;r>0&&(e[r-1]+=l),a+=l}i.curveAfter!==void 0&&(a+=gr(i.curveAfter,t)),e.push(a)}return o.length>0&&A&&o[0].roundedCurveCorner!==void 0&&(e[o.length-1]+=gr(o[0].roundedCurveCorner,t)*.5),e}function gr(o,t=12){return o&&o instanceof hA.EllipseCurve?t*2:o&&(o instanceof hA.LineCurve||o instanceof hA.LineCurve3)?1:o&&o instanceof hA.SplineCurve?t*o.points.length:t}function Lf(o,t,A=12,e=!0){let r,n=0;for(let i=0;i<t.length;i++){let a=Ol(t[i]),l=gr(a,A),d=Qo;for(let s=0;s<=l;s++)if(a instanceof hA.CubicBezierCurve||a instanceof hA.QuadraticBezierCurve||a instanceof hA.LineCurve){if(a.getPoint(s/l,d),r!==void 0&&uw(r,d,Jn))continue;r===void 0&&(r=Zs),r.copy(d),o.push(d.x,d.y),n++}}return _n(o[0],o[o.length-2],Jn)&&_n(o[1],o[o.length-1],Jn)&&(o.pop(),o.pop()),e&&n>1&&!(_n(o[n-1],o[1],Jn)&&_n(o[n-2],o[0],Jn))&&(o.push(o[0],o[1]),n++),o}var Il=new OA.Vector2,fw=new OA.Vector2,mw=new OA.Vector2,hw=new OA.Vector2,yw=new OA.Vector2,gw=new OA.Vector2,TA=class extends OA.Shape{constructor(A=100,e=100){super();this.points=[];this.shapeHoles=[];this.plane=new OA.Plane(new OA.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=OA.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=A,this._height=e}static createFromState(A,e,r){let n=new TA;return n.isClosed=A.isClosed,n.points=A.points.map(i=>ct.create(i.id,i.data)),typeof A.roundness=="number"&&(n.roundness=A.roundness),n.shapeHoles=A.shapeHoles.map(i=>TA.createFromState(i)),e!==void 0&&r!==void 0&&n.applySize(e,r),n.update(),n}get width(){return this._width}get height(){return this._height}get roundness(){return this._roundness}set roundness(A){if(this._roundness!==A){this._roundness=A;for(let e=0,r=this.points.length;e<r;e++)this.points[e].roundness=A;this.needsUpdate=!0}}getPointsIndexesByIds(A){return A.map(e=>this.getPointIndexById(e)).filter(e=>e>=0)}getPointIndexById(A){let e=this.points.length,r=this.points.findIndex(n=>n.uuid===A);if(r<0){let n=e;for(let i=0,a=this.shapeHoles.length;i<a;i++){let l=this.shapeHoles[i],d=l.points.length,s=l.getPointIndexById(A);if(s<0)n+=d;else return s+n}}return r}getLineIndexById(A){return this.getPointIndexById(A)}getBezierPoint(A){if(A<=this.points.length-1)return this.points[A];if(this.shapeHoles.length>0){let e=this.points.length;for(let r=0,n=this.shapeHoles.length;r<n;r++){let i=this.shapeHoles[r],a=A-e;if(a<=i.points.length-1)return i.points[a];e+=i.points.length}}throw new Error("This shape does not have a point for this index: "+A)}getBezierPointIndex(A){let e=this.points.indexOf(A);if(e>=0)return e;if(e=this.points.length,this.shapeHoles.length>0)for(let r=0,n=this.shapeHoles.length;r<n;r++){let i=this.shapeHoles[r],a=i.points.indexOf(A);if(a>=0)return e+a;e+=i.points.length}return-1}getAllPoints(){let A=[].concat(...this.shapeHoles.map(e=>e.points));return[...this.points,...A]}applySize(A,e){A===0&&(A=.001),e===0&&(e=.001),this._width=A,this._height=e}applyScale(A,e){let r=Il.set(A,e);for(let n=0,i=this.points.length;n<i;n++){let a=this.points[n];a.position.multiply(r),a.controls[0].position.multiply(r),a.controls[1].position.multiply(r)}for(let n=0,i=this.shapeHoles.length;n<i;n++)this.shapeHoles[n].applyScale(A,e);this._update()}createPoint(A,e=0,r=OA.MathUtils.generateUUID()){let n;A instanceof OA.Vector2?n=A:n=new OA.Vector2(A,e);let i=new ct(r,n);return i.roundness=this.roundness,i}addPoint(A){this.points.push(A),this.needsUpdate=!0}addPointAt(A,e){this.points.splice(e,0,A),this.needsUpdate=!0}getPointByUuid(A){for(let e=0,r=this.points.length;e<r;e++){let n=this.points[e];if(n.uuid===A)return n}for(let e=0,r=this.shapeHoles.length;e<r;e++){let i=this.shapeHoles[e].getPointByUuid(A);if(i)return i}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(A){let e=this.points.indexOf(A);e>=0&&this.points.splice(e,1),this.needsUpdate=!0}removePointById(A){let e=this.points.find(r=>r.uuid===A);e&&this.removePoint(e)}update(){for(let A=0,e=this.shapeHoles.length;A<e;A++)this.shapeHoles[A].update();this._update()}extractShapePointsToBuffer(A,e=12,r=!1){this.subdivision=e,this.curveDivisions===void 0&&this.computeCurveDivisions(e);let n=r?this.roundedCurveDivisions:this.curveDivisions;return Cf(A,r?this.roundedCurves:this.curves,e,this.autoClose),n.reduce((i,a)=>i+a,0)+1}computeCurveDivisions(A=12){return this.curveDivisions=Cl(this.points,A,!1),this.roundedCurveDivisions=Cl(this.points,A,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(A,e,r=12){return If(A,this.curves,e,r,this.autoClose).reduce((i,a)=>i+a,0)*2}extractShapePointsToFlatArray(A,e=12){return this.subdivision=e,this.curveDivisions===void 0&&this.computeCurveDivisions(e),Lf(A,this.roundedCurves,e,this.autoClose)}getCurveIndexFromVertexId(A,e=!1){let r=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let n=e?this.roundedCurveDivisions:this.curveDivisions,i=0;e&&this.points[0].roundedCurveCorner!==void 0&&(i=gr(this.points[0].roundedCurveCorner,this.subdivision)*.5);let a=A-i;a<0&&(a+=n.reduce((l,d)=>l+d,0));for(let l=0,d=n.length;l<d;l++){let s=n[l];if(a<r+s)return[l,(a-r+1)/s];r+=s}return[0,1]}getCurveT(A,e,r){let n=this.points[A],i=this.points[A>=this.points.length-1?0:A+1],a=this.curveDivisions,l=a[A];if(Nl(n,i)){let c=n.position.distanceTo(i.position);return n.position.distanceTo(Il.set(r.x,r.y))/c}let d=0;for(let c=0;c<A;c++)d+=a[c];return(e-d)/l}dispose(){}_applyCurveForPoint(A,e){Nl(e,A)?this.lineTo(A.position.x,A.position.y):this.bezierCurveTo(e.controls[1].position.x,e.controls[1].position.y,A.controls[0].position.x,A.controls[0].position.y,A.position.x,A.position.y);let r=this.curves[this.curves.length-1];A.curveBefore=r,e.curveAfter=r;let n=r.clone();A.roundedCurveBefore=n,e.roundedCurveAfter=n,A.roundedCurveCorner=void 0,this.roundedCurves.push(n)}_update(){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let e=0,r=this.points.length;e<r;e++){let n=this.points[e];if(e===0)this.moveTo(n.position.x,n.position.y);else{let i=this.points[e-1];this._applyCurveForPoint(n,i)}}let A=this.getLastPoint();if(A?.curveAfter&&(A.curveAfter=void 0),this.isClosed){let e=this.points[0],r=this.points[this.points.length-1];this._applyCurveForPoint(e,r)}if(this.points.length>2){let e=0;for(let r=0,n=this.points.length;r<n;r++){let i=this.points[r],a=this.points[r-1]??this.points[this.points.length-1],l=this.points[r+1]??this.points[0],d=i.roundness,s=a&&l&&wf(a,i,l);if(!i.controlsMoved()&&d>0&&!s){let c=i.curveBefore,u=i.curveAfter;if(c===void 0||u===void 0)continue;let p=i.roundedCurveBefore,f=i.roundedCurveAfter,m=c.getLength(),h=u.getLength(),y=Math.min(d,m*.499),x=Math.min(d,h*.499),S=Math.min(y,x),v=1-S/m,b=S/h,P=c.getPointAt(v,Il),w=u.getPointAt(b,fw);this._subSplitCurve(c,p,v,P,void 0),this._subSplitCurve(u,f,b,void 0,w);let g;if(this.useCubicForRoundedCorners){let N=Pl(P,i.position,w)/2,O=Math.tan(N)*P.distanceTo(i.position),[C,T]=Tf(P,w,O,mw,hw),L=Of(C,T,i.position),[M,U]=Pf(L,P,w,O,yw,gw);g=new OA.CubicBezierCurve(P.clone(),M.clone(),U.clone(),w.clone())}else g=new OA.QuadraticBezierCurve(P.clone(),i.position.clone(),w.clone());i.roundedCurveCorner=g,this.roundedCurves.splice(r+e,0,g),e++}}}}_subSplitCurve(A,e,r,n,i){if(A instanceof OA.LineCurve)n!==void 0&&e.v2.copy(n),i!==void 0&&e.v1.copy(i);else{let a=A,l=e,d=a.getUtoTmapping(r,0),s=Nf(a.v0,a.v1,a.v2,a.v3,d);return n!==void 0&&(l.v0.set(s[0],s[1]),l.v1.set(s[2],s[3]),l.v2.set(s[4],s[5]),l.v3.set(s[6],s[7])),i!==void 0&&(l.v0.set(s[6],s[7]),l.v1.set(s[8],s[9]),l.v2.set(s[10],s[11]),l.v3.set(s[12],s[13])),l}return e}clone(){let A=new TA(this._width,this._height);return A.points=this.points.map(e=>e.clone()),A.isClosed=this.isClosed,A.roundness=this.roundness,A.isMesh2D=this.isMesh2D,A.shapeHoles=this.shapeHoles.map(e=>e.clone()),A}toJSON(){return{points:this.points.reduce((A,e)=>A.concat(e.toJSON()),[]),shapeHoles:this.shapeHoles.map(A=>A.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(A){this.points=[],this.pointIDs=0;let e=A.points.length/7;for(let r=0;r<e;r++){let n=r*7,i=A.points[n+0],a=A.points[n+1],l=A.points[n+2],d=A.points[n+3],s=A.points[n+4],c=A.points[n+5],u=A.points[n+6],p=new ct(OA.MathUtils.generateUUID(),new OA.Vector2(i,a));p.controls[0].position.set(l,d),p.controls[1].position.set(s,c),p.roundness=u,this.points.push(p)}return this.shapeHoles=A.shapeHoles?.length?A.shapeHoles.map(r=>{let n=new TA;return n.fromJSON(r),n}):[],this.isClosed=A.isClosed,this._roundness=A.roundness,this._update(),this}fromShape(A){let e=(n,i)=>{i instanceof OA.CubicBezierCurve&&i.v3.equals(n.position)&&n.controls[0].position.copy(i.v2)},r=n=>{let i=[],a,l;for(a=0,l=n.length;a<l;a++)n[a]instanceof OA.QuadraticBezierCurve&&(n[a]=Sf(n[a]));for(a=0,l=n.length;a<l;a++){let c=n[a],u=a>0?n[a-1]:null,p;c instanceof OA.CubicBezierCurve?(p=this.createPoint(c.v0),p.controls[1].position.copy(c.v1)):c instanceof OA.LineCurve&&(p=this.createPoint(c.v1)),p!==void 0&&(u!==null&&e(p,u),i.push(p))}let d=n[n.length-1],s=!1;return d instanceof OA.CubicBezierCurve?d.v3.equals(i[0].position)&&(i[0].controls[0].position.copy(d.v2),s=!0):d instanceof OA.LineCurve&&d.v2.equals(i[0].position)&&(s=!0),this.isClosed=s,i};return this.points=r(A.curves),A instanceof OA.Shape&&(this.shapeHoles=A.holes.map(n=>{let i=new TA;return i.fromShape(n),i})),this.update(),this}updatePoint(A,e){let r=this.getPointByUuid(A);r&&(e.position!==void 0&&r.position.fromArray(e.position),e.roundness!==void 0&&(r.roundness=e.roundness),e.areControlsDirectionsMirrored!==void 0&&(r.areControlsDirectionsMirrored=e.areControlsDirectionsMirrored),this.needsUpdate=!0)}updatePreviousControl(A,e){let n=this.getPointByUuid(A)?.controls[0];n&&(e.position&&n.position.fromArray(e.position),this.needsUpdate=!0)}updateNextControl(A,e){let n=this.getPointByUuid(A)?.controls[1];n&&(e.position&&n.position.fromArray(e.position),this.needsUpdate=!0)}};var El=Math.PI*2;function Ll({x:o,y:t},A,e,r,n){return{x:o*A+r,y:t*e+n}}function xw(o,t){let A=t===1.5707963267948966?.551915024494:t===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(t/4),e=Math.cos(o),r=Math.sin(o),n=Math.cos(o+t),i=Math.sin(o+t);return[{x:e-r*A,y:r+e*A},{x:n+i*A,y:i-n*A},{x:n,y:i}]}function Ef(o,t,A,e){let r=o*e-t*A<0?-1:1,n=Math.min(1,Math.max(-1,o*A+t*e));return r*Math.acos(n)}function vw(o,t,A,e,r,n,i,a,l,d){let s=Math.pow(r,2),c=Math.pow(n,2),u=Math.pow(i,2),p=Math.pow(a,2),f=s*c-s*p-c*u;f<0&&(f=0),f/=s*p+c*u,f=Math.sqrt(f)*(l===d?-1:1);let m=f*r/n*a,h=f*-n/r*i,y=m+(o+A)/2,x=h+(t+e)/2,S=(i-m)/r,v=(a-h)/n,b=(-i-m)/r,P=(-a-h)/n,w=Ef(1,0,S,v),g=Ef(S,v,b,P);return!d&&g>0&&(g-=El),d&&g<0&&(g+=El),{centerx:y,centery:x,ang1:w,ang2:g}}function Mf({px:o,py:t,cx:A,cy:e,rx:r,ry:n,largeArcFlag:i,sweepFlag:a}){let l=[];if(r===0||n===0)return[];let d=(o-A)/2,s=(t-e)/2;if(d===0&&s===0)return[];r=Math.abs(r),n=Math.abs(n);let c=Math.pow(d,2)/Math.pow(r,2)+Math.pow(s,2)/Math.pow(n,2);c>1&&(r*=Math.sqrt(c),n*=Math.sqrt(c));let u=vw(o,t,A,e,r,n,d,s,i,a),{ang1:p,ang2:f}=u,{centerx:m,centery:h}=u,y=Math.abs(f)/(El/4);Math.abs(1-y)<1e-7&&(y=1);let x=Math.max(Math.ceil(y),1);f/=x;for(let S=0;S<x;S++)l.push(xw(p,f)),p+=f;return l.map(S=>{let{x:v,y:b}=Ll(S[0],r,n,m,h),{x:P,y:w}=Ll(S[1],r,n,m,h),{x:g,y:N}=Ll(S[2],r,n,m,h);return{x1:v,y1:b,x2:P,y2:w,x:g,y:N}})}var Ur=require("three");var DA;(function(o){o[o.ODD=0]="ODD",o[o.NONZERO=1]="NONZERO",o[o.POSITIVE=2]="POSITIVE",o[o.NEGATIVE=3]="NEGATIVE",o[o.ABS_GEQ_TWO=4]="ABS_GEQ_TWO"})(DA||(DA={}));var te;(function(o){o[o.POLYGONS=0]="POLYGONS",o[o.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",o[o.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(te||(te={}));function uA(o,t){if(!o)throw t||"Assertion Failed!"}var aA=function(){function o(){}return o.vertEq=function(t,A){return t.s===A.s&&t.t===A.t},o.vertLeq=function(t,A){return t.s<A.s||t.s===A.s&&t.t<=A.t},o.transLeq=function(t,A){return t.t<A.t||t.t===A.t&&t.s<=A.s},o.edgeGoesLeft=function(t){return o.vertLeq(t.Dst,t.Org)},o.edgeGoesRight=function(t){return o.vertLeq(t.Org,t.Dst)},o.vertL1dist=function(t,A){return Math.abs(t.s-A.s)+Math.abs(t.t-A.t)},o.edgeEval=function(t,A,e){uA(o.vertLeq(t,A)&&o.vertLeq(A,e));var r=A.s-t.s,n=e.s-A.s;return r+n>0?r<n?A.t-t.t+(t.t-e.t)*(r/(r+n)):A.t-e.t+(e.t-t.t)*(n/(r+n)):0},o.edgeSign=function(t,A,e){uA(o.vertLeq(t,A)&&o.vertLeq(A,e));var r=A.s-t.s,n=e.s-A.s;return r+n>0?(A.t-e.t)*r+(A.t-t.t)*n:0},o.transEval=function(t,A,e){uA(o.transLeq(t,A)&&o.transLeq(A,e));var r=A.t-t.t,n=e.t-A.t;return r+n>0?r<n?A.s-t.s+(t.s-e.s)*(r/(r+n)):A.s-e.s+(e.s-t.s)*(n/(r+n)):0},o.transSign=function(t,A,e){uA(o.transLeq(t,A)&&o.transLeq(A,e));var r=A.t-t.t,n=e.t-A.t;return r+n>0?(A.s-e.s)*r+(A.s-t.s)*n:0},o.vertCCW=function(t,A,e){return t.s*(A.t-e.t)+A.s*(e.t-t.t)+e.s*(t.t-A.t)>=0},o.interpolate=function(t,A,e,r){return t=t<0?0:t,e=e<0?0:e,t<=e?e===0?(A+r)/2:A+(r-A)*(t/(t+e)):r+(A-r)*(e/(t+e))},o.intersect=function(t,A,e,r,n){var i,a,l;o.vertLeq(t,A)||(l=t,t=A,A=l),o.vertLeq(e,r)||(l=e,e=r,r=l),o.vertLeq(t,e)||(l=t,t=e,e=l,l=A,A=r,r=l),o.vertLeq(e,A)?o.vertLeq(A,r)?(i=o.edgeEval(t,e,A),a=o.edgeEval(e,A,r),i+a<0&&(i=-i,a=-a),n.s=o.interpolate(i,e.s,a,A.s)):(i=o.edgeSign(t,e,A),a=-o.edgeSign(t,r,A),i+a<0&&(i=-i,a=-a),n.s=o.interpolate(i,e.s,a,r.s)):n.s=(e.s+A.s)/2,o.transLeq(t,A)||(l=t,t=A,A=l),o.transLeq(e,r)||(l=e,e=r,r=l),o.transLeq(t,e)||(l=t,t=e,e=l,l=A,A=r,r=l),o.transLeq(e,A)?o.transLeq(A,r)?(i=o.transEval(t,e,A),a=o.transEval(e,A,r),i+a<0&&(i=-i,a=-a),n.t=o.interpolate(i,e.t,a,A.t)):(i=o.transSign(t,e,A),a=-o.transSign(t,r,A),i+a<0&&(i=-i,a=-a),n.t=o.interpolate(i,e.t,a,r.t)):n.t=(e.t+A.t)/2},o}(),$n=function(){function o(){this.next=null,this.prev=null,this.anEdge=null,this.trail=null,this.n=0,this.marked=!1,this.inside=!1}return o}(),Js=function(){function o(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(o.prototype,"Rface",{get:function(){return this.Sym.Lface},set:function(t){this.Sym.Lface=t},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(t){this.Sym.Org=t},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(t){this.Sym.Lnext=t},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(t){this.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(t){this.Lnext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(t){this.Sym.Onext=t},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(t){this.Sym.Onext.Sym=t},enumerable:!0,configurable:!0}),Object.defineProperty(o.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(t){this.Sym.Lnext.Sym=t},enumerable:!0,configurable:!0}),o}(),Yo=function(){function o(){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 o}(),Bf=function(){function o(){var t=new Yo,A=new $n,e=new Js(0),r=new Js(1);t.next=t.prev=t,t.anEdge=null,A.next=A.prev=A,e.next=e,e.Sym=r,r.next=r,r.Sym=e,this.vHead=t,this.fHead=A,this.eHead=e,this.eHeadSym=r}return o.prototype.makeEdge_=function(t){var A=new Js(0),e=new Js(1);t.Sym.side<t.side&&(t=t.Sym);var r=t.Sym.next;return e.next=r,r.Sym.next=A,A.next=t,t.Sym.next=e,A.Sym=e,A.Onext=A,A.Lnext=e,A.Org=null,A.Lface=null,A.winding=0,A.activeRegion=null,e.Sym=A,e.Onext=e,e.Lnext=A,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,A},o.prototype.splice_=function(t,A){var e=t.Onext,r=A.Onext;e.Sym.Lnext=A,r.Sym.Lnext=t,t.Onext=r,A.Onext=e},o.prototype.makeVertex_=function(t,A,e){var r=t;uA(r,"Vertex can't be null!");var n=e.prev;r.prev=n,n.next=r,r.next=e,e.prev=r,r.anEdge=A;var i=A;do i.Org=r,i=i.Onext;while(i!==A)},o.prototype.makeFace_=function(t,A,e){var r=t;uA(r,"Face can't be null");var n=e.prev;r.prev=n,n.next=r,r.next=e,e.prev=r,r.anEdge=A,r.trail=null,r.marked=!1,r.inside=e.inside;var i=A;do i.Lface=r,i=i.Lnext;while(i!==A)},o.prototype.killEdge_=function(t){t.Sym.side<t.side&&(t=t.Sym);var A=t.next,e=t.Sym.next;A.Sym.next=e,e.Sym.next=A},o.prototype.killVertex_=function(t,A){var e=t.anEdge,r=e;do r.Org=A,r=r.Onext;while(r!==e);var n=t.prev,i=t.next;i.prev=n,n.next=i},o.prototype.killFace_=function(t,A){var e=t.anEdge,r=e;do r.Lface=A,r=r.Lnext;while(r!==e);var n=t.prev,i=t.next;i.prev=n,n.next=i},o.prototype.makeEdge=function(){var t=new Yo,A=new Yo,e=new $n,r=this.makeEdge_(this.eHead);return this.makeVertex_(t,r,this.vHead),this.makeVertex_(A,r.Sym,this.vHead),this.makeFace_(e,r,this.fHead),r},o.prototype.splice=function(t,A){var e=!1,r=!1;if(t!==A){if(A.Org!==t.Org&&(r=!0,this.killVertex_(A.Org,t.Org)),A.Lface!==t.Lface&&(e=!0,this.killFace_(A.Lface,t.Lface)),this.splice_(A,t),!r){var n=new Yo;this.makeVertex_(n,A,t.Org),t.Org.anEdge=t}if(!e){var i=new $n;this.makeFace_(i,A,t.Lface),t.Lface.anEdge=t}}},o.prototype.delete=function(t){var A=t.Sym,e=!1;if(t.Lface!==t.Rface&&(e=!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),!e){var r=new $n;this.makeFace_(r,t,t.Lface)}A.Onext===A?(this.killVertex_(A.Org,null),this.killFace_(A.Lface,null)):(t.Lface.anEdge=A.Oprev,A.Org.anEdge=A.Onext,this.splice_(A,A.Oprev)),this.killEdge_(t)},o.prototype.addEdgeVertex=function(t){var A=this.makeEdge_(t),e=A.Sym;this.splice_(A,t.Lnext),A.Org=t.Dst;var r=new Yo;return this.makeVertex_(r,e,A.Org),A.Lface=e.Lface=t.Lface,A},o.prototype.splitEdge=function(t){var A=this.addEdgeVertex(t),e=A.Sym;return this.splice_(t.Sym,t.Sym.Oprev),this.splice_(t.Sym,e),t.Dst=e.Org,e.Dst.anEdge=e.Sym,e.Rface=t.Rface,e.winding=t.winding,e.Sym.winding=t.Sym.winding,e.idx=t.idx,e.Sym.idx=t.Sym.idx,e},o.prototype.connect=function(t,A){var e=!1,r=this.makeEdge_(t),n=r.Sym;if(A.Lface!==t.Lface&&(e=!0,this.killFace_(A.Lface,t.Lface)),this.splice_(r,t.Lnext),this.splice_(n,A),r.Org=t.Dst,n.Org=A.Org,r.Lface=n.Lface=t.Lface,t.Lface.anEdge=n,!e){var i=new $n;this.makeFace_(i,r,t.Lface)}return r},o.prototype.zapFace=function(t){var A=t.anEdge,e,r,n,i,a;r=A.Lnext;do e=r,r=e.Lnext,e.Lface=null,e.Rface===null&&(e.Onext===e?this.killVertex_(e.Org,null):(e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),n=e.Sym,n.Onext===n?this.killVertex_(n.Org,null):(n.Org.anEdge=n.Onext,this.splice_(n,n.Oprev)),this.killEdge_(e));while(e!=A);i=t.prev,a=t.next,a.prev=i,i.next=a},o.prototype.countFaceVerts_=function(t){var A=t.anEdge,e=0;do e++,A=A.Lnext;while(A!==t.anEdge);return e},o.prototype.mergeConvexFaces=function(t){var A,e,r,n,i,a,l;for(A=this.fHead.next;A!==this.fHead;A=A.next)if(!!A.inside)for(e=A.anEdge,i=e.Org;r=e.Lnext,n=e.Sym,n&&n.Lface&&n.Lface.inside&&(a=this.countFaceVerts_(A),l=this.countFaceVerts_(n.Lface),a+l-2<=t&&aA.vertCCW(e.Lprev.Org,e.Org,n.Lnext.Lnext.Org)&&aA.vertCCW(n.Lprev.Org,n.Org,e.Lnext.Lnext.Org)&&(r=n.Lnext,this.delete(n),e=null,n=null)),!(e&&e.Lnext.Org===i);)e=r;return!0},o.prototype.check=function(){var t=this.fHead,A=this.vHead,e=this.eHead,r,n,i,a,l,d;for(n=t,n=t;(r=n.next)!==t;n=r){uA(r.prev===n),l=r.anEdge;do uA(l.Sym!==l),uA(l.Sym.Sym===l),uA(l.Lnext.Onext.Sym===l),uA(l.Onext.Sym.Lnext===l),uA(l.Lface===r),l=l.Lnext;while(l!==r.anEdge)}for(uA(r.prev===n&&r.anEdge===null),a=A,a=A;(i=a.next)!==A;a=i){uA(i.prev===a),l=i.anEdge;do uA(l.Sym!==l),uA(l.Sym.Sym===l),uA(l.Lnext.Onext.Sym===l),uA(l.Onext.Sym.Lnext===l),uA(l.Org===i),l=l.Onext;while(l!==i.anEdge)}for(uA(i.prev===a&&i.anEdge===null),d=e,d=e;(l=d.next)!==e;d=l)uA(l.Sym.next===d.Sym),uA(l.Sym!==l),uA(l.Sym.Sym===l),uA(l.Org!==null),uA(l.Dst!==null),uA(l.Lnext.Onext.Sym===l),uA(l.Onext.Sym.Lnext===l);uA(l.Sym.next===d.Sym&&l.Sym===this.eHeadSym&&l.Sym.Sym===l&&l.Org===null&&l.Dst===null&&l.Lface===null&&l.Rface===null)},o}(),Df=function(){function o(){this.handle=null}return o}(),Gf=function(){function o(){this.key=null,this.node=0}return o}(),bw=function(){function o(t,A){this.leq=A,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 e=0;e<t+1;e++)this.nodes[e]=new Df,this.handles[e]=new Gf;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return o.prototype.floatDown_=function(t){var A=this.nodes,e=this.handles,r,n,i;for(r=A[t].handle;;){if(i=t<<1,i<this.size&&this.leq(e[A[i+1].handle].key,e[A[i].handle].key)&&++i,uA(i<=this.max),n=A[i].handle,i>this.size||this.leq(e[r].key,e[n].key)){A[t].handle=r,e[r].node=t;break}A[t].handle=n,e[n].node=t,t=i}},o.prototype.floatUp_=function(t){var A=this.nodes,e=this.handles,r,n,i;for(r=A[t].handle;;){if(i=t>>1,n=A[i].handle,i===0||this.leq(e[n].key,e[r].key)){A[t].handle=r,e[r].node=t;break}A[t].handle=n,e[n].node=t,t=i}},o.prototype.init=function(){for(var t=this.size;t>=1;--t)this.floatDown_(t);this.initialized=!0},o.prototype.min=function(){return this.handles[this.nodes[1].handle].key},o.prototype.insert=function(t){var A,e;if(A=++this.size,A*2>this.max){this.max*=2;var r,n;for(n=this.nodes.length,this.nodes.length=this.max+1,r=n;r<this.nodes.length;r++)this.nodes[r]=new Df;for(n=this.handles.length,this.handles.length=this.max+1,r=n;r<this.handles.length;r++)this.handles[r]=new Gf}return this.freeList===0?e=A:(e=this.freeList,this.freeList=this.handles[e].node),this.nodes[A].handle=e,this.handles[e].node=A,this.handles[e].key=t,this.initialized&&this.floatUp_(A),e},o.prototype.extractMin=function(){var t=this.nodes,A=this.handles,e=t[1].handle,r=A[e].key;return this.size>0&&(t[1].handle=t[this.size].handle,A[t[1].handle].node=1,A[e].key=null,A[e].node=this.freeList,this.freeList=e,--this.size,this.size>0&&this.floatDown_(1)),r},o.prototype.delete=function(t){var A=this.nodes,e=this.handles,r;uA(t>=1&&t<=this.max&&e[t].key!==null),r=e[t].node,A[r].handle=A[this.size].handle,e[A[r].handle].node=r,--this.size,r<=this.size&&(r<=1||this.leq(e[A[r>>1].handle].key,e[A[r].handle].key)?this.floatDown_(r):this.floatUp_(r)),e[t].key=null,e[t].node=this.freeList,this.freeList=t},o}(),Ml=function(){function o(){this.eUp=null,this.nodeUp=null,this.windingNumber=0,this.inside=!1,this.sentinel=!1,this.dirty=!1,this.fixUpperEdge=!1}return o}(),Rf=function(){function o(){this.key=null,this.next=null,this.prev=null}return o}(),Sw=function(){function o(t,A){this.frame=t,this.leq=A,this.head=new Rf,this.head.next=this.head,this.head.prev=this.head}return o.prototype.min=function(){return this.head.next},o.prototype.max=function(){return this.head.prev},o.prototype.insert=function(t){return this.insertBefore(this.head,t)},o.prototype.search=function(t){var A=this.head;do A=A.next;while(A.key!==null&&!this.leq(this.frame,t,A.key));return A},o.prototype.insertBefore=function(t,A){do t=t.prev;while(t.key!==null&&!this.leq(this.frame,t.key,A));var e=new Rf;return e.key=A,e.next=t.next,t.next.prev=e,e.prev=t,t.next=e,e},o.prototype.delete=function(t){t.next.prev=t.prev,t.prev.next=t.next},o}(),ww=function(){function o(){}return o.regionBelow=function(t){return t.nodeUp.prev.key},o.regionAbove=function(t){return t.nodeUp.next.key},o.debugEvent=function(t){},o.addWinding=function(t,A){t.winding+=A.winding,t.Sym.winding+=A.Sym.winding},o.edgeLeq=function(t,A,e){var r=t.event,n=A.eUp,i=e.eUp;if(n.Dst===r)return i.Dst===r?aA.vertLeq(n.Org,i.Org)?aA.edgeSign(i.Dst,n.Org,i.Org)<=0:aA.edgeSign(n.Dst,i.Org,n.Org)>=0:aA.edgeSign(i.Dst,r,i.Org)<=0;if(i.Dst===r)return aA.edgeSign(n.Dst,r,n.Org)>=0;var a=aA.edgeEval(n.Dst,r,n.Org),l=aA.edgeEval(i.Dst,r,i.Org);return a>=l},o.deleteRegion=function(t,A){A.fixUpperEdge&&uA(A.eUp.winding===0),A.eUp.activeRegion=null,t.dict.delete(A.nodeUp)},o.fixUpperEdge=function(t,A,e){uA(A.fixUpperEdge),t.mesh.delete(A.eUp),A.fixUpperEdge=!1,A.eUp=e,e.activeRegion=A},o.topLeftRegion=function(t,A){var e=A.eUp.Org,r;do A=o.regionAbove(A);while(A.eUp.Org===e);if(A.fixUpperEdge){if(r=t.mesh.connect(o.regionBelow(A).eUp.Sym,A.eUp.Lnext),r===null)return null;o.fixUpperEdge(t,A,r),A=o.regionAbove(A)}return A},o.topRightRegion=function(t){var A=t.eUp.Dst;do t=o.regionAbove(t);while(t.eUp.Dst===A);return t},o.addRegionBelow=function(t,A,e){var r=new Ml;return r.eUp=e,r.nodeUp=t.dict.insertBefore(A.nodeUp,r),r.fixUpperEdge=!1,r.sentinel=!1,r.dirty=!1,e.activeRegion=r,r},o.isWindingInside=function(t,A){switch(t.windingRule){case DA.ODD:return(A&1)!==0;case DA.NONZERO:return A!==0;case DA.POSITIVE:return A>0;case DA.NEGATIVE:return A<0;case DA.ABS_GEQ_TWO:return A>=2||A<=-2}throw new Error("Invalid winding rulle")},o.computeWinding=function(t,A){A.windingNumber=o.regionAbove(A).windingNumber+A.eUp.winding,A.inside=o.isWindingInside(t,A.windingNumber)},o.finishRegion=function(t,A){var e=A.eUp,r=e.Lface;r.inside=A.inside,r.anEdge=e,o.deleteRegion(t,A)},o.finishLeftRegions=function(t,A,e){for(var r,n=null,i=A,a=A.eUp;i!==e;){if(i.fixUpperEdge=!1,n=o.regionBelow(i),r=n.eUp,r.Org!=a.Org){if(!n.fixUpperEdge){o.finishRegion(t,i);break}r=t.mesh.connect(a.Lprev,r.Sym),o.fixUpperEdge(t,n,r)}a.Onext!==r&&(t.mesh.splice(r.Oprev,r),t.mesh.splice(a,r)),o.finishRegion(t,i),a=n.eUp,i=n}return a},o.addRightEdges=function(t,A,e,r,n,i){var a,l,d,s,c=!0;d=e;do uA(aA.vertLeq(d.Org,d.Dst)),o.addRegionBelow(t,A,d.Sym),d=d.Onext;while(d!==r);for(n===null&&(n=o.regionBelow(A).eUp.Rprev),l=A,s=n;a=o.regionBelow(l),d=a.eUp.Sym,d.Org===s.Org;)d.Onext!==s&&(t.mesh.splice(d.Oprev,d),t.mesh.splice(s.Oprev,d)),a.windingNumber=l.windingNumber-d.winding,a.inside=o.isWindingInside(t,a.windingNumber),l.dirty=!0,!c&&o.checkForRightSplice(t,l)&&(o.addWinding(d,s),o.deleteRegion(t,l),t.mesh.delete(s)),c=!1,l=a,s=d;l.dirty=!0,uA(l.windingNumber-d.winding===a.windingNumber),i&&o.walkDirtyRegions(t,l)},o.spliceMergeVertices=function(t,A,e){t.mesh.splice(A,e)},o.vertexWeights=function(t,A,e){var r=aA.vertL1dist(A,t),n=aA.vertL1dist(e,t),i=.5*n/(r+n),a=.5*r/(r+n);t.coords[0]+=i*A.coords[0]+a*e.coords[0],t.coords[1]+=i*A.coords[1]+a*e.coords[1],t.coords[2]+=i*A.coords[2]+a*e.coords[2]},o.getIntersectData=function(t,A,e,r,n,i){A.coords[0]=A.coords[1]=A.coords[2]=0,A.idx=-1,o.vertexWeights(A,e,r),o.vertexWeights(A,n,i)},o.checkForRightSplice=function(t,A){var e=o.regionBelow(A),r=A.eUp,n=e.eUp;if(aA.vertLeq(r.Org,n.Org)){if(aA.edgeSign(n.Dst,r.Org,n.Org)>0)return!1;aA.vertEq(r.Org,n.Org)?r.Org!==n.Org&&(t.pq.delete(r.Org.pqHandle),o.spliceMergeVertices(t,n.Oprev,r)):(t.mesh.splitEdge(n.Sym),t.mesh.splice(r,n.Oprev),A.dirty=e.dirty=!0)}else{if(aA.edgeSign(r.Dst,n.Org,r.Org)<0)return!1;o.regionAbove(A).dirty=A.dirty=!0,t.mesh.splitEdge(r.Sym),t.mesh.splice(n.Oprev,r)}return!0},o.checkForLeftSplice=function(t,A){var e=o.regionBelow(A),r=A.eUp,n=e.eUp,i;if(uA(!aA.vertEq(r.Dst,n.Dst)),aA.vertLeq(r.Dst,n.Dst)){if(aA.edgeSign(r.Dst,n.Dst,r.Org)<0)return!1;o.regionAbove(A).dirty=A.dirty=!0,i=t.mesh.splitEdge(r),t.mesh.splice(n.Sym,i),i.Lface.inside=A.inside}else{if(aA.edgeSign(n.Dst,r.Dst,n.Org)>0)return!1;A.dirty=e.dirty=!0,i=t.mesh.splitEdge(n),t.mesh.splice(r.Lnext,n.Sym),i.Rface.inside=A.inside}return!0},o.checkForIntersect=function(t,A){var e=o.regionBelow(A),r=A.eUp,n=e.eUp,i=r.Org,a=n.Org,l=r.Dst,d=n.Dst,s,c,u=new Yo,p,f;if(uA(!aA.vertEq(d,l)),uA(aA.edgeSign(l,t.event,i)<=0),uA(aA.edgeSign(d,t.event,a)>=0),uA(i!==t.event&&a!==t.event),uA(!A.fixUpperEdge&&!e.fixUpperEdge),i===a||(s=Math.min(i.t,l.t),c=Math.max(a.t,d.t),s>c))return!1;if(aA.vertLeq(i,a)){if(aA.edgeSign(d,i,a)>0)return!1}else if(aA.edgeSign(l,a,i)<0)return!1;return o.debugEvent(t),aA.intersect(l,i,d,a,u),uA(Math.min(i.t,l.t)<=u.t),uA(u.t<=Math.max(a.t,d.t)),uA(Math.min(d.s,l.s)<=u.s),uA(u.s<=Math.max(a.s,i.s)),aA.vertLeq(u,t.event)&&(u.s=t.event.s,u.t=t.event.t),p=aA.vertLeq(i,a)?i:a,aA.vertLeq(p,u)&&(u.s=p.s,u.t=p.t),aA.vertEq(u,i)||aA.vertEq(u,a)?(o.checkForRightSplice(t,A),!1):!aA.vertEq(l,t.event)&&aA.edgeSign(l,t.event,u)>=0||!aA.vertEq(d,t.event)&&aA.edgeSign(d,t.event,u)<=0?d===t.event?(t.mesh.splitEdge(r.Sym),t.mesh.splice(n.Sym,r),A=o.topLeftRegion(t,A),r=o.regionBelow(A).eUp,o.finishLeftRegions(t,o.regionBelow(A),e),o.addRightEdges(t,A,r.Oprev,r,r,!0),!0):l===t.event?(t.mesh.splitEdge(n.Sym),t.mesh.splice(r.Lnext,n.Oprev),e=A,A=o.topRightRegion(A),f=o.regionBelow(A).eUp.Rprev,e.eUp=n.Oprev,n=o.finishLeftRegions(t,e,null),o.addRightEdges(t,A,n.Onext,r.Rprev,f,!0),!0):(aA.edgeSign(l,t.event,u)>=0&&(o.regionAbove(A).dirty=A.dirty=!0,t.mesh.splitEdge(r.Sym),r.Org.s=t.event.s,r.Org.t=t.event.t),aA.edgeSign(d,t.event,u)<=0&&(A.dirty=e.dirty=!0,t.mesh.splitEdge(n.Sym),n.Org.s=t.event.s,n.Org.t=t.event.t),!1):(t.mesh.splitEdge(r.Sym),t.mesh.splitEdge(n.Sym),t.mesh.splice(n.Oprev,r),r.Org.s=u.s,r.Org.t=u.t,r.Org.pqHandle=t.pq.insert(r.Org),o.getIntersectData(t,r.Org,i,l,a,d),o.regionAbove(A).dirty=A.dirty=e.dirty=!0,!1)},o.walkDirtyRegions=function(t,A){for(var e=o.regionBelow(A),r,n;;){for(;e.dirty;)A=e,e=o.regionBelow(e);if(!A.dirty&&(e=A,A=o.regionAbove(A),A===null||!A.dirty))return;if(A.dirty=!1,r=A.eUp,n=e.eUp,r.Dst!==n.Dst&&o.checkForLeftSplice(t,A)&&(e.fixUpperEdge?(o.deleteRegion(t,e),t.mesh.delete(n),e=o.regionBelow(A),n=e.eUp):A.fixUpperEdge&&(o.deleteRegion(t,A),t.mesh.delete(r),A=o.regionAbove(e),r=A.eUp)),r.Org!==n.Org)if(r.Dst!==n.Dst&&!A.fixUpperEdge&&!e.fixUpperEdge&&(r.Dst===t.event||n.Dst===t.event)){if(o.checkForIntersect(t,A))return}else o.checkForRightSplice(t,A);r.Org===n.Org&&r.Dst===n.Dst&&(o.addWinding(n,r),o.deleteRegion(t,A),t.mesh.delete(r),A=o.regionAbove(e))}},o.connectRightVertex=function(t,A,e){var r,n=e.Onext,i=o.regionBelow(A),a=A.eUp,l=i.eUp,d=!1;if(a.Dst!==l.Dst&&o.checkForIntersect(t,A),aA.vertEq(a.Org,t.event)&&(t.mesh.splice(n.Oprev,a),A=o.topLeftRegion(t,A),n=o.regionBelow(A).eUp,o.finishLeftRegions(t,o.regionBelow(A),i),d=!0),aA.vertEq(l.Org,t.event)&&(t.mesh.splice(e,l.Oprev),e=o.finishLeftRegions(t,i,null),d=!0),d){o.addRightEdges(t,A,e.Onext,n,n,!0);return}aA.vertLeq(l.Org,a.Org)?r=l.Oprev:r=a,r=t.mesh.connect(e.Lprev,r),o.addRightEdges(t,A,r,r.Onext,r.Onext,!1),r.Sym.activeRegion.fixUpperEdge=!0,o.walkDirtyRegions(t,A)},o.connectLeftDegenerate=function(t,A,e){var r,n,i,a,l;if(r=A.eUp,aA.vertEq(r.Org,e)){uA(!1),o.spliceMergeVertices(t,r,e.anEdge);return}if(!aA.vertEq(r.Dst,e)){t.mesh.splitEdge(r.Sym),A.fixUpperEdge&&(t.mesh.delete(r.Onext),A.fixUpperEdge=!1),t.mesh.splice(e.anEdge,r),o.sweepEvent(t,e);return}uA(!1),A=o.topRightRegion(A),l=o.regionBelow(A),i=l.eUp.Sym,n=a=i.Onext,l.fixUpperEdge&&(uA(n!==i),o.deleteRegion(t,l),t.mesh.delete(i),i=n.Oprev),t.mesh.splice(e.anEdge,i),aA.edgeGoesLeft(n)||(n=null),o.addRightEdges(t,A,i.Onext,a,n,!0)},o.connectLeftVertex=function(t,A){var e,r,n,i,a,l,d=new Ml;if(d.eUp=A.anEdge.Sym,e=t.dict.search(d).key,r=o.regionBelow(e),!!r){if(i=e.eUp,a=r.eUp,aA.edgeSign(i.Dst,A,i.Org)===0){o.connectLeftDegenerate(t,e,A);return}if(n=aA.vertLeq(a.Dst,i.Dst)?e:r,e.inside||n.fixUpperEdge){if(n===e)l=t.mesh.connect(A.anEdge.Sym,i.Lnext);else{var s=t.mesh.connect(a.Dnext,A.anEdge);l=s.Sym}n.fixUpperEdge?o.fixUpperEdge(t,n,l):o.computeWinding(t,o.addRegionBelow(t,e,l)),o.sweepEvent(t,A)}else o.addRightEdges(t,e,A.anEdge,A.anEdge,null,!0)}},o.sweepEvent=function(t,A){t.event=A,o.debugEvent(t);for(var e=A.anEdge;e.activeRegion===null;)if(e=e.Onext,e===A.anEdge){o.connectLeftVertex(t,A);return}var r=o.topLeftRegion(t,e.activeRegion);uA(r!==null);var n=o.regionBelow(r),i=n.eUp,a=o.finishLeftRegions(t,n,null);a.Onext===i?o.connectRightVertex(t,r,a):o.addRightEdges(t,r,a.Onext,i,i,!0)},o.addSentinel=function(t,A,e,r){var n=new Ml,i=t.mesh.makeEdge();i.Org.s=e,i.Org.t=r,i.Dst.s=A,i.Dst.t=r,t.event=i.Dst,n.eUp=i,n.windingNumber=0,n.inside=!1,n.fixUpperEdge=!1,n.sentinel=!0,n.dirty=!1,n.nodeUp=t.dict.insert(n)},o.initEdgeDict=function(t){t.dict=new Sw(t,o.edgeLeq);var A=t.bmax[0]-t.bmin[0],e=t.bmax[1]-t.bmin[1],r=t.bmin[0]-A,n=t.bmax[0]+A,i=t.bmin[1]-e,a=t.bmax[1]+e;o.addSentinel(t,r,n,i),o.addSentinel(t,r,n,a)},o.doneEdgeDict=function(t){for(var A,e=0;(A=t.dict.min().key)!==null;)A.sentinel||(uA(A.fixUpperEdge),uA(++e===1)),uA(A.windingNumber===0),o.deleteRegion(t,A)},o.removeDegenerateEdges=function(t){var A,e,r,n=t.mesh.eHead;for(A=n.next;A!==n;A=e)e=A.next,r=A.Lnext,aA.vertEq(A.Org,A.Dst)&&A.Lnext.Lnext!==A&&(o.spliceMergeVertices(t,r,A),t.mesh.delete(A),A=r,r=A.Lnext),r.Lnext===A&&(r!==A&&((r===e||r===e.Sym)&&(e=e.next),t.mesh.delete(r)),(A===e||A===e.Sym)&&(e=e.next),t.mesh.delete(A))},o.initPriorityQ=function(t){var A,e,r,n=0;for(r=t.mesh.vHead,e=r.next;e!==r;e=e.next)n++;for(n+=8,A=t.pq=new bw(n,aA.vertLeq),r=t.mesh.vHead,e=r.next;e!==r;e=e.next)e.pqHandle=A.insert(e);return e!==r?!1:(A.init(),!0)},o.donePriorityQ=function(t){t.pq=null},o.removeDegenerateFaces=function(t,A){var e,r,n;for(e=A.fHead.next;e!==A.fHead;e=r)r=e.next,n=e.anEdge,uA(n.Lnext!==n),n.Lnext.Lnext===n&&(o.addWinding(n.Onext,n),t.mesh.delete(n));return!0},o.computeInterior=function(t,A){A===void 0&&(A=!0);var e,r;if(o.removeDegenerateEdges(t),!o.initPriorityQ(t))return!1;for(o.initEdgeDict(t);(e=t.pq.extractMin())!==null;){for(;r=t.pq.min(),!(r===null||!aA.vertEq(r,e));)r=t.pq.extractMin(),o.spliceMergeVertices(t,e.anEdge,r.anEdge);o.sweepEvent(t,e)}return t.event=t.dict.min().key.eUp.Org,o.debugEvent(t),o.doneEdgeDict(t),o.donePriorityQ(t),o.removeDegenerateFaces(t,t.mesh)?(A&&t.mesh.check(),!0):!1},o}(),Tw=function(){function o(){this.mesh=new Bf,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=DA.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 o.prototype.dot_=function(t,A){return t[0]*A[0]+t[1]*A[1]+t[2]*A[2]},o.prototype.normalize_=function(t){var A=t[0]*t[0]+t[1]*t[1]+t[2]*t[2];if(!A)throw"Zero-size vector!";A=Math.sqrt(A),t[0]/=A,t[1]/=A,t[2]/=A},o.prototype.longAxis_=function(t){var A=0;return Math.abs(t[1])>Math.abs(t[0])&&(A=1),Math.abs(t[2])>Math.abs(t[A])&&(A=2),A},o.prototype.computeNormal_=function(t){var A,e,r,n,i,a,l=[0,0,0],d=[0,0,0],s=[0,0,0],c=[0,0,0],u=[0,0,0],p=[null,null,null],f=[null,null,null],m=this.mesh.vHead;A=m.next;for(var h=0;h<3;++h)n=A.coords[h],d[h]=n,f[h]=A,l[h]=n,p[h]=A;for(A=m.next;A!==m;A=A.next)for(var y=0;y<3;++y)n=A.coords[y],n<d[y]&&(d[y]=n,f[y]=A),n>l[y]&&(l[y]=n,p[y]=A);var x=0;if(l[1]-d[1]>l[0]-d[0]&&(x=1),l[2]-d[2]>l[x]-d[x]&&(x=2),d[x]>=l[x]){t[0]=0,t[1]=0,t[2]=1;return}for(a=0,e=f[x],r=p[x],s[0]=e.coords[0]-r.coords[0],s[1]=e.coords[1]-r.coords[1],s[2]=e.coords[2]-r.coords[2],A=m.next;A!==m;A=A.next)c[0]=A.coords[0]-r.coords[0],c[1]=A.coords[1]-r.coords[1],c[2]=A.coords[2]-r.coords[2],u[0]=s[1]*c[2]-s[2]*c[1],u[1]=s[2]*c[0]-s[0]*c[2],u[2]=s[0]*c[1]-s[1]*c[0],i=u[0]*u[0]+u[1]*u[1]+u[2]*u[2],i>a&&(a=i,t[0]=u[0],t[1]=u[1],t[2]=u[2]);a<=0&&(t[0]=t[1]=t[2]=0,t[this.longAxis_(s)]=1)},o.prototype.checkOrientation_=function(){for(var t=this.mesh.fHead,A,e=this.mesh.vHead,r,n=0,i=t.next;i!==t;i=i.next)if(r=i.anEdge,!(r.winding<=0))do n+=(r.Org.s-r.Dst.s)*(r.Org.t+r.Dst.t),r=r.Lnext;while(r!==i.anEdge);if(n<0){for(A=e.next;A!==e;A=A.next)A.t=-A.t;this.tUnit[0]=-this.tUnit[0],this.tUnit[1]=-this.tUnit[1],this.tUnit[2]=-this.tUnit[2]}},o.prototype.projectPolygon_=function(){var t=this.mesh.vHead,A=[0,0,0],e,r,n=!1;A[0]=this.normal[0],A[1]=this.normal[1],A[2]=this.normal[2],!A[0]&&!A[1]&&!A[2]&&(this.computeNormal_(A),n=!0),e=this.sUnit,r=this.tUnit;var i=this.longAxis_(A);e[i]=0,e[(i+1)%3]=1,e[(i+2)%3]=0,r[i]=0,r[(i+1)%3]=0,r[(i+2)%3]=A[i]>0?1:-1;for(var a=t.next;a!==t;a=a.next)a.s=this.dot_(a.coords,e),a.t=this.dot_(a.coords,r);n&&this.checkOrientation_();for(var l=!0,d=t.next;d!==t;d=d.next)l?(this.bmin[0]=this.bmax[0]=d.s,this.bmin[1]=this.bmax[1]=d.t,l=!1):(d.s<this.bmin[0]&&(this.bmin[0]=d.s),d.s>this.bmax[0]&&(this.bmax[0]=d.s),d.t<this.bmin[1]&&(this.bmin[1]=d.t),d.t>this.bmax[1]&&(this.bmax[1]=d.t))},o.prototype.addWinding_=function(t,A){t.winding+=A.winding,t.Sym.winding+=A.Sym.winding},o.prototype.tessellateMonoRegion_=function(t,A){var e,r;if(e=A.anEdge,!(e.Lnext!==e&&e.Lnext.Lnext!==e))throw"Mono region invalid";for(;aA.vertLeq(e.Dst,e.Org);e=e.Lprev);for(;aA.vertLeq(e.Org,e.Dst);e=e.Lnext);r=e.Lprev;for(var n=void 0;e.Lnext!==r;)if(aA.vertLeq(e.Dst,r.Org)){for(;r.Lnext!==e&&(aA.edgeGoesLeft(r.Lnext)||aA.edgeSign(r.Org,r.Dst,r.Lnext.Dst)<=0);)n=t.connect(r.Lnext,r),r=n.Sym;r=r.Lprev}else{for(;r.Lnext!==e&&(aA.edgeGoesRight(e.Lprev)||aA.edgeSign(e.Dst,e.Org,e.Lprev.Org)>=0);)n=t.connect(e,e.Lprev),e=n.Sym;e=e.Lnext}if(r.Lnext===e)throw"Mono region invalid";for(;r.Lnext.Lnext!==e;)n=t.connect(r.Lnext,r),r=n.Sym;return!0},o.prototype.tessellateInterior_=function(t){for(var A,e=t.fHead.next;e!==t.fHead;e=A)if(A=e.next,e.inside&&!this.tessellateMonoRegion_(t,e))return!1;return!0},o.prototype.discardExterior_=function(t){for(var A,e=t.fHead.next;e!==t.fHead;e=A)A=e.next,e.inside||t.zapFace(e)},o.prototype.setWindingNumber_=function(t,A,e){for(var r,n=t.eHead.next;n!==t.eHead;n=r)r=n.next,n.Rface.inside!==n.Lface.inside?n.winding=n.Lface.inside?A:-A:e?t.delete(n):n.winding=0},o.prototype.getNeighbourFace_=function(t){return!t.Rface||!t.Rface.inside?-1:t.Rface.n},o.prototype.outputPolymesh_=function(t,A,e,r){var n,i=0,a=0,l;e>3&&t.mergeConvexFaces(e);for(var d=t.vHead.next;d!==t.vHead;d=d.next)d.n=-1;for(var s=t.fHead.next;s!==t.fHead;s=s.next)if(s.n=-1,!!s.inside){n=s.anEdge,l=0;do{var d=n.Org;d.n===-1&&(d.n=a,a++),l++,n=n.Lnext}while(n!==s.anEdge);if(l>e)throw"Face vertex greater that support polygon";s.n=i,++i}this.elementCount=i,A===te.CONNECTED_POLYGONS&&(i*=2),this.elements=[],this.elements.length=i*e,this.vertexCount=a,this.vertices=[],this.vertices.length=a*r,this.vertexIndices=[],this.vertexIndices.length=a;for(var d=t.vHead.next;d!==t.vHead;d=d.next)if(d.n!==-1){var c=d.n*r;this.vertices[c+0]=d.coords[0],this.vertices[c+1]=d.coords[1],r>2&&(this.vertices[c+2]=d.coords[2]),this.vertexIndices[d.n]=d.idx}for(var u=0,s=t.fHead.next;s!==t.fHead;s=s.next)if(!!s.inside){n=s.anEdge,l=0;do{var d=n.Org;this.elements[u++]=d.n,l++,n=n.Lnext}while(n!==s.anEdge);for(var p=l;p<e;++p)this.elements[u++]=-1;if(A===te.CONNECTED_POLYGONS){n=s.anEdge;do this.elements[u++]=this.getNeighbourFace_(n),n=n.Lnext;while(n!==s.anEdge);for(var f=l;f<e;++f)this.elements[u++]=-1}}},o.prototype.outputContours_=function(t,A){var e,r,n=0,i=0;this.vertexCount=0,this.elementCount=0;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){r=e=a.anEdge;do this.vertexCount++,e=e.Lnext;while(e!==r);this.elementCount++}this.elements=[],this.elements.length=this.elementCount*2,this.vertices=[],this.vertices.length=this.vertexCount*A,this.vertexIndices=[],this.vertexIndices.length=this.vertexCount;var l=0,d=0,s=0;n=0;for(var a=t.fHead.next;a!==t.fHead;a=a.next)if(!!a.inside){i=0,r=e=a.anEdge;do this.vertices[l++]=e.Org.coords[0],this.vertices[l++]=e.Org.coords[1],A>2&&(this.vertices[l++]=e.Org.coords[2]),this.vertexIndices[d++]=this.vertexIdCallback?this.vertexIdCallback(e):e.Org.idx,i++,e=e.Lnext;while(e!==r);this.elements[s++]=n,this.elements[s++]=i,n+=i}},o.prototype.addContour=function(t,A){this.mesh===null&&(this.mesh=new Bf),t<2&&(t=2),t>3&&(t=3);for(var e=null,r=0;r<A.length;r+=t)e===null?(e=this.mesh.makeEdge(),this.mesh.splice(e,e.Sym)):(this.mesh.splitEdge(e),e=e.Lnext),e.Org.coords[0]=A[r+0],e.Org.coords[1]=A[r+1],t>2?e.Org.coords[2]=A[r+2]:e.Org.coords[2]=0,e.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(e),e.winding=1,e.Sym.winding=-1},o.prototype.tesselate=function(t,A,e,r,n,i){if(t===void 0&&(t=DA.ODD),A===void 0&&(A=te.POLYGONS),i===void 0&&(i=!0),this.vertices=[],this.elements=[],this.vertexIndices=[],this.vertexIndexCounter=0,n&&(this.normal[0]=n[0],this.normal[1]=n[1],this.normal[2]=n[2]),this.windingRule=t,r<2&&(r=2),r>3&&(r=3),!this.mesh)return!1;this.projectPolygon_(),ww.computeInterior(this,i);var a=this.mesh;return A===te.BOUNDARY_CONTOURS?this.setWindingNumber_(a,1,!0):this.tessellateInterior_(a),i&&a.check(),A===te.BOUNDARY_CONTOURS?this.outputContours_(a,r):this.outputPolymesh_(a,A,e,r),!0},o}();function zr(o){var t=o.windingRule,A=t===void 0?DA.ODD:t,e=o.elementType,r=e===void 0?te.POLYGONS:e,n=o.polySize,i=n===void 0?3:n,a=o.vertexSize,l=a===void 0?2:a,d=o.normal,s=d===void 0?[0,0,1]:d,c=o.contours,u=c===void 0?[]:c,p=o.strict,f=p===void 0?!0:p,m=o.debug,h=m===void 0?!1:m;if(!u&&f)throw new Error("Contours can't be empty");if(!!u){var y=new Tw;o.edgeCreateCallback&&(y.edgeCreateCallback=o.edgeCreateCallback),o.vertexIdCallback&&(y.vertexIdCallback=o.vertexIdCallback);for(var x=0;x<u.length;x++)y.addContour(l||2,u[x]);return y.tesselate(A,r,i,l,s,f),{vertices:y.vertices,vertexIndices:y.vertexIndices,vertexCount:y.vertexCount,elements:y.elements,elementCount:y.elementCount,mesh:h?y.mesh:void 0}}}var TD=DA.ODD,OD=DA.NONZERO,PD=DA.POSITIVE,ND=DA.NEGATIVE,CD=DA.ABS_GEQ_TWO,ID=te.POLYGONS,LD=te.CONNECTED_POLYGONS,ED=te.BOUNDARY_CONTOURS;var Xo=class extends Ur.BufferGeometry{constructor(A,e=12,r={}){super();this.type="ShapeGeometry";this.windingRule=DA.ODD;this.elementType=te.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=A,this._curveSegments=e,this._triangulationOptions=Object.assign({windingRule:DA.ODD,elementType:te.POLYGONS,polySize:3,vertexSize:2,strict:!0},r);let n=this._shape.extractShapePointsToFlatArray([],this._curveSegments),i=this._shape.shapeHoles.map(f=>f.extractShapePointsToFlatArray([],this._curveSegments)),a,l=!0,d=!0,s,c;for(let f=0,m=n.length/2;f<m;f++){let h=f*2,y=n[h+0],x=n[h+1];if(s!==void 0&&y!==s&&(l=!1),c!==void 0&&x!==c&&(d=!1),s=y,c=x,!l&&!d)break}!l&&!d&&(a=zr({contours:[n,...i],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let u=a?.vertexCount??1,p=a?.elementCount??1;if(this._positionAttribute=new Ur.BufferAttribute(new Float32Array(u*3),3),this._normalAttribute=new Ur.BufferAttribute(new Float32Array(u*3),3),this._uvAttribute=new Ur.BufferAttribute(new Float32Array(u*2),2),this._indexAttribute=new Ur.BufferAttribute(new Uint32Array(p*3),1),a){let f=1/0,m=-1/0,h=1/0,y=-1/0;for(let v=0,b=u;v<b;v++){let P=v*2,w=a.vertices[P+0],g=a.vertices[P+1];w<f&&(f=w),w>m&&(m=w),g<h&&(h=g),g>y&&(y=g)}let x=m-f,S=y-h;for(let v=0,b=u;v<b;v++){let P=v*2,w=a.vertices[P+0],g=a.vertices[P+1],N=(w-f)/x,O=(g-h)/S;this._positionAttribute.setXYZ(v,w,g,0),this._normalAttribute.setXYZ(v,0,0,1),this._uvAttribute.setXY(v,N,O)}for(let v=0,b=p;v<b;v++){let P=v*3,w=a.elements[P+0],g=a.elements[P+1],N=a.elements[P+2];this._indexAttribute.setX(P+0,w),this._indexAttribute.setX(P+1,g),this._indexAttribute.setX(P+2,N)}}this.setAttribute("position",this._positionAttribute),this.setAttribute("normal",this._normalAttribute),this.setAttribute("uv",this._uvAttribute),this.setIndex(this._indexAttribute),this.setDrawRange(0,(a?.elementCount??1)*3)}clone(){let A=new Xo(this._shape,this._curveSegments);return A.userData=Vr(this.userData),A}};var kr=require("three");var _s=class{constructor(t=256,A=!1){this.capacity=t,this.size=0,this.debug=A,this.debug&&console.log(`allocating with cap ${t}`);let e=t*_s.eSize;this.buffer=new ArrayBuffer(e);let r=Float32Array.BYTES_PER_ELEMENT,n=0;this.positions=new Float32Array(this.buffer,n*r,3*t),n+=3*t,this.normals=new Float32Array(this.buffer,n*r,3*t),n+=3*t,this.uvs=new Float32Array(this.buffer,n*r,2*t)}realloc(t,A=!1){if(t<this.size)throw Error("cannot shrink buffer");if(t<=this.capacity&&!A)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${t}`);let e=t*_s.eSize,r=new ArrayBuffer(e),n=Float32Array.BYTES_PER_ELEMENT,i=0,a=new Float32Array(r,i*n,3*t);i+=3*t;let l=new Float32Array(r,i*n,3*t);i+=3*t;let d=new Float32Array(r,i*n,2*t);a.set(this.positions.slice(0,this.size*3)),l.set(this.normals.slice(0,this.size*3)),d.set(this.uvs.slice(0,this.size*2)),this.buffer=r,this.positions=a,this.normals=l,this.uvs=d,this.capacity=t}get(t=1){let A=this.size+t;if(A>this.capacity){let r=this.capacity;for(;A>r;)r*=2;this.realloc(r)}let e=this.size;return this.size=A,e}reserve(t){let A=this.size+t;A>this.capacity&&this.realloc(A)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},Ai=_s;Ai.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Bl=(o,t)=>([A,e])=>(e<A&&(e+=t),(o>=A?o:o+t)<=e),Ko=class extends kr.BufferGeometry{constructor(A,e,r=0,n=12,i=3,a=DA.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=A,this._depth=e,this._bevel=r,this._curveSegments=n,this._bevelSegmentsInput=i,r<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(r,e/2-1e-12),this._bevelSegments=Math.floor(i));let l=this._shape.extractShapePointsToFlatArray([],n),d=this._shape.shapeHoles.map(g=>{let N=g.extractShapePointsToFlatArray([],n),O=[];for(let C=N.length-1;C>=1;C-=2){let T=N[C-1],L=N[C-0];O.push(T,L)}return O}),s=zr({windingRule:a,elementType:te.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[l]}),c=zr({windingRule:DA.ODD,elementType:te.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...d]});if(!s)throw new Error("error generating geometry");let u=s.elementCount;if(c){s.elementCount+=c.elementCount;for(let g=0;g<c.elements.length;g++){let N=c.elements[g],O=g%2===0?s.vertexCount:0;s.elements.push(N+O)}for(let g=0;g<c.vertexIndices.length;g++){let N=c.vertexIndices[g],O=s.vertexCount;s.vertexIndices.push(N+O)}for(let g=0;g<c.vertices.length;g++){let N=c.vertices[g];s.vertices.push(N)}}let p=1/0,f=-1/0,m=1/0,h=-1/0;for(let g=0,N=s.vertexCount;g<N;g++){let O=g*2,C=s.vertices[O+0],T=s.vertices[O+1];C<p&&(p=C),C>f&&(f=C),T<m&&(m=T),T>h&&(h=T)}this._minX=p,this._minY=m,this._width=f-p,this._height=h-m;let y=s.vertexCount*2*(2+this._bevelSegments);this._buffer=new Ai(y);let x=[],S=[];for(let g=s.elementCount-1;g>=0;g--){let N=g>=u,O=g*2,C=s.elements[O+0],T=s.elements[O+1],L=C+T,M={start:C,count:T,normals:[],continuous:[],concave:[]},U=C,Z=L-1,$=C+1,iA=this._shape.roundedCurves.length;do{let F=U-C,B=s.vertices[Z*2+0],D=s.vertices[Z*2+1],G=s.vertices[U*2+0],z=s.vertices[U*2+1],X=s.vertices[$*2+0],H=s.vertices[$*2+1],j=G-B,R=z-D,W=Math.sqrt(j*j+R*R);j/=W,R/=W;let Y=G-X,AA=z-H,sA=Math.sqrt(Y*Y+AA*AA);Y/=sA,AA/=sA,M.normals[F*2+0]=-AA,M.normals[F*2+1]=Y,M.concave[F]=j*AA-R*Y>0;let eA=s.vertexIndices[U];if(Array.isArray(eA))M.continuous[F]=!1;else{let[tA,rA]=this._shape.getCurveIndexFromVertexId(eA-1,!0);if(rA>0&&rA<1)M.continuous[F]=!0;else{let J=rA===1?tA+1:tA-1;J=(J+iA)%iA;let mA=rA===1?0:1,dA=this._shape.roundedCurves[tA].getTangent(rA),yA=this._shape.roundedCurves[J].getTangent(mA);M.continuous[F]=dA.dot(yA)>.95}}N&&(M.normals[F*2+0]*=-1,M.normals[F*2+1]*=-1),[Z,U,$]=[U,$,$+1],$>=L&&($-=T)}while($!==C+1);let k=[];k.push({bevelI:0,angle:0,size:0,boundary:{vertices:s.vertices.slice(C*2,L*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((F,B)=>[B,B]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:s.vertices.slice(C*2,L*2)});for(let F=1;F<=this._bevelSegments;F++){let B=F/this._bevelSegments*Math.PI/2,D=(1-Math.cos(B))*this._bevelSize,G=[],z=[],X=[],H=[],j=0;for(let W=0;W<T;W++){let Y=W*2,AA=(W-1+T)%T*2,sA=s.vertices[M.start*2+Y+0],eA=s.vertices[M.start*2+Y+1],tA=-M.normals[AA+0]*D,rA=-M.normals[AA+1]*D,J=-M.normals[Y+0]*D,mA=-M.normals[Y+1]*D;if(M.concave[W]||!M.concave[W]&&N){let dA=Math.atan2(rA,tA),yA=Math.atan2(mA,J);yA>dA&&(yA-=Math.PI*2);let xe=yA-dA;if(M.continuous[W]||N){let wA=dA+xe/2,MA=Math.cos(wA)*D,BA=Math.sin(wA)*D;G[2*j+0]=sA+MA*(N?-1:1),G[2*j+1]=eA+BA*(N?-1:1),H[j]=W,j++}else{let wA=Math.max(1,Math.floor(n/4*Math.abs(xe)/Math.PI));for(let MA=0;MA<=wA;MA++){let BA=dA+xe*(MA/wA),Ie=Math.cos(BA)*D,er=Math.sin(BA)*D;G[2*j+0]=sA+Ie,G[2*j+1]=eA+er,H[j]=W,j++}}}else G[2*j+0]=sA+tA,G[2*j+1]=eA+rA,H[j]=W,z[W]=j,j++,G[2*j+0]=sA,G[2*j+1]=eA,H[j]=W,j++,G[2*j+0]=sA+J,G[2*j+1]=eA+mA,H[j]=W,X[W]=j,j++}let R=zr({windingRule:DA.POSITIVE,elementType:te.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[G],edgeCreateCallback:W=>{let AA=W.Org.idx,sA=H[AA],eA=H[(AA+1)%H.length];W.idx=[sA,eA],W.Sym.idx=[eA,sA]},vertexIdCallback:W=>{let Y=W.Lprev.idx;return[Y?Y[1]:0,W.idx[0]]}});if(!R)throw console.log("Error"),new Error(`error generating bevel geometry for ${F}'th loop`);if(!R.vertexCount)break;for(let W=0;W<R.vertexIndices.length;W++){let[Y,AA]=R.vertexIndices[W];if(Y===AA)continue;let sA=AA;AA<Y&&(sA+=T);for(let eA=Y;eA<sA;eA++){let tA=eA%T,rA=(eA+1)%T;if(!M.continuous[tA]||!M.continuous[rA]){R.vertexIndices[W]=[Y,tA],R.vertexIndices.splice(W+1,0,[rA,AA]),R.vertices.splice((W+1)*2,0,R.vertices[W*2],R.vertices[W*2+1]);break}}}k.push({bevelI:F,angle:B,size:D,boundary:R,reverseMap:H,insetPoints:G})}let q=(F,B,D)=>{let G=0,z=F.boundary.vertexIndices.length;for(;G<z&&D(F.boundary.vertexIndices[B]);)B=(B+1)%z,G++;return G},Q=x.length;for(let F=1;F<k.length;F++){let B=k[F-1],D=k[F],G=B.boundary.vertexIndices.length,z=D.boundary.vertexIndices.length;if(!G||!z)break;let X=M.concave.length,H=0,j=Bl(H,T);for(;!B.boundary.vertexIndices.filter(j).length||!D.boundary.vertexIndices.filter(j).length;)H++,j=Bl(H,T);let R=B.boundary.vertexIndices.findIndex(j),W=D.boundary.vertexIndices.findIndex(j);do R=(R+1)%G;while(j(B.boundary.vertexIndices[R]));do W=(W+1)%z;while(j(D.boundary.vertexIndices[W]));H=(H+1)%T;let Y=H,AA=this.buildBevelVert(M,B,(R-1+G)%G),sA=this.buildBevelVert(M,D,(W-1+z)%z),eA=AA,tA=sA,rA,J,mA=!1;do{j=Bl(H,T);let dA=q(B,R,j),yA=q(D,W,j),xe=mA;if(mA=!1,dA&&!yA){for(let wA=0;wA<dA;wA++)rA=this.buildBevelVert(M,B,(R+wA)%G,wA/(dA-1)),x.push(eA.topN,rA.topP,tA.topN),x.push(rA.bottomP,eA.bottomN,tA.bottomN),eA=rA;mA=!0}else if(!dA&&yA)for(let wA=0;wA<yA;wA++)J=this.buildBevelVert(M,D,(W+wA)%z,wA/(yA-1)),x.push(tA.topN,eA.topP,J.topP),x.push(eA.bottomP,tA.bottomN,J.bottomP),tA=J;else if(dA&&yA)if(rA=this.buildBevelVert(M,B,R,0),J=this.buildBevelVert(M,D,W,0),xe?(x.push(eA.topN,J.topP,tA.topN),x.push(eA.topN,rA.topP,J.topP),x.push(J.bottomP,eA.bottomN,tA.bottomN),x.push(J.bottomP,rA.bottomP,eA.bottomN)):(x.push(tA.topN,eA.topN,rA.topP),x.push(tA.topN,rA.topP,J.topP),x.push(rA.bottomP,eA.bottomN,tA.bottomN),x.push(rA.bottomP,tA.bottomN,J.bottomP)),eA=rA,tA=J,dA===yA)for(let wA=1;wA<dA;wA++)rA=this.buildBevelVert(M,B,(R+wA)%G,wA/(dA-1)),J=this.buildBevelVert(M,D,(W+wA)%z,wA/(yA-1)),x.push(eA.topN,rA.topP,tA.topN),x.push(tA.topN,rA.topP,J.topP),x.push(rA.bottomP,eA.bottomN,tA.bottomN),x.push(rA.bottomP,tA.bottomN,J.bottomP),eA=rA,tA=J;else if(dA>yA){let wA=dA/yA,MA=0;for(let BA=1;BA<dA;BA++)rA=this.buildBevelVert(M,B,(R+BA)%G,BA/(dA-1)),x.push(eA.topN,rA.topP,tA.topN),x.push(rA.bottomP,eA.bottomN,tA.bottomN),eA=rA,BA>(MA+1)*wA&&(MA++,J=this.buildBevelVert(M,D,(W+MA)%z,MA/(yA-1)),x.push(tA.topN,rA.topP,J.topP),x.push(rA.bottomP,tA.bottomN,J.bottomP),tA=J)}else{let wA=yA/dA,MA=0;for(let BA=1;BA<yA;BA++)J=this.buildBevelVert(M,D,(W+BA)%z,BA/(yA-1)),x.push(tA.topN,rA.topP,J.topP),x.push(rA.bottomP,tA.bottomN,J.bottomP),tA=J,BA>(MA+1)*wA&&(MA++,rA=this.buildBevelVert(M,B,(R+MA)%G,MA/(dA-1)),x.push(eA.topN,rA.topP,tA.topN),x.push(rA.bottomP,eA.bottomN,tA.bottomN),eA=rA)}R=(R+dA)%G,W=(W+yA)%z,H=(H+1)%X}while(H!==Y)}{let F=k[0];for(let B=0,D=F.boundary.vertexCount;B<D;B++){let G=this.buildBevelVert(M,F,B),z=this.buildBevelVert(M,F,(B+1)%D);x.push(z.topP,G.topN,G.bottomN),x.push(z.topP,G.bottomN,z.bottomP)}}if(N){let F=[];for(let B=x.length-1;B>=Q+2;B-=3){let D=x[B-2],G=x[B-1],z=x[B-0];F.push(z,G,D)}x.splice(Q,x.length-Q,...F)}if(N){let F=[];for(let B=k[k.length-1].boundary.vertices.length-1;B>=1;B-=2){let D=k[k.length-1].boundary.vertices[B-1],G=k[k.length-1].boundary.vertices[B-0];F.push(D,G)}S.push(F)}if(!N){let F=k[k.length-1],B=zr({windingRule:k.length>1?DA.POSITIVE:DA.ODD,elementType:te.POLYGONS,vertexSize:2,strict:!0,contours:[F.insetPoints,...S]});if(!B)throw new Error("Error generating geometry for surface");d.length===0&&Object.assign(this,{capStartIndex:x.length});for(let D=0;D<B.elementCount*3;D+=3){let G=this.buildSurfaceVert(B,B.elements[D+0]),z=this.buildSurfaceVert(B,B.elements[D+1]),X=this.buildSurfaceVert(B,B.elements[D+2]);x.push(G.top,z.top,X.top),x.push(X.bottom,z.bottom,G.bottom)}}this.vertexCache={}}this._buffer.shrink();let v=new kr.BufferAttribute(Uint32Array.from(x),1),b=new kr.BufferAttribute(this._buffer.positions,3),P=new kr.BufferAttribute(this._buffer.normals,3),w=new kr.BufferAttribute(this._buffer.uvs,2);b.needsUpdate=!0,P.needsUpdate=!0,w.needsUpdate=!0,v.needsUpdate=!0,this.setAttribute("position",b),this.setAttribute("normal",P),this.setAttribute("uv",w),this.setIndex(v)}buildSurfaceVert(A,e){let r=e.toString();if(r in this.vertexCache)return this.vertexCache[r];let n=A.vertices[e*2+0],i=A.vertices[e*2+1],a=(n-this._minX)/this._width,l=(i-this._minY)/this._height,d=this._buffer.get(2),s=d*3,c=d*2,u={top:d+0,bottom:d+1};return this._buffer.positions[s+0]=n,this._buffer.positions[s+1]=i,this._buffer.positions[s+2]=this._depth,this._buffer.normals[s+0]=0,this._buffer.normals[s+1]=0,this._buffer.normals[s+2]=1,this._buffer.uvs[c+0]=a,this._buffer.uvs[c+1]=l,this._buffer.positions[s+3]=n,this._buffer.positions[s+4]=i,this._buffer.positions[s+5]=0,this._buffer.normals[s+3]=0,this._buffer.normals[s+4]=0,this._buffer.normals[s+5]=-1,this._buffer.uvs[c+2]=a,this._buffer.uvs[c+3]=l,this.vertexCache[r]=u,u}buildBevelVert(A,e,r,n=1){let i=`${e.bevelI}:${r}`;if(i in this.vertexCache)return this.vertexCache[i];let[a,l]=e.boundary.vertexIndices[r],d,s,c,u;a!==l?(s=a,d=l,u=!1,c=A.continuous[s]&&A.continuous[d]):(d=a,s=(d-1+A.count)%A.count,u=A.concave[d]&&e.bevelI>0,c=A.continuous[d]||u);let p=Math.cos(e.angle),f=Math.sin(e.angle),m=r*2,h=d*2,y=s*2,x=e.boundary.vertices[m+0],S=e.boundary.vertices[m+1],v=(1-f)*this._bevelSize,b=(x-this._minX)/this._width,P=(S-this._minY)/this._height,w=A.normals[h+0],g=A.normals[h+1],N=A.normals[y+0],O=A.normals[y+1];if(u){let U=N-w,Z=O-g;w=w+U*(1-n),g=g+Z*(1-n);let $=Math.sqrt(w*w+g*g);w/=$,g/=$}let C=this._buffer.get(c?2:4),T=C*3,L=C*2,M={i:r,fi:d,topP:C+0,topN:C+0,bottomP:C+1,bottomN:C+1};return this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-v,this._buffer.normals[T+0]=w*p,this._buffer.normals[T+1]=g*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=P,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=v,this._buffer.normals[T+3]=w*p,this._buffer.normals[T+4]=g*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=P,this._buffer.uvs[L+3]=b,c||(C+=2,T+=6,L+=4,M.topP=C+0,M.bottomP=C+1,this._buffer.positions[T+0]=x,this._buffer.positions[T+1]=S,this._buffer.positions[T+2]=this._depth-v,this._buffer.normals[T+0]=N*p,this._buffer.normals[T+1]=O*p,this._buffer.normals[T+2]=f,this._buffer.uvs[L+0]=b,this._buffer.uvs[L+1]=P,this._buffer.positions[T+3]=x,this._buffer.positions[T+4]=S,this._buffer.positions[T+5]=v,this._buffer.normals[T+3]=N*p,this._buffer.normals[T+4]=O*p,this._buffer.normals[T+5]=-f,this._buffer.uvs[L+2]=P,this._buffer.uvs[L+3]=b),this.vertexCache[i]=M,M}clone(){let A=new Ko(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return A.userData=Vr(this.userData),A}};var Re=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:DA.ODD},o.parameters),e=Math.abs(A.width),r=Math.abs(A.height??A.width),n=Math.abs(A.depth??0),i=o.shape??t?.shape,a=i?.roundness??A.roundness;i!==void 0&&(i instanceof TA?(i.width!==e||i.height!==r)&&i.applySize(e,r):i=new TA(e,r).fromJSON(i),o.parameters?.roundness!==void 0&&o.parameters?.roundness>0&&i.update());let l=i??new TA(e,r);return{parameters:Object.assign(A,{width:e,height:r,depth:n,roundness:a}),shape:l}}static build(o){let{depth:t,extrudeBevelSize:A,extrudeBevelSegments:e,subdivisions:r,roundness:n,windingRule:i}=o.parameters;o.shape.roundness=n;let a;return t<=0?a=new Xo(o.shape,r,{windingRule:i}):a=new Ko(o.shape,t,A,r,e,i),Object.assign(a,{userData:{...o,type:"VectorGeometry"}})}};var Jo=require("three"),jf=Math.PI*2,Ff=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,depth:0,spikes:64,angle:360,innerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:t,height:A,spikes:e,angle:r,innerRadius:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}=o.parameters,d=o.shape,s=t*.5,c=A*.5,u=Ow(d,s,c,r*Math.PI/180,e,n);d.isClosed=!0,d.update();let p=Re.create({shape:d,parameters:{subdivisions:u,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(p,{userData:{...o,type:"EllipseGeometry"}})}};function Ow(o,t,A,e,r,n){if(e>=jf)return r>30||r%4===0?(Nw(o,t,A,n),Math.round(r/4)):Vf(o,e,r,t,A,n);e=Math.max(e,.001);let i={x:0,y:A},a=e+Math.PI*.5,l={x:Math.cos(a)*t,y:Math.sin(a)*A},d=Mf({px:i.x,py:i.y,cx:l.x,cy:l.y,rx:t,ry:A,largeArcFlag:e>Math.PI,sweepFlag:!0});return r>30||r%d.length===0?Pw(o,i.x,i.y,d,r,t,A,n):Vf(o,e,r,t,A,n)}function Pw(o,t,A,e,r,n,i,a){let l=Math.round(r/e.length);o.addPoint(Zo(t,A));for(let d=0,s=e.length;d<s;d++){let c=e[d],u=o.points[d],p=Zo(c.x,c.y);u.controls[1].position.set(c.x1,c.y1),p.controls[0].position.set(c.x2,c.y2),o.addPoint(p)}return a>0?zf(o,n,i,a):o.addPoint(Zo(0,0)),l}function Vf(o,t,A,e,r,n){let i=-t/A;for(let a=0;a<=A;a++){let l=i*a,d=Math.sin(l)*e,s=Math.cos(l)*r;o.addPoint(Zo(d,s))}return t<jf?n>0?zf(o,e,r,n):o.addPoint(Zo(0,0)):(o.removePoint(o.points[o.points.length-1]),n>0&&Uf(o,e,r,n)),1}function Nw(o,t,A,e=0,r=0,n=0){let i=.5522847498,a=t*i,l=A*i;o.addPoint($s(r-t,n,r-t,n-l,r-t,n+l)),o.addPoint($s(r,n+A,r-a,n+A,r+a,n+A)),o.addPoint($s(r+t,n,r+t,n+l,r+t,n-l)),o.addPoint($s(r,n-A,r+a,n-A,r-a,n-A)),e>0&&Uf(o,t,A,e)}function Zo(o,t){return new ct(Jo.MathUtils.generateUUID(),new Jo.Vector2(o,t))}function $s(o,t,A,e,r,n){let i=Zo(o,t);return i.controls[0].position.set(A,e),i.controls[1].position.set(r,n),i}function zf(o,t,A,e){kf(o,t,A,e).forEach(n=>o.addPoint(n))}function Uf(o,t,A,e){let r=kf(o,t,A,e),n=new TA;r.forEach(i=>n.addPoint(i)),n.isClosed=!0,o.shapeHoles.push(n)}function kf(o,t,A,e){let r=e*t/100,n=r*(Math.abs(A)/Math.abs(t)),i=new Jo.Vector2(r/t,n/A),a=o.points.map(l=>{let d=l.clone();return d.uuid=Jo.MathUtils.generateUUID(),d}).reverse();return a.forEach(l=>{l.position.multiply(i);let d=l.controls[0].position.clone().multiply(i),s=l.controls[1].position.clone().multiply(i);l.controls[0].position.copy(s),l.controls[1].position.copy(d)}),a}var Kt=require("three"),Hf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},o.parameters),e=Math.abs(A.width),r=Math.abs(A.height??e),n=Math.abs(A.depth??e),i=Math.abs(Math.min(e,n))/2;return{parameters:Object.assign(A,{width:e,height:r,depth:n,radius:i,segments:Math.round(A.segments),pathSegments:Math.round(A.pathSegments),cornerSegments:Math.round(A.cornerSegments)})}}static build(o){let{width:t,height:A,depth:e,radius:r,revolutions:n,segments:i,pathRadius:a,pathType:l,pathSegments:d,cornerRadius:s,cornerSegments:c}=o.parameters,u=new Hr(!1,t,A,e,r,n,i,a,l,d,s,c);return Object.assign(u,{userData:{...o,type:"HelixGeometry"}})}},Hr=class extends Kt.BufferGeometry{constructor(t=!0,A=1,e=1,r=1,n=1,i=1,a=1,l=1,d=1,s=1,c=1,u=1,p=!1){super();let f=t&&i===1;f&&(u=0),c>100&&(c=100);let m=()=>new Kt.Vector3,h=new Kt.Vector3,y=m(),x=m(),S=m(),v,b,P,w,g,N,O,C,T=m(),L=m(),M=m(),U=m(),Z=m(),$=m(),iA=m(),k=m(),q=e-2*l+.001,Q=q/i,F=Math.ceil(a*i),B=F+1,D=q/F,G=-q/2,z=s+1,X=2*Math.PI/s,H=Math.PI/2/u,j=.01,R=Math.min((1-c/100)*l,l-j),W=l-R,Y=0,AA=2,sA=u*AA+AA,eA=z*sA/AA,tA=eA+z*B,rA=z*(B+sA),[J,mA,dA]=[3,3,2].map(ee=>Array(rA*ee).fill(0)),yA=[],xe=n-l;function wA(ee,ke){let gt=Math.PI/2;N=ke*D,C=2*Math.PI*(N%Q)/Q+gt,N+=G,O=Math.sin(C)*xe,g=Math.cos(C)*xe,t?ee.set(g,O,N):ee.set(g,N,O)}wA(h,-1e-10),wA(y,0),T.copy(h),wA(h,1);let MA=h.distanceTo(y),BA=f?0:W+R,Ie=MA*F+2*BA,er=R,Xe=Ie-BA;for(let ee=0;ee<=F;ee++){wA(x,ee),k.subVectors(x,T).normalize(),T.copy(x),$.copy(x).setComponent(+t+1,0).normalize(),iA.crossVectors(k,$).normalize();let ke=ee===0,gt=ee===F,Hh=ke?3*Math.PI/2:H,Wh=ke?er:Xe,qh=ke?z:tA,Qh=ke?0:rA-z,Yh=k.clone().multiplyScalar(ke?-W:W).add(x),Xh=k.clone().multiplyScalar(ke?-1:1).normalize();for(let Ut=0;Ut<z;Ut++){let Ic=Ut*X;if(L.addVectors(h.copy($).multiplyScalar(l*Math.cos(Ic)),y.copy(iA).multiplyScalar(l*Math.sin(Ic))),M.copy(L).normalize(),ke||gt){f||(Y=Qh+Ut,[0,1,2].forEach(Le=>{J[Y*3+Le]=Yh.getComponent(Le),mA[Y*3+Le]=Xh.getComponent(Le)}),dA[Y*2]=+gt,dA[Y*2+1]=Ut/s),y.copy(M).multiplyScalar(R),S.addVectors(x,y);for(let Le=0;Le<u;Le++){let Ha=Le*H+Hh;U.addVectors(h.copy(k).multiplyScalar(W*Math.sin(Ha)),y.copy(M).multiplyScalar(W*Math.cos(Ha))),Z.copy(U).normalize(),y.addVectors(S,U),U.normalize(),Y=qh+Le*z+Ut,[0,1,2].forEach(Wi=>{J[Y*3+Wi]=y.getComponent(Wi),mA[Y*3+Wi]=Z.getComponent(Wi)});let Kh=+ke+Math.sin(Ha);dA[Y*2]=(Wh+W*Kh)/Ie,dA[Y*2+1]=Ut/s}}y.addVectors(x,L),Y=eA+ee*z+Ut,[0,1,2].forEach(Le=>{J[Y*3+Le]=y.getComponent(Le),mA[Y*3+Le]=M.getComponent(Le)}),dA[Y*2]=(BA+ee*MA)/Ie,dA[Y*2+1]=Ut/s}}let ro=B+2*u+AA,Ua=1,[ka,In]=[+f,ro-1];p&&(In-=1);for(let ee=ka;ee<=In-1;ee++){let ke=f&&ee===In-1;for(let gt=0;gt<z-1;gt++)v=ee*z+gt,b=v+1,P=(ke?gt:v)+z,w=(ke?gt+1:b)+z,ee===0?yA.push(b,w,P):ee===ro-2?yA.push(v,b,P):yA.push(v,b,P,b,w,P)}this.setIndex(yA),this.setAttribute("position",new Kt.Float32BufferAttribute(J,3)),this.setAttribute("normal",new Kt.Float32BufferAttribute(mA,3)),this.setAttribute("uv",new Kt.Float32BufferAttribute(dA,2))}};var Wf=require("three");var qf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,detail:0,corner:0,cornerSides:4},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:t,height:A,depth:e,detail:r,corner:n,cornerSides:i}=o.parameters,a=r===0&&n!==0?new ei(t*.5,n,i):new Wf.IcosahedronGeometry(t*.5,r);return a.scale(1,A/t,e/t),Object.assign(a,{userData:{...o,type:"IcosahedronGeometry"}})}},ei=class extends yr{constructor(t=1,A=.2,e=4){let r=(1+Math.sqrt(5))/2,n=[-1,r,0,1,r,0,-1,-r,0,1,-r,0,0,-1,r,0,1,r,0,-1,-r,0,1,-r,r,0,-1,r,0,1,-r,0,-1,-r,0,1],i=[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],a="IcosahedronGeometry";super(n,i,a,t,A,e),this.type=a}static fromJSON(t){return new ei(t.radius,t.corner,t.cornerSides)}};var Aa=require("three"),Qf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){(o.parameters?.points??[]).forEach(e=>{Array.isArray(e)&&(e.x=e[0],e.y=e[1])});let A=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}]},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{points:t,segments:A,verticalSegments:e}=o.parameters,r=new Aa.Shape;r.moveTo(t[0].x,t[0].y),r.bezierCurveTo(t[1].x,t[1].y,t[2].x,t[2].y,t[3].x,t[3].y);let n=new Aa.LatheGeometry(r.extractPoints(e).shape,A);return n.rotateZ(Math.PI),Object.assign(n,{userData:{...o,type:"LatheGeometry"}})}};var It=require("three");var Zt=require("three");var nA=require("three"),Ct=new nA.Matrix4,Dl=new nA.Object3D,ea=new nA.Vector3,xr=class extends nA.EventDispatcher{constructor(){super(),this.uuid=nA.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 A=new nA.Matrix3().getNormalMatrix(t);for(let e=0,r=this.vertices.length;e<r;e++)this.vertices[e].applyMatrix4(t);for(let e=0,r=this.faces.length;e<r;e++){let n=this.faces[e];n.normal.applyMatrix3(A).normalize();for(let i=0,a=n.vertexNormals.length;i<a;i++)n.vertexNormals[i].applyMatrix3(A).normalize()}return this.boundingBox!==null&&this.computeBoundingBox(),this.boundingSphere!==null&&this.computeBoundingSphere(),this.verticesNeedUpdate=!0,this.normalsNeedUpdate=!0,this}rotateX(t){return Ct.makeRotationX(t),this.applyMatrix4(Ct),this}rotateY(t){return Ct.makeRotationY(t),this.applyMatrix4(Ct),this}rotateZ(t){return Ct.makeRotationZ(t),this.applyMatrix4(Ct),this}translate(t,A,e){return Ct.makeTranslation(t,A,e),this.applyMatrix4(Ct),this}scale(t,A,e){return Ct.makeScale(t,A,e),this.applyMatrix4(Ct),this}lookAt(t){return Dl.lookAt(t),Dl.updateMatrix(),this.applyMatrix4(Dl.matrix),this}fromBufferGeometry(t){let A=this,e=t.index!==null?t.index:void 0,r=t.attributes;if(r.position===void 0)return console.error("THREE.Geometry.fromBufferGeometry(): Position attribute required for conversion."),this;let n=r.position,i=r.normal,a=r.color,l=r.uv,d=r.uv2;d!==void 0&&(this.faceVertexUvs[1]=[]);for(let u=0;u<n.count;u++)A.vertices.push(new nA.Vector3().fromBufferAttribute(n,u)),a!==void 0&&A.colors.push(new nA.Color().fromBufferAttribute(a,u));function s(u,p,f,m){let h=a===void 0?[]:[A.colors[u].clone(),A.colors[p].clone(),A.colors[f].clone()],y=i===void 0?[]:[new nA.Vector3().fromBufferAttribute(i,u),new nA.Vector3().fromBufferAttribute(i,p),new nA.Vector3().fromBufferAttribute(i,f)],x=new _o(u,p,f,y,h,m);A.faces.push(x),l!==void 0&&A.faceVertexUvs[0].push([new nA.Vector2().fromBufferAttribute(l,u),new nA.Vector2().fromBufferAttribute(l,p),new nA.Vector2().fromBufferAttribute(l,f)]),d!==void 0&&A.faceVertexUvs[1].push([new nA.Vector2().fromBufferAttribute(d,u),new nA.Vector2().fromBufferAttribute(d,p),new nA.Vector2().fromBufferAttribute(d,f)])}let c=t.groups;if(c.length>0)for(let u=0;u<c.length;u++){let p=c[u],f=p.start,m=p.count;for(let h=f,y=f+m;h<y;h+=3)e!==void 0?s(e.getX(h),e.getX(h+1),e.getX(h+2),p.materialIndex):s(h,h+1,h+2,p.materialIndex)}else if(e!==void 0)for(let u=0;u<e.count;u+=3)s(e.getX(u),e.getX(u+1),e.getX(u+2));else for(let u=0;u<n.count;u+=3)s(u,u+1,u+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(ea).negate(),this.translate(ea.x,ea.y,ea.z),this}normalize(){this.computeBoundingSphere();let t=this.boundingSphere.center,A=this.boundingSphere.radius,e=A===0?1:1/A,r=new nA.Matrix4;return r.set(e,0,0,-e*t.x,0,e,0,-e*t.y,0,0,e,-e*t.z,0,0,0,1),this.applyMatrix4(r),this}computeFaceNormals(){let t=new nA.Vector3,A=new nA.Vector3;for(let e=0,r=this.faces.length;e<r;e++){let n=this.faces[e],i=this.vertices[n.a],a=this.vertices[n.b],l=this.vertices[n.c];t.subVectors(l,a),A.subVectors(i,a),t.cross(A),t.normalize(),n.normal.copy(t)}}computeVertexNormals(t=!0){let A=new Array(this.vertices.length);for(let e=0,r=this.vertices.length;e<r;e++)A[e]=new nA.Vector3;if(t){let e=new nA.Vector3,r=new nA.Vector3;for(let n=0,i=this.faces.length;n<i;n++){let a=this.faces[n],l=this.vertices[a.a],d=this.vertices[a.b],s=this.vertices[a.c];e.subVectors(s,d),r.subVectors(l,d),e.cross(r),A[a.a].add(e),A[a.b].add(e),A[a.c].add(e)}}else{this.computeFaceNormals();for(let e=0,r=this.faces.length;e<r;e++){let n=this.faces[e];A[n.a].add(n.normal),A[n.b].add(n.normal),A[n.c].add(n.normal)}}for(let e=0,r=this.vertices.length;e<r;e++)A[e].normalize();for(let e=0,r=this.faces.length;e<r;e++){let n=this.faces[e],i=n.vertexNormals;i.length===3?(i[0].copy(A[n.a]),i[1].copy(A[n.b]),i[2].copy(A[n.c])):(i[0]=A[n.a].clone(),i[1]=A[n.b].clone(),i[2]=A[n.c].clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeFlatVertexNormals(){this.computeFaceNormals();for(let t=0,A=this.faces.length;t<A;t++){let e=this.faces[t],r=e.vertexNormals;r.length===3?(r[0].copy(e.normal),r[1].copy(e.normal),r[2].copy(e.normal)):(r[0]=e.normal.clone(),r[1]=e.normal.clone(),r[2]=e.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let A=0,e=this.faces.length;A<e;A++){let r=this.faces[A];r.__originalFaceNormal?r.__originalFaceNormal.copy(r.normal):r.__originalFaceNormal=r.normal.clone(),r.__originalVertexNormals||(r.__originalVertexNormals=[]);for(let n=0,i=r.vertexNormals.length;n<i;n++)r.__originalVertexNormals[n]?r.__originalVertexNormals[n].copy(r.vertexNormals[n]):r.__originalVertexNormals[n]=r.vertexNormals[n].clone()}let t=new xr;t.faces=this.faces;for(let A=0,e=this.morphTargets.length;A<e;A++){if(!this.morphNormals[A]){this.morphNormals[A]={},this.morphNormals[A].faceNormals=[],this.morphNormals[A].vertexNormals=[];let n=this.morphNormals[A].faceNormals,i=this.morphNormals[A].vertexNormals;for(let a=0,l=this.faces.length;a<l;a++){let d=new nA.Vector3,s={a:new nA.Vector3,b:new nA.Vector3,c:new nA.Vector3};n.push(d),i.push(s)}}let r=this.morphNormals[A];t.vertices=this.morphTargets[A].vertices,t.computeFaceNormals(),t.computeVertexNormals();for(let n=0,i=this.faces.length;n<i;n++){let a=this.faces[n],l=r.faceNormals[n],d=r.vertexNormals[n];l.copy(a.normal),d.a.copy(a.vertexNormals[0]),d.b.copy(a.vertexNormals[1]),d.c.copy(a.vertexNormals[2])}}for(let A=0,e=this.faces.length;A<e;A++){let r=this.faces[A];r.normal=r.__originalFaceNormal,r.vertexNormals=r.__originalVertexNormals}}computeBoundingBox(){this.boundingBox===null&&(this.boundingBox=new nA.Box3),this.boundingBox.setFromPoints(this.vertices)}computeBoundingSphere(){this.boundingSphere===null&&(this.boundingSphere=new nA.Sphere),this.boundingSphere.setFromPoints(this.vertices)}merge(t,A,e=0){if(!(t&&t.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",t);return}let r,n=this.vertices.length,i=this.vertices,a=t.vertices,l=this.faces,d=t.faces,s=this.colors,c=t.colors;A!==void 0&&(r=new nA.Matrix3().getNormalMatrix(A));for(let u=0,p=a.length;u<p;u++){let m=a[u].clone();A!==void 0&&m.applyMatrix4(A),i.push(m)}for(let u=0,p=c.length;u<p;u++)s.push(c[u].clone());for(let u=0,p=d.length;u<p;u++){let f=d[u],m,h,y=f.vertexNormals,x=f.vertexColors,S=new _o(f.a+n,f.b+n,f.c+n);S.normal.copy(f.normal),r!==void 0&&S.normal.applyMatrix3(r).normalize();for(let v=0,b=y.length;v<b;v++)m=y[v].clone(),r!==void 0&&m.applyMatrix3(r).normalize(),S.vertexNormals.push(m);S.color.copy(f.color);for(let v=0,b=x.length;v<b;v++)h=x[v],S.vertexColors.push(h.clone());S.materialIndex=f.materialIndex+e,l.push(S)}for(let u=0,p=t.faceVertexUvs.length;u<p;u++){let f=t.faceVertexUvs[u];this.faceVertexUvs[u]===void 0&&(this.faceVertexUvs[u]=[]);for(let m=0,h=f.length;m<h;m++){let y=f[m],x=[];for(let S=0,v=y.length;S<v;S++)x.push(y[S].clone());this.faceVertexUvs[u].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 A={},e=[],r=[],n=Math.pow(10,t);for(let l=0,d=this.vertices.length;l<d;l++){let s=this.vertices[l],c=Math.round(s.x*n)+"_"+Math.round(s.y*n)+"_"+Math.round(s.z*n);A[c]===void 0?(A[c]=l,e.push(this.vertices[l]),r[l]=e.length-1):r[l]=r[A[c]]}let i=[];for(let l=0,d=this.faces.length;l<d;l++){let s=this.faces[l];s.a=r[s.a],s.b=r[s.b],s.c=r[s.c];let c=[s.a,s.b,s.c];for(let u=0;u<3;u++)if(c[u]===c[(u+1)%3]){i.push(l);break}}for(let l=i.length-1;l>=0;l--){let d=i[l];this.faces.splice(d,1);for(let s=0,c=this.faceVertexUvs.length;s<c;s++)this.faceVertexUvs[s].splice(d,1)}let a=this.vertices.length-e.length;return this.vertices=e,a}setFromPoints(t){this.vertices=[];for(let A=0,e=t.length;A<e;A++){let r=t[A];this.vertices.push(new nA.Vector3(r.x,r.y,r.z||0))}return this}sortFacesByMaterialIndex(){let t=this.faces,A=t.length;for(let l=0;l<A;l++)t[l]._id=l;function e(l,d){return l.materialIndex-d.materialIndex}t.sort(e);let r=this.faceVertexUvs[0],n=this.faceVertexUvs[1],i,a;r&&r.length===A&&(i=[]),n&&n.length===A&&(a=[]);for(let l=0;l<A;l++){let d=t[l]._id;i&&i.push(r[d]),a&&a.push(n[d])}i&&(this.faceVertexUvs[0]=i),a&&(this.faceVertexUvs[1]=a)}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 f=this.parameters;for(let m in f)f[m]!==void 0&&(t[m]=f[m]);return t}let A=[];for(let f=0;f<this.vertices.length;f++){let m=this.vertices[f];A.push(m.x,m.y,m.z)}let e=[],r=[],n={},i=[],a={},l=[],d={};for(let f=0;f<this.faces.length;f++){let m=this.faces[f],h=!0,y=!1,x=this.faceVertexUvs[0][f]!==void 0,S=m.normal.length()>0,v=m.vertexNormals.length>0,b=m.color.r!==1||m.color.g!==1||m.color.b!==1,P=m.vertexColors.length>0,w=0;if(w=s(w,0,0),w=s(w,1,h),w=s(w,2,y),w=s(w,3,x),w=s(w,4,S),w=s(w,5,v),w=s(w,6,b),w=s(w,7,P),e.push(w),e.push(m.a,m.b,m.c),e.push(m.materialIndex),x){let g=this.faceVertexUvs[0][f];e.push(p(g[0]),p(g[1]),p(g[2]))}if(S&&e.push(c(m.normal)),v){let g=m.vertexNormals;e.push(c(g[0]),c(g[1]),c(g[2]))}if(b&&e.push(u(m.color)),P){let g=m.vertexColors;e.push(u(g[0]),u(g[1]),u(g[2]))}}function s(f,m,h){return h?f|1<<m:f&~(1<<m)}function c(f){let m=f.x.toString()+f.y.toString()+f.z.toString();return n[m]!==void 0||(n[m]=r.length/3,r.push(f.x,f.y,f.z)),n[m]}function u(f){let m=f.r.toString()+f.g.toString()+f.b.toString();return a[m]!==void 0||(a[m]=i.length,i.push(f.getHex())),a[m]}function p(f){let m=f.x.toString()+f.y.toString();return d[m]!==void 0||(d[m]=l.length/2,l.push(f.x,f.y)),d[m]}return t.data={},t.data.vertices=A,t.data.normals=r,i.length>0&&(t.data.colors=i),l.length>0&&(t.data.uvs=[l]),t.data.faces=e,t}clone(){return new xr().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 A=t.vertices;for(let u=0,p=A.length;u<p;u++)this.vertices.push(A[u].clone());let e=t.colors;for(let u=0,p=e.length;u<p;u++)this.colors.push(e[u].clone());let r=t.faces;for(let u=0,p=r.length;u<p;u++)this.faces.push(r[u].clone());for(let u=0,p=t.faceVertexUvs.length;u<p;u++){let f=t.faceVertexUvs[u];this.faceVertexUvs[u]===void 0&&(this.faceVertexUvs[u]=[]);for(let m=0,h=f.length;m<h;m++){let y=f[m],x=[];for(let S=0,v=y.length;S<v;S++){let b=y[S];x.push(b.clone())}this.faceVertexUvs[u].push(x)}}let n=t.morphTargets;for(let u=0,p=n.length;u<p;u++){let f={};if(f.name=n[u].name,n[u].vertices!==void 0){f.vertices=[];for(let m=0,h=n[u].vertices.length;m<h;m++)f.vertices.push(n[u].vertices[m].clone())}if(n[u].normals!==void 0){f.normals=[];for(let m=0,h=n[u].normals.length;m<h;m++)f.normals.push(n[u].normals[m].clone())}this.morphTargets.push(f)}let i=t.morphNormals;for(let u=0,p=i.length;u<p;u++){let f={};if(i[u].vertexNormals!==void 0){f.vertexNormals=[];for(let m=0,h=i[u].vertexNormals.length;m<h;m++){let y=i[u].vertexNormals[m],x={};x.a=y.a.clone(),x.b=y.b.clone(),x.c=y.c.clone(),f.vertexNormals.push(x)}}if(i[u].faceNormals!==void 0){f.faceNormals=[];for(let m=0,h=i[u].faceNormals.length;m<h;m++)f.faceNormals.push(i[u].faceNormals[m].clone())}this.morphNormals.push(f)}let a=t.skinWeights;for(let u=0,p=a.length;u<p;u++)this.skinWeights.push(a[u].clone());let l=t.skinIndices;for(let u=0,p=l.length;u<p;u++)this.skinIndices.push(l[u].clone());let d=t.lineDistances;for(let u=0,p=d.length;u<p;u++)this.lineDistances.push(d[u]);let s=t.boundingBox;s!==null&&(this.boundingBox=s.clone());let c=t.boundingSphere;return c!==null&&(this.boundingSphere=c.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 Gl().fromGeometry(this),A=new nA.BufferGeometry,e=new Float32Array(t.vertices.length*3);if(A.setAttribute("position",new nA.BufferAttribute(e,3).copyVector3sArray(t.vertices)),t.normals.length>0){let r=new Float32Array(t.normals.length*3);A.setAttribute("normal",new nA.BufferAttribute(r,3).copyVector3sArray(t.normals))}if(t.colors.length>0){let r=new Float32Array(t.colors.length*3);A.setAttribute("color",new nA.BufferAttribute(r,3).copyColorsArray(t.colors))}if(t.uvs.length>0){let r=new Float32Array(t.uvs.length*2);A.setAttribute("uv",new nA.BufferAttribute(r,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){let r=new Float32Array(t.uvs2.length*2);A.setAttribute("uv2",new nA.BufferAttribute(r,2).copyVector2sArray(t.uvs2))}A.groups=t.groups;for(let r in t.morphTargets){let n=[],i=t.morphTargets[r];for(let a=0,l=i.length;a<l;a++){let d=i[a],s=new nA.Float32BufferAttribute(d.data.length*3,3);s.name=d.name,n.push(s.copyVector3sArray(d.data))}A.morphAttributes[r]=n}if(t.skinIndices.length>0){let r=new nA.Float32BufferAttribute(t.skinIndices.length*4,4);A.setAttribute("skinIndex",r.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){let r=new nA.Float32BufferAttribute(t.skinWeights.length*4,4);A.setAttribute("skinWeight",r.copyVector4sArray(t.skinWeights))}return t.boundingSphere!==null&&(A.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(A.boundingBox=t.boundingBox.clone()),A}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 A=new nA.BufferGeometry,e=t.geometry;if(t.isPoints||t.isLine){let r=new nA.Float32BufferAttribute(e.vertices.length*3,3),n=new nA.Float32BufferAttribute(e.colors.length*3,3);if(A.setAttribute("position",r.copyVector3sArray(e.vertices)),A.setAttribute("color",n.copyColorsArray(e.colors)),e.lineDistances&&e.lineDistances.length===e.vertices.length){let i=new nA.Float32BufferAttribute(e.lineDistances.length,1);A.setAttribute("lineDistance",i.copyArray(e.lineDistances))}e.boundingSphere!==null&&(A.boundingSphere=e.boundingSphere.clone()),e.boundingBox!==null&&(A.boundingBox=e.boundingBox.clone())}else t.isMesh&&(A=e.toBufferGeometry());return A}};xr.prototype.isGeometry=!0;var Gl=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 A=[],e,r,n,i=t.faces;for(r=0;r<i.length;r++){let a=i[r];a.materialIndex!==n&&(n=a.materialIndex,e!==void 0&&(e.count=r*3-e.start,A.push(e)),e={start:r*3,materialIndex:n})}e!==void 0&&(e.count=r*3-e.start,A.push(e)),this.groups=A}fromGeometry(t){let A=t.faces,e=t.vertices,r=t.faceVertexUvs,n=r[0]&&r[0].length>0,i=r[1]&&r[1].length>0,a=t.morphTargets,l=a.length,d;if(l>0){d=[];for(let y=0;y<l;y++)d[y]={name:a[y].name,data:[]};this.morphTargets.position=d}let s=t.morphNormals,c=s.length,u;if(c>0){u=[];for(let y=0;y<c;y++)u[y]={name:s[y].name,data:[]};this.morphTargets.normal=u}let p=t.skinIndices,f=t.skinWeights,m=p.length===e.length,h=f.length===e.length;e.length>0&&A.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let y=0;y<A.length;y++){let x=A[y];this.vertices.push(e[x.a],e[x.b],e[x.c]);let S=x.vertexNormals;if(S.length===3)this.normals.push(S[0],S[1],S[2]);else{let b=x.normal;this.normals.push(b,b,b)}let v=x.vertexColors;if(v.length===3)this.colors.push(v[0],v[1],v[2]);else{let b=x.color;this.colors.push(b,b,b)}if(n===!0){let b=r[0][y];b!==void 0?this.uvs.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",y),this.uvs.push(new nA.Vector2,new nA.Vector2,new nA.Vector2))}if(i===!0){let b=r[1][y];b!==void 0?this.uvs2.push(b[0],b[1],b[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",y),this.uvs2.push(new nA.Vector2,new nA.Vector2,new nA.Vector2))}for(let b=0;b<l;b++){let P=a[b].vertices;d[b].data.push(P[x.a],P[x.b],P[x.c])}for(let b=0;b<c;b++){let P=s[b].vertexNormals[y];u[b].data.push(P.a,P.b,P.c)}m&&this.skinIndices.push(p[x.a],p[x.b],p[x.c]),h&&this.skinWeights.push(f[x.a],f[x.b],f[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}},_o=class{constructor(t,A,e,r,n,i=0){this.a=t,this.b=A,this.c=e,this.normal=r&&r.isVector3?r:new nA.Vector3,this.vertexNormals=Array.isArray(r)?r:[],this.color=n&&n.isColor?n:new nA.Color,this.vertexColors=Array.isArray(n)?n:[],this.materialIndex=i}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 A=0,e=t.vertexNormals.length;A<e;A++)this.vertexNormals[A]=t.vertexNormals[A].clone();for(let A=0,e=t.vertexColors.length;A<e;A++)this.vertexColors[A]=t.vertexColors[A].clone();return this}};var Cw=["a","b","c"];function Iw(o,t){switch(t){case"c":return o.c;case"b":return o.b;case"a":default:return o.a}}function Rl(o,t,A){let e=Math.min(o,t),r=Math.max(o,t),n=e+"_"+r;return A.get(n)}function Vl(o,t,A,e,r,n){let i=Math.min(o,t),a=Math.max(o,t),l=i+"_"+a,d;if(e.has(l))d=e.get(l);else{let s=A[i],c=A[a];d={a:s,b:c,newEdge:null,faces:[]},e.set(l,d)}d.faces.push(r),n[o].edges.push(d),n[t].edges.push(d)}function Lw(o,t,A,e){let r,n,i;for(r=0,n=o.length;r<n;r++)A[r]={edges:[]};for(r=0,n=t.length;r<n;r++)i=t[r],Vl(i.a,i.b,o,e,i,A),Vl(i.b,i.c,o,e,i,A),Vl(i.c,i.a,o,e,i,A)}function ta(o,t,A,e,r){o.push(new _o(t,A,e,void 0,void 0,r))}function $o(o,t){return Math.abs(t-o)/2+Math.min(o,t)}function ra(o,t,A,e){o.push([t.clone(),A.clone(),e.clone()])}var oa=class{constructor(t=1){this.subdivisions=t}modify(t){t instanceof Zt.BufferGeometry?t=new xr().fromBufferGeometry(t):t=t.clone(),t.mergeVertices();let A=this.subdivisions;for(;A-- >0;)this._smooth(t);return t.computeFaceNormals(),t.computeVertexNormals(),t}_smooth(t){let A=new Zt.Vector3,e,r,n,i,a,l=t.vertices,d=t.faces,s=t.faceVertexUvs[0],c=s!==void 0&&s.length>0,u=[],p=new Map;Lw(l,d,u,p);let f=[],m,h,y,x,S,v,b;for(let H of Array.from(p.keys())){for(h=p.get(H),y=new Zt.Vector3,S=3/8,v=1/8,b=h.faces.length,b!=2&&(S=.5,v=0,b!=1),y.addVectors(h.a,h.b).multiplyScalar(S),A.set(0,0,0),i=0;i<b;i++){for(x=h.faces[i],a=0;a<3&&(m=l[Iw(x,Cw[a])],!(m!==h.a&&m!==h.b));a++);m&&A.add(m)}A.multiplyScalar(v),y.add(A),h.newEdge=f.length,f.push(y)}let P,w,g,N,O,C,T,L=[];for(r=0,n=l.length;r<n;r++){for(C=l[r],O=u[r].edges,e=O.length,e==3?P=3/16:e>3&&(P=3/(8*e)),w=1-e*Number(P),g=P,e<=2&&(e==2?(w=3/4,g=1/8):e==1||e==0),T=C.clone().multiplyScalar(w),A.set(0,0,0),i=0;i<e;i++)N=O[i],m=N.a!==C?N.a:N.b,A.add(m);A.multiplyScalar(Number(g)),T.add(A),L.push(T)}let M=L.concat(f),U=L.length,Z,$,iA,k=[],q=[],Q,F,B,D,G=new Zt.Vector2,z=new Zt.Vector2,X=new Zt.Vector2;for(r=0,n=d.length;r<n;r++)x=d[r],Z=Number(Rl(x.a,x.b,p).newEdge)+U,$=Number(Rl(x.b,x.c,p).newEdge)+U,iA=Number(Rl(x.c,x.a,p).newEdge)+U,ta(k,Z,$,iA,x.materialIndex),ta(k,x.a,Z,iA,x.materialIndex),ta(k,x.b,$,Z,x.materialIndex),ta(k,x.c,iA,$,x.materialIndex),c&&(Q=s[r],F=Q[0],B=Q[1],D=Q[2],G.set($o(F.x,B.x),$o(F.y,B.y)),z.set($o(B.x,D.x),$o(B.y,D.y)),X.set($o(F.x,D.x),$o(F.y,D.y)),ra(q,G,z,X),ra(q,F,G,X),ra(q,B,z,G),ra(q,D,X,z));t.vertices=M,t.faces=k,c&&(t.faceVertexUvs[0]=q)}};var re=new It.Vector3,Yf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=o.geometry??t?.geometry??new It.BufferGeometry().copy(new It.BoxGeometry(100,100,100)),e;t===void 0?(A.computeBoundingBox(),A.boundingBox.getSize(re),e={width:re.x,height:re.y,depth:re.z,subdivisions:0}):e=t.parameters;let r={...e,...o.parameters};return{parameters:{width:Math.abs(r.width),height:Math.abs(r.height),depth:Math.abs(r.depth),subdivisions:Math.abs(r.subdivisions)},geometry:A}}static build(o){let{width:t,height:A,depth:e,subdivisions:r}=o.parameters,n=o.geometry??new It.BufferGeometry().copy(new It.BoxGeometry(100,100,100)),i=n.userData.parameters;i===void 0?(n.computeBoundingBox(),n.boundingBox.getSize(re)):re.set(i.width,i.height,i.depth),(t!==re.x||A!==re.y||e!==re.z)&&n.scale(re.x===0?1:t/re.x,re.y===0?1:A/re.y,re.z===0?1:e/re.z);let a=n.originalGeometry;return r>0?(a===void 0||i?.subdivisions!==r)&&(a===void 0&&(a=n),n=new oa(r).modify(a).toBufferGeometry()):(a!==void 0&&(n=a),a=void 0,n.getAttribute("normal")===void 0&&n.computeVertexNormals()),a!==void 0&&Object.assign(n,{originalGeometry:a}),delete o.geometry,Object.assign(n,{userData:{...o,type:"NonParametricGeometry"}})}static loadFromUrl(o,t,A){new It.BufferGeometryLoader(A).load(o,r=>{let n=this.normalizeInputs({geometry:r});r.boundingBox.getSize(re);let i=100/re.x;Object.assign(n.parameters,{width:100,height:re.y*i,depth:re.z*i}),t(this.build(n))})}};var Xf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:3},o.parameters);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:t,height:A,spikes:e,cornerRadius:r,depth:n,extrudeBevelSize:i,extrudeBevelSegments:a}=o.parameters,l=o.shape,d=t*.5,s=A*.5,c=0,u=0,p=2*Math.PI/e;for(let m=0;m<e;m++){let h=p*m,y=c+Math.sin(h)*d,x=u+Math.cos(h)*s;l.addPoint(l.createPoint(y,x))}l.isClosed=!0;for(let m=0,h=l.points.length;m<h;m++)l.points[m].roundness=r;l.roundness=r,l.update();let f=Re.create({shape:l,parameters:{roundness:r,depth:n,extrudeBevelSize:i,extrudeBevelSegments:a}});return Object.assign(f,{userData:{...o,type:"PolygonGeometry"}})}};var bA=require("three"),Kf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,radialSegments:4,heightSegments:1,cornerRadius:0,cornerSegments:8,openEnded:!1},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:t,height:A,depth:e,radialSegments:r,heightSegments:n,openEnded:i,cornerRadius:a,cornerSegments:l}=o.parameters,d=new Fl(t*.5,A,r,n,i,a,l);return d.scale(1,1,e/t),Object.assign(d,{userData:{...o,type:"PyramidGeometry"}})}};function ti(o,t,A){A.x=o.x*t.x,A.y=o.y,A.z=o.x*t.y}function jl(o,t,A,e,r,n){let i=t.clone().sub(o),a=A.clone().sub(o),l=i.angleTo(a);if(i.normalize(),a.normalize(),e===r){let d=i.add(a).normalize();n.copy(o).addScaledVector(d,e/Math.sin(l/2))}else{let d=i.angleTo(a);n.copy(o),n.addScaledVector(i,r/Math.sin(d)),n.addScaledVector(a,e/Math.sin(d))}}function Ew(o,t,A){let e=o.clone().sub(t),r=A.clone().sub(t);return e.projectOnVector(r),e.add(t)}var Fl=class extends bA.BufferGeometry{constructor(t=.5,A=1,e=4,r=1,n=!1,i=0,a=4){super(),e=Math.floor(Math.max(3,e)),r=Math.floor(r),a=Math.floor(a);let l=[],d=[],s=[],c=[],u=0,p=A/2,f=Math.PI/e,m=t*Math.cos(Math.PI/e),h=2*Math.PI/e,y=(e-2)*Math.PI/e,x=Math.PI-y,S=new bA.Vector3(0,-p,0),v=new bA.Vector3(0,p,0),b=new bA.Vector2(t,-p),P=new bA.Vector2(m,-p),w=new bA.Vector2(0,v.y).sub(P),g=new bA.Vector2(0,v.y).sub(b),N=new bA.Vector2(w.y,-w.x).normalize(),O=new bA.Vector2(g.y,-g.x).normalize(),T=t*Math.cos(Math.PI/e)*Math.tan((Math.PI-w.angle())/2)-1e-8;i=Math.min(i,T);let L;{let q=new bA.Vector3(N.x,N.y,0),Q=new bA.Vector3(Math.cos(h)*q.x,q.y,Math.sin(h)*q.x);L=q.angleTo(Q)}let M=i/Math.tan((Math.PI-w.angle())/2),U=i/Math.tan((Math.PI-L)/2),Z=new bA.Vector3;if(!n){d.push(S.x,S.y,S.z),s.push(0,-1,0),c.push(0,0);let q=u++,Q=[],F=b.clone(),B=M/Math.cos(Math.PI/e);F.x-=B;for(let D=0;D<e;D++){let G=D/e*Math.PI*2+f,z=new bA.Vector2(Math.sin(G),Math.cos(G));ti(F,z,Z),d.push(Z.x,Z.y,Z.z),s.push(0,-1,0),c.push(0,0),Q.push(u++)}for(let D=0;D<Q.length;D++)l.push(Q[D],q,Q[(D+1)%Q.length])}let $=[];{let q=new bA.Vector3,Q=new bA.Vector3,F=new bA.Vector3,B=new bA.Vector3,D=new bA.Vector3,G=new bA.Vector3;for(let z=0;z<e;z++){let X=z/e*Math.PI*2+f,H=(z+.5)/e*Math.PI*2+f,j=(z+1)/e*Math.PI*2+f,R=new bA.Vector2(Math.sin(X),Math.cos(X)),W=new bA.Vector2(Math.sin(H),Math.cos(H)),Y=new bA.Vector2(Math.sin(j),Math.cos(j));ti(b,R,Q),ti(b,Y,F),ti(N,W,q),jl(v,Q,F,U,U,B),d.push(B.x,B.y,B.z),jl(Q,v,F,U,M,D),d.push(D.x,D.y,D.z),jl(F,Q,v,M,U,G),d.push(G.x,G.y,G.z),s.push(q.x,q.y,q.z),s.push(q.x,q.y,q.z),s.push(q.x,q.y,q.z),c.push(0,0),c.push(0,0),c.push(0,0);let AA=u++,sA=u++,eA=u++;if(l.push(AA,sA,eA),i>0){{let J=Q.clone().add(F).multiplyScalar(.5),mA=v.clone().sub(J).normalize(),yA=S.clone().sub(J).normalize().add(mA).normalize().multiplyScalar(-1),xe=G.clone().sub(D);iA(J,xe,yA,w.angle())}let tA,rA;{let J=new bA.Vector3;ti(O,Y,J);let mA=G.clone().add(B).multiplyScalar(.5);mA=Ew(mA,F,v);let dA=G.clone().sub(B);[tA,rA]=iA(mA,dA,J,L,B.y)}{let J=tA,mA=J.clone().setY(0).normalize(),dA=new bA.Vector3(0,-1,0),yA=mA.clone().cross(dA);k(J,mA,dA,yA)}$.concat(rA);{let J=w.angle(),mA=Math.PI-J,dA=v.clone();dA.y-=i/Math.sin(J-Math.PI/2);let yA=new bA.Vector3,xe=[];for(let MA=0;MA<a;MA++){let BA=[],Ie=Math.PI/2-mA*MA/a,er=Math.cos(Ie),Xe=Math.sin(Ie),ro=H;for(let Ua=0;Ua<=MA;Ua++){let ka=Math.cos(ro),In=Math.sin(ro);q.x=er*In,q.y=Xe,q.z=er*ka,yA.copy(dA).addScaledVector(q,i),d.push(yA.x,yA.y,yA.z),s.push(q.x,q.y,q.z),c.push(0,0),BA.push(u++),ro+=Math.PI*2/MA/e}xe.push(BA)}rA.reverse(),xe.push(rA);let wA=xe.length-1;for(let MA=0;MA<wA;MA++){let BA=xe[MA],Ie=xe[MA+1],er=BA.length-1;l.push(Ie[1],BA[0],Ie[0]);for(let Xe=1;Xe<=er;Xe++)l.push(BA[Xe],BA[Xe-1],Ie[Xe]),l.push(Ie[Xe+1],BA[Xe],Ie[Xe])}}}}}this.setIndex(l),this.setAttribute("position",new bA.Float32BufferAttribute(d,3)),this.setAttribute("normal",new bA.Float32BufferAttribute(s,3)),this.setAttribute("uv",new bA.Float32BufferAttribute(c,2));function iA(q,Q,F,B,D){let G=-B/2,z=(Math.PI-B)/2,X=Q.clone().normalize().cross(F);q.addScaledVector(F,-i/Math.sin(z));let H=new bA.Vector3,j=new bA.Vector3,R=1,W=u,Y=[];for(let AA=0;AA<=a;AA++){let sA=G+AA/a*B;j.set(0,0,0),j.addScaledVector(X,Math.sin(sA)),j.addScaledVector(F,Math.cos(sA));for(let eA=0;eA<=R;eA++){let tA=eA/R-.5;if(H.copy(q),H.addScaledVector(Q,tA),H.addScaledVector(j,i),D!=null){let rA=Math.max(0,H.y-D);H.addScaledVector(Q,-rA/Q.y)}d.push(H.x,H.y,H.z),s.push(j.x,j.y,j.z),c.push(0,0),eA===0&&Y.push(u),u++}}for(let AA=0;AA<a;AA++)for(let sA=0;sA<R;sA++){let eA=W+sA+(R+1)*AA,tA=eA+(R+1),rA=tA+1,J=eA+1;l.push(eA,tA,J),l.push(tA,rA,J)}return[q.clone().addScaledVector(Q,.5),Y]}function k(q,Q,F,B){let D=Math.PI/2,G=g.angle()-D,z=[],X=new bA.Vector3,H=new bA.Vector3;for(let R=0;R<=a;R++){let W=[],Y=R/a;for(let AA=0;AA<=R;AA++){let eA=((R?AA/R:0)-.5)*x,tA=Math.cos(eA),rA=Math.sin(eA),J=Math.atan(Math.tan(G)*tA),mA=(D+J)*Y,dA=Math.cos(mA),yA=Math.sin(mA);X.set(0,0,0),X.addScaledVector(Q,yA*tA),X.addScaledVector(F,dA),X.addScaledVector(B,yA*rA),H.copy(q).addScaledVector(X,i),d.push(H.x,H.y,H.z),s.push(X.x,X.y,X.z),c.push(0,0),W.push(u++)}z.push(W)}let j=z.length-1;for(let R=0;R<j;R++){let W=z[R],Y=z[R+1],AA=W.length-1;l.push(W[0],Y[1],Y[0]);for(let sA=1;sA<=AA;sA++)l.push(W[sA-1],W[sA],Y[sA]),l.push(W[sA],Y[sA+1],Y[sA])}}}};var Zf=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters),e=Object.assign(t?.ui??{enabledIndieCorners:!1},o.ui);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)}),ui:e}}static build(o){let t=o.shape,{width:A,height:e,cornerRadius:r,cornerType:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}=o.parameters,d={x:A*.5,y:e*.5},s={x:-d.x,y:-d.y},c={x:d.x,y:d.y};function u(v,b,P){return b>A&&P>e?Math.min(v*A/b,v*e/P):b>A?v*A/b:P>e?v*e/P:v}let p=[];p[0]=r[0]===0?0:u(r[0],r[0]+r[3],r[0]+r[1]),p[1]=r[1]===0?0:u(r[1],r[1]+r[2],r[1]+r[0]),p[2]=r[2]===0?0:u(r[2],r[2]+r[1],r[2]+r[3]),p[3]=r[3]===0?0:u(r[3],r[3]+r[0],r[3]+r[2]);let f=s.x,m=c.x,h=c.y,y=s.y;t.addPoint(t.createPoint(f,h)),t.addPoint(t.createPoint(m,h)),t.addPoint(t.createPoint(m,y)),t.addPoint(t.createPoint(f,y)),t.isClosed=!0;let x=!0;for(let v=0,b=t.points.length;v<b;v++)t.points[v].roundness=p[v],v>0&&p[v]!==p[v-1]&&(x=!1);x&&(t.roundness=p[0]),t.useCubicForRoundedCorners=n!==1,t.update();let S=Re.create({shape:t,parameters:{depth:i,extrudeBevelSize:a,extrudeBevelSegments:l}});return Object.assign(S,{userData:{...o,type:"RectangleGeometry"}})}};var Jf=require("three"),_f=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,widthSegments:64,heightSegments:64,phiStart:0,phiLength:2*Math.PI,thetaStart:0,thetaLength:Math.PI},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:t=100,height:A=t,depth:e=t,widthSegments:r=64,heightSegments:n=64,phiStart:i,phiLength:a,thetaStart:l,thetaLength:d}=o.parameters,s=new Jf.SphereGeometry(.5*t,r,n,i,a,l,d);return s.scale(1,A/t,e/t),Object.assign(s,{userData:{...o,type:"SphereGeometry"}})}};var $f=require("three"),Am=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,depth:0,widthSegments:8,heightSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:0})}}static build(o){let{width:t=100,height:A=t,widthSegments:e=8,heightSegments:r=8}=o.parameters,n=new $f.PlaneGeometry(t,A,e,r);return n.scale(1,1,1),Object.assign(n,{userData:{...o,type:"PlaneGeometry"}})}};var vr=require("three"),em=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,angle:90,cornerRadius:24,cornerSegments:8},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width)})}}static build(o){let{width:t,height:A,depth:e,angle:r,cornerRadius:n,cornerSegments:i}=o.parameters,a=new zl(t,A,e,r,n,i);return Object.assign(a,{userData:{...o,type:"BackdropGeometry"}})}},zl=class extends vr.BufferGeometry{constructor(t=1,A=1,e=1,r=90,n=10,i=24){super(),this.type="BackdropGeometry";let a=[],l=[],d=[],s=.001;n==0&&(i=1),i=Math.max(1,Math.floor(i)),n=Math.min(n,100),r=Math.min(180-s,r),r*=Math.PI/180;let c=[],u=Math.PI/2,p=(H=0,j=0,R=0)=>new vr.Vector3(H,j,R),f=p(),m=p(),[h,y,x]=[A/2,t/2,e/2],S=-y,v=+y,[b,P,w]=[p(S,-h,+x),p(S,-h,-x),p(S,+h,-x)],g=(H,j=!1)=>Math.sin(H-Math.PI/(1+ +j)),N=(H,j=!1)=>Math.cos(H-Math.PI/(1+ +j));w.y=Math.sin(r)*A-h;let O=Math.cos(r)*A-x,C=b.z-s;r<=u?(w.z=Math.min(O,C),w.z==C&&(w.y-=(O-C)/Math.tan(u-r))):P.z=Math.min(P.z-O-x,b.z-s),f.subVectors(b,P),m.subVectors(w,P);let T=Math.min(f.length(),m.length())*n/100,L=T*Math.tan(r/2),M=T/Math.cos(r/2),U=f.clone().normalize().add(m.normalize()).setLength(M).add(P);f.set(0,g(r,!0),N(r,!0)),c.push([w,f.clone()]);let Z=(Math.PI-r)/i;for(let H=0;H<=i;H++){let j=u+r+H*Z;f.set(0,Math.sin(j)*L,Math.cos(j)*L),f.add(U),m.set(0,g(j),N(j)),c.push([f.clone(),m.clone()])}c.push([b,p(0,1,0)]);let $=Math.sin(Z/2)*L*2,iA=c.length-1,k=c[0][0].distanceTo(c[1][0]),q=c[iA-1][0].distanceTo(c[iA][0]),Q=k+$*i+q;c[0].push(1);for(let H=0;H<=i;H++)c[H+1].push(1-(k+H*$)/Q);c[iA].push(0);let[F,B,D]=c[0],G,z,X;for(let H=1;H<c.length;H++)[G,z,X]=c[H],a.push(S,F.y,F.z,S,G.y,G.z,v,F.y,F.z,v,F.y,F.z,S,G.y,G.z,v,G.y,G.z),l.push(0,B.y,B.z,0,z.y,z.z,0,B.y,B.z,0,B.y,B.z,0,z.y,z.z,0,z.y,z.z),d.push(0,D,0,X,1,D,1,D,0,X,1,X),[F,B,D]=[G,z,X];this.setAttribute("position",new vr.Float32BufferAttribute(a,3)),this.setAttribute("normal",new vr.Float32BufferAttribute(l,3)),this.setAttribute("uv",new vr.Float32BufferAttribute(d,2))}};var tm=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,depth:0,innerRadiusPercent:38.19,spikes:5,cornerRadius:0,angle:360,extrudeBevelSize:0,extrudeBevelSegments:1},o.parameters);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:t,height:A,innerRadiusPercent:e,spikes:r,cornerRadius:n,angle:i,depth:a,extrudeBevelSize:l,extrudeBevelSegments:d}=o.parameters,s=o.shape,c=t*.5,u=A*.5,p=0,f=0,m=i*Math.PI/360/r,h=Math.PI/2*3*-1,y=c*e/100,x=u*e/100;if(r===3&&e===50){m=2*Math.PI/r;for(let v=0;v<r;v++){let b=m*v,P=p+Math.sin(b)*c,w=f+Math.cos(b)*u;s.addPoint(s.createPoint(P,w))}}else for(let v=0;v<r;v++){let b=p+Math.cos(h)*c,P=f+Math.sin(h)*u;s.addPoint(s.createPoint(b,P)),h+=m,b=p+Math.cos(h)*y,P=f+Math.sin(h)*x,v<=r,s.addPoint(s.createPoint(b,P)),h+=m}s.isClosed=!0;for(let v=0,b=s.points.length;v<b;v++)s.points[v].roundness=n;s.roundness=n,s.update();let S=Re.create({shape:s,parameters:{roundness:n,depth:a,extrudeBevelSize:l,extrudeBevelSegments:d}});return Object.assign(S,{userData:{...o,type:"StarGeometry"}})}};var rm=require("three"),om=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,depth:0},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??0)})}}static build(o){let{width:t,height:A}=o.parameters,e=new rm.PlaneGeometry(t,A);return Object.assign(e,{userData:{...o,type:"TextFrameGeometry"}})}};var nm=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},o.parameters),e=Math.abs(A.width),r=Math.abs(A.height??A.width),n=Math.round(Math.abs(A.depth??A.width*.25));return{parameters:Object.assign(A,{width:e,height:r,depth:n})}}static build(o){let{width:t,height:A,depth:e,radialSegments:r,tubularSegments:n,arc:i,cornerRadius:a,cornerSegments:l}=o.parameters,d=Mw(t,A,e,t*.5,i,n,0,0,r,a,l);return d.scale(1,A/t,1),Object.assign(d,{userData:{...o,type:"TorusGeometry"}})}};function Mw(o,t,A,e,r,n,i,a,l,d,s){return[t,A]=[A,t],i=t/2,r/=2*Math.PI,r==1&&(d=0),new Hr(!0,o,t,A,e,r,n,i,a,l,d,s)}var im=require("three"),sm=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,tubularSegments:64,radialSegments:32,p:2,q:3},o.parameters);return{parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width),depth:Math.abs(A.depth??A.width),tube:A.tube??A.width*.125})}}static build(o){let{width:t,tube:A,tubularSegments:e,radialSegments:r,p:n,q:i}=o.parameters,a=t*.5;a!==A&&(a-=A);let l=new im.TorusKnotGeometry(a,A,e,r,n,i);return Object.assign(l,{userData:{...o,type:"TorusKnotGeometry"}})}};var am=class{static create(o){return this.build(this.normalizeInputs(o))}static normalizeInputs(o,t){let A=Object.assign({},t?.parameters??{width:100,depth:0,spikes:5,cornerRadius:0,extrudeBevelSize:0,extrudeBevelSegments:1,isRect:!1},o.parameters);return{shape:o.shape&&o.shape instanceof TA?o.shape:new TA,parameters:Object.assign(A,{width:Math.abs(A.width),height:Math.abs(A.height??A.width*(A.isRect?1:Math.sqrt(3)/2)),depth:Math.abs(A.depth??0)})}}static build(o){let{width:t=100,height:A,cornerRadius:e,depth:r,extrudeBevelSize:n,extrudeBevelSegments:i,isRect:a}=o.parameters,l=o.shape,d=t*.5,s=A*.5;a?(l.addPoint(l.createPoint(-d,s)),l.addPoint(l.createPoint(d,-s)),l.addPoint(l.createPoint(-d,-s))):(l.addPoint(l.createPoint(0,s)),l.addPoint(l.createPoint(d,-s)),l.addPoint(l.createPoint(-d,-s))),l.isClosed=!0;for(let u=0,p=l.points.length;u<p;u++)l.points[u].roundness=e;l.roundness=e,l.update();let c=Re.create({shape:l,parameters:{roundness:e,depth:r,extrudeBevelSize:n,extrudeBevelSegments:i}});return Object.assign(c,{userData:{...o,type:"TriangleGeometry"}})}};var Wr=require("three"),lm=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Bw(){let o=new Wr.BufferGeometry;return o.setAttribute("position",new Wr.BufferAttribute(new Float32Array([]),3)),o.setIndex(new Wr.BufferAttribute(new Uint16Array([]),1)),o}var Dw=12,Gw=1,An=class extends Wr.BufferGeometry{constructor(A,e){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.isLowResolution=!1;this.vectorShapes=[];this.userData={parameters:A,type:"TextGeometry"};let r=e.getFont(A.font);r?.isLoaded?(this.font=r,this.update(A)):this.updateFont(A.font,e).then(()=>{this.update(A),e?.requestRender()})}async updateFont(A,e){let r=e.getFont(A);r&&(this.font=r,await r.loadingPromise)}update(A){let e=this.font;if(this.userData={parameters:A,type:"TextGeometry"},!e?.isLoaded){console.warn("Cannot update text because its font is not loaded");return}let{width:r,height:n,depth:i,extrudeBevelSize:a,extrudeBevelSegments:l,text:d,textTransform:s}=A,c=s===2?d.toUpperCase():s===3?d.toLowerCase():d,u=Rw(A,e,c),{shapes:p,charWidths:f,charCoords:m}=e.generateShapes(u,A),h=r*.5,y=n*.5,x=p.map(b=>new TA().fromShape(b));this.vectorShapes=x;let S=x.map(b=>Re.create({shape:b,parameters:{depth:i,extrudeBevelSegments:l,extrudeBevelSize:a,windingRule:i<=0?DA.NONZERO:DA.ODD,subdivisions:this.isLowResolution&&i>0?Gw:Dw}})),v=S.length?(0,lm.mergeBufferGeometries)(S):Bw();v.translate(-h,y,0),this.dispose(),this.wrappedText=u,this.charCoords=m,this.charWidths=f,this.deleteAttribute("extrudeNormal"),Object.entries(v.attributes).forEach(([b,P])=>{this.setAttribute(b,P)}),this.setIndex(v.index),this.computeBoundingSphere()}clone(){let A=lr(new Wr.BufferGeometry,An.prototype);return A.copy(this),console.log("CloneGeometry",this,A),A}copy(A){return Object.entries(A.attributes).forEach(([e,r])=>{this.setAttribute(e,r)}),this.setIndex(A.index),this.userData={parameters:{...A.userData.parameters},type:"TextGeometry"},this}async setText(A){this.font&&await this.font.loadingPromise,await this.update({...this.userData.parameters,text:A})}get text(){return this.userData.parameters.text??""}};function Rw(o,t,A){A=A??o.text;let e=[""],r="";for(let n of A)r+=n,n===" "||n===`
2
- `?(e[e.length-1]+=r,r="",n===`
3
- `&&e.push("")):t.getTextWidth(e[e.length-1]+r,o)>o.width&&(e[e.length-1].length&&e.push(""),t.getTextWidth(e[e.length-1]+r,o)>o.width&&(r.length===1?(e[e.length-1]+=r,r=""):(e[e.length-1]+=r.slice(0,-1),r=r[r.length-1],e.push(""))));return e[e.length-1]+=r,e}var GA=require("three");var Vw,en=new Promise(o=>{Vw=o});var cm=require("three");function qr(o,t,A){let e={parameters:o,type:o.type};if(o.type==="VectorGeometry"){let n=TA.createFromState(o.shape,o.width,o.height);e.shape=n}else if(o.type==="NonParametricGeometry")o.data.groups&&o.data.groups.forEach(n=>n.materialIndex=Math.max(n.materialIndex??0,0)),e.geometry=new cm.BufferGeometryLoader().parse(o);else{if(o.type==="SubdivGeometry")return new ZA(o,A);if(o.type==="TextGeometry")return new An(o,t)}let r;try{r=Ul(e)}catch(n){console.error(n)}if(!r){let n=TA.createFromState(fo.defaultData(),100,100);e.shape=n,r=Ul(e)}return r}var dm=require("three"),jw=new dm.Matrix4;function ri(o,t,A,e){let r=o.position.array,n=o.normal.array,i=jw.makeScale(t,A,e).invert().elements,a,l,d;for(var s=0,c=r.length;s<c;s+=3)r[s]*=t,r[s+1]*=A,r[s+2]*=e,a=n[s],l=n[s+1],d=n[s+2],n[s]=i[0]*a+i[4]*l+i[8]*d,n[s+1]=i[1]*a+i[5]*l+i[9]*d,n[s+2]=i[2]*a+i[6]*l+i[10]*d;o.position.needsUpdate=!0,o.normal.needsUpdate=!0}var na=new GA.Box3,tn=new GA.Vector3,cA;en.then(o=>{cA=o});var um=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),pm=new Uint32Array([0,1,2,3]),fm=new Uint8Array([4]),ZA=class extends GA.BufferGeometry{constructor(A,e){super();this.data=A;this.flatShading=e;this.subdivPointer=0;this.rebuild(),this.freeSubdivPointer()}mutateDirectlyScaleBaked(A,e){this.freeSubdivPointer();let r=this.data.scaleBaked,n=nr.div(e,r);this.subdividedGeometry&&ri(this.subdividedGeometry.attributes,...n),this.originalGeometry&&ri(this.originalGeometry.attributes,...n),this.data=A;let i=this.userData.parameters;this.userData.parameters={width:i.width*n[0],height:i.height*n[1],depth:i.depth*n[2]},this.originalGeometry.boundingSphere.center.multiply(tn.fromArray(n));let a=tn.set(i.width,i.height,i.depth).length();this.originalGeometry.boundingSphere.radius=a/2}ensureSubdivPointer(){return this.subdivPointer===0&&this.rebuild(),this.subdivPointer}rebuild(){let A,e,r;try{({originalGeometry:A,subdividedGeometry:e,subdivPointer:r}=ZA.build(this.data,void 0,!this.flatShading,void 0))}catch{A=new GA.BoxGeometry(100,100,100),r=0}this.subdivPointer=r,this.originalGeometry=A,this.subdividedGeometry=e??void 0;let n=this.subdividedGeometry??this.originalGeometry;Object.assign(this,n),this.calcBoundingBox()}freeSubdivPointer(){this.subdivPointer&&(ZA.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0)}dispose(){super.dispose(),this.freeSubdivPointer()}calcBoundingBox(){let A=this.originalGeometry;A.boundingSphere===null&&(A.boundingSphere=new GA.Sphere,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=A.boundingSphere));let e=A.attributes.position,r=A.boundingSphere.center;na.setFromBufferAttribute(e),na.getCenter(r),A.boundingSphere.radius=r.distanceTo(na.max),isNaN(A.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),na.getSize(tn);let n={width:tn.x,height:tn.y,depth:tn.z};return this.userData.parameters=n,n}static build(A,e,r,n){let i,a,l,d=A?.phongAngle??35;r===!1&&(d=-1),e&&(cA.free_bvh(e),cA.free_subdivision_surface(e));try{i=ZA.allocate(A,n)}catch(s){console.error(s,A),i=ZA.allocate({positionWASM:um,indexWASM:pm,verticesPerFaceWASM:fm},n)}if(cA.set_destination_refinement_level(i,0),a=ZA.buildLevel(i,!0,d),A.subdivisions>0)try{cA.set_destination_refinement_level(i,A.subdivisions),l=ZA.buildLevel(i,!1,d)}catch{try{cA.set_destination_refinement_level(i,A.subdivisions-1),l=ZA.buildLevel(i,!1,d)}catch{l=null}}else l=null;return{subdivPointer:i,originalGeometry:a,subdividedGeometry:l}}static primitiveToQuads(A,e,r){A.widthSegments>16&&(A.widthSegments=16),A.heightSegments>16&&(A.heightSegments=16),A.depthSegments>16&&(A.depthSegments=16),A.radialSegments>16&&(A.radialSegments=16),A.type==="DodecahedronGeometry"&&(A.detail=0);let n;if(A.type==="TorusGeometry"&&A.arc===Math.PI*2){let{width:c,height:u,depth:p,arc:f,tubularSegments:m,radialSegments:h}=A;n=new Hr(!0,c,p,u,c*.5,f/(2*Math.PI),m,p/2,0,h,0,0,!0)}else n=A.shape!==void 0?e.geometry:qr(A,r,!1);let i,a,l,d;({positions:i,triIndices:d}=ql(n.getAttribute("position"),n.getIndex()));let s;if(A.type==="CylinderGeometry"&&A.cornerRadius===0&&A.hollow===0&&A.openEnded===!1){let c=A.radialSegments*A.heightSegments*3*2,u=c+A.radialSegments*3;s=[c,u]}return{indices:a,verticesPerFace:l}=Ql(i,d,n,s),{positions:i,indices:a,verticesPerFace:l}}static allocate(A,e){let r,n,i,a=[],l=[];A.positionWASM&&A.positionWASM.length>0?(r=A.positionWASM,n=A.indexWASM,i=A.verticesPerFaceWASM):(r=um,n=pm,i=fm);let d=r.length,s=n.length,c=i.length,u=r.length+a.length+l.length,p=n.length+i.length,f=u*Float32Array.BYTES_PER_ELEMENT+p*Uint32Array.BYTES_PER_ELEMENT,m=u*Float32Array.BYTES_PER_ELEMENT,h=p*Uint32Array.BYTES_PER_ELEMENT,y=cA._malloc(f),x=new Float32Array(cA.HEAPF32.buffer,y,u),S=new Uint32Array(cA.HEAPU32.buffer,y+m,p);x.set(r,0),x.set(a,r.length),x.set(l,r.length+a.length),S.set(n,0),S.set(i,n.length);let v;A?.scaleBaked?.some(P=>P!==1)&&(v=new GA.Matrix4().makeScale(...A.scaleBaked)),e&&(v?v.premultiply(e):v=e);let b=v?cA.alloc_subdivision_surface2(y,d,y+m,s,y+m+n.length*Uint32Array.BYTES_PER_ELEMENT,c,v.elements):cA.alloc_subdivision_surface(y,d,y+m,s,y+m+n.length*Uint32Array.BYTES_PER_ELEMENT,c);return cA._free(y),b}static buildLevel(A,e,r,n,i){let a=i?cA.get_mesh_data2(A,e?cA.Level.CONTROL:cA.Level.REFINED,r,i.elements):cA.get_mesh_data(A,e?cA.Level.CONTROL:cA.Level.REFINED,r),l=8,d=cA.HEAPU32.subarray(a>>2,(a>>2)+l),s=d.subarray(4,4+4),c=0,u=cA.HEAPU32[d[c]>>2],p=cA.HEAPF32.subarray(u>>2,(u>>2)+s[c]);c++;let f=cA.HEAPU32[d[c]>>2],m=cA.HEAPF32.subarray(f>>2,(f>>2)+s[c]);c++;let h=cA.HEAPU32[d[c]>>2],y=cA.HEAPU32.subarray(h>>2,(h>>2)+s[c]);c++;let x=cA.HEAPU32[d[c]>>2],S=cA.HEAPU32.subarray(x>>2,(x>>2)+s[c]);if(c++,n===void 0){let v=new GA.BufferGeometry;if(v.setIndex(new GA.Uint32BufferAttribute(S,1)),v.setAttribute("position",new GA.Float32BufferAttribute(p,3)),v.setAttribute("normal",new GA.Float32BufferAttribute(m,3)),e){v.setAttribute("faceMap",new GA.Uint32BufferAttribute(y,1));let b=new Float32Array(m.length/3*4).fill(0);v.setAttribute("color",new GA.BufferAttribute(b,4))}return cA.free_mesh_data(a),v.userData.type="SubdivGeometry",v}n.getAttribute("position").copyArray(p),n.getAttribute("normal").copyArray(m),n.attributes.position.needsUpdate=!0,n.attributes.normal.needsUpdate=!0,cA.free_mesh_data(a)}static freeSubdivPointer(A){cA.free_bvh(A),cA.free_subdivision_surface(A)}static buildControlCageWireframe(A,e,r){let n=cA.get_wireframe_data_for_base_level(A),i=4,a=cA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(2,2+2),d=0,s=cA.HEAPU32[a[d]>>2],c=cA.HEAPF32.subarray(s>>2,(s>>2)+l[d]);d++;let u=cA.HEAPU32[a[d]>>2],p=cA.HEAPU32.subarray(u>>2,(u>>2)+l[d]);if(e===void 0){let f=new GA.BufferGeometry;f.setAttribute("position",new GA.Float32BufferAttribute(c,3));let m=new Float32Array(c.length);for(let h=0,y=c.length;h<y;)m[h++]=r.r,m[h++]=r.g,m[h++]=r.b;return f.setAttribute("color",new GA.BufferAttribute(m,3)),f.setIndex(new GA.Uint32BufferAttribute(p,1)),cA.free_wireframe_data_for_base_level(n),f}e.getAttribute("position").copyArray(c),e.attributes.position.needsUpdate=!0,cA.free_wireframe_data_for_base_level(n)}static updateCollabMesh(A,e,r){let n=e===0;n||cA.set_destination_refinement_level(A,e);let i=r?cA.get_topological_data2(A,n?cA.Level.CONTROL:cA.Level.REFINED,r.elements):cA.get_topological_data(A,n?cA.Level.CONTROL:cA.Level.REFINED),a=6,l=cA.HEAPU32.subarray(i>>2,(i>>2)+a),d=l.subarray(3,3+3),s=0,c=cA.HEAPU32[l[s]>>2],u=new Float32Array(cA.HEAPF32.subarray(c>>2,(c>>2)+d[s]));s++;let p=cA.HEAPU32[l[s]>>2],f=new Uint32Array(cA.HEAPU32.subarray(p>>2,(p>>2)+d[s]));s++;let m=cA.HEAPU32[l[s]>>2],h=new Uint8Array(cA.HEAPU32.subarray(m>>2,(m>>2)+d[s]));return cA.free_topological_data(i),{positions:u,indices:f,verticesPerFace:h}}};var mm=["getX","getY","getZ"];function ql(o,t){let A={},e=t?t.count:o.count,r=0,n=[],i=[],a=1e4;for(let d=0;d<e;d++){let s=t?t.getX(d):d,c="";for(let u=0;u<3;u++)c+=`${~~(o[mm[u]](s)*a)},`;if(c in A)n.push(A[c]);else{for(let u=0;u<3;u++)i.push(o[mm[u]](s));A[c]=r,n.push(r),r++}}let l=[];for(let d=0;d<n.length;d+=3)n[d]===n[d+1]||n[d]===n[d+2]||n[d+1]===n[d+2]||l.push(n[d],n[d+1],n[d+2]);return{positions:i,triIndices:l}}var ia=new GA.Vector3,kl=new GA.Vector3,Hl=new GA.Vector3,Wl=new GA.Vector3;function Ql(o,t,A,e){let r=[],n=[];if(A.userData.shape!==void 0&&A.userData.parameters.depth===0&&A.userData.shape.shapeHoles.length===0){let i=A.userData.shape.extractShapePointsToFlatArray([]),a=A.userData.parameters.spikes;if(A.userData.type==="EllipseGeometry"&&a<=24&&a%4===0&&A.userData.parameters.angle>=360){let s=i.length/2/a;i=i.filter((c,u)=>Math.floor(u/2)%s===0)}let l=0;for(let s=0;s<i.length;s+=2)l+=(i[s]-i[(s===0?i.length:s)-2])*(i[s+1]+i[(s===0?i.length:s)-1]);o.length=0;let d=0;if(l<0)for(let s=0;s<i.length;s+=2)o.push(i[s],i[s+1],0),r.push(d++);else for(let s=i.length-2;s>=0;s-=2)o.push(i[s],i[s+1],0),r.push(d++);return n.push(d),{indices:r,verticesPerFace:n}}for(let i=0,a=A.capStartIndex??t.length;i<a;)if(t[i+1]===t[i+3]&&t[i+2]===t[i+5]||t[i+0]===t[i+3]&&t[i+2]===t[i+4]){ia.set(o[t[i]*3],o[t[i]*3+1],o[t[i]*3+2]),kl.set(o[t[i+1]*3],o[t[i+1]*3+1],o[t[i+1]*3+2]),Hl.set(o[t[i+4]*3],o[t[i+4]*3+1],o[t[i+4]*3+2]),Wl.set(o[t[i+5]*3],o[t[i+5]*3+1],o[t[i+5]*3+2]),kl.sub(ia).normalize(),Hl.sub(ia).normalize(),Wl.sub(ia).normalize();let l=kl.cross(Hl).dot(Wl);Math.abs(l)>.005||e&&e.some((d,s)=>s%2===1?!1:i>=e[s]&&i<e[s+1])?(r.push(t[i],t[i+1],t[i+2]),n.push(3),i+=3):(r.push(t[i],t[i+1],t[i+4],t[i+5]),n.push(4),i+=6)}else r.push(t[i],t[i+1],t[i+2]),n.push(3),i+=3;if(A.capStartIndex!==void 0){let i=[],a=[],l=0,d=new Float32Array([A.userData.parameters.depth])[0];for(let s=0,c=0;s<o.length;s+=3,c++)o[s+2]===0&&(i.push(c),l++),o[s+2]===d&&a.push(c);if(A.userData.parameters.extrudeBevelSize===0){let s=a[0];a[0]=a[1],a[1]=s}i.reverse(),r.push(...i,...a),n.push(l,l)}return{indices:r,verticesPerFace:n}}var dt={};Lc(dt,{calcBoolean:()=>kw,calcBooleanTopological:()=>Uw,freeMeshSet:()=>qw,getMeshSet:()=>Hw,transformMeshSet:()=>Ww});var Fw,hm=new Promise(o=>{Fw=o});var oi=require("three");var xA,rn;hm.then(o=>xA=o);function zw(o,t,A){let e,{positions:r,triIndices:n}=ql(o.getAttribute("position"),o.getIndex()),i;if(t&&A){let{indices:a,verticesPerFace:l}=Ql(r,n,o);i=l.length,e=[];for(let d=0,s=0;d<i;d++){e.push(l[d]);for(let c=0;c<l[d];c++)e.push(a[s++])}}else{let a=n.length;e=Array(a+a/3),i=0;for(let l=0,d=0;d<e.length;)e[d++]=3,i++,e[d++]=n[l++],e[d++]=n[l++],e[d++]=n[l++]}return{positions:r,faceIndices:e,nFaces:i}}function ym(o){let t=o.length,A=t*Uint32Array.BYTES_PER_ELEMENT,e=t*Float32Array.BYTES_PER_ELEMENT,r=Number.isInteger(o[0])?A:e,n=xA._malloc(r);return(Number.isInteger(o[0])?new Uint32Array(xA.HEAPU32.buffer,n,t):new Float32Array(xA.HEAPF32.buffer,n,t)).set(o,0),n}function gm(o){switch(o){case 0:return xA.OP.UNION;case 1:return xA.OP.INTERSECTION;case 2:return xA.OP.A_MINUS_B;case 3:return xA.OP.B_MINUS_A;case 4:return xA.OP.SYMMETRIC_DIFFERENCE;case 5:return xA.OP.ALL;default:throw new Error("Unknown boolean operation "+o)}}function Uw(o,t){rn===void 0&&(rn=xA.init_csg());let A=ym(o),e=xA.csg_calc_topological(rn,A,o.length,gm(t));xA._free(A);let r=6,n=xA.HEAPU32.subarray(e>>2,(e>>2)+r),i=n.subarray(3,3+3),a=0,l=xA.HEAPU32[n[a]>>2],d=new Float32Array(xA.HEAPF32.subarray(l>>2,(l>>2)+i[a]));a++;let s=xA.HEAPU32[n[a]>>2],c=new Uint32Array(xA.HEAPU32.subarray(s>>2,(s>>2)+i[a]));a++;let u=xA.HEAPU32[n[a]>>2],p=new Uint8Array(xA.HEAPU32.subarray(u>>2,(u>>2)+i[a]));return xA.free_mesh_data(e),{positions:d,indices:c,verticesPerFace:p}}function kw(o,t,A,e){rn===void 0&&(rn=xA.init_csg());let r=ym(o),n=xA.csg_calc(rn,r,o.length,e,gm(t));xA._free(r);let i=5,a=xA.HEAPU32.subarray(n>>2,(n>>2)+i),l=a.subarray(2,2+3),d=0,s=xA.HEAPU32[a[d]>>2],c=xA.HEAPF32.subarray(s>>2,(s>>2)+l[d]);d++;let u=xA.HEAPU32[a[d]>>2],p=xA.HEAPF32.subarray(u>>2,(u>>2)+l[d]);d++;let f=l[d];A.setAttribute("position",new oi.Float32BufferAttribute(c,3)),A.setAttribute("normal",new oi.Float32BufferAttribute(p,3));let m=xA.HEAPF32.subarray((n>>2)+5,(n>>2)+5+6);return A.boundingSphere===null&&(A.boundingSphere=new oi.Sphere),A.boundingSphere.center.set(m[0],m[1],m[2]),A.boundingSphere.radius=(m[3]**2+m[4]**2+m[5]**2)**.5,A.userData.parameters={width:m[3]*2,height:m[4]*2,depth:m[5]*2},xA.free_mesh_data(n),f}function Hw(o,t,A){if(xA===void 0)return-1;let e,r,n;if(t&&o.userData.positions!==void 0){let h=o.userData;n=h.verticesPerFace.length,e=h.positions,r=Array(h.verticesPerFace.reduce((y,x)=>y+x,0)+n);for(let y=0,x=0,S=0;y<h.verticesPerFace.length;y++){r[S++]=h.verticesPerFace[y];for(let v=0;v<h.verticesPerFace[y];v++)r[S++]=h.indices[x++]}}else({positions:e,faceIndices:r,nFaces:n}=zw(o,t,A));let i=e.length,a=r.length,l=e.length,d=r.length,s=l*Float32Array.BYTES_PER_ELEMENT+d*Uint32Array.BYTES_PER_ELEMENT,c=l*Float32Array.BYTES_PER_ELEMENT,u=d*Uint32Array.BYTES_PER_ELEMENT,p=xA._malloc(s),f=new Float32Array(xA.HEAPF32.buffer,p,l),m=new Uint32Array(xA.HEAPU32.buffer,p+c,d);return f.set(e,0),m.set(r,0),xA.get_csg_mesh(p,i,p+c,a,n)}function Ww(o,t){xA.transform_csg_mesh(o,t.elements)}function qw(o){xA.free_csg_mesh(o)}var Qw={ConeGeometry:ff,CubeGeometry:mf,CylinderGeometry:uf,DodecahedronGeometry:yf,EllipseGeometry:Ff,HelixGeometry:Hf,IcosahedronGeometry:qf,LatheGeometry:Qf,NonParametricGeometry:Yf,PolygonGeometry:Xf,PyramidGeometry:Kf,RectangleGeometry:Zf,SphereGeometry:_f,PlaneGeometry:Am,BackdropGeometry:em,StarGeometry:tm,TextFrameGeometry:om,TorusGeometry:nm,TorusKnotGeometry:sm,TriangleGeometry:am,VectorGeometry:Re},Ul=o=>Qw[o.type].create(o);function ni(o){return o!==null&&"booleanOp"in o}var on=class extends Ks(sa.Mesh){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new sa.Matrix4}updateVisible(){super.updateVisible(),this.visible=!ni(this.parent)&&this.visible,ni(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(dt.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(A=!1){return A?this.booleanWasTransformed=!0:this.freeBooleanPointer(),ni(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let A of this.children)A instanceof on&&(A.freeBooleanPointer(),ni(A)&&A.invalidateUpstreamBooleanData())}updateTransformState(A){let e=super.updateTransformState(A);return e&&ni(this.parent)&&this.invalidateDownstreamBooleanData(!0),e}};var aa=new nn.Box3;function Yl(o,t=0,A=o.count,e,r){let n=1/0,i=1/0,a=1/0,l=-1/0,d=-1/0,s=-1/0;for(let c=t;c<A;c++){let u=o.getX(c),p=o.getY(c),f=o.getZ(c);u<n&&(n=u),p<i&&(i=p),f<a&&(a=f),u>l&&(l=u),p>d&&(d=p),f>s&&(s=f)}aa.min.set(n,i,a),aa.max.set(l,d,s),aa.getCenter(e),aa.getSize(r).multiplyScalar(.5)}var Yw=new nn.BufferGeometry,Xw=new nn.MeshBasicMaterial,me=class extends on{constructor(t,A){super(Yw,Xw),this.super_Entity(t,A)}updateState(t,A){this.updateState_Entity(t,A)}updateEntityBoxSize(t,A){let e=this.geometry.getAttribute("position");e!==void 0?Yl(e,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:e.count,t,A):super.updateEntityBoxSize(t,A)}};var Jt=require("three");var Ye=require("three");var Gm=require("three");var pt=require("three");var ii=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 xm=require("three"),ce=class{constructor(t){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=xm.MathUtils.generateUUID(),this.type=t,this.name=""}analyze(t,A){A=A??{},t.analyzing=!0,this.build(t.addFlow(A.slot,A.cache,A.context),"v4"),t.clearVertexNodeCode(),t.clearFragmentNodeCode(),t.removeFlow(),t.analyzing=!1}analyzeAndFlow(t,A,e){return e=e??{},this.analyze(t,e),this.flow(t,A,e)}flow(t,A,e){e=e??{},t.addFlow(e.slot,e.cache,e.context);let r={result:this.build(t,A),code:t.clearNodeCode(),extra:t.context.extra};return t.removeFlow(),r}build(t,A,e){A=A??this.getType(t,A);let r=t.getNodeData(e??this);return t.analyzing&&this.appendDepsNode(t,r,A),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,A,e)}updateFrame(t){}generateReadonly(t,A,e,r,n,i){return""}generate(t,A,e,r,n){return""}parse(t,A,e,r){}appendDepsNode(t,A,e){A.deps=(A.deps||0)+1;let r=t.getTypeLength(e);(r>(A.outputMax||0)||this.getType(t,e))&&(A.outputMax=r,A.output=e)}setName(t){this.name=t}getName(){return this.name}getType(t,A){return A==="sampler2D"||A==="samplerCube"?A:this.type}getHash(){let t="{",A,e;for(A in this)e=this[A],e instanceof ce&&(t+='"'+A+'":'+e.getHash()+",");if(this.hashProperties)for(let r=0;r<this.hashProperties.length;r++)A=this.hashProperties[r],e=this[A],t+='"'+A+'":"'+String(e)+'",';return t+='"id":"'+this.uuid+'"}',t}};var Xl=class{constructor(){this.nodes={};this.keywords={}}add(t){this.nodes[t.name]=t}addKeyword(t,A,e){e=e!==void 0?e:!0,this.keywords[t]={callback:A,cache:e}}remove(t){delete this.nodes[t.name]}removeKeyword(t){delete this.keywords[t]}get(t){return this.nodes[t]}getKeyword(t,A){return this.keywords[t].callback(A)}getKeywordData(t){return this.keywords[t]}contains(t){return this.nodes[t]!==void 0}containsKeyword(t){return this.keywords[t]!==void 0}},oe=new Xl;var Kl=require("three");var vm=require("three"),lA=class extends ce{constructor(A,e){super(A);this.scope="";e=e??{},this.shared=e.shared!==void 0?e.shared:!0,this.unique=e.unique!==void 0?e.unique:!1}build(A,e,r,n){if(e=e??this.getType(A),this.getShared(A,e)){let i=this.getUnique(A,e);i&&this.uuid===void 0&&(this.uuid=vm.MathUtils.generateUUID()),r=A.getUUID(r??this.getUUID(),!i);let a=A.getNodeData(r),l=a.output||this.getType(A);if(A.analyzing)return(a.deps||0)>0||this.getLabel()?(this.appendDepsNode(A,a,e),this.generate(A,e,r)):super.build(A,e,r);if(i)return a.name=a.name||super.build(A,e,r),a.name;if(!this.getLabel()&&(!this.getShared(A,l)||A.context.ignoreCache||a.deps===1))return super.build(A,e,r);r=this.getUUID(!1);let d=this.getTemp(A,r);if(d)return A.format(d,l,e);{d=super.generate(A,e,r,a.output,n);let s=this.generate(A,l,r);return A.addNodeCode(d+" = "+s+";"),A.format(d,l,e)}}return super.build(A,e,r)}getShared(A,e){return e!=="sampler2D"&&e!=="samplerCube"&&this.shared}getUnique(A,e){return this.unique}setLabel(A){return this.label=A,this}getLabel(){return this.label}getUUID(A){let e=this.uuid;return typeof this.scope=="string"&&(e=this.scope+"-"+e),e}getTemp(A,e){e=e||this.uuid;let r=A.getVars()[e];return r?r.name:void 0}generate(A,e,r,n,i){return this.getShared(A,e)||console.error("TempNode is not shared"),r=r??this.uuid,A.getTempVar(r,n??this.getType(A),i,this.getLabel()).name}};var RA=class extends lA{constructor(A,e){e=e??{},e.shared=e.shared!==void 0?e.shared:!1;super(A,e);this.readonly=!1}setReadonly(A){return this.readonly=A,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(A,e,r,n,i,a){r=A.getUUID(r??this.getUUID()),n=n??this.getType(A);let l=A.getNodeData(r);return this.getReadonly()&&this.generateReadonly!==void 0?this.generateReadonly(A,e,r,n,i,a):A.isShader("vertex")?(l.vertex||(l.vertex=A.createVertexUniform(n,this,i,a,this.getLabel())),A.format(l.vertex.name,n,e)):(l.fragment||(l.fragment=A.createFragmentUniform(n,this,i,a,this.getLabel())),A.format(l.fragment.name,n,e))}};var de=class extends RA{constructor(A=0,e){super("v2");this.nodeType="Vector2";this.value=A instanceof Kl.Vector2?A:new Kl.Vector2(A,e)}get x(){return this.value.x}set x(A){this.value.x=A}get y(){return this.value.y}set y(A){this.value.y=A}generateReadonly(A,e,r,n,i,a){return A.format("vec2("+this.value.x+", "+this.value.y+")",n,e)}};var Zl=require("three");var he=class extends RA{constructor(A=0,e,r){super("v3");this.nodeType="Vector3";this.value=A instanceof Zl.Vector3?A:new Zl.Vector3(A,e,r)}get x(){return this.value.x}set x(A){this.value.x=A}get y(){return this.value.y}set y(A){this.value.y=A}get z(){return this.value.z}set z(A){this.value.z=A}generateReadonly(A,e,r,n,i,a){return A.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",n,e)}};var bm=require("three"),ne=class extends bm.Color{constructor(A,e,r,n){super(A,e,r);this.isColorA=!0;this.a=n}setRGBA(A,e,r,n){super.setRGB(A,e,r),this.a=n}copy(A){return super.copy(A),this.a="a"in A?A.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(A){this.r=A}set y(A){this.g=A}set z(A){this.b=A}set w(A){this.a=A}};var _e=class extends RA{constructor(A){super("v4");this.nodeType="Vector4";this.value=A instanceof ne?A:new ne(A.r,A.g,A.b,A.a)}generateReadonly(A,e,r,n,i,a){return A.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",n,e)}};var Kw=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Sm=/[a-z_0-9]+/gi,K=class extends lA{constructor(A,e,r,n,i){super(i);this.src="";this.nodeType="Function";this.useKeywords=!0;this.includes=[];this.extensions={};this.keywords={};this.isMethod=i===void 0,this.isInterface=!1,this.parse(A,e,r,n)}getShared(A,e){return!this.isMethod}getType(A){return A.getTypeByFormat(this.type)}getInputByName(A){if(this.inputs){let e=this.inputs.length;for(;e--;)if(this.inputs[e].name===A)return this.inputs[e]}}getIncludeByName(A){if(this.includes){let e=this.includes.length;for(;e--;)if(this.includes[e].name===A)return this.includes[e]}}generate(A,e,r,n,i){let a,l=0,d=this.src;if(this.includes)for(let c=0;c<this.includes.length;c++)A.include(this.includes[c],this);for(let c in this.extensions)A.extensions[c]=!0;let s=[];for(;a=Sm.exec(this.src);)s.push(a);for(let c=0;c<s.length;c++){let u=s[c],p=u[0],f=this.isMethod?!this.getInputByName(p):!0,m=p;if(this.keywords[p]||this.useKeywords&&f&&oe.containsKeyword(p)){let h=this.keywords[p];if(!h){let y=oe.getKeywordData(p);y.cache&&(h=A.keywords[p]),h=h||oe.getKeyword(p,A),y.cache&&(A.keywords[p]=h)}m=h.build(A)}p!==m&&d[u.index+l-1]!=="."&&(d=d.substring(0,u.index+l)+m+d.substring(u.index+p.length+l),l+=m.length-p.length),this.getIncludeByName(m)===void 0&&oe.contains(m)&&A.include(oe.get(m))}return e==="source"?d:this.isMethod?(this.isInterface||A.include(this,void 0,d),this.name):A.format("( "+d+" )",this.getType(A),e)}parse(A,e,r,n){if(this.src=A||"",this.includes=e??[],this.extensions=r??{},this.keywords=n??{},this.isMethod){let i=Kw.exec(this.src);if(this.inputs=[],i&&i.length==4){this.type=i[1],this.name=i[2];let a=i[3].match(Sm);if(a){let l=0;for(;l<a.length;){let d=a[l++],s;d==="in"||d==="out"||d==="inout"?s=a[l++]:(s=d,d="");let c=a[l++];this.inputs.push({name:c,type:s,qualifier:d})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var Zw=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Jl=class extends lA{constructor(A="",e){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(A||Jl.PI,void 0,void 0,void 0,e)}getType(A){return A.getTypeByFormat(this.type)}parse(A,e,r,n,i){this.src=A||"";let a,l,d="",s=Zw.exec(A);this.useDefine=i??this.src.charAt(0)==="#",s&&s.length>1?(l=s[1],a=s[2],d=s[3]):(a=this.src,l="f"),this.name=a,this.type=l,this.value=d}build(A,e){if(e==="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 A.include(this),A.format(this.name,this.getType(A),e)}generate(A,e,r,n,i){return A.format(this.name,this.getType(A),e)}},SA=Jl;SA.PI="PI",SA.PI2="PI2",SA.RECIPROCAL_PI="RECIPROCAL_PI",SA.RECIPROCAL_PI2="RECIPROCAL_PI2",SA.LOG2="LOG2",SA.EPSILON="EPSILON";var Jw=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
4
- )*?)}`,"gim"),_w=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),sn=class extends lA{constructor(A=""){super();this.inputs=[];this.src="";this.nodeType="Struct";this.parse(A)}getType(A){return A.getTypeByFormat(this.name)}getInputByName(A){let e=this.inputs.length;for(;e--;)if(this.inputs[e].name===A)return this.inputs[e]}generate(A,e,r,n,i){return e==="source"?this.src+";":A.format("( "+this.src+" )",this.getType(A),e)}parse(A=""){this.src=A,this.inputs=[];let e=Jw.exec(A);if(e){let r=e[2],n;for(;n=_w.exec(r);)this.inputs.push({type:n[1],name:n[2]});this.name=e[1]}else this.name="";this.type=this.name}};var an=class extends lA{constructor(A){super("v2",{shared:!1});this.nodeType="UV";this.index=A??0}generate(A,e){A.requires.uv[this.index]=!0;let r=this.index>0?this.index+1:"",n=A.isShader("vertex")?"uv"+r:"vUv"+r;return A.format(n,this.getType(A),e)}};oe.addKeyword("uv",function(){return new an});oe.addKeyword("uv2",function(){return new an(1)});var la=require("three");var Qr=class extends lA{constructor(A,e){super("v4");this.nodeType="ColorSpace";this.input=A,this.method=e??Qr.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(A){switch(A){case la.LinearEncoding:return["Linear"];case la.sRGBEncoding:return["sRGB"];default:return[]}}generate(A,e){let r=this.input.build(A,"v4"),n=this.getType(A),i=Qr.Nodes[this.method],a=A.include(i);if(a===Qr.LINEAR_TO_LINEAR)return A.format(r,n,e);if(i.inputs?.length===2){let l=this.factor.build(A,"f");return A.format(a+"( "+r+", "+l+" )",n,e)}else return A.format(a+"( "+r+" )",n,e)}fromEncoding(A){let e=Qr.getEncodingComponents(A);this.method="LinearTo"+e[0],this.factor=e[1]}fromDecoding(A){let e=Qr.getEncodingComponents(A);this.method=e[0]+"ToLinear",this.factor=e[1]}},Oe=Qr;Oe.Nodes={LinearToLinear:new K(["vec4 LinearToLinear( in vec4 value ) {"," return value;","}"].join(`
5
- `)),sRGBToLinear:new K(["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 K(["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
- `))},Oe.LINEAR_TO_LINEAR="LinearToLinear",Oe.SRGB_TO_LINEAR="sRGBToLinear",Oe.LINEAR_TO_SRGB="LinearTosRGB";var NA=class extends K{constructor(A="",e,r,n,i){super(A,i,n,r,e);this.nodeType="Expression"}};var wm=require("three"),Ve=class extends RA{constructor(A=new wm.Texture,e,r,n){super("v4",{shared:!0});this.nodeType="Texture";this.value=A,this.uv=e??new an,this.bias=r,this.project=n!==void 0?n:!1}getTexture(A,e){return super.generate(A,e,this.value.uuid,"t")}generate(A,e){if(e==="sampler2D")return this.getTexture(A,e);let r=this.getTexture(A,e),n=this.uv.build(A,this.project?"v4":"v2"),i=this.bias?this.bias.build(A,"f"):void 0;i===void 0&&A.context.bias&&(i=A.context.bias.setTexture(this).build(A,"f"));let a,l;this.project?a="texture2DProj":a=i?"tex2DBias":"tex2D",i?l=a+"( "+r+", "+n+", "+i+" )":l=a+"( "+r+", "+n+" )";let d={include:A.isShader("vertex"),ignoreCache:!0},s=this.getType(A);return A.addContext(d),this.colorSpace=this.colorSpace??new Oe(new NA("",s)),this.colorSpace.fromDecoding(A.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(l),l=this.colorSpace.build(A,s),A.removeContext(),A.format(l,s,e)}};var _=class extends RA{constructor(A){super("f");this.nodeType="Float";this.value=A??0}generateReadonly(A,e,r,n,i,a){return A.format(this.value+(this.value%1?"":".0"),n,e)}};var si=class extends lA{constructor(A,e){super();this.inputs=[];this.nodeType="FunctionCall";this.value=A,this.inputs=e??[]}getFunction(){return this.value}getType(A){return this.value.getType(A)}generate(A,e,r,n,i){n=this.getType(A);let a=this.value,l=a.build(A,e)+"( ",d=[];if(a.inputs){for(let s=0;s<a.inputs.length;s++){let c=a.inputs[s],u=this.inputs[s]||this.inputs[c.name];d.push(u.build(A,A.getTypeByFormat(c.type)))}l+=d.join(", ")+" )"}return A.format(l,n,e)}};var _l=class extends lA{constructor(A,e,r=_l.ADD){super();this.nodeType="Operator";this.type=A.type,this.a=A,this.b=e,this.op=r}getType(A){let e=this.a.getType(A),r=this.b.getType(A);return A.isTypeMatrix(e)?"v4":A.getTypeLength(r)>A.getTypeLength(e)?r:e}generate(A,e){let r=this.getType(A);this.type=r;let n=this.a.build(A,r),i=this.b.build(A,r);return A.format("( "+n+" "+this.op+" "+i+" )",r,e)}},je=_l;je.ADD="+",je.SUB="-",je.MUL="*",je.DIV="/";var EA=class extends lA{constructor(A,e=EA.ABS,r,n){super();this.nodeType="Math";this.a=A,typeof e!="string"?this.b=e:n=e,typeof r!="string"?this.c=r:n=r,this.method=n,this.hashProperties=["method"]}getNumInputs(A){switch(this.method){case EA.MIX:case EA.CLAMP:case EA.REFRACT:case EA.SMOOTHSTEP:case EA.FACEFORWARD:return 3;case EA.MIN:case EA.MAX:case EA.MOD:case EA.STEP:case EA.REFLECT:case EA.DISTANCE:case EA.DOT:case EA.CROSS:case EA.POW:return 2;default:return 1}}getInputType(A){let e=A.getTypeLength(this.a.getType(A)),r=this.b?A.getTypeLength(this.b.getType(A)):0,n=this.c?A.getTypeLength(this.c.getType(A)):0;return e>r&&e>n?this.a.getType(A):r>n?this.b.getType(A):this.c.getType(A)}getType(A){switch(this.method){case EA.LENGTH:case EA.DISTANCE:case EA.DOT:return"f";case EA.CROSS:return"v3"}return this.getInputType(A)}generate(A,e){let r,n,i,a=this.a?A.getTypeLength(this.a.getType(A)):0,l=this.b?A.getTypeLength(this.b.getType(A)):0,d=this.c?A.getTypeLength(this.c.getType(A)):0,s=this.getInputType(A),c=this.getType(A);switch(this.type=c,this.method){case EA.NEGATE:return A.format("( -"+this.a.build(A,s)+" )",s,e);case EA.INVERT:return A.format("( 1.0 - "+this.a.build(A,s)+" )",s,e);case EA.CROSS:r=this.a.build(A,"v3"),n=this.b.build(A,"v3");break;case EA.STEP:r=this.a.build(A,a===1?"f":s),n=this.b.build(A,s);break;case EA.MIN:case EA.MAX:case EA.MOD:r=this.a.build(A,s),n=this.b.build(A,l===1?"f":s);break;case EA.REFRACT:r=this.a.build(A,s),n=this.b.build(A,s),i=this.c.build(A,"f");break;case EA.MIX:r=this.a.build(A,s),n=this.b.build(A,s),i=this.c.build(A,d===1?"f":s);break;default:r=this.a.build(A,s),this.b&&(n=this.b.build(A,s)),this.c&&(i=this.c.build(A,s));break}let u=[];u.push(r),n&&u.push(n),i&&u.push(i);let p=this.getNumInputs(A);if(u.length!==p)throw Error(`Arguments not match used in "${this.method}". Require ${p}, currently ${u.length}.`);return A.format(this.method+"( "+u.join(", ")+" )",c,e)}},pA=EA;pA.RAD="radians",pA.DEG="degrees",pA.EXP="exp",pA.EXP2="exp2",pA.LOG="log",pA.LOG2="log2",pA.SQRT="sqrt",pA.INV_SQRT="inversesqrt",pA.FLOOR="floor",pA.CEIL="ceil",pA.NORMALIZE="normalize",pA.FRACT="fract",pA.SATURATE="saturate",pA.SIN="sin",pA.COS="cos",pA.TAN="tan",pA.ASIN="asin",pA.ACOS="acos",pA.ARCTAN="atan",pA.ABS="abs",pA.SIGN="sign",pA.LENGTH="length",pA.NEGATE="negate",pA.INVERT="invert",pA.MIN="min",pA.MAX="max",pA.MOD="mod",pA.STEP="step",pA.REFLECT="reflect",pA.DISTANCE="distance",pA.DOT="dot",pA.CROSS="cross",pA.POW="pow",pA.MIX="mix",pA.CLAMP="clamp",pA.REFRACT="refract",pA.SMOOTHSTEP="smoothstep",pA.FACEFORWARD="faceforward";var ln=class extends lA{constructor(A,e,r){super("v4");this.nodeType="TextureCubeUV";this.value=A,this.uv=e,this.bias=r}bilinearCubeUV(A,e,r,n){let i=new si(ln.Nodes.bilinearCubeUV,[e,r,n]);this.colorSpaceTL=this.colorSpaceTL??new Oe(new NA("","v4")),this.colorSpaceTL.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(i.build(A)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new Oe(new NA("","v4")),this.colorSpaceTR.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(i.build(A)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new Oe(new NA("","v4")),this.colorSpaceBL.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(i.build(A)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new Oe(new NA("","v4")),this.colorSpaceBR.fromDecoding(A.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBR.input.parse(i.build(A)+".br");let a={include:A.isShader("vertex"),ignoreCache:!0};A.addContext(a),this.colorSpaceTLExp=new NA(this.colorSpaceTL.build(A,"v4"),"v4"),this.colorSpaceTRExp=new NA(this.colorSpaceTR.build(A,"v4"),"v4"),this.colorSpaceBLExp=new NA(this.colorSpaceBL.build(A,"v4"),"v4"),this.colorSpaceBRExp=new NA(this.colorSpaceBR.build(A,"v4"),"v4"),A.removeContext();let l=new NA("mix( mix( cubeUV_TL, cubeUV_TR, cubeUV.f.x ), mix( cubeUV_BL, cubeUV_BR, cubeUV.f.x ), cubeUV.f.y )","v4");return l.keywords.cubeUV_TL=this.colorSpaceTLExp,l.keywords.cubeUV_TR=this.colorSpaceTRExp,l.keywords.cubeUV_BL=this.colorSpaceBLExp,l.keywords.cubeUV_BR=this.colorSpaceBRExp,l.keywords.cubeUV=i,l}generate(A,e){if(A.isShader("fragment")){let r=this.uv,n=this.bias||A.context.roughness,i=new si(ln.Nodes.roughnessToMip,[n]),a=new pA(i,ln.Nodes.m0,ln.Nodes.cubeUV_maxMipLevel,pA.CLAMP),l=new pA(a,pA.FLOOR),d=new pA(a,pA.FRACT),s=this.bilinearCubeUV(A,this.value,r,l),c=this.bilinearCubeUV(A,this.value,r,new je(l,new _(1).setReadonly(!0),je.ADD)),u=new pA(s,c,d,pA.MIX);return A.format(u.build(A),"v4",e)}else return console.warn("TextureCubeUVNode is not compatible with "+A.shader+" shader."),A.format("vec4( 0.0 )",this.getType(A),e)}},cn=ln;cn.Nodes=function(){let A=new sn(`struct TextureCubeUVData {
1
+ "use strict";var Xy=Object.create;var Ws=Object.defineProperty;var Ky=Object.getOwnPropertyDescriptor;var Zy=Object.getOwnPropertyNames;var Qy=Object.getPrototypeOf,Jy=Object.prototype.hasOwnProperty;var Hl=(n,r)=>()=>(r||n((r={exports:{}}).exports,r),r.exports),Nd=(n,r)=>{for(var e in r)Ws(n,e,{get:r[e],enumerable:!0})},Ed=(n,r,e,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of Zy(r))!Jy.call(n,o)&&o!==e&&Ws(n,o,{get:()=>r[o],enumerable:!(t=Ky(r,o))||t.enumerable});return n};var qs=(n,r,e)=>(e=n!=null?Xy(Qy(n)):{},Ed(r||!n||!n.__esModule?Ws(e,"default",{value:n,enumerable:!0}):e,n)),eg=n=>Ed(Ws({},"__esModule",{value:!0}),n);var Jf=Hl((vc,Qf)=>{(function(n,r){typeof vc=="object"?Qf.exports=r():typeof define=="function"&&define.amd?define(r):n.Alea=r()})(vc,function(){"use strict";return n.importState=function(e){var t=new n;return t.importState(e),t},n;function n(){return function(e){var t=0,o=0,i=0,s=1;e.length==0&&(e=[+new Date]);var l=r();t=l(" "),o=l(" "),i=l(" ");for(var c=0;c<e.length;c++)t-=l(e[c]),t<0&&(t+=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*t+s*23283064365386963e-26;return t=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[t,o,i,s]},u.importState=function(a){t=+a[0]||0,o=+a[1]||0,i=+a[2]||0,s=+a[3]||0},u}(Array.prototype.slice.call(arguments))}function r(){var e=4022871197,t=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 t.version="Mash 0.9",t}})});var im=Hl((Ya,nm)=>{(function(n,r){typeof Ya=="object"&&typeof nm<"u"?r(Ya):typeof define=="function"&&define.amd?define(["exports"],r):r((n=typeof globalThis<"u"?globalThis:n||self).SVDJS={})})(Ya,function(n){"use strict";n.SVD=function(r,e,t,o,i){if(e=e===void 0||e,t=t===void 0||t,i=1e-64/(o=o||Math.pow(2,-52)),!r)throw new TypeError("Matrix a is not defined");var s,l,c,u,a,d,p,f,m,h,y,g,v=r[0].length,w=r.length;if(w<v)throw new TypeError("Invalid matrix: m < n");for(var b=[],S=[],A=[],_=e==="f"?w:v,x=h=p=0;x<w;x++)S[x]=new Array(_).fill(0);for(x=0;x<v;x++)A[x]=new Array(v).fill(0);var P,O=new Array(v).fill(0);for(x=0;x<w;x++)for(s=0;s<v;s++)S[x][s]=r[x][s];for(x=0;x<v;x++){for(b[x]=p,m=0,c=x+1,s=x;s<w;s++)m+=Math.pow(S[s][x],2);if(m<i)p=0;else for(f=(d=S[x][x])*(p=d<0?Math.sqrt(m):-Math.sqrt(m))-m,S[x][x]=d-p,s=c;s<v;s++){for(m=0,l=x;l<w;l++)m+=S[l][x]*S[l][s];for(d=m/f,l=x;l<w;l++)S[l][s]=S[l][s]+d*S[l][x]}for(O[x]=p,m=0,s=c;s<v;s++)m+=Math.pow(S[x][s],2);if(m<i)p=0;else{for(f=(d=S[x][x+1])*(p=d<0?Math.sqrt(m):-Math.sqrt(m))-m,S[x][x+1]=d-p,s=c;s<v;s++)b[s]=S[x][s]/f;for(s=c;s<w;s++){for(m=0,l=c;l<v;l++)m+=S[s][l]*S[x][l];for(l=c;l<v;l++)S[s][l]=S[s][l]+m*b[l]}}h<(y=Math.abs(O[x])+Math.abs(b[x]))&&(h=y)}if(t)for(x=v-1;0<=x;x--){if(p!==0){for(f=S[x][x+1]*p,s=c;s<v;s++)A[s][x]=S[x][s]/f;for(s=c;s<v;s++){for(m=0,l=c;l<v;l++)m+=S[x][l]*A[l][s];for(l=c;l<v;l++)A[l][s]=A[l][s]+m*A[l][x]}}for(s=c;s<v;s++)A[x][s]=0,A[s][x]=0;A[x][x]=1,p=b[x],c=x}if(e){if(e==="f")for(x=v;x<w;x++){for(s=v;s<w;s++)S[x][s]=0;S[x][x]=1}for(x=v-1;0<=x;x--){for(c=x+1,p=O[x],s=c;s<_;s++)S[x][s]=0;if(p!==0){for(f=S[x][x]*p,s=c;s<_;s++){for(m=0,l=c;l<w;l++)m+=S[l][x]*S[l][s];for(d=m/f,l=x;l<w;l++)S[l][s]=S[l][s]+d*S[l][x]}for(s=x;s<w;s++)S[s][x]=S[s][x]/p}else for(s=x;s<w;s++)S[s][x]=0;S[x][x]=S[x][x]+1}}for(o*=h,l=v-1;0<=l;l--)for(var I=0;I<50;I++){for(P=!1,c=l;0<=c;c--){if(Math.abs(b[c])<=o){P=!0;break}if(Math.abs(O[c-1])<=o)break}if(!P){for(a=0,u=c-(m=1),x=c;x<l+1&&(d=m*b[x],b[x]=a*b[x],!(Math.abs(d)<=o));x++)if(p=O[x],O[x]=Math.sqrt(d*d+p*p),a=p/(f=O[x]),m=-d/f,e)for(s=0;s<w;s++)y=S[s][u],g=S[s][x],S[s][u]=y*a+g*m,S[s][x]=-y*m+g*a}if(g=O[l],c===l){if(g<0&&(O[l]=-g,t))for(s=0;s<v;s++)A[s][l]=-A[s][l];break}for(h=O[c],d=(((y=O[l-1])-g)*(y+g)+((p=b[l-1])-(f=b[l]))*(p+f))/(2*f*y),p=Math.sqrt(d*d+1),d=((h-g)*(h+g)+f*(y/(d<0?d-p:d+p)-f))/h,x=c+(m=a=1);x<l+1;x++){if(p=b[x],y=O[x],f=m*p,p*=a,g=Math.sqrt(d*d+f*f),d=h*(a=d/(b[x-1]=g))+p*(m=f/g),p=-h*m+p*a,f=y*m,y*=a,t)for(s=0;s<v;s++)h=A[s][x-1],g=A[s][x],A[s][x-1]=h*a+g*m,A[s][x]=-h*m+g*a;if(g=Math.sqrt(d*d+f*f),d=(a=d/(O[x-1]=g))*p+(m=f/g)*y,h=-m*p+a*y,e)for(s=0;s<w;s++)y=S[s][x-1],g=S[s][x],S[s][x-1]=y*a+g*m,S[s][x]=-y*m+g*a}b[c]=0,b[l]=d,O[l]=h}for(x=0;x<v;x++)O[x]<o&&(O[x]=0);return{u:S,q:O,v:A}},n.VERSION="1.1.1",Object.defineProperty(n,"__esModule",{value:!0})})});var Dh=Hl(Sl=>{(function(){"use strict";var n=function(){this.init()};n.prototype={init:function(){var a=this||r;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 d=this||r;if(a=parseFloat(a),d.ctx||u(),typeof a<"u"&&a>=0&&a<=1){if(d._volume=a,d._muted)return d;d.usingWebAudio&&d.masterGain.gain.setValueAtTime(a,r.ctx.currentTime);for(var p=0;p<d._howls.length;p++)if(!d._howls[p]._webAudio)for(var f=d._howls[p]._getSoundIds(),m=0;m<f.length;m++){var h=d._howls[p]._soundById(f[m]);h&&h._node&&(h._node.volume=h._volume*a)}return d}return d._volume},mute:function(a){var d=this||r;d.ctx||u(),d._muted=a,d.usingWebAudio&&d.masterGain.gain.setValueAtTime(a?0:d._volume,r.ctx.currentTime);for(var p=0;p<d._howls.length;p++)if(!d._howls[p]._webAudio)for(var f=d._howls[p]._getSoundIds(),m=0;m<f.length;m++){var h=d._howls[p]._soundById(f[m]);h&&h._node&&(h._node.muted=a?!0:h._muted)}return d},stop:function(){for(var a=this||r,d=0;d<a._howls.length;d++)a._howls[d].stop();return a},unload:function(){for(var a=this||r,d=a._howls.length-1;d>=0;d--)a._howls[d].unload();return a.usingWebAudio&&a.ctx&&typeof a.ctx.close<"u"&&(a.ctx.close(),a.ctx=null,u()),a},codecs:function(a){return(this||r)._codecs[a.replace(/^x-/,"")]},_setup:function(){var a=this||r;if(a.state=a.ctx&&a.ctx.state||"suspended",a._autoSuspend(),!a.usingWebAudio)if(typeof Audio<"u")try{var d=new Audio;typeof d.oncanplaythrough>"u"&&(a._canPlayEvent="canplay")}catch{a.noAudio=!0}else a.noAudio=!0;try{var d=new Audio;d.muted&&(a.noAudio=!0)}catch{}return a.noAudio||a._setupCodecs(),a},_setupCodecs:function(){var a=this||r,d=null;try{d=typeof Audio<"u"?new Audio:null}catch{return a}if(!d||typeof d.canPlayType!="function")return a;var p=d.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,y=f.indexOf("Safari")!==-1&&f.indexOf("Chrome")===-1,g=f.match(/Version\/(.*?) /),v=y&&g&&parseInt(g[1],10)<15;return a._codecs={mp3:!!(!h&&(p||d.canPlayType("audio/mp3;").replace(/^no$/,""))),mpeg:!!p,opus:!!d.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/,""),ogg:!!d.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),oga:!!d.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),wav:!!(d.canPlayType('audio/wav; codecs="1"')||d.canPlayType("audio/wav")).replace(/^no$/,""),aac:!!d.canPlayType("audio/aac;").replace(/^no$/,""),caf:!!d.canPlayType("audio/x-caf;").replace(/^no$/,""),m4a:!!(d.canPlayType("audio/x-m4a;")||d.canPlayType("audio/m4a;")||d.canPlayType("audio/aac;")).replace(/^no$/,""),m4b:!!(d.canPlayType("audio/x-m4b;")||d.canPlayType("audio/m4b;")||d.canPlayType("audio/aac;")).replace(/^no$/,""),mp4:!!(d.canPlayType("audio/x-mp4;")||d.canPlayType("audio/mp4;")||d.canPlayType("audio/aac;")).replace(/^no$/,""),weba:!!(!v&&d.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),webm:!!(!v&&d.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/,"")),dolby:!!d.canPlayType('audio/mp4; codecs="ec-3"').replace(/^no$/,""),flac:!!(d.canPlayType("audio/x-flac;")||d.canPlayType("audio/flac;")).replace(/^no$/,"")},a},_unlockAudio:function(){var a=this||r;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 d=function(p){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(),y=0;y<h.length;y++){var g=a._howls[m]._soundById(h[y]);g&&g._node&&!g._node._unlocked&&(g._node._unlocked=!0,g._node.load())}a._autoResume();var v=a.ctx.createBufferSource();v.buffer=a._scratchBuffer,v.connect(a.ctx.destination),typeof v.start>"u"?v.noteOn(0):v.start(0),typeof a.ctx.resume=="function"&&a.ctx.resume(),v.onended=function(){v.disconnect(0),a._audioUnlocked=!0,document.removeEventListener("touchstart",d,!0),document.removeEventListener("touchend",d,!0),document.removeEventListener("click",d,!0),document.removeEventListener("keydown",d,!0);for(var w=0;w<a._howls.length;w++)a._howls[w]._emit("unlock")}};return document.addEventListener("touchstart",d,!0),document.addEventListener("touchend",d,!0),document.addEventListener("click",d,!0),document.addEventListener("keydown",d,!0),a}},_obtainHtml5Audio:function(){var a=this||r;if(a._html5AudioPool.length)return a._html5AudioPool.pop();var d=new Audio().play();return d&&typeof Promise<"u"&&(d instanceof Promise||typeof d.then=="function")&&d.catch(function(){console.warn("HTML5 Audio pool exhausted, returning potentially locked audio object.")}),new Audio},_releaseHtml5Audio:function(a){var d=this||r;return a._unlocked&&d._html5AudioPool.push(a),d},_autoSuspend:function(){var a=this;if(!(!a.autoSuspend||!a.ctx||typeof a.ctx.suspend>"u"||!r.usingWebAudio)){for(var d=0;d<a._howls.length;d++)if(a._howls[d]._webAudio){for(var p=0;p<a._howls[d]._sounds.length;p++)if(!a._howls[d]._sounds[p]._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"||!r.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 d=0;d<a._howls.length;d++)a._howls[d]._emit("resume")}),a._suspendTimer&&(clearTimeout(a._suspendTimer),a._suspendTimer=null)):a.state==="suspending"&&(a._resumeAfterSuspend=!0),a}};var r=new n,e=function(a){var d=this;if(!a.src||a.src.length===0){console.error("An array of source files must be passed with any new Howl.");return}d.init(a)};e.prototype={init:function(a){var d=this;return r.ctx||u(),d._autoplay=a.autoplay||!1,d._format=typeof a.format!="string"?a.format:[a.format],d._html5=a.html5||!1,d._muted=a.mute||!1,d._loop=a.loop||!1,d._pool=a.pool||5,d._preload=typeof a.preload=="boolean"||a.preload==="metadata"?a.preload:!0,d._rate=a.rate||1,d._sprite=a.sprite||{},d._src=typeof a.src!="string"?a.src:[a.src],d._volume=a.volume!==void 0?a.volume:1,d._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},d._duration=0,d._state="unloaded",d._sounds=[],d._endTimers={},d._queue=[],d._playLock=!1,d._onend=a.onend?[{fn:a.onend}]:[],d._onfade=a.onfade?[{fn:a.onfade}]:[],d._onload=a.onload?[{fn:a.onload}]:[],d._onloaderror=a.onloaderror?[{fn:a.onloaderror}]:[],d._onplayerror=a.onplayerror?[{fn:a.onplayerror}]:[],d._onpause=a.onpause?[{fn:a.onpause}]:[],d._onplay=a.onplay?[{fn:a.onplay}]:[],d._onstop=a.onstop?[{fn:a.onstop}]:[],d._onmute=a.onmute?[{fn:a.onmute}]:[],d._onvolume=a.onvolume?[{fn:a.onvolume}]:[],d._onrate=a.onrate?[{fn:a.onrate}]:[],d._onseek=a.onseek?[{fn:a.onseek}]:[],d._onunlock=a.onunlock?[{fn:a.onunlock}]:[],d._onresume=[],d._webAudio=r.usingWebAudio&&!d._html5,typeof r.ctx<"u"&&r.ctx&&r.autoUnlock&&r._unlockAudio(),r._howls.push(d),d._autoplay&&d._queue.push({event:"play",action:function(){d.play()}}),d._preload&&d._preload!=="none"&&d.load(),d},load:function(){var a=this,d=null;if(r.noAudio){a._emit("loaderror",null,"No audio support.");return}typeof a._src=="string"&&(a._src=[a._src]);for(var p=0;p<a._src.length;p++){var f,m;if(a._format&&a._format[p])f=a._format[p];else{if(m=a._src[p],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&&r.codecs(f)){d=a._src[p];break}}if(!d){a._emit("loaderror",null,"No codec support for selected audio sources.");return}return a._src=d,a._state="loading",window.location.protocol==="https:"&&d.slice(0,5)==="http:"&&(a._html5=!0,a._webAudio=!1),new t(a),a._webAudio&&i(a),a},play:function(a,d){var p=this,f=null;if(typeof a=="number")f=a,a=null;else{if(typeof a=="string"&&p._state==="loaded"&&!p._sprite[a])return null;if(typeof a>"u"&&(a="__default",!p._playLock)){for(var m=0,h=0;h<p._sounds.length;h++)p._sounds[h]._paused&&!p._sounds[h]._ended&&(m++,f=p._sounds[h]._id);m===1?a=null:f=null}}var y=f?p._soundById(f):p._inactiveSound();if(!y)return null;if(f&&!a&&(a=y._sprite||"__default"),p._state!=="loaded"){y._sprite=a,y._ended=!1;var g=y._id;return p._queue.push({event:"play",action:function(){p.play(g)}}),g}if(f&&!y._paused)return d||p._loadQueue("play"),y._id;p._webAudio&&r._autoResume();var v=Math.max(0,y._seek>0?y._seek:p._sprite[a][0]/1e3),w=Math.max(0,(p._sprite[a][0]+p._sprite[a][1])/1e3-v),b=w*1e3/Math.abs(y._rate),S=p._sprite[a][0]/1e3,A=(p._sprite[a][0]+p._sprite[a][1])/1e3;y._sprite=a,y._ended=!1;var _=function(){y._paused=!1,y._seek=v,y._start=S,y._stop=A,y._loop=!!(y._loop||p._sprite[a][2])};if(v>=A){p._ended(y);return}var x=y._node;if(p._webAudio){var P=function(){p._playLock=!1,_(),p._refreshBuffer(y);var N=y._muted||p._muted?0:y._volume;x.gain.setValueAtTime(N,r.ctx.currentTime),y._playStart=r.ctx.currentTime,typeof x.bufferSource.start>"u"?y._loop?x.bufferSource.noteGrainOn(0,v,86400):x.bufferSource.noteGrainOn(0,v,w):y._loop?x.bufferSource.start(0,v,86400):x.bufferSource.start(0,v,w),b!==1/0&&(p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),b)),d||setTimeout(function(){p._emit("play",y._id),p._loadQueue()},0)};r.state==="running"&&r.ctx.state!=="interrupted"?P():(p._playLock=!0,p.once("resume",P),p._clearTimer(y._id))}else{var O=function(){x.currentTime=v,x.muted=y._muted||p._muted||r._muted||x.muted,x.volume=y._volume*r.volume(),x.playbackRate=y._rate;try{var N=x.play();if(N&&typeof Promise<"u"&&(N instanceof Promise||typeof N.then=="function")?(p._playLock=!0,_(),N.then(function(){p._playLock=!1,x._unlocked=!0,d?p._loadQueue():p._emit("play",y._id)}).catch(function(){p._playLock=!1,p._emit("playerror",y._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."),y._ended=!0,y._paused=!0})):d||(p._playLock=!1,_(),p._emit("play",y._id)),x.playbackRate=y._rate,x.paused){p._emit("playerror",y._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"||y._loop?p._endTimers[y._id]=setTimeout(p._ended.bind(p,y),b):(p._endTimers[y._id]=function(){p._ended(y),x.removeEventListener("ended",p._endTimers[y._id],!1)},x.addEventListener("ended",p._endTimers[y._id],!1))}catch(L){p._emit("playerror",y._id,L)}};x.src==="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA"&&(x.src=p._src,x.load());var I=window&&window.ejecta||!x.readyState&&r._navigator.isCocoonJS;if(x.readyState>=3||I)O();else{p._playLock=!0,p._state="loading";var T=function(){p._state="loaded",O(),x.removeEventListener(r._canPlayEvent,T,!1)};x.addEventListener(r._canPlayEvent,T,!1),p._clearTimer(y._id)}}return y._id},pause:function(a){var d=this;if(d._state!=="loaded"||d._playLock)return d._queue.push({event:"pause",action:function(){d.pause(a)}}),d;for(var p=d._getSoundIds(a),f=0;f<p.length;f++){d._clearTimer(p[f]);var m=d._soundById(p[f]);if(m&&!m._paused&&(m._seek=d.seek(p[f]),m._rateSeek=0,m._paused=!0,d._stopFade(p[f]),m._node))if(d._webAudio){if(!m._node.bufferSource)continue;typeof m._node.bufferSource.stop>"u"?m._node.bufferSource.noteOff(0):m._node.bufferSource.stop(0),d._cleanBuffer(m._node)}else(!isNaN(m._node.duration)||m._node.duration===1/0)&&m._node.pause();arguments[1]||d._emit("pause",m?m._id:null)}return d},stop:function(a,d){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"stop",action:function(){p.stop(a)}}),p;for(var f=p._getSoundIds(a),m=0;m<f.length;m++){p._clearTimer(f[m]);var h=p._soundById(f[m]);h&&(h._seek=h._start||0,h._rateSeek=0,h._paused=!0,h._ended=!0,p._stopFade(f[m]),h._node&&(p._webAudio?h._node.bufferSource&&(typeof h._node.bufferSource.stop>"u"?h._node.bufferSource.noteOff(0):h._node.bufferSource.stop(0),p._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&&p._clearSound(h._node))),d||p._emit("stop",h._id))}return p},mute:function(a,d){var p=this;if(p._state!=="loaded"||p._playLock)return p._queue.push({event:"mute",action:function(){p.mute(a,d)}}),p;if(typeof d>"u")if(typeof a=="boolean")p._muted=a;else return p._muted;for(var f=p._getSoundIds(d),m=0;m<f.length;m++){var h=p._soundById(f[m]);h&&(h._muted=a,h._interval&&p._stopFade(h._id),p._webAudio&&h._node?h._node.gain.setValueAtTime(a?0:h._volume,r.ctx.currentTime):h._node&&(h._node.muted=r._muted?!0:a),p._emit("mute",h._id))}return p},volume:function(){var a=this,d=arguments,p,f;if(d.length===0)return a._volume;if(d.length===1||d.length===2&&typeof d[1]>"u"){var m=a._getSoundIds(),h=m.indexOf(d[0]);h>=0?f=parseInt(d[0],10):p=parseFloat(d[0])}else d.length>=2&&(p=parseFloat(d[0]),f=parseInt(d[1],10));var y;if(typeof p<"u"&&p>=0&&p<=1){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"volume",action:function(){a.volume.apply(a,d)}}),a;typeof f>"u"&&(a._volume=p),f=a._getSoundIds(f);for(var g=0;g<f.length;g++)y=a._soundById(f[g]),y&&(y._volume=p,d[2]||a._stopFade(f[g]),a._webAudio&&y._node&&!y._muted?y._node.gain.setValueAtTime(p,r.ctx.currentTime):y._node&&!y._muted&&(y._node.volume=p*r.volume()),a._emit("volume",y._id))}else return y=f?a._soundById(f):a._sounds[0],y?y._volume:0;return a},fade:function(a,d,p,f){var m=this;if(m._state!=="loaded"||m._playLock)return m._queue.push({event:"fade",action:function(){m.fade(a,d,p,f)}}),m;a=Math.min(Math.max(0,parseFloat(a)),1),d=Math.min(Math.max(0,parseFloat(d)),1),p=parseFloat(p),m.volume(a,f);for(var h=m._getSoundIds(f),y=0;y<h.length;y++){var g=m._soundById(h[y]);if(g){if(f||m._stopFade(h[y]),m._webAudio&&!g._muted){var v=r.ctx.currentTime,w=v+p/1e3;g._volume=a,g._node.gain.setValueAtTime(a,v),g._node.gain.linearRampToValueAtTime(d,w)}m._startFadeInterval(g,a,d,p,h[y],typeof f>"u")}}return m},_startFadeInterval:function(a,d,p,f,m,h){var y=this,g=d,v=p-d,w=Math.abs(v/.01),b=Math.max(4,w>0?f/w:f),S=Date.now();a._fadeTo=p,a._interval=setInterval(function(){var A=(Date.now()-S)/f;S=Date.now(),g+=v*A,g=Math.round(g*100)/100,v<0?g=Math.max(p,g):g=Math.min(p,g),y._webAudio?a._volume=g:y.volume(g,a._id,!0),h&&(y._volume=g),(p<d&&g<=p||p>d&&g>=p)&&(clearInterval(a._interval),a._interval=null,a._fadeTo=null,y.volume(p,a._id),y._emit("fade",a._id))},b)},_stopFade:function(a){var d=this,p=d._soundById(a);return p&&p._interval&&(d._webAudio&&p._node.gain.cancelScheduledValues(r.ctx.currentTime),clearInterval(p._interval),p._interval=null,d.volume(p._fadeTo,a),p._fadeTo=null,d._emit("fade",a)),d},loop:function(){var a=this,d=arguments,p,f,m;if(d.length===0)return a._loop;if(d.length===1)if(typeof d[0]=="boolean")p=d[0],a._loop=p;else return m=a._soundById(parseInt(d[0],10)),m?m._loop:!1;else d.length===2&&(p=d[0],f=parseInt(d[1],10));for(var h=a._getSoundIds(f),y=0;y<h.length;y++)m=a._soundById(h[y]),m&&(m._loop=p,a._webAudio&&m._node&&m._node.bufferSource&&(m._node.bufferSource.loop=p,p&&(m._node.bufferSource.loopStart=m._start||0,m._node.bufferSource.loopEnd=m._stop,a.playing(h[y])&&(a.pause(h[y],!0),a.play(h[y],!0)))));return a},rate:function(){var a=this,d=arguments,p,f;if(d.length===0)f=a._sounds[0]._id;else if(d.length===1){var m=a._getSoundIds(),h=m.indexOf(d[0]);h>=0?f=parseInt(d[0],10):p=parseFloat(d[0])}else d.length===2&&(p=parseFloat(d[0]),f=parseInt(d[1],10));var y;if(typeof p=="number"){if(a._state!=="loaded"||a._playLock)return a._queue.push({event:"rate",action:function(){a.rate.apply(a,d)}}),a;typeof f>"u"&&(a._rate=p),f=a._getSoundIds(f);for(var g=0;g<f.length;g++)if(y=a._soundById(f[g]),y){a.playing(f[g])&&(y._rateSeek=a.seek(f[g]),y._playStart=a._webAudio?r.ctx.currentTime:y._playStart),y._rate=p,a._webAudio&&y._node&&y._node.bufferSource?y._node.bufferSource.playbackRate.setValueAtTime(p,r.ctx.currentTime):y._node&&(y._node.playbackRate=p);var v=a.seek(f[g]),w=(a._sprite[y._sprite][0]+a._sprite[y._sprite][1])/1e3-v,b=w*1e3/Math.abs(y._rate);(a._endTimers[f[g]]||!y._paused)&&(a._clearTimer(f[g]),a._endTimers[f[g]]=setTimeout(a._ended.bind(a,y),b)),a._emit("rate",y._id)}}else return y=a._soundById(f),y?y._rate:a._rate;return a},seek:function(){var a=this,d=arguments,p,f;if(d.length===0)a._sounds.length&&(f=a._sounds[0]._id);else if(d.length===1){var m=a._getSoundIds(),h=m.indexOf(d[0]);h>=0?f=parseInt(d[0],10):a._sounds.length&&(f=a._sounds[0]._id,p=parseFloat(d[0]))}else d.length===2&&(p=parseFloat(d[0]),f=parseInt(d[1],10));if(typeof f>"u")return 0;if(typeof p=="number"&&(a._state!=="loaded"||a._playLock))return a._queue.push({event:"seek",action:function(){a.seek.apply(a,d)}}),a;var y=a._soundById(f);if(y)if(typeof p=="number"&&p>=0){var g=a.playing(f);g&&a.pause(f,!0),y._seek=p,y._ended=!1,a._clearTimer(f),!a._webAudio&&y._node&&!isNaN(y._node.duration)&&(y._node.currentTime=p);var v=function(){g&&a.play(f,!0),a._emit("seek",f)};if(g&&!a._webAudio){var w=function(){a._playLock?setTimeout(w,0):v()};setTimeout(w,0)}else v()}else if(a._webAudio){var b=a.playing(f)?r.ctx.currentTime-y._playStart:0,S=y._rateSeek?y._rateSeek-y._seek:0;return y._seek+(S+b*Math.abs(y._rate))}else return y._node.currentTime;return a},playing:function(a){var d=this;if(typeof a=="number"){var p=d._soundById(a);return p?!p._paused:!1}for(var f=0;f<d._sounds.length;f++)if(!d._sounds[f]._paused)return!0;return!1},duration:function(a){var d=this,p=d._duration,f=d._soundById(a);return f&&(p=d._sprite[f._sprite][1]/1e3),p},state:function(){return this._state},unload:function(){for(var a=this,d=a._sounds,p=0;p<d.length;p++)d[p]._paused||a.stop(d[p]._id),a._webAudio||(a._clearSound(d[p]._node),d[p]._node.removeEventListener("error",d[p]._errorFn,!1),d[p]._node.removeEventListener(r._canPlayEvent,d[p]._loadFn,!1),d[p]._node.removeEventListener("ended",d[p]._endFn,!1),r._releaseHtml5Audio(d[p]._node)),delete d[p]._node,a._clearTimer(d[p]._id);var f=r._howls.indexOf(a);f>=0&&r._howls.splice(f,1);var m=!0;for(p=0;p<r._howls.length;p++)if(r._howls[p]._src===a._src||a._src.indexOf(r._howls[p]._src)>=0){m=!1;break}return o&&m&&delete o[a._src],r.noAudio=!1,a._state="unloaded",a._sounds=[],a=null,null},on:function(a,d,p,f){var m=this,h=m["_on"+a];return typeof d=="function"&&h.push(f?{id:p,fn:d,once:f}:{id:p,fn:d}),m},off:function(a,d,p){var f=this,m=f["_on"+a],h=0;if(typeof d=="number"&&(p=d,d=null),d||p)for(h=0;h<m.length;h++){var y=p===m[h].id;if(d===m[h].fn&&y||!d&&y){m.splice(h,1);break}}else if(a)f["_on"+a]=[];else{var g=Object.keys(f);for(h=0;h<g.length;h++)g[h].indexOf("_on")===0&&Array.isArray(f[g[h]])&&(f[g[h]]=[])}return f},once:function(a,d,p){var f=this;return f.on(a,d,p,1),f},_emit:function(a,d,p){for(var f=this,m=f["_on"+a],h=m.length-1;h>=0;h--)(!m[h].id||m[h].id===d||a==="load")&&(setTimeout(function(y){y.call(this,d,p)}.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 d=this;if(d._queue.length>0){var p=d._queue[0];p.event===a&&(d._queue.shift(),d._loadQueue()),a||p.action()}return d},_ended:function(a){var d=this,p=a._sprite;if(!d._webAudio&&a._node&&!a._node.paused&&!a._node.ended&&a._node.currentTime<a._stop)return setTimeout(d._ended.bind(d,a),100),d;var f=!!(a._loop||d._sprite[p][2]);if(d._emit("end",a._id),!d._webAudio&&f&&d.stop(a._id,!0).play(a._id),d._webAudio&&f){d._emit("play",a._id),a._seek=a._start||0,a._rateSeek=0,a._playStart=r.ctx.currentTime;var m=(a._stop-a._start)*1e3/Math.abs(a._rate);d._endTimers[a._id]=setTimeout(d._ended.bind(d,a),m)}return d._webAudio&&!f&&(a._paused=!0,a._ended=!0,a._seek=a._start||0,a._rateSeek=0,d._clearTimer(a._id),d._cleanBuffer(a._node),r._autoSuspend()),!d._webAudio&&!f&&d.stop(a._id,!0),d},_clearTimer:function(a){var d=this;if(d._endTimers[a]){if(typeof d._endTimers[a]!="function")clearTimeout(d._endTimers[a]);else{var p=d._soundById(a);p&&p._node&&p._node.removeEventListener("ended",d._endTimers[a],!1)}delete d._endTimers[a]}return d},_soundById:function(a){for(var d=this,p=0;p<d._sounds.length;p++)if(a===d._sounds[p]._id)return d._sounds[p];return null},_inactiveSound:function(){var a=this;a._drain();for(var d=0;d<a._sounds.length;d++)if(a._sounds[d]._ended)return a._sounds[d].reset();return new t(a)},_drain:function(){var a=this,d=a._pool,p=0,f=0;if(!(a._sounds.length<d)){for(f=0;f<a._sounds.length;f++)a._sounds[f]._ended&&p++;for(f=a._sounds.length-1;f>=0;f--){if(p<=d)return;a._sounds[f]._ended&&(a._webAudio&&a._sounds[f]._node&&a._sounds[f]._node.disconnect(0),a._sounds.splice(f,1),p--)}}},_getSoundIds:function(a){var d=this;if(typeof a>"u"){for(var p=[],f=0;f<d._sounds.length;f++)p.push(d._sounds[f]._id);return p}else return[a]},_refreshBuffer:function(a){var d=this;return a._node.bufferSource=r.ctx.createBufferSource(),a._node.bufferSource.buffer=o[d._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,r.ctx.currentTime),d},_cleanBuffer:function(a){var d=this,p=r._navigator&&r._navigator.vendor.indexOf("Apple")>=0;if(r._scratchBuffer&&a.bufferSource&&(a.bufferSource.onended=null,a.bufferSource.disconnect(0),p))try{a.bufferSource.buffer=r._scratchBuffer}catch{}return a.bufferSource=null,d},_clearSound:function(a){var d=/MSIE |Trident\//.test(r._navigator&&r._navigator.userAgent);d||(a.src="data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA")}};var t=function(a){this._parent=a,this.init()};t.prototype={init:function(){var a=this,d=a._parent;return a._muted=d._muted,a._loop=d._loop,a._volume=d._volume,a._rate=d._rate,a._seek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++r._counter,d._sounds.push(a),a.create(),a},create:function(){var a=this,d=a._parent,p=r._muted||a._muted||a._parent._muted?0:a._volume;return d._webAudio?(a._node=typeof r.ctx.createGain>"u"?r.ctx.createGainNode():r.ctx.createGain(),a._node.gain.setValueAtTime(p,r.ctx.currentTime),a._node.paused=!0,a._node.connect(r.masterGain)):r.noAudio||(a._node=r._obtainHtml5Audio(),a._errorFn=a._errorListener.bind(a),a._node.addEventListener("error",a._errorFn,!1),a._loadFn=a._loadListener.bind(a),a._node.addEventListener(r._canPlayEvent,a._loadFn,!1),a._endFn=a._endListener.bind(a),a._node.addEventListener("ended",a._endFn,!1),a._node.src=d._src,a._node.preload=d._preload===!0?"auto":d._preload,a._node.volume=p*r.volume(),a._node.load()),a},reset:function(){var a=this,d=a._parent;return a._muted=d._muted,a._loop=d._loop,a._volume=d._volume,a._rate=d._rate,a._seek=0,a._rateSeek=0,a._paused=!0,a._ended=!0,a._sprite="__default",a._id=++r._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,d=a._parent;d._duration=Math.ceil(a._node.duration*10)/10,Object.keys(d._sprite).length===0&&(d._sprite={__default:[0,d._duration*1e3]}),d._state!=="loaded"&&(d._state="loaded",d._emit("load"),d._loadQueue()),a._node.removeEventListener(r._canPlayEvent,a._loadFn,!1)},_endListener:function(){var a=this,d=a._parent;d._duration===1/0&&(d._duration=Math.ceil(a._node.duration*10)/10,d._sprite.__default[1]===1/0&&(d._sprite.__default[1]=d._duration*1e3),d._ended(a)),a._node.removeEventListener("ended",a._endFn,!1)}};var o={},i=function(a){var d=a._src;if(o[d]){a._duration=o[d].duration,c(a);return}if(/^data:[^;]+;base64,/.test(d)){for(var p=atob(d.split(",")[1]),f=new Uint8Array(p.length),m=0;m<p.length;++m)f[m]=p.charCodeAt(m);l(f.buffer,a)}else{var h=new XMLHttpRequest;h.open(a._xhr.method,d,!0),h.withCredentials=a._xhr.withCredentials,h.responseType="arraybuffer",a._xhr.headers&&Object.keys(a._xhr.headers).forEach(function(y){h.setRequestHeader(y,a._xhr.headers[y])}),h.onload=function(){var y=(h.status+"")[0];if(y!=="0"&&y!=="2"&&y!=="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[d],a.load())},s(h)}},s=function(a){try{a.send()}catch{a.onerror()}},l=function(a,d){var p=function(){d._emit("loaderror",null,"Decoding audio data failed.")},f=function(m){m&&d._sounds.length>0?(o[d._src]=m,c(d,m)):p()};typeof Promise<"u"&&r.ctx.decodeAudioData.length===1?r.ctx.decodeAudioData(a).then(f).catch(p):r.ctx.decodeAudioData(a,f,p)},c=function(a,d){d&&!a._duration&&(a._duration=d.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(!!r.usingWebAudio){try{typeof AudioContext<"u"?r.ctx=new AudioContext:typeof webkitAudioContext<"u"?r.ctx=new webkitAudioContext:r.usingWebAudio=!1}catch{r.usingWebAudio=!1}r.ctx||(r.usingWebAudio=!1);var a=/iP(hone|od|ad)/.test(r._navigator&&r._navigator.platform),d=r._navigator&&r._navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),p=d?parseInt(d[1],10):null;if(a&&p&&p<9){var f=/safari/.test(r._navigator&&r._navigator.userAgent.toLowerCase());r._navigator&&!f&&(r.usingWebAudio=!1)}r.usingWebAudio&&(r.masterGain=typeof r.ctx.createGain>"u"?r.ctx.createGainNode():r.ctx.createGain(),r.masterGain.gain.setValueAtTime(r._muted?0:r._volume,r.ctx.currentTime),r.masterGain.connect(r.ctx.destination)),r._setup()}};typeof define=="function"&&define.amd&&define([],function(){return{Howler:r,Howl:e}}),typeof Sl<"u"&&(Sl.Howler=r,Sl.Howl=e),typeof global<"u"?(global.HowlerGlobal=n,global.Howler=r,global.Howl=e,global.Sound=t):typeof window<"u"&&(window.HowlerGlobal=n,window.Howler=r,window.Howl=e,window.Sound=t)})();(function(){"use strict";HowlerGlobal.prototype._pos=[0,0,0],HowlerGlobal.prototype._orientation=[0,0,-1,0,1,0],HowlerGlobal.prototype.stereo=function(r){var e=this;if(!e.ctx||!e.ctx.listener)return e;for(var t=e._howls.length-1;t>=0;t--)e._howls[t].stereo(r);return e},HowlerGlobal.prototype.pos=function(r,e,t){var o=this;if(!o.ctx||!o.ctx.listener)return o;if(e=typeof e!="number"?o._pos[1]:e,t=typeof t!="number"?o._pos[2]:t,typeof r=="number")o._pos=[r,e,t],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(r,e,t,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,t=typeof t!="number"?c[2]:t,o=typeof o!="number"?c[3]:o,i=typeof i!="number"?c[4]:i,s=typeof s!="number"?c[5]:s,typeof r=="number")l._orientation=[r,e,t,o,i,s],typeof l.ctx.listener.forwardX<"u"?(l.ctx.listener.forwardX.setTargetAtTime(r,Howler.ctx.currentTime,.1),l.ctx.listener.forwardY.setTargetAtTime(e,Howler.ctx.currentTime,.1),l.ctx.listener.forwardZ.setTargetAtTime(t,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(r,e,t,o,i,s);else return c;return l},Howl.prototype.init=function(r){return function(e){var t=this;return t._orientation=e.orientation||[1,0,0],t._stereo=e.stereo||null,t._pos=e.pos||null,t._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},t._onstereo=e.onstereo?[{fn:e.onstereo}]:[],t._onpos=e.onpos?[{fn:e.onpos}]:[],t._onorientation=e.onorientation?[{fn:e.onorientation}]:[],r.call(this,e)}}(Howl.prototype.init),Howl.prototype.stereo=function(r,e){var t=this;if(!t._webAudio)return t;if(t._state!=="loaded")return t._queue.push({event:"stereo",action:function(){t.stereo(r,e)}}),t;var o=typeof Howler.ctx.createStereoPanner>"u"?"spatial":"stereo";if(typeof e>"u")if(typeof r=="number")t._stereo=r,t._pos=[r,0,0];else return t._stereo;for(var i=t._getSoundIds(e),s=0;s<i.length;s++){var l=t._soundById(i[s]);if(l)if(typeof r=="number")l._stereo=r,l._pos=[r,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(r,Howler.ctx.currentTime),l._panner.positionY.setValueAtTime(0,Howler.ctx.currentTime),l._panner.positionZ.setValueAtTime(0,Howler.ctx.currentTime)):l._panner.setPosition(r,0,0):l._panner.pan.setValueAtTime(r,Howler.ctx.currentTime)),t._emit("stereo",l._id);else return l._stereo}return t},Howl.prototype.pos=function(r,e,t,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"pos",action:function(){i.pos(r,e,t,o)}}),i;if(e=typeof e!="number"?0:e,t=typeof t!="number"?-.5:t,typeof o>"u")if(typeof r=="number")i._pos=[r,e,t];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 r=="number")c._pos=[r,e,t],c._node&&((!c._panner||c._panner.pan)&&n(c,"spatial"),typeof c._panner.positionX<"u"?(c._panner.positionX.setValueAtTime(r,Howler.ctx.currentTime),c._panner.positionY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.positionZ.setValueAtTime(t,Howler.ctx.currentTime)):c._panner.setPosition(r,e,t)),i._emit("pos",c._id);else return c._pos}return i},Howl.prototype.orientation=function(r,e,t,o){var i=this;if(!i._webAudio)return i;if(i._state!=="loaded")return i._queue.push({event:"orientation",action:function(){i.orientation(r,e,t,o)}}),i;if(e=typeof e!="number"?i._orientation[1]:e,t=typeof t!="number"?i._orientation[2]:t,typeof o>"u")if(typeof r=="number")i._orientation=[r,e,t];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 r=="number")c._orientation=[r,e,t],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(r,Howler.ctx.currentTime),c._panner.orientationY.setValueAtTime(e,Howler.ctx.currentTime),c._panner.orientationZ.setValueAtTime(t,Howler.ctx.currentTime)):c._panner.setOrientation(r,e,t)),i._emit("orientation",c._id);else return c._orientation}return i},Howl.prototype.pannerAttr=function(){var r=this,e=arguments,t,o,i;if(!r._webAudio)return r;if(e.length===0)return r._pannerAttr;if(e.length===1)if(typeof e[0]=="object")t=e[0],typeof o>"u"&&(t.pannerAttr||(t.pannerAttr={coneInnerAngle:t.coneInnerAngle,coneOuterAngle:t.coneOuterAngle,coneOuterGain:t.coneOuterGain,distanceModel:t.distanceModel,maxDistance:t.maxDistance,refDistance:t.refDistance,rolloffFactor:t.rolloffFactor,panningModel:t.panningModel}),r._pannerAttr={coneInnerAngle:typeof t.pannerAttr.coneInnerAngle<"u"?t.pannerAttr.coneInnerAngle:r._coneInnerAngle,coneOuterAngle:typeof t.pannerAttr.coneOuterAngle<"u"?t.pannerAttr.coneOuterAngle:r._coneOuterAngle,coneOuterGain:typeof t.pannerAttr.coneOuterGain<"u"?t.pannerAttr.coneOuterGain:r._coneOuterGain,distanceModel:typeof t.pannerAttr.distanceModel<"u"?t.pannerAttr.distanceModel:r._distanceModel,maxDistance:typeof t.pannerAttr.maxDistance<"u"?t.pannerAttr.maxDistance:r._maxDistance,refDistance:typeof t.pannerAttr.refDistance<"u"?t.pannerAttr.refDistance:r._refDistance,rolloffFactor:typeof t.pannerAttr.rolloffFactor<"u"?t.pannerAttr.rolloffFactor:r._rolloffFactor,panningModel:typeof t.pannerAttr.panningModel<"u"?t.pannerAttr.panningModel:r._panningModel});else return i=r._soundById(parseInt(e[0],10)),i?i._pannerAttr:r._pannerAttr;else e.length===2&&(t=e[0],o=parseInt(e[1],10));for(var s=r._getSoundIds(o),l=0;l<s.length;l++)if(i=r._soundById(s[l]),i){var c=i._pannerAttr;c={coneInnerAngle:typeof t.coneInnerAngle<"u"?t.coneInnerAngle:c.coneInnerAngle,coneOuterAngle:typeof t.coneOuterAngle<"u"?t.coneOuterAngle:c.coneOuterAngle,coneOuterGain:typeof t.coneOuterGain<"u"?t.coneOuterGain:c.coneOuterGain,distanceModel:typeof t.distanceModel<"u"?t.distanceModel:c.distanceModel,maxDistance:typeof t.maxDistance<"u"?t.maxDistance:c.maxDistance,refDistance:typeof t.refDistance<"u"?t.refDistance:c.refDistance,rolloffFactor:typeof t.rolloffFactor<"u"?t.rolloffFactor:c.rolloffFactor,panningModel:typeof t.panningModel<"u"?t.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=r._pos||[0,0,-.5]),n(i,"spatial"))}return r},Sound.prototype.init=function(r){return function(){var e=this,t=e._parent;e._orientation=t._orientation,e._stereo=t._stereo,e._pos=t._pos,e._pannerAttr=t._pannerAttr,r.call(this),e._stereo?t.stereo(e._stereo):e._pos&&t.pos(e._pos[0],e._pos[1],e._pos[2],e._id)}}(Sound.prototype.init),Sound.prototype.reset=function(r){return function(){var e=this,t=e._parent;return e._orientation=t._orientation,e._stereo=t._stereo,e._pos=t._pos,e._pannerAttr=t._pannerAttr,e._stereo?t.stereo(e._stereo):e._pos?t.pos(e._pos[0],e._pos[1],e._pos[2],e._id):e._panner&&(e._panner.disconnect(0),e._panner=void 0,t._refreshBuffer(e)),r.call(this)}}(Sound.prototype.reset);var n=function(r,e){e=e||"spatial",e==="spatial"?(r._panner=Howler.ctx.createPanner(),r._panner.coneInnerAngle=r._pannerAttr.coneInnerAngle,r._panner.coneOuterAngle=r._pannerAttr.coneOuterAngle,r._panner.coneOuterGain=r._pannerAttr.coneOuterGain,r._panner.distanceModel=r._pannerAttr.distanceModel,r._panner.maxDistance=r._pannerAttr.maxDistance,r._panner.refDistance=r._pannerAttr.refDistance,r._panner.rolloffFactor=r._pannerAttr.rolloffFactor,r._panner.panningModel=r._pannerAttr.panningModel,typeof r._panner.positionX<"u"?(r._panner.positionX.setValueAtTime(r._pos[0],Howler.ctx.currentTime),r._panner.positionY.setValueAtTime(r._pos[1],Howler.ctx.currentTime),r._panner.positionZ.setValueAtTime(r._pos[2],Howler.ctx.currentTime)):r._panner.setPosition(r._pos[0],r._pos[1],r._pos[2]),typeof r._panner.orientationX<"u"?(r._panner.orientationX.setValueAtTime(r._orientation[0],Howler.ctx.currentTime),r._panner.orientationY.setValueAtTime(r._orientation[1],Howler.ctx.currentTime),r._panner.orientationZ.setValueAtTime(r._orientation[2],Howler.ctx.currentTime)):r._panner.setOrientation(r._orientation[0],r._orientation[1],r._orientation[2])):(r._panner=Howler.ctx.createStereoPanner(),r._panner.pan.setValueAtTime(r._stereo,Howler.ctx.currentTime)),r._panner.connect(r._node),r._paused||r._parent.pause(r._id,!0).play(r._id,!0)}})()});var Y_={};Nd(Y_,{default:()=>jl});module.exports=eg(Y_);var Fl=require("three");var Re=class{modifyById(r,e){let t=this;if(t[r]===void 0)throw new Error("not expected");{let i={...t,[r]:e};return Object.setPrototypeOf(i,Re.prototype),i}}add(r,e){return this.runOp({type:1,id:r,data:e})?.data??this}runOp(r){let e=this;if(r.type===1){let t=e[r.id],o;t===void 0?o={type:2,id:r.id}:o={type:1,id:r.id,data:t};let{id:i,data:s}=r,l={...e,[i]:s};return Object.setPrototypeOf(l,Re.prototype),{data:l,actual:r,reverse:o}}else if(r.type===2){let{id:t}=r,o=e[t];if(o===void 0)return null;{let i={...e};return Object.setPrototypeOf(i,Re.prototype),delete i[t],{data:i,actual:r,reverse:{type:1,id:t,data:o}}}}return null}};function Ni(n){if(n.deepFreeze!==void 0){n.deepFreeze(n);return}let r=Object.getOwnPropertyNames(n);for(let e of r){let t=n[e];t&&typeof t=="object"&&Ni(t)}return Object.freeze(n)}function Ld(n,r){let e=0;for(;e<n.length&&e<r.length;){if(n[e]<r[e])return-1;if(n[e]>r[e])return 1;e+=1}return e!==r.length?-1:e!==n.length?1:0}var sn=class extends Error{};function $s(n){let r={...n};return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}function vr(n,r,e){if(n===void 0?r===void 0?(n=0,r=10):n=r-10:r===void 0&&(r=n+10),n>r){let i=n;n=r,r=i}let t=[],o=1/(e+1);for(let i=0;i<e;i++){let s=n+(r-n)*(i+.75+Math.random()*.5)*o;t.push(s)}return t}function an(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 Md(){return typeof process<"u"}function Bd(n,r){for(let e of n)r(e.id,e.data)!==!0&&Bd(e.children,r)}function Dd(n,r){if(r(n.id,n.data)!==!0)for(let e of n.children)Dd(e,r)}var Qe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,Qe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Ni(this[e]),e++}fillCaches0(e,t){this.objCaches.set(e.id,e),this.parentCaches.set(e.id,t);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,t){if(!this.has(e))return!0;for(;e;){let o=this.parent(e);if(o===t)return!0;e=o}return!1}isDescendantOf(e,t){for(;e;){let o=this.parent(e);if(o===t)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,t){if(e===null)this.traverse(t);else{let o=this.get(e);o&&Dd(o,t)}}traverse(e){Bd(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,t){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:t},this.modifyArrayBy(i,s)}}modifyArrayBy(e,t){let o=e,i=t;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,Qe.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:t}){if(this.get(e)!==void 0)return!0;for(let o of t)if(this.checkDuplicatedIdRec(o))return!0;return!1}addOp(e){let{parent:t,fi:o,id:i,data:s,children:l}=e;if(t!==null&&this.get(t)===void 0)return null;if(this.checkDuplicatedIdRec(e))return null;{let c=t,u=this.childrenArray(c),a={fi:o,id:i,data:s,children:l};return u=[...u,a],u.sort((p,f)=>p.fi-f.fi),e.localIndex=u.indexOf(a),{data:this.modifyArrayBy(c,u),actual:e,reverse:{type:8,id:i}}}}deleteOp(e){let{id:t}=e;if(this.get(t)===null)return null;{let o=this.parent(t);if(o===void 0)return null;let i=this.childrenArray(o),s=i.findIndex(u=>u.id===t);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:t,fi:o,id:i}=e;if(t!==null&&this.get(t)===void 0)return this.deleteOp({type:8,id:i});if(t!==null){let f=t;for(;f!==null;){if(f===void 0)throw new Error;if(f===i)throw new sn("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],d=this.modifyArrayBy(s,c);s=t,c=d.childrenArray(s);let p=a.fi;return a={...a,fi:o},c=[...c,a],c.sort((f,m)=>f.fi-m.fi),e.localIndex=c.indexOf(a),d=d.modifyArrayBy(s,c),{data:d,actual:e,reverse:{type:9,parent:l,fi:p,id:i}}}previous(e,t){if(t===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===t)return o;o=i.id}return null}traverseSortNext(e){let t=this.parent(e);if(t!==void 0){let o=this.childrenArray(t),i=o.findIndex(s=>s.id===e)+1;if(i<o.length)return o[i].id;if(t)return this.traverseSortNext(t)}}sortNext(e){let t=this.childrenArray(e);return t.length>0?t[0].id:this.traverseSortNext(e)}traverseSortPrevious(e){let t=this.childrenArray(e);return t.length>0?this.traverseSortPrevious(t[t.length-1].id):e}sortPrevious(e){let t=this.parent(e);if(t!==void 0){let o=this.childrenArray(t),i=o.findIndex(s=>s.id===e)-1;return i>=0?this.traverseSortPrevious(o[i].id):t}}getAllSorted(e){let t=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&t.push({...o,...i})}t.sort((o,i)=>Ld(o.sortKey,i.sortKey));for(let o of t)delete o.sortKey;return t}getWithSortKey(e){var t=e;let o=[],i=this.get(t),s=i;if(i!==void 0){for(;t;)o.splice(0,0,i.fi),t=this.parent(t),t!==null&&(i=this.get(t));return{...s,sortKey:o}}}insertBeforeHelper(e,t,o){return this.insertAfterHelper(e,this.previous(e,t),o)}insertAfterHelper(e,t,o){let i=this.childrenArray(e);if(t===null){if(i.length===0)return vr(0,o,o);{let s=i[0].fi;return vr(s-o,s,o)}}else{let s=this.get(t);if(s===void 0||this.parent(t)!==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 vr(c,c+o,o)}else return vr(s.fi,l.fi,o)}}};var ln;(r=>{function n(e,t){if(t.type!==0)return null;if(Array.isArray(e)){let o=t.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:t,reverse:{type:0,props:i}}:null}else{let o=t.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:t,reverse:{type:0,props:i}}:null}}r.runOp=n})(ln||(ln={}));var xe=class extends Array{constructor(...e){super(...e);Object.setPrototypeOf(this,xe.prototype)}deepFreeze(){let e=0;for(;e<this.length;)Ni(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,t){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:t},this.modifyArrayBy(i)}}modifyArrayBy(e){Object.setPrototypeOf(e,xe.prototype);let t=e;return Md()||t.fillCaches(),t}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:t,id:o,data:i}=e,s=this,l={fi:t,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:t}=e,o=this,i=o.findIndex(c=>c.id===t);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:t,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:t};return i[s]=c,i.sort((a,d)=>a.fi-d.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 t=null;for(let o of this){if(o.id===e)return t;t=o.id}return null}insertBeforeHelper(e,t){return this.insertAfterHelper(this.previous(e),t)}insertAfterHelper(e,t){let o=this;if(e===null){if(o.length===0)return vr(0,t,t);{let i=o[0].fi;return vr(i-t,i,t)}}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 vr(l,l+t,t)}else return vr(i.fi,s.fi,t)}}};function cn(n){return n&&typeof n=="object"&&n instanceof ze}var ze=class{unusedFunOverridesTable(r){}runOp(r){let e=[],t=this,o=0,i={};for(;o<r.path.length;){if(e.push(t),t=t===void 0?void 0:t[r.path[o]],t!==void 0&&!cn(t))return null;o+=1}t=t?$s(t):new ze;for(let[c,u]of Object.entries(r.props)){let a=t[c];i[c]=a,u===void 0?delete t[c]:t[c]=u}for(;o>0;){if(Object.keys(t).length===0){let c=e[o-1];c&&(t=$s(c),delete t[r.path[o-1]])}else{let c=e[o-1];if(c){let u=$s(c);u[r.path[o-1]]=t,t=u}else{let u=new ze;u[r.path[o-1]]=t,t=u}}o-=1}let s=Object.setPrototypeOf(t,ze.prototype),l={...r,props:i};return{data:s,actual:r,reverse:l}}},zr;(t=>{function n(o,i){return Ei(o,i)??o}t.apply=n;function r(o,i){return ql(o,i)}t.merge=r;function e(o,i){let s=0,l=i.path,c=o;for(;s<l.length&&c!==void 0;){if(c=wt.zoomOnce(c,l[s]),c===void 0)return i;if(!cn(c))return;s+=1}if(c===void 0)return i;if(!!cn(c))if(i.type===0){let u={...i.props};for(let a of Object.keys(c))delete u[a];return{...i,props:u}}else if(i.type===1||i.type===4||i.type===7){let u=Wl([i],c);return u?(console.log(u),u):i}else return i}t.filterOp=e})(zr||(zr={}));function Wl(n,r){if(r===void 0)return;let e=!1,t=n.map(o=>{let i=o.id,s=Ei(o.data,r[i]);if(e=e||s!==void 0,s===void 0&&(s=o.data),o.children){let l=Wl(o.children,r);return l!==void 0?e=!0:l=o.children,{...o,id:i,data:s,children:l}}else return{...o,id:i,data:s}});if(e)return t}function tg(n,r){if(r===void 0)return;let e=!1,t=n.map(o=>{let i=o.id,s=Ei(o.data,r[i]);return e=e||s!==void 0,s===void 0&&(s=o.data),{...o,id:i,data:s}});if(e)return Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}function Ei(n,r){if(!cn(r))return r;if(n instanceof Qe){let e=Wl(n,r);return e!==void 0&&Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e}else{if(n instanceof xe)return tg(n,r);if(Array.isArray(n)){let e=!1,t=n.map((o,i)=>{let s=Ei(o,r[i]);return e=e||s!==void 0,s===void 0&&(s=o),s});return e?(Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t):void 0}else{if(n instanceof ze)return ql(n,r);if(n&&typeof n=="object"){let e={},t=!1;for(let[o,i]of Object.entries(n)){let s=Ei(i,r[o]);t=t||s!==void 0,s===void 0&&(s=i),e[o]=s}return t?(Object.setPrototypeOf(e,Object.getPrototypeOf(n)),e):void 0}}}}function ql(n,r){if(n===void 0)return r;if(r===void 0)return n;if(!cn(r))return r;if(!cn(n))return zr.apply(n,r);let e=new Set;for(let o of Object.keys(n))e.add(o);for(let o of Object.keys(r))e.add(o);let t=new ze;for(let o of e){let i=ql(n===void 0?void 0:n[o],r===void 0?void 0:r[o]);t[o]=i}return t}function Gd(n,r){let e={cur:[],result:[],len:0};return n=Li(n,r,e)??n,[n,e.result]}function Ys(n,r){return n===null?null:(n.cur[n.len]=r,n.len+=1,n)}function Xs(n){n&&(n.len-=1)}function rg(n){if(n===null)return null;n.result.push(n.cur.slice(0,n.len))}function Rd(n,r,e){let t=!1,o=n.map(i=>{let s=i.id,l=r[s];if(l!==void 0&&typeof l=="string"&&(t=!0,s=l,e!==null))throw new Error("not supported");let c=Li(i.data,r,Ys(e,s));Xs(e),t=t||c!==void 0,c===void 0&&(c=i.data);let u=Rd(i.children,r,e);return u!==void 0?t=!0:u=i.children,{...i,id:s,data:c,children:u}});if(t)return o}function og(n,r,e){let t=!1,o=n.map(i=>{let s=i.id,l=r[s];if(l!==void 0&&typeof l=="string"&&(t=!0,s=l,e!==null))throw new Error("not supported");let c=Li(i.data,r,Ys(e,s));return Xs(e),t=t||c!==void 0,c===void 0&&(c=i.data),{...i,id:s,data:c}});if(t)return Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o}function Li(n,r,e){if(n instanceof Qe){let t=Rd(n,r,e);return t!==void 0&&Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t}else{if(n instanceof xe)return og(n,r,e);if(Array.isArray(n)){let t=!1,o=n.map((i,s)=>{let l=Li(i,r,Ys(e,s));return Xs(e),t=t||l!==void 0,l===void 0&&(l=i),l});return t?(Object.setPrototypeOf(o,Object.getPrototypeOf(n)),o):void 0}else if(n&&typeof n=="object"&&!an(n)){let t={},o=!1;for(let[i,s]of Object.entries(n))if(i!=="name"&&i!=="text"){let l=r[i];if(typeof l=="string"){if(e!==null)throw new Error("not supported");o=!0,i=l}let c=Li(s,r,Ys(e,i));Xs(e),o=o||c!==void 0,c===void 0&&(c=s),t[i]=c}else t[i]=s;return o?(Object.setPrototypeOf(t,Object.getPrototypeOf(n)),t):void 0}else if(typeof n=="string"){let t=r[n];if(t!==void 0){if(n.length!==36)throw new Error("for now you should only call this method when the key is a uuid");rg(e)}return t}else return}}var Ks;(r=>{function n(e,t){let o=wt.zoom(t,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:{}}}r.replaceProps=n})(Ks||(Ks={}));var ft;(l=>{function n(c,u){return{...c,path:c.path.slice(u)}}l.drop=n;function r(c,u){return e(c,u)?.data??c}l.applySimple=r;function e(c,u){let a=u.path;for(var d=[];;){let p;if(c instanceof ze&&u.type===0&&(p=c.runOp({...u,path:a.slice(d.length)}),p===null&&(p=void 0)),d.length===a.length&&(c instanceof Qe||c instanceof xe||c instanceof Re?p=c.runOp(u):p=ln.runOp(c,u)),p!==void 0)if(p!==null){let h=p.data;for(let y=d.length-1;y>=0;y--){let g=a[y],v=d[y];if(v instanceof Qe){if(typeof g=="number")throw new Error("illegal arg");h=v.modifyById(g,h)}else if(v instanceof xe){if(typeof g=="number")throw new Error("illegal arg");h=v.modifyById(g,h)}else if(v instanceof Re){if(typeof g=="number")throw new Error("illegal arg");h=v.modifyById(g,h)}else if(v instanceof ze){let w={...v,[g]:h};h=Object.setPrototypeOf(w,ze.prototype)}else if(typeof v=="object")if(Array.isArray(v)){if(typeof g=="string"&&(g=parseInt(g),isNaN(g)))throw new Error("Invalid path");let w=h;h=[...v],h[g]=w}else h={...v,[g]:h};else return null}return{data:h,actual:{...p.actual,path:a},reverse:{...p.reverse,path:a}}}else return null;let f=a[d.length],m;if(c instanceof Qe){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else if(c instanceof xe){if(typeof f=="number")throw new Error("");m=c.get(f)?.data}else c!==null&&(m=c[f]);if(m!==void 0)d.push(c),c=m;else return null}}l.apply=e;function t(c,u){for(let a=0;a<c.length&&a<u.length;a++)if(c[a]!==u[a])return!0;return!1}l.pathDisjoint=t;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 t(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})(ft||(ft={}));var $l;(c=>{function n(){return[]}c.empty=n;function r(u,a){let d=[];for(let p of u){let[f,...m]=p.path;f===a&&d.push({...p,path:m})}return d}c.removePrefix=r;function e(u,a){return u.map(d=>({...d,path:[a,...d.path]}))}c.addPrefix=e;function t(u,a){return[...u,...a]}c.concat=t;function o(u,a){return[...u.filter(p=>!a.some(f=>ft.subsumed(p,f))),...a]}c.compress=o;function i(u,a){return u.every(d=>a.every(p=>ft.commutative(d,p)))}c.commutative=i;function s(u,a){for(let d of a){let p=l(u,d);p!==null&&(u=p.data)}return u}c.applyAll=s;function l(u,a){var d=u;let p=[],f=[];for(let m of a)try{if(m.type===3){let h=wt.zoom(d,[...m.path,m.id]),y=ft.apply(d,{...m,type:2});if(y!==null){d=y.data;let[g,v]=Gd(d,{[m.id]:h});d=g;for(let w of v){let b=w[w.length-1];w.splice(w.length-1,1),p.push({type:0,path:w,props:{[b]:h}}),f.push({type:0,path:w,props:{[b]:m.id}})}f.push(y.reverse),p.push(y.actual)}}else{let h=ft.apply(d,m);h!==null&&(p.push(h.actual),d=h.data,f.push(h.reverse))}}catch(h){if(h instanceof sn)return null;throw h}return{data:d,actual:p,reverse:f.reverse()}}c.apply=l})($l||($l={}));var Vd=Symbol(),ng=Symbol(),Qs=Symbol(),Co=class{reportOp(r,e,t=[]){let o=this;if(e===null)return;o._current=e.data;let i=t;for(;!(o instanceof Zs);){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,r,e.actual,e.reverse)}deleteChildren(r){if(this._children){let e=this._children[r];if(e){let t=e[Qs];t&&t(),delete this._children[r]}}}},Xl=class extends Co{constructor(r,e,t){super(),this._parent=r,this._path=e,this._current=t}update(r,e){if(Array.isArray(this._current)){if(typeof r=="string"&&(r=parseInt(r),isNaN(r)))throw new Error("Invalid path");this._current=[...this._current],this._current[r]=e}else this._current={...this._current,[r]:e}}runOp(r){this.reportOp(r,ln.runOp(this._current,r),r.path)}},Kl=class extends Co{constructor(r,e,t){super(),this._parent=r,this._path=e,this._current=t}update(r,e){this._current={...this._current,[r]:e},Object.setPrototypeOf(this._current,Re.prototype)}runOp(r){this.reportOp(r,this._current.runOp(r))}},jd={get(n,r){if(r===Qs)return()=>{n._parent=null};if(r===Vd)return n._current;if(r===ng)return n;let{_current:e,_children:t}=n;if(r==="push"&&Array.isArray(e))throw new Error("not supported to expand array");let o=t===void 0?void 0:t[r];if(o!==void 0)return o;let i=e[r],s=Js(n,r,i);return s!==i?(t===void 0&&(t={},n._children=t),t[r]=s,s):i},has(n,r){return r 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,r){let e=n._current,t=Reflect.getOwnPropertyDescriptor(e,r);return t&&{writable:!0,configurable:!0,enumerable:t.enumerable,value:e[r]}}},ig={...jd,set(n,r,e){let t={type:0,props:{[r]:at(e)??e}};return n.deleteChildren(r),n.runOp(t),!0},deleteProperty(n,r){let e={type:0,props:{[r]:void 0}};return n.deleteChildren(r),n.runOp(e),!0}},sg={...jd,set(n,r,e){return e===void 0?this.deleteProperty(n,r):(n.deleteChildren(r),n.runOp({type:1,id:r,data:e})),!0},deleteProperty(n,r){return n.runOp({type:2,id:r}),!0}},dn=class extends Co{constructor(r,e,t){super(),this._children={},this._parent=r,this._path=e,this._current=t,this[Qs]=()=>{this._parent=null}}unproxy(){return this._current}update(r,e){this._current=this._current.modifyById(r,e)}runOp(r){this.reportOp(r,this._current.runOp(r))}randomId(){return this._current.randomId()}isDescendantOf(r,e){return this._current.isDescendantOf(r,e)}childrenOf(r){return this._current.childrenOf(r)}traverse(r){return this._current.traverse(r)}get(r){return this._current.get(r)}parent(r){return this._current.parent(r)}traverse(r){this._current.traverse((e,t)=>{r(e,this.data(e))})}data(r){let{_current:e,_children:t}=this,o=t===void 0?void 0:t[r];if(o!==void 0)return o;let i=e.get(r)?.data,s=Js(this,r,i);return s!==i?(t===void 0&&(t={},this._children=t),t[r]=s,s):i}add(r,e,t,o,i){this.runOp({type:7,parent:r,fi:e,id:t,data:o,children:i})}move(r,e,t){this.runOp({type:9,parent:r,fi:e,id:t})}insertAfter(r,e,t){let o=this._current.insertAfterHelper(r,e,t.length);for(let i=0;i<t.length;i++){let s=t[i];this.add(r,o[i],s.id,s.data,s.children)}}insertBefore(r,e,t){let o=this._current.insertBeforeHelper(r,e,t.length);for(let i=0;i<t.length;i++){let s=t[i];this.add(r,o[i],s.id,s.data,s.children)}}moveAfter(r,e,t){let o=this._current.insertAfterHelper(r,e,t.length);for(let i=0;i<t.length;i++){let s=t[i];this.move(r,o[i],s)}}moveBefore(r,e,t){let o=this._current.insertBeforeHelper(r,e,t.length);for(let i=0;i<t.length;i++){let s=t[i];this.move(r,o[i],s)}}delete(r){this.deleteChildren(r),this.runOp({type:8,id:r})}sortNext(r){return this._current.sortNext(r)}sortPrevious(r){return this._current.sortPrevious(r)}getAllSorted(r){return this._current.getAllSorted(r)}},un=class extends Co{constructor(r,e,t){super(),this._children={},this._parent=r,this._path=e,this._current=t,this[Qs]=()=>{this._parent=null}}unproxy(){return this._current}get length(){return this._current.length}forEach(r){let e=this.length;for(let t=0;t<e;t++){let o=this._current[t].id,i=this._current[t].fi;r(this.data(this._current[t].id),o,i)}}find(r){let e=this.length;for(let t=0;t<e;t++){let o=this._current[t].id;if(r(this.data(o),o))return this.get(o)}}update(r,e){this._current=this._current.modifyById(r,e)}randomId(){return this._current.randomId()}get(r){return{...this._current.get(r),data:this.data(r)}}data(r){let{_current:e,_children:t}=this,o=t===void 0?void 0:t[r];if(o!==void 0)return o;let i=e.get(r)?.data,s=Js(this,r,i);return s!==i?(t===void 0&&(t={},this._children=t),t[r]=s,s):i}runOp(r){this.reportOp(r,this._current.runOp(r))}add(r,e,t){this.runOp({type:4,fi:r,id:e,data:t})}move(r,e){this.runOp({type:6,fi:r,id:e})}insertAfter(r,e){let t=this._current.insertAfterHelper(r,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(t[o],i.id,i.data)}}insertBefore(r,e){let t=this._current.insertBeforeHelper(r,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.add(t[o],i.id,i.data)}}moveAfter(r,e){let t=this._current.insertAfterHelper(r,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(t[o],i)}}moveBefore(r,e){let t=this._current.insertBeforeHelper(r,e.length);for(let o=0;o<e.length;o++){let i=e[o];this.move(t[o],i)}}delete(r){this.deleteChildren(r),this.runOp({type:5,id:r})}};function Yl(n,r,e){if(n.length>0){let t=n[n.length-1];if(t.type===0&&r.type===0&&wt.equal(t.path,e)){Object.assign(t.props,r.props);return}}n.push({...r,path:e})}var Zs=class extends Co{constructor(r){super(),this.ts=[],this.actual=[],this.reverse=[],this._current=r}update(r,e){if(r!=="")throw new Error("");this._current=e}push(r,e,t,o){Yl(this.ts,e,r),Yl(this.actual,t,r),Yl(this.reverse,o,r)}result(){return{data:this._current,ts:this.ts,actual:this.actual,reverse:this.reverse.reverse()}}};function Js(n,r,e){return e instanceof Qe?new dn(n,r,e):e instanceof xe?new un(n,r,e):e instanceof Re?new Proxy(new Kl(n,r,e),sg):e!==null&&typeof e=="object"?an(e)?e:new Proxy(new Xl(n,r,e),ig):e}function Zl(n){let r=new Zs(n);return[Js(r,"",n),r]}function pn(n,r){let[e,t]=Zl(n);return r(e),t.result()}function at(n){return n instanceof dn||n instanceof un?n._current:n!==null&&typeof n=="object"?n[Vd]:n}var wt;(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 r(i,s,l){let c=t(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=r;function e(i,s){if((i instanceof Qe||i instanceof dn)&&typeof s=="string")return i.data(s);if((i instanceof xe||i instanceof un)&&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 t(i,s,l=0){for(;l<s.length&&i!==void 0;)i=e(i,s[l]),l+=1;return i}o.zoom=t})(wt||(wt={}));function Fd(n,r){let e=[];if(r.length===n.length)for(var t=0;t<n.length;){if(r[t]==="*")e.push(n[t]);else if(n[t]!==r[t])return null;t+=1}else return null;return e}function br(n,r){let e=[];if(r.length<=n.length)for(var t=0;t<r.length;){if(r[t]==="*")e.push(n[t]);else if(n[t]!==r[t])return null;t+=1}else return null;return e}var ea=class{},Mi=class extends ea{constructor(e){super();this.id=e}},Bi=class extends ea{constructor(e){super();this.data=e}};var Jl;try{Jl=new TextDecoder}catch{}var ne,oo,C=0;var Yd=[],ec=Yd,tc=0,Et={},Ae,ro,Xt=0,Sr=0,kt,kr,_t=[],Ne,Ud={useRecords:!1,mapsAsObjects:!0},Di=class{},oc=new Di;oc.name="MessagePack 0xC1";var fn=!1,wr=class{constructor(r){r&&(r.useRecords===!1&&r.mapsAsObjects===void 0&&(r.mapsAsObjects=!0),r.structures?r.structures.sharedLength=r.structures.length:r.getStructures&&((r.structures=[]).uninitialized=!0,r.structures.sharedLength=0)),Object.assign(this,r)}unpack(r,e){if(ne)return Jd(()=>(ra(),this?this.unpack(r,e):wr.prototype.unpack.call(Ud,r,e)));oo=e>-1?e:r.length,C=0,tc=0,Sr=0,ro=null,ec=Yd,kt=null,ne=r;try{Ne=r.dataView||(r.dataView=new DataView(r.buffer,r.byteOffset,r.byteLength))}catch(t){throw ne=null,r instanceof Uint8Array?t:new Error("Source must be a Uint8Array or Buffer but was a "+(r&&typeof r=="object"?r.constructor.name:typeof r))}if(this instanceof wr){if(Et=this,this.structures)return Ae=this.structures,ta();(!Ae||Ae.length>0)&&(Ae=[])}else Et=Ud,(!Ae||Ae.length>0)&&(Ae=[]);return ta()}unpackMultiple(r,e){let t,o=0;try{fn=!0;let i=r.length,s=this?this.unpack(r,i):ia.unpack(r,i);if(e){for(e(s);C<i;)if(o=C,e(ta())===!1)return}else{for(t=[s];C<i;)o=C,t.push(ta());return t}}catch(i){throw i.lastPosition=o,i.values=t,i}finally{fn=!1,ra()}}_mergeStructures(r,e){r=r||[];for(let t=0,o=r.length;t<o;t++){let i=r[t];i&&(i.isShared=!0,t>=32&&(i.highByte=t-32>>5))}r.sharedLength=r.length;for(let t in e||[])if(t>=0){let o=r[t],i=e[t];i&&(o&&((r.restoreStructures||(r.restoreStructures=[]))[t]=o),r[t]=i)}return this.structures=r}decode(r,e){return this.unpack(r,e)}};function ta(){try{if(!Et.trusted&&!fn){let r=Ae.sharedLength||0;r<Ae.length&&(Ae.length=r)}let n=We();if(C==oo)Ae.restoreStructures&&zd(),Ae=null,ne=null,kr&&(kr=null);else if(C>oo){let r=new Error("Unexpected end of MessagePack data");throw r.incomplete=!0,r}else if(!fn)throw new Error("Data read, but end of buffer not reached");return n}catch(n){throw Ae.restoreStructures&&zd(),ra(),(n instanceof RangeError||n.message.startsWith("Unexpected end of buffer"))&&(n.incomplete=!0),n}}function zd(){for(let n in Ae.restoreStructures)Ae[n]=Ae.restoreStructures[n];Ae.restoreStructures=null}function We(){let n=ne[C++];if(n<160)if(n<128){if(n<64)return n;{let r=Ae[n&63]||Et.getStructures&&Xd()[n&63];return r?(r.read||(r.read=nc(r,n&63)),r.read()):n}}else if(n<144)if(n-=128,Et.mapsAsObjects){let r={};for(let e=0;e<n;e++)r[Zd()]=We();return r}else{let r=new Map;for(let e=0;e<n;e++)r.set(We(),We());return r}else{n-=144;let r=new Array(n);for(let e=0;e<n;e++)r[e]=We();return r}else if(n<192){let r=n-160;if(Sr>=C)return ro.slice(C-Xt,(C+=r)-Xt);if(Sr==0&&oo<140){let e=r<16?ic(r):Kd(r);if(e!=null)return e}return rc(r)}else{let r;switch(n){case 192:return null;case 193:return kt?(r=We(),r>0?kt[1].slice(kt.position1,kt.position1+=r):kt[0].slice(kt.position0,kt.position0-=r)):oc;case 194:return!1;case 195:return!0;case 196:return Ql(ne[C++]);case 197:return r=Ne.getUint16(C),C+=2,Ql(r);case 198:return r=Ne.getUint32(C),C+=4,Ql(r);case 199:return No(ne[C++]);case 200:return r=Ne.getUint16(C),C+=2,No(r);case 201:return r=Ne.getUint32(C),C+=4,No(r);case 202:if(r=Ne.getFloat32(C),Et.useFloat32>2){let e=na[(ne[C]&127)<<1|ne[C+1]>>7];return C+=4,(e*r+(r>0?.5:-.5)>>0)/e}return C+=4,r;case 203:return r=Ne.getFloat64(C),C+=8,r;case 204:return ne[C++];case 205:return r=Ne.getUint16(C),C+=2,r;case 206:return r=Ne.getUint32(C),C+=4,r;case 207:return Et.int64AsNumber?(r=Ne.getUint32(C)*4294967296,r+=Ne.getUint32(C+4)):r=Ne.getBigUint64(C),C+=8,r;case 208:return Ne.getInt8(C++);case 209:return r=Ne.getInt16(C),C+=2,r;case 210:return r=Ne.getInt32(C),C+=4,r;case 211:return Et.int64AsNumber?(r=Ne.getInt32(C)*4294967296,r+=Ne.getUint32(C+4)):r=Ne.getBigInt64(C),C+=8,r;case 212:if(r=ne[C++],r==114)return $d(ne[C++]&63);{let e=_t[r];if(e)return e.read?(C++,e.read(We())):e.noBuffer?(C++,e()):e(ne.subarray(C,++C));throw new Error("Unknown extension "+r)}case 213:return r=ne[C],r==114?(C++,$d(ne[C++]&63,ne[C++])):No(2);case 214:return No(4);case 215:return No(8);case 216:return No(16);case 217:return r=ne[C++],Sr>=C?ro.slice(C-Xt,(C+=r)-Xt):lg(r);case 218:return r=Ne.getUint16(C),C+=2,Sr>=C?ro.slice(C-Xt,(C+=r)-Xt):cg(r);case 219:return r=Ne.getUint32(C),C+=4,Sr>=C?ro.slice(C-Xt,(C+=r)-Xt):dg(r);case 220:return r=Ne.getUint16(C),C+=2,Hd(r);case 221:return r=Ne.getUint32(C),C+=4,Hd(r);case 222:return r=Ne.getUint16(C),C+=2,Wd(r);case 223:return r=Ne.getUint32(C),C+=4,Wd(r);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 ag=/^[a-zA-Z_$][a-zA-Z\d_$]*$/;function nc(n,r){function e(){if(e.count++>2){let o=n.read=new Function("r","return function(){return {"+n.map(i=>ag.test(i)?i+":r()":"["+JSON.stringify(i)+"]:r()").join(",")+"}}")(We);return n.highByte===0&&(n.read=kd(r,n.read)),o()}let t={};for(let o=0,i=n.length;o<i;o++){let s=n[o];t[s]=We()}return t}return e.count=0,n.highByte===0?kd(r,e):e}var kd=(n,r)=>function(){let e=ne[C++];if(e===0)return r();let t=n<32?-(n+(e<<5)):n+(e<<5),o=Ae[t]||Xd()[t];if(!o)throw new Error("Record id is not defined for "+t);return o.read||(o.read=nc(o,n)),o.read()};function Xd(){let n=Jd(()=>(ne=null,Et.getStructures()));return Ae=Et._mergeStructures(n,Ae)}var rc=oa,lg=oa,cg=oa,dg=oa;function oa(n){let r;if(n<16&&(r=ic(n)))return r;if(n>64&&Jl)return Jl.decode(ne.subarray(C,C+=n));let e=C+n,t=[];for(r="";C<e;){let o=ne[C++];if((o&128)===0)t.push(o);else if((o&224)===192){let i=ne[C++]&63;t.push((o&31)<<6|i)}else if((o&240)===224){let i=ne[C++]&63,s=ne[C++]&63;t.push((o&31)<<12|i<<6|s)}else if((o&248)===240){let i=ne[C++]&63,s=ne[C++]&63,l=ne[C++]&63,c=(o&7)<<18|i<<12|s<<6|l;c>65535&&(c-=65536,t.push(c>>>10&1023|55296),c=56320|c&1023),t.push(c)}else t.push(o);t.length>=4096&&(r+=lt.apply(String,t),t.length=0)}return t.length>0&&(r+=lt.apply(String,t)),r}function Hd(n){let r=new Array(n);for(let e=0;e<n;e++)r[e]=We();return r}function Wd(n){if(Et.mapsAsObjects){let r={};for(let e=0;e<n;e++)r[Zd()]=We();return r}else{let r=new Map;for(let e=0;e<n;e++)r.set(We(),We());return r}}var lt=String.fromCharCode;function Kd(n){let r=C,e=new Array(n);for(let t=0;t<n;t++){let o=ne[C++];if((o&128)>0){C=r;return}e[t]=o}return lt.apply(String,e)}function ic(n){if(n<4)if(n<2){if(n===0)return"";{let r=ne[C++];if((r&128)>1){C-=1;return}return lt(r)}}else{let r=ne[C++],e=ne[C++];if((r&128)>0||(e&128)>0){C-=2;return}if(n<3)return lt(r,e);let t=ne[C++];if((t&128)>0){C-=3;return}return lt(r,e,t)}else{let r=ne[C++],e=ne[C++],t=ne[C++],o=ne[C++];if((r&128)>0||(e&128)>0||(t&128)>0||(o&128)>0){C-=4;return}if(n<6){if(n===4)return lt(r,e,t,o);{let i=ne[C++];if((i&128)>0){C-=5;return}return lt(r,e,t,o,i)}}else if(n<8){let i=ne[C++],s=ne[C++];if((i&128)>0||(s&128)>0){C-=6;return}if(n<7)return lt(r,e,t,o,i,s);let l=ne[C++];if((l&128)>0){C-=7;return}return lt(r,e,t,o,i,s,l)}else{let i=ne[C++],s=ne[C++],l=ne[C++],c=ne[C++];if((i&128)>0||(s&128)>0||(l&128)>0||(c&128)>0){C-=8;return}if(n<10){if(n===8)return lt(r,e,t,o,i,s,l,c);{let u=ne[C++];if((u&128)>0){C-=9;return}return lt(r,e,t,o,i,s,l,c,u)}}else if(n<12){let u=ne[C++],a=ne[C++];if((u&128)>0||(a&128)>0){C-=10;return}if(n<11)return lt(r,e,t,o,i,s,l,c,u,a);let d=ne[C++];if((d&128)>0){C-=11;return}return lt(r,e,t,o,i,s,l,c,u,a,d)}else{let u=ne[C++],a=ne[C++],d=ne[C++],p=ne[C++];if((u&128)>0||(a&128)>0||(d&128)>0||(p&128)>0){C-=12;return}if(n<14){if(n===12)return lt(r,e,t,o,i,s,l,c,u,a,d,p);{let f=ne[C++];if((f&128)>0){C-=13;return}return lt(r,e,t,o,i,s,l,c,u,a,d,p,f)}}else{let f=ne[C++],m=ne[C++];if((f&128)>0||(m&128)>0){C-=14;return}if(n<15)return lt(r,e,t,o,i,s,l,c,u,a,d,p,f,m);let h=ne[C++];if((h&128)>0){C-=15;return}return lt(r,e,t,o,i,s,l,c,u,a,d,p,f,m,h)}}}}}function Ql(n){return Et.copyBuffers?Uint8Array.prototype.slice.call(ne,C,C+=n):ne.subarray(C,C+=n)}function No(n){let r=ne[C++];if(_t[r])return _t[r](ne.subarray(C,C+=n));throw new Error("Unknown extension type "+r)}var qd=new Array(4096);function Zd(){let n=ne[C++];if(n>=160&&n<192){if(n=n-160,Sr>=C)return ro.slice(C-Xt,(C+=n)-Xt);if(!(Sr==0&&oo<180))return rc(n)}else return C--,We();let r=(n<<5^(n>1?Ne.getUint16(C):n>0?ne[C]:0))&4095,e=qd[r],t=C,o=C+n-3,i,s=0;if(e&&e.bytes==n){for(;t<o;){if(i=Ne.getUint32(t),i!=e[s++]){t=1879048192;break}t+=4}for(o+=3;t<o;)if(i=ne[t++],i!=e[s++]){t=1879048192;break}if(t===o)return C=t,e.string;o-=3,t=C}for(e=[],qd[r]=e,e.bytes=n;t<o;)i=Ne.getUint32(t),e.push(i),t+=4;for(o+=3;t<o;)i=ne[t++],e.push(i);let l=n<16?ic(n):Kd(n);return l!=null?e.string=l:e.string=rc(n)}var $d=(n,r)=>{var e=We();let t=n;r!==void 0&&(n=n<32?-((r<<5)+n):(r<<5)+n,e.highByte=r);let o=Ae[n];return o&&o.isShared&&((Ae.restoreStructures||(Ae.restoreStructures=[]))[n]=o),Ae[n]=e,e.read=nc(e,t),e.read()},Qd=typeof self=="object"?self:global;_t[0]=()=>{};_t[0].noBuffer=!0;_t[101]=()=>{let n=We();return(Qd[n[0]]||Error)(n[1])};_t[105]=n=>{let r=Ne.getUint32(C-4);kr||(kr=new Map);let e=ne[C],t;e>=144&&e<160||e==220||e==221?t=[]:t={};let o={target:t};kr.set(r,o);let i=We();return o.used?Object.assign(t,i):(o.target=i,i)};_t[112]=n=>{let r=Ne.getUint32(C-4),e=kr.get(r);return e.used=!0,e.target};_t[115]=()=>new Set(We());var sc=["Int8","Uint8","Uint8Clamped","Int16","Uint16","Int32","Uint32","Float32","Float64","BigInt64","BigUint64"].map(n=>n+"Array");_t[116]=n=>{let r=n[0],e=sc[r];if(!e)throw new Error("Could not find typed array for code "+r);return new Qd[e](Uint8Array.prototype.slice.call(n,1).buffer)};_t[120]=()=>{let n=We();return new RegExp(n[0],n[1])};_t[98]=n=>{let r=(n[0]<<24)+(n[1]<<16)+(n[2]<<8)+n[3],e=C;C+=r-4,kt=[We(),We()],kt.position0=0,kt.position1=0;let t=C;C=e;try{return We()}finally{C=t}};_t[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 Jd(n){let r=oo,e=C,t=tc,o=Xt,i=Sr,s=ro,l=ec,c=kr,u=kt,a=new Uint8Array(ne.slice(0,oo)),d=Ae,p=Ae.slice(0,Ae.length),f=Et,m=fn,h=n();return oo=r,C=e,tc=t,Xt=o,Sr=i,ro=s,ec=l,kr=c,kt=u,ne=a,fn=m,Ae=d,Ae.splice(0,Ae.length,...p),Et=f,Ne=new DataView(ne.buffer,ne.byteOffset,ne.byteLength),h}function ra(){ne=null,kr=null,Ae=null}function eu(n){n.unpack?_t[n.type]=n.unpack:_t[n.type]=n}var na=new Array(147);for(let n=0;n<256;n++)na[n]=+("1e"+Math.floor(45.15-n*.30103));var ia=new wr({useRecords:!1}),ug=ia.unpack,pg=ia.unpackMultiple,fg=ia.unpack,sa={NEVER:0,ALWAYS:1,DECIMAL_ROUND:3,DECIMAL_FIT:4},mg=new Float32Array(1),QT=new Uint8Array(mg.buffer,0,4);var aa;try{aa=new TextEncoder}catch{}var la,lc,ca=typeof Buffer<"u",ac=ca?Buffer.allocUnsafeSlow:Uint8Array,nu=ca?Buffer:Uint8Array,tu=ca?4294967296:2144337920,R,Ye,E=0,_r,Tr=null,hg=/[\u0080-\uFFFF]/,Gi=Symbol("record-id"),Eo=class extends wr{constructor(r){super(r),this.offset=0;let e,t,o,i,s,l,c=0,u=nu.prototype.utf8Write?function(x,P,O){return R.utf8Write(x,P,O)}:aa&&aa.encodeInto?function(x,P){return aa.encodeInto(x,R.subarray(P)).written}:!1,a=this;r||(r={});let d=r&&r.sequential,p=r.structures||r.saveStructures,f=r.maxSharedStructures;if(f==null&&(f=p?32:0),f>8160)throw new Error("Maximum maxSharedStructure is 8160");let m=r.maxOwnStructures;m==null&&(m=p?32:64),d&&!r.saveStructures&&(this.structures=[]);let h=f>32||m+f>64,y=f+64,g=f+m+64;if(g>8256)throw new Error("Maximum maxSharedStructure + maxOwnStructure is 8192");let v=[],w=0,b=0;this.pack=this.encode=function(x,P){if(R||(R=new ac(8192),Ye=new DataView(R.buffer,0,8192),E=0),_r=R.length-10,_r-E<2048?(R=new ac(R.length),Ye=new DataView(R.buffer,0,R.length),_r=R.length-10,E=0):E=E+7&2147483640,t=E,l=a.structuredClone?new Map:null,a.bundleStrings?(Tr=["",""],R[E++]=214,R[E++]=98,Tr.position=E-t,E+=4):Tr=null,o=a.structures,o){o.uninitialized&&(o=a._mergeStructures(a.getStructures()));let O=o.sharedLength||0;if(O>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 I=0;I<O;I++){let T=o[I];if(!T)continue;let N,L=o.transitions;for(let U=0,K=T.length;U<K;U++){let J=T[U];N=L[J],N||(N=L[J]=Object.create(null)),L=N}L[Gi]=I+64}c=O}d||(o.nextId=O+64)}i&&(i=!1),s=o||[];try{if(S(x),Tr){Ye.setUint32(Tr.position+t,E-Tr.position-t);let O=Tr;Tr=null,S(O[0]),S(O[1])}if(a.offset=E,l&&l.idsToInsert){E+=l.idsToInsert.length*6,E>_r&&_(E),a.offset=E;let O=gg(R.subarray(t,E),l.idsToInsert);return l=null,O}return P&su?(R.start=t,R.end=E,R):R.subarray(t,E)}finally{if(o){if(b<10&&b++,w>1e4)o.transitions=null,b=0,w=0,v.length>0&&(v=[]);else if(v.length>0&&!d){for(let O=0,I=v.length;O<I;O++)v[O][Gi]=0;v=[]}if(i&&a.saveStructures){let O=o.sharedLength||f;o.length>O&&(o=o.slice(0,O));let I=R.subarray(t,E);return a.saveStructures(o,c)===!1?(a._mergeStructures(a.getStructures()),a.pack(x)):(c=O,I)}}P&Tg&&(E=t)}};let S=x=>{E>_r&&(R=_(E));var P=typeof x,O;if(P==="string"){let I=x.length;if(Tr&&I>=8&&I<4096){let L=hg.test(x);Tr[L?0:1]+=x,R[E++]=193,S(L?-I:I);return}let T;I<32?T=1:I<256?T=2:I<65536?T=3:T=5;let N=I*3;if(E+N>_r&&(R=_(E+N)),I<64||!u){let L,U,K,J=E+T;for(L=0;L<I;L++)U=x.charCodeAt(L),U<128?R[J++]=U:U<2048?(R[J++]=U>>6|192,R[J++]=U&63|128):(U&64512)===55296&&((K=x.charCodeAt(L+1))&64512)===56320?(U=65536+((U&1023)<<10)+(K&1023),L++,R[J++]=U>>18|240,R[J++]=U>>12&63|128,R[J++]=U>>6&63|128,R[J++]=U&63|128):(R[J++]=U>>12|224,R[J++]=U>>6&63|128,R[J++]=U&63|128);O=J-E-T}else O=u(x,E+T,N);O<32?R[E++]=160|O:O<256?(T<2&&R.copyWithin(E+2,E+1,E+1+O),R[E++]=217,R[E++]=O):O<65536?(T<3&&R.copyWithin(E+3,E+2,E+2+O),R[E++]=218,R[E++]=O>>8,R[E++]=O&255):(T<5&&R.copyWithin(E+5,E+3,E+3+O),R[E++]=219,Ye.setUint32(E,O),E+=4),E+=O}else if(P==="number")if(x>>>0===x)x<64?R[E++]=x:x<256?(R[E++]=204,R[E++]=x):x<65536?(R[E++]=205,R[E++]=x>>8,R[E++]=x&255):(R[E++]=206,Ye.setUint32(E,x),E+=4);else if(x>>0===x)x>=-32?R[E++]=256+x:x>=-128?(R[E++]=208,R[E++]=x+256):x>=-32768?(R[E++]=209,Ye.setInt16(E,x),E+=2):(R[E++]=210,Ye.setInt32(E,x),E+=4);else{let I;if((I=this.useFloat32)>0&&x<4294967296&&x>=-2147483648){R[E++]=202,Ye.setFloat32(E,x);let T;if(I<4||(T=x*na[(R[E]&127)<<1|R[E+1]>>7])>>0===T){E+=4;return}else E--}R[E++]=203,Ye.setFloat64(E,x),E+=8}else if(P==="object")if(!x)R[E++]=192;else{if(l){let T=l.get(x);if(T){if(!T.id){let N=l.idsToInsert||(l.idsToInsert=[]);T.id=N.push(T)}R[E++]=214,R[E++]=112,Ye.setUint32(E,T.id),E+=4;return}else l.set(x,{offset:E-t})}let I=x.constructor;if(I===Object)A(x,!0);else if(I===Array){O=x.length,O<16?R[E++]=144|O:O<65536?(R[E++]=220,R[E++]=O>>8,R[E++]=O&255):(R[E++]=221,Ye.setUint32(E,O),E+=4);for(let T=0;T<O;T++)S(x[T])}else if(I===Map){O=x.size,O<16?R[E++]=128|O:O<65536?(R[E++]=222,R[E++]=O>>8,R[E++]=O&255):(R[E++]=223,Ye.setUint32(E,O),E+=4);for(let[T,N]of x)S(T),S(N)}else{for(let T=0,N=la.length;T<N;T++){let L=lc[T];if(x instanceof L){let U=la[T];if(U.write){U.type&&(R[E++]=212,R[E++]=U.type,R[E++]=0),S(U.write.call(this,x));return}let K=R,J=Ye,se=E;R=null;let z;try{z=U.pack.call(this,x,W=>(R=K,K=null,E+=W,E>_r&&_(E),{target:R,targetView:Ye,position:E-W}),S)}finally{K&&(R=K,Ye=J,E=se,_r=R.length-10)}z&&(z.length+E>_r&&_(z.length+E),E=yg(z,R,E,U.type));return}}A(x,!x.hasOwnProperty)}}else if(P==="boolean")R[E++]=x?195:194;else if(P==="bigint"){if(x<BigInt(1)<<BigInt(63)&&x>=-(BigInt(1)<<BigInt(63)))R[E++]=211,Ye.setBigInt64(E,x);else if(x<BigInt(1)<<BigInt(64)&&x>0)R[E++]=207,Ye.setBigUint64(E,x);else if(this.largeBigIntToFloat)R[E++]=203,Ye.setFloat64(E,Number(x));else throw new RangeError(x+" was too large to fit in MessagePack 64-bit integer format, set largeBigIntToFloat to convert to float-64");E+=8}else if(P==="undefined")this.encodeUndefinedAsNil?R[E++]=192:(R[E++]=212,R[E++]=0,R[E++]=0);else if(P==="function")S(this.writeFunction&&this.writeFunction());else throw new Error("Unknown type: "+P)},A=this.useRecords===!1?this.variableMapSize?x=>{let P=Object.keys(x),O=P.length;O<16?R[E++]=128|O:O<65536?(R[E++]=222,R[E++]=O>>8,R[E++]=O&255):(R[E++]=223,Ye.setUint32(E,O),E+=4);let I;for(let T=0;T<O;T++)S(I=P[T]),S(x[I])}:(x,P)=>{R[E++]=222;let O=E-t;E+=2;let I=0;for(let T in x)(P||x.hasOwnProperty(T))&&(S(T),S(x[T]),I++);R[O+++t]=I>>8,R[O+t]=I&255}:x=>{let P=Object.keys(x),O,I=s.transitions||(s.transitions=Object.create(null)),T=0;for(let L=0,U=P.length;L<U;L++){let K=P[L];O=I[K],O||(O=I[K]=Object.create(null),T++),I=O}let N=I[Gi];if(N)N>=96&&h?(R[E++]=((N-=96)&31)+96,R[E++]=N>>5):R[E++]=N;else{N=s.nextId,N||(N=64),N<y&&this.shouldShareStructure&&!this.shouldShareStructure(P)?(N=s.nextOwnId,N<g||(N=y),s.nextOwnId=N+1):(N>=g&&(N=y),s.nextId=N+1);let L=P.highByte=N>=96&&h?N-96>>5:-1;I[Gi]=N,s[N-64]=P,N<y?(P.isShared=!0,s.sharedLength=N-63,i=!0,L>=0?(R[E++]=(N&31)+96,R[E++]=L):R[E++]=N):(L>=0?(R[E++]=213,R[E++]=114,R[E++]=(N&31)+96,R[E++]=L):(R[E++]=212,R[E++]=114,R[E++]=N),T&&(w+=b*T),v.length>=m&&(v.shift()[Gi]=0),v.push(I),S(P))}for(let L=0,U=P.length;L<U;L++)S(x[P[L]])},_=x=>{let P;if(x>16777216){if(x-t>tu)throw new Error("Packed buffer would be larger than maximum buffer size");P=Math.min(tu,Math.round(Math.max((x-t)*(x>67108864?1.25:2),4194304)/4096)*4096)}else P=(Math.max(x-t<<2,R.length-1)>>12)+1<<12;let O=new ac(P);return Ye=new DataView(O.buffer,0,P),R.copy?R.copy(O,0,t,x):O.set(R.slice(t,x)),E-=t,t=0,_r=O.length-10,R=O}}useBuffer(r){R=r,Ye=new DataView(R.buffer,R.byteOffset,R.byteLength),E=0}};lc=[Date,Set,Error,RegExp,ArrayBuffer,Object.getPrototypeOf(Uint8Array.prototype).constructor,Di];la=[{pack(n,r,e){let t=n.getTime()/1e3;if((this.useTimestamp32||n.getMilliseconds()===0)&&t>=0&&t<4294967296){let{target:o,targetView:i,position:s}=r(6);o[s++]=214,o[s++]=255,i.setUint32(s,t)}else if(t>0&&t<17179869184){let{target:o,targetView:i,position:s}=r(10);o[s++]=215,o[s++]=255,i.setUint32(s,n.getMilliseconds()*4e6+(t/1e3/4294967296>>0)),i.setUint32(s+4,t)}else if(isNaN(t)){if(this.onInvalidDate)return r(0),e(this.onInvalidDate());let{target:o,targetView:i,position:s}=r(3);o[s++]=212,o[s++]=255,o[s++]=255}else{let{target:o,targetView:i,position:s}=r(15);o[s++]=199,o[s++]=12,o[s++]=255,i.setUint32(s,n.getMilliseconds()*1e6),i.setBigInt64(s+4,BigInt(Math.floor(t)))}}},{pack(n,r,e){let t=Array.from(n),{target:o,position:i}=r(this.structuredClone?3:0);this.structuredClone&&(o[i++]=212,o[i++]=115,o[i++]=0),e(t)}},{pack(n,r,e){let{target:t,position:o}=r(this.structuredClone?3:0);this.structuredClone&&(t[o++]=212,t[o++]=101,t[o++]=0),e([n.name,n.message])}},{pack(n,r,e){let{target:t,position:o}=r(this.structuredClone?3:0);this.structuredClone&&(t[o++]=212,t[o++]=120,t[o++]=0),e([n.source,n.flags])}},{pack(n,r){this.structuredClone?ru(n,16,r):ou(ca?Buffer.from(n):new Uint8Array(n),r)}},{pack(n,r){let e=n.constructor;e!==nu&&this.structuredClone?ru(n,sc.indexOf(e.name),r):ou(n,r)}},{pack(n,r){let{target:e,position:t}=r(1);e[t]=193}}];function ru(n,r,e,t){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++]=r,i.set(new Uint8Array(n.buffer,n.byteOffset,n.byteLength),s)}function ou(n,r){let e=n.byteLength;var t,o;if(e<256){var{target:t,position:o}=r(e+2);t[o++]=196,t[o++]=e}else if(e<65536){var{target:t,position:o}=r(e+3);t[o++]=197,t[o++]=e>>8,t[o++]=e&255}else{var{target:t,position:o,targetView:i}=r(e+5);t[o++]=198,i.setUint32(o,e),o+=4}t.set(n,o)}function yg(n,r,e,t){let o=n.length;switch(o){case 1:r[e++]=212;break;case 2:r[e++]=213;break;case 4:r[e++]=214;break;case 8:r[e++]=215;break;case 16:r[e++]=216;break;default:o<256?(r[e++]=199,r[e++]=o):o<65536?(r[e++]=200,r[e++]=o>>8,r[e++]=o&255):(r[e++]=201,r[e++]=o>>24,r[e++]=o>>16&255,r[e++]=o>>8&255,r[e++]=o&255)}return r[e++]=t,r.set(n,e),e+=o,e}function gg(n,r){let e,t=r.length*6,o=n.length-t;for(r.sort((i,s)=>i.offset>s.offset?1:-1);e=r.pop();){let i=e.offset,s=e.id;n.copyWithin(i+t,i,o),t-=6;let l=i+t;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 no(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)");lc.unshift(n.Class),la.unshift(n)}eu(n)}var iu=new Eo({useRecords:!1}),xg=iu.pack,vg=iu.pack;var{NEVER:bg,ALWAYS:Sg,DECIMAL_ROUND:wg,DECIMAL_FIT:_g}=sa,su=512,Tg=1024;var au=new Eo({structuredClone:!0});no({Class:Re.prototype.constructor,type:1,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,Re.prototype),n}});no({Class:xe.prototype.constructor,type:2,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,xe.prototype),n}});no({Class:Qe.prototype.constructor,type:3,write(n){return[...n]},read(n){return Object.setPrototypeOf(n,Qe.prototype),n}});no({Class:Mi.prototype.constructor,type:4,write(n){return n.id},read(n){return new Mi(n)}});no({Class:Bi.prototype.constructor,type:5,write(n){return n.data},read(n){return new Bi(n)}});no({Class:ze.prototype.constructor,type:6,write(n){return{...n}},read(n){return Object.setPrototypeOf(n,ze.prototype),n}});function Og(n){var r=0;if(n.length===0)return r;for(let e=0;e<n.length;e++){let t=n[e];r=(r<<5)-r+t,r=r&r}return r}function cc(n){if(an(n))return n;if(Array.isArray(n))return n.map(cc);if(typeof n=="object"&&n!==null){let r={};for(let e of Object.keys(n).sort())r[e]=cc(n[e]);return Object.setPrototypeOf(r,Object.getPrototypeOf(n)),r}else return n}var da;(t=>{function n(o){return au.pack(o)}t.serialize=n;function r(o){return au.unpack(o)}t.deserialize=r;function e(o){return Og(n(cc(o))).toString()}t.checksum=e})(da||(da={}));var lu;(e=>{function n(t,o){return t[0]===o[0]&&t[1]===o[1]}e.isEqual=n;function r(t,o,i){return[t[0]+(o[0]-t[0])*i,t[1]+(o[1]-t[1])*i]}e.lerp=r})(lu||(lu={}));var io;(s=>{function n(l,c){return l[0]===c[0]&&l[1]===c[1]&&l[2]===c[2]}s.isEqual=n;function r(l,c){return[l[0]+c[0],l[1]+c[1],l[2]+c[2]]}s.add=r;function e(l,c){return[l[0]-c[0],l[1]-c[1],l[2]-c[2]]}s.sub=e;function t(l,c){return[l[0]/c[0],l[1]/c[1],l[2]/c[2]]}s.div=t;function o(l,c){return[l[0]*c[0],l[1]*c[1],l[2]*c[2]]}s.mul=o;function i(l,c,u){return[l[0]+(c[0]-l[0])*u,l[1]+(c[1]-l[1])*u,l[2]+(c[2]-l[2])*u]}s.lerp=i})(io||(io={}));var cu;(e=>{function n(t,o){return t[0]===o[0]&&t[1]===o[1]&&t[2]===o[2]&&t[3]===o[3]}e.isEqual=n;function r(t,o,i){return[t[0]+(o[0]-t[0])*i,t[1]+(o[1]-t[1])*i,t[2]+(o[2]-t[2])*i,t[3]+(o[3]-t[3])*i]}e.lerp=r})(cu||(cu={}));var so;(o=>{o.identity=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function r(i,s){for(let l=0;l<16;l++)if(i[l]!==s[l])return!1;return!0}o.isEqual=r;function e(i){return i??o.identity}o.simplify=e;function t(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=t})(so||(so={}));var Lt;(u=>{function n(a){return typeof a=="object"&&typeof a.r=="number"&&typeof a.g=="number"&&typeof a.b=="number"}u.isRGB=n,u.white={r:1,g:1,b:1},u.red={r:1,g:0,b:0},u.black={r:0,g:0,b:0};function o(a){return{r:Math.round(a.r*255),g:Math.round(a.g*255),b:Math.round(a.b*255),a:1}}u.toRgb255a1=o;function i(a){return{r:a.r,g:a.g,b:a.b}}u.clone=i;function s(a){return a=Math.floor(a),{r:(a>>16&255)/255,g:(a>>8&255)/255,b:(a&255)/255}}u.fromHex=s;function l(a,d){return a.r===d.r&&a.g===d.g&&a.b===d.b}u.equals=l;function c(a,d,p){return{r:a.r+(d.r-a.r)*p,g:a.g+(d.g-a.g)*p,b:a.b+(d.b-a.b)*p}}u.lerp=c})(Lt||(Lt={}));var ir;(l=>{l.white={...Lt.white,a:1},l.transparent={...Lt.white,a:0};function e(c){return{r:c[0],g:c[1],b:c[2],a:c[3]}}l.from0to1=e;function t(c,u){return{...Lt.fromHex(c),a:u}}l.fromHexAndA=t;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 Lt.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})(ir||(ir={}));var ua;(r=>r.identity={position:[0,0,0],rotation:[0,0,0],scale:[1,1,1]})(ua||(ua={}));var du;(r=>r.defaultData={mass:1,stiffness:80,damping:10,velocity:0})(du||(du={}));var uu;(r=>r.defaultData={control1:[.5,.05],control2:[.1,.3]})(uu||(uu={}));var sr;(e=>{e.all=["PerspectiveCamera","OrthographicCamera"];function r(t){return e.all.includes(t)}e.is=r})(sr||(sr={}));var Lo;(o=>{o.DefaultUp=[0,1,0],o.DefaultTargetOffset=1e3,o.defaultData={far:1e5,type:"OrthographicCamera",perspective:{near:70,fov:45,zoom:1},orthographic:{near:-1e5,zoom:1},up:o.DefaultUp,isUpVectorFlipped:!1,targetOffset:o.DefaultTargetOffset};function t(i){return i.type==="PerspectiveCamera"?i.perspective.zoom:i.orthographic.zoom}o.getZoom=t})(Lo||(Lo={}));var Or;(e=>{function n(t,o=.1){return{disabled:!1,type:"linear",hideBase:!1,count:3,radial:{radius:Math.max(t[0],t[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:[t[0]+t[0]*o,0,0]},grid:{count:[2,2,2],size:t.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 r(t,o){let i={...t};if(Ag.forEach(s=>{Object.assign(i,{[s]:o[s]??t[s]})}),i.radial={...t.radial},o.radial){let s=t.radial,l=o.radial;Pg.forEach(c=>{Object.assign(i.radial,{[c]:l[c]??s[c]})})}if(i.linear={...t.linear},o.linear){let s=t.linear,l=o.linear;Ig.forEach(c=>{Object.assign(i.linear,{[c]:l[c]??s[c]})})}if(i.grid={...t.grid},o.grid){let s=t.grid,l=o.grid;Cg.forEach(c=>{Object.assign(i.grid,{[c]:l[c]??s[c]})})}if(i.toObject={...t.toObject},o.toObject){let s=t.toObject,l=o.toObject;Ng.forEach(c=>{Object.assign(i.toObject,{[c]:l[c]??s[c]})})}if(i.randomnessObject={...t.randomnessObject},o.randomnessObject){let s=t.randomnessObject,l=o.randomnessObject;Eg.forEach(c=>{Object.assign(i.randomnessObject,{[c]:l[c]??s[c]})})}return i}e.merge=r})(Or||(Or={}));var pa;(t=>{t.defaultData={radial:{},linear:{},grid:{},toObject:{},randomnessObject:{}};let r=["radial","linear","grid","toObject","randomnessObject"];function e(o,i){let s=[];o.count!==void 0&&s.push({type:0,path:i,props:{count:o.count}});for(let l of r){let c=o[l];c&&Object.keys(c).length>0&&s.push({type:0,path:[...i,l],props:c})}return s}t.toOps=e})(pa||(pa={}));var Ag=["count"],Pg=["radius","start","end","position","scale","rotation"],Ig=["position","scale","rotation"],Cg=["count","size"],Ng=["count","position","scale","rotation"],Eg=["strength","scale","rotation","position","movement","seed","freqScale"];var fa;(e=>{e.all=["PointLight","SpotLight","DirectionalLight","HemisphereLight"];function r(t){return e.all.includes(t)}e.is=r})(fa||(fa={}));var ma;(e=>{function n(t){return r(t)}e.defaultData=n;function r(t){if(t==="PointLight")return{type:t,color:ir.white,intensity:1,distance:2e3,decay:1,shadows:!0,shadowResolution:1024,shadowRadius:1,depth:1e5};if(t==="SpotLight")return{type:t,color:ir.white,intensity:1,distance:2e3,decay:1,shadows:!0,penumbra:0,angle:30/180*Math.PI,depth:1e5,shadowResolution:1024,shadowRadius:1};if(t==="DirectionalLight")return{type:t,color:ir.white,intensity:1,shadows:!0,size:1e3,depth:1e5,shadowResolution:1024,shadowRadius:1};throw new Error("not implemented")}})(ma||(ma={}));var dc;(e=>{e.defaultData={castShadow:!0,receiveShadow:!0};function r(t,o){return t.castShadow===o.castShadow&&t.receiveShadow===o.receiveShadow}e.equals=r})(dc||(dc={}));var uc;(e=>{e.defaultData={flatShading:!1,wireframe:!1,side:0};function r(t,o){return t.flatShading===o.flatShading&&t.side===o.side&&t.wireframe===o.wireframe}e.equals=r})(uc||(uc={}));var ha;(r=>r.defaultData={...uc.defaultData,...dc.defaultData})(ha||(ha={}));var mn;(e=>(e.defaultVideo={data:"",thumb:"/_assets/_videos/catThumb.png",type:"video",name:"Cat video"},e.maxSize=3e7))(mn||(mn={}));var pu=["mode","gradientType","noiseType","displacementType","projection","cnormal","crop","axis","side"],fu=["wrapping","image","video"],Tt;(o=>{function n(i,s){let{texture:l,...c}=s;if(Object.assign(i,c),l){let u=i.texture;u&&Object.assign(u,l)}}o.patch=n;function r(i,s){return i==="light"&&s?e(s):t(i)}o.defaultData=r;function e(i){switch(i){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 t(i){switch(i){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:1e3,repeat:[1,1],offset:[0,0]},crop:!1};case"video":return{alpha:1,visible:!0,size:[128,128],mode:0,axis:"x",side:2,type:"video",projection:0,texture:{video:mn.defaultVideo,wrapping:1001,repeat:[1,1],offset:[0,0]},crop:!0};case"color":return{type:"color",alpha:1,visible:!0,mode:0,color:Lt.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:{...Lt.fromHex(6710886),a:1},colorB:{...Lt.fromHex(6710886),a:1},colorC:{...Lt.fromHex(16777215),a:1},colorD:{...Lt.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:ir.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:ir.fromHexAndA(0,0),offset:[0,0,0]};case"outline":return{type:"outline",alpha:1,visible:!0,mode:0,outlineColor:ir.fromHexAndA(0,1),contourColor:ir.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}}}})(Tt||(Tt={}));var Mt;(c=>{function n(u){return!u.layers.some(d=>d.data.type==="texture"&&d.data.projection!==0||d.data.type==="depth"&&!d.data.isWorldSpace||d.data.type==="noise"||d.data.type==="displace")}c.isMergable=n;function r(u){let a="";return u.layers.forEach(d=>{Object.entries(d.data).forEach(([p,f])=>{a+=`${p}${f}`,Array.isArray(f)?f.forEach(m=>a+=`${m}`):typeof f=="object"?Object.values(f).forEach(m=>{typeof m=="number"?a+=`${m.toFixed(4)}`:a+=`${m}`}):a+=`${f}`})}),a}c.getHash=r;function e(){return{layers:new xe}}c.defaultEmptyData=e;function t(u="layer1",a="layer2"){return i("phong",u,a)}c.defaultData=t;function o(u,a){return{...u,name:a}}c.withName=o;function i(u,a="layer1",d="layer2"){let p=new xe;return p.push({fi:0,data:Tt.defaultData("light",u),id:a}),p.push({fi:1,data:Tt.defaultData("color"),id:d}),{layers:p}}c.defaultTwoLayerData=i;function s(u,a="phong",d="layer1",p="layer2"){let f=Tt.defaultData("texture");Object.assign(f.texture,{image:u});let m=new xe;return m.push({fi:0,data:f,id:d}),m.push({fi:1,data:Tt.defaultData("light",a),id:p}),{layers:m}}c.defaultTwoLayerTextureData=s;function l(u,a="phong",d="layer1",p="layer2"){let f=Tt.defaultData("video");Object.assign(f.texture,{video:u});let m=new xe;return m.push({fi:0,data:f,id:d}),m.push({fi:1,data:Tt.defaultData("light",a),id:p}),{layers:m}}c.defaultTwoLayerVideoTextureData=l})(Mt||(Mt={}));var hn;(r=>{function n(){return{points:new xe,roundness:0,shapeHoles:[],isClosed:!1}}r.defaultData=n})(hn||(hn={}));var Ri;(r=>{function n(e){return e==="PolygonGeometry"||e==="RectangleGeometry"||e==="StarGeometry"||e==="TriangleGeometry"||e==="EllipseGeometry"}r.is2DParametricMesh=n})(Ri||(Ri={}));var ao;(r=>{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:hn.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")}r.defaultData=n})(ao||(ao={}));var mu;(e=>{function n(t){return t==="Component"||t==="Instance"}e.isComponentRelated=n;function r(t){return t==="Empty"||t==="Instance"}e.isEmptyOrComponent=r})(mu||(mu={}));var yn;(o=>{o.identity={...ua.identity,hiddenMatrix:so.identity};function r(i){return{position:i.position,rotation:i.rotation,scale:i.scale,hiddenMatrix:i.hiddenMatrix}}o.fromObject=r;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 t(i,s){return{position:io.isEqual(i.position,s.position)?null:s.position,rotation:io.isEqual(i.rotation,s.rotation)?null:s.rotation,scale:io.isEqual(i.scale,s.scale)?null:s.scale,hiddenMatrix:so.isEqual(i.hiddenMatrix,s.hiddenMatrix)?null:s.hiddenMatrix}}o.diff=t})(yn||(yn={}));var pc;(r=>r.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]})(pc||(pc={}));var Ht;(r=>r.defaultData={states:new xe,events:new xe,visible:!0,raycastLock:!1,physics:null,...yn.identity,cloner:null})(Ht||(Ht={}));var hu;(r=>r.defaultData={type:"Empty",...Ht.defaultData})(hu||(hu={}));var yu;(r=>r.defaultData={type:"Component",...Ht.defaultData})(yu||(yu={}));var Mo;(r=>r.defaultData={type:"Mesh",...Ht.defaultData,...ha.defaultData})(Mo||(Mo={}));var gn;(r=>r.defaultData={...Ht.defaultData,...yn.identity,...Lo.defaultData})(gn||(gn={}));var gu;(r=>{function n(e){return{...Ht.defaultData,...ma.defaultData(e)}}r.defaultData=n})(gu||(gu={}));var xn;(e=>{function n(t,o,i=0){for(;i<o.length;){let s=t?t[o[i]]:void 0;if(o.length===i+1)return s;if(s)t=s.descendants,i+=1;else return}}e.resolveWithDes=n;function r(t,o,i=0){let s=n(t,o,i);if(s){let l=Object.keys(s);if(l.length===1&&l[0]==="descendants")return}return s}e.resolve=r})(xn||(xn={}));var lo;(i=>{i.rootOverrideProps=["physics"],i.compositeNonOptionalOverrideProps=["geometry"],i.compositeEntireOverrideOverrideProps=["material"];function t(s,l){return{...Ht.defaultData,...l,component:s,overrides:new ze,physics:void 0,type:"Instance"}}i.ofComponent=t;function o(s){let l=yn.fromObject(s.data);return t(s.id,l)}i.fromComponentData=o})(lo||(lo={}));var xu;(i=>(i.defaultCamera={position:[0,0,1e3],scale:[1,1,1],rotation:[0,0,0],hiddenMatrix:so.identity,name:"Play Camera",visible:!0,raycastLock:!1,physics:pc.defaultData,states:new xe,events:new xe,cloner:null,...Lo.defaultData},i.KeysByResetCategory={States:["states"],Events:["events"],Material:["material","materials"],Geometry:["geometry"],Position:["position"],Rotation:["rotation"],Scale:["scale"],Transform:["position","scale","rotation","hiddenMatrix"],Name:["name"],Visibility:["visible","raycastLock","flatShading","wireframe","side"],Shadows:["castShadow","receiveShadow"],Cloner:["cloner"],Physics:["physics"]},i.defaultMeshObject={name:"Rectangle",...Ht.defaultData,...Mo.defaultData,geometry:ao.defaultData("RectangleGeometry"),material:Mt.defaultTwoLayerData("phong","layer1","layer2")},i.defaultBooleanObject={name:"Boolean",...Ht.defaultData,...Mo.defaultData,geometry:ao.defaultData("BooleanGeometry"),material:Mt.defaultTwoLayerData("phong","layer1","layer2")},i.defaultTextObject={name:"Text",...Ht.defaultData,...Mo.defaultData,geometry:ao.defaultData("TextGeometry"),material:Mt.defaultTwoLayerData("phong","layer1","layer2")}))(xu||(xu={}));var Bo;(o=>{function n(i,s){let l={name:s};return i.type==="Mesh"?(l.geometry={},"material"in i&&(l.material={layers:new ze}),"materials"in i&&(l.materials=i.materials.map(c=>({layers:new ze})))):sr.is(i.type)&&(l.perspective={},l.orthographic={}),l}o.newEmpty=n;function r(i,s){if(s===void 0)return i;let l={...i};return"material"in l&&"material"in s&&s.material&&(l.material=pn(l.material,c=>{if(typeof c!="string")for(let[u,a]of Object.entries(s.material.layers)){let d=c.layers.data(u);d&&Tt.patch(d,a)}}).data),l.materials&&s.materials&&(l.materials=pn(l.materials,c=>{for(let u=0;u<l.materials.length;u++){let a=s.materials[u];if(typeof a!="string")for(let[d,p]of Object.entries(a.layers)){let f=c[u]?.layers?.data(d);f&&Tt.patch(f,p)}}}).data),l}function e(i,s){let l,c=[],u={orthographic:0,perspective:0,geometry:0};function a(d,p){for(let[f,m]of Object.entries(p.layers)){let{texture:h,...y}=m;if(h!==void 0&&Object.keys(h).length>0){let g={path:[...d,"layers",f,"texture"],props:h,type:0};c.push(g)}if(Object.keys(y).length>0){let g={path:[...d,"layers",f],props:y,type:0};c.push(g)}}}for(let[d,p]of Object.entries(s))if(d!=="name")if(d==="cloner")c.push(...pa.toOps(p,["cloner"]));else if(d==="material")a(["material"],p);else if(d==="materials")for(let[f,m]of Object.entries(p))a(["materials",f],m);else if(u[d]===0){if(Object.keys(p).length>0){let f={path:[d],props:p,type:0};c.push(f)}}else l===void 0&&(l={path:[],props:{},type:0},c.push(l)),l.props[d]=p;return c}o.toOps=e;function t(i,s){if(s===void 0)return i;let l={...i};if(Object.assign(l,yn.merge(l,s)),sr.is(i.type)){l.orthographic={...l.orthographic},l.perspective={...l.perspective};let c=s;c.orthographic?.zoom!==void 0&&(l.orthographic.zoom=c.orthographic.zoom),c.perspective?.zoom!==void 0&&(l.perspective.zoom=c.perspective.zoom),c.isUpVectorFlipped!==void 0&&(l.isUpVectorFlipped=c.isUpVectorFlipped),c.targetOffset!==void 0&&(l.targetOffset=c.targetOffset)}else if(i.type==="Mesh")s.geometry&&(l.geometry={...l.geometry},Object.assign(l.geometry,s.geometry)),(s.material||s.materials)&&(l=r(l,s)),l.cloner&&"cloner"in s&&Object.assign(l,{cloner:Or.merge(l.cloner,s.cloner)});else if(i.type==="Empty")l.cloner&&"cloner"in s&&Object.assign(l,{cloner:Or.merge(l.cloner,s.cloner)});else if(fa.is(i.type)){let c=s;c.intensity!==void 0&&(l.intensity=c.intensity),c.color!==void 0&&(typeof c.color=="string"?l.color=c.color:l.color=Lt.clone(c.color))}return l}o.patch=t})(Bo||(Bo={}));var vn;(r=>r.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})(vn||(vn={}));var ya;(r=>r.defaultData={orbitControls:vn.defaultData,playCamera:null,withBackground:!0,preventScroll:!1,hideCursor:!1,settings:{image:{format:"jpg",ratio:1},video:{format:"mp4",imageFormat:"jpg",fps:30,mbps:80,ratio:typeof window<"u"?Math.floor(window.devicePixelRatio):1,stopMode:"manual",duration:5e3},web:{compress:!0,preset:1,preload:!0}},stopRaycast:!0,joystickSizeAndXYOffset:Array(12).fill(0).map((e,t)=>{let o=0,i=0;return t<5?i=-30:t<10&&(i=30),t===0||t===10||t===5?o=30:(t===4||t===11||t===9)&&(o=-30),[120,[o,i],"show"]}),gameControlObject:null})(ya||(ya={}));function co(n,r){return Object.setPrototypeOf(n,r),n}var uo=void 0!=="true";function ga(n){return Array.isArray(n)?n:[n]}function vu(n,r){let e=0;for(;e<n.length&&e<r.length;){if(n[e]<r[e])return-1;if(n[e]>r[e])return 1;e+=1}return e!==r.length?-1:e!==n.length?1:0}var xa;(e=>{function n(){let t={};return t["89b10010-844c-11ec-a8a3-0242ac120002"]={r:.5,g:.5,b:.5,a:1,name:"Default Color"},co(t,Re.prototype)}e.defaultColors=n;function r(){return{materials:new Re,images:new Re,videos:new Re,colors:new Re,audios:new Re,fonts:new Re,penumbraSize:[.5,.5,.5]}}e.emptyData=r})(xa||(xa={}));var Lg=typeof global=="object"&&global&&global.Object===Object&&global,va=Lg;var Mg=typeof self=="object"&&self&&self.Object===Object&&self,Bg=va||Mg||Function("return this")(),Je=Bg;var Dg=Je.Symbol,ct=Dg;var bu=Object.prototype,Gg=bu.hasOwnProperty,Rg=bu.toString,ji=ct?ct.toStringTag:void 0;function Vg(n){var r=Gg.call(n,ji),e=n[ji];try{n[ji]=void 0;var t=!0}catch{}var o=Rg.call(n);return t&&(r?n[ji]=e:delete n[ji]),o}var Su=Vg;var jg=Object.prototype,Fg=jg.toString;function Ug(n){return Fg.call(n)}var wu=Ug;var zg="[object Null]",kg="[object Undefined]",_u=ct?ct.toStringTag:void 0;function Hg(n){return n==null?n===void 0?kg:zg:_u&&_u in Object(n)?Su(n):wu(n)}var Wt=Hg;function Wg(n){return n!=null&&typeof n=="object"}var mt=Wg;var qg="[object Symbol]";function $g(n){return typeof n=="symbol"||mt(n)&&Wt(n)==qg}var bn=$g;function Yg(n,r){for(var e=-1,t=n==null?0:n.length,o=Array(t);++e<t;)o[e]=r(n[e],e,n);return o}var ba=Yg;var Xg=Array.isArray,qe=Xg;var Kg=1/0,Tu=ct?ct.prototype:void 0,Ou=Tu?Tu.toString:void 0;function Au(n){if(typeof n=="string")return n;if(qe(n))return ba(n,Au)+"";if(bn(n))return Ou?Ou.call(n):"";var r=n+"";return r=="0"&&1/n==-Kg?"-0":r}var Pu=Au;function Zg(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}var qt=Zg;function Qg(n){return n}var Iu=Qg;var Jg="[object AsyncFunction]",ex="[object Function]",tx="[object GeneratorFunction]",rx="[object Proxy]";function ox(n){if(!qt(n))return!1;var r=Wt(n);return r==ex||r==tx||r==Jg||r==rx}var Sa=ox;var nx=Je["__core-js_shared__"],wa=nx;var Cu=function(){var n=/[^.]+$/.exec(wa&&wa.keys&&wa.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function ix(n){return!!Cu&&Cu in n}var Nu=ix;var sx=Function.prototype,ax=sx.toString;function lx(n){if(n!=null){try{return ax.call(n)}catch{}try{return n+""}catch{}}return""}var Hr=lx;var cx=/[\\^$.*+?()[\]{}|]/g,dx=/^\[object .+?Constructor\]$/,ux=Function.prototype,px=Object.prototype,fx=ux.toString,mx=px.hasOwnProperty,hx=RegExp("^"+fx.call(mx).replace(cx,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function yx(n){if(!qt(n)||Nu(n))return!1;var r=Sa(n)?hx:dx;return r.test(Hr(n))}var Eu=yx;function gx(n,r){return n?.[r]}var Lu=gx;function xx(n,r){var e=Lu(n,r);return Eu(e)?e:void 0}var Bt=xx;var vx=Bt(Je,"WeakMap"),_a=vx;var Mu=Object.create,bx=function(){function n(){}return function(r){if(!qt(r))return{};if(Mu)return Mu(r);n.prototype=r;var e=new n;return n.prototype=void 0,e}}(),Bu=bx;function Sx(n,r,e){switch(e.length){case 0:return n.call(r);case 1:return n.call(r,e[0]);case 2:return n.call(r,e[0],e[1]);case 3:return n.call(r,e[0],e[1],e[2])}return n.apply(r,e)}var Du=Sx;function wx(n,r){var e=-1,t=n.length;for(r||(r=Array(t));++e<t;)r[e]=n[e];return r}var Gu=wx;var _x=800,Tx=16,Ox=Date.now;function Ax(n){var r=0,e=0;return function(){var t=Ox(),o=Tx-(t-e);if(e=t,o>0){if(++r>=_x)return arguments[0]}else r=0;return n.apply(void 0,arguments)}}var Ru=Ax;function Px(n){return function(){return n}}var Vu=Px;var Ix=function(){try{var n=Bt(Object,"defineProperty");return n({},"",{}),n}catch{}}(),Sn=Ix;var Cx=Sn?function(n,r){return Sn(n,"toString",{configurable:!0,enumerable:!1,value:Vu(r),writable:!0})}:Iu,ju=Cx;var Nx=Ru(ju),Fu=Nx;function Ex(n,r){for(var e=-1,t=n==null?0:n.length;++e<t&&r(n[e],e,n)!==!1;);return n}var Uu=Ex;var Lx=9007199254740991,Mx=/^(?:0|[1-9]\d*)$/;function Bx(n,r){var e=typeof n;return r=r??Lx,!!r&&(e=="number"||e!="symbol"&&Mx.test(n))&&n>-1&&n%1==0&&n<r}var wn=Bx;function Dx(n,r,e){r=="__proto__"&&Sn?Sn(n,r,{configurable:!0,enumerable:!0,value:e,writable:!0}):n[r]=e}var Ta=Dx;function Gx(n,r){return n===r||n!==n&&r!==r}var _n=Gx;var Rx=Object.prototype,Vx=Rx.hasOwnProperty;function jx(n,r,e){var t=n[r];(!(Vx.call(n,r)&&_n(t,e))||e===void 0&&!(r in n))&&Ta(n,r,e)}var Tn=jx;function Fx(n,r,e,t){var o=!e;e||(e={});for(var i=-1,s=r.length;++i<s;){var l=r[i],c=t?t(e[l],n[l],l,e,n):void 0;c===void 0&&(c=n[l]),o?Ta(e,l,c):Tn(e,l,c)}return e}var Ar=Fx;var zu=Math.max;function Ux(n,r,e){return r=zu(r===void 0?n.length-1:r,0),function(){for(var t=arguments,o=-1,i=zu(t.length-r,0),s=Array(i);++o<i;)s[o]=t[r+o];o=-1;for(var l=Array(r+1);++o<r;)l[o]=t[o];return l[r]=e(s),Du(n,this,l)}}var ku=Ux;var zx=9007199254740991;function kx(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=zx}var On=kx;function Hx(n){return n!=null&&On(n.length)&&!Sa(n)}var Oa=Hx;var Wx=Object.prototype;function qx(n){var r=n&&n.constructor,e=typeof r=="function"&&r.prototype||Wx;return n===e}var An=qx;function $x(n,r){for(var e=-1,t=Array(n);++e<n;)t[e]=r(e);return t}var Hu=$x;var Yx="[object Arguments]";function Xx(n){return mt(n)&&Wt(n)==Yx}var fc=Xx;var Wu=Object.prototype,Kx=Wu.hasOwnProperty,Zx=Wu.propertyIsEnumerable,Qx=fc(function(){return arguments}())?fc:function(n){return mt(n)&&Kx.call(n,"callee")&&!Zx.call(n,"callee")},Pn=Qx;function Jx(){return!1}var qu=Jx;var Xu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,$u=Xu&&typeof module=="object"&&module&&!module.nodeType&&module,e0=$u&&$u.exports===Xu,Yu=e0?Je.Buffer:void 0,t0=Yu?Yu.isBuffer:void 0,r0=t0||qu,Do=r0;var o0="[object Arguments]",n0="[object Array]",i0="[object Boolean]",s0="[object Date]",a0="[object Error]",l0="[object Function]",c0="[object Map]",d0="[object Number]",u0="[object Object]",p0="[object RegExp]",f0="[object Set]",m0="[object String]",h0="[object WeakMap]",y0="[object ArrayBuffer]",g0="[object DataView]",x0="[object Float32Array]",v0="[object Float64Array]",b0="[object Int8Array]",S0="[object Int16Array]",w0="[object Int32Array]",_0="[object Uint8Array]",T0="[object Uint8ClampedArray]",O0="[object Uint16Array]",A0="[object Uint32Array]",Fe={};Fe[x0]=Fe[v0]=Fe[b0]=Fe[S0]=Fe[w0]=Fe[_0]=Fe[T0]=Fe[O0]=Fe[A0]=!0;Fe[o0]=Fe[n0]=Fe[y0]=Fe[i0]=Fe[g0]=Fe[s0]=Fe[a0]=Fe[l0]=Fe[c0]=Fe[d0]=Fe[u0]=Fe[p0]=Fe[f0]=Fe[m0]=Fe[h0]=!1;function P0(n){return mt(n)&&On(n.length)&&!!Fe[Wt(n)]}var Ku=P0;function I0(n){return function(r){return n(r)}}var In=I0;var Zu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Fi=Zu&&typeof module=="object"&&module&&!module.nodeType&&module,C0=Fi&&Fi.exports===Zu,mc=C0&&va.process,N0=function(){try{var n=Fi&&Fi.require&&Fi.require("util").types;return n||mc&&mc.binding&&mc.binding("util")}catch{}}(),Wr=N0;var Qu=Wr&&Wr.isTypedArray,E0=Qu?In(Qu):Ku,Aa=E0;var L0=Object.prototype,M0=L0.hasOwnProperty;function B0(n,r){var e=qe(n),t=!e&&Pn(n),o=!e&&!t&&Do(n),i=!e&&!t&&!o&&Aa(n),s=e||t||o||i,l=s?Hu(n.length,String):[],c=l.length;for(var u in n)(r||M0.call(n,u))&&!(s&&(u=="length"||o&&(u=="offset"||u=="parent")||i&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||wn(u,c)))&&l.push(u);return l}var Pa=B0;function D0(n,r){return function(e){return n(r(e))}}var Ia=D0;var G0=Ia(Object.keys,Object),Ju=G0;var R0=Object.prototype,V0=R0.hasOwnProperty;function j0(n){if(!An(n))return Ju(n);var r=[];for(var e in Object(n))V0.call(n,e)&&e!="constructor"&&r.push(e);return r}var ep=j0;function F0(n){return Oa(n)?Pa(n):ep(n)}var Cn=F0;function U0(n){var r=[];if(n!=null)for(var e in Object(n))r.push(e);return r}var tp=U0;var z0=Object.prototype,k0=z0.hasOwnProperty;function H0(n){if(!qt(n))return tp(n);var r=An(n),e=[];for(var t in n)t=="constructor"&&(r||!k0.call(n,t))||e.push(t);return e}var rp=H0;function W0(n){return Oa(n)?Pa(n,!0):rp(n)}var Nn=W0;var q0=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$0=/^\w*$/;function Y0(n,r){if(qe(n))return!1;var e=typeof n;return e=="number"||e=="symbol"||e=="boolean"||n==null||bn(n)?!0:$0.test(n)||!q0.test(n)||r!=null&&n in Object(r)}var op=Y0;var X0=Bt(Object,"create"),qr=X0;function K0(){this.__data__=qr?qr(null):{},this.size=0}var np=K0;function Z0(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}var ip=Z0;var Q0="__lodash_hash_undefined__",J0=Object.prototype,ev=J0.hasOwnProperty;function tv(n){var r=this.__data__;if(qr){var e=r[n];return e===Q0?void 0:e}return ev.call(r,n)?r[n]:void 0}var sp=tv;var rv=Object.prototype,ov=rv.hasOwnProperty;function nv(n){var r=this.__data__;return qr?r[n]!==void 0:ov.call(r,n)}var ap=nv;var iv="__lodash_hash_undefined__";function sv(n,r){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=qr&&r===void 0?iv:r,this}var lp=sv;function En(n){var r=-1,e=n==null?0:n.length;for(this.clear();++r<e;){var t=n[r];this.set(t[0],t[1])}}En.prototype.clear=np;En.prototype.delete=ip;En.prototype.get=sp;En.prototype.has=ap;En.prototype.set=lp;var hc=En;function av(){this.__data__=[],this.size=0}var cp=av;function lv(n,r){for(var e=n.length;e--;)if(_n(n[e][0],r))return e;return-1}var po=lv;var cv=Array.prototype,dv=cv.splice;function uv(n){var r=this.__data__,e=po(r,n);if(e<0)return!1;var t=r.length-1;return e==t?r.pop():dv.call(r,e,1),--this.size,!0}var dp=uv;function pv(n){var r=this.__data__,e=po(r,n);return e<0?void 0:r[e][1]}var up=pv;function fv(n){return po(this.__data__,n)>-1}var pp=fv;function mv(n,r){var e=this.__data__,t=po(e,n);return t<0?(++this.size,e.push([n,r])):e[t][1]=r,this}var fp=mv;function Ln(n){var r=-1,e=n==null?0:n.length;for(this.clear();++r<e;){var t=n[r];this.set(t[0],t[1])}}Ln.prototype.clear=cp;Ln.prototype.delete=dp;Ln.prototype.get=up;Ln.prototype.has=pp;Ln.prototype.set=fp;var fo=Ln;var hv=Bt(Je,"Map"),mo=hv;function yv(){this.size=0,this.__data__={hash:new hc,map:new(mo||fo),string:new hc}}var mp=yv;function gv(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}var hp=gv;function xv(n,r){var e=n.__data__;return hp(r)?e[typeof r=="string"?"string":"hash"]:e.map}var ho=xv;function vv(n){var r=ho(this,n).delete(n);return this.size-=r?1:0,r}var yp=vv;function bv(n){return ho(this,n).get(n)}var gp=bv;function Sv(n){return ho(this,n).has(n)}var xp=Sv;function wv(n,r){var e=ho(this,n),t=e.size;return e.set(n,r),this.size+=e.size==t?0:1,this}var vp=wv;function Mn(n){var r=-1,e=n==null?0:n.length;for(this.clear();++r<e;){var t=n[r];this.set(t[0],t[1])}}Mn.prototype.clear=mp;Mn.prototype.delete=yp;Mn.prototype.get=gp;Mn.prototype.has=xp;Mn.prototype.set=vp;var Go=Mn;var _v="Expected a function";function yc(n,r){if(typeof n!="function"||r!=null&&typeof r!="function")throw new TypeError(_v);var e=function(){var t=arguments,o=r?r.apply(this,t):t[0],i=e.cache;if(i.has(o))return i.get(o);var s=n.apply(this,t);return e.cache=i.set(o,s)||i,s};return e.cache=new(yc.Cache||Go),e}yc.Cache=Go;var bp=yc;var Tv=500;function Ov(n){var r=bp(n,function(t){return e.size===Tv&&e.clear(),t}),e=r.cache;return r}var Sp=Ov;var Av=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pv=/\\(\\)?/g,Iv=Sp(function(n){var r=[];return n.charCodeAt(0)===46&&r.push(""),n.replace(Av,function(e,t,o,i){r.push(o?i.replace(Pv,"$1"):t||e)}),r}),wp=Iv;function Cv(n){return n==null?"":Pu(n)}var _p=Cv;function Nv(n,r){return qe(n)?n:op(n,r)?[n]:wp(_p(n))}var Kt=Nv;var Ev=1/0;function Lv(n){if(typeof n=="string"||bn(n))return n;var r=n+"";return r=="0"&&1/n==-Ev?"-0":r}var yo=Lv;function Mv(n,r){r=Kt(r,n);for(var e=0,t=r.length;n!=null&&e<t;)n=n[yo(r[e++])];return e&&e==t?n:void 0}var Ca=Mv;function Bv(n,r){for(var e=-1,t=r.length,o=n.length;++e<t;)n[o+e]=r[e];return n}var Bn=Bv;var Tp=ct?ct.isConcatSpreadable:void 0;function Dv(n){return qe(n)||Pn(n)||!!(Tp&&n&&n[Tp])}var Op=Dv;function Ap(n,r,e,t,o){var i=-1,s=n.length;for(e||(e=Op),o||(o=[]);++i<s;){var l=n[i];r>0&&e(l)?r>1?Ap(l,r-1,e,t,o):Bn(o,l):t||(o[o.length]=l)}return o}var Pp=Ap;function Gv(n){var r=n==null?0:n.length;return r?Pp(n,1):[]}var Ip=Gv;function Rv(n){return Fu(ku(n,void 0,Ip),n+"")}var Na=Rv;var Vv=Ia(Object.getPrototypeOf,Object),Dn=Vv;var jv="[object Object]",Fv=Function.prototype,Uv=Object.prototype,Cp=Fv.toString,zv=Uv.hasOwnProperty,kv=Cp.call(Object);function Hv(n){if(!mt(n)||Wt(n)!=jv)return!1;var r=Dn(n);if(r===null)return!0;var e=zv.call(r,"constructor")&&r.constructor;return typeof e=="function"&&e instanceof e&&Cp.call(e)==kv}var Np=Hv;function Wv(n,r,e){var t=-1,o=n.length;r<0&&(r=-r>o?0:o+r),e=e>o?o:e,e<0&&(e+=o),o=r>e?0:e-r>>>0,r>>>=0;for(var i=Array(o);++t<o;)i[t]=n[t+r];return i}var Ep=Wv;function qv(){this.__data__=new fo,this.size=0}var Lp=qv;function $v(n){var r=this.__data__,e=r.delete(n);return this.size=r.size,e}var Mp=$v;function Yv(n){return this.__data__.get(n)}var Bp=Yv;function Xv(n){return this.__data__.has(n)}var Dp=Xv;var Kv=200;function Zv(n,r){var e=this.__data__;if(e instanceof fo){var t=e.__data__;if(!mo||t.length<Kv-1)return t.push([n,r]),this.size=++e.size,this;e=this.__data__=new Go(t)}return e.set(n,r),this.size=e.size,this}var Gp=Zv;function Gn(n){var r=this.__data__=new fo(n);this.size=r.size}Gn.prototype.clear=Lp;Gn.prototype.delete=Mp;Gn.prototype.get=Bp;Gn.prototype.has=Dp;Gn.prototype.set=Gp;var Rn=Gn;function Qv(n,r){return n&&Ar(r,Cn(r),n)}var Rp=Qv;function Jv(n,r){return n&&Ar(r,Nn(r),n)}var Vp=Jv;var zp=typeof exports=="object"&&exports&&!exports.nodeType&&exports,jp=zp&&typeof module=="object"&&module&&!module.nodeType&&module,eb=jp&&jp.exports===zp,Fp=eb?Je.Buffer:void 0,Up=Fp?Fp.allocUnsafe:void 0;function tb(n,r){if(r)return n.slice();var e=n.length,t=Up?Up(e):new n.constructor(e);return n.copy(t),t}var kp=tb;function rb(n,r){for(var e=-1,t=n==null?0:n.length,o=0,i=[];++e<t;){var s=n[e];r(s,e,n)&&(i[o++]=s)}return i}var Hp=rb;function ob(){return[]}var Ea=ob;var nb=Object.prototype,ib=nb.propertyIsEnumerable,Wp=Object.getOwnPropertySymbols,sb=Wp?function(n){return n==null?[]:(n=Object(n),Hp(Wp(n),function(r){return ib.call(n,r)}))}:Ea,Vn=sb;function ab(n,r){return Ar(n,Vn(n),r)}var qp=ab;var lb=Object.getOwnPropertySymbols,cb=lb?function(n){for(var r=[];n;)Bn(r,Vn(n)),n=Dn(n);return r}:Ea,La=cb;function db(n,r){return Ar(n,La(n),r)}var $p=db;function ub(n,r,e){var t=r(n);return qe(n)?t:Bn(t,e(n))}var Ma=ub;function pb(n){return Ma(n,Cn,Vn)}var Ui=pb;function fb(n){return Ma(n,Nn,La)}var Ba=fb;var mb=Bt(Je,"DataView"),Da=mb;var hb=Bt(Je,"Promise"),Ga=hb;var yb=Bt(Je,"Set"),Ra=yb;var Yp="[object Map]",gb="[object Object]",Xp="[object Promise]",Kp="[object Set]",Zp="[object WeakMap]",Qp="[object DataView]",xb=Hr(Da),vb=Hr(mo),bb=Hr(Ga),Sb=Hr(Ra),wb=Hr(_a),Ro=Wt;(Da&&Ro(new Da(new ArrayBuffer(1)))!=Qp||mo&&Ro(new mo)!=Yp||Ga&&Ro(Ga.resolve())!=Xp||Ra&&Ro(new Ra)!=Kp||_a&&Ro(new _a)!=Zp)&&(Ro=function(n){var r=Wt(n),e=r==gb?n.constructor:void 0,t=e?Hr(e):"";if(t)switch(t){case xb:return Qp;case vb:return Yp;case bb:return Xp;case Sb:return Kp;case wb:return Zp}return r});var $r=Ro;var _b=Object.prototype,Tb=_b.hasOwnProperty;function Ob(n){var r=n.length,e=new n.constructor(r);return r&&typeof n[0]=="string"&&Tb.call(n,"index")&&(e.index=n.index,e.input=n.input),e}var Jp=Ob;var Ab=Je.Uint8Array,jn=Ab;function Pb(n){var r=new n.constructor(n.byteLength);return new jn(r).set(new jn(n)),r}var Fn=Pb;function Ib(n,r){var e=r?Fn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.byteLength)}var ef=Ib;var Cb=/\w*$/;function Nb(n){var r=new n.constructor(n.source,Cb.exec(n));return r.lastIndex=n.lastIndex,r}var tf=Nb;var rf=ct?ct.prototype:void 0,of=rf?rf.valueOf:void 0;function Eb(n){return of?Object(of.call(n)):{}}var nf=Eb;function Lb(n,r){var e=r?Fn(n.buffer):n.buffer;return new n.constructor(e,n.byteOffset,n.length)}var sf=Lb;var Mb="[object Boolean]",Bb="[object Date]",Db="[object Map]",Gb="[object Number]",Rb="[object RegExp]",Vb="[object Set]",jb="[object String]",Fb="[object Symbol]",Ub="[object ArrayBuffer]",zb="[object DataView]",kb="[object Float32Array]",Hb="[object Float64Array]",Wb="[object Int8Array]",qb="[object Int16Array]",$b="[object Int32Array]",Yb="[object Uint8Array]",Xb="[object Uint8ClampedArray]",Kb="[object Uint16Array]",Zb="[object Uint32Array]";function Qb(n,r,e){var t=n.constructor;switch(r){case Ub:return Fn(n);case Mb:case Bb:return new t(+n);case zb:return ef(n,e);case kb:case Hb:case Wb:case qb:case $b:case Yb:case Xb:case Kb:case Zb:return sf(n,e);case Db:return new t;case Gb:case jb:return new t(n);case Rb:return tf(n);case Vb:return new t;case Fb:return nf(n)}}var af=Qb;function Jb(n){return typeof n.constructor=="function"&&!An(n)?Bu(Dn(n)):{}}var lf=Jb;var eS="[object Map]";function tS(n){return mt(n)&&$r(n)==eS}var cf=tS;var df=Wr&&Wr.isMap,rS=df?In(df):cf,uf=rS;var oS="[object Set]";function nS(n){return mt(n)&&$r(n)==oS}var pf=nS;var ff=Wr&&Wr.isSet,iS=ff?In(ff):pf,mf=iS;var sS=1,aS=2,lS=4,hf="[object Arguments]",cS="[object Array]",dS="[object Boolean]",uS="[object Date]",pS="[object Error]",yf="[object Function]",fS="[object GeneratorFunction]",mS="[object Map]",hS="[object Number]",gf="[object Object]",yS="[object RegExp]",gS="[object Set]",xS="[object String]",vS="[object Symbol]",bS="[object WeakMap]",SS="[object ArrayBuffer]",wS="[object DataView]",_S="[object Float32Array]",TS="[object Float64Array]",OS="[object Int8Array]",AS="[object Int16Array]",PS="[object Int32Array]",IS="[object Uint8Array]",CS="[object Uint8ClampedArray]",NS="[object Uint16Array]",ES="[object Uint32Array]",Ve={};Ve[hf]=Ve[cS]=Ve[SS]=Ve[wS]=Ve[dS]=Ve[uS]=Ve[_S]=Ve[TS]=Ve[OS]=Ve[AS]=Ve[PS]=Ve[mS]=Ve[hS]=Ve[gf]=Ve[yS]=Ve[gS]=Ve[xS]=Ve[vS]=Ve[IS]=Ve[CS]=Ve[NS]=Ve[ES]=!0;Ve[pS]=Ve[yf]=Ve[bS]=!1;function Va(n,r,e,t,o,i){var s,l=r&sS,c=r&aS,u=r&lS;if(e&&(s=o?e(n,t,o,i):e(n)),s!==void 0)return s;if(!qt(n))return n;var a=qe(n);if(a){if(s=Jp(n),!l)return Gu(n,s)}else{var d=$r(n),p=d==yf||d==fS;if(Do(n))return kp(n,l);if(d==gf||d==hf||p&&!o){if(s=c||p?{}:lf(n),!l)return c?$p(n,Vp(s,n)):qp(n,Rp(s,n))}else{if(!Ve[d])return o?n:{};s=af(n,d,l)}}i||(i=new Rn);var f=i.get(n);if(f)return f;i.set(n,s),mf(n)?n.forEach(function(y){s.add(Va(y,r,e,y,n,i))}):uf(n)&&n.forEach(function(y,g){s.set(g,Va(y,r,e,g,n,i))});var m=u?c?Ba:Ui:c?Nn:Cn,h=a?void 0:m(n);return Uu(h||n,function(y,g){h&&(g=y,y=n[g]),Tn(s,g,Va(y,r,e,g,n,i))}),s}var ja=Va;var LS=1,MS=4;function BS(n){return ja(n,LS|MS)}var Vo=BS;var DS="__lodash_hash_undefined__";function GS(n){return this.__data__.set(n,DS),this}var xf=GS;function RS(n){return this.__data__.has(n)}var vf=RS;function Fa(n){var r=-1,e=n==null?0:n.length;for(this.__data__=new Go;++r<e;)this.add(n[r])}Fa.prototype.add=Fa.prototype.push=xf;Fa.prototype.has=vf;var bf=Fa;function VS(n,r){for(var e=-1,t=n==null?0:n.length;++e<t;)if(r(n[e],e,n))return!0;return!1}var Sf=VS;function jS(n,r){return n.has(r)}var wf=jS;var FS=1,US=2;function zS(n,r,e,t,o,i){var s=e&FS,l=n.length,c=r.length;if(l!=c&&!(s&&c>l))return!1;var u=i.get(n),a=i.get(r);if(u&&a)return u==r&&a==n;var d=-1,p=!0,f=e&US?new bf:void 0;for(i.set(n,r),i.set(r,n);++d<l;){var m=n[d],h=r[d];if(t)var y=s?t(h,m,d,r,n,i):t(m,h,d,n,r,i);if(y!==void 0){if(y)continue;p=!1;break}if(f){if(!Sf(r,function(g,v){if(!wf(f,v)&&(m===g||o(m,g,e,t,i)))return f.push(v)})){p=!1;break}}else if(!(m===h||o(m,h,e,t,i))){p=!1;break}}return i.delete(n),i.delete(r),p}var Ua=zS;function kS(n){var r=-1,e=Array(n.size);return n.forEach(function(t,o){e[++r]=[o,t]}),e}var _f=kS;function HS(n){var r=-1,e=Array(n.size);return n.forEach(function(t){e[++r]=t}),e}var Tf=HS;var WS=1,qS=2,$S="[object Boolean]",YS="[object Date]",XS="[object Error]",KS="[object Map]",ZS="[object Number]",QS="[object RegExp]",JS="[object Set]",e1="[object String]",t1="[object Symbol]",r1="[object ArrayBuffer]",o1="[object DataView]",Of=ct?ct.prototype:void 0,gc=Of?Of.valueOf:void 0;function n1(n,r,e,t,o,i,s){switch(e){case o1:if(n.byteLength!=r.byteLength||n.byteOffset!=r.byteOffset)return!1;n=n.buffer,r=r.buffer;case r1:return!(n.byteLength!=r.byteLength||!i(new jn(n),new jn(r)));case $S:case YS:case ZS:return _n(+n,+r);case XS:return n.name==r.name&&n.message==r.message;case QS:case e1:return n==r+"";case KS:var l=_f;case JS:var c=t&WS;if(l||(l=Tf),n.size!=r.size&&!c)return!1;var u=s.get(n);if(u)return u==r;t|=qS,s.set(n,r);var a=Ua(l(n),l(r),t,o,i,s);return s.delete(n),a;case t1:if(gc)return gc.call(n)==gc.call(r)}return!1}var Af=n1;var i1=1,s1=Object.prototype,a1=s1.hasOwnProperty;function l1(n,r,e,t,o,i){var s=e&i1,l=Ui(n),c=l.length,u=Ui(r),a=u.length;if(c!=a&&!s)return!1;for(var d=c;d--;){var p=l[d];if(!(s?p in r:a1.call(r,p)))return!1}var f=i.get(n),m=i.get(r);if(f&&m)return f==r&&m==n;var h=!0;i.set(n,r),i.set(r,n);for(var y=s;++d<c;){p=l[d];var g=n[p],v=r[p];if(t)var w=s?t(v,g,p,r,n,i):t(g,v,p,n,r,i);if(!(w===void 0?g===v||o(g,v,e,t,i):w)){h=!1;break}y||(y=p=="constructor")}if(h&&!y){var b=n.constructor,S=r.constructor;b!=S&&"constructor"in n&&"constructor"in r&&!(typeof b=="function"&&b instanceof b&&typeof S=="function"&&S instanceof S)&&(h=!1)}return i.delete(n),i.delete(r),h}var Pf=l1;var c1=1,If="[object Arguments]",Cf="[object Array]",za="[object Object]",d1=Object.prototype,Nf=d1.hasOwnProperty;function u1(n,r,e,t,o,i){var s=qe(n),l=qe(r),c=s?Cf:$r(n),u=l?Cf:$r(r);c=c==If?za:c,u=u==If?za:u;var a=c==za,d=u==za,p=c==u;if(p&&Do(n)){if(!Do(r))return!1;s=!0,a=!1}if(p&&!a)return i||(i=new Rn),s||Aa(n)?Ua(n,r,e,t,o,i):Af(n,r,c,e,t,o,i);if(!(e&c1)){var f=a&&Nf.call(n,"__wrapped__"),m=d&&Nf.call(r,"__wrapped__");if(f||m){var h=f?n.value():n,y=m?r.value():r;return i||(i=new Rn),o(h,y,e,t,i)}}return p?(i||(i=new Rn),Pf(n,r,e,t,o,i)):!1}var Ef=u1;function Lf(n,r,e,t,o){return n===r?!0:n==null||r==null||!mt(n)&&!mt(r)?n!==n&&r!==r:Ef(n,r,e,t,Lf,o)}var Mf=Lf;function p1(n,r){return n!=null&&r in Object(n)}var Bf=p1;function f1(n,r,e){r=Kt(r,n);for(var t=-1,o=r.length,i=!1;++t<o;){var s=yo(r[t]);if(!(i=n!=null&&e(n,s)))break;n=n[s]}return i||++t!=o?i:(o=n==null?0:n.length,!!o&&On(o)&&wn(s,o)&&(qe(n)||Pn(n)))}var Df=f1;function m1(n,r){return n!=null&&Df(n,r,Bf)}var Gf=m1;function h1(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}var Rf=h1;function y1(n,r){return r.length<2?n:Ca(n,Ep(r,0,-1))}var Vf=y1;function g1(n,r){return Mf(n,r)}var zi=g1;function x1(n,r){return r=Kt(r,n),n=Vf(n,r),n==null||delete n[yo(Rf(r))]}var jf=x1;function v1(n){return Np(n)?void 0:n}var Ff=v1;var b1=1,S1=2,w1=4,_1=Na(function(n,r){var e={};if(n==null)return e;var t=!1;r=ba(r,function(i){return i=Kt(i,n),t||(t=i.length>1),i}),Ar(n,Ba(n),e),t&&(e=ja(e,b1|S1|w1,Ff));for(var o=r.length;o--;)jf(e,r[o]);return e}),Un=_1;function T1(n,r,e,t){if(!qt(n))return n;r=Kt(r,n);for(var o=-1,i=r.length,s=i-1,l=n;l!=null&&++o<i;){var c=yo(r[o]),u=e;if(c==="__proto__"||c==="constructor"||c==="prototype")return n;if(o!=s){var a=l[c];u=t?t(a,c,l):void 0,u===void 0&&(u=qt(a)?a:wn(r[o+1])?[]:{})}Tn(l,c,u),l=l[c]}return n}var Uf=T1;function O1(n,r,e){for(var t=-1,o=r.length,i={};++t<o;){var s=r[t],l=Ca(n,s);e(l,s)&&Uf(i,Kt(s,n),l)}return i}var zf=O1;function A1(n,r){return zf(n,r,function(e,t){return Gf(n,t)})}var kf=A1;var P1=Na(function(n,r){return n==null?{}:kf(n,r)}),zn=P1;var ki=require("three");function Hf(n){n.layers.forEach(r=>{if(r.type==="depth"&&r.colorA!==void 0){let e=r.colorA,t=r.colorB,o=[[e.r,e.g,e.b,e.a],[t.r,t.g,t.b,t.a]],i=[0,1];for(let l=2;l<10;l++)o.push(o[1]),i.push(1);let s={...zn(at(r),"type","visible","isVector","isWorldSpace","origin","alpha","mode"),near:Math.max(0,r.near),far:Math.max(0,r.far),colors:o,steps:i,num:2,direction:[1,0,0],smooth:!1,gradientType:1};Object.assign(r,s)}else if(r.type==="depth"&&r.gradientType===1&&(r.near<0||r.far<0)){let e={...at(r),near:Math.max(r.near,0),far:Math.max(r.far,0)};Object.assign(r,e)}})}function ka(n,r){Object.values(n.shared.materials).forEach(e=>r(e))}function Ha(n,r){n.scene.objects.traverse((e,t)=>{"materials"in t?t.materials.forEach(o=>{typeof o!="string"&&r(o)}):"material"in t&&typeof t.material!="string"&&r(t.material)})}function I1(n){Object.assign(n.scene.publish,{orbitControls:{...vn.defaultData,...at(n.scene.publish.orbitControls)}})}function C1(n){Object.assign(n.scene.publish.settings,{video:{...ya.defaultData.settings.video,...at(n.scene.publish.settings.video)}})}function N1(n){function r(e){if(e.layers){for(let t of Object.values(e.layers))if(t){for(let[o,i]of Object.entries(t))if((pu.includes(o)||typeof i=="boolean")&&delete t[o],o==="texture")for(let[s,l]of Object.entries(i))(fu.includes(s)||typeof l=="boolean")&&delete i[s]}}}n.scene.objects.traverse((e,t)=>{t.states.forEach(o=>{let i=o;i.material?r(i.material):i.materials&&i.materials.forEach(s=>{r(s)})})})}function E1(n){n.scene.publish.withBackground=!0}function L1(n){n.scene.publish.settings.web={compress:!0,preload:!0,preset:1}}function M1(n){n.scene.objects.traverse((r,e)=>{let t=e.cloner;t&&(t.radial.scale=t.radial.scale.map(o=>o+1),t.linear.scale=t.linear.scale.map(o=>o+1))})}function B1(n){n.scene.objects.traverse((r,e)=>{let t=e.geometry;t&&(t.type==="DodecahedronGeometry"||t.type==="IcosahedronGeometry")&&(t.detail=Math.round(t.detail))})}function D1(n){n.scene.objects.traverse((r,e)=>{let t=n.scene.objects.unproxy().parent(r);if(t){let o=at(n.scene.objects.data(t));o&&o.type==="Mesh"&&o.geometry.type==="BooleanGeometry"&&e.type==="Mesh"&&(e.visible=at(e).booleanExclude!==!0)}})}function G1(n){n.scene.objects.traverse((r,e)=>{if(e.type==="Mesh"){let t=e;e.geometry.type==="NonParametricGeometry"?t.material!==void 0&&delete t.material:t.materials!==void 0&&delete t.materials}})}function R1(n){function r(t){Object.setPrototypeOf(t,ze.prototype),t.texture&&Object.setPrototypeOf(t.texture,ze.prototype)}function e(t){Object.setPrototypeOf(t,ze.prototype);for(let o in t)r(t[o])}n.scene.objects.traverse((t,o)=>{o.states.forEach(i=>{let s=i;if(s.material){let l=at(s.material).layers;e(l),s.material.layers=l}if(s.materials)for(let l=0;l<s.materials.length;l++){let c=s.materials[l],u=at(c).layers;e(u),c.layers=u}})})}function Wf(n){n.layers===void 0&&Object.assign(n,Mt.defaultTwoLayerData("lambert"))}function xc(n){!n.layers||n.layers.forEach(r=>{if(r.type==="depth"&&r.colors.length===10){let e=[...r.colors];e.push(r.colors[9]);let t=[...r.steps];t.push(r.steps[9]);let o={...at(r),colors:e,steps:t};Object.assign(r,o)}})}function V1(n){n.scene.objects.traverse((r,e)=>{e.type==="Mesh"&&(e.geometry.type==="BooleanGeometry"||e.geometry.type==="SubdivGeometry")&&(e.geometry.phongAngle=35)})}function qf(n){n.scene.objects.traverse((r,e)=>{"materials"in e?e.materials.forEach(t=>{typeof t!="string"&&xc(t)}):"material"in e&&typeof e.material!="string"&&xc(e.material)}),Object.values(n.shared.materials).forEach(r=>xc(r))}function j1(n){n.scene.environment.ambientLight.softShadows=!1,n.scene.environment.ambientLight.softShadowQuality="low",n.scene.objects.traverse((r,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 F1(n){n.shared.audios=co({},Re.prototype)}function U1(n){n.shared.videos=co({},Re.prototype)}function z1(n){let r=n.shared.materials;Object.entries(r).forEach(([e,t])=>{if(!t.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(r,{[e]:o})}})}function k1(n){Object.entries(at(n.shared.images)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete n.shared.images[t]}),Object.entries(at(n.shared.audios)).filter(t=>t[1].asset===!1).map(t=>t[0]).forEach(t=>{delete n.shared.audios[t]})}function H1(n){n.scene.publish.settings.web.preload=!1}function $f(n){n.layers&&n.layers.forEach(r=>{r.type==="depth"&&r.num!==void 0&&(r.colors=r.colors.slice(0,r.num),r.steps=r.steps.slice(0,r.num),delete r.num)})}function W1(n){n.shared.fonts=co({},Re.prototype)}function q1(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 $1(n){let r=[];n.scene.objects.traverse((e,t)=>{let o=t;if(o.type==="TextFrame"){let i=Mt.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=q1(o.font);n.shared.fonts[l]===void 0&&(n.shared.fonts[l]={name:l});let c={name:o.name,...Ht.defaultData,...Mo.defaultData,flatShading:!1,wireframe:!1,geometry:{...ao.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:at(o.states),events:at(o.events),visible:o.visible,raycastLock:o.raycastLock,position:o.position,rotation:o.rotation,scale:o.scale,hiddenMatrix:o.hiddenMatrix},u=at(n.scene.objects).parent(e);n.scene.objects.insertAfter(u??null,e,[{id:e+"new",data:c,children:[]}]),r.push(e)}}),r.forEach(e=>{n.scene.objects.delete(e)})}function Y1(n){let r={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,t)=>{t.events.forEach(o=>{if(!!r[Number(o.type)])if(Object.assign(o,{type:r[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 xe,move:new xe,jump:new xe}});else{let i=new xe;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:ki.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,zn(s,"mass","stiffness","damping","velocity")):s.easing===5&&Object.assign(a,{control1:{...s.control1},control2:{...s.control2}});let d={repeat:s.repeat?-1:0,delay:s.delay,delayDirection:s.delayDirection,direction:s.cycle&&s.rewind?"pingpong-rewind":s.cycle?"pingpong":"normal"},p={state:s.state,...d,...a},f={allowSlerp:!0,type:"Transition",object:s.object,repeat:0,delay:0,delayDirection:void 0,direction:"normal",tweens:new xe({fi:0,id:ki.MathUtils.generateUUID(),data:u},{fi:1,id:ki.MathUtils.generateUUID(),data:p})};i.push({fi:c,id:l,data:f})}),delete o.targets)}})})}function X1(n){n.scene.objects.traverse((r,e)=>{function t(o,i){let s=new xe,l=[];if(e.events.forEach((c,u,a)=>{if(c.type==="Audio"&&c.trigger===i){let d;l.push(u),c.interaction==="play"?d={...zn(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")&&(d={...zn(c,"interaction","delay","object","playAudio"),type:"Audio"}),d&&s.push({fi:a,id:u,data:d})}}),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:ki.MathUtils.generateUUID(),data:{type:o,actions:s}}])}}t("Start","start"),t("MouseDown","mouseDown"),t("MouseUp","mouseUp"),t("KeyDown","keyDown"),t("KeyUp","keyUp")})}function Yf(n){let r=n.layers.find(e=>e.type==="light")?.data;if(r?.category==="basic"){let e=Tt.defaultData("light","phong"),t=r;Object.assign(t,e),t.visible=!1}}function Xf(n){ka(n,Yf),Ha(n,Yf)}function K1(n){n.scene.objects.traverse((r,e)=>{e.type==="Mesh"&&e.geometry.type==="SubdivGeometry"&&(e.geometry.scaleBaked||(e.geometry.scaleBaked=[1,1,1]))})}function Z1(n){n.scene.objects.traverse((r,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"}})})}function Q1(n){n.scene.objects.traverse((r,e)=>{e.type==="Mesh"&&e.geometry.type==="NonParametricGeometry"&&!("material"in e)&&!("materials"in e)&&(e.material=Mt.defaultTwoLayerData("phong"))})}var Kf=30;function Zf(n){let r=n.schema??0;r!==Kf&&(console.warn("updating from ",r,"to ",Kf),r<1&&(Ha(n,Hf),ka(n,Hf),n.schema=1),r<2&&(I1(n),n.schema=2),r<3&&(N1(n),n.schema=3),r<4&&(E1(n),n.schema=4),r<5&&(L1(n),n.schema=5),r<6&&(M1(n),n.schema=6),r<7&&(B1(n),n.schema=7),r<8&&(n.schema=8),r<9&&(qf(n),n.schema=9),r<10&&(V1(n),n.schema=10),r<11&&(j1(n),n.schema=11),r<12&&(qf(n),n.schema=12),r<13&&(F1(n),n.schema=13),r<14&&(z1(n),n.schema=14),r<15&&(k1(n),n.schema=15),r<16&&(H1(n),n.schema=16),r<17&&(Ha(n,$f),ka(n,$f),n.schema=17),r<18&&(Ha(n,Wf),ka(n,Wf),n.schema=18),r<19&&(C1(n),n.schema=19),r<20&&(W1(n),$1(n),n.schema=20),r<21&&(Y1(n),X1(n),n.schema=21),r<22&&(Xf(n),n.schema=22),r<23&&(K1(n),n.schema=23),r<24&&(Z1(n),n.schema=24),(r<25||n.shared.videos===void 0)&&(U1(n),r<25&&(n.schema=25)),r<26&&(D1(n),n.schema=26),r<27&&(G1(n),n.schema=27),r<28&&(Xf(n),n.schema=28),r<29&&(R1(n),n.schema=29),r<30&&(Q1(n),n.schema=30))}var Wa;(r=>r.emptyImage={data:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVQYV2NgYAAAAAMAAWgmWQ0AAAAASUVORK5CYII="})(Wa||(Wa={}));var Ce=require("three"),wi=qs(Jf());var J1=.5*(Math.sqrt(3)-1),Wi=(3-Math.sqrt(3))/6,ew=1/3,Pr=1/6,S3=(Math.sqrt(5)-1)/4,w3=(5-Math.sqrt(5))/20,qi=n=>Math.floor(n)|0,em=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]),bc=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 qa(n=Math.random){let r=rm(n),e=new Float64Array(r).map(o=>em[o%12*2]),t=new Float64Array(r).map(o=>em[o%12*2+1]);return function(i,s){let l=0,c=0,u=0,a=(i+s)*J1,d=qi(i+a),p=qi(s+a),f=(d+p)*Wi,m=d-f,h=p-f,y=i-m,g=s-h,v,w;y>g?(v=1,w=0):(v=0,w=1);let b=y-v+Wi,S=g-w+Wi,A=y-1+2*Wi,_=g-1+2*Wi,x=d&255,P=p&255,O=.5-y*y-g*g;if(O>=0){let N=x+r[P],L=e[N],U=t[N];O*=O,l=O*O*(L*y+U*g)}let I=.5-b*b-S*S;if(I>=0){let N=x+v+r[P+w],L=e[N],U=t[N];I*=I,c=I*I*(L*b+U*S)}let T=.5-A*A-_*_;if(T>=0){let N=x+1+r[P+1],L=e[N],U=t[N];T*=T,u=T*T*(L*A+U*_)}return 70*(l+c+u)}}function tm(n=Math.random){let r=rm(n),e=new Float64Array(r).map(i=>bc[i%12*3]),t=new Float64Array(r).map(i=>bc[i%12*3+1]),o=new Float64Array(r).map(i=>bc[i%12*3+2]);return function(s,l,c){let u,a,d,p,f=(s+l+c)*ew,m=qi(s+f),h=qi(l+f),y=qi(c+f),g=(m+h+y)*Pr,v=m-g,w=h-g,b=y-g,S=s-v,A=l-w,_=c-b,x,P,O,I,T,N;S>=A?A>=_?(x=1,P=0,O=0,I=1,T=1,N=0):S>=_?(x=1,P=0,O=0,I=1,T=0,N=1):(x=0,P=0,O=1,I=1,T=0,N=1):A<_?(x=0,P=0,O=1,I=0,T=1,N=1):S<_?(x=0,P=1,O=0,I=0,T=1,N=1):(x=0,P=1,O=0,I=1,T=1,N=0);let L=S-x+Pr,U=A-P+Pr,K=_-O+Pr,J=S-I+2*Pr,se=A-T+2*Pr,z=_-N+2*Pr,W=S-1+3*Pr,q=A-1+3*Pr,j=_-1+3*Pr,M=m&255,B=h&255,D=y&255,F=.6-S*S-A*A-_*_;if(F<0)u=0;else{let G=M+r[B+r[D]];F*=F,u=F*F*(e[G]*S+t[G]*A+o[G]*_)}let Y=.6-L*L-U*U-K*K;if(Y<0)a=0;else{let G=M+x+r[B+P+r[D+O]];Y*=Y,a=Y*Y*(e[G]*L+t[G]*U+o[G]*K)}let k=.6-J*J-se*se-z*z;if(k<0)d=0;else{let G=M+I+r[B+T+r[D+N]];k*=k,d=k*k*(e[G]*J+t[G]*se+o[G]*z)}let V=.6-W*W-q*q-j*j;if(V<0)p=0;else{let G=M+1+r[B+1+r[D+1]];V*=V,p=V*V*(e[G]*W+t[G]*q+o[G]*j)}return 32*(u+a+d+p)}}function rm(n){let e=new Uint8Array(512);for(let t=0;t<512/2;t++)e[t]=t;for(let t=0;t<512/2-1;t++){let o=t+~~(n()*(256-t)),i=e[t];e[t]=e[o],e[o]=i}for(let t=256;t<512;t++)e[t]=e[t-256];return e}var om=require("three"),ar=new om.Triangle,$a=class{constructor(r){this.weightAttribute=null;let e=r.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 r=this.positionAttribute,e=new Float32Array(r.count/3);for(let o=0;o<r.count;o+=3){let i=1;ar.a.fromBufferAttribute(r,o),ar.b.fromBufferAttribute(r,o+1),ar.c.fromBufferAttribute(r,o+2),i*=ar.getArea(),e[o/3]=i}this.distribution=new Float32Array(r.count/3);let t=0;for(let o=0;o<e.length;o++)t+=e[o],this.distribution[o]=t;return this}setRandomGenerator(r){return this.randomFunction=r,this}sample(r,e){if(this.distribution){let t=this.distribution[this.distribution.length-1],o=this.binarySearch(this.randomFunction()*t);return this.sampleFace(o,r,e)}}binarySearch(r){if(!this.distribution)return 0;let e=this.distribution,t=0,o=e.length-1,i=-1;for(;t<=o;){let s=Math.ceil((t+o)/2);if(s===0||e[s-1]<=r&&e[s]>r){i=s;break}else r<e[s]?o=s-1:t=s+1}return i}sampleFace(r,e,t){let o=this.randomFunction(),i=this.randomFunction();return o+i>1&&(o=1-o,i=1-i),ar.a.fromBufferAttribute(this.positionAttribute,r*3),ar.b.fromBufferAttribute(this.positionAttribute,r*3+1),ar.c.fromBufferAttribute(this.positionAttribute,r*3+2),e.set(0,0,0).addScaledVector(ar.a,o).addScaledVector(ar.b,i).addScaledVector(ar.c,1-(o+i)),ar.getNormal(t),this}};var am=require("three");var Zt=require("three"),sm=qs(im()),tw=new Zt.Matrix4,rw=new Zt.Matrix4,ow=new Zt.Matrix4,$i;(r=>{function n(e){return e&&e.__isSPEObject}r.is=n})($i||($i={}));var kn=n=>class extends n{constructor(){super(...arguments);this.hiddenMatrix=new Zt.Matrix4;this.matrixWorldRigid=new Zt.Matrix4;this.shearScale=new Zt.Matrix4;this.shearScaleInv=new Zt.Matrix4}get __isSPEObject(){return!0}isDescendantOf(t){t instanceof Zt.Object3D&&(t=t.uuid);let o=this;for(;o.parent;){if(o.parent.uuid===t)return!0;o=o.parent}return!1}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(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,t=!0);for(let o of this.children)o.updateMatrixWorld(t)}updateWorldMatrix(t,o){let i=this.parent;if(t&&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)}traverseObject(t,o=0){if(t(this,o)!==!0)for(let s of this.children)$i.is(s)&&s.traverseObject(t,o+1)}updateMatrixWorldSVD(){let t=this.matrixWorld.elements,o=[[t[0],t[4],t[8]],[t[1],t[5],t[9]],[t[2],t[6],t[10]]],{u:i,v:s,q:l}=(0,sm.SVD)(o),c=tw.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=rw.set(s[0][0],s[0][1],s[0][2],0,s[1][0],s[1][1],s[1][2],0,s[2][0],s[2][1],s[2][2],0,0,0,0,1),a=ow.copy(u).transpose();this.shearScale.makeScale(l[0],l[1],l[2]).multiply(a).premultiply(u),this.shearScaleInv.copy(this.shearScale).invert(),this.matrixWorldRigid.multiplyMatrices(c,a).copyPosition(this.matrixWorld),l.every(d=>Math.abs(l[0]-d)<.01)?this.hasNonUniformScale=!1:this.hasNonUniformScale=!0}attach(t,o){this.updateWorldMatrix(!0,!1);let i=new Zt.Matrix4().copy(this.matrixWorld).invert();return t.parent!==null&&(t.parent.updateWorldMatrix(!0,!1),i.multiply(t.parent.matrixWorld)),"hiddenMatrix"in t&&t.hiddenMatrix instanceof Zt.Matrix4?t.hiddenMatrix.premultiply(i):t.applyMatrix4(i),t.updateWorldMatrix(!1,!1),this.add(t),o!==void 0&&(this.children.pop(),this.children.splice(o,0,t)),this}};var Sc=class extends kn(am.Object3D){},nw=n=>n.type==="Mesh",Yr=class extends Sc{constructor(e){super();this.object=e;this.matrixAutoUpdate=!1}expand(){let e=0,t=this.object.entityChildren(e);for(;t;){let o=this.children[e];o?.object!==t&&(o&&this.remove(o),o=new Yr(t),this.add(o),o.matrixAutoUpdate=!1,o.matrix=t.matrix,o.hiddenMatrix=t.hiddenMatrix),o.expand(),e+=1,t=this.object.entityChildren(e)}for(;this.children.length>e;)this.remove(this.children[e])}get visible(){return this.object.visible||this.object.dataPatched.visible&&this.object.dataPatched.cloner?.hideBase===!0}set visible(e){}get castShadow(){return this.object.castShadow}set castShadow(e){}get receiveShadow(){return this.object.receiveShadow}set receiveShadow(e){}get isMesh(){return nw(this.object)}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 si=require("three");var al=require("three");var Xe=require("three"),jo=new Xe.Vector3,Fo=new Xe.Vector3,Hn=new Xe.Matrix4,cm=[new Xe.Vector3(-1,1,1),new Xe.Vector3(-1,-1,1),new Xe.Vector3(1,-1,1),new Xe.Vector3(1,1,1),new Xe.Vector3(-1,1,-1),new Xe.Vector3(-1,-1,-1),new Xe.Vector3(1,-1,-1),new Xe.Vector3(1,1,-1)],iw=[[0,3],[1,2],[5,6],[4,7],[0,1],[3,2],[7,6],[4,5],[0,4],[1,5],[2,6],[3,7]],sw=[[0,2],[7,5],[4,1],[3,6],[4,3],[1,6]],lm=(n,r,e)=>{n.updateEntityBoxSize(jo,Fo),Hn.copy(r).multiply(n.matrixWorld),Fo.x===0&&Fo.y===0&&Fo.z===0?e.push(new Xe.Vector3(jo.x,jo.y,jo.z).applyMatrix4(Hn)):cm.forEach(t=>{e.push(t.clone().multiply(Fo).add(jo).applyMatrix4(Hn))})},Yi=class extends Xe.Box3{constructor(){super(...arguments);this.matrix=new Xe.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(t=>t.clone()),this.faces=e.faces.map(t=>t.clone()),this.edges=e.edges.map(t=>t.clone()),this.centerEdges=e.centerEdges.map(t=>t.clone()),this}setFromObjectSize(e,t=!1){e.updateWorldMatrix(!1,t),this.makeEmpty(),this.matrix.copy(e.matrixWorld);let o=new Xe.Matrix4().copy(e.matrixWorld).invert();return this.expandByObjectSize(e,o,t)}expandByObjectSize(e,t,o=!1){let i=[];return o===!0?e.traverseEntity(s=>{s.visible&&lm(s,t,i)}):lm(e,t,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(Hn.copy(this.matrix).setPosition(0,0,0)),e}computeVertices(){this.getSize(Fo).multiplyScalar(.5),this.getCenter(jo),Hn.copy(this.matrix).setPosition(jo),this.vertices=cm.map(e=>e.clone().multiply(Fo).applyMatrix4(Hn))}computeEdges(){this.vertices.length>0&&this.computeVertices(),this.edges=iw.map(([e,t])=>new Xe.Line3(this.vertices[e],this.vertices[t])),this.centerEdges=this.edges.map(e=>e.getCenter(new Xe.Vector3))}computeFaces(){this.vertices.length>0&&this.computeVertices(),this.faces=sw.map(([e,t])=>this.vertices[e].clone().add(this.vertices[t]).multiplyScalar(.5))}};var lr={Cloner:()=>{},changeEntityProptotype:()=>{},createEntity:()=>{}};var ke;(r=>{function n(e){return e&&e.__isEntity}r.is=n})(ke||(ke={}));var cr=n=>ke.is(n),Xa=n=>class extends kn(n){constructor(){super(...arguments);this.raycastLock=!1;this.scaleLock=!1;this.disposed=!1;this.stateSelection=null;this.instances=[];this.prevState=null;this.currentState=null;this.reversibleToState=null;this.currentTransitionEvent=null;this._singleBBox=new Yi;this._recursiveBBox=new Yi;this.singleBBoxNeedsUpdate=!0;this.recursiveBBoxNeedsUpdate=!0}get __isEntity(){return!0}entityChildren(t){let o=this.children[t];if(ke.is(o))return o}get isConcreteEntity(){return typeof this.identity=="string"}get isVirtualEntity(){return typeof this.identity!="string"}get isInstanceRoot(){return this.isConcreteEntity&&this.data.type==="Instance"}nearestInstanceSelfOrParent(){let t=this;for(;t.data.type!=="Instance";){let o=t.parent;if(ke.is(o))t=o;else return}return t}forInstancesRec(t){this.instances.forEach(o=>{o.disposed||t(o),o.forInstancesRec(t)})}super_Entity(t,o){typeof t=="string"&&(this.uuid=t),this.identity=t,this.data=o,this.matrixAutoUpdate=!1,this.dataPatched=this.data}changeSelectedState(t,o,i=!1){if(!(this.data.states.length===0&&!i)){for(let s of this.data.states)Bo.toOps(this.data,s.data).forEach(c=>{let u=Ks.replaceProps(c,this.data);this.updateByPatchedOp(u,this.data,o)});if(t!==null){let s=this.data.states.data(t);s&&(this.dataPatched=Bo.patch(this.data,s),Bo.toOps(this.data,s).forEach(c=>{this.updateByPatchedOp(c,this.dataPatched,o)}))}else this.dataPatched=this.data;i&&this.updateTransformState(this.dataPatched),this.stateSelection=t}}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}updateEntityBoxSize(t,o){t.setScalar(0),o.setScalar(0)}resetBBoxNeedsUpdateSelf(){this.singleBBoxNeedsUpdate=!0,this.recursiveBBoxNeedsUpdate=!0}resetBBoxNeedsUpdate(){this.resetBBoxNeedsUpdateSelf(),this.traverseAncestors(t=>{cr(t)&&t.resetBBoxNeedsUpdateSelf()}),this.traverseEntity(t=>{t.resetBBoxNeedsUpdateSelf()})}find(t){let o;return this.traverseEntity(i=>{i.uuid===t&&(o=i)}),o}traverseSortNextHelper(){let t=this.parent;if(t){let o=t.children,i=o.indexOf(this)+1;if(ke.is(o[i]))return o[i];if(ke.is(t))return t.traverseSortNextHelper()}}sortNext(){let t=this.children;return this.children.length>0&&ke.is(this.children[0])?t[0]:this.traverseSortNextHelper()}goUp(t){let o=this;for(;t>0&&o!==null;)o=o.parent,t-=1;return o}hasAnccestorOrSelf(t){return this===t||this.hasAnccestor(t)}hasAnccestor(t){let o=this.parent;for(;o;){if(t===o)return!0;o=o.parent}return!1}countToAccestor(t){let o=0,i=this;for(;i!==t;){if(i===null)return-1;i=i.parent,o+=1}return o}forEachEntity(t){for(let o of this.children)cr(o)&&t(o)}traverseEntityAncestors(t){this.traverseAncestors(o=>{ke.is(o)&&t(o)})}traverseEntity(t,o=0){if(t(this,o)!==!0)for(let s of this.children)cr(s)&&s.traverseEntity(t,o+1)}traverseVisibleEntity(t){t(this);for(let o of this.children)cr(o)&&o.visible&&o.traverseVisibleEntity(t)}updateMatrix(){super.updateMatrix(),this.cloner&&this.cloner.onObjUpdateMatrix(),this.dispatchEvent({type:"updateMatrix"})}copy(t,o=!0){return super.copy(t,!1),this.raycastLock=t.raycastLock,this.scaleLock=t.scaleLock,this.hiddenMatrix.copy(t.hiddenMatrix),this}hasEntityChild(){return this.children.some(t=>cr(t))}isAncestorOf(t){if(this.uuid===t)return!1;let o=!1;return this.traverseEntity(i=>{i.uuid===t&&(o=!0)}),o}toObjectTransformState(t=[]){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 Un(o,t)}updateTransformState(t){let o=!1;return t.position&&(this.position.fromArray(t.position),o=!0),t.rotation&&(this.rotation.fromArray(t.rotation),o=!0),t.scale&&(o=!0,this.scale.fromArray(t.scale)),t.hiddenMatrix!==void 0&&(o=!0,this.hiddenMatrix.fromArray(t.hiddenMatrix??so.identity)),o&&(this.updateMatrix(),this.resetBBoxNeedsUpdate(),this.invalidateClonerTransform(this),this.traverseEntityAncestors(i=>{i.invalidateClonerTransform(this)})),t.position&&t.rotation&&t.scale&&t.hiddenMatrix!==void 0&&this.updateWorldMatrix(!1,!0),o}dispose(){this.disposed=!0,this.cloner&&(this.cloner.removeFromParent(),this.cloner=void 0)}disposeChildrenRecursively(){for(let t of this.children)ke.is(t)&&t.disposeRecursively()}disposeRecursively(){this.dispose(),this.children.forEach(t=>{ke.is(t)&&t.disposeRecursively()})}toState(t=[]){let o={name:this.name,visible:this.visible,raycastLock:this.raycastLock,...this.toObjectTransformState(t)};return Un(o,t)}updateByOp(t,o,i,s){let l=this.data;this.data=o;let c=t,u=br(t.path,["states","*"]);if(u!==null){if(t.type===0){let[a]=u;if(this?.stateSelection===a){let d={...t.props};if(Object.values(t.props).some(p=>p===void 0)){let p=this.data;if(p!==void 0){let f=wt.zoom(p,t.path.slice(2));if(f)for(let m in t.props)t.props[m]===void 0&&m in f&&(d[m]=f[m])}}c={...t,props:d,path:t.path.slice(2)}}}}else if(t.type===0){let a=this.stateSelection?this.data.states.data(this.stateSelection):void 0;if(a!==void 0){if(t.props.name!==void 0&&a.name){let{name:p,...f}=a;a=f}if(t.props.material!==void 0&&"material"in a){let{material:p,...f}=a;a=f}let d=wt.removeOverridden(t.path,t.props,a);c={...t,props:d}}}if(this.updateByPatchedOpBase(c,Bo.patch(this.data,this.stateSelection?this.data.states.data(this.stateSelection):void 0),i),br(t.path,["overrides"])){let a=[],d=[...t.path];for(a.push(d[1]),d.splice(0,2);d.length>0&&d[0]==="descendants";)a.push(d[1]),d.splice(0,2);if(a[a.length-1]===void 0){if(t.type===0)for(let p of Object.keys(t.props)){a[a.length-1]=p;let f=i.scene.findInstance([this.uuid,...a]);f&&(f.overrideData=t.props[p],f.updateState(zr.apply(f.component.data,f.overrideData),i))}}else{let p=i.scene.findInstance([this.uuid,...a]);if(p){let f=wt.zoom(p.component.data,d);if(t={...t,path:d},t.type===0){let m=t.props;if(f)for(let[h,y]of Object.entries(t.props))y===void 0&&(m===t.props&&(m={...t.props}),m[h]=f[h]);t={...t,props:m}}p.overrideData=xn.resolve(o.overrides,a),p.updateByOp(t,ft.applySimple(p.data,t),i,!1)}}}else if(this.instances.length>0){let a;if(t.path.length===0&&t.type===0){let d;for(let p of lo.rootOverrideProps)p in t.props&&(d===void 0&&(d={}),d[p]=t.props[p]);d&&(a={...t,props:d})}else for(let d of lo.rootOverrideProps)if(br(t.path,[d])){a=t;break}a!==void 0&&this.instances.forEach(d=>{if(d.isInstanceRoot){let p=zr.filterOp(d.overrideData,a);p&&d.updateByOp(p,ft.applySimple(d.data,p),i,!0)}}),this.instances.forEach(d=>{if(!d.isInstanceRoot){let p=zr.filterOp(d.overrideData,t);if(p){let f;l===d.data&&t===p?f=o:f=ft.applySimple(d.data,p),d.updateByOp(p,f,i,!0)}}})}}updateByPatchedOpBase(t,o,i){if(this.dataPatched=o,t.path.length===0&&t.type===0)t.props.type!==void 0&&!sr.is(t.props.type)&&lr.changeEntityProptotype(this,o,i);else if(t.path.length===1&&t.path[0]==="geometry"&&t.type===0&&"type"in t.props){lr.changeEntityProptotype(this,o,i);for(let s of this.children)ke.is(s)&&s.updateVisible()}this.updateByPatchedOp(t,o,i)}updateByPatchedOp(t,o,i){if(t.path.length===0&&t.type===0&&this.updateState(t.props,i),br(t.path,["cloner"])!==null){let s=ft.drop(t,1);s.path.length===0&&s.type===0&&s.props.disabled===!0?this.setFromClonerState(null,i):this.cloner?this.cloner.updateState(o.cloner,i.scene):(this.setFromClonerState(o.cloner,i),this.expandCloner(i.scene)),this.updateVisible()}}updateVisible(){this.visible=this.dataPatched.visible&&((this.dataPatched.cloner?.disabled??!0)||this.dataPatched.cloner?.hideBase!==!0)}updateState_Entity(t,o){t.name!==void 0&&(this.name=t.name),t.raycastLock!==void 0&&(this.raycastLock=t.raycastLock),t.visible!==void 0&&(this.updateVisible(),this.resetBBoxNeedsUpdate()),"cloner"in t&&t.cloner!==void 0&&(this.setFromClonerState(t.cloner,o),this.updateVisible()),this.updateTransformState(t)}get attachedSurfaceCloners(){return this.children.filter(t=>t instanceof lr.Cloner&&t.parameters.type==="toObject")}setFromClonerState(t,o){this.disposed||(t===null||t.disabled?(this.cloner&&this.cloner.removeFromParent(),this.cloner=void 0):(this.cloner===void 0&&(this.cloner=new lr.Cloner(this,t),o.scene.addPendingExpandCloner(this)),this.cloner.updateState(t,o.scene)))}expandCloner(t){!this.disposed&&this.cloner&&this.cloner.expandClones(t)}invalidateClonerTransform(t){this.cloner&&this.cloner.invalidateTransform(t)}};var pm=require("three");var Ue=require("three"),um=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.parameters??{width:100,radialSegments:64,heightSegments:1,openEnded:!1,thetaStart:0,thetaLength:360,cornerRadius:0,cornerSegments:8,hollow:0},n.parameters),t=e.width/2,o=e.radiusTop??t,i=e.radiusBottom??t;return o===i?(o=t,i=t):o>i?(o=t,i=i*t/o):(o=o*t/i,i=t),{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:r,depth:e,height:t,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,radiusTop:u,radiusBottom:a,cornerRadius:d,cornerSegments:p,hollow:f}=n.parameters,m;return d||f?m=new Xi(u,a,t,o,i,s,l,c*Math.PI/180,d,d,p,f):m=new Ue.CylinderGeometry(u,a,t,o,i,s,l,c*Math.PI/180),m.scale(1,1,e/r),Object.assign(m,{userData:{...n,type:"CylinderGeometry"}})}};function go(n,r,e){e.x=n.x*r.x,e.y=n.y,e.z=n.x*r.y}function dm(n){return new Ue.Vector2(n.y,-n.x)}var Xi=class extends Ue.BufferGeometry{constructor(r,e,t,o,i,s,l,c,u,a,d,p,f=!1){super(),this.type="RoundedCylinderBufferGeometry",r=r!==void 0?r:1,e=e!==void 0?e:1,t=t||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=[],y=[],g=[],v=0,w=t/2,b=new Ue.Vector3,S=new Ue.Vector3;f&&r==0&&(r=u),f&&e==0&&(e=a);let A=new Ue.Vector2(r,w),_=new Ue.Vector2(e,-w),x=null,P=null,O=null,I=null,T=A.clone().sub(_),N=0,L=0,U=0;p>0&&(N=Math.min(r,e)*(1-p),L=r-N,U=e-N);let K=A.clone();K.x-=N;let J=Math.PI-T.angle(),se=T.angle(),z=Math.tan(se/2),W=Math.tan(J/2),q=z+W,j=p?q:W,M=p?q:z;if(u=Math.min(u,(r-L)/j,T.length()/q),a=Math.min(a,(e-U)/M,T.length()/q),u>0){let V=u/z;x=A.clone().sub(new Ue.Vector2(V,u)),p&&(O=x.clone(),O.x-=N-q*u),A.sub(T.clone().setLength(V))}if(a>0){let V=a/W;P=_.clone().sub(new Ue.Vector2(V,-a)),_.add(T.clone().setLength(V)),p&&(I=P.clone(),I.x-=N-q*a,K.sub(T.clone().setLength(V)))}T=A.clone().sub(_);let B=T.length()<.5,D=[];for(let V=0;V<=o;V++){let G=[],H=V/o,$=H*c+l,ee=new Ue.Vector2(Math.sin($),Math.cos($));I&&P?(F(G,H,ee,J,a,I,-1,!0),F(G,H,ee,se,a,P,-1,!1)):P?(Y(G,ee,P.x,0,-1),F(G,H,ee,se,a,P,-1,!1)):s||Y(G,ee,e,U,-1);let ae=dm(T).normalize();if(go(ae,ee,b),!B)for(let te=0;te<=i;te++){let re=te/i,oe=T.clone().multiplyScalar(re).add(_);go(oe,ee,S),h.push(S.x,S.y,S.z),y.push(b.x,b.y,b.z),g.push(H,.5+S.y/t),G.push(v++)}if(O&&x?(F(G,H,ee,J,u,x,1,!1),F(G,H,ee,se,u,O,1,!0)):x?(F(G,H,ee,J,u,x,1,!1),Y(G,ee,x.x,0,1)):s||Y(G,ee,r,L,1),p&&!B){let te=dm(T).multiplyScalar(-1).normalize();go(te,ee,b);for(let re=0;re<=i;re++){let oe=re/i,Z=T.clone().multiplyScalar(-oe).add(K);go(Z,ee,S),h.push(S.x,S.y,S.z),y.push(b.x,b.y,b.z),g.push(H,.5+S.y/t),G.push(v++)}}p&&!s&&G.push(G[0]),D.push(G)}for(let V=0;V<D.length-1;V++)for(let G=0;G<D[0].length-1;G++){if(s&&p&&G==i)continue;let H=D[V][G],$=D[V+1][G],ee=D[V+1][G+1],ae=D[V][G+1],te=h[ee*3+0],re=h[ee*3+2];m.push(H,$,ae),(te!=0||re!=0)&&m.push($,ee,ae)}c<Math.PI*2&&(k(-1,D[0],l),k(1,D[D.length-1],l+c)),this.setIndex(m),this.setAttribute("position",new Ue.Float32BufferAttribute(h,3)),this.setAttribute("normal",new Ue.Float32BufferAttribute(y,3)),this.setAttribute("uv",new Ue.Float32BufferAttribute(g,2));function F(V,G,H,$,ee,ae,te,re){for(let oe=0;oe<d+1;oe++){let Z=oe/d,he=te<0?Z:1-Z;re&&(he-=1),he*=$;let ue=new Ue.Vector2(Math.sin(he),Math.cos(he)*te),ge=ue.clone().multiplyScalar(ee).add(ae);go(ge,H,S),h.push(S.x,S.y,S.z),go(ue,H,b),y.push(b.x,b.y,b.z),g.push(G,.5+S.y/t),V.push(v++)}}function Y(V,G,H,$,ee){let ae=new Ue.Vector3,te=new Ue.Vector2,re=[H,$];ee<0&&re.reverse();for(let oe of re)te.set(oe,w*ee),go(te,G,ae),h.push(ae.x,ae.y,ae.z),y.push(0,ee,0),g.push(.5,.5),V.push(v++)}function k(V,G,H){let $=new Ue.Vector2(Math.sin(H),Math.cos(H)),ee=new Ue.Vector2(-Math.cos(H),Math.sin(H)),ae=new Ue.Vector3,te=V<0?(Z,he,ue)=>m.push(Z,he,ue):(Z,he,ue)=>m.push(Z,ue,he),re=new Ue.Vector2((r+e+L+U)/4,0);go(re,$,ae),h.push(ae.x,ae.y,ae.z),y.push(ee.x,0,ee.y),g.push(.5,.5);let oe=v++;for(let Z of G){let he=h.slice(Z*3,Z*3+3);h.push(...he),y.push(ee.x,0,ee.y);let ue=g.slice(Z*2,Z*2+2);g.push(...ue),v++}for(let Z=oe+1;Z<v-1;Z++)te(oe,Z,Z+1);te(oe,v-1,oe+1)}}};var fm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,depth:e,height:t,radialSegments:o,heightSegments:i,openEnded:s,thetaStart:l,thetaLength:c,cornerRadiusTop:u,cornerRadiusBottom:a,cornerSegments:d}=n.parameters,p;return u>0||a>0||c<360?p=new Xi(0,r/2,t,o,i,s,l,c*Math.PI/180,u,a,d,0,!0):p=new pm.ConeGeometry(r/2,t,o,i,s),p.scale(1,1,e/r),Object.assign(p,{userData:{...n,type:"ConeGeometry"}})}};var Dt=require("three"),mm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,height:e,depth:t,widthSegments:o,heightSegments:i,depthSegments:s,cornerRadius:l,cornerSegments:c}=n.parameters,u;return l==0?u=new Dt.BoxGeometry(r,e,t,o,i,s):u=new _c(r,e,t,o,i,s,l,c),Object.assign(u,{userData:{...n,type:"CubeGeometry"}})}},wc=Math.PI/2,_c=class extends Dt.BufferGeometry{constructor(r=1,e=1,t=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,r/2,e/2,t/2);let a=[],d=[],p=[],f=[],m=0,h=0;y("z","y","x",-1,-1,t,e,r,s,i,0),y("z","y","x",1,-1,t,e,-r,s,i,1),y("x","z","y",1,1,r,t,e,o,s,2),y("x","z","y",1,-1,r,t,-e,o,s,3),y("x","y","z",1,-1,r,e,t,o,i,4),y("x","y","z",-1,-1,r,e,-t,o,i,5),l>0&&(g("z","y","x",-1,-1,1,t,e,r,s,0),g("z","y","x",1,-1,-1,t,e,r,s,1),g("z","y","x",-1,1,-1,t,e,r,s,1),g("z","y","x",1,1,1,t,e,r,s,0),g("x","y","z",-1,-1,-1,r,e,t,o,0),g("x","y","z",1,-1,1,r,e,t,o,1),g("x","y","z",-1,1,1,r,e,t,o,0),g("x","y","z",1,1,-1,r,e,t,o,1),g("y","x","z",-1,-1,1,e,r,t,i,0),g("y","x","z",1,-1,-1,e,r,t,i,1),g("y","x","z",1,1,1,e,r,t,i,1),g("y","x","z",-1,1,-1,e,r,t,i,0),v(1,1,1),v(-1,1,1),v(1,-1,1),v(-1,-1,1),v(1,1,-1),v(-1,1,-1),v(1,-1,-1),v(-1,-1,-1)),this.setIndex(a),this.setAttribute("position",new Dt.Float32BufferAttribute(d,3)),this.setAttribute("normal",new Dt.Float32BufferAttribute(p,3)),this.setAttribute("uv",new Dt.Float32BufferAttribute(f,2));function y(w,b,S,A,_,x,P,O,I,T,N){let L=(x-2*l)/I,U=(P-2*l)/T,K=x/2-l,J=P/2-l,se=O/2,z=I+1,W=T+1,q=0,j=0,M=new Dt.Vector3;for(let B=0;B<W;B++){let D=B*U-J;for(let F=0;F<z;F++){let Y=F*L-K;M[w]=Y*A,M[b]=D*_,M[S]=se,d.push(M.x,M.y,M.z),M[w]=0,M[b]=0,M[S]=O>0?1:-1,p.push(M.x,M.y,M.z),f.push(F/I),f.push(1-B/T),q+=1}}for(let B=0;B<T;B++)for(let D=0;D<I;D++){let F=m+D+z*B,Y=m+D+z*(B+1),k=m+(D+1)+z*(B+1),V=m+(D+1)+z*B;a.push(F,Y,V),a.push(Y,k,V),j+=6}u.addGroup(h,j,N),h+=j,m+=q}function g(w,b,S,A,_,x,P,O,I,T,N){let L=(P-2*l)/T,U=P/2-l,K=O/2-l,J=I/2,se=T+1,z=0,W=0,q=new Dt.Vector3,j=new Dt.Vector3;for(let M=0;M<c+1;M++){let B=M/c*wc,D=Math.sin(B)*l,F=(1-Math.cos(B))*l,Y=Math.sin(B),k=Math.cos(B);q[b]=(K+D)*_,q[S]=(J-F)*x,j[w]=0,j[b]=Y*Math.sign(q[b]),j[S]=k*Math.sign(q[S]);for(let V=0;V<se;V++){let G=V*L-U;q[w]=G*A,d.push(q.x,q.y,q.z),p.push(j.x,j.y,j.z),f.push(V/T),f.push(0),z+=1}}for(let M=0;M<c;M++)for(let B=0;B<T;B++){let D=m+B+se*M,F=m+B+se*(M+1),Y=m+(B+1)+se*(M+1),k=m+(B+1)+se*M;a.push(D,F,k),a.push(F,Y,k),W+=6}u.addGroup(h,W,N),h+=W,m+=z}function v(w,b,S){let A=new Dt.Vector3,_=new Dt.Vector3(r/2,e/2,t/2);_.subScalar(l);let x=[],P=w*b*S>0?(I,T,N)=>a.push(I,T,N):(I,T,N)=>a.push(I,N,T);for(let I=0;I<=c;I++){let T=[],N=wc*(1-I/c),L=Math.cos(N),U=Math.sin(N),K=0;for(let J=0;J<=I;J++){let se=Math.cos(K),z=Math.sin(K);A.x=L*se,A.y=U,A.z=L*z;let W=_.clone().addScaledVector(A,l);d.push(w*W.x,b*W.y,S*W.z),p.push(w*A.x,b*A.y,S*A.z),f.push(0,0),T.push(m++),K+=wc/I}x.push(T)}let O=x.length-1;for(let I=0;I<O;I++){let T=x[I],N=x[I+1],L=T.length-1;P(T[0],N[1],N[0]);for(let U=1;U<=L;U++)P(T[U-1],T[U],N[U]),P(T[U],N[U+1],N[U])}}}};var $e=require("three"),xo=class extends $e.BufferGeometry{constructor(r=[],e=[],t="",o=1,i=.2,s=4){super(),this.type="PolyhedronGeometryRound";let l=[],c=[],u=[];a(),d(),this.setAttribute("position",new $e.Float32BufferAttribute(l,3)),this.setAttribute("normal",new $e.Float32BufferAttribute(u,3)),this.setAttribute("uv",new $e.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}[t],m=new $e.Vector3,h=m.clone(),y=new $e.Triangle,g=i*o,v=o-g,w=s+1,b=new $e.Vector3,S=(z,W)=>b.subVectors(z,W).normalize(),A=(z,W)=>Array(z).fill(void 0).map(W),_=A(r.length/3,(z,W)=>new $e.Vector3().fromArray(r,W*3).setLength(o)),x=[],P=1e6;for(let z=0;z<_.length;z++){let W=_[z],q=[],j,M,B,D=1e10,F=-1;for(;(F=e.indexOf(z,F+1))!=-1;){let G=F-F%3;j=e[G+(F+1)%3],M=e[G+(F+2)%3],B=W.distanceToSquared(_[j]),D=Math.min(D,B),q.push([j,M,B])}D+=1e-6;let Y=[],k=0,V=q.length;for(let G=0;G<V;G++){[j,M,B]=q[k];let H=x[j]?.includes(z)==!0;B<=D&&Y.push(j+ +H*P),k=q.findIndex($=>$[0]==M)}x.push(Y)}let O=[];{let z=0,W=0,q,j,M=f==3;for(let B=0;B<=s;B++){q=B*(B+1)/2,j=(B+1)*(B+2)/2;for(let D=0;D<s-B;D++)[z,W]=[q+D+B+2,j+D+B+3],O.push(q,j,...M?[W,q]:[z,j],W,z),[q,j]=[z,W];O.push(q,j,q+s+2)}}let I=m.clone(),T=m.clone(),N=m.clone(),L=m.clone(),U=m.clone(),K=[],J=A(_.length,()=>A(f,()=>m.clone()));for(let z=0;z<_.length;z++){m.copy(_[z]).normalize(),I.copy(m).multiplyScalar(v);let W=x[z];for(let Y=0;Y<W.length;Y++){let k=W[Y],V=W[(Y+1)%f];y.setFromPointsAndIndices(_,z,k%P,V%P),y.b.sub(y.a).setLength(1e10).add(y.a),y.c.sub(y.a).setLength(1e10).add(y.a),y.closestPointToPoint(I,J[z][Y])}let q=[],j=[],M=[],B=new $e.Vector3;s==0&&[...J[z]].reduce((Y,k)=>Y.add(k),B).multiplyScalar(1/f);for(let Y=0;Y<f;Y++){let k=[],V=(Y-1+f)%f,G=J[z][V],H=J[z][Y];m.copy(G).sub(I),h.copy(H).sub(I);let $=I.angleTo(m),ee=m.angleTo(h),ae=Math.cos($)*g;s==0?T.copy(B):T.copy(I).setLength(v+ae),j.push(ae);let te=[T,G,H];for(let re=0;re<2;re++){let oe=te[re],Z=te[re+1];L.subVectors(oe,I),U.subVectors(Z,I),N.crossVectors(L,U).normalize();for(let he=0;he<w;he++){let ue=[$,ee][re]*he/w;m.copy(L).applyAxisAngle(N,ue).add(I),q.push(m.clone()),re&&(S(m,I),k.push([he==0?oe:m.clone(),b.clone()]))}re&&(S(Z,I),k.push([Z,b.clone()]))}M.push(k)}K.push(M);let D=2*w,F=2;for(let Y=0;Y<f;Y++){let k=D*Y,V=D*((Y+1)%f),G=[q[k]];for(let $=1;$<w;$++){L=q[k+$],U=q[V+$],G.push(L);for(let ee=1,ae=$-F+1;ee<=ae;ee++)m.lerpVectors(L,U,ee/(ae+1)),m.sub(I).setLength(j[Y]).add(I),G.push(m.clone());G.push(U)}for(let $=0;$<w;$++)G.push(q[$+w+k]);G.push(q[V+w]);let H=O.map($=>G[$]);l.push(...H.map($=>[$.x,$.y,$.z]).flat()),u.push(...H.map($=>(S($,I),[b.x,b.y,b.z])).flat())}}let se=[];for(let z=0;z<x.length;z++)for(let W=0;W<f;W++){let q=x[z][W];if(q<P){let j=x[q].findIndex(D=>D%P==z),M=K[z][W],B=K[q][j];for(let D=0;D<w;D++){let F=M[D],Y=B[w-D],k=M[D+1],V=B[w-(D+1)];[F,Y,k,k,Y,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)})}se.push(M[0][0],B[w][0],M[w][0],B[0][0])}}for(;se.length;){let z,W,q,j;[z,W]=se.splice(0,2);let M=[z];for(;z!=W;)M.push(W),q=se.indexOf(W),j=q%2,W=se.splice(q-j,2)[1-j];b.subVectors(M[0],M[1]).cross(m.subVectors(M[0],M[2])).normalize();let B=b.dot(M[0])<0;B&&b.negate();for(let D=1;D<=M.length-2;D++)[M[D+ +B],M[D+1-+B],M[0]].forEach(F=>{l.push(F.x,F.y,F.z),u.push(b.x,b.y,b.z)})}}function d(){let p=new $e.Vector3;for(let _=0;_<l.length;_+=3){p.x=l[_+0],p.y=l[_+1],p.z=l[_+2];let x=S(p)/2/Math.PI+.5,P=A(p)/Math.PI+.5;c.push(x,1-P)}let f=new $e.Vector3,m=new $e.Vector3,h=new $e.Vector3,y=new $e.Vector3,g=new $e.Vector2,v=new $e.Vector2,w=new $e.Vector2,b=(_,x,P,O)=>{O<0&&_.x===1&&(c[x]=_.x-1),P.x===0&&P.z===0&&(c[x]=O/2/Math.PI+.5)};for(let _=0,x=0;_<l.length;_+=9,x+=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]),g.set(c[x+0],c[x+1]),v.set(c[x+2],c[x+3]),w.set(c[x+4],c[x+5]),y.copy(f).add(m).add(h).divideScalar(3);let P=S(y);b(g,x+0,f,P),b(v,x+2,m,P),b(w,x+4,h,P)}for(let _=0;_<c.length;_+=6){let x=c[_+0],P=c[_+2],O=c[_+4],I=Math.max(x,P,O),T=Math.min(x,P,O);I>.9&&T<.1&&(x<.2&&(c[_+0]+=1),P<.2&&(c[_+2]+=1),O<.2&&(c[_+4]+=1))}function S(_){return Math.atan2(_.z,-_.x)}function A(_){return Math.atan2(-_.y,Math.sqrt(_.x*_.x+_.z*_.z))}}}static fromJSON(r){return new xo(r.vertices,r.indices,r.radius,r.corner,r.cornerSides)}};var hm=require("three"),ym=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,height:e,depth:t,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new Ki(r*.5,i,s):new hm.DodecahedronGeometry(r*.5,o);return l.scale(1,e/r,t/r),Object.assign(l,{userData:{...n,type:"DodecahedronGeometry"}})}},Ki=class extends xo{constructor(r=1,e=.2,t=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,r,e,t),this.type=c}static fromJSON(r){return new Ki(r.radius,r.corner,r.cornerSides)}};var Oe=require("three");var ye=require("three"),Zi=1e-12,Wn=class{constructor(r){this.position=new ye.Vector2;this.startPosition=new ye.Vector2;this.uuid=ye.MathUtils.generateUUID();this.position=r.clone()}start(){this.reset()}reset(){this.startPosition.copy(this.position)}applyOffset(r){this.position.copy(this.startPosition).add(r)}copy(r){return this.position.copy(r.position),this.startPosition.copy(r.startPosition),this}clone(){return new Wn(this.position).copy(this)}toJSON(){return[this.position.x,this.position.y]}},qn=class extends Wn{constructor(e){super(e.position);this.parent=e}copy(e){return super.copy(e),this}clone(){return new qn(this.parent).copy(this)}},dr=class extends Wn{constructor(e,t){super(t);this.controls=[];this.roundness=0;this.areControlsDirectionsMirrored=!0;this.uuid=e,this.controls.push(new qn(this),new qn(this))}static create(e,t){let o=new dr(e,new ye.Vector2(...t.position));return o.controls[0].position.set(...t.controlPrevious.position),o.controls[1].position.set(...t.controlNext.position),o.roundness=t.roundness,o.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored,o}getOppositeControl(e){let t=this.controls.indexOf(e);return t===0?this.controls[1]:t===1?this.controls[0]:null}applyOffsetToControls(e,t=1){for(let o=0,i=this.controls.length;o<i;o++){let s=this.controls[o];this.position.distanceTo(s.position)<=t?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 dr(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),t=this.curveAfter?.getTangentAt(0);return[e,t]}computeNormals(e=new ye.Vector2,t=new ye.Vector2){let[o,i]=this.computeTangents();return o&&i&&(gm(o,e),gm(i,t)),[e,t]}computeTangent(e=new ye.Vector2){let[t,o]=this.computeTangents();return t&&o&&e.copy(t).add(o).normalize(),e}computeNormal(e=new ye.Vector2){let[t,o]=this.computeNormals();return e.copy(t).add(o).normalize(),e}};function gm(n,r=new ye.Vector2){let e=n.length();return r.set(-n.y/e,n.x/e)}var Oc=n=>n,$n=new ye.Vector2,Ka=new ye.Vector2,aw=new ye.Vector2,lw=new ye.Vector2,cw=new ye.Vector2,dw=new ye.Vector2,vm=new ye.Vector3,bm=new ye.Vector3;function Sm(n){let r=new ye.Vector2;r.addVectors(n.v0,$n.subVectors(n.v1,n.v0).multiplyScalar(2/3));let e=new ye.Vector2;return e.addVectors(n.v2,Ka.subVectors(n.v1,n.v2).multiplyScalar(2/3)),new ye.CubicBezierCurve(n.v0,r,e,n.v2)}function Qi(n,r,e=Number.EPSILON){return Math.abs(n-r)<e}function uw(n,r,e=Number.EPSILON){return n.distanceTo(r)<e}function pw(n,r,e=Number.EPSILON){return n.distanceTo(r)<e}function Ac(n,r,e){let t=Math.sqrt(Math.pow(r.x-n.x,2)+Math.pow(r.y-n.y,2)),o=Math.sqrt(Math.pow(r.x-e.x,2)+Math.pow(r.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+t*t-i*i)/(2*o*t))}function wm(n,r,e){return xm(n,r)&&xm(r,e)&&Tc(n.position,r.position,e.position)}function Tc(n,r,e){return $n.copy(r).sub(n).cross(Ka.copy(e).sub(n))===0}function _m(n,r,e,t,o){let i=Math.sqrt(Math.pow(r.x-n.x,2)+Math.pow(r.y-n.y,2)),s=(n.y+r.y)/2,l=(n.x+r.x)/2,c=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(n.y-r.y)/i,u=Math.sqrt(Math.pow(e,2)-Math.pow(i/2,2))*(r.x-n.x)/i;return t.set(l+c,s+u),o.set(l-c,s-u),[t,o]}function Tm(n,r,e){let t=n.distanceTo(e),o=r.distanceTo(e);return t<o?r:n}function Om(n,r,e,t,o,i){let s=r.x-n.x,l=r.y-n.y,c=e.x-n.x,u=e.y-n.y,a=Math.sqrt((s+c)*(s+c)+(l+u)*(l+u)),d;return Ac(r,n,e)>Math.PI&&(a*=-1),Qi(u,l)?d=(l+u)*(t/a-.5)*8/3/(s-c):d=(s+c)*(t/a-.5)*8/3/(u-l),o.set(r.x-d*l,r.y+d*s),i.set(e.x+d*u,e.y-d*c),[o,i]}function Pc(n,r){return n.position.equals(n.controls[1].position)&&r.position.equals(r.controls[0].position)}function xm(n,r){return Tc(n.position,n.controls[1].position,r.position)&&Tc(n.position,r.controls[0].position,r.position)}function Am(n,r,e,t,o=.5){let i=$n.subVectors(r,n).multiplyScalar(o).add(n),s=Ka.subVectors(e,r).multiplyScalar(o).add(r),l=aw.subVectors(t,e).multiplyScalar(o).add(e),c=i,u=lw.subVectors(s,i).multiplyScalar(o).add(i),a=cw.subVectors(l,s).multiplyScalar(o).add(s),d=l,p=dw.subVectors(a,u).multiplyScalar(o).add(u);return[n.x,n.y,c.x,c.y,u.x,u.y,p.x,p.y,a.x,a.y,d.x,d.y,t.x,t.y]}function Pm(n,r,e=12,t=!0){let o=bm.set(0,0,0),i,s=0,l=[];for(let c=0;c<r.length;c++){let u=Oc(r[c]),a=$n,d=vo(u,e);l.push(d);for(let p=0;p<=d;p++)if(u instanceof ye.CubicBezierCurve||u instanceof ye.QuadraticBezierCurve||u instanceof ye.LineCurve){if(u.getPoint(p/d,a),o.set(a.x,a.y,0),i!==void 0&&pw(i,o))continue;i===void 0&&(i=vm),i.copy(o),n.setXYZ(s,o.x,o.y,o.z),s++}}return t&&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 Im(n,r,e,t=12,o=!0){let i=bm.set(0,0,0),s=0,l=[];for(let c=0;c<r.length;c++){if(e[c]===!1)continue;let u,a=Oc(r[c]),d=$n,p=vo(a,t);l.push(p);for(let f=0;f<=p;f++)if(a instanceof ye.CubicBezierCurve||a instanceof ye.QuadraticBezierCurve||a instanceof ye.LineCurve){if(a.getPoint(f/p,d),i.set(d.x,d.y,0),u?.equals(i))continue;u===void 0?u=vm:(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 Ic(n,r=12,e=!1){let t=[];for(let o=0,i=n.length;o<i;o++){let s=n[o],l=0;if(e&&s.roundedCurveCorner!==void 0){let c=vo(s.roundedCurveCorner,r)*.5;o>0&&(t[o-1]+=c),l+=c}s.curveAfter!==void 0&&(l+=vo(s.curveAfter,r)),t.push(l)}return n.length>0&&e&&n[0].roundedCurveCorner!==void 0&&(t[n.length-1]+=vo(n[0].roundedCurveCorner,r)*.5),t}function vo(n,r=12){return n&&n instanceof ye.EllipseCurve?r*2:n&&(n instanceof ye.LineCurve||n instanceof ye.LineCurve3)?1:n&&n instanceof ye.SplineCurve?r*n.points.length:r}function Cm(n,r,e=12,t=!0){let o,i=0;for(let s=0;s<r.length;s++){let l=Oc(r[s]),c=vo(l,e),u=$n;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&&uw(o,u,Zi))continue;o===void 0&&(o=Ka),o.copy(u),n.push(u.x,u.y),i++}}return Qi(n[0],n[n.length-2],Zi)&&Qi(n[1],n[n.length-1],Zi)&&(n.pop(),n.pop()),t&&i>1&&!(Qi(n[i-1],n[1],Zi)&&Qi(n[i-2],n[0],Zi))&&(n.push(n[0],n[1]),i++),n}var Cc=new Oe.Vector2,fw=new Oe.Vector2,mw=new Oe.Vector2,hw=new Oe.Vector2,yw=new Oe.Vector2,gw=new Oe.Vector2,Te=class extends Oe.Shape{constructor(e=100,t=100){super();this.points=[];this.shapeHoles=[];this.plane=new Oe.Plane(new Oe.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=Oe.MathUtils.generateUUID();this.needsUpdate=!1;this.roundedCurves=[];this._width=e,this._height=t}static createFromState(e,t,o){let i=new Te;return i.isClosed=e.isClosed,i.points=e.points.map(s=>dr.create(s.id,s.data)),typeof e.roundness=="number"&&(i.roundness=e.roundness),i.shapeHoles=e.shapeHoles.map(s=>Te.createFromState(s)),t!==void 0&&o!==void 0&&i.applySize(t,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 t=0,o=this.points.length;t<o;t++)this.points[t].roundness=e;this.needsUpdate=!0}}getPointsIndexesByIds(e){return e.map(t=>this.getPointIndexById(t)).filter(t=>t>=0)}getPointIndexById(e){let t=this.points.length,o=this.points.findIndex(i=>i.uuid===e);if(o<0){let i=t;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 t=this.points.length;for(let o=0,i=this.shapeHoles.length;o<i;o++){let s=this.shapeHoles[o],l=e-t;if(l<=s.points.length-1)return s.points[l];t+=s.points.length}}throw new Error("This shape does not have a point for this index: "+e)}getBezierPointIndex(e){let t=this.points.indexOf(e);if(t>=0)return t;if(t=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 t+l;t+=s.points.length}return-1}getAllPoints(){let e=[].concat(...this.shapeHoles.map(t=>t.points));return[...this.points,...e]}applySize(e,t){e===0&&(e=.001),t===0&&(t=.001),this._width=e,this._height=t}applyScale(e,t){let o=Cc.set(e,t);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,t);this._update()}createPoint(e,t=0,o=Oe.MathUtils.generateUUID()){let i;e instanceof Oe.Vector2?i=e:i=new Oe.Vector2(e,t);let s=new dr(o,i);return s.roundness=this.roundness,s}addPoint(e){this.points.push(e),this.needsUpdate=!0}addPointAt(e,t){this.points.splice(t,0,e),this.needsUpdate=!0}getPointByUuid(e){for(let t=0,o=this.points.length;t<o;t++){let i=this.points[t];if(i.uuid===e)return i}for(let t=0,o=this.shapeHoles.length;t<o;t++){let s=this.shapeHoles[t].getPointByUuid(e);if(s)return s}}getFirstPoint(){return this.points[0]}getLastPoint(){return this.points[this.points.length-1]}removePoint(e){let t=this.points.indexOf(e);t>=0&&this.points.splice(t,1),this.needsUpdate=!0}removePointById(e){let t=this.points.find(o=>o.uuid===e);t&&this.removePoint(t)}update(){for(let e=0,t=this.shapeHoles.length;e<t;e++)this.shapeHoles[e].update();this._update()}extractShapePointsToBuffer(e,t=12,o=!1){this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t);let i=o?this.roundedCurveDivisions:this.curveDivisions;return Pm(e,o?this.roundedCurves:this.curves,t,this.autoClose),i.reduce((s,l)=>s+l,0)+1}computeCurveDivisions(e=12){return this.curveDivisions=Ic(this.points,e,!1),this.roundedCurveDivisions=Ic(this.points,e,!0),this.curveDivisions}extractFilteredShapePointsToBuffer(e,t,o=12){return Im(e,this.curves,t,o,this.autoClose).reduce((s,l)=>s+l,0)*2}extractShapePointsToFlatArray(e,t=12){return this.subdivision=t,this.curveDivisions===void 0&&this.computeCurveDivisions(t),Cm(e,this.roundedCurves,t,this.autoClose)}getCurveIndexFromVertexId(e,t=!1){let o=0;this.curveDivisions===void 0&&this.computeCurveDivisions(this.subdivision);let i=t?this.roundedCurveDivisions:this.curveDivisions,s=0;t&&this.points[0].roundedCurveCorner!==void 0&&(s=vo(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,t,o){let i=this.points[e],s=this.points[e>=this.points.length-1?0:e+1],l=this.curveDivisions,c=l[e];if(Pc(i,s)){let d=i.position.distanceTo(s.position);return i.position.distanceTo(Cc.set(o.x,o.y))/d}let u=0;for(let d=0;d<e;d++)u+=l[d];return(t-u)/c}dispose(){}_applyCurveForPoint(e,t){Pc(t,e)?this.lineTo(e.position.x,e.position.y):this.bezierCurveTo(t.controls[1].position.x,t.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,t.curveAfter=o;let i=o.clone();e.roundedCurveBefore=i,t.roundedCurveAfter=i,e.roundedCurveCorner=void 0,this.roundedCurves.push(i)}_update(){if(this.curves=[],this.roundedCurves=[],!this.points.length)return;for(let t=0,o=this.points.length;t<o;t++){let i=this.points[t];if(t===0)this.moveTo(i.position.x,i.position.y);else{let s=this.points[t-1];this._applyCurveForPoint(i,s)}}let e=this.getLastPoint();if(e?.curveAfter&&(e.curveAfter=void 0),this.isClosed){let t=this.points[0],o=this.points[this.points.length-1];this._applyCurveForPoint(t,o)}if(this.points.length>2){let t=0;for(let o=0,i=this.points.length;o<i;o++){let s=this.points[o],l=this.points[o-1]??this.points[this.points.length-1],c=this.points[o+1]??this.points[0],u=s.roundness,a=l&&c&&wm(l,s,c);if(!s.controlsMoved()&&u>0&&!a){let d=s.curveBefore,p=s.curveAfter;if(d===void 0||p===void 0)continue;let f=s.roundedCurveBefore,m=s.roundedCurveAfter,h=d.getLength(),y=p.getLength(),g=Math.min(u,h*.499),v=Math.min(u,y*.499),w=Math.min(g,v),b=1-w/h,S=w/y,A=d.getPointAt(b,Cc),_=p.getPointAt(S,fw);this._subSplitCurve(d,f,b,A,void 0),this._subSplitCurve(p,m,S,void 0,_);let x;if(this.useCubicForRoundedCorners){let P=Ac(A,s.position,_)/2,O=Math.tan(P)*A.distanceTo(s.position),[I,T]=_m(A,_,O,mw,hw),N=Tm(I,T,s.position),[L,U]=Om(N,A,_,O,yw,gw);x=new Oe.CubicBezierCurve(A.clone(),L.clone(),U.clone(),_.clone())}else x=new Oe.QuadraticBezierCurve(A.clone(),s.position.clone(),_.clone());s.roundedCurveCorner=x,this.roundedCurves.splice(o+t,0,x),t++}}}}_subSplitCurve(e,t,o,i,s){if(e instanceof Oe.LineCurve)i!==void 0&&t.v2.copy(i),s!==void 0&&t.v1.copy(s);else{let l=e,c=t,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 t}clone(){let e=new Te(this._width,this._height);return e.points=this.points.map(t=>t.clone()),e.isClosed=this.isClosed,e.roundness=this.roundness,e.isMesh2D=this.isMesh2D,e.shapeHoles=this.shapeHoles.map(t=>t.clone()),e}toJSON(){return{points:this.points.reduce((e,t)=>e.concat(t.toJSON()),[]),shapeHoles:this.shapeHoles.map(e=>e.toJSON()),isClosed:this.isClosed,roundness:this.roundness}}fromJSON(e){this.points=[],this.pointIDs=0;let t=e.points.length/7;for(let o=0;o<t;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],d=e.points[i+5],p=e.points[i+6],f=new dr(Oe.MathUtils.generateUUID(),new Oe.Vector2(s,l));f.controls[0].position.set(c,u),f.controls[1].position.set(a,d),f.roundness=p,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 t=(i,s)=>{s instanceof Oe.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 Oe.QuadraticBezierCurve&&(i[l]=Sm(i[l]));for(l=0,c=i.length;l<c;l++){let d=i[l],p=l>0?i[l-1]:null,f;d instanceof Oe.CubicBezierCurve?(f=this.createPoint(d.v0),f.controls[1].position.copy(d.v1)):d instanceof Oe.LineCurve&&(f=this.createPoint(d.v1)),f!==void 0&&(p!==null&&t(f,p),s.push(f))}let u=i[i.length-1],a=!1;return u instanceof Oe.CubicBezierCurve?u.v3.equals(s[0].position)&&(s[0].controls[0].position.copy(u.v2),a=!0):u instanceof Oe.LineCurve&&u.v2.equals(s[0].position)&&(a=!0),this.isClosed=a,s};return this.points=o(e.curves),e instanceof Oe.Shape&&(this.shapeHoles=e.holes.map(i=>{let s=new Te;return s.fromShape(i),s})),this.update(),this}updatePoint(e,t){let o=this.getPointByUuid(e);o&&(t.position!==void 0&&o.position.fromArray(t.position),t.roundness!==void 0&&(o.roundness=t.roundness),t.areControlsDirectionsMirrored!==void 0&&(o.areControlsDirectionsMirrored=t.areControlsDirectionsMirrored),this.needsUpdate=!0)}updatePreviousControl(e,t){let i=this.getPointByUuid(e)?.controls[0];i&&(t.position&&i.position.fromArray(t.position),this.needsUpdate=!0)}updateNextControl(e,t){let i=this.getPointByUuid(e)?.controls[1];i&&(t.position&&i.position.fromArray(t.position),this.needsUpdate=!0)}};var Ec=Math.PI*2;function Nc({x:n,y:r},e,t,o,i){return{x:n*e+o,y:r*t+i}}function xw(n,r){let e=r===1.5707963267948966?.551915024494:r===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(r/4),t=Math.cos(n),o=Math.sin(n),i=Math.cos(n+r),s=Math.sin(n+r);return[{x:t-o*e,y:o+t*e},{x:i+s*e,y:s-i*e},{x:i,y:s}]}function Nm(n,r,e,t){let o=n*t-r*e<0?-1:1,i=Math.min(1,Math.max(-1,n*e+r*t));return o*Math.acos(i)}function vw(n,r,e,t,o,i,s,l,c,u){let a=Math.pow(o,2),d=Math.pow(i,2),p=Math.pow(s,2),f=Math.pow(l,2),m=a*d-a*f-d*p;m<0&&(m=0),m/=a*f+d*p,m=Math.sqrt(m)*(c===u?-1:1);let h=m*o/i*l,y=m*-i/o*s,g=h+(n+e)/2,v=y+(r+t)/2,w=(s-h)/o,b=(l-y)/i,S=(-s-h)/o,A=(-l-y)/i,_=Nm(1,0,w,b),x=Nm(w,b,S,A);return!u&&x>0&&(x-=Ec),u&&x<0&&(x+=Ec),{centerx:g,centery:v,ang1:_,ang2:x}}function Em({px:n,py:r,cx:e,cy:t,rx:o,ry:i,largeArcFlag:s,sweepFlag:l}){let c=[];if(o===0||i===0)return[];let u=(n-e)/2,a=(r-t)/2;if(u===0&&a===0)return[];o=Math.abs(o),i=Math.abs(i);let d=Math.pow(u,2)/Math.pow(o,2)+Math.pow(a,2)/Math.pow(i,2);d>1&&(o*=Math.sqrt(d),i*=Math.sqrt(d));let p=vw(n,r,e,t,o,i,u,a,s,l),{ang1:f,ang2:m}=p,{centerx:h,centery:y}=p,g=Math.abs(m)/(Ec/4);Math.abs(1-g)<1e-7&&(g=1);let v=Math.max(Math.ceil(g),1);m/=v;for(let w=0;w<v;w++)c.push(xw(f,m)),f+=m;return c.map(w=>{let{x:b,y:S}=Nc(w[0],o,i,h,y),{x:A,y:_}=Nc(w[1],o,i,h,y),{x,y:P}=Nc(w[2],o,i,h,y);return{x1:b,y1:S,x2:A,y2:_,x,y:P}})}var zo=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 rt;(function(n){n[n.POLYGONS=0]="POLYGONS",n[n.CONNECTED_POLYGONS=1]="CONNECTED_POLYGONS",n[n.BOUNDARY_CONTOURS=2]="BOUNDARY_CONTOURS"})(rt||(rt={}));function pe(n,r){if(!n)throw r||"Assertion Failed!"}var le=function(){function n(){}return n.vertEq=function(r,e){return r.s===e.s&&r.t===e.t},n.vertLeq=function(r,e){return r.s<e.s||r.s===e.s&&r.t<=e.t},n.transLeq=function(r,e){return r.t<e.t||r.t===e.t&&r.s<=e.s},n.edgeGoesLeft=function(r){return n.vertLeq(r.Dst,r.Org)},n.edgeGoesRight=function(r){return n.vertLeq(r.Org,r.Dst)},n.vertL1dist=function(r,e){return Math.abs(r.s-e.s)+Math.abs(r.t-e.t)},n.edgeEval=function(r,e,t){pe(n.vertLeq(r,e)&&n.vertLeq(e,t));var o=e.s-r.s,i=t.s-e.s;return o+i>0?o<i?e.t-r.t+(r.t-t.t)*(o/(o+i)):e.t-t.t+(t.t-r.t)*(i/(o+i)):0},n.edgeSign=function(r,e,t){pe(n.vertLeq(r,e)&&n.vertLeq(e,t));var o=e.s-r.s,i=t.s-e.s;return o+i>0?(e.t-t.t)*o+(e.t-r.t)*i:0},n.transEval=function(r,e,t){pe(n.transLeq(r,e)&&n.transLeq(e,t));var o=e.t-r.t,i=t.t-e.t;return o+i>0?o<i?e.s-r.s+(r.s-t.s)*(o/(o+i)):e.s-t.s+(t.s-r.s)*(i/(o+i)):0},n.transSign=function(r,e,t){pe(n.transLeq(r,e)&&n.transLeq(e,t));var o=e.t-r.t,i=t.t-e.t;return o+i>0?(e.s-t.s)*o+(e.s-r.s)*i:0},n.vertCCW=function(r,e,t){return r.s*(e.t-t.t)+e.s*(t.t-r.t)+t.s*(r.t-e.t)>=0},n.interpolate=function(r,e,t,o){return r=r<0?0:r,t=t<0?0:t,r<=t?t===0?(e+o)/2:e+(o-e)*(r/(r+t)):o+(e-o)*(t/(r+t))},n.intersect=function(r,e,t,o,i){var s,l,c;n.vertLeq(r,e)||(c=r,r=e,e=c),n.vertLeq(t,o)||(c=t,t=o,o=c),n.vertLeq(r,t)||(c=r,r=t,t=c,c=e,e=o,o=c),n.vertLeq(t,e)?n.vertLeq(e,o)?(s=n.edgeEval(r,t,e),l=n.edgeEval(t,e,o),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,t.s,l,e.s)):(s=n.edgeSign(r,t,e),l=-n.edgeSign(r,o,e),s+l<0&&(s=-s,l=-l),i.s=n.interpolate(s,t.s,l,o.s)):i.s=(t.s+e.s)/2,n.transLeq(r,e)||(c=r,r=e,e=c),n.transLeq(t,o)||(c=t,t=o,o=c),n.transLeq(r,t)||(c=r,r=t,t=c,c=e,e=o,o=c),n.transLeq(t,e)?n.transLeq(e,o)?(s=n.transEval(r,t,e),l=n.transEval(t,e,o),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,t.t,l,e.t)):(s=n.transSign(r,t,e),l=-n.transSign(r,o,e),s+l<0&&(s=-s,l=-l),i.t=n.interpolate(s,t.t,l,o.t)):i.t=(t.t+e.t)/2},n}(),Ji=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}(),Za=function(){function n(r){this.side=r,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(r){this.Sym.Lface=r},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dst",{get:function(){return this.Sym.Org},set:function(r){this.Sym.Org=r},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Oprev",{get:function(){return this.Sym.Lnext},set:function(r){this.Sym.Lnext=r},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Lprev",{get:function(){return this.Onext.Sym},set:function(r){this.Onext.Sym=r},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dprev",{get:function(){return this.Lnext.Sym},set:function(r){this.Lnext.Sym=r},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rprev",{get:function(){return this.Sym.Onext},set:function(r){this.Sym.Onext=r},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Dnext",{get:function(){return this.Sym.Onext.Sym},set:function(r){this.Sym.Onext.Sym=r},enumerable:!0,configurable:!0}),Object.defineProperty(n.prototype,"Rnext",{get:function(){return this.Sym.Lnext.Sym},set:function(r){this.Sym.Lnext.Sym=r},enumerable:!0,configurable:!0}),n}(),Yn=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}(),Lm=function(){function n(){var r=new Yn,e=new Ji,t=new Za(0),o=new Za(1);r.next=r.prev=r,r.anEdge=null,e.next=e.prev=e,t.next=t,t.Sym=o,o.next=o,o.Sym=t,this.vHead=r,this.fHead=e,this.eHead=t,this.eHeadSym=o}return n.prototype.makeEdge_=function(r){var e=new Za(0),t=new Za(1);r.Sym.side<r.side&&(r=r.Sym);var o=r.Sym.next;return t.next=o,o.Sym.next=e,e.next=r,r.Sym.next=t,e.Sym=t,e.Onext=e,e.Lnext=t,e.Org=null,e.Lface=null,e.winding=0,e.activeRegion=null,t.Sym=e,t.Onext=t,t.Lnext=e,t.Org=null,t.Lface=null,t.winding=0,t.activeRegion=null,e},n.prototype.splice_=function(r,e){var t=r.Onext,o=e.Onext;t.Sym.Lnext=e,o.Sym.Lnext=r,r.Onext=o,e.Onext=t},n.prototype.makeVertex_=function(r,e,t){var o=r;pe(o,"Vertex can't be null!");var i=t.prev;o.prev=i,i.next=o,o.next=t,t.prev=o,o.anEdge=e;var s=e;do s.Org=o,s=s.Onext;while(s!==e)},n.prototype.makeFace_=function(r,e,t){var o=r;pe(o,"Face can't be null");var i=t.prev;o.prev=i,i.next=o,o.next=t,t.prev=o,o.anEdge=e,o.trail=null,o.marked=!1,o.inside=t.inside;var s=e;do s.Lface=o,s=s.Lnext;while(s!==e)},n.prototype.killEdge_=function(r){r.Sym.side<r.side&&(r=r.Sym);var e=r.next,t=r.Sym.next;e.Sym.next=t,t.Sym.next=e},n.prototype.killVertex_=function(r,e){var t=r.anEdge,o=t;do o.Org=e,o=o.Onext;while(o!==t);var i=r.prev,s=r.next;s.prev=i,i.next=s},n.prototype.killFace_=function(r,e){var t=r.anEdge,o=t;do o.Lface=e,o=o.Lnext;while(o!==t);var i=r.prev,s=r.next;s.prev=i,i.next=s},n.prototype.makeEdge=function(){var r=new Yn,e=new Yn,t=new Ji,o=this.makeEdge_(this.eHead);return this.makeVertex_(r,o,this.vHead),this.makeVertex_(e,o.Sym,this.vHead),this.makeFace_(t,o,this.fHead),o},n.prototype.splice=function(r,e){var t=!1,o=!1;if(r!==e){if(e.Org!==r.Org&&(o=!0,this.killVertex_(e.Org,r.Org)),e.Lface!==r.Lface&&(t=!0,this.killFace_(e.Lface,r.Lface)),this.splice_(e,r),!o){var i=new Yn;this.makeVertex_(i,e,r.Org),r.Org.anEdge=r}if(!t){var s=new Ji;this.makeFace_(s,e,r.Lface),r.Lface.anEdge=r}}},n.prototype.delete=function(r){var e=r.Sym,t=!1;if(r.Lface!==r.Rface&&(t=!0,this.killFace_(r.Lface,r.Rface)),r.Onext===r)this.killVertex_(r.Org,null);else if(r.Rface.anEdge=r.Oprev,r.Org.anEdge=r.Onext,this.splice_(r,r.Oprev),!t){var o=new Ji;this.makeFace_(o,r,r.Lface)}e.Onext===e?(this.killVertex_(e.Org,null),this.killFace_(e.Lface,null)):(r.Lface.anEdge=e.Oprev,e.Org.anEdge=e.Onext,this.splice_(e,e.Oprev)),this.killEdge_(r)},n.prototype.addEdgeVertex=function(r){var e=this.makeEdge_(r),t=e.Sym;this.splice_(e,r.Lnext),e.Org=r.Dst;var o=new Yn;return this.makeVertex_(o,t,e.Org),e.Lface=t.Lface=r.Lface,e},n.prototype.splitEdge=function(r){var e=this.addEdgeVertex(r),t=e.Sym;return this.splice_(r.Sym,r.Sym.Oprev),this.splice_(r.Sym,t),r.Dst=t.Org,t.Dst.anEdge=t.Sym,t.Rface=r.Rface,t.winding=r.winding,t.Sym.winding=r.Sym.winding,t.idx=r.idx,t.Sym.idx=r.Sym.idx,t},n.prototype.connect=function(r,e){var t=!1,o=this.makeEdge_(r),i=o.Sym;if(e.Lface!==r.Lface&&(t=!0,this.killFace_(e.Lface,r.Lface)),this.splice_(o,r.Lnext),this.splice_(i,e),o.Org=r.Dst,i.Org=e.Org,o.Lface=i.Lface=r.Lface,r.Lface.anEdge=i,!t){var s=new Ji;this.makeFace_(s,o,r.Lface)}return o},n.prototype.zapFace=function(r){var e=r.anEdge,t,o,i,s,l;o=e.Lnext;do t=o,o=t.Lnext,t.Lface=null,t.Rface===null&&(t.Onext===t?this.killVertex_(t.Org,null):(t.Org.anEdge=t.Onext,this.splice_(t,t.Oprev)),i=t.Sym,i.Onext===i?this.killVertex_(i.Org,null):(i.Org.anEdge=i.Onext,this.splice_(i,i.Oprev)),this.killEdge_(t));while(t!=e);s=r.prev,l=r.next,l.prev=s,s.next=l},n.prototype.countFaceVerts_=function(r){var e=r.anEdge,t=0;do t++,e=e.Lnext;while(e!==r.anEdge);return t},n.prototype.mergeConvexFaces=function(r){var e,t,o,i,s,l,c;for(e=this.fHead.next;e!==this.fHead;e=e.next)if(!!e.inside)for(t=e.anEdge,s=t.Org;o=t.Lnext,i=t.Sym,i&&i.Lface&&i.Lface.inside&&(l=this.countFaceVerts_(e),c=this.countFaceVerts_(i.Lface),l+c-2<=r&&le.vertCCW(t.Lprev.Org,t.Org,i.Lnext.Lnext.Org)&&le.vertCCW(i.Lprev.Org,i.Org,t.Lnext.Lnext.Org)&&(o=i.Lnext,this.delete(i),t=null,i=null)),!(t&&t.Lnext.Org===s);)t=o;return!0},n.prototype.check=function(){var r=this.fHead,e=this.vHead,t=this.eHead,o,i,s,l,c,u;for(i=r,i=r;(o=i.next)!==r;i=o){pe(o.prev===i),c=o.anEdge;do pe(c.Sym!==c),pe(c.Sym.Sym===c),pe(c.Lnext.Onext.Sym===c),pe(c.Onext.Sym.Lnext===c),pe(c.Lface===o),c=c.Lnext;while(c!==o.anEdge)}for(pe(o.prev===i&&o.anEdge===null),l=e,l=e;(s=l.next)!==e;l=s){pe(s.prev===l),c=s.anEdge;do pe(c.Sym!==c),pe(c.Sym.Sym===c),pe(c.Lnext.Onext.Sym===c),pe(c.Onext.Sym.Lnext===c),pe(c.Org===s),c=c.Onext;while(c!==s.anEdge)}for(pe(s.prev===l&&s.anEdge===null),u=t,u=t;(c=u.next)!==t;u=c)pe(c.Sym.next===u.Sym),pe(c.Sym!==c),pe(c.Sym.Sym===c),pe(c.Org!==null),pe(c.Dst!==null),pe(c.Lnext.Onext.Sym===c),pe(c.Onext.Sym.Lnext===c);pe(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}(),Mm=function(){function n(){this.handle=null}return n}(),Bm=function(){function n(){this.key=null,this.node=0}return n}(),bw=function(){function n(r,e){this.leq=e,this.max=0,this.nodes=[],this.handles=[],this.initialized=!1,this.freeList=0,this.size=0,this.max=r,this.nodes=[],this.handles=[];for(var t=0;t<r+1;t++)this.nodes[t]=new Mm,this.handles[t]=new Bm;this.initialized=!1,this.nodes[1].handle=1,this.handles[1].key=null}return n.prototype.floatDown_=function(r){var e=this.nodes,t=this.handles,o,i,s;for(o=e[r].handle;;){if(s=r<<1,s<this.size&&this.leq(t[e[s+1].handle].key,t[e[s].handle].key)&&++s,pe(s<=this.max),i=e[s].handle,s>this.size||this.leq(t[o].key,t[i].key)){e[r].handle=o,t[o].node=r;break}e[r].handle=i,t[i].node=r,r=s}},n.prototype.floatUp_=function(r){var e=this.nodes,t=this.handles,o,i,s;for(o=e[r].handle;;){if(s=r>>1,i=e[s].handle,s===0||this.leq(t[i].key,t[o].key)){e[r].handle=o,t[o].node=r;break}e[r].handle=i,t[i].node=r,r=s}},n.prototype.init=function(){for(var r=this.size;r>=1;--r)this.floatDown_(r);this.initialized=!0},n.prototype.min=function(){return this.handles[this.nodes[1].handle].key},n.prototype.insert=function(r){var e,t;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 Mm;for(i=this.handles.length,this.handles.length=this.max+1,o=i;o<this.handles.length;o++)this.handles[o]=new Bm}return this.freeList===0?t=e:(t=this.freeList,this.freeList=this.handles[t].node),this.nodes[e].handle=t,this.handles[t].node=e,this.handles[t].key=r,this.initialized&&this.floatUp_(e),t},n.prototype.extractMin=function(){var r=this.nodes,e=this.handles,t=r[1].handle,o=e[t].key;return this.size>0&&(r[1].handle=r[this.size].handle,e[r[1].handle].node=1,e[t].key=null,e[t].node=this.freeList,this.freeList=t,--this.size,this.size>0&&this.floatDown_(1)),o},n.prototype.delete=function(r){var e=this.nodes,t=this.handles,o;pe(r>=1&&r<=this.max&&t[r].key!==null),o=t[r].node,e[o].handle=e[this.size].handle,t[e[o].handle].node=o,--this.size,o<=this.size&&(o<=1||this.leq(t[e[o>>1].handle].key,t[e[o].handle].key)?this.floatDown_(o):this.floatUp_(o)),t[r].key=null,t[r].node=this.freeList,this.freeList=r},n}(),Lc=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}(),Dm=function(){function n(){this.key=null,this.next=null,this.prev=null}return n}(),Sw=function(){function n(r,e){this.frame=r,this.leq=e,this.head=new Dm,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(r){return this.insertBefore(this.head,r)},n.prototype.search=function(r){var e=this.head;do e=e.next;while(e.key!==null&&!this.leq(this.frame,r,e.key));return e},n.prototype.insertBefore=function(r,e){do r=r.prev;while(r.key!==null&&!this.leq(this.frame,r.key,e));var t=new Dm;return t.key=e,t.next=r.next,r.next.prev=t,t.prev=r,r.next=t,t},n.prototype.delete=function(r){r.next.prev=r.prev,r.prev.next=r.next},n}(),ww=function(){function n(){}return n.regionBelow=function(r){return r.nodeUp.prev.key},n.regionAbove=function(r){return r.nodeUp.next.key},n.debugEvent=function(r){},n.addWinding=function(r,e){r.winding+=e.winding,r.Sym.winding+=e.Sym.winding},n.edgeLeq=function(r,e,t){var o=r.event,i=e.eUp,s=t.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(r,e){e.fixUpperEdge&&pe(e.eUp.winding===0),e.eUp.activeRegion=null,r.dict.delete(e.nodeUp)},n.fixUpperEdge=function(r,e,t){pe(e.fixUpperEdge),r.mesh.delete(e.eUp),e.fixUpperEdge=!1,e.eUp=t,t.activeRegion=e},n.topLeftRegion=function(r,e){var t=e.eUp.Org,o;do e=n.regionAbove(e);while(e.eUp.Org===t);if(e.fixUpperEdge){if(o=r.mesh.connect(n.regionBelow(e).eUp.Sym,e.eUp.Lnext),o===null)return null;n.fixUpperEdge(r,e,o),e=n.regionAbove(e)}return e},n.topRightRegion=function(r){var e=r.eUp.Dst;do r=n.regionAbove(r);while(r.eUp.Dst===e);return r},n.addRegionBelow=function(r,e,t){var o=new Lc;return o.eUp=t,o.nodeUp=r.dict.insertBefore(e.nodeUp,o),o.fixUpperEdge=!1,o.sentinel=!1,o.dirty=!1,t.activeRegion=o,o},n.isWindingInside=function(r,e){switch(r.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(r,e){e.windingNumber=n.regionAbove(e).windingNumber+e.eUp.winding,e.inside=n.isWindingInside(r,e.windingNumber)},n.finishRegion=function(r,e){var t=e.eUp,o=t.Lface;o.inside=e.inside,o.anEdge=t,n.deleteRegion(r,e)},n.finishLeftRegions=function(r,e,t){for(var o,i=null,s=e,l=e.eUp;s!==t;){if(s.fixUpperEdge=!1,i=n.regionBelow(s),o=i.eUp,o.Org!=l.Org){if(!i.fixUpperEdge){n.finishRegion(r,s);break}o=r.mesh.connect(l.Lprev,o.Sym),n.fixUpperEdge(r,i,o)}l.Onext!==o&&(r.mesh.splice(o.Oprev,o),r.mesh.splice(l,o)),n.finishRegion(r,s),l=i.eUp,s=i}return l},n.addRightEdges=function(r,e,t,o,i,s){var l,c,u,a,d=!0;u=t;do pe(le.vertLeq(u.Org,u.Dst)),n.addRegionBelow(r,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&&(r.mesh.splice(u.Oprev,u),r.mesh.splice(a.Oprev,u)),l.windingNumber=c.windingNumber-u.winding,l.inside=n.isWindingInside(r,l.windingNumber),c.dirty=!0,!d&&n.checkForRightSplice(r,c)&&(n.addWinding(u,a),n.deleteRegion(r,c),r.mesh.delete(a)),d=!1,c=l,a=u;c.dirty=!0,pe(c.windingNumber-u.winding===l.windingNumber),s&&n.walkDirtyRegions(r,c)},n.spliceMergeVertices=function(r,e,t){r.mesh.splice(e,t)},n.vertexWeights=function(r,e,t){var o=le.vertL1dist(e,r),i=le.vertL1dist(t,r),s=.5*i/(o+i),l=.5*o/(o+i);r.coords[0]+=s*e.coords[0]+l*t.coords[0],r.coords[1]+=s*e.coords[1]+l*t.coords[1],r.coords[2]+=s*e.coords[2]+l*t.coords[2]},n.getIntersectData=function(r,e,t,o,i,s){e.coords[0]=e.coords[1]=e.coords[2]=0,e.idx=-1,n.vertexWeights(e,t,o),n.vertexWeights(e,i,s)},n.checkForRightSplice=function(r,e){var t=n.regionBelow(e),o=e.eUp,i=t.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&&(r.pq.delete(o.Org.pqHandle),n.spliceMergeVertices(r,i.Oprev,o)):(r.mesh.splitEdge(i.Sym),r.mesh.splice(o,i.Oprev),e.dirty=t.dirty=!0)}else{if(le.edgeSign(o.Dst,i.Org,o.Org)<0)return!1;n.regionAbove(e).dirty=e.dirty=!0,r.mesh.splitEdge(o.Sym),r.mesh.splice(i.Oprev,o)}return!0},n.checkForLeftSplice=function(r,e){var t=n.regionBelow(e),o=e.eUp,i=t.eUp,s;if(pe(!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=r.mesh.splitEdge(o),r.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=t.dirty=!0,s=r.mesh.splitEdge(i),r.mesh.splice(o.Lnext,i.Sym),s.Rface.inside=e.inside}return!0},n.checkForIntersect=function(r,e){var t=n.regionBelow(e),o=e.eUp,i=t.eUp,s=o.Org,l=i.Org,c=o.Dst,u=i.Dst,a,d,p=new Yn,f,m;if(pe(!le.vertEq(u,c)),pe(le.edgeSign(c,r.event,s)<=0),pe(le.edgeSign(u,r.event,l)>=0),pe(s!==r.event&&l!==r.event),pe(!e.fixUpperEdge&&!t.fixUpperEdge),s===l||(a=Math.min(s.t,c.t),d=Math.max(l.t,u.t),a>d))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(r),le.intersect(c,s,u,l,p),pe(Math.min(s.t,c.t)<=p.t),pe(p.t<=Math.max(l.t,u.t)),pe(Math.min(u.s,c.s)<=p.s),pe(p.s<=Math.max(l.s,s.s)),le.vertLeq(p,r.event)&&(p.s=r.event.s,p.t=r.event.t),f=le.vertLeq(s,l)?s:l,le.vertLeq(f,p)&&(p.s=f.s,p.t=f.t),le.vertEq(p,s)||le.vertEq(p,l)?(n.checkForRightSplice(r,e),!1):!le.vertEq(c,r.event)&&le.edgeSign(c,r.event,p)>=0||!le.vertEq(u,r.event)&&le.edgeSign(u,r.event,p)<=0?u===r.event?(r.mesh.splitEdge(o.Sym),r.mesh.splice(i.Sym,o),e=n.topLeftRegion(r,e),o=n.regionBelow(e).eUp,n.finishLeftRegions(r,n.regionBelow(e),t),n.addRightEdges(r,e,o.Oprev,o,o,!0),!0):c===r.event?(r.mesh.splitEdge(i.Sym),r.mesh.splice(o.Lnext,i.Oprev),t=e,e=n.topRightRegion(e),m=n.regionBelow(e).eUp.Rprev,t.eUp=i.Oprev,i=n.finishLeftRegions(r,t,null),n.addRightEdges(r,e,i.Onext,o.Rprev,m,!0),!0):(le.edgeSign(c,r.event,p)>=0&&(n.regionAbove(e).dirty=e.dirty=!0,r.mesh.splitEdge(o.Sym),o.Org.s=r.event.s,o.Org.t=r.event.t),le.edgeSign(u,r.event,p)<=0&&(e.dirty=t.dirty=!0,r.mesh.splitEdge(i.Sym),i.Org.s=r.event.s,i.Org.t=r.event.t),!1):(r.mesh.splitEdge(o.Sym),r.mesh.splitEdge(i.Sym),r.mesh.splice(i.Oprev,o),o.Org.s=p.s,o.Org.t=p.t,o.Org.pqHandle=r.pq.insert(o.Org),n.getIntersectData(r,o.Org,s,c,l,u),n.regionAbove(e).dirty=e.dirty=t.dirty=!0,!1)},n.walkDirtyRegions=function(r,e){for(var t=n.regionBelow(e),o,i;;){for(;t.dirty;)e=t,t=n.regionBelow(t);if(!e.dirty&&(t=e,e=n.regionAbove(e),e===null||!e.dirty))return;if(e.dirty=!1,o=e.eUp,i=t.eUp,o.Dst!==i.Dst&&n.checkForLeftSplice(r,e)&&(t.fixUpperEdge?(n.deleteRegion(r,t),r.mesh.delete(i),t=n.regionBelow(e),i=t.eUp):e.fixUpperEdge&&(n.deleteRegion(r,e),r.mesh.delete(o),e=n.regionAbove(t),o=e.eUp)),o.Org!==i.Org)if(o.Dst!==i.Dst&&!e.fixUpperEdge&&!t.fixUpperEdge&&(o.Dst===r.event||i.Dst===r.event)){if(n.checkForIntersect(r,e))return}else n.checkForRightSplice(r,e);o.Org===i.Org&&o.Dst===i.Dst&&(n.addWinding(i,o),n.deleteRegion(r,e),r.mesh.delete(o),e=n.regionAbove(t))}},n.connectRightVertex=function(r,e,t){var o,i=t.Onext,s=n.regionBelow(e),l=e.eUp,c=s.eUp,u=!1;if(l.Dst!==c.Dst&&n.checkForIntersect(r,e),le.vertEq(l.Org,r.event)&&(r.mesh.splice(i.Oprev,l),e=n.topLeftRegion(r,e),i=n.regionBelow(e).eUp,n.finishLeftRegions(r,n.regionBelow(e),s),u=!0),le.vertEq(c.Org,r.event)&&(r.mesh.splice(t,c.Oprev),t=n.finishLeftRegions(r,s,null),u=!0),u){n.addRightEdges(r,e,t.Onext,i,i,!0);return}le.vertLeq(c.Org,l.Org)?o=c.Oprev:o=l,o=r.mesh.connect(t.Lprev,o),n.addRightEdges(r,e,o,o.Onext,o.Onext,!1),o.Sym.activeRegion.fixUpperEdge=!0,n.walkDirtyRegions(r,e)},n.connectLeftDegenerate=function(r,e,t){var o,i,s,l,c;if(o=e.eUp,le.vertEq(o.Org,t)){pe(!1),n.spliceMergeVertices(r,o,t.anEdge);return}if(!le.vertEq(o.Dst,t)){r.mesh.splitEdge(o.Sym),e.fixUpperEdge&&(r.mesh.delete(o.Onext),e.fixUpperEdge=!1),r.mesh.splice(t.anEdge,o),n.sweepEvent(r,t);return}pe(!1),e=n.topRightRegion(e),c=n.regionBelow(e),s=c.eUp.Sym,i=l=s.Onext,c.fixUpperEdge&&(pe(i!==s),n.deleteRegion(r,c),r.mesh.delete(s),s=i.Oprev),r.mesh.splice(t.anEdge,s),le.edgeGoesLeft(i)||(i=null),n.addRightEdges(r,e,s.Onext,l,i,!0)},n.connectLeftVertex=function(r,e){var t,o,i,s,l,c,u=new Lc;if(u.eUp=e.anEdge.Sym,t=r.dict.search(u).key,o=n.regionBelow(t),!!o){if(s=t.eUp,l=o.eUp,le.edgeSign(s.Dst,e,s.Org)===0){n.connectLeftDegenerate(r,t,e);return}if(i=le.vertLeq(l.Dst,s.Dst)?t:o,t.inside||i.fixUpperEdge){if(i===t)c=r.mesh.connect(e.anEdge.Sym,s.Lnext);else{var a=r.mesh.connect(l.Dnext,e.anEdge);c=a.Sym}i.fixUpperEdge?n.fixUpperEdge(r,i,c):n.computeWinding(r,n.addRegionBelow(r,t,c)),n.sweepEvent(r,e)}else n.addRightEdges(r,t,e.anEdge,e.anEdge,null,!0)}},n.sweepEvent=function(r,e){r.event=e,n.debugEvent(r);for(var t=e.anEdge;t.activeRegion===null;)if(t=t.Onext,t===e.anEdge){n.connectLeftVertex(r,e);return}var o=n.topLeftRegion(r,t.activeRegion);pe(o!==null);var i=n.regionBelow(o),s=i.eUp,l=n.finishLeftRegions(r,i,null);l.Onext===s?n.connectRightVertex(r,o,l):n.addRightEdges(r,o,l.Onext,s,s,!0)},n.addSentinel=function(r,e,t,o){var i=new Lc,s=r.mesh.makeEdge();s.Org.s=t,s.Org.t=o,s.Dst.s=e,s.Dst.t=o,r.event=s.Dst,i.eUp=s,i.windingNumber=0,i.inside=!1,i.fixUpperEdge=!1,i.sentinel=!0,i.dirty=!1,i.nodeUp=r.dict.insert(i)},n.initEdgeDict=function(r){r.dict=new Sw(r,n.edgeLeq);var e=r.bmax[0]-r.bmin[0],t=r.bmax[1]-r.bmin[1],o=r.bmin[0]-e,i=r.bmax[0]+e,s=r.bmin[1]-t,l=r.bmax[1]+t;n.addSentinel(r,o,i,s),n.addSentinel(r,o,i,l)},n.doneEdgeDict=function(r){for(var e,t=0;(e=r.dict.min().key)!==null;)e.sentinel||(pe(e.fixUpperEdge),pe(++t===1)),pe(e.windingNumber===0),n.deleteRegion(r,e)},n.removeDegenerateEdges=function(r){var e,t,o,i=r.mesh.eHead;for(e=i.next;e!==i;e=t)t=e.next,o=e.Lnext,le.vertEq(e.Org,e.Dst)&&e.Lnext.Lnext!==e&&(n.spliceMergeVertices(r,o,e),r.mesh.delete(e),e=o,o=e.Lnext),o.Lnext===e&&(o!==e&&((o===t||o===t.Sym)&&(t=t.next),r.mesh.delete(o)),(e===t||e===t.Sym)&&(t=t.next),r.mesh.delete(e))},n.initPriorityQ=function(r){var e,t,o,i=0;for(o=r.mesh.vHead,t=o.next;t!==o;t=t.next)i++;for(i+=8,e=r.pq=new bw(i,le.vertLeq),o=r.mesh.vHead,t=o.next;t!==o;t=t.next)t.pqHandle=e.insert(t);return t!==o?!1:(e.init(),!0)},n.donePriorityQ=function(r){r.pq=null},n.removeDegenerateFaces=function(r,e){var t,o,i;for(t=e.fHead.next;t!==e.fHead;t=o)o=t.next,i=t.anEdge,pe(i.Lnext!==i),i.Lnext.Lnext===i&&(n.addWinding(i.Onext,i),r.mesh.delete(i));return!0},n.computeInterior=function(r,e){e===void 0&&(e=!0);var t,o;if(n.removeDegenerateEdges(r),!n.initPriorityQ(r))return!1;for(n.initEdgeDict(r);(t=r.pq.extractMin())!==null;){for(;o=r.pq.min(),!(o===null||!le.vertEq(o,t));)o=r.pq.extractMin(),n.spliceMergeVertices(r,t.anEdge,o.anEdge);n.sweepEvent(r,t)}return r.event=r.dict.min().key.eUp.Org,n.debugEvent(r),n.doneEdgeDict(r),n.donePriorityQ(r),n.removeDegenerateFaces(r,r.mesh)?(e&&r.mesh.check(),!0):!1},n}(),_w=function(){function n(){this.mesh=new Lm,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(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]},n.prototype.normalize_=function(r){var e=r[0]*r[0]+r[1]*r[1]+r[2]*r[2];if(!e)throw"Zero-size vector!";e=Math.sqrt(e),r[0]/=e,r[1]/=e,r[2]/=e},n.prototype.longAxis_=function(r){var e=0;return Math.abs(r[1])>Math.abs(r[0])&&(e=1),Math.abs(r[2])>Math.abs(r[e])&&(e=2),e},n.prototype.computeNormal_=function(r){var e,t,o,i,s,l,c=[0,0,0],u=[0,0,0],a=[0,0,0],d=[0,0,0],p=[0,0,0],f=[null,null,null],m=[null,null,null],h=this.mesh.vHead;e=h.next;for(var y=0;y<3;++y)i=e.coords[y],u[y]=i,m[y]=e,c[y]=i,f[y]=e;for(e=h.next;e!==h;e=e.next)for(var g=0;g<3;++g)i=e.coords[g],i<u[g]&&(u[g]=i,m[g]=e),i>c[g]&&(c[g]=i,f[g]=e);var v=0;if(c[1]-u[1]>c[0]-u[0]&&(v=1),c[2]-u[2]>c[v]-u[v]&&(v=2),u[v]>=c[v]){r[0]=0,r[1]=0,r[2]=1;return}for(l=0,t=m[v],o=f[v],a[0]=t.coords[0]-o.coords[0],a[1]=t.coords[1]-o.coords[1],a[2]=t.coords[2]-o.coords[2],e=h.next;e!==h;e=e.next)d[0]=e.coords[0]-o.coords[0],d[1]=e.coords[1]-o.coords[1],d[2]=e.coords[2]-o.coords[2],p[0]=a[1]*d[2]-a[2]*d[1],p[1]=a[2]*d[0]-a[0]*d[2],p[2]=a[0]*d[1]-a[1]*d[0],s=p[0]*p[0]+p[1]*p[1]+p[2]*p[2],s>l&&(l=s,r[0]=p[0],r[1]=p[1],r[2]=p[2]);l<=0&&(r[0]=r[1]=r[2]=0,r[this.longAxis_(a)]=1)},n.prototype.checkOrientation_=function(){for(var r=this.mesh.fHead,e,t=this.mesh.vHead,o,i=0,s=r.next;s!==r;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=t.next;e!==t;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 r=this.mesh.vHead,e=[0,0,0],t,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),t=this.sUnit,o=this.tUnit;var s=this.longAxis_(e);t[s]=0,t[(s+1)%3]=1,t[(s+2)%3]=0,o[s]=0,o[(s+1)%3]=0,o[(s+2)%3]=e[s]>0?1:-1;for(var l=r.next;l!==r;l=l.next)l.s=this.dot_(l.coords,t),l.t=this.dot_(l.coords,o);i&&this.checkOrientation_();for(var c=!0,u=r.next;u!==r;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(r,e){r.winding+=e.winding,r.Sym.winding+=e.Sym.winding},n.prototype.tessellateMonoRegion_=function(r,e){var t,o;if(t=e.anEdge,!(t.Lnext!==t&&t.Lnext.Lnext!==t))throw"Mono region invalid";for(;le.vertLeq(t.Dst,t.Org);t=t.Lprev);for(;le.vertLeq(t.Org,t.Dst);t=t.Lnext);o=t.Lprev;for(var i=void 0;t.Lnext!==o;)if(le.vertLeq(t.Dst,o.Org)){for(;o.Lnext!==t&&(le.edgeGoesLeft(o.Lnext)||le.edgeSign(o.Org,o.Dst,o.Lnext.Dst)<=0);)i=r.connect(o.Lnext,o),o=i.Sym;o=o.Lprev}else{for(;o.Lnext!==t&&(le.edgeGoesRight(t.Lprev)||le.edgeSign(t.Dst,t.Org,t.Lprev.Org)>=0);)i=r.connect(t,t.Lprev),t=i.Sym;t=t.Lnext}if(o.Lnext===t)throw"Mono region invalid";for(;o.Lnext.Lnext!==t;)i=r.connect(o.Lnext,o),o=i.Sym;return!0},n.prototype.tessellateInterior_=function(r){for(var e,t=r.fHead.next;t!==r.fHead;t=e)if(e=t.next,t.inside&&!this.tessellateMonoRegion_(r,t))return!1;return!0},n.prototype.discardExterior_=function(r){for(var e,t=r.fHead.next;t!==r.fHead;t=e)e=t.next,t.inside||r.zapFace(t)},n.prototype.setWindingNumber_=function(r,e,t){for(var o,i=r.eHead.next;i!==r.eHead;i=o)o=i.next,i.Rface.inside!==i.Lface.inside?i.winding=i.Lface.inside?e:-e:t?r.delete(i):i.winding=0},n.prototype.getNeighbourFace_=function(r){return!r.Rface||!r.Rface.inside?-1:r.Rface.n},n.prototype.outputPolymesh_=function(r,e,t,o){var i,s=0,l=0,c;t>3&&r.mergeConvexFaces(t);for(var u=r.vHead.next;u!==r.vHead;u=u.next)u.n=-1;for(var a=r.fHead.next;a!==r.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>t)throw"Face vertex greater that support polygon";a.n=s,++s}this.elementCount=s,e===rt.CONNECTED_POLYGONS&&(s*=2),this.elements=[],this.elements.length=s*t,this.vertexCount=l,this.vertices=[],this.vertices.length=l*o,this.vertexIndices=[],this.vertexIndices.length=l;for(var u=r.vHead.next;u!==r.vHead;u=u.next)if(u.n!==-1){var d=u.n*o;this.vertices[d+0]=u.coords[0],this.vertices[d+1]=u.coords[1],o>2&&(this.vertices[d+2]=u.coords[2]),this.vertexIndices[u.n]=u.idx}for(var p=0,a=r.fHead.next;a!==r.fHead;a=a.next)if(!!a.inside){i=a.anEdge,c=0;do{var u=i.Org;this.elements[p++]=u.n,c++,i=i.Lnext}while(i!==a.anEdge);for(var f=c;f<t;++f)this.elements[p++]=-1;if(e===rt.CONNECTED_POLYGONS){i=a.anEdge;do this.elements[p++]=this.getNeighbourFace_(i),i=i.Lnext;while(i!==a.anEdge);for(var m=c;m<t;++m)this.elements[p++]=-1}}},n.prototype.outputContours_=function(r,e){var t,o,i=0,s=0;this.vertexCount=0,this.elementCount=0;for(var l=r.fHead.next;l!==r.fHead;l=l.next)if(!!l.inside){o=t=l.anEdge;do this.vertexCount++,t=t.Lnext;while(t!==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=r.fHead.next;l!==r.fHead;l=l.next)if(!!l.inside){s=0,o=t=l.anEdge;do this.vertices[c++]=t.Org.coords[0],this.vertices[c++]=t.Org.coords[1],e>2&&(this.vertices[c++]=t.Org.coords[2]),this.vertexIndices[u++]=this.vertexIdCallback?this.vertexIdCallback(t):t.Org.idx,s++,t=t.Lnext;while(t!==o);this.elements[a++]=i,this.elements[a++]=s,i+=s}},n.prototype.addContour=function(r,e){this.mesh===null&&(this.mesh=new Lm),r<2&&(r=2),r>3&&(r=3);for(var t=null,o=0;o<e.length;o+=r)t===null?(t=this.mesh.makeEdge(),this.mesh.splice(t,t.Sym)):(this.mesh.splitEdge(t),t=t.Lnext),t.Org.coords[0]=e[o+0],t.Org.coords[1]=e[o+1],r>2?t.Org.coords[2]=e[o+2]:t.Org.coords[2]=0,t.Org.idx=this.vertexIndexCounter++,this.edgeCreateCallback&&this.edgeCreateCallback(t),t.winding=1,t.Sym.winding=-1},n.prototype.tesselate=function(r,e,t,o,i,s){if(r===void 0&&(r=Be.ODD),e===void 0&&(e=rt.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=r,o<2&&(o=2),o>3&&(o=3),!this.mesh)return!1;this.projectPolygon_(),ww.computeInterior(this,s);var l=this.mesh;return e===rt.BOUNDARY_CONTOURS?this.setWindingNumber_(l,1,!0):this.tessellateInterior_(l),s&&l.check(),e===rt.BOUNDARY_CONTOURS?this.outputContours_(l,o):this.outputPolymesh_(l,e,t,o),!0},n}();function Uo(n){var r=n.windingRule,e=r===void 0?Be.ODD:r,t=n.elementType,o=t===void 0?rt.POLYGONS:t,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,d=n.contours,p=d===void 0?[]:d,f=n.strict,m=f===void 0?!0:f,h=n.debug,y=h===void 0?!1:h;if(!p&&m)throw new Error("Contours can't be empty");if(!!p){var g=new _w;n.edgeCreateCallback&&(g.edgeCreateCallback=n.edgeCreateCallback),n.vertexIdCallback&&(g.vertexIdCallback=n.vertexIdCallback);for(var v=0;v<p.length;v++)g.addContour(c||2,p[v]);return g.tesselate(e,o,s,c,a,m),{vertices:g.vertices,vertexIndices:g.vertexIndices,vertexCount:g.vertexCount,elements:g.elements,elementCount:g.elementCount,mesh:y?g.mesh:void 0}}}var SB=Be.ODD,wB=Be.NONZERO,_B=Be.POSITIVE,TB=Be.NEGATIVE,OB=Be.ABS_GEQ_TWO,AB=rt.POLYGONS,PB=rt.CONNECTED_POLYGONS,IB=rt.BOUNDARY_CONTOURS;var Xn=class extends zo.BufferGeometry{constructor(e,t=12,o={}){super();this.type="ShapeGeometry";this.windingRule=Be.ODD;this.elementType=rt.POLYGONS;this.polySize=3;this.vertexSize=2;this.strict=!0;this._shape=e,this._curveSegments=t,this._triangulationOptions=Object.assign({windingRule:Be.ODD,elementType:rt.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,d;for(let m=0,h=i.length/2;m<h;m++){let y=m*2,g=i[y+0],v=i[y+1];if(a!==void 0&&g!==a&&(c=!1),d!==void 0&&v!==d&&(u=!1),a=g,d=v,!c&&!u)break}!c&&!u&&(l=Uo({contours:[i,...s],windingRule:this._triangulationOptions.windingRule,elementType:this._triangulationOptions.elementType,polySize:this._triangulationOptions.polySize,vertexSize:this._triangulationOptions.vertexSize,strict:this._triangulationOptions.strict}));let p=l?.vertexCount??1,f=l?.elementCount??1;if(this._positionAttribute=new zo.BufferAttribute(new Float32Array(p*3),3),this._normalAttribute=new zo.BufferAttribute(new Float32Array(p*3),3),this._uvAttribute=new zo.BufferAttribute(new Float32Array(p*2),2),this._indexAttribute=new zo.BufferAttribute(new Uint32Array(f*3),1),l){let m=1/0,h=-1/0,y=1/0,g=-1/0;for(let b=0,S=p;b<S;b++){let A=b*2,_=l.vertices[A+0],x=l.vertices[A+1];_<m&&(m=_),_>h&&(h=_),x<y&&(y=x),x>g&&(g=x)}let v=h-m,w=g-y;for(let b=0,S=p;b<S;b++){let A=b*2,_=l.vertices[A+0],x=l.vertices[A+1],P=(_-m)/v,O=(x-y)/w;this._positionAttribute.setXYZ(b,_,x,0),this._normalAttribute.setXYZ(b,0,0,1),this._uvAttribute.setXY(b,P,O)}for(let b=0,S=f;b<S;b++){let A=b*3,_=l.elements[A+0],x=l.elements[A+1],P=l.elements[A+2];this._indexAttribute.setX(A+0,_),this._indexAttribute.setX(A+1,x),this._indexAttribute.setX(A+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 Xn(this._shape,this._curveSegments);return e.userData=Vo(this.userData),e}};var ko=require("three");var Qa=class{constructor(r=256,e=!1){this.capacity=r,this.size=0,this.debug=e,this.debug&&console.log(`allocating with cap ${r}`);let t=r*Qa.eSize;this.buffer=new ArrayBuffer(t);let o=Float32Array.BYTES_PER_ELEMENT,i=0;this.positions=new Float32Array(this.buffer,i*o,3*r),i+=3*r,this.normals=new Float32Array(this.buffer,i*o,3*r),i+=3*r,this.uvs=new Float32Array(this.buffer,i*o,2*r)}realloc(r,e=!1){if(r<this.size)throw Error("cannot shrink buffer");if(r<=this.capacity&&!e)return;this.debug&&console.log(`resizing from ${this.capacity} \u2192 ${r}`);let t=r*Qa.eSize,o=new ArrayBuffer(t),i=Float32Array.BYTES_PER_ELEMENT,s=0,l=new Float32Array(o,s*i,3*r);s+=3*r;let c=new Float32Array(o,s*i,3*r);s+=3*r;let u=new Float32Array(o,s*i,2*r);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=r}get(r=1){let e=this.size+r;if(e>this.capacity){let o=this.capacity;for(;e>o;)o*=2;this.realloc(o)}let t=this.size;return this.size=e,t}reserve(r){let e=this.size+r;e>this.capacity&&this.realloc(e)}shrink(){this.debug&&console.log(`shrinking ${this.capacity} \u2192 ${this.size}`),this.realloc(this.size,!0)}},es=Qa;es.eSize=(3+3+2)*Float32Array.BYTES_PER_ELEMENT;var Mc=(n,r)=>([e,t])=>(t<e&&(t+=r),(n>=e?n:n+r)<=t),Kn=class extends ko.BufferGeometry{constructor(e,t,o=0,i=12,s=3,l=Be.ODD){super();this.type="ShapeGeometry";this.vertexCache={};this._shape=e,this._depth=t,this._bevel=o,this._curveSegments=i,this._bevelSegmentsInput=s,o<=0?(this._bevelSize=0,this._bevelSegments=0):(this._bevelSize=Math.min(o,t/2-1e-12),this._bevelSegments=Math.floor(s));let c=this._shape.extractShapePointsToFlatArray([],i),u=this._shape.shapeHoles.map(x=>{let P=x.extractShapePointsToFlatArray([],i),O=[];for(let I=P.length-1;I>=1;I-=2){let T=P[I-1],N=P[I-0];O.push(T,N)}return O}),a=Uo({windingRule:l,elementType:rt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[c]}),d=Uo({windingRule:Be.ODD,elementType:rt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[...u]});if(!a)throw new Error("error generating geometry");let p=a.elementCount;if(d){a.elementCount+=d.elementCount;for(let x=0;x<d.elements.length;x++){let P=d.elements[x],O=x%2===0?a.vertexCount:0;a.elements.push(P+O)}for(let x=0;x<d.vertexIndices.length;x++){let P=d.vertexIndices[x],O=a.vertexCount;a.vertexIndices.push(P+O)}for(let x=0;x<d.vertices.length;x++){let P=d.vertices[x];a.vertices.push(P)}}let f=1/0,m=-1/0,h=1/0,y=-1/0;for(let x=0,P=a.vertexCount;x<P;x++){let O=x*2,I=a.vertices[O+0],T=a.vertices[O+1];I<f&&(f=I),I>m&&(m=I),T<h&&(h=T),T>y&&(y=T)}this._minX=f,this._minY=h,this._width=m-f,this._height=y-h;let g=a.vertexCount*2*(2+this._bevelSegments);this._buffer=new es(g);let v=[],w=[];for(let x=a.elementCount-1;x>=0;x--){let P=x>=p,O=x*2,I=a.elements[O+0],T=a.elements[O+1],N=I+T,L={start:I,count:T,normals:[],continuous:[],concave:[]},U=I,K=N-1,J=I+1,se=this._shape.roundedCurves.length;do{let j=U-I,M=a.vertices[K*2+0],B=a.vertices[K*2+1],D=a.vertices[U*2+0],F=a.vertices[U*2+1],Y=a.vertices[J*2+0],k=a.vertices[J*2+1],V=D-M,G=F-B,H=Math.sqrt(V*V+G*G);V/=H,G/=H;let $=D-Y,ee=F-k,ae=Math.sqrt($*$+ee*ee);$/=ae,ee/=ae,L.normals[j*2+0]=-ee,L.normals[j*2+1]=$,L.concave[j]=V*ee-G*$>0;let te=a.vertexIndices[U];if(Array.isArray(te))L.continuous[j]=!1;else{let[re,oe]=this._shape.getCurveIndexFromVertexId(te-1,!0);if(oe>0&&oe<1)L.continuous[j]=!0;else{let Z=oe===1?re+1:re-1;Z=(Z+se)%se;let he=oe===1?0:1,ue=this._shape.roundedCurves[re].getTangent(oe),ge=this._shape.roundedCurves[Z].getTangent(he);L.continuous[j]=ue.dot(ge)>.95}}P&&(L.normals[j*2+0]*=-1,L.normals[j*2+1]*=-1),[K,U,J]=[U,J,J+1],J>=N&&(J-=T)}while(J!==I+1);let z=[];z.push({bevelI:0,angle:0,size:0,boundary:{vertices:a.vertices.slice(I*2,N*2),vertexCount:T,vertexIndices:new Array(T).fill(!0).map((j,M)=>[M,M]),elements:[0,T],elementCount:1,mesh:null},reverseMap:[],insetPoints:a.vertices.slice(I*2,N*2)});for(let j=1;j<=this._bevelSegments;j++){let M=j/this._bevelSegments*Math.PI/2,B=(1-Math.cos(M))*this._bevelSize,D=[],F=[],Y=[],k=[],V=0;for(let H=0;H<T;H++){let $=H*2,ee=(H-1+T)%T*2,ae=a.vertices[L.start*2+$+0],te=a.vertices[L.start*2+$+1],re=-L.normals[ee+0]*B,oe=-L.normals[ee+1]*B,Z=-L.normals[$+0]*B,he=-L.normals[$+1]*B;if(L.concave[H]||!L.concave[H]&&P){let ue=Math.atan2(oe,re),ge=Math.atan2(he,Z);ge>ue&&(ge-=Math.PI*2);let vt=ge-ue;if(L.continuous[H]||P){let _e=ue+vt/2,Le=Math.cos(_e)*B,Me=Math.sin(_e)*B;D[2*V+0]=ae+Le*(P?-1:1),D[2*V+1]=te+Me*(P?-1:1),k[V]=H,V++}else{let _e=Math.max(1,Math.floor(i/4*Math.abs(vt)/Math.PI));for(let Le=0;Le<=_e;Le++){let Me=ue+vt*(Le/_e),Ct=Math.cos(Me)*B,to=Math.sin(Me)*B;D[2*V+0]=ae+Ct,D[2*V+1]=te+to,k[V]=H,V++}}}else D[2*V+0]=ae+re,D[2*V+1]=te+oe,k[V]=H,F[H]=V,V++,D[2*V+0]=ae,D[2*V+1]=te,k[V]=H,V++,D[2*V+0]=ae+Z,D[2*V+1]=te+he,k[V]=H,Y[H]=V,V++}let G=Uo({windingRule:Be.POSITIVE,elementType:rt.BOUNDARY_CONTOURS,vertexSize:2,strict:!0,contours:[D],edgeCreateCallback:H=>{let ee=H.Org.idx,ae=k[ee],te=k[(ee+1)%k.length];H.idx=[ae,te],H.Sym.idx=[te,ae]},vertexIdCallback:H=>{let $=H.Lprev.idx;return[$?$[1]:0,H.idx[0]]}});if(!G)throw console.log("Error"),new Error(`error generating bevel geometry for ${j}'th loop`);if(!G.vertexCount)break;for(let H=0;H<G.vertexIndices.length;H++){let[$,ee]=G.vertexIndices[H];if($===ee)continue;let ae=ee;ee<$&&(ae+=T);for(let te=$;te<ae;te++){let re=te%T,oe=(te+1)%T;if(!L.continuous[re]||!L.continuous[oe]){G.vertexIndices[H]=[$,re],G.vertexIndices.splice(H+1,0,[oe,ee]),G.vertices.splice((H+1)*2,0,G.vertices[H*2],G.vertices[H*2+1]);break}}}z.push({bevelI:j,angle:M,size:B,boundary:G,reverseMap:k,insetPoints:D})}let W=(j,M,B)=>{let D=0,F=j.boundary.vertexIndices.length;for(;D<F&&B(j.boundary.vertexIndices[M]);)M=(M+1)%F,D++;return D},q=v.length;for(let j=1;j<z.length;j++){let M=z[j-1],B=z[j],D=M.boundary.vertexIndices.length,F=B.boundary.vertexIndices.length;if(!D||!F)break;let Y=L.concave.length,k=0,V=Mc(k,T);for(;!M.boundary.vertexIndices.filter(V).length||!B.boundary.vertexIndices.filter(V).length;)k++,V=Mc(k,T);let G=M.boundary.vertexIndices.findIndex(V),H=B.boundary.vertexIndices.findIndex(V);do G=(G+1)%D;while(V(M.boundary.vertexIndices[G]));do H=(H+1)%F;while(V(B.boundary.vertexIndices[H]));k=(k+1)%T;let $=k,ee=this.buildBevelVert(L,M,(G-1+D)%D),ae=this.buildBevelVert(L,B,(H-1+F)%F),te=ee,re=ae,oe,Z,he=!1;do{V=Mc(k,T);let ue=W(M,G,V),ge=W(B,H,V),vt=he;if(he=!1,ue&&!ge){for(let _e=0;_e<ue;_e++)oe=this.buildBevelVert(L,M,(G+_e)%D,_e/(ue-1)),v.push(te.topN,oe.topP,re.topN),v.push(oe.bottomP,te.bottomN,re.bottomN),te=oe;he=!0}else if(!ue&&ge)for(let _e=0;_e<ge;_e++)Z=this.buildBevelVert(L,B,(H+_e)%F,_e/(ge-1)),v.push(re.topN,te.topP,Z.topP),v.push(te.bottomP,re.bottomN,Z.bottomP),re=Z;else if(ue&&ge)if(oe=this.buildBevelVert(L,M,G,0),Z=this.buildBevelVert(L,B,H,0),vt?(v.push(te.topN,Z.topP,re.topN),v.push(te.topN,oe.topP,Z.topP),v.push(Z.bottomP,te.bottomN,re.bottomN),v.push(Z.bottomP,oe.bottomP,te.bottomN)):(v.push(re.topN,te.topN,oe.topP),v.push(re.topN,oe.topP,Z.topP),v.push(oe.bottomP,te.bottomN,re.bottomN),v.push(oe.bottomP,re.bottomN,Z.bottomP)),te=oe,re=Z,ue===ge)for(let _e=1;_e<ue;_e++)oe=this.buildBevelVert(L,M,(G+_e)%D,_e/(ue-1)),Z=this.buildBevelVert(L,B,(H+_e)%F,_e/(ge-1)),v.push(te.topN,oe.topP,re.topN),v.push(re.topN,oe.topP,Z.topP),v.push(oe.bottomP,te.bottomN,re.bottomN),v.push(oe.bottomP,re.bottomN,Z.bottomP),te=oe,re=Z;else if(ue>ge){let _e=ue/ge,Le=0;for(let Me=1;Me<ue;Me++)oe=this.buildBevelVert(L,M,(G+Me)%D,Me/(ue-1)),v.push(te.topN,oe.topP,re.topN),v.push(oe.bottomP,te.bottomN,re.bottomN),te=oe,Me>(Le+1)*_e&&(Le++,Z=this.buildBevelVert(L,B,(H+Le)%F,Le/(ge-1)),v.push(re.topN,oe.topP,Z.topP),v.push(oe.bottomP,re.bottomN,Z.bottomP),re=Z)}else{let _e=ge/ue,Le=0;for(let Me=1;Me<ge;Me++)Z=this.buildBevelVert(L,B,(H+Me)%F,Me/(ge-1)),v.push(re.topN,oe.topP,Z.topP),v.push(oe.bottomP,re.bottomN,Z.bottomP),re=Z,Me>(Le+1)*_e&&(Le++,oe=this.buildBevelVert(L,M,(G+Le)%D,Le/(ue-1)),v.push(te.topN,oe.topP,re.topN),v.push(oe.bottomP,te.bottomN,re.bottomN),te=oe)}G=(G+ue)%D,H=(H+ge)%F,k=(k+1)%Y}while(k!==$)}{let j=z[0];for(let M=0,B=j.boundary.vertexCount;M<B;M++){let D=this.buildBevelVert(L,j,M),F=this.buildBevelVert(L,j,(M+1)%B);v.push(F.topP,D.topN,D.bottomN),v.push(F.topP,D.bottomN,F.bottomP)}}if(P){let j=[];for(let M=v.length-1;M>=q+2;M-=3){let B=v[M-2],D=v[M-1],F=v[M-0];j.push(F,D,B)}v.splice(q,v.length-q,...j)}if(P){let j=[];for(let M=z[z.length-1].boundary.vertices.length-1;M>=1;M-=2){let B=z[z.length-1].boundary.vertices[M-1],D=z[z.length-1].boundary.vertices[M-0];j.push(B,D)}w.push(j)}if(!P){let j=z[z.length-1],M=Uo({windingRule:z.length>1?Be.POSITIVE:Be.ODD,elementType:rt.POLYGONS,vertexSize:2,strict:!0,contours:[j.insetPoints,...w]});if(!M)throw new Error("Error generating geometry for surface");u.length===0&&Object.assign(this,{capStartIndex:v.length});for(let B=0;B<M.elementCount*3;B+=3){let D=this.buildSurfaceVert(M,M.elements[B+0]),F=this.buildSurfaceVert(M,M.elements[B+1]),Y=this.buildSurfaceVert(M,M.elements[B+2]);v.push(D.top,F.top,Y.top),v.push(Y.bottom,F.bottom,D.bottom)}}this.vertexCache={}}this._buffer.shrink();let b=new ko.BufferAttribute(Uint32Array.from(v),1),S=new ko.BufferAttribute(this._buffer.positions,3),A=new ko.BufferAttribute(this._buffer.normals,3),_=new ko.BufferAttribute(this._buffer.uvs,2);S.needsUpdate=!0,A.needsUpdate=!0,_.needsUpdate=!0,b.needsUpdate=!0,this.setAttribute("position",S),this.setAttribute("normal",A),this.setAttribute("uv",_),this.setIndex(b)}buildSurfaceVert(e,t){let o=t.toString();if(o in this.vertexCache)return this.vertexCache[o];let i=e.vertices[t*2+0],s=e.vertices[t*2+1],l=(i-this._minX)/this._width,c=(s-this._minY)/this._height,u=this._buffer.get(2),a=u*3,d=u*2,p={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[d+0]=l,this._buffer.uvs[d+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[d+2]=l,this._buffer.uvs[d+3]=c,this.vertexCache[o]=p,p}buildBevelVert(e,t,o,i=1){let s=`${t.bevelI}:${o}`;if(s in this.vertexCache)return this.vertexCache[s];let[l,c]=t.boundary.vertexIndices[o],u,a,d,p;l!==c?(a=l,u=c,p=!1,d=e.continuous[a]&&e.continuous[u]):(u=l,a=(u-1+e.count)%e.count,p=e.concave[u]&&t.bevelI>0,d=e.continuous[u]||p);let f=Math.cos(t.angle),m=Math.sin(t.angle),h=o*2,y=u*2,g=a*2,v=t.boundary.vertices[h+0],w=t.boundary.vertices[h+1],b=(1-m)*this._bevelSize,S=(v-this._minX)/this._width,A=(w-this._minY)/this._height,_=e.normals[y+0],x=e.normals[y+1],P=e.normals[g+0],O=e.normals[g+1];if(p){let U=P-_,K=O-x;_=_+U*(1-i),x=x+K*(1-i);let J=Math.sqrt(_*_+x*x);_/=J,x/=J}let I=this._buffer.get(d?2:4),T=I*3,N=I*2,L={i:o,fi:u,topP:I+0,topN:I+0,bottomP:I+1,bottomN:I+1};return this._buffer.positions[T+0]=v,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-b,this._buffer.normals[T+0]=_*f,this._buffer.normals[T+1]=x*f,this._buffer.normals[T+2]=m,this._buffer.uvs[N+0]=S,this._buffer.uvs[N+1]=A,this._buffer.positions[T+3]=v,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=b,this._buffer.normals[T+3]=_*f,this._buffer.normals[T+4]=x*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[N+2]=A,this._buffer.uvs[N+3]=S,d||(I+=2,T+=6,N+=4,L.topP=I+0,L.bottomP=I+1,this._buffer.positions[T+0]=v,this._buffer.positions[T+1]=w,this._buffer.positions[T+2]=this._depth-b,this._buffer.normals[T+0]=P*f,this._buffer.normals[T+1]=O*f,this._buffer.normals[T+2]=m,this._buffer.uvs[N+0]=S,this._buffer.uvs[N+1]=A,this._buffer.positions[T+3]=v,this._buffer.positions[T+4]=w,this._buffer.positions[T+5]=b,this._buffer.normals[T+3]=P*f,this._buffer.normals[T+4]=O*f,this._buffer.normals[T+5]=-m,this._buffer.uvs[N+2]=A,this._buffer.uvs[N+3]=S),this.vertexCache[s]=L,L}clone(){let e=new Kn(this._shape,this._depth,this._bevel,this._curveSegments,this._bevelSegmentsInput);return e.userData=Vo(this.userData),e}};var Gt=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.parameters??{width:100,subdivisions:40,roundness:0,extrudeBevelSize:0,extrudeBevelSegments:3,windingRule:Be.ODD},n.parameters),t=Math.abs(e.width),o=Math.abs(e.height??e.width),i=Math.abs(e.depth??0),s=n.shape??r?.shape,l=s?.roundness??e.roundness;s!==void 0&&(s instanceof Te?(s.width!==t||s.height!==o)&&s.applySize(t,o):s=new Te(t,o).fromJSON(s),n.parameters?.roundness!==void 0&&n.parameters?.roundness>0&&s.update());let c=s??new Te(t,o);return{parameters:Object.assign(e,{width:t,height:o,depth:i,roundness:l}),shape:c}}static build(n){let{depth:r,extrudeBevelSize:e,extrudeBevelSegments:t,subdivisions:o,roundness:i,windingRule:s}=n.parameters;n.shape.roundness=i;let l;return r<=0?l=new Xn(n.shape,o,{windingRule:s}):l=new Kn(n.shape,r,e,o,t,s),Object.assign(l,{userData:{...n,type:"VectorGeometry"}})}};var Qn=require("three"),Rm=Math.PI*2,Vm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,height:e,spikes:t,angle:o,innerRadius:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,u=n.shape,a=r*.5,d=e*.5,p=Tw(u,a,d,o*Math.PI/180,t,i);u.isClosed=!0,u.update();let f=Gt.create({shape:u,parameters:{subdivisions:p,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(f,{userData:{...n,type:"EllipseGeometry"}})}};function Tw(n,r,e,t,o,i){if(t>=Rm)return o>30||o%4===0?(Aw(n,r,e,i),Math.round(o/4)):Gm(n,t,o,r,e,i);t=Math.max(t,.001);let s={x:0,y:e},l=t+Math.PI*.5,c={x:Math.cos(l)*r,y:Math.sin(l)*e},u=Em({px:s.x,py:s.y,cx:c.x,cy:c.y,rx:r,ry:e,largeArcFlag:t>Math.PI,sweepFlag:!0});return o>30||o%u.length===0?Ow(n,s.x,s.y,u,o,r,e,i):Gm(n,t,o,r,e,i)}function Ow(n,r,e,t,o,i,s,l){let c=Math.round(o/t.length);n.addPoint(Zn(r,e));for(let u=0,a=t.length;u<a;u++){let d=t[u],p=n.points[u],f=Zn(d.x,d.y);p.controls[1].position.set(d.x1,d.y1),f.controls[0].position.set(d.x2,d.y2),n.addPoint(f)}return l>0?jm(n,i,s,l):n.addPoint(Zn(0,0)),c}function Gm(n,r,e,t,o,i){let s=-r/e;for(let l=0;l<=e;l++){let c=s*l,u=Math.sin(c)*t,a=Math.cos(c)*o;n.addPoint(Zn(u,a))}return r<Rm?i>0?jm(n,t,o,i):n.addPoint(Zn(0,0)):(n.removePoint(n.points[n.points.length-1]),i>0&&Fm(n,t,o,i)),1}function Aw(n,r,e,t=0,o=0,i=0){let s=.5522847498,l=r*s,c=e*s;n.addPoint(Ja(o-r,i,o-r,i-c,o-r,i+c)),n.addPoint(Ja(o,i+e,o-l,i+e,o+l,i+e)),n.addPoint(Ja(o+r,i,o+r,i+c,o+r,i-c)),n.addPoint(Ja(o,i-e,o+l,i-e,o-l,i-e)),t>0&&Fm(n,r,e,t)}function Zn(n,r){return new dr(Qn.MathUtils.generateUUID(),new Qn.Vector2(n,r))}function Ja(n,r,e,t,o,i){let s=Zn(n,r);return s.controls[0].position.set(e,t),s.controls[1].position.set(o,i),s}function jm(n,r,e,t){Um(n,r,e,t).forEach(i=>n.addPoint(i))}function Fm(n,r,e,t){let o=Um(n,r,e,t),i=new Te;o.forEach(s=>i.addPoint(s)),i.isClosed=!0,n.shapeHoles.push(i)}function Um(n,r,e,t){let o=t*r/100,i=o*(Math.abs(e)/Math.abs(r)),s=new Qn.Vector2(o/r,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 Xr=require("three"),zm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.parameters??{width:100,revolutions:2,segments:40,pathRadius:10,pathType:0,pathSegments:30,cornerRadius:30,cornerSegments:4},n.parameters),t=Math.abs(e.width),o=Math.abs(e.height??t),i=Math.abs(e.depth??t),s=Math.abs(Math.min(t,i))/2;return{parameters:Object.assign(e,{width:t,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:r,height:e,depth:t,radius:o,revolutions:i,segments:s,pathRadius:l,pathType:c,pathSegments:u,cornerRadius:a,cornerSegments:d}=n.parameters,p=new Ho(!1,r,e,t,o,i,s,l,c,u,a,d);return Object.assign(p,{userData:{...n,type:"HelixGeometry"}})}},Ho=class extends Xr.BufferGeometry{constructor(r=!0,e=1,t=1,o=1,i=1,s=1,l=1,c=1,u=1,a=1,d=1,p=1,f=!1){super();let m=r&&s===1;m&&(p=0),d>100&&(d=100);let h=()=>new Xr.Vector3,y=new Xr.Vector3,g=h(),v=h(),w=h(),b,S,A,_,x,P,O,I,T=h(),N=h(),L=h(),U=h(),K=h(),J=h(),se=h(),z=h(),W=t-2*c+.001,q=W/s,j=Math.ceil(l*s),M=j+1,B=W/j,D=-W/2,F=a+1,Y=2*Math.PI/a,k=Math.PI/2/p,V=.01,G=Math.min((1-d/100)*c,c-V),H=c-G,$=0,ee=2,ae=p*ee+ee,te=F*ae/ee,re=te+F*M,oe=F*(M+ae),[Z,he,ue]=[3,3,2].map(tt=>Array(oe*tt).fill(0)),ge=[],vt=i-c;function _e(tt,zt){let xr=Math.PI/2;P=zt*B,I=2*Math.PI*(P%q)/q+xr,P+=D,O=Math.sin(I)*vt,x=Math.cos(I)*vt,r?tt.set(x,O,P):tt.set(x,P,O)}_e(y,-1e-10),_e(g,0),T.copy(y),_e(y,1);let Le=y.distanceTo(g),Me=m?0:H+G,Ct=Le*j+2*Me,to=G,Yt=Ct-Me;for(let tt=0;tt<=j;tt++){_e(v,tt),z.subVectors(v,T).normalize(),T.copy(v),J.copy(v).setComponent(+r+1,0).normalize(),se.crossVectors(z,J).normalize();let zt=tt===0,xr=tt===j,zy=zt?3*Math.PI/2:k,ky=zt?to:Yt,Hy=zt?F:re,Wy=zt?0:oe-F,qy=z.clone().multiplyScalar(zt?-H:H).add(v),$y=z.clone().multiplyScalar(zt?-1:1).normalize();for(let Ur=0;Ur<F;Ur++){let Cd=Ur*Y;if(N.addVectors(y.copy(J).multiplyScalar(c*Math.cos(Cd)),g.copy(se).multiplyScalar(c*Math.sin(Cd))),L.copy(N).normalize(),zt||xr){m||($=Wy+Ur,[0,1,2].forEach(Nt=>{Z[$*3+Nt]=qy.getComponent(Nt),he[$*3+Nt]=$y.getComponent(Nt)}),ue[$*2]=+xr,ue[$*2+1]=Ur/a),g.copy(L).multiplyScalar(G),w.addVectors(v,g);for(let Nt=0;Nt<p;Nt++){let kl=Nt*k+zy;U.addVectors(y.copy(z).multiplyScalar(H*Math.sin(kl)),g.copy(L).multiplyScalar(H*Math.cos(kl))),K.copy(U).normalize(),g.addVectors(w,U),U.normalize(),$=Hy+Nt*F+Ur,[0,1,2].forEach(Hs=>{Z[$*3+Hs]=g.getComponent(Hs),he[$*3+Hs]=K.getComponent(Hs)});let Yy=+zt+Math.sin(kl);ue[$*2]=(ky+H*Yy)/Ct,ue[$*2+1]=Ur/a}}g.addVectors(v,N),$=te+tt*F+Ur,[0,1,2].forEach(Nt=>{Z[$*3+Nt]=g.getComponent(Nt),he[$*3+Nt]=L.getComponent(Nt)}),ue[$*2]=(Me+tt*Le)/Ct,ue[$*2+1]=Ur/a}}let nn=M+2*p+ee,Ul=1,[zl,Ci]=[+m,nn-1];f&&(Ci-=1);for(let tt=zl;tt<=Ci-1;tt++){let zt=m&&tt===Ci-1;for(let xr=0;xr<F-1;xr++)b=tt*F+xr,S=b+1,A=(zt?xr:b)+F,_=(zt?xr+1:S)+F,tt===0?ge.push(S,_,A):tt===nn-2?ge.push(b,S,A):ge.push(b,S,A,S,_,A)}this.setIndex(ge),this.setAttribute("position",new Xr.Float32BufferAttribute(Z,3)),this.setAttribute("normal",new Xr.Float32BufferAttribute(he,3)),this.setAttribute("uv",new Xr.Float32BufferAttribute(ue,2))}};var km=require("three");var Hm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,height:e,depth:t,detail:o,corner:i,cornerSides:s}=n.parameters,l=o===0&&i!==0?new ts(r*.5,i,s):new km.IcosahedronGeometry(r*.5,o);return l.scale(1,e/r,t/r),Object.assign(l,{userData:{...n,type:"IcosahedronGeometry"}})}},ts=class extends xo{constructor(r=1,e=.2,t=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,r,e,t),this.type=l}static fromJSON(r){return new ts(r.radius,r.corner,r.cornerSides)}};var el=require("three"),Wm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){(n.parameters?.points??[]).forEach(t=>{Array.isArray(t)&&(t.x=t[0],t.y=t[1])});let e=Object.assign({},r?.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:r,segments:e,verticalSegments:t}=n.parameters,o=new el.Shape;o.moveTo(r[0].x,r[0].y),o.bezierCurveTo(r[1].x,r[1].y,r[2].x,r[2].y,r[3].x,r[3].y);let i=new el.LatheGeometry(o.extractPoints(t).shape,e);return i.rotateZ(Math.PI),Object.assign(i,{userData:{...n,type:"LatheGeometry"}})}};var Cr=require("three");var Kr=require("three");var ie=require("three"),Ir=new ie.Matrix4,Bc=new ie.Object3D,tl=new ie.Vector3,bo=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(r){let e=new ie.Matrix3().getNormalMatrix(r);for(let t=0,o=this.vertices.length;t<o;t++)this.vertices[t].applyMatrix4(r);for(let t=0,o=this.faces.length;t<o;t++){let i=this.faces[t];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(r){return Ir.makeRotationX(r),this.applyMatrix4(Ir),this}rotateY(r){return Ir.makeRotationY(r),this.applyMatrix4(Ir),this}rotateZ(r){return Ir.makeRotationZ(r),this.applyMatrix4(Ir),this}translate(r,e,t){return Ir.makeTranslation(r,e,t),this.applyMatrix4(Ir),this}scale(r,e,t){return Ir.makeScale(r,e,t),this.applyMatrix4(Ir),this}lookAt(r){return Bc.lookAt(r),Bc.updateMatrix(),this.applyMatrix4(Bc.matrix),this}fromBufferGeometry(r){let e=this,t=r.index!==null?r.index:void 0,o=r.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 p=0;p<i.count;p++)e.vertices.push(new ie.Vector3().fromBufferAttribute(i,p)),l!==void 0&&e.colors.push(new ie.Color().fromBufferAttribute(l,p));function a(p,f,m,h){let y=l===void 0?[]:[e.colors[p].clone(),e.colors[f].clone(),e.colors[m].clone()],g=s===void 0?[]:[new ie.Vector3().fromBufferAttribute(s,p),new ie.Vector3().fromBufferAttribute(s,f),new ie.Vector3().fromBufferAttribute(s,m)],v=new Jn(p,f,m,g,y,h);e.faces.push(v),c!==void 0&&e.faceVertexUvs[0].push([new ie.Vector2().fromBufferAttribute(c,p),new ie.Vector2().fromBufferAttribute(c,f),new ie.Vector2().fromBufferAttribute(c,m)]),u!==void 0&&e.faceVertexUvs[1].push([new ie.Vector2().fromBufferAttribute(u,p),new ie.Vector2().fromBufferAttribute(u,f),new ie.Vector2().fromBufferAttribute(u,m)])}let d=r.groups;if(d.length>0)for(let p=0;p<d.length;p++){let f=d[p],m=f.start,h=f.count;for(let y=m,g=m+h;y<g;y+=3)t!==void 0?a(t.getX(y),t.getX(y+1),t.getX(y+2),f.materialIndex):a(y,y+1,y+2,f.materialIndex)}else if(t!==void 0)for(let p=0;p<t.count;p+=3)a(t.getX(p),t.getX(p+1),t.getX(p+2));else for(let p=0;p<i.count;p+=3)a(p,p+1,p+2);return this.computeFaceNormals(),r.boundingBox!==null&&(this.boundingBox=r.boundingBox.clone()),r.boundingSphere!==null&&(this.boundingSphere=r.boundingSphere.clone()),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(tl).negate(),this.translate(tl.x,tl.y,tl.z),this}normalize(){this.computeBoundingSphere();let r=this.boundingSphere.center,e=this.boundingSphere.radius,t=e===0?1:1/e,o=new ie.Matrix4;return o.set(t,0,0,-t*r.x,0,t,0,-t*r.y,0,0,t,-t*r.z,0,0,0,1),this.applyMatrix4(o),this}computeFaceNormals(){let r=new ie.Vector3,e=new ie.Vector3;for(let t=0,o=this.faces.length;t<o;t++){let i=this.faces[t],s=this.vertices[i.a],l=this.vertices[i.b],c=this.vertices[i.c];r.subVectors(c,l),e.subVectors(s,l),r.cross(e),r.normalize(),i.normal.copy(r)}}computeVertexNormals(r=!0){let e=new Array(this.vertices.length);for(let t=0,o=this.vertices.length;t<o;t++)e[t]=new ie.Vector3;if(r){let t=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],u=this.vertices[l.b],a=this.vertices[l.c];t.subVectors(a,u),o.subVectors(c,u),t.cross(o),e[l.a].add(t),e[l.b].add(t),e[l.c].add(t)}}else{this.computeFaceNormals();for(let t=0,o=this.faces.length;t<o;t++){let i=this.faces[t];e[i.a].add(i.normal),e[i.b].add(i.normal),e[i.c].add(i.normal)}}for(let t=0,o=this.vertices.length;t<o;t++)e[t].normalize();for(let t=0,o=this.faces.length;t<o;t++){let i=this.faces[t],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 r=0,e=this.faces.length;r<e;r++){let t=this.faces[r],o=t.vertexNormals;o.length===3?(o[0].copy(t.normal),o[1].copy(t.normal),o[2].copy(t.normal)):(o[0]=t.normal.clone(),o[1]=t.normal.clone(),o[2]=t.normal.clone())}this.faces.length>0&&(this.normalsNeedUpdate=!0)}computeMorphNormals(){for(let e=0,t=this.faces.length;e<t;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 r=new bo;r.faces=this.faces;for(let e=0,t=this.morphTargets.length;e<t;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 ie.Vector3,a={a:new ie.Vector3,b:new ie.Vector3,c:new ie.Vector3};i.push(u),s.push(a)}}let o=this.morphNormals[e];r.vertices=this.morphTargets[e].vertices,r.computeFaceNormals(),r.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,t=this.faces.length;e<t;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(r,e,t=0){if(!(r&&r.isGeometry)){console.error("THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.",r);return}let o,i=this.vertices.length,s=this.vertices,l=r.vertices,c=this.faces,u=r.faces,a=this.colors,d=r.colors;e!==void 0&&(o=new ie.Matrix3().getNormalMatrix(e));for(let p=0,f=l.length;p<f;p++){let h=l[p].clone();e!==void 0&&h.applyMatrix4(e),s.push(h)}for(let p=0,f=d.length;p<f;p++)a.push(d[p].clone());for(let p=0,f=u.length;p<f;p++){let m=u[p],h,y,g=m.vertexNormals,v=m.vertexColors,w=new Jn(m.a+i,m.b+i,m.c+i);w.normal.copy(m.normal),o!==void 0&&w.normal.applyMatrix3(o).normalize();for(let b=0,S=g.length;b<S;b++)h=g[b].clone(),o!==void 0&&h.applyMatrix3(o).normalize(),w.vertexNormals.push(h);w.color.copy(m.color);for(let b=0,S=v.length;b<S;b++)y=v[b],w.vertexColors.push(y.clone());w.materialIndex=m.materialIndex+t,c.push(w)}for(let p=0,f=r.faceVertexUvs.length;p<f;p++){let m=r.faceVertexUvs[p];this.faceVertexUvs[p]===void 0&&(this.faceVertexUvs[p]=[]);for(let h=0,y=m.length;h<y;h++){let g=m[h],v=[];for(let w=0,b=g.length;w<b;w++)v.push(g[w].clone());this.faceVertexUvs[p].push(v)}}}mergeMesh(r){if(!(r&&r.isMesh)){console.error("THREE.Geometry.mergeMesh(): mesh not an instance of THREE.Mesh.",r);return}r.matrixAutoUpdate&&r.updateMatrix(),this.merge(r.geometry,r.matrix)}mergeVertices(r=4){let e={},t=[],o=[],i=Math.pow(10,r);for(let c=0,u=this.vertices.length;c<u;c++){let a=this.vertices[c],d=Math.round(a.x*i)+"_"+Math.round(a.y*i)+"_"+Math.round(a.z*i);e[d]===void 0?(e[d]=c,t.push(this.vertices[c]),o[c]=t.length-1):o[c]=o[e[d]]}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 d=[a.a,a.b,a.c];for(let p=0;p<3;p++)if(d[p]===d[(p+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,d=this.faceVertexUvs.length;a<d;a++)this.faceVertexUvs[a].splice(u,1)}let l=this.vertices.length-t.length;return this.vertices=t,l}setFromPoints(r){this.vertices=[];for(let e=0,t=r.length;e<t;e++){let o=r[e];this.vertices.push(new ie.Vector3(o.x,o.y,o.z||0))}return this}sortFacesByMaterialIndex(){let r=this.faces,e=r.length;for(let c=0;c<e;c++)r[c]._id=c;function t(c,u){return c.materialIndex-u.materialIndex}r.sort(t);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=r[c]._id;s&&s.push(o[u]),l&&l.push(i[u])}s&&(this.faceVertexUvs[0]=s),l&&(this.faceVertexUvs[1]=l)}toJSON(){let r={metadata:{version:4.5,type:"Geometry",generator:"Geometry.toJSON"}};if(r.uuid=this.uuid,r.type=this.type,this.name!==""&&(r.name=this.name),this.parameters!==void 0){let m=this.parameters;for(let h in m)m[h]!==void 0&&(r[h]=m[h]);return r}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 t=[],o=[],i={},s=[],l={},c=[],u={};for(let m=0;m<this.faces.length;m++){let h=this.faces[m],y=!0,g=!1,v=this.faceVertexUvs[0][m]!==void 0,w=h.normal.length()>0,b=h.vertexNormals.length>0,S=h.color.r!==1||h.color.g!==1||h.color.b!==1,A=h.vertexColors.length>0,_=0;if(_=a(_,0,0),_=a(_,1,y),_=a(_,2,g),_=a(_,3,v),_=a(_,4,w),_=a(_,5,b),_=a(_,6,S),_=a(_,7,A),t.push(_),t.push(h.a,h.b,h.c),t.push(h.materialIndex),v){let x=this.faceVertexUvs[0][m];t.push(f(x[0]),f(x[1]),f(x[2]))}if(w&&t.push(d(h.normal)),b){let x=h.vertexNormals;t.push(d(x[0]),d(x[1]),d(x[2]))}if(S&&t.push(p(h.color)),A){let x=h.vertexColors;t.push(p(x[0]),p(x[1]),p(x[2]))}}function a(m,h,y){return y?m|1<<h:m&~(1<<h)}function d(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 p(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 r.data={},r.data.vertices=e,r.data.normals=o,s.length>0&&(r.data.colors=s),c.length>0&&(r.data.uvs=[c]),r.data.faces=t,r}clone(){return new bo().copy(this)}copy(r){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=r.name;let e=r.vertices;for(let p=0,f=e.length;p<f;p++)this.vertices.push(e[p].clone());let t=r.colors;for(let p=0,f=t.length;p<f;p++)this.colors.push(t[p].clone());let o=r.faces;for(let p=0,f=o.length;p<f;p++)this.faces.push(o[p].clone());for(let p=0,f=r.faceVertexUvs.length;p<f;p++){let m=r.faceVertexUvs[p];this.faceVertexUvs[p]===void 0&&(this.faceVertexUvs[p]=[]);for(let h=0,y=m.length;h<y;h++){let g=m[h],v=[];for(let w=0,b=g.length;w<b;w++){let S=g[w];v.push(S.clone())}this.faceVertexUvs[p].push(v)}}let i=r.morphTargets;for(let p=0,f=i.length;p<f;p++){let m={};if(m.name=i[p].name,i[p].vertices!==void 0){m.vertices=[];for(let h=0,y=i[p].vertices.length;h<y;h++)m.vertices.push(i[p].vertices[h].clone())}if(i[p].normals!==void 0){m.normals=[];for(let h=0,y=i[p].normals.length;h<y;h++)m.normals.push(i[p].normals[h].clone())}this.morphTargets.push(m)}let s=r.morphNormals;for(let p=0,f=s.length;p<f;p++){let m={};if(s[p].vertexNormals!==void 0){m.vertexNormals=[];for(let h=0,y=s[p].vertexNormals.length;h<y;h++){let g=s[p].vertexNormals[h],v={};v.a=g.a.clone(),v.b=g.b.clone(),v.c=g.c.clone(),m.vertexNormals.push(v)}}if(s[p].faceNormals!==void 0){m.faceNormals=[];for(let h=0,y=s[p].faceNormals.length;h<y;h++)m.faceNormals.push(s[p].faceNormals[h].clone())}this.morphNormals.push(m)}let l=r.skinWeights;for(let p=0,f=l.length;p<f;p++)this.skinWeights.push(l[p].clone());let c=r.skinIndices;for(let p=0,f=c.length;p<f;p++)this.skinIndices.push(c[p].clone());let u=r.lineDistances;for(let p=0,f=u.length;p<f;p++)this.lineDistances.push(u[p]);let a=r.boundingBox;a!==null&&(this.boundingBox=a.clone());let d=r.boundingSphere;return d!==null&&(this.boundingSphere=d.clone()),this.elementsNeedUpdate=r.elementsNeedUpdate,this.verticesNeedUpdate=r.verticesNeedUpdate,this.uvsNeedUpdate=r.uvsNeedUpdate,this.normalsNeedUpdate=r.normalsNeedUpdate,this.colorsNeedUpdate=r.colorsNeedUpdate,this.lineDistancesNeedUpdate=r.lineDistancesNeedUpdate,this.groupsNeedUpdate=r.groupsNeedUpdate,this}toBufferGeometry(){let r=new Dc().fromGeometry(this),e=new ie.BufferGeometry,t=new Float32Array(r.vertices.length*3);if(e.setAttribute("position",new ie.BufferAttribute(t,3).copyVector3sArray(r.vertices)),r.normals.length>0){let o=new Float32Array(r.normals.length*3);e.setAttribute("normal",new ie.BufferAttribute(o,3).copyVector3sArray(r.normals))}if(r.colors.length>0){let o=new Float32Array(r.colors.length*3);e.setAttribute("color",new ie.BufferAttribute(o,3).copyColorsArray(r.colors))}if(r.uvs.length>0){let o=new Float32Array(r.uvs.length*2);e.setAttribute("uv",new ie.BufferAttribute(o,2).copyVector2sArray(r.uvs))}if(r.uvs2.length>0){let o=new Float32Array(r.uvs2.length*2);e.setAttribute("uv2",new ie.BufferAttribute(o,2).copyVector2sArray(r.uvs2))}e.groups=r.groups;for(let o in r.morphTargets){let i=[],s=r.morphTargets[o];for(let l=0,c=s.length;l<c;l++){let u=s[l],a=new ie.Float32BufferAttribute(u.data.length*3,3);a.name=u.name,i.push(a.copyVector3sArray(u.data))}e.morphAttributes[o]=i}if(r.skinIndices.length>0){let o=new ie.Float32BufferAttribute(r.skinIndices.length*4,4);e.setAttribute("skinIndex",o.copyVector4sArray(r.skinIndices))}if(r.skinWeights.length>0){let o=new ie.Float32BufferAttribute(r.skinWeights.length*4,4);e.setAttribute("skinWeight",o.copyVector4sArray(r.skinWeights))}return r.boundingSphere!==null&&(e.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(e.boundingBox=r.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(r){return console.warn("THREE.Geometry: .applyMatrix() has been renamed to .applyMatrix4()."),this.applyMatrix4(r)}dispose(){this.dispatchEvent({type:"dispose"})}static createBufferGeometryFromObject(r){let e=new ie.BufferGeometry,t=r.geometry;if(r.isPoints||r.isLine){let o=new ie.Float32BufferAttribute(t.vertices.length*3,3),i=new ie.Float32BufferAttribute(t.colors.length*3,3);if(e.setAttribute("position",o.copyVector3sArray(t.vertices)),e.setAttribute("color",i.copyColorsArray(t.colors)),t.lineDistances&&t.lineDistances.length===t.vertices.length){let s=new ie.Float32BufferAttribute(t.lineDistances.length,1);e.setAttribute("lineDistance",s.copyArray(t.lineDistances))}t.boundingSphere!==null&&(e.boundingSphere=t.boundingSphere.clone()),t.boundingBox!==null&&(e.boundingBox=t.boundingBox.clone())}else r.isMesh&&(e=t.toBufferGeometry());return e}};bo.prototype.isGeometry=!0;var Dc=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(r){let e=[],t,o,i,s=r.faces;for(o=0;o<s.length;o++){let l=s[o];l.materialIndex!==i&&(i=l.materialIndex,t!==void 0&&(t.count=o*3-t.start,e.push(t)),t={start:o*3,materialIndex:i})}t!==void 0&&(t.count=o*3-t.start,e.push(t)),this.groups=e}fromGeometry(r){let e=r.faces,t=r.vertices,o=r.faceVertexUvs,i=o[0]&&o[0].length>0,s=o[1]&&o[1].length>0,l=r.morphTargets,c=l.length,u;if(c>0){u=[];for(let g=0;g<c;g++)u[g]={name:l[g].name,data:[]};this.morphTargets.position=u}let a=r.morphNormals,d=a.length,p;if(d>0){p=[];for(let g=0;g<d;g++)p[g]={name:a[g].name,data:[]};this.morphTargets.normal=p}let f=r.skinIndices,m=r.skinWeights,h=f.length===t.length,y=m.length===t.length;t.length>0&&e.length===0&&console.error("THREE.DirectGeometry: Faceless geometries are not supported.");for(let g=0;g<e.length;g++){let v=e[g];this.vertices.push(t[v.a],t[v.b],t[v.c]);let w=v.vertexNormals;if(w.length===3)this.normals.push(w[0],w[1],w[2]);else{let S=v.normal;this.normals.push(S,S,S)}let b=v.vertexColors;if(b.length===3)this.colors.push(b[0],b[1],b[2]);else{let S=v.color;this.colors.push(S,S,S)}if(i===!0){let S=o[0][g];S!==void 0?this.uvs.push(S[0],S[1],S[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv ",g),this.uvs.push(new ie.Vector2,new ie.Vector2,new ie.Vector2))}if(s===!0){let S=o[1][g];S!==void 0?this.uvs2.push(S[0],S[1],S[2]):(console.warn("THREE.DirectGeometry.fromGeometry(): Undefined vertexUv2 ",g),this.uvs2.push(new ie.Vector2,new ie.Vector2,new ie.Vector2))}for(let S=0;S<c;S++){let A=l[S].vertices;u[S].data.push(A[v.a],A[v.b],A[v.c])}for(let S=0;S<d;S++){let A=a[S].vertexNormals[g];p[S].data.push(A.a,A.b,A.c)}h&&this.skinIndices.push(f[v.a],f[v.b],f[v.c]),y&&this.skinWeights.push(m[v.a],m[v.b],m[v.c])}return this.computeGroups(r),this.verticesNeedUpdate=r.verticesNeedUpdate,this.normalsNeedUpdate=r.normalsNeedUpdate,this.colorsNeedUpdate=r.colorsNeedUpdate,this.uvsNeedUpdate=r.uvsNeedUpdate,this.groupsNeedUpdate=r.groupsNeedUpdate,r.boundingSphere!==null&&(this.boundingSphere=r.boundingSphere.clone()),r.boundingBox!==null&&(this.boundingBox=r.boundingBox.clone()),this}},Jn=class{constructor(r,e,t,o,i,s=0){this.a=r,this.b=e,this.c=t,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(r){this.a=r.a,this.b=r.b,this.c=r.c,this.normal.copy(r.normal),this.color.copy(r.color),this.materialIndex=r.materialIndex;for(let e=0,t=r.vertexNormals.length;e<t;e++)this.vertexNormals[e]=r.vertexNormals[e].clone();for(let e=0,t=r.vertexColors.length;e<t;e++)this.vertexColors[e]=r.vertexColors[e].clone();return this}};var Pw=["a","b","c"];function Iw(n,r){switch(r){case"c":return n.c;case"b":return n.b;case"a":default:return n.a}}function Gc(n,r,e){let t=Math.min(n,r),o=Math.max(n,r),i=t+"_"+o;return e.get(i)}function Rc(n,r,e,t,o,i){let s=Math.min(n,r),l=Math.max(n,r),c=s+"_"+l,u;if(t.has(c))u=t.get(c);else{let a=e[s],d=e[l];u={a,b:d,newEdge:null,faces:[]},t.set(c,u)}u.faces.push(o),i[n].edges.push(u),i[r].edges.push(u)}function Cw(n,r,e,t){let o,i,s;for(o=0,i=n.length;o<i;o++)e[o]={edges:[]};for(o=0,i=r.length;o<i;o++)s=r[o],Rc(s.a,s.b,n,t,s,e),Rc(s.b,s.c,n,t,s,e),Rc(s.c,s.a,n,t,s,e)}function rl(n,r,e,t,o){n.push(new Jn(r,e,t,void 0,void 0,o))}function ei(n,r){return Math.abs(r-n)/2+Math.min(n,r)}function ol(n,r,e,t){n.push([r.clone(),e.clone(),t.clone()])}var nl=class{constructor(r=1){this.subdivisions=r}modify(r){r instanceof Kr.BufferGeometry?r=new bo().fromBufferGeometry(r):r=r.clone(),r.mergeVertices();let e=this.subdivisions;for(;e-- >0;)this._smooth(r);return r.computeFaceNormals(),r.computeVertexNormals(),r}_smooth(r){let e=new Kr.Vector3,t,o,i,s,l,c=r.vertices,u=r.faces,a=r.faceVertexUvs[0],d=a!==void 0&&a.length>0,p=[],f=new Map;Cw(c,u,p,f);let m=[],h,y,g,v,w,b,S;for(let k of Array.from(f.keys())){for(y=f.get(k),g=new Kr.Vector3,w=3/8,b=1/8,S=y.faces.length,S!=2&&(w=.5,b=0,S!=1),g.addVectors(y.a,y.b).multiplyScalar(w),e.set(0,0,0),s=0;s<S;s++){for(v=y.faces[s],l=0;l<3&&(h=c[Iw(v,Pw[l])],!(h!==y.a&&h!==y.b));l++);h&&e.add(h)}e.multiplyScalar(b),g.add(e),y.newEdge=m.length,m.push(g)}let A,_,x,P,O,I,T,N=[];for(o=0,i=c.length;o<i;o++){for(I=c[o],O=p[o].edges,t=O.length,t==3?A=3/16:t>3&&(A=3/(8*t)),_=1-t*Number(A),x=A,t<=2&&(t==2?(_=3/4,x=1/8):t==1||t==0),T=I.clone().multiplyScalar(_),e.set(0,0,0),s=0;s<t;s++)P=O[s],h=P.a!==I?P.a:P.b,e.add(h);e.multiplyScalar(Number(x)),T.add(e),N.push(T)}let L=N.concat(m),U=N.length,K,J,se,z=[],W=[],q,j,M,B,D=new Kr.Vector2,F=new Kr.Vector2,Y=new Kr.Vector2;for(o=0,i=u.length;o<i;o++)v=u[o],K=Number(Gc(v.a,v.b,f).newEdge)+U,J=Number(Gc(v.b,v.c,f).newEdge)+U,se=Number(Gc(v.c,v.a,f).newEdge)+U,rl(z,K,J,se,v.materialIndex),rl(z,v.a,K,se,v.materialIndex),rl(z,v.b,J,K,v.materialIndex),rl(z,v.c,se,J,v.materialIndex),d&&(q=a[o],j=q[0],M=q[1],B=q[2],D.set(ei(j.x,M.x),ei(j.y,M.y)),F.set(ei(M.x,B.x),ei(M.y,B.y)),Y.set(ei(j.x,B.x),ei(j.y,B.y)),ol(W,D,F,Y),ol(W,j,D,Y),ol(W,M,F,D),ol(W,B,Y,F));r.vertices=L,r.faces=z,d&&(r.faceVertexUvs[0]=W)}};var ot=new Cr.Vector3,qm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=n.geometry??r?.geometry??new Cr.BufferGeometry().copy(new Cr.BoxGeometry(100,100,100)),t;r===void 0?(e.computeBoundingBox(),e.boundingBox.getSize(ot),t={width:ot.x,height:ot.y,depth:ot.z,subdivisions:0}):t=r.parameters;let o={...t,...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:r,height:e,depth:t,subdivisions:o}=n.parameters,i=n.geometry??new Cr.BufferGeometry().copy(new Cr.BoxGeometry(100,100,100)),s=i.userData.parameters;s===void 0?(i.computeBoundingBox(),i.boundingBox.getSize(ot)):ot.set(s.width,s.height,s.depth),(r!==ot.x||e!==ot.y||t!==ot.z)&&i.scale(ot.x===0?1:r/ot.x,ot.y===0?1:e/ot.y,ot.z===0?1:t/ot.z);let l=i.originalGeometry;return o>0?(l===void 0||s?.subdivisions!==o)&&(l===void 0&&(l=i),i=new nl(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,r,e){new Cr.BufferGeometryLoader(e).load(n,o=>{let i=this.normalizeInputs({geometry:o});o.boundingBox.getSize(ot);let s=100/ot.x;Object.assign(i.parameters,{width:100,height:ot.y*s,depth:ot.z*s}),r(this.build(i))})}};var $m=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,height:e,spikes:t,cornerRadius:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}=n.parameters,c=n.shape,u=r*.5,a=e*.5,d=0,p=0,f=2*Math.PI/t;for(let h=0;h<t;h++){let y=f*h,g=d+Math.sin(y)*u,v=p+Math.cos(y)*a;c.addPoint(c.createPoint(g,v))}c.isClosed=!0;for(let h=0,y=c.points.length;h<y;h++)c.points[h].roundness=o;c.roundness=o,c.update();let m=Gt.create({shape:c,parameters:{roundness:o,depth:i,extrudeBevelSize:s,extrudeBevelSegments:l}});return Object.assign(m,{userData:{...n,type:"PolygonGeometry"}})}};var Se=require("three"),Ym=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,height:e,depth:t,radialSegments:o,heightSegments:i,openEnded:s,cornerRadius:l,cornerSegments:c}=n.parameters,u=new jc(r*.5,e,o,i,s,l,c);return u.scale(1,1,t/r),Object.assign(u,{userData:{...n,type:"PyramidGeometry"}})}};function rs(n,r,e){e.x=n.x*r.x,e.y=n.y,e.z=n.x*r.y}function Vc(n,r,e,t,o,i){let s=r.clone().sub(n),l=e.clone().sub(n),c=s.angleTo(l);if(s.normalize(),l.normalize(),t===o){let u=s.add(l).normalize();i.copy(n).addScaledVector(u,t/Math.sin(c/2))}else{let u=s.angleTo(l);i.copy(n),i.addScaledVector(s,o/Math.sin(u)),i.addScaledVector(l,t/Math.sin(u))}}function Nw(n,r,e){let t=n.clone().sub(r),o=e.clone().sub(r);return t.projectOnVector(o),t.add(r)}var jc=class extends Se.BufferGeometry{constructor(r=.5,e=1,t=4,o=1,i=!1,s=0,l=4){super(),t=Math.floor(Math.max(3,t)),o=Math.floor(o),l=Math.floor(l);let c=[],u=[],a=[],d=[],p=0,f=e/2,m=Math.PI/t,h=r*Math.cos(Math.PI/t),y=2*Math.PI/t,g=(t-2)*Math.PI/t,v=Math.PI-g,w=new Se.Vector3(0,-f,0),b=new Se.Vector3(0,f,0),S=new Se.Vector2(r,-f),A=new Se.Vector2(h,-f),_=new Se.Vector2(0,b.y).sub(A),x=new Se.Vector2(0,b.y).sub(S),P=new Se.Vector2(_.y,-_.x).normalize(),O=new Se.Vector2(x.y,-x.x).normalize(),T=r*Math.cos(Math.PI/t)*Math.tan((Math.PI-_.angle())/2)-1e-8;s=Math.min(s,T);let N;{let W=new Se.Vector3(P.x,P.y,0),q=new Se.Vector3(Math.cos(y)*W.x,W.y,Math.sin(y)*W.x);N=W.angleTo(q)}let L=s/Math.tan((Math.PI-_.angle())/2),U=s/Math.tan((Math.PI-N)/2),K=new Se.Vector3;if(!i){u.push(w.x,w.y,w.z),a.push(0,-1,0),d.push(0,0);let W=p++,q=[],j=S.clone(),M=L/Math.cos(Math.PI/t);j.x-=M;for(let B=0;B<t;B++){let D=B/t*Math.PI*2+m,F=new Se.Vector2(Math.sin(D),Math.cos(D));rs(j,F,K),u.push(K.x,K.y,K.z),a.push(0,-1,0),d.push(0,0),q.push(p++)}for(let B=0;B<q.length;B++)c.push(q[B],W,q[(B+1)%q.length])}let J=[];{let W=new Se.Vector3,q=new Se.Vector3,j=new Se.Vector3,M=new Se.Vector3,B=new Se.Vector3,D=new Se.Vector3;for(let F=0;F<t;F++){let Y=F/t*Math.PI*2+m,k=(F+.5)/t*Math.PI*2+m,V=(F+1)/t*Math.PI*2+m,G=new Se.Vector2(Math.sin(Y),Math.cos(Y)),H=new Se.Vector2(Math.sin(k),Math.cos(k)),$=new Se.Vector2(Math.sin(V),Math.cos(V));rs(S,G,q),rs(S,$,j),rs(P,H,W),Vc(b,q,j,U,U,M),u.push(M.x,M.y,M.z),Vc(q,b,j,U,L,B),u.push(B.x,B.y,B.z),Vc(j,q,b,L,U,D),u.push(D.x,D.y,D.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),d.push(0,0),d.push(0,0),d.push(0,0);let ee=p++,ae=p++,te=p++;if(c.push(ee,ae,te),s>0){{let Z=q.clone().add(j).multiplyScalar(.5),he=b.clone().sub(Z).normalize(),ge=w.clone().sub(Z).normalize().add(he).normalize().multiplyScalar(-1),vt=D.clone().sub(B);se(Z,vt,ge,_.angle())}let re,oe;{let Z=new Se.Vector3;rs(O,$,Z);let he=D.clone().add(M).multiplyScalar(.5);he=Nw(he,j,b);let ue=D.clone().sub(M);[re,oe]=se(he,ue,Z,N,M.y)}{let Z=re,he=Z.clone().setY(0).normalize(),ue=new Se.Vector3(0,-1,0),ge=he.clone().cross(ue);z(Z,he,ue,ge)}J.concat(oe);{let Z=_.angle(),he=Math.PI-Z,ue=b.clone();ue.y-=s/Math.sin(Z-Math.PI/2);let ge=new Se.Vector3,vt=[];for(let Le=0;Le<l;Le++){let Me=[],Ct=Math.PI/2-he*Le/l,to=Math.cos(Ct),Yt=Math.sin(Ct),nn=k;for(let Ul=0;Ul<=Le;Ul++){let zl=Math.cos(nn),Ci=Math.sin(nn);W.x=to*Ci,W.y=Yt,W.z=to*zl,ge.copy(ue).addScaledVector(W,s),u.push(ge.x,ge.y,ge.z),a.push(W.x,W.y,W.z),d.push(0,0),Me.push(p++),nn+=Math.PI*2/Le/t}vt.push(Me)}oe.reverse(),vt.push(oe);let _e=vt.length-1;for(let Le=0;Le<_e;Le++){let Me=vt[Le],Ct=vt[Le+1],to=Me.length-1;c.push(Ct[1],Me[0],Ct[0]);for(let Yt=1;Yt<=to;Yt++)c.push(Me[Yt],Me[Yt-1],Ct[Yt]),c.push(Ct[Yt+1],Me[Yt],Ct[Yt])}}}}}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(d,2));function se(W,q,j,M,B){let D=-M/2,F=(Math.PI-M)/2,Y=q.clone().normalize().cross(j);W.addScaledVector(j,-s/Math.sin(F));let k=new Se.Vector3,V=new Se.Vector3,G=1,H=p,$=[];for(let ee=0;ee<=l;ee++){let ae=D+ee/l*M;V.set(0,0,0),V.addScaledVector(Y,Math.sin(ae)),V.addScaledVector(j,Math.cos(ae));for(let te=0;te<=G;te++){let re=te/G-.5;if(k.copy(W),k.addScaledVector(q,re),k.addScaledVector(V,s),B!=null){let oe=Math.max(0,k.y-B);k.addScaledVector(q,-oe/q.y)}u.push(k.x,k.y,k.z),a.push(V.x,V.y,V.z),d.push(0,0),te===0&&$.push(p),p++}}for(let ee=0;ee<l;ee++)for(let ae=0;ae<G;ae++){let te=H+ae+(G+1)*ee,re=te+(G+1),oe=re+1,Z=te+1;c.push(te,re,Z),c.push(re,oe,Z)}return[W.clone().addScaledVector(q,.5),$]}function z(W,q,j,M){let B=Math.PI/2,D=x.angle()-B,F=[],Y=new Se.Vector3,k=new Se.Vector3;for(let G=0;G<=l;G++){let H=[],$=G/l;for(let ee=0;ee<=G;ee++){let te=((G?ee/G:0)-.5)*v,re=Math.cos(te),oe=Math.sin(te),Z=Math.atan(Math.tan(D)*re),he=(B+Z)*$,ue=Math.cos(he),ge=Math.sin(he);Y.set(0,0,0),Y.addScaledVector(q,ge*re),Y.addScaledVector(j,ue),Y.addScaledVector(M,ge*oe),k.copy(W).addScaledVector(Y,s),u.push(k.x,k.y,k.z),a.push(Y.x,Y.y,Y.z),d.push(0,0),H.push(p++)}F.push(H)}let V=F.length-1;for(let G=0;G<V;G++){let H=F[G],$=F[G+1],ee=H.length-1;c.push(H[0],$[1],$[0]);for(let ae=1;ae<=ee;ae++)c.push(H[ae-1],H[ae],$[ae]),c.push(H[ae],$[ae+1],$[ae])}}}};var Xm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.parameters??{width:100,depth:0,cornerRadius:[0,0,0,0],cornerType:1,extrudeBevelSize:0,extrudeBevelSegments:1},n.parameters),t=Object.assign(r?.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:t}}static build(n){let r=n.shape,{width:e,height:t,cornerRadius:o,cornerType:i,depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}=n.parameters,u={x:e*.5,y:t*.5},a={x:-u.x,y:-u.y},d={x:u.x,y:u.y};function p(b,S,A){return S>e&&A>t?Math.min(b*e/S,b*t/A):S>e?b*e/S:A>t?b*t/A:b}let f=[];f[0]=o[0]===0?0:p(o[0],o[0]+o[3],o[0]+o[1]),f[1]=o[1]===0?0:p(o[1],o[1]+o[2],o[1]+o[0]),f[2]=o[2]===0?0:p(o[2],o[2]+o[1],o[2]+o[3]),f[3]=o[3]===0?0:p(o[3],o[3]+o[0],o[3]+o[2]);let m=a.x,h=d.x,y=d.y,g=a.y;r.addPoint(r.createPoint(m,y)),r.addPoint(r.createPoint(h,y)),r.addPoint(r.createPoint(h,g)),r.addPoint(r.createPoint(m,g)),r.isClosed=!0;let v=!0;for(let b=0,S=r.points.length;b<S;b++)r.points[b].roundness=f[b],b>0&&f[b]!==f[b-1]&&(v=!1);v&&(r.roundness=f[0]),r.useCubicForRoundedCorners=i!==1,r.update();let w=Gt.create({shape:r,parameters:{depth:s,extrudeBevelSize:l,extrudeBevelSegments:c}});return Object.assign(w,{userData:{...n,type:"RectangleGeometry"}})}};var Km=require("three"),Zm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r=100,height:e=r,depth:t=r,widthSegments:o=64,heightSegments:i=64,phiStart:s,phiLength:l,thetaStart:c,thetaLength:u}=n.parameters,a=new Km.SphereGeometry(.5*r,o,i,s,l,c,u);return a.scale(1,e/r,t/r),Object.assign(a,{userData:{...n,type:"SphereGeometry"}})}};var Qm=require("three"),Jm=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r=100,height:e=r,widthSegments:t=8,heightSegments:o=8}=n.parameters,i=new Qm.PlaneGeometry(r,e,t,o);return i.scale(1,1,1),Object.assign(i,{userData:{...n,type:"PlaneGeometry"}})}};var So=require("three"),eh=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,height:e,depth:t,angle:o,cornerRadius:i,cornerSegments:s}=n.parameters,l=new Fc(r,e,t,o,i,s);return Object.assign(l,{userData:{...n,type:"BackdropGeometry"}})}},Fc=class extends So.BufferGeometry{constructor(r=1,e=1,t=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 d=[],p=Math.PI/2,f=(k=0,V=0,G=0)=>new So.Vector3(k,V,G),m=f(),h=f(),[y,g,v]=[e/2,r/2,t/2],w=-g,b=+g,[S,A,_]=[f(w,-y,+v),f(w,-y,-v),f(w,+y,-v)],x=(k,V=!1)=>Math.sin(k-Math.PI/(1+ +V)),P=(k,V=!1)=>Math.cos(k-Math.PI/(1+ +V));_.y=Math.sin(o)*e-y;let O=Math.cos(o)*e-v,I=S.z-a;o<=p?(_.z=Math.min(O,I),_.z==I&&(_.y-=(O-I)/Math.tan(p-o))):A.z=Math.min(A.z-O-v,S.z-a),m.subVectors(S,A),h.subVectors(_,A);let T=Math.min(m.length(),h.length())*i/100,N=T*Math.tan(o/2),L=T/Math.cos(o/2),U=m.clone().normalize().add(h.normalize()).setLength(L).add(A);m.set(0,x(o,!0),P(o,!0)),d.push([_,m.clone()]);let K=(Math.PI-o)/s;for(let k=0;k<=s;k++){let V=p+o+k*K;m.set(0,Math.sin(V)*N,Math.cos(V)*N),m.add(U),h.set(0,x(V),P(V)),d.push([m.clone(),h.clone()])}d.push([S,f(0,1,0)]);let J=Math.sin(K/2)*N*2,se=d.length-1,z=d[0][0].distanceTo(d[1][0]),W=d[se-1][0].distanceTo(d[se][0]),q=z+J*s+W;d[0].push(1);for(let k=0;k<=s;k++)d[k+1].push(1-(z+k*J)/q);d[se].push(0);let[j,M,B]=d[0],D,F,Y;for(let k=1;k<d.length;k++)[D,F,Y]=d[k],l.push(w,j.y,j.z,w,D.y,D.z,b,j.y,j.z,b,j.y,j.z,w,D.y,D.z,b,D.y,D.z),c.push(0,M.y,M.z,0,F.y,F.z,0,M.y,M.z,0,M.y,M.z,0,F.y,F.z,0,F.y,F.z),u.push(0,B,0,Y,1,B,1,B,0,Y,1,Y),[j,M,B]=[D,F,Y];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 th=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,height:e,innerRadiusPercent:t,spikes:o,cornerRadius:i,angle:s,depth:l,extrudeBevelSize:c,extrudeBevelSegments:u}=n.parameters,a=n.shape,d=r*.5,p=e*.5,f=0,m=0,h=s*Math.PI/360/o,y=Math.PI/2*3*-1,g=d*t/100,v=p*t/100;if(o===3&&t===50){h=2*Math.PI/o;for(let b=0;b<o;b++){let S=h*b,A=f+Math.sin(S)*d,_=m+Math.cos(S)*p;a.addPoint(a.createPoint(A,_))}}else for(let b=0;b<o;b++){let S=f+Math.cos(y)*d,A=m+Math.sin(y)*p;a.addPoint(a.createPoint(S,A)),y+=h,S=f+Math.cos(y)*g,A=m+Math.sin(y)*v,b<=o,a.addPoint(a.createPoint(S,A)),y+=h}a.isClosed=!0;for(let b=0,S=a.points.length;b<S;b++)a.points[b].roundness=i;a.roundness=i,a.update();let w=Gt.create({shape:a,parameters:{roundness:i,depth:l,extrudeBevelSize:c,extrudeBevelSegments:u}});return Object.assign(w,{userData:{...n,type:"StarGeometry"}})}};var rh=require("three"),oh=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,height:e}=n.parameters,t=new rh.PlaneGeometry(r,e);return Object.assign(t,{userData:{...n,type:"TextFrameGeometry"}})}};var nh=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.parameters??{width:100,radialSegments:32,tubularSegments:64,arc:Math.PI*2,cornerRadius:30,cornerSegments:8},n.parameters),t=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:t,height:o,depth:i})}}static build(n){let{width:r,height:e,depth:t,radialSegments:o,tubularSegments:i,arc:s,cornerRadius:l,cornerSegments:c}=n.parameters,u=Ew(r,e,t,r*.5,s,i,0,0,o,l,c);return u.scale(1,e/r,1),Object.assign(u,{userData:{...n,type:"TorusGeometry"}})}};function Ew(n,r,e,t,o,i,s,l,c,u,a){return[r,e]=[e,r],s=r/2,o/=2*Math.PI,o==1&&(u=0),new Ho(!0,n,r,e,t,o,i,s,l,c,u,a)}var ih=require("three"),sh=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r,tube:e,tubularSegments:t,radialSegments:o,p:i,q:s}=n.parameters,l=r*.5;l!==e&&(l-=e);let c=new ih.TorusKnotGeometry(l,e,t,o,i,s);return Object.assign(c,{userData:{...n,type:"TorusKnotGeometry"}})}};var ah=class{static create(n){return this.build(this.normalizeInputs(n))}static normalizeInputs(n,r){let e=Object.assign({},r?.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:r=100,height:e,cornerRadius:t,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s,isRect:l}=n.parameters,c=n.shape,u=r*.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 p=0,f=c.points.length;p<f;p++)c.points[p].roundness=t;c.roundness=t,c.update();let d=Gt.create({shape:c,parameters:{roundness:t,depth:o,extrudeBevelSize:i,extrudeBevelSegments:s}});return Object.assign(d,{userData:{...n,type:"TriangleGeometry"}})}};var Wo=require("three"),lh=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Lw(){let n=new Wo.BufferGeometry;return n.setAttribute("position",new Wo.BufferAttribute(new Float32Array([]),3)),n.setIndex(new Wo.BufferAttribute(new Uint16Array([]),1)),n}var Mw=12,Bw=1,ti=class extends Wo.BufferGeometry{constructor(e,t){super();this.charWidths=[];this.charCoords=[];this.wrappedText=[];this.isLowResolution=!1;this.vectorShapes=[];this.userData={parameters:e,type:"TextGeometry"};let o=t.getFont(e.font);o?.isLoaded?(this.font=o,this.update(e)):this.updateFont(e.font,t).then(()=>{this.update(e),t?.requestRender()})}async updateFont(e,t){let o=t.getFont(e);o&&(this.font=o,await o.loadingPromise)}update(e){let t=this.font;if(this.userData={parameters:e,type:"TextGeometry"},!t?.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}=e,d=a===2?u.toUpperCase():a===3?u.toLowerCase():u,p=Dw(e,t,d),{shapes:f,charWidths:m,charCoords:h}=t.generateShapes(p,e),y=o*.5,g=i*.5,v=f.map(S=>new Te().fromShape(S));this.vectorShapes=v;let w=v.map(S=>Gt.create({shape:S,parameters:{depth:s,extrudeBevelSegments:c,extrudeBevelSize:l,windingRule:s<=0?Be.NONZERO:Be.ODD,subdivisions:this.isLowResolution&&s>0?Bw:Mw}})),b=w.length?(0,lh.mergeBufferGeometries)(w):Lw();b.translate(-y,g,0),this.dispose(),this.wrappedText=p,this.charCoords=h,this.charWidths=m,this.deleteAttribute("extrudeNormal"),Object.entries(b.attributes).forEach(([S,A])=>{this.setAttribute(S,A)}),this.setIndex(b.index),this.computeBoundingSphere()}clone(){let e=co(new Wo.BufferGeometry,ti.prototype);return e.copy(this),console.log("CloneGeometry",this,e),e}copy(e){return Object.entries(e.attributes).forEach(([t,o])=>{this.setAttribute(t,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 Dw(n,r,e){e=e??n.text;let t=[""],o="";for(let i of e)o+=i,i===" "||i===`
2
+ `?(t[t.length-1]+=o,o="",i===`
3
+ `&&t.push("")):r.getTextWidth(t[t.length-1]+o,n)>n.width&&(t[t.length-1].length&&t.push(""),r.getTextWidth(t[t.length-1]+o,n)>n.width&&(o.length===1?(t[t.length-1]+=o,o=""):(t[t.length-1]+=o.slice(0,-1),o=o[o.length-1],t.push(""))));return t[t.length-1]+=o,t}var De=require("three");var Gw,ri=new Promise(n=>{Gw=n});var ch=require("three");function qo(n,r,e){let t={parameters:n,type:n.type};if(n.type==="VectorGeometry"){let i=Te.createFromState(n.shape,n.width,n.height);t.shape=i}else if(n.type==="NonParametricGeometry")n.data.groups&&n.data.groups.forEach(i=>i.materialIndex=Math.max(i.materialIndex??0,0)),t.geometry=new ch.BufferGeometryLoader().parse(n);else{if(n.type==="SubdivGeometry")return new Ke(n,e);if(n.type==="TextGeometry")return new ti(n,r)}let o;try{o=Uc(t)}catch(i){console.error(i)}if(!o){let i=Te.createFromState(hn.defaultData(),100,100);t.shape=i,o=Uc(t)}return o}var dh=require("three"),Rw=new dh.Matrix4;function os(n,r,e,t){let o=n.position.array,i=n.normal.array,s=Rw.makeScale(r,e,t).invert().elements,l,c,u;for(var a=0,d=o.length;a<d;a+=3)o[a]*=r,o[a+1]*=e,o[a+2]*=t,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;n.position.needsUpdate=!0,n.normal.needsUpdate=!0}var il=new De.Box3,oi=new De.Vector3,de;ri.then(n=>{de=n});var uh=new Float32Array([10,10,0,-10,10,0,-10,-10,0,10,-10,0]),ph=new Uint32Array([0,1,2,3]),fh=new Uint8Array([4]),Ke=class extends De.BufferGeometry{constructor(e,t){super();this.data=e;this.flatShading=t;this.subdivPointer=0;this.rebuild(),this.freeSubdivPointer()}mutateDirectlyScaleBaked(e,t){this.freeSubdivPointer();let o=this.data.scaleBaked,i=io.div(t,o);this.subdividedGeometry&&os(this.subdividedGeometry.attributes,...i),this.originalGeometry&&os(this.originalGeometry.attributes,...i),this.data=e;let s=this.userData.parameters;this.userData.parameters={width:s.width*i[0],height:s.height*i[1],depth:s.depth*i[2]},this.originalGeometry.boundingSphere.center.multiply(oi.fromArray(i));let l=oi.set(s.width,s.height,s.depth).length();this.originalGeometry.boundingSphere.radius=l/2}ensureSubdivPointer(){return this.subdivPointer===0&&this.rebuild(),this.subdivPointer}rebuild(){let e,t,o;try{({originalGeometry:e,subdividedGeometry:t,subdivPointer:o}=Ke.build(this.data,void 0,!this.flatShading,void 0))}catch{e=new De.BoxGeometry(100,100,100),o=0}this.subdivPointer=o,this.originalGeometry=e,this.subdividedGeometry=t??void 0;let i=this.subdividedGeometry??this.originalGeometry;Object.assign(this,i),this.calcBoundingBox()}freeSubdivPointer(){this.subdivPointer&&(Ke.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0)}dispose(){super.dispose(),this.freeSubdivPointer()}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new De.Sphere,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=e.boundingSphere));let t=e.attributes.position,o=e.boundingSphere.center;il.setFromBufferAttribute(t),il.getCenter(o),e.boundingSphere.radius=o.distanceTo(il.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),il.getSize(oi);let i={width:oi.x,height:oi.y,depth:oi.z};return this.userData.parameters=i,i}static build(e,t,o,i){let s,l,c,u=e?.phongAngle??35;o===!1&&(u=-1),t&&(de.free_bvh(t),de.free_subdivision_surface(t));try{s=Ke.allocate(e,i)}catch(a){console.error(a,e),s=Ke.allocate({positionWASM:uh,indexWASM:ph,verticesPerFaceWASM:fh},i)}if(de.set_destination_refinement_level(s,0),l=Ke.buildLevel(s,!0,u),e.subdivisions>0)try{de.set_destination_refinement_level(s,e.subdivisions),c=Ke.buildLevel(s,!1,u)}catch{try{de.set_destination_refinement_level(s,e.subdivisions-1),c=Ke.buildLevel(s,!1,u)}catch{c=null}}else c=null;return{subdivPointer:s,originalGeometry:l,subdividedGeometry:c}}static primitiveToQuads(e,t,o){e.widthSegments>16&&(e.widthSegments=16),e.heightSegments>16&&(e.heightSegments=16),e.depthSegments>16&&(e.depthSegments=16),e.radialSegments>16&&(e.radialSegments=16),e.type==="DodecahedronGeometry"&&(e.detail=0);let i;if(e.type==="TorusGeometry"&&e.arc===Math.PI*2){let{width:d,height:p,depth:f,arc:m,tubularSegments:h,radialSegments:y}=e;i=new Ho(!0,d,f,p,d*.5,m/(2*Math.PI),h,f/2,0,y,0,0,!0)}else i=e.shape!==void 0?t.geometry:qo(e,o,!1);let s,l,c,u;({positions:s,triIndices:u}=Wc(i.getAttribute("position"),i.getIndex()));let a;if(e.type==="CylinderGeometry"&&e.cornerRadius===0&&e.hollow===0&&e.openEnded===!1){let d=e.radialSegments*e.heightSegments*3*2,p=d+e.radialSegments*3;a=[d,p]}return{indices:l,verticesPerFace:c}=qc(s,u,i,a),{positions:s,indices:l,verticesPerFace:c}}static allocate(e,t){let o,i,s,l=[],c=[];e.positionWASM&&e.positionWASM.length>0?(o=e.positionWASM,i=e.indexWASM,s=e.verticesPerFaceWASM):(o=uh,i=ph,s=fh);let u=o.length,a=i.length,d=s.length,p=o.length+l.length+c.length,f=i.length+s.length,m=p*Float32Array.BYTES_PER_ELEMENT+f*Uint32Array.BYTES_PER_ELEMENT,h=p*Float32Array.BYTES_PER_ELEMENT,y=f*Uint32Array.BYTES_PER_ELEMENT,g=de._malloc(m),v=new Float32Array(de.HEAPF32.buffer,g,p),w=new Uint32Array(de.HEAPU32.buffer,g+h,f);v.set(o,0),v.set(l,o.length),v.set(c,o.length+l.length),w.set(i,0),w.set(s,i.length);let b;e?.scaleBaked?.some(A=>A!==1)&&(b=new De.Matrix4().makeScale(...e.scaleBaked)),t&&(b?b.premultiply(t):b=t);let S=b?de.alloc_subdivision_surface2(g,u,g+h,a,g+h+i.length*Uint32Array.BYTES_PER_ELEMENT,d,b.elements):de.alloc_subdivision_surface(g,u,g+h,a,g+h+i.length*Uint32Array.BYTES_PER_ELEMENT,d);return de._free(g),S}static buildLevel(e,t,o,i,s){let l=s?de.get_mesh_data2(e,t?de.Level.CONTROL:de.Level.REFINED,o,s.elements):de.get_mesh_data(e,t?de.Level.CONTROL:de.Level.REFINED,o),c=8,u=de.HEAPU32.subarray(l>>2,(l>>2)+c),a=u.subarray(4,4+4),d=0,p=de.HEAPU32[u[d]>>2],f=de.HEAPF32.subarray(p>>2,(p>>2)+a[d]);d++;let m=de.HEAPU32[u[d]>>2],h=de.HEAPF32.subarray(m>>2,(m>>2)+a[d]);d++;let y=de.HEAPU32[u[d]>>2],g=de.HEAPU32.subarray(y>>2,(y>>2)+a[d]);d++;let v=de.HEAPU32[u[d]>>2],w=de.HEAPU32.subarray(v>>2,(v>>2)+a[d]);if(d++,i===void 0){let b=new De.BufferGeometry;if(b.setIndex(new De.Uint32BufferAttribute(w,1)),b.setAttribute("position",new De.Float32BufferAttribute(f,3)),b.setAttribute("normal",new De.Float32BufferAttribute(h,3)),t){b.setAttribute("faceMap",new De.Uint32BufferAttribute(g,1));let S=new Float32Array(h.length/3*4).fill(0);b.setAttribute("color",new De.BufferAttribute(S,4))}return de.free_mesh_data(l),b.userData.type="SubdivGeometry",b}i.getAttribute("position").copyArray(f),i.getAttribute("normal").copyArray(h),i.attributes.position.needsUpdate=!0,i.attributes.normal.needsUpdate=!0,de.free_mesh_data(l)}static freeSubdivPointer(e){de.free_bvh(e),de.free_subdivision_surface(e)}static buildControlCageWireframe(e,t,o){let i=de.get_wireframe_data_for_base_level(e),s=4,l=de.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+2),u=0,a=de.HEAPU32[l[u]>>2],d=de.HEAPF32.subarray(a>>2,(a>>2)+c[u]);u++;let p=de.HEAPU32[l[u]>>2],f=de.HEAPU32.subarray(p>>2,(p>>2)+c[u]);if(t===void 0){let m=new De.BufferGeometry;m.setAttribute("position",new De.Float32BufferAttribute(d,3));let h=new Float32Array(d.length);for(let y=0,g=d.length;y<g;)h[y++]=o.r,h[y++]=o.g,h[y++]=o.b;return m.setAttribute("color",new De.BufferAttribute(h,3)),m.setIndex(new De.Uint32BufferAttribute(f,1)),de.free_wireframe_data_for_base_level(i),m}t.getAttribute("position").copyArray(d),t.attributes.position.needsUpdate=!0,de.free_wireframe_data_for_base_level(i)}static updateCollabMesh(e,t,o){let i=t===0;i||de.set_destination_refinement_level(e,t);let s=o?de.get_topological_data2(e,i?de.Level.CONTROL:de.Level.REFINED,o.elements):de.get_topological_data(e,i?de.Level.CONTROL:de.Level.REFINED),l=6,c=de.HEAPU32.subarray(s>>2,(s>>2)+l),u=c.subarray(3,3+3),a=0,d=de.HEAPU32[c[a]>>2],p=new Float32Array(de.HEAPF32.subarray(d>>2,(d>>2)+u[a]));a++;let f=de.HEAPU32[c[a]>>2],m=new Uint32Array(de.HEAPU32.subarray(f>>2,(f>>2)+u[a]));a++;let h=de.HEAPU32[c[a]>>2],y=new Uint8Array(de.HEAPU32.subarray(h>>2,(h>>2)+u[a]));return de.free_topological_data(s),{positions:p,indices:m,verticesPerFace:y}}};var mh=["getX","getY","getZ"];function Wc(n,r){let e={},t=r?r.count:n.count,o=0,i=[],s=[],l=1e4;for(let u=0;u<t;u++){let a=r?r.getX(u):u,d="";for(let p=0;p<3;p++)d+=`${~~(n[mh[p]](a)*l)},`;if(d in e)i.push(e[d]);else{for(let p=0;p<3;p++)s.push(n[mh[p]](a));e[d]=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 sl=new De.Vector3,zc=new De.Vector3,kc=new De.Vector3,Hc=new De.Vector3;function qc(n,r,e,t){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((d,p)=>Math.floor(p/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??r.length;s<l;)if(r[s+1]===r[s+3]&&r[s+2]===r[s+5]||r[s+0]===r[s+3]&&r[s+2]===r[s+4]){sl.set(n[r[s]*3],n[r[s]*3+1],n[r[s]*3+2]),zc.set(n[r[s+1]*3],n[r[s+1]*3+1],n[r[s+1]*3+2]),kc.set(n[r[s+4]*3],n[r[s+4]*3+1],n[r[s+4]*3+2]),Hc.set(n[r[s+5]*3],n[r[s+5]*3+1],n[r[s+5]*3+2]),zc.sub(sl).normalize(),kc.sub(sl).normalize(),Hc.sub(sl).normalize();let c=zc.cross(kc).dot(Hc);Math.abs(c)>.005||t&&t.some((u,a)=>a%2===1?!1:s>=t[a]&&s<t[a+1])?(o.push(r[s],r[s+1],r[s+2]),i.push(3),s+=3):(o.push(r[s],r[s+1],r[s+4],r[s+5]),i.push(4),s+=6)}else o.push(r[s],r[s+1],r[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,d=0;a<n.length;a+=3,d++)n[a+2]===0&&(s.push(d),c++),n[a+2]===u&&l.push(d);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 ur={};Nd(ur,{calcBoolean:()=>Uw,calcBooleanTopological:()=>Fw,freeMeshSet:()=>Hw,getMeshSet:()=>zw,transformMeshSet:()=>kw});var Vw,hh=new Promise(n=>{Vw=n});var ns=require("three");var ve,ni;hh.then(n=>ve=n);function jw(n,r,e){let t,{positions:o,triIndices:i}=Wc(n.getAttribute("position"),n.getIndex()),s;if(r&&e){let{indices:l,verticesPerFace:c}=qc(o,i,n);s=c.length,t=[];for(let u=0,a=0;u<s;u++){t.push(c[u]);for(let d=0;d<c[u];d++)t.push(l[a++])}}else{let l=i.length;t=Array(l+l/3),s=0;for(let c=0,u=0;u<t.length;)t[u++]=3,s++,t[u++]=i[c++],t[u++]=i[c++],t[u++]=i[c++]}return{positions:o,faceIndices:t,nFaces:s}}function yh(n){let r=n.length,e=r*Uint32Array.BYTES_PER_ELEMENT,t=r*Float32Array.BYTES_PER_ELEMENT,o=Number.isInteger(n[0])?e:t,i=ve._malloc(o);return(Number.isInteger(n[0])?new Uint32Array(ve.HEAPU32.buffer,i,r):new Float32Array(ve.HEAPF32.buffer,i,r)).set(n,0),i}function gh(n){switch(n){case 0:return ve.OP.UNION;case 1:return ve.OP.INTERSECTION;case 2:return ve.OP.A_MINUS_B;case 3:return ve.OP.B_MINUS_A;case 4:return ve.OP.SYMMETRIC_DIFFERENCE;case 5:return ve.OP.ALL;default:throw new Error("Unknown boolean operation "+n)}}function Fw(n,r){ni===void 0&&(ni=ve.init_csg());let e=yh(n),t=ve.csg_calc_topological(ni,e,n.length,gh(r));ve._free(e);let o=6,i=ve.HEAPU32.subarray(t>>2,(t>>2)+o),s=i.subarray(3,3+3),l=0,c=ve.HEAPU32[i[l]>>2],u=new Float32Array(ve.HEAPF32.subarray(c>>2,(c>>2)+s[l]));l++;let a=ve.HEAPU32[i[l]>>2],d=new Uint32Array(ve.HEAPU32.subarray(a>>2,(a>>2)+s[l]));l++;let p=ve.HEAPU32[i[l]>>2],f=new Uint8Array(ve.HEAPU32.subarray(p>>2,(p>>2)+s[l]));return ve.free_mesh_data(t),{positions:u,indices:d,verticesPerFace:f}}function Uw(n,r,e,t){ni===void 0&&(ni=ve.init_csg());let o=yh(n),i=ve.csg_calc(ni,o,n.length,t,gh(r));ve._free(o);let s=5,l=ve.HEAPU32.subarray(i>>2,(i>>2)+s),c=l.subarray(2,2+3),u=0,a=ve.HEAPU32[l[u]>>2],d=ve.HEAPF32.subarray(a>>2,(a>>2)+c[u]);u++;let p=ve.HEAPU32[l[u]>>2],f=ve.HEAPF32.subarray(p>>2,(p>>2)+c[u]);u++;let m=c[u];e.setAttribute("position",new ns.Float32BufferAttribute(d,3)),e.setAttribute("normal",new ns.Float32BufferAttribute(f,3));let h=ve.HEAPF32.subarray((i>>2)+5,(i>>2)+5+6);return e.boundingSphere===null&&(e.boundingSphere=new ns.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},ve.free_mesh_data(i),m}function zw(n,r,e){if(ve===void 0)return-1;let t,o,i;if(r&&n.userData.positions!==void 0){let y=n.userData;i=y.verticesPerFace.length,t=y.positions,o=Array(y.verticesPerFace.reduce((g,v)=>g+v,0)+i);for(let g=0,v=0,w=0;g<y.verticesPerFace.length;g++){o[w++]=y.verticesPerFace[g];for(let b=0;b<y.verticesPerFace[g];b++)o[w++]=y.indices[v++]}}else({positions:t,faceIndices:o,nFaces:i}=jw(n,r,e));let s=t.length,l=o.length,c=t.length,u=o.length,a=c*Float32Array.BYTES_PER_ELEMENT+u*Uint32Array.BYTES_PER_ELEMENT,d=c*Float32Array.BYTES_PER_ELEMENT,p=u*Uint32Array.BYTES_PER_ELEMENT,f=ve._malloc(a),m=new Float32Array(ve.HEAPF32.buffer,f,c),h=new Uint32Array(ve.HEAPU32.buffer,f+d,u);return m.set(t,0),h.set(o,0),ve.get_csg_mesh(f,s,f+d,l,i)}function kw(n,r){ve.transform_csg_mesh(n,r.elements)}function Hw(n){ve.free_csg_mesh(n)}var Ww={ConeGeometry:fm,CubeGeometry:mm,CylinderGeometry:um,DodecahedronGeometry:ym,EllipseGeometry:Vm,HelixGeometry:zm,IcosahedronGeometry:Hm,LatheGeometry:Wm,NonParametricGeometry:qm,PolygonGeometry:$m,PyramidGeometry:Ym,RectangleGeometry:Xm,SphereGeometry:Zm,PlaneGeometry:Jm,BackdropGeometry:eh,StarGeometry:th,TextFrameGeometry:oh,TorusGeometry:nh,TorusKnotGeometry:sh,TriangleGeometry:ah,VectorGeometry:Gt},Uc=n=>Ww[n.type].create(n);function is(n){return n!==null&&"booleanOp"in n}var ii=class extends Xa(al.Mesh){constructor(){super(...arguments);this.booleanMeshSetAddress=-1;this.booleanWasTransformed=!1;this.booleanMatrixInvOld=new al.Matrix4}updateVisible(){super.updateVisible(),this.visible=!is(this.parent)&&this.visible,is(this.parent)&&this.parent.invalidateDownstreamBooleanData()}freeBooleanPointer(){this.booleanMeshSetAddress!==-1&&(ur.freeMeshSet(this.booleanMeshSetAddress),this.booleanMeshSetAddress=-1)}invalidateDownstreamBooleanData(e=!1){return e?this.booleanWasTransformed=!0:this.freeBooleanPointer(),is(this.parent)?this.parent.invalidateDownstreamBooleanData():this}invalidateUpstreamBooleanData(){this.freeBooleanPointer();for(let e of this.children)e instanceof ii&&(e.freeBooleanPointer(),is(e)&&e.invalidateUpstreamBooleanData())}updateTransformState(e){let t=super.updateTransformState(e);return t&&is(this.parent)&&this.invalidateDownstreamBooleanData(!0),t}};var ll=new si.Box3;function $c(n,r=0,e=n.count,t,o){let i=1/0,s=1/0,l=1/0,c=-1/0,u=-1/0,a=-1/0;for(let d=r;d<e;d++){let p=n.getX(d),f=n.getY(d),m=n.getZ(d);p<i&&(i=p),f<s&&(s=f),m<l&&(l=m),p>c&&(c=p),f>u&&(u=f),m>a&&(a=m)}ll.min.set(i,s,l),ll.max.set(c,u,a),ll.getCenter(t),ll.getSize(o).multiplyScalar(.5)}var qw=new si.BufferGeometry,$w=new si.MeshBasicMaterial,ht=class extends ii{constructor(r,e){super(qw,$w),this.super_Entity(r,e)}updateState(r,e){this.updateState_Entity(r,e)}updateEntityBoxSize(r,e){let t=this.geometry.getAttribute("position");t!==void 0?$c(t,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:t.count,r,e):super.updateEntityBoxSize(r,e)}};var Zr=require("three");var $t=require("three");var Bh=require("three");var fr=require("three");var ss=class{constructor(r){r=r??{},this.name=r.name,this.type=r.type,this.node=r.node,this.size=r.size,this.needsUpdate=r.needsUpdate}get value(){return this.node.value}set value(r){this.node.value=r}};var xh=require("three"),dt=class{constructor(r){this.hashProperties=void 0;this.isNode=!0;this.shortcuts={};this.uuid=xh.MathUtils.generateUUID(),this.type=r,this.name=""}analyze(r,e){e=e??{},r.analyzing=!0,this.build(r.addFlow(e.slot,e.cache,e.context),"v4"),r.clearVertexNodeCode(),r.clearFragmentNodeCode(),r.removeFlow(),r.analyzing=!1}analyzeAndFlow(r,e,t){return t=t??{},this.analyze(r,t),this.flow(r,e,t)}flow(r,e,t){t=t??{},r.addFlow(t.slot,t.cache,t.context);let o={result:this.build(r,e),code:r.clearNodeCode(),extra:r.context.extra};return r.removeFlow(),o}build(r,e,t){e=e??this.getType(r,e);let o=r.getNodeData(t??this);return r.analyzing&&this.appendDepsNode(r,o,e),r.nodes.indexOf(this)===-1&&r.nodes.push(this),this.updateFrame!==void 0&&r.updaters.indexOf(this)===-1&&r.updaters.push(this),this.generate(r,e,t)}updateFrame(r){}generateReadonly(r,e,t,o,i,s){return""}generate(r,e,t,o,i){return""}parse(r,e,t,o){}appendDepsNode(r,e,t){e.deps=(e.deps||0)+1;let o=r.getTypeLength(t);(o>(e.outputMax||0)||this.getType(r,t))&&(e.outputMax=o,e.output=t)}setName(r){this.name=r}getName(){return this.name}getType(r,e){return e==="sampler2D"||e==="samplerCube"?e:this.type}getHash(){let r="{",e,t;for(e in this)t=this[e],t instanceof dt&&(r+='"'+e+'":'+t.getHash()+",");if(this.hashProperties)for(let o=0;o<this.hashProperties.length;o++)e=this.hashProperties[o],t=this[e],r+='"'+e+'":"'+String(t)+'",';return r+='"id":"'+this.uuid+'"}',r}};var Yc=class{constructor(){this.nodes={};this.keywords={}}add(r){this.nodes[r.name]=r}addKeyword(r,e,t){t=t!==void 0?t:!0,this.keywords[r]={callback:e,cache:t}}remove(r){delete this.nodes[r.name]}removeKeyword(r){delete this.keywords[r]}get(r){return this.nodes[r]}getKeyword(r,e){return this.keywords[r].callback(e)}getKeywordData(r){return this.keywords[r]}contains(r){return this.nodes[r]!==void 0}containsKeyword(r){return this.keywords[r]!==void 0}},nt=new Yc;var Xc=require("three");var vh=require("three"),ce=class extends dt{constructor(e,t){super(e);this.scope="";t=t??{},this.shared=t.shared!==void 0?t.shared:!0,this.unique=t.unique!==void 0?t.unique:!1}build(e,t,o,i){if(t=t??this.getType(e),this.getShared(e,t)){let s=this.getUnique(e,t);s&&this.uuid===void 0&&(this.uuid=vh.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,t),this.generate(e,t,o)):super.build(e,t,o);if(s)return l.name=l.name||super.build(e,t,o),l.name;if(!this.getLabel()&&(!this.getShared(e,c)||e.context.ignoreCache||l.deps===1))return super.build(e,t,o);o=this.getUUID(!1);let u=this.getTemp(e,o);if(u)return e.format(u,c,t);{u=super.generate(e,t,o,l.output,i);let a=this.generate(e,c,o);return e.addNodeCode(u+" = "+a+";"),e.format(u,c,t)}}return super.build(e,t,o)}getShared(e,t){return t!=="sampler2D"&&t!=="samplerCube"&&this.shared}getUnique(e,t){return this.unique}setLabel(e){return this.label=e,this}getLabel(){return this.label}getUUID(e){let t=this.uuid;return typeof this.scope=="string"&&(t=this.scope+"-"+t),t}getTemp(e,t){t=t||this.uuid;let o=e.getVars()[t];return o?o.name:void 0}generate(e,t,o,i,s){return this.getShared(e,t)||console.error("TempNode is not shared"),o=o??this.uuid,e.getTempVar(o,i??this.getType(e),s,this.getLabel()).name}};var Ge=class extends ce{constructor(e,t){t=t??{},t.shared=t.shared!==void 0?t.shared:!1;super(e,t);this.readonly=!1}setReadonly(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this}getReadonly(){return this.readonly}generate(e,t,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,t,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,t)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,t))}};var ut=class extends Ge{constructor(e=0,t){super("v2");this.nodeType="Vector2";this.value=e instanceof Xc.Vector2?e:new Xc.Vector2(e,t)}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,t,o,i,s,l){return e.format("vec2("+this.value.x+", "+this.value.y+")",i,t)}};var Kc=require("three");var yt=class extends Ge{constructor(e=0,t,o){super("v3");this.nodeType="Vector3";this.value=e instanceof Kc.Vector3?e:new Kc.Vector3(e,t,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,t,o,i,s,l){return e.format("vec3("+this.value.x+", "+this.value.y+", "+this.value.z+")",i,t)}};var bh=require("three"),it=class extends bh.Color{constructor(e,t,o,i){super(e,t,o);this.isColorA=!0;this.a=i}setRGBA(e,t,o,i){super.setRGB(e,t,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 Qt=class extends Ge{constructor(e){super("v4");this.nodeType="Vector4";this.value=e instanceof it?e:new it(e.r,e.g,e.b,e.a)}generateReadonly(e,t,o,i,s,l){return e.format("vec4("+this.value.r+", "+this.value.g+", "+this.value.b+", "+this.value.a+")",i,t)}};var Yw=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,Sh=/[a-z_0-9]+/gi,X=class extends ce{constructor(e,t,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,t,o,i)}getShared(e,t){return!this.isMethod}getType(e){return e.getTypeByFormat(this.type)}getInputByName(e){if(this.inputs){let t=this.inputs.length;for(;t--;)if(this.inputs[t].name===e)return this.inputs[t]}}getIncludeByName(e){if(this.includes){let t=this.includes.length;for(;t--;)if(this.includes[t].name===e)return this.includes[t]}}generate(e,t,o,i,s){let l,c=0,u=this.src;if(this.includes)for(let d=0;d<this.includes.length;d++)e.include(this.includes[d],this);for(let d in this.extensions)e.extensions[d]=!0;let a=[];for(;l=Sh.exec(this.src);)a.push(l);for(let d=0;d<a.length;d++){let p=a[d],f=p[0],m=this.isMethod?!this.getInputByName(f):!0,h=f;if(this.keywords[f]||this.useKeywords&&m&&nt.containsKeyword(f)){let y=this.keywords[f];if(!y){let g=nt.getKeywordData(f);g.cache&&(y=e.keywords[f]),y=y||nt.getKeyword(f,e),g.cache&&(e.keywords[f]=y)}h=y.build(e)}f!==h&&u[p.index+c-1]!=="."&&(u=u.substring(0,p.index+c)+h+u.substring(p.index+f.length+c),c+=h.length-f.length),this.getIncludeByName(h)===void 0&&nt.contains(h)&&e.include(nt.get(h))}return t==="source"?u:this.isMethod?(this.isInterface||e.include(this,void 0,u),this.name):e.format("( "+u+" )",this.getType(e),t)}parse(e,t,o,i){if(this.src=e||"",this.includes=t??[],this.extensions=o??{},this.keywords=i??{},this.isMethod){let s=Yw.exec(this.src);if(this.inputs=[],s&&s.length==4){this.type=s[1],this.name=s[2];let l=s[3].match(Sh);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 d=l[c++];this.inputs.push({name:d,type:a,qualifier:u})}}this.isInterface=this.src.indexOf("{")===-1}else this.type="",this.name=""}}};var Xw=/^([a-z_0-9]+)\s([a-z_0-9]+)\s?\=?\s?(.*?)(\;|$)/i,Zc=class extends ce{constructor(e="",t){super();this.src="";this.useDefine=!1;this.nodeType="Const";this.parse(e||Zc.PI,void 0,void 0,void 0,t)}getType(e){return e.getTypeByFormat(this.type)}parse(e,t,o,i,s){this.src=e||"";let l,c,u="",a=Xw.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,t){if(t==="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),t)}generate(e,t,o,i,s){return e.format(this.name,this.getType(e),t)}},we=Zc;we.PI="PI",we.PI2="PI2",we.RECIPROCAL_PI="RECIPROCAL_PI",we.RECIPROCAL_PI2="RECIPROCAL_PI2",we.LOG2="LOG2",we.EPSILON="EPSILON";var Kw=new RegExp(`^structs*([a-z_0-9]+)s*{s*((.|
4
+ )*?)}`,"gim"),Zw=new RegExp("s*(w*?)s*(w*?)(=|;)","gim"),ai=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 t=this.inputs.length;for(;t--;)if(this.inputs[t].name===e)return this.inputs[t]}generate(e,t,o,i,s){return t==="source"?this.src+";":e.format("( "+this.src+" )",this.getType(e),t)}parse(e=""){this.src=e,this.inputs=[];let t=Kw.exec(e);if(t){let o=t[2],i;for(;i=Zw.exec(o);)this.inputs.push({type:i[1],name:i[2]});this.name=t[1]}else this.name="";this.type=this.name}};var li=class extends ce{constructor(e){super("v2",{shared:!1});this.nodeType="UV";this.index=e??0}generate(e,t){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),t)}};nt.addKeyword("uv",function(){return new li});nt.addKeyword("uv2",function(){return new li(1)});var cl=require("three");var $o=class extends ce{constructor(e,t){super("v4");this.nodeType="ColorSpace";this.input=e,this.method=t??$o.LINEAR_TO_LINEAR,this.hashProperties=["method"]}static getEncodingComponents(e){switch(e){case cl.LinearEncoding:return["Linear"];case cl.sRGBEncoding:return["sRGB"];default:return[]}}generate(e,t){let o=this.input.build(e,"v4"),i=this.getType(e),s=$o.Nodes[this.method],l=e.include(s);if(l===$o.LINEAR_TO_LINEAR)return e.format(o,i,t);if(s.inputs?.length===2){let c=this.factor.build(e,"f");return e.format(l+"( "+o+", "+c+" )",i,t)}else return e.format(l+"( "+o+" )",i,t)}fromEncoding(e){let t=$o.getEncodingComponents(e);this.method="LinearTo"+t[0],this.factor=t[1]}fromDecoding(e){let t=$o.getEncodingComponents(e);this.method=t[0]+"ToLinear",this.factor=t[1]}},Ot=$o;Ot.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
+ `))},Ot.LINEAR_TO_LINEAR="LinearToLinear",Ot.SRGB_TO_LINEAR="sRGBToLinear",Ot.LINEAR_TO_SRGB="LinearTosRGB";var Pe=class extends X{constructor(e="",t,o,i,s){super(e,s,i,o,t);this.nodeType="Expression"}};var wh=require("three"),Rt=class extends Ge{constructor(e=new wh.Texture,t,o,i){super("v4",{shared:!0});this.nodeType="Texture";this.value=e,this.uv=t??new li,this.bias=o,this.project=i!==void 0?i:!1}getTexture(e,t){return super.generate(e,t,this.value.uuid,"t")}generate(e,t){if(t==="sampler2D")return this.getTexture(e,t);let o=this.getTexture(e,t),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 Ot(new Pe("",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,t)}};var Q=class extends Ge{constructor(e){super("f");this.nodeType="Float";this.value=e??0}generateReadonly(e,t,o,i,s,l){return e.format(this.value+(this.value%1?"":".0"),i,t)}};var as=class extends ce{constructor(e,t){super();this.inputs=[];this.nodeType="FunctionCall";this.value=e,this.inputs=t??[]}getFunction(){return this.value}getType(e){return this.value.getType(e)}generate(e,t,o,i,s){i=this.getType(e);let l=this.value,c=l.build(e,t)+"( ",u=[];if(l.inputs){for(let a=0;a<l.inputs.length;a++){let d=l.inputs[a],p=this.inputs[a]||this.inputs[d.name];u.push(p.build(e,e.getTypeByFormat(d.type)))}c+=u.join(", ")+" )"}return e.format(c,i,t)}};var Qc=class extends ce{constructor(e,t,o=Qc.ADD){super();this.nodeType="Operator";this.type=e.type,this.a=e,this.b=t,this.op=o}getType(e){let t=this.a.getType(e),o=this.b.getType(e);return e.isTypeMatrix(t)?"v4":e.getTypeLength(o)>e.getTypeLength(t)?o:t}generate(e,t){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,t)}},Vt=Qc;Vt.ADD="+",Vt.SUB="-",Vt.MUL="*",Vt.DIV="/";var Ee=class extends ce{constructor(e,t=Ee.ABS,o,i){super();this.nodeType="Math";this.a=e,typeof t!="string"?this.b=t:i=t,typeof o!="string"?this.c=o:i=o,this.method=i,this.hashProperties=["method"]}getNumInputs(e){switch(this.method){case Ee.MIX:case Ee.CLAMP:case Ee.REFRACT:case Ee.SMOOTHSTEP:case Ee.FACEFORWARD:return 3;case Ee.MIN:case Ee.MAX:case Ee.MOD:case Ee.STEP:case Ee.REFLECT:case Ee.DISTANCE:case Ee.DOT:case Ee.CROSS:case Ee.POW:return 2;default:return 1}}getInputType(e){let t=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 t>o&&t>i?this.a.getType(e):o>i?this.b.getType(e):this.c.getType(e)}getType(e){switch(this.method){case Ee.LENGTH:case Ee.DISTANCE:case Ee.DOT:return"f";case Ee.CROSS:return"v3"}return this.getInputType(e)}generate(e,t){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),d=this.getType(e);switch(this.type=d,this.method){case Ee.NEGATE:return e.format("( -"+this.a.build(e,a)+" )",a,t);case Ee.INVERT:return e.format("( 1.0 - "+this.a.build(e,a)+" )",a,t);case Ee.CROSS:o=this.a.build(e,"v3"),i=this.b.build(e,"v3");break;case Ee.STEP:o=this.a.build(e,l===1?"f":a),i=this.b.build(e,a);break;case Ee.MIN:case Ee.MAX:case Ee.MOD:o=this.a.build(e,a),i=this.b.build(e,c===1?"f":a);break;case Ee.REFRACT:o=this.a.build(e,a),i=this.b.build(e,a),s=this.c.build(e,"f");break;case Ee.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 p=[];p.push(o),i&&p.push(i),s&&p.push(s);let f=this.getNumInputs(e);if(p.length!==f)throw Error(`Arguments not match used in "${this.method}". Require ${f}, currently ${p.length}.`);return e.format(this.method+"( "+p.join(", ")+" )",d,t)}},fe=Ee;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 ci=class extends ce{constructor(e,t,o){super("v4");this.nodeType="TextureCubeUV";this.value=e,this.uv=t,this.bias=o}bilinearCubeUV(e,t,o,i){let s=new as(ci.Nodes.bilinearCubeUV,[t,o,i]);this.colorSpaceTL=this.colorSpaceTL??new Ot(new Pe("","v4")),this.colorSpaceTL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTL.input.parse(s.build(e)+".tl"),this.colorSpaceTR=this.colorSpaceTR??new Ot(new Pe("","v4")),this.colorSpaceTR.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceTR.input.parse(s.build(e)+".tr"),this.colorSpaceBL=this.colorSpaceBL??new Ot(new Pe("","v4")),this.colorSpaceBL.fromDecoding(e.getTextureEncodingFromMap(this.value.value)),this.colorSpaceBL.input.parse(s.build(e)+".bl"),this.colorSpaceBR=this.colorSpaceBR??new Ot(new Pe("","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 Pe(this.colorSpaceTL.build(e,"v4"),"v4"),this.colorSpaceTRExp=new Pe(this.colorSpaceTR.build(e,"v4"),"v4"),this.colorSpaceBLExp=new Pe(this.colorSpaceBL.build(e,"v4"),"v4"),this.colorSpaceBRExp=new Pe(this.colorSpaceBR.build(e,"v4"),"v4"),e.removeContext();let c=new Pe("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,t){if(e.isShader("fragment")){let o=this.uv,i=this.bias||e.context.roughness,s=new as(ci.Nodes.roughnessToMip,[i]),l=new fe(s,ci.Nodes.m0,ci.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),d=this.bilinearCubeUV(e,this.value,o,new Vt(c,new Q(1).setReadonly(!0),Vt.ADD)),p=new fe(a,d,u,fe.MIX);return e.format(p.build(e),"v4",t)}else return console.warn("TextureCubeUVNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),t)}},di=ci;di.Nodes=function(){let e=new ai(`struct TextureCubeUVData {
8
8
  vec4 tl;
9
9
  vec4 tr;
10
10
  vec4 br;
11
11
  vec4 bl;
12
12
  vec2 f;
13
- }`),e=new SA("float cubeUV_maxMipLevel 8.0",!0),r=new SA("float cubeUV_minMipLevel 4.0",!0),n=new SA("float cubeUV_maxTileSize 256.0",!0),i=new SA("float cubeUV_minTileSize 16.0",!0),a=new K(`float getFace(vec3 direction) {
13
+ }`),t=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 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
- }`);a.useKeywords=!1;let l=new K(`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
- }`);l.useKeywords=!1;let d=new K(`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
- }`,[A,a,l,e,r,n,i]);d.useKeywords=!1;let s=new SA("float r0 1.0",!0),c=new SA("float v0 0.339",!0),u=new SA("float m0 -2.0",!0),p=new SA("float r1 0.8",!0),f=new SA("float v1 0.276",!0),m=new SA("float m1 -1.0",!0),h=new SA("float r4 0.4",!0),y=new SA("float v4 0.046",!0),x=new SA("float m4 2.0",!0),S=new SA("float r5 0.305",!0),v=new SA("float v5 0.016",!0),b=new SA("float m5 3.0",!0),P=new SA("float r6 0.21",!0),w=new SA("float v6 0.0038",!0),g=new SA("float m6 4.0",!0),N=[s,c,u,p,f,m,h,y,x,S,v,b,P,w,g],O=new K(`float roughnessToMip(float roughness) {
72
+ }`,[e,l,c,t,o,i,s]);u.useKeywords=!1;let a=new we("float r0 1.0",!0),d=new we("float v0 0.339",!0),p=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),y=new we("float r4 0.4",!0),g=new we("float v4 0.046",!0),v=new we("float m4 2.0",!0),w=new we("float r5 0.305",!0),b=new we("float v5 0.016",!0),S=new we("float m5 3.0",!0),A=new we("float r6 0.21",!0),_=new we("float v6 0.0038",!0),x=new we("float m6 4.0",!0),P=[a,d,p,f,m,h,y,g,v,w,b,S,A,_,x],O=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,8 +83,8 @@
83
83
  mip = -2.0 * log2(1.16 * roughness);// 1.16 = 1.79^0.25
84
84
  }
85
85
  return mip;
86
- }`,N);return{bilinearCubeUV:d,roughnessToMip:O,m0:u,cubeUV_maxMipLevel:e}}();var Yr=class extends lA{constructor(A){super("v3");this.nodeType="Normal";this.scope=A??Yr.VIEW}getShared(){return this.scope===Yr.WORLD}build(A,e,r,n){let i=A.context[this.scope+"Normal"];return i?i.build(A,e,r,n):super.build(A,e,r)}generate(A,e,r,n,i){let a;switch(this.scope){case Yr.VIEW:A.isShader("vertex")?a="transformedNormal":a="geometryNormal";break;case Yr.LOCAL:A.isShader("vertex")?a="objectNormal":(A.requires.normal=!0,a="vObjectNormal");break;case Yr.WORLD:A.isShader("vertex")?a="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(A.requires.worldNormal=!0,a="vWNormal");break}return A.format(a,this.getType(A),e)}},ue=Yr;ue.LOCAL="local",ue.WORLD="world",ue.VIEW="view",ue.NORMAL="normal";oe.addKeyword("viewNormal",function(){return new ue(ue.VIEW)});oe.addKeyword("localNormal",function(){return new ue(ue.NORMAL)});oe.addKeyword("worldNormal",function(){return new ue(ue.WORLD)});var Lt=class extends lA{constructor(A){super("v3");this.nodeType="Position";this.scope=A??Lt.LOCAL}getType(){switch(this.scope){case Lt.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Lt.LOCAL:case Lt.WORLD:return!1}return!0}generate(A,e,r,n,i){let a;switch(this.scope){case Lt.LOCAL:A.isShader("vertex")?a="transformed":(A.requires.position=!0,a="vPosition");break;case Lt.WORLD:if(A.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";A.requires.worldPosition=!0,a="vWPosition";break;case Lt.VIEW:a=A.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Lt.PROJECTION:a=A.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return A.format(a,this.getType(),e)}},Fe=Lt;Fe.LOCAL="local",Fe.WORLD="world",Fe.VIEW="view",Fe.PROJECTION="projection";oe.addKeyword("position",function(){return new Fe});oe.addKeyword("worldPosition",function(){return new Fe(Fe.WORLD)});oe.addKeyword("viewPosition",function(){return new Fe(Fe.VIEW)});var ut=class extends lA{constructor(A){super("v3");this.nodeType="Reflect";this.scope=A??ut.CUBE}getUnique(A){return!A.context.viewNormal}getType(){switch(this.scope){case ut.SPHERE:return"v2"}return this.type}generate(A,e){let r=this.getUnique(A);if(A.isShader("fragment")){let n;switch(this.scope){case ut.VECTOR:{let i=new ue(ue.VIEW),a=A.context.roughness,l=i.build(A,"v3"),d=new Fe(Fe.VIEW).build(A,"v3"),s=a?a.build(A,"f"):void 0,c=`reflect( -normalize( ${d} ), ${l} )`;s&&(c=`normalize( mix( ${c}, ${l}, ${s} * ${s} ) )`);let u=`inverseTransformDirection( ${c}, viewMatrix )`;r?(A.addNodeCode(`vec3 reflectVec = ${u};`),n="reflectVec"):n=u;break}case ut.CUBE:{let i=new ut(ut.VECTOR).build(A,"v3"),a="vec3( -"+i+".x, "+i+".yz )";r?(A.addNodeCode(`vec3 reflectCubeVec = ${a};`),n="reflectCubeVec"):n=a;break}case ut.SPHERE:{let a="normalize( ( viewMatrix * vec4( "+new ut(ut.VECTOR).build(A,"v3")+", 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) ).xy * 0.5 + 0.5";r?(A.addNodeCode(`vec2 reflectSphereVec = ${a};`),n="reflectSphereVec"):n=a;break}}return A.format(n,this.getType(),e)}else return console.warn("ReflectNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.type,e)}},Et=ut;Et.CUBE="cube",Et.SPHERE="sphere",Et.VECTOR="vector";var ca=class extends lA{constructor(A=new Ve,e,r){super("v4");this.nodeType="TextureCube";this.value=A,this.radianceNode=new cn(this.value,e??new Et(Et.VECTOR),r),this.irradianceNode=new cn(this.value,new ue(ue.WORLD),new _(1).setReadonly(!0))}generate(A,e){return A.isShader("fragment")?(A.require("irradiance"),A.context.bias&&A.context.bias.setTexture(this.value),(A.slot==="irradiance"?this.irradianceNode:this.radianceNode).build(A,e)):(console.warn("TextureCubeNode is not compatible with "+A.shader+" shader."),A.format("vec4( 0.0 )",this.getType(A),e))}};var Tm=require("three");var da=class extends RA{constructor(A=new Tm.CubeTexture,e,r){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=A,this.uv=e??new Et,this.bias=r}getTexture(A,e){return super.generate(A,e,this.value.uuid,"tc")}generate(A,e){if(e==="samplerCube")return this.getTexture(A,e);let r=this.getTexture(A,e),n=this.uv?.build(A,"v3"),i=this.bias?this.bias.build(A,"f"):void 0;i===void 0&&A.context.bias&&(i=A.context.bias.setTexture(this).build(A,"f"));let a;i?a="texCubeBias( "+r+", "+n+", "+i+" )":a="texCube( "+r+", "+n+" )";let l={include:A.isShader("vertex"),ignoreCache:!0},d=this.getType(A);return A.addContext(l),this.colorSpace=this.colorSpace??new Oe(new NA("",d)),this.colorSpace.fromDecoding(A.getTextureEncodingFromMap(this.value)),this.colorSpace.input.parse(a),a=this.colorSpace.build(A,d),A.removeContext(),A.format(a,d,e)}};var Om=["x","y","z","w"],$w=["float","vec2","vec3","vec4"],A1={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},e1={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[]"},ua=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function t(A,e){return A.deps.length-e.deps.length}return function(e,r){let n=this.getIncludes(e,r);if(!n)return"";let i="";n=n.sort(t);for(let a=0;a<n.length;a++)n[a].src&&(i+=n[a].src+`
87
- `);return i}}();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",`
86
+ }`,P);return{bilinearCubeUV:u,roughnessToMip:O,m0:p,cubeUV_maxMipLevel:t}}();var Yo=class extends ce{constructor(e){super("v3");this.nodeType="Normal";this.scope=e??Yo.VIEW}getShared(){return this.scope===Yo.WORLD}build(e,t,o,i){let s=e.context[this.scope+"Normal"];return s?s.build(e,t,o,i):super.build(e,t,o)}generate(e,t,o,i,s){let l;switch(this.scope){case Yo.VIEW:e.isShader("vertex")?l="transformedNormal":l="geometryNormal";break;case Yo.LOCAL:e.isShader("vertex")?l="objectNormal":(e.requires.normal=!0,l="vObjectNormal");break;case Yo.WORLD:e.isShader("vertex")?l="inverseTransformDirection( transformedNormal, viewMatrix ).xyz":(e.requires.worldNormal=!0,l="vWNormal");break}return e.format(l,this.getType(e),t)}},pt=Yo;pt.LOCAL="local",pt.WORLD="world",pt.VIEW="view",pt.NORMAL="normal";nt.addKeyword("viewNormal",function(){return new pt(pt.VIEW)});nt.addKeyword("localNormal",function(){return new pt(pt.NORMAL)});nt.addKeyword("worldNormal",function(){return new pt(pt.WORLD)});var Nr=class extends ce{constructor(e){super("v3");this.nodeType="Position";this.scope=e??Nr.LOCAL}getType(){switch(this.scope){case Nr.PROJECTION:return"v4"}return this.type}getShader(){switch(this.scope){case Nr.LOCAL:case Nr.WORLD:return!1}return!0}generate(e,t,o,i,s){let l;switch(this.scope){case Nr.LOCAL:e.isShader("vertex")?l="transformed":(e.requires.position=!0,l="vPosition");break;case Nr.WORLD:if(e.isShader("vertex"))return"( modelMatrix * vec4( transformed, 1.0 ) ).xyz";e.requires.worldPosition=!0,l="vWPosition";break;case Nr.VIEW:l=e.isShader("vertex")?"-mvPosition.xyz":"vViewPosition";break;case Nr.PROJECTION:l=e.isShader("vertex")?"( projectionMatrix * modelViewMatrix * vec4( position, 1.0 ) )":"vec4( 0.0 )";break}return e.format(l,this.getType(),t)}},jt=Nr;jt.LOCAL="local",jt.WORLD="world",jt.VIEW="view",jt.PROJECTION="projection";nt.addKeyword("position",function(){return new jt});nt.addKeyword("worldPosition",function(){return new jt(jt.WORLD)});nt.addKeyword("viewPosition",function(){return new jt(jt.VIEW)});var pr=class extends ce{constructor(e){super("v3");this.nodeType="Reflect";this.scope=e??pr.CUBE}getUnique(e){return!e.context.viewNormal}getType(){switch(this.scope){case pr.SPHERE:return"v2"}return this.type}generate(e,t){let o=this.getUnique(e);if(e.isShader("fragment")){let i;switch(this.scope){case pr.VECTOR:{let s=new pt(pt.VIEW),l=e.context.roughness,c=s.build(e,"v3"),u=new jt(jt.VIEW).build(e,"v3"),a=l?l.build(e,"f"):void 0,d=`reflect( -normalize( ${u} ), ${c} )`;a&&(d=`normalize( mix( ${d}, ${c}, ${a} * ${a} ) )`);let p=`inverseTransformDirection( ${d}, viewMatrix )`;o?(e.addNodeCode(`vec3 reflectVec = ${p};`),i="reflectVec"):i=p;break}case pr.CUBE:{let s=new pr(pr.VECTOR).build(e,"v3"),l="vec3( -"+s+".x, "+s+".yz )";o?(e.addNodeCode(`vec3 reflectCubeVec = ${l};`),i="reflectCubeVec"):i=l;break}case pr.SPHERE:{let l="normalize( ( viewMatrix * vec4( "+new pr(pr.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(),t)}else return console.warn("ReflectNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.type,t)}},Er=pr;Er.CUBE="cube",Er.SPHERE="sphere",Er.VECTOR="vector";var dl=class extends ce{constructor(e=new Rt,t,o){super("v4");this.nodeType="TextureCube";this.value=e,this.radianceNode=new di(this.value,t??new Er(Er.VECTOR),o),this.irradianceNode=new di(this.value,new pt(pt.WORLD),new Q(1).setReadonly(!0))}generate(e,t){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,t)):(console.warn("TextureCubeNode is not compatible with "+e.shader+" shader."),e.format("vec4( 0.0 )",this.getType(e),t))}};var _h=require("three");var ul=class extends Ge{constructor(e=new _h.CubeTexture,t,o){super("v4",{shared:!0});this.nodeType="CubeTexture";this.value=e,this.uv=t??new Er,this.bias=o}getTexture(e,t){return super.generate(e,t,this.value.uuid,"tc")}generate(e,t){if(t==="samplerCube")return this.getTexture(e,t);let o=this.getTexture(e,t),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 Ot(new Pe("",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,t)}};var Th=["x","y","z","w"],Qw=["float","vec2","vec3","vec4"],Jw={float:"f",vec2:"v2",vec3:"v3",vec4:"v4",mat4:"v4",int:"i",bool:"b","float[]":"f[]","vec4[]":"v4[]"},e_={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[]"},pl=class{constructor(){this.includes={consts:{},functions:{},structs:{}};this.cache="";this.slot="";this.shader="";this.context={};this.getIncludesCode=function(){function r(e,t){return e.deps.length-t.deps.length}return function(t,o){let i=this.getIncludes(t,o);if(!i)return"";let s="";i=i.sort(r);for(let l=0;l<i.length;l++)i[l].src&&(s+=i[l].src+`
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
90
90
  #define SPE_BLENDING_MULTIPLY 1
@@ -121,15 +121,15 @@
121
121
  `),fragment:["float accumAlpha = 0.0;",`void accumulateAlpha(float alpha) {
122
122
  accumAlpha += (1.0 - accumAlpha) * alpha;
123
123
  }`,""].join(`
124
- `)},this.code={vertex:"",fragment:""},this.nodeCode={vertex:"",fragment:""},this.resultCode={vertex:"",fragment:""},this.finalCode={vertex:"",fragment:""},this.inputs={uniforms:{list:[],vertex:[],fragment:[]},arrayUniforms:{list:[],vertex:[],fragment:[]},vars:{varying:[],vertex:[],fragment:[]}},this.defines={},this.uniforms={},this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.updaters=[],this.nodes=[],this.analyzing=!1}build(t,A){this.buildShader("vertex",t),this.buildShader("fragment",A);for(let e=0;e<this.requires.uv.length;e++)if(this.requires.uv[e]){let r=e>0?e+1:"";this.addVaryCode("varying vec2 vUv"+r+";"),e>0&&this.addVertexParsCode("attribute vec2 uv"+r+";"),this.addVertexFinalCode("vUv"+r+" = uv"+r+";")}return this.requires.color[0]&&(this.addVaryCode("varying vec4 vColor;"),this.addVertexParsCode("attribute vec4 color;"),this.addVertexFinalCode("vColor = color;")),this.requires.color[1]&&(this.addVaryCode("varying vec4 vColor2;"),this.addVertexParsCode("attribute vec4 color2;"),this.addVertexFinalCode("vColor2 = color2;")),this.requires.position&&(this.addVaryCode("varying vec3 vPosition;"),this.addVertexFinalCode("vPosition = transformed;")),this.requires.worldPosition,this.requires.normal&&(this.addVaryCode("varying vec3 vObjectNormal;"),this.addVertexFinalCode("vObjectNormal = normal;")),this.requires.modelMatrix&&this.addFragmentParsCode("uniform mat4 modelMatrix;"),this.requires.viewMatrix&&this.addFragmentParsCode("uniform mat4 viewMatrix;"),this.requires.projectionMatrix&&this.addFragmentParsCode("uniform mat4 projectionMatrix;"),this.requires.worldNormal&&(this.addVaryCode("varying vec3 vWNormal;"),this.addVertexFinalCode("vWNormal = inverseTransformDirection( transformedNormal, viewMatrix ).xyz;")),this.requires.vWorldViewDir&&(this.addVaryCode("varying vec3 vWorldViewDir;"),this.addVertexFinalCode("vWorldViewDir = isPerspectiveMatrix( projectionMatrix ) ? ( (modelMatrix * vec4(position, 1.0)).xyz - cameraPosition ) : vec3( -viewMatrix[0][2], -viewMatrix[1][2], -viewMatrix[2][2] );")),this}buildShader(t,A){this.resultCode[t]=A.build(this.setShader(t),"v4")}setMaterial(t,A){return this.defines={},this}addFlow(t,A,e){return this.addSlot(t).addCache(A).addContext(e)}removeFlow(){return this.removeSlot().removeCache().removeContext()}addCache(t){return this.cache=t??"",this.caches.push(this.cache),this}removeCache(){return this.caches.pop(),this.cache=this.caches[this.caches.length-1]||"",this}addContext(t){return this.context=Object.assign({},this.context,t),this.context.extra=this.context.extra||{},this.contexts.push(this.context),this}removeContext(){return this.contexts.pop(),this.context=this.contexts[this.contexts.length-1]||{},this}addSlot(t){return this.slot=t||"",this.slots.push(this.slot),this}removeSlot(){return this.slots.pop(),this.slot=this.slots[this.slots.length-1]||"",this}addFragmentVariable(t,A){this.fragmentVariables[t]===void 0&&(this.addFragmentCode(`${A} ${t};`),this.fragmentVariables[t]="")}addFragmentParsVariable(t,A){this.fragmentParsVariables[t]===void 0&&(this.addFragmentParsCode(`${A} ${t};`),this.fragmentParsVariables[t]="")}addVertexParsVariable(t,A){this.vertexParsVariables[t]===void 0&&(this.addVertexParsCode(`${A} ${t};`),this.vertexParsVariables[t]="")}addVertexCode(t){this.addCode(t,"vertex")}addFragmentCode(t){this.addCode(t,"fragment")}addCode(t,A){this.code[A??this.shader]+=t+`
125
- `}addVertexNodeCode(t){this.addNodeCode(t,"vertex")}addFragmentNodeCode(t){this.addNodeCode(t,"fragment")}addNodeCode(t,A){this.nodeCode[A??this.shader]+=t+`
126
- `}clearNodeCode(t){t=t??this.shader;let A=this.nodeCode[t];return this.nodeCode[t]="",A}clearVertexNodeCode(){return this.clearNodeCode("vertex")}clearFragmentNodeCode(){return this.clearNodeCode("fragment")}addVertexFinalCode(t){this.addFinalCode(t,"vertex")}addFragmentFinalCode(t){this.addFinalCode(t,"fragment")}addFinalCode(t,A){this.finalCode[A??this.shader]+=t+`
127
- `}addVertexParsCode(t){this.addParsCode(t,"vertex")}addFragmentParsCode(t){this.addParsCode(t,"fragment")}addParsCode(t,A){this.parsCode[A??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,A){this.defines[t]=A===void 0?1:A}require(t){this.requires[t]=!0}isDefined(t){return this.defines[t]!==void 0}getVar(t,A,e,r="varying",n="V",i=""){let a=this.getVars(r),l=a[t];if(!l){let d=a.length;l={name:e||"node"+n+d+(i?"_"+i:""),type:A},a.push(l),a[t]=l}return l}getTempVar(t,A,e,r){return this.getVar(t,A,e,this.shader,"T",r)}getAttribute(t,A){if(!this.attributes[t]){let e=this.getVar(t,A);this.addVertexParsCode("attribute "+A+" "+t+";"),this.addVertexFinalCode(e.name+" = "+t+";"),this.attributes[t]={varying:e,name:t,type:A}}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,A){A=A??"";let e="";for(let r=0,n=t.length;r<n;++r){let i=t[r],a=i.type,l=i.name,d=i.size,s=this.getFormatByType(a);if(s===void 0)throw new Error("Node pars "+s+" not found.");s.includes("[]")?e+=A+" "+s.substring(0,s.length-2)+" "+l+`[${d}];
130
- `:e+=A+" "+s+" "+l+`;
131
- `}return e}getVars(t){return this.inputs.vars[t??this.shader]}getNodeData(t){let A=t instanceof ce?t.uuid:t;return this.nodeData[A]=this.nodeData[A]||{}}createUniform(t,A,e,r,n,i){if(A.includes("[]")){let a=this.inputs.arrayUniforms,l=a.list.length,d=new ii({type:A,size:e.size,name:r||"nodeUA"+l+(i?"_"+i:""),node:e,needsUpdate:n});return a.list.push(d),a[t].push(d),a[t][d.name]=d,this.uniforms[d.name]=d,d}else{let a=this.inputs.uniforms,l=a.list.length,d=new ii({type:A,name:r||"nodeU"+l+(i?"_"+i:""),node:e,needsUpdate:n});return a.list.push(d),a[t].push(d),a[t][d.name]=d,this.uniforms[d.name]=d,d}}createVertexUniform(t,A,e,r,n){return this.createUniform("vertex",t,A,e,r,n)}createFragmentUniform(t,A,e,r,n){return this.createUniform("fragment",t,A,e,r,n)}include(t,A,e){let r;if(t=typeof t=="string"?oe.get(t):t,this.context.include===!1)return t.name;t instanceof K?r=this.includes.functions:t instanceof SA?r=this.includes.consts:t instanceof sn&&(r=this.includes.structs);let n=r[this.shader]=r[this.shader]||[];if(t){let i=n[t.name];if(i||(i=n[t.name]={node:t,deps:[]},n.push(i),i.src=t.build(this,"source")),t instanceof K&&A&&n[A.name]&&n[A.name].deps.indexOf(t)===-1&&(n[A.name].deps.push(t),t.includes?.length)){let a=0;do this.include(t.includes[a++],A);while(a<t.includes.length)}return e&&(i.src=e),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,A){return this.includes[t][A||this.shader]}getConstructorFromLength(t){return $w[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 A=0;A<arguments.length;A++){let e=t[A];if(e?.isNode)return e}}resolve(...t){for(let A=0;A<arguments.length;A++){let e=t[A];if(e!==void 0){if(e.isNode)return e;if(e.isTexture)switch(e.mapping){case pt.CubeReflectionMapping:case pt.CubeRefractionMapping:return new da(e);case pt.CubeUVReflectionMapping:return new ca(new Ve(e));default:return new Ve(e)}else{if(e.isVector2)return new de(e);if(e.isVector3)return new he(e);if(e.isVector4)return new _e(e)}}}}format(t,A,e){switch(this.colorToVector(e+" <- "+A)){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 A1[t]||t}getFormatByType(t){return e1[t]||t}getUUID(t,A){return A=A!==void 0?A:!0,A&&this.cache&&(t=this.cache+"-"+t),t}getElementByIndex(t){return Om[t]}getIndexByElement(t){return Om.indexOf(t)}isShader(t){return this.shader===t}setShader(t){return this.shader=t,this}mergeDefines(t){for(let A in t)this.defines[A]=t[A];return this.defines}mergeUniform(t){for(let A in t)this.uniforms[A]=t[A];return this.uniforms}getTextureEncodingFromMap(t){let A;return t?t.isTexture&&(A=t.encoding):A=pt.LinearEncoding,A===pt.LinearEncoding&&this.context.gamma&&(A=pt.sRGBEncoding),A}};var FA=require("three");var CA=class extends RA{constructor(A=0,e,r,n){super("c");this.nodeType="Color";this.value=A instanceof ne?A:new ne(A||0,e,r,n)}setRGBA(A){this.value.setRGBA(A.r,A.g,A.b,A.a)}generate(A,e,r,n,i,a){r=A.getUUID(r??this.getUUID()),n=n??this.getType(A);let l=A.getNodeData(r),d=this.getReadonly()&&this.generateReadonly!==void 0;if(this.alpha){let s=this.alpha.build(A,"f");A.addFragmentNodeCode(`accumAlpha += ( 1.0 - accumAlpha ) * ${s};`)}return d?this.generateReadonly(A,e,r,n,i,a):A.isShader("vertex")?(l.vertex||(l.vertex=A.createVertexUniform(n,this,i,a,this.getLabel())),A.format(l.vertex.name,n,e)):(l.fragment||(l.fragment=A.createFragmentUniform(n,this,i,a,this.getLabel())),A.format(l.fragment.name,n,e))}generateReadonly(A,e,r,n,i,a){return A.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",n,e)}};var vA=class extends RA{constructor(A){super("i");this.nodeType="Int";this.value=Math.floor(A??0)}generateReadonly(A,e,r,n,i,a){return A.format(this.value.toString(),n,e)}};var pa=require("three");var Xr=class extends ce{constructor(){super("basic");this.nodeType="Basic";this.color=new CA(5855577),this.shadingAlpha=new _(1),this.shadingBlend=new vA(0)}get category(){return"phong"}generate(A){let e;if(A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(pa.UniformsUtils.merge([pa.UniformsLib.fog])),A.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
132
- `));let n=["#include <beginnormal_vertex>",`
124
+ `)},this.code={vertex:"",fragment:""},this.nodeCode={vertex:"",fragment:""},this.resultCode={vertex:"",fragment:""},this.finalCode={vertex:"",fragment:""},this.inputs={uniforms:{list:[],vertex:[],fragment:[]},arrayUniforms:{list:[],vertex:[],fragment:[]},vars:{varying:[],vertex:[],fragment:[]}},this.defines={},this.uniforms={},this.extensions={derivatives:!1,fragDepth:!1,drawBuffers:!1,shaderTextureLOD:!1},this.updaters=[],this.nodes=[],this.analyzing=!1}build(r,e){this.buildShader("vertex",r),this.buildShader("fragment",e);for(let t=0;t<this.requires.uv.length;t++)if(this.requires.uv[t]){let o=t>0?t+1:"";this.addVaryCode("varying vec2 vUv"+o+";"),t>0&&this.addVertexParsCode("attribute vec2 uv"+o+";"),this.addVertexFinalCode("vUv"+o+" = uv"+o+";")}return this.requires.color[0]&&(this.addVaryCode("varying vec4 vColor;"),this.addVertexParsCode("attribute vec4 color;"),this.addVertexFinalCode("vColor = color;")),this.requires.color[1]&&(this.addVaryCode("varying vec4 vColor2;"),this.addVertexParsCode("attribute vec4 color2;"),this.addVertexFinalCode("vColor2 = color2;")),this.requires.position&&(this.addVaryCode("varying vec3 vPosition;"),this.addVertexFinalCode("vPosition = transformed;")),this.requires.worldPosition,this.requires.normal&&(this.addVaryCode("varying vec3 vObjectNormal;"),this.addVertexFinalCode("vObjectNormal = normal;")),this.requires.modelMatrix&&this.addFragmentParsCode("uniform mat4 modelMatrix;"),this.requires.viewMatrix&&this.addFragmentParsCode("uniform mat4 viewMatrix;"),this.requires.projectionMatrix&&this.addFragmentParsCode("uniform mat4 projectionMatrix;"),this.requires.worldNormal&&(this.addVaryCode("varying vec3 vWNormal;"),this.addVertexFinalCode("vWNormal = inverseTransformDirection( transformedNormal, viewMatrix ).xyz;")),this.requires.vWorldViewDir&&(this.addVaryCode("varying vec3 vWorldViewDir;"),this.addVertexFinalCode("vWorldViewDir = isPerspectiveMatrix( projectionMatrix ) ? ( (modelMatrix * vec4(position, 1.0)).xyz - cameraPosition ) : vec3( -viewMatrix[0][2], -viewMatrix[1][2], -viewMatrix[2][2] );")),this}buildShader(r,e){this.resultCode[r]=e.build(this.setShader(r),"v4")}setMaterial(r,e){return this.defines={},this}addFlow(r,e,t){return this.addSlot(r).addCache(e).addContext(t)}removeFlow(){return this.removeSlot().removeCache().removeContext()}addCache(r){return this.cache=r??"",this.caches.push(this.cache),this}removeCache(){return this.caches.pop(),this.cache=this.caches[this.caches.length-1]||"",this}addContext(r){return this.context=Object.assign({},this.context,r),this.context.extra=this.context.extra||{},this.contexts.push(this.context),this}removeContext(){return this.contexts.pop(),this.context=this.contexts[this.contexts.length-1]||{},this}addSlot(r){return this.slot=r||"",this.slots.push(this.slot),this}removeSlot(){return this.slots.pop(),this.slot=this.slots[this.slots.length-1]||"",this}addFragmentVariable(r,e){this.fragmentVariables[r]===void 0&&(this.addFragmentCode(`${e} ${r};`),this.fragmentVariables[r]="")}addFragmentParsVariable(r,e){this.fragmentParsVariables[r]===void 0&&(this.addFragmentParsCode(`${e} ${r};`),this.fragmentParsVariables[r]="")}addVertexParsVariable(r,e){this.vertexParsVariables[r]===void 0&&(this.addVertexParsCode(`${e} ${r};`),this.vertexParsVariables[r]="")}addVertexCode(r){this.addCode(r,"vertex")}addFragmentCode(r){this.addCode(r,"fragment")}addCode(r,e){this.code[e??this.shader]+=r+`
125
+ `}addVertexNodeCode(r){this.addNodeCode(r,"vertex")}addFragmentNodeCode(r){this.addNodeCode(r,"fragment")}addNodeCode(r,e){this.nodeCode[e??this.shader]+=r+`
126
+ `}clearNodeCode(r){r=r??this.shader;let e=this.nodeCode[r];return this.nodeCode[r]="",e}clearVertexNodeCode(){return this.clearNodeCode("vertex")}clearFragmentNodeCode(){return this.clearNodeCode("fragment")}addVertexFinalCode(r){this.addFinalCode(r,"vertex")}addFragmentFinalCode(r){this.addFinalCode(r,"fragment")}addFinalCode(r,e){this.finalCode[e??this.shader]+=r+`
127
+ `}addVertexParsCode(r){this.addParsCode(r,"vertex")}addFragmentParsCode(r){this.addParsCode(r,"fragment")}addParsCode(r,e){this.parsCode[e??this.shader]+=r+`
128
+ `}addVaryCode(r){this.addVertexParsCode(r),this.addFragmentParsCode(r)}isCache(r){return this.caches.indexOf(r)!==-1}isSlot(r){return this.slots.indexOf(r)!==-1}define(r,e){this.defines[r]=e===void 0?1:e}require(r){this.requires[r]=!0}isDefined(r){return this.defines[r]!==void 0}getVar(r,e,t,o="varying",i="V",s=""){let l=this.getVars(o),c=l[r];if(!c){let u=l.length;c={name:t||"node"+i+u+(s?"_"+s:""),type:e},l.push(c),l[r]=c}return c}getTempVar(r,e,t,o){return this.getVar(r,e,t,this.shader,"T",o)}getAttribute(r,e){if(!this.attributes[r]){let t=this.getVar(r,e);this.addVertexParsCode("attribute "+e+" "+r+";"),this.addVertexFinalCode(t.name+" = "+r+";"),this.attributes[r]={varying:t,name:r,type:e}}return this.attributes[r]}getCode(r){return[this.prefixCode,this.parsCode[r],this.getVarListCode(this.getVars("varying"),"varying"),this.getVarListCode(this.inputs.uniforms[r],"uniform"),this.getVarListCode(this.inputs.arrayUniforms[r],"uniform"),this.getIncludesCode("consts",r),this.getIncludesCode("structs",r),this.getIncludesCode("functions",r),"void main() {",this.getVarListCode(this.getVars(r)),this.code[r],this.resultCode[r],this.finalCode[r],"}"].join(`
129
+ `)}getVarListCode(r,e){e=e??"";let t="";for(let o=0,i=r.length;o<i;++o){let s=r[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("[]")?t+=e+" "+a.substring(0,a.length-2)+" "+c+`[${u}];
130
+ `:t+=e+" "+a+" "+c+`;
131
+ `}return t}getVars(r){return this.inputs.vars[r??this.shader]}getNodeData(r){let e=r instanceof dt?r.uuid:r;return this.nodeData[e]=this.nodeData[e]||{}}createUniform(r,e,t,o,i,s){if(e.includes("[]")){let l=this.inputs.arrayUniforms,c=l.list.length,u=new ss({type:e,size:t.size,name:o||"nodeUA"+c+(s?"_"+s:""),node:t,needsUpdate:i});return l.list.push(u),l[r].push(u),l[r][u.name]=u,this.uniforms[u.name]=u,u}else{let l=this.inputs.uniforms,c=l.list.length,u=new ss({type:e,name:o||"nodeU"+c+(s?"_"+s:""),node:t,needsUpdate:i});return l.list.push(u),l[r].push(u),l[r][u.name]=u,this.uniforms[u.name]=u,u}}createVertexUniform(r,e,t,o,i){return this.createUniform("vertex",r,e,t,o,i)}createFragmentUniform(r,e,t,o,i){return this.createUniform("fragment",r,e,t,o,i)}include(r,e,t){let o;if(r=typeof r=="string"?nt.get(r):r,this.context.include===!1)return r.name;r instanceof X?o=this.includes.functions:r instanceof we?o=this.includes.consts:r instanceof ai&&(o=this.includes.structs);let i=o[this.shader]=o[this.shader]||[];if(r){let s=i[r.name];if(s||(s=i[r.name]={node:r,deps:[]},i.push(s),s.src=r.build(this,"source")),r instanceof X&&e&&i[e.name]&&i[e.name].deps.indexOf(r)===-1&&(i[e.name].deps.push(r),r.includes?.length)){let l=0;do this.include(r.includes[l++],e);while(l<r.includes.length)}return t&&(s.src=t),r.name}else throw new Error("Include not found.")}colorToVectorProperties(r){return r.replace("r","x").replace("g","y").replace("b","z").replace("a","w")}colorToVector(r){return r.replace(/c/g,"v3")}getIncludes(r,e){return this.includes[r][e||this.shader]}getConstructorFromLength(r){return Qw[r-1]}isTypeMatrix(r){return/^m/.test(r)}getTypeLength(r){return r==="f"?1:parseInt(this.colorToVector(r).substr(1))}getTypeFromLength(r){return r===1?"f":"v"+r}findNode(...r){for(let e=0;e<arguments.length;e++){let t=r[e];if(t?.isNode)return t}}resolve(...r){for(let e=0;e<arguments.length;e++){let t=r[e];if(t!==void 0){if(t.isNode)return t;if(t.isTexture)switch(t.mapping){case fr.CubeReflectionMapping:case fr.CubeRefractionMapping:return new ul(t);case fr.CubeUVReflectionMapping:return new dl(new Rt(t));default:return new Rt(t)}else{if(t.isVector2)return new ut(t);if(t.isVector3)return new yt(t);if(t.isVector4)return new Qt(t)}}}}format(r,e,t){switch(this.colorToVector(t+" <- "+e)){case"f <- v2":return r+".x";case"f <- v3":return r+".x";case"f <- v4":return r+".x";case"f <- i":case"f <- b":return"float( "+r+" )";case"v2 <- f":return"vec2( "+r+" )";case"v2 <- v3":return r+".xy";case"v2 <- v4":return r+".xy";case"v2 <- i":case"v2 <- b":return"vec2( float( "+r+" ) )";case"v3 <- f":return"vec3( "+r+" )";case"v3 <- v2":return"vec3( "+r+", 0.0 )";case"v3 <- v4":return r+".xyz";case"v3 <- i":case"v3 <- b":return"vec2( float( "+r+" ) )";case"v4 <- f":return"vec4( "+r+" )";case"v4 <- v2":return"vec4( "+r+", 0.0, 1.0 )";case"v4 <- v3":return"vec4( "+r+", 1.0 )";case"v4 <- i":case"v4 <- b":return"vec4( float( "+r+" ) )";case"i <- f":case"i <- b":return"int( "+r+" )";case"i <- v2":return"int( "+r+".x )";case"i <- v3":return"int( "+r+".x )";case"i <- v4":return"int( "+r+".x )";case"b <- f":return"( "+r+" != 0.0 )";case"b <- v2":return"( "+r+" != vec2( 0.0 ) )";case"b <- v3":return"( "+r+" != vec3( 0.0 ) )";case"b <- v4":return"( "+r+" != vec4( 0.0 ) )";case"b <- i":return"( "+r+" != 0 )"}return r}getTypeByFormat(r){return Jw[r]||r}getFormatByType(r){return e_[r]||r}getUUID(r,e){return e=e!==void 0?e:!0,e&&this.cache&&(r=this.cache+"-"+r),r}getElementByIndex(r){return Th[r]}getIndexByElement(r){return Th.indexOf(r)}isShader(r){return this.shader===r}setShader(r){return this.shader=r,this}mergeDefines(r){for(let e in r)this.defines[e]=r[e];return this.defines}mergeUniform(r){for(let e in r)this.uniforms[e]=r[e];return this.uniforms}getTextureEncodingFromMap(r){let e;return r?r.isTexture&&(e=r.encoding):e=fr.LinearEncoding,e===fr.LinearEncoding&&this.context.gamma&&(e=fr.sRGBEncoding),e}};var je=require("three");var Ie=class extends Ge{constructor(e=0,t,o,i){super("c");this.nodeType="Color";this.value=e instanceof it?e:new it(e||0,t,o,i)}setRGBA(e){this.value.setRGBA(e.r,e.g,e.b,e.a)}generate(e,t,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,t,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,t)):(c.fragment||(c.fragment=e.createFragmentUniform(i,this,s,l,this.getLabel())),e.format(c.fragment.name,i,t))}generateReadonly(e,t,o,i,s,l){return e.format("vec3("+this.value.r+", "+this.value.g+", "+this.value.b+")",i,t)}};var be=class extends Ge{constructor(e){super("i");this.nodeType="Int";this.value=Math.floor(e??0)}generateReadonly(e,t,o,i,s,l){return e.format(this.value.toString(),i,t)}};var fl=require("three");var Xo=class extends dt{constructor(){super("basic");this.nodeType="Basic";this.color=new Ie(5855577),this.shadingAlpha=new Q(1),this.shadingBlend=new be(0)}get category(){return"phong"}generate(e){let t;if(e.isShader("vertex")){let o=this.position?this.position.analyzeAndFlow(e,"v3",{cache:"position"}):void 0;e.mergeUniform(fl.UniformsUtils.merge([fl.UniformsLib.fog])),e.addParsCode(["varying vec3 vViewPosition;","varying vec3 vWPosition;","#include <fog_pars_vertex>","#include <normal_pars_vertex>"].join(`
132
+ `));let i=["#include <beginnormal_vertex>",`
133
133
  #if !defined( USE_LAYER_DISPLACE )
134
134
  #include <defaultnormal_vertex>
135
135
  #endif
@@ -145,11 +145,11 @@
145
145
  #if !defined( USE_LAYER_DISPLACE )
146
146
  #include <begin_vertex>
147
147
  #endif /* !USE_LAYER_DISPLACE */
148
- `];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),e=n.join(`
149
- `)}else{this.color===void 0&&(this.color=new CA(5855577)),this.color.analyze(A,{slot:"color"}),this.alpha&&this.alpha.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"});let r=this.color.flow(A,"c",{slot:"color"}),n=this.alpha?this.alpha.flow(A,"f"):void 0,i=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0;A.requires.transparent=n!==void 0,A.addParsCode(["varying vec3 vWPosition;","#include <fog_pars_fragment>","#include <dithering_pars_fragment>","varying vec3 vViewPosition;","#include <normal_pars_fragment>"].join(`
150
- `));let a=["#include <normal_fragment_begin>",r.code];n&&a.push(n.code,"#ifdef ALPHATEST"," if ( "+n.result+" <= ALPHATEST ) discard;","#endif"),i?a.push(i.code,`vec3 outgoingLight = ${r.result};`,`vec3 finalColor = spe_blend(outgoingLight, ${i.result}, 1.0, SPE_BLENDING_NORMAL);`):a.push(`vec3 finalColor = ${r.result};`),n?a.push(`gl_FragColor = vec4( finalColor, accumAlpha * ${n.result} );`):a.push("gl_FragColor = vec4("+r.result+", 1.0 );"),a.push("#include <fog_fragment>","#include <dithering_fragment>"),e=a.join(`
151
- `)}return e}};var ai=require("three");var ft=class extends RA{constructor(A=1,e){super("f[]");this.nodeType="FloatArray";this.size=A,this.value=Array.isArray(e)?e:typeof e=="number"?new Array(A).fill(e):new Array(A).fill(0)}};var ye={normalRenderTarget:new Ve,normalRenderTargetDepth:new Ve,transmissionRenderTarget:new Ve,transmissionSize:new de(2048,2048),transmissionRenderTargetDepth:new Ve,pixelRatioNode:new _(1),resolution:new de,penumbraSize:new ft(5,.5)};for(let o of Object.values(ye))o.isRenderGlobal=!0;var li=class extends ce{constructor(){super("lambert");this.nodeType="Lambert";this.color=new CA(5855577),this.emissive=new CA(0),this.emissiveIntensity=new _(1),this.shadingAlpha=new _(1),this.shadingBlend=new vA(0)}get category(){return"lambert"}build(A){let e;if(A.define("LAMBERT"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(ai.UniformsUtils.merge([ai.UniformsLib.fog,ai.UniformsLib.lights])),A.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(`
152
- `));let n=["#include <beginnormal_vertex>",`
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;"),t=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(`
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>"),t=l.join(`
151
+ `)}return t}};var ls=require("three");var mr=class extends Ge{constructor(e=1,t){super("f[]");this.nodeType="FloatArray";this.size=e,this.value=Array.isArray(t)?t:typeof t=="number"?new Array(e).fill(t):new Array(e).fill(0)}};var gt={normalRenderTarget:new Rt,normalRenderTargetDepth:new Rt,transmissionRenderTarget:new Rt,transmissionSize:new ut(2048,2048),transmissionRenderTargetDepth:new Rt,pixelRatioNode:new Q(1),resolution:new ut,penumbraSize:new mr(5,.5)};for(let n of Object.values(gt))n.isRenderGlobal=!0;var cs=class extends dt{constructor(){super("lambert");this.nodeType="Lambert";this.color=new Ie(5855577),this.emissive=new Ie(0),this.emissiveIntensity=new Q(1),this.shadingAlpha=new Q(1),this.shadingBlend=new be(0)}get category(){return"lambert"}build(e){let t;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(ls.UniformsUtils.merge([ls.UniformsLib.fog,ls.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(`
152
+ `));let i=["#include <beginnormal_vertex>",`
153
153
  #ifndef USE_LAYER_DISPLACE
154
154
  #include <defaultnormal_vertex>
155
155
  #endif
@@ -165,7 +165,7 @@
165
165
  #ifndef USE_LAYER_DISPLACE
166
166
  #include <begin_vertex>
167
167
  #endif
168
- `];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>",`
168
+ `];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>",`
169
169
  vec3 diffuse = vec3( 1.0 );
170
170
  GeometricContext geometry;
171
171
  geometry.position = mvPosition.xyz;
@@ -239,23 +239,23 @@
239
239
  }
240
240
  #pragma unroll_loop_end
241
241
  #endif
242
- `," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),e=n.join(`
243
- `)}else{A.mergeUniform({penumbraSize:ye.penumbraSize}),this.color===void 0&&(this.color=new CA(5855577)),this.color.analyze(A,{slot:"color"}),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.emissive.flow(A,"c",{slot:"emissive"}),i=this.emissiveIntensity.flow(A,"f",{slot:"emissive"}),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),d=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.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(`
244
- `));let c=["#include <normal_fragment_begin>",`
242
+ `," #include <shadowmap_vertex>"," #include <fog_vertex>"),i.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),t=i.join(`
243
+ `)}else{e.mergeUniform({penumbraSize:gt.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"),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(`
244
+ `));let d=["#include <normal_fragment_begin>",`
245
245
  // NOTE: gl_FrontFacing alternative using face normal estimation.
246
246
  vec3 viewdx = dFdx(vViewPosition);
247
247
  vec3 viewdy = dFdy(vViewPosition);
248
248
  vec3 faceNormal = normalize(cross(viewdx, viewdy));
249
249
  bool isFrontFacing = (dot(normal, faceNormal) >= 0.0);
250
- `,"#include <clipping_planes_fragment>"];c.push(r.code,"vec3 diffuseColor = "+r.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.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();"),n&&c.push(n.code,"reflectedLight.directDiffuse += "+n.result+" * "+i.result+";"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),c.push(`
250
+ `,"#include <clipping_planes_fragment>"];d.push(o.code,"vec3 diffuseColor = "+o.result+";","ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"),a&&d.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),d.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&&d.push(i.code,"reflectedLight.directDiffuse += "+i.result+" * "+s.result+";"),d.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;"),d.push(`
251
251
  if (outgoingLight != diffuseColor) {
252
252
  float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
253
- accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
254
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
253
+ accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
254
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
255
255
  }
256
- `),d&&c.push(d.code,`outgoingLight = spe_blend(outgoingLight, ${d.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),e=c.join(`
257
- `)}return e}};var ci=require("three");var fa=class extends ce{constructor(){super("phong");this.nodeType="Phong";this.color=new CA(5855577),this.specular=new CA(1118481),this.shininess=new _(30),this.shadingAlpha=new _(1),this.shadingBlend=new vA(0)}get category(){return"phong"}build(A){let e;if(A.define("PHONG"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(ci.UniformsUtils.merge([ci.UniformsLib.fog,ci.UniformsLib.lights])),A.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(`
258
- `));let n=["#include <beginnormal_vertex>",`
256
+ `),u&&d.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),a?d.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):d.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),d.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=d.join(`
257
+ `)}return t}};var ds=require("three");var ml=class extends dt{constructor(){super("phong");this.nodeType="Phong";this.color=new Ie(5855577),this.specular=new Ie(1118481),this.shininess=new Q(30),this.shadingAlpha=new Q(1),this.shadingBlend=new be(0)}get category(){return"phong"}build(e){let t;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(ds.UniformsUtils.merge([ds.UniformsLib.fog,ds.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(`
258
+ `));let i=["#include <beginnormal_vertex>",`
259
259
  #ifndef USE_LAYER_DISPLACE
260
260
  #include <defaultnormal_vertex>
261
261
  #endif
@@ -272,9 +272,9 @@
272
272
  #ifndef USE_LAYER_DISPLACE
273
273
  #include <begin_vertex>
274
274
  #endif
275
- `];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),e=n.join(`
276
- `)}else{A.mergeUniform({penumbraSize:ye.penumbraSize}),this.color===void 0&&(this.color=new CA(5855577)),this.color.analyze(A,{slot:"color"}),this.specular.analyze(A),this.shininess.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.specular.flow(A,"c"),i=this.shininess.flow(A,"f"),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),d=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.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(`
277
- `));let c=["#include <normal_fragment_begin>",`
275
+ `];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;"),t=i.join(`
276
+ `)}else{e.mergeUniform({penumbraSize:gt.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"),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(`
277
+ `));let d=["#include <normal_fragment_begin>",`
278
278
  // NOTE: gl_FrontFacing alternative using face normal estimation.
279
279
  vec3 viewdx = dFdx(vViewPosition);
280
280
  vec3 viewdy = dFdy(vViewPosition);
@@ -282,15 +282,15 @@
282
282
  if (dot(normal, faceNormal) < 0.0) {
283
283
  normal *= -1.0;
284
284
  }
285
- `," BlinnPhongMaterial material;"];c.push(r.code," vec3 diffuseColor = "+r.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );"," vec3 totalEmissiveRadiance = emissive;",n.code," vec3 specular = "+n.result+";",i.code," float shininess = max( 0.0001, "+i.result+" );"," float specularStrength = 1.0;"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.push("material.diffuseColor = diffuseColor;"),c.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),c.push(`
285
+ `," BlinnPhongMaterial material;"];d.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&&d.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),d.push("material.diffuseColor = diffuseColor;"),d.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),d.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;"),d.push(`
286
286
  if (outgoingLight != diffuseColor) {
287
287
  float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
288
- accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
289
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
288
+ accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
289
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
290
290
  }
291
- `),d&&c.push(d.code,`outgoingLight = spe_blend(outgoingLight, ${d.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),e=c.join(`
292
- `)}return e}};var dn=require("three");var di=class extends ce{constructor(){super("standard");this.nodeType="Standard";this.color=new CA(5855577),this.roughness=new _(.3),this.metalness=new _(0),this.reflectivity=new _(.5),this.shadingAlpha=new _(1),this.shadingBlend=new vA(0)}get category(){return"physical"}build(A){let e;if(A.define("STANDARD"),A.requires.lights=!0,A.extensions.derivatives=!0,A.extensions.shaderTextureLOD=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(dn.UniformsUtils.merge([dn.UniformsLib.fog,dn.UniformsLib.lights])),dn.UniformsLib.LTC_1&&(A.uniforms.ltc_1={value:void 0},A.uniforms.ltc_2={value:void 0}),A.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(`
293
- `));let n=["#include <beginnormal_vertex>",`
291
+ `),u&&d.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),a?d.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):d.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),d.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=d.join(`
292
+ `)}return t}};var ui=require("three");var us=class extends dt{constructor(){super("standard");this.nodeType="Standard";this.color=new Ie(5855577),this.roughness=new Q(.3),this.metalness=new Q(0),this.reflectivity=new Q(.5),this.shadingAlpha=new Q(1),this.shadingBlend=new be(0)}get category(){return"physical"}build(e){let t;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(ui.UniformsUtils.merge([ui.UniformsLib.fog,ui.UniformsLib.lights])),ui.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(`
293
+ `));let i=["#include <beginnormal_vertex>",`
294
294
  #if !defined( USE_LAYER_DISPLACE )
295
295
  #include <defaultnormal_vertex>
296
296
  #endif
@@ -306,9 +306,9 @@
306
306
  #if !defined( USE_LAYER_DISPLACE )
307
307
  #include <begin_vertex>
308
308
  #endif /* !USE_LAYER_DISPLACE */
309
- `];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push("#include <project_vertex>","#include <fog_vertex>","#include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;","#include <worldpos_vertex>","#include <shadowmap_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),e=n.join(`
310
- `)}else{A.mergeUniform({penumbraSize:ye.penumbraSize});let r={gamma:!0};this.color===void 0&&(this.color=new CA(5855577)),this.color.analyze(A,{slot:"color",context:r}),this.roughness.analyze(A),this.metalness.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A),this.reflectivity&&this.reflectivity.analyze(A);let n=this.color.flow(A,"c",{slot:"color",context:r}),i=this.roughness.flow(A,"f"),a=this.metalness.flow(A,"f"),l=this.shadingAlpha.flow(A,"f"),d=this.shadingBlend.flow(A,"i"),s=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,c=this.alpha?this.alpha.flow(A,"f"):void 0,u=this.reflectivity?this.reflectivity.flow(A,"f"):void 0;A.requires.transparent=c!==void 0,A.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(`
311
- `));let p=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
309
+ `];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;"),t=i.join(`
310
+ `)}else{e.mergeUniform({penumbraSize:gt.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"),u=this.shadingBlend.flow(e,"i"),a=this.afterColor?this.afterColor.flow(e,"c",{slot:"afterColor"}):void 0,d=this.alpha?this.alpha.flow(e,"f"):void 0,p=this.reflectivity?this.reflectivity.flow(e,"f"):void 0;e.requires.transparent=d!==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(`
311
+ `));let f=["#include <clipping_planes_fragment>"," #include <normal_fragment_begin>",`
312
312
  // NOTE: gl_FrontFacing alternative using face normal estimation.
313
313
  vec3 viewdx = dFdx(vViewPosition);
314
314
  vec3 viewdy = dFdy(vViewPosition);
@@ -316,15 +316,15 @@
316
316
  if (dot(normal, faceNormal) < 0.0) {
317
317
  normal *= -1.0;
318
318
  }
319
- `," PhysicalMaterial material;"," material.diffuseColor = vec3( 1.0 );"];p.push(n.code," vec3 diffuseColor = "+n.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",i.code," float roughnessFactor = "+i.result+";",a.code," float metalnessFactor = "+a.result+";"),c&&p.push(c.code,"#ifdef ALPHATEST"," if ( "+c.result+" <= ALPHATEST ) discard;","#endif"),p.push("vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );","float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );"),p.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 );"),u?p.push(u.code,"material.specularColor = mix( vec3( 0.16 * pow2( "+u.result+" ) ), diffuseColor, metalnessFactor );"):p.push("material.specularColor = mix( vec3( 0.04 ), diffuseColor, metalnessFactor );"),p.push("#include <lights_fragment_begin>"),p.push("#include <lights_fragment_end>"),p.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular;"),p.push(`
319
+ `," 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+";"),d&&f.push(d.code,"#ifdef ALPHATEST"," if ( "+d.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 );"),p?f.push(p.code,"material.specularColor = mix( vec3( 0.16 * pow2( "+p.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(`
320
320
  if (outgoingLight != diffuseColor) {
321
321
  float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
322
- accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
323
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${d.result} );
322
+ accumAlpha += ( 1.0 - accumAlpha ) * ${c.result} * lightAccu;
323
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${c.result}, ${u.result} );
324
324
  }
325
- `),s&&p.push(s.code,`outgoingLight = spe_blend(outgoingLight, ${s.result}, 1.0, SPE_BLENDING_NORMAL);`),c?p.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${c.result} );`):p.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),p.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),e=p.join(`
326
- `)}return e}};var ui=require("three");var pi=class extends ce{constructor(){super("toon");this.nodeType="Toon";this.color=new CA(5855577),this.specular=new CA(1118481),this.shininess=new _(30),this.shadingAlpha=new _(1),this.shadingBlend=new vA(0)}get category(){return"toon"}build(A){let e;if(A.define("TOON"),A.requires.lights=!0,A.extensions.derivatives=!0,A.isShader("vertex")){let r=this.position?this.position.analyzeAndFlow(A,"v3",{cache:"position"}):void 0;A.mergeUniform(ui.UniformsUtils.merge([ui.UniformsLib.fog,ui.UniformsLib.lights])),A.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(`
327
- `));let n=["#include <beginnormal_vertex>",`
325
+ `),a&&f.push(a.code,`outgoingLight = spe_blend(outgoingLight, ${a.result}, 1.0, SPE_BLENDING_NORMAL);`),d?f.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${d.result} );`):f.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),f.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=f.join(`
326
+ `)}return t}};var ps=require("three");var fs=class extends dt{constructor(){super("toon");this.nodeType="Toon";this.color=new Ie(5855577),this.specular=new Ie(1118481),this.shininess=new Q(30),this.shadingAlpha=new Q(1),this.shadingBlend=new be(0)}get category(){return"toon"}build(e){let t;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(ps.UniformsUtils.merge([ps.UniformsLib.fog,ps.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(`
327
+ `));let i=["#include <beginnormal_vertex>",`
328
328
  #ifndef USE_LAYER_DISPLACE
329
329
  #include <defaultnormal_vertex>
330
330
  #endif
@@ -340,8 +340,8 @@
340
340
  #ifndef USE_LAYER_DISPLACE
341
341
  #include <begin_vertex>
342
342
  #endif
343
- `];r&&n.push(r.code,r.result?"displaced_position = "+r.result+";":""),n.push("transformed = displaced_position;","transformedNormal = normalMatrix * displaced_normal;","#ifndef FLAT_SHADED"," vNormal = transformedNormal;","#endif"),n.push(" #include <project_vertex>"," #include <fog_vertex>"," #include <clipping_planes_vertex>"," vViewPosition = - mvPosition.xyz;"," #include <worldpos_vertex>"," #include <shadowmap_vertex>"," #include <fog_vertex>"),n.push("vWPosition = ( modelMatrix * vec4( transformed, 1.0 ) ).xyz;"),e=n.join(`
344
- `)}else{A.mergeUniform({penumbraSize:ye.penumbraSize}),this.color===void 0&&(this.color=new CA(5855577)),this.color.analyze(A,{slot:"color"}),this.specular.analyze(A),this.shininess.analyze(A),this.shadingAlpha.analyze(A),this.shadingBlend.analyze(A),this.afterColor&&this.afterColor.analyze(A,{slot:"afterColor"}),this.alpha&&this.alpha.analyze(A);let r=this.color.flow(A,"c",{slot:"color"}),n=this.specular.flow(A,"c"),i=this.shininess.flow(A,"f"),a=this.shadingAlpha.flow(A,"f"),l=this.shadingBlend.flow(A,"i"),d=this.afterColor?this.afterColor.flow(A,"c",{slot:"afterColor"}):void 0,s=this.alpha?this.alpha.flow(A,"f"):void 0;A.requires.transparent=s!==void 0,A.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>",`
343
+ `];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;"),t=i.join(`
344
+ `)}else{e.mergeUniform({penumbraSize:gt.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"),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>",`
345
345
  varying vec3 vViewPosition;
346
346
  struct ToonMaterial {
347
347
  vec3 diffuseColor;
@@ -362,7 +362,7 @@
362
362
  #define RE_IndirectDiffuse RE_IndirectDiffuse_Toon
363
363
  #define Material_LightProbeLOD( material ) (0)
364
364
  `,"#include <shadowmap_pars_fragment>","#include <bumpmap_pars_fragment>","#include <normalmap_pars_fragment>"].join(`
365
- `));let c=["#include <normal_fragment_begin>",`
365
+ `));let d=["#include <normal_fragment_begin>",`
366
366
  // NOTE: gl_FrontFacing alternative using face normal estimation.
367
367
  vec3 viewdx = dFdx(vViewPosition);
368
368
  vec3 viewdy = dFdy(vViewPosition);
@@ -370,14 +370,14 @@
370
370
  if (dot(normal, faceNormal) < 0.0) {
371
371
  normal *= -1.0;
372
372
  }
373
- `," ToonMaterial material;"];c.push(r.code," vec3 diffuseColor = "+r.result+";"," ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );",n.code," vec3 specular = "+n.result+";",i.code," float shininess = max( 0.0001, "+i.result+" );"," float specularStrength = 1.0;"),s&&c.push(s.code,"#ifdef ALPHATEST","if ( "+s.result+" <= ALPHATEST ) discard;","#endif"),c.push("material.diffuseColor = diffuseColor;"),c.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),c.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),c.push(`
373
+ `," ToonMaterial material;"];d.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&&d.push(a.code,"#ifdef ALPHATEST","if ( "+a.result+" <= ALPHATEST ) discard;","#endif"),d.push("material.diffuseColor = diffuseColor;"),d.push("material.specularColor = specular;","material.specularShininess = shininess;","material.specularStrength = specularStrength;","#include <lights_fragment_begin>","#include <lights_fragment_end>"),d.push("vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular;"),d.push(`
374
374
  if (outgoingLight != diffuseColor) {
375
375
  float lightAccu = clamp( length( reflectedLight.directSpecular + reflectedLight.indirectSpecular ), 0.0, 1.0 );
376
- accumAlpha += ( 1.0 - accumAlpha ) * ${a.result} * lightAccu;
377
- outgoingLight = spe_blend( diffuseColor, outgoingLight, ${a.result}, ${l.result} );
376
+ accumAlpha += ( 1.0 - accumAlpha ) * ${l.result} * lightAccu;
377
+ outgoingLight = spe_blend( diffuseColor, outgoingLight, ${l.result}, ${c.result} );
378
378
  }
379
- `),d&&c.push(d.code,`outgoingLight = spe_blend(outgoingLight, ${d.result}, 1.0, SPE_BLENDING_NORMAL);`),s?c.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${s.result} );`):c.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),c.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),e=c.join(`
380
- `)}return e}};var br=class extends RA{constructor(A){super("b");this.nodeType="Bool";this.value=A??!1}generateReadonly(A,e,r,n){return A.format(this.value?"true":"false",n,e)}};var Pm=require("three");var un=class extends RA{constructor(A){super("m3");this.nodeType="Matrix3";this.value=A??new Pm.Matrix3}generateReadonly(A,e,r,n,i,a){return A.format("mat3("+this.value.elements.join(", ")+")",n,e)}get elements(){return this.value.elements}set elements(A){this.value.fromArray(A)}};var $l=require("three");var mt=class extends RA{constructor(A=1,e){super("v4[]");this.nodeType="Vector4Array";this.size=A,this.value=Array.isArray(e)?e:e instanceof $l.Vector4?new Array(A).fill(e):new Array(A).fill(new $l.Vector4(0))}};var fi=(n=>(n.SIMPLEX="simplex3d",n.SIMPLEX_FRACTAL="simplex3dFractal",n.ASHIMA="simplexAshima",n.FBM="fbm",n.PERLIN="perlin",n))(fi||{}),ve=function(){let t=new K(`vec3 random3(vec3 c) {
379
+ `),u&&d.push(u.code,`outgoingLight = spe_blend(outgoingLight, ${u.result}, 1.0, SPE_BLENDING_NORMAL);`),a?d.push(`gl_FragColor = vec4( outgoingLight, accumAlpha * ${a.result} );`):d.push("gl_FragColor = vec4( outgoingLight, 1.0 );"),d.push("#include <encodings_fragment>","#include <fog_fragment>","#include <dithering_fragment>"),t=d.join(`
380
+ `)}return t}};var wo=class extends Ge{constructor(e){super("b");this.nodeType="Bool";this.value=e??!1}generateReadonly(e,t,o,i){return e.format(this.value?"true":"false",i,t)}};var Oh=require("three");var pi=class extends Ge{constructor(e){super("m3");this.nodeType="Matrix3";this.value=e??new Oh.Matrix3}generateReadonly(e,t,o,i,s,l){return e.format("mat3("+this.value.elements.join(", ")+")",i,t)}get elements(){return this.value.elements}set elements(e){this.value.fromArray(e)}};var Jc=require("three");var hr=class extends Ge{constructor(e=1,t){super("v4[]");this.nodeType="Vector4Array";this.size=e,this.value=Array.isArray(t)?t:t instanceof Jc.Vector4?new Array(e).fill(t):new Array(e).fill(new Jc.Vector4(0))}};var ms=(i=>(i.SIMPLEX="simplex3d",i.SIMPLEX_FRACTAL="simplex3dFractal",i.ASHIMA="simplexAshima",i.FBM="fbm",i.PERLIN="perlin",i))(ms||{}),bt=function(){let r=new X(`vec3 random3(vec3 c) {
381
381
  float j = 4096.0*sin(dot(c,vec3(17.0, 59.4, 15.0)));
382
382
  vec3 r;
383
383
  r.z = fract(512.0*j);
@@ -386,7 +386,7 @@
386
386
  j *= .125;
387
387
  r.y = fract(512.0*j);
388
388
  return r-0.5;
389
- }`),A=new K(`float simplex3d(vec3 p) {
389
+ }`),e=new X(`float simplex3d(vec3 p) {
390
390
  vec3 s = floor(p + dot(p, vec3(F3)));
391
391
  vec3 x = p - s + dot(s, vec3(G3));
392
392
 
@@ -417,7 +417,7 @@
417
417
  d *= w;
418
418
 
419
419
  return dot(d, vec4(52.0));
420
- }`,[t]);A.keywords.F3=new SA("float F3 0.3333333"),A.keywords.G3=new SA("float G3 0.1666667");let e=new K(`float simplex3dFractal(vec3 m) {
420
+ }`,[r]);e.keywords.F3=new we("float F3 0.3333333"),e.keywords.G3=new we("float G3 0.1666667");let t=new X(`float simplex3dFractal(vec3 m) {
421
421
  mat3 rot1 = mat3(-0.37, 0.36, 0.85,-0.14,-0.93, 0.34,0.92, 0.01,0.4);
422
422
  mat3 rot2 = mat3(-0.55,-0.39, 0.74, 0.33,-0.91,-0.24,0.77, 0.12,0.63);
423
423
  mat3 rot3 = mat3(-0.71, 0.52,-0.47,-0.08,-0.72,-0.68,-0.7,-0.45,0.56);
@@ -425,7 +425,7 @@
425
425
  + 0.2666667 * simplex3d(2.0 * m * rot2)
426
426
  + 0.1333333 * simplex3d(4.0 * m * rot3)
427
427
  + 0.0666667 * simplex3d(8.0 * m);
428
- }`,[A]),r=new K("vec4 permute(vec4 x){return mod(((x*34.0)+1.0)*x, 289.0);}"),n=new K("vec4 taylorInvSqrt(vec4 r){return 1.79284291400159 - 0.85373472095314 * r;}"),i=new K(`float simplexAshima(vec3 v) {
428
+ }`,[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) {
429
429
  const vec2 C = vec2(1.0/6.0, 1.0/3.0) ;
430
430
  const vec4 D = vec4(0.0, 0.5, 1.0, 2.0);
431
431
  vec3 i = floor(v + dot(v, C.yyy) );
@@ -470,7 +470,7 @@
470
470
  m = m * m;
471
471
  return 42.0 * dot( m*m, vec4( dot(p0,x0), dot(p1,x1),
472
472
  dot(p2,x2), dot(p3,x3) ) );
473
- }`,[r,n]),a=new K("vec4 mod289(vec4 x){return x - floor(x * (1.0 / 289.0)) * 289.0;}"),l=new K("vec4 perm(vec4 x){return mod289(((x * 34.0) + 1.0) * x);}",[a]),d=new K(`float noise(vec3 p){
473
+ }`,[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){
474
474
  vec3 a = floor(p);
475
475
  vec3 d = p - a;
476
476
  d = d * d * (3.0 - 2.0 * d);
@@ -485,7 +485,7 @@
485
485
  vec4 o3 = o2 * d.z + o1 * (1.0 - d.z);
486
486
  vec2 o4 = o3.yw * d.x + o3.xz * (1.0 - d.x);
487
487
  return o4.y * d.y + o4.x * (1.0 - d.y);
488
- }`,[l]),s=new K(`float fbm(vec3 x) {
488
+ }`,[c]),a=new X(`float fbm(vec3 x) {
489
489
  float v = 0.0;
490
490
  float a = 0.5;
491
491
  vec3 shift = vec3(100);
@@ -495,7 +495,7 @@
495
495
  a *= 0.5;
496
496
  }
497
497
  return v;
498
- }`,[d]);s.keywords.NUM_OCTAVES=new SA(`int NUM_OCTAVES ${5}`);let c=new K("vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}"),u=new K(`float perlin(vec3 P){
498
+ }`,[u]);a.keywords.NUM_OCTAVES=new we(`int NUM_OCTAVES ${5}`);let d=new X("vec3 fade(vec3 t) {return t*t*t*(t*(t*6.0-15.0)+10.0);}"),p=new X(`float perlin(vec3 P){
499
499
  vec3 Pi0 = floor(P);
500
500
  vec3 Pi1 = Pi0 + vec3(1.0);
501
501
  Pi0 = mod(Pi0, 289.0);
@@ -554,16 +554,16 @@
554
554
  vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
555
555
  float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
556
556
  return 2.2 * n_xyz;
557
- }`,[r,n,c]);return{simplex:A,simplexFractal:e,simplexAshima:i,fbm:s,perlin:u}}();var mi=class extends lA{constructor(A,e,r,n,i,a,l,d,s,c,u,p){super("v3");this.nodeType="Noise";this.scale=A,this.size=e,this.move=r,this.fA=n,this.fB=i,this.distortion=a,this.colorA=l,this.colorB=d,this.colorC=s,this.colorD=c,this.alpha=u,this.noiseType=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e,r,n,i){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let a=Object.values(fi)[this.noiseType.value],l=new K(`vec3 ${a}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) {
557
+ }`,[o,i,d]);return{simplex:e,simplexFractal:t,simplexAshima:s,fbm:a,perlin:p}}();var hs=class extends ce{constructor(e,t,o,i,s,l,c,u,a,d,p,f){super("v3");this.nodeType="Noise";this.scale=e,this.size=t,this.move=o,this.fA=i,this.fB=s,this.distortion=l,this.colorA=c,this.colorB=u,this.colorC=a,this.colorD=d,this.alpha=p,this.noiseType=f,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t,o,i,s){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let l=Object.values(ms)[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) {
558
558
  vec3 st = position / size;
559
559
  st /= scale;
560
- vec3 q = vec3(${a}(st),
561
- ${a}(st + vec3(1.0)),
562
- ${a}(st + vec3(1.0)));
563
- vec3 r = vec3(${a}(st + vec3(distortion, 1.0) * q + vec3(fA, 1.0) + move),
564
- ${a}(st + vec3(distortion, 1.0) * q + vec3(fB, 1.0) + move),
565
- ${a}(st * q));
566
- float f = ${a}(st + r);
560
+ vec3 q = vec3(${l}(st),
561
+ ${l}(st + vec3(1.0)),
562
+ ${l}(st + vec3(1.0)));
563
+ vec3 r = vec3(${l}(st + vec3(distortion, 1.0) * q + vec3(fA, 1.0) + move),
564
+ ${l}(st + vec3(distortion, 1.0) * q + vec3(fB, 1.0) + move),
565
+ ${l}(st * q));
566
+ float f = ${l}(st + r);
567
567
  vec4 color;
568
568
  color = mix(colorA, colorB, clamp((f * f) * 4.0, 0.0, 1.0));
569
569
  color = mix(color, colorC, clamp(length(q), 0.0, 1.0));
@@ -574,14 +574,14 @@
574
574
 
575
575
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
576
576
  return clamp(color, 0.0, 1.0).rgb;
577
- }`,[ve.simplex,ve.simplexFractal,ve.simplexAshima,ve.fbm,ve.perlin]),d=A.include(l),s=[];return s.push(this.scale.build(A,"f")),s.push(this.size.build(A,"v3")),s.push(this.move.build(A,"f")),s.push(this.fA.build(A,"v2")),s.push(this.fB.build(A,"v2")),s.push(this.distortion.build(A,"v2")),s.push(this.colorA.build(A,"v4")),s.push(this.colorB.build(A,"v4")),s.push(this.colorC.build(A,"v4")),s.push(this.colorD.build(A,"v4")),s.push(this.alpha.build(A,"f")),s.push(this.calpha),A.format(d+"("+s.join(",")+")",this.getType(A),e)}};mi.numOctaves=5;var Ac=class extends lA{constructor(A,e,r,n,i,a,l){super("v3");this.nodeType="Fresnel";this.color=A,this.bias=e,this.scale=r,this.intensity=n,this.factor=i,this.alpha=a,this.mode=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.isShader("fragment")){A.addFragmentVariable(this.calpha,"float");let r=A.include(Ac.Nodes.fresnel),n=[];return n.push(this.color.build(A,"c")),n.push(this.bias.build(A,"f")),n.push(this.scale.build(A,"f")),n.push(this.intensity.build(A,"f")),n.push(this.factor.build(A,"f")),n.push(this.alpha.build(A,"f")),n.push(this.mode.build(A,"i")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),e)}else return console.warn("FresnelNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}},hi=Ac;hi.Nodes=function(){return{fresnel:new K(`vec3 fresnel(vec3 color, float bias, float scale, float intensity, float factor, float alpha, int mode, out float calpha) {
577
+ }`,[bt.simplex,bt.simplexFractal,bt.simplexAshima,bt.fbm,bt.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),t)}};hs.numOctaves=5;var ed=class extends ce{constructor(e,t,o,i,s,l,c){super("v3");this.nodeType="Fresnel";this.color=e,this.bias=t,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,t){if(e.require("vWorldViewDir"),e.require("worldNormal"),e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(ed.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),t)}else return console.warn("FresnelNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}},ys=ed;ys.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) {
578
578
  float fresnel = bias + scale * pow( abs( factor + dot( normalize( vWorldViewDir ), normalize( vWNormal ) ) ), intensity );
579
579
 
580
580
  float lalpha = clamp( fresnel, 0.0, 1.0 ) * alpha;
581
581
  calpha = lalpha / clamp(lalpha + accumAlpha, 0.001, 1.0);
582
582
  accumAlpha += (1.0 - accumAlpha) * lalpha;
583
583
  return color;
584
- }`)}}();var ec=class extends lA{constructor(A,e,r,n,i,a,l){super("v3");this.nodeType="Rainbow";this.filmThickness=A,this.movement=e,this.wavelengths=r,this.noiseStrength=n,this.noiseScale=i,this.offset=a,this.alpha=l,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.isShader("fragment")){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(ec.Nodes.rainbow),n=[];return n.push(this.filmThickness.build(A,"f")),n.push(this.movement.build(A,"f")),n.push(this.wavelengths.build(A,"v3")),n.push(this.noiseStrength.build(A,"f")),n.push(this.noiseScale.build(A,"f")),n.push(this.offset.build(A,"v3")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),e)}else return console.warn("RainbowNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}},yi=ec;yi.Nodes=function(){let A=new K(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
584
+ }`)}}();var td=class extends ce{constructor(e,t,o,i,s,l,c){super("v3");this.nodeType="Rainbow";this.filmThickness=e,this.movement=t,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,t){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(td.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),t)}else return console.warn("RainbowNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}},gs=td;gs.Nodes=function(){let e=new X(`vec3 attenuation(vec3 wavelengths, float filmThickness, float movement, float noiseStrength, float noiseScale, vec3 offset) {
585
585
  vec3 st = position / noiseScale;
586
586
  vec3 q = vec3(simplex3d(st),
587
587
  simplex3d(st + vec3(1.0)),
@@ -594,7 +594,7 @@
594
594
  float noise = simplex3d(st + r);
595
595
 
596
596
  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);
597
- }`,[ve.simplex]);return{rainbow:new K(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) {
597
+ }`,[bt.simplex]);return{rainbow:new X(`vec3 rainbow(float filmThickness, float movement, vec3 wavelengths, float noiseStrength, float noiseScale, vec3 offset, float alpha, out float calpha) {
598
598
  vec3 res = clamp(attenuation(wavelengths, filmThickness, movement, noiseStrength, noiseScale, offset), 0.0, 2.0);
599
599
 
600
600
  float rainbowContribution = clamp(res.r + res.g + res.b, 0.0, 1.0);
@@ -603,21 +603,21 @@
603
603
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
604
604
 
605
605
  return res;
606
- }`,[A])}}();var tc=class extends lA{constructor(A,e,r,n,i,a,l,d,s,c,u,p,f,m,h,y){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=A,this.contourColor=e,this.outlineWidth=r,this.contourWidth=n,this.contourThreshold=i,this.outlineThreshold=a,this.contourFrequency=l,this.outlineSmoothing=d,this.contourDirection=s,this.positionalLines=c,this.compensation=u,this.resolution=p,this.normalMap=f,this.depthMap=m,this.pixelRatio=h,this.alpha=y,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e){if(A.require("vWorldViewDir"),A.require("worldNormal"),A.extensions.derivatives=!0,this.firstTime){let r=this.outlineWidth.build(A,"f"),n=this.resolution.build(A,"v2"),i=this.compensation.build(A,"b"),a=this.pixelRatio.build(A,"f");A.addVertexParsVariable("randomColor","attribute vec3"),A.addVertexParsVariable("extrudeNormal","attribute vec3"),A.addVertexParsVariable(r,"uniform float"),A.addVertexParsVariable(n,"uniform vec2"),A.addVertexParsVariable(i,"uniform bool"),A.addVertexParsVariable(a,"uniform float"),A.addVertexParsVariable("vID","flat out float"),A.addFragmentParsVariable("vID","flat in float");let l=`g${this.uuid.toString().replace(/-/g,"")}`;A.addVertexFinalCode(`
606
+ }`,[e])}}();var rd=class extends ce{constructor(e,t,o,i,s,l,c,u,a,d,p,f,m,h,y,g){super("v3");this.nodeType="Outline";this.firstTime=!0,this.outlineColor=e,this.contourColor=t,this.outlineWidth=o,this.contourWidth=i,this.contourThreshold=s,this.outlineThreshold=l,this.contourFrequency=c,this.outlineSmoothing=u,this.contourDirection=a,this.positionalLines=d,this.compensation=p,this.resolution=f,this.normalMap=m,this.depthMap=h,this.pixelRatio=y,this.alpha=g,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){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(`
607
607
  vID = randomColor.r;
608
- if (${i}) {
609
- vec4 ${l}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
608
+ if (${s}) {
609
+ vec4 ${c}_clipPosition = projectionMatrix * (modelViewMatrix * vec4(position, 1.0));
610
610
  // NOTE: For certain shapes, like spheres, we get incorrect extrusion when the
611
611
  // normals face the camera directly. So we hackily fix this by offsetting the normal
612
612
  // by a tiny amount.
613
- vec3 ${l}_clipNormal = mat3(projectionMatrix) * (mat3(modelViewMatrix) * extrudeNormal) + 0.0000001;
614
- vec2 ${l}_offset = normalize(${l}_clipNormal.xy) / ${n} * (${r} / 2.0) * ${l}_clipPosition.w * 2.0 * ${a};
615
- ${l}_clipPosition.xy += ${l}_offset;
613
+ vec3 ${c}_clipNormal = mat3(projectionMatrix) * (mat3(modelViewMatrix) * extrudeNormal) + 0.0000001;
614
+ vec2 ${c}_offset = normalize(${c}_clipNormal.xy) / ${i} * (${o} / 2.0) * ${c}_clipPosition.w * 2.0 * ${l};
615
+ ${c}_clipPosition.xy += ${c}_offset;
616
616
  // TODO(MAX): To handle multiple outline layers, we only want to extrude
617
617
  // if this offset is the biggest of all the potential offsets
618
- gl_Position = ${l}_clipPosition;
618
+ gl_Position = ${c}_clipPosition;
619
619
  }
620
- `)}if(A.isShader("fragment")){A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(tc.Nodes.outline),n=[];return n.push(this.outlineColor.build(A,"c")),n.push(this.contourColor.build(A,"c")),n.push(this.outlineWidth.build(A,"f")),n.push(this.contourWidth.build(A,"f")),n.push(this.contourThreshold.build(A,"f")),n.push(this.outlineThreshold.build(A,"f")),n.push(this.contourFrequency.build(A,"f")),n.push(this.outlineSmoothing.build(A,"f")),n.push(this.contourDirection.build(A,"v3")),n.push(this.positionalLines.build(A,"b")),n.push(this.resolution.build(A,"v2")),n.push(this.normalMap.getTexture(A,"t")),n.push(this.depthMap.getTexture(A,"t")),n.push(this.pixelRatio.build(A,"f")),n.push(this.compensation.build(A,"b")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),this.firstTime=!this.firstTime,A.format(r+"("+n.join(",")+")",this.getType(A),e)}else return console.warn("OutlineNode is not compatible with "+A.shader+" shader."),""}},gi=tc;gi.Nodes=function(){let A=new K(`
620
+ `)}if(e.isShader("fragment")){e.require("uv"),e.requires.uv=[!0],e.addFragmentVariable(this.calpha,"float");let o=e.include(rd.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),t)}else return console.warn("OutlineNode is not compatible with "+e.shader+" shader."),""}},xs=rd;xs.Nodes=function(){let e=new X(`
621
621
  float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outlineWidth, float pixelRatio)
622
622
  {
623
623
  vec2 texelSize = (vec2(1.0) / resolution) * outlineWidth * pixelRatio;
@@ -718,7 +718,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
718
718
  float edgeNormal = sqrt(dot(sobel_edge_h, sobel_edge_h) + dot(sobel_edge_v, sobel_edge_v));
719
719
  return edgeNormal;
720
720
  }
721
- `);return{outline:new K(`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) {
721
+ `);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) {
722
722
  vec3 result = outlineColor;
723
723
  float resultAlpha = 0.0;
724
724
 
@@ -757,11 +757,11 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
757
757
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
758
758
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
759
759
  return result;
760
- }`,[A])}}();var rc=class extends lA{constructor(A,e,r,n,i,a,l,d){super("v3");this.nodeType="Transmission";this.thickness=A,this.ior=e,this.roughness=r,this.transmissionSamplerSize=n,this.transmissionSamplerMap=i,this.transmissionDepthMap=a,this.aspectRatio=l,this.alpha=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e){if(A.extensions.shaderTextureLOD=!0,A.extensions.derivatives=!0,A.isShader("fragment")){A.define("NUM_SAMPLES",30),A.require("worldPosition"),A.requires.worldNormal=!0,A.requires.modelMatrix=!0,A.requires.projectionMatrix=!0,A.addFragmentVariable(this.calpha,"float");let r=A.include(rc.Nodes.transmission),n=[];return n.push(this.thickness.build(A,"f")),n.push(this.ior.build(A,"f")),n.push(this.roughness.build(A,"f")),n.push(this.transmissionSamplerSize.build(A,"v2")),n.push(this.transmissionSamplerMap.getTexture(A,"t")),n.push(this.transmissionDepthMap.getTexture(A,"t")),n.push(this.aspectRatio.build(A,"v2")),n.push("normal"),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),e)}else return console.warn("TransmissionNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}},xi=rc;xi.Nodes=function(){let A=new K(`
760
+ }`,[e])}}();var od=class extends ce{constructor(e,t,o,i,s,l,c,u){super("v3");this.nodeType="Transmission";this.thickness=e,this.ior=t,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,t){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(od.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),t)}else return console.warn("TransmissionNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}},vs=od;vs.Nodes=function(){let e=new X(`
761
761
  float gaussian(vec2 i) {
762
762
  const float sigma = float(NUM_SAMPLES) * .25;
763
763
  return exp( -.5* dot(i/=sigma,i) ) / ( 6.28 * sigma*sigma );
764
- }`),e=new K(`
764
+ }`),t=new X(`
765
765
  vec3 blur(sampler2D sp, vec2 U, vec2 scale, float lod, sampler2D dm, vec2 unrefractedU, vec2 aspectRatio) {
766
766
  // Slightly modified version of this:
767
767
  // https://www.shadertoy.com/view/ltScRG
@@ -791,7 +791,7 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
791
791
  a += gaussian;
792
792
  }
793
793
  return O / a;
794
- }`,[A]),r=new K(`
794
+ }`,[e]),o=new X(`
795
795
  vec3 getVolumeTransmissionRay( vec3 n, vec3 v, float thickness, float ior, mat4 modelMatrix ) {
796
796
  // Direction of refracted light.
797
797
  vec3 refractionVector = refract( -v, n, 1.0 / ior );
@@ -802,18 +802,18 @@ float sobelSample(sampler2D t, sampler2D d, vec2 uv, vec2 resolution, float outl
802
802
  modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
803
803
  // The thickness is specified in local space.
804
804
  return normalize( refractionVector ) * thickness * modelScale;
805
- }`),n=new K(`
805
+ }`),i=new X(`
806
806
  float applyIorToRoughness( float roughness, float ior ) {
807
807
  // Scale roughness with IOR so that an IOR of 1.0 results in no microfacet refraction and
808
808
  // an IOR of 1.5 results in the default amount of microfacet refraction.
809
809
  return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
810
- } `),i=new K(`
810
+ } `),s=new X(`
811
811
  vec3 getTransmissionSample( vec2 fragCoord, float roughness, float ior, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 unrefractedCoords, vec2 aspectRatio) {
812
812
  float framebufferLod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
813
813
  float lod = applyIorToRoughness(roughness, ior);
814
814
 
815
815
  return blur(transmissionSamplerMap, fragCoord, vec2(lod / (transmissionSamplerSize.x / 2.)), min(framebufferLod / 5.5, 8.5), transmissionDepthMap, unrefractedCoords, aspectRatio);
816
- }`,[n,e]),a=new K(`
816
+ }`,[i,t]),l=new X(`
817
817
  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 ) {
818
818
  vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
819
819
  vec3 refractedRayExit = position + transmissionRay;
@@ -831,7 +831,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
831
831
 
832
832
  // Sample framebuffer to get pixel the refracted ray hits.
833
833
  return getTransmissionSample( refractionCoords, roughness, ior, transmissionSamplerSize, transmissionSamplerMap, transmissionDepthMap, unrefractedCoords, aspectRatio );
834
- }`,[i,r]);return{transmission:new K(`
834
+ }`,[s,o]);return{transmission:new X(`
835
835
  vec3 transmission(float thickness, float ior, float roughness, vec2 transmissionSamplerSize, sampler2D transmissionSamplerMap, sampler2D transmissionDepthMap, vec2 aspectRatio, vec3 normal, float alpha, out float calpha) {
836
836
  vec3 v = vec3(0.);
837
837
  if (isOrthographic) {
@@ -845,17 +845,17 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
845
845
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
846
846
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
847
847
  return transmission;
848
- }`,[a])}}();var pn=class extends lA{constructor(A,e,r,n,i,a,l,d,s,c,u){super("v3");this.nodeType="Depth";this.gradientType=A,this.smooth=e,this.near=r,this.far=n,this.isVector=i,this.isWorldSpace=a,this.origin=l,this.direction=d,this.colors=s,this.steps=c,this.alpha=u,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e){let r=`g${this.uuid.toString().replace(/-/g,"")}`,n=new K(`vec3 ${r}_sdepth(float near, float far, vec3 origin, vec3 direction, vec4 colors[${r}_MAX_COLORS], float steps[${r}_MAX_COLORS], float alpha, out float calpha) {
848
+ }`,[l])}}();var fi=class extends ce{constructor(e,t,o,i,s,l,c,u,a,d,p){super("v3");this.nodeType="Depth";this.gradientType=e,this.smooth=t,this.near=o,this.far=i,this.isVector=s,this.isWorldSpace=l,this.origin=c,this.direction=u,this.colors=a,this.steps=d,this.alpha=p,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){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) {
849
849
  vec4 color = colors[0];
850
- #ifdef ${r}_IS_VECTOR
851
- #ifdef ${r}_LINEAR
852
- #ifdef ${r}_WORLDSPACE
850
+ #ifdef ${o}_IS_VECTOR
851
+ #ifdef ${o}_LINEAR
852
+ #ifdef ${o}_WORLDSPACE
853
853
  float depth = vectorLinearWorldSpaceDepth(direction, origin, near, far);
854
854
  #else
855
855
  float depth = vectorLinearObjectSpaceDepth(direction, origin, near, far);
856
856
  #endif
857
857
  #else
858
- #ifdef ${r}_WORLDSPACE
858
+ #ifdef ${o}_WORLDSPACE
859
859
  float depth = vectorSphericalWorldSpaceDepth(origin, near, far);
860
860
  #else
861
861
  float depth = vectorSphericalObjectSpaceDepth(origin, near, far);
@@ -868,13 +868,13 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
868
868
 
869
869
 
870
870
  float p;
871
- #ifdef ${r}_SMOOTH
872
- for ( int i = 1; i < ${r}_MAX_COLORS; i++ ) {
871
+ #ifdef ${o}_SMOOTH
872
+ for ( int i = 1; i < ${o}_MAX_COLORS; i++ ) {
873
873
  p = clamp( ( depth - steps[i-1] ) / ( steps[i] - steps[i-1] ), 0.0, 1.0 );
874
874
  color = mix(color, colors[i], smoothstep(0.0, 1.0, p));
875
875
  }
876
876
  #else
877
- for ( int i = 1; i < ${r}_MAX_COLORS; i++ ) {
877
+ for ( int i = 1; i < ${o}_MAX_COLORS; i++ ) {
878
878
  p = clamp(( depth - steps[i - 1] ) / ( steps[i] - steps[i - 1] ), 0.0, 1.0);
879
879
  color = mix(color, colors[i], p);
880
880
  }
@@ -885,25 +885,25 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
885
885
 
886
886
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
887
887
  return color.rgb;
888
- }`,[pn.Nodes.vectorLinearWorldSpaceDepth,pn.Nodes.vectorLinearObjectSpaceDepth,pn.Nodes.vectorSphericalObjectSpaceDepth,pn.Nodes.vectorSphericalWorldSpaceDepth]);if(A.isShader("fragment")){A.define(`${r}_MAX_COLORS`,this.colors.value.length),this.smooth.value&&A.define(`${r}_SMOOTH`),this.isVector.value>.5&&A.define(`${r}_IS_VECTOR`),this.gradientType.value===0&&A.define(`${r}_LINEAR`),this.isWorldSpace.value>.5&&A.define(`${r}_WORLDSPACE`),A.require("worldPosition"),A.addFragmentVariable(this.calpha,"float");let i=A.include(n),a=[];return a.push(this.near.build(A,"f")),a.push(this.far.build(A,"f")),a.push(this.origin.build(A,"v3")),a.push(this.direction.build(A,"v3")),a.push(this.colors.build(A,"v4[]")),a.push(this.steps.build(A,"f[]")),a.push(this.alpha.build(A,"f")),a.push(this.calpha),A.format(i+"("+a.join(",")+")",this.getType(A),e)}else return console.warn("DepthNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}},vi=pn;vi.Nodes=function(){let A=new K(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
888
+ }`,[fi.Nodes.vectorLinearWorldSpaceDepth,fi.Nodes.vectorLinearObjectSpaceDepth,fi.Nodes.vectorSphericalObjectSpaceDepth,fi.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),t)}else return console.warn("DepthNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}},bs=fi;bs.Nodes=function(){let e=new X(`float vectorLinearWorldSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
889
889
  vec3 n = normalize(direction);
890
890
  float dist = (n.x*(vWPosition.x - origin.x) + n.y*(vWPosition.y - origin.y) + n.z*(vWPosition.z - origin.z));
891
891
  return ( dist - near ) / ( far - near );
892
- }`),e=new K(`float vectorLinearObjectSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
892
+ }`),t=new X(`float vectorLinearObjectSpaceDepth(vec3 direction, vec3 origin, float near, float far) {
893
893
  vec3 n = normalize(direction);
894
894
  float dist = (n.x*(position.x - origin.x) + n.y*(position.y - origin.y) + n.z*(position.z - origin.z));
895
895
  return ( dist - near ) / ( far - near );
896
- }`),r=new K(`float vectorSphericalWorldSpaceDepth(vec3 origin, float near, float far) {
896
+ }`),o=new X(`float vectorSphericalWorldSpaceDepth(vec3 origin, float near, float far) {
897
897
  float dist = length(vWPosition - origin);
898
898
  return ( dist - near ) / ( far - near );
899
- }`),n=new K(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
899
+ }`),i=new X(`float vectorSphericalObjectSpaceDepth(vec3 origin, float near, float far) {
900
900
  float dist = length(position - origin);
901
901
  return ( dist - near ) / ( far - near );
902
- }`);return{vectorLinearWorldSpaceDepth:A,vectorLinearObjectSpaceDepth:e,vectorSphericalWorldSpaceDepth:r,vectorSphericalObjectSpaceDepth:n}}();var bi=class extends lA{constructor(A,e,r,n){super("v3");this.nodeType="Blend";this.a=A,this.b=e,this.alpha=r,this.mode=n}generate(A,e){if(A.isShader("fragment")){let r=[];return r.push(this.a.build(A,"c")),r.push(this.b.build(A,"c")),r.push(this.alpha.build(A,"f")),r.push(this.mode.build(A,"i")),A.format("spe_blend("+r.join(",")+")",this.getType(A),e)}else return console.warn("BlendNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}};var oc=(A=>(A.NOISE="noise",A.MAP="map",A))(oc||{}),nc=class extends lA{constructor(A,e,r,n,i){super("v3");this.displacementTypeIndex=new vA(0);this.nodeType="VertexDisplacement";this.intensity=A,this.movementOrTexture=e,Object.values(oc)[this.displacementTypeIndex.value]==="map"&&(this.mat=new un(this.movementOrTexture.value.matrix)),this.cropOrOffset=r,this.scale=n,this.noiseFunctionIndex=i}generate(A,e){if(A.isShader("vertex")){A.define("USE_LAYER_DISPLACE");let r,n=[];switch(n.push("displaced_position"),n.push("displaced_normal"),Object.values(oc)[this.displacementTypeIndex.value]){case"map":{r=A.include(nc.Nodes.map),n.push(this.movementOrTexture.getTexture(A,"t")),n.push("uv"),n.push(this.cropOrOffset.build(A,"f")),this.mat&&n.push(this.mat.build(A,"mat3"));break}case"noise":{let a=Object.values(fi)[this.noiseFunctionIndex.value],l=new K(`vec3 orthogonal(vec3 v) {
902
+ }`);return{vectorLinearWorldSpaceDepth:e,vectorLinearObjectSpaceDepth:t,vectorSphericalWorldSpaceDepth:o,vectorSphericalObjectSpaceDepth:i}}();var Ss=class extends ce{constructor(e,t,o,i){super("v3");this.nodeType="Blend";this.a=e,this.b=t,this.alpha=o,this.mode=i}generate(e,t){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),t)}else return console.warn("BlendNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}};var nd=(e=>(e.NOISE="noise",e.MAP="map",e))(nd||{}),id=class extends ce{constructor(e,t,o,i,s){super("v3");this.displacementTypeIndex=new be(0);this.nodeType="VertexDisplacement";this.intensity=e,this.movementOrTexture=t,Object.values(nd)[this.displacementTypeIndex.value]==="map"&&(this.mat=new pi(this.movementOrTexture.value.matrix)),this.cropOrOffset=o,this.scale=i,this.noiseFunctionIndex=s}generate(e,t){if(e.isShader("vertex")){e.define("USE_LAYER_DISPLACE");let o,i=[];switch(i.push("displaced_position"),i.push("displaced_normal"),Object.values(nd)[this.displacementTypeIndex.value]){case"map":{o=e.include(id.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(ms)[this.noiseFunctionIndex.value],c=new X(`vec3 orthogonal(vec3 v) {
903
903
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
904
- }`),d=new K(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
905
- return p + n * ${a}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
906
- }`,[ve.simplex,ve.simplexFractal,ve.simplexAshima,ve.fbm,ve.perlin]),s=new K(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) {
904
+ }`),u=new X(`vec3 distorted(vec3 p, vec3 n, float scale, float intensity, vec3 offset, float neighbour_offset, float movement) {
905
+ return p + n * ${l}((p + offset) * scale * 0.001 + neighbour_offset + (movement * 0.1)) * intensity;
906
+ }`,[bt.simplex,bt.simplexFractal,bt.simplexAshima,bt.fbm,bt.perlin]),a=new X(`vec3 vertexDisplacementNoise(vec3 position, vec3 normal, float scale, vec3 offset, float movement, float intensity, out vec3 displaced_normal) {
907
907
  vec3 displaced_position = distorted(position, normal, scale, intensity, offset, neighbor_offset, movement);
908
908
  vec3 tangent1 = orthogonal(normal);
909
909
  vec3 tangent2 = normalize(cross(normal, tangent1));
@@ -919,9 +919,9 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
919
919
  vec3 distorted2 = distorted(nearby2, normal, scale, intensity, offset, neighbor_offset, movement);
920
920
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
921
921
  return displaced_position;
922
- }`,[d,l]);r=A.include(s),n.push(this.scale.build(A,"f")),n.push(this.cropOrOffset.build(A,"v3")),n.push(this.movementOrTexture.build(A,"f"));break}}return n.push(this.intensity.build(A,"f")),n.push("displaced_normal"),A.format(r+"("+n.join(",")+")",this.getType(A),e)}else return console.warn("VertexDisplacementNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}},Si=nc;Si.Nodes=function(){let A=new K(`vec3 orthogonal(vec3 v) {
922
+ }`,[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),t)}else return console.warn("VertexDisplacementNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}},ws=id;ws.Nodes=function(){let e=new X(`vec3 orthogonal(vec3 v) {
923
923
  return normalize(abs(v.x) > abs(v.z) ? vec3(-v.y, v.x, 0.0) : vec3(0.0, -v.z, v.y));
924
- }`),e=new K(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
924
+ }`),t=new X(`float displacementMapTexture(sampler2D tex, float crop, vec2 uv, mat3 mat, vec2 offset) {
925
925
  vec2 uvs = (mat * vec3(uv * 2.0 - 1.0, 1.0) / 2.0 + 0.5).xy + offset;
926
926
  vec4 tmp = texture2D(tex, uvs);
927
927
  vec3 col = tmp.rgb;
@@ -931,7 +931,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
931
931
  }
932
932
  }
933
933
  return col.r;
934
- }`);return{map:new K(`vec3 vertexDisplacementMap(vec3 position, vec3 normal, sampler2D tex, vec2 uv, float crop, mat3 mat, float intensity, out vec3 displaced_normal) {
934
+ }`);return{map:new X(`vec3 vertexDisplacementMap(vec3 position, vec3 normal, sampler2D tex, vec2 uv, float crop, mat3 mat, float intensity, out vec3 displaced_normal) {
935
935
  vec3 displaced_position = position + normal * displacementMapTexture(tex, crop, uv, mat, vec2(0.0)) * intensity;
936
936
  vec3 tangent1 = normalize(orthogonal(normal));
937
937
  vec3 tangent2 = normalize(cross(normal, tangent1));
@@ -941,7 +941,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
941
941
  vec3 distorted2 = nearby2 + normal * displacementMapTexture(tex, crop, uv, mat, vec2(neighbor_offset)) * intensity;
942
942
  displaced_normal = normalize(cross(distorted1 - displaced_position, distorted2 - displaced_position));
943
943
  return displaced_position;
944
- }`,[A,e])}}();var ic=class extends lA{constructor(A,e,r,n,i,a,l,d){super("v3");this.nodeType="Gradient";this.gradientType=A,this.smooth=e,this.colors=r,this.steps=n,this.offset=i,this.morph=a,this.angle=l,this.alpha=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e){if(A.isShader("fragment")){A.define("GRAD_MAX",10),A.require("uv"),A.requires.uv=[!0],A.addFragmentVariable(this.calpha,"float");let r=A.include(ic.Nodes.gradient),n=[];return n.push(this.gradientType.build(A,"i")),n.push(this.smooth.build(A,"b")),n.push(this.colors.build(A,"v4[]")),n.push(this.steps.build(A,"f[]")),n.push(this.offset.build(A,"v2")),n.push(this.morph.build(A,"v2")),n.push(this.angle.build(A,"f")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),e)}else return console.warn("GradientNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}},wi=ic;wi.Nodes=function(){return{gradient:new K(`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) {
944
+ }`,[e,t])}}();var sd=class extends ce{constructor(e,t,o,i,s,l,c,u){super("v3");this.nodeType="Gradient";this.gradientType=e,this.smooth=t,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,t){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(sd.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),t)}else return console.warn("GradientNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}},_s=sd;_s.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) {
945
945
  vec4 color = colors[0];
946
946
  vec2 m = morph / vUv.xy;
947
947
  vec2 rot = vec2( 0.5 + m.x, m.y );
@@ -983,16 +983,16 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
983
983
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
984
984
 
985
985
  return color.xyz;
986
- }`)}}();var Oi=class extends lA{constructor(A,e,r,n,i,a,l,d,s,c){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=A,this.textureSize=e,this.crop=r,this.projection=n,this.axis=i,this.side=a,this.size=l,this.mat=d,this.alpha=s,this.mode=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e){A.require("position"),A.require("normal"),A.require("uv"),A.requires.uv=[!0],A.extensions.shaderTextureLOD=!0,A.extensions.derivatives=!0;let r=`g${this.uuid.toString().replace(/-/g,"")}`,n;switch(this.projection.value){case 3:n=A.include(Oi.Nodes.cylindrical);break;case 2:n=A.include(Oi.Nodes.spherical);break;case 1:let a=["vec3(1.0, 0.0, 0.0)","vec3(0.0, 1.0, 0.0)","vec3(0.0, 0.0, 1.0)"][this.axis.value],l=new K(`
987
- vec3 ${r}_planarTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
986
+ }`)}}();var Os=class extends ce{constructor(e,t,o,i,s,l,c,u,a,d){super("v3");this.nodeType="CustomTexture";this.firstTime=!0,this.texture=e,this.textureSize=t,this.crop=o,this.projection=i,this.axis=s,this.side=l,this.size=c,this.mat=u,this.alpha=a,this.mode=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){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(Os.Nodes.cylindrical);break;case 2:i=e.include(Os.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(`
987
+ vec3 ${o}_planarTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
988
988
 
989
- vec2 uvs = ( mat * vec3( (${r}_vCustomUv * 2. - 1.) / (size * .5), 1. ) / 2. + 0.5 ).xy;
989
+ vec2 uvs = ( mat * vec3( (${o}_vCustomUv * 2. - 1.) / (size * .5), 1. ) / 2. + 0.5 ).xy;
990
990
 
991
991
  vec4 tmp = texture2D( tex, uvs );
992
992
 
993
993
  vec3 col = tmp.rgb;
994
994
  float lalpha = alpha * tmp.a;
995
- ${this.side.value===2?"":`lalpha *= step(0.0, ${this.side.value===1?"-1.0 * ":""}dot(vObjectNormal, mat * ${a}));`}
995
+ ${this.side.value===2?"":`lalpha *= step(0.0, ${this.side.value===1?"-1.0 * ":""}dot(vObjectNormal, mat * ${l}));`}
996
996
 
997
997
  if ( crop > 0.5 ) {
998
998
  if ( uvs.x < 0.0 || uvs.x > 1.0 || uvs.y < 0.0 || uvs.y > 1.0 ) {
@@ -1002,7 +1002,7 @@ vec3 getIBLVolumeRefraction( vec3 n, vec3 v, float roughness, vec3 position, mat
1002
1002
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
1003
1003
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
1004
1004
  return col;
1005
- }`);n=A.include(l);break;default:n=A.include(Oi.Nodes.uv);break}if(this.projection.value===1&&this.firstTime){A.addVertexParsCode(`varying vec2 ${r}_vCustomUv;`),A.addFragmentParsCode(`varying vec2 ${r}_vCustomUv;`);let a=["zy","xz","xy"][this.axis.value];A.addVertexFinalCode(`${r}_vCustomUv = (1. + (transformed.${a})) / 2.;`)}A.addFragmentVariable(this.calpha,"float");let i=[];return i.push(this.texture.generate(A,"t")),i.push(this.textureSize.build(A,"v2")),i.push(this.crop.build(A,"f")),i.push(this.mat.build(A,"mat3")),i.push(this.size.build(A,"v2")),i.push(this.alpha.build(A,"f")),i.push(this.mode.build(A,"i")),i.push(this.calpha),this.firstTime=!this.firstTime,A.format(n+"("+i.join(",")+")",this.getType(A),e)}},Ti=Oi;Ti.Nodes=function(){let A=new K(`
1005
+ }`);i=e.include(c);break;default:i=e.include(Os.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),t)}},Ts=Os;Ts.Nodes=function(){let e=new X(`
1006
1006
  vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
1007
1007
  vec3 posN = normalize(position);
1008
1008
  float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
@@ -1032,7 +1032,7 @@ vec3 cylindricalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, v
1032
1032
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
1033
1033
  return col;
1034
1034
  }
1035
- `),e=new K(`
1035
+ `),t=new X(`
1036
1036
  vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
1037
1037
  vec3 posN = normalize(vPosition);
1038
1038
  float u = 0.5 + atan(posN.z, posN.x) / (2.*3.1415);
@@ -1060,7 +1060,7 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1060
1060
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
1061
1061
  return col;
1062
1062
  }
1063
- `),r=new K(`vec3 uvTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
1063
+ `),o=new X(`vec3 uvTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec2 size, float alpha, int mode, out float calpha) {
1064
1064
 
1065
1065
  vec2 uvs = ( mat * vec3( vUv * 2. - 1., 1. ) / 2. + 0.5 ).xy;
1066
1066
  vec4 tmp = texture2D( tex, uvs );
@@ -1076,14 +1076,14 @@ vec3 sphericalTexture(sampler2D tex, vec2 textureSize, float crop, mat3 mat, vec
1076
1076
  calpha = lalpha / clamp( lalpha + accumAlpha, 0.00001, 1.0 );
1077
1077
  accumAlpha += ( 1.0 - accumAlpha ) * lalpha;
1078
1078
  return col;
1079
- }`);return{cylindrical:A,spherical:e,uv:r}}();var sc=class extends lA{constructor(A,e){super("v3");this.nodeType="CustomNormal";this.cnormal=A,this.alpha=e}generate(A,e){if(A.isShader("fragment")){let r=A.include(sc.Nodes.customNormal),n=[];return n.push(this.cnormal.build(A,"v3")),n.push("normal"),n.push(this.alpha.build(A,"f")),A.format(r+"("+n.join(",")+")",this.getType(A),e)}else return console.warn("CustomNormalNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}},Pi=sc;Pi.Nodes=function(){return{customNormal:new K(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
1079
+ }`);return{cylindrical:e,spherical:t,uv:o}}();var ad=class extends ce{constructor(e,t){super("v3");this.nodeType="CustomNormal";this.cnormal=e,this.alpha=t}generate(e,t){if(e.isShader("fragment")){let o=e.include(ad.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),t)}else return console.warn("CustomNormalNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}},As=ad;As.Nodes=function(){return{customNormal:new X(`vec3 customNormal(vec3 cnormal, vec3 norm, float alpha) {
1080
1080
  vec3 normal = packNormalToRGB( norm ).rgb;
1081
1081
  normal *= step( vec3(0.5), cnormal );
1082
1082
 
1083
1083
  accumAlpha += ( 1.0 - accumAlpha ) * alpha;
1084
1084
 
1085
1085
  return normal;
1086
- }`)}}();var JA=require("three");function Pe(o,t){return t.color(o)}function Nm(o,t){switch(o.type){case"fresnel":return o1(o,t);case"gradient":return n1(o);case"depth":return i1(o);case"normal":return s1(o);case"noise":return a1(o,t);case"rainbow":return l1(o);case"toon":return c1(o,t);case"outline":return d1(o,t);case"transmission":return u1(o,t);case"color":return r1(o,t)}}function t1(o){return{type:o.type}}function Bt(o){let{alpha:t,mode:A}=o;return{...t1(o),alpha:t,mode:A}}function r1(o,t){return{...Bt(o),color:Pe(o.color,t)}}function o1(o,t){let{bias:A,scale:e,intensity:r,factor:n,color:i}=o;return{...Bt(o),color:Pe(i,t),bias:A,scale:e,intensity:r,factor:n}}function n1(o){let{gradientType:t,smooth:A,colors:e,steps:r,angle:n,offset:i,morph:a}=o;return{...Bt(o),gradientType:t,smooth:A,colors:e.map(l=>new JA.Vector4(l[0],l[1],l[2],l[3])),num:e.length,steps:r,offset:new JA.Vector2(...i),morph:new JA.Vector2(...a),angle:n}}function i1(o){let{gradientType:t,near:A,far:e,isVector:r,isWorldSpace:n,origin:i,direction:a,colors:l,steps:d,smooth:s}=o;return{...Bt(o),gradientType:t,near:A,far:e,isVector:r,isWorldSpace:n,origin:new JA.Vector3(...i),direction:a?new JA.Vector3(...a):new JA.Vector3(1,0,0),colors:l.map(c=>c!==void 0?new JA.Vector4(c[0],c[1],c[2],c[3]):new JA.Vector4(0,0,0,0)),steps:d.slice(0,l.length),smooth:s}}function s1(o){let{cnormal:t}=o;return{...Bt(o),cnormal:new JA.Vector3(t[0],t[1],t[2])}}function a1(o,t){return{...Bt(o),scale:o.scale,move:o.move,fA:new JA.Vector2(...o.fA),fB:new JA.Vector2(...o.fB),size:new JA.Vector3(...o.size),distortion:new JA.Vector2(...o.distortion),colorA:Pe(o.colorA,t),colorB:Pe(o.colorB,t),colorC:Pe(o.colorC,t),colorD:Pe(o.colorD,t),noiseType:o.noiseType}}function l1(o){return{...Bt(o),filmThickness:o.filmThickness,movement:o.movement,wavelengths:new JA.Vector3(...o.wavelengths),noiseStrength:o.noiseStrength,noiseScale:o.noiseScale,offset:new JA.Vector3(...o.offset)}}function c1(o,t){return{...Bt(o),positioning:o.positioning,colors:o.colors.map(A=>new JA.Vector4(A[0],A[1],A[2],A[3])),num:o.colors.length,steps:o.steps,source:new JA.Vector3(...o.source),isWorldSpace:o.isWorldSpace,noiseStrength:o.noiseStrength,noiseScale:o.noiseScale,shadowColor:Pe(o.shadowColor,t),offset:new JA.Vector3(...o.offset)}}function d1(o,t){return{...Bt(o),outlineColor:Pe(o.outlineColor,t),contourColor:Pe(o.contourColor,t),outlineWidth:o.outlineWidth,contourWidth:o.contourWidth,outlineThreshold:o.outlineThreshold,contourThreshold:o.contourThreshold,outlineSmoothing:o.outlineSmoothing,contourFrequency:o.contourFrequency,contourDirection:o.contourDirection,positionalLines:o.positionalLines,compensation:o.compensation}}function u1(o,t){return{...Bt(o),thickness:o.thickness,ior:o.ior,roughness:o.roughness}}var Sr=class extends ne{};var Im=require("three");var ga=require("three");var ma=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){}remove(t){let A=this.cache.get(t);A&&(this.dispose(t,A.data),this.cache.delete(t),A.prev.next=A.next,A.next.prev=A.prev)}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let t=Date.now(),A=this.head.next;for(;A.time<t-this.timeout;)this.dispose(A.src,A.data),this.cache.delete(A.src),A=A.next,A.prev=this.head,this.head.next=A;this.head.next!==this.tail?this.scheduleCleanup():this.log("no more cleanup")},this.timeout+1e3))}has(t){return this.cache.get(t)?.data}load(t){let A=Date.now(),e=this.cache.get(t);return e===void 0?(e={data:this.create(t),src:t,time:A,next:null,prev:null},this.cache.set(t,e)):(e.time=A,e.prev.next=e.next,e.next.prev=e.prev),e.prev=this.tail.prev,e.next=this.tail,this.tail.prev.next=e,this.tail.prev=e,this.scheduleCleanup(),e.data}};var lc=class extends ma{create(t){return URL.createObjectURL(new Blob([t]))}dispose(t,A){URL.revokeObjectURL(A)}},ac;function Cm(o){return typeof o=="string"?o:(ac||(ac=new lc),ac.load(o))}var ha=class{constructor(t,A){this.data=t;this.cache=A;this.refCount=0}deref(){if(this.refCount===0&&cr)throw new Error("ref count -1?");this.refCount-=1,this.refCount===0&&(this.cache.remove(this),this.dispose())}dispose(){if(this.refCount!==0&&cr)throw new Error("ref count is not 0")}},ya=class{constructor(){this.cache=new Map}remove(t){if(this.cache.delete(t.data)===!1&&cr)throw new Error("ref count remove non-exists")}load(t){let A=this.cache.get(t);return A===void 0&&(A=this.create(t),this.cache.set(t,A)),A.refCount+=1,A}};var fn=class extends ha{constructor(A,e){super(A,e.imageHolderCache);this.data=A;this.shared=e;this.loaded=!1;this.isVideo=!1;this.isVideo=A.type=="video",this.updateSrc(A.data)}async updateSrc(A){if(typeof document>"u")return;this.disposeTextures(),this.loaded=!1;let e=()=>{this.loaded=!0;let n=[1e3,1001,1002];for(let i of n){let a=this[i];a&&(a.image=this.img,a.needsUpdate=!0)}this.shared.requestRender()};if(this.isVideo){if(this.img=document.createElement("video"),this.img.preload="auto",this.img.playsInline=!0,this.img.currentTime=.01,typeof A!="string"){var r=new FileReader;r.readAsDataURL(new Blob([A],{type:"video/mp4"}));let n;await new Promise(i=>{r.onloadend=a=>{n=a.target?.result,i(null)}}),this.img.src=n}else this.img.src=A;this.img.onloadeddata=()=>{e()}}else this.img=new Image,this.img.src=Cm(A),this.img.onload=e}getTexture(A){let e=this[A];if(e)return e;{let r;return this.isVideo?r=new ga.VideoTexture(this.img,void 0,A,A):r=new ga.Texture(this.img,void 0,A,A),this.loaded&&(r.needsUpdate=!0),this[A]=r,r}}disposeTextures(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}dispose(){super.dispose(),this.disposeTextures()}};1e3,1001,1002;var $e=class extends fn{};var wr=class extends RA{};var cc={noise:["noiseType"],texture:["projection","axis","side"],video:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},dc={depth:["colors"]};function p1(o,t,A){let e=cc[o.type],r=dc[o.type];if(r!==void 0){let n=o.color;if(r.includes(t)){let i=n[t]?.value?.length;if(i!==void 0&&i!==A.length)return!0}}return e!==void 0?e.includes(t):!1}function uc(o,t,A){let e=A.uniforms[`f${A.id}_texture`];if(!e)return!1;let r=!1,n=o;if("image"in n){let i=n.image,a=t.image(i),l=e;l.image instanceof $e||l.image.deref(),l.image=a}if("video"in n){let i=n.video,a=t.video(i),l=e;l.image instanceof $e||l.image.deref(),l.image=a}if("wrapping"in n){let i=e;i.wrap=n.wrapping}if("repeat"in n||"offset"in n){let i="mat",a=A.uniforms[`f${A.id}_${i}`];"repeat"in n&&(a.repeat=n.repeat),"offset"in n&&(a.offset=n.offset),a.updateMatrix()}return r}function Lm(o,t,A,e){let r=!1;for(let[n,i]of Object.entries(o)){if(!n||i===void 0)continue;if(pc(n,A,e)){n==="visible"&&A.type==="light"&&(r=!0);continue}A.visible=e.visible;let a=A.uniforms[`f${A.id}_${n}`];if(!!a&&!(a instanceof wr))switch(r=r||p1(A,n,i),a.constructor){case CA:if(typeof i=="string"){let l=t.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof Sr?a.value=new ne(l.r,l.g,l.b,l.a):a.setRGBA(l);break}case _e:if(typeof i=="string"){let l=t.getColor(i);l&&(a.value=l);break}else{let l=i;a.value instanceof Sr?a.value=new ne(l.r,l.g,l.b,l.a):a.value.setRGBA(l.r,l.g,l.b,l.a);break}case de:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]);break}case he:{let l=i;a.value.setX(l[0]),a.value.setY(l[1]),a.value.setZ(l[2]);break}case Ve:{uc(i,t,A);break}case mt:{a.value=i.map(l=>new Im.Vector4(...l));break}default:{a.value=i;break}}}return r}var fc=class extends lA{constructor(A,e,r){super("v3");this.nodeType="Matcap";this.texture=A,this.alpha=e,this.mode=r,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e){if(A.isShader("fragment")){A.addFragmentVariable(this.calpha,"float");let r=A.include(fc.Nodes.matcap);A.require("normal"),A.requires.normal=!0;let n=[];return n.push(this.texture.generate(A,"t")),n.push("normal"),n.push(this.alpha.build(A,"f")),n.push(this.mode.build(A,"i")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),e)}else return console.warn("MatcapNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}},Ni=fc;Ni.Nodes=function(){return{matcap:new K(`vec3 matcap(sampler2D matcapTex, vec3 normal, float alpha, int mode, out float calpha) {
1086
+ }`)}}();var Ze=require("three");function At(n,r){return r.color(n)}function Ah(n,r){switch(n.type){case"fresnel":return o_(n,r);case"gradient":return n_(n);case"depth":return i_(n);case"normal":return s_(n);case"noise":return a_(n,r);case"rainbow":return l_(n);case"toon":return c_(n,r);case"outline":return d_(n,r);case"transmission":return u_(n,r);case"color":return r_(n,r)}}function t_(n){return{type:n.type}}function Mr(n){let{alpha:r,mode:e}=n;return{...t_(n),alpha:r,mode:e}}function r_(n,r){return{...Mr(n),color:At(n.color,r)}}function o_(n,r){let{bias:e,scale:t,intensity:o,factor:i,color:s}=n;return{...Mr(n),color:At(s,r),bias:e,scale:t,intensity:o,factor:i}}function n_(n){let{gradientType:r,smooth:e,colors:t,steps:o,angle:i,offset:s,morph:l}=n;return{...Mr(n),gradientType:r,smooth:e,colors:t.map(c=>new Ze.Vector4(c[0],c[1],c[2],c[3])),num:t.length,steps:o,offset:new Ze.Vector2(...s),morph:new Ze.Vector2(...l),angle:i}}function i_(n){let{gradientType:r,near:e,far:t,isVector:o,isWorldSpace:i,origin:s,direction:l,colors:c,steps:u,smooth:a}=n;return{...Mr(n),gradientType:r,near:e,far:t,isVector:o,isWorldSpace:i,origin:new Ze.Vector3(...s),direction:l?new Ze.Vector3(...l):new Ze.Vector3(1,0,0),colors:c.map(d=>d!==void 0?new Ze.Vector4(d[0],d[1],d[2],d[3]):new Ze.Vector4(0,0,0,0)),steps:u.slice(0,c.length),smooth:a}}function s_(n){let{cnormal:r}=n;return{...Mr(n),cnormal:new Ze.Vector3(r[0],r[1],r[2])}}function a_(n,r){return{...Mr(n),scale:n.scale,move:n.move,fA:new Ze.Vector2(...n.fA),fB:new Ze.Vector2(...n.fB),size:new Ze.Vector3(...n.size),distortion:new Ze.Vector2(...n.distortion),colorA:At(n.colorA,r),colorB:At(n.colorB,r),colorC:At(n.colorC,r),colorD:At(n.colorD,r),noiseType:n.noiseType}}function l_(n){return{...Mr(n),filmThickness:n.filmThickness,movement:n.movement,wavelengths:new Ze.Vector3(...n.wavelengths),noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,offset:new Ze.Vector3(...n.offset)}}function c_(n,r){return{...Mr(n),positioning:n.positioning,colors:n.colors.map(e=>new Ze.Vector4(e[0],e[1],e[2],e[3])),num:n.colors.length,steps:n.steps,source:new Ze.Vector3(...n.source),isWorldSpace:n.isWorldSpace,noiseStrength:n.noiseStrength,noiseScale:n.noiseScale,shadowColor:At(n.shadowColor,r),offset:new Ze.Vector3(...n.offset)}}function d_(n,r){return{...Mr(n),outlineColor:At(n.outlineColor,r),contourColor:At(n.contourColor,r),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 u_(n,r){return{...Mr(n),thickness:n.thickness,ior:n.ior,roughness:n.roughness}}var _o=class extends it{};var Ih=require("three");var xl=require("three");var hl=class{constructor(r=1e3*10){this.timeout=r;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(...r){}remove(r){let e=this.cache.get(r);e&&(this.dispose(r,e.data),this.cache.delete(r),e.prev.next=e.next,e.next.prev=e.prev)}scheduleCleanup(){this.hasClean||(this.log("scheduled cleanup"),this.hasClean=!0,setTimeout(()=>{this.hasClean=!1,this.log("cleaning");let r=Date.now(),e=this.head.next;for(;e.time<r-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))}has(r){return this.cache.get(r)?.data}load(r){let e=Date.now(),t=this.cache.get(r);return t===void 0?(t={data:this.create(r),src:r,time:e,next:null,prev:null},this.cache.set(r,t)):(t.time=e,t.prev.next=t.next,t.next.prev=t.prev),t.prev=this.tail.prev,t.next=this.tail,this.tail.prev.next=t,this.tail.prev=t,this.scheduleCleanup(),t.data}};var cd=class extends hl{create(r){return URL.createObjectURL(new Blob([r]))}dispose(r,e){URL.revokeObjectURL(e)}},ld;function Ph(n){return typeof n=="string"?n:(ld||(ld=new cd),ld.load(n))}var yl=class{constructor(r,e){this.data=r;this.cache=e;this.refCount=0}deref(){if(this.refCount===0&&uo)throw new Error("ref count -1?");this.refCount-=1,this.refCount===0&&(this.cache.remove(this),this.dispose())}dispose(){if(this.refCount!==0&&uo)throw new Error("ref count is not 0")}},gl=class{constructor(){this.cache=new Map}remove(r){if(this.cache.delete(r.data)===!1&&uo)throw new Error("ref count remove non-exists")}load(r){let e=this.cache.get(r);return e===void 0&&(e=this.create(r),this.cache.set(r,e)),e.refCount+=1,e}};var mi=class extends yl{constructor(e,t){super(e,t.imageHolderCache);this.data=e;this.shared=t;this.loaded=!1;this.isVideo=!1;this.isVideo=e.type=="video",this.updateSrc(e.data)}async updateSrc(e){if(typeof document>"u")return;this.disposeTextures(),this.loaded=!1;let t=()=>{this.loaded=!0;let i=[1e3,1001,1002];for(let s of i){let l=this[s];l&&(l.image=this.img,l.needsUpdate=!0)}this.shared.requestRender()};if(this.isVideo){if(this.img=document.createElement("video"),this.img.preload="auto",this.img.playsInline=!0,this.img.currentTime=.01,typeof e!="string"){var o=new FileReader;o.readAsDataURL(new Blob([e],{type:"video/mp4"}));let i;await new Promise(s=>{o.onloadend=l=>{i=l.target?.result,s(null)}}),this.img.src=i}else this.img.src=e;this.img.onloadeddata=()=>{t()}}else this.img=new Image,this.img.src=Ph(e),this.img.onload=t}getTexture(e){let t=this[e];if(t)return t;{let o;return this.isVideo?o=new xl.VideoTexture(this.img,void 0,e,e):o=new xl.Texture(this.img,void 0,e,e),this.loaded&&(o.needsUpdate=!0),this[e]=o,o}}disposeTextures(){this[1e3]?.dispose(),this[1e3]=void 0,this[1001]?.dispose(),this[1001]=void 0,this[1002]?.dispose(),this[1002]=void 0}dispose(){super.dispose(),this.disposeTextures()}};1e3,1001,1002;var Jt=class extends mi{};var To=class extends Ge{};var dd={noise:["noiseType"],texture:["projection","axis","side"],video:["projection","axis","side"],displace:["noiseType"],depth:["smooth","isWorldSpace","gradientType","isVector"]},ud={depth:["colors"]};function p_(n,r,e){let t=dd[n.type],o=ud[n.type];if(o!==void 0){let i=n.color;if(o.includes(r)){let s=i[r]?.value?.length;if(s!==void 0&&s!==e.length)return!0}}return t!==void 0?t.includes(r):!1}function pd(n,r,e){let t=e.uniforms[`f${e.id}_texture`];if(!t)return!1;let o=!1,i=n;if("image"in i){let s=i.image,l=r.image(s),c=t;c.image instanceof Jt||c.image.deref(),c.image=l}if("video"in i){let s=i.video,l=r.video(s),c=t;c.image instanceof Jt||c.image.deref(),c.image=l}if("wrapping"in i){let s=t;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 Ch(n,r,e,t){let o=!1;for(let[i,s]of Object.entries(n)){if(!i||s===void 0)continue;if(fd(i,e,t)){i==="visible"&&e.type==="light"&&(o=!0);continue}e.visible=t.visible;let l=e.uniforms[`f${e.id}_${i}`];if(!!l&&!(l instanceof To))switch(o=o||p_(e,i,s),l.constructor){case Ie:if(typeof s=="string"){let c=r.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof _o?l.value=new it(c.r,c.g,c.b,c.a):l.setRGBA(c);break}case Qt:if(typeof s=="string"){let c=r.getColor(s);c&&(l.value=c);break}else{let c=s;l.value instanceof _o?l.value=new it(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 yt:{let c=s;l.value.setX(c[0]),l.value.setY(c[1]),l.value.setZ(c[2]);break}case Rt:{pd(s,r,e);break}case hr:{l.value=s.map(c=>new Ih.Vector4(...c));break}default:{l.value=s;break}}}return o}var md=class extends ce{constructor(e,t,o){super("v3");this.nodeType="Matcap";this.texture=e,this.alpha=t,this.mode=o,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){if(e.isShader("fragment")){e.addFragmentVariable(this.calpha,"float");let o=e.include(md.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),t)}else return console.warn("MatcapNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}},Ps=md;Ps.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 Kr=class extends wr{constructor(A,e){super("t");this.image=A;this.wrap=e}get value(){return this.image.getTexture(this.wrap)}};var Em=require("three");var xa=class extends wr{constructor(A){super("v3");this.image=A;this._value=new Em.Vector3}get value(){return this._value.x=this.image.isVideo?this.image.img.videoWidth??0:this.image.img.width,this._value.y=this.image.isVideo?this.image.img.videoHeight??0:this.image.img.height,this._value}};var mc=class extends lA{constructor(A,e,r,n,i,a,l,d,s,c){super("v3");this.nodeType="Toon";this.positioning=A,this.colors=e,this.steps=r,this.source=n,this.isWorldSpace=i,this.noiseStrength=a,this.noiseScale=l,this.shadowColor=d,this.offset=s,this.alpha=c,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(A,e){if(A.require("worldNormal"),A.require("worldPosition"),A.isShader("fragment")){A.define("COLORS_MAX",10),A.addFragmentVariable(this.calpha,"float");let r=A.include(mc.Nodes.toon),n=[];return n.push(this.positioning.build(A,"i")),n.push(this.colors.build(A,"v4[]")),n.push(this.steps.build(A,"f[]")),n.push(this.source.build(A,"v3")),n.push(this.isWorldSpace.build(A,"b")),n.push(this.noiseStrength.build(A,"f")),n.push(this.noiseScale.build(A,"f")),n.push(this.shadowColor.build(A,"v4")),n.push(this.offset.build(A,"v3")),n.push(this.alpha.build(A,"f")),n.push(this.calpha),A.format(r+"("+n.join(",")+")",this.getType(A),e)}else return console.warn("ToonNode is not compatible with "+A.shader+" shader."),A.format("vec3( 0.0 )",this.getType(A),e)}},Ci=mc;Ci.Nodes=function(){let A=new K(`float rand(float n) {
1098
+ `)}}();var Ko=class extends To{constructor(e,t){super("t");this.image=e;this.wrap=t}get value(){return this.image.getTexture(this.wrap)}};var Nh=require("three");var vl=class extends To{constructor(e){super("v3");this.image=e;this._value=new Nh.Vector3}get value(){return this._value.x=this.image.isVideo?this.image.img.videoWidth??0:this.image.img.width,this._value.y=this.image.isVideo?this.image.img.videoHeight??0:this.image.img.height,this._value}};var hd=class extends ce{constructor(e,t,o,i,s,l,c,u,a,d){super("v3");this.nodeType="Toon";this.positioning=e,this.colors=t,this.steps=o,this.source=i,this.isWorldSpace=s,this.noiseStrength=l,this.noiseScale=c,this.shadowColor=u,this.offset=a,this.alpha=d,this.calpha=`g${this.uuid.toString().replace(/-/g,"")}_calpha`}generate(e,t){if(e.require("worldNormal"),e.require("worldPosition"),e.isShader("fragment")){e.define("COLORS_MAX",10),e.addFragmentVariable(this.calpha,"float");let o=e.include(hd.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),t)}else return console.warn("ToonNode is not compatible with "+e.shader+" shader."),e.format("vec3( 0.0 )",this.getType(e),t)}},Is=hd;Is.Nodes=function(){let e=new X(`float rand(float n) {
1099
1099
  return fract(sin(n) * 43758.5453123);
1100
- }`),e=new K(`float hash1(float p) {
1100
+ }`),t=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
- }`),r=new K(`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
- }`,[e]),n=new K(`vec3 hash3(vec3 x) {
1120
+ }`,[t]),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
- }`),i=new K(`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
- `,[n]);return{toon:new K(`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
- }`,[ve.simplex,A,r,i])}}();var Bm=require("three");function Mm(o,t,A){o.setUvTransform(A[0],A[1],t[0],t[1],0,0,0)}var va=class extends un{constructor(A,e){super(new Bm.Matrix3);this.repeat=A;this.offset=e;Mm(this.value,A,e)}updateMatrix(){Mm(this.value,this.repeat,this.offset)}};var Dt=class{constructor(t,A,e,r){this.id=t;this.uuid=A;this.data=e;this.uniforms={};for(let n in r)this.uniforms[`f${this.id}_${n}`]=r[n];for(let n in e)pc(n,this,e)}get type(){return this.data.type}static create(t,A,e,r){if(e.type==="light")return Gt.createLigherLayer(t,A,e,r);if(e.type==="texture"||e.type==="video"){let n=e.type==="texture"?r.image(e.texture.image):r.video(e.texture.video),i=new Kr(n,e.texture.wrapping),a=new xa(n),l=new va(e.texture.repeat,e.texture.offset),d=new _(e.crop?1:0),s=new vA(e.projection??0),c=new vA(["x","y","z"].indexOf(e.axis)??0),u=new vA(e.side??0),p=new de(e.size?new FA.Vector2(e.size[0],e.size[1]):new FA.Vector2(100,100)),f=new _(e.alpha??1),m=new vA(e.mode??0),h=new Ti(i,a,d,s,c,u,p,l,f,m),y=new NA(h.calpha,"f");return new Ae(t,A,e,{texture:i,textureSize:a,crop:d,projection:s,axis:c,side:u,size:p,mat:l,alpha:f,mode:m},h,m,y)}else if(e.type==="matcap"){let n=r.image(e.texture.image),i=new Kr(n,e.texture.wrapping),a=new _(e.alpha??1),l=new vA(e.mode??0),d=new Ni(i,a,l),s=new NA(d.calpha,"f");return new Ae(t,A,e,{texture:i,alpha:a,mode:l},d,l,s)}else if(e.type==="displace")if(e.displacementType==="noise"){let n=new he(new FA.Vector3(...e.offset)),i=new _(e.scale??10),a=new _(e.intensity??8),l=new _(e.movement??1),d=new vA(e.noiseType??0),s=new Si(a,l,n,i,d);return new Ii(t,A,e,{offset:n,scale:i,intensity:a,movement:l,noiseType:d},s)}else throw new Error;else return h1(t,A,e,r)}updateByOp(t,A,e){let r=t;if(r.path[0]===void 0){if(r.type===0)return"type"in r.props||"category"in r.props?(e.scene?.markNeedsUpdateRendererDirty(),!0):Lm(r.props,e.shared,this,A)}else if(r.path[0]==="texture")return"texture"in A||"video"in A?uc(r.props,e.shared,this):!0;return!1}dispose(){if(f1(this)){let t=this.uniforms[`f${this.id}_texture`];if(!t)return!1;let A=t;A.image instanceof $e||A.image.deref()}}hasValueByKey(t){return this.uniforms[t]!==void 0}hasValue(t){return this.hasValueByKey(`f${this.id}_${t}`)}setValue(t,A){let e=`f${this.id}_${t}`;this.hasValueByKey(e)&&A!==void 0&&(this.uniforms[e].value=A)}getNode(t){let A=`f${this.id}_${t}`;if(this.hasValueByKey(A))return this.uniforms[A]}getValue(t){let A=`f${this.id}_${t}`;if(this.hasValueByKey(A))return this.uniforms[A].value}getName(t){let e=/f\d+_(.*)/.exec(t);if(e&&e.length>1)return e[1];console.log(`Layer.getName: error ${t}`)}getNames(){let t=[];for(let A in this.uniforms){let e=this.getName(A);e&&t.push(e)}return t}},Ae=class extends Dt{constructor(A,e,r,n,i,a,l){super(A,e,r,n);this.params=n;this.color=i;this.mode=a;this.alpha=l}},Ii=class extends Dt{constructor(A,e,r,n,i){super(A,e,r,n);this.position=i}},Gt=class extends Dt{constructor(A,e,r,n,i){super(A,e,r,i);this.node=n}static createLigherLayer(A,e,r,n){let i,a=new _(r.alpha),l=new vA(r.mode),d;if(!r.visible)i=new Xr,d={};else if(r.category==="lambert"){i=new li;let s=new CA(n.color(r.emissive)??0);d={emissive:s},i.emissive=s}else if(r.category==="toon"){i=new pi;let s=new _(r.shininess??30),c=new CA(n.color(r.specular)??1118481);d={shininess:s,specular:c},i.shininess=s,i.specular=c}else if(r.category==="physical"){i=new di;let s=new _(r.roughness??.3),c=new _(r.metalness??0),u=new _(r.reflectivity??.5);d={roughness:s,metalness:c,reflectivity:u},i.roughness=s,i.metalness=c,i.reflectivity=u}else{i=new fa;let s=new _(r.shininess??30),c=new CA(n.color(r.specular)??1118481);d={shininess:s,specular:c},i.shininess=s,i.specular=c}return i.alpha=new _(1),i.shadingAlpha=a,i.shadingBlend=l,d.alpha=i.shadingAlpha,d.mode=i.shadingBlend,new Gt(A,e,r,i,d)}get category(){return this.node.category}};function f1(o){let t=o instanceof Dt?o.type:o;return t==="texture"||t==="video"||t==="displace_map"||t==="matcap"}function m1(o,t,A,e){switch(o.type){case"color":{let r=new CA(e.color??5855577),n=new _(e.alpha??1),i=new NA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");i.keywords.alpha=n;let a=new vA(e.mode??0);return r.alpha=n,new Ae(t,A,o,{color:r,alpha:n,mode:a},r,a,i)}case"fresnel":{let r=new CA(e.color??16777215),n=new _(e.bias??.1),i=new _(e.scale??1),a=new _(e.intensity??2),l=new _(e.factor??1),d=new _(e.alpha??1),s=new vA(e.mode??0),c=new hi(r,n,i,a,l,d,s),u=new NA(c.calpha,"f");return new Ae(t,A,o,{color:r,bias:n,scale:i,intensity:a,factor:l,alpha:d,mode:s},c,s,u)}case"rainbow":{let r=new _(e.filmThickness??30),n=new _(e.movement??0),i=new he(e.wavelengths??new FA.Vector3(0,0,0)),a=new _(e.noiseStrength??0),l=new _(e.noiseScale??1),d=new he(e.offset??new FA.Vector3(0,0,0)),s=new _(e.alpha??1),c=new yi(r,n,i,a,l,d,s),u=new NA(c.calpha,"f"),p=new vA(e.mode??0);return new Ae(t,A,o,{filmThickness:r,movement:n,wavelengths:i,noiseStrength:a,noiseScale:l,offset:d,alpha:s,mode:p},c,p,u)}case"transmission":{let r=new _(e.thickness??10),n=new _(e.ior??1.5),i=new _(e.roughness??.5),a=ye.transmissionSize,l=ye.transmissionRenderTarget,d=ye.transmissionRenderTargetDepth,s=window.innerWidth,c=window.innerHeight,u=s>=c?new de(c/s,1):new de(1,s/c),p=new _(e.alpha??1),f=new xi(r,n,i,a,l,d,u,p),m=new NA(f.calpha,"f"),h=new vA(e.mode??0);return new Ae(t,A,o,{thickness:r,ior:n,roughness:i,aspectRatio:u,alpha:p,mode:h},f,h,m)}case"toon":{let r=new vA(e.positioning??0),n;e.colors?n=new mt(e.colors.length,e.colors):(n=new mt(10,new FA.Vector4(0,0,0,1)),n.value[1]=new FA.Vector4(1,1,1,1));let i;e.steps?i=new ft(e.steps.length,e.steps):(i=new ft(10,1),i.value[0]=0);let a=new he(e.source??new FA.Vector3(0,0,0)),l=new br(e.isWorldSpace??!0),d=new _(e.noiseStrength??0),s=new _(e.noiseScale??1),c=new _e(e.shadowColor),u=new he(e.offset??new FA.Vector3(0,0,0)),p=new _(e.alpha??1),f=new Ci(r,n,i,a,l,d,s,c,u,p),m=new NA(f.calpha,"f"),h=new vA(e.mode??0);return new Ae(t,A,o,{positioning:r,colors:n,steps:i,source:a,isWorldSpace:l,noiseStrength:d,noiseScale:s,shadowColor:c,offset:u,alpha:p,mode:h},f,h,m)}case"outline":{let r=new CA(e.outlineColor??16777215),n=new CA(e.contourColor??16777215),i=new _(e.outlineWidth??.1),a=new _(e.contourWidth??.1),l=new _(e.outlineThreshold??.1),d=new _(e.contourThreshold??.1),s=new _(e.outlineSmoothing??.1),c=new _(e.contourFrequency??.1),u=new he(e.contourDirections??new FA.Vector3(0,1,0)),p=new br(e.positionalLines??!1),f=new br(e.compensation??!0),m=ye.normalRenderTarget,h=ye.normalRenderTargetDepth,y=ye.pixelRatioNode,x=ye.resolution,S=new _(e.alpha??1),v=new gi(r,n,i,a,l,d,s,c,u,p,f,x,m,h,y,S),b=new NA(v.calpha,"f"),P=new vA(e.mode??0);return new Ae(t,A,o,{outlineColor:r,contourColor:n,outlineWidth:i,contourWidth:a,outlineThreshold:l,contourThreshold:d,outlineSmoothing:s,contourFrequency:c,contourDirection:u,positionalLines:p,compensation:f,alpha:S,mode:P},v,P,b)}case"depth":{let r=new vA(e.gradientType??0),n=new br(e.smooth??!1),i=new _(e.near??50),a=new _(e.far??200),l=new _(e.isVector??1),d=new _(e.isWorldSpace??0),s=new he(e.origin??new FA.Vector3),c=new he(e.direction??new FA.Vector3),u;e.colors?u=new mt(e.colors.length,e.colors):(u=new mt(2,new FA.Vector4(0,0,0,1)),u.value[1]=new FA.Vector4(1,1,1,1));let p;e.steps?p=new ft(e.steps.length,e.steps):(p=new ft(2,1),p.value[0]=0);let f=new _(e.alpha??1),m=new vA(e.mode??0),h=new vi(r,n,i,a,l,d,s,c,u,p,f),y=new NA(h.calpha,"f");return new Ae(t,A,o,{gradientType:r,smooth:n,near:i,far:a,isVector:l,isWorldSpace:d,origin:s,direction:c,colors:u,steps:p,alpha:f,mode:m},h,m,y)}case"noise":{let r=new _(e.scale??1),n=new he(e.size??new FA.Vector3(100,100,100)),i=new _(e.move??1),a=new de(e.fA??new FA.Vector2(1.7,9.2)),l=new de(e.fB??new FA.Vector2(8.3,2.8)),d=new de(e.distortion??new FA.Vector2(1,1)),s=new _e(e.colorA),c=new _e(e.colorB),u=new _e(e.colorC),p=new _e(e.colorD),f=new _(e.alpha??1),m=new vA(e.mode??0),h=new vA(e.noiseType??0),y=new mi(r,n,i,a,l,d,s,c,u,p,f,h),x=new NA(y.calpha,"f");return new Ae(t,A,o,{scale:r,size:n,move:i,fA:a,fB:l,distortion:d,colorA:s,colorB:c,colorC:u,colorD:p,alpha:f,mode:m,noiseType:h},y,m,x)}case"normal":{let r=new he(e.cnormal??new FA.Vector3(1,1,1)),n=new _(e.alpha??1),i=new vA(e.mode??0),a=new Pi(r,n),l=new NA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return l.keywords.alpha=n,new Ae(t,A,o,{cnormal:r,alpha:n,mode:i},a,i,l)}case"gradient":{let r=new vA(e.gradientType??0),n=new br(e.smooth??!1),i;e.colors?i=new mt(e.colors.length,e.colors):(i=new mt(10,new FA.Vector4(0,0,0,1)),i.value[1]=new FA.Vector4(1,1,1,1));let a;e.steps?a=new ft(e.steps.length,e.steps):(a=new ft(10,1),a.value[0]=0);let l=new de(e.offset??new FA.Vector2(0,0)),d=new de(e.morph??new FA.Vector2(0,0)),s=new _(e.angle??0),c=new _(e.alpha??1),u=new vA(e.mode??0),p=new wi(r,n,i,a,l,d,s,c),f=new NA(p.calpha,"f");return new Ae(t,A,o,{gradientType:r,smooth:n,colors:i,steps:a,offset:l,morph:d,angle:s,alpha:c,mode:u},p,u,f)}default:{let r=new CA(1,0,0,1),n=new _(1),i=new NA("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");i.keywords.alpha=n;let a=new vA(0);return r.alpha=n,new Ae(t,A,o,{color:r,alpha:n,mode:a},r,a,i)}}}function h1(o,t,A,e){let r=Nm(A,e);return m1(A,o,t,r)}function pc(o,t,A){if(A.type==="displace"&&(o==="intensity"||o==="visible")){let e=t.uniforms[`f${t.id}_intensity`];return e?(e.value=A.intensity*(A.visible?1:0),e):void 0}if(A.type!=="displace"&&(o==="alpha"||o==="visible")){let e=t.uniforms[`f${t.id}_alpha`];if(!e)return;if(e.value=A.alpha*(A.visible?1:0),A.type==="outline"&&o==="visible"){let r=t.uniforms[`f${t.id}_compensation`];r&&(r.value=A.compensation&&A.visible)}return e}}function Dm(o,t){let A=0;for(let e of o.layers)if(e.data.type!=="displace"&&"alpha"in e.data&&e.data.type!=="light"&&e.data.type!=="fresnel"&&e.data.type!=="texture"&&e.data.type!=="matcap"&&e.data.type!=="rainbow"&&e.data.type!=="outline"){let r=e.data.visible?e.data.alpha:0;if(r==1&&e.data.type=="depth"||e.data.type=="gradient"){for(let n of e.data.colors)if(n[3]<1){r=n[3];break}}else if(r==1&&e.data.type=="noise"){let n=t.color(e.data.colorA).a,i=t.color(e.data.colorB).a,a=t.color(e.data.colorC).a,l=t.color(e.data.colorD).a,d=Math.min(n,Math.min(i,Math.min(a,l)));d<1&&(r=d)}A+=(1-A)*r}return A<1}var ze=class extends Gm.ShaderMaterial{constructor(){super(void 0);this.flatShading=!1;this.cacheKey="";this.fog=!0,this.dithering=!0,this.vertexColors=!0,this.transparent=!0}customProgramCacheKey(){return this.cacheKey}},hc=class extends ze{constructor(A,e,r,n){super();this.flatShading=A;this.side=e;this.wireframe=r;this.root=n}updateAfterBuild(){let A=this.root;this.lights=A.lights,this.vertexShader=A.vertexShader,this.fragmentShader=A.fragmentShader,this.defines=A.defines,this.uniforms=A.uniforms,this.extensions=A.extensions,this.transparent=A.transparent,this.cacheKey=A.customProgramCacheKey()+"flat"+this.flatShading+this.side}onBeforeCompile(A,e){this.root.onBeforeCompile(A)}get data(){return this.root.data}get category(){return this.root.category}getFlavor(A,e,r){return this.root.getFlavor(A,e,r)}get layers(){return this.root.layers}get fragment(){return this.root.fragment}getLayersOfType(A){return this.root.getLayersOfType(A)}getLayerByUuid(A){return this.root.getLayerByUuid(A)}updateByOp(A,e,r){this.root.updateByOp(A,e,r)}nodeMaterialDispose(){this.root.nodeMaterialDispose()}},mn=class extends ze{constructor(A,e){super();this.data=A;this.layerIdGen=0;this.flavors=[];this.type="NodeMaterial";this.updaters=[],this.reset0(A,e)}get nodeMaterial(){return this}getFlavor(A,e,r){let n=r?6:(A?3:0)+e;if(n===0)return this;this.flavors===void 0&&(this.flavors=[]),n-=1;let i=this.flavors[n];return i===void 0&&(i=new hc(A,e,r,this),this.flavors[n]=i,i.flatShading=A,i.side=e,i.updateAfterBuild()),i}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.category}reset(A,e){this.data!==A&&this.reset0(A,e)}reset0(A,e){this.data=A;let r=A.layers??Be.defaultTwoLayerData("phong").layers;this.layers=r.map(n=>Dt.create(this.layerIdGen++,n.id,n.data,e.shared)),this.layers.reverse(),this.name=A.name??"Untitled Material",this.onUpdate(),this.transparent=Dm(A,e.shared)}getLayersOfType(A){return this.layers.filter(e=>e.type===A)}getLayerByUuid(A){return this.layers.find(e=>e.uuid===A)}onUpdate(){this.cacheKey=this.computeCacheKey(),this.lightLayer=this.layers.find(A=>A instanceof Gt),this.lightLayer===void 0&&(this.lightLayer=new Gt(0,"",{...Te.defaultData("light","phong"),visible:!1},new Xr,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(A,e,r){if(this.data=e,this.transparent=Dm(e,r.shared),A.path[0]==="layers"){this.data=e;let n=r.shared,i=A.path[1];if(i===void 0){if(this.layers.reverse(),A.type===4){let a=Dt.create(this.layerIdGen++,A.id,A.data,r.shared);this.layers.splice(A.localIndex,0,a),r.scene?.markNeedsUpdateRendererDirty()}else if(A.type===5)this.layers.splice(A.localIndex,1)[0].dispose(),r.scene?.markNeedsUpdateRendererDirty();else if(A.type===6){let a=this.layers.findIndex(d=>d.uuid===A.id),l=this.layers[a];this.layers.splice(a,1),this.layers.splice(A.localIndex,0,l),r.scene?.markNeedsUpdateRendererDirty()}this.layers.reverse(),this.onUpdate()}else{let a=this.layers.find(l=>l.uuid===i);if(a){let l=e.layers.data(i);if(a.updateByOp({...A,path:A.path.slice(2)},l,r)){let s=Dt.create(this.layerIdGen++,i,l,n);this.layers.splice(this.layers.findIndex(c=>c.uuid===i),1,s),this.onUpdate()}}}}else this.reset(e,r)}blendColors(){let A=this.layers.findIndex(r=>r instanceof Ae),e=this.layers.findIndex(r=>r instanceof Gt);if(A!==-1&&A<e){let r=this.layers[A].color;for(let n=A+1;n<e;++n){let i=this.layers[n];i instanceof Ae&&(r=new bi(r,i.color,i.alpha,i.mode))}this.fragment.color=r}else this.fragment.color=void 0}blendAfterColors(){let A=new NA("outgoingLight","f"),e=this.layers.findIndex(r=>r instanceof Gt);if(this.layers.length>e+1){for(let r=e+1;r<this.layers.length;++r){let n=this.layers[r];n instanceof Ae&&(A=new bi(A,n.color,n.alpha,n.mode))}this.fragment.afterColor=A}else this.fragment.afterColor=void 0}blendPositions(){let A=this.layers.filter(e=>e instanceof Ii);if(A.length>0){let e=A[0].position;for(let r=1;r<A.length;++r)A[r]&&(e=new je(e,A[r].position,je.ADD),e=new je(e,new _(.5).setReadonly(!0),je.MUL));this.fragment.position=e}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}onBeforeCompile(A){this.build(),A.defines=this.defines,A.uniforms=this.uniforms,A.vertexShader=this.vertexShader,A.fragmentShader=this.fragmentShader,A.extensionDerivatives=this.extensions.derivatives===!0,A.extensionFragDepth=this.extensions.fragDepth===!0,A.extensionDrawBuffers=this.extensions.drawBuffers===!0,A.extensionShaderTextureLOD=this.extensions.shaderTextureLOD===!0}clampUniformsForPreview(A,e){let r=(n,i,a)=>Math.min(Math.max(n,i),a);for(let n of this.layers)if(n.type==="displace"){let i=r(n.uniforms[`f${n.id}_intensity`].value,A,e);n.uniforms[`f${n.id}_intensity`].value=i}}computeCacheKey(){let A="[";for(let{data:e}of this.data.layers)if(e.type==="light")A+=`"${e.visible?e.category.toUpperCase():"Basic"}"`;else{let r=(cc[e.type]??[]).map(a=>e[a]),n=(dc[e.type]??[]).map(a=>e[a]?.length??0),i=[...r,...n];i.length?A+=`["${e.type}", "${i.join('","')}"],`:A+=`"${e.type}",`}return A=A.slice(0,-1)+"]",A}updateFrame(A){for(let e=0;e<this.updaters.length;++e)A.updateNode(this.updaters[e])}build(){let A=new ua;this.lights=this.lightLayer.data.visible,A.build(this.fragment,this.fragment),this.vertexShader=A.getCode("vertex"),this.fragmentShader=A.getCode("fragment"),this.defines=A.defines,this.uniforms=A.uniforms,this.extensions=A.extensions,this.updaters=A.updaters;for(let e of this.flavors)e&&e.updateAfterBuild();return this}nodeMaterialDispose(){this.layers.forEach(A=>A.dispose()),super.dispose();for(let A of this.flavors)A&&A.dispose()}assetsLoaded(){for(let A of this.layers)if(A instanceof Ae){let e=A.params.texture;if(e instanceof Kr&&!e.image.loaded)return!1}return!0}getHash(){let A="{";return A+='"fragment":'+this.fragment.getHash(),A+="}",A}};Object.defineProperties(ze.prototype,{properties:{get:function(){return this.fragment.properties}}});var Zr=class extends mn{};var Fm=Qi(Rm());var Vm=new Map;function jm(o){if(typeof o=="string")return o;let t=Vm.get(o);return t||(t={url:URL.createObjectURL(new Blob([o]))},Vm.set(o,t)),t.url}var Jr=class{constructor({src:t,volume:A,delay:e,loop:r}){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 n;typeof t=="string"?n={src:t}:n={src:jm(t),format:"wav"},this.sound=new Fm.Howl(n),this.sound.on("end",this.onEnd),this.src=t,A!==void 0&&(this.volume=A),e!==void 0&&(this.delay=e),r!==void 0&&(this.loop=r)}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,A=1e3){t?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,A),this.clearFade()},t)):this.sound.fade(this._volume,0,A)}on(t,A,e){this.sound.on(t,A,e)}off(t,A,e){this.sound.off(t,A,e)}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 ie=require("three"),Sa=class{constructor(){this.type="ShapePath";this.color=new ie.Color;this.subPaths=[];this.currentPath=null}moveTo(t,A){return this.currentPath=new ie.Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,A),this}lineTo(t,A){return this.currentPath?.lineTo(t,A),this}quadraticCurveTo(t,A,e,r){return this.currentPath?.quadraticCurveTo(t,A,e,r),this}bezierCurveTo(t,A,e,r,n,i){return this.currentPath?.bezierCurveTo(t,A,e,r,n,i),this}splineThru(t){return this.currentPath?.splineThru(t),this}toShapes(){let A={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},e={loc:A.ORIGIN,t:0};function r(m,h,y,x){let S=m.x,v=h.x,b=y.x,P=x.x,w=m.y,g=h.y,N=y.y,O=x.y,C=(P-b)*(w-N)-(O-N)*(S-b),T=(v-S)*(w-N)-(g-w)*(S-b),L=(O-N)*(v-S)-(P-b)*(g-w),M=C/L,U=T/L;if(L===0&&C!==0||M<=0||M>=1||U<0||U>1)return null;if(C===0&&L===0){for(let Z=0;Z<2;Z++)if(n(Z===0?y:x,m,h),e.loc===A.ORIGIN){let $=Z===0?y:x;return{x:$.x,y:$.y,t:e.t}}else if(e.loc===A.BETWEEN){let $=+(S+e.t*(v-S)).toPrecision(10),iA=+(w+e.t*(g-w)).toPrecision(10);return{x:$,y:iA,t:e.t}}return null}else{for(let iA=0;iA<2;iA++)if(n(iA===0?y:x,m,h),e.loc===A.ORIGIN){let k=iA===0?y:x;return{x:k.x,y:k.y,t:e.t}}let Z=+(S+M*(v-S)).toPrecision(10),$=+(w+M*(g-w)).toPrecision(10);return{x:Z,y:$,t:M}}}function n(m,h,y){let x=y.x-h.x,S=y.y-h.y,v=m.x-h.x,b=m.y-h.y,P=x*b-v*S;if(m.x===h.x&&m.y===h.y){e.loc=A.ORIGIN,e.t=0;return}if(m.x===y.x&&m.y===y.y){e.loc=A.DESTINATION,e.t=1;return}if(P<-Number.EPSILON){e.loc=A.LEFT;return}if(P>Number.EPSILON){e.loc=A.RIGHT;return}if(x*v<0||S*b<0){e.loc=A.BEHIND;return}if(Math.sqrt(x*x+S*S)<Math.sqrt(v*v+b*b)){e.loc=A.BEYOND;return}let w;x!==0?w=v/x:w=b/S,e.loc=A.BETWEEN,e.t=w}function i(m,h){let y=[],x=[];for(let S=1;S<m.length;S++){let v=m[S-1],b=m[S];for(let P=1;P<h.length;P++){let w=h[P-1],g=h[P],N=r(v,b,w,g);N!==null&&y.find(O=>O.t<=N.t+Number.EPSILON&&O.t>=N.t-Number.EPSILON)===void 0&&(y.push(N),x.push(new ie.Vector2(N.x,N.y)))}}return x}function a(m,h,y){let x=new ie.Vector2;h.getCenter(x);let S=[];return y.forEach(v=>{v.boundingBox.containsPoint(x)&&i(m,v.points).forEach(P=>{S.push({identifier:v.identifier,isCW:v.isCW,point:P})})}),S.sort((v,b)=>v.point.x-b.point.x),S}function l(m,h,y,x,S){(S==null||S==="")&&(S="nonzero");let v=new ie.Vector2;m.boundingBox.getCenter(v);let b=[new ie.Vector2(y,v.y),new ie.Vector2(x,v.y)],P=a(b,m.boundingBox,h);P.sort((T,L)=>T.point.x-L.point.x);let w=[],g=[];P.forEach(T=>{T.identifier===m.identifier?w.push(T):g.push(T)});let N=w[0].point.x,O=[],C=0;for(;C<g.length&&g[C].point.x<N;)O.length>0&&O[O.length-1]===g[C].identifier?O.pop():O.push(g[C].identifier),C++;if(O.push(m.identifier),S==="evenodd"){let T=O.length%2===0,L=O[O.length-2];return{identifier:m.identifier,isHole:T,for:L}}else if(S==="nonzero"){let T=!0,L=null,M=null;for(let U=0;U<O.length;U++){let Z=O[U];h[Z]&&(T?(M=h[Z].isCW,T=!1,L=Z):M!==h[Z].isCW&&(M=h[Z].isCW,T=!0))}return{identifier:m.identifier,isHole:T,for:L}}else console.warn('fill-rule: "'+S+'" is currently not implemented.')}let d=0,s=999999999,c=-999999999,u=[];this.subPaths.forEach(m=>{let h=m.getPoints(),y=-999999999,x=999999999,S=-999999999,v=999999999;for(let b=0;b<h.length;b++){let P=h[b];P.y>y&&(y=P.y),P.y<x&&(x=P.y),P.x>S&&(S=P.x),P.x<v&&(v=P.x)}c<=S&&(c=S+1),s>=v&&(s=v-1),h.length&&u.push({curves:m.curves,points:h,isCW:ie.ShapeUtils.isClockWise(h),identifier:d++,boundingBox:new ie.Box2(new ie.Vector2(v,x),new ie.Vector2(S,y))})});let p=u.map(m=>l(m,u,s,c,this.userData?.style.fillRule)),f=[];return u.forEach(m=>{let h=p[m.identifier];if(h&&!h.isHole){let y=new ie.Shape;y.curves=m.curves,p.filter(S=>S?.isHole&&S.for===m.identifier).forEach(S=>{if(S){let v=u[S.identifier],b=new ie.Path;b.curves=v.curves,y.holes.push(b)}}),f.push(y)}}),f}};var Um,yc=new Promise(o=>{Um=o}),zm=!1;async function km(){if(zm)return;let o=await import("./opentype.js");Um(o),zm=!0}var Li=class{async load(t,A,e=()=>{}){let{load:r}=await yc;r(t,(n,i)=>{n||!i?e(n??"Something went wrong"):A(i)})}async parse(t){let{parse:A,Bidi:e}=await yc;try{let r=A(t),n=new e,i=a=>r.charToGlyphIndex(a.char);return n.registerModifier("glyphIndex",null,i),n.applyFeatures(r,r.defaultRenderOptions.features),{font:r,bidi:n}}catch(r){console.error(r)}}};async function y1(o){return await(await fetch(o)).arrayBuffer()}var g1=new Li;async function gc(o){let t,A,e=!1;if(o.url?(t=await y1(o.url),A=o.url,e=o.url.startsWith("/")):o.data&&(t=o.data.buffer),t){let r=await g1.parse(t);if(r)return{font:r.font,url:A,intercepted:e,arr:t,bidi:r.bidi}}}var hn=require("three");function x1(o,t){return t.state.glyphIndex===o||t.state.fina===o||t.state.medi===o||t.state.init===o}var wa=class{constructor(t){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=t.isUserFont??!1,this._loadingPromise=gc(t).then(A=>{A&&(this._arrayBuffer=A.arr,this._url=A.url,this.font=A.font,this._intercepted=A.intercepted,this._isLoaded=!0,this._bidi=A.bidi)})}update(t){this._isLoaded=!1,this._isUserFont=t.isUserFont??!1,this._loadingPromise=gc(t).then(A=>{A&&(this._arrayBuffer=A.arr,this._url=A.url,this.font=A.font,this._intercepted=A.intercepted,this._isLoaded=!0,this._bidi=A.bidi)})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}reverseLigaturesTable(t,A,e){if(!this._bidi)return[];let r=this._bidi;r.getTextGlyphs(A);let n=r.tokenizer.tokens,i=[],a=0,l=e.length===n.length;for(let d=0;d<e.length;d++){let s=e[d].index,c=String.fromCharCode(e[d].unicode),u=n[a];if(x1(s,u)||l)i.push({char:c,index:s,replacements:[u.state.glyphIndex],replacementChars:[u.char]}),a++;else{let p=u.char,f="",m=[u.state.glyphIndex],h=[],y=!1;for(;!y;)a++,f=A.charAt(a),p+=f,m.push(t.charToGlyphIndex(f)),h=t.stringToGlyphs(p),h.length===1&&h[0].index===s&&(y=!0),a>A.length&&(y=!0);i.push({char:c,index:s,replacements:m,replacementChars:Array.from(p)}),a++}}return i}generateShapes(t,A){if(!this._isLoaded)return;let e=this.font,r=A.fontSize/this.unitsPerEm,n=A.fontSize*A.lineHeight,i=t.map(x=>this.getTextWidth(x,A)),a=A.width,l=this.getCharWidth(`
1335
- `,A),d=A.horizontalAlign===1?l:0,s=this.computeSpaceWidthForLine(t,0,A),c=this.getLineInitialOffsetX(i[0],a,A.horizontalAlign,t[0],l),u=this.getLineInitialOffsetY(n,t.length,A.height,r,A.verticalAlign),p=[],f=t.map(x=>[]),m=t.map(x=>[]),h;for(let x=0;x<t.length;x++){let S=t[x],v={features:{liga:!0}},b=[];try{b=e.stringToGlyphs(S,v)}catch(w){console.warn(w)}c=this.getLineInitialOffsetX(i[x],a,A.horizontalAlign,S,l);let P=[];try{P=this.reverseLigaturesTable(e,S,b)}catch(w){console.warn(w)}s=this.computeSpaceWidthForLine(t,x,A);for(let w=0;w<b.length;w++){let g=b[w],N=g.index===0?`
1336
- `:g.unicode?String.fromCharCode(g.unicode):void 0,O=P[w],C=0,T=0;w===0&&A.horizontalAlign===2&&g.leftSideBearing!==void 0&&(T=-g.leftSideBearing*r),h&&(C=e.getKerningValue(g,h)*r),c+=T+C;let L=0;if(N===`
1337
- `)L=d;else if(N===" ")L=s;else{let M=this.createPath(g,r,c,u,A);M&&(L=M.offsetX-(C+T),p.push(M.path))}if(O.replacements.length===1)m[x].push([c,u]),f[x].push(L);else{let M=O.replacements.map(iA=>(e.glyphs.get(iA).advanceWidth??0)*r),U=M.reduce((iA,k)=>iA+=k,0),Z=M.map(iA=>iA/U),$=c;for(let iA=0;iA<Z.length;iA++){let k=L*Z[iA];m[x].push([$,u]),f[x].push(k),$+=k}}c+=L,h=g}u-=n}let y=[];for(let x=0,S=p.length;x<S;x++)y.push(...p[x].toShapes());return{shapes:y,charWidths:f,lineWidths:i,charCoords:m}}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,A,e,r,n){return(e===3||e===2)&&r.indexOf(`
1338
- `)>=0&&(t-=n),e===3?A*.5-t*.5:e===2?A-t:0}getLineInitialOffsetY(t,A,e,r,n){let i=A*t,a=Math.abs(this.ascender-this.descender)*r,l=t-a,d=-this.ascender*r-l/2;return n===3?-(e-i-d):n===2?-(e*.5-i*.5-d):d}createPath(t,A,e,r,n){let i=t.getPath(e,-r,n.fontSize,{kerning:!1,letterSpacing:n.letterSpacing});if(!i){console.error('THREE.Font: character "'+t+'" does not exists in font family '+this.familyName+".");return}let a=new Sa,l=(t.advanceWidth??1)*A;if(t)for(let d of i.commands){let s=a.currentPath?.currentPoint;if(!(s&&d.type!=="Z"&&s.x===d.x&&-s.y===d.y))switch(d.type){case"M":a.moveTo(d.x,-d.y);break;case"L":a.lineTo(d.x,-d.y);break;case"Q":a.quadraticCurveTo(d.x1,-d.y1,d.x,-d.y);break;case"C":a.bezierCurveTo(d.x1,-d.y1,d.x2,-d.y2,d.x,-d.y);break}}return a.subPaths.forEach(d=>{let s=v1(d.curves);s!==void 0&&d.currentPoint.distanceTo(s)>0&&d.lineTo(s.x,s.y)}),{offsetX:l+n.fontSize*n.letterSpacing,path:a}}getCharWidth(t,A){return this.font?.getAdvanceWidth(t,A.fontSize,{kerning:!0,letterSpacing:A.letterSpacing})??0}getTextWidth(t,A){return this.font?.getAdvanceWidth(t,A.fontSize,{kerning:!0,letterSpacing:A.letterSpacing})??0}computeSpaceWidthForLine(t,A,e){let r=this.getCharWidth(" ",e),n=t[A];if(n){let i=this.countSpaces(n.trimEnd());if(e.horizontalAlign===4&&A<t.length-1&&i){let a=e.width,l=this.getTextWidth(n,e);return(a-(l-i*r))/i}}return r}countSpaces(t){return(t.match(/ /g)||[]).length}};function v1(o){if(o.length){let t=o[0];if(t instanceof hn.LineCurve)return t.v1;if(t instanceof hn.CubicBezierCurve||t instanceof hn.QuadraticBezierCurve)return t.v0}}var xc=class{constructor(){this.objects=new Map;this.unreachable=new Set}getCached(t){return this.objects.get(t)}get size(){return this.objects.size}get(t,A){let e=this.objects.get(t);return e===void 0?(e=this.createObject(t,A),this.objects.set(t,e)):e.isShared=!0,e}mutateIfUnique(t,A){let e=this.objects.get(t);if(e&&e.isShared!==!0)return this.objects.delete(t),this.objects.set(A,e),e}startGc(){this.unreachable=new Set(this.objects.keys())}markAsReachable(t,A){let e=this.objects.get(t);A===e?this.unreachable.delete(t):cr&&console.warn("Reachable but deleted",t)}endGc(){this.unreachable.forEach(t=>{this.disposeObject(this.objects.get(t)),this.objects.delete(t)}),this.unreachable.clear()}dispose(){this.objects.forEach(t=>{this.disposeObject(t)}),this.objects.clear()}},Ei=class extends xc{constructor(A){super();this.flatShading=A}disposeObject(A){A.dispose()}createObject(A,e){let r=qr(A,e,this.flatShading);return r.computeBoundingSphere(),r}};var Hm={find(o){},markNeedsUpdateRendererDirty:function(){},markGeometryCacheDirty:function(){},addPendingExpandCloner:function(o){},addPendingUpdateCloner(o){}};var vc=class extends ya{constructor(A){super();this.shared=A}create(A){return new fn(A,this.shared)}},_r=class{constructor(t,A={}){this.geometryCache=new Ei(!0);this.geometryCache2=new Ei(!1);this.imageHolderCache=new vc(this);this.thisContext={scene:Hm,shared:this};this.deletedMaterial=new Zr(Be.defaultTwoLayerData("phong"),this.thisContext);this.deletedImage=new $e(qs.emptyImage,this);this.deletedVideo=new $e(po.defaultVideo,this);this.materials={};this.images={};this.videos={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.requestRender=()=>{this._requestRender&&this._requestRender()};if(A.images)for(let[e,r]of Object.entries(A.images))this.addImage(e,r);if(A.videos)for(let[e,r]of Object.entries(A.videos))this.addVideo(e,r);if(A.audios)for(let[e,r]of Object.entries(A.audios))this.addAudio(e,r.data);this.reset(t)}setRequestRender(t){this._requestRender=t}reset(t){for(let[A,e]of Object.entries(t.images))this.addImage(A,e);for(let[A,e]of Object.entries(t.videos))this.addVideo(A,e);for(let[A,e]of Object.entries(t.colors))this.addColor(A,e);for(let[A,e]of Object.entries(t.materials))this.addMaterial(A,new Zr(e,this.thisContext));for(let[A,e]of Object.entries(t.audios))this.addAudio(A,e.data);for(let[A,e]of Object.entries(t.fonts))this.addFont(A,e);this.penumbraSize=t.penumbraSize}addMaterial(t,A){A.uuid=t,this.materials[t]=A}deleteMaterial(t){this.materials[t]&&(this.materials[t].nodeMaterialDispose(),delete this.materials[t])}getMaterial(t){let A=this.materials[t];return A}getMaterialOrDeletedPlaceholder(t){return this.materials[t]??this.deletedMaterial}material(t){return typeof t=="string"?this.getMaterialOrDeletedPlaceholder(t):new mn(t,this.thisContext)}getMaterials(){return this.materials}addImage(t,A){return this.images[t]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(),this.images[t].updateSrc(A.data),!0):(this.images[t]=new $e(A,this),!1)}deleteImage(t){let A=this.images[t];A&&(A.dispose(),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):this.imageHolderCache.load(t)}addVideo(t,A){return this.videos[t]?(this.videos[t].updateSrc(A.data),!0):(this.videos[t]=new $e(A,this),!1)}deleteVideo(t){let A=this.videos[t];A&&(A.dispose(),delete this.videos[t])}getVideo(t){return this.videos[t]??this.deletedVideo}video(t){return typeof t=="string"?this.getVideo(t):this.imageHolderCache.load(t)}addColor(t,A){return this.colors[t]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(),"a"in A?this.colors[t].setRGBA(A.r,A.g,A.b,A.a):this.colors[t].setRGBA(A.r,A.g,A.b,1),!0):("a"in A?this.colors[t]=new Sr(A.r,A.g,A.b,A.a):this.colors[t]=new Sr(A.r,A.g,A.b,1),!1)}updateColor(t,A){if(this.colors[t]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate();let e=this.colors[t];return this.colors[t].r=A.r??e.r,this.colors[t].g=A.g??e.g,this.colors[t].b=A.b??e.b,this.colors[t].a=A.a??e.a,!0}return!1}deleteColor(t){this.colors[t]&&delete this.colors[t]}getColor(t){return this.colors[t]}color(t){let A;if(typeof t=="string"){let e=this.getColor(t);e?A=e:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),A=new ne(0,0,0,0))}else return"a"in t?new ne(t.r,t.g,t.b,t.a):new ne(t.r,t.g,t.b,1);return A}addAudio(t,A){this.audios[t]=A}getAudio(t){let A=this.audios[t];if(A instanceof Jr)return A;{let e=new Jr({src:A});return this.audios[t]=e,e}}deleteAudio(t){let A=this.audios[t];A&&(A instanceof Jr&&A.dispose(),delete this.audios[t])}addFont(t,A){this.fonts[t]=new wa(A),this.fonts[t].loadingPromise.then(()=>this.requestRender())}getFont(t){return this.fonts[t]}deleteFont(t){this.fonts[t]&&delete this.fonts[t]}dispose(){Object.keys(this.materials).forEach(A=>this.deleteMaterial(A)),this._requestRender=void 0,Object.values(this.audios).forEach(A=>{A instanceof Jr&&A.dispose()}),this.audios={},this.geometryCache.dispose(),this.geometryCache2.dispose()}},Wm=new _r(gs.emptyData());var ht=class extends me{updateByPatchedOp(A,e,r){if(super.updateByPatchedOp(A,e,r),zc(A.path,["materials"])!==null&&A.type===0&&Array.isArray(this.material))for(let[n,i]of Object.entries(A.props)){let a=r.shared.material(i);this.material[Number(n)]=a}else if(vt(A.path,["material"])&&this.material instanceof ze)"material"in e&&typeof e.material!="string"&&this.material.updateByOp(pe.drop(A,1),e.material,r);else if(vt(A.path,["materials","*"])&&Array.isArray(this.material)){let n=A.path[1];if("materials"in e&&n<this.material.length){let i=e.materials[n];typeof i!="string"&&this.material[n].updateByOp(pe.drop(A,2),i,r)}}}updateState(A,e){super.updateState(A,e),A.castShadow!==void 0&&(this.castShadow=A.castShadow),A.receiveShadow!==void 0&&(this.receiveShadow=A.receiveShadow);let r=this.dataPatched;if(A.geometry?.type!=="NonParametricGeometry"&&"material"in A&&A.material!==void 0&&(this.disposeMaterial(),this.material=e.shared.material(A.material).getFlavor(r.flatShading,r.side,r.wireframe),e.scene?.markNeedsUpdateRendererDirty()),A.geometry?.type==="NonParametricGeometry"&&("materials"in A&&A.materials!==void 0?(this.disposeMaterial(),this.material=A.materials.map(n=>e.shared.material(n).getFlavor(r.flatShading,r.side,r.wireframe)),e.scene?.markNeedsUpdateRendererDirty()):"material"in A&&A.material!==void 0&&(this.disposeMaterial(),this.material=[e.shared.material(A.material).getFlavor(r.flatShading,r.side,r.wireframe)],e.scene?.markNeedsUpdateRendererDirty())),A.flatShading!==void 0||A.wireframe!==void 0||A.side!==void 0)if(Array.isArray(this.material))for(let n=0;n<this.material.length;n++)this.material[n]=this.material[n].getFlavor(r.flatShading,r.side,r.wireframe);else this.material=this.material.getFlavor(r.flatShading,r.side,r.wireframe)}disposeMaterial(){this.material&&ys(this.material).forEach(A=>{A instanceof ze&&(A instanceof Zr||A.nodeMaterialDispose())})}dispose(){this.disposeMaterial(),super.dispose()}};var qm=require("three");var Ne=class extends ht{constructor(A,e,r){super(A,e);this.data=e;this.localGeometry=void 0}chooseGeoemtryCache(A){return A.geometryCache}markGeometryAsReachable(A){this.geometryCreateDeleyed instanceof qm.BufferGeometry&&this.chooseGeoemtryCache(A).markAsReachable(this.dataPatched.geometry,this.geometryCreateDeleyed)}get geometry(){if(this.localGeometry!==void 0)return this.localGeometry;if(this.geometryCreateDeleyed instanceof _r){let A=this.geometryCreateDeleyed,e=this.chooseGeoemtryCache(A);this.geometryCreateDeleyed=e.get(this.dataPatched.geometry,A)}return this.geometryCreateDeleyed}set geometry(A){this.localGeometry=A}get is2DAndNoDepth(){let A=this.dataPatched.geometry;return Vn.is2DParametricMesh(A.type)&&A.depth===0}get is2DType(){return Vn.is2DParametricMesh(this.geometry.userData.type)}updateByPatchedOp(A,e,r){super.updateByPatchedOp(A,e,r),vt(A.path,["geometry"])&&this.updateByPatchedOpGeometry(pe.drop(A,1),e.geometry,r)}removeInteractionGeometry(){this.localGeometry?.dispose(),this.localGeometry=void 0}updateGeometryInteractions(A,e){this.invalidateDownstreamBooleanData();let r=this.data.geometry.type;if(r==="NonParametricGeometry"||r==="SubdivGeometry"){let n=A;if(this.localGeometry===void 0){let s={...this.data.geometry,...n};this.localGeometry=qr(s,e,this.data.flatShading)}let i,a,l;n.scaleBaked?[i,a,l]=n.scaleBaked:{width:i,height:a,depth:l}=n;let d=this.localGeometry.userData;d.sxPrev!==void 0&&ri(this.localGeometry.attributes,i/d.sxPrev,a/d.syPrev,l/d.szPrev),d.sxPrev=i,d.syPrev=a,d.szPrev=l}else{let n={...this.data.geometry,...A};this.localGeometry?.dispose(),this.localGeometry=qr(n,e,this.data.flatShading)}}refreshAttachedCloners(A){for(let e of this.attachedSurfaceCloners)A.scene.addPendingUpdateCloner(e.object)}createGeometryDelayed(A){this.geometryCreateDeleyed=A.shared,this.refreshAttachedCloners(A)}updateByPatchedOpGeometry(A,e,r){let n=!1;A.type===0&&A.path.length===0&&kn(["scaleBaked"],Object.keys(A.props))&&this.geometryCreateDeleyed instanceof ZA&&this.chooseGeoemtryCache(r.shared).mutateIfUnique(this.geometryCreateDeleyed.data,e)===this.geometryCreateDeleyed&&(n=!0,this.geometryCreateDeleyed.mutateDirectlyScaleBaked(e,A.props.scaleBaked),this.refreshAttachedCloners(r)),n||(r.scene?.markGeometryCacheDirty(),this.createGeometryDelayed(r)),this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateGeometryOnStateUpdate(A,e){this.createGeometryDelayed(e)}updateState(A,e){A.geometry!==void 0&&this.updateGeometryOnStateUpdate(A.geometry,e),super.updateState(A,e)}updateGeometryGroupsIfNeeded(){Array.isArray(this.material)&&this.geometry.groups.length===0&&this.geometry.addGroup(0,Math.max(this.geometry.getIndex()?.count??0,this.geometry.getAttribute("position").count),0)}updateEntityBoxSize(A,e){let r=this.geometry.userData.parameters;this.is2DType?A.set(0,0,r.depth*.5):A.setScalar(0),e.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}};function b1(o){if(o.geometry.attributes.extrudeNormal||!o.geometry.attributes.position||!o.geometry.attributes.normal)return;let t=new Map,A=o.geometry.attributes.position.array,e=o.geometry.attributes.normal.array,r=new Float32Array(A.length);for(let n=0;n<A.length;n+=3){let i=`${A[n]}_${A[n+1]}_${A[n+2]}`,a=new Ye.Vector3(e[n],e[n+1],e[n+2]);t.has(i)?t.get(i)?.normals.push(a):t.set(i,{normals:[a],result:new Ye.Vector3})}t.forEach((n,i)=>{for(let a of n.normals)n.result.add(a);n.result.divideScalar(n.normals.length)});for(let n=0;n<A.length;n+=3){let i=`${A[n]}_${A[n+1]}_${A[n+2]}`,a=t.get(i)?.result;a&&(r[n]=a.x,r[n+1]=a.y,r[n+2]=a.z)}o.geometry.setAttribute("extrudeNormal",new Ye.Float32BufferAttribute(r,3))}function S1(o){if(o.geometry.attributes.extrudeNormals||!o.geometry.attributes.position)return;let t=o.geometry.attributes.position.array,A=new Float32Array(t.length),e=new Ye.Vector3;for(let r=0;r<t.length;r+=3)e.set(t[r],t[r+1],t[r+2]).normalize(),A[r]=e.x,A[r+1]=e.y,A[r+2]=e.z;o.geometry.setAttribute("extrudeNormal",new Ye.Float32BufferAttribute(A,3))}function yn(o){if(Array.isArray(o.material)){for(let t of o.material)if(t.getLayersOfType("outline").length===0)return}else if(!(o.material instanceof ze)||o.material.getLayersOfType("outline").length===0)return;o instanceof Ne&&o.is2DAndNoDepth?S1(o):b1(o)}function gn(o){if(!o.geometry.attributes.position)return;let t=o.geometry.attributes.position.array,A=new Float32Array(t.length),e=parseInt(o.uuid.replace(/\D/g,"")),r=[Ye.MathUtils.seededRandom(e),Ye.MathUtils.seededRandom(e+1e4),Ye.MathUtils.seededRandom(e+2e4)];for(let n=0;n<t.length;n++)A[n]=r[n%3];o.geometry.setAttribute("randomColor",new Ye.BufferAttribute(A,3))}var w1;en.then(o=>{w1=o});var Rt=new Jt.Box3,Mi=new Jt.Vector3;var $r=class extends Ne{constructor(A,e,r){super(A,e,r);this.data=e;this.hiddenMatrixOld=new Jt.Matrix4;this.smoothShading=!0;this.skipReactionUpdate=!1}chooseGeoemtryCache(A){return this.dataPatched.flatShading?A.geometryCache:A.geometryCache2}get subdivPointerNew(){return this.localGeometry!==void 0?this.subdivPointer:this.geometry.ensureSubdivPointer()}get originalGeometryNew(){return this.localGeometry!==void 0?this.originalGeometry:this.geometry.originalGeometry}get phongAngle(){return this.data.geometry.phongAngle??45}updateEntityBoxSize(A,e){let r=this.geometry.userData.parameters;A.copy(this.originalGeometryNew.boundingSphere.center),e.set(r.width,r.height,r.depth??0).multiplyScalar(.5)}createGeometryByControls(A){if(this.skipReactionUpdate===!0)return;let e=this.localGeometry?.uuid,{originalGeometry:r,subdividedGeometry:n,subdivPointer:i}=ZA.build(A,this.subdivPointer,this.smoothShading,this.hasNonUniformScale?this.shearScale:void 0);this.subdivPointer=i,r!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=r),n!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=n??void 0),this.localGeometry=this.subdividedGeometry??this.originalGeometry,yn(this),gn(this),this.calcBoundingBox(),e&&(this.localGeometry.uuid=e)}updateState(A,e){if(super.updateState(A,e),A.flatShading!==void 0){let r=this.material;this.material=r.getFlavor(!1,r.side,r.wireframe),this.smoothShading=!A.flatShading,this.createGeometryDelayed(e)}}updateMesh(A=!1){ZA.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,A&&this.hasNonUniformScale?this.shearScaleInv:void 0),this.subdividedGeometry&&ZA.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,A&&this.hasNonUniformScale?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=ZA.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=ZA.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.localGeometry=this.subdividedGeometry??this.originalGeometry}raycast(A,e){let r=this.localGeometry;this.localGeometry=this.originalGeometryNew,me.prototype.raycast.call(this,A,e),this.localGeometry=r}activateSVDCompensation(){!this.hasNonUniformScale||(this.matrix.copy(this.matrixWorldRigid),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){!this.hasNonUniformScale||(this.updateMatrix(),this.hasNonUniformScale=void 0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let A=this.originalGeometry;A.boundingSphere===null&&(A.boundingSphere=new Jt.Sphere,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=A.boundingSphere));let e=A.attributes.position,r=A.boundingSphere.center;Rt.setFromBufferAttribute(e),Rt.getCenter(r),A.boundingSphere.radius=r.distanceTo(Rt.max),isNaN(A.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Rt.getSize(Mi),this.hasNonUniformScale&&Mi.divide(this.scale);let n={width:Mi.x,height:Mi.y,depth:Mi.z};return this.geometry.userData.parameters=n,n}updateBoundingSphere(A){let e=this.originalGeometry;Rt.min.set(A[0],A[2],A[4]),Rt.max.set(A[1],A[3],A[5]),this.hasNonUniformScale&&(Rt.min.applyMatrix4(this.shearScaleInv),Rt.max.applyMatrix4(this.shearScaleInv)),e.boundingSphere===null&&(e.boundingSphere=new Jt.Sphere);let r=e.boundingSphere.center;Rt.getCenter(r),e.boundingSphere.radius=r.distanceTo(Rt.max)}freeSubdivPointer(){this.subdivPointer&&(ZA.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0),this.localGeometry=void 0,this.originalGeometry?.dispose(),this.subdividedGeometry?.dispose()}dispose(){super.dispose(),this.freeSubdivPointer()}updateByPatchedOpGeometry(A,e,r){super.updateByPatchedOpGeometry(A,e,r),this.localGeometry&&this.createGeometryByControls(e)}};var Vt=require("three"),Qm=-1,T1=1,Ym={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},Xm={polygon_center:0,edge:1,vertex:2},Bi=(o,t)=>(A,e)=>!t||A===0||o===0?0:o*e/100,fA=(o,t)=>{let A=Math.abs(t),e=A*-1;return(o-Qm)*(A-e)/(T1-Qm)+e};function Km(o){let t=[],A={};for(var e=0,r=o.length;e<r;e++){var n=JSON.stringify(o[e].pos.map(i=>Math.round(i*1e4)/1e4));A[n]||(t.push(o[e]),A[n]=!0)}return t}var O1=new Vt.Vector3,Ta=new Vt.Vector3,P1=new Vt.Vector3,N1=new Vt.Vector3;function xn(o,t){let A=P1.fromArray(o),e=N1.fromArray(t);Ta.copy(e).sub(A);let r=Ta.length();return Ta.normalize().multiplyScalar(r*.5),O1.copy(A).add(Ta).toArray()}var At=new Vt.Triangle,Oa=new Vt.Vector3,Pa=new Vt.Vector3,Ao=new Vt.Vector3;function Zm(o){let t=[];for(let A=0;A<=o.index.count;A++)if(Oa.fromArray(o.index.array,A*3),At.setFromAttributeAndIndices(o.attributes.position,Oa.x,Oa.y,Oa.z),At.getNormal(Pa),At.getMidpoint(Ao),!(isNaN(Ao.x)||isNaN(Ao.y)||isNaN(Ao.z))){let{a:e,b:r,c:n}=At,i=e.toArray(),a=r.toArray(),l=n.toArray(),d=e.distanceTo(r),s=r.distanceTo(n),c=n.distanceTo(e),u=xn(i,a),p=xn(a,l),f=xn(l,i),m=[d,s,c],h=Math.max(...m),y=m.filter(v=>Math.round(v)===Math.round(h)).length>1,x=[],S=At.getMidpoint(Ao).toArray();h===d&&!y&&(x=[p,f,f],S=u),h===s&&!y&&(x=[u,f,f],S=p),h===c&&!y&&(x=[u,p,p],S=f),y&&(x=[u,p,f]),t.push({vertices:[i,a,l],faceCenters:x,midpoint:S,norm:At.getNormal(Pa).toArray()})}return t}function Jm(o){let t=[],{position:A}=o.attributes;for(let e=0;e<A.count;e++){At.setFromAttributeAndIndices(A,e*3,e*3+1,e*3+2),At.getNormal(Pa),At.getMidpoint(Ao);let r=At.a.toArray(),n=At.b.toArray(),i=At.c.toArray();t.push({vertices:[r,n,i],faceCenters:[xn(r,n),xn(n,i),xn(i,r)],midpoint:Ao.toArray(),norm:Pa.toArray()})}return t}var C1=4,I1=.5,bc=o=>.5*(1-Math.cos(o*Math.PI)),Sc=class{constructor(){this.perlin=new Array(4095+1)}noise(t,A=0,e=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let y=0;y<4095+1;y++)this.perlin[y]=Math.random()}t<0&&(t=-t),A<0&&(A=-A),e<0&&(e=-e);let r=Math.floor(t),n=Math.floor(A),i=Math.floor(e),a=t-r,l=A-n,d=e-i,s,c,u=0,p=.5,f,m,h;for(let y=0;y<C1;y++){let x=r+(n<<4)+(i<<8);s=bc(a),c=bc(l),f=this.perlin[x&4095],f+=s*(this.perlin[x+1&4095]-f),m=this.perlin[x+16&4095],m+=s*(this.perlin[x+16+1&4095]-m),f+=c*(m-f),x+=256,m=this.perlin[x&4095],m+=s*(this.perlin[x+1&4095]-m),h=this.perlin[x+16&4095],h+=s*(this.perlin[x+16+1&4095]-h),m+=c*(h-m),f+=bc(d)*(m-f),u+=f*p,p*=I1,r<<=1,a*=2,n<<=1,l*=2,i<<=1,d*=2,a>=1&&(r++,a--),l>=1&&(n++,l--),d>=1&&(i++,d--)}return u}noiseSeed(t){let A=(()=>{let i,a;return{setSeed(l){a=i=(l??Math.random()*4294967296)>>>0},getSeed(){return i},rand(){return a=(1664525*a+1013904223)%4294967296,a/4294967296}}})();A.setSeed(t),this.perlin=new Array(4095+1);for(let e=0;e<4095+1;e++)this.perlin[e]=A.rand()}},_m=Sc;var bn=require("three");var $m=new bn.Vector3,Ah=new bn.Matrix4,eh=new bn.Ray;function th(o){let t=!1;return o.scene.objects.traverse((A,e)=>{e.type==="Mesh"&&e.geometry.type==="TextGeometry"&&(t=!0)}),t}var vn=class extends Ne{constructor(A,e,r){super(A,e,r);this.data=e}get textGeometry(){return this.geometry}get charWidths(){return this.textGeometry.charWidths}get charCoords(){return this.textGeometry.charCoords}get wrappedText(){return this.textGeometry.wrappedText}get font(){return this.textGeometry.font}get initialOffsetY(){let A=this.dataPatched;return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,A.geometry.height,this.fontScale,A.geometry.verticalAlign)??0}get fontScale(){let A=this.dataPatched;return this.font?A.geometry.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(){let A=this.dataPatched;return A.geometry.fontSize*A.geometry.lineHeight}raycast(A,e){let{matrixWorld:r}=this;if(Ah.copy(r).invert(),eh.copy(A.ray).applyMatrix4(Ah),eh.intersectBox(this.singleBBox,$m)){let n=$m.applyMatrix4(r),i=A.ray.origin.distanceTo(n);e.push({distance:i,point:n.clone(),object:this})}}};var Ce=1e-4,jt,nh,ih,sh,rh=new IA.Vector3,oh=new IA.Vector3;en.then(o=>{jt=o,nh=[jt.get_face_center,jt.get_edge_midpoint,jt.get_vertex_position],ih=[jt.get_face_normal,jt.get_edge_normal,jt.get_vertex_normal],sh=[jt.face_count,jt.edge_count,jt.vertex_count]});var L1=new IA.Matrix4,E1=new IA.Matrix4,Tr=new IA.Vector3,eo=new IA.Vector3,Di=new IA.Vector3,wc=new IA.Vector3,M1=new IA.Vector3,B1=new IA.Vector3;var _t=new _m,wn=class extends ko(IA.Object3D){constructor(A,e){super();this.parameters=e;this.objectForSample=void 0;this._pendingMediaLoad=!1;this.object=A}resetOnMove(){this.removeFromParent(),this.parent=null}expandClones(A){if(this.parent===null)this.updateState(this.parameters,A);else for(let e of this.children)e instanceof Xt&&e.expand()}invalidateTransform(A){this.matrixWorldNeedsUpdate=!0,this.traverse(e=>{e instanceof Xt&&e.object===A&&(e.matrixWorldNeedsUpdate=!0)})}onObjUpdateMatrix(){this.parameters.type!=="toObject"&&(this.matrixWorldNeedsUpdate=!0)}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)}for(let A of this.children)A.updateMatrix(),A.hasNonUniformScale&&(A.updateMatrixWorld(),A.updateMatrixWorldSVD())}_updateCount(A){let e;if(A!==void 0?e=A:e=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&&(e=0),this.parameters.type==="toObject"&&this.objectForSample){for(let n=0,i=this.children.length;n<i;++n)this.remove(this.children[0]);let r=this.children;if(r.length===e)return;if(r.length<e)for(let n=0,i=e-r.length;n<i;++n){let a=new Xt(this.object);a.expand(),this.add(a)}else for(let n=0,i=r.length-e;n<i;++n)this.remove(r[n])}else{if(this.children.length===e)return;if(this.children.length<e)for(let r=0,n=e-this.children.length;r<n;++r){let i=new Xt(this.object);i.expand(),this.add(i)}else for(let r=0,n=this.children.length-e;r<n;++r)this.remove(this.children[0])}}_updateRadial(A){let e=A.radial,r=e.start*IA.MathUtils.DEG2RAD,n=e.end*IA.MathUtils.DEG2RAD,i=r-n,a=new IA.Euler(e.rotation[0],e.rotation[1],e.rotation[2]),l;switch(e.axis){case"z":l=new IA.Vector3(0,0,1);break;case"y":l=new IA.Vector3(0,1,0);break;default:case"x":l=new IA.Vector3(1,0,0);break}let d=A.randomnessObject??Ot.defaultData([1,1,1]).randomnessObject,s=d.noiseType==="perlin";_t.noiseSeed(d.seed);let c=Qs((0,Sn.default)(d.seed)),u=Bi(d.strength,this.parameters.randomness);for(let[p,f]of this.children.entries()){let m=p*(d.freqScale/10)+d.movement,h=s?_t.noise(m):c(m,m);f.scale.x=e.scale[0]+u(p,fA(h,d.scale[0]))||Ce,f.scale.y=e.scale[1]+u(p,fA(h,d.scale[1]))||Ce,f.scale.z=e.scale[2]+u(p,fA(h,d.scale[2]))||Ce,f.position.setScalar(0);let y=i/A.count*p-r;switch(e.axis){case"x":f.rotation.set(0,y,0);break;case"y":f.rotation.set(0,0,y);break;case"z":f.rotation.set(y,0,0);break}f.translateOnAxis(l,e.radius),f.position.x+=e.position[0]+u(p,fA(h,d.position[0])),f.position.y+=e.position[1]+u(p,fA(h,d.position[1])),f.position.z+=e.position[2]+u(p,fA(h,d.position[2]));let x=u(p,fA(h,d.rotation[0])),S=u(p,fA(h,d.rotation[1])),v=u(p,fA(h,d.rotation[2]));e.alignment===!0?(f.rotation.x+=a.x+x,f.rotation.y+=a.y+S,f.rotation.z+=a.z+v):f.rotation.set(a.x+x,a.y+S,a.z+v)}}_updateLinear(A){if(A.type!=="linear")throw new Error;let e=A.linear,r=new IA.Euler(e.rotation[0],e.rotation[1],e.rotation[2]),n=A.randomnessObject??Ot.defaultData([1,1,1]).randomnessObject,i=n.noiseType==="perlin";_t.noiseSeed(n.seed);let a=Qs((0,Sn.default)(n.seed)),l=Bi(n.strength,this.parameters.randomness);for(let[d,s]of this.children.entries()){let c=d*(n.freqScale/10)+n.movement,u=i?_t.noise(c):a(c,c),p=l(d,fA(u,n.rotation[0])),f=l(d,fA(u,n.rotation[1])),m=l(d,fA(u,n.rotation[2]));s.scale.x=1+(e.scale[0]-1)*d+l(d,fA(u,n.scale[0]))||Ce,s.scale.y=1+(e.scale[1]-1)*d+l(d,fA(u,n.scale[1]))||Ce,s.scale.z=1+(e.scale[2]-1)*d+l(d,fA(u,n.scale[2]))||Ce,s.rotation.x=r.x*d+p,s.rotation.y=r.y*d+f,s.rotation.z=r.z*d+m,s.position.x=e.position[0]*d+l(d,fA(u,n.position[0])),s.position.y=e.position[1]*d+l(d,fA(u,n.position[1])),s.position.z=e.position[2]*d+l(d,fA(u,n.position[2]))}}_updateGrid(A){let e=0,r=A.grid,n=A.randomnessObject??Ot.defaultData([1,1,1]).randomnessObject,i=Bi(n.strength,this.parameters.randomness),a=n.noiseType==="perlin";_t.noiseSeed(n.seed);let l=ef((0,Sn.default)(n.seed));if(r.useCenter===!0){let d={x:r.count[0]%2===0?2:1,y:r.count[1]%2===0?2:1,z:r.count[2]%2===0?2:1},s=new IA.Vector3(r.size[0]*(r.count[0]-d.x)*.5,r.size[1]*(r.count[1]-d.y)*.5,r.size[2]*(r.count[2]-d.z)*.5);for(let c=0;c<r.count[0];c++)for(let u=0;u<r.count[1];u++)for(let p=0;p<r.count[2];p++){let f=[(c+1)*(n.freqScale/10)+n.movement,(u+1)*(n.freqScale/10)+n.movement,(p+1)*(n.freqScale/10)+n.movement],m=a?_t.noise(...f):l(...f),h=this.children[e++];h.scale.x=1+i(e,fA(m,n.scale[0]))||Ce,h.scale.y=1+i(e,fA(m,n.scale[1]))||Ce,h.scale.z=1+i(e,fA(m,n.scale[2]))||Ce;let y=i(e,fA(m,n.rotation[0])),x=i(e,fA(m,n.rotation[1])),S=i(e,fA(m,n.rotation[2]));h.rotation.set(y,x,S),h.position.x=r.size[0]*c-s.x+i(e,fA(m,n.position[0])),h.position.y=r.size[1]*u-s.y+i(e,fA(m,n.position[1])),h.position.z=r.size[2]*p-s.z+i(e,fA(m,n.position[2]))}}else for(let d=0;d<r.count[0];d++)for(let s=0;s<r.count[1];s++)for(let c=0;c<r.count[2];c++){let u=[(d+1)*(n.freqScale/10)+n.movement,(s+1)*(n.freqScale/10)+n.movement,(c+1)*(n.freqScale/10)+n.movement],p=a?_t.noise(...u):l(...u),f=this.children[e++];f.scale.x=1+i(e,fA(p,n.scale[0]))||Ce,f.scale.y=1+i(e,fA(p,n.scale[1]))||Ce,f.scale.z=1+i(e,fA(p,n.scale[2]))||Ce;let m=i(e,fA(p,n.rotation[0])),h=i(e,fA(p,n.rotation[1])),y=i(e,fA(p,n.rotation[2]));f.rotation.set(m,h,y),f.position.x=r.size[0]*d+i(e,fA(p,n.position[0])),f.position.y=-r.size[1]*s+i(e,fA(p,n.position[1])),f.position.z=-r.size[2]*c+i(e,fA(p,n.position[2]))}}_updateToObject(A){if(A.type!=="toObject")throw new Error;let{toObject:e}=A,r=new IA.Euler(e.rotation[0],e.rotation[1],e.rotation[2]),n=A.randomnessObject??Ot.defaultData([1,1,1]).randomnessObject,i=n.noiseType==="perlin";_t.noiseSeed(n.seed);let a=Qs((0,Sn.default)(n.seed)),l=Bi(n.strength,this.parameters.randomness);if(!e.object){for(let[,y]of this.children.entries())y.position.set(0,0,0),y.scale.setScalar(1),y.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;if(this.objectForSample instanceof vn)if(!this.objectForSample.font?.isLoaded||this.objectForSample.geometry.attributes.position===void 0){this._pendingMediaLoad=!0;return}else this._pendingMediaLoad=!1;let d=this.getSubdivData(),s=[],c=y=>{let x=y.length,S=y.map(P=>P[0]).reduce((P,w)=>P+w,0),v=y.map(P=>P[1]).reduce((P,w)=>P+w,0),b=y.map(P=>P[2]).reduce((P,w)=>P+w,0);return[S/x,v/x,b/x]},u=y=>Math.round(y*1e6)/1e6;d.forEach(y=>{let x=d.filter(S=>u(y.pos[0])===u(S.pos[0])&&u(y.pos[1])===u(S.pos[1])&&u(y.pos[2])===u(S.pos[2]));x.length>1?s.push({pos:y.pos,norm:c(x.map(S=>S.norm))}):s.push(y)});let p=Km(s);if(d.length>0){let y=Math.round(p.length*e.count/100);this._updateCount(y)}this.objectForSample.updateMatrixWorld();let f=new Ys(this.objectForSample).build(),m=Ym[e.axis],h=this.children;f.setRandomGenerator((0,Sn.default)(this.object.uuid+e.seed));for(let[y,x]of h.entries()){let S=y*(n.freqScale/10)+n.movement,v=i?_t.noise(S):a(S,S),b=l(y,fA(v,n.rotation[0])),P=l(y,fA(v,n.rotation[1])),w=l(y,fA(v,n.rotation[2]));e.spreadType==="random"?f.sample(Di,wc):(p.length&&(Di.fromArray(p[y].pos),wc.fromArray(p[y].norm)),this.objectForSample instanceof $r&&Di.applyMatrix4(L1.copy(this.objectForSample.matrixWorld).invert())),Di.applyMatrix4(this.object.hiddenMatrix.clone().invert()),x.position.copy(Di),Tr.fromArray(m);let g=e.align==="normal"?wc:this.object.getWorldDirection(B1),N=eo.fromArray(e.position);eo.x+=eo.x+l(y,fA(v,n.position[0])),eo.y+=eo.y+l(y,fA(v,n.position[1])),eo.z+=eo.z+l(y,fA(v,n.position[2]));let O=Math.acos(g.dot(Tr)),C=M1.crossVectors(Tr,g).normalize(),T=E1.makeRotationAxis(C,O),L=g.clone().cross(this.object.up).normalize(),M=L.clone().cross(g).normalize(),U=new IA.Matrix4().makeBasis(L,g,M),Z=new IA.Vector3(Tr.y,Tr.z,Tr.x).normalize(),$=Z.clone().cross(Tr).normalize(),iA=new IA.Matrix4().makeBasis(Z,Tr,$).invert(),k=new IA.Matrix4().multiplyMatrices(U,iA);x.rotation.setFromRotationMatrix(k),N.applyMatrix4(T),x.position.add(N),x.rotation.x=x.rotation.x+r.x+b,x.rotation.y=x.rotation.y+r.y+P,x.rotation.z=x.rotation.z+r.z+w,x.scale.setScalar(1),x.scale.x=x.scale.x+e.scale[0]+l(y,fA(v,n.scale[0]))||Ce,x.scale.y=x.scale.y+e.scale[1]+l(y,fA(v,n.scale[1]))||Ce,x.scale.z=x.scale.z+e.scale[2]+l(y,fA(v,n.scale[2]))||Ce,x.scale.multiply(this.object.scale),x.hiddenMatrix=this.object.hiddenMatrix}}getSubdivData(){if(!this.objectForSample)return[];let A=this.parameters.toObject.spreadType;if(A==="random")return[];if(this.objectForSample instanceof $r){let e=this.objectForSample,r=Xm[A],n=sh[r],i=nh[r],a=ih[r],l=[],d=n(e.subdivPointerNew);for(let s=0;s<=d-1;s++){let c=i(e.subdivPointerNew,s),u=a(e.subdivPointerNew,s);rh.fromArray(c).applyMatrix4(e.matrixWorld),oh.fromArray(u),l.push({pos:rh.toArray(),norm:oh.toArray()})}return l}else return(this.objectForSample.geometry.index?Zm(this.objectForSample.geometry):Jm(this.objectForSample.geometry)).map((r,n)=>A==="polygon_center"?{pos:r.midpoint,norm:r.norm}:A==="vertex"?[{pos:r.vertices[0],norm:r.norm},{pos:r.vertices[1],norm:r.norm},{pos:r.vertices[2],norm:r.norm}]:A==="edge"?[{pos:r.faceCenters[0],norm:r.norm},{pos:r.faceCenters[1],norm:r.norm},{pos:r.faceCenters[2],norm:r.norm}]:[]).flat()}updateState(A,e){if(this.parameters=Vr(A),this.parameters.type!=="toObject")(this.parent===null||this.parent!==this.object)&&(this.removeFromParent(),this.object.parent?.add(this),this.matrix=this.object.matrix,this.hiddenMatrix=this.object.hiddenMatrix,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1);else if(this.parent===null||this.parent.uuid!==this.parameters.toObject.object){this.removeFromParent();let r=e.find(this.parameters.toObject.object);r instanceof me?this.objectForSample=r:this.objectForSample=void 0,this.matrix=new IA.Matrix4,this.hiddenMatrix=new IA.Matrix4,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1,r&&r.add(this)}this.update()}get pendingMediaLoad(){return this._pendingMediaLoad}};var ot=require("three");var WA=require("three");var ge=require("three");var ah=require("three"),Ft=o=>{var t;return t=class extends o{},t.geometryHelper=new ah.BoxGeometry(30,30,30),t};var be=require("three"),Na=new be.Ray,Tc=new be.Sphere,lh=new be.Matrix4,zt=(o,t,A,e,r=!1)=>{let n=t,i=o.matrixWorld;if(n.boundingSphere===null&&n.computeBoundingSphere(),Tc.copy(n.boundingSphere),Tc.applyMatrix4(i),A.ray.intersectsSphere(Tc)===!1||(lh.copy(i).invert(),Na.copy(A.ray).applyMatrix4(lh),n.boundingBox!==null&&Na.intersectsBox(n.boundingBox)===!1))return;let a,l,d,s,c=n.index,u=n.attributes.position,p=n.drawRange,f,m;if(r===!1){let y=Math.max(0,p.start),x=Math.min(c.count,p.start+p.count);for(f=y,m=x;f<m;f+=3)if(l=c.getX(f),d=c.getX(f+1),s=c.getX(f+2),a=h(o,A,Na,u,l,d,s),a){a.faceIndex=Math.floor(f/3),e.push(a);return}}else{let x=n.attributes.position,S=new be.Vector3,v=new be.Vector3,b=new be.Vector3,P=new be.Vector3,w=2,N=1/((o.scale.x+o.scale.y+o.scale.z)/3),O=N*N,C=Math.max(0,p.start),T=Math.min(x.count,p.start+p.count);for(let L=C,M=T-1;L<M;L+=w){if(S.fromBufferAttribute(x,L),v.fromBufferAttribute(x,L+1),Na.distanceSqToSegment(S,v,P,b)>O)continue;P.applyMatrix4(o.matrixWorld);let Z=A.ray.origin.distanceTo(P);Z<A.near||Z>A.far||e.push({distance:Z,point:b.clone().applyMatrix4(o.matrixWorld),object:o})}}function h(y,x,S,v,b,P,w){let g=new be.Vector3,N=new be.Vector3,O=new be.Vector3,C=new be.Vector3,T=new be.Vector3;if(g.fromBufferAttribute(v,b),N.fromBufferAttribute(v,P),O.fromBufferAttribute(v,w),S.intersectTriangle(g,N,O,!1,C)===null)return null;T.copy(C),T.applyMatrix4(y.matrixWorld);let M=x.ray.origin.distanceTo(T);return M<x.near||M>x.far?null:{faceIndex:1,distance:M,point:T.clone(),object:y}}};var Ca=new ge.Vector3,et=new ge.Camera,Oc=class extends ge.LineSegments{constructor(A){let e=new ge.BufferGeometry,r=new ge.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),n=[],i=[],a={},l=new ge.Color(15711266),d=new ge.Color(15711266),s=new ge.Color(2857471);c("n1","n2",l),c("n2","n4",l),c("n4","n3",l),c("n3","n1",l),c("f1","f2",l),c("f2","f4",l),c("f4","f3",l),c("f3","f1",l),c("n1","f1",l),c("n2","f2",l),c("n3","f3",l),c("n4","f4",l),c("p","n1",d),c("p","n2",d),c("p","n3",d),c("p","n4",d),c("u1","u2",s),c("u2","u3",s),c("u3","u1",s);function c(p,f,m){u(p,m),u(f,m)}function u(p,f){n.push(0,0,0),i.push(f.r,f.g,f.b),a[p]===void 0&&(a[p]=[]),a[p].push(n.length/3-1)}e.setAttribute("position",new ge.Float32BufferAttribute(n,3)),e.setAttribute("color",new ge.Float32BufferAttribute(i,3));super(e,r);this.type="CameraHelper",this.camera=A,this.camera.updateProjectionMatrix&&this.camera.updateProjectionMatrix(),this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=a,this.update()}update(){let A=this.geometry,e=this.pointMap,r=!0;et.projectionMatrixInverse.elements=[.5112609807824982,-0,-0,-0,-0,.41421356237309503,-0,-0,-0,-0,-0,-.099999,-0,-0,-1.0000000000000002,.100001];let n=1,i=1,a=r?.8:1e-4;yt("n1",e,A,et,-n,-i,a),yt("n2",e,A,et,n,-i,a),yt("n3",e,A,et,-n,i,a),yt("n4",e,A,et,n,i,a);let l=a;yt("f1",e,A,et,-n,-i,l),yt("f2",e,A,et,n,-i,l),yt("f3",e,A,et,-n,i,l),yt("f4",e,A,et,n,i,l);let d=l,s=.5;yt("u1",e,A,et,n*.7*s,i*1.1,d),yt("u2",e,A,et,-n*.7*s,i*1.1,d),yt("u3",e,A,et,0,i*(1.1+.9*s),d),A.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function yt(o,t,A,e,r,n,i){Ca.set(r,n,i).unproject(e);let a=t[o];if(a!==void 0){let l=A.getAttribute("position");for(let d=0,s=a.length;d<s;d++)l.setXYZ(a[d],Ca.x,Ca.y,Ca.z)}}var Ia=class extends Ft(Oc){constructor(A){super(A);this.object=A;this.object=A,this.name=`CombinedCameraHelper: ${A.uuid}`}updateMatrixWorld(A){super.updateMatrixWorld(A),this.updateTarget()}updateTarget(){let A=this.object.getTarget();this.updateWorldMatrix(!0,!1),this.worldToLocal(A)}raycast(A,e){zt(this.object,this.geometry,A,e,!0)}};var Gi=require("three");var La;(t=>t.is=A=>"objectHelper"in A)(La||(La={}));var Or=(o,t)=>class extends Ks(o){constructor(){super(...arguments);this.objectHelper=new t(this);this.gizmos={}}get geometryHelper(){return t.geometryHelper}raycast(r,n){this.objectHelper.raycast(r,n)}showGizmos(){for(let r in this.gizmos){let n=this.gizmos[r];n instanceof Gi.Box3Helper&&(n.visible=!0)}}updateEntityBoxSize(r,n){this.objectHelper.visible&&this.geometryHelper instanceof Gi.BoxGeometry?(r.setScalar(0),n.set(this.geometryHelper.parameters.width,this.geometryHelper.parameters.height,this.geometryHelper.parameters.height).multiplyScalar(.5)):super.updateEntityBoxSize(r,n)}hideGizmos(){for(let r in this.gizmos){let n=this.gizmos[r];n instanceof Gi.Box3Helper&&(n.visible=!1)}}};var Tn=new WA.Vector3,Pc=new WA.Vector3,$t=class extends Or(WA.Camera,Ia){constructor(A="",e={...ho.defaultData,name:""}){super();this._cameraType="OrthographicCamera";this.targetOffset=Er.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.super_Entity(A,e),this.matrixAutoUpdate=!0,this.width=window.innerWidth,this.height=window.innerHeight;let r=this.width,n=this.height;this.orthoCamera=new WA.OrthographicCamera(r*-.5,r*.5,n*.5,n*-.5,-5e4,1e4),this.perspCamera=new WA.PerspectiveCamera(45,r/n,50,1e4),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.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.objectHelper.update()}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}set fov(A){this.perspCamera.fov=A}get fov(){return this.perspCamera.fov}setNear(A,e){A==="PerspectiveCamera"?this.perspCamera.near=e:this.orthoCamera.near=e}setZoom(A,e){e>=0&&(A==="PerspectiveCamera"?this.perspCamera.zoom=e:this.orthoCamera.zoom=e)}set cameraType(A){A==="PerspectiveCamera"?this.toPerspective():A==="OrthographicCamera"&&this.toOrthographic()}get near(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.near:this.orthoCamera.near}set near(A){this._cameraType==="PerspectiveCamera"?this.perspCamera.near=A:this.orthoCamera.near=A}get zoom(){return this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom:this.orthoCamera.zoom}set zoom(A){A>=0&&(this._cameraType==="PerspectiveCamera"?this.perspCamera.zoom=A:this.orthoCamera.zoom=A)}lookAt(A){super.lookAt(A),this.getWorldPosition(Tn),this.targetOffset=Tn.distanceTo(A)}getTarget(A=new WA.Vector3){return this.getWorldDirection(Pc),this.getWorldPosition(Tn),Pc.multiplyScalar(this.targetOffset),A.copy(Tn).add(Pc),A}getDistanceToTarget(){let A=this.getTarget();return this.getWorldPosition(Tn),Tn.distanceTo(A)}updateUp(){let A=this.getWorldQuaternion(new WA.Quaternion),e=new WA.Vector3(0,0,1).applyQuaternion(A),r=new WA.Vector3().copy(WA.Object3D.DefaultUp);this.isUpVectorFlipped&&r.negate(),r.applyQuaternion(A);let n=new WA.Vector3().copy(WA.Object3D.DefaultUp).projectOnPlane(e),i=new WA.Vector3().crossVectors(n,r).dot(e)>=0?1:-1;this.angleOffsetFromUp=n.angleTo(r)*i}updateTransformState(A){let e=super.updateTransformState(A);return A.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=A.isUpVectorFlipped),this.updateUp(),e}getViewFrontToObject(A){let e=A.getWorldPosition(new WA.Vector3),n=A.getWorldDirection(new WA.Vector3).multiplyScalar(this.targetOffset);return{position:e.clone().add(n),target:e}}getViewToObject(A){let e=A.getWorldPosition(new WA.Vector3),n=this.getWorldDirection(new WA.Vector3).multiplyScalar(this.targetOffset);return{position:e.clone().sub(n),target:e}}setViewplaneSize(A,e){this.left=-A*.5,this.right=A*.5,this.top=e*.5,this.bottom=-e*.5,this.aspect=A/e,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(A){this.perspCamera.setFocalLength(A),this.toPerspective()}getFocalLength(){return this.perspCamera.getFocalLength()}getEffectiveFOV(){return this.perspCamera.getEffectiveFOV()}getFilmWidth(){return this.perspCamera.getFilmWidth()}getFilmHeight(){return this.perspCamera.getFilmHeight()}setViewOffset(A,e,r,n,i,a){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(A,e,r,n,i,a):this.orthoCamera.setViewOffset(A,e,r,n,i,a)}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(A){super.updateMatrixWorld(A),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(A,e){super.updateWorldMatrix(A,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(A,e){return super.copy(A,e),this.orthoCamera.copy(A.orthoCamera),this.perspCamera.copy(A.perspCamera),this.left=A.left,this.right=A.right,this.top=A.top,this.bottom=A.bottom,this.far=A.far,this.view=A.view===null?null:Object.assign({},A.view),this._cameraType=A._cameraType,this.aspect=A.aspect,this.fov=A.fov,this.focus=A.focus,this.filmGauge=A.filmGauge,this.filmOffset=A.filmOffset,this.targetOffset=A.targetOffset,this.updateProjectionMatrix(),this}toCameraState(A=[]){let e={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 zo(e,A)}updateCameraSubtype(A,e){let r=A==="perspective"?"PerspectiveCamera":"OrthographicCamera";e.zoom!==void 0&&this.setZoom(r,e.zoom),e.near!==void 0&&this.setNear(r,e.near),e.fov!==void 0&&r==="PerspectiveCamera"&&(this.fov=e.fov)}updateState(A){this.updateCameraState(A)}updateCameraState(A){this.updateState_Entity(A,{}),A.far!==void 0&&(this.far=A.far),A.orthographic!==void 0&&this.updateCameraSubtype("orthographic",A.orthographic),A.perspective!==void 0&&this.updateCameraSubtype("perspective",A.perspective),A.type!==void 0&&(this.cameraType=A.type),A.up!==void 0&&this.up.fromArray(A.up),A.targetOffset!==void 0&&(this.targetOffset=A.targetOffset),A.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=A.isUpVectorFlipped),this.updateProjectionMatrix()}updateByPatchedOp(A,e,r){super.updateByPatchedOp(A,e,r),A.path.length===1&&A.type===0&&this.updateCameraSubtype(A.path[0],A.props)}toState(A){return{...super.toState(A),...this.toCameraState(A),type:this.cameraType}}};var to=require("three");var ch=new to.Matrix4;var tt=class extends ht{constructor(A,e,r){super(A,e);this.data=e;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.geometry=new to.BufferGeometry;this.geometry.userData.parameters={width:0,height:0,depth:0}}get booleanOp(){return this.data.geometry.operation}get phongAngle(){return this.data.geometry.phongAngle??45}get isLOD(){return this.recomputeBoolean(),!1}updateByPatchedOp(A,e,r){super.updateByPatchedOp(A,e,r),A.path.length===1&&A.path[0]==="geometry"&&A.type===0&&A.props.operation!==void 0&&(this.freeBooleanPointer(),this.resetBBoxNeedsUpdate())}freeBooleanPointer(){super.freeBooleanPointer(),this.geometry.dispose()}recomputeBoolean(A,e=!0){if(this.booleanMeshSetAddress!==-1&&!A)return;for(let n=0;n<this.children.length;n++){let i=this.children[n];i instanceof tt&&i.recomputeBoolean(A===!0,e)}this.meshSetAddresses=[];for(let n=0;n<this.children.length;n++){let i=this.children[n];if(i instanceof me&&i.dataPatched.visible===!0&&i.geometry.attributes.position?.count>0&&i.geometry.drawRange.count>0){if(i.booleanMeshSetAddress===-1){if((i.geometry.index??i.geometry.getAttribute("position")).count/3<15e5&&(i.booleanMeshSetAddress=dt.getMeshSet(i.geometry,A===!0,e)),i.booleanMeshSetAddress===-1)return;dt.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.booleanMatrixInvOld.copy(i.matrix).invert(),i.booleanWasTransformed=!1}else i instanceof tt&&i.needsTransformForDownstream===!0?(dt.transformMeshSet(i.booleanMeshSetAddress,i.matrix),i.needsTransformForDownstream=!1):i.booleanWasTransformed===!0&&(ch.multiplyMatrices(i.matrix,i.booleanMatrixInvOld),dt.transformMeshSet(i.booleanMeshSetAddress,ch),i.booleanMatrixInvOld.copy(i.matrix).invert(),i.booleanWasTransformed=!1);this.meshSetAddresses.push(i.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setAttribute("position",new to.Float16BufferAttribute([],0)),this.geometry.setDrawRange(0,0);return}if(A===!0)return dt.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let r=this.geometry;r.dispose(),this.geometry=new to.BufferGeometry,this.geometry.userData=r.userData,this.geometry.boundingSphere=r.boundingSphere;try{this.booleanMeshSetAddress=dt.calcBoolean(this.meshSetAddresses,this.booleanOp,this.geometry,this.phongAngle)}catch(n){this.booleanMeshSetAddress=0,console.error(n)}this.booleanMatrixInvOld.copy(this.matrix).invert(),this.needsTransformForDownstream=!0,yn(this),gn(this)}dispose(){super.dispose(),this.geometry.dispose()}};var uh=require("three");var dh;(t=>{function o(A){return HA.is(A)&&A instanceof uh.Light}t.is=o})(dh||(dh={}));var On=(o,t)=>class extends Or(o,t){updateState_Light(e,r){this.updateState_Entity(e,r),e.color!==void 0&&(this.color=r.shared.color(e.color)),e.intensity!==void 0&&(this.intensity=e.intensity),e.depth!==void 0&&(this.shadow.camera.far=e.depth,this.shadow.needsUpdate=!0),e.shadows!==void 0&&(this.castShadow=e.shadows)}};var Ri=o=>o instanceof me,Vi=o=>o!==null&&o instanceof tt,ph=o=>o instanceof $t;var fh=o=>La.is(o);var hh=require("three");var mh=require("three");var Pr=class extends Ft(mh.AxesHelper){constructor(A,e=15){super(e);this.object=A;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${A.uuid}`,this.matrix=A.matrixWorld,this.matrixAutoUpdate=!1}raycast(A,e){zt(this.object,Pr.geometryHelper,A,e)}update(){}};var ji=class extends Or(hh.Group,Pr){constructor(t,A){super(),this.super_Entity(t,A),this.objectHelper.update()}updateState(t,A){this.updateState_Entity(t,A)}};var zi=require("three");var yh=require("three");var Pn=class extends Ft(yh.DirectionalLightHelper){constructor(A,e=15,r=10066329){super(A,e,r);this.object=A;this.added=!1;this.name=`DirectionalLightHelper: ${A.uuid}`}raycast(A,e){zt(this.object,Pn.geometryHelper,A,e)}};var gh=require("three");var Nn=class extends Ft(gh.PointLightHelper){constructor(A,e=15,r=6710886){super(A,e,r);this.object=A;this.name=`PointLightHelper: ${A.uuid}`}raycast(A,e){zt(this.object,Nn.geometryHelper,A,e)}};var Ma=require("three");var Ea=class extends Ft(Ma.SpotLightHelper){constructor(A,e=6710886){super(A,e);this.object=A;this.name=`SpotLightHelper: ${A.uuid}`}raycast(A,e){zt(this.object,Ea.geometryHelper,A,e)}update(){if(this.object!==void 0){let A=Ea._vector,e=this.object.distance?this.object.distance:1e3,r=e*Math.tan(this.object.angle);this.cone.scale.set(r,r,e),A.setFromMatrixPosition(this.object.target.matrixWorld),this.cone.lookAt(A);let n=this.color!==void 0?this.color:this.light.color;if(this.cone.material instanceof Array)for(let i=0,a=this.cone.material.length;i<a;i++)this.cone.material[i].color.set(n);else this.cone.material.color.set(n)}}},Fi=Ea;Fi._vector=new Ma.Vector3;function G1(o,t){o.shadow.camera.right=t/2,o.shadow.camera.left=-t/2,o.shadow.camera.top=t/2,o.shadow.camera.bottom=-t/2,o.shadow.needsUpdate=!0}var Ba=class extends On(zi.DirectionalLight,Pn){constructor(t,A,e){super(),this.super_Entity(t,A),this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let n=this.shadow.camera;n.top=1250,n.bottom=-1250,n.right=1250,n.left=-1250,n.near=-1e4,n.far=2500;let i=new zi.CameraHelper(this.shadow.camera);i.visible=!1,this.gizmos.shadowmap=i}update(){this.shadow.camera.updateProjectionMatrix();for(let t in this.gizmos){let A=this.gizmos[t];A instanceof zi.CameraHelper&&A.update()}}updateMatrixWorld(t){super.updateMatrixWorld(t),this.objectHelper&&this.objectHelper.update()}updateState(t,A){this.updateState_Light(t,A);let e=t.depth!==void 0&&t.depth!==this.shadow.camera.far||t.size!==void 0&&t.size/2!==this.shadow.camera.right;t.size!==void 0&&G1(this,t.size),t.shadowRadius!==void 0&&(this.shadow.radius=t.shadowRadius),t.shadowResolution!==void 0&&(this.shadow.mapSize.set(t.shadowResolution,t.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),e&&this.update()}};var Ue=require("three");var Da=class extends On(Ue.PointLight,Nn){constructor(t,A,e){super(),this.super_Entity(t,A),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let n=this.shadow.camera;n.fov=90,n.aspect=1,n.near=100,n.far=2500;let i=new Ue.Vector3(-n.far+this.position.x,-n.far+this.position.y,-n.far+this.position.z),a=new Ue.Vector3(n.far+this.position.x,n.far+this.position.y,n.far+this.position.z),l=new Ue.Box3(i,a),d=new Ue.Box3Helper(l,new Ue.Color(16755200));d.visible=!1,this.gizmos.shadowmap=d,this.update()}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this.gizmos))for(let t in this.gizmos){let A=this.gizmos[t];if(A instanceof Ue.Box3Helper){let e=this.shadow.camera,r=new Ue.Vector3(-e.far+this.position.x,-e.far+this.position.y,-e.far+this.position.z),n=new Ue.Vector3(e.far+this.position.x,e.far+this.position.y,e.far+this.position.z);A.box.set(r,n),A.updateMatrixWorld(!0)}}}updateMatrixWorld(t){super.updateMatrixWorld(t),this.objectHelper&&this.objectHelper.update()}updateState(t,A){this.updateState_Light(t,A),t.distance!==void 0&&(this.distance=t.distance),t.decay!==void 0&&(this.decay=t.decay),t.shadowRadius!==void 0&&(this.shadow.radius=t.shadowRadius),t.shadowResolution!==void 0&&(this.shadow.mapSize.set(t.shadowResolution,t.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null))}};var rt=require("three");var xh=new rt.Vector3,vh=new rt.Vector3,bh=new rt.Quaternion,Ga=class extends On(rt.SpotLight,Fi){constructor(t,A,e){super(),this.super_Entity(t,A),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let n=this.shadow.camera;n.fov=rt.MathUtils.RAD2DEG*2*this.angle,n.aspect=1,n.near=100,n.far=2500;let i=new rt.CameraHelper(this.shadow.camera);i.visible=!1,this.gizmos.shadowmap=i,this.update()}update(){this.shadow.camera.updateProjectionMatrix();for(let t in this.gizmos){let A=this.gizmos[t];A instanceof rt.CameraHelper&&A.update()}}updateMatrixWorld(t){super.updateMatrixWorld(t),vh.setFromMatrixPosition(this.matrixWorld),bh.setFromRotationMatrix(this.matrixWorld),xh.copy(this.up).applyQuaternion(bh).negate().multiplyScalar(this.distance),this.target.position.copy(vh).add(xh),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}updateState(t,A){this.updateState_Light(t,A),t.distance!==void 0&&(this.distance=t.distance),t.decay!==void 0&&(this.decay=t.decay),t.angle!==void 0&&(this.angle=t.angle),t.penumbra!==void 0&&(this.penumbra=t.penumbra),t.shadowRadius!==void 0&&(this.shadow.radius=t.shadowRadius),t.shadowResolution!==void 0&&(this.shadow.mapSize.set(t.shadowResolution,t.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null))}};var Ra=class extends Ne{get forceComputeSize(){return!0}get shape(){return this.geometry.userData.shape}constructor(t,A,e){super(t,A,e)}updateEntityBoxSize(t,A){let e=this.geometry.getAttribute("position");e!==void 0?Yl(e,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:e.count,t,A):super.updateEntityBoxSize(t,A)}};var wh=require("three");var Ar=class extends Or(wh.Group,Pr){constructor(A,e,r){super();e.type==="Instance"&&typeof A=="string"&&(e=this.transformAssignData(e,r)),this.super_Entity(A,e),this.objectHelper.update()}get isComponentRoot(){return this.data.type==="Component"&&typeof this.identity=="string"}get isInstanceRoot(){return this.data.type==="Instance"&&typeof this.identity=="string"}transformAssignData(A,e){let r=e.scene.data.objects.get(A.component);if(r){let n,i;for(let a of ar.rootOverrideProps)A[a]===void 0?(n===void 0&&(n={...A}),n[a]=r.data[a]):(i===void 0&&(i={}),i[a]=A[a]);return this.overrideData=i,n??A}return A}updateByOp(A,e,r,n){let i;if(this.isInstanceRoot&&!n&&(e=this.transformAssignData(e,r),A.type===0&&A.path.length===0&&this.component))for(let a of ar.rootOverrideProps)a in A.props&&A.props[a]===void 0&&(i===void 0&&(i={...A,props:{...A.props}}),i.props[a]=this.component.data[a]);super.updateByOp(i??A,e,r,n)}updateState(A,e){this.updateState_Entity(A,e)}expandInstanceChildren(A){let e=this.data;if(this.component===void 0){this.component=A.scene.find(e.component)??null;let r=!1;if(this.component!==this.oldComponent){if(this.oldComponent){let n=0;for(let i of this.children)if(HA.is(i))A.scene.disposeAndUnregisterEntityRecursivelyIfNotReregistered(i),Va(i),n+=1;else break;this.children.splice(0,n)}r=!0}this.component&&Th(A,[this.uuid],e.overrides,this,this.component,this.component,0,r),this.oldComponent=this.component}}};function Va(o){if(o.component){let t=o.component.instances.indexOf(o);t>=0&&o.component.instances.splice(t,1);for(let A of o.children)HA.is(A)&&Va(A)}}function Sh(o,t,A,e){return o.component===t&&kn(o.identity,e)?o.overrideData===A?2:1:0}function Th(o,t,A,e,r,n,i,a){if(i>50)return!1;if(e.component!==r){if(e.component){let d=e.component.instances.indexOf(e);d>=0&&e.component.instances.splice(d,1)}r.instances.push(e),e.component=r}r instanceof Ar&&r.isInstanceRoot&&r.expandInstanceChildren(o);let l=0;for(let d of r.children)if(HA.is(d)){let s=[...t,...typeof d.identity=="string"?[d.identity]:d.identity],c=yo.resolve(A,s,1),u=null,p;if(!a){let f=e.children[l];if(u=HA.is(f)?f:null,u!==null){let m=Sh(u,d,c,s);p=m>=1?u.stateSelection:void 0,m!==2&&(u=null)}if(u===null&&(u=o.scene.findInstance(s)??null,u!==null)){let m=Sh(u,d,c,s);if(p=m>=1?u.stateSelection:void 0,m!==2)u=null;else{let h=u.parent.children.indexOf(u);u.parent.children.splice(h,1),e.children.splice(l,0,u),u.parent===e?(h<=l&&console.error("not possible"),void 0):(u.parent=e,u.matrixWorldNeedsUpdate=!0,u.resetBBoxNeedsUpdate(),u.updateVisible(),o.pendingDeletes.delete(u),void 0)}}}if(u===null){let f=c?kt.apply(d.data,c):d.data;it.is(f.type)&&(f={...f,type:"Empty"}),u=at.createEntity(s,f,o),u.overrideData=c,e.add(u),e.children.splice(e.children.length-1,1),e.children.splice(l,0,u),u.updateState(u.data,o),p&&u.changeSelectedState(p,o),o.scene.registerInstanceAndSetUuid(u)}l+=1,Th(o,t,A,u,d,n,i+1,a)}if(!a){let d=l;for(;;){let s=e.children[l];if(HA.is(s))o.pendingDeletes.add(s);else break;l+=1}e.children.splice(d,l-d)}return!0}function R1(o,t,A){let e;return t.geometry.type==="TextGeometry"?new vn(o,t,A):(t.geometry.type==="SubdivGeometry"?e=new $r(o,t,A):t.geometry.type==="VectorGeometry"?e=new Ra(o,t,A):t.geometry.type==="BooleanGeometry"?e=new tt(o,t,A):e=new Ne(o,t,A),e)}function ja(o,t,A){return t.type==="Mesh"?R1(o,t,A):t.type==="Empty"?new ji(o,t):t.type==="PointLight"?new Da(o,t,A):t.type==="SpotLight"?new Ga(o,t,A):t.type==="DirectionalLight"?new Ba(o,t,A):t.type==="Component"||t.type==="Instance"?new Ar(o,t,A):it.is(t.type)?new $t(o,t):(console.error(t),new ji(o,t))}at.createEntity=ja;function V1(o,t,A){let e=ja(o.identity,t,A),r=o.children,n=o.parent,i=o.component,a=o.instances,l=o.overrideData,d=o.uuid,s=o.stateSelection;o.dispose();for(let c of Object.keys(o))delete o[c];Object.setPrototypeOf(o,Object.getPrototypeOf(e));for(let c of Object.keys(e))o[c]=e[c];o.children=[...o.children,...r],o.parent=n,o.component=i,o.instances=a,o.uuid=d,o.overrideData=l,o.updateState(o.data,A),s&&o.changeSelectedState(s,A),o.resetBBoxNeedsUpdate()}at.changeEntityProptotype=V1;at.Cloner=wn;function Oh(o,t,A,e){o.updateByOp(t,A,e,!1)}var Cn=require("three");function Ph(o,t){let A=!1,e=t.getLayersOfType("transmission"),r=t.getLayersOfType("outline");return r.length>0&&(o.layers.set(8),e.length>0&&o.layers.enable(3),A=!0,gn(o),yn(o)),e.length===0&&r.length===0&&o.layers.set(0),A}function Nh(o,t){if(!t.layers)return!1;let A=!1,e=t.getLayersOfType("transmission"),r=t.getLayersOfType("outline");return e.length>0&&(o.layers.set(3),r.length>0&&o.layers.enable(8),A=!0),e.length===0&&r.length===0&&o.layers.set(0),A}function Ch(o){let t=!1;return o.traverseEntity(A=>{if(A instanceof ht)if(Array.isArray(A.material))for(let e=0;e<A.material.length;e++)Ph(A,A.material[e])&&(t=!0);else Ph(A,A.material)&&(t=!0)}),t}function Ih(o){let t=!1;return o.traverseEntity(A=>{if(A instanceof ht)if(Array.isArray(A.material))for(let e=0;e<A.material.length;e++)Nh(A,A.material[e])&&(t=!0);else Nh(A,A.material)&&(t=!0)}),t}var F1=new Cn.Raycaster,z1=new Cn.Matrix4,U1=new Cn.Ray;function Lh(o,t,A){let e=o.cloner;if(e)for(let r of e.children){let n=z1.copy(r.matrixWorld).invert(),i=U1.copy(t.ray).applyMatrix4(n),a=o.matrixWorld;i.applyMatrix4(a);let l=F1;l.set(i.origin,i.direction),l.near=t.near,l.far=t.far,l.intersectObject(o,!1).length>0&&A.push({object:o})}}var k1=new ot.MeshBasicMaterial;k1.wireframe=!0;var Eh=new ot.Vector3,Nc=class extends ot.Scene{constructor(A,e){super();this.data=A;this.backupFog=new ot.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.geometryCacheChanged=!1;this.bgColor=new ne(1,1,1,1);this.entityByUuid={};this.entityIdentityToEntity={};this.toExpandCloner=new Set;this.toUpdateCloner=new Set;this.needsRecomputeInstances=!1;this.ambientLight=new ot.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=A.postprocessing,this.init(A,e),this.matrixAutoUpdate=!1}markGeometryCacheDirty(){this.geometryCacheChanged=!0}markNeedsUpdateRendererDirty(){this.needsTransmissionDirty=!0,this.needsNormalDirty=!0}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Ih(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Ch(this),this.needsNormalDirty=!1),this._needsNormal}registerInstanceAndSetUuid(A){let e=A.identity.join("-"),r=this.entityIdentityToEntity[e];r&&(A.uuid=r.uuid),this.entityIdentityToEntity[e]=A,this.entityByUuid[A.uuid]=A}findInstance(A){return this.entityIdentityToEntity[A.join("-")]}getWithSortKey(A){let e=this.find(A);if(e===void 0)return;let r=[],n=e;for(;n!==this;){let i=n;n=n.parent;let a=n.children.indexOf(i);r.splice(0,0,a)}return{entity:e,sortKey:r}}getAllSorted(A){let e=[];for(let r of A){let n=this.getWithSortKey(r.id);n!==void 0&&e.push(n)}return e.sort((r,n)=>vd(r.sortKey,n.sortKey)),e.map(r=>r.entity)}nonExistOrDescendantOf(A,e){let r=this.find(A);if(r===void 0)return!0;for(;r;){if(r.uuid===e)return!0;r=r.parent}return!1}find(A){if(A===""||A===void 0)return;let e=this.entityByUuid[A];return e===void 0?this.getObjectByProperty("uuid",A):e}debugEnsureEntity(A){let e=this.find(A);if(e){if(Array.isArray(e.identity)&&this.findInstance(e.identity)===void 0){console.error("not found instance");debugger}}else{console.error("not found");debugger}}addPendingExpandCloner(A){this.toExpandCloner.add(A)}addPendingUpdateCloner(A){this.toUpdateCloner.add(A)}markToExpandCloner(A){this.toExpandCloner.add(A),A.traverseEntityAncestors(e=>{this.toExpandCloner.add(e)})}doPendingExpandCloner(){this.toExpandCloner.forEach(A=>{A.expandCloner(this)}),this.toExpandCloner.clear()}doPendingUpdateCloner(){this.toUpdateCloner.forEach(A=>{A.cloner?.update()}),this.toUpdateCloner.clear()}doPendingUpdates(){this.doPendingExpandCloner(),this.doPendingUpdateCloner()}updateTreeByOp(A,e){if(A.path.length===0&&A.type===7){let r=A.parent===null?this:this.find(A.parent);if(r===void 0)throw new Error("unexpected");let n=this.createObject(A.id,A.data,A.children,r,A.localIndex,e);n.updateVisible(),n.resetBBoxNeedsUpdate(),Ri(n)&&Vi(n.parent)&&(n.invalidateUpstreamBooleanData(),n.parent.invalidateDownstreamBooleanData().recomputeBoolean()),this.markNeedsRecomputeInstancesForAncessors(r),this.markNeedsRecomputeInstancesForChildren(n),this.markToExpandCloner(n)}else if(A.path.length===0&&A.type===8){let r=this.find(A.id);if(r===void 0)throw new Error("unexpected");this.markToExpandCloner(r),r.resetBBoxNeedsUpdate(),this.unregisterObject(r);let n=r.parent;this.markNeedsRecomputeInstancesForAncessors(n),this.markNeedsRecomputeInstancesForChildren(r),r.parent.remove(r),Vi(r.parent)&&(r.parent.invalidateUpstreamBooleanData(),r.parent.invalidateDownstreamBooleanData().recomputeBoolean()),Ri(r)&&(r.freeBooleanPointer(),n instanceof tt&&n.invalidateDownstreamBooleanData().recomputeBoolean()),this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(r)}else if(A.path.length===0&&A.type===9){let r=this.find(A.id);if(r===void 0)throw new Error("unexpected");this.markNeedsRecomputeInstancesForChildren(r);let n=r.parent;this.markNeedsRecomputeInstancesForAncessors(n),r.cloner?.resetOnMove(),this.markToExpandCloner(r);let i=A.parent===null?this:this.find(A.parent);if(i===void 0)throw new Error("unexpected");i.add(r),this.markNeedsRecomputeInstancesForAncessors(i),this.markToExpandCloner(r),r.invalidateClonerTransform(r),r.updateVisible(),r.resetBBoxNeedsUpdate();let a=A.localIndex;i.children.splice(a,0,i.children.pop()),Ri(r)&&(r.invalidateUpstreamBooleanData(),Vi(r.parent)?r.parent.invalidateDownstreamBooleanData().recomputeBoolean():n instanceof tt&&n.invalidateDownstreamBooleanData().recomputeBoolean())}this.markNeedsUpdateRendererDirty(),this.markGeometryCacheDirty()}updateEntityByOp(A,e,r,n){if(e.type===0&&(("overrides"in e.props||"component"in e.props)&&this.markNeedsRecomputeInstances(),e.path.includes("overrides")&&"states"in e.props)){let{states:a,rest:l}=e.props;e={...e,props:l},this.markNeedsRecomputeInstances()}let i=this.find(A);if(i)try{Oh(i,e,r,{scene:this,shared:n}),i instanceof Ne&&i.updateGeometryGroupsIfNeeded()}catch(a){console.error(a)}}get enableFog(){return this.fog!==null}set enableFog(A){this.fog=A===!0?this.backupFog:null}init(A,e){if(this.createChildrenObjects(A.objects,this,e),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(Pe(A.backgroundColor,e)),this.updateFog(A.fog,e),this.updateAmbientLight(A.environment.ambientLight,e),this.activeCamera=this.personalCamera,A.publish.playCamera!==null){let r=this.find(A.publish.playCamera);r instanceof $t&&this.switchActiveCamera(r)}this.expandInstances(e,!0),this.traverseEntity(r=>{Vi(r)&&r.recomputeBoolean()}),this.doPendingExpandCloner()}markNeedsRecomputeInstances(){this.needsRecomputeInstances=!0}markNeedsRecomputeInstancesForChildren(A){A.traverseEntity(e=>{(e.data.type==="Component"||e.data.type==="Instance")&&this.markNeedsRecomputeInstances()})}markNeedsRecomputeInstancesForAncessors(A){HA.is(A)&&(A.data.type==="Component"&&this.markNeedsRecomputeInstances(),A.traverseAncestors(e=>{HA.is(e)&&e.data.type==="Component"&&this.markNeedsRecomputeInstances()}))}relativeizeInner(A,e,r,n,i,a,l){A&&A!==n.uuid&&n.find(A)&&i.forInstancesRec(s=>{s.isInstanceRoot||(s.data=co(s.data,c=>{let u=c.events.data(l.id),p=s.goUp(a);if(p){let f=[...ys(p.identity),A].join("-"),m=this.entityIdentityToEntity[f];if(m){let h=m.uuid;Se.zoom(u,e)[r]=h}else{if(cr)debugger;console.warn("cannot find instance")}}}).data)})}rewriteEventsBeforeGoToPlayMode(){this.traverseEntity(A=>{if(A instanceof Ar&&typeof A.identity=="string"&&A.data.type==="Component")return A.traverseEntity((e,r)=>{e.data.events.forEach(n=>{n.data.type==="GameControl"?e.forInstancesRec(i=>{i.isInstanceRoot||(i.data=co(i.data,a=>{a.events.delete(n.id)}).data)}):n.data.type==="Conditional"?(n.data.condition.type==="Distance"?(this.relativeizeInner(n.data.condition.fromObject,["condition"],"fromObject",A,e,r,n),this.relativeizeInner(n.data.condition.toObject,["condition"],"toObject",A,e,r,n)):n.data.condition.type==="State"?this.relativeizeInner(n.data.condition.object,["condition"],"object",A,e,r,n):n.data.condition.type==="Comparison"&&(n.data.condition.lOperand.type==="Property"&&this.relativeizeInner(n.data.condition.lOperand.value[0],["condition","lOperand","value"],0,A,e,r,n),n.data.condition.rOperand.type==="Property"&&this.relativeizeInner(n.data.condition.rOperand.value[0],["condition","rOperand","value"],0,A,e,r,n)),n.data.inActions.forEach(i=>{i.data.type==="Transition"&&this.relativeizeInner(i.data.object,["inActions",i.id],"object",A,e,r,n)}),n.data.outActions.forEach(i=>{i.data.type==="Transition"&&this.relativeizeInner(i.data.object,["outActions",i.id],"object",A,e,r,n)})):"actions"in n.data&&n.data.actions.forEach(i=>{i.data.type==="Transition"&&this.relativeizeInner(i.data.object,["actions",i.id],"object",A,e,r,n)})})}),!0})}expandInstances(A,e){let r=new Set;this.traverseEntity(n=>{if(n instanceof Ar&&n.isInstanceRoot)return n.expandInstanceChildren({scene:this,shared:A,pendingDeletes:r}),e||n.resetBBoxNeedsUpdate(),!0});for(let n of r)this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(n),Va(n)}recomputeInstances(A){this.needsRecomputeInstances&&(this.needsRecomputeInstances=!1,this.traverseEntity(e=>{e instanceof Ar&&e.isInstanceRoot&&(e.component=void 0)}),this.expandInstances(A,!1))}disposeAndUnregisterEntityRecursivelyIfNotReregistered(A){A.traverseEntity(e=>{let r=typeof e.identity=="string"?e.identity:e.identity.join("-");this.entityIdentityToEntity[r]===e&&(delete this.entityByUuid[e.uuid],delete this.entityIdentityToEntity[r]),e.dispose()})}clearScene(){for(let A of this.children)lt(A)&&A.disposeRecursively();this.children.length=0}resetAfterClear(A,e){this.init(A,e)}createPersonalCamera(){let A=new $t(Nc.PERSONAL_CAMERA_ID,{...ho.defaultData,name:"Personal Camera"});return A.objectHelper.visible=!1,this.registerObjectCreatedInLegacy(A),A}raycast(A){let e=[],r=n=>{for(let i of n.children)lt(i)&&!i.raycastLock&&i.visible&&((Ri(i)||fh(i)&&this.enableHelpers&&i.objectHelper.visible)&&(A.intersectObject(i,!1,e),Lh(i,A,e)),r(i))};return r(this),e}forEachEntity(A){for(let e of this.children)lt(e)&&A(e)}traverseEntity(A){for(let e of this.children)lt(e)&&e.traverseEntity(A)}traverseObject(A){for(let e of this.children)Yn.is(e)&&e.traverseObject(A)}traverseVisibleEntity(A){for(let e of this.children)lt(e)&&e.visible&&e.traverseVisibleEntity(A)}updateFog(A,e){this.enableFog=A.enabled,this.fogUseBGColor=A.useBackgroundColor,A.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=Pe(A.color,e),this.backupFog.near=A.near,this.backupFog.far=A.far}dispose(){this.clearScene()}updateAmbientLight(A,e){A.color!==void 0&&(this.ambientLight.color=Pe(A.color,e)),A.intensity!==void 0&&(this.ambientLight.intensity=A.intensity),A.groundColor!==void 0&&(this.ambientLight.groundColor=Pe(A.groundColor,e)),A.enabled!==void 0&&(this.ambientLight.visible=A.enabled)}switchActiveCamera(A){this.activeCamera!==this.personalCamera&&(this.activeCamera.objectHelper.visible=!0),this.activeCamera=A,A.objectHelper.visible=!1}setBackgroundColor(A){this.bgColor=A,this.fogUseBGColor===!0&&(this.backupFog.color=A)}createChildrenObjects(A,e,r){let n=0;for(let i of A)this.createObject(i.id,i.data,i.children,e,n,r),n+=1}registerObjectCreatedInLegacy(A){this.entityByUuid[A.uuid]=A}unregisterObject(A){delete this.entityByUuid[A.uuid];for(let e of A.children)this.unregisterObject(e)}createObject(A,e,r,n,i,a){let l={scene:this,shared:a},d=ja(A,e,l);return d&&(this.entityByUuid[A]=d,n.add(d),n.children.splice(i,0,n.children.pop()),r.length>0&&(d.isInstanceRoot?console.error("instance should not have children!"):this.createChildrenObjects(r,d,a)),d.updateState(e,l),d instanceof Ne&&d.updateGeometryGroupsIfNeeded(),d.updateVisible(),d.cloner&&this.toExpandCloner.add(d)),d}getCenter(A){let e=[];for(let n=0,i=A.length;n<i;++n){let{id:a,recursive:l}=A[n],d=this.find(a),s=l?d.recursiveBBox:d.singleBBox;e.push(...s.vertices)}let r=new ot.Box3;return r.setFromPoints(e),r.getCenter(Eh),Eh}copyMatrixWorld(A,e){if(A===null){e.identity();return}let r=this.find(A);r?e.copy(r.matrixWorld):e.identity()}copyParentMatrixWorld(A,e){if(A===null){e.identity();return}let r=this.find(A)?.parent;r?e.copy(r.matrixWorld):e.identity()}traverseMaterial(A){this.traverseEntity(e=>{if(e instanceof me)if(Array.isArray(e.material))for(let r=0;r<e.material.length;r++)e.material[r]instanceof ze&&A(e.material[r]);else e.material instanceof ze&&A(e.material)})}updateCanvasSize(A,e){this.activeCamera.setViewplaneSize(A,e);let r,n;A>=e?(r=e/A,n=1):(r=1,n=A/e),this.traverseMaterial(i=>{i.getLayersOfType("transmission").forEach(l=>{l.uniforms[`f${l.id}_aspectRatio`].value.x=r,l.uniforms[`f${l.id}_aspectRatio`].value.y=n})})}},ki=Nc;ki.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var Mh=require("three/examples/jsm/loaders/DRACOLoader.js");var Nr;function H1(){return Nr||(Nr=new Mh.DRACOLoader,Nr.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Nr.decoderPending}async function W1(o){if(Nr){let t={attributeIDs:Nr.defaultAttributeIDs,attributeTypes:Nr.defaultAttributeTypes,useUniqueIDs:!1},A;try{A=await Nr.decodeGeometry(new Int8Array(o).buffer,t)}catch(e){console.error(e)}if(A)return{index:A.index?{array:A.index.array}:void 0,attributes:Object.entries(A.attributes).map(([e,r])=>({name:e,itemSize:r.itemSize,array:r.array}))}}return null}async function Bh(o,t){let[A,e]=Ja(cs.deserialize(new Uint8Array(o)));Jp(A);let r=[];A.scene.objects.traverse((n,i)=>{i.type==="Mesh"&&i.geometry.type==="NonParametricGeometry"&&i.geometry.data.draco!==void 0&&r.push(i)}),r.length&&await H1();for(let n of r){let i=await W1(se(n.geometry.data.draco));if(i){i.index&&(n.geometry.data.index={array:i.index.array,itemSize:1,normalized:!1,type:"Uint32Array"});let a={};i.attributes.forEach(({name:l,array:d,itemSize:s})=>{a[l]={array:d,itemSize:s,type:"Float32Array",normalized:!1}}),n.geometry.data.attributes=a,n.geometry.data.draco=void 0}}return t&&t(A),e.result().data}var q1=require("three"),Q1=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Dh(o){let t;if(!!o.index)for(let A=0;A<o.index.array.length;A+=3)t=o.index.array[A],o.index.array[A]=o.index.array[A+2],o.index.array[A+2]=t}var Hi=require("three");function Gh(o){let t=new Set;return o.traverse(A=>{if(A instanceof ht)if(QA(A.material))A.material.forEach(e=>{let r=e;t.has(r)||t.add(r)});else{let e=A.material;t.has(e)||t.add(e)}}),t.forEach(A=>{if(A instanceof Array)return;let e=A.onBeforeCompile.bind(A);if(Y1(A)){Object.assign(A,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new Hi.Color,specularColor:new Hi.Color});let r=0;A.onBeforeCompile=(n,i)=>{e&&e(n,i),n.uniforms=Object.assign({},Hi.ShaderLib.physical.uniforms,n.uniforms),A.getLayersOfType("transmission").forEach(a=>{if(n.uniforms.transmissionSamplerMap.value){let l=a.color;l&&(l.transmissionSamplerMap.value=n.uniforms.transmissionSamplerMap.value,l.transmissionSamplerSize.value=n.uniforms.transmissionSamplerSize.value)}else r++,r<2&&(A.needsUpdate=!0)})}}else X1(A)||(A.onBeforeCompile=(r,n)=>{e&&e(r,n),A.transparent=!1})}),o}function Y1(o){return o.getLayersOfType("transmission").length>0}function X1(o){let t=0;return o.layers.forEach(A=>{if(A.type!=="light"&&A.type!=="fresnel"){let e=A.uniforms["f"+A.id+"_alpha"];e&&(t+=(1-t)*e.value)}}),t<1}function Rh(o){return o.traverse(t=>{if(t.type==="Camera"){let A=t;A.type=A.cameraType}}),o}function Vh(o){let t=[],A=(e,r=0)=>{let n=r>0?e+r:e;return t.includes(n)?A(e,r+1):n};return o.traverse(e=>{if(t.includes(e.name)){let r=e.name,n=A(e.name);if(e.name=n,e.isMesh){let i=e;i.material instanceof Array?i.material.forEach(a=>{a.name=a.name.replace(r,n)}):i.material.isAsset||(i.material.name=i.material.name.replace(r,n))}}t.push(e.name)}),o}var jh=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Fh(o){let t=[];return o.traverse(A=>{A instanceof wn&&t.push(A)}),t.forEach(A=>{let e=A.object,n=A.children.map(a=>{a.updateMatrix();let l=a.geometry.clone().applyMatrix4(a.matrix);return a.matrix.determinant()<0&&Dh(l),l}),i=(0,jh.mergeBufferGeometries)(A.parameters.hideBase?n:[e instanceof me?e.geometry:[],...n]);e instanceof me&&(e.geometry=i),A.removeFromParent(),e.setFromClonerState(null,{scene:o,shared:Wm})}),o}function zh(o){return o.traverse(t=>{t.matrixAutoUpdate=!0}),o}function Uh(o){Object.values(o.shared.materials).forEach(t=>{Cc(t)}),o.scene.objects.traverse((t,A)=>{"material"in A?Cc(A.material):"materials"in A&&A.materials.forEach(e=>{Cc(e)})})}function Cc(o){if(typeof o=="string")return;let t=[];o.layers.forEach((A,e)=>{A.type==="outline"&&t.push(e)}),t.reverse().forEach(A=>{o.layers.delete(A)}),t.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var kh="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",Fa=class extends za.Loader{load(t,A,e,r=console.error){let n=new za.FileLoader(this.manager);n.setPath(this.path),n.setResponseType("arraybuffer"),n.setRequestHeader(this.requestHeader),n.setWithCredentials(this.withCredentials),t.endsWith(".spline")?console.warn(kh+" The .spline files are only meant to be used by the Editor."):t.endsWith(".splinecode")||console.warn(kh),n.load(t,async i=>{try{if(typeof i=="string")throw new Error("The .spline file is not binary!");let a=await this.parse(i);A(a)}catch(a){r(a)}},e,r)}async parse(t){let A=await Bh(t,Uh);th(A)&&await km();let e=new _r(A.shared);Object.values(e.getMaterials()).forEach(i=>Object.assign(i,{isAsset:!0}));let r=new ki(A.scene,e);r.remove(r.personalCamera),A.scene.environment.ambientLight.enabled||r.remove(r.ambientLight);let n=A.scene.publish.playCamera;if(n){let i=r.find(n);i&&ph(i)&&Object.assign(i,{makeDefault:!0})}return r=Fh(r),r=Gh(r),r=Rh(r),r=Vh(r),r=zh(r),r}};
1334
+ }`,[bt.simplex,e,o,s])}}();var Lh=require("three");function Eh(n,r,e){n.setUvTransform(e[0],e[1],r[0],r[1],0,0,0)}var bl=class extends pi{constructor(e,t){super(new Lh.Matrix3);this.repeat=e;this.offset=t;Eh(this.value,e,t)}updateMatrix(){Eh(this.value,this.repeat,this.offset)}};var Br=class{constructor(r,e,t,o){this.id=r;this.uuid=e;this.data=t;this.uniforms={};for(let i in o)this.uniforms[`f${this.id}_${i}`]=o[i];for(let i in t)fd(i,this,t)}get type(){return this.data.type}static create(r,e,t,o){if(t.type==="light")return Dr.createLigherLayer(r,e,t,o);if(t.type==="texture"||t.type==="video"){let i=t.type==="texture"?o.image(t.texture.image):o.video(t.texture.video),s=new Ko(i,t.texture.wrapping),l=new vl(i),c=new bl(t.texture.repeat,t.texture.offset),u=new Q(t.crop?1:0),a=new be(t.projection??0),d=new be(["x","y","z"].indexOf(t.axis)??0),p=new be(t.side??0),f=new ut(t.size?new je.Vector2(t.size[0],t.size[1]):new je.Vector2(100,100)),m=new Q(t.alpha??1),h=new be(t.mode??0),y=new Ts(s,l,u,a,d,p,f,c,m,h),g=new Pe(y.calpha,"f");return new et(r,e,t,{texture:s,textureSize:l,crop:u,projection:a,axis:d,side:p,size:f,mat:c,alpha:m,mode:h},y,h,g)}else if(t.type==="matcap"){let i=o.image(t.texture.image),s=new Ko(i,t.texture.wrapping),l=new Q(t.alpha??1),c=new be(t.mode??0),u=new Ps(s,l,c),a=new Pe(u.calpha,"f");return new et(r,e,t,{texture:s,alpha:l,mode:c},u,c,a)}else if(t.type==="displace")if(t.displacementType==="noise"){let i=new yt(new je.Vector3(...t.offset)),s=new Q(t.scale??10),l=new Q(t.intensity??8),c=new Q(t.movement??1),u=new be(t.noiseType??0),a=new ws(l,c,i,s,u);return new Cs(r,e,t,{offset:i,scale:s,intensity:l,movement:c,noiseType:u},a)}else throw new Error;else return h_(r,e,t,o)}updateByOp(r,e,t){let o=r;if(o.path[0]===void 0){if(o.type===0)return"type"in o.props||"category"in o.props?(t.scene?.markNeedsUpdateRendererDirty(),!0):Ch(o.props,t.shared,this,e)}else if(o.path[0]==="texture")return"texture"in e||"video"in e?pd(o.props,t.shared,this):!0;return!1}dispose(){if(f_(this)){let r=this.uniforms[`f${this.id}_texture`];if(!r)return!1;let e=r;e.image instanceof Jt||e.image.deref()}}hasValueByKey(r){return this.uniforms[r]!==void 0}hasValue(r){return this.hasValueByKey(`f${this.id}_${r}`)}setValue(r,e){let t=`f${this.id}_${r}`;this.hasValueByKey(t)&&e!==void 0&&(this.uniforms[t].value=e)}getNode(r){let e=`f${this.id}_${r}`;if(this.hasValueByKey(e))return this.uniforms[e]}getValue(r){let e=`f${this.id}_${r}`;if(this.hasValueByKey(e))return this.uniforms[e].value}getName(r){let t=/f\d+_(.*)/.exec(r);if(t&&t.length>1)return t[1];console.log(`Layer.getName: error ${r}`)}getNames(){let r=[];for(let e in this.uniforms){let t=this.getName(e);t&&r.push(t)}return r}},et=class extends Br{constructor(e,t,o,i,s,l,c){super(e,t,o,i);this.params=i;this.color=s;this.mode=l;this.alpha=c}},Cs=class extends Br{constructor(e,t,o,i,s){super(e,t,o,i);this.position=s}},Dr=class extends Br{constructor(e,t,o,i,s){super(e,t,o,s);this.node=i}static createLigherLayer(e,t,o,i){let s,l=new Q(o.alpha),c=new be(o.mode),u;if(!o.visible)s=new Xo,u={};else if(o.category==="lambert"){s=new cs;let a=new Ie(i.color(o.emissive)??0);u={emissive:a},s.emissive=a}else if(o.category==="toon"){s=new fs;let a=new Q(o.shininess??30),d=new Ie(i.color(o.specular)??1118481);u={shininess:a,specular:d},s.shininess=a,s.specular=d}else if(o.category==="physical"){s=new us;let a=new Q(o.roughness??.3),d=new Q(o.metalness??0),p=new Q(o.reflectivity??.5);u={roughness:a,metalness:d,reflectivity:p},s.roughness=a,s.metalness=d,s.reflectivity=p}else{s=new ml;let a=new Q(o.shininess??30),d=new Ie(i.color(o.specular)??1118481);u={shininess:a,specular:d},s.shininess=a,s.specular=d}return s.alpha=new Q(1),s.shadingAlpha=l,s.shadingBlend=c,u.alpha=s.shadingAlpha,u.mode=s.shadingBlend,new Dr(e,t,o,s,u)}get category(){return this.node.category}};function f_(n){let r=n instanceof Br?n.type:n;return r==="texture"||r==="video"||r==="displace_map"||r==="matcap"}function m_(n,r,e,t){switch(n.type){case"color":{let o=new Ie(t.color??5855577),i=new Q(t.alpha??1),s=new Pe("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new be(t.mode??0);return o.alpha=i,new et(r,e,n,{color:o,alpha:i,mode:l},o,l,s)}case"fresnel":{let o=new Ie(t.color??16777215),i=new Q(t.bias??.1),s=new Q(t.scale??1),l=new Q(t.intensity??2),c=new Q(t.factor??1),u=new Q(t.alpha??1),a=new be(t.mode??0),d=new ys(o,i,s,l,c,u,a),p=new Pe(d.calpha,"f");return new et(r,e,n,{color:o,bias:i,scale:s,intensity:l,factor:c,alpha:u,mode:a},d,a,p)}case"rainbow":{let o=new Q(t.filmThickness??30),i=new Q(t.movement??0),s=new yt(t.wavelengths??new je.Vector3(0,0,0)),l=new Q(t.noiseStrength??0),c=new Q(t.noiseScale??1),u=new yt(t.offset??new je.Vector3(0,0,0)),a=new Q(t.alpha??1),d=new gs(o,i,s,l,c,u,a),p=new Pe(d.calpha,"f"),f=new be(t.mode??0);return new et(r,e,n,{filmThickness:o,movement:i,wavelengths:s,noiseStrength:l,noiseScale:c,offset:u,alpha:a,mode:f},d,f,p)}case"transmission":{let o=new Q(t.thickness??10),i=new Q(t.ior??1.5),s=new Q(t.roughness??.5),l=gt.transmissionSize,c=gt.transmissionRenderTarget,u=gt.transmissionRenderTargetDepth,a=window.innerWidth,d=window.innerHeight,p=a>=d?new ut(d/a,1):new ut(1,a/d),f=new Q(t.alpha??1),m=new vs(o,i,s,l,c,u,p,f),h=new Pe(m.calpha,"f"),y=new be(t.mode??0);return new et(r,e,n,{thickness:o,ior:i,roughness:s,aspectRatio:p,alpha:f,mode:y},m,y,h)}case"toon":{let o=new be(t.positioning??0),i;t.colors?i=new hr(t.colors.length,t.colors):(i=new hr(10,new je.Vector4(0,0,0,1)),i.value[1]=new je.Vector4(1,1,1,1));let s;t.steps?s=new mr(t.steps.length,t.steps):(s=new mr(10,1),s.value[0]=0);let l=new yt(t.source??new je.Vector3(0,0,0)),c=new wo(t.isWorldSpace??!0),u=new Q(t.noiseStrength??0),a=new Q(t.noiseScale??1),d=new Qt(t.shadowColor),p=new yt(t.offset??new je.Vector3(0,0,0)),f=new Q(t.alpha??1),m=new Is(o,i,s,l,c,u,a,d,p,f),h=new Pe(m.calpha,"f"),y=new be(t.mode??0);return new et(r,e,n,{positioning:o,colors:i,steps:s,source:l,isWorldSpace:c,noiseStrength:u,noiseScale:a,shadowColor:d,offset:p,alpha:f,mode:y},m,y,h)}case"outline":{let o=new Ie(t.outlineColor??16777215),i=new Ie(t.contourColor??16777215),s=new Q(t.outlineWidth??.1),l=new Q(t.contourWidth??.1),c=new Q(t.outlineThreshold??.1),u=new Q(t.contourThreshold??.1),a=new Q(t.outlineSmoothing??.1),d=new Q(t.contourFrequency??.1),p=new yt(t.contourDirections??new je.Vector3(0,1,0)),f=new wo(t.positionalLines??!1),m=new wo(t.compensation??!0),h=gt.normalRenderTarget,y=gt.normalRenderTargetDepth,g=gt.pixelRatioNode,v=gt.resolution,w=new Q(t.alpha??1),b=new xs(o,i,s,l,c,u,a,d,p,f,m,v,h,y,g,w),S=new Pe(b.calpha,"f"),A=new be(t.mode??0);return new et(r,e,n,{outlineColor:o,contourColor:i,outlineWidth:s,contourWidth:l,outlineThreshold:c,contourThreshold:u,outlineSmoothing:a,contourFrequency:d,contourDirection:p,positionalLines:f,compensation:m,alpha:w,mode:A},b,A,S)}case"depth":{let o=new be(t.gradientType??0),i=new wo(t.smooth??!1),s=new Q(t.near??50),l=new Q(t.far??200),c=new Q(t.isVector??1),u=new Q(t.isWorldSpace??0),a=new yt(t.origin??new je.Vector3),d=new yt(t.direction??new je.Vector3),p;t.colors?p=new hr(t.colors.length,t.colors):(p=new hr(2,new je.Vector4(0,0,0,1)),p.value[1]=new je.Vector4(1,1,1,1));let f;t.steps?f=new mr(t.steps.length,t.steps):(f=new mr(2,1),f.value[0]=0);let m=new Q(t.alpha??1),h=new be(t.mode??0),y=new bs(o,i,s,l,c,u,a,d,p,f,m),g=new Pe(y.calpha,"f");return new et(r,e,n,{gradientType:o,smooth:i,near:s,far:l,isVector:c,isWorldSpace:u,origin:a,direction:d,colors:p,steps:f,alpha:m,mode:h},y,h,g)}case"noise":{let o=new Q(t.scale??1),i=new yt(t.size??new je.Vector3(100,100,100)),s=new Q(t.move??1),l=new ut(t.fA??new je.Vector2(1.7,9.2)),c=new ut(t.fB??new je.Vector2(8.3,2.8)),u=new ut(t.distortion??new je.Vector2(1,1)),a=new Qt(t.colorA),d=new Qt(t.colorB),p=new Qt(t.colorC),f=new Qt(t.colorD),m=new Q(t.alpha??1),h=new be(t.mode??0),y=new be(t.noiseType??0),g=new hs(o,i,s,l,c,u,a,d,p,f,m,y),v=new Pe(g.calpha,"f");return new et(r,e,n,{scale:o,size:i,move:s,fA:l,fB:c,distortion:u,colorA:a,colorB:d,colorC:p,colorD:f,alpha:m,mode:h,noiseType:y},g,h,v)}case"normal":{let o=new yt(t.cnormal??new je.Vector3(1,1,1)),i=new Q(t.alpha??1),s=new be(t.mode??0),l=new As(o,i),c=new Pe("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");return c.keywords.alpha=i,new et(r,e,n,{cnormal:o,alpha:i,mode:s},l,s,c)}case"gradient":{let o=new be(t.gradientType??0),i=new wo(t.smooth??!1),s;t.colors?s=new hr(t.colors.length,t.colors):(s=new hr(10,new je.Vector4(0,0,0,1)),s.value[1]=new je.Vector4(1,1,1,1));let l;t.steps?l=new mr(t.steps.length,t.steps):(l=new mr(10,1),l.value[0]=0);let c=new ut(t.offset??new je.Vector2(0,0)),u=new ut(t.morph??new je.Vector2(0,0)),a=new Q(t.angle??0),d=new Q(t.alpha??1),p=new be(t.mode??0),f=new _s(o,i,s,l,c,u,a,d),m=new Pe(f.calpha,"f");return new et(r,e,n,{gradientType:o,smooth:i,colors:s,steps:l,offset:c,morph:u,angle:a,alpha:d,mode:p},f,p,m)}default:{let o=new Ie(1,0,0,1),i=new Q(1),s=new Pe("alpha / clamp(alpha + accumAlpha, 0.00001, 1.0 )","f");s.keywords.alpha=i;let l=new be(0);return o.alpha=i,new et(r,e,n,{color:o,alpha:i,mode:l},o,l,s)}}}function h_(n,r,e,t){let o=Ah(e,t);return m_(e,n,r,o)}function fd(n,r,e){if(e.type==="displace"&&(n==="intensity"||n==="visible")){let t=r.uniforms[`f${r.id}_intensity`];return t?(t.value=e.intensity*(e.visible?1:0),t):void 0}if(e.type!=="displace"&&(n==="alpha"||n==="visible")){let t=r.uniforms[`f${r.id}_alpha`];if(!t)return;if(t.value=e.alpha*(e.visible?1:0),e.type==="outline"&&n==="visible"){let o=r.uniforms[`f${r.id}_compensation`];o&&(o.value=e.compensation&&e.visible)}return t}}function Mh(n,r){let e=0;for(let t of n.layers)if(t.data.type!=="displace"&&"alpha"in t.data&&t.data.type!=="light"&&t.data.type!=="fresnel"&&t.data.type!=="texture"&&t.data.type!=="matcap"&&t.data.type!=="rainbow"&&t.data.type!=="outline"){let o=t.data.visible?t.data.alpha:0;if(o==1&&t.data.type=="depth"||t.data.type=="gradient"){for(let i of t.data.colors)if(i[3]<1){o=i[3];break}}else if(o==1&&t.data.type=="noise"){let i=r.color(t.data.colorA).a,s=r.color(t.data.colorB).a,l=r.color(t.data.colorC).a,c=r.color(t.data.colorD).a,u=Math.min(i,Math.min(s,Math.min(l,c)));u<1&&(o=u)}e+=(1-e)*o}return e<1}var Ft=class extends Bh.ShaderMaterial{constructor(){super(void 0);this.flatShading=!1;this.cacheKey="";this.fog=!0,this.dithering=!0,this.vertexColors=!0,this.transparent=!0}customProgramCacheKey(){return this.cacheKey}},yd=class extends Ft{constructor(e,t,o,i){super();this.flatShading=e;this.side=t;this.wireframe=o;this.root=i}updateAfterBuild(){let e=this.root;this.lights=e.lights,this.vertexShader=e.vertexShader,this.fragmentShader=e.fragmentShader,this.defines=e.defines,this.uniforms=e.uniforms,this.extensions=e.extensions,this.transparent=e.transparent,this.cacheKey=e.customProgramCacheKey()+"flat"+this.flatShading+this.side}onBeforeCompile(e,t){this.root.onBeforeCompile(e)}get data(){return this.root.data}get category(){return this.root.category}getFlavor(e,t,o){return this.root.getFlavor(e,t,o)}get layers(){return this.root.layers}get fragment(){return this.root.fragment}getLayersOfType(e){return this.root.getLayersOfType(e)}getLayerByUuid(e){return this.root.getLayerByUuid(e)}updateByOp(e,t,o){this.root.updateByOp(e,t,o)}nodeMaterialDispose(){this.root.nodeMaterialDispose()}},hi=class extends Ft{constructor(e,t){super();this.data=e;this.layerIdGen=0;this.flavors=[];this.type="NodeMaterial";this.updaters=[],this.reset0(e,t)}get nodeMaterial(){return this}getFlavor(e,t,o){let i=o?6:(e?3:0)+t;if(i===0)return this;this.flavors===void 0&&(this.flavors=[]),i-=1;let s=this.flavors[i];return s===void 0&&(s=new yd(e,t,o,this),this.flavors[i]=s,s.flatShading=e,s.side=t,s.updateAfterBuild()),s}get fragment(){return this.lightLayer.node}get category(){return this.lightLayer.category}reset(e,t){this.data!==e&&this.reset0(e,t)}reset0(e,t){this.data=e;let o=e.layers??Mt.defaultTwoLayerData("phong").layers;this.layers=o.map(i=>Br.create(this.layerIdGen++,i.id,i.data,t.shared)),this.layers.reverse(),this.name=e.name??"Untitled Material",this.onUpdate(),this.transparent=Mh(e,t.shared)}getLayersOfType(e){return this.layers.filter(t=>t.type===e)}getLayerByUuid(e){return this.layers.find(t=>t.uuid===e)}onUpdate(){this.cacheKey=this.computeCacheKey(),this.lightLayer=this.layers.find(e=>e instanceof Dr),this.lightLayer===void 0&&(this.lightLayer=new Dr(0,"",{...Tt.defaultData("light","phong"),visible:!1},new Xo,{})),this.dispose(),this.needsUpdate=!0,this.blendColors(),this.blendAfterColors(),this.blendPositions()}updateByOp(e,t,o){if(this.data=t,this.transparent=Mh(t,o.shared),e.path[0]==="layers"){this.data=t;let i=o.shared,s=e.path[1];if(s===void 0){if(this.layers.reverse(),e.type===4){let l=Br.create(this.layerIdGen++,e.id,e.data,o.shared);this.layers.splice(e.localIndex,0,l),o.scene?.markNeedsUpdateRendererDirty()}else if(e.type===5)this.layers.splice(e.localIndex,1)[0].dispose(),o.scene?.markNeedsUpdateRendererDirty();else if(e.type===6){let l=this.layers.findIndex(u=>u.uuid===e.id),c=this.layers[l];this.layers.splice(l,1),this.layers.splice(e.localIndex,0,c),o.scene?.markNeedsUpdateRendererDirty()}this.layers.reverse(),this.onUpdate()}else{let l=this.layers.find(c=>c.uuid===s);if(l){let c=t.layers.data(s);if(l.updateByOp({...e,path:e.path.slice(2)},c,o)){let a=Br.create(this.layerIdGen++,s,c,i);this.layers.splice(this.layers.findIndex(d=>d.uuid===s),1,a),this.onUpdate()}}}}else this.reset(t,o)}blendColors(){let e=this.layers.findIndex(o=>o instanceof et),t=this.layers.findIndex(o=>o instanceof Dr);if(e!==-1&&e<t){let o=this.layers[e].color;for(let i=e+1;i<t;++i){let s=this.layers[i];s instanceof et&&(o=new Ss(o,s.color,s.alpha,s.mode))}this.fragment.color=o}else this.fragment.color=void 0}blendAfterColors(){let e=new Pe("outgoingLight","f"),t=this.layers.findIndex(o=>o instanceof Dr);if(this.layers.length>t+1){for(let o=t+1;o<this.layers.length;++o){let i=this.layers[o];i instanceof et&&(e=new Ss(e,i.color,i.alpha,i.mode))}this.fragment.afterColor=e}else this.fragment.afterColor=void 0}blendPositions(){let e=this.layers.filter(t=>t instanceof Cs);if(e.length>0){let t=e[0].position;for(let o=1;o<e.length;++o)e[o]&&(t=new Vt(t,e[o].position,Vt.ADD),t=new Vt(t,new Q(.5).setReadonly(!0),Vt.MUL));this.fragment.position=t}else this.fragment.position=void 0}getDefines(){return this.defines}getUniforms(){return this.uniforms}getVertexShader(){return this.vertexShader}getFragmentShader(){return this.fragmentShader}onBeforeCompile(e){this.build(),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,t){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,t);i.uniforms[`f${i.id}_intensity`].value=s}}computeCacheKey(){let e="[";for(let{data:t}of this.data.layers)if(t.type==="light")e+=`"${t.visible?t.category.toUpperCase():"Basic"}"`;else{let o=(dd[t.type]??[]).map(l=>t[l]),i=(ud[t.type]??[]).map(l=>t[l]?.length??0),s=[...o,...i];s.length?e+=`["${t.type}", "${s.join('","')}"],`:e+=`"${t.type}",`}return e=e.slice(0,-1)+"]",e}updateFrame(e){for(let t=0;t<this.updaters.length;++t)e.updateNode(this.updaters[t])}build(){let e=new pl;this.lights=this.lightLayer.data.visible,e.build(this.fragment,this.fragment),this.vertexShader=e.getCode("vertex"),this.fragmentShader=e.getCode("fragment"),this.defines=e.defines,this.uniforms=e.uniforms,this.extensions=e.extensions,this.updaters=e.updaters;for(let t of this.flavors)t&&t.updateAfterBuild();return this}nodeMaterialDispose(){this.layers.forEach(e=>e.dispose()),super.dispose();for(let e of this.flavors)e&&e.dispose()}assetsLoaded(){for(let e of this.layers)if(e instanceof et){let t=e.params.texture;if(t instanceof Ko&&!t.image.loaded)return!1}return!0}getHash(){let e="{";return e+='"fragment":'+this.fragment.getHash(),e+="}",e}};Object.defineProperties(Ft.prototype,{properties:{get:function(){return this.fragment.properties}}});var Zo=class extends hi{};var Vh=qs(Dh());var Gh=new Map;function Rh(n){if(typeof n=="string")return n;let r=Gh.get(n);return r||(r={url:URL.createObjectURL(new Blob([n]))},Gh.set(n,r)),r.url}var Qo=class{constructor({src:r,volume:e,delay:t,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 r=="string"?i={src:r}:i={src:Rh(r),format:"wav"},this.sound=new Vh.Howl(i),this.sound.on("end",this.onEnd),this.src=r,e!==void 0&&(this.volume=e),t!==void 0&&(this.delay=t),o!==void 0&&(this.loop=o)}get status(){return this._status}get volume(){return this._volume}set volume(r){this._volume=r,this.sound.volume(r)}get loop(){return this._loop}set loop(r){this._loop=r,this.loopsRemaining=r}replay(){this.clearDelay(),this.delayTimerId=window.setTimeout(()=>{this.sound.play(),this.clearDelay()},this.delay)}fade(r,e=1e3){r?(this.sound.volume(this._volume),this.clearFade(),this.fadeTimerId=window.setTimeout(()=>{this.sound.fade(this._volume,0,e),this.clearFade()},r)):this.sound.fade(this._volume,0,e)}on(r,e,t){this.sound.on(r,e,t)}off(r,e,t){this.sound.off(r,e,t)}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(r=!1){this.off(),this.stop(),this.clearFade(),this.clearDelay()}};var st=require("three"),wl=class{constructor(){this.type="ShapePath";this.color=new st.Color;this.subPaths=[];this.currentPath=null}moveTo(r,e){return this.currentPath=new st.Path,this.subPaths.push(this.currentPath),this.currentPath.moveTo(r,e),this}lineTo(r,e){return this.currentPath?.lineTo(r,e),this}quadraticCurveTo(r,e,t,o){return this.currentPath?.quadraticCurveTo(r,e,t,o),this}bezierCurveTo(r,e,t,o,i,s){return this.currentPath?.bezierCurveTo(r,e,t,o,i,s),this}splineThru(r){return this.currentPath?.splineThru(r),this}toShapes(){let e={ORIGIN:0,DESTINATION:1,BETWEEN:2,LEFT:3,RIGHT:4,BEHIND:5,BEYOND:6},t={loc:e.ORIGIN,t:0};function o(h,y,g,v){let w=h.x,b=y.x,S=g.x,A=v.x,_=h.y,x=y.y,P=g.y,O=v.y,I=(A-S)*(_-P)-(O-P)*(w-S),T=(b-w)*(_-P)-(x-_)*(w-S),N=(O-P)*(b-w)-(A-S)*(x-_),L=I/N,U=T/N;if(N===0&&I!==0||L<=0||L>=1||U<0||U>1)return null;if(I===0&&N===0){for(let K=0;K<2;K++)if(i(K===0?g:v,h,y),t.loc===e.ORIGIN){let J=K===0?g:v;return{x:J.x,y:J.y,t:t.t}}else if(t.loc===e.BETWEEN){let J=+(w+t.t*(b-w)).toPrecision(10),se=+(_+t.t*(x-_)).toPrecision(10);return{x:J,y:se,t:t.t}}return null}else{for(let se=0;se<2;se++)if(i(se===0?g:v,h,y),t.loc===e.ORIGIN){let z=se===0?g:v;return{x:z.x,y:z.y,t:t.t}}let K=+(w+L*(b-w)).toPrecision(10),J=+(_+L*(x-_)).toPrecision(10);return{x:K,y:J,t:L}}}function i(h,y,g){let v=g.x-y.x,w=g.y-y.y,b=h.x-y.x,S=h.y-y.y,A=v*S-b*w;if(h.x===y.x&&h.y===y.y){t.loc=e.ORIGIN,t.t=0;return}if(h.x===g.x&&h.y===g.y){t.loc=e.DESTINATION,t.t=1;return}if(A<-Number.EPSILON){t.loc=e.LEFT;return}if(A>Number.EPSILON){t.loc=e.RIGHT;return}if(v*b<0||w*S<0){t.loc=e.BEHIND;return}if(Math.sqrt(v*v+w*w)<Math.sqrt(b*b+S*S)){t.loc=e.BEYOND;return}let _;v!==0?_=b/v:_=S/w,t.loc=e.BETWEEN,t.t=_}function s(h,y){let g=[],v=[];for(let w=1;w<h.length;w++){let b=h[w-1],S=h[w];for(let A=1;A<y.length;A++){let _=y[A-1],x=y[A],P=o(b,S,_,x);P!==null&&g.find(O=>O.t<=P.t+Number.EPSILON&&O.t>=P.t-Number.EPSILON)===void 0&&(g.push(P),v.push(new st.Vector2(P.x,P.y)))}}return v}function l(h,y,g){let v=new st.Vector2;y.getCenter(v);let w=[];return g.forEach(b=>{b.boundingBox.containsPoint(v)&&s(h,b.points).forEach(A=>{w.push({identifier:b.identifier,isCW:b.isCW,point:A})})}),w.sort((b,S)=>b.point.x-S.point.x),w}function c(h,y,g,v,w){(w==null||w==="")&&(w="nonzero");let b=new st.Vector2;h.boundingBox.getCenter(b);let S=[new st.Vector2(g,b.y),new st.Vector2(v,b.y)],A=l(S,h.boundingBox,y);A.sort((T,N)=>T.point.x-N.point.x);let _=[],x=[];A.forEach(T=>{T.identifier===h.identifier?_.push(T):x.push(T)});let P=_[0].point.x,O=[],I=0;for(;I<x.length&&x[I].point.x<P;)O.length>0&&O[O.length-1]===x[I].identifier?O.pop():O.push(x[I].identifier),I++;if(O.push(h.identifier),w==="evenodd"){let T=O.length%2===0,N=O[O.length-2];return{identifier:h.identifier,isHole:T,for:N}}else if(w==="nonzero"){let T=!0,N=null,L=null;for(let U=0;U<O.length;U++){let K=O[U];y[K]&&(T?(L=y[K].isCW,T=!1,N=K):L!==y[K].isCW&&(L=y[K].isCW,T=!0))}return{identifier:h.identifier,isHole:T,for:N}}else console.warn('fill-rule: "'+w+'" is currently not implemented.')}let u=0,a=999999999,d=-999999999,p=[];this.subPaths.forEach(h=>{let y=h.getPoints(),g=-999999999,v=999999999,w=-999999999,b=999999999;for(let S=0;S<y.length;S++){let A=y[S];A.y>g&&(g=A.y),A.y<v&&(v=A.y),A.x>w&&(w=A.x),A.x<b&&(b=A.x)}d<=w&&(d=w+1),a>=b&&(a=b-1),y.length&&p.push({curves:h.curves,points:y,isCW:st.ShapeUtils.isClockWise(y),identifier:u++,boundingBox:new st.Box2(new st.Vector2(b,v),new st.Vector2(w,g))})});let f=p.map(h=>c(h,p,a,d,this.userData?.style.fillRule)),m=[];return p.forEach(h=>{let y=f[h.identifier];if(y&&!y.isHole){let g=new st.Shape;g.curves=h.curves,f.filter(w=>w?.isHole&&w.for===h.identifier).forEach(w=>{if(w){let b=p[w.identifier],S=new st.Path;S.curves=b.curves,g.holes.push(S)}}),m.push(g)}}),m}};var Fh,gd=new Promise(n=>{Fh=n}),jh=!1;async function Uh(){if(jh)return;let n=await import("./opentype.js");Fh(n),jh=!0}var Ns=class{async load(r,e,t=()=>{}){let{load:o}=await gd;o(r,(i,s)=>{i||!s?t(i??"Something went wrong"):e(s)})}async parse(r){let{parse:e,Bidi:t}=await gd;try{let o=e(r),i=new t,s=l=>o.charToGlyphIndex(l.char);return i.registerModifier("glyphIndex",null,s),i.applyFeatures(o,o.defaultRenderOptions.features),{font:o,bidi:i}}catch(o){console.error(o)}}};async function y_(n){return await(await fetch(n)).arrayBuffer()}var g_=new Ns;async function xd(n){let r,e,t=!1;if(n.url?(r=await y_(n.url),e=n.url,t=n.url.startsWith("/")):n.data&&(r=n.data.buffer),r){let o=await g_.parse(r);if(o)return{font:o.font,url:e,intercepted:t,arr:r,bidi:o.bidi}}}var yi=require("three");function x_(n,r){return r.state.glyphIndex===n||r.state.fina===n||r.state.medi===n||r.state.init===n}var _l=class{constructor(r){this._arrayBuffer=new ArrayBuffer(1);this._isLoaded=!1;this._intercepted=!1;this._isUserFont=r.isUserFont??!1,this._loadingPromise=xd(r).then(e=>{e&&(this._arrayBuffer=e.arr,this._url=e.url,this.font=e.font,this._intercepted=e.intercepted,this._isLoaded=!0,this._bidi=e.bidi)})}update(r){this._isLoaded=!1,this._isUserFont=r.isUserFont??!1,this._loadingPromise=xd(r).then(e=>{e&&(this._arrayBuffer=e.arr,this._url=e.url,this.font=e.font,this._intercepted=e.intercepted,this._isLoaded=!0,this._bidi=e.bidi)})}get url(){return this._url}get intercepted(){return this._intercepted}get isLoaded(){return this._isLoaded}get loadingPromise(){return this._loadingPromise}reverseLigaturesTable(r,e,t){if(!this._bidi)return[];let o=this._bidi;o.getTextGlyphs(e);let i=o.tokenizer.tokens,s=[],l=0,c=t.length===i.length;for(let u=0;u<t.length;u++){let a=t[u].index,d=String.fromCharCode(t[u].unicode),p=i[l];if(x_(a,p)||c)s.push({char:d,index:a,replacements:[p.state.glyphIndex],replacementChars:[p.char]}),l++;else{let f=p.char,m="",h=[p.state.glyphIndex],y=[],g=!1;for(;!g;)l++,m=e.charAt(l),f+=m,h.push(r.charToGlyphIndex(m)),y=r.stringToGlyphs(f),y.length===1&&y[0].index===a&&(g=!0),l>e.length&&(g=!0);s.push({char:d,index:a,replacements:h,replacementChars:Array.from(f)}),l++}}return s}generateShapes(r,e){if(!this._isLoaded)return;let t=this.font,o=e.fontSize/this.unitsPerEm,i=e.fontSize*e.lineHeight,s=r.map(v=>this.getTextWidth(v,e)),l=e.width,c=this.getCharWidth(`
1335
+ `,e),u=e.horizontalAlign===1?c:0,a=this.computeSpaceWidthForLine(r,0,e),d=this.getLineInitialOffsetX(s[0],l,e.horizontalAlign,r[0],c),p=this.getLineInitialOffsetY(i,r.length,e.height,o,e.verticalAlign),f=[],m=r.map(v=>[]),h=r.map(v=>[]),y;for(let v=0;v<r.length;v++){let w=r[v],b={features:{liga:!0}},S=[];try{S=t.stringToGlyphs(w,b)}catch(_){console.warn(_)}d=this.getLineInitialOffsetX(s[v],l,e.horizontalAlign,w,c);let A=[];try{A=this.reverseLigaturesTable(t,w,S)}catch(_){console.warn(_)}a=this.computeSpaceWidthForLine(r,v,e);for(let _=0;_<S.length;_++){let x=S[_],P=x.index===0?`
1336
+ `:x.unicode?String.fromCharCode(x.unicode):void 0,O=A[_],I=0,T=0;_===0&&e.horizontalAlign===2&&x.leftSideBearing!==void 0&&(T=-x.leftSideBearing*o),y&&(I=t.getKerningValue(x,y)*o),d+=T+I;let N=0;if(P===`
1337
+ `)N=u;else if(P===" ")N=a;else{let L=this.createPath(x,o,d,p,e);L&&(N=L.offsetX-(I+T),f.push(L.path))}if(O.replacements.length===1)h[v].push([d,p]),m[v].push(N);else{let L=O.replacements.map(se=>(t.glyphs.get(se).advanceWidth??0)*o),U=L.reduce((se,z)=>se+=z,0),K=L.map(se=>se/U),J=d;for(let se=0;se<K.length;se++){let z=N*K[se];h[v].push([J,p]),m[v].push(z),J+=z}}d+=N,y=x}p-=i}let g=[];for(let v=0,w=f.length;v<w;v++)g.push(...f[v].toShapes());return{shapes:g,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(r,e,t,o,i){return(t===3||t===2)&&o.indexOf(`
1338
+ `)>=0&&(r-=i),t===3?e*.5-r*.5:t===2?e-r:0}getLineInitialOffsetY(r,e,t,o,i){let s=e*r,l=Math.abs(this.ascender-this.descender)*o,c=r-l,u=-this.ascender*o-c/2;return i===3?-(t-s-u):i===2?-(t*.5-s*.5-u):u}createPath(r,e,t,o,i){let s=r.getPath(t,-o,i.fontSize,{kerning:!1,letterSpacing:i.letterSpacing});if(!s){console.error('THREE.Font: character "'+r+'" does not exists in font family '+this.familyName+".");return}let l=new wl,c=(r.advanceWidth??1)*e;if(r)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=v_(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(r,e){return this.font?.getAdvanceWidth(r,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}getTextWidth(r,e){return this.font?.getAdvanceWidth(r,e.fontSize,{kerning:!0,letterSpacing:e.letterSpacing})??0}computeSpaceWidthForLine(r,e,t){let o=this.getCharWidth(" ",t),i=r[e];if(i){let s=this.countSpaces(i.trimEnd());if(t.horizontalAlign===4&&e<r.length-1&&s){let l=t.width,c=this.getTextWidth(i,t);return(l-(c-s*o))/s}}return o}countSpaces(r){return(r.match(/ /g)||[]).length}};function v_(n){if(n.length){let r=n[0];if(r instanceof yi.LineCurve)return r.v1;if(r instanceof yi.CubicBezierCurve||r instanceof yi.QuadraticBezierCurve)return r.v0}}var vd=class{constructor(){this.objects=new Map;this.unreachable=new Set}getCached(r){return this.objects.get(r)}get size(){return this.objects.size}get(r,e){let t=this.objects.get(r);return t===void 0?(t=this.createObject(r,e),this.objects.set(r,t)):t.isShared=!0,t}mutateIfUnique(r,e){let t=this.objects.get(r);if(t&&t.isShared!==!0)return this.objects.delete(r),this.objects.set(e,t),t}startGc(){this.unreachable=new Set(this.objects.keys())}markAsReachable(r,e){let t=this.objects.get(r);e===t?this.unreachable.delete(r):uo&&console.warn("Reachable but deleted",r)}endGc(){this.unreachable.forEach(r=>{this.disposeObject(this.objects.get(r)),this.objects.delete(r)}),this.unreachable.clear()}dispose(){this.objects.forEach(r=>{this.disposeObject(r)}),this.objects.clear()}},Es=class extends vd{constructor(e){super();this.flatShading=e}disposeObject(e){e.dispose()}createObject(e,t){let o=qo(e,t,this.flatShading);return o.computeBoundingSphere(),o}};var zh={find(n){},markNeedsUpdateRendererDirty:function(){},markGeometryCacheDirty:function(){},addPendingExpandCloner:function(n){},addPendingUpdateCloner(n){}};var bd=class extends gl{constructor(e){super();this.shared=e}create(e){return new mi(e,this.shared)}},Jo=class{constructor(r,e={}){this.geometryCache=new Es(!0);this.geometryCache2=new Es(!1);this.imageHolderCache=new bd(this);this.thisContext={scene:zh,shared:this};this.deletedMaterial=new Zo(Mt.defaultTwoLayerData("phong"),this.thisContext);this.deletedImage=new Jt(Wa.emptyImage,this);this.deletedVideo=new Jt(mn.defaultVideo,this);this.materials={};this.images={};this.videos={};this.colors={};this.audios={};this.fonts={};this.penumbraSize=[];this.requestRender=()=>{this._requestRender&&this._requestRender()};if(e.images)for(let[t,o]of Object.entries(e.images))this.addImage(t,o);if(e.videos)for(let[t,o]of Object.entries(e.videos))this.addVideo(t,o);if(e.audios)for(let[t,o]of Object.entries(e.audios))this.addAudio(t,o.data);this.reset(r)}setRequestRender(r){this._requestRender=r}reset(r){for(let[e,t]of Object.entries(r.images))this.addImage(e,t);for(let[e,t]of Object.entries(r.videos))this.addVideo(e,t);for(let[e,t]of Object.entries(r.colors))this.addColor(e,t);for(let[e,t]of Object.entries(r.materials))this.addMaterial(e,new Zo(t,this.thisContext));for(let[e,t]of Object.entries(r.audios))this.addAudio(e,t.data);for(let[e,t]of Object.entries(r.fonts))this.addFont(e,t);this.penumbraSize=r.penumbraSize}addMaterial(r,e){e.uuid=r,this.materials[r]=e}deleteMaterial(r){this.materials[r]&&(this.materials[r].nodeMaterialDispose(),delete this.materials[r])}getMaterial(r){let e=this.materials[r];return e}getMaterialOrDeletedPlaceholder(r){return this.materials[r]??this.deletedMaterial}material(r){return typeof r=="string"?this.getMaterialOrDeletedPlaceholder(r):new hi(r,this.thisContext)}getMaterials(){return this.materials}addImage(r,e){return this.images[r]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(),this.images[r].updateSrc(e.data),!0):(this.images[r]=new Jt(e,this),!1)}deleteImage(r){let e=this.images[r];e&&(e.dispose(),delete this.images[r])}getDefaultImage(){return this.images.image_0}getImage(r){return this.images[r]??this.deletedImage}image(r){return typeof r=="string"?this.getImage(r):this.imageHolderCache.load(r)}addVideo(r,e){return this.videos[r]?(this.videos[r].updateSrc(e.data),!0):(this.videos[r]=new Jt(e,this),!1)}deleteVideo(r){let e=this.videos[r];e&&(e.dispose(),delete this.videos[r])}getVideo(r){return this.videos[r]??this.deletedVideo}video(r){return typeof r=="string"?this.getVideo(r):this.imageHolderCache.load(r)}addColor(r,e){return this.colors[r]?(this.onColorOrImageUpdate&&this.onColorOrImageUpdate(),"a"in e?this.colors[r].setRGBA(e.r,e.g,e.b,e.a):this.colors[r].setRGBA(e.r,e.g,e.b,1),!0):("a"in e?this.colors[r]=new _o(e.r,e.g,e.b,e.a):this.colors[r]=new _o(e.r,e.g,e.b,1),!1)}updateColor(r,e){if(this.colors[r]){this.onColorOrImageUpdate&&this.onColorOrImageUpdate();let t=this.colors[r];return this.colors[r].r=e.r??t.r,this.colors[r].g=e.g??t.g,this.colors[r].b=e.b??t.b,this.colors[r].a=e.a??t.a,!0}return!1}deleteColor(r){this.colors[r]&&delete this.colors[r]}getColor(r){return this.colors[r]}color(r){let e;if(typeof r=="string"){let t=this.getColor(r);t?e=t:(console.warn("Tried to create color layer params with a color key that does not exist in the assets manager"),e=new it(0,0,0,0))}else return"a"in r?new it(r.r,r.g,r.b,r.a):new it(r.r,r.g,r.b,1);return e}addAudio(r,e){this.audios[r]=e}getAudio(r){let e=this.audios[r];if(e instanceof Qo)return e;{let t=new Qo({src:e});return this.audios[r]=t,t}}deleteAudio(r){let e=this.audios[r];e&&(e instanceof Qo&&e.dispose(),delete this.audios[r])}addFont(r,e){this.fonts[r]=new _l(e),this.fonts[r].loadingPromise.then(()=>this.requestRender())}getFont(r){return this.fonts[r]}deleteFont(r){this.fonts[r]&&delete this.fonts[r]}dispose(){Object.keys(this.materials).forEach(e=>this.deleteMaterial(e)),this._requestRender=void 0,Object.values(this.audios).forEach(e=>{e instanceof Qo&&e.dispose()}),this.audios={},this.geometryCache.dispose(),this.geometryCache2.dispose()}},kh=new Jo(xa.emptyData());var yr=class extends ht{updateByPatchedOp(e,t,o){if(super.updateByPatchedOp(e,t,o),Fd(e.path,["materials"])!==null&&e.type===0&&Array.isArray(this.material))for(let[i,s]of Object.entries(e.props)){let l=o.shared.material(s);this.material[Number(i)]=l}else if(br(e.path,["material"])&&this.material instanceof Ft)"material"in t&&typeof t.material!="string"&&this.material.updateByOp(ft.drop(e,1),t.material,o);else if(br(e.path,["materials","*"])&&Array.isArray(this.material)){let i=e.path[1];if("materials"in t&&i<this.material.length){let s=t.materials[i];typeof s!="string"&&this.material[i].updateByOp(ft.drop(e,2),s,o)}}}updateState(e,t){super.updateState(e,t),e.castShadow!==void 0&&(this.castShadow=e.castShadow),e.receiveShadow!==void 0&&(this.receiveShadow=e.receiveShadow);let o=this.dataPatched;if(e.geometry?.type!=="NonParametricGeometry"&&"material"in e&&e.material!==void 0&&(this.disposeMaterial(),this.material=t.shared.material(e.material).getFlavor(o.flatShading,o.side,o.wireframe),t.scene?.markNeedsUpdateRendererDirty()),e.geometry?.type==="NonParametricGeometry"&&("materials"in e&&e.materials!==void 0?(this.disposeMaterial(),this.material=e.materials.map(i=>t.shared.material(i).getFlavor(o.flatShading,o.side,o.wireframe)),t.scene?.markNeedsUpdateRendererDirty()):"material"in e&&e.material!==void 0&&(this.disposeMaterial(),this.material=[t.shared.material(e.material).getFlavor(o.flatShading,o.side,o.wireframe)],t.scene?.markNeedsUpdateRendererDirty())),e.flatShading!==void 0||e.wireframe!==void 0||e.side!==void 0)if(Array.isArray(this.material))for(let i=0;i<this.material.length;i++)this.material[i]=this.material[i].getFlavor(o.flatShading,o.side,o.wireframe);else this.material=this.material.getFlavor(o.flatShading,o.side,o.wireframe)}disposeMaterial(){this.material&&ga(this.material).forEach(e=>{e instanceof Ft&&(e instanceof Zo||e.nodeMaterialDispose())})}dispose(){this.disposeMaterial(),super.dispose()}};var Hh=require("three");var Pt=class extends yr{constructor(e,t,o){super(e,t);this.data=t;this.localGeometry=void 0}chooseGeoemtryCache(e){return e.geometryCache}markGeometryAsReachable(e){this.geometryCreateDeleyed instanceof Hh.BufferGeometry&&this.chooseGeoemtryCache(e).markAsReachable(this.dataPatched.geometry,this.geometryCreateDeleyed)}get geometry(){if(this.localGeometry!==void 0)return this.localGeometry;if(this.geometryCreateDeleyed instanceof Jo){let e=this.geometryCreateDeleyed,t=this.chooseGeoemtryCache(e);this.geometryCreateDeleyed=t.get(this.dataPatched.geometry,e)}return this.geometryCreateDeleyed}set geometry(e){this.localGeometry=e}get is2DAndNoDepth(){let e=this.dataPatched.geometry;return Ri.is2DParametricMesh(e.type)&&e.depth===0}get is2DType(){return Ri.is2DParametricMesh(this.geometry.userData.type)}updateByPatchedOp(e,t,o){super.updateByPatchedOp(e,t,o),br(e.path,["geometry"])&&this.updateByPatchedOpGeometry(ft.drop(e,1),t.geometry,o)}removeInteractionGeometry(){this.localGeometry?.dispose(),this.localGeometry=void 0}updateGeometryInteractions(e,t){this.invalidateDownstreamBooleanData();let o=this.data.geometry.type;if(o==="NonParametricGeometry"||o==="SubdivGeometry"){let i=e;if(this.localGeometry===void 0){let a={...this.data.geometry,...i};this.localGeometry=qo(a,t,this.data.flatShading)}let s,l,c;i.scaleBaked?[s,l,c]=i.scaleBaked:{width:s,height:l,depth:c}=i;let u=this.localGeometry.userData;u.sxPrev!==void 0&&os(this.localGeometry.attributes,s/u.sxPrev,l/u.syPrev,c/u.szPrev),u.sxPrev=s,u.syPrev=l,u.szPrev=c}else{let i={...this.data.geometry,...e};this.localGeometry?.dispose(),this.localGeometry=qo(i,t,this.data.flatShading)}}refreshAttachedCloners(e){for(let t of this.attachedSurfaceCloners)e.scene.addPendingUpdateCloner(t.object)}createGeometryDelayed(e){this.geometryCreateDeleyed=e.shared,this.refreshAttachedCloners(e)}updateByPatchedOpGeometry(e,t,o){let i=!1;e.type===0&&e.path.length===0&&zi(["scaleBaked"],Object.keys(e.props))&&this.geometryCreateDeleyed instanceof Ke&&this.chooseGeoemtryCache(o.shared).mutateIfUnique(this.geometryCreateDeleyed.data,t)===this.geometryCreateDeleyed&&(i=!0,this.geometryCreateDeleyed.mutateDirectlyScaleBaked(t,e.props.scaleBaked),this.refreshAttachedCloners(o)),i||(o.scene?.markGeometryCacheDirty(),this.createGeometryDelayed(o)),this.resetBBoxNeedsUpdate(),this.invalidateDownstreamBooleanData()}updateGeometryOnStateUpdate(e,t){this.createGeometryDelayed(t)}updateState(e,t){e.geometry!==void 0&&this.updateGeometryOnStateUpdate(e.geometry,t),super.updateState(e,t)}updateGeometryGroupsIfNeeded(){Array.isArray(this.material)&&this.geometry.groups.length===0&&this.geometry.addGroup(0,Math.max(this.geometry.getIndex()?.count??0,this.geometry.getAttribute("position").count),0)}updateEntityBoxSize(e,t){let o=this.geometry.userData.parameters;this.is2DType?e.set(0,0,o.depth*.5):e.setScalar(0),t.set(o.width,o.height,o.depth??0).multiplyScalar(.5)}};function b_(n){if(n.geometry.attributes.extrudeNormal||!n.geometry.attributes.position||!n.geometry.attributes.normal)return;let r=new Map,e=n.geometry.attributes.position.array,t=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 $t.Vector3(t[i],t[i+1],t[i+2]);r.has(s)?r.get(s)?.normals.push(l):r.set(s,{normals:[l],result:new $t.Vector3})}r.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=r.get(s)?.result;l&&(o[i]=l.x,o[i+1]=l.y,o[i+2]=l.z)}n.geometry.setAttribute("extrudeNormal",new $t.Float32BufferAttribute(o,3))}function S_(n){if(n.geometry.attributes.extrudeNormals||!n.geometry.attributes.position)return;let r=n.geometry.attributes.position.array,e=new Float32Array(r.length),t=new $t.Vector3;for(let o=0;o<r.length;o+=3)t.set(r[o],r[o+1],r[o+2]).normalize(),e[o]=t.x,e[o+1]=t.y,e[o+2]=t.z;n.geometry.setAttribute("extrudeNormal",new $t.Float32BufferAttribute(e,3))}function gi(n){if(Array.isArray(n.material)){for(let r of n.material)if(r.getLayersOfType("outline").length===0)return}else if(!(n.material instanceof Ft)||n.material.getLayersOfType("outline").length===0)return;n instanceof Pt&&n.is2DAndNoDepth?S_(n):b_(n)}function xi(n){if(!n.geometry.attributes.position)return;let r=n.geometry.attributes.position.array,e=new Float32Array(r.length),t=parseInt(n.uuid.replace(/\D/g,"")),o=[$t.MathUtils.seededRandom(t),$t.MathUtils.seededRandom(t+1e4),$t.MathUtils.seededRandom(t+2e4)];for(let i=0;i<r.length;i++)e[i]=o[i%3];n.geometry.setAttribute("randomColor",new $t.BufferAttribute(e,3))}var w_;ri.then(n=>{w_=n});var Gr=new Zr.Box3,Ls=new Zr.Vector3;var en=class extends Pt{constructor(e,t,o){super(e,t,o);this.data=t;this.hiddenMatrixOld=new Zr.Matrix4;this.smoothShading=!0;this.skipReactionUpdate=!1}chooseGeoemtryCache(e){return this.dataPatched.flatShading?e.geometryCache:e.geometryCache2}get subdivPointerNew(){return this.localGeometry!==void 0?this.subdivPointer:this.geometry.ensureSubdivPointer()}get originalGeometryNew(){return this.localGeometry!==void 0?this.originalGeometry:this.geometry.originalGeometry}get phongAngle(){return this.data.geometry.phongAngle??45}updateEntityBoxSize(e,t){let o=this.geometry.userData.parameters;e.copy(this.originalGeometryNew.boundingSphere.center),t.set(o.width,o.height,o.depth??0).multiplyScalar(.5)}createGeometryByControls(e){if(this.skipReactionUpdate===!0)return;let t=this.localGeometry?.uuid,{originalGeometry:o,subdividedGeometry:i,subdivPointer:s}=Ke.build(e,this.subdivPointer,this.smoothShading,this.hasNonUniformScale?this.shearScale:void 0);this.subdivPointer=s,o!==void 0&&(this.originalGeometry?.dispose(),this.originalGeometry=o),i!==void 0&&(this.subdividedGeometry?.dispose(),this.subdividedGeometry=i??void 0),this.localGeometry=this.subdividedGeometry??this.originalGeometry,gi(this),xi(this),this.calcBoundingBox(),t&&(this.localGeometry.uuid=t)}updateState(e,t){if(super.updateState(e,t),e.flatShading!==void 0){let o=this.material;this.material=o.getFlavor(!1,o.side,o.wireframe),this.smoothShading=!e.flatShading,this.createGeometryDelayed(t)}}updateMesh(e=!1){Ke.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1,this.originalGeometry,e&&this.hasNonUniformScale?this.shearScaleInv:void 0),this.subdividedGeometry&&Ke.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1,this.subdividedGeometry,e&&this.hasNonUniformScale?this.shearScaleInv:void 0)}updateTopology(){this.originalGeometry.dispose(),this.originalGeometry=Ke.buildLevel(this.subdivPointer,!0,this.smoothShading?this.phongAngle:-1),this.subdividedGeometry&&(this.subdividedGeometry.dispose(),this.subdividedGeometry=Ke.buildLevel(this.subdivPointer,!1,this.smoothShading?this.phongAngle:-1)),this.localGeometry=this.subdividedGeometry??this.originalGeometry}raycast(e,t){let o=this.localGeometry;this.localGeometry=this.originalGeometryNew,ht.prototype.raycast.call(this,e,t),this.localGeometry=o}activateSVDCompensation(){!this.hasNonUniformScale||(this.matrix.copy(this.matrixWorldRigid),this.hiddenMatrixOld.copy(this.hiddenMatrix),this.hiddenMatrix.copy(this.parent.matrixWorld).invert())}deactivateSVDCompensation(){!this.hasNonUniformScale||(this.updateMatrix(),this.hasNonUniformScale=void 0,this.hiddenMatrix.copy(this.hiddenMatrixOld))}calcBoundingBox(){let e=this.originalGeometry;e.boundingSphere===null&&(e.boundingSphere=new Zr.Sphere,this.subdividedGeometry&&(this.subdividedGeometry.boundingSphere=e.boundingSphere));let t=e.attributes.position,o=e.boundingSphere.center;Gr.setFromBufferAttribute(t),Gr.getCenter(o),e.boundingSphere.radius=o.distanceTo(Gr.max),isNaN(e.boundingSphere.radius)&&console.error('THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The "position" attribute is likely to have NaN values.',this),Gr.getSize(Ls),this.hasNonUniformScale&&Ls.divide(this.scale);let i={width:Ls.x,height:Ls.y,depth:Ls.z};return this.geometry.userData.parameters=i,i}updateBoundingSphere(e){let t=this.originalGeometry;Gr.min.set(e[0],e[2],e[4]),Gr.max.set(e[1],e[3],e[5]),this.hasNonUniformScale&&(Gr.min.applyMatrix4(this.shearScaleInv),Gr.max.applyMatrix4(this.shearScaleInv)),t.boundingSphere===null&&(t.boundingSphere=new Zr.Sphere);let o=t.boundingSphere.center;Gr.getCenter(o),t.boundingSphere.radius=o.distanceTo(Gr.max)}freeSubdivPointer(){this.subdivPointer&&(Ke.freeSubdivPointer(this.subdivPointer),this.subdivPointer=0),this.localGeometry=void 0,this.originalGeometry?.dispose(),this.subdividedGeometry?.dispose()}dispose(){super.dispose(),this.freeSubdivPointer()}updateByPatchedOpGeometry(e,t,o){super.updateByPatchedOpGeometry(e,t,o),this.localGeometry&&this.createGeometryByControls(t)}};var Rr=require("three"),Wh=-1,__=1,qh={x:[1,0,0],"-x":[-1,0,0],y:[0,1,0],"-y":[0,-1,0],z:[0,0,1],"-z":[0,0,-1]},$h={polygon_center:0,edge:1,vertex:2},Ms=(n,r)=>(e,t)=>!r||e===0||n===0?0:n*t/100,me=(n,r)=>{let e=Math.abs(r),t=e*-1;return(n-Wh)*(e-t)/(__-Wh)+t};function Yh(n){let r=[],e={};for(var t=0,o=n.length;t<o;t++){var i=JSON.stringify(n[t].pos.map(s=>Math.round(s*1e4)/1e4));e[i]||(r.push(n[t]),e[i]=!0)}return r}var T_=new Rr.Vector3,Tl=new Rr.Vector3,O_=new Rr.Vector3,A_=new Rr.Vector3;function vi(n,r){let e=O_.fromArray(n),t=A_.fromArray(r);Tl.copy(t).sub(e);let o=Tl.length();return Tl.normalize().multiplyScalar(o*.5),T_.copy(e).add(Tl).toArray()}var er=new Rr.Triangle,Ol=new Rr.Vector3,Al=new Rr.Vector3,tn=new Rr.Vector3;function Xh(n){let r=[];for(let e=0;e<=n.index.count;e++)if(Ol.fromArray(n.index.array,e*3),er.setFromAttributeAndIndices(n.attributes.position,Ol.x,Ol.y,Ol.z),er.getNormal(Al),er.getMidpoint(tn),!(isNaN(tn.x)||isNaN(tn.y)||isNaN(tn.z))){let{a:t,b:o,c:i}=er,s=t.toArray(),l=o.toArray(),c=i.toArray(),u=t.distanceTo(o),a=o.distanceTo(i),d=i.distanceTo(t),p=vi(s,l),f=vi(l,c),m=vi(c,s),h=[u,a,d],y=Math.max(...h),g=h.filter(b=>Math.round(b)===Math.round(y)).length>1,v=[],w=er.getMidpoint(tn).toArray();y===u&&!g&&(v=[f,m,m],w=p),y===a&&!g&&(v=[p,m,m],w=f),y===d&&!g&&(v=[p,f,f],w=m),g&&(v=[p,f,m]),r.push({vertices:[s,l,c],faceCenters:v,midpoint:w,norm:er.getNormal(Al).toArray()})}return r}function Kh(n){let r=[],{position:e}=n.attributes;for(let t=0;t<e.count;t++){er.setFromAttributeAndIndices(e,t*3,t*3+1,t*3+2),er.getNormal(Al),er.getMidpoint(tn);let o=er.a.toArray(),i=er.b.toArray(),s=er.c.toArray();r.push({vertices:[o,i,s],faceCenters:[vi(o,i),vi(i,s),vi(s,o)],midpoint:tn.toArray(),norm:Al.toArray()})}return r}var P_=4,I_=.5,Sd=n=>.5*(1-Math.cos(n*Math.PI)),wd=class{constructor(){this.perlin=new Array(4095+1)}noise(r,e=0,t=0){if(this.perlin==null){this.perlin=new Array(4095+1);for(let g=0;g<4095+1;g++)this.perlin[g]=Math.random()}r<0&&(r=-r),e<0&&(e=-e),t<0&&(t=-t);let o=Math.floor(r),i=Math.floor(e),s=Math.floor(t),l=r-o,c=e-i,u=t-s,a,d,p=0,f=.5,m,h,y;for(let g=0;g<P_;g++){let v=o+(i<<4)+(s<<8);a=Sd(l),d=Sd(c),m=this.perlin[v&4095],m+=a*(this.perlin[v+1&4095]-m),h=this.perlin[v+16&4095],h+=a*(this.perlin[v+16+1&4095]-h),m+=d*(h-m),v+=256,h=this.perlin[v&4095],h+=a*(this.perlin[v+1&4095]-h),y=this.perlin[v+16&4095],y+=a*(this.perlin[v+16+1&4095]-y),h+=d*(y-h),m+=Sd(u)*(h-m),p+=m*f,f*=I_,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 p}noiseSeed(r){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(r),this.perlin=new Array(4095+1);for(let t=0;t<4095+1;t++)this.perlin[t]=e.rand()}},Zh=wd;var Si=require("three");var Qh=new Si.Vector3,Jh=new Si.Matrix4,ey=new Si.Ray;function ty(n){let r=!1;return n.scene.objects.traverse((e,t)=>{t.type==="Mesh"&&t.geometry.type==="TextGeometry"&&(r=!0)}),r}var bi=class extends Pt{constructor(e,t,o){super(e,t,o);this.data=t}get textGeometry(){return this.geometry}get charWidths(){return this.textGeometry.charWidths}get charCoords(){return this.textGeometry.charCoords}get wrappedText(){return this.textGeometry.wrappedText}get font(){return this.textGeometry.font}get initialOffsetY(){let e=this.dataPatched;return this.font?.getLineInitialOffsetY(this.lineHeight,this.wrappedText.length,e.geometry.height,this.fontScale,e.geometry.verticalAlign)??0}get fontScale(){let e=this.dataPatched;return this.font?e.geometry.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(){let e=this.dataPatched;return e.geometry.fontSize*e.geometry.lineHeight}raycast(e,t){let{matrixWorld:o}=this;if(!isNaN(e.ray.origin.x)&&(Jh.copy(o).invert(),ey.copy(e.ray).applyMatrix4(Jh),ey.intersectBox(this.singleBBox,Qh))){let i=Qh.applyMatrix4(o),s=e.ray.origin.distanceTo(i);t.push({distance:s,point:i.clone(),object:this})}}};var It=1e-4,Vr,ny,iy,sy,ry=new Ce.Vector3,oy=new Ce.Vector3;ri.then(n=>{Vr=n,ny=[Vr.get_face_center,Vr.get_edge_midpoint,Vr.get_vertex_position],iy=[Vr.get_face_normal,Vr.get_edge_normal,Vr.get_vertex_normal],sy=[Vr.face_count,Vr.edge_count,Vr.vertex_count]});var C_=new Ce.Matrix4,N_=new Ce.Matrix4,Oo=new Ce.Vector3,rn=new Ce.Vector3,Bs=new Ce.Vector3,_d=new Ce.Vector3,E_=new Ce.Vector3,L_=new Ce.Vector3;var Qr=new Zh,_i=class extends kn(Ce.Object3D){constructor(e,t){super();this.parameters=t;this.objectForSample=void 0;this._pendingMediaLoad=!1;this.object=e}resetOnMove(){this.removeFromParent(),this.parent=null}expandClones(e){if(this.parent===null)this.updateState(this.parameters,e);else for(let t of this.children)t instanceof Yr&&t.expand()}invalidateTransform(e){this.matrixWorldNeedsUpdate=!0,this.traverse(t=>{t instanceof Yr&&t.object===e&&(t.matrixWorldNeedsUpdate=!0)})}onObjUpdateMatrix(){this.parameters.type!=="toObject"&&(this.matrixWorldNeedsUpdate=!0)}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)}for(let e of this.children)e.updateMatrix(),e.hasNonUniformScale&&(e.updateMatrixWorld(),e.updateMatrixWorldSVD())}_updateCount(e){let t;if(e!==void 0?t=e:t=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&&(t=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.children;if(o.length===t)return;if(o.length<t)for(let i=0,s=t-o.length;i<s;++i){let l=new Yr(this.object);l.expand(),this.add(l)}else for(let i=0,s=o.length-t;i<s;++i)this.remove(o[i])}else{if(this.children.length===t)return;if(this.children.length<t)for(let o=0,i=t-this.children.length;o<i;++o){let s=new Yr(this.object);s.expand(),this.add(s)}else for(let o=0,i=this.children.length-t;o<i;++o)this.remove(this.children[0])}}_updateRadial(e){let t=e.radial,o=t.start*Ce.MathUtils.DEG2RAD,i=t.end*Ce.MathUtils.DEG2RAD,s=o-i,l=new Ce.Euler(t.rotation[0],t.rotation[1],t.rotation[2]),c;switch(t.axis){case"z":c=new Ce.Vector3(0,0,1);break;case"y":c=new Ce.Vector3(0,1,0);break;default:case"x":c=new Ce.Vector3(1,0,0);break}let u=e.randomnessObject??Or.defaultData([1,1,1]).randomnessObject,a=u.noiseType==="perlin";Qr.noiseSeed(u.seed);let d=qa((0,wi.default)(u.seed)),p=Ms(u.strength,this.parameters.randomness);for(let[f,m]of this.children.entries()){let h=f*(u.freqScale/10)+u.movement,y=a?Qr.noise(h):d(h,h);m.scale.x=t.scale[0]+p(f,me(y,u.scale[0]))||It,m.scale.y=t.scale[1]+p(f,me(y,u.scale[1]))||It,m.scale.z=t.scale[2]+p(f,me(y,u.scale[2]))||It,m.position.setScalar(0);let g=s/e.count*f-o;switch(t.axis){case"x":m.rotation.set(0,g,0);break;case"y":m.rotation.set(0,0,g);break;case"z":m.rotation.set(g,0,0);break}m.translateOnAxis(c,t.radius),m.position.x+=t.position[0]+p(f,me(y,u.position[0])),m.position.y+=t.position[1]+p(f,me(y,u.position[1])),m.position.z+=t.position[2]+p(f,me(y,u.position[2]));let v=p(f,me(y,u.rotation[0])),w=p(f,me(y,u.rotation[1])),b=p(f,me(y,u.rotation[2]));t.alignment===!0?(m.rotation.x+=l.x+v,m.rotation.y+=l.y+w,m.rotation.z+=l.z+b):m.rotation.set(l.x+v,l.y+w,l.z+b)}}_updateLinear(e){if(e.type!=="linear")throw new Error;let t=e.linear,o=new Ce.Euler(t.rotation[0],t.rotation[1],t.rotation[2]),i=e.randomnessObject??Or.defaultData([1,1,1]).randomnessObject,s=i.noiseType==="perlin";Qr.noiseSeed(i.seed);let l=qa((0,wi.default)(i.seed)),c=Ms(i.strength,this.parameters.randomness);for(let[u,a]of this.children.entries()){let d=u*(i.freqScale/10)+i.movement,p=s?Qr.noise(d):l(d,d),f=c(u,me(p,i.rotation[0])),m=c(u,me(p,i.rotation[1])),h=c(u,me(p,i.rotation[2]));a.scale.x=1+(t.scale[0]-1)*u+c(u,me(p,i.scale[0]))||It,a.scale.y=1+(t.scale[1]-1)*u+c(u,me(p,i.scale[1]))||It,a.scale.z=1+(t.scale[2]-1)*u+c(u,me(p,i.scale[2]))||It,a.rotation.x=o.x*u+f,a.rotation.y=o.y*u+m,a.rotation.z=o.z*u+h,a.position.x=t.position[0]*u+c(u,me(p,i.position[0])),a.position.y=t.position[1]*u+c(u,me(p,i.position[1])),a.position.z=t.position[2]*u+c(u,me(p,i.position[2]))}}_updateGrid(e){let t=0,o=e.grid,i=e.randomnessObject??Or.defaultData([1,1,1]).randomnessObject,s=Ms(i.strength,this.parameters.randomness),l=i.noiseType==="perlin";Qr.noiseSeed(i.seed);let c=tm((0,wi.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 Ce.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 d=0;d<o.count[0];d++)for(let p=0;p<o.count[1];p++)for(let f=0;f<o.count[2];f++){let m=[(d+1)*(i.freqScale/10)+i.movement,(p+1)*(i.freqScale/10)+i.movement,(f+1)*(i.freqScale/10)+i.movement],h=l?Qr.noise(...m):c(...m),y=this.children[t++];y.scale.x=1+s(t,me(h,i.scale[0]))||It,y.scale.y=1+s(t,me(h,i.scale[1]))||It,y.scale.z=1+s(t,me(h,i.scale[2]))||It;let g=s(t,me(h,i.rotation[0])),v=s(t,me(h,i.rotation[1])),w=s(t,me(h,i.rotation[2]));y.rotation.set(g,v,w),y.position.x=o.size[0]*d-a.x+s(t,me(h,i.position[0])),y.position.y=o.size[1]*p-a.y+s(t,me(h,i.position[1])),y.position.z=o.size[2]*f-a.z+s(t,me(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 d=0;d<o.count[2];d++){let p=[(u+1)*(i.freqScale/10)+i.movement,(a+1)*(i.freqScale/10)+i.movement,(d+1)*(i.freqScale/10)+i.movement],f=l?Qr.noise(...p):c(...p),m=this.children[t++];m.scale.x=1+s(t,me(f,i.scale[0]))||It,m.scale.y=1+s(t,me(f,i.scale[1]))||It,m.scale.z=1+s(t,me(f,i.scale[2]))||It;let h=s(t,me(f,i.rotation[0])),y=s(t,me(f,i.rotation[1])),g=s(t,me(f,i.rotation[2]));m.rotation.set(h,y,g),m.position.x=o.size[0]*u+s(t,me(f,i.position[0])),m.position.y=-o.size[1]*a+s(t,me(f,i.position[1])),m.position.z=-o.size[2]*d+s(t,me(f,i.position[2]))}}_updateToObject(e){if(e.type!=="toObject")throw new Error;let{toObject:t}=e,o=new Ce.Euler(t.rotation[0],t.rotation[1],t.rotation[2]),i=e.randomnessObject??Or.defaultData([1,1,1]).randomnessObject,s=i.noiseType==="perlin";Qr.noiseSeed(i.seed);let l=qa((0,wi.default)(i.seed)),c=Ms(i.strength,this.parameters.randomness);if(!t.object){for(let[,g]of this.children.entries())g.position.set(0,0,0),g.scale.setScalar(1),g.rotation.set(0,0,0);this.objectForSample=void 0;return}if(!this.objectForSample)return;if(this.objectForSample instanceof bi)if(!this.objectForSample.font?.isLoaded||this.objectForSample.geometry.attributes.position===void 0){this._pendingMediaLoad=!0;return}else this._pendingMediaLoad=!1;let u=this.getSubdivData(),a=[],d=g=>{let v=g.length,w=g.map(A=>A[0]).reduce((A,_)=>A+_,0),b=g.map(A=>A[1]).reduce((A,_)=>A+_,0),S=g.map(A=>A[2]).reduce((A,_)=>A+_,0);return[w/v,b/v,S/v]},p=g=>Math.round(g*1e6)/1e6;u.forEach(g=>{let v=u.filter(w=>p(g.pos[0])===p(w.pos[0])&&p(g.pos[1])===p(w.pos[1])&&p(g.pos[2])===p(w.pos[2]));v.length>1?a.push({pos:g.pos,norm:d(v.map(w=>w.norm))}):a.push(g)});let f=Yh(a);if(u.length>0){let g=Math.round(f.length*t.count/100);this._updateCount(g)}this.objectForSample.updateMatrixWorld();let m=new $a(this.objectForSample).build(),h=qh[t.axis],y=this.children;m.setRandomGenerator((0,wi.default)(this.object.uuid+t.seed));for(let[g,v]of y.entries()){let w=g*(i.freqScale/10)+i.movement,b=s?Qr.noise(w):l(w,w),S=c(g,me(b,i.rotation[0])),A=c(g,me(b,i.rotation[1])),_=c(g,me(b,i.rotation[2]));t.spreadType==="random"?m.sample(Bs,_d):(f.length&&(Bs.fromArray(f[g].pos),_d.fromArray(f[g].norm)),this.objectForSample instanceof en&&Bs.applyMatrix4(C_.copy(this.objectForSample.matrixWorld).invert())),Bs.applyMatrix4(this.object.hiddenMatrix.clone().invert()),v.position.copy(Bs),Oo.fromArray(h);let x=t.align==="normal"?_d:this.object.getWorldDirection(L_),P=rn.fromArray(t.position);rn.x+=rn.x+c(g,me(b,i.position[0])),rn.y+=rn.y+c(g,me(b,i.position[1])),rn.z+=rn.z+c(g,me(b,i.position[2]));let O=Math.acos(x.dot(Oo)),I=E_.crossVectors(Oo,x).normalize(),T=N_.makeRotationAxis(I,O),N=x.clone().cross(this.object.up).normalize(),L=N.clone().cross(x).normalize(),U=new Ce.Matrix4().makeBasis(N,x,L),K=new Ce.Vector3(Oo.y,Oo.z,Oo.x).normalize(),J=K.clone().cross(Oo).normalize(),se=new Ce.Matrix4().makeBasis(K,Oo,J).invert(),z=new Ce.Matrix4().multiplyMatrices(U,se);v.rotation.setFromRotationMatrix(z),P.applyMatrix4(T),v.position.add(P),v.rotation.x=v.rotation.x+o.x+S,v.rotation.y=v.rotation.y+o.y+A,v.rotation.z=v.rotation.z+o.z+_,v.scale.setScalar(1),v.scale.x=v.scale.x+t.scale[0]+c(g,me(b,i.scale[0]))||It,v.scale.y=v.scale.y+t.scale[1]+c(g,me(b,i.scale[1]))||It,v.scale.z=v.scale.z+t.scale[2]+c(g,me(b,i.scale[2]))||It,v.scale.multiply(this.object.scale),v.hiddenMatrix=this.object.hiddenMatrix}}getSubdivData(){if(!this.objectForSample)return[];let e=this.parameters.toObject.spreadType;if(e==="random")return[];if(this.objectForSample instanceof en){let t=this.objectForSample,o=$h[e],i=sy[o],s=ny[o],l=iy[o],c=[],u=i(t.subdivPointerNew);for(let a=0;a<=u-1;a++){let d=s(t.subdivPointerNew,a),p=l(t.subdivPointerNew,a);ry.fromArray(d).applyMatrix4(t.matrixWorld),oy.fromArray(p),c.push({pos:ry.toArray(),norm:oy.toArray()})}return c}else return(this.objectForSample.geometry.index?Xh(this.objectForSample.geometry):Kh(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()}updateState(e,t){if(this.parameters=Vo(e),this.parameters.type!=="toObject")(this.parent===null||this.parent!==this.object)&&(this.removeFromParent(),this.object.parent?.add(this),this.matrix=this.object.matrix,this.hiddenMatrix=this.object.hiddenMatrix,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1);else if(this.parent===null||this.parent.uuid!==this.parameters.toObject.object){this.removeFromParent();let o=t.find(this.parameters.toObject.object);o instanceof ht?this.objectForSample=o:this.objectForSample=void 0,this.matrix=new Ce.Matrix4,this.hiddenMatrix=new Ce.Matrix4,this.matrixWorldNeedsUpdate=!0,this.matrixAutoUpdate=!1,o&&o.add(this)}this.update()}get pendingMediaLoad(){return this._pendingMediaLoad}};var nr=require("three");var He=require("three");var xt=require("three");var ay=require("three"),jr=n=>{var r;return r=class extends n{},r.geometryHelper=new ay.BoxGeometry(30,30,30),r};var St=require("three"),Pl=new St.Ray,Td=new St.Sphere,ly=new St.Matrix4,Fr=(n,r,e,t,o=!1)=>{let i=r,s=n.matrixWorld;if(i.boundingSphere===null&&i.computeBoundingSphere(),Td.copy(i.boundingSphere),Td.applyMatrix4(s),e.ray.intersectsSphere(Td)===!1||(ly.copy(s).invert(),Pl.copy(e.ray).applyMatrix4(ly),i.boundingBox!==null&&Pl.intersectsBox(i.boundingBox)===!1))return;let l,c,u,a,d=i.index,p=i.attributes.position,f=i.drawRange,m,h;if(o===!1){let g=Math.max(0,f.start),v=Math.min(d.count,f.start+f.count);for(m=g,h=v;m<h;m+=3)if(c=d.getX(m),u=d.getX(m+1),a=d.getX(m+2),l=y(n,e,Pl,p,c,u,a),l){l.faceIndex=Math.floor(m/3),t.push(l);return}}else{let v=i.attributes.position,w=new St.Vector3,b=new St.Vector3,S=new St.Vector3,A=new St.Vector3,_=2,P=1/((n.scale.x+n.scale.y+n.scale.z)/3),O=P*P,I=Math.max(0,f.start),T=Math.min(v.count,f.start+f.count);for(let N=I,L=T-1;N<L;N+=_){if(w.fromBufferAttribute(v,N),b.fromBufferAttribute(v,N+1),Pl.distanceSqToSegment(w,b,A,S)>O)continue;A.applyMatrix4(n.matrixWorld);let K=e.ray.origin.distanceTo(A);K<e.near||K>e.far||t.push({distance:K,point:S.clone().applyMatrix4(n.matrixWorld),object:n})}}function y(g,v,w,b,S,A,_){let x=new St.Vector3,P=new St.Vector3,O=new St.Vector3,I=new St.Vector3,T=new St.Vector3;if(x.fromBufferAttribute(b,S),P.fromBufferAttribute(b,A),O.fromBufferAttribute(b,_),w.intersectTriangle(x,P,O,!1,I)===null)return null;T.copy(I),T.applyMatrix4(g.matrixWorld);let L=v.ray.origin.distanceTo(T);return L<v.near||L>v.far?null:{faceIndex:1,distance:L,point:T.clone(),object:g}}};var Il=new xt.Vector3,tr=new xt.Camera,Od=class extends xt.LineSegments{constructor(e){let t=new xt.BufferGeometry,o=new xt.LineBasicMaterial({color:16777215,vertexColors:!0,toneMapped:!1}),i=[],s=[],l={},c=new xt.Color(15711266),u=new xt.Color(15711266),a=new xt.Color(2857471);d("n1","n2",c),d("n2","n4",c),d("n4","n3",c),d("n3","n1",c),d("f1","f2",c),d("f2","f4",c),d("f4","f3",c),d("f3","f1",c),d("n1","f1",c),d("n2","f2",c),d("n3","f3",c),d("n4","f4",c),d("p","n1",u),d("p","n2",u),d("p","n3",u),d("p","n4",u),d("u1","u2",a),d("u2","u3",a),d("u3","u1",a);function d(f,m,h){p(f,h),p(m,h)}function p(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)}t.setAttribute("position",new xt.Float32BufferAttribute(i,3)),t.setAttribute("color",new xt.Float32BufferAttribute(s,3));super(t,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,t=this.pointMap,o=!0;tr.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;gr("n1",t,e,tr,-i,-s,l),gr("n2",t,e,tr,i,-s,l),gr("n3",t,e,tr,-i,s,l),gr("n4",t,e,tr,i,s,l);let c=l;gr("f1",t,e,tr,-i,-s,c),gr("f2",t,e,tr,i,-s,c),gr("f3",t,e,tr,-i,s,c),gr("f4",t,e,tr,i,s,c);let u=c,a=.5;gr("u1",t,e,tr,i*.7*a,s*1.1,u),gr("u2",t,e,tr,-i*.7*a,s*1.1,u),gr("u3",t,e,tr,0,s*(1.1+.9*a),u),e.getAttribute("position").needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function gr(n,r,e,t,o,i,s){Il.set(o,i,s).unproject(t);let l=r[n];if(l!==void 0){let c=e.getAttribute("position");for(let u=0,a=l.length;u<a;u++)c.setXYZ(l[u],Il.x,Il.y,Il.z)}}var Cl=class extends jr(Od){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,t){Fr(this.object,this.geometry,e,t,!0)}};var Ds=require("three");var Nl;(r=>r.is=e=>"objectHelper"in e)(Nl||(Nl={}));var Ao=(n,r)=>class extends Xa(n){constructor(){super(...arguments);this.objectHelper=new r(this);this.gizmos={}}get geometryHelper(){return r.geometryHelper}raycast(o,i){this.objectHelper.raycast(o,i)}showGizmos(){for(let o in this.gizmos){let i=this.gizmos[o];i instanceof Ds.Box3Helper&&(i.visible=!0)}}updateEntityBoxSize(o,i){this.objectHelper.visible&&this.geometryHelper instanceof Ds.BoxGeometry?(o.setScalar(0),i.set(this.geometryHelper.parameters.width,this.geometryHelper.parameters.height,this.geometryHelper.parameters.height).multiplyScalar(.5)):super.updateEntityBoxSize(o,i)}hideGizmos(){for(let o in this.gizmos){let i=this.gizmos[o];i instanceof Ds.Box3Helper&&(i.visible=!1)}}};var Ti=new He.Vector3,Ad=new He.Vector3,Jr=class extends Ao(He.Camera,Cl){constructor(e="",t={...gn.defaultData,name:""}){super();this._cameraType="OrthographicCamera";this.targetOffset=Lo.DefaultTargetOffset;this.isUpVectorFlipped=!1;this.angleOffsetFromUp=0;this.super_Entity(e,t),this.matrixAutoUpdate=!0,this.width=window.innerWidth,this.height=window.innerHeight;let o=this.width,i=this.height;this.orthoCamera=new He.OrthographicCamera(o*-.5,o*.5,i*.5,i*-.5,-5e4,1e4),this.perspCamera=new He.PerspectiveCamera(45,o/i,50,1e4),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.focus=this.perspCamera.focus,this.filmGauge=this.perspCamera.filmGauge,this.filmOffset=this.perspCamera.filmOffset,this.objectHelper.update()}get isPerspectiveCamera(){return this.cameraType==="PerspectiveCamera"}get isOrthographicCamera(){return!this.isPerspectiveCamera}get cameraType(){return this._cameraType}set fov(e){this.perspCamera.fov=e}get fov(){return this.perspCamera.fov}setNear(e,t){e==="PerspectiveCamera"?this.perspCamera.near=t:this.orthoCamera.near=t}setZoom(e,t){t>=0&&(e==="PerspectiveCamera"?this.perspCamera.zoom=t:this.orthoCamera.zoom=t)}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(Ti),this.targetOffset=Ti.distanceTo(e)}getTarget(e=new He.Vector3){return this.getWorldDirection(Ad),this.getWorldPosition(Ti),Ad.multiplyScalar(this.targetOffset),e.copy(Ti).add(Ad),e}getDistanceToTarget(){let e=this.getTarget();return this.getWorldPosition(Ti),Ti.distanceTo(e)}updateUp(){let e=this.getWorldQuaternion(new He.Quaternion),t=new He.Vector3(0,0,1).applyQuaternion(e),o=new He.Vector3().copy(He.Object3D.DefaultUp);this.isUpVectorFlipped&&o.negate(),o.applyQuaternion(e);let i=new He.Vector3().copy(He.Object3D.DefaultUp).projectOnPlane(t),s=new He.Vector3().crossVectors(i,o).dot(t)>=0?1:-1;this.angleOffsetFromUp=i.angleTo(o)*s}updateTransformState(e){let t=super.updateTransformState(e);return e.isUpVectorFlipped!==void 0&&(this.isUpVectorFlipped=e.isUpVectorFlipped),this.updateUp(),t}getViewFrontToObject(e){let t=e.getWorldPosition(new He.Vector3),i=e.getWorldDirection(new He.Vector3).multiplyScalar(this.targetOffset);return{position:t.clone().add(i),target:t}}getViewToObject(e){let t=e.getWorldPosition(new He.Vector3),i=this.getWorldDirection(new He.Vector3).multiplyScalar(this.targetOffset);return{position:t.clone().sub(i),target:t}}setViewplaneSize(e,t){this.left=-e*.5,this.right=e*.5,this.top=t*.5,this.bottom=-t*.5,this.aspect=e/t,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,t,o,i,s,l){this._cameraType==="PerspectiveCamera"?this.perspCamera.setViewOffset(e,t,o,i,s,l):this.orthoCamera.setViewOffset(e,t,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,t){super.updateWorldMatrix(e,t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}copy(e,t){return super.copy(e,t),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 t={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 Un(t,e)}updateCameraSubtype(e,t){let o=e==="perspective"?"PerspectiveCamera":"OrthographicCamera";t.zoom!==void 0&&this.setZoom(o,t.zoom),t.near!==void 0&&this.setNear(o,t.near),t.fov!==void 0&&o==="PerspectiveCamera"&&(this.fov=t.fov)}updateState(e){this.updateCameraState(e)}updateCameraState(e){this.updateState_Entity(e,{}),e.far!==void 0&&(this.far=e.far),e.orthographic!==void 0&&this.updateCameraSubtype("orthographic",e.orthographic),e.perspective!==void 0&&this.updateCameraSubtype("perspective",e.perspective),e.type!==void 0&&(this.cameraType=e.type),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()}updateByPatchedOp(e,t,o){super.updateByPatchedOp(e,t,o),e.path.length===1&&e.type===0&&this.updateCameraSubtype(e.path[0],e.props)}toState(e){return{...super.toState(e),...this.toCameraState(e),type:this.cameraType}}};var on=require("three");var cy=new on.Matrix4;var rr=class extends yr{constructor(e,t,o){super(e,t);this.data=t;this.meshSetAddresses=[];this.needsTransformForDownstream=!1;this.geometry=new on.BufferGeometry;this.geometry.userData.parameters={width:0,height:0,depth:0}}get booleanOp(){return this.data.geometry.operation}get phongAngle(){return this.data.geometry.phongAngle??45}get isLOD(){return this.recomputeBoolean(),!1}updateByPatchedOp(e,t,o){super.updateByPatchedOp(e,t,o),e.path.length===1&&e.path[0]==="geometry"&&e.type===0&&e.props.operation!==void 0&&(this.freeBooleanPointer(),this.resetBBoxNeedsUpdate())}freeBooleanPointer(){super.freeBooleanPointer(),this.geometry.dispose()}recomputeBoolean(e,t=!0){if(this.booleanMeshSetAddress!==-1&&!e)return;for(let i=0;i<this.children.length;i++){let s=this.children[i];s instanceof rr&&s.recomputeBoolean(e===!0,t)}this.meshSetAddresses=[];for(let i=0;i<this.children.length;i++){let s=this.children[i];if(s instanceof ht&&s.dataPatched.visible===!0&&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=ur.getMeshSet(s.geometry,e===!0,t)),s.booleanMeshSetAddress===-1)return;ur.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1}else s instanceof rr&&s.needsTransformForDownstream===!0?(ur.transformMeshSet(s.booleanMeshSetAddress,s.matrix),s.needsTransformForDownstream=!1):s.booleanWasTransformed===!0&&(cy.multiplyMatrices(s.matrix,s.booleanMatrixInvOld),ur.transformMeshSet(s.booleanMeshSetAddress,cy),s.booleanMatrixInvOld.copy(s.matrix).invert(),s.booleanWasTransformed=!1);this.meshSetAddresses.push(s.booleanMeshSetAddress)}}if(this.meshSetAddresses.length===0){this.geometry.setAttribute("position",new on.Float16BufferAttribute([],0)),this.geometry.setDrawRange(0,0);return}if(e===!0)return ur.calcBooleanTopological(this.meshSetAddresses,this.booleanOp);let o=this.geometry;o.dispose(),this.geometry=new on.BufferGeometry,this.geometry.userData=o.userData,this.geometry.boundingSphere=o.boundingSphere;try{this.booleanMeshSetAddress=ur.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,gi(this),xi(this)}dispose(){super.dispose(),this.geometry.dispose()}};var uy=require("three");var dy;(r=>{function n(e){return ke.is(e)&&e instanceof uy.Light}r.is=n})(dy||(dy={}));var Oi=(n,r)=>class extends Ao(n,r){updateState_Light(t,o){this.updateState_Entity(t,o),t.color!==void 0&&(this.color=o.shared.color(t.color)),t.intensity!==void 0&&(this.intensity=t.intensity),t.depth!==void 0&&(this.shadow.camera.far=t.depth,this.shadow.needsUpdate=!0),t.shadows!==void 0&&(this.castShadow=t.shadows)}};var Gs=n=>n instanceof ht,Rs=n=>n!==null&&n instanceof rr,py=n=>n instanceof Jr;var fy=n=>Nl.is(n);var hy=require("three");var my=require("three");var Po=class extends jr(my.AxesHelper){constructor(e,t=15){super(t);this.object=e;this.object.updateMatrixWorld(),this.name=`EmptyObjectHelper: ${e.uuid}`,this.matrix=e.matrixWorld,this.matrixAutoUpdate=!1}raycast(e,t){Fr(this.object,Po.geometryHelper,e,t)}update(){}};var Vs=class extends Ao(hy.Group,Po){constructor(r,e){super(),this.super_Entity(r,e),this.objectHelper.update()}updateState(r,e){this.updateState_Entity(r,e)}};var Fs=require("three");var yy=require("three");var Ai=class extends jr(yy.DirectionalLightHelper){constructor(e,t=15,o=10066329){super(e,t,o);this.object=e;this.added=!1;this.name=`DirectionalLightHelper: ${e.uuid}`}raycast(e,t){Fr(this.object,Ai.geometryHelper,e,t)}};var gy=require("three");var Pi=class extends jr(gy.PointLightHelper){constructor(e,t=15,o=6710886){super(e,t,o);this.object=e;this.name=`PointLightHelper: ${e.uuid}`}raycast(e,t){Fr(this.object,Pi.geometryHelper,e,t)}};var Ll=require("three");var El=class extends jr(Ll.SpotLightHelper){constructor(e,t=6710886){super(e,t);this.object=e;this.name=`SpotLightHelper: ${e.uuid}`}raycast(e,t){Fr(this.object,El.geometryHelper,e,t)}update(){if(this.object!==void 0){let e=El._vector,t=this.object.distance?this.object.distance:1e3,o=t*Math.tan(this.object.angle);this.cone.scale.set(o,o,t),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)}}},js=El;js._vector=new Ll.Vector3;function B_(n,r){n.shadow.camera.right=r/2,n.shadow.camera.left=-r/2,n.shadow.camera.top=r/2,n.shadow.camera.bottom=-r/2,n.shadow.needsUpdate=!0}var Ml=class extends Oi(Fs.DirectionalLight,Ai){constructor(r,e,t){super(),this.super_Entity(r,e),this.castShadow=!0,this.shadow.mapSize.width=2048,this.shadow.mapSize.height=2048,this.shadow.normalBias=1,this.layers.enable(3);let i=this.shadow.camera;i.top=1250,i.bottom=-1250,i.right=1250,i.left=-1250,i.near=-1e4,i.far=2500;let s=new Fs.CameraHelper(this.shadow.camera);s.visible=!1,this.gizmos.shadowmap=s}update(){this.shadow.camera.updateProjectionMatrix();for(let r in this.gizmos){let e=this.gizmos[r];e instanceof Fs.CameraHelper&&e.update()}}updateMatrixWorld(r){super.updateMatrixWorld(r),this.objectHelper&&this.objectHelper.update()}updateState(r,e){this.updateState_Light(r,e);let t=r.depth!==void 0&&r.depth!==this.shadow.camera.far||r.size!==void 0&&r.size/2!==this.shadow.camera.right;r.size!==void 0&&B_(this,r.size),r.shadowRadius!==void 0&&(this.shadow.radius=r.shadowRadius),r.shadowResolution!==void 0&&(this.shadow.mapSize.set(r.shadowResolution,r.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null)),t&&this.update()}};var Ut=require("three");var Bl=class extends Oi(Ut.PointLight,Pi){constructor(r,e,t){super(),this.super_Entity(r,e),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let i=this.shadow.camera;i.fov=90,i.aspect=1,i.near=100,i.far=2500;let s=new Ut.Vector3(-i.far+this.position.x,-i.far+this.position.y,-i.far+this.position.z),l=new Ut.Vector3(i.far+this.position.x,i.far+this.position.y,i.far+this.position.z),c=new Ut.Box3(s,l),u=new Ut.Box3Helper(c,new Ut.Color(16755200));u.visible=!1,this.gizmos.shadowmap=u,this.update()}update(){if(this.shadow&&(this.shadow.camera.updateProjectionMatrix(),this.gizmos))for(let r in this.gizmos){let e=this.gizmos[r];if(e instanceof Ut.Box3Helper){let t=this.shadow.camera,o=new Ut.Vector3(-t.far+this.position.x,-t.far+this.position.y,-t.far+this.position.z),i=new Ut.Vector3(t.far+this.position.x,t.far+this.position.y,t.far+this.position.z);e.box.set(o,i),e.updateMatrixWorld(!0)}}}updateMatrixWorld(r){super.updateMatrixWorld(r),this.objectHelper&&this.objectHelper.update()}updateState(r,e){this.updateState_Light(r,e),r.distance!==void 0&&(this.distance=r.distance),r.decay!==void 0&&(this.decay=r.decay),r.shadowRadius!==void 0&&(this.shadow.radius=r.shadowRadius),r.shadowResolution!==void 0&&(this.shadow.mapSize.set(r.shadowResolution,r.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null))}};var or=require("three");var xy=new or.Vector3,vy=new or.Vector3,by=new or.Quaternion,Dl=class extends Oi(or.SpotLight,js){constructor(r,e,t){super(),this.super_Entity(r,e),this.castShadow=!0,this.shadow.mapSize.width=1024,this.shadow.mapSize.height=1024,this.shadow.normalBias=1,this.layers.enable(3);let i=this.shadow.camera;i.fov=or.MathUtils.RAD2DEG*2*this.angle,i.aspect=1,i.near=100,i.far=2500;let s=new or.CameraHelper(this.shadow.camera);s.visible=!1,this.gizmos.shadowmap=s,this.update()}update(){this.shadow.camera.updateProjectionMatrix();for(let r in this.gizmos){let e=this.gizmos[r];e instanceof or.CameraHelper&&e.update()}}updateMatrixWorld(r){super.updateMatrixWorld(r),vy.setFromMatrixPosition(this.matrixWorld),by.setFromRotationMatrix(this.matrixWorld),xy.copy(this.up).applyQuaternion(by).negate().multiplyScalar(this.distance),this.target.position.copy(vy).add(xy),this.target.updateMatrixWorld(),this.objectHelper&&this.objectHelper.update()}updateState(r,e){this.updateState_Light(r,e),r.distance!==void 0&&(this.distance=r.distance),r.decay!==void 0&&(this.decay=r.decay),r.angle!==void 0&&(this.angle=r.angle),r.penumbra!==void 0&&(this.penumbra=r.penumbra),r.shadowRadius!==void 0&&(this.shadow.radius=r.shadowRadius),r.shadowResolution!==void 0&&(this.shadow.mapSize.set(r.shadowResolution,r.shadowResolution),this.shadow.map&&(this.shadow.map.dispose(),this.shadow.map=null))}};var Gl=class extends Pt{get forceComputeSize(){return!0}get shape(){return this.geometry.userData.shape}constructor(r,e,t){super(r,e,t)}updateEntityBoxSize(r,e){let t=this.geometry.getAttribute("position");t!==void 0?$c(t,this.geometry.drawRange.start,this.geometry.drawRange.count<1/0?this.geometry.drawRange.count:t.count,r,e):super.updateEntityBoxSize(r,e)}};var wy=require("three");var eo=class extends Ao(wy.Group,Po){constructor(e,t,o){super();t.type==="Instance"&&typeof e=="string"&&(t=this.transformAssignData(t,o)),this.super_Entity(e,t),this.objectHelper.update()}get isComponentRoot(){return this.data.type==="Component"&&typeof this.identity=="string"}get isInstanceRoot(){return this.data.type==="Instance"&&typeof this.identity=="string"}transformAssignData(e,t){let o=t.scene.data.objects.get(e.component);if(o){let i,s;for(let l of lo.rootOverrideProps)e[l]===void 0?(i===void 0&&(i={...e}),i[l]=o.data[l]):(s===void 0&&(s={}),s[l]=e[l]);return this.overrideData=s,i??e}return e}updateByOp(e,t,o,i){let s;if(this.isInstanceRoot&&!i&&(t=this.transformAssignData(t,o),e.type===0&&e.path.length===0&&this.component))for(let l of lo.rootOverrideProps)l in e.props&&e.props[l]===void 0&&(s===void 0&&(s={...e,props:{...e.props}}),s.props[l]=this.component.data[l]);super.updateByOp(s??e,t,o,i)}updateState(e,t){this.updateState_Entity(e,t)}expandInstanceChildren(e){let t=this.data;if(this.component===void 0){this.component=e.scene.find(t.component)??null;let o=!1;if(this.component!==this.oldComponent){if(this.oldComponent){let i=0;for(let s of this.children)if(ke.is(s))e.scene.disposeAndUnregisterEntityRecursivelyIfNotReregistered(s),Rl(s),i+=1;else break;this.children.splice(0,i)}o=!0}this.component&&_y(e,[this.uuid],t.overrides,this,this.component,this.component,0,o),this.oldComponent=this.component}}};function Rl(n){if(n.component){let r=n.component.instances.indexOf(n);r>=0&&n.component.instances.splice(r,1);for(let e of n.children)ke.is(e)&&Rl(e)}}function Sy(n,r,e,t){return n.component===r&&zi(n.identity,t)?n.overrideData===e?2:1:0}function _y(n,r,e,t,o,i,s,l){if(s>50)return!1;if(t.component!==o){if(t.component){let u=t.component.instances.indexOf(t);u>=0&&t.component.instances.splice(u,1)}o.instances.push(t),t.component=o}o instanceof eo&&o.isInstanceRoot&&o.expandInstanceChildren(n);let c=0;for(let u of o.children)if(ke.is(u)){let a=[...r,...typeof u.identity=="string"?[u.identity]:u.identity],d=xn.resolve(e,a,1),p=null,f;if(!l){let m=t.children[c];if(p=ke.is(m)?m:null,p!==null){let h=Sy(p,u,d,a);f=h>=1?p.stateSelection:void 0,h!==2&&(p=null)}if(p===null&&(p=n.scene.findInstance(a)??null,p!==null)){let h=Sy(p,u,d,a);if(f=h>=1?p.stateSelection:void 0,h!==2)p=null;else{let y=p.parent.children.indexOf(p);p.parent.children.splice(y,1),t.children.splice(c,0,p),p.parent===t?(y<=c&&console.error("not possible"),void 0):(p.parent=t,p.matrixWorldNeedsUpdate=!0,p.resetBBoxNeedsUpdate(),p.updateVisible(),n.pendingDeletes.delete(p),void 0)}}}if(p===null){let m=d?zr.apply(u.data,d):u.data;sr.is(m.type)&&(m={...m,type:"Empty"}),p=lr.createEntity(a,m,n),p.overrideData=d,t.add(p),t.children.splice(t.children.length-1,1),t.children.splice(c,0,p),p.updateState(p.data,n),f&&p.changeSelectedState(f,n),n.scene.registerInstanceAndSetUuid(p)}c+=1,_y(n,r,e,p,u,i,s+1,l)}if(!l){let u=c;for(;;){let a=t.children[c];if(ke.is(a))n.pendingDeletes.add(a);else break;c+=1}t.children.splice(u,c-u)}return!0}function D_(n,r,e){let t;return r.geometry.type==="TextGeometry"?new bi(n,r,e):(r.geometry.type==="SubdivGeometry"?t=new en(n,r,e):r.geometry.type==="VectorGeometry"?t=new Gl(n,r,e):r.geometry.type==="BooleanGeometry"?t=new rr(n,r,e):t=new Pt(n,r,e),t)}function Vl(n,r,e){return r.type==="Mesh"?D_(n,r,e):r.type==="Empty"?new Vs(n,r):r.type==="PointLight"?new Bl(n,r,e):r.type==="SpotLight"?new Dl(n,r,e):r.type==="DirectionalLight"?new Ml(n,r,e):r.type==="Component"||r.type==="Instance"?new eo(n,r,e):sr.is(r.type)?new Jr(n,r):(console.error(r),new Vs(n,r))}lr.createEntity=Vl;function G_(n,r,e){let t=Vl(n.identity,r,e),o=n.children,i=n.parent,s=n.component,l=n.instances,c=n.overrideData,u=n.uuid,a=n.stateSelection;n.dispose();for(let d of Object.keys(n))delete n[d];Object.setPrototypeOf(n,Object.getPrototypeOf(t));for(let d of Object.keys(t))n[d]=t[d];n.children=[...n.children,...o],n.parent=i,n.component=s,n.instances=l,n.uuid=u,n.overrideData=c,n.updateState(n.data,e),a&&n.changeSelectedState(a,e),n.resetBBoxNeedsUpdate()}lr.changeEntityProptotype=G_;lr.Cloner=_i;function Ty(n,r,e,t){n.updateByOp(r,e,t,!1)}var Ii=require("three");function Oy(n,r){let e=!1,t=r.getLayersOfType("transmission"),o=r.getLayersOfType("outline");return o.length>0&&(n.layers.set(8),t.length>0&&n.layers.enable(3),e=!0,xi(n),gi(n)),t.length===0&&o.length===0&&n.layers.set(0),e}function Ay(n,r){if(!r.layers)return!1;let e=!1,t=r.getLayersOfType("transmission"),o=r.getLayersOfType("outline");return t.length>0&&(n.layers.set(3),o.length>0&&n.layers.enable(8),e=!0),t.length===0&&o.length===0&&n.layers.set(0),e}function Py(n){let r=!1;return n.traverseEntity(e=>{if(e instanceof yr)if(Array.isArray(e.material))for(let t=0;t<e.material.length;t++)Oy(e,e.material[t])&&(r=!0);else Oy(e,e.material)&&(r=!0)}),r}function Iy(n){let r=!1;return n.traverseEntity(e=>{if(e instanceof yr)if(Array.isArray(e.material))for(let t=0;t<e.material.length;t++)Ay(e,e.material[t])&&(r=!0);else Ay(e,e.material)&&(r=!0)}),r}var V_=new Ii.Raycaster,j_=new Ii.Matrix4,F_=new Ii.Ray;function Cy(n,r,e){let t=n.cloner;if(t)for(let o of t.children){let i=j_.copy(o.matrixWorld).invert(),s=F_.copy(r.ray).applyMatrix4(i),l=n.matrixWorld;s.applyMatrix4(l);let c=V_;c.set(s.origin,s.direction),c.near=r.near,c.far=r.far,c.intersectObject(n,!1).length>0&&e.push({object:n})}}var U_=new nr.MeshBasicMaterial;U_.wireframe=!0;var Ny=new nr.Vector3,Pd=class extends nr.Scene{constructor(e,t){super();this.data=e;this.backupFog=new nr.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.geometryCacheChanged=!1;this.bgColor=new it(1,1,1,1);this.entityByUuid={};this.entityIdentityToEntity={};this.toExpandCloner=new Set;this.toUpdateCloner=new Set;this.needsRecomputeInstances=!1;this.ambientLight=new nr.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,t),this.matrixAutoUpdate=!1}markGeometryCacheDirty(){this.geometryCacheChanged=!0}markNeedsUpdateRendererDirty(){this.needsTransmissionDirty=!0,this.needsNormalDirty=!0}needsTransmission(){return this.needsTransmissionDirty&&(this._needsTransmission=Iy(this),this.needsTransmissionDirty=!1),this._needsTransmission}needsNormal(){return this.needsNormalDirty&&(this._needsNormal=Py(this),this.needsNormalDirty=!1),this._needsNormal}registerInstanceAndSetUuid(e){let t=e.identity.join("-"),o=this.entityIdentityToEntity[t];o&&(e.uuid=o.uuid),this.entityIdentityToEntity[t]=e,this.entityByUuid[e.uuid]=e}findInstance(e){return this.entityIdentityToEntity[e.join("-")]}getWithSortKey(e){let t=this.find(e);if(t===void 0)return;let o=[],i=t;for(;i!==this;){let s=i;i=i.parent;let l=i.children.indexOf(s);o.splice(0,0,l)}return{entity:t,sortKey:o}}getAllSorted(e){let t=[];for(let o of e){let i=this.getWithSortKey(o.id);i!==void 0&&t.push(i)}return t.sort((o,i)=>vu(o.sortKey,i.sortKey)),t.map(o=>o.entity)}nonExistOrDescendantOf(e,t){let o=this.find(e);if(o===void 0)return!0;for(;o;){if(o.uuid===t)return!0;o=o.parent}return!1}find(e){if(e===""||e===void 0)return;let t=this.entityByUuid[e];return t===void 0?this.getObjectByProperty("uuid",e):t}debugEnsureEntity(e){let t=this.find(e);if(t){if(Array.isArray(t.identity)&&this.findInstance(t.identity)===void 0){console.error("not found instance");debugger}}else{console.error("not found");debugger}}addPendingExpandCloner(e){this.toExpandCloner.add(e)}addPendingUpdateCloner(e){this.toUpdateCloner.add(e)}markToExpandCloner(e){this.toExpandCloner.add(e),e.traverseEntityAncestors(t=>{this.toExpandCloner.add(t)})}doPendingExpandCloner(){this.toExpandCloner.forEach(e=>{e.expandCloner(this)}),this.toExpandCloner.clear()}doPendingUpdateCloner(){this.toUpdateCloner.forEach(e=>{e.cloner?.update()}),this.toUpdateCloner.clear()}doPendingUpdates(){this.doPendingExpandCloner(),this.doPendingUpdateCloner()}updateTreeByOp(e,t){if(e.path.length===0&&e.type===7){let o=e.parent===null?this:this.find(e.parent);if(o===void 0)throw new Error("unexpected");let i=this.createObject(e.id,e.data,e.children,o,e.localIndex,t);i.updateVisible(),i.resetBBoxNeedsUpdate(),Gs(i)&&Rs(i.parent)&&(i.invalidateUpstreamBooleanData(),i.parent.invalidateDownstreamBooleanData().recomputeBoolean()),this.markNeedsRecomputeInstancesForAncessors(o),this.markNeedsRecomputeInstancesForChildren(i),this.markToExpandCloner(i)}else if(e.path.length===0&&e.type===8){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");this.markToExpandCloner(o),o.resetBBoxNeedsUpdate(),this.unregisterObject(o);let i=o.parent;this.markNeedsRecomputeInstancesForAncessors(i),this.markNeedsRecomputeInstancesForChildren(o),o.parent.remove(o),Rs(o.parent)&&(o.parent.invalidateUpstreamBooleanData(),o.parent.invalidateDownstreamBooleanData().recomputeBoolean()),Gs(o)&&(o.freeBooleanPointer(),i instanceof rr&&i.invalidateDownstreamBooleanData().recomputeBoolean()),this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(o)}else if(e.path.length===0&&e.type===9){let o=this.find(e.id);if(o===void 0)throw new Error("unexpected");this.markNeedsRecomputeInstancesForChildren(o);let i=o.parent;this.markNeedsRecomputeInstancesForAncessors(i),o.cloner?.resetOnMove(),this.markToExpandCloner(o);let s=e.parent===null?this:this.find(e.parent);if(s===void 0)throw new Error("unexpected");s.add(o),this.markNeedsRecomputeInstancesForAncessors(s),this.markToExpandCloner(o),o.invalidateClonerTransform(o),o.updateVisible(),o.resetBBoxNeedsUpdate();let l=e.localIndex;s.children.splice(l,0,s.children.pop()),Gs(o)&&(o.invalidateUpstreamBooleanData(),Rs(o.parent)?o.parent.invalidateDownstreamBooleanData().recomputeBoolean():i instanceof rr&&i.invalidateDownstreamBooleanData().recomputeBoolean())}this.markNeedsUpdateRendererDirty(),this.markGeometryCacheDirty()}updateEntityByOp(e,t,o,i){if(t.type===0&&(("overrides"in t.props||"component"in t.props)&&this.markNeedsRecomputeInstances(),t.path.includes("overrides")&&"states"in t.props)){let{states:l,rest:c}=t.props;t={...t,props:c},this.markNeedsRecomputeInstances()}let s=this.find(e);if(s)try{Ty(s,t,o,{scene:this,shared:i}),s instanceof Pt&&s.updateGeometryGroupsIfNeeded()}catch(l){console.error(l)}}get enableFog(){return this.fog!==null}set enableFog(e){this.fog=e===!0?this.backupFog:null}init(e,t){if(this.createChildrenObjects(e.objects,this,t),this.personalCamera.removeFromParent(),this.add(this.personalCamera),this.ambientLight.removeFromParent(),this.add(this.ambientLight),this.setBackgroundColor(At(e.backgroundColor,t)),this.updateFog(e.fog,t),this.updateAmbientLight(e.environment.ambientLight,t),this.activeCamera=this.personalCamera,e.publish.playCamera!==null){let o=this.find(e.publish.playCamera);o instanceof Jr&&this.switchActiveCamera(o)}this.expandInstances(t,!0),this.traverseEntity(o=>{Rs(o)&&o.recomputeBoolean()}),this.doPendingExpandCloner()}markNeedsRecomputeInstances(){this.needsRecomputeInstances=!0}markNeedsRecomputeInstancesForChildren(e){e.traverseEntity(t=>{(t.data.type==="Component"||t.data.type==="Instance")&&this.markNeedsRecomputeInstances()})}markNeedsRecomputeInstancesForAncessors(e){ke.is(e)&&(e.data.type==="Component"&&this.markNeedsRecomputeInstances(),e.traverseAncestors(t=>{ke.is(t)&&t.data.type==="Component"&&this.markNeedsRecomputeInstances()}))}relativeizeInner(e,t,o,i,s,l,c){e&&e!==i.uuid&&i.find(e)&&s.forInstancesRec(a=>{a.isInstanceRoot||(a.data=pn(a.data,d=>{let p=d.events.data(c.id),f=a.goUp(l);if(f){let m=[...ga(f.identity),e].join("-"),h=this.entityIdentityToEntity[m];if(h){let y=h.uuid;wt.zoom(p,t)[o]=y}else{if(uo)debugger;console.warn("cannot find instance")}}}).data)})}rewriteEventsBeforeGoToPlayMode(){this.traverseEntity(e=>{if(e instanceof eo&&typeof e.identity=="string"&&e.data.type==="Component")return e.traverseEntity((t,o)=>{t.data.events.forEach(i=>{i.data.type==="GameControl"?t.forInstancesRec(s=>{s.isInstanceRoot||(s.data=pn(s.data,l=>{l.events.delete(i.id)}).data)}):i.data.type==="Conditional"?(i.data.condition.type==="Distance"?(this.relativeizeInner(i.data.condition.fromObject,["condition"],"fromObject",e,t,o,i),this.relativeizeInner(i.data.condition.toObject,["condition"],"toObject",e,t,o,i)):i.data.condition.type==="State"?this.relativeizeInner(i.data.condition.object,["condition"],"object",e,t,o,i):i.data.condition.type==="Comparison"&&(i.data.condition.lOperand.type==="Property"&&this.relativeizeInner(i.data.condition.lOperand.value[0],["condition","lOperand","value"],0,e,t,o,i),i.data.condition.rOperand.type==="Property"&&this.relativeizeInner(i.data.condition.rOperand.value[0],["condition","rOperand","value"],0,e,t,o,i)),i.data.inActions.forEach(s=>{s.data.type==="Transition"&&this.relativeizeInner(s.data.object,["inActions",s.id],"object",e,t,o,i)}),i.data.outActions.forEach(s=>{s.data.type==="Transition"&&this.relativeizeInner(s.data.object,["outActions",s.id],"object",e,t,o,i)})):"actions"in i.data&&i.data.actions.forEach(s=>{s.data.type==="Transition"&&this.relativeizeInner(s.data.object,["actions",s.id],"object",e,t,o,i)})})}),!0})}expandInstances(e,t){let o=new Set;this.traverseEntity(i=>{if(i instanceof eo&&i.isInstanceRoot)return i.expandInstanceChildren({scene:this,shared:e,pendingDeletes:o}),t||i.resetBBoxNeedsUpdate(),!0});for(let i of o)this.disposeAndUnregisterEntityRecursivelyIfNotReregistered(i),Rl(i)}recomputeInstances(e){this.needsRecomputeInstances&&(this.needsRecomputeInstances=!1,this.traverseEntity(t=>{t instanceof eo&&t.isInstanceRoot&&(t.component=void 0)}),this.expandInstances(e,!1))}disposeAndUnregisterEntityRecursivelyIfNotReregistered(e){e.traverseEntity(t=>{let o=typeof t.identity=="string"?t.identity:t.identity.join("-");this.entityIdentityToEntity[o]===t&&(delete this.entityByUuid[t.uuid],delete this.entityIdentityToEntity[o]),t.dispose()})}clearScene(){for(let e of this.children)cr(e)&&e.disposeRecursively();this.children.length=0}resetAfterClear(e,t){this.init(e,t)}createPersonalCamera(){let e=new Jr(Pd.PERSONAL_CAMERA_ID,{...gn.defaultData,name:"Personal Camera"});return e.objectHelper.visible=!1,this.registerObjectCreatedInLegacy(e),e}raycast(e){let t=[],o=i=>{for(let s of i.children)cr(s)&&!s.raycastLock&&s.visible&&((Gs(s)||fy(s)&&this.enableHelpers&&s.objectHelper.visible)&&(e.intersectObject(s,!1,t),Cy(s,e,t)),o(s))};return o(this),t}forEachEntity(e){for(let t of this.children)cr(t)&&e(t)}traverseEntity(e){for(let t of this.children)cr(t)&&t.traverseEntity(e)}traverseObject(e){for(let t of this.children)$i.is(t)&&t.traverseObject(e)}traverseVisibleEntity(e){for(let t of this.children)cr(t)&&t.visible&&t.traverseVisibleEntity(e)}updateFog(e,t){this.enableFog=e.enabled,this.fogUseBGColor=e.useBackgroundColor,e.useBackgroundColor?this.backupFog.color.set(this.bgColor):this.backupFog.color=At(e.color,t),this.backupFog.near=e.near,this.backupFog.far=e.far}dispose(){this.clearScene()}updateAmbientLight(e,t){e.color!==void 0&&(this.ambientLight.color=At(e.color,t)),e.intensity!==void 0&&(this.ambientLight.intensity=e.intensity),e.groundColor!==void 0&&(this.ambientLight.groundColor=At(e.groundColor,t)),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,t,o){let i=0;for(let s of e)this.createObject(s.id,s.data,s.children,t,i,o),i+=1}registerObjectCreatedInLegacy(e){this.entityByUuid[e.uuid]=e}unregisterObject(e){delete this.entityByUuid[e.uuid];for(let t of e.children)this.unregisterObject(t)}createObject(e,t,o,i,s,l){let c={scene:this,shared:l},u=Vl(e,t,c);return u&&(this.entityByUuid[e]=u,i.add(u),i.children.splice(s,0,i.children.pop()),o.length>0&&(u.isInstanceRoot?console.error("instance should not have children!"):this.createChildrenObjects(o,u,l)),u.updateState(t,c),u instanceof Pt&&u.updateGeometryGroupsIfNeeded(),u.updateVisible(),u.cloner&&this.toExpandCloner.add(u)),u}getCenter(e){let t=[];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;t.push(...a.vertices)}let o=new nr.Box3;return o.setFromPoints(t),o.getCenter(Ny),Ny}copyMatrixWorld(e,t){if(e===null){t.identity();return}let o=this.find(e);o?t.copy(o.matrixWorld):t.identity()}copyParentMatrixWorld(e,t){if(e===null){t.identity();return}let o=this.find(e)?.parent;o?t.copy(o.matrixWorld):t.identity()}traverseMaterial(e){this.traverseEntity(t=>{if(t instanceof ht)if(Array.isArray(t.material))for(let o=0;o<t.material.length;o++)t.material[o]instanceof Ft&&e(t.material[o]);else t.material instanceof Ft&&e(t.material)})}updateCanvasSize(e,t){this.activeCamera.setViewplaneSize(e,t);let o,i;e>=t?(o=t/e,i=1):(o=1,i=e/t),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})})}},zs=Pd;zs.PERSONAL_CAMERA_ID="f23858d0-4a3b-4bd8-8173-66ed0af7f6fb-personalCamera";var Ey=require("three/examples/jsm/loaders/DRACOLoader.js");var Io;function z_(){return Io||(Io=new Ey.DRACOLoader,Io.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.2/").preload()),Io.decoderPending}async function k_(n){if(Io){let r={attributeIDs:Io.defaultAttributeIDs,attributeTypes:Io.defaultAttributeTypes,useUniqueIDs:!1},e;try{e=await Io.decodeGeometry(new Int8Array(n).buffer,r)}catch(t){console.error(t)}if(e)return{index:e.index?{array:e.index.array}:void 0,attributes:Object.entries(e.attributes).map(([t,o])=>({name:t,itemSize:o.itemSize,array:o.array}))}}return null}async function Ly(n,r){let[e,t]=Zl(da.deserialize(new Uint8Array(n)));Zf(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 z_();for(let i of o){let s=await k_(at(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 r&&r(e),t.result().data}var H_=require("three"),W_=require("three/examples/jsm/utils/BufferGeometryUtils.js");function My(n){let r;if(!!n.index)for(let e=0;e<n.index.array.length;e+=3)r=n.index.array[e],n.index.array[e]=n.index.array[e+2],n.index.array[e+2]=r}var ks=require("three");function By(n){let r=new Set;return n.traverse(e=>{if(e instanceof yr)if(qe(e.material))e.material.forEach(t=>{let o=t;r.has(o)||r.add(o)});else{let t=e.material;r.has(t)||r.add(t)}}),r.forEach(e=>{if(e instanceof Array)return;let t=e.onBeforeCompile.bind(e);if(q_(e)){Object.assign(e,{isMeshStandardMaterial:!0,isMeshPhysicalMaterial:!0,transmission:1,attenuationColor:new ks.Color,specularColor:new ks.Color});let o=0;e.onBeforeCompile=(i,s)=>{t&&t(i,s),i.uniforms=Object.assign({},ks.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 $_(e)||(e.onBeforeCompile=(o,i)=>{t&&t(o,i),e.transparent=!1})}),n}function q_(n){return n.getLayersOfType("transmission").length>0}function $_(n){let r=0;return n.layers.forEach(e=>{if(e.type!=="light"&&e.type!=="fresnel"){let t=e.uniforms["f"+e.id+"_alpha"];t&&(r+=(1-r)*t.value)}}),r<1}function Dy(n){return n.traverse(r=>{if(r.type==="Camera"){let e=r;e.type=e.cameraType}}),n}function Gy(n){let r=[],e=(t,o=0)=>{let i=o>0?t+o:t;return r.includes(i)?e(t,o+1):i};return n.traverse(t=>{if(r.includes(t.name)){let o=t.name,i=e(t.name);if(t.name=i,t.isMesh){let s=t;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))}}r.push(t.name)}),n}var Ry=require("three/examples/jsm/utils/BufferGeometryUtils.js");function Vy(n){let r=[];return n.traverse(e=>{e instanceof _i&&r.push(e)}),r.forEach(e=>{let t=e.object,i=e.children.map(l=>{l.updateMatrix();let c=l.geometry.clone().applyMatrix4(l.matrix);return l.matrix.determinant()<0&&My(c),c}),s=(0,Ry.mergeBufferGeometries)(e.parameters.hideBase?i:[t instanceof ht?t.geometry:[],...i]);t instanceof ht&&(t.geometry=s),e.removeFromParent(),t.setFromClonerState(null,{scene:n,shared:kh})}),n}function jy(n){return n.traverse(r=>{r.matrixAutoUpdate=!0}),n}function Fy(n){Object.values(n.shared.materials).forEach(r=>{Id(r)}),n.scene.objects.traverse((r,e)=>{"material"in e?Id(e.material):"materials"in e&&e.materials.forEach(t=>{Id(t)})})}function Id(n){if(typeof n=="string")return;let r=[];n.layers.forEach((e,t)=>{e.type==="outline"&&r.push(t)}),r.reverse().forEach(e=>{n.layers.delete(e)}),r.length&&console.warn("The Spline Loader currently does not support the outline layer.")}var Uy="The SplineLoader only accepts .splinecode files that are generated from Spline export panel.",jl=class extends Fl.Loader{load(r,e,t,o=console.error){let i=new Fl.FileLoader(this.manager);i.setPath(this.path),i.setResponseType("arraybuffer"),i.setRequestHeader(this.requestHeader),i.setWithCredentials(this.withCredentials),r.endsWith(".spline")?console.warn(Uy+" The .spline files are only meant to be used by the Editor."):r.endsWith(".splinecode")||console.warn(Uy),i.load(r,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)}},t,o)}async parse(r){let e=await Ly(r,Fy);ty(e)&&await Uh();let t=new Jo(e.shared);Object.values(t.getMaterials()).forEach(s=>Object.assign(s,{isAsset:!0}));let o=new zs(e.scene,t);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&&py(s)&&Object.assign(s,{makeDefault:!0})}return o=Vy(o),o=By(o),o=Dy(o),o=Gy(o),o=jy(o),o}};